diff --git a/SitefinityImageOptimization.sln b/SitefinityImageOptimization.sln index 370df24..393bac2 100644 --- a/SitefinityImageOptimization.sln +++ b/SitefinityImageOptimization.sln @@ -30,4 +30,7 @@ Global GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {42E78C82-9882-4C4A-B5B3-1C1A6373C4D2} + EndGlobalSection EndGlobal diff --git a/SitefinityWebApp/AdminApp/InsightExtensions/insight-iris.extensions.bundle.js b/SitefinityWebApp/AdminApp/InsightExtensions/insight-iris.extensions.bundle.js new file mode 100644 index 0000000..bd56bf3 --- /dev/null +++ b/SitefinityWebApp/AdminApp/InsightExtensions/insight-iris.extensions.bundle.js @@ -0,0 +1,79068 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([["insight-iris.extensions.bundle1000"],{ + + "./node_modules/@progress/kendo-angular-charts/__ivy_ngcc__/dist/fesm5/index.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "ChartComponentGenerated", function() { return ChartComponentGenerated; }); + __webpack_require__.d(__webpack_exports__, "AxisDefaultsComponentGenerated", function() { return AxisDefaultsComponentGenerated; }); + __webpack_require__.d(__webpack_exports__, "AxisDefaultsCrosshairComponentGenerated", function() { return AxisDefaultsCrosshairComponentGenerated; }); + __webpack_require__.d(__webpack_exports__, "AxisDefaultsCrosshairTooltipComponentGenerated", function() { return AxisDefaultsCrosshairTooltipComponentGenerated; }); + __webpack_require__.d(__webpack_exports__, "AxisDefaultsLabelsComponentGenerated", function() { return AxisDefaultsLabelsComponentGenerated; }); + __webpack_require__.d(__webpack_exports__, "AxisDefaultsTitleComponentGenerated", function() { return AxisDefaultsTitleComponentGenerated; }); + __webpack_require__.d(__webpack_exports__, "CategoryAxisItemComponentGenerated", function() { return CategoryAxisItemComponentGenerated; }); + __webpack_require__.d(__webpack_exports__, "CategoryAxisCrosshairComponentGenerated", function() { return CategoryAxisCrosshairComponentGenerated; }); + __webpack_require__.d(__webpack_exports__, "CategoryAxisCrosshairTooltipComponentGenerated", function() { return CategoryAxisCrosshairTooltipComponentGenerated; }); + __webpack_require__.d(__webpack_exports__, "CategoryAxisLabelsComponentGenerated", function() { return CategoryAxisLabelsComponentGenerated; }); + __webpack_require__.d(__webpack_exports__, "CategoryAxisNotesComponentGenerated", function() { return CategoryAxisNotesComponentGenerated; }); + __webpack_require__.d(__webpack_exports__, "CategoryAxisNotesIconComponentGenerated", function() { return CategoryAxisNotesIconComponentGenerated; }); + __webpack_require__.d(__webpack_exports__, "CategoryAxisNotesLabelComponentGenerated", function() { return CategoryAxisNotesLabelComponentGenerated; }); + __webpack_require__.d(__webpack_exports__, "CategoryAxisSelectComponentGenerated", function() { return CategoryAxisSelectComponentGenerated; }); + __webpack_require__.d(__webpack_exports__, "CategoryAxisTitleComponentGenerated", function() { return CategoryAxisTitleComponentGenerated; }); + __webpack_require__.d(__webpack_exports__, "CategoryAxisComponentGenerated", function() { return CategoryAxisComponentGenerated; }); + __webpack_require__.d(__webpack_exports__, "ChartAreaComponentGenerated", function() { return ChartAreaComponentGenerated; }); + __webpack_require__.d(__webpack_exports__, "DonutCenterTemplateDirective", function() { return DonutCenterTemplateDirective; }); + __webpack_require__.d(__webpack_exports__, "LegendComponentGenerated", function() { return LegendComponentGenerated; }); + __webpack_require__.d(__webpack_exports__, "LegendInactiveItemsComponentGenerated", function() { return LegendInactiveItemsComponentGenerated; }); + __webpack_require__.d(__webpack_exports__, "LegendItemComponentGenerated", function() { return LegendItemComponentGenerated; }); + __webpack_require__.d(__webpack_exports__, "PaneComponentGenerated", function() { return PaneComponentGenerated; }); + __webpack_require__.d(__webpack_exports__, "PanesTitleComponentGenerated", function() { return PanesTitleComponentGenerated; }); + __webpack_require__.d(__webpack_exports__, "PanesComponentGenerated", function() { return PanesComponentGenerated; }); + __webpack_require__.d(__webpack_exports__, "PlotAreaComponentGenerated", function() { return PlotAreaComponentGenerated; }); + __webpack_require__.d(__webpack_exports__, "SeriesDefaultsComponentGenerated", function() { return SeriesDefaultsComponentGenerated; }); + __webpack_require__.d(__webpack_exports__, "SeriesDefaultsLabelsComponentGenerated", function() { return SeriesDefaultsLabelsComponentGenerated; }); + __webpack_require__.d(__webpack_exports__, "SeriesDefaultsLabelsFromComponentGenerated", function() { return SeriesDefaultsLabelsFromComponentGenerated; }); + __webpack_require__.d(__webpack_exports__, "SeriesDefaultsLabelsToComponentGenerated", function() { return SeriesDefaultsLabelsToComponentGenerated; }); + __webpack_require__.d(__webpack_exports__, "SeriesDefaultsNotesComponentGenerated", function() { return SeriesDefaultsNotesComponentGenerated; }); + __webpack_require__.d(__webpack_exports__, "SeriesDefaultsNotesIconComponentGenerated", function() { return SeriesDefaultsNotesIconComponentGenerated; }); + __webpack_require__.d(__webpack_exports__, "SeriesDefaultsNotesLabelComponentGenerated", function() { return SeriesDefaultsNotesLabelComponentGenerated; }); + __webpack_require__.d(__webpack_exports__, "SeriesDefaultsTooltipComponentGenerated", function() { return SeriesDefaultsTooltipComponentGenerated; }); + __webpack_require__.d(__webpack_exports__, "SeriesItemComponentGenerated", function() { return SeriesItemComponentGenerated; }); + __webpack_require__.d(__webpack_exports__, "SeriesErrorBarsComponentGenerated", function() { return SeriesErrorBarsComponentGenerated; }); + __webpack_require__.d(__webpack_exports__, "SeriesExtremesComponentGenerated", function() { return SeriesExtremesComponentGenerated; }); + __webpack_require__.d(__webpack_exports__, "SeriesHighlightComponentGenerated", function() { return SeriesHighlightComponentGenerated; }); + __webpack_require__.d(__webpack_exports__, "SeriesLabelsComponentGenerated", function() { return SeriesLabelsComponentGenerated; }); + __webpack_require__.d(__webpack_exports__, "SeriesLabelsFromComponentGenerated", function() { return SeriesLabelsFromComponentGenerated; }); + __webpack_require__.d(__webpack_exports__, "SeriesLabelsToComponentGenerated", function() { return SeriesLabelsToComponentGenerated; }); + __webpack_require__.d(__webpack_exports__, "SeriesMarkersComponentGenerated", function() { return SeriesMarkersComponentGenerated; }); + __webpack_require__.d(__webpack_exports__, "SeriesNotesComponentGenerated", function() { return SeriesNotesComponentGenerated; }); + __webpack_require__.d(__webpack_exports__, "SeriesNotesIconComponentGenerated", function() { return SeriesNotesIconComponentGenerated; }); + __webpack_require__.d(__webpack_exports__, "SeriesNotesLabelComponentGenerated", function() { return SeriesNotesLabelComponentGenerated; }); + __webpack_require__.d(__webpack_exports__, "SeriesOutliersComponentGenerated", function() { return SeriesOutliersComponentGenerated; }); + __webpack_require__.d(__webpack_exports__, "SeriesTooltipComponentGenerated", function() { return SeriesTooltipComponentGenerated; }); + __webpack_require__.d(__webpack_exports__, "SeriesComponentGenerated", function() { return SeriesComponentGenerated; }); + __webpack_require__.d(__webpack_exports__, "TitleComponentGenerated", function() { return TitleComponentGenerated; }); + __webpack_require__.d(__webpack_exports__, "TooltipComponentGenerated", function() { return TooltipComponentGenerated; }); + __webpack_require__.d(__webpack_exports__, "BaseTooltip", function() { return BaseTooltip; }); + __webpack_require__.d(__webpack_exports__, "bodyFactory", function() { return bodyFactory; }); + __webpack_require__.d(__webpack_exports__, "CrosshairTooltipComponent", function() { return CrosshairTooltipComponent; }); + __webpack_require__.d(__webpack_exports__, "SeriesTooltipTemplateDirective", function() { return SeriesTooltipTemplateDirective; }); + __webpack_require__.d(__webpack_exports__, "SharedTooltipTemplateDirective", function() { return SharedTooltipTemplateDirective; }); + __webpack_require__.d(__webpack_exports__, "ValueAxisItemComponentGenerated", function() { return ValueAxisItemComponentGenerated; }); + __webpack_require__.d(__webpack_exports__, "ValueAxisCrosshairComponentGenerated", function() { return ValueAxisCrosshairComponentGenerated; }); + __webpack_require__.d(__webpack_exports__, "ValueAxisCrosshairTooltipComponentGenerated", function() { return ValueAxisCrosshairTooltipComponentGenerated; }); + __webpack_require__.d(__webpack_exports__, "ValueAxisLabelsComponentGenerated", function() { return ValueAxisLabelsComponentGenerated; }); + __webpack_require__.d(__webpack_exports__, "ValueAxisNotesComponentGenerated", function() { return ValueAxisNotesComponentGenerated; }); + __webpack_require__.d(__webpack_exports__, "ValueAxisNotesIconComponentGenerated", function() { return ValueAxisNotesIconComponentGenerated; }); + __webpack_require__.d(__webpack_exports__, "ValueAxisNotesLabelComponentGenerated", function() { return ValueAxisNotesLabelComponentGenerated; }); + __webpack_require__.d(__webpack_exports__, "ValueAxisTitleComponentGenerated", function() { return ValueAxisTitleComponentGenerated; }); + __webpack_require__.d(__webpack_exports__, "ValueAxisComponentGenerated", function() { return ValueAxisComponentGenerated; }); + __webpack_require__.d(__webpack_exports__, "XAxisItemComponentGenerated", function() { return XAxisItemComponentGenerated; }); + __webpack_require__.d(__webpack_exports__, "XAxisCrosshairComponentGenerated", function() { return XAxisCrosshairComponentGenerated; }); + __webpack_require__.d(__webpack_exports__, "XAxisCrosshairTooltipComponentGenerated", function() { return XAxisCrosshairTooltipComponentGenerated; }); + __webpack_require__.d(__webpack_exports__, "XAxisLabelsComponentGenerated", function() { return XAxisLabelsComponentGenerated; }); + __webpack_require__.d(__webpack_exports__, "XAxisNotesComponentGenerated", function() { return XAxisNotesComponentGenerated; }); + __webpack_require__.d(__webpack_exports__, "XAxisNotesIconComponentGenerated", function() { return XAxisNotesIconComponentGenerated; }); + __webpack_require__.d(__webpack_exports__, "XAxisNotesLabelComponentGenerated", function() { return XAxisNotesLabelComponentGenerated; }); + __webpack_require__.d(__webpack_exports__, "XAxisTitleComponentGenerated", function() { return XAxisTitleComponentGenerated; }); + __webpack_require__.d(__webpack_exports__, "XAxisComponentGenerated", function() { return XAxisComponentGenerated; }); + __webpack_require__.d(__webpack_exports__, "YAxisItemComponentGenerated", function() { return YAxisItemComponentGenerated; }); + __webpack_require__.d(__webpack_exports__, "YAxisCrosshairComponentGenerated", function() { return YAxisCrosshairComponentGenerated; }); + __webpack_require__.d(__webpack_exports__, "YAxisCrosshairTooltipComponentGenerated", function() { return YAxisCrosshairTooltipComponentGenerated; }); + __webpack_require__.d(__webpack_exports__, "YAxisLabelsComponentGenerated", function() { return YAxisLabelsComponentGenerated; }); + __webpack_require__.d(__webpack_exports__, "YAxisNotesComponentGenerated", function() { return YAxisNotesComponentGenerated; }); + __webpack_require__.d(__webpack_exports__, "YAxisNotesIconComponentGenerated", function() { return YAxisNotesIconComponentGenerated; }); + __webpack_require__.d(__webpack_exports__, "YAxisNotesLabelComponentGenerated", function() { return YAxisNotesLabelComponentGenerated; }); + __webpack_require__.d(__webpack_exports__, "YAxisTitleComponentGenerated", function() { return YAxisTitleComponentGenerated; }); + __webpack_require__.d(__webpack_exports__, "YAxisComponentGenerated", function() { return YAxisComponentGenerated; }); + __webpack_require__.d(__webpack_exports__, "ZoomableComponentGenerated", function() { return ZoomableComponentGenerated; }); + __webpack_require__.d(__webpack_exports__, "CollectionItemComponent", function() { return CollectionItemComponent; }); + __webpack_require__.d(__webpack_exports__, "CollectionComponent", function() { return CollectionComponent; }); + __webpack_require__.d(__webpack_exports__, "CollectionService", function() { return CollectionService; }); + __webpack_require__.d(__webpack_exports__, "ConfigurationService", function() { return ConfigurationService; }); + __webpack_require__.d(__webpack_exports__, "PREFIX", function() { return PREFIX; }); + __webpack_require__.d(__webpack_exports__, "PrefixConfigurationService", function() { return PrefixConfigurationService; }); + __webpack_require__.d(__webpack_exports__, "RootConfigurationService", function() { return RootConfigurationService; }); + __webpack_require__.d(__webpack_exports__, "SettingsComponent", function() { return SettingsComponent; }); + __webpack_require__.d(__webpack_exports__, "ThemeService", function() { return ThemeService; }); + __webpack_require__.d(__webpack_exports__, "TooltipTemplateService", function() { return TooltipTemplateService; }); + __webpack_require__.d(__webpack_exports__, "BaseEvent", function() { return BaseEvent; }); + __webpack_require__.d(__webpack_exports__, "InstanceEventService", function() { return InstanceEventService; }); + __webpack_require__.d(__webpack_exports__, "LegendEvent", function() { return LegendEvent; }); + __webpack_require__.d(__webpack_exports__, "NoteEvent", function() { return NoteEvent; }); + __webpack_require__.d(__webpack_exports__, "PreventableEvent", function() { return PreventableEvent; }); + __webpack_require__.d(__webpack_exports__, "SeriesEvent", function() { return SeriesEvent; }); + __webpack_require__.d(__webpack_exports__, "StockInstanceEventService", function() { return StockInstanceEventService; }); + __webpack_require__.d(__webpack_exports__, "NavigatorComponent", function() { return NavigatorComponent; }); + __webpack_require__.d(__webpack_exports__, "NavigatorCategoryAxisComponent", function() { return NavigatorCategoryAxisComponent; }); + __webpack_require__.d(__webpack_exports__, "NavigatorCategoryAxisCrosshairComponent", function() { return NavigatorCategoryAxisCrosshairComponent; }); + __webpack_require__.d(__webpack_exports__, "NavigatorCategoryAxisCrosshairTooltipComponent", function() { return NavigatorCategoryAxisCrosshairTooltipComponent; }); + __webpack_require__.d(__webpack_exports__, "NavigatorCategoryAxisLabelsComponent", function() { return NavigatorCategoryAxisLabelsComponent; }); + __webpack_require__.d(__webpack_exports__, "NavigatorCategoryAxisNotesComponent", function() { return NavigatorCategoryAxisNotesComponent; }); + __webpack_require__.d(__webpack_exports__, "NavigatorCategoryAxisNotesIconComponent", function() { return NavigatorCategoryAxisNotesIconComponent; }); + __webpack_require__.d(__webpack_exports__, "NavigatorCategoryAxisNotesLabelComponent", function() { return NavigatorCategoryAxisNotesLabelComponent; }); + __webpack_require__.d(__webpack_exports__, "NavigatorCategoryAxisSelectComponent", function() { return NavigatorCategoryAxisSelectComponent; }); + __webpack_require__.d(__webpack_exports__, "NavigatorCategoryAxisTitleComponent", function() { return NavigatorCategoryAxisTitleComponent; }); + __webpack_require__.d(__webpack_exports__, "NavigatorHintComponent", function() { return NavigatorHintComponent; }); + __webpack_require__.d(__webpack_exports__, "NavigatorPaneComponent", function() { return NavigatorPaneComponent; }); + __webpack_require__.d(__webpack_exports__, "NavigatorPaneTitleComponent", function() { return NavigatorPaneTitleComponent; }); + __webpack_require__.d(__webpack_exports__, "NavigatorSelectComponent", function() { return NavigatorSelectComponent; }); + __webpack_require__.d(__webpack_exports__, "NavigatorSeriesItemComponent", function() { return NavigatorSeriesItemComponent; }); + __webpack_require__.d(__webpack_exports__, "NavigatorSeriesErrorBarsComponent", function() { return NavigatorSeriesErrorBarsComponent; }); + __webpack_require__.d(__webpack_exports__, "NavigatorSeriesExtremesComponent", function() { return NavigatorSeriesExtremesComponent; }); + __webpack_require__.d(__webpack_exports__, "NavigatorSeriesHighlightComponent", function() { return NavigatorSeriesHighlightComponent; }); + __webpack_require__.d(__webpack_exports__, "NavigatorSeriesLabelsComponent", function() { return NavigatorSeriesLabelsComponent; }); + __webpack_require__.d(__webpack_exports__, "NavigatorSeriesLabelsFromComponent", function() { return NavigatorSeriesLabelsFromComponent; }); + __webpack_require__.d(__webpack_exports__, "NavigatorSeriesLabelsToComponent", function() { return NavigatorSeriesLabelsToComponent; }); + __webpack_require__.d(__webpack_exports__, "NavigatorSeriesMarkersComponent", function() { return NavigatorSeriesMarkersComponent; }); + __webpack_require__.d(__webpack_exports__, "NavigatorSeriesNotesComponent", function() { return NavigatorSeriesNotesComponent; }); + __webpack_require__.d(__webpack_exports__, "NavigatorSeriesNotesIconComponent", function() { return NavigatorSeriesNotesIconComponent; }); + __webpack_require__.d(__webpack_exports__, "NavigatorSeriesNotesLabelComponent", function() { return NavigatorSeriesNotesLabelComponent; }); + __webpack_require__.d(__webpack_exports__, "NavigatorSeriesOutliersComponent", function() { return NavigatorSeriesOutliersComponent; }); + __webpack_require__.d(__webpack_exports__, "NavigatorSeriesTooltipComponent", function() { return NavigatorSeriesTooltipComponent; }); + __webpack_require__.d(__webpack_exports__, "NavigatorSeriesComponent", function() { return NavigatorSeriesComponent; }); + __webpack_require__.d(__webpack_exports__, "ChartModule", function() { return ChartModule; }); + __webpack_require__.d(__webpack_exports__, "StockChartModule", function() { return StockChartModule; }); + __webpack_require__.d(__webpack_exports__, "SparklineModule", function() { return SparklineModule; }); + __webpack_require__.d(__webpack_exports__, "ChartsModule", function() { return ChartsModule; }); + __webpack_require__.d(__webpack_exports__, "TooltipPopupComponent", function() { return TooltipPopupComponent; }); + __webpack_require__.d(__webpack_exports__, "CrosshairTooltipsContainerComponent", function() { return CrosshairTooltipsContainerComponent; }); + __webpack_require__.d(__webpack_exports__, "ChartComponent", function() { return ChartComponent; }); + __webpack_require__.d(__webpack_exports__, "AxisDefaultsComponent", function() { return AxisDefaultsComponent; }); + __webpack_require__.d(__webpack_exports__, "AxisDefaultsCrosshairComponent", function() { return AxisDefaultsCrosshairComponent; }); + __webpack_require__.d(__webpack_exports__, "AxisDefaultsCrosshairTooltipComponent", function() { return AxisDefaultsCrosshairTooltipComponent; }); + __webpack_require__.d(__webpack_exports__, "AxisDefaultsLabelsComponent", function() { return AxisDefaultsLabelsComponent; }); + __webpack_require__.d(__webpack_exports__, "AxisDefaultsTitleComponent", function() { return AxisDefaultsTitleComponent; }); + __webpack_require__.d(__webpack_exports__, "CategoryAxisComponent", function() { return CategoryAxisComponent; }); + __webpack_require__.d(__webpack_exports__, "CategoryAxisCrosshairComponent", function() { return CategoryAxisCrosshairComponent; }); + __webpack_require__.d(__webpack_exports__, "CategoryAxisCrosshairTooltipComponent", function() { return CategoryAxisCrosshairTooltipComponent; }); + __webpack_require__.d(__webpack_exports__, "CategoryAxisItemComponent", function() { return CategoryAxisItemComponent; }); + __webpack_require__.d(__webpack_exports__, "CategoryAxisLabelsComponent", function() { return CategoryAxisLabelsComponent; }); + __webpack_require__.d(__webpack_exports__, "CategoryAxisNotesComponent", function() { return CategoryAxisNotesComponent; }); + __webpack_require__.d(__webpack_exports__, "CategoryAxisNotesIconComponent", function() { return CategoryAxisNotesIconComponent; }); + __webpack_require__.d(__webpack_exports__, "CategoryAxisNotesLabelComponent", function() { return CategoryAxisNotesLabelComponent; }); + __webpack_require__.d(__webpack_exports__, "CategoryAxisSelectComponent", function() { return CategoryAxisSelectComponent; }); + __webpack_require__.d(__webpack_exports__, "CategoryAxisTitleComponent", function() { return CategoryAxisTitleComponent; }); + __webpack_require__.d(__webpack_exports__, "ChartAreaComponent", function() { return ChartAreaComponent; }); + __webpack_require__.d(__webpack_exports__, "LegendComponent", function() { return LegendComponent; }); + __webpack_require__.d(__webpack_exports__, "LegendInactiveItemsComponent", function() { return LegendInactiveItemsComponent; }); + __webpack_require__.d(__webpack_exports__, "LegendItemComponent", function() { return LegendItemComponent; }); + __webpack_require__.d(__webpack_exports__, "PaneComponent", function() { return PaneComponent; }); + __webpack_require__.d(__webpack_exports__, "PanesComponent", function() { return PanesComponent; }); + __webpack_require__.d(__webpack_exports__, "PanesTitleComponent", function() { return PanesTitleComponent; }); + __webpack_require__.d(__webpack_exports__, "PlotAreaComponent", function() { return PlotAreaComponent; }); + __webpack_require__.d(__webpack_exports__, "SeriesComponent", function() { return SeriesComponent; }); + __webpack_require__.d(__webpack_exports__, "SeriesDefaultsComponent", function() { return SeriesDefaultsComponent; }); + __webpack_require__.d(__webpack_exports__, "SeriesDefaultsLabelsComponent", function() { return SeriesDefaultsLabelsComponent; }); + __webpack_require__.d(__webpack_exports__, "SeriesDefaultsLabelsFromComponent", function() { return SeriesDefaultsLabelsFromComponent; }); + __webpack_require__.d(__webpack_exports__, "SeriesDefaultsLabelsToComponent", function() { return SeriesDefaultsLabelsToComponent; }); + __webpack_require__.d(__webpack_exports__, "SeriesDefaultsNotesComponent", function() { return SeriesDefaultsNotesComponent; }); + __webpack_require__.d(__webpack_exports__, "SeriesDefaultsNotesIconComponent", function() { return SeriesDefaultsNotesIconComponent; }); + __webpack_require__.d(__webpack_exports__, "SeriesDefaultsNotesLabelComponent", function() { return SeriesDefaultsNotesLabelComponent; }); + __webpack_require__.d(__webpack_exports__, "SeriesDefaultsTooltipComponent", function() { return SeriesDefaultsTooltipComponent; }); + __webpack_require__.d(__webpack_exports__, "SeriesErrorBarsComponent", function() { return SeriesErrorBarsComponent; }); + __webpack_require__.d(__webpack_exports__, "SeriesExtremesComponent", function() { return SeriesExtremesComponent; }); + __webpack_require__.d(__webpack_exports__, "SeriesHighlightComponent", function() { return SeriesHighlightComponent; }); + __webpack_require__.d(__webpack_exports__, "SeriesItemComponent", function() { return SeriesItemComponent; }); + __webpack_require__.d(__webpack_exports__, "SeriesLabelsComponent", function() { return SeriesLabelsComponent; }); + __webpack_require__.d(__webpack_exports__, "SeriesLabelsFromComponent", function() { return SeriesLabelsFromComponent; }); + __webpack_require__.d(__webpack_exports__, "SeriesLabelsToComponent", function() { return SeriesLabelsToComponent; }); + __webpack_require__.d(__webpack_exports__, "SeriesMarkersComponent", function() { return SeriesMarkersComponent; }); + __webpack_require__.d(__webpack_exports__, "SeriesNotesComponent", function() { return SeriesNotesComponent; }); + __webpack_require__.d(__webpack_exports__, "SeriesNotesIconComponent", function() { return SeriesNotesIconComponent; }); + __webpack_require__.d(__webpack_exports__, "SeriesNotesLabelComponent", function() { return SeriesNotesLabelComponent; }); + __webpack_require__.d(__webpack_exports__, "SeriesOutliersComponent", function() { return SeriesOutliersComponent; }); + __webpack_require__.d(__webpack_exports__, "SeriesTooltipComponent", function() { return SeriesTooltipComponent; }); + __webpack_require__.d(__webpack_exports__, "TitleComponent", function() { return TitleComponent; }); + __webpack_require__.d(__webpack_exports__, "TooltipComponent", function() { return TooltipComponent; }); + __webpack_require__.d(__webpack_exports__, "ValueAxisComponent", function() { return ValueAxisComponent; }); + __webpack_require__.d(__webpack_exports__, "ValueAxisCrosshairComponent", function() { return ValueAxisCrosshairComponent; }); + __webpack_require__.d(__webpack_exports__, "ValueAxisCrosshairTooltipComponent", function() { return ValueAxisCrosshairTooltipComponent; }); + __webpack_require__.d(__webpack_exports__, "ValueAxisItemComponent", function() { return ValueAxisItemComponent; }); + __webpack_require__.d(__webpack_exports__, "ValueAxisLabelsComponent", function() { return ValueAxisLabelsComponent; }); + __webpack_require__.d(__webpack_exports__, "ValueAxisNotesComponent", function() { return ValueAxisNotesComponent; }); + __webpack_require__.d(__webpack_exports__, "ValueAxisNotesIconComponent", function() { return ValueAxisNotesIconComponent; }); + __webpack_require__.d(__webpack_exports__, "ValueAxisNotesLabelComponent", function() { return ValueAxisNotesLabelComponent; }); + __webpack_require__.d(__webpack_exports__, "ValueAxisTitleComponent", function() { return ValueAxisTitleComponent; }); + __webpack_require__.d(__webpack_exports__, "XAxisComponent", function() { return XAxisComponent; }); + __webpack_require__.d(__webpack_exports__, "XAxisCrosshairComponent", function() { return XAxisCrosshairComponent; }); + __webpack_require__.d(__webpack_exports__, "XAxisCrosshairTooltipComponent", function() { return XAxisCrosshairTooltipComponent; }); + __webpack_require__.d(__webpack_exports__, "XAxisItemComponent", function() { return XAxisItemComponent; }); + __webpack_require__.d(__webpack_exports__, "XAxisLabelsComponent", function() { return XAxisLabelsComponent; }); + __webpack_require__.d(__webpack_exports__, "XAxisNotesComponent", function() { return XAxisNotesComponent; }); + __webpack_require__.d(__webpack_exports__, "XAxisNotesIconComponent", function() { return XAxisNotesIconComponent; }); + __webpack_require__.d(__webpack_exports__, "XAxisNotesLabelComponent", function() { return XAxisNotesLabelComponent; }); + __webpack_require__.d(__webpack_exports__, "XAxisTitleComponent", function() { return XAxisTitleComponent; }); + __webpack_require__.d(__webpack_exports__, "YAxisComponent", function() { return YAxisComponent; }); + __webpack_require__.d(__webpack_exports__, "YAxisCrosshairComponent", function() { return YAxisCrosshairComponent; }); + __webpack_require__.d(__webpack_exports__, "YAxisCrosshairTooltipComponent", function() { return YAxisCrosshairTooltipComponent; }); + __webpack_require__.d(__webpack_exports__, "YAxisItemComponent", function() { return YAxisItemComponent; }); + __webpack_require__.d(__webpack_exports__, "YAxisLabelsComponent", function() { return YAxisLabelsComponent; }); + __webpack_require__.d(__webpack_exports__, "YAxisNotesComponent", function() { return YAxisNotesComponent; }); + __webpack_require__.d(__webpack_exports__, "YAxisNotesIconComponent", function() { return YAxisNotesIconComponent; }); + __webpack_require__.d(__webpack_exports__, "YAxisNotesLabelComponent", function() { return YAxisNotesLabelComponent; }); + __webpack_require__.d(__webpack_exports__, "YAxisTitleComponent", function() { return YAxisTitleComponent; }); + __webpack_require__.d(__webpack_exports__, "ZoomableComponent", function() { return ZoomableComponent; }); + __webpack_require__.d(__webpack_exports__, "CHART_DIRECTIVES", function() { return CHART_DIRECTIVES; }); + __webpack_require__.d(__webpack_exports__, "AxisLabelClickEvent", function() { return AxisLabelClickEvent; }); + __webpack_require__.d(__webpack_exports__, "DragEndEvent", function() { return DragEndEvent; }); + __webpack_require__.d(__webpack_exports__, "DragEvent", function() { return DragEvent; }); + __webpack_require__.d(__webpack_exports__, "DragStartEvent", function() { return DragStartEvent; }); + __webpack_require__.d(__webpack_exports__, "LegendItemClickEvent", function() { return LegendItemClickEvent; }); + __webpack_require__.d(__webpack_exports__, "LegendItemHoverEvent", function() { return LegendItemHoverEvent; }); + __webpack_require__.d(__webpack_exports__, "NoteClickEvent", function() { return NoteClickEvent; }); + __webpack_require__.d(__webpack_exports__, "NoteHoverEvent", function() { return NoteHoverEvent; }); + __webpack_require__.d(__webpack_exports__, "PaneRenderEvent", function() { return PaneRenderEvent; }); + __webpack_require__.d(__webpack_exports__, "PlotAreaClickEvent", function() { return PlotAreaClickEvent; }); + __webpack_require__.d(__webpack_exports__, "PlotAreaHoverEvent", function() { return PlotAreaHoverEvent; }); + __webpack_require__.d(__webpack_exports__, "RenderEvent", function() { return RenderEvent; }); + __webpack_require__.d(__webpack_exports__, "SelectEndEvent", function() { return SelectEndEvent; }); + __webpack_require__.d(__webpack_exports__, "SelectEvent", function() { return SelectEvent; }); + __webpack_require__.d(__webpack_exports__, "SelectStartEvent", function() { return SelectStartEvent; }); + __webpack_require__.d(__webpack_exports__, "SeriesClickEvent", function() { return SeriesClickEvent; }); + __webpack_require__.d(__webpack_exports__, "SeriesHoverEvent", function() { return SeriesHoverEvent; }); + __webpack_require__.d(__webpack_exports__, "ZoomEndEvent", function() { return ZoomEndEvent; }); + __webpack_require__.d(__webpack_exports__, "ZoomEvent", function() { return ZoomEvent; }); + __webpack_require__.d(__webpack_exports__, "ZoomStartEvent", function() { return ZoomStartEvent; }); + __webpack_require__.d(__webpack_exports__, "WeekStartDay", function() { return WeekStartDay; }); + __webpack_require__.d(__webpack_exports__, "NavigatorFilterEvent", function() { return NavigatorFilterEvent; }); + __webpack_require__.d(__webpack_exports__, "StockChartComponent", function() { return StockChartComponent; }); + __webpack_require__.d(__webpack_exports__, "STOCK_CHART_DIRECTIVES", function() { return STOCK_CHART_DIRECTIVES; }); + __webpack_require__.d(__webpack_exports__, "SparklineComponent", function() { return SparklineComponent; }); + __webpack_require__.d(__webpack_exports__, "SPARKLINE_DIRECTIVES", function() { return SPARKLINE_DIRECTIVES; }); + var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( 100002); + var tslib__WEBPACK_IMPORTED_MODULE_0___default = __webpack_require__.n(tslib__WEBPACK_IMPORTED_MODULE_0__); + var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( 100003); + var _angular_core__WEBPACK_IMPORTED_MODULE_1___default = __webpack_require__.n(_angular_core__WEBPACK_IMPORTED_MODULE_1__); + var rxjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( 100006); + var rxjs__WEBPACK_IMPORTED_MODULE_2___default = __webpack_require__.n(rxjs__WEBPACK_IMPORTED_MODULE_2__); + var rxjs_operators__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( 100007); + var rxjs_operators__WEBPACK_IMPORTED_MODULE_3___default = __webpack_require__.n(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__); + var _progress_kendo_charts__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/main.js"); + var _progress_kendo_angular_common__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-angular-common/__ivy_ngcc__/dist/fesm5/index.js"); + var _progress_kendo_angular_popup__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__( "./node_modules/@progress/kendo-angular-popup/__ivy_ngcc__/dist/fesm5/index.js"); + var _progress_kendo_angular_l10n__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__( "./node_modules/@progress/kendo-angular-l10n/__ivy_ngcc__/dist/fesm5/index.js"); + var _angular_common__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__( 100011); + var _angular_common__WEBPACK_IMPORTED_MODULE_8___default = __webpack_require__.n(_angular_common__WEBPACK_IMPORTED_MODULE_8__); + var _progress_kendo_angular_intl__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__( "./node_modules/@progress/kendo-angular-intl/__ivy_ngcc__/dist/fesm5/index.js"); + __webpack_require__.d(__webpack_exports__, "ResizeSensorComponent", function() { return _progress_kendo_angular_common__WEBPACK_IMPORTED_MODULE_5__["ResizeSensorComponent"]; }); + + __webpack_require__.d(__webpack_exports__, "PopupComponent", function() { return _progress_kendo_angular_popup__WEBPACK_IMPORTED_MODULE_6__["PopupComponent"]; }); + + var _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/main.js"); + + + + + + + + + + + + + + +var _c0 = ["content"]; +function TooltipPopupComponent_ng_template_0_1_ng_template_0_Template(rf, ctx) { } +function TooltipPopupComponent_ng_template_0_1_Template(rf, ctx) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtemplate"](0, TooltipPopupComponent_ng_template_0_1_ng_template_0_Template, 0, 0, "ng-template", 5); +} if (rf & 2) { + var ctx_r4 = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵnextContext"](2); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵproperty"]("ngTemplateOutlet", ctx_r4.seriesTooltipTemplateRef)("ngTemplateOutletContext", ctx_r4.seriesTooltipContext); +} } +function TooltipPopupComponent_ng_template_0_2_ng_template_0_Template(rf, ctx) { } +function TooltipPopupComponent_ng_template_0_2_Template(rf, ctx) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtemplate"](0, TooltipPopupComponent_ng_template_0_2_ng_template_0_Template, 0, 0, "ng-template", 5); +} if (rf & 2) { + var ctx_r5 = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵnextContext"](2); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵproperty"]("ngTemplateOutlet", ctx_r5.seriesSharedTooltipTemplateRef)("ngTemplateOutletContext", ctx_r5.seriesSharedTooltipContext); +} } +function TooltipPopupComponent_ng_template_0_Template(rf, ctx) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](0, "div", 3); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtemplate"](1, TooltipPopupComponent_ng_template_0_1_Template, 1, 2, undefined, 4); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtemplate"](2, TooltipPopupComponent_ng_template_0_2_Template, 1, 2, undefined, 4); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); +} if (rf & 2) { + var ctx_r1 = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵnextContext"](); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵproperty"]("ngClass", ctx_r1.popupClasses)("ngStyle", ctx_r1.style); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵproperty"]("ngIf", !ctx_r1.shared); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵproperty"]("ngIf", ctx_r1.shared); +} } +function TooltipPopupComponent_ng_template_2_Template(rf, ctx) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelement"](0, "span", 6); +} if (rf & 2) { + var formattedValue_r8 = ctx.formattedValue; + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵproperty"]("innerHTML", formattedValue_r8, _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵsanitizeHtml"]); +} } +function TooltipPopupComponent_ng_template_3_tr_4_td_1_Template(rf, ctx) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](0, "td"); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelement"](1, "span", 8); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); +} if (rf & 2) { + var point_r15 = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵnextContext"]().$implicit; + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵstyleProp"]("background-color", point_r15.series.color); +} } +function TooltipPopupComponent_ng_template_3_tr_4_td_2_ng_container_1_Template(rf, ctx) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementContainerStart"](0); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementContainerEnd"](); +} if (rf & 2) { + var point_r15 = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵnextContext"](2).$implicit; + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtextInterpolate"](point_r15.series.name); +} } +function TooltipPopupComponent_ng_template_3_tr_4_td_2_ng_container_2_Template(rf, ctx) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementContainerStart"](0); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](1, "\u00A0"); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementContainerEnd"](); +} } +function TooltipPopupComponent_ng_template_3_tr_4_td_2_Template(rf, ctx) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](0, "td"); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtemplate"](1, TooltipPopupComponent_ng_template_3_tr_4_td_2_ng_container_1_Template, 2, 1, "ng-container", 4); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtemplate"](2, TooltipPopupComponent_ng_template_3_tr_4_td_2_ng_container_2_Template, 2, 0, "ng-container", 4); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); +} if (rf & 2) { + var point_r15 = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵnextContext"]().$implicit; + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵproperty"]("ngIf", point_r15.series.name !== undefined); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵproperty"]("ngIf", point_r15.series.name === undefined); +} } +function TooltipPopupComponent_ng_template_3_tr_4_ng_template_4_Template(rf, ctx) { } +function TooltipPopupComponent_ng_template_3_tr_4_Template(rf, ctx) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](0, "tr"); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtemplate"](1, TooltipPopupComponent_ng_template_3_tr_4_td_1_Template, 2, 2, "td", 4); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtemplate"](2, TooltipPopupComponent_ng_template_3_tr_4_td_2_Template, 3, 2, "td", 4); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](3, "td"); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtemplate"](4, TooltipPopupComponent_ng_template_3_tr_4_ng_template_4_Template, 0, 0, "ng-template", 5); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); +} if (rf & 2) { + var point_r15 = ctx.$implicit; + var ctx_r24 = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵnextContext"](); + var colorMarker_r12 = ctx_r24.colorMarker; + var nameColumn_r13 = ctx_r24.nameColumn; + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵproperty"]("ngIf", colorMarker_r12); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵproperty"]("ngIf", nameColumn_r13); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](2); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵproperty"]("ngTemplateOutlet", point_r15.template)("ngTemplateOutletContext", point_r15); +} } +function TooltipPopupComponent_ng_template_3_Template(rf, ctx) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](0, "table"); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](1, "tr"); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](2, "th"); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](3); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtemplate"](4, TooltipPopupComponent_ng_template_3_tr_4_Template, 5, 4, "tr", 7); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); +} if (rf & 2) { + var points_r9 = ctx.points; + var categoryText_r10 = ctx.categoryText; + var colspan_r11 = ctx.colspan; + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](2); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵattribute"]("colspan", colspan_r11); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtextInterpolate1"](" ", categoryText_r10, " "); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵproperty"]("ngForOf", points_r9); +} } +function CrosshairTooltipComponent_ng_template_0_Template(rf, ctx) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](0, "div", 1); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); +} if (rf & 2) { + var ctx_r1 = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵnextContext"](); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵproperty"]("ngStyle", ctx_r1.style); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtextInterpolate1"](" ", ctx_r1.value, " "); +} } +function CrosshairTooltipsContainerComponent_kendo_chart_crosshair_tooltip_0_Template(rf, ctx) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelement"](0, "kendo-chart-crosshair-tooltip", 1); +} if (rf & 2) { + var key_r1 = ctx.$implicit; + var ctx_r0 = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵnextContext"](); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵproperty"]("key", key_r1)("popupSettings", ctx_r0.popupSettings); +} } +var _c1 = ["surface"]; +function ChartComponent_div_5_ng_template_1_Template(rf, ctx) { } +function ChartComponent_div_5_Template(rf, ctx) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](0, "div", 6); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtemplate"](1, ChartComponent_div_5_ng_template_1_Template, 0, 0, "ng-template", 7); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); +} if (rf & 2) { + var ctx_r1 = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵnextContext"](); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵproperty"]("ngStyle", ctx_r1.donutCenterStyle); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵproperty"]("ngTemplateOutlet", ctx_r1.donutCenterTemplate.templateRef); +} } + + + + + + + + + +var ChartComponentGenerated = (function () { + function ChartComponentGenerated(configurationService) { + this.configurationService = configurationService; + + this.axisLabelClick = new _angular_core__WEBPACK_IMPORTED_MODULE_1__["EventEmitter"](); + + this.drag = new _angular_core__WEBPACK_IMPORTED_MODULE_1__["EventEmitter"](); + + this.dragEnd = new _angular_core__WEBPACK_IMPORTED_MODULE_1__["EventEmitter"](); + + this.dragStart = new _angular_core__WEBPACK_IMPORTED_MODULE_1__["EventEmitter"](); + + this.legendItemHover = new _angular_core__WEBPACK_IMPORTED_MODULE_1__["EventEmitter"](); + + this.legendItemLeave = new _angular_core__WEBPACK_IMPORTED_MODULE_1__["EventEmitter"](); + + this.noteClick = new _angular_core__WEBPACK_IMPORTED_MODULE_1__["EventEmitter"](); + + this.noteHover = new _angular_core__WEBPACK_IMPORTED_MODULE_1__["EventEmitter"](); + + this.noteLeave = new _angular_core__WEBPACK_IMPORTED_MODULE_1__["EventEmitter"](); + + this.paneRender = new _angular_core__WEBPACK_IMPORTED_MODULE_1__["EventEmitter"](); + + this.plotAreaClick = new _angular_core__WEBPACK_IMPORTED_MODULE_1__["EventEmitter"](); + + this.plotAreaHover = new _angular_core__WEBPACK_IMPORTED_MODULE_1__["EventEmitter"](); + + this.plotAreaLeave = new _angular_core__WEBPACK_IMPORTED_MODULE_1__["EventEmitter"](); + + this.render = new _angular_core__WEBPACK_IMPORTED_MODULE_1__["EventEmitter"](); + + this.select = new _angular_core__WEBPACK_IMPORTED_MODULE_1__["EventEmitter"](); + + this.selectEnd = new _angular_core__WEBPACK_IMPORTED_MODULE_1__["EventEmitter"](); + + this.selectStart = new _angular_core__WEBPACK_IMPORTED_MODULE_1__["EventEmitter"](); + + this.seriesClick = new _angular_core__WEBPACK_IMPORTED_MODULE_1__["EventEmitter"](); + + this.seriesHover = new _angular_core__WEBPACK_IMPORTED_MODULE_1__["EventEmitter"](); + + this.seriesOver = new _angular_core__WEBPACK_IMPORTED_MODULE_1__["EventEmitter"](); + + this.seriesLeave = new _angular_core__WEBPACK_IMPORTED_MODULE_1__["EventEmitter"](); + + this.zoom = new _angular_core__WEBPACK_IMPORTED_MODULE_1__["EventEmitter"](); + + this.zoomEnd = new _angular_core__WEBPACK_IMPORTED_MODULE_1__["EventEmitter"](); + + this.zoomStart = new _angular_core__WEBPACK_IMPORTED_MODULE_1__["EventEmitter"](); + } + ChartComponentGenerated.propDecorators = { + pannable: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + renderAs: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + seriesColors: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + title: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + transitions: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + zoomable: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + axisDefaults: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + categoryAxis: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + chartArea: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + legend: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + panes: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + plotArea: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + series: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + seriesDefaults: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + tooltip: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + valueAxis: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + xAxis: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + yAxis: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + axisLabelClick: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Output"] }], + drag: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Output"] }], + dragEnd: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Output"] }], + dragStart: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Output"] }], + legendItemHover: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Output"] }], + legendItemLeave: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Output"] }], + noteClick: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Output"] }], + noteHover: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Output"] }], + noteLeave: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Output"] }], + paneRender: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Output"] }], + plotAreaClick: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Output"] }], + plotAreaHover: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Output"] }], + plotAreaLeave: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Output"] }], + render: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Output"] }], + select: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Output"] }], + selectEnd: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Output"] }], + selectStart: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Output"] }], + seriesClick: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Output"] }], + seriesHover: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Output"] }], + seriesOver: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Output"] }], + seriesLeave: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Output"] }], + zoom: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Output"] }], + zoomEnd: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Output"] }], + zoomStart: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Output"] }] + }; +ChartComponentGenerated.ɵfac = function ChartComponentGenerated_Factory(t) { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinvalidFactory"](); }; +ChartComponentGenerated.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: ChartComponentGenerated, inputs: { pannable: "pannable", renderAs: "renderAs", seriesColors: "seriesColors", title: "title", transitions: "transitions", zoomable: "zoomable", axisDefaults: "axisDefaults", categoryAxis: "categoryAxis", chartArea: "chartArea", legend: "legend", panes: "panes", plotArea: "plotArea", series: "series", seriesDefaults: "seriesDefaults", tooltip: "tooltip", valueAxis: "valueAxis", xAxis: "xAxis", yAxis: "yAxis" }, outputs: { axisLabelClick: "axisLabelClick", drag: "drag", dragEnd: "dragEnd", dragStart: "dragStart", legendItemHover: "legendItemHover", legendItemLeave: "legendItemLeave", noteClick: "noteClick", noteHover: "noteHover", noteLeave: "noteLeave", paneRender: "paneRender", plotAreaClick: "plotAreaClick", plotAreaHover: "plotAreaHover", plotAreaLeave: "plotAreaLeave", render: "render", select: "select", selectEnd: "selectEnd", selectStart: "selectStart", seriesClick: "seriesClick", seriesHover: "seriesHover", seriesOver: "seriesOver", seriesLeave: "seriesLeave", zoom: "zoom", zoomEnd: "zoomEnd", zoomStart: "zoomStart" } }); + + return ChartComponentGenerated; +}()); + + +var THROTTLE_MS = 1000 / 60; + +var Change = (function () { + function Change(key, value) { + this.key = key; + this.value = value; + } + return Change; +}()); + +var ConfigurationService = (function () { + function ConfigurationService(ngZone) { + this.ngZone = ngZone; + this.store = {}; + this.source = new rxjs__WEBPACK_IMPORTED_MODULE_2__["BehaviorSubject"]({}); + this.initSource(); + } + ConfigurationService.prototype.initSource = function () { + this.onFastChange$ = this.source.asObservable(); + this.onChange$ = this.onFastChange$.pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["auditTime"])(THROTTLE_MS)); + }; + ConfigurationService.prototype.push = function (store) { + this.store = store; + this.next(); + }; + ConfigurationService.prototype.notify = function (change) { + this.set(change.key, change.value); + this.next(); + }; + ConfigurationService.prototype.set = function (field, value) { + var store = this.store; + var parts = field.split('.'); + var key = parts.shift(); + while (parts.length > 0) { + store = store[key] = store[key] || {}; + key = parts.shift(); + } + store[key] = value; + }; + ConfigurationService.prototype.next = function () { + var _this = this; + this.ngZone.runOutsideAngular(function () { + _this.source.next(_this.store); + }); + }; + + ConfigurationService.ctorParameters = function () { return [ + { type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["NgZone"] } + ]; }; +ConfigurationService.ɵfac = function ConfigurationService_Factory(t) { return new (t || ConfigurationService)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinject"](_angular_core__WEBPACK_IMPORTED_MODULE_1__["NgZone"])); }; +ConfigurationService.ɵprov = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineInjectable"]({ token: ConfigurationService, factory: function (t) { return ConfigurationService.ɵfac(t); } }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](ConfigurationService, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Injectable"] + }], function () { return [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["NgZone"] }]; }, null); })(); + return ConfigurationService; +}()); + + +var BaseEvent = (function () { + + function BaseEvent(sender) { + this.sender = sender; + } + return BaseEvent; +}()); + + +var PreventableEvent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(PreventableEvent, _super); + function PreventableEvent() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.prevented = false; + return _this; + } + + PreventableEvent.prototype.preventDefault = function () { + this.prevented = true; + }; + + PreventableEvent.prototype.isDefaultPrevented = function () { + return this.prevented; + }; + return PreventableEvent; +}(BaseEvent)); + + +var LegendEvent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(LegendEvent, _super); + + function LegendEvent(e, sender) { + var _this = _super.call(this, sender) || this; + _this.series = e.series; + _this.seriesIndex = e.seriesIndex; + _this.pointIndex = e.pointIndex; + _this.text = e.text; + return _this; + } + return LegendEvent; +}(PreventableEvent)); + + +var LegendItemClickEvent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(LegendItemClickEvent, _super); + function LegendItemClickEvent() { + return _super !== null && _super.apply(this, arguments) || this; + } + + LegendItemClickEvent.prototype.preventDefault = function () { + _super.prototype.preventDefault.call(this); + }; + return LegendItemClickEvent; +}(LegendEvent)); + + +var AxisLabelClickEvent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(AxisLabelClickEvent, _super); + + function AxisLabelClickEvent(e, sender) { + var _this = _super.call(this, sender) || this; + _this.axis = e.axis; + _this.dataItem = e.dataItem; + _this.index = e.index; + _this.text = e.text; + _this.value = e.value; + return _this; + } + return AxisLabelClickEvent; +}(BaseEvent)); + + +var DragEvent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(DragEvent, _super); + + function DragEvent(e, sender) { + var _this = _super.call(this, sender) || this; + _this.axisRanges = e.axisRanges; + _this.originalEvent = e.originalEvent; + return _this; + } + return DragEvent; +}(PreventableEvent)); + + +var DragEndEvent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(DragEndEvent, _super); + + function DragEndEvent(e, sender) { + var _this = _super.call(this, sender) || this; + _this.axisRanges = e.axisRanges; + _this.originalEvent = e.originalEvent; + return _this; + } + return DragEndEvent; +}(BaseEvent)); + + +var DragStartEvent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(DragStartEvent, _super); + + function DragStartEvent(e, sender) { + var _this = _super.call(this, sender) || this; + _this.axisRanges = e.axisRanges; + _this.originalEvent = e.originalEvent; + return _this; + } + return DragStartEvent; +}(PreventableEvent)); + + +var LegendItemHoverEvent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(LegendItemHoverEvent, _super); + function LegendItemHoverEvent() { + return _super !== null && _super.apply(this, arguments) || this; + } + + LegendItemHoverEvent.prototype.preventDefault = function () { + _super.prototype.preventDefault.call(this); + }; + return LegendItemHoverEvent; +}(LegendEvent)); + + + +var LegendItemLeaveEvent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(LegendItemLeaveEvent, _super); + function LegendItemLeaveEvent() { + return _super !== null && _super.apply(this, arguments) || this; + } + + LegendItemLeaveEvent.prototype.preventDefault = function () { + }; + + LegendItemLeaveEvent.prototype.isDefaultPrevented = function () { + return false; + }; + return LegendItemLeaveEvent; +}(LegendEvent)); + + +var NoteEvent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(NoteEvent, _super); + + function NoteEvent(e, sender) { + var _this = _super.call(this, sender) || this; + _this.category = e.category; + _this.dataItem = e.dataItem; + _this.series = e.series; + _this.value = e.value; + _this.visual = e.visual; + return _this; + } + return NoteEvent; +}(BaseEvent)); + + +var NoteClickEvent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(NoteClickEvent, _super); + function NoteClickEvent() { + return _super !== null && _super.apply(this, arguments) || this; + } + return NoteClickEvent; +}(NoteEvent)); + + +var NoteHoverEvent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(NoteHoverEvent, _super); + function NoteHoverEvent() { + return _super !== null && _super.apply(this, arguments) || this; + } + return NoteHoverEvent; +}(NoteEvent)); + + +var NoteLeaveEvent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(NoteLeaveEvent, _super); + function NoteLeaveEvent() { + return _super !== null && _super.apply(this, arguments) || this; + } + return NoteLeaveEvent; +}(NoteEvent)); + + +var PaneRenderEvent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(PaneRenderEvent, _super); + + function PaneRenderEvent(args, sender) { + var _this = _super.call(this, sender) || this; + Object.assign(_this, args); + return _this; + } + return PaneRenderEvent; +}(BaseEvent)); + + +var PlotAreaClickEvent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(PlotAreaClickEvent, _super); + + function PlotAreaClickEvent(e, sender) { + var _this = _super.call(this, sender) || this; + _this.category = e.category; + _this.originalEvent = e.originalEvent; + _this.value = e.value; + _this.x = e.x; + _this.y = e.y; + return _this; + } + return PlotAreaClickEvent; +}(BaseEvent)); + + +var PlotAreaHoverEvent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(PlotAreaHoverEvent, _super); + + function PlotAreaHoverEvent(e, sender) { + var _this = _super.call(this, sender) || this; + _this.category = e.category; + _this.originalEvent = e.originalEvent; + _this.value = e.value; + _this.x = e.x; + _this.y = e.y; + return _this; + } + return PlotAreaHoverEvent; +}(BaseEvent)); + +var PlotAreaLeaveEvent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(PlotAreaLeaveEvent, _super); + function PlotAreaLeaveEvent() { + return _super !== null && _super.apply(this, arguments) || this; + } + return PlotAreaLeaveEvent; +}(BaseEvent)); + + +var RenderEvent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(RenderEvent, _super); + + function RenderEvent(_e, sender) { + return _super.call(this, sender) || this; + } + return RenderEvent; +}(BaseEvent)); + + +var SelectEvent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(SelectEvent, _super); + + function SelectEvent(e, sender) { + var _this = _super.call(this, sender) || this; + _this.axis = e.axis; + _this.from = e.from; + _this.to = e.to; + return _this; + } + return SelectEvent; +}(PreventableEvent)); + + +var SelectEndEvent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(SelectEndEvent, _super); + + function SelectEndEvent(e, sender) { + var _this = _super.call(this, sender) || this; + _this.axis = e.axis; + _this.from = e.from; + _this.to = e.to; + return _this; + } + return SelectEndEvent; +}(BaseEvent)); + + +var SelectStartEvent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(SelectStartEvent, _super); + + function SelectStartEvent(e, sender) { + var _this = _super.call(this, sender) || this; + _this.axis = e.axis; + _this.from = e.from; + _this.to = e.to; + return _this; + } + return SelectStartEvent; +}(PreventableEvent)); + + +var SeriesClickEvent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(SeriesClickEvent, _super); + + function SeriesClickEvent(e, sender) { + var _this = _super.call(this, sender) || this; + _this.category = e.category; + _this.dataItem = e.dataItem; + _this.originalEvent = e.originalEvent; + _this.percentage = e.percentage; + _this.point = e.point; + _this.series = e.series; + _this.stackValue = e.stackValue; + _this.value = e.value; + return _this; + } + return SeriesClickEvent; +}(BaseEvent)); + + +var SeriesEvent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(SeriesEvent, _super); + + function SeriesEvent(e, sender) { + var _this = _super.call(this, sender) || this; + _this.category = e.category; + _this.dataItem = e.dataItem; + _this.originalEvent = e.originalEvent; + _this.percentage = e.percentage; + _this.point = e.point; + _this.series = e.series; + _this.stackValue = e.stackValue; + _this.value = e.value; + return _this; + } + return SeriesEvent; +}(PreventableEvent)); + + +var SeriesHoverEvent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(SeriesHoverEvent, _super); + function SeriesHoverEvent() { + return _super !== null && _super.apply(this, arguments) || this; + } + return SeriesHoverEvent; +}(SeriesEvent)); + + +var SeriesOverEvent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(SeriesOverEvent, _super); + function SeriesOverEvent() { + return _super !== null && _super.apply(this, arguments) || this; + } + return SeriesOverEvent; +}(SeriesEvent)); + + +var SeriesLeaveEvent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(SeriesLeaveEvent, _super); + function SeriesLeaveEvent() { + return _super !== null && _super.apply(this, arguments) || this; + } + return SeriesLeaveEvent; +}(SeriesEvent)); + + +var ZoomEvent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(ZoomEvent, _super); + + function ZoomEvent(e, sender) { + var _this = _super.call(this, sender) || this; + _this.axisRanges = e.axisRanges; + _this.delta = e.delta; + _this.originalEvent = e.originalEvent; + return _this; + } + return ZoomEvent; +}(PreventableEvent)); + + +var ZoomEndEvent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(ZoomEndEvent, _super); + + function ZoomEndEvent(e, sender) { + var _this = _super.call(this, sender) || this; + _this.axisRanges = e.axisRanges; + _this.originalEvent = e.originalEvent; + return _this; + } + return ZoomEndEvent; +}(BaseEvent)); + + +var ZoomStartEvent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(ZoomStartEvent, _super); + + function ZoomStartEvent(e, sender) { + var _this = _super.call(this, sender) || this; + _this.axisRanges = e.axisRanges; + _this.originalEvent = e.originalEvent; + return _this; + } + return ZoomStartEvent; +}(PreventableEvent)); + +var EVENT_MAP = { + axisLabelClick: AxisLabelClickEvent, + drag: DragEvent, + dragEnd: DragEndEvent, + dragStart: DragStartEvent, + legendItemHover: LegendItemHoverEvent, + legendItemLeave: LegendItemLeaveEvent, + noteClick: NoteClickEvent, + noteHover: NoteHoverEvent, + noteLeave: NoteLeaveEvent, + paneRender: PaneRenderEvent, + plotAreaClick: PlotAreaClickEvent, + plotAreaHover: PlotAreaHoverEvent, + plotAreaLeave: PlotAreaLeaveEvent, + render: RenderEvent, + select: SelectEvent, + selectEnd: SelectEndEvent, + selectStart: SelectStartEvent, + seriesClick: SeriesClickEvent, + seriesHover: SeriesHoverEvent, + seriesOver: SeriesOverEvent, + seriesLeave: SeriesLeaveEvent, + zoom: ZoomEvent, + zoomEnd: ZoomEndEvent, + zoomStart: ZoomStartEvent +}; + +var InstanceEventService = (function () { + function InstanceEventService() { + } + InstanceEventService.prototype.create = function (name, args, sender) { + if (EVENT_MAP[name]) { + return new EVENT_MAP[name](args, sender); + } + }; +InstanceEventService.ɵfac = function InstanceEventService_Factory(t) { return new (t || InstanceEventService)(); }; +InstanceEventService.ɵprov = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineInjectable"]({ token: InstanceEventService, factory: function (t) { return InstanceEventService.ɵfac(t); } }); + + return InstanceEventService; +}()); + + +var DonutCenterTemplateDirective = (function () { + function DonutCenterTemplateDirective(templateRef) { + this.templateRef = templateRef; + } + + DonutCenterTemplateDirective.ctorParameters = function () { return [ + { type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["TemplateRef"], decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Optional"] }] } + ]; }; +DonutCenterTemplateDirective.ɵfac = function DonutCenterTemplateDirective_Factory(t) { return new (t || DonutCenterTemplateDirective)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_1__["TemplateRef"], 8)); }; +DonutCenterTemplateDirective.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: DonutCenterTemplateDirective, selectors: [["", "kendoChartDonutCenterTemplate", ""]] }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](DonutCenterTemplateDirective, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Directive"], + args: [{ + selector: '[kendoChartDonutCenterTemplate]' + }] + }], function () { return [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["TemplateRef"], decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Optional"] + }] }]; }, null); })(); + return DonutCenterTemplateDirective; +}()); + + +var ItemChange = (function () { + function ItemChange(sender, options) { + this.sender = sender; + this.options = options; + } + return ItemChange; +}()); + +var CollectionService = (function () { + function CollectionService() { + this.source = new rxjs__WEBPACK_IMPORTED_MODULE_2__["Subject"](); + this.onItemChange$ = this.source.asObservable(); + } + CollectionService.prototype.notify = function (change) { + this.source.next(change); + }; + + CollectionService.ctorParameters = function () { return []; }; +CollectionService.ɵfac = function CollectionService_Factory(t) { return new (t || CollectionService)(); }; +CollectionService.ɵprov = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineInjectable"]({ token: CollectionService, factory: function (t) { return CollectionService.ɵfac(t); } }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](CollectionService, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Injectable"] + }], function () { return []; }, null); })(); + return CollectionService; +}()); + + +function copyChanges(changes, options) { + for (var propertyName in changes) { + if (!changes.hasOwnProperty(propertyName)) { + continue; + } + var value = changes[propertyName].currentValue; + if (value === undefined) { + delete options[propertyName]; + } + else { + options[propertyName] = value; + } + } +} + + +function toSimpleChanges(changes) { + var result = {}; + for (var propertyName in changes) { + if (!changes.hasOwnProperty(propertyName)) { + continue; + } + result[propertyName] = new _angular_core__WEBPACK_IMPORTED_MODULE_1__["SimpleChange"](null, changes[propertyName], false); + } + return result; +} + + +var CollectionItemComponent = (function () { + function CollectionItemComponent(configurationService, collectionService) { + var _this = this; + this.configurationService = configurationService; + this.collectionService = collectionService; + this.options = {}; + this.subscription = configurationService.onFastChange$.subscribe(function (store) { + _this.options = store; + _this.notify(); + }); + } + CollectionItemComponent.prototype.ngOnChanges = function (changes) { + var store = this.configurationService.store; + copyChanges(changes, store); + this.configurationService.push(store); + }; + + CollectionItemComponent.prototype.notifyChanges = function (changes) { + this.ngOnChanges(toSimpleChanges(changes)); + }; + CollectionItemComponent.prototype.ngOnDestroy = function () { + this.subscription.unsubscribe(); + }; + CollectionItemComponent.prototype.notify = function () { + if (!this.collectionService) { + return; + } + this.collectionService.notify(new ItemChange(this, this.options)); + }; +CollectionItemComponent.ɵfac = function CollectionItemComponent_Factory(t) { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinvalidFactory"](); }; +CollectionItemComponent.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: CollectionItemComponent, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵNgOnChangesFeature"]] }); + + return CollectionItemComponent; +}()); + + +var SeriesItemComponentGenerated = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(SeriesItemComponentGenerated, _super); + function SeriesItemComponentGenerated(configurationService, collectionService) { + var _this = _super.call(this, configurationService, collectionService) || this; + _this.configurationService = configurationService; + _this.collectionService = collectionService; + return _this; + } + SeriesItemComponentGenerated.propDecorators = { + aggregate: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + autoFit: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + axis: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + border: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + categoryAxis: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + categoryField: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + closeField: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + color: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + colorField: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + connectors: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + currentField: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + dashType: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + data: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + downColor: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + downColorField: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + dynamicHeight: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + dynamicSlope: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + errorHighField: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + errorLowField: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + explodeField: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + field: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + fromField: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + gap: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + highField: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + holeSize: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + line: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + lowField: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + lowerField: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + margin: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + maxSize: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + meanField: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + medianField: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + minSize: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + missingValues: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + name: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + neckRatio: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + negativeColor: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + negativeValues: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + noteTextField: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + opacity: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + openField: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + outliersField: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + overlay: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + padding: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + q1Field: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + q3Field: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + segmentSpacing: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + size: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + sizeField: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + spacing: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + stack: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + startAngle: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + style: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + summaryField: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + target: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + toField: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + type: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + upperField: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + visible: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + visibleInLegend: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + visibleInLegendField: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + visual: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + width: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + whiskers: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + xAxis: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + xErrorHighField: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + xErrorLowField: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + xField: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + yAxis: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + yErrorHighField: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + yErrorLowField: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + yField: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + zIndex: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + errorBars: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + extremes: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + highlight: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + labels: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + markers: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + notes: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + outliers: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + tooltip: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }] + }; +SeriesItemComponentGenerated.ɵfac = function SeriesItemComponentGenerated_Factory(t) { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinvalidFactory"](); }; +SeriesItemComponentGenerated.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: SeriesItemComponentGenerated, inputs: { aggregate: "aggregate", autoFit: "autoFit", axis: "axis", border: "border", categoryAxis: "categoryAxis", categoryField: "categoryField", closeField: "closeField", color: "color", colorField: "colorField", connectors: "connectors", currentField: "currentField", dashType: "dashType", data: "data", downColor: "downColor", downColorField: "downColorField", dynamicHeight: "dynamicHeight", dynamicSlope: "dynamicSlope", errorHighField: "errorHighField", errorLowField: "errorLowField", explodeField: "explodeField", field: "field", fromField: "fromField", gap: "gap", highField: "highField", holeSize: "holeSize", line: "line", lowField: "lowField", lowerField: "lowerField", margin: "margin", maxSize: "maxSize", meanField: "meanField", medianField: "medianField", minSize: "minSize", missingValues: "missingValues", name: "name", neckRatio: "neckRatio", negativeColor: "negativeColor", negativeValues: "negativeValues", noteTextField: "noteTextField", opacity: "opacity", openField: "openField", outliersField: "outliersField", overlay: "overlay", padding: "padding", q1Field: "q1Field", q3Field: "q3Field", segmentSpacing: "segmentSpacing", size: "size", sizeField: "sizeField", spacing: "spacing", stack: "stack", startAngle: "startAngle", style: "style", summaryField: "summaryField", target: "target", toField: "toField", type: "type", upperField: "upperField", visible: "visible", visibleInLegend: "visibleInLegend", visibleInLegendField: "visibleInLegendField", visual: "visual", width: "width", whiskers: "whiskers", xAxis: "xAxis", xErrorHighField: "xErrorHighField", xErrorLowField: "xErrorLowField", xField: "xField", yAxis: "yAxis", yErrorHighField: "yErrorHighField", yErrorLowField: "yErrorLowField", yField: "yField", zIndex: "zIndex", errorBars: "errorBars", extremes: "extremes", highlight: "highlight", labels: "labels", markers: "markers", notes: "notes", outliers: "outliers", tooltip: "tooltip" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]] }); + + return SeriesItemComponentGenerated; +}(CollectionItemComponent)); + + +var SettingsComponent = (function () { + function SettingsComponent(configKey, configurationService) { + this.configKey = configKey; + this.configurationService = configurationService; + this.store = {}; + if (configKey === undefined) { + throw new Error('Configuration key not set'); + } + } + SettingsComponent.prototype.ngOnDestroy = function () { + this.store = undefined; + this.notify(); + }; + SettingsComponent.prototype.ngOnChanges = function (changes) { + copyChanges(changes, this.store); + this.notify(); + }; + + SettingsComponent.prototype.notifyChanges = function (changes) { + this.ngOnChanges(toSimpleChanges(changes)); + }; + SettingsComponent.prototype.markAsVisible = function () { + this.store.visible = true; + this.notify(); + }; + SettingsComponent.prototype.notify = function () { + this.configurationService.notify(new Change(this.configKey, this.store)); + }; +SettingsComponent.ɵfac = function SettingsComponent_Factory(t) { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinvalidFactory"](); }; +SettingsComponent.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: SettingsComponent, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵNgOnChangesFeature"]] }); + + return SettingsComponent; +}()); + + +var SeriesTooltipComponentGenerated = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(SeriesTooltipComponentGenerated, _super); + function SeriesTooltipComponentGenerated(configurationService) { + var _this = _super.call(this, 'tooltip', configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + SeriesTooltipComponentGenerated.propDecorators = { + background: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + border: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + color: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + font: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + format: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + padding: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + visible: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }] + }; +SeriesTooltipComponentGenerated.ɵfac = function SeriesTooltipComponentGenerated_Factory(t) { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinvalidFactory"](); }; +SeriesTooltipComponentGenerated.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: SeriesTooltipComponentGenerated, inputs: { background: "background", border: "border", color: "color", font: "font", format: "format", padding: "padding", visible: "visible" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]] }); + + return SeriesTooltipComponentGenerated; +}(SettingsComponent)); + + +var SeriesTooltipComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(SeriesTooltipComponent, _super); + function SeriesTooltipComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + _this.markAsVisible(); + return _this; + } + Object.defineProperty(SeriesTooltipComponent.prototype, "seriesTooltipTemplateRef", { + get: function () { + return this.seriesTooltipTemplate; + }, + enumerable: true, + configurable: true + }); + + SeriesTooltipComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; + SeriesTooltipComponent.propDecorators = { + seriesTooltipTemplate: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ContentChild"], args: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["TemplateRef"],] }] + }; +SeriesTooltipComponent.ɵfac = function SeriesTooltipComponent_Factory(t) { return new (t || SeriesTooltipComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +SeriesTooltipComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: SeriesTooltipComponent, selectors: [["kendo-chart-series-item-tooltip"]], contentQueries: function SeriesTooltipComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵcontentQuery"](dirIndex, _angular_core__WEBPACK_IMPORTED_MODULE_1__["TemplateRef"], true); + } if (rf & 2) { + var _t; + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵqueryRefresh"](_t = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵloadQuery"]()) && (ctx.seriesTooltipTemplate = _t.first); + } }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function SeriesTooltipComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](SeriesTooltipComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-series-item-tooltip', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, { seriesTooltipTemplate: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ContentChild"], + args: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["TemplateRef"]] + }] }); })(); + return SeriesTooltipComponent; +}(SeriesTooltipComponentGenerated)); + +var toggle = function (flag) { return flag === undefined ? false : !flag; }; + +var SeriesItemComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(SeriesItemComponent, _super); + function SeriesItemComponent(configurationService, collectionService) { + var _this = _super.call(this, configurationService, collectionService) || this; + _this.configurationService = configurationService; + _this.collectionService = collectionService; + return _this; + } + + SeriesItemComponent.prototype.toggleVisibility = function () { + this.options.visible = toggle(this.options.visible); + this.notify(); + }; + + SeriesItemComponent.prototype.togglePointVisibility = function (pointIndex) { + var pv = this.options.pointVisibility = this.options.pointVisibility || {}; + pv[pointIndex] = toggle(pv[pointIndex]); + this.notify(); + }; + Object.defineProperty(SeriesItemComponent.prototype, "seriesTooltipTemplateRef", { + get: function () { + if (this.seriesTooltip) { + return this.seriesTooltip.seriesTooltipTemplateRef; + } + }, + enumerable: true, + configurable: true + }); + + SeriesItemComponent.ctorParameters = function () { return [ + { type: ConfigurationService }, + { type: CollectionService } + ]; }; + SeriesItemComponent.propDecorators = { + seriesTooltip: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ContentChild"], args: [SeriesTooltipComponent,] }] + }; +SeriesItemComponent.ɵfac = function SeriesItemComponent_Factory(t) { return new (t || SeriesItemComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](CollectionService)); }; +SeriesItemComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: SeriesItemComponent, selectors: [["kendo-chart-series-item"]], contentQueries: function SeriesItemComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵcontentQuery"](dirIndex, SeriesTooltipComponent, true); + } if (rf & 2) { + var _t; + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵqueryRefresh"](_t = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵloadQuery"]()) && (ctx.seriesTooltip = _t.first); + } }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵProvidersFeature"]([ConfigurationService]), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function SeriesItemComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](SeriesItemComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + providers: [ConfigurationService], + selector: 'kendo-chart-series-item', + template: '' + }] + }], function () { return [{ type: ConfigurationService }, { type: CollectionService }]; }, { seriesTooltip: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ContentChild"], + args: [SeriesTooltipComponent] + }] }); })(); + return SeriesItemComponent; +}(SeriesItemComponentGenerated)); + + +var chartDefaultTheme = function () { + return Object.assign({}, Object(_progress_kendo_charts__WEBPACK_IMPORTED_MODULE_4__["chartBaseTheme"])(), { + axisDefaults: { + crosshair: { + color: 'rgba(0, 0, 0, 0.5)' + }, + labels: { + color: 'rgb(101, 101, 101)', + font: '12px serif' + }, + line: { + color: 'rgba(0, 0, 0, 0.08)' + }, + majorGridLines: { + color: 'rgba(0, 0, 0, 0.08)' + }, + minorGridLines: { + color: 'rgba(0, 0, 0, 0.04)' + }, + notes: { + icon: { + background: 'rgba(0, 0, 0, 0.5)', + border: { + color: 'rgba(0, 0, 0, 0.5)' + } + }, + line: { + color: 'rgba(0, 0, 0, 0.5)' + }, + label: { + font: '14px serif' + } + }, + title: { + color: 'rgb(101, 101, 101)', + font: '14px serif' + } + }, + chartArea: { + background: 'rgb(255, 255, 255)' + }, + legend: { + inactiveItems: { + labels: { + color: 'rgba(102, 102, 102, 0.5)' + }, + markers: { + color: 'rgba(102, 102, 102, 0.5)' + } + }, + labels: { + color: 'rgb(101, 101, 101)', + font: '14px serif' + } + }, + seriesDefaults: { + boxPlot: { + downColor: 'rgba(0, 0, 0, 0.08)', + mean: { + color: 'rgb(246, 246, 246)' + }, + median: { + color: 'rgb(246, 246, 246)' + }, + whiskers: { + color: 'rgb(255, 99, 88)' + } + }, + bullet: { + target: { + color: 'rgb(101, 101, 101)' + } + }, + candlestick: { + downColor: 'rgb(101, 101, 101)', + line: { + color: 'rgb(101, 101, 101)' + } + }, + errorBars: { + color: 'rgba(0, 0, 0, 0.5)' + }, + horizontalWaterfall: { + line: { + color: 'rgba(0, 0, 0, 0.08)' + } + }, + icon: { + border: { + color: 'rgba(0, 0, 0, 0.08)' + } + }, + labels: { + background: 'rgb(255, 255, 255)', + color: 'rgb(101, 101, 101)', + opacity: 0.8, + font: '12px serif' + }, + notes: { + icon: { + background: 'rgba(0, 0, 0, 0.5)', + border: { + color: 'rgba(0, 0, 0, 0.5)' + } + }, + line: { + color: 'rgba(0, 0, 0, 0.5)' + }, + label: { + font: '14px serif' + } + }, + overlay: { + gradient: "none" + }, + verticalBoxPlot: { + downColor: 'rgba(0, 0, 0, 0.08)', + mean: { + color: 'rgb(246, 246, 246)' + }, + median: { + color: 'rgb(246, 246, 246)' + }, + whiskers: { + color: 'rgb(255, 99, 88)' + } + }, + verticalBullet: { + target: { + color: 'rgb(101, 101, 101)' + } + }, + waterfall: { + line: { + color: 'rgba(0, 0, 0, 0.08)' + } + }, + area: { + opacity: 0.8 + } + }, + title: { + color: 'rgb(101, 101, 101)', + font: '16px serif' + }, + seriesColors: [ + 'rgb(255, 99, 88)', + 'rgb(255, 210, 70)', + 'rgb(120, 210, 55)', + 'rgb(40, 180, 200)', + 'rgb(45, 115, 245)', + 'rgb(170, 70, 190)' + ] + }); +}; + +var font = function (style) { return style.fontSize + " " + style.fontFamily; }; +var letterPos = function (letter) { return letter.toLowerCase().charCodeAt(0) - 'a'.charCodeAt(0); }; +var seriesPos = function (name) { return letterPos(name.match(/series-([a-z])$/)[1]); }; +var template = "\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n
\n
\n
\n"; + +var ThemeService = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(ThemeService, _super); + function ThemeService(ngZone) { + var _this = _super.call(this, ngZone) || this; + _this.loaded = false; + return _this; + } + ThemeService.prototype.loadTheme = function () { + if (this.loaded || !Object(_progress_kendo_angular_common__WEBPACK_IMPORTED_MODULE_5__["isDocumentAvailable"])()) { + return; + } + if (!this.readTheme()) { + this.readDefaultTheme(); + } + this.loaded = true; + this.next(); + }; + ThemeService.prototype.readTheme = function () { + this.createElement(); + var available = this.queryColor('accent') !== + this.queryColor('accent-contrast'); + try { + if (available) { + this.push(Object(_progress_kendo_charts__WEBPACK_IMPORTED_MODULE_4__["chartBaseTheme"])()); + this.setColors(); + this.setFonts(); + this.setSeriesColors(); + } + } + finally { + this.destroyElement(); + } + return available; + }; + ThemeService.prototype.readDefaultTheme = function () { + this.push(chartDefaultTheme()); + }; + ThemeService.prototype.createElement = function () { + var container = this.element = document.createElement('div'); + container.style.display = 'none'; + container.innerHTML = template; + document.body.appendChild(container); + }; + ThemeService.prototype.destroyElement = function () { + if (this.element) { + document.body.removeChild(this.element); + this.element = undefined; + } + }; + ThemeService.prototype.setStyle = function (key, value) { + this.set(key, value); + }; + ThemeService.prototype.setColors = function () { + this.mapColor('axisDefaults.crosshair.color', 'chart-crosshair-background'); + this.mapColor('axisDefaults.labels.color', 'normal-text-color'); + this.mapColor('axisDefaults.line.color', 'chart-major-lines'); + this.mapColor('axisDefaults.majorGridLines.color', 'chart-major-lines'); + this.mapColor('axisDefaults.minorGridLines.color', 'chart-minor-lines'); + this.mapColor('axisDefaults.notes.icon.background', 'chart-notes-background'); + this.mapColor('axisDefaults.notes.icon.border.color', 'chart-notes-border'); + this.mapColor('axisDefaults.notes.line.color', 'chart-notes-lines'); + this.mapColor('axisDefaults.title.color', 'normal-text-color'); + this.mapColor('chartArea.background', 'background'); + this.mapColor('legend.inactiveItems.labels.color', 'chart-inactive'); + this.mapColor('legend.inactiveItems.markers.color', 'chart-inactive'); + this.mapColor('legend.labels.color', 'normal-text-color'); + this.mapColor('seriesDefaults.boxPlot.downColor', 'chart-major-lines'); + this.mapColor('seriesDefaults.boxPlot.mean.color', 'base'); + this.mapColor('seriesDefaults.boxPlot.median.color', 'base'); + this.mapColor('seriesDefaults.boxPlot.whiskers.color', 'accent'); + this.mapColor('seriesDefaults.bullet.target.color', 'normal-text-color'); + this.mapColor('seriesDefaults.candlestick.downColor', 'normal-text-color'); + this.mapColor('seriesDefaults.candlestick.line.color', 'normal-text-color'); + this.mapColor('seriesDefaults.errorBars.color', 'chart-error-bars-background'); + this.mapColor('seriesDefaults.horizontalWaterfall.line.color', 'chart-major-lines'); + this.mapColor('seriesDefaults.icon.border.color', 'chart-major-lines'); + this.mapColor('seriesDefaults.labels.background', 'background'); + this.mapColor('seriesDefaults.labels.color', 'normal-text-color'); + this.mapColor('seriesDefaults.notes.icon.background', 'chart-notes-background'); + this.mapColor('seriesDefaults.notes.icon.border.color', 'chart-notes-border'); + this.mapColor('seriesDefaults.notes.line.color', 'chart-notes-lines'); + this.mapColor('seriesDefaults.verticalBoxPlot.downColor', 'chart-major-lines'); + this.mapColor('seriesDefaults.verticalBoxPlot.mean.color', 'base'); + this.mapColor('seriesDefaults.verticalBoxPlot.median.color', 'base'); + this.mapColor('seriesDefaults.verticalBoxPlot.whiskers.color', 'accent'); + this.mapColor('seriesDefaults.verticalBullet.target.color', 'normal-text-color'); + this.mapColor('seriesDefaults.waterfall.line.color', 'chart-major-lines'); + this.mapColor('title.color', 'normal-text-color'); + var opacity = parseFloat(this.queryStyle('chart-area-opacity').opacity); + if (!isNaN(opacity)) { + this.setStyle('seriesDefaults.area.opacity', opacity); + this.setStyle('seriesDefaults.labels.opacity', opacity); + } + }; + ThemeService.prototype.setFonts = function () { + var defaultFont = font(this.queryStyle('chart-font')); + var titleFont = font(this.queryStyle('chart-title-font')); + var labelFont = font(this.queryStyle('chart-label-font')); + this.setStyle('axisDefaults.labels.font', labelFont); + this.setStyle('axisDefaults.notes.label.font', defaultFont); + this.setStyle('axisDefaults.title.font', defaultFont); + this.setStyle('legend.labels.font', defaultFont); + this.setStyle('seriesDefaults.labels.font', labelFont); + this.setStyle('seriesDefaults.notes.label.font', defaultFont); + this.setStyle('title.font', titleFont); + }; + ThemeService.prototype.setSeriesColors = function () { + var element = this.element; + var series = [].slice.call(element.querySelectorAll('.k-var--series div')); + var seriesColors = series.reduce(function (arr, el) { + var pos = seriesPos(el.className); + arr[pos] = window.getComputedStyle(el).backgroundColor; + return arr; + }, [] // Will populate the series colors in this array + ); + this.setStyle('seriesColors', seriesColors); + }; + ThemeService.prototype.mapColor = function (key, varName) { + this.setStyle(key, this.queryColor(varName)); + }; + ThemeService.prototype.queryColor = function (varName) { + return this.queryStyle(varName).backgroundColor; + }; + ThemeService.prototype.queryStyle = function (varName) { + var element = this.element; + return window.getComputedStyle(element.querySelector(".k-var--" + varName)); + }; + + ThemeService.ctorParameters = function () { return [ + { type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["NgZone"] } + ]; }; +ThemeService.ɵfac = function ThemeService_Factory(t) { return new (t || ThemeService)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinject"](_angular_core__WEBPACK_IMPORTED_MODULE_1__["NgZone"])); }; +ThemeService.ɵprov = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineInjectable"]({ token: ThemeService, factory: function (t) { return ThemeService.ɵfac(t); } }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](ThemeService, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Injectable"] + }], function () { return [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["NgZone"] }]; }, null); })(); + return ThemeService; +}(ConfigurationService)); + + +var ChartInstanceObserver = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(ChartInstanceObserver, _super); + function ChartInstanceObserver(instance) { + var _this = _super.call(this, instance) || this; + _this.handlerMap = { + hideTooltip: 'onHideTooltip', + legendItemClick: 'onLegendItemClick', + render: 'onRender', + showTooltip: 'onShowTooltip', + init: 'onInit' + }; + return _this; + } + return ChartInstanceObserver; +}(_progress_kendo_charts__WEBPACK_IMPORTED_MODULE_4__["InstanceObserver"])); + + +var TooltipTemplateService = (function () { + function TooltipTemplateService() { + } + TooltipTemplateService.prototype.setTemplate = function (template) { + this.template = template; + }; + TooltipTemplateService.prototype.getTemplate = function (seriesIndex) { + if (this.seriesTemplates && this.seriesTemplates[seriesIndex]) { + return this.seriesTemplates[seriesIndex]; + } + return this.template; + }; + TooltipTemplateService.prototype.setSeriesTemplates = function (seriesTemplates) { + this.seriesTemplates = seriesTemplates; + }; + TooltipTemplateService.prototype.setSharedTemplate = function (sharedTemplate) { + this.sharedTemplate = sharedTemplate; + }; + TooltipTemplateService.prototype.getSharedTemplate = function () { + return this.sharedTemplate; + }; +TooltipTemplateService.ɵfac = function TooltipTemplateService_Factory(t) { return new (t || TooltipTemplateService)(); }; +TooltipTemplateService.ɵprov = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineInjectable"]({ token: TooltipTemplateService, factory: function (t) { return TooltipTemplateService.ɵfac(t); } }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](TooltipTemplateService, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Injectable"] + }], function () { return []; }, null); })(); + return TooltipTemplateService; +}()); + + +var SeriesTooltipTemplateDirective = (function () { + function SeriesTooltipTemplateDirective(templateRef) { + this.templateRef = templateRef; + } + + SeriesTooltipTemplateDirective.ctorParameters = function () { return [ + { type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["TemplateRef"], decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Optional"] }] } + ]; }; +SeriesTooltipTemplateDirective.ɵfac = function SeriesTooltipTemplateDirective_Factory(t) { return new (t || SeriesTooltipTemplateDirective)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_1__["TemplateRef"], 8)); }; +SeriesTooltipTemplateDirective.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: SeriesTooltipTemplateDirective, selectors: [["", "kendoChartSeriesTooltipTemplate", ""]] }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](SeriesTooltipTemplateDirective, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Directive"], + args: [{ + selector: '[kendoChartSeriesTooltipTemplate]' + }] + }], function () { return [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["TemplateRef"], decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Optional"] + }] }]; }, null); })(); + return SeriesTooltipTemplateDirective; +}()); + + +var SharedTooltipTemplateDirective = (function () { + function SharedTooltipTemplateDirective(templateRef) { + this.templateRef = templateRef; + } + + SharedTooltipTemplateDirective.ctorParameters = function () { return [ + { type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["TemplateRef"], decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Optional"] }] } + ]; }; +SharedTooltipTemplateDirective.ɵfac = function SharedTooltipTemplateDirective_Factory(t) { return new (t || SharedTooltipTemplateDirective)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_1__["TemplateRef"], 8)); }; +SharedTooltipTemplateDirective.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: SharedTooltipTemplateDirective, selectors: [["", "kendoChartSharedTooltipTemplate", ""]] }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](SharedTooltipTemplateDirective, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Directive"], + args: [{ + selector: '[kendoChartSharedTooltipTemplate]' + }] + }], function () { return [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["TemplateRef"], decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Optional"] + }] }]; }, null); })(); + return SharedTooltipTemplateDirective; +}()); + + +var TooltipTemplatePoint = (function () { + + function TooltipTemplatePoint(point, format, template) { + this.value = point.value; + this.category = point.category; + this.categoryIndex = point.categoryIx; + this.series = point.series; + this.dataItem = point.dataItem; + this.percentage = point.percentage; + this.runningTotal = point.runningTotal; + this.total = point.total; + this.low = point.low; + this.high = point.high; + this.xLow = point.xLow; + this.xHigh = point.xHigh; + this.yLow = point.yLow; + this.yHigh = point.yHigh; + this.template = template; + this.point = point; + this.format = format; + } + Object.defineProperty(TooltipTemplatePoint.prototype, "formattedValue", { + + get: function () { + return this.format ? this.point.formatValue(this.format) : String(this.value); + }, + enumerable: true, + configurable: true + }); + return TooltipTemplatePoint; +}()); + + +var POSITION_MODE = 'absolute'; +var COLLISION = { horizontal: "fit", vertical: "fit" }; + +var BaseTooltip = (function () { + function BaseTooltip(popupService, localizationService) { + this.popupService = popupService; + this.localizationService = localizationService; + this.style = {}; + this.popupRef = null; + } + Object.defineProperty(BaseTooltip.prototype, "active", { + get: function () { + return this.popupRef !== null; + }, + enumerable: true, + configurable: true + }); + BaseTooltip.prototype.show = function (e) { + var align = e.anchor.align; + var offset = this.position(e.anchor.point); + this.style = e.style; + if (!this.popupRef) { + this.popupRef = this.popupService.open(Object.assign({ + offset: offset, + popupAlign: align, + animate: this.animate, + content: this.templateRef, + collision: COLLISION, + positionMode: POSITION_MODE + }, this.popupSettings)); + if (this.localizationService.rtl) { + this.popupRef.popupElement.setAttribute('dir', 'rtl'); + } + this.onInit(); + } + else { + var popup = this.popupRef.popup.instance; + popup.offset = offset; + popup.popupAlign = align; + } + }; + BaseTooltip.prototype.hide = function () { + if (this.popupRef) { + this.popupRef.close(); + this.popupRef = null; + } + }; + BaseTooltip.prototype.onInit = function () { + }; + BaseTooltip.prototype.ngOnDestroy = function () { + this.hide(); + }; + BaseTooltip.prototype.position = function (offset) { + if (!this.popupSettings || !this.popupSettings.appendTo) { + return offset; + } + var appendTo = this.popupSettings.appendTo.element.nativeElement; + var parent = this.getRelativeContextElement(appendTo); + if (!parent) { + return offset; + } + var bbox = parent.getBoundingClientRect(); + var _a = this.scrollOffset(appendTo), scrollLeft = _a.scrollLeft, scrollTop = _a.scrollTop; + return { + left: offset.left - bbox.left - scrollLeft, + top: offset.top - bbox.top - scrollTop + }; + }; + BaseTooltip.prototype.getRelativeContextElement = function (el) { + if (!el) { + return null; + } + var parent = el.parentElement; + while (parent) { + if (window.getComputedStyle(parent).transform !== 'none') { + return parent; + } + parent = parent.parentElement; + } + return null; + }; + BaseTooltip.prototype.scrollOffset = function (element) { + if (!element) { + return null; + } + var scrollLeft = element.scrollLeft; + var scrollTop = element.scrollTop; + var parent = element.parentElement; + while (parent) { + scrollLeft += parent.scrollLeft; + scrollTop += parent.scrollTop; + parent = parent.parentElement; + } + return { scrollLeft: scrollLeft, scrollTop: scrollTop }; + }; +BaseTooltip.ɵfac = function BaseTooltip_Factory(t) { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinvalidFactory"](); }; +BaseTooltip.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: BaseTooltip }); + + return BaseTooltip; +}()); + + +function hasParent(element, parent) { + var current = element; + while (current && current !== parent) { + current = current.parentNode; + } + return current ? true : false; +} + + +function bodyFactory() { + if (Object(_progress_kendo_angular_common__WEBPACK_IMPORTED_MODULE_5__["isDocumentAvailable"])()) { + return new _angular_core__WEBPACK_IMPORTED_MODULE_1__["ElementRef"](document.body); + } +} + +var SHARED_TOOLTIP_CLASS = 'k-chart-shared-tooltip'; +var TOOLTIP_CLASS = "k-chart-tooltip"; +var ɵ0$2 = bodyFactory; +// Codelyzer 2.0.0-beta2 doesn't handle inherited members + + +var TooltipPopupComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(TooltipPopupComponent, _super); + function TooltipPopupComponent(popupService, templateService, localizationService, ngZone) { + var _this = _super.call(this, popupService, localizationService) || this; + _this.popupService = popupService; + _this.templateService = templateService; + _this.localizationService = localizationService; + _this.ngZone = ngZone; + _this.seriesTooltipContext = {}; + _this.seriesSharedTooltipContext = {}; + _this.animate = true; + _this.wrapperClass = 'k-chart-tooltip-wrapper'; + _this.leave = new _angular_core__WEBPACK_IMPORTED_MODULE_1__["EventEmitter"](); + _this.popupClasses = {}; + return _this; + } + TooltipPopupComponent.prototype.show = function (e) { + var _a; + this.shared = e.shared; + this.popupClasses = Object.assign((_a = {}, + _a[SHARED_TOOLTIP_CLASS] = e.shared, + _a[TOOLTIP_CLASS] = true, + _a[e.className] = !!e.className, + _a), this.classNames); + if (!e.shared) { + this.seriesTooltipContext = new TooltipTemplatePoint(e.point, e.format); + this.seriesTooltipTemplateRef = this.pointTemplateRef(e.point); + } + else { + this.seriesSharedTooltipTemplateRef = this.templateService.getSharedTemplate() + || this.defaultSharedTooltipTemplate.templateRef; + this.seriesSharedTooltipContext = this.sharedTemplateContext(e); + } + _super.prototype.show.call(this, e); + }; + TooltipPopupComponent.prototype.containsElement = function (element) { + if (this.popupRef) { + return hasParent(element, this.popupRef.popupElement); + } + }; + TooltipPopupComponent.prototype.sharedTemplateContext = function (e) { + var points = e.points; + var nameColumn = points.filter(function (point) { return typeof point.series.name !== 'undefined'; }).length > 0; + var colorMarker = e.series.length > 1; + var colspan = 1; + if (nameColumn) { + colspan++; + } + if (colorMarker) { + colspan++; + } + return { + category: e.category, + categoryText: e.categoryText, + colorMarker: colorMarker, + colspan: colspan, + nameColumn: nameColumn, + points: this.wrapPoints(e.points, e.format) + }; + }; + TooltipPopupComponent.prototype.pointTemplateRef = function (point) { + return this.templateService.getTemplate(point.series.index) || this.defaultSeriesTooltipTemplate.templateRef; + }; + TooltipPopupComponent.prototype.wrapPoints = function (points, format) { + var result = []; + for (var idx = 0; idx < points.length; idx++) { + var point = points[idx]; + var template = this.pointTemplateRef(point); + var pointFormat = ((point.options || {}).tooltip || {}).format || format; + result.push(new TooltipTemplatePoint(point, pointFormat, template)); + } + return result; + }; + TooltipPopupComponent.prototype.onInit = function () { + var _this = this; + this.ngZone.runOutsideAngular(function () { + _this.mouseleaveSubscription = _this.popupRef.popupElement.addEventListener('mouseleave', function (args) { + _this.leave.emit(args); + }); + }); + this.popupRef.popupElement.className += " " + this.wrapperClass; + }; + TooltipPopupComponent.prototype.hide = function () { + if (this.mouseleaveSubscription) { + this.mouseleaveSubscription(); + this.mouseleaveSubscription = null; + } + _super.prototype.hide.call(this); + }; + + TooltipPopupComponent.ctorParameters = function () { return [ + { type: _progress_kendo_angular_popup__WEBPACK_IMPORTED_MODULE_6__["PopupService"] }, + { type: TooltipTemplateService }, + { type: _progress_kendo_angular_l10n__WEBPACK_IMPORTED_MODULE_7__["LocalizationService"] }, + { type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["NgZone"] } + ]; }; + TooltipPopupComponent.propDecorators = { + defaultSeriesTooltipTemplate: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ViewChild"], args: [SeriesTooltipTemplateDirective,] }], + defaultSharedTooltipTemplate: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ViewChild"], args: [SharedTooltipTemplateDirective,] }], + templateRef: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ViewChild"], args: ['content',] }], + animate: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + classNames: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + popupSettings: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + wrapperClass: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + leave: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Output"] }] + }; +TooltipPopupComponent.ɵfac = function TooltipPopupComponent_Factory(t) { return new (t || TooltipPopupComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](_progress_kendo_angular_popup__WEBPACK_IMPORTED_MODULE_6__["PopupService"]), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](TooltipTemplateService), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](_progress_kendo_angular_l10n__WEBPACK_IMPORTED_MODULE_7__["LocalizationService"]), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_1__["NgZone"])); }; +TooltipPopupComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: TooltipPopupComponent, selectors: [["kendo-chart-tooltip-popup"]], viewQuery: function TooltipPopupComponent_Query(rf, ctx) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵviewQuery"](SeriesTooltipTemplateDirective, true); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵviewQuery"](SharedTooltipTemplateDirective, true); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵviewQuery"](_c0, true); + } if (rf & 2) { + var _t; + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵqueryRefresh"](_t = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵloadQuery"]()) && (ctx.defaultSeriesTooltipTemplate = _t.first); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵqueryRefresh"](_t = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵloadQuery"]()) && (ctx.defaultSharedTooltipTemplate = _t.first); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵqueryRefresh"](_t = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵloadQuery"]()) && (ctx.templateRef = _t.first); + } }, inputs: { animate: "animate", classNames: "classNames", popupSettings: "popupSettings", wrapperClass: "wrapperClass" }, outputs: { leave: "leave" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵProvidersFeature"]([_progress_kendo_angular_popup__WEBPACK_IMPORTED_MODULE_6__["PopupService"], { + provide: _progress_kendo_angular_popup__WEBPACK_IMPORTED_MODULE_6__["POPUP_CONTAINER"], + useFactory: ɵ0$2 + }]), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 4, vars: 0, consts: [["content", ""], ["kendoChartSeriesTooltipTemplate", ""], ["kendoChartSharedTooltipTemplate", ""], [3, "ngClass", "ngStyle"], [4, "ngIf"], [3, "ngTemplateOutlet", "ngTemplateOutletContext"], [3, "innerHTML"], [4, "ngFor", "ngForOf"], [1, "k-chart-shared-tooltip-marker"]], template: function TooltipPopupComponent_Template(rf, ctx) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtemplate"](0, TooltipPopupComponent_ng_template_0_Template, 3, 4, "ng-template", null, 0, _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtemplateRefExtractor"]); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtemplate"](2, TooltipPopupComponent_ng_template_2_Template, 1, 1, "ng-template", 1); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtemplate"](3, TooltipPopupComponent_ng_template_3_Template, 5, 3, "ng-template", 2); + } }, directives: [SeriesTooltipTemplateDirective, + SharedTooltipTemplateDirective, _angular_common__WEBPACK_IMPORTED_MODULE_8__["NgClass"], _angular_common__WEBPACK_IMPORTED_MODULE_8__["NgStyle"], _angular_common__WEBPACK_IMPORTED_MODULE_8__["NgIf"], _angular_common__WEBPACK_IMPORTED_MODULE_8__["NgTemplateOutlet"], _angular_common__WEBPACK_IMPORTED_MODULE_8__["NgForOf"]], encapsulation: 2 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](TooltipPopupComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + providers: [_progress_kendo_angular_popup__WEBPACK_IMPORTED_MODULE_6__["PopupService"], { + provide: _progress_kendo_angular_popup__WEBPACK_IMPORTED_MODULE_6__["POPUP_CONTAINER"], + useFactory: ɵ0$2 + }], + selector: 'kendo-chart-tooltip-popup', + template: "\n \n
\n \n \n \n \n
\n
\n\n \n \n \n \n \n \n \n \n \n \n \n
{{ categoryText }}
\n {{ point.series.name }}\n  \n \n \n \n
\n
\n " + }] + }], function () { return [{ type: _progress_kendo_angular_popup__WEBPACK_IMPORTED_MODULE_6__["PopupService"] }, { type: TooltipTemplateService }, { type: _progress_kendo_angular_l10n__WEBPACK_IMPORTED_MODULE_7__["LocalizationService"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["NgZone"] }]; }, { defaultSeriesTooltipTemplate: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ViewChild"], + args: [SeriesTooltipTemplateDirective] + }], defaultSharedTooltipTemplate: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ViewChild"], + args: [SharedTooltipTemplateDirective] + }], templateRef: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ViewChild"], + args: ['content'] + }], animate: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] + }], classNames: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] + }], popupSettings: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] + }], wrapperClass: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] + }], leave: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Output"] + }] }); })(); + return TooltipPopupComponent; +}(BaseTooltip)); + +var ɵ0$3 = bodyFactory; +// Codelyzer 2.0.0-beta2 doesn't handle inherited members + + +var CrosshairTooltipComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(CrosshairTooltipComponent, _super); + function CrosshairTooltipComponent(popupService, localizationService) { + var _this = _super.call(this, popupService, localizationService) || this; + _this.animate = false; + return _this; + } + CrosshairTooltipComponent.prototype.show = function (e) { + _super.prototype.show.call(this, e); + this.value = e.value; + this.popupRef.popup.changeDetectorRef.detectChanges(); + }; + + CrosshairTooltipComponent.ctorParameters = function () { return [ + { type: _progress_kendo_angular_popup__WEBPACK_IMPORTED_MODULE_6__["PopupService"] }, + { type: _progress_kendo_angular_l10n__WEBPACK_IMPORTED_MODULE_7__["LocalizationService"] } + ]; }; + CrosshairTooltipComponent.propDecorators = { + templateRef: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ViewChild"], args: ['content',] }], + key: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + popupSettings: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }] + }; +CrosshairTooltipComponent.ɵfac = function CrosshairTooltipComponent_Factory(t) { return new (t || CrosshairTooltipComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](_progress_kendo_angular_popup__WEBPACK_IMPORTED_MODULE_6__["PopupService"]), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](_progress_kendo_angular_l10n__WEBPACK_IMPORTED_MODULE_7__["LocalizationService"])); }; +CrosshairTooltipComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: CrosshairTooltipComponent, selectors: [["kendo-chart-crosshair-tooltip"]], viewQuery: function CrosshairTooltipComponent_Query(rf, ctx) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵviewQuery"](_c0, true); + } if (rf & 2) { + var _t; + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵqueryRefresh"](_t = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵloadQuery"]()) && (ctx.templateRef = _t.first); + } }, inputs: { key: "key", popupSettings: "popupSettings" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵProvidersFeature"]([_progress_kendo_angular_popup__WEBPACK_IMPORTED_MODULE_6__["PopupService"], { + provide: _progress_kendo_angular_popup__WEBPACK_IMPORTED_MODULE_6__["POPUP_CONTAINER"], + useFactory: ɵ0$3 + }]), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 2, vars: 0, consts: [["content", ""], [1, "k-chart-tooltip", "k-chart-crosshair-tooltip", 3, "ngStyle"]], template: function CrosshairTooltipComponent_Template(rf, ctx) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtemplate"](0, CrosshairTooltipComponent_ng_template_0_Template, 2, 2, "ng-template", null, 0, _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtemplateRefExtractor"]); + } }, directives: [_angular_common__WEBPACK_IMPORTED_MODULE_8__["NgStyle"]], encapsulation: 2 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](CrosshairTooltipComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + providers: [_progress_kendo_angular_popup__WEBPACK_IMPORTED_MODULE_6__["PopupService"], { + provide: _progress_kendo_angular_popup__WEBPACK_IMPORTED_MODULE_6__["POPUP_CONTAINER"], + useFactory: ɵ0$3 + }], + selector: 'kendo-chart-crosshair-tooltip', + template: "\n \n
\n {{ value }}\n
\n
\n " + }] + }], function () { return [{ type: _progress_kendo_angular_popup__WEBPACK_IMPORTED_MODULE_6__["PopupService"] }, { type: _progress_kendo_angular_l10n__WEBPACK_IMPORTED_MODULE_7__["LocalizationService"] }]; }, { templateRef: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ViewChild"], + args: ['content'] + }], key: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] + }], popupSettings: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] + }] }); })(); + return CrosshairTooltipComponent; +}(BaseTooltip)); + +var AXES = ["categoryAxis", "valueAxis", "xAxis", "yAxis"]; + +var CrosshairTooltipsContainerComponent = (function () { + function CrosshairTooltipsContainerComponent() { + this.tooltipKeys = []; + this.tooltipsMap = {}; + } + CrosshairTooltipsContainerComponent.prototype.show = function (e) { + var tooltipComponents = this.crossahirTooltipComponents.toArray(); + var axisName = e.axisName; + var axisIndex = e.axisIndex; + for (var idx = 0; idx < tooltipComponents.length; idx++) { + if (tooltipComponents[idx].key === axisName + axisIndex) { + tooltipComponents[idx].show(e); + break; + } + } + }; + CrosshairTooltipsContainerComponent.prototype.hide = function () { + var tooltipComponents = this.crossahirTooltipComponents.toArray(); + for (var idx = 0; idx < tooltipComponents.length; idx++) { + tooltipComponents[idx].hide(); + } + }; + Object.defineProperty(CrosshairTooltipsContainerComponent.prototype, "active", { + get: function () { + return this.tooltipKeys.length > 0; + }, + enumerable: true, + configurable: true + }); + CrosshairTooltipsContainerComponent.prototype.createCrosshairTooltips = function (options) { + var newMap = this.mapTooltips(options); + var map = this.tooltipsMap; + for (var key in map) { + if (!newMap[key]) { + this.removeTooltip(key); + delete map[key]; + } + } + for (var key in newMap) { + if (!map[key]) { + map[key] = newMap[key]; + this.tooltipKeys.push(key); + } + } + }; + CrosshairTooltipsContainerComponent.prototype.removeTooltip = function (key) { + var keys = this.tooltipKeys; + for (var idx = 0; idx < keys.length; idx++) { + if (keys[idx] === key) { + keys.splice(idx, 1); + break; + } + } + }; + CrosshairTooltipsContainerComponent.prototype.mapTooltips = function (options) { + var map = {}; + for (var idx = 0; idx < AXES.length; idx++) { + var tooltips = this.axesCrosshairTooltipOptions(options, AXES[idx]); + for (var tooltipIdx = 0; tooltipIdx < tooltips.length; tooltipIdx++) { + var tooltip = tooltips[tooltipIdx]; + map[tooltip.name + tooltip.index] = tooltip; + } + } + return map; + }; + CrosshairTooltipsContainerComponent.prototype.axesCrosshairTooltipOptions = function (options, name) { + var result = []; + if (options[name]) { + var axes = [].concat(options[name]); + for (var idx = 0; idx < axes.length; idx++) { + var tooltip = (axes[idx].crosshair || {}).tooltip; + if (tooltip && tooltip.visible) { + result.push({ + index: idx, + name: name + }); + } + } + } + return result; + }; + CrosshairTooltipsContainerComponent.propDecorators = { + popupSettings: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + crossahirTooltipComponents: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ViewChildren"], args: [CrosshairTooltipComponent,] }] + }; +CrosshairTooltipsContainerComponent.ɵfac = function CrosshairTooltipsContainerComponent_Factory(t) { return new (t || CrosshairTooltipsContainerComponent)(); }; +CrosshairTooltipsContainerComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: CrosshairTooltipsContainerComponent, selectors: [["kendo-chart-crosshair-tooltips-container"]], viewQuery: function CrosshairTooltipsContainerComponent_Query(rf, ctx) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵviewQuery"](CrosshairTooltipComponent, true); + } if (rf & 2) { + var _t; + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵqueryRefresh"](_t = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵloadQuery"]()) && (ctx.crossahirTooltipComponents = _t); + } }, inputs: { popupSettings: "popupSettings" }, decls: 1, vars: 1, consts: [[3, "key", "popupSettings", 4, "ngFor", "ngForOf"], [3, "key", "popupSettings"]], template: function CrosshairTooltipsContainerComponent_Template(rf, ctx) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtemplate"](0, CrosshairTooltipsContainerComponent_kendo_chart_crosshair_tooltip_0_Template, 1, 2, "kendo-chart-crosshair-tooltip", 0); + } if (rf & 2) { + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵproperty"]("ngForOf", ctx.tooltipKeys); + } }, directives: [_angular_common__WEBPACK_IMPORTED_MODULE_8__["NgForOf"], CrosshairTooltipComponent], encapsulation: 2 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](CrosshairTooltipsContainerComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + selector: 'kendo-chart-crosshair-tooltips-container', + template: "\n \n \n " + }] + }], function () { return []; }, { popupSettings: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] + }], crossahirTooltipComponents: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ViewChildren"], + args: [CrosshairTooltipComponent] + }] }); })(); + return CrosshairTooltipsContainerComponent; +}()); + +var getTouch = function (domEvent) { + return { + x: { + location: domEvent.pageX + }, + y: { + location: domEvent.pageY + } + }; +}; +var eventArgs = function (e, previousArgs) { + var pointers = e.pointers; + var pointer = pointers[0]; + var xLocation = pointer.pageX; + var yLocation = pointer.pageY; + var distance = 0; + if (pointers.length > 1) { + var pointer1 = pointers[0]; + var pointer2 = pointers[1]; + distance = Math.sqrt(Math.pow(pointer1.pageX - pointer2.pageX, 2) + Math.pow(pointer1.pageY - pointer2.pageY, 2)); + } + return { + distance: distance, + event: e.srcEvent, + preventDefault: function () { + e.preventDefault(); + }, + target: e.target, + touches: pointers.map(getTouch), + type: e.type, + x: { + delta: previousArgs ? xLocation - previousArgs.x.location : 0, + initialDelta: e.deltaX, + location: xLocation, + startLocation: xLocation - e.deltaX + }, + y: { + delta: previousArgs ? yLocation - previousArgs.y.location : 0, + initialDelta: e.deltaY, + location: yLocation, + startLocation: yLocation - e.deltaY + } + }; +}; +function shouldBindGroup(groupNames, events) { + for (var idx = 0; idx < groupNames.length; idx++) { + if (events[groupNames[idx]]) { + return true; + } + } + return false; +} +var eventGroups = [{ + end: 'panend', + move: 'panmove', + start: 'panstart' + }, { + gesturechange: 'pinchmove', + gestureend: 'pinchend', + gesturestart: 'pinchstart' + }, { + press: 'press' + }, { + tap: 'tap' + }]; + +var DomEvents = (function () { + function DomEvents(hammerInstance, events) { + this.hammerInstance = hammerInstance; + this.eventHandlers = {}; + this.tap = this.tap.bind(this); + this.press = this.press.bind(this); + this.panstart = this.panstart.bind(this); + this.panmove = this.panmove.bind(this); + this.panend = this.panend.bind(this); + this.pinchstart = this.pinchstart.bind(this); + this.pinchmove = this.pinchmove.bind(this); + this.pinchend = this.pinchend.bind(this); + if (events) { + this.bind(events); + } + } + DomEvents.prototype.tap = function (e) { + this.trigger('tap', e); + }; + DomEvents.prototype.press = function (e) { + this.trigger('press', e); + }; + DomEvents.prototype.panstart = function (e) { + delete this.previous; + this.previous = this.trigger('start', e); + }; + DomEvents.prototype.panmove = function (e) { + this.previous = this.trigger('move', e); + }; + DomEvents.prototype.panend = function (e) { + this.trigger('end', e); + delete this.previous; + }; + DomEvents.prototype.pinchstart = function (e) { + this.trigger('gesturestart', e); + }; + DomEvents.prototype.pinchmove = function (e) { + this.trigger('gesturechange', e); + }; + DomEvents.prototype.pinchend = function (e) { + this.trigger('gestureend', e); + }; + DomEvents.prototype.trigger = function (name, e) { + var args = eventArgs(e, this.previous); + if (this.eventHandlers[name]) { + this.eventHandlers[name](args); + } + return args; + }; + DomEvents.prototype.bind = function (events) { + if (events === void 0) { events = {}; } + this.unbind(); + this.eventHandlers = events; + for (var idx = 0; idx < eventGroups.length; idx++) { + var eventGroup = eventGroups[idx]; + var groupNames = Object.keys(eventGroup); + if (shouldBindGroup(groupNames, events)) { + for (var nameIdx = 0; nameIdx < groupNames.length; nameIdx++) { + var name_1 = eventGroup[groupNames[nameIdx]]; + this.hammerInstance.on(name_1, this[name_1]); + } + } + } + }; + DomEvents.prototype.unbind = function () { + if (this.hammerInstance) { + this.hammerInstance.off(); + } + this.eventHandlers = {}; + }; + DomEvents.prototype.destroy = function () { + if (this.hammerInstance) { + this.hammerInstance.destroy(); + delete this.hammerInstance; + } + delete this.eventHandlers; + }; + DomEvents.prototype.toggleDrag = function (enable) { + this.toggle('pan', enable); + }; + DomEvents.prototype.toggleZoom = function (enable) { + this.toggle('pinch', enable); + }; + DomEvents.prototype.toggle = function (recognizer, enable) { + if (this.hammerInstance) { + var instanceRecognizer = this.hammerInstance.get(recognizer); + instanceRecognizer.set({ + enable: enable + }); + } + }; + return DomEvents; +}()); + +var MISSING_HAMMER_MESSAGE = 'Hammerjs is not loaded.' + + 'Solution: http://www.telerik.com/kendo-angular-ui/components/charts/troubleshooting/#toc-hammerjs-is-not-loaded'; + +var DomEventsBuilder$1 = (function () { + function DomEventsBuilder$$1() { + } + DomEventsBuilder$$1.create = function (element, events) { + if (typeof window !== 'undefined') { + var HAMMER = window.Hammer; + if (!HAMMER) { + if (Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["isDevMode"])()) { + throw new Error(MISSING_HAMMER_MESSAGE); + } + return; + } + var hammerInstance = new HAMMER(element, { + recognizers: [ + [HAMMER.Tap], + [HAMMER.Pan], + [HAMMER.Pinch], + [HAMMER.Press, { time: 0 }] + ] + }); + return new DomEvents(hammerInstance, events); + } + }; + return DomEventsBuilder$$1; +}()); + +var dateCategoryAxisFormats = _progress_kendo_charts__WEBPACK_IMPORTED_MODULE_4__["DateCategoryAxis"].prototype.options.labels.dateFormats; +var dateValueAxisFormats = _progress_kendo_charts__WEBPACK_IMPORTED_MODULE_4__["DateValueAxis"].prototype.options.labels.dateFormats; +var dateFormats = { + milliseconds: "HH:mm:ss.SSS", + seconds: { time: 'medium' }, + minutes: { time: 'short' }, + hours: { time: 'short' }, + days: { skeleton: 'Md' }, + weeks: { skeleton: 'Md' }, + months: { skeleton: 'yyMMM' }, + years: { skeleton: 'y' } +}; +Object.assign(dateCategoryAxisFormats, dateFormats); +Object.assign(dateValueAxisFormats, dateFormats); +_progress_kendo_charts__WEBPACK_IMPORTED_MODULE_4__["DomEventsBuilder"].register(DomEventsBuilder$1); + +function hasObservers(emitter) { + return emitter.observers.length > 0; +} + +var ChartComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(ChartComponent, _super); + function ChartComponent(configurationService, themeService, element, intl, localizationService, ngZone, instanceEventService, changeDetector, renderer) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + _this.themeService = themeService; + _this.element = element; + _this.intl = intl; + _this.localizationService = localizationService; + _this.ngZone = ngZone; + _this.instanceEventService = instanceEventService; + _this.changeDetector = changeDetector; + _this.renderer = renderer; + + _this.legendItemClick = new _angular_core__WEBPACK_IMPORTED_MODULE_1__["EventEmitter"](); + + _this.resizeRateLimit = 10; + _this.theme = null; + _this.suppressTransitions = false; + _this.rtl = false; + _this.hostClasses = ['k-chart', 'k-widget']; + _this.themeService.loadTheme(); + _this.refreshWait(); + return _this; + } + ChartComponent.prototype.ngOnInit = function () { + var _this = this; + if (this.element) { + this.hostClasses.forEach(function (name) { + _this.renderer.addClass(_this.element.nativeElement, name); + }); + this.renderer.setStyle(this.element.nativeElement, 'position', 'relative'); + } + }; + ChartComponent.prototype.ngAfterViewInit = function () { + var _this = this; + if (this.canRender) { + this.ngZone.runOutsideAngular(function () { + var chartMouseleave = _this.renderer.listen(_this.surfaceElement.nativeElement, 'mouseleave', _this.chartMouseleave.bind(_this)); + _this.domSubscriptions = function () { + chartMouseleave(); + }; + }); + } + this.setDirection(); + this.subscriptions = this.intl.changes.subscribe(this.intlChange.bind(this)); + this.subscriptions.add(this.localizationService.changes.subscribe(this.rtlChange.bind(this))); + }; + ChartComponent.prototype.ngAfterViewChecked = function () { + var _this = this; + if (this.instance && this.autoResize) { + this.ngZone.runOutsideAngular(function () { + clearTimeout(_this.resizeTimeout); + _this.resizeTimeout = setTimeout(function () { + _this.resize(); + }, 0); + }); + } + }; + ChartComponent.prototype.ngOnChanges = function (changes) { + var store = this.configurationService.store; + copyChanges(changes, store); + store.popupSettings = null; + this.configurationService.push(store); + }; + + ChartComponent.prototype.notifyChanges = function (changes) { + this.ngOnChanges(toSimpleChanges(changes)); + }; + ChartComponent.prototype.ngOnDestroy = function () { + this.destroyed = true; + this.subscription.unsubscribe(); + if (this.domSubscriptions) { + this.domSubscriptions(); + this.domSubscriptions = null; + } + if (this.instance) { + this.instance.destroy(); + this.instance = null; + } + if (this.subscriptions) { + this.subscriptions.unsubscribe(); + } + clearTimeout(this.resizeTimeout); + clearTimeout(this.redrawTimeout); + }; + ChartComponent.prototype.createInstance = function (element, observer) { + this.instance = new _progress_kendo_charts__WEBPACK_IMPORTED_MODULE_4__["Chart"](element, this.options, this.theme, { + intlService: this.intl, + observer: observer, + rtl: this.rtl, + sender: this + }); + }; + + ChartComponent.prototype.exportImage = function (options) { + if (options === void 0) { options = {}; } + return Object(_progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_10__["exportImage"])(this.exportVisual(options), options); + }; + + ChartComponent.prototype.exportSVG = function (options) { + if (options === void 0) { options = {}; } + return Object(_progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_10__["exportSVG"])(this.exportVisual(options), options); + }; + + ChartComponent.prototype.exportVisual = function (options) { + if (options === void 0) { options = {}; } + return this.instance.exportVisual(options); + }; + + ChartComponent.prototype.findAxisByName = function (name) { + if (this.instance) { + return this.instance.findAxisByName(name); + } + }; + + ChartComponent.prototype.findPaneByIndex = function (index) { + if (this.instance) { + return this.instance.findPaneByIndex(index); + } + }; + + ChartComponent.prototype.findPaneByName = function (name) { + if (this.instance) { + return this.instance.findPaneByName(name); + } + }; + + ChartComponent.prototype.getPlotArea = function () { + if (this.instance) { + return this.instance.plotArea(); + } + }; + + ChartComponent.prototype.toggleHighlight = function (show, filter) { + if (this.instance) { + this.instance.toggleHighlight(show, filter); + } + }; + + ChartComponent.prototype.hideTooltip = function () { + if (this.instance) { + this.instance.hideTooltip(); + } + }; + + ChartComponent.prototype.showTooltip = function (filter) { + if (this.instance) { + this.instance.showTooltip(filter); + } + }; + ChartComponent.prototype.init = function () { + if (!this.canRender) { + return; + } + var element = this.surfaceElement.nativeElement; + var instanceObserver = new ChartInstanceObserver(this); + this.createInstance(element, instanceObserver); + }; + + ChartComponent.prototype.resize = function () { + if (this.instance) { + this.instance.resize(); + } + }; + + ChartComponent.prototype.onResize = function (_event) { + if (this.autoResize) { + this.resize(); + } + }; + ChartComponent.prototype.onLegendItemClick = function (e) { + var _this = this; + this.run(function () { + var args = new LegendItemClickEvent(e, _this); + _this.legendItemClick.emit(args); + if (!args.isDefaultPrevented()) { + var series = _this.seriesComponents.toArray()[e.series.index]; + if (!series) { + return; + } + if (e.pointIndex === undefined) { + series.toggleVisibility(); + } + else { + series.togglePointVisibility(e.pointIndex); + } + _this.suppressTransitions = true; + } + }, hasObservers(this.legendItemClick), this.seriesComponents.length > 0); + }; + ChartComponent.prototype.onInit = function (e) { + this.instance = e.sender; + }; + ChartComponent.prototype.onRender = function (e) { + var _this = this; + var donutCenterStyle = this.getDonutCenterStyle(); + this.run(function () { + var args = new RenderEvent(e, _this); + _this.surface = e.sender.surface; + _this.render.emit(args); + _this.donutCenterStyle = donutCenterStyle; + }, hasObservers(this.render), this.donutCenterStyle !== donutCenterStyle); + }; + ChartComponent.prototype.onShowTooltip = function (e) { + var _this = this; + this.run(function () { + if (!e.crosshair) { + _this.tooltipInstance.show(e); + } + else { + _this.crossahirTooltips.show(e); + } + }, !e.crosshair, true); + }; + ChartComponent.prototype.onHideTooltip = function (e) { + if (!e.crosshair) { + if (this.tooltipInstance.active) { + this.tooltipInstance.hide(); + this.detectChanges(); + } + } + else if (this.crossahirTooltips.active) { + this.crossahirTooltips.hide(); + this.detectChanges(); + } + }; + ChartComponent.prototype.trigger = function (name, e) { + if (name === 'resize') { + return; + } + var emitter = this.activeEmitter(name); + if (emitter) { + var args_1 = this.instanceEventService.create(name, e, this); + this.run(function () { + emitter.emit(args_1); + }); + return args_1.isDefaultPrevented && args_1.isDefaultPrevented(); + } + }; + ChartComponent.prototype.requiresHandlers = function (names) { + for (var idx = 0; idx < names.length; idx++) { + if (this.activeEmitter(names[idx])) { + return true; + } + } + return false; + }; + ChartComponent.prototype.refresh = function () { + clearTimeout(this.redrawTimeout); + this.updateDirection(); + this.crossahirTooltips.createCrosshairTooltips(this.options); + this.setChartAreaSize(); + if (!this.instance) { + this.init(); + return; + } + var transitions = this.options.transitions; + if (this.suppressTransitions) { + this.options.transitions = false; + } + this.updateOptions(); + if (this.suppressTransitions) { + this.options.transitions = transitions; + this.suppressTransitions = false; + } + }; + ChartComponent.prototype.setChartAreaSize = function () { + if (!this.element) { + return; + } + var element = this.element.nativeElement; + var chartArea = this.options.chartArea || {}; + if (chartArea.width) { + element.style.width = chartArea.width + "px"; + } + if (chartArea.height) { + element.style.height = chartArea.height + "px"; + } + }; + ChartComponent.prototype.updateOptions = function () { + this.instance.setOptions(this.options); + }; + + ChartComponent.prototype.tooltipMouseleave = function (e) { + var relatedTarget = e.relatedTarget; + var chartElement = this.element.nativeElement; + if (this.instance && (!relatedTarget || !hasParent(relatedTarget, chartElement))) { + this.instance.hideElements(); + } + }; + + ChartComponent.prototype.chartMouseleave = function (e) { + var relatedTarget = e.relatedTarget; + var chartElement = this.element.nativeElement; + if (this.instance && (!relatedTarget || !(this.tooltipInstance.containsElement(relatedTarget) || hasParent(relatedTarget, chartElement))) && + !this.instance.handlingTap) { + this.instance.hideElements(); + } + }; + Object.defineProperty(ChartComponent.prototype, "canRender", { + get: function () { + return Object(_progress_kendo_angular_common__WEBPACK_IMPORTED_MODULE_5__["isDocumentAvailable"])() && Boolean(this.surfaceElement); + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(ChartComponent.prototype, "autoResize", { + get: function () { + return this.resizeRateLimit > 0; + }, + enumerable: true, + configurable: true + }); + ChartComponent.prototype.activeEmitter = function (name) { + var emitter = this[name]; + if (emitter && emitter.emit && hasObservers(emitter)) { + return emitter; + } + }; + ChartComponent.prototype.getDonutCenterStyle = function () { + if (!this.instance || !this.options || !this.options.series) { + return; + } + var firstSeries = this.options.series[0]; + var charts = this.instance._plotArea.charts; + if (!firstSeries || firstSeries.type !== 'donut' || charts[0].points.length === 0) { + return; + } + var firstPoint = charts[0].points[0]; + var center = firstPoint.box.center(); + var radius = firstPoint.sector.innerRadius; + var top = center.y - radius; + var left = center.x - radius; + var size = radius * 2; + return { + height: size + 'px', + left: left + 'px', + top: top + 'px', + width: size + 'px' + }; + }; + ChartComponent.prototype.refreshWait = function () { + var _this = this; + this.ngZone.runOutsideAngular(function () { + _this.subscription = Object(rxjs__WEBPACK_IMPORTED_MODULE_2__["combineLatest"])(_this.configurationService.onChange$, _this.themeService.onChange$).pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["tap"])(function (result) { + _this.options = result[0]; + _this.theme = result[1]; + }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["auditTime"])(THROTTLE_MS)) + .subscribe(function () { + _this.refresh(); + }); + }); + }; + ChartComponent.prototype.run = function (callback, inZone, detectChanges) { + if (inZone === void 0) { inZone = true; } + if (inZone) { + if (detectChanges) { + this.changeDetector.markForCheck(); + } + this.ngZone.run(callback); + } + else { + callback(); + if (detectChanges) { + this.detectChanges(); + } + } + }; + ChartComponent.prototype.detectChanges = function () { + if (!this.destroyed) { + this.changeDetector.detectChanges(); + } + }; + ChartComponent.prototype.intlChange = function () { + if (this.instance) { + this.deferredRedraw(); + } + }; + ChartComponent.prototype.rtlChange = function () { + if (this.instance && this.rtl !== this.isRTL) { + this.deferredRedraw(); + } + }; + ChartComponent.prototype.deferredRedraw = function () { + var _this = this; + this.ngZone.runOutsideAngular(function () { + clearTimeout(_this.redrawTimeout); + _this.redrawTimeout = setTimeout(function () { + _this.updateDirection(); + _this.instance.noTransitionsRedraw(); + }, 0); + }); + }; + ChartComponent.prototype.updateDirection = function () { + var current = this.isRTL; + if (this.rtl !== current) { + this.setDirection(); + if (this.instance) { + this.instance.setDirection(current); + } + } + }; + ChartComponent.prototype.setDirection = function () { + this.rtl = this.isRTL; + if (this.element) { + this.renderer.setAttribute(this.element.nativeElement, 'dir', this.rtl ? 'rtl' : 'ltr'); + } + }; + Object.defineProperty(ChartComponent.prototype, "isRTL", { + get: function () { + return Boolean(this.localizationService.rtl); + }, + enumerable: true, + configurable: true + }); + + ChartComponent.ctorParameters = function () { return [ + { type: ConfigurationService }, + { type: ThemeService }, + { type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ElementRef"] }, + { type: _progress_kendo_angular_intl__WEBPACK_IMPORTED_MODULE_9__["IntlService"] }, + { type: _progress_kendo_angular_l10n__WEBPACK_IMPORTED_MODULE_7__["LocalizationService"] }, + { type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["NgZone"] }, + { type: InstanceEventService }, + { type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectorRef"] }, + { type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Renderer2"] } + ]; }; + ChartComponent.propDecorators = { + legendItemClick: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Output"] }], + resizeRateLimit: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + popupSettings: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + seriesComponents: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ContentChildren"], args: [SeriesItemComponent, { descendants: true },] }], + donutCenterTemplate: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ContentChild"], args: [DonutCenterTemplateDirective,] }], + tooltipInstance: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ViewChild"], args: [TooltipPopupComponent,] }], + crossahirTooltips: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ViewChild"], args: [CrosshairTooltipsContainerComponent,] }], + surfaceElement: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ViewChild"], args: ['surface',] }] + }; +ChartComponent.ɵfac = function ChartComponent_Factory(t) { return new (t || ChartComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ThemeService), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_1__["ElementRef"]), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](_progress_kendo_angular_intl__WEBPACK_IMPORTED_MODULE_9__["IntlService"]), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](_progress_kendo_angular_l10n__WEBPACK_IMPORTED_MODULE_7__["LocalizationService"]), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_1__["NgZone"]), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](InstanceEventService), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectorRef"]), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_1__["Renderer2"])); }; +ChartComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: ChartComponent, selectors: [["kendo-chart"]], contentQueries: function ChartComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵcontentQuery"](dirIndex, DonutCenterTemplateDirective, true); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵcontentQuery"](dirIndex, SeriesItemComponent, true); + } if (rf & 2) { + var _t; + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵqueryRefresh"](_t = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵloadQuery"]()) && (ctx.donutCenterTemplate = _t.first); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵqueryRefresh"](_t = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵloadQuery"]()) && (ctx.seriesComponents = _t); + } }, viewQuery: function ChartComponent_Query(rf, ctx) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵviewQuery"](TooltipPopupComponent, true); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵviewQuery"](CrosshairTooltipsContainerComponent, true); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵviewQuery"](_c1, true); + } if (rf & 2) { + var _t; + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵqueryRefresh"](_t = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵloadQuery"]()) && (ctx.tooltipInstance = _t.first); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵqueryRefresh"](_t = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵloadQuery"]()) && (ctx.crossahirTooltips = _t.first); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵqueryRefresh"](_t = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵloadQuery"]()) && (ctx.surfaceElement = _t.first); + } }, inputs: { resizeRateLimit: "resizeRateLimit", popupSettings: "popupSettings" }, outputs: { legendItemClick: "legendItemClick" }, exportAs: ["kendoChart"], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵProvidersFeature"]([ + ConfigurationService, + TooltipTemplateService, + InstanceEventService, + _progress_kendo_angular_l10n__WEBPACK_IMPORTED_MODULE_7__["LocalizationService"], + { + provide: _progress_kendo_angular_l10n__WEBPACK_IMPORTED_MODULE_7__["L10N_PREFIX"], + useValue: 'kendo.chart' + } + ]), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"], _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵNgOnChangesFeature"]], decls: 6, vars: 4, consts: [[1, "k-chart-surface"], ["surface", ""], [3, "popupSettings"], [3, "popupSettings", "leave"], [3, "rateLimit", "resize"], ["class", "k-chart-donut-center", 3, "ngStyle", 4, "ngIf"], [1, "k-chart-donut-center", 3, "ngStyle"], [3, "ngTemplateOutlet"]], template: function ChartComponent_Template(rf, ctx) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelement"](0, "div", 0, 1); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelement"](2, "kendo-chart-crosshair-tooltips-container", 2); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](3, "kendo-chart-tooltip-popup", 3); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵlistener"]("leave", function ChartComponent_Template_kendo_chart_tooltip_popup_leave_3_listener($event) { return ctx.tooltipMouseleave($event); }); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](4, "kendo-resize-sensor", 4); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵlistener"]("resize", function ChartComponent_Template_kendo_resize_sensor_resize_4_listener($event) { return ctx.onResize($event); }); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtemplate"](5, ChartComponent_div_5_Template, 2, 2, "div", 5); + } if (rf & 2) { + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](2); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵproperty"]("popupSettings", ctx.popupSettings); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵproperty"]("popupSettings", ctx.popupSettings); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵproperty"]("rateLimit", ctx.resizeRateLimit); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵproperty"]("ngIf", ctx.donutCenterStyle && ctx.donutCenterTemplate); + } }, directives: [CrosshairTooltipsContainerComponent, + TooltipPopupComponent, _progress_kendo_angular_common__WEBPACK_IMPORTED_MODULE_5__["ResizeSensorComponent"], _angular_common__WEBPACK_IMPORTED_MODULE_8__["NgIf"], _angular_common__WEBPACK_IMPORTED_MODULE_8__["NgStyle"], _angular_common__WEBPACK_IMPORTED_MODULE_8__["NgTemplateOutlet"]], encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](ChartComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + exportAs: 'kendoChart', + providers: [ + ConfigurationService, + TooltipTemplateService, + InstanceEventService, + _progress_kendo_angular_l10n__WEBPACK_IMPORTED_MODULE_7__["LocalizationService"], + { + provide: _progress_kendo_angular_l10n__WEBPACK_IMPORTED_MODULE_7__["L10N_PREFIX"], + useValue: 'kendo.chart' + } + ], + selector: 'kendo-chart', + template: "\n
\n \n \n \n \n \n
\n \n
\n " + }] + }], function () { return [{ type: ConfigurationService }, { type: ThemeService }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ElementRef"] }, { type: _progress_kendo_angular_intl__WEBPACK_IMPORTED_MODULE_9__["IntlService"] }, { type: _progress_kendo_angular_l10n__WEBPACK_IMPORTED_MODULE_7__["LocalizationService"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["NgZone"] }, { type: InstanceEventService }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectorRef"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Renderer2"] }]; }, { legendItemClick: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Output"] + }], resizeRateLimit: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] + }], popupSettings: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] + }], seriesComponents: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ContentChildren"], + args: [SeriesItemComponent, { descendants: true }] + }], donutCenterTemplate: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ContentChild"], + args: [DonutCenterTemplateDirective] + }], tooltipInstance: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ViewChild"], + args: [TooltipPopupComponent] + }], crossahirTooltips: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ViewChild"], + args: [CrosshairTooltipsContainerComponent] + }], surfaceElement: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ViewChild"], + args: ['surface'] + }] }); })(); + return ChartComponent; +}(ChartComponentGenerated)); + + +var AxisDefaultsComponentGenerated = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(AxisDefaultsComponentGenerated, _super); + function AxisDefaultsComponentGenerated(configurationService) { + var _this = _super.call(this, 'axisDefaults', configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + AxisDefaultsComponentGenerated.propDecorators = { + background: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + color: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + line: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + majorGridLines: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + majorTicks: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + minorGridLines: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + minorTicks: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + narrowRange: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + pane: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + plotBands: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + reverse: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + startAngle: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + visible: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + crosshair: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + labels: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + title: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }] + }; +AxisDefaultsComponentGenerated.ɵfac = function AxisDefaultsComponentGenerated_Factory(t) { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinvalidFactory"](); }; +AxisDefaultsComponentGenerated.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: AxisDefaultsComponentGenerated, inputs: { background: "background", color: "color", line: "line", majorGridLines: "majorGridLines", majorTicks: "majorTicks", minorGridLines: "minorGridLines", minorTicks: "minorTicks", narrowRange: "narrowRange", pane: "pane", plotBands: "plotBands", reverse: "reverse", startAngle: "startAngle", visible: "visible", crosshair: "crosshair", labels: "labels", title: "title" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]] }); + + return AxisDefaultsComponentGenerated; +}(SettingsComponent)); + + +var AxisDefaultsComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(AxisDefaultsComponent, _super); + // Place custom properties here + function AxisDefaultsComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + + AxisDefaultsComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +AxisDefaultsComponent.ɵfac = function AxisDefaultsComponent_Factory(t) { return new (t || AxisDefaultsComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +AxisDefaultsComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: AxisDefaultsComponent, selectors: [["kendo-chart-axis-defaults"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function AxisDefaultsComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](AxisDefaultsComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-axis-defaults', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return AxisDefaultsComponent; +}(AxisDefaultsComponentGenerated)); + + +var AxisDefaultsCrosshairComponentGenerated = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(AxisDefaultsCrosshairComponentGenerated, _super); + function AxisDefaultsCrosshairComponentGenerated(configurationService) { + var _this = _super.call(this, 'axisDefaults.crosshair', configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + AxisDefaultsCrosshairComponentGenerated.propDecorators = { + color: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + dashType: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + opacity: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + visible: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + width: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + tooltip: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }] + }; +AxisDefaultsCrosshairComponentGenerated.ɵfac = function AxisDefaultsCrosshairComponentGenerated_Factory(t) { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinvalidFactory"](); }; +AxisDefaultsCrosshairComponentGenerated.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: AxisDefaultsCrosshairComponentGenerated, inputs: { color: "color", dashType: "dashType", opacity: "opacity", visible: "visible", width: "width", tooltip: "tooltip" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]] }); + + return AxisDefaultsCrosshairComponentGenerated; +}(SettingsComponent)); + + +var AxisDefaultsCrosshairComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(AxisDefaultsCrosshairComponent, _super); + // Place custom properties here + function AxisDefaultsCrosshairComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + _this.markAsVisible(); + return _this; + } + + AxisDefaultsCrosshairComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +AxisDefaultsCrosshairComponent.ɵfac = function AxisDefaultsCrosshairComponent_Factory(t) { return new (t || AxisDefaultsCrosshairComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +AxisDefaultsCrosshairComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: AxisDefaultsCrosshairComponent, selectors: [["kendo-chart-axis-defaults-crosshair"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function AxisDefaultsCrosshairComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](AxisDefaultsCrosshairComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-axis-defaults-crosshair', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return AxisDefaultsCrosshairComponent; +}(AxisDefaultsCrosshairComponentGenerated)); + + +var AxisDefaultsCrosshairTooltipComponentGenerated = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(AxisDefaultsCrosshairTooltipComponentGenerated, _super); + function AxisDefaultsCrosshairTooltipComponentGenerated(configurationService) { + var _this = _super.call(this, 'axisDefaults.crosshair.tooltip', configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + AxisDefaultsCrosshairTooltipComponentGenerated.propDecorators = { + background: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + border: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + color: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + font: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + format: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + padding: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + visible: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }] + }; +AxisDefaultsCrosshairTooltipComponentGenerated.ɵfac = function AxisDefaultsCrosshairTooltipComponentGenerated_Factory(t) { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinvalidFactory"](); }; +AxisDefaultsCrosshairTooltipComponentGenerated.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: AxisDefaultsCrosshairTooltipComponentGenerated, inputs: { background: "background", border: "border", color: "color", font: "font", format: "format", padding: "padding", visible: "visible" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]] }); + + return AxisDefaultsCrosshairTooltipComponentGenerated; +}(SettingsComponent)); + + +var AxisDefaultsCrosshairTooltipComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(AxisDefaultsCrosshairTooltipComponent, _super); + // Place custom properties here + function AxisDefaultsCrosshairTooltipComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + _this.markAsVisible(); + return _this; + } + + AxisDefaultsCrosshairTooltipComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +AxisDefaultsCrosshairTooltipComponent.ɵfac = function AxisDefaultsCrosshairTooltipComponent_Factory(t) { return new (t || AxisDefaultsCrosshairTooltipComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +AxisDefaultsCrosshairTooltipComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: AxisDefaultsCrosshairTooltipComponent, selectors: [["kendo-chart-axis-defaults-crosshair-tooltip"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function AxisDefaultsCrosshairTooltipComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](AxisDefaultsCrosshairTooltipComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-axis-defaults-crosshair-tooltip', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return AxisDefaultsCrosshairTooltipComponent; +}(AxisDefaultsCrosshairTooltipComponentGenerated)); + + +var AxisDefaultsLabelsComponentGenerated = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(AxisDefaultsLabelsComponentGenerated, _super); + function AxisDefaultsLabelsComponentGenerated(configurationService) { + var _this = _super.call(this, 'axisDefaults.labels', configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + AxisDefaultsLabelsComponentGenerated.propDecorators = { + content: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + font: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + format: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + margin: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + mirror: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + padding: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + rotation: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + skip: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + step: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + visible: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + visual: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }] + }; +AxisDefaultsLabelsComponentGenerated.ɵfac = function AxisDefaultsLabelsComponentGenerated_Factory(t) { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinvalidFactory"](); }; +AxisDefaultsLabelsComponentGenerated.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: AxisDefaultsLabelsComponentGenerated, inputs: { content: "content", font: "font", format: "format", margin: "margin", mirror: "mirror", padding: "padding", rotation: "rotation", skip: "skip", step: "step", visible: "visible", visual: "visual" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]] }); + + return AxisDefaultsLabelsComponentGenerated; +}(SettingsComponent)); + + +var AxisDefaultsLabelsComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(AxisDefaultsLabelsComponent, _super); + // Place custom properties here + function AxisDefaultsLabelsComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + + AxisDefaultsLabelsComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +AxisDefaultsLabelsComponent.ɵfac = function AxisDefaultsLabelsComponent_Factory(t) { return new (t || AxisDefaultsLabelsComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +AxisDefaultsLabelsComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: AxisDefaultsLabelsComponent, selectors: [["kendo-chart-axis-defaults-labels"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function AxisDefaultsLabelsComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](AxisDefaultsLabelsComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-axis-defaults-labels', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return AxisDefaultsLabelsComponent; +}(AxisDefaultsLabelsComponentGenerated)); + + +var AxisDefaultsTitleComponentGenerated = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(AxisDefaultsTitleComponentGenerated, _super); + function AxisDefaultsTitleComponentGenerated(configurationService) { + var _this = _super.call(this, 'axisDefaults.title', configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + AxisDefaultsTitleComponentGenerated.propDecorators = { + background: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + border: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + color: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + font: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + margin: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + padding: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + position: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + rotation: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + text: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + visible: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + visual: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }] + }; +AxisDefaultsTitleComponentGenerated.ɵfac = function AxisDefaultsTitleComponentGenerated_Factory(t) { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinvalidFactory"](); }; +AxisDefaultsTitleComponentGenerated.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: AxisDefaultsTitleComponentGenerated, inputs: { background: "background", border: "border", color: "color", font: "font", margin: "margin", padding: "padding", position: "position", rotation: "rotation", text: "text", visible: "visible", visual: "visual" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]] }); + + return AxisDefaultsTitleComponentGenerated; +}(SettingsComponent)); + + +var AxisDefaultsTitleComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(AxisDefaultsTitleComponent, _super); + // Place custom properties here + function AxisDefaultsTitleComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + + AxisDefaultsTitleComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +AxisDefaultsTitleComponent.ɵfac = function AxisDefaultsTitleComponent_Factory(t) { return new (t || AxisDefaultsTitleComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +AxisDefaultsTitleComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: AxisDefaultsTitleComponent, selectors: [["kendo-chart-axis-defaults-title"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function AxisDefaultsTitleComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](AxisDefaultsTitleComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-axis-defaults-title', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return AxisDefaultsTitleComponent; +}(AxisDefaultsTitleComponentGenerated)); + + +var CollectionComponent = (function () { + function CollectionComponent(configKey, configurationService, collectionService) { + var _this = this; + this.configKey = configKey; + this.configurationService = configurationService; + this.collectionService = collectionService; + this.items = []; + this.subscription = collectionService.onItemChange$.subscribe(function (changes) { return _this.processChanges(changes); }); + } + CollectionComponent.prototype.ngOnDestroy = function () { + this.subscription.unsubscribe(); + }; + CollectionComponent.prototype.ngAfterContentInit = function () { + var _this = this; + this.readItems(); + this.children.changes.subscribe(function () { return _this.readItems(); }); + }; + CollectionComponent.prototype.processChanges = function (changes) { + if (!this.children) { + return; + } + var index = this.children.toArray().indexOf(changes.sender); + if (index < 0) { + return; + } + this.items[index] = changes.options; + this.change(); + }; + CollectionComponent.prototype.readItems = function () { + this.items = this.children.map(function (s) { return s.options; }); + this.change(); + }; + CollectionComponent.prototype.change = function () { + this.configurationService.notify(new Change(this.configKey, this.items)); + }; +CollectionComponent.ɵfac = function CollectionComponent_Factory(t) { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinvalidFactory"](); }; +CollectionComponent.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: CollectionComponent }); + + return CollectionComponent; +}()); + + +var WeekStartDay; +(function (WeekStartDay) { + + WeekStartDay[WeekStartDay["Sunday"] = 0] = "Sunday"; + + WeekStartDay[WeekStartDay["Monday"] = 1] = "Monday"; + + WeekStartDay[WeekStartDay["Tuesday"] = 2] = "Tuesday"; + + WeekStartDay[WeekStartDay["Wednesday"] = 3] = "Wednesday"; + + WeekStartDay[WeekStartDay["Thursday"] = 4] = "Thursday"; + + WeekStartDay[WeekStartDay["Friday"] = 5] = "Friday"; + + WeekStartDay[WeekStartDay["Saturday"] = 6] = "Saturday"; +})(WeekStartDay || (WeekStartDay = {})); + + +var CategoryAxisItemComponentGenerated = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(CategoryAxisItemComponentGenerated, _super); + function CategoryAxisItemComponentGenerated(configurationService, collectionService, intl, localeId) { + var _this = _super.call(this, configurationService, collectionService) || this; + _this.configurationService = configurationService; + _this.collectionService = collectionService; + _this.notifyChanges({ weekStartDay: intl.firstDay(localeId) }); + return _this; + } + CategoryAxisItemComponentGenerated.propDecorators = { + autoBaseUnitSteps: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + axisCrossingValue: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + background: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + baseUnit: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + baseUnitStep: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + categories: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + color: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + justified: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + line: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + majorGridLines: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + majorTicks: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + max: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + maxDateGroups: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + maxDivisions: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + min: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + minorGridLines: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + minorTicks: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + name: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + pane: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + plotBands: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + reverse: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + roundToBaseUnit: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + startAngle: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + type: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + visible: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + weekStartDay: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + crosshair: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + labels: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + notes: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + select: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + title: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }] + }; +CategoryAxisItemComponentGenerated.ɵfac = function CategoryAxisItemComponentGenerated_Factory(t) { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinvalidFactory"](); }; +CategoryAxisItemComponentGenerated.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: CategoryAxisItemComponentGenerated, inputs: { autoBaseUnitSteps: "autoBaseUnitSteps", axisCrossingValue: "axisCrossingValue", background: "background", baseUnit: "baseUnit", baseUnitStep: "baseUnitStep", categories: "categories", color: "color", justified: "justified", line: "line", majorGridLines: "majorGridLines", majorTicks: "majorTicks", max: "max", maxDateGroups: "maxDateGroups", maxDivisions: "maxDivisions", min: "min", minorGridLines: "minorGridLines", minorTicks: "minorTicks", name: "name", pane: "pane", plotBands: "plotBands", reverse: "reverse", roundToBaseUnit: "roundToBaseUnit", startAngle: "startAngle", type: "type", visible: "visible", weekStartDay: "weekStartDay", crosshair: "crosshair", labels: "labels", notes: "notes", select: "select", title: "title" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]] }); + + return CategoryAxisItemComponentGenerated; +}(CollectionItemComponent)); + + +var CategoryAxisItemComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(CategoryAxisItemComponent, _super); + function CategoryAxisItemComponent(configurationService, collectionService, intl, localeId) { + var _this = _super.call(this, configurationService, collectionService, intl, localeId) || this; + _this.configurationService = configurationService; + _this.collectionService = collectionService; + return _this; + } + + CategoryAxisItemComponent.ctorParameters = function () { return [ + { type: ConfigurationService }, + { type: CollectionService }, + { type: _progress_kendo_angular_intl__WEBPACK_IMPORTED_MODULE_9__["IntlService"] }, + { type: String, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Inject"], args: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["LOCALE_ID"],] }] } + ]; }; +CategoryAxisItemComponent.ɵfac = function CategoryAxisItemComponent_Factory(t) { return new (t || CategoryAxisItemComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](CollectionService), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](_progress_kendo_angular_intl__WEBPACK_IMPORTED_MODULE_9__["IntlService"]), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_1__["LOCALE_ID"])); }; +CategoryAxisItemComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: CategoryAxisItemComponent, selectors: [["kendo-chart-category-axis-item"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵProvidersFeature"]([ConfigurationService]), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function CategoryAxisItemComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](CategoryAxisItemComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + providers: [ConfigurationService], + selector: 'kendo-chart-category-axis-item', + template: '' + }] + }], function () { return [{ type: ConfigurationService }, { type: CollectionService }, { type: _progress_kendo_angular_intl__WEBPACK_IMPORTED_MODULE_9__["IntlService"] }, { type: String, decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Inject"], + args: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["LOCALE_ID"]] + }] }]; }, null); })(); + return CategoryAxisItemComponent; +}(CategoryAxisItemComponentGenerated)); + + +var CategoryAxisComponentGenerated = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(CategoryAxisComponentGenerated, _super); + function CategoryAxisComponentGenerated(configurationService, collectionService) { + var _this = _super.call(this, 'categoryAxis', configurationService, collectionService) || this; + _this.configurationService = configurationService; + _this.collectionService = collectionService; + return _this; + } + CategoryAxisComponentGenerated.propDecorators = { + children: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ContentChildren"], args: [CategoryAxisItemComponent,] }] + }; +CategoryAxisComponentGenerated.ɵfac = function CategoryAxisComponentGenerated_Factory(t) { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinvalidFactory"](); }; +CategoryAxisComponentGenerated.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: CategoryAxisComponentGenerated, contentQueries: function CategoryAxisComponentGenerated_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵcontentQuery"](dirIndex, CategoryAxisItemComponent, false); + } if (rf & 2) { + var _t; + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵqueryRefresh"](_t = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵloadQuery"]()) && (ctx.children = _t); + } }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]] }); + + return CategoryAxisComponentGenerated; +}(CollectionComponent)); + + +var CategoryAxisComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(CategoryAxisComponent, _super); + // Place custom properties here + function CategoryAxisComponent(configurationService, collectionService) { + var _this = _super.call(this, configurationService, collectionService) || this; + _this.configurationService = configurationService; + _this.collectionService = collectionService; + return _this; + } + + CategoryAxisComponent.ctorParameters = function () { return [ + { type: ConfigurationService }, + { type: CollectionService } + ]; }; +CategoryAxisComponent.ɵfac = function CategoryAxisComponent_Factory(t) { return new (t || CategoryAxisComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](CollectionService)); }; +CategoryAxisComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: CategoryAxisComponent, selectors: [["kendo-chart-category-axis"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵProvidersFeature"]([CollectionService]), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function CategoryAxisComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](CategoryAxisComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + providers: [CollectionService], + selector: 'kendo-chart-category-axis', + template: '' + }] + }], function () { return [{ type: ConfigurationService }, { type: CollectionService }]; }, null); })(); + return CategoryAxisComponent; +}(CategoryAxisComponentGenerated)); + + +var CategoryAxisCrosshairComponentGenerated = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(CategoryAxisCrosshairComponentGenerated, _super); + function CategoryAxisCrosshairComponentGenerated(configurationService) { + var _this = _super.call(this, 'crosshair', configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + CategoryAxisCrosshairComponentGenerated.propDecorators = { + color: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + dashType: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + opacity: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + visible: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + width: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + tooltip: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }] + }; +CategoryAxisCrosshairComponentGenerated.ɵfac = function CategoryAxisCrosshairComponentGenerated_Factory(t) { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinvalidFactory"](); }; +CategoryAxisCrosshairComponentGenerated.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: CategoryAxisCrosshairComponentGenerated, inputs: { color: "color", dashType: "dashType", opacity: "opacity", visible: "visible", width: "width", tooltip: "tooltip" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]] }); + + return CategoryAxisCrosshairComponentGenerated; +}(SettingsComponent)); + + +var CategoryAxisCrosshairComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(CategoryAxisCrosshairComponent, _super); + // Place custom properties here + function CategoryAxisCrosshairComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + _this.markAsVisible(); + return _this; + } + + CategoryAxisCrosshairComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +CategoryAxisCrosshairComponent.ɵfac = function CategoryAxisCrosshairComponent_Factory(t) { return new (t || CategoryAxisCrosshairComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +CategoryAxisCrosshairComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: CategoryAxisCrosshairComponent, selectors: [["kendo-chart-category-axis-item-crosshair"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function CategoryAxisCrosshairComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](CategoryAxisCrosshairComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-category-axis-item-crosshair', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return CategoryAxisCrosshairComponent; +}(CategoryAxisCrosshairComponentGenerated)); + + +var CategoryAxisCrosshairTooltipComponentGenerated = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(CategoryAxisCrosshairTooltipComponentGenerated, _super); + function CategoryAxisCrosshairTooltipComponentGenerated(configurationService) { + var _this = _super.call(this, 'crosshair.tooltip', configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + CategoryAxisCrosshairTooltipComponentGenerated.propDecorators = { + background: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + border: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + color: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + font: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + format: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + padding: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + visible: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }] + }; +CategoryAxisCrosshairTooltipComponentGenerated.ɵfac = function CategoryAxisCrosshairTooltipComponentGenerated_Factory(t) { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinvalidFactory"](); }; +CategoryAxisCrosshairTooltipComponentGenerated.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: CategoryAxisCrosshairTooltipComponentGenerated, inputs: { background: "background", border: "border", color: "color", font: "font", format: "format", padding: "padding", visible: "visible" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]] }); + + return CategoryAxisCrosshairTooltipComponentGenerated; +}(SettingsComponent)); + + +var CategoryAxisCrosshairTooltipComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(CategoryAxisCrosshairTooltipComponent, _super); + // Place custom properties here + function CategoryAxisCrosshairTooltipComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + _this.markAsVisible(); + return _this; + } + + CategoryAxisCrosshairTooltipComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +CategoryAxisCrosshairTooltipComponent.ɵfac = function CategoryAxisCrosshairTooltipComponent_Factory(t) { return new (t || CategoryAxisCrosshairTooltipComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +CategoryAxisCrosshairTooltipComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: CategoryAxisCrosshairTooltipComponent, selectors: [["kendo-chart-category-axis-item-crosshair-tooltip"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function CategoryAxisCrosshairTooltipComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](CategoryAxisCrosshairTooltipComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-category-axis-item-crosshair-tooltip', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return CategoryAxisCrosshairTooltipComponent; +}(CategoryAxisCrosshairTooltipComponentGenerated)); + + +var CategoryAxisLabelsComponentGenerated = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(CategoryAxisLabelsComponentGenerated, _super); + function CategoryAxisLabelsComponentGenerated(configurationService) { + var _this = _super.call(this, 'labels', configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + CategoryAxisLabelsComponentGenerated.propDecorators = { + background: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + border: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + color: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + content: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + culture: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + dateFormats: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + font: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + format: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + margin: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + mirror: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + padding: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + position: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + rotation: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + skip: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + step: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + visible: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + visual: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }] + }; +CategoryAxisLabelsComponentGenerated.ɵfac = function CategoryAxisLabelsComponentGenerated_Factory(t) { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinvalidFactory"](); }; +CategoryAxisLabelsComponentGenerated.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: CategoryAxisLabelsComponentGenerated, inputs: { background: "background", border: "border", color: "color", content: "content", culture: "culture", dateFormats: "dateFormats", font: "font", format: "format", margin: "margin", mirror: "mirror", padding: "padding", position: "position", rotation: "rotation", skip: "skip", step: "step", visible: "visible", visual: "visual" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]] }); + + return CategoryAxisLabelsComponentGenerated; +}(SettingsComponent)); + + +var CategoryAxisLabelsComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(CategoryAxisLabelsComponent, _super); + // Place custom properties here + function CategoryAxisLabelsComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + + CategoryAxisLabelsComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +CategoryAxisLabelsComponent.ɵfac = function CategoryAxisLabelsComponent_Factory(t) { return new (t || CategoryAxisLabelsComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +CategoryAxisLabelsComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: CategoryAxisLabelsComponent, selectors: [["kendo-chart-category-axis-item-labels"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function CategoryAxisLabelsComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](CategoryAxisLabelsComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-category-axis-item-labels', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return CategoryAxisLabelsComponent; +}(CategoryAxisLabelsComponentGenerated)); + + +var CategoryAxisNotesComponentGenerated = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(CategoryAxisNotesComponentGenerated, _super); + function CategoryAxisNotesComponentGenerated(configurationService) { + var _this = _super.call(this, 'notes', configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + CategoryAxisNotesComponentGenerated.propDecorators = { + data: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + line: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + position: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + visual: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + icon: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + label: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }] + }; +CategoryAxisNotesComponentGenerated.ɵfac = function CategoryAxisNotesComponentGenerated_Factory(t) { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinvalidFactory"](); }; +CategoryAxisNotesComponentGenerated.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: CategoryAxisNotesComponentGenerated, inputs: { data: "data", line: "line", position: "position", visual: "visual", icon: "icon", label: "label" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]] }); + + return CategoryAxisNotesComponentGenerated; +}(SettingsComponent)); + + +var CategoryAxisNotesComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(CategoryAxisNotesComponent, _super); + // Place custom properties here + function CategoryAxisNotesComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + + CategoryAxisNotesComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +CategoryAxisNotesComponent.ɵfac = function CategoryAxisNotesComponent_Factory(t) { return new (t || CategoryAxisNotesComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +CategoryAxisNotesComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: CategoryAxisNotesComponent, selectors: [["kendo-chart-category-axis-item-notes"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function CategoryAxisNotesComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](CategoryAxisNotesComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-category-axis-item-notes', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return CategoryAxisNotesComponent; +}(CategoryAxisNotesComponentGenerated)); + + +var CategoryAxisNotesIconComponentGenerated = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(CategoryAxisNotesIconComponentGenerated, _super); + function CategoryAxisNotesIconComponentGenerated(configurationService) { + var _this = _super.call(this, 'notes.icon', configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + CategoryAxisNotesIconComponentGenerated.propDecorators = { + background: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + border: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + size: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + type: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + visible: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }] + }; +CategoryAxisNotesIconComponentGenerated.ɵfac = function CategoryAxisNotesIconComponentGenerated_Factory(t) { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinvalidFactory"](); }; +CategoryAxisNotesIconComponentGenerated.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: CategoryAxisNotesIconComponentGenerated, inputs: { background: "background", border: "border", size: "size", type: "type", visible: "visible" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]] }); + + return CategoryAxisNotesIconComponentGenerated; +}(SettingsComponent)); + + +var CategoryAxisNotesIconComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(CategoryAxisNotesIconComponent, _super); + // Place custom properties here + function CategoryAxisNotesIconComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + + CategoryAxisNotesIconComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +CategoryAxisNotesIconComponent.ɵfac = function CategoryAxisNotesIconComponent_Factory(t) { return new (t || CategoryAxisNotesIconComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +CategoryAxisNotesIconComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: CategoryAxisNotesIconComponent, selectors: [["kendo-chart-category-axis-item-notes-icon"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function CategoryAxisNotesIconComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](CategoryAxisNotesIconComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-category-axis-item-notes-icon', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return CategoryAxisNotesIconComponent; +}(CategoryAxisNotesIconComponentGenerated)); + + +var CategoryAxisNotesLabelComponentGenerated = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(CategoryAxisNotesLabelComponentGenerated, _super); + function CategoryAxisNotesLabelComponentGenerated(configurationService) { + var _this = _super.call(this, 'notes.label', configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + CategoryAxisNotesLabelComponentGenerated.propDecorators = { + background: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + border: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + color: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + content: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + font: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + format: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + position: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + rotation: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + visible: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }] + }; +CategoryAxisNotesLabelComponentGenerated.ɵfac = function CategoryAxisNotesLabelComponentGenerated_Factory(t) { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinvalidFactory"](); }; +CategoryAxisNotesLabelComponentGenerated.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: CategoryAxisNotesLabelComponentGenerated, inputs: { background: "background", border: "border", color: "color", content: "content", font: "font", format: "format", position: "position", rotation: "rotation", visible: "visible" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]] }); + + return CategoryAxisNotesLabelComponentGenerated; +}(SettingsComponent)); + + +var CategoryAxisNotesLabelComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(CategoryAxisNotesLabelComponent, _super); + // Place custom properties here + function CategoryAxisNotesLabelComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + + CategoryAxisNotesLabelComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +CategoryAxisNotesLabelComponent.ɵfac = function CategoryAxisNotesLabelComponent_Factory(t) { return new (t || CategoryAxisNotesLabelComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +CategoryAxisNotesLabelComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: CategoryAxisNotesLabelComponent, selectors: [["kendo-chart-category-axis-item-notes-label"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function CategoryAxisNotesLabelComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](CategoryAxisNotesLabelComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-category-axis-item-notes-label', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return CategoryAxisNotesLabelComponent; +}(CategoryAxisNotesLabelComponentGenerated)); + + +var CategoryAxisSelectComponentGenerated = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(CategoryAxisSelectComponentGenerated, _super); + function CategoryAxisSelectComponentGenerated(configurationService) { + var _this = _super.call(this, 'select', configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + CategoryAxisSelectComponentGenerated.propDecorators = { + from: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + max: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + min: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + mousewheel: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + to: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }] + }; +CategoryAxisSelectComponentGenerated.ɵfac = function CategoryAxisSelectComponentGenerated_Factory(t) { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinvalidFactory"](); }; +CategoryAxisSelectComponentGenerated.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: CategoryAxisSelectComponentGenerated, inputs: { from: "from", max: "max", min: "min", mousewheel: "mousewheel", to: "to" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]] }); + + return CategoryAxisSelectComponentGenerated; +}(SettingsComponent)); + + +var CategoryAxisSelectComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(CategoryAxisSelectComponent, _super); + // Place custom properties here + function CategoryAxisSelectComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + + CategoryAxisSelectComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +CategoryAxisSelectComponent.ɵfac = function CategoryAxisSelectComponent_Factory(t) { return new (t || CategoryAxisSelectComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +CategoryAxisSelectComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: CategoryAxisSelectComponent, selectors: [["kendo-chart-category-axis-item-select"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function CategoryAxisSelectComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](CategoryAxisSelectComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-category-axis-item-select', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return CategoryAxisSelectComponent; +}(CategoryAxisSelectComponentGenerated)); + + +var CategoryAxisTitleComponentGenerated = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(CategoryAxisTitleComponentGenerated, _super); + function CategoryAxisTitleComponentGenerated(configurationService) { + var _this = _super.call(this, 'title', configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + CategoryAxisTitleComponentGenerated.propDecorators = { + background: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + border: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + color: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + font: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + margin: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + padding: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + position: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + rotation: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + text: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + visible: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + visual: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }] + }; +CategoryAxisTitleComponentGenerated.ɵfac = function CategoryAxisTitleComponentGenerated_Factory(t) { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinvalidFactory"](); }; +CategoryAxisTitleComponentGenerated.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: CategoryAxisTitleComponentGenerated, inputs: { background: "background", border: "border", color: "color", font: "font", margin: "margin", padding: "padding", position: "position", rotation: "rotation", text: "text", visible: "visible", visual: "visual" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]] }); + + return CategoryAxisTitleComponentGenerated; +}(SettingsComponent)); + + +var CategoryAxisTitleComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(CategoryAxisTitleComponent, _super); + // Place custom properties here + function CategoryAxisTitleComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + + CategoryAxisTitleComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +CategoryAxisTitleComponent.ɵfac = function CategoryAxisTitleComponent_Factory(t) { return new (t || CategoryAxisTitleComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +CategoryAxisTitleComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: CategoryAxisTitleComponent, selectors: [["kendo-chart-category-axis-item-title"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function CategoryAxisTitleComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](CategoryAxisTitleComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-category-axis-item-title', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return CategoryAxisTitleComponent; +}(CategoryAxisTitleComponentGenerated)); + + +var ChartAreaComponentGenerated = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(ChartAreaComponentGenerated, _super); + function ChartAreaComponentGenerated(configurationService) { + var _this = _super.call(this, 'chartArea', configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + ChartAreaComponentGenerated.propDecorators = { + background: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + border: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + height: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + margin: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + opacity: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + width: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }] + }; +ChartAreaComponentGenerated.ɵfac = function ChartAreaComponentGenerated_Factory(t) { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinvalidFactory"](); }; +ChartAreaComponentGenerated.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: ChartAreaComponentGenerated, inputs: { background: "background", border: "border", height: "height", margin: "margin", opacity: "opacity", width: "width" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]] }); + + return ChartAreaComponentGenerated; +}(SettingsComponent)); + + +var ChartAreaComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(ChartAreaComponent, _super); + // Place custom properties here + function ChartAreaComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + + ChartAreaComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +ChartAreaComponent.ɵfac = function ChartAreaComponent_Factory(t) { return new (t || ChartAreaComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +ChartAreaComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: ChartAreaComponent, selectors: [["kendo-chart-area"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function ChartAreaComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](ChartAreaComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-area', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return ChartAreaComponent; +}(ChartAreaComponentGenerated)); + + +var LegendComponentGenerated = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(LegendComponentGenerated, _super); + function LegendComponentGenerated(configurationService) { + var _this = _super.call(this, 'legend', configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + LegendComponentGenerated.propDecorators = { + align: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + background: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + border: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + height: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + labels: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + margin: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + offsetX: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + offsetY: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + orientation: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + padding: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + position: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + reverse: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + visible: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + width: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + markers: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + spacing: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + inactiveItems: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + item: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }] + }; +LegendComponentGenerated.ɵfac = function LegendComponentGenerated_Factory(t) { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinvalidFactory"](); }; +LegendComponentGenerated.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: LegendComponentGenerated, inputs: { align: "align", background: "background", border: "border", height: "height", labels: "labels", margin: "margin", offsetX: "offsetX", offsetY: "offsetY", orientation: "orientation", padding: "padding", position: "position", reverse: "reverse", visible: "visible", width: "width", markers: "markers", spacing: "spacing", inactiveItems: "inactiveItems", item: "item" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]] }); + + return LegendComponentGenerated; +}(SettingsComponent)); + + +var LegendComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(LegendComponent, _super); + // Place custom properties here + function LegendComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + _this.markAsVisible(); + return _this; + } + + LegendComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +LegendComponent.ɵfac = function LegendComponent_Factory(t) { return new (t || LegendComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +LegendComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: LegendComponent, selectors: [["kendo-chart-legend"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function LegendComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](LegendComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-legend', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return LegendComponent; +}(LegendComponentGenerated)); + + +var LegendInactiveItemsComponentGenerated = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(LegendInactiveItemsComponentGenerated, _super); + function LegendInactiveItemsComponentGenerated(configurationService) { + var _this = _super.call(this, 'legend.inactiveItems', configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + LegendInactiveItemsComponentGenerated.propDecorators = { + labels: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }] + }; +LegendInactiveItemsComponentGenerated.ɵfac = function LegendInactiveItemsComponentGenerated_Factory(t) { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinvalidFactory"](); }; +LegendInactiveItemsComponentGenerated.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: LegendInactiveItemsComponentGenerated, inputs: { labels: "labels" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]] }); + + return LegendInactiveItemsComponentGenerated; +}(SettingsComponent)); + + +var LegendInactiveItemsComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(LegendInactiveItemsComponent, _super); + // Place custom properties here + function LegendInactiveItemsComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + + LegendInactiveItemsComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +LegendInactiveItemsComponent.ɵfac = function LegendInactiveItemsComponent_Factory(t) { return new (t || LegendInactiveItemsComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +LegendInactiveItemsComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: LegendInactiveItemsComponent, selectors: [["kendo-chart-legend-inactive-items"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function LegendInactiveItemsComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](LegendInactiveItemsComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-legend-inactive-items', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return LegendInactiveItemsComponent; +}(LegendInactiveItemsComponentGenerated)); + + +var LegendItemComponentGenerated = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(LegendItemComponentGenerated, _super); + function LegendItemComponentGenerated(configurationService) { + var _this = _super.call(this, 'legend.item', configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + LegendItemComponentGenerated.propDecorators = { + cursor: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + visual: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }] + }; +LegendItemComponentGenerated.ɵfac = function LegendItemComponentGenerated_Factory(t) { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinvalidFactory"](); }; +LegendItemComponentGenerated.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: LegendItemComponentGenerated, inputs: { cursor: "cursor", visual: "visual" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]] }); + + return LegendItemComponentGenerated; +}(SettingsComponent)); + + +var LegendItemComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(LegendItemComponent, _super); + // Place custom properties here + function LegendItemComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + + LegendItemComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +LegendItemComponent.ɵfac = function LegendItemComponent_Factory(t) { return new (t || LegendItemComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +LegendItemComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: LegendItemComponent, selectors: [["kendo-chart-legend-item"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function LegendItemComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](LegendItemComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-legend-item', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return LegendItemComponent; +}(LegendItemComponentGenerated)); + + +var PaneComponentGenerated = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(PaneComponentGenerated, _super); + function PaneComponentGenerated(configurationService, collectionService) { + var _this = _super.call(this, configurationService, collectionService) || this; + _this.configurationService = configurationService; + _this.collectionService = collectionService; + return _this; + } + PaneComponentGenerated.propDecorators = { + background: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + border: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + clip: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + height: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + margin: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + name: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + padding: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + title: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }] + }; +PaneComponentGenerated.ɵfac = function PaneComponentGenerated_Factory(t) { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinvalidFactory"](); }; +PaneComponentGenerated.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: PaneComponentGenerated, inputs: { background: "background", border: "border", clip: "clip", height: "height", margin: "margin", name: "name", padding: "padding", title: "title" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]] }); + + return PaneComponentGenerated; +}(CollectionItemComponent)); + + +var PaneComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(PaneComponent, _super); + // Place custom properties here + function PaneComponent(configurationService, collectionService) { + var _this = _super.call(this, configurationService, collectionService) || this; + _this.configurationService = configurationService; + _this.collectionService = collectionService; + return _this; + } + + PaneComponent.ctorParameters = function () { return [ + { type: ConfigurationService }, + { type: CollectionService } + ]; }; +PaneComponent.ɵfac = function PaneComponent_Factory(t) { return new (t || PaneComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](CollectionService)); }; +PaneComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: PaneComponent, selectors: [["kendo-chart-pane"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵProvidersFeature"]([ConfigurationService]), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function PaneComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](PaneComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + providers: [ConfigurationService], + selector: 'kendo-chart-pane', + template: '' + }] + }], function () { return [{ type: ConfigurationService }, { type: CollectionService }]; }, null); })(); + return PaneComponent; +}(PaneComponentGenerated)); + + +var PanesComponentGenerated = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(PanesComponentGenerated, _super); + function PanesComponentGenerated(configurationService, collectionService) { + var _this = _super.call(this, 'panes', configurationService, collectionService) || this; + _this.configurationService = configurationService; + _this.collectionService = collectionService; + return _this; + } + PanesComponentGenerated.propDecorators = { + children: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ContentChildren"], args: [PaneComponent,] }] + }; +PanesComponentGenerated.ɵfac = function PanesComponentGenerated_Factory(t) { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinvalidFactory"](); }; +PanesComponentGenerated.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: PanesComponentGenerated, contentQueries: function PanesComponentGenerated_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵcontentQuery"](dirIndex, PaneComponent, false); + } if (rf & 2) { + var _t; + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵqueryRefresh"](_t = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵloadQuery"]()) && (ctx.children = _t); + } }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]] }); + + return PanesComponentGenerated; +}(CollectionComponent)); + + +var PanesComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(PanesComponent, _super); + // Place custom properties here + function PanesComponent(configurationService, collectionService) { + var _this = _super.call(this, configurationService, collectionService) || this; + _this.configurationService = configurationService; + _this.collectionService = collectionService; + return _this; + } + + PanesComponent.ctorParameters = function () { return [ + { type: ConfigurationService }, + { type: CollectionService } + ]; }; +PanesComponent.ɵfac = function PanesComponent_Factory(t) { return new (t || PanesComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](CollectionService)); }; +PanesComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: PanesComponent, selectors: [["kendo-chart-panes"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵProvidersFeature"]([CollectionService]), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function PanesComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](PanesComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + providers: [CollectionService], + selector: 'kendo-chart-panes', + template: '' + }] + }], function () { return [{ type: ConfigurationService }, { type: CollectionService }]; }, null); })(); + return PanesComponent; +}(PanesComponentGenerated)); + + +var PanesTitleComponentGenerated = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(PanesTitleComponentGenerated, _super); + function PanesTitleComponentGenerated(configurationService) { + var _this = _super.call(this, 'title', configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + PanesTitleComponentGenerated.propDecorators = { + background: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + border: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + color: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + font: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + margin: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + position: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + text: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + visible: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + visual: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }] + }; +PanesTitleComponentGenerated.ɵfac = function PanesTitleComponentGenerated_Factory(t) { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinvalidFactory"](); }; +PanesTitleComponentGenerated.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: PanesTitleComponentGenerated, inputs: { background: "background", border: "border", color: "color", font: "font", margin: "margin", position: "position", text: "text", visible: "visible", visual: "visual" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]] }); + + return PanesTitleComponentGenerated; +}(SettingsComponent)); + + +var PanesTitleComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(PanesTitleComponent, _super); + // Place custom properties here + function PanesTitleComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + + PanesTitleComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +PanesTitleComponent.ɵfac = function PanesTitleComponent_Factory(t) { return new (t || PanesTitleComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +PanesTitleComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: PanesTitleComponent, selectors: [["kendo-chart-pane-title"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function PanesTitleComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](PanesTitleComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-pane-title', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return PanesTitleComponent; +}(PanesTitleComponentGenerated)); + + +var PlotAreaComponentGenerated = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(PlotAreaComponentGenerated, _super); + function PlotAreaComponentGenerated(configurationService) { + var _this = _super.call(this, 'plotArea', configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + PlotAreaComponentGenerated.propDecorators = { + background: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + border: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + margin: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + opacity: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + padding: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }] + }; +PlotAreaComponentGenerated.ɵfac = function PlotAreaComponentGenerated_Factory(t) { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinvalidFactory"](); }; +PlotAreaComponentGenerated.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: PlotAreaComponentGenerated, inputs: { background: "background", border: "border", margin: "margin", opacity: "opacity", padding: "padding" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]] }); + + return PlotAreaComponentGenerated; +}(SettingsComponent)); + + +var PlotAreaComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(PlotAreaComponent, _super); + // Place custom properties here + function PlotAreaComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + + PlotAreaComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +PlotAreaComponent.ɵfac = function PlotAreaComponent_Factory(t) { return new (t || PlotAreaComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +PlotAreaComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: PlotAreaComponent, selectors: [["kendo-chart-plot-area"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function PlotAreaComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](PlotAreaComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-plot-area', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return PlotAreaComponent; +}(PlotAreaComponentGenerated)); + + +var SeriesComponentGenerated = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(SeriesComponentGenerated, _super); + function SeriesComponentGenerated(configurationService, collectionService) { + var _this = _super.call(this, 'series', configurationService, collectionService) || this; + _this.configurationService = configurationService; + _this.collectionService = collectionService; + return _this; + } + SeriesComponentGenerated.propDecorators = { + children: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ContentChildren"], args: [SeriesItemComponent,] }] + }; +SeriesComponentGenerated.ɵfac = function SeriesComponentGenerated_Factory(t) { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinvalidFactory"](); }; +SeriesComponentGenerated.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: SeriesComponentGenerated, contentQueries: function SeriesComponentGenerated_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵcontentQuery"](dirIndex, SeriesItemComponent, false); + } if (rf & 2) { + var _t; + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵqueryRefresh"](_t = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵloadQuery"]()) && (ctx.children = _t); + } }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]] }); + + return SeriesComponentGenerated; +}(CollectionComponent)); + + +var SeriesComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(SeriesComponent, _super); + // Place custom properties here + function SeriesComponent(configurationService, collectionService, tooltipTemplateService) { + var _this = _super.call(this, configurationService, collectionService) || this; + _this.configurationService = configurationService; + _this.collectionService = collectionService; + _this.tooltipTemplateService = tooltipTemplateService; + return _this; + } + SeriesComponent.prototype.ngAfterContentChecked = function () { + this.readTooltipTemplates(); + }; + SeriesComponent.prototype.readTooltipTemplates = function () { + var templates = this.children.map(function (item) { return item.seriesTooltipTemplateRef; }); + this.tooltipTemplateService.setSeriesTemplates(templates); + }; + + SeriesComponent.ctorParameters = function () { return [ + { type: ConfigurationService }, + { type: CollectionService }, + { type: TooltipTemplateService } + ]; }; +SeriesComponent.ɵfac = function SeriesComponent_Factory(t) { return new (t || SeriesComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](CollectionService), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](TooltipTemplateService)); }; +SeriesComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: SeriesComponent, selectors: [["kendo-chart-series"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵProvidersFeature"]([CollectionService]), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function SeriesComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](SeriesComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + providers: [CollectionService], + selector: 'kendo-chart-series', + template: '' + }] + }], function () { return [{ type: ConfigurationService }, { type: CollectionService }, { type: TooltipTemplateService }]; }, null); })(); + return SeriesComponent; +}(SeriesComponentGenerated)); + + +var SeriesDefaultsComponentGenerated = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(SeriesDefaultsComponentGenerated, _super); + function SeriesDefaultsComponentGenerated(configurationService) { + var _this = _super.call(this, 'seriesDefaults', configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + SeriesDefaultsComponentGenerated.propDecorators = { + border: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + gap: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + overlay: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + spacing: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + stack: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + type: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + visual: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + labels: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + notes: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + tooltip: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }] + }; +SeriesDefaultsComponentGenerated.ɵfac = function SeriesDefaultsComponentGenerated_Factory(t) { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinvalidFactory"](); }; +SeriesDefaultsComponentGenerated.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: SeriesDefaultsComponentGenerated, inputs: { border: "border", gap: "gap", overlay: "overlay", spacing: "spacing", stack: "stack", type: "type", visual: "visual", labels: "labels", notes: "notes", tooltip: "tooltip" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]] }); + + return SeriesDefaultsComponentGenerated; +}(SettingsComponent)); + + +var SeriesDefaultsComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(SeriesDefaultsComponent, _super); + // Place custom properties here + function SeriesDefaultsComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + + SeriesDefaultsComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +SeriesDefaultsComponent.ɵfac = function SeriesDefaultsComponent_Factory(t) { return new (t || SeriesDefaultsComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +SeriesDefaultsComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: SeriesDefaultsComponent, selectors: [["kendo-chart-series-defaults"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function SeriesDefaultsComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](SeriesDefaultsComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-series-defaults', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return SeriesDefaultsComponent; +}(SeriesDefaultsComponentGenerated)); + + +var SeriesDefaultsLabelsComponentGenerated = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(SeriesDefaultsLabelsComponentGenerated, _super); + function SeriesDefaultsLabelsComponentGenerated(configurationService) { + var _this = _super.call(this, 'seriesDefaults.labels', configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + SeriesDefaultsLabelsComponentGenerated.propDecorators = { + background: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + border: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + color: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + content: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + font: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + format: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + margin: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + padding: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + visible: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + visual: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + from: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + to: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }] + }; +SeriesDefaultsLabelsComponentGenerated.ɵfac = function SeriesDefaultsLabelsComponentGenerated_Factory(t) { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinvalidFactory"](); }; +SeriesDefaultsLabelsComponentGenerated.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: SeriesDefaultsLabelsComponentGenerated, inputs: { background: "background", border: "border", color: "color", content: "content", font: "font", format: "format", margin: "margin", padding: "padding", visible: "visible", visual: "visual", from: "from", to: "to" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]] }); + + return SeriesDefaultsLabelsComponentGenerated; +}(SettingsComponent)); + + +var SeriesDefaultsLabelsComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(SeriesDefaultsLabelsComponent, _super); + // Place custom properties here + function SeriesDefaultsLabelsComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + _this.markAsVisible(); + return _this; + } + + SeriesDefaultsLabelsComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +SeriesDefaultsLabelsComponent.ɵfac = function SeriesDefaultsLabelsComponent_Factory(t) { return new (t || SeriesDefaultsLabelsComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +SeriesDefaultsLabelsComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: SeriesDefaultsLabelsComponent, selectors: [["kendo-chart-series-defaults-labels"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function SeriesDefaultsLabelsComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](SeriesDefaultsLabelsComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-series-defaults-labels', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return SeriesDefaultsLabelsComponent; +}(SeriesDefaultsLabelsComponentGenerated)); + + +var SeriesDefaultsLabelsFromComponentGenerated = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(SeriesDefaultsLabelsFromComponentGenerated, _super); + function SeriesDefaultsLabelsFromComponentGenerated(configurationService) { + var _this = _super.call(this, 'seriesDefaults.labels.from', configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + SeriesDefaultsLabelsFromComponentGenerated.propDecorators = { + background: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + border: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + color: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + content: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + font: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + format: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + margin: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + padding: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + visible: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }] + }; +SeriesDefaultsLabelsFromComponentGenerated.ɵfac = function SeriesDefaultsLabelsFromComponentGenerated_Factory(t) { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinvalidFactory"](); }; +SeriesDefaultsLabelsFromComponentGenerated.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: SeriesDefaultsLabelsFromComponentGenerated, inputs: { background: "background", border: "border", color: "color", content: "content", font: "font", format: "format", margin: "margin", padding: "padding", visible: "visible" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]] }); + + return SeriesDefaultsLabelsFromComponentGenerated; +}(SettingsComponent)); + + +var SeriesDefaultsLabelsFromComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(SeriesDefaultsLabelsFromComponent, _super); + // Place custom properties here + function SeriesDefaultsLabelsFromComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + _this.markAsVisible(); + return _this; + } + + SeriesDefaultsLabelsFromComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +SeriesDefaultsLabelsFromComponent.ɵfac = function SeriesDefaultsLabelsFromComponent_Factory(t) { return new (t || SeriesDefaultsLabelsFromComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +SeriesDefaultsLabelsFromComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: SeriesDefaultsLabelsFromComponent, selectors: [["kendo-chart-series-defaults-labels-from"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function SeriesDefaultsLabelsFromComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](SeriesDefaultsLabelsFromComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-series-defaults-labels-from', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return SeriesDefaultsLabelsFromComponent; +}(SeriesDefaultsLabelsFromComponentGenerated)); + + +var SeriesDefaultsLabelsToComponentGenerated = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(SeriesDefaultsLabelsToComponentGenerated, _super); + function SeriesDefaultsLabelsToComponentGenerated(configurationService) { + var _this = _super.call(this, 'seriesDefaults.labels.to', configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + SeriesDefaultsLabelsToComponentGenerated.propDecorators = { + background: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + border: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + color: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + content: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + font: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + format: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + margin: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + padding: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + visible: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }] + }; +SeriesDefaultsLabelsToComponentGenerated.ɵfac = function SeriesDefaultsLabelsToComponentGenerated_Factory(t) { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinvalidFactory"](); }; +SeriesDefaultsLabelsToComponentGenerated.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: SeriesDefaultsLabelsToComponentGenerated, inputs: { background: "background", border: "border", color: "color", content: "content", font: "font", format: "format", margin: "margin", padding: "padding", visible: "visible" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]] }); + + return SeriesDefaultsLabelsToComponentGenerated; +}(SettingsComponent)); + + +var SeriesDefaultsLabelsToComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(SeriesDefaultsLabelsToComponent, _super); + // Place custom properties here + function SeriesDefaultsLabelsToComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + _this.markAsVisible(); + return _this; + } + + SeriesDefaultsLabelsToComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +SeriesDefaultsLabelsToComponent.ɵfac = function SeriesDefaultsLabelsToComponent_Factory(t) { return new (t || SeriesDefaultsLabelsToComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +SeriesDefaultsLabelsToComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: SeriesDefaultsLabelsToComponent, selectors: [["kendo-chart-series-defaults-labels-to"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function SeriesDefaultsLabelsToComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](SeriesDefaultsLabelsToComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-series-defaults-labels-to', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return SeriesDefaultsLabelsToComponent; +}(SeriesDefaultsLabelsToComponentGenerated)); + + +var SeriesDefaultsNotesComponentGenerated = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(SeriesDefaultsNotesComponentGenerated, _super); + function SeriesDefaultsNotesComponentGenerated(configurationService) { + var _this = _super.call(this, 'seriesDefaults.notes', configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + SeriesDefaultsNotesComponentGenerated.propDecorators = { + line: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + visual: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + icon: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + label: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }] + }; +SeriesDefaultsNotesComponentGenerated.ɵfac = function SeriesDefaultsNotesComponentGenerated_Factory(t) { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinvalidFactory"](); }; +SeriesDefaultsNotesComponentGenerated.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: SeriesDefaultsNotesComponentGenerated, inputs: { line: "line", visual: "visual", icon: "icon", label: "label" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]] }); + + return SeriesDefaultsNotesComponentGenerated; +}(SettingsComponent)); + + +var SeriesDefaultsNotesComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(SeriesDefaultsNotesComponent, _super); + // Place custom properties here + function SeriesDefaultsNotesComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + + SeriesDefaultsNotesComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +SeriesDefaultsNotesComponent.ɵfac = function SeriesDefaultsNotesComponent_Factory(t) { return new (t || SeriesDefaultsNotesComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +SeriesDefaultsNotesComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: SeriesDefaultsNotesComponent, selectors: [["kendo-chart-series-defaults-notes"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function SeriesDefaultsNotesComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](SeriesDefaultsNotesComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-series-defaults-notes', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return SeriesDefaultsNotesComponent; +}(SeriesDefaultsNotesComponentGenerated)); + + +var SeriesDefaultsNotesIconComponentGenerated = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(SeriesDefaultsNotesIconComponentGenerated, _super); + function SeriesDefaultsNotesIconComponentGenerated(configurationService) { + var _this = _super.call(this, 'seriesDefaults.notes.icon', configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + SeriesDefaultsNotesIconComponentGenerated.propDecorators = { + background: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + border: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + size: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + type: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + visible: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }] + }; +SeriesDefaultsNotesIconComponentGenerated.ɵfac = function SeriesDefaultsNotesIconComponentGenerated_Factory(t) { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinvalidFactory"](); }; +SeriesDefaultsNotesIconComponentGenerated.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: SeriesDefaultsNotesIconComponentGenerated, inputs: { background: "background", border: "border", size: "size", type: "type", visible: "visible" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]] }); + + return SeriesDefaultsNotesIconComponentGenerated; +}(SettingsComponent)); + + +var SeriesDefaultsNotesIconComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(SeriesDefaultsNotesIconComponent, _super); + // Place custom properties here + function SeriesDefaultsNotesIconComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + + SeriesDefaultsNotesIconComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +SeriesDefaultsNotesIconComponent.ɵfac = function SeriesDefaultsNotesIconComponent_Factory(t) { return new (t || SeriesDefaultsNotesIconComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +SeriesDefaultsNotesIconComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: SeriesDefaultsNotesIconComponent, selectors: [["kendo-chart-series-defaults-notes-icon"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function SeriesDefaultsNotesIconComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](SeriesDefaultsNotesIconComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-series-defaults-notes-icon', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return SeriesDefaultsNotesIconComponent; +}(SeriesDefaultsNotesIconComponentGenerated)); + + +var SeriesDefaultsNotesLabelComponentGenerated = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(SeriesDefaultsNotesLabelComponentGenerated, _super); + function SeriesDefaultsNotesLabelComponentGenerated(configurationService) { + var _this = _super.call(this, 'seriesDefaults.notes.label', configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + SeriesDefaultsNotesLabelComponentGenerated.propDecorators = { + background: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + border: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + color: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + content: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + font: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + format: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + position: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + rotation: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + visible: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }] + }; +SeriesDefaultsNotesLabelComponentGenerated.ɵfac = function SeriesDefaultsNotesLabelComponentGenerated_Factory(t) { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinvalidFactory"](); }; +SeriesDefaultsNotesLabelComponentGenerated.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: SeriesDefaultsNotesLabelComponentGenerated, inputs: { background: "background", border: "border", color: "color", content: "content", font: "font", format: "format", position: "position", rotation: "rotation", visible: "visible" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]] }); + + return SeriesDefaultsNotesLabelComponentGenerated; +}(SettingsComponent)); + + +var SeriesDefaultsNotesLabelComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(SeriesDefaultsNotesLabelComponent, _super); + // Place custom properties here + function SeriesDefaultsNotesLabelComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + + SeriesDefaultsNotesLabelComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +SeriesDefaultsNotesLabelComponent.ɵfac = function SeriesDefaultsNotesLabelComponent_Factory(t) { return new (t || SeriesDefaultsNotesLabelComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +SeriesDefaultsNotesLabelComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: SeriesDefaultsNotesLabelComponent, selectors: [["kendo-chart-series-defaults-notes-label"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function SeriesDefaultsNotesLabelComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](SeriesDefaultsNotesLabelComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-series-defaults-notes-label', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return SeriesDefaultsNotesLabelComponent; +}(SeriesDefaultsNotesLabelComponentGenerated)); + + +var SeriesDefaultsTooltipComponentGenerated = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(SeriesDefaultsTooltipComponentGenerated, _super); + function SeriesDefaultsTooltipComponentGenerated(configurationService) { + var _this = _super.call(this, 'seriesDefaults.tooltip', configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + SeriesDefaultsTooltipComponentGenerated.propDecorators = { + background: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + border: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + color: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + font: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + format: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + padding: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + visible: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }] + }; +SeriesDefaultsTooltipComponentGenerated.ɵfac = function SeriesDefaultsTooltipComponentGenerated_Factory(t) { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinvalidFactory"](); }; +SeriesDefaultsTooltipComponentGenerated.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: SeriesDefaultsTooltipComponentGenerated, inputs: { background: "background", border: "border", color: "color", font: "font", format: "format", padding: "padding", visible: "visible" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]] }); + + return SeriesDefaultsTooltipComponentGenerated; +}(SettingsComponent)); + + +var SeriesDefaultsTooltipComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(SeriesDefaultsTooltipComponent, _super); + // Place custom properties here. + function SeriesDefaultsTooltipComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + _this.markAsVisible(); + return _this; + } + + SeriesDefaultsTooltipComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +SeriesDefaultsTooltipComponent.ɵfac = function SeriesDefaultsTooltipComponent_Factory(t) { return new (t || SeriesDefaultsTooltipComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +SeriesDefaultsTooltipComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: SeriesDefaultsTooltipComponent, selectors: [["kendo-chart-series-defaults-tooltip"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function SeriesDefaultsTooltipComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](SeriesDefaultsTooltipComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-series-defaults-tooltip', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return SeriesDefaultsTooltipComponent; +}(SeriesDefaultsTooltipComponentGenerated)); + + +var SeriesErrorBarsComponentGenerated = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(SeriesErrorBarsComponentGenerated, _super); + function SeriesErrorBarsComponentGenerated(configurationService) { + var _this = _super.call(this, 'errorBars', configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + SeriesErrorBarsComponentGenerated.propDecorators = { + color: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + endCaps: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + line: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + value: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + visual: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + xValue: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + yValue: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }] + }; +SeriesErrorBarsComponentGenerated.ɵfac = function SeriesErrorBarsComponentGenerated_Factory(t) { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinvalidFactory"](); }; +SeriesErrorBarsComponentGenerated.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: SeriesErrorBarsComponentGenerated, inputs: { color: "color", endCaps: "endCaps", line: "line", value: "value", visual: "visual", xValue: "xValue", yValue: "yValue" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]] }); + + return SeriesErrorBarsComponentGenerated; +}(SettingsComponent)); + + +var SeriesErrorBarsComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(SeriesErrorBarsComponent, _super); + // Place custom properties here + function SeriesErrorBarsComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + + SeriesErrorBarsComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +SeriesErrorBarsComponent.ɵfac = function SeriesErrorBarsComponent_Factory(t) { return new (t || SeriesErrorBarsComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +SeriesErrorBarsComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: SeriesErrorBarsComponent, selectors: [["kendo-chart-series-item-error-bars"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function SeriesErrorBarsComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](SeriesErrorBarsComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-series-item-error-bars', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return SeriesErrorBarsComponent; +}(SeriesErrorBarsComponentGenerated)); + + +var SeriesExtremesComponentGenerated = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(SeriesExtremesComponentGenerated, _super); + function SeriesExtremesComponentGenerated(configurationService) { + var _this = _super.call(this, 'extremes', configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + SeriesExtremesComponentGenerated.propDecorators = { + background: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + border: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + rotation: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + size: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + type: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }] + }; +SeriesExtremesComponentGenerated.ɵfac = function SeriesExtremesComponentGenerated_Factory(t) { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinvalidFactory"](); }; +SeriesExtremesComponentGenerated.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: SeriesExtremesComponentGenerated, inputs: { background: "background", border: "border", rotation: "rotation", size: "size", type: "type" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]] }); + + return SeriesExtremesComponentGenerated; +}(SettingsComponent)); + + +var SeriesExtremesComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(SeriesExtremesComponent, _super); + // Place custom properties here + function SeriesExtremesComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + + SeriesExtremesComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +SeriesExtremesComponent.ɵfac = function SeriesExtremesComponent_Factory(t) { return new (t || SeriesExtremesComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +SeriesExtremesComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: SeriesExtremesComponent, selectors: [["kendo-chart-series-item-extremes"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function SeriesExtremesComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](SeriesExtremesComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-series-item-extremes', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return SeriesExtremesComponent; +}(SeriesExtremesComponentGenerated)); + + +var SeriesHighlightComponentGenerated = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(SeriesHighlightComponentGenerated, _super); + function SeriesHighlightComponentGenerated(configurationService) { + var _this = _super.call(this, 'highlight', configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + SeriesHighlightComponentGenerated.propDecorators = { + border: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + color: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + line: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + markers: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + opacity: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + toggle: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + visible: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + visual: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }] + }; +SeriesHighlightComponentGenerated.ɵfac = function SeriesHighlightComponentGenerated_Factory(t) { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinvalidFactory"](); }; +SeriesHighlightComponentGenerated.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: SeriesHighlightComponentGenerated, inputs: { border: "border", color: "color", line: "line", markers: "markers", opacity: "opacity", toggle: "toggle", visible: "visible", visual: "visual" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]] }); + + return SeriesHighlightComponentGenerated; +}(SettingsComponent)); + + +var SeriesHighlightComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(SeriesHighlightComponent, _super); + function SeriesHighlightComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + + SeriesHighlightComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +SeriesHighlightComponent.ɵfac = function SeriesHighlightComponent_Factory(t) { return new (t || SeriesHighlightComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +SeriesHighlightComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: SeriesHighlightComponent, selectors: [["kendo-chart-series-item-highlight"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function SeriesHighlightComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](SeriesHighlightComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-series-item-highlight', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return SeriesHighlightComponent; +}(SeriesHighlightComponentGenerated)); + + +var SeriesLabelsComponentGenerated = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(SeriesLabelsComponentGenerated, _super); + function SeriesLabelsComponentGenerated(configurationService) { + var _this = _super.call(this, 'labels', configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + SeriesLabelsComponentGenerated.propDecorators = { + align: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + background: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + border: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + color: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + content: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + distance: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + font: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + format: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + margin: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + padding: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + position: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + rotation: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + visible: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + visual: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + from: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + to: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }] + }; +SeriesLabelsComponentGenerated.ɵfac = function SeriesLabelsComponentGenerated_Factory(t) { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinvalidFactory"](); }; +SeriesLabelsComponentGenerated.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: SeriesLabelsComponentGenerated, inputs: { align: "align", background: "background", border: "border", color: "color", content: "content", distance: "distance", font: "font", format: "format", margin: "margin", padding: "padding", position: "position", rotation: "rotation", visible: "visible", visual: "visual", from: "from", to: "to" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]] }); + + return SeriesLabelsComponentGenerated; +}(SettingsComponent)); + + +var SeriesLabelsComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(SeriesLabelsComponent, _super); + // Place custom properties here + function SeriesLabelsComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + _this.markAsVisible(); + return _this; + } + + SeriesLabelsComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +SeriesLabelsComponent.ɵfac = function SeriesLabelsComponent_Factory(t) { return new (t || SeriesLabelsComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +SeriesLabelsComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: SeriesLabelsComponent, selectors: [["kendo-chart-series-item-labels"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function SeriesLabelsComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](SeriesLabelsComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-series-item-labels', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return SeriesLabelsComponent; +}(SeriesLabelsComponentGenerated)); + + +var SeriesLabelsFromComponentGenerated = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(SeriesLabelsFromComponentGenerated, _super); + function SeriesLabelsFromComponentGenerated(configurationService) { + var _this = _super.call(this, 'labels.from', configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + SeriesLabelsFromComponentGenerated.propDecorators = { + background: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + border: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + color: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + content: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + font: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + format: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + margin: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + padding: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + position: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + visible: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }] + }; +SeriesLabelsFromComponentGenerated.ɵfac = function SeriesLabelsFromComponentGenerated_Factory(t) { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinvalidFactory"](); }; +SeriesLabelsFromComponentGenerated.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: SeriesLabelsFromComponentGenerated, inputs: { background: "background", border: "border", color: "color", content: "content", font: "font", format: "format", margin: "margin", padding: "padding", position: "position", visible: "visible" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]] }); + + return SeriesLabelsFromComponentGenerated; +}(SettingsComponent)); + + +var SeriesLabelsFromComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(SeriesLabelsFromComponent, _super); + // Place custom properties here + function SeriesLabelsFromComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + _this.markAsVisible(); + return _this; + } + + SeriesLabelsFromComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +SeriesLabelsFromComponent.ɵfac = function SeriesLabelsFromComponent_Factory(t) { return new (t || SeriesLabelsFromComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +SeriesLabelsFromComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: SeriesLabelsFromComponent, selectors: [["kendo-chart-series-item-labels-from"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function SeriesLabelsFromComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](SeriesLabelsFromComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-series-item-labels-from', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return SeriesLabelsFromComponent; +}(SeriesLabelsFromComponentGenerated)); + + +var SeriesLabelsToComponentGenerated = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(SeriesLabelsToComponentGenerated, _super); + function SeriesLabelsToComponentGenerated(configurationService) { + var _this = _super.call(this, 'labels.to', configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + SeriesLabelsToComponentGenerated.propDecorators = { + background: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + border: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + color: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + content: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + font: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + format: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + margin: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + padding: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + position: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + visible: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }] + }; +SeriesLabelsToComponentGenerated.ɵfac = function SeriesLabelsToComponentGenerated_Factory(t) { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinvalidFactory"](); }; +SeriesLabelsToComponentGenerated.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: SeriesLabelsToComponentGenerated, inputs: { background: "background", border: "border", color: "color", content: "content", font: "font", format: "format", margin: "margin", padding: "padding", position: "position", visible: "visible" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]] }); + + return SeriesLabelsToComponentGenerated; +}(SettingsComponent)); + + +var SeriesLabelsToComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(SeriesLabelsToComponent, _super); + // Place custom properties here + function SeriesLabelsToComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + _this.markAsVisible(); + return _this; + } + + SeriesLabelsToComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +SeriesLabelsToComponent.ɵfac = function SeriesLabelsToComponent_Factory(t) { return new (t || SeriesLabelsToComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +SeriesLabelsToComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: SeriesLabelsToComponent, selectors: [["kendo-chart-series-item-labels-to"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function SeriesLabelsToComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](SeriesLabelsToComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-series-item-labels-to', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return SeriesLabelsToComponent; +}(SeriesLabelsToComponentGenerated)); + + +var SeriesMarkersComponentGenerated = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(SeriesMarkersComponentGenerated, _super); + function SeriesMarkersComponentGenerated(configurationService) { + var _this = _super.call(this, 'markers', configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + SeriesMarkersComponentGenerated.propDecorators = { + background: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + border: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + rotation: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + size: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + type: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + visible: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + visual: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + from: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + to: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }] + }; +SeriesMarkersComponentGenerated.ɵfac = function SeriesMarkersComponentGenerated_Factory(t) { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinvalidFactory"](); }; +SeriesMarkersComponentGenerated.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: SeriesMarkersComponentGenerated, inputs: { background: "background", border: "border", rotation: "rotation", size: "size", type: "type", visible: "visible", visual: "visual", from: "from", to: "to" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]] }); + + return SeriesMarkersComponentGenerated; +}(SettingsComponent)); + + +var SeriesMarkersComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(SeriesMarkersComponent, _super); + // Place custom properties here + function SeriesMarkersComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + + SeriesMarkersComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +SeriesMarkersComponent.ɵfac = function SeriesMarkersComponent_Factory(t) { return new (t || SeriesMarkersComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +SeriesMarkersComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: SeriesMarkersComponent, selectors: [["kendo-chart-series-item-markers"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function SeriesMarkersComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](SeriesMarkersComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-series-item-markers', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return SeriesMarkersComponent; +}(SeriesMarkersComponentGenerated)); + + +var SeriesNotesComponentGenerated = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(SeriesNotesComponentGenerated, _super); + function SeriesNotesComponentGenerated(configurationService) { + var _this = _super.call(this, 'notes', configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + SeriesNotesComponentGenerated.propDecorators = { + line: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + position: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + visual: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + icon: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + label: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }] + }; +SeriesNotesComponentGenerated.ɵfac = function SeriesNotesComponentGenerated_Factory(t) { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinvalidFactory"](); }; +SeriesNotesComponentGenerated.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: SeriesNotesComponentGenerated, inputs: { line: "line", position: "position", visual: "visual", icon: "icon", label: "label" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]] }); + + return SeriesNotesComponentGenerated; +}(SettingsComponent)); + + +var SeriesNotesComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(SeriesNotesComponent, _super); + // Place custom properties here + function SeriesNotesComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + + SeriesNotesComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +SeriesNotesComponent.ɵfac = function SeriesNotesComponent_Factory(t) { return new (t || SeriesNotesComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +SeriesNotesComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: SeriesNotesComponent, selectors: [["kendo-chart-series-item-notes"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function SeriesNotesComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](SeriesNotesComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-series-item-notes', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return SeriesNotesComponent; +}(SeriesNotesComponentGenerated)); + + +var SeriesNotesIconComponentGenerated = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(SeriesNotesIconComponentGenerated, _super); + function SeriesNotesIconComponentGenerated(configurationService) { + var _this = _super.call(this, 'notes.icon', configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + SeriesNotesIconComponentGenerated.propDecorators = { + background: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + border: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + size: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + type: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + visible: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }] + }; +SeriesNotesIconComponentGenerated.ɵfac = function SeriesNotesIconComponentGenerated_Factory(t) { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinvalidFactory"](); }; +SeriesNotesIconComponentGenerated.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: SeriesNotesIconComponentGenerated, inputs: { background: "background", border: "border", size: "size", type: "type", visible: "visible" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]] }); + + return SeriesNotesIconComponentGenerated; +}(SettingsComponent)); + + +var SeriesNotesIconComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(SeriesNotesIconComponent, _super); + // Place custom properties here + function SeriesNotesIconComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + + SeriesNotesIconComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +SeriesNotesIconComponent.ɵfac = function SeriesNotesIconComponent_Factory(t) { return new (t || SeriesNotesIconComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +SeriesNotesIconComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: SeriesNotesIconComponent, selectors: [["kendo-chart-series-item-notes-icon"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function SeriesNotesIconComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](SeriesNotesIconComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-series-item-notes-icon', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return SeriesNotesIconComponent; +}(SeriesNotesIconComponentGenerated)); + + +var SeriesNotesLabelComponentGenerated = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(SeriesNotesLabelComponentGenerated, _super); + function SeriesNotesLabelComponentGenerated(configurationService) { + var _this = _super.call(this, 'notes.label', configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + SeriesNotesLabelComponentGenerated.propDecorators = { + background: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + border: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + color: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + content: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + font: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + format: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + position: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + rotation: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + visible: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }] + }; +SeriesNotesLabelComponentGenerated.ɵfac = function SeriesNotesLabelComponentGenerated_Factory(t) { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinvalidFactory"](); }; +SeriesNotesLabelComponentGenerated.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: SeriesNotesLabelComponentGenerated, inputs: { background: "background", border: "border", color: "color", content: "content", font: "font", format: "format", position: "position", rotation: "rotation", visible: "visible" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]] }); + + return SeriesNotesLabelComponentGenerated; +}(SettingsComponent)); + + +var SeriesNotesLabelComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(SeriesNotesLabelComponent, _super); + // Place custom properties here + function SeriesNotesLabelComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + + SeriesNotesLabelComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +SeriesNotesLabelComponent.ɵfac = function SeriesNotesLabelComponent_Factory(t) { return new (t || SeriesNotesLabelComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +SeriesNotesLabelComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: SeriesNotesLabelComponent, selectors: [["kendo-chart-series-item-notes-label"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function SeriesNotesLabelComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](SeriesNotesLabelComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-series-item-notes-label', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return SeriesNotesLabelComponent; +}(SeriesNotesLabelComponentGenerated)); + + +var SeriesOutliersComponentGenerated = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(SeriesOutliersComponentGenerated, _super); + function SeriesOutliersComponentGenerated(configurationService) { + var _this = _super.call(this, 'outliers', configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + SeriesOutliersComponentGenerated.propDecorators = { + background: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + border: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + rotation: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + size: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + type: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }] + }; +SeriesOutliersComponentGenerated.ɵfac = function SeriesOutliersComponentGenerated_Factory(t) { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinvalidFactory"](); }; +SeriesOutliersComponentGenerated.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: SeriesOutliersComponentGenerated, inputs: { background: "background", border: "border", rotation: "rotation", size: "size", type: "type" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]] }); + + return SeriesOutliersComponentGenerated; +}(SettingsComponent)); + + +var SeriesOutliersComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(SeriesOutliersComponent, _super); + // Place custom properties here + function SeriesOutliersComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + + SeriesOutliersComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +SeriesOutliersComponent.ɵfac = function SeriesOutliersComponent_Factory(t) { return new (t || SeriesOutliersComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +SeriesOutliersComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: SeriesOutliersComponent, selectors: [["kendo-chart-series-item-outliers"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function SeriesOutliersComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](SeriesOutliersComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-series-item-outliers', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return SeriesOutliersComponent; +}(SeriesOutliersComponentGenerated)); + + +var TitleComponentGenerated = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(TitleComponentGenerated, _super); + function TitleComponentGenerated(configurationService) { + var _this = _super.call(this, 'title', configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + TitleComponentGenerated.propDecorators = { + align: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + background: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + border: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + color: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + font: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + margin: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + padding: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + position: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + text: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + visible: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }] + }; +TitleComponentGenerated.ɵfac = function TitleComponentGenerated_Factory(t) { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinvalidFactory"](); }; +TitleComponentGenerated.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: TitleComponentGenerated, inputs: { align: "align", background: "background", border: "border", color: "color", font: "font", margin: "margin", padding: "padding", position: "position", text: "text", visible: "visible" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]] }); + + return TitleComponentGenerated; +}(SettingsComponent)); + + +var TitleComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(TitleComponent, _super); + // Place custom properties here + function TitleComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + + TitleComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +TitleComponent.ɵfac = function TitleComponent_Factory(t) { return new (t || TitleComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +TitleComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: TitleComponent, selectors: [["kendo-chart-title"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function TitleComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](TitleComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-title', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return TitleComponent; +}(TitleComponentGenerated)); + + +var TooltipComponentGenerated = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(TooltipComponentGenerated, _super); + function TooltipComponentGenerated(configurationService) { + var _this = _super.call(this, 'tooltip', configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + TooltipComponentGenerated.propDecorators = { + background: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + border: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + color: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + font: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + format: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + opacity: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + padding: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + shared: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + visible: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }] + }; +TooltipComponentGenerated.ɵfac = function TooltipComponentGenerated_Factory(t) { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinvalidFactory"](); }; +TooltipComponentGenerated.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: TooltipComponentGenerated, inputs: { background: "background", border: "border", color: "color", font: "font", format: "format", opacity: "opacity", padding: "padding", shared: "shared", visible: "visible" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]] }); + + return TooltipComponentGenerated; +}(SettingsComponent)); + + +var TooltipComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(TooltipComponent, _super); + function TooltipComponent(configurationService, templateService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + _this.templateService = templateService; + _this.markAsVisible(); + return _this; + } + TooltipComponent.prototype.ngAfterContentChecked = function () { + this.templateService.setTemplate(this.seriesTooltipTemplate ? this.seriesTooltipTemplate.templateRef : null); + this.templateService.setSharedTemplate(this.sharedTooltipTemplate ? this.sharedTooltipTemplate.templateRef : null); + }; + + TooltipComponent.ctorParameters = function () { return [ + { type: ConfigurationService }, + { type: TooltipTemplateService } + ]; }; + TooltipComponent.propDecorators = { + seriesTooltipTemplate: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ContentChild"], args: [SeriesTooltipTemplateDirective,] }], + sharedTooltipTemplate: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ContentChild"], args: [SharedTooltipTemplateDirective,] }] + }; +TooltipComponent.ɵfac = function TooltipComponent_Factory(t) { return new (t || TooltipComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](TooltipTemplateService)); }; +TooltipComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: TooltipComponent, selectors: [["kendo-chart-tooltip"]], contentQueries: function TooltipComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵcontentQuery"](dirIndex, SeriesTooltipTemplateDirective, true); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵcontentQuery"](dirIndex, SharedTooltipTemplateDirective, true); + } if (rf & 2) { + var _t; + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵqueryRefresh"](_t = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵloadQuery"]()) && (ctx.seriesTooltipTemplate = _t.first); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵqueryRefresh"](_t = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵloadQuery"]()) && (ctx.sharedTooltipTemplate = _t.first); + } }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function TooltipComponent_Template(rf, ctx) { }, encapsulation: 2 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](TooltipComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + selector: 'kendo-chart-tooltip', + template: '' + }] + }], function () { return [{ type: ConfigurationService }, { type: TooltipTemplateService }]; }, { seriesTooltipTemplate: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ContentChild"], + args: [SeriesTooltipTemplateDirective] + }], sharedTooltipTemplate: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ContentChild"], + args: [SharedTooltipTemplateDirective] + }] }); })(); + return TooltipComponent; +}(TooltipComponentGenerated)); + + +var ValueAxisItemComponentGenerated = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(ValueAxisItemComponentGenerated, _super); + function ValueAxisItemComponentGenerated(configurationService, collectionService) { + var _this = _super.call(this, configurationService, collectionService) || this; + _this.configurationService = configurationService; + _this.collectionService = collectionService; + return _this; + } + ValueAxisItemComponentGenerated.propDecorators = { + axisCrossingValue: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + background: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + color: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + line: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + majorGridLines: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + majorTicks: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + majorUnit: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + max: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + min: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + minorGridLines: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + minorTicks: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + minorUnit: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + name: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + narrowRange: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + pane: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + plotBands: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + reverse: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + type: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + visible: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + crosshair: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + labels: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + notes: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + title: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }] + }; +ValueAxisItemComponentGenerated.ɵfac = function ValueAxisItemComponentGenerated_Factory(t) { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinvalidFactory"](); }; +ValueAxisItemComponentGenerated.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: ValueAxisItemComponentGenerated, inputs: { axisCrossingValue: "axisCrossingValue", background: "background", color: "color", line: "line", majorGridLines: "majorGridLines", majorTicks: "majorTicks", majorUnit: "majorUnit", max: "max", min: "min", minorGridLines: "minorGridLines", minorTicks: "minorTicks", minorUnit: "minorUnit", name: "name", narrowRange: "narrowRange", pane: "pane", plotBands: "plotBands", reverse: "reverse", type: "type", visible: "visible", crosshair: "crosshair", labels: "labels", notes: "notes", title: "title" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]] }); + + return ValueAxisItemComponentGenerated; +}(CollectionItemComponent)); + + +var ValueAxisItemComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(ValueAxisItemComponent, _super); + // Place custom properties here + function ValueAxisItemComponent(configurationService, collectionService) { + var _this = _super.call(this, configurationService, collectionService) || this; + _this.configurationService = configurationService; + _this.collectionService = collectionService; + return _this; + } + + ValueAxisItemComponent.ctorParameters = function () { return [ + { type: ConfigurationService }, + { type: CollectionService } + ]; }; +ValueAxisItemComponent.ɵfac = function ValueAxisItemComponent_Factory(t) { return new (t || ValueAxisItemComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](CollectionService)); }; +ValueAxisItemComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: ValueAxisItemComponent, selectors: [["kendo-chart-value-axis-item"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵProvidersFeature"]([ConfigurationService]), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function ValueAxisItemComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](ValueAxisItemComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + providers: [ConfigurationService], + selector: 'kendo-chart-value-axis-item', + template: '' + }] + }], function () { return [{ type: ConfigurationService }, { type: CollectionService }]; }, null); })(); + return ValueAxisItemComponent; +}(ValueAxisItemComponentGenerated)); + + +var ValueAxisComponentGenerated = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(ValueAxisComponentGenerated, _super); + function ValueAxisComponentGenerated(configurationService, collectionService) { + var _this = _super.call(this, 'valueAxis', configurationService, collectionService) || this; + _this.configurationService = configurationService; + _this.collectionService = collectionService; + return _this; + } + ValueAxisComponentGenerated.propDecorators = { + children: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ContentChildren"], args: [ValueAxisItemComponent,] }] + }; +ValueAxisComponentGenerated.ɵfac = function ValueAxisComponentGenerated_Factory(t) { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinvalidFactory"](); }; +ValueAxisComponentGenerated.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: ValueAxisComponentGenerated, contentQueries: function ValueAxisComponentGenerated_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵcontentQuery"](dirIndex, ValueAxisItemComponent, false); + } if (rf & 2) { + var _t; + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵqueryRefresh"](_t = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵloadQuery"]()) && (ctx.children = _t); + } }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]] }); + + return ValueAxisComponentGenerated; +}(CollectionComponent)); + + +var ValueAxisComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(ValueAxisComponent, _super); + // Place custom properties here + function ValueAxisComponent(configurationService, collectionService) { + var _this = _super.call(this, configurationService, collectionService) || this; + _this.configurationService = configurationService; + _this.collectionService = collectionService; + return _this; + } + + ValueAxisComponent.ctorParameters = function () { return [ + { type: ConfigurationService }, + { type: CollectionService } + ]; }; +ValueAxisComponent.ɵfac = function ValueAxisComponent_Factory(t) { return new (t || ValueAxisComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](CollectionService)); }; +ValueAxisComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: ValueAxisComponent, selectors: [["kendo-chart-value-axis"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵProvidersFeature"]([CollectionService]), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function ValueAxisComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](ValueAxisComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + providers: [CollectionService], + selector: 'kendo-chart-value-axis', + template: '' + }] + }], function () { return [{ type: ConfigurationService }, { type: CollectionService }]; }, null); })(); + return ValueAxisComponent; +}(ValueAxisComponentGenerated)); + + +var ValueAxisCrosshairComponentGenerated = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(ValueAxisCrosshairComponentGenerated, _super); + function ValueAxisCrosshairComponentGenerated(configurationService) { + var _this = _super.call(this, 'crosshair', configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + ValueAxisCrosshairComponentGenerated.propDecorators = { + color: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + opacity: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + visible: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + width: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + tooltip: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }] + }; +ValueAxisCrosshairComponentGenerated.ɵfac = function ValueAxisCrosshairComponentGenerated_Factory(t) { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinvalidFactory"](); }; +ValueAxisCrosshairComponentGenerated.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: ValueAxisCrosshairComponentGenerated, inputs: { color: "color", opacity: "opacity", visible: "visible", width: "width", tooltip: "tooltip" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]] }); + + return ValueAxisCrosshairComponentGenerated; +}(SettingsComponent)); + + +var ValueAxisCrosshairComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(ValueAxisCrosshairComponent, _super); + // Place custom properties here + function ValueAxisCrosshairComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + _this.markAsVisible(); + return _this; + } + + ValueAxisCrosshairComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +ValueAxisCrosshairComponent.ɵfac = function ValueAxisCrosshairComponent_Factory(t) { return new (t || ValueAxisCrosshairComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +ValueAxisCrosshairComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: ValueAxisCrosshairComponent, selectors: [["kendo-chart-value-axis-item-crosshair"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function ValueAxisCrosshairComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](ValueAxisCrosshairComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-value-axis-item-crosshair', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return ValueAxisCrosshairComponent; +}(ValueAxisCrosshairComponentGenerated)); + + +var ValueAxisCrosshairTooltipComponentGenerated = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(ValueAxisCrosshairTooltipComponentGenerated, _super); + function ValueAxisCrosshairTooltipComponentGenerated(configurationService) { + var _this = _super.call(this, 'crosshair.tooltip', configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + ValueAxisCrosshairTooltipComponentGenerated.propDecorators = { + background: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + border: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + color: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + font: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + format: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + padding: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + visible: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }] + }; +ValueAxisCrosshairTooltipComponentGenerated.ɵfac = function ValueAxisCrosshairTooltipComponentGenerated_Factory(t) { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinvalidFactory"](); }; +ValueAxisCrosshairTooltipComponentGenerated.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: ValueAxisCrosshairTooltipComponentGenerated, inputs: { background: "background", border: "border", color: "color", font: "font", format: "format", padding: "padding", visible: "visible" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]] }); + + return ValueAxisCrosshairTooltipComponentGenerated; +}(SettingsComponent)); + + +var ValueAxisCrosshairTooltipComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(ValueAxisCrosshairTooltipComponent, _super); + // Place custom properties here. + function ValueAxisCrosshairTooltipComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + _this.markAsVisible(); + return _this; + } + + ValueAxisCrosshairTooltipComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +ValueAxisCrosshairTooltipComponent.ɵfac = function ValueAxisCrosshairTooltipComponent_Factory(t) { return new (t || ValueAxisCrosshairTooltipComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +ValueAxisCrosshairTooltipComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: ValueAxisCrosshairTooltipComponent, selectors: [["kendo-chart-value-axis-item-crosshair-tooltip"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function ValueAxisCrosshairTooltipComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](ValueAxisCrosshairTooltipComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-value-axis-item-crosshair-tooltip', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return ValueAxisCrosshairTooltipComponent; +}(ValueAxisCrosshairTooltipComponentGenerated)); + + +var ValueAxisLabelsComponentGenerated = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(ValueAxisLabelsComponentGenerated, _super); + function ValueAxisLabelsComponentGenerated(configurationService) { + var _this = _super.call(this, 'labels', configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + ValueAxisLabelsComponentGenerated.propDecorators = { + background: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + border: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + color: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + content: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + font: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + format: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + margin: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + mirror: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + padding: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + position: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + rotation: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + skip: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + step: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + visible: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + visual: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }] + }; +ValueAxisLabelsComponentGenerated.ɵfac = function ValueAxisLabelsComponentGenerated_Factory(t) { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinvalidFactory"](); }; +ValueAxisLabelsComponentGenerated.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: ValueAxisLabelsComponentGenerated, inputs: { background: "background", border: "border", color: "color", content: "content", font: "font", format: "format", margin: "margin", mirror: "mirror", padding: "padding", position: "position", rotation: "rotation", skip: "skip", step: "step", visible: "visible", visual: "visual" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]] }); + + return ValueAxisLabelsComponentGenerated; +}(SettingsComponent)); + + +var ValueAxisLabelsComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(ValueAxisLabelsComponent, _super); + // Place custom properties here + function ValueAxisLabelsComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + + ValueAxisLabelsComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +ValueAxisLabelsComponent.ɵfac = function ValueAxisLabelsComponent_Factory(t) { return new (t || ValueAxisLabelsComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +ValueAxisLabelsComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: ValueAxisLabelsComponent, selectors: [["kendo-chart-value-axis-item-labels"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function ValueAxisLabelsComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](ValueAxisLabelsComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-value-axis-item-labels', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return ValueAxisLabelsComponent; +}(ValueAxisLabelsComponentGenerated)); + + +var ValueAxisNotesComponentGenerated = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(ValueAxisNotesComponentGenerated, _super); + function ValueAxisNotesComponentGenerated(configurationService) { + var _this = _super.call(this, 'notes', configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + ValueAxisNotesComponentGenerated.propDecorators = { + data: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + line: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + position: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + visual: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + icon: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + label: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }] + }; +ValueAxisNotesComponentGenerated.ɵfac = function ValueAxisNotesComponentGenerated_Factory(t) { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinvalidFactory"](); }; +ValueAxisNotesComponentGenerated.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: ValueAxisNotesComponentGenerated, inputs: { data: "data", line: "line", position: "position", visual: "visual", icon: "icon", label: "label" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]] }); + + return ValueAxisNotesComponentGenerated; +}(SettingsComponent)); + + +var ValueAxisNotesComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(ValueAxisNotesComponent, _super); + // Place custom properties here + function ValueAxisNotesComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + + ValueAxisNotesComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +ValueAxisNotesComponent.ɵfac = function ValueAxisNotesComponent_Factory(t) { return new (t || ValueAxisNotesComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +ValueAxisNotesComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: ValueAxisNotesComponent, selectors: [["kendo-chart-value-axis-item-notes"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function ValueAxisNotesComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](ValueAxisNotesComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-value-axis-item-notes', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return ValueAxisNotesComponent; +}(ValueAxisNotesComponentGenerated)); + + +var ValueAxisNotesIconComponentGenerated = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(ValueAxisNotesIconComponentGenerated, _super); + function ValueAxisNotesIconComponentGenerated(configurationService) { + var _this = _super.call(this, 'notes.icon', configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + ValueAxisNotesIconComponentGenerated.propDecorators = { + background: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + border: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + size: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + type: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + visible: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }] + }; +ValueAxisNotesIconComponentGenerated.ɵfac = function ValueAxisNotesIconComponentGenerated_Factory(t) { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinvalidFactory"](); }; +ValueAxisNotesIconComponentGenerated.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: ValueAxisNotesIconComponentGenerated, inputs: { background: "background", border: "border", size: "size", type: "type", visible: "visible" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]] }); + + return ValueAxisNotesIconComponentGenerated; +}(SettingsComponent)); + + +var ValueAxisNotesIconComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(ValueAxisNotesIconComponent, _super); + // Place custom properties here + function ValueAxisNotesIconComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + + ValueAxisNotesIconComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +ValueAxisNotesIconComponent.ɵfac = function ValueAxisNotesIconComponent_Factory(t) { return new (t || ValueAxisNotesIconComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +ValueAxisNotesIconComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: ValueAxisNotesIconComponent, selectors: [["kendo-chart-value-axis-item-notes-icon"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function ValueAxisNotesIconComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](ValueAxisNotesIconComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-value-axis-item-notes-icon', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return ValueAxisNotesIconComponent; +}(ValueAxisNotesIconComponentGenerated)); + + +var ValueAxisNotesLabelComponentGenerated = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(ValueAxisNotesLabelComponentGenerated, _super); + function ValueAxisNotesLabelComponentGenerated(configurationService) { + var _this = _super.call(this, 'notes.label', configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + ValueAxisNotesLabelComponentGenerated.propDecorators = { + background: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + border: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + color: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + content: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + font: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + format: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + position: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + rotation: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + visible: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }] + }; +ValueAxisNotesLabelComponentGenerated.ɵfac = function ValueAxisNotesLabelComponentGenerated_Factory(t) { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinvalidFactory"](); }; +ValueAxisNotesLabelComponentGenerated.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: ValueAxisNotesLabelComponentGenerated, inputs: { background: "background", border: "border", color: "color", content: "content", font: "font", format: "format", position: "position", rotation: "rotation", visible: "visible" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]] }); + + return ValueAxisNotesLabelComponentGenerated; +}(SettingsComponent)); + + +var ValueAxisNotesLabelComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(ValueAxisNotesLabelComponent, _super); + // Place custom properties here + function ValueAxisNotesLabelComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + + ValueAxisNotesLabelComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +ValueAxisNotesLabelComponent.ɵfac = function ValueAxisNotesLabelComponent_Factory(t) { return new (t || ValueAxisNotesLabelComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +ValueAxisNotesLabelComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: ValueAxisNotesLabelComponent, selectors: [["kendo-chart-value-axis-item-notes-label"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function ValueAxisNotesLabelComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](ValueAxisNotesLabelComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-value-axis-item-notes-label', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return ValueAxisNotesLabelComponent; +}(ValueAxisNotesLabelComponentGenerated)); + + +var ValueAxisTitleComponentGenerated = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(ValueAxisTitleComponentGenerated, _super); + function ValueAxisTitleComponentGenerated(configurationService) { + var _this = _super.call(this, 'title', configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + ValueAxisTitleComponentGenerated.propDecorators = { + background: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + border: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + color: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + font: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + margin: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + padding: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + position: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + rotation: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + text: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + visible: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + visual: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }] + }; +ValueAxisTitleComponentGenerated.ɵfac = function ValueAxisTitleComponentGenerated_Factory(t) { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinvalidFactory"](); }; +ValueAxisTitleComponentGenerated.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: ValueAxisTitleComponentGenerated, inputs: { background: "background", border: "border", color: "color", font: "font", margin: "margin", padding: "padding", position: "position", rotation: "rotation", text: "text", visible: "visible", visual: "visual" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]] }); + + return ValueAxisTitleComponentGenerated; +}(SettingsComponent)); + + +var ValueAxisTitleComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(ValueAxisTitleComponent, _super); + // Place custom properties here + function ValueAxisTitleComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + + ValueAxisTitleComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +ValueAxisTitleComponent.ɵfac = function ValueAxisTitleComponent_Factory(t) { return new (t || ValueAxisTitleComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +ValueAxisTitleComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: ValueAxisTitleComponent, selectors: [["kendo-chart-value-axis-item-title"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function ValueAxisTitleComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](ValueAxisTitleComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-value-axis-item-title', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return ValueAxisTitleComponent; +}(ValueAxisTitleComponentGenerated)); + + +var XAxisItemComponentGenerated = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(XAxisItemComponentGenerated, _super); + function XAxisItemComponentGenerated(configurationService, collectionService, intl, localeId) { + var _this = _super.call(this, configurationService, collectionService) || this; + _this.configurationService = configurationService; + _this.collectionService = collectionService; + _this.notifyChanges({ weekStartDay: intl.firstDay(localeId) }); + return _this; + } + XAxisItemComponentGenerated.propDecorators = { + axisCrossingValue: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + background: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + baseUnit: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + color: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + line: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + majorGridLines: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + majorTicks: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + majorUnit: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + max: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + min: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + minorGridLines: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + minorTicks: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + minorUnit: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + name: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + narrowRange: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + pane: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + plotBands: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + reverse: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + startAngle: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + type: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + visible: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + weekStartDay: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + crosshair: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + labels: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + notes: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + title: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }] + }; +XAxisItemComponentGenerated.ɵfac = function XAxisItemComponentGenerated_Factory(t) { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinvalidFactory"](); }; +XAxisItemComponentGenerated.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: XAxisItemComponentGenerated, inputs: { axisCrossingValue: "axisCrossingValue", background: "background", baseUnit: "baseUnit", color: "color", line: "line", majorGridLines: "majorGridLines", majorTicks: "majorTicks", majorUnit: "majorUnit", max: "max", min: "min", minorGridLines: "minorGridLines", minorTicks: "minorTicks", minorUnit: "minorUnit", name: "name", narrowRange: "narrowRange", pane: "pane", plotBands: "plotBands", reverse: "reverse", startAngle: "startAngle", type: "type", visible: "visible", weekStartDay: "weekStartDay", crosshair: "crosshair", labels: "labels", notes: "notes", title: "title" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]] }); + + return XAxisItemComponentGenerated; +}(CollectionItemComponent)); + + +var XAxisItemComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(XAxisItemComponent, _super); + // Place custom properties here + function XAxisItemComponent(configurationService, collectionService, intl, localeId) { + var _this = _super.call(this, configurationService, collectionService, intl, localeId) || this; + _this.configurationService = configurationService; + _this.collectionService = collectionService; + _this.intl = intl; + return _this; + } + + XAxisItemComponent.ctorParameters = function () { return [ + { type: ConfigurationService }, + { type: CollectionService }, + { type: _progress_kendo_angular_intl__WEBPACK_IMPORTED_MODULE_9__["IntlService"] }, + { type: String, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Inject"], args: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["LOCALE_ID"],] }] } + ]; }; +XAxisItemComponent.ɵfac = function XAxisItemComponent_Factory(t) { return new (t || XAxisItemComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](CollectionService), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](_progress_kendo_angular_intl__WEBPACK_IMPORTED_MODULE_9__["IntlService"]), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_1__["LOCALE_ID"])); }; +XAxisItemComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: XAxisItemComponent, selectors: [["kendo-chart-x-axis-item"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵProvidersFeature"]([ConfigurationService]), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function XAxisItemComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](XAxisItemComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + providers: [ConfigurationService], + selector: 'kendo-chart-x-axis-item', + template: '' + }] + }], function () { return [{ type: ConfigurationService }, { type: CollectionService }, { type: _progress_kendo_angular_intl__WEBPACK_IMPORTED_MODULE_9__["IntlService"] }, { type: String, decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Inject"], + args: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["LOCALE_ID"]] + }] }]; }, null); })(); + return XAxisItemComponent; +}(XAxisItemComponentGenerated)); + + +var XAxisComponentGenerated = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(XAxisComponentGenerated, _super); + function XAxisComponentGenerated(configurationService, collectionService) { + var _this = _super.call(this, 'xAxis', configurationService, collectionService) || this; + _this.configurationService = configurationService; + _this.collectionService = collectionService; + return _this; + } + XAxisComponentGenerated.propDecorators = { + children: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ContentChildren"], args: [XAxisItemComponent,] }] + }; +XAxisComponentGenerated.ɵfac = function XAxisComponentGenerated_Factory(t) { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinvalidFactory"](); }; +XAxisComponentGenerated.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: XAxisComponentGenerated, contentQueries: function XAxisComponentGenerated_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵcontentQuery"](dirIndex, XAxisItemComponent, false); + } if (rf & 2) { + var _t; + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵqueryRefresh"](_t = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵloadQuery"]()) && (ctx.children = _t); + } }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]] }); + + return XAxisComponentGenerated; +}(CollectionComponent)); + + +var XAxisComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(XAxisComponent, _super); + // Place custom properties here + function XAxisComponent(configurationService, collectionService) { + var _this = _super.call(this, configurationService, collectionService) || this; + _this.configurationService = configurationService; + _this.collectionService = collectionService; + return _this; + } + + XAxisComponent.ctorParameters = function () { return [ + { type: ConfigurationService }, + { type: CollectionService } + ]; }; +XAxisComponent.ɵfac = function XAxisComponent_Factory(t) { return new (t || XAxisComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](CollectionService)); }; +XAxisComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: XAxisComponent, selectors: [["kendo-chart-x-axis"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵProvidersFeature"]([CollectionService]), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function XAxisComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](XAxisComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + providers: [CollectionService], + selector: 'kendo-chart-x-axis', + template: '' + }] + }], function () { return [{ type: ConfigurationService }, { type: CollectionService }]; }, null); })(); + return XAxisComponent; +}(XAxisComponentGenerated)); + + +var XAxisCrosshairComponentGenerated = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(XAxisCrosshairComponentGenerated, _super); + function XAxisCrosshairComponentGenerated(configurationService) { + var _this = _super.call(this, 'crosshair', configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + XAxisCrosshairComponentGenerated.propDecorators = { + color: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + opacity: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + visible: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + width: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + tooltip: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }] + }; +XAxisCrosshairComponentGenerated.ɵfac = function XAxisCrosshairComponentGenerated_Factory(t) { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinvalidFactory"](); }; +XAxisCrosshairComponentGenerated.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: XAxisCrosshairComponentGenerated, inputs: { color: "color", opacity: "opacity", visible: "visible", width: "width", tooltip: "tooltip" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]] }); + + return XAxisCrosshairComponentGenerated; +}(SettingsComponent)); + + +var XAxisCrosshairComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(XAxisCrosshairComponent, _super); + // Place custom properties here + function XAxisCrosshairComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + _this.markAsVisible(); + return _this; + } + + XAxisCrosshairComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +XAxisCrosshairComponent.ɵfac = function XAxisCrosshairComponent_Factory(t) { return new (t || XAxisCrosshairComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +XAxisCrosshairComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: XAxisCrosshairComponent, selectors: [["kendo-chart-x-axis-item-crosshair"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function XAxisCrosshairComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](XAxisCrosshairComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-x-axis-item-crosshair', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return XAxisCrosshairComponent; +}(XAxisCrosshairComponentGenerated)); + + +var XAxisCrosshairTooltipComponentGenerated = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(XAxisCrosshairTooltipComponentGenerated, _super); + function XAxisCrosshairTooltipComponentGenerated(configurationService) { + var _this = _super.call(this, 'crosshair.tooltip', configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + XAxisCrosshairTooltipComponentGenerated.propDecorators = { + background: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + border: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + color: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + font: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + format: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + padding: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + visible: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }] + }; +XAxisCrosshairTooltipComponentGenerated.ɵfac = function XAxisCrosshairTooltipComponentGenerated_Factory(t) { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinvalidFactory"](); }; +XAxisCrosshairTooltipComponentGenerated.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: XAxisCrosshairTooltipComponentGenerated, inputs: { background: "background", border: "border", color: "color", font: "font", format: "format", padding: "padding", visible: "visible" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]] }); + + return XAxisCrosshairTooltipComponentGenerated; +}(SettingsComponent)); + + +var XAxisCrosshairTooltipComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(XAxisCrosshairTooltipComponent, _super); + // Place custom properties here. + function XAxisCrosshairTooltipComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + _this.markAsVisible(); + return _this; + } + + XAxisCrosshairTooltipComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +XAxisCrosshairTooltipComponent.ɵfac = function XAxisCrosshairTooltipComponent_Factory(t) { return new (t || XAxisCrosshairTooltipComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +XAxisCrosshairTooltipComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: XAxisCrosshairTooltipComponent, selectors: [["kendo-chart-x-axis-item-crosshair-tooltip"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function XAxisCrosshairTooltipComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](XAxisCrosshairTooltipComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-x-axis-item-crosshair-tooltip', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return XAxisCrosshairTooltipComponent; +}(XAxisCrosshairTooltipComponentGenerated)); + + +var XAxisLabelsComponentGenerated = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(XAxisLabelsComponentGenerated, _super); + function XAxisLabelsComponentGenerated(configurationService) { + var _this = _super.call(this, 'labels', configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + XAxisLabelsComponentGenerated.propDecorators = { + background: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + border: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + color: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + content: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + culture: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + dateFormats: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + font: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + format: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + margin: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + mirror: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + padding: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + position: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + rotation: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + skip: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + step: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + visible: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + visual: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }] + }; +XAxisLabelsComponentGenerated.ɵfac = function XAxisLabelsComponentGenerated_Factory(t) { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinvalidFactory"](); }; +XAxisLabelsComponentGenerated.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: XAxisLabelsComponentGenerated, inputs: { background: "background", border: "border", color: "color", content: "content", culture: "culture", dateFormats: "dateFormats", font: "font", format: "format", margin: "margin", mirror: "mirror", padding: "padding", position: "position", rotation: "rotation", skip: "skip", step: "step", visible: "visible", visual: "visual" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]] }); + + return XAxisLabelsComponentGenerated; +}(SettingsComponent)); + + +var XAxisLabelsComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(XAxisLabelsComponent, _super); + // Place custom properties here + function XAxisLabelsComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + + XAxisLabelsComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +XAxisLabelsComponent.ɵfac = function XAxisLabelsComponent_Factory(t) { return new (t || XAxisLabelsComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +XAxisLabelsComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: XAxisLabelsComponent, selectors: [["kendo-chart-x-axis-item-labels"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function XAxisLabelsComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](XAxisLabelsComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-x-axis-item-labels', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return XAxisLabelsComponent; +}(XAxisLabelsComponentGenerated)); + + +var XAxisNotesComponentGenerated = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(XAxisNotesComponentGenerated, _super); + function XAxisNotesComponentGenerated(configurationService) { + var _this = _super.call(this, 'notes', configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + XAxisNotesComponentGenerated.propDecorators = { + data: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + line: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + position: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + visual: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + icon: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + label: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }] + }; +XAxisNotesComponentGenerated.ɵfac = function XAxisNotesComponentGenerated_Factory(t) { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinvalidFactory"](); }; +XAxisNotesComponentGenerated.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: XAxisNotesComponentGenerated, inputs: { data: "data", line: "line", position: "position", visual: "visual", icon: "icon", label: "label" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]] }); + + return XAxisNotesComponentGenerated; +}(SettingsComponent)); + + +var XAxisNotesComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(XAxisNotesComponent, _super); + // Place custom properties here + function XAxisNotesComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + + XAxisNotesComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +XAxisNotesComponent.ɵfac = function XAxisNotesComponent_Factory(t) { return new (t || XAxisNotesComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +XAxisNotesComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: XAxisNotesComponent, selectors: [["kendo-chart-x-axis-item-notes"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function XAxisNotesComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](XAxisNotesComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-x-axis-item-notes', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return XAxisNotesComponent; +}(XAxisNotesComponentGenerated)); + + +var XAxisNotesIconComponentGenerated = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(XAxisNotesIconComponentGenerated, _super); + function XAxisNotesIconComponentGenerated(configurationService) { + var _this = _super.call(this, 'notes.icon', configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + XAxisNotesIconComponentGenerated.propDecorators = { + background: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + border: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + size: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + type: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + visible: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }] + }; +XAxisNotesIconComponentGenerated.ɵfac = function XAxisNotesIconComponentGenerated_Factory(t) { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinvalidFactory"](); }; +XAxisNotesIconComponentGenerated.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: XAxisNotesIconComponentGenerated, inputs: { background: "background", border: "border", size: "size", type: "type", visible: "visible" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]] }); + + return XAxisNotesIconComponentGenerated; +}(SettingsComponent)); + + +var XAxisNotesIconComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(XAxisNotesIconComponent, _super); + // Place custom properties here + function XAxisNotesIconComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + + XAxisNotesIconComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +XAxisNotesIconComponent.ɵfac = function XAxisNotesIconComponent_Factory(t) { return new (t || XAxisNotesIconComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +XAxisNotesIconComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: XAxisNotesIconComponent, selectors: [["kendo-chart-x-axis-item-notes-icon"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function XAxisNotesIconComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](XAxisNotesIconComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-x-axis-item-notes-icon', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return XAxisNotesIconComponent; +}(XAxisNotesIconComponentGenerated)); + + +var XAxisNotesLabelComponentGenerated = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(XAxisNotesLabelComponentGenerated, _super); + function XAxisNotesLabelComponentGenerated(configurationService) { + var _this = _super.call(this, 'notes.label', configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + XAxisNotesLabelComponentGenerated.propDecorators = { + background: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + border: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + color: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + content: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + font: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + format: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + position: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + rotation: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + visible: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }] + }; +XAxisNotesLabelComponentGenerated.ɵfac = function XAxisNotesLabelComponentGenerated_Factory(t) { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinvalidFactory"](); }; +XAxisNotesLabelComponentGenerated.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: XAxisNotesLabelComponentGenerated, inputs: { background: "background", border: "border", color: "color", content: "content", font: "font", format: "format", position: "position", rotation: "rotation", visible: "visible" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]] }); + + return XAxisNotesLabelComponentGenerated; +}(SettingsComponent)); + + +var XAxisNotesLabelComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(XAxisNotesLabelComponent, _super); + // Place custom properties here + function XAxisNotesLabelComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + + XAxisNotesLabelComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +XAxisNotesLabelComponent.ɵfac = function XAxisNotesLabelComponent_Factory(t) { return new (t || XAxisNotesLabelComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +XAxisNotesLabelComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: XAxisNotesLabelComponent, selectors: [["kendo-chart-x-axis-item-notes-label"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function XAxisNotesLabelComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](XAxisNotesLabelComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-x-axis-item-notes-label', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return XAxisNotesLabelComponent; +}(XAxisNotesLabelComponentGenerated)); + + +var XAxisTitleComponentGenerated = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(XAxisTitleComponentGenerated, _super); + function XAxisTitleComponentGenerated(configurationService) { + var _this = _super.call(this, 'title', configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + XAxisTitleComponentGenerated.propDecorators = { + background: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + border: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + color: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + font: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + margin: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + padding: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + position: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + rotation: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + text: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + visible: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + visual: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }] + }; +XAxisTitleComponentGenerated.ɵfac = function XAxisTitleComponentGenerated_Factory(t) { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinvalidFactory"](); }; +XAxisTitleComponentGenerated.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: XAxisTitleComponentGenerated, inputs: { background: "background", border: "border", color: "color", font: "font", margin: "margin", padding: "padding", position: "position", rotation: "rotation", text: "text", visible: "visible", visual: "visual" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]] }); + + return XAxisTitleComponentGenerated; +}(SettingsComponent)); + + +var XAxisTitleComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(XAxisTitleComponent, _super); + // Place custom properties here + function XAxisTitleComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + + XAxisTitleComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +XAxisTitleComponent.ɵfac = function XAxisTitleComponent_Factory(t) { return new (t || XAxisTitleComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +XAxisTitleComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: XAxisTitleComponent, selectors: [["kendo-chart-x-axis-item-title"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function XAxisTitleComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](XAxisTitleComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-x-axis-item-title', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return XAxisTitleComponent; +}(XAxisTitleComponentGenerated)); + + +var YAxisItemComponentGenerated = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(YAxisItemComponentGenerated, _super); + function YAxisItemComponentGenerated(configurationService, collectionService) { + var _this = _super.call(this, configurationService, collectionService) || this; + _this.configurationService = configurationService; + _this.collectionService = collectionService; + return _this; + } + YAxisItemComponentGenerated.propDecorators = { + axisCrossingValue: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + background: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + baseUnit: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + color: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + line: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + majorGridLines: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + majorTicks: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + majorUnit: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + max: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + min: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + minorGridLines: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + minorTicks: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + minorUnit: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + name: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + narrowRange: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + pane: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + plotBands: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + reverse: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + type: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + visible: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + crosshair: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + labels: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + notes: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + title: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }] + }; +YAxisItemComponentGenerated.ɵfac = function YAxisItemComponentGenerated_Factory(t) { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinvalidFactory"](); }; +YAxisItemComponentGenerated.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: YAxisItemComponentGenerated, inputs: { axisCrossingValue: "axisCrossingValue", background: "background", baseUnit: "baseUnit", color: "color", line: "line", majorGridLines: "majorGridLines", majorTicks: "majorTicks", majorUnit: "majorUnit", max: "max", min: "min", minorGridLines: "minorGridLines", minorTicks: "minorTicks", minorUnit: "minorUnit", name: "name", narrowRange: "narrowRange", pane: "pane", plotBands: "plotBands", reverse: "reverse", type: "type", visible: "visible", crosshair: "crosshair", labels: "labels", notes: "notes", title: "title" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]] }); + + return YAxisItemComponentGenerated; +}(CollectionItemComponent)); + + +var YAxisItemComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(YAxisItemComponent, _super); + // Place custom properties here + function YAxisItemComponent(configurationService, collectionService) { + var _this = _super.call(this, configurationService, collectionService) || this; + _this.configurationService = configurationService; + _this.collectionService = collectionService; + return _this; + } + + YAxisItemComponent.ctorParameters = function () { return [ + { type: ConfigurationService }, + { type: CollectionService } + ]; }; +YAxisItemComponent.ɵfac = function YAxisItemComponent_Factory(t) { return new (t || YAxisItemComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](CollectionService)); }; +YAxisItemComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: YAxisItemComponent, selectors: [["kendo-chart-y-axis-item"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵProvidersFeature"]([ConfigurationService]), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function YAxisItemComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](YAxisItemComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + providers: [ConfigurationService], + selector: 'kendo-chart-y-axis-item', + template: '' + }] + }], function () { return [{ type: ConfigurationService }, { type: CollectionService }]; }, null); })(); + return YAxisItemComponent; +}(YAxisItemComponentGenerated)); + + +var YAxisComponentGenerated = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(YAxisComponentGenerated, _super); + function YAxisComponentGenerated(configurationService, collectionService) { + var _this = _super.call(this, 'yAxis', configurationService, collectionService) || this; + _this.configurationService = configurationService; + _this.collectionService = collectionService; + return _this; + } + YAxisComponentGenerated.propDecorators = { + children: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ContentChildren"], args: [YAxisItemComponent,] }] + }; +YAxisComponentGenerated.ɵfac = function YAxisComponentGenerated_Factory(t) { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinvalidFactory"](); }; +YAxisComponentGenerated.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: YAxisComponentGenerated, contentQueries: function YAxisComponentGenerated_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵcontentQuery"](dirIndex, YAxisItemComponent, false); + } if (rf & 2) { + var _t; + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵqueryRefresh"](_t = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵloadQuery"]()) && (ctx.children = _t); + } }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]] }); + + return YAxisComponentGenerated; +}(CollectionComponent)); + + +var YAxisComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(YAxisComponent, _super); + // Place custom properties here + function YAxisComponent(configurationService, collectionService) { + var _this = _super.call(this, configurationService, collectionService) || this; + _this.configurationService = configurationService; + _this.collectionService = collectionService; + return _this; + } + + YAxisComponent.ctorParameters = function () { return [ + { type: ConfigurationService }, + { type: CollectionService } + ]; }; +YAxisComponent.ɵfac = function YAxisComponent_Factory(t) { return new (t || YAxisComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](CollectionService)); }; +YAxisComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: YAxisComponent, selectors: [["kendo-chart-y-axis"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵProvidersFeature"]([CollectionService]), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function YAxisComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](YAxisComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + providers: [CollectionService], + selector: 'kendo-chart-y-axis', + template: '' + }] + }], function () { return [{ type: ConfigurationService }, { type: CollectionService }]; }, null); })(); + return YAxisComponent; +}(YAxisComponentGenerated)); + + +var YAxisCrosshairComponentGenerated = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(YAxisCrosshairComponentGenerated, _super); + function YAxisCrosshairComponentGenerated(configurationService) { + var _this = _super.call(this, 'crosshair', configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + YAxisCrosshairComponentGenerated.propDecorators = { + color: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + opacity: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + visible: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + width: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + tooltip: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }] + }; +YAxisCrosshairComponentGenerated.ɵfac = function YAxisCrosshairComponentGenerated_Factory(t) { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinvalidFactory"](); }; +YAxisCrosshairComponentGenerated.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: YAxisCrosshairComponentGenerated, inputs: { color: "color", opacity: "opacity", visible: "visible", width: "width", tooltip: "tooltip" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]] }); + + return YAxisCrosshairComponentGenerated; +}(SettingsComponent)); + + +var YAxisCrosshairComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(YAxisCrosshairComponent, _super); + // Place custom properties here + function YAxisCrosshairComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + _this.markAsVisible(); + return _this; + } + + YAxisCrosshairComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +YAxisCrosshairComponent.ɵfac = function YAxisCrosshairComponent_Factory(t) { return new (t || YAxisCrosshairComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +YAxisCrosshairComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: YAxisCrosshairComponent, selectors: [["kendo-chart-y-axis-item-crosshair"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function YAxisCrosshairComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](YAxisCrosshairComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-y-axis-item-crosshair', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return YAxisCrosshairComponent; +}(YAxisCrosshairComponentGenerated)); + + +var YAxisCrosshairTooltipComponentGenerated = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(YAxisCrosshairTooltipComponentGenerated, _super); + function YAxisCrosshairTooltipComponentGenerated(configurationService) { + var _this = _super.call(this, 'crosshair.tooltip', configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + YAxisCrosshairTooltipComponentGenerated.propDecorators = { + background: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + border: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + color: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + font: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + format: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + padding: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + visible: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }] + }; +YAxisCrosshairTooltipComponentGenerated.ɵfac = function YAxisCrosshairTooltipComponentGenerated_Factory(t) { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinvalidFactory"](); }; +YAxisCrosshairTooltipComponentGenerated.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: YAxisCrosshairTooltipComponentGenerated, inputs: { background: "background", border: "border", color: "color", font: "font", format: "format", padding: "padding", visible: "visible" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]] }); + + return YAxisCrosshairTooltipComponentGenerated; +}(SettingsComponent)); + + +var YAxisCrosshairTooltipComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(YAxisCrosshairTooltipComponent, _super); + // Place custom properties here. + function YAxisCrosshairTooltipComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + _this.markAsVisible(); + return _this; + } + + YAxisCrosshairTooltipComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +YAxisCrosshairTooltipComponent.ɵfac = function YAxisCrosshairTooltipComponent_Factory(t) { return new (t || YAxisCrosshairTooltipComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +YAxisCrosshairTooltipComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: YAxisCrosshairTooltipComponent, selectors: [["kendo-chart-y-axis-item-crosshair-tooltip"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function YAxisCrosshairTooltipComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](YAxisCrosshairTooltipComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-y-axis-item-crosshair-tooltip', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return YAxisCrosshairTooltipComponent; +}(YAxisCrosshairTooltipComponentGenerated)); + + +var YAxisLabelsComponentGenerated = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(YAxisLabelsComponentGenerated, _super); + function YAxisLabelsComponentGenerated(configurationService) { + var _this = _super.call(this, 'labels', configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + YAxisLabelsComponentGenerated.propDecorators = { + background: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + border: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + color: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + content: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + culture: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + dateFormats: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + font: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + format: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + margin: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + mirror: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + padding: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + position: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + rotation: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + skip: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + step: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + visible: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + visual: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }] + }; +YAxisLabelsComponentGenerated.ɵfac = function YAxisLabelsComponentGenerated_Factory(t) { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinvalidFactory"](); }; +YAxisLabelsComponentGenerated.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: YAxisLabelsComponentGenerated, inputs: { background: "background", border: "border", color: "color", content: "content", culture: "culture", dateFormats: "dateFormats", font: "font", format: "format", margin: "margin", mirror: "mirror", padding: "padding", position: "position", rotation: "rotation", skip: "skip", step: "step", visible: "visible", visual: "visual" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]] }); + + return YAxisLabelsComponentGenerated; +}(SettingsComponent)); + + +var YAxisLabelsComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(YAxisLabelsComponent, _super); + // Place custom properties here + function YAxisLabelsComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + + YAxisLabelsComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +YAxisLabelsComponent.ɵfac = function YAxisLabelsComponent_Factory(t) { return new (t || YAxisLabelsComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +YAxisLabelsComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: YAxisLabelsComponent, selectors: [["kendo-chart-y-axis-item-labels"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function YAxisLabelsComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](YAxisLabelsComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-y-axis-item-labels', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return YAxisLabelsComponent; +}(YAxisLabelsComponentGenerated)); + + +var YAxisNotesComponentGenerated = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(YAxisNotesComponentGenerated, _super); + function YAxisNotesComponentGenerated(configurationService) { + var _this = _super.call(this, 'notes', configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + YAxisNotesComponentGenerated.propDecorators = { + data: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + line: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + position: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + visual: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + icon: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + label: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }] + }; +YAxisNotesComponentGenerated.ɵfac = function YAxisNotesComponentGenerated_Factory(t) { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinvalidFactory"](); }; +YAxisNotesComponentGenerated.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: YAxisNotesComponentGenerated, inputs: { data: "data", line: "line", position: "position", visual: "visual", icon: "icon", label: "label" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]] }); + + return YAxisNotesComponentGenerated; +}(SettingsComponent)); + + +var YAxisNotesComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(YAxisNotesComponent, _super); + // Place custom properties here + function YAxisNotesComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + + YAxisNotesComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +YAxisNotesComponent.ɵfac = function YAxisNotesComponent_Factory(t) { return new (t || YAxisNotesComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +YAxisNotesComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: YAxisNotesComponent, selectors: [["kendo-chart-y-axis-item-notes"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function YAxisNotesComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](YAxisNotesComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-y-axis-item-notes', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return YAxisNotesComponent; +}(YAxisNotesComponentGenerated)); + + +var YAxisNotesIconComponentGenerated = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(YAxisNotesIconComponentGenerated, _super); + function YAxisNotesIconComponentGenerated(configurationService) { + var _this = _super.call(this, 'notes.icon', configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + YAxisNotesIconComponentGenerated.propDecorators = { + background: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + border: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + size: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + type: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + visible: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }] + }; +YAxisNotesIconComponentGenerated.ɵfac = function YAxisNotesIconComponentGenerated_Factory(t) { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinvalidFactory"](); }; +YAxisNotesIconComponentGenerated.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: YAxisNotesIconComponentGenerated, inputs: { background: "background", border: "border", size: "size", type: "type", visible: "visible" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]] }); + + return YAxisNotesIconComponentGenerated; +}(SettingsComponent)); + + +var YAxisNotesIconComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(YAxisNotesIconComponent, _super); + // Place custom properties here + function YAxisNotesIconComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + + YAxisNotesIconComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +YAxisNotesIconComponent.ɵfac = function YAxisNotesIconComponent_Factory(t) { return new (t || YAxisNotesIconComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +YAxisNotesIconComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: YAxisNotesIconComponent, selectors: [["kendo-chart-y-axis-item-notes-icon"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function YAxisNotesIconComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](YAxisNotesIconComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-y-axis-item-notes-icon', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return YAxisNotesIconComponent; +}(YAxisNotesIconComponentGenerated)); + + +var YAxisNotesLabelComponentGenerated = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(YAxisNotesLabelComponentGenerated, _super); + function YAxisNotesLabelComponentGenerated(configurationService) { + var _this = _super.call(this, 'notes.label', configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + YAxisNotesLabelComponentGenerated.propDecorators = { + background: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + border: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + color: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + content: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + font: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + format: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + position: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + rotation: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + visible: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }] + }; +YAxisNotesLabelComponentGenerated.ɵfac = function YAxisNotesLabelComponentGenerated_Factory(t) { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinvalidFactory"](); }; +YAxisNotesLabelComponentGenerated.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: YAxisNotesLabelComponentGenerated, inputs: { background: "background", border: "border", color: "color", content: "content", font: "font", format: "format", position: "position", rotation: "rotation", visible: "visible" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]] }); + + return YAxisNotesLabelComponentGenerated; +}(SettingsComponent)); + + +var YAxisNotesLabelComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(YAxisNotesLabelComponent, _super); + // Place custom properties here + function YAxisNotesLabelComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + + YAxisNotesLabelComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +YAxisNotesLabelComponent.ɵfac = function YAxisNotesLabelComponent_Factory(t) { return new (t || YAxisNotesLabelComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +YAxisNotesLabelComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: YAxisNotesLabelComponent, selectors: [["kendo-chart-y-axis-item-notes-label"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function YAxisNotesLabelComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](YAxisNotesLabelComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-y-axis-item-notes-label', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return YAxisNotesLabelComponent; +}(YAxisNotesLabelComponentGenerated)); + + +var YAxisTitleComponentGenerated = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(YAxisTitleComponentGenerated, _super); + function YAxisTitleComponentGenerated(configurationService) { + var _this = _super.call(this, 'title', configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + YAxisTitleComponentGenerated.propDecorators = { + background: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + border: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + color: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + font: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + margin: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + padding: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + position: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + rotation: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + text: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + visible: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + visual: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }] + }; +YAxisTitleComponentGenerated.ɵfac = function YAxisTitleComponentGenerated_Factory(t) { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinvalidFactory"](); }; +YAxisTitleComponentGenerated.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: YAxisTitleComponentGenerated, inputs: { background: "background", border: "border", color: "color", font: "font", margin: "margin", padding: "padding", position: "position", rotation: "rotation", text: "text", visible: "visible", visual: "visual" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]] }); + + return YAxisTitleComponentGenerated; +}(SettingsComponent)); + + +var YAxisTitleComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(YAxisTitleComponent, _super); + // Place custom properties here + function YAxisTitleComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + + YAxisTitleComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +YAxisTitleComponent.ɵfac = function YAxisTitleComponent_Factory(t) { return new (t || YAxisTitleComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +YAxisTitleComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: YAxisTitleComponent, selectors: [["kendo-chart-y-axis-item-title"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function YAxisTitleComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](YAxisTitleComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-y-axis-item-title', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return YAxisTitleComponent; +}(YAxisTitleComponentGenerated)); + + +var ZoomableComponentGenerated = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(ZoomableComponentGenerated, _super); + function ZoomableComponentGenerated(configurationService) { + var _this = _super.call(this, 'zoomable', configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + ZoomableComponentGenerated.propDecorators = { + mousewheel: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + selection: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }] + }; +ZoomableComponentGenerated.ɵfac = function ZoomableComponentGenerated_Factory(t) { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinvalidFactory"](); }; +ZoomableComponentGenerated.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineDirective"]({ type: ZoomableComponentGenerated, inputs: { mousewheel: "mousewheel", selection: "selection" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]] }); + + return ZoomableComponentGenerated; +}(SettingsComponent)); + + +var ZoomableComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(ZoomableComponent, _super); + // Place custom properties here + function ZoomableComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + + ZoomableComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +ZoomableComponent.ɵfac = function ZoomableComponent_Factory(t) { return new (t || ZoomableComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +ZoomableComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: ZoomableComponent, selectors: [["kendo-chart-zoomable"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function ZoomableComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](ZoomableComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-zoomable', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return ZoomableComponent; +}(ZoomableComponentGenerated)); + + +var CHART_DIRECTIVES = [ + ChartComponent, + TooltipPopupComponent, + SeriesTooltipTemplateDirective, + SharedTooltipTemplateDirective, + CrosshairTooltipsContainerComponent, + CrosshairTooltipComponent, + DonutCenterTemplateDirective, + AxisDefaultsComponent, + AxisDefaultsCrosshairComponent, + AxisDefaultsCrosshairTooltipComponent, + AxisDefaultsLabelsComponent, + AxisDefaultsTitleComponent, + CategoryAxisComponent, + CategoryAxisCrosshairComponent, + CategoryAxisCrosshairTooltipComponent, + CategoryAxisItemComponent, + CategoryAxisLabelsComponent, + CategoryAxisNotesComponent, + CategoryAxisNotesIconComponent, + CategoryAxisNotesLabelComponent, + CategoryAxisSelectComponent, + CategoryAxisTitleComponent, + ChartAreaComponent, + LegendComponent, + LegendInactiveItemsComponent, + LegendItemComponent, + PaneComponent, + PanesComponent, + PanesTitleComponent, + PlotAreaComponent, + SeriesComponent, + SeriesDefaultsComponent, + SeriesDefaultsLabelsComponent, + SeriesDefaultsLabelsFromComponent, + SeriesDefaultsLabelsToComponent, + SeriesDefaultsNotesComponent, + SeriesDefaultsNotesIconComponent, + SeriesDefaultsNotesLabelComponent, + SeriesDefaultsTooltipComponent, + SeriesErrorBarsComponent, + SeriesExtremesComponent, + SeriesHighlightComponent, + SeriesItemComponent, + SeriesLabelsComponent, + SeriesLabelsFromComponent, + SeriesLabelsToComponent, + SeriesMarkersComponent, + SeriesNotesComponent, + SeriesNotesIconComponent, + SeriesNotesLabelComponent, + SeriesOutliersComponent, + SeriesTooltipComponent, + TitleComponent, + TooltipComponent, + ValueAxisComponent, + ValueAxisCrosshairComponent, + ValueAxisCrosshairTooltipComponent, + ValueAxisItemComponent, + ValueAxisLabelsComponent, + ValueAxisNotesComponent, + ValueAxisNotesIconComponent, + ValueAxisNotesLabelComponent, + ValueAxisTitleComponent, + XAxisComponent, + XAxisCrosshairComponent, + XAxisCrosshairTooltipComponent, + XAxisItemComponent, + XAxisLabelsComponent, + XAxisNotesComponent, + XAxisNotesIconComponent, + XAxisNotesLabelComponent, + XAxisTitleComponent, + YAxisComponent, + YAxisCrosshairComponent, + YAxisCrosshairTooltipComponent, + YAxisItemComponent, + YAxisLabelsComponent, + YAxisNotesComponent, + YAxisNotesIconComponent, + YAxisNotesLabelComponent, + YAxisTitleComponent, + ZoomableComponent +]; + +// Re-export event types + + +var NavigatorFilterEvent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(NavigatorFilterEvent, _super); + + function NavigatorFilterEvent(e, sender) { + var _this = _super.call(this, sender) || this; + _this.from = e.from; + _this.to = e.to; + return _this; + } + return NavigatorFilterEvent; +}(BaseEvent)); + +// Re-export event types + + +var RootConfigurationService = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(RootConfigurationService, _super); + function RootConfigurationService() { + return _super !== null && _super.apply(this, arguments) || this; + } +RootConfigurationService.ɵfac = function RootConfigurationService_Factory(t) { return ɵRootConfigurationService_BaseFactory(t || RootConfigurationService); }; +RootConfigurationService.ɵprov = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineInjectable"]({ token: RootConfigurationService, factory: function (t) { return RootConfigurationService.ɵfac(t); } }); +var ɵRootConfigurationService_BaseFactory = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵgetInheritedFactory"](RootConfigurationService); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](RootConfigurationService, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Injectable"] + }], null, null); })(); + return RootConfigurationService; +}(ConfigurationService)); + +var EVENT_MAP$1 = { + navigatorFilter: NavigatorFilterEvent +}; + +var StockInstanceEventService = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(StockInstanceEventService, _super); + function StockInstanceEventService() { + return _super !== null && _super.apply(this, arguments) || this; + } + StockInstanceEventService.prototype.create = function (name, args, sender) { + if (EVENT_MAP$1[name]) { + return new EVENT_MAP$1[name](args, sender); + } + return _super.prototype.create.call(this, name, args, sender); + }; +StockInstanceEventService.ɵfac = function StockInstanceEventService_Factory(t) { return ɵStockInstanceEventService_BaseFactory(t || StockInstanceEventService); }; +StockInstanceEventService.ɵprov = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineInjectable"]({ token: StockInstanceEventService, factory: function (t) { return StockInstanceEventService.ɵfac(t); } }); +var ɵStockInstanceEventService_BaseFactory = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵgetInheritedFactory"](StockInstanceEventService); + return StockInstanceEventService; +}(InstanceEventService)); + +var NAVIGATOR_DEFAULTS = { + autoBindElements: true, + liveDrag: false, + partialRedraw: true +}; + + +var StockChartComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(StockChartComponent, _super); + function StockChartComponent(configurationService, themeService, element, intl, localizationService, ngZone, instanceEventService, changeDetector, renderer) { + var _this = _super.call(this, configurationService, themeService, element, intl, localizationService, ngZone, instanceEventService, changeDetector, renderer) || this; + _this.configurationService = configurationService; + _this.themeService = themeService; + _this.element = element; + _this.intl = intl; + _this.localizationService = localizationService; + _this.ngZone = ngZone; + _this.instanceEventService = instanceEventService; + _this.changeDetector = changeDetector; + _this.renderer = renderer; + + _this.navigatorFilter = new _angular_core__WEBPACK_IMPORTED_MODULE_1__["EventEmitter"](); + _this.redrawSlaves = false; + _this.hostClasses = ['k-chart', 'k-stockchart']; + return _this; + } + + StockChartComponent.prototype.skipNavigatorRedraw = function () { + this.redrawSlaves = true; + }; + StockChartComponent.prototype.createInstance = function (element, observer) { + this.applyNavigatorDefaults(); + if (this.isDevMode() && (this.options.zoomable || this.options.pannable)) { + throw new Error('The pannable and zoomable options are not supported by the StockChart component.'); + } + this.instance = new _progress_kendo_charts__WEBPACK_IMPORTED_MODULE_4__["StockChart"](element, this.options, this.theme, { + intlService: this.intl, + observer: observer, + rtl: this.rtl, + sender: this + }); + }; + StockChartComponent.prototype.updateOptions = function () { + this.applyNavigatorDefaults(); + if (this.redrawSlaves) { + this.instance.applyOptions(this.options); + this.instance.bindCategories(); + this.instance.navigator.redrawSlaves(); + } + else { + this.instance.setOptions(this.options); + } + this.redrawSlaves = false; + }; + StockChartComponent.prototype.applyNavigatorDefaults = function () { + this.options.navigator = Object.assign({}, this.options.navigator, NAVIGATOR_DEFAULTS); + }; + StockChartComponent.prototype.isDevMode = function () { + return Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["isDevMode"])(); + }; + + StockChartComponent.ctorParameters = function () { return [ + { type: ConfigurationService }, + { type: ThemeService }, + { type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ElementRef"] }, + { type: _progress_kendo_angular_intl__WEBPACK_IMPORTED_MODULE_9__["IntlService"] }, + { type: _progress_kendo_angular_l10n__WEBPACK_IMPORTED_MODULE_7__["LocalizationService"] }, + { type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["NgZone"] }, + { type: StockInstanceEventService }, + { type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectorRef"] }, + { type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Renderer2"] } + ]; }; + StockChartComponent.propDecorators = { + navigator: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + pannable: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + zoomable: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + navigatorFilter: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Output"] }] + }; +StockChartComponent.ɵfac = function StockChartComponent_Factory(t) { return new (t || StockChartComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ThemeService), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_1__["ElementRef"]), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](_progress_kendo_angular_intl__WEBPACK_IMPORTED_MODULE_9__["IntlService"]), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](_progress_kendo_angular_l10n__WEBPACK_IMPORTED_MODULE_7__["LocalizationService"]), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_1__["NgZone"]), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](StockInstanceEventService), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectorRef"]), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_1__["Renderer2"])); }; +StockChartComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: StockChartComponent, selectors: [["kendo-stockchart"]], inputs: { navigator: "navigator", pannable: "pannable", zoomable: "zoomable" }, outputs: { navigatorFilter: "navigatorFilter" }, exportAs: ["kendoStockChart"], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵProvidersFeature"]([ + ConfigurationService, + TooltipTemplateService, + { provide: RootConfigurationService, useExisting: ConfigurationService }, + StockInstanceEventService, + _progress_kendo_angular_l10n__WEBPACK_IMPORTED_MODULE_7__["LocalizationService"], + { + provide: _progress_kendo_angular_l10n__WEBPACK_IMPORTED_MODULE_7__["L10N_PREFIX"], + useValue: 'kendo.chart' + } + ]), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 5, vars: 2, consts: [[1, "k-chart-surface"], ["surface", ""], [3, "popupSettings"], [3, "popupSettings", "leave"], [3, "resize"]], template: function StockChartComponent_Template(rf, ctx) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelement"](0, "div", 0, 1); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelement"](2, "kendo-chart-crosshair-tooltips-container", 2); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](3, "kendo-chart-tooltip-popup", 3); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵlistener"]("leave", function StockChartComponent_Template_kendo_chart_tooltip_popup_leave_3_listener($event) { return ctx.tooltipMouseleave($event); }); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](4, "kendo-resize-sensor", 4); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵlistener"]("resize", function StockChartComponent_Template_kendo_resize_sensor_resize_4_listener($event) { return ctx.onResize($event); }); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); + } if (rf & 2) { + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](2); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵproperty"]("popupSettings", ctx.popupSettings); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵproperty"]("popupSettings", ctx.popupSettings); + } }, directives: [CrosshairTooltipsContainerComponent, + TooltipPopupComponent, _progress_kendo_angular_common__WEBPACK_IMPORTED_MODULE_5__["ResizeSensorComponent"]], encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](StockChartComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + exportAs: 'kendoStockChart', + providers: [ + ConfigurationService, + TooltipTemplateService, + { provide: RootConfigurationService, useExisting: ConfigurationService }, + StockInstanceEventService, + _progress_kendo_angular_l10n__WEBPACK_IMPORTED_MODULE_7__["LocalizationService"], + { + provide: _progress_kendo_angular_l10n__WEBPACK_IMPORTED_MODULE_7__["L10N_PREFIX"], + useValue: 'kendo.chart' + } + ], + selector: 'kendo-stockchart', + template: "\n
\n \n \n \n \n \n " + }] + }], function () { return [{ type: ConfigurationService }, { type: ThemeService }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ElementRef"] }, { type: _progress_kendo_angular_intl__WEBPACK_IMPORTED_MODULE_9__["IntlService"] }, { type: _progress_kendo_angular_l10n__WEBPACK_IMPORTED_MODULE_7__["LocalizationService"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["NgZone"] }, { type: StockInstanceEventService }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectorRef"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Renderer2"] }]; }, { navigator: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] + }], pannable: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] + }], zoomable: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] + }], navigatorFilter: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Output"] + }] }); })(); + return StockChartComponent; +}(ChartComponent)); + + +var PREFIX = new _angular_core__WEBPACK_IMPORTED_MODULE_1__["InjectionToken"]('configuration prefix'); + +var PrefixConfigurationService = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(PrefixConfigurationService, _super); + function PrefixConfigurationService(rootService, prefix, ngZone) { + var _this = _super.call(this, ngZone) || this; + _this.rootService = rootService; + _this.prefix = prefix; + return _this; + } + PrefixConfigurationService.prototype.push = function (store) { + this.rootService.notify(new Change(this.prefix, store)); + }; + PrefixConfigurationService.prototype.notify = function (change) { + change.key = this.prefix + (change.key ? "." + change.key : ''); + this.rootService.notify(change); + }; + + PrefixConfigurationService.ctorParameters = function () { return [ + { type: RootConfigurationService, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Inject"], args: [RootConfigurationService,] }] }, + { type: String, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Inject"], args: [PREFIX,] }] }, + { type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["NgZone"] } + ]; }; +PrefixConfigurationService.ɵfac = function PrefixConfigurationService_Factory(t) { return new (t || PrefixConfigurationService)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinject"](RootConfigurationService), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinject"](PREFIX), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinject"](_angular_core__WEBPACK_IMPORTED_MODULE_1__["NgZone"])); }; +PrefixConfigurationService.ɵprov = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineInjectable"]({ token: PrefixConfigurationService, factory: function (t) { return PrefixConfigurationService.ɵfac(t); } }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](PrefixConfigurationService, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Injectable"] + }], function () { return [{ type: RootConfigurationService, decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Inject"], + args: [RootConfigurationService] + }] }, { type: String, decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Inject"], + args: [PREFIX] + }] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["NgZone"] }]; }, null); })(); + return PrefixConfigurationService; +}(ConfigurationService)); + + +var NavigatorComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(NavigatorComponent, _super); + function NavigatorComponent(configurationService) { + var _this = _super.call(this, '', configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + + NavigatorComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; + NavigatorComponent.propDecorators = { + visible: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + categoryAxis: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + hint: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + pane: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + select: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + series: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }] + }; +NavigatorComponent.ɵfac = function NavigatorComponent_Factory(t) { return new (t || NavigatorComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +NavigatorComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: NavigatorComponent, selectors: [["kendo-chart-navigator"]], inputs: { visible: "visible", categoryAxis: "categoryAxis", hint: "hint", pane: "pane", select: "select", series: "series" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵProvidersFeature"]([{ provide: PREFIX, useValue: 'navigator' }, { provide: ConfigurationService, useClass: PrefixConfigurationService }]), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function NavigatorComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](NavigatorComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + providers: [{ provide: PREFIX, useValue: 'navigator' }, { provide: ConfigurationService, useClass: PrefixConfigurationService }], + selector: 'kendo-chart-navigator', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, { visible: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] + }], categoryAxis: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] + }], hint: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] + }], pane: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] + }], select: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] + }], series: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] + }] }); })(); + return NavigatorComponent; +}(SettingsComponent)); + + +var NavigatorCategoryAxisComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(NavigatorCategoryAxisComponent, _super); + function NavigatorCategoryAxisComponent(configurationService, intl, localeId) { + var _this = _super.call(this, configurationService, null, intl, localeId) || this; + _this.configurationService = configurationService; + return _this; + } + + NavigatorCategoryAxisComponent.ctorParameters = function () { return [ + { type: ConfigurationService }, + { type: _progress_kendo_angular_intl__WEBPACK_IMPORTED_MODULE_9__["IntlService"] }, + { type: String, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Inject"], args: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["LOCALE_ID"],] }] } + ]; }; +NavigatorCategoryAxisComponent.ɵfac = function NavigatorCategoryAxisComponent_Factory(t) { return new (t || NavigatorCategoryAxisComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](_progress_kendo_angular_intl__WEBPACK_IMPORTED_MODULE_9__["IntlService"]), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_1__["LOCALE_ID"])); }; +NavigatorCategoryAxisComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: NavigatorCategoryAxisComponent, selectors: [["kendo-chart-navigator-category-axis"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵProvidersFeature"]([{ + provide: PREFIX, + useValue: 'navigator.categoryAxis' + }, { + provide: ConfigurationService, + useClass: PrefixConfigurationService + }]), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function NavigatorCategoryAxisComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](NavigatorCategoryAxisComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + providers: [{ + provide: PREFIX, + useValue: 'navigator.categoryAxis' + }, { + provide: ConfigurationService, + useClass: PrefixConfigurationService + }], + selector: 'kendo-chart-navigator-category-axis', + template: '' + }] + }], function () { return [{ type: ConfigurationService }, { type: _progress_kendo_angular_intl__WEBPACK_IMPORTED_MODULE_9__["IntlService"] }, { type: String, decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Inject"], + args: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["LOCALE_ID"]] + }] }]; }, null); })(); + return NavigatorCategoryAxisComponent; +}(CategoryAxisItemComponent)); + + +var NavigatorCategoryAxisCrosshairComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(NavigatorCategoryAxisCrosshairComponent, _super); + function NavigatorCategoryAxisCrosshairComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + + NavigatorCategoryAxisCrosshairComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +NavigatorCategoryAxisCrosshairComponent.ɵfac = function NavigatorCategoryAxisCrosshairComponent_Factory(t) { return new (t || NavigatorCategoryAxisCrosshairComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +NavigatorCategoryAxisCrosshairComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: NavigatorCategoryAxisCrosshairComponent, selectors: [["kendo-chart-navigator-category-axis-crosshair"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function NavigatorCategoryAxisCrosshairComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](NavigatorCategoryAxisCrosshairComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-navigator-category-axis-crosshair', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return NavigatorCategoryAxisCrosshairComponent; +}(CategoryAxisCrosshairComponent)); + + +var NavigatorCategoryAxisCrosshairTooltipComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(NavigatorCategoryAxisCrosshairTooltipComponent, _super); + function NavigatorCategoryAxisCrosshairTooltipComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + + NavigatorCategoryAxisCrosshairTooltipComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +NavigatorCategoryAxisCrosshairTooltipComponent.ɵfac = function NavigatorCategoryAxisCrosshairTooltipComponent_Factory(t) { return new (t || NavigatorCategoryAxisCrosshairTooltipComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +NavigatorCategoryAxisCrosshairTooltipComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: NavigatorCategoryAxisCrosshairTooltipComponent, selectors: [["kendo-chart-navigator-category-axis-crosshair-tooltip"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function NavigatorCategoryAxisCrosshairTooltipComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](NavigatorCategoryAxisCrosshairTooltipComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-navigator-category-axis-crosshair-tooltip', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return NavigatorCategoryAxisCrosshairTooltipComponent; +}(CategoryAxisCrosshairTooltipComponent)); + + +var NavigatorCategoryAxisLabelsComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(NavigatorCategoryAxisLabelsComponent, _super); + function NavigatorCategoryAxisLabelsComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + + NavigatorCategoryAxisLabelsComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +NavigatorCategoryAxisLabelsComponent.ɵfac = function NavigatorCategoryAxisLabelsComponent_Factory(t) { return new (t || NavigatorCategoryAxisLabelsComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +NavigatorCategoryAxisLabelsComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: NavigatorCategoryAxisLabelsComponent, selectors: [["kendo-chart-navigator-category-axis-labels"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function NavigatorCategoryAxisLabelsComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](NavigatorCategoryAxisLabelsComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-navigator-category-axis-labels', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return NavigatorCategoryAxisLabelsComponent; +}(CategoryAxisLabelsComponent)); + + +var NavigatorCategoryAxisNotesComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(NavigatorCategoryAxisNotesComponent, _super); + function NavigatorCategoryAxisNotesComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + + NavigatorCategoryAxisNotesComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +NavigatorCategoryAxisNotesComponent.ɵfac = function NavigatorCategoryAxisNotesComponent_Factory(t) { return new (t || NavigatorCategoryAxisNotesComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +NavigatorCategoryAxisNotesComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: NavigatorCategoryAxisNotesComponent, selectors: [["kendo-chart-navigator-category-axis-notes"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function NavigatorCategoryAxisNotesComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](NavigatorCategoryAxisNotesComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-navigator-category-axis-notes', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return NavigatorCategoryAxisNotesComponent; +}(CategoryAxisNotesComponent)); + + +var NavigatorCategoryAxisNotesIconComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(NavigatorCategoryAxisNotesIconComponent, _super); + function NavigatorCategoryAxisNotesIconComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + + NavigatorCategoryAxisNotesIconComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +NavigatorCategoryAxisNotesIconComponent.ɵfac = function NavigatorCategoryAxisNotesIconComponent_Factory(t) { return new (t || NavigatorCategoryAxisNotesIconComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +NavigatorCategoryAxisNotesIconComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: NavigatorCategoryAxisNotesIconComponent, selectors: [["kendo-chart-navigator-category-axis-notes-icon"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function NavigatorCategoryAxisNotesIconComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](NavigatorCategoryAxisNotesIconComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-navigator-category-axis-notes-icon', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return NavigatorCategoryAxisNotesIconComponent; +}(CategoryAxisNotesIconComponent)); + + +var NavigatorCategoryAxisNotesLabelComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(NavigatorCategoryAxisNotesLabelComponent, _super); + function NavigatorCategoryAxisNotesLabelComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + + NavigatorCategoryAxisNotesLabelComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +NavigatorCategoryAxisNotesLabelComponent.ɵfac = function NavigatorCategoryAxisNotesLabelComponent_Factory(t) { return new (t || NavigatorCategoryAxisNotesLabelComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +NavigatorCategoryAxisNotesLabelComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: NavigatorCategoryAxisNotesLabelComponent, selectors: [["kendo-chart-navigator-category-axis-notes-label"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function NavigatorCategoryAxisNotesLabelComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](NavigatorCategoryAxisNotesLabelComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-navigator-category-axis-notes-label', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return NavigatorCategoryAxisNotesLabelComponent; +}(CategoryAxisNotesLabelComponent)); + + +var NavigatorCategoryAxisSelectComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(NavigatorCategoryAxisSelectComponent, _super); + function NavigatorCategoryAxisSelectComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + + NavigatorCategoryAxisSelectComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +NavigatorCategoryAxisSelectComponent.ɵfac = function NavigatorCategoryAxisSelectComponent_Factory(t) { return new (t || NavigatorCategoryAxisSelectComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +NavigatorCategoryAxisSelectComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: NavigatorCategoryAxisSelectComponent, selectors: [["kendo-chart-navigator-category-axis-select"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function NavigatorCategoryAxisSelectComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](NavigatorCategoryAxisSelectComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-navigator-category-axis-select', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return NavigatorCategoryAxisSelectComponent; +}(CategoryAxisSelectComponent)); + + +var NavigatorCategoryAxisTitleComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(NavigatorCategoryAxisTitleComponent, _super); + function NavigatorCategoryAxisTitleComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + + NavigatorCategoryAxisTitleComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +NavigatorCategoryAxisTitleComponent.ɵfac = function NavigatorCategoryAxisTitleComponent_Factory(t) { return new (t || NavigatorCategoryAxisTitleComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +NavigatorCategoryAxisTitleComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: NavigatorCategoryAxisTitleComponent, selectors: [["kendo-chart-navigator-category-axis-title"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function NavigatorCategoryAxisTitleComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](NavigatorCategoryAxisTitleComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-navigator-category-axis-title', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return NavigatorCategoryAxisTitleComponent; +}(CategoryAxisTitleComponent)); + + +var NavigatorHintComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(NavigatorHintComponent, _super); + function NavigatorHintComponent(configurationService) { + var _this = _super.call(this, 'hint', configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + + NavigatorHintComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; + NavigatorHintComponent.propDecorators = { + content: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + format: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + visible: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }] + }; +NavigatorHintComponent.ɵfac = function NavigatorHintComponent_Factory(t) { return new (t || NavigatorHintComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +NavigatorHintComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: NavigatorHintComponent, selectors: [["kendo-chart-navigator-hint"]], inputs: { content: "content", format: "format", visible: "visible" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function NavigatorHintComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](NavigatorHintComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-navigator-hint', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, { content: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] + }], format: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] + }], visible: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] + }] }); })(); + return NavigatorHintComponent; +}(SettingsComponent)); + + +var NavigatorPaneComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(NavigatorPaneComponent, _super); + function NavigatorPaneComponent(configurationService) { + var _this = _super.call(this, configurationService, null) || this; + _this.configurationService = configurationService; + return _this; + } + + NavigatorPaneComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +NavigatorPaneComponent.ɵfac = function NavigatorPaneComponent_Factory(t) { return new (t || NavigatorPaneComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +NavigatorPaneComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: NavigatorPaneComponent, selectors: [["kendo-chart-navigator-pane"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵProvidersFeature"]([{ provide: PREFIX, useValue: 'navigator.pane' }, { provide: ConfigurationService, useClass: PrefixConfigurationService }]), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function NavigatorPaneComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](NavigatorPaneComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + providers: [{ provide: PREFIX, useValue: 'navigator.pane' }, { provide: ConfigurationService, useClass: PrefixConfigurationService }], + selector: 'kendo-chart-navigator-pane', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return NavigatorPaneComponent; +}(PaneComponentGenerated)); + + +var NavigatorPaneTitleComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(NavigatorPaneTitleComponent, _super); + function NavigatorPaneTitleComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + + NavigatorPaneTitleComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +NavigatorPaneTitleComponent.ɵfac = function NavigatorPaneTitleComponent_Factory(t) { return new (t || NavigatorPaneTitleComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +NavigatorPaneTitleComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: NavigatorPaneTitleComponent, selectors: [["kendo-chart-navigator-pane-title"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function NavigatorPaneTitleComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](NavigatorPaneTitleComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-navigator-pane-title', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return NavigatorPaneTitleComponent; +}(PanesTitleComponent)); + + +var NavigatorSelectComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(NavigatorSelectComponent, _super); + function NavigatorSelectComponent(configurationService) { + var _this = _super.call(this, 'select', configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + + NavigatorSelectComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; + NavigatorSelectComponent.propDecorators = { + from: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + to: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + mousewheel: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }] + }; +NavigatorSelectComponent.ɵfac = function NavigatorSelectComponent_Factory(t) { return new (t || NavigatorSelectComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +NavigatorSelectComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: NavigatorSelectComponent, selectors: [["kendo-chart-navigator-select"]], inputs: { from: "from", to: "to", mousewheel: "mousewheel" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function NavigatorSelectComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](NavigatorSelectComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-navigator-select', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, { from: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] + }], to: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] + }], mousewheel: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] + }] }); })(); + return NavigatorSelectComponent; +}(SettingsComponent)); + + +var NavigatorSeriesItemComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(NavigatorSeriesItemComponent, _super); + function NavigatorSeriesItemComponent(configurationService, collectionService) { + var _this = _super.call(this, configurationService, collectionService) || this; + _this.configurationService = configurationService; + _this.collectionService = collectionService; + return _this; + } + + NavigatorSeriesItemComponent.ctorParameters = function () { return [ + { type: ConfigurationService }, + { type: CollectionService } + ]; }; +NavigatorSeriesItemComponent.ɵfac = function NavigatorSeriesItemComponent_Factory(t) { return new (t || NavigatorSeriesItemComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](CollectionService)); }; +NavigatorSeriesItemComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: NavigatorSeriesItemComponent, selectors: [["kendo-chart-navigator-series-item"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵProvidersFeature"]([ConfigurationService]), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function NavigatorSeriesItemComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](NavigatorSeriesItemComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + providers: [ConfigurationService], + selector: 'kendo-chart-navigator-series-item', + template: '' + }] + }], function () { return [{ type: ConfigurationService }, { type: CollectionService }]; }, null); })(); + return NavigatorSeriesItemComponent; +}(SeriesItemComponent)); + + +var NavigatorSeriesComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(NavigatorSeriesComponent, _super); + function NavigatorSeriesComponent(configurationService, collectionService, tooltipTemplateService) { + var _this = _super.call(this, configurationService, collectionService, tooltipTemplateService) || this; + _this.configurationService = configurationService; + _this.collectionService = collectionService; + _this.tooltipTemplateService = tooltipTemplateService; + return _this; + } + NavigatorSeriesComponent.prototype.readTooltipTemplates = function () { + }; + + NavigatorSeriesComponent.ctorParameters = function () { return [ + { type: ConfigurationService }, + { type: CollectionService }, + { type: TooltipTemplateService } + ]; }; + NavigatorSeriesComponent.propDecorators = { + children: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ContentChildren"], args: [NavigatorSeriesItemComponent,] }] + }; +NavigatorSeriesComponent.ɵfac = function NavigatorSeriesComponent_Factory(t) { return new (t || NavigatorSeriesComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](CollectionService), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](TooltipTemplateService)); }; +NavigatorSeriesComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: NavigatorSeriesComponent, selectors: [["kendo-chart-navigator-series"]], contentQueries: function NavigatorSeriesComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵcontentQuery"](dirIndex, NavigatorSeriesItemComponent, false); + } if (rf & 2) { + var _t; + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵqueryRefresh"](_t = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵloadQuery"]()) && (ctx.children = _t); + } }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵProvidersFeature"]([CollectionService]), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function NavigatorSeriesComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](NavigatorSeriesComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + providers: [CollectionService], + selector: 'kendo-chart-navigator-series', + template: '' + }] + }], function () { return [{ type: ConfigurationService }, { type: CollectionService }, { type: TooltipTemplateService }]; }, { children: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ContentChildren"], + args: [NavigatorSeriesItemComponent] + }] }); })(); + return NavigatorSeriesComponent; +}(SeriesComponent)); + + +var NavigatorSeriesErrorBarsComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(NavigatorSeriesErrorBarsComponent, _super); + function NavigatorSeriesErrorBarsComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + + NavigatorSeriesErrorBarsComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +NavigatorSeriesErrorBarsComponent.ɵfac = function NavigatorSeriesErrorBarsComponent_Factory(t) { return new (t || NavigatorSeriesErrorBarsComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +NavigatorSeriesErrorBarsComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: NavigatorSeriesErrorBarsComponent, selectors: [["kendo-chart-navigator-series-item-error-bars"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function NavigatorSeriesErrorBarsComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](NavigatorSeriesErrorBarsComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-navigator-series-item-error-bars', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return NavigatorSeriesErrorBarsComponent; +}(SeriesErrorBarsComponent)); + + +var NavigatorSeriesExtremesComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(NavigatorSeriesExtremesComponent, _super); + function NavigatorSeriesExtremesComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + + NavigatorSeriesExtremesComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +NavigatorSeriesExtremesComponent.ɵfac = function NavigatorSeriesExtremesComponent_Factory(t) { return new (t || NavigatorSeriesExtremesComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +NavigatorSeriesExtremesComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: NavigatorSeriesExtremesComponent, selectors: [["kendo-chart-navigator-series-item-extremes"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function NavigatorSeriesExtremesComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](NavigatorSeriesExtremesComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-navigator-series-item-extremes', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return NavigatorSeriesExtremesComponent; +}(SeriesExtremesComponent)); + + +var NavigatorSeriesHighlightComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(NavigatorSeriesHighlightComponent, _super); + function NavigatorSeriesHighlightComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + + NavigatorSeriesHighlightComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +NavigatorSeriesHighlightComponent.ɵfac = function NavigatorSeriesHighlightComponent_Factory(t) { return new (t || NavigatorSeriesHighlightComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +NavigatorSeriesHighlightComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: NavigatorSeriesHighlightComponent, selectors: [["kendo-chart-navigator-series-item-highlight"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function NavigatorSeriesHighlightComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](NavigatorSeriesHighlightComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-navigator-series-item-highlight', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return NavigatorSeriesHighlightComponent; +}(SeriesHighlightComponent)); + + +var NavigatorSeriesLabelsComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(NavigatorSeriesLabelsComponent, _super); + function NavigatorSeriesLabelsComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + _this.markAsVisible(); + return _this; + } + + NavigatorSeriesLabelsComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +NavigatorSeriesLabelsComponent.ɵfac = function NavigatorSeriesLabelsComponent_Factory(t) { return new (t || NavigatorSeriesLabelsComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +NavigatorSeriesLabelsComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: NavigatorSeriesLabelsComponent, selectors: [["kendo-chart-navigator-series-item-labels"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function NavigatorSeriesLabelsComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](NavigatorSeriesLabelsComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-navigator-series-item-labels', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return NavigatorSeriesLabelsComponent; +}(SeriesLabelsComponent)); + + +var NavigatorSeriesLabelsFromComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(NavigatorSeriesLabelsFromComponent, _super); + function NavigatorSeriesLabelsFromComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + _this.markAsVisible(); + return _this; + } + + NavigatorSeriesLabelsFromComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +NavigatorSeriesLabelsFromComponent.ɵfac = function NavigatorSeriesLabelsFromComponent_Factory(t) { return new (t || NavigatorSeriesLabelsFromComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +NavigatorSeriesLabelsFromComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: NavigatorSeriesLabelsFromComponent, selectors: [["kendo-chart-navigator-series-item-labels-from"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function NavigatorSeriesLabelsFromComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](NavigatorSeriesLabelsFromComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-navigator-series-item-labels-from', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return NavigatorSeriesLabelsFromComponent; +}(SeriesLabelsFromComponent)); + + +var NavigatorSeriesLabelsToComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(NavigatorSeriesLabelsToComponent, _super); + function NavigatorSeriesLabelsToComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + _this.markAsVisible(); + return _this; + } + + NavigatorSeriesLabelsToComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +NavigatorSeriesLabelsToComponent.ɵfac = function NavigatorSeriesLabelsToComponent_Factory(t) { return new (t || NavigatorSeriesLabelsToComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +NavigatorSeriesLabelsToComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: NavigatorSeriesLabelsToComponent, selectors: [["kendo-chart-navigator-series-item-labels-to"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function NavigatorSeriesLabelsToComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](NavigatorSeriesLabelsToComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-navigator-series-item-labels-to', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return NavigatorSeriesLabelsToComponent; +}(SeriesLabelsToComponent)); + + +var NavigatorSeriesMarkersComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(NavigatorSeriesMarkersComponent, _super); + function NavigatorSeriesMarkersComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + + NavigatorSeriesMarkersComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +NavigatorSeriesMarkersComponent.ɵfac = function NavigatorSeriesMarkersComponent_Factory(t) { return new (t || NavigatorSeriesMarkersComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +NavigatorSeriesMarkersComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: NavigatorSeriesMarkersComponent, selectors: [["kendo-chart-navigator-series-item-markers"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function NavigatorSeriesMarkersComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](NavigatorSeriesMarkersComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-navigator-series-item-markers', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return NavigatorSeriesMarkersComponent; +}(SeriesMarkersComponent)); + + +var NavigatorSeriesNotesComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(NavigatorSeriesNotesComponent, _super); + function NavigatorSeriesNotesComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + + NavigatorSeriesNotesComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +NavigatorSeriesNotesComponent.ɵfac = function NavigatorSeriesNotesComponent_Factory(t) { return new (t || NavigatorSeriesNotesComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +NavigatorSeriesNotesComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: NavigatorSeriesNotesComponent, selectors: [["kendo-chart-navigator-series-item-notes"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function NavigatorSeriesNotesComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](NavigatorSeriesNotesComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-navigator-series-item-notes', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return NavigatorSeriesNotesComponent; +}(SeriesNotesComponent)); + + +var NavigatorSeriesNotesIconComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(NavigatorSeriesNotesIconComponent, _super); + function NavigatorSeriesNotesIconComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + + NavigatorSeriesNotesIconComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +NavigatorSeriesNotesIconComponent.ɵfac = function NavigatorSeriesNotesIconComponent_Factory(t) { return new (t || NavigatorSeriesNotesIconComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +NavigatorSeriesNotesIconComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: NavigatorSeriesNotesIconComponent, selectors: [["kendo-chart-navigator-series-item-notes-icon"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function NavigatorSeriesNotesIconComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](NavigatorSeriesNotesIconComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-navigator-series-item-notes-icon', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return NavigatorSeriesNotesIconComponent; +}(SeriesNotesIconComponent)); + + +var NavigatorSeriesNotesLabelComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(NavigatorSeriesNotesLabelComponent, _super); + function NavigatorSeriesNotesLabelComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + + NavigatorSeriesNotesLabelComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +NavigatorSeriesNotesLabelComponent.ɵfac = function NavigatorSeriesNotesLabelComponent_Factory(t) { return new (t || NavigatorSeriesNotesLabelComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +NavigatorSeriesNotesLabelComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: NavigatorSeriesNotesLabelComponent, selectors: [["kendo-chart-navigator-series-item-notes-label"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function NavigatorSeriesNotesLabelComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](NavigatorSeriesNotesLabelComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-navigator-series-item-notes-label', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return NavigatorSeriesNotesLabelComponent; +}(SeriesNotesLabelComponent)); + + +var NavigatorSeriesOutliersComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(NavigatorSeriesOutliersComponent, _super); + function NavigatorSeriesOutliersComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + + NavigatorSeriesOutliersComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +NavigatorSeriesOutliersComponent.ɵfac = function NavigatorSeriesOutliersComponent_Factory(t) { return new (t || NavigatorSeriesOutliersComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +NavigatorSeriesOutliersComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: NavigatorSeriesOutliersComponent, selectors: [["kendo-chart-navigator-series-item-outliers"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function NavigatorSeriesOutliersComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](NavigatorSeriesOutliersComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-navigator-series-item-outliers', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return NavigatorSeriesOutliersComponent; +}(SeriesOutliersComponent)); + + +var NavigatorSeriesTooltipComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(NavigatorSeriesTooltipComponent, _super); + function NavigatorSeriesTooltipComponent(configurationService) { + var _this = _super.call(this, configurationService) || this; + _this.configurationService = configurationService; + return _this; + } + + NavigatorSeriesTooltipComponent.ctorParameters = function () { return [ + { type: ConfigurationService } + ]; }; +NavigatorSeriesTooltipComponent.ɵfac = function NavigatorSeriesTooltipComponent_Factory(t) { return new (t || NavigatorSeriesTooltipComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService)); }; +NavigatorSeriesTooltipComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: NavigatorSeriesTooltipComponent, selectors: [["kendo-chart-navigator-series-item-tooltip"]], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 0, vars: 0, template: function NavigatorSeriesTooltipComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](NavigatorSeriesTooltipComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + selector: 'kendo-chart-navigator-series-item-tooltip', + template: '' + }] + }], function () { return [{ type: ConfigurationService }]; }, null); })(); + return NavigatorSeriesTooltipComponent; +}(SeriesTooltipComponent)); + + +var STOCK_CHART_DIRECTIVES = [ + StockChartComponent, + NavigatorComponent, + NavigatorCategoryAxisComponent, + NavigatorCategoryAxisCrosshairComponent, + NavigatorCategoryAxisCrosshairTooltipComponent, + NavigatorCategoryAxisLabelsComponent, + NavigatorCategoryAxisNotesComponent, + NavigatorCategoryAxisNotesIconComponent, + NavigatorCategoryAxisNotesLabelComponent, + NavigatorCategoryAxisSelectComponent, + NavigatorCategoryAxisTitleComponent, + NavigatorHintComponent, + NavigatorPaneComponent, + NavigatorPaneTitleComponent, + NavigatorSelectComponent, + NavigatorSeriesComponent, + NavigatorSeriesItemComponent, + NavigatorSeriesErrorBarsComponent, + NavigatorSeriesExtremesComponent, + NavigatorSeriesHighlightComponent, + NavigatorSeriesLabelsComponent, + NavigatorSeriesLabelsFromComponent, + NavigatorSeriesLabelsToComponent, + NavigatorSeriesMarkersComponent, + NavigatorSeriesNotesComponent, + NavigatorSeriesNotesIconComponent, + NavigatorSeriesNotesLabelComponent, + NavigatorSeriesOutliersComponent, + NavigatorSeriesTooltipComponent +]; + + + +var SparklineComponent = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(SparklineComponent, _super); + function SparklineComponent(configurationService, themeService, element, intl, localizationService, ngZone, instanceEventService, changeDetector, renderer) { + var _this = _super.call(this, configurationService, themeService, element, intl, localizationService, ngZone, instanceEventService, changeDetector, renderer) || this; + _this.configurationService = configurationService; + _this.themeService = themeService; + _this.element = element; + _this.intl = intl; + _this.localizationService = localizationService; + _this.ngZone = ngZone; + _this.instanceEventService = instanceEventService; + _this.changeDetector = changeDetector; + _this.renderer = renderer; + + _this.tooltipWrapperClass = 'k-sparkline-tooltip-wrapper'; + + _this.tooltipContentClasses = { + 'k-sparkline-tooltip': true + }; + _this.hostClasses = ['k-sparkline', 'k-widget']; + return _this; + } + SparklineComponent.prototype.createInstance = function (element, observer) { + this.instance = new _progress_kendo_charts__WEBPACK_IMPORTED_MODULE_4__["Sparkline"](element, _progress_kendo_charts__WEBPACK_IMPORTED_MODULE_4__["Sparkline"].normalizeOptions(this.options), this.theme, { + intlService: this.intl, + observer: observer, + rtl: this.rtl, + sender: this + }); + }; + SparklineComponent.prototype.updateOptions = function () { + this.instance.setOptions(_progress_kendo_charts__WEBPACK_IMPORTED_MODULE_4__["Sparkline"].normalizeOptions(this.options)); + }; + + SparklineComponent.ctorParameters = function () { return [ + { type: ConfigurationService }, + { type: ThemeService }, + { type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ElementRef"] }, + { type: _progress_kendo_angular_intl__WEBPACK_IMPORTED_MODULE_9__["IntlService"] }, + { type: _progress_kendo_angular_l10n__WEBPACK_IMPORTED_MODULE_7__["LocalizationService"] }, + { type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["NgZone"] }, + { type: InstanceEventService }, + { type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectorRef"] }, + { type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Renderer2"] } + ]; }; + SparklineComponent.propDecorators = { + type: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], + data: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }] + }; +SparklineComponent.ɵfac = function SparklineComponent_Factory(t) { return new (t || SparklineComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ConfigurationService), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](ThemeService), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_1__["ElementRef"]), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](_progress_kendo_angular_intl__WEBPACK_IMPORTED_MODULE_9__["IntlService"]), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](_progress_kendo_angular_l10n__WEBPACK_IMPORTED_MODULE_7__["LocalizationService"]), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_1__["NgZone"]), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](InstanceEventService), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectorRef"]), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_1__["Renderer2"])); }; +SparklineComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: SparklineComponent, selectors: [["kendo-sparkline"]], inputs: { type: "type", data: "data" }, exportAs: ["kendoSparkline"], features: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵProvidersFeature"]([ + ConfigurationService, + TooltipTemplateService, + InstanceEventService, + _progress_kendo_angular_l10n__WEBPACK_IMPORTED_MODULE_7__["LocalizationService"], + { + provide: _progress_kendo_angular_l10n__WEBPACK_IMPORTED_MODULE_7__["L10N_PREFIX"], + useValue: 'kendo.chart' + } + ]), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵInheritDefinitionFeature"]], decls: 5, vars: 5, consts: [[1, "k-chart-surface"], ["surface", ""], [3, "popupSettings"], [3, "animate", "wrapperClass", "classNames", "popupSettings", "leave"], [3, "resize"]], template: function SparklineComponent_Template(rf, ctx) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelement"](0, "span", 0, 1); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelement"](2, "kendo-chart-crosshair-tooltips-container", 2); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](3, "kendo-chart-tooltip-popup", 3); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵlistener"]("leave", function SparklineComponent_Template_kendo_chart_tooltip_popup_leave_3_listener($event) { return ctx.tooltipMouseleave($event); }); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](4, "kendo-resize-sensor", 4); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵlistener"]("resize", function SparklineComponent_Template_kendo_resize_sensor_resize_4_listener($event) { return ctx.onResize($event); }); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); + } if (rf & 2) { + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](2); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵproperty"]("popupSettings", ctx.popupSettings); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵproperty"]("animate", false)("wrapperClass", ctx.tooltipWrapperClass)("classNames", ctx.tooltipContentClasses)("popupSettings", ctx.popupSettings); + } }, directives: [CrosshairTooltipsContainerComponent, + TooltipPopupComponent, _progress_kendo_angular_common__WEBPACK_IMPORTED_MODULE_5__["ResizeSensorComponent"]], encapsulation: 2, changeDetection: 0 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](SparklineComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], + args: [{ + changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush, + exportAs: 'kendoSparkline', + providers: [ + ConfigurationService, + TooltipTemplateService, + InstanceEventService, + _progress_kendo_angular_l10n__WEBPACK_IMPORTED_MODULE_7__["LocalizationService"], + { + provide: _progress_kendo_angular_l10n__WEBPACK_IMPORTED_MODULE_7__["L10N_PREFIX"], + useValue: 'kendo.chart' + } + ], + selector: 'kendo-sparkline', + template: "\n \n \n \n \n \n \n " + }] + }], function () { return [{ type: ConfigurationService }, { type: ThemeService }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ElementRef"] }, { type: _progress_kendo_angular_intl__WEBPACK_IMPORTED_MODULE_9__["IntlService"] }, { type: _progress_kendo_angular_l10n__WEBPACK_IMPORTED_MODULE_7__["LocalizationService"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["NgZone"] }, { type: InstanceEventService }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectorRef"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Renderer2"] }]; }, { type: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] + }], data: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] + }] }); })(); + return SparklineComponent; +}(ChartComponent)); + + +var SPARKLINE_DIRECTIVES = [ + SparklineComponent +]; + + +var ChartModule = (function () { + function ChartModule() { + } +ChartModule.ɵmod = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineNgModule"]({ type: ChartModule }); +ChartModule.ɵinj = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineInjector"]({ factory: function ChartModule_Factory(t) { return new (t || ChartModule)(); }, providers: [ + ThemeService + ], imports: [[_angular_common__WEBPACK_IMPORTED_MODULE_8__["CommonModule"], _progress_kendo_angular_popup__WEBPACK_IMPORTED_MODULE_6__["PopupModule"], _progress_kendo_angular_common__WEBPACK_IMPORTED_MODULE_5__["ResizeSensorModule"]]] }); +(function () { (typeof ngJitMode === "undefined" || ngJitMode) && _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵsetNgModuleScope"](ChartModule, { declarations: function () { return [ChartComponent, + TooltipPopupComponent, + SeriesTooltipTemplateDirective, + SharedTooltipTemplateDirective, + CrosshairTooltipsContainerComponent, + CrosshairTooltipComponent, + DonutCenterTemplateDirective, + AxisDefaultsComponent, + AxisDefaultsCrosshairComponent, + AxisDefaultsCrosshairTooltipComponent, + AxisDefaultsLabelsComponent, + AxisDefaultsTitleComponent, + CategoryAxisComponent, + CategoryAxisCrosshairComponent, + CategoryAxisCrosshairTooltipComponent, + CategoryAxisItemComponent, + CategoryAxisLabelsComponent, + CategoryAxisNotesComponent, + CategoryAxisNotesIconComponent, + CategoryAxisNotesLabelComponent, + CategoryAxisSelectComponent, + CategoryAxisTitleComponent, + ChartAreaComponent, + LegendComponent, + LegendInactiveItemsComponent, + LegendItemComponent, + PaneComponent, + PanesComponent, + PanesTitleComponent, + PlotAreaComponent, + SeriesComponent, + SeriesDefaultsComponent, + SeriesDefaultsLabelsComponent, + SeriesDefaultsLabelsFromComponent, + SeriesDefaultsLabelsToComponent, + SeriesDefaultsNotesComponent, + SeriesDefaultsNotesIconComponent, + SeriesDefaultsNotesLabelComponent, + SeriesDefaultsTooltipComponent, + SeriesErrorBarsComponent, + SeriesExtremesComponent, + SeriesHighlightComponent, + SeriesItemComponent, + SeriesLabelsComponent, + SeriesLabelsFromComponent, + SeriesLabelsToComponent, + SeriesMarkersComponent, + SeriesNotesComponent, + SeriesNotesIconComponent, + SeriesNotesLabelComponent, + SeriesOutliersComponent, + SeriesTooltipComponent, + TitleComponent, + TooltipComponent, + ValueAxisComponent, + ValueAxisCrosshairComponent, + ValueAxisCrosshairTooltipComponent, + ValueAxisItemComponent, + ValueAxisLabelsComponent, + ValueAxisNotesComponent, + ValueAxisNotesIconComponent, + ValueAxisNotesLabelComponent, + ValueAxisTitleComponent, + XAxisComponent, + XAxisCrosshairComponent, + XAxisCrosshairTooltipComponent, + XAxisItemComponent, + XAxisLabelsComponent, + XAxisNotesComponent, + XAxisNotesIconComponent, + XAxisNotesLabelComponent, + XAxisTitleComponent, + YAxisComponent, + YAxisCrosshairComponent, + YAxisCrosshairTooltipComponent, + YAxisItemComponent, + YAxisLabelsComponent, + YAxisNotesComponent, + YAxisNotesIconComponent, + YAxisNotesLabelComponent, + YAxisTitleComponent, + ZoomableComponent]; }, imports: function () { return [_angular_common__WEBPACK_IMPORTED_MODULE_8__["CommonModule"], _progress_kendo_angular_popup__WEBPACK_IMPORTED_MODULE_6__["PopupModule"], _progress_kendo_angular_common__WEBPACK_IMPORTED_MODULE_5__["ResizeSensorModule"]]; }, exports: function () { return [ChartComponent, + TooltipPopupComponent, + SeriesTooltipTemplateDirective, + SharedTooltipTemplateDirective, + CrosshairTooltipsContainerComponent, + CrosshairTooltipComponent, + DonutCenterTemplateDirective, + AxisDefaultsComponent, + AxisDefaultsCrosshairComponent, + AxisDefaultsCrosshairTooltipComponent, + AxisDefaultsLabelsComponent, + AxisDefaultsTitleComponent, + CategoryAxisComponent, + CategoryAxisCrosshairComponent, + CategoryAxisCrosshairTooltipComponent, + CategoryAxisItemComponent, + CategoryAxisLabelsComponent, + CategoryAxisNotesComponent, + CategoryAxisNotesIconComponent, + CategoryAxisNotesLabelComponent, + CategoryAxisSelectComponent, + CategoryAxisTitleComponent, + ChartAreaComponent, + LegendComponent, + LegendInactiveItemsComponent, + LegendItemComponent, + PaneComponent, + PanesComponent, + PanesTitleComponent, + PlotAreaComponent, + SeriesComponent, + SeriesDefaultsComponent, + SeriesDefaultsLabelsComponent, + SeriesDefaultsLabelsFromComponent, + SeriesDefaultsLabelsToComponent, + SeriesDefaultsNotesComponent, + SeriesDefaultsNotesIconComponent, + SeriesDefaultsNotesLabelComponent, + SeriesDefaultsTooltipComponent, + SeriesErrorBarsComponent, + SeriesExtremesComponent, + SeriesHighlightComponent, + SeriesItemComponent, + SeriesLabelsComponent, + SeriesLabelsFromComponent, + SeriesLabelsToComponent, + SeriesMarkersComponent, + SeriesNotesComponent, + SeriesNotesIconComponent, + SeriesNotesLabelComponent, + SeriesOutliersComponent, + SeriesTooltipComponent, + TitleComponent, + TooltipComponent, + ValueAxisComponent, + ValueAxisCrosshairComponent, + ValueAxisCrosshairTooltipComponent, + ValueAxisItemComponent, + ValueAxisLabelsComponent, + ValueAxisNotesComponent, + ValueAxisNotesIconComponent, + ValueAxisNotesLabelComponent, + ValueAxisTitleComponent, + XAxisComponent, + XAxisCrosshairComponent, + XAxisCrosshairTooltipComponent, + XAxisItemComponent, + XAxisLabelsComponent, + XAxisNotesComponent, + XAxisNotesIconComponent, + XAxisNotesLabelComponent, + XAxisTitleComponent, + YAxisComponent, + YAxisCrosshairComponent, + YAxisCrosshairTooltipComponent, + YAxisItemComponent, + YAxisLabelsComponent, + YAxisNotesComponent, + YAxisNotesIconComponent, + YAxisNotesLabelComponent, + YAxisTitleComponent, + ZoomableComponent]; } }); })(); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](ChartModule, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["NgModule"], + args: [{ + declarations: [CHART_DIRECTIVES], + exports: [CHART_DIRECTIVES], + imports: [_angular_common__WEBPACK_IMPORTED_MODULE_8__["CommonModule"], _progress_kendo_angular_popup__WEBPACK_IMPORTED_MODULE_6__["PopupModule"], _progress_kendo_angular_common__WEBPACK_IMPORTED_MODULE_5__["ResizeSensorModule"]], + providers: [ + ThemeService + ] + }] + }], function () { return []; }, null); })(); + return ChartModule; +}()); + + +var StockChartModule = (function () { + function StockChartModule() { + } +StockChartModule.ɵmod = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineNgModule"]({ type: StockChartModule }); +StockChartModule.ɵinj = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineInjector"]({ factory: function StockChartModule_Factory(t) { return new (t || StockChartModule)(); }, imports: [[ChartModule, _angular_common__WEBPACK_IMPORTED_MODULE_8__["CommonModule"], _progress_kendo_angular_popup__WEBPACK_IMPORTED_MODULE_6__["PopupModule"], _progress_kendo_angular_common__WEBPACK_IMPORTED_MODULE_5__["ResizeSensorModule"]], + ChartModule] }); +(function () { (typeof ngJitMode === "undefined" || ngJitMode) && _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵsetNgModuleScope"](StockChartModule, { declarations: function () { return [StockChartComponent, + NavigatorComponent, + NavigatorCategoryAxisComponent, + NavigatorCategoryAxisCrosshairComponent, + NavigatorCategoryAxisCrosshairTooltipComponent, + NavigatorCategoryAxisLabelsComponent, + NavigatorCategoryAxisNotesComponent, + NavigatorCategoryAxisNotesIconComponent, + NavigatorCategoryAxisNotesLabelComponent, + NavigatorCategoryAxisSelectComponent, + NavigatorCategoryAxisTitleComponent, + NavigatorHintComponent, + NavigatorPaneComponent, + NavigatorPaneTitleComponent, + NavigatorSelectComponent, + NavigatorSeriesComponent, + NavigatorSeriesItemComponent, + NavigatorSeriesErrorBarsComponent, + NavigatorSeriesExtremesComponent, + NavigatorSeriesHighlightComponent, + NavigatorSeriesLabelsComponent, + NavigatorSeriesLabelsFromComponent, + NavigatorSeriesLabelsToComponent, + NavigatorSeriesMarkersComponent, + NavigatorSeriesNotesComponent, + NavigatorSeriesNotesIconComponent, + NavigatorSeriesNotesLabelComponent, + NavigatorSeriesOutliersComponent, + NavigatorSeriesTooltipComponent]; }, imports: function () { return [ChartModule, + _angular_common__WEBPACK_IMPORTED_MODULE_8__["CommonModule"], _progress_kendo_angular_popup__WEBPACK_IMPORTED_MODULE_6__["PopupModule"], _progress_kendo_angular_common__WEBPACK_IMPORTED_MODULE_5__["ResizeSensorModule"]]; }, exports: function () { return [StockChartComponent, + NavigatorComponent, + NavigatorCategoryAxisComponent, + NavigatorCategoryAxisCrosshairComponent, + NavigatorCategoryAxisCrosshairTooltipComponent, + NavigatorCategoryAxisLabelsComponent, + NavigatorCategoryAxisNotesComponent, + NavigatorCategoryAxisNotesIconComponent, + NavigatorCategoryAxisNotesLabelComponent, + NavigatorCategoryAxisSelectComponent, + NavigatorCategoryAxisTitleComponent, + NavigatorHintComponent, + NavigatorPaneComponent, + NavigatorPaneTitleComponent, + NavigatorSelectComponent, + NavigatorSeriesComponent, + NavigatorSeriesItemComponent, + NavigatorSeriesErrorBarsComponent, + NavigatorSeriesExtremesComponent, + NavigatorSeriesHighlightComponent, + NavigatorSeriesLabelsComponent, + NavigatorSeriesLabelsFromComponent, + NavigatorSeriesLabelsToComponent, + NavigatorSeriesMarkersComponent, + NavigatorSeriesNotesComponent, + NavigatorSeriesNotesIconComponent, + NavigatorSeriesNotesLabelComponent, + NavigatorSeriesOutliersComponent, + NavigatorSeriesTooltipComponent, + ChartModule]; } }); })(); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](StockChartModule, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["NgModule"], + args: [{ + declarations: [STOCK_CHART_DIRECTIVES], + exports: [STOCK_CHART_DIRECTIVES, ChartModule], + imports: [ChartModule, _angular_common__WEBPACK_IMPORTED_MODULE_8__["CommonModule"], _progress_kendo_angular_popup__WEBPACK_IMPORTED_MODULE_6__["PopupModule"], _progress_kendo_angular_common__WEBPACK_IMPORTED_MODULE_5__["ResizeSensorModule"]] + }] + }], function () { return []; }, null); })(); + return StockChartModule; +}()); + + +var SparklineModule = (function () { + function SparklineModule() { + } +SparklineModule.ɵmod = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineNgModule"]({ type: SparklineModule }); +SparklineModule.ɵinj = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineInjector"]({ factory: function SparklineModule_Factory(t) { return new (t || SparklineModule)(); }, imports: [[ChartModule, _angular_common__WEBPACK_IMPORTED_MODULE_8__["CommonModule"], _progress_kendo_angular_popup__WEBPACK_IMPORTED_MODULE_6__["PopupModule"], _progress_kendo_angular_common__WEBPACK_IMPORTED_MODULE_5__["ResizeSensorModule"]], + ChartModule] }); +(function () { (typeof ngJitMode === "undefined" || ngJitMode) && _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵsetNgModuleScope"](SparklineModule, { declarations: function () { return [SparklineComponent]; }, imports: function () { return [ChartModule, + _angular_common__WEBPACK_IMPORTED_MODULE_8__["CommonModule"], _progress_kendo_angular_popup__WEBPACK_IMPORTED_MODULE_6__["PopupModule"], _progress_kendo_angular_common__WEBPACK_IMPORTED_MODULE_5__["ResizeSensorModule"]]; }, exports: function () { return [SparklineComponent, + ChartModule]; } }); })(); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](SparklineModule, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["NgModule"], + args: [{ + declarations: [SPARKLINE_DIRECTIVES], + exports: [SPARKLINE_DIRECTIVES, ChartModule], + imports: [ChartModule, _angular_common__WEBPACK_IMPORTED_MODULE_8__["CommonModule"], _progress_kendo_angular_popup__WEBPACK_IMPORTED_MODULE_6__["PopupModule"], _progress_kendo_angular_common__WEBPACK_IMPORTED_MODULE_5__["ResizeSensorModule"]] + }] + }], function () { return []; }, null); })(); + return SparklineModule; +}()); + + +var ChartsModule = (function () { + function ChartsModule() { + } +ChartsModule.ɵmod = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineNgModule"]({ type: ChartsModule }); +ChartsModule.ɵinj = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineInjector"]({ factory: function ChartsModule_Factory(t) { return new (t || ChartsModule)(); }, imports: [ChartModule, + SparklineModule, + StockChartModule] }); +(function () { (typeof ngJitMode === "undefined" || ngJitMode) && _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵsetNgModuleScope"](ChartsModule, { exports: [ChartModule, + SparklineModule, + StockChartModule] }); })(); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](ChartsModule, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["NgModule"], + args: [{ + exports: [ChartModule, SparklineModule, StockChartModule] + }] + }], function () { return []; }, null); })(); + return ChartsModule; +}()); + + + + + +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbImluZGV4LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUdNO0FBQ047QUFDQTtBQUNBO0FBQ0E7Ozs7O3VFQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FLTTtBQUNOO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7O2tDQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BR007QUFDTjtBQUNBOzs7OztnREFBa0U7QUFDbEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQU9NO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7OztvQkFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BUU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O29CQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BR007QUFDTjtBQUNBO0FBQ0E7QUFDQTs7Ozs7dUVBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Z0RBR007QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUtNO0FBQ047QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7a0NBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUtNO0FBQ047QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7a0NBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQVVNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztvQkFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQVVNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztvQkFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BTU07QUFDTjtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7b0JBQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQWtCTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7b0JBQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBT007QUFDTjtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs4RUFBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FPTTtBQUNOO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7OzhFQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQU9NO0FBQ047QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7OEVBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FPTTtBQUNOO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7OzhFQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBT007QUFDTjtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs4RUFBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBUU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7Ozs7a0NBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7OztBQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQVFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7MkdBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBT007QUFDTjtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs4RUFBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBT007QUFDTjtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs4RUFBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQU9NO0FBQ047QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7OEVBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQU9NO0FBQ047QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7OEVBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FPTTtBQUNOO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7OzhFQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FPTTtBQUNOO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7OzhFQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQU9NO0FBQ047QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7OEVBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FPTTtBQUNOO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7OzhFQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBT007QUFDTjtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs4RUFBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQU9NO0FBQ047QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7OEVBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FPTTtBQUNOO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7OzhFQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FPTTtBQUNOO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7OzhFQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQVFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7MkdBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7OztBQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQVFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7MkdBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQU9NO0FBQ047QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7OEVBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBT007QUFDTjtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs4RUFBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7O0FBQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQVFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs2SUFBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQU9NO0FBQ047QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7OEVBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBT007QUFDTjtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs4RUFBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FPTTtBQUNOO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7OzhFQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQU9NO0FBQ047QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7OEVBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBT007QUFDTjtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs4RUFBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQU9NO0FBQ047QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7OEVBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQU9NO0FBQ047QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7OEVBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FPTTtBQUNOO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7OzhFQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBT007QUFDTjtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs4RUFBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FPTTtBQUNOO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7OzhFQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQU9NO0FBQ047QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7OEVBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQU9NO0FBQ047QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7OEVBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FPTTtBQUNOO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7OzhFQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBT007QUFDTjtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs4RUFBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQU9NO0FBQ047QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7OEVBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQU9NO0FBQ047QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7OEVBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FPTTtBQUNOO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7OzhFQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FPTTtBQUNOO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7OzhFQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQU9NO0FBQ047QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7OEVBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBT007QUFDTjtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs4RUFBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BTU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7b0JBQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBUU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7OzsyR0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7O0FBQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBUU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7OzsyR0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBT007QUFDTjtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs4RUFBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBT007QUFDTjtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs4RUFBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBT007QUFDTjtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs4RUFBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBT007QUFDTjtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs4RUFBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQU9NO0FBQ047QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7OEVBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQU9NO0FBQ047QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7OEVBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FPTTtBQUNOO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7OzhFQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQVFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7O2tDQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7QUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBUU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7OzsyR0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FPTTtBQUNOO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7OzhFQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FPTTtBQUNOO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7OzhFQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBT007QUFDTjtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs4RUFBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FPTTtBQUNOO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7OzhFQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBT007QUFDTjtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs4RUFBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBT007QUFDTjtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs4RUFBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQU9NO0FBQ047QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7OEVBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQVFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7MkdBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7OztBQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FRTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7OzJHQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQU9NO0FBQ047QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7OEVBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQU9NO0FBQ047QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7OEVBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FPTTtBQUNOO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7OzhFQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQU9NO0FBQ047QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7OEVBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FPTTtBQUNOO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7OzhFQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FPTTtBQUNOO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7OzhFQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBT007QUFDTjtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs4RUFBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FPTTtBQUNOO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7OzhFQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7MEJBR007QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7cUdBQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFtQk07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7b0JBQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUdNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7OzsyREFBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FRTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7b0JBQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBY007QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2tDQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FPTTtBQUNOO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7OzhFQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQU9NO0FBQ047QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7OEVBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQU9NO0FBQ047QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7OEVBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQU9NO0FBQ047QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7OEVBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQU9NO0FBQ047QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7OEVBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQU9NO0FBQ047QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7OEVBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQU9NO0FBQ047QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7OEVBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQU9NO0FBQ047QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7OEVBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBT007QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7b0JBQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBUU07QUFDTjtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7OEVBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQU9NO0FBQ047QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7OEVBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBT007QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7b0JBQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FRTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7OzJHQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFRTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztvQkFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBT007QUFDTjtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs4RUFBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBT007QUFDTjtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs4RUFBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBT007QUFDTjtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs4RUFBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FPTTtBQUNOO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7OzhFQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQU9NO0FBQ047QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7OEVBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBT007QUFDTjtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs4RUFBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBT007QUFDTjtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs4RUFBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBT007QUFDTjtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs4RUFBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBT007QUFDTjtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs4RUFBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBT007QUFDTjtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs4RUFBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBT007QUFDTjtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs4RUFBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FPTTtBQUNOO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7OzhFQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQWtCTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O29CQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2dEQVVNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztnREFPTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7O2dEQU9NO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7OztnREFLTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzQ29udGVudCI6WyIvKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKiBDb3B5cmlnaHQgwqkgMjAyMCBQcm9ncmVzcyBTb2Z0d2FyZSBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiogTGljZW5zZWQgdW5kZXIgY29tbWVyY2lhbCBsaWNlbnNlLiBTZWUgTElDRU5TRS5tZCBpbiB0aGUgcHJvamVjdCByb290IGZvciBtb3JlIGluZm9ybWF0aW9uXG4qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5pbXBvcnQgeyBfX2V4dGVuZHMgfSBmcm9tICd0c2xpYic7XG5pbXBvcnQgeyBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIEluamVjdGFibGUsIE5nWm9uZSwgRGlyZWN0aXZlLCBUZW1wbGF0ZVJlZiwgT3B0aW9uYWwsIFNpbXBsZUNoYW5nZSwgQ29tcG9uZW50LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29udGVudENoaWxkLCBFbGVtZW50UmVmLCBWaWV3Q2hpbGQsIFZpZXdDaGlsZHJlbiwgaXNEZXZNb2RlLCBDaGFuZ2VEZXRlY3RvclJlZiwgUmVuZGVyZXIyLCBDb250ZW50Q2hpbGRyZW4sIEluamVjdCwgTE9DQUxFX0lELCBJbmplY3Rpb25Ub2tlbiwgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3ViamVjdCwgY29tYmluZUxhdGVzdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgYXVkaXRUaW1lLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBjaGFydEJhc2VUaGVtZSwgSW5zdGFuY2VPYnNlcnZlciwgRGF0ZUNhdGVnb3J5QXhpcywgRGF0ZVZhbHVlQXhpcywgRG9tRXZlbnRzQnVpbGRlciwgQ2hhcnQsIFN0b2NrQ2hhcnQsIFNwYXJrbGluZSB9IGZyb20gJ0Bwcm9ncmVzcy9rZW5kby1jaGFydHMnO1xuaW1wb3J0IHsgaXNEb2N1bWVudEF2YWlsYWJsZSwgUmVzaXplU2Vuc29yTW9kdWxlIH0gZnJvbSAnQHByb2dyZXNzL2tlbmRvLWFuZ3VsYXItY29tbW9uJztcbmV4cG9ydCB7IFJlc2l6ZVNlbnNvckNvbXBvbmVudCB9IGZyb20gJ0Bwcm9ncmVzcy9rZW5kby1hbmd1bGFyLWNvbW1vbic7XG5pbXBvcnQgeyBQb3B1cFNlcnZpY2UsIFBPUFVQX0NPTlRBSU5FUiwgUG9wdXBNb2R1bGUgfSBmcm9tICdAcHJvZ3Jlc3Mva2VuZG8tYW5ndWxhci1wb3B1cCc7XG5leHBvcnQgeyBQb3B1cENvbXBvbmVudCB9IGZyb20gJ0Bwcm9ncmVzcy9rZW5kby1hbmd1bGFyLXBvcHVwJztcbmltcG9ydCB7IExvY2FsaXphdGlvblNlcnZpY2UsIEwxME5fUFJFRklYIH0gZnJvbSAnQHByb2dyZXNzL2tlbmRvLWFuZ3VsYXItbDEwbic7XG5pbXBvcnQgeyBJbnRsU2VydmljZSB9IGZyb20gJ0Bwcm9ncmVzcy9rZW5kby1hbmd1bGFyLWludGwnO1xuaW1wb3J0IHsgZXhwb3J0SW1hZ2UsIGV4cG9ydFNWRyB9IGZyb20gJ0Bwcm9ncmVzcy9rZW5kby1kcmF3aW5nJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbi8qKlxuICogQGhpZGRlblxuICovXG52YXIgQ2hhcnRDb21wb25lbnRHZW5lcmF0ZWQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gQ2hhcnRDb21wb25lbnRHZW5lcmF0ZWQoY29uZmlndXJhdGlvblNlcnZpY2UpIHtcbiAgICAgICAgdGhpcy5jb25maWd1cmF0aW9uU2VydmljZSA9IGNvbmZpZ3VyYXRpb25TZXJ2aWNlO1xuICAgICAgICAvKipcbiAgICAgICAgICogRmlyZXMgd2hlbiB0aGUgdXNlciBjbGlja3MgYW4gYXhpcyBsYWJlbCAoW3NlZSBleGFtcGxlXSh7JSBzbHVnIG92ZXJ2aWV3X2NoYXJ0X2NoYXJ0cyAlfSN0b2MtZXZlbnRzKSkuXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLmF4aXNMYWJlbENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgICAgICAvKipcbiAgICAgICAgICogRmlyZXMgYXMgbG9uZyBhcyB0aGUgdXNlciBpcyBkcmFnZ2luZyB0aGUgQ2hhcnQgd2l0aCB0aGUgbW91c2Ugb3IgdGhyb3VnaCBzd2lwZSBnZXN0dXJlcy5cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuZHJhZyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEZpcmVzIHdoZW4gdGhlIHVzZXIgc3RvcHMgZHJhZ2dpbmcgdGhlIENoYXJ0LlxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5kcmFnRW5kID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgICAgICAvKipcbiAgICAgICAgICogRmlyZXMgd2hlbiB0aGUgdXNlciBzdGFydHMgZHJhZ2dpbmcgdGhlIENoYXJ0LlxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5kcmFnU3RhcnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBGaXJlcyB3aGVuIHRoZSB1c2VyIGhvdmVycyBvdmVyIGEgbGVnZW5kIGl0ZW0gKFtzZWUgZXhhbXBsZV0oeyUgc2x1ZyBvdmVydmlld19jaGFydF9jaGFydHMgJX0jdG9jLWV2ZW50cykpLlxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5sZWdlbmRJdGVtSG92ZXIgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBGaXJlcyB3aGVuIHRoZSBjdXJzb3IgbGVhdmVzIGEgbGVnZW5kIGl0ZW0uXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLmxlZ2VuZEl0ZW1MZWF2ZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEZpcmVzIHdoZW4gdGhlIHVzZXIgY2xpY2tzIGEgbm90ZS5cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMubm90ZUNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgICAgICAvKipcbiAgICAgICAgICogRmlyZXMgd2hlbiB0aGUgdXNlciBob3ZlcnMgb3ZlciBhIG5vdGUuXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLm5vdGVIb3ZlciA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEZpcmVzIHdoZW4gdGhlIGN1cnNvciBsZWF2ZXMgYSBub3RlLlxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5ub3RlTGVhdmUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBGaXJlcyB3aGVuIGEgcGFuZSBpcyByZW5kZXJlZCBiZWNhdXNlIHRoZSBDaGFydDpcbiAgICAgICAgICogKiBJcyByZW5kZXJlZC5cbiAgICAgICAgICogKiBQZXJmb3JtcyBwYW5uaW5nIG9yIHpvb21pbmcuXG4gICAgICAgICAqICogSXMgZXhwb3J0ZWQgd2l0aCBkaWZmZXJlbnQgb3B0aW9ucy5cbiAgICAgICAgICogVGhlIGV2ZW50IGlzIHVzZWQgdG8gcmVuZGVyIGN1c3RvbSB2aXN1YWxzIGluIHRoZSBwYW5lcy5cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMucGFuZVJlbmRlciA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEZpcmVzIHdoZW4gdGhlIHVzZXIgY2xpY2tzIHRoZSBwbG90IGFyZWEgKFtzZWUgZXhhbXBsZV0oeyUgc2x1ZyBvdmVydmlld19jaGFydF9jaGFydHMgJX0jdG9jLWV2ZW50cykpLlxuICAgICAgICAgKiBUaGUgYGNsaWNrYCBldmVudCBpcyB0cmlnZ2VyZWQgYnkgdGhlIGB0YXBgIGFuZCBgY29udGV4dG1lbnVgIGV2ZW50cy5cbiAgICAgICAgICogVG8gZGlzdGluZ3Vpc2ggYmV0d2VlbiB0aGUgb3JpZ2luYWwgZXZlbnRzLCBpbnNwZWN0IHRoZSBgZS5vcmlnaW5hbEV2ZW50LnR5cGVgIGZpZWxkLlxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5wbG90QXJlYUNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgICAgICAvKipcbiAgICAgICAgICogRmlyZXMgd2hlbiB0aGUgdXNlciBob3ZlcnMgdGhlIHBsb3QgYXJlYSAoW3NlZSBleGFtcGxlXSh7JSBzbHVnIG92ZXJ2aWV3X2NoYXJ0X2NoYXJ0cyAlfSN0b2MtZXZlbnRzKSkuXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLnBsb3RBcmVhSG92ZXIgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBGaXJlcyB3aGVuIHRoZSBjdXJzb3IgbGVhdmVzIHRoZSBwbG90IGFyZWEuXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLnBsb3RBcmVhTGVhdmUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBGaXJlcyB3aGVuIHRoZSBDaGFydCBpcyByZWFkeSB0byByZW5kZXIgb24gc2NyZWVuIChbc2VlIGV4YW1wbGVdKHslIHNsdWcgb3ZlcnZpZXdfY2hhcnRfY2hhcnRzICV9I3RvYy1ldmVudHMpKS5cbiAgICAgICAgICogRm9yIGV4YW1wbGUsIHlvdSBjYW4gdXNlIGl0IHRvIHJlbW92ZSBsb2FkaW5nIGluZGljYXRvcnMuXG4gICAgICAgICAqIEFueSBjaGFuZ2VzIG1hZGUgdG8gdGhlIG9wdGlvbnMgYXJlIGlnbm9yZWQuXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLnJlbmRlciA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEZpcmVzIHdoZW4gdGhlIHVzZXIgbW9kaWZpZXMgdGhlIHNlbGVjdGlvbi5cbiAgICAgICAgICpcbiAgICAgICAgICogVGhlIHJhbmdlIHVuaXRzIGFyZTpcbiAgICAgICAgICogLSBHZW5lcmljIGF4aXMmbWRhc2g7Q2F0ZWdvcnkgaW5kZXggKDAtYmFzZWQpLlxuICAgICAgICAgKiAtIERhdGUgYXhpcyZtZGFzaDtEYXRlIGluc3RhbmNlLlxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5zZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBGaXJlcyB3aGVuIHRoZSB1c2VyIGNvbXBsZXRlcyB0aGUgbW9kaWZpY2F0aW9uIG9mIHRoZSBzZWxlY3Rpb24uXG4gICAgICAgICAqXG4gICAgICAgICAqIFRoZSByYW5nZSB1bml0cyBhcmU6XG4gICAgICAgICAqIC0gR2VuZXJpYyBheGlzJm1kYXNoO0NhdGVnb3J5IGluZGV4ICgwLWJhc2VkKS5cbiAgICAgICAgICogLSBEYXRlIGF4aXMmbWRhc2g7RGF0ZSBpbnN0YW5jZS5cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuc2VsZWN0RW5kID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgICAgICAvKipcbiAgICAgICAgICogRmlyZXMgd2hlbiB0aGUgdXNlciBzdGFydHMgbW9kaWZ5aW5nIHRoZSBheGlzIHNlbGVjdGlvbi5cbiAgICAgICAgICpcbiAgICAgICAgICogVGhlIHJhbmdlIHVuaXRzIGFyZTpcbiAgICAgICAgICogLSBHZW5lcmljIGF4aXMmbWRhc2g7Q2F0ZWdvcnkgaW5kZXggKDAtYmFzZWQpLlxuICAgICAgICAgKiAtIERhdGUgYXhpcyZtZGFzaDtEYXRlIGluc3RhbmNlLlxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5zZWxlY3RTdGFydCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEZpcmVzIHdoZW4gdGhlIHVzZXIgY2xpY2tzIHRoZSBDaGFydCBzZXJpZXMuXG4gICAgICAgICAqXG4gICAgICAgICAqIFRoZSBgY2xpY2tgIGV2ZW50IHdpbGwgYmUgdHJpZ2dlcmVkIGJ5IHRoZSBgdGFwYCBhbmQgYGNvbnRleHRtZW51YCBldmVudHMgKFtzZWUgZXhhbXBsZV0oeyUgc2x1ZyBvdmVydmlld19jaGFydF9jaGFydHMgJX0jdG9jLWV2ZW50cykpLlxuICAgICAgICAgKiBUbyBkaXN0aW5ndWlzaCBiZXR3ZWVuIHRoZSBvcmlnaW5hbCBldmVudHMsIGluc3BlY3QgdGhlIGBlLm9yaWdpbmFsRXZlbnQudHlwZWAgZmllbGQuXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLnNlcmllc0NsaWNrID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgICAgICAvKipcbiAgICAgICAgICogRmlyZXMgd2hlbiB0aGUgdXNlciBob3ZlcnMgdGhlIENoYXJ0IHNlcmllcyAoW3NlZSBleGFtcGxlXSh7JSBzbHVnIG92ZXJ2aWV3X2NoYXJ0X2NoYXJ0cyAlfSN0b2MtZXZlbnRzKSkuXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLnNlcmllc0hvdmVyID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgICAgICAvKipcbiAgICAgICAgICogRmlyZXMgd2hlbiB0aGUgY3Vyc29yIGVudGVycyBhIHNlcmllcy5cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuc2VyaWVzT3ZlciA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEZpcmVzIHdoZW4gdGhlIGN1cnNvciBsZWF2ZXMgYSBzZXJpZXMuXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLnNlcmllc0xlYXZlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgICAgICAvKipcbiAgICAgICAgICogRmlyZXMgYXMgbG9uZyBhcyB0aGUgdXNlciBpcyB6b29taW5nIHRoZSBDaGFydCBieSB1c2luZyB0aGUgbW91c2V3aGVlbCBvcGVyYXRpb24uXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLnpvb20gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBGaXJlcyB3aGVuIHRoZSB1c2VyIHN0b3BzIHpvb21pbmcgdGhlIENoYXJ0LlxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy56b29tRW5kID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgICAgICAvKipcbiAgICAgICAgICogRmlyZXMgd2hlbiB0aGUgdXNlciB1c2VzIHRoZSBtb3VzZXdoZWVsIHRvIHpvb20gdGhlIENoYXJ0LlxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy56b29tU3RhcnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgfVxuICAgIENoYXJ0Q29tcG9uZW50R2VuZXJhdGVkLnByb3BEZWNvcmF0b3JzID0ge1xuICAgICAgICBwYW5uYWJsZTogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHJlbmRlckFzOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgc2VyaWVzQ29sb3JzOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgdGl0bGU6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICB0cmFuc2l0aW9uczogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHpvb21hYmxlOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgYXhpc0RlZmF1bHRzOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgY2F0ZWdvcnlBeGlzOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgY2hhcnRBcmVhOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgbGVnZW5kOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgcGFuZXM6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBwbG90QXJlYTogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHNlcmllczogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHNlcmllc0RlZmF1bHRzOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgdG9vbHRpcDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHZhbHVlQXhpczogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHhBeGlzOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgeUF4aXM6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBheGlzTGFiZWxDbGljazogW3sgdHlwZTogT3V0cHV0IH1dLFxuICAgICAgICBkcmFnOiBbeyB0eXBlOiBPdXRwdXQgfV0sXG4gICAgICAgIGRyYWdFbmQ6IFt7IHR5cGU6IE91dHB1dCB9XSxcbiAgICAgICAgZHJhZ1N0YXJ0OiBbeyB0eXBlOiBPdXRwdXQgfV0sXG4gICAgICAgIGxlZ2VuZEl0ZW1Ib3ZlcjogW3sgdHlwZTogT3V0cHV0IH1dLFxuICAgICAgICBsZWdlbmRJdGVtTGVhdmU6IFt7IHR5cGU6IE91dHB1dCB9XSxcbiAgICAgICAgbm90ZUNsaWNrOiBbeyB0eXBlOiBPdXRwdXQgfV0sXG4gICAgICAgIG5vdGVIb3ZlcjogW3sgdHlwZTogT3V0cHV0IH1dLFxuICAgICAgICBub3RlTGVhdmU6IFt7IHR5cGU6IE91dHB1dCB9XSxcbiAgICAgICAgcGFuZVJlbmRlcjogW3sgdHlwZTogT3V0cHV0IH1dLFxuICAgICAgICBwbG90QXJlYUNsaWNrOiBbeyB0eXBlOiBPdXRwdXQgfV0sXG4gICAgICAgIHBsb3RBcmVhSG92ZXI6IFt7IHR5cGU6IE91dHB1dCB9XSxcbiAgICAgICAgcGxvdEFyZWFMZWF2ZTogW3sgdHlwZTogT3V0cHV0IH1dLFxuICAgICAgICByZW5kZXI6IFt7IHR5cGU6IE91dHB1dCB9XSxcbiAgICAgICAgc2VsZWN0OiBbeyB0eXBlOiBPdXRwdXQgfV0sXG4gICAgICAgIHNlbGVjdEVuZDogW3sgdHlwZTogT3V0cHV0IH1dLFxuICAgICAgICBzZWxlY3RTdGFydDogW3sgdHlwZTogT3V0cHV0IH1dLFxuICAgICAgICBzZXJpZXNDbGljazogW3sgdHlwZTogT3V0cHV0IH1dLFxuICAgICAgICBzZXJpZXNIb3ZlcjogW3sgdHlwZTogT3V0cHV0IH1dLFxuICAgICAgICBzZXJpZXNPdmVyOiBbeyB0eXBlOiBPdXRwdXQgfV0sXG4gICAgICAgIHNlcmllc0xlYXZlOiBbeyB0eXBlOiBPdXRwdXQgfV0sXG4gICAgICAgIHpvb206IFt7IHR5cGU6IE91dHB1dCB9XSxcbiAgICAgICAgem9vbUVuZDogW3sgdHlwZTogT3V0cHV0IH1dLFxuICAgICAgICB6b29tU3RhcnQ6IFt7IHR5cGU6IE91dHB1dCB9XVxuICAgIH07XG4gICAgcmV0dXJuIENoYXJ0Q29tcG9uZW50R2VuZXJhdGVkO1xufSgpKTtcblxuLyoqXG4gKiBAaGlkZGVuXG4gKi9cbnZhciBUSFJPVFRMRV9NUyA9IDEwMDAgLyA2MDtcbi8qKlxuICogQGhpZGRlblxuICovXG52YXIgQ2hhbmdlID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIENoYW5nZShrZXksIHZhbHVlKSB7XG4gICAgICAgIHRoaXMua2V5ID0ga2V5O1xuICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgfVxuICAgIHJldHVybiBDaGFuZ2U7XG59KCkpO1xuLyoqXG4gKiBAaGlkZGVuXG4gKi9cbnZhciBDb25maWd1cmF0aW9uU2VydmljZSA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBDb25maWd1cmF0aW9uU2VydmljZShuZ1pvbmUpIHtcbiAgICAgICAgdGhpcy5uZ1pvbmUgPSBuZ1pvbmU7XG4gICAgICAgIHRoaXMuc3RvcmUgPSB7fTtcbiAgICAgICAgdGhpcy5zb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHt9KTtcbiAgICAgICAgdGhpcy5pbml0U291cmNlKCk7XG4gICAgfVxuICAgIENvbmZpZ3VyYXRpb25TZXJ2aWNlLnByb3RvdHlwZS5pbml0U291cmNlID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB0aGlzLm9uRmFzdENoYW5nZSQgPSB0aGlzLnNvdXJjZS5hc09ic2VydmFibGUoKTtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSQgPSB0aGlzLm9uRmFzdENoYW5nZSQucGlwZShhdWRpdFRpbWUoVEhST1RUTEVfTVMpKTtcbiAgICB9O1xuICAgIENvbmZpZ3VyYXRpb25TZXJ2aWNlLnByb3RvdHlwZS5wdXNoID0gZnVuY3Rpb24gKHN0b3JlKSB7XG4gICAgICAgIHRoaXMuc3RvcmUgPSBzdG9yZTtcbiAgICAgICAgdGhpcy5uZXh0KCk7XG4gICAgfTtcbiAgICBDb25maWd1cmF0aW9uU2VydmljZS5wcm90b3R5cGUubm90aWZ5ID0gZnVuY3Rpb24gKGNoYW5nZSkge1xuICAgICAgICB0aGlzLnNldChjaGFuZ2Uua2V5LCBjaGFuZ2UudmFsdWUpO1xuICAgICAgICB0aGlzLm5leHQoKTtcbiAgICB9O1xuICAgIENvbmZpZ3VyYXRpb25TZXJ2aWNlLnByb3RvdHlwZS5zZXQgPSBmdW5jdGlvbiAoZmllbGQsIHZhbHVlKSB7XG4gICAgICAgIHZhciBzdG9yZSA9IHRoaXMuc3RvcmU7XG4gICAgICAgIHZhciBwYXJ0cyA9IGZpZWxkLnNwbGl0KCcuJyk7XG4gICAgICAgIHZhciBrZXkgPSBwYXJ0cy5zaGlmdCgpO1xuICAgICAgICB3aGlsZSAocGFydHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgc3RvcmUgPSBzdG9yZVtrZXldID0gc3RvcmVba2V5XSB8fCB7fTtcbiAgICAgICAgICAgIGtleSA9IHBhcnRzLnNoaWZ0KCk7XG4gICAgICAgIH1cbiAgICAgICAgc3RvcmVba2V5XSA9IHZhbHVlO1xuICAgIH07XG4gICAgQ29uZmlndXJhdGlvblNlcnZpY2UucHJvdG90eXBlLm5leHQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIF90aGlzLnNvdXJjZS5uZXh0KF90aGlzLnN0b3JlKTtcbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICBDb25maWd1cmF0aW9uU2VydmljZS5kZWNvcmF0b3JzID0gW1xuICAgICAgICB7IHR5cGU6IEluamVjdGFibGUgfSxcbiAgICBdO1xuICAgIC8qKiBAbm9jb2xsYXBzZSAqL1xuICAgIENvbmZpZ3VyYXRpb25TZXJ2aWNlLmN0b3JQYXJhbWV0ZXJzID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gW1xuICAgICAgICB7IHR5cGU6IE5nWm9uZSB9XG4gICAgXTsgfTtcbiAgICByZXR1cm4gQ29uZmlndXJhdGlvblNlcnZpY2U7XG59KCkpO1xuXG4vKipcbiAqIEBoaWRkZW5cbiAqL1xudmFyIEJhc2VFdmVudCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgZnVuY3Rpb24gQmFzZUV2ZW50KHNlbmRlcikge1xuICAgICAgICB0aGlzLnNlbmRlciA9IHNlbmRlcjtcbiAgICB9XG4gICAgcmV0dXJuIEJhc2VFdmVudDtcbn0oKSk7XG5cbi8qKlxuICogQGhpZGRlblxuICovXG52YXIgUHJldmVudGFibGVFdmVudCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoUHJldmVudGFibGVFdmVudCwgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBQcmV2ZW50YWJsZUV2ZW50KCkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIgIT09IG51bGwgJiYgX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgfHwgdGhpcztcbiAgICAgICAgX3RoaXMucHJldmVudGVkID0gZmFsc2U7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgLyoqXG4gICAgICogUHJldmVudHMgdGhlIGRlZmF1bHQgYWN0aW9uIGZvciBhIHNwZWNpZmllZCBldmVudC5cbiAgICAgKiBJbiB0aGlzIHdheSwgdGhlIHNvdXJjZSBjb21wb25lbnQgc3VwcHJlc3Nlc1xuICAgICAqIHRoZSBidWlsdC1pbiBiZWhhdmlvciB0aGF0IGZvbGxvd3MgdGhlIGV2ZW50LlxuICAgICAqL1xuICAgIFByZXZlbnRhYmxlRXZlbnQucHJvdG90eXBlLnByZXZlbnREZWZhdWx0ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB0aGlzLnByZXZlbnRlZCA9IHRydWU7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgZXZlbnQgd2FzIHByZXZlbnRlZFxuICAgICAqIGJ5IGFueSBvZiBpdHMgc3Vic2NyaWJlcnMuXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGRlZmF1bHQgYWN0aW9uIHdhcyBwcmV2ZW50ZWQuXG4gICAgICogT3RoZXJ3aXNlLCByZXR1cm5zIGBmYWxzZWAuXG4gICAgICovXG4gICAgUHJldmVudGFibGVFdmVudC5wcm90b3R5cGUuaXNEZWZhdWx0UHJldmVudGVkID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5wcmV2ZW50ZWQ7XG4gICAgfTtcbiAgICByZXR1cm4gUHJldmVudGFibGVFdmVudDtcbn0oQmFzZUV2ZW50KSk7XG5cbi8qKlxuICogQGhpZGRlblxuICovXG52YXIgTGVnZW5kRXZlbnQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKExlZ2VuZEV2ZW50LCBfc3VwZXIpO1xuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBMZWdlbmRFdmVudChlLCBzZW5kZXIpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgc2VuZGVyKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5zZXJpZXMgPSBlLnNlcmllcztcbiAgICAgICAgX3RoaXMuc2VyaWVzSW5kZXggPSBlLnNlcmllc0luZGV4O1xuICAgICAgICBfdGhpcy5wb2ludEluZGV4ID0gZS5wb2ludEluZGV4O1xuICAgICAgICBfdGhpcy50ZXh0ID0gZS50ZXh0O1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIHJldHVybiBMZWdlbmRFdmVudDtcbn0oUHJldmVudGFibGVFdmVudCkpO1xuXG4vKipcbiAqIEFyZ3VtZW50cyBmb3IgdGhlIGBsZWdlbmRJdGVtQ2xpY2tgIGV2ZW50LlxuICovXG52YXIgTGVnZW5kSXRlbUNsaWNrRXZlbnQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKExlZ2VuZEl0ZW1DbGlja0V2ZW50LCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIExlZ2VuZEl0ZW1DbGlja0V2ZW50KCkge1xuICAgICAgICByZXR1cm4gX3N1cGVyICE9PSBudWxsICYmIF9zdXBlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpIHx8IHRoaXM7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIElmIGNhbGxlZCwgdGhlIHNlcmllcyB2aXNpYmlsaXR5IGlzIG5vdCB0b2dnbGVkIGFzIGEgcmVzdWx0IG9mIGNsaWNraW5nIHRoZSBsZWdlbmQgaXRlbS5cbiAgICAgKi9cbiAgICBMZWdlbmRJdGVtQ2xpY2tFdmVudC5wcm90b3R5cGUucHJldmVudERlZmF1bHQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIF9zdXBlci5wcm90b3R5cGUucHJldmVudERlZmF1bHQuY2FsbCh0aGlzKTtcbiAgICB9O1xuICAgIHJldHVybiBMZWdlbmRJdGVtQ2xpY2tFdmVudDtcbn0oTGVnZW5kRXZlbnQpKTtcblxuLyoqXG4gKiBBcmd1bWVudHMgZm9yIHRoZSBgYXhpc0xhYmVsQ2xpY2tgIGV2ZW50LlxuICovXG52YXIgQXhpc0xhYmVsQ2xpY2tFdmVudCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoQXhpc0xhYmVsQ2xpY2tFdmVudCwgX3N1cGVyKTtcbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgZnVuY3Rpb24gQXhpc0xhYmVsQ2xpY2tFdmVudChlLCBzZW5kZXIpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgc2VuZGVyKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5heGlzID0gZS5heGlzO1xuICAgICAgICBfdGhpcy5kYXRhSXRlbSA9IGUuZGF0YUl0ZW07XG4gICAgICAgIF90aGlzLmluZGV4ID0gZS5pbmRleDtcbiAgICAgICAgX3RoaXMudGV4dCA9IGUudGV4dDtcbiAgICAgICAgX3RoaXMudmFsdWUgPSBlLnZhbHVlO1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIHJldHVybiBBeGlzTGFiZWxDbGlja0V2ZW50O1xufShCYXNlRXZlbnQpKTtcblxuLyoqXG4gKiBBcmd1bWVudHMgZm9yIHRoZSBgZHJhZ2AgZXZlbnQuXG4gKi9cbnZhciBEcmFnRXZlbnQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKERyYWdFdmVudCwgX3N1cGVyKTtcbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgZnVuY3Rpb24gRHJhZ0V2ZW50KGUsIHNlbmRlcikge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBzZW5kZXIpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLmF4aXNSYW5nZXMgPSBlLmF4aXNSYW5nZXM7XG4gICAgICAgIF90aGlzLm9yaWdpbmFsRXZlbnQgPSBlLm9yaWdpbmFsRXZlbnQ7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgcmV0dXJuIERyYWdFdmVudDtcbn0oUHJldmVudGFibGVFdmVudCkpO1xuXG4vKipcbiAqIEFyZ3VtZW50cyBmb3IgdGhlIGBkcmFnRW5kYCBldmVudC5cbiAqL1xudmFyIERyYWdFbmRFdmVudCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoRHJhZ0VuZEV2ZW50LCBfc3VwZXIpO1xuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBEcmFnRW5kRXZlbnQoZSwgc2VuZGVyKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsIHNlbmRlcikgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuYXhpc1JhbmdlcyA9IGUuYXhpc1JhbmdlcztcbiAgICAgICAgX3RoaXMub3JpZ2luYWxFdmVudCA9IGUub3JpZ2luYWxFdmVudDtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICByZXR1cm4gRHJhZ0VuZEV2ZW50O1xufShCYXNlRXZlbnQpKTtcblxuLyoqXG4gKiBBcmd1bWVudHMgZm9yIHRoZSBgZHJhZ1N0YXJ0YCBldmVudC5cbiAqL1xudmFyIERyYWdTdGFydEV2ZW50ID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhEcmFnU3RhcnRFdmVudCwgX3N1cGVyKTtcbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgZnVuY3Rpb24gRHJhZ1N0YXJ0RXZlbnQoZSwgc2VuZGVyKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsIHNlbmRlcikgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuYXhpc1JhbmdlcyA9IGUuYXhpc1JhbmdlcztcbiAgICAgICAgX3RoaXMub3JpZ2luYWxFdmVudCA9IGUub3JpZ2luYWxFdmVudDtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICByZXR1cm4gRHJhZ1N0YXJ0RXZlbnQ7XG59KFByZXZlbnRhYmxlRXZlbnQpKTtcblxuLyoqXG4gKiBBcmd1bWVudHMgZm9yIHRoZSBgbGVnZW5kSXRlbUhvdmVyYCBldmVudC5cbiAqL1xudmFyIExlZ2VuZEl0ZW1Ib3ZlckV2ZW50ID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhMZWdlbmRJdGVtSG92ZXJFdmVudCwgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBMZWdlbmRJdGVtSG92ZXJFdmVudCgpIHtcbiAgICAgICAgcmV0dXJuIF9zdXBlciAhPT0gbnVsbCAmJiBfc3VwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKSB8fCB0aGlzO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBJZiBjYWxsZWQsIHRoZSBzZXJpZXMgaGlnaGxpZ2h0IGlzIG5vdCBzaG93biBhcyBhIHJlc3VsdCBvZiBob3ZlcmluZyBvdmVyIHRoZSBsZWdlbmQgaXRlbS5cbiAgICAgKi9cbiAgICBMZWdlbmRJdGVtSG92ZXJFdmVudC5wcm90b3R5cGUucHJldmVudERlZmF1bHQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIF9zdXBlci5wcm90b3R5cGUucHJldmVudERlZmF1bHQuY2FsbCh0aGlzKTtcbiAgICB9O1xuICAgIHJldHVybiBMZWdlbmRJdGVtSG92ZXJFdmVudDtcbn0oTGVnZW5kRXZlbnQpKTtcblxuLyogdHNsaW50OmRpc2FibGU6bm8tZW1wdHkgKi9cbi8qKlxuICogQXJndW1lbnRzIGZvciB0aGUgYGxlZ2VuZEl0ZW1MZWF2ZWAgZXZlbnQuXG4gKi9cbnZhciBMZWdlbmRJdGVtTGVhdmVFdmVudCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoTGVnZW5kSXRlbUxlYXZlRXZlbnQsIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gTGVnZW5kSXRlbUxlYXZlRXZlbnQoKSB7XG4gICAgICAgIHJldHVybiBfc3VwZXIgIT09IG51bGwgJiYgX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgfHwgdGhpcztcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIExlZ2VuZEl0ZW1MZWF2ZUV2ZW50LnByb3RvdHlwZS5wcmV2ZW50RGVmYXVsdCA9IGZ1bmN0aW9uICgpIHtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBMZWdlbmRJdGVtTGVhdmVFdmVudC5wcm90b3R5cGUuaXNEZWZhdWx0UHJldmVudGVkID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfTtcbiAgICByZXR1cm4gTGVnZW5kSXRlbUxlYXZlRXZlbnQ7XG59KExlZ2VuZEV2ZW50KSk7XG5cbi8qKlxuICogQGhpZGRlblxuICovXG52YXIgTm90ZUV2ZW50ID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhOb3RlRXZlbnQsIF9zdXBlcik7XG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIGZ1bmN0aW9uIE5vdGVFdmVudChlLCBzZW5kZXIpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgc2VuZGVyKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5jYXRlZ29yeSA9IGUuY2F0ZWdvcnk7XG4gICAgICAgIF90aGlzLmRhdGFJdGVtID0gZS5kYXRhSXRlbTtcbiAgICAgICAgX3RoaXMuc2VyaWVzID0gZS5zZXJpZXM7XG4gICAgICAgIF90aGlzLnZhbHVlID0gZS52YWx1ZTtcbiAgICAgICAgX3RoaXMudmlzdWFsID0gZS52aXN1YWw7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgcmV0dXJuIE5vdGVFdmVudDtcbn0oQmFzZUV2ZW50KSk7XG5cbi8qKlxuICogQXJndW1lbnRzIGZvciB0aGUgYG5vdGVDbGlja2AgZXZlbnQuXG4gKi9cbnZhciBOb3RlQ2xpY2tFdmVudCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoTm90ZUNsaWNrRXZlbnQsIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gTm90ZUNsaWNrRXZlbnQoKSB7XG4gICAgICAgIHJldHVybiBfc3VwZXIgIT09IG51bGwgJiYgX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgfHwgdGhpcztcbiAgICB9XG4gICAgcmV0dXJuIE5vdGVDbGlja0V2ZW50O1xufShOb3RlRXZlbnQpKTtcblxuLyoqXG4gKiBBcmd1bWVudHMgZm9yIHRoZSBgbm90ZUhvdmVyYCBldmVudC5cbiAqL1xudmFyIE5vdGVIb3ZlckV2ZW50ID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhOb3RlSG92ZXJFdmVudCwgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBOb3RlSG92ZXJFdmVudCgpIHtcbiAgICAgICAgcmV0dXJuIF9zdXBlciAhPT0gbnVsbCAmJiBfc3VwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKSB8fCB0aGlzO1xuICAgIH1cbiAgICByZXR1cm4gTm90ZUhvdmVyRXZlbnQ7XG59KE5vdGVFdmVudCkpO1xuXG4vKipcbiAqIEFyZ3VtZW50cyBmb3IgdGhlIGBub3RlTGVhdmVgIGV2ZW50LlxuICovXG52YXIgTm90ZUxlYXZlRXZlbnQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKE5vdGVMZWF2ZUV2ZW50LCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIE5vdGVMZWF2ZUV2ZW50KCkge1xuICAgICAgICByZXR1cm4gX3N1cGVyICE9PSBudWxsICYmIF9zdXBlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpIHx8IHRoaXM7XG4gICAgfVxuICAgIHJldHVybiBOb3RlTGVhdmVFdmVudDtcbn0oTm90ZUV2ZW50KSk7XG5cbi8qKlxuICogQXJndW1lbnRzIGZvciB0aGUgYHBhbmVSZW5kZXJgIGV2ZW50LlxuICovXG52YXIgUGFuZVJlbmRlckV2ZW50ID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhQYW5lUmVuZGVyRXZlbnQsIF9zdXBlcik7XG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIGZ1bmN0aW9uIFBhbmVSZW5kZXJFdmVudChhcmdzLCBzZW5kZXIpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgc2VuZGVyKSB8fCB0aGlzO1xuICAgICAgICBPYmplY3QuYXNzaWduKF90aGlzLCBhcmdzKTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICByZXR1cm4gUGFuZVJlbmRlckV2ZW50O1xufShCYXNlRXZlbnQpKTtcblxuLyoqXG4gKiBBcmd1bWVudHMgZm9yIHRoZSBgcGxvdEFyZWFDbGlja2AgZXZlbnQuXG4gKi9cbnZhciBQbG90QXJlYUNsaWNrRXZlbnQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKFBsb3RBcmVhQ2xpY2tFdmVudCwgX3N1cGVyKTtcbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgZnVuY3Rpb24gUGxvdEFyZWFDbGlja0V2ZW50KGUsIHNlbmRlcikge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBzZW5kZXIpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLmNhdGVnb3J5ID0gZS5jYXRlZ29yeTtcbiAgICAgICAgX3RoaXMub3JpZ2luYWxFdmVudCA9IGUub3JpZ2luYWxFdmVudDtcbiAgICAgICAgX3RoaXMudmFsdWUgPSBlLnZhbHVlO1xuICAgICAgICBfdGhpcy54ID0gZS54O1xuICAgICAgICBfdGhpcy55ID0gZS55O1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIHJldHVybiBQbG90QXJlYUNsaWNrRXZlbnQ7XG59KEJhc2VFdmVudCkpO1xuXG4vKipcbiAqIEFyZ3VtZW50cyBmb3IgdGhlIGBwbG90QXJlYUhvdmVyYCBldmVudC5cbiAqL1xudmFyIFBsb3RBcmVhSG92ZXJFdmVudCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoUGxvdEFyZWFIb3ZlckV2ZW50LCBfc3VwZXIpO1xuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBQbG90QXJlYUhvdmVyRXZlbnQoZSwgc2VuZGVyKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsIHNlbmRlcikgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuY2F0ZWdvcnkgPSBlLmNhdGVnb3J5O1xuICAgICAgICBfdGhpcy5vcmlnaW5hbEV2ZW50ID0gZS5vcmlnaW5hbEV2ZW50O1xuICAgICAgICBfdGhpcy52YWx1ZSA9IGUudmFsdWU7XG4gICAgICAgIF90aGlzLnggPSBlLng7XG4gICAgICAgIF90aGlzLnkgPSBlLnk7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgcmV0dXJuIFBsb3RBcmVhSG92ZXJFdmVudDtcbn0oQmFzZUV2ZW50KSk7XG5cbnZhciBQbG90QXJlYUxlYXZlRXZlbnQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKFBsb3RBcmVhTGVhdmVFdmVudCwgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBQbG90QXJlYUxlYXZlRXZlbnQoKSB7XG4gICAgICAgIHJldHVybiBfc3VwZXIgIT09IG51bGwgJiYgX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgfHwgdGhpcztcbiAgICB9XG4gICAgcmV0dXJuIFBsb3RBcmVhTGVhdmVFdmVudDtcbn0oQmFzZUV2ZW50KSk7XG5cbi8qKlxuICogQXJndW1lbnRzIGZvciB0aGUgYHJlbmRlcmAgZXZlbnQuXG4gKi9cbnZhciBSZW5kZXJFdmVudCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoUmVuZGVyRXZlbnQsIF9zdXBlcik7XG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIGZ1bmN0aW9uIFJlbmRlckV2ZW50KF9lLCBzZW5kZXIpIHtcbiAgICAgICAgcmV0dXJuIF9zdXBlci5jYWxsKHRoaXMsIHNlbmRlcikgfHwgdGhpcztcbiAgICB9XG4gICAgcmV0dXJuIFJlbmRlckV2ZW50O1xufShCYXNlRXZlbnQpKTtcblxuLyoqXG4gKiBBcmd1bWVudHMgZm9yIHRoZSBgc2VsZWN0YCBldmVudC5cbiAqL1xudmFyIFNlbGVjdEV2ZW50ID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhTZWxlY3RFdmVudCwgX3N1cGVyKTtcbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgZnVuY3Rpb24gU2VsZWN0RXZlbnQoZSwgc2VuZGVyKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsIHNlbmRlcikgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuYXhpcyA9IGUuYXhpcztcbiAgICAgICAgX3RoaXMuZnJvbSA9IGUuZnJvbTtcbiAgICAgICAgX3RoaXMudG8gPSBlLnRvO1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIHJldHVybiBTZWxlY3RFdmVudDtcbn0oUHJldmVudGFibGVFdmVudCkpO1xuXG4vKipcbiAqIEFyZ3VtZW50cyBmb3IgdGhlIGBzZWxlY3RFbmRgIGV2ZW50LlxuICovXG52YXIgU2VsZWN0RW5kRXZlbnQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKFNlbGVjdEVuZEV2ZW50LCBfc3VwZXIpO1xuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBTZWxlY3RFbmRFdmVudChlLCBzZW5kZXIpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgc2VuZGVyKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5heGlzID0gZS5heGlzO1xuICAgICAgICBfdGhpcy5mcm9tID0gZS5mcm9tO1xuICAgICAgICBfdGhpcy50byA9IGUudG87XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgcmV0dXJuIFNlbGVjdEVuZEV2ZW50O1xufShCYXNlRXZlbnQpKTtcblxuLyoqXG4gKiBBcmd1bWVudHMgZm9yIHRoZSBgc2VsZWN0U3RhcnRgIGV2ZW50LlxuICovXG52YXIgU2VsZWN0U3RhcnRFdmVudCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoU2VsZWN0U3RhcnRFdmVudCwgX3N1cGVyKTtcbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgZnVuY3Rpb24gU2VsZWN0U3RhcnRFdmVudChlLCBzZW5kZXIpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgc2VuZGVyKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5heGlzID0gZS5heGlzO1xuICAgICAgICBfdGhpcy5mcm9tID0gZS5mcm9tO1xuICAgICAgICBfdGhpcy50byA9IGUudG87XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgcmV0dXJuIFNlbGVjdFN0YXJ0RXZlbnQ7XG59KFByZXZlbnRhYmxlRXZlbnQpKTtcblxuLyoqXG4gKiBBcmd1bWVudHMgZm9yIHRoZSBgc2VyaWVzQ2xpY2tgIGV2ZW50LlxuICovXG52YXIgU2VyaWVzQ2xpY2tFdmVudCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoU2VyaWVzQ2xpY2tFdmVudCwgX3N1cGVyKTtcbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgZnVuY3Rpb24gU2VyaWVzQ2xpY2tFdmVudChlLCBzZW5kZXIpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgc2VuZGVyKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5jYXRlZ29yeSA9IGUuY2F0ZWdvcnk7XG4gICAgICAgIF90aGlzLmRhdGFJdGVtID0gZS5kYXRhSXRlbTtcbiAgICAgICAgX3RoaXMub3JpZ2luYWxFdmVudCA9IGUub3JpZ2luYWxFdmVudDtcbiAgICAgICAgX3RoaXMucGVyY2VudGFnZSA9IGUucGVyY2VudGFnZTtcbiAgICAgICAgX3RoaXMucG9pbnQgPSBlLnBvaW50O1xuICAgICAgICBfdGhpcy5zZXJpZXMgPSBlLnNlcmllcztcbiAgICAgICAgX3RoaXMuc3RhY2tWYWx1ZSA9IGUuc3RhY2tWYWx1ZTtcbiAgICAgICAgX3RoaXMudmFsdWUgPSBlLnZhbHVlO1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIHJldHVybiBTZXJpZXNDbGlja0V2ZW50O1xufShCYXNlRXZlbnQpKTtcblxuLyoqXG4gKiBAaGlkZGVuXG4gKi9cbnZhciBTZXJpZXNFdmVudCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoU2VyaWVzRXZlbnQsIF9zdXBlcik7XG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIGZ1bmN0aW9uIFNlcmllc0V2ZW50KGUsIHNlbmRlcikge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBzZW5kZXIpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLmNhdGVnb3J5ID0gZS5jYXRlZ29yeTtcbiAgICAgICAgX3RoaXMuZGF0YUl0ZW0gPSBlLmRhdGFJdGVtO1xuICAgICAgICBfdGhpcy5vcmlnaW5hbEV2ZW50ID0gZS5vcmlnaW5hbEV2ZW50O1xuICAgICAgICBfdGhpcy5wZXJjZW50YWdlID0gZS5wZXJjZW50YWdlO1xuICAgICAgICBfdGhpcy5wb2ludCA9IGUucG9pbnQ7XG4gICAgICAgIF90aGlzLnNlcmllcyA9IGUuc2VyaWVzO1xuICAgICAgICBfdGhpcy5zdGFja1ZhbHVlID0gZS5zdGFja1ZhbHVlO1xuICAgICAgICBfdGhpcy52YWx1ZSA9IGUudmFsdWU7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgcmV0dXJuIFNlcmllc0V2ZW50O1xufShQcmV2ZW50YWJsZUV2ZW50KSk7XG5cbi8qKlxuICogQXJndW1lbnRzIGZvciB0aGUgYHNlcmllc0hvdmVyYCBldmVudC5cbiAqL1xudmFyIFNlcmllc0hvdmVyRXZlbnQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKFNlcmllc0hvdmVyRXZlbnQsIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gU2VyaWVzSG92ZXJFdmVudCgpIHtcbiAgICAgICAgcmV0dXJuIF9zdXBlciAhPT0gbnVsbCAmJiBfc3VwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKSB8fCB0aGlzO1xuICAgIH1cbiAgICByZXR1cm4gU2VyaWVzSG92ZXJFdmVudDtcbn0oU2VyaWVzRXZlbnQpKTtcblxuLyoqXG4gKiBBcmd1bWVudHMgZm9yIHRoZSBgc2VyaWVzT3ZlcmAgZXZlbnQuXG4gKi9cbnZhciBTZXJpZXNPdmVyRXZlbnQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKFNlcmllc092ZXJFdmVudCwgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBTZXJpZXNPdmVyRXZlbnQoKSB7XG4gICAgICAgIHJldHVybiBfc3VwZXIgIT09IG51bGwgJiYgX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgfHwgdGhpcztcbiAgICB9XG4gICAgcmV0dXJuIFNlcmllc092ZXJFdmVudDtcbn0oU2VyaWVzRXZlbnQpKTtcblxuLyoqXG4gKiBBcmd1bWVudHMgZm9yIHRoZSBgc2VyaWVzTGVhdmVgIGV2ZW50LlxuICovXG52YXIgU2VyaWVzTGVhdmVFdmVudCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoU2VyaWVzTGVhdmVFdmVudCwgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBTZXJpZXNMZWF2ZUV2ZW50KCkge1xuICAgICAgICByZXR1cm4gX3N1cGVyICE9PSBudWxsICYmIF9zdXBlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpIHx8IHRoaXM7XG4gICAgfVxuICAgIHJldHVybiBTZXJpZXNMZWF2ZUV2ZW50O1xufShTZXJpZXNFdmVudCkpO1xuXG4vKipcbiAqIEFyZ3VtZW50cyBmb3IgdGhlIGB6b29tYCBldmVudC5cbiAqL1xudmFyIFpvb21FdmVudCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoWm9vbUV2ZW50LCBfc3VwZXIpO1xuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBab29tRXZlbnQoZSwgc2VuZGVyKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsIHNlbmRlcikgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuYXhpc1JhbmdlcyA9IGUuYXhpc1JhbmdlcztcbiAgICAgICAgX3RoaXMuZGVsdGEgPSBlLmRlbHRhO1xuICAgICAgICBfdGhpcy5vcmlnaW5hbEV2ZW50ID0gZS5vcmlnaW5hbEV2ZW50O1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIHJldHVybiBab29tRXZlbnQ7XG59KFByZXZlbnRhYmxlRXZlbnQpKTtcblxuLyoqXG4gKiBBcmd1bWVudHMgZm9yIHRoZSBgem9vbUVuZGAgZXZlbnQuXG4gKi9cbnZhciBab29tRW5kRXZlbnQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKFpvb21FbmRFdmVudCwgX3N1cGVyKTtcbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgZnVuY3Rpb24gWm9vbUVuZEV2ZW50KGUsIHNlbmRlcikge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBzZW5kZXIpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLmF4aXNSYW5nZXMgPSBlLmF4aXNSYW5nZXM7XG4gICAgICAgIF90aGlzLm9yaWdpbmFsRXZlbnQgPSBlLm9yaWdpbmFsRXZlbnQ7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgcmV0dXJuIFpvb21FbmRFdmVudDtcbn0oQmFzZUV2ZW50KSk7XG5cbi8qKlxuICogQXJndW1lbnRzIGZvciB0aGUgYHpvb21TdGFydGAgZXZlbnQuXG4gKi9cbnZhciBab29tU3RhcnRFdmVudCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoWm9vbVN0YXJ0RXZlbnQsIF9zdXBlcik7XG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIGZ1bmN0aW9uIFpvb21TdGFydEV2ZW50KGUsIHNlbmRlcikge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBzZW5kZXIpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLmF4aXNSYW5nZXMgPSBlLmF4aXNSYW5nZXM7XG4gICAgICAgIF90aGlzLm9yaWdpbmFsRXZlbnQgPSBlLm9yaWdpbmFsRXZlbnQ7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgcmV0dXJuIFpvb21TdGFydEV2ZW50O1xufShQcmV2ZW50YWJsZUV2ZW50KSk7XG5cbnZhciBFVkVOVF9NQVAgPSB7XG4gICAgYXhpc0xhYmVsQ2xpY2s6IEF4aXNMYWJlbENsaWNrRXZlbnQsXG4gICAgZHJhZzogRHJhZ0V2ZW50LFxuICAgIGRyYWdFbmQ6IERyYWdFbmRFdmVudCxcbiAgICBkcmFnU3RhcnQ6IERyYWdTdGFydEV2ZW50LFxuICAgIGxlZ2VuZEl0ZW1Ib3ZlcjogTGVnZW5kSXRlbUhvdmVyRXZlbnQsXG4gICAgbGVnZW5kSXRlbUxlYXZlOiBMZWdlbmRJdGVtTGVhdmVFdmVudCxcbiAgICBub3RlQ2xpY2s6IE5vdGVDbGlja0V2ZW50LFxuICAgIG5vdGVIb3ZlcjogTm90ZUhvdmVyRXZlbnQsXG4gICAgbm90ZUxlYXZlOiBOb3RlTGVhdmVFdmVudCxcbiAgICBwYW5lUmVuZGVyOiBQYW5lUmVuZGVyRXZlbnQsXG4gICAgcGxvdEFyZWFDbGljazogUGxvdEFyZWFDbGlja0V2ZW50LFxuICAgIHBsb3RBcmVhSG92ZXI6IFBsb3RBcmVhSG92ZXJFdmVudCxcbiAgICBwbG90QXJlYUxlYXZlOiBQbG90QXJlYUxlYXZlRXZlbnQsXG4gICAgcmVuZGVyOiBSZW5kZXJFdmVudCxcbiAgICBzZWxlY3Q6IFNlbGVjdEV2ZW50LFxuICAgIHNlbGVjdEVuZDogU2VsZWN0RW5kRXZlbnQsXG4gICAgc2VsZWN0U3RhcnQ6IFNlbGVjdFN0YXJ0RXZlbnQsXG4gICAgc2VyaWVzQ2xpY2s6IFNlcmllc0NsaWNrRXZlbnQsXG4gICAgc2VyaWVzSG92ZXI6IFNlcmllc0hvdmVyRXZlbnQsXG4gICAgc2VyaWVzT3ZlcjogU2VyaWVzT3ZlckV2ZW50LFxuICAgIHNlcmllc0xlYXZlOiBTZXJpZXNMZWF2ZUV2ZW50LFxuICAgIHpvb206IFpvb21FdmVudCxcbiAgICB6b29tRW5kOiBab29tRW5kRXZlbnQsXG4gICAgem9vbVN0YXJ0OiBab29tU3RhcnRFdmVudFxufTtcbi8qKlxuICogQGhpZGRlblxuICovXG52YXIgSW5zdGFuY2VFdmVudFNlcnZpY2UgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gSW5zdGFuY2VFdmVudFNlcnZpY2UoKSB7XG4gICAgfVxuICAgIEluc3RhbmNlRXZlbnRTZXJ2aWNlLnByb3RvdHlwZS5jcmVhdGUgPSBmdW5jdGlvbiAobmFtZSwgYXJncywgc2VuZGVyKSB7XG4gICAgICAgIGlmIChFVkVOVF9NQVBbbmFtZV0pIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgRVZFTlRfTUFQW25hbWVdKGFyZ3MsIHNlbmRlcik7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIHJldHVybiBJbnN0YW5jZUV2ZW50U2VydmljZTtcbn0oKSk7XG5cbi8qKlxuICogQSBkaXJlY3RpdmUgd2hpY2ggc2VsZWN0cyBhIFt0ZW1wbGF0ZV0oe3sgc2l0ZS5kYXRhLnVybHMuYW5ndWxhclsndGVtcGxhdGVzeW50YXgnXSB9fSlcbiAqIHdpdGhpbiB0aGUgYDxrZW5kby1jaGFydD5gIGNvbXBvbmVudCBmb3IgdGhlXG4gKiBbRG9udXQgY2VudGVyIHRlbXBsYXRlXSh7JSBzbHVnIGRvbnV0X3Nlcmllc3R5cGVzX2NoYXJ0cyAlfSkuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbiAqXG4gKiBfQENvbXBvbmVudCh7XG4gKiAgIHNlbGVjdG9yOiAnbXktYXBwJyxcbiAqICAgdGVtcGxhdGU6IGBcbiAqICAgICA8a2VuZG8tY2hhcnQgc3R5bGU9XCJoZWlnaHQ6IDQ1MHB4O1wiPlxuICogICAgICAgPG5nLXRlbXBsYXRlIGtlbmRvQ2hhcnREb251dENlbnRlclRlbXBsYXRlPlxuICogICAgICAgICA8aDM+MjIuNSU8L2gzPlxuICogICAgICAgICBvZiB3aGljaCByZW5ld2FibGVzXG4gKiAgICAgICA8L25nLXRlbXBsYXRlPlxuICogICAgICAgPGtlbmRvLWNoYXJ0LXNlcmllcz5cbiAqICAgICAgICAgPGtlbmRvLWNoYXJ0LXNlcmllcy1pdGVtXG4gKiAgICAgICAgICAgICB0eXBlPVwiZG9udXRcIiBbZGF0YV09XCJkYXRhXCJcbiAqICAgICAgICAgICAgIGNhdGVnb3J5RmllbGQ9XCJraW5kXCIgZmllbGQ9XCJzaGFyZVwiPlxuICogICAgICAgICA8L2tlbmRvLWNoYXJ0LXNlcmllcy1pdGVtPlxuICogICAgICAgPC9rZW5kby1jaGFydC1zZXJpZXM+XG4gKiAgICAgICA8a2VuZG8tY2hhcnQtbGVnZW5kIFt2aXNpYmxlXT1cImZhbHNlXCI+PC9rZW5kby1jaGFydC1sZWdlbmQ+XG4gKiAgICAgPC9rZW5kby1jaGFydD5cbiAqICAgYFxuICogfSlcbiAqIGV4cG9ydCBjbGFzcyBBcHBDb21wb25lbnQge1xuICogICBwdWJsaWMgZGF0YTogYW55W10gPSBbe1xuICogICAgIGtpbmQ6ICdIeWRyb2VsZWN0cmljJywgc2hhcmU6IDAuMTc1XG4gKiAgIH0sIHtcbiAqICAgICBraW5kOiAnTnVjbGVhcicsIHNoYXJlOiAwLjIzOFxuICogICB9LCB7XG4gKiAgICAga2luZDogJ0NvYWwnLCBzaGFyZTogMC4xMThcbiAqICAgfSwge1xuICogICAgIGtpbmQ6ICdTb2xhcicsIHNoYXJlOiAwLjA1MlxuICogICB9LCB7XG4gKiAgICAga2luZDogJ1dpbmQnLCBzaGFyZTogMC4yMjVcbiAqICAgfSwge1xuICogICAgIGtpbmQ6ICdPdGhlcicsIHNoYXJlOiAwLjE5MlxuICogICB9XTtcbiAqIH1cbiAqXG4gKiBgYGBcbiAqL1xudmFyIERvbnV0Q2VudGVyVGVtcGxhdGVEaXJlY3RpdmUgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gRG9udXRDZW50ZXJUZW1wbGF0ZURpcmVjdGl2ZSh0ZW1wbGF0ZVJlZikge1xuICAgICAgICB0aGlzLnRlbXBsYXRlUmVmID0gdGVtcGxhdGVSZWY7XG4gICAgfVxuICAgIERvbnV0Q2VudGVyVGVtcGxhdGVEaXJlY3RpdmUuZGVjb3JhdG9ycyA9IFtcbiAgICAgICAgeyB0eXBlOiBEaXJlY3RpdmUsIGFyZ3M6IFt7XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdG9yOiAnW2tlbmRvQ2hhcnREb251dENlbnRlclRlbXBsYXRlXSdcbiAgICAgICAgICAgICAgICB9LF0gfSxcbiAgICBdO1xuICAgIC8qKiBAbm9jb2xsYXBzZSAqL1xuICAgIERvbnV0Q2VudGVyVGVtcGxhdGVEaXJlY3RpdmUuY3RvclBhcmFtZXRlcnMgPSBmdW5jdGlvbiAoKSB7IHJldHVybiBbXG4gICAgICAgIHsgdHlwZTogVGVtcGxhdGVSZWYsIGRlY29yYXRvcnM6IFt7IHR5cGU6IE9wdGlvbmFsIH1dIH1cbiAgICBdOyB9O1xuICAgIHJldHVybiBEb251dENlbnRlclRlbXBsYXRlRGlyZWN0aXZlO1xufSgpKTtcblxuLyoqXG4gKiBAaGlkZGVuXG4gKi9cbnZhciBJdGVtQ2hhbmdlID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIEl0ZW1DaGFuZ2Uoc2VuZGVyLCBvcHRpb25zKSB7XG4gICAgICAgIHRoaXMuc2VuZGVyID0gc2VuZGVyO1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuICAgIH1cbiAgICByZXR1cm4gSXRlbUNoYW5nZTtcbn0oKSk7XG4vKipcbiAqIEBoaWRkZW5cbiAqL1xudmFyIENvbGxlY3Rpb25TZXJ2aWNlID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIENvbGxlY3Rpb25TZXJ2aWNlKCkge1xuICAgICAgICB0aGlzLnNvdXJjZSA9IG5ldyBTdWJqZWN0KCk7XG4gICAgICAgIHRoaXMub25JdGVtQ2hhbmdlJCA9IHRoaXMuc291cmNlLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cbiAgICBDb2xsZWN0aW9uU2VydmljZS5wcm90b3R5cGUubm90aWZ5ID0gZnVuY3Rpb24gKGNoYW5nZSkge1xuICAgICAgICB0aGlzLnNvdXJjZS5uZXh0KGNoYW5nZSk7XG4gICAgfTtcbiAgICBDb2xsZWN0aW9uU2VydmljZS5kZWNvcmF0b3JzID0gW1xuICAgICAgICB7IHR5cGU6IEluamVjdGFibGUgfSxcbiAgICBdO1xuICAgIC8qKiBAbm9jb2xsYXBzZSAqL1xuICAgIENvbGxlY3Rpb25TZXJ2aWNlLmN0b3JQYXJhbWV0ZXJzID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gW107IH07XG4gICAgcmV0dXJuIENvbGxlY3Rpb25TZXJ2aWNlO1xufSgpKTtcblxuLyoqXG4gKiBAaGlkZGVuXG4gKi9cbmZ1bmN0aW9uIGNvcHlDaGFuZ2VzKGNoYW5nZXMsIG9wdGlvbnMpIHtcbiAgICBmb3IgKHZhciBwcm9wZXJ0eU5hbWUgaW4gY2hhbmdlcykge1xuICAgICAgICBpZiAoIWNoYW5nZXMuaGFzT3duUHJvcGVydHkocHJvcGVydHlOYW1lKSkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHZhbHVlID0gY2hhbmdlc1twcm9wZXJ0eU5hbWVdLmN1cnJlbnRWYWx1ZTtcbiAgICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGRlbGV0ZSBvcHRpb25zW3Byb3BlcnR5TmFtZV07XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBvcHRpb25zW3Byb3BlcnR5TmFtZV0gPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyoqXG4gKiBAaGlkZGVuXG4gKi9cbmZ1bmN0aW9uIHRvU2ltcGxlQ2hhbmdlcyhjaGFuZ2VzKSB7XG4gICAgdmFyIHJlc3VsdCA9IHt9O1xuICAgIGZvciAodmFyIHByb3BlcnR5TmFtZSBpbiBjaGFuZ2VzKSB7XG4gICAgICAgIGlmICghY2hhbmdlcy5oYXNPd25Qcm9wZXJ0eShwcm9wZXJ0eU5hbWUpKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICByZXN1bHRbcHJvcGVydHlOYW1lXSA9IG5ldyBTaW1wbGVDaGFuZ2UobnVsbCwgY2hhbmdlc1twcm9wZXJ0eU5hbWVdLCBmYWxzZSk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG59XG5cbi8qKlxuICogQGhpZGRlblxuICovXG52YXIgQ29sbGVjdGlvbkl0ZW1Db21wb25lbnQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gQ29sbGVjdGlvbkl0ZW1Db21wb25lbnQoY29uZmlndXJhdGlvblNlcnZpY2UsIGNvbGxlY3Rpb25TZXJ2aWNlKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2UgPSBjb25maWd1cmF0aW9uU2VydmljZTtcbiAgICAgICAgdGhpcy5jb2xsZWN0aW9uU2VydmljZSA9IGNvbGxlY3Rpb25TZXJ2aWNlO1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSB7fTtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24gPSBjb25maWd1cmF0aW9uU2VydmljZS5vbkZhc3RDaGFuZ2UkLnN1YnNjcmliZShmdW5jdGlvbiAoc3RvcmUpIHtcbiAgICAgICAgICAgIF90aGlzLm9wdGlvbnMgPSBzdG9yZTtcbiAgICAgICAgICAgIF90aGlzLm5vdGlmeSgpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgQ29sbGVjdGlvbkl0ZW1Db21wb25lbnQucHJvdG90eXBlLm5nT25DaGFuZ2VzID0gZnVuY3Rpb24gKGNoYW5nZXMpIHtcbiAgICAgICAgdmFyIHN0b3JlID0gdGhpcy5jb25maWd1cmF0aW9uU2VydmljZS5zdG9yZTtcbiAgICAgICAgY29weUNoYW5nZXMoY2hhbmdlcywgc3RvcmUpO1xuICAgICAgICB0aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlLnB1c2goc3RvcmUpO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogVXBkYXRlcyB0aGUgY29tcG9uZW50IGZpZWxkcyB3aXRoIHRoZSBzcGVjaWZpZWQgdmFsdWVzIGFuZCByZWZyZXNoZXMgdGhlIENoYXJ0LlxuICAgICAqXG4gICAgICogVXNlIHRoaXMgbWV0aG9kIHdoZW4gdGhlIGNvbmZpZ3VyYXRpb24gdmFsdWVzIGNhbm5vdCBiZSBzZXQgdGhyb3VnaCB0aGUgdGVtcGxhdGUuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYHRzLW5vLXJ1blxuICAgICAqIGl0ZW0ubm90aWZ5Q2hhbmdlcyh7IHZpc2libGU6IHRydWUgfSk7XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY2hhbmdlcyBBbiBvYmplY3QgY29udGFpbmluZyB0aGUgdXBkYXRlZCBpbnB1dCBmaWVsZHMuXG4gICAgICovXG4gICAgQ29sbGVjdGlvbkl0ZW1Db21wb25lbnQucHJvdG90eXBlLm5vdGlmeUNoYW5nZXMgPSBmdW5jdGlvbiAoY2hhbmdlcykge1xuICAgICAgICB0aGlzLm5nT25DaGFuZ2VzKHRvU2ltcGxlQ2hhbmdlcyhjaGFuZ2VzKSk7XG4gICAgfTtcbiAgICBDb2xsZWN0aW9uSXRlbUNvbXBvbmVudC5wcm90b3R5cGUubmdPbkRlc3Ryb3kgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfTtcbiAgICBDb2xsZWN0aW9uSXRlbUNvbXBvbmVudC5wcm90b3R5cGUubm90aWZ5ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAoIXRoaXMuY29sbGVjdGlvblNlcnZpY2UpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNvbGxlY3Rpb25TZXJ2aWNlLm5vdGlmeShuZXcgSXRlbUNoYW5nZSh0aGlzLCB0aGlzLm9wdGlvbnMpKTtcbiAgICB9O1xuICAgIHJldHVybiBDb2xsZWN0aW9uSXRlbUNvbXBvbmVudDtcbn0oKSk7XG5cbi8qKlxuICogQGhpZGRlblxuICovXG52YXIgU2VyaWVzSXRlbUNvbXBvbmVudEdlbmVyYXRlZCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoU2VyaWVzSXRlbUNvbXBvbmVudEdlbmVyYXRlZCwgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBTZXJpZXNJdGVtQ29tcG9uZW50R2VuZXJhdGVkKGNvbmZpZ3VyYXRpb25TZXJ2aWNlLCBjb2xsZWN0aW9uU2VydmljZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBjb25maWd1cmF0aW9uU2VydmljZSwgY29sbGVjdGlvblNlcnZpY2UpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlID0gY29uZmlndXJhdGlvblNlcnZpY2U7XG4gICAgICAgIF90aGlzLmNvbGxlY3Rpb25TZXJ2aWNlID0gY29sbGVjdGlvblNlcnZpY2U7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgU2VyaWVzSXRlbUNvbXBvbmVudEdlbmVyYXRlZC5wcm9wRGVjb3JhdG9ycyA9IHtcbiAgICAgICAgYWdncmVnYXRlOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgYXV0b0ZpdDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGF4aXM6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBib3JkZXI6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBjYXRlZ29yeUF4aXM6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBjYXRlZ29yeUZpZWxkOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgY2xvc2VGaWVsZDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGNvbG9yOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgY29sb3JGaWVsZDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGNvbm5lY3RvcnM6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBjdXJyZW50RmllbGQ6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBkYXNoVHlwZTogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGRhdGE6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBkb3duQ29sb3I6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBkb3duQ29sb3JGaWVsZDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGR5bmFtaWNIZWlnaHQ6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBkeW5hbWljU2xvcGU6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBlcnJvckhpZ2hGaWVsZDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGVycm9yTG93RmllbGQ6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBleHBsb2RlRmllbGQ6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBmaWVsZDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGZyb21GaWVsZDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGdhcDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGhpZ2hGaWVsZDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGhvbGVTaXplOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgbGluZTogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGxvd0ZpZWxkOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgbG93ZXJGaWVsZDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIG1hcmdpbjogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIG1heFNpemU6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBtZWFuRmllbGQ6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBtZWRpYW5GaWVsZDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIG1pblNpemU6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBtaXNzaW5nVmFsdWVzOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgbmFtZTogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIG5lY2tSYXRpbzogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIG5lZ2F0aXZlQ29sb3I6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBuZWdhdGl2ZVZhbHVlczogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIG5vdGVUZXh0RmllbGQ6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBvcGFjaXR5OiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgb3BlbkZpZWxkOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgb3V0bGllcnNGaWVsZDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIG92ZXJsYXk6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBwYWRkaW5nOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgcTFGaWVsZDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHEzRmllbGQ6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBzZWdtZW50U3BhY2luZzogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHNpemU6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBzaXplRmllbGQ6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBzcGFjaW5nOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgc3RhY2s6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBzdGFydEFuZ2xlOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgc3R5bGU6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBzdW1tYXJ5RmllbGQ6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICB0YXJnZXQ6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICB0b0ZpZWxkOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgdHlwZTogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHVwcGVyRmllbGQ6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICB2aXNpYmxlOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgdmlzaWJsZUluTGVnZW5kOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgdmlzaWJsZUluTGVnZW5kRmllbGQ6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICB2aXN1YWw6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICB3aWR0aDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHdoaXNrZXJzOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgeEF4aXM6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICB4RXJyb3JIaWdoRmllbGQ6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICB4RXJyb3JMb3dGaWVsZDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHhGaWVsZDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHlBeGlzOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgeUVycm9ySGlnaEZpZWxkOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgeUVycm9yTG93RmllbGQ6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICB5RmllbGQ6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICB6SW5kZXg6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBlcnJvckJhcnM6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBleHRyZW1lczogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGhpZ2hsaWdodDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGxhYmVsczogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIG1hcmtlcnM6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBub3RlczogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIG91dGxpZXJzOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgdG9vbHRpcDogW3sgdHlwZTogSW5wdXQgfV1cbiAgICB9O1xuICAgIHJldHVybiBTZXJpZXNJdGVtQ29tcG9uZW50R2VuZXJhdGVkO1xufShDb2xsZWN0aW9uSXRlbUNvbXBvbmVudCkpO1xuXG4vKipcbiAqIEBoaWRkZW5cbiAqL1xudmFyIFNldHRpbmdzQ29tcG9uZW50ID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIFNldHRpbmdzQ29tcG9uZW50KGNvbmZpZ0tleSwgY29uZmlndXJhdGlvblNlcnZpY2UpIHtcbiAgICAgICAgdGhpcy5jb25maWdLZXkgPSBjb25maWdLZXk7XG4gICAgICAgIHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2UgPSBjb25maWd1cmF0aW9uU2VydmljZTtcbiAgICAgICAgdGhpcy5zdG9yZSA9IHt9O1xuICAgICAgICBpZiAoY29uZmlnS2V5ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQ29uZmlndXJhdGlvbiBrZXkgbm90IHNldCcpO1xuICAgICAgICB9XG4gICAgfVxuICAgIFNldHRpbmdzQ29tcG9uZW50LnByb3RvdHlwZS5uZ09uRGVzdHJveSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdGhpcy5zdG9yZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5ub3RpZnkoKTtcbiAgICB9O1xuICAgIFNldHRpbmdzQ29tcG9uZW50LnByb3RvdHlwZS5uZ09uQ2hhbmdlcyA9IGZ1bmN0aW9uIChjaGFuZ2VzKSB7XG4gICAgICAgIGNvcHlDaGFuZ2VzKGNoYW5nZXMsIHRoaXMuc3RvcmUpO1xuICAgICAgICB0aGlzLm5vdGlmeSgpO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogVXBkYXRlcyB0aGUgY29tcG9uZW50IGZpZWxkcyB3aXRoIHRoZSBzcGVjaWZpZWQgdmFsdWVzIGFuZCByZWZyZXNoZXMgdGhlIENoYXJ0LlxuICAgICAqXG4gICAgICogVXNlIHRoaXMgbWV0aG9kIHdoZW4gdGhlIGNvbmZpZ3VyYXRpb24gdmFsdWVzIGNhbm5vdCBiZSBzZXQgdGhyb3VnaCB0aGUgdGVtcGxhdGUuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYHRzLW5vLXJ1blxuICAgICAqIGl0ZW0ubm90aWZ5Q2hhbmdlcyh7IHZpc2libGU6IHRydWUgfSk7XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY2hhbmdlcyBBbiBvYmplY3QgY29udGFpbmluZyB0aGUgdXBkYXRlZCBpbnB1dCBmaWVsZHMuXG4gICAgICovXG4gICAgU2V0dGluZ3NDb21wb25lbnQucHJvdG90eXBlLm5vdGlmeUNoYW5nZXMgPSBmdW5jdGlvbiAoY2hhbmdlcykge1xuICAgICAgICB0aGlzLm5nT25DaGFuZ2VzKHRvU2ltcGxlQ2hhbmdlcyhjaGFuZ2VzKSk7XG4gICAgfTtcbiAgICBTZXR0aW5nc0NvbXBvbmVudC5wcm90b3R5cGUubWFya0FzVmlzaWJsZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdGhpcy5zdG9yZS52aXNpYmxlID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5ub3RpZnkoKTtcbiAgICB9O1xuICAgIFNldHRpbmdzQ29tcG9uZW50LnByb3RvdHlwZS5ub3RpZnkgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2Uubm90aWZ5KG5ldyBDaGFuZ2UodGhpcy5jb25maWdLZXksIHRoaXMuc3RvcmUpKTtcbiAgICB9O1xuICAgIHJldHVybiBTZXR0aW5nc0NvbXBvbmVudDtcbn0oKSk7XG5cbi8qKlxuICogQGhpZGRlblxuICovXG52YXIgU2VyaWVzVG9vbHRpcENvbXBvbmVudEdlbmVyYXRlZCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoU2VyaWVzVG9vbHRpcENvbXBvbmVudEdlbmVyYXRlZCwgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBTZXJpZXNUb29sdGlwQ29tcG9uZW50R2VuZXJhdGVkKGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsICd0b29sdGlwJywgY29uZmlndXJhdGlvblNlcnZpY2UpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlID0gY29uZmlndXJhdGlvblNlcnZpY2U7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgU2VyaWVzVG9vbHRpcENvbXBvbmVudEdlbmVyYXRlZC5wcm9wRGVjb3JhdG9ycyA9IHtcbiAgICAgICAgYmFja2dyb3VuZDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGJvcmRlcjogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGNvbG9yOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgZm9udDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGZvcm1hdDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHBhZGRpbmc6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICB2aXNpYmxlOiBbeyB0eXBlOiBJbnB1dCB9XVxuICAgIH07XG4gICAgcmV0dXJuIFNlcmllc1Rvb2x0aXBDb21wb25lbnRHZW5lcmF0ZWQ7XG59KFNldHRpbmdzQ29tcG9uZW50KSk7XG5cbi8qKlxuICogVGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBvZiB0aGUgQ2hhcnQgc2VyaWVzIHRvb2x0aXBcbiAqIChbc2VlIGV4YW1wbGVdKHslIHNsdWcgdG9vbHRpcHNfY2hhcnRfY2hhcnRzICV9KSkuXG4gKi9cbnZhciBTZXJpZXNUb29sdGlwQ29tcG9uZW50ID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhTZXJpZXNUb29sdGlwQ29tcG9uZW50LCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIFNlcmllc1Rvb2x0aXBDb21wb25lbnQoY29uZmlndXJhdGlvblNlcnZpY2UpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgY29uZmlndXJhdGlvblNlcnZpY2UpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlID0gY29uZmlndXJhdGlvblNlcnZpY2U7XG4gICAgICAgIF90aGlzLm1hcmtBc1Zpc2libGUoKTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoU2VyaWVzVG9vbHRpcENvbXBvbmVudC5wcm90b3R5cGUsIFwic2VyaWVzVG9vbHRpcFRlbXBsYXRlUmVmXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zZXJpZXNUb29sdGlwVGVtcGxhdGU7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIFNlcmllc1Rvb2x0aXBDb21wb25lbnQuZGVjb3JhdG9ycyA9IFtcbiAgICAgICAgeyB0eXBlOiBDb21wb25lbnQsIGFyZ3M6IFt7XG4gICAgICAgICAgICAgICAgICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RvcjogJ2tlbmRvLWNoYXJ0LXNlcmllcy1pdGVtLXRvb2x0aXAnLFxuICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZTogJydcbiAgICAgICAgICAgICAgICB9LF0gfSxcbiAgICBdO1xuICAgIC8qKiBAbm9jb2xsYXBzZSAqL1xuICAgIFNlcmllc1Rvb2x0aXBDb21wb25lbnQuY3RvclBhcmFtZXRlcnMgPSBmdW5jdGlvbiAoKSB7IHJldHVybiBbXG4gICAgICAgIHsgdHlwZTogQ29uZmlndXJhdGlvblNlcnZpY2UgfVxuICAgIF07IH07XG4gICAgU2VyaWVzVG9vbHRpcENvbXBvbmVudC5wcm9wRGVjb3JhdG9ycyA9IHtcbiAgICAgICAgc2VyaWVzVG9vbHRpcFRlbXBsYXRlOiBbeyB0eXBlOiBDb250ZW50Q2hpbGQsIGFyZ3M6IFtUZW1wbGF0ZVJlZixdIH1dXG4gICAgfTtcbiAgICByZXR1cm4gU2VyaWVzVG9vbHRpcENvbXBvbmVudDtcbn0oU2VyaWVzVG9vbHRpcENvbXBvbmVudEdlbmVyYXRlZCkpO1xuXG52YXIgdG9nZ2xlID0gZnVuY3Rpb24gKGZsYWcpIHsgcmV0dXJuIGZsYWcgPT09IHVuZGVmaW5lZCA/IGZhbHNlIDogIWZsYWc7IH07XG4vKipcbiAqIFRoZSBjb25maWd1cmF0aW9uIGNvbXBvbmVudCBmb3IgYSBzZXJpZXMgaXRlbS5cbiAqL1xudmFyIFNlcmllc0l0ZW1Db21wb25lbnQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKFNlcmllc0l0ZW1Db21wb25lbnQsIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gU2VyaWVzSXRlbUNvbXBvbmVudChjb25maWd1cmF0aW9uU2VydmljZSwgY29sbGVjdGlvblNlcnZpY2UpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgY29uZmlndXJhdGlvblNlcnZpY2UsIGNvbGxlY3Rpb25TZXJ2aWNlKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5jb25maWd1cmF0aW9uU2VydmljZSA9IGNvbmZpZ3VyYXRpb25TZXJ2aWNlO1xuICAgICAgICBfdGhpcy5jb2xsZWN0aW9uU2VydmljZSA9IGNvbGxlY3Rpb25TZXJ2aWNlO1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFRvZ2dsZXMgdGhlIHNlcmllcyB2aXNpYmlsaXR5IGFuZCB1cGRhdGVzIHRoZSBwYXJlbnQgQ2hhcnRcbiAgICAgKiB3aXRob3V0IGFuaW1hdGVkIHRyYW5zaXRpb25zLlxuICAgICAqL1xuICAgIFNlcmllc0l0ZW1Db21wb25lbnQucHJvdG90eXBlLnRvZ2dsZVZpc2liaWxpdHkgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHRoaXMub3B0aW9ucy52aXNpYmxlID0gdG9nZ2xlKHRoaXMub3B0aW9ucy52aXNpYmxlKTtcbiAgICAgICAgdGhpcy5ub3RpZnkoKTtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIFRvZ2dsZXMgdGhlIHZpc2liaWxpdHkgb2YgYSBwb2ludCB3aXRoIHRoZSBnaXZlbiBpbmRleC5cbiAgICAgKiBBcHBsaWNhYmxlIGZvciB0aGUgUGllLCBEb251dCwgYW5kIEZ1bm5lbCBzZXJpZXMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcG9pbnRJbmRleCAtIFRoZSB6ZXJvLWJhc2VkIGluZGV4IG9mIHRoZSBwb2ludCB0byB0b2dnbGUuXG4gICAgICovXG4gICAgU2VyaWVzSXRlbUNvbXBvbmVudC5wcm90b3R5cGUudG9nZ2xlUG9pbnRWaXNpYmlsaXR5ID0gZnVuY3Rpb24gKHBvaW50SW5kZXgpIHtcbiAgICAgICAgdmFyIHB2ID0gdGhpcy5vcHRpb25zLnBvaW50VmlzaWJpbGl0eSA9IHRoaXMub3B0aW9ucy5wb2ludFZpc2liaWxpdHkgfHwge307XG4gICAgICAgIHB2W3BvaW50SW5kZXhdID0gdG9nZ2xlKHB2W3BvaW50SW5kZXhdKTtcbiAgICAgICAgdGhpcy5ub3RpZnkoKTtcbiAgICB9O1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShTZXJpZXNJdGVtQ29tcG9uZW50LnByb3RvdHlwZSwgXCJzZXJpZXNUb29sdGlwVGVtcGxhdGVSZWZcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnNlcmllc1Rvb2x0aXApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5zZXJpZXNUb29sdGlwLnNlcmllc1Rvb2x0aXBUZW1wbGF0ZVJlZjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgU2VyaWVzSXRlbUNvbXBvbmVudC5kZWNvcmF0b3JzID0gW1xuICAgICAgICB7IHR5cGU6IENvbXBvbmVudCwgYXJnczogW3tcbiAgICAgICAgICAgICAgICAgICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGVyczogW0NvbmZpZ3VyYXRpb25TZXJ2aWNlXSxcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0b3I6ICdrZW5kby1jaGFydC1zZXJpZXMtaXRlbScsXG4gICAgICAgICAgICAgICAgICAgIHRlbXBsYXRlOiAnJ1xuICAgICAgICAgICAgICAgIH0sXSB9LFxuICAgIF07XG4gICAgLyoqIEBub2NvbGxhcHNlICovXG4gICAgU2VyaWVzSXRlbUNvbXBvbmVudC5jdG9yUGFyYW1ldGVycyA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIFtcbiAgICAgICAgeyB0eXBlOiBDb25maWd1cmF0aW9uU2VydmljZSB9LFxuICAgICAgICB7IHR5cGU6IENvbGxlY3Rpb25TZXJ2aWNlIH1cbiAgICBdOyB9O1xuICAgIFNlcmllc0l0ZW1Db21wb25lbnQucHJvcERlY29yYXRvcnMgPSB7XG4gICAgICAgIHNlcmllc1Rvb2x0aXA6IFt7IHR5cGU6IENvbnRlbnRDaGlsZCwgYXJnczogW1Nlcmllc1Rvb2x0aXBDb21wb25lbnQsXSB9XVxuICAgIH07XG4gICAgcmV0dXJuIFNlcmllc0l0ZW1Db21wb25lbnQ7XG59KFNlcmllc0l0ZW1Db21wb25lbnRHZW5lcmF0ZWQpKTtcblxuLyoqIEBoaWRkZW4gKi9cbnZhciBjaGFydERlZmF1bHRUaGVtZSA9IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgY2hhcnRCYXNlVGhlbWUoKSwge1xuICAgICAgICBheGlzRGVmYXVsdHM6IHtcbiAgICAgICAgICAgIGNyb3NzaGFpcjoge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAncmdiYSgwLCAwLCAwLCAwLjUpJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGxhYmVsczoge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAncmdiKDEwMSwgMTAxLCAxMDEpJyxcbiAgICAgICAgICAgICAgICBmb250OiAnMTJweCBzZXJpZidcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBsaW5lOiB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICdyZ2JhKDAsIDAsIDAsIDAuMDgpJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG1ham9yR3JpZExpbmVzOiB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICdyZ2JhKDAsIDAsIDAsIDAuMDgpJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG1pbm9yR3JpZExpbmVzOiB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICdyZ2JhKDAsIDAsIDAsIDAuMDQpJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG5vdGVzOiB7XG4gICAgICAgICAgICAgICAgaWNvbjoge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAncmdiYSgwLCAwLCAwLCAwLjUpJyxcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ3JnYmEoMCwgMCwgMCwgMC41KSdcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgbGluZToge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ3JnYmEoMCwgMCwgMCwgMC41KSdcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGxhYmVsOiB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQ6ICcxNHB4IHNlcmlmJ1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB0aXRsZToge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAncmdiKDEwMSwgMTAxLCAxMDEpJyxcbiAgICAgICAgICAgICAgICBmb250OiAnMTRweCBzZXJpZidcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgY2hhcnRBcmVhOiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAncmdiKDI1NSwgMjU1LCAyNTUpJ1xuICAgICAgICB9LFxuICAgICAgICBsZWdlbmQ6IHtcbiAgICAgICAgICAgIGluYWN0aXZlSXRlbXM6IHtcbiAgICAgICAgICAgICAgICBsYWJlbHM6IHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdyZ2JhKDEwMiwgMTAyLCAxMDIsIDAuNSknXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBtYXJrZXJzOiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAncmdiYSgxMDIsIDEwMiwgMTAyLCAwLjUpJ1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBsYWJlbHM6IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJ3JnYigxMDEsIDEwMSwgMTAxKScsXG4gICAgICAgICAgICAgICAgZm9udDogJzE0cHggc2VyaWYnXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHNlcmllc0RlZmF1bHRzOiB7XG4gICAgICAgICAgICBib3hQbG90OiB7XG4gICAgICAgICAgICAgICAgZG93bkNvbG9yOiAncmdiYSgwLCAwLCAwLCAwLjA4KScsXG4gICAgICAgICAgICAgICAgbWVhbjoge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ3JnYigyNDYsIDI0NiwgMjQ2KSdcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIG1lZGlhbjoge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ3JnYigyNDYsIDI0NiwgMjQ2KSdcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHdoaXNrZXJzOiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAncmdiKDI1NSwgOTksIDg4KSdcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYnVsbGV0OiB7XG4gICAgICAgICAgICAgICAgdGFyZ2V0OiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAncmdiKDEwMSwgMTAxLCAxMDEpJ1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBjYW5kbGVzdGljazoge1xuICAgICAgICAgICAgICAgIGRvd25Db2xvcjogJ3JnYigxMDEsIDEwMSwgMTAxKScsXG4gICAgICAgICAgICAgICAgbGluZToge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ3JnYigxMDEsIDEwMSwgMTAxKSdcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZXJyb3JCYXJzOiB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICdyZ2JhKDAsIDAsIDAsIDAuNSknXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaG9yaXpvbnRhbFdhdGVyZmFsbDoge1xuICAgICAgICAgICAgICAgIGxpbmU6IHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdyZ2JhKDAsIDAsIDAsIDAuMDgpJ1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBpY29uOiB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAncmdiYSgwLCAwLCAwLCAwLjA4KSdcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbGFiZWxzOiB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJ3JnYigyNTUsIDI1NSwgMjU1KScsXG4gICAgICAgICAgICAgICAgY29sb3I6ICdyZ2IoMTAxLCAxMDEsIDEwMSknLFxuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuOCxcbiAgICAgICAgICAgICAgICBmb250OiAnMTJweCBzZXJpZidcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBub3Rlczoge1xuICAgICAgICAgICAgICAgIGljb246IHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJ3JnYmEoMCwgMCwgMCwgMC41KScsXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdyZ2JhKDAsIDAsIDAsIDAuNSknXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGxpbmU6IHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdyZ2JhKDAsIDAsIDAsIDAuNSknXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBsYWJlbDoge1xuICAgICAgICAgICAgICAgICAgICBmb250OiAnMTRweCBzZXJpZidcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgb3ZlcmxheToge1xuICAgICAgICAgICAgICAgIGdyYWRpZW50OiBcIm5vbmVcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHZlcnRpY2FsQm94UGxvdDoge1xuICAgICAgICAgICAgICAgIGRvd25Db2xvcjogJ3JnYmEoMCwgMCwgMCwgMC4wOCknLFxuICAgICAgICAgICAgICAgIG1lYW46IHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdyZ2IoMjQ2LCAyNDYsIDI0NiknXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBtZWRpYW46IHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdyZ2IoMjQ2LCAyNDYsIDI0NiknXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB3aGlza2Vyczoge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ3JnYigyNTUsIDk5LCA4OCknXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHZlcnRpY2FsQnVsbGV0OiB7XG4gICAgICAgICAgICAgICAgdGFyZ2V0OiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAncmdiKDEwMSwgMTAxLCAxMDEpJ1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB3YXRlcmZhbGw6IHtcbiAgICAgICAgICAgICAgICBsaW5lOiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAncmdiYSgwLCAwLCAwLCAwLjA4KSdcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYXJlYToge1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuOFxuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB0aXRsZToge1xuICAgICAgICAgICAgY29sb3I6ICdyZ2IoMTAxLCAxMDEsIDEwMSknLFxuICAgICAgICAgICAgZm9udDogJzE2cHggc2VyaWYnXG4gICAgICAgIH0sXG4gICAgICAgIHNlcmllc0NvbG9yczogW1xuICAgICAgICAgICAgJ3JnYigyNTUsIDk5LCA4OCknLFxuICAgICAgICAgICAgJ3JnYigyNTUsIDIxMCwgNzApJyxcbiAgICAgICAgICAgICdyZ2IoMTIwLCAyMTAsIDU1KScsXG4gICAgICAgICAgICAncmdiKDQwLCAxODAsIDIwMCknLFxuICAgICAgICAgICAgJ3JnYig0NSwgMTE1LCAyNDUpJyxcbiAgICAgICAgICAgICdyZ2IoMTcwLCA3MCwgMTkwKSdcbiAgICAgICAgXVxuICAgIH0pO1xufTtcblxudmFyIGZvbnQgPSBmdW5jdGlvbiAoc3R5bGUpIHsgcmV0dXJuIHN0eWxlLmZvbnRTaXplICsgXCIgXCIgKyBzdHlsZS5mb250RmFtaWx5OyB9O1xudmFyIGxldHRlclBvcyA9IGZ1bmN0aW9uIChsZXR0ZXIpIHsgcmV0dXJuIGxldHRlci50b0xvd2VyQ2FzZSgpLmNoYXJDb2RlQXQoMCkgLSAnYScuY2hhckNvZGVBdCgwKTsgfTtcbnZhciBzZXJpZXNQb3MgPSBmdW5jdGlvbiAobmFtZSkgeyByZXR1cm4gbGV0dGVyUG9zKG5hbWUubWF0Y2goL3Nlcmllcy0oW2Etel0pJC8pWzFdKTsgfTtcbnZhciB0ZW1wbGF0ZSA9IFwiXFxuICAgIDxkaXYgY2xhc3M9XFxcImstdmFyLS1hY2NlbnRcXFwiPjwvZGl2PlxcbiAgICA8ZGl2IGNsYXNzPVxcXCJrLXZhci0tYWNjZW50LWNvbnRyYXN0XFxcIj48L2Rpdj5cXG4gICAgPGRpdiBjbGFzcz1cXFwiay12YXItLWJhc2VcXFwiPjwvZGl2PlxcbiAgICA8ZGl2IGNsYXNzPVxcXCJrLXZhci0tYmFja2dyb3VuZFxcXCI+PC9kaXY+XFxuXFxuICAgIDxkaXYgY2xhc3M9XFxcImstdmFyLS1ub3JtYWwtYmFja2dyb3VuZFxcXCI+PC9kaXY+XFxuICAgIDxkaXYgY2xhc3M9XFxcImstdmFyLS1ub3JtYWwtdGV4dC1jb2xvclxcXCI+PC9kaXY+XFxuICAgIDxkaXYgY2xhc3M9XFxcImstdmFyLS1ob3Zlci1iYWNrZ3JvdW5kXFxcIj48L2Rpdj5cXG4gICAgPGRpdiBjbGFzcz1cXFwiay12YXItLWhvdmVyLXRleHQtY29sb3JcXFwiPjwvZGl2PlxcbiAgICA8ZGl2IGNsYXNzPVxcXCJrLXZhci0tc2VsZWN0ZWQtYmFja2dyb3VuZFxcXCI+PC9kaXY+XFxuICAgIDxkaXYgY2xhc3M9XFxcImstdmFyLS1zZWxlY3RlZC10ZXh0LWNvbG9yXFxcIj48L2Rpdj5cXG4gICAgPGRpdiBjbGFzcz1cXFwiay12YXItLWNoYXJ0LWVycm9yLWJhcnMtYmFja2dyb3VuZFxcXCI+PC9kaXY+XFxuICAgIDxkaXYgY2xhc3M9XFxcImstdmFyLS1jaGFydC1ub3Rlcy1iYWNrZ3JvdW5kXFxcIj48L2Rpdj5cXG4gICAgPGRpdiBjbGFzcz1cXFwiay12YXItLWNoYXJ0LW5vdGVzLWJvcmRlclxcXCI+PC9kaXY+XFxuICAgIDxkaXYgY2xhc3M9XFxcImstdmFyLS1jaGFydC1ub3Rlcy1saW5lc1xcXCI+PC9kaXY+XFxuICAgIDxkaXYgY2xhc3M9XFxcImstdmFyLS1jaGFydC1jcm9zc2hhaXItYmFja2dyb3VuZFxcXCI+PC9kaXY+XFxuXFxuICAgIDxkaXYgY2xhc3M9XFxcImstdmFyLS1jaGFydC1pbmFjdGl2ZVxcXCI+PC9kaXY+XFxuICAgIDxkaXYgY2xhc3M9XFxcImstdmFyLS1jaGFydC1tYWpvci1saW5lc1xcXCI+PC9kaXY+XFxuICAgIDxkaXYgY2xhc3M9XFxcImstdmFyLS1jaGFydC1taW5vci1saW5lc1xcXCI+PC9kaXY+XFxuICAgIDxkaXYgY2xhc3M9XFxcImstdmFyLS1jaGFydC1hcmVhLW9wYWNpdHlcXFwiPjwvZGl2PlxcblxcbiAgICA8ZGl2IGNsYXNzPVxcXCJrLXdpZGdldFxcXCI+XFxuICAgICAgICA8ZGl2IGNsYXNzPVxcXCJrLXZhci0tY2hhcnQtZm9udFxcXCI+PC9kaXY+XFxuICAgICAgICA8ZGl2IGNsYXNzPVxcXCJrLXZhci0tY2hhcnQtdGl0bGUtZm9udFxcXCI+PC9kaXY+XFxuICAgICAgICA8ZGl2IGNsYXNzPVxcXCJrLXZhci0tY2hhcnQtbGFiZWwtZm9udFxcXCI+PC9kaXY+XFxuICAgIDwvZGl2PlxcblxcbiAgICA8ZGl2IGNsYXNzPVxcXCJrLXZhci0tc2VyaWVzXFxcIj5cXG4gICAgICA8ZGl2IGNsYXNzPVxcXCJrLXZhci0tc2VyaWVzLWFcXFwiPjwvZGl2PlxcbiAgICAgIDxkaXYgY2xhc3M9XFxcImstdmFyLS1zZXJpZXMtYlxcXCI+PC9kaXY+XFxuICAgICAgPGRpdiBjbGFzcz1cXFwiay12YXItLXNlcmllcy1jXFxcIj48L2Rpdj5cXG4gICAgICA8ZGl2IGNsYXNzPVxcXCJrLXZhci0tc2VyaWVzLWRcXFwiPjwvZGl2PlxcbiAgICAgIDxkaXYgY2xhc3M9XFxcImstdmFyLS1zZXJpZXMtZVxcXCI+PC9kaXY+XFxuICAgICAgPGRpdiBjbGFzcz1cXFwiay12YXItLXNlcmllcy1mXFxcIj48L2Rpdj5cXG4gICAgPC9kaXY+XFxuXCI7XG4vKipcbiAqIEBoaWRkZW5cbiAqL1xudmFyIFRoZW1lU2VydmljZSA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoVGhlbWVTZXJ2aWNlLCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIFRoZW1lU2VydmljZShuZ1pvbmUpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgbmdab25lKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5sb2FkZWQgPSBmYWxzZTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBUaGVtZVNlcnZpY2UucHJvdG90eXBlLmxvYWRUaGVtZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKHRoaXMubG9hZGVkIHx8ICFpc0RvY3VtZW50QXZhaWxhYmxlKCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMucmVhZFRoZW1lKCkpIHtcbiAgICAgICAgICAgIHRoaXMucmVhZERlZmF1bHRUaGVtZSgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5uZXh0KCk7XG4gICAgfTtcbiAgICBUaGVtZVNlcnZpY2UucHJvdG90eXBlLnJlYWRUaGVtZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdGhpcy5jcmVhdGVFbGVtZW50KCk7XG4gICAgICAgIHZhciBhdmFpbGFibGUgPSB0aGlzLnF1ZXJ5Q29sb3IoJ2FjY2VudCcpICE9PVxuICAgICAgICAgICAgdGhpcy5xdWVyeUNvbG9yKCdhY2NlbnQtY29udHJhc3QnKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGlmIChhdmFpbGFibGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnB1c2goY2hhcnRCYXNlVGhlbWUoKSk7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRDb2xvcnMoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnNldEZvbnRzKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTZXJpZXNDb2xvcnMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBmaW5hbGx5IHtcbiAgICAgICAgICAgIHRoaXMuZGVzdHJveUVsZW1lbnQoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYXZhaWxhYmxlO1xuICAgIH07XG4gICAgVGhlbWVTZXJ2aWNlLnByb3RvdHlwZS5yZWFkRGVmYXVsdFRoZW1lID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB0aGlzLnB1c2goY2hhcnREZWZhdWx0VGhlbWUoKSk7XG4gICAgfTtcbiAgICBUaGVtZVNlcnZpY2UucHJvdG90eXBlLmNyZWF0ZUVsZW1lbnQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBjb250YWluZXIgPSB0aGlzLmVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgY29udGFpbmVyLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgICAgIGNvbnRhaW5lci5pbm5lckhUTUwgPSB0ZW1wbGF0ZTtcbiAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChjb250YWluZXIpO1xuICAgIH07XG4gICAgVGhlbWVTZXJ2aWNlLnByb3RvdHlwZS5kZXN0cm95RWxlbWVudCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKHRoaXMuZWxlbWVudCkge1xuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0aGlzLmVsZW1lbnQpO1xuICAgICAgICAgICAgdGhpcy5lbGVtZW50ID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBUaGVtZVNlcnZpY2UucHJvdG90eXBlLnNldFN0eWxlID0gZnVuY3Rpb24gKGtleSwgdmFsdWUpIHtcbiAgICAgICAgdGhpcy5zZXQoa2V5LCB2YWx1ZSk7XG4gICAgfTtcbiAgICBUaGVtZVNlcnZpY2UucHJvdG90eXBlLnNldENvbG9ycyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdGhpcy5tYXBDb2xvcignYXhpc0RlZmF1bHRzLmNyb3NzaGFpci5jb2xvcicsICdjaGFydC1jcm9zc2hhaXItYmFja2dyb3VuZCcpO1xuICAgICAgICB0aGlzLm1hcENvbG9yKCdheGlzRGVmYXVsdHMubGFiZWxzLmNvbG9yJywgJ25vcm1hbC10ZXh0LWNvbG9yJyk7XG4gICAgICAgIHRoaXMubWFwQ29sb3IoJ2F4aXNEZWZhdWx0cy5saW5lLmNvbG9yJywgJ2NoYXJ0LW1ham9yLWxpbmVzJyk7XG4gICAgICAgIHRoaXMubWFwQ29sb3IoJ2F4aXNEZWZhdWx0cy5tYWpvckdyaWRMaW5lcy5jb2xvcicsICdjaGFydC1tYWpvci1saW5lcycpO1xuICAgICAgICB0aGlzLm1hcENvbG9yKCdheGlzRGVmYXVsdHMubWlub3JHcmlkTGluZXMuY29sb3InLCAnY2hhcnQtbWlub3ItbGluZXMnKTtcbiAgICAgICAgdGhpcy5tYXBDb2xvcignYXhpc0RlZmF1bHRzLm5vdGVzLmljb24uYmFja2dyb3VuZCcsICdjaGFydC1ub3Rlcy1iYWNrZ3JvdW5kJyk7XG4gICAgICAgIHRoaXMubWFwQ29sb3IoJ2F4aXNEZWZhdWx0cy5ub3Rlcy5pY29uLmJvcmRlci5jb2xvcicsICdjaGFydC1ub3Rlcy1ib3JkZXInKTtcbiAgICAgICAgdGhpcy5tYXBDb2xvcignYXhpc0RlZmF1bHRzLm5vdGVzLmxpbmUuY29sb3InLCAnY2hhcnQtbm90ZXMtbGluZXMnKTtcbiAgICAgICAgdGhpcy5tYXBDb2xvcignYXhpc0RlZmF1bHRzLnRpdGxlLmNvbG9yJywgJ25vcm1hbC10ZXh0LWNvbG9yJyk7XG4gICAgICAgIHRoaXMubWFwQ29sb3IoJ2NoYXJ0QXJlYS5iYWNrZ3JvdW5kJywgJ2JhY2tncm91bmQnKTtcbiAgICAgICAgdGhpcy5tYXBDb2xvcignbGVnZW5kLmluYWN0aXZlSXRlbXMubGFiZWxzLmNvbG9yJywgJ2NoYXJ0LWluYWN0aXZlJyk7XG4gICAgICAgIHRoaXMubWFwQ29sb3IoJ2xlZ2VuZC5pbmFjdGl2ZUl0ZW1zLm1hcmtlcnMuY29sb3InLCAnY2hhcnQtaW5hY3RpdmUnKTtcbiAgICAgICAgdGhpcy5tYXBDb2xvcignbGVnZW5kLmxhYmVscy5jb2xvcicsICdub3JtYWwtdGV4dC1jb2xvcicpO1xuICAgICAgICB0aGlzLm1hcENvbG9yKCdzZXJpZXNEZWZhdWx0cy5ib3hQbG90LmRvd25Db2xvcicsICdjaGFydC1tYWpvci1saW5lcycpO1xuICAgICAgICB0aGlzLm1hcENvbG9yKCdzZXJpZXNEZWZhdWx0cy5ib3hQbG90Lm1lYW4uY29sb3InLCAnYmFzZScpO1xuICAgICAgICB0aGlzLm1hcENvbG9yKCdzZXJpZXNEZWZhdWx0cy5ib3hQbG90Lm1lZGlhbi5jb2xvcicsICdiYXNlJyk7XG4gICAgICAgIHRoaXMubWFwQ29sb3IoJ3Nlcmllc0RlZmF1bHRzLmJveFBsb3Qud2hpc2tlcnMuY29sb3InLCAnYWNjZW50Jyk7XG4gICAgICAgIHRoaXMubWFwQ29sb3IoJ3Nlcmllc0RlZmF1bHRzLmJ1bGxldC50YXJnZXQuY29sb3InLCAnbm9ybWFsLXRleHQtY29sb3InKTtcbiAgICAgICAgdGhpcy5tYXBDb2xvcignc2VyaWVzRGVmYXVsdHMuY2FuZGxlc3RpY2suZG93bkNvbG9yJywgJ25vcm1hbC10ZXh0LWNvbG9yJyk7XG4gICAgICAgIHRoaXMubWFwQ29sb3IoJ3Nlcmllc0RlZmF1bHRzLmNhbmRsZXN0aWNrLmxpbmUuY29sb3InLCAnbm9ybWFsLXRleHQtY29sb3InKTtcbiAgICAgICAgdGhpcy5tYXBDb2xvcignc2VyaWVzRGVmYXVsdHMuZXJyb3JCYXJzLmNvbG9yJywgJ2NoYXJ0LWVycm9yLWJhcnMtYmFja2dyb3VuZCcpO1xuICAgICAgICB0aGlzLm1hcENvbG9yKCdzZXJpZXNEZWZhdWx0cy5ob3Jpem9udGFsV2F0ZXJmYWxsLmxpbmUuY29sb3InLCAnY2hhcnQtbWFqb3ItbGluZXMnKTtcbiAgICAgICAgdGhpcy5tYXBDb2xvcignc2VyaWVzRGVmYXVsdHMuaWNvbi5ib3JkZXIuY29sb3InLCAnY2hhcnQtbWFqb3ItbGluZXMnKTtcbiAgICAgICAgdGhpcy5tYXBDb2xvcignc2VyaWVzRGVmYXVsdHMubGFiZWxzLmJhY2tncm91bmQnLCAnYmFja2dyb3VuZCcpO1xuICAgICAgICB0aGlzLm1hcENvbG9yKCdzZXJpZXNEZWZhdWx0cy5sYWJlbHMuY29sb3InLCAnbm9ybWFsLXRleHQtY29sb3InKTtcbiAgICAgICAgdGhpcy5tYXBDb2xvcignc2VyaWVzRGVmYXVsdHMubm90ZXMuaWNvbi5iYWNrZ3JvdW5kJywgJ2NoYXJ0LW5vdGVzLWJhY2tncm91bmQnKTtcbiAgICAgICAgdGhpcy5tYXBDb2xvcignc2VyaWVzRGVmYXVsdHMubm90ZXMuaWNvbi5ib3JkZXIuY29sb3InLCAnY2hhcnQtbm90ZXMtYm9yZGVyJyk7XG4gICAgICAgIHRoaXMubWFwQ29sb3IoJ3Nlcmllc0RlZmF1bHRzLm5vdGVzLmxpbmUuY29sb3InLCAnY2hhcnQtbm90ZXMtbGluZXMnKTtcbiAgICAgICAgdGhpcy5tYXBDb2xvcignc2VyaWVzRGVmYXVsdHMudmVydGljYWxCb3hQbG90LmRvd25Db2xvcicsICdjaGFydC1tYWpvci1saW5lcycpO1xuICAgICAgICB0aGlzLm1hcENvbG9yKCdzZXJpZXNEZWZhdWx0cy52ZXJ0aWNhbEJveFBsb3QubWVhbi5jb2xvcicsICdiYXNlJyk7XG4gICAgICAgIHRoaXMubWFwQ29sb3IoJ3Nlcmllc0RlZmF1bHRzLnZlcnRpY2FsQm94UGxvdC5tZWRpYW4uY29sb3InLCAnYmFzZScpO1xuICAgICAgICB0aGlzLm1hcENvbG9yKCdzZXJpZXNEZWZhdWx0cy52ZXJ0aWNhbEJveFBsb3Qud2hpc2tlcnMuY29sb3InLCAnYWNjZW50Jyk7XG4gICAgICAgIHRoaXMubWFwQ29sb3IoJ3Nlcmllc0RlZmF1bHRzLnZlcnRpY2FsQnVsbGV0LnRhcmdldC5jb2xvcicsICdub3JtYWwtdGV4dC1jb2xvcicpO1xuICAgICAgICB0aGlzLm1hcENvbG9yKCdzZXJpZXNEZWZhdWx0cy53YXRlcmZhbGwubGluZS5jb2xvcicsICdjaGFydC1tYWpvci1saW5lcycpO1xuICAgICAgICB0aGlzLm1hcENvbG9yKCd0aXRsZS5jb2xvcicsICdub3JtYWwtdGV4dC1jb2xvcicpO1xuICAgICAgICB2YXIgb3BhY2l0eSA9IHBhcnNlRmxvYXQodGhpcy5xdWVyeVN0eWxlKCdjaGFydC1hcmVhLW9wYWNpdHknKS5vcGFjaXR5KTtcbiAgICAgICAgaWYgKCFpc05hTihvcGFjaXR5KSkge1xuICAgICAgICAgICAgdGhpcy5zZXRTdHlsZSgnc2VyaWVzRGVmYXVsdHMuYXJlYS5vcGFjaXR5Jywgb3BhY2l0eSk7XG4gICAgICAgICAgICB0aGlzLnNldFN0eWxlKCdzZXJpZXNEZWZhdWx0cy5sYWJlbHMub3BhY2l0eScsIG9wYWNpdHkpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBUaGVtZVNlcnZpY2UucHJvdG90eXBlLnNldEZvbnRzID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgZGVmYXVsdEZvbnQgPSBmb250KHRoaXMucXVlcnlTdHlsZSgnY2hhcnQtZm9udCcpKTtcbiAgICAgICAgdmFyIHRpdGxlRm9udCA9IGZvbnQodGhpcy5xdWVyeVN0eWxlKCdjaGFydC10aXRsZS1mb250JykpO1xuICAgICAgICB2YXIgbGFiZWxGb250ID0gZm9udCh0aGlzLnF1ZXJ5U3R5bGUoJ2NoYXJ0LWxhYmVsLWZvbnQnKSk7XG4gICAgICAgIHRoaXMuc2V0U3R5bGUoJ2F4aXNEZWZhdWx0cy5sYWJlbHMuZm9udCcsIGxhYmVsRm9udCk7XG4gICAgICAgIHRoaXMuc2V0U3R5bGUoJ2F4aXNEZWZhdWx0cy5ub3Rlcy5sYWJlbC5mb250JywgZGVmYXVsdEZvbnQpO1xuICAgICAgICB0aGlzLnNldFN0eWxlKCdheGlzRGVmYXVsdHMudGl0bGUuZm9udCcsIGRlZmF1bHRGb250KTtcbiAgICAgICAgdGhpcy5zZXRTdHlsZSgnbGVnZW5kLmxhYmVscy5mb250JywgZGVmYXVsdEZvbnQpO1xuICAgICAgICB0aGlzLnNldFN0eWxlKCdzZXJpZXNEZWZhdWx0cy5sYWJlbHMuZm9udCcsIGxhYmVsRm9udCk7XG4gICAgICAgIHRoaXMuc2V0U3R5bGUoJ3Nlcmllc0RlZmF1bHRzLm5vdGVzLmxhYmVsLmZvbnQnLCBkZWZhdWx0Rm9udCk7XG4gICAgICAgIHRoaXMuc2V0U3R5bGUoJ3RpdGxlLmZvbnQnLCB0aXRsZUZvbnQpO1xuICAgIH07XG4gICAgVGhlbWVTZXJ2aWNlLnByb3RvdHlwZS5zZXRTZXJpZXNDb2xvcnMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBlbGVtZW50ID0gdGhpcy5lbGVtZW50O1xuICAgICAgICB2YXIgc2VyaWVzID0gW10uc2xpY2UuY2FsbChlbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5rLXZhci0tc2VyaWVzIGRpdicpKTtcbiAgICAgICAgdmFyIHNlcmllc0NvbG9ycyA9IHNlcmllcy5yZWR1Y2UoZnVuY3Rpb24gKGFyciwgZWwpIHtcbiAgICAgICAgICAgIHZhciBwb3MgPSBzZXJpZXNQb3MoZWwuY2xhc3NOYW1lKTtcbiAgICAgICAgICAgIGFycltwb3NdID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWwpLmJhY2tncm91bmRDb2xvcjtcbiAgICAgICAgICAgIHJldHVybiBhcnI7XG4gICAgICAgIH0sIFtdIC8vIFdpbGwgcG9wdWxhdGUgdGhlIHNlcmllcyBjb2xvcnMgaW4gdGhpcyBhcnJheVxuICAgICAgICApO1xuICAgICAgICB0aGlzLnNldFN0eWxlKCdzZXJpZXNDb2xvcnMnLCBzZXJpZXNDb2xvcnMpO1xuICAgIH07XG4gICAgVGhlbWVTZXJ2aWNlLnByb3RvdHlwZS5tYXBDb2xvciA9IGZ1bmN0aW9uIChrZXksIHZhck5hbWUpIHtcbiAgICAgICAgdGhpcy5zZXRTdHlsZShrZXksIHRoaXMucXVlcnlDb2xvcih2YXJOYW1lKSk7XG4gICAgfTtcbiAgICBUaGVtZVNlcnZpY2UucHJvdG90eXBlLnF1ZXJ5Q29sb3IgPSBmdW5jdGlvbiAodmFyTmFtZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5xdWVyeVN0eWxlKHZhck5hbWUpLmJhY2tncm91bmRDb2xvcjtcbiAgICB9O1xuICAgIFRoZW1lU2VydmljZS5wcm90b3R5cGUucXVlcnlTdHlsZSA9IGZ1bmN0aW9uICh2YXJOYW1lKSB7XG4gICAgICAgIHZhciBlbGVtZW50ID0gdGhpcy5lbGVtZW50O1xuICAgICAgICByZXR1cm4gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudC5xdWVyeVNlbGVjdG9yKFwiLmstdmFyLS1cIiArIHZhck5hbWUpKTtcbiAgICB9O1xuICAgIFRoZW1lU2VydmljZS5kZWNvcmF0b3JzID0gW1xuICAgICAgICB7IHR5cGU6IEluamVjdGFibGUgfSxcbiAgICBdO1xuICAgIC8qKiBAbm9jb2xsYXBzZSAqL1xuICAgIFRoZW1lU2VydmljZS5jdG9yUGFyYW1ldGVycyA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIFtcbiAgICAgICAgeyB0eXBlOiBOZ1pvbmUgfVxuICAgIF07IH07XG4gICAgcmV0dXJuIFRoZW1lU2VydmljZTtcbn0oQ29uZmlndXJhdGlvblNlcnZpY2UpKTtcblxuLyoqXG4gKiBAaGlkZGVuXG4gKi9cbnZhciBDaGFydEluc3RhbmNlT2JzZXJ2ZXIgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKENoYXJ0SW5zdGFuY2VPYnNlcnZlciwgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBDaGFydEluc3RhbmNlT2JzZXJ2ZXIoaW5zdGFuY2UpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgaW5zdGFuY2UpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLmhhbmRsZXJNYXAgPSB7XG4gICAgICAgICAgICBoaWRlVG9vbHRpcDogJ29uSGlkZVRvb2x0aXAnLFxuICAgICAgICAgICAgbGVnZW5kSXRlbUNsaWNrOiAnb25MZWdlbmRJdGVtQ2xpY2snLFxuICAgICAgICAgICAgcmVuZGVyOiAnb25SZW5kZXInLFxuICAgICAgICAgICAgc2hvd1Rvb2x0aXA6ICdvblNob3dUb29sdGlwJyxcbiAgICAgICAgICAgIGluaXQ6ICdvbkluaXQnXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgcmV0dXJuIENoYXJ0SW5zdGFuY2VPYnNlcnZlcjtcbn0oSW5zdGFuY2VPYnNlcnZlcikpO1xuXG4vKipcbiAqIEBoaWRkZW5cbiAqL1xudmFyIFRvb2x0aXBUZW1wbGF0ZVNlcnZpY2UgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gVG9vbHRpcFRlbXBsYXRlU2VydmljZSgpIHtcbiAgICB9XG4gICAgVG9vbHRpcFRlbXBsYXRlU2VydmljZS5wcm90b3R5cGUuc2V0VGVtcGxhdGUgPSBmdW5jdGlvbiAodGVtcGxhdGUpIHtcbiAgICAgICAgdGhpcy50ZW1wbGF0ZSA9IHRlbXBsYXRlO1xuICAgIH07XG4gICAgVG9vbHRpcFRlbXBsYXRlU2VydmljZS5wcm90b3R5cGUuZ2V0VGVtcGxhdGUgPSBmdW5jdGlvbiAoc2VyaWVzSW5kZXgpIHtcbiAgICAgICAgaWYgKHRoaXMuc2VyaWVzVGVtcGxhdGVzICYmIHRoaXMuc2VyaWVzVGVtcGxhdGVzW3Nlcmllc0luZGV4XSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2VyaWVzVGVtcGxhdGVzW3Nlcmllc0luZGV4XTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy50ZW1wbGF0ZTtcbiAgICB9O1xuICAgIFRvb2x0aXBUZW1wbGF0ZVNlcnZpY2UucHJvdG90eXBlLnNldFNlcmllc1RlbXBsYXRlcyA9IGZ1bmN0aW9uIChzZXJpZXNUZW1wbGF0ZXMpIHtcbiAgICAgICAgdGhpcy5zZXJpZXNUZW1wbGF0ZXMgPSBzZXJpZXNUZW1wbGF0ZXM7XG4gICAgfTtcbiAgICBUb29sdGlwVGVtcGxhdGVTZXJ2aWNlLnByb3RvdHlwZS5zZXRTaGFyZWRUZW1wbGF0ZSA9IGZ1bmN0aW9uIChzaGFyZWRUZW1wbGF0ZSkge1xuICAgICAgICB0aGlzLnNoYXJlZFRlbXBsYXRlID0gc2hhcmVkVGVtcGxhdGU7XG4gICAgfTtcbiAgICBUb29sdGlwVGVtcGxhdGVTZXJ2aWNlLnByb3RvdHlwZS5nZXRTaGFyZWRUZW1wbGF0ZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2hhcmVkVGVtcGxhdGU7XG4gICAgfTtcbiAgICBUb29sdGlwVGVtcGxhdGVTZXJ2aWNlLmRlY29yYXRvcnMgPSBbXG4gICAgICAgIHsgdHlwZTogSW5qZWN0YWJsZSB9LFxuICAgIF07XG4gICAgcmV0dXJuIFRvb2x0aXBUZW1wbGF0ZVNlcnZpY2U7XG59KCkpO1xuXG4vKipcbiAqIEEgZGlyZWN0aXZlIHRoYXQgc2VsZWN0cyBhIFt0ZW1wbGF0ZV0oe3sgc2l0ZS5kYXRhLnVybHMuYW5ndWxhclsndGVtcGxhdGVzeW50YXgnXSB9fSlcbiAqIHdpdGhpbiB0aGUgYDxrZW5kby1jaGFydC10b29sdGlwPmAgY29tcG9uZW50IGZvciB0aGVcbiAqIFtzZXJpZXMgdG9vbHRpcF0oeyUgc2x1ZyB0b29sdGlwc19jaGFydF9jaGFydHMgJX0jdG9jLXNlcmllcy10b29sdGlwKS5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIGltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuICpcbiAqIF9AQ29tcG9uZW50KHtcbiAqICAgc2VsZWN0b3I6ICdteS1hcHAnLFxuICogICB0ZW1wbGF0ZTogYFxuICogICAgIDxrZW5kby1jaGFydD5cbiAqICAgICAgIDxrZW5kby1jaGFydC10b29sdGlwPlxuICogICAgICAgICAgPG5nLXRlbXBsYXRlIGtlbmRvQ2hhcnRTZXJpZXNUb29sdGlwVGVtcGxhdGUgbGV0LXZhbHVlPVwidmFsdWVcIj5cbiAqICAgICAgICAgICAgIFZhbHVlIGlzIHt7dmFsdWV9fVxuICogICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gKiAgICAgICA8L2tlbmRvLWNoYXJ0LXRvb2x0aXA+XG4gKiAgICAgICA8a2VuZG8tY2hhcnQtc2VyaWVzPlxuICogICAgICAgICA8a2VuZG8tY2hhcnQtc2VyaWVzLWl0ZW0gW2RhdGFdPVwiWzEsIDIsIDNdXCI+XG4gKiAgICAgICAgIDwva2VuZG8tY2hhcnQtc2VyaWVzLWl0ZW0+XG4gKiAgICAgICA8L2tlbmRvLWNoYXJ0LXNlcmllcz5cbiAqICAgICA8L2tlbmRvLWNoYXJ0PlxuICogICBgXG4gKiB9KVxuICogY2xhc3MgQXBwQ29tcG9uZW50IHtcbiAqIH1cbiAqXG4gKiBgYGBcbiAqL1xudmFyIFNlcmllc1Rvb2x0aXBUZW1wbGF0ZURpcmVjdGl2ZSA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBTZXJpZXNUb29sdGlwVGVtcGxhdGVEaXJlY3RpdmUodGVtcGxhdGVSZWYpIHtcbiAgICAgICAgdGhpcy50ZW1wbGF0ZVJlZiA9IHRlbXBsYXRlUmVmO1xuICAgIH1cbiAgICBTZXJpZXNUb29sdGlwVGVtcGxhdGVEaXJlY3RpdmUuZGVjb3JhdG9ycyA9IFtcbiAgICAgICAgeyB0eXBlOiBEaXJlY3RpdmUsIGFyZ3M6IFt7XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdG9yOiAnW2tlbmRvQ2hhcnRTZXJpZXNUb29sdGlwVGVtcGxhdGVdJ1xuICAgICAgICAgICAgICAgIH0sXSB9LFxuICAgIF07XG4gICAgLyoqIEBub2NvbGxhcHNlICovXG4gICAgU2VyaWVzVG9vbHRpcFRlbXBsYXRlRGlyZWN0aXZlLmN0b3JQYXJhbWV0ZXJzID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gW1xuICAgICAgICB7IHR5cGU6IFRlbXBsYXRlUmVmLCBkZWNvcmF0b3JzOiBbeyB0eXBlOiBPcHRpb25hbCB9XSB9XG4gICAgXTsgfTtcbiAgICByZXR1cm4gU2VyaWVzVG9vbHRpcFRlbXBsYXRlRGlyZWN0aXZlO1xufSgpKTtcblxuLyoqXG4gKiBBIGRpcmVjdGl2ZSB0aGF0IHNlbGVjdHMgYSBbdGVtcGxhdGVdKHt7IHNpdGUuZGF0YS51cmxzLmFuZ3VsYXJbJ3RlbXBsYXRlc3ludGF4J10gfX0pXG4gKiB3aXRoaW4gdGhlIGA8a2VuZG8tY2hhcnQtdG9vbHRpcD5gIGNvbXBvbmVudCBmb3IgdGhlXG4gKiBbc2hhcmVkIHNlcmllcyB0b29sdGlwXSh7JSBzbHVnIHRvb2x0aXBzX2NoYXJ0X2NoYXJ0cyAlfSN0b2Mtc2hhcmVkLXRvb2x0aXApLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG4gKlxuICogX0BDb21wb25lbnQoe1xuICogICBzZWxlY3RvcjogJ215LWFwcCcsXG4gKiAgIHRlbXBsYXRlOiBgXG4gKiAgICAgPGtlbmRvLWNoYXJ0PlxuICogICAgICAgPGtlbmRvLWNoYXJ0LXRvb2x0aXAgW3NoYXJlZF09XCJ0cnVlXCI+XG4gKiAgICAgICAgIDxuZy10ZW1wbGF0ZSBrZW5kb0NoYXJ0U2hhcmVkVG9vbHRpcFRlbXBsYXRlIGxldC1jYXRlZ29yeT1cImNhdGVnb3J5XCIgbGV0LXBvaW50cz1cInBvaW50c1wiPlxuICogICAgICAgICAgICAgPGRpdj4ge3sgY2F0ZWdvcnkgfX0gPC9kaXY+XG4gKiAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBwb2ludCBvZiBwb2ludHNcIj5cbiAqICAgICAgICAgICAgICAgICB7eyBwb2ludC5zZXJpZXMubmFtZSB9fSA6IHt7IHBvaW50LnZhbHVlIH19XG4gKiAgICAgICAgICAgICA8L2Rpdj5cbiAqICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAqICAgICAgIDwva2VuZG8tY2hhcnQtdG9vbHRpcD5cbiAqICAgICAgIDxrZW5kby1jaGFydC1jYXRlZ29yeS1heGlzPlxuICogICAgICAgICA8a2VuZG8tY2hhcnQtY2F0ZWdvcnktYXhpcy1pdGVtIFtjYXRlZ29yaWVzXT1cIlsnQScsICdCJywgJ0MnXVwiPlxuICogICAgICAgICA8L2tlbmRvLWNoYXJ0LWNhdGVnb3J5LWF4aXMtaXRlbT5cbiAqICAgICAgIDwva2VuZG8tY2hhcnQtY2F0ZWdvcnktYXhpcz5cbiAqICAgICAgIDxrZW5kby1jaGFydC1zZXJpZXM+XG4gKiAgICAgICAgIDxrZW5kby1jaGFydC1zZXJpZXMtaXRlbSBuYW1lPVwiQVwiIFtkYXRhXT1cIlsxLCAyLCAzXVwiPlxuICogICAgICAgICA8L2tlbmRvLWNoYXJ0LXNlcmllcy1pdGVtPlxuICogICAgICAgICA8a2VuZG8tY2hhcnQtc2VyaWVzLWl0ZW0gbmFtZT1cIkJcIiBbZGF0YV09XCJbMSwgMiwgM11cIj5cbiAqICAgICAgICAgPC9rZW5kby1jaGFydC1zZXJpZXMtaXRlbT5cbiAqICAgICAgIDwva2VuZG8tY2hhcnQtc2VyaWVzPlxuICogICAgIDwva2VuZG8tY2hhcnQ+XG4gKiAgIGBcbiAqIH0pXG4gKiBjbGFzcyBBcHBDb21wb25lbnQge1xuICogfVxuICpcbiAqIGBgYFxuICovXG52YXIgU2hhcmVkVG9vbHRpcFRlbXBsYXRlRGlyZWN0aXZlID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIFNoYXJlZFRvb2x0aXBUZW1wbGF0ZURpcmVjdGl2ZSh0ZW1wbGF0ZVJlZikge1xuICAgICAgICB0aGlzLnRlbXBsYXRlUmVmID0gdGVtcGxhdGVSZWY7XG4gICAgfVxuICAgIFNoYXJlZFRvb2x0aXBUZW1wbGF0ZURpcmVjdGl2ZS5kZWNvcmF0b3JzID0gW1xuICAgICAgICB7IHR5cGU6IERpcmVjdGl2ZSwgYXJnczogW3tcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0b3I6ICdba2VuZG9DaGFydFNoYXJlZFRvb2x0aXBUZW1wbGF0ZV0nXG4gICAgICAgICAgICAgICAgfSxdIH0sXG4gICAgXTtcbiAgICAvKiogQG5vY29sbGFwc2UgKi9cbiAgICBTaGFyZWRUb29sdGlwVGVtcGxhdGVEaXJlY3RpdmUuY3RvclBhcmFtZXRlcnMgPSBmdW5jdGlvbiAoKSB7IHJldHVybiBbXG4gICAgICAgIHsgdHlwZTogVGVtcGxhdGVSZWYsIGRlY29yYXRvcnM6IFt7IHR5cGU6IE9wdGlvbmFsIH1dIH1cbiAgICBdOyB9O1xuICAgIHJldHVybiBTaGFyZWRUb29sdGlwVGVtcGxhdGVEaXJlY3RpdmU7XG59KCkpO1xuXG4vKipcbiAqIFRoZSBwb2ludCB0aGF0IGlzIHBhc3NlZCB0byB0aGUgdG9vbHRpcCB0ZW1wbGF0ZS5cbiAqL1xudmFyIFRvb2x0aXBUZW1wbGF0ZVBvaW50ID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBUb29sdGlwVGVtcGxhdGVQb2ludChwb2ludCwgZm9ybWF0LCB0ZW1wbGF0ZSkge1xuICAgICAgICB0aGlzLnZhbHVlID0gcG9pbnQudmFsdWU7XG4gICAgICAgIHRoaXMuY2F0ZWdvcnkgPSBwb2ludC5jYXRlZ29yeTtcbiAgICAgICAgdGhpcy5jYXRlZ29yeUluZGV4ID0gcG9pbnQuY2F0ZWdvcnlJeDtcbiAgICAgICAgdGhpcy5zZXJpZXMgPSBwb2ludC5zZXJpZXM7XG4gICAgICAgIHRoaXMuZGF0YUl0ZW0gPSBwb2ludC5kYXRhSXRlbTtcbiAgICAgICAgdGhpcy5wZXJjZW50YWdlID0gcG9pbnQucGVyY2VudGFnZTtcbiAgICAgICAgdGhpcy5ydW5uaW5nVG90YWwgPSBwb2ludC5ydW5uaW5nVG90YWw7XG4gICAgICAgIHRoaXMudG90YWwgPSBwb2ludC50b3RhbDtcbiAgICAgICAgdGhpcy5sb3cgPSBwb2ludC5sb3c7XG4gICAgICAgIHRoaXMuaGlnaCA9IHBvaW50LmhpZ2g7XG4gICAgICAgIHRoaXMueExvdyA9IHBvaW50LnhMb3c7XG4gICAgICAgIHRoaXMueEhpZ2ggPSBwb2ludC54SGlnaDtcbiAgICAgICAgdGhpcy55TG93ID0gcG9pbnQueUxvdztcbiAgICAgICAgdGhpcy55SGlnaCA9IHBvaW50LnlIaWdoO1xuICAgICAgICB0aGlzLnRlbXBsYXRlID0gdGVtcGxhdGU7XG4gICAgICAgIHRoaXMucG9pbnQgPSBwb2ludDtcbiAgICAgICAgdGhpcy5mb3JtYXQgPSBmb3JtYXQ7XG4gICAgfVxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShUb29sdGlwVGVtcGxhdGVQb2ludC5wcm90b3R5cGUsIFwiZm9ybWF0dGVkVmFsdWVcIiwge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGhpZGRlblxuICAgICAgICAgKi9cbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5mb3JtYXQgPyB0aGlzLnBvaW50LmZvcm1hdFZhbHVlKHRoaXMuZm9ybWF0KSA6IFN0cmluZyh0aGlzLnZhbHVlKTtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgcmV0dXJuIFRvb2x0aXBUZW1wbGF0ZVBvaW50O1xufSgpKTtcblxuLyogdHNsaW50OmRpc2FibGU6YWxpZ24gbm8tZW1wdHkgKi9cbnZhciBQT1NJVElPTl9NT0RFID0gJ2Fic29sdXRlJztcbnZhciBDT0xMSVNJT04gPSB7IGhvcml6b250YWw6IFwiZml0XCIsIHZlcnRpY2FsOiBcImZpdFwiIH07XG4vKipcbiAqIEBoaWRkZW5cbiAqL1xudmFyIEJhc2VUb29sdGlwID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIEJhc2VUb29sdGlwKHBvcHVwU2VydmljZSwgbG9jYWxpemF0aW9uU2VydmljZSkge1xuICAgICAgICB0aGlzLnBvcHVwU2VydmljZSA9IHBvcHVwU2VydmljZTtcbiAgICAgICAgdGhpcy5sb2NhbGl6YXRpb25TZXJ2aWNlID0gbG9jYWxpemF0aW9uU2VydmljZTtcbiAgICAgICAgdGhpcy5zdHlsZSA9IHt9O1xuICAgICAgICB0aGlzLnBvcHVwUmVmID0gbnVsbDtcbiAgICB9XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEJhc2VUb29sdGlwLnByb3RvdHlwZSwgXCJhY3RpdmVcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnBvcHVwUmVmICE9PSBudWxsO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBCYXNlVG9vbHRpcC5wcm90b3R5cGUuc2hvdyA9IGZ1bmN0aW9uIChlKSB7XG4gICAgICAgIHZhciBhbGlnbiA9IGUuYW5jaG9yLmFsaWduO1xuICAgICAgICB2YXIgb2Zmc2V0ID0gdGhpcy5wb3NpdGlvbihlLmFuY2hvci5wb2ludCk7XG4gICAgICAgIHRoaXMuc3R5bGUgPSBlLnN0eWxlO1xuICAgICAgICBpZiAoIXRoaXMucG9wdXBSZWYpIHtcbiAgICAgICAgICAgIHRoaXMucG9wdXBSZWYgPSB0aGlzLnBvcHVwU2VydmljZS5vcGVuKE9iamVjdC5hc3NpZ24oe1xuICAgICAgICAgICAgICAgIG9mZnNldDogb2Zmc2V0LFxuICAgICAgICAgICAgICAgIHBvcHVwQWxpZ246IGFsaWduLFxuICAgICAgICAgICAgICAgIGFuaW1hdGU6IHRoaXMuYW5pbWF0ZSxcbiAgICAgICAgICAgICAgICBjb250ZW50OiB0aGlzLnRlbXBsYXRlUmVmLFxuICAgICAgICAgICAgICAgIGNvbGxpc2lvbjogQ09MTElTSU9OLFxuICAgICAgICAgICAgICAgIHBvc2l0aW9uTW9kZTogUE9TSVRJT05fTU9ERVxuICAgICAgICAgICAgfSwgdGhpcy5wb3B1cFNldHRpbmdzKSk7XG4gICAgICAgICAgICBpZiAodGhpcy5sb2NhbGl6YXRpb25TZXJ2aWNlLnJ0bCkge1xuICAgICAgICAgICAgICAgIHRoaXMucG9wdXBSZWYucG9wdXBFbGVtZW50LnNldEF0dHJpYnV0ZSgnZGlyJywgJ3J0bCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5vbkluaXQoKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHZhciBwb3B1cCA9IHRoaXMucG9wdXBSZWYucG9wdXAuaW5zdGFuY2U7XG4gICAgICAgICAgICBwb3B1cC5vZmZzZXQgPSBvZmZzZXQ7XG4gICAgICAgICAgICBwb3B1cC5wb3B1cEFsaWduID0gYWxpZ247XG4gICAgICAgIH1cbiAgICB9O1xuICAgIEJhc2VUb29sdGlwLnByb3RvdHlwZS5oaWRlID0gZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAodGhpcy5wb3B1cFJlZikge1xuICAgICAgICAgICAgdGhpcy5wb3B1cFJlZi5jbG9zZSgpO1xuICAgICAgICAgICAgdGhpcy5wb3B1cFJlZiA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIEJhc2VUb29sdGlwLnByb3RvdHlwZS5vbkluaXQgPSBmdW5jdGlvbiAoKSB7XG4gICAgfTtcbiAgICBCYXNlVG9vbHRpcC5wcm90b3R5cGUubmdPbkRlc3Ryb3kgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHRoaXMuaGlkZSgpO1xuICAgIH07XG4gICAgQmFzZVRvb2x0aXAucHJvdG90eXBlLnBvc2l0aW9uID0gZnVuY3Rpb24gKG9mZnNldCkge1xuICAgICAgICBpZiAoIXRoaXMucG9wdXBTZXR0aW5ncyB8fCAhdGhpcy5wb3B1cFNldHRpbmdzLmFwcGVuZFRvKSB7XG4gICAgICAgICAgICByZXR1cm4gb2Zmc2V0O1xuICAgICAgICB9XG4gICAgICAgIHZhciBhcHBlbmRUbyA9IHRoaXMucG9wdXBTZXR0aW5ncy5hcHBlbmRUby5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIHZhciBwYXJlbnQgPSB0aGlzLmdldFJlbGF0aXZlQ29udGV4dEVsZW1lbnQoYXBwZW5kVG8pO1xuICAgICAgICBpZiAoIXBhcmVudCkge1xuICAgICAgICAgICAgcmV0dXJuIG9mZnNldDtcbiAgICAgICAgfVxuICAgICAgICB2YXIgYmJveCA9IHBhcmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgdmFyIF9hID0gdGhpcy5zY3JvbGxPZmZzZXQoYXBwZW5kVG8pLCBzY3JvbGxMZWZ0ID0gX2Euc2Nyb2xsTGVmdCwgc2Nyb2xsVG9wID0gX2Euc2Nyb2xsVG9wO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbGVmdDogb2Zmc2V0LmxlZnQgLSBiYm94LmxlZnQgLSBzY3JvbGxMZWZ0LFxuICAgICAgICAgICAgdG9wOiBvZmZzZXQudG9wIC0gYmJveC50b3AgLSBzY3JvbGxUb3BcbiAgICAgICAgfTtcbiAgICB9O1xuICAgIEJhc2VUb29sdGlwLnByb3RvdHlwZS5nZXRSZWxhdGl2ZUNvbnRleHRFbGVtZW50ID0gZnVuY3Rpb24gKGVsKSB7XG4gICAgICAgIGlmICghZWwpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHZhciBwYXJlbnQgPSBlbC5wYXJlbnRFbGVtZW50O1xuICAgICAgICB3aGlsZSAocGFyZW50KSB7XG4gICAgICAgICAgICBpZiAod2luZG93LmdldENvbXB1dGVkU3R5bGUocGFyZW50KS50cmFuc2Zvcm0gIT09ICdub25lJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwYXJlbnQgPSBwYXJlbnQucGFyZW50RWxlbWVudDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9O1xuICAgIEJhc2VUb29sdGlwLnByb3RvdHlwZS5zY3JvbGxPZmZzZXQgPSBmdW5jdGlvbiAoZWxlbWVudCkge1xuICAgICAgICBpZiAoIWVsZW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHZhciBzY3JvbGxMZWZ0ID0gZWxlbWVudC5zY3JvbGxMZWZ0O1xuICAgICAgICB2YXIgc2Nyb2xsVG9wID0gZWxlbWVudC5zY3JvbGxUb3A7XG4gICAgICAgIHZhciBwYXJlbnQgPSBlbGVtZW50LnBhcmVudEVsZW1lbnQ7XG4gICAgICAgIHdoaWxlIChwYXJlbnQpIHtcbiAgICAgICAgICAgIHNjcm9sbExlZnQgKz0gcGFyZW50LnNjcm9sbExlZnQ7XG4gICAgICAgICAgICBzY3JvbGxUb3AgKz0gcGFyZW50LnNjcm9sbFRvcDtcbiAgICAgICAgICAgIHBhcmVudCA9IHBhcmVudC5wYXJlbnRFbGVtZW50O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IHNjcm9sbExlZnQ6IHNjcm9sbExlZnQsIHNjcm9sbFRvcDogc2Nyb2xsVG9wIH07XG4gICAgfTtcbiAgICByZXR1cm4gQmFzZVRvb2x0aXA7XG59KCkpO1xuXG4vKipcbiAqIEBoaWRkZW5cbiAqL1xuZnVuY3Rpb24gaGFzUGFyZW50KGVsZW1lbnQsIHBhcmVudCkge1xuICAgIHZhciBjdXJyZW50ID0gZWxlbWVudDtcbiAgICB3aGlsZSAoY3VycmVudCAmJiBjdXJyZW50ICE9PSBwYXJlbnQpIHtcbiAgICAgICAgY3VycmVudCA9IGN1cnJlbnQucGFyZW50Tm9kZTtcbiAgICB9XG4gICAgcmV0dXJuIGN1cnJlbnQgPyB0cnVlIDogZmFsc2U7XG59XG5cbi8qKlxuICogQGhpZGRlblxuICovXG5mdW5jdGlvbiBib2R5RmFjdG9yeSgpIHtcbiAgICBpZiAoaXNEb2N1bWVudEF2YWlsYWJsZSgpKSB7XG4gICAgICAgIHJldHVybiBuZXcgRWxlbWVudFJlZihkb2N1bWVudC5ib2R5KTtcbiAgICB9XG59XG5cbnZhciBTSEFSRURfVE9PTFRJUF9DTEFTUyA9ICdrLWNoYXJ0LXNoYXJlZC10b29sdGlwJztcbnZhciBUT09MVElQX0NMQVNTID0gXCJrLWNoYXJ0LXRvb2x0aXBcIjtcbnZhciDJtTAkMiA9IGJvZHlGYWN0b3J5O1xuLy8gQ29kZWx5emVyIDIuMC4wLWJldGEyIGRvZXNuJ3QgaGFuZGxlIGluaGVyaXRlZCBtZW1iZXJzXG4vKiB0c2xpbnQ6ZGlzYWJsZTpuby1hY2Nlc3MtbWlzc2luZy1tZW1iZXIgKi9cbi8qKlxuICogQGhpZGRlblxuICovXG52YXIgVG9vbHRpcFBvcHVwQ29tcG9uZW50ID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhUb29sdGlwUG9wdXBDb21wb25lbnQsIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gVG9vbHRpcFBvcHVwQ29tcG9uZW50KHBvcHVwU2VydmljZSwgdGVtcGxhdGVTZXJ2aWNlLCBsb2NhbGl6YXRpb25TZXJ2aWNlLCBuZ1pvbmUpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgcG9wdXBTZXJ2aWNlLCBsb2NhbGl6YXRpb25TZXJ2aWNlKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5wb3B1cFNlcnZpY2UgPSBwb3B1cFNlcnZpY2U7XG4gICAgICAgIF90aGlzLnRlbXBsYXRlU2VydmljZSA9IHRlbXBsYXRlU2VydmljZTtcbiAgICAgICAgX3RoaXMubG9jYWxpemF0aW9uU2VydmljZSA9IGxvY2FsaXphdGlvblNlcnZpY2U7XG4gICAgICAgIF90aGlzLm5nWm9uZSA9IG5nWm9uZTtcbiAgICAgICAgX3RoaXMuc2VyaWVzVG9vbHRpcENvbnRleHQgPSB7fTtcbiAgICAgICAgX3RoaXMuc2VyaWVzU2hhcmVkVG9vbHRpcENvbnRleHQgPSB7fTtcbiAgICAgICAgX3RoaXMuYW5pbWF0ZSA9IHRydWU7XG4gICAgICAgIF90aGlzLndyYXBwZXJDbGFzcyA9ICdrLWNoYXJ0LXRvb2x0aXAtd3JhcHBlcic7XG4gICAgICAgIF90aGlzLmxlYXZlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgICAgICBfdGhpcy5wb3B1cENsYXNzZXMgPSB7fTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBUb29sdGlwUG9wdXBDb21wb25lbnQucHJvdG90eXBlLnNob3cgPSBmdW5jdGlvbiAoZSkge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIHRoaXMuc2hhcmVkID0gZS5zaGFyZWQ7XG4gICAgICAgIHRoaXMucG9wdXBDbGFzc2VzID0gT2JqZWN0LmFzc2lnbigoX2EgPSB7fSxcbiAgICAgICAgICAgIF9hW1NIQVJFRF9UT09MVElQX0NMQVNTXSA9IGUuc2hhcmVkLFxuICAgICAgICAgICAgX2FbVE9PTFRJUF9DTEFTU10gPSB0cnVlLFxuICAgICAgICAgICAgX2FbZS5jbGFzc05hbWVdID0gISFlLmNsYXNzTmFtZSxcbiAgICAgICAgICAgIF9hKSwgdGhpcy5jbGFzc05hbWVzKTtcbiAgICAgICAgaWYgKCFlLnNoYXJlZCkge1xuICAgICAgICAgICAgdGhpcy5zZXJpZXNUb29sdGlwQ29udGV4dCA9IG5ldyBUb29sdGlwVGVtcGxhdGVQb2ludChlLnBvaW50LCBlLmZvcm1hdCk7XG4gICAgICAgICAgICB0aGlzLnNlcmllc1Rvb2x0aXBUZW1wbGF0ZVJlZiA9IHRoaXMucG9pbnRUZW1wbGF0ZVJlZihlLnBvaW50KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2VyaWVzU2hhcmVkVG9vbHRpcFRlbXBsYXRlUmVmID0gdGhpcy50ZW1wbGF0ZVNlcnZpY2UuZ2V0U2hhcmVkVGVtcGxhdGUoKVxuICAgICAgICAgICAgICAgIHx8IHRoaXMuZGVmYXVsdFNoYXJlZFRvb2x0aXBUZW1wbGF0ZS50ZW1wbGF0ZVJlZjtcbiAgICAgICAgICAgIHRoaXMuc2VyaWVzU2hhcmVkVG9vbHRpcENvbnRleHQgPSB0aGlzLnNoYXJlZFRlbXBsYXRlQ29udGV4dChlKTtcbiAgICAgICAgfVxuICAgICAgICBfc3VwZXIucHJvdG90eXBlLnNob3cuY2FsbCh0aGlzLCBlKTtcbiAgICB9O1xuICAgIFRvb2x0aXBQb3B1cENvbXBvbmVudC5wcm90b3R5cGUuY29udGFpbnNFbGVtZW50ID0gZnVuY3Rpb24gKGVsZW1lbnQpIHtcbiAgICAgICAgaWYgKHRoaXMucG9wdXBSZWYpIHtcbiAgICAgICAgICAgIHJldHVybiBoYXNQYXJlbnQoZWxlbWVudCwgdGhpcy5wb3B1cFJlZi5wb3B1cEVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBUb29sdGlwUG9wdXBDb21wb25lbnQucHJvdG90eXBlLnNoYXJlZFRlbXBsYXRlQ29udGV4dCA9IGZ1bmN0aW9uIChlKSB7XG4gICAgICAgIHZhciBwb2ludHMgPSBlLnBvaW50cztcbiAgICAgICAgdmFyIG5hbWVDb2x1bW4gPSBwb2ludHMuZmlsdGVyKGZ1bmN0aW9uIChwb2ludCkgeyByZXR1cm4gdHlwZW9mIHBvaW50LnNlcmllcy5uYW1lICE9PSAndW5kZWZpbmVkJzsgfSkubGVuZ3RoID4gMDtcbiAgICAgICAgdmFyIGNvbG9yTWFya2VyID0gZS5zZXJpZXMubGVuZ3RoID4gMTtcbiAgICAgICAgdmFyIGNvbHNwYW4gPSAxO1xuICAgICAgICBpZiAobmFtZUNvbHVtbikge1xuICAgICAgICAgICAgY29sc3BhbisrO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjb2xvck1hcmtlcikge1xuICAgICAgICAgICAgY29sc3BhbisrO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBjYXRlZ29yeTogZS5jYXRlZ29yeSxcbiAgICAgICAgICAgIGNhdGVnb3J5VGV4dDogZS5jYXRlZ29yeVRleHQsXG4gICAgICAgICAgICBjb2xvck1hcmtlcjogY29sb3JNYXJrZXIsXG4gICAgICAgICAgICBjb2xzcGFuOiBjb2xzcGFuLFxuICAgICAgICAgICAgbmFtZUNvbHVtbjogbmFtZUNvbHVtbixcbiAgICAgICAgICAgIHBvaW50czogdGhpcy53cmFwUG9pbnRzKGUucG9pbnRzLCBlLmZvcm1hdClcbiAgICAgICAgfTtcbiAgICB9O1xuICAgIFRvb2x0aXBQb3B1cENvbXBvbmVudC5wcm90b3R5cGUucG9pbnRUZW1wbGF0ZVJlZiA9IGZ1bmN0aW9uIChwb2ludCkge1xuICAgICAgICByZXR1cm4gdGhpcy50ZW1wbGF0ZVNlcnZpY2UuZ2V0VGVtcGxhdGUocG9pbnQuc2VyaWVzLmluZGV4KSB8fCB0aGlzLmRlZmF1bHRTZXJpZXNUb29sdGlwVGVtcGxhdGUudGVtcGxhdGVSZWY7XG4gICAgfTtcbiAgICBUb29sdGlwUG9wdXBDb21wb25lbnQucHJvdG90eXBlLndyYXBQb2ludHMgPSBmdW5jdGlvbiAocG9pbnRzLCBmb3JtYXQpIHtcbiAgICAgICAgdmFyIHJlc3VsdCA9IFtdO1xuICAgICAgICBmb3IgKHZhciBpZHggPSAwOyBpZHggPCBwb2ludHMubGVuZ3RoOyBpZHgrKykge1xuICAgICAgICAgICAgdmFyIHBvaW50ID0gcG9pbnRzW2lkeF07XG4gICAgICAgICAgICB2YXIgdGVtcGxhdGUgPSB0aGlzLnBvaW50VGVtcGxhdGVSZWYocG9pbnQpO1xuICAgICAgICAgICAgdmFyIHBvaW50Rm9ybWF0ID0gKChwb2ludC5vcHRpb25zIHx8IHt9KS50b29sdGlwIHx8IHt9KS5mb3JtYXQgfHwgZm9ybWF0O1xuICAgICAgICAgICAgcmVzdWx0LnB1c2gobmV3IFRvb2x0aXBUZW1wbGF0ZVBvaW50KHBvaW50LCBwb2ludEZvcm1hdCwgdGVtcGxhdGUpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH07XG4gICAgVG9vbHRpcFBvcHVwQ29tcG9uZW50LnByb3RvdHlwZS5vbkluaXQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIF90aGlzLm1vdXNlbGVhdmVTdWJzY3JpcHRpb24gPSBfdGhpcy5wb3B1cFJlZi5wb3B1cEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsIGZ1bmN0aW9uIChhcmdzKSB7XG4gICAgICAgICAgICAgICAgX3RoaXMubGVhdmUuZW1pdChhcmdzKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5wb3B1cFJlZi5wb3B1cEVsZW1lbnQuY2xhc3NOYW1lICs9IFwiIFwiICsgdGhpcy53cmFwcGVyQ2xhc3M7XG4gICAgfTtcbiAgICBUb29sdGlwUG9wdXBDb21wb25lbnQucHJvdG90eXBlLmhpZGUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmICh0aGlzLm1vdXNlbGVhdmVTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMubW91c2VsZWF2ZVN1YnNjcmlwdGlvbigpO1xuICAgICAgICAgICAgdGhpcy5tb3VzZWxlYXZlU3Vic2NyaXB0aW9uID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBfc3VwZXIucHJvdG90eXBlLmhpZGUuY2FsbCh0aGlzKTtcbiAgICB9O1xuICAgIFRvb2x0aXBQb3B1cENvbXBvbmVudC5kZWNvcmF0b3JzID0gW1xuICAgICAgICB7IHR5cGU6IENvbXBvbmVudCwgYXJnczogW3tcbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZXJzOiBbUG9wdXBTZXJ2aWNlLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdmlkZTogUE9QVVBfQ09OVEFJTkVSLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZUZhY3Rvcnk6IMm1MCQyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XSxcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0b3I6ICdrZW5kby1jaGFydC10b29sdGlwLXBvcHVwJyxcbiAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGU6IFwiXFxuICAgIDxuZy10ZW1wbGF0ZSAjY29udGVudD5cXG4gICAgICAgIDxkaXYgW25nQ2xhc3NdPVxcXCJwb3B1cENsYXNzZXNcXFwiIFtuZ1N0eWxlXT1cXFwic3R5bGVcXFwiPlxcbiAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVxcXCJzZXJpZXNUb29sdGlwVGVtcGxhdGVSZWZcXFwiICpuZ0lmPVxcXCIhc2hhcmVkXFxcIlxcbiAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cXFwic2VyaWVzVG9vbHRpcENvbnRleHRcXFwiPlxcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxcbiAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVxcXCJzZXJpZXNTaGFyZWRUb29sdGlwVGVtcGxhdGVSZWZcXFwiICpuZ0lmPVxcXCJzaGFyZWRcXFwiXFxuICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVxcXCJzZXJpZXNTaGFyZWRUb29sdGlwQ29udGV4dFxcXCI+XFxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XFxuICAgICAgICA8L2Rpdj5cXG4gICAgPC9uZy10ZW1wbGF0ZT5cXG5cXG4gICAgPG5nLXRlbXBsYXRlIGtlbmRvQ2hhcnRTZXJpZXNUb29sdGlwVGVtcGxhdGUgbGV0LWZvcm1hdHRlZFZhbHVlPVxcXCJmb3JtYXR0ZWRWYWx1ZVxcXCI+XFxuICAgICAgICA8c3BhbiBbaW5uZXJIVE1MXT1cXFwiZm9ybWF0dGVkVmFsdWVcXFwiPjwvc3Bhbj5cXG4gICAgPC9uZy10ZW1wbGF0ZT5cXG4gICAgPG5nLXRlbXBsYXRlIGtlbmRvQ2hhcnRTaGFyZWRUb29sdGlwVGVtcGxhdGUgbGV0LXBvaW50cz1cXFwicG9pbnRzXFxcIiBsZXQtY2F0ZWdvcnlUZXh0PVxcXCJjYXRlZ29yeVRleHRcXFwiIGxldC1jb2xzcGFuPVxcXCJjb2xzcGFuXFxcIiBsZXQtY29sb3JNYXJrZXI9XFxcImNvbG9yTWFya2VyXFxcIiBsZXQtbmFtZUNvbHVtbj1cXFwibmFtZUNvbHVtblxcXCIgPlxcbiAgICAgICAgPHRhYmxlPlxcbiAgICAgICAgICAgIDx0cj48dGggW2F0dHIuY29sc3Bhbl09J2NvbHNwYW4nPiB7eyBjYXRlZ29yeVRleHQgfX0gPC90aD48L3RyPlxcbiAgICAgICAgICAgIDx0ciAqbmdGb3I9XFxcImxldCBwb2ludCBvZiBwb2ludHNcXFwiPlxcbiAgICAgICAgICAgICAgICA8dGQgKm5nSWY9XFxcImNvbG9yTWFya2VyXFxcIj48c3BhbiBjbGFzcz0nay1jaGFydC1zaGFyZWQtdG9vbHRpcC1tYXJrZXInIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT0ncG9pbnQuc2VyaWVzLmNvbG9yJz48L3NwYW4+PC90ZD5cXG4gICAgICAgICAgICAgICAgPHRkICpuZ0lmPVxcXCJuYW1lQ29sdW1uXFxcIj5cXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XFxcInBvaW50LnNlcmllcy5uYW1lICE9PSB1bmRlZmluZWRcXFwiPnt7IHBvaW50LnNlcmllcy5uYW1lIH19PC9uZy1jb250YWluZXI+XFxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVxcXCJwb2ludC5zZXJpZXMubmFtZSA9PT0gdW5kZWZpbmVkXFxcIj4mbmJzcDs8L25nLWNvbnRhaW5lcj5cXG4gICAgICAgICAgICAgICAgPC90ZD5cXG4gICAgICAgICAgICAgICAgPHRkPlxcbiAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XFxcInBvaW50LnRlbXBsYXRlXFxcIlxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVxcXCJwb2ludFxcXCI+XFxuICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cXG4gICAgICAgICAgICAgICAgPC90ZD5cXG4gICAgICAgICAgICA8L3RyPlxcbiAgICAgICAgPC90YWJsZT5cXG4gICAgPC9uZy10ZW1wbGF0ZT5cXG4gICAgXCJcbiAgICAgICAgICAgICAgICB9LF0gfSxcbiAgICBdO1xuICAgIC8qKiBAbm9jb2xsYXBzZSAqL1xuICAgIFRvb2x0aXBQb3B1cENvbXBvbmVudC5jdG9yUGFyYW1ldGVycyA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIFtcbiAgICAgICAgeyB0eXBlOiBQb3B1cFNlcnZpY2UgfSxcbiAgICAgICAgeyB0eXBlOiBUb29sdGlwVGVtcGxhdGVTZXJ2aWNlIH0sXG4gICAgICAgIHsgdHlwZTogTG9jYWxpemF0aW9uU2VydmljZSB9LFxuICAgICAgICB7IHR5cGU6IE5nWm9uZSB9XG4gICAgXTsgfTtcbiAgICBUb29sdGlwUG9wdXBDb21wb25lbnQucHJvcERlY29yYXRvcnMgPSB7XG4gICAgICAgIGRlZmF1bHRTZXJpZXNUb29sdGlwVGVtcGxhdGU6IFt7IHR5cGU6IFZpZXdDaGlsZCwgYXJnczogW1Nlcmllc1Rvb2x0aXBUZW1wbGF0ZURpcmVjdGl2ZSxdIH1dLFxuICAgICAgICBkZWZhdWx0U2hhcmVkVG9vbHRpcFRlbXBsYXRlOiBbeyB0eXBlOiBWaWV3Q2hpbGQsIGFyZ3M6IFtTaGFyZWRUb29sdGlwVGVtcGxhdGVEaXJlY3RpdmUsXSB9XSxcbiAgICAgICAgdGVtcGxhdGVSZWY6IFt7IHR5cGU6IFZpZXdDaGlsZCwgYXJnczogWydjb250ZW50JyxdIH1dLFxuICAgICAgICBhbmltYXRlOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgY2xhc3NOYW1lczogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHBvcHVwU2V0dGluZ3M6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICB3cmFwcGVyQ2xhc3M6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBsZWF2ZTogW3sgdHlwZTogT3V0cHV0IH1dXG4gICAgfTtcbiAgICByZXR1cm4gVG9vbHRpcFBvcHVwQ29tcG9uZW50O1xufShCYXNlVG9vbHRpcCkpO1xuXG52YXIgybUwJDMgPSBib2R5RmFjdG9yeTtcbi8vIENvZGVseXplciAyLjAuMC1iZXRhMiBkb2Vzbid0IGhhbmRsZSBpbmhlcml0ZWQgbWVtYmVyc1xuLyogdHNsaW50OmRpc2FibGU6bm8tYWNjZXNzLW1pc3NpbmctbWVtYmVyICovXG4vKipcbiAqIEBoaWRkZW5cbiAqL1xudmFyIENyb3NzaGFpclRvb2x0aXBDb21wb25lbnQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKENyb3NzaGFpclRvb2x0aXBDb21wb25lbnQsIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gQ3Jvc3NoYWlyVG9vbHRpcENvbXBvbmVudChwb3B1cFNlcnZpY2UsIGxvY2FsaXphdGlvblNlcnZpY2UpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgcG9wdXBTZXJ2aWNlLCBsb2NhbGl6YXRpb25TZXJ2aWNlKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5hbmltYXRlID0gZmFsc2U7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgQ3Jvc3NoYWlyVG9vbHRpcENvbXBvbmVudC5wcm90b3R5cGUuc2hvdyA9IGZ1bmN0aW9uIChlKSB7XG4gICAgICAgIF9zdXBlci5wcm90b3R5cGUuc2hvdy5jYWxsKHRoaXMsIGUpO1xuICAgICAgICB0aGlzLnZhbHVlID0gZS52YWx1ZTtcbiAgICAgICAgdGhpcy5wb3B1cFJlZi5wb3B1cC5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfTtcbiAgICBDcm9zc2hhaXJUb29sdGlwQ29tcG9uZW50LmRlY29yYXRvcnMgPSBbXG4gICAgICAgIHsgdHlwZTogQ29tcG9uZW50LCBhcmdzOiBbe1xuICAgICAgICAgICAgICAgICAgICBwcm92aWRlcnM6IFtQb3B1cFNlcnZpY2UsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm92aWRlOiBQT1BVUF9DT05UQUlORVIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlRmFjdG9yeTogybUwJDNcbiAgICAgICAgICAgICAgICAgICAgICAgIH1dLFxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RvcjogJ2tlbmRvLWNoYXJ0LWNyb3NzaGFpci10b29sdGlwJyxcbiAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGU6IFwiXFxuICAgICAgICA8bmctdGVtcGxhdGUgI2NvbnRlbnQ+XFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cXFwiay1jaGFydC10b29sdGlwIGstY2hhcnQtY3Jvc3NoYWlyLXRvb2x0aXBcXFwiIFtuZ1N0eWxlXT1cXFwic3R5bGVcXFwiPlxcbiAgICAgICAgICAgICAgICB7eyB2YWx1ZSB9fVxcbiAgICAgICAgICAgIDwvZGl2PlxcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cXG4gICAgXCJcbiAgICAgICAgICAgICAgICB9LF0gfSxcbiAgICBdO1xuICAgIC8qKiBAbm9jb2xsYXBzZSAqL1xuICAgIENyb3NzaGFpclRvb2x0aXBDb21wb25lbnQuY3RvclBhcmFtZXRlcnMgPSBmdW5jdGlvbiAoKSB7IHJldHVybiBbXG4gICAgICAgIHsgdHlwZTogUG9wdXBTZXJ2aWNlIH0sXG4gICAgICAgIHsgdHlwZTogTG9jYWxpemF0aW9uU2VydmljZSB9XG4gICAgXTsgfTtcbiAgICBDcm9zc2hhaXJUb29sdGlwQ29tcG9uZW50LnByb3BEZWNvcmF0b3JzID0ge1xuICAgICAgICB0ZW1wbGF0ZVJlZjogW3sgdHlwZTogVmlld0NoaWxkLCBhcmdzOiBbJ2NvbnRlbnQnLF0gfV0sXG4gICAgICAgIGtleTogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHBvcHVwU2V0dGluZ3M6IFt7IHR5cGU6IElucHV0IH1dXG4gICAgfTtcbiAgICByZXR1cm4gQ3Jvc3NoYWlyVG9vbHRpcENvbXBvbmVudDtcbn0oQmFzZVRvb2x0aXApKTtcblxudmFyIEFYRVMgPSBbXCJjYXRlZ29yeUF4aXNcIiwgXCJ2YWx1ZUF4aXNcIiwgXCJ4QXhpc1wiLCBcInlBeGlzXCJdO1xuLyoqXG4gKiBAaGlkZGVuXG4gKi9cbnZhciBDcm9zc2hhaXJUb29sdGlwc0NvbnRhaW5lckNvbXBvbmVudCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBDcm9zc2hhaXJUb29sdGlwc0NvbnRhaW5lckNvbXBvbmVudCgpIHtcbiAgICAgICAgdGhpcy50b29sdGlwS2V5cyA9IFtdO1xuICAgICAgICB0aGlzLnRvb2x0aXBzTWFwID0ge307XG4gICAgfVxuICAgIENyb3NzaGFpclRvb2x0aXBzQ29udGFpbmVyQ29tcG9uZW50LnByb3RvdHlwZS5zaG93ID0gZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgdmFyIHRvb2x0aXBDb21wb25lbnRzID0gdGhpcy5jcm9zc2FoaXJUb29sdGlwQ29tcG9uZW50cy50b0FycmF5KCk7XG4gICAgICAgIHZhciBheGlzTmFtZSA9IGUuYXhpc05hbWU7XG4gICAgICAgIHZhciBheGlzSW5kZXggPSBlLmF4aXNJbmRleDtcbiAgICAgICAgZm9yICh2YXIgaWR4ID0gMDsgaWR4IDwgdG9vbHRpcENvbXBvbmVudHMubGVuZ3RoOyBpZHgrKykge1xuICAgICAgICAgICAgaWYgKHRvb2x0aXBDb21wb25lbnRzW2lkeF0ua2V5ID09PSBheGlzTmFtZSArIGF4aXNJbmRleCkge1xuICAgICAgICAgICAgICAgIHRvb2x0aXBDb21wb25lbnRzW2lkeF0uc2hvdyhlKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH07XG4gICAgQ3Jvc3NoYWlyVG9vbHRpcHNDb250YWluZXJDb21wb25lbnQucHJvdG90eXBlLmhpZGUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciB0b29sdGlwQ29tcG9uZW50cyA9IHRoaXMuY3Jvc3NhaGlyVG9vbHRpcENvbXBvbmVudHMudG9BcnJheSgpO1xuICAgICAgICBmb3IgKHZhciBpZHggPSAwOyBpZHggPCB0b29sdGlwQ29tcG9uZW50cy5sZW5ndGg7IGlkeCsrKSB7XG4gICAgICAgICAgICB0b29sdGlwQ29tcG9uZW50c1tpZHhdLmhpZGUoKTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KENyb3NzaGFpclRvb2x0aXBzQ29udGFpbmVyQ29tcG9uZW50LnByb3RvdHlwZSwgXCJhY3RpdmVcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnRvb2x0aXBLZXlzLmxlbmd0aCA+IDA7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIENyb3NzaGFpclRvb2x0aXBzQ29udGFpbmVyQ29tcG9uZW50LnByb3RvdHlwZS5jcmVhdGVDcm9zc2hhaXJUb29sdGlwcyA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIHZhciBuZXdNYXAgPSB0aGlzLm1hcFRvb2x0aXBzKG9wdGlvbnMpO1xuICAgICAgICB2YXIgbWFwID0gdGhpcy50b29sdGlwc01hcDtcbiAgICAgICAgZm9yICh2YXIga2V5IGluIG1hcCkge1xuICAgICAgICAgICAgaWYgKCFuZXdNYXBba2V5XSkge1xuICAgICAgICAgICAgICAgIHRoaXMucmVtb3ZlVG9vbHRpcChrZXkpO1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBtYXBba2V5XTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBmb3IgKHZhciBrZXkgaW4gbmV3TWFwKSB7XG4gICAgICAgICAgICBpZiAoIW1hcFtrZXldKSB7XG4gICAgICAgICAgICAgICAgbWFwW2tleV0gPSBuZXdNYXBba2V5XTtcbiAgICAgICAgICAgICAgICB0aGlzLnRvb2x0aXBLZXlzLnB1c2goa2V5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH07XG4gICAgQ3Jvc3NoYWlyVG9vbHRpcHNDb250YWluZXJDb21wb25lbnQucHJvdG90eXBlLnJlbW92ZVRvb2x0aXAgPSBmdW5jdGlvbiAoa2V5KSB7XG4gICAgICAgIHZhciBrZXlzID0gdGhpcy50b29sdGlwS2V5cztcbiAgICAgICAgZm9yICh2YXIgaWR4ID0gMDsgaWR4IDwga2V5cy5sZW5ndGg7IGlkeCsrKSB7XG4gICAgICAgICAgICBpZiAoa2V5c1tpZHhdID09PSBrZXkpIHtcbiAgICAgICAgICAgICAgICBrZXlzLnNwbGljZShpZHgsIDEpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfTtcbiAgICBDcm9zc2hhaXJUb29sdGlwc0NvbnRhaW5lckNvbXBvbmVudC5wcm90b3R5cGUubWFwVG9vbHRpcHMgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICB2YXIgbWFwID0ge307XG4gICAgICAgIGZvciAodmFyIGlkeCA9IDA7IGlkeCA8IEFYRVMubGVuZ3RoOyBpZHgrKykge1xuICAgICAgICAgICAgdmFyIHRvb2x0aXBzID0gdGhpcy5heGVzQ3Jvc3NoYWlyVG9vbHRpcE9wdGlvbnMob3B0aW9ucywgQVhFU1tpZHhdKTtcbiAgICAgICAgICAgIGZvciAodmFyIHRvb2x0aXBJZHggPSAwOyB0b29sdGlwSWR4IDwgdG9vbHRpcHMubGVuZ3RoOyB0b29sdGlwSWR4KyspIHtcbiAgICAgICAgICAgICAgICB2YXIgdG9vbHRpcCA9IHRvb2x0aXBzW3Rvb2x0aXBJZHhdO1xuICAgICAgICAgICAgICAgIG1hcFt0b29sdGlwLm5hbWUgKyB0b29sdGlwLmluZGV4XSA9IHRvb2x0aXA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG1hcDtcbiAgICB9O1xuICAgIENyb3NzaGFpclRvb2x0aXBzQ29udGFpbmVyQ29tcG9uZW50LnByb3RvdHlwZS5heGVzQ3Jvc3NoYWlyVG9vbHRpcE9wdGlvbnMgPSBmdW5jdGlvbiAob3B0aW9ucywgbmFtZSkge1xuICAgICAgICB2YXIgcmVzdWx0ID0gW107XG4gICAgICAgIGlmIChvcHRpb25zW25hbWVdKSB7XG4gICAgICAgICAgICB2YXIgYXhlcyA9IFtdLmNvbmNhdChvcHRpb25zW25hbWVdKTtcbiAgICAgICAgICAgIGZvciAodmFyIGlkeCA9IDA7IGlkeCA8IGF4ZXMubGVuZ3RoOyBpZHgrKykge1xuICAgICAgICAgICAgICAgIHZhciB0b29sdGlwID0gKGF4ZXNbaWR4XS5jcm9zc2hhaXIgfHwge30pLnRvb2x0aXA7XG4gICAgICAgICAgICAgICAgaWYgKHRvb2x0aXAgJiYgdG9vbHRpcC52aXNpYmxlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4OiBpZHgsXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBuYW1lXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH07XG4gICAgQ3Jvc3NoYWlyVG9vbHRpcHNDb250YWluZXJDb21wb25lbnQuZGVjb3JhdG9ycyA9IFtcbiAgICAgICAgeyB0eXBlOiBDb21wb25lbnQsIGFyZ3M6IFt7XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdG9yOiAna2VuZG8tY2hhcnQtY3Jvc3NoYWlyLXRvb2x0aXBzLWNvbnRhaW5lcicsXG4gICAgICAgICAgICAgICAgICAgIHRlbXBsYXRlOiBcIlxcbiAgICAgICAgPGtlbmRvLWNoYXJ0LWNyb3NzaGFpci10b29sdGlwICpuZ0Zvcj1cXFwibGV0IGtleSBvZiB0b29sdGlwS2V5c1xcXCIgW2tleV09XFxcImtleVxcXCIgW3BvcHVwU2V0dGluZ3NdPVxcXCJwb3B1cFNldHRpbmdzXFxcIj5cXG4gICAgICAgIDwva2VuZG8tY2hhcnQtY3Jvc3NoYWlyLXRvb2x0aXA+XFxuICAgIFwiXG4gICAgICAgICAgICAgICAgfSxdIH0sXG4gICAgXTtcbiAgICBDcm9zc2hhaXJUb29sdGlwc0NvbnRhaW5lckNvbXBvbmVudC5wcm9wRGVjb3JhdG9ycyA9IHtcbiAgICAgICAgcG9wdXBTZXR0aW5nczogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGNyb3NzYWhpclRvb2x0aXBDb21wb25lbnRzOiBbeyB0eXBlOiBWaWV3Q2hpbGRyZW4sIGFyZ3M6IFtDcm9zc2hhaXJUb29sdGlwQ29tcG9uZW50LF0gfV1cbiAgICB9O1xuICAgIHJldHVybiBDcm9zc2hhaXJUb29sdGlwc0NvbnRhaW5lckNvbXBvbmVudDtcbn0oKSk7XG5cbnZhciBnZXRUb3VjaCA9IGZ1bmN0aW9uIChkb21FdmVudCkge1xuICAgIHJldHVybiB7XG4gICAgICAgIHg6IHtcbiAgICAgICAgICAgIGxvY2F0aW9uOiBkb21FdmVudC5wYWdlWFxuICAgICAgICB9LFxuICAgICAgICB5OiB7XG4gICAgICAgICAgICBsb2NhdGlvbjogZG9tRXZlbnQucGFnZVlcbiAgICAgICAgfVxuICAgIH07XG59O1xudmFyIGV2ZW50QXJncyA9IGZ1bmN0aW9uIChlLCBwcmV2aW91c0FyZ3MpIHtcbiAgICB2YXIgcG9pbnRlcnMgPSBlLnBvaW50ZXJzO1xuICAgIHZhciBwb2ludGVyID0gcG9pbnRlcnNbMF07XG4gICAgdmFyIHhMb2NhdGlvbiA9IHBvaW50ZXIucGFnZVg7XG4gICAgdmFyIHlMb2NhdGlvbiA9IHBvaW50ZXIucGFnZVk7XG4gICAgdmFyIGRpc3RhbmNlID0gMDtcbiAgICBpZiAocG9pbnRlcnMubGVuZ3RoID4gMSkge1xuICAgICAgICB2YXIgcG9pbnRlcjEgPSBwb2ludGVyc1swXTtcbiAgICAgICAgdmFyIHBvaW50ZXIyID0gcG9pbnRlcnNbMV07XG4gICAgICAgIGRpc3RhbmNlID0gTWF0aC5zcXJ0KE1hdGgucG93KHBvaW50ZXIxLnBhZ2VYIC0gcG9pbnRlcjIucGFnZVgsIDIpICsgTWF0aC5wb3cocG9pbnRlcjEucGFnZVkgLSBwb2ludGVyMi5wYWdlWSwgMikpO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgICBkaXN0YW5jZTogZGlzdGFuY2UsXG4gICAgICAgIGV2ZW50OiBlLnNyY0V2ZW50LFxuICAgICAgICBwcmV2ZW50RGVmYXVsdDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9LFxuICAgICAgICB0YXJnZXQ6IGUudGFyZ2V0LFxuICAgICAgICB0b3VjaGVzOiBwb2ludGVycy5tYXAoZ2V0VG91Y2gpLFxuICAgICAgICB0eXBlOiBlLnR5cGUsXG4gICAgICAgIHg6IHtcbiAgICAgICAgICAgIGRlbHRhOiBwcmV2aW91c0FyZ3MgPyB4TG9jYXRpb24gLSBwcmV2aW91c0FyZ3MueC5sb2NhdGlvbiA6IDAsXG4gICAgICAgICAgICBpbml0aWFsRGVsdGE6IGUuZGVsdGFYLFxuICAgICAgICAgICAgbG9jYXRpb246IHhMb2NhdGlvbixcbiAgICAgICAgICAgIHN0YXJ0TG9jYXRpb246IHhMb2NhdGlvbiAtIGUuZGVsdGFYXG4gICAgICAgIH0sXG4gICAgICAgIHk6IHtcbiAgICAgICAgICAgIGRlbHRhOiBwcmV2aW91c0FyZ3MgPyB5TG9jYXRpb24gLSBwcmV2aW91c0FyZ3MueS5sb2NhdGlvbiA6IDAsXG4gICAgICAgICAgICBpbml0aWFsRGVsdGE6IGUuZGVsdGFZLFxuICAgICAgICAgICAgbG9jYXRpb246IHlMb2NhdGlvbixcbiAgICAgICAgICAgIHN0YXJ0TG9jYXRpb246IHlMb2NhdGlvbiAtIGUuZGVsdGFZXG4gICAgICAgIH1cbiAgICB9O1xufTtcbmZ1bmN0aW9uIHNob3VsZEJpbmRHcm91cChncm91cE5hbWVzLCBldmVudHMpIHtcbiAgICBmb3IgKHZhciBpZHggPSAwOyBpZHggPCBncm91cE5hbWVzLmxlbmd0aDsgaWR4KyspIHtcbiAgICAgICAgaWYgKGV2ZW50c1tncm91cE5hbWVzW2lkeF1dKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG59XG52YXIgZXZlbnRHcm91cHMgPSBbe1xuICAgICAgICBlbmQ6ICdwYW5lbmQnLFxuICAgICAgICBtb3ZlOiAncGFubW92ZScsXG4gICAgICAgIHN0YXJ0OiAncGFuc3RhcnQnXG4gICAgfSwge1xuICAgICAgICBnZXN0dXJlY2hhbmdlOiAncGluY2htb3ZlJyxcbiAgICAgICAgZ2VzdHVyZWVuZDogJ3BpbmNoZW5kJyxcbiAgICAgICAgZ2VzdHVyZXN0YXJ0OiAncGluY2hzdGFydCdcbiAgICB9LCB7XG4gICAgICAgIHByZXNzOiAncHJlc3MnXG4gICAgfSwge1xuICAgICAgICB0YXA6ICd0YXAnXG4gICAgfV07XG4vKipcbiAqIEBoaWRkZW5cbiAqL1xudmFyIERvbUV2ZW50cyA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBEb21FdmVudHMoaGFtbWVySW5zdGFuY2UsIGV2ZW50cykge1xuICAgICAgICB0aGlzLmhhbW1lckluc3RhbmNlID0gaGFtbWVySW5zdGFuY2U7XG4gICAgICAgIHRoaXMuZXZlbnRIYW5kbGVycyA9IHt9O1xuICAgICAgICB0aGlzLnRhcCA9IHRoaXMudGFwLmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMucHJlc3MgPSB0aGlzLnByZXNzLmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMucGFuc3RhcnQgPSB0aGlzLnBhbnN0YXJ0LmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMucGFubW92ZSA9IHRoaXMucGFubW92ZS5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLnBhbmVuZCA9IHRoaXMucGFuZW5kLmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMucGluY2hzdGFydCA9IHRoaXMucGluY2hzdGFydC5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLnBpbmNobW92ZSA9IHRoaXMucGluY2htb3ZlLmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMucGluY2hlbmQgPSB0aGlzLnBpbmNoZW5kLmJpbmQodGhpcyk7XG4gICAgICAgIGlmIChldmVudHMpIHtcbiAgICAgICAgICAgIHRoaXMuYmluZChldmVudHMpO1xuICAgICAgICB9XG4gICAgfVxuICAgIERvbUV2ZW50cy5wcm90b3R5cGUudGFwID0gZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgdGhpcy50cmlnZ2VyKCd0YXAnLCBlKTtcbiAgICB9O1xuICAgIERvbUV2ZW50cy5wcm90b3R5cGUucHJlc3MgPSBmdW5jdGlvbiAoZSkge1xuICAgICAgICB0aGlzLnRyaWdnZXIoJ3ByZXNzJywgZSk7XG4gICAgfTtcbiAgICBEb21FdmVudHMucHJvdG90eXBlLnBhbnN0YXJ0ID0gZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgZGVsZXRlIHRoaXMucHJldmlvdXM7XG4gICAgICAgIHRoaXMucHJldmlvdXMgPSB0aGlzLnRyaWdnZXIoJ3N0YXJ0JywgZSk7XG4gICAgfTtcbiAgICBEb21FdmVudHMucHJvdG90eXBlLnBhbm1vdmUgPSBmdW5jdGlvbiAoZSkge1xuICAgICAgICB0aGlzLnByZXZpb3VzID0gdGhpcy50cmlnZ2VyKCdtb3ZlJywgZSk7XG4gICAgfTtcbiAgICBEb21FdmVudHMucHJvdG90eXBlLnBhbmVuZCA9IGZ1bmN0aW9uIChlKSB7XG4gICAgICAgIHRoaXMudHJpZ2dlcignZW5kJywgZSk7XG4gICAgICAgIGRlbGV0ZSB0aGlzLnByZXZpb3VzO1xuICAgIH07XG4gICAgRG9tRXZlbnRzLnByb3RvdHlwZS5waW5jaHN0YXJ0ID0gZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgdGhpcy50cmlnZ2VyKCdnZXN0dXJlc3RhcnQnLCBlKTtcbiAgICB9O1xuICAgIERvbUV2ZW50cy5wcm90b3R5cGUucGluY2htb3ZlID0gZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgdGhpcy50cmlnZ2VyKCdnZXN0dXJlY2hhbmdlJywgZSk7XG4gICAgfTtcbiAgICBEb21FdmVudHMucHJvdG90eXBlLnBpbmNoZW5kID0gZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgdGhpcy50cmlnZ2VyKCdnZXN0dXJlZW5kJywgZSk7XG4gICAgfTtcbiAgICBEb21FdmVudHMucHJvdG90eXBlLnRyaWdnZXIgPSBmdW5jdGlvbiAobmFtZSwgZSkge1xuICAgICAgICB2YXIgYXJncyA9IGV2ZW50QXJncyhlLCB0aGlzLnByZXZpb3VzKTtcbiAgICAgICAgaWYgKHRoaXMuZXZlbnRIYW5kbGVyc1tuYW1lXSkge1xuICAgICAgICAgICAgdGhpcy5ldmVudEhhbmRsZXJzW25hbWVdKGFyZ3MpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhcmdzO1xuICAgIH07XG4gICAgRG9tRXZlbnRzLnByb3RvdHlwZS5iaW5kID0gZnVuY3Rpb24gKGV2ZW50cykge1xuICAgICAgICBpZiAoZXZlbnRzID09PSB2b2lkIDApIHsgZXZlbnRzID0ge307IH1cbiAgICAgICAgdGhpcy51bmJpbmQoKTtcbiAgICAgICAgdGhpcy5ldmVudEhhbmRsZXJzID0gZXZlbnRzO1xuICAgICAgICBmb3IgKHZhciBpZHggPSAwOyBpZHggPCBldmVudEdyb3Vwcy5sZW5ndGg7IGlkeCsrKSB7XG4gICAgICAgICAgICB2YXIgZXZlbnRHcm91cCA9IGV2ZW50R3JvdXBzW2lkeF07XG4gICAgICAgICAgICB2YXIgZ3JvdXBOYW1lcyA9IE9iamVjdC5rZXlzKGV2ZW50R3JvdXApO1xuICAgICAgICAgICAgaWYgKHNob3VsZEJpbmRHcm91cChncm91cE5hbWVzLCBldmVudHMpKSB7XG4gICAgICAgICAgICAgICAgZm9yICh2YXIgbmFtZUlkeCA9IDA7IG5hbWVJZHggPCBncm91cE5hbWVzLmxlbmd0aDsgbmFtZUlkeCsrKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBuYW1lXzEgPSBldmVudEdyb3VwW2dyb3VwTmFtZXNbbmFtZUlkeF1dO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbW1lckluc3RhbmNlLm9uKG5hbWVfMSwgdGhpc1tuYW1lXzFdKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9O1xuICAgIERvbUV2ZW50cy5wcm90b3R5cGUudW5iaW5kID0gZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAodGhpcy5oYW1tZXJJbnN0YW5jZSkge1xuICAgICAgICAgICAgdGhpcy5oYW1tZXJJbnN0YW5jZS5vZmYoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmV2ZW50SGFuZGxlcnMgPSB7fTtcbiAgICB9O1xuICAgIERvbUV2ZW50cy5wcm90b3R5cGUuZGVzdHJveSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKHRoaXMuaGFtbWVySW5zdGFuY2UpIHtcbiAgICAgICAgICAgIHRoaXMuaGFtbWVySW5zdGFuY2UuZGVzdHJveSgpO1xuICAgICAgICAgICAgZGVsZXRlIHRoaXMuaGFtbWVySW5zdGFuY2U7XG4gICAgICAgIH1cbiAgICAgICAgZGVsZXRlIHRoaXMuZXZlbnRIYW5kbGVycztcbiAgICB9O1xuICAgIERvbUV2ZW50cy5wcm90b3R5cGUudG9nZ2xlRHJhZyA9IGZ1bmN0aW9uIChlbmFibGUpIHtcbiAgICAgICAgdGhpcy50b2dnbGUoJ3BhbicsIGVuYWJsZSk7XG4gICAgfTtcbiAgICBEb21FdmVudHMucHJvdG90eXBlLnRvZ2dsZVpvb20gPSBmdW5jdGlvbiAoZW5hYmxlKSB7XG4gICAgICAgIHRoaXMudG9nZ2xlKCdwaW5jaCcsIGVuYWJsZSk7XG4gICAgfTtcbiAgICBEb21FdmVudHMucHJvdG90eXBlLnRvZ2dsZSA9IGZ1bmN0aW9uIChyZWNvZ25pemVyLCBlbmFibGUpIHtcbiAgICAgICAgaWYgKHRoaXMuaGFtbWVySW5zdGFuY2UpIHtcbiAgICAgICAgICAgIHZhciBpbnN0YW5jZVJlY29nbml6ZXIgPSB0aGlzLmhhbW1lckluc3RhbmNlLmdldChyZWNvZ25pemVyKTtcbiAgICAgICAgICAgIGluc3RhbmNlUmVjb2duaXplci5zZXQoe1xuICAgICAgICAgICAgICAgIGVuYWJsZTogZW5hYmxlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgcmV0dXJuIERvbUV2ZW50cztcbn0oKSk7XG5cbnZhciBNSVNTSU5HX0hBTU1FUl9NRVNTQUdFID0gJ0hhbW1lcmpzIGlzIG5vdCBsb2FkZWQuJyArXG4gICAgJ1NvbHV0aW9uOiBodHRwOi8vd3d3LnRlbGVyaWsuY29tL2tlbmRvLWFuZ3VsYXItdWkvY29tcG9uZW50cy9jaGFydHMvdHJvdWJsZXNob290aW5nLyN0b2MtaGFtbWVyanMtaXMtbm90LWxvYWRlZCc7XG4vKipcbiAqIEBoaWRkZW5cbiAqL1xudmFyIERvbUV2ZW50c0J1aWxkZXIkMSA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBEb21FdmVudHNCdWlsZGVyJCQxKCkge1xuICAgIH1cbiAgICBEb21FdmVudHNCdWlsZGVyJCQxLmNyZWF0ZSA9IGZ1bmN0aW9uIChlbGVtZW50LCBldmVudHMpIHtcbiAgICAgICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICB2YXIgSEFNTUVSID0gd2luZG93LkhhbW1lcjtcbiAgICAgICAgICAgIGlmICghSEFNTUVSKSB7XG4gICAgICAgICAgICAgICAgaWYgKGlzRGV2TW9kZSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihNSVNTSU5HX0hBTU1FUl9NRVNTQUdFKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFyIGhhbW1lckluc3RhbmNlID0gbmV3IEhBTU1FUihlbGVtZW50LCB7XG4gICAgICAgICAgICAgICAgcmVjb2duaXplcnM6IFtcbiAgICAgICAgICAgICAgICAgICAgW0hBTU1FUi5UYXBdLFxuICAgICAgICAgICAgICAgICAgICBbSEFNTUVSLlBhbl0sXG4gICAgICAgICAgICAgICAgICAgIFtIQU1NRVIuUGluY2hdLFxuICAgICAgICAgICAgICAgICAgICBbSEFNTUVSLlByZXNzLCB7IHRpbWU6IDAgfV1cbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiBuZXcgRG9tRXZlbnRzKGhhbW1lckluc3RhbmNlLCBldmVudHMpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICByZXR1cm4gRG9tRXZlbnRzQnVpbGRlciQkMTtcbn0oKSk7XG5cbnZhciBkYXRlQ2F0ZWdvcnlBeGlzRm9ybWF0cyA9IERhdGVDYXRlZ29yeUF4aXMucHJvdG90eXBlLm9wdGlvbnMubGFiZWxzLmRhdGVGb3JtYXRzO1xudmFyIGRhdGVWYWx1ZUF4aXNGb3JtYXRzID0gRGF0ZVZhbHVlQXhpcy5wcm90b3R5cGUub3B0aW9ucy5sYWJlbHMuZGF0ZUZvcm1hdHM7XG52YXIgZGF0ZUZvcm1hdHMgPSB7XG4gICAgbWlsbGlzZWNvbmRzOiBcIkhIOm1tOnNzLlNTU1wiLFxuICAgIHNlY29uZHM6IHsgdGltZTogJ21lZGl1bScgfSxcbiAgICBtaW51dGVzOiB7IHRpbWU6ICdzaG9ydCcgfSxcbiAgICBob3VyczogeyB0aW1lOiAnc2hvcnQnIH0sXG4gICAgZGF5czogeyBza2VsZXRvbjogJ01kJyB9LFxuICAgIHdlZWtzOiB7IHNrZWxldG9uOiAnTWQnIH0sXG4gICAgbW9udGhzOiB7IHNrZWxldG9uOiAneXlNTU0nIH0sXG4gICAgeWVhcnM6IHsgc2tlbGV0b246ICd5JyB9XG59O1xuT2JqZWN0LmFzc2lnbihkYXRlQ2F0ZWdvcnlBeGlzRm9ybWF0cywgZGF0ZUZvcm1hdHMpO1xuT2JqZWN0LmFzc2lnbihkYXRlVmFsdWVBeGlzRm9ybWF0cywgZGF0ZUZvcm1hdHMpO1xuRG9tRXZlbnRzQnVpbGRlci5yZWdpc3RlcihEb21FdmVudHNCdWlsZGVyJDEpO1xuXG5mdW5jdGlvbiBoYXNPYnNlcnZlcnMoZW1pdHRlcikge1xuICAgIHJldHVybiBlbWl0dGVyLm9ic2VydmVycy5sZW5ndGggPiAwO1xufVxuLyoqXG4gKiBUaGUgcm9vdCBDaGFydCBjb21wb25lbnQuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbiAqXG4gKiBfQENvbXBvbmVudCh7XG4gKiAgIHNlbGVjdG9yOiAnbXktYXBwJyxcbiAqICAgdGVtcGxhdGU6IGBcbiAqICAgICA8YnV0dG9uIChjbGljayk9XCJ0b2dnbGVMZWdlbmQoKVwiPlRvZ2dsZSBMZWdlbmQ8L2J1dHRvbj5cbiAqICAgICA8YnV0dG9uIChjbGljayk9XCJ0b2dnbGVTZXJpZXMoKVwiPlRvZ2dsZSBTZXJpZXM8L2J1dHRvbj5cbiAqICAgICA8a2VuZG8tY2hhcnQ+XG4gKiAgICAgICA8a2VuZG8tY2hhcnQtbGVnZW5kIFt2aXNpYmxlXT1cImxlZ2VuZFZpc2libGVcIj5cbiAqICAgICAgIDwva2VuZG8tY2hhcnQtbGVnZW5kPlxuICogICAgICAgPGtlbmRvLWNoYXJ0LXNlcmllcz5cbiAqICAgICAgICAgPGtlbmRvLWNoYXJ0LXNlcmllcy1pdGVtICpuZ0lmPVwic2VyaWVzVmlzaWJsZVwiIG5hbWU9XCJTZXJpZXMgIzFcIlxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJsaW5lXCIgW2RhdGFdPVwiWzEsIDIsIDNdXCI+XG4gKiAgICAgICAgIDwva2VuZG8tY2hhcnQtc2VyaWVzLWl0ZW0+XG4gKiAgICAgICA8L2tlbmRvLWNoYXJ0LXNlcmllcz5cbiAqICAgICA8L2tlbmRvLWNoYXJ0PlxuICogICBgXG4gKiB9KVxuICogY2xhc3MgQXBwQ29tcG9uZW50IHtcbiAqICAgcHVibGljIGxlZ2VuZFZpc2libGU6IGJvb2xlYW4gPSB0cnVlO1xuICogICBwdWJsaWMgc2VyaWVzVmlzaWJsZTogYm9vbGVhbiA9IHRydWU7XG4gKlxuICogICBwdWJsaWMgdG9nZ2xlU2VyaWVzKCk6IHZvaWQge1xuICogICAgIHRoaXMuc2VyaWVzVmlzaWJsZSA9ICF0aGlzLnNlcmllc1Zpc2libGU7XG4gKiAgIH1cbiAqXG4gKiAgIHB1YmxpYyB0b2dnbGVMZWdlbmQoKTogdm9pZCB7XG4gKiAgICAgdGhpcy5sZWdlbmRWaXNpYmxlID0gIXRoaXMubGVnZW5kVmlzaWJsZTtcbiAqICAgfVxuICogfVxuICpcbiAqIGBgYFxuICovXG52YXIgQ2hhcnRDb21wb25lbnQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKENoYXJ0Q29tcG9uZW50LCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIENoYXJ0Q29tcG9uZW50KGNvbmZpZ3VyYXRpb25TZXJ2aWNlLCB0aGVtZVNlcnZpY2UsIGVsZW1lbnQsIGludGwsIGxvY2FsaXphdGlvblNlcnZpY2UsIG5nWm9uZSwgaW5zdGFuY2VFdmVudFNlcnZpY2UsIGNoYW5nZURldGVjdG9yLCByZW5kZXJlcikge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBjb25maWd1cmF0aW9uU2VydmljZSkgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuY29uZmlndXJhdGlvblNlcnZpY2UgPSBjb25maWd1cmF0aW9uU2VydmljZTtcbiAgICAgICAgX3RoaXMudGhlbWVTZXJ2aWNlID0gdGhlbWVTZXJ2aWNlO1xuICAgICAgICBfdGhpcy5lbGVtZW50ID0gZWxlbWVudDtcbiAgICAgICAgX3RoaXMuaW50bCA9IGludGw7XG4gICAgICAgIF90aGlzLmxvY2FsaXphdGlvblNlcnZpY2UgPSBsb2NhbGl6YXRpb25TZXJ2aWNlO1xuICAgICAgICBfdGhpcy5uZ1pvbmUgPSBuZ1pvbmU7XG4gICAgICAgIF90aGlzLmluc3RhbmNlRXZlbnRTZXJ2aWNlID0gaW5zdGFuY2VFdmVudFNlcnZpY2U7XG4gICAgICAgIF90aGlzLmNoYW5nZURldGVjdG9yID0gY2hhbmdlRGV0ZWN0b3I7XG4gICAgICAgIF90aGlzLnJlbmRlcmVyID0gcmVuZGVyZXI7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBGaXJlcyB3aGVuIGEgbGVnZW5kIGl0ZW0gaXMgY2xpY2tlZCBiZWZvcmUgdGhlIHNlbGVjdGVkIHNlcmllcyB2aXNpYmlsaXR5IGlzIHRvZ2dsZWQuXG4gICAgICAgICAqIENhbiBiZSBwcmV2ZW50ZWQuXG4gICAgICAgICAqL1xuICAgICAgICBfdGhpcy5sZWdlbmRJdGVtQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBMaW1pdHMgdGhlIGF1dG9tYXRpYyByZXNpemluZyBvZiB0aGUgQ2hhcnQuIFNldHMgdGhlIG1heGltdW0gbnVtYmVyIG9mIHRpbWVzIHBlciBzZWNvbmRcbiAgICAgICAgICogdGhhdCB0aGUgY29tcG9uZW50IHJlZHJhd3MgaXRzIGNvbnRlbnQgd2hlbiB0aGUgc2l6ZSBvZiBpdHMgY29udGFpbmVyIGNoYW5nZXMuXG4gICAgICAgICAqIERlZmF1bHRzIHRvIGAxMGAuIFRvIGRpc2FibGUgdGhlIGF1dG9tYXRpYyByZXNpemluZywgc2V0IGl0IHRvIGAwYC5cbiAgICAgICAgICpcbiAgICAgICAgICogQGV4YW1wbGVcbiAgICAgICAgICogYGBgdHNcbiAgICAgICAgICogX0BDb21wb25lbnQoe1xuICAgICAgICAgKiAgICAgc2VsZWN0b3I6ICdteS1hcHAnLFxuICAgICAgICAgKiAgICAgdGVtcGxhdGU6IGBcbiAgICAgICAgICogICAgICAgICA8a2VuZG8tY2hhcnQgW3Jlc2l6ZVJhdGVMaW1pdF09XCIyXCI+XG4gICAgICAgICAqIDwhLS0gICAgICAgICAgICAgICAgIF5eXl5eXl5eXl5eXl5eXl5eXl5eXl5cbiAgICAgICAgICogICAgICAgV2lsbCB1cGRhdGUgdGhlIHNpemUgb2YgdGhlIENoYXJ0IHVwIHRvIHR3byB0aW1lcyBhIHNlY29uZC5cbiAgICAgICAgICogICAgICAgUmVzaXplIHRoZSBQbHVua3IgcGFuZSBvciB3aW5kb3cgdG8gdHJ5IGl0IG91dC5cbiAgICAgICAgICogLS0+XG4gICAgICAgICAqICAgICAgICAgIDxrZW5kby1jaGFydC1zZXJpZXM+XG4gICAgICAgICAqICAgICAgICAgICAgPGtlbmRvLWNoYXJ0LXNlcmllcy1pdGVtIFtkYXRhXT1cInNlcmllc0RhdGFcIj5cbiAgICAgICAgICogICAgICAgICAgIDwva2VuZG8tY2hhcnQtc2VyaWVzLWl0ZW0+XG4gICAgICAgICAqICAgICAgICAgPC9rZW5kby1jaGFydC1zZXJpZXM+XG4gICAgICAgICAqICAgICAgIDwva2VuZG8tY2hhcnQ+XG4gICAgICAgICAqICAgYFxuICAgICAgICAgKiB9KVxuICAgICAgICAgKiBleHBvcnQgY2xhc3MgQXBwQ29tcG9uZW50IHtcbiAgICAgICAgICogICAgc2VyaWVzRGF0YTogbnVtYmVyW10gPSBbMSwgMiwgMywgNV07XG4gICAgICAgICAqIH1cbiAgICAgICAgICogYGBgXG4gICAgICAgICAqL1xuICAgICAgICBfdGhpcy5yZXNpemVSYXRlTGltaXQgPSAxMDtcbiAgICAgICAgX3RoaXMudGhlbWUgPSBudWxsO1xuICAgICAgICBfdGhpcy5zdXBwcmVzc1RyYW5zaXRpb25zID0gZmFsc2U7XG4gICAgICAgIF90aGlzLnJ0bCA9IGZhbHNlO1xuICAgICAgICBfdGhpcy5ob3N0Q2xhc3NlcyA9IFsnay1jaGFydCcsICdrLXdpZGdldCddO1xuICAgICAgICBfdGhpcy50aGVtZVNlcnZpY2UubG9hZFRoZW1lKCk7XG4gICAgICAgIF90aGlzLnJlZnJlc2hXYWl0KCk7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgQ2hhcnRDb21wb25lbnQucHJvdG90eXBlLm5nT25Jbml0ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICBpZiAodGhpcy5lbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLmhvc3RDbGFzc2VzLmZvckVhY2goZnVuY3Rpb24gKG5hbWUpIHtcbiAgICAgICAgICAgICAgICBfdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhfdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsIG5hbWUpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LCAncG9zaXRpb24nLCAncmVsYXRpdmUnKTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgQ2hhcnRDb21wb25lbnQucHJvdG90eXBlLm5nQWZ0ZXJWaWV3SW5pdCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcbiAgICAgICAgaWYgKHRoaXMuY2FuUmVuZGVyKSB7XG4gICAgICAgICAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcihmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgdmFyIGNoYXJ0TW91c2VsZWF2ZSA9IF90aGlzLnJlbmRlcmVyLmxpc3RlbihfdGhpcy5zdXJmYWNlRWxlbWVudC5uYXRpdmVFbGVtZW50LCAnbW91c2VsZWF2ZScsIF90aGlzLmNoYXJ0TW91c2VsZWF2ZS5iaW5kKF90aGlzKSk7XG4gICAgICAgICAgICAgICAgX3RoaXMuZG9tU3Vic2NyaXB0aW9ucyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgY2hhcnRNb3VzZWxlYXZlKCk7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2V0RGlyZWN0aW9uKCk7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucyA9IHRoaXMuaW50bC5jaGFuZ2VzLnN1YnNjcmliZSh0aGlzLmludGxDaGFuZ2UuYmluZCh0aGlzKSk7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQodGhpcy5sb2NhbGl6YXRpb25TZXJ2aWNlLmNoYW5nZXMuc3Vic2NyaWJlKHRoaXMucnRsQ2hhbmdlLmJpbmQodGhpcykpKTtcbiAgICB9O1xuICAgIENoYXJ0Q29tcG9uZW50LnByb3RvdHlwZS5uZ0FmdGVyVmlld0NoZWNrZWQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIGlmICh0aGlzLmluc3RhbmNlICYmIHRoaXMuYXV0b1Jlc2l6ZSkge1xuICAgICAgICAgICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIGNsZWFyVGltZW91dChfdGhpcy5yZXNpemVUaW1lb3V0KTtcbiAgICAgICAgICAgICAgICBfdGhpcy5yZXNpemVUaW1lb3V0ID0gc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIF90aGlzLnJlc2l6ZSgpO1xuICAgICAgICAgICAgICAgIH0sIDApO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIENoYXJ0Q29tcG9uZW50LnByb3RvdHlwZS5uZ09uQ2hhbmdlcyA9IGZ1bmN0aW9uIChjaGFuZ2VzKSB7XG4gICAgICAgIHZhciBzdG9yZSA9IHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2Uuc3RvcmU7XG4gICAgICAgIGNvcHlDaGFuZ2VzKGNoYW5nZXMsIHN0b3JlKTtcbiAgICAgICAgc3RvcmUucG9wdXBTZXR0aW5ncyA9IG51bGw7XG4gICAgICAgIHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2UucHVzaChzdG9yZSk7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBVcGRhdGVzIHRoZSBjb21wb25lbnQgZmllbGRzIHdpdGggdGhlIHNwZWNpZmllZCB2YWx1ZXMgYW5kIHJlZnJlc2hlcyB0aGUgQ2hhcnQuXG4gICAgICpcbiAgICAgKiBVc2UgdGhpcyBtZXRob2Qgd2hlbiB0aGUgY29uZmlndXJhdGlvbiB2YWx1ZXMgY2Fubm90IGJlIHNldCB0aHJvdWdoIHRoZSB0ZW1wbGF0ZS5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgdHMtbm8tcnVuXG4gICAgICogY2hhcnQubm90aWZ5Q2hhbmdlcyh7IHRpdGxlOiB7IHRleHQ6ICdOZXcgVGl0bGUnIH0gfSk7XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY2hhbmdlcyBBbiBvYmplY3QgY29udGFpbmluZyB0aGUgdXBkYXRlZCBpbnB1dCBmaWVsZHMuXG4gICAgICovXG4gICAgQ2hhcnRDb21wb25lbnQucHJvdG90eXBlLm5vdGlmeUNoYW5nZXMgPSBmdW5jdGlvbiAoY2hhbmdlcykge1xuICAgICAgICB0aGlzLm5nT25DaGFuZ2VzKHRvU2ltcGxlQ2hhbmdlcyhjaGFuZ2VzKSk7XG4gICAgfTtcbiAgICBDaGFydENvbXBvbmVudC5wcm90b3R5cGUubmdPbkRlc3Ryb3kgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHRoaXMuZGVzdHJveWVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgaWYgKHRoaXMuZG9tU3Vic2NyaXB0aW9ucykge1xuICAgICAgICAgICAgdGhpcy5kb21TdWJzY3JpcHRpb25zKCk7XG4gICAgICAgICAgICB0aGlzLmRvbVN1YnNjcmlwdGlvbnMgPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmluc3RhbmNlKSB7XG4gICAgICAgICAgICB0aGlzLmluc3RhbmNlLmRlc3Ryb3koKTtcbiAgICAgICAgICAgIHRoaXMuaW5zdGFuY2UgPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnN1YnNjcmlwdGlvbnMpIHtcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgICAgIGNsZWFyVGltZW91dCh0aGlzLnJlc2l6ZVRpbWVvdXQpO1xuICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5yZWRyYXdUaW1lb3V0KTtcbiAgICB9O1xuICAgIENoYXJ0Q29tcG9uZW50LnByb3RvdHlwZS5jcmVhdGVJbnN0YW5jZSA9IGZ1bmN0aW9uIChlbGVtZW50LCBvYnNlcnZlcikge1xuICAgICAgICB0aGlzLmluc3RhbmNlID0gbmV3IENoYXJ0KGVsZW1lbnQsIHRoaXMub3B0aW9ucywgdGhpcy50aGVtZSwge1xuICAgICAgICAgICAgaW50bFNlcnZpY2U6IHRoaXMuaW50bCxcbiAgICAgICAgICAgIG9ic2VydmVyOiBvYnNlcnZlcixcbiAgICAgICAgICAgIHJ0bDogdGhpcy5ydGwsXG4gICAgICAgICAgICBzZW5kZXI6IHRoaXNcbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBFeHBvcnRzIHRoZSBDaGFydCBhcyBhbiBpbWFnZS4gVGhlIGV4cG9ydCBvcGVyYXRpb24gaXMgYXN5bmNocm9ub3VzIGFuZCByZXR1cm5zIGEgcHJvbWlzZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7SW1hZ2VFeHBvcnRPcHRpb25zfSBvcHRpb25zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBleHBvcnRlZCBpbWFnZS5cbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZTxzdHJpbmc+fSAtIEEgcHJvbWlzZSB0aGF0IHdpbGwgYmUgcmVzb2x2ZWQgd2l0aCBhIFBORyBpbWFnZSBlbmNvZGVkIGFzIGEgRGF0YSBVUkkuXG4gICAgICovXG4gICAgQ2hhcnRDb21wb25lbnQucHJvdG90eXBlLmV4cG9ydEltYWdlID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgaWYgKG9wdGlvbnMgPT09IHZvaWQgMCkgeyBvcHRpb25zID0ge307IH1cbiAgICAgICAgcmV0dXJuIGV4cG9ydEltYWdlKHRoaXMuZXhwb3J0VmlzdWFsKG9wdGlvbnMpLCBvcHRpb25zKTtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEV4cG9ydHMgdGhlIENoYXJ0IGFzIGFuIFNWRyBkb2N1bWVudC4gVGhlIGV4cG9ydCBvcGVyYXRpb24gaXMgYXN5bmNocm9ub3VzIGFuZCByZXR1cm5zIGEgcHJvbWlzZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBleHBvcnRlZCBmaWxlLlxuICAgICAqIEByZXR1cm5zIC0gQSBwcm9taXNlIHRoYXQgd2lsbCBiZSByZXNvbHZlZCB3aXRoIGFuIFNWRyBkb2N1bWVudCB0aGF0IGlzIGVuY29kZWQgYXMgYSBEYXRhIFVSSS5cbiAgICAgKi9cbiAgICBDaGFydENvbXBvbmVudC5wcm90b3R5cGUuZXhwb3J0U1ZHID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgaWYgKG9wdGlvbnMgPT09IHZvaWQgMCkgeyBvcHRpb25zID0ge307IH1cbiAgICAgICAgcmV0dXJuIGV4cG9ydFNWRyh0aGlzLmV4cG9ydFZpc3VhbChvcHRpb25zKSwgb3B0aW9ucyk7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBFeHBvcnRzIHRoZSBDaGFydCBhcyBhIERyYXdpbmcgYFNjZW5lYC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBleHBvcnQgb3BlcmF0aW9uLlxuICAgICAqIEByZXR1cm5zIC0gVGhlIHJvb3QgR3JvdXAgb2YgdGhlIHNjZW5lLlxuICAgICAqL1xuICAgIENoYXJ0Q29tcG9uZW50LnByb3RvdHlwZS5leHBvcnRWaXN1YWwgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7IG9wdGlvbnMgPSB7fTsgfVxuICAgICAgICByZXR1cm4gdGhpcy5pbnN0YW5jZS5leHBvcnRWaXN1YWwob3B0aW9ucyk7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBheGlzIHdpdGggdGhlIHNwZWNpZmllZCBuYW1lLlxuICAgICAqXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IG5hbWUgLSBUaGUgYXhpcyBuYW1lLlxuICAgICAqIEByZXR1cm5zIHtDaGFydEF4aXN9IC0gVGhlIGF4aXMgd2l0aCBhIGNvcnJlc3BvbmRpbmcgbmFtZS5cbiAgICAgKi9cbiAgICBDaGFydENvbXBvbmVudC5wcm90b3R5cGUuZmluZEF4aXNCeU5hbWUgPSBmdW5jdGlvbiAobmFtZSkge1xuICAgICAgICBpZiAodGhpcy5pbnN0YW5jZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaW5zdGFuY2UuZmluZEF4aXNCeU5hbWUobmFtZSk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIHBhbmUgYXQgdGhlIHNwZWNpZmllZCBpbmRleC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleCAtIFRoZSBwYW5lIGluZGV4LlxuICAgICAqIEByZXR1cm5zIHtDaGFydFBhbmV9IC0gVGhlIHBhbmUgYXQgdGhlIHNwZWNpZmllZCBpbmRleC5cbiAgICAgKi9cbiAgICBDaGFydENvbXBvbmVudC5wcm90b3R5cGUuZmluZFBhbmVCeUluZGV4ID0gZnVuY3Rpb24gKGluZGV4KSB7XG4gICAgICAgIGlmICh0aGlzLmluc3RhbmNlKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5pbnN0YW5jZS5maW5kUGFuZUJ5SW5kZXgoaW5kZXgpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBwYW5lIHdpdGggdGhlIHNwZWNpZmllZCBuYW1lLlxuICAgICAqXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IG5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgcGFuZS5cbiAgICAgKiBAcmV0dXJucyB7Q2hhcnRQYW5lfSAtIFRoZSBwYW5lIHdpdGggdGhlIHByb3ZpZGVkIG5hbWUuXG4gICAgICovXG4gICAgQ2hhcnRDb21wb25lbnQucHJvdG90eXBlLmZpbmRQYW5lQnlOYW1lID0gZnVuY3Rpb24gKG5hbWUpIHtcbiAgICAgICAgaWYgKHRoaXMuaW5zdGFuY2UpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmluc3RhbmNlLmZpbmRQYW5lQnlOYW1lKG5hbWUpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBwbG90IGFyZWEgb2YgdGhlIENoYXJ0LlxuICAgICAqIEByZXR1cm5zIHtDaGFydFBsb3RBcmVhfSAtIFRoZSBwbG90IGFyZWEgb2YgdGhlIENoYXJ0LlxuICAgICAqL1xuICAgIENoYXJ0Q29tcG9uZW50LnByb3RvdHlwZS5nZXRQbG90QXJlYSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKHRoaXMuaW5zdGFuY2UpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmluc3RhbmNlLnBsb3RBcmVhKCk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEhpZ2hsaWdodHMgdGhlIHNlcmllcyBwb2ludHMgb3IgdGhlIHNlZ21lbnRzIG9mIGEgUGllLCBEb251dCwgb3IgRnVubmVsIGNoYXJ0cy5cbiAgICAgKlxuICAgICAqIEluIHRoZSBmb2xsb3dpbmcgZXhhbXBsZSwgdGhlIGNhbGxiYWNrIGlzIGV2YWx1YXRlZCBmb3IgZWFjaCBkYXRhIHBvaW50LlxuICAgICAqIElmIHRoZSBmdW5jdGlvbiByZXR1cm5zIGB0cnVlYCwgdGhlIHBvaW50IGlzIGhpZ2hsaWdodGVkLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGB0c1xuICAgICAqIGltcG9ydCB7IENvbXBvbmVudCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG4gICAgICogaW1wb3J0IHsgUGxvdEJhbmQsIENoYXJ0Q29tcG9uZW50IH0gZnJvbSAnQHByb2dyZXNzL2tlbmRvLWFuZ3VsYXItY2hhcnRzJztcbiAgICAgKlxuICAgICAqIF9AQ29tcG9uZW50KHtcbiAgICAgKiAgc2VsZWN0b3I6ICdteS1hcHAnLFxuICAgICAqICB0ZW1wbGF0ZTogYFxuICAgICAqICAgIDxidXR0b24gKGNsaWNrKT1cInRvZ2dsZUhpZ2hsaWdodCgpXCI+VG9nZ2xlIGhpZ2hsaWdodCBmb3IgR29vZ2xlPC9idXR0b24+XG4gICAgICogICAgPGtlbmRvLWNoYXJ0ICNjaGFydD5cbiAgICAgKiAgICAgIDxrZW5kby1jaGFydC1zZXJpZXM+XG4gICAgICogICAgICAgIDxrZW5kby1jaGFydC10aXRsZSB0ZXh0PVwiSm9iIEdyb3d0aFwiPjwva2VuZG8tY2hhcnQtdGl0bGU+XG4gICAgICogICAgICA8a2VuZG8tY2hhcnQtc2VyaWVzLWl0ZW0gdHlwZT1cImJ1YmJsZVwiIFtkYXRhXT1cImRhdGFcIlxuICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeEZpZWxkPVwieFwiIHlGaWVsZD1cInlcIiBzaXplRmllbGQ9XCJzaXplXCIgY2F0ZWdvcnlGaWVsZD1cImNhdGVnb3J5XCI+XG4gICAgICogICAgICAgIDwva2VuZG8tY2hhcnQtc2VyaWVzLWl0ZW0+XG4gICAgICogICAgICAgIDxrZW5kby1jaGFydC14LWF4aXM+XG4gICAgICogICAgICAgICAgPGtlbmRvLWNoYXJ0LXgtYXhpcy1pdGVtIFtheGlzQ3Jvc3NpbmdWYWx1ZV09XCItNTAwMFwiIFttYWpvclVuaXRdPVwiMjAwMFwiIFtwbG90QmFuZHNdPVwieFBsb3RCYW5kc1wiPlxuICAgICAqICAgICAgICAgICAgICA8a2VuZG8tY2hhcnQteC1heGlzLWl0ZW0tbGFiZWxzIGZvcm1hdD1cInswOk4wfVwiIFtza2lwXT1cIjFcIiByb3RhdGlvbj1cImF1dG9cIj5cbiAgICAgKiAgICAgICAgICAgICAgPC9rZW5kby1jaGFydC14LWF4aXMtaXRlbS1sYWJlbHM+XG4gICAgICogICAgICAgICAgPC9rZW5kby1jaGFydC14LWF4aXMtaXRlbT5cbiAgICAgKiAgICAgICAgPC9rZW5kby1jaGFydC14LWF4aXM+XG4gICAgICogICAgICAgIDxrZW5kby1jaGFydC15LWF4aXM+XG4gICAgICogICAgICAgICAgPGtlbmRvLWNoYXJ0LXktYXhpcy1pdGVtIFtsYWJlbHNdPVwieyBmb3JtYXQ6ICd7MDpOMH0nIH1cIj5cbiAgICAgKiAgICAgICAgICA8L2tlbmRvLWNoYXJ0LXktYXhpcy1pdGVtPlxuICAgICAqICAgICAgICA8L2tlbmRvLWNoYXJ0LXktYXhpcz5cbiAgICAgKiAgICAgICAgPGtlbmRvLWNoYXJ0LXRvb2x0aXAgZm9ybWF0PVwiezN9OiB7MjpOMH0gYXBwbGljYXRpb25zXCIgW29wYWNpdHldPVwiMVwiPlxuICAgICAqICAgICAgICA8L2tlbmRvLWNoYXJ0LXRvb2x0aXA+XG4gICAgICogICAgICAgIDxrZW5kby1jaGFydC1sZWdlbmQgW3Zpc2libGVdPVwiZmFsc2VcIj5cbiAgICAgKiAgICAgICAgPC9rZW5kby1jaGFydC1sZWdlbmQ+XG4gICAgICogICAgICA8L2tlbmRvLWNoYXJ0LXNlcmllcz5cbiAgICAgKiAgICA8L2tlbmRvLWNoYXJ0PlxuICAgICAqICBgXG4gICAgICogfSlcbiAgICAgKiBleHBvcnQgY2xhc3MgQXBwQ29tcG9uZW50IHtcbiAgICAgKiAgeFBsb3RCYW5kczogUGxvdEJhbmRbXSA9IFt7XG4gICAgICogICAgICBmcm9tOiAtNTAwMCxcbiAgICAgKiAgICAgIHRvOiAwLFxuICAgICAqICAgICAgY29sb3I6IFwiIzAwZlwiLFxuICAgICAqICAgICAgb3BhY2l0eTogMC4wNVxuICAgICAqICB9XTtcbiAgICAgKlxuICAgICAqICAgIHB1YmxpYyBkYXRhOiBhbnkgPSBbe1xuICAgICAqICAgICAgIHg6IC0yNTAwLFxuICAgICAqICAgICAgIHk6IDUwMDAwLFxuICAgICAqICAgICAgIHNpemU6IDUwMDAwMCxcbiAgICAgKiAgICAgICBjYXRlZ29yeTogXCJNaWNyb3NvZnRcIlxuICAgICAqICAgIH0sIHtcbiAgICAgKiAgICAgICB4OiA1MDAsXG4gICAgICogICAgICAgeTogMTEwMDAwLFxuICAgICAqICAgICAgIHNpemU6IDc2MDAwMDAsXG4gICAgICogICAgICAgY2F0ZWdvcnk6IFwiU3RhcmJ1Y2tzXCJcbiAgICAgKiAgICB9LCB7XG4gICAgICogICAgICAgeDogNzAwMCxcbiAgICAgKiAgICAgICB5OiAxOTAwMCxcbiAgICAgKiAgICAgICBzaXplOiA3MDAwMDAsXG4gICAgICogICAgICAgY2F0ZWdvcnk6IFwiR29vZ2xlXCJcbiAgICAgKiAgICB9LCB7XG4gICAgICogICAgICAgeDogMTQwMCxcbiAgICAgKiAgICAgICB5OiAxNTAwMDAsXG4gICAgICogICAgICAgc2l6ZTogNzAwMDAwLFxuICAgICAqICAgICAgIGNhdGVnb3J5OiBcIlB1YmxpeCBTdXBlciBNYXJrZXRzXCJcbiAgICAgKiAgICB9LCB7XG4gICAgICogICAgICAgeDogMjQwMCxcbiAgICAgKiAgICAgeTogMzAwMDAsXG4gICAgICogICAgICAgc2l6ZTogMzAwMDAwLFxuICAgICAqICAgICAgIGNhdGVnb3J5OiBcIlByaWNld2F0ZXJob3VzZUNvb3BlcnNcIlxuICAgICAqICAgIH0sIHtcbiAgICAgKiAgICAgICB4OiAyNDUwLFxuICAgICAqICAgICAgIHk6IDM0MDAwLFxuICAgICAqICAgICAgIHNpemU6IDkwMDAwLFxuICAgICAqICAgICAgIGNhdGVnb3J5OiBcIkNpc2NvXCJcbiAgICAgKiAgICB9LCB7XG4gICAgICogICAgICAgeDogMjcwMCxcbiAgICAgKiAgICAgICB5OiAzNDAwMCxcbiAgICAgKiAgICAgICBzaXplOiA0MDAwMDAsXG4gICAgICogICAgICAgY2F0ZWdvcnk6IFwiQWNjZW50dXJlXCJcbiAgICAgKiAgICB9LCB7XG4gICAgICogICAgICAgeDogMjkwMCxcbiAgICAgKiAgICAgICB5OiA0MDAwMCxcbiAgICAgKiAgICAgICBzaXplOiA0NTAwMDAsXG4gICAgICogICAgICAgY2F0ZWdvcnk6IFwiRGVsb2l0dGVcIlxuICAgICAqICAgIH0sIHtcbiAgICAgKiAgICAgICB4OiAzMDAwLFxuICAgICAqICAgICAgIHk6IDU1MDAwLFxuICAgICAqICAgICAgIHNpemU6IDkwMDAwMCxcbiAgICAgKiAgICAgICBjYXRlZ29yeTogXCJXaG9sZSBGb29kcyBNYXJrZXRcIlxuICAgICAqICAgIH1dO1xuICAgICAqXG4gICAgICogX0BWaWV3Q2hpbGQoJ2NoYXJ0JylcbiAgICAgKiAgY2hhcnQ6IENoYXJ0Q29tcG9uZW50O1xuICAgICAqXG4gICAgICogcHJpdmF0ZSBhY3RpdmU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICAgKlxuICAgICAqICB0b2dnbGVIaWdobGlnaHQoKTogdm9pZCB7XG4gICAgICogICAgdGhpcy5hY3RpdmUgPSAhdGhpcy5hY3RpdmU7XG4gICAgICogICAgdGhpcy5jaGFydC50b2dnbGVIaWdobGlnaHQodGhpcy5hY3RpdmUsIChwKSA9PiBwLmNhdGVnb3J5ID09PSAnR29vZ2xlJyk7XG4gICAgICogIH1cbiAgICAgKiB9XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc2hvdyAtIEEgQm9vbGVhbiB2YWx1ZSB0aGF0IGluZGljYXRlcyB3aGV0aGVyIHRoZSBoaWdobGlnaHQgaXMgc2hvd24gb3IgaGlkZGVuLlxuICAgICAqIEBwYXJhbSBmaWx0ZXIgLSBBIHN0cmluZyB0aGF0IHJlcHJlc2VudHMgdGhlIHNlcmllcyBvciBjYXRlZ29yeSBuYW1lLCBhbiBvYmplY3Qgd2l0aCB0aGUgc2VyaWVzIGFuZCBjYXRlZ29yeSBuYW1lLCBvciBhIGZ1bmN0aW9uIHdoaWNoIHdpbGwgYmUgY2FsbGVkIGZvciBlYWNoIHBvaW50LiBUaGUgZnVuY3Rpb24gc2hvdWxkIHJldHVybiBgdHJ1ZWAgZm9yIHRoZSBwb2ludHMgZm9yIHdoaWNoIHRoZSBoaWdobGlnaHQgaXMgdG9nZ2xlZC5cbiAgICAgKi9cbiAgICBDaGFydENvbXBvbmVudC5wcm90b3R5cGUudG9nZ2xlSGlnaGxpZ2h0ID0gZnVuY3Rpb24gKHNob3csIGZpbHRlcikge1xuICAgICAgICBpZiAodGhpcy5pbnN0YW5jZSkge1xuICAgICAgICAgICAgdGhpcy5pbnN0YW5jZS50b2dnbGVIaWdobGlnaHQoc2hvdywgZmlsdGVyKTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgLyoqXG4gICAgICogSGlkZXMgdGhlIHRvb2x0aXAgb2YgdGhlIENoYXJ0LlxuICAgICAqL1xuICAgIENoYXJ0Q29tcG9uZW50LnByb3RvdHlwZS5oaWRlVG9vbHRpcCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKHRoaXMuaW5zdGFuY2UpIHtcbiAgICAgICAgICAgIHRoaXMuaW5zdGFuY2UuaGlkZVRvb2x0aXAoKTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgLyoqXG4gICAgICogU2hvd3MgdGhlIENoYXJ0IHRvb2x0aXAgb2YgYSBzcGVjaWZpYyBwb2ludCBvciB0aGUgc2hhcmVkIHRvb2x0aXAgb2YgYSBzcGVjaWZpYyBjYXRlZ29yeS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBmaWx0ZXIgLSBUaGUgY2F0ZWdvcnkgZm9yIGEgc2hhcmVkIHRvb2x0aXAgb3IgYSBmdW5jdGlvbiB3aGljaCB3aWxsIGJlIGNhbGxlZCBmb3IgZWFjaCBwb2ludCB1bnRpbCB0aGUgZnVuY3Rpb24gcmV0dXJucyBgdHJ1ZWAuXG4gICAgICovXG4gICAgQ2hhcnRDb21wb25lbnQucHJvdG90eXBlLnNob3dUb29sdGlwID0gZnVuY3Rpb24gKGZpbHRlcikge1xuICAgICAgICBpZiAodGhpcy5pbnN0YW5jZSkge1xuICAgICAgICAgICAgdGhpcy5pbnN0YW5jZS5zaG93VG9vbHRpcChmaWx0ZXIpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBDaGFydENvbXBvbmVudC5wcm90b3R5cGUuaW5pdCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmNhblJlbmRlcikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHZhciBlbGVtZW50ID0gdGhpcy5zdXJmYWNlRWxlbWVudC5uYXRpdmVFbGVtZW50O1xuICAgICAgICB2YXIgaW5zdGFuY2VPYnNlcnZlciA9IG5ldyBDaGFydEluc3RhbmNlT2JzZXJ2ZXIodGhpcyk7XG4gICAgICAgIHRoaXMuY3JlYXRlSW5zdGFuY2UoZWxlbWVudCwgaW5zdGFuY2VPYnNlcnZlcik7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBEZXRlY3RzIHRoZSBzaXplIG9mIHRoZSBjb250YWluZXIgYW5kIHJlZHJhd3MgdGhlIENoYXJ0LlxuICAgICAqIFJlc2l6aW5nIGlzIGF1dG9tYXRpYyB1bmxlc3MgeW91IHNldCB0aGUgYHJlc2l6ZVJhdGVMaW1pdGAgb3B0aW9uIHRvIGAwYC5cbiAgICAgKi9cbiAgICBDaGFydENvbXBvbmVudC5wcm90b3R5cGUucmVzaXplID0gZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAodGhpcy5pbnN0YW5jZSkge1xuICAgICAgICAgICAgdGhpcy5pbnN0YW5jZS5yZXNpemUoKTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIENoYXJ0Q29tcG9uZW50LnByb3RvdHlwZS5vblJlc2l6ZSA9IGZ1bmN0aW9uIChfZXZlbnQpIHtcbiAgICAgICAgaWYgKHRoaXMuYXV0b1Jlc2l6ZSkge1xuICAgICAgICAgICAgdGhpcy5yZXNpemUoKTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgQ2hhcnRDb21wb25lbnQucHJvdG90eXBlLm9uTGVnZW5kSXRlbUNsaWNrID0gZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcbiAgICAgICAgdGhpcy5ydW4oZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdmFyIGFyZ3MgPSBuZXcgTGVnZW5kSXRlbUNsaWNrRXZlbnQoZSwgX3RoaXMpO1xuICAgICAgICAgICAgX3RoaXMubGVnZW5kSXRlbUNsaWNrLmVtaXQoYXJncyk7XG4gICAgICAgICAgICBpZiAoIWFyZ3MuaXNEZWZhdWx0UHJldmVudGVkKCkpIHtcbiAgICAgICAgICAgICAgICB2YXIgc2VyaWVzID0gX3RoaXMuc2VyaWVzQ29tcG9uZW50cy50b0FycmF5KClbZS5zZXJpZXMuaW5kZXhdO1xuICAgICAgICAgICAgICAgIGlmICghc2VyaWVzKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGUucG9pbnRJbmRleCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHNlcmllcy50b2dnbGVWaXNpYmlsaXR5KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBzZXJpZXMudG9nZ2xlUG9pbnRWaXNpYmlsaXR5KGUucG9pbnRJbmRleCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIF90aGlzLnN1cHByZXNzVHJhbnNpdGlvbnMgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LCBoYXNPYnNlcnZlcnModGhpcy5sZWdlbmRJdGVtQ2xpY2spLCB0aGlzLnNlcmllc0NvbXBvbmVudHMubGVuZ3RoID4gMCk7XG4gICAgfTtcbiAgICBDaGFydENvbXBvbmVudC5wcm90b3R5cGUub25Jbml0ID0gZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgdGhpcy5pbnN0YW5jZSA9IGUuc2VuZGVyO1xuICAgIH07XG4gICAgQ2hhcnRDb21wb25lbnQucHJvdG90eXBlLm9uUmVuZGVyID0gZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcbiAgICAgICAgdmFyIGRvbnV0Q2VudGVyU3R5bGUgPSB0aGlzLmdldERvbnV0Q2VudGVyU3R5bGUoKTtcbiAgICAgICAgdGhpcy5ydW4oZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdmFyIGFyZ3MgPSBuZXcgUmVuZGVyRXZlbnQoZSwgX3RoaXMpO1xuICAgICAgICAgICAgX3RoaXMuc3VyZmFjZSA9IGUuc2VuZGVyLnN1cmZhY2U7XG4gICAgICAgICAgICBfdGhpcy5yZW5kZXIuZW1pdChhcmdzKTtcbiAgICAgICAgICAgIF90aGlzLmRvbnV0Q2VudGVyU3R5bGUgPSBkb251dENlbnRlclN0eWxlO1xuICAgICAgICB9LCBoYXNPYnNlcnZlcnModGhpcy5yZW5kZXIpLCB0aGlzLmRvbnV0Q2VudGVyU3R5bGUgIT09IGRvbnV0Q2VudGVyU3R5bGUpO1xuICAgIH07XG4gICAgQ2hhcnRDb21wb25lbnQucHJvdG90eXBlLm9uU2hvd1Rvb2x0aXAgPSBmdW5jdGlvbiAoZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICB0aGlzLnJ1bihmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBpZiAoIWUuY3Jvc3NoYWlyKSB7XG4gICAgICAgICAgICAgICAgX3RoaXMudG9vbHRpcEluc3RhbmNlLnNob3coZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBfdGhpcy5jcm9zc2FoaXJUb29sdGlwcy5zaG93KGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LCAhZS5jcm9zc2hhaXIsIHRydWUpO1xuICAgIH07XG4gICAgQ2hhcnRDb21wb25lbnQucHJvdG90eXBlLm9uSGlkZVRvb2x0aXAgPSBmdW5jdGlvbiAoZSkge1xuICAgICAgICBpZiAoIWUuY3Jvc3NoYWlyKSB7XG4gICAgICAgICAgICBpZiAodGhpcy50b29sdGlwSW5zdGFuY2UuYWN0aXZlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50b29sdGlwSW5zdGFuY2UuaGlkZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHRoaXMuY3Jvc3NhaGlyVG9vbHRpcHMuYWN0aXZlKSB7XG4gICAgICAgICAgICB0aGlzLmNyb3NzYWhpclRvb2x0aXBzLmhpZGUoKTtcbiAgICAgICAgICAgIHRoaXMuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBDaGFydENvbXBvbmVudC5wcm90b3R5cGUudHJpZ2dlciA9IGZ1bmN0aW9uIChuYW1lLCBlKSB7XG4gICAgICAgIGlmIChuYW1lID09PSAncmVzaXplJykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHZhciBlbWl0dGVyID0gdGhpcy5hY3RpdmVFbWl0dGVyKG5hbWUpO1xuICAgICAgICBpZiAoZW1pdHRlcikge1xuICAgICAgICAgICAgdmFyIGFyZ3NfMSA9IHRoaXMuaW5zdGFuY2VFdmVudFNlcnZpY2UuY3JlYXRlKG5hbWUsIGUsIHRoaXMpO1xuICAgICAgICAgICAgdGhpcy5ydW4oZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIGVtaXR0ZXIuZW1pdChhcmdzXzEpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gYXJnc18xLmlzRGVmYXVsdFByZXZlbnRlZCAmJiBhcmdzXzEuaXNEZWZhdWx0UHJldmVudGVkKCk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIENoYXJ0Q29tcG9uZW50LnByb3RvdHlwZS5yZXF1aXJlc0hhbmRsZXJzID0gZnVuY3Rpb24gKG5hbWVzKSB7XG4gICAgICAgIGZvciAodmFyIGlkeCA9IDA7IGlkeCA8IG5hbWVzLmxlbmd0aDsgaWR4KyspIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmFjdGl2ZUVtaXR0ZXIobmFtZXNbaWR4XSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfTtcbiAgICBDaGFydENvbXBvbmVudC5wcm90b3R5cGUucmVmcmVzaCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMucmVkcmF3VGltZW91dCk7XG4gICAgICAgIHRoaXMudXBkYXRlRGlyZWN0aW9uKCk7XG4gICAgICAgIHRoaXMuY3Jvc3NhaGlyVG9vbHRpcHMuY3JlYXRlQ3Jvc3NoYWlyVG9vbHRpcHModGhpcy5vcHRpb25zKTtcbiAgICAgICAgdGhpcy5zZXRDaGFydEFyZWFTaXplKCk7XG4gICAgICAgIGlmICghdGhpcy5pbnN0YW5jZSkge1xuICAgICAgICAgICAgdGhpcy5pbml0KCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHRyYW5zaXRpb25zID0gdGhpcy5vcHRpb25zLnRyYW5zaXRpb25zO1xuICAgICAgICBpZiAodGhpcy5zdXBwcmVzc1RyYW5zaXRpb25zKSB7XG4gICAgICAgICAgICB0aGlzLm9wdGlvbnMudHJhbnNpdGlvbnMgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnVwZGF0ZU9wdGlvbnMoKTtcbiAgICAgICAgaWYgKHRoaXMuc3VwcHJlc3NUcmFuc2l0aW9ucykge1xuICAgICAgICAgICAgdGhpcy5vcHRpb25zLnRyYW5zaXRpb25zID0gdHJhbnNpdGlvbnM7XG4gICAgICAgICAgICB0aGlzLnN1cHByZXNzVHJhbnNpdGlvbnMgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgQ2hhcnRDb21wb25lbnQucHJvdG90eXBlLnNldENoYXJ0QXJlYVNpemUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmICghdGhpcy5lbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGVsZW1lbnQgPSB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudDtcbiAgICAgICAgdmFyIGNoYXJ0QXJlYSA9IHRoaXMub3B0aW9ucy5jaGFydEFyZWEgfHwge307XG4gICAgICAgIGlmIChjaGFydEFyZWEud2lkdGgpIHtcbiAgICAgICAgICAgIGVsZW1lbnQuc3R5bGUud2lkdGggPSBjaGFydEFyZWEud2lkdGggKyBcInB4XCI7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNoYXJ0QXJlYS5oZWlnaHQpIHtcbiAgICAgICAgICAgIGVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gY2hhcnRBcmVhLmhlaWdodCArIFwicHhcIjtcbiAgICAgICAgfVxuICAgIH07XG4gICAgQ2hhcnRDb21wb25lbnQucHJvdG90eXBlLnVwZGF0ZU9wdGlvbnMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHRoaXMuaW5zdGFuY2Uuc2V0T3B0aW9ucyh0aGlzLm9wdGlvbnMpO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIENoYXJ0Q29tcG9uZW50LnByb3RvdHlwZS50b29sdGlwTW91c2VsZWF2ZSA9IGZ1bmN0aW9uIChlKSB7XG4gICAgICAgIHZhciByZWxhdGVkVGFyZ2V0ID0gZS5yZWxhdGVkVGFyZ2V0O1xuICAgICAgICB2YXIgY2hhcnRFbGVtZW50ID0gdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGlmICh0aGlzLmluc3RhbmNlICYmICghcmVsYXRlZFRhcmdldCB8fCAhaGFzUGFyZW50KHJlbGF0ZWRUYXJnZXQsIGNoYXJ0RWxlbWVudCkpKSB7XG4gICAgICAgICAgICB0aGlzLmluc3RhbmNlLmhpZGVFbGVtZW50cygpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgQ2hhcnRDb21wb25lbnQucHJvdG90eXBlLmNoYXJ0TW91c2VsZWF2ZSA9IGZ1bmN0aW9uIChlKSB7XG4gICAgICAgIHZhciByZWxhdGVkVGFyZ2V0ID0gZS5yZWxhdGVkVGFyZ2V0O1xuICAgICAgICB2YXIgY2hhcnRFbGVtZW50ID0gdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGlmICh0aGlzLmluc3RhbmNlICYmICghcmVsYXRlZFRhcmdldCB8fCAhKHRoaXMudG9vbHRpcEluc3RhbmNlLmNvbnRhaW5zRWxlbWVudChyZWxhdGVkVGFyZ2V0KSB8fCBoYXNQYXJlbnQocmVsYXRlZFRhcmdldCwgY2hhcnRFbGVtZW50KSkpICYmXG4gICAgICAgICAgICAhdGhpcy5pbnN0YW5jZS5oYW5kbGluZ1RhcCkge1xuICAgICAgICAgICAgdGhpcy5pbnN0YW5jZS5oaWRlRWxlbWVudHMoKTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KENoYXJ0Q29tcG9uZW50LnByb3RvdHlwZSwgXCJjYW5SZW5kZXJcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiBpc0RvY3VtZW50QXZhaWxhYmxlKCkgJiYgQm9vbGVhbih0aGlzLnN1cmZhY2VFbGVtZW50KTtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KENoYXJ0Q29tcG9uZW50LnByb3RvdHlwZSwgXCJhdXRvUmVzaXplXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5yZXNpemVSYXRlTGltaXQgPiAwO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBDaGFydENvbXBvbmVudC5wcm90b3R5cGUuYWN0aXZlRW1pdHRlciA9IGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgICAgIHZhciBlbWl0dGVyID0gdGhpc1tuYW1lXTtcbiAgICAgICAgaWYgKGVtaXR0ZXIgJiYgZW1pdHRlci5lbWl0ICYmIGhhc09ic2VydmVycyhlbWl0dGVyKSkge1xuICAgICAgICAgICAgcmV0dXJuIGVtaXR0ZXI7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIENoYXJ0Q29tcG9uZW50LnByb3RvdHlwZS5nZXREb251dENlbnRlclN0eWxlID0gZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAoIXRoaXMuaW5zdGFuY2UgfHwgIXRoaXMub3B0aW9ucyB8fCAhdGhpcy5vcHRpb25zLnNlcmllcykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHZhciBmaXJzdFNlcmllcyA9IHRoaXMub3B0aW9ucy5zZXJpZXNbMF07XG4gICAgICAgIHZhciBjaGFydHMgPSB0aGlzLmluc3RhbmNlLl9wbG90QXJlYS5jaGFydHM7XG4gICAgICAgIGlmICghZmlyc3RTZXJpZXMgfHwgZmlyc3RTZXJpZXMudHlwZSAhPT0gJ2RvbnV0JyB8fCBjaGFydHNbMF0ucG9pbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHZhciBmaXJzdFBvaW50ID0gY2hhcnRzWzBdLnBvaW50c1swXTtcbiAgICAgICAgdmFyIGNlbnRlciA9IGZpcnN0UG9pbnQuYm94LmNlbnRlcigpO1xuICAgICAgICB2YXIgcmFkaXVzID0gZmlyc3RQb2ludC5zZWN0b3IuaW5uZXJSYWRpdXM7XG4gICAgICAgIHZhciB0b3AgPSBjZW50ZXIueSAtIHJhZGl1cztcbiAgICAgICAgdmFyIGxlZnQgPSBjZW50ZXIueCAtIHJhZGl1cztcbiAgICAgICAgdmFyIHNpemUgPSByYWRpdXMgKiAyO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaGVpZ2h0OiBzaXplICsgJ3B4JyxcbiAgICAgICAgICAgIGxlZnQ6IGxlZnQgKyAncHgnLFxuICAgICAgICAgICAgdG9wOiB0b3AgKyAncHgnLFxuICAgICAgICAgICAgd2lkdGg6IHNpemUgKyAncHgnXG4gICAgICAgIH07XG4gICAgfTtcbiAgICBDaGFydENvbXBvbmVudC5wcm90b3R5cGUucmVmcmVzaFdhaXQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIF90aGlzLnN1YnNjcmlwdGlvbiA9IGNvbWJpbmVMYXRlc3QoX3RoaXMuY29uZmlndXJhdGlvblNlcnZpY2Uub25DaGFuZ2UkLCBfdGhpcy50aGVtZVNlcnZpY2Uub25DaGFuZ2UkKS5waXBlKHRhcChmdW5jdGlvbiAocmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgX3RoaXMub3B0aW9ucyA9IHJlc3VsdFswXTtcbiAgICAgICAgICAgICAgICBfdGhpcy50aGVtZSA9IHJlc3VsdFsxXTtcbiAgICAgICAgICAgIH0pLCBhdWRpdFRpbWUoVEhST1RUTEVfTVMpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIF90aGlzLnJlZnJlc2goKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9O1xuICAgIENoYXJ0Q29tcG9uZW50LnByb3RvdHlwZS5ydW4gPSBmdW5jdGlvbiAoY2FsbGJhY2ssIGluWm9uZSwgZGV0ZWN0Q2hhbmdlcykge1xuICAgICAgICBpZiAoaW5ab25lID09PSB2b2lkIDApIHsgaW5ab25lID0gdHJ1ZTsgfVxuICAgICAgICBpZiAoaW5ab25lKSB7XG4gICAgICAgICAgICBpZiAoZGV0ZWN0Q2hhbmdlcykge1xuICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLm5nWm9uZS5ydW4oY2FsbGJhY2spO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY2FsbGJhY2soKTtcbiAgICAgICAgICAgIGlmIChkZXRlY3RDaGFuZ2VzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9O1xuICAgIENoYXJ0Q29tcG9uZW50LnByb3RvdHlwZS5kZXRlY3RDaGFuZ2VzID0gZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAoIXRoaXMuZGVzdHJveWVkKSB7XG4gICAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgQ2hhcnRDb21wb25lbnQucHJvdG90eXBlLmludGxDaGFuZ2UgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmICh0aGlzLmluc3RhbmNlKSB7XG4gICAgICAgICAgICB0aGlzLmRlZmVycmVkUmVkcmF3KCk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIENoYXJ0Q29tcG9uZW50LnByb3RvdHlwZS5ydGxDaGFuZ2UgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmICh0aGlzLmluc3RhbmNlICYmIHRoaXMucnRsICE9PSB0aGlzLmlzUlRMKSB7XG4gICAgICAgICAgICB0aGlzLmRlZmVycmVkUmVkcmF3KCk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIENoYXJ0Q29tcG9uZW50LnByb3RvdHlwZS5kZWZlcnJlZFJlZHJhdyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcbiAgICAgICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KF90aGlzLnJlZHJhd1RpbWVvdXQpO1xuICAgICAgICAgICAgX3RoaXMucmVkcmF3VGltZW91dCA9IHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIF90aGlzLnVwZGF0ZURpcmVjdGlvbigpO1xuICAgICAgICAgICAgICAgIF90aGlzLmluc3RhbmNlLm5vVHJhbnNpdGlvbnNSZWRyYXcoKTtcbiAgICAgICAgICAgIH0sIDApO1xuICAgICAgICB9KTtcbiAgICB9O1xuICAgIENoYXJ0Q29tcG9uZW50LnByb3RvdHlwZS51cGRhdGVEaXJlY3Rpb24gPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBjdXJyZW50ID0gdGhpcy5pc1JUTDtcbiAgICAgICAgaWYgKHRoaXMucnRsICE9PSBjdXJyZW50KSB7XG4gICAgICAgICAgICB0aGlzLnNldERpcmVjdGlvbigpO1xuICAgICAgICAgICAgaWYgKHRoaXMuaW5zdGFuY2UpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmluc3RhbmNlLnNldERpcmVjdGlvbihjdXJyZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH07XG4gICAgQ2hhcnRDb21wb25lbnQucHJvdG90eXBlLnNldERpcmVjdGlvbiA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdGhpcy5ydGwgPSB0aGlzLmlzUlRMO1xuICAgICAgICBpZiAodGhpcy5lbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ2RpcicsIHRoaXMucnRsID8gJ3J0bCcgOiAnbHRyJyk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShDaGFydENvbXBvbmVudC5wcm90b3R5cGUsIFwiaXNSVExcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiBCb29sZWFuKHRoaXMubG9jYWxpemF0aW9uU2VydmljZS5ydGwpO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBDaGFydENvbXBvbmVudC5kZWNvcmF0b3JzID0gW1xuICAgICAgICB7IHR5cGU6IENvbXBvbmVudCwgYXJnczogW3tcbiAgICAgICAgICAgICAgICAgICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgICAgICAgICAgICAgICAgIGV4cG9ydEFzOiAna2VuZG9DaGFydCcsXG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICAgICAgICAgICAgICAgICAgQ29uZmlndXJhdGlvblNlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBUb29sdGlwVGVtcGxhdGVTZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgSW5zdGFuY2VFdmVudFNlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBMb2NhbGl6YXRpb25TZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IEwxME5fUFJFRklYLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZVZhbHVlOiAna2VuZG8uY2hhcnQnXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdG9yOiAna2VuZG8tY2hhcnQnLFxuICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZTogXCJcXG4gICAgPGRpdiAjc3VyZmFjZSBjbGFzcz1cXFwiay1jaGFydC1zdXJmYWNlXFxcIj48L2Rpdj5cXG4gICAgPGtlbmRvLWNoYXJ0LWNyb3NzaGFpci10b29sdGlwcy1jb250YWluZXIgW3BvcHVwU2V0dGluZ3NdPVxcXCJwb3B1cFNldHRpbmdzXFxcIj5cXG4gICAgPC9rZW5kby1jaGFydC1jcm9zc2hhaXItdG9vbHRpcHMtY29udGFpbmVyPlxcbiAgICA8a2VuZG8tY2hhcnQtdG9vbHRpcC1wb3B1cCAobGVhdmUpPVxcXCJ0b29sdGlwTW91c2VsZWF2ZSgkZXZlbnQpXFxcIiBbcG9wdXBTZXR0aW5nc109XFxcInBvcHVwU2V0dGluZ3NcXFwiPlxcbiAgICA8L2tlbmRvLWNoYXJ0LXRvb2x0aXAtcG9wdXA+XFxuICAgIDxrZW5kby1yZXNpemUtc2Vuc29yIChyZXNpemUpPVxcXCJvblJlc2l6ZSgkZXZlbnQpXFxcIiBbcmF0ZUxpbWl0XT1cXFwicmVzaXplUmF0ZUxpbWl0XFxcIj48L2tlbmRvLXJlc2l6ZS1zZW5zb3I+XFxuICAgIDxkaXYgY2xhc3M9XFxcImstY2hhcnQtZG9udXQtY2VudGVyXFxcIiBbbmdTdHlsZV09XFxcImRvbnV0Q2VudGVyU3R5bGVcXFwiICpuZ0lmPVxcXCJkb251dENlbnRlclN0eWxlICYmIGRvbnV0Q2VudGVyVGVtcGxhdGVcXFwiPlxcbiAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XFxcImRvbnV0Q2VudGVyVGVtcGxhdGUudGVtcGxhdGVSZWZcXFwiPjwvbmctdGVtcGxhdGU+XFxuICAgIDwvZGl2PlxcbiAgXCJcbiAgICAgICAgICAgICAgICB9LF0gfSxcbiAgICBdO1xuICAgIC8qKiBAbm9jb2xsYXBzZSAqL1xuICAgIENoYXJ0Q29tcG9uZW50LmN0b3JQYXJhbWV0ZXJzID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gW1xuICAgICAgICB7IHR5cGU6IENvbmZpZ3VyYXRpb25TZXJ2aWNlIH0sXG4gICAgICAgIHsgdHlwZTogVGhlbWVTZXJ2aWNlIH0sXG4gICAgICAgIHsgdHlwZTogRWxlbWVudFJlZiB9LFxuICAgICAgICB7IHR5cGU6IEludGxTZXJ2aWNlIH0sXG4gICAgICAgIHsgdHlwZTogTG9jYWxpemF0aW9uU2VydmljZSB9LFxuICAgICAgICB7IHR5cGU6IE5nWm9uZSB9LFxuICAgICAgICB7IHR5cGU6IEluc3RhbmNlRXZlbnRTZXJ2aWNlIH0sXG4gICAgICAgIHsgdHlwZTogQ2hhbmdlRGV0ZWN0b3JSZWYgfSxcbiAgICAgICAgeyB0eXBlOiBSZW5kZXJlcjIgfVxuICAgIF07IH07XG4gICAgQ2hhcnRDb21wb25lbnQucHJvcERlY29yYXRvcnMgPSB7XG4gICAgICAgIGxlZ2VuZEl0ZW1DbGljazogW3sgdHlwZTogT3V0cHV0IH1dLFxuICAgICAgICByZXNpemVSYXRlTGltaXQ6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBwb3B1cFNldHRpbmdzOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgc2VyaWVzQ29tcG9uZW50czogW3sgdHlwZTogQ29udGVudENoaWxkcmVuLCBhcmdzOiBbU2VyaWVzSXRlbUNvbXBvbmVudCwgeyBkZXNjZW5kYW50czogdHJ1ZSB9LF0gfV0sXG4gICAgICAgIGRvbnV0Q2VudGVyVGVtcGxhdGU6IFt7IHR5cGU6IENvbnRlbnRDaGlsZCwgYXJnczogW0RvbnV0Q2VudGVyVGVtcGxhdGVEaXJlY3RpdmUsXSB9XSxcbiAgICAgICAgdG9vbHRpcEluc3RhbmNlOiBbeyB0eXBlOiBWaWV3Q2hpbGQsIGFyZ3M6IFtUb29sdGlwUG9wdXBDb21wb25lbnQsXSB9XSxcbiAgICAgICAgY3Jvc3NhaGlyVG9vbHRpcHM6IFt7IHR5cGU6IFZpZXdDaGlsZCwgYXJnczogW0Nyb3NzaGFpclRvb2x0aXBzQ29udGFpbmVyQ29tcG9uZW50LF0gfV0sXG4gICAgICAgIHN1cmZhY2VFbGVtZW50OiBbeyB0eXBlOiBWaWV3Q2hpbGQsIGFyZ3M6IFsnc3VyZmFjZScsXSB9XVxuICAgIH07XG4gICAgcmV0dXJuIENoYXJ0Q29tcG9uZW50O1xufShDaGFydENvbXBvbmVudEdlbmVyYXRlZCkpO1xuXG4vKipcbiAqIEBoaWRkZW5cbiAqL1xudmFyIEF4aXNEZWZhdWx0c0NvbXBvbmVudEdlbmVyYXRlZCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoQXhpc0RlZmF1bHRzQ29tcG9uZW50R2VuZXJhdGVkLCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIEF4aXNEZWZhdWx0c0NvbXBvbmVudEdlbmVyYXRlZChjb25maWd1cmF0aW9uU2VydmljZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCAnYXhpc0RlZmF1bHRzJywgY29uZmlndXJhdGlvblNlcnZpY2UpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlID0gY29uZmlndXJhdGlvblNlcnZpY2U7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgQXhpc0RlZmF1bHRzQ29tcG9uZW50R2VuZXJhdGVkLnByb3BEZWNvcmF0b3JzID0ge1xuICAgICAgICBiYWNrZ3JvdW5kOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgY29sb3I6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBsaW5lOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgbWFqb3JHcmlkTGluZXM6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBtYWpvclRpY2tzOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgbWlub3JHcmlkTGluZXM6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBtaW5vclRpY2tzOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgbmFycm93UmFuZ2U6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBwYW5lOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgcGxvdEJhbmRzOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgcmV2ZXJzZTogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHN0YXJ0QW5nbGU6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICB2aXNpYmxlOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgY3Jvc3NoYWlyOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgbGFiZWxzOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgdGl0bGU6IFt7IHR5cGU6IElucHV0IH1dXG4gICAgfTtcbiAgICByZXR1cm4gQXhpc0RlZmF1bHRzQ29tcG9uZW50R2VuZXJhdGVkO1xufShTZXR0aW5nc0NvbXBvbmVudCkpO1xuXG4vKipcbiAqIFRoZSBkZWZhdWx0IG9wdGlvbnMgZm9yIGFsbCBDaGFydCBheGVzLlxuICogQWNjZXB0cyB0aGUgb3B0aW9ucyB3aGljaCBhcmUgc3VwcG9ydGVkIGJ5IFtgY2F0ZWdvcnlBeGlzYF0oeyUgc2x1ZyBhcGlfY2hhcnRzX2NhdGVnb3J5YXhpc2l0ZW1jb21wb25lbnQgJX0pLFxuICogW2B2YWx1ZUF4aXNgXSh7JSBzbHVnIGFwaV9jaGFydHNfdmFsdWVheGlzaXRlbWNvbXBvbmVudCAlfSksXG4gKiBbYHhBeGlzYF0oeyUgc2x1ZyBhcGlfY2hhcnRzX3hheGlzaXRlbWNvbXBvbmVudCAlfSksXG4gKiBhbmQgW2B5QXhpc2BdKHslIHNsdWcgYXBpX2NoYXJ0c195YXhpc2l0ZW1jb21wb25lbnQgJX0pLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0cy1wcmV2aWV3XG4gKiBpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbiAqXG4gKiBfQENvbXBvbmVudCh7XG4gKiAgIHNlbGVjdG9yOiAnbXktYXBwJyxcbiAqICAgdGVtcGxhdGU6IGBcbiAqICA8ZGl2IHN0eWxlPVwiaGVpZ2h0OiA2MDBweDtcIj5cbiAqICA8a2VuZG8tY2hhcnQgW2NhdGVnb3J5QXhpc109XCJ7IGNhdGVnb3JpZXM6IGNhdGVnb3JpZXMgfVwiIFtjaGFydEFyZWFdPVwie2hlaWdodDogNjAwfVwiID5cbiAqICAgIDxrZW5kby1jaGFydC1heGlzLWRlZmF1bHRzXG4gKiAgICAgIFtiYWNrZ3JvdW5kXT1cImJhY2tncm91bmRcIlxuICogICAgICBbY29sb3JdPVwiY29sb3JcIlxuICogICAgICBbY3Jvc3NoYWlyXT1cImNyb3NzaGFpclwiXG4gKiAgICAgIFtsYWJlbHNdPVwibGFiZWxzXCJcbiAqICAgICAgW2xpbmVdPVwibGluZVwiXG4gKiAgICAgIFttYWpvckdyaWRMaW5lc109XCJtYWpvckdyaWRMaW5lc1wiXG4gKiAgICAgIFttaW5vckdyaWRMaW5lc109XCJtaW5vckdyaWRMaW5lc1wiXG4gKiAgICAgIFttYWpvclRpY2tzXT1cIm1ham9yVGlja3NcIlxuICogICAgICBbbWlub3JUaWNrc109XCJtaW5vclRpY2tzXCJcbiAqICAgICAgW3RpdGxlXT1cInRpdGxlXCJcbiAqICAgICAgPjwva2VuZG8tY2hhcnQtYXhpcy1kZWZhdWx0cz5cbiAqICAgIDxrZW5kby1jaGFydC10aXRsZSB0ZXh0PVwiR3Jvc3MgZG9tZXN0aWMgcHJvZHVjdCBncm93dGggL0dEUCBhbm51YWwgJS9cIj48L2tlbmRvLWNoYXJ0LXRpdGxlPlxuICogICAgPGtlbmRvLWNoYXJ0LWxlZ2VuZCBwb3NpdGlvbj1cImJvdHRvbVwiIG9yaWVudGF0aW9uPVwiaG9yaXpvbnRhbFwiPjwva2VuZG8tY2hhcnQtbGVnZW5kPlxuICogICAgPGtlbmRvLWNoYXJ0LXRvb2x0aXAgZm9ybWF0PVwiezB9JVwiPjwva2VuZG8tY2hhcnQtdG9vbHRpcD5cbiAqICAgIDxrZW5kby1jaGFydC1zZXJpZXM+XG4gKiAgICAgICAgPGtlbmRvLWNoYXJ0LXNlcmllcy1pdGVtICpuZ0Zvcj1cImxldCBpdGVtIG9mIHNlcmllc1wiXG4gKiAgICAgICAgICAgIHR5cGU9XCJsaW5lXCIgc3R5bGU9XCJzbW9vdGhcIiBbZGF0YV09XCJpdGVtLmRhdGFcIiBbbmFtZV09XCJpdGVtLm5hbWVcIj5cbiAqICAgICAgICA8L2tlbmRvLWNoYXJ0LXNlcmllcy1pdGVtPlxuICogICAgPC9rZW5kby1jaGFydC1zZXJpZXM+XG4gKiAgPC9rZW5kby1jaGFydD5cbiAqICA8L2Rpdj5cbiAqIGBcbiAqIH0pXG4gKiBleHBvcnQgY2xhc3MgQXBwQ29tcG9uZW50IHtcbiAqIHB1YmxpYyBzZXJpZXM6IGFueVtdID0gW3tcbiAqIG5hbWU6IFwiSW5kaWFcIixcbiAqIGRhdGE6IFs0LCA4LCA4LCA5LCA5LCA5LCAzLCA4LCA5LCA2XVxuICogfSwge1xuICogbmFtZTogXCJSdXNzaWFuIEZlZGVyYXRpb25cIixcbiAqIGRhdGE6IFs0LCA3LCA3LCA2LCA4LCA4LCA1LCA4LCA0LCA0XVxuICogfSwge1xuICogbmFtZTogXCJHZXJtYW55XCIsXG4gKiBkYXRhOiBbMCwgMCwgMSwgMSwgNCwgMywgMSwgNSwgNCwgM11cbiAqIH0se1xuICogbmFtZTogXCJXb3JsZFwiLFxuICogZGF0YTogWzIsIDMsIDQsIDQsIDQsIDQsIDEsIDIsIDQsIDNdXG4gKiB9XTtcbiAqXG4gKiBwdWJsaWMgIGNhdGVnb3JpZXM6IG51bWJlcltdID0gWzIwMDIsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAsIDIwMTFdO1xuICpcbiAqIHB1YmxpYyBiYWNrZ3JvdW5kID0gJ3doaXRlJztcbiAqIC8vIHB1YmxpYyBjb2xvciA9ICdjeWFuJzsgLy8gd2lsbCBvdmVycmlkZSB0aGUgbGluZS5jb2xvciBvcHRpb25cbiAqIHB1YmxpYyBjcm9zc2hhaXIgPSB7XG4gKiB2aXNpYmxlOiB0cnVlXG4gKiB9O1xuICogcHVibGljIGxhYmVscyA9IHtcbiAqIGZvbnQ6ICdib2xkIDEycHgvMzBweCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmJyxcbiAqIGNvbG9yOiAnIzRDQUY1MCcsXG4gKiBwYWRkaW5nOiA1LFxuICogcm90YXRpb246IDQ1LFxuICogYmFja2dyb3VuZDogJ3doaXRlJyxcbiAqIGJvcmRlcjoge1xuICogY29sb3I6ICcjNENBRjUwJyxcbiAqIHdpZHRoOiAyXG4gKiB9LFxuICogfTtcbiAqIHB1YmxpYyBsaW5lID0ge1xuICogY29sb3I6ICdibGFjaycsXG4gKiB3aWR0aDogM1xuICogfTtcbiAqXG4gKiBwdWJsaWMgbWFqb3JHcmlkTGluZXMgPSB7XG4gKiBjb2xvcjogJ2JsYWNrJyxcbiAqIHZpc2libGU6IHRydWVcbiAqIH1cbiAqXG4gKiBwdWJsaWMgbWlub3JHcmlkTGluZXMgPSB7XG4gKiBjb2xvcjogJ2xpZ2h0Z3JheScsXG4gKiB2aXNpYmxlOiB0cnVlXG4gKiB9XG4gKlxuICogcHVibGljIG1ham9yVGlja3MgPSB7XG4gKiBjb2xvcjogJ2JsYWNrJyxcbiAqIHNpemU6IDE1XG4gKiB9XG4gKlxuICogcHVibGljIG1pbm9yVGlja3MgPSB7XG4gKiBjb2xvcjogJ2xpZ2h0Z3JheScsXG4gKiBzaXplOiAxMFxuICogfVxuICpcbiAqIHB1YmxpYyB0aXRsZSA9IHtcbiAqIHRleHQ6ICdEZWZhdWx0IEF4aXMgVGl0bGUnLFxuICogY29sb3I6ICdibGFjaycsXG4gKiBiYWNrZ3JvdW5kOiAnd2hpdGUnLFxuICogYm9yZGVyOiB7XG4gKiBjb2xvcjogJ2JsYWNrJyxcbiAqIHdpZHRoOiAyXG4gKiB9LFxuICogcGFkZGluZzogMTBcbiAqIH1cbiAqIH1cbiAqIGBgYFxuICovXG52YXIgQXhpc0RlZmF1bHRzQ29tcG9uZW50ID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhBeGlzRGVmYXVsdHNDb21wb25lbnQsIF9zdXBlcik7XG4gICAgLy8gUGxhY2UgY3VzdG9tIHByb3BlcnRpZXMgaGVyZVxuICAgIGZ1bmN0aW9uIEF4aXNEZWZhdWx0c0NvbXBvbmVudChjb25maWd1cmF0aW9uU2VydmljZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBjb25maWd1cmF0aW9uU2VydmljZSkgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuY29uZmlndXJhdGlvblNlcnZpY2UgPSBjb25maWd1cmF0aW9uU2VydmljZTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBBeGlzRGVmYXVsdHNDb21wb25lbnQuZGVjb3JhdG9ycyA9IFtcbiAgICAgICAgeyB0eXBlOiBDb21wb25lbnQsIGFyZ3M6IFt7XG4gICAgICAgICAgICAgICAgICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RvcjogJ2tlbmRvLWNoYXJ0LWF4aXMtZGVmYXVsdHMnLFxuICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZTogJydcbiAgICAgICAgICAgICAgICB9LF0gfSxcbiAgICBdO1xuICAgIC8qKiBAbm9jb2xsYXBzZSAqL1xuICAgIEF4aXNEZWZhdWx0c0NvbXBvbmVudC5jdG9yUGFyYW1ldGVycyA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIFtcbiAgICAgICAgeyB0eXBlOiBDb25maWd1cmF0aW9uU2VydmljZSB9XG4gICAgXTsgfTtcbiAgICByZXR1cm4gQXhpc0RlZmF1bHRzQ29tcG9uZW50O1xufShBeGlzRGVmYXVsdHNDb21wb25lbnRHZW5lcmF0ZWQpKTtcblxuLyoqXG4gKiBAaGlkZGVuXG4gKi9cbnZhciBBeGlzRGVmYXVsdHNDcm9zc2hhaXJDb21wb25lbnRHZW5lcmF0ZWQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKEF4aXNEZWZhdWx0c0Nyb3NzaGFpckNvbXBvbmVudEdlbmVyYXRlZCwgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBBeGlzRGVmYXVsdHNDcm9zc2hhaXJDb21wb25lbnRHZW5lcmF0ZWQoY29uZmlndXJhdGlvblNlcnZpY2UpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgJ2F4aXNEZWZhdWx0cy5jcm9zc2hhaXInLCBjb25maWd1cmF0aW9uU2VydmljZSkgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuY29uZmlndXJhdGlvblNlcnZpY2UgPSBjb25maWd1cmF0aW9uU2VydmljZTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBBeGlzRGVmYXVsdHNDcm9zc2hhaXJDb21wb25lbnRHZW5lcmF0ZWQucHJvcERlY29yYXRvcnMgPSB7XG4gICAgICAgIGNvbG9yOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgZGFzaFR5cGU6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBvcGFjaXR5OiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgdmlzaWJsZTogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHdpZHRoOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgdG9vbHRpcDogW3sgdHlwZTogSW5wdXQgfV1cbiAgICB9O1xuICAgIHJldHVybiBBeGlzRGVmYXVsdHNDcm9zc2hhaXJDb21wb25lbnRHZW5lcmF0ZWQ7XG59KFNldHRpbmdzQ29tcG9uZW50KSk7XG5cbi8qKlxuICogVGhlIGNyb3NzaGFpciBjb25maWd1cmF0aW9uIG9wdGlvbnMgKFtzZWUgZXhhbXBsZV0oeyUgc2x1ZyBhcGlfY2hhcnRzX2F4aXNkZWZhdWx0c2NvbXBvbmVudCAlfSkpLlxuICovXG52YXIgQXhpc0RlZmF1bHRzQ3Jvc3NoYWlyQ29tcG9uZW50ID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhBeGlzRGVmYXVsdHNDcm9zc2hhaXJDb21wb25lbnQsIF9zdXBlcik7XG4gICAgLy8gUGxhY2UgY3VzdG9tIHByb3BlcnRpZXMgaGVyZVxuICAgIGZ1bmN0aW9uIEF4aXNEZWZhdWx0c0Nyb3NzaGFpckNvbXBvbmVudChjb25maWd1cmF0aW9uU2VydmljZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBjb25maWd1cmF0aW9uU2VydmljZSkgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuY29uZmlndXJhdGlvblNlcnZpY2UgPSBjb25maWd1cmF0aW9uU2VydmljZTtcbiAgICAgICAgX3RoaXMubWFya0FzVmlzaWJsZSgpO1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIEF4aXNEZWZhdWx0c0Nyb3NzaGFpckNvbXBvbmVudC5kZWNvcmF0b3JzID0gW1xuICAgICAgICB7IHR5cGU6IENvbXBvbmVudCwgYXJnczogW3tcbiAgICAgICAgICAgICAgICAgICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdG9yOiAna2VuZG8tY2hhcnQtYXhpcy1kZWZhdWx0cy1jcm9zc2hhaXInLFxuICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZTogJydcbiAgICAgICAgICAgICAgICB9LF0gfSxcbiAgICBdO1xuICAgIC8qKiBAbm9jb2xsYXBzZSAqL1xuICAgIEF4aXNEZWZhdWx0c0Nyb3NzaGFpckNvbXBvbmVudC5jdG9yUGFyYW1ldGVycyA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIFtcbiAgICAgICAgeyB0eXBlOiBDb25maWd1cmF0aW9uU2VydmljZSB9XG4gICAgXTsgfTtcbiAgICByZXR1cm4gQXhpc0RlZmF1bHRzQ3Jvc3NoYWlyQ29tcG9uZW50O1xufShBeGlzRGVmYXVsdHNDcm9zc2hhaXJDb21wb25lbnRHZW5lcmF0ZWQpKTtcblxuLyoqXG4gKiBAaGlkZGVuXG4gKi9cbnZhciBBeGlzRGVmYXVsdHNDcm9zc2hhaXJUb29sdGlwQ29tcG9uZW50R2VuZXJhdGVkID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhBeGlzRGVmYXVsdHNDcm9zc2hhaXJUb29sdGlwQ29tcG9uZW50R2VuZXJhdGVkLCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIEF4aXNEZWZhdWx0c0Nyb3NzaGFpclRvb2x0aXBDb21wb25lbnRHZW5lcmF0ZWQoY29uZmlndXJhdGlvblNlcnZpY2UpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgJ2F4aXNEZWZhdWx0cy5jcm9zc2hhaXIudG9vbHRpcCcsIGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5jb25maWd1cmF0aW9uU2VydmljZSA9IGNvbmZpZ3VyYXRpb25TZXJ2aWNlO1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIEF4aXNEZWZhdWx0c0Nyb3NzaGFpclRvb2x0aXBDb21wb25lbnRHZW5lcmF0ZWQucHJvcERlY29yYXRvcnMgPSB7XG4gICAgICAgIGJhY2tncm91bmQ6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBib3JkZXI6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBjb2xvcjogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGZvbnQ6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBmb3JtYXQ6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBwYWRkaW5nOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgdmlzaWJsZTogW3sgdHlwZTogSW5wdXQgfV1cbiAgICB9O1xuICAgIHJldHVybiBBeGlzRGVmYXVsdHNDcm9zc2hhaXJUb29sdGlwQ29tcG9uZW50R2VuZXJhdGVkO1xufShTZXR0aW5nc0NvbXBvbmVudCkpO1xuXG4vKipcbiAqIFRoZSBvcHRpb25zIG9mIHRoZSBjcm9zc2hhaXIgdG9vbHRpcCAoW3NlZSBleGFtcGxlXSh7JSBzbHVnIGNyb3NzaGFpcnNfY2hhcnRfY2hhcnRzICV9KSkuXG4gKiBUaGUgY3Jvc3NoYWlyIHRvb2x0aXAgaXMgZGlzcGxheWVkIHdoZW4gdGhlIFtgYXhpc0RlZmF1bHRzLmNyb3NzaGFpci50b29sdGlwLnZpc2libGVgXSh7JSBzbHVnIGFwaV9jaGFydHNfYXhpc2RlZmF1bHRzY3Jvc3NoYWlydG9vbHRpcGNvbXBvbmVudCAlfSN0b2MtdmlzaWJsZSlcbiAqIG9wdGlvbiBpcyBzZXQgdG8gYHRydWVgLlxuICovXG52YXIgQXhpc0RlZmF1bHRzQ3Jvc3NoYWlyVG9vbHRpcENvbXBvbmVudCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoQXhpc0RlZmF1bHRzQ3Jvc3NoYWlyVG9vbHRpcENvbXBvbmVudCwgX3N1cGVyKTtcbiAgICAvLyBQbGFjZSBjdXN0b20gcHJvcGVydGllcyBoZXJlXG4gICAgZnVuY3Rpb24gQXhpc0RlZmF1bHRzQ3Jvc3NoYWlyVG9vbHRpcENvbXBvbmVudChjb25maWd1cmF0aW9uU2VydmljZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBjb25maWd1cmF0aW9uU2VydmljZSkgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuY29uZmlndXJhdGlvblNlcnZpY2UgPSBjb25maWd1cmF0aW9uU2VydmljZTtcbiAgICAgICAgX3RoaXMubWFya0FzVmlzaWJsZSgpO1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIEF4aXNEZWZhdWx0c0Nyb3NzaGFpclRvb2x0aXBDb21wb25lbnQuZGVjb3JhdG9ycyA9IFtcbiAgICAgICAgeyB0eXBlOiBDb21wb25lbnQsIGFyZ3M6IFt7XG4gICAgICAgICAgICAgICAgICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RvcjogJ2tlbmRvLWNoYXJ0LWF4aXMtZGVmYXVsdHMtY3Jvc3NoYWlyLXRvb2x0aXAnLFxuICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZTogJydcbiAgICAgICAgICAgICAgICB9LF0gfSxcbiAgICBdO1xuICAgIC8qKiBAbm9jb2xsYXBzZSAqL1xuICAgIEF4aXNEZWZhdWx0c0Nyb3NzaGFpclRvb2x0aXBDb21wb25lbnQuY3RvclBhcmFtZXRlcnMgPSBmdW5jdGlvbiAoKSB7IHJldHVybiBbXG4gICAgICAgIHsgdHlwZTogQ29uZmlndXJhdGlvblNlcnZpY2UgfVxuICAgIF07IH07XG4gICAgcmV0dXJuIEF4aXNEZWZhdWx0c0Nyb3NzaGFpclRvb2x0aXBDb21wb25lbnQ7XG59KEF4aXNEZWZhdWx0c0Nyb3NzaGFpclRvb2x0aXBDb21wb25lbnRHZW5lcmF0ZWQpKTtcblxuLyoqXG4gKiBAaGlkZGVuXG4gKi9cbnZhciBBeGlzRGVmYXVsdHNMYWJlbHNDb21wb25lbnRHZW5lcmF0ZWQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKEF4aXNEZWZhdWx0c0xhYmVsc0NvbXBvbmVudEdlbmVyYXRlZCwgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBBeGlzRGVmYXVsdHNMYWJlbHNDb21wb25lbnRHZW5lcmF0ZWQoY29uZmlndXJhdGlvblNlcnZpY2UpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgJ2F4aXNEZWZhdWx0cy5sYWJlbHMnLCBjb25maWd1cmF0aW9uU2VydmljZSkgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuY29uZmlndXJhdGlvblNlcnZpY2UgPSBjb25maWd1cmF0aW9uU2VydmljZTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBBeGlzRGVmYXVsdHNMYWJlbHNDb21wb25lbnRHZW5lcmF0ZWQucHJvcERlY29yYXRvcnMgPSB7XG4gICAgICAgIGNvbnRlbnQ6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBmb250OiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgZm9ybWF0OiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgbWFyZ2luOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgbWlycm9yOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgcGFkZGluZzogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHJvdGF0aW9uOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgc2tpcDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHN0ZXA6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICB2aXNpYmxlOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgdmlzdWFsOiBbeyB0eXBlOiBJbnB1dCB9XVxuICAgIH07XG4gICAgcmV0dXJuIEF4aXNEZWZhdWx0c0xhYmVsc0NvbXBvbmVudEdlbmVyYXRlZDtcbn0oU2V0dGluZ3NDb21wb25lbnQpKTtcblxuLyoqXG4gKiBUaGUgY29uZmlndXJhdGlvbiBvZiB0aGUgYXhpcyBsYWJlbHMgKFtzZWUgZXhhbXBsZV0oeyUgc2x1ZyBhcGlfY2hhcnRzX2F4aXNkZWZhdWx0c2NvbXBvbmVudCAlfSkpLlxuICovXG52YXIgQXhpc0RlZmF1bHRzTGFiZWxzQ29tcG9uZW50ID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhBeGlzRGVmYXVsdHNMYWJlbHNDb21wb25lbnQsIF9zdXBlcik7XG4gICAgLy8gUGxhY2UgY3VzdG9tIHByb3BlcnRpZXMgaGVyZVxuICAgIGZ1bmN0aW9uIEF4aXNEZWZhdWx0c0xhYmVsc0NvbXBvbmVudChjb25maWd1cmF0aW9uU2VydmljZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBjb25maWd1cmF0aW9uU2VydmljZSkgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuY29uZmlndXJhdGlvblNlcnZpY2UgPSBjb25maWd1cmF0aW9uU2VydmljZTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBBeGlzRGVmYXVsdHNMYWJlbHNDb21wb25lbnQuZGVjb3JhdG9ycyA9IFtcbiAgICAgICAgeyB0eXBlOiBDb21wb25lbnQsIGFyZ3M6IFt7XG4gICAgICAgICAgICAgICAgICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RvcjogJ2tlbmRvLWNoYXJ0LWF4aXMtZGVmYXVsdHMtbGFiZWxzJyxcbiAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGU6ICcnXG4gICAgICAgICAgICAgICAgfSxdIH0sXG4gICAgXTtcbiAgICAvKiogQG5vY29sbGFwc2UgKi9cbiAgICBBeGlzRGVmYXVsdHNMYWJlbHNDb21wb25lbnQuY3RvclBhcmFtZXRlcnMgPSBmdW5jdGlvbiAoKSB7IHJldHVybiBbXG4gICAgICAgIHsgdHlwZTogQ29uZmlndXJhdGlvblNlcnZpY2UgfVxuICAgIF07IH07XG4gICAgcmV0dXJuIEF4aXNEZWZhdWx0c0xhYmVsc0NvbXBvbmVudDtcbn0oQXhpc0RlZmF1bHRzTGFiZWxzQ29tcG9uZW50R2VuZXJhdGVkKSk7XG5cbi8qKlxuICogQGhpZGRlblxuICovXG52YXIgQXhpc0RlZmF1bHRzVGl0bGVDb21wb25lbnRHZW5lcmF0ZWQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKEF4aXNEZWZhdWx0c1RpdGxlQ29tcG9uZW50R2VuZXJhdGVkLCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIEF4aXNEZWZhdWx0c1RpdGxlQ29tcG9uZW50R2VuZXJhdGVkKGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsICdheGlzRGVmYXVsdHMudGl0bGUnLCBjb25maWd1cmF0aW9uU2VydmljZSkgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuY29uZmlndXJhdGlvblNlcnZpY2UgPSBjb25maWd1cmF0aW9uU2VydmljZTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBBeGlzRGVmYXVsdHNUaXRsZUNvbXBvbmVudEdlbmVyYXRlZC5wcm9wRGVjb3JhdG9ycyA9IHtcbiAgICAgICAgYmFja2dyb3VuZDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGJvcmRlcjogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGNvbG9yOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgZm9udDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIG1hcmdpbjogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHBhZGRpbmc6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBwb3NpdGlvbjogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHJvdGF0aW9uOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgdGV4dDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHZpc2libGU6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICB2aXN1YWw6IFt7IHR5cGU6IElucHV0IH1dXG4gICAgfTtcbiAgICByZXR1cm4gQXhpc0RlZmF1bHRzVGl0bGVDb21wb25lbnRHZW5lcmF0ZWQ7XG59KFNldHRpbmdzQ29tcG9uZW50KSk7XG5cbi8qKlxuICogVGhlIGNvbmZpZ3VyYXRpb24gb2YgdGhlIGF4aXMgdGl0bGUgKFtzZWUgZXhhbXBsZV0oeyUgc2x1ZyBhcGlfY2hhcnRzX2F4aXNkZWZhdWx0c2NvbXBvbmVudCAlfSkpLlxuICovXG52YXIgQXhpc0RlZmF1bHRzVGl0bGVDb21wb25lbnQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKEF4aXNEZWZhdWx0c1RpdGxlQ29tcG9uZW50LCBfc3VwZXIpO1xuICAgIC8vIFBsYWNlIGN1c3RvbSBwcm9wZXJ0aWVzIGhlcmVcbiAgICBmdW5jdGlvbiBBeGlzRGVmYXVsdHNUaXRsZUNvbXBvbmVudChjb25maWd1cmF0aW9uU2VydmljZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBjb25maWd1cmF0aW9uU2VydmljZSkgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuY29uZmlndXJhdGlvblNlcnZpY2UgPSBjb25maWd1cmF0aW9uU2VydmljZTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBBeGlzRGVmYXVsdHNUaXRsZUNvbXBvbmVudC5kZWNvcmF0b3JzID0gW1xuICAgICAgICB7IHR5cGU6IENvbXBvbmVudCwgYXJnczogW3tcbiAgICAgICAgICAgICAgICAgICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdG9yOiAna2VuZG8tY2hhcnQtYXhpcy1kZWZhdWx0cy10aXRsZScsXG4gICAgICAgICAgICAgICAgICAgIHRlbXBsYXRlOiAnJ1xuICAgICAgICAgICAgICAgIH0sXSB9LFxuICAgIF07XG4gICAgLyoqIEBub2NvbGxhcHNlICovXG4gICAgQXhpc0RlZmF1bHRzVGl0bGVDb21wb25lbnQuY3RvclBhcmFtZXRlcnMgPSBmdW5jdGlvbiAoKSB7IHJldHVybiBbXG4gICAgICAgIHsgdHlwZTogQ29uZmlndXJhdGlvblNlcnZpY2UgfVxuICAgIF07IH07XG4gICAgcmV0dXJuIEF4aXNEZWZhdWx0c1RpdGxlQ29tcG9uZW50O1xufShBeGlzRGVmYXVsdHNUaXRsZUNvbXBvbmVudEdlbmVyYXRlZCkpO1xuXG4vKipcbiAqIEBoaWRkZW5cbiAqL1xudmFyIENvbGxlY3Rpb25Db21wb25lbnQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gQ29sbGVjdGlvbkNvbXBvbmVudChjb25maWdLZXksIGNvbmZpZ3VyYXRpb25TZXJ2aWNlLCBjb2xsZWN0aW9uU2VydmljZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICB0aGlzLmNvbmZpZ0tleSA9IGNvbmZpZ0tleTtcbiAgICAgICAgdGhpcy5jb25maWd1cmF0aW9uU2VydmljZSA9IGNvbmZpZ3VyYXRpb25TZXJ2aWNlO1xuICAgICAgICB0aGlzLmNvbGxlY3Rpb25TZXJ2aWNlID0gY29sbGVjdGlvblNlcnZpY2U7XG4gICAgICAgIHRoaXMuaXRlbXMgPSBbXTtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24gPSBjb2xsZWN0aW9uU2VydmljZS5vbkl0ZW1DaGFuZ2UkLnN1YnNjcmliZShmdW5jdGlvbiAoY2hhbmdlcykgeyByZXR1cm4gX3RoaXMucHJvY2Vzc0NoYW5nZXMoY2hhbmdlcyk7IH0pO1xuICAgIH1cbiAgICBDb2xsZWN0aW9uQ29tcG9uZW50LnByb3RvdHlwZS5uZ09uRGVzdHJveSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9O1xuICAgIENvbGxlY3Rpb25Db21wb25lbnQucHJvdG90eXBlLm5nQWZ0ZXJDb250ZW50SW5pdCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcbiAgICAgICAgdGhpcy5yZWFkSXRlbXMoKTtcbiAgICAgICAgdGhpcy5jaGlsZHJlbi5jaGFuZ2VzLnN1YnNjcmliZShmdW5jdGlvbiAoKSB7IHJldHVybiBfdGhpcy5yZWFkSXRlbXMoKTsgfSk7XG4gICAgfTtcbiAgICBDb2xsZWN0aW9uQ29tcG9uZW50LnByb3RvdHlwZS5wcm9jZXNzQ2hhbmdlcyA9IGZ1bmN0aW9uIChjaGFuZ2VzKSB7XG4gICAgICAgIGlmICghdGhpcy5jaGlsZHJlbikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHZhciBpbmRleCA9IHRoaXMuY2hpbGRyZW4udG9BcnJheSgpLmluZGV4T2YoY2hhbmdlcy5zZW5kZXIpO1xuICAgICAgICBpZiAoaW5kZXggPCAwKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pdGVtc1tpbmRleF0gPSBjaGFuZ2VzLm9wdGlvbnM7XG4gICAgICAgIHRoaXMuY2hhbmdlKCk7XG4gICAgfTtcbiAgICBDb2xsZWN0aW9uQ29tcG9uZW50LnByb3RvdHlwZS5yZWFkSXRlbXMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHRoaXMuaXRlbXMgPSB0aGlzLmNoaWxkcmVuLm1hcChmdW5jdGlvbiAocykgeyByZXR1cm4gcy5vcHRpb25zOyB9KTtcbiAgICAgICAgdGhpcy5jaGFuZ2UoKTtcbiAgICB9O1xuICAgIENvbGxlY3Rpb25Db21wb25lbnQucHJvdG90eXBlLmNoYW5nZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdGhpcy5jb25maWd1cmF0aW9uU2VydmljZS5ub3RpZnkobmV3IENoYW5nZSh0aGlzLmNvbmZpZ0tleSwgdGhpcy5pdGVtcykpO1xuICAgIH07XG4gICAgcmV0dXJuIENvbGxlY3Rpb25Db21wb25lbnQ7XG59KCkpO1xuXG4vKipcbiAqIFNwZWNpZmllcyB0aGUgYHdlZWtTdGFydERheWAgb2YgYSBbQ2F0ZWdvcnlBeGlzSXRlbUNvbXBvbmVudF0oeyUgc2x1ZyBhcGlfY2hhcnRzX2NhdGVnb3J5YXhpc2l0ZW1jb21wb25lbnQgJX0pLlxuICovXG52YXIgV2Vla1N0YXJ0RGF5O1xuKGZ1bmN0aW9uIChXZWVrU3RhcnREYXkpIHtcbiAgICAvKipcbiAgICAgKiBTcGVjaWZpZXMgU3VuZGF5IGFzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICovXG4gICAgV2Vla1N0YXJ0RGF5W1dlZWtTdGFydERheVtcIlN1bmRheVwiXSA9IDBdID0gXCJTdW5kYXlcIjtcbiAgICAvKipcbiAgICAgKiBTcGVjaWZpZXMgTW9uZGF5IGFzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICovXG4gICAgV2Vla1N0YXJ0RGF5W1dlZWtTdGFydERheVtcIk1vbmRheVwiXSA9IDFdID0gXCJNb25kYXlcIjtcbiAgICAvKipcbiAgICAgKiBTcGVjaWZpZXMgVHVlc2RheSBhcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAqL1xuICAgIFdlZWtTdGFydERheVtXZWVrU3RhcnREYXlbXCJUdWVzZGF5XCJdID0gMl0gPSBcIlR1ZXNkYXlcIjtcbiAgICAvKipcbiAgICAgKiBTcGVjaWZpZXMgV2VkbmVzZGF5IGFzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICovXG4gICAgV2Vla1N0YXJ0RGF5W1dlZWtTdGFydERheVtcIldlZG5lc2RheVwiXSA9IDNdID0gXCJXZWRuZXNkYXlcIjtcbiAgICAvKipcbiAgICAgKiBTcGVjaWZpZXMgVGh1cnNkYXkgYXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgKi9cbiAgICBXZWVrU3RhcnREYXlbV2Vla1N0YXJ0RGF5W1wiVGh1cnNkYXlcIl0gPSA0XSA9IFwiVGh1cnNkYXlcIjtcbiAgICAvKipcbiAgICAgKiBTcGVjaWZpZXMgRnJpZGF5IGFzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICovXG4gICAgV2Vla1N0YXJ0RGF5W1dlZWtTdGFydERheVtcIkZyaWRheVwiXSA9IDVdID0gXCJGcmlkYXlcIjtcbiAgICAvKipcbiAgICAgKiBTcGVjaWZpZXMgU2F0dXJkYXkgYXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgKi9cbiAgICBXZWVrU3RhcnREYXlbV2Vla1N0YXJ0RGF5W1wiU2F0dXJkYXlcIl0gPSA2XSA9IFwiU2F0dXJkYXlcIjtcbn0pKFdlZWtTdGFydERheSB8fCAoV2Vla1N0YXJ0RGF5ID0ge30pKTtcblxuLyoqXG4gKiBAaGlkZGVuXG4gKi9cbnZhciBDYXRlZ29yeUF4aXNJdGVtQ29tcG9uZW50R2VuZXJhdGVkID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhDYXRlZ29yeUF4aXNJdGVtQ29tcG9uZW50R2VuZXJhdGVkLCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIENhdGVnb3J5QXhpc0l0ZW1Db21wb25lbnRHZW5lcmF0ZWQoY29uZmlndXJhdGlvblNlcnZpY2UsIGNvbGxlY3Rpb25TZXJ2aWNlLCBpbnRsLCBsb2NhbGVJZCkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBjb25maWd1cmF0aW9uU2VydmljZSwgY29sbGVjdGlvblNlcnZpY2UpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlID0gY29uZmlndXJhdGlvblNlcnZpY2U7XG4gICAgICAgIF90aGlzLmNvbGxlY3Rpb25TZXJ2aWNlID0gY29sbGVjdGlvblNlcnZpY2U7XG4gICAgICAgIF90aGlzLm5vdGlmeUNoYW5nZXMoeyB3ZWVrU3RhcnREYXk6IGludGwuZmlyc3REYXkobG9jYWxlSWQpIH0pO1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIENhdGVnb3J5QXhpc0l0ZW1Db21wb25lbnRHZW5lcmF0ZWQucHJvcERlY29yYXRvcnMgPSB7XG4gICAgICAgIGF1dG9CYXNlVW5pdFN0ZXBzOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgYXhpc0Nyb3NzaW5nVmFsdWU6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBiYWNrZ3JvdW5kOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgYmFzZVVuaXQ6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBiYXNlVW5pdFN0ZXA6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBjYXRlZ29yaWVzOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgY29sb3I6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBqdXN0aWZpZWQ6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBsaW5lOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgbWFqb3JHcmlkTGluZXM6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBtYWpvclRpY2tzOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgbWF4OiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgbWF4RGF0ZUdyb3VwczogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIG1heERpdmlzaW9uczogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIG1pbjogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIG1pbm9yR3JpZExpbmVzOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgbWlub3JUaWNrczogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIG5hbWU6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBwYW5lOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgcGxvdEJhbmRzOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgcmV2ZXJzZTogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHJvdW5kVG9CYXNlVW5pdDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHN0YXJ0QW5nbGU6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICB0eXBlOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgdmlzaWJsZTogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHdlZWtTdGFydERheTogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGNyb3NzaGFpcjogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGxhYmVsczogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIG5vdGVzOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgc2VsZWN0OiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgdGl0bGU6IFt7IHR5cGU6IElucHV0IH1dXG4gICAgfTtcbiAgICByZXR1cm4gQ2F0ZWdvcnlBeGlzSXRlbUNvbXBvbmVudEdlbmVyYXRlZDtcbn0oQ29sbGVjdGlvbkl0ZW1Db21wb25lbnQpKTtcblxuLyoqXG4gKiBUaGUgY29uZmlndXJhdGlvbiBjb21wb25lbnQgZm9yIGEgY2F0ZWdvcnkgYXhpcyAoW3NlZSBleGFtcGxlXSh7JSBzbHVnIGF4ZXNfY2hhcnRfY2hhcnRzICV9KSkuXG4gKi9cbnZhciBDYXRlZ29yeUF4aXNJdGVtQ29tcG9uZW50ID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhDYXRlZ29yeUF4aXNJdGVtQ29tcG9uZW50LCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIENhdGVnb3J5QXhpc0l0ZW1Db21wb25lbnQoY29uZmlndXJhdGlvblNlcnZpY2UsIGNvbGxlY3Rpb25TZXJ2aWNlLCBpbnRsLCBsb2NhbGVJZCkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBjb25maWd1cmF0aW9uU2VydmljZSwgY29sbGVjdGlvblNlcnZpY2UsIGludGwsIGxvY2FsZUlkKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5jb25maWd1cmF0aW9uU2VydmljZSA9IGNvbmZpZ3VyYXRpb25TZXJ2aWNlO1xuICAgICAgICBfdGhpcy5jb2xsZWN0aW9uU2VydmljZSA9IGNvbGxlY3Rpb25TZXJ2aWNlO1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIENhdGVnb3J5QXhpc0l0ZW1Db21wb25lbnQuZGVjb3JhdG9ycyA9IFtcbiAgICAgICAgeyB0eXBlOiBDb21wb25lbnQsIGFyZ3M6IFt7XG4gICAgICAgICAgICAgICAgICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgICAgICAgICAgICAgICAgICBwcm92aWRlcnM6IFtDb25maWd1cmF0aW9uU2VydmljZV0sXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdG9yOiAna2VuZG8tY2hhcnQtY2F0ZWdvcnktYXhpcy1pdGVtJyxcbiAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGU6ICcnXG4gICAgICAgICAgICAgICAgfSxdIH0sXG4gICAgXTtcbiAgICAvKiogQG5vY29sbGFwc2UgKi9cbiAgICBDYXRlZ29yeUF4aXNJdGVtQ29tcG9uZW50LmN0b3JQYXJhbWV0ZXJzID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gW1xuICAgICAgICB7IHR5cGU6IENvbmZpZ3VyYXRpb25TZXJ2aWNlIH0sXG4gICAgICAgIHsgdHlwZTogQ29sbGVjdGlvblNlcnZpY2UgfSxcbiAgICAgICAgeyB0eXBlOiBJbnRsU2VydmljZSB9LFxuICAgICAgICB7IHR5cGU6IFN0cmluZywgZGVjb3JhdG9yczogW3sgdHlwZTogSW5qZWN0LCBhcmdzOiBbTE9DQUxFX0lELF0gfV0gfVxuICAgIF07IH07XG4gICAgcmV0dXJuIENhdGVnb3J5QXhpc0l0ZW1Db21wb25lbnQ7XG59KENhdGVnb3J5QXhpc0l0ZW1Db21wb25lbnRHZW5lcmF0ZWQpKTtcblxuLyoqXG4gKiBAaGlkZGVuXG4gKi9cbnZhciBDYXRlZ29yeUF4aXNDb21wb25lbnRHZW5lcmF0ZWQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKENhdGVnb3J5QXhpc0NvbXBvbmVudEdlbmVyYXRlZCwgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBDYXRlZ29yeUF4aXNDb21wb25lbnRHZW5lcmF0ZWQoY29uZmlndXJhdGlvblNlcnZpY2UsIGNvbGxlY3Rpb25TZXJ2aWNlKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsICdjYXRlZ29yeUF4aXMnLCBjb25maWd1cmF0aW9uU2VydmljZSwgY29sbGVjdGlvblNlcnZpY2UpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlID0gY29uZmlndXJhdGlvblNlcnZpY2U7XG4gICAgICAgIF90aGlzLmNvbGxlY3Rpb25TZXJ2aWNlID0gY29sbGVjdGlvblNlcnZpY2U7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgQ2F0ZWdvcnlBeGlzQ29tcG9uZW50R2VuZXJhdGVkLnByb3BEZWNvcmF0b3JzID0ge1xuICAgICAgICBjaGlsZHJlbjogW3sgdHlwZTogQ29udGVudENoaWxkcmVuLCBhcmdzOiBbQ2F0ZWdvcnlBeGlzSXRlbUNvbXBvbmVudCxdIH1dXG4gICAgfTtcbiAgICByZXR1cm4gQ2F0ZWdvcnlBeGlzQ29tcG9uZW50R2VuZXJhdGVkO1xufShDb2xsZWN0aW9uQ29tcG9uZW50KSk7XG5cbi8qKlxuICogQSBjb2xsZWN0aW9uIG9mIG9uZSBvciBtb3JlIGNhdGVnb3J5IGF4aXMgaXRlbXMuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbiAqXG4gKiBfQENvbXBvbmVudCh7XG4gKiAgIHNlbGVjdG9yOiAnbXktYXBwJyxcbiAqICAgdGVtcGxhdGU6IGBcbiAqICAgICA8a2VuZG8tY2hhcnQ+XG4gKiAgICAgICA8a2VuZG8tY2hhcnQtY2F0ZWdvcnktYXhpcz5cbiAqICAgICAgICAgPGtlbmRvLWNoYXJ0LWNhdGVnb3J5LWF4aXMtaXRlbSBbY2F0ZWdvcmllc109XCJbMjAxNSwgMjAxNl1cIiBjb2xvcj1cIiNmMDBcIj5cbiAqICAgICAgICAgPC9rZW5kby1jaGFydC1jYXRlZ29yeS1heGlzLWl0ZW0+XG4gKiAgICAgICA8L2tlbmRvLWNoYXJ0LWNhdGVnb3J5LWF4aXM+XG4gKiAgICAgICA8a2VuZG8tY2hhcnQtc2VyaWVzPlxuICogICAgICAgICA8a2VuZG8tY2hhcnQtc2VyaWVzLWl0ZW0gdHlwZT1cImxpbmVcIiBbZGF0YV09XCJbMSwgMiwgM11cIj5cbiAqICAgICAgICAgPC9rZW5kby1jaGFydC1zZXJpZXMtaXRlbT5cbiAqICAgICAgIDwva2VuZG8tY2hhcnQtc2VyaWVzPlxuICogICAgIDwva2VuZG8tY2hhcnQ+XG4gKiAgIGBcbiAqIH0pXG4gKiBjbGFzcyBBcHBDb21wb25lbnQge1xuICogfVxuICogYGBgXG4gKi9cbnZhciBDYXRlZ29yeUF4aXNDb21wb25lbnQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKENhdGVnb3J5QXhpc0NvbXBvbmVudCwgX3N1cGVyKTtcbiAgICAvLyBQbGFjZSBjdXN0b20gcHJvcGVydGllcyBoZXJlXG4gICAgZnVuY3Rpb24gQ2F0ZWdvcnlBeGlzQ29tcG9uZW50KGNvbmZpZ3VyYXRpb25TZXJ2aWNlLCBjb2xsZWN0aW9uU2VydmljZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBjb25maWd1cmF0aW9uU2VydmljZSwgY29sbGVjdGlvblNlcnZpY2UpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlID0gY29uZmlndXJhdGlvblNlcnZpY2U7XG4gICAgICAgIF90aGlzLmNvbGxlY3Rpb25TZXJ2aWNlID0gY29sbGVjdGlvblNlcnZpY2U7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgQ2F0ZWdvcnlBeGlzQ29tcG9uZW50LmRlY29yYXRvcnMgPSBbXG4gICAgICAgIHsgdHlwZTogQ29tcG9uZW50LCBhcmdzOiBbe1xuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZXJzOiBbQ29sbGVjdGlvblNlcnZpY2VdLFxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RvcjogJ2tlbmRvLWNoYXJ0LWNhdGVnb3J5LWF4aXMnLFxuICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZTogJydcbiAgICAgICAgICAgICAgICB9LF0gfSxcbiAgICBdO1xuICAgIC8qKiBAbm9jb2xsYXBzZSAqL1xuICAgIENhdGVnb3J5QXhpc0NvbXBvbmVudC5jdG9yUGFyYW1ldGVycyA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIFtcbiAgICAgICAgeyB0eXBlOiBDb25maWd1cmF0aW9uU2VydmljZSB9LFxuICAgICAgICB7IHR5cGU6IENvbGxlY3Rpb25TZXJ2aWNlIH1cbiAgICBdOyB9O1xuICAgIHJldHVybiBDYXRlZ29yeUF4aXNDb21wb25lbnQ7XG59KENhdGVnb3J5QXhpc0NvbXBvbmVudEdlbmVyYXRlZCkpO1xuXG4vKipcbiAqIEBoaWRkZW5cbiAqL1xudmFyIENhdGVnb3J5QXhpc0Nyb3NzaGFpckNvbXBvbmVudEdlbmVyYXRlZCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoQ2F0ZWdvcnlBeGlzQ3Jvc3NoYWlyQ29tcG9uZW50R2VuZXJhdGVkLCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIENhdGVnb3J5QXhpc0Nyb3NzaGFpckNvbXBvbmVudEdlbmVyYXRlZChjb25maWd1cmF0aW9uU2VydmljZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCAnY3Jvc3NoYWlyJywgY29uZmlndXJhdGlvblNlcnZpY2UpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlID0gY29uZmlndXJhdGlvblNlcnZpY2U7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgQ2F0ZWdvcnlBeGlzQ3Jvc3NoYWlyQ29tcG9uZW50R2VuZXJhdGVkLnByb3BEZWNvcmF0b3JzID0ge1xuICAgICAgICBjb2xvcjogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGRhc2hUeXBlOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgb3BhY2l0eTogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHZpc2libGU6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICB3aWR0aDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHRvb2x0aXA6IFt7IHR5cGU6IElucHV0IH1dXG4gICAgfTtcbiAgICByZXR1cm4gQ2F0ZWdvcnlBeGlzQ3Jvc3NoYWlyQ29tcG9uZW50R2VuZXJhdGVkO1xufShTZXR0aW5nc0NvbXBvbmVudCkpO1xuXG4vKipcbiAqIFRoZSBjcm9zc2hhaXIgY29uZmlndXJhdGlvbiBvcHRpb25zIChbc2VlIGV4YW1wbGVdKHslIHNsdWcgY3Jvc3NoYWlyc19jaGFydF9jaGFydHMgJX0pKS5cbiAqL1xudmFyIENhdGVnb3J5QXhpc0Nyb3NzaGFpckNvbXBvbmVudCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoQ2F0ZWdvcnlBeGlzQ3Jvc3NoYWlyQ29tcG9uZW50LCBfc3VwZXIpO1xuICAgIC8vIFBsYWNlIGN1c3RvbSBwcm9wZXJ0aWVzIGhlcmVcbiAgICBmdW5jdGlvbiBDYXRlZ29yeUF4aXNDcm9zc2hhaXJDb21wb25lbnQoY29uZmlndXJhdGlvblNlcnZpY2UpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgY29uZmlndXJhdGlvblNlcnZpY2UpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlID0gY29uZmlndXJhdGlvblNlcnZpY2U7XG4gICAgICAgIF90aGlzLm1hcmtBc1Zpc2libGUoKTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBDYXRlZ29yeUF4aXNDcm9zc2hhaXJDb21wb25lbnQuZGVjb3JhdG9ycyA9IFtcbiAgICAgICAgeyB0eXBlOiBDb21wb25lbnQsIGFyZ3M6IFt7XG4gICAgICAgICAgICAgICAgICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RvcjogJ2tlbmRvLWNoYXJ0LWNhdGVnb3J5LWF4aXMtaXRlbS1jcm9zc2hhaXInLFxuICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZTogJydcbiAgICAgICAgICAgICAgICB9LF0gfSxcbiAgICBdO1xuICAgIC8qKiBAbm9jb2xsYXBzZSAqL1xuICAgIENhdGVnb3J5QXhpc0Nyb3NzaGFpckNvbXBvbmVudC5jdG9yUGFyYW1ldGVycyA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIFtcbiAgICAgICAgeyB0eXBlOiBDb25maWd1cmF0aW9uU2VydmljZSB9XG4gICAgXTsgfTtcbiAgICByZXR1cm4gQ2F0ZWdvcnlBeGlzQ3Jvc3NoYWlyQ29tcG9uZW50O1xufShDYXRlZ29yeUF4aXNDcm9zc2hhaXJDb21wb25lbnRHZW5lcmF0ZWQpKTtcblxuLyoqXG4gKiBAaGlkZGVuXG4gKi9cbnZhciBDYXRlZ29yeUF4aXNDcm9zc2hhaXJUb29sdGlwQ29tcG9uZW50R2VuZXJhdGVkID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhDYXRlZ29yeUF4aXNDcm9zc2hhaXJUb29sdGlwQ29tcG9uZW50R2VuZXJhdGVkLCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIENhdGVnb3J5QXhpc0Nyb3NzaGFpclRvb2x0aXBDb21wb25lbnRHZW5lcmF0ZWQoY29uZmlndXJhdGlvblNlcnZpY2UpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgJ2Nyb3NzaGFpci50b29sdGlwJywgY29uZmlndXJhdGlvblNlcnZpY2UpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlID0gY29uZmlndXJhdGlvblNlcnZpY2U7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgQ2F0ZWdvcnlBeGlzQ3Jvc3NoYWlyVG9vbHRpcENvbXBvbmVudEdlbmVyYXRlZC5wcm9wRGVjb3JhdG9ycyA9IHtcbiAgICAgICAgYmFja2dyb3VuZDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGJvcmRlcjogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGNvbG9yOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgZm9udDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGZvcm1hdDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHBhZGRpbmc6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICB2aXNpYmxlOiBbeyB0eXBlOiBJbnB1dCB9XVxuICAgIH07XG4gICAgcmV0dXJuIENhdGVnb3J5QXhpc0Nyb3NzaGFpclRvb2x0aXBDb21wb25lbnRHZW5lcmF0ZWQ7XG59KFNldHRpbmdzQ29tcG9uZW50KSk7XG5cbi8qKlxuICogVGhlIG9wdGlvbnMgb2YgdGhlIGNyb3NzaGFpciB0b29sdGlwIChbc2VlIGV4YW1wbGVdKHslIHNsdWcgY3Jvc3NoYWlyc19jaGFydF9jaGFydHMgJX0pKS5cbiAqIFRoZSBjcm9zc2hhaXIgdG9vbHRpcCBpcyBkaXNwbGF5ZWQgd2hlbiB0aGUgYHZpc2libGVgIG9wdGlvbiBpcyBzZXQgdG8gYHRydWVgLlxuICovXG52YXIgQ2F0ZWdvcnlBeGlzQ3Jvc3NoYWlyVG9vbHRpcENvbXBvbmVudCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoQ2F0ZWdvcnlBeGlzQ3Jvc3NoYWlyVG9vbHRpcENvbXBvbmVudCwgX3N1cGVyKTtcbiAgICAvLyBQbGFjZSBjdXN0b20gcHJvcGVydGllcyBoZXJlXG4gICAgZnVuY3Rpb24gQ2F0ZWdvcnlBeGlzQ3Jvc3NoYWlyVG9vbHRpcENvbXBvbmVudChjb25maWd1cmF0aW9uU2VydmljZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBjb25maWd1cmF0aW9uU2VydmljZSkgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuY29uZmlndXJhdGlvblNlcnZpY2UgPSBjb25maWd1cmF0aW9uU2VydmljZTtcbiAgICAgICAgX3RoaXMubWFya0FzVmlzaWJsZSgpO1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIENhdGVnb3J5QXhpc0Nyb3NzaGFpclRvb2x0aXBDb21wb25lbnQuZGVjb3JhdG9ycyA9IFtcbiAgICAgICAgeyB0eXBlOiBDb21wb25lbnQsIGFyZ3M6IFt7XG4gICAgICAgICAgICAgICAgICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RvcjogJ2tlbmRvLWNoYXJ0LWNhdGVnb3J5LWF4aXMtaXRlbS1jcm9zc2hhaXItdG9vbHRpcCcsXG4gICAgICAgICAgICAgICAgICAgIHRlbXBsYXRlOiAnJ1xuICAgICAgICAgICAgICAgIH0sXSB9LFxuICAgIF07XG4gICAgLyoqIEBub2NvbGxhcHNlICovXG4gICAgQ2F0ZWdvcnlBeGlzQ3Jvc3NoYWlyVG9vbHRpcENvbXBvbmVudC5jdG9yUGFyYW1ldGVycyA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIFtcbiAgICAgICAgeyB0eXBlOiBDb25maWd1cmF0aW9uU2VydmljZSB9XG4gICAgXTsgfTtcbiAgICByZXR1cm4gQ2F0ZWdvcnlBeGlzQ3Jvc3NoYWlyVG9vbHRpcENvbXBvbmVudDtcbn0oQ2F0ZWdvcnlBeGlzQ3Jvc3NoYWlyVG9vbHRpcENvbXBvbmVudEdlbmVyYXRlZCkpO1xuXG4vKipcbiAqIEBoaWRkZW5cbiAqL1xudmFyIENhdGVnb3J5QXhpc0xhYmVsc0NvbXBvbmVudEdlbmVyYXRlZCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoQ2F0ZWdvcnlBeGlzTGFiZWxzQ29tcG9uZW50R2VuZXJhdGVkLCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIENhdGVnb3J5QXhpc0xhYmVsc0NvbXBvbmVudEdlbmVyYXRlZChjb25maWd1cmF0aW9uU2VydmljZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCAnbGFiZWxzJywgY29uZmlndXJhdGlvblNlcnZpY2UpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlID0gY29uZmlndXJhdGlvblNlcnZpY2U7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgQ2F0ZWdvcnlBeGlzTGFiZWxzQ29tcG9uZW50R2VuZXJhdGVkLnByb3BEZWNvcmF0b3JzID0ge1xuICAgICAgICBiYWNrZ3JvdW5kOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgYm9yZGVyOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgY29sb3I6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBjb250ZW50OiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgY3VsdHVyZTogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGRhdGVGb3JtYXRzOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgZm9udDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGZvcm1hdDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIG1hcmdpbjogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIG1pcnJvcjogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHBhZGRpbmc6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBwb3NpdGlvbjogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHJvdGF0aW9uOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgc2tpcDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHN0ZXA6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICB2aXNpYmxlOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgdmlzdWFsOiBbeyB0eXBlOiBJbnB1dCB9XVxuICAgIH07XG4gICAgcmV0dXJuIENhdGVnb3J5QXhpc0xhYmVsc0NvbXBvbmVudEdlbmVyYXRlZDtcbn0oU2V0dGluZ3NDb21wb25lbnQpKTtcblxuLyoqXG4gKiBUaGUgY29uZmlndXJhdGlvbiBvZiB0aGUgYXhpcyBsYWJlbHMgKFtzZWUgZXhhbXBsZV0oeyUgc2x1ZyBsYWJlbHNfY2hhcnRfY2hhcnRzICV9KSkuXG4gKi9cbnZhciBDYXRlZ29yeUF4aXNMYWJlbHNDb21wb25lbnQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKENhdGVnb3J5QXhpc0xhYmVsc0NvbXBvbmVudCwgX3N1cGVyKTtcbiAgICAvLyBQbGFjZSBjdXN0b20gcHJvcGVydGllcyBoZXJlXG4gICAgZnVuY3Rpb24gQ2F0ZWdvcnlBeGlzTGFiZWxzQ29tcG9uZW50KGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsIGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5jb25maWd1cmF0aW9uU2VydmljZSA9IGNvbmZpZ3VyYXRpb25TZXJ2aWNlO1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIENhdGVnb3J5QXhpc0xhYmVsc0NvbXBvbmVudC5kZWNvcmF0b3JzID0gW1xuICAgICAgICB7IHR5cGU6IENvbXBvbmVudCwgYXJnczogW3tcbiAgICAgICAgICAgICAgICAgICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdG9yOiAna2VuZG8tY2hhcnQtY2F0ZWdvcnktYXhpcy1pdGVtLWxhYmVscycsXG4gICAgICAgICAgICAgICAgICAgIHRlbXBsYXRlOiAnJ1xuICAgICAgICAgICAgICAgIH0sXSB9LFxuICAgIF07XG4gICAgLyoqIEBub2NvbGxhcHNlICovXG4gICAgQ2F0ZWdvcnlBeGlzTGFiZWxzQ29tcG9uZW50LmN0b3JQYXJhbWV0ZXJzID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gW1xuICAgICAgICB7IHR5cGU6IENvbmZpZ3VyYXRpb25TZXJ2aWNlIH1cbiAgICBdOyB9O1xuICAgIHJldHVybiBDYXRlZ29yeUF4aXNMYWJlbHNDb21wb25lbnQ7XG59KENhdGVnb3J5QXhpc0xhYmVsc0NvbXBvbmVudEdlbmVyYXRlZCkpO1xuXG4vKipcbiAqIEBoaWRkZW5cbiAqL1xudmFyIENhdGVnb3J5QXhpc05vdGVzQ29tcG9uZW50R2VuZXJhdGVkID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhDYXRlZ29yeUF4aXNOb3Rlc0NvbXBvbmVudEdlbmVyYXRlZCwgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBDYXRlZ29yeUF4aXNOb3Rlc0NvbXBvbmVudEdlbmVyYXRlZChjb25maWd1cmF0aW9uU2VydmljZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCAnbm90ZXMnLCBjb25maWd1cmF0aW9uU2VydmljZSkgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuY29uZmlndXJhdGlvblNlcnZpY2UgPSBjb25maWd1cmF0aW9uU2VydmljZTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBDYXRlZ29yeUF4aXNOb3Rlc0NvbXBvbmVudEdlbmVyYXRlZC5wcm9wRGVjb3JhdG9ycyA9IHtcbiAgICAgICAgZGF0YTogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGxpbmU6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBwb3NpdGlvbjogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHZpc3VhbDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGljb246IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBsYWJlbDogW3sgdHlwZTogSW5wdXQgfV1cbiAgICB9O1xuICAgIHJldHVybiBDYXRlZ29yeUF4aXNOb3Rlc0NvbXBvbmVudEdlbmVyYXRlZDtcbn0oU2V0dGluZ3NDb21wb25lbnQpKTtcblxuLyoqXG4gKiBUaGUgY29uZmlndXJhdGlvbiBvZiB0aGUgY2F0ZWdvcnkgYXhpcyBub3RlcyAoW3NlZSBleGFtcGxlXSh7JSBzbHVnIG5vdGVzX2NoYXJ0X2NoYXJ0cyAlfSN0b2MtYXhpcy1ub3RlcykpLlxuICovXG52YXIgQ2F0ZWdvcnlBeGlzTm90ZXNDb21wb25lbnQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKENhdGVnb3J5QXhpc05vdGVzQ29tcG9uZW50LCBfc3VwZXIpO1xuICAgIC8vIFBsYWNlIGN1c3RvbSBwcm9wZXJ0aWVzIGhlcmVcbiAgICBmdW5jdGlvbiBDYXRlZ29yeUF4aXNOb3Rlc0NvbXBvbmVudChjb25maWd1cmF0aW9uU2VydmljZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBjb25maWd1cmF0aW9uU2VydmljZSkgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuY29uZmlndXJhdGlvblNlcnZpY2UgPSBjb25maWd1cmF0aW9uU2VydmljZTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBDYXRlZ29yeUF4aXNOb3Rlc0NvbXBvbmVudC5kZWNvcmF0b3JzID0gW1xuICAgICAgICB7IHR5cGU6IENvbXBvbmVudCwgYXJnczogW3tcbiAgICAgICAgICAgICAgICAgICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdG9yOiAna2VuZG8tY2hhcnQtY2F0ZWdvcnktYXhpcy1pdGVtLW5vdGVzJyxcbiAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGU6ICcnXG4gICAgICAgICAgICAgICAgfSxdIH0sXG4gICAgXTtcbiAgICAvKiogQG5vY29sbGFwc2UgKi9cbiAgICBDYXRlZ29yeUF4aXNOb3Rlc0NvbXBvbmVudC5jdG9yUGFyYW1ldGVycyA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIFtcbiAgICAgICAgeyB0eXBlOiBDb25maWd1cmF0aW9uU2VydmljZSB9XG4gICAgXTsgfTtcbiAgICByZXR1cm4gQ2F0ZWdvcnlBeGlzTm90ZXNDb21wb25lbnQ7XG59KENhdGVnb3J5QXhpc05vdGVzQ29tcG9uZW50R2VuZXJhdGVkKSk7XG5cbi8qKlxuICogQGhpZGRlblxuICovXG52YXIgQ2F0ZWdvcnlBeGlzTm90ZXNJY29uQ29tcG9uZW50R2VuZXJhdGVkID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhDYXRlZ29yeUF4aXNOb3Rlc0ljb25Db21wb25lbnRHZW5lcmF0ZWQsIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gQ2F0ZWdvcnlBeGlzTm90ZXNJY29uQ29tcG9uZW50R2VuZXJhdGVkKGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsICdub3Rlcy5pY29uJywgY29uZmlndXJhdGlvblNlcnZpY2UpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlID0gY29uZmlndXJhdGlvblNlcnZpY2U7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgQ2F0ZWdvcnlBeGlzTm90ZXNJY29uQ29tcG9uZW50R2VuZXJhdGVkLnByb3BEZWNvcmF0b3JzID0ge1xuICAgICAgICBiYWNrZ3JvdW5kOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgYm9yZGVyOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgc2l6ZTogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHR5cGU6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICB2aXNpYmxlOiBbeyB0eXBlOiBJbnB1dCB9XVxuICAgIH07XG4gICAgcmV0dXJuIENhdGVnb3J5QXhpc05vdGVzSWNvbkNvbXBvbmVudEdlbmVyYXRlZDtcbn0oU2V0dGluZ3NDb21wb25lbnQpKTtcblxuLyoqXG4gKiBUaGUgaWNvbiBvZiB0aGUgbm90ZXMuXG4gKi9cbnZhciBDYXRlZ29yeUF4aXNOb3Rlc0ljb25Db21wb25lbnQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKENhdGVnb3J5QXhpc05vdGVzSWNvbkNvbXBvbmVudCwgX3N1cGVyKTtcbiAgICAvLyBQbGFjZSBjdXN0b20gcHJvcGVydGllcyBoZXJlXG4gICAgZnVuY3Rpb24gQ2F0ZWdvcnlBeGlzTm90ZXNJY29uQ29tcG9uZW50KGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsIGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5jb25maWd1cmF0aW9uU2VydmljZSA9IGNvbmZpZ3VyYXRpb25TZXJ2aWNlO1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIENhdGVnb3J5QXhpc05vdGVzSWNvbkNvbXBvbmVudC5kZWNvcmF0b3JzID0gW1xuICAgICAgICB7IHR5cGU6IENvbXBvbmVudCwgYXJnczogW3tcbiAgICAgICAgICAgICAgICAgICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdG9yOiAna2VuZG8tY2hhcnQtY2F0ZWdvcnktYXhpcy1pdGVtLW5vdGVzLWljb24nLFxuICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZTogJydcbiAgICAgICAgICAgICAgICB9LF0gfSxcbiAgICBdO1xuICAgIC8qKiBAbm9jb2xsYXBzZSAqL1xuICAgIENhdGVnb3J5QXhpc05vdGVzSWNvbkNvbXBvbmVudC5jdG9yUGFyYW1ldGVycyA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIFtcbiAgICAgICAgeyB0eXBlOiBDb25maWd1cmF0aW9uU2VydmljZSB9XG4gICAgXTsgfTtcbiAgICByZXR1cm4gQ2F0ZWdvcnlBeGlzTm90ZXNJY29uQ29tcG9uZW50O1xufShDYXRlZ29yeUF4aXNOb3Rlc0ljb25Db21wb25lbnRHZW5lcmF0ZWQpKTtcblxuLyoqXG4gKiBAaGlkZGVuXG4gKi9cbnZhciBDYXRlZ29yeUF4aXNOb3Rlc0xhYmVsQ29tcG9uZW50R2VuZXJhdGVkID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhDYXRlZ29yeUF4aXNOb3Rlc0xhYmVsQ29tcG9uZW50R2VuZXJhdGVkLCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIENhdGVnb3J5QXhpc05vdGVzTGFiZWxDb21wb25lbnRHZW5lcmF0ZWQoY29uZmlndXJhdGlvblNlcnZpY2UpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgJ25vdGVzLmxhYmVsJywgY29uZmlndXJhdGlvblNlcnZpY2UpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlID0gY29uZmlndXJhdGlvblNlcnZpY2U7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgQ2F0ZWdvcnlBeGlzTm90ZXNMYWJlbENvbXBvbmVudEdlbmVyYXRlZC5wcm9wRGVjb3JhdG9ycyA9IHtcbiAgICAgICAgYmFja2dyb3VuZDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGJvcmRlcjogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGNvbG9yOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgY29udGVudDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGZvbnQ6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBmb3JtYXQ6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBwb3NpdGlvbjogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHJvdGF0aW9uOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgdmlzaWJsZTogW3sgdHlwZTogSW5wdXQgfV1cbiAgICB9O1xuICAgIHJldHVybiBDYXRlZ29yeUF4aXNOb3Rlc0xhYmVsQ29tcG9uZW50R2VuZXJhdGVkO1xufShTZXR0aW5nc0NvbXBvbmVudCkpO1xuXG4vKipcbiAqIFRoZSBsYWJlbCBvZiB0aGUgbm90ZXMuXG4gKi9cbnZhciBDYXRlZ29yeUF4aXNOb3Rlc0xhYmVsQ29tcG9uZW50ID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhDYXRlZ29yeUF4aXNOb3Rlc0xhYmVsQ29tcG9uZW50LCBfc3VwZXIpO1xuICAgIC8vIFBsYWNlIGN1c3RvbSBwcm9wZXJ0aWVzIGhlcmVcbiAgICBmdW5jdGlvbiBDYXRlZ29yeUF4aXNOb3Rlc0xhYmVsQ29tcG9uZW50KGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsIGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5jb25maWd1cmF0aW9uU2VydmljZSA9IGNvbmZpZ3VyYXRpb25TZXJ2aWNlO1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIENhdGVnb3J5QXhpc05vdGVzTGFiZWxDb21wb25lbnQuZGVjb3JhdG9ycyA9IFtcbiAgICAgICAgeyB0eXBlOiBDb21wb25lbnQsIGFyZ3M6IFt7XG4gICAgICAgICAgICAgICAgICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RvcjogJ2tlbmRvLWNoYXJ0LWNhdGVnb3J5LWF4aXMtaXRlbS1ub3Rlcy1sYWJlbCcsXG4gICAgICAgICAgICAgICAgICAgIHRlbXBsYXRlOiAnJ1xuICAgICAgICAgICAgICAgIH0sXSB9LFxuICAgIF07XG4gICAgLyoqIEBub2NvbGxhcHNlICovXG4gICAgQ2F0ZWdvcnlBeGlzTm90ZXNMYWJlbENvbXBvbmVudC5jdG9yUGFyYW1ldGVycyA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIFtcbiAgICAgICAgeyB0eXBlOiBDb25maWd1cmF0aW9uU2VydmljZSB9XG4gICAgXTsgfTtcbiAgICByZXR1cm4gQ2F0ZWdvcnlBeGlzTm90ZXNMYWJlbENvbXBvbmVudDtcbn0oQ2F0ZWdvcnlBeGlzTm90ZXNMYWJlbENvbXBvbmVudEdlbmVyYXRlZCkpO1xuXG4vKipcbiAqIEBoaWRkZW5cbiAqL1xudmFyIENhdGVnb3J5QXhpc1NlbGVjdENvbXBvbmVudEdlbmVyYXRlZCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoQ2F0ZWdvcnlBeGlzU2VsZWN0Q29tcG9uZW50R2VuZXJhdGVkLCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIENhdGVnb3J5QXhpc1NlbGVjdENvbXBvbmVudEdlbmVyYXRlZChjb25maWd1cmF0aW9uU2VydmljZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCAnc2VsZWN0JywgY29uZmlndXJhdGlvblNlcnZpY2UpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlID0gY29uZmlndXJhdGlvblNlcnZpY2U7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgQ2F0ZWdvcnlBeGlzU2VsZWN0Q29tcG9uZW50R2VuZXJhdGVkLnByb3BEZWNvcmF0b3JzID0ge1xuICAgICAgICBmcm9tOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgbWF4OiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgbWluOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgbW91c2V3aGVlbDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHRvOiBbeyB0eXBlOiBJbnB1dCB9XVxuICAgIH07XG4gICAgcmV0dXJuIENhdGVnb3J5QXhpc1NlbGVjdENvbXBvbmVudEdlbmVyYXRlZDtcbn0oU2V0dGluZ3NDb21wb25lbnQpKTtcblxuLyoqXG4gKiBUaGUgc2VsZWN0ZWQgYXhpcyByYW5nZS4gSWYgc2V0LCB0aGUgYXhpcyBzZWxlY3Rpb24gaXMgZW5hYmxlZC4gVGhlIHJhbmdlIGlzIGluZGV4LWJhc2VkIGFuZCBzdGFydHMgZnJvbSB6ZXJvLlxuICogQ2F0ZWdvcmllcyB3aXRoIGluZGV4ZXMgaW4gdGhlXG4gKiAoW2BzZWxlY3QuZnJvbWBdKHslIHNsdWcgYXBpX2NoYXJ0c19jYXRlZ29yeWF4aXNzZWxlY3Rjb21wb25lbnQgJX0jdG9jLWZyb20pXG4gKiAmbWRhc2g7W2BzZWxlY3QudG9gXSh7JSBzbHVnIGFwaV9jaGFydHNfY2F0ZWdvcnlheGlzc2VsZWN0Y29tcG9uZW50ICV9I3RvYy10bykpIHJhbmdlIHdpbGwgYmUgc2VsZWN0ZWQuXG4gKiBUaGlzIG1lYW5zIHRoYXQgdGhlIGxhc3QgY2F0ZWdvcnkgaW4gdGhlIHJhbmdlIHdpbGwgbm90IGJlIGluY2x1ZGVkIGluIHRoZSBzZWxlY3Rpb24uXG4gKiBJZiB0aGUgY2F0ZWdvcmllcyBhcmUgZGF0ZXMsIHRoZSByYW5nZSBoYXMgdG8gYmUgYWxzbyBzcGVjaWZpZWQgd2l0aCBkYXRlIHZhbHVlcy5cbiAqL1xudmFyIENhdGVnb3J5QXhpc1NlbGVjdENvbXBvbmVudCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoQ2F0ZWdvcnlBeGlzU2VsZWN0Q29tcG9uZW50LCBfc3VwZXIpO1xuICAgIC8vIFBsYWNlIGN1c3RvbSBwcm9wZXJ0aWVzIGhlcmVcbiAgICBmdW5jdGlvbiBDYXRlZ29yeUF4aXNTZWxlY3RDb21wb25lbnQoY29uZmlndXJhdGlvblNlcnZpY2UpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgY29uZmlndXJhdGlvblNlcnZpY2UpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlID0gY29uZmlndXJhdGlvblNlcnZpY2U7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgQ2F0ZWdvcnlBeGlzU2VsZWN0Q29tcG9uZW50LmRlY29yYXRvcnMgPSBbXG4gICAgICAgIHsgdHlwZTogQ29tcG9uZW50LCBhcmdzOiBbe1xuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0b3I6ICdrZW5kby1jaGFydC1jYXRlZ29yeS1heGlzLWl0ZW0tc2VsZWN0JyxcbiAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGU6ICcnXG4gICAgICAgICAgICAgICAgfSxdIH0sXG4gICAgXTtcbiAgICAvKiogQG5vY29sbGFwc2UgKi9cbiAgICBDYXRlZ29yeUF4aXNTZWxlY3RDb21wb25lbnQuY3RvclBhcmFtZXRlcnMgPSBmdW5jdGlvbiAoKSB7IHJldHVybiBbXG4gICAgICAgIHsgdHlwZTogQ29uZmlndXJhdGlvblNlcnZpY2UgfVxuICAgIF07IH07XG4gICAgcmV0dXJuIENhdGVnb3J5QXhpc1NlbGVjdENvbXBvbmVudDtcbn0oQ2F0ZWdvcnlBeGlzU2VsZWN0Q29tcG9uZW50R2VuZXJhdGVkKSk7XG5cbi8qKlxuICogQGhpZGRlblxuICovXG52YXIgQ2F0ZWdvcnlBeGlzVGl0bGVDb21wb25lbnRHZW5lcmF0ZWQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKENhdGVnb3J5QXhpc1RpdGxlQ29tcG9uZW50R2VuZXJhdGVkLCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIENhdGVnb3J5QXhpc1RpdGxlQ29tcG9uZW50R2VuZXJhdGVkKGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsICd0aXRsZScsIGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5jb25maWd1cmF0aW9uU2VydmljZSA9IGNvbmZpZ3VyYXRpb25TZXJ2aWNlO1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIENhdGVnb3J5QXhpc1RpdGxlQ29tcG9uZW50R2VuZXJhdGVkLnByb3BEZWNvcmF0b3JzID0ge1xuICAgICAgICBiYWNrZ3JvdW5kOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgYm9yZGVyOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgY29sb3I6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBmb250OiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgbWFyZ2luOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgcGFkZGluZzogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHBvc2l0aW9uOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgcm90YXRpb246IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICB0ZXh0OiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgdmlzaWJsZTogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHZpc3VhbDogW3sgdHlwZTogSW5wdXQgfV1cbiAgICB9O1xuICAgIHJldHVybiBDYXRlZ29yeUF4aXNUaXRsZUNvbXBvbmVudEdlbmVyYXRlZDtcbn0oU2V0dGluZ3NDb21wb25lbnQpKTtcblxuLyoqXG4gKiBUaGUgY29uZmlndXJhdGlvbiBvZiB0aGUgY2F0ZWdvcnkgYXhpcyB0aXRsZS5cbiAqL1xudmFyIENhdGVnb3J5QXhpc1RpdGxlQ29tcG9uZW50ID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhDYXRlZ29yeUF4aXNUaXRsZUNvbXBvbmVudCwgX3N1cGVyKTtcbiAgICAvLyBQbGFjZSBjdXN0b20gcHJvcGVydGllcyBoZXJlXG4gICAgZnVuY3Rpb24gQ2F0ZWdvcnlBeGlzVGl0bGVDb21wb25lbnQoY29uZmlndXJhdGlvblNlcnZpY2UpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgY29uZmlndXJhdGlvblNlcnZpY2UpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlID0gY29uZmlndXJhdGlvblNlcnZpY2U7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgQ2F0ZWdvcnlBeGlzVGl0bGVDb21wb25lbnQuZGVjb3JhdG9ycyA9IFtcbiAgICAgICAgeyB0eXBlOiBDb21wb25lbnQsIGFyZ3M6IFt7XG4gICAgICAgICAgICAgICAgICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RvcjogJ2tlbmRvLWNoYXJ0LWNhdGVnb3J5LWF4aXMtaXRlbS10aXRsZScsXG4gICAgICAgICAgICAgICAgICAgIHRlbXBsYXRlOiAnJ1xuICAgICAgICAgICAgICAgIH0sXSB9LFxuICAgIF07XG4gICAgLyoqIEBub2NvbGxhcHNlICovXG4gICAgQ2F0ZWdvcnlBeGlzVGl0bGVDb21wb25lbnQuY3RvclBhcmFtZXRlcnMgPSBmdW5jdGlvbiAoKSB7IHJldHVybiBbXG4gICAgICAgIHsgdHlwZTogQ29uZmlndXJhdGlvblNlcnZpY2UgfVxuICAgIF07IH07XG4gICAgcmV0dXJuIENhdGVnb3J5QXhpc1RpdGxlQ29tcG9uZW50O1xufShDYXRlZ29yeUF4aXNUaXRsZUNvbXBvbmVudEdlbmVyYXRlZCkpO1xuXG4vKipcbiAqIEBoaWRkZW5cbiAqL1xudmFyIENoYXJ0QXJlYUNvbXBvbmVudEdlbmVyYXRlZCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoQ2hhcnRBcmVhQ29tcG9uZW50R2VuZXJhdGVkLCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIENoYXJ0QXJlYUNvbXBvbmVudEdlbmVyYXRlZChjb25maWd1cmF0aW9uU2VydmljZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCAnY2hhcnRBcmVhJywgY29uZmlndXJhdGlvblNlcnZpY2UpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlID0gY29uZmlndXJhdGlvblNlcnZpY2U7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgQ2hhcnRBcmVhQ29tcG9uZW50R2VuZXJhdGVkLnByb3BEZWNvcmF0b3JzID0ge1xuICAgICAgICBiYWNrZ3JvdW5kOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgYm9yZGVyOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgaGVpZ2h0OiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgbWFyZ2luOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgb3BhY2l0eTogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHdpZHRoOiBbeyB0eXBlOiBJbnB1dCB9XVxuICAgIH07XG4gICAgcmV0dXJuIENoYXJ0QXJlYUNvbXBvbmVudEdlbmVyYXRlZDtcbn0oU2V0dGluZ3NDb21wb25lbnQpKTtcblxuLyoqXG4gKiBUaGUgY29uZmlndXJhdGlvbiBvcHRpb25zIG9mIHRoZSBDaGFydCBhcmVhLlxuICogUmVwcmVzZW50cyB0aGUgZW50aXJlIHZpc2libGUgYXJlYSBvZiB0aGUgQ2hhcnRcbiAqIChbc2VlIGV4YW1wbGVdKHslIHNsdWcgY2hhcnRhcmVhX2NoYXJ0X2NoYXJ0cyAlfSkpLlxuICovXG52YXIgQ2hhcnRBcmVhQ29tcG9uZW50ID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhDaGFydEFyZWFDb21wb25lbnQsIF9zdXBlcik7XG4gICAgLy8gUGxhY2UgY3VzdG9tIHByb3BlcnRpZXMgaGVyZVxuICAgIGZ1bmN0aW9uIENoYXJ0QXJlYUNvbXBvbmVudChjb25maWd1cmF0aW9uU2VydmljZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBjb25maWd1cmF0aW9uU2VydmljZSkgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuY29uZmlndXJhdGlvblNlcnZpY2UgPSBjb25maWd1cmF0aW9uU2VydmljZTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBDaGFydEFyZWFDb21wb25lbnQuZGVjb3JhdG9ycyA9IFtcbiAgICAgICAgeyB0eXBlOiBDb21wb25lbnQsIGFyZ3M6IFt7XG4gICAgICAgICAgICAgICAgICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RvcjogJ2tlbmRvLWNoYXJ0LWFyZWEnLFxuICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZTogJydcbiAgICAgICAgICAgICAgICB9LF0gfSxcbiAgICBdO1xuICAgIC8qKiBAbm9jb2xsYXBzZSAqL1xuICAgIENoYXJ0QXJlYUNvbXBvbmVudC5jdG9yUGFyYW1ldGVycyA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIFtcbiAgICAgICAgeyB0eXBlOiBDb25maWd1cmF0aW9uU2VydmljZSB9XG4gICAgXTsgfTtcbiAgICByZXR1cm4gQ2hhcnRBcmVhQ29tcG9uZW50O1xufShDaGFydEFyZWFDb21wb25lbnRHZW5lcmF0ZWQpKTtcblxuLyoqXG4gKiBAaGlkZGVuXG4gKi9cbnZhciBMZWdlbmRDb21wb25lbnRHZW5lcmF0ZWQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKExlZ2VuZENvbXBvbmVudEdlbmVyYXRlZCwgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBMZWdlbmRDb21wb25lbnRHZW5lcmF0ZWQoY29uZmlndXJhdGlvblNlcnZpY2UpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgJ2xlZ2VuZCcsIGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5jb25maWd1cmF0aW9uU2VydmljZSA9IGNvbmZpZ3VyYXRpb25TZXJ2aWNlO1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIExlZ2VuZENvbXBvbmVudEdlbmVyYXRlZC5wcm9wRGVjb3JhdG9ycyA9IHtcbiAgICAgICAgYWxpZ246IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBiYWNrZ3JvdW5kOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgYm9yZGVyOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgaGVpZ2h0OiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgbGFiZWxzOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgbWFyZ2luOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgb2Zmc2V0WDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIG9mZnNldFk6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBvcmllbnRhdGlvbjogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHBhZGRpbmc6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBwb3NpdGlvbjogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHJldmVyc2U6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICB2aXNpYmxlOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgd2lkdGg6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBtYXJrZXJzOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgc3BhY2luZzogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGluYWN0aXZlSXRlbXM6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBpdGVtOiBbeyB0eXBlOiBJbnB1dCB9XVxuICAgIH07XG4gICAgcmV0dXJuIExlZ2VuZENvbXBvbmVudEdlbmVyYXRlZDtcbn0oU2V0dGluZ3NDb21wb25lbnQpKTtcblxuLyoqXG4gKiBUaGUgY29uZmlndXJhdGlvbiBvcHRpb25zIG9mIHRoZSBDaGFydCBsZWdlbmRcbiAqIChbc2VlIGV4YW1wbGVdKHslIHNsdWcgbGVnZW5kX2NoYXJ0X2NoYXJ0cyAlfSkpLlxuICovXG52YXIgTGVnZW5kQ29tcG9uZW50ID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhMZWdlbmRDb21wb25lbnQsIF9zdXBlcik7XG4gICAgLy8gUGxhY2UgY3VzdG9tIHByb3BlcnRpZXMgaGVyZVxuICAgIGZ1bmN0aW9uIExlZ2VuZENvbXBvbmVudChjb25maWd1cmF0aW9uU2VydmljZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBjb25maWd1cmF0aW9uU2VydmljZSkgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuY29uZmlndXJhdGlvblNlcnZpY2UgPSBjb25maWd1cmF0aW9uU2VydmljZTtcbiAgICAgICAgX3RoaXMubWFya0FzVmlzaWJsZSgpO1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIExlZ2VuZENvbXBvbmVudC5kZWNvcmF0b3JzID0gW1xuICAgICAgICB7IHR5cGU6IENvbXBvbmVudCwgYXJnczogW3tcbiAgICAgICAgICAgICAgICAgICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdG9yOiAna2VuZG8tY2hhcnQtbGVnZW5kJyxcbiAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGU6ICcnXG4gICAgICAgICAgICAgICAgfSxdIH0sXG4gICAgXTtcbiAgICAvKiogQG5vY29sbGFwc2UgKi9cbiAgICBMZWdlbmRDb21wb25lbnQuY3RvclBhcmFtZXRlcnMgPSBmdW5jdGlvbiAoKSB7IHJldHVybiBbXG4gICAgICAgIHsgdHlwZTogQ29uZmlndXJhdGlvblNlcnZpY2UgfVxuICAgIF07IH07XG4gICAgcmV0dXJuIExlZ2VuZENvbXBvbmVudDtcbn0oTGVnZW5kQ29tcG9uZW50R2VuZXJhdGVkKSk7XG5cbi8qKlxuICogQGhpZGRlblxuICovXG52YXIgTGVnZW5kSW5hY3RpdmVJdGVtc0NvbXBvbmVudEdlbmVyYXRlZCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoTGVnZW5kSW5hY3RpdmVJdGVtc0NvbXBvbmVudEdlbmVyYXRlZCwgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBMZWdlbmRJbmFjdGl2ZUl0ZW1zQ29tcG9uZW50R2VuZXJhdGVkKGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsICdsZWdlbmQuaW5hY3RpdmVJdGVtcycsIGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5jb25maWd1cmF0aW9uU2VydmljZSA9IGNvbmZpZ3VyYXRpb25TZXJ2aWNlO1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIExlZ2VuZEluYWN0aXZlSXRlbXNDb21wb25lbnRHZW5lcmF0ZWQucHJvcERlY29yYXRvcnMgPSB7XG4gICAgICAgIGxhYmVsczogW3sgdHlwZTogSW5wdXQgfV1cbiAgICB9O1xuICAgIHJldHVybiBMZWdlbmRJbmFjdGl2ZUl0ZW1zQ29tcG9uZW50R2VuZXJhdGVkO1xufShTZXR0aW5nc0NvbXBvbmVudCkpO1xuXG4vKipcbiAqIFRoZSBjb25maWd1cmF0aW9uIG9mIHRoZSBpbmFjdGl2ZSBDaGFydCBsZWdlbmQgaXRlbXMuXG4gKlxuICogQGV4YW1wbGVcbiAqXG4gKiBgYGBodG1sLW5vLXJ1blxuICogPGtlbmRvLWNoYXJ0PlxuICogICA8a2VuZG8tY2hhcnQtbGVnZW5kPlxuICogICAgICA8a2VuZG8tY2hhcnQtbGVnZW5kLWluYWN0aXZlLWl0ZW1zIFtsYWJlbHNdPVwie2NvbG9yOiAncGluayd9XCI+PC9rZW5kby1jaGFydC1sZWdlbmQtaW5hY3RpdmUtaXRlbXM+XG4gKiAgIDwva2VuZG8tY2hhcnQtbGVnZW5kPlxuICogPC9rZW5kby1jaGFydD5cbiAqIGBgYFxuICovXG52YXIgTGVnZW5kSW5hY3RpdmVJdGVtc0NvbXBvbmVudCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoTGVnZW5kSW5hY3RpdmVJdGVtc0NvbXBvbmVudCwgX3N1cGVyKTtcbiAgICAvLyBQbGFjZSBjdXN0b20gcHJvcGVydGllcyBoZXJlXG4gICAgZnVuY3Rpb24gTGVnZW5kSW5hY3RpdmVJdGVtc0NvbXBvbmVudChjb25maWd1cmF0aW9uU2VydmljZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBjb25maWd1cmF0aW9uU2VydmljZSkgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuY29uZmlndXJhdGlvblNlcnZpY2UgPSBjb25maWd1cmF0aW9uU2VydmljZTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBMZWdlbmRJbmFjdGl2ZUl0ZW1zQ29tcG9uZW50LmRlY29yYXRvcnMgPSBbXG4gICAgICAgIHsgdHlwZTogQ29tcG9uZW50LCBhcmdzOiBbe1xuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0b3I6ICdrZW5kby1jaGFydC1sZWdlbmQtaW5hY3RpdmUtaXRlbXMnLFxuICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZTogJydcbiAgICAgICAgICAgICAgICB9LF0gfSxcbiAgICBdO1xuICAgIC8qKiBAbm9jb2xsYXBzZSAqL1xuICAgIExlZ2VuZEluYWN0aXZlSXRlbXNDb21wb25lbnQuY3RvclBhcmFtZXRlcnMgPSBmdW5jdGlvbiAoKSB7IHJldHVybiBbXG4gICAgICAgIHsgdHlwZTogQ29uZmlndXJhdGlvblNlcnZpY2UgfVxuICAgIF07IH07XG4gICAgcmV0dXJuIExlZ2VuZEluYWN0aXZlSXRlbXNDb21wb25lbnQ7XG59KExlZ2VuZEluYWN0aXZlSXRlbXNDb21wb25lbnRHZW5lcmF0ZWQpKTtcblxuLyoqXG4gKiBAaGlkZGVuXG4gKi9cbnZhciBMZWdlbmRJdGVtQ29tcG9uZW50R2VuZXJhdGVkID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhMZWdlbmRJdGVtQ29tcG9uZW50R2VuZXJhdGVkLCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIExlZ2VuZEl0ZW1Db21wb25lbnRHZW5lcmF0ZWQoY29uZmlndXJhdGlvblNlcnZpY2UpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgJ2xlZ2VuZC5pdGVtJywgY29uZmlndXJhdGlvblNlcnZpY2UpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlID0gY29uZmlndXJhdGlvblNlcnZpY2U7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgTGVnZW5kSXRlbUNvbXBvbmVudEdlbmVyYXRlZC5wcm9wRGVjb3JhdG9ycyA9IHtcbiAgICAgICAgY3Vyc29yOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgdmlzdWFsOiBbeyB0eXBlOiBJbnB1dCB9XVxuICAgIH07XG4gICAgcmV0dXJuIExlZ2VuZEl0ZW1Db21wb25lbnRHZW5lcmF0ZWQ7XG59KFNldHRpbmdzQ29tcG9uZW50KSk7XG5cbi8qKlxuICogVGhlIGNvbmZpZ3VyYXRpb24gb2YgdGhlIENoYXJ0IGxlZ2VuZCBpdGVtLlxuICpcbiAqIEBleGFtcGxlXG4gKlxuICogYGBgaHRtbC1uby1ydW5cbiAqIDxrZW5kby1jaGFydD5cbiAqICAgPGtlbmRvLWNoYXJ0LWxlZ2VuZD5cbiAqICAgICAgPGtlbmRvLWNoYXJ0LWxlZ2VuZC1pdGVtIGN1cnNvcj1cImNyb3NzaGFpclwiPjwva2VuZG8tY2hhcnQtbGVnZW5kLWl0ZW0+XG4gKiAgIDwva2VuZG8tY2hhcnQtbGVnZW5kPlxuICogPC9rZW5kby1jaGFydD5cbiAqIGBgYFxuICovXG52YXIgTGVnZW5kSXRlbUNvbXBvbmVudCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoTGVnZW5kSXRlbUNvbXBvbmVudCwgX3N1cGVyKTtcbiAgICAvLyBQbGFjZSBjdXN0b20gcHJvcGVydGllcyBoZXJlXG4gICAgZnVuY3Rpb24gTGVnZW5kSXRlbUNvbXBvbmVudChjb25maWd1cmF0aW9uU2VydmljZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBjb25maWd1cmF0aW9uU2VydmljZSkgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuY29uZmlndXJhdGlvblNlcnZpY2UgPSBjb25maWd1cmF0aW9uU2VydmljZTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBMZWdlbmRJdGVtQ29tcG9uZW50LmRlY29yYXRvcnMgPSBbXG4gICAgICAgIHsgdHlwZTogQ29tcG9uZW50LCBhcmdzOiBbe1xuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0b3I6ICdrZW5kby1jaGFydC1sZWdlbmQtaXRlbScsXG4gICAgICAgICAgICAgICAgICAgIHRlbXBsYXRlOiAnJ1xuICAgICAgICAgICAgICAgIH0sXSB9LFxuICAgIF07XG4gICAgLyoqIEBub2NvbGxhcHNlICovXG4gICAgTGVnZW5kSXRlbUNvbXBvbmVudC5jdG9yUGFyYW1ldGVycyA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIFtcbiAgICAgICAgeyB0eXBlOiBDb25maWd1cmF0aW9uU2VydmljZSB9XG4gICAgXTsgfTtcbiAgICByZXR1cm4gTGVnZW5kSXRlbUNvbXBvbmVudDtcbn0oTGVnZW5kSXRlbUNvbXBvbmVudEdlbmVyYXRlZCkpO1xuXG4vKipcbiAqIEBoaWRkZW5cbiAqL1xudmFyIFBhbmVDb21wb25lbnRHZW5lcmF0ZWQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKFBhbmVDb21wb25lbnRHZW5lcmF0ZWQsIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gUGFuZUNvbXBvbmVudEdlbmVyYXRlZChjb25maWd1cmF0aW9uU2VydmljZSwgY29sbGVjdGlvblNlcnZpY2UpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgY29uZmlndXJhdGlvblNlcnZpY2UsIGNvbGxlY3Rpb25TZXJ2aWNlKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5jb25maWd1cmF0aW9uU2VydmljZSA9IGNvbmZpZ3VyYXRpb25TZXJ2aWNlO1xuICAgICAgICBfdGhpcy5jb2xsZWN0aW9uU2VydmljZSA9IGNvbGxlY3Rpb25TZXJ2aWNlO1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIFBhbmVDb21wb25lbnRHZW5lcmF0ZWQucHJvcERlY29yYXRvcnMgPSB7XG4gICAgICAgIGJhY2tncm91bmQ6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBib3JkZXI6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBjbGlwOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgaGVpZ2h0OiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgbWFyZ2luOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgbmFtZTogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHBhZGRpbmc6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICB0aXRsZTogW3sgdHlwZTogSW5wdXQgfV1cbiAgICB9O1xuICAgIHJldHVybiBQYW5lQ29tcG9uZW50R2VuZXJhdGVkO1xufShDb2xsZWN0aW9uSXRlbUNvbXBvbmVudCkpO1xuXG4vKipcbiAqIFRoZSBjb25maWd1cmF0aW9uIGNvbXBvbmVudCBmb3IgYSBDaGFydCBwYW5lLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG4gKlxuICogX0BDb21wb25lbnQoe1xuICogICBzZWxlY3RvcjogJ215LWFwcCcsXG4gKiAgIHRlbXBsYXRlOiBgXG4gKiAgICAgICA8a2VuZG8tY2hhcnQ+XG4gKiAgICAgICAgIDxrZW5kby1jaGFydC1wYW5lcz5cbiAqICAgICAgICAgICAgIDxrZW5kby1jaGFydC1wYW5lIG5hbWU9XCJ0b3BcIiBiYWNrZ3JvdW5kPVwicGlua1wiIFtib3JkZXJdPVwieyBjb2xvcjogJ2JsYWNrJywgZGFzaHR5cGU6ICdkYXNoJywgd2lkdGg6IDIgfVwiPlxuICogICAgICAgICAgICAgICA8IS0tICAgICAgICAgICAgXl5eXl5eXl5eXlxuICogICAgICAgICAgICAgICAgICAgVW5pcXVlIElEIGZvciB0aGUgcGFuZS5cbiAqICAgICAgICAgICAgICAgLS0+XG4gKiAgICAgICAgICAgICA8L2tlbmRvLWNoYXJ0LXBhbmU+XG4gKiAgICAgICAgICAgICA8a2VuZG8tY2hhcnQtcGFuZSBuYW1lPVwiYm90dG9tXCIgW2hlaWdodF09XCIxNTBcIiB0aXRsZT1cIkJvdHRvbSBwYW5lXCI+XG4gKiAgICAgICAgICAgICAgIDwhLS0gICAgICAgICAgICAgICAgICAgICAgICAgIF5eXl5eXl5eXl5eXl5eXG4gKiAgICAgICAgICAgICAgICAgICBOb3RlIHRoYXQgdGhlIGJpbmRpbmcgaXMgcmVxdWlyZWQsXG4gKiAgICAgICAgICAgICAgICAgICBvdGhlcndpc2UgdGhlIHByb3BlcnR5IHdpbGwgYmVcbiAqICAgICAgICAgICAgICAgICAgIGJvdW5kIHRvIGEgJzEwMCcgc3RyaW5nLlxuICogICAgICAgICAgICAgICAtLT5cbiAqICAgICAgICAgICAgIDwva2VuZG8tY2hhcnQtcGFuZT5cbiAqICAgICAgICAgPC9rZW5kby1jaGFydC1wYW5lcz5cbiAqXG4gKiAgICAgICAgIDxrZW5kby1jaGFydC12YWx1ZS1heGlzPlxuICogICAgICAgICAgICAgPGtlbmRvLWNoYXJ0LXZhbHVlLWF4aXMtaXRlbSBuYW1lPVwidG9wXCI+XG4gKiAgICAgICAgICAgICAgIDwhLS0gICAgICAgICAgICAgICAgICAgICAgIF5eXl5eXl5eXl5cbiAqICAgICAgICAgICAgICAgICAgIFVuaXF1ZSBJRCBmb3IgdGhlIGF4aXMuXG4gKiAgICAgICAgICAgICAgICAgICBObyBuZWVkIHRvIHNldCBhIHBhbmUgYXMgaXQgd2lsbCB1c2UgdGhlIGZpcnN0LFxuICogICAgICAgICAgICAgICAgICAgJ3RvcCcgcGFuZSBieSBkZWZhdWx0LlxuICogICAgICAgICAgICAgICAtLT5cbiAqICAgICAgICAgICAgIDwva2VuZG8tY2hhcnQtdmFsdWUtYXhpcy1pdGVtPlxuICogICAgICAgICAgICAgPGtlbmRvLWNoYXJ0LXZhbHVlLWF4aXMtaXRlbSBuYW1lPVwiYm90dG9tXCJcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFuZT1cImJvdHRvbVwiPlxuICogICAgICAgICAgICAgICA8IS0tICAgICAgICAgICAgICAgICAgICAgICBeXl5eXl5eXl5eXl5eXG4gKiAgICAgICAgICAgICAgICAgICBNb3ZlIHRoZSBheGlzIHRvIHRoZSBib3R0b20gcGFuZS5cbiAqICAgICAgICAgICAgICAgLS0+XG4gKiAgICAgICAgICAgICA8L2tlbmRvLWNoYXJ0LXZhbHVlLWF4aXMtaXRlbT5cbiAqICAgICAgICAgPC9rZW5kby1jaGFydC12YWx1ZS1heGlzPlxuICogICAgICAgICA8a2VuZG8tY2hhcnQtc2VyaWVzPlxuICogICAgICAgICAgIDxrZW5kby1jaGFydC1zZXJpZXMtaXRlbSBbZGF0YV09XCJzZXJpZXNEYXRhWzBdXCI+XG4gKiAgICAgICAgICAgICAgIDwhLS0gV2lsbCB1c2UgdGhlIGZpcnN0LCAndG9wJyB2YWx1ZSBheGlzIGJ5IGRlZmF1bHQuIC0tPlxuICogICAgICAgICAgIDwva2VuZG8tY2hhcnQtc2VyaWVzLWl0ZW0+XG4gKiAgICAgICAgICAgPGtlbmRvLWNoYXJ0LXNlcmllcy1pdGVtIHR5cGU9XCJsaW5lXCIgW2RhdGFdPVwic2VyaWVzRGF0YVsxXVwiIGF4aXM9XCJib3R0b21cIj5cbiAqICAgICAgICAgICAgICAgPCEtLSBQbG90IHRoaXMgc2VyaWVzIHRvIHRoZSAnYm90dG9tJyBheGlzLiAgICAgICAgICAgICAgXl5eXl5eXl5eXl5eXiAtLT5cbiAqICAgICAgICAgICA8L2tlbmRvLWNoYXJ0LXNlcmllcy1pdGVtPlxuICogICAgICAgICA8L2tlbmRvLWNoYXJ0LXNlcmllcz5cbiAqICAgICAgIDwva2VuZG8tY2hhcnQ+XG4gKiAgIGBcbiAqIH0pXG4gKiBleHBvcnQgY2xhc3MgQXBwQ29tcG9uZW50IHtcbiAqICAgcHVibGljIHNlcmllc0RhdGE6IG51bWJlcltdW10gPSBbWzEsIDIsIDMsIDVdLCBbMCwgMSwgMCwgMV1dO1xuICogfVxuICogYGBgXG4gKi9cbnZhciBQYW5lQ29tcG9uZW50ID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhQYW5lQ29tcG9uZW50LCBfc3VwZXIpO1xuICAgIC8vIFBsYWNlIGN1c3RvbSBwcm9wZXJ0aWVzIGhlcmVcbiAgICBmdW5jdGlvbiBQYW5lQ29tcG9uZW50KGNvbmZpZ3VyYXRpb25TZXJ2aWNlLCBjb2xsZWN0aW9uU2VydmljZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBjb25maWd1cmF0aW9uU2VydmljZSwgY29sbGVjdGlvblNlcnZpY2UpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlID0gY29uZmlndXJhdGlvblNlcnZpY2U7XG4gICAgICAgIF90aGlzLmNvbGxlY3Rpb25TZXJ2aWNlID0gY29sbGVjdGlvblNlcnZpY2U7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgUGFuZUNvbXBvbmVudC5kZWNvcmF0b3JzID0gW1xuICAgICAgICB7IHR5cGU6IENvbXBvbmVudCwgYXJnczogW3tcbiAgICAgICAgICAgICAgICAgICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGVyczogW0NvbmZpZ3VyYXRpb25TZXJ2aWNlXSxcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0b3I6ICdrZW5kby1jaGFydC1wYW5lJyxcbiAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGU6ICcnXG4gICAgICAgICAgICAgICAgfSxdIH0sXG4gICAgXTtcbiAgICAvKiogQG5vY29sbGFwc2UgKi9cbiAgICBQYW5lQ29tcG9uZW50LmN0b3JQYXJhbWV0ZXJzID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gW1xuICAgICAgICB7IHR5cGU6IENvbmZpZ3VyYXRpb25TZXJ2aWNlIH0sXG4gICAgICAgIHsgdHlwZTogQ29sbGVjdGlvblNlcnZpY2UgfVxuICAgIF07IH07XG4gICAgcmV0dXJuIFBhbmVDb21wb25lbnQ7XG59KFBhbmVDb21wb25lbnRHZW5lcmF0ZWQpKTtcblxuLyoqXG4gKiBAaGlkZGVuXG4gKi9cbnZhciBQYW5lc0NvbXBvbmVudEdlbmVyYXRlZCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoUGFuZXNDb21wb25lbnRHZW5lcmF0ZWQsIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gUGFuZXNDb21wb25lbnRHZW5lcmF0ZWQoY29uZmlndXJhdGlvblNlcnZpY2UsIGNvbGxlY3Rpb25TZXJ2aWNlKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsICdwYW5lcycsIGNvbmZpZ3VyYXRpb25TZXJ2aWNlLCBjb2xsZWN0aW9uU2VydmljZSkgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuY29uZmlndXJhdGlvblNlcnZpY2UgPSBjb25maWd1cmF0aW9uU2VydmljZTtcbiAgICAgICAgX3RoaXMuY29sbGVjdGlvblNlcnZpY2UgPSBjb2xsZWN0aW9uU2VydmljZTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBQYW5lc0NvbXBvbmVudEdlbmVyYXRlZC5wcm9wRGVjb3JhdG9ycyA9IHtcbiAgICAgICAgY2hpbGRyZW46IFt7IHR5cGU6IENvbnRlbnRDaGlsZHJlbiwgYXJnczogW1BhbmVDb21wb25lbnQsXSB9XVxuICAgIH07XG4gICAgcmV0dXJuIFBhbmVzQ29tcG9uZW50R2VuZXJhdGVkO1xufShDb2xsZWN0aW9uQ29tcG9uZW50KSk7XG5cbi8qKlxuICogQSBjb2xsZWN0aW9uIG9mIG9uZSBvciBtb3JlIHBhbmUgY29uZmlndXJhdGlvbiBjb21wb25lbnRzLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG4gKlxuICogX0BDb21wb25lbnQoe1xuICogICBzZWxlY3RvcjogJ215LWFwcCcsXG4gKiAgIHRlbXBsYXRlOiBgXG4gKiAgICAgPGtlbmRvLWNoYXJ0PlxuICogICAgICAgPGtlbmRvLWNoYXJ0LXBhbmVzPlxuICogICAgICAgICA8a2VuZG8tY2hhcnQtcGFuZSBuYW1lPVwidG9wUGFuZVwiPlxuICogICAgICAgICA8L2tlbmRvLWNoYXJ0LXBhbmU+XG4gKiAgICAgICAgIDxrZW5kby1jaGFydC1wYW5lIG5hbWU9XCJib3R0b21QYW5lXCI+XG4gKiAgICAgICAgIDwva2VuZG8tY2hhcnQtcGFuZT5cbiAqICAgICAgIDwva2VuZG8tY2hhcnQtcGFuZXM+XG4gKiAgICAgICA8a2VuZG8tY2hhcnQtdmFsdWUtYXhpcz5cbiAqICAgICAgICAgPGtlbmRvLWNoYXJ0LXZhbHVlLWF4aXMtaXRlbSBwYW5lPVwidG9wUGFuZVwiPlxuICogICAgICAgICA8L2tlbmRvLWNoYXJ0LXZhbHVlLWF4aXMtaXRlbT5cbiAqICAgICAgICAgPGtlbmRvLWNoYXJ0LXZhbHVlLWF4aXMtaXRlbSBuYW1lPVwiYm90dG9tQXhpc1wiIHBhbmU9XCJib3R0b21QYW5lXCI+XG4gKiAgICAgICAgIDwva2VuZG8tY2hhcnQtdmFsdWUtYXhpcy1pdGVtPlxuICogICAgICAgPC9rZW5kby1jaGFydC12YWx1ZS1heGlzPlxuICogICAgICAgPGtlbmRvLWNoYXJ0LXNlcmllcz5cbiAqICAgICAgICAgPGtlbmRvLWNoYXJ0LXNlcmllcy1pdGVtIHR5cGU9XCJsaW5lXCIgW2RhdGFdPVwiWzEsIDIsIDNdXCI+XG4gKiAgICAgICAgIDwva2VuZG8tY2hhcnQtc2VyaWVzLWl0ZW0+XG4gKiAgICAgICAgIDxrZW5kby1jaGFydC1zZXJpZXMtaXRlbSB0eXBlPVwibGluZVwiIFtkYXRhXT1cIlsxLCAyLCAzLCA0XVwiXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBheGlzPVwiYm90dG9tQXhpc1wiPlxuICogICAgICAgICA8L2tlbmRvLWNoYXJ0LXNlcmllcy1pdGVtPlxuICogICAgICAgPC9rZW5kby1jaGFydC1zZXJpZXM+XG4gKiAgICAgPC9rZW5kby1jaGFydD5cbiAqICAgYFxuICogfSlcbiAqIGNsYXNzIEFwcENvbXBvbmVudCB7XG4gKiB9XG4gKlxuICogYGBgXG4gKi9cbnZhciBQYW5lc0NvbXBvbmVudCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoUGFuZXNDb21wb25lbnQsIF9zdXBlcik7XG4gICAgLy8gUGxhY2UgY3VzdG9tIHByb3BlcnRpZXMgaGVyZVxuICAgIGZ1bmN0aW9uIFBhbmVzQ29tcG9uZW50KGNvbmZpZ3VyYXRpb25TZXJ2aWNlLCBjb2xsZWN0aW9uU2VydmljZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBjb25maWd1cmF0aW9uU2VydmljZSwgY29sbGVjdGlvblNlcnZpY2UpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlID0gY29uZmlndXJhdGlvblNlcnZpY2U7XG4gICAgICAgIF90aGlzLmNvbGxlY3Rpb25TZXJ2aWNlID0gY29sbGVjdGlvblNlcnZpY2U7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgUGFuZXNDb21wb25lbnQuZGVjb3JhdG9ycyA9IFtcbiAgICAgICAgeyB0eXBlOiBDb21wb25lbnQsIGFyZ3M6IFt7XG4gICAgICAgICAgICAgICAgICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgICAgICAgICAgICAgICAgICBwcm92aWRlcnM6IFtDb2xsZWN0aW9uU2VydmljZV0sXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdG9yOiAna2VuZG8tY2hhcnQtcGFuZXMnLFxuICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZTogJydcbiAgICAgICAgICAgICAgICB9LF0gfSxcbiAgICBdO1xuICAgIC8qKiBAbm9jb2xsYXBzZSAqL1xuICAgIFBhbmVzQ29tcG9uZW50LmN0b3JQYXJhbWV0ZXJzID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gW1xuICAgICAgICB7IHR5cGU6IENvbmZpZ3VyYXRpb25TZXJ2aWNlIH0sXG4gICAgICAgIHsgdHlwZTogQ29sbGVjdGlvblNlcnZpY2UgfVxuICAgIF07IH07XG4gICAgcmV0dXJuIFBhbmVzQ29tcG9uZW50O1xufShQYW5lc0NvbXBvbmVudEdlbmVyYXRlZCkpO1xuXG4vKipcbiAqIEBoaWRkZW5cbiAqL1xudmFyIFBhbmVzVGl0bGVDb21wb25lbnRHZW5lcmF0ZWQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKFBhbmVzVGl0bGVDb21wb25lbnRHZW5lcmF0ZWQsIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gUGFuZXNUaXRsZUNvbXBvbmVudEdlbmVyYXRlZChjb25maWd1cmF0aW9uU2VydmljZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCAndGl0bGUnLCBjb25maWd1cmF0aW9uU2VydmljZSkgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuY29uZmlndXJhdGlvblNlcnZpY2UgPSBjb25maWd1cmF0aW9uU2VydmljZTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBQYW5lc1RpdGxlQ29tcG9uZW50R2VuZXJhdGVkLnByb3BEZWNvcmF0b3JzID0ge1xuICAgICAgICBiYWNrZ3JvdW5kOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgYm9yZGVyOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgY29sb3I6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBmb250OiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgbWFyZ2luOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgcG9zaXRpb246IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICB0ZXh0OiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgdmlzaWJsZTogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHZpc3VhbDogW3sgdHlwZTogSW5wdXQgfV1cbiAgICB9O1xuICAgIHJldHVybiBQYW5lc1RpdGxlQ29tcG9uZW50R2VuZXJhdGVkO1xufShTZXR0aW5nc0NvbXBvbmVudCkpO1xuXG4vKipcbiAqIFRoZSBjb25maWd1cmF0aW9uIG9mIHRoZSBDaGFydCBwYW5lIHRpdGxlLlxuICovXG52YXIgUGFuZXNUaXRsZUNvbXBvbmVudCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoUGFuZXNUaXRsZUNvbXBvbmVudCwgX3N1cGVyKTtcbiAgICAvLyBQbGFjZSBjdXN0b20gcHJvcGVydGllcyBoZXJlXG4gICAgZnVuY3Rpb24gUGFuZXNUaXRsZUNvbXBvbmVudChjb25maWd1cmF0aW9uU2VydmljZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBjb25maWd1cmF0aW9uU2VydmljZSkgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuY29uZmlndXJhdGlvblNlcnZpY2UgPSBjb25maWd1cmF0aW9uU2VydmljZTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBQYW5lc1RpdGxlQ29tcG9uZW50LmRlY29yYXRvcnMgPSBbXG4gICAgICAgIHsgdHlwZTogQ29tcG9uZW50LCBhcmdzOiBbe1xuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0b3I6ICdrZW5kby1jaGFydC1wYW5lLXRpdGxlJyxcbiAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGU6ICcnXG4gICAgICAgICAgICAgICAgfSxdIH0sXG4gICAgXTtcbiAgICAvKiogQG5vY29sbGFwc2UgKi9cbiAgICBQYW5lc1RpdGxlQ29tcG9uZW50LmN0b3JQYXJhbWV0ZXJzID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gW1xuICAgICAgICB7IHR5cGU6IENvbmZpZ3VyYXRpb25TZXJ2aWNlIH1cbiAgICBdOyB9O1xuICAgIHJldHVybiBQYW5lc1RpdGxlQ29tcG9uZW50O1xufShQYW5lc1RpdGxlQ29tcG9uZW50R2VuZXJhdGVkKSk7XG5cbi8qKlxuICogQGhpZGRlblxuICovXG52YXIgUGxvdEFyZWFDb21wb25lbnRHZW5lcmF0ZWQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKFBsb3RBcmVhQ29tcG9uZW50R2VuZXJhdGVkLCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIFBsb3RBcmVhQ29tcG9uZW50R2VuZXJhdGVkKGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsICdwbG90QXJlYScsIGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5jb25maWd1cmF0aW9uU2VydmljZSA9IGNvbmZpZ3VyYXRpb25TZXJ2aWNlO1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIFBsb3RBcmVhQ29tcG9uZW50R2VuZXJhdGVkLnByb3BEZWNvcmF0b3JzID0ge1xuICAgICAgICBiYWNrZ3JvdW5kOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgYm9yZGVyOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgbWFyZ2luOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgb3BhY2l0eTogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHBhZGRpbmc6IFt7IHR5cGU6IElucHV0IH1dXG4gICAgfTtcbiAgICByZXR1cm4gUGxvdEFyZWFDb21wb25lbnRHZW5lcmF0ZWQ7XG59KFNldHRpbmdzQ29tcG9uZW50KSk7XG5cbi8qKlxuICogVGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBvZiB0aGUgcGxvdCBhcmVhXG4gKiAoW3NlZSBleGFtcGxlXSh7JSBzbHVnIHBsb3RhcmVhX2NoYXJ0X2NoYXJ0cyAlfSkpLlxuICogVGhlIHBsb3QgYXJlYSBpcyB0aGUgYXJlYSB3aGljaCBkaXNwbGF5cyB0aGUgc2VyaWVzLlxuICovXG52YXIgUGxvdEFyZWFDb21wb25lbnQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKFBsb3RBcmVhQ29tcG9uZW50LCBfc3VwZXIpO1xuICAgIC8vIFBsYWNlIGN1c3RvbSBwcm9wZXJ0aWVzIGhlcmVcbiAgICBmdW5jdGlvbiBQbG90QXJlYUNvbXBvbmVudChjb25maWd1cmF0aW9uU2VydmljZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBjb25maWd1cmF0aW9uU2VydmljZSkgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuY29uZmlndXJhdGlvblNlcnZpY2UgPSBjb25maWd1cmF0aW9uU2VydmljZTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBQbG90QXJlYUNvbXBvbmVudC5kZWNvcmF0b3JzID0gW1xuICAgICAgICB7IHR5cGU6IENvbXBvbmVudCwgYXJnczogW3tcbiAgICAgICAgICAgICAgICAgICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdG9yOiAna2VuZG8tY2hhcnQtcGxvdC1hcmVhJyxcbiAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGU6ICcnXG4gICAgICAgICAgICAgICAgfSxdIH0sXG4gICAgXTtcbiAgICAvKiogQG5vY29sbGFwc2UgKi9cbiAgICBQbG90QXJlYUNvbXBvbmVudC5jdG9yUGFyYW1ldGVycyA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIFtcbiAgICAgICAgeyB0eXBlOiBDb25maWd1cmF0aW9uU2VydmljZSB9XG4gICAgXTsgfTtcbiAgICByZXR1cm4gUGxvdEFyZWFDb21wb25lbnQ7XG59KFBsb3RBcmVhQ29tcG9uZW50R2VuZXJhdGVkKSk7XG5cbi8qKlxuICogQGhpZGRlblxuICovXG52YXIgU2VyaWVzQ29tcG9uZW50R2VuZXJhdGVkID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhTZXJpZXNDb21wb25lbnRHZW5lcmF0ZWQsIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gU2VyaWVzQ29tcG9uZW50R2VuZXJhdGVkKGNvbmZpZ3VyYXRpb25TZXJ2aWNlLCBjb2xsZWN0aW9uU2VydmljZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCAnc2VyaWVzJywgY29uZmlndXJhdGlvblNlcnZpY2UsIGNvbGxlY3Rpb25TZXJ2aWNlKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5jb25maWd1cmF0aW9uU2VydmljZSA9IGNvbmZpZ3VyYXRpb25TZXJ2aWNlO1xuICAgICAgICBfdGhpcy5jb2xsZWN0aW9uU2VydmljZSA9IGNvbGxlY3Rpb25TZXJ2aWNlO1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIFNlcmllc0NvbXBvbmVudEdlbmVyYXRlZC5wcm9wRGVjb3JhdG9ycyA9IHtcbiAgICAgICAgY2hpbGRyZW46IFt7IHR5cGU6IENvbnRlbnRDaGlsZHJlbiwgYXJnczogW1Nlcmllc0l0ZW1Db21wb25lbnQsXSB9XVxuICAgIH07XG4gICAgcmV0dXJuIFNlcmllc0NvbXBvbmVudEdlbmVyYXRlZDtcbn0oQ29sbGVjdGlvbkNvbXBvbmVudCkpO1xuXG4vKipcbiAqIEEgY29sbGVjdGlvbiBvZiBvbmUgb3IgbW9yZSBzZXJpZXMgaXRlbXMuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbiAqXG4gKiBfQENvbXBvbmVudCh7XG4gKiAgIHNlbGVjdG9yOiAnbXktYXBwJyxcbiAqICAgdGVtcGxhdGU6IGBcbiAqICAgICA8a2VuZG8tY2hhcnQ+XG4gKiAgICAgICA8a2VuZG8tY2hhcnQtc2VyaWVzPlxuICogICAgICAgICA8a2VuZG8tY2hhcnQtc2VyaWVzLWl0ZW0gdHlwZT1cImxpbmVcIiBbZGF0YV09XCJbMSwgMiwgM11cIj5cbiAqICAgICAgICAgPC9rZW5kby1jaGFydC1zZXJpZXMtaXRlbT5cbiAqICAgICAgIDwva2VuZG8tY2hhcnQtc2VyaWVzPlxuICogICAgIDwva2VuZG8tY2hhcnQ+XG4gKiAgIGBcbiAqIH0pXG4gKiBjbGFzcyBBcHBDb21wb25lbnQge1xuICogfVxuICpcbiAqIGBgYFxuICovXG52YXIgU2VyaWVzQ29tcG9uZW50ID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhTZXJpZXNDb21wb25lbnQsIF9zdXBlcik7XG4gICAgLy8gUGxhY2UgY3VzdG9tIHByb3BlcnRpZXMgaGVyZVxuICAgIGZ1bmN0aW9uIFNlcmllc0NvbXBvbmVudChjb25maWd1cmF0aW9uU2VydmljZSwgY29sbGVjdGlvblNlcnZpY2UsIHRvb2x0aXBUZW1wbGF0ZVNlcnZpY2UpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgY29uZmlndXJhdGlvblNlcnZpY2UsIGNvbGxlY3Rpb25TZXJ2aWNlKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5jb25maWd1cmF0aW9uU2VydmljZSA9IGNvbmZpZ3VyYXRpb25TZXJ2aWNlO1xuICAgICAgICBfdGhpcy5jb2xsZWN0aW9uU2VydmljZSA9IGNvbGxlY3Rpb25TZXJ2aWNlO1xuICAgICAgICBfdGhpcy50b29sdGlwVGVtcGxhdGVTZXJ2aWNlID0gdG9vbHRpcFRlbXBsYXRlU2VydmljZTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBTZXJpZXNDb21wb25lbnQucHJvdG90eXBlLm5nQWZ0ZXJDb250ZW50Q2hlY2tlZCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdGhpcy5yZWFkVG9vbHRpcFRlbXBsYXRlcygpO1xuICAgIH07XG4gICAgU2VyaWVzQ29tcG9uZW50LnByb3RvdHlwZS5yZWFkVG9vbHRpcFRlbXBsYXRlcyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIHRlbXBsYXRlcyA9IHRoaXMuY2hpbGRyZW4ubWFwKGZ1bmN0aW9uIChpdGVtKSB7IHJldHVybiBpdGVtLnNlcmllc1Rvb2x0aXBUZW1wbGF0ZVJlZjsgfSk7XG4gICAgICAgIHRoaXMudG9vbHRpcFRlbXBsYXRlU2VydmljZS5zZXRTZXJpZXNUZW1wbGF0ZXModGVtcGxhdGVzKTtcbiAgICB9O1xuICAgIFNlcmllc0NvbXBvbmVudC5kZWNvcmF0b3JzID0gW1xuICAgICAgICB7IHR5cGU6IENvbXBvbmVudCwgYXJnczogW3tcbiAgICAgICAgICAgICAgICAgICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGVyczogW0NvbGxlY3Rpb25TZXJ2aWNlXSxcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0b3I6ICdrZW5kby1jaGFydC1zZXJpZXMnLFxuICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZTogJydcbiAgICAgICAgICAgICAgICB9LF0gfSxcbiAgICBdO1xuICAgIC8qKiBAbm9jb2xsYXBzZSAqL1xuICAgIFNlcmllc0NvbXBvbmVudC5jdG9yUGFyYW1ldGVycyA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIFtcbiAgICAgICAgeyB0eXBlOiBDb25maWd1cmF0aW9uU2VydmljZSB9LFxuICAgICAgICB7IHR5cGU6IENvbGxlY3Rpb25TZXJ2aWNlIH0sXG4gICAgICAgIHsgdHlwZTogVG9vbHRpcFRlbXBsYXRlU2VydmljZSB9XG4gICAgXTsgfTtcbiAgICByZXR1cm4gU2VyaWVzQ29tcG9uZW50O1xufShTZXJpZXNDb21wb25lbnRHZW5lcmF0ZWQpKTtcblxuLyoqXG4gKiBAaGlkZGVuXG4gKi9cbnZhciBTZXJpZXNEZWZhdWx0c0NvbXBvbmVudEdlbmVyYXRlZCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoU2VyaWVzRGVmYXVsdHNDb21wb25lbnRHZW5lcmF0ZWQsIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gU2VyaWVzRGVmYXVsdHNDb21wb25lbnRHZW5lcmF0ZWQoY29uZmlndXJhdGlvblNlcnZpY2UpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgJ3Nlcmllc0RlZmF1bHRzJywgY29uZmlndXJhdGlvblNlcnZpY2UpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlID0gY29uZmlndXJhdGlvblNlcnZpY2U7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgU2VyaWVzRGVmYXVsdHNDb21wb25lbnRHZW5lcmF0ZWQucHJvcERlY29yYXRvcnMgPSB7XG4gICAgICAgIGJvcmRlcjogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGdhcDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIG92ZXJsYXk6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBzcGFjaW5nOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgc3RhY2s6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICB0eXBlOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgdmlzdWFsOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgbGFiZWxzOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgbm90ZXM6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICB0b29sdGlwOiBbeyB0eXBlOiBJbnB1dCB9XVxuICAgIH07XG4gICAgcmV0dXJuIFNlcmllc0RlZmF1bHRzQ29tcG9uZW50R2VuZXJhdGVkO1xufShTZXR0aW5nc0NvbXBvbmVudCkpO1xuXG4vKipcbiAqIFRoZSBkZWZhdWx0IG9wdGlvbnMgZm9yIGFsbCBzZXJpZXNcbiAqIChbc2VlIGV4YW1wbGVdKHslIHNsdWcgc2VyaWVzX2NoYXJ0X2NoYXJ0cyAlfSN0b2MtZGVmYXVsdC1zZXJpZXMtY29uZmlndXJhdGlvbikpLlxuICovXG52YXIgU2VyaWVzRGVmYXVsdHNDb21wb25lbnQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKFNlcmllc0RlZmF1bHRzQ29tcG9uZW50LCBfc3VwZXIpO1xuICAgIC8vIFBsYWNlIGN1c3RvbSBwcm9wZXJ0aWVzIGhlcmVcbiAgICBmdW5jdGlvbiBTZXJpZXNEZWZhdWx0c0NvbXBvbmVudChjb25maWd1cmF0aW9uU2VydmljZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBjb25maWd1cmF0aW9uU2VydmljZSkgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuY29uZmlndXJhdGlvblNlcnZpY2UgPSBjb25maWd1cmF0aW9uU2VydmljZTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBTZXJpZXNEZWZhdWx0c0NvbXBvbmVudC5kZWNvcmF0b3JzID0gW1xuICAgICAgICB7IHR5cGU6IENvbXBvbmVudCwgYXJnczogW3tcbiAgICAgICAgICAgICAgICAgICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdG9yOiAna2VuZG8tY2hhcnQtc2VyaWVzLWRlZmF1bHRzJyxcbiAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGU6ICcnXG4gICAgICAgICAgICAgICAgfSxdIH0sXG4gICAgXTtcbiAgICAvKiogQG5vY29sbGFwc2UgKi9cbiAgICBTZXJpZXNEZWZhdWx0c0NvbXBvbmVudC5jdG9yUGFyYW1ldGVycyA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIFtcbiAgICAgICAgeyB0eXBlOiBDb25maWd1cmF0aW9uU2VydmljZSB9XG4gICAgXTsgfTtcbiAgICByZXR1cm4gU2VyaWVzRGVmYXVsdHNDb21wb25lbnQ7XG59KFNlcmllc0RlZmF1bHRzQ29tcG9uZW50R2VuZXJhdGVkKSk7XG5cbi8qKlxuICogQGhpZGRlblxuICovXG52YXIgU2VyaWVzRGVmYXVsdHNMYWJlbHNDb21wb25lbnRHZW5lcmF0ZWQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKFNlcmllc0RlZmF1bHRzTGFiZWxzQ29tcG9uZW50R2VuZXJhdGVkLCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIFNlcmllc0RlZmF1bHRzTGFiZWxzQ29tcG9uZW50R2VuZXJhdGVkKGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsICdzZXJpZXNEZWZhdWx0cy5sYWJlbHMnLCBjb25maWd1cmF0aW9uU2VydmljZSkgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuY29uZmlndXJhdGlvblNlcnZpY2UgPSBjb25maWd1cmF0aW9uU2VydmljZTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBTZXJpZXNEZWZhdWx0c0xhYmVsc0NvbXBvbmVudEdlbmVyYXRlZC5wcm9wRGVjb3JhdG9ycyA9IHtcbiAgICAgICAgYmFja2dyb3VuZDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGJvcmRlcjogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGNvbG9yOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgY29udGVudDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGZvbnQ6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBmb3JtYXQ6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBtYXJnaW46IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBwYWRkaW5nOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgdmlzaWJsZTogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHZpc3VhbDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGZyb206IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICB0bzogW3sgdHlwZTogSW5wdXQgfV1cbiAgICB9O1xuICAgIHJldHVybiBTZXJpZXNEZWZhdWx0c0xhYmVsc0NvbXBvbmVudEdlbmVyYXRlZDtcbn0oU2V0dGluZ3NDb21wb25lbnQpKTtcblxuLyoqXG4gKiBUaGUgY29uZmlndXJhdGlvbiBvZiB0aGUgQ2hhcnQgc2VyaWVzIGxhYmVsLlxuICovXG52YXIgU2VyaWVzRGVmYXVsdHNMYWJlbHNDb21wb25lbnQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKFNlcmllc0RlZmF1bHRzTGFiZWxzQ29tcG9uZW50LCBfc3VwZXIpO1xuICAgIC8vIFBsYWNlIGN1c3RvbSBwcm9wZXJ0aWVzIGhlcmVcbiAgICBmdW5jdGlvbiBTZXJpZXNEZWZhdWx0c0xhYmVsc0NvbXBvbmVudChjb25maWd1cmF0aW9uU2VydmljZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBjb25maWd1cmF0aW9uU2VydmljZSkgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuY29uZmlndXJhdGlvblNlcnZpY2UgPSBjb25maWd1cmF0aW9uU2VydmljZTtcbiAgICAgICAgX3RoaXMubWFya0FzVmlzaWJsZSgpO1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIFNlcmllc0RlZmF1bHRzTGFiZWxzQ29tcG9uZW50LmRlY29yYXRvcnMgPSBbXG4gICAgICAgIHsgdHlwZTogQ29tcG9uZW50LCBhcmdzOiBbe1xuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0b3I6ICdrZW5kby1jaGFydC1zZXJpZXMtZGVmYXVsdHMtbGFiZWxzJyxcbiAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGU6ICcnXG4gICAgICAgICAgICAgICAgfSxdIH0sXG4gICAgXTtcbiAgICAvKiogQG5vY29sbGFwc2UgKi9cbiAgICBTZXJpZXNEZWZhdWx0c0xhYmVsc0NvbXBvbmVudC5jdG9yUGFyYW1ldGVycyA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIFtcbiAgICAgICAgeyB0eXBlOiBDb25maWd1cmF0aW9uU2VydmljZSB9XG4gICAgXTsgfTtcbiAgICByZXR1cm4gU2VyaWVzRGVmYXVsdHNMYWJlbHNDb21wb25lbnQ7XG59KFNlcmllc0RlZmF1bHRzTGFiZWxzQ29tcG9uZW50R2VuZXJhdGVkKSk7XG5cbi8qKlxuICogQGhpZGRlblxuICovXG52YXIgU2VyaWVzRGVmYXVsdHNMYWJlbHNGcm9tQ29tcG9uZW50R2VuZXJhdGVkID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhTZXJpZXNEZWZhdWx0c0xhYmVsc0Zyb21Db21wb25lbnRHZW5lcmF0ZWQsIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gU2VyaWVzRGVmYXVsdHNMYWJlbHNGcm9tQ29tcG9uZW50R2VuZXJhdGVkKGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsICdzZXJpZXNEZWZhdWx0cy5sYWJlbHMuZnJvbScsIGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5jb25maWd1cmF0aW9uU2VydmljZSA9IGNvbmZpZ3VyYXRpb25TZXJ2aWNlO1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIFNlcmllc0RlZmF1bHRzTGFiZWxzRnJvbUNvbXBvbmVudEdlbmVyYXRlZC5wcm9wRGVjb3JhdG9ycyA9IHtcbiAgICAgICAgYmFja2dyb3VuZDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGJvcmRlcjogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGNvbG9yOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgY29udGVudDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGZvbnQ6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBmb3JtYXQ6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBtYXJnaW46IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBwYWRkaW5nOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgdmlzaWJsZTogW3sgdHlwZTogSW5wdXQgfV1cbiAgICB9O1xuICAgIHJldHVybiBTZXJpZXNEZWZhdWx0c0xhYmVsc0Zyb21Db21wb25lbnRHZW5lcmF0ZWQ7XG59KFNldHRpbmdzQ29tcG9uZW50KSk7XG5cbi8qKlxuICogVGhlIGBmcm9tYCBsYWJlbCBjb25maWd1cmF0aW9uIG9mIHRoZSBDaGFydCBzZXJpZXMuXG4gKi9cbnZhciBTZXJpZXNEZWZhdWx0c0xhYmVsc0Zyb21Db21wb25lbnQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKFNlcmllc0RlZmF1bHRzTGFiZWxzRnJvbUNvbXBvbmVudCwgX3N1cGVyKTtcbiAgICAvLyBQbGFjZSBjdXN0b20gcHJvcGVydGllcyBoZXJlXG4gICAgZnVuY3Rpb24gU2VyaWVzRGVmYXVsdHNMYWJlbHNGcm9tQ29tcG9uZW50KGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsIGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5jb25maWd1cmF0aW9uU2VydmljZSA9IGNvbmZpZ3VyYXRpb25TZXJ2aWNlO1xuICAgICAgICBfdGhpcy5tYXJrQXNWaXNpYmxlKCk7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgU2VyaWVzRGVmYXVsdHNMYWJlbHNGcm9tQ29tcG9uZW50LmRlY29yYXRvcnMgPSBbXG4gICAgICAgIHsgdHlwZTogQ29tcG9uZW50LCBhcmdzOiBbe1xuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0b3I6ICdrZW5kby1jaGFydC1zZXJpZXMtZGVmYXVsdHMtbGFiZWxzLWZyb20nLFxuICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZTogJydcbiAgICAgICAgICAgICAgICB9LF0gfSxcbiAgICBdO1xuICAgIC8qKiBAbm9jb2xsYXBzZSAqL1xuICAgIFNlcmllc0RlZmF1bHRzTGFiZWxzRnJvbUNvbXBvbmVudC5jdG9yUGFyYW1ldGVycyA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIFtcbiAgICAgICAgeyB0eXBlOiBDb25maWd1cmF0aW9uU2VydmljZSB9XG4gICAgXTsgfTtcbiAgICByZXR1cm4gU2VyaWVzRGVmYXVsdHNMYWJlbHNGcm9tQ29tcG9uZW50O1xufShTZXJpZXNEZWZhdWx0c0xhYmVsc0Zyb21Db21wb25lbnRHZW5lcmF0ZWQpKTtcblxuLyoqXG4gKiBAaGlkZGVuXG4gKi9cbnZhciBTZXJpZXNEZWZhdWx0c0xhYmVsc1RvQ29tcG9uZW50R2VuZXJhdGVkID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhTZXJpZXNEZWZhdWx0c0xhYmVsc1RvQ29tcG9uZW50R2VuZXJhdGVkLCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIFNlcmllc0RlZmF1bHRzTGFiZWxzVG9Db21wb25lbnRHZW5lcmF0ZWQoY29uZmlndXJhdGlvblNlcnZpY2UpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgJ3Nlcmllc0RlZmF1bHRzLmxhYmVscy50bycsIGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5jb25maWd1cmF0aW9uU2VydmljZSA9IGNvbmZpZ3VyYXRpb25TZXJ2aWNlO1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIFNlcmllc0RlZmF1bHRzTGFiZWxzVG9Db21wb25lbnRHZW5lcmF0ZWQucHJvcERlY29yYXRvcnMgPSB7XG4gICAgICAgIGJhY2tncm91bmQ6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBib3JkZXI6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBjb2xvcjogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGNvbnRlbnQ6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBmb250OiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgZm9ybWF0OiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgbWFyZ2luOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgcGFkZGluZzogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHZpc2libGU6IFt7IHR5cGU6IElucHV0IH1dXG4gICAgfTtcbiAgICByZXR1cm4gU2VyaWVzRGVmYXVsdHNMYWJlbHNUb0NvbXBvbmVudEdlbmVyYXRlZDtcbn0oU2V0dGluZ3NDb21wb25lbnQpKTtcblxuLyoqXG4gKiBUaGUgYHRvYCBsYWJlbCBjb25maWd1cmF0aW9uIG9mIHRoZSBDaGFydCBzZXJpZXMuXG4gKi9cbnZhciBTZXJpZXNEZWZhdWx0c0xhYmVsc1RvQ29tcG9uZW50ID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhTZXJpZXNEZWZhdWx0c0xhYmVsc1RvQ29tcG9uZW50LCBfc3VwZXIpO1xuICAgIC8vIFBsYWNlIGN1c3RvbSBwcm9wZXJ0aWVzIGhlcmVcbiAgICBmdW5jdGlvbiBTZXJpZXNEZWZhdWx0c0xhYmVsc1RvQ29tcG9uZW50KGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsIGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5jb25maWd1cmF0aW9uU2VydmljZSA9IGNvbmZpZ3VyYXRpb25TZXJ2aWNlO1xuICAgICAgICBfdGhpcy5tYXJrQXNWaXNpYmxlKCk7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgU2VyaWVzRGVmYXVsdHNMYWJlbHNUb0NvbXBvbmVudC5kZWNvcmF0b3JzID0gW1xuICAgICAgICB7IHR5cGU6IENvbXBvbmVudCwgYXJnczogW3tcbiAgICAgICAgICAgICAgICAgICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdG9yOiAna2VuZG8tY2hhcnQtc2VyaWVzLWRlZmF1bHRzLWxhYmVscy10bycsXG4gICAgICAgICAgICAgICAgICAgIHRlbXBsYXRlOiAnJ1xuICAgICAgICAgICAgICAgIH0sXSB9LFxuICAgIF07XG4gICAgLyoqIEBub2NvbGxhcHNlICovXG4gICAgU2VyaWVzRGVmYXVsdHNMYWJlbHNUb0NvbXBvbmVudC5jdG9yUGFyYW1ldGVycyA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIFtcbiAgICAgICAgeyB0eXBlOiBDb25maWd1cmF0aW9uU2VydmljZSB9XG4gICAgXTsgfTtcbiAgICByZXR1cm4gU2VyaWVzRGVmYXVsdHNMYWJlbHNUb0NvbXBvbmVudDtcbn0oU2VyaWVzRGVmYXVsdHNMYWJlbHNUb0NvbXBvbmVudEdlbmVyYXRlZCkpO1xuXG4vKipcbiAqIEBoaWRkZW5cbiAqL1xudmFyIFNlcmllc0RlZmF1bHRzTm90ZXNDb21wb25lbnRHZW5lcmF0ZWQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKFNlcmllc0RlZmF1bHRzTm90ZXNDb21wb25lbnRHZW5lcmF0ZWQsIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gU2VyaWVzRGVmYXVsdHNOb3Rlc0NvbXBvbmVudEdlbmVyYXRlZChjb25maWd1cmF0aW9uU2VydmljZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCAnc2VyaWVzRGVmYXVsdHMubm90ZXMnLCBjb25maWd1cmF0aW9uU2VydmljZSkgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuY29uZmlndXJhdGlvblNlcnZpY2UgPSBjb25maWd1cmF0aW9uU2VydmljZTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBTZXJpZXNEZWZhdWx0c05vdGVzQ29tcG9uZW50R2VuZXJhdGVkLnByb3BEZWNvcmF0b3JzID0ge1xuICAgICAgICBsaW5lOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgdmlzdWFsOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgaWNvbjogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGxhYmVsOiBbeyB0eXBlOiBJbnB1dCB9XVxuICAgIH07XG4gICAgcmV0dXJuIFNlcmllc0RlZmF1bHRzTm90ZXNDb21wb25lbnRHZW5lcmF0ZWQ7XG59KFNldHRpbmdzQ29tcG9uZW50KSk7XG5cbi8qKlxuICogVGhlIGNvbmZpZ3VyYXRpb24gb2YgdGhlIFtgc2VyaWVzRGVmYXVsdHNgXSh7JSBzbHVnIGFwaV9jaGFydHNfc2VyaWVzZGVmYXVsdHNjb21wb25lbnQgJX0pIG5vdGVzLlxuICovXG52YXIgU2VyaWVzRGVmYXVsdHNOb3Rlc0NvbXBvbmVudCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoU2VyaWVzRGVmYXVsdHNOb3Rlc0NvbXBvbmVudCwgX3N1cGVyKTtcbiAgICAvLyBQbGFjZSBjdXN0b20gcHJvcGVydGllcyBoZXJlXG4gICAgZnVuY3Rpb24gU2VyaWVzRGVmYXVsdHNOb3Rlc0NvbXBvbmVudChjb25maWd1cmF0aW9uU2VydmljZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBjb25maWd1cmF0aW9uU2VydmljZSkgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuY29uZmlndXJhdGlvblNlcnZpY2UgPSBjb25maWd1cmF0aW9uU2VydmljZTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBTZXJpZXNEZWZhdWx0c05vdGVzQ29tcG9uZW50LmRlY29yYXRvcnMgPSBbXG4gICAgICAgIHsgdHlwZTogQ29tcG9uZW50LCBhcmdzOiBbe1xuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0b3I6ICdrZW5kby1jaGFydC1zZXJpZXMtZGVmYXVsdHMtbm90ZXMnLFxuICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZTogJydcbiAgICAgICAgICAgICAgICB9LF0gfSxcbiAgICBdO1xuICAgIC8qKiBAbm9jb2xsYXBzZSAqL1xuICAgIFNlcmllc0RlZmF1bHRzTm90ZXNDb21wb25lbnQuY3RvclBhcmFtZXRlcnMgPSBmdW5jdGlvbiAoKSB7IHJldHVybiBbXG4gICAgICAgIHsgdHlwZTogQ29uZmlndXJhdGlvblNlcnZpY2UgfVxuICAgIF07IH07XG4gICAgcmV0dXJuIFNlcmllc0RlZmF1bHRzTm90ZXNDb21wb25lbnQ7XG59KFNlcmllc0RlZmF1bHRzTm90ZXNDb21wb25lbnRHZW5lcmF0ZWQpKTtcblxuLyoqXG4gKiBAaGlkZGVuXG4gKi9cbnZhciBTZXJpZXNEZWZhdWx0c05vdGVzSWNvbkNvbXBvbmVudEdlbmVyYXRlZCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoU2VyaWVzRGVmYXVsdHNOb3Rlc0ljb25Db21wb25lbnRHZW5lcmF0ZWQsIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gU2VyaWVzRGVmYXVsdHNOb3Rlc0ljb25Db21wb25lbnRHZW5lcmF0ZWQoY29uZmlndXJhdGlvblNlcnZpY2UpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgJ3Nlcmllc0RlZmF1bHRzLm5vdGVzLmljb24nLCBjb25maWd1cmF0aW9uU2VydmljZSkgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuY29uZmlndXJhdGlvblNlcnZpY2UgPSBjb25maWd1cmF0aW9uU2VydmljZTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBTZXJpZXNEZWZhdWx0c05vdGVzSWNvbkNvbXBvbmVudEdlbmVyYXRlZC5wcm9wRGVjb3JhdG9ycyA9IHtcbiAgICAgICAgYmFja2dyb3VuZDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGJvcmRlcjogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHNpemU6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICB0eXBlOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgdmlzaWJsZTogW3sgdHlwZTogSW5wdXQgfV1cbiAgICB9O1xuICAgIHJldHVybiBTZXJpZXNEZWZhdWx0c05vdGVzSWNvbkNvbXBvbmVudEdlbmVyYXRlZDtcbn0oU2V0dGluZ3NDb21wb25lbnQpKTtcblxuLyoqXG4gKiBUaGUgaWNvbiBvZiB0aGUgbm90ZXMuXG4gKi9cbnZhciBTZXJpZXNEZWZhdWx0c05vdGVzSWNvbkNvbXBvbmVudCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoU2VyaWVzRGVmYXVsdHNOb3Rlc0ljb25Db21wb25lbnQsIF9zdXBlcik7XG4gICAgLy8gUGxhY2UgY3VzdG9tIHByb3BlcnRpZXMgaGVyZVxuICAgIGZ1bmN0aW9uIFNlcmllc0RlZmF1bHRzTm90ZXNJY29uQ29tcG9uZW50KGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsIGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5jb25maWd1cmF0aW9uU2VydmljZSA9IGNvbmZpZ3VyYXRpb25TZXJ2aWNlO1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIFNlcmllc0RlZmF1bHRzTm90ZXNJY29uQ29tcG9uZW50LmRlY29yYXRvcnMgPSBbXG4gICAgICAgIHsgdHlwZTogQ29tcG9uZW50LCBhcmdzOiBbe1xuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0b3I6ICdrZW5kby1jaGFydC1zZXJpZXMtZGVmYXVsdHMtbm90ZXMtaWNvbicsXG4gICAgICAgICAgICAgICAgICAgIHRlbXBsYXRlOiAnJ1xuICAgICAgICAgICAgICAgIH0sXSB9LFxuICAgIF07XG4gICAgLyoqIEBub2NvbGxhcHNlICovXG4gICAgU2VyaWVzRGVmYXVsdHNOb3Rlc0ljb25Db21wb25lbnQuY3RvclBhcmFtZXRlcnMgPSBmdW5jdGlvbiAoKSB7IHJldHVybiBbXG4gICAgICAgIHsgdHlwZTogQ29uZmlndXJhdGlvblNlcnZpY2UgfVxuICAgIF07IH07XG4gICAgcmV0dXJuIFNlcmllc0RlZmF1bHRzTm90ZXNJY29uQ29tcG9uZW50O1xufShTZXJpZXNEZWZhdWx0c05vdGVzSWNvbkNvbXBvbmVudEdlbmVyYXRlZCkpO1xuXG4vKipcbiAqIEBoaWRkZW5cbiAqL1xudmFyIFNlcmllc0RlZmF1bHRzTm90ZXNMYWJlbENvbXBvbmVudEdlbmVyYXRlZCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoU2VyaWVzRGVmYXVsdHNOb3Rlc0xhYmVsQ29tcG9uZW50R2VuZXJhdGVkLCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIFNlcmllc0RlZmF1bHRzTm90ZXNMYWJlbENvbXBvbmVudEdlbmVyYXRlZChjb25maWd1cmF0aW9uU2VydmljZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCAnc2VyaWVzRGVmYXVsdHMubm90ZXMubGFiZWwnLCBjb25maWd1cmF0aW9uU2VydmljZSkgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuY29uZmlndXJhdGlvblNlcnZpY2UgPSBjb25maWd1cmF0aW9uU2VydmljZTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBTZXJpZXNEZWZhdWx0c05vdGVzTGFiZWxDb21wb25lbnRHZW5lcmF0ZWQucHJvcERlY29yYXRvcnMgPSB7XG4gICAgICAgIGJhY2tncm91bmQ6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBib3JkZXI6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBjb2xvcjogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGNvbnRlbnQ6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBmb250OiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgZm9ybWF0OiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgcG9zaXRpb246IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICByb3RhdGlvbjogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHZpc2libGU6IFt7IHR5cGU6IElucHV0IH1dXG4gICAgfTtcbiAgICByZXR1cm4gU2VyaWVzRGVmYXVsdHNOb3Rlc0xhYmVsQ29tcG9uZW50R2VuZXJhdGVkO1xufShTZXR0aW5nc0NvbXBvbmVudCkpO1xuXG4vKipcbiAqIFRoZSBsYWJlbCBvZiB0aGUgbm90ZXMuXG4gKi9cbnZhciBTZXJpZXNEZWZhdWx0c05vdGVzTGFiZWxDb21wb25lbnQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKFNlcmllc0RlZmF1bHRzTm90ZXNMYWJlbENvbXBvbmVudCwgX3N1cGVyKTtcbiAgICAvLyBQbGFjZSBjdXN0b20gcHJvcGVydGllcyBoZXJlXG4gICAgZnVuY3Rpb24gU2VyaWVzRGVmYXVsdHNOb3Rlc0xhYmVsQ29tcG9uZW50KGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsIGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5jb25maWd1cmF0aW9uU2VydmljZSA9IGNvbmZpZ3VyYXRpb25TZXJ2aWNlO1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIFNlcmllc0RlZmF1bHRzTm90ZXNMYWJlbENvbXBvbmVudC5kZWNvcmF0b3JzID0gW1xuICAgICAgICB7IHR5cGU6IENvbXBvbmVudCwgYXJnczogW3tcbiAgICAgICAgICAgICAgICAgICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdG9yOiAna2VuZG8tY2hhcnQtc2VyaWVzLWRlZmF1bHRzLW5vdGVzLWxhYmVsJyxcbiAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGU6ICcnXG4gICAgICAgICAgICAgICAgfSxdIH0sXG4gICAgXTtcbiAgICAvKiogQG5vY29sbGFwc2UgKi9cbiAgICBTZXJpZXNEZWZhdWx0c05vdGVzTGFiZWxDb21wb25lbnQuY3RvclBhcmFtZXRlcnMgPSBmdW5jdGlvbiAoKSB7IHJldHVybiBbXG4gICAgICAgIHsgdHlwZTogQ29uZmlndXJhdGlvblNlcnZpY2UgfVxuICAgIF07IH07XG4gICAgcmV0dXJuIFNlcmllc0RlZmF1bHRzTm90ZXNMYWJlbENvbXBvbmVudDtcbn0oU2VyaWVzRGVmYXVsdHNOb3Rlc0xhYmVsQ29tcG9uZW50R2VuZXJhdGVkKSk7XG5cbi8qKlxuICogQGhpZGRlblxuICovXG52YXIgU2VyaWVzRGVmYXVsdHNUb29sdGlwQ29tcG9uZW50R2VuZXJhdGVkID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhTZXJpZXNEZWZhdWx0c1Rvb2x0aXBDb21wb25lbnRHZW5lcmF0ZWQsIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gU2VyaWVzRGVmYXVsdHNUb29sdGlwQ29tcG9uZW50R2VuZXJhdGVkKGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsICdzZXJpZXNEZWZhdWx0cy50b29sdGlwJywgY29uZmlndXJhdGlvblNlcnZpY2UpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlID0gY29uZmlndXJhdGlvblNlcnZpY2U7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgU2VyaWVzRGVmYXVsdHNUb29sdGlwQ29tcG9uZW50R2VuZXJhdGVkLnByb3BEZWNvcmF0b3JzID0ge1xuICAgICAgICBiYWNrZ3JvdW5kOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgYm9yZGVyOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgY29sb3I6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBmb250OiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgZm9ybWF0OiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgcGFkZGluZzogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHZpc2libGU6IFt7IHR5cGU6IElucHV0IH1dXG4gICAgfTtcbiAgICByZXR1cm4gU2VyaWVzRGVmYXVsdHNUb29sdGlwQ29tcG9uZW50R2VuZXJhdGVkO1xufShTZXR0aW5nc0NvbXBvbmVudCkpO1xuXG4vKipcbiAqIFRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgb2YgdGhlIENoYXJ0IHNlcmllcyB0b29sdGlwLlxuICovXG52YXIgU2VyaWVzRGVmYXVsdHNUb29sdGlwQ29tcG9uZW50ID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhTZXJpZXNEZWZhdWx0c1Rvb2x0aXBDb21wb25lbnQsIF9zdXBlcik7XG4gICAgLy8gUGxhY2UgY3VzdG9tIHByb3BlcnRpZXMgaGVyZS5cbiAgICBmdW5jdGlvbiBTZXJpZXNEZWZhdWx0c1Rvb2x0aXBDb21wb25lbnQoY29uZmlndXJhdGlvblNlcnZpY2UpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgY29uZmlndXJhdGlvblNlcnZpY2UpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlID0gY29uZmlndXJhdGlvblNlcnZpY2U7XG4gICAgICAgIF90aGlzLm1hcmtBc1Zpc2libGUoKTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBTZXJpZXNEZWZhdWx0c1Rvb2x0aXBDb21wb25lbnQuZGVjb3JhdG9ycyA9IFtcbiAgICAgICAgeyB0eXBlOiBDb21wb25lbnQsIGFyZ3M6IFt7XG4gICAgICAgICAgICAgICAgICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RvcjogJ2tlbmRvLWNoYXJ0LXNlcmllcy1kZWZhdWx0cy10b29sdGlwJyxcbiAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGU6ICcnXG4gICAgICAgICAgICAgICAgfSxdIH0sXG4gICAgXTtcbiAgICAvKiogQG5vY29sbGFwc2UgKi9cbiAgICBTZXJpZXNEZWZhdWx0c1Rvb2x0aXBDb21wb25lbnQuY3RvclBhcmFtZXRlcnMgPSBmdW5jdGlvbiAoKSB7IHJldHVybiBbXG4gICAgICAgIHsgdHlwZTogQ29uZmlndXJhdGlvblNlcnZpY2UgfVxuICAgIF07IH07XG4gICAgcmV0dXJuIFNlcmllc0RlZmF1bHRzVG9vbHRpcENvbXBvbmVudDtcbn0oU2VyaWVzRGVmYXVsdHNUb29sdGlwQ29tcG9uZW50R2VuZXJhdGVkKSk7XG5cbi8qKlxuICogQGhpZGRlblxuICovXG52YXIgU2VyaWVzRXJyb3JCYXJzQ29tcG9uZW50R2VuZXJhdGVkID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhTZXJpZXNFcnJvckJhcnNDb21wb25lbnRHZW5lcmF0ZWQsIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gU2VyaWVzRXJyb3JCYXJzQ29tcG9uZW50R2VuZXJhdGVkKGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsICdlcnJvckJhcnMnLCBjb25maWd1cmF0aW9uU2VydmljZSkgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuY29uZmlndXJhdGlvblNlcnZpY2UgPSBjb25maWd1cmF0aW9uU2VydmljZTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBTZXJpZXNFcnJvckJhcnNDb21wb25lbnRHZW5lcmF0ZWQucHJvcERlY29yYXRvcnMgPSB7XG4gICAgICAgIGNvbG9yOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgZW5kQ2FwczogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGxpbmU6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICB2YWx1ZTogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHZpc3VhbDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHhWYWx1ZTogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHlWYWx1ZTogW3sgdHlwZTogSW5wdXQgfV1cbiAgICB9O1xuICAgIHJldHVybiBTZXJpZXNFcnJvckJhcnNDb21wb25lbnRHZW5lcmF0ZWQ7XG59KFNldHRpbmdzQ29tcG9uZW50KSk7XG5cbi8qKlxuICogVGhlIGVycm9yIGJhcnMgb2YgdGhlIENoYXJ0IHNlcmllc1xuICogKFtzZWUgZXhhbXBsZV0oeyUgc2x1ZyBlcnJvcmJhcnNfY2hhcnRfY2hhcnRzICV9KSkuXG4gKi9cbnZhciBTZXJpZXNFcnJvckJhcnNDb21wb25lbnQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKFNlcmllc0Vycm9yQmFyc0NvbXBvbmVudCwgX3N1cGVyKTtcbiAgICAvLyBQbGFjZSBjdXN0b20gcHJvcGVydGllcyBoZXJlXG4gICAgZnVuY3Rpb24gU2VyaWVzRXJyb3JCYXJzQ29tcG9uZW50KGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsIGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5jb25maWd1cmF0aW9uU2VydmljZSA9IGNvbmZpZ3VyYXRpb25TZXJ2aWNlO1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIFNlcmllc0Vycm9yQmFyc0NvbXBvbmVudC5kZWNvcmF0b3JzID0gW1xuICAgICAgICB7IHR5cGU6IENvbXBvbmVudCwgYXJnczogW3tcbiAgICAgICAgICAgICAgICAgICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdG9yOiAna2VuZG8tY2hhcnQtc2VyaWVzLWl0ZW0tZXJyb3ItYmFycycsXG4gICAgICAgICAgICAgICAgICAgIHRlbXBsYXRlOiAnJ1xuICAgICAgICAgICAgICAgIH0sXSB9LFxuICAgIF07XG4gICAgLyoqIEBub2NvbGxhcHNlICovXG4gICAgU2VyaWVzRXJyb3JCYXJzQ29tcG9uZW50LmN0b3JQYXJhbWV0ZXJzID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gW1xuICAgICAgICB7IHR5cGU6IENvbmZpZ3VyYXRpb25TZXJ2aWNlIH1cbiAgICBdOyB9O1xuICAgIHJldHVybiBTZXJpZXNFcnJvckJhcnNDb21wb25lbnQ7XG59KFNlcmllc0Vycm9yQmFyc0NvbXBvbmVudEdlbmVyYXRlZCkpO1xuXG4vKipcbiAqIEBoaWRkZW5cbiAqL1xudmFyIFNlcmllc0V4dHJlbWVzQ29tcG9uZW50R2VuZXJhdGVkID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhTZXJpZXNFeHRyZW1lc0NvbXBvbmVudEdlbmVyYXRlZCwgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBTZXJpZXNFeHRyZW1lc0NvbXBvbmVudEdlbmVyYXRlZChjb25maWd1cmF0aW9uU2VydmljZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCAnZXh0cmVtZXMnLCBjb25maWd1cmF0aW9uU2VydmljZSkgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuY29uZmlndXJhdGlvblNlcnZpY2UgPSBjb25maWd1cmF0aW9uU2VydmljZTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBTZXJpZXNFeHRyZW1lc0NvbXBvbmVudEdlbmVyYXRlZC5wcm9wRGVjb3JhdG9ycyA9IHtcbiAgICAgICAgYmFja2dyb3VuZDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGJvcmRlcjogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHJvdGF0aW9uOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgc2l6ZTogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHR5cGU6IFt7IHR5cGU6IElucHV0IH1dXG4gICAgfTtcbiAgICByZXR1cm4gU2VyaWVzRXh0cmVtZXNDb21wb25lbnRHZW5lcmF0ZWQ7XG59KFNldHRpbmdzQ29tcG9uZW50KSk7XG5cbi8qKlxuICogVGhlIGNvbmZpZ3VyYXRpb24gb2YgdGhlIENoYXJ0IHNlcmllcyBleHRyZW1lcy5cbiAqIEFwcGxpZXMgdG8gZXh0cmVtZSBvdXRsaWVycy5cbiAqIEZvciBtb3JlIGluZm9ybWF0aW9uLCByZWZlciB0byBbYHNlcmllcy5vdXRsaWVyc2BdKHslIHNsdWcgYXBpX2NoYXJ0c19zZXJpZXNpdGVtY29tcG9uZW50ICV9I3RvYy1vdXRsaWVycykuXG4gKi9cbnZhciBTZXJpZXNFeHRyZW1lc0NvbXBvbmVudCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoU2VyaWVzRXh0cmVtZXNDb21wb25lbnQsIF9zdXBlcik7XG4gICAgLy8gUGxhY2UgY3VzdG9tIHByb3BlcnRpZXMgaGVyZVxuICAgIGZ1bmN0aW9uIFNlcmllc0V4dHJlbWVzQ29tcG9uZW50KGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsIGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5jb25maWd1cmF0aW9uU2VydmljZSA9IGNvbmZpZ3VyYXRpb25TZXJ2aWNlO1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIFNlcmllc0V4dHJlbWVzQ29tcG9uZW50LmRlY29yYXRvcnMgPSBbXG4gICAgICAgIHsgdHlwZTogQ29tcG9uZW50LCBhcmdzOiBbe1xuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0b3I6ICdrZW5kby1jaGFydC1zZXJpZXMtaXRlbS1leHRyZW1lcycsXG4gICAgICAgICAgICAgICAgICAgIHRlbXBsYXRlOiAnJ1xuICAgICAgICAgICAgICAgIH0sXSB9LFxuICAgIF07XG4gICAgLyoqIEBub2NvbGxhcHNlICovXG4gICAgU2VyaWVzRXh0cmVtZXNDb21wb25lbnQuY3RvclBhcmFtZXRlcnMgPSBmdW5jdGlvbiAoKSB7IHJldHVybiBbXG4gICAgICAgIHsgdHlwZTogQ29uZmlndXJhdGlvblNlcnZpY2UgfVxuICAgIF07IH07XG4gICAgcmV0dXJuIFNlcmllc0V4dHJlbWVzQ29tcG9uZW50O1xufShTZXJpZXNFeHRyZW1lc0NvbXBvbmVudEdlbmVyYXRlZCkpO1xuXG4vKipcbiAqIEBoaWRkZW5cbiAqL1xudmFyIFNlcmllc0hpZ2hsaWdodENvbXBvbmVudEdlbmVyYXRlZCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoU2VyaWVzSGlnaGxpZ2h0Q29tcG9uZW50R2VuZXJhdGVkLCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIFNlcmllc0hpZ2hsaWdodENvbXBvbmVudEdlbmVyYXRlZChjb25maWd1cmF0aW9uU2VydmljZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCAnaGlnaGxpZ2h0JywgY29uZmlndXJhdGlvblNlcnZpY2UpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlID0gY29uZmlndXJhdGlvblNlcnZpY2U7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgU2VyaWVzSGlnaGxpZ2h0Q29tcG9uZW50R2VuZXJhdGVkLnByb3BEZWNvcmF0b3JzID0ge1xuICAgICAgICBib3JkZXI6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBjb2xvcjogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGxpbmU6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBtYXJrZXJzOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgb3BhY2l0eTogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHRvZ2dsZTogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHZpc2libGU6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICB2aXN1YWw6IFt7IHR5cGU6IElucHV0IH1dXG4gICAgfTtcbiAgICByZXR1cm4gU2VyaWVzSGlnaGxpZ2h0Q29tcG9uZW50R2VuZXJhdGVkO1xufShTZXR0aW5nc0NvbXBvbmVudCkpO1xuXG4vKipcbiAqIFRoZSBDaGFydCBzZXJpZXMgaGlnaGxpZ2h0aW5nIGNvbmZpZ3VyYXRpb24gb3B0aW9ucy5cbiAqL1xudmFyIFNlcmllc0hpZ2hsaWdodENvbXBvbmVudCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoU2VyaWVzSGlnaGxpZ2h0Q29tcG9uZW50LCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIFNlcmllc0hpZ2hsaWdodENvbXBvbmVudChjb25maWd1cmF0aW9uU2VydmljZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBjb25maWd1cmF0aW9uU2VydmljZSkgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuY29uZmlndXJhdGlvblNlcnZpY2UgPSBjb25maWd1cmF0aW9uU2VydmljZTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBTZXJpZXNIaWdobGlnaHRDb21wb25lbnQuZGVjb3JhdG9ycyA9IFtcbiAgICAgICAgeyB0eXBlOiBDb21wb25lbnQsIGFyZ3M6IFt7XG4gICAgICAgICAgICAgICAgICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RvcjogJ2tlbmRvLWNoYXJ0LXNlcmllcy1pdGVtLWhpZ2hsaWdodCcsXG4gICAgICAgICAgICAgICAgICAgIHRlbXBsYXRlOiAnJ1xuICAgICAgICAgICAgICAgIH0sXSB9LFxuICAgIF07XG4gICAgLyoqIEBub2NvbGxhcHNlICovXG4gICAgU2VyaWVzSGlnaGxpZ2h0Q29tcG9uZW50LmN0b3JQYXJhbWV0ZXJzID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gW1xuICAgICAgICB7IHR5cGU6IENvbmZpZ3VyYXRpb25TZXJ2aWNlIH1cbiAgICBdOyB9O1xuICAgIHJldHVybiBTZXJpZXNIaWdobGlnaHRDb21wb25lbnQ7XG59KFNlcmllc0hpZ2hsaWdodENvbXBvbmVudEdlbmVyYXRlZCkpO1xuXG4vKipcbiAqIEBoaWRkZW5cbiAqL1xudmFyIFNlcmllc0xhYmVsc0NvbXBvbmVudEdlbmVyYXRlZCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoU2VyaWVzTGFiZWxzQ29tcG9uZW50R2VuZXJhdGVkLCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIFNlcmllc0xhYmVsc0NvbXBvbmVudEdlbmVyYXRlZChjb25maWd1cmF0aW9uU2VydmljZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCAnbGFiZWxzJywgY29uZmlndXJhdGlvblNlcnZpY2UpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlID0gY29uZmlndXJhdGlvblNlcnZpY2U7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgU2VyaWVzTGFiZWxzQ29tcG9uZW50R2VuZXJhdGVkLnByb3BEZWNvcmF0b3JzID0ge1xuICAgICAgICBhbGlnbjogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGJhY2tncm91bmQ6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBib3JkZXI6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBjb2xvcjogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGNvbnRlbnQ6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBkaXN0YW5jZTogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGZvbnQ6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBmb3JtYXQ6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBtYXJnaW46IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBwYWRkaW5nOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgcG9zaXRpb246IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICByb3RhdGlvbjogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHZpc2libGU6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICB2aXN1YWw6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBmcm9tOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgdG86IFt7IHR5cGU6IElucHV0IH1dXG4gICAgfTtcbiAgICByZXR1cm4gU2VyaWVzTGFiZWxzQ29tcG9uZW50R2VuZXJhdGVkO1xufShTZXR0aW5nc0NvbXBvbmVudCkpO1xuXG4vKipcbiAqIFRoZSBjb25maWd1cmF0aW9uIG9mIHRoZSBDaGFydCBzZXJpZXMgbGFiZWxcbiAqIChbc2VlIGV4YW1wbGVdKHslIHNsdWcgbGFiZWxzX2NoYXJ0X2NoYXJ0cyAlfSkpLlxuICovXG52YXIgU2VyaWVzTGFiZWxzQ29tcG9uZW50ID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhTZXJpZXNMYWJlbHNDb21wb25lbnQsIF9zdXBlcik7XG4gICAgLy8gUGxhY2UgY3VzdG9tIHByb3BlcnRpZXMgaGVyZVxuICAgIGZ1bmN0aW9uIFNlcmllc0xhYmVsc0NvbXBvbmVudChjb25maWd1cmF0aW9uU2VydmljZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBjb25maWd1cmF0aW9uU2VydmljZSkgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuY29uZmlndXJhdGlvblNlcnZpY2UgPSBjb25maWd1cmF0aW9uU2VydmljZTtcbiAgICAgICAgX3RoaXMubWFya0FzVmlzaWJsZSgpO1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIFNlcmllc0xhYmVsc0NvbXBvbmVudC5kZWNvcmF0b3JzID0gW1xuICAgICAgICB7IHR5cGU6IENvbXBvbmVudCwgYXJnczogW3tcbiAgICAgICAgICAgICAgICAgICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdG9yOiAna2VuZG8tY2hhcnQtc2VyaWVzLWl0ZW0tbGFiZWxzJyxcbiAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGU6ICcnXG4gICAgICAgICAgICAgICAgfSxdIH0sXG4gICAgXTtcbiAgICAvKiogQG5vY29sbGFwc2UgKi9cbiAgICBTZXJpZXNMYWJlbHNDb21wb25lbnQuY3RvclBhcmFtZXRlcnMgPSBmdW5jdGlvbiAoKSB7IHJldHVybiBbXG4gICAgICAgIHsgdHlwZTogQ29uZmlndXJhdGlvblNlcnZpY2UgfVxuICAgIF07IH07XG4gICAgcmV0dXJuIFNlcmllc0xhYmVsc0NvbXBvbmVudDtcbn0oU2VyaWVzTGFiZWxzQ29tcG9uZW50R2VuZXJhdGVkKSk7XG5cbi8qKlxuICogQGhpZGRlblxuICovXG52YXIgU2VyaWVzTGFiZWxzRnJvbUNvbXBvbmVudEdlbmVyYXRlZCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoU2VyaWVzTGFiZWxzRnJvbUNvbXBvbmVudEdlbmVyYXRlZCwgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBTZXJpZXNMYWJlbHNGcm9tQ29tcG9uZW50R2VuZXJhdGVkKGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsICdsYWJlbHMuZnJvbScsIGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5jb25maWd1cmF0aW9uU2VydmljZSA9IGNvbmZpZ3VyYXRpb25TZXJ2aWNlO1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIFNlcmllc0xhYmVsc0Zyb21Db21wb25lbnRHZW5lcmF0ZWQucHJvcERlY29yYXRvcnMgPSB7XG4gICAgICAgIGJhY2tncm91bmQ6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBib3JkZXI6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBjb2xvcjogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGNvbnRlbnQ6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBmb250OiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgZm9ybWF0OiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgbWFyZ2luOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgcGFkZGluZzogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHBvc2l0aW9uOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgdmlzaWJsZTogW3sgdHlwZTogSW5wdXQgfV1cbiAgICB9O1xuICAgIHJldHVybiBTZXJpZXNMYWJlbHNGcm9tQ29tcG9uZW50R2VuZXJhdGVkO1xufShTZXR0aW5nc0NvbXBvbmVudCkpO1xuXG4vKipcbiAqIFRoZSBgZnJvbWAgbGFiZWwgY29uZmlndXJhdGlvbiBvZiB0aGUgQ2hhcnQgc2VyaWVzLlxuICovXG52YXIgU2VyaWVzTGFiZWxzRnJvbUNvbXBvbmVudCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoU2VyaWVzTGFiZWxzRnJvbUNvbXBvbmVudCwgX3N1cGVyKTtcbiAgICAvLyBQbGFjZSBjdXN0b20gcHJvcGVydGllcyBoZXJlXG4gICAgZnVuY3Rpb24gU2VyaWVzTGFiZWxzRnJvbUNvbXBvbmVudChjb25maWd1cmF0aW9uU2VydmljZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBjb25maWd1cmF0aW9uU2VydmljZSkgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuY29uZmlndXJhdGlvblNlcnZpY2UgPSBjb25maWd1cmF0aW9uU2VydmljZTtcbiAgICAgICAgX3RoaXMubWFya0FzVmlzaWJsZSgpO1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIFNlcmllc0xhYmVsc0Zyb21Db21wb25lbnQuZGVjb3JhdG9ycyA9IFtcbiAgICAgICAgeyB0eXBlOiBDb21wb25lbnQsIGFyZ3M6IFt7XG4gICAgICAgICAgICAgICAgICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RvcjogJ2tlbmRvLWNoYXJ0LXNlcmllcy1pdGVtLWxhYmVscy1mcm9tJyxcbiAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGU6ICcnXG4gICAgICAgICAgICAgICAgfSxdIH0sXG4gICAgXTtcbiAgICAvKiogQG5vY29sbGFwc2UgKi9cbiAgICBTZXJpZXNMYWJlbHNGcm9tQ29tcG9uZW50LmN0b3JQYXJhbWV0ZXJzID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gW1xuICAgICAgICB7IHR5cGU6IENvbmZpZ3VyYXRpb25TZXJ2aWNlIH1cbiAgICBdOyB9O1xuICAgIHJldHVybiBTZXJpZXNMYWJlbHNGcm9tQ29tcG9uZW50O1xufShTZXJpZXNMYWJlbHNGcm9tQ29tcG9uZW50R2VuZXJhdGVkKSk7XG5cbi8qKlxuICogQGhpZGRlblxuICovXG52YXIgU2VyaWVzTGFiZWxzVG9Db21wb25lbnRHZW5lcmF0ZWQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKFNlcmllc0xhYmVsc1RvQ29tcG9uZW50R2VuZXJhdGVkLCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIFNlcmllc0xhYmVsc1RvQ29tcG9uZW50R2VuZXJhdGVkKGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsICdsYWJlbHMudG8nLCBjb25maWd1cmF0aW9uU2VydmljZSkgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuY29uZmlndXJhdGlvblNlcnZpY2UgPSBjb25maWd1cmF0aW9uU2VydmljZTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBTZXJpZXNMYWJlbHNUb0NvbXBvbmVudEdlbmVyYXRlZC5wcm9wRGVjb3JhdG9ycyA9IHtcbiAgICAgICAgYmFja2dyb3VuZDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGJvcmRlcjogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGNvbG9yOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgY29udGVudDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGZvbnQ6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBmb3JtYXQ6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBtYXJnaW46IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBwYWRkaW5nOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgcG9zaXRpb246IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICB2aXNpYmxlOiBbeyB0eXBlOiBJbnB1dCB9XVxuICAgIH07XG4gICAgcmV0dXJuIFNlcmllc0xhYmVsc1RvQ29tcG9uZW50R2VuZXJhdGVkO1xufShTZXR0aW5nc0NvbXBvbmVudCkpO1xuXG4vKipcbiAqIFRoZSBgdG9gIGxhYmVsIGNvbmZpZ3VyYXRpb24gb2YgdGhlIENoYXJ0IHNlcmllcy5cbiAqL1xudmFyIFNlcmllc0xhYmVsc1RvQ29tcG9uZW50ID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhTZXJpZXNMYWJlbHNUb0NvbXBvbmVudCwgX3N1cGVyKTtcbiAgICAvLyBQbGFjZSBjdXN0b20gcHJvcGVydGllcyBoZXJlXG4gICAgZnVuY3Rpb24gU2VyaWVzTGFiZWxzVG9Db21wb25lbnQoY29uZmlndXJhdGlvblNlcnZpY2UpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgY29uZmlndXJhdGlvblNlcnZpY2UpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlID0gY29uZmlndXJhdGlvblNlcnZpY2U7XG4gICAgICAgIF90aGlzLm1hcmtBc1Zpc2libGUoKTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBTZXJpZXNMYWJlbHNUb0NvbXBvbmVudC5kZWNvcmF0b3JzID0gW1xuICAgICAgICB7IHR5cGU6IENvbXBvbmVudCwgYXJnczogW3tcbiAgICAgICAgICAgICAgICAgICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdG9yOiAna2VuZG8tY2hhcnQtc2VyaWVzLWl0ZW0tbGFiZWxzLXRvJyxcbiAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGU6ICcnXG4gICAgICAgICAgICAgICAgfSxdIH0sXG4gICAgXTtcbiAgICAvKiogQG5vY29sbGFwc2UgKi9cbiAgICBTZXJpZXNMYWJlbHNUb0NvbXBvbmVudC5jdG9yUGFyYW1ldGVycyA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIFtcbiAgICAgICAgeyB0eXBlOiBDb25maWd1cmF0aW9uU2VydmljZSB9XG4gICAgXTsgfTtcbiAgICByZXR1cm4gU2VyaWVzTGFiZWxzVG9Db21wb25lbnQ7XG59KFNlcmllc0xhYmVsc1RvQ29tcG9uZW50R2VuZXJhdGVkKSk7XG5cbi8qKlxuICogQGhpZGRlblxuICovXG52YXIgU2VyaWVzTWFya2Vyc0NvbXBvbmVudEdlbmVyYXRlZCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoU2VyaWVzTWFya2Vyc0NvbXBvbmVudEdlbmVyYXRlZCwgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBTZXJpZXNNYXJrZXJzQ29tcG9uZW50R2VuZXJhdGVkKGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsICdtYXJrZXJzJywgY29uZmlndXJhdGlvblNlcnZpY2UpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlID0gY29uZmlndXJhdGlvblNlcnZpY2U7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgU2VyaWVzTWFya2Vyc0NvbXBvbmVudEdlbmVyYXRlZC5wcm9wRGVjb3JhdG9ycyA9IHtcbiAgICAgICAgYmFja2dyb3VuZDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGJvcmRlcjogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHJvdGF0aW9uOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgc2l6ZTogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHR5cGU6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICB2aXNpYmxlOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgdmlzdWFsOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgZnJvbTogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHRvOiBbeyB0eXBlOiBJbnB1dCB9XVxuICAgIH07XG4gICAgcmV0dXJuIFNlcmllc01hcmtlcnNDb21wb25lbnRHZW5lcmF0ZWQ7XG59KFNldHRpbmdzQ29tcG9uZW50KSk7XG5cbi8qKlxuICogVGhlIGNvbmZpZ3VyYXRpb24gb2YgdGhlIENoYXJ0IHNlcmllcyBtYXJrZXIuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbiAqXG4gKiBfQENvbXBvbmVudCh7XG4gKiAgICAgICBzZWxlY3RvcjogJ215LWFwcCcsXG4gKiAgIHRlbXBsYXRlOiBgXG4gKiAgICAgICA8a2VuZG8tY2hhcnQgW2NhdGVnb3J5QXhpc109XCJ7IGNhdGVnb3JpZXM6IGNhdGVnb3JpZXMgfVwiPlxuICogICAgICAgICAgIDxrZW5kby1jaGFydC10aXRsZSB0ZXh0PVwiR3Jvc3MgZG9tZXN0aWMgcHJvZHVjdCBncm93dGggL0dEUCBhbm51YWwgJS9cIj48L2tlbmRvLWNoYXJ0LXRpdGxlPlxuICogICAgICAgICAgIDxrZW5kby1jaGFydC1sZWdlbmQgcG9zaXRpb249XCJib3R0b21cIiBvcmllbnRhdGlvbj1cImhvcml6b250YWxcIj48L2tlbmRvLWNoYXJ0LWxlZ2VuZD5cbiAqICAgICAgICAgICA8a2VuZG8tY2hhcnQtdG9vbHRpcCBmb3JtYXQ9XCJ7MH0lXCI+PC9rZW5kby1jaGFydC10b29sdGlwPlxuICogICAgICAgICAgIDxrZW5kby1jaGFydC1zZXJpZXM+XG4gKiAgICAgICAgICAgICAgIDxrZW5kby1jaGFydC1zZXJpZXMtaXRlbSAqbmdGb3I9XCJsZXQgaXRlbSBvZiBzZXJpZXNcIlxuICogICAgICAgICAgICAgICAgICAgdHlwZT1cImxpbmVcIlxuICogICAgICAgICAgICAgICAgICAgc3R5bGU9XCJzbW9vdGhcIlxuICogICAgICAgICAgICAgICAgICAgW2RhdGFdPVwiaXRlbS5kYXRhXCJcbiAqICAgICAgICAgICAgICAgICAgIFtuYW1lXT1cIml0ZW0ubmFtZVwiXG4gKiAgICAgICAgICAgICAgICAgICBbbWFya2Vyc109XCJpdGVtLm1hcmtlcnNcIj5cbiAqICAgICAgICAgICAgICAgPC9rZW5kby1jaGFydC1zZXJpZXMtaXRlbT5cbiAqICAgICAgICAgICA8L2tlbmRvLWNoYXJ0LXNlcmllcz5cbiAqICAgICAgIDwva2VuZG8tY2hhcnQ+XG4gKiAgIGBcbiAqIH0pXG4gKiBleHBvcnQgY2xhc3MgQXBwQ29tcG9uZW50IHtcbiAqIHB1YmxpYyBzZXJpZXM6IGFueVtdID0gW3tcbiAqICAgbmFtZTogXCJJbmRpYVwiLFxuICogICBkYXRhOiBbMy45MDcsIDcuOTQzLCA3Ljg0OCwgOS4yODQsIDkuMjYzLCA5LjgwMSwgMy44OTAsIDguMjM4LCA5LjU1MiwgNi44NTVdLFxuICogICBtYXJrZXJzOiB7XG4gKiAgICAgYmFja2dyb3VuZDogJ3JlZCcsXG4gKiAgICAgc2l6ZTogMjAsXG4gKiAgICAgdHlwZTogJ2NpcmNsZSdcbiAqICAgfVxuICogfSwge1xuICogICBuYW1lOiBcIlJ1c3NpYW4gRmVkZXJhdGlvblwiLFxuICogICBkYXRhOiBbNC43NDMsIDcuMjk1LCA3LjE3NSwgNi4zNzYsIDguMTUzLCA4LjUzNSwgNS4yNDcsIC03LjgzMiwgNC4zLCA0LjNdLFxuICogICBtYXJrZXJzOiB7XG4gKiAgICAgYmFja2dyb3VuZDogJ3llbGxvdycsXG4gKiAgICAgc2l6ZTogMTAsXG4gKiAgICAgdHlwZTogJ3NxdWFyZScsXG4gKiAgICAgcm90YXRpb246IDQ1XG4gKiAgIH1cbiAqIH0sIHtcbiAqICAgbmFtZTogXCJHZXJtYW55XCIsXG4gKiAgIGRhdGE6IFswLjAxMCwgLTAuMzc1LCAxLjE2MSwgMC42ODQsIDMuNywgMy4yNjksIDEuMDgzLCAtNS4xMjcsIDMuNjkwLCAyLjk5NV0sXG4gKiAgIG1hcmtlcnM6IHtcbiAqICAgICBiYWNrZ3JvdW5kOiAnZ3JlZW4nLFxuICogICAgIHNpemU6IDIwLFxuICogICAgIHR5cGU6ICd0cmlhbmdsZSdcbiAqICAgfVxuICogfSx7XG4gKiAgIG5hbWU6IFwiV29ybGRcIixcbiAqICAgZGF0YTogWzEuOTg4LCAyLjczMywgMy45OTQsIDMuNDY0LCA0LjAwMSwgMy45MzksIDEuMzMzLCAtMi4yNDUsIDQuMzM5LCAyLjcyN10sXG4gKiAgIG1hcmtlcnM6IHtcbiAqICAgICBiYWNrZ3JvdW5kOiAnYmx1ZScsXG4gKiAgICAgc2l6ZTogMTAsXG4gKiAgICAgdHlwZTogJ2Nyb3NzJ1xuICogICB9XG4gKiB9XTtcbiAqIHB1YmxpYyBjYXRlZ29yaWVzOiBudW1iZXJbXSA9IFsyMDAyLCAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwLCAyMDExXTtcbiAqIH1cbiAqIGBgYFxuICovXG52YXIgU2VyaWVzTWFya2Vyc0NvbXBvbmVudCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoU2VyaWVzTWFya2Vyc0NvbXBvbmVudCwgX3N1cGVyKTtcbiAgICAvLyBQbGFjZSBjdXN0b20gcHJvcGVydGllcyBoZXJlXG4gICAgZnVuY3Rpb24gU2VyaWVzTWFya2Vyc0NvbXBvbmVudChjb25maWd1cmF0aW9uU2VydmljZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBjb25maWd1cmF0aW9uU2VydmljZSkgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuY29uZmlndXJhdGlvblNlcnZpY2UgPSBjb25maWd1cmF0aW9uU2VydmljZTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBTZXJpZXNNYXJrZXJzQ29tcG9uZW50LmRlY29yYXRvcnMgPSBbXG4gICAgICAgIHsgdHlwZTogQ29tcG9uZW50LCBhcmdzOiBbe1xuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0b3I6ICdrZW5kby1jaGFydC1zZXJpZXMtaXRlbS1tYXJrZXJzJyxcbiAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGU6ICcnXG4gICAgICAgICAgICAgICAgfSxdIH0sXG4gICAgXTtcbiAgICAvKiogQG5vY29sbGFwc2UgKi9cbiAgICBTZXJpZXNNYXJrZXJzQ29tcG9uZW50LmN0b3JQYXJhbWV0ZXJzID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gW1xuICAgICAgICB7IHR5cGU6IENvbmZpZ3VyYXRpb25TZXJ2aWNlIH1cbiAgICBdOyB9O1xuICAgIHJldHVybiBTZXJpZXNNYXJrZXJzQ29tcG9uZW50O1xufShTZXJpZXNNYXJrZXJzQ29tcG9uZW50R2VuZXJhdGVkKSk7XG5cbi8qKlxuICogQGhpZGRlblxuICovXG52YXIgU2VyaWVzTm90ZXNDb21wb25lbnRHZW5lcmF0ZWQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKFNlcmllc05vdGVzQ29tcG9uZW50R2VuZXJhdGVkLCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIFNlcmllc05vdGVzQ29tcG9uZW50R2VuZXJhdGVkKGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsICdub3RlcycsIGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5jb25maWd1cmF0aW9uU2VydmljZSA9IGNvbmZpZ3VyYXRpb25TZXJ2aWNlO1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIFNlcmllc05vdGVzQ29tcG9uZW50R2VuZXJhdGVkLnByb3BEZWNvcmF0b3JzID0ge1xuICAgICAgICBsaW5lOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgcG9zaXRpb246IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICB2aXN1YWw6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBpY29uOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgbGFiZWw6IFt7IHR5cGU6IElucHV0IH1dXG4gICAgfTtcbiAgICByZXR1cm4gU2VyaWVzTm90ZXNDb21wb25lbnRHZW5lcmF0ZWQ7XG59KFNldHRpbmdzQ29tcG9uZW50KSk7XG5cbi8qKlxuICogVGhlIHNlcmllcyBub3RlcyBjb25maWd1cmF0aW9uXG4gKiAoW3NlZSBleGFtcGxlXSh7JSBzbHVnIG5vdGVzX2NoYXJ0X2NoYXJ0cyAlfSkpLlxuICovXG52YXIgU2VyaWVzTm90ZXNDb21wb25lbnQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKFNlcmllc05vdGVzQ29tcG9uZW50LCBfc3VwZXIpO1xuICAgIC8vIFBsYWNlIGN1c3RvbSBwcm9wZXJ0aWVzIGhlcmVcbiAgICBmdW5jdGlvbiBTZXJpZXNOb3Rlc0NvbXBvbmVudChjb25maWd1cmF0aW9uU2VydmljZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBjb25maWd1cmF0aW9uU2VydmljZSkgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuY29uZmlndXJhdGlvblNlcnZpY2UgPSBjb25maWd1cmF0aW9uU2VydmljZTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBTZXJpZXNOb3Rlc0NvbXBvbmVudC5kZWNvcmF0b3JzID0gW1xuICAgICAgICB7IHR5cGU6IENvbXBvbmVudCwgYXJnczogW3tcbiAgICAgICAgICAgICAgICAgICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdG9yOiAna2VuZG8tY2hhcnQtc2VyaWVzLWl0ZW0tbm90ZXMnLFxuICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZTogJydcbiAgICAgICAgICAgICAgICB9LF0gfSxcbiAgICBdO1xuICAgIC8qKiBAbm9jb2xsYXBzZSAqL1xuICAgIFNlcmllc05vdGVzQ29tcG9uZW50LmN0b3JQYXJhbWV0ZXJzID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gW1xuICAgICAgICB7IHR5cGU6IENvbmZpZ3VyYXRpb25TZXJ2aWNlIH1cbiAgICBdOyB9O1xuICAgIHJldHVybiBTZXJpZXNOb3Rlc0NvbXBvbmVudDtcbn0oU2VyaWVzTm90ZXNDb21wb25lbnRHZW5lcmF0ZWQpKTtcblxuLyoqXG4gKiBAaGlkZGVuXG4gKi9cbnZhciBTZXJpZXNOb3Rlc0ljb25Db21wb25lbnRHZW5lcmF0ZWQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKFNlcmllc05vdGVzSWNvbkNvbXBvbmVudEdlbmVyYXRlZCwgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBTZXJpZXNOb3Rlc0ljb25Db21wb25lbnRHZW5lcmF0ZWQoY29uZmlndXJhdGlvblNlcnZpY2UpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgJ25vdGVzLmljb24nLCBjb25maWd1cmF0aW9uU2VydmljZSkgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuY29uZmlndXJhdGlvblNlcnZpY2UgPSBjb25maWd1cmF0aW9uU2VydmljZTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBTZXJpZXNOb3Rlc0ljb25Db21wb25lbnRHZW5lcmF0ZWQucHJvcERlY29yYXRvcnMgPSB7XG4gICAgICAgIGJhY2tncm91bmQ6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBib3JkZXI6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBzaXplOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgdHlwZTogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHZpc2libGU6IFt7IHR5cGU6IElucHV0IH1dXG4gICAgfTtcbiAgICByZXR1cm4gU2VyaWVzTm90ZXNJY29uQ29tcG9uZW50R2VuZXJhdGVkO1xufShTZXR0aW5nc0NvbXBvbmVudCkpO1xuXG4vKipcbiAqIFRoZSBpY29uIG9mIHRoZSBub3Rlcy5cbiAqL1xudmFyIFNlcmllc05vdGVzSWNvbkNvbXBvbmVudCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoU2VyaWVzTm90ZXNJY29uQ29tcG9uZW50LCBfc3VwZXIpO1xuICAgIC8vIFBsYWNlIGN1c3RvbSBwcm9wZXJ0aWVzIGhlcmVcbiAgICBmdW5jdGlvbiBTZXJpZXNOb3Rlc0ljb25Db21wb25lbnQoY29uZmlndXJhdGlvblNlcnZpY2UpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgY29uZmlndXJhdGlvblNlcnZpY2UpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlID0gY29uZmlndXJhdGlvblNlcnZpY2U7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgU2VyaWVzTm90ZXNJY29uQ29tcG9uZW50LmRlY29yYXRvcnMgPSBbXG4gICAgICAgIHsgdHlwZTogQ29tcG9uZW50LCBhcmdzOiBbe1xuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0b3I6ICdrZW5kby1jaGFydC1zZXJpZXMtaXRlbS1ub3Rlcy1pY29uJyxcbiAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGU6ICcnXG4gICAgICAgICAgICAgICAgfSxdIH0sXG4gICAgXTtcbiAgICAvKiogQG5vY29sbGFwc2UgKi9cbiAgICBTZXJpZXNOb3Rlc0ljb25Db21wb25lbnQuY3RvclBhcmFtZXRlcnMgPSBmdW5jdGlvbiAoKSB7IHJldHVybiBbXG4gICAgICAgIHsgdHlwZTogQ29uZmlndXJhdGlvblNlcnZpY2UgfVxuICAgIF07IH07XG4gICAgcmV0dXJuIFNlcmllc05vdGVzSWNvbkNvbXBvbmVudDtcbn0oU2VyaWVzTm90ZXNJY29uQ29tcG9uZW50R2VuZXJhdGVkKSk7XG5cbi8qKlxuICogQGhpZGRlblxuICovXG52YXIgU2VyaWVzTm90ZXNMYWJlbENvbXBvbmVudEdlbmVyYXRlZCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoU2VyaWVzTm90ZXNMYWJlbENvbXBvbmVudEdlbmVyYXRlZCwgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBTZXJpZXNOb3Rlc0xhYmVsQ29tcG9uZW50R2VuZXJhdGVkKGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsICdub3Rlcy5sYWJlbCcsIGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5jb25maWd1cmF0aW9uU2VydmljZSA9IGNvbmZpZ3VyYXRpb25TZXJ2aWNlO1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIFNlcmllc05vdGVzTGFiZWxDb21wb25lbnRHZW5lcmF0ZWQucHJvcERlY29yYXRvcnMgPSB7XG4gICAgICAgIGJhY2tncm91bmQ6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBib3JkZXI6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBjb2xvcjogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGNvbnRlbnQ6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBmb250OiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgZm9ybWF0OiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgcG9zaXRpb246IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICByb3RhdGlvbjogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHZpc2libGU6IFt7IHR5cGU6IElucHV0IH1dXG4gICAgfTtcbiAgICByZXR1cm4gU2VyaWVzTm90ZXNMYWJlbENvbXBvbmVudEdlbmVyYXRlZDtcbn0oU2V0dGluZ3NDb21wb25lbnQpKTtcblxuLyoqXG4gKiBUaGUgbGFiZWwgb2YgdGhlIG5vdGVzLlxuICovXG52YXIgU2VyaWVzTm90ZXNMYWJlbENvbXBvbmVudCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoU2VyaWVzTm90ZXNMYWJlbENvbXBvbmVudCwgX3N1cGVyKTtcbiAgICAvLyBQbGFjZSBjdXN0b20gcHJvcGVydGllcyBoZXJlXG4gICAgZnVuY3Rpb24gU2VyaWVzTm90ZXNMYWJlbENvbXBvbmVudChjb25maWd1cmF0aW9uU2VydmljZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBjb25maWd1cmF0aW9uU2VydmljZSkgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuY29uZmlndXJhdGlvblNlcnZpY2UgPSBjb25maWd1cmF0aW9uU2VydmljZTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBTZXJpZXNOb3Rlc0xhYmVsQ29tcG9uZW50LmRlY29yYXRvcnMgPSBbXG4gICAgICAgIHsgdHlwZTogQ29tcG9uZW50LCBhcmdzOiBbe1xuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0b3I6ICdrZW5kby1jaGFydC1zZXJpZXMtaXRlbS1ub3Rlcy1sYWJlbCcsXG4gICAgICAgICAgICAgICAgICAgIHRlbXBsYXRlOiAnJ1xuICAgICAgICAgICAgICAgIH0sXSB9LFxuICAgIF07XG4gICAgLyoqIEBub2NvbGxhcHNlICovXG4gICAgU2VyaWVzTm90ZXNMYWJlbENvbXBvbmVudC5jdG9yUGFyYW1ldGVycyA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIFtcbiAgICAgICAgeyB0eXBlOiBDb25maWd1cmF0aW9uU2VydmljZSB9XG4gICAgXTsgfTtcbiAgICByZXR1cm4gU2VyaWVzTm90ZXNMYWJlbENvbXBvbmVudDtcbn0oU2VyaWVzTm90ZXNMYWJlbENvbXBvbmVudEdlbmVyYXRlZCkpO1xuXG4vKipcbiAqIEBoaWRkZW5cbiAqL1xudmFyIFNlcmllc091dGxpZXJzQ29tcG9uZW50R2VuZXJhdGVkID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhTZXJpZXNPdXRsaWVyc0NvbXBvbmVudEdlbmVyYXRlZCwgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBTZXJpZXNPdXRsaWVyc0NvbXBvbmVudEdlbmVyYXRlZChjb25maWd1cmF0aW9uU2VydmljZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCAnb3V0bGllcnMnLCBjb25maWd1cmF0aW9uU2VydmljZSkgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuY29uZmlndXJhdGlvblNlcnZpY2UgPSBjb25maWd1cmF0aW9uU2VydmljZTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBTZXJpZXNPdXRsaWVyc0NvbXBvbmVudEdlbmVyYXRlZC5wcm9wRGVjb3JhdG9ycyA9IHtcbiAgICAgICAgYmFja2dyb3VuZDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGJvcmRlcjogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHJvdGF0aW9uOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgc2l6ZTogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHR5cGU6IFt7IHR5cGU6IElucHV0IH1dXG4gICAgfTtcbiAgICByZXR1cm4gU2VyaWVzT3V0bGllcnNDb21wb25lbnRHZW5lcmF0ZWQ7XG59KFNldHRpbmdzQ29tcG9uZW50KSk7XG5cbi8qKlxuICogVGhlIGNvbmZpZ3VyYXRpb24gb2YgdGhlIENoYXJ0IHNlcmllcyBvdXRsaWVycy5cbiAqIEFwcGxpZXMgdG8gbWlsZCBvdXRsaWVycy5cbiAqIEZvciBtb3JlIGluZm9ybWF0aW9uLCByZWZlciB0byB0aGUgW2BzZXJpZXMuZXh0cmVtZXNgXSh7JSBzbHVnIGFwaV9jaGFydHNfc2VyaWVzaXRlbWNvbXBvbmVudCAlfSN0b2MtZXh0cmVtZXMpIG9wdGlvbi5cbiAqL1xudmFyIFNlcmllc091dGxpZXJzQ29tcG9uZW50ID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhTZXJpZXNPdXRsaWVyc0NvbXBvbmVudCwgX3N1cGVyKTtcbiAgICAvLyBQbGFjZSBjdXN0b20gcHJvcGVydGllcyBoZXJlXG4gICAgZnVuY3Rpb24gU2VyaWVzT3V0bGllcnNDb21wb25lbnQoY29uZmlndXJhdGlvblNlcnZpY2UpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgY29uZmlndXJhdGlvblNlcnZpY2UpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlID0gY29uZmlndXJhdGlvblNlcnZpY2U7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgU2VyaWVzT3V0bGllcnNDb21wb25lbnQuZGVjb3JhdG9ycyA9IFtcbiAgICAgICAgeyB0eXBlOiBDb21wb25lbnQsIGFyZ3M6IFt7XG4gICAgICAgICAgICAgICAgICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RvcjogJ2tlbmRvLWNoYXJ0LXNlcmllcy1pdGVtLW91dGxpZXJzJyxcbiAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGU6ICcnXG4gICAgICAgICAgICAgICAgfSxdIH0sXG4gICAgXTtcbiAgICAvKiogQG5vY29sbGFwc2UgKi9cbiAgICBTZXJpZXNPdXRsaWVyc0NvbXBvbmVudC5jdG9yUGFyYW1ldGVycyA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIFtcbiAgICAgICAgeyB0eXBlOiBDb25maWd1cmF0aW9uU2VydmljZSB9XG4gICAgXTsgfTtcbiAgICByZXR1cm4gU2VyaWVzT3V0bGllcnNDb21wb25lbnQ7XG59KFNlcmllc091dGxpZXJzQ29tcG9uZW50R2VuZXJhdGVkKSk7XG5cbi8qKlxuICogQGhpZGRlblxuICovXG52YXIgVGl0bGVDb21wb25lbnRHZW5lcmF0ZWQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKFRpdGxlQ29tcG9uZW50R2VuZXJhdGVkLCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIFRpdGxlQ29tcG9uZW50R2VuZXJhdGVkKGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsICd0aXRsZScsIGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5jb25maWd1cmF0aW9uU2VydmljZSA9IGNvbmZpZ3VyYXRpb25TZXJ2aWNlO1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIFRpdGxlQ29tcG9uZW50R2VuZXJhdGVkLnByb3BEZWNvcmF0b3JzID0ge1xuICAgICAgICBhbGlnbjogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGJhY2tncm91bmQ6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBib3JkZXI6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBjb2xvcjogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGZvbnQ6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBtYXJnaW46IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBwYWRkaW5nOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgcG9zaXRpb246IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICB0ZXh0OiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgdmlzaWJsZTogW3sgdHlwZTogSW5wdXQgfV1cbiAgICB9O1xuICAgIHJldHVybiBUaXRsZUNvbXBvbmVudEdlbmVyYXRlZDtcbn0oU2V0dGluZ3NDb21wb25lbnQpKTtcblxuLyoqXG4gKiBUaGUgY29uZmlndXJhdGlvbiBvcHRpb25zIG9mIHRoZSBDaGFydCB0aXRsZSBvciB0ZXh0XG4gKiAoW3NlZSBleGFtcGxlXSh7JSBzbHVnIHRpdGxlX2NoYXJ0X2NoYXJ0cyAlfSkpLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0cy1wcmV2aWV3XG4gKiBpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbiAqXG4gKiBfQENvbXBvbmVudCh7XG4gKiAgICBzZWxlY3RvcjogJ215LWFwcCcsXG4gKiAgICB0ZW1wbGF0ZTogYFxuICogICAgICAgIDxrZW5kby1jaGFydCBbY2F0ZWdvcnlBeGlzXT1cInsgY2F0ZWdvcmllczogY2F0ZWdvcmllcyB9XCI+XG4gKiAgICAgICAgICAgIDxrZW5kby1jaGFydC10aXRsZSB0ZXh0PVwiR3Jvc3MgZG9tZXN0aWMgcHJvZHVjdCBncm93dGggL0dEUCBhbm51YWwgJS9cIj48L2tlbmRvLWNoYXJ0LXRpdGxlPlxuICogICAgICAgICAgICA8a2VuZG8tY2hhcnQtbGVnZW5kXG4gKiAgICAgICAgICAgICAgcG9zaXRpb249XCJib3R0b21cIlxuICogICAgICAgICAgICAgIG9yaWVudGF0aW9uPVwiaG9yaXpvbnRhbFwiXG4gKiAgICAgICAgICAgICAgYWxpZ249XCJlbmRcIlxuICogICAgICAgICAgICAgIGJhY2tncm91bmQ9XCJyZ2JhKDI1NSwgMCwgMCwgMC4xKVwiXG4gKiAgICAgICAgICAgICAgW2JvcmRlcl09XCJib3JkZXJPcHRpb25zXCJcbiAqICAgICAgICAgICAgICBbbWFyZ2luXT1cIjEwXCJcbiAqICAgICAgICAgICAgICBbcGFkZGluZ109XCIxMFwiXG4gKiAgICAgICAgICAgICAgW3dpZHRoXT1cIjE1MFwiXG4gKiAgICAgICAgICAgICAgW29mZnNldFhdPVwiMTFcIlxuICogICAgICAgICAgICAgIFtvZmZzZXRZXT1cIi0xMDNcIlxuICogICAgICAgICAgICAgIFtyZXZlcnNlXT1cInRydWVcIlxuICogICAgICAgICAgICAgIFt2aXNpYmxlXT1cImlzVmlzaWJsZVwiXG4gKiAgICAgICAgICAgICAgPjwva2VuZG8tY2hhcnQtbGVnZW5kPlxuICogICAgICAgICAgICA8a2VuZG8tY2hhcnQtdG9vbHRpcCBmb3JtYXQ9XCJ7MH0lXCI+PC9rZW5kby1jaGFydC10b29sdGlwPlxuICogICAgICAgICAgICA8a2VuZG8tY2hhcnQtc2VyaWVzPlxuICogICAgICAgICAgICAgICAgPGtlbmRvLWNoYXJ0LXNlcmllcy1pdGVtICpuZ0Zvcj1cImxldCBpdGVtIG9mIHNlcmllc1wiXG4gKiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImxpbmVcIiBzdHlsZT1cInNtb290aFwiIFtkYXRhXT1cIml0ZW0uZGF0YVwiIFtuYW1lXT1cIml0ZW0ubmFtZVwiPlxuICogICAgICAgICAgICAgICAgPC9rZW5kby1jaGFydC1zZXJpZXMtaXRlbT5cbiAqICAgICAgICAgICAgPC9rZW5kby1jaGFydC1zZXJpZXM+XG4gKiAgICAgICAgPC9rZW5kby1jaGFydD5cbiAqICAgICAgICA8YnIgLz48YnIgLz5cbiAqICAgICAgICA8YnV0dG9uIGNsYXNzPVwiay1idXR0b25cIiAoY2xpY2spPVwiaXNWaXNpYmxlPSFpc1Zpc2libGVcIj5Ub2dnbGUgTGVnZW5kPC9idXR0b24+XG4gKiAgICBgXG4gKiB9KVxuICogZXhwb3J0IGNsYXNzIEFwcENvbXBvbmVudCB7XG4gKiAgcHVibGljIGlzVmlzaWJsZSA9IHRydWU7XG4gKiAgcHVibGljIGJvcmRlck9wdGlvbnMgPSB7XG4gKiAgICBjb2xvcjogXCJyZ2JhKDI1NSwgMCwgMCwgMC44KVwiLFxuICogICAgZGFzaFR5cGU6ICdkYXNoJyxcbiAqICAgIHdpZHRoOiAyXG4gKiAgfTtcbiAqXG4gKiBwdWJsaWMgc2VyaWVzOiBhbnlbXSA9IFt7XG4gKiAgIG5hbWU6IFwiSW5kaWFcIixcbiAqICAgZGF0YTogWzMuOTA3LCA3Ljk0MywgNy44NDgsIDkuMjg0LCA5LjI2MywgOS44MDEsIDMuODkwLCA4LjIzOCwgOS41NTIsIDYuODU1XVxuICogfSwge1xuICogICBuYW1lOiBcIlJ1c3NpYW4gRmVkZXJhdGlvblwiLFxuICogICBkYXRhOiBbNC43NDMsIDcuMjk1LCA3LjE3NSwgNi4zNzYsIDguMTUzLCA4LjUzNSwgNS4yNDcsIC03LjgzMiwgNC4zLCA0LjNdXG4gKiB9LCB7XG4gKiAgIG5hbWU6IFwiR2VybWFueVwiLFxuICogICBkYXRhOiBbMC4wMTAsIC0wLjM3NSwgMS4xNjEsIDAuNjg0LCAzLjcsIDMuMjY5LCAxLjA4MywgLTUuMTI3LCAzLjY5MCwgMi45OTVdXG4gKiB9LHtcbiAqICAgbmFtZTogXCJXb3JsZFwiLFxuICogICBkYXRhOiBbMS45ODgsIDIuNzMzLCAzLjk5NCwgMy40NjQsIDQuMDAxLCAzLjkzOSwgMS4zMzMsIC0yLjI0NSwgNC4zMzksIDIuNzI3XVxuICogfV07XG4gKiAgcHVibGljIGNhdGVnb3JpZXM6IG51bWJlcltdID0gWzIwMDIsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAsIDIwMTFdO1xuICogfVxuICogYGBgXG4gKi9cbnZhciBUaXRsZUNvbXBvbmVudCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoVGl0bGVDb21wb25lbnQsIF9zdXBlcik7XG4gICAgLy8gUGxhY2UgY3VzdG9tIHByb3BlcnRpZXMgaGVyZVxuICAgIGZ1bmN0aW9uIFRpdGxlQ29tcG9uZW50KGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsIGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5jb25maWd1cmF0aW9uU2VydmljZSA9IGNvbmZpZ3VyYXRpb25TZXJ2aWNlO1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIFRpdGxlQ29tcG9uZW50LmRlY29yYXRvcnMgPSBbXG4gICAgICAgIHsgdHlwZTogQ29tcG9uZW50LCBhcmdzOiBbe1xuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0b3I6ICdrZW5kby1jaGFydC10aXRsZScsXG4gICAgICAgICAgICAgICAgICAgIHRlbXBsYXRlOiAnJ1xuICAgICAgICAgICAgICAgIH0sXSB9LFxuICAgIF07XG4gICAgLyoqIEBub2NvbGxhcHNlICovXG4gICAgVGl0bGVDb21wb25lbnQuY3RvclBhcmFtZXRlcnMgPSBmdW5jdGlvbiAoKSB7IHJldHVybiBbXG4gICAgICAgIHsgdHlwZTogQ29uZmlndXJhdGlvblNlcnZpY2UgfVxuICAgIF07IH07XG4gICAgcmV0dXJuIFRpdGxlQ29tcG9uZW50O1xufShUaXRsZUNvbXBvbmVudEdlbmVyYXRlZCkpO1xuXG4vKipcbiAqIEBoaWRkZW5cbiAqL1xudmFyIFRvb2x0aXBDb21wb25lbnRHZW5lcmF0ZWQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKFRvb2x0aXBDb21wb25lbnRHZW5lcmF0ZWQsIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gVG9vbHRpcENvbXBvbmVudEdlbmVyYXRlZChjb25maWd1cmF0aW9uU2VydmljZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCAndG9vbHRpcCcsIGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5jb25maWd1cmF0aW9uU2VydmljZSA9IGNvbmZpZ3VyYXRpb25TZXJ2aWNlO1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIFRvb2x0aXBDb21wb25lbnRHZW5lcmF0ZWQucHJvcERlY29yYXRvcnMgPSB7XG4gICAgICAgIGJhY2tncm91bmQ6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBib3JkZXI6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBjb2xvcjogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGZvbnQ6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBmb3JtYXQ6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBvcGFjaXR5OiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgcGFkZGluZzogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHNoYXJlZDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHZpc2libGU6IFt7IHR5cGU6IElucHV0IH1dXG4gICAgfTtcbiAgICByZXR1cm4gVG9vbHRpcENvbXBvbmVudEdlbmVyYXRlZDtcbn0oU2V0dGluZ3NDb21wb25lbnQpKTtcblxuLyoqXG4gKiBUaGUgY29uZmlndXJhdGlvbiBvcHRpb25zIG9mIHRoZSBDaGFydCBzZXJpZXMgdG9vbHRpcFxuICogKFtzZWUgZXhhbXBsZV0oeyUgc2x1ZyB0b29sdGlwc19jaGFydF9jaGFydHMgJX0pKS5cbiAqL1xudmFyIFRvb2x0aXBDb21wb25lbnQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKFRvb2x0aXBDb21wb25lbnQsIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gVG9vbHRpcENvbXBvbmVudChjb25maWd1cmF0aW9uU2VydmljZSwgdGVtcGxhdGVTZXJ2aWNlKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsIGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5jb25maWd1cmF0aW9uU2VydmljZSA9IGNvbmZpZ3VyYXRpb25TZXJ2aWNlO1xuICAgICAgICBfdGhpcy50ZW1wbGF0ZVNlcnZpY2UgPSB0ZW1wbGF0ZVNlcnZpY2U7XG4gICAgICAgIF90aGlzLm1hcmtBc1Zpc2libGUoKTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBUb29sdGlwQ29tcG9uZW50LnByb3RvdHlwZS5uZ0FmdGVyQ29udGVudENoZWNrZWQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHRoaXMudGVtcGxhdGVTZXJ2aWNlLnNldFRlbXBsYXRlKHRoaXMuc2VyaWVzVG9vbHRpcFRlbXBsYXRlID8gdGhpcy5zZXJpZXNUb29sdGlwVGVtcGxhdGUudGVtcGxhdGVSZWYgOiBudWxsKTtcbiAgICAgICAgdGhpcy50ZW1wbGF0ZVNlcnZpY2Uuc2V0U2hhcmVkVGVtcGxhdGUodGhpcy5zaGFyZWRUb29sdGlwVGVtcGxhdGUgPyB0aGlzLnNoYXJlZFRvb2x0aXBUZW1wbGF0ZS50ZW1wbGF0ZVJlZiA6IG51bGwpO1xuICAgIH07XG4gICAgVG9vbHRpcENvbXBvbmVudC5kZWNvcmF0b3JzID0gW1xuICAgICAgICB7IHR5cGU6IENvbXBvbmVudCwgYXJnczogW3tcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0b3I6ICdrZW5kby1jaGFydC10b29sdGlwJyxcbiAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGU6ICcnXG4gICAgICAgICAgICAgICAgfSxdIH0sXG4gICAgXTtcbiAgICAvKiogQG5vY29sbGFwc2UgKi9cbiAgICBUb29sdGlwQ29tcG9uZW50LmN0b3JQYXJhbWV0ZXJzID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gW1xuICAgICAgICB7IHR5cGU6IENvbmZpZ3VyYXRpb25TZXJ2aWNlIH0sXG4gICAgICAgIHsgdHlwZTogVG9vbHRpcFRlbXBsYXRlU2VydmljZSB9XG4gICAgXTsgfTtcbiAgICBUb29sdGlwQ29tcG9uZW50LnByb3BEZWNvcmF0b3JzID0ge1xuICAgICAgICBzZXJpZXNUb29sdGlwVGVtcGxhdGU6IFt7IHR5cGU6IENvbnRlbnRDaGlsZCwgYXJnczogW1Nlcmllc1Rvb2x0aXBUZW1wbGF0ZURpcmVjdGl2ZSxdIH1dLFxuICAgICAgICBzaGFyZWRUb29sdGlwVGVtcGxhdGU6IFt7IHR5cGU6IENvbnRlbnRDaGlsZCwgYXJnczogW1NoYXJlZFRvb2x0aXBUZW1wbGF0ZURpcmVjdGl2ZSxdIH1dXG4gICAgfTtcbiAgICByZXR1cm4gVG9vbHRpcENvbXBvbmVudDtcbn0oVG9vbHRpcENvbXBvbmVudEdlbmVyYXRlZCkpO1xuXG4vKipcbiAqIEBoaWRkZW5cbiAqL1xudmFyIFZhbHVlQXhpc0l0ZW1Db21wb25lbnRHZW5lcmF0ZWQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKFZhbHVlQXhpc0l0ZW1Db21wb25lbnRHZW5lcmF0ZWQsIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gVmFsdWVBeGlzSXRlbUNvbXBvbmVudEdlbmVyYXRlZChjb25maWd1cmF0aW9uU2VydmljZSwgY29sbGVjdGlvblNlcnZpY2UpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgY29uZmlndXJhdGlvblNlcnZpY2UsIGNvbGxlY3Rpb25TZXJ2aWNlKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5jb25maWd1cmF0aW9uU2VydmljZSA9IGNvbmZpZ3VyYXRpb25TZXJ2aWNlO1xuICAgICAgICBfdGhpcy5jb2xsZWN0aW9uU2VydmljZSA9IGNvbGxlY3Rpb25TZXJ2aWNlO1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIFZhbHVlQXhpc0l0ZW1Db21wb25lbnRHZW5lcmF0ZWQucHJvcERlY29yYXRvcnMgPSB7XG4gICAgICAgIGF4aXNDcm9zc2luZ1ZhbHVlOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgYmFja2dyb3VuZDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGNvbG9yOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgbGluZTogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIG1ham9yR3JpZExpbmVzOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgbWFqb3JUaWNrczogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIG1ham9yVW5pdDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIG1heDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIG1pbjogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIG1pbm9yR3JpZExpbmVzOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgbWlub3JUaWNrczogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIG1pbm9yVW5pdDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIG5hbWU6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBuYXJyb3dSYW5nZTogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHBhbmU6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBwbG90QmFuZHM6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICByZXZlcnNlOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgdHlwZTogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHZpc2libGU6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBjcm9zc2hhaXI6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBsYWJlbHM6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBub3RlczogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHRpdGxlOiBbeyB0eXBlOiBJbnB1dCB9XVxuICAgIH07XG4gICAgcmV0dXJuIFZhbHVlQXhpc0l0ZW1Db21wb25lbnRHZW5lcmF0ZWQ7XG59KENvbGxlY3Rpb25JdGVtQ29tcG9uZW50KSk7XG5cbi8qKlxuICogVGhlIGNvbmZpZ3VyYXRpb24gY29tcG9uZW50IGZvciBhIHZhbHVlIGF4aXMuXG4gKi9cbnZhciBWYWx1ZUF4aXNJdGVtQ29tcG9uZW50ID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhWYWx1ZUF4aXNJdGVtQ29tcG9uZW50LCBfc3VwZXIpO1xuICAgIC8vIFBsYWNlIGN1c3RvbSBwcm9wZXJ0aWVzIGhlcmVcbiAgICBmdW5jdGlvbiBWYWx1ZUF4aXNJdGVtQ29tcG9uZW50KGNvbmZpZ3VyYXRpb25TZXJ2aWNlLCBjb2xsZWN0aW9uU2VydmljZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBjb25maWd1cmF0aW9uU2VydmljZSwgY29sbGVjdGlvblNlcnZpY2UpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlID0gY29uZmlndXJhdGlvblNlcnZpY2U7XG4gICAgICAgIF90aGlzLmNvbGxlY3Rpb25TZXJ2aWNlID0gY29sbGVjdGlvblNlcnZpY2U7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgVmFsdWVBeGlzSXRlbUNvbXBvbmVudC5kZWNvcmF0b3JzID0gW1xuICAgICAgICB7IHR5cGU6IENvbXBvbmVudCwgYXJnczogW3tcbiAgICAgICAgICAgICAgICAgICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGVyczogW0NvbmZpZ3VyYXRpb25TZXJ2aWNlXSxcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0b3I6ICdrZW5kby1jaGFydC12YWx1ZS1heGlzLWl0ZW0nLFxuICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZTogJydcbiAgICAgICAgICAgICAgICB9LF0gfSxcbiAgICBdO1xuICAgIC8qKiBAbm9jb2xsYXBzZSAqL1xuICAgIFZhbHVlQXhpc0l0ZW1Db21wb25lbnQuY3RvclBhcmFtZXRlcnMgPSBmdW5jdGlvbiAoKSB7IHJldHVybiBbXG4gICAgICAgIHsgdHlwZTogQ29uZmlndXJhdGlvblNlcnZpY2UgfSxcbiAgICAgICAgeyB0eXBlOiBDb2xsZWN0aW9uU2VydmljZSB9XG4gICAgXTsgfTtcbiAgICByZXR1cm4gVmFsdWVBeGlzSXRlbUNvbXBvbmVudDtcbn0oVmFsdWVBeGlzSXRlbUNvbXBvbmVudEdlbmVyYXRlZCkpO1xuXG4vKipcbiAqIEBoaWRkZW5cbiAqL1xudmFyIFZhbHVlQXhpc0NvbXBvbmVudEdlbmVyYXRlZCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoVmFsdWVBeGlzQ29tcG9uZW50R2VuZXJhdGVkLCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIFZhbHVlQXhpc0NvbXBvbmVudEdlbmVyYXRlZChjb25maWd1cmF0aW9uU2VydmljZSwgY29sbGVjdGlvblNlcnZpY2UpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgJ3ZhbHVlQXhpcycsIGNvbmZpZ3VyYXRpb25TZXJ2aWNlLCBjb2xsZWN0aW9uU2VydmljZSkgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuY29uZmlndXJhdGlvblNlcnZpY2UgPSBjb25maWd1cmF0aW9uU2VydmljZTtcbiAgICAgICAgX3RoaXMuY29sbGVjdGlvblNlcnZpY2UgPSBjb2xsZWN0aW9uU2VydmljZTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBWYWx1ZUF4aXNDb21wb25lbnRHZW5lcmF0ZWQucHJvcERlY29yYXRvcnMgPSB7XG4gICAgICAgIGNoaWxkcmVuOiBbeyB0eXBlOiBDb250ZW50Q2hpbGRyZW4sIGFyZ3M6IFtWYWx1ZUF4aXNJdGVtQ29tcG9uZW50LF0gfV1cbiAgICB9O1xuICAgIHJldHVybiBWYWx1ZUF4aXNDb21wb25lbnRHZW5lcmF0ZWQ7XG59KENvbGxlY3Rpb25Db21wb25lbnQpKTtcblxuLyoqXG4gKiBBIGNvbGxlY3Rpb24gb2Ygb25lIG9yIG1vcmUgdmFsdWUgYXhpcyBjb25maWd1cmF0aW9uIGNvbXBvbmVudHMuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbiAqXG4gKiBfQENvbXBvbmVudCh7XG4gKiAgIHNlbGVjdG9yOiAnbXktYXBwJyxcbiAqICAgdGVtcGxhdGU6IGBcbiAqICAgICA8a2VuZG8tY2hhcnQ+XG4gKiAgICAgICA8a2VuZG8tY2hhcnQtdmFsdWUtYXhpcz5cbiAqICAgICAgICAgPGtlbmRvLWNoYXJ0LXZhbHVlLWF4aXMtaXRlbT5cbiAqICAgICAgICAgPC9rZW5kby1jaGFydC12YWx1ZS1heGlzLWl0ZW0+XG4gKiAgICAgICAgIDxrZW5kby1jaGFydC12YWx1ZS1heGlzLWl0ZW0gbmFtZT1cInNlY29uZEF4aXNcIj5cbiAqICAgICAgICAgPC9rZW5kby1jaGFydC12YWx1ZS1heGlzLWl0ZW0+XG4gKiAgICAgICA8L2tlbmRvLWNoYXJ0LXZhbHVlLWF4aXM+XG4gKiAgICAgICA8a2VuZG8tY2hhcnQtc2VyaWVzPlxuICogICAgICAgICA8a2VuZG8tY2hhcnQtc2VyaWVzLWl0ZW0gdHlwZT1cImxpbmVcIiBbZGF0YV09XCJbMSwgMiwgM11cIj5cbiAqICAgICAgICAgPC9rZW5kby1jaGFydC1zZXJpZXMtaXRlbT5cbiAqICAgICAgICAgPGtlbmRvLWNoYXJ0LXNlcmllcy1pdGVtIHR5cGU9XCJsaW5lXCIgW2RhdGFdPVwiWzAuMSwgMC4yLCAwLjNdXCJcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF4aXM9XCJzZWNvbmRBeGlzXCI+XG4gKiAgICAgICAgIDwva2VuZG8tY2hhcnQtc2VyaWVzLWl0ZW0+XG4gKiAgICAgICA8L2tlbmRvLWNoYXJ0LXNlcmllcz5cbiAqICAgICA8L2tlbmRvLWNoYXJ0PlxuICogICBgXG4gKiB9KVxuICogY2xhc3MgQXBwQ29tcG9uZW50IHtcbiAqIH1cbiAqXG4gKiBgYGBcbiAqL1xudmFyIFZhbHVlQXhpc0NvbXBvbmVudCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoVmFsdWVBeGlzQ29tcG9uZW50LCBfc3VwZXIpO1xuICAgIC8vIFBsYWNlIGN1c3RvbSBwcm9wZXJ0aWVzIGhlcmVcbiAgICBmdW5jdGlvbiBWYWx1ZUF4aXNDb21wb25lbnQoY29uZmlndXJhdGlvblNlcnZpY2UsIGNvbGxlY3Rpb25TZXJ2aWNlKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsIGNvbmZpZ3VyYXRpb25TZXJ2aWNlLCBjb2xsZWN0aW9uU2VydmljZSkgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuY29uZmlndXJhdGlvblNlcnZpY2UgPSBjb25maWd1cmF0aW9uU2VydmljZTtcbiAgICAgICAgX3RoaXMuY29sbGVjdGlvblNlcnZpY2UgPSBjb2xsZWN0aW9uU2VydmljZTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBWYWx1ZUF4aXNDb21wb25lbnQuZGVjb3JhdG9ycyA9IFtcbiAgICAgICAgeyB0eXBlOiBDb21wb25lbnQsIGFyZ3M6IFt7XG4gICAgICAgICAgICAgICAgICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgICAgICAgICAgICAgICAgICBwcm92aWRlcnM6IFtDb2xsZWN0aW9uU2VydmljZV0sXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdG9yOiAna2VuZG8tY2hhcnQtdmFsdWUtYXhpcycsXG4gICAgICAgICAgICAgICAgICAgIHRlbXBsYXRlOiAnJ1xuICAgICAgICAgICAgICAgIH0sXSB9LFxuICAgIF07XG4gICAgLyoqIEBub2NvbGxhcHNlICovXG4gICAgVmFsdWVBeGlzQ29tcG9uZW50LmN0b3JQYXJhbWV0ZXJzID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gW1xuICAgICAgICB7IHR5cGU6IENvbmZpZ3VyYXRpb25TZXJ2aWNlIH0sXG4gICAgICAgIHsgdHlwZTogQ29sbGVjdGlvblNlcnZpY2UgfVxuICAgIF07IH07XG4gICAgcmV0dXJuIFZhbHVlQXhpc0NvbXBvbmVudDtcbn0oVmFsdWVBeGlzQ29tcG9uZW50R2VuZXJhdGVkKSk7XG5cbi8qKlxuICogQGhpZGRlblxuICovXG52YXIgVmFsdWVBeGlzQ3Jvc3NoYWlyQ29tcG9uZW50R2VuZXJhdGVkID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhWYWx1ZUF4aXNDcm9zc2hhaXJDb21wb25lbnRHZW5lcmF0ZWQsIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gVmFsdWVBeGlzQ3Jvc3NoYWlyQ29tcG9uZW50R2VuZXJhdGVkKGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsICdjcm9zc2hhaXInLCBjb25maWd1cmF0aW9uU2VydmljZSkgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuY29uZmlndXJhdGlvblNlcnZpY2UgPSBjb25maWd1cmF0aW9uU2VydmljZTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBWYWx1ZUF4aXNDcm9zc2hhaXJDb21wb25lbnRHZW5lcmF0ZWQucHJvcERlY29yYXRvcnMgPSB7XG4gICAgICAgIGNvbG9yOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgb3BhY2l0eTogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHZpc2libGU6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICB3aWR0aDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHRvb2x0aXA6IFt7IHR5cGU6IElucHV0IH1dXG4gICAgfTtcbiAgICByZXR1cm4gVmFsdWVBeGlzQ3Jvc3NoYWlyQ29tcG9uZW50R2VuZXJhdGVkO1xufShTZXR0aW5nc0NvbXBvbmVudCkpO1xuXG4vKipcbiAqIFRoZSBjcm9zc2hhaXIgY29uZmlndXJhdGlvbiBvcHRpb25zIChbc2VlIGV4YW1wbGVdKHslIHNsdWcgY3Jvc3NoYWlyc19jaGFydF9jaGFydHMgJX0pKS5cbiAqL1xudmFyIFZhbHVlQXhpc0Nyb3NzaGFpckNvbXBvbmVudCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoVmFsdWVBeGlzQ3Jvc3NoYWlyQ29tcG9uZW50LCBfc3VwZXIpO1xuICAgIC8vIFBsYWNlIGN1c3RvbSBwcm9wZXJ0aWVzIGhlcmVcbiAgICBmdW5jdGlvbiBWYWx1ZUF4aXNDcm9zc2hhaXJDb21wb25lbnQoY29uZmlndXJhdGlvblNlcnZpY2UpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgY29uZmlndXJhdGlvblNlcnZpY2UpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlID0gY29uZmlndXJhdGlvblNlcnZpY2U7XG4gICAgICAgIF90aGlzLm1hcmtBc1Zpc2libGUoKTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBWYWx1ZUF4aXNDcm9zc2hhaXJDb21wb25lbnQuZGVjb3JhdG9ycyA9IFtcbiAgICAgICAgeyB0eXBlOiBDb21wb25lbnQsIGFyZ3M6IFt7XG4gICAgICAgICAgICAgICAgICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RvcjogJ2tlbmRvLWNoYXJ0LXZhbHVlLWF4aXMtaXRlbS1jcm9zc2hhaXInLFxuICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZTogJydcbiAgICAgICAgICAgICAgICB9LF0gfSxcbiAgICBdO1xuICAgIC8qKiBAbm9jb2xsYXBzZSAqL1xuICAgIFZhbHVlQXhpc0Nyb3NzaGFpckNvbXBvbmVudC5jdG9yUGFyYW1ldGVycyA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIFtcbiAgICAgICAgeyB0eXBlOiBDb25maWd1cmF0aW9uU2VydmljZSB9XG4gICAgXTsgfTtcbiAgICByZXR1cm4gVmFsdWVBeGlzQ3Jvc3NoYWlyQ29tcG9uZW50O1xufShWYWx1ZUF4aXNDcm9zc2hhaXJDb21wb25lbnRHZW5lcmF0ZWQpKTtcblxuLyoqXG4gKiBAaGlkZGVuXG4gKi9cbnZhciBWYWx1ZUF4aXNDcm9zc2hhaXJUb29sdGlwQ29tcG9uZW50R2VuZXJhdGVkID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhWYWx1ZUF4aXNDcm9zc2hhaXJUb29sdGlwQ29tcG9uZW50R2VuZXJhdGVkLCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIFZhbHVlQXhpc0Nyb3NzaGFpclRvb2x0aXBDb21wb25lbnRHZW5lcmF0ZWQoY29uZmlndXJhdGlvblNlcnZpY2UpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgJ2Nyb3NzaGFpci50b29sdGlwJywgY29uZmlndXJhdGlvblNlcnZpY2UpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlID0gY29uZmlndXJhdGlvblNlcnZpY2U7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgVmFsdWVBeGlzQ3Jvc3NoYWlyVG9vbHRpcENvbXBvbmVudEdlbmVyYXRlZC5wcm9wRGVjb3JhdG9ycyA9IHtcbiAgICAgICAgYmFja2dyb3VuZDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGJvcmRlcjogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGNvbG9yOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgZm9udDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGZvcm1hdDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHBhZGRpbmc6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICB2aXNpYmxlOiBbeyB0eXBlOiBJbnB1dCB9XVxuICAgIH07XG4gICAgcmV0dXJuIFZhbHVlQXhpc0Nyb3NzaGFpclRvb2x0aXBDb21wb25lbnRHZW5lcmF0ZWQ7XG59KFNldHRpbmdzQ29tcG9uZW50KSk7XG5cbi8qKlxuICogVGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBvZiB0aGUgY3Jvc3NoYWlyIHRvb2x0aXAgKFtzZWUgZXhhbXBsZV0oeyUgc2x1ZyBjcm9zc2hhaXJzX2NoYXJ0X2NoYXJ0cyAlfSkpLlxuICogVGhlIGNyb3NzaGFpciB0b29sdGlwIGlzIGRpc3BsYXllZCB3aGVuIHRoZSBgdmlzaWJsZWAgb3B0aW9uIGlzIHNldCB0byBgdHJ1ZWAuXG4gKi9cbnZhciBWYWx1ZUF4aXNDcm9zc2hhaXJUb29sdGlwQ29tcG9uZW50ID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhWYWx1ZUF4aXNDcm9zc2hhaXJUb29sdGlwQ29tcG9uZW50LCBfc3VwZXIpO1xuICAgIC8vIFBsYWNlIGN1c3RvbSBwcm9wZXJ0aWVzIGhlcmUuXG4gICAgZnVuY3Rpb24gVmFsdWVBeGlzQ3Jvc3NoYWlyVG9vbHRpcENvbXBvbmVudChjb25maWd1cmF0aW9uU2VydmljZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBjb25maWd1cmF0aW9uU2VydmljZSkgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuY29uZmlndXJhdGlvblNlcnZpY2UgPSBjb25maWd1cmF0aW9uU2VydmljZTtcbiAgICAgICAgX3RoaXMubWFya0FzVmlzaWJsZSgpO1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIFZhbHVlQXhpc0Nyb3NzaGFpclRvb2x0aXBDb21wb25lbnQuZGVjb3JhdG9ycyA9IFtcbiAgICAgICAgeyB0eXBlOiBDb21wb25lbnQsIGFyZ3M6IFt7XG4gICAgICAgICAgICAgICAgICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RvcjogJ2tlbmRvLWNoYXJ0LXZhbHVlLWF4aXMtaXRlbS1jcm9zc2hhaXItdG9vbHRpcCcsXG4gICAgICAgICAgICAgICAgICAgIHRlbXBsYXRlOiAnJ1xuICAgICAgICAgICAgICAgIH0sXSB9LFxuICAgIF07XG4gICAgLyoqIEBub2NvbGxhcHNlICovXG4gICAgVmFsdWVBeGlzQ3Jvc3NoYWlyVG9vbHRpcENvbXBvbmVudC5jdG9yUGFyYW1ldGVycyA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIFtcbiAgICAgICAgeyB0eXBlOiBDb25maWd1cmF0aW9uU2VydmljZSB9XG4gICAgXTsgfTtcbiAgICByZXR1cm4gVmFsdWVBeGlzQ3Jvc3NoYWlyVG9vbHRpcENvbXBvbmVudDtcbn0oVmFsdWVBeGlzQ3Jvc3NoYWlyVG9vbHRpcENvbXBvbmVudEdlbmVyYXRlZCkpO1xuXG4vKipcbiAqIEBoaWRkZW5cbiAqL1xudmFyIFZhbHVlQXhpc0xhYmVsc0NvbXBvbmVudEdlbmVyYXRlZCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoVmFsdWVBeGlzTGFiZWxzQ29tcG9uZW50R2VuZXJhdGVkLCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIFZhbHVlQXhpc0xhYmVsc0NvbXBvbmVudEdlbmVyYXRlZChjb25maWd1cmF0aW9uU2VydmljZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCAnbGFiZWxzJywgY29uZmlndXJhdGlvblNlcnZpY2UpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlID0gY29uZmlndXJhdGlvblNlcnZpY2U7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgVmFsdWVBeGlzTGFiZWxzQ29tcG9uZW50R2VuZXJhdGVkLnByb3BEZWNvcmF0b3JzID0ge1xuICAgICAgICBiYWNrZ3JvdW5kOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgYm9yZGVyOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgY29sb3I6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBjb250ZW50OiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgZm9udDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGZvcm1hdDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIG1hcmdpbjogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIG1pcnJvcjogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHBhZGRpbmc6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBwb3NpdGlvbjogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHJvdGF0aW9uOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgc2tpcDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHN0ZXA6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICB2aXNpYmxlOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgdmlzdWFsOiBbeyB0eXBlOiBJbnB1dCB9XVxuICAgIH07XG4gICAgcmV0dXJuIFZhbHVlQXhpc0xhYmVsc0NvbXBvbmVudEdlbmVyYXRlZDtcbn0oU2V0dGluZ3NDb21wb25lbnQpKTtcblxuLyoqXG4gKiBUaGUgYXhpcyBsYWJlbHMgY29uZmlndXJhdGlvbi5cbiAqL1xudmFyIFZhbHVlQXhpc0xhYmVsc0NvbXBvbmVudCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoVmFsdWVBeGlzTGFiZWxzQ29tcG9uZW50LCBfc3VwZXIpO1xuICAgIC8vIFBsYWNlIGN1c3RvbSBwcm9wZXJ0aWVzIGhlcmVcbiAgICBmdW5jdGlvbiBWYWx1ZUF4aXNMYWJlbHNDb21wb25lbnQoY29uZmlndXJhdGlvblNlcnZpY2UpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgY29uZmlndXJhdGlvblNlcnZpY2UpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlID0gY29uZmlndXJhdGlvblNlcnZpY2U7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgVmFsdWVBeGlzTGFiZWxzQ29tcG9uZW50LmRlY29yYXRvcnMgPSBbXG4gICAgICAgIHsgdHlwZTogQ29tcG9uZW50LCBhcmdzOiBbe1xuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0b3I6ICdrZW5kby1jaGFydC12YWx1ZS1heGlzLWl0ZW0tbGFiZWxzJyxcbiAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGU6ICcnXG4gICAgICAgICAgICAgICAgfSxdIH0sXG4gICAgXTtcbiAgICAvKiogQG5vY29sbGFwc2UgKi9cbiAgICBWYWx1ZUF4aXNMYWJlbHNDb21wb25lbnQuY3RvclBhcmFtZXRlcnMgPSBmdW5jdGlvbiAoKSB7IHJldHVybiBbXG4gICAgICAgIHsgdHlwZTogQ29uZmlndXJhdGlvblNlcnZpY2UgfVxuICAgIF07IH07XG4gICAgcmV0dXJuIFZhbHVlQXhpc0xhYmVsc0NvbXBvbmVudDtcbn0oVmFsdWVBeGlzTGFiZWxzQ29tcG9uZW50R2VuZXJhdGVkKSk7XG5cbi8qKlxuICogQGhpZGRlblxuICovXG52YXIgVmFsdWVBeGlzTm90ZXNDb21wb25lbnRHZW5lcmF0ZWQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKFZhbHVlQXhpc05vdGVzQ29tcG9uZW50R2VuZXJhdGVkLCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIFZhbHVlQXhpc05vdGVzQ29tcG9uZW50R2VuZXJhdGVkKGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsICdub3RlcycsIGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5jb25maWd1cmF0aW9uU2VydmljZSA9IGNvbmZpZ3VyYXRpb25TZXJ2aWNlO1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIFZhbHVlQXhpc05vdGVzQ29tcG9uZW50R2VuZXJhdGVkLnByb3BEZWNvcmF0b3JzID0ge1xuICAgICAgICBkYXRhOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgbGluZTogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHBvc2l0aW9uOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgdmlzdWFsOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgaWNvbjogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGxhYmVsOiBbeyB0eXBlOiBJbnB1dCB9XVxuICAgIH07XG4gICAgcmV0dXJuIFZhbHVlQXhpc05vdGVzQ29tcG9uZW50R2VuZXJhdGVkO1xufShTZXR0aW5nc0NvbXBvbmVudCkpO1xuXG4vKipcbiAqIFRoZSBjb25maWd1cmF0aW9uIG9mIHRoZSB2YWx1ZSBheGlzIG5vdGVzIChbc2VlIGV4YW1wbGVdKHslIHNsdWcgbm90ZXNfY2hhcnRfY2hhcnRzICV9I3RvYy1heGlzLW5vdGVzKSkuXG4gKi9cbnZhciBWYWx1ZUF4aXNOb3Rlc0NvbXBvbmVudCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoVmFsdWVBeGlzTm90ZXNDb21wb25lbnQsIF9zdXBlcik7XG4gICAgLy8gUGxhY2UgY3VzdG9tIHByb3BlcnRpZXMgaGVyZVxuICAgIGZ1bmN0aW9uIFZhbHVlQXhpc05vdGVzQ29tcG9uZW50KGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsIGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5jb25maWd1cmF0aW9uU2VydmljZSA9IGNvbmZpZ3VyYXRpb25TZXJ2aWNlO1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIFZhbHVlQXhpc05vdGVzQ29tcG9uZW50LmRlY29yYXRvcnMgPSBbXG4gICAgICAgIHsgdHlwZTogQ29tcG9uZW50LCBhcmdzOiBbe1xuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0b3I6ICdrZW5kby1jaGFydC12YWx1ZS1heGlzLWl0ZW0tbm90ZXMnLFxuICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZTogJydcbiAgICAgICAgICAgICAgICB9LF0gfSxcbiAgICBdO1xuICAgIC8qKiBAbm9jb2xsYXBzZSAqL1xuICAgIFZhbHVlQXhpc05vdGVzQ29tcG9uZW50LmN0b3JQYXJhbWV0ZXJzID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gW1xuICAgICAgICB7IHR5cGU6IENvbmZpZ3VyYXRpb25TZXJ2aWNlIH1cbiAgICBdOyB9O1xuICAgIHJldHVybiBWYWx1ZUF4aXNOb3Rlc0NvbXBvbmVudDtcbn0oVmFsdWVBeGlzTm90ZXNDb21wb25lbnRHZW5lcmF0ZWQpKTtcblxuLyoqXG4gKiBAaGlkZGVuXG4gKi9cbnZhciBWYWx1ZUF4aXNOb3Rlc0ljb25Db21wb25lbnRHZW5lcmF0ZWQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKFZhbHVlQXhpc05vdGVzSWNvbkNvbXBvbmVudEdlbmVyYXRlZCwgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBWYWx1ZUF4aXNOb3Rlc0ljb25Db21wb25lbnRHZW5lcmF0ZWQoY29uZmlndXJhdGlvblNlcnZpY2UpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgJ25vdGVzLmljb24nLCBjb25maWd1cmF0aW9uU2VydmljZSkgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuY29uZmlndXJhdGlvblNlcnZpY2UgPSBjb25maWd1cmF0aW9uU2VydmljZTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBWYWx1ZUF4aXNOb3Rlc0ljb25Db21wb25lbnRHZW5lcmF0ZWQucHJvcERlY29yYXRvcnMgPSB7XG4gICAgICAgIGJhY2tncm91bmQ6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBib3JkZXI6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBzaXplOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgdHlwZTogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHZpc2libGU6IFt7IHR5cGU6IElucHV0IH1dXG4gICAgfTtcbiAgICByZXR1cm4gVmFsdWVBeGlzTm90ZXNJY29uQ29tcG9uZW50R2VuZXJhdGVkO1xufShTZXR0aW5nc0NvbXBvbmVudCkpO1xuXG4vKipcbiAqIFRoZSBpY29uIG9mIHRoZSBub3Rlcy5cbiAqL1xudmFyIFZhbHVlQXhpc05vdGVzSWNvbkNvbXBvbmVudCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoVmFsdWVBeGlzTm90ZXNJY29uQ29tcG9uZW50LCBfc3VwZXIpO1xuICAgIC8vIFBsYWNlIGN1c3RvbSBwcm9wZXJ0aWVzIGhlcmVcbiAgICBmdW5jdGlvbiBWYWx1ZUF4aXNOb3Rlc0ljb25Db21wb25lbnQoY29uZmlndXJhdGlvblNlcnZpY2UpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgY29uZmlndXJhdGlvblNlcnZpY2UpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlID0gY29uZmlndXJhdGlvblNlcnZpY2U7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgVmFsdWVBeGlzTm90ZXNJY29uQ29tcG9uZW50LmRlY29yYXRvcnMgPSBbXG4gICAgICAgIHsgdHlwZTogQ29tcG9uZW50LCBhcmdzOiBbe1xuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0b3I6ICdrZW5kby1jaGFydC12YWx1ZS1heGlzLWl0ZW0tbm90ZXMtaWNvbicsXG4gICAgICAgICAgICAgICAgICAgIHRlbXBsYXRlOiAnJ1xuICAgICAgICAgICAgICAgIH0sXSB9LFxuICAgIF07XG4gICAgLyoqIEBub2NvbGxhcHNlICovXG4gICAgVmFsdWVBeGlzTm90ZXNJY29uQ29tcG9uZW50LmN0b3JQYXJhbWV0ZXJzID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gW1xuICAgICAgICB7IHR5cGU6IENvbmZpZ3VyYXRpb25TZXJ2aWNlIH1cbiAgICBdOyB9O1xuICAgIHJldHVybiBWYWx1ZUF4aXNOb3Rlc0ljb25Db21wb25lbnQ7XG59KFZhbHVlQXhpc05vdGVzSWNvbkNvbXBvbmVudEdlbmVyYXRlZCkpO1xuXG4vKipcbiAqIEBoaWRkZW5cbiAqL1xudmFyIFZhbHVlQXhpc05vdGVzTGFiZWxDb21wb25lbnRHZW5lcmF0ZWQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKFZhbHVlQXhpc05vdGVzTGFiZWxDb21wb25lbnRHZW5lcmF0ZWQsIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gVmFsdWVBeGlzTm90ZXNMYWJlbENvbXBvbmVudEdlbmVyYXRlZChjb25maWd1cmF0aW9uU2VydmljZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCAnbm90ZXMubGFiZWwnLCBjb25maWd1cmF0aW9uU2VydmljZSkgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuY29uZmlndXJhdGlvblNlcnZpY2UgPSBjb25maWd1cmF0aW9uU2VydmljZTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBWYWx1ZUF4aXNOb3Rlc0xhYmVsQ29tcG9uZW50R2VuZXJhdGVkLnByb3BEZWNvcmF0b3JzID0ge1xuICAgICAgICBiYWNrZ3JvdW5kOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgYm9yZGVyOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgY29sb3I6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBjb250ZW50OiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgZm9udDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGZvcm1hdDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHBvc2l0aW9uOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgcm90YXRpb246IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICB2aXNpYmxlOiBbeyB0eXBlOiBJbnB1dCB9XVxuICAgIH07XG4gICAgcmV0dXJuIFZhbHVlQXhpc05vdGVzTGFiZWxDb21wb25lbnRHZW5lcmF0ZWQ7XG59KFNldHRpbmdzQ29tcG9uZW50KSk7XG5cbi8qKlxuICogVGhlIGxhYmVsIG9mIHRoZSBub3Rlcy5cbiAqL1xudmFyIFZhbHVlQXhpc05vdGVzTGFiZWxDb21wb25lbnQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKFZhbHVlQXhpc05vdGVzTGFiZWxDb21wb25lbnQsIF9zdXBlcik7XG4gICAgLy8gUGxhY2UgY3VzdG9tIHByb3BlcnRpZXMgaGVyZVxuICAgIGZ1bmN0aW9uIFZhbHVlQXhpc05vdGVzTGFiZWxDb21wb25lbnQoY29uZmlndXJhdGlvblNlcnZpY2UpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgY29uZmlndXJhdGlvblNlcnZpY2UpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlID0gY29uZmlndXJhdGlvblNlcnZpY2U7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgVmFsdWVBeGlzTm90ZXNMYWJlbENvbXBvbmVudC5kZWNvcmF0b3JzID0gW1xuICAgICAgICB7IHR5cGU6IENvbXBvbmVudCwgYXJnczogW3tcbiAgICAgICAgICAgICAgICAgICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdG9yOiAna2VuZG8tY2hhcnQtdmFsdWUtYXhpcy1pdGVtLW5vdGVzLWxhYmVsJyxcbiAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGU6ICcnXG4gICAgICAgICAgICAgICAgfSxdIH0sXG4gICAgXTtcbiAgICAvKiogQG5vY29sbGFwc2UgKi9cbiAgICBWYWx1ZUF4aXNOb3Rlc0xhYmVsQ29tcG9uZW50LmN0b3JQYXJhbWV0ZXJzID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gW1xuICAgICAgICB7IHR5cGU6IENvbmZpZ3VyYXRpb25TZXJ2aWNlIH1cbiAgICBdOyB9O1xuICAgIHJldHVybiBWYWx1ZUF4aXNOb3Rlc0xhYmVsQ29tcG9uZW50O1xufShWYWx1ZUF4aXNOb3Rlc0xhYmVsQ29tcG9uZW50R2VuZXJhdGVkKSk7XG5cbi8qKlxuICogQGhpZGRlblxuICovXG52YXIgVmFsdWVBeGlzVGl0bGVDb21wb25lbnRHZW5lcmF0ZWQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKFZhbHVlQXhpc1RpdGxlQ29tcG9uZW50R2VuZXJhdGVkLCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIFZhbHVlQXhpc1RpdGxlQ29tcG9uZW50R2VuZXJhdGVkKGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsICd0aXRsZScsIGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5jb25maWd1cmF0aW9uU2VydmljZSA9IGNvbmZpZ3VyYXRpb25TZXJ2aWNlO1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIFZhbHVlQXhpc1RpdGxlQ29tcG9uZW50R2VuZXJhdGVkLnByb3BEZWNvcmF0b3JzID0ge1xuICAgICAgICBiYWNrZ3JvdW5kOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgYm9yZGVyOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgY29sb3I6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBmb250OiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgbWFyZ2luOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgcGFkZGluZzogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHBvc2l0aW9uOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgcm90YXRpb246IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICB0ZXh0OiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgdmlzaWJsZTogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHZpc3VhbDogW3sgdHlwZTogSW5wdXQgfV1cbiAgICB9O1xuICAgIHJldHVybiBWYWx1ZUF4aXNUaXRsZUNvbXBvbmVudEdlbmVyYXRlZDtcbn0oU2V0dGluZ3NDb21wb25lbnQpKTtcblxuLyoqXG4gKiBUaGUgdGl0bGUgY29uZmlndXJhdGlvbiBvZiB0aGUgdmFsdWUgYXhpcy5cbiAqL1xudmFyIFZhbHVlQXhpc1RpdGxlQ29tcG9uZW50ID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhWYWx1ZUF4aXNUaXRsZUNvbXBvbmVudCwgX3N1cGVyKTtcbiAgICAvLyBQbGFjZSBjdXN0b20gcHJvcGVydGllcyBoZXJlXG4gICAgZnVuY3Rpb24gVmFsdWVBeGlzVGl0bGVDb21wb25lbnQoY29uZmlndXJhdGlvblNlcnZpY2UpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgY29uZmlndXJhdGlvblNlcnZpY2UpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlID0gY29uZmlndXJhdGlvblNlcnZpY2U7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgVmFsdWVBeGlzVGl0bGVDb21wb25lbnQuZGVjb3JhdG9ycyA9IFtcbiAgICAgICAgeyB0eXBlOiBDb21wb25lbnQsIGFyZ3M6IFt7XG4gICAgICAgICAgICAgICAgICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RvcjogJ2tlbmRvLWNoYXJ0LXZhbHVlLWF4aXMtaXRlbS10aXRsZScsXG4gICAgICAgICAgICAgICAgICAgIHRlbXBsYXRlOiAnJ1xuICAgICAgICAgICAgICAgIH0sXSB9LFxuICAgIF07XG4gICAgLyoqIEBub2NvbGxhcHNlICovXG4gICAgVmFsdWVBeGlzVGl0bGVDb21wb25lbnQuY3RvclBhcmFtZXRlcnMgPSBmdW5jdGlvbiAoKSB7IHJldHVybiBbXG4gICAgICAgIHsgdHlwZTogQ29uZmlndXJhdGlvblNlcnZpY2UgfVxuICAgIF07IH07XG4gICAgcmV0dXJuIFZhbHVlQXhpc1RpdGxlQ29tcG9uZW50O1xufShWYWx1ZUF4aXNUaXRsZUNvbXBvbmVudEdlbmVyYXRlZCkpO1xuXG4vKipcbiAqIEBoaWRkZW5cbiAqL1xudmFyIFhBeGlzSXRlbUNvbXBvbmVudEdlbmVyYXRlZCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoWEF4aXNJdGVtQ29tcG9uZW50R2VuZXJhdGVkLCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIFhBeGlzSXRlbUNvbXBvbmVudEdlbmVyYXRlZChjb25maWd1cmF0aW9uU2VydmljZSwgY29sbGVjdGlvblNlcnZpY2UsIGludGwsIGxvY2FsZUlkKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsIGNvbmZpZ3VyYXRpb25TZXJ2aWNlLCBjb2xsZWN0aW9uU2VydmljZSkgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuY29uZmlndXJhdGlvblNlcnZpY2UgPSBjb25maWd1cmF0aW9uU2VydmljZTtcbiAgICAgICAgX3RoaXMuY29sbGVjdGlvblNlcnZpY2UgPSBjb2xsZWN0aW9uU2VydmljZTtcbiAgICAgICAgX3RoaXMubm90aWZ5Q2hhbmdlcyh7IHdlZWtTdGFydERheTogaW50bC5maXJzdERheShsb2NhbGVJZCkgfSk7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgWEF4aXNJdGVtQ29tcG9uZW50R2VuZXJhdGVkLnByb3BEZWNvcmF0b3JzID0ge1xuICAgICAgICBheGlzQ3Jvc3NpbmdWYWx1ZTogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGJhY2tncm91bmQ6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBiYXNlVW5pdDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGNvbG9yOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgbGluZTogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIG1ham9yR3JpZExpbmVzOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgbWFqb3JUaWNrczogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIG1ham9yVW5pdDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIG1heDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIG1pbjogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIG1pbm9yR3JpZExpbmVzOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgbWlub3JUaWNrczogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIG1pbm9yVW5pdDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIG5hbWU6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBuYXJyb3dSYW5nZTogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHBhbmU6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBwbG90QmFuZHM6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICByZXZlcnNlOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgc3RhcnRBbmdsZTogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHR5cGU6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICB2aXNpYmxlOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgd2Vla1N0YXJ0RGF5OiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgY3Jvc3NoYWlyOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgbGFiZWxzOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgbm90ZXM6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICB0aXRsZTogW3sgdHlwZTogSW5wdXQgfV1cbiAgICB9O1xuICAgIHJldHVybiBYQXhpc0l0ZW1Db21wb25lbnRHZW5lcmF0ZWQ7XG59KENvbGxlY3Rpb25JdGVtQ29tcG9uZW50KSk7XG5cbi8qKlxuICogVGhlIGNvbmZpZ3VyYXRpb24gY29tcG9uZW50IGZvciBhbiBYIGF4aXNcbiAqIChbc2VlIGV4YW1wbGVdKHslIHNsdWcgYXBpX2NoYXJ0c194YXhpc2NvbXBvbmVudCAlfSkpLlxuICovXG52YXIgWEF4aXNJdGVtQ29tcG9uZW50ID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhYQXhpc0l0ZW1Db21wb25lbnQsIF9zdXBlcik7XG4gICAgLy8gUGxhY2UgY3VzdG9tIHByb3BlcnRpZXMgaGVyZVxuICAgIGZ1bmN0aW9uIFhBeGlzSXRlbUNvbXBvbmVudChjb25maWd1cmF0aW9uU2VydmljZSwgY29sbGVjdGlvblNlcnZpY2UsIGludGwsIGxvY2FsZUlkKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsIGNvbmZpZ3VyYXRpb25TZXJ2aWNlLCBjb2xsZWN0aW9uU2VydmljZSwgaW50bCwgbG9jYWxlSWQpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlID0gY29uZmlndXJhdGlvblNlcnZpY2U7XG4gICAgICAgIF90aGlzLmNvbGxlY3Rpb25TZXJ2aWNlID0gY29sbGVjdGlvblNlcnZpY2U7XG4gICAgICAgIF90aGlzLmludGwgPSBpbnRsO1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIFhBeGlzSXRlbUNvbXBvbmVudC5kZWNvcmF0b3JzID0gW1xuICAgICAgICB7IHR5cGU6IENvbXBvbmVudCwgYXJnczogW3tcbiAgICAgICAgICAgICAgICAgICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGVyczogW0NvbmZpZ3VyYXRpb25TZXJ2aWNlXSxcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0b3I6ICdrZW5kby1jaGFydC14LWF4aXMtaXRlbScsXG4gICAgICAgICAgICAgICAgICAgIHRlbXBsYXRlOiAnJ1xuICAgICAgICAgICAgICAgIH0sXSB9LFxuICAgIF07XG4gICAgLyoqIEBub2NvbGxhcHNlICovXG4gICAgWEF4aXNJdGVtQ29tcG9uZW50LmN0b3JQYXJhbWV0ZXJzID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gW1xuICAgICAgICB7IHR5cGU6IENvbmZpZ3VyYXRpb25TZXJ2aWNlIH0sXG4gICAgICAgIHsgdHlwZTogQ29sbGVjdGlvblNlcnZpY2UgfSxcbiAgICAgICAgeyB0eXBlOiBJbnRsU2VydmljZSB9LFxuICAgICAgICB7IHR5cGU6IFN0cmluZywgZGVjb3JhdG9yczogW3sgdHlwZTogSW5qZWN0LCBhcmdzOiBbTE9DQUxFX0lELF0gfV0gfVxuICAgIF07IH07XG4gICAgcmV0dXJuIFhBeGlzSXRlbUNvbXBvbmVudDtcbn0oWEF4aXNJdGVtQ29tcG9uZW50R2VuZXJhdGVkKSk7XG5cbi8qKlxuICogQGhpZGRlblxuICovXG52YXIgWEF4aXNDb21wb25lbnRHZW5lcmF0ZWQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKFhBeGlzQ29tcG9uZW50R2VuZXJhdGVkLCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIFhBeGlzQ29tcG9uZW50R2VuZXJhdGVkKGNvbmZpZ3VyYXRpb25TZXJ2aWNlLCBjb2xsZWN0aW9uU2VydmljZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCAneEF4aXMnLCBjb25maWd1cmF0aW9uU2VydmljZSwgY29sbGVjdGlvblNlcnZpY2UpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlID0gY29uZmlndXJhdGlvblNlcnZpY2U7XG4gICAgICAgIF90aGlzLmNvbGxlY3Rpb25TZXJ2aWNlID0gY29sbGVjdGlvblNlcnZpY2U7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgWEF4aXNDb21wb25lbnRHZW5lcmF0ZWQucHJvcERlY29yYXRvcnMgPSB7XG4gICAgICAgIGNoaWxkcmVuOiBbeyB0eXBlOiBDb250ZW50Q2hpbGRyZW4sIGFyZ3M6IFtYQXhpc0l0ZW1Db21wb25lbnQsXSB9XVxuICAgIH07XG4gICAgcmV0dXJuIFhBeGlzQ29tcG9uZW50R2VuZXJhdGVkO1xufShDb2xsZWN0aW9uQ29tcG9uZW50KSk7XG5cbi8qKlxuICogQSBjb2xsZWN0aW9uIG9mIG9uZSBvciBtb3JlIFgtYXhpcyBjb25maWd1cmF0aW9uIGNvbXBvbmVudHMuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbiAqXG4gKiBfQENvbXBvbmVudCh7XG4gKiAgc2VsZWN0b3I6ICdteS1hcHAnLFxuICogdGVtcGxhdGU6IGBcbiAqICAgPGtlbmRvLWNoYXJ0PlxuICogICAgIDxrZW5kby1jaGFydC14LWF4aXM+XG4gKiAgICAgICA8a2VuZG8tY2hhcnQteC1heGlzLWl0ZW1cbiAqICAgICAgICAgW2JhY2tncm91bmRdPVwiJ3JnYmEoMTAwLCAxMDAsIDEwMCwgMC4yKSdcIlxuICogICAgICAgICBbY29sb3JdPVwiJ3JlZCdcIlxuICogICAgICAgICBbbm90ZXNdPVwibm90ZXNDb25maWdcIlxuICogICAgICAgICBbY3Jvc3NoYWlyXT1cImNyb3NzaGFpckNvbmZpZ1wiPlxuICogICAgICAgPC9rZW5kby1jaGFydC14LWF4aXMtaXRlbT5cbiAqICAgICAgIDxrZW5kby1jaGFydC14LWF4aXMtaXRlbSBuYW1lPVwic2Vjb25kQXhpc1wiPlxuICogICAgICAgPC9rZW5kby1jaGFydC14LWF4aXMtaXRlbT5cbiAqICAgICA8L2tlbmRvLWNoYXJ0LXgtYXhpcz5cbiAqICAgICA8a2VuZG8tY2hhcnQtc2VyaWVzPlxuICogICAgICAgPGtlbmRvLWNoYXJ0LXNlcmllcy1pdGVtIHR5cGU9XCJzY2F0dGVyXCIgW2RhdGFdPVwiW1sxLCAyXV1cIj5cbiAqICAgICAgIDwva2VuZG8tY2hhcnQtc2VyaWVzLWl0ZW0+XG4gKiAgICAgICA8a2VuZG8tY2hhcnQtc2VyaWVzLWl0ZW0gdHlwZT1cInNjYXR0ZXJcIiBbZGF0YV09XCJbWzAuMSwgMC4yXV1cIlxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhBeGlzPVwic2Vjb25kQXhpc1wiPlxuICogICAgICAgPC9rZW5kby1jaGFydC1zZXJpZXMtaXRlbT5cbiAqICAgICA8L2tlbmRvLWNoYXJ0LXNlcmllcz5cbiAqICAgPC9rZW5kby1jaGFydD5cbiAqIGBcbiAqIH0pXG4gKiBleHBvcnQgY2xhc3MgQXBwQ29tcG9uZW50IHtcbiAqIHB1YmxpYyBub3Rlc0NvbmZpZyA9IHtcbiAqICAgZGF0YTogW3tcbiAqICAgICAgIHZhbHVlOiAwLjIsXG4gKiAgICAgICB0ZXh0OiBcImZvb1wiXG4gKiAgICAgfSwge1xuICogICAgICAgdmFsdWU6IDAuOCxcbiAqICAgICAgIHRleHQ6IFwiYmFyXCJcbiAqICAgICB9XSxcbiAqICAgbGFiZWw6IHtcbiAqICAgICBjb250ZW50OiAoYXJnczogYW55KSA9PiBhcmdzLmRhdGFJdGVtLnRleHQsXG4gKiAgICAgYmFja2dyb3VuZDogJ3JlZCcsXG4gKiAgICAgY29sb3I6ICd3aGl0ZSdcbiAqICAgfSxcbiAqICAgbGluZToge1xuICogICAgIGNvbG9yOiAnYmx1ZScsXG4gKiAgICAgZGFzaFR5cGU6ICdkYXNoJyxcbiAqICAgICBsZW5ndGg6IDE1MCxcbiAqICAgICB3aWR0aDogMlxuICogICB9LFxuICogICBwb3NpdGlvbjogJ3RvcCdcbiAqIH07XG4gKlxuICogcHVibGljIGNyb3NzaGFpckNvbmZpZyA9IHtcbiAqICAgY29sb3I6ICdncmVlbicsXG4gKiAgIG9wYWNpdHk6IDAuOCxcbiAqICAgdmlzaWJsZTogdHJ1ZSxcbiAqICAgd2lkdGg6IDNcbiAqIH07XG4gKiB9XG4gKlxuICogYGBgXG4gKi9cbnZhciBYQXhpc0NvbXBvbmVudCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoWEF4aXNDb21wb25lbnQsIF9zdXBlcik7XG4gICAgLy8gUGxhY2UgY3VzdG9tIHByb3BlcnRpZXMgaGVyZVxuICAgIGZ1bmN0aW9uIFhBeGlzQ29tcG9uZW50KGNvbmZpZ3VyYXRpb25TZXJ2aWNlLCBjb2xsZWN0aW9uU2VydmljZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBjb25maWd1cmF0aW9uU2VydmljZSwgY29sbGVjdGlvblNlcnZpY2UpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlID0gY29uZmlndXJhdGlvblNlcnZpY2U7XG4gICAgICAgIF90aGlzLmNvbGxlY3Rpb25TZXJ2aWNlID0gY29sbGVjdGlvblNlcnZpY2U7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgWEF4aXNDb21wb25lbnQuZGVjb3JhdG9ycyA9IFtcbiAgICAgICAgeyB0eXBlOiBDb21wb25lbnQsIGFyZ3M6IFt7XG4gICAgICAgICAgICAgICAgICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgICAgICAgICAgICAgICAgICBwcm92aWRlcnM6IFtDb2xsZWN0aW9uU2VydmljZV0sXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdG9yOiAna2VuZG8tY2hhcnQteC1heGlzJyxcbiAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGU6ICcnXG4gICAgICAgICAgICAgICAgfSxdIH0sXG4gICAgXTtcbiAgICAvKiogQG5vY29sbGFwc2UgKi9cbiAgICBYQXhpc0NvbXBvbmVudC5jdG9yUGFyYW1ldGVycyA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIFtcbiAgICAgICAgeyB0eXBlOiBDb25maWd1cmF0aW9uU2VydmljZSB9LFxuICAgICAgICB7IHR5cGU6IENvbGxlY3Rpb25TZXJ2aWNlIH1cbiAgICBdOyB9O1xuICAgIHJldHVybiBYQXhpc0NvbXBvbmVudDtcbn0oWEF4aXNDb21wb25lbnRHZW5lcmF0ZWQpKTtcblxuLyoqXG4gKiBAaGlkZGVuXG4gKi9cbnZhciBYQXhpc0Nyb3NzaGFpckNvbXBvbmVudEdlbmVyYXRlZCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoWEF4aXNDcm9zc2hhaXJDb21wb25lbnRHZW5lcmF0ZWQsIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gWEF4aXNDcm9zc2hhaXJDb21wb25lbnRHZW5lcmF0ZWQoY29uZmlndXJhdGlvblNlcnZpY2UpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgJ2Nyb3NzaGFpcicsIGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5jb25maWd1cmF0aW9uU2VydmljZSA9IGNvbmZpZ3VyYXRpb25TZXJ2aWNlO1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIFhBeGlzQ3Jvc3NoYWlyQ29tcG9uZW50R2VuZXJhdGVkLnByb3BEZWNvcmF0b3JzID0ge1xuICAgICAgICBjb2xvcjogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIG9wYWNpdHk6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICB2aXNpYmxlOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgd2lkdGg6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICB0b29sdGlwOiBbeyB0eXBlOiBJbnB1dCB9XVxuICAgIH07XG4gICAgcmV0dXJuIFhBeGlzQ3Jvc3NoYWlyQ29tcG9uZW50R2VuZXJhdGVkO1xufShTZXR0aW5nc0NvbXBvbmVudCkpO1xuXG4vKipcbiAqIFRoZSBjcm9zc2hhaXIgY29uZmlndXJhdGlvbiBvcHRpb25zXG4gKiAoW3NlZSBleGFtcGxlXSh7JSBzbHVnIGFwaV9jaGFydHNfeGF4aXNjb21wb25lbnQgJX0pKS5cbiAqL1xudmFyIFhBeGlzQ3Jvc3NoYWlyQ29tcG9uZW50ID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhYQXhpc0Nyb3NzaGFpckNvbXBvbmVudCwgX3N1cGVyKTtcbiAgICAvLyBQbGFjZSBjdXN0b20gcHJvcGVydGllcyBoZXJlXG4gICAgZnVuY3Rpb24gWEF4aXNDcm9zc2hhaXJDb21wb25lbnQoY29uZmlndXJhdGlvblNlcnZpY2UpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgY29uZmlndXJhdGlvblNlcnZpY2UpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlID0gY29uZmlndXJhdGlvblNlcnZpY2U7XG4gICAgICAgIF90aGlzLm1hcmtBc1Zpc2libGUoKTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBYQXhpc0Nyb3NzaGFpckNvbXBvbmVudC5kZWNvcmF0b3JzID0gW1xuICAgICAgICB7IHR5cGU6IENvbXBvbmVudCwgYXJnczogW3tcbiAgICAgICAgICAgICAgICAgICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdG9yOiAna2VuZG8tY2hhcnQteC1heGlzLWl0ZW0tY3Jvc3NoYWlyJyxcbiAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGU6ICcnXG4gICAgICAgICAgICAgICAgfSxdIH0sXG4gICAgXTtcbiAgICAvKiogQG5vY29sbGFwc2UgKi9cbiAgICBYQXhpc0Nyb3NzaGFpckNvbXBvbmVudC5jdG9yUGFyYW1ldGVycyA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIFtcbiAgICAgICAgeyB0eXBlOiBDb25maWd1cmF0aW9uU2VydmljZSB9XG4gICAgXTsgfTtcbiAgICByZXR1cm4gWEF4aXNDcm9zc2hhaXJDb21wb25lbnQ7XG59KFhBeGlzQ3Jvc3NoYWlyQ29tcG9uZW50R2VuZXJhdGVkKSk7XG5cbi8qKlxuICogQGhpZGRlblxuICovXG52YXIgWEF4aXNDcm9zc2hhaXJUb29sdGlwQ29tcG9uZW50R2VuZXJhdGVkID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhYQXhpc0Nyb3NzaGFpclRvb2x0aXBDb21wb25lbnRHZW5lcmF0ZWQsIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gWEF4aXNDcm9zc2hhaXJUb29sdGlwQ29tcG9uZW50R2VuZXJhdGVkKGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsICdjcm9zc2hhaXIudG9vbHRpcCcsIGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5jb25maWd1cmF0aW9uU2VydmljZSA9IGNvbmZpZ3VyYXRpb25TZXJ2aWNlO1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIFhBeGlzQ3Jvc3NoYWlyVG9vbHRpcENvbXBvbmVudEdlbmVyYXRlZC5wcm9wRGVjb3JhdG9ycyA9IHtcbiAgICAgICAgYmFja2dyb3VuZDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGJvcmRlcjogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGNvbG9yOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgZm9udDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGZvcm1hdDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHBhZGRpbmc6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICB2aXNpYmxlOiBbeyB0eXBlOiBJbnB1dCB9XVxuICAgIH07XG4gICAgcmV0dXJuIFhBeGlzQ3Jvc3NoYWlyVG9vbHRpcENvbXBvbmVudEdlbmVyYXRlZDtcbn0oU2V0dGluZ3NDb21wb25lbnQpKTtcblxuLyoqXG4gKiBUaGUgY29uZmlndXJhdGlvbiBvcHRpb25zIG9mIHRoZSBjcm9zc2hhaXIgdG9vbHRpcC5cbiAqIFRoZSBjcm9zc2hhaXIgdG9vbHRpcCBpcyBkaXNwbGF5ZWQgd2hlbiB0aGUgYHZpc2libGVgIG9wdGlvbiBpcyBzZXQgdG8gYHRydWVgLlxuICovXG52YXIgWEF4aXNDcm9zc2hhaXJUb29sdGlwQ29tcG9uZW50ID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhYQXhpc0Nyb3NzaGFpclRvb2x0aXBDb21wb25lbnQsIF9zdXBlcik7XG4gICAgLy8gUGxhY2UgY3VzdG9tIHByb3BlcnRpZXMgaGVyZS5cbiAgICBmdW5jdGlvbiBYQXhpc0Nyb3NzaGFpclRvb2x0aXBDb21wb25lbnQoY29uZmlndXJhdGlvblNlcnZpY2UpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgY29uZmlndXJhdGlvblNlcnZpY2UpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlID0gY29uZmlndXJhdGlvblNlcnZpY2U7XG4gICAgICAgIF90aGlzLm1hcmtBc1Zpc2libGUoKTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBYQXhpc0Nyb3NzaGFpclRvb2x0aXBDb21wb25lbnQuZGVjb3JhdG9ycyA9IFtcbiAgICAgICAgeyB0eXBlOiBDb21wb25lbnQsIGFyZ3M6IFt7XG4gICAgICAgICAgICAgICAgICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RvcjogJ2tlbmRvLWNoYXJ0LXgtYXhpcy1pdGVtLWNyb3NzaGFpci10b29sdGlwJyxcbiAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGU6ICcnXG4gICAgICAgICAgICAgICAgfSxdIH0sXG4gICAgXTtcbiAgICAvKiogQG5vY29sbGFwc2UgKi9cbiAgICBYQXhpc0Nyb3NzaGFpclRvb2x0aXBDb21wb25lbnQuY3RvclBhcmFtZXRlcnMgPSBmdW5jdGlvbiAoKSB7IHJldHVybiBbXG4gICAgICAgIHsgdHlwZTogQ29uZmlndXJhdGlvblNlcnZpY2UgfVxuICAgIF07IH07XG4gICAgcmV0dXJuIFhBeGlzQ3Jvc3NoYWlyVG9vbHRpcENvbXBvbmVudDtcbn0oWEF4aXNDcm9zc2hhaXJUb29sdGlwQ29tcG9uZW50R2VuZXJhdGVkKSk7XG5cbi8qKlxuICogQGhpZGRlblxuICovXG52YXIgWEF4aXNMYWJlbHNDb21wb25lbnRHZW5lcmF0ZWQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKFhBeGlzTGFiZWxzQ29tcG9uZW50R2VuZXJhdGVkLCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIFhBeGlzTGFiZWxzQ29tcG9uZW50R2VuZXJhdGVkKGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsICdsYWJlbHMnLCBjb25maWd1cmF0aW9uU2VydmljZSkgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuY29uZmlndXJhdGlvblNlcnZpY2UgPSBjb25maWd1cmF0aW9uU2VydmljZTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBYQXhpc0xhYmVsc0NvbXBvbmVudEdlbmVyYXRlZC5wcm9wRGVjb3JhdG9ycyA9IHtcbiAgICAgICAgYmFja2dyb3VuZDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGJvcmRlcjogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGNvbG9yOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgY29udGVudDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGN1bHR1cmU6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBkYXRlRm9ybWF0czogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGZvbnQ6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBmb3JtYXQ6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBtYXJnaW46IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBtaXJyb3I6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBwYWRkaW5nOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgcG9zaXRpb246IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICByb3RhdGlvbjogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHNraXA6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBzdGVwOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgdmlzaWJsZTogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHZpc3VhbDogW3sgdHlwZTogSW5wdXQgfV1cbiAgICB9O1xuICAgIHJldHVybiBYQXhpc0xhYmVsc0NvbXBvbmVudEdlbmVyYXRlZDtcbn0oU2V0dGluZ3NDb21wb25lbnQpKTtcblxuLyoqXG4gKiBUaGUgYXhpcyBsYWJlbHMgY29uZmlndXJhdGlvbi5cbiAqL1xudmFyIFhBeGlzTGFiZWxzQ29tcG9uZW50ID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhYQXhpc0xhYmVsc0NvbXBvbmVudCwgX3N1cGVyKTtcbiAgICAvLyBQbGFjZSBjdXN0b20gcHJvcGVydGllcyBoZXJlXG4gICAgZnVuY3Rpb24gWEF4aXNMYWJlbHNDb21wb25lbnQoY29uZmlndXJhdGlvblNlcnZpY2UpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgY29uZmlndXJhdGlvblNlcnZpY2UpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlID0gY29uZmlndXJhdGlvblNlcnZpY2U7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgWEF4aXNMYWJlbHNDb21wb25lbnQuZGVjb3JhdG9ycyA9IFtcbiAgICAgICAgeyB0eXBlOiBDb21wb25lbnQsIGFyZ3M6IFt7XG4gICAgICAgICAgICAgICAgICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RvcjogJ2tlbmRvLWNoYXJ0LXgtYXhpcy1pdGVtLWxhYmVscycsXG4gICAgICAgICAgICAgICAgICAgIHRlbXBsYXRlOiAnJ1xuICAgICAgICAgICAgICAgIH0sXSB9LFxuICAgIF07XG4gICAgLyoqIEBub2NvbGxhcHNlICovXG4gICAgWEF4aXNMYWJlbHNDb21wb25lbnQuY3RvclBhcmFtZXRlcnMgPSBmdW5jdGlvbiAoKSB7IHJldHVybiBbXG4gICAgICAgIHsgdHlwZTogQ29uZmlndXJhdGlvblNlcnZpY2UgfVxuICAgIF07IH07XG4gICAgcmV0dXJuIFhBeGlzTGFiZWxzQ29tcG9uZW50O1xufShYQXhpc0xhYmVsc0NvbXBvbmVudEdlbmVyYXRlZCkpO1xuXG4vKipcbiAqIEBoaWRkZW5cbiAqL1xudmFyIFhBeGlzTm90ZXNDb21wb25lbnRHZW5lcmF0ZWQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKFhBeGlzTm90ZXNDb21wb25lbnRHZW5lcmF0ZWQsIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gWEF4aXNOb3Rlc0NvbXBvbmVudEdlbmVyYXRlZChjb25maWd1cmF0aW9uU2VydmljZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCAnbm90ZXMnLCBjb25maWd1cmF0aW9uU2VydmljZSkgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuY29uZmlndXJhdGlvblNlcnZpY2UgPSBjb25maWd1cmF0aW9uU2VydmljZTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBYQXhpc05vdGVzQ29tcG9uZW50R2VuZXJhdGVkLnByb3BEZWNvcmF0b3JzID0ge1xuICAgICAgICBkYXRhOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgbGluZTogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHBvc2l0aW9uOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgdmlzdWFsOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgaWNvbjogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGxhYmVsOiBbeyB0eXBlOiBJbnB1dCB9XVxuICAgIH07XG4gICAgcmV0dXJuIFhBeGlzTm90ZXNDb21wb25lbnRHZW5lcmF0ZWQ7XG59KFNldHRpbmdzQ29tcG9uZW50KSk7XG5cbi8qKlxuICogVGhlIGNvbmZpZ3VyYXRpb24gb2YgdGhlIFgtYXhpcyBub3Rlcy5cbiAqIEZvciBhbiBleGFtcGxlIG9uIHRoZSBiYXNpYyB1c2FnZSBvZiB0aGUgWEF4aXNOb3Rlc0NvbXBvbmVudCxcbiAqIHJlZmVyIHRvIHRoZSBbZGVtbyBvbiB0aGUgWEF4aXNDb21wb25lbnRdKHslIHNsdWcgYXBpX2NoYXJ0c194YXhpc2NvbXBvbmVudCAlfSlcbiAqIG9yIHRvIHRoZSBkb2N1bWVudGF0aW9uIGFib3V0IHRoZVxuICogW2F4aXMgbm90ZXNdKHslIHNsdWcgbm90ZXNfY2hhcnRfY2hhcnRzICV9I3RvYy1heGlzLW5vdGVzKS5cbiAqL1xudmFyIFhBeGlzTm90ZXNDb21wb25lbnQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKFhBeGlzTm90ZXNDb21wb25lbnQsIF9zdXBlcik7XG4gICAgLy8gUGxhY2UgY3VzdG9tIHByb3BlcnRpZXMgaGVyZVxuICAgIGZ1bmN0aW9uIFhBeGlzTm90ZXNDb21wb25lbnQoY29uZmlndXJhdGlvblNlcnZpY2UpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgY29uZmlndXJhdGlvblNlcnZpY2UpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlID0gY29uZmlndXJhdGlvblNlcnZpY2U7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgWEF4aXNOb3Rlc0NvbXBvbmVudC5kZWNvcmF0b3JzID0gW1xuICAgICAgICB7IHR5cGU6IENvbXBvbmVudCwgYXJnczogW3tcbiAgICAgICAgICAgICAgICAgICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdG9yOiAna2VuZG8tY2hhcnQteC1heGlzLWl0ZW0tbm90ZXMnLFxuICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZTogJydcbiAgICAgICAgICAgICAgICB9LF0gfSxcbiAgICBdO1xuICAgIC8qKiBAbm9jb2xsYXBzZSAqL1xuICAgIFhBeGlzTm90ZXNDb21wb25lbnQuY3RvclBhcmFtZXRlcnMgPSBmdW5jdGlvbiAoKSB7IHJldHVybiBbXG4gICAgICAgIHsgdHlwZTogQ29uZmlndXJhdGlvblNlcnZpY2UgfVxuICAgIF07IH07XG4gICAgcmV0dXJuIFhBeGlzTm90ZXNDb21wb25lbnQ7XG59KFhBeGlzTm90ZXNDb21wb25lbnRHZW5lcmF0ZWQpKTtcblxuLyoqXG4gKiBAaGlkZGVuXG4gKi9cbnZhciBYQXhpc05vdGVzSWNvbkNvbXBvbmVudEdlbmVyYXRlZCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoWEF4aXNOb3Rlc0ljb25Db21wb25lbnRHZW5lcmF0ZWQsIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gWEF4aXNOb3Rlc0ljb25Db21wb25lbnRHZW5lcmF0ZWQoY29uZmlndXJhdGlvblNlcnZpY2UpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgJ25vdGVzLmljb24nLCBjb25maWd1cmF0aW9uU2VydmljZSkgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuY29uZmlndXJhdGlvblNlcnZpY2UgPSBjb25maWd1cmF0aW9uU2VydmljZTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBYQXhpc05vdGVzSWNvbkNvbXBvbmVudEdlbmVyYXRlZC5wcm9wRGVjb3JhdG9ycyA9IHtcbiAgICAgICAgYmFja2dyb3VuZDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGJvcmRlcjogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHNpemU6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICB0eXBlOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgdmlzaWJsZTogW3sgdHlwZTogSW5wdXQgfV1cbiAgICB9O1xuICAgIHJldHVybiBYQXhpc05vdGVzSWNvbkNvbXBvbmVudEdlbmVyYXRlZDtcbn0oU2V0dGluZ3NDb21wb25lbnQpKTtcblxuLyoqXG4gKiBUaGUgaWNvbiBvZiB0aGUgbm90ZXMuXG4gKi9cbnZhciBYQXhpc05vdGVzSWNvbkNvbXBvbmVudCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoWEF4aXNOb3Rlc0ljb25Db21wb25lbnQsIF9zdXBlcik7XG4gICAgLy8gUGxhY2UgY3VzdG9tIHByb3BlcnRpZXMgaGVyZVxuICAgIGZ1bmN0aW9uIFhBeGlzTm90ZXNJY29uQ29tcG9uZW50KGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsIGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5jb25maWd1cmF0aW9uU2VydmljZSA9IGNvbmZpZ3VyYXRpb25TZXJ2aWNlO1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIFhBeGlzTm90ZXNJY29uQ29tcG9uZW50LmRlY29yYXRvcnMgPSBbXG4gICAgICAgIHsgdHlwZTogQ29tcG9uZW50LCBhcmdzOiBbe1xuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0b3I6ICdrZW5kby1jaGFydC14LWF4aXMtaXRlbS1ub3Rlcy1pY29uJyxcbiAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGU6ICcnXG4gICAgICAgICAgICAgICAgfSxdIH0sXG4gICAgXTtcbiAgICAvKiogQG5vY29sbGFwc2UgKi9cbiAgICBYQXhpc05vdGVzSWNvbkNvbXBvbmVudC5jdG9yUGFyYW1ldGVycyA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIFtcbiAgICAgICAgeyB0eXBlOiBDb25maWd1cmF0aW9uU2VydmljZSB9XG4gICAgXTsgfTtcbiAgICByZXR1cm4gWEF4aXNOb3Rlc0ljb25Db21wb25lbnQ7XG59KFhBeGlzTm90ZXNJY29uQ29tcG9uZW50R2VuZXJhdGVkKSk7XG5cbi8qKlxuICogQGhpZGRlblxuICovXG52YXIgWEF4aXNOb3Rlc0xhYmVsQ29tcG9uZW50R2VuZXJhdGVkID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhYQXhpc05vdGVzTGFiZWxDb21wb25lbnRHZW5lcmF0ZWQsIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gWEF4aXNOb3Rlc0xhYmVsQ29tcG9uZW50R2VuZXJhdGVkKGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsICdub3Rlcy5sYWJlbCcsIGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5jb25maWd1cmF0aW9uU2VydmljZSA9IGNvbmZpZ3VyYXRpb25TZXJ2aWNlO1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIFhBeGlzTm90ZXNMYWJlbENvbXBvbmVudEdlbmVyYXRlZC5wcm9wRGVjb3JhdG9ycyA9IHtcbiAgICAgICAgYmFja2dyb3VuZDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGJvcmRlcjogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGNvbG9yOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgY29udGVudDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGZvbnQ6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBmb3JtYXQ6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBwb3NpdGlvbjogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHJvdGF0aW9uOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgdmlzaWJsZTogW3sgdHlwZTogSW5wdXQgfV1cbiAgICB9O1xuICAgIHJldHVybiBYQXhpc05vdGVzTGFiZWxDb21wb25lbnRHZW5lcmF0ZWQ7XG59KFNldHRpbmdzQ29tcG9uZW50KSk7XG5cbi8qKlxuICogVGhlIGxhYmVsIG9mIHRoZSBub3Rlcy5cbiAqL1xudmFyIFhBeGlzTm90ZXNMYWJlbENvbXBvbmVudCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoWEF4aXNOb3Rlc0xhYmVsQ29tcG9uZW50LCBfc3VwZXIpO1xuICAgIC8vIFBsYWNlIGN1c3RvbSBwcm9wZXJ0aWVzIGhlcmVcbiAgICBmdW5jdGlvbiBYQXhpc05vdGVzTGFiZWxDb21wb25lbnQoY29uZmlndXJhdGlvblNlcnZpY2UpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgY29uZmlndXJhdGlvblNlcnZpY2UpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlID0gY29uZmlndXJhdGlvblNlcnZpY2U7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgWEF4aXNOb3Rlc0xhYmVsQ29tcG9uZW50LmRlY29yYXRvcnMgPSBbXG4gICAgICAgIHsgdHlwZTogQ29tcG9uZW50LCBhcmdzOiBbe1xuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0b3I6ICdrZW5kby1jaGFydC14LWF4aXMtaXRlbS1ub3Rlcy1sYWJlbCcsXG4gICAgICAgICAgICAgICAgICAgIHRlbXBsYXRlOiAnJ1xuICAgICAgICAgICAgICAgIH0sXSB9LFxuICAgIF07XG4gICAgLyoqIEBub2NvbGxhcHNlICovXG4gICAgWEF4aXNOb3Rlc0xhYmVsQ29tcG9uZW50LmN0b3JQYXJhbWV0ZXJzID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gW1xuICAgICAgICB7IHR5cGU6IENvbmZpZ3VyYXRpb25TZXJ2aWNlIH1cbiAgICBdOyB9O1xuICAgIHJldHVybiBYQXhpc05vdGVzTGFiZWxDb21wb25lbnQ7XG59KFhBeGlzTm90ZXNMYWJlbENvbXBvbmVudEdlbmVyYXRlZCkpO1xuXG4vKipcbiAqIEBoaWRkZW5cbiAqL1xudmFyIFhBeGlzVGl0bGVDb21wb25lbnRHZW5lcmF0ZWQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKFhBeGlzVGl0bGVDb21wb25lbnRHZW5lcmF0ZWQsIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gWEF4aXNUaXRsZUNvbXBvbmVudEdlbmVyYXRlZChjb25maWd1cmF0aW9uU2VydmljZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCAndGl0bGUnLCBjb25maWd1cmF0aW9uU2VydmljZSkgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuY29uZmlndXJhdGlvblNlcnZpY2UgPSBjb25maWd1cmF0aW9uU2VydmljZTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBYQXhpc1RpdGxlQ29tcG9uZW50R2VuZXJhdGVkLnByb3BEZWNvcmF0b3JzID0ge1xuICAgICAgICBiYWNrZ3JvdW5kOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgYm9yZGVyOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgY29sb3I6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBmb250OiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgbWFyZ2luOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgcGFkZGluZzogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHBvc2l0aW9uOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgcm90YXRpb246IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICB0ZXh0OiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgdmlzaWJsZTogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHZpc3VhbDogW3sgdHlwZTogSW5wdXQgfV1cbiAgICB9O1xuICAgIHJldHVybiBYQXhpc1RpdGxlQ29tcG9uZW50R2VuZXJhdGVkO1xufShTZXR0aW5nc0NvbXBvbmVudCkpO1xuXG4vKipcbiAqIFRoZSB0aXRsZSBjb25maWd1cmF0aW9uIG9mIHRoZSBTY2F0dGVyIENoYXJ0IFggYXhpcy5cbiAqL1xudmFyIFhBeGlzVGl0bGVDb21wb25lbnQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKFhBeGlzVGl0bGVDb21wb25lbnQsIF9zdXBlcik7XG4gICAgLy8gUGxhY2UgY3VzdG9tIHByb3BlcnRpZXMgaGVyZVxuICAgIGZ1bmN0aW9uIFhBeGlzVGl0bGVDb21wb25lbnQoY29uZmlndXJhdGlvblNlcnZpY2UpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgY29uZmlndXJhdGlvblNlcnZpY2UpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlID0gY29uZmlndXJhdGlvblNlcnZpY2U7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgWEF4aXNUaXRsZUNvbXBvbmVudC5kZWNvcmF0b3JzID0gW1xuICAgICAgICB7IHR5cGU6IENvbXBvbmVudCwgYXJnczogW3tcbiAgICAgICAgICAgICAgICAgICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdG9yOiAna2VuZG8tY2hhcnQteC1heGlzLWl0ZW0tdGl0bGUnLFxuICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZTogJydcbiAgICAgICAgICAgICAgICB9LF0gfSxcbiAgICBdO1xuICAgIC8qKiBAbm9jb2xsYXBzZSAqL1xuICAgIFhBeGlzVGl0bGVDb21wb25lbnQuY3RvclBhcmFtZXRlcnMgPSBmdW5jdGlvbiAoKSB7IHJldHVybiBbXG4gICAgICAgIHsgdHlwZTogQ29uZmlndXJhdGlvblNlcnZpY2UgfVxuICAgIF07IH07XG4gICAgcmV0dXJuIFhBeGlzVGl0bGVDb21wb25lbnQ7XG59KFhBeGlzVGl0bGVDb21wb25lbnRHZW5lcmF0ZWQpKTtcblxuLyoqXG4gKiBAaGlkZGVuXG4gKi9cbnZhciBZQXhpc0l0ZW1Db21wb25lbnRHZW5lcmF0ZWQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKFlBeGlzSXRlbUNvbXBvbmVudEdlbmVyYXRlZCwgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBZQXhpc0l0ZW1Db21wb25lbnRHZW5lcmF0ZWQoY29uZmlndXJhdGlvblNlcnZpY2UsIGNvbGxlY3Rpb25TZXJ2aWNlKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsIGNvbmZpZ3VyYXRpb25TZXJ2aWNlLCBjb2xsZWN0aW9uU2VydmljZSkgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuY29uZmlndXJhdGlvblNlcnZpY2UgPSBjb25maWd1cmF0aW9uU2VydmljZTtcbiAgICAgICAgX3RoaXMuY29sbGVjdGlvblNlcnZpY2UgPSBjb2xsZWN0aW9uU2VydmljZTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBZQXhpc0l0ZW1Db21wb25lbnRHZW5lcmF0ZWQucHJvcERlY29yYXRvcnMgPSB7XG4gICAgICAgIGF4aXNDcm9zc2luZ1ZhbHVlOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgYmFja2dyb3VuZDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGJhc2VVbml0OiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgY29sb3I6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBsaW5lOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgbWFqb3JHcmlkTGluZXM6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBtYWpvclRpY2tzOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgbWFqb3JVbml0OiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgbWF4OiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgbWluOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgbWlub3JHcmlkTGluZXM6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBtaW5vclRpY2tzOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgbWlub3JVbml0OiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgbmFtZTogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIG5hcnJvd1JhbmdlOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgcGFuZTogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHBsb3RCYW5kczogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHJldmVyc2U6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICB0eXBlOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgdmlzaWJsZTogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGNyb3NzaGFpcjogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGxhYmVsczogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIG5vdGVzOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgdGl0bGU6IFt7IHR5cGU6IElucHV0IH1dXG4gICAgfTtcbiAgICByZXR1cm4gWUF4aXNJdGVtQ29tcG9uZW50R2VuZXJhdGVkO1xufShDb2xsZWN0aW9uSXRlbUNvbXBvbmVudCkpO1xuXG4vKipcbiAqIFRoZSBjb25maWd1cmF0aW9uIGNvbXBvbmVudCBmb3IgdGhlIFkgYXhpc1xuICogKFtzZWUgZXhhbXBsZV0oeyUgc2x1ZyBhcGlfY2hhcnRzX3lheGlzY29tcG9uZW50ICV9KSkuXG4gKi9cbnZhciBZQXhpc0l0ZW1Db21wb25lbnQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKFlBeGlzSXRlbUNvbXBvbmVudCwgX3N1cGVyKTtcbiAgICAvLyBQbGFjZSBjdXN0b20gcHJvcGVydGllcyBoZXJlXG4gICAgZnVuY3Rpb24gWUF4aXNJdGVtQ29tcG9uZW50KGNvbmZpZ3VyYXRpb25TZXJ2aWNlLCBjb2xsZWN0aW9uU2VydmljZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBjb25maWd1cmF0aW9uU2VydmljZSwgY29sbGVjdGlvblNlcnZpY2UpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlID0gY29uZmlndXJhdGlvblNlcnZpY2U7XG4gICAgICAgIF90aGlzLmNvbGxlY3Rpb25TZXJ2aWNlID0gY29sbGVjdGlvblNlcnZpY2U7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgWUF4aXNJdGVtQ29tcG9uZW50LmRlY29yYXRvcnMgPSBbXG4gICAgICAgIHsgdHlwZTogQ29tcG9uZW50LCBhcmdzOiBbe1xuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZXJzOiBbQ29uZmlndXJhdGlvblNlcnZpY2VdLFxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RvcjogJ2tlbmRvLWNoYXJ0LXktYXhpcy1pdGVtJyxcbiAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGU6ICcnXG4gICAgICAgICAgICAgICAgfSxdIH0sXG4gICAgXTtcbiAgICAvKiogQG5vY29sbGFwc2UgKi9cbiAgICBZQXhpc0l0ZW1Db21wb25lbnQuY3RvclBhcmFtZXRlcnMgPSBmdW5jdGlvbiAoKSB7IHJldHVybiBbXG4gICAgICAgIHsgdHlwZTogQ29uZmlndXJhdGlvblNlcnZpY2UgfSxcbiAgICAgICAgeyB0eXBlOiBDb2xsZWN0aW9uU2VydmljZSB9XG4gICAgXTsgfTtcbiAgICByZXR1cm4gWUF4aXNJdGVtQ29tcG9uZW50O1xufShZQXhpc0l0ZW1Db21wb25lbnRHZW5lcmF0ZWQpKTtcblxuLyoqXG4gKiBAaGlkZGVuXG4gKi9cbnZhciBZQXhpc0NvbXBvbmVudEdlbmVyYXRlZCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoWUF4aXNDb21wb25lbnRHZW5lcmF0ZWQsIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gWUF4aXNDb21wb25lbnRHZW5lcmF0ZWQoY29uZmlndXJhdGlvblNlcnZpY2UsIGNvbGxlY3Rpb25TZXJ2aWNlKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsICd5QXhpcycsIGNvbmZpZ3VyYXRpb25TZXJ2aWNlLCBjb2xsZWN0aW9uU2VydmljZSkgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuY29uZmlndXJhdGlvblNlcnZpY2UgPSBjb25maWd1cmF0aW9uU2VydmljZTtcbiAgICAgICAgX3RoaXMuY29sbGVjdGlvblNlcnZpY2UgPSBjb2xsZWN0aW9uU2VydmljZTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBZQXhpc0NvbXBvbmVudEdlbmVyYXRlZC5wcm9wRGVjb3JhdG9ycyA9IHtcbiAgICAgICAgY2hpbGRyZW46IFt7IHR5cGU6IENvbnRlbnRDaGlsZHJlbiwgYXJnczogW1lBeGlzSXRlbUNvbXBvbmVudCxdIH1dXG4gICAgfTtcbiAgICByZXR1cm4gWUF4aXNDb21wb25lbnRHZW5lcmF0ZWQ7XG59KENvbGxlY3Rpb25Db21wb25lbnQpKTtcblxuLyoqXG4gKiBBIGNvbGxlY3Rpb24gb2Ygb25lIG9yIG1vcmUgWS1heGlzIGNvbmZpZ3VyYXRpb24gY29tcG9uZW50cy5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIGltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuICpcbiAqIF9AQ29tcG9uZW50KHtcbiAqICBzZWxlY3RvcjogJ215LWFwcCcsXG4gKiAgdGVtcGxhdGU6IGBcbiAqICAgIDxrZW5kby1jaGFydD5cbiAqICAgICA8a2VuZG8tY2hhcnQteS1heGlzPlxuICogICAgICAgPGtlbmRvLWNoYXJ0LXktYXhpcy1pdGVtXG4gKiAgICAgICAgIFtiYWNrZ3JvdW5kXT1cIidyZ2JhKDEwMCwgMTAwLCAxMDAsIDAuMiknXCJcbiAqICAgICAgICAgW2NvbG9yXT1cIidyZWQnXCJcbiAqICAgICAgICAgW25vdGVzXT1cIm5vdGVzQ29uZmlnXCJcbiAqICAgICAgICAgW2Nyb3NzaGFpcl09XCJjcm9zc2hhaXJDb25maWdcIj5cbiAqICAgICAgIDwva2VuZG8tY2hhcnQteS1heGlzLWl0ZW0+XG4gKiAgICAgICA8a2VuZG8tY2hhcnQteS1heGlzLWl0ZW0gbmFtZT1cInNlY29uZEF4aXNcIj5cbiAqICAgICAgIDwva2VuZG8tY2hhcnQteS1heGlzLWl0ZW0+XG4gKiAgICAgPC9rZW5kby1jaGFydC15LWF4aXM+XG4gKiAgICAgPGtlbmRvLWNoYXJ0LXNlcmllcz5cbiAqICAgICAgIDxrZW5kby1jaGFydC1zZXJpZXMtaXRlbSB0eXBlPVwic2NhdHRlclwiIFtkYXRhXT1cIltbMSwgMl1dXCI+XG4gKiAgICAgICA8L2tlbmRvLWNoYXJ0LXNlcmllcy1pdGVtPlxuICogICAgICAgPGtlbmRvLWNoYXJ0LXNlcmllcy1pdGVtIHR5cGU9XCJzY2F0dGVyXCIgW2RhdGFdPVwiW1swLjEsIDAuMl1dXCJcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5QXhpcz1cInNlY29uZEF4aXNcIj5cbiAqICAgICAgIDwva2VuZG8tY2hhcnQtc2VyaWVzLWl0ZW0+XG4gKiAgICAgPC9rZW5kby1jaGFydC1zZXJpZXM+XG4gKiAgIDwva2VuZG8tY2hhcnQ+XG4gKiBgXG4gKiB9KVxuICogZXhwb3J0IGNsYXNzIEFwcENvbXBvbmVudCB7XG4gKiBwdWJsaWMgbm90ZXNDb25maWcgPSB7XG4gKiAgIGRhdGE6IFt7XG4gKiAgICAgICB2YWx1ZTogMC4yLFxuICogICAgICAgdGV4dDogXCJmb29cIlxuICogICAgIH0sIHtcbiAqICAgICAgIHZhbHVlOiAwLjgsXG4gKiAgICAgICB0ZXh0OiBcImJhclwiXG4gKiAgICAgfV0sXG4gKiAgICBsYWJlbDoge1xuICogICAgIGNvbnRlbnQ6IChhcmdzOiBhbnkpID0+IGFyZ3MuZGF0YUl0ZW0udGV4dCxcbiAqICAgICBiYWNrZ3JvdW5kOiAncmVkJyxcbiAqICAgICBjb2xvcjogJ3doaXRlJ1xuICogICB9LFxuICogICBsaW5lOiB7XG4gKiAgICAgY29sb3I6ICdibHVlJyxcbiAqICAgICBkYXNoVHlwZTogJ2Rhc2gnLFxuICogICAgIGxlbmd0aDogMTUwLFxuICogICAgIHdpZHRoOiAyXG4gKiAgIH0sXG4gKiAgIHBvc2l0aW9uOiAndG9wJ1xuICogfTtcbiAqXG4gKiBwdWJsaWMgY3Jvc3NoYWlyQ29uZmlnID0ge1xuICogICBjb2xvcjogJ2dyZWVuJyxcbiAqICAgb3BhY2l0eTogMC44LFxuICogICB2aXNpYmxlOiB0cnVlLFxuICogICB3aWR0aDogM1xuICogfTtcbiAqIH1cbiAqXG4gKiBgYGBcbiAqL1xudmFyIFlBeGlzQ29tcG9uZW50ID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhZQXhpc0NvbXBvbmVudCwgX3N1cGVyKTtcbiAgICAvLyBQbGFjZSBjdXN0b20gcHJvcGVydGllcyBoZXJlXG4gICAgZnVuY3Rpb24gWUF4aXNDb21wb25lbnQoY29uZmlndXJhdGlvblNlcnZpY2UsIGNvbGxlY3Rpb25TZXJ2aWNlKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsIGNvbmZpZ3VyYXRpb25TZXJ2aWNlLCBjb2xsZWN0aW9uU2VydmljZSkgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuY29uZmlndXJhdGlvblNlcnZpY2UgPSBjb25maWd1cmF0aW9uU2VydmljZTtcbiAgICAgICAgX3RoaXMuY29sbGVjdGlvblNlcnZpY2UgPSBjb2xsZWN0aW9uU2VydmljZTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBZQXhpc0NvbXBvbmVudC5kZWNvcmF0b3JzID0gW1xuICAgICAgICB7IHR5cGU6IENvbXBvbmVudCwgYXJnczogW3tcbiAgICAgICAgICAgICAgICAgICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGVyczogW0NvbGxlY3Rpb25TZXJ2aWNlXSxcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0b3I6ICdrZW5kby1jaGFydC15LWF4aXMnLFxuICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZTogJydcbiAgICAgICAgICAgICAgICB9LF0gfSxcbiAgICBdO1xuICAgIC8qKiBAbm9jb2xsYXBzZSAqL1xuICAgIFlBeGlzQ29tcG9uZW50LmN0b3JQYXJhbWV0ZXJzID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gW1xuICAgICAgICB7IHR5cGU6IENvbmZpZ3VyYXRpb25TZXJ2aWNlIH0sXG4gICAgICAgIHsgdHlwZTogQ29sbGVjdGlvblNlcnZpY2UgfVxuICAgIF07IH07XG4gICAgcmV0dXJuIFlBeGlzQ29tcG9uZW50O1xufShZQXhpc0NvbXBvbmVudEdlbmVyYXRlZCkpO1xuXG4vKipcbiAqIEBoaWRkZW5cbiAqL1xudmFyIFlBeGlzQ3Jvc3NoYWlyQ29tcG9uZW50R2VuZXJhdGVkID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhZQXhpc0Nyb3NzaGFpckNvbXBvbmVudEdlbmVyYXRlZCwgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBZQXhpc0Nyb3NzaGFpckNvbXBvbmVudEdlbmVyYXRlZChjb25maWd1cmF0aW9uU2VydmljZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCAnY3Jvc3NoYWlyJywgY29uZmlndXJhdGlvblNlcnZpY2UpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlID0gY29uZmlndXJhdGlvblNlcnZpY2U7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgWUF4aXNDcm9zc2hhaXJDb21wb25lbnRHZW5lcmF0ZWQucHJvcERlY29yYXRvcnMgPSB7XG4gICAgICAgIGNvbG9yOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgb3BhY2l0eTogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHZpc2libGU6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICB3aWR0aDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHRvb2x0aXA6IFt7IHR5cGU6IElucHV0IH1dXG4gICAgfTtcbiAgICByZXR1cm4gWUF4aXNDcm9zc2hhaXJDb21wb25lbnRHZW5lcmF0ZWQ7XG59KFNldHRpbmdzQ29tcG9uZW50KSk7XG5cbi8qKlxuICogVGhlIGNyb3NzaGFpciBjb25maWd1cmF0aW9uIG9wdGlvbnNcbiAqIChbc2VlIGV4YW1wbGVdKHslIHNsdWcgYXBpX2NoYXJ0c195YXhpc2NvbXBvbmVudCAlfSkpLlxuICovXG52YXIgWUF4aXNDcm9zc2hhaXJDb21wb25lbnQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKFlBeGlzQ3Jvc3NoYWlyQ29tcG9uZW50LCBfc3VwZXIpO1xuICAgIC8vIFBsYWNlIGN1c3RvbSBwcm9wZXJ0aWVzIGhlcmVcbiAgICBmdW5jdGlvbiBZQXhpc0Nyb3NzaGFpckNvbXBvbmVudChjb25maWd1cmF0aW9uU2VydmljZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBjb25maWd1cmF0aW9uU2VydmljZSkgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuY29uZmlndXJhdGlvblNlcnZpY2UgPSBjb25maWd1cmF0aW9uU2VydmljZTtcbiAgICAgICAgX3RoaXMubWFya0FzVmlzaWJsZSgpO1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIFlBeGlzQ3Jvc3NoYWlyQ29tcG9uZW50LmRlY29yYXRvcnMgPSBbXG4gICAgICAgIHsgdHlwZTogQ29tcG9uZW50LCBhcmdzOiBbe1xuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0b3I6ICdrZW5kby1jaGFydC15LWF4aXMtaXRlbS1jcm9zc2hhaXInLFxuICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZTogJydcbiAgICAgICAgICAgICAgICB9LF0gfSxcbiAgICBdO1xuICAgIC8qKiBAbm9jb2xsYXBzZSAqL1xuICAgIFlBeGlzQ3Jvc3NoYWlyQ29tcG9uZW50LmN0b3JQYXJhbWV0ZXJzID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gW1xuICAgICAgICB7IHR5cGU6IENvbmZpZ3VyYXRpb25TZXJ2aWNlIH1cbiAgICBdOyB9O1xuICAgIHJldHVybiBZQXhpc0Nyb3NzaGFpckNvbXBvbmVudDtcbn0oWUF4aXNDcm9zc2hhaXJDb21wb25lbnRHZW5lcmF0ZWQpKTtcblxuLyoqXG4gKiBAaGlkZGVuXG4gKi9cbnZhciBZQXhpc0Nyb3NzaGFpclRvb2x0aXBDb21wb25lbnRHZW5lcmF0ZWQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKFlBeGlzQ3Jvc3NoYWlyVG9vbHRpcENvbXBvbmVudEdlbmVyYXRlZCwgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBZQXhpc0Nyb3NzaGFpclRvb2x0aXBDb21wb25lbnRHZW5lcmF0ZWQoY29uZmlndXJhdGlvblNlcnZpY2UpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgJ2Nyb3NzaGFpci50b29sdGlwJywgY29uZmlndXJhdGlvblNlcnZpY2UpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlID0gY29uZmlndXJhdGlvblNlcnZpY2U7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgWUF4aXNDcm9zc2hhaXJUb29sdGlwQ29tcG9uZW50R2VuZXJhdGVkLnByb3BEZWNvcmF0b3JzID0ge1xuICAgICAgICBiYWNrZ3JvdW5kOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgYm9yZGVyOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgY29sb3I6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBmb250OiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgZm9ybWF0OiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgcGFkZGluZzogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHZpc2libGU6IFt7IHR5cGU6IElucHV0IH1dXG4gICAgfTtcbiAgICByZXR1cm4gWUF4aXNDcm9zc2hhaXJUb29sdGlwQ29tcG9uZW50R2VuZXJhdGVkO1xufShTZXR0aW5nc0NvbXBvbmVudCkpO1xuXG4vKipcbiAqIFRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgb2YgdGhlIGNyb3NzaGFpciB0b29sdGlwLlxuICogVGhlIGNyb3NzaGFpciB0b29sdGlwIGlzIGRpc3BsYXllZCB3aGVuIHRoZSBgdmlzaWJsZWAgb3B0aW9uIGlzIHNldCB0byBgdHJ1ZWAuXG4gKi9cbnZhciBZQXhpc0Nyb3NzaGFpclRvb2x0aXBDb21wb25lbnQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKFlBeGlzQ3Jvc3NoYWlyVG9vbHRpcENvbXBvbmVudCwgX3N1cGVyKTtcbiAgICAvLyBQbGFjZSBjdXN0b20gcHJvcGVydGllcyBoZXJlLlxuICAgIGZ1bmN0aW9uIFlBeGlzQ3Jvc3NoYWlyVG9vbHRpcENvbXBvbmVudChjb25maWd1cmF0aW9uU2VydmljZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBjb25maWd1cmF0aW9uU2VydmljZSkgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuY29uZmlndXJhdGlvblNlcnZpY2UgPSBjb25maWd1cmF0aW9uU2VydmljZTtcbiAgICAgICAgX3RoaXMubWFya0FzVmlzaWJsZSgpO1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIFlBeGlzQ3Jvc3NoYWlyVG9vbHRpcENvbXBvbmVudC5kZWNvcmF0b3JzID0gW1xuICAgICAgICB7IHR5cGU6IENvbXBvbmVudCwgYXJnczogW3tcbiAgICAgICAgICAgICAgICAgICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdG9yOiAna2VuZG8tY2hhcnQteS1heGlzLWl0ZW0tY3Jvc3NoYWlyLXRvb2x0aXAnLFxuICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZTogJydcbiAgICAgICAgICAgICAgICB9LF0gfSxcbiAgICBdO1xuICAgIC8qKiBAbm9jb2xsYXBzZSAqL1xuICAgIFlBeGlzQ3Jvc3NoYWlyVG9vbHRpcENvbXBvbmVudC5jdG9yUGFyYW1ldGVycyA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIFtcbiAgICAgICAgeyB0eXBlOiBDb25maWd1cmF0aW9uU2VydmljZSB9XG4gICAgXTsgfTtcbiAgICByZXR1cm4gWUF4aXNDcm9zc2hhaXJUb29sdGlwQ29tcG9uZW50O1xufShZQXhpc0Nyb3NzaGFpclRvb2x0aXBDb21wb25lbnRHZW5lcmF0ZWQpKTtcblxuLyoqXG4gKiBAaGlkZGVuXG4gKi9cbnZhciBZQXhpc0xhYmVsc0NvbXBvbmVudEdlbmVyYXRlZCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoWUF4aXNMYWJlbHNDb21wb25lbnRHZW5lcmF0ZWQsIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gWUF4aXNMYWJlbHNDb21wb25lbnRHZW5lcmF0ZWQoY29uZmlndXJhdGlvblNlcnZpY2UpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgJ2xhYmVscycsIGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5jb25maWd1cmF0aW9uU2VydmljZSA9IGNvbmZpZ3VyYXRpb25TZXJ2aWNlO1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIFlBeGlzTGFiZWxzQ29tcG9uZW50R2VuZXJhdGVkLnByb3BEZWNvcmF0b3JzID0ge1xuICAgICAgICBiYWNrZ3JvdW5kOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgYm9yZGVyOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgY29sb3I6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBjb250ZW50OiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgY3VsdHVyZTogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGRhdGVGb3JtYXRzOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgZm9udDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGZvcm1hdDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIG1hcmdpbjogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIG1pcnJvcjogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHBhZGRpbmc6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBwb3NpdGlvbjogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHJvdGF0aW9uOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgc2tpcDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHN0ZXA6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICB2aXNpYmxlOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgdmlzdWFsOiBbeyB0eXBlOiBJbnB1dCB9XVxuICAgIH07XG4gICAgcmV0dXJuIFlBeGlzTGFiZWxzQ29tcG9uZW50R2VuZXJhdGVkO1xufShTZXR0aW5nc0NvbXBvbmVudCkpO1xuXG4vKipcbiAqIFRoZSBheGlzIGxhYmVscyBjb25maWd1cmF0aW9uLlxuICovXG52YXIgWUF4aXNMYWJlbHNDb21wb25lbnQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKFlBeGlzTGFiZWxzQ29tcG9uZW50LCBfc3VwZXIpO1xuICAgIC8vIFBsYWNlIGN1c3RvbSBwcm9wZXJ0aWVzIGhlcmVcbiAgICBmdW5jdGlvbiBZQXhpc0xhYmVsc0NvbXBvbmVudChjb25maWd1cmF0aW9uU2VydmljZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBjb25maWd1cmF0aW9uU2VydmljZSkgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuY29uZmlndXJhdGlvblNlcnZpY2UgPSBjb25maWd1cmF0aW9uU2VydmljZTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBZQXhpc0xhYmVsc0NvbXBvbmVudC5kZWNvcmF0b3JzID0gW1xuICAgICAgICB7IHR5cGU6IENvbXBvbmVudCwgYXJnczogW3tcbiAgICAgICAgICAgICAgICAgICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdG9yOiAna2VuZG8tY2hhcnQteS1heGlzLWl0ZW0tbGFiZWxzJyxcbiAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGU6ICcnXG4gICAgICAgICAgICAgICAgfSxdIH0sXG4gICAgXTtcbiAgICAvKiogQG5vY29sbGFwc2UgKi9cbiAgICBZQXhpc0xhYmVsc0NvbXBvbmVudC5jdG9yUGFyYW1ldGVycyA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIFtcbiAgICAgICAgeyB0eXBlOiBDb25maWd1cmF0aW9uU2VydmljZSB9XG4gICAgXTsgfTtcbiAgICByZXR1cm4gWUF4aXNMYWJlbHNDb21wb25lbnQ7XG59KFlBeGlzTGFiZWxzQ29tcG9uZW50R2VuZXJhdGVkKSk7XG5cbi8qKlxuICogQGhpZGRlblxuICovXG52YXIgWUF4aXNOb3Rlc0NvbXBvbmVudEdlbmVyYXRlZCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoWUF4aXNOb3Rlc0NvbXBvbmVudEdlbmVyYXRlZCwgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBZQXhpc05vdGVzQ29tcG9uZW50R2VuZXJhdGVkKGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsICdub3RlcycsIGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5jb25maWd1cmF0aW9uU2VydmljZSA9IGNvbmZpZ3VyYXRpb25TZXJ2aWNlO1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIFlBeGlzTm90ZXNDb21wb25lbnRHZW5lcmF0ZWQucHJvcERlY29yYXRvcnMgPSB7XG4gICAgICAgIGRhdGE6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBsaW5lOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgcG9zaXRpb246IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICB2aXN1YWw6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBpY29uOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgbGFiZWw6IFt7IHR5cGU6IElucHV0IH1dXG4gICAgfTtcbiAgICByZXR1cm4gWUF4aXNOb3Rlc0NvbXBvbmVudEdlbmVyYXRlZDtcbn0oU2V0dGluZ3NDb21wb25lbnQpKTtcblxuLyoqXG4gKiBUaGUgY29uZmlndXJhdGlvbiBvZiB0aGUgWSBheGlzIG5vdGVzXG4gKiAoW3NlZSBleGFtcGxlXSh7JSBzbHVnIGFwaV9jaGFydHNfeWF4aXNjb21wb25lbnQgJX0pKS5cbiAqL1xudmFyIFlBeGlzTm90ZXNDb21wb25lbnQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKFlBeGlzTm90ZXNDb21wb25lbnQsIF9zdXBlcik7XG4gICAgLy8gUGxhY2UgY3VzdG9tIHByb3BlcnRpZXMgaGVyZVxuICAgIGZ1bmN0aW9uIFlBeGlzTm90ZXNDb21wb25lbnQoY29uZmlndXJhdGlvblNlcnZpY2UpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgY29uZmlndXJhdGlvblNlcnZpY2UpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlID0gY29uZmlndXJhdGlvblNlcnZpY2U7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgWUF4aXNOb3Rlc0NvbXBvbmVudC5kZWNvcmF0b3JzID0gW1xuICAgICAgICB7IHR5cGU6IENvbXBvbmVudCwgYXJnczogW3tcbiAgICAgICAgICAgICAgICAgICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdG9yOiAna2VuZG8tY2hhcnQteS1heGlzLWl0ZW0tbm90ZXMnLFxuICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZTogJydcbiAgICAgICAgICAgICAgICB9LF0gfSxcbiAgICBdO1xuICAgIC8qKiBAbm9jb2xsYXBzZSAqL1xuICAgIFlBeGlzTm90ZXNDb21wb25lbnQuY3RvclBhcmFtZXRlcnMgPSBmdW5jdGlvbiAoKSB7IHJldHVybiBbXG4gICAgICAgIHsgdHlwZTogQ29uZmlndXJhdGlvblNlcnZpY2UgfVxuICAgIF07IH07XG4gICAgcmV0dXJuIFlBeGlzTm90ZXNDb21wb25lbnQ7XG59KFlBeGlzTm90ZXNDb21wb25lbnRHZW5lcmF0ZWQpKTtcblxuLyoqXG4gKiBAaGlkZGVuXG4gKi9cbnZhciBZQXhpc05vdGVzSWNvbkNvbXBvbmVudEdlbmVyYXRlZCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoWUF4aXNOb3Rlc0ljb25Db21wb25lbnRHZW5lcmF0ZWQsIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gWUF4aXNOb3Rlc0ljb25Db21wb25lbnRHZW5lcmF0ZWQoY29uZmlndXJhdGlvblNlcnZpY2UpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgJ25vdGVzLmljb24nLCBjb25maWd1cmF0aW9uU2VydmljZSkgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuY29uZmlndXJhdGlvblNlcnZpY2UgPSBjb25maWd1cmF0aW9uU2VydmljZTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBZQXhpc05vdGVzSWNvbkNvbXBvbmVudEdlbmVyYXRlZC5wcm9wRGVjb3JhdG9ycyA9IHtcbiAgICAgICAgYmFja2dyb3VuZDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGJvcmRlcjogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHNpemU6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICB0eXBlOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgdmlzaWJsZTogW3sgdHlwZTogSW5wdXQgfV1cbiAgICB9O1xuICAgIHJldHVybiBZQXhpc05vdGVzSWNvbkNvbXBvbmVudEdlbmVyYXRlZDtcbn0oU2V0dGluZ3NDb21wb25lbnQpKTtcblxuLyoqXG4gKiBUaGUgaWNvbiBvZiB0aGUgbm90ZXMuXG4gKi9cbnZhciBZQXhpc05vdGVzSWNvbkNvbXBvbmVudCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoWUF4aXNOb3Rlc0ljb25Db21wb25lbnQsIF9zdXBlcik7XG4gICAgLy8gUGxhY2UgY3VzdG9tIHByb3BlcnRpZXMgaGVyZVxuICAgIGZ1bmN0aW9uIFlBeGlzTm90ZXNJY29uQ29tcG9uZW50KGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsIGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5jb25maWd1cmF0aW9uU2VydmljZSA9IGNvbmZpZ3VyYXRpb25TZXJ2aWNlO1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIFlBeGlzTm90ZXNJY29uQ29tcG9uZW50LmRlY29yYXRvcnMgPSBbXG4gICAgICAgIHsgdHlwZTogQ29tcG9uZW50LCBhcmdzOiBbe1xuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0b3I6ICdrZW5kby1jaGFydC15LWF4aXMtaXRlbS1ub3Rlcy1pY29uJyxcbiAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGU6ICcnXG4gICAgICAgICAgICAgICAgfSxdIH0sXG4gICAgXTtcbiAgICAvKiogQG5vY29sbGFwc2UgKi9cbiAgICBZQXhpc05vdGVzSWNvbkNvbXBvbmVudC5jdG9yUGFyYW1ldGVycyA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIFtcbiAgICAgICAgeyB0eXBlOiBDb25maWd1cmF0aW9uU2VydmljZSB9XG4gICAgXTsgfTtcbiAgICByZXR1cm4gWUF4aXNOb3Rlc0ljb25Db21wb25lbnQ7XG59KFlBeGlzTm90ZXNJY29uQ29tcG9uZW50R2VuZXJhdGVkKSk7XG5cbi8qKlxuICogQGhpZGRlblxuICovXG52YXIgWUF4aXNOb3Rlc0xhYmVsQ29tcG9uZW50R2VuZXJhdGVkID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhZQXhpc05vdGVzTGFiZWxDb21wb25lbnRHZW5lcmF0ZWQsIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gWUF4aXNOb3Rlc0xhYmVsQ29tcG9uZW50R2VuZXJhdGVkKGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsICdub3Rlcy5sYWJlbCcsIGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5jb25maWd1cmF0aW9uU2VydmljZSA9IGNvbmZpZ3VyYXRpb25TZXJ2aWNlO1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIFlBeGlzTm90ZXNMYWJlbENvbXBvbmVudEdlbmVyYXRlZC5wcm9wRGVjb3JhdG9ycyA9IHtcbiAgICAgICAgYmFja2dyb3VuZDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGJvcmRlcjogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGNvbG9yOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgY29udGVudDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGZvbnQ6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBmb3JtYXQ6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBwb3NpdGlvbjogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHJvdGF0aW9uOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgdmlzaWJsZTogW3sgdHlwZTogSW5wdXQgfV1cbiAgICB9O1xuICAgIHJldHVybiBZQXhpc05vdGVzTGFiZWxDb21wb25lbnRHZW5lcmF0ZWQ7XG59KFNldHRpbmdzQ29tcG9uZW50KSk7XG5cbi8qKlxuICogVGhlIGxhYmVsIG9mIHRoZSBub3Rlcy5cbiAqL1xudmFyIFlBeGlzTm90ZXNMYWJlbENvbXBvbmVudCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoWUF4aXNOb3Rlc0xhYmVsQ29tcG9uZW50LCBfc3VwZXIpO1xuICAgIC8vIFBsYWNlIGN1c3RvbSBwcm9wZXJ0aWVzIGhlcmVcbiAgICBmdW5jdGlvbiBZQXhpc05vdGVzTGFiZWxDb21wb25lbnQoY29uZmlndXJhdGlvblNlcnZpY2UpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgY29uZmlndXJhdGlvblNlcnZpY2UpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlID0gY29uZmlndXJhdGlvblNlcnZpY2U7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgWUF4aXNOb3Rlc0xhYmVsQ29tcG9uZW50LmRlY29yYXRvcnMgPSBbXG4gICAgICAgIHsgdHlwZTogQ29tcG9uZW50LCBhcmdzOiBbe1xuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0b3I6ICdrZW5kby1jaGFydC15LWF4aXMtaXRlbS1ub3Rlcy1sYWJlbCcsXG4gICAgICAgICAgICAgICAgICAgIHRlbXBsYXRlOiAnJ1xuICAgICAgICAgICAgICAgIH0sXSB9LFxuICAgIF07XG4gICAgLyoqIEBub2NvbGxhcHNlICovXG4gICAgWUF4aXNOb3Rlc0xhYmVsQ29tcG9uZW50LmN0b3JQYXJhbWV0ZXJzID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gW1xuICAgICAgICB7IHR5cGU6IENvbmZpZ3VyYXRpb25TZXJ2aWNlIH1cbiAgICBdOyB9O1xuICAgIHJldHVybiBZQXhpc05vdGVzTGFiZWxDb21wb25lbnQ7XG59KFlBeGlzTm90ZXNMYWJlbENvbXBvbmVudEdlbmVyYXRlZCkpO1xuXG4vKipcbiAqIEBoaWRkZW5cbiAqL1xudmFyIFlBeGlzVGl0bGVDb21wb25lbnRHZW5lcmF0ZWQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKFlBeGlzVGl0bGVDb21wb25lbnRHZW5lcmF0ZWQsIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gWUF4aXNUaXRsZUNvbXBvbmVudEdlbmVyYXRlZChjb25maWd1cmF0aW9uU2VydmljZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCAndGl0bGUnLCBjb25maWd1cmF0aW9uU2VydmljZSkgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuY29uZmlndXJhdGlvblNlcnZpY2UgPSBjb25maWd1cmF0aW9uU2VydmljZTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBZQXhpc1RpdGxlQ29tcG9uZW50R2VuZXJhdGVkLnByb3BEZWNvcmF0b3JzID0ge1xuICAgICAgICBiYWNrZ3JvdW5kOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgYm9yZGVyOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgY29sb3I6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBmb250OiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgbWFyZ2luOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgcGFkZGluZzogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHBvc2l0aW9uOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgcm90YXRpb246IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICB0ZXh0OiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgdmlzaWJsZTogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHZpc3VhbDogW3sgdHlwZTogSW5wdXQgfV1cbiAgICB9O1xuICAgIHJldHVybiBZQXhpc1RpdGxlQ29tcG9uZW50R2VuZXJhdGVkO1xufShTZXR0aW5nc0NvbXBvbmVudCkpO1xuXG4vKipcbiAqIFRoZSB0aXRsZSBjb25maWd1cmF0aW9uIG9mIHRoZSBTY2F0dGVyIENoYXJ0IFkgYXhpcy5cbiAqL1xudmFyIFlBeGlzVGl0bGVDb21wb25lbnQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKFlBeGlzVGl0bGVDb21wb25lbnQsIF9zdXBlcik7XG4gICAgLy8gUGxhY2UgY3VzdG9tIHByb3BlcnRpZXMgaGVyZVxuICAgIGZ1bmN0aW9uIFlBeGlzVGl0bGVDb21wb25lbnQoY29uZmlndXJhdGlvblNlcnZpY2UpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgY29uZmlndXJhdGlvblNlcnZpY2UpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlID0gY29uZmlndXJhdGlvblNlcnZpY2U7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgWUF4aXNUaXRsZUNvbXBvbmVudC5kZWNvcmF0b3JzID0gW1xuICAgICAgICB7IHR5cGU6IENvbXBvbmVudCwgYXJnczogW3tcbiAgICAgICAgICAgICAgICAgICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdG9yOiAna2VuZG8tY2hhcnQteS1heGlzLWl0ZW0tdGl0bGUnLFxuICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZTogJydcbiAgICAgICAgICAgICAgICB9LF0gfSxcbiAgICBdO1xuICAgIC8qKiBAbm9jb2xsYXBzZSAqL1xuICAgIFlBeGlzVGl0bGVDb21wb25lbnQuY3RvclBhcmFtZXRlcnMgPSBmdW5jdGlvbiAoKSB7IHJldHVybiBbXG4gICAgICAgIHsgdHlwZTogQ29uZmlndXJhdGlvblNlcnZpY2UgfVxuICAgIF07IH07XG4gICAgcmV0dXJuIFlBeGlzVGl0bGVDb21wb25lbnQ7XG59KFlBeGlzVGl0bGVDb21wb25lbnRHZW5lcmF0ZWQpKTtcblxuLyoqXG4gKiBAaGlkZGVuXG4gKi9cbnZhciBab29tYWJsZUNvbXBvbmVudEdlbmVyYXRlZCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoWm9vbWFibGVDb21wb25lbnRHZW5lcmF0ZWQsIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gWm9vbWFibGVDb21wb25lbnRHZW5lcmF0ZWQoY29uZmlndXJhdGlvblNlcnZpY2UpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgJ3pvb21hYmxlJywgY29uZmlndXJhdGlvblNlcnZpY2UpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlID0gY29uZmlndXJhdGlvblNlcnZpY2U7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgWm9vbWFibGVDb21wb25lbnRHZW5lcmF0ZWQucHJvcERlY29yYXRvcnMgPSB7XG4gICAgICAgIG1vdXNld2hlZWw6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBzZWxlY3Rpb246IFt7IHR5cGU6IElucHV0IH1dXG4gICAgfTtcbiAgICByZXR1cm4gWm9vbWFibGVDb21wb25lbnRHZW5lcmF0ZWQ7XG59KFNldHRpbmdzQ29tcG9uZW50KSk7XG5cbi8qKlxuICogU3BlY2lmaWVzIGlmIHRoZSBDaGFydCBjYW4gYmUgem9vbWVkLlxuICpcbiAqIEBleGFtcGxlXG4gKlxuICogYGBgaHRtbC1uby1ydW5cbiAqIDxrZW5kby1jaGFydD5cbiAqICAgPGtlbmRvLWNoYXJ0LXpvb21hYmxlIFttb3VzZXdoZWVsXT1cImZhbHNlXCI+PC9rZW5kby1jaGFydC16b29tYWJsZT5cbiAqIDwva2VuZG8tY2hhcnQ+XG4gKiBgYGBcbiAqL1xudmFyIFpvb21hYmxlQ29tcG9uZW50ID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhab29tYWJsZUNvbXBvbmVudCwgX3N1cGVyKTtcbiAgICAvLyBQbGFjZSBjdXN0b20gcHJvcGVydGllcyBoZXJlXG4gICAgZnVuY3Rpb24gWm9vbWFibGVDb21wb25lbnQoY29uZmlndXJhdGlvblNlcnZpY2UpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgY29uZmlndXJhdGlvblNlcnZpY2UpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlID0gY29uZmlndXJhdGlvblNlcnZpY2U7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgWm9vbWFibGVDb21wb25lbnQuZGVjb3JhdG9ycyA9IFtcbiAgICAgICAgeyB0eXBlOiBDb21wb25lbnQsIGFyZ3M6IFt7XG4gICAgICAgICAgICAgICAgICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RvcjogJ2tlbmRvLWNoYXJ0LXpvb21hYmxlJyxcbiAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGU6ICcnXG4gICAgICAgICAgICAgICAgfSxdIH0sXG4gICAgXTtcbiAgICAvKiogQG5vY29sbGFwc2UgKi9cbiAgICBab29tYWJsZUNvbXBvbmVudC5jdG9yUGFyYW1ldGVycyA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIFtcbiAgICAgICAgeyB0eXBlOiBDb25maWd1cmF0aW9uU2VydmljZSB9XG4gICAgXTsgfTtcbiAgICByZXR1cm4gWm9vbWFibGVDb21wb25lbnQ7XG59KFpvb21hYmxlQ29tcG9uZW50R2VuZXJhdGVkKSk7XG5cbi8qKlxuICogQGhpZGRlblxuICovXG52YXIgQ0hBUlRfRElSRUNUSVZFUyA9IFtcbiAgICBDaGFydENvbXBvbmVudCxcbiAgICBUb29sdGlwUG9wdXBDb21wb25lbnQsXG4gICAgU2VyaWVzVG9vbHRpcFRlbXBsYXRlRGlyZWN0aXZlLFxuICAgIFNoYXJlZFRvb2x0aXBUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgICBDcm9zc2hhaXJUb29sdGlwc0NvbnRhaW5lckNvbXBvbmVudCxcbiAgICBDcm9zc2hhaXJUb29sdGlwQ29tcG9uZW50LFxuICAgIERvbnV0Q2VudGVyVGVtcGxhdGVEaXJlY3RpdmUsXG4gICAgQXhpc0RlZmF1bHRzQ29tcG9uZW50LFxuICAgIEF4aXNEZWZhdWx0c0Nyb3NzaGFpckNvbXBvbmVudCxcbiAgICBBeGlzRGVmYXVsdHNDcm9zc2hhaXJUb29sdGlwQ29tcG9uZW50LFxuICAgIEF4aXNEZWZhdWx0c0xhYmVsc0NvbXBvbmVudCxcbiAgICBBeGlzRGVmYXVsdHNUaXRsZUNvbXBvbmVudCxcbiAgICBDYXRlZ29yeUF4aXNDb21wb25lbnQsXG4gICAgQ2F0ZWdvcnlBeGlzQ3Jvc3NoYWlyQ29tcG9uZW50LFxuICAgIENhdGVnb3J5QXhpc0Nyb3NzaGFpclRvb2x0aXBDb21wb25lbnQsXG4gICAgQ2F0ZWdvcnlBeGlzSXRlbUNvbXBvbmVudCxcbiAgICBDYXRlZ29yeUF4aXNMYWJlbHNDb21wb25lbnQsXG4gICAgQ2F0ZWdvcnlBeGlzTm90ZXNDb21wb25lbnQsXG4gICAgQ2F0ZWdvcnlBeGlzTm90ZXNJY29uQ29tcG9uZW50LFxuICAgIENhdGVnb3J5QXhpc05vdGVzTGFiZWxDb21wb25lbnQsXG4gICAgQ2F0ZWdvcnlBeGlzU2VsZWN0Q29tcG9uZW50LFxuICAgIENhdGVnb3J5QXhpc1RpdGxlQ29tcG9uZW50LFxuICAgIENoYXJ0QXJlYUNvbXBvbmVudCxcbiAgICBMZWdlbmRDb21wb25lbnQsXG4gICAgTGVnZW5kSW5hY3RpdmVJdGVtc0NvbXBvbmVudCxcbiAgICBMZWdlbmRJdGVtQ29tcG9uZW50LFxuICAgIFBhbmVDb21wb25lbnQsXG4gICAgUGFuZXNDb21wb25lbnQsXG4gICAgUGFuZXNUaXRsZUNvbXBvbmVudCxcbiAgICBQbG90QXJlYUNvbXBvbmVudCxcbiAgICBTZXJpZXNDb21wb25lbnQsXG4gICAgU2VyaWVzRGVmYXVsdHNDb21wb25lbnQsXG4gICAgU2VyaWVzRGVmYXVsdHNMYWJlbHNDb21wb25lbnQsXG4gICAgU2VyaWVzRGVmYXVsdHNMYWJlbHNGcm9tQ29tcG9uZW50LFxuICAgIFNlcmllc0RlZmF1bHRzTGFiZWxzVG9Db21wb25lbnQsXG4gICAgU2VyaWVzRGVmYXVsdHNOb3Rlc0NvbXBvbmVudCxcbiAgICBTZXJpZXNEZWZhdWx0c05vdGVzSWNvbkNvbXBvbmVudCxcbiAgICBTZXJpZXNEZWZhdWx0c05vdGVzTGFiZWxDb21wb25lbnQsXG4gICAgU2VyaWVzRGVmYXVsdHNUb29sdGlwQ29tcG9uZW50LFxuICAgIFNlcmllc0Vycm9yQmFyc0NvbXBvbmVudCxcbiAgICBTZXJpZXNFeHRyZW1lc0NvbXBvbmVudCxcbiAgICBTZXJpZXNIaWdobGlnaHRDb21wb25lbnQsXG4gICAgU2VyaWVzSXRlbUNvbXBvbmVudCxcbiAgICBTZXJpZXNMYWJlbHNDb21wb25lbnQsXG4gICAgU2VyaWVzTGFiZWxzRnJvbUNvbXBvbmVudCxcbiAgICBTZXJpZXNMYWJlbHNUb0NvbXBvbmVudCxcbiAgICBTZXJpZXNNYXJrZXJzQ29tcG9uZW50LFxuICAgIFNlcmllc05vdGVzQ29tcG9uZW50LFxuICAgIFNlcmllc05vdGVzSWNvbkNvbXBvbmVudCxcbiAgICBTZXJpZXNOb3Rlc0xhYmVsQ29tcG9uZW50LFxuICAgIFNlcmllc091dGxpZXJzQ29tcG9uZW50LFxuICAgIFNlcmllc1Rvb2x0aXBDb21wb25lbnQsXG4gICAgVGl0bGVDb21wb25lbnQsXG4gICAgVG9vbHRpcENvbXBvbmVudCxcbiAgICBWYWx1ZUF4aXNDb21wb25lbnQsXG4gICAgVmFsdWVBeGlzQ3Jvc3NoYWlyQ29tcG9uZW50LFxuICAgIFZhbHVlQXhpc0Nyb3NzaGFpclRvb2x0aXBDb21wb25lbnQsXG4gICAgVmFsdWVBeGlzSXRlbUNvbXBvbmVudCxcbiAgICBWYWx1ZUF4aXNMYWJlbHNDb21wb25lbnQsXG4gICAgVmFsdWVBeGlzTm90ZXNDb21wb25lbnQsXG4gICAgVmFsdWVBeGlzTm90ZXNJY29uQ29tcG9uZW50LFxuICAgIFZhbHVlQXhpc05vdGVzTGFiZWxDb21wb25lbnQsXG4gICAgVmFsdWVBeGlzVGl0bGVDb21wb25lbnQsXG4gICAgWEF4aXNDb21wb25lbnQsXG4gICAgWEF4aXNDcm9zc2hhaXJDb21wb25lbnQsXG4gICAgWEF4aXNDcm9zc2hhaXJUb29sdGlwQ29tcG9uZW50LFxuICAgIFhBeGlzSXRlbUNvbXBvbmVudCxcbiAgICBYQXhpc0xhYmVsc0NvbXBvbmVudCxcbiAgICBYQXhpc05vdGVzQ29tcG9uZW50LFxuICAgIFhBeGlzTm90ZXNJY29uQ29tcG9uZW50LFxuICAgIFhBeGlzTm90ZXNMYWJlbENvbXBvbmVudCxcbiAgICBYQXhpc1RpdGxlQ29tcG9uZW50LFxuICAgIFlBeGlzQ29tcG9uZW50LFxuICAgIFlBeGlzQ3Jvc3NoYWlyQ29tcG9uZW50LFxuICAgIFlBeGlzQ3Jvc3NoYWlyVG9vbHRpcENvbXBvbmVudCxcbiAgICBZQXhpc0l0ZW1Db21wb25lbnQsXG4gICAgWUF4aXNMYWJlbHNDb21wb25lbnQsXG4gICAgWUF4aXNOb3Rlc0NvbXBvbmVudCxcbiAgICBZQXhpc05vdGVzSWNvbkNvbXBvbmVudCxcbiAgICBZQXhpc05vdGVzTGFiZWxDb21wb25lbnQsXG4gICAgWUF4aXNUaXRsZUNvbXBvbmVudCxcbiAgICBab29tYWJsZUNvbXBvbmVudFxuXTtcblxuLy8gUmUtZXhwb3J0IGV2ZW50IHR5cGVzXG5cbi8qKlxuICogVGhlIGFyZ3VtZW50cyBmb3IgdGhlIGBuYXZpZ2F0b3JGaWx0ZXJgIGV2ZW50LlxuICovXG52YXIgTmF2aWdhdG9yRmlsdGVyRXZlbnQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKE5hdmlnYXRvckZpbHRlckV2ZW50LCBfc3VwZXIpO1xuICAgIC8qKlxuICAgICAqIENvbnN0cnVjdHMgdGhlIGV2ZW50IGFyZ3VtZW50cyBmcm9tIGEgcmF3IG9iamVjdC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBOYXZpZ2F0b3JGaWx0ZXJFdmVudChlLCBzZW5kZXIpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgc2VuZGVyKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5mcm9tID0gZS5mcm9tO1xuICAgICAgICBfdGhpcy50byA9IGUudG87XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgcmV0dXJuIE5hdmlnYXRvckZpbHRlckV2ZW50O1xufShCYXNlRXZlbnQpKTtcblxuLy8gUmUtZXhwb3J0IGV2ZW50IHR5cGVzXG5cbi8qKlxuICogQGhpZGRlblxuICovXG52YXIgUm9vdENvbmZpZ3VyYXRpb25TZXJ2aWNlID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhSb290Q29uZmlndXJhdGlvblNlcnZpY2UsIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gUm9vdENvbmZpZ3VyYXRpb25TZXJ2aWNlKCkge1xuICAgICAgICByZXR1cm4gX3N1cGVyICE9PSBudWxsICYmIF9zdXBlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpIHx8IHRoaXM7XG4gICAgfVxuICAgIFJvb3RDb25maWd1cmF0aW9uU2VydmljZS5kZWNvcmF0b3JzID0gW1xuICAgICAgICB7IHR5cGU6IEluamVjdGFibGUgfSxcbiAgICBdO1xuICAgIHJldHVybiBSb290Q29uZmlndXJhdGlvblNlcnZpY2U7XG59KENvbmZpZ3VyYXRpb25TZXJ2aWNlKSk7XG5cbnZhciBFVkVOVF9NQVAkMSA9IHtcbiAgICBuYXZpZ2F0b3JGaWx0ZXI6IE5hdmlnYXRvckZpbHRlckV2ZW50XG59O1xuLyoqXG4gKiBAaGlkZGVuXG4gKi9cbnZhciBTdG9ja0luc3RhbmNlRXZlbnRTZXJ2aWNlID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhTdG9ja0luc3RhbmNlRXZlbnRTZXJ2aWNlLCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIFN0b2NrSW5zdGFuY2VFdmVudFNlcnZpY2UoKSB7XG4gICAgICAgIHJldHVybiBfc3VwZXIgIT09IG51bGwgJiYgX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgfHwgdGhpcztcbiAgICB9XG4gICAgU3RvY2tJbnN0YW5jZUV2ZW50U2VydmljZS5wcm90b3R5cGUuY3JlYXRlID0gZnVuY3Rpb24gKG5hbWUsIGFyZ3MsIHNlbmRlcikge1xuICAgICAgICBpZiAoRVZFTlRfTUFQJDFbbmFtZV0pIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgRVZFTlRfTUFQJDFbbmFtZV0oYXJncywgc2VuZGVyKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gX3N1cGVyLnByb3RvdHlwZS5jcmVhdGUuY2FsbCh0aGlzLCBuYW1lLCBhcmdzLCBzZW5kZXIpO1xuICAgIH07XG4gICAgcmV0dXJuIFN0b2NrSW5zdGFuY2VFdmVudFNlcnZpY2U7XG59KEluc3RhbmNlRXZlbnRTZXJ2aWNlKSk7XG5cbnZhciBOQVZJR0FUT1JfREVGQVVMVFMgPSB7XG4gICAgYXV0b0JpbmRFbGVtZW50czogdHJ1ZSxcbiAgICBsaXZlRHJhZzogZmFsc2UsXG4gICAgcGFydGlhbFJlZHJhdzogdHJ1ZVxufTtcbi8qIHRzbGludDpkaXNhYmxlOm5vLWFjY2Vzcy1taXNzaW5nLW1lbWJlciAqL1xuLyoqXG4gKiBUaGUgcm9vdCBTdG9ja0NoYXJ0IGNvbXBvbmVudC5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIGltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuICpcbiAqIF9AQ29tcG9uZW50KHtcbiAqICAgc2VsZWN0b3I6ICdteS1hcHAnLFxuICogICB0ZW1wbGF0ZTogYFxuICogICAgIDxrZW5kby1zdG9ja2NoYXJ0PlxuICogICAgICAgICA8a2VuZG8tY2hhcnQtc2VyaWVzPlxuICogICAgICAgICAgICAgPGtlbmRvLWNoYXJ0LXNlcmllcy1pdGVtIHR5cGU9XCJsaW5lXCIgW2RhdGFdPVwiZGF0YVwiIGZpZWxkPVwidmFsdWVcIiBjYXRlZ29yeUZpZWxkPVwiZGF0ZVwiPlxuICogICAgICAgICAgICAgPC9rZW5kby1jaGFydC1zZXJpZXMtaXRlbT5cbiAqICAgICAgICAgPC9rZW5kby1jaGFydC1zZXJpZXM+XG4gKiAgICAgICAgIDxrZW5kby1jaGFydC1uYXZpZ2F0b3I+XG4gKiAgICAgICAgICAgICA8a2VuZG8tY2hhcnQtbmF2aWdhdG9yLXNlbGVjdCB0bz1cIjIwMTcvMDIvMDFcIj5cbiAqICAgICAgICAgICAgIDwva2VuZG8tY2hhcnQtbmF2aWdhdG9yLXNlbGVjdD5cbiAqICAgICAgICAgICAgIDxrZW5kby1jaGFydC1uYXZpZ2F0b3Itc2VyaWVzPlxuICogICAgICAgICAgICAgICAgIDxrZW5kby1jaGFydC1uYXZpZ2F0b3Itc2VyaWVzLWl0ZW0gdHlwZT1cImFyZWFcIiBbZGF0YV09XCJkYXRhXCIgZmllbGQ9XCJ2YWx1ZVwiIGNhdGVnb3J5RmllbGQ9XCJkYXRlXCI+XG4gKiAgICAgICAgICAgICAgICAgPC9rZW5kby1jaGFydC1uYXZpZ2F0b3Itc2VyaWVzLWl0ZW0+XG4gKiAgICAgICAgICAgICA8L2tlbmRvLWNoYXJ0LW5hdmlnYXRvci1zZXJpZXM+XG4gKiAgICAgICAgIDwva2VuZG8tY2hhcnQtbmF2aWdhdG9yPlxuICogICAgIDwva2VuZG8tc3RvY2tjaGFydD5cbiAqICAgYFxuICogfSlcbiAqIGNsYXNzIEFwcENvbXBvbmVudCB7XG4gKiAgIHB1YmxpYyBkYXRhOiBhbnlbXSA9IFtdO1xuICpcbiAqICAgY29uc3RydWN0b3IoKSB7XG4gKiAgICAgIGZvciAobGV0IGlkeCA9IDA7IGlkeCA8IDEwMDsgaWR4KyspIHtcbiAqICAgICAgICAgIHRoaXMuZGF0YS5wdXNoKHtcbiAqICAgICAgICAgICAgICBkYXRlOiBuZXcgRGF0ZSgyMDE3LCAwLCBpZHgpLFxuICogICAgICAgICAgICAgIHZhbHVlOiBNYXRoLnJhbmRvbSgpICogMTAwXG4gKiAgICAgICAgICB9KTtcbiAqICAgICAgfVxuICogICB9XG4gKiB9XG4gKlxuICogYGBgXG4gKi9cbnZhciBTdG9ja0NoYXJ0Q29tcG9uZW50ID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhTdG9ja0NoYXJ0Q29tcG9uZW50LCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIFN0b2NrQ2hhcnRDb21wb25lbnQoY29uZmlndXJhdGlvblNlcnZpY2UsIHRoZW1lU2VydmljZSwgZWxlbWVudCwgaW50bCwgbG9jYWxpemF0aW9uU2VydmljZSwgbmdab25lLCBpbnN0YW5jZUV2ZW50U2VydmljZSwgY2hhbmdlRGV0ZWN0b3IsIHJlbmRlcmVyKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsIGNvbmZpZ3VyYXRpb25TZXJ2aWNlLCB0aGVtZVNlcnZpY2UsIGVsZW1lbnQsIGludGwsIGxvY2FsaXphdGlvblNlcnZpY2UsIG5nWm9uZSwgaW5zdGFuY2VFdmVudFNlcnZpY2UsIGNoYW5nZURldGVjdG9yLCByZW5kZXJlcikgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuY29uZmlndXJhdGlvblNlcnZpY2UgPSBjb25maWd1cmF0aW9uU2VydmljZTtcbiAgICAgICAgX3RoaXMudGhlbWVTZXJ2aWNlID0gdGhlbWVTZXJ2aWNlO1xuICAgICAgICBfdGhpcy5lbGVtZW50ID0gZWxlbWVudDtcbiAgICAgICAgX3RoaXMuaW50bCA9IGludGw7XG4gICAgICAgIF90aGlzLmxvY2FsaXphdGlvblNlcnZpY2UgPSBsb2NhbGl6YXRpb25TZXJ2aWNlO1xuICAgICAgICBfdGhpcy5uZ1pvbmUgPSBuZ1pvbmU7XG4gICAgICAgIF90aGlzLmluc3RhbmNlRXZlbnRTZXJ2aWNlID0gaW5zdGFuY2VFdmVudFNlcnZpY2U7XG4gICAgICAgIF90aGlzLmNoYW5nZURldGVjdG9yID0gY2hhbmdlRGV0ZWN0b3I7XG4gICAgICAgIF90aGlzLnJlbmRlcmVyID0gcmVuZGVyZXI7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBGaXJlcyB3aGVuIHRoZSBuYXZpZ2F0b3IgcmFuZ2UgaXMgY2hhbmdlZC5cbiAgICAgICAgICovXG4gICAgICAgIF90aGlzLm5hdmlnYXRvckZpbHRlciA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICAgICAgX3RoaXMucmVkcmF3U2xhdmVzID0gZmFsc2U7XG4gICAgICAgIF90aGlzLmhvc3RDbGFzc2VzID0gWydrLWNoYXJ0JywgJ2stc3RvY2tjaGFydCddO1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIElmIGNhbGxlZCwgdGhlIG5hdmlnYXRvciBwYW5lIGlzIG5vdCByZWRyYXduIHRoZSBuZXh0IHRpbWUgdGhlIFN0b2NrQ2hhcnQgb3B0aW9ucyBhcmUgdXBkYXRlZC5cbiAgICAgKiBUaGUgbWV0aG9kIGlzIHVzZWZ1bCBpZiB5b3UgbmVlZCB0byB1cGRhdGUgb25seSB0aGUgbWFpbiBzZXJpZXMgZGF0YSBmb3IgdGhlIHNlbGVjdGVkIHBlcmlvZC5cbiAgICAgKi9cbiAgICBTdG9ja0NoYXJ0Q29tcG9uZW50LnByb3RvdHlwZS5za2lwTmF2aWdhdG9yUmVkcmF3ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB0aGlzLnJlZHJhd1NsYXZlcyA9IHRydWU7XG4gICAgfTtcbiAgICBTdG9ja0NoYXJ0Q29tcG9uZW50LnByb3RvdHlwZS5jcmVhdGVJbnN0YW5jZSA9IGZ1bmN0aW9uIChlbGVtZW50LCBvYnNlcnZlcikge1xuICAgICAgICB0aGlzLmFwcGx5TmF2aWdhdG9yRGVmYXVsdHMoKTtcbiAgICAgICAgaWYgKHRoaXMuaXNEZXZNb2RlKCkgJiYgKHRoaXMub3B0aW9ucy56b29tYWJsZSB8fCB0aGlzLm9wdGlvbnMucGFubmFibGUpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZSBwYW5uYWJsZSBhbmQgem9vbWFibGUgb3B0aW9ucyBhcmUgbm90IHN1cHBvcnRlZCBieSB0aGUgU3RvY2tDaGFydCBjb21wb25lbnQuJyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pbnN0YW5jZSA9IG5ldyBTdG9ja0NoYXJ0KGVsZW1lbnQsIHRoaXMub3B0aW9ucywgdGhpcy50aGVtZSwge1xuICAgICAgICAgICAgaW50bFNlcnZpY2U6IHRoaXMuaW50bCxcbiAgICAgICAgICAgIG9ic2VydmVyOiBvYnNlcnZlcixcbiAgICAgICAgICAgIHJ0bDogdGhpcy5ydGwsXG4gICAgICAgICAgICBzZW5kZXI6IHRoaXNcbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICBTdG9ja0NoYXJ0Q29tcG9uZW50LnByb3RvdHlwZS51cGRhdGVPcHRpb25zID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB0aGlzLmFwcGx5TmF2aWdhdG9yRGVmYXVsdHMoKTtcbiAgICAgICAgaWYgKHRoaXMucmVkcmF3U2xhdmVzKSB7XG4gICAgICAgICAgICB0aGlzLmluc3RhbmNlLmFwcGx5T3B0aW9ucyh0aGlzLm9wdGlvbnMpO1xuICAgICAgICAgICAgdGhpcy5pbnN0YW5jZS5iaW5kQ2F0ZWdvcmllcygpO1xuICAgICAgICAgICAgdGhpcy5pbnN0YW5jZS5uYXZpZ2F0b3IucmVkcmF3U2xhdmVzKCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmluc3RhbmNlLnNldE9wdGlvbnModGhpcy5vcHRpb25zKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJlZHJhd1NsYXZlcyA9IGZhbHNlO1xuICAgIH07XG4gICAgU3RvY2tDaGFydENvbXBvbmVudC5wcm90b3R5cGUuYXBwbHlOYXZpZ2F0b3JEZWZhdWx0cyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdGhpcy5vcHRpb25zLm5hdmlnYXRvciA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMub3B0aW9ucy5uYXZpZ2F0b3IsIE5BVklHQVRPUl9ERUZBVUxUUyk7XG4gICAgfTtcbiAgICBTdG9ja0NoYXJ0Q29tcG9uZW50LnByb3RvdHlwZS5pc0Rldk1vZGUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBpc0Rldk1vZGUoKTtcbiAgICB9O1xuICAgIFN0b2NrQ2hhcnRDb21wb25lbnQuZGVjb3JhdG9ycyA9IFtcbiAgICAgICAgeyB0eXBlOiBDb21wb25lbnQsIGFyZ3M6IFt7XG4gICAgICAgICAgICAgICAgICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgICAgICAgICAgICAgICAgICBleHBvcnRBczogJ2tlbmRvU3RvY2tDaGFydCcsXG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICAgICAgICAgICAgICAgICAgQ29uZmlndXJhdGlvblNlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBUb29sdGlwVGVtcGxhdGVTZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgeyBwcm92aWRlOiBSb290Q29uZmlndXJhdGlvblNlcnZpY2UsIHVzZUV4aXN0aW5nOiBDb25maWd1cmF0aW9uU2VydmljZSB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgU3RvY2tJbnN0YW5jZUV2ZW50U2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsaXphdGlvblNlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdmlkZTogTDEwTl9QUkVGSVgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlVmFsdWU6ICdrZW5kby5jaGFydCdcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0b3I6ICdrZW5kby1zdG9ja2NoYXJ0JyxcbiAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGU6IFwiXFxuICAgICAgICA8ZGl2ICNzdXJmYWNlIGNsYXNzPVxcXCJrLWNoYXJ0LXN1cmZhY2VcXFwiPjwvZGl2PlxcbiAgICAgICAgPGtlbmRvLWNoYXJ0LWNyb3NzaGFpci10b29sdGlwcy1jb250YWluZXIgW3BvcHVwU2V0dGluZ3NdPVxcXCJwb3B1cFNldHRpbmdzXFxcIj5cXG4gICAgICAgIDwva2VuZG8tY2hhcnQtY3Jvc3NoYWlyLXRvb2x0aXBzLWNvbnRhaW5lcj5cXG4gICAgICAgIDxrZW5kby1jaGFydC10b29sdGlwLXBvcHVwIChsZWF2ZSk9XFxcInRvb2x0aXBNb3VzZWxlYXZlKCRldmVudClcXFwiIFtwb3B1cFNldHRpbmdzXT1cXFwicG9wdXBTZXR0aW5nc1xcXCI+XFxuICAgICAgICA8L2tlbmRvLWNoYXJ0LXRvb2x0aXAtcG9wdXA+XFxuICAgICAgICA8a2VuZG8tcmVzaXplLXNlbnNvciAocmVzaXplKT1cXFwib25SZXNpemUoJGV2ZW50KVxcXCI+PC9rZW5kby1yZXNpemUtc2Vuc29yPlxcbiAgICBcIlxuICAgICAgICAgICAgICAgIH0sXSB9LFxuICAgIF07XG4gICAgLyoqIEBub2NvbGxhcHNlICovXG4gICAgU3RvY2tDaGFydENvbXBvbmVudC5jdG9yUGFyYW1ldGVycyA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIFtcbiAgICAgICAgeyB0eXBlOiBDb25maWd1cmF0aW9uU2VydmljZSB9LFxuICAgICAgICB7IHR5cGU6IFRoZW1lU2VydmljZSB9LFxuICAgICAgICB7IHR5cGU6IEVsZW1lbnRSZWYgfSxcbiAgICAgICAgeyB0eXBlOiBJbnRsU2VydmljZSB9LFxuICAgICAgICB7IHR5cGU6IExvY2FsaXphdGlvblNlcnZpY2UgfSxcbiAgICAgICAgeyB0eXBlOiBOZ1pvbmUgfSxcbiAgICAgICAgeyB0eXBlOiBTdG9ja0luc3RhbmNlRXZlbnRTZXJ2aWNlIH0sXG4gICAgICAgIHsgdHlwZTogQ2hhbmdlRGV0ZWN0b3JSZWYgfSxcbiAgICAgICAgeyB0eXBlOiBSZW5kZXJlcjIgfVxuICAgIF07IH07XG4gICAgU3RvY2tDaGFydENvbXBvbmVudC5wcm9wRGVjb3JhdG9ycyA9IHtcbiAgICAgICAgbmF2aWdhdG9yOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgcGFubmFibGU6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICB6b29tYWJsZTogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIG5hdmlnYXRvckZpbHRlcjogW3sgdHlwZTogT3V0cHV0IH1dXG4gICAgfTtcbiAgICByZXR1cm4gU3RvY2tDaGFydENvbXBvbmVudDtcbn0oQ2hhcnRDb21wb25lbnQpKTtcblxuLyoqXG4gKiBAaGlkZGVuXG4gKi9cbnZhciBQUkVGSVggPSBuZXcgSW5qZWN0aW9uVG9rZW4oJ2NvbmZpZ3VyYXRpb24gcHJlZml4Jyk7XG4vKipcbiAqIEBoaWRkZW5cbiAqL1xudmFyIFByZWZpeENvbmZpZ3VyYXRpb25TZXJ2aWNlID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhQcmVmaXhDb25maWd1cmF0aW9uU2VydmljZSwgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBQcmVmaXhDb25maWd1cmF0aW9uU2VydmljZShyb290U2VydmljZSwgcHJlZml4LCBuZ1pvbmUpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgbmdab25lKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5yb290U2VydmljZSA9IHJvb3RTZXJ2aWNlO1xuICAgICAgICBfdGhpcy5wcmVmaXggPSBwcmVmaXg7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgUHJlZml4Q29uZmlndXJhdGlvblNlcnZpY2UucHJvdG90eXBlLnB1c2ggPSBmdW5jdGlvbiAoc3RvcmUpIHtcbiAgICAgICAgdGhpcy5yb290U2VydmljZS5ub3RpZnkobmV3IENoYW5nZSh0aGlzLnByZWZpeCwgc3RvcmUpKTtcbiAgICB9O1xuICAgIFByZWZpeENvbmZpZ3VyYXRpb25TZXJ2aWNlLnByb3RvdHlwZS5ub3RpZnkgPSBmdW5jdGlvbiAoY2hhbmdlKSB7XG4gICAgICAgIGNoYW5nZS5rZXkgPSB0aGlzLnByZWZpeCArIChjaGFuZ2Uua2V5ID8gXCIuXCIgKyBjaGFuZ2Uua2V5IDogJycpO1xuICAgICAgICB0aGlzLnJvb3RTZXJ2aWNlLm5vdGlmeShjaGFuZ2UpO1xuICAgIH07XG4gICAgUHJlZml4Q29uZmlndXJhdGlvblNlcnZpY2UuZGVjb3JhdG9ycyA9IFtcbiAgICAgICAgeyB0eXBlOiBJbmplY3RhYmxlIH0sXG4gICAgXTtcbiAgICAvKiogQG5vY29sbGFwc2UgKi9cbiAgICBQcmVmaXhDb25maWd1cmF0aW9uU2VydmljZS5jdG9yUGFyYW1ldGVycyA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIFtcbiAgICAgICAgeyB0eXBlOiBSb290Q29uZmlndXJhdGlvblNlcnZpY2UsIGRlY29yYXRvcnM6IFt7IHR5cGU6IEluamVjdCwgYXJnczogW1Jvb3RDb25maWd1cmF0aW9uU2VydmljZSxdIH1dIH0sXG4gICAgICAgIHsgdHlwZTogU3RyaW5nLCBkZWNvcmF0b3JzOiBbeyB0eXBlOiBJbmplY3QsIGFyZ3M6IFtQUkVGSVgsXSB9XSB9LFxuICAgICAgICB7IHR5cGU6IE5nWm9uZSB9XG4gICAgXTsgfTtcbiAgICByZXR1cm4gUHJlZml4Q29uZmlndXJhdGlvblNlcnZpY2U7XG59KENvbmZpZ3VyYXRpb25TZXJ2aWNlKSk7XG5cbi8qKlxuICogVGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBvZiB0aGUgbmF2aWdhdG9yXG4gKiAoW3NlZSBydW5uYWJsZSBleGFtcGxlXSh7JSBzbHVnIG92ZXJ2aWV3X3N0b2NrY2hhcnRfY2hhcnRzICV9I3RvYy1uYXZpZ2F0b3IpKS5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHMtbm8tcnVuXG4gKiBfQENvbXBvbmVudCh7XG4gKiAgICAgc2VsZWN0b3I6ICdteS1hcHAnLFxuICogICAgICAgdGVtcGxhdGU6IGBcbiAqICAgICAgICAgPGtlbmRvLXN0b2NrY2hhcnQgKG5hdmlnYXRvckZpbHRlcik9XCJvbk5hdmlnYXRvckZpbHRlcigkZXZlbnQpXCI+XG4gKiAgICAgICAgICAgICA8a2VuZG8tY2hhcnQtc2VyaWVzPlxuICogICAgICAgICAgICAgICAgPGtlbmRvLWNoYXJ0LXNlcmllcy1pdGVtXG4gKiAgICAgICAgICAgICAgICB0eXBlPVwiY2FuZGxlc3RpY2tcIlxuICogICAgICAgICAgICAgICAgIFtkYXRhXT1cInNlcmllc0RhdGFcIlxuICogICAgICAgICAgICAgICAgIG9wZW5GaWVsZD1cIk9wZW5cIlxuICogICAgICAgICAgICAgICAgIGNsb3NlRmllbGQ9XCJDbG9zZVwiXG4gKiAgICAgICAgICAgICAgICAgbG93RmllbGQ9XCJMb3dcIlxuICogICAgICAgICAgICAgICAgIGhpZ2hGaWVsZD1cIkhpZ2hcIlxuICogICAgICAgICAgICAgICAgIGNhdGVnb3J5RmllbGQ9XCJEYXRlXCI+XG4gKiAgICAgICAgICAgICA8L2tlbmRvLWNoYXJ0LXNlcmllcy1pdGVtPlxuICogICAgICAgICAgPC9rZW5kby1jaGFydC1zZXJpZXM+XG4gKiAgICAgICAgICA8a2VuZG8tY2hhcnQtbmF2aWdhdG9yXG4gKiAgICAgICAgICAgIFtjYXRlZ29yeUF4aXNdPVwiY2F0ZWdvcnlBeGlzT3B0aW9uc1wiXG4gKiAgICAgICAgICAgIFtoaW50XT1cImhpbnRPcHRpb25zXCJcbiAqICAgICAgICAgICAgW3BhbmVdPVwicGFuZU9wdGlvbnNcIlxuICogICAgICAgICAgICBbdmlzaWJsZV09XCJpc1Zpc2libGVcIj5cbiAqICAgICAgICAgICAgPGtlbmRvLWNoYXJ0LW5hdmlnYXRvci1zZWxlY3QgW2Zyb21dPVwiZnJvbVwiIFt0b109XCJ0b1wiPlxuICogICAgICAgICAgICA8L2tlbmRvLWNoYXJ0LW5hdmlnYXRvci1zZWxlY3Q+XG4gKiAgICAgICAgICAgIDxrZW5kby1jaGFydC1uYXZpZ2F0b3Itc2VyaWVzPlxuICogICAgICAgICAgICAgIDxrZW5kby1jaGFydC1uYXZpZ2F0b3Itc2VyaWVzLWl0ZW0gdHlwZT1cImFyZWFcIiBbZGF0YV09XCJuYXZpZ2F0b3JEYXRhXCIgZmllbGQ9XCJDbG9zZVwiIGNhdGVnb3J5RmllbGQ9XCJEYXRlXCI+XG4gKiAgICAgICAgICAgICAgPC9rZW5kby1jaGFydC1uYXZpZ2F0b3Itc2VyaWVzLWl0ZW0+XG4gKiAgICAgICAgICAgPC9rZW5kby1jaGFydC1uYXZpZ2F0b3Itc2VyaWVzPlxuICogICAgICAgICAgPC9rZW5kby1jaGFydC1uYXZpZ2F0b3I+XG4gKiAgICAgICAgPC9rZW5kby1zdG9ja2NoYXJ0PlxuICogICAgICAgIDxiciAvPjxiciAvPlxuICogICAgICAgIDxidXR0b24gY2xhc3M9XCJrLWJ1dHRvblwiIChjbGljayk9XCJpc1Zpc2libGUgPSAhaXNWaXNpYmxlXCI+VG9nZ2xlIE5hdmlnYXRvcjwvYnV0dG9uPlxuICogICAgYFxuICogfSlcbiAqIGBgYFxuICovXG52YXIgTmF2aWdhdG9yQ29tcG9uZW50ID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhOYXZpZ2F0b3JDb21wb25lbnQsIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gTmF2aWdhdG9yQ29tcG9uZW50KGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsICcnLCBjb25maWd1cmF0aW9uU2VydmljZSkgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuY29uZmlndXJhdGlvblNlcnZpY2UgPSBjb25maWd1cmF0aW9uU2VydmljZTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBOYXZpZ2F0b3JDb21wb25lbnQuZGVjb3JhdG9ycyA9IFtcbiAgICAgICAgeyB0eXBlOiBDb21wb25lbnQsIGFyZ3M6IFt7XG4gICAgICAgICAgICAgICAgICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgICAgICAgICAgICAgICAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IFBSRUZJWCwgdXNlVmFsdWU6ICduYXZpZ2F0b3InIH0sIHsgcHJvdmlkZTogQ29uZmlndXJhdGlvblNlcnZpY2UsIHVzZUNsYXNzOiBQcmVmaXhDb25maWd1cmF0aW9uU2VydmljZSB9XSxcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0b3I6ICdrZW5kby1jaGFydC1uYXZpZ2F0b3InLFxuICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZTogJydcbiAgICAgICAgICAgICAgICB9LF0gfSxcbiAgICBdO1xuICAgIC8qKiBAbm9jb2xsYXBzZSAqL1xuICAgIE5hdmlnYXRvckNvbXBvbmVudC5jdG9yUGFyYW1ldGVycyA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIFtcbiAgICAgICAgeyB0eXBlOiBDb25maWd1cmF0aW9uU2VydmljZSB9XG4gICAgXTsgfTtcbiAgICBOYXZpZ2F0b3JDb21wb25lbnQucHJvcERlY29yYXRvcnMgPSB7XG4gICAgICAgIHZpc2libGU6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBjYXRlZ29yeUF4aXM6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBoaW50OiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgcGFuZTogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHNlbGVjdDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHNlcmllczogW3sgdHlwZTogSW5wdXQgfV1cbiAgICB9O1xuICAgIHJldHVybiBOYXZpZ2F0b3JDb21wb25lbnQ7XG59KFNldHRpbmdzQ29tcG9uZW50KSk7XG5cbi8qKlxuICogVGhlIGNvbmZpZ3VyYXRpb24gY29tcG9uZW50IG9mIHRoZSBuYXZpZ2F0b3IgY2F0ZWdvcnkgYXhpcy5cbiAqXG4gKiBAZXhhbXBsZVxuICpcbiAqIGBgYGh0bWwtbm8tcnVuXG4gKiA8a2VuZG8tc3RvY2tjaGFydD5cbiAqICAgPGtlbmRvLWNoYXJ0LW5hdmlnYXRvcj5cbiAqICAgICA8a2VuZG8tY2hhcnQtbmF2aWdhdG9yLWNhdGVnb3J5LWF4aXNcbiAqICAgICAgIGNvbG9yPVwibWFyb29uXCJcbiAqICAgICAgIFtsYWJlbHNdPVwie2NvbG9yOiAnZ3JlZW4nfVwiPlxuICogICAgIDwva2VuZG8tY2hhcnQtbmF2aWdhdG9yLWNhdGVnb3J5LWF4aXM+XG4gKiAgIDwva2VuZG8tY2hhcnQtbmF2aWdhdG9yPlxuICogPC9rZW5kby1zdG9ja2NoYXJ0PlxuICogYGBgXG4gKi9cbnZhciBOYXZpZ2F0b3JDYXRlZ29yeUF4aXNDb21wb25lbnQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKE5hdmlnYXRvckNhdGVnb3J5QXhpc0NvbXBvbmVudCwgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBOYXZpZ2F0b3JDYXRlZ29yeUF4aXNDb21wb25lbnQoY29uZmlndXJhdGlvblNlcnZpY2UsIGludGwsIGxvY2FsZUlkKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsIGNvbmZpZ3VyYXRpb25TZXJ2aWNlLCBudWxsLCBpbnRsLCBsb2NhbGVJZCkgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuY29uZmlndXJhdGlvblNlcnZpY2UgPSBjb25maWd1cmF0aW9uU2VydmljZTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBOYXZpZ2F0b3JDYXRlZ29yeUF4aXNDb21wb25lbnQuZGVjb3JhdG9ycyA9IFtcbiAgICAgICAgeyB0eXBlOiBDb21wb25lbnQsIGFyZ3M6IFt7XG4gICAgICAgICAgICAgICAgICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgICAgICAgICAgICAgICAgICBwcm92aWRlcnM6IFt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdmlkZTogUFJFRklYLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZVZhbHVlOiAnbmF2aWdhdG9yLmNhdGVnb3J5QXhpcydcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm92aWRlOiBDb25maWd1cmF0aW9uU2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VDbGFzczogUHJlZml4Q29uZmlndXJhdGlvblNlcnZpY2VcbiAgICAgICAgICAgICAgICAgICAgICAgIH1dLFxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RvcjogJ2tlbmRvLWNoYXJ0LW5hdmlnYXRvci1jYXRlZ29yeS1heGlzJyxcbiAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGU6ICcnXG4gICAgICAgICAgICAgICAgfSxdIH0sXG4gICAgXTtcbiAgICAvKiogQG5vY29sbGFwc2UgKi9cbiAgICBOYXZpZ2F0b3JDYXRlZ29yeUF4aXNDb21wb25lbnQuY3RvclBhcmFtZXRlcnMgPSBmdW5jdGlvbiAoKSB7IHJldHVybiBbXG4gICAgICAgIHsgdHlwZTogQ29uZmlndXJhdGlvblNlcnZpY2UgfSxcbiAgICAgICAgeyB0eXBlOiBJbnRsU2VydmljZSB9LFxuICAgICAgICB7IHR5cGU6IFN0cmluZywgZGVjb3JhdG9yczogW3sgdHlwZTogSW5qZWN0LCBhcmdzOiBbTE9DQUxFX0lELF0gfV0gfVxuICAgIF07IH07XG4gICAgcmV0dXJuIE5hdmlnYXRvckNhdGVnb3J5QXhpc0NvbXBvbmVudDtcbn0oQ2F0ZWdvcnlBeGlzSXRlbUNvbXBvbmVudCkpO1xuXG4vKipcbiAqIFRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgb2YgdGhlIGNyb3NzaGFpci5cbiAqL1xudmFyIE5hdmlnYXRvckNhdGVnb3J5QXhpc0Nyb3NzaGFpckNvbXBvbmVudCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoTmF2aWdhdG9yQ2F0ZWdvcnlBeGlzQ3Jvc3NoYWlyQ29tcG9uZW50LCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIE5hdmlnYXRvckNhdGVnb3J5QXhpc0Nyb3NzaGFpckNvbXBvbmVudChjb25maWd1cmF0aW9uU2VydmljZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBjb25maWd1cmF0aW9uU2VydmljZSkgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuY29uZmlndXJhdGlvblNlcnZpY2UgPSBjb25maWd1cmF0aW9uU2VydmljZTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBOYXZpZ2F0b3JDYXRlZ29yeUF4aXNDcm9zc2hhaXJDb21wb25lbnQuZGVjb3JhdG9ycyA9IFtcbiAgICAgICAgeyB0eXBlOiBDb21wb25lbnQsIGFyZ3M6IFt7XG4gICAgICAgICAgICAgICAgICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RvcjogJ2tlbmRvLWNoYXJ0LW5hdmlnYXRvci1jYXRlZ29yeS1heGlzLWNyb3NzaGFpcicsXG4gICAgICAgICAgICAgICAgICAgIHRlbXBsYXRlOiAnJ1xuICAgICAgICAgICAgICAgIH0sXSB9LFxuICAgIF07XG4gICAgLyoqIEBub2NvbGxhcHNlICovXG4gICAgTmF2aWdhdG9yQ2F0ZWdvcnlBeGlzQ3Jvc3NoYWlyQ29tcG9uZW50LmN0b3JQYXJhbWV0ZXJzID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gW1xuICAgICAgICB7IHR5cGU6IENvbmZpZ3VyYXRpb25TZXJ2aWNlIH1cbiAgICBdOyB9O1xuICAgIHJldHVybiBOYXZpZ2F0b3JDYXRlZ29yeUF4aXNDcm9zc2hhaXJDb21wb25lbnQ7XG59KENhdGVnb3J5QXhpc0Nyb3NzaGFpckNvbXBvbmVudCkpO1xuXG4vKipcbiAqIFRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgb2YgdGhlIGNyb3NzaGFpciB0b29sdGlwLlxuICogVGhlIGNyb3NzaGFpciB0b29sdGlwIGlzIGRpc3BsYXllZCB3aGVuIHRoZSBgdmlzaWJsZWAgb3B0aW9uIGlzIHNldCB0byBgdHJ1ZWAuXG4gKi9cbnZhciBOYXZpZ2F0b3JDYXRlZ29yeUF4aXNDcm9zc2hhaXJUb29sdGlwQ29tcG9uZW50ID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhOYXZpZ2F0b3JDYXRlZ29yeUF4aXNDcm9zc2hhaXJUb29sdGlwQ29tcG9uZW50LCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIE5hdmlnYXRvckNhdGVnb3J5QXhpc0Nyb3NzaGFpclRvb2x0aXBDb21wb25lbnQoY29uZmlndXJhdGlvblNlcnZpY2UpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgY29uZmlndXJhdGlvblNlcnZpY2UpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlID0gY29uZmlndXJhdGlvblNlcnZpY2U7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgTmF2aWdhdG9yQ2F0ZWdvcnlBeGlzQ3Jvc3NoYWlyVG9vbHRpcENvbXBvbmVudC5kZWNvcmF0b3JzID0gW1xuICAgICAgICB7IHR5cGU6IENvbXBvbmVudCwgYXJnczogW3tcbiAgICAgICAgICAgICAgICAgICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdG9yOiAna2VuZG8tY2hhcnQtbmF2aWdhdG9yLWNhdGVnb3J5LWF4aXMtY3Jvc3NoYWlyLXRvb2x0aXAnLFxuICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZTogJydcbiAgICAgICAgICAgICAgICB9LF0gfSxcbiAgICBdO1xuICAgIC8qKiBAbm9jb2xsYXBzZSAqL1xuICAgIE5hdmlnYXRvckNhdGVnb3J5QXhpc0Nyb3NzaGFpclRvb2x0aXBDb21wb25lbnQuY3RvclBhcmFtZXRlcnMgPSBmdW5jdGlvbiAoKSB7IHJldHVybiBbXG4gICAgICAgIHsgdHlwZTogQ29uZmlndXJhdGlvblNlcnZpY2UgfVxuICAgIF07IH07XG4gICAgcmV0dXJuIE5hdmlnYXRvckNhdGVnb3J5QXhpc0Nyb3NzaGFpclRvb2x0aXBDb21wb25lbnQ7XG59KENhdGVnb3J5QXhpc0Nyb3NzaGFpclRvb2x0aXBDb21wb25lbnQpKTtcblxuLyoqXG4gKiBUaGUgY29uZmlndXJhdGlvbiBvZiB0aGUgYXhpcyBsYWJlbHMuXG4gKi9cbnZhciBOYXZpZ2F0b3JDYXRlZ29yeUF4aXNMYWJlbHNDb21wb25lbnQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKE5hdmlnYXRvckNhdGVnb3J5QXhpc0xhYmVsc0NvbXBvbmVudCwgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBOYXZpZ2F0b3JDYXRlZ29yeUF4aXNMYWJlbHNDb21wb25lbnQoY29uZmlndXJhdGlvblNlcnZpY2UpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgY29uZmlndXJhdGlvblNlcnZpY2UpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlID0gY29uZmlndXJhdGlvblNlcnZpY2U7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgTmF2aWdhdG9yQ2F0ZWdvcnlBeGlzTGFiZWxzQ29tcG9uZW50LmRlY29yYXRvcnMgPSBbXG4gICAgICAgIHsgdHlwZTogQ29tcG9uZW50LCBhcmdzOiBbe1xuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0b3I6ICdrZW5kby1jaGFydC1uYXZpZ2F0b3ItY2F0ZWdvcnktYXhpcy1sYWJlbHMnLFxuICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZTogJydcbiAgICAgICAgICAgICAgICB9LF0gfSxcbiAgICBdO1xuICAgIC8qKiBAbm9jb2xsYXBzZSAqL1xuICAgIE5hdmlnYXRvckNhdGVnb3J5QXhpc0xhYmVsc0NvbXBvbmVudC5jdG9yUGFyYW1ldGVycyA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIFtcbiAgICAgICAgeyB0eXBlOiBDb25maWd1cmF0aW9uU2VydmljZSB9XG4gICAgXTsgfTtcbiAgICByZXR1cm4gTmF2aWdhdG9yQ2F0ZWdvcnlBeGlzTGFiZWxzQ29tcG9uZW50O1xufShDYXRlZ29yeUF4aXNMYWJlbHNDb21wb25lbnQpKTtcblxuLyoqXG4gKiBUaGUgY29uZmlndXJhdGlvbiBvZiB0aGUgY2F0ZWdvcnkgYXhpcyBub3Rlcy5cbiAqL1xudmFyIE5hdmlnYXRvckNhdGVnb3J5QXhpc05vdGVzQ29tcG9uZW50ID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhOYXZpZ2F0b3JDYXRlZ29yeUF4aXNOb3Rlc0NvbXBvbmVudCwgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBOYXZpZ2F0b3JDYXRlZ29yeUF4aXNOb3Rlc0NvbXBvbmVudChjb25maWd1cmF0aW9uU2VydmljZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBjb25maWd1cmF0aW9uU2VydmljZSkgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuY29uZmlndXJhdGlvblNlcnZpY2UgPSBjb25maWd1cmF0aW9uU2VydmljZTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBOYXZpZ2F0b3JDYXRlZ29yeUF4aXNOb3Rlc0NvbXBvbmVudC5kZWNvcmF0b3JzID0gW1xuICAgICAgICB7IHR5cGU6IENvbXBvbmVudCwgYXJnczogW3tcbiAgICAgICAgICAgICAgICAgICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdG9yOiAna2VuZG8tY2hhcnQtbmF2aWdhdG9yLWNhdGVnb3J5LWF4aXMtbm90ZXMnLFxuICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZTogJydcbiAgICAgICAgICAgICAgICB9LF0gfSxcbiAgICBdO1xuICAgIC8qKiBAbm9jb2xsYXBzZSAqL1xuICAgIE5hdmlnYXRvckNhdGVnb3J5QXhpc05vdGVzQ29tcG9uZW50LmN0b3JQYXJhbWV0ZXJzID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gW1xuICAgICAgICB7IHR5cGU6IENvbmZpZ3VyYXRpb25TZXJ2aWNlIH1cbiAgICBdOyB9O1xuICAgIHJldHVybiBOYXZpZ2F0b3JDYXRlZ29yeUF4aXNOb3Rlc0NvbXBvbmVudDtcbn0oQ2F0ZWdvcnlBeGlzTm90ZXNDb21wb25lbnQpKTtcblxuLyoqXG4gKiBUaGUgaWNvbiBvZiB0aGUgbm90ZXMuXG4gKi9cbnZhciBOYXZpZ2F0b3JDYXRlZ29yeUF4aXNOb3Rlc0ljb25Db21wb25lbnQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKE5hdmlnYXRvckNhdGVnb3J5QXhpc05vdGVzSWNvbkNvbXBvbmVudCwgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBOYXZpZ2F0b3JDYXRlZ29yeUF4aXNOb3Rlc0ljb25Db21wb25lbnQoY29uZmlndXJhdGlvblNlcnZpY2UpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgY29uZmlndXJhdGlvblNlcnZpY2UpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlID0gY29uZmlndXJhdGlvblNlcnZpY2U7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgTmF2aWdhdG9yQ2F0ZWdvcnlBeGlzTm90ZXNJY29uQ29tcG9uZW50LmRlY29yYXRvcnMgPSBbXG4gICAgICAgIHsgdHlwZTogQ29tcG9uZW50LCBhcmdzOiBbe1xuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0b3I6ICdrZW5kby1jaGFydC1uYXZpZ2F0b3ItY2F0ZWdvcnktYXhpcy1ub3Rlcy1pY29uJyxcbiAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGU6ICcnXG4gICAgICAgICAgICAgICAgfSxdIH0sXG4gICAgXTtcbiAgICAvKiogQG5vY29sbGFwc2UgKi9cbiAgICBOYXZpZ2F0b3JDYXRlZ29yeUF4aXNOb3Rlc0ljb25Db21wb25lbnQuY3RvclBhcmFtZXRlcnMgPSBmdW5jdGlvbiAoKSB7IHJldHVybiBbXG4gICAgICAgIHsgdHlwZTogQ29uZmlndXJhdGlvblNlcnZpY2UgfVxuICAgIF07IH07XG4gICAgcmV0dXJuIE5hdmlnYXRvckNhdGVnb3J5QXhpc05vdGVzSWNvbkNvbXBvbmVudDtcbn0oQ2F0ZWdvcnlBeGlzTm90ZXNJY29uQ29tcG9uZW50KSk7XG5cbi8qKlxuICogVGhlIGxhYmVsIG9mIHRoZSBub3Rlcy5cbiAqL1xudmFyIE5hdmlnYXRvckNhdGVnb3J5QXhpc05vdGVzTGFiZWxDb21wb25lbnQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKE5hdmlnYXRvckNhdGVnb3J5QXhpc05vdGVzTGFiZWxDb21wb25lbnQsIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gTmF2aWdhdG9yQ2F0ZWdvcnlBeGlzTm90ZXNMYWJlbENvbXBvbmVudChjb25maWd1cmF0aW9uU2VydmljZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBjb25maWd1cmF0aW9uU2VydmljZSkgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuY29uZmlndXJhdGlvblNlcnZpY2UgPSBjb25maWd1cmF0aW9uU2VydmljZTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBOYXZpZ2F0b3JDYXRlZ29yeUF4aXNOb3Rlc0xhYmVsQ29tcG9uZW50LmRlY29yYXRvcnMgPSBbXG4gICAgICAgIHsgdHlwZTogQ29tcG9uZW50LCBhcmdzOiBbe1xuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0b3I6ICdrZW5kby1jaGFydC1uYXZpZ2F0b3ItY2F0ZWdvcnktYXhpcy1ub3Rlcy1sYWJlbCcsXG4gICAgICAgICAgICAgICAgICAgIHRlbXBsYXRlOiAnJ1xuICAgICAgICAgICAgICAgIH0sXSB9LFxuICAgIF07XG4gICAgLyoqIEBub2NvbGxhcHNlICovXG4gICAgTmF2aWdhdG9yQ2F0ZWdvcnlBeGlzTm90ZXNMYWJlbENvbXBvbmVudC5jdG9yUGFyYW1ldGVycyA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIFtcbiAgICAgICAgeyB0eXBlOiBDb25maWd1cmF0aW9uU2VydmljZSB9XG4gICAgXTsgfTtcbiAgICByZXR1cm4gTmF2aWdhdG9yQ2F0ZWdvcnlBeGlzTm90ZXNMYWJlbENvbXBvbmVudDtcbn0oQ2F0ZWdvcnlBeGlzTm90ZXNMYWJlbENvbXBvbmVudCkpO1xuXG4vKipcbiAqIFRoZSBzZWxlY3RlZCBheGlzIHJhbmdlLiBJZiBzZXQsIHRoZSBheGlzIHNlbGVjdGlvbiBpcyBlbmFibGVkLiBUaGUgcmFuZ2UgaXMgaW5kZXgtYmFzZWQgYW5kIHN0YXJ0cyBmcm9tIHplcm8uXG4gKiBDYXRlZ29yaWVzIHdpdGggaW5kZXhlcyBpbiB0aGUgcmFuZ2UgKGBzZWxlY3QuZnJvbWAsIGBzZWxlY3QudG9gKSB3aWxsIGJlIHNlbGVjdGVkLlxuICogVGhpcyBtZWFucyB0aGF0IHRoZSBsYXN0IGNhdGVnb3J5IGluIHRoZSByYW5nZSB3aWxsIG5vdCBiZSBpbmNsdWRlZCBpbiB0aGUgc2VsZWN0aW9uLlxuICogSWYgdGhlIGNhdGVnb3JpZXMgYXJlIGRhdGVzLCB0aGUgcmFuZ2UgaGFzIGFsc28gdG8gYmUgc3BlY2lmaWVkIHdpdGggZGF0ZSB2YWx1ZXMuXG4gKi9cbnZhciBOYXZpZ2F0b3JDYXRlZ29yeUF4aXNTZWxlY3RDb21wb25lbnQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKE5hdmlnYXRvckNhdGVnb3J5QXhpc1NlbGVjdENvbXBvbmVudCwgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBOYXZpZ2F0b3JDYXRlZ29yeUF4aXNTZWxlY3RDb21wb25lbnQoY29uZmlndXJhdGlvblNlcnZpY2UpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgY29uZmlndXJhdGlvblNlcnZpY2UpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlID0gY29uZmlndXJhdGlvblNlcnZpY2U7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgTmF2aWdhdG9yQ2F0ZWdvcnlBeGlzU2VsZWN0Q29tcG9uZW50LmRlY29yYXRvcnMgPSBbXG4gICAgICAgIHsgdHlwZTogQ29tcG9uZW50LCBhcmdzOiBbe1xuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0b3I6ICdrZW5kby1jaGFydC1uYXZpZ2F0b3ItY2F0ZWdvcnktYXhpcy1zZWxlY3QnLFxuICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZTogJydcbiAgICAgICAgICAgICAgICB9LF0gfSxcbiAgICBdO1xuICAgIC8qKiBAbm9jb2xsYXBzZSAqL1xuICAgIE5hdmlnYXRvckNhdGVnb3J5QXhpc1NlbGVjdENvbXBvbmVudC5jdG9yUGFyYW1ldGVycyA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIFtcbiAgICAgICAgeyB0eXBlOiBDb25maWd1cmF0aW9uU2VydmljZSB9XG4gICAgXTsgfTtcbiAgICByZXR1cm4gTmF2aWdhdG9yQ2F0ZWdvcnlBeGlzU2VsZWN0Q29tcG9uZW50O1xufShDYXRlZ29yeUF4aXNTZWxlY3RDb21wb25lbnQpKTtcblxuLyoqXG4gKiBUaGUgdGl0bGUgY29uZmlndXJhdGlvbiBvZiB0aGUgbmF2aWdhdG9yIGNhdGVnb3J5IGF4aXMuXG4gKi9cbnZhciBOYXZpZ2F0b3JDYXRlZ29yeUF4aXNUaXRsZUNvbXBvbmVudCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoTmF2aWdhdG9yQ2F0ZWdvcnlBeGlzVGl0bGVDb21wb25lbnQsIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gTmF2aWdhdG9yQ2F0ZWdvcnlBeGlzVGl0bGVDb21wb25lbnQoY29uZmlndXJhdGlvblNlcnZpY2UpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgY29uZmlndXJhdGlvblNlcnZpY2UpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlID0gY29uZmlndXJhdGlvblNlcnZpY2U7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgTmF2aWdhdG9yQ2F0ZWdvcnlBeGlzVGl0bGVDb21wb25lbnQuZGVjb3JhdG9ycyA9IFtcbiAgICAgICAgeyB0eXBlOiBDb21wb25lbnQsIGFyZ3M6IFt7XG4gICAgICAgICAgICAgICAgICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RvcjogJ2tlbmRvLWNoYXJ0LW5hdmlnYXRvci1jYXRlZ29yeS1heGlzLXRpdGxlJyxcbiAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGU6ICcnXG4gICAgICAgICAgICAgICAgfSxdIH0sXG4gICAgXTtcbiAgICAvKiogQG5vY29sbGFwc2UgKi9cbiAgICBOYXZpZ2F0b3JDYXRlZ29yeUF4aXNUaXRsZUNvbXBvbmVudC5jdG9yUGFyYW1ldGVycyA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIFtcbiAgICAgICAgeyB0eXBlOiBDb25maWd1cmF0aW9uU2VydmljZSB9XG4gICAgXTsgfTtcbiAgICByZXR1cm4gTmF2aWdhdG9yQ2F0ZWdvcnlBeGlzVGl0bGVDb21wb25lbnQ7XG59KENhdGVnb3J5QXhpc1RpdGxlQ29tcG9uZW50KSk7XG5cbi8qKlxuICogVGhlIGRlZmF1bHQgb3B0aW9ucyBvZiB0aGUgbmF2aWdhdG9yIGhpbnRcbiAqIChbc2VlIGV4YW1wbGVdKHslIHNsdWcgb3ZlcnZpZXdfc3RvY2tjaGFydF9jaGFydHMgJX0jdG9jLW5hdmlnYXRvcikpLlxuICovXG52YXIgTmF2aWdhdG9ySGludENvbXBvbmVudCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoTmF2aWdhdG9ySGludENvbXBvbmVudCwgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBOYXZpZ2F0b3JIaW50Q29tcG9uZW50KGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsICdoaW50JywgY29uZmlndXJhdGlvblNlcnZpY2UpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlID0gY29uZmlndXJhdGlvblNlcnZpY2U7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgTmF2aWdhdG9ySGludENvbXBvbmVudC5kZWNvcmF0b3JzID0gW1xuICAgICAgICB7IHR5cGU6IENvbXBvbmVudCwgYXJnczogW3tcbiAgICAgICAgICAgICAgICAgICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdG9yOiAna2VuZG8tY2hhcnQtbmF2aWdhdG9yLWhpbnQnLFxuICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZTogJydcbiAgICAgICAgICAgICAgICB9LF0gfSxcbiAgICBdO1xuICAgIC8qKiBAbm9jb2xsYXBzZSAqL1xuICAgIE5hdmlnYXRvckhpbnRDb21wb25lbnQuY3RvclBhcmFtZXRlcnMgPSBmdW5jdGlvbiAoKSB7IHJldHVybiBbXG4gICAgICAgIHsgdHlwZTogQ29uZmlndXJhdGlvblNlcnZpY2UgfVxuICAgIF07IH07XG4gICAgTmF2aWdhdG9ySGludENvbXBvbmVudC5wcm9wRGVjb3JhdG9ycyA9IHtcbiAgICAgICAgY29udGVudDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGZvcm1hdDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHZpc2libGU6IFt7IHR5cGU6IElucHV0IH1dXG4gICAgfTtcbiAgICByZXR1cm4gTmF2aWdhdG9ySGludENvbXBvbmVudDtcbn0oU2V0dGluZ3NDb21wb25lbnQpKTtcblxuLyoqXG4gKiBUaGUgY29uZmlndXJhdGlvbiBjb21wb25lbnQgb2YgdGhlIG5hdmlnYXRvciBwYW5lXG4gKiAoW3NlZSBleGFtcGxlXSh7JSBzbHVnIG92ZXJ2aWV3X3N0b2NrY2hhcnRfY2hhcnRzICV9I3RvYy1uYXZpZ2F0b3IpKS5cbiAqL1xudmFyIE5hdmlnYXRvclBhbmVDb21wb25lbnQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKE5hdmlnYXRvclBhbmVDb21wb25lbnQsIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gTmF2aWdhdG9yUGFuZUNvbXBvbmVudChjb25maWd1cmF0aW9uU2VydmljZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBjb25maWd1cmF0aW9uU2VydmljZSwgbnVsbCkgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuY29uZmlndXJhdGlvblNlcnZpY2UgPSBjb25maWd1cmF0aW9uU2VydmljZTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBOYXZpZ2F0b3JQYW5lQ29tcG9uZW50LmRlY29yYXRvcnMgPSBbXG4gICAgICAgIHsgdHlwZTogQ29tcG9uZW50LCBhcmdzOiBbe1xuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBQUkVGSVgsIHVzZVZhbHVlOiAnbmF2aWdhdG9yLnBhbmUnIH0sIHsgcHJvdmlkZTogQ29uZmlndXJhdGlvblNlcnZpY2UsIHVzZUNsYXNzOiBQcmVmaXhDb25maWd1cmF0aW9uU2VydmljZSB9XSxcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0b3I6ICdrZW5kby1jaGFydC1uYXZpZ2F0b3ItcGFuZScsXG4gICAgICAgICAgICAgICAgICAgIHRlbXBsYXRlOiAnJ1xuICAgICAgICAgICAgICAgIH0sXSB9LFxuICAgIF07XG4gICAgLyoqIEBub2NvbGxhcHNlICovXG4gICAgTmF2aWdhdG9yUGFuZUNvbXBvbmVudC5jdG9yUGFyYW1ldGVycyA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIFtcbiAgICAgICAgeyB0eXBlOiBDb25maWd1cmF0aW9uU2VydmljZSB9XG4gICAgXTsgfTtcbiAgICByZXR1cm4gTmF2aWdhdG9yUGFuZUNvbXBvbmVudDtcbn0oUGFuZUNvbXBvbmVudEdlbmVyYXRlZCkpO1xuXG4vKipcbiAqIFRoZSB0aXRsZSBjb25maWd1cmF0aW9uIG9mIHRoZSBTdG9ja0NoYXJ0IG5hdmlnYXRvciBwYW5lLlxuICovXG52YXIgTmF2aWdhdG9yUGFuZVRpdGxlQ29tcG9uZW50ID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhOYXZpZ2F0b3JQYW5lVGl0bGVDb21wb25lbnQsIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gTmF2aWdhdG9yUGFuZVRpdGxlQ29tcG9uZW50KGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsIGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5jb25maWd1cmF0aW9uU2VydmljZSA9IGNvbmZpZ3VyYXRpb25TZXJ2aWNlO1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIE5hdmlnYXRvclBhbmVUaXRsZUNvbXBvbmVudC5kZWNvcmF0b3JzID0gW1xuICAgICAgICB7IHR5cGU6IENvbXBvbmVudCwgYXJnczogW3tcbiAgICAgICAgICAgICAgICAgICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdG9yOiAna2VuZG8tY2hhcnQtbmF2aWdhdG9yLXBhbmUtdGl0bGUnLFxuICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZTogJydcbiAgICAgICAgICAgICAgICB9LF0gfSxcbiAgICBdO1xuICAgIC8qKiBAbm9jb2xsYXBzZSAqL1xuICAgIE5hdmlnYXRvclBhbmVUaXRsZUNvbXBvbmVudC5jdG9yUGFyYW1ldGVycyA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIFtcbiAgICAgICAgeyB0eXBlOiBDb25maWd1cmF0aW9uU2VydmljZSB9XG4gICAgXTsgfTtcbiAgICByZXR1cm4gTmF2aWdhdG9yUGFuZVRpdGxlQ29tcG9uZW50O1xufShQYW5lc1RpdGxlQ29tcG9uZW50KSk7XG5cbi8qKlxuICogU3BlY2lmaWVzIHRoZSBpbml0aWFsbHkgc2VsZWN0ZWQgcmFuZ2UuXG4gKiBJZiBubyByYW5nZSBpcyBzcGVjaWZpZWQsIHRoZSBmdWxsIHJhbmdlIG9mIHZhbHVlcyBpcyByZW5kZXJlZC5cbiAqL1xudmFyIE5hdmlnYXRvclNlbGVjdENvbXBvbmVudCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoTmF2aWdhdG9yU2VsZWN0Q29tcG9uZW50LCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIE5hdmlnYXRvclNlbGVjdENvbXBvbmVudChjb25maWd1cmF0aW9uU2VydmljZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCAnc2VsZWN0JywgY29uZmlndXJhdGlvblNlcnZpY2UpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlID0gY29uZmlndXJhdGlvblNlcnZpY2U7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgTmF2aWdhdG9yU2VsZWN0Q29tcG9uZW50LmRlY29yYXRvcnMgPSBbXG4gICAgICAgIHsgdHlwZTogQ29tcG9uZW50LCBhcmdzOiBbe1xuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0b3I6ICdrZW5kby1jaGFydC1uYXZpZ2F0b3Itc2VsZWN0JyxcbiAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGU6ICcnXG4gICAgICAgICAgICAgICAgfSxdIH0sXG4gICAgXTtcbiAgICAvKiogQG5vY29sbGFwc2UgKi9cbiAgICBOYXZpZ2F0b3JTZWxlY3RDb21wb25lbnQuY3RvclBhcmFtZXRlcnMgPSBmdW5jdGlvbiAoKSB7IHJldHVybiBbXG4gICAgICAgIHsgdHlwZTogQ29uZmlndXJhdGlvblNlcnZpY2UgfVxuICAgIF07IH07XG4gICAgTmF2aWdhdG9yU2VsZWN0Q29tcG9uZW50LnByb3BEZWNvcmF0b3JzID0ge1xuICAgICAgICBmcm9tOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgdG86IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBtb3VzZXdoZWVsOiBbeyB0eXBlOiBJbnB1dCB9XVxuICAgIH07XG4gICAgcmV0dXJuIE5hdmlnYXRvclNlbGVjdENvbXBvbmVudDtcbn0oU2V0dGluZ3NDb21wb25lbnQpKTtcblxuLyoqXG4gKiBUaGUgY29uZmlndXJhdGlvbiBjb21wb25lbnQgb2YgYSBuYXZpZ2F0b3Igc2VyaWVzIGl0ZW1cbiAqIChbc2VlIGV4YW1wbGVdKHslIHNsdWcgbmF2aWdhdG9yX3N0b2NrY2hhcnRfY2hhcnRzICV9KSkuXG4gKi9cbnZhciBOYXZpZ2F0b3JTZXJpZXNJdGVtQ29tcG9uZW50ID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhOYXZpZ2F0b3JTZXJpZXNJdGVtQ29tcG9uZW50LCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIE5hdmlnYXRvclNlcmllc0l0ZW1Db21wb25lbnQoY29uZmlndXJhdGlvblNlcnZpY2UsIGNvbGxlY3Rpb25TZXJ2aWNlKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsIGNvbmZpZ3VyYXRpb25TZXJ2aWNlLCBjb2xsZWN0aW9uU2VydmljZSkgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuY29uZmlndXJhdGlvblNlcnZpY2UgPSBjb25maWd1cmF0aW9uU2VydmljZTtcbiAgICAgICAgX3RoaXMuY29sbGVjdGlvblNlcnZpY2UgPSBjb2xsZWN0aW9uU2VydmljZTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBOYXZpZ2F0b3JTZXJpZXNJdGVtQ29tcG9uZW50LmRlY29yYXRvcnMgPSBbXG4gICAgICAgIHsgdHlwZTogQ29tcG9uZW50LCBhcmdzOiBbe1xuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZXJzOiBbQ29uZmlndXJhdGlvblNlcnZpY2VdLFxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RvcjogJ2tlbmRvLWNoYXJ0LW5hdmlnYXRvci1zZXJpZXMtaXRlbScsXG4gICAgICAgICAgICAgICAgICAgIHRlbXBsYXRlOiAnJ1xuICAgICAgICAgICAgICAgIH0sXSB9LFxuICAgIF07XG4gICAgLyoqIEBub2NvbGxhcHNlICovXG4gICAgTmF2aWdhdG9yU2VyaWVzSXRlbUNvbXBvbmVudC5jdG9yUGFyYW1ldGVycyA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIFtcbiAgICAgICAgeyB0eXBlOiBDb25maWd1cmF0aW9uU2VydmljZSB9LFxuICAgICAgICB7IHR5cGU6IENvbGxlY3Rpb25TZXJ2aWNlIH1cbiAgICBdOyB9O1xuICAgIHJldHVybiBOYXZpZ2F0b3JTZXJpZXNJdGVtQ29tcG9uZW50O1xufShTZXJpZXNJdGVtQ29tcG9uZW50KSk7XG5cbi8qKlxuICogQSBjb2xsZWN0aW9uIG9mIG9uZSBvciBtb3JlIG5hdmlnYXRvciBzZXJpZXMgaXRlbXMuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbiAqXG4gKiBfQENvbXBvbmVudCh7XG4gKiAgIHNlbGVjdG9yOiAnbXktYXBwJyxcbiAqICAgdGVtcGxhdGU6IGBcbiAqICAgICA8a2VuZG8tc3RvY2tjaGFydD5cbiAqICAgICAgICAgPGtlbmRvLWNoYXJ0LW5hdmlnYXRvcj5cbiAqICAgICAgICAgICAgIDxrZW5kby1jaGFydC1uYXZpZ2F0b3Itc2VyaWVzPlxuICogICAgICAgICAgICAgICAgIDxrZW5kby1jaGFydC1uYXZpZ2F0b3Itc2VyaWVzLWl0ZW0gdHlwZT1cImFyZWFcIiBbZGF0YV09XCJkYXRhXCIgZmllbGQ9XCJ2YWx1ZVwiIGNhdGVnb3J5RmllbGQ9XCJkYXRlXCI+XG4gKiAgICAgICAgICAgICAgICAgPC9rZW5kby1jaGFydC1uYXZpZ2F0b3Itc2VyaWVzLWl0ZW0+XG4gKiAgICAgICAgICAgICA8L2tlbmRvLWNoYXJ0LW5hdmlnYXRvci1zZXJpZXM+XG4gKiAgICAgICAgIDwva2VuZG8tY2hhcnQtbmF2aWdhdG9yPlxuICogICAgIDwva2VuZG8tc3RvY2tjaGFydD5cbiAqICAgYFxuICogfSlcbiAqIGNsYXNzIEFwcENvbXBvbmVudCB7XG4gKiAgIHB1YmxpYyBkYXRhOiBhbnlbXSA9IFtdO1xuICpcbiAqICAgY29uc3RydWN0b3IoKSB7XG4gKiAgICAgIGZvciAobGV0IGlkeCA9IDA7IGlkeCA8IDEwMDsgaWR4KyspIHtcbiAqICAgICAgICAgIHRoaXMuZGF0YS5wdXNoKHtcbiAqICAgICAgICAgICAgICBkYXRlOiBuZXcgRGF0ZSgyMDE3LCAwLCBpZHgpLFxuICogICAgICAgICAgICAgIHZhbHVlOiBNYXRoLnJhbmRvbSgpICogMTAwXG4gKiAgICAgICAgICB9KTtcbiAqICAgICAgfVxuICogICB9XG4gKiB9XG4gKlxuICogYGBgXG4gKi9cbnZhciBOYXZpZ2F0b3JTZXJpZXNDb21wb25lbnQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKE5hdmlnYXRvclNlcmllc0NvbXBvbmVudCwgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBOYXZpZ2F0b3JTZXJpZXNDb21wb25lbnQoY29uZmlndXJhdGlvblNlcnZpY2UsIGNvbGxlY3Rpb25TZXJ2aWNlLCB0b29sdGlwVGVtcGxhdGVTZXJ2aWNlKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsIGNvbmZpZ3VyYXRpb25TZXJ2aWNlLCBjb2xsZWN0aW9uU2VydmljZSwgdG9vbHRpcFRlbXBsYXRlU2VydmljZSkgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuY29uZmlndXJhdGlvblNlcnZpY2UgPSBjb25maWd1cmF0aW9uU2VydmljZTtcbiAgICAgICAgX3RoaXMuY29sbGVjdGlvblNlcnZpY2UgPSBjb2xsZWN0aW9uU2VydmljZTtcbiAgICAgICAgX3RoaXMudG9vbHRpcFRlbXBsYXRlU2VydmljZSA9IHRvb2x0aXBUZW1wbGF0ZVNlcnZpY2U7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgTmF2aWdhdG9yU2VyaWVzQ29tcG9uZW50LnByb3RvdHlwZS5yZWFkVG9vbHRpcFRlbXBsYXRlcyA9IGZ1bmN0aW9uICgpIHtcbiAgICB9O1xuICAgIE5hdmlnYXRvclNlcmllc0NvbXBvbmVudC5kZWNvcmF0b3JzID0gW1xuICAgICAgICB7IHR5cGU6IENvbXBvbmVudCwgYXJnczogW3tcbiAgICAgICAgICAgICAgICAgICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGVyczogW0NvbGxlY3Rpb25TZXJ2aWNlXSxcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0b3I6ICdrZW5kby1jaGFydC1uYXZpZ2F0b3Itc2VyaWVzJyxcbiAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGU6ICcnXG4gICAgICAgICAgICAgICAgfSxdIH0sXG4gICAgXTtcbiAgICAvKiogQG5vY29sbGFwc2UgKi9cbiAgICBOYXZpZ2F0b3JTZXJpZXNDb21wb25lbnQuY3RvclBhcmFtZXRlcnMgPSBmdW5jdGlvbiAoKSB7IHJldHVybiBbXG4gICAgICAgIHsgdHlwZTogQ29uZmlndXJhdGlvblNlcnZpY2UgfSxcbiAgICAgICAgeyB0eXBlOiBDb2xsZWN0aW9uU2VydmljZSB9LFxuICAgICAgICB7IHR5cGU6IFRvb2x0aXBUZW1wbGF0ZVNlcnZpY2UgfVxuICAgIF07IH07XG4gICAgTmF2aWdhdG9yU2VyaWVzQ29tcG9uZW50LnByb3BEZWNvcmF0b3JzID0ge1xuICAgICAgICBjaGlsZHJlbjogW3sgdHlwZTogQ29udGVudENoaWxkcmVuLCBhcmdzOiBbTmF2aWdhdG9yU2VyaWVzSXRlbUNvbXBvbmVudCxdIH1dXG4gICAgfTtcbiAgICByZXR1cm4gTmF2aWdhdG9yU2VyaWVzQ29tcG9uZW50O1xufShTZXJpZXNDb21wb25lbnQpKTtcblxuLyoqXG4gKiBUaGUgZXJyb3IgYmFycyBvZiB0aGUgU3RvY2tDaGFydCBuYXZpZ2F0b3Igc2VyaWVzLlxuICovXG52YXIgTmF2aWdhdG9yU2VyaWVzRXJyb3JCYXJzQ29tcG9uZW50ID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhOYXZpZ2F0b3JTZXJpZXNFcnJvckJhcnNDb21wb25lbnQsIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gTmF2aWdhdG9yU2VyaWVzRXJyb3JCYXJzQ29tcG9uZW50KGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsIGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5jb25maWd1cmF0aW9uU2VydmljZSA9IGNvbmZpZ3VyYXRpb25TZXJ2aWNlO1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIE5hdmlnYXRvclNlcmllc0Vycm9yQmFyc0NvbXBvbmVudC5kZWNvcmF0b3JzID0gW1xuICAgICAgICB7IHR5cGU6IENvbXBvbmVudCwgYXJnczogW3tcbiAgICAgICAgICAgICAgICAgICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdG9yOiAna2VuZG8tY2hhcnQtbmF2aWdhdG9yLXNlcmllcy1pdGVtLWVycm9yLWJhcnMnLFxuICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZTogJydcbiAgICAgICAgICAgICAgICB9LF0gfSxcbiAgICBdO1xuICAgIC8qKiBAbm9jb2xsYXBzZSAqL1xuICAgIE5hdmlnYXRvclNlcmllc0Vycm9yQmFyc0NvbXBvbmVudC5jdG9yUGFyYW1ldGVycyA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIFtcbiAgICAgICAgeyB0eXBlOiBDb25maWd1cmF0aW9uU2VydmljZSB9XG4gICAgXTsgfTtcbiAgICByZXR1cm4gTmF2aWdhdG9yU2VyaWVzRXJyb3JCYXJzQ29tcG9uZW50O1xufShTZXJpZXNFcnJvckJhcnNDb21wb25lbnQpKTtcblxuLyoqXG4gKiBUaGUgZXh0cmVtZXMgY29uZmlndXJhdGlvbiBvZiB0aGUgU3RvY2tDaGFydCBuYXZpZ2F0b3Igc2VyaWVzLiBBcHBsaWVzIHRvIGV4dHJlbWUgb3V0bGllcnMuXG4gKi9cbnZhciBOYXZpZ2F0b3JTZXJpZXNFeHRyZW1lc0NvbXBvbmVudCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoTmF2aWdhdG9yU2VyaWVzRXh0cmVtZXNDb21wb25lbnQsIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gTmF2aWdhdG9yU2VyaWVzRXh0cmVtZXNDb21wb25lbnQoY29uZmlndXJhdGlvblNlcnZpY2UpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgY29uZmlndXJhdGlvblNlcnZpY2UpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlID0gY29uZmlndXJhdGlvblNlcnZpY2U7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgTmF2aWdhdG9yU2VyaWVzRXh0cmVtZXNDb21wb25lbnQuZGVjb3JhdG9ycyA9IFtcbiAgICAgICAgeyB0eXBlOiBDb21wb25lbnQsIGFyZ3M6IFt7XG4gICAgICAgICAgICAgICAgICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RvcjogJ2tlbmRvLWNoYXJ0LW5hdmlnYXRvci1zZXJpZXMtaXRlbS1leHRyZW1lcycsXG4gICAgICAgICAgICAgICAgICAgIHRlbXBsYXRlOiAnJ1xuICAgICAgICAgICAgICAgIH0sXSB9LFxuICAgIF07XG4gICAgLyoqIEBub2NvbGxhcHNlICovXG4gICAgTmF2aWdhdG9yU2VyaWVzRXh0cmVtZXNDb21wb25lbnQuY3RvclBhcmFtZXRlcnMgPSBmdW5jdGlvbiAoKSB7IHJldHVybiBbXG4gICAgICAgIHsgdHlwZTogQ29uZmlndXJhdGlvblNlcnZpY2UgfVxuICAgIF07IH07XG4gICAgcmV0dXJuIE5hdmlnYXRvclNlcmllc0V4dHJlbWVzQ29tcG9uZW50O1xufShTZXJpZXNFeHRyZW1lc0NvbXBvbmVudCkpO1xuXG4vKipcbiAqIFRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgb2YgdGhlIFN0b2NrQ2hhcnQgc2VyaWVzIGhpZ2hsaWdodC5cbiAqL1xudmFyIE5hdmlnYXRvclNlcmllc0hpZ2hsaWdodENvbXBvbmVudCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoTmF2aWdhdG9yU2VyaWVzSGlnaGxpZ2h0Q29tcG9uZW50LCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIE5hdmlnYXRvclNlcmllc0hpZ2hsaWdodENvbXBvbmVudChjb25maWd1cmF0aW9uU2VydmljZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBjb25maWd1cmF0aW9uU2VydmljZSkgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuY29uZmlndXJhdGlvblNlcnZpY2UgPSBjb25maWd1cmF0aW9uU2VydmljZTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBOYXZpZ2F0b3JTZXJpZXNIaWdobGlnaHRDb21wb25lbnQuZGVjb3JhdG9ycyA9IFtcbiAgICAgICAgeyB0eXBlOiBDb21wb25lbnQsIGFyZ3M6IFt7XG4gICAgICAgICAgICAgICAgICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RvcjogJ2tlbmRvLWNoYXJ0LW5hdmlnYXRvci1zZXJpZXMtaXRlbS1oaWdobGlnaHQnLFxuICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZTogJydcbiAgICAgICAgICAgICAgICB9LF0gfSxcbiAgICBdO1xuICAgIC8qKiBAbm9jb2xsYXBzZSAqL1xuICAgIE5hdmlnYXRvclNlcmllc0hpZ2hsaWdodENvbXBvbmVudC5jdG9yUGFyYW1ldGVycyA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIFtcbiAgICAgICAgeyB0eXBlOiBDb25maWd1cmF0aW9uU2VydmljZSB9XG4gICAgXTsgfTtcbiAgICByZXR1cm4gTmF2aWdhdG9yU2VyaWVzSGlnaGxpZ2h0Q29tcG9uZW50O1xufShTZXJpZXNIaWdobGlnaHRDb21wb25lbnQpKTtcblxuLyoqXG4gKiBUaGUgbGFiZWwgY29uZmlndXJhdGlvbiBvZiB0aGUgU3RvY2tDaGFydCBuYXZpZ2F0b3Igc2VyaWVzLlxuICovXG52YXIgTmF2aWdhdG9yU2VyaWVzTGFiZWxzQ29tcG9uZW50ID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhOYXZpZ2F0b3JTZXJpZXNMYWJlbHNDb21wb25lbnQsIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gTmF2aWdhdG9yU2VyaWVzTGFiZWxzQ29tcG9uZW50KGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsIGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5jb25maWd1cmF0aW9uU2VydmljZSA9IGNvbmZpZ3VyYXRpb25TZXJ2aWNlO1xuICAgICAgICBfdGhpcy5tYXJrQXNWaXNpYmxlKCk7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgTmF2aWdhdG9yU2VyaWVzTGFiZWxzQ29tcG9uZW50LmRlY29yYXRvcnMgPSBbXG4gICAgICAgIHsgdHlwZTogQ29tcG9uZW50LCBhcmdzOiBbe1xuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0b3I6ICdrZW5kby1jaGFydC1uYXZpZ2F0b3Itc2VyaWVzLWl0ZW0tbGFiZWxzJyxcbiAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGU6ICcnXG4gICAgICAgICAgICAgICAgfSxdIH0sXG4gICAgXTtcbiAgICAvKiogQG5vY29sbGFwc2UgKi9cbiAgICBOYXZpZ2F0b3JTZXJpZXNMYWJlbHNDb21wb25lbnQuY3RvclBhcmFtZXRlcnMgPSBmdW5jdGlvbiAoKSB7IHJldHVybiBbXG4gICAgICAgIHsgdHlwZTogQ29uZmlndXJhdGlvblNlcnZpY2UgfVxuICAgIF07IH07XG4gICAgcmV0dXJuIE5hdmlnYXRvclNlcmllc0xhYmVsc0NvbXBvbmVudDtcbn0oU2VyaWVzTGFiZWxzQ29tcG9uZW50KSk7XG5cbi8qKlxuICogVGhlIGBmcm9tYCBsYWJlbCBjb25maWd1cmF0aW9uIG9mIHRoZSBTdG9ja0NoYXJ0IG5hdmlnYXRvciBzZXJpZXMuXG4gKi9cbnZhciBOYXZpZ2F0b3JTZXJpZXNMYWJlbHNGcm9tQ29tcG9uZW50ID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhOYXZpZ2F0b3JTZXJpZXNMYWJlbHNGcm9tQ29tcG9uZW50LCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIE5hdmlnYXRvclNlcmllc0xhYmVsc0Zyb21Db21wb25lbnQoY29uZmlndXJhdGlvblNlcnZpY2UpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgY29uZmlndXJhdGlvblNlcnZpY2UpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlID0gY29uZmlndXJhdGlvblNlcnZpY2U7XG4gICAgICAgIF90aGlzLm1hcmtBc1Zpc2libGUoKTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBOYXZpZ2F0b3JTZXJpZXNMYWJlbHNGcm9tQ29tcG9uZW50LmRlY29yYXRvcnMgPSBbXG4gICAgICAgIHsgdHlwZTogQ29tcG9uZW50LCBhcmdzOiBbe1xuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0b3I6ICdrZW5kby1jaGFydC1uYXZpZ2F0b3Itc2VyaWVzLWl0ZW0tbGFiZWxzLWZyb20nLFxuICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZTogJydcbiAgICAgICAgICAgICAgICB9LF0gfSxcbiAgICBdO1xuICAgIC8qKiBAbm9jb2xsYXBzZSAqL1xuICAgIE5hdmlnYXRvclNlcmllc0xhYmVsc0Zyb21Db21wb25lbnQuY3RvclBhcmFtZXRlcnMgPSBmdW5jdGlvbiAoKSB7IHJldHVybiBbXG4gICAgICAgIHsgdHlwZTogQ29uZmlndXJhdGlvblNlcnZpY2UgfVxuICAgIF07IH07XG4gICAgcmV0dXJuIE5hdmlnYXRvclNlcmllc0xhYmVsc0Zyb21Db21wb25lbnQ7XG59KFNlcmllc0xhYmVsc0Zyb21Db21wb25lbnQpKTtcblxuLyoqXG4gKiBUaGUgYHRvYCBsYWJlbCBjb25maWd1cmF0aW9uIG9mIHRoZSBTdG9ja0NoYXJ0IG5hdmlnYXRvciBzZXJpZXMuXG4gKi9cbnZhciBOYXZpZ2F0b3JTZXJpZXNMYWJlbHNUb0NvbXBvbmVudCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoTmF2aWdhdG9yU2VyaWVzTGFiZWxzVG9Db21wb25lbnQsIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gTmF2aWdhdG9yU2VyaWVzTGFiZWxzVG9Db21wb25lbnQoY29uZmlndXJhdGlvblNlcnZpY2UpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgY29uZmlndXJhdGlvblNlcnZpY2UpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlID0gY29uZmlndXJhdGlvblNlcnZpY2U7XG4gICAgICAgIF90aGlzLm1hcmtBc1Zpc2libGUoKTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBOYXZpZ2F0b3JTZXJpZXNMYWJlbHNUb0NvbXBvbmVudC5kZWNvcmF0b3JzID0gW1xuICAgICAgICB7IHR5cGU6IENvbXBvbmVudCwgYXJnczogW3tcbiAgICAgICAgICAgICAgICAgICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdG9yOiAna2VuZG8tY2hhcnQtbmF2aWdhdG9yLXNlcmllcy1pdGVtLWxhYmVscy10bycsXG4gICAgICAgICAgICAgICAgICAgIHRlbXBsYXRlOiAnJ1xuICAgICAgICAgICAgICAgIH0sXSB9LFxuICAgIF07XG4gICAgLyoqIEBub2NvbGxhcHNlICovXG4gICAgTmF2aWdhdG9yU2VyaWVzTGFiZWxzVG9Db21wb25lbnQuY3RvclBhcmFtZXRlcnMgPSBmdW5jdGlvbiAoKSB7IHJldHVybiBbXG4gICAgICAgIHsgdHlwZTogQ29uZmlndXJhdGlvblNlcnZpY2UgfVxuICAgIF07IH07XG4gICAgcmV0dXJuIE5hdmlnYXRvclNlcmllc0xhYmVsc1RvQ29tcG9uZW50O1xufShTZXJpZXNMYWJlbHNUb0NvbXBvbmVudCkpO1xuXG4vKipcbiAqIFRoZSBtYXJrZXIgY29uZmlndXJhdGlvbiBvZiB0aGUgU3RvY2tDaGFydCBuYXZpZ2F0b3Igc2VyaWVzLlxuICovXG52YXIgTmF2aWdhdG9yU2VyaWVzTWFya2Vyc0NvbXBvbmVudCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoTmF2aWdhdG9yU2VyaWVzTWFya2Vyc0NvbXBvbmVudCwgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBOYXZpZ2F0b3JTZXJpZXNNYXJrZXJzQ29tcG9uZW50KGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsIGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5jb25maWd1cmF0aW9uU2VydmljZSA9IGNvbmZpZ3VyYXRpb25TZXJ2aWNlO1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIE5hdmlnYXRvclNlcmllc01hcmtlcnNDb21wb25lbnQuZGVjb3JhdG9ycyA9IFtcbiAgICAgICAgeyB0eXBlOiBDb21wb25lbnQsIGFyZ3M6IFt7XG4gICAgICAgICAgICAgICAgICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RvcjogJ2tlbmRvLWNoYXJ0LW5hdmlnYXRvci1zZXJpZXMtaXRlbS1tYXJrZXJzJyxcbiAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGU6ICcnXG4gICAgICAgICAgICAgICAgfSxdIH0sXG4gICAgXTtcbiAgICAvKiogQG5vY29sbGFwc2UgKi9cbiAgICBOYXZpZ2F0b3JTZXJpZXNNYXJrZXJzQ29tcG9uZW50LmN0b3JQYXJhbWV0ZXJzID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gW1xuICAgICAgICB7IHR5cGU6IENvbmZpZ3VyYXRpb25TZXJ2aWNlIH1cbiAgICBdOyB9O1xuICAgIHJldHVybiBOYXZpZ2F0b3JTZXJpZXNNYXJrZXJzQ29tcG9uZW50O1xufShTZXJpZXNNYXJrZXJzQ29tcG9uZW50KSk7XG5cbi8qKlxuICogVGhlIG5vdGVzIGNvbmZpZ3VyYXRpb24gb2YgdGhlIFN0b2NrQ2hhcnQgbmF2aWdhdG9yIHNlcmllcy5cbiAqL1xudmFyIE5hdmlnYXRvclNlcmllc05vdGVzQ29tcG9uZW50ID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhOYXZpZ2F0b3JTZXJpZXNOb3Rlc0NvbXBvbmVudCwgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBOYXZpZ2F0b3JTZXJpZXNOb3Rlc0NvbXBvbmVudChjb25maWd1cmF0aW9uU2VydmljZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBjb25maWd1cmF0aW9uU2VydmljZSkgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuY29uZmlndXJhdGlvblNlcnZpY2UgPSBjb25maWd1cmF0aW9uU2VydmljZTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBOYXZpZ2F0b3JTZXJpZXNOb3Rlc0NvbXBvbmVudC5kZWNvcmF0b3JzID0gW1xuICAgICAgICB7IHR5cGU6IENvbXBvbmVudCwgYXJnczogW3tcbiAgICAgICAgICAgICAgICAgICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdG9yOiAna2VuZG8tY2hhcnQtbmF2aWdhdG9yLXNlcmllcy1pdGVtLW5vdGVzJyxcbiAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGU6ICcnXG4gICAgICAgICAgICAgICAgfSxdIH0sXG4gICAgXTtcbiAgICAvKiogQG5vY29sbGFwc2UgKi9cbiAgICBOYXZpZ2F0b3JTZXJpZXNOb3Rlc0NvbXBvbmVudC5jdG9yUGFyYW1ldGVycyA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIFtcbiAgICAgICAgeyB0eXBlOiBDb25maWd1cmF0aW9uU2VydmljZSB9XG4gICAgXTsgfTtcbiAgICByZXR1cm4gTmF2aWdhdG9yU2VyaWVzTm90ZXNDb21wb25lbnQ7XG59KFNlcmllc05vdGVzQ29tcG9uZW50KSk7XG5cbi8qKlxuICogVGhlIGljb24gb2YgdGhlIG5vdGVzLlxuICovXG52YXIgTmF2aWdhdG9yU2VyaWVzTm90ZXNJY29uQ29tcG9uZW50ID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhOYXZpZ2F0b3JTZXJpZXNOb3Rlc0ljb25Db21wb25lbnQsIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gTmF2aWdhdG9yU2VyaWVzTm90ZXNJY29uQ29tcG9uZW50KGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsIGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5jb25maWd1cmF0aW9uU2VydmljZSA9IGNvbmZpZ3VyYXRpb25TZXJ2aWNlO1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIE5hdmlnYXRvclNlcmllc05vdGVzSWNvbkNvbXBvbmVudC5kZWNvcmF0b3JzID0gW1xuICAgICAgICB7IHR5cGU6IENvbXBvbmVudCwgYXJnczogW3tcbiAgICAgICAgICAgICAgICAgICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdG9yOiAna2VuZG8tY2hhcnQtbmF2aWdhdG9yLXNlcmllcy1pdGVtLW5vdGVzLWljb24nLFxuICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZTogJydcbiAgICAgICAgICAgICAgICB9LF0gfSxcbiAgICBdO1xuICAgIC8qKiBAbm9jb2xsYXBzZSAqL1xuICAgIE5hdmlnYXRvclNlcmllc05vdGVzSWNvbkNvbXBvbmVudC5jdG9yUGFyYW1ldGVycyA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIFtcbiAgICAgICAgeyB0eXBlOiBDb25maWd1cmF0aW9uU2VydmljZSB9XG4gICAgXTsgfTtcbiAgICByZXR1cm4gTmF2aWdhdG9yU2VyaWVzTm90ZXNJY29uQ29tcG9uZW50O1xufShTZXJpZXNOb3Rlc0ljb25Db21wb25lbnQpKTtcblxuLyoqXG4gKiBUaGUgbGFiZWwgb2YgdGhlIG5vdGVzLlxuICovXG52YXIgTmF2aWdhdG9yU2VyaWVzTm90ZXNMYWJlbENvbXBvbmVudCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoTmF2aWdhdG9yU2VyaWVzTm90ZXNMYWJlbENvbXBvbmVudCwgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBOYXZpZ2F0b3JTZXJpZXNOb3Rlc0xhYmVsQ29tcG9uZW50KGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsIGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5jb25maWd1cmF0aW9uU2VydmljZSA9IGNvbmZpZ3VyYXRpb25TZXJ2aWNlO1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIE5hdmlnYXRvclNlcmllc05vdGVzTGFiZWxDb21wb25lbnQuZGVjb3JhdG9ycyA9IFtcbiAgICAgICAgeyB0eXBlOiBDb21wb25lbnQsIGFyZ3M6IFt7XG4gICAgICAgICAgICAgICAgICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RvcjogJ2tlbmRvLWNoYXJ0LW5hdmlnYXRvci1zZXJpZXMtaXRlbS1ub3Rlcy1sYWJlbCcsXG4gICAgICAgICAgICAgICAgICAgIHRlbXBsYXRlOiAnJ1xuICAgICAgICAgICAgICAgIH0sXSB9LFxuICAgIF07XG4gICAgLyoqIEBub2NvbGxhcHNlICovXG4gICAgTmF2aWdhdG9yU2VyaWVzTm90ZXNMYWJlbENvbXBvbmVudC5jdG9yUGFyYW1ldGVycyA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIFtcbiAgICAgICAgeyB0eXBlOiBDb25maWd1cmF0aW9uU2VydmljZSB9XG4gICAgXTsgfTtcbiAgICByZXR1cm4gTmF2aWdhdG9yU2VyaWVzTm90ZXNMYWJlbENvbXBvbmVudDtcbn0oU2VyaWVzTm90ZXNMYWJlbENvbXBvbmVudCkpO1xuXG4vKipcbiAqIFRoZSBvdXRsaWVycyBjb25maWd1cmF0aW9uIG9mIHRoZSBTdG9ja0NoYXJ0IG5hdmlnYXRvciBzZXJpZXMuIEFwcGxpZXMgdG8gbWlsZCBvdXRsaWVycy5cbiAqL1xudmFyIE5hdmlnYXRvclNlcmllc091dGxpZXJzQ29tcG9uZW50ID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhOYXZpZ2F0b3JTZXJpZXNPdXRsaWVyc0NvbXBvbmVudCwgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBOYXZpZ2F0b3JTZXJpZXNPdXRsaWVyc0NvbXBvbmVudChjb25maWd1cmF0aW9uU2VydmljZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBjb25maWd1cmF0aW9uU2VydmljZSkgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuY29uZmlndXJhdGlvblNlcnZpY2UgPSBjb25maWd1cmF0aW9uU2VydmljZTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBOYXZpZ2F0b3JTZXJpZXNPdXRsaWVyc0NvbXBvbmVudC5kZWNvcmF0b3JzID0gW1xuICAgICAgICB7IHR5cGU6IENvbXBvbmVudCwgYXJnczogW3tcbiAgICAgICAgICAgICAgICAgICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdG9yOiAna2VuZG8tY2hhcnQtbmF2aWdhdG9yLXNlcmllcy1pdGVtLW91dGxpZXJzJyxcbiAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGU6ICcnXG4gICAgICAgICAgICAgICAgfSxdIH0sXG4gICAgXTtcbiAgICAvKiogQG5vY29sbGFwc2UgKi9cbiAgICBOYXZpZ2F0b3JTZXJpZXNPdXRsaWVyc0NvbXBvbmVudC5jdG9yUGFyYW1ldGVycyA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIFtcbiAgICAgICAgeyB0eXBlOiBDb25maWd1cmF0aW9uU2VydmljZSB9XG4gICAgXTsgfTtcbiAgICByZXR1cm4gTmF2aWdhdG9yU2VyaWVzT3V0bGllcnNDb21wb25lbnQ7XG59KFNlcmllc091dGxpZXJzQ29tcG9uZW50KSk7XG5cbi8qKlxuICogVGhlIHRvb2x0aXAgY29uZmlndXJhdGlvbiBvZiB0aGUgU3RvY2tDaGFydCBuYXZpZ2F0b3Igc2VyaWVzLlxuICogVGhlIFN0b2NrQ2hhcnQgbmF2aWdhdG9yIHNlcmllcyB0b29sdGlwIGlzIGRpc3BsYXllZCB3aGVuIHRoZSBgbmF2aWdhdG9yLnNlcmllcy50b29sdGlwLnZpc2libGVgIG9wdGlvbiBpcyBzZXQgdG8gYHRydWVgLlxuICovXG52YXIgTmF2aWdhdG9yU2VyaWVzVG9vbHRpcENvbXBvbmVudCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoTmF2aWdhdG9yU2VyaWVzVG9vbHRpcENvbXBvbmVudCwgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBOYXZpZ2F0b3JTZXJpZXNUb29sdGlwQ29tcG9uZW50KGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsIGNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5jb25maWd1cmF0aW9uU2VydmljZSA9IGNvbmZpZ3VyYXRpb25TZXJ2aWNlO1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIE5hdmlnYXRvclNlcmllc1Rvb2x0aXBDb21wb25lbnQuZGVjb3JhdG9ycyA9IFtcbiAgICAgICAgeyB0eXBlOiBDb21wb25lbnQsIGFyZ3M6IFt7XG4gICAgICAgICAgICAgICAgICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RvcjogJ2tlbmRvLWNoYXJ0LW5hdmlnYXRvci1zZXJpZXMtaXRlbS10b29sdGlwJyxcbiAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGU6ICcnXG4gICAgICAgICAgICAgICAgfSxdIH0sXG4gICAgXTtcbiAgICAvKiogQG5vY29sbGFwc2UgKi9cbiAgICBOYXZpZ2F0b3JTZXJpZXNUb29sdGlwQ29tcG9uZW50LmN0b3JQYXJhbWV0ZXJzID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gW1xuICAgICAgICB7IHR5cGU6IENvbmZpZ3VyYXRpb25TZXJ2aWNlIH1cbiAgICBdOyB9O1xuICAgIHJldHVybiBOYXZpZ2F0b3JTZXJpZXNUb29sdGlwQ29tcG9uZW50O1xufShTZXJpZXNUb29sdGlwQ29tcG9uZW50KSk7XG5cbi8qKlxuICogQGhpZGRlblxuICovXG52YXIgU1RPQ0tfQ0hBUlRfRElSRUNUSVZFUyA9IFtcbiAgICBTdG9ja0NoYXJ0Q29tcG9uZW50LFxuICAgIE5hdmlnYXRvckNvbXBvbmVudCxcbiAgICBOYXZpZ2F0b3JDYXRlZ29yeUF4aXNDb21wb25lbnQsXG4gICAgTmF2aWdhdG9yQ2F0ZWdvcnlBeGlzQ3Jvc3NoYWlyQ29tcG9uZW50LFxuICAgIE5hdmlnYXRvckNhdGVnb3J5QXhpc0Nyb3NzaGFpclRvb2x0aXBDb21wb25lbnQsXG4gICAgTmF2aWdhdG9yQ2F0ZWdvcnlBeGlzTGFiZWxzQ29tcG9uZW50LFxuICAgIE5hdmlnYXRvckNhdGVnb3J5QXhpc05vdGVzQ29tcG9uZW50LFxuICAgIE5hdmlnYXRvckNhdGVnb3J5QXhpc05vdGVzSWNvbkNvbXBvbmVudCxcbiAgICBOYXZpZ2F0b3JDYXRlZ29yeUF4aXNOb3Rlc0xhYmVsQ29tcG9uZW50LFxuICAgIE5hdmlnYXRvckNhdGVnb3J5QXhpc1NlbGVjdENvbXBvbmVudCxcbiAgICBOYXZpZ2F0b3JDYXRlZ29yeUF4aXNUaXRsZUNvbXBvbmVudCxcbiAgICBOYXZpZ2F0b3JIaW50Q29tcG9uZW50LFxuICAgIE5hdmlnYXRvclBhbmVDb21wb25lbnQsXG4gICAgTmF2aWdhdG9yUGFuZVRpdGxlQ29tcG9uZW50LFxuICAgIE5hdmlnYXRvclNlbGVjdENvbXBvbmVudCxcbiAgICBOYXZpZ2F0b3JTZXJpZXNDb21wb25lbnQsXG4gICAgTmF2aWdhdG9yU2VyaWVzSXRlbUNvbXBvbmVudCxcbiAgICBOYXZpZ2F0b3JTZXJpZXNFcnJvckJhcnNDb21wb25lbnQsXG4gICAgTmF2aWdhdG9yU2VyaWVzRXh0cmVtZXNDb21wb25lbnQsXG4gICAgTmF2aWdhdG9yU2VyaWVzSGlnaGxpZ2h0Q29tcG9uZW50LFxuICAgIE5hdmlnYXRvclNlcmllc0xhYmVsc0NvbXBvbmVudCxcbiAgICBOYXZpZ2F0b3JTZXJpZXNMYWJlbHNGcm9tQ29tcG9uZW50LFxuICAgIE5hdmlnYXRvclNlcmllc0xhYmVsc1RvQ29tcG9uZW50LFxuICAgIE5hdmlnYXRvclNlcmllc01hcmtlcnNDb21wb25lbnQsXG4gICAgTmF2aWdhdG9yU2VyaWVzTm90ZXNDb21wb25lbnQsXG4gICAgTmF2aWdhdG9yU2VyaWVzTm90ZXNJY29uQ29tcG9uZW50LFxuICAgIE5hdmlnYXRvclNlcmllc05vdGVzTGFiZWxDb21wb25lbnQsXG4gICAgTmF2aWdhdG9yU2VyaWVzT3V0bGllcnNDb21wb25lbnQsXG4gICAgTmF2aWdhdG9yU2VyaWVzVG9vbHRpcENvbXBvbmVudFxuXTtcblxuLyogdHNsaW50OmRpc2FibGU6bm8tYWNjZXNzLW1pc3NpbmctbWVtYmVyICovXG4vKipcbiAqIFRoZSByb290IENoYXJ0IGNvbXBvbmVudC5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIGltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuICpcbiAqIF9AQ29tcG9uZW50KHtcbiAqICAgc2VsZWN0b3I6ICdteS1hcHAnLFxuICogICB0ZW1wbGF0ZTogYFxuICogICAgIDxrZW5kby1zcGFya2xpbmUgW2RhdGFdPVwiZGF0YVwiIHR5cGU9XCJjb2x1bW5cIj5cbiAqICAgICA8L2tlbmRvLXNwYXJrbGluZT5cbiAqICAgYFxuICogfSlcbiAqIGNsYXNzIEFwcENvbXBvbmVudCB7XG4gKiAgIHB1YmxpYyBkYXRhOiBhbnlbXSA9IFtcbiAqICAgICA5MzYsIDk2OCwgMTAyNSwgOTk5LCA5OTgsIDEwMTQsIDEwMTcsIDEwMTAsIDEwMTAsIDEwMDcsXG4gKiAgICAgMTAwNCwgOTg4LCA5OTAsIDk4OCwgOTg3LCA5OTUsIDk0NiwgOTU0LCA5OTEsIDk4NCxcbiAqICAgICA5NzQsIDk1NiwgOTg2LCA5MzYsIDk1NSwgMTAyMSwgMTAxMywgMTAwNSwgOTU4LCA5NTMsXG4gKiAgICAgOTUyLCA5NDAsIDkzNywgOTgwLCA5NjYsIDk2NSwgOTI4LCA5MTYsIDkxMCwgOTgwXG4gKiAgIF07XG4gKiB9XG4gKlxuICogYGBgXG4gKi9cbnZhciBTcGFya2xpbmVDb21wb25lbnQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKFNwYXJrbGluZUNvbXBvbmVudCwgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBTcGFya2xpbmVDb21wb25lbnQoY29uZmlndXJhdGlvblNlcnZpY2UsIHRoZW1lU2VydmljZSwgZWxlbWVudCwgaW50bCwgbG9jYWxpemF0aW9uU2VydmljZSwgbmdab25lLCBpbnN0YW5jZUV2ZW50U2VydmljZSwgY2hhbmdlRGV0ZWN0b3IsIHJlbmRlcmVyKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsIGNvbmZpZ3VyYXRpb25TZXJ2aWNlLCB0aGVtZVNlcnZpY2UsIGVsZW1lbnQsIGludGwsIGxvY2FsaXphdGlvblNlcnZpY2UsIG5nWm9uZSwgaW5zdGFuY2VFdmVudFNlcnZpY2UsIGNoYW5nZURldGVjdG9yLCByZW5kZXJlcikgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuY29uZmlndXJhdGlvblNlcnZpY2UgPSBjb25maWd1cmF0aW9uU2VydmljZTtcbiAgICAgICAgX3RoaXMudGhlbWVTZXJ2aWNlID0gdGhlbWVTZXJ2aWNlO1xuICAgICAgICBfdGhpcy5lbGVtZW50ID0gZWxlbWVudDtcbiAgICAgICAgX3RoaXMuaW50bCA9IGludGw7XG4gICAgICAgIF90aGlzLmxvY2FsaXphdGlvblNlcnZpY2UgPSBsb2NhbGl6YXRpb25TZXJ2aWNlO1xuICAgICAgICBfdGhpcy5uZ1pvbmUgPSBuZ1pvbmU7XG4gICAgICAgIF90aGlzLmluc3RhbmNlRXZlbnRTZXJ2aWNlID0gaW5zdGFuY2VFdmVudFNlcnZpY2U7XG4gICAgICAgIF90aGlzLmNoYW5nZURldGVjdG9yID0gY2hhbmdlRGV0ZWN0b3I7XG4gICAgICAgIF90aGlzLnJlbmRlcmVyID0gcmVuZGVyZXI7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAaGlkZGVuXG4gICAgICAgICAqL1xuICAgICAgICBfdGhpcy50b29sdGlwV3JhcHBlckNsYXNzID0gJ2stc3BhcmtsaW5lLXRvb2x0aXAtd3JhcHBlcic7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAaGlkZGVuXG4gICAgICAgICAqL1xuICAgICAgICBfdGhpcy50b29sdGlwQ29udGVudENsYXNzZXMgPSB7XG4gICAgICAgICAgICAnay1zcGFya2xpbmUtdG9vbHRpcCc6IHRydWVcbiAgICAgICAgfTtcbiAgICAgICAgX3RoaXMuaG9zdENsYXNzZXMgPSBbJ2stc3BhcmtsaW5lJywgJ2std2lkZ2V0J107XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgU3BhcmtsaW5lQ29tcG9uZW50LnByb3RvdHlwZS5jcmVhdGVJbnN0YW5jZSA9IGZ1bmN0aW9uIChlbGVtZW50LCBvYnNlcnZlcikge1xuICAgICAgICB0aGlzLmluc3RhbmNlID0gbmV3IFNwYXJrbGluZShlbGVtZW50LCBTcGFya2xpbmUubm9ybWFsaXplT3B0aW9ucyh0aGlzLm9wdGlvbnMpLCB0aGlzLnRoZW1lLCB7XG4gICAgICAgICAgICBpbnRsU2VydmljZTogdGhpcy5pbnRsLFxuICAgICAgICAgICAgb2JzZXJ2ZXI6IG9ic2VydmVyLFxuICAgICAgICAgICAgcnRsOiB0aGlzLnJ0bCxcbiAgICAgICAgICAgIHNlbmRlcjogdGhpc1xuICAgICAgICB9KTtcbiAgICB9O1xuICAgIFNwYXJrbGluZUNvbXBvbmVudC5wcm90b3R5cGUudXBkYXRlT3B0aW9ucyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdGhpcy5pbnN0YW5jZS5zZXRPcHRpb25zKFNwYXJrbGluZS5ub3JtYWxpemVPcHRpb25zKHRoaXMub3B0aW9ucykpO1xuICAgIH07XG4gICAgU3BhcmtsaW5lQ29tcG9uZW50LmRlY29yYXRvcnMgPSBbXG4gICAgICAgIHsgdHlwZTogQ29tcG9uZW50LCBhcmdzOiBbe1xuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICAgICAgICAgICAgICAgICAgZXhwb3J0QXM6ICdrZW5kb1NwYXJrbGluZScsXG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICAgICAgICAgICAgICAgICAgQ29uZmlndXJhdGlvblNlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBUb29sdGlwVGVtcGxhdGVTZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgSW5zdGFuY2VFdmVudFNlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBMb2NhbGl6YXRpb25TZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IEwxME5fUFJFRklYLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZVZhbHVlOiAna2VuZG8uY2hhcnQnXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdG9yOiAna2VuZG8tc3BhcmtsaW5lJyxcbiAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGU6IFwiXFxuICAgICAgICA8c3BhbiAjc3VyZmFjZSBjbGFzcz1cXFwiay1jaGFydC1zdXJmYWNlXFxcIj48L3NwYW4+XFxuICAgICAgICA8a2VuZG8tY2hhcnQtY3Jvc3NoYWlyLXRvb2x0aXBzLWNvbnRhaW5lciBbcG9wdXBTZXR0aW5nc109XFxcInBvcHVwU2V0dGluZ3NcXFwiPlxcbiAgICAgICAgPC9rZW5kby1jaGFydC1jcm9zc2hhaXItdG9vbHRpcHMtY29udGFpbmVyPlxcbiAgICAgICAgPGtlbmRvLWNoYXJ0LXRvb2x0aXAtcG9wdXAgW2FuaW1hdGVdPVxcXCJmYWxzZVxcXCIgW3dyYXBwZXJDbGFzc109XFxcInRvb2x0aXBXcmFwcGVyQ2xhc3NcXFwiXFxuICAgICAgICAgICAgW2NsYXNzTmFtZXNdPVxcXCJ0b29sdGlwQ29udGVudENsYXNzZXNcXFwiIChsZWF2ZSk9XFxcInRvb2x0aXBNb3VzZWxlYXZlKCRldmVudClcXFwiIFtwb3B1cFNldHRpbmdzXT1cXFwicG9wdXBTZXR0aW5nc1xcXCI+XFxuICAgICAgICA8L2tlbmRvLWNoYXJ0LXRvb2x0aXAtcG9wdXA+XFxuICAgICAgICA8a2VuZG8tcmVzaXplLXNlbnNvciAocmVzaXplKT1cXFwib25SZXNpemUoJGV2ZW50KVxcXCI+PC9rZW5kby1yZXNpemUtc2Vuc29yPlxcbiAgICBcIlxuICAgICAgICAgICAgICAgIH0sXSB9LFxuICAgIF07XG4gICAgLyoqIEBub2NvbGxhcHNlICovXG4gICAgU3BhcmtsaW5lQ29tcG9uZW50LmN0b3JQYXJhbWV0ZXJzID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gW1xuICAgICAgICB7IHR5cGU6IENvbmZpZ3VyYXRpb25TZXJ2aWNlIH0sXG4gICAgICAgIHsgdHlwZTogVGhlbWVTZXJ2aWNlIH0sXG4gICAgICAgIHsgdHlwZTogRWxlbWVudFJlZiB9LFxuICAgICAgICB7IHR5cGU6IEludGxTZXJ2aWNlIH0sXG4gICAgICAgIHsgdHlwZTogTG9jYWxpemF0aW9uU2VydmljZSB9LFxuICAgICAgICB7IHR5cGU6IE5nWm9uZSB9LFxuICAgICAgICB7IHR5cGU6IEluc3RhbmNlRXZlbnRTZXJ2aWNlIH0sXG4gICAgICAgIHsgdHlwZTogQ2hhbmdlRGV0ZWN0b3JSZWYgfSxcbiAgICAgICAgeyB0eXBlOiBSZW5kZXJlcjIgfVxuICAgIF07IH07XG4gICAgU3BhcmtsaW5lQ29tcG9uZW50LnByb3BEZWNvcmF0b3JzID0ge1xuICAgICAgICB0eXBlOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgZGF0YTogW3sgdHlwZTogSW5wdXQgfV1cbiAgICB9O1xuICAgIHJldHVybiBTcGFya2xpbmVDb21wb25lbnQ7XG59KENoYXJ0Q29tcG9uZW50KSk7XG5cbi8qKlxuICogQGhpZGRlblxuICovXG52YXIgU1BBUktMSU5FX0RJUkVDVElWRVMgPSBbXG4gICAgU3BhcmtsaW5lQ29tcG9uZW50XG5dO1xuXG4vKipcbiAqIEEgW21vZHVsZV0oe3sgc2l0ZS5kYXRhLnVybHMuYW5ndWxhclsnbmdtb2R1bGVhcGknXSB9fSkgdGhhdCBpbmNsdWRlcyB0aGUgQ2hhcnQgY29tcG9uZW50IGFuZCBkaXJlY3RpdmVzLlxuICpcbiAqIEltcG9ydHMgdGhlIENoYXJ0TW9kdWxlIGludG8geW91ciBhcHBsaWNhdGlvblxuICogW3Jvb3QgbW9kdWxlXSh7eyBzaXRlLmRhdGEudXJsLmFuZ3VsYXJbJ25nbW9kdWxlcyddIH19I2FuZ3VsYXItbW9kdWxhcml0eSkgb3IgYW55IG90aGVyIHN1Yi1tb2R1bGVcbiAqIHRoYXQgd2lsbCB1c2UgdGhlIENoYXJ0IGNvbXBvbmVudC5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHMtbm8tcnVuXG4gKiBpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuICogaW1wb3J0IHsgQnJvd3Nlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuICogaW1wb3J0IHsgQ2hhcnRNb2R1bGUgfSBmcm9tICdAcHJvZ3Jlc3Mva2VuZG8tYW5ndWxhci1jaGFydHMnO1xuICogaW1wb3J0IHsgQXBwQ29tcG9uZW50IH0gZnJvbSAnLi9hcHAuY29tcG9uZW50JztcbiAqXG4gKiBfQE5nTW9kdWxlKHtcbiAqICAgICBib290c3RyYXA6ICAgIFtBcHBDb21wb25lbnRdLFxuICogICAgIGRlY2xhcmF0aW9uczogW0FwcENvbXBvbmVudF0sXG4gKiAgICAgaW1wb3J0czogICAgICBbQnJvd3Nlck1vZHVsZSwgQ2hhcnRNb2R1bGVdXG4gKiB9KVxuICogZXhwb3J0IGNsYXNzIEFwcE1vZHVsZSB7XG4gKiB9XG4gKiBgYGBcbiAqL1xudmFyIENoYXJ0TW9kdWxlID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIENoYXJ0TW9kdWxlKCkge1xuICAgIH1cbiAgICBDaGFydE1vZHVsZS5kZWNvcmF0b3JzID0gW1xuICAgICAgICB7IHR5cGU6IE5nTW9kdWxlLCBhcmdzOiBbe1xuICAgICAgICAgICAgICAgICAgICBkZWNsYXJhdGlvbnM6IFtDSEFSVF9ESVJFQ1RJVkVTXSxcbiAgICAgICAgICAgICAgICAgICAgZXhwb3J0czogW0NIQVJUX0RJUkVDVElWRVNdLFxuICAgICAgICAgICAgICAgICAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBQb3B1cE1vZHVsZSwgUmVzaXplU2Vuc29yTW9kdWxlXSxcbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICBUaGVtZVNlcnZpY2VcbiAgICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgIH0sXSB9LFxuICAgIF07XG4gICAgcmV0dXJuIENoYXJ0TW9kdWxlO1xufSgpKTtcblxuLyoqXG4gKiBBIFttb2R1bGVdKHt7IHNpdGUuZGF0YS51cmxzLmFuZ3VsYXJbJ25nbW9kdWxlYXBpJ10gfX0pIHRoYXQgaW5jbHVkZXMgdGhlIFN0b2NrQ2hhcnQgY29tcG9uZW50IGFuZCBkaXJlY3RpdmVzLlxuICpcbiAqIEltcG9ydHMgdGhlIFN0b2NrQ2hhcnRNb2R1bGUgaW50byB5b3VyIGFwcGxpY2F0aW9uXG4gKiBbcm9vdCBtb2R1bGVdKHt7IHNpdGUuZGF0YS51cmxzLmFuZ3VsYXJbJ25nbW9kdWxlcyddIH19I2FuZ3VsYXItbW9kdWxhcml0eSkgb3IgYW55IG90aGVyIHN1Yi1tb2R1bGVcbiAqIHRoYXQgd2lsbCB1c2UgdGhlIFN0b2NrQ2hhcnQgY29tcG9uZW50LlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0cy1uby1ydW5cbiAqIGltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG4gKiBpbXBvcnQgeyBCcm93c2VyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG4gKiBpbXBvcnQgeyBTdG9ja0NoYXJ0TW9kdWxlIH0gZnJvbSAnQHByb2dyZXNzL2tlbmRvLWFuZ3VsYXItY2hhcnRzJztcbiAqIGltcG9ydCB7IEFwcENvbXBvbmVudCB9IGZyb20gJy4vYXBwLmNvbXBvbmVudCc7XG4gKlxuICogX0BOZ01vZHVsZSh7XG4gKiAgICAgYm9vdHN0cmFwOiAgICBbQXBwQ29tcG9uZW50XSxcbiAqICAgICBkZWNsYXJhdGlvbnM6IFtBcHBDb21wb25lbnRdLFxuICogICAgIGltcG9ydHM6ICAgICAgW0Jyb3dzZXJNb2R1bGUsIFN0b2NrQ2hhcnRNb2R1bGVdXG4gKiB9KVxuICogZXhwb3J0IGNsYXNzIEFwcE1vZHVsZSB7XG4gKiB9XG4gKiBgYGBcbiAqL1xudmFyIFN0b2NrQ2hhcnRNb2R1bGUgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gU3RvY2tDaGFydE1vZHVsZSgpIHtcbiAgICB9XG4gICAgU3RvY2tDaGFydE1vZHVsZS5kZWNvcmF0b3JzID0gW1xuICAgICAgICB7IHR5cGU6IE5nTW9kdWxlLCBhcmdzOiBbe1xuICAgICAgICAgICAgICAgICAgICBkZWNsYXJhdGlvbnM6IFtTVE9DS19DSEFSVF9ESVJFQ1RJVkVTXSxcbiAgICAgICAgICAgICAgICAgICAgZXhwb3J0czogW1NUT0NLX0NIQVJUX0RJUkVDVElWRVMsIENoYXJ0TW9kdWxlXSxcbiAgICAgICAgICAgICAgICAgICAgaW1wb3J0czogW0NoYXJ0TW9kdWxlLCBDb21tb25Nb2R1bGUsIFBvcHVwTW9kdWxlLCBSZXNpemVTZW5zb3JNb2R1bGVdXG4gICAgICAgICAgICAgICAgfSxdIH0sXG4gICAgXTtcbiAgICByZXR1cm4gU3RvY2tDaGFydE1vZHVsZTtcbn0oKSk7XG5cbi8qKlxuICogQSBbbW9kdWxlXSh7eyBzaXRlLmRhdGEudXJscy5hbmd1bGFyWyduZ21vZHVsZWFwaSddIH19KSB0aGF0IGluY2x1ZGVzIHRoZSBTcGFya2xpbmUgY29tcG9uZW50IGFuZCBkaXJlY3RpdmVzLlxuICpcbiAqIEltcG9ydHMgdGhlIFNwYXJrbGluZU1vZHVsZSBpbnRvIHlvdXIgYXBwbGljYXRpb25cbiAqIFtyb290IG1vZHVsZV0oe3sgc2l0ZS5kYXRhLnVybHMuYW5ndWxhclsnbmdtb2R1bGVzJ10gfX0jYW5ndWxhci1tb2R1bGFyaXR5KSBvciBhbnkgb3RoZXIgc3ViLW1vZHVsZVxuICogdGhhdCB3aWxsIHVzZSB0aGUgU3BhcmtsaW5lIGNvbXBvbmVudC5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHMtbm8tcnVuXG4gKiBpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuICogaW1wb3J0IHsgQnJvd3Nlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuICogaW1wb3J0IHsgU3BhcmtsaW5lTW9kdWxlIH0gZnJvbSAnQHByb2dyZXNzL2tlbmRvLWFuZ3VsYXItY2hhcnRzJztcbiAqIGltcG9ydCB7IEFwcENvbXBvbmVudCB9IGZyb20gJy4vYXBwLmNvbXBvbmVudCc7XG4gKlxuICogX0BOZ01vZHVsZSh7XG4gKiAgICAgYm9vdHN0cmFwOiAgICBbQXBwQ29tcG9uZW50XSxcbiAqICAgICBkZWNsYXJhdGlvbnM6IFtBcHBDb21wb25lbnRdLFxuICogICAgIGltcG9ydHM6ICAgICAgW0Jyb3dzZXJNb2R1bGUsIFNwYXJrbGluZU1vZHVsZV1cbiAqIH0pXG4gKiBleHBvcnQgY2xhc3MgQXBwTW9kdWxlIHtcbiAqIH1cbiAqIGBgYFxuICovXG52YXIgU3BhcmtsaW5lTW9kdWxlID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIFNwYXJrbGluZU1vZHVsZSgpIHtcbiAgICB9XG4gICAgU3BhcmtsaW5lTW9kdWxlLmRlY29yYXRvcnMgPSBbXG4gICAgICAgIHsgdHlwZTogTmdNb2R1bGUsIGFyZ3M6IFt7XG4gICAgICAgICAgICAgICAgICAgIGRlY2xhcmF0aW9uczogW1NQQVJLTElORV9ESVJFQ1RJVkVTXSxcbiAgICAgICAgICAgICAgICAgICAgZXhwb3J0czogW1NQQVJLTElORV9ESVJFQ1RJVkVTLCBDaGFydE1vZHVsZV0sXG4gICAgICAgICAgICAgICAgICAgIGltcG9ydHM6IFtDaGFydE1vZHVsZSwgQ29tbW9uTW9kdWxlLCBQb3B1cE1vZHVsZSwgUmVzaXplU2Vuc29yTW9kdWxlXVxuICAgICAgICAgICAgICAgIH0sXSB9LFxuICAgIF07XG4gICAgcmV0dXJuIFNwYXJrbGluZU1vZHVsZTtcbn0oKSk7XG5cbi8qKlxuICogQSBbbW9kdWxlXSh7eyBzaXRlLmRhdGEudXJscy5hbmd1bGFyWyduZ21vZHVsZWFwaSddIH19KSB0aGF0IGluY2x1ZGVzIGFsbCBDaGFydCBjb21wb25lbnRzIGFuZCBkaXJlY3RpdmVzLlxuICpcbiAqIEltcG9ydHMgdGhlIENoYXJ0c01vZHVsZSBpbnRvIHlvdXIgYXBwbGljYXRpb25cbiAqIFtyb290IG1vZHVsZV0oe3sgc2l0ZS5kYXRhLnVybHMuYW5ndWxhclsnbmdtb2R1bGVzJ10gfX0jYW5ndWxhci1tb2R1bGFyaXR5KSBvciBhbnkgb3RoZXIgc3ViLW1vZHVsZVxuICogdGhhdCB3aWxsIHVzZSB0aGUgQ2hhcnRzIGNvbXBvbmVudHMuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzLW5vLXJ1blxuICogaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbiAqIGltcG9ydCB7IEJyb3dzZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbiAqIGltcG9ydCB7IENoYXJ0c01vZHVsZSB9IGZyb20gJ0Bwcm9ncmVzcy9rZW5kby1hbmd1bGFyLWNoYXJ0cyc7XG4gKiBpbXBvcnQgeyBBcHBDb21wb25lbnQgfSBmcm9tICcuL2FwcC5jb21wb25lbnQnO1xuICpcbiAqIF9ATmdNb2R1bGUoe1xuICogICAgIGJvb3RzdHJhcDogICAgW0FwcENvbXBvbmVudF0sXG4gKiAgICAgZGVjbGFyYXRpb25zOiBbQXBwQ29tcG9uZW50XSxcbiAqICAgICBpbXBvcnRzOiAgICAgIFtCcm93c2VyTW9kdWxlLCBDaGFydHNNb2R1bGVdXG4gKiB9KVxuICogZXhwb3J0IGNsYXNzIEFwcE1vZHVsZSB7XG4gKiB9XG4gKiBgYGBcbiAqL1xudmFyIENoYXJ0c01vZHVsZSA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBDaGFydHNNb2R1bGUoKSB7XG4gICAgfVxuICAgIENoYXJ0c01vZHVsZS5kZWNvcmF0b3JzID0gW1xuICAgICAgICB7IHR5cGU6IE5nTW9kdWxlLCBhcmdzOiBbe1xuICAgICAgICAgICAgICAgICAgICBleHBvcnRzOiBbQ2hhcnRNb2R1bGUsIFNwYXJrbGluZU1vZHVsZSwgU3RvY2tDaGFydE1vZHVsZV1cbiAgICAgICAgICAgICAgICB9LF0gfSxcbiAgICBdO1xuICAgIHJldHVybiBDaGFydHNNb2R1bGU7XG59KCkpO1xuXG4vKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCB7IENoYXJ0Q29tcG9uZW50R2VuZXJhdGVkLCBBeGlzRGVmYXVsdHNDb21wb25lbnRHZW5lcmF0ZWQsIEF4aXNEZWZhdWx0c0Nyb3NzaGFpckNvbXBvbmVudEdlbmVyYXRlZCwgQXhpc0RlZmF1bHRzQ3Jvc3NoYWlyVG9vbHRpcENvbXBvbmVudEdlbmVyYXRlZCwgQXhpc0RlZmF1bHRzTGFiZWxzQ29tcG9uZW50R2VuZXJhdGVkLCBBeGlzRGVmYXVsdHNUaXRsZUNvbXBvbmVudEdlbmVyYXRlZCwgQ2F0ZWdvcnlBeGlzSXRlbUNvbXBvbmVudEdlbmVyYXRlZCwgQ2F0ZWdvcnlBeGlzQ3Jvc3NoYWlyQ29tcG9uZW50R2VuZXJhdGVkLCBDYXRlZ29yeUF4aXNDcm9zc2hhaXJUb29sdGlwQ29tcG9uZW50R2VuZXJhdGVkLCBDYXRlZ29yeUF4aXNMYWJlbHNDb21wb25lbnRHZW5lcmF0ZWQsIENhdGVnb3J5QXhpc05vdGVzQ29tcG9uZW50R2VuZXJhdGVkLCBDYXRlZ29yeUF4aXNOb3Rlc0ljb25Db21wb25lbnRHZW5lcmF0ZWQsIENhdGVnb3J5QXhpc05vdGVzTGFiZWxDb21wb25lbnRHZW5lcmF0ZWQsIENhdGVnb3J5QXhpc1NlbGVjdENvbXBvbmVudEdlbmVyYXRlZCwgQ2F0ZWdvcnlBeGlzVGl0bGVDb21wb25lbnRHZW5lcmF0ZWQsIENhdGVnb3J5QXhpc0NvbXBvbmVudEdlbmVyYXRlZCwgQ2hhcnRBcmVhQ29tcG9uZW50R2VuZXJhdGVkLCBEb251dENlbnRlclRlbXBsYXRlRGlyZWN0aXZlLCBMZWdlbmRDb21wb25lbnRHZW5lcmF0ZWQsIExlZ2VuZEluYWN0aXZlSXRlbXNDb21wb25lbnRHZW5lcmF0ZWQsIExlZ2VuZEl0ZW1Db21wb25lbnRHZW5lcmF0ZWQsIFBhbmVDb21wb25lbnRHZW5lcmF0ZWQsIFBhbmVzVGl0bGVDb21wb25lbnRHZW5lcmF0ZWQsIFBhbmVzQ29tcG9uZW50R2VuZXJhdGVkLCBQbG90QXJlYUNvbXBvbmVudEdlbmVyYXRlZCwgU2VyaWVzRGVmYXVsdHNDb21wb25lbnRHZW5lcmF0ZWQsIFNlcmllc0RlZmF1bHRzTGFiZWxzQ29tcG9uZW50R2VuZXJhdGVkLCBTZXJpZXNEZWZhdWx0c0xhYmVsc0Zyb21Db21wb25lbnRHZW5lcmF0ZWQsIFNlcmllc0RlZmF1bHRzTGFiZWxzVG9Db21wb25lbnRHZW5lcmF0ZWQsIFNlcmllc0RlZmF1bHRzTm90ZXNDb21wb25lbnRHZW5lcmF0ZWQsIFNlcmllc0RlZmF1bHRzTm90ZXNJY29uQ29tcG9uZW50R2VuZXJhdGVkLCBTZXJpZXNEZWZhdWx0c05vdGVzTGFiZWxDb21wb25lbnRHZW5lcmF0ZWQsIFNlcmllc0RlZmF1bHRzVG9vbHRpcENvbXBvbmVudEdlbmVyYXRlZCwgU2VyaWVzSXRlbUNvbXBvbmVudEdlbmVyYXRlZCwgU2VyaWVzRXJyb3JCYXJzQ29tcG9uZW50R2VuZXJhdGVkLCBTZXJpZXNFeHRyZW1lc0NvbXBvbmVudEdlbmVyYXRlZCwgU2VyaWVzSGlnaGxpZ2h0Q29tcG9uZW50R2VuZXJhdGVkLCBTZXJpZXNMYWJlbHNDb21wb25lbnRHZW5lcmF0ZWQsIFNlcmllc0xhYmVsc0Zyb21Db21wb25lbnRHZW5lcmF0ZWQsIFNlcmllc0xhYmVsc1RvQ29tcG9uZW50R2VuZXJhdGVkLCBTZXJpZXNNYXJrZXJzQ29tcG9uZW50R2VuZXJhdGVkLCBTZXJpZXNOb3Rlc0NvbXBvbmVudEdlbmVyYXRlZCwgU2VyaWVzTm90ZXNJY29uQ29tcG9uZW50R2VuZXJhdGVkLCBTZXJpZXNOb3Rlc0xhYmVsQ29tcG9uZW50R2VuZXJhdGVkLCBTZXJpZXNPdXRsaWVyc0NvbXBvbmVudEdlbmVyYXRlZCwgU2VyaWVzVG9vbHRpcENvbXBvbmVudEdlbmVyYXRlZCwgU2VyaWVzQ29tcG9uZW50R2VuZXJhdGVkLCBUaXRsZUNvbXBvbmVudEdlbmVyYXRlZCwgVG9vbHRpcENvbXBvbmVudEdlbmVyYXRlZCwgQmFzZVRvb2x0aXAsIGJvZHlGYWN0b3J5LCBDcm9zc2hhaXJUb29sdGlwQ29tcG9uZW50LCBTZXJpZXNUb29sdGlwVGVtcGxhdGVEaXJlY3RpdmUsIFNoYXJlZFRvb2x0aXBUZW1wbGF0ZURpcmVjdGl2ZSwgVmFsdWVBeGlzSXRlbUNvbXBvbmVudEdlbmVyYXRlZCwgVmFsdWVBeGlzQ3Jvc3NoYWlyQ29tcG9uZW50R2VuZXJhdGVkLCBWYWx1ZUF4aXNDcm9zc2hhaXJUb29sdGlwQ29tcG9uZW50R2VuZXJhdGVkLCBWYWx1ZUF4aXNMYWJlbHNDb21wb25lbnRHZW5lcmF0ZWQsIFZhbHVlQXhpc05vdGVzQ29tcG9uZW50R2VuZXJhdGVkLCBWYWx1ZUF4aXNOb3Rlc0ljb25Db21wb25lbnRHZW5lcmF0ZWQsIFZhbHVlQXhpc05vdGVzTGFiZWxDb21wb25lbnRHZW5lcmF0ZWQsIFZhbHVlQXhpc1RpdGxlQ29tcG9uZW50R2VuZXJhdGVkLCBWYWx1ZUF4aXNDb21wb25lbnRHZW5lcmF0ZWQsIFhBeGlzSXRlbUNvbXBvbmVudEdlbmVyYXRlZCwgWEF4aXNDcm9zc2hhaXJDb21wb25lbnRHZW5lcmF0ZWQsIFhBeGlzQ3Jvc3NoYWlyVG9vbHRpcENvbXBvbmVudEdlbmVyYXRlZCwgWEF4aXNMYWJlbHNDb21wb25lbnRHZW5lcmF0ZWQsIFhBeGlzTm90ZXNDb21wb25lbnRHZW5lcmF0ZWQsIFhBeGlzTm90ZXNJY29uQ29tcG9uZW50R2VuZXJhdGVkLCBYQXhpc05vdGVzTGFiZWxDb21wb25lbnRHZW5lcmF0ZWQsIFhBeGlzVGl0bGVDb21wb25lbnRHZW5lcmF0ZWQsIFhBeGlzQ29tcG9uZW50R2VuZXJhdGVkLCBZQXhpc0l0ZW1Db21wb25lbnRHZW5lcmF0ZWQsIFlBeGlzQ3Jvc3NoYWlyQ29tcG9uZW50R2VuZXJhdGVkLCBZQXhpc0Nyb3NzaGFpclRvb2x0aXBDb21wb25lbnRHZW5lcmF0ZWQsIFlBeGlzTGFiZWxzQ29tcG9uZW50R2VuZXJhdGVkLCBZQXhpc05vdGVzQ29tcG9uZW50R2VuZXJhdGVkLCBZQXhpc05vdGVzSWNvbkNvbXBvbmVudEdlbmVyYXRlZCwgWUF4aXNOb3Rlc0xhYmVsQ29tcG9uZW50R2VuZXJhdGVkLCBZQXhpc1RpdGxlQ29tcG9uZW50R2VuZXJhdGVkLCBZQXhpc0NvbXBvbmVudEdlbmVyYXRlZCwgWm9vbWFibGVDb21wb25lbnRHZW5lcmF0ZWQsIENvbGxlY3Rpb25JdGVtQ29tcG9uZW50LCBDb2xsZWN0aW9uQ29tcG9uZW50LCBDb2xsZWN0aW9uU2VydmljZSwgQ29uZmlndXJhdGlvblNlcnZpY2UsIFBSRUZJWCwgUHJlZml4Q29uZmlndXJhdGlvblNlcnZpY2UsIFJvb3RDb25maWd1cmF0aW9uU2VydmljZSwgU2V0dGluZ3NDb21wb25lbnQsIFRoZW1lU2VydmljZSwgVG9vbHRpcFRlbXBsYXRlU2VydmljZSwgQmFzZUV2ZW50LCBJbnN0YW5jZUV2ZW50U2VydmljZSwgTGVnZW5kRXZlbnQsIE5vdGVFdmVudCwgUHJldmVudGFibGVFdmVudCwgU2VyaWVzRXZlbnQsIFN0b2NrSW5zdGFuY2VFdmVudFNlcnZpY2UsIE5hdmlnYXRvckNvbXBvbmVudCwgTmF2aWdhdG9yQ2F0ZWdvcnlBeGlzQ29tcG9uZW50LCBOYXZpZ2F0b3JDYXRlZ29yeUF4aXNDcm9zc2hhaXJDb21wb25lbnQsIE5hdmlnYXRvckNhdGVnb3J5QXhpc0Nyb3NzaGFpclRvb2x0aXBDb21wb25lbnQsIE5hdmlnYXRvckNhdGVnb3J5QXhpc0xhYmVsc0NvbXBvbmVudCwgTmF2aWdhdG9yQ2F0ZWdvcnlBeGlzTm90ZXNDb21wb25lbnQsIE5hdmlnYXRvckNhdGVnb3J5QXhpc05vdGVzSWNvbkNvbXBvbmVudCwgTmF2aWdhdG9yQ2F0ZWdvcnlBeGlzTm90ZXNMYWJlbENvbXBvbmVudCwgTmF2aWdhdG9yQ2F0ZWdvcnlBeGlzU2VsZWN0Q29tcG9uZW50LCBOYXZpZ2F0b3JDYXRlZ29yeUF4aXNUaXRsZUNvbXBvbmVudCwgTmF2aWdhdG9ySGludENvbXBvbmVudCwgTmF2aWdhdG9yUGFuZUNvbXBvbmVudCwgTmF2aWdhdG9yUGFuZVRpdGxlQ29tcG9uZW50LCBOYXZpZ2F0b3JTZWxlY3RDb21wb25lbnQsIE5hdmlnYXRvclNlcmllc0l0ZW1Db21wb25lbnQsIE5hdmlnYXRvclNlcmllc0Vycm9yQmFyc0NvbXBvbmVudCwgTmF2aWdhdG9yU2VyaWVzRXh0cmVtZXNDb21wb25lbnQsIE5hdmlnYXRvclNlcmllc0hpZ2hsaWdodENvbXBvbmVudCwgTmF2aWdhdG9yU2VyaWVzTGFiZWxzQ29tcG9uZW50LCBOYXZpZ2F0b3JTZXJpZXNMYWJlbHNGcm9tQ29tcG9uZW50LCBOYXZpZ2F0b3JTZXJpZXNMYWJlbHNUb0NvbXBvbmVudCwgTmF2aWdhdG9yU2VyaWVzTWFya2Vyc0NvbXBvbmVudCwgTmF2aWdhdG9yU2VyaWVzTm90ZXNDb21wb25lbnQsIE5hdmlnYXRvclNlcmllc05vdGVzSWNvbkNvbXBvbmVudCwgTmF2aWdhdG9yU2VyaWVzTm90ZXNMYWJlbENvbXBvbmVudCwgTmF2aWdhdG9yU2VyaWVzT3V0bGllcnNDb21wb25lbnQsIE5hdmlnYXRvclNlcmllc1Rvb2x0aXBDb21wb25lbnQsIE5hdmlnYXRvclNlcmllc0NvbXBvbmVudCwgQ2hhcnRNb2R1bGUsIFN0b2NrQ2hhcnRNb2R1bGUsIFNwYXJrbGluZU1vZHVsZSwgQ2hhcnRzTW9kdWxlLCBUb29sdGlwUG9wdXBDb21wb25lbnQsIENyb3NzaGFpclRvb2x0aXBzQ29udGFpbmVyQ29tcG9uZW50LCBDaGFydENvbXBvbmVudCwgQXhpc0RlZmF1bHRzQ29tcG9uZW50LCBBeGlzRGVmYXVsdHNDcm9zc2hhaXJDb21wb25lbnQsIEF4aXNEZWZhdWx0c0Nyb3NzaGFpclRvb2x0aXBDb21wb25lbnQsIEF4aXNEZWZhdWx0c0xhYmVsc0NvbXBvbmVudCwgQXhpc0RlZmF1bHRzVGl0bGVDb21wb25lbnQsIENhdGVnb3J5QXhpc0NvbXBvbmVudCwgQ2F0ZWdvcnlBeGlzQ3Jvc3NoYWlyQ29tcG9uZW50LCBDYXRlZ29yeUF4aXNDcm9zc2hhaXJUb29sdGlwQ29tcG9uZW50LCBDYXRlZ29yeUF4aXNJdGVtQ29tcG9uZW50LCBDYXRlZ29yeUF4aXNMYWJlbHNDb21wb25lbnQsIENhdGVnb3J5QXhpc05vdGVzQ29tcG9uZW50LCBDYXRlZ29yeUF4aXNOb3Rlc0ljb25Db21wb25lbnQsIENhdGVnb3J5QXhpc05vdGVzTGFiZWxDb21wb25lbnQsIENhdGVnb3J5QXhpc1NlbGVjdENvbXBvbmVudCwgQ2F0ZWdvcnlBeGlzVGl0bGVDb21wb25lbnQsIENoYXJ0QXJlYUNvbXBvbmVudCwgTGVnZW5kQ29tcG9uZW50LCBMZWdlbmRJbmFjdGl2ZUl0ZW1zQ29tcG9uZW50LCBMZWdlbmRJdGVtQ29tcG9uZW50LCBQYW5lQ29tcG9uZW50LCBQYW5lc0NvbXBvbmVudCwgUGFuZXNUaXRsZUNvbXBvbmVudCwgUGxvdEFyZWFDb21wb25lbnQsIFNlcmllc0NvbXBvbmVudCwgU2VyaWVzRGVmYXVsdHNDb21wb25lbnQsIFNlcmllc0RlZmF1bHRzTGFiZWxzQ29tcG9uZW50LCBTZXJpZXNEZWZhdWx0c0xhYmVsc0Zyb21Db21wb25lbnQsIFNlcmllc0RlZmF1bHRzTGFiZWxzVG9Db21wb25lbnQsIFNlcmllc0RlZmF1bHRzTm90ZXNDb21wb25lbnQsIFNlcmllc0RlZmF1bHRzTm90ZXNJY29uQ29tcG9uZW50LCBTZXJpZXNEZWZhdWx0c05vdGVzTGFiZWxDb21wb25lbnQsIFNlcmllc0RlZmF1bHRzVG9vbHRpcENvbXBvbmVudCwgU2VyaWVzRXJyb3JCYXJzQ29tcG9uZW50LCBTZXJpZXNFeHRyZW1lc0NvbXBvbmVudCwgU2VyaWVzSGlnaGxpZ2h0Q29tcG9uZW50LCBTZXJpZXNJdGVtQ29tcG9uZW50LCBTZXJpZXNMYWJlbHNDb21wb25lbnQsIFNlcmllc0xhYmVsc0Zyb21Db21wb25lbnQsIFNlcmllc0xhYmVsc1RvQ29tcG9uZW50LCBTZXJpZXNNYXJrZXJzQ29tcG9uZW50LCBTZXJpZXNOb3Rlc0NvbXBvbmVudCwgU2VyaWVzTm90ZXNJY29uQ29tcG9uZW50LCBTZXJpZXNOb3Rlc0xhYmVsQ29tcG9uZW50LCBTZXJpZXNPdXRsaWVyc0NvbXBvbmVudCwgU2VyaWVzVG9vbHRpcENvbXBvbmVudCwgVGl0bGVDb21wb25lbnQsIFRvb2x0aXBDb21wb25lbnQsIFZhbHVlQXhpc0NvbXBvbmVudCwgVmFsdWVBeGlzQ3Jvc3NoYWlyQ29tcG9uZW50LCBWYWx1ZUF4aXNDcm9zc2hhaXJUb29sdGlwQ29tcG9uZW50LCBWYWx1ZUF4aXNJdGVtQ29tcG9uZW50LCBWYWx1ZUF4aXNMYWJlbHNDb21wb25lbnQsIFZhbHVlQXhpc05vdGVzQ29tcG9uZW50LCBWYWx1ZUF4aXNOb3Rlc0ljb25Db21wb25lbnQsIFZhbHVlQXhpc05vdGVzTGFiZWxDb21wb25lbnQsIFZhbHVlQXhpc1RpdGxlQ29tcG9uZW50LCBYQXhpc0NvbXBvbmVudCwgWEF4aXNDcm9zc2hhaXJDb21wb25lbnQsIFhBeGlzQ3Jvc3NoYWlyVG9vbHRpcENvbXBvbmVudCwgWEF4aXNJdGVtQ29tcG9uZW50LCBYQXhpc0xhYmVsc0NvbXBvbmVudCwgWEF4aXNOb3Rlc0NvbXBvbmVudCwgWEF4aXNOb3Rlc0ljb25Db21wb25lbnQsIFhBeGlzTm90ZXNMYWJlbENvbXBvbmVudCwgWEF4aXNUaXRsZUNvbXBvbmVudCwgWUF4aXNDb21wb25lbnQsIFlBeGlzQ3Jvc3NoYWlyQ29tcG9uZW50LCBZQXhpc0Nyb3NzaGFpclRvb2x0aXBDb21wb25lbnQsIFlBeGlzSXRlbUNvbXBvbmVudCwgWUF4aXNMYWJlbHNDb21wb25lbnQsIFlBeGlzTm90ZXNDb21wb25lbnQsIFlBeGlzTm90ZXNJY29uQ29tcG9uZW50LCBZQXhpc05vdGVzTGFiZWxDb21wb25lbnQsIFlBeGlzVGl0bGVDb21wb25lbnQsIFpvb21hYmxlQ29tcG9uZW50LCBDSEFSVF9ESVJFQ1RJVkVTLCBBeGlzTGFiZWxDbGlja0V2ZW50LCBEcmFnRW5kRXZlbnQsIERyYWdFdmVudCwgRHJhZ1N0YXJ0RXZlbnQsIExlZ2VuZEl0ZW1DbGlja0V2ZW50LCBMZWdlbmRJdGVtSG92ZXJFdmVudCwgTm90ZUNsaWNrRXZlbnQsIE5vdGVIb3ZlckV2ZW50LCBQYW5lUmVuZGVyRXZlbnQsIFBsb3RBcmVhQ2xpY2tFdmVudCwgUGxvdEFyZWFIb3ZlckV2ZW50LCBSZW5kZXJFdmVudCwgU2VsZWN0RW5kRXZlbnQsIFNlbGVjdEV2ZW50LCBTZWxlY3RTdGFydEV2ZW50LCBTZXJpZXNDbGlja0V2ZW50LCBTZXJpZXNIb3ZlckV2ZW50LCBab29tRW5kRXZlbnQsIFpvb21FdmVudCwgWm9vbVN0YXJ0RXZlbnQsIFdlZWtTdGFydERheSwgTmF2aWdhdG9yRmlsdGVyRXZlbnQsIFN0b2NrQ2hhcnRDb21wb25lbnQsIFNUT0NLX0NIQVJUX0RJUkVDVElWRVMsIFNwYXJrbGluZUNvbXBvbmVudCwgU1BBUktMSU5FX0RJUkVDVElWRVMgfTtcbiJdfQ== + + }), + + "./node_modules/@progress/kendo-angular-common/__ivy_ngcc__/dist/fesm5/index.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "ResizeService", function() { return ResizeService; }); + __webpack_require__.d(__webpack_exports__, "DraggableDirective", function() { return DraggableDirective; }); + __webpack_require__.d(__webpack_exports__, "DraggableModule", function() { return DraggableModule; }); + __webpack_require__.d(__webpack_exports__, "EventsOutsideAngularDirective", function() { return EventsOutsideAngularDirective; }); + __webpack_require__.d(__webpack_exports__, "EventsModule", function() { return EventsModule; }); + __webpack_require__.d(__webpack_exports__, "ResizeSensorComponent", function() { return ResizeSensorComponent; }); + __webpack_require__.d(__webpack_exports__, "ResizeBatchService", function() { return ResizeBatchService; }); + __webpack_require__.d(__webpack_exports__, "ResizeCompatService", function() { return ResizeCompatService; }); + __webpack_require__.d(__webpack_exports__, "ResizeObserverService", function() { return ResizeObserverService; }); + __webpack_require__.d(__webpack_exports__, "ResizeSensorModule", function() { return ResizeSensorModule; }); + __webpack_require__.d(__webpack_exports__, "KendoInput", function() { return KendoInput; }); + __webpack_require__.d(__webpack_exports__, "isDocumentAvailable", function() { return isDocumentAvailable; }); + __webpack_require__.d(__webpack_exports__, "isChanged", function() { return isChanged; }); + __webpack_require__.d(__webpack_exports__, "anyChanged", function() { return anyChanged; }); + __webpack_require__.d(__webpack_exports__, "hasObservers", function() { return hasObservers; }); + __webpack_require__.d(__webpack_exports__, "guid", function() { return guid; }); + __webpack_require__.d(__webpack_exports__, "Keys", function() { return Keys; }); + var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( 100003); + var _angular_core__WEBPACK_IMPORTED_MODULE_0___default = __webpack_require__.n(_angular_core__WEBPACK_IMPORTED_MODULE_0__); + var _telerik_kendo_draggable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@telerik/kendo-draggable/dist/es/main.js"); + var _angular_common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( 100011); + var _angular_common__WEBPACK_IMPORTED_MODULE_2___default = __webpack_require__.n(_angular_common__WEBPACK_IMPORTED_MODULE_2__); + var rxjs_operators__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( 100007); + var rxjs_operators__WEBPACK_IMPORTED_MODULE_3___default = __webpack_require__.n(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__); + var tslib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( 100002); + var tslib__WEBPACK_IMPORTED_MODULE_4___default = __webpack_require__.n(tslib__WEBPACK_IMPORTED_MODULE_4__); + var rxjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( 100006); + var rxjs__WEBPACK_IMPORTED_MODULE_5___default = __webpack_require__.n(rxjs__WEBPACK_IMPORTED_MODULE_5__); + + + + + + + + + +var isDocumentAvailable = function () { return typeof document !== 'undefined'; }; + +var isChanged = function (propertyName, changes, skipFirstChange) { + if (skipFirstChange === void 0) { skipFirstChange = true; } + return (typeof changes[propertyName] !== 'undefined' && + (!changes[propertyName].isFirstChange() || !skipFirstChange) && + changes[propertyName].previousValue !== changes[propertyName].currentValue); +}; + +var anyChanged = function (propertyNames, changes, skipFirstChange) { + if (skipFirstChange === void 0) { skipFirstChange = true; } + return propertyNames.some(function (name) { return isChanged(name, changes, skipFirstChange); }); +}; + +var hasObservers = function (emitter) { return emitter && emitter.observers.length > 0; }; + +var guid = function () { + var id = ""; + for (var i = 0; i < 32; i++) { + var random = Math.random() * 16 | 0; // tslint:disable-line:no-bitwise + if (i === 8 || i === 12 || i === 16 || i === 20) { + id += "-"; + } + // tslint:disable-next-line:no-bitwise + id += (i === 12 ? 4 : (i === 16 ? (random & 3 | 8) : random)).toString(16); + } + return id; +}; + +var DraggableDirective = (function () { + function DraggableDirective(element, ngZone) { + this.element = element; + this.ngZone = ngZone; + this.enableDrag = true; + this.kendoPress = new _angular_core__WEBPACK_IMPORTED_MODULE_0__["EventEmitter"](); + this.kendoDrag = new _angular_core__WEBPACK_IMPORTED_MODULE_0__["EventEmitter"](); + this.kendoRelease = new _angular_core__WEBPACK_IMPORTED_MODULE_0__["EventEmitter"](); + } + DraggableDirective.prototype.ngOnInit = function () { + this.toggleDraggable(); + }; + DraggableDirective.prototype.ngOnChanges = function (changes) { + if (isChanged('enableDrag', changes)) { + this.toggleDraggable(); + } + }; + DraggableDirective.prototype.ngOnDestroy = function () { + this.destroyDraggable(); + }; + DraggableDirective.prototype.toggleDraggable = function () { + var _this = this; + if (isDocumentAvailable()) { + this.destroyDraggable(); + if (this.enableDrag) { + this.draggable = new _telerik_kendo_draggable__WEBPACK_IMPORTED_MODULE_1__["default"]({ + drag: function (e) { return _this.kendoDrag.next(e); }, + press: function (e) { return _this.kendoPress.next(e); }, + release: function (e) { return _this.kendoRelease.next(e); } + }); + this.ngZone.runOutsideAngular(function () { return _this.draggable.bindTo(_this.element.nativeElement); }); + } + } + }; + DraggableDirective.prototype.destroyDraggable = function () { + if (this.draggable) { + this.draggable.destroy(); + this.draggable = null; + } + }; + + DraggableDirective.ctorParameters = function () { return [ + { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"] }, + { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"] } + ]; }; + DraggableDirective.propDecorators = { + enableDrag: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], + kendoPress: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }], + kendoDrag: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }], + kendoRelease: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }] + }; +DraggableDirective.ɵfac = function DraggableDirective_Factory(t) { return new (t || DraggableDirective)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"])); }; +DraggableDirective.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({ type: DraggableDirective, selectors: [["", "kendoDraggable", ""]], inputs: { enableDrag: "enableDrag" }, outputs: { kendoPress: "kendoPress", kendoDrag: "kendoDrag", kendoRelease: "kendoRelease" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵNgOnChangesFeature"]] }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](DraggableDirective, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Directive"], + args: [{ + selector: '[kendoDraggable]' + }] + }], function () { return [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"] }]; }, { enableDrag: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] + }], kendoPress: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] + }], kendoDrag: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] + }], kendoRelease: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] + }] }); })(); + return DraggableDirective; +}()); + + +var DraggableModule = (function () { + function DraggableModule() { + } +DraggableModule.ɵmod = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineNgModule"]({ type: DraggableModule }); +DraggableModule.ɵinj = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjector"]({ factory: function DraggableModule_Factory(t) { return new (t || DraggableModule)(); }, imports: [[_angular_common__WEBPACK_IMPORTED_MODULE_2__["CommonModule"]]] }); +(function () { (typeof ngJitMode === "undefined" || ngJitMode) && _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵsetNgModuleScope"](DraggableModule, { declarations: function () { return [DraggableDirective]; }, imports: function () { return [_angular_common__WEBPACK_IMPORTED_MODULE_2__["CommonModule"]]; }, exports: function () { return [DraggableDirective]; } }); })(); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](DraggableModule, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgModule"], + args: [{ + declarations: [DraggableDirective], + exports: [DraggableDirective], + imports: [_angular_common__WEBPACK_IMPORTED_MODULE_2__["CommonModule"]] + }] + }], function () { return []; }, null); })(); + return DraggableModule; +}()); + + + +var EventsOutsideAngularDirective = (function () { + function EventsOutsideAngularDirective(element, ngZone, renderer) { + this.element = element; + this.ngZone = ngZone; + this.renderer = renderer; + this.events = {}; + } + EventsOutsideAngularDirective.prototype.ngOnInit = function () { + var _this = this; + if (!this.element || !this.element.nativeElement) { + return; + } + var events = this.events; + this.subscriptions = []; + this.ngZone.runOutsideAngular(function () { + for (var name_1 in events) { + if (events.hasOwnProperty(name_1)) { + _this.subscriptions.push(_this.renderer.listen(_this.element.nativeElement, name_1, _this.scope ? events[name_1].bind(_this.scope) : events[name_1])); + } + } + }); + }; + EventsOutsideAngularDirective.prototype.ngOnDestroy = function () { + if (this.subscriptions) { + for (var idx = 0; idx < this.subscriptions.length; idx++) { + this.subscriptions[idx](); + } + this.subscriptions = null; + } + }; + + EventsOutsideAngularDirective.ctorParameters = function () { return [ + { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"] }, + { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"] }, + { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Renderer2"] } + ]; }; + EventsOutsideAngularDirective.propDecorators = { + events: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"], args: ['kendoEventsOutsideAngular',] }], + scope: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }] + }; +EventsOutsideAngularDirective.ɵfac = function EventsOutsideAngularDirective_Factory(t) { return new (t || EventsOutsideAngularDirective)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["Renderer2"])); }; +EventsOutsideAngularDirective.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({ type: EventsOutsideAngularDirective, selectors: [["", "kendoEventsOutsideAngular", ""]], inputs: { events: ["kendoEventsOutsideAngular", "events"], scope: "scope" } }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](EventsOutsideAngularDirective, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Directive"], + args: [{ + selector: '[kendoEventsOutsideAngular]' + }] + }], function () { return [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Renderer2"] }]; }, { events: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"], + args: ['kendoEventsOutsideAngular'] + }], scope: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] + }] }); })(); + return EventsOutsideAngularDirective; +}()); + + +var EventsModule = (function () { + function EventsModule() { + } +EventsModule.ɵmod = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineNgModule"]({ type: EventsModule }); +EventsModule.ɵinj = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjector"]({ factory: function EventsModule_Factory(t) { return new (t || EventsModule)(); } }); +(function () { (typeof ngJitMode === "undefined" || ngJitMode) && _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵsetNgModuleScope"](EventsModule, { declarations: [EventsOutsideAngularDirective], exports: [EventsOutsideAngularDirective] }); })(); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](EventsModule, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgModule"], + args: [{ + declarations: [EventsOutsideAngularDirective], + exports: [EventsOutsideAngularDirective] + }] + }], function () { return []; }, null); })(); + return EventsModule; +}()); + +var ResizeService = (function () { + function ResizeService(resizeBatchService) { + this.resizeBatchService = resizeBatchService; + this.resize = new _angular_core__WEBPACK_IMPORTED_MODULE_0__["EventEmitter"](); + this.acceptedSize = false; + this.state = 0 ; + } + ResizeService.prototype.acceptSize = function (size) { + if (size === void 0) { size = this.measure(); } + this.lastWidth = size.width; + this.lastHeight = size.height; + this.acceptedSize = true; + }; + ResizeService.prototype.checkChanges = function () { + if (!isDocumentAvailable()) { + return; + } + if (this.state === 0 ) { + this.state = 1 ; + // batch initial measure + this.resizeBatchService.schedule(this, this.init); + } + }; + ResizeService.prototype.destroy = function () { + this.resizeBatchService.cancel(this); + }; + ResizeService.prototype.checkSize = function () { + if (!this.parentElement) { + return; + } + var _a = this.measure(), width = _a.width, height = _a.height; + var sameSize = width === this.lastWidth && height === this.lastHeight; + if (sameSize) { + return; + } + this.lastWidth = width; + this.lastHeight = height; + this.acceptedSize = false; + this.resize.emit(); + return true; + }; + ResizeService.prototype.initSize = function () { + var size = this.measure(); + this.lastWidth = size.width; + this.lastHeight = size.height; + }; + ResizeService.prototype.measure = function () { + var width = 0; + var height = 0; + if (this.parentElement) { + height = this.parentElement.offsetHeight; + width = this.parentElement.offsetWidth; + } + return { height: height, width: width }; + }; + return ResizeService; +}()); + +// tslint:disable:deprecation +var div = function (style) { + var el = document.createElement('div'); + el.style.cssText = style; + return el; +}; +var computedProp = function (elem, prop) { + return getComputedStyle(elem, null).getPropertyValue(prop); +}; +var WRAP_STYLE = 'position: absolute; display: block; left: 0; top: 0; right: 0; bottom: 0; z-index: -1;' + + 'overflow: hidden; visibility: hidden;'; +var EXPAND_CHILD_STYLE = 'position: absolute; left: 0; top: 0; transition: 0s;'; +var SHRINK_CHILD_STYLE = EXPAND_CHILD_STYLE + 'width: 200%; height: 200%;'; +var ResizeCompatService = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_4__["__extends"])(ResizeCompatService, _super); + function ResizeCompatService(resizeBatchService, element, ngZone) { + var _this = _super.call(this, resizeBatchService) || this; + _this.element = element; + _this.ngZone = ngZone; + return _this; + } + ResizeCompatService.prototype.checkChanges = function () { + if (this.state === 2 ) { + if (!this.resizeBatchService.isScheduled(this)) { + this.resizeBatchService.schedule(this, this.checkSize); + } + return; + } + _super.prototype.checkChanges.call(this); + }; + ResizeCompatService.prototype.destroy = function () { + _super.prototype.destroy.call(this); + if (this.subscription) { + this.subscription.unsubscribe(); + } + if (this.expand) { + var element = this.element.nativeElement; + element.removeChild(this.expand); + element.removeChild(this.shrink); + this.expand.removeChild(this.expandChild); + this.expand = this.expandChild = this.shrink = this.element = null; + } + }; + ResizeCompatService.prototype.checkSize = function () { + if (_super.prototype.checkSize.call(this)) { + this.reset(); + return true; + } + }; + ResizeCompatService.prototype.init = function () { + var parentElement = this.parentElement = this.element.nativeElement.parentElement; + if (computedProp(parentElement, 'position') === 'static') { + parentElement.style.position = 'relative'; + } + this.state = 2 ; + this.render(); + this.reset(); + this.initSize(); + this.subscribe(); + }; + ResizeCompatService.prototype.render = function () { + var element = this.element.nativeElement; + element.style.cssText = WRAP_STYLE; + element.setAttribute('dir', 'ltr'); + this.expand = div(WRAP_STYLE); + this.expandChild = div(EXPAND_CHILD_STYLE); + this.expand.appendChild(this.expandChild); + element.appendChild(this.expand); + this.shrink = div(WRAP_STYLE); + var shrinkChild = div(SHRINK_CHILD_STYLE); + this.shrink.appendChild(shrinkChild); + element.appendChild(this.shrink); + }; + ResizeCompatService.prototype.reset = function () { + var expandChild = this.expandChild; + expandChild.style.width = 100000 + 'px'; + expandChild.style.height = 100000 + 'px'; + var expand = this.expand; + expand.scrollLeft = 100000; + expand.scrollTop = 100000; + var shrink = this.shrink; + shrink.scrollLeft = 100000; + shrink.scrollTop = 100000; + }; + ResizeCompatService.prototype.subscribe = function () { + var _this = this; + this.ngZone.runOutsideAngular(function () { + _this.subscription = Object(rxjs__WEBPACK_IMPORTED_MODULE_5__["merge"])(Object(rxjs__WEBPACK_IMPORTED_MODULE_5__["fromEvent"])(_this.shrink, 'scroll'), Object(rxjs__WEBPACK_IMPORTED_MODULE_5__["fromEvent"])(_this.expand, 'scroll')) + .subscribe(function () { + _this.checkSize(); + }); + }); + }; + return ResizeCompatService; +}(ResizeService)); + +var HAS_OBSERVER = typeof ResizeObserver !== 'undefined'; + +var ResizeObserverService = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_4__["__extends"])(ResizeObserverService, _super); + function ResizeObserverService(resizeBatchService, element, ngZone) { + var _this = _super.call(this, resizeBatchService) || this; + _this.element = element; + _this.ngZone = ngZone; + return _this; + } + ResizeObserverService.supported = function () { + return HAS_OBSERVER; + }; + ResizeObserverService.prototype.destroy = function () { + _super.prototype.destroy.call(this); + if (this.resizeObserver) { + this.resizeObserver.disconnect(); + this.resizeObserver = null; + } + this.parentElement = null; + }; + ResizeObserverService.prototype.init = function () { + var _this = this; + this.parentElement = this.element.nativeElement.parentElement; + this.initSize(); + this.state = 2 ; + this.ngZone.runOutsideAngular(function () { + _this.resizeObserver = new ResizeObserver(function () { + _this.checkSize(); + }); + _this.resizeObserver.observe(_this.parentElement); + }); + }; + return ResizeObserverService; +}(ResizeService)); + + + +var ResizeBatchService = (function () { + function ResizeBatchService(ngZone) { + this.ngZone = ngZone; + this.scheduled = []; + this.resolvedPromise = Promise.resolve(null); + this.flush = this.flush.bind(this); + } + ResizeBatchService.prototype.schedule = function (instance, method) { + var _this = this; + this.scheduled.push({ instance: instance, method: method }); + if (!this.subscription) { + this.ngZone.runOutsideAngular(function () { + _this.subscription = Object(rxjs__WEBPACK_IMPORTED_MODULE_5__["from"])(_this.resolvedPromise) + .subscribe(_this.flush); + }); + } + }; + ResizeBatchService.prototype.isScheduled = function (instance) { + return Boolean(this.scheduled.find(function (item) { return item.instance === instance; })); + }; + ResizeBatchService.prototype.cancel = function (instance) { + var scheduled = this.scheduled; + var count = scheduled.length; + for (var idx = 0; idx < count; idx++) { + if (scheduled[idx].instance === instance) { + scheduled.splice(idx, 1); + if (!scheduled.length) { + this.unsubscribe(); + } + return; + } + } + }; + ResizeBatchService.prototype.ngOnDestroy = function () { + this.unsubscribe(); + }; + ResizeBatchService.prototype.unsubscribe = function () { + if (this.subscription) { + this.subscription.unsubscribe(); + this.subscription = null; + } + }; + ResizeBatchService.prototype.flush = function () { + this.scheduled.forEach(function (item) { + item.method.call(item.instance); + }); + this.scheduled = []; + this.unsubscribe(); + }; + + ResizeBatchService.ctorParameters = function () { return [ + { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"] } + ]; }; +ResizeBatchService.ɵfac = function ResizeBatchService_Factory(t) { return new (t || ResizeBatchService)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"])); }; +ResizeBatchService.ɵprov = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"]({ token: ResizeBatchService, factory: function (t) { return ResizeBatchService.ɵfac(t); } }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](ResizeBatchService, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Injectable"] + }], function () { return [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"] }]; }, null); })(); + return ResizeBatchService; +}()); + + +var DEFAULT_RATE_LIMIT = 10; + +var ResizeSensorComponent = (function () { + function ResizeSensorComponent(resizeBatchService, element, ngZone) { + var _this = this; + + this.rateLimit = DEFAULT_RATE_LIMIT; + + this.resize = new _angular_core__WEBPACK_IMPORTED_MODULE_0__["EventEmitter"](); + var serviceType = ResizeObserverService.supported() ? ResizeObserverService : ResizeCompatService; + this.resizeService = new serviceType(resizeBatchService, element, ngZone); + var throttleTime = 1000 / (this.rateLimit || DEFAULT_RATE_LIMIT); + this.subscription = this.resizeService.resize + .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["auditTime"])(throttleTime)) + .subscribe(function () { + if (!_this.resizeService.acceptedSize) { + _this.resize.emit(); + } + }); + } + ResizeSensorComponent.prototype.ngAfterViewChecked = function () { + this.resizeService.checkChanges(); + }; + ResizeSensorComponent.prototype.ngOnDestroy = function () { + this.subscription.unsubscribe(); + this.resizeService.destroy(); + }; + ResizeSensorComponent.prototype.acceptSize = function (size) { + this.resizeService.acceptSize(size); + }; + + ResizeSensorComponent.ctorParameters = function () { return [ + { type: ResizeBatchService }, + { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"] }, + { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"] } + ]; }; + ResizeSensorComponent.propDecorators = { + rateLimit: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], + resize: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }] + }; +ResizeSensorComponent.ɵfac = function ResizeSensorComponent_Factory(t) { return new (t || ResizeSensorComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](ResizeBatchService), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"])); }; +ResizeSensorComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineComponent"]({ type: ResizeSensorComponent, selectors: [["kendo-resize-sensor"]], inputs: { rateLimit: "rateLimit" }, outputs: { resize: "resize" }, decls: 0, vars: 0, template: function ResizeSensorComponent_Template(rf, ctx) { }, encapsulation: 2 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](ResizeSensorComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"], + args: [{ + selector: 'kendo-resize-sensor', + template: '' + }] + }], function () { return [{ type: ResizeBatchService }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"] }]; }, { rateLimit: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] + }], resize: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] + }] }); })(); + return ResizeSensorComponent; +}()); + +var COMPONENT_DIRECTIVES = [ResizeSensorComponent]; + +var ResizeSensorModule = (function () { + function ResizeSensorModule() { + } +ResizeSensorModule.ɵmod = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineNgModule"]({ type: ResizeSensorModule }); +ResizeSensorModule.ɵinj = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjector"]({ factory: function ResizeSensorModule_Factory(t) { return new (t || ResizeSensorModule)(); }, providers: [ResizeBatchService] }); +(function () { (typeof ngJitMode === "undefined" || ngJitMode) && _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵsetNgModuleScope"](ResizeSensorModule, { declarations: [ResizeSensorComponent], exports: [ResizeSensorComponent] }); })(); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](ResizeSensorModule, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgModule"], + args: [{ + declarations: [COMPONENT_DIRECTIVES], + exports: [COMPONENT_DIRECTIVES], + providers: [ResizeBatchService] + }] + }], function () { return []; }, null); })(); + return ResizeSensorModule; +}()); + +var KendoInput = (function () { + function KendoInput() { + } + return KendoInput; +}()); + + +var Keys; +(function (Keys) { + Keys[Keys["Alt"] = 18] = "Alt"; + Keys[Keys["ArrowDown"] = 40] = "ArrowDown"; + Keys[Keys["ArrowLeft"] = 37] = "ArrowLeft"; + Keys[Keys["ArrowRight"] = 39] = "ArrowRight"; + Keys[Keys["ArrowUp"] = 38] = "ArrowUp"; + Keys[Keys["Backspace"] = 8] = "Backspace"; + Keys[Keys["Control"] = 17] = "Control"; + Keys[Keys["Delete"] = 46] = "Delete"; + Keys[Keys["Digit0"] = 48] = "Digit0"; + Keys[Keys["Digit1"] = 49] = "Digit1"; + Keys[Keys["Digit2"] = 50] = "Digit2"; + Keys[Keys["Digit3"] = 51] = "Digit3"; + Keys[Keys["Digit4"] = 52] = "Digit4"; + Keys[Keys["Digit5"] = 53] = "Digit5"; + Keys[Keys["Digit6"] = 54] = "Digit6"; + Keys[Keys["Digit7"] = 55] = "Digit7"; + Keys[Keys["Digit8"] = 56] = "Digit8"; + Keys[Keys["Digit9"] = 57] = "Digit9"; + Keys[Keys["End"] = 35] = "End"; + Keys[Keys["Enter"] = 13] = "Enter"; + Keys[Keys["Escape"] = 27] = "Escape"; + Keys[Keys["F1"] = 112] = "F1"; + Keys[Keys["F2"] = 113] = "F2"; + Keys[Keys["F10"] = 121] = "F10"; + Keys[Keys["Home"] = 36] = "Home"; + Keys[Keys["Insert"] = 45] = "Insert"; + Keys[Keys["KeyA"] = 65] = "KeyA"; + Keys[Keys["KeyB"] = 66] = "KeyB"; + Keys[Keys["KeyC"] = 67] = "KeyC"; + Keys[Keys["KeyD"] = 68] = "KeyD"; + Keys[Keys["KeyE"] = 69] = "KeyE"; + Keys[Keys["KeyF"] = 70] = "KeyF"; + Keys[Keys["KeyG"] = 71] = "KeyG"; + Keys[Keys["KeyH"] = 72] = "KeyH"; + Keys[Keys["KeyI"] = 73] = "KeyI"; + Keys[Keys["KeyJ"] = 74] = "KeyJ"; + Keys[Keys["KeyK"] = 75] = "KeyK"; + Keys[Keys["KeyL"] = 76] = "KeyL"; + Keys[Keys["KeyM"] = 77] = "KeyM"; + Keys[Keys["KeyN"] = 78] = "KeyN"; + Keys[Keys["KeyO"] = 79] = "KeyO"; + Keys[Keys["KeyP"] = 80] = "KeyP"; + Keys[Keys["KeyQ"] = 81] = "KeyQ"; + Keys[Keys["KeyR"] = 82] = "KeyR"; + Keys[Keys["KeyS"] = 83] = "KeyS"; + Keys[Keys["KeyT"] = 84] = "KeyT"; + Keys[Keys["KeyU"] = 85] = "KeyU"; + Keys[Keys["KeyV"] = 86] = "KeyV"; + Keys[Keys["KeyW"] = 87] = "KeyW"; + Keys[Keys["KeyX"] = 88] = "KeyX"; + Keys[Keys["KeyY"] = 89] = "KeyY"; + Keys[Keys["KeyZ"] = 90] = "KeyZ"; + Keys[Keys["NumpadDecimal"] = 110] = "NumpadDecimal"; + Keys[Keys["PageDown"] = 34] = "PageDown"; + Keys[Keys["PageUp"] = 33] = "PageUp"; + Keys[Keys["Shift"] = 16] = "Shift"; + Keys[Keys["Space"] = 32] = "Space"; + Keys[Keys["Tab"] = 9] = "Tab"; +})(Keys || (Keys = {})); + + + + + +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbImluZGV4LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BS007QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7O29CQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7OztnREFPTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BS007QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7OztvQkFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7OztnREFNTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFHTTtBQUNOO0FBQ0E7QUFDQTtBQUNBOzs7Ozt1RUFBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFNTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7O29CQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7O2dEQU9NO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzQ29udGVudCI6WyIvKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKiBDb3B5cmlnaHQgwqkgMjAyMCBQcm9ncmVzcyBTb2Z0d2FyZSBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiogTGljZW5zZWQgdW5kZXIgY29tbWVyY2lhbCBsaWNlbnNlLiBTZWUgTElDRU5TRS5tZCBpbiB0aGUgcHJvamVjdCByb290IGZvciBtb3JlIGluZm9ybWF0aW9uXG4qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5pbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIE5nWm9uZSwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBOZ01vZHVsZSwgUmVuZGVyZXIyLCBJbmplY3RhYmxlLCBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCBEcmFnZ2FibGUgZnJvbSAnQHRlbGVyaWsva2VuZG8tZHJhZ2dhYmxlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBhdWRpdFRpbWUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBfX2V4dGVuZHMgfSBmcm9tICd0c2xpYic7XG5pbXBvcnQgeyBtZXJnZSwgZnJvbUV2ZW50LCBmcm9tIH0gZnJvbSAncnhqcyc7XG5cbnZhciBpc0RvY3VtZW50QXZhaWxhYmxlID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdHlwZW9mIGRvY3VtZW50ICE9PSAndW5kZWZpbmVkJzsgfTtcblxudmFyIGlzQ2hhbmdlZCA9IGZ1bmN0aW9uIChwcm9wZXJ0eU5hbWUsIGNoYW5nZXMsIHNraXBGaXJzdENoYW5nZSkge1xuICAgIGlmIChza2lwRmlyc3RDaGFuZ2UgPT09IHZvaWQgMCkgeyBza2lwRmlyc3RDaGFuZ2UgPSB0cnVlOyB9XG4gICAgcmV0dXJuICh0eXBlb2YgY2hhbmdlc1twcm9wZXJ0eU5hbWVdICE9PSAndW5kZWZpbmVkJyAmJlxuICAgICAgICAoIWNoYW5nZXNbcHJvcGVydHlOYW1lXS5pc0ZpcnN0Q2hhbmdlKCkgfHwgIXNraXBGaXJzdENoYW5nZSkgJiZcbiAgICAgICAgY2hhbmdlc1twcm9wZXJ0eU5hbWVdLnByZXZpb3VzVmFsdWUgIT09IGNoYW5nZXNbcHJvcGVydHlOYW1lXS5jdXJyZW50VmFsdWUpO1xufTtcblxudmFyIGFueUNoYW5nZWQgPSBmdW5jdGlvbiAocHJvcGVydHlOYW1lcywgY2hhbmdlcywgc2tpcEZpcnN0Q2hhbmdlKSB7XG4gICAgaWYgKHNraXBGaXJzdENoYW5nZSA9PT0gdm9pZCAwKSB7IHNraXBGaXJzdENoYW5nZSA9IHRydWU7IH1cbiAgICByZXR1cm4gcHJvcGVydHlOYW1lcy5zb21lKGZ1bmN0aW9uIChuYW1lKSB7IHJldHVybiBpc0NoYW5nZWQobmFtZSwgY2hhbmdlcywgc2tpcEZpcnN0Q2hhbmdlKTsgfSk7XG59O1xuXG52YXIgaGFzT2JzZXJ2ZXJzID0gZnVuY3Rpb24gKGVtaXR0ZXIpIHsgcmV0dXJuIGVtaXR0ZXIgJiYgZW1pdHRlci5vYnNlcnZlcnMubGVuZ3RoID4gMDsgfTtcblxudmFyIGd1aWQgPSBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGlkID0gXCJcIjtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IDMyOyBpKyspIHtcbiAgICAgICAgdmFyIHJhbmRvbSA9IE1hdGgucmFuZG9tKCkgKiAxNiB8IDA7IC8vIHRzbGludDpkaXNhYmxlLWxpbmU6bm8tYml0d2lzZVxuICAgICAgICBpZiAoaSA9PT0gOCB8fCBpID09PSAxMiB8fCBpID09PSAxNiB8fCBpID09PSAyMCkge1xuICAgICAgICAgICAgaWQgKz0gXCItXCI7XG4gICAgICAgIH1cbiAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWJpdHdpc2VcbiAgICAgICAgaWQgKz0gKGkgPT09IDEyID8gNCA6IChpID09PSAxNiA/IChyYW5kb20gJiAzIHwgOCkgOiByYW5kb20pKS50b1N0cmluZygxNik7XG4gICAgfVxuICAgIHJldHVybiBpZDtcbn07XG5cbnZhciBEcmFnZ2FibGVEaXJlY3RpdmUgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gRHJhZ2dhYmxlRGlyZWN0aXZlKGVsZW1lbnQsIG5nWm9uZSkge1xuICAgICAgICB0aGlzLmVsZW1lbnQgPSBlbGVtZW50O1xuICAgICAgICB0aGlzLm5nWm9uZSA9IG5nWm9uZTtcbiAgICAgICAgdGhpcy5lbmFibGVEcmFnID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5rZW5kb1ByZXNzID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgICAgICB0aGlzLmtlbmRvRHJhZyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICAgICAgdGhpcy5rZW5kb1JlbGVhc2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgfVxuICAgIERyYWdnYWJsZURpcmVjdGl2ZS5wcm90b3R5cGUubmdPbkluaXQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHRoaXMudG9nZ2xlRHJhZ2dhYmxlKCk7XG4gICAgfTtcbiAgICBEcmFnZ2FibGVEaXJlY3RpdmUucHJvdG90eXBlLm5nT25DaGFuZ2VzID0gZnVuY3Rpb24gKGNoYW5nZXMpIHtcbiAgICAgICAgaWYgKGlzQ2hhbmdlZCgnZW5hYmxlRHJhZycsIGNoYW5nZXMpKSB7XG4gICAgICAgICAgICB0aGlzLnRvZ2dsZURyYWdnYWJsZSgpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBEcmFnZ2FibGVEaXJlY3RpdmUucHJvdG90eXBlLm5nT25EZXN0cm95ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB0aGlzLmRlc3Ryb3lEcmFnZ2FibGUoKTtcbiAgICB9O1xuICAgIERyYWdnYWJsZURpcmVjdGl2ZS5wcm90b3R5cGUudG9nZ2xlRHJhZ2dhYmxlID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICBpZiAoaXNEb2N1bWVudEF2YWlsYWJsZSgpKSB7XG4gICAgICAgICAgICB0aGlzLmRlc3Ryb3lEcmFnZ2FibGUoKTtcbiAgICAgICAgICAgIGlmICh0aGlzLmVuYWJsZURyYWcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRyYWdnYWJsZSA9IG5ldyBEcmFnZ2FibGUoe1xuICAgICAgICAgICAgICAgICAgICBkcmFnOiBmdW5jdGlvbiAoZSkgeyByZXR1cm4gX3RoaXMua2VuZG9EcmFnLm5leHQoZSk7IH0sXG4gICAgICAgICAgICAgICAgICAgIHByZXNzOiBmdW5jdGlvbiAoZSkgeyByZXR1cm4gX3RoaXMua2VuZG9QcmVzcy5uZXh0KGUpOyB9LFxuICAgICAgICAgICAgICAgICAgICByZWxlYXNlOiBmdW5jdGlvbiAoZSkgeyByZXR1cm4gX3RoaXMua2VuZG9SZWxlYXNlLm5leHQoZSk7IH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcihmdW5jdGlvbiAoKSB7IHJldHVybiBfdGhpcy5kcmFnZ2FibGUuYmluZFRvKF90aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCk7IH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfTtcbiAgICBEcmFnZ2FibGVEaXJlY3RpdmUucHJvdG90eXBlLmRlc3Ryb3lEcmFnZ2FibGUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmICh0aGlzLmRyYWdnYWJsZSkge1xuICAgICAgICAgICAgdGhpcy5kcmFnZ2FibGUuZGVzdHJveSgpO1xuICAgICAgICAgICAgdGhpcy5kcmFnZ2FibGUgPSBudWxsO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBEcmFnZ2FibGVEaXJlY3RpdmUuZGVjb3JhdG9ycyA9IFtcbiAgICAgICAgeyB0eXBlOiBEaXJlY3RpdmUsIGFyZ3M6IFt7XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdG9yOiAnW2tlbmRvRHJhZ2dhYmxlXSdcbiAgICAgICAgICAgICAgICB9LF0gfSxcbiAgICBdO1xuICAgIC8qKiBAbm9jb2xsYXBzZSAqL1xuICAgIERyYWdnYWJsZURpcmVjdGl2ZS5jdG9yUGFyYW1ldGVycyA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIFtcbiAgICAgICAgeyB0eXBlOiBFbGVtZW50UmVmIH0sXG4gICAgICAgIHsgdHlwZTogTmdab25lIH1cbiAgICBdOyB9O1xuICAgIERyYWdnYWJsZURpcmVjdGl2ZS5wcm9wRGVjb3JhdG9ycyA9IHtcbiAgICAgICAgZW5hYmxlRHJhZzogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGtlbmRvUHJlc3M6IFt7IHR5cGU6IE91dHB1dCB9XSxcbiAgICAgICAga2VuZG9EcmFnOiBbeyB0eXBlOiBPdXRwdXQgfV0sXG4gICAgICAgIGtlbmRvUmVsZWFzZTogW3sgdHlwZTogT3V0cHV0IH1dXG4gICAgfTtcbiAgICByZXR1cm4gRHJhZ2dhYmxlRGlyZWN0aXZlO1xufSgpKTtcblxuLyoqXG4gKiBAaGlkZGVuXG4gKi9cbnZhciBEcmFnZ2FibGVNb2R1bGUgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gRHJhZ2dhYmxlTW9kdWxlKCkge1xuICAgIH1cbiAgICBEcmFnZ2FibGVNb2R1bGUuZGVjb3JhdG9ycyA9IFtcbiAgICAgICAgeyB0eXBlOiBOZ01vZHVsZSwgYXJnczogW3tcbiAgICAgICAgICAgICAgICAgICAgZGVjbGFyYXRpb25zOiBbRHJhZ2dhYmxlRGlyZWN0aXZlXSxcbiAgICAgICAgICAgICAgICAgICAgZXhwb3J0czogW0RyYWdnYWJsZURpcmVjdGl2ZV0sXG4gICAgICAgICAgICAgICAgICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdXG4gICAgICAgICAgICAgICAgfSxdIH0sXG4gICAgXTtcbiAgICByZXR1cm4gRHJhZ2dhYmxlTW9kdWxlO1xufSgpKTtcblxuLyogdHNsaW50OmRpc2FibGU6bm8taW5wdXQtcmVuYW1lICovXG4vKipcbiAqIEBoaWRkZW5cbiAqL1xudmFyIEV2ZW50c091dHNpZGVBbmd1bGFyRGlyZWN0aXZlID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIEV2ZW50c091dHNpZGVBbmd1bGFyRGlyZWN0aXZlKGVsZW1lbnQsIG5nWm9uZSwgcmVuZGVyZXIpIHtcbiAgICAgICAgdGhpcy5lbGVtZW50ID0gZWxlbWVudDtcbiAgICAgICAgdGhpcy5uZ1pvbmUgPSBuZ1pvbmU7XG4gICAgICAgIHRoaXMucmVuZGVyZXIgPSByZW5kZXJlcjtcbiAgICAgICAgdGhpcy5ldmVudHMgPSB7fTtcbiAgICB9XG4gICAgRXZlbnRzT3V0c2lkZUFuZ3VsYXJEaXJlY3RpdmUucHJvdG90eXBlLm5nT25Jbml0ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICBpZiAoIXRoaXMuZWxlbWVudCB8fCAhdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgZXZlbnRzID0gdGhpcy5ldmVudHM7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucyA9IFtdO1xuICAgICAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcihmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBmb3IgKHZhciBuYW1lXzEgaW4gZXZlbnRzKSB7XG4gICAgICAgICAgICAgICAgaWYgKGV2ZW50cy5oYXNPd25Qcm9wZXJ0eShuYW1lXzEpKSB7XG4gICAgICAgICAgICAgICAgICAgIF90aGlzLnN1YnNjcmlwdGlvbnMucHVzaChfdGhpcy5yZW5kZXJlci5saXN0ZW4oX3RoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LCBuYW1lXzEsIF90aGlzLnNjb3BlID8gZXZlbnRzW25hbWVfMV0uYmluZChfdGhpcy5zY29wZSkgOiBldmVudHNbbmFtZV8xXSkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICBFdmVudHNPdXRzaWRlQW5ndWxhckRpcmVjdGl2ZS5wcm90b3R5cGUubmdPbkRlc3Ryb3kgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmICh0aGlzLnN1YnNjcmlwdGlvbnMpIHtcbiAgICAgICAgICAgIGZvciAodmFyIGlkeCA9IDA7IGlkeCA8IHRoaXMuc3Vic2NyaXB0aW9ucy5sZW5ndGg7IGlkeCsrKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zW2lkeF0oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucyA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIEV2ZW50c091dHNpZGVBbmd1bGFyRGlyZWN0aXZlLmRlY29yYXRvcnMgPSBbXG4gICAgICAgIHsgdHlwZTogRGlyZWN0aXZlLCBhcmdzOiBbe1xuICAgICAgICAgICAgICAgICAgICBzZWxlY3RvcjogJ1trZW5kb0V2ZW50c091dHNpZGVBbmd1bGFyXSdcbiAgICAgICAgICAgICAgICB9LF0gfSxcbiAgICBdO1xuICAgIC8qKiBAbm9jb2xsYXBzZSAqL1xuICAgIEV2ZW50c091dHNpZGVBbmd1bGFyRGlyZWN0aXZlLmN0b3JQYXJhbWV0ZXJzID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gW1xuICAgICAgICB7IHR5cGU6IEVsZW1lbnRSZWYgfSxcbiAgICAgICAgeyB0eXBlOiBOZ1pvbmUgfSxcbiAgICAgICAgeyB0eXBlOiBSZW5kZXJlcjIgfVxuICAgIF07IH07XG4gICAgRXZlbnRzT3V0c2lkZUFuZ3VsYXJEaXJlY3RpdmUucHJvcERlY29yYXRvcnMgPSB7XG4gICAgICAgIGV2ZW50czogW3sgdHlwZTogSW5wdXQsIGFyZ3M6IFsna2VuZG9FdmVudHNPdXRzaWRlQW5ndWxhcicsXSB9XSxcbiAgICAgICAgc2NvcGU6IFt7IHR5cGU6IElucHV0IH1dXG4gICAgfTtcbiAgICByZXR1cm4gRXZlbnRzT3V0c2lkZUFuZ3VsYXJEaXJlY3RpdmU7XG59KCkpO1xuXG4vKipcbiAqIEBoaWRkZW5cbiAqL1xudmFyIEV2ZW50c01vZHVsZSA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBFdmVudHNNb2R1bGUoKSB7XG4gICAgfVxuICAgIEV2ZW50c01vZHVsZS5kZWNvcmF0b3JzID0gW1xuICAgICAgICB7IHR5cGU6IE5nTW9kdWxlLCBhcmdzOiBbe1xuICAgICAgICAgICAgICAgICAgICBkZWNsYXJhdGlvbnM6IFtFdmVudHNPdXRzaWRlQW5ndWxhckRpcmVjdGl2ZV0sXG4gICAgICAgICAgICAgICAgICAgIGV4cG9ydHM6IFtFdmVudHNPdXRzaWRlQW5ndWxhckRpcmVjdGl2ZV1cbiAgICAgICAgICAgICAgICB9LF0gfSxcbiAgICBdO1xuICAgIHJldHVybiBFdmVudHNNb2R1bGU7XG59KCkpO1xuXG52YXIgUmVzaXplU2VydmljZSA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBSZXNpemVTZXJ2aWNlKHJlc2l6ZUJhdGNoU2VydmljZSkge1xuICAgICAgICB0aGlzLnJlc2l6ZUJhdGNoU2VydmljZSA9IHJlc2l6ZUJhdGNoU2VydmljZTtcbiAgICAgICAgdGhpcy5yZXNpemUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgICAgIHRoaXMuYWNjZXB0ZWRTaXplID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc3RhdGUgPSAwIC8qIEluaXRpYWwgKi87XG4gICAgfVxuICAgIFJlc2l6ZVNlcnZpY2UucHJvdG90eXBlLmFjY2VwdFNpemUgPSBmdW5jdGlvbiAoc2l6ZSkge1xuICAgICAgICBpZiAoc2l6ZSA9PT0gdm9pZCAwKSB7IHNpemUgPSB0aGlzLm1lYXN1cmUoKTsgfVxuICAgICAgICB0aGlzLmxhc3RXaWR0aCA9IHNpemUud2lkdGg7XG4gICAgICAgIHRoaXMubGFzdEhlaWdodCA9IHNpemUuaGVpZ2h0O1xuICAgICAgICB0aGlzLmFjY2VwdGVkU2l6ZSA9IHRydWU7XG4gICAgfTtcbiAgICBSZXNpemVTZXJ2aWNlLnByb3RvdHlwZS5jaGVja0NoYW5nZXMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmICghaXNEb2N1bWVudEF2YWlsYWJsZSgpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuc3RhdGUgPT09IDAgLyogSW5pdGlhbCAqLykge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IDEgLyogSW5pdGlhbGl6aW5nICovO1xuICAgICAgICAgICAgLy8gYmF0Y2ggaW5pdGlhbCBtZWFzdXJlXG4gICAgICAgICAgICB0aGlzLnJlc2l6ZUJhdGNoU2VydmljZS5zY2hlZHVsZSh0aGlzLCB0aGlzLmluaXQpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBSZXNpemVTZXJ2aWNlLnByb3RvdHlwZS5kZXN0cm95ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB0aGlzLnJlc2l6ZUJhdGNoU2VydmljZS5jYW5jZWwodGhpcyk7XG4gICAgfTtcbiAgICBSZXNpemVTZXJ2aWNlLnByb3RvdHlwZS5jaGVja1NpemUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmICghdGhpcy5wYXJlbnRFbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdmFyIF9hID0gdGhpcy5tZWFzdXJlKCksIHdpZHRoID0gX2Eud2lkdGgsIGhlaWdodCA9IF9hLmhlaWdodDtcbiAgICAgICAgdmFyIHNhbWVTaXplID0gd2lkdGggPT09IHRoaXMubGFzdFdpZHRoICYmIGhlaWdodCA9PT0gdGhpcy5sYXN0SGVpZ2h0O1xuICAgICAgICBpZiAoc2FtZVNpemUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmxhc3RXaWR0aCA9IHdpZHRoO1xuICAgICAgICB0aGlzLmxhc3RIZWlnaHQgPSBoZWlnaHQ7XG4gICAgICAgIHRoaXMuYWNjZXB0ZWRTaXplID0gZmFsc2U7XG4gICAgICAgIHRoaXMucmVzaXplLmVtaXQoKTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfTtcbiAgICBSZXNpemVTZXJ2aWNlLnByb3RvdHlwZS5pbml0U2l6ZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIHNpemUgPSB0aGlzLm1lYXN1cmUoKTtcbiAgICAgICAgdGhpcy5sYXN0V2lkdGggPSBzaXplLndpZHRoO1xuICAgICAgICB0aGlzLmxhc3RIZWlnaHQgPSBzaXplLmhlaWdodDtcbiAgICB9O1xuICAgIFJlc2l6ZVNlcnZpY2UucHJvdG90eXBlLm1lYXN1cmUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciB3aWR0aCA9IDA7XG4gICAgICAgIHZhciBoZWlnaHQgPSAwO1xuICAgICAgICBpZiAodGhpcy5wYXJlbnRFbGVtZW50KSB7XG4gICAgICAgICAgICBoZWlnaHQgPSB0aGlzLnBhcmVudEVsZW1lbnQub2Zmc2V0SGVpZ2h0O1xuICAgICAgICAgICAgd2lkdGggPSB0aGlzLnBhcmVudEVsZW1lbnQub2Zmc2V0V2lkdGg7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgaGVpZ2h0OiBoZWlnaHQsIHdpZHRoOiB3aWR0aCB9O1xuICAgIH07XG4gICAgcmV0dXJuIFJlc2l6ZVNlcnZpY2U7XG59KCkpO1xuXG4vLyB0c2xpbnQ6ZGlzYWJsZTpkZXByZWNhdGlvblxudmFyIGRpdiA9IGZ1bmN0aW9uIChzdHlsZSkge1xuICAgIHZhciBlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIGVsLnN0eWxlLmNzc1RleHQgPSBzdHlsZTtcbiAgICByZXR1cm4gZWw7XG59O1xudmFyIGNvbXB1dGVkUHJvcCA9IGZ1bmN0aW9uIChlbGVtLCBwcm9wKSB7XG4gICAgcmV0dXJuIGdldENvbXB1dGVkU3R5bGUoZWxlbSwgbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZShwcm9wKTtcbn07XG52YXIgV1JBUF9TVFlMRSA9ICdwb3NpdGlvbjogYWJzb2x1dGU7IGRpc3BsYXk6IGJsb2NrOyBsZWZ0OiAwOyB0b3A6IDA7IHJpZ2h0OiAwOyBib3R0b206IDA7IHotaW5kZXg6IC0xOycgK1xuICAgICdvdmVyZmxvdzogaGlkZGVuOyB2aXNpYmlsaXR5OiBoaWRkZW47JztcbnZhciBFWFBBTkRfQ0hJTERfU1RZTEUgPSAncG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAwOyB0b3A6IDA7IHRyYW5zaXRpb246IDBzOyc7XG52YXIgU0hSSU5LX0NISUxEX1NUWUxFID0gRVhQQU5EX0NISUxEX1NUWUxFICsgJ3dpZHRoOiAyMDAlOyBoZWlnaHQ6IDIwMCU7JztcbnZhciBSZXNpemVDb21wYXRTZXJ2aWNlID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhSZXNpemVDb21wYXRTZXJ2aWNlLCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIFJlc2l6ZUNvbXBhdFNlcnZpY2UocmVzaXplQmF0Y2hTZXJ2aWNlLCBlbGVtZW50LCBuZ1pvbmUpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgcmVzaXplQmF0Y2hTZXJ2aWNlKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5lbGVtZW50ID0gZWxlbWVudDtcbiAgICAgICAgX3RoaXMubmdab25lID0gbmdab25lO1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIFJlc2l6ZUNvbXBhdFNlcnZpY2UucHJvdG90eXBlLmNoZWNrQ2hhbmdlcyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKHRoaXMuc3RhdGUgPT09IDIgLyogSW5pdGlhbGl6ZWQgKi8pIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5yZXNpemVCYXRjaFNlcnZpY2UuaXNTY2hlZHVsZWQodGhpcykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlc2l6ZUJhdGNoU2VydmljZS5zY2hlZHVsZSh0aGlzLCB0aGlzLmNoZWNrU2l6ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgX3N1cGVyLnByb3RvdHlwZS5jaGVja0NoYW5nZXMuY2FsbCh0aGlzKTtcbiAgICB9O1xuICAgIFJlc2l6ZUNvbXBhdFNlcnZpY2UucHJvdG90eXBlLmRlc3Ryb3kgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIF9zdXBlci5wcm90b3R5cGUuZGVzdHJveS5jYWxsKHRoaXMpO1xuICAgICAgICBpZiAodGhpcy5zdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuZXhwYW5kKSB7XG4gICAgICAgICAgICB2YXIgZWxlbWVudCA9IHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50O1xuICAgICAgICAgICAgZWxlbWVudC5yZW1vdmVDaGlsZCh0aGlzLmV4cGFuZCk7XG4gICAgICAgICAgICBlbGVtZW50LnJlbW92ZUNoaWxkKHRoaXMuc2hyaW5rKTtcbiAgICAgICAgICAgIHRoaXMuZXhwYW5kLnJlbW92ZUNoaWxkKHRoaXMuZXhwYW5kQ2hpbGQpO1xuICAgICAgICAgICAgdGhpcy5leHBhbmQgPSB0aGlzLmV4cGFuZENoaWxkID0gdGhpcy5zaHJpbmsgPSB0aGlzLmVsZW1lbnQgPSBudWxsO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBSZXNpemVDb21wYXRTZXJ2aWNlLnByb3RvdHlwZS5jaGVja1NpemUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmIChfc3VwZXIucHJvdG90eXBlLmNoZWNrU2l6ZS5jYWxsKHRoaXMpKSB7XG4gICAgICAgICAgICB0aGlzLnJlc2V0KCk7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgUmVzaXplQ29tcGF0U2VydmljZS5wcm90b3R5cGUuaW5pdCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIHBhcmVudEVsZW1lbnQgPSB0aGlzLnBhcmVudEVsZW1lbnQgPSB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50O1xuICAgICAgICBpZiAoY29tcHV0ZWRQcm9wKHBhcmVudEVsZW1lbnQsICdwb3NpdGlvbicpID09PSAnc3RhdGljJykge1xuICAgICAgICAgICAgcGFyZW50RWxlbWVudC5zdHlsZS5wb3NpdGlvbiA9ICdyZWxhdGl2ZSc7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zdGF0ZSA9IDIgLyogSW5pdGlhbGl6ZWQgKi87XG4gICAgICAgIHRoaXMucmVuZGVyKCk7XG4gICAgICAgIHRoaXMucmVzZXQoKTtcbiAgICAgICAgdGhpcy5pbml0U2l6ZSgpO1xuICAgICAgICB0aGlzLnN1YnNjcmliZSgpO1xuICAgIH07XG4gICAgUmVzaXplQ29tcGF0U2VydmljZS5wcm90b3R5cGUucmVuZGVyID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgZWxlbWVudCA9IHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50O1xuICAgICAgICBlbGVtZW50LnN0eWxlLmNzc1RleHQgPSBXUkFQX1NUWUxFO1xuICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgnZGlyJywgJ2x0cicpO1xuICAgICAgICB0aGlzLmV4cGFuZCA9IGRpdihXUkFQX1NUWUxFKTtcbiAgICAgICAgdGhpcy5leHBhbmRDaGlsZCA9IGRpdihFWFBBTkRfQ0hJTERfU1RZTEUpO1xuICAgICAgICB0aGlzLmV4cGFuZC5hcHBlbmRDaGlsZCh0aGlzLmV4cGFuZENoaWxkKTtcbiAgICAgICAgZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLmV4cGFuZCk7XG4gICAgICAgIHRoaXMuc2hyaW5rID0gZGl2KFdSQVBfU1RZTEUpO1xuICAgICAgICB2YXIgc2hyaW5rQ2hpbGQgPSBkaXYoU0hSSU5LX0NISUxEX1NUWUxFKTtcbiAgICAgICAgdGhpcy5zaHJpbmsuYXBwZW5kQ2hpbGQoc2hyaW5rQ2hpbGQpO1xuICAgICAgICBlbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuc2hyaW5rKTtcbiAgICB9O1xuICAgIFJlc2l6ZUNvbXBhdFNlcnZpY2UucHJvdG90eXBlLnJlc2V0ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgZXhwYW5kQ2hpbGQgPSB0aGlzLmV4cGFuZENoaWxkO1xuICAgICAgICBleHBhbmRDaGlsZC5zdHlsZS53aWR0aCA9IDEwMDAwMCArICdweCc7XG4gICAgICAgIGV4cGFuZENoaWxkLnN0eWxlLmhlaWdodCA9IDEwMDAwMCArICdweCc7XG4gICAgICAgIHZhciBleHBhbmQgPSB0aGlzLmV4cGFuZDtcbiAgICAgICAgZXhwYW5kLnNjcm9sbExlZnQgPSAxMDAwMDA7XG4gICAgICAgIGV4cGFuZC5zY3JvbGxUb3AgPSAxMDAwMDA7XG4gICAgICAgIHZhciBzaHJpbmsgPSB0aGlzLnNocmluaztcbiAgICAgICAgc2hyaW5rLnNjcm9sbExlZnQgPSAxMDAwMDA7XG4gICAgICAgIHNocmluay5zY3JvbGxUb3AgPSAxMDAwMDA7XG4gICAgfTtcbiAgICBSZXNpemVDb21wYXRTZXJ2aWNlLnByb3RvdHlwZS5zdWJzY3JpYmUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIF90aGlzLnN1YnNjcmlwdGlvbiA9IG1lcmdlKGZyb21FdmVudChfdGhpcy5zaHJpbmssICdzY3JvbGwnKSwgZnJvbUV2ZW50KF90aGlzLmV4cGFuZCwgJ3Njcm9sbCcpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIF90aGlzLmNoZWNrU2l6ZSgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgcmV0dXJuIFJlc2l6ZUNvbXBhdFNlcnZpY2U7XG59KFJlc2l6ZVNlcnZpY2UpKTtcblxudmFyIEhBU19PQlNFUlZFUiA9IHR5cGVvZiBSZXNpemVPYnNlcnZlciAhPT0gJ3VuZGVmaW5lZCc7XG4vKipcbiAqIEBoaWRkZW5cbiAqL1xudmFyIFJlc2l6ZU9ic2VydmVyU2VydmljZSA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoUmVzaXplT2JzZXJ2ZXJTZXJ2aWNlLCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIFJlc2l6ZU9ic2VydmVyU2VydmljZShyZXNpemVCYXRjaFNlcnZpY2UsIGVsZW1lbnQsIG5nWm9uZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCByZXNpemVCYXRjaFNlcnZpY2UpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLmVsZW1lbnQgPSBlbGVtZW50O1xuICAgICAgICBfdGhpcy5uZ1pvbmUgPSBuZ1pvbmU7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgUmVzaXplT2JzZXJ2ZXJTZXJ2aWNlLnN1cHBvcnRlZCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIEhBU19PQlNFUlZFUjtcbiAgICB9O1xuICAgIFJlc2l6ZU9ic2VydmVyU2VydmljZS5wcm90b3R5cGUuZGVzdHJveSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgX3N1cGVyLnByb3RvdHlwZS5kZXN0cm95LmNhbGwodGhpcyk7XG4gICAgICAgIGlmICh0aGlzLnJlc2l6ZU9ic2VydmVyKSB7XG4gICAgICAgICAgICB0aGlzLnJlc2l6ZU9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgICAgICAgIHRoaXMucmVzaXplT2JzZXJ2ZXIgPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucGFyZW50RWxlbWVudCA9IG51bGw7XG4gICAgfTtcbiAgICBSZXNpemVPYnNlcnZlclNlcnZpY2UucHJvdG90eXBlLmluaXQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIHRoaXMucGFyZW50RWxlbWVudCA9IHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQ7XG4gICAgICAgIHRoaXMuaW5pdFNpemUoKTtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IDIgLyogSW5pdGlhbGl6ZWQgKi87XG4gICAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIF90aGlzLnJlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZU9ic2VydmVyKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBfdGhpcy5jaGVja1NpemUoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgX3RoaXMucmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZShfdGhpcy5wYXJlbnRFbGVtZW50KTtcbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICByZXR1cm4gUmVzaXplT2JzZXJ2ZXJTZXJ2aWNlO1xufShSZXNpemVTZXJ2aWNlKSk7XG5cbi8qIHRzbGludDpkaXNhYmxlOmFsaWduICovXG4vKipcbiAqIEBoaWRkZW5cbiAqL1xudmFyIFJlc2l6ZUJhdGNoU2VydmljZSA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBSZXNpemVCYXRjaFNlcnZpY2Uobmdab25lKSB7XG4gICAgICAgIHRoaXMubmdab25lID0gbmdab25lO1xuICAgICAgICB0aGlzLnNjaGVkdWxlZCA9IFtdO1xuICAgICAgICB0aGlzLnJlc29sdmVkUHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZShudWxsKTtcbiAgICAgICAgdGhpcy5mbHVzaCA9IHRoaXMuZmx1c2guYmluZCh0aGlzKTtcbiAgICB9XG4gICAgUmVzaXplQmF0Y2hTZXJ2aWNlLnByb3RvdHlwZS5zY2hlZHVsZSA9IGZ1bmN0aW9uIChpbnN0YW5jZSwgbWV0aG9kKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIHRoaXMuc2NoZWR1bGVkLnB1c2goeyBpbnN0YW5jZTogaW5zdGFuY2UsIG1ldGhvZDogbWV0aG9kIH0pO1xuICAgICAgICBpZiAoIXRoaXMuc3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcihmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgX3RoaXMuc3Vic2NyaXB0aW9uID0gZnJvbShfdGhpcy5yZXNvbHZlZFByb21pc2UpXG4gICAgICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoX3RoaXMuZmx1c2gpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIFJlc2l6ZUJhdGNoU2VydmljZS5wcm90b3R5cGUuaXNTY2hlZHVsZWQgPSBmdW5jdGlvbiAoaW5zdGFuY2UpIHtcbiAgICAgICAgcmV0dXJuIEJvb2xlYW4odGhpcy5zY2hlZHVsZWQuZmluZChmdW5jdGlvbiAoaXRlbSkgeyByZXR1cm4gaXRlbS5pbnN0YW5jZSA9PT0gaW5zdGFuY2U7IH0pKTtcbiAgICB9O1xuICAgIFJlc2l6ZUJhdGNoU2VydmljZS5wcm90b3R5cGUuY2FuY2VsID0gZnVuY3Rpb24gKGluc3RhbmNlKSB7XG4gICAgICAgIHZhciBzY2hlZHVsZWQgPSB0aGlzLnNjaGVkdWxlZDtcbiAgICAgICAgdmFyIGNvdW50ID0gc2NoZWR1bGVkLmxlbmd0aDtcbiAgICAgICAgZm9yICh2YXIgaWR4ID0gMDsgaWR4IDwgY291bnQ7IGlkeCsrKSB7XG4gICAgICAgICAgICBpZiAoc2NoZWR1bGVkW2lkeF0uaW5zdGFuY2UgPT09IGluc3RhbmNlKSB7XG4gICAgICAgICAgICAgICAgc2NoZWR1bGVkLnNwbGljZShpZHgsIDEpO1xuICAgICAgICAgICAgICAgIGlmICghc2NoZWR1bGVkLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH07XG4gICAgUmVzaXplQmF0Y2hTZXJ2aWNlLnByb3RvdHlwZS5uZ09uRGVzdHJveSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdGhpcy51bnN1YnNjcmliZSgpO1xuICAgIH07XG4gICAgUmVzaXplQmF0Y2hTZXJ2aWNlLnByb3RvdHlwZS51bnN1YnNjcmliZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24gPSBudWxsO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBSZXNpemVCYXRjaFNlcnZpY2UucHJvdG90eXBlLmZsdXNoID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB0aGlzLnNjaGVkdWxlZC5mb3JFYWNoKGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgICAgICAgICBpdGVtLm1ldGhvZC5jYWxsKGl0ZW0uaW5zdGFuY2UpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5zY2hlZHVsZWQgPSBbXTtcbiAgICAgICAgdGhpcy51bnN1YnNjcmliZSgpO1xuICAgIH07XG4gICAgUmVzaXplQmF0Y2hTZXJ2aWNlLmRlY29yYXRvcnMgPSBbXG4gICAgICAgIHsgdHlwZTogSW5qZWN0YWJsZSB9LFxuICAgIF07XG4gICAgLyoqIEBub2NvbGxhcHNlICovXG4gICAgUmVzaXplQmF0Y2hTZXJ2aWNlLmN0b3JQYXJhbWV0ZXJzID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gW1xuICAgICAgICB7IHR5cGU6IE5nWm9uZSB9XG4gICAgXTsgfTtcbiAgICByZXR1cm4gUmVzaXplQmF0Y2hTZXJ2aWNlO1xufSgpKTtcblxuLyoqXG4gKiBFbWl0IHVwIHRvIDEwIHJlc2l6ZSBldmVudHMgcGVyIHNlY29uZCBieSBkZWZhdWx0LlxuICogQ2hvc2VuIGFzIGEgY29tcHJvbWlzZSBiZXR3ZWVuIHJlc3BvbnNpdmVuZXNzIGFuZCBwZXJmb3JtYW5jZS5cbiAqL1xudmFyIERFRkFVTFRfUkFURV9MSU1JVCA9IDEwO1xuLyoqXG4gKiBSZXNpemUgU2Vuc29yIENvbXBvbmVudFxuICpcbiAqIFRyaWdnZXJzIGEgXCJyZXNpemVcIiBldmVudCB3aGVuZXZlciB0aGUgcGFyZW50IERPTSBlbGVtZW50IHNpemUgY2hhbmdlcy5cbiAqL1xudmFyIFJlc2l6ZVNlbnNvckNvbXBvbmVudCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBSZXNpemVTZW5zb3JDb21wb25lbnQocmVzaXplQmF0Y2hTZXJ2aWNlLCBlbGVtZW50LCBuZ1pvbmUpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRoZSBtYXhpbXVtIG51bWJlciBvZiByZXNpemUgZXZlbnRzIHRvIGVtaXQgcGVyIHNlY29uZC5cbiAgICAgICAgICpcbiAgICAgICAgICogRGVmYXVsdHMgdG8gMTAuXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLnJhdGVMaW1pdCA9IERFRkFVTFRfUkFURV9MSU1JVDtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEZpcmVzIHdoZW4gdGhlIHBhcmVudCBET00gZWxlbWVudCBoYXMgYmVlbiByZXNpemVkLlxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5yZXNpemUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgICAgIHZhciBzZXJ2aWNlVHlwZSA9IFJlc2l6ZU9ic2VydmVyU2VydmljZS5zdXBwb3J0ZWQoKSA/IFJlc2l6ZU9ic2VydmVyU2VydmljZSA6IFJlc2l6ZUNvbXBhdFNlcnZpY2U7XG4gICAgICAgIHRoaXMucmVzaXplU2VydmljZSA9IG5ldyBzZXJ2aWNlVHlwZShyZXNpemVCYXRjaFNlcnZpY2UsIGVsZW1lbnQsIG5nWm9uZSk7XG4gICAgICAgIHZhciB0aHJvdHRsZVRpbWUgPSAxMDAwIC8gKHRoaXMucmF0ZUxpbWl0IHx8IERFRkFVTFRfUkFURV9MSU1JVCk7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy5yZXNpemVTZXJ2aWNlLnJlc2l6ZVxuICAgICAgICAgICAgLnBpcGUoYXVkaXRUaW1lKHRocm90dGxlVGltZSkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGlmICghX3RoaXMucmVzaXplU2VydmljZS5hY2NlcHRlZFNpemUpIHtcbiAgICAgICAgICAgICAgICBfdGhpcy5yZXNpemUuZW1pdCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgUmVzaXplU2Vuc29yQ29tcG9uZW50LnByb3RvdHlwZS5uZ0FmdGVyVmlld0NoZWNrZWQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHRoaXMucmVzaXplU2VydmljZS5jaGVja0NoYW5nZXMoKTtcbiAgICB9O1xuICAgIFJlc2l6ZVNlbnNvckNvbXBvbmVudC5wcm90b3R5cGUubmdPbkRlc3Ryb3kgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMucmVzaXplU2VydmljZS5kZXN0cm95KCk7XG4gICAgfTtcbiAgICBSZXNpemVTZW5zb3JDb21wb25lbnQucHJvdG90eXBlLmFjY2VwdFNpemUgPSBmdW5jdGlvbiAoc2l6ZSkge1xuICAgICAgICB0aGlzLnJlc2l6ZVNlcnZpY2UuYWNjZXB0U2l6ZShzaXplKTtcbiAgICB9O1xuICAgIFJlc2l6ZVNlbnNvckNvbXBvbmVudC5kZWNvcmF0b3JzID0gW1xuICAgICAgICB7IHR5cGU6IENvbXBvbmVudCwgYXJnczogW3tcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0b3I6ICdrZW5kby1yZXNpemUtc2Vuc29yJyxcbiAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGU6ICcnXG4gICAgICAgICAgICAgICAgfSxdIH0sXG4gICAgXTtcbiAgICAvKiogQG5vY29sbGFwc2UgKi9cbiAgICBSZXNpemVTZW5zb3JDb21wb25lbnQuY3RvclBhcmFtZXRlcnMgPSBmdW5jdGlvbiAoKSB7IHJldHVybiBbXG4gICAgICAgIHsgdHlwZTogUmVzaXplQmF0Y2hTZXJ2aWNlIH0sXG4gICAgICAgIHsgdHlwZTogRWxlbWVudFJlZiB9LFxuICAgICAgICB7IHR5cGU6IE5nWm9uZSB9XG4gICAgXTsgfTtcbiAgICBSZXNpemVTZW5zb3JDb21wb25lbnQucHJvcERlY29yYXRvcnMgPSB7XG4gICAgICAgIHJhdGVMaW1pdDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHJlc2l6ZTogW3sgdHlwZTogT3V0cHV0IH1dXG4gICAgfTtcbiAgICByZXR1cm4gUmVzaXplU2Vuc29yQ29tcG9uZW50O1xufSgpKTtcblxudmFyIENPTVBPTkVOVF9ESVJFQ1RJVkVTID0gW1Jlc2l6ZVNlbnNvckNvbXBvbmVudF07XG4vKipcbiAqIFJlc2l6ZSBTZW5zb3IgbW9kdWxlXG4gKi9cbnZhciBSZXNpemVTZW5zb3JNb2R1bGUgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gUmVzaXplU2Vuc29yTW9kdWxlKCkge1xuICAgIH1cbiAgICBSZXNpemVTZW5zb3JNb2R1bGUuZGVjb3JhdG9ycyA9IFtcbiAgICAgICAgeyB0eXBlOiBOZ01vZHVsZSwgYXJnczogW3tcbiAgICAgICAgICAgICAgICAgICAgZGVjbGFyYXRpb25zOiBbQ09NUE9ORU5UX0RJUkVDVElWRVNdLFxuICAgICAgICAgICAgICAgICAgICBleHBvcnRzOiBbQ09NUE9ORU5UX0RJUkVDVElWRVNdLFxuICAgICAgICAgICAgICAgICAgICBwcm92aWRlcnM6IFtSZXNpemVCYXRjaFNlcnZpY2VdXG4gICAgICAgICAgICAgICAgfSxdIH0sXG4gICAgXTtcbiAgICByZXR1cm4gUmVzaXplU2Vuc29yTW9kdWxlO1xufSgpKTtcblxudmFyIEtlbmRvSW5wdXQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gS2VuZG9JbnB1dCgpIHtcbiAgICB9XG4gICAgcmV0dXJuIEtlbmRvSW5wdXQ7XG59KCkpO1xuXG4vKipcbiAqIEVudW0gd2l0aCBrZXkgY29kZXMuXG4gKi9cbnZhciBLZXlzO1xuKGZ1bmN0aW9uIChLZXlzKSB7XG4gICAgS2V5c1tLZXlzW1wiQWx0XCJdID0gMThdID0gXCJBbHRcIjtcbiAgICBLZXlzW0tleXNbXCJBcnJvd0Rvd25cIl0gPSA0MF0gPSBcIkFycm93RG93blwiO1xuICAgIEtleXNbS2V5c1tcIkFycm93TGVmdFwiXSA9IDM3XSA9IFwiQXJyb3dMZWZ0XCI7XG4gICAgS2V5c1tLZXlzW1wiQXJyb3dSaWdodFwiXSA9IDM5XSA9IFwiQXJyb3dSaWdodFwiO1xuICAgIEtleXNbS2V5c1tcIkFycm93VXBcIl0gPSAzOF0gPSBcIkFycm93VXBcIjtcbiAgICBLZXlzW0tleXNbXCJCYWNrc3BhY2VcIl0gPSA4XSA9IFwiQmFja3NwYWNlXCI7XG4gICAgS2V5c1tLZXlzW1wiQ29udHJvbFwiXSA9IDE3XSA9IFwiQ29udHJvbFwiO1xuICAgIEtleXNbS2V5c1tcIkRlbGV0ZVwiXSA9IDQ2XSA9IFwiRGVsZXRlXCI7XG4gICAgS2V5c1tLZXlzW1wiRGlnaXQwXCJdID0gNDhdID0gXCJEaWdpdDBcIjtcbiAgICBLZXlzW0tleXNbXCJEaWdpdDFcIl0gPSA0OV0gPSBcIkRpZ2l0MVwiO1xuICAgIEtleXNbS2V5c1tcIkRpZ2l0MlwiXSA9IDUwXSA9IFwiRGlnaXQyXCI7XG4gICAgS2V5c1tLZXlzW1wiRGlnaXQzXCJdID0gNTFdID0gXCJEaWdpdDNcIjtcbiAgICBLZXlzW0tleXNbXCJEaWdpdDRcIl0gPSA1Ml0gPSBcIkRpZ2l0NFwiO1xuICAgIEtleXNbS2V5c1tcIkRpZ2l0NVwiXSA9IDUzXSA9IFwiRGlnaXQ1XCI7XG4gICAgS2V5c1tLZXlzW1wiRGlnaXQ2XCJdID0gNTRdID0gXCJEaWdpdDZcIjtcbiAgICBLZXlzW0tleXNbXCJEaWdpdDdcIl0gPSA1NV0gPSBcIkRpZ2l0N1wiO1xuICAgIEtleXNbS2V5c1tcIkRpZ2l0OFwiXSA9IDU2XSA9IFwiRGlnaXQ4XCI7XG4gICAgS2V5c1tLZXlzW1wiRGlnaXQ5XCJdID0gNTddID0gXCJEaWdpdDlcIjtcbiAgICBLZXlzW0tleXNbXCJFbmRcIl0gPSAzNV0gPSBcIkVuZFwiO1xuICAgIEtleXNbS2V5c1tcIkVudGVyXCJdID0gMTNdID0gXCJFbnRlclwiO1xuICAgIEtleXNbS2V5c1tcIkVzY2FwZVwiXSA9IDI3XSA9IFwiRXNjYXBlXCI7XG4gICAgS2V5c1tLZXlzW1wiRjFcIl0gPSAxMTJdID0gXCJGMVwiO1xuICAgIEtleXNbS2V5c1tcIkYyXCJdID0gMTEzXSA9IFwiRjJcIjtcbiAgICBLZXlzW0tleXNbXCJGMTBcIl0gPSAxMjFdID0gXCJGMTBcIjtcbiAgICBLZXlzW0tleXNbXCJIb21lXCJdID0gMzZdID0gXCJIb21lXCI7XG4gICAgS2V5c1tLZXlzW1wiSW5zZXJ0XCJdID0gNDVdID0gXCJJbnNlcnRcIjtcbiAgICBLZXlzW0tleXNbXCJLZXlBXCJdID0gNjVdID0gXCJLZXlBXCI7XG4gICAgS2V5c1tLZXlzW1wiS2V5QlwiXSA9IDY2XSA9IFwiS2V5QlwiO1xuICAgIEtleXNbS2V5c1tcIktleUNcIl0gPSA2N10gPSBcIktleUNcIjtcbiAgICBLZXlzW0tleXNbXCJLZXlEXCJdID0gNjhdID0gXCJLZXlEXCI7XG4gICAgS2V5c1tLZXlzW1wiS2V5RVwiXSA9IDY5XSA9IFwiS2V5RVwiO1xuICAgIEtleXNbS2V5c1tcIktleUZcIl0gPSA3MF0gPSBcIktleUZcIjtcbiAgICBLZXlzW0tleXNbXCJLZXlHXCJdID0gNzFdID0gXCJLZXlHXCI7XG4gICAgS2V5c1tLZXlzW1wiS2V5SFwiXSA9IDcyXSA9IFwiS2V5SFwiO1xuICAgIEtleXNbS2V5c1tcIktleUlcIl0gPSA3M10gPSBcIktleUlcIjtcbiAgICBLZXlzW0tleXNbXCJLZXlKXCJdID0gNzRdID0gXCJLZXlKXCI7XG4gICAgS2V5c1tLZXlzW1wiS2V5S1wiXSA9IDc1XSA9IFwiS2V5S1wiO1xuICAgIEtleXNbS2V5c1tcIktleUxcIl0gPSA3Nl0gPSBcIktleUxcIjtcbiAgICBLZXlzW0tleXNbXCJLZXlNXCJdID0gNzddID0gXCJLZXlNXCI7XG4gICAgS2V5c1tLZXlzW1wiS2V5TlwiXSA9IDc4XSA9IFwiS2V5TlwiO1xuICAgIEtleXNbS2V5c1tcIktleU9cIl0gPSA3OV0gPSBcIktleU9cIjtcbiAgICBLZXlzW0tleXNbXCJLZXlQXCJdID0gODBdID0gXCJLZXlQXCI7XG4gICAgS2V5c1tLZXlzW1wiS2V5UVwiXSA9IDgxXSA9IFwiS2V5UVwiO1xuICAgIEtleXNbS2V5c1tcIktleVJcIl0gPSA4Ml0gPSBcIktleVJcIjtcbiAgICBLZXlzW0tleXNbXCJLZXlTXCJdID0gODNdID0gXCJLZXlTXCI7XG4gICAgS2V5c1tLZXlzW1wiS2V5VFwiXSA9IDg0XSA9IFwiS2V5VFwiO1xuICAgIEtleXNbS2V5c1tcIktleVVcIl0gPSA4NV0gPSBcIktleVVcIjtcbiAgICBLZXlzW0tleXNbXCJLZXlWXCJdID0gODZdID0gXCJLZXlWXCI7XG4gICAgS2V5c1tLZXlzW1wiS2V5V1wiXSA9IDg3XSA9IFwiS2V5V1wiO1xuICAgIEtleXNbS2V5c1tcIktleVhcIl0gPSA4OF0gPSBcIktleVhcIjtcbiAgICBLZXlzW0tleXNbXCJLZXlZXCJdID0gODldID0gXCJLZXlZXCI7XG4gICAgS2V5c1tLZXlzW1wiS2V5WlwiXSA9IDkwXSA9IFwiS2V5WlwiO1xuICAgIEtleXNbS2V5c1tcIk51bXBhZERlY2ltYWxcIl0gPSAxMTBdID0gXCJOdW1wYWREZWNpbWFsXCI7XG4gICAgS2V5c1tLZXlzW1wiUGFnZURvd25cIl0gPSAzNF0gPSBcIlBhZ2VEb3duXCI7XG4gICAgS2V5c1tLZXlzW1wiUGFnZVVwXCJdID0gMzNdID0gXCJQYWdlVXBcIjtcbiAgICBLZXlzW0tleXNbXCJTaGlmdFwiXSA9IDE2XSA9IFwiU2hpZnRcIjtcbiAgICBLZXlzW0tleXNbXCJTcGFjZVwiXSA9IDMyXSA9IFwiU3BhY2VcIjtcbiAgICBLZXlzW0tleXNbXCJUYWJcIl0gPSA5XSA9IFwiVGFiXCI7XG59KShLZXlzIHx8IChLZXlzID0ge30pKTtcblxuLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgeyBSZXNpemVTZXJ2aWNlLCBEcmFnZ2FibGVEaXJlY3RpdmUsIERyYWdnYWJsZU1vZHVsZSwgRXZlbnRzT3V0c2lkZUFuZ3VsYXJEaXJlY3RpdmUsIEV2ZW50c01vZHVsZSwgUmVzaXplU2Vuc29yQ29tcG9uZW50LCBSZXNpemVCYXRjaFNlcnZpY2UsIFJlc2l6ZUNvbXBhdFNlcnZpY2UsIFJlc2l6ZU9ic2VydmVyU2VydmljZSwgUmVzaXplU2Vuc29yTW9kdWxlLCBLZW5kb0lucHV0LCBpc0RvY3VtZW50QXZhaWxhYmxlLCBpc0NoYW5nZWQsIGFueUNoYW5nZWQsIGhhc09ic2VydmVycywgZ3VpZCwgS2V5cyB9O1xuIl19 + + }), + + "./node_modules/@progress/kendo-angular-intl/__ivy_ngcc__/dist/fesm5/index.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "cldrServiceFactory", function() { return cldrServiceFactory; }); + __webpack_require__.d(__webpack_exports__, "IntlService", function() { return IntlService; }); + __webpack_require__.d(__webpack_exports__, "CldrIntlService", function() { return CldrIntlService; }); + __webpack_require__.d(__webpack_exports__, "DatePipe", function() { return DatePipe; }); + __webpack_require__.d(__webpack_exports__, "ɵ0", function() { return ɵ0; }); + __webpack_require__.d(__webpack_exports__, "NumberPipe", function() { return NumberPipe; }); + __webpack_require__.d(__webpack_exports__, "IntlModule", function() { return IntlModule; }); + __webpack_require__.d(__webpack_exports__, "dateFormatNames", function() { return dateFormatNames$1; }); + __webpack_require__.d(__webpack_exports__, "dateFieldName", function() { return dateFieldName$1; }); + __webpack_require__.d(__webpack_exports__, "firstDay", function() { return firstDay$1; }); + __webpack_require__.d(__webpack_exports__, "format", function() { return format$1; }); + __webpack_require__.d(__webpack_exports__, "formatDate", function() { return formatDate$1; }); + __webpack_require__.d(__webpack_exports__, "formatNumber", function() { return formatNumber$1; }); + __webpack_require__.d(__webpack_exports__, "load", function() { return load$1; }); + __webpack_require__.d(__webpack_exports__, "numberSymbols", function() { return numberSymbols$1; }); + __webpack_require__.d(__webpack_exports__, "parseDate", function() { return parseDate$1; }); + __webpack_require__.d(__webpack_exports__, "parseNumber", function() { return parseNumber$1; }); + __webpack_require__.d(__webpack_exports__, "splitDateFormat", function() { return splitDateFormat$1; }); + __webpack_require__.d(__webpack_exports__, "toString", function() { return toString$1; }); + __webpack_require__.d(__webpack_exports__, "weekendRange", function() { return weekendRange$1; }); + __webpack_require__.d(__webpack_exports__, "setData", function() { return setData$1; }); + __webpack_require__.d(__webpack_exports__, "localeData", function() { return localeData; }); + var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( 100002); + var tslib__WEBPACK_IMPORTED_MODULE_0___default = __webpack_require__.n(tslib__WEBPACK_IMPORTED_MODULE_0__); + var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( 100003); + var _angular_core__WEBPACK_IMPORTED_MODULE_1___default = __webpack_require__.n(_angular_core__WEBPACK_IMPORTED_MODULE_1__); + var _telerik_kendo_intl__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/main.js"); + + + + + + +var DOCS_URL = 'http://www.telerik.com/kendo-angular-ui/components/internationalization/troubleshooting/'; + +var errorSolutions = { + 'NoCurrency': "Solution: " + DOCS_URL + "#toc-no-currency", + 'NoCurrencyDisplay': "Solution: " + DOCS_URL + "#toc-no-currency-display", + 'NoCurrencyRegion': "Solution: " + DOCS_URL + "#toc-no-currency-region", + 'NoDateFieldNames': "Solution: " + DOCS_URL + "#toc-no-date-filed-names", + 'NoFirstDay': "Solution: " + DOCS_URL + "#toc-no-first-day", + 'NoGMTInfo': "Solution: " + DOCS_URL + "#toc-no-gmt-info", + 'NoLocale': "Solution: " + DOCS_URL + "#toc-no-locale", + 'NoValidCurrency': "Solution: " + DOCS_URL + "#toc-no-valid-currency", + 'NoWeekData': "Solution: " + DOCS_URL + "#toc-no-week-data" +}; + +function formatMessage(error) { + var message = error.message; + var errorSolution = errorSolutions[Object.keys(errorSolutions).filter(function (key) { return message.indexOf(key) === 0; })[0]]; + return errorSolution ? message + " " + errorSolution : message; +} +function intlMethod(fn) { + return function () { + var values = []; + for (var _i = 0; _i < arguments.length; _i++) { + values[_i] = arguments[_i]; + } + try { + return fn.apply(null, values); + } + catch (error) { + error.message = formatMessage(error); + throw error; + } + }; +} + +var dateFormatNames$1 = intlMethod(_telerik_kendo_intl__WEBPACK_IMPORTED_MODULE_2__["dateFormatNames"]); + +var dateFieldName$1 = intlMethod(_telerik_kendo_intl__WEBPACK_IMPORTED_MODULE_2__["dateFieldName"]); + +var firstDay$1 = intlMethod(_telerik_kendo_intl__WEBPACK_IMPORTED_MODULE_2__["firstDay"]); + +var format$1 = intlMethod(_telerik_kendo_intl__WEBPACK_IMPORTED_MODULE_2__["format"]); + +var formatDate$1 = intlMethod(_telerik_kendo_intl__WEBPACK_IMPORTED_MODULE_2__["formatDate"]); + +var formatNumber$1 = intlMethod(_telerik_kendo_intl__WEBPACK_IMPORTED_MODULE_2__["formatNumber"]); + +var load$1 = intlMethod(_telerik_kendo_intl__WEBPACK_IMPORTED_MODULE_2__["load"]); + +var numberSymbols$1 = intlMethod(_telerik_kendo_intl__WEBPACK_IMPORTED_MODULE_2__["numberSymbols"]); + +var parseDate$1 = intlMethod(_telerik_kendo_intl__WEBPACK_IMPORTED_MODULE_2__["parseDate"]); + +var parseNumber$1 = intlMethod(_telerik_kendo_intl__WEBPACK_IMPORTED_MODULE_2__["parseNumber"]); + +var splitDateFormat$1 = intlMethod(_telerik_kendo_intl__WEBPACK_IMPORTED_MODULE_2__["splitDateFormat"]); + +var toString$1 = intlMethod(_telerik_kendo_intl__WEBPACK_IMPORTED_MODULE_2__["toString"]); + +var weekendRange$1 = intlMethod(_telerik_kendo_intl__WEBPACK_IMPORTED_MODULE_2__["weekendRange"]); + +var setData$1 = function (data) { return Object(_telerik_kendo_intl__WEBPACK_IMPORTED_MODULE_2__["setData"])(data); }; + +var localeData = function (locale) { + try { + return Object(_telerik_kendo_intl__WEBPACK_IMPORTED_MODULE_2__["localeInfo"])(locale); + } + catch (error) { + error.message = formatMessage(error); + throw error; + } +}; + +var LOCALE_REGEX = /_/g; + +function cldrServiceFactory(localeId) { + return new CldrIntlService(localeId); +} + +var IntlService = (function () { + function IntlService() { + + this.changes = new _angular_core__WEBPACK_IMPORTED_MODULE_1__["EventEmitter"](); + } + + IntlService.prototype.notify = function () { + this.changes.emit(); + }; + IntlService.ngInjectableDef = Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["defineInjectable"])({ factory: function IntlService_Factory() { return cldrServiceFactory(Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["inject"])(_angular_core__WEBPACK_IMPORTED_MODULE_1__["LOCALE_ID"])); }, token: IntlService, providedIn: "root" }); +IntlService.ɵfac = function IntlService_Factory(t) { return new (t || IntlService)(); }; +IntlService.ɵprov = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineInjectable"]({ token: IntlService, factory: function IntlService_Factory(t) { var r = null; if (t) { + r = new t(); + } + else { + r = cldrServiceFactory(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinject"](_angular_core__WEBPACK_IMPORTED_MODULE_1__["LOCALE_ID"])); + } return r; }, providedIn: 'root' }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](IntlService, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Injectable"], + args: [{ + providedIn: 'root', + useFactory: cldrServiceFactory, + deps: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["LOCALE_ID"]] + }] + }], function () { return []; }, null); })(); + return IntlService; +}()); + +var CldrIntlService = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(CldrIntlService, _super); + + function CldrIntlService(localeId) { + var _this = _super.call(this) || this; + _this.localeId = localeId; + return _this; + } + Object.defineProperty(CldrIntlService.prototype, "localeId", { + + get: function () { + return this.locale; + }, + set: function (value) { + // Angular locales use underscore, for example, en_US + // while IETF BCP-47 specifies a dash. + // https://tools.ietf.org/html/bcp47 + var locale = value.replace(LOCALE_REGEX, '-'); + if (locale !== this.locale) { + this.locale = locale; + this.notify(); + } + }, + enumerable: true, + configurable: true + }); + + CldrIntlService.prototype.format = function (format$$1) { + var values = []; + for (var _i = 1; _i < arguments.length; _i++) { + values[_i - 1] = arguments[_i]; + } + return format$1(format$$1, values, this.localeId); + }; + + CldrIntlService.prototype.toString = function (value, format$$1, localeId) { + return toString$1(value, format$$1, localeId || this.localeId); + }; + + CldrIntlService.prototype.formatDate = function (value, format$$1, localeId) { + return formatDate$1(value, format$$1, localeId || this.localeId); + }; + + CldrIntlService.prototype.parseDate = function (value, format$$1, localeId) { + return parseDate$1(value, format$$1, localeId || this.localeId); + }; + + CldrIntlService.prototype.parseNumber = function (value, format$$1, localeId) { + return parseNumber$1(value, localeId || this.localeId, format$$1); + }; + + CldrIntlService.prototype.formatNumber = function (value, format$$1, localeId) { + return formatNumber$1(value, format$$1, localeId || this.localeId); + }; + + CldrIntlService.prototype.dateFieldName = function (options, localeId) { + return dateFieldName$1(options, localeId || this.localeId); + }; + + CldrIntlService.prototype.dateFormatNames = function (options, localeId) { + return dateFormatNames$1(localeId || this.localeId, options); + }; + + CldrIntlService.prototype.splitDateFormat = function (format$$1, localeId) { + return splitDateFormat$1(format$$1, localeId || this.localeId); + }; + + CldrIntlService.prototype.numberSymbols = function (localeId) { + return numberSymbols$1(localeId || this.localeId); + }; + + CldrIntlService.prototype.firstDay = function (localeId) { + return firstDay$1(localeId || this.localeId); + }; + + CldrIntlService.prototype.weekendRange = function (localeId) { + return weekendRange$1(localeId || this.localeId); + }; + + CldrIntlService.ctorParameters = function () { return [ + { type: String, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Inject"], args: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["LOCALE_ID"],] }] } + ]; }; +CldrIntlService.ɵfac = function CldrIntlService_Factory(t) { return new (t || CldrIntlService)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinject"](_angular_core__WEBPACK_IMPORTED_MODULE_1__["LOCALE_ID"])); }; +CldrIntlService.ɵprov = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineInjectable"]({ token: CldrIntlService, factory: function (t) { return CldrIntlService.ɵfac(t); } }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](CldrIntlService, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Injectable"] + }], function () { return [{ type: String, decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Inject"], + args: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["LOCALE_ID"]] + }] }]; }, null); })(); + return CldrIntlService; +}(IntlService)); + +var isNumeric = function (value) { return !isNaN(value - parseFloat(value)); }; +var ɵ0 = isNumeric; + +var DatePipe = (function () { + + function DatePipe(intlService) { + this.intlService = intlService; + } + + DatePipe.prototype.transform = function (value, format$$1, localeId) { + if (format$$1 === void 0) { format$$1 = ""; } + value = this.normalize(value); + if (value) { + return this.intlService.formatDate(value, format$$1, localeId); + } + return value; + }; + DatePipe.prototype.normalize = function (value) { + if (value && typeof value === 'string') { + value = this.intlService.parseDate(value); + } + else if (value && isNumeric(value)) { + value = new Date(parseFloat(value)); + } + return value; + }; + + DatePipe.ctorParameters = function () { return [ + { type: IntlService } + ]; }; +DatePipe.ɵfac = function DatePipe_Factory(t) { return new (t || DatePipe)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](IntlService)); }; +DatePipe.ɵpipe = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefinePipe"]({ name: "kendoDate", type: DatePipe, pure: true }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](DatePipe, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Pipe"], + args: [{ + name: 'kendoDate' + }] + }], function () { return [{ type: IntlService }]; }, null); })(); + return DatePipe; +}()); + + +var NumberPipe = (function () { + + function NumberPipe(intlService) { + this.intlService = intlService; + } + + NumberPipe.prototype.transform = function (value, format$$1, localeId) { + if (typeof value === 'string') { + value = this.intlService.parseNumber(value); + } + if (value !== null && value !== undefined) { + return this.intlService.formatNumber(value, format$$1, localeId); + } + return value; + }; + + NumberPipe.ctorParameters = function () { return [ + { type: IntlService } + ]; }; +NumberPipe.ɵfac = function NumberPipe_Factory(t) { return new (t || NumberPipe)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](IntlService)); }; +NumberPipe.ɵpipe = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefinePipe"]({ name: "kendoNumber", type: NumberPipe, pure: true }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](NumberPipe, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Pipe"], + args: [{ + name: 'kendoNumber' + }] + }], function () { return [{ type: IntlService }]; }, null); })(); + return NumberPipe; +}()); + +var pipes = [ + DatePipe, + NumberPipe +]; + +var IntlModule = (function () { + function IntlModule() { + } +IntlModule.ɵmod = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineNgModule"]({ type: IntlModule }); +IntlModule.ɵinj = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineInjector"]({ factory: function IntlModule_Factory(t) { return new (t || IntlModule)(); } }); +(function () { (typeof ngJitMode === "undefined" || ngJitMode) && _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵsetNgModuleScope"](IntlModule, { declarations: [DatePipe, + NumberPipe], exports: [DatePipe, + NumberPipe] }); })(); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](IntlModule, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["NgModule"], + args: [{ + declarations: [pipes], + exports: [pipes] + }] + }], function () { return []; }, null); })(); + return IntlModule; +}()); + + + + + +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbImluZGV4LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BT007QUFDTjs7Ozs7Ozs7Ozs7Ozs7O2dEQUEwTDtBQUMxTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BR007QUFDTjtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7a0NBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFLTTtBQUNOO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7OztxRUFBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUtNO0FBQ047QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7O3FFQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7O2dEQU1NO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXNDb250ZW50IjpbIi8qKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qIENvcHlyaWdodCDCqSAyMDIwIFByb2dyZXNzIFNvZnR3YXJlIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuKiBMaWNlbnNlZCB1bmRlciBjb21tZXJjaWFsIGxpY2Vuc2UuIFNlZSBMSUNFTlNFLm1kIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIG1vcmUgaW5mb3JtYXRpb25cbiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbmltcG9ydCB7IF9fZXh0ZW5kcyB9IGZyb20gJ3RzbGliJztcbmltcG9ydCB7IEluamVjdGFibGUsIExPQ0FMRV9JRCwgZGVmaW5lSW5qZWN0YWJsZSwgaW5qZWN0LCBJbmplY3QsIEV2ZW50RW1pdHRlciwgUGlwZSwgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGRhdGVGb3JtYXROYW1lcywgZGF0ZUZpZWxkTmFtZSwgZmlyc3REYXksIGZvcm1hdCwgZm9ybWF0RGF0ZSwgZm9ybWF0TnVtYmVyLCBsb2FkLCBudW1iZXJTeW1ib2xzLCBwYXJzZURhdGUsIHBhcnNlTnVtYmVyLCBzcGxpdERhdGVGb3JtYXQsIHRvU3RyaW5nLCB3ZWVrZW5kUmFuZ2UsIHNldERhdGEsIGxvY2FsZUluZm8gfSBmcm9tICdAdGVsZXJpay9rZW5kby1pbnRsJztcblxudmFyIERPQ1NfVVJMID0gJ2h0dHA6Ly93d3cudGVsZXJpay5jb20va2VuZG8tYW5ndWxhci11aS9jb21wb25lbnRzL2ludGVybmF0aW9uYWxpemF0aW9uL3Ryb3VibGVzaG9vdGluZy8nO1xuLyoqXG4gKiBAaGlkZGVuXG4gKi9cbnZhciBlcnJvclNvbHV0aW9ucyA9IHtcbiAgICAnTm9DdXJyZW5jeSc6IFwiU29sdXRpb246IFwiICsgRE9DU19VUkwgKyBcIiN0b2Mtbm8tY3VycmVuY3lcIixcbiAgICAnTm9DdXJyZW5jeURpc3BsYXknOiBcIlNvbHV0aW9uOiBcIiArIERPQ1NfVVJMICsgXCIjdG9jLW5vLWN1cnJlbmN5LWRpc3BsYXlcIixcbiAgICAnTm9DdXJyZW5jeVJlZ2lvbic6IFwiU29sdXRpb246IFwiICsgRE9DU19VUkwgKyBcIiN0b2Mtbm8tY3VycmVuY3ktcmVnaW9uXCIsXG4gICAgJ05vRGF0ZUZpZWxkTmFtZXMnOiBcIlNvbHV0aW9uOiBcIiArIERPQ1NfVVJMICsgXCIjdG9jLW5vLWRhdGUtZmlsZWQtbmFtZXNcIixcbiAgICAnTm9GaXJzdERheSc6IFwiU29sdXRpb246IFwiICsgRE9DU19VUkwgKyBcIiN0b2Mtbm8tZmlyc3QtZGF5XCIsXG4gICAgJ05vR01USW5mbyc6IFwiU29sdXRpb246IFwiICsgRE9DU19VUkwgKyBcIiN0b2Mtbm8tZ210LWluZm9cIixcbiAgICAnTm9Mb2NhbGUnOiBcIlNvbHV0aW9uOiBcIiArIERPQ1NfVVJMICsgXCIjdG9jLW5vLWxvY2FsZVwiLFxuICAgICdOb1ZhbGlkQ3VycmVuY3knOiBcIlNvbHV0aW9uOiBcIiArIERPQ1NfVVJMICsgXCIjdG9jLW5vLXZhbGlkLWN1cnJlbmN5XCIsXG4gICAgJ05vV2Vla0RhdGEnOiBcIlNvbHV0aW9uOiBcIiArIERPQ1NfVVJMICsgXCIjdG9jLW5vLXdlZWstZGF0YVwiXG59O1xuXG5mdW5jdGlvbiBmb3JtYXRNZXNzYWdlKGVycm9yKSB7XG4gICAgdmFyIG1lc3NhZ2UgPSBlcnJvci5tZXNzYWdlO1xuICAgIHZhciBlcnJvclNvbHV0aW9uID0gZXJyb3JTb2x1dGlvbnNbT2JqZWN0LmtleXMoZXJyb3JTb2x1dGlvbnMpLmZpbHRlcihmdW5jdGlvbiAoa2V5KSB7IHJldHVybiBtZXNzYWdlLmluZGV4T2Yoa2V5KSA9PT0gMDsgfSlbMF1dO1xuICAgIHJldHVybiBlcnJvclNvbHV0aW9uID8gbWVzc2FnZSArIFwiIFwiICsgZXJyb3JTb2x1dGlvbiA6IG1lc3NhZ2U7XG59XG5mdW5jdGlvbiBpbnRsTWV0aG9kKGZuKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIHZhbHVlcyA9IFtdO1xuICAgICAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykge1xuICAgICAgICAgICAgdmFsdWVzW19pXSA9IGFyZ3VtZW50c1tfaV07XG4gICAgICAgIH1cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJldHVybiBmbi5hcHBseShudWxsLCB2YWx1ZXMpO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgZXJyb3IubWVzc2FnZSA9IGZvcm1hdE1lc3NhZ2UoZXJyb3IpO1xuICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH1cbiAgICB9O1xufVxuLyoqXG4gKiBAaGlkZGVuXG4gKi9cbnZhciBkYXRlRm9ybWF0TmFtZXMkMSA9IGludGxNZXRob2QoZGF0ZUZvcm1hdE5hbWVzKTtcbi8qKlxuICogQGhpZGRlblxuICovXG52YXIgZGF0ZUZpZWxkTmFtZSQxID0gaW50bE1ldGhvZChkYXRlRmllbGROYW1lKTtcbi8qKlxuICogQGhpZGRlblxuICovXG52YXIgZmlyc3REYXkkMSA9IGludGxNZXRob2QoZmlyc3REYXkpO1xuLyoqXG4gKiBAaGlkZGVuXG4gKi9cbnZhciBmb3JtYXQkMSA9IGludGxNZXRob2QoZm9ybWF0KTtcbi8qKlxuICogQGhpZGRlblxuICovXG52YXIgZm9ybWF0RGF0ZSQxID0gaW50bE1ldGhvZChmb3JtYXREYXRlKTtcbi8qKlxuICogQGhpZGRlblxuICovXG52YXIgZm9ybWF0TnVtYmVyJDEgPSBpbnRsTWV0aG9kKGZvcm1hdE51bWJlcik7XG4vKipcbiAqIEBoaWRkZW5cbiAqL1xudmFyIGxvYWQkMSA9IGludGxNZXRob2QobG9hZCk7XG4vKipcbiAqIEBoaWRkZW5cbiAqL1xudmFyIG51bWJlclN5bWJvbHMkMSA9IGludGxNZXRob2QobnVtYmVyU3ltYm9scyk7XG4vKipcbiAqIEBoaWRkZW5cbiAqL1xudmFyIHBhcnNlRGF0ZSQxID0gaW50bE1ldGhvZChwYXJzZURhdGUpO1xuLyoqXG4gKiBAaGlkZGVuXG4gKi9cbnZhciBwYXJzZU51bWJlciQxID0gaW50bE1ldGhvZChwYXJzZU51bWJlcik7XG4vKipcbiAqIEBoaWRkZW5cbiAqL1xudmFyIHNwbGl0RGF0ZUZvcm1hdCQxID0gaW50bE1ldGhvZChzcGxpdERhdGVGb3JtYXQpO1xuLyoqXG4gKiBAaGlkZGVuXG4gKi9cbnZhciB0b1N0cmluZyQxID0gaW50bE1ldGhvZCh0b1N0cmluZyk7XG4vKipcbiAqIEBoaWRkZW5cbiAqL1xudmFyIHdlZWtlbmRSYW5nZSQxID0gaW50bE1ldGhvZCh3ZWVrZW5kUmFuZ2UpO1xuLyoqXG4gKiBTZXRzIGEgcHJlLWJ1aWx0IGxvY2FsZS5cbiAqXG4gKiBAcGFyYW1zIGRhdGEgLSBUaGUgcHJlLWJ1aWx0IGxvY2FsZSBkYXRhLlxuICovXG52YXIgc2V0RGF0YSQxID0gZnVuY3Rpb24gKGRhdGEpIHsgcmV0dXJuIHNldERhdGEoZGF0YSk7IH07XG4vKipcbiAqIFJldHJpZXZlcyB0aGUgbG9jYWxlIGRhdGEgZm9yIHRoZSBzcGVjaWZpZWQgbG9jYWxlLlxuICpcbiAqIEBwYXJhbXMgbG9jYWxlIC0gVGhlIGxvY2FsZSBpZC5cbiAqIEByZXR1cm5zIGRhdGEgLSBUaGUgbG9jYWxlIGRhdGEuXG4gKi9cbnZhciBsb2NhbGVEYXRhID0gZnVuY3Rpb24gKGxvY2FsZSkge1xuICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBsb2NhbGVJbmZvKGxvY2FsZSk7XG4gICAgfVxuICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICBlcnJvci5tZXNzYWdlID0gZm9ybWF0TWVzc2FnZShlcnJvcik7XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbn07XG5cbnZhciBMT0NBTEVfUkVHRVggPSAvXy9nO1xuLyoqXG4gKiBAaGlkZGVuXG4gKi9cbmZ1bmN0aW9uIGNsZHJTZXJ2aWNlRmFjdG9yeShsb2NhbGVJZCkge1xuICAgIHJldHVybiBuZXcgQ2xkckludGxTZXJ2aWNlKGxvY2FsZUlkKTtcbn1cbi8qKlxuICogQW4gYWJzdHJhY3QgYmFzZSBjbGFzcyB0aGF0IGltcGxlbWVudHNcbiAqIHRoZSBJbnRlcm5hdGlvbmFsaXphdGlvbiBzZXJ2aWNlIG1ldGhvZHNcbiAqIGZvciB0aGUgY3VycmVudCBsb2NhbGUuXG4gKi9cbnZhciBJbnRsU2VydmljZSA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBJbnRsU2VydmljZSgpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBoaWRkZW5cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuY2hhbmdlcyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogTm90aWZpZXMgdGhhdCB0aGUgc2VydmljZSB3YXMgY2hhbmdlZC5cbiAgICAgKi9cbiAgICBJbnRsU2VydmljZS5wcm90b3R5cGUubm90aWZ5ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB0aGlzLmNoYW5nZXMuZW1pdCgpO1xuICAgIH07XG4gICAgSW50bFNlcnZpY2UuZGVjb3JhdG9ycyA9IFtcbiAgICAgICAgeyB0eXBlOiBJbmplY3RhYmxlLCBhcmdzOiBbe1xuICAgICAgICAgICAgICAgICAgICBwcm92aWRlZEluOiAncm9vdCcsXG4gICAgICAgICAgICAgICAgICAgIHVzZUZhY3Rvcnk6IGNsZHJTZXJ2aWNlRmFjdG9yeSxcbiAgICAgICAgICAgICAgICAgICAgZGVwczogW0xPQ0FMRV9JRF1cbiAgICAgICAgICAgICAgICB9LF0gfSxcbiAgICBdO1xuICAgIEludGxTZXJ2aWNlLm5nSW5qZWN0YWJsZURlZiA9IGRlZmluZUluamVjdGFibGUoeyBmYWN0b3J5OiBmdW5jdGlvbiBJbnRsU2VydmljZV9GYWN0b3J5KCkgeyByZXR1cm4gY2xkclNlcnZpY2VGYWN0b3J5KGluamVjdChMT0NBTEVfSUQpKTsgfSwgdG9rZW46IEludGxTZXJ2aWNlLCBwcm92aWRlZEluOiBcInJvb3RcIiB9KTtcbiAgICByZXR1cm4gSW50bFNlcnZpY2U7XG59KCkpO1xuLyoqXG4gKiBUaGUgSW50ZXJuYXRpb25hbGl6YXRpb24gc2VydmljZSBpbXBsZW1lbnRlZCBieSB1c2luZ1xuICogdGhlIENMRFIgRGF0YWJhc2UgdmlhIHRoZSBgQHRlbGVyaWsva2VuZG8taW50bGAgcGFja2FnZS5cbiAqL1xudmFyIENsZHJJbnRsU2VydmljZSA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoQ2xkckludGxTZXJ2aWNlLCBfc3VwZXIpO1xuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIHNlcnZpY2Ugd2l0aCB0aGUgSUQgb2YgdGhlIHNwZWNpZmllZCBsb2NhbGUuXG4gICAgICpcbiAgICAgKiBOb3RlIHRoYXQgdGhlIHBhcnRzIG9mIHRoZSBsb2NhbGUgSUQgY2FuIGJlIHNlcGFyYXRlZCBieSBlaXRoZXIgYF9gICh1bmRlcnNjb3JlKVxuICAgICAqIG9yIGAtYCAoZGFzaCkuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbG9jYWxlSWQgLSBUaGUgZGVmYXVsdCBsb2NhbGUgSUQuXG4gICAgICovXG4gICAgZnVuY3Rpb24gQ2xkckludGxTZXJ2aWNlKGxvY2FsZUlkKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLmxvY2FsZUlkID0gbG9jYWxlSWQ7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KENsZHJJbnRsU2VydmljZS5wcm90b3R5cGUsIFwibG9jYWxlSWRcIiwge1xuICAgICAgICAvKipcbiAgICAgICAgICogR2V0cyBvciBzZXRzIHRoZSBjdXJyZW50IGxvY2FsZSBJRC5cbiAgICAgICAgICovXG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubG9jYWxlO1xuICAgICAgICB9LFxuICAgICAgICBzZXQ6IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgICAgICAgLy8gQW5ndWxhciBsb2NhbGVzIHVzZSB1bmRlcnNjb3JlLCBmb3IgZXhhbXBsZSwgZW5fVVNcbiAgICAgICAgICAgIC8vIHdoaWxlIElFVEYgQkNQLTQ3IHNwZWNpZmllcyBhIGRhc2guXG4gICAgICAgICAgICAvLyBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvYmNwNDdcbiAgICAgICAgICAgIHZhciBsb2NhbGUgPSB2YWx1ZS5yZXBsYWNlKExPQ0FMRV9SRUdFWCwgJy0nKTtcbiAgICAgICAgICAgIGlmIChsb2NhbGUgIT09IHRoaXMubG9jYWxlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2NhbGUgPSBsb2NhbGU7XG4gICAgICAgICAgICAgICAgdGhpcy5ub3RpZnkoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgLyoqXG4gICAgICogRm9ybWF0cyBhIHN0cmluZyB3aXRoIHBsYWNlaG9sZGVycyBzdWNoIGFzXG4gICAgICogYFRvdGFsIGFtb3VudCB7MDpjfWAuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZm9ybWF0IC0gVGhlIGZvcm1hdCBzdHJpbmcuXG4gICAgICogQHBhcmFtIHZhbHVlcyAtIE9uZSBvciBtb3JlIHZhbHVlcyB0byBvdXRwdXQgaW4gdGhlIGZvcm1hdCBzdHJpbmcgcGxhY2Vob2xkZXJzLlxuICAgICAqIEByZXR1cm4gLSBUaGUgZm9ybWF0dGVkIHN0cmluZy5cbiAgICAgKi9cbiAgICBDbGRySW50bFNlcnZpY2UucHJvdG90eXBlLmZvcm1hdCA9IGZ1bmN0aW9uIChmb3JtYXQkJDEpIHtcbiAgICAgICAgdmFyIHZhbHVlcyA9IFtdO1xuICAgICAgICBmb3IgKHZhciBfaSA9IDE7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykge1xuICAgICAgICAgICAgdmFsdWVzW19pIC0gMV0gPSBhcmd1bWVudHNbX2ldO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmb3JtYXQkMShmb3JtYXQkJDEsIHZhbHVlcywgdGhpcy5sb2NhbGVJZCk7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBDb252ZXJ0cyBhbiBvYmplY3QgaW50byBhIHN0cmluZyBiYXNlZCBvbiB0aGUgc3BlY2lmaWVkIGZvcm1hdC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byBmb3JtYXQuXG4gICAgICogQHBhcmFtIGZvcm1hdCAtIFRoZSBmb3JtYXQgdG8gdXNlLlxuICAgICAqIEBwYXJhbSBsb2NhbGVJZCAtIFRoZSBsb2NhbGUgSUQgdG8gdXNlIGluIHBsYWNlIG9mIHRoZSBkZWZhdWx0IG9uZS4gT3B0aW9uYWwuXG4gICAgICogQHJldHVybiBUaGUgZm9ybWF0dGVkIG9iamVjdC5cbiAgICAgKi9cbiAgICBDbGRySW50bFNlcnZpY2UucHJvdG90eXBlLnRvU3RyaW5nID0gZnVuY3Rpb24gKHZhbHVlLCBmb3JtYXQkJDEsIGxvY2FsZUlkKSB7XG4gICAgICAgIHJldHVybiB0b1N0cmluZyQxKHZhbHVlLCBmb3JtYXQkJDEsIGxvY2FsZUlkIHx8IHRoaXMubG9jYWxlSWQpO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQ29udmVydHMgYSBgRGF0ZWAgb2JqZWN0IGludG8gYSBzdHJpbmcgYmFzZWQgb24gdGhlIHNwZWNpZmllZCBmb3JtYXQuXG4gICAgICogSWYgbm8gZm9ybWF0IGlzIHByb3ZpZGVkLCB0aGUgZGVmYXVsdCBzaG9ydCBkYXRlIGZvcm1hdCBpcyB1c2VkLlxuICAgICAqXG4gICAgICogQHBhcmFtIHZhbHVlIC0gVGhlIGRhdGUgdG8gZm9ybWF0LlxuICAgICAqIEBwYXJhbSBmb3JtYXQgLSBUaGUgZm9ybWF0IHN0cmluZyBvciBvcHRpb25zLlxuICAgICAqIEBwYXJhbSBsb2NhbGVJZCAtIFRoZSBsb2NhbGUgSUQgdG8gdXNlIGluIHBsYWNlIG9mIHRoZSBkZWZhdWx0IG9uZS4gT3B0aW9uYWwuXG4gICAgICogQHJldHVybiBUaGUgZm9ybWF0dGVkIGRhdGUuXG4gICAgICovXG4gICAgQ2xkckludGxTZXJ2aWNlLnByb3RvdHlwZS5mb3JtYXREYXRlID0gZnVuY3Rpb24gKHZhbHVlLCBmb3JtYXQkJDEsIGxvY2FsZUlkKSB7XG4gICAgICAgIHJldHVybiBmb3JtYXREYXRlJDEodmFsdWUsIGZvcm1hdCQkMSwgbG9jYWxlSWQgfHwgdGhpcy5sb2NhbGVJZCk7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBDb252ZXJ0cyBhIHN0cmluZyBpbnRvIGEgYERhdGVgIG9iamVjdCBiYXNlZCBvbiB0aGUgc3BlY2lmaWVkIGZvcm1hdC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSBzdHJpbmcgdG8gY29udmVydC5cbiAgICAgKiBAcGFyYW0gZm9ybWF0IC0gVGhlIGZvcm1hdCBzdHJpbmdzIG9yIG9wdGlvbnMuXG4gICAgICogQHBhcmFtIGxvY2FsZUlkIC0gVGhlIGxvY2FsZSBJRCB0byB1c2UgaW4gcGxhY2Ugb2YgdGhlIGRlZmF1bHQgb25lLiBPcHRpb25hbC5cbiAgICAgKiBAcmV0dXJuIFRoZSBwYXJzZWQgZGF0ZS5cbiAgICAgKi9cbiAgICBDbGRySW50bFNlcnZpY2UucHJvdG90eXBlLnBhcnNlRGF0ZSA9IGZ1bmN0aW9uICh2YWx1ZSwgZm9ybWF0JCQxLCBsb2NhbGVJZCkge1xuICAgICAgICByZXR1cm4gcGFyc2VEYXRlJDEodmFsdWUsIGZvcm1hdCQkMSwgbG9jYWxlSWQgfHwgdGhpcy5sb2NhbGVJZCk7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBDb252ZXJ0cyBhIHN0cmluZyBpbnRvIGEgYE51bWJlcmAuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgc3RyaW5nIHRvIGNvbnZlcnQuXG4gICAgICogQHBhcmFtIGZvcm1hdCAtIFRoZSBmb3JtYXQgc3RyaW5nIG9yIG9wdGlvbnMuXG4gICAgICogQHBhcmFtIGxvY2FsZUlkIC0gVGhlIGxvY2FsZSBJRCB0byB1c2UgaW4gcGxhY2Ugb2YgdGhlIGRlZmF1bHQgb25lLiBPcHRpb25hbC5cbiAgICAgKiBAcmV0dXJuIFRoZSBwYXJzZWQgbnVtYmVyLlxuICAgICAqL1xuICAgIENsZHJJbnRsU2VydmljZS5wcm90b3R5cGUucGFyc2VOdW1iZXIgPSBmdW5jdGlvbiAodmFsdWUsIGZvcm1hdCQkMSwgbG9jYWxlSWQpIHtcbiAgICAgICAgcmV0dXJuIHBhcnNlTnVtYmVyJDEodmFsdWUsIGxvY2FsZUlkIHx8IHRoaXMubG9jYWxlSWQsIGZvcm1hdCQkMSk7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBDb252ZXJ0cyBhIGBOdW1iZXJgIGludG8gYSBzdHJpbmcgYmFzZWQgb24gdGhlIHNwZWNpZmllZCBmb3JtYXQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgbnVtYmVyIHRvIGZvcm1hdC5cbiAgICAgKiBAcGFyYW0gZm9ybWF0IC0gVGhlIGZvcm1hdCBzdHJpbmcgb3Igb3B0aW9ucy5cbiAgICAgKiBAcGFyYW0gbG9jYWxlSWQgLSBUaGUgbG9jYWxlIElEIHRvIHVzZSBpbiBwbGFjZSBvZiB0aGUgZGVmYXVsdCBvbmUuIE9wdGlvbmFsLlxuICAgICAqIEByZXR1cm4gVGhlIGZvcm1hdHRlZCBudW1iZXIuXG4gICAgICovXG4gICAgQ2xkckludGxTZXJ2aWNlLnByb3RvdHlwZS5mb3JtYXROdW1iZXIgPSBmdW5jdGlvbiAodmFsdWUsIGZvcm1hdCQkMSwgbG9jYWxlSWQpIHtcbiAgICAgICAgcmV0dXJuIGZvcm1hdE51bWJlciQxKHZhbHVlLCBmb3JtYXQkJDEsIGxvY2FsZUlkIHx8IHRoaXMubG9jYWxlSWQpO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgZGF0ZSBuYW1lcyBmcm9tIHRoZSBjdXJyZW50IGxvY2FsZSBiYXNlZCBvbiB0aGUgb3B0aW9uLlxuICAgICAqXG4gICAgICogVGhlIGF2YWlsYWJsZSBgdHlwZWAgdmFsdWVzIGFyZTpcbiAgICAgKiAtIGBlcmFgXG4gICAgICogLSBgeWVhcmBcbiAgICAgKiAtIGBxdWFydGVyYFxuICAgICAqIC0gYG1vbnRoYFxuICAgICAqIC0gYHdlZWtgXG4gICAgICogLSBgZGF5YFxuICAgICAqIC0gYGRheXBlcmlvZGBcbiAgICAgKiAtIGBob3VyYFxuICAgICAqIC0gYG1pbnV0ZWBcbiAgICAgKiAtIGBzZWNvbmRgXG4gICAgICogLSBgem9uZWBcbiAgICAgKlxuICAgICAqIFRoZSBhdmFpbGFibGUgYG5hbWVUeXBlYCB2YWx1ZXMgYXJlOlxuICAgICAqIC0gYHdpZGVgXG4gICAgICogLSBgbmFycm93YFxuICAgICAqIC0gYHNob3J0YFxuICAgICAqXG4gICAgICogQHBhcmFtIG9wdGlvbnMgLSBEZXRhaWxlZCBjb25maWd1cmF0aW9uIGZvciB0aGUgZGVzaXJlZCBkYXRlIGZpZWxkIG5hbWUuXG4gICAgICogQHBhcmFtIGxvY2FsZUlkIC0gVGhlIGxvY2FsZSBJRCB0byB1c2UgaW4gcGxhY2Ugb2YgdGhlIGRlZmF1bHQgb25lLiBPcHRpb25hbC5cbiAgICAgKiBAcmV0dXJuIC0gVGhlIGRheSBuYW1lcyBmcm9tIHRoZSBjdXJyZW50IGxvY2FsZSBiYXNlZCBvbiB0aGUgb3B0aW9uLlxuICAgICAqIEByZXR1cm5zIFRoZSBsb2NhbGl6ZWQgZGF0ZSBmaWVsZCBuYW1lIGZyb20gdGhlIGN1cnJlbnQgbG9jYWxlIGJhc2VkIG9uIHRoZSBvcHRpb24uXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYFxuICAgICAqIGRhdGVGaWVsZE5hbWUoeyB0eXBlOiAnZGF5JyB9KTsgICAgICAgICAgICAgICAgICAgICAgLy9yZXR1cm5zICdkYXknO1xuICAgICAqIGRhdGVGaWVsZE5hbWUoeyB0eXBlOiAnZGF5JywgbmFtZVR5cGU6ICd3aWRlJyB9KTsgICAgLy9yZXR1cm5zICdkYXknO1xuICAgICAqIGRhdGVGaWVsZE5hbWUoeyB0eXBlOiAnbW9udGgnLCBuYW1lVHlwZTogJ3Nob3J0JyB9KTsgLy9yZXR1cm5zICdtby4nO1xuICAgICAqIGRhdGVGaWVsZE5hbWUoeyB0eXBlOiAnbW9udGgnLCBuYW1lVHlwZTogJ3dpZGUnIH0pOyAgLy9yZXR1cm5zICdtb250aCc7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQ2xkckludGxTZXJ2aWNlLnByb3RvdHlwZS5kYXRlRmllbGROYW1lID0gZnVuY3Rpb24gKG9wdGlvbnMsIGxvY2FsZUlkKSB7XG4gICAgICAgIHJldHVybiBkYXRlRmllbGROYW1lJDEob3B0aW9ucywgbG9jYWxlSWQgfHwgdGhpcy5sb2NhbGVJZCk7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGEgbG9jYWxpemVkIGRhdGUgZmllbGQgbmFtZSBiYXNlZCBvbiBzcGVjaWZpYyBkYXRlRmllbGROYW1lIG9wdGlvbnMuXG4gICAgICpcbiAgICAgKiBUaGUgYXZhaWxhYmxlIHR5cGUgdmFsdWVzIGFyZTpcbiAgICAgKiAtIGBkYXlgXG4gICAgICogLSBgZGF5cGVyaW9kYFxuICAgICAqIC0gYG1vbnRoc2BcbiAgICAgKiAtIGBxdWFydGVyc2BcbiAgICAgKiAtIGBlcmFzYFxuICAgICAqXG4gICAgICogQHBhcmFtIG9wdGlvbnMgLSBEZXRhaWxlZCBjb25maWd1cmF0aW9uIGZvciB0aGUgZGVzaXJlZCBkYXRlIGZvcm1hdC5cbiAgICAgKiBAcGFyYW0gbG9jYWxlSWQgLSBUaGUgbG9jYWxlIElEIHRvIHVzZSBpbiBwbGFjZSBvZiB0aGUgZGVmYXVsdCBvbmUuIE9wdGlvbmFsLlxuICAgICAqIEByZXR1cm4gLSBUaGUgZGF5IG5hbWVzIGZyb20gdGhlIGN1cnJlbnQgbG9jYWxlIGJhc2VkIG9uIHRoZSBvcHRpb24uXG4gICAgICovXG4gICAgQ2xkckludGxTZXJ2aWNlLnByb3RvdHlwZS5kYXRlRm9ybWF0TmFtZXMgPSBmdW5jdGlvbiAob3B0aW9ucywgbG9jYWxlSWQpIHtcbiAgICAgICAgcmV0dXJuIGRhdGVGb3JtYXROYW1lcyQxKGxvY2FsZUlkIHx8IHRoaXMubG9jYWxlSWQsIG9wdGlvbnMpO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogU3BsaXRzIHRoZSBkYXRlIGZvcm1hdCBpbnRvIG9iamVjdHMgY29udGFpbmluZyBpbmZvcm1hdGlvbiBhYm91dCBlYWNoIHBhcnQgb2YgdGhlIHBhdHRlcm4uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZm9ybWF0IFRoZSBmb3JtYXQgc3RyaW5nIG9yIG9wdGlvbnMuXG4gICAgICogQHBhcmFtIGxvY2FsZUlkIFRoZSBvcHRpb25hbCBsb2NhbGUgaWQuIElmIG5vdCBzcGVjaWZpZWQsIHRoZSBgXCJlblwiYCBsb2NhbGUgaWQgaXMgdXNlZC5cbiAgICAgKiBAcmV0dXJucyBUaGUgZGF0ZSBmb3JtYXQgcGFydHMuXG4gICAgICovXG4gICAgQ2xkckludGxTZXJ2aWNlLnByb3RvdHlwZS5zcGxpdERhdGVGb3JtYXQgPSBmdW5jdGlvbiAoZm9ybWF0JCQxLCBsb2NhbGVJZCkge1xuICAgICAgICByZXR1cm4gc3BsaXREYXRlRm9ybWF0JDEoZm9ybWF0JCQxLCBsb2NhbGVJZCB8fCB0aGlzLmxvY2FsZUlkKTtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIG51bWJlciBzeW1ib2xzIGZyb20gdGhlIGN1cnJlbnQgbG9jYWxlIGJhc2VkIG9uIHRoZSBvcHRpb24uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbG9jYWxlSWQgLSBUaGUgbG9jYWxlIElEIHRvIHVzZSBpbiBwbGFjZSBvZiB0aGUgZGVmYXVsdCBvbmUuIE9wdGlvbmFsLlxuICAgICAqIEByZXR1cm4gLSBUaGUgbnVtYmVyIHN5bWJvbHMgZnJvbSB0aGUgY3VycmVudCBsb2NhbGUuXG4gICAgICovXG4gICAgQ2xkckludGxTZXJ2aWNlLnByb3RvdHlwZS5udW1iZXJTeW1ib2xzID0gZnVuY3Rpb24gKGxvY2FsZUlkKSB7XG4gICAgICAgIHJldHVybiBudW1iZXJTeW1ib2xzJDEobG9jYWxlSWQgfHwgdGhpcy5sb2NhbGVJZCk7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBmaXJzdCBkYXkgaW5kZXggc3RhcnRpbmcgZnJvbSBTdW5kYXkuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbG9jYWxlSWQgLSBUaGUgbG9jYWxlIElELiBEZWZhdWx0cyB0byB0aGUgY3VycmVudCBsb2NhbGUgSUQuXG4gICAgICogQHJldHVybiAtIFRoZSBpbmRleCBvZiB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrICgwID09IFN1bmRheSkuXG4gICAgICovXG4gICAgQ2xkckludGxTZXJ2aWNlLnByb3RvdHlwZS5maXJzdERheSA9IGZ1bmN0aW9uIChsb2NhbGVJZCkge1xuICAgICAgICByZXR1cm4gZmlyc3REYXkkMShsb2NhbGVJZCB8fCB0aGlzLmxvY2FsZUlkKTtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIHN0YXJ0IGFuZCBlbmQgaW5kZXggb2YgdGhlIGxvY2FsZSB3ZWVrZW5kIHN0YXJ0aW5nIGZyb20gU3VuZGF5LlxuICAgICAqXG4gICAgICogQHBhcmFtIGxvY2FsZUlkIC0gVGhlIGxvY2FsZSBJRC4gRGVmYXVsdHMgdG8gdGhlIGN1cnJlbnQgbG9jYWxlIElELlxuICAgICAqIEByZXR1cm4gLSBUaGUgdGhlIHN0YXJ0IGFuZCBlbmQgaW5kZXggb2YgdGhlIGxvY2FsZSB3ZWVrZW5kICgwID09IFN1bmRheSkuXG4gICAgICovXG4gICAgQ2xkckludGxTZXJ2aWNlLnByb3RvdHlwZS53ZWVrZW5kUmFuZ2UgPSBmdW5jdGlvbiAobG9jYWxlSWQpIHtcbiAgICAgICAgcmV0dXJuIHdlZWtlbmRSYW5nZSQxKGxvY2FsZUlkIHx8IHRoaXMubG9jYWxlSWQpO1xuICAgIH07XG4gICAgQ2xkckludGxTZXJ2aWNlLmRlY29yYXRvcnMgPSBbXG4gICAgICAgIHsgdHlwZTogSW5qZWN0YWJsZSB9LFxuICAgIF07XG4gICAgLyoqIEBub2NvbGxhcHNlICovXG4gICAgQ2xkckludGxTZXJ2aWNlLmN0b3JQYXJhbWV0ZXJzID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gW1xuICAgICAgICB7IHR5cGU6IFN0cmluZywgZGVjb3JhdG9yczogW3sgdHlwZTogSW5qZWN0LCBhcmdzOiBbTE9DQUxFX0lELF0gfV0gfVxuICAgIF07IH07XG4gICAgcmV0dXJuIENsZHJJbnRsU2VydmljZTtcbn0oSW50bFNlcnZpY2UpKTtcblxudmFyIGlzTnVtZXJpYyA9IGZ1bmN0aW9uICh2YWx1ZSkgeyByZXR1cm4gIWlzTmFOKHZhbHVlIC0gcGFyc2VGbG9hdCh2YWx1ZSkpOyB9O1xudmFyIMm1MCA9IGlzTnVtZXJpYztcbi8qKlxuICogRm9ybWF0cyBhIGRhdGUgdmFsdWUgdG8gYSBzdHJpbmcgYmFzZWQgb24gdGhlIHJlcXVlc3RlZCBmb3JtYXQuXG4gKiBUaGlzIHBpcGUgdXNlcyB0aGUgW0ludGxTZXJ2aWNlXSh7JSBzbHVnIGFwaV9pbnRsX2ludGxzZXJ2aWNlICV9KS5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgbmctdGVtcGxhdGUtbm8tcnVuXG4gKiA8dWw+XG4gKiAgICA8bGk+e3tkYXRlIHwga2VuZG9EYXRlIH19PC9saT5cbiAqICAgIDxsaT57e21pbGxpc2Vjb25kcyB8IGtlbmRvRGF0ZTogJ00vZGQveXl5JyB9fTwvbGk+XG4gKiAgICA8bGk+e3tzdHJpbmdEYXRlIHwga2VuZG9EYXRlOiAnRycgfX08L2xpPlxuICogPC91bD5cbiAqIGBgYFxuICovXG52YXIgRGF0ZVBpcGUgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIGZ1bmN0aW9uIERhdGVQaXBlKGludGxTZXJ2aWNlKSB7XG4gICAgICAgIHRoaXMuaW50bFNlcnZpY2UgPSBpbnRsU2VydmljZTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ29udmVydHMgYSBgRGF0ZWAgb2JqZWN0IGludG8gYSBzdHJpbmcgYmFzZWQgb24gdGhlIHNwZWNpZmllZCBmb3JtYXQuXG4gICAgICogSWYgbm8gZm9ybWF0IGlzIHByb3ZpZGVkLCB0aGUgZGVmYXVsdCBzaG9ydCBkYXRlIGZvcm1hdCBpcyB1c2VkLlxuICAgICAqXG4gICAgICogQHBhcmFtIHZhbHVlIC0gVGhlIGRhdGUgdG8gZm9ybWF0LlxuICAgICAqIEBwYXJhbSBmb3JtYXQgLSBUaGUgZm9ybWF0IHN0cmluZyBvciBvcHRpb25zLlxuICAgICAqIEBwYXJhbSBsb2NhbGVJZCAtIChPcHRpb25hbCkgVGhlIElEIG9mIHRoZSBsb2NhbGUgd2hpY2ggd2lsbCBiZSB1c2VkIGluc3RlYWQgb2YgdGhlIGRlZmF1bHQgb25lLlxuICAgICAqIEByZXR1cm4gLSBUaGUgZm9ybWF0dGVkIGRhdGUuXG4gICAgICovXG4gICAgRGF0ZVBpcGUucHJvdG90eXBlLnRyYW5zZm9ybSA9IGZ1bmN0aW9uICh2YWx1ZSwgZm9ybWF0JCQxLCBsb2NhbGVJZCkge1xuICAgICAgICBpZiAoZm9ybWF0JCQxID09PSB2b2lkIDApIHsgZm9ybWF0JCQxID0gXCJcIjsgfVxuICAgICAgICB2YWx1ZSA9IHRoaXMubm9ybWFsaXplKHZhbHVlKTtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5pbnRsU2VydmljZS5mb3JtYXREYXRlKHZhbHVlLCBmb3JtYXQkJDEsIGxvY2FsZUlkKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfTtcbiAgICBEYXRlUGlwZS5wcm90b3R5cGUubm9ybWFsaXplID0gZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICAgIGlmICh2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IHRoaXMuaW50bFNlcnZpY2UucGFyc2VEYXRlKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh2YWx1ZSAmJiBpc051bWVyaWModmFsdWUpKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IG5ldyBEYXRlKHBhcnNlRmxvYXQodmFsdWUpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfTtcbiAgICBEYXRlUGlwZS5kZWNvcmF0b3JzID0gW1xuICAgICAgICB7IHR5cGU6IFBpcGUsIGFyZ3M6IFt7XG4gICAgICAgICAgICAgICAgICAgIG5hbWU6ICdrZW5kb0RhdGUnXG4gICAgICAgICAgICAgICAgfSxdIH0sXG4gICAgXTtcbiAgICAvKiogQG5vY29sbGFwc2UgKi9cbiAgICBEYXRlUGlwZS5jdG9yUGFyYW1ldGVycyA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIFtcbiAgICAgICAgeyB0eXBlOiBJbnRsU2VydmljZSB9XG4gICAgXTsgfTtcbiAgICByZXR1cm4gRGF0ZVBpcGU7XG59KCkpO1xuXG4vKipcbiAqIEZvcm1hdHMgYSBudW1iZXIgdmFsdWUgdG8gYSBzdHJpbmcgYmFzZWQgb24gdGhlIHJlcXVlc3RlZCBmb3JtYXQuXG4gKiBUaGlzIHBpcGUgdXNlcyB0aGUgW2BJbnRsU2VydmljZWBdKHslIHNsdWcgYXBpX2ludGxfaW50bHNlcnZpY2UgJX0pLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBuZy10ZW1wbGF0ZS1uby1ydW5cbiAqICAgPHVsPlxuICogICAgIDxsaT57e2RlY2ltYWwgfCBrZW5kb051bWJlcjonYycgfX08L2xpPlxuICogICAgIDxsaT57e3N0cmluZ051bWJlciB8IGtlbmRvTnVtYmVyOidwJyB9fTwvbGk+XG4gKiAgICAgPGxpPnt7aW50IHwga2VuZG9OdW1iZXI6JyMjLjAwJyB9fTwvbGk+XG4gKiAgPC91bD5cbiAqIGBgYFxuICovXG52YXIgTnVtYmVyUGlwZSA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgZnVuY3Rpb24gTnVtYmVyUGlwZShpbnRsU2VydmljZSkge1xuICAgICAgICB0aGlzLmludGxTZXJ2aWNlID0gaW50bFNlcnZpY2U7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENvbnZlcnRzIGEgYE51bWJlcmAgb2JqZWN0IGludG8gYSBzdHJpbmcgYmFzZWQgb24gdGhlIHNwZWNpZmllZCBmb3JtYXQuXG4gICAgICogSWYgbm8gZm9ybWF0IGlzIHByb3ZpZGVkLCB0aGUgdmFsdWUgaXMgZm9ybWF0dGVkIGFzIGRlY2ltYWwgbnVtYmVyIHVzaW5nIHRoZVxuICAgICAqIFtgXCJuXCJgXShodHRwczovL2dpdGh1Yi5jb20vdGVsZXJpay9rZW5kby1pbnRsL2Jsb2IvbWFzdGVyL2RvY3MvbnVtLWZvcm1hdHRpbmcvaW5kZXgubWQjc3RhbmRhcmQpIGZvcm1hdC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSBudW1lciB0aGF0IHdpbGwgYmUgZm9ybWF0dGVkLlxuICAgICAqIEBwYXJhbSBmb3JtYXQgLSBUaGUgZm9ybWF0IHN0cmluZyBvciBvcHRpb25zLlxuICAgICAqIEBwYXJhbSBsb2NhbGVJZCAtIChPcHRpb25hbCkgVGhlIGxvY2FsZSBJRCB0aGF0IHdpbGwgYmUgdXNlZCBpbiBwbGFjZSBvZiB0aGUgZGVmYXVsdCBvbmUuXG4gICAgICogQHJldHVybiAtIFRoZSBmb3JtYXR0ZWQgbnVtYmVyLlxuICAgICAqL1xuICAgIE51bWJlclBpcGUucHJvdG90eXBlLnRyYW5zZm9ybSA9IGZ1bmN0aW9uICh2YWx1ZSwgZm9ybWF0JCQxLCBsb2NhbGVJZCkge1xuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgdmFsdWUgPSB0aGlzLmludGxTZXJ2aWNlLnBhcnNlTnVtYmVyKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaW50bFNlcnZpY2UuZm9ybWF0TnVtYmVyKHZhbHVlLCBmb3JtYXQkJDEsIGxvY2FsZUlkKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfTtcbiAgICBOdW1iZXJQaXBlLmRlY29yYXRvcnMgPSBbXG4gICAgICAgIHsgdHlwZTogUGlwZSwgYXJnczogW3tcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogJ2tlbmRvTnVtYmVyJ1xuICAgICAgICAgICAgICAgIH0sXSB9LFxuICAgIF07XG4gICAgLyoqIEBub2NvbGxhcHNlICovXG4gICAgTnVtYmVyUGlwZS5jdG9yUGFyYW1ldGVycyA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIFtcbiAgICAgICAgeyB0eXBlOiBJbnRsU2VydmljZSB9XG4gICAgXTsgfTtcbiAgICByZXR1cm4gTnVtYmVyUGlwZTtcbn0oKSk7XG5cbnZhciBwaXBlcyA9IFtcbiAgICBEYXRlUGlwZSxcbiAgICBOdW1iZXJQaXBlXG5dO1xuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBbTmdNb2R1bGVdKHt7IHNpdGUuZGF0YS51cmxzLmFuZ3VsYXJbJ25nbW9kdWxlYXBpJ10gfX1kb2NzL3RzL2xhdGVzdC9ndWlkZS9uZ21vZHVsZS5odG1sKVxuICogZGVmaW5pdGlvbiBmb3IgdGhlIEludGwgc2VydmljZXMuXG4gKi9cbnZhciBJbnRsTW9kdWxlID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIEludGxNb2R1bGUoKSB7XG4gICAgfVxuICAgIEludGxNb2R1bGUuZGVjb3JhdG9ycyA9IFtcbiAgICAgICAgeyB0eXBlOiBOZ01vZHVsZSwgYXJnczogW3tcbiAgICAgICAgICAgICAgICAgICAgZGVjbGFyYXRpb25zOiBbcGlwZXNdLFxuICAgICAgICAgICAgICAgICAgICBleHBvcnRzOiBbcGlwZXNdXG4gICAgICAgICAgICAgICAgfSxdIH0sXG4gICAgXTtcbiAgICByZXR1cm4gSW50bE1vZHVsZTtcbn0oKSk7XG5cbi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0IHsgY2xkclNlcnZpY2VGYWN0b3J5LCBJbnRsU2VydmljZSwgQ2xkckludGxTZXJ2aWNlLCBEYXRlUGlwZSwgybUwLCBOdW1iZXJQaXBlLCBJbnRsTW9kdWxlLCBkYXRlRm9ybWF0TmFtZXMkMSBhcyBkYXRlRm9ybWF0TmFtZXMsIGRhdGVGaWVsZE5hbWUkMSBhcyBkYXRlRmllbGROYW1lLCBmaXJzdERheSQxIGFzIGZpcnN0RGF5LCBmb3JtYXQkMSBhcyBmb3JtYXQsIGZvcm1hdERhdGUkMSBhcyBmb3JtYXREYXRlLCBmb3JtYXROdW1iZXIkMSBhcyBmb3JtYXROdW1iZXIsIGxvYWQkMSBhcyBsb2FkLCBudW1iZXJTeW1ib2xzJDEgYXMgbnVtYmVyU3ltYm9scywgcGFyc2VEYXRlJDEgYXMgcGFyc2VEYXRlLCBwYXJzZU51bWJlciQxIGFzIHBhcnNlTnVtYmVyLCBzcGxpdERhdGVGb3JtYXQkMSBhcyBzcGxpdERhdGVGb3JtYXQsIHRvU3RyaW5nJDEgYXMgdG9TdHJpbmcsIHdlZWtlbmRSYW5nZSQxIGFzIHdlZWtlbmRSYW5nZSwgc2V0RGF0YSQxIGFzIHNldERhdGEsIGxvY2FsZURhdGEgfTtcbiJdfQ== + + }), + + "./node_modules/@progress/kendo-angular-l10n/__ivy_ngcc__/dist/fesm5/index.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "MessageService", function() { return MessageService; }); + __webpack_require__.d(__webpack_exports__, "ComponentMessages", function() { return ComponentMessages; }); + __webpack_require__.d(__webpack_exports__, "L10N_PREFIX", function() { return L10N_PREFIX; }); + __webpack_require__.d(__webpack_exports__, "LocalizationService", function() { return LocalizationService; }); + __webpack_require__.d(__webpack_exports__, "RTL", function() { return RTL; }); + var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( 100003); + var _angular_core__WEBPACK_IMPORTED_MODULE_0___default = __webpack_require__.n(_angular_core__WEBPACK_IMPORTED_MODULE_0__); + var rxjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( 100006); + var rxjs__WEBPACK_IMPORTED_MODULE_1___default = __webpack_require__.n(rxjs__WEBPACK_IMPORTED_MODULE_1__); + var rxjs_operators__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( 100007); + var rxjs_operators__WEBPACK_IMPORTED_MODULE_2___default = __webpack_require__.n(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__); + + + + + + + + +var MessageService = (function () { + function MessageService() { + + this.changes = new rxjs__WEBPACK_IMPORTED_MODULE_1__["Subject"](); + } + + MessageService.prototype.notify = function (rtl) { + this.changes.next({ rtl: rtl }); + }; + + MessageService.prototype.get = function (key) { + return undefined; + }; +MessageService.ɵfac = function MessageService_Factory(t) { return new (t || MessageService)(); }; +MessageService.ɵprov = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"]({ token: MessageService, factory: function (t) { return MessageService.ɵfac(t); } }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](MessageService, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Injectable"] + }], function () { return []; }, null); })(); + return MessageService; +}()); + + +var ComponentMessages = (function () { + function ComponentMessages() { + } + Object.defineProperty(ComponentMessages.prototype, "override", { + get: function () { + return false; + }, + enumerable: true, + configurable: true + }); + ComponentMessages.prototype.ngOnChanges = function (changes) { + this.register(changes); + if (Object.keys(changes).some(function (field) { return !changes[field].isFirstChange(); })) { + this.service.notifyChanges(); + } + }; + ComponentMessages.prototype.ngOnInit = function () { + var _this = this; + this.subscription = this.service.changes.pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__["skip"])(1)).subscribe(function () { return _this.register(_this); }); + }; + ComponentMessages.prototype.register = function (changes) { + var _this = this; + var keys = Object.keys(changes); + keys.forEach(function (key) { return _this.service.register(key, _this[key], _this.override); }); + }; + ComponentMessages.prototype.ngOnDestroy = function () { + if (this.subscription) { + this.subscription.unsubscribe(); + } + }; +ComponentMessages.ɵfac = function ComponentMessages_Factory(t) { return new (t || ComponentMessages)(); }; +ComponentMessages.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({ type: ComponentMessages, features: [_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵNgOnChangesFeature"]] }); + + return ComponentMessages; +}()); + + +var RTL = new _angular_core__WEBPACK_IMPORTED_MODULE_0__["InjectionToken"]("Kendo UI Right-to-Left token"); + + +var L10N_PREFIX = new _angular_core__WEBPACK_IMPORTED_MODULE_0__["InjectionToken"]('Localization key prefix'); + +var LocalizationService = (function () { + function LocalizationService(prefix, messageService, _rtl) { + var _this = this; + this.prefix = prefix; + this.messageService = messageService; + this._rtl = _rtl; + this.changes = new rxjs__WEBPACK_IMPORTED_MODULE_1__["BehaviorSubject"]({ rtl: this._rtl }); + this.dictionary = {}; + if (messageService) { + this.subscription = messageService.changes + .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__["map"])(function (_a) { + var rtl = _a.rtl; + return rtl !== undefined ? rtl : _this._rtl; + }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__["tap"])(function (rtl) { return _this._rtl = rtl; })) + .subscribe(function (rtl) { + _this.dictionary = {}; + _this.changes.next({ rtl: rtl }); + }); + } + } + Object.defineProperty(LocalizationService.prototype, "rtl", { + get: function () { + return this._rtl; + }, + enumerable: true, + configurable: true + }); + LocalizationService.prototype.ngOnDestroy = function () { + if (this.subscription) { + this.subscription.unsubscribe(); + } + }; + LocalizationService.prototype.get = function (shortKey) { + var key = this.key(shortKey); + return this.dictionary[key]; + }; + LocalizationService.prototype.register = function (shortKey, value, override) { + if (override === void 0) { override = false; } + var key = this.key(shortKey); + var message = value; + if (!override) { + if (this.dictionary.hasOwnProperty(key)) { + return; + } + message = this.defaultValue(key, value); + } + this.dictionary[key] = message; + }; + LocalizationService.prototype.notifyChanges = function () { + this.changes.next({ rtl: this.rtl }); + }; + LocalizationService.prototype.key = function (shortKey) { + return this.prefix + '.' + shortKey; + }; + LocalizationService.prototype.defaultValue = function (key, value) { + if (!this.messageService) { + return value; + } + var alt = this.messageService.get(key); + return (alt === undefined) ? value : alt; + }; + + LocalizationService.ctorParameters = function () { return [ + { type: String, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Inject"], args: [L10N_PREFIX,] }] }, + { type: MessageService, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Optional"] }] }, + { type: Boolean, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Optional"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Inject"], args: [RTL,] }] } + ]; }; +LocalizationService.ɵfac = function LocalizationService_Factory(t) { return new (t || LocalizationService)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"](L10N_PREFIX), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"](MessageService, 8), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"](RTL, 8)); }; +LocalizationService.ɵprov = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"]({ token: LocalizationService, factory: function (t) { return LocalizationService.ɵfac(t); } }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](LocalizationService, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Injectable"] + }], function () { return [{ type: String, decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Inject"], + args: [L10N_PREFIX] + }] }, { type: MessageService, decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Optional"] + }] }, { type: Boolean, decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Optional"] + }, { + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Inject"], + args: [RTL] + }] }]; }, null); })(); + return LocalizationService; +}()); + + + + + +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbImluZGV4LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7OztnREFHTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUdNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7a0NBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlc0NvbnRlbnQiOlsiLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiogQ29weXJpZ2h0IMKpIDIwMjAgUHJvZ3Jlc3MgU29mdHdhcmUgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4qIExpY2Vuc2VkIHVuZGVyIGNvbW1lcmNpYWwgbGljZW5zZS4gU2VlIExJQ0VOU0UubWQgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgbW9yZSBpbmZvcm1hdGlvblxuKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4sIEluamVjdCwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QsIEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgc2tpcCwgbWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbi8qIHRzbGludDpkaXNhYmxlOm1heC1saW5lLWxlbmd0aCAqL1xuLyoqXG4gKiBBIGJhc2UgY2xhc3MgZm9yIGEgc2VydmljZSB0aGF0IHJldHVybnMgbG9jYWxpemVkIG1lc3NhZ2VzLlxuICpcbiAqIEZvciBtb3JlIGluZm9ybWF0aW9uLCByZWZlciB0byB0aGUgc2VjdGlvbiBvbiBbdXNpbmcgdGhlIG1lc3NhZ2Ugc2VydmljZV0oeyUgc2x1ZyBtZXNzYWdlc19sMTBuICV9I3RvYy11c2luZy10aGUtbWVzc2FnZS1zZXJ2aWNlKS5cbiAqL1xudmFyIE1lc3NhZ2VTZXJ2aWNlID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIE1lc3NhZ2VTZXJ2aWNlKCkge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGhpZGRlblxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5jaGFuZ2VzID0gbmV3IFN1YmplY3QoKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogTm90aWZpZXMgdGhlIGNvbXBvbmVudHMgdGhhdCB0aGUgbWVzc2FnZXMgd2VyZSBjaGFuZ2VkLlxuICAgICAqXG4gICAgICogQHBhcmFtIHJ0bCAtIChPcHRpb25hbCkgQSBuZXcgdmFsdWUgZm9yIHRoZSBbdGV4dCBkaXJlY3Rpb24gdG9rZW5dKHslIHNsdWcgYXBpX2wxMG5fcnRsICV9KS5cbiAgICAgKi9cbiAgICBNZXNzYWdlU2VydmljZS5wcm90b3R5cGUubm90aWZ5ID0gZnVuY3Rpb24gKHJ0bCkge1xuICAgICAgICB0aGlzLmNoYW5nZXMubmV4dCh7IHJ0bDogcnRsIH0pO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhIGxvY2FsaXplZCBtZXNzYWdlIGZvciB0aGUgc3VwcGxpZWQga2V5LlxuICAgICAqXG4gICAgICogQHBhcmFtIGtleSAtIFRoZSBtZXNzYWdlIGtleS4gRm9yIGV4YW1wbGUsIGBcImtlbmRvLmdyaWQubm9SZWNvcmRzXCJgLlxuICAgICAqIEByZXR1cm4gLSBUaGUgbG9jYWxpemVkIG1lc3NhZ2UgZm9yIHRoaXMga2V5IG9yIGB1bmRlZmluZWRgIGlmIG5vdCBmb3VuZC5cbiAgICAgKi9cbiAgICBNZXNzYWdlU2VydmljZS5wcm90b3R5cGUuZ2V0ID0gZnVuY3Rpb24gKGtleSkge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH07XG4gICAgTWVzc2FnZVNlcnZpY2UuZGVjb3JhdG9ycyA9IFtcbiAgICAgICAgeyB0eXBlOiBJbmplY3RhYmxlIH0sXG4gICAgXTtcbiAgICByZXR1cm4gTWVzc2FnZVNlcnZpY2U7XG59KCkpO1xuXG4vKipcbiAqIEJhc2UgY2xhc3MgdGhhdCBhY3RzIGFzIGEgY29tcG9uZW50IG1lc3NhZ2VzIGNvbnRhaW5lci5cbiAqXG4gKiBGb3IgaW50ZXJuYWwgdXNlLlxuICogQGhpZGRlblxuICovXG52YXIgQ29tcG9uZW50TWVzc2FnZXMgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gQ29tcG9uZW50TWVzc2FnZXMoKSB7XG4gICAgfVxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShDb21wb25lbnRNZXNzYWdlcy5wcm90b3R5cGUsIFwib3ZlcnJpZGVcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgQ29tcG9uZW50TWVzc2FnZXMucHJvdG90eXBlLm5nT25DaGFuZ2VzID0gZnVuY3Rpb24gKGNoYW5nZXMpIHtcbiAgICAgICAgdGhpcy5yZWdpc3RlcihjaGFuZ2VzKTtcbiAgICAgICAgaWYgKE9iamVjdC5rZXlzKGNoYW5nZXMpLnNvbWUoZnVuY3Rpb24gKGZpZWxkKSB7IHJldHVybiAhY2hhbmdlc1tmaWVsZF0uaXNGaXJzdENoYW5nZSgpOyB9KSkge1xuICAgICAgICAgICAgdGhpcy5zZXJ2aWNlLm5vdGlmeUNoYW5nZXMoKTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgQ29tcG9uZW50TWVzc2FnZXMucHJvdG90eXBlLm5nT25Jbml0ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHRoaXMuc2VydmljZS5jaGFuZ2VzLnBpcGUoc2tpcCgxKSkuc3Vic2NyaWJlKGZ1bmN0aW9uICgpIHsgcmV0dXJuIF90aGlzLnJlZ2lzdGVyKF90aGlzKTsgfSk7XG4gICAgfTtcbiAgICBDb21wb25lbnRNZXNzYWdlcy5wcm90b3R5cGUucmVnaXN0ZXIgPSBmdW5jdGlvbiAoY2hhbmdlcykge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICB2YXIga2V5cyA9IE9iamVjdC5rZXlzKGNoYW5nZXMpO1xuICAgICAgICBrZXlzLmZvckVhY2goZnVuY3Rpb24gKGtleSkgeyByZXR1cm4gX3RoaXMuc2VydmljZS5yZWdpc3RlcihrZXksIF90aGlzW2tleV0sIF90aGlzLm92ZXJyaWRlKTsgfSk7XG4gICAgfTtcbiAgICBDb21wb25lbnRNZXNzYWdlcy5wcm90b3R5cGUubmdPbkRlc3Ryb3kgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmICh0aGlzLnN1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgcmV0dXJuIENvbXBvbmVudE1lc3NhZ2VzO1xufSgpKTtcblxuLyoqXG4gKiBBIHRva2VuIHRoYXQgc3BlY2lmaWVzIHRoZSB0ZXh0IGRpcmVjdGlvbiBvZiBLZW5kbyBVSSBmb3IgQW5ndWxhciBjb21wb25lbnRzLlxuICpcbiAqIEBleGFtcGxlXG4gKiB7JSBlbWJlZF9maWxlIHJ0bC9hcHAubW9kdWxlLnRzIHByZXZpZXcgJX1cbiAqIHslIGVtYmVkX2ZpbGUgcnRsL2FwcC5jb21wb25lbnQudHMgJX1cbiAqIHslIGVtYmVkX2ZpbGUgc2hhcmVkL21haW4udHMgaGlkZGVuICV9XG4gKlxuICovXG52YXIgUlRMID0gbmV3IEluamVjdGlvblRva2VuKFwiS2VuZG8gVUkgUmlnaHQtdG8tTGVmdCB0b2tlblwiKTtcblxuLyoqXG4gKiBMb2NhbGl6YXRpb24gcHJlZml4IGZvciB0aGUgY29tcG9uZW50IG1lc3NhZ2VzLlxuICpcbiAqIEZvciBpbnRlcm5hbCB1c2UuXG4gKiBAaGlkZGVuXG4gKi9cbnZhciBMMTBOX1BSRUZJWCA9IG5ldyBJbmplY3Rpb25Ub2tlbignTG9jYWxpemF0aW9uIGtleSBwcmVmaXgnKTtcbi8qKlxuICogQ29tcG9uZW50IGxvY2FsaXphdGlvbiBzZXJ2aWNlLlxuICpcbiAqIEZvciBpbnRlcm5hbCB1c2UuXG4gKiBAaGlkZGVuXG4gKi9cbnZhciBMb2NhbGl6YXRpb25TZXJ2aWNlID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIExvY2FsaXphdGlvblNlcnZpY2UocHJlZml4LCBtZXNzYWdlU2VydmljZSwgX3J0bCkge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICB0aGlzLnByZWZpeCA9IHByZWZpeDtcbiAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZSA9IG1lc3NhZ2VTZXJ2aWNlO1xuICAgICAgICB0aGlzLl9ydGwgPSBfcnRsO1xuICAgICAgICB0aGlzLmNoYW5nZXMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHsgcnRsOiB0aGlzLl9ydGwgfSk7XG4gICAgICAgIHRoaXMuZGljdGlvbmFyeSA9IHt9O1xuICAgICAgICBpZiAobWVzc2FnZVNlcnZpY2UpIHtcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gbWVzc2FnZVNlcnZpY2UuY2hhbmdlc1xuICAgICAgICAgICAgICAgIC5waXBlKG1hcChmdW5jdGlvbiAoX2EpIHtcbiAgICAgICAgICAgICAgICB2YXIgcnRsID0gX2EucnRsO1xuICAgICAgICAgICAgICAgIHJldHVybiBydGwgIT09IHVuZGVmaW5lZCA/IHJ0bCA6IF90aGlzLl9ydGw7XG4gICAgICAgICAgICB9KSwgdGFwKGZ1bmN0aW9uIChydGwpIHsgcmV0dXJuIF90aGlzLl9ydGwgPSBydGw7IH0pKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoZnVuY3Rpb24gKHJ0bCkge1xuICAgICAgICAgICAgICAgIF90aGlzLmRpY3Rpb25hcnkgPSB7fTtcbiAgICAgICAgICAgICAgICBfdGhpcy5jaGFuZ2VzLm5leHQoeyBydGw6IHJ0bCB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShMb2NhbGl6YXRpb25TZXJ2aWNlLnByb3RvdHlwZSwgXCJydGxcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9ydGw7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIExvY2FsaXphdGlvblNlcnZpY2UucHJvdG90eXBlLm5nT25EZXN0cm95ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAodGhpcy5zdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIExvY2FsaXphdGlvblNlcnZpY2UucHJvdG90eXBlLmdldCA9IGZ1bmN0aW9uIChzaG9ydEtleSkge1xuICAgICAgICB2YXIga2V5ID0gdGhpcy5rZXkoc2hvcnRLZXkpO1xuICAgICAgICByZXR1cm4gdGhpcy5kaWN0aW9uYXJ5W2tleV07XG4gICAgfTtcbiAgICBMb2NhbGl6YXRpb25TZXJ2aWNlLnByb3RvdHlwZS5yZWdpc3RlciA9IGZ1bmN0aW9uIChzaG9ydEtleSwgdmFsdWUsIG92ZXJyaWRlKSB7XG4gICAgICAgIGlmIChvdmVycmlkZSA9PT0gdm9pZCAwKSB7IG92ZXJyaWRlID0gZmFsc2U7IH1cbiAgICAgICAgdmFyIGtleSA9IHRoaXMua2V5KHNob3J0S2V5KTtcbiAgICAgICAgdmFyIG1lc3NhZ2UgPSB2YWx1ZTtcbiAgICAgICAgaWYgKCFvdmVycmlkZSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuZGljdGlvbmFyeS5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbWVzc2FnZSA9IHRoaXMuZGVmYXVsdFZhbHVlKGtleSwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZGljdGlvbmFyeVtrZXldID0gbWVzc2FnZTtcbiAgICB9O1xuICAgIExvY2FsaXphdGlvblNlcnZpY2UucHJvdG90eXBlLm5vdGlmeUNoYW5nZXMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHRoaXMuY2hhbmdlcy5uZXh0KHsgcnRsOiB0aGlzLnJ0bCB9KTtcbiAgICB9O1xuICAgIExvY2FsaXphdGlvblNlcnZpY2UucHJvdG90eXBlLmtleSA9IGZ1bmN0aW9uIChzaG9ydEtleSkge1xuICAgICAgICByZXR1cm4gdGhpcy5wcmVmaXggKyAnLicgKyBzaG9ydEtleTtcbiAgICB9O1xuICAgIExvY2FsaXphdGlvblNlcnZpY2UucHJvdG90eXBlLmRlZmF1bHRWYWx1ZSA9IGZ1bmN0aW9uIChrZXksIHZhbHVlKSB7XG4gICAgICAgIGlmICghdGhpcy5tZXNzYWdlU2VydmljZSkge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHZhciBhbHQgPSB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmdldChrZXkpO1xuICAgICAgICByZXR1cm4gKGFsdCA9PT0gdW5kZWZpbmVkKSA/IHZhbHVlIDogYWx0O1xuICAgIH07XG4gICAgTG9jYWxpemF0aW9uU2VydmljZS5kZWNvcmF0b3JzID0gW1xuICAgICAgICB7IHR5cGU6IEluamVjdGFibGUgfSxcbiAgICBdO1xuICAgIC8qKiBAbm9jb2xsYXBzZSAqL1xuICAgIExvY2FsaXphdGlvblNlcnZpY2UuY3RvclBhcmFtZXRlcnMgPSBmdW5jdGlvbiAoKSB7IHJldHVybiBbXG4gICAgICAgIHsgdHlwZTogU3RyaW5nLCBkZWNvcmF0b3JzOiBbeyB0eXBlOiBJbmplY3QsIGFyZ3M6IFtMMTBOX1BSRUZJWCxdIH1dIH0sXG4gICAgICAgIHsgdHlwZTogTWVzc2FnZVNlcnZpY2UsIGRlY29yYXRvcnM6IFt7IHR5cGU6IE9wdGlvbmFsIH1dIH0sXG4gICAgICAgIHsgdHlwZTogQm9vbGVhbiwgZGVjb3JhdG9yczogW3sgdHlwZTogT3B0aW9uYWwgfSwgeyB0eXBlOiBJbmplY3QsIGFyZ3M6IFtSVEwsXSB9XSB9XG4gICAgXTsgfTtcbiAgICByZXR1cm4gTG9jYWxpemF0aW9uU2VydmljZTtcbn0oKSk7XG5cbi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0IHsgTWVzc2FnZVNlcnZpY2UsIENvbXBvbmVudE1lc3NhZ2VzLCBMMTBOX1BSRUZJWCwgTG9jYWxpemF0aW9uU2VydmljZSwgUlRMIH07XG4iXX0= + + }), + + "./node_modules/@progress/kendo-angular-popup/__ivy_ngcc__/dist/fesm5/index.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "AlignService", function() { return AlignService; }); + __webpack_require__.d(__webpack_exports__, "AnimationService", function() { return AnimationService; }); + __webpack_require__.d(__webpack_exports__, "DOMService", function() { return DOMService; }); + __webpack_require__.d(__webpack_exports__, "PositionService", function() { return PositionService; }); + __webpack_require__.d(__webpack_exports__, "ResizeService", function() { return ResizeService; }); + __webpack_require__.d(__webpack_exports__, "ScrollableService", function() { return ScrollableService; }); + __webpack_require__.d(__webpack_exports__, "PopupService", function() { return PopupService; }); + __webpack_require__.d(__webpack_exports__, "POPUP_CONTAINER", function() { return POPUP_CONTAINER; }); + __webpack_require__.d(__webpack_exports__, "PopupComponent", function() { return PopupComponent; }); + __webpack_require__.d(__webpack_exports__, "PopupModule", function() { return PopupModule; }); + __webpack_require__.d(__webpack_exports__, "SCALE", function() { return SCALE; }); + var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( 100003); + var _angular_core__WEBPACK_IMPORTED_MODULE_0___default = __webpack_require__.n(_angular_core__WEBPACK_IMPORTED_MODULE_0__); + var _progress_kendo_popup_common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-popup-common/dist/es/main.js"); + var _progress_kendo_angular_common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-angular-common/__ivy_ngcc__/dist/fesm5/index.js"); + var rxjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( 100006); + var rxjs__WEBPACK_IMPORTED_MODULE_3___default = __webpack_require__.n(rxjs__WEBPACK_IMPORTED_MODULE_3__); + var rxjs_operators__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( 100007); + var rxjs_operators__WEBPACK_IMPORTED_MODULE_4___default = __webpack_require__.n(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__); + var _angular_animations__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( 100012); + var _angular_animations__WEBPACK_IMPORTED_MODULE_5___default = __webpack_require__.n(_angular_animations__WEBPACK_IMPORTED_MODULE_5__); + var _angular_common__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__( 100011); + var _angular_common__WEBPACK_IMPORTED_MODULE_6___default = __webpack_require__.n(_angular_common__WEBPACK_IMPORTED_MODULE_6__); + + + + + + + + + + + + + + + +var _c0 = ["container"]; +function PopupComponent_ng_template_3_Template(rf, ctx) { } +var _c1 = ["*"]; +var eitherRect = function (rect, offset$$1) { + if (!rect) { + return { height: 0, left: offset$$1.left, top: offset$$1.top, width: 0 }; + } + return rect; +}; + +var removeStackingOffset = function (rect, stackingOffset) { + if (!stackingOffset) { + return rect; + } + var result = { + height: rect.height, + left: rect.left - stackingOffset.left, + top: rect.top - stackingOffset.top, + width: rect.width + }; + return result; +}; + +var isDifferentOffset = function (oldOffset, newOffset) { + var oldLeft = oldOffset.left, oldTop = oldOffset.top; + var newLeft = newOffset.left, newTop = newOffset.top; + return Math.abs(oldLeft - newLeft) >= 1 || Math.abs(oldTop - newTop) >= 1; +}; + +var isWindowAvailable = function () { + return typeof window !== 'undefined'; +}; + +var OVERFLOW_REGEXP = /auto|scroll/; +var overflowElementStyle = function (element) { + return "" + element.style.overflow + element.style.overflowX + element.style.overflowY; +}; +var overflowComputedStyle = function (element) { + var styles = window.getComputedStyle(element); + return "" + styles.overflow + styles.overflowX + styles.overflowY; +}; +var overflowStyle = function (element) { + return overflowElementStyle(element) || overflowComputedStyle(element); +}; + +var scrollableParents = function (element) { + var parentElements = []; + if (!Object(_progress_kendo_angular_common__WEBPACK_IMPORTED_MODULE_2__["isDocumentAvailable"])() || !isWindowAvailable()) { + return parentElements; + } + var parent = element.parentElement; + while (parent) { + if (OVERFLOW_REGEXP.test(overflowStyle(parent)) || parent.hasAttribute('data-scrollable')) { + parentElements.push(parent); + } + parent = parent.parentElement; + } + parentElements.push(window); + return parentElements; +}; + +var FRAME_DURATION = 1000 / 60; //1000ms divided by 60fps +function memoize(fun) { + var result; + var called = false; + return function () { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + if (called) { + return result; + } + result = fun.apply(void 0, args); + called = true; + return result; + }; +} + +var hasRelativeStackingContext = memoize(function () { + if (!Object(_progress_kendo_angular_common__WEBPACK_IMPORTED_MODULE_2__["isDocumentAvailable"])() && document.body !== null) { + return false; + } + var top = 10; + var parent = document.createElement("div"); + parent.style.transform = "matrix(10, 0, 0, 10, 0, 0)"; + parent.innerHTML = "
child
"; + document.body.appendChild(parent); + var isDifferent = parent.children[0].getBoundingClientRect().top !== top; + document.body.removeChild(parent); + return isDifferent; +}); + +var zIndex = function (anchor, container) { + if (!anchor || !Object(_progress_kendo_angular_common__WEBPACK_IMPORTED_MODULE_2__["isDocumentAvailable"])() || !isWindowAvailable()) { + return null; + } + var sibling = Object(_progress_kendo_popup_common__WEBPACK_IMPORTED_MODULE_1__["siblingContainer"])(anchor, container); + if (!sibling) { + return null; + } + var result = [anchor].concat(Object(_progress_kendo_popup_common__WEBPACK_IMPORTED_MODULE_1__["parents"])(anchor, sibling)).reduce(function (index, p) { + var zIndexStyle = p.style.zIndex || window.getComputedStyle(p).zIndex; + var current = parseInt(zIndexStyle, 10); + return current > index ? current : index; + }, 0); + return result ? (result + 1) : null; +}; + +var scaleRect = function (rect, scale) { + if (!rect || scale === 1) { + return rect; + } + return { + height: rect.height / scale, + left: rect.left / scale, + top: rect.top / scale, + width: rect.width / scale + }; +}; + +var STYLES = [ + 'font-size', + 'font-family', + 'font-stretch', + 'font-style', + 'font-weight', + 'line-height' +]; + +var DOMService = (function () { + function DOMService() { + } + DOMService.prototype.addOffset = function (current, addition) { + return { + left: current.left + addition.left, + top: current.top + addition.top + }; + }; + DOMService.prototype.addScroll = function (rect, scroll) { + return Object(_progress_kendo_popup_common__WEBPACK_IMPORTED_MODULE_1__["addScroll"])(rect, scroll); + }; + DOMService.prototype.align = function (settings) { + return Object(_progress_kendo_popup_common__WEBPACK_IMPORTED_MODULE_1__["align"])(settings); + }; + DOMService.prototype.boundingOffset = function (el) { + return Object(_progress_kendo_popup_common__WEBPACK_IMPORTED_MODULE_1__["boundingOffset"])(this.nativeElement(el)); + }; + DOMService.prototype.getFontStyles = function (el) { + var window = this.getWindow(); + if (!window || !el) { + return []; + } + var computedStyles = window.getComputedStyle(this.nativeElement(el)); + return STYLES.map(function (font) { return ({ key: font, value: computedStyles[font] }); }); + }; + DOMService.prototype.getWindow = function () { + return isWindowAvailable() ? window : null; + }; + DOMService.prototype.hasOffsetParent = function (el) { + if (!el) { + return false; + } + return !!this.nativeElement(el).offsetParent; + }; + DOMService.prototype.offset = function (el) { + if (!el) { + return null; + } + return Object(_progress_kendo_popup_common__WEBPACK_IMPORTED_MODULE_1__["offset"])(this.nativeElement(el)); + }; + DOMService.prototype.offsetAtPoint = function (el, currentLocation) { + if (!el) { + return null; + } + var element = this.nativeElement(el); + var _a = element.style, left = _a.left, top = _a.top, transition = _a.transition; + element.style.transition = 'none'; + element.style.left = currentLocation.left + "px"; + element.style.top = currentLocation.top + "px"; + var currentOffset = Object(_progress_kendo_popup_common__WEBPACK_IMPORTED_MODULE_1__["offset"])(element); + element.style.left = left; + element.style.top = top; + // prevents elements with transition to be animated because of the change + // tslint:disable-next-line:no-unused-expression + element.offsetHeight; + element.style.transition = transition; + return currentOffset; + }; + DOMService.prototype.nativeElement = function (el) { + if (!el) { + return null; + } + return el.nativeElement || el; + }; + DOMService.prototype.position = function (element, popup, scale) { + if (scale === void 0) { scale = 1; } + if (!element || !popup) { + return null; + } + return Object(_progress_kendo_popup_common__WEBPACK_IMPORTED_MODULE_1__["positionWithScroll"])(this.nativeElement(element), this.nativeElement(popup), scale); + }; + DOMService.prototype.removeScroll = function (rect, scroll) { + return Object(_progress_kendo_popup_common__WEBPACK_IMPORTED_MODULE_1__["removeScroll"])(rect, scroll); + }; + DOMService.prototype.restrictToView = function (settings) { + return Object(_progress_kendo_popup_common__WEBPACK_IMPORTED_MODULE_1__["restrictToView"])(settings); + }; + DOMService.prototype.scrollPosition = function (el) { + return Object(_progress_kendo_popup_common__WEBPACK_IMPORTED_MODULE_1__["scrollPosition"])(this.nativeElement(el)); + }; + DOMService.prototype.scrollableParents = function (el) { + return scrollableParents(this.nativeElement(el)); + }; + DOMService.prototype.stackingElementOffset = function (el) { + var relativeContextElement = this.getRelativeContextElement(el); + if (!relativeContextElement) { + return null; + } + return Object(_progress_kendo_popup_common__WEBPACK_IMPORTED_MODULE_1__["offset"])(relativeContextElement); + }; + DOMService.prototype.stackingElementScroll = function (el) { + var relativeContextElement = this.getRelativeContextElement(el); + if (!relativeContextElement) { + return { x: 0, y: 0 }; + } + return { + x: relativeContextElement.scrollLeft, + y: relativeContextElement.scrollTop + }; + }; + DOMService.prototype.getRelativeContextElement = function (el) { + if (!el || !hasRelativeStackingContext()) { + return null; + } + var parent = this.nativeElement(el).parentElement; + while (parent) { + if (window.getComputedStyle(parent).transform !== 'none') { + return parent; + } + parent = parent.parentElement; + } + return null; + }; + DOMService.prototype.useRelativePosition = function (el) { + return !!this.getRelativeContextElement(el); + }; + DOMService.prototype.windowViewPort = function (el) { + return Object(_progress_kendo_popup_common__WEBPACK_IMPORTED_MODULE_1__["getWindowViewPort"])(this.nativeElement(el)); + }; + DOMService.prototype.zIndex = function (anchor, container) { + return zIndex(this.nativeElement(anchor), this.nativeElement(container)); + }; + DOMService.prototype.zoomLevel = function () { + if (!Object(_progress_kendo_angular_common__WEBPACK_IMPORTED_MODULE_2__["isDocumentAvailable"])() || !isWindowAvailable()) { + return 1; + } + return parseFloat((document.documentElement.clientWidth / window.innerWidth).toFixed(2)) || 1; + }; + DOMService.prototype.isZoomed = function () { + return this.zoomLevel() > 1; + }; +DOMService.ɵfac = function DOMService_Factory(t) { return new (t || DOMService)(); }; +DOMService.ɵprov = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"]({ token: DOMService, factory: function (t) { return DOMService.ɵfac(t); } }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](DOMService, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Injectable"] + }], function () { return []; }, null); })(); + return DOMService; +}()); + + +var SCALE = new _angular_core__WEBPACK_IMPORTED_MODULE_0__["InjectionToken"]('Popup Document Scale'); + + +var AlignService = (function () { + function AlignService(_dom, scale) { + if (scale === void 0) { scale = 1; } + this._dom = _dom; + this.scale = scale; + } + AlignService.prototype.alignElement = function (settings) { + var anchor = settings.anchor, element = settings.element, anchorAlign = settings.anchorAlign, elementAlign = settings.elementAlign, margin = settings.margin, offset$$1 = settings.offset, positionMode = settings.positionMode; + var scale = this.scale || 1; + var fixedMode = positionMode === 'fixed' || !this._dom.hasOffsetParent(element); + var anchorRect = fixedMode ? this.absoluteRect(anchor, element, offset$$1, scale) : this.relativeRect(anchor, element, offset$$1, scale); + var elementRect = scaleRect(this._dom.offset(element), scale); + var result = this._dom.align({ + anchorAlign: anchorAlign, + anchorRect: anchorRect, + elementAlign: elementAlign, + elementRect: elementRect, + margin: margin + }); + return result; + }; + AlignService.prototype.absoluteRect = function (anchor, element, offset$$1, scale) { + var scrollPos = this.elementScrollPosition(anchor, element); + var rect = eitherRect(this._dom.offset(anchor), offset$$1); + var stackScale = 2 * scale; + var stackScroll = this._dom.stackingElementScroll(element); + if (scale !== 1 && stackScroll) { + stackScroll.x /= stackScale; + stackScroll.y /= stackScale; + } + var stackOffset = this._dom.stackingElementOffset(element); + if (scale !== 1 && stackOffset) { + stackOffset.left /= stackScale; + stackOffset.top /= stackScale; + } + return this._dom.removeScroll(this._dom.addScroll(removeStackingOffset(scaleRect(rect, scale), stackOffset), stackScroll), scrollPos); + }; + AlignService.prototype.elementScrollPosition = function (anchor, element) { + return anchor ? { x: 0, y: 0 } : this._dom.scrollPosition(element); + }; + AlignService.prototype.relativeRect = function (anchor, element, offset$$1, scale) { + var rect = eitherRect(this._dom.position(anchor, element, scale), offset$$1); + return scaleRect(rect, scale); + }; + + AlignService.ctorParameters = function () { return [ + { type: DOMService }, + { type: Number, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Inject"], args: [SCALE,] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Optional"] }] } + ]; }; +AlignService.ɵfac = function AlignService_Factory(t) { return new (t || AlignService)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"](DOMService), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"](SCALE, 8)); }; +AlignService.ɵprov = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"]({ token: AlignService, factory: function (t) { return AlignService.ɵfac(t); } }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](AlignService, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Injectable"] + }], function () { return [{ type: DOMService }, { type: Number, decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Inject"], + args: [SCALE] + }, { + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Optional"] + }] }]; }, null); })(); + return AlignService; +}()); + + +var PositionService = (function () { + function PositionService(_dom, scale) { + if (scale === void 0) { scale = 1; } + this._dom = _dom; + this.scale = scale; + } + PositionService.prototype.positionElement = function (settings) { + var anchor = settings.anchor, currentLocation = settings.currentLocation, element = settings.element, anchorAlign = settings.anchorAlign, elementAlign = settings.elementAlign, collisions = settings.collisions, margin = settings.margin; + var dom = this._dom; + var scale = this.scale || 1; + var elementOffset = dom.offsetAtPoint(element, currentLocation); + var elementRect = scaleRect(elementOffset, scale); + var anchorOffset = scaleRect(dom.offset(anchor), scale); + var anchorRect = eitherRect(anchorOffset, currentLocation); + var viewPort = settings.viewPort || dom.windowViewPort(element); + viewPort.width = viewPort.width / scale; + viewPort.height = viewPort.height / scale; + var result = dom.restrictToView({ + anchorAlign: anchorAlign, + anchorRect: anchorRect, + collisions: collisions, + elementAlign: elementAlign, + elementRect: elementRect, + margin: margin, + viewPort: viewPort + }); + var offset$$1 = dom.addOffset(currentLocation, result.offset); + return { + flip: result.flip, + flipped: result.flipped, + offset: offset$$1 + }; + }; + + PositionService.ctorParameters = function () { return [ + { type: DOMService }, + { type: Number, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Inject"], args: [SCALE,] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Optional"] }] } + ]; }; +PositionService.ɵfac = function PositionService_Factory(t) { return new (t || PositionService)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"](DOMService), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"](SCALE, 8)); }; +PositionService.ɵprov = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"]({ token: PositionService, factory: function (t) { return PositionService.ɵfac(t); } }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](PositionService, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Injectable"] + }], function () { return [{ type: DOMService }, { type: Number, decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Inject"], + args: [SCALE] + }, { + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Optional"] + }] }]; }, null); })(); + return PositionService; +}()); + + +var ResizeService = (function () { + function ResizeService(_dom, _zone) { + this._dom = _dom; + this._zone = _zone; + } + ResizeService.prototype.subscribe = function (callback) { + var _this = this; + if (!Object(_progress_kendo_angular_common__WEBPACK_IMPORTED_MODULE_2__["isDocumentAvailable"])()) { + return; + } + this._zone.runOutsideAngular(function () { + _this.subscription = Object(rxjs__WEBPACK_IMPORTED_MODULE_3__["fromEvent"])(_this._dom.getWindow(), "resize") + .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__["auditTime"])(FRAME_DURATION)) + .subscribe(function () { return callback(); }); + }); + }; + ResizeService.prototype.unsubscribe = function () { + if (!this.subscription) { + return; + } + this.subscription.unsubscribe(); + }; + ResizeService.prototype.isUnsubscribed = function () { + return this.subscription && this.subscription.closed; + }; + + ResizeService.ctorParameters = function () { return [ + { type: DOMService }, + { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"] } + ]; }; +ResizeService.ɵfac = function ResizeService_Factory(t) { return new (t || ResizeService)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"](DOMService), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"])); }; +ResizeService.ɵprov = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"]({ token: ResizeService, factory: function (t) { return ResizeService.ɵfac(t); } }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](ResizeService, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Injectable"] + }], function () { return [{ type: DOMService }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"] }]; }, null); })(); + return ResizeService; +}()); + + +var THRESHOLD_DIFF = 1; + +var ScrollableService = (function () { + function ScrollableService(_dom, _zone) { + this._dom = _dom; + this._zone = _zone; + } + ScrollableService.prototype.forElement = function (element) { + this.unsubscribe(); + this.element = element; + return this; + }; + ScrollableService.prototype.subscribe = function (callback) { + var _this = this; + if (!callback || !Object(_progress_kendo_angular_common__WEBPACK_IMPORTED_MODULE_2__["isDocumentAvailable"])() || !this.element) { + return; + } + var nativeElement = this._dom.nativeElement(this.element); + var parents$$1 = this._dom.scrollableParents(this.element); + this._zone.runOutsideAngular(function () { + var observables = parents$$1.map(function (p) { return Object(rxjs__WEBPACK_IMPORTED_MODULE_3__["fromEvent"])(p, "scroll").pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__["auditTime"])(FRAME_DURATION)); }); + var subscriber = function (e) { + var target = e.target; + var isParent = parents$$1.filter(function (p) { return p === target; }).length > 0; + var isDocument = target === document; + var isWindow = target === window; + if (isParent || isDocument || isWindow) { + callback(_this.isVisible(nativeElement, target)); + } + }; + _this.subscription = rxjs__WEBPACK_IMPORTED_MODULE_3__["merge"].apply(void 0, observables).subscribe(subscriber); + }); + }; + ScrollableService.prototype.unsubscribe = function () { + if (!this.subscription) { + return; + } + this.subscription.unsubscribe(); + }; + ScrollableService.prototype.isVisible = function (elem, container) { + var elemRect = this._dom.boundingOffset(elem); + var containerRect = this._dom.boundingOffset(container); + if (THRESHOLD_DIFF < (containerRect.top - elemRect.bottom)) { + return false; + } + if (THRESHOLD_DIFF < (elemRect.top - containerRect.bottom)) { + return false; + } + if (THRESHOLD_DIFF < (elemRect.left - containerRect.right)) { + return false; + } + if (THRESHOLD_DIFF < (containerRect.left - elemRect.right)) { + return false; + } + return true; + }; + + ScrollableService.ctorParameters = function () { return [ + { type: DOMService }, + { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"] } + ]; }; +ScrollableService.ɵfac = function ScrollableService_Factory(t) { return new (t || ScrollableService)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"](DOMService), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"])); }; +ScrollableService.ɵprov = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"]({ token: ScrollableService, factory: function (t) { return ScrollableService.ɵfac(t); } }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](ScrollableService, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Injectable"] + }], function () { return [{ type: DOMService }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"] }]; }, null); })(); + return ScrollableService; +}()); + +var LEFT = 'left'; +var RIGHT = 'right'; +var DOWN = 'down'; +var UP = 'up'; +var DEFAULT_TYPE = 'slide'; +var DEFAULT_DURATION = 100; +var animationTypes = {}; + +animationTypes.expand = function (direction) { + var scale = direction === UP || direction === DOWN ? 'scaleY' : 'scaleX'; + var startScale = 0; + var endScale = 1; + var origin; + if (direction === DOWN) { + origin = 'top'; + } + else if (direction === LEFT) { + origin = RIGHT; + } + else if (direction === RIGHT) { + origin = LEFT; + } + else { + origin = 'bottom'; + } + return { + start: { transform: scale + "(" + startScale + ")", transformOrigin: origin }, + end: { transform: scale + "(" + endScale + ")" } + }; +}; +animationTypes.slide = function (direction) { + var translate = direction === LEFT || direction === RIGHT ? 'translateX' : 'translateY'; + var start = direction === RIGHT || direction === DOWN ? -100 : 100; + var end = 0; + return { + start: { transform: translate + "(" + start + "%)" }, + end: { transform: translate + "(" + end + "%)" } + }; +}; +animationTypes.fade = function () { + return { + start: { opacity: 0 }, + end: { opacity: 1 } + }; +}; +animationTypes.zoom = function () { + var start = 0; + var end = 1; + return { + start: { transform: "scale(" + start + ")" }, + end: { transform: "scale(" + end + ")" } + }; +}; + +var AnimationService = (function () { + function AnimationService(animationBuilder) { + this.animationBuilder = animationBuilder; + this.start = new _angular_core__WEBPACK_IMPORTED_MODULE_0__["EventEmitter"](); + this.end = new _angular_core__WEBPACK_IMPORTED_MODULE_0__["EventEmitter"](); + } + AnimationService.prototype.play = function (element, options, flip) { + if (!this.flip || this.flip.horizontal !== flip.horizontal || + this.flip.vertical !== flip.vertical) { + this.flip = flip; + var type = options.type || DEFAULT_TYPE; + var statesFn = animationTypes[type]; + if (statesFn) { + var direction = this.getDirection(flip, options); + var states = statesFn(direction); + this.playStates(element, states, options); + } + else if (Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["isDevMode"])()) { + throw new Error("Unsupported animation type: \"" + type + "\". The supported types are slide, expand, fade and zoom."); + } + } + }; + AnimationService.prototype.ngOnDestroy = function () { + this.stopPlayer(); + }; + AnimationService.prototype.playStates = function (element, states, options) { + var _this = this; + this.stopPlayer(); + var duration = options.duration || DEFAULT_DURATION; + var factory = this.animationBuilder.build([ + Object(_angular_animations__WEBPACK_IMPORTED_MODULE_5__["style"])(states.start), + Object(_angular_animations__WEBPACK_IMPORTED_MODULE_5__["animate"])(duration + "ms ease-in", Object(_angular_animations__WEBPACK_IMPORTED_MODULE_5__["style"])(states.end)) + ]); + var player = this.player = factory.create(element); + player.onDone(function () { + _this.end.emit(); + _this.stopPlayer(); + }); + this.start.emit(); + player.play(); + }; + AnimationService.prototype.getDirection = function (flip, options) { + var direction = options.direction || DOWN; + if (flip.horizontal) { + if (direction === LEFT) { + direction = RIGHT; + } + else if (direction === RIGHT) { + direction = LEFT; + } + } + if (flip.vertical) { + if (direction === DOWN) { + direction = UP; + } + else if (direction === UP) { + direction = DOWN; + } + } + return direction; + }; + AnimationService.prototype.stopPlayer = function () { + if (this.player) { + this.player.destroy(); + this.player = null; + } + }; + + AnimationService.ctorParameters = function () { return [ + { type: _angular_animations__WEBPACK_IMPORTED_MODULE_5__["AnimationBuilder"] } + ]; }; +AnimationService.ɵfac = function AnimationService_Factory(t) { return new (t || AnimationService)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"](_angular_animations__WEBPACK_IMPORTED_MODULE_5__["AnimationBuilder"])); }; +AnimationService.ɵprov = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"]({ token: AnimationService, factory: function (t) { return AnimationService.ɵfac(t); } }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](AnimationService, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Injectable"] + }], function () { return [{ type: _angular_animations__WEBPACK_IMPORTED_MODULE_5__["AnimationBuilder"] }]; }, null); })(); + return AnimationService; +}()); + +var DEFAULT_OFFSET = { left: -10000, top: 0 }; +var ANIMATION_CONTAINER = 'k-animation-container'; +var ANIMATION_CONTAINER_FIXED = 'k-animation-container-fixed'; + +var PopupComponent = (function () { + function PopupComponent(container, _alignService, domService, _positionService, _resizeService, _scrollableService, animationService, _renderer, _zone) { + this.container = container; + this._alignService = _alignService; + this.domService = domService; + this._positionService = _positionService; + this._resizeService = _resizeService; + this._scrollableService = _scrollableService; + this.animationService = animationService; + this._renderer = _renderer; + this._zone = _zone; + + this.animate = true; + + this.anchorAlign = { horizontal: 'left', vertical: 'bottom' }; + + this.collision = { horizontal: 'fit', vertical: 'flip' }; + + this.popupAlign = { horizontal: 'left', vertical: 'top' }; + + this.copyAnchorStyles = false; + + this.positionMode = 'fixed'; + + this.offset = DEFAULT_OFFSET; + + this.anchorViewportLeave = new _angular_core__WEBPACK_IMPORTED_MODULE_0__["EventEmitter"](); + + this.close = new _angular_core__WEBPACK_IMPORTED_MODULE_0__["EventEmitter"](); + + this.open = new _angular_core__WEBPACK_IMPORTED_MODULE_0__["EventEmitter"](); + + this.positionChange = new _angular_core__WEBPACK_IMPORTED_MODULE_0__["EventEmitter"](); + this.resolvedPromise = Promise.resolve(null); + this.initialCheck = true; + this._renderer.addClass(container.nativeElement, ANIMATION_CONTAINER); + this.updateFixedClass(); + } + PopupComponent.prototype.ngOnInit = function () { + this.reposition = this.reposition.bind(this); + this._resizeService.subscribe(this.reposition); + this.animationSubscriptions = this.animationService.start.subscribe(this.onAnimationStart.bind(this)); + this.animationSubscriptions.add(this.animationService.end.subscribe(this.onAnimationEnd.bind(this))); + this._scrollableService.forElement(this.anchor || this.container).subscribe(this.onScroll.bind(this)); + this.currentOffset = DEFAULT_OFFSET; + this.setZIndex(); + this.copyFontStyles(); + this.updateFixedClass(); + }; + PopupComponent.prototype.ngOnChanges = function (changes) { + if (changes.copyAnchorStyles) { + this.copyFontStyles(); + } + if (changes.positionMode) { + this.updateFixedClass(); + } + }; + PopupComponent.prototype.ngAfterViewInit = function () { + var _this = this; + this.reposition(); + if (!this.animate) { + this.resolvedPromise.then(function () { + _this.onAnimationEnd(); + }); + } + }; + PopupComponent.prototype.ngAfterViewChecked = function () { + var _this = this; + if (this.initialCheck) { + this.initialCheck = false; + return; + } + this._zone.runOutsideAngular(function () { + // workarounds https://github.com/angular/angular/issues/19094 + // uses promise because it is executed synchronously after the content is updated + // does not use onStable in case the current zone is not the angular one. + _this.unsubscribeReposition(); + _this.repositionSubscription = Object(rxjs__WEBPACK_IMPORTED_MODULE_3__["from"])(_this.resolvedPromise) + .subscribe(_this.reposition); + }); + }; + PopupComponent.prototype.ngOnDestroy = function () { + this.anchorViewportLeave.complete(); + this.positionChange.complete(); + this.close.emit(); + this.close.complete(); + this._resizeService.unsubscribe(); + this._scrollableService.unsubscribe(); + this.animationSubscriptions.unsubscribe(); + this.unsubscribeReposition(); + }; + + PopupComponent.prototype.onResize = function () { + this.reposition(); + }; + PopupComponent.prototype.onAnimationStart = function () { + this._renderer.removeClass(this.container.nativeElement, 'k-animation-container-shown'); + }; + PopupComponent.prototype.onAnimationEnd = function () { + this._renderer.addClass(this.container.nativeElement, 'k-animation-container-shown'); + this.open.emit(); + this.open.complete(); + }; + Object.defineProperty(PopupComponent.prototype, "currentOffset", { + get: function () { + return this._currentOffset; + }, + set: function (offset$$1) { + this.setContainerStyle('left', offset$$1.left + "px"); + this.setContainerStyle('top', offset$$1.top + "px"); + this._currentOffset = offset$$1; + }, + enumerable: true, + configurable: true + }); + PopupComponent.prototype.setZIndex = function () { + if (this.anchor) { + this.setContainerStyle('z-index', String(this.domService.zIndex(this.anchor, this.container))); + } + }; + PopupComponent.prototype.reposition = function () { + var _this = this; + if (!Object(_progress_kendo_angular_common__WEBPACK_IMPORTED_MODULE_2__["isDocumentAvailable"])()) { + return; + } + var _a = this.position(), flip = _a.flip, offset$$1 = _a.offset; + if (!this.currentOffset || isDifferentOffset(this.currentOffset, offset$$1)) { + this.currentOffset = offset$$1; + if (Object(_progress_kendo_angular_common__WEBPACK_IMPORTED_MODULE_2__["hasObservers"])(this.positionChange)) { + this._zone.run(function () { return _this.positionChange.emit({ offset: offset$$1, flip: flip }); }); + } + } + if (this.animate) { + this.animationService.play(this.contentContainer.nativeElement, this.animate, flip); + } + this.resizeSensor.acceptSize(); + }; + PopupComponent.prototype.position = function () { + var alignedOffset = this._alignService.alignElement({ + anchor: this.anchor, + anchorAlign: this.anchorAlign, + element: this.container, + elementAlign: this.popupAlign, + margin: this.margin, + offset: this.offset, + positionMode: this.positionMode + }); + return this._positionService.positionElement({ + anchor: this.anchor, + anchorAlign: this.anchorAlign, + collisions: this.collision, + currentLocation: alignedOffset, + element: this.container, + elementAlign: this.popupAlign, + margin: this.margin + }); + }; + PopupComponent.prototype.onScroll = function (isInViewPort) { + var _this = this; + var hasLeaveObservers = Object(_progress_kendo_angular_common__WEBPACK_IMPORTED_MODULE_2__["hasObservers"])(this.anchorViewportLeave); + if (isInViewPort || !hasLeaveObservers) { + this.reposition(); + } + else if (hasLeaveObservers) { + this._zone.run(function () { + _this.anchorViewportLeave.emit(); + }); + } + }; + PopupComponent.prototype.copyFontStyles = function () { + var _this = this; + if (!this.anchor || !this.copyAnchorStyles) { + return; + } + this.domService.getFontStyles(this.anchor) + .forEach(function (s) { return _this.setContainerStyle(s.key, s.value); }); + }; + PopupComponent.prototype.updateFixedClass = function () { + var action = this.positionMode === 'fixed' ? 'addClass' : 'removeClass'; + this._renderer[action](this.container.nativeElement, ANIMATION_CONTAINER_FIXED); + }; + PopupComponent.prototype.setContainerStyle = function (name, value) { + this._renderer.setStyle(this.container.nativeElement, name, value); + }; + PopupComponent.prototype.unsubscribeReposition = function () { + if (this.repositionSubscription) { + this.repositionSubscription.unsubscribe(); + } + }; + + PopupComponent.ctorParameters = function () { return [ + { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"] }, + { type: AlignService }, + { type: DOMService }, + { type: PositionService }, + { type: ResizeService }, + { type: ScrollableService }, + { type: AnimationService }, + { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Renderer2"] }, + { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"] } + ]; }; + PopupComponent.propDecorators = { + animate: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], + anchor: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], + anchorAlign: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], + collision: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], + popupAlign: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], + copyAnchorStyles: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], + popupClass: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], + positionMode: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], + offset: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], + margin: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], + anchorViewportLeave: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }], + close: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }], + open: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }], + positionChange: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }], + contentContainer: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ViewChild"], args: ['container',] }], + resizeSensor: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ViewChild"], args: [_progress_kendo_angular_common__WEBPACK_IMPORTED_MODULE_2__["ResizeSensorComponent"],] }] + }; +PopupComponent.ɵfac = function PopupComponent_Factory(t) { return new (t || PopupComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](AlignService), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](DOMService), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](PositionService), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](ResizeService), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](ScrollableService), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](AnimationService), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["Renderer2"]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"])); }; +PopupComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineComponent"]({ type: PopupComponent, selectors: [["kendo-popup"]], viewQuery: function PopupComponent_Query(rf, ctx) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵviewQuery"](_c0, true); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵviewQuery"](_progress_kendo_angular_common__WEBPACK_IMPORTED_MODULE_2__["ResizeSensorComponent"], true); + } if (rf & 2) { + var _t; + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵqueryRefresh"](_t = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵloadQuery"]()) && (ctx.contentContainer = _t.first); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵqueryRefresh"](_t = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵloadQuery"]()) && (ctx.resizeSensor = _t.first); + } }, inputs: { animate: "animate", anchorAlign: "anchorAlign", collision: "collision", popupAlign: "popupAlign", copyAnchorStyles: "copyAnchorStyles", positionMode: "positionMode", offset: "offset", anchor: "anchor", popupClass: "popupClass", margin: "margin" }, outputs: { anchorViewportLeave: "anchorViewportLeave", close: "close", open: "open", positionChange: "positionChange" }, exportAs: ["kendo-popup"], features: [_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵProvidersFeature"]([AlignService, AnimationService, DOMService, PositionService, ResizeService, ScrollableService]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵNgOnChangesFeature"]], ngContentSelectors: _c1, decls: 5, vars: 4, consts: [[1, "k-popup", 3, "ngClass"], ["container", ""], [3, "ngTemplateOutlet", "ngIf"], [3, "rateLimit", "resize"]], template: function PopupComponent_Template(rf, ctx) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵprojectionDef"](); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "div", 0, 1); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵprojection"](2); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](3, PopupComponent_ng_template_3_Template, 0, 0, "ng-template", 2); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](4, "kendo-resize-sensor", 3); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵlistener"]("resize", function PopupComponent_Template_kendo_resize_sensor_resize_4_listener() { return ctx.onResize(); }); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); + } if (rf & 2) { + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngClass", ctx.popupClass); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](3); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngTemplateOutlet", ctx.content)("ngIf", ctx.content); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("rateLimit", 100); + } }, directives: [_angular_common__WEBPACK_IMPORTED_MODULE_6__["NgClass"], _angular_common__WEBPACK_IMPORTED_MODULE_6__["NgTemplateOutlet"], _angular_common__WEBPACK_IMPORTED_MODULE_6__["NgIf"], _progress_kendo_angular_common__WEBPACK_IMPORTED_MODULE_2__["ResizeSensorComponent"]], encapsulation: 2 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](PopupComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"], + args: [{ + exportAs: 'kendo-popup', + providers: [AlignService, AnimationService, DOMService, PositionService, ResizeService, ScrollableService], + selector: 'kendo-popup', + template: "\n
\n \n \n \n \n
\n " + }] + }], function () { return [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"] }, { type: AlignService }, { type: DOMService }, { type: PositionService }, { type: ResizeService }, { type: ScrollableService }, { type: AnimationService }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Renderer2"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"] }]; }, { animate: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] + }], anchorAlign: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] + }], collision: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] + }], popupAlign: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] + }], copyAnchorStyles: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] + }], positionMode: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] + }], offset: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] + }], anchorViewportLeave: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] + }], close: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] + }], open: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] + }], positionChange: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] + }], anchor: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] + }], popupClass: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] + }], margin: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] + }], contentContainer: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ViewChild"], + args: ['container'] + }], resizeSensor: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ViewChild"], + args: [_progress_kendo_angular_common__WEBPACK_IMPORTED_MODULE_2__["ResizeSensorComponent"]] + }] }); })(); + return PopupComponent; +}()); + +var removeElement = function (element) { + if (element && element.parentNode) { + element.parentNode.removeChild(element); + } +}; + +var POPUP_CONTAINER = new _angular_core__WEBPACK_IMPORTED_MODULE_0__["InjectionToken"]('Popup Container'); + +var PopupService = (function () { + function PopupService(applicationRef, componentFactoryResolver, injector, container) { + this.applicationRef = applicationRef; + this.componentFactoryResolver = componentFactoryResolver; + this.injector = injector; + this.container = container; + } + Object.defineProperty(PopupService.prototype, "rootViewContainer", { + + get: function () { + // https://github.com/angular/angular/blob/4.0.x/packages/core/src/application_ref.ts#L571 + var rootComponents = this.applicationRef.components || []; + if (rootComponents[0]) { + return rootComponents[0]; + } + throw new Error("\n View Container not found! Inject the POPUP_CONTAINER or define a specific ViewContainerRef via the appendTo option.\n See http://www.telerik.com/kendo-angular-ui/components/popup/api/POPUP_CONTAINER/ for more details.\n "); + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(PopupService.prototype, "rootViewContainerNode", { + + get: function () { + return this.container ? this.container.nativeElement : this.getComponentRootNode(this.rootViewContainer); + }, + enumerable: true, + configurable: true + }); + + PopupService.prototype.open = function (options) { + if (options === void 0) { options = {}; } + var _a = this.contentFrom(options.content), component = _a.component, nodes = _a.nodes; + var popupComponentRef = this.appendPopup(nodes, options.appendTo); + var popupInstance = popupComponentRef.instance; + this.projectComponentInputs(popupComponentRef, options); + popupComponentRef.changeDetectorRef.detectChanges(); + if (component) { + component.changeDetectorRef.detectChanges(); + } + var popupElement = this.getComponentRootNode(popupComponentRef); + return { + close: function () { + if (component) { + component.destroy(); + } + popupComponentRef.destroy(); + // Angular will not remove the element unless the change detection is triggered + removeElement(popupElement); + }, + content: component, + popup: popupComponentRef, + popupAnchorViewportLeave: popupInstance.anchorViewportLeave, + popupClose: popupInstance.close, + popupElement: popupElement, + popupOpen: popupInstance.open, + popupPositionChange: popupInstance.positionChange + }; + }; + PopupService.prototype.appendPopup = function (nodes, container) { + var popupComponentRef = this.createComponent(PopupComponent, nodes, container); + if (!container) { + this.rootViewContainerNode.appendChild(this.getComponentRootNode(popupComponentRef)); + } + return popupComponentRef; + }; + + PopupService.prototype.getComponentRootNode = function (componentRef) { + return componentRef.location.nativeElement; + }; + + PopupService.prototype.getComponentFactory = function (componentClass) { + return this.componentFactoryResolver.resolveComponentFactory(componentClass); + }; + + PopupService.prototype.createComponent = function (componentClass, nodes, container) { + var factory = this.getComponentFactory(componentClass); + if (container) { + return container.createComponent(factory, undefined, this.injector, nodes); + } + else { + var component = factory.create(this.injector, nodes); + this.applicationRef.attachView(component.hostView); + return component; + } + }; + + PopupService.prototype.projectComponentInputs = function (component, options) { + Object.getOwnPropertyNames(options) + .filter(function (prop) { return prop !== 'content' || options.content instanceof _angular_core__WEBPACK_IMPORTED_MODULE_0__["TemplateRef"]; }) + .map(function (prop) { + component.instance[prop] = options[prop]; + }); + return component; + }; + + PopupService.prototype.contentFrom = function (content) { + if (!content || content instanceof _angular_core__WEBPACK_IMPORTED_MODULE_0__["TemplateRef"]) { + return { component: null, nodes: [[]] }; + } + var component = this.createComponent(content); + var nodes = component ? [component.location.nativeElement] : []; + return { + component: component, + nodes: [ + nodes // + ] + }; + }; + + PopupService.ctorParameters = function () { return [ + { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ApplicationRef"] }, + { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ComponentFactoryResolver"] }, + { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Injector"] }, + { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"], decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Inject"], args: [POPUP_CONTAINER,] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Optional"] }] } + ]; }; +PopupService.ɵfac = function PopupService_Factory(t) { return new (t || PopupService)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["ApplicationRef"]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["ComponentFactoryResolver"]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["Injector"]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"](POPUP_CONTAINER, 8)); }; +PopupService.ɵprov = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"]({ token: PopupService, factory: function (t) { return PopupService.ɵfac(t); } }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](PopupService, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Injectable"] + }], function () { return [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ApplicationRef"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ComponentFactoryResolver"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Injector"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"], decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Inject"], + args: [POPUP_CONTAINER] + }, { + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Optional"] + }] }]; }, null); })(); + return PopupService; +}()); + +var POPUP_DIRECTIVES = [PopupComponent]; + +var PopupModule = (function () { + function PopupModule() { + } +PopupModule.ɵmod = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineNgModule"]({ type: PopupModule }); +PopupModule.ɵinj = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjector"]({ factory: function PopupModule_Factory(t) { return new (t || PopupModule)(); }, providers: [PopupService], imports: [[_angular_common__WEBPACK_IMPORTED_MODULE_6__["CommonModule"], _progress_kendo_angular_common__WEBPACK_IMPORTED_MODULE_2__["ResizeSensorModule"]]] }); +(function () { (typeof ngJitMode === "undefined" || ngJitMode) && _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵsetNgModuleScope"](PopupModule, { declarations: function () { return [PopupComponent]; }, imports: function () { return [_angular_common__WEBPACK_IMPORTED_MODULE_6__["CommonModule"], _progress_kendo_angular_common__WEBPACK_IMPORTED_MODULE_2__["ResizeSensorModule"]]; }, exports: function () { return [PopupComponent]; } }); })(); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](PopupModule, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgModule"], + args: [{ + declarations: [POPUP_DIRECTIVES], + entryComponents: [POPUP_DIRECTIVES], + exports: [POPUP_DIRECTIVES], + imports: [_angular_common__WEBPACK_IMPORTED_MODULE_6__["CommonModule"], _progress_kendo_angular_common__WEBPACK_IMPORTED_MODULE_2__["ResizeSensorModule"]], + providers: [PopupService] + }] + }], function () { return []; }, null); })(); + return PopupModule; +}()); + + + + + +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbImluZGV4LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7OztnREFHTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BR007QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7O2tDQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BR007QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7O2tDQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFHTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7OzZGQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFHTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7OzZGQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BR007QUFDTjtBQUNBO0FBQ0E7QUFDQTs7Ozs7aUZBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFRTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztvQkFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUdNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7a0NBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7O2dEQVNNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXNDb250ZW50IjpbIi8qKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qIENvcHlyaWdodCDCqSAyMDIwIFByb2dyZXNzIFNvZnR3YXJlIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuKiBMaWNlbnNlZCB1bmRlciBjb21tZXJjaWFsIGxpY2Vuc2UuIFNlZSBMSUNFTlNFLm1kIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIG1vcmUgaW5mb3JtYXRpb25cbiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbmltcG9ydCB7IEluamVjdGFibGUsIEluamVjdGlvblRva2VuLCBJbmplY3QsIE9wdGlvbmFsLCBOZ1pvbmUsIGlzRGV2TW9kZSwgRXZlbnRFbWl0dGVyLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIFJlbmRlcmVyMiwgSW5wdXQsIE91dHB1dCwgVmlld0NoaWxkLCBUZW1wbGF0ZVJlZiwgQXBwbGljYXRpb25SZWYsIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgSW5qZWN0b3IsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBzaWJsaW5nQ29udGFpbmVyLCBwYXJlbnRzLCBhZGRTY3JvbGwsIGFsaWduLCBib3VuZGluZ09mZnNldCwgb2Zmc2V0LCBwb3NpdGlvbldpdGhTY3JvbGwsIHJlbW92ZVNjcm9sbCwgcmVzdHJpY3RUb1ZpZXcsIHNjcm9sbFBvc2l0aW9uLCBnZXRXaW5kb3dWaWV3UG9ydCB9IGZyb20gJ0Bwcm9ncmVzcy9rZW5kby1wb3B1cC1jb21tb24nO1xuaW1wb3J0IHsgaXNEb2N1bWVudEF2YWlsYWJsZSwgaGFzT2JzZXJ2ZXJzLCBSZXNpemVTZW5zb3JDb21wb25lbnQsIFJlc2l6ZVNlbnNvck1vZHVsZSB9IGZyb20gJ0Bwcm9ncmVzcy9rZW5kby1hbmd1bGFyLWNvbW1vbic7XG5pbXBvcnQgeyBmcm9tRXZlbnQsIG1lcmdlLCBmcm9tIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBhdWRpdFRpbWUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBzdHlsZSwgYW5pbWF0ZSwgQW5pbWF0aW9uQnVpbGRlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuLyoqXG4gKiBAaGlkZGVuXG4gKi9cbnZhciBlaXRoZXJSZWN0ID0gZnVuY3Rpb24gKHJlY3QsIG9mZnNldCQkMSkge1xuICAgIGlmICghcmVjdCkge1xuICAgICAgICByZXR1cm4geyBoZWlnaHQ6IDAsIGxlZnQ6IG9mZnNldCQkMS5sZWZ0LCB0b3A6IG9mZnNldCQkMS50b3AsIHdpZHRoOiAwIH07XG4gICAgfVxuICAgIHJldHVybiByZWN0O1xufTtcbi8qKlxuICogQGhpZGRlblxuICovXG52YXIgcmVtb3ZlU3RhY2tpbmdPZmZzZXQgPSBmdW5jdGlvbiAocmVjdCwgc3RhY2tpbmdPZmZzZXQpIHtcbiAgICBpZiAoIXN0YWNraW5nT2Zmc2V0KSB7XG4gICAgICAgIHJldHVybiByZWN0O1xuICAgIH1cbiAgICB2YXIgcmVzdWx0ID0ge1xuICAgICAgICBoZWlnaHQ6IHJlY3QuaGVpZ2h0LFxuICAgICAgICBsZWZ0OiByZWN0LmxlZnQgLSBzdGFja2luZ09mZnNldC5sZWZ0LFxuICAgICAgICB0b3A6IHJlY3QudG9wIC0gc3RhY2tpbmdPZmZzZXQudG9wLFxuICAgICAgICB3aWR0aDogcmVjdC53aWR0aFxuICAgIH07XG4gICAgcmV0dXJuIHJlc3VsdDtcbn07XG4vKipcbiAqIEBoaWRkZW5cbiAqL1xudmFyIGlzRGlmZmVyZW50T2Zmc2V0ID0gZnVuY3Rpb24gKG9sZE9mZnNldCwgbmV3T2Zmc2V0KSB7XG4gICAgdmFyIG9sZExlZnQgPSBvbGRPZmZzZXQubGVmdCwgb2xkVG9wID0gb2xkT2Zmc2V0LnRvcDtcbiAgICB2YXIgbmV3TGVmdCA9IG5ld09mZnNldC5sZWZ0LCBuZXdUb3AgPSBuZXdPZmZzZXQudG9wO1xuICAgIHJldHVybiBNYXRoLmFicyhvbGRMZWZ0IC0gbmV3TGVmdCkgPj0gMSB8fCBNYXRoLmFicyhvbGRUb3AgLSBuZXdUb3ApID49IDE7XG59O1xuLyoqXG4gKiBAaGlkZGVuXG4gKi9cbnZhciBpc1dpbmRvd0F2YWlsYWJsZSA9IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCc7XG59O1xuLyoqXG4gKiBAaGlkZGVuXG4gKi9cbnZhciBPVkVSRkxPV19SRUdFWFAgPSAvYXV0b3xzY3JvbGwvO1xudmFyIG92ZXJmbG93RWxlbWVudFN0eWxlID0gZnVuY3Rpb24gKGVsZW1lbnQpIHtcbiAgICByZXR1cm4gXCJcIiArIGVsZW1lbnQuc3R5bGUub3ZlcmZsb3cgKyBlbGVtZW50LnN0eWxlLm92ZXJmbG93WCArIGVsZW1lbnQuc3R5bGUub3ZlcmZsb3dZO1xufTtcbnZhciBvdmVyZmxvd0NvbXB1dGVkU3R5bGUgPSBmdW5jdGlvbiAoZWxlbWVudCkge1xuICAgIHZhciBzdHlsZXMgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KTtcbiAgICByZXR1cm4gXCJcIiArIHN0eWxlcy5vdmVyZmxvdyArIHN0eWxlcy5vdmVyZmxvd1ggKyBzdHlsZXMub3ZlcmZsb3dZO1xufTtcbnZhciBvdmVyZmxvd1N0eWxlID0gZnVuY3Rpb24gKGVsZW1lbnQpIHtcbiAgICByZXR1cm4gb3ZlcmZsb3dFbGVtZW50U3R5bGUoZWxlbWVudCkgfHwgb3ZlcmZsb3dDb21wdXRlZFN0eWxlKGVsZW1lbnQpO1xufTtcbi8qKlxuICogQGhpZGRlblxuICovXG52YXIgc2Nyb2xsYWJsZVBhcmVudHMgPSBmdW5jdGlvbiAoZWxlbWVudCkge1xuICAgIHZhciBwYXJlbnRFbGVtZW50cyA9IFtdO1xuICAgIGlmICghaXNEb2N1bWVudEF2YWlsYWJsZSgpIHx8ICFpc1dpbmRvd0F2YWlsYWJsZSgpKSB7XG4gICAgICAgIHJldHVybiBwYXJlbnRFbGVtZW50cztcbiAgICB9XG4gICAgdmFyIHBhcmVudCA9IGVsZW1lbnQucGFyZW50RWxlbWVudDtcbiAgICB3aGlsZSAocGFyZW50KSB7XG4gICAgICAgIGlmIChPVkVSRkxPV19SRUdFWFAudGVzdChvdmVyZmxvd1N0eWxlKHBhcmVudCkpIHx8IHBhcmVudC5oYXNBdHRyaWJ1dGUoJ2RhdGEtc2Nyb2xsYWJsZScpKSB7XG4gICAgICAgICAgICBwYXJlbnRFbGVtZW50cy5wdXNoKHBhcmVudCk7XG4gICAgICAgIH1cbiAgICAgICAgcGFyZW50ID0gcGFyZW50LnBhcmVudEVsZW1lbnQ7XG4gICAgfVxuICAgIHBhcmVudEVsZW1lbnRzLnB1c2god2luZG93KTtcbiAgICByZXR1cm4gcGFyZW50RWxlbWVudHM7XG59O1xuLyoqXG4gKiBAaGlkZGVuXG4gKi9cbnZhciBGUkFNRV9EVVJBVElPTiA9IDEwMDAgLyA2MDsgLy8xMDAwbXMgZGl2aWRlZCBieSA2MGZwc1xuZnVuY3Rpb24gbWVtb2l6ZShmdW4pIHtcbiAgICB2YXIgcmVzdWx0O1xuICAgIHZhciBjYWxsZWQgPSBmYWxzZTtcbiAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgYXJncyA9IFtdO1xuICAgICAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykge1xuICAgICAgICAgICAgYXJnc1tfaV0gPSBhcmd1bWVudHNbX2ldO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjYWxsZWQpIHtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH1cbiAgICAgICAgcmVzdWx0ID0gZnVuLmFwcGx5KHZvaWQgMCwgYXJncyk7XG4gICAgICAgIGNhbGxlZCA9IHRydWU7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfTtcbn1cbi8qKlxuICogQGhpZGRlblxuICovXG52YXIgaGFzUmVsYXRpdmVTdGFja2luZ0NvbnRleHQgPSBtZW1vaXplKGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoIWlzRG9jdW1lbnRBdmFpbGFibGUoKSAmJiBkb2N1bWVudC5ib2R5ICE9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgdmFyIHRvcCA9IDEwO1xuICAgIHZhciBwYXJlbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO1xuICAgIHBhcmVudC5zdHlsZS50cmFuc2Zvcm0gPSBcIm1hdHJpeCgxMCwgMCwgMCwgMTAsIDAsIDApXCI7XG4gICAgcGFyZW50LmlubmVySFRNTCA9IFwiPGRpdiBzdHlsZT1cXFwicG9zaXRpb246IGZpeGVkOyB0b3A6IFwiICsgdG9wICsgXCJweDtcXFwiPmNoaWxkPC9kaXY+XCI7XG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChwYXJlbnQpO1xuICAgIHZhciBpc0RpZmZlcmVudCA9IHBhcmVudC5jaGlsZHJlblswXS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AgIT09IHRvcDtcbiAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHBhcmVudCk7XG4gICAgcmV0dXJuIGlzRGlmZmVyZW50O1xufSk7XG4vKipcbiAqIEBoaWRkZW5cbiAqL1xudmFyIHpJbmRleCA9IGZ1bmN0aW9uIChhbmNob3IsIGNvbnRhaW5lcikge1xuICAgIGlmICghYW5jaG9yIHx8ICFpc0RvY3VtZW50QXZhaWxhYmxlKCkgfHwgIWlzV2luZG93QXZhaWxhYmxlKCkpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHZhciBzaWJsaW5nID0gc2libGluZ0NvbnRhaW5lcihhbmNob3IsIGNvbnRhaW5lcik7XG4gICAgaWYgKCFzaWJsaW5nKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICB2YXIgcmVzdWx0ID0gW2FuY2hvcl0uY29uY2F0KHBhcmVudHMoYW5jaG9yLCBzaWJsaW5nKSkucmVkdWNlKGZ1bmN0aW9uIChpbmRleCwgcCkge1xuICAgICAgICB2YXIgekluZGV4U3R5bGUgPSBwLnN0eWxlLnpJbmRleCB8fCB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShwKS56SW5kZXg7XG4gICAgICAgIHZhciBjdXJyZW50ID0gcGFyc2VJbnQoekluZGV4U3R5bGUsIDEwKTtcbiAgICAgICAgcmV0dXJuIGN1cnJlbnQgPiBpbmRleCA/IGN1cnJlbnQgOiBpbmRleDtcbiAgICB9LCAwKTtcbiAgICByZXR1cm4gcmVzdWx0ID8gKHJlc3VsdCArIDEpIDogbnVsbDtcbn07XG4vKipcbiAqIEBoaWRkZW5cbiAqL1xudmFyIHNjYWxlUmVjdCA9IGZ1bmN0aW9uIChyZWN0LCBzY2FsZSkge1xuICAgIGlmICghcmVjdCB8fCBzY2FsZSA9PT0gMSkge1xuICAgICAgICByZXR1cm4gcmVjdDtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgaGVpZ2h0OiByZWN0LmhlaWdodCAvIHNjYWxlLFxuICAgICAgICBsZWZ0OiByZWN0LmxlZnQgLyBzY2FsZSxcbiAgICAgICAgdG9wOiByZWN0LnRvcCAvIHNjYWxlLFxuICAgICAgICB3aWR0aDogcmVjdC53aWR0aCAvIHNjYWxlXG4gICAgfTtcbn07XG5cbnZhciBTVFlMRVMgPSBbXG4gICAgJ2ZvbnQtc2l6ZScsXG4gICAgJ2ZvbnQtZmFtaWx5JyxcbiAgICAnZm9udC1zdHJldGNoJyxcbiAgICAnZm9udC1zdHlsZScsXG4gICAgJ2ZvbnQtd2VpZ2h0JyxcbiAgICAnbGluZS1oZWlnaHQnXG5dO1xuLyoqXG4gKiBAaGlkZGVuXG4gKi9cbnZhciBET01TZXJ2aWNlID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIERPTVNlcnZpY2UoKSB7XG4gICAgfVxuICAgIERPTVNlcnZpY2UucHJvdG90eXBlLmFkZE9mZnNldCA9IGZ1bmN0aW9uIChjdXJyZW50LCBhZGRpdGlvbikge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbGVmdDogY3VycmVudC5sZWZ0ICsgYWRkaXRpb24ubGVmdCxcbiAgICAgICAgICAgIHRvcDogY3VycmVudC50b3AgKyBhZGRpdGlvbi50b3BcbiAgICAgICAgfTtcbiAgICB9O1xuICAgIERPTVNlcnZpY2UucHJvdG90eXBlLmFkZFNjcm9sbCA9IGZ1bmN0aW9uIChyZWN0LCBzY3JvbGwpIHtcbiAgICAgICAgcmV0dXJuIGFkZFNjcm9sbChyZWN0LCBzY3JvbGwpO1xuICAgIH07XG4gICAgRE9NU2VydmljZS5wcm90b3R5cGUuYWxpZ24gPSBmdW5jdGlvbiAoc2V0dGluZ3MpIHtcbiAgICAgICAgcmV0dXJuIGFsaWduKHNldHRpbmdzKTtcbiAgICB9O1xuICAgIERPTVNlcnZpY2UucHJvdG90eXBlLmJvdW5kaW5nT2Zmc2V0ID0gZnVuY3Rpb24gKGVsKSB7XG4gICAgICAgIHJldHVybiBib3VuZGluZ09mZnNldCh0aGlzLm5hdGl2ZUVsZW1lbnQoZWwpKTtcbiAgICB9O1xuICAgIERPTVNlcnZpY2UucHJvdG90eXBlLmdldEZvbnRTdHlsZXMgPSBmdW5jdGlvbiAoZWwpIHtcbiAgICAgICAgdmFyIHdpbmRvdyA9IHRoaXMuZ2V0V2luZG93KCk7XG4gICAgICAgIGlmICghd2luZG93IHx8ICFlbCkge1xuICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICB9XG4gICAgICAgIHZhciBjb21wdXRlZFN0eWxlcyA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMubmF0aXZlRWxlbWVudChlbCkpO1xuICAgICAgICByZXR1cm4gU1RZTEVTLm1hcChmdW5jdGlvbiAoZm9udCkgeyByZXR1cm4gKHsga2V5OiBmb250LCB2YWx1ZTogY29tcHV0ZWRTdHlsZXNbZm9udF0gfSk7IH0pO1xuICAgIH07XG4gICAgRE9NU2VydmljZS5wcm90b3R5cGUuZ2V0V2luZG93ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gaXNXaW5kb3dBdmFpbGFibGUoKSA/IHdpbmRvdyA6IG51bGw7XG4gICAgfTtcbiAgICBET01TZXJ2aWNlLnByb3RvdHlwZS5oYXNPZmZzZXRQYXJlbnQgPSBmdW5jdGlvbiAoZWwpIHtcbiAgICAgICAgaWYgKCFlbCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAhIXRoaXMubmF0aXZlRWxlbWVudChlbCkub2Zmc2V0UGFyZW50O1xuICAgIH07XG4gICAgRE9NU2VydmljZS5wcm90b3R5cGUub2Zmc2V0ID0gZnVuY3Rpb24gKGVsKSB7XG4gICAgICAgIGlmICghZWwpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvZmZzZXQodGhpcy5uYXRpdmVFbGVtZW50KGVsKSk7XG4gICAgfTtcbiAgICBET01TZXJ2aWNlLnByb3RvdHlwZS5vZmZzZXRBdFBvaW50ID0gZnVuY3Rpb24gKGVsLCBjdXJyZW50TG9jYXRpb24pIHtcbiAgICAgICAgaWYgKCFlbCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGVsZW1lbnQgPSB0aGlzLm5hdGl2ZUVsZW1lbnQoZWwpO1xuICAgICAgICB2YXIgX2EgPSBlbGVtZW50LnN0eWxlLCBsZWZ0ID0gX2EubGVmdCwgdG9wID0gX2EudG9wLCB0cmFuc2l0aW9uID0gX2EudHJhbnNpdGlvbjtcbiAgICAgICAgZWxlbWVudC5zdHlsZS50cmFuc2l0aW9uID0gJ25vbmUnO1xuICAgICAgICBlbGVtZW50LnN0eWxlLmxlZnQgPSBjdXJyZW50TG9jYXRpb24ubGVmdCArIFwicHhcIjtcbiAgICAgICAgZWxlbWVudC5zdHlsZS50b3AgPSBjdXJyZW50TG9jYXRpb24udG9wICsgXCJweFwiO1xuICAgICAgICB2YXIgY3VycmVudE9mZnNldCA9IG9mZnNldChlbGVtZW50KTtcbiAgICAgICAgZWxlbWVudC5zdHlsZS5sZWZ0ID0gbGVmdDtcbiAgICAgICAgZWxlbWVudC5zdHlsZS50b3AgPSB0b3A7XG4gICAgICAgIC8vIHByZXZlbnRzIGVsZW1lbnRzIHdpdGggdHJhbnNpdGlvbiB0byBiZSBhbmltYXRlZCBiZWNhdXNlIG9mIHRoZSBjaGFuZ2VcbiAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLXVudXNlZC1leHByZXNzaW9uXG4gICAgICAgIGVsZW1lbnQub2Zmc2V0SGVpZ2h0O1xuICAgICAgICBlbGVtZW50LnN0eWxlLnRyYW5zaXRpb24gPSB0cmFuc2l0aW9uO1xuICAgICAgICByZXR1cm4gY3VycmVudE9mZnNldDtcbiAgICB9O1xuICAgIERPTVNlcnZpY2UucHJvdG90eXBlLm5hdGl2ZUVsZW1lbnQgPSBmdW5jdGlvbiAoZWwpIHtcbiAgICAgICAgaWYgKCFlbCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGVsLm5hdGl2ZUVsZW1lbnQgfHwgZWw7XG4gICAgfTtcbiAgICBET01TZXJ2aWNlLnByb3RvdHlwZS5wb3NpdGlvbiA9IGZ1bmN0aW9uIChlbGVtZW50LCBwb3B1cCwgc2NhbGUpIHtcbiAgICAgICAgaWYgKHNjYWxlID09PSB2b2lkIDApIHsgc2NhbGUgPSAxOyB9XG4gICAgICAgIGlmICghZWxlbWVudCB8fCAhcG9wdXApIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwb3NpdGlvbldpdGhTY3JvbGwodGhpcy5uYXRpdmVFbGVtZW50KGVsZW1lbnQpLCB0aGlzLm5hdGl2ZUVsZW1lbnQocG9wdXApLCBzY2FsZSk7XG4gICAgfTtcbiAgICBET01TZXJ2aWNlLnByb3RvdHlwZS5yZW1vdmVTY3JvbGwgPSBmdW5jdGlvbiAocmVjdCwgc2Nyb2xsKSB7XG4gICAgICAgIHJldHVybiByZW1vdmVTY3JvbGwocmVjdCwgc2Nyb2xsKTtcbiAgICB9O1xuICAgIERPTVNlcnZpY2UucHJvdG90eXBlLnJlc3RyaWN0VG9WaWV3ID0gZnVuY3Rpb24gKHNldHRpbmdzKSB7XG4gICAgICAgIHJldHVybiByZXN0cmljdFRvVmlldyhzZXR0aW5ncyk7XG4gICAgfTtcbiAgICBET01TZXJ2aWNlLnByb3RvdHlwZS5zY3JvbGxQb3NpdGlvbiA9IGZ1bmN0aW9uIChlbCkge1xuICAgICAgICByZXR1cm4gc2Nyb2xsUG9zaXRpb24odGhpcy5uYXRpdmVFbGVtZW50KGVsKSk7XG4gICAgfTtcbiAgICBET01TZXJ2aWNlLnByb3RvdHlwZS5zY3JvbGxhYmxlUGFyZW50cyA9IGZ1bmN0aW9uIChlbCkge1xuICAgICAgICByZXR1cm4gc2Nyb2xsYWJsZVBhcmVudHModGhpcy5uYXRpdmVFbGVtZW50KGVsKSk7XG4gICAgfTtcbiAgICBET01TZXJ2aWNlLnByb3RvdHlwZS5zdGFja2luZ0VsZW1lbnRPZmZzZXQgPSBmdW5jdGlvbiAoZWwpIHtcbiAgICAgICAgdmFyIHJlbGF0aXZlQ29udGV4dEVsZW1lbnQgPSB0aGlzLmdldFJlbGF0aXZlQ29udGV4dEVsZW1lbnQoZWwpO1xuICAgICAgICBpZiAoIXJlbGF0aXZlQ29udGV4dEVsZW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvZmZzZXQocmVsYXRpdmVDb250ZXh0RWxlbWVudCk7XG4gICAgfTtcbiAgICBET01TZXJ2aWNlLnByb3RvdHlwZS5zdGFja2luZ0VsZW1lbnRTY3JvbGwgPSBmdW5jdGlvbiAoZWwpIHtcbiAgICAgICAgdmFyIHJlbGF0aXZlQ29udGV4dEVsZW1lbnQgPSB0aGlzLmdldFJlbGF0aXZlQ29udGV4dEVsZW1lbnQoZWwpO1xuICAgICAgICBpZiAoIXJlbGF0aXZlQ29udGV4dEVsZW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybiB7IHg6IDAsIHk6IDAgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgeDogcmVsYXRpdmVDb250ZXh0RWxlbWVudC5zY3JvbGxMZWZ0LFxuICAgICAgICAgICAgeTogcmVsYXRpdmVDb250ZXh0RWxlbWVudC5zY3JvbGxUb3BcbiAgICAgICAgfTtcbiAgICB9O1xuICAgIERPTVNlcnZpY2UucHJvdG90eXBlLmdldFJlbGF0aXZlQ29udGV4dEVsZW1lbnQgPSBmdW5jdGlvbiAoZWwpIHtcbiAgICAgICAgaWYgKCFlbCB8fCAhaGFzUmVsYXRpdmVTdGFja2luZ0NvbnRleHQoKSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHBhcmVudCA9IHRoaXMubmF0aXZlRWxlbWVudChlbCkucGFyZW50RWxlbWVudDtcbiAgICAgICAgd2hpbGUgKHBhcmVudCkge1xuICAgICAgICAgICAgaWYgKHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHBhcmVudCkudHJhbnNmb3JtICE9PSAnbm9uZScpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcGFyZW50ID0gcGFyZW50LnBhcmVudEVsZW1lbnQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfTtcbiAgICBET01TZXJ2aWNlLnByb3RvdHlwZS51c2VSZWxhdGl2ZVBvc2l0aW9uID0gZnVuY3Rpb24gKGVsKSB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuZ2V0UmVsYXRpdmVDb250ZXh0RWxlbWVudChlbCk7XG4gICAgfTtcbiAgICBET01TZXJ2aWNlLnByb3RvdHlwZS53aW5kb3dWaWV3UG9ydCA9IGZ1bmN0aW9uIChlbCkge1xuICAgICAgICByZXR1cm4gZ2V0V2luZG93Vmlld1BvcnQodGhpcy5uYXRpdmVFbGVtZW50KGVsKSk7XG4gICAgfTtcbiAgICBET01TZXJ2aWNlLnByb3RvdHlwZS56SW5kZXggPSBmdW5jdGlvbiAoYW5jaG9yLCBjb250YWluZXIpIHtcbiAgICAgICAgcmV0dXJuIHpJbmRleCh0aGlzLm5hdGl2ZUVsZW1lbnQoYW5jaG9yKSwgdGhpcy5uYXRpdmVFbGVtZW50KGNvbnRhaW5lcikpO1xuICAgIH07XG4gICAgRE9NU2VydmljZS5wcm90b3R5cGUuem9vbUxldmVsID0gZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAoIWlzRG9jdW1lbnRBdmFpbGFibGUoKSB8fCAhaXNXaW5kb3dBdmFpbGFibGUoKSkge1xuICAgICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHBhcnNlRmxvYXQoKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCAvIHdpbmRvdy5pbm5lcldpZHRoKS50b0ZpeGVkKDIpKSB8fCAxO1xuICAgIH07XG4gICAgRE9NU2VydmljZS5wcm90b3R5cGUuaXNab29tZWQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnpvb21MZXZlbCgpID4gMTtcbiAgICB9O1xuICAgIERPTVNlcnZpY2UuZGVjb3JhdG9ycyA9IFtcbiAgICAgICAgeyB0eXBlOiBJbmplY3RhYmxlIH0sXG4gICAgXTtcbiAgICByZXR1cm4gRE9NU2VydmljZTtcbn0oKSk7XG5cbi8qKlxuICogVXNlZCB0byBzZXQgdGhlIGRvY3VtZW50IHNjYWxlIHdoZW4gdXNpbmcgYSBbc2NhbGUgdHJhbnNmb3JtXShodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9DU1MvdHJhbnNmb3JtLWZ1bmN0aW9uL3NjYWxlKS5cbiAqXG4gKiBUaGUgZG9jdW1lbnQgb3IgY29udGFpbmVyIHNjYWxlIGlzIHJlcXVpcmVkIHRvIGNvbXB1dGUgdGhlIHBvcHVwIHBvc2l0aW9uIGNvcnJlY3RseS4gRGV0ZWN0aW5nIHRoZSBzY2FsZSBpcyBub3QgcmVsaWFibGUgYW5kIG11c3QgYmUgc2V0IGJ5IHByb3ZpZGluZyBhIHZhbHVlIGZvciBTQ0FMRS4gU2VlIFtTdXBwb3J0IGZvciBEb2N1bWVudCBTY2FsZV0oeyUgc2x1ZyBkb2N1bWVudHNjYWxlX3BvcHVwICV9KS5cbiAqXG4gKiA+IFVzaW5nIHRoaXMgdG9rZW4gaXMgbm90IG5lY2Vzc2FyeSBmb3IgdXNlci1hcHBsaWVkIGJyb3dzZXIgem9vbS5cbiAqXG4gKiB7JSBtZXRhIGhlaWdodDozMDAgJX1cbiAqIHslIGVtYmVkX2ZpbGUgc2NhbGUvYXBwLmNvbXBvbmVudC50cyBwcmV2aWV3ICV9XG4gKiB7JSBlbWJlZF9maWxlIHNjYWxlL2FwcC5tb2R1bGUudHMgJX1cbiAqIHslIGVtYmVkX2ZpbGUgc2NhbGUvbWFpbi50cyAlfVxuICogeyUgZW5kbWV0YSAlfVxuICpcbiAqXG4gKi9cbnZhciBTQ0FMRSA9IG5ldyBJbmplY3Rpb25Ub2tlbignUG9wdXAgRG9jdW1lbnQgU2NhbGUnKTtcblxuLyoqXG4gKiBAaGlkZGVuXG4gKi9cbnZhciBBbGlnblNlcnZpY2UgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gQWxpZ25TZXJ2aWNlKF9kb20sIHNjYWxlKSB7XG4gICAgICAgIGlmIChzY2FsZSA9PT0gdm9pZCAwKSB7IHNjYWxlID0gMTsgfVxuICAgICAgICB0aGlzLl9kb20gPSBfZG9tO1xuICAgICAgICB0aGlzLnNjYWxlID0gc2NhbGU7XG4gICAgfVxuICAgIEFsaWduU2VydmljZS5wcm90b3R5cGUuYWxpZ25FbGVtZW50ID0gZnVuY3Rpb24gKHNldHRpbmdzKSB7XG4gICAgICAgIHZhciBhbmNob3IgPSBzZXR0aW5ncy5hbmNob3IsIGVsZW1lbnQgPSBzZXR0aW5ncy5lbGVtZW50LCBhbmNob3JBbGlnbiA9IHNldHRpbmdzLmFuY2hvckFsaWduLCBlbGVtZW50QWxpZ24gPSBzZXR0aW5ncy5lbGVtZW50QWxpZ24sIG1hcmdpbiA9IHNldHRpbmdzLm1hcmdpbiwgb2Zmc2V0JCQxID0gc2V0dGluZ3Mub2Zmc2V0LCBwb3NpdGlvbk1vZGUgPSBzZXR0aW5ncy5wb3NpdGlvbk1vZGU7XG4gICAgICAgIHZhciBzY2FsZSA9IHRoaXMuc2NhbGUgfHwgMTtcbiAgICAgICAgdmFyIGZpeGVkTW9kZSA9IHBvc2l0aW9uTW9kZSA9PT0gJ2ZpeGVkJyB8fCAhdGhpcy5fZG9tLmhhc09mZnNldFBhcmVudChlbGVtZW50KTtcbiAgICAgICAgdmFyIGFuY2hvclJlY3QgPSBmaXhlZE1vZGUgPyB0aGlzLmFic29sdXRlUmVjdChhbmNob3IsIGVsZW1lbnQsIG9mZnNldCQkMSwgc2NhbGUpIDogdGhpcy5yZWxhdGl2ZVJlY3QoYW5jaG9yLCBlbGVtZW50LCBvZmZzZXQkJDEsIHNjYWxlKTtcbiAgICAgICAgdmFyIGVsZW1lbnRSZWN0ID0gc2NhbGVSZWN0KHRoaXMuX2RvbS5vZmZzZXQoZWxlbWVudCksIHNjYWxlKTtcbiAgICAgICAgdmFyIHJlc3VsdCA9IHRoaXMuX2RvbS5hbGlnbih7XG4gICAgICAgICAgICBhbmNob3JBbGlnbjogYW5jaG9yQWxpZ24sXG4gICAgICAgICAgICBhbmNob3JSZWN0OiBhbmNob3JSZWN0LFxuICAgICAgICAgICAgZWxlbWVudEFsaWduOiBlbGVtZW50QWxpZ24sXG4gICAgICAgICAgICBlbGVtZW50UmVjdDogZWxlbWVudFJlY3QsXG4gICAgICAgICAgICBtYXJnaW46IG1hcmdpblxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9O1xuICAgIEFsaWduU2VydmljZS5wcm90b3R5cGUuYWJzb2x1dGVSZWN0ID0gZnVuY3Rpb24gKGFuY2hvciwgZWxlbWVudCwgb2Zmc2V0JCQxLCBzY2FsZSkge1xuICAgICAgICB2YXIgc2Nyb2xsUG9zID0gdGhpcy5lbGVtZW50U2Nyb2xsUG9zaXRpb24oYW5jaG9yLCBlbGVtZW50KTtcbiAgICAgICAgdmFyIHJlY3QgPSBlaXRoZXJSZWN0KHRoaXMuX2RvbS5vZmZzZXQoYW5jaG9yKSwgb2Zmc2V0JCQxKTtcbiAgICAgICAgdmFyIHN0YWNrU2NhbGUgPSAyICogc2NhbGU7XG4gICAgICAgIHZhciBzdGFja1Njcm9sbCA9IHRoaXMuX2RvbS5zdGFja2luZ0VsZW1lbnRTY3JvbGwoZWxlbWVudCk7XG4gICAgICAgIGlmIChzY2FsZSAhPT0gMSAmJiBzdGFja1Njcm9sbCkge1xuICAgICAgICAgICAgc3RhY2tTY3JvbGwueCAvPSBzdGFja1NjYWxlO1xuICAgICAgICAgICAgc3RhY2tTY3JvbGwueSAvPSBzdGFja1NjYWxlO1xuICAgICAgICB9XG4gICAgICAgIHZhciBzdGFja09mZnNldCA9IHRoaXMuX2RvbS5zdGFja2luZ0VsZW1lbnRPZmZzZXQoZWxlbWVudCk7XG4gICAgICAgIGlmIChzY2FsZSAhPT0gMSAmJiBzdGFja09mZnNldCkge1xuICAgICAgICAgICAgc3RhY2tPZmZzZXQubGVmdCAvPSBzdGFja1NjYWxlO1xuICAgICAgICAgICAgc3RhY2tPZmZzZXQudG9wIC89IHN0YWNrU2NhbGU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuX2RvbS5yZW1vdmVTY3JvbGwodGhpcy5fZG9tLmFkZFNjcm9sbChyZW1vdmVTdGFja2luZ09mZnNldChzY2FsZVJlY3QocmVjdCwgc2NhbGUpLCBzdGFja09mZnNldCksIHN0YWNrU2Nyb2xsKSwgc2Nyb2xsUG9zKTtcbiAgICB9O1xuICAgIEFsaWduU2VydmljZS5wcm90b3R5cGUuZWxlbWVudFNjcm9sbFBvc2l0aW9uID0gZnVuY3Rpb24gKGFuY2hvciwgZWxlbWVudCkge1xuICAgICAgICByZXR1cm4gYW5jaG9yID8geyB4OiAwLCB5OiAwIH0gOiB0aGlzLl9kb20uc2Nyb2xsUG9zaXRpb24oZWxlbWVudCk7XG4gICAgfTtcbiAgICBBbGlnblNlcnZpY2UucHJvdG90eXBlLnJlbGF0aXZlUmVjdCA9IGZ1bmN0aW9uIChhbmNob3IsIGVsZW1lbnQsIG9mZnNldCQkMSwgc2NhbGUpIHtcbiAgICAgICAgdmFyIHJlY3QgPSBlaXRoZXJSZWN0KHRoaXMuX2RvbS5wb3NpdGlvbihhbmNob3IsIGVsZW1lbnQsIHNjYWxlKSwgb2Zmc2V0JCQxKTtcbiAgICAgICAgcmV0dXJuIHNjYWxlUmVjdChyZWN0LCBzY2FsZSk7XG4gICAgfTtcbiAgICBBbGlnblNlcnZpY2UuZGVjb3JhdG9ycyA9IFtcbiAgICAgICAgeyB0eXBlOiBJbmplY3RhYmxlIH0sXG4gICAgXTtcbiAgICAvKiogQG5vY29sbGFwc2UgKi9cbiAgICBBbGlnblNlcnZpY2UuY3RvclBhcmFtZXRlcnMgPSBmdW5jdGlvbiAoKSB7IHJldHVybiBbXG4gICAgICAgIHsgdHlwZTogRE9NU2VydmljZSB9LFxuICAgICAgICB7IHR5cGU6IE51bWJlciwgZGVjb3JhdG9yczogW3sgdHlwZTogSW5qZWN0LCBhcmdzOiBbU0NBTEUsXSB9LCB7IHR5cGU6IE9wdGlvbmFsIH1dIH1cbiAgICBdOyB9O1xuICAgIHJldHVybiBBbGlnblNlcnZpY2U7XG59KCkpO1xuXG4vKipcbiAqIEBoaWRkZW5cbiAqL1xudmFyIFBvc2l0aW9uU2VydmljZSA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBQb3NpdGlvblNlcnZpY2UoX2RvbSwgc2NhbGUpIHtcbiAgICAgICAgaWYgKHNjYWxlID09PSB2b2lkIDApIHsgc2NhbGUgPSAxOyB9XG4gICAgICAgIHRoaXMuX2RvbSA9IF9kb207XG4gICAgICAgIHRoaXMuc2NhbGUgPSBzY2FsZTtcbiAgICB9XG4gICAgUG9zaXRpb25TZXJ2aWNlLnByb3RvdHlwZS5wb3NpdGlvbkVsZW1lbnQgPSBmdW5jdGlvbiAoc2V0dGluZ3MpIHtcbiAgICAgICAgdmFyIGFuY2hvciA9IHNldHRpbmdzLmFuY2hvciwgY3VycmVudExvY2F0aW9uID0gc2V0dGluZ3MuY3VycmVudExvY2F0aW9uLCBlbGVtZW50ID0gc2V0dGluZ3MuZWxlbWVudCwgYW5jaG9yQWxpZ24gPSBzZXR0aW5ncy5hbmNob3JBbGlnbiwgZWxlbWVudEFsaWduID0gc2V0dGluZ3MuZWxlbWVudEFsaWduLCBjb2xsaXNpb25zID0gc2V0dGluZ3MuY29sbGlzaW9ucywgbWFyZ2luID0gc2V0dGluZ3MubWFyZ2luO1xuICAgICAgICB2YXIgZG9tID0gdGhpcy5fZG9tO1xuICAgICAgICB2YXIgc2NhbGUgPSB0aGlzLnNjYWxlIHx8IDE7XG4gICAgICAgIHZhciBlbGVtZW50T2Zmc2V0ID0gZG9tLm9mZnNldEF0UG9pbnQoZWxlbWVudCwgY3VycmVudExvY2F0aW9uKTtcbiAgICAgICAgdmFyIGVsZW1lbnRSZWN0ID0gc2NhbGVSZWN0KGVsZW1lbnRPZmZzZXQsIHNjYWxlKTtcbiAgICAgICAgdmFyIGFuY2hvck9mZnNldCA9IHNjYWxlUmVjdChkb20ub2Zmc2V0KGFuY2hvciksIHNjYWxlKTtcbiAgICAgICAgdmFyIGFuY2hvclJlY3QgPSBlaXRoZXJSZWN0KGFuY2hvck9mZnNldCwgY3VycmVudExvY2F0aW9uKTtcbiAgICAgICAgdmFyIHZpZXdQb3J0ID0gc2V0dGluZ3Mudmlld1BvcnQgfHwgZG9tLndpbmRvd1ZpZXdQb3J0KGVsZW1lbnQpO1xuICAgICAgICB2aWV3UG9ydC53aWR0aCA9IHZpZXdQb3J0LndpZHRoIC8gc2NhbGU7XG4gICAgICAgIHZpZXdQb3J0LmhlaWdodCA9IHZpZXdQb3J0LmhlaWdodCAvIHNjYWxlO1xuICAgICAgICB2YXIgcmVzdWx0ID0gZG9tLnJlc3RyaWN0VG9WaWV3KHtcbiAgICAgICAgICAgIGFuY2hvckFsaWduOiBhbmNob3JBbGlnbixcbiAgICAgICAgICAgIGFuY2hvclJlY3Q6IGFuY2hvclJlY3QsXG4gICAgICAgICAgICBjb2xsaXNpb25zOiBjb2xsaXNpb25zLFxuICAgICAgICAgICAgZWxlbWVudEFsaWduOiBlbGVtZW50QWxpZ24sXG4gICAgICAgICAgICBlbGVtZW50UmVjdDogZWxlbWVudFJlY3QsXG4gICAgICAgICAgICBtYXJnaW46IG1hcmdpbixcbiAgICAgICAgICAgIHZpZXdQb3J0OiB2aWV3UG9ydFxuICAgICAgICB9KTtcbiAgICAgICAgdmFyIG9mZnNldCQkMSA9IGRvbS5hZGRPZmZzZXQoY3VycmVudExvY2F0aW9uLCByZXN1bHQub2Zmc2V0KTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGZsaXA6IHJlc3VsdC5mbGlwLFxuICAgICAgICAgICAgZmxpcHBlZDogcmVzdWx0LmZsaXBwZWQsXG4gICAgICAgICAgICBvZmZzZXQ6IG9mZnNldCQkMVxuICAgICAgICB9O1xuICAgIH07XG4gICAgUG9zaXRpb25TZXJ2aWNlLmRlY29yYXRvcnMgPSBbXG4gICAgICAgIHsgdHlwZTogSW5qZWN0YWJsZSB9LFxuICAgIF07XG4gICAgLyoqIEBub2NvbGxhcHNlICovXG4gICAgUG9zaXRpb25TZXJ2aWNlLmN0b3JQYXJhbWV0ZXJzID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gW1xuICAgICAgICB7IHR5cGU6IERPTVNlcnZpY2UgfSxcbiAgICAgICAgeyB0eXBlOiBOdW1iZXIsIGRlY29yYXRvcnM6IFt7IHR5cGU6IEluamVjdCwgYXJnczogW1NDQUxFLF0gfSwgeyB0eXBlOiBPcHRpb25hbCB9XSB9XG4gICAgXTsgfTtcbiAgICByZXR1cm4gUG9zaXRpb25TZXJ2aWNlO1xufSgpKTtcblxuLyoqXG4gKiBAaGlkZGVuXG4gKi9cbnZhciBSZXNpemVTZXJ2aWNlID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIFJlc2l6ZVNlcnZpY2UoX2RvbSwgX3pvbmUpIHtcbiAgICAgICAgdGhpcy5fZG9tID0gX2RvbTtcbiAgICAgICAgdGhpcy5fem9uZSA9IF96b25lO1xuICAgIH1cbiAgICBSZXNpemVTZXJ2aWNlLnByb3RvdHlwZS5zdWJzY3JpYmUgPSBmdW5jdGlvbiAoY2FsbGJhY2spIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcbiAgICAgICAgaWYgKCFpc0RvY3VtZW50QXZhaWxhYmxlKCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl96b25lLnJ1bk91dHNpZGVBbmd1bGFyKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIF90aGlzLnN1YnNjcmlwdGlvbiA9IGZyb21FdmVudChfdGhpcy5fZG9tLmdldFdpbmRvdygpLCBcInJlc2l6ZVwiKVxuICAgICAgICAgICAgICAgIC5waXBlKGF1ZGl0VGltZShGUkFNRV9EVVJBVElPTikpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZShmdW5jdGlvbiAoKSB7IHJldHVybiBjYWxsYmFjaygpOyB9KTtcbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICBSZXNpemVTZXJ2aWNlLnByb3RvdHlwZS51bnN1YnNjcmliZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKCF0aGlzLnN1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfTtcbiAgICBSZXNpemVTZXJ2aWNlLnByb3RvdHlwZS5pc1Vuc3Vic2NyaWJlZCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3Vic2NyaXB0aW9uICYmIHRoaXMuc3Vic2NyaXB0aW9uLmNsb3NlZDtcbiAgICB9O1xuICAgIFJlc2l6ZVNlcnZpY2UuZGVjb3JhdG9ycyA9IFtcbiAgICAgICAgeyB0eXBlOiBJbmplY3RhYmxlIH0sXG4gICAgXTtcbiAgICAvKiogQG5vY29sbGFwc2UgKi9cbiAgICBSZXNpemVTZXJ2aWNlLmN0b3JQYXJhbWV0ZXJzID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gW1xuICAgICAgICB7IHR5cGU6IERPTVNlcnZpY2UgfSxcbiAgICAgICAgeyB0eXBlOiBOZ1pvbmUgfVxuICAgIF07IH07XG4gICAgcmV0dXJuIFJlc2l6ZVNlcnZpY2U7XG59KCkpO1xuXG4vKipcbiAqIEBoaWRkZW5cbiAqL1xudmFyIFRIUkVTSE9MRF9ESUZGID0gMTtcbi8qKlxuICogQGhpZGRlblxuICovXG52YXIgU2Nyb2xsYWJsZVNlcnZpY2UgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gU2Nyb2xsYWJsZVNlcnZpY2UoX2RvbSwgX3pvbmUpIHtcbiAgICAgICAgdGhpcy5fZG9tID0gX2RvbTtcbiAgICAgICAgdGhpcy5fem9uZSA9IF96b25lO1xuICAgIH1cbiAgICBTY3JvbGxhYmxlU2VydmljZS5wcm90b3R5cGUuZm9yRWxlbWVudCA9IGZ1bmN0aW9uIChlbGVtZW50KSB7XG4gICAgICAgIHRoaXMudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5lbGVtZW50ID0gZWxlbWVudDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfTtcbiAgICBTY3JvbGxhYmxlU2VydmljZS5wcm90b3R5cGUuc3Vic2NyaWJlID0gZnVuY3Rpb24gKGNhbGxiYWNrKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIGlmICghY2FsbGJhY2sgfHwgIWlzRG9jdW1lbnRBdmFpbGFibGUoKSB8fCAhdGhpcy5lbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdmFyIG5hdGl2ZUVsZW1lbnQgPSB0aGlzLl9kb20ubmF0aXZlRWxlbWVudCh0aGlzLmVsZW1lbnQpO1xuICAgICAgICB2YXIgcGFyZW50cyQkMSA9IHRoaXMuX2RvbS5zY3JvbGxhYmxlUGFyZW50cyh0aGlzLmVsZW1lbnQpO1xuICAgICAgICB0aGlzLl96b25lLnJ1bk91dHNpZGVBbmd1bGFyKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciBvYnNlcnZhYmxlcyA9IHBhcmVudHMkJDEubWFwKGZ1bmN0aW9uIChwKSB7IHJldHVybiBmcm9tRXZlbnQocCwgXCJzY3JvbGxcIikucGlwZShhdWRpdFRpbWUoRlJBTUVfRFVSQVRJT04pKTsgfSk7XG4gICAgICAgICAgICB2YXIgc3Vic2NyaWJlciA9IGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICAgICAgdmFyIHRhcmdldCA9IGUudGFyZ2V0O1xuICAgICAgICAgICAgICAgIHZhciBpc1BhcmVudCA9IHBhcmVudHMkJDEuZmlsdGVyKGZ1bmN0aW9uIChwKSB7IHJldHVybiBwID09PSB0YXJnZXQ7IH0pLmxlbmd0aCA+IDA7XG4gICAgICAgICAgICAgICAgdmFyIGlzRG9jdW1lbnQgPSB0YXJnZXQgPT09IGRvY3VtZW50O1xuICAgICAgICAgICAgICAgIHZhciBpc1dpbmRvdyA9IHRhcmdldCA9PT0gd2luZG93O1xuICAgICAgICAgICAgICAgIGlmIChpc1BhcmVudCB8fCBpc0RvY3VtZW50IHx8IGlzV2luZG93KSB7XG4gICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKF90aGlzLmlzVmlzaWJsZShuYXRpdmVFbGVtZW50LCB0YXJnZXQpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgX3RoaXMuc3Vic2NyaXB0aW9uID0gbWVyZ2UuYXBwbHkodm9pZCAwLCBvYnNlcnZhYmxlcykuc3Vic2NyaWJlKHN1YnNjcmliZXIpO1xuICAgICAgICB9KTtcbiAgICB9O1xuICAgIFNjcm9sbGFibGVTZXJ2aWNlLnByb3RvdHlwZS51bnN1YnNjcmliZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKCF0aGlzLnN1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfTtcbiAgICBTY3JvbGxhYmxlU2VydmljZS5wcm90b3R5cGUuaXNWaXNpYmxlID0gZnVuY3Rpb24gKGVsZW0sIGNvbnRhaW5lcikge1xuICAgICAgICB2YXIgZWxlbVJlY3QgPSB0aGlzLl9kb20uYm91bmRpbmdPZmZzZXQoZWxlbSk7XG4gICAgICAgIHZhciBjb250YWluZXJSZWN0ID0gdGhpcy5fZG9tLmJvdW5kaW5nT2Zmc2V0KGNvbnRhaW5lcik7XG4gICAgICAgIGlmIChUSFJFU0hPTERfRElGRiA8IChjb250YWluZXJSZWN0LnRvcCAtIGVsZW1SZWN0LmJvdHRvbSkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoVEhSRVNIT0xEX0RJRkYgPCAoZWxlbVJlY3QudG9wIC0gY29udGFpbmVyUmVjdC5ib3R0b20pKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKFRIUkVTSE9MRF9ESUZGIDwgKGVsZW1SZWN0LmxlZnQgLSBjb250YWluZXJSZWN0LnJpZ2h0KSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChUSFJFU0hPTERfRElGRiA8IChjb250YWluZXJSZWN0LmxlZnQgLSBlbGVtUmVjdC5yaWdodCkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9O1xuICAgIFNjcm9sbGFibGVTZXJ2aWNlLmRlY29yYXRvcnMgPSBbXG4gICAgICAgIHsgdHlwZTogSW5qZWN0YWJsZSB9LFxuICAgIF07XG4gICAgLyoqIEBub2NvbGxhcHNlICovXG4gICAgU2Nyb2xsYWJsZVNlcnZpY2UuY3RvclBhcmFtZXRlcnMgPSBmdW5jdGlvbiAoKSB7IHJldHVybiBbXG4gICAgICAgIHsgdHlwZTogRE9NU2VydmljZSB9LFxuICAgICAgICB7IHR5cGU6IE5nWm9uZSB9XG4gICAgXTsgfTtcbiAgICByZXR1cm4gU2Nyb2xsYWJsZVNlcnZpY2U7XG59KCkpO1xuXG52YXIgTEVGVCA9ICdsZWZ0JztcbnZhciBSSUdIVCA9ICdyaWdodCc7XG52YXIgRE9XTiA9ICdkb3duJztcbnZhciBVUCA9ICd1cCc7XG52YXIgREVGQVVMVF9UWVBFID0gJ3NsaWRlJztcbnZhciBERUZBVUxUX0RVUkFUSU9OID0gMTAwO1xudmFyIGFuaW1hdGlvblR5cGVzID0ge307XG4vKiB0c2xpbnQ6ZGlzYWJsZTpvYmplY3QtbGl0ZXJhbC1zb3J0LWtleXMgKi9cbmFuaW1hdGlvblR5cGVzLmV4cGFuZCA9IGZ1bmN0aW9uIChkaXJlY3Rpb24pIHtcbiAgICB2YXIgc2NhbGUgPSBkaXJlY3Rpb24gPT09IFVQIHx8IGRpcmVjdGlvbiA9PT0gRE9XTiA/ICdzY2FsZVknIDogJ3NjYWxlWCc7XG4gICAgdmFyIHN0YXJ0U2NhbGUgPSAwO1xuICAgIHZhciBlbmRTY2FsZSA9IDE7XG4gICAgdmFyIG9yaWdpbjtcbiAgICBpZiAoZGlyZWN0aW9uID09PSBET1dOKSB7XG4gICAgICAgIG9yaWdpbiA9ICd0b3AnO1xuICAgIH1cbiAgICBlbHNlIGlmIChkaXJlY3Rpb24gPT09IExFRlQpIHtcbiAgICAgICAgb3JpZ2luID0gUklHSFQ7XG4gICAgfVxuICAgIGVsc2UgaWYgKGRpcmVjdGlvbiA9PT0gUklHSFQpIHtcbiAgICAgICAgb3JpZ2luID0gTEVGVDtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIG9yaWdpbiA9ICdib3R0b20nO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgICBzdGFydDogeyB0cmFuc2Zvcm06IHNjYWxlICsgXCIoXCIgKyBzdGFydFNjYWxlICsgXCIpXCIsIHRyYW5zZm9ybU9yaWdpbjogb3JpZ2luIH0sXG4gICAgICAgIGVuZDogeyB0cmFuc2Zvcm06IHNjYWxlICsgXCIoXCIgKyBlbmRTY2FsZSArIFwiKVwiIH1cbiAgICB9O1xufTtcbmFuaW1hdGlvblR5cGVzLnNsaWRlID0gZnVuY3Rpb24gKGRpcmVjdGlvbikge1xuICAgIHZhciB0cmFuc2xhdGUgPSBkaXJlY3Rpb24gPT09IExFRlQgfHwgZGlyZWN0aW9uID09PSBSSUdIVCA/ICd0cmFuc2xhdGVYJyA6ICd0cmFuc2xhdGVZJztcbiAgICB2YXIgc3RhcnQgPSBkaXJlY3Rpb24gPT09IFJJR0hUIHx8IGRpcmVjdGlvbiA9PT0gRE9XTiA/IC0xMDAgOiAxMDA7XG4gICAgdmFyIGVuZCA9IDA7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgc3RhcnQ6IHsgdHJhbnNmb3JtOiB0cmFuc2xhdGUgKyBcIihcIiArIHN0YXJ0ICsgXCIlKVwiIH0sXG4gICAgICAgIGVuZDogeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZSArIFwiKFwiICsgZW5kICsgXCIlKVwiIH1cbiAgICB9O1xufTtcbmFuaW1hdGlvblR5cGVzLmZhZGUgPSBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgc3RhcnQ6IHsgb3BhY2l0eTogMCB9LFxuICAgICAgICBlbmQ6IHsgb3BhY2l0eTogMSB9XG4gICAgfTtcbn07XG5hbmltYXRpb25UeXBlcy56b29tID0gZnVuY3Rpb24gKCkge1xuICAgIHZhciBzdGFydCA9IDA7XG4gICAgdmFyIGVuZCA9IDE7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgc3RhcnQ6IHsgdHJhbnNmb3JtOiBcInNjYWxlKFwiICsgc3RhcnQgKyBcIilcIiB9LFxuICAgICAgICBlbmQ6IHsgdHJhbnNmb3JtOiBcInNjYWxlKFwiICsgZW5kICsgXCIpXCIgfVxuICAgIH07XG59O1xuLyoqXG4gKiBAaGlkZGVuXG4gKi9cbnZhciBBbmltYXRpb25TZXJ2aWNlID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIEFuaW1hdGlvblNlcnZpY2UoYW5pbWF0aW9uQnVpbGRlcikge1xuICAgICAgICB0aGlzLmFuaW1hdGlvbkJ1aWxkZXIgPSBhbmltYXRpb25CdWlsZGVyO1xuICAgICAgICB0aGlzLnN0YXJ0ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgICAgICB0aGlzLmVuZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICB9XG4gICAgQW5pbWF0aW9uU2VydmljZS5wcm90b3R5cGUucGxheSA9IGZ1bmN0aW9uIChlbGVtZW50LCBvcHRpb25zLCBmbGlwKSB7XG4gICAgICAgIGlmICghdGhpcy5mbGlwIHx8IHRoaXMuZmxpcC5ob3Jpem9udGFsICE9PSBmbGlwLmhvcml6b250YWwgfHxcbiAgICAgICAgICAgIHRoaXMuZmxpcC52ZXJ0aWNhbCAhPT0gZmxpcC52ZXJ0aWNhbCkge1xuICAgICAgICAgICAgdGhpcy5mbGlwID0gZmxpcDtcbiAgICAgICAgICAgIHZhciB0eXBlID0gb3B0aW9ucy50eXBlIHx8IERFRkFVTFRfVFlQRTtcbiAgICAgICAgICAgIHZhciBzdGF0ZXNGbiA9IGFuaW1hdGlvblR5cGVzW3R5cGVdO1xuICAgICAgICAgICAgaWYgKHN0YXRlc0ZuKSB7XG4gICAgICAgICAgICAgICAgdmFyIGRpcmVjdGlvbiA9IHRoaXMuZ2V0RGlyZWN0aW9uKGZsaXAsIG9wdGlvbnMpO1xuICAgICAgICAgICAgICAgIHZhciBzdGF0ZXMgPSBzdGF0ZXNGbihkaXJlY3Rpb24pO1xuICAgICAgICAgICAgICAgIHRoaXMucGxheVN0YXRlcyhlbGVtZW50LCBzdGF0ZXMsIG9wdGlvbnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoaXNEZXZNb2RlKCkpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJVbnN1cHBvcnRlZCBhbmltYXRpb24gdHlwZTogXFxcIlwiICsgdHlwZSArIFwiXFxcIi4gVGhlIHN1cHBvcnRlZCB0eXBlcyBhcmUgc2xpZGUsIGV4cGFuZCwgZmFkZSBhbmQgem9vbS5cIik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9O1xuICAgIEFuaW1hdGlvblNlcnZpY2UucHJvdG90eXBlLm5nT25EZXN0cm95ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB0aGlzLnN0b3BQbGF5ZXIoKTtcbiAgICB9O1xuICAgIEFuaW1hdGlvblNlcnZpY2UucHJvdG90eXBlLnBsYXlTdGF0ZXMgPSBmdW5jdGlvbiAoZWxlbWVudCwgc3RhdGVzLCBvcHRpb25zKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIHRoaXMuc3RvcFBsYXllcigpO1xuICAgICAgICB2YXIgZHVyYXRpb24gPSBvcHRpb25zLmR1cmF0aW9uIHx8IERFRkFVTFRfRFVSQVRJT047XG4gICAgICAgIHZhciBmYWN0b3J5ID0gdGhpcy5hbmltYXRpb25CdWlsZGVyLmJ1aWxkKFtcbiAgICAgICAgICAgIHN0eWxlKHN0YXRlcy5zdGFydCksXG4gICAgICAgICAgICBhbmltYXRlKGR1cmF0aW9uICsgXCJtcyBlYXNlLWluXCIsIHN0eWxlKHN0YXRlcy5lbmQpKVxuICAgICAgICBdKTtcbiAgICAgICAgdmFyIHBsYXllciA9IHRoaXMucGxheWVyID0gZmFjdG9yeS5jcmVhdGUoZWxlbWVudCk7XG4gICAgICAgIHBsYXllci5vbkRvbmUoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgX3RoaXMuZW5kLmVtaXQoKTtcbiAgICAgICAgICAgIF90aGlzLnN0b3BQbGF5ZXIoKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuc3RhcnQuZW1pdCgpO1xuICAgICAgICBwbGF5ZXIucGxheSgpO1xuICAgIH07XG4gICAgQW5pbWF0aW9uU2VydmljZS5wcm90b3R5cGUuZ2V0RGlyZWN0aW9uID0gZnVuY3Rpb24gKGZsaXAsIG9wdGlvbnMpIHtcbiAgICAgICAgdmFyIGRpcmVjdGlvbiA9IG9wdGlvbnMuZGlyZWN0aW9uIHx8IERPV047XG4gICAgICAgIGlmIChmbGlwLmhvcml6b250YWwpIHtcbiAgICAgICAgICAgIGlmIChkaXJlY3Rpb24gPT09IExFRlQpIHtcbiAgICAgICAgICAgICAgICBkaXJlY3Rpb24gPSBSSUdIVDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKGRpcmVjdGlvbiA9PT0gUklHSFQpIHtcbiAgICAgICAgICAgICAgICBkaXJlY3Rpb24gPSBMRUZUO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChmbGlwLnZlcnRpY2FsKSB7XG4gICAgICAgICAgICBpZiAoZGlyZWN0aW9uID09PSBET1dOKSB7XG4gICAgICAgICAgICAgICAgZGlyZWN0aW9uID0gVVA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChkaXJlY3Rpb24gPT09IFVQKSB7XG4gICAgICAgICAgICAgICAgZGlyZWN0aW9uID0gRE9XTjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZGlyZWN0aW9uO1xuICAgIH07XG4gICAgQW5pbWF0aW9uU2VydmljZS5wcm90b3R5cGUuc3RvcFBsYXllciA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKHRoaXMucGxheWVyKSB7XG4gICAgICAgICAgICB0aGlzLnBsYXllci5kZXN0cm95KCk7XG4gICAgICAgICAgICB0aGlzLnBsYXllciA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIEFuaW1hdGlvblNlcnZpY2UuZGVjb3JhdG9ycyA9IFtcbiAgICAgICAgeyB0eXBlOiBJbmplY3RhYmxlIH0sXG4gICAgXTtcbiAgICAvKiogQG5vY29sbGFwc2UgKi9cbiAgICBBbmltYXRpb25TZXJ2aWNlLmN0b3JQYXJhbWV0ZXJzID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gW1xuICAgICAgICB7IHR5cGU6IEFuaW1hdGlvbkJ1aWxkZXIgfVxuICAgIF07IH07XG4gICAgcmV0dXJuIEFuaW1hdGlvblNlcnZpY2U7XG59KCkpO1xuXG52YXIgREVGQVVMVF9PRkZTRVQgPSB7IGxlZnQ6IC0xMDAwMCwgdG9wOiAwIH07XG52YXIgQU5JTUFUSU9OX0NPTlRBSU5FUiA9ICdrLWFuaW1hdGlvbi1jb250YWluZXInO1xudmFyIEFOSU1BVElPTl9DT05UQUlORVJfRklYRUQgPSAnay1hbmltYXRpb24tY29udGFpbmVyLWZpeGVkJztcbi8qKlxuICogUmVwcmVzZW50cyB0aGUgW0tlbmRvIFVJIFBvcHVwIGNvbXBvbmVudCBmb3IgQW5ndWxhcl0oeyUgc2x1ZyBvdmVydmlld19wb3B1cCAlfSkuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiBfQENvbXBvbmVudCh7XG4gKiBzZWxlY3RvcjogJ215LWFwcCcsXG4gKiB0ZW1wbGF0ZTogYFxuICogIDxidXR0b24gI2FuY2hvciAoY2xpY2spPVwic2hvdz0hc2hvd1wiPlRvZ2dsZTwvYnV0dG9uPlxuICogIDxrZW5kby1wb3B1cCAqbmdJZj1cInNob3dcIiBbYW5jaG9yXT1cImFuY2hvclwiPlxuICogICAgICA8c3Ryb25nPlBvcHVwIGNvbnRlbnQhPC9zdHJvbmc+XG4gKiAgPC9rZW5kby1wb3B1cD5cbiAqIGBcbiAqIH0pXG4gKiBjbGFzcyBBcHBDb21wb25lbnQge1xuICogICBwdWJsaWMgc2hvdzogYm9vbGVhbiA9IGZhbHNlO1xuICogfVxuICogYGBgXG4gKi9cbnZhciBQb3B1cENvbXBvbmVudCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBQb3B1cENvbXBvbmVudChjb250YWluZXIsIF9hbGlnblNlcnZpY2UsIGRvbVNlcnZpY2UsIF9wb3NpdGlvblNlcnZpY2UsIF9yZXNpemVTZXJ2aWNlLCBfc2Nyb2xsYWJsZVNlcnZpY2UsIGFuaW1hdGlvblNlcnZpY2UsIF9yZW5kZXJlciwgX3pvbmUpIHtcbiAgICAgICAgdGhpcy5jb250YWluZXIgPSBjb250YWluZXI7XG4gICAgICAgIHRoaXMuX2FsaWduU2VydmljZSA9IF9hbGlnblNlcnZpY2U7XG4gICAgICAgIHRoaXMuZG9tU2VydmljZSA9IGRvbVNlcnZpY2U7XG4gICAgICAgIHRoaXMuX3Bvc2l0aW9uU2VydmljZSA9IF9wb3NpdGlvblNlcnZpY2U7XG4gICAgICAgIHRoaXMuX3Jlc2l6ZVNlcnZpY2UgPSBfcmVzaXplU2VydmljZTtcbiAgICAgICAgdGhpcy5fc2Nyb2xsYWJsZVNlcnZpY2UgPSBfc2Nyb2xsYWJsZVNlcnZpY2U7XG4gICAgICAgIHRoaXMuYW5pbWF0aW9uU2VydmljZSA9IGFuaW1hdGlvblNlcnZpY2U7XG4gICAgICAgIHRoaXMuX3JlbmRlcmVyID0gX3JlbmRlcmVyO1xuICAgICAgICB0aGlzLl96b25lID0gX3pvbmU7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBDb250cm9scyB0aGUgUG9wdXAgYW5pbWF0aW9uLiBCeSBkZWZhdWx0LCB0aGUgb3BlbmluZyBhbmQgY2xvc2luZyBhbmltYXRpb25zXG4gICAgICAgICAqIGFyZSBlbmFibGVkIChbc2VlIGV4YW1wbGVdKHslIHNsdWcgYW5pbWF0aW9uc19wb3B1cCAlfSkpLlxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5hbmltYXRlID0gdHJ1ZTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFNwZWNpZmllcyB0aGUgYW5jaG9yIHBpdm90IHBvaW50XG4gICAgICAgICAqIChbc2VlIGV4YW1wbGVdKHslIHNsdWcgYWxpZ25tZW50cG9zaXRpb25pbmdfcG9wdXAgJX0jdG9jLXBvc2l0aW9uaW5nKSkuXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLmFuY2hvckFsaWduID0geyBob3Jpem9udGFsOiAnbGVmdCcsIHZlcnRpY2FsOiAnYm90dG9tJyB9O1xuICAgICAgICAvKipcbiAgICAgICAgICogQ29uZmlndXJlcyB0aGUgY29sbGlzaW9uIGJlaGF2aW9yIG9mIHRoZSBQb3B1cFxuICAgICAgICAgKiAoW3NlZSBleGFtcGxlXSh7JSBzbHVnIHZpZXdwb3J0Ym91bmRhcnlkZXRlY3Rpb25fcG9wdXAgJX0pKS5cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuY29sbGlzaW9uID0geyBob3Jpem9udGFsOiAnZml0JywgdmVydGljYWw6ICdmbGlwJyB9O1xuICAgICAgICAvKipcbiAgICAgICAgICogU3BlY2lmaWVzIHRoZSBwaXZvdCBwb2ludCBvZiB0aGUgUG9wdXBcbiAgICAgICAgICogKFtzZWUgZXhhbXBsZV0oeyUgc2x1ZyBhbGlnbm1lbnRwb3NpdGlvbmluZ19wb3B1cCAlfSN0b2MtcG9zaXRpb25pbmcpKS5cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMucG9wdXBBbGlnbiA9IHsgaG9yaXpvbnRhbDogJ2xlZnQnLCB2ZXJ0aWNhbDogJ3RvcCcgfTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIENvbnRyb2xzIHdoZXRoZXIgdGhlIGNvbXBvbmVudCB3aWxsIGNvcHkgdGhlIGBhbmNob3JgIGZvbnQgc3R5bGVzLlxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5jb3B5QW5jaG9yU3R5bGVzID0gZmFsc2U7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBTcGVjaWZpZXMgdGhlIHBvc2l0aW9uIG1vZGUgb2YgdGhlIGNvbXBvbmVudC4gQnkgZGVmYXVsdCwgdGhlIFBvcHVwIHVzZXMgZml4ZWQgcG9zaXRpb25pbmcuXG4gICAgICAgICAqIFRvIG1ha2UgdGhlIFBvcHVwIGFjcXVpcmUgYWJzb2x1dGUgcG9zaXRpb25pbmcsIHNldCB0aGlzIG9wdGlvbiB0byBgYWJzb2x1dGVgLlxuICAgICAgICAgKlxuICAgICAgICAgKiA+IElmIHlvdSBuZWVkIHRvIHN1cHBvcnQgbW9iaWxlIGJyb3dzZXJzIHdpdGggdGhlIHpvb20gb3B0aW9uLFxuICAgICAgICAgKiB1c2UgdGhlIGBhYnNvbHV0ZWAgcG9zaXRpb25pbmcgb2YgdGhlIFBvcHVwLlxuICAgICAgICAgKlxuICAgICAgICAgKiBAZXhhbXBsZVxuICAgICAgICAgKiBgYGBodG1sXG4gICAgICAgICAqIDxzdHlsZT5cbiAgICAgICAgICogIC5wYXJlbnQtY29udGVudCB7XG4gICAgICAgICAqICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAqICAgICB3aWR0aDogMjAwcHg7XG4gICAgICAgICAqICAgICBoZWlnaHQ6IDIwMHB4O1xuICAgICAgICAgKiAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgICAqICAgICBtYXJnaW46IDIwMHB4IGF1dG87XG4gICAgICAgICAqICAgICBib3JkZXI6IDFweCBzb2xpZCByZWQ7XG4gICAgICAgICAqICB9XG4gICAgICAgICAqICAuY29udGVudCB7XG4gICAgICAgICAqICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAqICAgICB3aWR0aDogMTAwcHg7XG4gICAgICAgICAqICAgICBoZWlnaHQ6IDEwMHB4O1xuICAgICAgICAgKiAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgICAqICAgICBtYXJnaW46IDMwMHB4O1xuICAgICAgICAgKiAgICAgYm9yZGVyOiAxcHggc29saWQgYmx1ZTtcbiAgICAgICAgICogIH1cbiAgICAgICAgICogIC5hbmNob3Ige1xuICAgICAgICAgKiAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgKiAgICAgdG9wOiAyMDBweDtcbiAgICAgICAgICogICAgIGxlZnQ6IDIwMHB4O1xuICAgICAgICAgKiAgfVxuICAgICAgICAgKiA8L3N0eWxlPlxuICAgICAgICAgKiBgYGBcbiAgICAgICAgICogYGBgdHNcbiAgICAgICAgICogX0BDb21wb25lbnQoe1xuICAgICAgICAgKiBzZWxlY3RvcjogJ215LWFwcCcsXG4gICAgICAgICAqIHRlbXBsYXRlOiBgXG4gICAgICAgICAqICAgPGRpdiBjbGFzcz1cImV4YW1wbGUtY29uZmlnXCI+XG4gICAgICAgICAqICAgICAgUG9zaXRpb24gbW9kZTpcbiAgICAgICAgICogICAgICA8bGFiZWw+PGlucHV0IHR5cGU9XCJyYWRpb1wiIHZhbHVlPVwiZml4ZWRcIiBbKG5nTW9kZWwpXT1cIm1vZGVcIiAvPiBGaXhlZDwvbGFiZWw+XG4gICAgICAgICAqICAgICAgPGxhYmVsPjxpbnB1dCB0eXBlPVwicmFkaW9cIiB2YWx1ZT1cImFic29sdXRlXCIgWyhuZ01vZGVsKV09XCJtb2RlXCIgLz4gQWJzb2x1dGU8L2xhYmVsPlxuICAgICAgICAgKiAgIDwvZGl2PlxuICAgICAgICAgKiAgIDxkaXYgY2xhc3M9XCJleGFtcGxlLWNvbmZpZ1wiPlxuICAgICAgICAgKiAgICAgICBBcHBlbmQgdG9cbiAgICAgICAgICogICAgICAgPGxhYmVsPlxuICAgICAgICAgKiAgICAgICAgICAgPGlucHV0IHR5cGU9XCJyYWRpb1wiIG5hbWU9XCJwbGFjZVwiIFt2YWx1ZV09XCIxXCIgWyhuZ01vZGVsKV09XCJjaGVja2VkXCIgLz5cbiAgICAgICAgICogICAgICAgICAgIFJvb3QgY29tcG9uZW50XG4gICAgICAgICAqICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAqICAgICAgIDxsYWJlbD5cbiAgICAgICAgICogICAgICAgICAgIDxpbnB1dCB0eXBlPVwicmFkaW9cIiBuYW1lPVwicGxhY2VcIiBbdmFsdWVdPVwiMlwiIFsobmdNb2RlbCldPVwiY2hlY2tlZFwiIC8+XG4gICAgICAgICAqICAgICAgICAgICA8c3BhbiBzdHlsZT1cImNvbG9yOiByZWRcIj5SZWQgQ29udGFpbmVyPC9zcGFuPlxuICAgICAgICAgKiAgICAgICA8L2xhYmVsPlxuICAgICAgICAgKiAgICAgICA8bGFiZWw+XG4gICAgICAgICAqICAgICAgICAgICA8aW5wdXQgdHlwZT1cInJhZGlvXCIgbmFtZT1cInBsYWNlXCIgW3ZhbHVlXT1cIjNcIiBbKG5nTW9kZWwpXT1cImNoZWNrZWRcIiAvPlxuICAgICAgICAgKiAgICAgICAgICAgPHNwYW4gc3R5bGU9XCJjb2xvcjogYmx1ZVwiPkJsdWUgQ29udGFpbmVyPC9zcGFuPlxuICAgICAgICAgKiAgICAgICA8L2xhYmVsPlxuICAgICAgICAgKiAgIDwvZGl2PlxuICAgICAgICAgKiAgIDxkaXYgY2xhc3M9XCJleGFtcGxlXCI+XG4gICAgICAgICAqICAgICA8ZGl2IGNsYXNzPVwicGFyZW50LWNvbnRlbnRcIiBbc2Nyb2xsTGVmdF09XCIyNTBcIiBbc2Nyb2xsVG9wXT1cIjIzMFwiPlxuICAgICAgICAgKiAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50XCIgW3Njcm9sbExlZnRdPVwiMTcwXCIgW3Njcm9sbFRvcF09XCIxNjVcIj5cbiAgICAgICAgICogICAgICAgICAgIDxidXR0b24gI2FuY2hvciBjbGFzcz1cImFuY2hvclwiIChjbGljayk9XCJzaG93ID0gIXNob3dcIj5Ub2dnbGU8L2J1dHRvbj5cbiAgICAgICAgICogICAgICAgICAgIDxrZW5kby1wb3B1cCBbcG9zaXRpb25Nb2RlXT1cIm1vZGVcIiBbYW5jaG9yXT1cImFuY2hvclwiIChhbmNob3JWaWV3cG9ydExlYXZlKT1cInNob3c9ZmFsc2VcIiAqbmdJZj1cInNob3cgJiYgY2hlY2tlZCA9PT0gM1wiPlxuICAgICAgICAgKiAgICAgICAgICAgICA8dWw+XG4gICAgICAgICAqICAgICAgICAgICAgICAgICA8bGk+SXRlbTE8L2xpPlxuICAgICAgICAgKiAgICAgICAgICAgICAgICAgPGxpPkl0ZW0yPC9saT5cbiAgICAgICAgICogICAgICAgICAgICAgICAgIDxsaT5JdGVtMzwvbGk+XG4gICAgICAgICAqICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAqICAgICAgICAgICA8L2tlbmRvLXBvcHVwPlxuICAgICAgICAgKiAgICAgICAgICAgPHNwYW4gc3R5bGU9XCJwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogNDAwcHg7IGxlZnQ6IDQwMHB4XCI+Qm90dG9tL1JpZ2h0PC9zcGFuPlxuICAgICAgICAgKiAgICAgICAgIDwvZGl2PlxuICAgICAgICAgKiAgICAgICAgIDxrZW5kby1wb3B1cCBbcG9zaXRpb25Nb2RlXT1cIm1vZGVcIiBbYW5jaG9yXT1cImFuY2hvclwiIChhbmNob3JWaWV3cG9ydExlYXZlKT1cInNob3c9ZmFsc2VcIiAqbmdJZj1cInNob3cgJiYgY2hlY2tlZCA9PT0gMlwiPlxuICAgICAgICAgKiAgICAgICAgICAgPHVsPlxuICAgICAgICAgKiAgICAgICAgICAgICAgIDxsaT5JdGVtMTwvbGk+XG4gICAgICAgICAqICAgICAgICAgICAgICAgPGxpPkl0ZW0yPC9saT5cbiAgICAgICAgICogICAgICAgICAgICAgICA8bGk+SXRlbTM8L2xpPlxuICAgICAgICAgKiAgICAgICAgICAgPC91bD5cbiAgICAgICAgICogICAgICAgICA8L2tlbmRvLXBvcHVwPlxuICAgICAgICAgKiAgICAgICAgIDxzcGFuIHN0eWxlPVwicG9zaXRpb246IGFic29sdXRlOyB0b3A6IDYwMHB4OyBsZWZ0OiA2MDBweFwiPkJvdHRvbS9SaWdodDwvc3Bhbj5cbiAgICAgICAgICogICAgIDwvZGl2PlxuICAgICAgICAgKiAgICAgPGtlbmRvLXBvcHVwIFtwb3NpdGlvbk1vZGVdPVwibW9kZVwiIFthbmNob3JdPVwiYW5jaG9yXCIgKGFuY2hvclZpZXdwb3J0TGVhdmUpPVwic2hvdz1mYWxzZVwiICpuZ0lmPVwic2hvdyAmJiBjaGVja2VkID09PSAxXCI+XG4gICAgICAgICAqICAgICAgIDx1bD5cbiAgICAgICAgICogICAgICAgICAgIDxsaT5JdGVtMTwvbGk+XG4gICAgICAgICAqICAgICAgICAgICA8bGk+SXRlbTI8L2xpPlxuICAgICAgICAgKiAgICAgICAgICAgPGxpPkl0ZW0zPC9saT5cbiAgICAgICAgICogICAgICAgPC91bD5cbiAgICAgICAgICogICAgIDwva2VuZG8tcG9wdXA+XG4gICAgICAgICAqICAgPC9kaXY+XG4gICAgICAgICAqIGBcbiAgICAgICAgICogfSlcbiAgICAgICAgICogY2xhc3MgQXBwQ29tcG9uZW50IHtcbiAgICAgICAgICogICBwdWJsaWMgY2hlY2tlZDogbnVtYmVyID0gMztcbiAgICAgICAgICogICBwdWJsaWMgbW9kZTogc3RyaW5nID0gJ2Fic29sdXRlJztcbiAgICAgICAgICogICBwdWJsaWMgc2hvdzogYm9vbGVhbiA9IHRydWU7XG4gICAgICAgICAqIH1cbiAgICAgICAgICogYGBgXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLnBvc2l0aW9uTW9kZSA9ICdmaXhlZCc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBTcGVjaWZpZXMgdGhlIGFic29sdXRlIHBvc2l0aW9uIG9mIHRoZSBlbGVtZW50XG4gICAgICAgICAqIChbc2VlIGV4YW1wbGVdKHslIHNsdWcgYWxpZ25tZW50cG9zaXRpb25pbmdfcG9wdXAgJX0jdG9jLWFsaWduaW5nLXRvLWFic29sdXRlLXBvaW50cykpLlxuICAgICAgICAgKiBUaGUgUG9wdXAgb3BlbnMgbmV4dCB0byB0aGF0IHBvaW50LiBUaGUgUG9wdXAgcGl2b3QgcG9pbnQgaXMgZGVmaW5lZCBieSB0aGUgYHBvcHVwQWxpZ25gIGNvbmZpZ3VyYXRpb24gb3B0aW9uLlxuICAgICAgICAgKiBUaGUgYm91bmRhcnkgZGV0ZWN0aW9uIGlzIGFwcGxpZWQgYnkgdXNpbmcgdGhlIHdpbmRvdyB2aWV3cG9ydC5cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMub2Zmc2V0ID0gREVGQVVMVF9PRkZTRVQ7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBGaXJlcyB3aGVuIHRoZSBhbmNob3IgaXMgc2Nyb2xsZWQgb3V0c2lkZSB0aGUgc2NyZWVuIGJvdW5kYXJpZXMuXG4gICAgICAgICAqIChbc2VlIGV4YW1wbGVdKHslIHNsdWcgY2xvc2luZ19wb3B1cCAlfSN0b2MtYWZ0ZXItbGVhdmluZy10aGUtdmlld3BvcnQpKS5cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuYW5jaG9yVmlld3BvcnRMZWF2ZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEZpcmVzIGFmdGVyIHRoZSBjb21wb25lbnQgaXMgY2xvc2VkLlxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5jbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEZpcmVzIGFmdGVyIHRoZSBjb21wb25lbnQgaXMgb3BlbmVkIGFuZCB0aGUgb3BlbmluZyBhbmltYXRpb24gZW5kcy5cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMub3BlbiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEZpcmVzIGFmdGVyIHRoZSBjb21wb25lbnQgaXMgb3BlbmVkIGFuZCB0aGUgUG9wdXAgaXMgcG9zaXRpb25lZC5cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMucG9zaXRpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgICAgIHRoaXMucmVzb2x2ZWRQcm9taXNlID0gUHJvbWlzZS5yZXNvbHZlKG51bGwpO1xuICAgICAgICB0aGlzLmluaXRpYWxDaGVjayA9IHRydWU7XG4gICAgICAgIHRoaXMuX3JlbmRlcmVyLmFkZENsYXNzKGNvbnRhaW5lci5uYXRpdmVFbGVtZW50LCBBTklNQVRJT05fQ09OVEFJTkVSKTtcbiAgICAgICAgdGhpcy51cGRhdGVGaXhlZENsYXNzKCk7XG4gICAgfVxuICAgIFBvcHVwQ29tcG9uZW50LnByb3RvdHlwZS5uZ09uSW5pdCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdGhpcy5yZXBvc2l0aW9uID0gdGhpcy5yZXBvc2l0aW9uLmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMuX3Jlc2l6ZVNlcnZpY2Uuc3Vic2NyaWJlKHRoaXMucmVwb3NpdGlvbik7XG4gICAgICAgIHRoaXMuYW5pbWF0aW9uU3Vic2NyaXB0aW9ucyA9IHRoaXMuYW5pbWF0aW9uU2VydmljZS5zdGFydC5zdWJzY3JpYmUodGhpcy5vbkFuaW1hdGlvblN0YXJ0LmJpbmQodGhpcykpO1xuICAgICAgICB0aGlzLmFuaW1hdGlvblN1YnNjcmlwdGlvbnMuYWRkKHRoaXMuYW5pbWF0aW9uU2VydmljZS5lbmQuc3Vic2NyaWJlKHRoaXMub25BbmltYXRpb25FbmQuYmluZCh0aGlzKSkpO1xuICAgICAgICB0aGlzLl9zY3JvbGxhYmxlU2VydmljZS5mb3JFbGVtZW50KHRoaXMuYW5jaG9yIHx8IHRoaXMuY29udGFpbmVyKS5zdWJzY3JpYmUodGhpcy5vblNjcm9sbC5iaW5kKHRoaXMpKTtcbiAgICAgICAgdGhpcy5jdXJyZW50T2Zmc2V0ID0gREVGQVVMVF9PRkZTRVQ7XG4gICAgICAgIHRoaXMuc2V0WkluZGV4KCk7XG4gICAgICAgIHRoaXMuY29weUZvbnRTdHlsZXMoKTtcbiAgICAgICAgdGhpcy51cGRhdGVGaXhlZENsYXNzKCk7XG4gICAgfTtcbiAgICBQb3B1cENvbXBvbmVudC5wcm90b3R5cGUubmdPbkNoYW5nZXMgPSBmdW5jdGlvbiAoY2hhbmdlcykge1xuICAgICAgICBpZiAoY2hhbmdlcy5jb3B5QW5jaG9yU3R5bGVzKSB7XG4gICAgICAgICAgICB0aGlzLmNvcHlGb250U3R5bGVzKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNoYW5nZXMucG9zaXRpb25Nb2RlKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUZpeGVkQ2xhc3MoKTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgUG9wdXBDb21wb25lbnQucHJvdG90eXBlLm5nQWZ0ZXJWaWV3SW5pdCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcbiAgICAgICAgdGhpcy5yZXBvc2l0aW9uKCk7XG4gICAgICAgIGlmICghdGhpcy5hbmltYXRlKSB7XG4gICAgICAgICAgICB0aGlzLnJlc29sdmVkUHJvbWlzZS50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBfdGhpcy5vbkFuaW1hdGlvbkVuZCgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIFBvcHVwQ29tcG9uZW50LnByb3RvdHlwZS5uZ0FmdGVyVmlld0NoZWNrZWQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIGlmICh0aGlzLmluaXRpYWxDaGVjaykge1xuICAgICAgICAgICAgdGhpcy5pbml0aWFsQ2hlY2sgPSBmYWxzZTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl96b25lLnJ1bk91dHNpZGVBbmd1bGFyKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIC8vIHdvcmthcm91bmRzIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzE5MDk0XG4gICAgICAgICAgICAvLyB1c2VzIHByb21pc2UgYmVjYXVzZSBpdCBpcyBleGVjdXRlZCBzeW5jaHJvbm91c2x5IGFmdGVyIHRoZSBjb250ZW50IGlzIHVwZGF0ZWRcbiAgICAgICAgICAgIC8vIGRvZXMgbm90IHVzZSBvblN0YWJsZSBpbiBjYXNlIHRoZSBjdXJyZW50IHpvbmUgaXMgbm90IHRoZSBhbmd1bGFyIG9uZS5cbiAgICAgICAgICAgIF90aGlzLnVuc3Vic2NyaWJlUmVwb3NpdGlvbigpO1xuICAgICAgICAgICAgX3RoaXMucmVwb3NpdGlvblN1YnNjcmlwdGlvbiA9IGZyb20oX3RoaXMucmVzb2x2ZWRQcm9taXNlKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoX3RoaXMucmVwb3NpdGlvbik7XG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgUG9wdXBDb21wb25lbnQucHJvdG90eXBlLm5nT25EZXN0cm95ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB0aGlzLmFuY2hvclZpZXdwb3J0TGVhdmUuY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5wb3NpdGlvbkNoYW5nZS5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLmNsb3NlLmVtaXQoKTtcbiAgICAgICAgdGhpcy5jbG9zZS5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLl9yZXNpemVTZXJ2aWNlLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuX3Njcm9sbGFibGVTZXJ2aWNlLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuYW5pbWF0aW9uU3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLnVuc3Vic2NyaWJlUmVwb3NpdGlvbigpO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIFBvcHVwQ29tcG9uZW50LnByb3RvdHlwZS5vblJlc2l6ZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdGhpcy5yZXBvc2l0aW9uKCk7XG4gICAgfTtcbiAgICBQb3B1cENvbXBvbmVudC5wcm90b3R5cGUub25BbmltYXRpb25TdGFydCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdGhpcy5fcmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudCwgJ2stYW5pbWF0aW9uLWNvbnRhaW5lci1zaG93bicpO1xuICAgIH07XG4gICAgUG9wdXBDb21wb25lbnQucHJvdG90eXBlLm9uQW5pbWF0aW9uRW5kID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB0aGlzLl9yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50LCAnay1hbmltYXRpb24tY29udGFpbmVyLXNob3duJyk7XG4gICAgICAgIHRoaXMub3Blbi5lbWl0KCk7XG4gICAgICAgIHRoaXMub3Blbi5jb21wbGV0ZSgpO1xuICAgIH07XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFBvcHVwQ29tcG9uZW50LnByb3RvdHlwZSwgXCJjdXJyZW50T2Zmc2V0XCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fY3VycmVudE9mZnNldDtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0OiBmdW5jdGlvbiAob2Zmc2V0JCQxKSB7XG4gICAgICAgICAgICB0aGlzLnNldENvbnRhaW5lclN0eWxlKCdsZWZ0Jywgb2Zmc2V0JCQxLmxlZnQgKyBcInB4XCIpO1xuICAgICAgICAgICAgdGhpcy5zZXRDb250YWluZXJTdHlsZSgndG9wJywgb2Zmc2V0JCQxLnRvcCArIFwicHhcIik7XG4gICAgICAgICAgICB0aGlzLl9jdXJyZW50T2Zmc2V0ID0gb2Zmc2V0JCQxO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBQb3B1cENvbXBvbmVudC5wcm90b3R5cGUuc2V0WkluZGV4ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAodGhpcy5hbmNob3IpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0Q29udGFpbmVyU3R5bGUoJ3otaW5kZXgnLCBTdHJpbmcodGhpcy5kb21TZXJ2aWNlLnpJbmRleCh0aGlzLmFuY2hvciwgdGhpcy5jb250YWluZXIpKSk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIFBvcHVwQ29tcG9uZW50LnByb3RvdHlwZS5yZXBvc2l0aW9uID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICBpZiAoIWlzRG9jdW1lbnRBdmFpbGFibGUoKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHZhciBfYSA9IHRoaXMucG9zaXRpb24oKSwgZmxpcCA9IF9hLmZsaXAsIG9mZnNldCQkMSA9IF9hLm9mZnNldDtcbiAgICAgICAgaWYgKCF0aGlzLmN1cnJlbnRPZmZzZXQgfHwgaXNEaWZmZXJlbnRPZmZzZXQodGhpcy5jdXJyZW50T2Zmc2V0LCBvZmZzZXQkJDEpKSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRPZmZzZXQgPSBvZmZzZXQkJDE7XG4gICAgICAgICAgICBpZiAoaGFzT2JzZXJ2ZXJzKHRoaXMucG9zaXRpb25DaGFuZ2UpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fem9uZS5ydW4oZnVuY3Rpb24gKCkgeyByZXR1cm4gX3RoaXMucG9zaXRpb25DaGFuZ2UuZW1pdCh7IG9mZnNldDogb2Zmc2V0JCQxLCBmbGlwOiBmbGlwIH0pOyB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5hbmltYXRlKSB7XG4gICAgICAgICAgICB0aGlzLmFuaW1hdGlvblNlcnZpY2UucGxheSh0aGlzLmNvbnRlbnRDb250YWluZXIubmF0aXZlRWxlbWVudCwgdGhpcy5hbmltYXRlLCBmbGlwKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJlc2l6ZVNlbnNvci5hY2NlcHRTaXplKCk7XG4gICAgfTtcbiAgICBQb3B1cENvbXBvbmVudC5wcm90b3R5cGUucG9zaXRpb24gPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBhbGlnbmVkT2Zmc2V0ID0gdGhpcy5fYWxpZ25TZXJ2aWNlLmFsaWduRWxlbWVudCh7XG4gICAgICAgICAgICBhbmNob3I6IHRoaXMuYW5jaG9yLFxuICAgICAgICAgICAgYW5jaG9yQWxpZ246IHRoaXMuYW5jaG9yQWxpZ24sXG4gICAgICAgICAgICBlbGVtZW50OiB0aGlzLmNvbnRhaW5lcixcbiAgICAgICAgICAgIGVsZW1lbnRBbGlnbjogdGhpcy5wb3B1cEFsaWduLFxuICAgICAgICAgICAgbWFyZ2luOiB0aGlzLm1hcmdpbixcbiAgICAgICAgICAgIG9mZnNldDogdGhpcy5vZmZzZXQsXG4gICAgICAgICAgICBwb3NpdGlvbk1vZGU6IHRoaXMucG9zaXRpb25Nb2RlXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gdGhpcy5fcG9zaXRpb25TZXJ2aWNlLnBvc2l0aW9uRWxlbWVudCh7XG4gICAgICAgICAgICBhbmNob3I6IHRoaXMuYW5jaG9yLFxuICAgICAgICAgICAgYW5jaG9yQWxpZ246IHRoaXMuYW5jaG9yQWxpZ24sXG4gICAgICAgICAgICBjb2xsaXNpb25zOiB0aGlzLmNvbGxpc2lvbixcbiAgICAgICAgICAgIGN1cnJlbnRMb2NhdGlvbjogYWxpZ25lZE9mZnNldCxcbiAgICAgICAgICAgIGVsZW1lbnQ6IHRoaXMuY29udGFpbmVyLFxuICAgICAgICAgICAgZWxlbWVudEFsaWduOiB0aGlzLnBvcHVwQWxpZ24sXG4gICAgICAgICAgICBtYXJnaW46IHRoaXMubWFyZ2luXG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgUG9wdXBDb21wb25lbnQucHJvdG90eXBlLm9uU2Nyb2xsID0gZnVuY3Rpb24gKGlzSW5WaWV3UG9ydCkge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICB2YXIgaGFzTGVhdmVPYnNlcnZlcnMgPSBoYXNPYnNlcnZlcnModGhpcy5hbmNob3JWaWV3cG9ydExlYXZlKTtcbiAgICAgICAgaWYgKGlzSW5WaWV3UG9ydCB8fCAhaGFzTGVhdmVPYnNlcnZlcnMpIHtcbiAgICAgICAgICAgIHRoaXMucmVwb3NpdGlvbigpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGhhc0xlYXZlT2JzZXJ2ZXJzKSB7XG4gICAgICAgICAgICB0aGlzLl96b25lLnJ1bihmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgX3RoaXMuYW5jaG9yVmlld3BvcnRMZWF2ZS5lbWl0KCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgUG9wdXBDb21wb25lbnQucHJvdG90eXBlLmNvcHlGb250U3R5bGVzID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICBpZiAoIXRoaXMuYW5jaG9yIHx8ICF0aGlzLmNvcHlBbmNob3JTdHlsZXMpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmRvbVNlcnZpY2UuZ2V0Rm9udFN0eWxlcyh0aGlzLmFuY2hvcilcbiAgICAgICAgICAgIC5mb3JFYWNoKGZ1bmN0aW9uIChzKSB7IHJldHVybiBfdGhpcy5zZXRDb250YWluZXJTdHlsZShzLmtleSwgcy52YWx1ZSk7IH0pO1xuICAgIH07XG4gICAgUG9wdXBDb21wb25lbnQucHJvdG90eXBlLnVwZGF0ZUZpeGVkQ2xhc3MgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBhY3Rpb24gPSB0aGlzLnBvc2l0aW9uTW9kZSA9PT0gJ2ZpeGVkJyA/ICdhZGRDbGFzcycgOiAncmVtb3ZlQ2xhc3MnO1xuICAgICAgICB0aGlzLl9yZW5kZXJlclthY3Rpb25dKHRoaXMuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQsIEFOSU1BVElPTl9DT05UQUlORVJfRklYRUQpO1xuICAgIH07XG4gICAgUG9wdXBDb21wb25lbnQucHJvdG90eXBlLnNldENvbnRhaW5lclN0eWxlID0gZnVuY3Rpb24gKG5hbWUsIHZhbHVlKSB7XG4gICAgICAgIHRoaXMuX3JlbmRlcmVyLnNldFN0eWxlKHRoaXMuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQsIG5hbWUsIHZhbHVlKTtcbiAgICB9O1xuICAgIFBvcHVwQ29tcG9uZW50LnByb3RvdHlwZS51bnN1YnNjcmliZVJlcG9zaXRpb24gPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmICh0aGlzLnJlcG9zaXRpb25TdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMucmVwb3NpdGlvblN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBQb3B1cENvbXBvbmVudC5kZWNvcmF0b3JzID0gW1xuICAgICAgICB7IHR5cGU6IENvbXBvbmVudCwgYXJnczogW3tcbiAgICAgICAgICAgICAgICAgICAgZXhwb3J0QXM6ICdrZW5kby1wb3B1cCcsXG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGVyczogW0FsaWduU2VydmljZSwgQW5pbWF0aW9uU2VydmljZSwgRE9NU2VydmljZSwgUG9zaXRpb25TZXJ2aWNlLCBSZXNpemVTZXJ2aWNlLCBTY3JvbGxhYmxlU2VydmljZV0sXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdG9yOiAna2VuZG8tcG9wdXAnLFxuICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZTogXCJcXG4gICAgICAgIDxkaXYgY2xhc3M9XFxcImstcG9wdXBcXFwiIFtuZ0NsYXNzXT1cXFwicG9wdXBDbGFzc1xcXCIgI2NvbnRhaW5lcj5cXG4gICAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XFxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cXFwiY29udGVudFxcXCIgW25nSWZdPVxcXCJjb250ZW50XFxcIj48L25nLXRlbXBsYXRlPlxcbiAgICAgICAgICAgIDxrZW5kby1yZXNpemUtc2Vuc29yIFtyYXRlTGltaXRdPVxcXCIxMDBcXFwiIChyZXNpemUpPVxcXCJvblJlc2l6ZSgpXFxcIj5cXG4gICAgICAgICAgICA8L2tlbmRvLXJlc2l6ZS1zZW5zb3I+XFxuICAgICAgICA8L2Rpdj5cXG4gICAgIFwiXG4gICAgICAgICAgICAgICAgfSxdIH0sXG4gICAgXTtcbiAgICAvKiogQG5vY29sbGFwc2UgKi9cbiAgICBQb3B1cENvbXBvbmVudC5jdG9yUGFyYW1ldGVycyA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIFtcbiAgICAgICAgeyB0eXBlOiBFbGVtZW50UmVmIH0sXG4gICAgICAgIHsgdHlwZTogQWxpZ25TZXJ2aWNlIH0sXG4gICAgICAgIHsgdHlwZTogRE9NU2VydmljZSB9LFxuICAgICAgICB7IHR5cGU6IFBvc2l0aW9uU2VydmljZSB9LFxuICAgICAgICB7IHR5cGU6IFJlc2l6ZVNlcnZpY2UgfSxcbiAgICAgICAgeyB0eXBlOiBTY3JvbGxhYmxlU2VydmljZSB9LFxuICAgICAgICB7IHR5cGU6IEFuaW1hdGlvblNlcnZpY2UgfSxcbiAgICAgICAgeyB0eXBlOiBSZW5kZXJlcjIgfSxcbiAgICAgICAgeyB0eXBlOiBOZ1pvbmUgfVxuICAgIF07IH07XG4gICAgUG9wdXBDb21wb25lbnQucHJvcERlY29yYXRvcnMgPSB7XG4gICAgICAgIGFuaW1hdGU6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBhbmNob3I6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBhbmNob3JBbGlnbjogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGNvbGxpc2lvbjogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHBvcHVwQWxpZ246IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICBjb3B5QW5jaG9yU3R5bGVzOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgcG9wdXBDbGFzczogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHBvc2l0aW9uTW9kZTogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIG9mZnNldDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIG1hcmdpbjogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGFuY2hvclZpZXdwb3J0TGVhdmU6IFt7IHR5cGU6IE91dHB1dCB9XSxcbiAgICAgICAgY2xvc2U6IFt7IHR5cGU6IE91dHB1dCB9XSxcbiAgICAgICAgb3BlbjogW3sgdHlwZTogT3V0cHV0IH1dLFxuICAgICAgICBwb3NpdGlvbkNoYW5nZTogW3sgdHlwZTogT3V0cHV0IH1dLFxuICAgICAgICBjb250ZW50Q29udGFpbmVyOiBbeyB0eXBlOiBWaWV3Q2hpbGQsIGFyZ3M6IFsnY29udGFpbmVyJyxdIH1dLFxuICAgICAgICByZXNpemVTZW5zb3I6IFt7IHR5cGU6IFZpZXdDaGlsZCwgYXJnczogW1Jlc2l6ZVNlbnNvckNvbXBvbmVudCxdIH1dXG4gICAgfTtcbiAgICByZXR1cm4gUG9wdXBDb21wb25lbnQ7XG59KCkpO1xuXG52YXIgcmVtb3ZlRWxlbWVudCA9IGZ1bmN0aW9uIChlbGVtZW50KSB7XG4gICAgaWYgKGVsZW1lbnQgJiYgZWxlbWVudC5wYXJlbnROb2RlKSB7XG4gICAgICAgIGVsZW1lbnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChlbGVtZW50KTtcbiAgICB9XG59O1xuLyoqXG4gKiBVc2VkIHRvIGluamVjdCB0aGUgUG9wdXAgY29udGFpbmVyLiBJZiBub3QgcHJvdmlkZWQsIHRoZSBmaXJzdCByb290IGNvbXBvbmVudCBvZlxuICogdGhlIGFwcGxpY2F0aW9uIGlzIHVzZWQuXG4gKlxuICogPiBUaGUgYFBPUFVQX0NPTlRBSU5FUmAgY2FuIGJlIHVzZWQgb25seSB3aXRoIHRoZSBbYFBvcHVwU2VydmljZWBdKHslIHNsdWcgc2VydmljZV9wb3B1cCAlfSkgY2xhc3MuXG4gKlxuICogQGV4YW1wbGVcbiAqXG4gKiBgYGB0cy1uby1ydW5cbiAqIC8vIEltcG9ydCB0aGUgUG9wdXAgbW9kdWxlXG4gKiBpbXBvcnQgeyBQb3B1cE1vZHVsZSwgUE9QVVBfQ09OVEFJTkVSIH0gZnJvbSAnQHByb2dyZXNzL2tlbmRvLWFuZ3VsYXItcG9wdXAnO1xuICpcbiAqIC8vIFRoZSBicm93c2VyIHBsYXRmb3JtIHdpdGggYSBjb21waWxlclxuICogaW1wb3J0IHsgcGxhdGZvcm1Ccm93c2VyRHluYW1pYyB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXItZHluYW1pYyc7XG4gKlxuICogaW1wb3J0IHsgRWxlbWVudFJlZiwgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbiAqXG4gKiAvLyBJbXBvcnQgdGhlIGFwcCBjb21wb25lbnRcbiAqIGltcG9ydCB7IEFwcENvbXBvbmVudCB9IGZyb20gJy4vYXBwLmNvbXBvbmVudCc7XG4gKlxuICogLy8gRGVmaW5lIHRoZSBhcHAgbW9kdWxlXG4gKiBfQE5nTW9kdWxlKHtcbiAqICAgICBkZWNsYXJhdGlvbnM6IFtBcHBDb21wb25lbnRdLCAvLyBkZWNsYXJlIGFwcCBjb21wb25lbnRcbiAqICAgICBpbXBvcnRzOiAgICAgIFtCcm93c2VyTW9kdWxlLCBQb3B1cE1vZHVsZV0sIC8vIGltcG9ydCBQb3B1cCBtb2R1bGVcbiAqICAgICBib290c3RyYXA6ICAgIFtBcHBDb21wb25lbnRdLFxuICogICAgIHByb3ZpZGVyczogW3tcbiAqICAgICAgIHByb3ZpZGU6IFBPUFVQX0NPTlRBSU5FUixcbiAqICAgICAgIHVzZUZhY3Rvcnk6ICgpID0+IHtcbiAqICAgICAgICAgIC8vcmV0dXJuIHRoZSBjb250YWluZXIgRWxlbWVudFJlZiwgd2hlcmUgdGhlIHBvcHVwIHdpbGwgYmUgaW5qZWN0ZWRcbiAqICAgICAgICAgIHJldHVybiB7IG5hdGl2ZUVsZW1lbnQ6IGRvY3VtZW50LmJvZHkgfSBhcyBFbGVtZW50UmVmO1xuICogICAgICAgfVxuICogICAgIH1dXG4gKiB9KVxuICogZXhwb3J0IGNsYXNzIEFwcE1vZHVsZSB7fVxuICpcbiAqIC8vIENvbXBpbGUgYW5kIGxhdW5jaCB0aGUgbW9kdWxlXG4gKiBwbGF0Zm9ybUJyb3dzZXJEeW5hbWljKCkuYm9vdHN0cmFwTW9kdWxlKEFwcE1vZHVsZSk7XG4gKiBgYGBcbiAqL1xudmFyIFBPUFVQX0NPTlRBSU5FUiA9IG5ldyBJbmplY3Rpb25Ub2tlbignUG9wdXAgQ29udGFpbmVyJyk7XG4vKipcbiAqIEEgc2VydmljZSBmb3Igb3BlbmluZyBQb3B1cCBjb21wb25lbnRzIGR5bmFtaWNhbGx5XG4gKiAoW3NlZSBleGFtcGxlXSh7JSBzbHVnIHNlcnZpY2VfcG9wdXAgJX0pKS5cbiAqXG4gKiBAZXhwb3J0XG4gKiBAY2xhc3MgUG9wdXBTZXJ2aWNlXG4gKi9cbnZhciBQb3B1cFNlcnZpY2UgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gUG9wdXBTZXJ2aWNlKGFwcGxpY2F0aW9uUmVmLCBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIGluamVjdG9yLCBjb250YWluZXIpIHtcbiAgICAgICAgdGhpcy5hcHBsaWNhdGlvblJlZiA9IGFwcGxpY2F0aW9uUmVmO1xuICAgICAgICB0aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlciA9IGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjtcbiAgICAgICAgdGhpcy5pbmplY3RvciA9IGluamVjdG9yO1xuICAgICAgICB0aGlzLmNvbnRhaW5lciA9IGNvbnRhaW5lcjtcbiAgICB9XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFBvcHVwU2VydmljZS5wcm90b3R5cGUsIFwicm9vdFZpZXdDb250YWluZXJcIiwge1xuICAgICAgICAvKipcbiAgICAgICAgICogR2V0cyB0aGUgcm9vdCB2aWV3IGNvbnRhaW5lciBpbnRvIHdoaWNoIHRoZSBjb21wb25lbnQgd2lsbCBiZSBpbmplY3RlZC5cbiAgICAgICAgICpcbiAgICAgICAgICogQHJldHVybnMge0NvbXBvbmVudFJlZjxhbnk+fVxuICAgICAgICAgKi9cbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2Jsb2IvNC4wLngvcGFja2FnZXMvY29yZS9zcmMvYXBwbGljYXRpb25fcmVmLnRzI0w1NzFcbiAgICAgICAgICAgIHZhciByb290Q29tcG9uZW50cyA9IHRoaXMuYXBwbGljYXRpb25SZWYuY29tcG9uZW50cyB8fCBbXTtcbiAgICAgICAgICAgIGlmIChyb290Q29tcG9uZW50c1swXSkge1xuICAgICAgICAgICAgICAgIHJldHVybiByb290Q29tcG9uZW50c1swXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlxcbiAgICAgICAgICAgIFZpZXcgQ29udGFpbmVyIG5vdCBmb3VuZCEgSW5qZWN0IHRoZSBQT1BVUF9DT05UQUlORVIgb3IgZGVmaW5lIGEgc3BlY2lmaWMgVmlld0NvbnRhaW5lclJlZiB2aWEgdGhlIGFwcGVuZFRvIG9wdGlvbi5cXG4gICAgICAgICAgICBTZWUgaHR0cDovL3d3dy50ZWxlcmlrLmNvbS9rZW5kby1hbmd1bGFyLXVpL2NvbXBvbmVudHMvcG9wdXAvYXBpL1BPUFVQX0NPTlRBSU5FUi8gZm9yIG1vcmUgZGV0YWlscy5cXG4gICAgICAgIFwiKTtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFBvcHVwU2VydmljZS5wcm90b3R5cGUsIFwicm9vdFZpZXdDb250YWluZXJOb2RlXCIsIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFNldHMgb3IgZ2V0cyB0aGUgSFRNTCBlbGVtZW50IG9mIHRoZSByb290IGNvbXBvbmVudCBjb250YWluZXIuXG4gICAgICAgICAqXG4gICAgICAgICAqIEByZXR1cm5zIHtIVE1MRWxlbWVudH1cbiAgICAgICAgICovXG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29udGFpbmVyID8gdGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudCA6IHRoaXMuZ2V0Q29tcG9uZW50Um9vdE5vZGUodGhpcy5yb290Vmlld0NvbnRhaW5lcik7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIC8qKlxuICAgICAqIE9wZW5zIGEgUG9wdXAgY29tcG9uZW50LiBDcmVhdGVkIFBvcHVwcyBhcmUgbW91bnRlZFxuICAgICAqIGluIHRoZSBET00gZGlyZWN0bHkgaW4gdGhlIHJvb3QgYXBwbGljYXRpb24gY29tcG9uZW50LlxuICAgICAqXG4gICAgICogQHBhcmFtIHtQb3B1cFNldHRpbmdzfSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgd2hpY2ggZGVmaW5lIHRoZSBQb3B1cC5cbiAgICAgKiBAcmV0dXJucyB7Q29tcG9uZW50UmVmPFBvcHVwQ29tcG9uZW50Pn0gLSBBIHJlZmVyZW5jZSB0byB0aGUgUG9wdXAgb2JqZWN0LlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIGBgYHRzLW5vLXJ1blxuICAgICAqIF9AQ29tcG9uZW50KHtcbiAgICAgKiAgIHNlbGVjdG9yOiAnbXktYXBwJyxcbiAgICAgKiAgIHRlbXBsYXRlOiBgXG4gICAgICogICAgIDxuZy10ZW1wbGF0ZSAjdGVtcGxhdGU+XG4gICAgICogICAgICBQb3B1cCBjb250ZW50XG4gICAgICogICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICogICAgIDxidXR0b24gI2FuY2hvciBrZW5kb0J1dHRvbiAoY2xpY2spPVwib3BlbihhbmNob3IsIHRlbXBsYXRlKVwiPk9wZW48L2J1dHRvbj5cbiAgICAgKiAgIGBcbiAgICAgKiB9KVxuICAgICAqIGV4cG9ydCBjbGFzcyBBcHBDb21wb25lbnQge1xuICAgICAqICAgICBwdWJsaWMgcG9wdXBSZWY6IFBvcHVwUmVmO1xuICAgICAqXG4gICAgICogICAgIGNvbnN0cnVjdG9yKCBwcml2YXRlIHBvcHVwU2VydmljZTogUG9wdXBTZXJ2aWNlICkge31cbiAgICAgKlxuICAgICAqICAgICBwdWJsaWMgb3BlbihhbmNob3I6IEVsZW1lbnRSZWYsIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+KTogdm9pZCB7XG4gICAgICogICAgICAgICBpZiAodGhpcy5wb3B1cFJlZikge1xuICAgICAqICAgICAgICAgICAgICB0aGlzLnBvcHVwUmVmLmNsb3NlKCk7XG4gICAgICogICAgICAgICAgICAgIHRoaXMucG9wdXBSZWYgPSBudWxsO1xuICAgICAqICAgICAgICAgICAgICByZXR1cm47XG4gICAgICogICAgICAgICB9XG4gICAgICpcbiAgICAgKiAgICAgICAgIHRoaXMucG9wdXBSZWYgPSB0aGlzLnBvcHVwU2VydmljZS5vcGVuKHtcbiAgICAgKiAgICAgICAgICAgYW5jaG9yOiBhbmNob3IsXG4gICAgICogICAgICAgICAgIGNvbnRlbnQ6IHRlbXBsYXRlXG4gICAgICogICAgICAgICB9KTtcbiAgICAgKiAgICAgfVxuICAgICAqIH1cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBQb3B1cFNlcnZpY2UucHJvdG90eXBlLm9wZW4gPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7IG9wdGlvbnMgPSB7fTsgfVxuICAgICAgICB2YXIgX2EgPSB0aGlzLmNvbnRlbnRGcm9tKG9wdGlvbnMuY29udGVudCksIGNvbXBvbmVudCA9IF9hLmNvbXBvbmVudCwgbm9kZXMgPSBfYS5ub2RlcztcbiAgICAgICAgdmFyIHBvcHVwQ29tcG9uZW50UmVmID0gdGhpcy5hcHBlbmRQb3B1cChub2Rlcywgb3B0aW9ucy5hcHBlbmRUbyk7XG4gICAgICAgIHZhciBwb3B1cEluc3RhbmNlID0gcG9wdXBDb21wb25lbnRSZWYuaW5zdGFuY2U7XG4gICAgICAgIHRoaXMucHJvamVjdENvbXBvbmVudElucHV0cyhwb3B1cENvbXBvbmVudFJlZiwgb3B0aW9ucyk7XG4gICAgICAgIHBvcHVwQ29tcG9uZW50UmVmLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgaWYgKGNvbXBvbmVudCkge1xuICAgICAgICAgICAgY29tcG9uZW50LmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgcG9wdXBFbGVtZW50ID0gdGhpcy5nZXRDb21wb25lbnRSb290Tm9kZShwb3B1cENvbXBvbmVudFJlZik7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBjbG9zZTogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIGlmIChjb21wb25lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50LmRlc3Ryb3koKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcG9wdXBDb21wb25lbnRSZWYuZGVzdHJveSgpO1xuICAgICAgICAgICAgICAgIC8vIEFuZ3VsYXIgd2lsbCBub3QgcmVtb3ZlIHRoZSBlbGVtZW50IHVubGVzcyB0aGUgY2hhbmdlIGRldGVjdGlvbiBpcyB0cmlnZ2VyZWRcbiAgICAgICAgICAgICAgICByZW1vdmVFbGVtZW50KHBvcHVwRWxlbWVudCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY29udGVudDogY29tcG9uZW50LFxuICAgICAgICAgICAgcG9wdXA6IHBvcHVwQ29tcG9uZW50UmVmLFxuICAgICAgICAgICAgcG9wdXBBbmNob3JWaWV3cG9ydExlYXZlOiBwb3B1cEluc3RhbmNlLmFuY2hvclZpZXdwb3J0TGVhdmUsXG4gICAgICAgICAgICBwb3B1cENsb3NlOiBwb3B1cEluc3RhbmNlLmNsb3NlLFxuICAgICAgICAgICAgcG9wdXBFbGVtZW50OiBwb3B1cEVsZW1lbnQsXG4gICAgICAgICAgICBwb3B1cE9wZW46IHBvcHVwSW5zdGFuY2Uub3BlbixcbiAgICAgICAgICAgIHBvcHVwUG9zaXRpb25DaGFuZ2U6IHBvcHVwSW5zdGFuY2UucG9zaXRpb25DaGFuZ2VcbiAgICAgICAgfTtcbiAgICB9O1xuICAgIFBvcHVwU2VydmljZS5wcm90b3R5cGUuYXBwZW5kUG9wdXAgPSBmdW5jdGlvbiAobm9kZXMsIGNvbnRhaW5lcikge1xuICAgICAgICB2YXIgcG9wdXBDb21wb25lbnRSZWYgPSB0aGlzLmNyZWF0ZUNvbXBvbmVudChQb3B1cENvbXBvbmVudCwgbm9kZXMsIGNvbnRhaW5lcik7XG4gICAgICAgIGlmICghY29udGFpbmVyKSB7XG4gICAgICAgICAgICB0aGlzLnJvb3RWaWV3Q29udGFpbmVyTm9kZS5hcHBlbmRDaGlsZCh0aGlzLmdldENvbXBvbmVudFJvb3ROb2RlKHBvcHVwQ29tcG9uZW50UmVmKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHBvcHVwQ29tcG9uZW50UmVmO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgSFRNTCBlbGVtZW50IGZvciBhIGNvbXBvbmVudCByZWZlcmVuY2UuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge0NvbXBvbmVudFJlZjxhbnk+fSBjb21wb25lbnRSZWZcbiAgICAgKiBAcmV0dXJucyB7SFRNTEVsZW1lbnR9XG4gICAgICovXG4gICAgUG9wdXBTZXJ2aWNlLnByb3RvdHlwZS5nZXRDb21wb25lbnRSb290Tm9kZSA9IGZ1bmN0aW9uIChjb21wb25lbnRSZWYpIHtcbiAgICAgICAgcmV0dXJuIGNvbXBvbmVudFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50O1xuICAgIH07XG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgYENvbXBvbmVudEZhY3RvcnlgIGluc3RhbmNlIGJ5IGl0cyB0eXBlLlxuICAgICAqXG4gICAgICogQHBhcmFtIHsqfSBjb21wb25lbnRDbGFzc1xuICAgICAqIEBwYXJhbSB7Kn0gbm9kZXNcbiAgICAgKiBAcmV0dXJucyB7Q29tcG9uZW50UmVmPGFueT59XG4gICAgICovXG4gICAgUG9wdXBTZXJ2aWNlLnByb3RvdHlwZS5nZXRDb21wb25lbnRGYWN0b3J5ID0gZnVuY3Rpb24gKGNvbXBvbmVudENsYXNzKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShjb21wb25lbnRDbGFzcyk7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgY29tcG9uZW50IHJlZmVyZW5jZSBmcm9tIGEgYENvbXBvbmVudGAgdHlwZSBjbGFzcy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7Kn0gY29tcG9uZW50Q2xhc3NcbiAgICAgKiBAcGFyYW0geyp9IG5vZGVzXG4gICAgICogQHJldHVybnMge0NvbXBvbmVudFJlZjxhbnk+fVxuICAgICAqL1xuICAgIFBvcHVwU2VydmljZS5wcm90b3R5cGUuY3JlYXRlQ29tcG9uZW50ID0gZnVuY3Rpb24gKGNvbXBvbmVudENsYXNzLCBub2RlcywgY29udGFpbmVyKSB7XG4gICAgICAgIHZhciBmYWN0b3J5ID0gdGhpcy5nZXRDb21wb25lbnRGYWN0b3J5KGNvbXBvbmVudENsYXNzKTtcbiAgICAgICAgaWYgKGNvbnRhaW5lcikge1xuICAgICAgICAgICAgcmV0dXJuIGNvbnRhaW5lci5jcmVhdGVDb21wb25lbnQoZmFjdG9yeSwgdW5kZWZpbmVkLCB0aGlzLmluamVjdG9yLCBub2Rlcyk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB2YXIgY29tcG9uZW50ID0gZmFjdG9yeS5jcmVhdGUodGhpcy5pbmplY3Rvciwgbm9kZXMpO1xuICAgICAgICAgICAgdGhpcy5hcHBsaWNhdGlvblJlZi5hdHRhY2hWaWV3KGNvbXBvbmVudC5ob3N0Vmlldyk7XG4gICAgICAgICAgICByZXR1cm4gY29tcG9uZW50O1xuICAgICAgICB9XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBQcm9qZWN0cyB0aGUgaW5wdXRzIG9uIHRoZSBjb21wb25lbnQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge0NvbXBvbmVudFJlZjxhbnk+fSBjb21wb25lbnRcbiAgICAgKiBAcGFyYW0geyp9IG9wdGlvbnNcbiAgICAgKiBAcmV0dXJucyB7Q29tcG9uZW50UmVmPGFueT59XG4gICAgICovXG4gICAgUG9wdXBTZXJ2aWNlLnByb3RvdHlwZS5wcm9qZWN0Q29tcG9uZW50SW5wdXRzID0gZnVuY3Rpb24gKGNvbXBvbmVudCwgb3B0aW9ucykge1xuICAgICAgICBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhvcHRpb25zKVxuICAgICAgICAgICAgLmZpbHRlcihmdW5jdGlvbiAocHJvcCkgeyByZXR1cm4gcHJvcCAhPT0gJ2NvbnRlbnQnIHx8IG9wdGlvbnMuY29udGVudCBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmOyB9KVxuICAgICAgICAgICAgLm1hcChmdW5jdGlvbiAocHJvcCkge1xuICAgICAgICAgICAgY29tcG9uZW50Lmluc3RhbmNlW3Byb3BdID0gb3B0aW9uc1twcm9wXTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBjb21wb25lbnQ7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBjb21wb25lbnQgYW5kIHRoZSBub2RlcyB0byBhcHBlbmQgZnJvbSB0aGUgYGNvbnRlbnRgIG9wdGlvbi5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7Kn0gY29udGVudFxuICAgICAqIEByZXR1cm5zIHthbnl9XG4gICAgICovXG4gICAgUG9wdXBTZXJ2aWNlLnByb3RvdHlwZS5jb250ZW50RnJvbSA9IGZ1bmN0aW9uIChjb250ZW50KSB7XG4gICAgICAgIGlmICghY29udGVudCB8fCBjb250ZW50IGluc3RhbmNlb2YgVGVtcGxhdGVSZWYpIHtcbiAgICAgICAgICAgIHJldHVybiB7IGNvbXBvbmVudDogbnVsbCwgbm9kZXM6IFtbXV0gfTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgY29tcG9uZW50ID0gdGhpcy5jcmVhdGVDb21wb25lbnQoY29udGVudCk7XG4gICAgICAgIHZhciBub2RlcyA9IGNvbXBvbmVudCA/IFtjb21wb25lbnQubG9jYXRpb24ubmF0aXZlRWxlbWVudF0gOiBbXTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGNvbXBvbmVudDogY29tcG9uZW50LFxuICAgICAgICAgICAgbm9kZXM6IFtcbiAgICAgICAgICAgICAgICBub2RlcyAvLyA8bmctY29udGVudD5cbiAgICAgICAgICAgIF1cbiAgICAgICAgfTtcbiAgICB9O1xuICAgIFBvcHVwU2VydmljZS5kZWNvcmF0b3JzID0gW1xuICAgICAgICB7IHR5cGU6IEluamVjdGFibGUgfSxcbiAgICBdO1xuICAgIC8qKiBAbm9jb2xsYXBzZSAqL1xuICAgIFBvcHVwU2VydmljZS5jdG9yUGFyYW1ldGVycyA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIFtcbiAgICAgICAgeyB0eXBlOiBBcHBsaWNhdGlvblJlZiB9LFxuICAgICAgICB7IHR5cGU6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlciB9LFxuICAgICAgICB7IHR5cGU6IEluamVjdG9yIH0sXG4gICAgICAgIHsgdHlwZTogRWxlbWVudFJlZiwgZGVjb3JhdG9yczogW3sgdHlwZTogSW5qZWN0LCBhcmdzOiBbUE9QVVBfQ09OVEFJTkVSLF0gfSwgeyB0eXBlOiBPcHRpb25hbCB9XSB9XG4gICAgXTsgfTtcbiAgICByZXR1cm4gUG9wdXBTZXJ2aWNlO1xufSgpKTtcblxudmFyIFBPUFVQX0RJUkVDVElWRVMgPSBbUG9wdXBDb21wb25lbnRdO1xuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBbTmdNb2R1bGVdKHt7IHNpdGUuZGF0YS51cmxzLmFuZ3VsYXJbJ25nbW9kdWxlYXBpJ10gfX0pXG4gKiBkZWZpbml0aW9uIGZvciB0aGUgUG9wdXAgY29tcG9uZW50LlxuICpcbiAqIEBleGFtcGxlXG4gKlxuICogYGBgdHMtbm8tcnVuXG4gKiAvLyBJbXBvcnQgdGhlIFBvcHVwIG1vZHVsZVxuICogaW1wb3J0IHsgUG9wdXBNb2R1bGUgfSBmcm9tICdAcHJvZ3Jlc3Mva2VuZG8tYW5ndWxhci1wb3B1cCc7XG4gKlxuICogLy8gVGhlIGJyb3dzZXIgcGxhdGZvcm0gd2l0aCBhIGNvbXBpbGVyXG4gKiBpbXBvcnQgeyBwbGF0Zm9ybUJyb3dzZXJEeW5hbWljIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlci1keW5hbWljJztcbiAqXG4gKiBpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuICpcbiAqIC8vIEltcG9ydCB0aGUgYXBwIGNvbXBvbmVudFxuICogaW1wb3J0IHsgQXBwQ29tcG9uZW50IH0gZnJvbSAnLi9hcHAuY29tcG9uZW50JztcbiAqXG4gKiAvLyBEZWZpbmUgdGhlIGFwcCBtb2R1bGVcbiAqIF9ATmdNb2R1bGUoe1xuICogICAgIGRlY2xhcmF0aW9uczogW0FwcENvbXBvbmVudF0sIC8vIGRlY2xhcmUgYXBwIGNvbXBvbmVudFxuICogICAgIGltcG9ydHM6ICAgICAgW0Jyb3dzZXJNb2R1bGUsIFBvcHVwTW9kdWxlXSwgLy8gaW1wb3J0IFBvcHVwIG1vZHVsZVxuICogICAgIGJvb3RzdHJhcDogICAgW0FwcENvbXBvbmVudF1cbiAqIH0pXG4gKiBleHBvcnQgY2xhc3MgQXBwTW9kdWxlIHt9XG4gKlxuICogLy8gQ29tcGlsZSBhbmQgbGF1bmNoIHRoZSBtb2R1bGVcbiAqIHBsYXRmb3JtQnJvd3NlckR5bmFtaWMoKS5ib290c3RyYXBNb2R1bGUoQXBwTW9kdWxlKTtcbiAqXG4gKiBgYGBcbiAqL1xudmFyIFBvcHVwTW9kdWxlID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIFBvcHVwTW9kdWxlKCkge1xuICAgIH1cbiAgICBQb3B1cE1vZHVsZS5kZWNvcmF0b3JzID0gW1xuICAgICAgICB7IHR5cGU6IE5nTW9kdWxlLCBhcmdzOiBbe1xuICAgICAgICAgICAgICAgICAgICBkZWNsYXJhdGlvbnM6IFtQT1BVUF9ESVJFQ1RJVkVTXSxcbiAgICAgICAgICAgICAgICAgICAgZW50cnlDb21wb25lbnRzOiBbUE9QVVBfRElSRUNUSVZFU10sXG4gICAgICAgICAgICAgICAgICAgIGV4cG9ydHM6IFtQT1BVUF9ESVJFQ1RJVkVTXSxcbiAgICAgICAgICAgICAgICAgICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUmVzaXplU2Vuc29yTW9kdWxlXSxcbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZXJzOiBbUG9wdXBTZXJ2aWNlXVxuICAgICAgICAgICAgICAgIH0sXSB9LFxuICAgIF07XG4gICAgcmV0dXJuIFBvcHVwTW9kdWxlO1xufSgpKTtcblxuLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgeyBBbGlnblNlcnZpY2UsIEFuaW1hdGlvblNlcnZpY2UsIERPTVNlcnZpY2UsIFBvc2l0aW9uU2VydmljZSwgUmVzaXplU2VydmljZSwgU2Nyb2xsYWJsZVNlcnZpY2UsIFBvcHVwU2VydmljZSwgUE9QVVBfQ09OVEFJTkVSLCBQb3B1cENvbXBvbmVudCwgUG9wdXBNb2R1bGUsIFNDQUxFIH07XG4iXX0= + + }), + + "./node_modules/@progress/kendo-angular-tooltip/__ivy_ngcc__/dist/fesm5/index.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "LocalizedMessagesDirective", function() { return LocalizedMessagesDirective; }); + __webpack_require__.d(__webpack_exports__, "TooltipContentComponent", function() { return TooltipContentComponent; }); + __webpack_require__.d(__webpack_exports__, "TooltipDirective", function() { return TooltipDirective; }); + __webpack_require__.d(__webpack_exports__, "TooltipModule", function() { return TooltipModule; }); + __webpack_require__.d(__webpack_exports__, "TooltipSettings", function() { return TooltipSettings; }); + __webpack_require__.d(__webpack_exports__, "TOOLTIP_SETTINGS", function() { return TOOLTIP_SETTINGS; }); + var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( 100003); + var _angular_core__WEBPACK_IMPORTED_MODULE_0___default = __webpack_require__.n(_angular_core__WEBPACK_IMPORTED_MODULE_0__); + var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( 100007); + var rxjs_operators__WEBPACK_IMPORTED_MODULE_1___default = __webpack_require__.n(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__); + var rxjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( 100006); + var rxjs__WEBPACK_IMPORTED_MODULE_2___default = __webpack_require__.n(rxjs__WEBPACK_IMPORTED_MODULE_2__); + var _progress_kendo_angular_popup__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-angular-popup/__ivy_ngcc__/dist/fesm5/index.js"); + var _progress_kendo_angular_l10n__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-angular-l10n/__ivy_ngcc__/dist/fesm5/index.js"); + var _angular_common__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( 100011); + var _angular_common__WEBPACK_IMPORTED_MODULE_5___default = __webpack_require__.n(_angular_common__WEBPACK_IMPORTED_MODULE_5__); + var tslib__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__( 100002); + var tslib__WEBPACK_IMPORTED_MODULE_6___default = __webpack_require__.n(tslib__WEBPACK_IMPORTED_MODULE_6__); + + + + + + + + + + + + + + + + +var I18N_0; +if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { + + var MSG_EXTERNAL_1245147641110884896$$DIST_FESM5_INDEX_JS_1 = goog.getMsg("Close"); + I18N_0 = MSG_EXTERNAL_1245147641110884896$$DIST_FESM5_INDEX_JS_1; +} +else { + I18N_0 = $localize(tslib__WEBPACK_IMPORTED_MODULE_6__["__makeTemplateObject"]([":kendo.tooltip.closeTitle|The title of the close button\u241Fde53b3f74f2d4a81b5c3f54c0ac1269cb017bd4f\u241F1245147641110884896:Close"], [":kendo.tooltip.closeTitle|The title of the close button\u241Fde53b3f74f2d4a81b5c3f54c0ac1269cb017bd4f\u241F1245147641110884896:Close"])); +} +var _c2 = ["closeTitle", I18N_0]; +function TooltipContentComponent_div_3_ng_template_1_Template(rf, ctx) { } +var _c3 = function (a0, a1) { return { $implicit: a0, anchor: a1 }; }; +function TooltipContentComponent_div_3_Template(rf, ctx) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "div", 7); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](1, TooltipContentComponent_div_3_ng_template_1_Template, 0, 0, "ng-template", 3); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); +} if (rf & 2) { + var ctx_r0 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngIf", ctx_r0.titleTemplate)("ngTemplateOutlet", ctx_r0.titleTemplate)("ngTemplateOutletContext", _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵpureFunction2"](3, _c3, ctx_r0.anchor, ctx_r0.anchor)); +} } +function TooltipContentComponent_ng_template_4_Template(rf, ctx) { } +function TooltipContentComponent_ng_template_5_Template(rf, ctx) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](0); +} if (rf & 2) { + var ctx_r2 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtextInterpolate1"](" ", ctx_r2.templateString, " "); +} } +function TooltipContentComponent_div_6_Template(rf, ctx) { if (rf & 1) { + var _r7 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵgetCurrentView"](); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "div", 8); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵlistener"]("click", function TooltipContentComponent_div_6_Template_div_click_0_listener($event) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵrestoreView"](_r7); var ctx_r6 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); return ctx_r6.onCloseClick($event); }); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](1, "a", 9); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); +} if (rf & 2) { + var ctx_r3 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵattribute"]("title", ctx_r3.closeButtonTitle); +} } +function TooltipContentComponent_div_7_Template(rf, ctx) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](0, "div", 10); +} if (rf & 2) { + var ctx_r4 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngClass", ctx_r4.calloutPositionClass()); +} } +var TOOLTIP_SETTINGS = new _angular_core__WEBPACK_IMPORTED_MODULE_0__["InjectionToken"]('kendo-ui-tooltip-settings'); + +var TooltipSettings = (function () { + function TooltipSettings() { + } +TooltipSettings.ɵfac = function TooltipSettings_Factory(t) { return new (t || TooltipSettings)(); }; +TooltipSettings.ɵprov = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"]({ token: TooltipSettings, factory: function (t) { return TooltipSettings.ɵfac(t); } }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](TooltipSettings, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Injectable"] + }], function () { return []; }, null); })(); + return TooltipSettings; +}()); + + +function align(position, offset) { + var anchorAlign = {}; + var popupAlign = {}; + var popupMargin = {}; + switch (position) { + case 'top': + anchorAlign = { horizontal: 'center', vertical: 'top' }; + popupAlign = { horizontal: 'center', vertical: 'bottom' }; + popupMargin = { horizontal: 0, vertical: offset }; + break; + case 'bottom': + anchorAlign = { horizontal: 'center', vertical: 'bottom' }; + popupAlign = { horizontal: 'center', vertical: 'top' }; + popupMargin = { horizontal: 0, vertical: offset }; + break; + case 'right': + anchorAlign = { horizontal: 'right', vertical: 'center' }; + popupAlign = { horizontal: 'left', vertical: 'center' }; + popupMargin = { horizontal: offset, vertical: 0 }; + break; + case 'left': + anchorAlign = { horizontal: 'left', vertical: 'center' }; + popupAlign = { horizontal: 'right', vertical: 'center' }; + popupMargin = { horizontal: offset, vertical: 0 }; + break; + default: break; + } + return { + anchorAlign: anchorAlign, + popupAlign: popupAlign, + popupMargin: popupMargin + }; +} + +function collision(inputcollision, position) { + if (inputcollision) { + return inputcollision; + } + if (position === 'top' || position === 'bottom') { + return { horizontal: 'fit', vertical: 'flip' }; + } + return { horizontal: 'flip', vertical: 'fit' }; +} +function isDocumentNode(container) { + return container.nodeType === 9; +} + +function closest(element, selector) { + if (element.closest) { + return element.closest(selector); + } + var matches = Element.prototype.matches ? + function (el, sel) { return el.matches(sel); } + : function (el, sel) { return el.msMatchesSelector(sel); }; + var node = element; + while (node && !isDocumentNode(node)) { + if (matches(node, selector)) { + return node; + } + node = node.parentNode; + } +} + +function contains(container, child) { + if (!container) { + return false; + } + if (isDocumentNode(container)) { + return false; + } + if (container.contains) { + return container.contains(child); + } + if (container.compareDocumentPosition) { + // tslint:disable-next-line + return !!(container.compareDocumentPosition(child) & Node.DOCUMENT_POSITION_CONTAINED_BY); + } +} + +var hasParent = function (node, parent) { + while (node && node !== parent) { + node = node.parentNode; + } + return node; +}; + +function getCenterOffset(item, dir, size) { + var rect = item.getBoundingClientRect(); + return rect[dir] + (rect[size] / 2); +} + +function containsItem(collection, item) { + return collection.indexOf(item) !== -1; +} + + +var TooltipContentComponent = (function () { + function TooltipContentComponent(content, localizationService) { + this.content = content; + this.localizationService = localizationService; + this.close = new _angular_core__WEBPACK_IMPORTED_MODULE_0__["EventEmitter"](); + this.tooltipWidth = null; + this.tooltipHeight = null; + this.callout = true; + this.calloutStyles = function (position, calloutSize, isFlip) { + var styles = {}; + var isVertical = position === 'top' || position === 'bottom'; + var flipDeg = '180deg'; + var zeroDeg = '0deg'; + if (!isFlip) { + styles.transform = isVertical ? "rotateX(" + zeroDeg + ")" : "rotateY(" + zeroDeg + ")"; + return styles; + } + if (position === 'top') { + styles.bottom = 'unset'; + } + else if (position === 'bottom') { + styles.top = 'unset'; + } + else if (position === 'left') { + styles.right = 'unset'; + } + else if (position === 'right') { + styles.left = 'unset'; + } + styles[position] = -calloutSize + "px"; + styles.transform = isVertical ? "rotateX(" + flipDeg + ")" : "rotateY(" + flipDeg + ")"; + return styles; + }; + this.direction = localizationService.rtl ? 'rtl' : 'ltr'; + } + Object.defineProperty(TooltipContentComponent.prototype, "cssClasses", { + get: function () { + return 'k-widget k-tooltip'; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(TooltipContentComponent.prototype, "className", { + get: function () { + return this.closable; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(TooltipContentComponent.prototype, "cssPosition", { + get: function () { + return 'relative'; + }, + enumerable: true, + configurable: true + }); + TooltipContentComponent.prototype.ngOnInit = function () { + var _this = this; + this.dynamicRTLSubscription = this.localizationService.changes + .subscribe(function (_a) { + var rtl = _a.rtl; + return _this.direction = rtl ? 'rtl' : 'ltr'; + }); + }; + TooltipContentComponent.prototype.ngOnDestroy = function () { + if (this.dynamicRTLSubscription) { + this.dynamicRTLSubscription.unsubscribe(); + } + }; + Object.defineProperty(TooltipContentComponent.prototype, "closeButtonTitle", { + get: function () { + return this.closeTitle || this.localizationService.get('closeTitle'); + }, + enumerable: true, + configurable: true + }); + TooltipContentComponent.prototype.calloutPositionClass = function () { + return { + 'top': 'k-callout-s', + 'left': 'k-callout-e', + 'bottom': 'k-callout-n', + 'right': 'k-callout-w' + }[this.position]; + }; + TooltipContentComponent.prototype.onCloseClick = function (event) { + event.preventDefault(); + this.close.emit(); + }; + TooltipContentComponent.prototype.updateCalloutPosition = function (position, isFlip) { + if (!this.callout) { + return; + } + var callout = this.content.nativeElement.querySelector('.k-callout'); + var isVertical = position === 'top' || position === 'bottom'; + var size = isVertical ? 'width' : 'height'; + var dir = isVertical ? 'left' : 'top'; + var offsetProperty = isVertical ? 'marginLeft' : 'marginTop'; + var calloutSize = callout.getBoundingClientRect()[size]; + var anchorCenter = getCenterOffset(this.anchor.nativeElement, dir, size); + var contentCenter = getCenterOffset(this.content.nativeElement, dir, size); + var diff = Math.abs(contentCenter - anchorCenter); + if (diff > 1 || diff === 0 || Math.round(diff) === 0) { + var newMargin = contentCenter - anchorCenter + (calloutSize / 2); + callout.style[offsetProperty] = -newMargin + "px"; + } + var calloutStyles = this.calloutStyles(position, calloutSize, isFlip); + Object.keys(calloutStyles).forEach(function (style) { + callout.style[style] = calloutStyles[style]; + }); + }; + + TooltipContentComponent.ctorParameters = function () { return [ + { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"] }, + { type: _progress_kendo_angular_l10n__WEBPACK_IMPORTED_MODULE_4__["LocalizationService"] } + ]; }; + TooltipContentComponent.propDecorators = { + direction: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["HostBinding"], args: ['attr.dir',] }], + close: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }], + cssClasses: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["HostBinding"], args: ['class',] }], + className: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["HostBinding"], args: ['class.k-tooltip-closable',] }], + cssPosition: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["HostBinding"], args: ['style.position',] }], + tooltipWidth: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["HostBinding"], args: ['style.width.px',] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], + tooltipHeight: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["HostBinding"], args: ['style.height.px',] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], + titleTemplate: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], + anchor: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], + closable: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], + templateRef: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], + templateString: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }] + }; +TooltipContentComponent.ɵfac = function TooltipContentComponent_Factory(t) { return new (t || TooltipContentComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_progress_kendo_angular_l10n__WEBPACK_IMPORTED_MODULE_4__["LocalizationService"])); }; +TooltipContentComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineComponent"]({ type: TooltipContentComponent, selectors: [["kendo-tooltip"]], hostVars: 11, hostBindings: function TooltipContentComponent_HostBindings(rf, ctx) { if (rf & 2) { + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵattribute"]("dir", ctx.direction); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵclassMap"](ctx.cssClasses); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵstyleProp"]("width", ctx.tooltipWidth, "px")("height", ctx.tooltipHeight, "px")("position", ctx.cssPosition); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵclassProp"]("k-tooltip-closable", ctx.className); + } }, inputs: { tooltipWidth: "tooltipWidth", tooltipHeight: "tooltipHeight", titleTemplate: "titleTemplate", anchor: "anchor", closable: "closable", templateRef: "templateRef", templateString: "templateString" }, outputs: { close: "close" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵProvidersFeature"]([ + _progress_kendo_angular_l10n__WEBPACK_IMPORTED_MODULE_4__["LocalizationService"], + { + provide: _progress_kendo_angular_l10n__WEBPACK_IMPORTED_MODULE_4__["L10N_PREFIX"], + useValue: 'kendo.tooltip' + } + ])], decls: 8, vars: 10, consts: [["kendoTooltipLocalizedMessages", "", 6, "closeTitle"], [1, "k-tooltip-content"], ["class", "k-tooltip-title", 4, "ngIf"], [3, "ngIf", "ngTemplateOutlet", "ngTemplateOutletContext"], [3, "ngIf"], ["class", "k-tooltip-button", 3, "click", 4, "ngIf"], ["class", "k-callout", 3, "ngClass", 4, "ngIf"], [1, "k-tooltip-title"], [1, "k-tooltip-button", 3, "click"], ["href", "#", 1, "k-icon", "k-i-close"], [1, "k-callout", 3, "ngClass"]], template: function TooltipContentComponent_Template(rf, ctx) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementContainerStart"](0, 0); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵi18nAttributes"](1, _c2); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementContainerEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](2, "div", 1); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](3, TooltipContentComponent_div_3_Template, 2, 6, "div", 2); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](4, TooltipContentComponent_ng_template_4_Template, 0, 0, "ng-template", 3); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](5, TooltipContentComponent_ng_template_5_Template, 1, 1, "ng-template", 4); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](6, TooltipContentComponent_div_6_Template, 2, 1, "div", 5); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](7, TooltipContentComponent_div_7_Template, 1, 1, "div", 6); + } if (rf & 2) { + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](3); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngIf", ctx.titleTemplate); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngIf", ctx.templateRef)("ngTemplateOutlet", ctx.templateRef)("ngTemplateOutletContext", _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵpureFunction2"](7, _c3, ctx.anchor, ctx.anchor)); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngIf", ctx.templateString); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngIf", ctx.closable); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngIf", ctx.callout); + } }, directives: function () { return [LocalizedMessagesDirective, _angular_common__WEBPACK_IMPORTED_MODULE_5__["NgIf"], _angular_common__WEBPACK_IMPORTED_MODULE_5__["NgTemplateOutlet"], _angular_common__WEBPACK_IMPORTED_MODULE_5__["NgClass"]]; }, encapsulation: 2 }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](TooltipContentComponent, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"], + args: [{ + selector: 'kendo-tooltip', + template: "\n \n \n\n
\n
\n \n \n
\n\n \n \n \n {{ templateString }}\n \n
\n\n
\n \n
\n\n
\n ", + providers: [ + _progress_kendo_angular_l10n__WEBPACK_IMPORTED_MODULE_4__["LocalizationService"], + { + provide: _progress_kendo_angular_l10n__WEBPACK_IMPORTED_MODULE_4__["L10N_PREFIX"], + useValue: 'kendo.tooltip' + } + ] + }] + }], function () { return [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"] }, { type: _progress_kendo_angular_l10n__WEBPACK_IMPORTED_MODULE_4__["LocalizationService"] }]; }, { close: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] + }], tooltipWidth: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["HostBinding"], + args: ['style.width.px'] + }, { + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] + }], tooltipHeight: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["HostBinding"], + args: ['style.height.px'] + }, { + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] + }], direction: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["HostBinding"], + args: ['attr.dir'] + }], cssClasses: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["HostBinding"], + args: ['class'] + }], className: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["HostBinding"], + args: ['class.k-tooltip-closable'] + }], cssPosition: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["HostBinding"], + args: ['style.position'] + }], titleTemplate: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] + }], anchor: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] + }], closable: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] + }], templateRef: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] + }], templateString: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] + }] }); })(); + return TooltipContentComponent; +}()); + + +var TooltipDirective = (function () { + function TooltipDirective(tooltipWrapper, ngZone, renderer, popupService, settings, legacySettings) { + var _this = this; + this.tooltipWrapper = tooltipWrapper; + this.ngZone = ngZone; + this.renderer = renderer; + this.popupService = popupService; + + this.filter = '[title]'; + + this.position = 'top'; + + this.showAfter = 100; + + this.callout = true; + + this.closable = false; + + this.offset = 6; + this.anchor = null; + this.validPositions = ['top', 'bottom', 'right', 'left']; + this.validShowOptions = ['hover', 'click', 'none']; + Object.assign(this, settings, legacySettings); + this.ngZone.runOutsideAngular(function () { + var wrapper = _this.tooltipWrapper.nativeElement; + _this.anchorTitleSubscription = Object(rxjs__WEBPACK_IMPORTED_MODULE_2__["fromEvent"])(wrapper, 'mouseover') + .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__["filter"])(function () { return _this.filter !== ''; })) + .subscribe(function (e) { + var filterElement = closest(e.target, _this.filter); + if (filterElement) { + _this.hideElementTitle({ nativeElement: filterElement }); + } + }); + _this.mouseOverSubscription = Object(rxjs__WEBPACK_IMPORTED_MODULE_2__["fromEvent"])(wrapper, 'mouseover') + .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__["debounceTime"])(100), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__["filter"])(function () { return _this.filter !== ''; })) + .subscribe(function (e) { return _this.onMouseOver(e); }); + _this.mouseOutSubscription = Object(rxjs__WEBPACK_IMPORTED_MODULE_2__["fromEvent"])(wrapper, 'mouseout') + .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__["debounceTime"])(100)) + .subscribe(function (e) { return _this.onMouseOut(e); }); + }); + } + Object.defineProperty(TooltipDirective.prototype, "tooltipTemplate", { + get: function () { return this.template; }, + + set: function (value) { + this.template = value; + }, + enumerable: true, + configurable: true + }); + + TooltipDirective.prototype.show = function (anchor) { + var _this = this; + if (this.popupRef) { + return; + } + if (anchor instanceof Element) { + anchor = { nativeElement: anchor }; + } + this.anchor = anchor; + if (this.showOn === 'hover') { + if (this.popupRef) { + return; + } + clearTimeout(this.showTimeout); + this.showTimeout = window.setTimeout(function () { return _this.showContent(_this.anchor); }, this.showAfter); + } + else { + this.hideElementTitle(this.anchor); + this.showContent(this.anchor); + } + }; + + TooltipDirective.prototype.hide = function () { + clearTimeout(this.showTimeout); + var anchor = this.anchor && this.anchor.nativeElement; + if (anchor && anchor.getAttribute('data-title')) { + if (!anchor.getAttribute('title')) { + anchor.setAttribute('title', anchor.getAttribute('data-title')); + } + anchor.setAttribute('data-title', ''); + } + if (this.popupMouseOutSubscription) { + this.popupMouseOutSubscription.unsubscribe(); + } + if (this.closeClickSubscription) { + this.closeClickSubscription.unsubscribe(); + } + this.closePopup(); + }; + + TooltipDirective.prototype.toggle = function (anchor, show) { + var previousAnchor = this.anchor && this.anchor.nativeElement; + if (anchor instanceof Element) { + anchor = { nativeElement: anchor }; + } + if (previousAnchor !== anchor.nativeElement) { + this.hide(); + } + if (previousAnchor === anchor.nativeElement && this.showOn === 'click') { + this.hide(); + } + if (typeof show === 'undefined') { + show = !this.popupRef; + } + if (show) { + this.show(anchor); + } + else { + this.hide(); + } + }; + TooltipDirective.prototype.ngOnInit = function () { + if (this.showOn === undefined) { + this.showOn = 'hover'; + } + this.verifyProperties(); + }; + TooltipDirective.prototype.ngOnChanges = function (changes) { + if (changes.showOn) { + this.subscribeClick(); + } + }; + TooltipDirective.prototype.ngAfterViewChecked = function () { + if (!this.popupRef) { + return; + } + if (this.anchor && + !hasParent(this.anchor.nativeElement || this.anchor, this.tooltipWrapper.nativeElement)) { + this.anchor = null; + this.hide(); + } + }; + TooltipDirective.prototype.ngOnDestroy = function () { + this.hide(); + this.template = null; + this.anchorTitleSubscription.unsubscribe(); + this.mouseOverSubscription.unsubscribe(); + this.mouseOutSubscription.unsubscribe(); + if (this.mouseClickSubscription) { + this.mouseClickSubscription.unsubscribe(); + } + if (this.popupPositionChangeSubscription) { + this.popupPositionChangeSubscription.unsubscribe(); + } + if (this.popupMouseOutSubscription) { + this.popupMouseOutSubscription.unsubscribe(); + } + }; + TooltipDirective.prototype.showContent = function (anchorRef) { + var _this = this; + if (!anchorRef.nativeElement.getAttribute('data-title') && !this.template) { + return; + } + this.ngZone.run(function () { + _this.openPopup(anchorRef); + _this.bindContent(_this.popupRef.content, anchorRef); + }); + this.popupRef.popupAnchorViewportLeave + .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__["take"])(1)) + .subscribe(function () { return _this.hide(); }); + }; + TooltipDirective.prototype.bindContent = function (contentComponent, anchorRef) { + var _this = this; + var content = contentComponent.instance; + this.closeClickSubscription = content.close + .subscribe(function () { _this.hide(); }); + if (!this.template) { + content.templateString = this.anchor.nativeElement.getAttribute('data-title'); + } + else { + content.templateRef = this.template; + } + if (this.titleTemplate) { + content.titleTemplate = this.titleTemplate; + } + content.closeTitle = this.closeTitle; + content.anchor = anchorRef; + content.callout = this.callout; + content.closable = this.closable; + content.position = this.position; + content.tooltipWidth = this.tooltipWidth; + content.tooltipHeight = this.tooltipHeight; + this.popupRef.content.changeDetectorRef.detectChanges(); + }; + TooltipDirective.prototype.hideElementTitle = function (elementRef) { + var element = elementRef.nativeElement; + if (element.getAttribute('title')) { + element.setAttribute('data-title', element.getAttribute('title')); + element.setAttribute('title', ''); + } + }; + TooltipDirective.prototype.openPopup = function (anchorRef) { + var _this = this; + var alignSettings = align(this.position, this.offset); + var anchorAlign = alignSettings.anchorAlign; + var popupAlign = alignSettings.popupAlign; + var popupMargin = alignSettings.popupMargin; + this.popupRef = this.popupService.open({ + anchor: anchorRef, + anchorAlign: anchorAlign, + animate: false, + content: TooltipContentComponent, + collision: collision(this.collision, this.position), + margin: popupMargin, + popupAlign: popupAlign, + popupClass: 'k-popup-transparent' + }); + this.renderer.addClass(this.popupRef.popupElement, 'k-tooltip-wrapper'); + if (this.tooltipClass) { + this.renderer.addClass(this.popupRef.popupElement, this.tooltipClass); + } + var popupInstance = this.popupRef.content.instance; + if (popupInstance.callout) { + this.popupPositionChangeSubscription = this.popupRef.popupPositionChange + .subscribe(function (_a) { + var flip = _a.flip; + var isFlip = flip.horizontal === true || flip.vertical === true; + popupInstance.updateCalloutPosition(_this.position, isFlip); + }); + } + if (this.showOn === 'hover') { + this.ngZone.runOutsideAngular(function () { + var popup = _this.popupRef.popupElement; + _this.popupMouseOutSubscription = Object(rxjs__WEBPACK_IMPORTED_MODULE_2__["fromEvent"])(popup, 'mouseout') + .subscribe(function (e) { return _this.onMouseOut(e); }); + }); + } + }; + TooltipDirective.prototype.closePopup = function () { + if (this.popupRef) { + this.popupRef.close(); + this.popupRef = null; + } + if (this.popupPositionChangeSubscription) { + this.popupPositionChangeSubscription.unsubscribe(); + } + }; + TooltipDirective.prototype.subscribeClick = function () { + var _this = this; + if (this.mouseClickSubscription) { + this.mouseClickSubscription.unsubscribe(); + } + if (this.showOn === 'click') { + this.mouseClickSubscription = Object(rxjs__WEBPACK_IMPORTED_MODULE_2__["fromEvent"])(document, 'click') + .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__["filter"])(function () { return _this.filter !== ''; })) + .subscribe(function (e) { return _this.onMouseClick(e, _this.tooltipWrapper.nativeElement); }); + } + }; + TooltipDirective.prototype.onMouseClick = function (e, wrapper) { + var target = e.target; + var filterElement = closest(target, this.filter); + var popup = this.popupRef && this.popupRef.popupElement; + if (popup) { + if (popup.contains(target)) { + return; + } + if (this.closable) { + return; + } + } + if (wrapper.contains(target) && filterElement) { + this.toggle(filterElement, true); + } + else if (popup) { + this.hide(); + } + }; + TooltipDirective.prototype.onMouseOver = function (e) { + var filterElement = closest(e.target, this.filter); + if (this.showOn !== 'hover') { + return; + } + if (filterElement) { + this.toggle(filterElement, true); + } + }; + TooltipDirective.prototype.onMouseOut = function (e) { + if (this.showOn !== 'hover') { + return; + } + if (this.closable) { + return; + } + var popup = this.popupRef && this.popupRef.popupElement; + var relatedTarget = e.relatedTarget; + if (relatedTarget && this.anchor && contains(this.anchor.nativeElement, relatedTarget)) { + return; + } + if (relatedTarget && contains(popup, relatedTarget)) { + return; + } + this.hide(); + }; + TooltipDirective.prototype.verifyProperties = function () { + if (!Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["isDevMode"])()) { + return; + } + if (!containsItem(this.validPositions, this.position)) { + throw new Error("Invalid value provided for position property.The available options are 'top', 'bottom', 'left', or 'right'."); + } + if (!containsItem(this.validShowOptions, this.showOn)) { + throw new Error("Invalid value provided for showOn property.The available options are 'hover' or 'none'."); + } + }; + + TooltipDirective.ctorParameters = function () { return [ + { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"] }, + { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"] }, + { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Renderer2"] }, + { type: _progress_kendo_angular_popup__WEBPACK_IMPORTED_MODULE_3__["PopupService"] }, + { type: TooltipSettings, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Optional"] }] }, + { type: TooltipSettings, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Optional"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Inject"], args: [TOOLTIP_SETTINGS,] }] } + ]; }; + TooltipDirective.propDecorators = { + filter: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], + position: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], + titleTemplate: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], + showOn: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], + showAfter: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], + callout: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], + closable: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], + offset: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], + tooltipWidth: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], + tooltipHeight: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], + tooltipClass: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], + collision: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], + closeTitle: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], + tooltipTemplate: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }] + }; +TooltipDirective.ɵfac = function TooltipDirective_Factory(t) { return new (t || TooltipDirective)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["Renderer2"]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_progress_kendo_angular_popup__WEBPACK_IMPORTED_MODULE_3__["PopupService"]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](TooltipSettings, 8), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](TOOLTIP_SETTINGS, 8)); }; +TooltipDirective.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({ type: TooltipDirective, selectors: [["", "kendoTooltip", ""]], inputs: { filter: "filter", position: "position", showAfter: "showAfter", callout: "callout", closable: "closable", offset: "offset", tooltipTemplate: "tooltipTemplate", showOn: "showOn", titleTemplate: "titleTemplate", tooltipWidth: "tooltipWidth", tooltipHeight: "tooltipHeight", tooltipClass: "tooltipClass", collision: "collision", closeTitle: "closeTitle" }, exportAs: ["kendoTooltip"], features: [_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵNgOnChangesFeature"]] }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](TooltipDirective, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Directive"], + args: [{ + selector: '[kendoTooltip]', + exportAs: 'kendoTooltip' + }] + }], function () { return [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Renderer2"] }, { type: _progress_kendo_angular_popup__WEBPACK_IMPORTED_MODULE_3__["PopupService"] }, { type: TooltipSettings, decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Optional"] + }] }, { type: TooltipSettings, decorators: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Optional"] + }, { + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Inject"], + args: [TOOLTIP_SETTINGS] + }] }]; }, { filter: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] + }], position: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] + }], showAfter: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] + }], callout: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] + }], closable: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] + }], offset: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] + }], tooltipTemplate: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] + }], showOn: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] + }], titleTemplate: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] + }], tooltipWidth: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] + }], tooltipHeight: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] + }], tooltipClass: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] + }], collision: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] + }], closeTitle: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] + }] }); })(); + return TooltipDirective; +}()); + + +var LocalizedMessagesDirective = (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_6__["__extends"])(LocalizedMessagesDirective, _super); + function LocalizedMessagesDirective(service) { + var _this = _super.call(this) || this; + _this.service = service; + return _this; + } + + LocalizedMessagesDirective.ctorParameters = function () { return [ + { type: _progress_kendo_angular_l10n__WEBPACK_IMPORTED_MODULE_4__["LocalizationService"] } + ]; }; + LocalizedMessagesDirective.propDecorators = { + closeTitle: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }] + }; +LocalizedMessagesDirective.ɵfac = function LocalizedMessagesDirective_Factory(t) { return new (t || LocalizedMessagesDirective)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_progress_kendo_angular_l10n__WEBPACK_IMPORTED_MODULE_4__["LocalizationService"])); }; +LocalizedMessagesDirective.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({ type: LocalizedMessagesDirective, selectors: [["", "kendoTooltipLocalizedMessages", ""]], inputs: { closeTitle: "closeTitle" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵProvidersFeature"]([ + { + provide: _progress_kendo_angular_l10n__WEBPACK_IMPORTED_MODULE_4__["ComponentMessages"], + useExisting: Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["forwardRef"])(function () { return LocalizedMessagesDirective; }) + } + ]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵInheritDefinitionFeature"]] }); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](LocalizedMessagesDirective, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Directive"], + args: [{ + providers: [ + { + provide: _progress_kendo_angular_l10n__WEBPACK_IMPORTED_MODULE_4__["ComponentMessages"], + useExisting: Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["forwardRef"])(function () { return LocalizedMessagesDirective; }) + } + ], + selector: "[kendoTooltipLocalizedMessages]" + }] + }], function () { return [{ type: _progress_kendo_angular_l10n__WEBPACK_IMPORTED_MODULE_4__["LocalizationService"] }]; }, { closeTitle: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] + }] }); })(); + return LocalizedMessagesDirective; +}(_progress_kendo_angular_l10n__WEBPACK_IMPORTED_MODULE_4__["ComponentMessages"])); + +var COMPONENT_DIRECTIVES = [TooltipDirective, TooltipContentComponent, LocalizedMessagesDirective]; +var COMPONENT_MODULES = [_progress_kendo_angular_popup__WEBPACK_IMPORTED_MODULE_3__["PopupModule"]]; + +var TooltipModule = (function () { + function TooltipModule() { + } +TooltipModule.ɵmod = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineNgModule"]({ type: TooltipModule }); +TooltipModule.ɵinj = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjector"]({ factory: function TooltipModule_Factory(t) { return new (t || TooltipModule)(); }, imports: [[_angular_common__WEBPACK_IMPORTED_MODULE_5__["CommonModule"]].concat(COMPONENT_MODULES)] }); +(function () { (typeof ngJitMode === "undefined" || ngJitMode) && _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵsetNgModuleScope"](TooltipModule, { declarations: function () { return [TooltipDirective, + TooltipContentComponent, + LocalizedMessagesDirective]; }, imports: function () { return [_angular_common__WEBPACK_IMPORTED_MODULE_5__["CommonModule"], + _progress_kendo_angular_popup__WEBPACK_IMPORTED_MODULE_3__["PopupModule"]]; }, exports: function () { return [TooltipDirective, + TooltipContentComponent, + LocalizedMessagesDirective]; } }); })(); + (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](TooltipModule, [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgModule"], + args: [{ + declarations: [COMPONENT_DIRECTIVES], + entryComponents: [TooltipContentComponent], + imports: [_angular_common__WEBPACK_IMPORTED_MODULE_5__["CommonModule"]].concat(COMPONENT_MODULES), + exports: [COMPONENT_DIRECTIVES] + }] + }], function () { return []; }, null); })(); + return TooltipModule; +}()); + + + + + +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbImluZGV4LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7OztnREFHTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BYU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7b0JBQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFNTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztvQkFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBV007QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O29CQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Z0RBUU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlc0NvbnRlbnQiOlsiLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiogQ29weXJpZ2h0IMKpIDIwMjAgUHJvZ3Jlc3MgU29mdHdhcmUgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4qIExpY2Vuc2VkIHVuZGVyIGNvbW1lcmNpYWwgbGljZW5zZS4gU2VlIExJQ0VOU0UubWQgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgbW9yZSBpbmZvcm1hdGlvblxuKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIEluamVjdGFibGUsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSG9zdEJpbmRpbmcsIE91dHB1dCwgSW5wdXQsIEV2ZW50RW1pdHRlciwgaXNEZXZNb2RlLCBEaXJlY3RpdmUsIE5nWm9uZSwgUmVuZGVyZXIyLCBPcHRpb25hbCwgSW5qZWN0LCBmb3J3YXJkUmVmLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZSwgZmlsdGVyLCBkZWJvdW5jZVRpbWUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBmcm9tRXZlbnQgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFBvcHVwU2VydmljZSwgUG9wdXBNb2R1bGUgfSBmcm9tICdAcHJvZ3Jlc3Mva2VuZG8tYW5ndWxhci1wb3B1cCc7XG5pbXBvcnQgeyBMb2NhbGl6YXRpb25TZXJ2aWNlLCBMMTBOX1BSRUZJWCwgQ29tcG9uZW50TWVzc2FnZXMgfSBmcm9tICdAcHJvZ3Jlc3Mva2VuZG8tYW5ndWxhci1sMTBuJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBfX2V4dGVuZHMgfSBmcm9tICd0c2xpYic7XG5cbi8qKlxuICogT2Jzb2xldGUuIFByb3ZpZGUgdGhlIFRvb2x0aXBTZXR0aW5ncyBjbGFzcyBpbnN0ZWFkLlxuICpcbiAqIEBoaWRkZW5cbiAqL1xudmFyIFRPT0xUSVBfU0VUVElOR1MgPSBuZXcgSW5qZWN0aW9uVG9rZW4oJ2tlbmRvLXVpLXRvb2x0aXAtc2V0dGluZ3MnKTtcbi8qKlxuICogUHJvdmlkZXMgYSBnbG9iYWwgY29uZmlndXJhdGlvbiBmb3IgdGhlIEtlbmRvIFVJIFRvb2x0aXAuIE9uY2UgaW5qZWN0ZWQgdGhyb3VnaFxuICogdGhlIGBBcHBDb21wb25lbnRgIGNvbnN0cnVjdG9yLCB0aGUgY29uZmlndXJhdGlvbiBwcm9wZXJ0aWVzIGNhbiBiZSBvdmVycmlkZGVuLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0cy1uby1ydW5cbiAqIGltcG9ydCB7IFRvb2x0aXBTZXR0aW5ncyB9IGZyb20gJ0Bwcm9ncmVzcy9rZW5kby1hbmd1bGFyLXRvb2x0aXAnO1xuICpcbiAqIF9AQ29tcG9uZW50KHtcbiAqICAgIHNlbGVjdG9yOiAnbXktYXBwJyxcbiAqICAgIHRlbXBsYXRlOiBgXG4gKiAgICAgIDxkaXYga2VuZG9Ub29sdGlwPlxuICogICAgICAgICAgPGJ1dHRvbiB0aXRsZT1cIlNhdmVzIHRoZSBjdXJyZW50IGRvY3VtZW50XCI+U2F2ZTwvYnV0dG9uPlxuICogICAgICA8L2Rpdj5gLFxuICogICAgcHJvdmlkZXJzOiBbe1xuICogICAgICAgIHByb3ZpZGU6IFRvb2x0aXBTZXR0aW5ncyxcbiAqICAgICAgICB1c2VGYWN0b3J5OiAoKTogVG9vbHRpcFNldHRpbmdzID0+ICh7XG4gKiAgICAgICAgICAvLyBPdmVycmlkZSBkZWZhdWx0IHZhbHVlcyBvZiB0b29sdGlwcyBpZiB3YW50ZWRcbiAqICAgICAgICAgIHBvc2l0aW9uOiAncmlnaHQnXG4gKiAgICAgICAgfSlcbiAqICAgIH1dXG4gKiB9KVxuICogZXhwb3J0IGNsYXNzIEFwcENvbXBvbmVudCB7IH1cbiAqIGBgYFxuICovXG52YXIgVG9vbHRpcFNldHRpbmdzID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIFRvb2x0aXBTZXR0aW5ncygpIHtcbiAgICB9XG4gICAgVG9vbHRpcFNldHRpbmdzLmRlY29yYXRvcnMgPSBbXG4gICAgICAgIHsgdHlwZTogSW5qZWN0YWJsZSB9LFxuICAgIF07XG4gICAgcmV0dXJuIFRvb2x0aXBTZXR0aW5ncztcbn0oKSk7XG5cbi8qKlxuICogQGhpZGRlblxuICovXG5mdW5jdGlvbiBhbGlnbihwb3NpdGlvbiwgb2Zmc2V0KSB7XG4gICAgdmFyIGFuY2hvckFsaWduID0ge307XG4gICAgdmFyIHBvcHVwQWxpZ24gPSB7fTtcbiAgICB2YXIgcG9wdXBNYXJnaW4gPSB7fTtcbiAgICBzd2l0Y2ggKHBvc2l0aW9uKSB7XG4gICAgICAgIGNhc2UgJ3RvcCc6XG4gICAgICAgICAgICBhbmNob3JBbGlnbiA9IHsgaG9yaXpvbnRhbDogJ2NlbnRlcicsIHZlcnRpY2FsOiAndG9wJyB9O1xuICAgICAgICAgICAgcG9wdXBBbGlnbiA9IHsgaG9yaXpvbnRhbDogJ2NlbnRlcicsIHZlcnRpY2FsOiAnYm90dG9tJyB9O1xuICAgICAgICAgICAgcG9wdXBNYXJnaW4gPSB7IGhvcml6b250YWw6IDAsIHZlcnRpY2FsOiBvZmZzZXQgfTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdib3R0b20nOlxuICAgICAgICAgICAgYW5jaG9yQWxpZ24gPSB7IGhvcml6b250YWw6ICdjZW50ZXInLCB2ZXJ0aWNhbDogJ2JvdHRvbScgfTtcbiAgICAgICAgICAgIHBvcHVwQWxpZ24gPSB7IGhvcml6b250YWw6ICdjZW50ZXInLCB2ZXJ0aWNhbDogJ3RvcCcgfTtcbiAgICAgICAgICAgIHBvcHVwTWFyZ2luID0geyBob3Jpem9udGFsOiAwLCB2ZXJ0aWNhbDogb2Zmc2V0IH07XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAncmlnaHQnOlxuICAgICAgICAgICAgYW5jaG9yQWxpZ24gPSB7IGhvcml6b250YWw6ICdyaWdodCcsIHZlcnRpY2FsOiAnY2VudGVyJyB9O1xuICAgICAgICAgICAgcG9wdXBBbGlnbiA9IHsgaG9yaXpvbnRhbDogJ2xlZnQnLCB2ZXJ0aWNhbDogJ2NlbnRlcicgfTtcbiAgICAgICAgICAgIHBvcHVwTWFyZ2luID0geyBob3Jpem9udGFsOiBvZmZzZXQsIHZlcnRpY2FsOiAwIH07XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnbGVmdCc6XG4gICAgICAgICAgICBhbmNob3JBbGlnbiA9IHsgaG9yaXpvbnRhbDogJ2xlZnQnLCB2ZXJ0aWNhbDogJ2NlbnRlcicgfTtcbiAgICAgICAgICAgIHBvcHVwQWxpZ24gPSB7IGhvcml6b250YWw6ICdyaWdodCcsIHZlcnRpY2FsOiAnY2VudGVyJyB9O1xuICAgICAgICAgICAgcG9wdXBNYXJnaW4gPSB7IGhvcml6b250YWw6IG9mZnNldCwgdmVydGljYWw6IDAgfTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OiBicmVhaztcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgYW5jaG9yQWxpZ246IGFuY2hvckFsaWduLFxuICAgICAgICBwb3B1cEFsaWduOiBwb3B1cEFsaWduLFxuICAgICAgICBwb3B1cE1hcmdpbjogcG9wdXBNYXJnaW5cbiAgICB9O1xufVxuLyoqXG4gKiBAaGlkZGVuXG4gKi9cbmZ1bmN0aW9uIGNvbGxpc2lvbihpbnB1dGNvbGxpc2lvbiwgcG9zaXRpb24pIHtcbiAgICBpZiAoaW5wdXRjb2xsaXNpb24pIHtcbiAgICAgICAgcmV0dXJuIGlucHV0Y29sbGlzaW9uO1xuICAgIH1cbiAgICBpZiAocG9zaXRpb24gPT09ICd0b3AnIHx8IHBvc2l0aW9uID09PSAnYm90dG9tJykge1xuICAgICAgICByZXR1cm4geyBob3Jpem9udGFsOiAnZml0JywgdmVydGljYWw6ICdmbGlwJyB9O1xuICAgIH1cbiAgICByZXR1cm4geyBob3Jpem9udGFsOiAnZmxpcCcsIHZlcnRpY2FsOiAnZml0JyB9O1xufVxuZnVuY3Rpb24gaXNEb2N1bWVudE5vZGUoY29udGFpbmVyKSB7XG4gICAgcmV0dXJuIGNvbnRhaW5lci5ub2RlVHlwZSA9PT0gOTtcbn1cbi8qKlxuICogQGhpZGRlblxuICovXG5mdW5jdGlvbiBjbG9zZXN0KGVsZW1lbnQsIHNlbGVjdG9yKSB7XG4gICAgaWYgKGVsZW1lbnQuY2xvc2VzdCkge1xuICAgICAgICByZXR1cm4gZWxlbWVudC5jbG9zZXN0KHNlbGVjdG9yKTtcbiAgICB9XG4gICAgdmFyIG1hdGNoZXMgPSBFbGVtZW50LnByb3RvdHlwZS5tYXRjaGVzID9cbiAgICAgICAgZnVuY3Rpb24gKGVsLCBzZWwpIHsgcmV0dXJuIGVsLm1hdGNoZXMoc2VsKTsgfVxuICAgICAgICA6IGZ1bmN0aW9uIChlbCwgc2VsKSB7IHJldHVybiBlbC5tc01hdGNoZXNTZWxlY3RvcihzZWwpOyB9O1xuICAgIHZhciBub2RlID0gZWxlbWVudDtcbiAgICB3aGlsZSAobm9kZSAmJiAhaXNEb2N1bWVudE5vZGUobm9kZSkpIHtcbiAgICAgICAgaWYgKG1hdGNoZXMobm9kZSwgc2VsZWN0b3IpKSB7XG4gICAgICAgICAgICByZXR1cm4gbm9kZTtcbiAgICAgICAgfVxuICAgICAgICBub2RlID0gbm9kZS5wYXJlbnROb2RlO1xuICAgIH1cbn1cbi8qKlxuICogQGhpZGRlblxuICovXG5mdW5jdGlvbiBjb250YWlucyhjb250YWluZXIsIGNoaWxkKSB7XG4gICAgaWYgKCFjb250YWluZXIpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAoaXNEb2N1bWVudE5vZGUoY29udGFpbmVyKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmIChjb250YWluZXIuY29udGFpbnMpIHtcbiAgICAgICAgcmV0dXJuIGNvbnRhaW5lci5jb250YWlucyhjaGlsZCk7XG4gICAgfVxuICAgIGlmIChjb250YWluZXIuY29tcGFyZURvY3VtZW50UG9zaXRpb24pIHtcbiAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lXG4gICAgICAgIHJldHVybiAhIShjb250YWluZXIuY29tcGFyZURvY3VtZW50UG9zaXRpb24oY2hpbGQpICYgTm9kZS5ET0NVTUVOVF9QT1NJVElPTl9DT05UQUlORURfQlkpO1xuICAgIH1cbn1cbi8qKlxuICogQGhpZGRlblxuICovXG52YXIgaGFzUGFyZW50ID0gZnVuY3Rpb24gKG5vZGUsIHBhcmVudCkge1xuICAgIHdoaWxlIChub2RlICYmIG5vZGUgIT09IHBhcmVudCkge1xuICAgICAgICBub2RlID0gbm9kZS5wYXJlbnROb2RlO1xuICAgIH1cbiAgICByZXR1cm4gbm9kZTtcbn07XG4vKipcbiAqIEBoaWRkZW5cbiAqL1xuZnVuY3Rpb24gZ2V0Q2VudGVyT2Zmc2V0KGl0ZW0sIGRpciwgc2l6ZSkge1xuICAgIHZhciByZWN0ID0gaXRlbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICByZXR1cm4gcmVjdFtkaXJdICsgKHJlY3Rbc2l6ZV0gLyAyKTtcbn1cbi8qKlxuICogQGhpZGRlblxuICovXG5mdW5jdGlvbiBjb250YWluc0l0ZW0oY29sbGVjdGlvbiwgaXRlbSkge1xuICAgIHJldHVybiBjb2xsZWN0aW9uLmluZGV4T2YoaXRlbSkgIT09IC0xO1xufVxuXG4vKipcbiAqIEBoaWRkZW5cbiAqL1xudmFyIFRvb2x0aXBDb250ZW50Q29tcG9uZW50ID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIFRvb2x0aXBDb250ZW50Q29tcG9uZW50KGNvbnRlbnQsIGxvY2FsaXphdGlvblNlcnZpY2UpIHtcbiAgICAgICAgdGhpcy5jb250ZW50ID0gY29udGVudDtcbiAgICAgICAgdGhpcy5sb2NhbGl6YXRpb25TZXJ2aWNlID0gbG9jYWxpemF0aW9uU2VydmljZTtcbiAgICAgICAgdGhpcy5jbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICAgICAgdGhpcy50b29sdGlwV2lkdGggPSBudWxsO1xuICAgICAgICB0aGlzLnRvb2x0aXBIZWlnaHQgPSBudWxsO1xuICAgICAgICB0aGlzLmNhbGxvdXQgPSB0cnVlO1xuICAgICAgICB0aGlzLmNhbGxvdXRTdHlsZXMgPSBmdW5jdGlvbiAocG9zaXRpb24sIGNhbGxvdXRTaXplLCBpc0ZsaXApIHtcbiAgICAgICAgICAgIHZhciBzdHlsZXMgPSB7fTtcbiAgICAgICAgICAgIHZhciBpc1ZlcnRpY2FsID0gcG9zaXRpb24gPT09ICd0b3AnIHx8IHBvc2l0aW9uID09PSAnYm90dG9tJztcbiAgICAgICAgICAgIHZhciBmbGlwRGVnID0gJzE4MGRlZyc7XG4gICAgICAgICAgICB2YXIgemVyb0RlZyA9ICcwZGVnJztcbiAgICAgICAgICAgIGlmICghaXNGbGlwKSB7XG4gICAgICAgICAgICAgICAgc3R5bGVzLnRyYW5zZm9ybSA9IGlzVmVydGljYWwgPyBcInJvdGF0ZVgoXCIgKyB6ZXJvRGVnICsgXCIpXCIgOiBcInJvdGF0ZVkoXCIgKyB6ZXJvRGVnICsgXCIpXCI7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHN0eWxlcztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChwb3NpdGlvbiA9PT0gJ3RvcCcpIHtcbiAgICAgICAgICAgICAgICBzdHlsZXMuYm90dG9tID0gJ3Vuc2V0JztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKHBvc2l0aW9uID09PSAnYm90dG9tJykge1xuICAgICAgICAgICAgICAgIHN0eWxlcy50b3AgPSAndW5zZXQnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAocG9zaXRpb24gPT09ICdsZWZ0Jykge1xuICAgICAgICAgICAgICAgIHN0eWxlcy5yaWdodCA9ICd1bnNldCc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChwb3NpdGlvbiA9PT0gJ3JpZ2h0Jykge1xuICAgICAgICAgICAgICAgIHN0eWxlcy5sZWZ0ID0gJ3Vuc2V0JztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHN0eWxlc1twb3NpdGlvbl0gPSAtY2FsbG91dFNpemUgKyBcInB4XCI7XG4gICAgICAgICAgICBzdHlsZXMudHJhbnNmb3JtID0gaXNWZXJ0aWNhbCA/IFwicm90YXRlWChcIiArIGZsaXBEZWcgKyBcIilcIiA6IFwicm90YXRlWShcIiArIGZsaXBEZWcgKyBcIilcIjtcbiAgICAgICAgICAgIHJldHVybiBzdHlsZXM7XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuZGlyZWN0aW9uID0gbG9jYWxpemF0aW9uU2VydmljZS5ydGwgPyAncnRsJyA6ICdsdHInO1xuICAgIH1cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoVG9vbHRpcENvbnRlbnRDb21wb25lbnQucHJvdG90eXBlLCBcImNzc0NsYXNzZXNcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiAnay13aWRnZXQgay10b29sdGlwJztcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFRvb2x0aXBDb250ZW50Q29tcG9uZW50LnByb3RvdHlwZSwgXCJjbGFzc05hbWVcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNsb3NhYmxlO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoVG9vbHRpcENvbnRlbnRDb21wb25lbnQucHJvdG90eXBlLCBcImNzc1Bvc2l0aW9uXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gJ3JlbGF0aXZlJztcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgVG9vbHRpcENvbnRlbnRDb21wb25lbnQucHJvdG90eXBlLm5nT25Jbml0ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICB0aGlzLmR5bmFtaWNSVExTdWJzY3JpcHRpb24gPSB0aGlzLmxvY2FsaXphdGlvblNlcnZpY2UuY2hhbmdlc1xuICAgICAgICAgICAgLnN1YnNjcmliZShmdW5jdGlvbiAoX2EpIHtcbiAgICAgICAgICAgIHZhciBydGwgPSBfYS5ydGw7XG4gICAgICAgICAgICByZXR1cm4gX3RoaXMuZGlyZWN0aW9uID0gcnRsID8gJ3J0bCcgOiAnbHRyJztcbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICBUb29sdGlwQ29udGVudENvbXBvbmVudC5wcm90b3R5cGUubmdPbkRlc3Ryb3kgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmICh0aGlzLmR5bmFtaWNSVExTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuZHluYW1pY1JUTFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoVG9vbHRpcENvbnRlbnRDb21wb25lbnQucHJvdG90eXBlLCBcImNsb3NlQnV0dG9uVGl0bGVcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNsb3NlVGl0bGUgfHwgdGhpcy5sb2NhbGl6YXRpb25TZXJ2aWNlLmdldCgnY2xvc2VUaXRsZScpO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBUb29sdGlwQ29udGVudENvbXBvbmVudC5wcm90b3R5cGUuY2FsbG91dFBvc2l0aW9uQ2xhc3MgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAndG9wJzogJ2stY2FsbG91dC1zJyxcbiAgICAgICAgICAgICdsZWZ0JzogJ2stY2FsbG91dC1lJyxcbiAgICAgICAgICAgICdib3R0b20nOiAnay1jYWxsb3V0LW4nLFxuICAgICAgICAgICAgJ3JpZ2h0JzogJ2stY2FsbG91dC13J1xuICAgICAgICB9W3RoaXMucG9zaXRpb25dO1xuICAgIH07XG4gICAgVG9vbHRpcENvbnRlbnRDb21wb25lbnQucHJvdG90eXBlLm9uQ2xvc2VDbGljayA9IGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLmNsb3NlLmVtaXQoKTtcbiAgICB9O1xuICAgIFRvb2x0aXBDb250ZW50Q29tcG9uZW50LnByb3RvdHlwZS51cGRhdGVDYWxsb3V0UG9zaXRpb24gPSBmdW5jdGlvbiAocG9zaXRpb24sIGlzRmxpcCkge1xuICAgICAgICBpZiAoIXRoaXMuY2FsbG91dCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHZhciBjYWxsb3V0ID0gdGhpcy5jb250ZW50Lm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLmstY2FsbG91dCcpO1xuICAgICAgICB2YXIgaXNWZXJ0aWNhbCA9IHBvc2l0aW9uID09PSAndG9wJyB8fCBwb3NpdGlvbiA9PT0gJ2JvdHRvbSc7XG4gICAgICAgIHZhciBzaXplID0gaXNWZXJ0aWNhbCA/ICd3aWR0aCcgOiAnaGVpZ2h0JztcbiAgICAgICAgdmFyIGRpciA9IGlzVmVydGljYWwgPyAnbGVmdCcgOiAndG9wJztcbiAgICAgICAgdmFyIG9mZnNldFByb3BlcnR5ID0gaXNWZXJ0aWNhbCA/ICdtYXJnaW5MZWZ0JyA6ICdtYXJnaW5Ub3AnO1xuICAgICAgICB2YXIgY2FsbG91dFNpemUgPSBjYWxsb3V0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpW3NpemVdO1xuICAgICAgICB2YXIgYW5jaG9yQ2VudGVyID0gZ2V0Q2VudGVyT2Zmc2V0KHRoaXMuYW5jaG9yLm5hdGl2ZUVsZW1lbnQsIGRpciwgc2l6ZSk7XG4gICAgICAgIHZhciBjb250ZW50Q2VudGVyID0gZ2V0Q2VudGVyT2Zmc2V0KHRoaXMuY29udGVudC5uYXRpdmVFbGVtZW50LCBkaXIsIHNpemUpO1xuICAgICAgICB2YXIgZGlmZiA9IE1hdGguYWJzKGNvbnRlbnRDZW50ZXIgLSBhbmNob3JDZW50ZXIpO1xuICAgICAgICBpZiAoZGlmZiA+IDEgfHwgZGlmZiA9PT0gMCB8fCBNYXRoLnJvdW5kKGRpZmYpID09PSAwKSB7XG4gICAgICAgICAgICB2YXIgbmV3TWFyZ2luID0gY29udGVudENlbnRlciAtIGFuY2hvckNlbnRlciArIChjYWxsb3V0U2l6ZSAvIDIpO1xuICAgICAgICAgICAgY2FsbG91dC5zdHlsZVtvZmZzZXRQcm9wZXJ0eV0gPSAtbmV3TWFyZ2luICsgXCJweFwiO1xuICAgICAgICB9XG4gICAgICAgIHZhciBjYWxsb3V0U3R5bGVzID0gdGhpcy5jYWxsb3V0U3R5bGVzKHBvc2l0aW9uLCBjYWxsb3V0U2l6ZSwgaXNGbGlwKTtcbiAgICAgICAgT2JqZWN0LmtleXMoY2FsbG91dFN0eWxlcykuZm9yRWFjaChmdW5jdGlvbiAoc3R5bGUpIHtcbiAgICAgICAgICAgIGNhbGxvdXQuc3R5bGVbc3R5bGVdID0gY2FsbG91dFN0eWxlc1tzdHlsZV07XG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgVG9vbHRpcENvbnRlbnRDb21wb25lbnQuZGVjb3JhdG9ycyA9IFtcbiAgICAgICAgeyB0eXBlOiBDb21wb25lbnQsIGFyZ3M6IFt7XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdG9yOiAna2VuZG8tdG9vbHRpcCcsXG4gICAgICAgICAgICAgICAgICAgIHRlbXBsYXRlOiBcIlxcbiAgICAgICAgPG5nLWNvbnRhaW5lciBrZW5kb1Rvb2x0aXBMb2NhbGl6ZWRNZXNzYWdlc1xcbiAgICAgICAgICAgIGkxOG4tY2xvc2VUaXRsZT1cXFwia2VuZG8udG9vbHRpcC5jbG9zZVRpdGxlfFRoZSB0aXRsZSBvZiB0aGUgY2xvc2UgYnV0dG9uXFxcIlxcbiAgICAgICAgICAgIGNsb3NlVGl0bGU9XFxcIkNsb3NlXFxcIlxcbiAgICAgICAgPlxcbiAgICAgICAgPC9uZy1jb250YWluZXI+XFxuXFxuICAgICAgICA8ZGl2IGNsYXNzPVxcXCJrLXRvb2x0aXAtY29udGVudFxcXCI+XFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cXFwiay10b29sdGlwLXRpdGxlXFxcIiAqbmdJZj1cXFwidGl0bGVUZW1wbGF0ZVxcXCI+XFxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxcbiAgICAgICAgICAgICAgICAgICAgW25nSWZdPVxcXCJ0aXRsZVRlbXBsYXRlXFxcIlxcbiAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVxcXCJ0aXRsZVRlbXBsYXRlXFxcIlxcbiAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cXFwieyAkaW1wbGljaXQ6IGFuY2hvciwgYW5jaG9yOiBhbmNob3IgfVxcXCI+XFxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XFxuICAgICAgICAgICAgPC9kaXY+XFxuXFxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlXFxuICAgICAgICAgICAgICAgIFtuZ0lmXT1cXFwidGVtcGxhdGVSZWZcXFwiXFxuICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cXFwidGVtcGxhdGVSZWZcXFwiXFxuICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XFxcInsgJGltcGxpY2l0OiBhbmNob3IsIGFuY2hvcjogYW5jaG9yIH1cXFwiPlxcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XFxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlXFxuICAgICAgICAgICAgICAgIFtuZ0lmXT1cXFwidGVtcGxhdGVTdHJpbmdcXFwiPlxcbiAgICAgICAgICAgICAgICB7eyB0ZW1wbGF0ZVN0cmluZyB9fVxcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XFxuICAgICAgICA8L2Rpdj5cXG5cXG4gICAgICAgIDxkaXYgKm5nSWY9XFxcImNsb3NhYmxlXFxcIiBjbGFzcz1cXFwiay10b29sdGlwLWJ1dHRvblxcXCIgKGNsaWNrKT1cXFwib25DbG9zZUNsaWNrKCRldmVudClcXFwiPlxcbiAgICAgICAgICAgIDxhIGhyZWY9XFxcIiNcXFwiIGNsYXNzPVxcXCJrLWljb24gay1pLWNsb3NlXFxcIiBbYXR0ci50aXRsZV09XFxcImNsb3NlQnV0dG9uVGl0bGVcXFwiPjwvYT5cXG4gICAgICAgIDwvZGl2PlxcblxcbiAgICAgICAgPGRpdiBjbGFzcz1cXFwiay1jYWxsb3V0XFxcIiAqbmdJZj1cXFwiY2FsbG91dFxcXCIgW25nQ2xhc3NdPVxcXCJjYWxsb3V0UG9zaXRpb25DbGFzcygpXFxcIj48L2Rpdj5cXG4gICAgXCIsXG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWxpemF0aW9uU2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm92aWRlOiBMMTBOX1BSRUZJWCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VWYWx1ZTogJ2tlbmRvLnRvb2x0aXAnXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICB9LF0gfSxcbiAgICBdO1xuICAgIC8qKiBAbm9jb2xsYXBzZSAqL1xuICAgIFRvb2x0aXBDb250ZW50Q29tcG9uZW50LmN0b3JQYXJhbWV0ZXJzID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gW1xuICAgICAgICB7IHR5cGU6IEVsZW1lbnRSZWYgfSxcbiAgICAgICAgeyB0eXBlOiBMb2NhbGl6YXRpb25TZXJ2aWNlIH1cbiAgICBdOyB9O1xuICAgIFRvb2x0aXBDb250ZW50Q29tcG9uZW50LnByb3BEZWNvcmF0b3JzID0ge1xuICAgICAgICBkaXJlY3Rpb246IFt7IHR5cGU6IEhvc3RCaW5kaW5nLCBhcmdzOiBbJ2F0dHIuZGlyJyxdIH1dLFxuICAgICAgICBjbG9zZTogW3sgdHlwZTogT3V0cHV0IH1dLFxuICAgICAgICBjc3NDbGFzc2VzOiBbeyB0eXBlOiBIb3N0QmluZGluZywgYXJnczogWydjbGFzcycsXSB9XSxcbiAgICAgICAgY2xhc3NOYW1lOiBbeyB0eXBlOiBIb3N0QmluZGluZywgYXJnczogWydjbGFzcy5rLXRvb2x0aXAtY2xvc2FibGUnLF0gfV0sXG4gICAgICAgIGNzc1Bvc2l0aW9uOiBbeyB0eXBlOiBIb3N0QmluZGluZywgYXJnczogWydzdHlsZS5wb3NpdGlvbicsXSB9XSxcbiAgICAgICAgdG9vbHRpcFdpZHRoOiBbeyB0eXBlOiBIb3N0QmluZGluZywgYXJnczogWydzdHlsZS53aWR0aC5weCcsXSB9LCB7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICB0b29sdGlwSGVpZ2h0OiBbeyB0eXBlOiBIb3N0QmluZGluZywgYXJnczogWydzdHlsZS5oZWlnaHQucHgnLF0gfSwgeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgdGl0bGVUZW1wbGF0ZTogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGFuY2hvcjogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGNsb3NhYmxlOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgdGVtcGxhdGVSZWY6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICB0ZW1wbGF0ZVN0cmluZzogW3sgdHlwZTogSW5wdXQgfV1cbiAgICB9O1xuICAgIHJldHVybiBUb29sdGlwQ29udGVudENvbXBvbmVudDtcbn0oKSk7XG5cbi8qKlxuICogUmVwcmVzZW50cyB0aGUgW0tlbmRvIFVJIFRvb2x0aXAgZGlyZWN0aXZlIGZvciBBbmd1bGFyXSh7JSBzbHVnIG92ZXJ2aWV3X3Rvb2x0aXAgJX0pLlxuICogVXNlZCB0byBkaXNwbGF5IGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gdGhhdCBpcyByZWxhdGVkIHRvIGFuIGVsZW1lbnQuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzLW5vLXJ1blxuICogPGRpdiBrZW5kb1Rvb2x0aXA+XG4gKiAgICA8YSB0aXRsZT1cIlRvb2x0aXAgdGl0bGVcIiBocmVmPVwiZm9vXCI+Zm9vPC9hPlxuICogPC9kaXY+XG4gKiBgYGBcbiAqL1xudmFyIFRvb2x0aXBEaXJlY3RpdmUgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gVG9vbHRpcERpcmVjdGl2ZSh0b29sdGlwV3JhcHBlciwgbmdab25lLCByZW5kZXJlciwgcG9wdXBTZXJ2aWNlLCBzZXR0aW5ncywgbGVnYWN5U2V0dGluZ3MpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcbiAgICAgICAgdGhpcy50b29sdGlwV3JhcHBlciA9IHRvb2x0aXBXcmFwcGVyO1xuICAgICAgICB0aGlzLm5nWm9uZSA9IG5nWm9uZTtcbiAgICAgICAgdGhpcy5yZW5kZXJlciA9IHJlbmRlcmVyO1xuICAgICAgICB0aGlzLnBvcHVwU2VydmljZSA9IHBvcHVwU2VydmljZTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFNwZWNpZmllcyBhIHNlbGVjdG9yIGZvciBlbGVtZW50cyB3aXRoaW4gYSBjb250YWluZXIgd2hpY2ggd2lsbCBkaXNwbGF5IGEgdG9vbHRpcFxuICAgICAgICAgKiAoW3NlZSBleGFtcGxlXSh7JSBzbHVnIGFuY2hvcmVsZW1lbnRzX3Rvb2x0aXAgJX0pKS4gVGhlIHBvc3NpYmxlIHZhbHVlcyBpbmNsdWRlIGFueVxuICAgICAgICAgKiBET00gYHNlbGVjdG9yYC4gVGhlIGRlZmF1bHQgdmFsdWUgaXMgYFt0aXRsZV1gLlxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5maWx0ZXIgPSAnW3RpdGxlXSc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBTcGVjaWZpZXMgdGhlIHBvc2l0aW9uIG9mIHRoZSBUb29sdGlwIHRoYXQgaXMgcmVsYXRpdmUgdG8gdGhlXG4gICAgICAgICAqIGFuY2hvciBlbGVtZW50IChbc2VlIGV4YW1wbGVdKHslIHNsdWcgcG9zaXRpb25pbmdfdG9vbHRpcCAlfSkpLlxuICAgICAgICAgKlxuICAgICAgICAgKiBUaGUgcG9zc2libGUgdmFsdWVzIGFyZTpcbiAgICAgICAgICogKiBgdG9wYCAoZGVmYXVsdClcbiAgICAgICAgICogKiBgYm90dG9tYFxuICAgICAgICAgKiAqIGBsZWZ0YFxuICAgICAgICAgKiAqIGByaWdodGBcbiAgICAgICAgICovXG4gICAgICAgIHRoaXMucG9zaXRpb24gPSAndG9wJztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFNwZWNpZmllcyB0aGUgZGVsYXkgaW4gbWlsbGlzZWNvbmRzIGJlZm9yZSB0aGUgVG9vbHRpcCBpcyBzaG93bi5cbiAgICAgICAgICogKiBgMTAwYCAoZGVmYXVsdCkgbWlsbGlzZWNvbmRzLlxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5zaG93QWZ0ZXIgPSAxMDA7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBTcGVjaWZpZXMgaWYgdGhlINCib29sdGlwIHdpbGwgZGlzcGxheSBhIGNhbGxvdXQgYXJyb3cuXG4gICAgICAgICAqXG4gICAgICAgICAqIFRoZSBwb3NzaWJsZSB2YWx1ZXMgYXJlOlxuICAgICAgICAgKiAqIGB0cnVlYCAoZGVmYXVsdClcbiAgICAgICAgICogKiBgZmFsc2VgXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLmNhbGxvdXQgPSB0cnVlO1xuICAgICAgICAvKipcbiAgICAgICAgICogU3BlY2lmaWVzIGlmIHRoZSDQom9vbHRpcCB3aWxsIGRpc3BsYXkgYSAqKkNsb3NlKiogYnV0dG9uXG4gICAgICAgICAqIChbc2VlIGV4YW1wbGVdKHslIHNsdWcgY2xvc2FibGVfdG9vbHRpcCAlfSkpLlxuICAgICAgICAgKlxuICAgICAgICAgKiBUaGUgcG9zc2libGUgdmFsdWVzIGFyZTpcbiAgICAgICAgICogKiBgdHJ1ZWBcbiAgICAgICAgICogKiBgZmFsc2VgXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLmNsb3NhYmxlID0gZmFsc2U7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBTcGVjaWZpZXMgdGhlIG9mZnNldCBpbiBwaXhlbHMgYmV0d2VlbiB0aGUgVG9vbHRpcCBhbmQgdGhlIGFuY2hvci4gRGVmYXVsdHMgdG8gYDZgIHBpeGVscy5cbiAgICAgICAgICogSWYgdGhlIGBjYWxsb3V0YCBwcm9wZXJ0eSBpcyBzZXQgdG8gYHRydWVgLCB0aGUgb2Zmc2V0IGlzIHJlbmRlcmVkIGZyb20gdGhlIGNhbGxvdXQgYXJyb3cuXG4gICAgICAgICAqIElmIHRoZSBgY2FsbG91dGAgcHJvcGVydHkgaXMgc2V0IHRvIGBmYWxzZWAsIHRoZSBvZmZzZXQgaXMgcmVuZGVyZWQgZnJvbSB0aGUgY29udGVudCBvZiB0aGUgVG9vbHRpcC5cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMub2Zmc2V0ID0gNjtcbiAgICAgICAgdGhpcy5hbmNob3IgPSBudWxsO1xuICAgICAgICB0aGlzLnZhbGlkUG9zaXRpb25zID0gWyd0b3AnLCAnYm90dG9tJywgJ3JpZ2h0JywgJ2xlZnQnXTtcbiAgICAgICAgdGhpcy52YWxpZFNob3dPcHRpb25zID0gWydob3ZlcicsICdjbGljaycsICdub25lJ107XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywgc2V0dGluZ3MsIGxlZ2FjeVNldHRpbmdzKTtcbiAgICAgICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBfdGhpcy50b29sdGlwV3JhcHBlci5uYXRpdmVFbGVtZW50O1xuICAgICAgICAgICAgX3RoaXMuYW5jaG9yVGl0bGVTdWJzY3JpcHRpb24gPSBmcm9tRXZlbnQod3JhcHBlciwgJ21vdXNlb3ZlcicpXG4gICAgICAgICAgICAgICAgLnBpcGUoZmlsdGVyKGZ1bmN0aW9uICgpIHsgcmV0dXJuIF90aGlzLmZpbHRlciAhPT0gJyc7IH0pKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgICAgICB2YXIgZmlsdGVyRWxlbWVudCA9IGNsb3Nlc3QoZS50YXJnZXQsIF90aGlzLmZpbHRlcik7XG4gICAgICAgICAgICAgICAgaWYgKGZpbHRlckVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgX3RoaXMuaGlkZUVsZW1lbnRUaXRsZSh7IG5hdGl2ZUVsZW1lbnQ6IGZpbHRlckVsZW1lbnQgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBfdGhpcy5tb3VzZU92ZXJTdWJzY3JpcHRpb24gPSBmcm9tRXZlbnQod3JhcHBlciwgJ21vdXNlb3ZlcicpXG4gICAgICAgICAgICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDEwMCksIGZpbHRlcihmdW5jdGlvbiAoKSB7IHJldHVybiBfdGhpcy5maWx0ZXIgIT09ICcnOyB9KSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKGZ1bmN0aW9uIChlKSB7IHJldHVybiBfdGhpcy5vbk1vdXNlT3ZlcihlKTsgfSk7XG4gICAgICAgICAgICBfdGhpcy5tb3VzZU91dFN1YnNjcmlwdGlvbiA9IGZyb21FdmVudCh3cmFwcGVyLCAnbW91c2VvdXQnKVxuICAgICAgICAgICAgICAgIC5waXBlKGRlYm91bmNlVGltZSgxMDApKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoZnVuY3Rpb24gKGUpIHsgcmV0dXJuIF90aGlzLm9uTW91c2VPdXQoZSk7IH0pO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFRvb2x0aXBEaXJlY3RpdmUucHJvdG90eXBlLCBcInRvb2x0aXBUZW1wbGF0ZVwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpcy50ZW1wbGF0ZTsgfSxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFNldHMgdGhlIGNvbnRlbnQgb2YgdGhlIFRvb2x0aXAgYXMgYSB0ZW1wbGF0ZSByZWZlcmVuY2VcbiAgICAgICAgICogKFtzZWUgZXhhbXBsZV0oeyUgc2x1ZyB0ZW1wbGF0ZXNfdG9vbHRpcCAlfSkpLlxuICAgICAgICAgKi9cbiAgICAgICAgc2V0OiBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMudGVtcGxhdGUgPSB2YWx1ZTtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgLyoqXG4gICAgICogU2hvd3MgdGhlIFRvb2x0aXAuXG4gICAgICogQHBhcmFtIGFuY2hvciZtZGFzaDsgRWxlbWVudFJlZnxFbGVtZW50LlxuICAgICAqIFNwZWNpZmllcyB0aGUgZWxlbWVudCB0aGF0IHdpbGwgYmUgdXNlZCBhcyBhbiBhbmNob3IuIFRoZSBUb29sdGlwIG9wZW5zIHJlbGF0aXZlIHRvIHRoYXQgZWxlbWVudC5cbiAgICAgKi9cbiAgICBUb29sdGlwRGlyZWN0aXZlLnByb3RvdHlwZS5zaG93ID0gZnVuY3Rpb24gKGFuY2hvcikge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICBpZiAodGhpcy5wb3B1cFJlZikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhbmNob3IgaW5zdGFuY2VvZiBFbGVtZW50KSB7XG4gICAgICAgICAgICBhbmNob3IgPSB7IG5hdGl2ZUVsZW1lbnQ6IGFuY2hvciB9O1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuYW5jaG9yID0gYW5jaG9yO1xuICAgICAgICBpZiAodGhpcy5zaG93T24gPT09ICdob3ZlcicpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnBvcHVwUmVmKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuc2hvd1RpbWVvdXQpO1xuICAgICAgICAgICAgdGhpcy5zaG93VGltZW91dCA9IHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsgcmV0dXJuIF90aGlzLnNob3dDb250ZW50KF90aGlzLmFuY2hvcik7IH0sIHRoaXMuc2hvd0FmdGVyKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaGlkZUVsZW1lbnRUaXRsZSh0aGlzLmFuY2hvcik7XG4gICAgICAgICAgICB0aGlzLnNob3dDb250ZW50KHRoaXMuYW5jaG9yKTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgLyoqXG4gICAgICogSGlkZXMgdGhlIFRvb2x0aXAuXG4gICAgICovXG4gICAgVG9vbHRpcERpcmVjdGl2ZS5wcm90b3R5cGUuaGlkZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuc2hvd1RpbWVvdXQpO1xuICAgICAgICB2YXIgYW5jaG9yID0gdGhpcy5hbmNob3IgJiYgdGhpcy5hbmNob3IubmF0aXZlRWxlbWVudDtcbiAgICAgICAgaWYgKGFuY2hvciAmJiBhbmNob3IuZ2V0QXR0cmlidXRlKCdkYXRhLXRpdGxlJykpIHtcbiAgICAgICAgICAgIGlmICghYW5jaG9yLmdldEF0dHJpYnV0ZSgndGl0bGUnKSkge1xuICAgICAgICAgICAgICAgIGFuY2hvci5zZXRBdHRyaWJ1dGUoJ3RpdGxlJywgYW5jaG9yLmdldEF0dHJpYnV0ZSgnZGF0YS10aXRsZScpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGFuY2hvci5zZXRBdHRyaWJ1dGUoJ2RhdGEtdGl0bGUnLCAnJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMucG9wdXBNb3VzZU91dFN1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgdGhpcy5wb3B1cE1vdXNlT3V0U3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuY2xvc2VDbGlja1N1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgdGhpcy5jbG9zZUNsaWNrU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jbG9zZVBvcHVwKCk7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBUb2dnbGUgdmlzaWJpbGl0eSBvZiB0aGUgVG9vbHRpcC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBhbmNob3ImbWRhc2g7IEVsZW1lbnRSZWZ8RWxlbWVudC4gU3BlY2lmaWVzIHRoZSBlbGVtZW50IHRoYXQgd2lsbCBiZSB1c2VkIGFzIGFuIGFuY2hvci5cbiAgICAgKiBAcGFyYW0gc2hvdyZtZGFzaDsgT3B0aW9uYWwuIEJvb2xlYW4uIFNwZWNpZmllcyBpZiB0aGUgVG9vbHRpcCB3aWxsIGJlIHJlbmRlcmVkLlxuICAgICAqL1xuICAgIFRvb2x0aXBEaXJlY3RpdmUucHJvdG90eXBlLnRvZ2dsZSA9IGZ1bmN0aW9uIChhbmNob3IsIHNob3cpIHtcbiAgICAgICAgdmFyIHByZXZpb3VzQW5jaG9yID0gdGhpcy5hbmNob3IgJiYgdGhpcy5hbmNob3IubmF0aXZlRWxlbWVudDtcbiAgICAgICAgaWYgKGFuY2hvciBpbnN0YW5jZW9mIEVsZW1lbnQpIHtcbiAgICAgICAgICAgIGFuY2hvciA9IHsgbmF0aXZlRWxlbWVudDogYW5jaG9yIH07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHByZXZpb3VzQW5jaG9yICE9PSBhbmNob3IubmF0aXZlRWxlbWVudCkge1xuICAgICAgICAgICAgdGhpcy5oaWRlKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHByZXZpb3VzQW5jaG9yID09PSBhbmNob3IubmF0aXZlRWxlbWVudCAmJiB0aGlzLnNob3dPbiA9PT0gJ2NsaWNrJykge1xuICAgICAgICAgICAgdGhpcy5oaWRlKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiBzaG93ID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgc2hvdyA9ICF0aGlzLnBvcHVwUmVmO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzaG93KSB7XG4gICAgICAgICAgICB0aGlzLnNob3coYW5jaG9yKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaGlkZSgpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBUb29sdGlwRGlyZWN0aXZlLnByb3RvdHlwZS5uZ09uSW5pdCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKHRoaXMuc2hvd09uID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuc2hvd09uID0gJ2hvdmVyJztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnZlcmlmeVByb3BlcnRpZXMoKTtcbiAgICB9O1xuICAgIFRvb2x0aXBEaXJlY3RpdmUucHJvdG90eXBlLm5nT25DaGFuZ2VzID0gZnVuY3Rpb24gKGNoYW5nZXMpIHtcbiAgICAgICAgaWYgKGNoYW5nZXMuc2hvd09uKSB7XG4gICAgICAgICAgICB0aGlzLnN1YnNjcmliZUNsaWNrKCk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIFRvb2x0aXBEaXJlY3RpdmUucHJvdG90eXBlLm5nQWZ0ZXJWaWV3Q2hlY2tlZCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKCF0aGlzLnBvcHVwUmVmKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuYW5jaG9yICYmXG4gICAgICAgICAgICAhaGFzUGFyZW50KHRoaXMuYW5jaG9yLm5hdGl2ZUVsZW1lbnQgfHwgdGhpcy5hbmNob3IsIHRoaXMudG9vbHRpcFdyYXBwZXIubmF0aXZlRWxlbWVudCkpIHtcbiAgICAgICAgICAgIHRoaXMuYW5jaG9yID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMuaGlkZSgpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBUb29sdGlwRGlyZWN0aXZlLnByb3RvdHlwZS5uZ09uRGVzdHJveSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdGhpcy5oaWRlKCk7XG4gICAgICAgIHRoaXMudGVtcGxhdGUgPSBudWxsO1xuICAgICAgICB0aGlzLmFuY2hvclRpdGxlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMubW91c2VPdmVyU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMubW91c2VPdXRTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgaWYgKHRoaXMubW91c2VDbGlja1N1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgdGhpcy5tb3VzZUNsaWNrU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMucG9wdXBQb3NpdGlvbkNoYW5nZVN1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgdGhpcy5wb3B1cFBvc2l0aW9uQ2hhbmdlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMucG9wdXBNb3VzZU91dFN1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgdGhpcy5wb3B1cE1vdXNlT3V0U3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIFRvb2x0aXBEaXJlY3RpdmUucHJvdG90eXBlLnNob3dDb250ZW50ID0gZnVuY3Rpb24gKGFuY2hvclJlZikge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICBpZiAoIWFuY2hvclJlZi5uYXRpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgnZGF0YS10aXRsZScpICYmICF0aGlzLnRlbXBsYXRlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5uZ1pvbmUucnVuKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIF90aGlzLm9wZW5Qb3B1cChhbmNob3JSZWYpO1xuICAgICAgICAgICAgX3RoaXMuYmluZENvbnRlbnQoX3RoaXMucG9wdXBSZWYuY29udGVudCwgYW5jaG9yUmVmKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMucG9wdXBSZWYucG9wdXBBbmNob3JWaWV3cG9ydExlYXZlXG4gICAgICAgICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgICAgICAgLnN1YnNjcmliZShmdW5jdGlvbiAoKSB7IHJldHVybiBfdGhpcy5oaWRlKCk7IH0pO1xuICAgIH07XG4gICAgVG9vbHRpcERpcmVjdGl2ZS5wcm90b3R5cGUuYmluZENvbnRlbnQgPSBmdW5jdGlvbiAoY29udGVudENvbXBvbmVudCwgYW5jaG9yUmVmKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIHZhciBjb250ZW50ID0gY29udGVudENvbXBvbmVudC5pbnN0YW5jZTtcbiAgICAgICAgdGhpcy5jbG9zZUNsaWNrU3Vic2NyaXB0aW9uID0gY29udGVudC5jbG9zZVxuICAgICAgICAgICAgLnN1YnNjcmliZShmdW5jdGlvbiAoKSB7IF90aGlzLmhpZGUoKTsgfSk7XG4gICAgICAgIGlmICghdGhpcy50ZW1wbGF0ZSkge1xuICAgICAgICAgICAgY29udGVudC50ZW1wbGF0ZVN0cmluZyA9IHRoaXMuYW5jaG9yLm5hdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdkYXRhLXRpdGxlJyk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjb250ZW50LnRlbXBsYXRlUmVmID0gdGhpcy50ZW1wbGF0ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy50aXRsZVRlbXBsYXRlKSB7XG4gICAgICAgICAgICBjb250ZW50LnRpdGxlVGVtcGxhdGUgPSB0aGlzLnRpdGxlVGVtcGxhdGU7XG4gICAgICAgIH1cbiAgICAgICAgY29udGVudC5jbG9zZVRpdGxlID0gdGhpcy5jbG9zZVRpdGxlO1xuICAgICAgICBjb250ZW50LmFuY2hvciA9IGFuY2hvclJlZjtcbiAgICAgICAgY29udGVudC5jYWxsb3V0ID0gdGhpcy5jYWxsb3V0O1xuICAgICAgICBjb250ZW50LmNsb3NhYmxlID0gdGhpcy5jbG9zYWJsZTtcbiAgICAgICAgY29udGVudC5wb3NpdGlvbiA9IHRoaXMucG9zaXRpb247XG4gICAgICAgIGNvbnRlbnQudG9vbHRpcFdpZHRoID0gdGhpcy50b29sdGlwV2lkdGg7XG4gICAgICAgIGNvbnRlbnQudG9vbHRpcEhlaWdodCA9IHRoaXMudG9vbHRpcEhlaWdodDtcbiAgICAgICAgdGhpcy5wb3B1cFJlZi5jb250ZW50LmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICB9O1xuICAgIFRvb2x0aXBEaXJlY3RpdmUucHJvdG90eXBlLmhpZGVFbGVtZW50VGl0bGUgPSBmdW5jdGlvbiAoZWxlbWVudFJlZikge1xuICAgICAgICB2YXIgZWxlbWVudCA9IGVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgaWYgKGVsZW1lbnQuZ2V0QXR0cmlidXRlKCd0aXRsZScpKSB7XG4gICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgnZGF0YS10aXRsZScsIGVsZW1lbnQuZ2V0QXR0cmlidXRlKCd0aXRsZScpKTtcbiAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCd0aXRsZScsICcnKTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgVG9vbHRpcERpcmVjdGl2ZS5wcm90b3R5cGUub3BlblBvcHVwID0gZnVuY3Rpb24gKGFuY2hvclJlZikge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICB2YXIgYWxpZ25TZXR0aW5ncyA9IGFsaWduKHRoaXMucG9zaXRpb24sIHRoaXMub2Zmc2V0KTtcbiAgICAgICAgdmFyIGFuY2hvckFsaWduID0gYWxpZ25TZXR0aW5ncy5hbmNob3JBbGlnbjtcbiAgICAgICAgdmFyIHBvcHVwQWxpZ24gPSBhbGlnblNldHRpbmdzLnBvcHVwQWxpZ247XG4gICAgICAgIHZhciBwb3B1cE1hcmdpbiA9IGFsaWduU2V0dGluZ3MucG9wdXBNYXJnaW47XG4gICAgICAgIHRoaXMucG9wdXBSZWYgPSB0aGlzLnBvcHVwU2VydmljZS5vcGVuKHtcbiAgICAgICAgICAgIGFuY2hvcjogYW5jaG9yUmVmLFxuICAgICAgICAgICAgYW5jaG9yQWxpZ246IGFuY2hvckFsaWduLFxuICAgICAgICAgICAgYW5pbWF0ZTogZmFsc2UsXG4gICAgICAgICAgICBjb250ZW50OiBUb29sdGlwQ29udGVudENvbXBvbmVudCxcbiAgICAgICAgICAgIGNvbGxpc2lvbjogY29sbGlzaW9uKHRoaXMuY29sbGlzaW9uLCB0aGlzLnBvc2l0aW9uKSxcbiAgICAgICAgICAgIG1hcmdpbjogcG9wdXBNYXJnaW4sXG4gICAgICAgICAgICBwb3B1cEFsaWduOiBwb3B1cEFsaWduLFxuICAgICAgICAgICAgcG9wdXBDbGFzczogJ2stcG9wdXAtdHJhbnNwYXJlbnQnXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMucG9wdXBSZWYucG9wdXBFbGVtZW50LCAnay10b29sdGlwLXdyYXBwZXInKTtcbiAgICAgICAgaWYgKHRoaXMudG9vbHRpcENsYXNzKSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMucG9wdXBSZWYucG9wdXBFbGVtZW50LCB0aGlzLnRvb2x0aXBDbGFzcyk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHBvcHVwSW5zdGFuY2UgPSB0aGlzLnBvcHVwUmVmLmNvbnRlbnQuaW5zdGFuY2U7XG4gICAgICAgIGlmIChwb3B1cEluc3RhbmNlLmNhbGxvdXQpIHtcbiAgICAgICAgICAgIHRoaXMucG9wdXBQb3NpdGlvbkNoYW5nZVN1YnNjcmlwdGlvbiA9IHRoaXMucG9wdXBSZWYucG9wdXBQb3NpdGlvbkNoYW5nZVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoZnVuY3Rpb24gKF9hKSB7XG4gICAgICAgICAgICAgICAgdmFyIGZsaXAgPSBfYS5mbGlwO1xuICAgICAgICAgICAgICAgIHZhciBpc0ZsaXAgPSBmbGlwLmhvcml6b250YWwgPT09IHRydWUgfHwgZmxpcC52ZXJ0aWNhbCA9PT0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBwb3B1cEluc3RhbmNlLnVwZGF0ZUNhbGxvdXRQb3NpdGlvbihfdGhpcy5wb3NpdGlvbiwgaXNGbGlwKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnNob3dPbiA9PT0gJ2hvdmVyJykge1xuICAgICAgICAgICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHZhciBwb3B1cCA9IF90aGlzLnBvcHVwUmVmLnBvcHVwRWxlbWVudDtcbiAgICAgICAgICAgICAgICBfdGhpcy5wb3B1cE1vdXNlT3V0U3Vic2NyaXB0aW9uID0gZnJvbUV2ZW50KHBvcHVwLCAnbW91c2VvdXQnKVxuICAgICAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKGZ1bmN0aW9uIChlKSB7IHJldHVybiBfdGhpcy5vbk1vdXNlT3V0KGUpOyB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBUb29sdGlwRGlyZWN0aXZlLnByb3RvdHlwZS5jbG9zZVBvcHVwID0gZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAodGhpcy5wb3B1cFJlZikge1xuICAgICAgICAgICAgdGhpcy5wb3B1cFJlZi5jbG9zZSgpO1xuICAgICAgICAgICAgdGhpcy5wb3B1cFJlZiA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMucG9wdXBQb3NpdGlvbkNoYW5nZVN1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgdGhpcy5wb3B1cFBvc2l0aW9uQ2hhbmdlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIFRvb2x0aXBEaXJlY3RpdmUucHJvdG90eXBlLnN1YnNjcmliZUNsaWNrID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICBpZiAodGhpcy5tb3VzZUNsaWNrU3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLm1vdXNlQ2xpY2tTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5zaG93T24gPT09ICdjbGljaycpIHtcbiAgICAgICAgICAgIHRoaXMubW91c2VDbGlja1N1YnNjcmlwdGlvbiA9IGZyb21FdmVudChkb2N1bWVudCwgJ2NsaWNrJylcbiAgICAgICAgICAgICAgICAucGlwZShmaWx0ZXIoZnVuY3Rpb24gKCkgeyByZXR1cm4gX3RoaXMuZmlsdGVyICE9PSAnJzsgfSkpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZShmdW5jdGlvbiAoZSkgeyByZXR1cm4gX3RoaXMub25Nb3VzZUNsaWNrKGUsIF90aGlzLnRvb2x0aXBXcmFwcGVyLm5hdGl2ZUVsZW1lbnQpOyB9KTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgVG9vbHRpcERpcmVjdGl2ZS5wcm90b3R5cGUub25Nb3VzZUNsaWNrID0gZnVuY3Rpb24gKGUsIHdyYXBwZXIpIHtcbiAgICAgICAgdmFyIHRhcmdldCA9IGUudGFyZ2V0O1xuICAgICAgICB2YXIgZmlsdGVyRWxlbWVudCA9IGNsb3Nlc3QodGFyZ2V0LCB0aGlzLmZpbHRlcik7XG4gICAgICAgIHZhciBwb3B1cCA9IHRoaXMucG9wdXBSZWYgJiYgdGhpcy5wb3B1cFJlZi5wb3B1cEVsZW1lbnQ7XG4gICAgICAgIGlmIChwb3B1cCkge1xuICAgICAgICAgICAgaWYgKHBvcHVwLmNvbnRhaW5zKHRhcmdldCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy5jbG9zYWJsZSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAod3JhcHBlci5jb250YWlucyh0YXJnZXQpICYmIGZpbHRlckVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMudG9nZ2xlKGZpbHRlckVsZW1lbnQsIHRydWUpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHBvcHVwKSB7XG4gICAgICAgICAgICB0aGlzLmhpZGUoKTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgVG9vbHRpcERpcmVjdGl2ZS5wcm90b3R5cGUub25Nb3VzZU92ZXIgPSBmdW5jdGlvbiAoZSkge1xuICAgICAgICB2YXIgZmlsdGVyRWxlbWVudCA9IGNsb3Nlc3QoZS50YXJnZXQsIHRoaXMuZmlsdGVyKTtcbiAgICAgICAgaWYgKHRoaXMuc2hvd09uICE9PSAnaG92ZXInKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGZpbHRlckVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMudG9nZ2xlKGZpbHRlckVsZW1lbnQsIHRydWUpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBUb29sdGlwRGlyZWN0aXZlLnByb3RvdHlwZS5vbk1vdXNlT3V0ID0gZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgaWYgKHRoaXMuc2hvd09uICE9PSAnaG92ZXInKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuY2xvc2FibGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgcG9wdXAgPSB0aGlzLnBvcHVwUmVmICYmIHRoaXMucG9wdXBSZWYucG9wdXBFbGVtZW50O1xuICAgICAgICB2YXIgcmVsYXRlZFRhcmdldCA9IGUucmVsYXRlZFRhcmdldDtcbiAgICAgICAgaWYgKHJlbGF0ZWRUYXJnZXQgJiYgdGhpcy5hbmNob3IgJiYgY29udGFpbnModGhpcy5hbmNob3IubmF0aXZlRWxlbWVudCwgcmVsYXRlZFRhcmdldCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAocmVsYXRlZFRhcmdldCAmJiBjb250YWlucyhwb3B1cCwgcmVsYXRlZFRhcmdldCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmhpZGUoKTtcbiAgICB9O1xuICAgIFRvb2x0aXBEaXJlY3RpdmUucHJvdG90eXBlLnZlcmlmeVByb3BlcnRpZXMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmICghaXNEZXZNb2RlKCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWNvbnRhaW5zSXRlbSh0aGlzLnZhbGlkUG9zaXRpb25zLCB0aGlzLnBvc2l0aW9uKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCB2YWx1ZSBwcm92aWRlZCBmb3IgcG9zaXRpb24gcHJvcGVydHkuVGhlIGF2YWlsYWJsZSBvcHRpb25zIGFyZSAndG9wJywgJ2JvdHRvbScsICdsZWZ0Jywgb3IgJ3JpZ2h0Jy5cIik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFjb250YWluc0l0ZW0odGhpcy52YWxpZFNob3dPcHRpb25zLCB0aGlzLnNob3dPbikpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkludmFsaWQgdmFsdWUgcHJvdmlkZWQgZm9yIHNob3dPbiBwcm9wZXJ0eS5UaGUgYXZhaWxhYmxlIG9wdGlvbnMgYXJlICdob3Zlcicgb3IgJ25vbmUnLlwiKTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgVG9vbHRpcERpcmVjdGl2ZS5kZWNvcmF0b3JzID0gW1xuICAgICAgICB7IHR5cGU6IERpcmVjdGl2ZSwgYXJnczogW3tcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0b3I6ICdba2VuZG9Ub29sdGlwXScsXG4gICAgICAgICAgICAgICAgICAgIGV4cG9ydEFzOiAna2VuZG9Ub29sdGlwJ1xuICAgICAgICAgICAgICAgIH0sXSB9LFxuICAgIF07XG4gICAgLyoqIEBub2NvbGxhcHNlICovXG4gICAgVG9vbHRpcERpcmVjdGl2ZS5jdG9yUGFyYW1ldGVycyA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIFtcbiAgICAgICAgeyB0eXBlOiBFbGVtZW50UmVmIH0sXG4gICAgICAgIHsgdHlwZTogTmdab25lIH0sXG4gICAgICAgIHsgdHlwZTogUmVuZGVyZXIyIH0sXG4gICAgICAgIHsgdHlwZTogUG9wdXBTZXJ2aWNlIH0sXG4gICAgICAgIHsgdHlwZTogVG9vbHRpcFNldHRpbmdzLCBkZWNvcmF0b3JzOiBbeyB0eXBlOiBPcHRpb25hbCB9XSB9LFxuICAgICAgICB7IHR5cGU6IFRvb2x0aXBTZXR0aW5ncywgZGVjb3JhdG9yczogW3sgdHlwZTogT3B0aW9uYWwgfSwgeyB0eXBlOiBJbmplY3QsIGFyZ3M6IFtUT09MVElQX1NFVFRJTkdTLF0gfV0gfVxuICAgIF07IH07XG4gICAgVG9vbHRpcERpcmVjdGl2ZS5wcm9wRGVjb3JhdG9ycyA9IHtcbiAgICAgICAgZmlsdGVyOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgcG9zaXRpb246IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICB0aXRsZVRlbXBsYXRlOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgc2hvd09uOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgc2hvd0FmdGVyOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgY2FsbG91dDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGNsb3NhYmxlOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgb2Zmc2V0OiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgdG9vbHRpcFdpZHRoOiBbeyB0eXBlOiBJbnB1dCB9XSxcbiAgICAgICAgdG9vbHRpcEhlaWdodDogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIHRvb2x0aXBDbGFzczogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGNvbGxpc2lvbjogW3sgdHlwZTogSW5wdXQgfV0sXG4gICAgICAgIGNsb3NlVGl0bGU6IFt7IHR5cGU6IElucHV0IH1dLFxuICAgICAgICB0b29sdGlwVGVtcGxhdGU6IFt7IHR5cGU6IElucHV0IH1dXG4gICAgfTtcbiAgICByZXR1cm4gVG9vbHRpcERpcmVjdGl2ZTtcbn0oKSk7XG5cbi8qKlxuICogQGhpZGRlblxuICovXG52YXIgTG9jYWxpemVkTWVzc2FnZXNEaXJlY3RpdmUgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKExvY2FsaXplZE1lc3NhZ2VzRGlyZWN0aXZlLCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIExvY2FsaXplZE1lc3NhZ2VzRGlyZWN0aXZlKHNlcnZpY2UpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcykgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuc2VydmljZSA9IHNlcnZpY2U7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgTG9jYWxpemVkTWVzc2FnZXNEaXJlY3RpdmUuZGVjb3JhdG9ycyA9IFtcbiAgICAgICAgeyB0eXBlOiBEaXJlY3RpdmUsIGFyZ3M6IFt7XG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IENvbXBvbmVudE1lc3NhZ2VzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKGZ1bmN0aW9uICgpIHsgcmV0dXJuIExvY2FsaXplZE1lc3NhZ2VzRGlyZWN0aXZlOyB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RvcjogXCJba2VuZG9Ub29sdGlwTG9jYWxpemVkTWVzc2FnZXNdXCJcbiAgICAgICAgICAgICAgICB9LF0gfSxcbiAgICBdO1xuICAgIC8qKiBAbm9jb2xsYXBzZSAqL1xuICAgIExvY2FsaXplZE1lc3NhZ2VzRGlyZWN0aXZlLmN0b3JQYXJhbWV0ZXJzID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gW1xuICAgICAgICB7IHR5cGU6IExvY2FsaXphdGlvblNlcnZpY2UgfVxuICAgIF07IH07XG4gICAgTG9jYWxpemVkTWVzc2FnZXNEaXJlY3RpdmUucHJvcERlY29yYXRvcnMgPSB7XG4gICAgICAgIGNsb3NlVGl0bGU6IFt7IHR5cGU6IElucHV0IH1dXG4gICAgfTtcbiAgICByZXR1cm4gTG9jYWxpemVkTWVzc2FnZXNEaXJlY3RpdmU7XG59KENvbXBvbmVudE1lc3NhZ2VzKSk7XG5cbnZhciBDT01QT05FTlRfRElSRUNUSVZFUyA9IFtUb29sdGlwRGlyZWN0aXZlLCBUb29sdGlwQ29udGVudENvbXBvbmVudCwgTG9jYWxpemVkTWVzc2FnZXNEaXJlY3RpdmVdO1xudmFyIENPTVBPTkVOVF9NT0RVTEVTID0gW1BvcHVwTW9kdWxlXTtcbi8qKlxuICogUmVwcmVzZW50cyB0aGUgW05nTW9kdWxlXSh7eyBzaXRlLmRhdGEudXJscy5hbmd1bGFyWyduZ21vZHVsZWFwaSddIH19KVxuICogZGVmaW5pdGlvbiBmb3IgdGhlIFRvb2x0aXAgY29tcG9uZW50LlxuICpcbiAqIFRoZSBwYWNrYWdlIGV4cG9ydHM6XG4gKiAtIGBLZW5kb1Rvb2x0aXBEaXJlY3RpdmVgJm1kYXNoO1RoZSBUb29sdGlwIGRpcmVjdGl2ZSBjbGFzcy5cbiAqXG4gKiBAZXhhbXBsZVxuICpcbiAqIGBgYHRzLW5vLXJ1blxuICogLy8gSW1wb3J0IHRoZSBUb29sdGlwIG1vZHVsZVxuICogaW1wb3J0IHsgVG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bwcm9ncmVzcy9rZW5kby1hbmd1bGFyLXRvb2x0aXAnO1xuICpcbiAqIC8vIFRoZSBicm93c2VyIHBsYXRmb3JtIHdpdGggYSBjb21waWxlclxuICogaW1wb3J0IHsgcGxhdGZvcm1Ccm93c2VyRHluYW1pYyB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXItZHluYW1pYyc7XG4gKlxuICogaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbiAqXG4gKiAvLyBJbXBvcnQgdGhlIGFwcCBjb21wb25lbnRcbiAqIF9ATmdNb2R1bGV7e1xuICogICAgZGVjbGFyYXRpb25zOiBbQXBwQ29tcG9uZW50XSwgLy8gZGVjbGFyZSBhcHAgY29tcG9uZW50XG4gKiAgICBpbXBvcnRzOiAgICAgIFtCcm93c2VyTW9kdWxlLCBUb29sdGlwTW9kdWxlXSwgLy8gaW1wb3J0IFRvb2x0aXBNb2R1bGUgbW9kdWxlXG4gKiAgICBib290c3RyYXA6ICAgIFtBcHBDb21wb25lbnRdXG4gKiB9fVxuICogZXhwb3J0IGNsYXNzIEFwcE1vZHVsZSB7fVxuICpcbiAqIC8vIENvbXBpbGUgYW5kIGxhdW5jaCB0aGUgbW9kdWxlXG4gKiBwbGF0Zm9ybUJyb3dzZXJEeW5hbWljKCkuYm9vdHN0cmFwTW9kdWxlKEFwcE1vZHVsZSk7XG4gKiBgYGBcbiAqL1xudmFyIFRvb2x0aXBNb2R1bGUgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gVG9vbHRpcE1vZHVsZSgpIHtcbiAgICB9XG4gICAgVG9vbHRpcE1vZHVsZS5kZWNvcmF0b3JzID0gW1xuICAgICAgICB7IHR5cGU6IE5nTW9kdWxlLCBhcmdzOiBbe1xuICAgICAgICAgICAgICAgICAgICBkZWNsYXJhdGlvbnM6IFtDT01QT05FTlRfRElSRUNUSVZFU10sXG4gICAgICAgICAgICAgICAgICAgIGVudHJ5Q29tcG9uZW50czogW1Rvb2x0aXBDb250ZW50Q29tcG9uZW50XSxcbiAgICAgICAgICAgICAgICAgICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0uY29uY2F0KENPTVBPTkVOVF9NT0RVTEVTKSxcbiAgICAgICAgICAgICAgICAgICAgZXhwb3J0czogW0NPTVBPTkVOVF9ESVJFQ1RJVkVTXVxuICAgICAgICAgICAgICAgIH0sXSB9LFxuICAgIF07XG4gICAgcmV0dXJuIFRvb2x0aXBNb2R1bGU7XG59KCkpO1xuXG4vKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCB7IExvY2FsaXplZE1lc3NhZ2VzRGlyZWN0aXZlLCBUb29sdGlwQ29udGVudENvbXBvbmVudCwgVG9vbHRpcERpcmVjdGl2ZSwgVG9vbHRpcE1vZHVsZSwgVG9vbHRpcFNldHRpbmdzLCBUT09MVElQX1NFVFRJTkdTIH07XG4iXX0= + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _chart_api_elements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/api-elements.js"); + __webpack_require__.d(__webpack_exports__, "ChartAxis", function() { return _chart_api_elements__WEBPACK_IMPORTED_MODULE_0__["ChartAxis"]; }); + + __webpack_require__.d(__webpack_exports__, "ChartPane", function() { return _chart_api_elements__WEBPACK_IMPORTED_MODULE_0__["ChartPane"]; }); + + __webpack_require__.d(__webpack_exports__, "ChartPlotArea", function() { return _chart_api_elements__WEBPACK_IMPORTED_MODULE_0__["ChartPlotArea"]; }); + + __webpack_require__.d(__webpack_exports__, "findAxisByName", function() { return _chart_api_elements__WEBPACK_IMPORTED_MODULE_0__["findAxisByName"]; }); + + var _chart_aggregates_aggregates__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/aggregates/aggregates.js"); + __webpack_require__.d(__webpack_exports__, "Aggregates", function() { return _chart_aggregates_aggregates__WEBPACK_IMPORTED_MODULE_1__["default"]; }); + + var _chart_area_chart_area_chart__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/area-chart/area-chart.js"); + __webpack_require__.d(__webpack_exports__, "AreaChart", function() { return _chart_area_chart_area_chart__WEBPACK_IMPORTED_MODULE_2__["default"]; }); + + var _chart_area_chart_area_segment__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/area-chart/area-segment.js"); + __webpack_require__.d(__webpack_exports__, "AreaSegment", function() { return _chart_area_chart_area_segment__WEBPACK_IMPORTED_MODULE_3__["default"]; }); + + var _chart_axis_group_range_tracker__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/axis-group-range-tracker.js"); + __webpack_require__.d(__webpack_exports__, "AxisGroupRangeTracker", function() { return _chart_axis_group_range_tracker__WEBPACK_IMPORTED_MODULE_4__["default"]; }); + + var _chart_bar_chart_bar__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/bar-chart/bar.js"); + __webpack_require__.d(__webpack_exports__, "Bar", function() { return _chart_bar_chart_bar__WEBPACK_IMPORTED_MODULE_5__["default"]; }); + + var _chart_bar_chart_bar_chart__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/bar-chart/bar-chart.js"); + __webpack_require__.d(__webpack_exports__, "BarChart", function() { return _chart_bar_chart_bar_chart__WEBPACK_IMPORTED_MODULE_6__["default"]; }); + + var _chart_bar_chart_bar_label__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/bar-chart/bar-label.js"); + __webpack_require__.d(__webpack_exports__, "BarLabel", function() { return _chart_bar_chart_bar_label__WEBPACK_IMPORTED_MODULE_7__["default"]; }); + + var _chart_box_plot_chart_box_plot_chart__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/box-plot-chart/box-plot-chart.js"); + __webpack_require__.d(__webpack_exports__, "BoxPlotChart", function() { return _chart_box_plot_chart_box_plot_chart__WEBPACK_IMPORTED_MODULE_8__["default"]; }); + + var _chart_box_plot_chart_box_plot__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/box-plot-chart/box-plot.js"); + __webpack_require__.d(__webpack_exports__, "BoxPlot", function() { return _chart_box_plot_chart_box_plot__WEBPACK_IMPORTED_MODULE_9__["default"]; }); + + var _chart_bubble_chart_bubble_chart__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/bubble-chart/bubble-chart.js"); + __webpack_require__.d(__webpack_exports__, "BubbleChart", function() { return _chart_bubble_chart_bubble_chart__WEBPACK_IMPORTED_MODULE_10__["default"]; }); + + var _chart_bullet_chart_bullet__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/bullet-chart/bullet.js"); + __webpack_require__.d(__webpack_exports__, "Bullet", function() { return _chart_bullet_chart_bullet__WEBPACK_IMPORTED_MODULE_11__["default"]; }); + + var _chart_bullet_chart_bullet_chart__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/bullet-chart/bullet-chart.js"); + __webpack_require__.d(__webpack_exports__, "BulletChart", function() { return _chart_bullet_chart_bullet_chart__WEBPACK_IMPORTED_MODULE_12__["default"]; }); + + var _chart_candlestick_chart_candlestick_chart__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/candlestick-chart/candlestick-chart.js"); + __webpack_require__.d(__webpack_exports__, "CandlestickChart", function() { return _chart_candlestick_chart_candlestick_chart__WEBPACK_IMPORTED_MODULE_13__["default"]; }); + + var _chart_candlestick_chart_candlestick__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/candlestick-chart/candlestick.js"); + __webpack_require__.d(__webpack_exports__, "Candlestick", function() { return _chart_candlestick_chart_candlestick__WEBPACK_IMPORTED_MODULE_14__["default"]; }); + + var _chart_categorical_chart__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/categorical-chart.js"); + __webpack_require__.d(__webpack_exports__, "CategoricalChart", function() { return _chart_categorical_chart__WEBPACK_IMPORTED_MODULE_15__["default"]; }); + + var _chart_error_bars_categorical_error_bar__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/error-bars/categorical-error-bar.js"); + __webpack_require__.d(__webpack_exports__, "CategoricalErrorBar", function() { return _chart_error_bars_categorical_error_bar__WEBPACK_IMPORTED_MODULE_16__["default"]; }); + + var _chart_plotarea_categorical_plotarea__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/plotarea/categorical-plotarea.js"); + __webpack_require__.d(__webpack_exports__, "CategoricalPlotArea", function() { return _chart_plotarea_categorical_plotarea__WEBPACK_IMPORTED_MODULE_17__["default"]; }); + + var _chart_chart__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/chart.js"); + __webpack_require__.d(__webpack_exports__, "Chart", function() { return _chart_chart__WEBPACK_IMPORTED_MODULE_18__["default"]; }); + + var _chart_chart_container__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/chart-container.js"); + __webpack_require__.d(__webpack_exports__, "ChartContainer", function() { return _chart_chart_container__WEBPACK_IMPORTED_MODULE_19__["default"]; }); + + var _chart_animations_clip_animation__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/animations/clip-animation.js"); + __webpack_require__.d(__webpack_exports__, "ClipAnimation", function() { return _chart_animations_clip_animation__WEBPACK_IMPORTED_MODULE_20__["default"]; }); + + var _chart_layout_cluster_layout__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/layout/cluster-layout.js"); + __webpack_require__.d(__webpack_exports__, "ClusterLayout", function() { return _chart_layout_cluster_layout__WEBPACK_IMPORTED_MODULE_21__["default"]; }); + + var _chart_crosshair_crosshair__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/crosshair/crosshair.js"); + __webpack_require__.d(__webpack_exports__, "Crosshair", function() { return _chart_crosshair_crosshair__WEBPACK_IMPORTED_MODULE_22__["default"]; }); + + var _chart_crosshair_crosshair_tooltip__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/crosshair/crosshair-tooltip.js"); + __webpack_require__.d(__webpack_exports__, "CrosshairTooltip", function() { return _chart_crosshair_crosshair_tooltip__WEBPACK_IMPORTED_MODULE_23__["default"]; }); + + var _chart_aggregates_default_aggregates__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/aggregates/default-aggregates.js"); + __webpack_require__.d(__webpack_exports__, "DefaultAggregates", function() { return _chart_aggregates_default_aggregates__WEBPACK_IMPORTED_MODULE_24__["default"]; }); + + var _chart_donut_chart_donut_chart__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/donut-chart/donut-chart.js"); + __webpack_require__.d(__webpack_exports__, "DonutChart", function() { return _chart_donut_chart_donut_chart__WEBPACK_IMPORTED_MODULE_25__["default"]; }); + + var _chart_plotarea_donut_plotarea__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/plotarea/donut-plotarea.js"); + __webpack_require__.d(__webpack_exports__, "DonutPlotArea", function() { return _chart_plotarea_donut_plotarea__WEBPACK_IMPORTED_MODULE_26__["default"]; }); + + var _chart_donut_chart_donut_segment__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/donut-chart/donut-segment.js"); + __webpack_require__.d(__webpack_exports__, "DonutSegment", function() { return _chart_donut_chart_donut_segment__WEBPACK_IMPORTED_MODULE_27__["default"]; }); + + var _chart_error_bars_error_bar_base__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/error-bars/error-bar-base.js"); + __webpack_require__.d(__webpack_exports__, "ErrorBarBase", function() { return _chart_error_bars_error_bar_base__WEBPACK_IMPORTED_MODULE_28__["default"]; }); + + var _chart_error_bars_error_range_calculator__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/error-bars/error-range-calculator.js"); + __webpack_require__.d(__webpack_exports__, "ErrorRangeCalculator", function() { return _chart_error_bars_error_range_calculator__WEBPACK_IMPORTED_MODULE_29__["default"]; }); + + var _chart_highlight__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/highlight.js"); + __webpack_require__.d(__webpack_exports__, "Highlight", function() { return _chart_highlight__WEBPACK_IMPORTED_MODULE_30__["default"]; }); + + var _chart_tooltip_shared_tooltip__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/tooltip/shared-tooltip.js"); + __webpack_require__.d(__webpack_exports__, "SharedTooltip", function() { return _chart_tooltip_shared_tooltip__WEBPACK_IMPORTED_MODULE_31__["default"]; }); + + var _chart_legend_legend__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/legend/legend.js"); + __webpack_require__.d(__webpack_exports__, "Legend", function() { return _chart_legend_legend__WEBPACK_IMPORTED_MODULE_32__["default"]; }); + + var _chart_legend_legend_item__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/legend/legend-item.js"); + __webpack_require__.d(__webpack_exports__, "LegendItem", function() { return _chart_legend_legend_item__WEBPACK_IMPORTED_MODULE_33__["default"]; }); + + var _chart_legend_legend_layout__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/legend/legend-layout.js"); + __webpack_require__.d(__webpack_exports__, "LegendLayout", function() { return _chart_legend_legend_layout__WEBPACK_IMPORTED_MODULE_34__["default"]; }); + + var _chart_line_chart_line_chart__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/line-chart/line-chart.js"); + __webpack_require__.d(__webpack_exports__, "LineChart", function() { return _chart_line_chart_line_chart__WEBPACK_IMPORTED_MODULE_35__["default"]; }); + + var _chart_line_chart_line_point__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/line-chart/line-point.js"); + __webpack_require__.d(__webpack_exports__, "LinePoint", function() { return _chart_line_chart_line_point__WEBPACK_IMPORTED_MODULE_36__["default"]; }); + + var _chart_line_chart_line_segment__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/line-chart/line-segment.js"); + __webpack_require__.d(__webpack_exports__, "LineSegment", function() { return _chart_line_chart_line_segment__WEBPACK_IMPORTED_MODULE_37__["default"]; }); + + var _chart_pane__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/pane.js"); + __webpack_require__.d(__webpack_exports__, "Pane", function() { return _chart_pane__WEBPACK_IMPORTED_MODULE_38__["default"]; }); + + var _chart_animations_pie_animation__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/animations/pie-animation.js"); + __webpack_require__.d(__webpack_exports__, "PieAnimation", function() { return _chart_animations_pie_animation__WEBPACK_IMPORTED_MODULE_39__["default"]; }); + + var _chart_pie_chart_pie_chart__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/pie-chart/pie-chart.js"); + __webpack_require__.d(__webpack_exports__, "PieChart", function() { return _chart_pie_chart_pie_chart__WEBPACK_IMPORTED_MODULE_40__["default"]; }); + + var _chart_mixins_pie_chart_mixin__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/mixins/pie-chart-mixin.js"); + __webpack_require__.d(__webpack_exports__, "PieChartMixin", function() { return _chart_mixins_pie_chart_mixin__WEBPACK_IMPORTED_MODULE_41__["default"]; }); + + var _chart_plotarea_pie_plotarea__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/plotarea/pie-plotarea.js"); + __webpack_require__.d(__webpack_exports__, "PiePlotArea", function() { return _chart_plotarea_pie_plotarea__WEBPACK_IMPORTED_MODULE_42__["default"]; }); + + var _chart_pie_chart_pie_segment__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/pie-chart/pie-segment.js"); + __webpack_require__.d(__webpack_exports__, "PieSegment", function() { return _chart_pie_chart_pie_segment__WEBPACK_IMPORTED_MODULE_43__["default"]; }); + + var _chart_plotarea_plotarea_base__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/plotarea/plotarea-base.js"); + __webpack_require__.d(__webpack_exports__, "PlotAreaBase", function() { return _chart_plotarea_plotarea_base__WEBPACK_IMPORTED_MODULE_44__["default"]; }); + + var _chart_mixins_plotarea_events_mixin__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/mixins/plotarea-events-mixin.js"); + __webpack_require__.d(__webpack_exports__, "PlotAreaEventsMixin", function() { return _chart_mixins_plotarea_events_mixin__WEBPACK_IMPORTED_MODULE_45__["default"]; }); + + var _chart_plotarea_plotarea_factory__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/plotarea/plotarea-factory.js"); + __webpack_require__.d(__webpack_exports__, "PlotAreaFactory", function() { return _chart_plotarea_plotarea_factory__WEBPACK_IMPORTED_MODULE_46__["default"]; }); + + var _chart_mixins_point_events_mixin__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/mixins/point-events-mixin.js"); + __webpack_require__.d(__webpack_exports__, "PointEventsMixin", function() { return _chart_mixins_point_events_mixin__WEBPACK_IMPORTED_MODULE_47__["default"]; }); + + var _chart_range_bar_chart_range_bar__WEBPACK_IMPORTED_MODULE_48__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/range-bar-chart/range-bar.js"); + __webpack_require__.d(__webpack_exports__, "RangeBar", function() { return _chart_range_bar_chart_range_bar__WEBPACK_IMPORTED_MODULE_48__["default"]; }); + + var _chart_range_bar_chart_range_bar_chart__WEBPACK_IMPORTED_MODULE_49__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/range-bar-chart/range-bar-chart.js"); + __webpack_require__.d(__webpack_exports__, "RangeBarChart", function() { return _chart_range_bar_chart_range_bar_chart__WEBPACK_IMPORTED_MODULE_49__["default"]; }); + + var _chart_range_area_chart_range_area_point__WEBPACK_IMPORTED_MODULE_50__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/range-area-chart/range-area-point.js"); + __webpack_require__.d(__webpack_exports__, "RangeAreaPoint", function() { return _chart_range_area_chart_range_area_point__WEBPACK_IMPORTED_MODULE_50__["default"]; }); + + var _chart_range_area_chart_range_area_chart__WEBPACK_IMPORTED_MODULE_51__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/range-area-chart/range-area-chart.js"); + __webpack_require__.d(__webpack_exports__, "RangeAreaChart", function() { return _chart_range_area_chart_range_area_chart__WEBPACK_IMPORTED_MODULE_51__["default"]; }); + + var _chart_scatter_charts_scatter_chart__WEBPACK_IMPORTED_MODULE_52__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/scatter-charts/scatter-chart.js"); + __webpack_require__.d(__webpack_exports__, "ScatterChart", function() { return _chart_scatter_charts_scatter_chart__WEBPACK_IMPORTED_MODULE_52__["default"]; }); + + var _chart_error_bars_scatter_error_bar__WEBPACK_IMPORTED_MODULE_53__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/error-bars/scatter-error-bar.js"); + __webpack_require__.d(__webpack_exports__, "ScatterErrorBar", function() { return _chart_error_bars_scatter_error_bar__WEBPACK_IMPORTED_MODULE_53__["default"]; }); + + var _chart_scatter_charts_scatter_line_chart__WEBPACK_IMPORTED_MODULE_54__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/scatter-charts/scatter-line-chart.js"); + __webpack_require__.d(__webpack_exports__, "ScatterLineChart", function() { return _chart_scatter_charts_scatter_line_chart__WEBPACK_IMPORTED_MODULE_54__["default"]; }); + + var _chart_selection__WEBPACK_IMPORTED_MODULE_55__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/selection.js"); + __webpack_require__.d(__webpack_exports__, "Selection", function() { return _chart_selection__WEBPACK_IMPORTED_MODULE_55__["default"]; }); + + var _chart_aggregates_series_aggregator__WEBPACK_IMPORTED_MODULE_56__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/aggregates/series-aggregator.js"); + __webpack_require__.d(__webpack_exports__, "SeriesAggregator", function() { return _chart_aggregates_series_aggregator__WEBPACK_IMPORTED_MODULE_56__["default"]; }); + + var _chart_series_binder__WEBPACK_IMPORTED_MODULE_57__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/series-binder.js"); + __webpack_require__.d(__webpack_exports__, "SeriesBinder", function() { return _chart_series_binder__WEBPACK_IMPORTED_MODULE_57__["default"]; }); + + var _chart_line_chart_spline_segment__WEBPACK_IMPORTED_MODULE_58__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/line-chart/spline-segment.js"); + __webpack_require__.d(__webpack_exports__, "SplineSegment", function() { return _chart_line_chart_spline_segment__WEBPACK_IMPORTED_MODULE_58__["default"]; }); + + var _chart_area_chart_spline_area_segment__WEBPACK_IMPORTED_MODULE_59__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/area-chart/spline-area-segment.js"); + __webpack_require__.d(__webpack_exports__, "SplineAreaSegment", function() { return _chart_area_chart_spline_area_segment__WEBPACK_IMPORTED_MODULE_59__["default"]; }); + + var _chart_layout_stack_wrap__WEBPACK_IMPORTED_MODULE_60__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/layout/stack-wrap.js"); + __webpack_require__.d(__webpack_exports__, "StackWrap", function() { return _chart_layout_stack_wrap__WEBPACK_IMPORTED_MODULE_60__["default"]; }); + + var _chart_tooltip_tooltip__WEBPACK_IMPORTED_MODULE_61__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/tooltip/tooltip.js"); + __webpack_require__.d(__webpack_exports__, "Tooltip", function() { return _chart_tooltip_tooltip__WEBPACK_IMPORTED_MODULE_61__["default"]; }); + + var _chart_ohlc_chart_ohlc_chart__WEBPACK_IMPORTED_MODULE_62__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/ohlc-chart/ohlc-chart.js"); + __webpack_require__.d(__webpack_exports__, "OHLCChart", function() { return _chart_ohlc_chart_ohlc_chart__WEBPACK_IMPORTED_MODULE_62__["default"]; }); + + var _chart_ohlc_chart_ohlc_point__WEBPACK_IMPORTED_MODULE_63__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/ohlc-chart/ohlc-point.js"); + __webpack_require__.d(__webpack_exports__, "OHLCPoint", function() { return _chart_ohlc_chart_ohlc_point__WEBPACK_IMPORTED_MODULE_63__["default"]; }); + + var _chart_waterfall_chart_waterfall_chart__WEBPACK_IMPORTED_MODULE_64__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/waterfall-chart/waterfall-chart.js"); + __webpack_require__.d(__webpack_exports__, "WaterfallChart", function() { return _chart_waterfall_chart_waterfall_chart__WEBPACK_IMPORTED_MODULE_64__["default"]; }); + + var _chart_waterfall_chart_waterfall_segment__WEBPACK_IMPORTED_MODULE_65__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/waterfall-chart/waterfall-segment.js"); + __webpack_require__.d(__webpack_exports__, "WaterfallSegment", function() { return _chart_waterfall_chart_waterfall_segment__WEBPACK_IMPORTED_MODULE_65__["default"]; }); + + var _chart_plotarea_xy_plotarea__WEBPACK_IMPORTED_MODULE_66__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/plotarea/xy-plotarea.js"); + __webpack_require__.d(__webpack_exports__, "XYPlotArea", function() { return _chart_plotarea_xy_plotarea__WEBPACK_IMPORTED_MODULE_66__["default"]; }); + + var _chart_pan_and_zoom_mousewheel_zoom__WEBPACK_IMPORTED_MODULE_67__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/pan-and-zoom/mousewheel-zoom.js"); + __webpack_require__.d(__webpack_exports__, "MousewheelZoom", function() { return _chart_pan_and_zoom_mousewheel_zoom__WEBPACK_IMPORTED_MODULE_67__["default"]; }); + + var _chart_pan_and_zoom_zoom_selection__WEBPACK_IMPORTED_MODULE_68__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/pan-and-zoom/zoom-selection.js"); + __webpack_require__.d(__webpack_exports__, "ZoomSelection", function() { return _chart_pan_and_zoom_zoom_selection__WEBPACK_IMPORTED_MODULE_68__["default"]; }); + + var _chart_pan_and_zoom_pannable__WEBPACK_IMPORTED_MODULE_69__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/pan-and-zoom/pannable.js"); + __webpack_require__.d(__webpack_exports__, "Pannable", function() { return _chart_pan_and_zoom_pannable__WEBPACK_IMPORTED_MODULE_69__["default"]; }); + + var _chart_utils__WEBPACK_IMPORTED_MODULE_70__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/utils.js"); + __webpack_require__.d(__webpack_exports__, "anyHasZIndex", function() { return _chart_utils__WEBPACK_IMPORTED_MODULE_70__["anyHasZIndex"]; }); + + __webpack_require__.d(__webpack_exports__, "appendIfNotNull", function() { return _chart_utils__WEBPACK_IMPORTED_MODULE_70__["appendIfNotNull"]; }); + + __webpack_require__.d(__webpack_exports__, "areNumbers", function() { return _chart_utils__WEBPACK_IMPORTED_MODULE_70__["areNumbers"]; }); + + __webpack_require__.d(__webpack_exports__, "bindSegments", function() { return _chart_utils__WEBPACK_IMPORTED_MODULE_70__["bindSegments"]; }); + + __webpack_require__.d(__webpack_exports__, "categoriesCount", function() { return _chart_utils__WEBPACK_IMPORTED_MODULE_70__["categoriesCount"]; }); + + __webpack_require__.d(__webpack_exports__, "countNumbers", function() { return _chart_utils__WEBPACK_IMPORTED_MODULE_70__["countNumbers"]; }); + + __webpack_require__.d(__webpack_exports__, "equalsIgnoreCase", function() { return _chart_utils__WEBPACK_IMPORTED_MODULE_70__["equalsIgnoreCase"]; }); + + __webpack_require__.d(__webpack_exports__, "evalOptions", function() { return _chart_utils__WEBPACK_IMPORTED_MODULE_70__["evalOptions"]; }); + + __webpack_require__.d(__webpack_exports__, "filterSeriesByType", function() { return _chart_utils__WEBPACK_IMPORTED_MODULE_70__["filterSeriesByType"]; }); + + __webpack_require__.d(__webpack_exports__, "getDateField", function() { return _chart_utils__WEBPACK_IMPORTED_MODULE_70__["getDateField"]; }); + + __webpack_require__.d(__webpack_exports__, "getField", function() { return _chart_utils__WEBPACK_IMPORTED_MODULE_70__["getField"]; }); + + __webpack_require__.d(__webpack_exports__, "hasGradientOverlay", function() { return _chart_utils__WEBPACK_IMPORTED_MODULE_70__["hasGradientOverlay"]; }); + + __webpack_require__.d(__webpack_exports__, "hasValue", function() { return _chart_utils__WEBPACK_IMPORTED_MODULE_70__["hasValue"]; }); + + __webpack_require__.d(__webpack_exports__, "isDateAxis", function() { return _chart_utils__WEBPACK_IMPORTED_MODULE_70__["isDateAxis"]; }); + + __webpack_require__.d(__webpack_exports__, "segmentVisible", function() { return _chart_utils__WEBPACK_IMPORTED_MODULE_70__["segmentVisible"]; }); + + __webpack_require__.d(__webpack_exports__, "singleItemOrArray", function() { return _chart_utils__WEBPACK_IMPORTED_MODULE_70__["singleItemOrArray"]; }); + + __webpack_require__.d(__webpack_exports__, "createOutOfRangePoints", function() { return _chart_utils__WEBPACK_IMPORTED_MODULE_70__["createOutOfRangePoints"]; }); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/aggregates/aggregates.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _common_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + var _utils_count_numbers__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/utils/count-numbers.js"); + + + + + +var Aggregates = { + min: function(values) { + var length = values.length; + var min = _common_constants__WEBPACK_IMPORTED_MODULE_0__["MAX_VALUE"]; + + for (var i = 0; i < length; i++) { + var value = values[i]; + if (Object(_common__WEBPACK_IMPORTED_MODULE_1__["isNumber"])(value)) { + min = Math.min(min, value); + } + } + + return min === _common_constants__WEBPACK_IMPORTED_MODULE_0__["MAX_VALUE"] ? values[0] : min; + }, + + max: function(values) { + var length = values.length; + var max = _common_constants__WEBPACK_IMPORTED_MODULE_0__["MIN_VALUE"]; + + for (var i = 0; i < length; i++) { + var value = values[i]; + if (Object(_common__WEBPACK_IMPORTED_MODULE_1__["isNumber"])(value)) { + max = Math.max(max, value); + } + } + + return max === _common_constants__WEBPACK_IMPORTED_MODULE_0__["MIN_VALUE"] ? values[0] : max; + }, + + sum: function(values) { + var length = values.length; + var sum = 0; + + for (var i = 0; i < length; i++) { + var value = values[i]; + if (Object(_common__WEBPACK_IMPORTED_MODULE_1__["isNumber"])(value)) { + sum += value; + } + } + + return sum; + }, + + sumOrNull: function(values) { + var result = null; + + if (Object(_utils_count_numbers__WEBPACK_IMPORTED_MODULE_2__["default"])(values)) { + result = Aggregates.sum(values); + } + + return result; + }, + + count: function(values) { + var length = values.length; + var count = 0; + + for (var i = 0; i < length; i++) { + var value = values[i]; + if (value !== null && Object(_common__WEBPACK_IMPORTED_MODULE_1__["defined"])(value)) { + count++; + } + } + + return count; + }, + + avg: function(values) { + var count = Object(_utils_count_numbers__WEBPACK_IMPORTED_MODULE_2__["default"])(values); + var result = values[0]; + + if (count > 0) { + result = Aggregates.sum(values) / count; + } + + return result; + }, + + first: function(values) { + var length = values.length; + + for (var i = 0; i < length; i++) { + var value = values[i]; + if (value !== null && Object(_common__WEBPACK_IMPORTED_MODULE_1__["defined"])(value)) { + return value; + } + } + + return values[0]; + } +}; + + __webpack_exports__["default"] = (Aggregates); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/aggregates/default-aggregates.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + +var DefaultAggregates = (function (Class) { + function DefaultAggregates() { + Class.call(this); + + this._defaults = {}; + } + + if ( Class ) DefaultAggregates.__proto__ = Class; + DefaultAggregates.prototype = Object.create( Class && Class.prototype ); + DefaultAggregates.prototype.constructor = DefaultAggregates; + + DefaultAggregates.prototype.register = function register (seriesTypes, aggregates) { + var this$1 = this; + + for (var i = 0; i < seriesTypes.length; i++) { + this$1._defaults[seriesTypes[i]] = aggregates; + } + }; + + DefaultAggregates.prototype.query = function query (seriesType) { + return this._defaults[seriesType]; + }; + + return DefaultAggregates; +}(_common__WEBPACK_IMPORTED_MODULE_0__["Class"])); + +DefaultAggregates.current = new DefaultAggregates(); + + __webpack_exports__["default"] = (DefaultAggregates); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/aggregates/series-aggregator.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _aggregates__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/aggregates/aggregates.js"); + var _common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + +var SeriesAggregator = (function (Class) { + function SeriesAggregator(series, binder, defaultAggregates) { + Class.call(this); + + var canonicalFields = binder.canonicalFields(series); + var valueFields = binder.valueFields(series); + var sourceFields = binder.sourceFields(series, canonicalFields); + var seriesFields = this._seriesFields = []; + var defaults = defaultAggregates.query(series.type); + var rootAggregate = series.aggregate || defaults; + + this._series = series; + this._binder = binder; + + for (var i = 0; i < canonicalFields.length; i++) { + var field = canonicalFields[i]; + var fieldAggregate = (void 0); + + if (Object(_common__WEBPACK_IMPORTED_MODULE_1__["isObject"])(rootAggregate)) { + fieldAggregate = rootAggregate[field]; + } else if (i === 0 || Object(_common__WEBPACK_IMPORTED_MODULE_1__["inArray"])(field, valueFields)) { + fieldAggregate = rootAggregate; + } else { + break; + } + + if (fieldAggregate) { + seriesFields.push({ + canonicalName: field, + name: sourceFields[i], + transform: Object(_common__WEBPACK_IMPORTED_MODULE_1__["isFunction"])(fieldAggregate) ? fieldAggregate : _aggregates__WEBPACK_IMPORTED_MODULE_0__["default"][fieldAggregate] + }); + } + } + } + + if ( Class ) SeriesAggregator.__proto__ = Class; + SeriesAggregator.prototype = Object.create( Class && Class.prototype ); + SeriesAggregator.prototype.constructor = SeriesAggregator; + + SeriesAggregator.prototype.aggregatePoints = function aggregatePoints (srcPoints, group) { + var this$1 = this; + + var ref = this; + var series = ref._series; + var seriesFields = ref._seriesFields; + var data = this._bindPoints(srcPoints || []); + var firstDataItem = data.dataItems[0]; + var result = {}; + + if (firstDataItem && !Object(_common__WEBPACK_IMPORTED_MODULE_1__["isNumber"])(firstDataItem) && !Object(_common__WEBPACK_IMPORTED_MODULE_1__["isArray"])(firstDataItem)) { + var fn = function() {}; + fn.prototype = firstDataItem; + result = new fn(); + } + + for (var i = 0; i < seriesFields.length; i++) { + var field = seriesFields[i]; + var srcValues = this$1._bindField(data.values, field.canonicalName); + var value = field.transform(srcValues, series, data.dataItems, group); + + if (value !== null && Object(_common__WEBPACK_IMPORTED_MODULE_1__["isObject"])(value) && !Object(_common__WEBPACK_IMPORTED_MODULE_1__["defined"])(value.length) && !(value instanceof Date)) { + result = value; + break; + } else { + if (Object(_common__WEBPACK_IMPORTED_MODULE_1__["defined"])(value)) { + setValue(field.name, result, value); + } + } + } + + return result; + }; + + SeriesAggregator.prototype._bindPoints = function _bindPoints (points) { + var ref = this; + var binder = ref._binder; + var series = ref._series; + var values = []; + var dataItems = []; + + for (var i = 0; i < points.length; i++) { + var pointIx = points[i]; + + values.push(binder.bindPoint(series, pointIx)); + dataItems.push(series.data[pointIx]); + } + + return { + values: values, + dataItems: dataItems + }; + }; + + SeriesAggregator.prototype._bindField = function _bindField (data, field) { + var values = []; + var count = data.length; + + for (var i = 0; i < count; i++) { + var item = data[i]; + var valueFields = item.valueFields; + var value = (void 0); + + if (Object(_common__WEBPACK_IMPORTED_MODULE_1__["defined"])(valueFields[field])) { + value = valueFields[field]; + } else { + value = item.fields[field]; + } + + values.push(value); + } + + return values; + }; + + return SeriesAggregator; +}(_common__WEBPACK_IMPORTED_MODULE_1__["Class"])); + +function setValue(fieldName, target, value) { + var parentObj = target; + var field = fieldName; + + if (fieldName.indexOf(".") > -1) { + var parts = fieldName.split("."); + + while (parts.length > 1) { + field = parts.shift(); + if (!Object(_common__WEBPACK_IMPORTED_MODULE_1__["defined"])(parentObj[field])) { + parentObj[field] = {}; + } + parentObj = parentObj[field]; + } + field = parts.shift(); + } + + parentObj[field] = value; +} + + __webpack_exports__["default"] = (SeriesAggregator); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/animations.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _animations_bar_chart_animation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/animations/bar-chart-animation.js"); + var _animations_bubble_animation__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/animations/bubble-animation.js"); + var _animations_fade_in_animation__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/animations/fade-in-animation.js"); + var _animations_clip_animation__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/animations/clip-animation.js"); + var _animations_pie_animation__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/animations/pie-animation.js"); + + + + + + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/animations/bar-chart-animation.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/main.js"); + var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/constants.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + + + + +var BarChartAnimation = (function (superclass) { + function BarChartAnimation () { + superclass.apply(this, arguments); + } + + if ( superclass ) BarChartAnimation.__proto__ = superclass; + BarChartAnimation.prototype = Object.create( superclass && superclass.prototype ); + BarChartAnimation.prototype.constructor = BarChartAnimation; + + BarChartAnimation.prototype.setup = function setup () { + var ref = this; + var element = ref.element; + var options = ref.options; + var bbox = element.bbox(); + + if (bbox) { + this.origin = options.origin; + var axis = options.vertical ? _common_constants__WEBPACK_IMPORTED_MODULE_2__["Y"] : _common_constants__WEBPACK_IMPORTED_MODULE_2__["X"]; + + var fromScale = this.fromScale = new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].Point(1, 1); + fromScale[axis] = _constants__WEBPACK_IMPORTED_MODULE_1__["START_SCALE"]; + + element.transform(_progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].transform() + .scale(fromScale.x, fromScale.y) + ); + } else { + this.abort(); + } + }; + + BarChartAnimation.prototype.step = function step (pos) { + var scaleX = Object(_common__WEBPACK_IMPORTED_MODULE_3__["interpolateValue"])(this.fromScale.x, 1, pos); + var scaleY = Object(_common__WEBPACK_IMPORTED_MODULE_3__["interpolateValue"])(this.fromScale.y, 1, pos); + + this.element.transform(_progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].transform() + .scale(scaleX, scaleY, this.origin) + ); + }; + + BarChartAnimation.prototype.abort = function abort () { + superclass.prototype.abort.call(this); + this.element.transform(null); + }; + + return BarChartAnimation; +}(_progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Animation)); + +Object(_common__WEBPACK_IMPORTED_MODULE_3__["setDefaultOptions"])(BarChartAnimation, { + duration: _constants__WEBPACK_IMPORTED_MODULE_1__["INITIAL_ANIMATION_DURATION"] +}); + +_progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].AnimationFactory.current.register(_constants__WEBPACK_IMPORTED_MODULE_1__["BAR"], BarChartAnimation); + + __webpack_exports__["default"] = (BarChartAnimation); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/animations/bubble-animation.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/main.js"); + var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + + + +var BubbleAnimation = (function (superclass) { + function BubbleAnimation () { + superclass.apply(this, arguments); + } + + if ( superclass ) BubbleAnimation.__proto__ = superclass; + BubbleAnimation.prototype = Object.create( superclass && superclass.prototype ); + BubbleAnimation.prototype.constructor = BubbleAnimation; + + BubbleAnimation.prototype.setup = function setup () { + var center = this.center = this.element.bbox().center(); + this.element.transform(_progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].transform() + .scale(_constants__WEBPACK_IMPORTED_MODULE_1__["START_SCALE"], _constants__WEBPACK_IMPORTED_MODULE_1__["START_SCALE"], center) + ); + }; + + BubbleAnimation.prototype.step = function step (pos) { + this.element.transform(_progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].transform() + .scale(pos, pos, this.center) + ); + }; + + return BubbleAnimation; +}(_progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Animation)); + +Object(_common__WEBPACK_IMPORTED_MODULE_2__["setDefaultOptions"])(BubbleAnimation, { + easing: "easeOutElastic" +}); + +_progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].AnimationFactory.current.register(_constants__WEBPACK_IMPORTED_MODULE_1__["BUBBLE"], BubbleAnimation); + + __webpack_exports__["default"] = (BubbleAnimation); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/animations/clip-animation.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/main.js"); + var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + + + +var ClipAnimation = (function (superclass) { + function ClipAnimation () { + superclass.apply(this, arguments); + } + + if ( superclass ) ClipAnimation.__proto__ = superclass; + ClipAnimation.prototype = Object.create( superclass && superclass.prototype ); + ClipAnimation.prototype.constructor = ClipAnimation; + + ClipAnimation.prototype.setup = function setup () { + this._setEnd(this.options.box.x1); + }; + + ClipAnimation.prototype.step = function step (pos) { + var box = this.options.box; + this._setEnd(Object(_common__WEBPACK_IMPORTED_MODULE_2__["interpolateValue"])(box.x1, box.x2, pos)); + }; + + ClipAnimation.prototype._setEnd = function _setEnd (x) { + var element = this.element; + var segments = element.segments; + var topRight = segments[1].anchor(); + var bottomRight = segments[2].anchor(); + + element.suspend(); + topRight.setX(x); + element.resume(); + bottomRight.setX(x); + }; + + return ClipAnimation; +}(_progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Animation)); + +Object(_common__WEBPACK_IMPORTED_MODULE_2__["setDefaultOptions"])(ClipAnimation, { + duration: _constants__WEBPACK_IMPORTED_MODULE_1__["INITIAL_ANIMATION_DURATION"] +}); + +_progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].AnimationFactory.current.register("clip", ClipAnimation); + + __webpack_exports__["default"] = (ClipAnimation); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/animations/fade-in-animation.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/main.js"); + var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + + + +var FadeInAnimation = (function (superclass) { + function FadeInAnimation () { + superclass.apply(this, arguments); + } + + if ( superclass ) FadeInAnimation.__proto__ = superclass; + FadeInAnimation.prototype = Object.create( superclass && superclass.prototype ); + FadeInAnimation.prototype.constructor = FadeInAnimation; + + FadeInAnimation.prototype.setup = function setup () { + this.fadeTo = this.element.opacity(); + this.element.opacity(0); + }; + + FadeInAnimation.prototype.step = function step (pos) { + this.element.opacity(pos * this.fadeTo); + }; + + return FadeInAnimation; +}(_progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Animation)); + +Object(_common__WEBPACK_IMPORTED_MODULE_2__["setDefaultOptions"])(FadeInAnimation, { + duration: 200, + easing: "linear" +}); + +_progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].AnimationFactory.current.register(_constants__WEBPACK_IMPORTED_MODULE_1__["FADEIN"], FadeInAnimation); + + __webpack_exports__["default"] = (FadeInAnimation); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/animations/pie-animation.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/main.js"); + var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + + + +var PieAnimation = (function (superclass) { + function PieAnimation () { + superclass.apply(this, arguments); + } + + if ( superclass ) PieAnimation.__proto__ = superclass; + PieAnimation.prototype = Object.create( superclass && superclass.prototype ); + PieAnimation.prototype.constructor = PieAnimation; + + PieAnimation.prototype.setup = function setup () { + this.element.transform(_progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].transform() + .scale(_constants__WEBPACK_IMPORTED_MODULE_1__["START_SCALE"], _constants__WEBPACK_IMPORTED_MODULE_1__["START_SCALE"], this.options.center) + ); + }; + + PieAnimation.prototype.step = function step (pos) { + this.element.transform(_progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].transform() + .scale(pos, pos, this.options.center) + ); + }; + + return PieAnimation; +}(_progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Animation)); + +Object(_common__WEBPACK_IMPORTED_MODULE_2__["setDefaultOptions"])(PieAnimation, { + easing: "easeOutElastic", + duration: _constants__WEBPACK_IMPORTED_MODULE_1__["INITIAL_ANIMATION_DURATION"] +}); + +_progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].AnimationFactory.current.register(_constants__WEBPACK_IMPORTED_MODULE_1__["PIE"], PieAnimation); + + __webpack_exports__["default"] = (PieAnimation); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/api-elements.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _api_elements_chart_axis__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/api-elements/chart-axis.js"); + __webpack_require__.d(__webpack_exports__, "ChartAxis", function() { return _api_elements_chart_axis__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + + var _api_elements_chart_pane__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/api-elements/chart-pane.js"); + __webpack_require__.d(__webpack_exports__, "ChartPane", function() { return _api_elements_chart_pane__WEBPACK_IMPORTED_MODULE_1__["default"]; }); + + var _api_elements_chart_plotarea__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/api-elements/chart-plotarea.js"); + __webpack_require__.d(__webpack_exports__, "ChartPlotArea", function() { return _api_elements_chart_plotarea__WEBPACK_IMPORTED_MODULE_2__["default"]; }); + + var _api_elements_find_axis_by_name__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/api-elements/find-axis-by-name.js"); + __webpack_require__.d(__webpack_exports__, "findAxisByName", function() { return _api_elements_find_axis_by_name__WEBPACK_IMPORTED_MODULE_3__["default"]; }); + + + + + + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/api-elements/chart-axis.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + +var ChartAxis = (function (Class) { + function ChartAxis(axis) { + Class.call(this); + + this._axis = axis; + this.options = axis.options; + } + + if ( Class ) ChartAxis.__proto__ = Class; + ChartAxis.prototype = Object.create( Class && Class.prototype ); + ChartAxis.prototype.constructor = ChartAxis; + + ChartAxis.prototype.value = function value (point) { + var axis = this._axis; + var value = axis.getCategory ? axis.getCategory(point) : axis.getValue(point); + + return value; + }; + + ChartAxis.prototype.slot = function slot (from, to, limit) { + if ( limit === void 0 ) limit = true; + + return this._axis.slot(from, to, limit); + }; + + ChartAxis.prototype.range = function range () { + return this._axis.range(); + }; + + ChartAxis.prototype.valueRange = function valueRange () { + return this._axis.valueRange(); + }; + + return ChartAxis; +}(_common__WEBPACK_IMPORTED_MODULE_0__["Class"])); + + __webpack_exports__["default"] = (ChartAxis); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/api-elements/chart-pane.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _find_axis_by_name__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/api-elements/find-axis-by-name.js"); + + +var ChartPane = function ChartPane(pane) { + this.visual = pane.visual; + this.chartsVisual = pane.chartContainer.visual; + this._pane = pane; +}; + +ChartPane.prototype.findAxisByName = function findAxisByName$1 (name) { + return Object(_find_axis_by_name__WEBPACK_IMPORTED_MODULE_0__["default"])(name, this._pane.axes); +}; + + __webpack_exports__["default"] = (ChartPane); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/api-elements/chart-plotarea.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + +var ChartPlotArea = (function (Class) { + function ChartPlotArea(plotArea) { + Class.call(this); + + this._plotArea = plotArea; + this.visual = plotArea.visual; + this.backgroundVisual = plotArea._bgVisual; + } + + if ( Class ) ChartPlotArea.__proto__ = Class; + ChartPlotArea.prototype = Object.create( Class && Class.prototype ); + ChartPlotArea.prototype.constructor = ChartPlotArea; + + return ChartPlotArea; +}(_common__WEBPACK_IMPORTED_MODULE_0__["Class"])); + + __webpack_exports__["default"] = (ChartPlotArea); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/api-elements/find-axis-by-name.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return findAxisByName; }); + var _chart_axis__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/api-elements/chart-axis.js"); + + +function findAxisByName(name, axes) { + for (var idx = 0; idx < axes.length; idx++) { + if (axes[idx].options.name === name) { + axes[idx].prepareUserOptions(); + return new _chart_axis__WEBPACK_IMPORTED_MODULE_0__["default"](axes[idx]); + } + } +} + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/area-chart/area-chart.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _line_chart_line_chart__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/line-chart/line-chart.js"); + var _line_chart_line_point__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/line-chart/line-point.js"); + var _area_segment__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/area-chart/area-segment.js"); + var _step_area_segment__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/area-chart/step-area-segment.js"); + var _spline_area_segment__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/area-chart/spline-area-segment.js"); + var _constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/constants.js"); + + + + + + + + + +var AreaChart = (function (LineChart) { + function AreaChart () { + LineChart.apply(this, arguments); + } + + if ( LineChart ) AreaChart.__proto__ = LineChart; + AreaChart.prototype = Object.create( LineChart && LineChart.prototype ); + AreaChart.prototype.constructor = AreaChart; + + AreaChart.prototype.createSegment = function createSegment (linePoints, currentSeries, seriesIx, prevSegment) { + var isStacked = this.options.isStacked; + var style = (currentSeries.line || {}).style; + var previousSegment; + + var stackPoints; + if (isStacked && seriesIx > 0 && prevSegment) { + var missingValues = this.seriesMissingValues(currentSeries); + if (missingValues !== "gap") { + stackPoints = prevSegment.linePoints; + previousSegment = prevSegment; + } else { + stackPoints = this._gapStackPoints(linePoints, seriesIx, style); + } + } + + var pointType; + if (style === _constants__WEBPACK_IMPORTED_MODULE_5__["STEP"]) { + pointType = _step_area_segment__WEBPACK_IMPORTED_MODULE_3__["default"]; + } else if (style === _constants__WEBPACK_IMPORTED_MODULE_5__["SMOOTH"]) { + pointType = _spline_area_segment__WEBPACK_IMPORTED_MODULE_4__["default"]; + } else { + pointType = _area_segment__WEBPACK_IMPORTED_MODULE_2__["default"]; + } + + return new pointType(linePoints, currentSeries, seriesIx, previousSegment, stackPoints); + }; + + AreaChart.prototype.reflow = function reflow (targetBox) { + var this$1 = this; + + LineChart.prototype.reflow.call(this, targetBox); + + var stackPoints = this._stackPoints; + if (stackPoints) { + for (var idx = 0; idx < stackPoints.length; idx++) { + var stackPoint = stackPoints[idx]; + var pointSlot = this$1.categoryAxis.getSlot(stackPoint.categoryIx); + stackPoint.reflow(pointSlot); + } + } + }; + + AreaChart.prototype._gapStackPoints = function _gapStackPoints (linePoints, seriesIx, style) { + var this$1 = this; + + var seriesPoints = this.seriesPoints; + var startIdx = linePoints[0].categoryIx; + var length = linePoints.length; + if (startIdx < 0) { + startIdx = 0; + length--; + } + + var endIdx = startIdx + length; + var pointOffset = this.seriesOptions[0]._outOfRangeMinPoint ? 1 : 0; + var stackPoints = []; + + this._stackPoints = this._stackPoints || []; + for (var categoryIx = startIdx; categoryIx < endIdx; categoryIx++) { + var pointIx = categoryIx + pointOffset; + var currentSeriesIx = seriesIx; + var point = (void 0); + + do { + currentSeriesIx--; + point = seriesPoints[currentSeriesIx][pointIx]; + } while (currentSeriesIx > 0 && !point); + + if (point) { + if (style !== _constants__WEBPACK_IMPORTED_MODULE_5__["STEP"] && categoryIx > startIdx && !seriesPoints[currentSeriesIx][pointIx - 1]) { + stackPoints.push(this$1._previousSegmentPoint(categoryIx, pointIx, pointIx - 1, currentSeriesIx)); + } + + stackPoints.push(point); + + if (style !== _constants__WEBPACK_IMPORTED_MODULE_5__["STEP"] && categoryIx + 1 < endIdx && !seriesPoints[currentSeriesIx][pointIx + 1]) { + stackPoints.push(this$1._previousSegmentPoint(categoryIx, pointIx, pointIx + 1, currentSeriesIx)); + } + } else { + var gapStackPoint = this$1._createGapStackPoint(categoryIx); + this$1._stackPoints.push(gapStackPoint); + stackPoints.push(gapStackPoint); + } + } + + return stackPoints; + }; + + AreaChart.prototype._previousSegmentPoint = function _previousSegmentPoint (categoryIx, pointIx, segmentIx, seriesIdx) { + var seriesPoints = this.seriesPoints; + var index = seriesIdx; + var point; + + while (index > 0 && !point) { + index--; + point = seriesPoints[index][segmentIx]; + } + + if (!point) { + point = this._createGapStackPoint(categoryIx); + this._stackPoints.push(point); + } else { + point = seriesPoints[index][pointIx]; + } + + return point; + }; + + AreaChart.prototype._createGapStackPoint = function _createGapStackPoint (categoryIx) { + var options = this.pointOptions({}, 0); + var point = new _line_chart_line_point__WEBPACK_IMPORTED_MODULE_1__["default"](0, options); + point.categoryIx = categoryIx; + point.series = {}; + + return point; + }; + + AreaChart.prototype.seriesMissingValues = function seriesMissingValues (series) { + return series.missingValues || _constants__WEBPACK_IMPORTED_MODULE_5__["ZERO"]; + }; + + return AreaChart; +}(_line_chart_line_chart__WEBPACK_IMPORTED_MODULE_0__["default"])); + + __webpack_exports__["default"] = (AreaChart); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/area-chart/area-segment.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/main.js"); + var _line_chart_line_segment__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/line-chart/line-segment.js"); + var _common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + + +var AreaSegment = (function (LineSegment) { + function AreaSegment(linePoints, currentSeries, seriesIx, prevSegment, stackPoints) { + LineSegment.call(this, linePoints, currentSeries, seriesIx); + + this.prevSegment = prevSegment; + this.stackPoints = stackPoints; + } + + if ( LineSegment ) AreaSegment.__proto__ = LineSegment; + AreaSegment.prototype = Object.create( LineSegment && LineSegment.prototype ); + AreaSegment.prototype.constructor = AreaSegment; + + AreaSegment.prototype.createVisual = function createVisual () { + var series = this.series; + var defaults = series._defaults; + var lineOptions = series.line || {}; + var color = series.color; + + if (Object(_common__WEBPACK_IMPORTED_MODULE_2__["isFunction"])(color) && defaults) { + color = defaults.color; + } + + this.visual = new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Group({ + zIndex: series.zIndex + }); + + this.createFill({ + fill: { + color: color, + opacity: series.opacity + }, + stroke: null + }); + + if (lineOptions.width > 0 && lineOptions.visible !== false) { + this.createStroke({ + stroke: Object(_common__WEBPACK_IMPORTED_MODULE_2__["deepExtend"])({ + color: color, + opacity: series.opacity, + lineCap: "butt" + }, lineOptions) + }); + } + }; + + AreaSegment.prototype.strokeSegments = function strokeSegments () { + var segments = this._strokeSegments; + + if (!segments) { + segments = this._strokeSegments = this.createStrokeSegments(); + } + + return segments; + }; + + AreaSegment.prototype.createStrokeSegments = function createStrokeSegments () { + return this.segmentsFromPoints(this.points()); + }; + + AreaSegment.prototype.stackSegments = function stackSegments () { + if (this.prevSegment) { + return this.prevSegment.createStackSegments(this.stackPoints); + } + + return this.createStackSegments(this.stackPoints); + }; + + AreaSegment.prototype.createStackSegments = function createStackSegments (stackPoints) { + return this.segmentsFromPoints(this.toGeometryPoints(stackPoints)).reverse(); + }; + + AreaSegment.prototype.segmentsFromPoints = function segmentsFromPoints (points) { + return points.map(function (point) { return new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].Segment(point); }); + }; + + AreaSegment.prototype.createStroke = function createStroke (style) { + var stroke = new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Path(style); + stroke.segments.push.apply(stroke.segments, this.strokeSegments()); + + this.visual.append(stroke); + }; + + AreaSegment.prototype.hasStackSegment = function hasStackSegment () { + return this.prevSegment || (this.stackPoints && this.stackPoints.length); + }; + + AreaSegment.prototype.createFill = function createFill (style) { + var strokeSegments = this.strokeSegments(); + var fillSegments = strokeSegments.slice(0); + var hasStackSegments = this.hasStackSegment(); + + if (hasStackSegments) { + var stackSegments = this.stackSegments(); + + Object(_common__WEBPACK_IMPORTED_MODULE_2__["append"])(fillSegments, stackSegments); + } + + var fill = new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Path(style); + fill.segments.push.apply(fill.segments, fillSegments); + + if (!hasStackSegments && strokeSegments.length > 1) { + this.fillToAxes(fill); + } + + this.visual.append(fill); + }; + + AreaSegment.prototype.fillToAxes = function fillToAxes (fillPath) { + var chart = this.parent; + var invertAxes = chart.options.invertAxes; + var valueAxis = chart.seriesValueAxis(this.series); + var crossingValue = chart.categoryAxisCrossingValue(valueAxis); + var endSlot = valueAxis.getSlot(crossingValue, crossingValue, true); + var segments = this.strokeSegments(); + var firstPoint = segments[0].anchor(); + var lastPoint = Object(_common__WEBPACK_IMPORTED_MODULE_2__["last"])(segments).anchor(); + var end = invertAxes ? endSlot.x1 : endSlot.y1; + + if (invertAxes) { + fillPath.lineTo(end, lastPoint.y) + .lineTo(end, firstPoint.y); + } else { + fillPath.lineTo(lastPoint.x, end) + .lineTo(firstPoint.x, end); + } + }; + + return AreaSegment; +}(_line_chart_line_segment__WEBPACK_IMPORTED_MODULE_1__["default"])); + + __webpack_exports__["default"] = (AreaSegment); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/area-chart/spline-area-segment.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/main.js"); + var _core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core.js"); + var _area_segment__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/area-chart/area-segment.js"); + + + + + +var SplineAreaSegment = (function (AreaSegment) { + function SplineAreaSegment () { + AreaSegment.apply(this, arguments); + } + + if ( AreaSegment ) SplineAreaSegment.__proto__ = AreaSegment; + SplineAreaSegment.prototype = Object.create( AreaSegment && AreaSegment.prototype ); + SplineAreaSegment.prototype.constructor = SplineAreaSegment; + + SplineAreaSegment.prototype.createStrokeSegments = function createStrokeSegments () { + var curveProcessor = new _core__WEBPACK_IMPORTED_MODULE_1__["CurveProcessor"](this.options.closed); + var linePoints = this.points(); + + return curveProcessor.process(linePoints); + }; + + SplineAreaSegment.prototype.createStackSegments = function createStackSegments () { + var strokeSegments = this.strokeSegments(); + var stackSegments = []; + for (var idx = strokeSegments.length - 1; idx >= 0; idx--) { + var segment = strokeSegments[idx]; + stackSegments.push(new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].Segment( + segment.anchor(), + segment.controlOut(), + segment.controlIn() + )); + } + + return stackSegments; + }; + + return SplineAreaSegment; +}(_area_segment__WEBPACK_IMPORTED_MODULE_2__["default"])); + + __webpack_exports__["default"] = (SplineAreaSegment); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/area-chart/step-area-segment.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _line_chart_step_line_mixin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/line-chart/step-line-mixin.js"); + var _area_segment__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/area-chart/area-segment.js"); + var _common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + + +var StepAreaSegment = (function (AreaSegment) { + function StepAreaSegment () { + AreaSegment.apply(this, arguments); + } + + if ( AreaSegment ) StepAreaSegment.__proto__ = AreaSegment; + StepAreaSegment.prototype = Object.create( AreaSegment && AreaSegment.prototype ); + StepAreaSegment.prototype.constructor = StepAreaSegment; + + StepAreaSegment.prototype.createStrokeSegments = function createStrokeSegments () { + return this.segmentsFromPoints(this.calculateStepPoints(this.linePoints)); + }; + + StepAreaSegment.prototype.createStackSegments = function createStackSegments (stackPoints) { + return this.segmentsFromPoints(this.calculateStepPoints(stackPoints)).reverse(); + }; + + return StepAreaSegment; +}(_area_segment__WEBPACK_IMPORTED_MODULE_1__["default"])); + +Object(_common__WEBPACK_IMPORTED_MODULE_2__["deepExtend"])(StepAreaSegment.prototype, _line_chart_step_line_mixin__WEBPACK_IMPORTED_MODULE_0__["default"]); + + __webpack_exports__["default"] = (StepAreaSegment); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/axis-group-range-tracker.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _common_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + +var AxisGroupRangeTracker = (function (Class) { + function AxisGroupRangeTracker() { + Class.call(this); + + this.axisRanges = {}; + } + + if ( Class ) AxisGroupRangeTracker.__proto__ = Class; + AxisGroupRangeTracker.prototype = Object.create( Class && Class.prototype ); + AxisGroupRangeTracker.prototype.constructor = AxisGroupRangeTracker; + + AxisGroupRangeTracker.prototype.update = function update (chartAxisRanges) { + var axisRanges = this.axisRanges; + + for (var axisName in chartAxisRanges) { + var chartRange = chartAxisRanges[axisName]; + var range = axisRanges[axisName]; + axisRanges[axisName] = range = range || { min: _common_constants__WEBPACK_IMPORTED_MODULE_0__["MAX_VALUE"], max: _common_constants__WEBPACK_IMPORTED_MODULE_0__["MIN_VALUE"] }; + + range.min = Math.min(range.min, chartRange.min); + range.max = Math.max(range.max, chartRange.max); + } + }; + + AxisGroupRangeTracker.prototype.reset = function reset (axisName) { + this.axisRanges[axisName] = undefined; + }; + + AxisGroupRangeTracker.prototype.query = function query (axisName) { + return this.axisRanges[axisName]; + }; + + return AxisGroupRangeTracker; +}(_common__WEBPACK_IMPORTED_MODULE_1__["Class"])); + + __webpack_exports__["default"] = (AxisGroupRangeTracker); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/bar-chart/bar-chart.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/main.js"); + var _bar__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/bar-chart/bar.js"); + var _categorical_chart__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/categorical-chart.js"); + var _layout_cluster_layout__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/layout/cluster-layout.js"); + var _layout_stack_wrap__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/layout/stack-wrap.js"); + var _constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/constants.js"); + var _utils_any_has_z_index__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/utils/any-has-z-index.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + + + + + + + + + + + +var BarChart = (function (CategoricalChart) { + function BarChart () { + CategoricalChart.apply(this, arguments); + } + + if ( CategoricalChart ) BarChart.__proto__ = CategoricalChart; + BarChart.prototype = Object.create( CategoricalChart && CategoricalChart.prototype ); + BarChart.prototype.constructor = BarChart; + + BarChart.prototype.render = function render () { + CategoricalChart.prototype.render.call(this); + this.updateStackRange(); + }; + + BarChart.prototype.pointType = function pointType () { + return _bar__WEBPACK_IMPORTED_MODULE_1__["default"]; + }; + + BarChart.prototype.clusterType = function clusterType () { + return _layout_cluster_layout__WEBPACK_IMPORTED_MODULE_3__["default"]; + }; + + BarChart.prototype.stackType = function stackType () { + return _layout_stack_wrap__WEBPACK_IMPORTED_MODULE_4__["default"]; + }; + + BarChart.prototype.stackLimits = function stackLimits (axisName, stackName) { + var limits = CategoricalChart.prototype.stackLimits.call(this, axisName, stackName); + + return limits; + }; + + BarChart.prototype.createPoint = function createPoint (data, fields) { + var categoryIx = fields.categoryIx; + var category = fields.category; + var series = fields.series; + var seriesIx = fields.seriesIx; + var ref = this; + var options = ref.options; + var children = ref.children; + var isStacked = options.isStacked; + var value = this.pointValue(data); + var pointOptions = this.pointOptions(series, seriesIx); + + var labelOptions = pointOptions.labels; + if (isStacked) { + if (labelOptions.position === _constants__WEBPACK_IMPORTED_MODULE_5__["OUTSIDE_END"]) { + labelOptions.position = _constants__WEBPACK_IMPORTED_MODULE_5__["INSIDE_END"]; + } + } + + pointOptions.isStacked = isStacked; + + var color = data.fields.color || series.color; + if (value < 0 && pointOptions.negativeColor) { + color = pointOptions.negativeColor; + } + + pointOptions = this.evalPointOptions( + pointOptions, value, category, categoryIx, series, seriesIx + ); + + if (Object(_common__WEBPACK_IMPORTED_MODULE_8__["isFunction"])(series.color)) { + color = pointOptions.color; + } + + var pointType = this.pointType(); + var point = new pointType(value, pointOptions); + point.color = color; + + var cluster = children[categoryIx]; + if (!cluster) { + var clusterType = this.clusterType(); + cluster = new clusterType({ + vertical: options.invertAxes, + gap: options.gap, + spacing: options.spacing, + rtl: !options.invertAxes && (this.chartService || {}).rtl + }); + this.append(cluster); + } + + if (isStacked) { + var stackWrap = this.getStackWrap(series, cluster); + stackWrap.append(point); + } else { + cluster.append(point); + } + + return point; + }; + + BarChart.prototype.getStackWrap = function getStackWrap (series, cluster) { + var stack = series.stack; + var stackGroup = stack ? stack.group || stack : stack; + var wraps = cluster.children; + var stackWrap; + + if (typeof stackGroup === _common_constants__WEBPACK_IMPORTED_MODULE_7__["STRING"]) { + for (var i = 0; i < wraps.length; i++) { + if (wraps[i]._stackGroup === stackGroup) { + stackWrap = wraps[i]; + break; + } + } + } else { + stackWrap = wraps[0]; + } + + if (!stackWrap) { + var stackType = this.stackType(); + stackWrap = new stackType({ + vertical: !this.options.invertAxes + }); + stackWrap._stackGroup = stackGroup; + cluster.append(stackWrap); + } + + return stackWrap; + }; + + BarChart.prototype.categorySlot = function categorySlot (categoryAxis, categoryIx, valueAxis) { + var options = this.options; + var categorySlot = categoryAxis.getSlot(categoryIx); + var startValue = valueAxis.startValue(); + + if (options.isStacked) { + var zeroSlot = valueAxis.getSlot(startValue, startValue, true); + var stackAxis = options.invertAxes ? _common_constants__WEBPACK_IMPORTED_MODULE_7__["X"] : _common_constants__WEBPACK_IMPORTED_MODULE_7__["Y"]; + categorySlot[stackAxis + 1] = categorySlot[stackAxis + 2] = zeroSlot[stackAxis + 1]; + } + + return categorySlot; + }; + + BarChart.prototype.reflowCategories = function reflowCategories (categorySlots) { + var children = this.children; + var childrenLength = children.length; + + for (var i = 0; i < childrenLength; i++) { + children[i].reflow(categorySlots[i]); + } + }; + + BarChart.prototype.createAnimation = function createAnimation () { + this._setAnimationOptions(); + CategoricalChart.prototype.createAnimation.call(this); + + if (Object(_utils_any_has_z_index__WEBPACK_IMPORTED_MODULE_6__["default"])(this.options.series)) { + this._setChildrenAnimation(); + } + }; + + BarChart.prototype._setChildrenAnimation = function _setChildrenAnimation () { + var this$1 = this; + + var points = this.points; + + for (var idx = 0; idx < points.length; idx++) { + var point = points[idx]; + var pointVisual = point.visual; + if (pointVisual && Object(_common__WEBPACK_IMPORTED_MODULE_8__["defined"])(pointVisual.options.zIndex)) { + point.options.animation = this$1.options.animation; + point.createAnimation(); + } + } + }; + + BarChart.prototype._setAnimationOptions = function _setAnimationOptions () { + var options = this.options; + var animation = options.animation || {}; + var origin; + + if (options.isStacked) { + var valueAxis = this.seriesValueAxis(options.series[0]); + origin = valueAxis.getSlot(valueAxis.startValue()); + } else { + origin = this.categoryAxis.getSlot(0); + } + + animation.origin = new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].Point(origin.x1, origin.y1); + animation.vertical = !options.invertAxes; + }; + + return BarChart; +}(_categorical_chart__WEBPACK_IMPORTED_MODULE_2__["default"])); + +Object(_common__WEBPACK_IMPORTED_MODULE_8__["setDefaultOptions"])(BarChart, { + animation: { + type: _constants__WEBPACK_IMPORTED_MODULE_5__["BAR"] + } +}); + + __webpack_exports__["default"] = (BarChart); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/bar-chart/bar-label.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core.js"); + var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/constants.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + + + +var BarLabel = (function (ChartElement) { + function BarLabel(content, options, pointData) { + ChartElement.call(this, options); + + this.textBox = new _core__WEBPACK_IMPORTED_MODULE_0__["TextBox"](content, this.options, pointData); + this.append(this.textBox); + } + + if ( ChartElement ) BarLabel.__proto__ = ChartElement; + BarLabel.prototype = Object.create( ChartElement && ChartElement.prototype ); + BarLabel.prototype.constructor = BarLabel; + + BarLabel.prototype.createVisual = function createVisual () { + this.textBox.options.noclip = this.options.noclip; + }; + + BarLabel.prototype.reflow = function reflow (targetBox) { + var options = this.options; + var vertical = options.vertical; + var aboveAxis = options.aboveAxis; + var text = this.children[0]; + var textOptions = text.options; + var box = text.box; + var padding = text.options.padding; + var labelBox = targetBox; + + textOptions.align = vertical ? _common_constants__WEBPACK_IMPORTED_MODULE_2__["CENTER"] : _common_constants__WEBPACK_IMPORTED_MODULE_2__["LEFT"]; + textOptions.vAlign = vertical ? _common_constants__WEBPACK_IMPORTED_MODULE_2__["TOP"] : _common_constants__WEBPACK_IMPORTED_MODULE_2__["CENTER"]; + + if (options.position === _constants__WEBPACK_IMPORTED_MODULE_1__["INSIDE_END"]) { + if (vertical) { + textOptions.vAlign = _common_constants__WEBPACK_IMPORTED_MODULE_2__["TOP"]; + + if (!aboveAxis && box.height() < targetBox.height()) { + textOptions.vAlign = _common_constants__WEBPACK_IMPORTED_MODULE_2__["BOTTOM"]; + } + } else { + textOptions.align = aboveAxis ? _common_constants__WEBPACK_IMPORTED_MODULE_2__["RIGHT"] : _common_constants__WEBPACK_IMPORTED_MODULE_2__["LEFT"]; + } + } else if (options.position === _common_constants__WEBPACK_IMPORTED_MODULE_2__["CENTER"]) { + textOptions.vAlign = _common_constants__WEBPACK_IMPORTED_MODULE_2__["CENTER"]; + textOptions.align = _common_constants__WEBPACK_IMPORTED_MODULE_2__["CENTER"]; + } else if (options.position === _constants__WEBPACK_IMPORTED_MODULE_1__["INSIDE_BASE"]) { + if (vertical) { + textOptions.vAlign = aboveAxis ? _common_constants__WEBPACK_IMPORTED_MODULE_2__["BOTTOM"] : _common_constants__WEBPACK_IMPORTED_MODULE_2__["TOP"]; + } else { + textOptions.align = aboveAxis ? _common_constants__WEBPACK_IMPORTED_MODULE_2__["LEFT"] : _common_constants__WEBPACK_IMPORTED_MODULE_2__["RIGHT"]; + } + } else if (options.position === _constants__WEBPACK_IMPORTED_MODULE_1__["OUTSIDE_END"]) { + if (vertical) { + if (aboveAxis) { + labelBox = new _core__WEBPACK_IMPORTED_MODULE_0__["Box"]( + targetBox.x1, targetBox.y1 - box.height(), + targetBox.x2, targetBox.y1 + ); + } else { + labelBox = new _core__WEBPACK_IMPORTED_MODULE_0__["Box"]( + targetBox.x1, targetBox.y2, + targetBox.x2, targetBox.y2 + box.height() + ); + } + } else { + textOptions.align = _common_constants__WEBPACK_IMPORTED_MODULE_2__["CENTER"]; + if (aboveAxis) { + labelBox = new _core__WEBPACK_IMPORTED_MODULE_0__["Box"]( + targetBox.x2, targetBox.y1, + targetBox.x2 + box.width(), targetBox.y2 + ); + } else { + labelBox = new _core__WEBPACK_IMPORTED_MODULE_0__["Box"]( + targetBox.x1 - box.width(), targetBox.y1, + targetBox.x1, targetBox.y2 + ); + } + } + } + + if (!options.rotation) { + if (vertical) { + padding.left = padding.right = + (labelBox.width() - text.contentBox.width()) / 2; + } else { + padding.top = padding.bottom = + (labelBox.height() - text.contentBox.height()) / 2; + } + } + + text.reflow(labelBox); + }; + + BarLabel.prototype.alignToClipBox = function alignToClipBox (clipBox) { + var vertical = this.options.vertical; + var field = vertical ? _common_constants__WEBPACK_IMPORTED_MODULE_2__["Y"] : _common_constants__WEBPACK_IMPORTED_MODULE_2__["X"]; + var start = field + "1"; + var end = field + "2"; + var text = this.children[0]; + var parentBox = this.parent.box; + + if (parentBox[start] < clipBox[start] || clipBox[end] < parentBox[end]) { + var targetBox = text.paddingBox.clone(); + targetBox[start] = Math.max(parentBox[start], clipBox[start]); + targetBox[end] = Math.min(parentBox[end], clipBox[end]); + + this.reflow(targetBox); + } + }; + + return BarLabel; +}(_core__WEBPACK_IMPORTED_MODULE_0__["ChartElement"])); + +Object(_common__WEBPACK_IMPORTED_MODULE_3__["setDefaultOptions"])(BarLabel, { + position: _constants__WEBPACK_IMPORTED_MODULE_1__["OUTSIDE_END"], + margin: Object(_common__WEBPACK_IMPORTED_MODULE_3__["getSpacing"])(3), + padding: Object(_common__WEBPACK_IMPORTED_MODULE_3__["getSpacing"])(4), + color: _common_constants__WEBPACK_IMPORTED_MODULE_2__["BLACK"], + background: "", + border: { + width: 1, + color: "" + }, + aboveAxis: true, + vertical: false, + animation: { + type: _constants__WEBPACK_IMPORTED_MODULE_1__["FADEIN"], + delay: _constants__WEBPACK_IMPORTED_MODULE_1__["INITIAL_ANIMATION_DURATION"] + }, + zIndex: 2 +}); + + __webpack_exports__["default"] = (BarLabel); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/bar-chart/bar.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/main.js"); + var _bar_label__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/bar-chart/bar-label.js"); + var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/constants.js"); + var _utils_has_gradient_overlay__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/utils/has-gradient-overlay.js"); + var _core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core.js"); + var _mixins_point_events_mixin__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/mixins/point-events-mixin.js"); + var _mixins_note_mixin__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/mixins/note-mixin.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + + + + + + + + + + + + + +var BAR_ALIGN_MIN_WIDTH = 6; + +var Bar = (function (ChartElement) { + function Bar(value, options) { + ChartElement.call(this); + + this.options = options; + this.color = options.color || _common_constants__WEBPACK_IMPORTED_MODULE_7__["WHITE"]; + this.aboveAxis = Object(_common__WEBPACK_IMPORTED_MODULE_8__["valueOrDefault"])(this.options.aboveAxis, true); + this.value = value; + } + + if ( ChartElement ) Bar.__proto__ = ChartElement; + Bar.prototype = Object.create( ChartElement && ChartElement.prototype ); + Bar.prototype.constructor = Bar; + + Bar.prototype.render = function render () { + if (this._rendered) { + return; + } + + this._rendered = true; + + this.createLabel(); + this.createNote(); + + if (this.errorBar) { + this.append(this.errorBar); + } + }; + + Bar.prototype.createLabel = function createLabel () { + var options = this.options; + var labels = options.labels; + + if (labels.visible) { + var pointData = this.pointData(); + var labelTemplate = Object(_common__WEBPACK_IMPORTED_MODULE_8__["getTemplate"])(labels); + var labelText; + + if (labelTemplate) { + labelText = labelTemplate(pointData); + } else { + labelText = this.formatValue(labels.format); + } + + this.label = new _bar_label__WEBPACK_IMPORTED_MODULE_1__["default"](labelText, + Object(_common__WEBPACK_IMPORTED_MODULE_8__["deepExtend"])({ + vertical: options.vertical + }, + labels + ), pointData); + this.append(this.label); + } + }; + + Bar.prototype.formatValue = function formatValue (format) { + return this.owner.formatPointValue(this, format); + }; + + Bar.prototype.reflow = function reflow (targetBox) { + var this$1 = this; + + this.render(); + + var label = this.label; + + this.box = targetBox; + + if (label) { + label.options.aboveAxis = this.aboveAxis; + label.reflow(targetBox); + } + + if (this.note) { + this.note.reflow(targetBox); + } + + if (this.errorBars) { + for (var i = 0; i < this.errorBars.length; i++) { + this$1.errorBars[i].reflow(targetBox); + } + } + }; + + Bar.prototype.createVisual = function createVisual () { + var this$1 = this; + + var ref = this; + var box = ref.box; + var options = ref.options; + var customVisual = options.visual; + + if (this.visible !== false) { + ChartElement.prototype.createVisual.call(this); + + if (customVisual) { + var visual = this.rectVisual = customVisual({ + category: this.category, + dataItem: this.dataItem, + value: this.value, + sender: this.getSender(), + series: this.series, + percentage: this.percentage, + stackValue: this.stackValue, + runningTotal: this.runningTotal, + total: this.total, + rect: box.toRect(), + createVisual: function () { + var group = new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Group(); + this$1.createRect(group); + return group; + }, + options: options + }); + + if (visual) { + this.visual.append(visual); + } + } else if (box.width() > 0 && box.height() > 0) { + this.createRect(this.visual); + } + } + }; + + Bar.prototype.createRect = function createRect (visual) { + var options = this.options; + var border = options.border; + var strokeOpacity = Object(_common__WEBPACK_IMPORTED_MODULE_8__["defined"])(border.opacity) ? border.opacity : options.opacity; + var rect = this.box.toRect(); + + rect.size.width = Math.round(rect.size.width); + + var path = this.rectVisual = _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Path.fromRect(rect, { + fill: { + color: this.color, + opacity: options.opacity + }, + stroke: { + color: this.getBorderColor(), + width: border.width, + opacity: strokeOpacity, + dashType: border.dashType + } + }); + + var width = this.box.width(); + var height = this.box.height(); + + var size = options.vertical ? width : height; + + if (size > BAR_ALIGN_MIN_WIDTH) { + Object(_common__WEBPACK_IMPORTED_MODULE_8__["alignPathToPixel"])(path); + + // Fixes lineJoin issue in firefox when the joined lines are parallel + if (width < 1 || height < 1) { + path.options.stroke.lineJoin = "round"; + } + } + + visual.append(path); + + if (Object(_utils_has_gradient_overlay__WEBPACK_IMPORTED_MODULE_3__["default"])(options)) { + var overlay = this.createGradientOverlay(path, { baseColor: this.color }, Object(_common__WEBPACK_IMPORTED_MODULE_8__["deepExtend"])({ + end: !options.vertical ? [ 0, 1 ] : undefined + }, options.overlay)); + + visual.append(overlay); + } + }; + + Bar.prototype.createHighlight = function createHighlight (style) { + var highlight = _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Path.fromRect(this.box.toRect(), style); + + return Object(_common__WEBPACK_IMPORTED_MODULE_8__["alignPathToPixel"])(highlight); + }; + + Bar.prototype.highlightVisual = function highlightVisual () { + return this.rectVisual; + }; + + Bar.prototype.highlightVisualArgs = function highlightVisualArgs () { + return { + options: this.options, + rect: this.box.toRect(), + visual: this.rectVisual + }; + }; + + Bar.prototype.getBorderColor = function getBorderColor () { + var color = this.color; + var border = this.options.border; + var brightness = border._brightness || _constants__WEBPACK_IMPORTED_MODULE_2__["BORDER_BRIGHTNESS"]; + var borderColor = border.color; + + if (!Object(_common__WEBPACK_IMPORTED_MODULE_8__["defined"])(borderColor)) { + borderColor = new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["Color"](color).brightness(brightness).toHex(); + } + + return borderColor; + }; + + Bar.prototype.tooltipAnchor = function tooltipAnchor () { + var ref = this; + var options = ref.options; + var box = ref.box; + var aboveAxis = ref.aboveAxis; + var clipBox = this.owner.pane.clipBox() || box; + var horizontalAlign = _common_constants__WEBPACK_IMPORTED_MODULE_7__["LEFT"]; + var verticalAlign = _common_constants__WEBPACK_IMPORTED_MODULE_7__["TOP"]; + var x, y; + + if (options.vertical) { + x = Math.min(box.x2, clipBox.x2) + _constants__WEBPACK_IMPORTED_MODULE_2__["TOOLTIP_OFFSET"]; + if (aboveAxis) { + y = Math.max(box.y1, clipBox.y1); + } else { + y = Math.min(box.y2, clipBox.y2); + verticalAlign = _common_constants__WEBPACK_IMPORTED_MODULE_7__["BOTTOM"]; + } + } else { + var x1 = Math.max(box.x1, clipBox.x1); + var x2 = Math.min(box.x2, clipBox.x2); + + if (options.isStacked) { + verticalAlign = _common_constants__WEBPACK_IMPORTED_MODULE_7__["BOTTOM"]; + if (aboveAxis) { + horizontalAlign = _common_constants__WEBPACK_IMPORTED_MODULE_7__["RIGHT"]; + x = x2; + } else { + x = x1; + } + y = Math.max(box.y1, clipBox.y1) - _constants__WEBPACK_IMPORTED_MODULE_2__["TOOLTIP_OFFSET"]; + } else { + if (aboveAxis) { + x = x2 + _constants__WEBPACK_IMPORTED_MODULE_2__["TOOLTIP_OFFSET"]; + } else { + x = x1 - _constants__WEBPACK_IMPORTED_MODULE_2__["TOOLTIP_OFFSET"]; + horizontalAlign = _common_constants__WEBPACK_IMPORTED_MODULE_7__["RIGHT"]; + } + y = Math.max(box.y1, clipBox.y1); + } + } + + return { + point: new _core__WEBPACK_IMPORTED_MODULE_4__["Point"](x, y), + align: { + horizontal: horizontalAlign, + vertical: verticalAlign + } + }; + }; + + Bar.prototype.overlapsBox = function overlapsBox (box) { + return this.box.overlaps(box); + }; + + Bar.prototype.pointData = function pointData () { + return { + dataItem: this.dataItem, + category: this.category, + value: this.value, + percentage: this.percentage, + stackValue: this.stackValue, + runningTotal: this.runningTotal, + total: this.total, + series: this.series + }; + }; + + return Bar; +}(_core__WEBPACK_IMPORTED_MODULE_4__["ChartElement"])); + +Object(_common__WEBPACK_IMPORTED_MODULE_8__["deepExtend"])(Bar.prototype, _mixins_point_events_mixin__WEBPACK_IMPORTED_MODULE_5__["default"]); +Object(_common__WEBPACK_IMPORTED_MODULE_8__["deepExtend"])(Bar.prototype, _mixins_note_mixin__WEBPACK_IMPORTED_MODULE_6__["default"]); + +Bar.prototype.defaults = { + border: { + width: 1 + }, + vertical: true, + overlay: { + gradient: "glass" + }, + labels: { + visible: false, + format: "{0}" + }, + opacity: 1, + notes: { + label: {} + } +}; + + __webpack_exports__["default"] = (Bar); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/base-theme.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "baseTheme", function() { return baseTheme; }); +var BAR_GAP = 1.5; +var BAR_SPACING = 0.4; +var BLACK = '#000'; +var SANS = 'Arial, Helvetica, sans-serif'; +var SANS11 = "11px " + SANS; +var SANS12 = '12px ' + SANS; +var SANS16 = '16px ' + SANS; +var TRANSPARENT = 'transparent'; +var WHITE = '#fff'; + +var notes = function () { return ({ + icon: { + border: { + width: 1 + } + }, + label: { + font: SANS12, + padding: 3 + }, + line: { + length: 10, + width: 2 + }, + visible: true +}); }; + +var axisDefaults = function () { return ({ + labels: { + font: SANS12 + }, + notes: notes(), + title: { + font: SANS16, + margin: 5 + } +}); }; + +var areaSeries = function () { return ({ + highlight: { + markers: { + border: {} + } + }, + line: { + opacity: 1, + width: 0 + }, + markers: { + size: 6, + visible: false + }, + opacity: 0.4 +}); }; + +var rangeAreaSeries = function () { return ({ + highlight: { + markers: { + border: {} + } + }, + line: { + opacity: 1, + width: 0 + }, + markers: { + size: 6, + visible: false + }, + opacity: 0.4 +}); }; + +var barSeries = function () { return ({ + gap: BAR_GAP, + spacing: BAR_SPACING +}); }; + +var boxPlotSeries = function () { return ({ + outliersField: "", + meanField: "", + border: { + _brightness: 0.8, + width: 1 + }, + downColor: WHITE, + gap: 1, + highlight: { + border: { + opacity: 1, + width: 2 + }, + whiskers: { + width: 3 + }, + mean: { + width: 2 + }, + median: { + width: 2 + } + }, + mean: { + width: 2 + }, + median: { + width: 2 + }, + spacing: 0.3, + whiskers: { + width: 2 + } +}); }; + +var bubbleSeries = function () { return ({ + border: { + width: 0 + }, + labels: { + background: TRANSPARENT + }, + opacity: 0.6 +}); }; + +var bulletSeries = function () { return ({ + gap: BAR_GAP, + spacing: BAR_SPACING, + target: { + color: "#ff0000" + } +}); }; + +var candlestickSeries = function () { return ({ + border: { + _brightness: 0.8, + width: 1 + }, + downColor: WHITE, + gap: 1, + highlight: { + border: { + opacity: 1, + width: 2 + }, + line: { + width: 2 + } + }, + line: { + color: BLACK, + width: 1 + }, + spacing: 0.3 +}); }; + +var columnSeries = function () { return ({ + gap: BAR_GAP, + spacing: BAR_SPACING +}); }; + +var donutSeries = function () { return ({ + margin: 1 +}); }; + +var lineSeries = function () { return ({ + width: 2 +}); }; + +var ohlcSeries = function () { return ({ + gap: 1, + highlight: { + line: { + opacity: 1, + width: 3 + } + }, + line: { + width: 1 + }, + spacing: 0.3 +}); }; + +var radarAreaSeries = function () { return ({ + line: { + opacity: 1, + width: 0 + }, + markers: { + size: 6, + visible: false + }, + opacity: 0.5 +}); }; + +var radarLineSeries = function () { return ({ + markers: { + visible: false + }, + width: 2 +}); }; + +var rangeBarSeries = function () { return ({ + gap: BAR_GAP, + spacing: BAR_SPACING +}); }; + +var rangeColumnSeries = function () { return ({ + gap: BAR_GAP, + spacing: BAR_SPACING +}); }; + +var scatterLineSeries = function () { return ({ + width: 1 +}); }; + +var waterfallSeries = function () { return ({ + gap: 0.5, + line: { + color: BLACK, + width: 1 + }, + spacing: BAR_SPACING +}); }; + +var pieSeries = function () { return ({ + labels: { + background: '', + color: '', + padding: { + top: 5, + bottom: 5, + left: 7, + right: 7 + } + } +}); }; + +var funnelSeries = function () { return ({ + labels: { + background: '', + color: '', + padding: { + top: 5, + bottom: 5, + left: 7, + right: 7 + } + } +}); }; + +var seriesDefaults = function (options) { return ({ + visible: true, + labels: { + font: SANS11 + }, + overlay: options.gradients ? {} : { + gradient: "none" + }, + area: areaSeries(), + rangeArea: rangeAreaSeries(), + verticalRangeArea: rangeAreaSeries(), + bar: barSeries(), + boxPlot: boxPlotSeries(), + bubble: bubbleSeries(), + bullet: bulletSeries(), + candlestick: candlestickSeries(), + column: columnSeries(), + pie: pieSeries(), + donut: donutSeries(), + funnel: funnelSeries(), + horizontalWaterfall: waterfallSeries(), + line: lineSeries(), + notes: notes(), + ohlc: ohlcSeries(), + radarArea: radarAreaSeries(), + radarLine: radarLineSeries(), + polarArea: radarAreaSeries(), + polarLine: radarLineSeries(), + rangeBar: rangeBarSeries(), + rangeColumn: rangeColumnSeries(), + scatterLine: scatterLineSeries(), + verticalArea: areaSeries(), + verticalBoxPlot: boxPlotSeries(), + verticalBullet: bulletSeries(), + verticalLine: lineSeries(), + waterfall: waterfallSeries() +}); }; + +var title = function () { return ({ + font: SANS16 +}); }; + +var legend = function () { return ({ + labels: { + font: SANS12 + } +}); }; + +var baseTheme = function (options) { + if ( options === void 0 ) options = {}; + + return ({ + axisDefaults: axisDefaults(), + categoryAxis: { + majorGridLines: { + visible: true + } + }, + navigator: { + pane: { + height: 90, + margin: { + top: 10 + } + } + }, + seriesDefaults: seriesDefaults(options), + title: title(), + legend: legend() +}); +}; + + + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/box-plot-chart/box-plot-chart.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _candlestick_chart_candlestick_chart__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/candlestick-chart/candlestick-chart.js"); + var _vertical_box_plot__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/box-plot-chart/vertical-box-plot.js"); + var _box_plot__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/box-plot-chart/box-plot.js"); + var _layout_cluster_layout__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/layout/cluster-layout.js"); + var _utils_are_numbers__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/utils/are-numbers.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + + + + + + + +var BoxPlotChart = (function (CandlestickChart) { + function BoxPlotChart () { + CandlestickChart.apply(this, arguments); + } + + if ( CandlestickChart ) BoxPlotChart.__proto__ = CandlestickChart; + BoxPlotChart.prototype = Object.create( CandlestickChart && CandlestickChart.prototype ); + BoxPlotChart.prototype.constructor = BoxPlotChart; + + BoxPlotChart.prototype.addValue = function addValue (data, fields) { + var categoryIx = fields.categoryIx; + var category = fields.category; + var series = fields.series; + var seriesIx = fields.seriesIx; + var ref = this; + var children = ref.children; + var options = ref.options; + var value = data.valueFields; + var valueParts = this.splitValue(value); + var hasValue = Object(_utils_are_numbers__WEBPACK_IMPORTED_MODULE_4__["default"])(valueParts); + var dataItem = series.data[categoryIx]; + var categoryPoints = this.categoryPoints[categoryIx]; + var point; + + if (!categoryPoints) { + this.categoryPoints[categoryIx] = categoryPoints = []; + } + + if (hasValue) { + point = this.createPoint(data, fields); + } + + var cluster = children[categoryIx]; + if (!cluster) { + cluster = new _layout_cluster_layout__WEBPACK_IMPORTED_MODULE_3__["default"]({ + vertical: options.invertAxes, + gap: options.gap, + spacing: options.spacing, + rtl: !options.invertAxes && (this.chartService || {}).rtl + }); + this.append(cluster); + } + + if (point) { + this.updateRange(value, fields); + + cluster.append(point); + + point.categoryIx = categoryIx; + point.category = category; + point.series = series; + point.seriesIx = seriesIx; + point.owner = this; + point.dataItem = dataItem; + } + + this.points.push(point); + categoryPoints.push(point); + }; + + BoxPlotChart.prototype.pointType = function pointType () { + if (this.options.invertAxes) { + return _vertical_box_plot__WEBPACK_IMPORTED_MODULE_1__["default"]; + } + + return _box_plot__WEBPACK_IMPORTED_MODULE_2__["default"]; + }; + + BoxPlotChart.prototype.splitValue = function splitValue (value) { + return [ + value.lower, value.q1, value.median, + value.q3, value.upper + ]; + }; + + BoxPlotChart.prototype.updateRange = function updateRange (value, fields) { + var axisName = fields.series.axis; + var axisRange = this.valueAxisRanges[axisName]; + var parts = this.splitValue(value).concat(this.filterOutliers(value.outliers)); + + if (Object(_common__WEBPACK_IMPORTED_MODULE_6__["defined"])(value.mean)) { + parts = parts.concat(value.mean); + } + + axisRange = this.valueAxisRanges[axisName] = + axisRange || { min: _common_constants__WEBPACK_IMPORTED_MODULE_5__["MAX_VALUE"], max: _common_constants__WEBPACK_IMPORTED_MODULE_5__["MIN_VALUE"] }; + + axisRange = this.valueAxisRanges[axisName] = { + min: Math.min.apply(Math, parts.concat([ axisRange.min ])), + max: Math.max.apply(Math, parts.concat([ axisRange.max ])) + }; + }; + + BoxPlotChart.prototype.formatPointValue = function formatPointValue (point, format) { + var value = point.value; + + return this.chartService.format.auto(format, + value.lower, value.q1, value.median, + value.q3, value.upper, value.mean, point.category + ); + }; + + BoxPlotChart.prototype.filterOutliers = function filterOutliers (items) { + var length = (items || []).length; + var result = []; + + for (var i = 0; i < length; i++) { + var item = items[i]; + if (Object(_common__WEBPACK_IMPORTED_MODULE_6__["defined"])(item) && item !== null) { + result.push(item); + } + } + + return result; + }; + + return BoxPlotChart; +}(_candlestick_chart_candlestick_chart__WEBPACK_IMPORTED_MODULE_0__["default"])); + + __webpack_exports__["default"] = (BoxPlotChart); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/box-plot-chart/box-plot.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/main.js"); + var _candlestick_chart_candlestick__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/candlestick-chart/candlestick.js"); + var _mixins_point_events_mixin__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/mixins/point-events-mixin.js"); + var _core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core.js"); + var _constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/constants.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + + + + + + + + +var BoxPlot = (function (Candlestick) { + function BoxPlot(value, options) { + Candlestick.call(this, value, options); + + this.createNote(); + } + + if ( Candlestick ) BoxPlot.__proto__ = Candlestick; + BoxPlot.prototype = Object.create( Candlestick && Candlestick.prototype ); + BoxPlot.prototype.constructor = BoxPlot; + + BoxPlot.prototype.reflow = function reflow (box) { + var ref = this; + var options = ref.options; + var value = ref.value; + var chart = ref.owner; + var valueAxis = chart.seriesValueAxis(options); + var whiskerSlot, boxSlot; + + this.boxSlot = boxSlot = valueAxis.getSlot(value.q1, value.q3); + this.realBody = boxSlot; + this.reflowBoxSlot(box); + + this.whiskerSlot = whiskerSlot = valueAxis.getSlot(value.lower, value.upper); + this.reflowWhiskerSlot(box); + + var medianSlot = valueAxis.getSlot(value.median); + + if (value.mean) { + var meanSlot = valueAxis.getSlot(value.mean); + this.meanPoints = this.calcMeanPoints(box, meanSlot); + } + + this.whiskerPoints = this.calcWhiskerPoints(boxSlot, whiskerSlot); + this.medianPoints = this.calcMedianPoints(box, medianSlot); + + this.box = whiskerSlot.clone().wrap(boxSlot); + this.reflowNote(); + }; + + BoxPlot.prototype.reflowBoxSlot = function reflowBoxSlot (box) { + this.boxSlot.x1 = box.x1; + this.boxSlot.x2 = box.x2; + }; + + BoxPlot.prototype.reflowWhiskerSlot = function reflowWhiskerSlot (box) { + this.whiskerSlot.x1 = box.x1; + this.whiskerSlot.x2 = box.x2; + }; + + BoxPlot.prototype.calcMeanPoints = function calcMeanPoints (box, meanSlot) { + return [ + [ [ box.x1, meanSlot.y1 ], [ box.x2, meanSlot.y1 ] ] + ]; + }; + + BoxPlot.prototype.calcWhiskerPoints = function calcWhiskerPoints (boxSlot, whiskerSlot) { + var mid = whiskerSlot.center().x; + return [ [ + [ mid - 5, whiskerSlot.y1 ], [ mid + 5, whiskerSlot.y1 ], + [ mid, whiskerSlot.y1 ], [ mid, boxSlot.y1 ] + ], [ + [ mid - 5, whiskerSlot.y2 ], [ mid + 5, whiskerSlot.y2 ], + [ mid, whiskerSlot.y2 ], [ mid, boxSlot.y2 ] + ] ]; + }; + + BoxPlot.prototype.calcMedianPoints = function calcMedianPoints (box, medianSlot) { + return [ + [ [ box.x1, medianSlot.y1 ], [ box.x2, medianSlot.y1 ] ] + ]; + }; + + BoxPlot.prototype.renderOutliers = function renderOutliers (options) { + var this$1 = this; + + var value = this.value; + var outliers = value.outliers || []; + var outerFence = Math.abs(value.q3 - value.q1) * 3; + var elements = []; + var markers = options.markers || {}; + + for (var i = 0; i < outliers.length; i++) { + var outlierValue = outliers[i]; + if (outlierValue < value.q3 + outerFence && outlierValue > value.q1 - outerFence) { + markers = options.outliers; + } else { + markers = options.extremes; + } + var markersBorder = Object(_common__WEBPACK_IMPORTED_MODULE_6__["deepExtend"])({}, markers.border); + + if (!Object(_common__WEBPACK_IMPORTED_MODULE_6__["defined"])(markersBorder.color)) { + if (Object(_common__WEBPACK_IMPORTED_MODULE_6__["defined"])(this$1.color)) { + markersBorder.color = this$1.color; + } else { + markersBorder.color = + new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["Color"](markers.background).brightness(_constants__WEBPACK_IMPORTED_MODULE_4__["BORDER_BRIGHTNESS"]).toHex(); + } + } + + var shape = new _core__WEBPACK_IMPORTED_MODULE_3__["ShapeElement"]({ + type: markers.type, + width: markers.size, + height: markers.size, + rotation: markers.rotation, + background: markers.background, + border: markersBorder, + opacity: markers.opacity + }); + + shape.value = outlierValue; + + elements.push(shape); + } + + this.reflowOutliers(elements); + return elements; + }; + + BoxPlot.prototype.reflowOutliers = function reflowOutliers (outliers) { + var this$1 = this; + + var valueAxis = this.owner.seriesValueAxis(this.options); + var center = this.box.center(); + + for (var i = 0; i < outliers.length; i++) { + var outlierValue = outliers[i].value; + var markerBox = valueAxis.getSlot(outlierValue); + + if (this$1.options.vertical) { + markerBox.move(center.x); + } else { + markerBox.move(undefined, center.y); + } + + this$1.box = this$1.box.wrap(markerBox); + outliers[i].reflow(markerBox); + } + }; + + BoxPlot.prototype.mainVisual = function mainVisual (options) { + var group = Candlestick.prototype.mainVisual.call(this, options); + var outliers = this.renderOutliers(options); + + for (var i = 0; i < outliers.length; i++) { + var element = outliers[i].getElement(); + if (element) { + group.append(element); + } + } + + return group; + }; + + BoxPlot.prototype.createLines = function createLines (container, options) { + this.drawLines(container, options, this.whiskerPoints, options.whiskers); + this.drawLines(container, options, this.medianPoints, options.median); + this.drawLines(container, options, this.meanPoints, options.mean); + }; + + BoxPlot.prototype.getBorderColor = function getBorderColor () { + if ((this.options.border || {}).color) { + return this.options.border.color; + } + + if (this.color) { + return this.color; + } + + return Candlestick.prototype.getBorderColor.call(this); + }; + + return BoxPlot; +}(_candlestick_chart_candlestick__WEBPACK_IMPORTED_MODULE_1__["default"])); + +Object(_common__WEBPACK_IMPORTED_MODULE_6__["setDefaultOptions"])(BoxPlot, { + border: { + _brightness: 0.8 + }, + line: { + width: 2 + }, + median: { + color: "#f6f6f6" + }, + mean: { + width: 2, + dashType: "dash", + color: "#f6f6f6" + }, + overlay: { + gradient: "glass" + }, + tooltip: { + format: "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "
{6:d}
Lower:{0:C}
Q1:{1:C}
Median:{2:C}
Mean:{5:C}
Q3:{3:C}
Upper:{4:C}
" + }, + highlight: { + opacity: 1, + border: { + width: 1, + opacity: 1 + }, + line: { + width: 1, + opacity: 1 + } + }, + notes: { + visible: true, + label: {} + }, + outliers: { + visible: true, + size: _constants__WEBPACK_IMPORTED_MODULE_4__["LINE_MARKER_SIZE"], + type: _common_constants__WEBPACK_IMPORTED_MODULE_5__["CROSS"], + background: _common_constants__WEBPACK_IMPORTED_MODULE_5__["WHITE"], + border: { + width: 2, + opacity: 1 + }, + opacity: 0 + }, + extremes: { + visible: true, + size: _constants__WEBPACK_IMPORTED_MODULE_4__["LINE_MARKER_SIZE"], + type: _common_constants__WEBPACK_IMPORTED_MODULE_5__["CIRCLE"], + background: _common_constants__WEBPACK_IMPORTED_MODULE_5__["WHITE"], + border: { + width: 2, + opacity: 1 + }, + opacity: 0 + } +}); + +Object(_common__WEBPACK_IMPORTED_MODULE_6__["deepExtend"])(BoxPlot.prototype, _mixins_point_events_mixin__WEBPACK_IMPORTED_MODULE_2__["default"]); + + __webpack_exports__["default"] = (BoxPlot); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/box-plot-chart/vertical-box-plot.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _box_plot__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/box-plot-chart/box-plot.js"); + + +var VerticalBoxPlot = (function (BoxPlot) { + function VerticalBoxPlot () { + BoxPlot.apply(this, arguments); + } + + if ( BoxPlot ) VerticalBoxPlot.__proto__ = BoxPlot; + VerticalBoxPlot.prototype = Object.create( BoxPlot && BoxPlot.prototype ); + VerticalBoxPlot.prototype.constructor = VerticalBoxPlot; + + VerticalBoxPlot.prototype.reflowBoxSlot = function reflowBoxSlot (box) { + this.boxSlot.y1 = box.y1; + this.boxSlot.y2 = box.y2; + }; + + VerticalBoxPlot.prototype.reflowWhiskerSlot = function reflowWhiskerSlot (box) { + this.whiskerSlot.y1 = box.y1; + this.whiskerSlot.y2 = box.y2; + }; + + VerticalBoxPlot.prototype.calcMeanPoints = function calcMeanPoints (box, meanSlot) { + return [ + [ [ meanSlot.x1, box.y1 ], [ meanSlot.x1, box.y2 ] ] + ]; + }; + + VerticalBoxPlot.prototype.calcWhiskerPoints = function calcWhiskerPoints (boxSlot, whiskerSlot) { + var mid = whiskerSlot.center().y; + return [ [ + [ whiskerSlot.x1, mid - 5 ], [ whiskerSlot.x1, mid + 5 ], + [ whiskerSlot.x1, mid ], [ boxSlot.x1, mid ] + ], [ + [ whiskerSlot.x2, mid - 5 ], [ whiskerSlot.x2, mid + 5 ], + [ whiskerSlot.x2, mid ], [ boxSlot.x2, mid ] + ] ]; + }; + + VerticalBoxPlot.prototype.calcMedianPoints = function calcMedianPoints (box, medianSlot) { + return [ + [ [ medianSlot.x1, box.y1 ], [ medianSlot.x1, box.y2 ] ] + ]; + }; + + return VerticalBoxPlot; +}(_box_plot__WEBPACK_IMPORTED_MODULE_0__["default"])); + + __webpack_exports__["default"] = (VerticalBoxPlot); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/bubble-chart/bubble-chart.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _scatter_charts_scatter_chart__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/scatter-charts/scatter-chart.js"); + var _bubble__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/bubble-chart/bubble.js"); + var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/constants.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + + + + + +var BubbleChart = (function (ScatterChart) { + function BubbleChart () { + ScatterChart.apply(this, arguments); + } + + if ( ScatterChart ) BubbleChart.__proto__ = ScatterChart; + BubbleChart.prototype = Object.create( ScatterChart && ScatterChart.prototype ); + BubbleChart.prototype.constructor = BubbleChart; + + BubbleChart.prototype._initFields = function _initFields () { + this._maxSize = _common_constants__WEBPACK_IMPORTED_MODULE_3__["MIN_VALUE"]; + ScatterChart.prototype._initFields.call(this); + }; + + BubbleChart.prototype.addValue = function addValue (value, fields) { + if (value.size !== null && (value.size > 0 || (value.size < 0 && fields.series.negativeValues.visible))) { + this._maxSize = Math.max(this._maxSize, Math.abs(value.size)); + ScatterChart.prototype.addValue.call(this, value, fields); + } else { + this.points.push(null); + this.seriesPoints[fields.seriesIx].push(null); + } + }; + + BubbleChart.prototype.reflow = function reflow (box) { + this.updateBubblesSize(box); + ScatterChart.prototype.reflow.call(this, box); + }; + + BubbleChart.prototype.pointType = function pointType () { + return _bubble__WEBPACK_IMPORTED_MODULE_1__["default"]; + }; + + BubbleChart.prototype.createPoint = function createPoint (value, fields) { + var series = fields.series; + var pointsCount = series.data.length; + var delay = fields.pointIx * (_constants__WEBPACK_IMPORTED_MODULE_2__["INITIAL_ANIMATION_DURATION"] / pointsCount); + var animationOptions = { + delay: delay, + duration: _constants__WEBPACK_IMPORTED_MODULE_2__["INITIAL_ANIMATION_DURATION"] - delay, + type: _constants__WEBPACK_IMPORTED_MODULE_2__["BUBBLE"] + }; + + var color = fields.color || series.color; + if (value.size < 0 && series.negativeValues.visible) { + color = Object(_common__WEBPACK_IMPORTED_MODULE_4__["valueOrDefault"])( + series.negativeValues.color, color + ); + } + + var pointOptions = Object(_common__WEBPACK_IMPORTED_MODULE_4__["deepExtend"])({ + labels: { + animation: { + delay: delay, + duration: _constants__WEBPACK_IMPORTED_MODULE_2__["INITIAL_ANIMATION_DURATION"] - delay + } + } + }, this.pointOptions(series, fields.seriesIx), { + markers: { + type: _common_constants__WEBPACK_IMPORTED_MODULE_3__["CIRCLE"], + border: series.border, + opacity: series.opacity, + animation: animationOptions + } + }); + + pointOptions = this.evalPointOptions(pointOptions, value, fields); + if (Object(_common__WEBPACK_IMPORTED_MODULE_4__["isFunction"])(series.color)) { + color = pointOptions.color; + } + + pointOptions.markers.background = color; + + var point = new _bubble__WEBPACK_IMPORTED_MODULE_1__["default"](value, pointOptions); + point.color = color; + + this.append(point); + + return point; + }; + + BubbleChart.prototype.updateBubblesSize = function updateBubblesSize (box) { + var this$1 = this; + + var ref = this; + var series = ref.options.series; + var boxSize = Math.min(box.width(), box.height()); + + for (var seriesIx = 0; seriesIx < series.length; seriesIx++) { + var currentSeries = series[seriesIx]; + var seriesPoints = this$1.seriesPoints[seriesIx]; + var minSize = currentSeries.minSize || Math.max(boxSize * 0.02, 10); + var maxSize = currentSeries.maxSize || boxSize * 0.2; + var minR = minSize / 2; + var maxR = maxSize / 2; + var minArea = Math.PI * minR * minR; + var maxArea = Math.PI * maxR * maxR; + var areaRange = maxArea - minArea; + var areaRatio = areaRange / this$1._maxSize; + + for (var pointIx = 0; pointIx < seriesPoints.length; pointIx++) { + var point = seriesPoints[pointIx]; + if (point) { + var area = Math.abs(point.value.size) * areaRatio; + var radius = Math.sqrt((minArea + area) / Math.PI); + var baseZIndex = Object(_common__WEBPACK_IMPORTED_MODULE_4__["valueOrDefault"])(point.options.zIndex, 0); + var zIndex = baseZIndex + (1 - radius / maxR); + + Object(_common__WEBPACK_IMPORTED_MODULE_4__["deepExtend"])(point.options, { + zIndex: zIndex, + markers: { + size: radius * 2, + zIndex: zIndex + }, + labels: { + zIndex: zIndex + 1 + } + }); + } + } + } + }; + + BubbleChart.prototype.formatPointValue = function formatPointValue (point, format) { + var value = point.value; + return this.chartService.format.auto(format, value.x, value.y, value.size, point.category); + }; + + BubbleChart.prototype.createAnimation = function createAnimation () {}; + BubbleChart.prototype.createVisual = function createVisual () {}; + + return BubbleChart; +}(_scatter_charts_scatter_chart__WEBPACK_IMPORTED_MODULE_0__["default"])); + +Object(_common__WEBPACK_IMPORTED_MODULE_4__["setDefaultOptions"])(BubbleChart, { + tooltip: { + format: "{3}" + }, + labels: { + format: "{3}" + } +}); + + __webpack_exports__["default"] = (BubbleChart); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/bubble-chart/bubble.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/main.js"); + var _line_chart_line_point__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/line-chart/line-point.js"); + var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/constants.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + + + + + +var Bubble = (function (LinePoint) { + function Bubble(value, options) { + LinePoint.call(this, value, options); + + this.category = value.category; + } + + if ( LinePoint ) Bubble.__proto__ = LinePoint; + Bubble.prototype = Object.create( LinePoint && LinePoint.prototype ); + Bubble.prototype.constructor = Bubble; + + Bubble.prototype.createHighlight = function createHighlight () { + var highlight = this.options.highlight; + var border = highlight.border; + var markers = this.options.markers; + var center = this.box.center(); + var radius = (markers.size + markers.border.width + border.width) / 2; + var highlightGroup = new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Group(); + var shadow = new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Circle(new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].Circle([ center.x, center.y + radius / 5 + border.width / 2 ], radius + border.width / 2), { + stroke: { + color: 'none' + }, + fill: this.createGradient({ + gradient: 'bubbleShadow', + color: markers.background, + stops: [ { + offset: 0, + color: markers.background, + opacity: 0.3 + }, { + offset: 1, + color: markers.background, + opacity: 0 + } ] + }) + }); + var overlay = new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Circle(new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].Circle([ center.x, center.y ], radius), { + stroke: { + color: border.color || + new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["Color"](markers.background).brightness(_constants__WEBPACK_IMPORTED_MODULE_2__["BORDER_BRIGHTNESS"]).toHex(), + width: border.width, + opacity: border.opacity + }, + fill: { + color: markers.background, + opacity: highlight.opacity + } + }); + + highlightGroup.append(shadow, overlay); + + return highlightGroup; + }; + + return Bubble; +}(_line_chart_line_point__WEBPACK_IMPORTED_MODULE_1__["default"])); + +Bubble.prototype.defaults = Object(_common__WEBPACK_IMPORTED_MODULE_4__["deepExtend"])({}, Bubble.prototype.defaults, { + labels: { + position: _common_constants__WEBPACK_IMPORTED_MODULE_3__["CENTER"] + }, + highlight: { + opacity: 1, + border: { + color: "#fff", + width: 2, + opacity: 1 + } + } +}); + +Bubble.prototype.defaults.highlight.zIndex = undefined; + + __webpack_exports__["default"] = (Bubble); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/bullet-chart/bullet-chart.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _categorical_chart__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/categorical-chart.js"); + var _bar_chart_bar_chart__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/bar-chart/bar-chart.js"); + var _bullet__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/bullet-chart/bullet.js"); + var _layout_cluster_layout__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/layout/cluster-layout.js"); + var _constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/constants.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + + + + + + + +var BulletChart = (function (CategoricalChart) { + function BulletChart(plotArea, options) { + + wrapData(options); + + CategoricalChart.call(this, plotArea, options); + } + + if ( CategoricalChart ) BulletChart.__proto__ = CategoricalChart; + BulletChart.prototype = Object.create( CategoricalChart && CategoricalChart.prototype ); + BulletChart.prototype.constructor = BulletChart; + + BulletChart.prototype.reflowCategories = function reflowCategories (categorySlots) { + var children = this.children; + var childrenLength = children.length; + + for (var i = 0; i < childrenLength; i++) { + children[i].reflow(categorySlots[i]); + } + }; + + BulletChart.prototype.plotRange = function plotRange (point) { + var series = point.series; + var valueAxis = this.seriesValueAxis(series); + var axisCrossingValue = this.categoryAxisCrossingValue(valueAxis); + + return [ axisCrossingValue, point.value.current || axisCrossingValue ]; + }; + + BulletChart.prototype.createPoint = function createPoint (data, fields) { + var categoryIx = fields.categoryIx; + var category = fields.category; + var series = fields.series; + var seriesIx = fields.seriesIx; + var ref = this; + var options = ref.options; + var children = ref.children; + var value = data.valueFields; + + var bulletOptions = Object(_common__WEBPACK_IMPORTED_MODULE_6__["deepExtend"])({ + vertical: !options.invertAxes, + overlay: series.overlay, + categoryIx: categoryIx, + invertAxes: options.invertAxes + }, series); + + var color = data.fields.color || series.color; + bulletOptions = this.evalPointOptions( + bulletOptions, value, category, categoryIx, series, seriesIx + ); + + if (Object(_common__WEBPACK_IMPORTED_MODULE_6__["isFunction"])(series.color)) { + color = bulletOptions.color; + } + + var bullet = new _bullet__WEBPACK_IMPORTED_MODULE_2__["default"](value, bulletOptions); + bullet.color = color; + + var cluster = children[categoryIx]; + if (!cluster) { + cluster = new _layout_cluster_layout__WEBPACK_IMPORTED_MODULE_3__["default"]({ + vertical: options.invertAxes, + gap: options.gap, + spacing: options.spacing, + rtl: !options.invertAxes && (this.chartService || {}).rtl + }); + this.append(cluster); + } + + cluster.append(bullet); + + return bullet; + }; + + BulletChart.prototype.updateRange = function updateRange (value, fields) { + var current = value.current; + var target = value.target; + var axisName = fields.series.axis; + var axisRange = this.valueAxisRanges[axisName]; + + if (Object(_common__WEBPACK_IMPORTED_MODULE_6__["defined"])(current) && !isNaN(current) && Object(_common__WEBPACK_IMPORTED_MODULE_6__["defined"])(target && !isNaN(target))) { + axisRange = this.valueAxisRanges[axisName] = + axisRange || { min: _common_constants__WEBPACK_IMPORTED_MODULE_5__["MAX_VALUE"], max: _common_constants__WEBPACK_IMPORTED_MODULE_5__["MIN_VALUE"] }; + + axisRange.min = Math.min(axisRange.min, current, target); + axisRange.max = Math.max(axisRange.max, current, target); + } + }; + + BulletChart.prototype.formatPointValue = function formatPointValue (point, format) { + return this.chartService.format.auto(format, point.value.current, point.value.target); + }; + + BulletChart.prototype.pointValue = function pointValue (data) { + return data.valueFields.current; + }; + + BulletChart.prototype.aboveAxis = function aboveAxis (point) { + var value = point.value.current; + + return value > 0; + }; + + BulletChart.prototype.createAnimation = function createAnimation () { + var this$1 = this; + + var points = this.points; + + this._setAnimationOptions(); + + for (var idx = 0; idx < points.length; idx++) { + var point = points[idx]; + point.options.animation = this$1.options.animation; + point.createAnimation(); + } + }; + + return BulletChart; +}(_categorical_chart__WEBPACK_IMPORTED_MODULE_0__["default"])); + +BulletChart.prototype._setAnimationOptions = _bar_chart_bar_chart__WEBPACK_IMPORTED_MODULE_1__["default"].prototype._setAnimationOptions; + +Object(_common__WEBPACK_IMPORTED_MODULE_6__["setDefaultOptions"])(BulletChart, { + animation: { + type: _constants__WEBPACK_IMPORTED_MODULE_4__["BAR"] + } +}); + +function wrapData(options) { + var series = options.series; + + for (var i = 0; i < series.length; i++) { + var seriesItem = series[i]; + var data = seriesItem.data; + if (data && !Object(_common__WEBPACK_IMPORTED_MODULE_6__["isArray"])(data[0]) && !Object(_common__WEBPACK_IMPORTED_MODULE_6__["isObject"])(data[0])) { + seriesItem.data = [ data ]; + } + } +} + + __webpack_exports__["default"] = (BulletChart); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/bullet-chart/bullet.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/main.js"); + var _target__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/bullet-chart/target.js"); + var _core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core.js"); + var _mixins_point_events_mixin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/mixins/point-events-mixin.js"); + var _mixins_note_mixin__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/mixins/note-mixin.js"); + var _bar_chart_bar__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/bar-chart/bar.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + + + + + + + + + + +var Bullet = (function (ChartElement) { + function Bullet(value, options) { + ChartElement.call(this, options); + + this.aboveAxis = this.options.aboveAxis; + this.color = options.color || _common_constants__WEBPACK_IMPORTED_MODULE_6__["WHITE"]; + this.value = value; + } + + if ( ChartElement ) Bullet.__proto__ = ChartElement; + Bullet.prototype = Object.create( ChartElement && ChartElement.prototype ); + Bullet.prototype.constructor = Bullet; + + Bullet.prototype.render = function render () { + var options = this.options; + + if (!this._rendered) { + this._rendered = true; + + if (Object(_common__WEBPACK_IMPORTED_MODULE_7__["defined"])(this.value.target)) { + this.target = new _target__WEBPACK_IMPORTED_MODULE_1__["default"]({ + type: options.target.shape, + background: options.target.color || this.color, + opacity: options.opacity, + zIndex: options.zIndex, + border: options.target.border, + vAlign: _common_constants__WEBPACK_IMPORTED_MODULE_6__["TOP"], + align: _common_constants__WEBPACK_IMPORTED_MODULE_6__["RIGHT"] + }); + + this.target.value = this.value; + this.target.dataItem = this.dataItem; + this.target.series = this.series; + + this.append(this.target); + } + + this.createNote(); + } + }; + + Bullet.prototype.reflow = function reflow (box) { + this.render(); + + var ref = this; + var options = ref.options; + var target = ref.target; + var chart = ref.owner; + var invertAxes = options.invertAxes; + var valueAxis = chart.seriesValueAxis(this.options); + var categorySlot = chart.categorySlot(chart.categoryAxis, options.categoryIx, valueAxis); + var targetValueSlot = valueAxis.getSlot(this.value.target); + var targetSlotX = invertAxes ? targetValueSlot : categorySlot; + var targetSlotY = invertAxes ? categorySlot : targetValueSlot; + + if (target) { + var targetSlot = new _core__WEBPACK_IMPORTED_MODULE_2__["Box"]( + targetSlotX.x1, targetSlotY.y1, + targetSlotX.x2, targetSlotY.y2 + ); + target.options.height = invertAxes ? targetSlot.height() : options.target.line.width; + target.options.width = invertAxes ? options.target.line.width : targetSlot.width(); + target.reflow(targetSlot); + } + + if (this.note) { + this.note.reflow(box); + } + + this.box = box; + }; + + Bullet.prototype.createVisual = function createVisual () { + ChartElement.prototype.createVisual.call(this); + + var options = this.options; + var body = _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Path.fromRect(this.box.toRect(), { + fill: { + color: this.color, + opacity: options.opacity + }, + stroke: null + }); + + if (options.border.width > 0) { + body.options.set("stroke", { + color: options.border.color || this.color, + width: options.border.width, + dashType: options.border.dashType, + opacity: Object(_common__WEBPACK_IMPORTED_MODULE_7__["valueOrDefault"])(options.border.opacity, options.opacity) + }); + } + + this.bodyVisual = body; + + Object(_common__WEBPACK_IMPORTED_MODULE_7__["alignPathToPixel"])(body); + this.visual.append(body); + }; + + Bullet.prototype.createAnimation = function createAnimation () { + if (this.bodyVisual) { + this.animation = _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Animation.create( + this.bodyVisual, this.options.animation + ); + } + }; + + Bullet.prototype.createHighlight = function createHighlight (style) { + return _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Path.fromRect(this.box.toRect(), style); + }; + + Bullet.prototype.highlightVisual = function highlightVisual () { + return this.bodyVisual; + }; + + Bullet.prototype.highlightVisualArgs = function highlightVisualArgs () { + return { + rect: this.box.toRect(), + visual: this.bodyVisual, + options: this.options + }; + }; + + Bullet.prototype.formatValue = function formatValue (format) { + return this.owner.formatPointValue(this, format); + }; + + return Bullet; +}(_core__WEBPACK_IMPORTED_MODULE_2__["ChartElement"])); + +Bullet.prototype.tooltipAnchor = _bar_chart_bar__WEBPACK_IMPORTED_MODULE_5__["default"].prototype.tooltipAnchor; + +Object(_common__WEBPACK_IMPORTED_MODULE_7__["setDefaultOptions"])(Bullet, { + border: { + width: 1 + }, + vertical: false, + opacity: 1, + target: { + shape: "", + border: { + width: 0, + color: "green" + }, + line: { + width: 2 + } + }, + tooltip: { + format: "Current: {0}
Target: {1}" + } +}); + +Object(_common__WEBPACK_IMPORTED_MODULE_7__["deepExtend"])(Bullet.prototype, _mixins_point_events_mixin__WEBPACK_IMPORTED_MODULE_3__["default"]); +Object(_common__WEBPACK_IMPORTED_MODULE_7__["deepExtend"])(Bullet.prototype, _mixins_note_mixin__WEBPACK_IMPORTED_MODULE_4__["default"]); + + __webpack_exports__["default"] = (Bullet); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/bullet-chart/target.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core.js"); + var _common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + var _mixins_point_events_mixin__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/mixins/point-events-mixin.js"); + + + + +var Target = (function (ShapeElement) { + function Target () { + ShapeElement.apply(this, arguments); + }if ( ShapeElement ) Target.__proto__ = ShapeElement; + Target.prototype = Object.create( ShapeElement && ShapeElement.prototype ); + Target.prototype.constructor = Target; + + + + return Target; +}(_core__WEBPACK_IMPORTED_MODULE_0__["ShapeElement"])); + +Object(_common__WEBPACK_IMPORTED_MODULE_1__["deepExtend"])(Target.prototype, _mixins_point_events_mixin__WEBPACK_IMPORTED_MODULE_2__["default"]); + + __webpack_exports__["default"] = (Target); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/candlestick-chart/candlestick-chart.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _categorical_chart__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/categorical-chart.js"); + var _layout_cluster_layout__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/layout/cluster-layout.js"); + var _candlestick__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/candlestick-chart/candlestick.js"); + var _mixins_clip_animation_mixin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/mixins/clip-animation-mixin.js"); + var _constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/constants.js"); + var _utils_are_numbers__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/utils/are-numbers.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + + + + + + + + +var CandlestickChart = (function (CategoricalChart) { + function CandlestickChart () { + CategoricalChart.apply(this, arguments); + } + + if ( CategoricalChart ) CandlestickChart.__proto__ = CategoricalChart; + CandlestickChart.prototype = Object.create( CategoricalChart && CategoricalChart.prototype ); + CandlestickChart.prototype.constructor = CandlestickChart; + + CandlestickChart.prototype.reflowCategories = function reflowCategories (categorySlots) { + var children = this.children; + var childrenLength = children.length; + + for (var i = 0; i < childrenLength; i++) { + children[i].reflow(categorySlots[i]); + } + }; + + CandlestickChart.prototype.addValue = function addValue (data, fields) { + var categoryIx = fields.categoryIx; + var category = fields.category; + var series = fields.series; + var seriesIx = fields.seriesIx; + var ref = this; + var children = ref.children; + var options = ref.options; + var value = data.valueFields; + var valueParts = this.splitValue(value); + var hasValue = Object(_utils_are_numbers__WEBPACK_IMPORTED_MODULE_5__["default"])(valueParts); + var dataItem = series.data[categoryIx]; + var categoryPoints = this.categoryPoints[categoryIx]; + var point; + + if (!categoryPoints) { + this.categoryPoints[categoryIx] = categoryPoints = []; + } + + if (hasValue) { + point = this.createPoint(data, fields); + } + + var cluster = children[categoryIx]; + if (!cluster) { + cluster = new _layout_cluster_layout__WEBPACK_IMPORTED_MODULE_1__["default"]({ + vertical: options.invertAxes, + gap: options.gap, + spacing: options.spacing, + rtl: !options.invertAxes && (this.chartService || {}).rtl + }); + this.append(cluster); + } + + if (point) { + this.updateRange(value, fields); + + cluster.append(point); + + point.categoryIx = categoryIx; + point.category = category; + point.series = series; + point.seriesIx = seriesIx; + point.owner = this; + point.dataItem = dataItem; + point.noteText = data.fields.noteText; + } + + this.points.push(point); + categoryPoints.push(point); + }; + + CandlestickChart.prototype.pointType = function pointType () { + return _candlestick__WEBPACK_IMPORTED_MODULE_2__["default"]; + }; + + CandlestickChart.prototype.createPoint = function createPoint (data, fields) { + var categoryIx = fields.categoryIx; + var category = fields.category; + var series = fields.series; + var seriesIx = fields.seriesIx; + var pointType = this.pointType(); + var value = data.valueFields; + var pointOptions = Object(_common__WEBPACK_IMPORTED_MODULE_7__["deepExtend"])({}, series); + var color = data.fields.color || series.color; + + pointOptions = this.evalPointOptions( + pointOptions, value, category, categoryIx, series, seriesIx + ); + + if (series.type === _constants__WEBPACK_IMPORTED_MODULE_4__["CANDLESTICK"]) { + if (value.open > value.close) { + color = data.fields.downColor || series.downColor || series.color; + } + } + + if (Object(_common__WEBPACK_IMPORTED_MODULE_7__["isFunction"])(series.color)) { + color = pointOptions.color; + } + + pointOptions.vertical = !this.options.invertAxes; + + var point = new pointType(value, pointOptions); + point.color = color; + + return point; + }; + + CandlestickChart.prototype.splitValue = function splitValue (value) { + return [ value.low, value.open, value.close, value.high ]; + }; + + CandlestickChart.prototype.updateRange = function updateRange (value, fields) { + var axisName = fields.series.axis; + var parts = this.splitValue(value); + var axisRange = this.valueAxisRanges[axisName]; + + axisRange = this.valueAxisRanges[axisName] = + axisRange || { min: _common_constants__WEBPACK_IMPORTED_MODULE_6__["MAX_VALUE"], max: _common_constants__WEBPACK_IMPORTED_MODULE_6__["MIN_VALUE"] }; + + axisRange = this.valueAxisRanges[axisName] = { + min: Math.min.apply(Math, parts.concat([ axisRange.min ])), + max: Math.max.apply(Math, parts.concat([ axisRange.max ])) + }; + }; + + CandlestickChart.prototype.formatPointValue = function formatPointValue (point, format) { + var value = point.value; + + return this.chartService.format.auto(format, + value.open, value.high, + value.low, value.close, point.category + ); + }; + + CandlestickChart.prototype.animationPoints = function animationPoints () { + return this.points; + }; + + return CandlestickChart; +}(_categorical_chart__WEBPACK_IMPORTED_MODULE_0__["default"])); + +Object(_common__WEBPACK_IMPORTED_MODULE_7__["deepExtend"])(CandlestickChart.prototype, _mixins_clip_animation_mixin__WEBPACK_IMPORTED_MODULE_3__["default"]); + + __webpack_exports__["default"] = (CandlestickChart); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/candlestick-chart/candlestick.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/main.js"); + var _core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core.js"); + var _mixins_point_events_mixin__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/mixins/point-events-mixin.js"); + var _mixins_note_mixin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/mixins/note-mixin.js"); + var _constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/constants.js"); + var _utils_has_gradient_overlay__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/utils/has-gradient-overlay.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + + + + + + + + + +var Candlestick = (function (ChartElement) { + function Candlestick(value, options) { + ChartElement.call(this, options); + this.value = value; + } + + if ( ChartElement ) Candlestick.__proto__ = ChartElement; + Candlestick.prototype = Object.create( ChartElement && ChartElement.prototype ); + Candlestick.prototype.constructor = Candlestick; + + Candlestick.prototype.reflow = function reflow (box) { + var ref = this; + var options = ref.options; + var value = ref.value; + var chart = ref.owner; + var valueAxis = chart.seriesValueAxis(options); + var ocSlot = valueAxis.getSlot(value.open, value.close); + var lhSlot = valueAxis.getSlot(value.low, value.high); + + ocSlot.x1 = lhSlot.x1 = box.x1; + ocSlot.x2 = lhSlot.x2 = box.x2; + + this.realBody = ocSlot; + + var mid = lhSlot.center().x; + var points = []; + + points.push([ [ mid, lhSlot.y1 ], [ mid, ocSlot.y1 ] ]); + points.push([ [ mid, ocSlot.y2 ], [ mid, lhSlot.y2 ] ]); + + this.lines = points; + + this.box = lhSlot.clone().wrap(ocSlot); + + if (!this._rendered) { + this._rendered = true; + this.createNote(); + } + + this.reflowNote(); + }; + + Candlestick.prototype.reflowNote = function reflowNote () { + if (this.note) { + this.note.reflow(this.box); + } + }; + + Candlestick.prototype.createVisual = function createVisual () { + ChartElement.prototype.createVisual.call(this); + this._mainVisual = this.mainVisual(this.options); + this.visual.append( + this._mainVisual + ); + + this.createOverlay(); + }; + + Candlestick.prototype.mainVisual = function mainVisual (options) { + var group = new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Group(); + + this.createBody(group, options); + this.createLines(group, options); + + return group; + }; + + Candlestick.prototype.createBody = function createBody (container, options) { + var body = _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Path.fromRect(this.realBody.toRect(), { + fill: { + color: this.color, + opacity: options.opacity + }, + stroke: null + }); + + if (options.border.width > 0) { + body.options.set("stroke", { + color: this.getBorderColor(), + width: options.border.width, + dashType: options.border.dashType, + opacity: Object(_common__WEBPACK_IMPORTED_MODULE_7__["valueOrDefault"])(options.border.opacity, options.opacity) + }); + } + + Object(_common__WEBPACK_IMPORTED_MODULE_7__["alignPathToPixel"])(body); + container.append(body); + + if (Object(_utils_has_gradient_overlay__WEBPACK_IMPORTED_MODULE_5__["default"])(options)) { + container.append(this.createGradientOverlay(body, { baseColor: this.color }, Object(_common__WEBPACK_IMPORTED_MODULE_7__["deepExtend"])({ + end: !options.vertical ? [ 0, 1 ] : undefined + }, options.overlay))); + } + }; + + Candlestick.prototype.createLines = function createLines (container, options) { + this.drawLines(container, options, this.lines, options.line); + }; + + Candlestick.prototype.drawLines = function drawLines (container, options, lines, lineOptions) { + if (!lines) { + return; + } + + var lineStyle = { + stroke: { + color: lineOptions.color || this.color, + opacity: Object(_common__WEBPACK_IMPORTED_MODULE_7__["valueOrDefault"])(lineOptions.opacity, options.opacity), + width: lineOptions.width, + dashType: lineOptions.dashType, + lineCap: "butt" + } + }; + + for (var i = 0; i < lines.length; i++) { + var line = _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Path.fromPoints(lines[i], lineStyle); + Object(_common__WEBPACK_IMPORTED_MODULE_7__["alignPathToPixel"])(line); + container.append(line); + } + }; + + Candlestick.prototype.getBorderColor = function getBorderColor () { + var border = this.options.border; + var borderColor = border.color; + + if (!Object(_common__WEBPACK_IMPORTED_MODULE_7__["defined"])(borderColor)) { + borderColor = new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["Color"](this.color).brightness(border._brightness).toHex(); + } + + return borderColor; + }; + + Candlestick.prototype.createOverlay = function createOverlay () { + var overlay = _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Path.fromRect(this.box.toRect(), { + fill: { + color: _common_constants__WEBPACK_IMPORTED_MODULE_6__["WHITE"], + opacity: 0 + }, + stroke: null + }); + + this.visual.append(overlay); + }; + + Candlestick.prototype.createHighlight = function createHighlight () { + var highlight = this.options.highlight; + var normalColor = this.color; + + this.color = highlight.color || this.color; + var overlay = this.mainVisual( + Object(_common__WEBPACK_IMPORTED_MODULE_7__["deepExtend"])({}, this.options, { + line: { + color: this.getBorderColor() + } + }, highlight) + ); + this.color = normalColor; + + return overlay; + }; + + Candlestick.prototype.highlightVisual = function highlightVisual () { + return this._mainVisual; + }; + + Candlestick.prototype.highlightVisualArgs = function highlightVisualArgs () { + return { + options: this.options, + rect: this.box.toRect(), + visual: this._mainVisual + }; + }; + + Candlestick.prototype.tooltipAnchor = function tooltipAnchor () { + var box = this.box; + var clipBox = this.owner.pane.clipBox() || box; + + return { + point: new _core__WEBPACK_IMPORTED_MODULE_1__["Point"](box.x2 + _constants__WEBPACK_IMPORTED_MODULE_4__["TOOLTIP_OFFSET"], Math.max(box.y1, clipBox.y1) + _constants__WEBPACK_IMPORTED_MODULE_4__["TOOLTIP_OFFSET"]), + align: { + horizontal: _common_constants__WEBPACK_IMPORTED_MODULE_6__["LEFT"], + vertical: _common_constants__WEBPACK_IMPORTED_MODULE_6__["TOP"] + } + }; + }; + + Candlestick.prototype.formatValue = function formatValue (format) { + return this.owner.formatPointValue(this, format); + }; + + Candlestick.prototype.overlapsBox = function overlapsBox (box) { + return this.box.overlaps(box); + }; + + return Candlestick; +}(_core__WEBPACK_IMPORTED_MODULE_1__["ChartElement"])); + +Object(_common__WEBPACK_IMPORTED_MODULE_7__["setDefaultOptions"])(Candlestick, { + vertical: true, + border: { + _brightness: 0.8 + }, + line: { + width: 2 + }, + overlay: { + gradient: "glass" + }, + tooltip: { + format: "" + + "" + + "" + + "" + + "" + + "" + + "
{4:d}
Open:{0:C}
High:{1:C}
Low:{2:C}
Close:{3:C}
" + }, + highlight: { + opacity: 1, + border: { + width: 1, + opacity: 1 + }, + line: { + width: 1, + opacity: 1 + } + }, + notes: { + visible: true, + label: {} + } +}); + +Object(_common__WEBPACK_IMPORTED_MODULE_7__["deepExtend"])(Candlestick.prototype, _mixins_point_events_mixin__WEBPACK_IMPORTED_MODULE_2__["default"]); +Object(_common__WEBPACK_IMPORTED_MODULE_7__["deepExtend"])(Candlestick.prototype, _mixins_note_mixin__WEBPACK_IMPORTED_MODULE_3__["default"]); + + __webpack_exports__["default"] = (Candlestick); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/categorical-chart.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _error_bars_error_range_calculator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/error-bars/error-range-calculator.js"); + var _error_bars_categorical_error_bar__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/error-bars/categorical-error-bar.js"); + var _series_binder__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/series-binder.js"); + var _constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/constants.js"); + var _utils_eval_options__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/utils/eval-options.js"); + var _utils_categories_count__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/utils/categories-count.js"); + var _core__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + + + + + + + + + + + +var CategoricalChart = (function (ChartElement) { + function CategoricalChart(plotArea, options) { + ChartElement.call(this, options); + + this.plotArea = plotArea; + this.chartService = plotArea.chartService; + this.categoryAxis = plotArea.seriesCategoryAxis(options.series[0]); + + // Value axis ranges grouped by axis name, e.g.: + // primary: { min: 0, max: 1 } + this.valueAxisRanges = {}; + + this.points = []; + this.categoryPoints = []; + this.seriesPoints = []; + this.seriesOptions = []; + this._evalSeries = []; + + this.render(); + } + + if ( ChartElement ) CategoricalChart.__proto__ = ChartElement; + CategoricalChart.prototype = Object.create( ChartElement && ChartElement.prototype ); + CategoricalChart.prototype.constructor = CategoricalChart; + + CategoricalChart.prototype.render = function render () { + this.traverseDataPoints(this.addValue.bind(this)); + }; + + CategoricalChart.prototype.pointOptions = function pointOptions (series, seriesIx) { + var options = this.seriesOptions[seriesIx]; + if (!options) { + var defaults = this.pointType().prototype.defaults; + this.seriesOptions[seriesIx] = options = Object(_common__WEBPACK_IMPORTED_MODULE_8__["deepExtend"])({ }, defaults, { + vertical: !this.options.invertAxes + }, series); + } + + return options; + }; + + CategoricalChart.prototype.plotValue = function plotValue (point) { + if (!point) { + return 0; + } + + if (this.options.isStacked100 && Object(_common__WEBPACK_IMPORTED_MODULE_8__["isNumber"])(point.value)) { + var categoryIx = point.categoryIx; + var categoryPoints = this.categoryPoints[categoryIx]; + var otherValues = []; + var categorySum = 0; + + for (var i = 0; i < categoryPoints.length; i++) { + var other = categoryPoints[i]; + if (other) { + var stack = point.series.stack; + var otherStack = other.series.stack; + + if ((stack && otherStack) && stack.group !== otherStack.group) { + continue; + } + + if (Object(_common__WEBPACK_IMPORTED_MODULE_8__["isNumber"])(other.value)) { + categorySum += Math.abs(other.value); + otherValues.push(Math.abs(other.value)); + } + } + } + + if (categorySum > 0) { + return point.value / categorySum; + } + } + + return point.value; + }; + + CategoricalChart.prototype.plotRange = function plotRange (point, startValue) { + var this$1 = this; + if ( startValue === void 0 ) startValue = 0; + + var categoryPoints = this.categoryPoints[point.categoryIx]; + + if (this.options.isStacked) { + var plotValue = this.plotValue(point); + var positive = plotValue >= 0; + var prevValue = startValue; + var isStackedBar = false; + + for (var i = 0; i < categoryPoints.length; i++) { + var other = categoryPoints[i]; + + if (point === other) { + break; + } + + var stack = point.series.stack; + var otherStack = other.series.stack; + if (stack && otherStack) { + if (typeof stack === _common_constants__WEBPACK_IMPORTED_MODULE_7__["STRING"] && stack !== otherStack) { + continue; + } + + if (stack.group && stack.group !== otherStack.group) { + continue; + } + } + + var otherValue = this$1.plotValue(other); + if ((otherValue >= 0 && positive) || + (otherValue < 0 && !positive)) { + prevValue += otherValue; + plotValue += otherValue; + isStackedBar = true; + + if (this$1.options.isStacked100) { + plotValue = Math.min(plotValue, 1); + } + } + } + + if (isStackedBar) { + prevValue -= startValue; + } + + return [ prevValue, plotValue ]; + } + + var series = point.series; + var valueAxis = this.seriesValueAxis(series); + var axisCrossingValue = this.categoryAxisCrossingValue(valueAxis); + + return [ axisCrossingValue, Object(_common__WEBPACK_IMPORTED_MODULE_8__["convertableToNumber"])(point.value) ? point.value : axisCrossingValue ]; + }; + + CategoricalChart.prototype.stackLimits = function stackLimits (axisName, stackName) { + var this$1 = this; + + var min = _common_constants__WEBPACK_IMPORTED_MODULE_7__["MAX_VALUE"]; + var max = _common_constants__WEBPACK_IMPORTED_MODULE_7__["MIN_VALUE"]; + + for (var i = 0; i < this.categoryPoints.length; i++) { + var categoryPoints = this$1.categoryPoints[i]; + if (!categoryPoints) { + continue; + } + + for (var pIx = 0; pIx < categoryPoints.length; pIx++) { + var point = categoryPoints[pIx]; + if (point) { + if (point.series.stack === stackName || point.series.axis === axisName) { + var to = this$1.plotRange(point, 0)[1]; + if (Object(_common__WEBPACK_IMPORTED_MODULE_8__["defined"])(to) && isFinite(to)) { + max = Math.max(max, to); + min = Math.min(min, to); + } + } + } + } + } + + return { min: min, max: max }; + }; + + CategoricalChart.prototype.updateStackRange = function updateStackRange () { + var this$1 = this; + + var ref = this.options; + var isStacked = ref.isStacked; + var chartSeries = ref.series; + var limitsCache = {}; + + if (isStacked) { + for (var i = 0; i < chartSeries.length; i++) { + var series = chartSeries[i]; + var axisName = series.axis; + var key = axisName + series.stack; + + var limits = limitsCache[key]; + if (!limits) { + limits = this$1.stackLimits(axisName, series.stack); + + var errorTotals = this$1.errorTotals; + if (errorTotals) { + if (errorTotals.negative.length) { + limits.min = Math.min(limits.min, Object(_common__WEBPACK_IMPORTED_MODULE_8__["sparseArrayLimits"])(errorTotals.negative).min); + } + if (errorTotals.positive.length) { + limits.max = Math.max(limits.max, Object(_common__WEBPACK_IMPORTED_MODULE_8__["sparseArrayLimits"])(errorTotals.positive).max); + } + } + + if (limits.min !== _common_constants__WEBPACK_IMPORTED_MODULE_7__["MAX_VALUE"] || limits.max !== _common_constants__WEBPACK_IMPORTED_MODULE_7__["MIN_VALUE"]) { + limitsCache[key] = limits; + } else { + limits = null; + } + } + + if (limits) { + this$1.valueAxisRanges[axisName] = limits; + } + } + } + }; + + CategoricalChart.prototype.addErrorBar = function addErrorBar (point, data, categoryIx) { + var value = point.value; + var series = point.series; + var seriesIx = point.seriesIx; + var errorBars = point.options.errorBars; + var lowValue = data.fields[_constants__WEBPACK_IMPORTED_MODULE_3__["ERROR_LOW_FIELD"]]; + var highValue = data.fields[_constants__WEBPACK_IMPORTED_MODULE_3__["ERROR_HIGH_FIELD"]]; + var errorRange; + + if (Object(_common__WEBPACK_IMPORTED_MODULE_8__["isNumber"])(lowValue) && Object(_common__WEBPACK_IMPORTED_MODULE_8__["isNumber"])(highValue)) { + errorRange = { low: lowValue, high: highValue }; + } else if (errorBars && Object(_common__WEBPACK_IMPORTED_MODULE_8__["defined"])(errorBars.value)) { + this.seriesErrorRanges = this.seriesErrorRanges || []; + this.seriesErrorRanges[seriesIx] = this.seriesErrorRanges[seriesIx] || + new _error_bars_error_range_calculator__WEBPACK_IMPORTED_MODULE_0__["default"](errorBars.value, series, _common_constants__WEBPACK_IMPORTED_MODULE_7__["VALUE"]); + + errorRange = this.seriesErrorRanges[seriesIx].getErrorRange(value, errorBars.value); + } + + if (errorRange) { + point.low = errorRange.low; + point.high = errorRange.high; + this.addPointErrorBar(point, categoryIx); + } + }; + + CategoricalChart.prototype.addPointErrorBar = function addPointErrorBar (point, categoryIx) { + var isVertical = !this.options.invertAxes; + var options = point.options.errorBars; + var series = point.series; + var low = point.low; + var high = point.high; + + if (this.options.isStacked) { + var stackedErrorRange = this.stackedErrorRange(point, categoryIx); + low = stackedErrorRange.low; + high = stackedErrorRange.high; + } else { + var fields = { categoryIx: categoryIx, series: series }; + this.updateRange({ value: low }, fields); + this.updateRange({ value: high }, fields); + } + + var errorBar = new _error_bars_categorical_error_bar__WEBPACK_IMPORTED_MODULE_1__["default"](low, high, isVertical, this, series, options); + point.errorBars = [ errorBar ]; + point.append(errorBar); + }; + + CategoricalChart.prototype.stackedErrorRange = function stackedErrorRange (point, categoryIx) { + var plotValue = this.plotRange(point, 0)[1] - point.value; + var low = point.low + plotValue; + var high = point.high + plotValue; + + this.errorTotals = this.errorTotals || { positive: [], negative: [] }; + + if (low < 0) { + this.errorTotals.negative[categoryIx] = Math.min(this.errorTotals.negative[categoryIx] || 0, low); + } + + if (high > 0) { + this.errorTotals.positive[categoryIx] = Math.max(this.errorTotals.positive[categoryIx] || 0, high); + } + + return { low: low, high: high }; + }; + + CategoricalChart.prototype.addValue = function addValue (data, fields) { + var categoryIx = fields.categoryIx; + var series = fields.series; + var seriesIx = fields.seriesIx; + + var categoryPoints = this.categoryPoints[categoryIx]; + if (!categoryPoints) { + this.categoryPoints[categoryIx] = categoryPoints = []; + } + + var seriesPoints = this.seriesPoints[seriesIx]; + if (!seriesPoints) { + this.seriesPoints[seriesIx] = seriesPoints = []; + } + + var point = this.createPoint(data, fields); + if (point) { + Object.assign(point, fields); + + point.owner = this; + point.noteText = data.fields.noteText; + if (!Object(_common__WEBPACK_IMPORTED_MODULE_8__["defined"])(point.dataItem)) { + point.dataItem = series.data[categoryIx]; + } + this.addErrorBar(point, data, categoryIx); + } + + this.points.push(point); + seriesPoints.push(point); + categoryPoints.push(point); + + this.updateRange(data.valueFields, fields); + }; + + CategoricalChart.prototype.evalPointOptions = function evalPointOptions (options, value, category, categoryIx, series, seriesIx) { + var state = { defaults: series._defaults, excluded: [ "data", "aggregate", "_events", "tooltip", "content", "template", "visual", "toggle", "_outOfRangeMinPoint", "_outOfRangeMaxPoint" ] }; + + var doEval = this._evalSeries[seriesIx]; + if (!Object(_common__WEBPACK_IMPORTED_MODULE_8__["defined"])(doEval)) { + this._evalSeries[seriesIx] = doEval = Object(_utils_eval_options__WEBPACK_IMPORTED_MODULE_4__["default"])(options, {}, state, true); + } + + var pointOptions = options; + if (doEval) { + pointOptions = Object(_common__WEBPACK_IMPORTED_MODULE_8__["deepExtend"])({}, pointOptions); + Object(_utils_eval_options__WEBPACK_IMPORTED_MODULE_4__["default"])(pointOptions, { + value: value, + category: category, + index: categoryIx, + series: series, + dataItem: series.data[categoryIx] + }, state); + } + + return pointOptions; + }; + + CategoricalChart.prototype.updateRange = function updateRange (data, fields) { + var axisName = fields.series.axis; + var value = data.value; + var axisRange = this.valueAxisRanges[axisName]; + + if (isFinite(value) && value !== null) { + axisRange = this.valueAxisRanges[axisName] = + axisRange || { min: _common_constants__WEBPACK_IMPORTED_MODULE_7__["MAX_VALUE"], max: _common_constants__WEBPACK_IMPORTED_MODULE_7__["MIN_VALUE"] }; + + axisRange.min = Math.min(axisRange.min, value); + axisRange.max = Math.max(axisRange.max, value); + } + }; + + CategoricalChart.prototype.seriesValueAxis = function seriesValueAxis (series) { + var plotArea = this.plotArea; + var axisName = series.axis; + var axis = axisName ? plotArea.namedValueAxes[axisName] : plotArea.valueAxis; + + if (!axis) { + throw new Error("Unable to locate value axis with name " + axisName); + } + + return axis; + }; + + CategoricalChart.prototype.reflow = function reflow (targetBox) { + var this$1 = this; + + var categorySlots = this.categorySlots = []; + var chartPoints = this.points; + var categoryAxis = this.categoryAxis; + var pointIx = 0; + + this.traverseDataPoints(function (data, fields) { + var categoryIx = fields.categoryIx; + var currentSeries = fields.series; + + var valueAxis = this$1.seriesValueAxis(currentSeries); + var point = chartPoints[pointIx++]; + + var categorySlot = categorySlots[categoryIx]; + if (!categorySlot) { + categorySlots[categoryIx] = categorySlot = + this$1.categorySlot(categoryAxis, categoryIx, valueAxis); + } + + if (point) { + var plotRange = this$1.plotRange(point, valueAxis.startValue()); + var valueSlot = this$1.valueSlot(valueAxis, plotRange); + if (valueSlot) { + var pointSlot = this$1.pointSlot(categorySlot, valueSlot); + + point.aboveAxis = this$1.aboveAxis(point, valueAxis); + point.stackValue = plotRange[1]; + + if (this$1.options.isStacked100) { + point.percentage = this$1.plotValue(point); + } + + this$1.reflowPoint(point, pointSlot); + } else { + point.visible = false; + } + } + }); + + this.reflowCategories(categorySlots); + if (!this.options.clip && this.options.limitPoints && this.points.length) { + this.limitPoints(); + } + + this.box = targetBox; + }; + + CategoricalChart.prototype.valueSlot = function valueSlot (valueAxis, plotRange) { + return valueAxis.getSlot(plotRange[0], plotRange[1], !this.options.clip); + }; + + CategoricalChart.prototype.limitPoints = function limitPoints () { + var this$1 = this; + + var categoryPoints = this.categoryPoints; + var points = categoryPoints[0].concat(Object(_common__WEBPACK_IMPORTED_MODULE_8__["last"])(categoryPoints)); + for (var idx = 0; idx < points.length; idx++) { + if (points[idx]) { + this$1.limitPoint(points[idx]); + } + } + }; + + CategoricalChart.prototype.limitPoint = function limitPoint (point) { + var limittedSlot = this.categoryAxis.limitSlot(point.box); + if (!limittedSlot.equals(point.box)) { + point.reflow(limittedSlot); + } + }; + + CategoricalChart.prototype.aboveAxis = function aboveAxis (point, valueAxis) { + var axisCrossingValue = this.categoryAxisCrossingValue(valueAxis); + var value = point.value; + + return valueAxis.options.reverse ? + value < axisCrossingValue : value >= axisCrossingValue; + }; + + CategoricalChart.prototype.categoryAxisCrossingValue = function categoryAxisCrossingValue (valueAxis) { + var categoryAxis = this.categoryAxis; + var options = valueAxis.options; + var crossingValues = [].concat( + options.axisCrossingValues || options.axisCrossingValue + ); + + return crossingValues[categoryAxis.axisIndex || 0] || 0; + }; + + CategoricalChart.prototype.reflowPoint = function reflowPoint (point, pointSlot) { + point.reflow(pointSlot); + }; + + CategoricalChart.prototype.reflowCategories = function reflowCategories () { }; + + CategoricalChart.prototype.pointSlot = function pointSlot (categorySlot, valueSlot) { + var options = this.options; + var invertAxes = options.invertAxes; + var slotX = invertAxes ? valueSlot : categorySlot; + var slotY = invertAxes ? categorySlot : valueSlot; + + return new _core__WEBPACK_IMPORTED_MODULE_6__["Box"](slotX.x1, slotY.y1, slotX.x2, slotY.y2); + }; + + CategoricalChart.prototype.categorySlot = function categorySlot (categoryAxis, categoryIx) { + return categoryAxis.getSlot(categoryIx); + }; + + CategoricalChart.prototype.traverseDataPoints = function traverseDataPoints (callback) { + var this$1 = this; + + var series = this.options.series; + var count = Object(_utils_categories_count__WEBPACK_IMPORTED_MODULE_5__["default"])(series); + var seriesCount = series.length; + + for (var seriesIx = 0; seriesIx < seriesCount; seriesIx++) { + this$1._outOfRangeCallback(series[seriesIx], "_outOfRangeMinPoint", seriesIx, callback); + } + + for (var categoryIx = 0; categoryIx < count; categoryIx++) { + for (var seriesIx$1 = 0; seriesIx$1 < seriesCount; seriesIx$1++) { + var currentSeries = series[seriesIx$1]; + var currentCategory = this$1.categoryAxis.categoryAt(categoryIx); + var pointData = this$1._bindPoint(currentSeries, seriesIx$1, categoryIx); + + callback(pointData, { + category: currentCategory, + categoryIx: categoryIx, + categoriesCount: count, + series: currentSeries, + seriesIx: seriesIx$1 + }); + } + } + + for (var seriesIx$2 = 0; seriesIx$2 < seriesCount; seriesIx$2++) { + this$1._outOfRangeCallback(series[seriesIx$2], "_outOfRangeMaxPoint", seriesIx$2, callback); + } + }; + + CategoricalChart.prototype._outOfRangeCallback = function _outOfRangeCallback (series, field, seriesIx, callback) { + var outOfRangePoint = series[field]; + if (outOfRangePoint) { + var categoryIx = outOfRangePoint.categoryIx; + var pointData = this._bindPoint(series, seriesIx, categoryIx, outOfRangePoint.item); + + callback(pointData, { + category: outOfRangePoint.category, + categoryIx: categoryIx, + series: series, + seriesIx: seriesIx, + dataItem: outOfRangePoint.item + }); + } + }; + + CategoricalChart.prototype._bindPoint = function _bindPoint (series, seriesIx, categoryIx, item) { + if (!this._bindCache) { + this._bindCache = []; + } + + var bindCache = this._bindCache[seriesIx]; + if (!bindCache) { + bindCache = this._bindCache[seriesIx] = []; + } + + var data = bindCache[categoryIx]; + if (!data) { + data = bindCache[categoryIx] = _series_binder__WEBPACK_IMPORTED_MODULE_2__["default"].current.bindPoint(series, categoryIx, item); + } + + return data; + }; + + CategoricalChart.prototype.formatPointValue = function formatPointValue (point, format) { + if (point.value === null) { + return ""; + } + + return this.chartService.format.auto(format, point.value); + }; + + CategoricalChart.prototype.pointValue = function pointValue (data) { + return data.valueFields.value; + }; + + return CategoricalChart; +}(_core__WEBPACK_IMPORTED_MODULE_6__["ChartElement"])); + +Object(_common__WEBPACK_IMPORTED_MODULE_8__["setDefaultOptions"])(CategoricalChart, { + series: [], + invertAxes: false, + isStacked: false, + clip: true, + limitPoints: true +}); + + __webpack_exports__["default"] = (CategoricalChart); + + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/chart-container.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/main.js"); + var _common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + var _core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core.js"); + + + + + +var ChartContainer = (function (ChartElement) { + function ChartContainer(options, pane) { + ChartElement.call(this, options); + this.pane = pane; + } + + if ( ChartElement ) ChartContainer.__proto__ = ChartElement; + ChartContainer.prototype = Object.create( ChartElement && ChartElement.prototype ); + ChartContainer.prototype.constructor = ChartContainer; + + ChartContainer.prototype.shouldClip = function shouldClip () { + var children = this.children; + var length = children.length; + + for (var i = 0; i < length; i++) { + if (children[i].options.clip === true) { + return true; + } + } + return false; + }; + + ChartContainer.prototype._clipBox = function _clipBox () { + return this.pane.chartsBox(); + }; + + ChartContainer.prototype.createVisual = function createVisual () { + this.visual = new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Group({ + zIndex: 0 + }); + + if (this.shouldClip()) { + var clipBox = this.clipBox = this._clipBox(); + var clipRect = clipBox.toRect(); + var clipPath = _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Path.fromRect(clipRect); + Object(_common__WEBPACK_IMPORTED_MODULE_1__["alignPathToPixel"])(clipPath); + + this.visual.clip(clipPath); + this.unclipLabels(); + } + }; + + ChartContainer.prototype.stackRoot = function stackRoot () { + return this; + }; + + ChartContainer.prototype.unclipLabels = function unclipLabels () { + var ref = this; + var charts = ref.children; + var clipBox = ref.clipBox; + + for (var i = 0; i < charts.length; i++) { + var points = charts[i].points || {}; + var length = points.length; + + for (var j = 0; j < length; j++) { + var point = points[j]; + if (point && point.visible !== false && point.overlapsBox && point.overlapsBox(clipBox)) { + if (point.unclipElements) { + point.unclipElements(); + } else { + var label = point.label; + var note = point.note; + + if (label && label.options.visible) { + if (label.alignToClipBox) { + label.alignToClipBox(clipBox); + } + label.options.noclip = true; + } + + if (note && note.options.visible) { + note.options.noclip = true; + } + } + } + } + } + }; + + ChartContainer.prototype.destroy = function destroy () { + ChartElement.prototype.destroy.call(this); + + delete this.parent; + }; + + return ChartContainer; +}(_core__WEBPACK_IMPORTED_MODULE_2__["ChartElement"])); + +ChartContainer.prototype.isStackRoot = true; + + __webpack_exports__["default"] = (ChartContainer); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/chart.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/main.js"); + var _core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core.js"); + var _highlight__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/highlight.js"); + var _pan_and_zoom_pannable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/pan-and-zoom/pannable.js"); + var _pan_and_zoom_zoom_selection__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/pan-and-zoom/zoom-selection.js"); + var _pan_and_zoom_mousewheel_zoom__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/pan-and-zoom/mousewheel-zoom.js"); + var _legend_legend__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/legend/legend.js"); + var _plotarea_plotarea_factory__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/plotarea/plotarea-factory.js"); + var _selection__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/selection.js"); + var _series_binder__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/series-binder.js"); + var _tooltip_tooltip__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/tooltip/tooltip.js"); + var _tooltip_shared_tooltip__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/tooltip/shared-tooltip.js"); + var _plotarea_categorical_plotarea__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/plotarea/categorical-plotarea.js"); + var _plotarea_plotarea_base__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/plotarea/plotarea-base.js"); + var _services__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/services.js"); + var _utils_get_field__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/utils/get-field.js"); + var _utils_is_date_axis__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/utils/is-date-axis.js"); + var _utils_get_date_field__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/utils/get-date-field.js"); + var _api_elements__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/api-elements.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + var _date_utils__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/date-utils.js"); + var _constants__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/constants.js"); + var _animations__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/animations.js"); + var _register_charts__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/register-charts.js"); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +var AXIS_NAMES = [ _constants__WEBPACK_IMPORTED_MODULE_22__["CATEGORY"], _common_constants__WEBPACK_IMPORTED_MODULE_19__["VALUE"], _common_constants__WEBPACK_IMPORTED_MODULE_19__["X"], _common_constants__WEBPACK_IMPORTED_MODULE_19__["Y"] ]; + +var MOUSEMOVE = "mousemove"; +var CONTEXTMENU = "contextmenu"; +var MOUSELEAVE = "mouseleave"; +var MOUSEMOVE_DELAY = 20; + +var Chart = (function (Class) { + function Chart(element, userOptions, themeOptions, context) { + var this$1 = this; + if ( context === void 0 ) context = {}; + + Class.call(this); + + this.observers = []; + this.addObserver(context.observer); + this.chartService = new _services__WEBPACK_IMPORTED_MODULE_14__["ChartService"](this, context); + this.chartService.theme = themeOptions; + + this._initElement(element); + + var options = Object(_common__WEBPACK_IMPORTED_MODULE_20__["deepExtend"])({}, this.options, userOptions); + this._originalOptions = Object(_common__WEBPACK_IMPORTED_MODULE_20__["deepExtend"])({}, options); + this._theme = themeOptions; + this._initTheme(options, themeOptions); + + this._initHandlers(); + this._initSurface(); + + this.bindCategories(); + _common__WEBPACK_IMPORTED_MODULE_20__["FontLoader"].preloadFonts(userOptions, function () { + this$1.fontLoaded = true; + if (!this$1._destroyed) { + this$1.trigger('init'); + this$1._redraw(); + this$1._attachEvents(); + } + }); + } + + if ( Class ) Chart.__proto__ = Class; + Chart.prototype = Object.create( Class && Class.prototype ); + Chart.prototype.constructor = Chart; + + Chart.prototype._initElement = function _initElement (element) { + this._setElementClass(element); + element.style.position = "relative"; + while (element.firstChild) { + element.removeChild(element.firstChild); + } + this.element = element; + }; + + Chart.prototype._setElementClass = function _setElementClass (element) { + Object(_common__WEBPACK_IMPORTED_MODULE_20__["addClass"])(element, "k-chart"); + }; + + Chart.prototype._initTheme = function _initTheme (options, themeOptions) { + var seriesCopies = []; + var series = options.series || []; + + for (var i = 0; i < series.length; i++) { + seriesCopies.push(Object.assign({}, series[i])); + } + options.series = seriesCopies; + + resolveAxisAliases(options); + this.applyDefaults(options, themeOptions); + + // Clean up default if not overriden by data attributes + if (options.seriesColors === null) { + delete options.seriesColors; + } + + this.options = Object(_common__WEBPACK_IMPORTED_MODULE_20__["deepExtend"])({}, themeOptions, options); + this.applySeriesColors(); + }; + + Chart.prototype.getSize = function getSize () { + var chartArea = this.options.chartArea || {}; + var width = chartArea.width ? parseInt(chartArea.width, 10) : Math.floor(this.element.offsetWidth); + var height = chartArea.height ? parseInt(chartArea.height, 10) : Math.floor(this.element.offsetHeight); + + return { + width: width, + height: height + }; + }; + + Chart.prototype.resize = function resize (force) { + var size = this.getSize(); + var currentSize = this._size; + var hasSize = size.width > 0 || size.height > 0; + + if (force || hasSize && (!currentSize || size.width !== currentSize.width || size.height !== currentSize.height)) { + this._size = size; + this._resize(size, force); + this.trigger("resize", size); + } else if (hasSize && this._selections && Object(_common__WEBPACK_IMPORTED_MODULE_20__["find"])(this._selections, function (s) { return !s.visible; })) { + this._destroySelections(); + this._setupSelection(); + } + }; + + Chart.prototype._resize = function _resize () { + this._noTransitionsRedraw(); + }; + + Chart.prototype.redraw = function redraw (paneName) { + this.applyDefaults(this.options); + this.applySeriesColors(); + + if (paneName) { + var plotArea = this._model._plotArea; + var pane = plotArea.findPane(paneName); + plotArea.redraw(pane); + } else { + this._redraw(); + } + }; + + Chart.prototype.getAxis = function getAxis (name) { + return Object(_api_elements__WEBPACK_IMPORTED_MODULE_18__["findAxisByName"])(name, this._plotArea.axes); + }; + + Chart.prototype.findAxisByName = function findAxisByName (name) { + return this.getAxis(name); + }; + + Chart.prototype.findPaneByName = function findPaneByName (name) { + var panes = this._plotArea.panes; + + for (var idx = 0; idx < panes.length; idx++) { + if (panes[idx].options.name === name) { + return new _api_elements__WEBPACK_IMPORTED_MODULE_18__["ChartPane"](panes[idx]); + } + } + }; + + Chart.prototype.findPaneByIndex = function findPaneByIndex (idx) { + var panes = this._plotArea.panes; + if (panes[idx]) { + return new _api_elements__WEBPACK_IMPORTED_MODULE_18__["ChartPane"](panes[idx]); + } + }; + + Chart.prototype.plotArea = function plotArea () { + return new _api_elements__WEBPACK_IMPORTED_MODULE_18__["ChartPlotArea"](this._plotArea); + }; + + Chart.prototype.toggleHighlight = function toggleHighlight (show, filter) { + var plotArea = this._plotArea; + var firstSeries = (plotArea.srcSeries || plotArea.series || [])[0]; + var points; + + if (Object(_common__WEBPACK_IMPORTED_MODULE_20__["isFunction"])(filter)) { + points = plotArea.filterPoints(filter); + } else { + var seriesName, categoryName; + if (Object(_common__WEBPACK_IMPORTED_MODULE_20__["isObject"])(filter)) { + seriesName = filter.series; + categoryName = filter.category; + } else { + seriesName = categoryName = filter; + } + + if (firstSeries.type === _constants__WEBPACK_IMPORTED_MODULE_22__["DONUT"]) { + points = pointByCategoryName(plotArea.pointsBySeriesName(seriesName), categoryName); + } else if (firstSeries.type === _constants__WEBPACK_IMPORTED_MODULE_22__["PIE"] || firstSeries.type === _constants__WEBPACK_IMPORTED_MODULE_22__["FUNNEL"]) { + points = pointByCategoryName((plotArea.charts[0] || {}).points, categoryName); + } else { + points = plotArea.pointsBySeriesName(seriesName); + } + } + + if (points) { + this.togglePointsHighlight(show, points); + } + }; + + Chart.prototype.togglePointsHighlight = function togglePointsHighlight (show, points) { + var highlight = this._highlight; + for (var idx = 0; idx < points.length; idx++) { + highlight.togglePointHighlight(points[idx], show); + } + }; + + Chart.prototype.showTooltip = function showTooltip (filter) { + var shared = this._sharedTooltip(); + var ref = this; + var tooltip = ref._tooltip; + var plotArea = ref._plotArea; + var point, categoryIndex; + + if (Object(_common__WEBPACK_IMPORTED_MODULE_20__["isFunction"])(filter)) { + point = plotArea.findPoint(filter); + if (point && shared) { + categoryIndex = point.categoryIx; + } + } else if (shared && Object(_common__WEBPACK_IMPORTED_MODULE_20__["defined"])(filter)) { + categoryIndex = plotArea.categoryAxis.categoryIndex(filter); + } + + if (shared) { + if (categoryIndex >= 0) { + var points = this._plotArea.pointsByCategoryIndex(categoryIndex); + tooltip.showAt(points); + } + } else if (point) { + tooltip.show(point); + } + }; + + Chart.prototype.hideTooltip = function hideTooltip () { + this._tooltip.hide(); + }; + + Chart.prototype._initSurface = function _initSurface () { + var surface = this.surface; + var wrap = this._surfaceWrap(); + + var chartArea = this.options.chartArea || {}; + if (chartArea.width) { + Object(_common__WEBPACK_IMPORTED_MODULE_20__["elementSize"])(wrap, { width: chartArea.width }); + } + if (chartArea.height) { + Object(_common__WEBPACK_IMPORTED_MODULE_20__["elementSize"])(wrap, { height: chartArea.height }); + } + + if (!surface || surface.options.type !== this.options.renderAs) { + this._destroySurface(); + + this.surface = _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Surface.create(wrap, { + type: this.options.renderAs + }); + + this.surface.bind("mouseenter", this._surfaceMouseenterHandler); + this.surface.bind("mouseleave", this._surfaceMouseleaveHandler); + + } else { + this.surface.clear(); + this.surface.resize(); + } + }; + + Chart.prototype._surfaceWrap = function _surfaceWrap () { + return this.element; + }; + + Chart.prototype._redraw = function _redraw () { + var model = this._getModel(); + this._size = { + width: model.options.width, + height: model.options.height + }; + + this._destroyView(); + + this._model = model; + this._plotArea = model._plotArea; + + model.renderVisual(); + + if (this.options.transitions !== false) { + model.traverse(function(element) { + if (element.animation) { + element.animation.setup(); + } + }); + } + + this._initSurface(); + this.surface.draw(model.visual); + + if (this.options.transitions !== false) { + model.traverse(function(element) { + if (element.animation) { + element.animation.play(); + } + }); + } + + this._tooltip = this._createTooltip(); + this._highlight = new _highlight__WEBPACK_IMPORTED_MODULE_2__["default"](); + this._setupSelection(); + this._createPannable(); + this._createZoomSelection(); + this._createMousewheelZoom(); + + this.trigger(_constants__WEBPACK_IMPORTED_MODULE_22__["RENDER"]); + triggerPaneRender(this._plotArea.panes); + + if (!this._navState) { + this._cancelDomEvents(); + } + }; + + Chart.prototype.exportVisual = function exportVisual (exportOptions) { + var visual; + if (exportOptions && (exportOptions.width || exportOptions.height || exportOptions.options)) { + var currentOptions = this.options; + var options = Object(_common__WEBPACK_IMPORTED_MODULE_20__["deepExtend"])({}, exportOptions.options, { + chartArea: { + width: exportOptions.width, + height: exportOptions.height + } + }); + + clearMissingValues(this._originalOptions, options); + this.options = Object(_common__WEBPACK_IMPORTED_MODULE_20__["deepExtend"])({}, this._originalOptions, options); + this._initTheme(this.options, this._theme); + this.bindCategories(); + + var model = this._getModel(); + + model.renderVisual(); + triggerPaneRender(model._plotArea.panes); + + visual = model.visual; + + this.options = currentOptions; + } else { + visual = this.surface.exportVisual(); + } + + return visual; + }; + + Chart.prototype._sharedTooltip = function _sharedTooltip () { + return this._plotArea instanceof _plotarea_categorical_plotarea__WEBPACK_IMPORTED_MODULE_12__["default"] && this.options.tooltip && this.options.tooltip.shared; + }; + + Chart.prototype._createPannable = function _createPannable () { + var options = this.options; + if (options.pannable !== false) { + this._pannable = new _pan_and_zoom_pannable__WEBPACK_IMPORTED_MODULE_3__["default"](this._plotArea, options.pannable); + } + }; + + Chart.prototype._createZoomSelection = function _createZoomSelection () { + var zoomable = this.options.zoomable; + var selection = (zoomable || {}).selection; + if (zoomable !== false && selection !== false) { + this._zoomSelection = new _pan_and_zoom_zoom_selection__WEBPACK_IMPORTED_MODULE_4__["default"](this, selection); + } + }; + + Chart.prototype._createMousewheelZoom = function _createMousewheelZoom () { + var zoomable = this.options.zoomable; + var mousewheel = (zoomable || {}).mousewheel; + if (zoomable !== false && mousewheel !== false) { + this._mousewheelZoom = new _pan_and_zoom_mousewheel_zoom__WEBPACK_IMPORTED_MODULE_5__["default"](this, mousewheel); + } + }; + + Chart.prototype._toggleDragZoomEvents = function _toggleDragZoomEvents () { + var pannable = this.options.pannable; + var zoomable = this.options.zoomable; + var selection = (zoomable || {}).selection; + var mousewheel = (zoomable || {}).mousewheel; + var allowDrag = !pannable && (zoomable === false || selection === false) && !this.requiresHandlers([ _constants__WEBPACK_IMPORTED_MODULE_22__["DRAG_START"], _constants__WEBPACK_IMPORTED_MODULE_22__["DRAG"], _constants__WEBPACK_IMPORTED_MODULE_22__["DRAG_END"] ]); + var allowZoom = (zoomable === false || mousewheel === false) && !this.requiresHandlers([ _constants__WEBPACK_IMPORTED_MODULE_22__["ZOOM_START"], _constants__WEBPACK_IMPORTED_MODULE_22__["ZOOM"], _constants__WEBPACK_IMPORTED_MODULE_22__["ZOOM_END"] ]); + var element = this.element; + + if (this._dragZoomEnabled && allowDrag && allowZoom) { + element.style.touchAction = this._touchAction || ''; + this._dragZoomEnabled = false; + } else if (!this._dragZoomEnabled && !(allowDrag && allowZoom)) { + element.style.touchAction = "none"; + + this._dragZoomEnabled = true; + } + + this._toggleDomEvents(!allowDrag, !allowZoom); + }; + + Chart.prototype._toggleDomEvents = function _toggleDomEvents (drag, zoom) { + var domEvents = this.domEvents; + if (!domEvents) { + return; + } + + if (domEvents.toggleDrag) { + domEvents.toggleDrag(drag); + } + + if (domEvents.toggleZoom) { + domEvents.toggleZoom(zoom); + } + }; + + Chart.prototype._createTooltip = function _createTooltip () { + var ref = this; + var tooltipOptions = ref.options.tooltip; + var tooltip; + + if (this._sharedTooltip()) { + tooltip = this._createSharedTooltip(tooltipOptions); + } else { + tooltip = new _tooltip_tooltip__WEBPACK_IMPORTED_MODULE_10__["default"](this.chartService, tooltipOptions); + } + + return tooltip; + }; + + Chart.prototype._createSharedTooltip = function _createSharedTooltip (options) { + return new _tooltip_shared_tooltip__WEBPACK_IMPORTED_MODULE_11__["default"](this._plotArea, options); + }; + + Chart.prototype.applyDefaults = function applyDefaults (options, themeOptions) { + applyAxisDefaults(options, themeOptions); + applySeriesDefaults(options, themeOptions); + }; + + Chart.prototype.applySeriesColors = function applySeriesColors () { + var options = this.options; + var series = options.series; + var colors = options.seriesColors || []; + + for (var i = 0; i < series.length; i++) { + var currentSeries = series[i]; + var seriesColor = colors[i % colors.length]; + var defaults = currentSeries._defaults; + + currentSeries.color = currentSeries.color || seriesColor; + if (defaults) { + defaults.color = defaults.color || seriesColor; + } + } + }; + + Chart.prototype._getModel = function _getModel () { + var options = this.options; + var plotArea = this._createPlotArea(); + var model = new _core__WEBPACK_IMPORTED_MODULE_1__["RootElement"](this._modelOptions()); + model.chart = this; + model._plotArea = plotArea; + + _core__WEBPACK_IMPORTED_MODULE_1__["Title"].buildTitle(options.title, model); + + if (options.legend && options.legend.visible) { + model.append(new _legend_legend__WEBPACK_IMPORTED_MODULE_6__["default"](plotArea.options.legend, this.chartService)); + } + model.append(plotArea); + model.reflow(); + + return model; + }; + + Chart.prototype._modelOptions = function _modelOptions () { + var options = this.options; + var size = this.getSize(); + + return Object(_common__WEBPACK_IMPORTED_MODULE_20__["deepExtend"])({ + transitions: options.transitions, + width: size.width || _common_constants__WEBPACK_IMPORTED_MODULE_19__["DEFAULT_WIDTH"], + height: size.height || _common_constants__WEBPACK_IMPORTED_MODULE_19__["DEFAULT_HEIGHT"] + }, options.chartArea); + }; + + Chart.prototype._createPlotArea = function _createPlotArea (skipSeries) { + var options = this.options; + + var plotArea = _plotarea_plotarea_factory__WEBPACK_IMPORTED_MODULE_7__["default"].current.create(skipSeries ? [] : options.series, options, this.chartService); + + return plotArea; + }; + + Chart.prototype._setupSelection = function _setupSelection () { + var this$1 = this; + + var ref = this; + var axes = ref._plotArea.axes; + var selections = this._selections = []; + + for (var i = 0; i < axes.length; i++) { + var axis = axes[i]; + var options = axis.options; + if (axis instanceof _core__WEBPACK_IMPORTED_MODULE_1__["CategoryAxis"] && options.select && !options.vertical) { + var range = axis.range(); + + var selection = new _selection__WEBPACK_IMPORTED_MODULE_8__["default"](this$1, axis, + Object(_common__WEBPACK_IMPORTED_MODULE_20__["deepExtend"])({ min: range.min, max: range.max }, options.select) + ); + + selections.push(selection); + } + } + }; + + Chart.prototype._selectStart = function _selectStart (e) { + return this.trigger(_constants__WEBPACK_IMPORTED_MODULE_22__["SELECT_START"], e); + }; + + Chart.prototype._select = function _select (e) { + return this.trigger(_constants__WEBPACK_IMPORTED_MODULE_22__["SELECT"], e); + }; + + Chart.prototype._selectEnd = function _selectEnd (e) { + return this.trigger(_constants__WEBPACK_IMPORTED_MODULE_22__["SELECT_END"], e); + }; + + Chart.prototype._initHandlers = function _initHandlers () { + this._clickHandler = this._click.bind(this); + this._mousewheelHandler = this._mousewheel.bind(this); + this._mouseleaveHandler = this._mouseleave.bind(this); + this._surfaceMouseenterHandler = this._mouseover.bind(this); + this._surfaceMouseleaveHandler = this._mouseout.bind(this); + + this._mousemove = Object(_progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["throttle"])( + this._mousemove.bind(this), + MOUSEMOVE_DELAY + ); + }; + + Chart.prototype.addObserver = function addObserver (observer) { + if (observer) { + this.observers.push(observer); + } + }; + + Chart.prototype.removeObserver = function removeObserver (observer) { + var index = this.observers.indexOf(observer); + if (index >= 0) { + this.observers.splice(index, 1); + } + }; + + Chart.prototype.requiresHandlers = function requiresHandlers (eventNames) { + var observers = this.observers; + for (var idx = 0; idx < observers.length; idx++) { + if (observers[idx].requiresHandlers(eventNames)) { + return true; + } + } + }; + + Chart.prototype.trigger = function trigger (name, args) { + if ( args === void 0 ) args = {}; + + if (name === _constants__WEBPACK_IMPORTED_MODULE_22__["SHOW_TOOLTIP"]) { + args.anchor.point = this._toDocumentCoordinates(args.anchor.point); + } + args.sender = this; + + var observers = this.observers; + var isDefaultPrevented = false; + for (var idx = 0; idx < observers.length; idx++) { + if (observers[idx].trigger(name, args)) { + isDefaultPrevented = true; + } + } + + return isDefaultPrevented; + }; + + Chart.prototype._attachEvents = function _attachEvents () { + var obj, obj$1; + + var element = this.element; + + this._touchAction = element.style.touchAction; + + Object(_common__WEBPACK_IMPORTED_MODULE_20__["bindEvents"])(element, ( obj = {}, obj[ CONTEXTMENU ] = this._clickHandler, obj[ _constants__WEBPACK_IMPORTED_MODULE_22__["MOUSEWHEEL"] ] = this._mousewheelHandler, obj[ MOUSELEAVE ] = this._mouseleaveHandler, obj )); + + if (this._shouldAttachMouseMove()) { + Object(_common__WEBPACK_IMPORTED_MODULE_20__["bindEvents"])(element, ( obj$1 = {}, obj$1[ MOUSEMOVE ] = this._mousemove, obj$1 )); + } + + this.domEvents = _services__WEBPACK_IMPORTED_MODULE_14__["DomEventsBuilder"].create(this.element, { + start: this._start.bind(this), + move: this._move.bind(this), + end: this._end.bind(this), + tap: this._tap.bind(this), + gesturestart: this._gesturestart.bind(this), + gesturechange: this._gesturechange.bind(this), + gestureend: this._gestureend.bind(this) + }); + + this._toggleDragZoomEvents(); + }; + + Chart.prototype._mouseleave = function _mouseleave (e) { + if (this._hoveredPoint) { + this._hoveredPoint.out(this, e); + this._hoveredPoint = null; + } + + if (this._plotArea.hovered) { + this.trigger(_constants__WEBPACK_IMPORTED_MODULE_22__["PLOT_AREA_LEAVE"]); + this._plotArea.hovered = false; + } + }; + + Chart.prototype._cancelDomEvents = function _cancelDomEvents () { + if (this.domEvents && this.domEvents.cancel) { + this.domEvents.cancel(); + } + }; + + Chart.prototype._gesturestart = function _gesturestart (e) { + if (this._mousewheelZoom && !this._stopChartHandlers(e)) { + this._gestureDistance = e.distance; + this._unsetActivePoint(); + this.surface.suspendTracking(); + } + }; + + Chart.prototype._gestureend = function _gestureend (e) { + if (this._zooming && !this._stopChartHandlers(e)) { + if (this.surface) { + this.surface.resumeTracking(); + } + this._zooming = false; + this.trigger(_constants__WEBPACK_IMPORTED_MODULE_22__["ZOOM_END"], {}); + } + }; + + Chart.prototype._gesturechange = function _gesturechange (e) { + var mousewheelZoom = this._mousewheelZoom; + + if (mousewheelZoom && !this._stopChartHandlers(e)) { + e.preventDefault(); + var previousGestureDistance = this._gestureDistance; + var scaleDelta = -e.distance / previousGestureDistance + 1; + + if (Math.abs(scaleDelta) >= 0.1) { + scaleDelta = Math.round(scaleDelta * 10); + + this._gestureDistance = e.distance; + var args = { delta: scaleDelta, axisRanges: axisRanges(this._plotArea.axes), originalEvent: e }; + if (this._zooming || !this.trigger(_constants__WEBPACK_IMPORTED_MODULE_22__["ZOOM_START"], args)) { + + if (!this._zooming) { + this._zooming = true; + } + + var ranges = args.axisRanges = mousewheelZoom.updateRanges(scaleDelta); + if (ranges && !this.trigger(_constants__WEBPACK_IMPORTED_MODULE_22__["ZOOM"], args)) { + mousewheelZoom.zoom(); + } + } + } + } + }; + + Chart.prototype._mouseout = function _mouseout (e) { + if (e.element) { + var element = this._drawingChartElement(e.element, e); + + if (element && element.leave) { + element.leave(this, e.originalEvent); + } + } + }; + + Chart.prototype._start = function _start (e) { + var coords = this._eventCoordinates(e); + + if (this._stopChartHandlers(e) || !this._plotArea.backgroundContainsPoint(coords)) { + return; + } + + + if (this.requiresHandlers([ _constants__WEBPACK_IMPORTED_MODULE_22__["DRAG_START"], _constants__WEBPACK_IMPORTED_MODULE_22__["DRAG"], _constants__WEBPACK_IMPORTED_MODULE_22__["DRAG_END"] ])) { + this._startNavigation(e, coords, _constants__WEBPACK_IMPORTED_MODULE_22__["DRAG_START"]); + } + + if (this._pannable && this._pannable.start(e)) { + this.surface.suspendTracking(); + this._unsetActivePoint(); + this._suppressHover = true; + this.chartService.panning = true; + } + + if (this._zoomSelection) { + if (this._zoomSelection.start(e)) { + this.trigger(_constants__WEBPACK_IMPORTED_MODULE_22__["ZOOM_START"], { axisRanges: axisRanges(this._plotArea.axes), originalEvent: e }); + } + } + }; + + Chart.prototype._move = function _move (e) { + var ref = this; + var state = ref._navState; + var pannable = ref._pannable; + + if (this._stopChartHandlers(e)) { + return; + } + + if (pannable) { + var ranges = pannable.move(e); + + if (ranges && !this.trigger(_constants__WEBPACK_IMPORTED_MODULE_22__["DRAG"], { axisRanges: ranges, originalEvent: e })) { + pannable.pan(); + } + } else if (state) { + var ranges$1 = {}; + var axes = state.axes; + + for (var i = 0; i < axes.length; i++) { + var currentAxis = axes[i]; + var axisName = currentAxis.options.name; + if (axisName) { + var axis = currentAxis.options.vertical ? e.y : e.x; + var delta = axis.startLocation - axis.location; + + if (delta !== 0) { + ranges$1[currentAxis.options.name] = currentAxis.translateRange(delta); + } + } + } + + state.axisRanges = ranges$1; + this.trigger(_constants__WEBPACK_IMPORTED_MODULE_22__["DRAG"], { + axisRanges: ranges$1, + originalEvent: e + }); + } + + if (this._zoomSelection) { + this._zoomSelection.move(e); + } + }; + + Chart.prototype._end = function _end (e) { + if (this._stopChartHandlers(e)) { + return; + } + + var pannable = this._pannable; + if (pannable && pannable.end(e)) { + this.surface.resumeTracking(); + this.trigger(_constants__WEBPACK_IMPORTED_MODULE_22__["DRAG_END"], { + axisRanges: axisRanges(this._plotArea.axes), + originalEvent: e + }); + this._suppressHover = false; + this.chartService.panning = false; + } else { + this._endNavigation(e, _constants__WEBPACK_IMPORTED_MODULE_22__["DRAG_END"]); + } + + if (this._zoomSelection) { + var ranges = this._zoomSelection.end(e); + if (ranges && !this.trigger(_constants__WEBPACK_IMPORTED_MODULE_22__["ZOOM"], { axisRanges: ranges, originalEvent: e })) { + this._zoomSelection.zoom(); + this.trigger(_constants__WEBPACK_IMPORTED_MODULE_22__["ZOOM_END"], { axisRanges: ranges, originalEvent: e }); + } + } + }; + + Chart.prototype._stopChartHandlers = function _stopChartHandlers (e) { + var selections = this._selections || []; + if (!selections.length) { + return false; + } + + var coords = this._eventCoordinates(e); + var pane = this._plotArea.paneByPoint(coords); + if (pane) { + for (var idx = 0; idx < selections.length; idx++) { + if (selections[idx].onPane(pane)) { + return true; + } + } + } + }; + + Chart.prototype._mousewheel = function _mousewheel (e) { + var this$1 = this; + + var delta = Object(_common__WEBPACK_IMPORTED_MODULE_20__["mousewheelDelta"])(e); + var mousewheelZoom = this._mousewheelZoom; + var coords = this._eventCoordinates(e); + + if (this._stopChartHandlers(e) || !this._plotArea.backgroundContainsPoint(coords)) { + return; + } + + if (mousewheelZoom) { + var args = { delta: delta, axisRanges: axisRanges(this._plotArea.axes), originalEvent: e }; + if (this._zooming || !this.trigger(_constants__WEBPACK_IMPORTED_MODULE_22__["ZOOM_START"], args)) { + e.preventDefault(); + + if (!this._zooming) { + this._unsetActivePoint(); + this.surface.suspendTracking(); + this._zooming = true; + } + + if (this._mwTimeout) { + clearTimeout(this._mwTimeout); + } + + args.axisRanges = mousewheelZoom.updateRanges(delta); + if (args.axisRanges && !this.trigger(_constants__WEBPACK_IMPORTED_MODULE_22__["ZOOM"], args)) { + mousewheelZoom.zoom(); + } + + this._mwTimeout = setTimeout(function () { + this$1.trigger(_constants__WEBPACK_IMPORTED_MODULE_22__["ZOOM_END"], args); + this$1._zooming = false; + if (this$1.surface) { + this$1.surface.resumeTracking(); + } + }, _constants__WEBPACK_IMPORTED_MODULE_22__["MOUSEWHEEL_DELAY"]); + } + } else { + var state = this._navState; + if (!state) { + var prevented = this._startNavigation(e, coords, _constants__WEBPACK_IMPORTED_MODULE_22__["ZOOM_START"]); + if (!prevented) { + state = this._navState; + } + } + + if (state) { + var totalDelta = state.totalDelta || delta; + state.totalDelta = totalDelta + delta; + + var axes = this._navState.axes; + var ranges = {}; + + for (var i = 0; i < axes.length; i++) { + var currentAxis = axes[i]; + var axisName = currentAxis.options.name; + if (axisName) { + ranges[axisName] = currentAxis.scaleRange(-totalDelta); + } + } + + this.trigger(_constants__WEBPACK_IMPORTED_MODULE_22__["ZOOM"], { + delta: delta, + axisRanges: ranges, + originalEvent: e + }); + + if (this._mwTimeout) { + clearTimeout(this._mwTimeout); + } + + this._mwTimeout = setTimeout(function () { + this$1._endNavigation(e, _constants__WEBPACK_IMPORTED_MODULE_22__["ZOOM_END"]); + }, _constants__WEBPACK_IMPORTED_MODULE_22__["MOUSEWHEEL_DELAY"]); + } + } + }; + + Chart.prototype._startNavigation = function _startNavigation (e, coords, chartEvent) { + var plotArea = this._model._plotArea; + var pane = plotArea.findPointPane(coords); + var axes = plotArea.axes.slice(0); + + if (!pane) { + return; + } + + var ranges = axisRanges(axes); + + var prevented = this.trigger(chartEvent, { + axisRanges: ranges, + originalEvent: e + }); + + if (prevented) { + this._cancelDomEvents(); + } else { + this._suppressHover = true; + this._unsetActivePoint(); + this._navState = { + axisRanges: ranges, + pane: pane, + axes: axes + }; + } + }; + + Chart.prototype._endNavigation = function _endNavigation (e, chartEvent) { + if (this._navState) { + this.trigger(chartEvent, { + axisRanges: this._navState.axisRanges, + originalEvent: e + }); + this._suppressHover = false; + this._navState = null; + } + }; + + Chart.prototype._getChartElement = function _getChartElement (e, match) { + var element = this.surface.eventTarget(e); + if (element) { + return this._drawingChartElement(element, e, match); + } + }; + + Chart.prototype._drawingChartElement = function _drawingChartElement (element, e, match) { + var current = element; + var chartElement; + while (current && !chartElement) { + chartElement = current.chartElement; + current = current.parent; + } + + if (chartElement) { + if (chartElement.aliasFor) { + chartElement = chartElement.aliasFor(e, this._eventCoordinates(e)); + } + + if (match) { + chartElement = chartElement.closest(match); + if (chartElement && chartElement.aliasFor) { + chartElement = chartElement.aliasFor(); + } + } + + return chartElement; + } + }; + + Chart.prototype._eventCoordinates = function _eventCoordinates (e) { + var coordinates = Object(_common__WEBPACK_IMPORTED_MODULE_20__["eventCoordinates"])(e); + return this._toModelCoordinates(coordinates.x, coordinates.y); + }; + + Chart.prototype._elementPadding = function _elementPadding () { + if (!this._padding) { + var ref = Object(_common__WEBPACK_IMPORTED_MODULE_20__["elementStyles"])(this.element, [ "paddingLeft", "paddingTop" ]); + var paddingLeft = ref.paddingLeft; + var paddingTop = ref.paddingTop; + this._padding = { + top: paddingTop, + left: paddingLeft + }; + } + + return this._padding; + }; + + Chart.prototype._toDocumentCoordinates = function _toDocumentCoordinates (point) { + var padding = this._elementPadding(); + var offset = Object(_common__WEBPACK_IMPORTED_MODULE_20__["elementOffset"])(this.element); + + return { + left: Object(_common__WEBPACK_IMPORTED_MODULE_20__["round"])(point.x + padding.left + offset.left), + top: Object(_common__WEBPACK_IMPORTED_MODULE_20__["round"])(point.y + padding.top + offset.top) + }; + }; + + Chart.prototype._toModelCoordinates = function _toModelCoordinates (clientX, clientY) { + var element = this.element; + var offset = Object(_common__WEBPACK_IMPORTED_MODULE_20__["elementOffset"])(element); + var padding = this._elementPadding(); + + return new _core__WEBPACK_IMPORTED_MODULE_1__["Point"]( + clientX - offset.left - padding.left, + clientY - offset.top - padding.top + ); + }; + + Chart.prototype._tap = function _tap (e) { + var this$1 = this; + + var drawingElement = this.surface.eventTarget(e); + var element = this._drawingChartElement(drawingElement, e); + var sharedTooltip = this._sharedTooltip(); + + if (!this._startHover(drawingElement, e) && !sharedTooltip) { + this._unsetActivePoint(); + } + + if (sharedTooltip) { + this._trackSharedTooltip(this._eventCoordinates(e), e, true); + } + + this._propagateClick(element, e); + + //part of fix for hover issue on windows touch + this.handlingTap = true; + setTimeout(function () { + this$1.handlingTap = false; + }, 0); + }; + + Chart.prototype._click = function _click (e) { + var element = this._getChartElement(e); + this._propagateClick(element, e); + }; + + Chart.prototype._propagateClick = function _propagateClick (element, e) { + var this$1 = this; + + var current = element; + while (current) { + if (current.click) { + current.click(this$1, e); + } + + current = current.parent; + } + }; + + Chart.prototype._startHover = function _startHover (element, e) { + if (this._suppressHover) { + return false; + } + + var point = this._drawingChartElement(element, e, function(element) { + return (element.hover || element.over) && !(element instanceof _plotarea_plotarea_base__WEBPACK_IMPORTED_MODULE_13__["default"]); + }); + + var activePoint = this._activePoint; + var hoveredPoint = this._hoveredPoint; + + if (hoveredPoint && hoveredPoint !== point) { + hoveredPoint.out(this, e); + this._hoveredPoint = null; + } + + if (point && hoveredPoint !== point && point.over) { + this._hoveredPoint = point; + point.over(this, e); + } + + if (point && activePoint !== point && point.hover) { + this._activePoint = point; + + if (!this._sharedTooltip() && !point.hover(this, e)) { + var tooltipOptions = Object(_common__WEBPACK_IMPORTED_MODULE_20__["deepExtend"])({}, this.options.tooltip, point.options.tooltip); + if (tooltipOptions.visible) { + this._tooltip.show(point); + } + + this._highlight.show(point); + } + } + + return point; + }; + + Chart.prototype._mouseover = function _mouseover (e) { + var obj; + + var point = this._startHover(e.element, e.originalEvent); + + if (point && point.tooltipTracking && !this._mouseMoveTrackHandler && !this._sharedTooltip()) { + this._mouseMoveTrackHandler = this._mouseMoveTracking.bind(this); + Object(_common__WEBPACK_IMPORTED_MODULE_20__["bindEvents"])(document, ( obj = {}, obj[ MOUSEMOVE ] = this._mouseMoveTrackHandler, obj )); + } + }; + + Chart.prototype._mouseMoveTracking = function _mouseMoveTracking (e) { + var obj; + + var ref = this; + var options = ref.options; + var tooltip = ref._tooltip; + var highlight = ref._highlight; + var point = ref._activePoint; + var coords = this._eventCoordinates(e); + + if (this._plotArea.box.containsPoint(coords)) { + if (point && point.tooltipTracking && point.series && point.parent.getNearestPoint) { + var seriesPoint = point.parent.getNearestPoint(coords.x, coords.y, point.seriesIx); + if (seriesPoint && seriesPoint !== point) { + this._activePoint = seriesPoint; + + if (!seriesPoint.hover(this, e)) { + var tooltipOptions = Object(_common__WEBPACK_IMPORTED_MODULE_20__["deepExtend"])({}, options.tooltip, seriesPoint.options.tooltip); + if (tooltipOptions.visible) { + tooltip.show(seriesPoint); + } + + highlight.show(seriesPoint); + } + } + } + } else { + Object(_common__WEBPACK_IMPORTED_MODULE_20__["unbindEvents"])(document, ( obj = {}, obj[ MOUSEMOVE ] = this._mouseMoveTrackHandler, obj )); + this._unsetActivePoint(); + this._mouseMoveTrackHandler = null; + } + }; + + Chart.prototype._mousemove = function _mousemove (e) { + var coords = this._eventCoordinates(e); + var plotArea = this._plotArea; + + this._trackCrosshairs(coords); + + if (plotArea.hover) { + var overPlotArea = plotArea.backgroundContainsPoint(coords); + if (overPlotArea) { + plotArea.hovered = true; + this._plotArea.hover(this, e); + } else if (plotArea.hovered && !overPlotArea) { + this.trigger(_constants__WEBPACK_IMPORTED_MODULE_22__["PLOT_AREA_LEAVE"]); + plotArea.hovered = false; + } + } + + if (this._sharedTooltip()) { + this._trackSharedTooltip(coords, e); + } + }; + + Chart.prototype._trackCrosshairs = function _trackCrosshairs (coords) { + var crosshairs = this._plotArea.crosshairs; + + for (var i = 0; i < crosshairs.length; i++) { + var current = crosshairs[i]; + + if (current.box.containsPoint(coords)) { + current.showAt(coords); + } else { + current.hide(); + } + } + }; + + Chart.prototype._trackSharedTooltip = function _trackSharedTooltip (coords, e, toggle) { + if (this._suppressHover) { + return; + } + + var ref = this; + var tooltipOptions = ref.options.tooltip; + var plotArea = ref._plotArea; + var categoryAxis = ref._plotArea.categoryAxis; + var tooltip = ref._tooltip; + var highlight = ref._highlight; + + if (plotArea.backgroundContainsPoint(coords)) { + var index = categoryAxis.pointCategoryIndex(coords); + if (index !== this._tooltipCategoryIx || (!this._sharedHighlight && toggle)) { + var points = plotArea.pointsByCategoryIndex(index); + var pointArgs = points.map(function(point) { + return point.eventArgs(e); + }); + var hoverArgs = pointArgs[0] || {}; + hoverArgs.categoryPoints = pointArgs; + + if (points.length > 0 && !this.trigger(_constants__WEBPACK_IMPORTED_MODULE_22__["SERIES_HOVER"], hoverArgs)) { + if (tooltipOptions.visible) { + tooltip.showAt(points, coords); + } + + highlight.show(points); + + this._sharedHighlight = true; + } else { + tooltip.hide(); + } + + this._tooltipCategoryIx = index; + } else if (toggle && this._sharedHighlight) { + highlight.hide(); + tooltip.hide(); + this._sharedHighlight = false; + } + } else if (this._sharedHighlight) { + highlight.hide(); + tooltip.hide(); + this._tooltipCategoryIx = null; + this._sharedHighlight = false; + } + }; + + Chart.prototype.hideElements = function hideElements () { + var plotArea = this._plotArea; + this._mousemove.cancel(); + + plotArea.hideCrosshairs(); + + this._unsetActivePoint(); + }; + + Chart.prototype._unsetActivePoint = function _unsetActivePoint () { + var ref = this; + var tooltip = ref._tooltip; + var highlight = ref._highlight; + + this._activePoint = null; + this._hoveredPoint = null; + + if (tooltip) { + tooltip.hide(); + } + + this._tooltipCategoryIx = null; + this._sharedHighlight = false; + + if (highlight) { + highlight.hide(); + } + }; + + Chart.prototype._deferRedraw = function _deferRedraw () { + this._redraw(); + }; + + Chart.prototype._clearRedrawTimeout = function _clearRedrawTimeout () { + if (this._redrawTimeout) { + clearInterval(this._redrawTimeout); + this._redrawTimeout = null; + } + }; + + Chart.prototype.bindCategories = function bindCategories () { + var this$1 = this; + + var options = this.options; + var definitions = [].concat(options.categoryAxis); + + for (var axisIx = 0; axisIx < definitions.length; axisIx++) { + var axis = definitions[axisIx]; + if (axis.autoBind !== false) { + this$1.bindCategoryAxisFromSeries(axis, axisIx); + } + } + }; + + Chart.prototype.bindCategoryAxisFromSeries = function bindCategoryAxisFromSeries (axis, axisIx) { + var this$1 = this; + + var series = this.options.series; + var seriesLength = series.length; + var uniqueCategories = new _common__WEBPACK_IMPORTED_MODULE_20__["HashMap"]();//perf improvement in case type category with dates + var items = []; + var bindable = false; + var dateAxis; + + for (var seriesIx = 0; seriesIx < seriesLength; seriesIx++) { + var s = series[seriesIx]; + var onAxis = s.categoryAxis === axis.name || (!s.categoryAxis && axisIx === 0); + var data = s.data; + var dataLength = data.length; + var bind = s.categoryField && onAxis; + bindable = bind || bindable; + + if (bind && dataLength > 0) { + dateAxis = Object(_utils_is_date_axis__WEBPACK_IMPORTED_MODULE_16__["default"])(axis, Object(_utils_get_field__WEBPACK_IMPORTED_MODULE_15__["default"])(s.categoryField, data[0])); + + var getFn = dateAxis ? _utils_get_date_field__WEBPACK_IMPORTED_MODULE_17__["default"] : _utils_get_field__WEBPACK_IMPORTED_MODULE_15__["default"]; + + for (var dataIx = 0; dataIx < dataLength; dataIx++) { + var dataRow = data[dataIx]; + var category = getFn(s.categoryField, dataRow, this$1.chartService.intl); + + if (dateAxis || !uniqueCategories.get(category)) { + items.push([ category, dataRow ]); + + if (!dateAxis) { + uniqueCategories.set(category, true); + } + } + } + } + } + + if (items.length > 0) { + if (dateAxis) { + items = uniqueDates(items, function(a, b) { + return Object(_date_utils__WEBPACK_IMPORTED_MODULE_21__["dateComparer"])(a[0], b[0]); + }); + } + + var result = transpose(items); + axis.categories = result[0]; + } else if (bindable) { + axis.categories = []; + } + }; + + Chart.prototype._isBindable = function _isBindable (series) { + var valueFields = _series_binder__WEBPACK_IMPORTED_MODULE_9__["default"].current.valueFields(series); + var result = true; + + for (var i = 0; i < valueFields.length; i++) { + var field = valueFields[i]; + if (field === _common_constants__WEBPACK_IMPORTED_MODULE_19__["VALUE"]) { + field = "field"; + } else { + field = field + "Field"; + } + + if (!Object(_common__WEBPACK_IMPORTED_MODULE_20__["defined"])(series[field])) { + result = false; + break; + } + } + + return result; + }; + + Chart.prototype._noTransitionsRedraw = function _noTransitionsRedraw () { + var options = this.options; + var transitionsState; + + if (options.transitions !== false) { + options.transitions = false; + transitionsState = true; + } + + this._redraw(); + + if (transitionsState) { + options.transitions = true; + } + }; + + Chart.prototype._legendItemHover = function _legendItemHover (seriesIndex, pointIndex) { + var ref = this; + var plotArea = ref._plotArea; + var highlight = ref._highlight; + var currentSeries = (plotArea.srcSeries || plotArea.series)[seriesIndex]; + var items; + + if (Object(_common__WEBPACK_IMPORTED_MODULE_20__["inArray"])(currentSeries.type, [ _constants__WEBPACK_IMPORTED_MODULE_22__["PIE"], _constants__WEBPACK_IMPORTED_MODULE_22__["DONUT"], _constants__WEBPACK_IMPORTED_MODULE_22__["FUNNEL"] ])) { + items = plotArea.findPoint(function(point) { + return point.series.index === seriesIndex && point.index === pointIndex; + }); + } else { + items = plotArea.pointsBySeriesIndex(seriesIndex); + } + + highlight.show(items); + }; + + Chart.prototype._shouldAttachMouseMove = function _shouldAttachMouseMove () { + return this._plotArea.crosshairs.length || (this._tooltip && this._sharedTooltip()) || this.requiresHandlers([ _constants__WEBPACK_IMPORTED_MODULE_22__["PLOT_AREA_HOVER"], _constants__WEBPACK_IMPORTED_MODULE_22__["PLOT_AREA_LEAVE"] ]); + }; + + Chart.prototype.updateMouseMoveHandler = function updateMouseMoveHandler () { + var obj, obj$1; + + Object(_common__WEBPACK_IMPORTED_MODULE_20__["unbindEvents"])(this.element, ( obj = {}, obj[ MOUSEMOVE ] = this._mousemove, obj )); + + if (this._shouldAttachMouseMove()) { + Object(_common__WEBPACK_IMPORTED_MODULE_20__["bindEvents"])(this.element, ( obj$1 = {}, obj$1[ MOUSEMOVE ] = this._mousemove, obj$1 )); + } + }; + + Chart.prototype.applyOptions = function applyOptions (options, theme) { + clearMissingValues(this._originalOptions, options); + this._originalOptions = Object(_common__WEBPACK_IMPORTED_MODULE_20__["deepExtend"])(this._originalOptions, options); + this.options = Object(_common__WEBPACK_IMPORTED_MODULE_20__["deepExtend"])({}, this._originalOptions); + + if (theme) { + this._theme = theme; + this.chartService.theme = theme; + } + this._initTheme(this.options, this._theme); + + this._toggleDragZoomEvents(); + }; + + Chart.prototype.setOptions = function setOptions (options, theme) { + this.applyOptions(options, theme); + this.bindCategories(); + this.redraw(); + this.updateMouseMoveHandler(); + }; + + Chart.prototype.setDirection = function setDirection (rtl) { + this.chartService.rtl = Boolean(rtl); + if (this.surface && this.surface.type === 'svg') { + this._destroySurface(); + } + }; + + Chart.prototype.setIntlService = function setIntlService (intl) { + this.chartService.intl = intl; + }; + + Chart.prototype.noTransitionsRedraw = function noTransitionsRedraw () { + this._noTransitionsRedraw(); + }; + + Chart.prototype.destroy = function destroy () { + var obj, obj$1; + + this._destroyed = true; + + Object(_common__WEBPACK_IMPORTED_MODULE_20__["unbindEvents"])(this.element, ( obj = {}, obj[ CONTEXTMENU ] = this._clickHandler, obj[ _constants__WEBPACK_IMPORTED_MODULE_22__["MOUSEWHEEL"] ] = this._mousewheelHandler, obj[ MOUSEMOVE ] = this._mousemove, obj[ MOUSELEAVE ] = this._mouseleaveHandler, obj )); + + if (this.domEvents) { + this.domEvents.destroy(); + delete this.domEvents; + } + + if (this._mouseMoveTrackHandler) { + Object(_common__WEBPACK_IMPORTED_MODULE_20__["unbindEvents"])(document, ( obj$1 = {}, obj$1[ MOUSEMOVE ] = this._mouseMoveTrackHandler, obj$1 )); + } + + this._destroyView(); + + this._destroySurface(); + + this._clearRedrawTimeout(); + }; + + Chart.prototype._destroySurface = function _destroySurface () { + var surface = this.surface; + if (surface) { + surface.unbind("mouseenter", this._surfaceMouseenterHandler); + surface.unbind("mouseleave", this._surfaceMouseleaveHandler); + surface.destroy(); + + this.surface = null; + } + }; + + Chart.prototype._destroySelections = function _destroySelections () { + var selections = this._selections; + + if (selections) { + while (selections.length > 0) { + selections.shift().destroy(); + } + } + }; + + Chart.prototype._destroyView = function _destroyView () { + var model = this._model; + + if (model) { + model.destroy(); + this._model = null; + } + + this._unsetActivePoint(); + + this._destroySelections(); + + if (this._tooltip) { + this._tooltip.destroy(); + } + + if (this._highlight) { + this._highlight.destroy(); + } + + if (this._zoomSelection) { + this._zoomSelection.destroy(); + delete this._zoomSelection; + } + + if (this._pannable) { + this._pannable.destroy(); + delete this._pannable; + } + + if (this._mousewheelZoom) { + this._mousewheelZoom.destroy(); + delete this._mousewheelZoom; + } + }; + + return Chart; +}(_common__WEBPACK_IMPORTED_MODULE_20__["Class"])); + +function resolveAxisAliases(options) { + var aliases = AXIS_NAMES; + + for (var idx = 0; idx < aliases.length; idx++) { + var alias = aliases[idx] + "Axes"; + if (options[alias]) { + options[aliases[idx] + "Axis"] = options[alias]; + delete options[alias]; + } + } +} + +function pointByCategoryName(points, name) { + if (points) { + for (var idx = 0; idx < points.length; idx++) { + if (points[idx].category === name) { + return [ points[idx] ]; + } + } + } +} + +function applyAxisDefaults(options, themeOptions) { + var themeAxisDefaults = ((themeOptions || {}).axisDefaults) || {}; + var axisName, axisDefaults, axes; + + function mapAxisOptions(axisOptions) { + var axisColor = (axisOptions || {}).color || axisDefaults.color; + var result = Object(_common__WEBPACK_IMPORTED_MODULE_20__["deepExtend"])({}, + themeAxisDefaults, + themeAxisDefaults[axisName], + axisDefaults, + axisDefaults[axisName], { + line: { color: axisColor }, + labels: { color: axisColor }, + title: { color: axisColor } + }, + axisOptions + ); + + delete result[axisName]; + + return result; + } + + for (var idx = 0; idx < AXIS_NAMES.length; idx++) { + axisName = AXIS_NAMES[idx] + "Axis"; + axisDefaults = options.axisDefaults || {}; + axes = [].concat(options[axisName]); + + axes = axes.map(mapAxisOptions); + + options[axisName] = axes.length > 1 ? axes : axes[0]; + } +} + +function applySeriesDefaults(options, themeOptions) { + var series = options.series; + var seriesLength = series.length; + var seriesDefaults = options.seriesDefaults; + var commonDefaults = Object(_common__WEBPACK_IMPORTED_MODULE_20__["deepExtend"])({}, options.seriesDefaults); + var themeSeriesDefaults = themeOptions ? Object(_common__WEBPACK_IMPORTED_MODULE_20__["deepExtend"])({}, themeOptions.seriesDefaults) : {}; + var commonThemeDefaults = Object(_common__WEBPACK_IMPORTED_MODULE_20__["deepExtend"])({}, themeSeriesDefaults); + + cleanupNestedSeriesDefaults(commonDefaults); + cleanupNestedSeriesDefaults(commonThemeDefaults); + + for (var i = 0; i < seriesLength; i++) { + var seriesType = series[i].type || options.seriesDefaults.type; + + var baseOptions = Object(_common__WEBPACK_IMPORTED_MODULE_20__["deepExtend"])( + { data: [] }, + commonThemeDefaults, + themeSeriesDefaults[seriesType], + { tooltip: options.tooltip }, + commonDefaults, + seriesDefaults[seriesType] + ); + + series[i]._defaults = baseOptions; + series[i] = Object(_common__WEBPACK_IMPORTED_MODULE_20__["deepExtend"])({}, baseOptions, series[i]); + series[i].data = series[i].data || []; + } +} + +function cleanupNestedSeriesDefaults(seriesDefaults) { + delete seriesDefaults.bar; + delete seriesDefaults.column; + delete seriesDefaults.rangeColumn; + delete seriesDefaults.line; + delete seriesDefaults.verticalLine; + delete seriesDefaults.pie; + delete seriesDefaults.donut; + delete seriesDefaults.area; + delete seriesDefaults.verticalArea; + delete seriesDefaults.scatter; + delete seriesDefaults.scatterLine; + delete seriesDefaults.bubble; + delete seriesDefaults.candlestick; + delete seriesDefaults.ohlc; + delete seriesDefaults.boxPlot; + delete seriesDefaults.bullet; + delete seriesDefaults.verticalBullet; + delete seriesDefaults.polarArea; + delete seriesDefaults.polarLine; + delete seriesDefaults.radarArea; + delete seriesDefaults.radarLine; + delete seriesDefaults.waterfall; +} + + +function axisRanges(axes) { + var ranges = {}; + + for (var i = 0; i < axes.length; i++) { + var axis = axes[i]; + var axisName = axis.options.name; + if (axisName) { + ranges[axisName] = axis.range(); + } + } + + return ranges; +} + +function sortDates(dates, comparer) { + if ( comparer === void 0 ) comparer = _date_utils__WEBPACK_IMPORTED_MODULE_21__["dateComparer"]; + + for (var i = 1, length = dates.length; i < length; i++) { + if (comparer(dates[i], dates[i - 1]) < 0) { + dates.sort(comparer); + break; + } + } + + return dates; +} + +function uniqueDates(srcDates, comparer) { + if ( comparer === void 0 ) comparer = _date_utils__WEBPACK_IMPORTED_MODULE_21__["dateComparer"]; + + var dates = sortDates(srcDates, comparer); + var length = dates.length; + var result = length > 0 ? [ dates[0] ] : []; + + for (var i = 1; i < length; i++) { + if (comparer(dates[i], Object(_common__WEBPACK_IMPORTED_MODULE_20__["last"])(result)) !== 0) { + result.push(dates[i]); + } + } + + return result; +} + +function transpose(rows) { + var rowCount = rows.length; + var result = []; + + for (var rowIx = 0; rowIx < rowCount; rowIx++) { + var row = rows[rowIx]; + var colCount = row.length; + + for (var colIx = 0; colIx < colCount; colIx++) { + result[colIx] = result[colIx] || []; + result[colIx].push(row[colIx]); + } + } + + return result; +} + +var DATA_FIELDS = [ 'data', 'categories' ]; + +function clearMissingValues(originalOptions, options) { + for (var field in options) { + if (!Object(_common__WEBPACK_IMPORTED_MODULE_20__["inArray"])(field, DATA_FIELDS) && options.hasOwnProperty(field)) { + var fieldValue = options[field]; + var originalValue = originalOptions[field]; + if (Object(_common__WEBPACK_IMPORTED_MODULE_20__["defined"])(originalValue)) { + var nullValue = fieldValue === null; + if ((nullValue || !Object(_common__WEBPACK_IMPORTED_MODULE_20__["defined"])(fieldValue))) { + delete originalOptions[field]; + if (nullValue) { + delete options[field]; + } + } else if (originalValue && Object(_common__WEBPACK_IMPORTED_MODULE_20__["isObject"])(fieldValue)) { + if (Object(_common__WEBPACK_IMPORTED_MODULE_20__["isObject"])(originalValue)) { + clearMissingValues(originalValue, fieldValue); + } + } + } + } + } +} + +function triggerPaneRender(panes) { + for (var idx = 0; idx < panes.length; idx++) { + panes[idx].notifyRender(); + } +} + +Object(_common__WEBPACK_IMPORTED_MODULE_20__["setDefaultOptions"])(Chart, { + renderAs: "", + chartArea: {}, + legend: { + visible: true, + labels: {} + }, + categoryAxis: {}, + seriesDefaults: { + type: _constants__WEBPACK_IMPORTED_MODULE_22__["COLUMN"], + data: [], + highlight: { + visible: true + }, + labels: {}, + negativeValues: { + visible: false + } + }, + series: [], + seriesColors: null, + tooltip: { + visible: false + }, + transitions: true, + valueAxis: {}, + plotArea: {}, + title: {}, + xAxis: {}, + yAxis: {}, + panes: [ {} ], + pannable: false, + zoomable: false +}); + + __webpack_exports__["default"] = (Chart); + + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/constants.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "INITIAL_ANIMATION_DURATION", function() { return INITIAL_ANIMATION_DURATION; }); + __webpack_require__.d(__webpack_exports__, "FADEIN", function() { return FADEIN; }); + __webpack_require__.d(__webpack_exports__, "LEGEND_ITEM_CLICK", function() { return LEGEND_ITEM_CLICK; }); + __webpack_require__.d(__webpack_exports__, "LEGEND_ITEM_HOVER", function() { return LEGEND_ITEM_HOVER; }); + __webpack_require__.d(__webpack_exports__, "LEGEND_ITEM_LEAVE", function() { return LEGEND_ITEM_LEAVE; }); + __webpack_require__.d(__webpack_exports__, "SERIES_CLICK", function() { return SERIES_CLICK; }); + __webpack_require__.d(__webpack_exports__, "SERIES_HOVER", function() { return SERIES_HOVER; }); + __webpack_require__.d(__webpack_exports__, "SERIES_OVER", function() { return SERIES_OVER; }); + __webpack_require__.d(__webpack_exports__, "SERIES_LEAVE", function() { return SERIES_LEAVE; }); + __webpack_require__.d(__webpack_exports__, "GLASS", function() { return GLASS; }); + __webpack_require__.d(__webpack_exports__, "BORDER_BRIGHTNESS", function() { return BORDER_BRIGHTNESS; }); + __webpack_require__.d(__webpack_exports__, "TOOLTIP_OFFSET", function() { return TOOLTIP_OFFSET; }); + __webpack_require__.d(__webpack_exports__, "START_SCALE", function() { return START_SCALE; }); + __webpack_require__.d(__webpack_exports__, "ERROR_LOW_FIELD", function() { return ERROR_LOW_FIELD; }); + __webpack_require__.d(__webpack_exports__, "ERROR_HIGH_FIELD", function() { return ERROR_HIGH_FIELD; }); + __webpack_require__.d(__webpack_exports__, "X_ERROR_LOW_FIELD", function() { return X_ERROR_LOW_FIELD; }); + __webpack_require__.d(__webpack_exports__, "X_ERROR_HIGH_FIELD", function() { return X_ERROR_HIGH_FIELD; }); + __webpack_require__.d(__webpack_exports__, "Y_ERROR_LOW_FIELD", function() { return Y_ERROR_LOW_FIELD; }); + __webpack_require__.d(__webpack_exports__, "Y_ERROR_HIGH_FIELD", function() { return Y_ERROR_HIGH_FIELD; }); + __webpack_require__.d(__webpack_exports__, "LINE_MARKER_SIZE", function() { return LINE_MARKER_SIZE; }); + __webpack_require__.d(__webpack_exports__, "INTERPOLATE", function() { return INTERPOLATE; }); + __webpack_require__.d(__webpack_exports__, "ZERO", function() { return ZERO; }); + __webpack_require__.d(__webpack_exports__, "SMOOTH", function() { return SMOOTH; }); + __webpack_require__.d(__webpack_exports__, "STEP", function() { return STEP; }); + __webpack_require__.d(__webpack_exports__, "CATEGORY", function() { return CATEGORY; }); + __webpack_require__.d(__webpack_exports__, "FUNNEL", function() { return FUNNEL; }); + __webpack_require__.d(__webpack_exports__, "BAR", function() { return BAR; }); + __webpack_require__.d(__webpack_exports__, "CANDLESTICK", function() { return CANDLESTICK; }); + __webpack_require__.d(__webpack_exports__, "PIE", function() { return PIE; }); + __webpack_require__.d(__webpack_exports__, "COLUMN", function() { return COLUMN; }); + __webpack_require__.d(__webpack_exports__, "AREA", function() { return AREA; }); + __webpack_require__.d(__webpack_exports__, "VERTICAL_BULLET", function() { return VERTICAL_BULLET; }); + __webpack_require__.d(__webpack_exports__, "BOX_PLOT", function() { return BOX_PLOT; }); + __webpack_require__.d(__webpack_exports__, "OHLC", function() { return OHLC; }); + __webpack_require__.d(__webpack_exports__, "WATERFALL", function() { return WATERFALL; }); + __webpack_require__.d(__webpack_exports__, "LINE", function() { return LINE; }); + __webpack_require__.d(__webpack_exports__, "BULLET", function() { return BULLET; }); + __webpack_require__.d(__webpack_exports__, "VERTICAL_LINE", function() { return VERTICAL_LINE; }); + __webpack_require__.d(__webpack_exports__, "VERTICAL_AREA", function() { return VERTICAL_AREA; }); + __webpack_require__.d(__webpack_exports__, "RANGE_AREA", function() { return RANGE_AREA; }); + __webpack_require__.d(__webpack_exports__, "VERTICAL_RANGE_AREA", function() { return VERTICAL_RANGE_AREA; }); + __webpack_require__.d(__webpack_exports__, "RANGE_COLUMN", function() { return RANGE_COLUMN; }); + __webpack_require__.d(__webpack_exports__, "VERTICAL_BOX_PLOT", function() { return VERTICAL_BOX_PLOT; }); + __webpack_require__.d(__webpack_exports__, "RANGE_BAR", function() { return RANGE_BAR; }); + __webpack_require__.d(__webpack_exports__, "HORIZONTAL_WATERFALL", function() { return HORIZONTAL_WATERFALL; }); + __webpack_require__.d(__webpack_exports__, "SCATTER", function() { return SCATTER; }); + __webpack_require__.d(__webpack_exports__, "SCATTER_LINE", function() { return SCATTER_LINE; }); + __webpack_require__.d(__webpack_exports__, "BUBBLE", function() { return BUBBLE; }); + __webpack_require__.d(__webpack_exports__, "RADAR_AREA", function() { return RADAR_AREA; }); + __webpack_require__.d(__webpack_exports__, "RADAR_LINE", function() { return RADAR_LINE; }); + __webpack_require__.d(__webpack_exports__, "RADAR_COLUMN", function() { return RADAR_COLUMN; }); + __webpack_require__.d(__webpack_exports__, "POLAR_LINE", function() { return POLAR_LINE; }); + __webpack_require__.d(__webpack_exports__, "POLAR_AREA", function() { return POLAR_AREA; }); + __webpack_require__.d(__webpack_exports__, "POLAR_SCATTER", function() { return POLAR_SCATTER; }); + __webpack_require__.d(__webpack_exports__, "RENDER", function() { return RENDER; }); + __webpack_require__.d(__webpack_exports__, "PLOT_AREA_CLICK", function() { return PLOT_AREA_CLICK; }); + __webpack_require__.d(__webpack_exports__, "PLOT_AREA_HOVER", function() { return PLOT_AREA_HOVER; }); + __webpack_require__.d(__webpack_exports__, "PLOT_AREA_LEAVE", function() { return PLOT_AREA_LEAVE; }); + __webpack_require__.d(__webpack_exports__, "LOGARITHMIC", function() { return LOGARITHMIC; }); + __webpack_require__.d(__webpack_exports__, "DRAG", function() { return DRAG; }); + __webpack_require__.d(__webpack_exports__, "DRAG_START", function() { return DRAG_START; }); + __webpack_require__.d(__webpack_exports__, "DRAG_END", function() { return DRAG_END; }); + __webpack_require__.d(__webpack_exports__, "ZOOM_START", function() { return ZOOM_START; }); + __webpack_require__.d(__webpack_exports__, "ZOOM", function() { return ZOOM; }); + __webpack_require__.d(__webpack_exports__, "ZOOM_END", function() { return ZOOM_END; }); + __webpack_require__.d(__webpack_exports__, "SELECT_START", function() { return SELECT_START; }); + __webpack_require__.d(__webpack_exports__, "SELECT", function() { return SELECT; }); + __webpack_require__.d(__webpack_exports__, "SELECT_END", function() { return SELECT_END; }); + __webpack_require__.d(__webpack_exports__, "PANE_RENDER", function() { return PANE_RENDER; }); + __webpack_require__.d(__webpack_exports__, "GAP", function() { return GAP; }); + __webpack_require__.d(__webpack_exports__, "DONUT", function() { return DONUT; }); + __webpack_require__.d(__webpack_exports__, "INSIDE_END", function() { return INSIDE_END; }); + __webpack_require__.d(__webpack_exports__, "INSIDE_BASE", function() { return INSIDE_BASE; }); + __webpack_require__.d(__webpack_exports__, "OUTSIDE_END", function() { return OUTSIDE_END; }); + __webpack_require__.d(__webpack_exports__, "MOUSEWHEEL", function() { return MOUSEWHEEL; }); + __webpack_require__.d(__webpack_exports__, "MOUSEWHEEL_DELAY", function() { return MOUSEWHEEL_DELAY; }); + __webpack_require__.d(__webpack_exports__, "SHOW_TOOLTIP", function() { return SHOW_TOOLTIP; }); + __webpack_require__.d(__webpack_exports__, "HIDE_TOOLTIP", function() { return HIDE_TOOLTIP; }); + __webpack_require__.d(__webpack_exports__, "EQUALLY_SPACED_SERIES", function() { return EQUALLY_SPACED_SERIES; }); + __webpack_require__.d(__webpack_exports__, "ABOVE", function() { return ABOVE; }); + __webpack_require__.d(__webpack_exports__, "BELOW", function() { return BELOW; }); + var _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/main.js"); + + +var browser = _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["support"].browser || {}; + +var INITIAL_ANIMATION_DURATION = 600; +var FADEIN = "fadeIn"; + +var GLASS = "glass"; +var BORDER_BRIGHTNESS = 0.8; +var TOOLTIP_OFFSET = 5; +var START_SCALE = browser.msie ? 0.001 : 0; +var ERROR_LOW_FIELD = "errorLow"; +var ERROR_HIGH_FIELD = "errorHigh"; +var X_ERROR_LOW_FIELD = "xErrorLow"; +var X_ERROR_HIGH_FIELD = "xErrorHigh"; +var Y_ERROR_LOW_FIELD = "yErrorLow"; +var Y_ERROR_HIGH_FIELD = "yErrorHigh"; +var LINE_MARKER_SIZE = 8; +var ZERO = "zero"; +var INTERPOLATE = "interpolate"; +var GAP = "gap"; +var ABOVE = "above"; +var BELOW = "below"; + +var SMOOTH = "smooth"; +var STEP = "step"; + +var AREA = "area"; +var BAR = "bar"; +var BOX_PLOT = "boxPlot"; +var BUBBLE = "bubble"; +var BULLET = "bullet"; +var CANDLESTICK = "candlestick"; +var COLUMN = "column"; +var DONUT = "donut"; +var FUNNEL = "funnel"; +var HORIZONTAL_WATERFALL = "horizontalWaterfall"; +var LINE = "line"; +var OHLC = "ohlc"; +var PIE = "pie"; +var POLAR_AREA = "polarArea"; +var POLAR_LINE = "polarLine"; +var POLAR_SCATTER = "polarScatter"; +var RADAR_AREA = "radarArea"; +var RADAR_COLUMN = "radarColumn"; +var RADAR_LINE = "radarLine"; +var RANGE_AREA = "rangeArea"; +var RANGE_BAR = "rangeBar"; +var RANGE_COLUMN = "rangeColumn"; +var SCATTER = "scatter"; +var SCATTER_LINE = "scatterLine"; +var VERTICAL_AREA = "verticalArea"; +var VERTICAL_BOX_PLOT = "verticalBoxPlot"; +var VERTICAL_BULLET = "verticalBullet"; +var VERTICAL_LINE = "verticalLine"; +var VERTICAL_RANGE_AREA = "verticalRangeArea"; +var WATERFALL = "waterfall"; +var EQUALLY_SPACED_SERIES = [ + BAR, COLUMN, OHLC, CANDLESTICK, BOX_PLOT, VERTICAL_BOX_PLOT, + BULLET, RANGE_COLUMN, RANGE_BAR, WATERFALL, HORIZONTAL_WATERFALL +]; + +var LEGEND_ITEM_CLICK = "legendItemClick"; +var LEGEND_ITEM_HOVER = "legendItemHover"; +var LEGEND_ITEM_LEAVE = "legendItemLeave"; +var SERIES_CLICK = "seriesClick"; +var SERIES_HOVER = "seriesHover"; +var SERIES_OVER = "seriesOver"; +var SERIES_LEAVE = "seriesLeave"; +var PLOT_AREA_CLICK = "plotAreaClick"; +var PLOT_AREA_HOVER = "plotAreaHover"; +var PLOT_AREA_LEAVE = "plotAreaLeave"; +var DRAG = "drag"; +var DRAG_END = "dragEnd"; +var DRAG_START = "dragStart"; +var ZOOM_START = "zoomStart"; +var ZOOM = "zoom"; +var ZOOM_END = "zoomEnd"; +var SELECT_START = "selectStart"; +var SELECT = "select"; +var SELECT_END = "selectEnd"; +var RENDER = "render"; +var SHOW_TOOLTIP = "showTooltip"; +var HIDE_TOOLTIP = "hideTooltip"; +var PANE_RENDER = "paneRender"; + +var LOGARITHMIC = "log"; +var CATEGORY = "category"; + +var INSIDE_END = "insideEnd"; +var INSIDE_BASE = "insideBase"; +var OUTSIDE_END = "outsideEnd"; + +var MOUSEWHEEL = "DOMMouseScroll mousewheel"; +var MOUSEWHEEL_DELAY = 150; + + + + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/crosshair/crosshair-tooltip.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _tooltip_base_tooltip__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/tooltip/base-tooltip.js"); + var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/constants.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + + + +var CrosshairTooltip = (function (BaseTooltip) { + function CrosshairTooltip(chartService, crosshair, options) { + BaseTooltip.call(this, chartService, options); + + this.crosshair = crosshair; + this.formatService = chartService.format; + this.initAxisName(); + } + + if ( BaseTooltip ) CrosshairTooltip.__proto__ = BaseTooltip; + CrosshairTooltip.prototype = Object.create( BaseTooltip && BaseTooltip.prototype ); + CrosshairTooltip.prototype.constructor = CrosshairTooltip; + + CrosshairTooltip.prototype.initAxisName = function initAxisName () { + var axis = this.crosshair.axis; + var plotArea = axis.plotArea; + var name; + if (plotArea.categoryAxis) { + name = axis.getCategory ? "categoryAxis" : "valueAxis"; + } else { + name = axis.options.vertical ? "yAxis" : "xAxis"; + } + this.axisName = name; + }; + + CrosshairTooltip.prototype.showAt = function showAt (point) { + var ref = this; + var axis = ref.crosshair.axis; + var options = ref.options; + var value = axis[options.stickyMode ? "getCategory" : "getValue"](point); + var formattedValue = value; + + if (options.format) { + formattedValue = this.formatService.auto(options.format, value); + } else if (axis.options.type === _common_constants__WEBPACK_IMPORTED_MODULE_2__["DATE"]) { + formattedValue = this.formatService.auto(axis.options.labels.dateFormats[axis.options.baseUnit], value); + } + + this.show({ + point: point, + anchor: this.getAnchor(), + crosshair: this.crosshair, + value: formattedValue, + axisName: this.axisName, + axisIndex: this.crosshair.axis.axisIndex + }, this.options); + }; + + CrosshairTooltip.prototype.hide = function hide () { + this.chartService.notify(_constants__WEBPACK_IMPORTED_MODULE_1__["HIDE_TOOLTIP"], { + crosshair: this.crosshair, + axisName: this.axisName, + axisIndex: this.crosshair.axis.axisIndex + }); + }; + + CrosshairTooltip.prototype.getAnchor = function getAnchor () { + var ref = this; + var crosshair = ref.crosshair; + var ref_options = ref.options; + var position = ref_options.position; + var padding = ref_options.padding; + var vertical = !crosshair.axis.options.vertical; + var lineBox = crosshair.line.bbox(); + var horizontalAlign, verticalAlign, point; + + if (vertical) { + horizontalAlign = _common_constants__WEBPACK_IMPORTED_MODULE_2__["CENTER"]; + if (position === _common_constants__WEBPACK_IMPORTED_MODULE_2__["BOTTOM"]) { + verticalAlign = _common_constants__WEBPACK_IMPORTED_MODULE_2__["TOP"]; + point = lineBox.bottomLeft().translate(0, padding); + } else { + verticalAlign = _common_constants__WEBPACK_IMPORTED_MODULE_2__["BOTTOM"]; + point = lineBox.topLeft().translate(0, -padding); + } + } else { + verticalAlign = _common_constants__WEBPACK_IMPORTED_MODULE_2__["CENTER"]; + if (position === _common_constants__WEBPACK_IMPORTED_MODULE_2__["LEFT"]) { + horizontalAlign = _common_constants__WEBPACK_IMPORTED_MODULE_2__["RIGHT"]; + point = lineBox.topLeft().translate(-padding, 0); + } else { + horizontalAlign = _common_constants__WEBPACK_IMPORTED_MODULE_2__["LEFT"]; + point = lineBox.topRight().translate(padding, 0); + } + } + + return { + point: point, + align: { + horizontal: horizontalAlign, + vertical: verticalAlign + } + }; + }; + + return CrosshairTooltip; +}(_tooltip_base_tooltip__WEBPACK_IMPORTED_MODULE_0__["default"])); + +Object(_common__WEBPACK_IMPORTED_MODULE_3__["setDefaultOptions"])(CrosshairTooltip, { + padding: 10 +}); + + __webpack_exports__["default"] = (CrosshairTooltip); + + + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/crosshair/crosshair.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/main.js"); + var _core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core.js"); + var _crosshair_tooltip__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/crosshair/crosshair-tooltip.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + + + + + +var Crosshair = (function (ChartElement) { + function Crosshair(chartService, axis, options) { + ChartElement.call(this, options); + + this.axis = axis; + this.stickyMode = axis instanceof _core__WEBPACK_IMPORTED_MODULE_1__["CategoryAxis"]; + + var tooltipOptions = this.options.tooltip; + + if (tooltipOptions.visible) { + this.tooltip = new _crosshair_tooltip__WEBPACK_IMPORTED_MODULE_2__["default"](chartService, this, + Object(_common__WEBPACK_IMPORTED_MODULE_4__["deepExtend"])({}, tooltipOptions, { stickyMode: this.stickyMode }) + ); + } + } + + if ( ChartElement ) Crosshair.__proto__ = ChartElement; + Crosshair.prototype = Object.create( ChartElement && ChartElement.prototype ); + Crosshair.prototype.constructor = Crosshair; + + Crosshair.prototype.showAt = function showAt (point) { + this.point = point; + this.moveLine(); + this.line.visible(true); + + if (this.tooltip) { + this.tooltip.showAt(point); + } + }; + + Crosshair.prototype.hide = function hide () { + this.line.visible(false); + + if (this.tooltip) { + this.tooltip.hide(); + } + }; + + Crosshair.prototype.moveLine = function moveLine () { + var ref = this; + var axis = ref.axis; + var point = ref.point; + var vertical = axis.options.vertical; + var box = this.getBox(); + var dim = vertical ? _common_constants__WEBPACK_IMPORTED_MODULE_3__["Y"] : _common_constants__WEBPACK_IMPORTED_MODULE_3__["X"]; + var lineStart = new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].Point(box.x1, box.y1); + var lineEnd; + + if (vertical) { + lineEnd = new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].Point(box.x2, box.y1); + } else { + lineEnd = new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].Point(box.x1, box.y2); + } + + if (point) { + if (this.stickyMode) { + var slot = axis.getSlot(axis.pointCategoryIndex(point)); + lineStart[dim] = lineEnd[dim] = slot.center()[dim]; + } else { + lineStart[dim] = lineEnd[dim] = point[dim]; + } + } + + this.box = box; + + this.line.moveTo(lineStart).lineTo(lineEnd); + }; + + Crosshair.prototype.getBox = function getBox () { + var axis = this.axis; + var axes = axis.pane.axes; + var length = axes.length; + var vertical = axis.options.vertical; + var box = axis.lineBox().clone(); + var dim = vertical ? _common_constants__WEBPACK_IMPORTED_MODULE_3__["X"] : _common_constants__WEBPACK_IMPORTED_MODULE_3__["Y"]; + var axisLineBox; + + for (var i = 0; i < length; i++) { + var currentAxis = axes[i]; + if (currentAxis.options.vertical !== vertical) { + if (!axisLineBox) { + axisLineBox = currentAxis.lineBox().clone(); + } else { + axisLineBox.wrap(currentAxis.lineBox()); + } + } + } + + box[dim + 1] = axisLineBox[dim + 1]; + box[dim + 2] = axisLineBox[dim + 2]; + + return box; + }; + + Crosshair.prototype.createVisual = function createVisual () { + ChartElement.prototype.createVisual.call(this); + + var options = this.options; + this.line = new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Path({ + stroke: { + color: options.color, + width: options.width, + opacity: options.opacity, + dashType: options.dashType + }, + visible: false + }); + + this.moveLine(); + this.visual.append(this.line); + }; + + Crosshair.prototype.destroy = function destroy () { + if (this.tooltip) { + this.tooltip.destroy(); + } + + ChartElement.prototype.destroy.call(this); + }; + + return Crosshair; +}(_core__WEBPACK_IMPORTED_MODULE_1__["ChartElement"])); + +Object(_common__WEBPACK_IMPORTED_MODULE_4__["setDefaultOptions"])(Crosshair, { + color: _common_constants__WEBPACK_IMPORTED_MODULE_3__["BLACK"], + width: 2, + zIndex: -1, + tooltip: { + visible: false + } +}); + + __webpack_exports__["default"] = (Crosshair); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/donut-chart/donut-chart.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _pie_chart_pie_chart__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/pie-chart/pie-chart.js"); + var _donut_segment__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/donut-chart/donut-segment.js"); + var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + + + + +var DONUT_SECTOR_ANIM_DELAY = 50; + +var DonutChart = (function (PieChart) { + function DonutChart () { + PieChart.apply(this, arguments); + } + + if ( PieChart ) DonutChart.__proto__ = PieChart; + DonutChart.prototype = Object.create( PieChart && PieChart.prototype ); + DonutChart.prototype.constructor = DonutChart; + + DonutChart.prototype.addValue = function addValue (value, sector, fields) { + var segmentOptions = Object(_common__WEBPACK_IMPORTED_MODULE_3__["deepExtend"])({}, fields.series, { index: fields.index }); + this.evalSegmentOptions(segmentOptions, value, fields); + + this.createLegendItem(value, segmentOptions, fields); + + if (!value || fields.visible === false) { + return; + } + + var segment = new _donut_segment__WEBPACK_IMPORTED_MODULE_1__["default"](value, sector, segmentOptions); + + Object.assign(segment, fields); + this.append(segment); + this.points.push(segment); + }; + + DonutChart.prototype.reflow = function reflow (targetBox) { + var this$1 = this; + + var options = this.options; + var box = targetBox.clone(); + var space = 5; + var minWidth = Math.min(box.width(), box.height()); + var halfMinWidth = minWidth / 2; + var defaultPadding = minWidth - minWidth * 0.85; + var series = options.series; + var seriesCount = series.length; + + var padding = Object(_common__WEBPACK_IMPORTED_MODULE_3__["valueOrDefault"])(options.padding, defaultPadding); + padding = padding > halfMinWidth - space ? halfMinWidth - space : padding; + + var totalSize = halfMinWidth - padding; + var seriesWithoutSize = 0; + var holeSize; + + for (var i = 0; i < seriesCount; i++) { + var currentSeries = series[i]; + if (i === 0) { + if (Object(_common__WEBPACK_IMPORTED_MODULE_3__["defined"])(currentSeries.holeSize)) { + holeSize = currentSeries.holeSize; + totalSize -= currentSeries.holeSize; + } + } + + if (Object(_common__WEBPACK_IMPORTED_MODULE_3__["defined"])(currentSeries.size)) { + totalSize -= currentSeries.size; + } else { + seriesWithoutSize++; + } + + if (Object(_common__WEBPACK_IMPORTED_MODULE_3__["defined"])(currentSeries.margin) && i !== seriesCount - 1) { + totalSize -= currentSeries.margin; + } + } + + if (!Object(_common__WEBPACK_IMPORTED_MODULE_3__["defined"])(holeSize)) { + var currentSize = (halfMinWidth - padding) / (seriesCount + 0.75); + holeSize = currentSize * 0.75; + totalSize -= holeSize; + } + + var innerRadius = holeSize; + var margin = 0; + var size, radius; + + this.seriesConfigs = []; + + for (var i$1 = 0; i$1 < seriesCount; i$1++) { + var currentSeries$1 = series[i$1]; + size = Object(_common__WEBPACK_IMPORTED_MODULE_3__["valueOrDefault"])(currentSeries$1.size, totalSize / seriesWithoutSize); + innerRadius += margin; + radius = innerRadius + size; + this$1.seriesConfigs.push({ innerRadius: innerRadius, radius: radius }); + margin = currentSeries$1.margin || 0; + innerRadius = radius; + } + + PieChart.prototype.reflow.call(this, targetBox); + }; + + DonutChart.prototype.animationDelay = function animationDelay (categoryIndex, seriesIndex, seriesCount) { + return categoryIndex * DONUT_SECTOR_ANIM_DELAY + + (_constants__WEBPACK_IMPORTED_MODULE_2__["INITIAL_ANIMATION_DURATION"] * (seriesIndex + 1) / (seriesCount + 1)); + }; + + return DonutChart; +}(_pie_chart_pie_chart__WEBPACK_IMPORTED_MODULE_0__["default"])); + + +Object(_common__WEBPACK_IMPORTED_MODULE_3__["setDefaultOptions"])(DonutChart, { + startAngle: 90, + connectors: { + width: 2, + color: "#939393", + padding: 8 + } +}); + + __webpack_exports__["default"] = (DonutChart); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/donut-chart/donut-segment.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _pie_chart_pie_segment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/pie-chart/pie-segment.js"); + var _mixins_point_events_mixin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/mixins/point-events-mixin.js"); + var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/constants.js"); + var _core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + + + + + + + +var DonutSegment = (function (PieSegment) { + function DonutSegment () { + PieSegment.apply(this, arguments); + } + + if ( PieSegment ) DonutSegment.__proto__ = PieSegment; + DonutSegment.prototype = Object.create( PieSegment && PieSegment.prototype ); + DonutSegment.prototype.constructor = DonutSegment; + + DonutSegment.prototype.reflowLabel = function reflowLabel () { + var ref = this; + var labelsOptions = ref.options.labels; + var label = ref.label; + var sector = this.sector.clone(); + var angle = sector.middle(); + + if (label) { + var labelHeight = label.box.height(); + if (labelsOptions.position === _common_constants__WEBPACK_IMPORTED_MODULE_4__["CENTER"]) { + sector.radius -= (sector.radius - sector.innerRadius) / 2; + + var lp = sector.point(angle); + + label.reflow(new _core__WEBPACK_IMPORTED_MODULE_3__["Box"](lp.x, lp.y - labelHeight / 2, lp.x, lp.y)); + } else { + PieSegment.prototype.reflowLabel.call(this); + } + } + }; + + DonutSegment.prototype.createSegment = function createSegment (sector, options) { + return _core__WEBPACK_IMPORTED_MODULE_3__["ShapeBuilder"].current.createRing(sector, options); + }; + + return DonutSegment; +}(_pie_chart_pie_segment__WEBPACK_IMPORTED_MODULE_0__["default"])); + +Object(_common__WEBPACK_IMPORTED_MODULE_5__["setDefaultOptions"])(DonutSegment, { + overlay: { + gradient: "roundedGlass" + }, + labels: { + position: _common_constants__WEBPACK_IMPORTED_MODULE_4__["CENTER"] + }, + animation: { + type: _constants__WEBPACK_IMPORTED_MODULE_2__["PIE"] + } +}); + +Object(_common__WEBPACK_IMPORTED_MODULE_5__["deepExtend"])(DonutSegment.prototype, _mixins_point_events_mixin__WEBPACK_IMPORTED_MODULE_1__["default"]); + + + __webpack_exports__["default"] = (DonutSegment); + + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/error-bars/categorical-error-bar.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _error_bar_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/error-bars/error-bar-base.js"); + + +var CategoricalErrorBar = (function (ErrorBarBase) { + function CategoricalErrorBar () { + ErrorBarBase.apply(this, arguments); + } + + if ( ErrorBarBase ) CategoricalErrorBar.__proto__ = ErrorBarBase; + CategoricalErrorBar.prototype = Object.create( ErrorBarBase && ErrorBarBase.prototype ); + CategoricalErrorBar.prototype.constructor = CategoricalErrorBar; + + CategoricalErrorBar.prototype.getAxis = function getAxis () { + var axis = this.chart.seriesValueAxis(this.series); + + return axis; + }; + + return CategoricalErrorBar; +}(_error_bar_base__WEBPACK_IMPORTED_MODULE_0__["default"])); + + __webpack_exports__["default"] = (CategoricalErrorBar); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/error-bars/error-bar-base.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/main.js"); + var _core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core.js"); + var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + + + + + +var DEFAULT_ERROR_BAR_WIDTH = 4; + +var ErrorBarBase = (function (ChartElement) { + function ErrorBarBase(low, high, isVertical, chart, series, options) { + ChartElement.call(this, options); + + this.low = low; + this.high = high; + this.isVertical = isVertical; + this.chart = chart; + this.series = series; + } + + if ( ChartElement ) ErrorBarBase.__proto__ = ChartElement; + ErrorBarBase.prototype = Object.create( ChartElement && ChartElement.prototype ); + ErrorBarBase.prototype.constructor = ErrorBarBase; + + ErrorBarBase.prototype.reflow = function reflow (targetBox) { + var endCaps = this.options.endCaps; + var isVertical = this.isVertical; + var axis = this.getAxis(); + var valueBox = axis.getSlot(this.low, this.high); + var centerBox = targetBox.center(); + var capsWidth = this.getCapsWidth(targetBox, isVertical); + var capValue = isVertical ? centerBox.x : centerBox.y; + var capStart = capValue - capsWidth; + var capEnd = capValue + capsWidth; + var linePoints; + + if (isVertical) { + linePoints = [ + new _core__WEBPACK_IMPORTED_MODULE_1__["Point"](centerBox.x, valueBox.y1), + new _core__WEBPACK_IMPORTED_MODULE_1__["Point"](centerBox.x, valueBox.y2) + ]; + if (endCaps) { + linePoints.push(new _core__WEBPACK_IMPORTED_MODULE_1__["Point"](capStart, valueBox.y1), + new _core__WEBPACK_IMPORTED_MODULE_1__["Point"](capEnd, valueBox.y1), + new _core__WEBPACK_IMPORTED_MODULE_1__["Point"](capStart, valueBox.y2), + new _core__WEBPACK_IMPORTED_MODULE_1__["Point"](capEnd, valueBox.y2)); + } + this.box = new _core__WEBPACK_IMPORTED_MODULE_1__["Box"](capStart, valueBox.y1, capEnd, valueBox.y2); + } else { + linePoints = [ + new _core__WEBPACK_IMPORTED_MODULE_1__["Point"](valueBox.x1, centerBox.y), + new _core__WEBPACK_IMPORTED_MODULE_1__["Point"](valueBox.x2, centerBox.y) + ]; + if (endCaps) { + linePoints.push(new _core__WEBPACK_IMPORTED_MODULE_1__["Point"](valueBox.x1, capStart), + new _core__WEBPACK_IMPORTED_MODULE_1__["Point"](valueBox.x1, capEnd), + new _core__WEBPACK_IMPORTED_MODULE_1__["Point"](valueBox.x2, capStart), + new _core__WEBPACK_IMPORTED_MODULE_1__["Point"](valueBox.x2, capEnd)); + } + this.box = new _core__WEBPACK_IMPORTED_MODULE_1__["Box"](valueBox.x1, capStart, valueBox.x2, capEnd); + } + + this.linePoints = linePoints; + }; + + ErrorBarBase.prototype.getCapsWidth = function getCapsWidth (box, isVertical) { + var boxSize = isVertical ? box.width() : box.height(); + var capsWidth = Math.min(Math.floor(boxSize / 2), DEFAULT_ERROR_BAR_WIDTH) || DEFAULT_ERROR_BAR_WIDTH; + + return capsWidth; + }; + + ErrorBarBase.prototype.createVisual = function createVisual () { + var this$1 = this; + + var options = this.options; + var visual = options.visual; + + if (visual) { + this.visual = visual({ + low: this.low, + high: this.high, + rect: this.box.toRect(), + sender: this.getSender(), + options: { + endCaps: options.endCaps, + color: options.color, + line: options.line + }, + createVisual: function () { + this$1.createDefaultVisual(); + var defaultVisual = this$1.visual; + delete this$1.visual; + return defaultVisual; + } + }); + } else { + this.createDefaultVisual(); + } + }; + + ErrorBarBase.prototype.createDefaultVisual = function createDefaultVisual () { + var this$1 = this; + + var ref = this; + var options = ref.options; + var linePoints = ref.linePoints; + var lineOptions = { + stroke: { + color: options.color, + width: options.line.width, + dashType: options.line.dashType + } + }; + + ChartElement.prototype.createVisual.call(this); + + for (var idx = 0; idx < linePoints.length; idx += 2) { + var line = new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Path(lineOptions) + .moveTo(linePoints[idx].x, linePoints[idx].y) + .lineTo(linePoints[idx + 1].x, linePoints[idx + 1].y); + + Object(_common__WEBPACK_IMPORTED_MODULE_3__["alignPathToPixel"])(line); + this$1.visual.append(line); + } + }; + + return ErrorBarBase; +}(_core__WEBPACK_IMPORTED_MODULE_1__["ChartElement"])); + +Object(_common__WEBPACK_IMPORTED_MODULE_3__["setDefaultOptions"])(ErrorBarBase, { + animation: { + type: _constants__WEBPACK_IMPORTED_MODULE_2__["FADEIN"], + delay: _constants__WEBPACK_IMPORTED_MODULE_2__["INITIAL_ANIMATION_DURATION"] + }, + endCaps: true, + line: { + width: 2 + }, + zIndex: 1 +}); + + __webpack_exports__["default"] = (ErrorBarBase); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/error-bars/error-range-calculator.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _series_binder__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/series-binder.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + + +var STD_ERR = "stderr"; +var STD_DEV = "stddev"; +var percentRegex = /percent(?:\w*)\((\d+)\)/; +var standardDeviationRegex = new RegExp("^" + STD_DEV + "(?:\\((\\d+(?:\\.\\d+)?)\\))?$"); + +var ErrorRangeCalculator = (function (Class) { + function ErrorRangeCalculator(errorValue, series, field) { + Class.call(this); + + this.initGlobalRanges(errorValue, series, field); + } + + if ( Class ) ErrorRangeCalculator.__proto__ = Class; + ErrorRangeCalculator.prototype = Object.create( Class && Class.prototype ); + ErrorRangeCalculator.prototype.constructor = ErrorRangeCalculator; + + ErrorRangeCalculator.prototype.initGlobalRanges = function initGlobalRanges (errorValue, series, field) { + var data = series.data; + var deviationMatch = standardDeviationRegex.exec(errorValue); + + if (deviationMatch) { + this.valueGetter = this.createValueGetter(series, field); + + var average = this.getAverage(data); + var deviation = this.getStandardDeviation(data, average, false); + var multiple = deviationMatch[1] ? parseFloat(deviationMatch[1]) : 1; + var errorRange = { low: average.value - deviation * multiple, high: average.value + deviation * multiple }; + + this.globalRange = function() { + return errorRange; + }; + } else if (errorValue.indexOf && errorValue.indexOf(STD_ERR) >= 0) { + this.valueGetter = this.createValueGetter(series, field); + var standardError = this.getStandardError(data, this.getAverage(data)); + + this.globalRange = function(value) { + return { low: value - standardError, high: value + standardError }; + }; + } + }; + + ErrorRangeCalculator.prototype.createValueGetter = function createValueGetter (series, field) { + var data = series.data; + var binder = _series_binder__WEBPACK_IMPORTED_MODULE_0__["default"].current; + var valueFields = binder.valueFields(series); + var item = Object(_common__WEBPACK_IMPORTED_MODULE_2__["defined"])(data[0]) ? data[0] : {}; + var valueGetter; + + if (Object(_common__WEBPACK_IMPORTED_MODULE_2__["isArray"])(item)) { + var index = field ? valueFields.indexOf(field) : 0; + valueGetter = Object(_common__WEBPACK_IMPORTED_MODULE_2__["getter"])("[" + index + "]"); + } else if (Object(_common__WEBPACK_IMPORTED_MODULE_2__["isNumber"])(item)) { + valueGetter = Object(_common__WEBPACK_IMPORTED_MODULE_2__["getter"])(); + } else if (typeof item === _common_constants__WEBPACK_IMPORTED_MODULE_1__["OBJECT"]) { + var srcValueFields = binder.sourceFields(series, valueFields); + valueGetter = Object(_common__WEBPACK_IMPORTED_MODULE_2__["getter"])(srcValueFields[valueFields.indexOf(field)]); + } + + return valueGetter; + }; + + ErrorRangeCalculator.prototype.getErrorRange = function getErrorRange (pointValue, errorValue) { + var low, high, value; + + if (!Object(_common__WEBPACK_IMPORTED_MODULE_2__["defined"])(errorValue)) { + return null; + } + + if (this.globalRange) { + return this.globalRange(pointValue); + } + + if (Object(_common__WEBPACK_IMPORTED_MODULE_2__["isArray"])(errorValue)) { + low = pointValue - errorValue[0]; + high = pointValue + errorValue[1]; + } else if (Object(_common__WEBPACK_IMPORTED_MODULE_2__["isNumber"])(value = parseFloat(errorValue))) { + low = pointValue - value; + high = pointValue + value; + } else if ((value = percentRegex.exec(errorValue))) { + var percentValue = pointValue * (parseFloat(value[1]) / 100); + low = pointValue - Math.abs(percentValue); + high = pointValue + Math.abs(percentValue); + } else { + throw new Error("Invalid ErrorBar value: " + errorValue); + } + + return { low: low, high: high }; + }; + + ErrorRangeCalculator.prototype.getStandardError = function getStandardError (data, average) { + return this.getStandardDeviation(data, average, true) / Math.sqrt(average.count); + }; + + ErrorRangeCalculator.prototype.getStandardDeviation = function getStandardDeviation (data, average, isSample) { + var this$1 = this; + + var length = data.length; + var total = isSample ? average.count - 1 : average.count; + var squareDifferenceSum = 0; + + for (var idx = 0; idx < length; idx++) { + var value = this$1.valueGetter(data[idx]); + if (Object(_common__WEBPACK_IMPORTED_MODULE_2__["isNumber"])(value)) { + squareDifferenceSum += Math.pow(value - average.value, 2); + } + } + + return Math.sqrt(squareDifferenceSum / total); + }; + + ErrorRangeCalculator.prototype.getAverage = function getAverage (data) { + var this$1 = this; + + var length = data.length; + var sum = 0; + var count = 0; + + for (var idx = 0; idx < length; idx++) { + var value = this$1.valueGetter(data[idx]); + if (Object(_common__WEBPACK_IMPORTED_MODULE_2__["isNumber"])(value)) { + sum += value; + count++; + } + } + + return { + value: sum / count, + count: count + }; + }; + + return ErrorRangeCalculator; +}(_common__WEBPACK_IMPORTED_MODULE_2__["Class"])); + + __webpack_exports__["default"] = (ErrorRangeCalculator); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/error-bars/scatter-error-bar.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _error_bar_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/error-bars/error-bar-base.js"); + + +var ScatterErrorBar = (function (ErrorBarBase) { + function ScatterErrorBar () { + ErrorBarBase.apply(this, arguments); + } + + if ( ErrorBarBase ) ScatterErrorBar.__proto__ = ErrorBarBase; + ScatterErrorBar.prototype = Object.create( ErrorBarBase && ErrorBarBase.prototype ); + ScatterErrorBar.prototype.constructor = ScatterErrorBar; + + ScatterErrorBar.prototype.getAxis = function getAxis () { + var axes = this.chart.seriesAxes(this.series); + var axis = this.isVertical ? axes.y : axes.x; + + return axis; + }; + + return ScatterErrorBar; +}(_error_bar_base__WEBPACK_IMPORTED_MODULE_0__["default"])); + + __webpack_exports__["default"] = (ScatterErrorBar); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/funnel-chart/funnel-chart.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/main.js"); + var _core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core.js"); + var _mixins_pie_chart_mixin__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/mixins/pie-chart-mixin.js"); + var _funnel_segment__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/funnel-chart/funnel-segment.js"); + var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/utils.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + + + + + + + + +var FunnelChart = (function (ChartElement) { + function FunnelChart(plotArea, options) { + ChartElement.call(this, options); + + this.plotArea = plotArea; + this.points = []; + this.labels = []; + this.legendItems = []; + this.render(); + } + + if ( ChartElement ) FunnelChart.__proto__ = ChartElement; + FunnelChart.prototype = Object.create( ChartElement && ChartElement.prototype ); + FunnelChart.prototype.constructor = FunnelChart; + + FunnelChart.prototype.formatPointValue = function formatPointValue (point, format) { + return this.chartService.format.auto(format,point.value); + }; + + FunnelChart.prototype.render = function render () { + var this$1 = this; + + var ref = this; + var options = ref.options; + var seriesColors = ref.plotArea.options.seriesColors; if ( seriesColors === void 0 ) seriesColors = []; + var series = options.series[0]; + var data = series.data; + + if (!data) { + return; + } + + var ref$1 = Object(_utils__WEBPACK_IMPORTED_MODULE_4__["bindSegments"])(series); + var total = ref$1.total; + var points = ref$1.points; + + for (var i = 0; i < points.length; i++) { + var pointData = points[i]; + + if (!pointData) { + continue; + } + + var fields = pointData.fields; + + if (!Object(_common__WEBPACK_IMPORTED_MODULE_6__["isFunction"])(series.color)) { + series.color = fields.color || seriesColors[i % seriesColors.length]; + } + + fields = Object(_common__WEBPACK_IMPORTED_MODULE_6__["deepExtend"])({ + index: i, + owner: this$1, + series: series, + dataItem: data[i], + percentage: pointData.value / total + }, fields, { visible: pointData.visible }); + + var value = pointData.valueFields.value; + var segment = this$1.createSegment(value, fields); + var label = this$1.createLabel(value, fields); + + if (segment && label) { + segment.append(label); + } + } + }; + + FunnelChart.prototype.evalSegmentOptions = function evalSegmentOptions (options, value, fields) { + var series = fields.series; + + Object(_utils__WEBPACK_IMPORTED_MODULE_4__["evalOptions"])(options, { + value: value, + series: series, + dataItem: fields.dataItem, + index: fields.index + }, { defaults: series._defaults, excluded: [ "data", "content", "template", "toggle", "visual" ] }); + }; + + FunnelChart.prototype.createSegment = function createSegment (value, fields) { + var seriesOptions = Object(_common__WEBPACK_IMPORTED_MODULE_6__["deepExtend"])({}, fields.series); + this.evalSegmentOptions(seriesOptions, value, fields); + + this.createLegendItem(value, seriesOptions, fields); + + if (fields.visible !== false) { + + var segment = new _funnel_segment__WEBPACK_IMPORTED_MODULE_3__["default"](value, seriesOptions, fields); + Object.assign(segment, fields); + + this.append(segment); + this.points.push(segment); + + return segment; + } + }; + + FunnelChart.prototype.createLabel = function createLabel (value, fields) { + var series = fields.series; + var dataItem = fields.dataItem; + var labels = Object(_common__WEBPACK_IMPORTED_MODULE_6__["deepExtend"])({}, this.options.labels, series.labels); + var text = value; + + if (labels.visible) { + var labelTemplate = Object(_common__WEBPACK_IMPORTED_MODULE_6__["getTemplate"])(labels); + var data = { + dataItem: dataItem, + value: value, + percentage: fields.percentage, + category: fields.category, + series: series + }; + if (labelTemplate) { + text = labelTemplate(data); + } else if (labels.format) { + text = this.plotArea.chartService.format.auto(labels.format, text); + } + + if (!labels.color) { + var brightnessValue = new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["Color"](series.color).percBrightness(); + if (brightnessValue > 180) { + labels.color = _common_constants__WEBPACK_IMPORTED_MODULE_5__["BLACK"]; + } else { + labels.color = _common_constants__WEBPACK_IMPORTED_MODULE_5__["WHITE"]; + } + if (!labels.background) { + labels.background = series.color; + } + } + + this.evalSegmentOptions(labels, value, fields); + var textBox = new _core__WEBPACK_IMPORTED_MODULE_1__["TextBox"](text, Object(_common__WEBPACK_IMPORTED_MODULE_6__["deepExtend"])({ + vAlign: labels.position + }, labels), data); + + this.labels.push(textBox); + + return textBox; + } + }; + + FunnelChart.prototype.labelPadding = function labelPadding () { + var labels = this.labels; + var padding = { left: 0, right: 0 }; + + for (var i = 0; i < labels.length; i++) { + var label = labels[i]; + var align = label.options.align; + if (align !== _common_constants__WEBPACK_IMPORTED_MODULE_5__["CENTER"]) { + var width = labels[i].box.width(); + + if (align === _common_constants__WEBPACK_IMPORTED_MODULE_5__["LEFT"]) { + padding.left = Math.max(padding.left, width); + } else { + padding.right = Math.max(padding.right, width); + } + } + } + + return padding; + }; + + FunnelChart.prototype.dynamicSlopeReflow = function dynamicSlopeReflow (box, width, totalHeight) { + var ref = this; + var options = ref.options; + var segments = ref.points; + var count = segments.length; + var firstSegment = segments[0]; + var maxSegment = firstSegment; + + for (var idx = 0; idx < segments.length; idx++) { + if (segments[idx].percentage > maxSegment.percentage) { + maxSegment = segments[idx]; + } + } + + var lastUpperSide = (firstSegment.percentage / maxSegment.percentage) * width; + var previousOffset = (width - lastUpperSide) / 2; + var previousHeight = 0; + + for (var idx$1 = 0; idx$1 < count; idx$1++) { + var percentage = segments[idx$1].percentage; + var nextSegment = segments[idx$1 + 1]; + var nextPercentage = (nextSegment ? nextSegment.percentage : percentage); + var points = segments[idx$1].points = []; + var height = (options.dynamicHeight) ? (totalHeight * percentage) : (totalHeight / count); + var offset = (void 0); + + if (!percentage) { + offset = nextPercentage ? 0 : width / 2; + } else { + offset = (width - lastUpperSide * (nextPercentage / percentage)) / 2; + } + + offset = Object(_common__WEBPACK_IMPORTED_MODULE_6__["limitValue"])(offset, 0, width); + + points.push(new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].Point(box.x1 + previousOffset, box.y1 + previousHeight)); + points.push(new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].Point(box.x1 + width - previousOffset, box.y1 + previousHeight)); + points.push(new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].Point(box.x1 + width - offset, box.y1 + height + previousHeight)); + points.push(new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].Point(box.x1 + offset, box.y1 + height + previousHeight)); + + previousOffset = offset; + previousHeight += height + options.segmentSpacing; + lastUpperSide = Object(_common__WEBPACK_IMPORTED_MODULE_6__["limitValue"])(width - 2 * offset, 0, width); + } + }; + + FunnelChart.prototype.constantSlopeReflow = function constantSlopeReflow (box, width, totalHeight) { + var ref = this; + var options = ref.options; + var segments = ref.points; + var count = segments.length; + var decreasingWidth = options.neckRatio <= 1; + var neckRatio = decreasingWidth ? options.neckRatio * width : width; + var previousOffset = decreasingWidth ? 0 : (width - width / options.neckRatio) / 2; + var topMostWidth = decreasingWidth ? width : width - previousOffset * 2; + var finalNarrow = (topMostWidth - neckRatio) / 2; + var previousHeight = 0; + + for (var idx = 0; idx < count; idx++) { + var points = segments[idx].points = []; + var percentage = segments[idx].percentage; + var offset = (options.dynamicHeight) ? (finalNarrow * percentage) : (finalNarrow / count); + var height = (options.dynamicHeight) ? (totalHeight * percentage) : (totalHeight / count); + + points.push(new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].Point(box.x1 + previousOffset, box.y1 + previousHeight)); + points.push(new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].Point(box.x1 + width - previousOffset, box.y1 + previousHeight)); + points.push(new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].Point(box.x1 + width - previousOffset - offset, box.y1 + height + previousHeight)); + points.push(new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].Point(box.x1 + previousOffset + offset,box.y1 + height + previousHeight)); + previousOffset += offset; + previousHeight += height + options.segmentSpacing; + } + }; + + FunnelChart.prototype.reflow = function reflow (chartBox) { + var points = this.points; + var count = points.length; + + if (!count) { + return; + } + + var options = this.options; + var box = chartBox.clone().unpad(this.labelPadding()); + var totalHeight = box.height() - options.segmentSpacing * (count - 1); + var width = box.width(); + + if (options.dynamicSlope) { + this.dynamicSlopeReflow(box, width, totalHeight); + } else { + this.constantSlopeReflow(box, width, totalHeight); + } + + for (var idx = 0; idx < count; idx++) { + points[idx].reflow(chartBox); + } + }; + + return FunnelChart; +}(_core__WEBPACK_IMPORTED_MODULE_1__["ChartElement"])); + +Object(_common__WEBPACK_IMPORTED_MODULE_6__["setDefaultOptions"])(FunnelChart, { + neckRatio: 0.3, + width: 300, + dynamicSlope: false, + dynamicHeight: true, + segmentSpacing: 0, + labels: { + visible: false, + align: _common_constants__WEBPACK_IMPORTED_MODULE_5__["CENTER"], + position: _common_constants__WEBPACK_IMPORTED_MODULE_5__["CENTER"], + zIndex: 1 + } +}); + +Object(_common__WEBPACK_IMPORTED_MODULE_6__["deepExtend"])(FunnelChart.prototype, _mixins_pie_chart_mixin__WEBPACK_IMPORTED_MODULE_2__["default"]); + + __webpack_exports__["default"] = (FunnelChart); + + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/funnel-chart/funnel-segment.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/main.js"); + var _core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core.js"); + var _mixins_point_events_mixin__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/mixins/point-events-mixin.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + + + + + +var FunnelSegment = (function (ChartElement) { + function FunnelSegment(value, options, segmentOptions) { + ChartElement.call(this, options); + + this.value = value; + this.options.index = segmentOptions.index; + } + + if ( ChartElement ) FunnelSegment.__proto__ = ChartElement; + FunnelSegment.prototype = Object.create( ChartElement && ChartElement.prototype ); + FunnelSegment.prototype.constructor = FunnelSegment; + + FunnelSegment.prototype.reflow = function reflow (chartBox) { + var points = this.points; + var label = this.children[0]; + + this.box = new _core__WEBPACK_IMPORTED_MODULE_1__["Box"](points[0].x, points[0].y, points[1].x, points[2].y); + + if (label) { + label.reflow(new _core__WEBPACK_IMPORTED_MODULE_1__["Box"](chartBox.x1, points[0].y, chartBox.x2, points[2].y)); + } + }; + + FunnelSegment.prototype.createVisual = function createVisual () { + var this$1 = this; + + var options = this.options; + var visual; + + ChartElement.prototype.createVisual.call(this); + + if (options.visual) { + visual = options.visual({ + category: this.category, + dataItem: this.dataItem, + value: this.value, + series: this.series, + percentage: this.percentage, + points: this.points, + options: options, + sender: this.getSender(), + createVisual: function () { return this$1.createPath(); } + }); + } else { + visual = this.createPath(); + } + + if (visual) { + this.visual.append(visual); + } + }; + + FunnelSegment.prototype.createPath = function createPath () { + var options = this.options; + var border = options.border; + var path = _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Path.fromPoints(this.points, { + fill: { + color: options.color, + opacity: options.opacity + }, + stroke: { + color: border.color, + opacity: border.opacity, + width: border.width + } + }).close(); + + return path; + }; + + FunnelSegment.prototype.createHighlight = function createHighlight (style) { + return _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Path.fromPoints(this.points, style); + }; + + FunnelSegment.prototype.highlightVisual = function highlightVisual () { + return this.visual.children[0]; + }; + + FunnelSegment.prototype.highlightVisualArgs = function highlightVisualArgs () { + var path = _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Path.fromPoints(this.points).close(); + + return { + options: this.options, + path: path + }; + }; + + FunnelSegment.prototype.tooltipAnchor = function tooltipAnchor () { + var box = this.box; + return { + point: new _core__WEBPACK_IMPORTED_MODULE_1__["Point"](box.center().x, box.y1), + align: { + horizontal: "center", + vertical: "top" + } + }; + }; + + FunnelSegment.prototype.formatValue = function formatValue (format) { + var point = this; + return point.owner.formatPointValue(point, format); + }; + + return FunnelSegment; +}(_core__WEBPACK_IMPORTED_MODULE_1__["ChartElement"])); + +Object(_common__WEBPACK_IMPORTED_MODULE_4__["setDefaultOptions"])(FunnelSegment, { + color: _common_constants__WEBPACK_IMPORTED_MODULE_3__["WHITE"], + border: { + width: 1 + } +}); + +Object(_common__WEBPACK_IMPORTED_MODULE_4__["deepExtend"])(FunnelSegment.prototype, _mixins_point_events_mixin__WEBPACK_IMPORTED_MODULE_2__["default"]); + + __webpack_exports__["default"] = (FunnelSegment); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/highlight.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + +var Highlight = (function (Class) { + function Highlight() { + Class.call(this); + + this._points = []; + } + + if ( Class ) Highlight.__proto__ = Class; + Highlight.prototype = Object.create( Class && Class.prototype ); + Highlight.prototype.constructor = Highlight; + + Highlight.prototype.destroy = function destroy () { + this._points = []; + }; + + Highlight.prototype.show = function show (points) { + var this$1 = this; + + var arrayPoints = [].concat(points); + this.hide(); + + for (var i = 0; i < arrayPoints.length; i++) { + var point = arrayPoints[i]; + if (point && point.toggleHighlight && point.hasHighlight()) { + this$1.togglePointHighlight(point, true); + this$1._points.push(point); + } + } + }; + + Highlight.prototype.togglePointHighlight = function togglePointHighlight (point, show) { + var toggleHandler = (point.options.highlight || {}).toggle; + if (toggleHandler) { + var eventArgs = { + category: point.category, + series: point.series, + dataItem: point.dataItem, + value: point.value, + stackValue: point.stackValue, + preventDefault: preventDefault, + visual: point.highlightVisual(), + show: show + }; + toggleHandler(eventArgs); + if (!eventArgs._defaultPrevented) { + point.toggleHighlight(show); + } + } else { + point.toggleHighlight(show); + } + }; + + Highlight.prototype.hide = function hide () { + var this$1 = this; + + var points = this._points; + while (points.length) { + this$1.togglePointHighlight(points.pop(), false); + } + }; + + Highlight.prototype.isHighlighted = function isHighlighted (element) { + var points = this._points; + + for (var i = 0; i < points.length; i++) { + var point = points[i]; + if (element === point) { + return true; + } + } + + return false; + }; + + return Highlight; +}(_common__WEBPACK_IMPORTED_MODULE_0__["Class"])); + +function preventDefault() { + this._defaultPrevented = true; +} + + __webpack_exports__["default"] = (Highlight); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/layout/cluster-layout.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/layout/utils.js"); + + + + + + +var ClusterLayout = (function (ChartElement) { + function ClusterLayout(options) { + ChartElement.call(this, options); + + this.forEach = options.rtl ? _utils__WEBPACK_IMPORTED_MODULE_3__["forEachReverse"] : _utils__WEBPACK_IMPORTED_MODULE_3__["forEach"]; + } + + if ( ChartElement ) ClusterLayout.__proto__ = ChartElement; + ClusterLayout.prototype = Object.create( ChartElement && ChartElement.prototype ); + ClusterLayout.prototype.constructor = ClusterLayout; + + ClusterLayout.prototype.reflow = function reflow (box) { + var ref = this.options; + var vertical = ref.vertical; + var gap = ref.gap; + var spacing = ref.spacing; + var children = this.children; + var count = children.length; + var axis = vertical ? _common_constants__WEBPACK_IMPORTED_MODULE_1__["Y"] : _common_constants__WEBPACK_IMPORTED_MODULE_1__["X"]; + var slots = count + gap + (spacing * (count - 1)); + var slotSize = (vertical ? box.height() : box.width()) / slots; + var position = box[axis + 1] + slotSize * (gap / 2); + + this.forEach(children, function (child, idx) { + var childBox = (child.box || box).clone(); + + childBox[axis + 1] = position; + childBox[axis + 2] = position + slotSize; + + child.reflow(childBox); + if (idx < count - 1) { + position += (slotSize * spacing); + } + + position += slotSize; + }); + }; + + return ClusterLayout; +}(_core__WEBPACK_IMPORTED_MODULE_0__["ChartElement"])); + +Object(_common__WEBPACK_IMPORTED_MODULE_2__["setDefaultOptions"])(ClusterLayout, { + vertical: false, + gap: 0, + spacing: 0 +}); + + __webpack_exports__["default"] = (ClusterLayout); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/layout/radar-cluster-layout.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core.js"); + var _common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/layout/utils.js"); + + + + + + +var RadarClusterLayout = (function (ChartElement) { + function RadarClusterLayout(options) { + ChartElement.call(this, options); + + this.forEach = options.rtl ? _utils__WEBPACK_IMPORTED_MODULE_2__["forEachReverse"] : _utils__WEBPACK_IMPORTED_MODULE_2__["forEach"]; + } + + if ( ChartElement ) RadarClusterLayout.__proto__ = ChartElement; + RadarClusterLayout.prototype = Object.create( ChartElement && ChartElement.prototype ); + RadarClusterLayout.prototype.constructor = RadarClusterLayout; + + RadarClusterLayout.prototype.reflow = function reflow (sector) { + var ref = this; + var options = ref.options; + var children = ref.children; + var gap = options.gap; + var spacing = options.spacing; + var count = children.length; + var slots = count + gap + (spacing * (count - 1)); + var slotAngle = sector.angle / slots; + var angle = sector.startAngle + slotAngle * (gap / 2); + + this.forEach(children, function (child) { + var slotSector = sector.clone(); + slotSector.startAngle = angle; + slotSector.angle = slotAngle; + + if (child.sector) { + slotSector.radius = child.sector.radius; + } + + child.reflow(slotSector); + child.sector = slotSector; + + angle += slotAngle + (slotAngle * spacing); + }); + }; + + return RadarClusterLayout; +}(_core__WEBPACK_IMPORTED_MODULE_0__["ChartElement"])); + +Object(_common__WEBPACK_IMPORTED_MODULE_1__["setDefaultOptions"])(RadarClusterLayout, { + gap: 1, + spacing: 0 +}); + + __webpack_exports__["default"] = (RadarClusterLayout); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/layout/radar-stack-layout.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core.js"); + + +var RadarStackLayout = (function (ChartElement) { + function RadarStackLayout () { + ChartElement.apply(this, arguments); + } + + if ( ChartElement ) RadarStackLayout.__proto__ = ChartElement; + RadarStackLayout.prototype = Object.create( ChartElement && ChartElement.prototype ); + RadarStackLayout.prototype.constructor = RadarStackLayout; + + RadarStackLayout.prototype.reflow = function reflow (sector) { + var ref = this; + var reverse = ref.options.reverse; + var children = ref.children; + var childrenCount = children.length; + var first = reverse ? childrenCount - 1 : 0; + var step = reverse ? -1 : 1; + + this.box = new _core__WEBPACK_IMPORTED_MODULE_0__["Box"](); + + for (var i = first; i >= 0 && i < childrenCount; i += step) { + var childSector = children[i].sector; + childSector.startAngle = sector.startAngle; + childSector.angle = sector.angle; + } + }; + + return RadarStackLayout; +}(_core__WEBPACK_IMPORTED_MODULE_0__["ChartElement"])); + + __webpack_exports__["default"] = (RadarStackLayout); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/layout/stack-wrap.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + + +var StackWrap = (function (ChartElement) { + function StackWrap () { + ChartElement.apply(this, arguments); + } + + if ( ChartElement ) StackWrap.__proto__ = ChartElement; + StackWrap.prototype = Object.create( ChartElement && ChartElement.prototype ); + StackWrap.prototype.constructor = StackWrap; + + StackWrap.prototype.reflow = function reflow (targetBox) { + var this$1 = this; + + var positionAxis = this.options.vertical ? _common_constants__WEBPACK_IMPORTED_MODULE_1__["X"] : _common_constants__WEBPACK_IMPORTED_MODULE_1__["Y"]; + var children = this.children; + var childrenCount = children.length; + var box = this.box = new _core__WEBPACK_IMPORTED_MODULE_0__["Box"](); + + for (var i = 0; i < childrenCount; i++) { + var currentChild = children[i]; + + if (currentChild.visible !== false) { + var childBox = currentChild.box.clone(); + childBox.snapTo(targetBox, positionAxis); + + if (i === 0) { + box = this$1.box = childBox.clone(); + } + + currentChild.reflow(childBox); + box.wrap(childBox); + } + } + }; + + return StackWrap; +}(_core__WEBPACK_IMPORTED_MODULE_0__["ChartElement"])); + +Object(_common__WEBPACK_IMPORTED_MODULE_2__["setDefaultOptions"])(StackWrap, { + vertical: true +}); + + __webpack_exports__["default"] = (StackWrap); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/layout/utils.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "forEach", function() { return forEach; }); + __webpack_require__.d(__webpack_exports__, "forEachReverse", function() { return forEachReverse; }); +function forEach(elements, callback) { + elements.forEach(callback); +} + +function forEachReverse(elements, callback) { + var length = elements.length; + + for (var idx = length - 1; idx >= 0; idx--) { + callback(elements[idx], idx - length - 1); + } +} + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/legend/legend-item.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/main.js"); + var _core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core.js"); + var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/constants.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + + + + +var LegendItem = (function (BoxElement) { + function LegendItem(options) { + BoxElement.call(this, options); + + this.createContainer(); + if (!options.rtl) { + this.createMarker(); + this.createLabel(); + } else { + this.createLabel(); + this.createMarker(); + } + } + + if ( BoxElement ) LegendItem.__proto__ = BoxElement; + LegendItem.prototype = Object.create( BoxElement && BoxElement.prototype ); + LegendItem.prototype.constructor = LegendItem; + + LegendItem.prototype.createContainer = function createContainer () { + this.container = new _core__WEBPACK_IMPORTED_MODULE_1__["FloatElement"]({ vertical: false, wrap: false, align: _common_constants__WEBPACK_IMPORTED_MODULE_3__["CENTER"], spacing: this.options.spacing }); + this.append(this.container); + }; + + LegendItem.prototype.createMarker = function createMarker () { + this.container.append(new _core__WEBPACK_IMPORTED_MODULE_1__["ShapeElement"](this.markerOptions())); + }; + + LegendItem.prototype.markerOptions = function markerOptions () { + var options = this.options; + var markerColor = options.markerColor; + return Object(_common__WEBPACK_IMPORTED_MODULE_4__["deepExtend"])({}, options.markers, { + background: markerColor, + border: { + color: markerColor + } + }); + }; + + LegendItem.prototype.createLabel = function createLabel () { + var options = this.options; + var labelOptions = Object(_common__WEBPACK_IMPORTED_MODULE_4__["deepExtend"])({}, options.labels); + + this.container.append(new _core__WEBPACK_IMPORTED_MODULE_1__["TextBox"](options.text, labelOptions)); + }; + + LegendItem.prototype.renderComplete = function renderComplete () { + BoxElement.prototype.renderComplete.call(this); + + var cursor = this.options.cursor || {}; + var eventSink = this._itemOverlay = _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Path.fromRect(this.container.box.toRect(), { + fill: { + color: _common_constants__WEBPACK_IMPORTED_MODULE_3__["WHITE"], + opacity: 0 + }, + stroke: null, + cursor: cursor.style || cursor + }); + + this.appendVisual(eventSink); + }; + + LegendItem.prototype.click = function click (widget, e) { + var args = this.eventArgs(e); + + if (!widget.trigger(_constants__WEBPACK_IMPORTED_MODULE_2__["LEGEND_ITEM_CLICK"], args) && e && e.type === 'contextmenu') { + e.preventDefault(); + } + }; + + LegendItem.prototype.over = function over (widget, e) { + var args = this.eventArgs(e); + + if (!widget.trigger(_constants__WEBPACK_IMPORTED_MODULE_2__["LEGEND_ITEM_HOVER"], args)) { + widget._legendItemHover(args.seriesIndex, args.pointIndex); + } + + // Don't trigger point hover for legend items + return true; + }; + + LegendItem.prototype.out = function out (widget, e) { + widget._unsetActivePoint(); + + widget.trigger(_constants__WEBPACK_IMPORTED_MODULE_2__["LEGEND_ITEM_LEAVE"], this.eventArgs(e)); + }; + + LegendItem.prototype.eventArgs = function eventArgs (e) { + var options = this.options; + + return { + element: Object(_common__WEBPACK_IMPORTED_MODULE_4__["eventElement"])(e), + text: options.text, + series: options.series, + seriesIndex: options.series.index, + pointIndex: options.pointIndex + }; + }; + + LegendItem.prototype.renderVisual = function renderVisual () { + var this$1 = this; + + var options = this.options; + var customVisual = options.visual; + + if (customVisual) { + this.visual = customVisual({ + active: options.active, + series: options.series, + sender: this.getSender(), + pointIndex: options.pointIndex, + options: { + markers: this.markerOptions(), + labels: options.labels + }, + createVisual: function () { + this$1.createVisual(); + this$1.renderChildren(); + this$1.renderComplete(); + + var defaultVisual = this$1.visual; + + delete this$1.visual; + + return defaultVisual; + } + }); + this.addVisual(); + } else { + BoxElement.prototype.renderVisual.call(this); + } + }; + + return LegendItem; +}(_core__WEBPACK_IMPORTED_MODULE_1__["BoxElement"])); + + __webpack_exports__["default"] = (LegendItem); + + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/legend/legend-layout.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/main.js"); + var _core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core.js"); + + + + +var LegendLayout = (function (ChartElement) { + function LegendLayout(options, chartService) { + ChartElement.call(this, options); + + this.chartService = chartService; + } + + if ( ChartElement ) LegendLayout.__proto__ = ChartElement; + LegendLayout.prototype = Object.create( ChartElement && ChartElement.prototype ); + LegendLayout.prototype.constructor = LegendLayout; + + LegendLayout.prototype.render = function render () { + var ref = this; + var children = ref.children; + var options = ref.options; + var vertical = options.vertical; + + this.visual = new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Layout(null, { + spacing: vertical ? 0 : options.spacing, + lineSpacing: vertical ? options.spacing : 0, + orientation: vertical ? "vertical" : "horizontal", + reverse: options.rtl, + alignItems: vertical ? "start" : "center" + }); + + for (var idx = 0; idx < children.length; idx++) { + var legendItem = children[idx]; + legendItem.reflow(new _core__WEBPACK_IMPORTED_MODULE_1__["Box"]()); + legendItem.renderVisual(); + } + }; + + LegendLayout.prototype.reflow = function reflow (box) { + this.visual.rect(box.toRect()); + this.visual.reflow(); + var bbox = this.visual.clippedBBox(); + + if (bbox) { + this.box = Object(_core__WEBPACK_IMPORTED_MODULE_1__["rectToBox"])(bbox); + } else { + this.box = new _core__WEBPACK_IMPORTED_MODULE_1__["Box"](); + } + }; + + LegendLayout.prototype.renderVisual = function renderVisual () { + this.addVisual(); + }; + + LegendLayout.prototype.createVisual = function createVisual () {}; + + return LegendLayout; +}(_core__WEBPACK_IMPORTED_MODULE_1__["ChartElement"])); + + __webpack_exports__["default"] = (LegendLayout); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/legend/legend.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core.js"); + var _legend_layout__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/legend/legend-layout.js"); + var _legend_item__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/legend/legend-item.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + + + + + +var HORIZONTAL = "horizontal"; +var POINTER = "pointer"; +var CUSTOM = "custom"; + +var Legend = (function (ChartElement) { + function Legend(options, chartService) { + if ( chartService === void 0 ) chartService = {}; + + ChartElement.call(this, options); + + this.chartService = chartService; + + if (!Object(_common__WEBPACK_IMPORTED_MODULE_4__["inArray"])(this.options.position, [ _common_constants__WEBPACK_IMPORTED_MODULE_3__["TOP"], _common_constants__WEBPACK_IMPORTED_MODULE_3__["RIGHT"], _common_constants__WEBPACK_IMPORTED_MODULE_3__["BOTTOM"], _common_constants__WEBPACK_IMPORTED_MODULE_3__["LEFT"], CUSTOM ])) { + this.options.position = _common_constants__WEBPACK_IMPORTED_MODULE_3__["RIGHT"]; + } + + this.createContainer(); + + this.createItems(); + } + + if ( ChartElement ) Legend.__proto__ = ChartElement; + Legend.prototype = Object.create( ChartElement && ChartElement.prototype ); + Legend.prototype.constructor = Legend; + + Legend.prototype.createContainer = function createContainer () { + var options = this.options; + var position = options.position; + var userAlign = options.align; + var align = position; + var vAlign = _common_constants__WEBPACK_IMPORTED_MODULE_3__["CENTER"]; + + if (position === CUSTOM) { + align = _common_constants__WEBPACK_IMPORTED_MODULE_3__["LEFT"]; + } else if (Object(_common__WEBPACK_IMPORTED_MODULE_4__["inArray"])(position, [ _common_constants__WEBPACK_IMPORTED_MODULE_3__["TOP"], _common_constants__WEBPACK_IMPORTED_MODULE_3__["BOTTOM"] ])) { + if (userAlign === "start") { + align = _common_constants__WEBPACK_IMPORTED_MODULE_3__["LEFT"]; + } else if (userAlign === "end") { + align = _common_constants__WEBPACK_IMPORTED_MODULE_3__["RIGHT"]; + } else { + align = _common_constants__WEBPACK_IMPORTED_MODULE_3__["CENTER"]; + } + vAlign = position; + } else if (userAlign) { + if (userAlign === "start") { + vAlign = _common_constants__WEBPACK_IMPORTED_MODULE_3__["TOP"]; + } else if (userAlign === "end") { + vAlign = _common_constants__WEBPACK_IMPORTED_MODULE_3__["BOTTOM"]; + } + } + + this.container = new _core__WEBPACK_IMPORTED_MODULE_0__["BoxElement"]({ + margin: options.margin, + padding: options.padding, + background: options.background, + border: options.border, + vAlign: vAlign, + align: align, + zIndex: options.zIndex, + shrinkToFit: true + }); + + this.append(this.container); + }; + + Legend.prototype.createItems = function createItems () { + var chartService = this.getService(); + var options = this.options; + var vertical = this.isVertical(); + var innerElement = new _legend_layout__WEBPACK_IMPORTED_MODULE_1__["default"]({ + vertical: vertical, + spacing: options.spacing, + rtl: chartService.rtl + }, chartService); + var items = options.items; + + if (options.reverse) { + items = items.slice(0).reverse(); + } + + var count = items.length; + + for (var i = 0; i < count; i++) { + var item = items[i]; + + innerElement.append(new _legend_item__WEBPACK_IMPORTED_MODULE_2__["default"](Object(_common__WEBPACK_IMPORTED_MODULE_4__["deepExtend"])({}, { + markers: options.markers, + labels: options.labels, + rtl: chartService.rtl + }, options.item, item))); + } + + innerElement.render(); + + this.container.append(innerElement); + }; + + Legend.prototype.isVertical = function isVertical () { + var ref = this.options; + var orientation = ref.orientation; + var position = ref.position; + var vertical = (position === CUSTOM && orientation !== HORIZONTAL) || + (Object(_common__WEBPACK_IMPORTED_MODULE_4__["defined"])(orientation) ? orientation !== HORIZONTAL : Object(_common__WEBPACK_IMPORTED_MODULE_4__["inArray"])(position, [ _common_constants__WEBPACK_IMPORTED_MODULE_3__["LEFT"], _common_constants__WEBPACK_IMPORTED_MODULE_3__["RIGHT"] ])); + + return vertical; + }; + + Legend.prototype.hasItems = function hasItems () { + return this.container.children[0].children.length > 0; + }; + + Legend.prototype.reflow = function reflow (targetBox) { + var options = this.options; + var legendBox = targetBox.clone(); + + if (!this.hasItems()) { + this.box = legendBox; + return; + } + + if (options.position === CUSTOM) { + this.containerCustomReflow(legendBox); + this.box = legendBox; + } else { + this.containerReflow(legendBox); + } + }; + + Legend.prototype.containerReflow = function containerReflow (targetBox) { + var ref = this; + var options = ref.options; + var container = ref.container; + var position = options.position; + var width = options.width; + var height = options.height; + var pos = position === _common_constants__WEBPACK_IMPORTED_MODULE_3__["TOP"] || position === _common_constants__WEBPACK_IMPORTED_MODULE_3__["BOTTOM"] ? _common_constants__WEBPACK_IMPORTED_MODULE_3__["X"] : _common_constants__WEBPACK_IMPORTED_MODULE_3__["Y"]; + var vertical = this.isVertical(); + var alignTarget = targetBox.clone(); + var containerBox = targetBox.clone(); + + if (position === _common_constants__WEBPACK_IMPORTED_MODULE_3__["LEFT"] || position === _common_constants__WEBPACK_IMPORTED_MODULE_3__["RIGHT"]) { + containerBox.y1 = alignTarget.y1 = 0; + } + + if (vertical && height) { + containerBox.y2 = containerBox.y1 + height; + containerBox.align(alignTarget, _common_constants__WEBPACK_IMPORTED_MODULE_3__["Y"], container.options.vAlign); + } else if (!vertical && width) { + containerBox.x2 = containerBox.x1 + width; + containerBox.align(alignTarget, _common_constants__WEBPACK_IMPORTED_MODULE_3__["X"], container.options.align); + } + + container.reflow(containerBox); + containerBox = container.box; + + var box = containerBox.clone(); + + if (options.offsetX || options.offsetY) { + containerBox.translate(options.offsetX, options.offsetY); + this.container.reflow(containerBox); + } + + box[pos + 1] = targetBox[pos + 1]; + box[pos + 2] = targetBox[pos + 2]; + + this.box = box; + }; + + Legend.prototype.containerCustomReflow = function containerCustomReflow (targetBox) { + var ref = this; + var options = ref.options; + var container = ref.container; + var offsetX = options.offsetX; + var offsetY = options.offsetY; + var width = options.width; + var height = options.height; + var vertical = this.isVertical(); + var containerBox = targetBox.clone(); + + if (vertical && height) { + containerBox.y2 = containerBox.y1 + height; + } else if (!vertical && width) { + containerBox.x2 = containerBox.x1 + width; + } + container.reflow(containerBox); + containerBox = container.box; + + container.reflow(new _core__WEBPACK_IMPORTED_MODULE_0__["Box"]( + offsetX, offsetY, + offsetX + containerBox.width(), offsetY + containerBox.height() + )); + }; + + Legend.prototype.renderVisual = function renderVisual () { + if (this.hasItems()) { + ChartElement.prototype.renderVisual.call(this); + } + }; + + return Legend; +}(_core__WEBPACK_IMPORTED_MODULE_0__["ChartElement"])); + +Object(_common__WEBPACK_IMPORTED_MODULE_4__["setDefaultOptions"])(Legend, { + position: _common_constants__WEBPACK_IMPORTED_MODULE_3__["RIGHT"], + items: [], + offsetX: 0, + offsetY: 0, + margin: Object(_common__WEBPACK_IMPORTED_MODULE_4__["getSpacing"])(5), + padding: Object(_common__WEBPACK_IMPORTED_MODULE_4__["getSpacing"])(5), + border: { + color: _common_constants__WEBPACK_IMPORTED_MODULE_3__["BLACK"], + width: 0 + }, + item: { + cursor: POINTER, + spacing: 6 + }, + spacing: 6, + background: "", + zIndex: 1, + markers: { + border: { + width: 0 + }, + width: 15, + height: 3, + type: "rect", + align: _common_constants__WEBPACK_IMPORTED_MODULE_3__["LEFT"], + vAlign: _common_constants__WEBPACK_IMPORTED_MODULE_3__["CENTER"] + } +}); + + __webpack_exports__["default"] = (Legend); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/line-chart/line-chart.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _categorical_chart__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/categorical-chart.js"); + var _line_point__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/line-chart/line-point.js"); + var _line_segment__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/line-chart/line-segment.js"); + var _step_line_segment__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/line-chart/step-line-segment.js"); + var _spline_segment__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/line-chart/spline-segment.js"); + var _mixins_line_chart_mixin__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/mixins/line-chart-mixin.js"); + var _mixins_clip_animation_mixin__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/mixins/clip-animation-mixin.js"); + var _constants__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + + + + + + + + + +var LineChart = (function (CategoricalChart) { + function LineChart () { + CategoricalChart.apply(this, arguments); + } + + if ( CategoricalChart ) LineChart.__proto__ = CategoricalChart; + LineChart.prototype = Object.create( CategoricalChart && CategoricalChart.prototype ); + LineChart.prototype.constructor = LineChart; + + LineChart.prototype.render = function render () { + + CategoricalChart.prototype.render.call(this); + + this.updateStackRange(); + this.renderSegments(); + }; + + LineChart.prototype.pointType = function pointType () { + return _line_point__WEBPACK_IMPORTED_MODULE_1__["default"]; + }; + + LineChart.prototype.createPoint = function createPoint (data, fields) { + var categoryIx = fields.categoryIx; + var category = fields.category; + var series = fields.series; + var seriesIx = fields.seriesIx; + var missingValues = this.seriesMissingValues(series); + var value = data.valueFields.value; + + if (!Object(_common__WEBPACK_IMPORTED_MODULE_8__["defined"])(value) || value === null) { + if (missingValues === _constants__WEBPACK_IMPORTED_MODULE_7__["ZERO"]) { + value = 0; + } else { + return null; + } + } + + var pointOptions = this.pointOptions(series, seriesIx); + pointOptions = this.evalPointOptions( + pointOptions, value, category, categoryIx, series, seriesIx + ); + + var color = data.fields.color || series.color; + if (Object(_common__WEBPACK_IMPORTED_MODULE_8__["isFunction"])(series.color)) { + color = pointOptions.color; + } + + var point = new _line_point__WEBPACK_IMPORTED_MODULE_1__["default"](value, pointOptions); + point.color = color; + + this.append(point); + + return point; + }; + + LineChart.prototype.plotRange = function plotRange (point) { + var this$1 = this; + + var plotValue = this.plotValue(point); + + if (this.options.isStacked) { + var categoryIx = point.categoryIx; + var categoryPoints = this.categoryPoints[categoryIx]; + + for (var i = 0; i < categoryPoints.length; i++) { + var other = categoryPoints[i]; + + if (point === other) { + break; + } + + plotValue += this$1.plotValue(other); + + if (this$1.options.isStacked100) { + plotValue = Math.min(plotValue, 1); + } + } + + } + + return [ plotValue, plotValue ]; + }; + + LineChart.prototype.createSegment = function createSegment (linePoints, currentSeries, seriesIx) { + var style = currentSeries.style; + var pointType; + + if (style === _constants__WEBPACK_IMPORTED_MODULE_7__["STEP"]) { + pointType = _step_line_segment__WEBPACK_IMPORTED_MODULE_3__["default"]; + } else if (style === _constants__WEBPACK_IMPORTED_MODULE_7__["SMOOTH"]) { + pointType = _spline_segment__WEBPACK_IMPORTED_MODULE_4__["default"]; + } else { + pointType = _line_segment__WEBPACK_IMPORTED_MODULE_2__["default"]; + } + + return new pointType(linePoints, currentSeries, seriesIx); + }; + + LineChart.prototype.animationPoints = function animationPoints () { + var points = this.points; + var result = []; + for (var idx = 0; idx < points.length; idx++) { + result.push((points[idx] || {}).marker); + } + return result.concat(this._segments); + }; + + return LineChart; +}(_categorical_chart__WEBPACK_IMPORTED_MODULE_0__["default"])); + +Object(_common__WEBPACK_IMPORTED_MODULE_8__["deepExtend"])(LineChart.prototype, _mixins_line_chart_mixin__WEBPACK_IMPORTED_MODULE_5__["default"], _mixins_clip_animation_mixin__WEBPACK_IMPORTED_MODULE_6__["default"]); + + __webpack_exports__["default"] = (LineChart); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/line-chart/line-point.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/main.js"); + var _core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core.js"); + var _mixins_point_events_mixin__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/mixins/point-events-mixin.js"); + var _mixins_note_mixin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/mixins/note-mixin.js"); + var _constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/constants.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + + + + + + + + +var LinePoint = (function (ChartElement) { + function LinePoint(value, options) { + ChartElement.call(this); + + this.value = value; + this.options = options; + this.aboveAxis = Object(_common__WEBPACK_IMPORTED_MODULE_6__["valueOrDefault"])(this.options.aboveAxis, true); + this.tooltipTracking = true; + } + + if ( ChartElement ) LinePoint.__proto__ = ChartElement; + LinePoint.prototype = Object.create( ChartElement && ChartElement.prototype ); + LinePoint.prototype.constructor = LinePoint; + + LinePoint.prototype.render = function render () { + var ref = this.options; + var markers = ref.markers; + var labels = ref.labels; + + if (this._rendered) { + return; + } + + this._rendered = true; + + if (markers.visible && markers.size) { + this.marker = this.createMarker(); + this.append(this.marker); + } + + if (labels.visible) { + var labelTemplate = Object(_common__WEBPACK_IMPORTED_MODULE_6__["getTemplate"])(labels); + var pointData = this.pointData(); + var labelText = this.value; + if (labelTemplate) { + labelText = labelTemplate(pointData); + } else if (labels.format) { + labelText = this.formatValue(labels.format); + } + this.label = new _core__WEBPACK_IMPORTED_MODULE_1__["TextBox"](labelText, + Object(_common__WEBPACK_IMPORTED_MODULE_6__["deepExtend"])({ + align: _common_constants__WEBPACK_IMPORTED_MODULE_5__["CENTER"], + vAlign: _common_constants__WEBPACK_IMPORTED_MODULE_5__["CENTER"], + margin: { + left: 5, + right: 5 + }, + zIndex: Object(_common__WEBPACK_IMPORTED_MODULE_6__["valueOrDefault"])(labels.zIndex, this.series.zIndex) + }, labels), + pointData + ); + this.append(this.label); + } + + this.createNote(); + + if (this.errorBar) { + this.append(this.errorBar); + } + }; + + LinePoint.prototype.markerBorder = function markerBorder () { + var options = this.options.markers; + var background = options.background; + var border = Object(_common__WEBPACK_IMPORTED_MODULE_6__["deepExtend"])({ color: this.color }, options.border); + + if (!Object(_common__WEBPACK_IMPORTED_MODULE_6__["defined"])(border.color)) { + border.color = new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["Color"](background).brightness(_constants__WEBPACK_IMPORTED_MODULE_4__["BORDER_BRIGHTNESS"]).toHex(); + } + + return border; + }; + + LinePoint.prototype.createVisual = function createVisual () {}; + + LinePoint.prototype.createMarker = function createMarker () { + var options = this.options.markers; + var marker = new _core__WEBPACK_IMPORTED_MODULE_1__["ShapeElement"]({ + type: options.type, + width: options.size, + height: options.size, + rotation: options.rotation, + background: options.background, + border: this.markerBorder(), + opacity: options.opacity, + zIndex: Object(_common__WEBPACK_IMPORTED_MODULE_6__["valueOrDefault"])(options.zIndex, this.series.zIndex), + animation: options.animation, + visual: options.visual + }, { + dataItem: this.dataItem, + value: this.value, + series: this.series, + category: this.category + }); + + return marker; + }; + + LinePoint.prototype.markerBox = function markerBox () { + if (!this.marker) { + this.marker = this.createMarker(); + this.marker.reflow(this._childBox); + } + + return this.marker.box; + }; + + LinePoint.prototype.reflow = function reflow (targetBox) { + var this$1 = this; + + var ref = this; + var options = ref.options; + var aboveAxis = ref.aboveAxis; + var vertical = options.vertical; + + this.render(); + + this.box = targetBox; + var childBox = targetBox.clone(); + + if (vertical) { + if (aboveAxis) { + childBox.y1 -= childBox.height(); + } else { + childBox.y2 += childBox.height(); + } + } else { + if (aboveAxis) { + childBox.x1 += childBox.width(); + } else { + childBox.x2 -= childBox.width(); + } + } + + this._childBox = childBox; + if (this.marker) { + this.marker.reflow(childBox); + } + + this.reflowLabel(childBox); + + if (this.errorBars) { + for (var i = 0; i < this.errorBars.length; i++) { + this$1.errorBars[i].reflow(childBox); + } + } + + if (this.note) { + var noteTargetBox = this.markerBox(); + + if (!(options.markers.visible && options.markers.size)) { + var center = noteTargetBox.center(); + noteTargetBox = new _core__WEBPACK_IMPORTED_MODULE_1__["Box"](center.x, center.y, center.x, center.y); + } + + this.note.reflow(noteTargetBox); + } + }; + + LinePoint.prototype.reflowLabel = function reflowLabel (box) { + var ref = this; + var options = ref.options; + var label = ref.label; + var anchor = options.labels.position; + + if (label) { + anchor = anchor === _constants__WEBPACK_IMPORTED_MODULE_4__["ABOVE"] ? _common_constants__WEBPACK_IMPORTED_MODULE_5__["TOP"] : anchor; + anchor = anchor === _constants__WEBPACK_IMPORTED_MODULE_4__["BELOW"] ? _common_constants__WEBPACK_IMPORTED_MODULE_5__["BOTTOM"] : anchor; + + label.reflow(box); + label.box.alignTo(this.markerBox(), anchor); + label.reflow(label.box); + } + }; + + LinePoint.prototype.createHighlight = function createHighlight () { + var markers = this.options.highlight.markers; + var defaultColor = this.markerBorder().color; + var options = this.options.markers; + var size = options.size + (options.border.width || 0) + (markers.border.width || 0); + + var shadow = new _core__WEBPACK_IMPORTED_MODULE_1__["ShapeElement"]({ + type: options.type, + width: size, + height: size, + rotation: options.rotation, + background: markers.color || defaultColor, + border: { + color: markers.border.color, + width: markers.border.width, + opacity: Object(_common__WEBPACK_IMPORTED_MODULE_6__["valueOrDefault"])(markers.border.opacity, 1) + }, + opacity: Object(_common__WEBPACK_IMPORTED_MODULE_6__["valueOrDefault"])(markers.opacity, 1) + }); + shadow.reflow(this._childBox); + + return shadow.getElement(); + }; + + LinePoint.prototype.highlightVisual = function highlightVisual () { + return (this.marker || {}).visual; + }; + + LinePoint.prototype.highlightVisualArgs = function highlightVisualArgs () { + var marker = this.marker; + var visual, rect; + + if (marker) { + rect = marker.paddingBox.toRect(); + visual = marker.visual; + } else { + var size = this.options.markers.size; + var halfSize = size / 2; + var center = this.box.center(); + rect = new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].Rect([ center.x - halfSize, center.y - halfSize ], [ size, size ]); + } + + return { + options: this.options, + rect: rect, + visual: visual + }; + }; + + LinePoint.prototype.tooltipAnchor = function tooltipAnchor () { + var markerBox = this.markerBox(); + var clipBox = this.owner.pane.clipBox(); + var showTooltip = !clipBox || clipBox.overlaps(markerBox); + + if (showTooltip) { + var x = markerBox.x2 + _constants__WEBPACK_IMPORTED_MODULE_4__["TOOLTIP_OFFSET"]; + var horizontalAlign = _common_constants__WEBPACK_IMPORTED_MODULE_5__["LEFT"]; + var y, verticalAlign; + + if (this.aboveAxis) { + y = markerBox.y1; + verticalAlign = _common_constants__WEBPACK_IMPORTED_MODULE_5__["BOTTOM"]; + } else { + y = markerBox.y2; + verticalAlign = _common_constants__WEBPACK_IMPORTED_MODULE_5__["TOP"]; + } + + return { + point: new _core__WEBPACK_IMPORTED_MODULE_1__["Point"](x, y), + align: { + horizontal: horizontalAlign, + vertical: verticalAlign + } + }; + } + }; + + LinePoint.prototype.formatValue = function formatValue (format) { + return this.owner.formatPointValue(this, format); + }; + + LinePoint.prototype.overlapsBox = function overlapsBox (box) { + var markerBox = this.markerBox(); + return markerBox.overlaps(box); + }; + + LinePoint.prototype.unclipElements = function unclipElements () { + if (this.label) { + this.label.options.noclip = true; + } + + if (this.note) { + this.note.options.noclip = true; + } + }; + + LinePoint.prototype.pointData = function pointData () { + return { + dataItem: this.dataItem, + category: this.category, + value: this.value, + percentage: this.percentage, + stackValue: this.stackValue, + series: this.series + }; + }; + + return LinePoint; +}(_core__WEBPACK_IMPORTED_MODULE_1__["ChartElement"])); + +LinePoint.prototype.defaults = { + vertical: true, + markers: { + visible: true, + background: _common_constants__WEBPACK_IMPORTED_MODULE_5__["WHITE"], + size: _constants__WEBPACK_IMPORTED_MODULE_4__["LINE_MARKER_SIZE"], + type: _common_constants__WEBPACK_IMPORTED_MODULE_5__["CIRCLE"], + border: { + width: 2 + }, + opacity: 1 + }, + labels: { + visible: false, + position: _constants__WEBPACK_IMPORTED_MODULE_4__["ABOVE"], + margin: Object(_common__WEBPACK_IMPORTED_MODULE_6__["getSpacing"])(3), + padding: Object(_common__WEBPACK_IMPORTED_MODULE_6__["getSpacing"])(4), + animation: { + type: _constants__WEBPACK_IMPORTED_MODULE_4__["FADEIN"], + delay: _constants__WEBPACK_IMPORTED_MODULE_4__["INITIAL_ANIMATION_DURATION"] + } + }, + notes: { + label: {} + }, + highlight: { + markers: { + border: { + color: "#fff", + width: 2 + } + }, + zIndex: _common_constants__WEBPACK_IMPORTED_MODULE_5__["HIGHLIGHT_ZINDEX"] + }, + errorBars: { + line: { + width: 1 + } + } +}; + +Object(_common__WEBPACK_IMPORTED_MODULE_6__["deepExtend"])(LinePoint.prototype, _mixins_point_events_mixin__WEBPACK_IMPORTED_MODULE_2__["default"]); +Object(_common__WEBPACK_IMPORTED_MODULE_6__["deepExtend"])(LinePoint.prototype, _mixins_note_mixin__WEBPACK_IMPORTED_MODULE_3__["default"]); + + __webpack_exports__["default"] = (LinePoint); + + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/line-chart/line-segment.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/main.js"); + var _core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core.js"); + var _common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + + + +var LineSegment = (function (ChartElement) { + function LineSegment(linePoints, series, seriesIx) { + ChartElement.call(this); + + this.linePoints = linePoints; + this.series = series; + this.seriesIx = seriesIx; + } + + if ( ChartElement ) LineSegment.__proto__ = ChartElement; + LineSegment.prototype = Object.create( ChartElement && ChartElement.prototype ); + LineSegment.prototype.constructor = LineSegment; + + LineSegment.prototype.points = function points () { + return this.toGeometryPoints(this.linePoints); + }; + + LineSegment.prototype.toGeometryPoints = function toGeometryPoints (points) { + var result = []; + for (var i = 0, length = points.length; i < length; i++) { + if (points[i] && points[i].visible !== false) { + result.push(points[i]._childBox.toRect().center()); + } + } + + return result; + }; + + LineSegment.prototype.createVisual = function createVisual () { + var this$1 = this; + + var customVisual = this.series.visual; + if (customVisual) { + this.visual = customVisual({ + points: this.toGeometryPoints(this.linePoints), + series: this.series, + sender: this.getSender(), + createVisual: function () { + this$1.segmentVisual(); + + return this$1.visual; + } + }); + if (this.visual && !Object(_common__WEBPACK_IMPORTED_MODULE_2__["defined"])(this.visual.options.zIndex)) { + this.visual.options.zIndex = this.series.zIndex; + } + } else { + this.segmentVisual(); + } + }; + + LineSegment.prototype.segmentVisual = function segmentVisual () { + var ref = this; + var options = ref.options; + var series = ref.series; + var color = series.color; + var defaults = series._defaults; + + if (Object(_common__WEBPACK_IMPORTED_MODULE_2__["isFunction"])(color) && defaults) { + color = defaults.color; + } + + var line = _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Path.fromPoints(this.points(), { + stroke: { + color: color, + width: series.width, + opacity: series.opacity, + dashType: series.dashType + }, + zIndex: series.zIndex + }); + + if (options.closed) { + line.close(); + } + + this.visual = line; + }; + + LineSegment.prototype.aliasFor = function aliasFor (e, coords) { + return this.parent.getNearestPoint(coords.x, coords.y, this.seriesIx); + }; + + return LineSegment; +}(_core__WEBPACK_IMPORTED_MODULE_1__["ChartElement"])); + +Object(_common__WEBPACK_IMPORTED_MODULE_2__["setDefaultOptions"])(LineSegment, { + closed: false +}); + + __webpack_exports__["default"] = (LineSegment); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/line-chart/spline-segment.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/main.js"); + var _line_segment__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/line-chart/line-segment.js"); + var _core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core.js"); + var _common__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + + + + + +var SplineSegment = (function (LineSegment) { + function SplineSegment () { + LineSegment.apply(this, arguments); + } + + if ( LineSegment ) SplineSegment.__proto__ = LineSegment; + SplineSegment.prototype = Object.create( LineSegment && LineSegment.prototype ); + SplineSegment.prototype.constructor = SplineSegment; + + SplineSegment.prototype.segmentVisual = function segmentVisual () { + var series = this.series; + var defaults = series._defaults; + var color = series.color; + + if (Object(_common__WEBPACK_IMPORTED_MODULE_3__["isFunction"])(color) && defaults) { + color = defaults.color; + } + + var curveProcessor = new _core__WEBPACK_IMPORTED_MODULE_2__["CurveProcessor"](this.options.closed); + var segments = curveProcessor.process(this.points()); + var curve = new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Path({ + stroke: { + color: color, + width: series.width, + opacity: series.opacity, + dashType: series.dashType + }, + zIndex: series.zIndex + }); + + curve.segments.push.apply(curve.segments, segments); + + this.visual = curve; + }; + + return SplineSegment; +}(_line_segment__WEBPACK_IMPORTED_MODULE_1__["default"])); + + __webpack_exports__["default"] = (SplineSegment); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/line-chart/step-line-mixin.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/main.js"); + var _common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + + + + + +var StepLineMixin = { + calculateStepPoints: function(points) { + var categoryAxis = this.parent.plotArea.seriesCategoryAxis(this.series); + var ref = categoryAxis.options; + var justified = ref.justified; + var vertical = ref.vertical; + var reverse = ref.reverse; + + var stepAxis = vertical ? _common_constants__WEBPACK_IMPORTED_MODULE_2__["X"] : _common_constants__WEBPACK_IMPORTED_MODULE_2__["Y"]; + var axis = vertical ? _common_constants__WEBPACK_IMPORTED_MODULE_2__["Y"] : _common_constants__WEBPACK_IMPORTED_MODULE_2__["X"]; + var stepDir = reverse ? 2 : 1; + var dir = stepDir; + + var previousPoint = toGeometryPoint(points[0], stepAxis, stepDir, axis, dir); + var result = [ previousPoint ]; + + for (var idx = 1; idx < points.length; idx++) { + var point = toGeometryPoint(points[idx], stepAxis, stepDir, axis, dir); + + if (previousPoint[stepAxis] !== point[stepAxis]) { + var stepPoint = new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].Point(); + stepPoint[stepAxis] = previousPoint[stepAxis]; + stepPoint[axis] = point[axis]; + + result.push(stepPoint, point); + } + + previousPoint = point; + } + + if (!justified) { + result.push(toGeometryPoint(Object(_common__WEBPACK_IMPORTED_MODULE_1__["last"])(points), stepAxis, stepDir, axis, reverse ? 1 : 2)); + } else if (previousPoint !== Object(_common__WEBPACK_IMPORTED_MODULE_1__["last"])(result)) { + result.push(previousPoint); + } + + return result; + + } +}; + +function toGeometryPoint(lintPoint, stepAxis, stepDir, axis, dir) { + var box = lintPoint.box; + var result = new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].Point(); + + result[stepAxis] = box[stepAxis + stepDir]; + result[axis] = box[axis + dir]; + + return result; +} + + __webpack_exports__["default"] = (StepLineMixin); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/line-chart/step-line-segment.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _line_segment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/line-chart/line-segment.js"); + var _step_line_mixin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/line-chart/step-line-mixin.js"); + var _common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + +var StepLineSegment = (function (LineSegment) { + function StepLineSegment () { + LineSegment.apply(this, arguments); + } + + if ( LineSegment ) StepLineSegment.__proto__ = LineSegment; + StepLineSegment.prototype = Object.create( LineSegment && LineSegment.prototype ); + StepLineSegment.prototype.constructor = StepLineSegment; + + StepLineSegment.prototype.points = function points () { + return this.calculateStepPoints(this.linePoints); + }; + + return StepLineSegment; +}(_line_segment__WEBPACK_IMPORTED_MODULE_0__["default"])); + +Object(_common__WEBPACK_IMPORTED_MODULE_2__["deepExtend"])(StepLineSegment.prototype, _step_line_mixin__WEBPACK_IMPORTED_MODULE_1__["default"]); + + __webpack_exports__["default"] = (StepLineSegment); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/mixins/clip-animation-mixin.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/main.js"); + var _animations_clip_animation__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/animations/clip-animation.js"); + var _utils_any_has_z_index__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/utils/any-has-z-index.js"); + var _common__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + + + +var ClipAnimationMixin = { + createAnimation: function() { + var root = this.getRoot(); + if (root && (root.options || {}).transitions !== false) { + var box = root.size(); + var clipPath = _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Path.fromRect(box.toRect()); + this.visual.clip(clipPath); + this.animation = new _animations_clip_animation__WEBPACK_IMPORTED_MODULE_1__["default"](clipPath, { + box: box + }); + if (Object(_utils_any_has_z_index__WEBPACK_IMPORTED_MODULE_2__["default"])(this.options.series)) { + this._setChildrenAnimation(clipPath); + } + } + }, + + _setChildrenAnimation: function(clipPath) { + var points = this.animationPoints(); + + for (var idx = 0; idx < points.length; idx++) { + var point = points[idx]; + if (point && point.visual && Object(_common__WEBPACK_IMPORTED_MODULE_3__["defined"])(point.visual.options.zIndex)) { + point.visual.clip(clipPath); + } + } + } +}; + + __webpack_exports__["default"] = (ClipAnimationMixin); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/mixins/line-chart-mixin.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/constants.js"); + var _core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + + + +var LineChartMixin = { + renderSegments: function() { + var this$1 = this; + + var ref = this; + var options = ref.options; + var seriesPoints = ref.seriesPoints; + var series = options.series; + var seriesCount = seriesPoints.length; + var lastSegment; + + this._segments = []; + + for (var seriesIx = 0; seriesIx < seriesCount; seriesIx++) { + var currentSeries = series[seriesIx]; + var sortedPoints = this$1.sortPoints(seriesPoints[seriesIx]); + var pointCount = sortedPoints.length; + var linePoints = []; + + for (var pointIx = 0; pointIx < pointCount; pointIx++) { + var point = sortedPoints[pointIx]; + if (point) { + linePoints.push(point); + } else if (this$1.seriesMissingValues(currentSeries) !== _constants__WEBPACK_IMPORTED_MODULE_0__["INTERPOLATE"]) { + if (linePoints.length > 1) { + lastSegment = this$1.createSegment( + linePoints, currentSeries, seriesIx, lastSegment + ); + this$1._addSegment(lastSegment); + } + linePoints = []; + } + } + + if (linePoints.length > 1) { + lastSegment = this$1.createSegment( + linePoints, currentSeries, seriesIx, lastSegment + ); + this$1._addSegment(lastSegment); + } + } + + this.children.unshift.apply(this.children, this._segments); + }, + + _addSegment: function(segment) { + this._segments.push(segment); + segment.parent = this; + }, + + sortPoints: function(points) { + return points; + }, + + seriesMissingValues: function(series) { + var missingValues = series.missingValues; + var assumeZero = !missingValues && this.options.isStacked; + + return assumeZero ? _constants__WEBPACK_IMPORTED_MODULE_0__["ZERO"] : missingValues || _constants__WEBPACK_IMPORTED_MODULE_0__["INTERPOLATE"]; + }, + + getNearestPoint: function(x, y, seriesIx) { + var target = new _core__WEBPACK_IMPORTED_MODULE_1__["Point"](x, y); + var allPoints = this.seriesPoints[seriesIx]; + var nearestPointDistance = _common_constants__WEBPACK_IMPORTED_MODULE_2__["MAX_VALUE"]; + var nearestPoint; + + for (var i = 0; i < allPoints.length; i++) { + var point = allPoints[i]; + + if (point && Object(_common__WEBPACK_IMPORTED_MODULE_3__["defined"])(point.value) && point.value !== null && point.visible !== false) { + var pointBox = point.box; + var pointDistance = pointBox.center().distanceTo(target); + + if (pointDistance < nearestPointDistance) { + nearestPoint = point; + nearestPointDistance = pointDistance; + } + } + } + + return nearestPoint; + } +}; + + __webpack_exports__["default"] = (LineChartMixin); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/mixins/note-mixin.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core.js"); + var _common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + +var NoteMixin = { + createNote: function() { + var options = this.options.notes; + var text = this.noteText || options.label.text; + + if (options.visible !== false && Object(_common__WEBPACK_IMPORTED_MODULE_1__["defined"])(text) && text !== null) { + this.note = new _core__WEBPACK_IMPORTED_MODULE_0__["Note"]({ + value: this.value, + text: text, + dataItem: this.dataItem, + category: this.category, + series: this.series + }, this.options.notes, this.owner.chartService); + + this.append(this.note); + } + } +}; + + __webpack_exports__["default"] = (NoteMixin); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/mixins/pie-chart-mixin.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/utils.js"); + + + +var PieChartMixin = { + createLegendItem: function(value, point, options) { + var legendOptions = this.options.legend || {}; + var labelsOptions = legendOptions.labels || {}; + var inactiveItems = legendOptions.inactiveItems || {}; + var inactiveItemsLabels = inactiveItems.labels || {}; + + if (options && options.visibleInLegend !== false) { + var pointVisible = options.visible !== false; + var labelTemplate = pointVisible ? Object(_common__WEBPACK_IMPORTED_MODULE_0__["getTemplate"])(labelsOptions) : + Object(_common__WEBPACK_IMPORTED_MODULE_0__["getTemplate"])(inactiveItemsLabels) || Object(_common__WEBPACK_IMPORTED_MODULE_0__["getTemplate"])(labelsOptions); + var text = options.category; + + if (labelTemplate) { + text = labelTemplate({ + text: text, + series: options.series, + dataItem: options.dataItem, + percentage: options.percentage, + value: value + }); + } + + var itemLabelOptions, markerColor; + if (pointVisible) { + itemLabelOptions = {}; + markerColor = point.color; + } else { + itemLabelOptions = { + color: inactiveItemsLabels.color, + font: inactiveItemsLabels.font + }; + markerColor = (inactiveItems.markers || {}).color; + } + + if (Object(_utils__WEBPACK_IMPORTED_MODULE_1__["hasValue"])(text) && text !== "") { + this.legendItems.push({ + active: pointVisible, + pointIndex: options.index, + text: text, + series: options.series, + markerColor: markerColor, + labels: itemLabelOptions + }); + } + } + } +}; + + __webpack_exports__["default"] = (PieChartMixin); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/mixins/plotarea-events-mixin.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/constants.js"); + + +var PlotAreaEventsMixin = { + hover: function(chart, e) { + this._dispatchEvent(chart, e, _constants__WEBPACK_IMPORTED_MODULE_0__["PLOT_AREA_HOVER"]); + }, + + click: function(chart, e) { + this._dispatchEvent(chart, e, _constants__WEBPACK_IMPORTED_MODULE_0__["PLOT_AREA_CLICK"]); + } +}; + + __webpack_exports__["default"] = (PlotAreaEventsMixin); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/mixins/point-events-mixin.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + +var PointEventsMixin = { + click: function(chart, e) { + return chart.trigger( + _constants__WEBPACK_IMPORTED_MODULE_0__["SERIES_CLICK"], + this.eventArgs(e) + ); + }, + + hover: function(chart, e) { + return chart.trigger( + _constants__WEBPACK_IMPORTED_MODULE_0__["SERIES_HOVER"], + this.eventArgs(e) + ); + }, + + over: function(chart, e) { + return chart.trigger( + _constants__WEBPACK_IMPORTED_MODULE_0__["SERIES_OVER"], + this.eventArgs(e) + ); + }, + + out: function(chart, e) { + return chart.trigger( + _constants__WEBPACK_IMPORTED_MODULE_0__["SERIES_LEAVE"], + this.eventArgs(e) + ); + }, + + eventArgs: function(e) { + return { + value: this.value, + percentage: this.percentage, + stackValue: this.stackValue, + category: this.category, + series: this.series, + dataItem: this.dataItem, + runningTotal: this.runningTotal, + total: this.total, + element: Object(_common__WEBPACK_IMPORTED_MODULE_1__["eventElement"])(e), + originalEvent: e, + point: this + }; + } +}; + + __webpack_exports__["default"] = (PointEventsMixin); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/ohlc-chart/ohlc-chart.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _candlestick_chart_candlestick_chart__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/candlestick-chart/candlestick-chart.js"); + var _ohlc_point__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/ohlc-chart/ohlc-point.js"); + + + +var OHLCChart = (function (CandlestickChart) { + function OHLCChart () { + CandlestickChart.apply(this, arguments); + } + + if ( CandlestickChart ) OHLCChart.__proto__ = CandlestickChart; + OHLCChart.prototype = Object.create( CandlestickChart && CandlestickChart.prototype ); + OHLCChart.prototype.constructor = OHLCChart; + + OHLCChart.prototype.pointType = function pointType () { + return _ohlc_point__WEBPACK_IMPORTED_MODULE_1__["default"]; + }; + + return OHLCChart; +}(_candlestick_chart_candlestick_chart__WEBPACK_IMPORTED_MODULE_0__["default"])); + + __webpack_exports__["default"] = (OHLCChart); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/ohlc-chart/ohlc-point.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _candlestick_chart_candlestick__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/candlestick-chart/candlestick.js"); + + +var OHLCPoint = (function (Candlestick) { + function OHLCPoint () { + Candlestick.apply(this, arguments); + } + + if ( Candlestick ) OHLCPoint.__proto__ = Candlestick; + OHLCPoint.prototype = Object.create( Candlestick && Candlestick.prototype ); + OHLCPoint.prototype.constructor = OHLCPoint; + + OHLCPoint.prototype.reflow = function reflow (box) { + var ref = this; + var options = ref.options; + var value = ref.value; + var chart = ref.owner; + var valueAxis = chart.seriesValueAxis(options); + var oPoints = []; + var cPoints = []; + var lhPoints = []; + + var lhSlot = valueAxis.getSlot(value.low, value.high); + var oSlot = valueAxis.getSlot(value.open, value.open); + var cSlot = valueAxis.getSlot(value.close, value.close); + + oSlot.x1 = cSlot.x1 = lhSlot.x1 = box.x1; + oSlot.x2 = cSlot.x2 = lhSlot.x2 = box.x2; + + var mid = lhSlot.center().x; + + oPoints.push([ oSlot.x1, oSlot.y1 ]); + oPoints.push([ mid, oSlot.y1 ]); + cPoints.push([ mid, cSlot.y1 ]); + cPoints.push([ cSlot.x2, cSlot.y1 ]); + lhPoints.push([ mid, lhSlot.y1 ]); + lhPoints.push([ mid, lhSlot.y2 ]); + + this.lines = [ + oPoints, cPoints, lhPoints + ]; + + this.box = lhSlot.clone().wrap(oSlot.clone().wrap(cSlot)); + + this.reflowNote(); + }; + + OHLCPoint.prototype.createBody = function createBody () {}; + + return OHLCPoint; +}(_candlestick_chart_candlestick__WEBPACK_IMPORTED_MODULE_0__["default"])); + + __webpack_exports__["default"] = (OHLCPoint); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/pan-and-zoom/accept-key.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return acceptKey; }); +function acceptKey(e, mouseKey) { + var key = (mouseKey || "").toLowerCase(); + var event = e.event; + var accept = (key === "none" && !(event.ctrlKey || event.shiftKey || event.altKey)) || event[key + "Key"]; + + return accept; +} + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/pan-and-zoom/mousewheel-zoom.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _to_chart_axis_ranges__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/pan-and-zoom/to-chart-axis-ranges.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + + + +var MousewheelZoom = (function (Class) { + function MousewheelZoom(chart, options) { + Class.call(this); + + this.chart = chart; + this.options = Object(_common__WEBPACK_IMPORTED_MODULE_2__["deepExtend"])({}, this.options, options); + } + + if ( Class ) MousewheelZoom.__proto__ = Class; + MousewheelZoom.prototype = Object.create( Class && Class.prototype ); + MousewheelZoom.prototype.constructor = MousewheelZoom; + + MousewheelZoom.prototype.updateRanges = function updateRanges (delta) { + var lock = (this.options.lock || "").toLowerCase(); + var axisRanges = []; + var axes = this.chart._plotArea.axes; + + for (var idx = 0; idx < axes.length; idx++) { + var axis = axes[idx]; + var vertical = axis.options.vertical; + + if (!(lock === _common_constants__WEBPACK_IMPORTED_MODULE_1__["X"] && !vertical) && !(lock === _common_constants__WEBPACK_IMPORTED_MODULE_1__["Y"] && vertical) && axis.zoomRange) { + var range = axis.zoomRange(-delta); + + if (range) { + axisRanges.push({ + axis: axis, + range: range + }); + } + } + } + + this.axisRanges = axisRanges; + return Object(_to_chart_axis_ranges__WEBPACK_IMPORTED_MODULE_0__["default"])(axisRanges); + }; + + MousewheelZoom.prototype.zoom = function zoom () { + var axisRanges = this.axisRanges; + var plotArea = this.chart._plotArea; + + if (axisRanges && axisRanges.length && plotArea.updateAxisOptions) { + for (var idx = 0; idx < axisRanges.length; idx++) { + var axisRange = axisRanges[idx]; + plotArea.updateAxisOptions(axisRange.axis, axisRange.range); + } + plotArea.redraw(plotArea.panes); + } + }; + + MousewheelZoom.prototype.destroy = function destroy () { + delete this.chart; + }; + + return MousewheelZoom; +}(_common__WEBPACK_IMPORTED_MODULE_2__["Class"])); + + __webpack_exports__["default"] = (MousewheelZoom); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/pan-and-zoom/pannable.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _accept_key__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/pan-and-zoom/accept-key.js"); + var _to_chart_axis_ranges__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/pan-and-zoom/to-chart-axis-ranges.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + + + +var Pannable = (function (Class) { + function Pannable(plotArea, options) { + Class.call(this); + + this.plotArea = plotArea; + this.options = Object(_common__WEBPACK_IMPORTED_MODULE_3__["deepExtend"])({}, this.options, options); + } + + if ( Class ) Pannable.__proto__ = Class; + Pannable.prototype = Object.create( Class && Class.prototype ); + Pannable.prototype.constructor = Pannable; + + Pannable.prototype.start = function start (e) { + this._active = Object(_accept_key__WEBPACK_IMPORTED_MODULE_0__["default"])(e, this.options.key); + return this._active; + }; + + Pannable.prototype.move = function move (e) { + if (this._active) { + var axisRanges = this.axisRanges = this._panAxes(e, _common_constants__WEBPACK_IMPORTED_MODULE_2__["X"]).concat(this._panAxes(e, _common_constants__WEBPACK_IMPORTED_MODULE_2__["Y"])); + if (axisRanges.length) { + this.axisRanges = axisRanges; + return Object(_to_chart_axis_ranges__WEBPACK_IMPORTED_MODULE_1__["default"])(axisRanges); + } + } + }; + + Pannable.prototype.end = function end () { + var active = this._active; + this._active = false; + + return active; + }; + + Pannable.prototype.pan = function pan () { + var ref = this; + var plotArea = ref.plotArea; + var axisRanges = ref.axisRanges; + if (axisRanges.length) { + for (var idx = 0; idx < axisRanges.length; idx++) { + var range = axisRanges[idx]; + plotArea.updateAxisOptions(range.axis, range.range); + } + plotArea.redraw(plotArea.panes); + } + }; + + Pannable.prototype.destroy = function destroy () { + delete this.plotArea; + }; + + Pannable.prototype._panAxes = function _panAxes (e, position) { + var plotArea = this.plotArea; + var delta = -e[position].delta; + var lock = (this.options.lock || "").toLowerCase(); + var updatedAxes = []; + + if (delta !== 0 && (lock || "").toLowerCase() !== position) { + var axes = plotArea.axes; + for (var idx = 0; idx < axes.length; idx++) { + var axis = axes[idx]; + + if (position === _common_constants__WEBPACK_IMPORTED_MODULE_2__["X"] && !axis.options.vertical || position === _common_constants__WEBPACK_IMPORTED_MODULE_2__["Y"] && axis.options.vertical) { + var range = axis.pan(delta); + + if (range) { + range.limitRange = true; + updatedAxes.push({ + axis: axis, + range: range + }); + } + } + } + } + + return updatedAxes; + }; + + return Pannable; +}(_common__WEBPACK_IMPORTED_MODULE_3__["Class"])); + +Pannable.prototype.options = { + key: "none", + lock: "none" +}; + + __webpack_exports__["default"] = (Pannable); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/pan-and-zoom/to-chart-axis-ranges.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return toChartAxisRanges; }); +function toChartAxisRanges(axisRanges) { + var ranges = {}; + for (var idx = 0; idx < axisRanges.length; idx++) { + var axisRange = axisRanges[idx]; + if (axisRange.axis.options.name) { + ranges[axisRange.axis.options.name] = { + min: axisRange.range.min, + max: axisRange.range.max + }; + } + } + return ranges; +} + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/pan-and-zoom/zoom-selection.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _accept_key__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/pan-and-zoom/accept-key.js"); + var _to_chart_axis_ranges__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/pan-and-zoom/to-chart-axis-ranges.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + + + +var ZoomSelection = (function (Class) { + function ZoomSelection(chart, options) { + Class.call(this); + + this.chart = chart; + this.options = Object(_common__WEBPACK_IMPORTED_MODULE_3__["deepExtend"])({}, this.options, options); + this.createElement(); + } + + if ( Class ) ZoomSelection.__proto__ = Class; + ZoomSelection.prototype = Object.create( Class && Class.prototype ); + ZoomSelection.prototype.constructor = ZoomSelection; + + ZoomSelection.prototype.createElement = function createElement () { + var marquee = this._marquee = document.createElement("div"); + marquee.className = "k-marquee"; + var marqueeColor = document.createElement("div"); + marqueeColor.className = "k-marquee-color"; + marquee.appendChild(marqueeColor); + }; + + ZoomSelection.prototype.removeElement = function removeElement () { + if (this._marquee.parentNode) { + this._marquee.parentNode.removeChild(this._marquee); + } + }; + + ZoomSelection.prototype.setStyles = function setStyles (styles) { + Object(_common__WEBPACK_IMPORTED_MODULE_3__["elementStyles"])(this._marquee, styles); + }; + + ZoomSelection.prototype.start = function start (e) { + if (Object(_accept_key__WEBPACK_IMPORTED_MODULE_0__["default"])(e, this.options.key)) { + var chart = this.chart; + var point = chart._eventCoordinates(e); + var zoomPane = this._zoomPane = chart._plotArea.paneByPoint(point); + var clipBox = zoomPane ? zoomPane.chartsBox().clone() : null; + + if (zoomPane && clipBox) { + var offset = this._elementOffset(); + + clipBox.translate(offset.left, offset.top); + this._zoomPaneClipBox = clipBox; + + document.body.appendChild(this._marquee); + this.setStyles({ + left: e.pageX + 1, + top: e.pageY + 1, + width: 0, + height: 0 + }); + + return true; + } + } + return false; + }; + + ZoomSelection.prototype._elementOffset = function _elementOffset () { + var chartElement = this.chart.element; + var ref = Object(_common__WEBPACK_IMPORTED_MODULE_3__["elementStyles"])(chartElement, [ "paddingLeft", "paddingTop" ]); + var paddingLeft = ref.paddingLeft; + var paddingTop = ref.paddingTop; + var offset = Object(_common__WEBPACK_IMPORTED_MODULE_3__["elementOffset"])(chartElement); + + return { + left: paddingLeft + offset.left, + top: paddingTop + offset.top + }; + }; + + ZoomSelection.prototype.move = function move (e) { + var zoomPane = this._zoomPane; + if (zoomPane) { + this.setStyles(this._selectionPosition(e)); + } + }; + + ZoomSelection.prototype.end = function end (e) { + var zoomPane = this._zoomPane; + if (zoomPane) { + var elementOffset = this._elementOffset(); + var selectionPosition = this._selectionPosition(e); + selectionPosition.left -= elementOffset.left; + selectionPosition.top -= elementOffset.top; + + var start = { x: selectionPosition.left, y: selectionPosition.top }; + var end = { x: selectionPosition.left + selectionPosition.width, y: selectionPosition.top + selectionPosition.height }; + this._updateAxisRanges(start, end); + + this.removeElement(); + delete this._zoomPane; + + return Object(_to_chart_axis_ranges__WEBPACK_IMPORTED_MODULE_1__["default"])(this.axisRanges); + } + }; + + ZoomSelection.prototype.zoom = function zoom () { + var axisRanges = this.axisRanges; + if (axisRanges && axisRanges.length) { + var plotArea = this.chart._plotArea; + for (var idx = 0; idx < axisRanges.length; idx++) { + var axisRange = axisRanges[idx]; + plotArea.updateAxisOptions(axisRange.axis, axisRange.range); + } + plotArea.redraw(plotArea.panes); + } + }; + + ZoomSelection.prototype.destroy = function destroy () { + this.removeElement(); + delete this._marquee; + delete this.chart; + }; + + ZoomSelection.prototype._updateAxisRanges = function _updateAxisRanges (start, end) { + var lock = (this.options.lock || "").toLowerCase(); + var axisRanges = []; + + var axes = this._zoomPane.axes; + for (var idx = 0; idx < axes.length; idx++) { + var axis = axes[idx]; + var vertical = axis.options.vertical; + if (!(lock === _common_constants__WEBPACK_IMPORTED_MODULE_2__["X"] && !vertical) && !(lock === _common_constants__WEBPACK_IMPORTED_MODULE_2__["Y"] && vertical) && Object(_common__WEBPACK_IMPORTED_MODULE_3__["defined"])(axis.axisIndex)) { + var range = axis.pointsRange(start, end); + if (range) { + axisRanges.push({ + axis: axis, + range: range + }); + } + } + } + + this.axisRanges = axisRanges; + }; + + ZoomSelection.prototype._selectionPosition = function _selectionPosition (e) { + var clipBox = this._zoomPaneClipBox; + var startLocation = { + x: e.x.startLocation, + y: e.y.startLocation + }; + var pageX = e.x.location; + var pageY = e.y.location; + var lock = (this.options.lock || "").toLowerCase(); + var left = Math.min(startLocation.x, pageX); + var top = Math.min(startLocation.y, pageY); + var width = Math.abs(startLocation.x - pageX); + var height = Math.abs(startLocation.y - pageY); + + if (lock === _common_constants__WEBPACK_IMPORTED_MODULE_2__["X"]) { + left = clipBox.x1; + width = clipBox.width(); + } + if (lock === _common_constants__WEBPACK_IMPORTED_MODULE_2__["Y"]) { + top = clipBox.y1; + height = clipBox.height(); + } + + if (pageX > clipBox.x2) { + width = clipBox.x2 - startLocation.x; + } + + if (pageX < clipBox.x1) { + width = startLocation.x - clipBox.x1; + } + + if (pageY > clipBox.y2) { + height = clipBox.y2 - startLocation.y; + } + + if (pageY < clipBox.y1) { + height = startLocation.y - clipBox.y1; + } + + return { + left: Math.max(left, clipBox.x1), + top: Math.max(top, clipBox.y1), + width: width, + height: height + }; + }; + + return ZoomSelection; +}(_common__WEBPACK_IMPORTED_MODULE_3__["Class"])); + +ZoomSelection.prototype.options = { + key: "shift", + lock: "none" +}; + + __webpack_exports__["default"] = (ZoomSelection); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/pane.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core.js"); + var _api_elements__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/api-elements.js"); + var _chart_container__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/chart-container.js"); + var _constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/constants.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + + + + + +var Pane = (function (BoxElement) { + function Pane(options) { + BoxElement.call(this, options); + + this.id = paneID(); + + this.createTitle(); + + this.content = new _core__WEBPACK_IMPORTED_MODULE_0__["ChartElement"](); + + this.chartContainer = new _chart_container__WEBPACK_IMPORTED_MODULE_2__["default"]({}, this); + this.append(this.content); + + this.axes = []; + this.charts = []; + } + + if ( BoxElement ) Pane.__proto__ = BoxElement; + Pane.prototype = Object.create( BoxElement && BoxElement.prototype ); + Pane.prototype.constructor = Pane; + + Pane.prototype.createTitle = function createTitle () { + var titleOptions = this.options.title; + if (Object(_common__WEBPACK_IMPORTED_MODULE_5__["isObject"])(titleOptions)) { + titleOptions = Object(_common__WEBPACK_IMPORTED_MODULE_5__["deepExtend"])({}, titleOptions, { + align: titleOptions.position, + position: _common_constants__WEBPACK_IMPORTED_MODULE_4__["TOP"] + }); + } + + this.title = _core__WEBPACK_IMPORTED_MODULE_0__["Title"].buildTitle(titleOptions, this, Pane.prototype.options.title); + }; + + Pane.prototype.appendAxis = function appendAxis (axis) { + this.content.append(axis); + this.axes.push(axis); + axis.pane = this; + }; + + Pane.prototype.appendAxisAt = function appendAxisAt (axis, pos) { + this.content.append(axis); + this.axes.splice(pos, 0, axis); + axis.pane = this; + }; + + Pane.prototype.appendChart = function appendChart (chart) { + if (this.chartContainer.parent !== this.content) { + this.content.append(this.chartContainer); + } + + this.charts.push(chart); + this.chartContainer.append(chart); + chart.pane = this; + }; + + Pane.prototype.empty = function empty () { + var this$1 = this; + + var plotArea = this.parent; + + if (plotArea) { + for (var i = 0; i < this.axes.length; i++) { + plotArea.removeAxis(this$1.axes[i]); + } + + for (var i$1 = 0; i$1 < this.charts.length; i$1++) { + plotArea.removeChart(this$1.charts[i$1]); + } + } + + this.axes = []; + this.charts = []; + + this.content.destroy(); + this.content.children = []; + this.chartContainer.children = []; + }; + + Pane.prototype.reflow = function reflow (targetBox) { + // Content (such as charts) is rendered, but excluded from reflows + var content; + if (Object(_common__WEBPACK_IMPORTED_MODULE_5__["last"])(this.children) === this.content) { + content = this.children.pop(); + } + + BoxElement.prototype.reflow.call(this, targetBox); + + if (content) { + this.children.push(content); + } + + if (this.title) { + this.contentBox.y1 += this.title.box.height(); + } + }; + + Pane.prototype.visualStyle = function visualStyle () { + var style = BoxElement.prototype.visualStyle.call(this); + style.zIndex = -10; + + return style; + }; + + Pane.prototype.renderComplete = function renderComplete () { + if (this.options.visible) { + this.createGridLines(); + } + }; + + Pane.prototype.stackRoot = function stackRoot () { + return this; + }; + + Pane.prototype.clipRoot = function clipRoot () { + return this; + }; + + Pane.prototype.createGridLines = function createGridLines () { + var axes = this.axes; + var allAxes = axes.concat(this.parent.axes); + var vGridLines = []; + var hGridLines = []; + + // TODO + // Is full combination really necessary? + for (var i = 0; i < axes.length; i++) { + var axis = axes[i]; + var vertical = axis.options.vertical; + var gridLines = vertical ? vGridLines : hGridLines; + for (var j = 0; j < allAxes.length; j++) { + if (gridLines.length === 0) { + var altAxis = allAxes[j]; + if (vertical !== altAxis.options.vertical) { + Object(_common__WEBPACK_IMPORTED_MODULE_5__["append"])(gridLines, axis.createGridLines(altAxis)); + } + } + } + } + }; + + Pane.prototype.refresh = function refresh () { + this.visual.clear(); + + this.content.parent = null; + this.content.createGradient = this.createGradient.bind(this); + this.content.renderVisual(); + this.content.parent = this; + + if (this.title) { + this.visual.append(this.title.visual); + } + + this.visual.append(this.content.visual); + + this.renderComplete(); + this.notifyRender(); + }; + + Pane.prototype.chartsBox = function chartsBox () { + var axes = this.axes; + var length = axes.length; + var chartsBox = new _core__WEBPACK_IMPORTED_MODULE_0__["Box"](); + + for (var idx = 0; idx < length; idx++) { + var axis = axes[idx]; + var axisValueField = axis.options.vertical ? _common_constants__WEBPACK_IMPORTED_MODULE_4__["Y"] : _common_constants__WEBPACK_IMPORTED_MODULE_4__["X"]; + var lineBox = axis.lineBox(); + chartsBox[axisValueField + 1] = lineBox[axisValueField + 1]; + chartsBox[axisValueField + 2] = lineBox[axisValueField + 2]; + } + + if (chartsBox.x2 === 0) { + var allAxes = this.parent.axes; + var length$1 = allAxes.length; + + for (var idx$1 = 0; idx$1 < length$1; idx$1++) { + var axis$1 = allAxes[idx$1]; + if (!axis$1.options.vertical) { + var lineBox$1 = axis$1.lineBox(); + chartsBox.x1 = lineBox$1.x1; + chartsBox.x2 = lineBox$1.x2; + } + } + } + return chartsBox; + }; + + Pane.prototype.clipBox = function clipBox () { + return this.chartContainer.clipBox; + }; + + Pane.prototype.notifyRender = function notifyRender () { + var service = this.getService(); + if (service) { + service.notify(_constants__WEBPACK_IMPORTED_MODULE_3__["PANE_RENDER"], { + pane: new _api_elements__WEBPACK_IMPORTED_MODULE_1__["ChartPane"](this), + index: this.paneIndex, + name: this.options.name + }); + } + }; + + return Pane; +}(_core__WEBPACK_IMPORTED_MODULE_0__["BoxElement"])); + +var ID = 1; + +function paneID() { + return "pane" + ID++; +} + +Pane.prototype.isStackRoot = true; + +Object(_common__WEBPACK_IMPORTED_MODULE_5__["setDefaultOptions"])(Pane, { + zIndex: -1, + shrinkToFit: true, + title: { + align: _common_constants__WEBPACK_IMPORTED_MODULE_4__["LEFT"] + }, + visible: true +}); + + __webpack_exports__["default"] = (Pane); + + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/pie-chart/pie-chart.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/main.js"); + var _pie_segment__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/pie-chart/pie-segment.js"); + var _mixins_pie_chart_mixin__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/mixins/pie-chart-mixin.js"); + var _core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core.js"); + var _constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/constants.js"); + var _utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/utils.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + + + + + + + + + +var PIE_SECTOR_ANIM_DELAY = 70; + +var PieChart = (function (ChartElement) { + function PieChart(plotArea, options) { + ChartElement.call(this, options); + + this.plotArea = plotArea; + this.chartService = plotArea.chartService; + this.points = []; + this.legendItems = []; + this.render(); + } + + if ( ChartElement ) PieChart.__proto__ = ChartElement; + PieChart.prototype = Object.create( ChartElement && ChartElement.prototype ); + PieChart.prototype.constructor = PieChart; + + PieChart.prototype.render = function render () { + this.traverseDataPoints(this.addValue.bind(this)); + }; + + PieChart.prototype.traverseDataPoints = function traverseDataPoints (callback) { + var this$1 = this; + + var ref = this; + var options = ref.options; + var seriesColors = ref.plotArea.options.seriesColors; if ( seriesColors === void 0 ) seriesColors = []; + var colorsCount = seriesColors.length; + var series = options.series; + var seriesCount = series.length; + + for (var seriesIx = 0; seriesIx < seriesCount; seriesIx++) { + var currentSeries = series[seriesIx]; + var data = currentSeries.data; + var ref$1 = Object(_utils__WEBPACK_IMPORTED_MODULE_5__["bindSegments"])(currentSeries); + var total = ref$1.total; + var points = ref$1.points; + var count = ref$1.count; + var anglePerValue = 360 / total; + var constantAngle = (void 0); + if (!isFinite(anglePerValue)) { + constantAngle = 360 / count; + } + var currentAngle = (void 0); + + if (Object(_common__WEBPACK_IMPORTED_MODULE_7__["defined"])(currentSeries.startAngle)) { + currentAngle = currentSeries.startAngle; + } else { + currentAngle = options.startAngle; + } + + if (seriesIx !== seriesCount - 1) { + if (currentSeries.labels.position === _constants__WEBPACK_IMPORTED_MODULE_4__["OUTSIDE_END"]) { + currentSeries.labels.position = _common_constants__WEBPACK_IMPORTED_MODULE_6__["CENTER"]; + } + } + + for (var i = 0; i < points.length; i++) { + var pointData = points[i]; + if (!pointData) { + continue; + } + + var fields = pointData.fields; + var value = pointData.value; + var visible = pointData.visible; + var angle = value !== 0 ? (constantAngle || (value * anglePerValue)) : 0; + var explode = data.length !== 1 && Boolean(fields.explode); + + if (!Object(_common__WEBPACK_IMPORTED_MODULE_7__["isFunction"])(currentSeries.color)) { + currentSeries.color = fields.color || seriesColors[i % colorsCount]; + } + + callback(pointData.valueFields.value, new _core__WEBPACK_IMPORTED_MODULE_3__["Ring"](null, 0, 0, currentAngle, angle), { + owner: this$1, + category: Object(_common__WEBPACK_IMPORTED_MODULE_7__["defined"])(fields.category) ? fields.category : "", + index: i, + series: currentSeries, + seriesIx: seriesIx, + dataItem: data[i], + percentage: total !== 0 ? value / total : 0, + explode: explode, + visibleInLegend: fields.visibleInLegend, + visible: visible, + zIndex: seriesCount - seriesIx, + animationDelay: this$1.animationDelay(i, seriesIx, seriesCount) + }); + + if (visible !== false) { + currentAngle += angle; + } + } + } + }; + + PieChart.prototype.evalSegmentOptions = function evalSegmentOptions (options, value, fields) { + var series = fields.series; + + Object(_utils__WEBPACK_IMPORTED_MODULE_5__["evalOptions"])(options, { + value: value, + series: series, + dataItem: fields.dataItem, + category: fields.category, + percentage: fields.percentage + }, { defaults: series._defaults, excluded: [ "data", "content", "template", "visual", "toggle" ] }); + }; + + PieChart.prototype.addValue = function addValue (value, sector, fields) { + var segmentOptions = Object(_common__WEBPACK_IMPORTED_MODULE_7__["deepExtend"])({}, fields.series, { index: fields.index }); + this.evalSegmentOptions(segmentOptions, value, fields); + + this.createLegendItem(value, segmentOptions, fields); + + if (fields.visible === false) { + return; + } + + var segment = new _pie_segment__WEBPACK_IMPORTED_MODULE_1__["default"](value, sector, segmentOptions); + Object.assign(segment, fields); + this.append(segment); + this.points.push(segment); + }; + + PieChart.prototype.reflow = function reflow (targetBox) { + var ref = this; + var options = ref.options; + var points = ref.points; + var seriesConfigs = ref.seriesConfigs; if ( seriesConfigs === void 0 ) seriesConfigs = []; + var count = points.length; + var box = targetBox.clone(); + var space = 5; + var minWidth = Math.min(box.width(), box.height()); + var halfMinWidth = minWidth / 2; + var defaultPadding = minWidth - minWidth * 0.85; + var newBox = new _core__WEBPACK_IMPORTED_MODULE_3__["Box"](box.x1, box.y1, box.x1 + minWidth, box.y1 + minWidth); + var newBoxCenter = newBox.center(); + var boxCenter = box.center(); + var seriesCount = options.series.length; + var leftSideLabels = []; + var rightSideLabels = []; + var padding = Object(_common__WEBPACK_IMPORTED_MODULE_7__["valueOrDefault"])(options.padding, defaultPadding); + + this.targetBox = targetBox; + + padding = padding > halfMinWidth - space ? halfMinWidth - space : padding; + newBox.translate(boxCenter.x - newBoxCenter.x, boxCenter.y - newBoxCenter.y); + + var radius = halfMinWidth - padding; + var center = new _core__WEBPACK_IMPORTED_MODULE_3__["Point"]( + radius + newBox.x1 + padding, + radius + newBox.y1 + padding + ); + + for (var i = 0; i < count; i++) { + var segment = points[i]; + var sector = segment.sector; + var seriesIndex = segment.seriesIx; + sector.radius = radius; + sector.center = center; + + if (seriesConfigs.length) { + var seriesConfig = seriesConfigs[seriesIndex]; + sector.innerRadius = seriesConfig.innerRadius; + sector.radius = seriesConfig.radius; + } + + if (seriesIndex === seriesCount - 1 && segment.explode) { + sector.center = sector.clone().setRadius(sector.radius * 0.15).point(sector.middle()); + } + + segment.reflow(newBox); + + var label = segment.label; + if (label) { + if (label.options.position === _constants__WEBPACK_IMPORTED_MODULE_4__["OUTSIDE_END"]) { + if (seriesIndex === seriesCount - 1) { + if (label.orientation === _common_constants__WEBPACK_IMPORTED_MODULE_6__["RIGHT"]) { + rightSideLabels.push(label); + } else { + leftSideLabels.push(label); + } + } + } + } + } + + if (leftSideLabels.length > 0) { + leftSideLabels.sort(this.labelComparator(true)); + this.leftLabelsReflow(leftSideLabels); + } + + if (rightSideLabels.length > 0) { + rightSideLabels.sort(this.labelComparator(false)); + this.rightLabelsReflow(rightSideLabels); + } + + this.box = newBox; + }; + + PieChart.prototype.leftLabelsReflow = function leftLabelsReflow (labels) { + var distances = this.distanceBetweenLabels(labels); + + this.distributeLabels(distances, labels); + }; + + PieChart.prototype.rightLabelsReflow = function rightLabelsReflow (labels) { + var distances = this.distanceBetweenLabels(labels); + + this.distributeLabels(distances, labels); + }; + + PieChart.prototype.distanceBetweenLabels = function distanceBetweenLabels (labels) { + var segment = Object(_common__WEBPACK_IMPORTED_MODULE_7__["last"])(this.points); + var sector = segment.sector; + var count = labels.length - 1; + var lr = sector.radius + segment.options.labels.distance; + var distances = []; + var firstBox = labels[0].box; + var distance = Object(_common__WEBPACK_IMPORTED_MODULE_7__["round"])(firstBox.y1 - (sector.center.y - lr - firstBox.height() - firstBox.height() / 2)); + + distances.push(distance); + + for (var i = 0; i < count; i++) { + var secondBox = labels[i + 1].box; + + firstBox = labels[i].box; + distance = Object(_common__WEBPACK_IMPORTED_MODULE_7__["round"])(secondBox.y1 - firstBox.y2); + distances.push(distance); + } + distance = Object(_common__WEBPACK_IMPORTED_MODULE_7__["round"])(sector.center.y + lr - labels[count].box.y2 - labels[count].box.height() / 2); + distances.push(distance); + + return distances; + }; + + PieChart.prototype.distributeLabels = function distributeLabels (distances, labels) { + var this$1 = this; + + var count = distances.length; + var left, right, remaining; + + for (var i = 0; i < count; i++) { + remaining = -distances[i]; + left = right = i; + + while (remaining > 0 && (left >= 0 || right < count)) { + remaining = this$1._takeDistance(distances, i, --left, remaining); + remaining = this$1._takeDistance(distances, i, ++right, remaining); + } + } + + this.reflowLabels(distances, labels); + }; + + PieChart.prototype._takeDistance = function _takeDistance (distances, anchor, position, amount) { + var result = amount; + if (distances[position] > 0) { + var available = Math.min(distances[position], result); + result -= available; + distances[position] -= available; + distances[anchor] += available; + } + + return result; + }; + + PieChart.prototype.reflowLabels = function reflowLabels (distances, labels) { + var this$1 = this; + + var segment = Object(_common__WEBPACK_IMPORTED_MODULE_7__["last"])(this.points); + var sector = segment.sector; + var labelOptions = segment.options.labels; + var labelsCount = labels.length; + var labelDistance = labelOptions.distance; + var boxY = sector.center.y - (sector.radius + labelDistance) - labels[0].box.height(); + var boxX; + + distances[0] += 2; + for (var i = 0; i < labelsCount; i++) { + var label = labels[i]; + var box = label.box; + + boxY += distances[i]; + boxX = this$1.hAlignLabel( + box.x2, + sector.clone().expand(labelDistance), + boxY, + boxY + box.height(), + label.orientation === _common_constants__WEBPACK_IMPORTED_MODULE_6__["RIGHT"]); + + if (label.orientation === _common_constants__WEBPACK_IMPORTED_MODULE_6__["RIGHT"]) { + if (labelOptions.align !== _common_constants__WEBPACK_IMPORTED_MODULE_6__["CIRCLE"]) { + boxX = sector.radius + sector.center.x + labelDistance; + } + label.reflow(new _core__WEBPACK_IMPORTED_MODULE_3__["Box"](boxX + box.width(), boxY, boxX, boxY)); + } else { + if (labelOptions.align !== _common_constants__WEBPACK_IMPORTED_MODULE_6__["CIRCLE"]) { + boxX = sector.center.x - sector.radius - labelDistance; + } + label.reflow(new _core__WEBPACK_IMPORTED_MODULE_3__["Box"](boxX - box.width(), boxY, boxX, boxY)); + } + + boxY += box.height(); + } + }; + + PieChart.prototype.createVisual = function createVisual () { + var this$1 = this; + + var ref = this; + var connectors = ref.options.connectors; + var points = ref.points; + var count = points.length; + var space = 4; + + ChartElement.prototype.createVisual.call(this); + + this._connectorLines = []; + + for (var i = 0; i < count; i++) { + var segment = points[i]; + var sector = segment.sector; + var label = segment.label; + var angle = sector.middle(); + var connectorsColor = (segment.options.connectors || {}).color || connectors.color; + + if (label) { + var connectorLine = new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Path({ + stroke: { + color: connectorsColor, + width: connectors.width + }, + animation: { + type: _constants__WEBPACK_IMPORTED_MODULE_4__["FADEIN"], + delay: segment.animationDelay + } + }); + + if (label.options.position === _constants__WEBPACK_IMPORTED_MODULE_4__["OUTSIDE_END"]) { + var box = label.box; + var centerPoint = sector.center; + var start = sector.point(angle); + var middle = new _core__WEBPACK_IMPORTED_MODULE_3__["Point"](box.x1, box.center().y); + var sr = (void 0), end = (void 0), crossing = (void 0); + + start = sector.clone().expand(connectors.padding).point(angle); + connectorLine.moveTo(start.x, start.y); + // TODO: Extract into a method to remove duplication + if (label.orientation === _common_constants__WEBPACK_IMPORTED_MODULE_6__["RIGHT"]) { + end = new _core__WEBPACK_IMPORTED_MODULE_3__["Point"](box.x1 - connectors.padding, box.center().y); + crossing = intersection(centerPoint, start, middle, end); + middle = new _core__WEBPACK_IMPORTED_MODULE_3__["Point"](end.x - space, end.y); + crossing = crossing || middle; + crossing.x = Math.min(crossing.x, middle.x); + + if (this$1.pointInCircle(crossing, sector.center, sector.radius + space) || + crossing.x < sector.center.x) { + sr = sector.center.x + sector.radius + space; + if (segment.options.labels.align !== _constants__WEBPACK_IMPORTED_MODULE_4__["COLUMN"]) { + if (sr < middle.x) { + connectorLine.lineTo(sr, start.y); + } else { + connectorLine.lineTo(start.x + space * 2, start.y); + } + } else { + connectorLine.lineTo(sr, start.y); + } + connectorLine.lineTo(middle.x, end.y); + } else { + crossing.y = end.y; + connectorLine.lineTo(crossing.x, crossing.y); + } + } else { + end = new _core__WEBPACK_IMPORTED_MODULE_3__["Point"](box.x2 + connectors.padding, box.center().y); + crossing = intersection(centerPoint, start, middle, end); + middle = new _core__WEBPACK_IMPORTED_MODULE_3__["Point"](end.x + space, end.y); + crossing = crossing || middle; + crossing.x = Math.max(crossing.x, middle.x); + + if (this$1.pointInCircle(crossing, sector.center, sector.radius + space) || + crossing.x > sector.center.x) { + sr = sector.center.x - sector.radius - space; + if (segment.options.labels.align !== _constants__WEBPACK_IMPORTED_MODULE_4__["COLUMN"]) { + if (sr > middle.x) { + connectorLine.lineTo(sr, start.y); + } else { + connectorLine.lineTo(start.x - space * 2, start.y); + } + } else { + connectorLine.lineTo(sr, start.y); + } + connectorLine.lineTo(middle.x, end.y); + } else { + crossing.y = end.y; + connectorLine.lineTo(crossing.x, crossing.y); + } + } + + connectorLine.lineTo(end.x, end.y); + + this$1._connectorLines.push(connectorLine); + this$1.visual.append(connectorLine); + } + } + } + }; + + PieChart.prototype.renderVisual = function renderVisual () { + ChartElement.prototype.renderVisual.call(this); + + if (Object(_common__WEBPACK_IMPORTED_MODULE_7__["find"])(this.options.series, function (options) { return options.autoFit; })) { + var targetBox = this.targetBox; + var pieCenter = this.box.center(); + var bbox = this.visual.bbox(); + if (!bbox) { + return; + } + + var bboxBottom = bbox.bottomRight(); + + var scale = Math.min( + (pieCenter.y - targetBox.y1) / (pieCenter.y - bbox.origin.y), + (targetBox.y2 - pieCenter.y) / (bboxBottom.y - pieCenter.y), + (pieCenter.x - targetBox.x1) / (pieCenter.x - bbox.origin.x), + (targetBox.x2 - pieCenter.x) / (bboxBottom.x - pieCenter.x) + ); + + if (scale < 1) { + this.visual.transform(_progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].transform().scale(scale, scale, [ pieCenter.x, pieCenter.y ])); + } + } + }; + + PieChart.prototype.labelComparator = function labelComparator (reverse) { + var reverseValue = reverse ? -1 : 1; + + return function(a, b) { + var first = (a.parent.sector.middle() + 270) % 360; + var second = (b.parent.sector.middle() + 270) % 360; + return (first - second) * reverseValue; + }; + }; + + PieChart.prototype.hAlignLabel = function hAlignLabel (originalX, sector, y1, y2, direction) { + var radius = sector.radius; + var sector_center = sector.center; + var cx = sector_center.x; + var cy = sector_center.y; + var t = Math.min(Math.abs(cy - y1), Math.abs(cy - y2)); + + if (t > radius) { + return originalX; + } + + return cx + Math.sqrt((radius * radius) - (t * t)) * (direction ? 1 : -1); + }; + + PieChart.prototype.pointInCircle = function pointInCircle (point, center, radius) { + return Math.pow(center.x - point.x, 2) + Math.pow(center.y - point.y, 2) < Math.pow(radius, 2); + }; + + PieChart.prototype.formatPointValue = function formatPointValue (point, format) { + return this.chartService.format.auto(format, point.value); + }; + + PieChart.prototype.animationDelay = function animationDelay (categoryIndex) { + return categoryIndex * PIE_SECTOR_ANIM_DELAY; + }; + + PieChart.prototype.stackRoot = function stackRoot () { + return this; + }; + + return PieChart; +}(_core__WEBPACK_IMPORTED_MODULE_3__["ChartElement"])); + +function intersection(a1, a2, b1, b2) { + var uat = (b2.x - b1.x) * (a1.y - b1.y) - (b2.y - b1.y) * (a1.x - b1.x); + var ub = (b2.y - b1.y) * (a2.x - a1.x) - (b2.x - b1.x) * (a2.y - a1.y); + + var result; + if (ub !== 0) { + var ua = (uat / ub); + + result = new _core__WEBPACK_IMPORTED_MODULE_3__["Point"]( + a1.x + ua * (a2.x - a1.x), + a1.y + ua * (a2.y - a1.y) + ); + } + + return result; +} + +Object(_common__WEBPACK_IMPORTED_MODULE_7__["setDefaultOptions"])(PieChart, { + startAngle: 90, + connectors: { + width: 2, + color: "#939393", + padding: 8 + }, + inactiveItems: { + markers: {}, + labels: {} + } +}); + +Object(_common__WEBPACK_IMPORTED_MODULE_7__["deepExtend"])(PieChart.prototype, _mixins_pie_chart_mixin__WEBPACK_IMPORTED_MODULE_2__["default"]); + +PieChart.prototype.isStackRoot = true; + + __webpack_exports__["default"] = (PieChart); + + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/pie-chart/pie-segment.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/main.js"); + var _core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core.js"); + var _mixins_point_events_mixin__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/mixins/point-events-mixin.js"); + var _constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/constants.js"); + var _utils_has_gradient_overlay__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/utils/has-gradient-overlay.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + + + + + + + + + +var PieSegment = (function (ChartElement) { + function PieSegment(value, sector, options) { + ChartElement.call(this, options); + + this.value = value; + this.sector = sector; + } + + if ( ChartElement ) PieSegment.__proto__ = ChartElement; + PieSegment.prototype = Object.create( ChartElement && ChartElement.prototype ); + PieSegment.prototype.constructor = PieSegment; + + PieSegment.prototype.render = function render () { + var labels = this.options.labels; + var chartService = this.owner.chartService; + var labelText = this.value; + + if (this._rendered || this.visible === false) { + return; + } + this._rendered = true; + + var labelTemplate = Object(_common__WEBPACK_IMPORTED_MODULE_6__["getTemplate"])(labels); + var pointData = this.pointData(); + + if (labelTemplate) { + labelText = labelTemplate(pointData); + } else if (labels.format) { + labelText = chartService.format.auto(labels.format, labelText); + } + + if (labels.visible && (labelText || labelText === 0)) { + if (labels.position === _common_constants__WEBPACK_IMPORTED_MODULE_5__["CENTER"] || labels.position === _constants__WEBPACK_IMPORTED_MODULE_3__["INSIDE_END"]) { + if (!labels.color) { + var brightnessValue = new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["Color"](this.options.color).percBrightness(); + if (brightnessValue > 180) { + labels.color = _common_constants__WEBPACK_IMPORTED_MODULE_5__["BLACK"]; + } else { + labels.color = _common_constants__WEBPACK_IMPORTED_MODULE_5__["WHITE"]; + } + } + if (!labels.background) { + labels.background = this.options.color; + } + } else { + var themeLabels = chartService.theme.seriesDefaults.labels; + labels.color = labels.color || themeLabels.color; + labels.background = labels.background || themeLabels.background; + } + + + this.label = new _core__WEBPACK_IMPORTED_MODULE_1__["TextBox"](labelText, Object(_common__WEBPACK_IMPORTED_MODULE_6__["deepExtend"])({}, labels, { + align: _common_constants__WEBPACK_IMPORTED_MODULE_5__["CENTER"], + vAlign: "", + animation: { + type: _constants__WEBPACK_IMPORTED_MODULE_3__["FADEIN"], + delay: this.animationDelay + } + }), pointData); + + this.append(this.label); + } + }; + + PieSegment.prototype.reflow = function reflow (targetBox) { + this.render(); + this.box = targetBox; + this.reflowLabel(); + }; + + PieSegment.prototype.reflowLabel = function reflowLabel () { + var ref = this; + var labelsOptions = ref.options.labels; + var label = ref.label; + var sector = this.sector.clone(); + var labelsDistance = labelsOptions.distance; + var angle = sector.middle(); + + if (label) { + var labelHeight = label.box.height(); + var labelWidth = label.box.width(); + var lp; + + if (labelsOptions.position === _common_constants__WEBPACK_IMPORTED_MODULE_5__["CENTER"]) { + sector.radius = Math.abs((sector.radius - labelHeight) / 2) + labelHeight; + lp = sector.point(angle); + label.reflow(new _core__WEBPACK_IMPORTED_MODULE_1__["Box"](lp.x, lp.y - labelHeight / 2, lp.x, lp.y)); + } else if (labelsOptions.position === _constants__WEBPACK_IMPORTED_MODULE_3__["INSIDE_END"]) { + sector.radius = sector.radius - labelHeight / 2; + lp = sector.point(angle); + label.reflow(new _core__WEBPACK_IMPORTED_MODULE_1__["Box"](lp.x, lp.y - labelHeight / 2, lp.x, lp.y)); + } else { + var x1; + lp = sector.clone().expand(labelsDistance).point(angle); + if (lp.x >= sector.center.x) { + x1 = lp.x + labelWidth; + label.orientation = _common_constants__WEBPACK_IMPORTED_MODULE_5__["RIGHT"]; + } else { + x1 = lp.x - labelWidth; + label.orientation = _common_constants__WEBPACK_IMPORTED_MODULE_5__["LEFT"]; + } + label.reflow(new _core__WEBPACK_IMPORTED_MODULE_1__["Box"](x1, lp.y - labelHeight, lp.x, lp.y)); + } + } + }; + + PieSegment.prototype.createVisual = function createVisual () { + var this$1 = this; + + var ref = this; + var sector = ref.sector; + var options = ref.options; + + ChartElement.prototype.createVisual.call(this); + + if (this.value) { + if (options.visual) { + var startAngle = (sector.startAngle + 180) % 360; + var visual = options.visual({ + category: this.category, + dataItem: this.dataItem, + value: this.value, + series: this.series, + percentage: this.percentage, + center: new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].Point(sector.center.x, sector.center.y), + radius: sector.radius, + innerRadius: sector.innerRadius, + startAngle: startAngle, + endAngle: startAngle + sector.angle, + options: options, + sender: this.getSender(), + createVisual: function () { + var group = new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Group(); + this$1.createSegmentVisual(group); + + return group; + } + }); + + if (visual) { + this.visual.append(visual); + } + } else { + this.createSegmentVisual(this.visual); + } + } + }; + + PieSegment.prototype.createSegmentVisual = function createSegmentVisual (group) { + var ref = this; + var sector = ref.sector; + var options = ref.options; + var borderOptions = options.border || {}; + var border = borderOptions.width > 0 ? { + stroke: { + color: borderOptions.color, + width: borderOptions.width, + opacity: borderOptions.opacity, + dashType: borderOptions.dashType + } + } : {}; + var color = options.color; + var fill = { + color: color, + opacity: options.opacity + }; + var visual = this.createSegment(sector, Object(_common__WEBPACK_IMPORTED_MODULE_6__["deepExtend"])({ + fill: fill, + stroke: { + opacity: options.opacity + }, + zIndex: options.zIndex + }, border)); + + group.append(visual); + + if (Object(_utils_has_gradient_overlay__WEBPACK_IMPORTED_MODULE_4__["default"])(options)) { + group.append(this.createGradientOverlay(visual, { + baseColor: color, + fallbackFill: fill + }, Object(_common__WEBPACK_IMPORTED_MODULE_6__["deepExtend"])({ + center: [ sector.center.x, sector.center.y ], + innerRadius: sector.innerRadius, + radius: sector.radius, + userSpace: true + }, options.overlay))); + } + }; + + PieSegment.prototype.createSegment = function createSegment (sector, options) { + if (options.singleSegment) { + return new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Circle(new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].Circle(new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].Point(sector.center.x, sector.center.y), sector.radius), options); + } + + return _core__WEBPACK_IMPORTED_MODULE_1__["ShapeBuilder"].current.createRing(sector, options); + }; + + PieSegment.prototype.createAnimation = function createAnimation () { + var ref = this; + var options = ref.options; + var center = ref.sector.center; + + Object(_common__WEBPACK_IMPORTED_MODULE_6__["deepExtend"])(options, { + animation: { + center: [ center.x, center.y ], + delay: this.animationDelay + } + }); + + ChartElement.prototype.createAnimation.call(this); + }; + + PieSegment.prototype.createHighlight = function createHighlight (options) { + var highlight = this.options.highlight || {}; + var border = highlight.border || {}; + + return this.createSegment(this.sector, Object(_common__WEBPACK_IMPORTED_MODULE_6__["deepExtend"])({}, options, { + fill: { + color: highlight.color, + opacity: highlight.opacity + }, + stroke: { + opacity: border.opacity, + width: border.width, + color: border.color + } + })); + }; + + PieSegment.prototype.highlightVisual = function highlightVisual () { + return this.visual.children[0]; + }; + + PieSegment.prototype.highlightVisualArgs = function highlightVisualArgs () { + var sector = this.sector; + + return { + options: this.options, + radius: sector.radius, + innerRadius: sector.innerRadius, + center: new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].Point(sector.center.x, sector.center.y), + startAngle: sector.startAngle, + endAngle: sector.angle + sector.startAngle, + visual: this.visual + }; + }; + + PieSegment.prototype.tooltipAnchor = function tooltipAnchor () { + var sector = this.sector.clone().expand(_constants__WEBPACK_IMPORTED_MODULE_3__["TOOLTIP_OFFSET"]); + var midAndle = sector.middle(); + var midPoint = sector.point(midAndle); + + return { + point: midPoint, + align: tooltipAlignment(midAndle + 180) + }; + }; + + PieSegment.prototype.formatValue = function formatValue (format) { + return this.owner.formatPointValue(this, format); + }; + + PieSegment.prototype.pointData = function pointData () { + return { + dataItem: this.dataItem, + category: this.category, + value: this.value, + series: this.series, + percentage: this.percentage + }; + }; + + return PieSegment; +}(_core__WEBPACK_IMPORTED_MODULE_1__["ChartElement"])); + +var RAD_30 = Object(_common__WEBPACK_IMPORTED_MODULE_6__["round"])(Object(_common__WEBPACK_IMPORTED_MODULE_6__["rad"])(30), _common_constants__WEBPACK_IMPORTED_MODULE_5__["DEFAULT_PRECISION"]); +var RAD_60 = Object(_common__WEBPACK_IMPORTED_MODULE_6__["round"])(Object(_common__WEBPACK_IMPORTED_MODULE_6__["rad"])(60), _common_constants__WEBPACK_IMPORTED_MODULE_5__["DEFAULT_PRECISION"]); + +function tooltipAlignment(angle) { + var radians = Object(_common__WEBPACK_IMPORTED_MODULE_6__["rad"])(angle); + var sine = Object(_common__WEBPACK_IMPORTED_MODULE_6__["round"])(Math.sin(radians), _common_constants__WEBPACK_IMPORTED_MODULE_5__["DEFAULT_PRECISION"]); + var cosine = Object(_common__WEBPACK_IMPORTED_MODULE_6__["round"])(Math.cos(radians), _common_constants__WEBPACK_IMPORTED_MODULE_5__["DEFAULT_PRECISION"]); + + + var horizontal; + if (Math.abs(sine) > RAD_60) { + horizontal = _common_constants__WEBPACK_IMPORTED_MODULE_5__["CENTER"]; + } else if (cosine < 0) { + horizontal = _common_constants__WEBPACK_IMPORTED_MODULE_5__["RIGHT"]; + } else { + horizontal = _common_constants__WEBPACK_IMPORTED_MODULE_5__["LEFT"]; + } + + var vertical; + if (Math.abs(sine) < RAD_30) { + vertical = _common_constants__WEBPACK_IMPORTED_MODULE_5__["CENTER"]; + } else if (sine < 0) { + vertical = _common_constants__WEBPACK_IMPORTED_MODULE_5__["BOTTOM"]; + } else { + vertical = _common_constants__WEBPACK_IMPORTED_MODULE_5__["TOP"]; + } + + return { + horizontal: horizontal, + vertical: vertical + }; +} + +Object(_common__WEBPACK_IMPORTED_MODULE_6__["setDefaultOptions"])(PieSegment, { + color: _common_constants__WEBPACK_IMPORTED_MODULE_5__["WHITE"], + overlay: { + gradient: "roundedBevel" + }, + border: { + width: 0.5 + }, + labels: { + visible: false, + distance: 35, + font: _common_constants__WEBPACK_IMPORTED_MODULE_5__["DEFAULT_FONT"], + margin: Object(_common__WEBPACK_IMPORTED_MODULE_6__["getSpacing"])(0.5), + align: _common_constants__WEBPACK_IMPORTED_MODULE_5__["CIRCLE"], + zIndex: 1, + position: _constants__WEBPACK_IMPORTED_MODULE_3__["OUTSIDE_END"] + }, + animation: { + type: _constants__WEBPACK_IMPORTED_MODULE_3__["PIE"] + }, + highlight: { + visible: true, + border: { + width: 1 + } + }, + visible: true +}); + +Object(_common__WEBPACK_IMPORTED_MODULE_6__["deepExtend"])(PieSegment.prototype, _mixins_point_events_mixin__WEBPACK_IMPORTED_MODULE_2__["default"]); + + __webpack_exports__["default"] = (PieSegment); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/plotarea/categorical-plotarea.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _plotarea_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/plotarea/plotarea-base.js"); + var _axis_group_range_tracker__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/axis-group-range-tracker.js"); + var _mixins_plotarea_events_mixin__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/mixins/plotarea-events-mixin.js"); + var _aggregates_series_aggregator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/aggregates/series-aggregator.js"); + var _aggregates_default_aggregates__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/aggregates/default-aggregates.js"); + var _series_binder__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/series-binder.js"); + var _bar_chart_bar_chart__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/bar-chart/bar-chart.js"); + var _range_bar_chart_range_bar_chart__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/range-bar-chart/range-bar-chart.js"); + var _bullet_chart_bullet_chart__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/bullet-chart/bullet-chart.js"); + var _line_chart_line_chart__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/line-chart/line-chart.js"); + var _area_chart_area_chart__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/area-chart/area-chart.js"); + var _range_area_chart_range_area_chart__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/range-area-chart/range-area-chart.js"); + var _ohlc_chart_ohlc_chart__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/ohlc-chart/ohlc-chart.js"); + var _candlestick_chart_candlestick_chart__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/candlestick-chart/candlestick-chart.js"); + var _box_plot_chart_box_plot_chart__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/box-plot-chart/box-plot-chart.js"); + var _waterfall_chart_waterfall_chart__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/waterfall-chart/waterfall-chart.js"); + var _core__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core.js"); + var _utils__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/utils.js"); + var _constants__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/constants.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + + + + + + + + + + + + + + + + + + + + + + + +var AREA_SERIES = [ _constants__WEBPACK_IMPORTED_MODULE_18__["AREA"], _constants__WEBPACK_IMPORTED_MODULE_18__["VERTICAL_AREA"], _constants__WEBPACK_IMPORTED_MODULE_18__["RANGE_AREA"], _constants__WEBPACK_IMPORTED_MODULE_18__["VERTICAL_RANGE_AREA"] ]; +var OUT_OF_RANGE_SERIES = [ _constants__WEBPACK_IMPORTED_MODULE_18__["LINE"], _constants__WEBPACK_IMPORTED_MODULE_18__["VERTICAL_LINE"] ].concat(AREA_SERIES); + +var CategoricalPlotArea = (function (PlotAreaBase) { + function CategoricalPlotArea () { + PlotAreaBase.apply(this, arguments); + } + + if ( PlotAreaBase ) CategoricalPlotArea.__proto__ = PlotAreaBase; + CategoricalPlotArea.prototype = Object.create( PlotAreaBase && PlotAreaBase.prototype ); + CategoricalPlotArea.prototype.constructor = CategoricalPlotArea; + + CategoricalPlotArea.prototype.initFields = function initFields (series) { + var this$1 = this; + + this.namedCategoryAxes = {}; + this.namedValueAxes = {}; + this.valueAxisRangeTracker = new _axis_group_range_tracker__WEBPACK_IMPORTED_MODULE_1__["default"](); + + if (series.length > 0) { + this.invertAxes = Object(_common__WEBPACK_IMPORTED_MODULE_20__["inArray"])( + series[0].type, [ _constants__WEBPACK_IMPORTED_MODULE_18__["BAR"], _constants__WEBPACK_IMPORTED_MODULE_18__["BULLET"], _constants__WEBPACK_IMPORTED_MODULE_18__["VERTICAL_LINE"], _constants__WEBPACK_IMPORTED_MODULE_18__["VERTICAL_AREA"], _constants__WEBPACK_IMPORTED_MODULE_18__["VERTICAL_RANGE_AREA"], + _constants__WEBPACK_IMPORTED_MODULE_18__["RANGE_BAR"], _constants__WEBPACK_IMPORTED_MODULE_18__["HORIZONTAL_WATERFALL"], _constants__WEBPACK_IMPORTED_MODULE_18__["VERTICAL_BOX_PLOT"] ] + ); + + for (var i = 0; i < series.length; i++) { + var stack = series[i].stack; + if (stack && stack.type === "100%") { + this$1.stack100 = true; + break; + } + } + } + + }; + + CategoricalPlotArea.prototype.render = function render (panes) { + if ( panes === void 0 ) panes = this.panes; + + this.createCategoryAxes(panes); + this.aggregateCategories(panes); + this.createCategoryAxesLabels(panes); + this.createCharts(panes); + this.createValueAxes(panes); + }; + + CategoricalPlotArea.prototype.removeAxis = function removeAxis (axis) { + var axisName = axis.options.name; + + PlotAreaBase.prototype.removeAxis.call(this, axis); + + if (axis instanceof _core__WEBPACK_IMPORTED_MODULE_16__["CategoryAxis"]) { + delete this.namedCategoryAxes[axisName]; + } else { + this.valueAxisRangeTracker.reset(axisName); + delete this.namedValueAxes[axisName]; + } + + if (axis === this.categoryAxis) { + delete this.categoryAxis; + } + + if (axis === this.valueAxis) { + delete this.valueAxis; + } + }; + + CategoricalPlotArea.prototype.createCharts = function createCharts (panes) { + var this$1 = this; + + var seriesByPane = this.groupSeriesByPane(); + + for (var i = 0; i < panes.length; i++) { + var pane = panes[i]; + var paneSeries = seriesByPane[pane.options.name || "default"] || []; + this$1.addToLegend(paneSeries); + + var visibleSeries = this$1.filterVisibleSeries(paneSeries); + if (!visibleSeries) { + continue; + } + + var groups = this$1.groupSeriesByCategoryAxis(visibleSeries); + for (var groupIx = 0; groupIx < groups.length; groupIx++) { + this$1.createChartGroup(groups[groupIx], pane); + } + } + }; + + CategoricalPlotArea.prototype.createChartGroup = function createChartGroup (series, pane) { + this.createAreaChart( + Object(_utils__WEBPACK_IMPORTED_MODULE_17__["filterSeriesByType"])(series, [ _constants__WEBPACK_IMPORTED_MODULE_18__["AREA"], _constants__WEBPACK_IMPORTED_MODULE_18__["VERTICAL_AREA"] ]), pane + ); + + this.createRangeAreaChart( + Object(_utils__WEBPACK_IMPORTED_MODULE_17__["filterSeriesByType"])(series, [ _constants__WEBPACK_IMPORTED_MODULE_18__["RANGE_AREA"], _constants__WEBPACK_IMPORTED_MODULE_18__["VERTICAL_RANGE_AREA"] ]), pane + ); + + this.createBarChart( + Object(_utils__WEBPACK_IMPORTED_MODULE_17__["filterSeriesByType"])(series, [ _constants__WEBPACK_IMPORTED_MODULE_18__["COLUMN"], _constants__WEBPACK_IMPORTED_MODULE_18__["BAR"] ]), pane + ); + + this.createRangeBarChart( + Object(_utils__WEBPACK_IMPORTED_MODULE_17__["filterSeriesByType"])(series, [ _constants__WEBPACK_IMPORTED_MODULE_18__["RANGE_COLUMN"], _constants__WEBPACK_IMPORTED_MODULE_18__["RANGE_BAR"] ]), pane + ); + + this.createBulletChart( + Object(_utils__WEBPACK_IMPORTED_MODULE_17__["filterSeriesByType"])(series, [ _constants__WEBPACK_IMPORTED_MODULE_18__["BULLET"], _constants__WEBPACK_IMPORTED_MODULE_18__["VERTICAL_BULLET"] ]), pane + ); + + this.createCandlestickChart( + Object(_utils__WEBPACK_IMPORTED_MODULE_17__["filterSeriesByType"])(series, _constants__WEBPACK_IMPORTED_MODULE_18__["CANDLESTICK"]), pane + ); + + this.createBoxPlotChart( + Object(_utils__WEBPACK_IMPORTED_MODULE_17__["filterSeriesByType"])(series, [ _constants__WEBPACK_IMPORTED_MODULE_18__["BOX_PLOT"], _constants__WEBPACK_IMPORTED_MODULE_18__["VERTICAL_BOX_PLOT"] ]), pane + ); + + this.createOHLCChart( + Object(_utils__WEBPACK_IMPORTED_MODULE_17__["filterSeriesByType"])(series, _constants__WEBPACK_IMPORTED_MODULE_18__["OHLC"]), pane + ); + + this.createWaterfallChart( + Object(_utils__WEBPACK_IMPORTED_MODULE_17__["filterSeriesByType"])(series, [ _constants__WEBPACK_IMPORTED_MODULE_18__["WATERFALL"], _constants__WEBPACK_IMPORTED_MODULE_18__["HORIZONTAL_WATERFALL"] ]), pane + ); + + this.createLineChart( + Object(_utils__WEBPACK_IMPORTED_MODULE_17__["filterSeriesByType"])(series, [ _constants__WEBPACK_IMPORTED_MODULE_18__["LINE"], _constants__WEBPACK_IMPORTED_MODULE_18__["VERTICAL_LINE"] ]), pane + ); + }; + + CategoricalPlotArea.prototype.aggregateCategories = function aggregateCategories (panes) { + var this$1 = this; + + var series = this.srcSeries || this.series; + var processedSeries = []; + this._currentPointsCache = {}; + this._seriesPointsCache = this._seriesPointsCache || {}; + + for (var i = 0; i < series.length; i++) { + var currentSeries = series[i]; + var categoryAxis = this$1.seriesCategoryAxis(currentSeries); + var axisPane = this$1.findPane(categoryAxis.options.pane); + var dateAxis = Object(_utils__WEBPACK_IMPORTED_MODULE_17__["equalsIgnoreCase"])(categoryAxis.options.type, _common_constants__WEBPACK_IMPORTED_MODULE_19__["DATE"]); + + if ((dateAxis || currentSeries.categoryField) && Object(_common__WEBPACK_IMPORTED_MODULE_20__["inArray"])(axisPane, panes)) { + currentSeries = this$1.aggregateSeries(currentSeries, categoryAxis); + } else { + currentSeries = this$1.filterSeries(currentSeries, categoryAxis); + } + + processedSeries.push(currentSeries); + } + + this._seriesPointsCache = this._currentPointsCache; + this._currentPointsCache = null; + + this.srcSeries = series; + this.series = processedSeries; + }; + + CategoricalPlotArea.prototype.filterSeries = function filterSeries (series, categoryAxis) { + var dataLength = (series.data || {}).length; + categoryAxis._seriesMax = Math.max(categoryAxis._seriesMax || 0, dataLength); + + if (!(Object(_common__WEBPACK_IMPORTED_MODULE_20__["isNumber"])(categoryAxis.options.min) || Object(_common__WEBPACK_IMPORTED_MODULE_20__["isNumber"])(categoryAxis.options.max))) { + return series; + } + + var range = categoryAxis.currentRangeIndices(); + var outOfRangePoints = Object(_common__WEBPACK_IMPORTED_MODULE_20__["inArray"])(series.type, OUT_OF_RANGE_SERIES); + var currentSeries = Object(_common__WEBPACK_IMPORTED_MODULE_20__["deepExtend"])({}, series); + + currentSeries.data = (currentSeries.data || []).slice(range.min, range.max + 1); + + if (outOfRangePoints) { + Object(_utils__WEBPACK_IMPORTED_MODULE_17__["createOutOfRangePoints"])(currentSeries, range, dataLength, function (idx) { return ({ + item: series.data[idx], + category: categoryAxis.categoryAt(idx, true), + categoryIx: idx - range.min + }); }, function (idx) { return Object(_common__WEBPACK_IMPORTED_MODULE_20__["defined"])(series.data[idx]); }); + } + + return currentSeries; + }; + + CategoricalPlotArea.prototype.clearSeriesPointsCache = function clearSeriesPointsCache () { + this._seriesPointsCache = {}; + }; + + CategoricalPlotArea.prototype.seriesSourcePoints = function seriesSourcePoints (series, categoryAxis) { + var this$1 = this; + + var key = (series.index) + ";" + (categoryAxis.categoriesHash()); + if (this._seriesPointsCache[key]) { + this._currentPointsCache[key] = this._seriesPointsCache[key]; + return this._seriesPointsCache[key]; + } + + var axisOptions = categoryAxis.options; + var srcCategories = axisOptions.srcCategories; + var dateAxis = Object(_utils__WEBPACK_IMPORTED_MODULE_17__["equalsIgnoreCase"])(axisOptions.type, _common_constants__WEBPACK_IMPORTED_MODULE_19__["DATE"]); + var srcData = series.data; + var getFn = dateAxis ? _utils__WEBPACK_IMPORTED_MODULE_17__["getDateField"] : _utils__WEBPACK_IMPORTED_MODULE_17__["getField"]; + var result = []; + if (!dateAxis) { + categoryAxis.mapCategories();//fixes major performance issue caused by searching for the index for large data + } + + for (var idx = 0; idx < srcData.length; idx++) { + var category = (void 0); + if (series.categoryField) { + category = getFn(series.categoryField, srcData[idx], this$1.chartService.intl); + } else { + category = srcCategories[idx]; + } + + if (Object(_common__WEBPACK_IMPORTED_MODULE_20__["defined"])(category) && category !== null) { + var categoryIx = categoryAxis.totalIndex(category); + result[categoryIx] = result[categoryIx] || { items: [], category: category }; + result[categoryIx].items.push(idx); + } + } + + this._currentPointsCache[key] = result; + + return result; + }; + + CategoricalPlotArea.prototype.aggregateSeries = function aggregateSeries (series, categoryAxis) { + var srcData = series.data; + if (!srcData.length) { + return series; + } + + var srcPoints = this.seriesSourcePoints(series, categoryAxis); + var result = Object(_common__WEBPACK_IMPORTED_MODULE_20__["deepExtend"])({}, series); + var aggregator = new _aggregates_series_aggregator__WEBPACK_IMPORTED_MODULE_3__["default"](Object(_common__WEBPACK_IMPORTED_MODULE_20__["deepExtend"])({}, series), _series_binder__WEBPACK_IMPORTED_MODULE_5__["default"].current, _aggregates_default_aggregates__WEBPACK_IMPORTED_MODULE_4__["default"].current); + var data = result.data = []; + var dataItems = categoryAxis.options.dataItems || []; + + var range = categoryAxis.currentRangeIndices(); + var categoryItem = function (idx) { + var categoryIdx = idx - range.min; + var point = srcPoints[idx]; + if (!point) { + point = srcPoints[idx] = {}; + } + + point.categoryIx = categoryIdx; + + if (!point.item) { + var category = categoryAxis.categoryAt(idx, true); + point.category = category; + point.item = aggregator.aggregatePoints(point.items, category); + } + + return point; + }; + + for (var idx = range.min; idx <= range.max; idx++) { + var point = categoryItem(idx); + data[point.categoryIx] = point.item; + + if (point.items && point.items.length) { + dataItems[point.categoryIx] = point.item; + } + } + + if (Object(_common__WEBPACK_IMPORTED_MODULE_20__["inArray"])(result.type, OUT_OF_RANGE_SERIES)) { + Object(_utils__WEBPACK_IMPORTED_MODULE_17__["createOutOfRangePoints"])(result, range, categoryAxis.totalCount(), categoryItem, function (idx) { return srcPoints[idx]; }); + } + + categoryAxis.options.dataItems = dataItems; + + return result; + }; + + CategoricalPlotArea.prototype.appendChart = function appendChart (chart, pane) { + var series = chart.options.series; + var categoryAxis = this.seriesCategoryAxis(series[0]); + var categories = categoryAxis.options.categories; + var categoriesToAdd = Math.max(0, Object(_utils__WEBPACK_IMPORTED_MODULE_17__["categoriesCount"])(series) - categories.length); + + if (categoriesToAdd > 0) {//consider setting an option to axis instead of adding fake categories + categories = categoryAxis.options.categories = categoryAxis.options.categories.slice(0); + while (categoriesToAdd--) { + categories.push(""); + } + } + + this.valueAxisRangeTracker.update(chart.valueAxisRanges); + + PlotAreaBase.prototype.appendChart.call(this, chart, pane); + }; + + // TODO: Refactor, optionally use series.pane option + CategoricalPlotArea.prototype.seriesPaneName = function seriesPaneName (series) { + var options = this.options; + var axisName = series.axis; + var axisOptions = [].concat(options.valueAxis); + var axis = Object(_common__WEBPACK_IMPORTED_MODULE_20__["grep"])(axisOptions, function(a) { return a.name === axisName; })[0]; + var panes = options.panes || [ {} ]; + var defaultPaneName = (panes[0] || {}).name || "default"; + var paneName = (axis || {}).pane || defaultPaneName; + + return paneName; + }; + + CategoricalPlotArea.prototype.seriesCategoryAxis = function seriesCategoryAxis (series) { + var axisName = series.categoryAxis; + var axis = axisName ? this.namedCategoryAxes[axisName] : this.categoryAxis; + + if (!axis) { + throw new Error("Unable to locate category axis with name " + axisName); + } + + return axis; + }; + + CategoricalPlotArea.prototype.stackableChartOptions = function stackableChartOptions (firstSeries, pane) { + var stack = firstSeries.stack; + var isStacked100 = stack && stack.type === "100%"; + var clip = pane.options.clip; + + return { + isStacked: stack, + isStacked100: isStacked100, + clip: clip + }; + }; + + CategoricalPlotArea.prototype.groupSeriesByCategoryAxis = function groupSeriesByCategoryAxis (series) { + var categoryAxes = []; + var unique = {}; + for (var idx = 0; idx < series.length; idx++) { + var name = series[idx].categoryAxis || "$$default$$"; + if (!unique.hasOwnProperty(name)) { + unique[name] = true; + categoryAxes.push(name); + } + } + + var groups = []; + for (var axisIx = 0; axisIx < categoryAxes.length; axisIx++) { + var axis = categoryAxes[axisIx]; + var axisSeries = groupSeries(series, axis, axisIx); + if (axisSeries.length === 0) { + continue; + } + + groups.push(axisSeries); + } + + return groups; + }; + + CategoricalPlotArea.prototype.createBarChart = function createBarChart (series, pane) { + if (series.length === 0) { + return; + } + + var firstSeries = series[0]; + var barChart = new _bar_chart_bar_chart__WEBPACK_IMPORTED_MODULE_6__["default"](this, Object.assign({ + series: series, + invertAxes: this.invertAxes, + gap: firstSeries.gap, + spacing: firstSeries.spacing + }, this.stackableChartOptions(firstSeries, pane))); + + this.appendChart(barChart, pane); + }; + + CategoricalPlotArea.prototype.createRangeBarChart = function createRangeBarChart (series, pane) { + if (series.length === 0) { + return; + } + + var firstSeries = series[0]; + var rangeColumnChart = new _range_bar_chart_range_bar_chart__WEBPACK_IMPORTED_MODULE_7__["default"](this, { + series: series, + invertAxes: this.invertAxes, + gap: firstSeries.gap, + spacing: firstSeries.spacing + }); + + this.appendChart(rangeColumnChart, pane); + }; + + CategoricalPlotArea.prototype.createBulletChart = function createBulletChart (series, pane) { + if (series.length === 0) { + return; + } + + var firstSeries = series[0]; + var bulletChart = new _bullet_chart_bullet_chart__WEBPACK_IMPORTED_MODULE_8__["default"](this, { + series: series, + invertAxes: this.invertAxes, + gap: firstSeries.gap, + spacing: firstSeries.spacing, + clip: pane.options.clip + }); + + this.appendChart(bulletChart, pane); + }; + + CategoricalPlotArea.prototype.createLineChart = function createLineChart (series, pane) { + if (series.length === 0) { + return; + } + + var firstSeries = series[0]; + var lineChart = new _line_chart_line_chart__WEBPACK_IMPORTED_MODULE_9__["default"](this, Object.assign({ + invertAxes: this.invertAxes, + series: series + }, this.stackableChartOptions(firstSeries, pane))); + + this.appendChart(lineChart, pane); + }; + + CategoricalPlotArea.prototype.createAreaChart = function createAreaChart (series, pane) { + if (series.length === 0) { + return; + } + + var firstSeries = series[0]; + var areaChart = new _area_chart_area_chart__WEBPACK_IMPORTED_MODULE_10__["default"](this, Object.assign({ + invertAxes: this.invertAxes, + series: series + }, this.stackableChartOptions(firstSeries, pane))); + + this.appendChart(areaChart, pane); + }; + + CategoricalPlotArea.prototype.createRangeAreaChart = function createRangeAreaChart (series, pane) { + if (series.length === 0) { + return; + } + + var rangeAreaChart = new _range_area_chart_range_area_chart__WEBPACK_IMPORTED_MODULE_11__["default"](this, { + invertAxes: this.invertAxes, + series: series, + clip: pane.options.clip + }); + + this.appendChart(rangeAreaChart, pane); + }; + + CategoricalPlotArea.prototype.createOHLCChart = function createOHLCChart (series, pane) { + if (series.length === 0) { + return; + } + + var firstSeries = series[0]; + var chart = new _ohlc_chart_ohlc_chart__WEBPACK_IMPORTED_MODULE_12__["default"](this, { + invertAxes: this.invertAxes, + gap: firstSeries.gap, + series: series, + spacing: firstSeries.spacing, + clip: pane.options.clip + }); + + this.appendChart(chart, pane); + }; + + CategoricalPlotArea.prototype.createCandlestickChart = function createCandlestickChart (series, pane) { + if (series.length === 0) { + return; + } + + var firstSeries = series[0]; + var chart = new _candlestick_chart_candlestick_chart__WEBPACK_IMPORTED_MODULE_13__["default"](this, { + invertAxes: this.invertAxes, + gap: firstSeries.gap, + series: series, + spacing: firstSeries.spacing, + clip: pane.options.clip + }); + + this.appendChart(chart, pane); + }; + + CategoricalPlotArea.prototype.createBoxPlotChart = function createBoxPlotChart (series, pane) { + if (series.length === 0) { + return; + } + + var firstSeries = series[0]; + var chart = new _box_plot_chart_box_plot_chart__WEBPACK_IMPORTED_MODULE_14__["default"](this, { + invertAxes: this.invertAxes, + gap: firstSeries.gap, + series: series, + spacing: firstSeries.spacing, + clip: pane.options.clip + }); + + this.appendChart(chart, pane); + }; + + CategoricalPlotArea.prototype.createWaterfallChart = function createWaterfallChart (series, pane) { + if (series.length === 0) { + return; + } + + var firstSeries = series[0]; + var waterfallChart = new _waterfall_chart_waterfall_chart__WEBPACK_IMPORTED_MODULE_15__["default"](this, { + series: series, + invertAxes: this.invertAxes, + gap: firstSeries.gap, + spacing: firstSeries.spacing + }); + + this.appendChart(waterfallChart, pane); + }; + + CategoricalPlotArea.prototype.axisRequiresRounding = function axisRequiresRounding (categoryAxisName, categoryAxisIndex) { + var this$1 = this; + + var centeredSeries = Object(_utils__WEBPACK_IMPORTED_MODULE_17__["filterSeriesByType"])(this.series, _constants__WEBPACK_IMPORTED_MODULE_18__["EQUALLY_SPACED_SERIES"]); + + for (var seriesIx = 0; seriesIx < this.series.length; seriesIx++) { + var currentSeries = this$1.series[seriesIx]; + if (Object(_common__WEBPACK_IMPORTED_MODULE_20__["inArray"])(currentSeries.type, AREA_SERIES)) { + var line = currentSeries.line; + if (line && line.style === _constants__WEBPACK_IMPORTED_MODULE_18__["STEP"]) { + centeredSeries.push(currentSeries); + } + } + } + + for (var seriesIx$1 = 0; seriesIx$1 < centeredSeries.length; seriesIx$1++) { + var seriesAxis = centeredSeries[seriesIx$1].categoryAxis || ""; + if (seriesAxis === categoryAxisName || (!seriesAxis && categoryAxisIndex === 0)) { + return true; + } + } + }; + + CategoricalPlotArea.prototype.aggregatedAxis = function aggregatedAxis (categoryAxisName, categoryAxisIndex) { + var series = this.series; + + for (var seriesIx = 0; seriesIx < series.length; seriesIx++) { + var seriesAxis = series[seriesIx].categoryAxis || ""; + if ((seriesAxis === categoryAxisName || (!seriesAxis && categoryAxisIndex === 0)) && series[seriesIx].categoryField) { + return true; + } + } + }; + + CategoricalPlotArea.prototype.createCategoryAxesLabels = function createCategoryAxesLabels () { + var axes = this.axes; + for (var i = 0; i < axes.length; i++) { + if (axes[i] instanceof _core__WEBPACK_IMPORTED_MODULE_16__["CategoryAxis"]) { + axes[i].createLabels(); + } + } + }; + + CategoricalPlotArea.prototype.createCategoryAxes = function createCategoryAxes (panes) { + var this$1 = this; + + var invertAxes = this.invertAxes; + var definitions = [].concat(this.options.categoryAxis); + var axes = []; + + for (var i = 0; i < definitions.length; i++) { + var axisOptions = definitions[i]; + var axisPane = this$1.findPane(axisOptions.pane); + + if (Object(_common__WEBPACK_IMPORTED_MODULE_20__["inArray"])(axisPane, panes)) { + var name = axisOptions.name; + var categories = axisOptions.categories; if ( categories === void 0 ) categories = []; + axisOptions = Object(_common__WEBPACK_IMPORTED_MODULE_20__["deepExtend"])({ + vertical: invertAxes, + reverse: !invertAxes && this$1.chartService.rtl, + axisCrossingValue: invertAxes ? _common_constants__WEBPACK_IMPORTED_MODULE_19__["MAX_VALUE"] : 0 + }, axisOptions); + + if (!Object(_common__WEBPACK_IMPORTED_MODULE_20__["defined"])(axisOptions.justified)) { + axisOptions.justified = this$1.isJustified(); + } + + if (this$1.axisRequiresRounding(name, i)) { + axisOptions.justified = false; + } + + var categoryAxis = (void 0); + + if (Object(_utils__WEBPACK_IMPORTED_MODULE_17__["isDateAxis"])(axisOptions, categories[0])) { + categoryAxis = new _core__WEBPACK_IMPORTED_MODULE_16__["DateCategoryAxis"](axisOptions, this$1.chartService); + } else { + categoryAxis = new _core__WEBPACK_IMPORTED_MODULE_16__["CategoryAxis"](axisOptions, this$1.chartService); + } + + definitions[i].categories = categoryAxis.options.srcCategories; + + if (name) { + if (this$1.namedCategoryAxes[name]) { + throw new Error(("Category axis with name " + name + " is already defined")); + } + this$1.namedCategoryAxes[name] = categoryAxis; + } + + categoryAxis.axisIndex = i; + axes.push(categoryAxis); + this$1.appendAxis(categoryAxis); + } + } + + var primaryAxis = this.categoryAxis || axes[0]; + this.categoryAxis = primaryAxis; + + if (invertAxes) { + this.axisY = primaryAxis; + } else { + this.axisX = primaryAxis; + } + }; + + CategoricalPlotArea.prototype.isJustified = function isJustified () { + var series = this.series; + + for (var i = 0; i < series.length; i++) { + var currentSeries = series[i]; + if (!Object(_common__WEBPACK_IMPORTED_MODULE_20__["inArray"])(currentSeries.type, AREA_SERIES)) { + return false; + } + } + + return true; + }; + + CategoricalPlotArea.prototype.createValueAxes = function createValueAxes (panes) { + var this$1 = this; + + var tracker = this.valueAxisRangeTracker; + var defaultRange = tracker.query(); + var definitions = [].concat(this.options.valueAxis); + var invertAxes = this.invertAxes; + var baseOptions = { vertical: !invertAxes, reverse: invertAxes && this.chartService.rtl }; + var axes = []; + + if (this.stack100) { + baseOptions.roundToMajorUnit = false; + baseOptions.labels = { format: "P0" }; + } + + for (var i = 0; i < definitions.length; i++) { + var axisOptions = definitions[i]; + var axisPane = this$1.findPane(axisOptions.pane); + + if (Object(_common__WEBPACK_IMPORTED_MODULE_20__["inArray"])(axisPane, panes)) { + var name = axisOptions.name; + var defaultAxisRange = Object(_utils__WEBPACK_IMPORTED_MODULE_17__["equalsIgnoreCase"])(axisOptions.type, _constants__WEBPACK_IMPORTED_MODULE_18__["LOGARITHMIC"]) ? { min: 0.1, max: 1 } : { min: 0, max: 1 }; + var range = tracker.query(name) || defaultRange || defaultAxisRange; + + if (i === 0 && range && defaultRange) { + range.min = Math.min(range.min, defaultRange.min); + range.max = Math.max(range.max, defaultRange.max); + } + + var axisType = (void 0); + if (Object(_utils__WEBPACK_IMPORTED_MODULE_17__["equalsIgnoreCase"])(axisOptions.type, _constants__WEBPACK_IMPORTED_MODULE_18__["LOGARITHMIC"])) { + axisType = _core__WEBPACK_IMPORTED_MODULE_16__["LogarithmicAxis"]; + } else { + axisType = _core__WEBPACK_IMPORTED_MODULE_16__["NumericAxis"]; + } + + var valueAxis = new axisType(range.min, range.max, + Object(_common__WEBPACK_IMPORTED_MODULE_20__["deepExtend"])({}, baseOptions, axisOptions), + this$1.chartService + ); + + if (name) { + if (this$1.namedValueAxes[name]) { + throw new Error(("Value axis with name " + name + " is already defined")); + } + this$1.namedValueAxes[name] = valueAxis; + } + valueAxis.axisIndex = i; + + axes.push(valueAxis); + this$1.appendAxis(valueAxis); + } + } + + var primaryAxis = this.valueAxis || axes[0]; + this.valueAxis = primaryAxis; + + if (invertAxes) { + this.axisX = primaryAxis; + } else { + this.axisY = primaryAxis; + } + }; + + CategoricalPlotArea.prototype._dispatchEvent = function _dispatchEvent (chart, e, eventType) { + var coords = chart._eventCoordinates(e); + var point = new _core__WEBPACK_IMPORTED_MODULE_16__["Point"](coords.x, coords.y); + var pane = this.pointPane(point); + var categories = []; + var values = []; + + if (!pane) { + return; + } + + var allAxes = pane.axes; + for (var i = 0; i < allAxes.length; i++) { + var axis = allAxes[i]; + if (axis.getValue) { + Object(_utils__WEBPACK_IMPORTED_MODULE_17__["appendIfNotNull"])(values, axis.getValue(point)); + } else { + Object(_utils__WEBPACK_IMPORTED_MODULE_17__["appendIfNotNull"])(categories, axis.getCategory(point)); + } + } + + if (categories.length === 0) { + Object(_utils__WEBPACK_IMPORTED_MODULE_17__["appendIfNotNull"])(categories, this.categoryAxis.getCategory(point)); + } + + if (categories.length > 0 && values.length > 0) { + chart.trigger(eventType, { + element: Object(_common__WEBPACK_IMPORTED_MODULE_20__["eventElement"])(e), + originalEvent: e, + category: Object(_utils__WEBPACK_IMPORTED_MODULE_17__["singleItemOrArray"])(categories), + value: Object(_utils__WEBPACK_IMPORTED_MODULE_17__["singleItemOrArray"])(values) + }); + } + }; + + CategoricalPlotArea.prototype.pointPane = function pointPane (point) { + var panes = this.panes; + + for (var i = 0; i < panes.length; i++) { + var currentPane = panes[i]; + if (currentPane.contentBox.containsPoint(point)) { + return currentPane; + } + } + }; + + CategoricalPlotArea.prototype.updateAxisOptions = function updateAxisOptions$1 (axis, options) { + updateAxisOptions(this.options, axis, options); + updateAxisOptions(this.originalOptions, axis, options); + }; + + return CategoricalPlotArea; +}(_plotarea_base__WEBPACK_IMPORTED_MODULE_0__["default"])); + +function updateAxisOptions(targetOptions, axis, options) { + var axesOptions = axis instanceof _core__WEBPACK_IMPORTED_MODULE_16__["CategoryAxis"] ? [].concat(targetOptions.categoryAxis) : [].concat(targetOptions.valueAxis); + Object(_common__WEBPACK_IMPORTED_MODULE_20__["deepExtend"])(axesOptions[axis.axisIndex], options); +} + +function groupSeries(series, axis, axisIx) { + return Object(_common__WEBPACK_IMPORTED_MODULE_20__["grep"])(series, function(s) { + return (axisIx === 0 && !s.categoryAxis) || (s.categoryAxis === axis); + }); +} + +Object(_common__WEBPACK_IMPORTED_MODULE_20__["setDefaultOptions"])(CategoricalPlotArea, { + categoryAxis: {}, + valueAxis: {} +}); + +Object(_common__WEBPACK_IMPORTED_MODULE_20__["deepExtend"])(CategoricalPlotArea.prototype, _mixins_plotarea_events_mixin__WEBPACK_IMPORTED_MODULE_2__["default"]); + + __webpack_exports__["default"] = (CategoricalPlotArea); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/plotarea/donut-plotarea.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _pie_plotarea__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/plotarea/pie-plotarea.js"); + var _donut_chart_donut_chart__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/donut-chart/donut-chart.js"); + + + +var DonutPlotArea = (function (PiePlotArea) { + function DonutPlotArea () { + PiePlotArea.apply(this, arguments); + } + + if ( PiePlotArea ) DonutPlotArea.__proto__ = PiePlotArea; + DonutPlotArea.prototype = Object.create( PiePlotArea && PiePlotArea.prototype ); + DonutPlotArea.prototype.constructor = DonutPlotArea; + + DonutPlotArea.prototype.render = function render () { + this.createDonutChart(this.series); + }; + + DonutPlotArea.prototype.createDonutChart = function createDonutChart (series) { + var firstSeries = series[0]; + var donutChart = new _donut_chart_donut_chart__WEBPACK_IMPORTED_MODULE_1__["default"](this, { + series: series, + padding: firstSeries.padding, + connectors: firstSeries.connectors, + legend: this.options.legend + }); + + this.appendChart(donutChart); + }; + + return DonutPlotArea; +}(_pie_plotarea__WEBPACK_IMPORTED_MODULE_0__["default"])); + + __webpack_exports__["default"] = (DonutPlotArea); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/plotarea/funnel-plotarea.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _plotarea_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/plotarea/plotarea-base.js"); + var _funnel_chart_funnel_chart__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/funnel-chart/funnel-chart.js"); + var _common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + + +var FunnelPlotArea = (function (PlotAreaBase) { + function FunnelPlotArea () { + PlotAreaBase.apply(this, arguments); + } + + if ( PlotAreaBase ) FunnelPlotArea.__proto__ = PlotAreaBase; + FunnelPlotArea.prototype = Object.create( PlotAreaBase && PlotAreaBase.prototype ); + FunnelPlotArea.prototype.constructor = FunnelPlotArea; + + FunnelPlotArea.prototype.render = function render () { + this.createFunnelChart(this.series); + }; + + FunnelPlotArea.prototype.createFunnelChart = function createFunnelChart (series) { + var firstSeries = series[0]; + var funnelChart = new _funnel_chart_funnel_chart__WEBPACK_IMPORTED_MODULE_1__["default"](this, { + series: series, + legend: this.options.legend, + neckRatio: firstSeries.neckRatio, + dynamicHeight: firstSeries.dynamicHeight, + dynamicSlope: firstSeries.dynamicSlope, + segmentSpacing: firstSeries.segmentSpacing, + highlight: firstSeries.highlight + }); + + this.appendChart(funnelChart); + }; + + FunnelPlotArea.prototype.appendChart = function appendChart (chart, pane) { + PlotAreaBase.prototype.appendChart.call(this, chart, pane); + Object(_common__WEBPACK_IMPORTED_MODULE_2__["append"])(this.options.legend.items, chart.legendItems); + }; + + return FunnelPlotArea; +}(_plotarea_base__WEBPACK_IMPORTED_MODULE_0__["default"])); + + __webpack_exports__["default"] = (FunnelPlotArea); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/plotarea/pie-plotarea.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _plotarea_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/plotarea/plotarea-base.js"); + var _pie_chart_pie_chart__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/pie-chart/pie-chart.js"); + var _common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + + +var PiePlotArea = (function (PlotAreaBase) { + function PiePlotArea () { + PlotAreaBase.apply(this, arguments); + } + + if ( PlotAreaBase ) PiePlotArea.__proto__ = PlotAreaBase; + PiePlotArea.prototype = Object.create( PlotAreaBase && PlotAreaBase.prototype ); + PiePlotArea.prototype.constructor = PiePlotArea; + + PiePlotArea.prototype.render = function render () { + this.createPieChart(this.series); + }; + + PiePlotArea.prototype.createPieChart = function createPieChart (series) { + var firstSeries = series[0]; + var pieChart = new _pie_chart_pie_chart__WEBPACK_IMPORTED_MODULE_1__["default"](this, { + series: series, + padding: firstSeries.padding, + startAngle: firstSeries.startAngle, + connectors: firstSeries.connectors, + legend: this.options.legend + }); + + this.appendChart(pieChart); + }; + + PiePlotArea.prototype.appendChart = function appendChart (chart, pane) { + PlotAreaBase.prototype.appendChart.call(this, chart, pane); + Object(_common__WEBPACK_IMPORTED_MODULE_2__["append"])(this.options.legend.items, chart.legendItems); + }; + + return PiePlotArea; +}(_plotarea_base__WEBPACK_IMPORTED_MODULE_0__["default"])); + + __webpack_exports__["default"] = (PiePlotArea); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/plotarea/plotarea-base.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/main.js"); + var _core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core.js"); + var _crosshair_crosshair__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/crosshair/crosshair.js"); + var _pane__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/pane.js"); + var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/utils.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + + + + + + + +var PlotAreaBase = (function (ChartElement) { + function PlotAreaBase(series, options, chartService) { + ChartElement.call(this, options); + + this.initFields(series, options); + this.series = series; + this.initSeries(); + this.charts = []; + this.options.legend = this.options.legend || {}; + this.options.legend.items = []; + this.axes = []; + this.crosshairs = []; + this.chartService = chartService; + this.originalOptions = options; + + this.createPanes(); + this.render(); + this.createCrosshairs(); + } + + if ( ChartElement ) PlotAreaBase.__proto__ = ChartElement; + PlotAreaBase.prototype = Object.create( ChartElement && ChartElement.prototype ); + PlotAreaBase.prototype.constructor = PlotAreaBase; + + PlotAreaBase.prototype.initFields = function initFields () { }; + + PlotAreaBase.prototype.initSeries = function initSeries () { + var series = this.series; + + for (var i = 0; i < series.length; i++) { + series[i].index = i; + } + }; + + PlotAreaBase.prototype.createPanes = function createPanes () { + var this$1 = this; + + var defaults = { title: { color: (this.options.title || {}).color } }; + var panes = []; + var paneOptions = this.options.panes || []; + var panesLength = Math.max(paneOptions.length, 1); + + function setTitle(options, defaults) { + if (Object(_common__WEBPACK_IMPORTED_MODULE_6__["isString"])(options.title)) { + options.title = { + text: options.title + }; + } + + options.title = Object(_common__WEBPACK_IMPORTED_MODULE_6__["deepExtend"])({}, defaults.title, options.title); + } + + for (var i = 0; i < panesLength; i++) { + var options = paneOptions[i] || {}; + setTitle(options, defaults); + + var currentPane = new _pane__WEBPACK_IMPORTED_MODULE_3__["default"](options); + currentPane.paneIndex = i; + + panes.push(currentPane); + this$1.append(currentPane); + } + + this.panes = panes; + }; + + PlotAreaBase.prototype.createCrosshairs = function createCrosshairs (panes) { + var this$1 = this; + if ( panes === void 0 ) panes = this.panes; + + for (var i = 0; i < panes.length; i++) { + var pane = panes[i]; + for (var j = 0; j < pane.axes.length; j++) { + var axis = pane.axes[j]; + if (axis.options.crosshair && axis.options.crosshair.visible) { + var currentCrosshair = new _crosshair_crosshair__WEBPACK_IMPORTED_MODULE_2__["default"](this$1.chartService, axis, axis.options.crosshair); + + this$1.crosshairs.push(currentCrosshair); + pane.content.append(currentCrosshair); + } + } + } + }; + + PlotAreaBase.prototype.removeCrosshairs = function removeCrosshairs (pane) { + var crosshairs = this.crosshairs; + var axes = pane.axes; + + for (var i = crosshairs.length - 1; i >= 0; i--) { + for (var j = 0; j < axes.length; j++) { + if (crosshairs[i].axis === axes[j]) { + crosshairs.splice(i, 1); + break; + } + } + } + }; + + PlotAreaBase.prototype.hideCrosshairs = function hideCrosshairs () { + var crosshairs = this.crosshairs; + for (var idx = 0; idx < crosshairs.length; idx++) { + crosshairs[idx].hide(); + } + }; + + PlotAreaBase.prototype.findPane = function findPane (name) { + var panes = this.panes; + var matchingPane; + + for (var i = 0; i < panes.length; i++) { + if (panes[i].options.name === name) { + matchingPane = panes[i]; + break; + } + } + + return matchingPane || panes[0]; + }; + + PlotAreaBase.prototype.findPointPane = function findPointPane (point) { + var panes = this.panes; + var matchingPane; + + for (var i = 0; i < panes.length; i++) { + if (panes[i].box.containsPoint(point)) { + matchingPane = panes[i]; + break; + } + } + + return matchingPane; + }; + + PlotAreaBase.prototype.appendAxis = function appendAxis (axis) { + var pane = this.findPane(axis.options.pane); + + pane.appendAxis(axis); + this.axes.push(axis); + axis.plotArea = this; + }; + + PlotAreaBase.prototype.removeAxis = function removeAxis (axisToRemove) { + var this$1 = this; + + var filteredAxes = []; + + for (var i = 0; i < this.axes.length; i++) { + var axis = this$1.axes[i]; + if (axisToRemove !== axis) { + filteredAxes.push(axis); + } else { + axis.destroy(); + } + } + + this.axes = filteredAxes; + }; + + PlotAreaBase.prototype.appendChart = function appendChart (chart, pane) { + this.charts.push(chart); + if (pane) { + pane.appendChart(chart); + } else { + this.append(chart); + } + }; + + PlotAreaBase.prototype.removeChart = function removeChart (chartToRemove) { + var this$1 = this; + + var filteredCharts = []; + + for (var i = 0; i < this.charts.length; i++) { + var chart = this$1.charts[i]; + if (chart !== chartToRemove) { + filteredCharts.push(chart); + } else { + chart.destroy(); + } + } + + this.charts = filteredCharts; + }; + + PlotAreaBase.prototype.addToLegend = function addToLegend (series) { + var count = series.length; + var legend = this.options.legend; + var labels = legend.labels || {}; + var inactiveItems = legend.inactiveItems || {}; + var inactiveItemsLabels = inactiveItems.labels || {}; + var data = []; + + for (var i = 0; i < count; i++) { + var currentSeries = series[i]; + var seriesVisible = currentSeries.visible !== false; + if (currentSeries.visibleInLegend === false) { + continue; + } + + var text = currentSeries.name; + var labelTemplate = seriesVisible ? Object(_common__WEBPACK_IMPORTED_MODULE_6__["getTemplate"])(labels) : Object(_common__WEBPACK_IMPORTED_MODULE_6__["getTemplate"])(inactiveItemsLabels) || Object(_common__WEBPACK_IMPORTED_MODULE_6__["getTemplate"])(labels); + if (labelTemplate) { + text = labelTemplate({ + text: Object(_utils__WEBPACK_IMPORTED_MODULE_4__["hasValue"])(text) ? text : "", + series: currentSeries + }); + } + + var defaults = currentSeries._defaults; + var color = currentSeries.color; + if (Object(_common__WEBPACK_IMPORTED_MODULE_6__["isFunction"])(color) && defaults) { + color = defaults.color; + } + + var itemLabelOptions = (void 0), markerColor = (void 0); + if (seriesVisible) { + itemLabelOptions = {}; + markerColor = color; + } else { + itemLabelOptions = { + color: inactiveItemsLabels.color, + font: inactiveItemsLabels.font + }; + markerColor = inactiveItems.markers.color; + } + + if (Object(_utils__WEBPACK_IMPORTED_MODULE_4__["hasValue"])(text) && text !== "") { + data.push({ + text: text, + labels: itemLabelOptions, + markerColor: markerColor, + series: currentSeries, + active: seriesVisible + }); + } + } + + Object(_common__WEBPACK_IMPORTED_MODULE_6__["append"])(legend.items, data); + }; + + PlotAreaBase.prototype.groupAxes = function groupAxes (panes) { + var xAxes = []; + var yAxes = []; + + for (var paneIx = 0; paneIx < panes.length; paneIx++) { + var paneAxes = panes[paneIx].axes; + for (var axisIx = 0; axisIx < paneAxes.length; axisIx++) { + var axis = paneAxes[axisIx]; + if (axis.options.vertical) { + yAxes.push(axis); + } else { + xAxes.push(axis); + } + } + } + + return { x: xAxes, y: yAxes, any: xAxes.concat(yAxes) }; + }; + + PlotAreaBase.prototype.groupSeriesByPane = function groupSeriesByPane () { + var this$1 = this; + + var series = this.series; + var seriesByPane = {}; + + for (var i = 0; i < series.length; i++) { + var currentSeries = series[i]; + var pane = this$1.seriesPaneName(currentSeries); + + if (seriesByPane[pane]) { + seriesByPane[pane].push(currentSeries); + } else { + seriesByPane[pane] = [ currentSeries ]; + } + } + + return seriesByPane; + }; + + PlotAreaBase.prototype.filterVisibleSeries = function filterVisibleSeries (series) { + var result = []; + + for (var i = 0; i < series.length; i++) { + var currentSeries = series[i]; + if (currentSeries.visible !== false) { + result.push(currentSeries); + } + } + + return result; + }; + + PlotAreaBase.prototype.reflow = function reflow (targetBox) { + var options = this.options.plotArea; + var panes = this.panes; + var margin = Object(_common__WEBPACK_IMPORTED_MODULE_6__["getSpacing"])(options.margin); + + this.box = targetBox.clone().unpad(margin); + this.reflowPanes(); + + this.detachLabels(); + this.reflowAxes(panes); + this.reflowCharts(panes); + }; + + PlotAreaBase.prototype.redraw = function redraw (panes) { + var this$1 = this; + + var panesArray = [].concat(panes); + this.initSeries(); + + //prevents leak during partial redraws. the cached gradients observers retain reference to the destroyed elements. + var root = this.getRoot(); + if (root) { + root.cleanGradients(); + } + + for (var i = 0; i < panesArray.length; i++) { + this$1.removeCrosshairs(panesArray[i]); + panesArray[i].empty(); + } + + this.render(panesArray); + this.detachLabels(); + this.reflowAxes(this.panes); + this.reflowCharts(panesArray); + + this.createCrosshairs(panesArray); + + for (var i$1 = 0; i$1 < panesArray.length; i$1++) { + panesArray[i$1].refresh(); + } + }; + + PlotAreaBase.prototype.axisCrossingValues = function axisCrossingValues (axis, crossingAxes) { + var options = axis.options; + var crossingValues = [].concat( + options.axisCrossingValues || options.axisCrossingValue + ); + var valuesToAdd = crossingAxes.length - crossingValues.length; + var defaultValue = crossingValues[0] || 0; + + for (var i = 0; i < valuesToAdd; i++) { + crossingValues.push(defaultValue); + } + + return crossingValues; + }; + + PlotAreaBase.prototype.alignAxisTo = function alignAxisTo (axis, targetAxis, crossingValue, targetCrossingValue) { + var slot = axis.getSlot(crossingValue, crossingValue, true); + var slotEdge = axis.options.reverse ? 2 : 1; + var targetSlot = targetAxis.getSlot(targetCrossingValue, targetCrossingValue, true); + var targetEdge = targetAxis.options.reverse ? 2 : 1; + var axisBox = axis.box.translate( + targetSlot[_common_constants__WEBPACK_IMPORTED_MODULE_5__["X"] + targetEdge] - slot[_common_constants__WEBPACK_IMPORTED_MODULE_5__["X"] + slotEdge], + targetSlot[_common_constants__WEBPACK_IMPORTED_MODULE_5__["Y"] + targetEdge] - slot[_common_constants__WEBPACK_IMPORTED_MODULE_5__["Y"] + slotEdge] + ); + + if (axis.pane !== targetAxis.pane) { + axisBox.translate(0, axis.pane.box.y1 - targetAxis.pane.box.y1); + } + + axis.reflow(axisBox); + }; + + PlotAreaBase.prototype.alignAxes = function alignAxes (xAxes, yAxes) { + var this$1 = this; + + var xAnchor = xAxes[0]; + var yAnchor = yAxes[0]; + var xAnchorCrossings = this.axisCrossingValues(xAnchor, yAxes); + var yAnchorCrossings = this.axisCrossingValues(yAnchor, xAxes); + var leftAnchors = {}; + var rightAnchors = {}; + var topAnchors = {}; + var bottomAnchors = {}; + + for (var i = 0; i < yAxes.length; i++) { + var axis = yAxes[i]; + var pane = axis.pane; + var paneId = pane.id; + var visible = axis.options.visible !== false; + + // Locate pane anchor, if any, and use its axisCrossingValues + var anchor = paneAnchor(xAxes, pane) || xAnchor; + var anchorCrossings = xAnchorCrossings; + + if (anchor !== xAnchor) { + anchorCrossings = this$1.axisCrossingValues(anchor, yAxes); + } + + this$1.alignAxisTo(axis, anchor, yAnchorCrossings[i], anchorCrossings[i]); + + if (axis.options._overlap) { + continue; + } + + if (Object(_common__WEBPACK_IMPORTED_MODULE_6__["round"])(axis.lineBox().x1) === Object(_common__WEBPACK_IMPORTED_MODULE_6__["round"])(anchor.lineBox().x1)) { + // Push the axis to the left the previous y-axis so they don't overlap + if (leftAnchors[paneId]) { + axis.reflow(axis.box + .alignTo(leftAnchors[paneId].box, _common_constants__WEBPACK_IMPORTED_MODULE_5__["LEFT"]) + .translate(-axis.options.margin, 0) + ); + } + + if (visible) { + leftAnchors[paneId] = axis; + } + } + + if (Object(_common__WEBPACK_IMPORTED_MODULE_6__["round"])(axis.lineBox().x2) === Object(_common__WEBPACK_IMPORTED_MODULE_6__["round"])(anchor.lineBox().x2)) { + // Flip the labels on the right if we're at the right end of the pane + if (!axis._mirrored) { + axis.options.labels.mirror = !axis.options.labels.mirror; + axis._mirrored = true; + } + + this$1.alignAxisTo(axis, anchor, yAnchorCrossings[i], anchorCrossings[i]); + + // Push the axis to the right the previous y-axis so they don't overlap + if (rightAnchors[paneId]) { + axis.reflow(axis.box + .alignTo(rightAnchors[paneId].box, _common_constants__WEBPACK_IMPORTED_MODULE_5__["RIGHT"]) + .translate(axis.options.margin, 0) + ); + } + + if (visible) { + rightAnchors[paneId] = axis; + } + } + + if (i !== 0 && yAnchor.pane === axis.pane) { + axis.alignTo(yAnchor); + axis.reflow(axis.box); + } + } + + for (var i$1 = 0; i$1 < xAxes.length; i$1++) { + var axis$1 = xAxes[i$1]; + var pane$1 = axis$1.pane; + var paneId$1 = pane$1.id; + var visible$1 = axis$1.options.visible !== false; + + // Locate pane anchor and use its axisCrossingValues + var anchor$1 = paneAnchor(yAxes, pane$1) || yAnchor; + var anchorCrossings$1 = yAnchorCrossings; + if (anchor$1 !== yAnchor) { + anchorCrossings$1 = this$1.axisCrossingValues(anchor$1, xAxes); + } + + this$1.alignAxisTo(axis$1, anchor$1, xAnchorCrossings[i$1], anchorCrossings$1[i$1]); + + if (axis$1.options._overlap) { + continue; + } + + if (Object(_common__WEBPACK_IMPORTED_MODULE_6__["round"])(axis$1.lineBox().y1) === Object(_common__WEBPACK_IMPORTED_MODULE_6__["round"])(anchor$1.lineBox().y1)) { + // Flip the labels on top if we're at the top of the pane + if (!axis$1._mirrored) { + axis$1.options.labels.mirror = !axis$1.options.labels.mirror; + axis$1._mirrored = true; + } + this$1.alignAxisTo(axis$1, anchor$1, xAnchorCrossings[i$1], anchorCrossings$1[i$1]); + + // Push the axis above the previous x-axis so they don't overlap + if (topAnchors[paneId$1]) { + axis$1.reflow(axis$1.box + .alignTo(topAnchors[paneId$1].box, _common_constants__WEBPACK_IMPORTED_MODULE_5__["TOP"]) + .translate(0, -axis$1.options.margin) + ); + } + + if (visible$1) { + topAnchors[paneId$1] = axis$1; + } + } + + if (Object(_common__WEBPACK_IMPORTED_MODULE_6__["round"])(axis$1.lineBox().y2, _common_constants__WEBPACK_IMPORTED_MODULE_5__["COORD_PRECISION"]) === Object(_common__WEBPACK_IMPORTED_MODULE_6__["round"])(anchor$1.lineBox().y2, _common_constants__WEBPACK_IMPORTED_MODULE_5__["COORD_PRECISION"])) { + // Push the axis below the previous x-axis so they don't overlap + if (bottomAnchors[paneId$1]) { + axis$1.reflow(axis$1.box + .alignTo(bottomAnchors[paneId$1].box, _common_constants__WEBPACK_IMPORTED_MODULE_5__["BOTTOM"]) + .translate(0, axis$1.options.margin) + ); + } + + if (visible$1) { + bottomAnchors[paneId$1] = axis$1; + } + } + + if (i$1 !== 0) { + axis$1.alignTo(xAnchor); + axis$1.reflow(axis$1.box); + } + } + }; + + PlotAreaBase.prototype.shrinkAxisWidth = function shrinkAxisWidth (panes) { + var axes = this.groupAxes(panes).any; + var axisBox = axisGroupBox(axes); + var overflowX = 0; + + for (var i = 0; i < panes.length; i++) { + var currentPane = panes[i]; + + if (currentPane.axes.length > 0) { + overflowX = Math.max( + overflowX, + axisBox.width() - currentPane.contentBox.width() + ); + } + } + + if (overflowX !== 0) { + for (var i$1 = 0; i$1 < axes.length; i$1++) { + var currentAxis = axes[i$1]; + + if (!currentAxis.options.vertical) { + currentAxis.reflow(currentAxis.box.shrink(overflowX, 0)); + } + } + } + }; + + PlotAreaBase.prototype.shrinkAxisHeight = function shrinkAxisHeight (panes) { + var shrinked; + + for (var i = 0; i < panes.length; i++) { + var currentPane = panes[i]; + var axes = currentPane.axes; + var overflowY = Math.max(0, axisGroupBox(axes).height() - currentPane.contentBox.height()); + + if (overflowY !== 0) { + for (var j = 0; j < axes.length; j++) { + var currentAxis = axes[j]; + + if (currentAxis.options.vertical) { + currentAxis.reflow( + currentAxis.box.shrink(0, overflowY) + ); + } + } + shrinked = true; + } + } + + return shrinked; + }; + + PlotAreaBase.prototype.fitAxes = function fitAxes (panes) { + var axes = this.groupAxes(panes).any; + var offsetX = 0; + + for (var i = 0; i < panes.length; i++) { + var currentPane = panes[i]; + var paneAxes = currentPane.axes; + var paneBox = currentPane.contentBox; + + if (paneAxes.length > 0) { + var axisBox = axisGroupBox(paneAxes); + // OffsetY is calculated and applied per pane + var offsetY = Math.max(paneBox.y1 - axisBox.y1, paneBox.y2 - axisBox.y2); + + // OffsetX is calculated and applied globally + offsetX = Math.max(offsetX, paneBox.x1 - axisBox.x1); + + + for (var j = 0; j < paneAxes.length; j++) { + var currentAxis = paneAxes[j]; + + currentAxis.reflow( + currentAxis.box.translate(0, offsetY) + ); + } + } + } + + for (var i$1 = 0; i$1 < axes.length; i$1++) { + var currentAxis$1 = axes[i$1]; + + currentAxis$1.reflow( + currentAxis$1.box.translate(offsetX, 0) + ); + } + }; + + PlotAreaBase.prototype.reflowAxes = function reflowAxes (panes) { + var this$1 = this; + + var axes = this.groupAxes(panes); + + for (var i = 0; i < panes.length; i++) { + this$1.reflowPaneAxes(panes[i]); + } + + if (axes.x.length > 0 && axes.y.length > 0) { + this.alignAxes(axes.x, axes.y); + this.shrinkAxisWidth(panes); + + this.autoRotateAxisLabels(axes); + + this.alignAxes(axes.x, axes.y); + if (this.shrinkAxisWidth(panes)) { + this.alignAxes(axes.x, axes.y); + } + + this.shrinkAxisHeight(panes); + this.alignAxes(axes.x, axes.y); + + if (this.shrinkAxisHeight(panes)) { + this.alignAxes(axes.x, axes.y); + } + + this.fitAxes(panes); + } + }; + + PlotAreaBase.prototype.autoRotateAxisLabels = function autoRotateAxisLabels (groupedAxes) { + var this$1 = this; + + var ref = this; + var panes = ref.panes; + var axes = allPaneAxes(panes); + var rotated; + + for (var idx = 0; idx < axes.length; idx++) { + var axis = axes[idx]; + if (axis.autoRotateLabels()) { + rotated = true; + } + } + + if (rotated) { + for (var idx$1 = 0; idx$1 < panes.length; idx$1++) { + this$1.reflowPaneAxes(panes[idx$1]); + } + + if (groupedAxes.x.length > 0 && groupedAxes.y.length > 0) { + this.alignAxes(groupedAxes.x, groupedAxes.y); + this.shrinkAxisWidth(panes); + } + } + }; + + PlotAreaBase.prototype.reflowPaneAxes = function reflowPaneAxes (pane) { + var axes = pane.axes; + var length = axes.length; + + if (length > 0) { + for (var i = 0; i < length; i++) { + axes[i].reflow(pane.contentBox); + } + } + }; + + PlotAreaBase.prototype.reflowCharts = function reflowCharts (panes) { + var charts = this.charts; + var count = charts.length; + var box = this.box; + + for (var i = 0; i < count; i++) { + var chartPane = charts[i].pane; + if (!chartPane || Object(_common__WEBPACK_IMPORTED_MODULE_6__["inArray"])(chartPane, panes)) { + charts[i].reflow(box); + } + } + }; + + PlotAreaBase.prototype.reflowPanes = function reflowPanes () { + var ref = this; + var box = ref.box; + var panes = ref.panes; + var panesLength = panes.length; + var remainingHeight = box.height(); + var remainingPanes = panesLength; + var autoHeightPanes = 0; + var top = box.y1; + + for (var i = 0; i < panesLength; i++) { + var currentPane = panes[i]; + var height = currentPane.options.height; + + currentPane.options.width = box.width(); + + if (!currentPane.options.height) { + autoHeightPanes++; + } else { + if (height.indexOf && height.indexOf("%")) { + var percents = parseInt(height, 10) / 100; + currentPane.options.height = percents * box.height(); + } + + currentPane.reflow(box.clone()); + + remainingHeight -= currentPane.options.height; + } + } + + for (var i$1 = 0; i$1 < panesLength; i$1++) { + var currentPane$1 = panes[i$1]; + + if (!currentPane$1.options.height) { + currentPane$1.options.height = remainingHeight / autoHeightPanes; + } + } + + for (var i$2 = 0; i$2 < panesLength; i$2++) { + var currentPane$2 = panes[i$2]; + var paneBox = box + .clone() + .move(box.x1, top); + + currentPane$2.reflow(paneBox); + + remainingPanes--; + top += currentPane$2.options.height; + } + }; + + PlotAreaBase.prototype.backgroundBox = function backgroundBox () { + var axes = this.axes; + var axesCount = axes.length; + var box; + + for (var i = 0; i < axesCount; i++) { + var axisA = axes[i]; + + for (var j = 0; j < axesCount; j++) { + var axisB = axes[j]; + + if (axisA.options.vertical !== axisB.options.vertical) { + var lineBox = axisA.lineBox().clone().wrap(axisB.lineBox()); + + if (!box) { + box = lineBox; + } else { + box = box.wrap(lineBox); + } + } + } + } + + return box || this.box; + }; + + PlotAreaBase.prototype.chartsBoxes = function chartsBoxes () { + var panes = this.panes; + var boxes = []; + + for (var idx = 0; idx < panes.length; idx++) { + boxes.push(panes[idx].chartsBox()); + } + + return boxes; + }; + + PlotAreaBase.prototype.addBackgroundPaths = function addBackgroundPaths (multipath) { + var boxes = this.chartsBoxes(); + for (var idx = 0; idx < boxes.length; idx++) { + multipath.paths.push(_progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Path.fromRect(boxes[idx].toRect())); + } + }; + + PlotAreaBase.prototype.backgroundContainsPoint = function backgroundContainsPoint (point) { + var boxes = this.chartsBoxes(); + for (var idx = 0; idx < boxes.length; idx++) { + if (boxes[idx].containsPoint(point)) { + return true; + } + } + }; + + PlotAreaBase.prototype.createVisual = function createVisual () { + ChartElement.prototype.createVisual.call(this); + + var options = this.options.plotArea; + var opacity = options.opacity; + var background = options.background; + var border = options.border; if ( border === void 0 ) border = {}; + if (isTransparent(background)) { + background = _common_constants__WEBPACK_IMPORTED_MODULE_5__["WHITE"]; + opacity = 0; + } + + var bg = this._bgVisual = new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].MultiPath({ + fill: { + color: background, + opacity: opacity + }, + stroke: { + color: border.width ? border.color : "", + width: border.width, + dashType: border.dashType + }, + zIndex: -1 + }); + + this.addBackgroundPaths(bg); + + this.appendVisual(bg); + }; + + PlotAreaBase.prototype.pointsByCategoryIndex = function pointsByCategoryIndex (categoryIndex) { + var charts = this.charts; + var result = []; + + if (categoryIndex !== null) { + for (var i = 0; i < charts.length; i++) { + var chart = charts[i]; + if (chart.pane.options.name === "_navigator") { + continue; + } + + var points = charts[i].categoryPoints[categoryIndex]; + if (points && points.length) { + for (var j = 0; j < points.length; j++) { + var point = points[j]; + if (point && Object(_common__WEBPACK_IMPORTED_MODULE_6__["defined"])(point.value) && point.value !== null) { + result.push(point); + } + } + } + } + } + + return result; + }; + + PlotAreaBase.prototype.pointsBySeriesIndex = function pointsBySeriesIndex (seriesIndex) { + return this.filterPoints(function(point) { + return point.series.index === seriesIndex; + }); + }; + + PlotAreaBase.prototype.pointsBySeriesName = function pointsBySeriesName (name) { + return this.filterPoints(function(point) { + return point.series.name === name; + }); + }; + + PlotAreaBase.prototype.filterPoints = function filterPoints (callback) { + var charts = this.charts; + var result = []; + + for (var i = 0; i < charts.length; i++) { + var chart = charts[i]; + var points = chart.points; + for (var j = 0; j < points.length; j++) { + var point = points[j]; + if (point && point.visible !== false && callback(point)) { + result.push(point); + } + } + } + + return result; + }; + + PlotAreaBase.prototype.findPoint = function findPoint (callback) { + var charts = this.charts; + + for (var i = 0; i < charts.length; i++) { + var chart = charts[i]; + var points = chart.points; + for (var j = 0; j < points.length; j++) { + var point = points[j]; + if (point && point.visible !== false && callback(point)) { + return point; + } + } + } + }; + + PlotAreaBase.prototype.paneByPoint = function paneByPoint (point) { + var panes = this.panes; + + for (var i = 0; i < panes.length; i++) { + var pane = panes[i]; + if (pane.box.containsPoint(point)) { + return pane; + } + } + }; + + PlotAreaBase.prototype.detachLabels = function detachLabels () { + var axes = this.groupAxes(this.panes); + var xAxes = axes.x; + var yAxes = axes.y; + + this.detachAxisGroupLabels(yAxes, xAxes); + this.detachAxisGroupLabels(xAxes, yAxes); + }; + + PlotAreaBase.prototype.detachAxisGroupLabels = function detachAxisGroupLabels (axes, crossingAxes) { + var this$1 = this; + + var labelAxisCount = 0; + + for (var i = 0; i < axes.length; i++) { + var axis = axes[i]; + var pane = axis.pane; + var anchor = paneAnchor(crossingAxes, pane) || crossingAxes[0]; + var axisIndex = i + labelAxisCount; + var labelAxis = this$1.createLabelAxis(axis, axisIndex, anchor); + + if (labelAxis) { + labelAxisCount++; + + var pos = pane.axes.indexOf(axis) + labelAxisCount; + pane.appendAxisAt(labelAxis, pos); + } + } + }; + + PlotAreaBase.prototype.createLabelAxis = function createLabelAxis (axis, axisIndex, anchor) { + var labelOptions = axis.options.labels; + var position = labelOptions.position; + var onAxis = position !== _common_constants__WEBPACK_IMPORTED_MODULE_5__["END"] && position !== _common_constants__WEBPACK_IMPORTED_MODULE_5__["START"]; + var visible = labelOptions.visible; + + if (onAxis || visible === false) { + return null; + } + + var allAxes = this.groupAxes(this.panes); + var crossingAxes = anchor.options.vertical ? allAxes.x : allAxes.y; + var anchorCrossings = this.axisCrossingValues(anchor, crossingAxes); + var end = position === _common_constants__WEBPACK_IMPORTED_MODULE_5__["END"]; + var range = anchor.range(); + var edge = end ? range.max : range.min; + var crossingValue = Object(_common__WEBPACK_IMPORTED_MODULE_6__["limitValue"])(anchorCrossings[axisIndex], range.min, range.max); + + if (crossingValue - edge === 0) { + return null; + } + + anchorCrossings.splice(axisIndex + 1, 0, edge); + anchor.options.axisCrossingValues = anchorCrossings; + + var labelAxis = axis.clone(); + axis.clear(); + + labelAxis.options.name = undefined; + labelAxis.options.line.visible = false; + + labelAxis.options.crosshair = undefined; + labelAxis.options.notes = undefined; + labelAxis.options.plotBands = undefined; + + return labelAxis; + }; + + return PlotAreaBase; +}(_core__WEBPACK_IMPORTED_MODULE_1__["ChartElement"])); + +function isSingleAxis(axis) { + return !axis.pane.axes.some(function (a) { return a.options.vertical === axis.options.vertical && a !== axis && a.options.visible !== false; } + ); +} + +function axisGroupBox(axes) { + var length = axes.length; + var box; + + for (var i = 0; i < length; i++) { + var axis = axes[i]; + var visible = axis.options.visible !== false; + if (visible || isSingleAxis(axis)) { + var axisBox = visible ? axis.contentBox() : axis.lineBox(); + + if (!box) { + box = axisBox.clone(); + } else { + box.wrap(axisBox); + } + } + } + + return box || new _core__WEBPACK_IMPORTED_MODULE_1__["Box"](); +} + +function paneAnchor(axes, pane) { + for (var i = 0; i < axes.length; i++) { + var anchor = axes[i]; + if (anchor && anchor.pane === pane) { + return anchor; + } + } +} + +function isTransparent(color) { + return color === "" || color === null || color === "none" || color === "transparent" || !Object(_common__WEBPACK_IMPORTED_MODULE_6__["defined"])(color); +} + +var allPaneAxes = function (panes) { return panes.reduce(function (acc, pane) { return acc.concat(pane.axes); }, []); }; + +Object(_common__WEBPACK_IMPORTED_MODULE_6__["setDefaultOptions"])(PlotAreaBase, { + series: [], + plotArea: { + margin: {} + }, + background: "", + border: { + color: _common_constants__WEBPACK_IMPORTED_MODULE_5__["BLACK"], + width: 0 + }, + legend: { + inactiveItems: { + labels: { + color: "#919191" + }, + markers: { + color: "#919191" + } + } + } +}); + + __webpack_exports__["default"] = (PlotAreaBase); + + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/plotarea/plotarea-factory.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _utils_filter_series_by_type__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/utils/filter-series-by-type.js"); + var _common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + +var PlotAreaFactory = (function (Class) { + function PlotAreaFactory() { + Class.call(this); + + this._registry = []; + } + + if ( Class ) PlotAreaFactory.__proto__ = Class; + PlotAreaFactory.prototype = Object.create( Class && Class.prototype ); + PlotAreaFactory.prototype.constructor = PlotAreaFactory; + + PlotAreaFactory.prototype.register = function register (type, seriesTypes) { + this._registry.push({ + type: type, + seriesTypes: seriesTypes + }); + }; + + PlotAreaFactory.prototype.create = function create (srcSeries, options, chartService) { + var registry = this._registry; + var match = registry[0]; + var series; + + for (var idx = 0; idx < registry.length; idx++) { + var entry = registry[idx]; + series = Object(_utils_filter_series_by_type__WEBPACK_IMPORTED_MODULE_0__["default"])(srcSeries, entry.seriesTypes); + + if (series.length > 0) { + match = entry; + break; + } + } + + return new match.type(series, options, chartService); + }; + + return PlotAreaFactory; +}(_common__WEBPACK_IMPORTED_MODULE_1__["Class"])); + +PlotAreaFactory.current = new PlotAreaFactory(); + + __webpack_exports__["default"] = (PlotAreaFactory); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/plotarea/polar-plotarea-base.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _plotarea_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/plotarea/plotarea-base.js"); + var _axis_group_range_tracker__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/axis-group-range-tracker.js"); + var _core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core.js"); + var _constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + + + + + + + + + +var DEFAULT_PADDING = 0.15; + +var PolarPlotAreaBase = (function (PlotAreaBase) { + function PolarPlotAreaBase () { + PlotAreaBase.apply(this, arguments); + } + + if ( PlotAreaBase ) PolarPlotAreaBase.__proto__ = PlotAreaBase; + PolarPlotAreaBase.prototype = Object.create( PlotAreaBase && PlotAreaBase.prototype ); + PolarPlotAreaBase.prototype.constructor = PolarPlotAreaBase; + + PolarPlotAreaBase.prototype.initFields = function initFields () { + this.valueAxisRangeTracker = new _axis_group_range_tracker__WEBPACK_IMPORTED_MODULE_1__["default"](); + }; + + PolarPlotAreaBase.prototype.render = function render () { + this.addToLegend(this.series); + this.createPolarAxis(); + this.createCharts(); + this.createValueAxis(); + }; + + PolarPlotAreaBase.prototype.alignAxes = function alignAxes () { + var axis = this.valueAxis; + var range = axis.range(); + var crossingValue = axis.options.reverse ? range.max : range.min; + var slot = axis.getSlot(crossingValue); + var center = this.polarAxis.getSlot(0).center; + var axisBox = axis.box.translate( + center.x - slot.x1, + center.y - slot.y1 + ); + + axis.reflow(axisBox); + }; + + PolarPlotAreaBase.prototype.createValueAxis = function createValueAxis () { + var tracker = this.valueAxisRangeTracker; + var defaultRange = tracker.query(); + var axisOptions = this.valueAxisOptions({ + roundToMajorUnit: false, + zIndex: -1 + }); + var axisType, axisDefaultRange; + + if (axisOptions.type === _constants__WEBPACK_IMPORTED_MODULE_3__["LOGARITHMIC"]) { + axisType = _core__WEBPACK_IMPORTED_MODULE_2__["RadarLogarithmicAxis"]; + axisDefaultRange = { min: 0.1, max: 1 }; + } else { + axisType = _core__WEBPACK_IMPORTED_MODULE_2__["RadarNumericAxis"]; + axisDefaultRange = { min: 0, max: 1 }; + } + + var range = tracker.query(name) || defaultRange || axisDefaultRange; + + if (range && defaultRange) { + range.min = Math.min(range.min, defaultRange.min); + range.max = Math.max(range.max, defaultRange.max); + } + + var valueAxis = new axisType( + range.min, range.max, + axisOptions, + this.chartService + ); + + this.valueAxis = valueAxis; + this.appendAxis(valueAxis); + }; + + PolarPlotAreaBase.prototype.reflowAxes = function reflowAxes () { + var ref = this; + var options = ref.options.plotArea; + var valueAxis = ref.valueAxis; + var polarAxis = ref.polarAxis; + var box = ref.box; + var defaultPadding = Math.min(box.width(), box.height()) * DEFAULT_PADDING; + var padding = Object(_common__WEBPACK_IMPORTED_MODULE_4__["getSpacing"])(options.padding || {}, defaultPadding); + var paddingBox = box.clone().unpad(padding); + var axisBox = paddingBox.clone(); + + axisBox.y2 = axisBox.y1 + Math.min(axisBox.width(), axisBox.height()); + axisBox.align(paddingBox, _common_constants__WEBPACK_IMPORTED_MODULE_5__["Y"], _common_constants__WEBPACK_IMPORTED_MODULE_5__["CENTER"]); + + var valueAxisBox = axisBox.clone().shrink(0, axisBox.height() / 2); + + polarAxis.reflow(axisBox); + valueAxis.reflow(valueAxisBox); + var heightDiff = valueAxis.lineBox().height() - valueAxis.box.height(); + valueAxis.reflow(valueAxis.box.unpad({ top: heightDiff })); + + this.axisBox = axisBox; + this.alignAxes(axisBox); + }; + + PolarPlotAreaBase.prototype.backgroundBox = function backgroundBox () { + return this.box; + }; + + PolarPlotAreaBase.prototype.detachLabels = function detachLabels () {}; + + return PolarPlotAreaBase; +}(_plotarea_base__WEBPACK_IMPORTED_MODULE_0__["default"])); + + __webpack_exports__["default"] = (PolarPlotAreaBase); + + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/plotarea/polar-plotarea.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _polar_plotarea_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/plotarea/polar-plotarea-base.js"); + var _plotarea_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/plotarea/plotarea-base.js"); + var _polar_line_chart_polar_line_chart__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/polar-line-chart/polar-line-chart.js"); + var _polar_scatter_chart_polar_scatter_chart__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/polar-scatter-chart/polar-scatter-chart.js"); + var _polar_area_chart_polar_area_chart__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/polar-area-chart/polar-area-chart.js"); + var _mixins_plotarea_events_mixin__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/mixins/plotarea-events-mixin.js"); + var _core__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core.js"); + var _constants__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/constants.js"); + var _utils_filter_series_by_type__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/utils/filter-series-by-type.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + + + + + + + + + + + + + +var PolarPlotArea = (function (PolarPlotAreaBase) { + function PolarPlotArea () { + PolarPlotAreaBase.apply(this, arguments); + } + + if ( PolarPlotAreaBase ) PolarPlotArea.__proto__ = PolarPlotAreaBase; + PolarPlotArea.prototype = Object.create( PolarPlotAreaBase && PolarPlotAreaBase.prototype ); + PolarPlotArea.prototype.constructor = PolarPlotArea; + + PolarPlotArea.prototype.createPolarAxis = function createPolarAxis () { + var polarAxis = new _core__WEBPACK_IMPORTED_MODULE_6__["PolarAxis"](this.options.xAxis, this.chartService); + + this.polarAxis = polarAxis; + this.axisX = polarAxis; + this.appendAxis(polarAxis); + }; + + PolarPlotArea.prototype.valueAxisOptions = function valueAxisOptions (defaults) { + return Object(_common__WEBPACK_IMPORTED_MODULE_10__["deepExtend"])(defaults, { + majorGridLines: { type: _common_constants__WEBPACK_IMPORTED_MODULE_9__["ARC"] }, + minorGridLines: { type: _common_constants__WEBPACK_IMPORTED_MODULE_9__["ARC"] } + }, this.options.yAxis); + }; + + PolarPlotArea.prototype.createValueAxis = function createValueAxis () { + PolarPlotAreaBase.prototype.createValueAxis.call(this); + this.axisY = this.valueAxis; + }; + + PolarPlotArea.prototype.appendChart = function appendChart (chart, pane) { + this.valueAxisRangeTracker.update(chart.yAxisRanges); + + _plotarea_base__WEBPACK_IMPORTED_MODULE_1__["default"].prototype.appendChart.call(this, chart, pane); + }; + + PolarPlotArea.prototype.createCharts = function createCharts () { + var series = this.filterVisibleSeries(this.series); + var pane = this.panes[0]; + + this.createLineChart( + Object(_utils_filter_series_by_type__WEBPACK_IMPORTED_MODULE_8__["default"])(series, [ _constants__WEBPACK_IMPORTED_MODULE_7__["POLAR_LINE"] ]), + pane + ); + + this.createScatterChart( + Object(_utils_filter_series_by_type__WEBPACK_IMPORTED_MODULE_8__["default"])(series, [ _constants__WEBPACK_IMPORTED_MODULE_7__["POLAR_SCATTER"] ]), + pane + ); + + this.createAreaChart( + Object(_utils_filter_series_by_type__WEBPACK_IMPORTED_MODULE_8__["default"])(series, [ _constants__WEBPACK_IMPORTED_MODULE_7__["POLAR_AREA"] ]), + pane + ); + }; + + PolarPlotArea.prototype.createLineChart = function createLineChart (series, pane) { + if (series.length === 0) { + return; + } + + var lineChart = new _polar_line_chart_polar_line_chart__WEBPACK_IMPORTED_MODULE_2__["default"](this, { series: series }); + + this.appendChart(lineChart, pane); + }; + + PolarPlotArea.prototype.createScatterChart = function createScatterChart (series, pane) { + if (series.length === 0) { + return; + } + + var scatterChart = new _polar_scatter_chart_polar_scatter_chart__WEBPACK_IMPORTED_MODULE_3__["default"](this, { series: series }); + + this.appendChart(scatterChart, pane); + }; + + PolarPlotArea.prototype.createAreaChart = function createAreaChart (series, pane) { + if (series.length === 0) { + return; + } + + var areaChart = new _polar_area_chart_polar_area_chart__WEBPACK_IMPORTED_MODULE_4__["default"](this, { series: series }); + + this.appendChart(areaChart, pane); + }; + + PolarPlotArea.prototype._dispatchEvent = function _dispatchEvent (chart, e, eventType) { + var coords = chart._eventCoordinates(e); + var point = new _core__WEBPACK_IMPORTED_MODULE_6__["Point"](coords.x, coords.y); + var xValue = this.axisX.getValue(point); + var yValue = this.axisY.getValue(point); + + if (xValue !== null && yValue !== null) { + chart.trigger(eventType, { + element: Object(_common__WEBPACK_IMPORTED_MODULE_10__["eventElement"])(e), + x: xValue, + y: yValue + }); + } + }; + + PolarPlotArea.prototype.createCrosshairs = function createCrosshairs () {}; + + return PolarPlotArea; +}(_polar_plotarea_base__WEBPACK_IMPORTED_MODULE_0__["default"])); + +Object(_common__WEBPACK_IMPORTED_MODULE_10__["setDefaultOptions"])(PolarPlotArea, { + xAxis: {}, + yAxis: {} +}); + +Object(_common__WEBPACK_IMPORTED_MODULE_10__["deepExtend"])(PolarPlotArea.prototype, _mixins_plotarea_events_mixin__WEBPACK_IMPORTED_MODULE_5__["default"]); + + __webpack_exports__["default"] = (PolarPlotArea); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/plotarea/radar-plotarea.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _polar_plotarea_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/plotarea/polar-plotarea-base.js"); + var _categorical_plotarea__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/plotarea/categorical-plotarea.js"); + var _radar_area_chart_radar_area_chart__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/radar-area-chart/radar-area-chart.js"); + var _radar_line_chart_radar_line_chart__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/radar-line-chart/radar-line-chart.js"); + var _radar_bar_chart_radar_bar_chart__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/radar-bar-chart/radar-bar-chart.js"); + var _mixins_plotarea_events_mixin__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/mixins/plotarea-events-mixin.js"); + var _core__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core.js"); + var _constants__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/constants.js"); + var _utils_filter_series_by_type__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/utils/filter-series-by-type.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + + + + + + + + + + + + + +var RadarPlotArea = (function (PolarPlotAreaBase) { + function RadarPlotArea () { + PolarPlotAreaBase.apply(this, arguments); + } + + if ( PolarPlotAreaBase ) RadarPlotArea.__proto__ = PolarPlotAreaBase; + RadarPlotArea.prototype = Object.create( PolarPlotAreaBase && PolarPlotAreaBase.prototype ); + RadarPlotArea.prototype.constructor = RadarPlotArea; + + RadarPlotArea.prototype.createPolarAxis = function createPolarAxis () { + var categoryAxis = new _core__WEBPACK_IMPORTED_MODULE_6__["RadarCategoryAxis"](this.options.categoryAxis, this.chartService); + + this.polarAxis = categoryAxis; + this.categoryAxis = categoryAxis; + this.appendAxis(categoryAxis); + this.aggregateCategories(); + this.createCategoryAxesLabels(); + }; + + RadarPlotArea.prototype.valueAxisOptions = function valueAxisOptions (defaults) { + if (this._hasBarCharts) { + Object(_common__WEBPACK_IMPORTED_MODULE_10__["deepExtend"])(defaults, { + majorGridLines: { type: _common_constants__WEBPACK_IMPORTED_MODULE_9__["ARC"] }, + minorGridLines: { type: _common_constants__WEBPACK_IMPORTED_MODULE_9__["ARC"] } + }); + } + + if (this._isStacked100) { + Object(_common__WEBPACK_IMPORTED_MODULE_10__["deepExtend"])(defaults, { + roundToMajorUnit: false, + labels: { format: "P0" } + }); + } + + return Object(_common__WEBPACK_IMPORTED_MODULE_10__["deepExtend"])(defaults, this.options.valueAxis); + }; + + RadarPlotArea.prototype.aggregateCategories = function aggregateCategories () { + // No separate panes in radar charts + _categorical_plotarea__WEBPACK_IMPORTED_MODULE_1__["default"].prototype.aggregateCategories.call(this, this.panes); + }; + + RadarPlotArea.prototype.createCategoryAxesLabels = function createCategoryAxesLabels () { + _categorical_plotarea__WEBPACK_IMPORTED_MODULE_1__["default"].prototype.createCategoryAxesLabels.call(this, this.panes); + }; + + RadarPlotArea.prototype.filterSeries = function filterSeries (currentSeries) { + // Not supported for radar charts + return currentSeries; + }; + + RadarPlotArea.prototype.createCharts = function createCharts () { + var series = this.filterVisibleSeries(this.series); + var pane = this.panes[0]; + + this.createAreaChart( + Object(_utils_filter_series_by_type__WEBPACK_IMPORTED_MODULE_8__["default"])(series, [ _constants__WEBPACK_IMPORTED_MODULE_7__["RADAR_AREA"] ]), + pane + ); + + this.createLineChart( + Object(_utils_filter_series_by_type__WEBPACK_IMPORTED_MODULE_8__["default"])(series, [ _constants__WEBPACK_IMPORTED_MODULE_7__["RADAR_LINE"] ]), + pane + ); + + this.createBarChart( + Object(_utils_filter_series_by_type__WEBPACK_IMPORTED_MODULE_8__["default"])(series, [ _constants__WEBPACK_IMPORTED_MODULE_7__["RADAR_COLUMN"] ]), + pane + ); + }; + + RadarPlotArea.prototype.chartOptions = function chartOptions (series) { + var options = { series: series }; + var firstSeries = series[0]; + if (firstSeries) { + var filteredSeries = this.filterVisibleSeries(series); + var stack = firstSeries.stack; + options.isStacked = stack && filteredSeries.length > 1; + options.isStacked100 = stack && stack.type === "100%" && filteredSeries.length > 1; + + if (options.isStacked100) { + this._isStacked100 = true; + } + } + + return options; + }; + + RadarPlotArea.prototype.createAreaChart = function createAreaChart (series, pane) { + if (series.length === 0) { + return; + } + + var areaChart = new _radar_area_chart_radar_area_chart__WEBPACK_IMPORTED_MODULE_2__["default"](this, this.chartOptions(series)); + this.appendChart(areaChart, pane); + }; + + RadarPlotArea.prototype.createLineChart = function createLineChart (series, pane) { + if (series.length === 0) { + return; + } + + var lineChart = new _radar_line_chart_radar_line_chart__WEBPACK_IMPORTED_MODULE_3__["default"](this, this.chartOptions(series)); + this.appendChart(lineChart, pane); + }; + + RadarPlotArea.prototype.createBarChart = function createBarChart (series, pane) { + if (series.length === 0) { + return; + } + + var firstSeries = series[0]; + var options = this.chartOptions(series); + options.gap = firstSeries.gap; + options.spacing = firstSeries.spacing; + + var barChart = new _radar_bar_chart_radar_bar_chart__WEBPACK_IMPORTED_MODULE_4__["default"](this, options); + this.appendChart(barChart, pane); + + this._hasBarCharts = true; + }; + + RadarPlotArea.prototype.seriesCategoryAxis = function seriesCategoryAxis () { + return this.categoryAxis; + }; + + RadarPlotArea.prototype._dispatchEvent = function _dispatchEvent (chart, e, eventType) { + var coords = chart._eventCoordinates(e); + var point = new _core__WEBPACK_IMPORTED_MODULE_6__["Point"](coords.x, coords.y); + var category = this.categoryAxis.getCategory(point); + var value = this.valueAxis.getValue(point); + + if (category !== null && value !== null) { + chart.trigger(eventType, { + element: Object(_common__WEBPACK_IMPORTED_MODULE_10__["eventElement"])(e), + category: category, + value: value + }); + } + }; + + RadarPlotArea.prototype.createCrosshairs = function createCrosshairs () {}; + + return RadarPlotArea; +}(_polar_plotarea_base__WEBPACK_IMPORTED_MODULE_0__["default"])); + +Object(_common__WEBPACK_IMPORTED_MODULE_10__["deepExtend"])(RadarPlotArea.prototype, _mixins_plotarea_events_mixin__WEBPACK_IMPORTED_MODULE_5__["default"], { + appendChart: _categorical_plotarea__WEBPACK_IMPORTED_MODULE_1__["default"].prototype.appendChart, + aggregateSeries: _categorical_plotarea__WEBPACK_IMPORTED_MODULE_1__["default"].prototype.aggregateSeries, + seriesSourcePoints: _categorical_plotarea__WEBPACK_IMPORTED_MODULE_1__["default"].prototype.seriesSourcePoints +}); + +Object(_common__WEBPACK_IMPORTED_MODULE_10__["setDefaultOptions"])(RadarPlotArea, { + categoryAxis: { + categories: [] + }, + valueAxis: {} +}); + + __webpack_exports__["default"] = (RadarPlotArea); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/plotarea/xy-plotarea.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _plotarea_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/plotarea/plotarea-base.js"); + var _axis_group_range_tracker__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/axis-group-range-tracker.js"); + var _mixins_plotarea_events_mixin__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/mixins/plotarea-events-mixin.js"); + var _scatter_charts_scatter_chart__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/scatter-charts/scatter-chart.js"); + var _scatter_charts_scatter_line_chart__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/scatter-charts/scatter-line-chart.js"); + var _bubble_chart_bubble_chart__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/bubble-chart/bubble-chart.js"); + var _series_binder__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/series-binder.js"); + var _core__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core.js"); + var _utils_filter_series_by_type__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/utils/filter-series-by-type.js"); + var _utils_equals_ignore_case__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/utils/equals-ignore-case.js"); + var _utils_single_item_or_array__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/utils/single-item-or-array.js"); + var _constants__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/constants.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + + + + + + + + + + + + + + + + +var XYPlotArea = (function (PlotAreaBase) { + function XYPlotArea () { + PlotAreaBase.apply(this, arguments); + } + + if ( PlotAreaBase ) XYPlotArea.__proto__ = PlotAreaBase; + XYPlotArea.prototype = Object.create( PlotAreaBase && PlotAreaBase.prototype ); + XYPlotArea.prototype.constructor = XYPlotArea; + + XYPlotArea.prototype.initFields = function initFields () { + this.namedXAxes = {}; + this.namedYAxes = {}; + + this.xAxisRangeTracker = new _axis_group_range_tracker__WEBPACK_IMPORTED_MODULE_1__["default"](); + this.yAxisRangeTracker = new _axis_group_range_tracker__WEBPACK_IMPORTED_MODULE_1__["default"](); + }; + + XYPlotArea.prototype.render = function render (panes) { + var this$1 = this; + if ( panes === void 0 ) panes = this.panes; + + var seriesByPane = this.groupSeriesByPane(); + + for (var i = 0; i < panes.length; i++) { + var pane = panes[i]; + var paneSeries = seriesByPane[pane.options.name || "default"] || []; + this$1.addToLegend(paneSeries); + var filteredSeries = this$1.filterVisibleSeries(paneSeries); + + if (!filteredSeries) { + continue; + } + + this$1.createScatterChart( + Object(_utils_filter_series_by_type__WEBPACK_IMPORTED_MODULE_8__["default"])(filteredSeries, _constants__WEBPACK_IMPORTED_MODULE_11__["SCATTER"]), + pane + ); + + this$1.createScatterLineChart( + Object(_utils_filter_series_by_type__WEBPACK_IMPORTED_MODULE_8__["default"])(filteredSeries, _constants__WEBPACK_IMPORTED_MODULE_11__["SCATTER_LINE"]), + pane + ); + + this$1.createBubbleChart( + Object(_utils_filter_series_by_type__WEBPACK_IMPORTED_MODULE_8__["default"])(filteredSeries, _constants__WEBPACK_IMPORTED_MODULE_11__["BUBBLE"]), + pane + ); + } + + this.createAxes(panes); + }; + + XYPlotArea.prototype.appendChart = function appendChart (chart, pane) { + this.xAxisRangeTracker.update(chart.xAxisRanges); + this.yAxisRangeTracker.update(chart.yAxisRanges); + + PlotAreaBase.prototype.appendChart.call(this, chart, pane); + }; + + XYPlotArea.prototype.removeAxis = function removeAxis (axis) { + var axisName = axis.options.name; + + PlotAreaBase.prototype.removeAxis.call(this, axis); + + if (axis.options.vertical) { + this.yAxisRangeTracker.reset(axisName); + delete this.namedYAxes[axisName]; + } else { + this.xAxisRangeTracker.reset(axisName); + delete this.namedXAxes[axisName]; + } + + if (axis === this.axisX) { + delete this.axisX; + } + + if (axis === this.axisY) { + delete this.axisY; + } + }; + + // TODO: Refactor, optionally use series.pane option + XYPlotArea.prototype.seriesPaneName = function seriesPaneName (series) { + var options = this.options; + var xAxisName = series.xAxis; + var xAxisOptions = [].concat(options.xAxis); + var xAxis = Object(_common__WEBPACK_IMPORTED_MODULE_13__["grep"])(xAxisOptions, function(a) { return a.name === xAxisName; })[0]; + var yAxisName = series.yAxis; + var yAxisOptions = [].concat(options.yAxis); + var yAxis = Object(_common__WEBPACK_IMPORTED_MODULE_13__["grep"])(yAxisOptions, function(a) { return a.name === yAxisName; })[0]; + var panes = options.panes || [ {} ]; + var defaultPaneName = panes[0].name || "default"; + var paneName = (xAxis || {}).pane || (yAxis || {}).pane || defaultPaneName; + + return paneName; + }; + + XYPlotArea.prototype.createScatterChart = function createScatterChart (series, pane) { + if (series.length > 0) { + this.appendChart( + new _scatter_charts_scatter_chart__WEBPACK_IMPORTED_MODULE_3__["default"](this, { series: series, clip: pane.options.clip }), + pane + ); + } + }; + + XYPlotArea.prototype.createScatterLineChart = function createScatterLineChart (series, pane) { + if (series.length > 0) { + this.appendChart( + new _scatter_charts_scatter_line_chart__WEBPACK_IMPORTED_MODULE_4__["default"](this, { series: series, clip: pane.options.clip }), + pane + ); + } + }; + + XYPlotArea.prototype.createBubbleChart = function createBubbleChart (series, pane) { + if (series.length > 0) { + this.appendChart( + new _bubble_chart_bubble_chart__WEBPACK_IMPORTED_MODULE_5__["default"](this, { series: series, clip: pane.options.clip }), + pane + ); + } + }; + + XYPlotArea.prototype.createXYAxis = function createXYAxis (options, vertical, axisIndex) { + var axisName = options.name; + var namedAxes = vertical ? this.namedYAxes : this.namedXAxes; + var tracker = vertical ? this.yAxisRangeTracker : this.xAxisRangeTracker; + var axisOptions = Object(_common__WEBPACK_IMPORTED_MODULE_13__["deepExtend"])({ reverse: !vertical && this.chartService.rtl }, options, { vertical: vertical }); + var isLog = Object(_utils_equals_ignore_case__WEBPACK_IMPORTED_MODULE_9__["default"])(axisOptions.type, _constants__WEBPACK_IMPORTED_MODULE_11__["LOGARITHMIC"]); + var defaultRange = tracker.query(); + var defaultAxisRange = isLog ? { min: 0.1, max: 1 } : { min: 0, max: 1 }; + var range = tracker.query(axisName) || defaultRange || defaultAxisRange; + var typeSamples = [ axisOptions.min, axisOptions.max ]; + var series = this.series; + + for (var seriesIx = 0; seriesIx < series.length; seriesIx++) { + var currentSeries = series[seriesIx]; + var seriesAxisName = currentSeries[vertical ? "yAxis" : "xAxis"]; + if ((seriesAxisName === axisOptions.name) || (axisIndex === 0 && !seriesAxisName)) { + var firstPointValue = _series_binder__WEBPACK_IMPORTED_MODULE_6__["default"].current.bindPoint(currentSeries, 0).valueFields; + typeSamples.push(firstPointValue[vertical ? "y" : "x"]); + + break; + } + } + + if (axisIndex === 0 && defaultRange) { + range.min = Math.min(range.min, defaultRange.min); + range.max = Math.max(range.max, defaultRange.max); + } + + var inferredDate; + + for (var i = 0; i < typeSamples.length; i++) { + if (typeSamples[i] instanceof Date) { + inferredDate = true; + break; + } + } + + var axisType; + if (Object(_utils_equals_ignore_case__WEBPACK_IMPORTED_MODULE_9__["default"])(axisOptions.type, _common_constants__WEBPACK_IMPORTED_MODULE_12__["DATE"]) || (!axisOptions.type && inferredDate)) { + axisType = _core__WEBPACK_IMPORTED_MODULE_7__["DateValueAxis"]; + } else if (isLog) { + axisType = _core__WEBPACK_IMPORTED_MODULE_7__["LogarithmicAxis"]; + } else { + axisType = _core__WEBPACK_IMPORTED_MODULE_7__["NumericAxis"]; + } + + var axis = new axisType(range.min, range.max, axisOptions, this.chartService); + axis.axisIndex = axisIndex; + + if (axisName) { + if (namedAxes[axisName]) { + throw new Error(((vertical ? "Y" : "X") + " axis with name " + axisName + " is already defined")); + } + namedAxes[axisName] = axis; + } + + this.appendAxis(axis); + + return axis; + }; + + XYPlotArea.prototype.createAxes = function createAxes (panes) { + var this$1 = this; + + var options = this.options; + var xAxesOptions = [].concat(options.xAxis); + var xAxes = []; + var yAxesOptions = [].concat(options.yAxis); + var yAxes = []; + + for (var idx = 0; idx < xAxesOptions.length; idx++) { + var axisPane = this$1.findPane(xAxesOptions[idx].pane); + if (Object(_common__WEBPACK_IMPORTED_MODULE_13__["inArray"])(axisPane, panes)) { + xAxes.push(this$1.createXYAxis(xAxesOptions[idx], false, idx)); + } + } + + for (var idx$1 = 0; idx$1 < yAxesOptions.length; idx$1++) { + var axisPane$1 = this$1.findPane(yAxesOptions[idx$1].pane); + if (Object(_common__WEBPACK_IMPORTED_MODULE_13__["inArray"])(axisPane$1, panes)) { + yAxes.push(this$1.createXYAxis(yAxesOptions[idx$1], true, idx$1)); + } + } + + this.axisX = this.axisX || xAxes[0]; + this.axisY = this.axisY || yAxes[0]; + }; + + XYPlotArea.prototype._dispatchEvent = function _dispatchEvent (chart, e, eventType) { + var coords = chart._eventCoordinates(e); + var point = new _core__WEBPACK_IMPORTED_MODULE_7__["Point"](coords.x, coords.y); + var allAxes = this.axes; + var length = allAxes.length; + var xValues = []; + var yValues = []; + + for (var i = 0; i < length; i++) { + var axis = allAxes[i]; + var values = axis.options.vertical ? yValues : xValues; + var currentValue = axis.getValue(point); + if (currentValue !== null) { + values.push(currentValue); + } + } + + if (xValues.length > 0 && yValues.length > 0) { + chart.trigger(eventType, { + element: Object(_common__WEBPACK_IMPORTED_MODULE_13__["eventElement"])(e), + originalEvent: e, + x: Object(_utils_single_item_or_array__WEBPACK_IMPORTED_MODULE_10__["default"])(xValues), + y: Object(_utils_single_item_or_array__WEBPACK_IMPORTED_MODULE_10__["default"])(yValues) + }); + } + }; + + XYPlotArea.prototype.updateAxisOptions = function updateAxisOptions$1 (axis, options) { + var vertical = axis.options.vertical; + var axes = this.groupAxes(this.panes); + var index = (vertical ? axes.y : axes.x).indexOf(axis); + + updateAxisOptions(this.options, index, vertical, options); + updateAxisOptions(this.originalOptions, index, vertical, options); + }; + + return XYPlotArea; +}(_plotarea_base__WEBPACK_IMPORTED_MODULE_0__["default"])); + +function updateAxisOptions(targetOptions, axisIndex, vertical, options) { + var axisOptions = ([].concat(vertical ? targetOptions.yAxis : targetOptions.xAxis))[axisIndex]; + Object(_common__WEBPACK_IMPORTED_MODULE_13__["deepExtend"])(axisOptions, options); +} + +Object(_common__WEBPACK_IMPORTED_MODULE_13__["setDefaultOptions"])(XYPlotArea, { + xAxis: {}, + yAxis: {} +}); + +Object(_common__WEBPACK_IMPORTED_MODULE_13__["deepExtend"])(XYPlotArea.prototype, _mixins_plotarea_events_mixin__WEBPACK_IMPORTED_MODULE_2__["default"]); + + __webpack_exports__["default"] = (XYPlotArea); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/polar-area-chart/polar-area-chart.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _polar_line_chart_polar_line_chart__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/polar-line-chart/polar-line-chart.js"); + var _spline_polar_area_segment__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/polar-area-chart/spline-polar-area-segment.js"); + var _polar_area_segment__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/polar-area-chart/polar-area-segment.js"); + var _constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/constants.js"); + var _utils_has_value__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/utils/has-value.js"); + + + + + + + + +var PolarAreaChart = (function (PolarLineChart) { + function PolarAreaChart () { + PolarLineChart.apply(this, arguments); + } + + if ( PolarLineChart ) PolarAreaChart.__proto__ = PolarLineChart; + PolarAreaChart.prototype = Object.create( PolarLineChart && PolarLineChart.prototype ); + PolarAreaChart.prototype.constructor = PolarAreaChart; + + PolarAreaChart.prototype.createSegment = function createSegment (linePoints, currentSeries, seriesIx) { + var style = (currentSeries.line || {}).style; + var segment; + + if (style === _constants__WEBPACK_IMPORTED_MODULE_3__["SMOOTH"]) { + segment = new _spline_polar_area_segment__WEBPACK_IMPORTED_MODULE_1__["default"](linePoints, currentSeries, seriesIx); + } else { + segment = new _polar_area_segment__WEBPACK_IMPORTED_MODULE_2__["default"](linePoints, currentSeries, seriesIx); + } + return segment; + }; + + PolarAreaChart.prototype.createMissingValue = function createMissingValue (value, missingValues) { + var missingValue; + + if (Object(_utils_has_value__WEBPACK_IMPORTED_MODULE_4__["default"])(value.x) && missingValues !== _constants__WEBPACK_IMPORTED_MODULE_3__["INTERPOLATE"]) { + missingValue = { + x: value.x, + y: value.y + }; + if (missingValues === _constants__WEBPACK_IMPORTED_MODULE_3__["ZERO"]) { + missingValue.y = 0; + } + } + + return missingValue; + }; + + PolarAreaChart.prototype.seriesMissingValues = function seriesMissingValues (series) { + return series.missingValues || _constants__WEBPACK_IMPORTED_MODULE_3__["ZERO"]; + }; + + PolarAreaChart.prototype._hasMissingValuesGap = function _hasMissingValuesGap () { + var this$1 = this; + + var series = this.options.series; + + for (var idx = 0; idx < series.length; idx++) { + if (this$1.seriesMissingValues(series[idx]) === _constants__WEBPACK_IMPORTED_MODULE_3__["GAP"]) { + return true; + } + } + }; + + PolarAreaChart.prototype.sortPoints = function sortPoints (points) { + var this$1 = this; + + points.sort(xComparer); + + if (this._hasMissingValuesGap()) { + for (var idx = 0; idx < points.length; idx++) { + var point = points[idx]; + if (point) { + var value = point.value; + if (!Object(_utils_has_value__WEBPACK_IMPORTED_MODULE_4__["default"])(value.y) && this$1.seriesMissingValues(point.series) === _constants__WEBPACK_IMPORTED_MODULE_3__["GAP"]) { + delete points[idx]; + } + } + } + } + + return points; + }; + + return PolarAreaChart; +}(_polar_line_chart_polar_line_chart__WEBPACK_IMPORTED_MODULE_0__["default"])); + +function xComparer(a, b) { + return a.value.x - b.value.x; +} + + __webpack_exports__["default"] = (PolarAreaChart); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/polar-area-chart/polar-area-segment.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/main.js"); + var _area_chart_area_segment__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/area-chart/area-segment.js"); + + + +var PolarAreaSegment = (function (AreaSegment) { + function PolarAreaSegment () { + AreaSegment.apply(this, arguments); + } + + if ( AreaSegment ) PolarAreaSegment.__proto__ = AreaSegment; + PolarAreaSegment.prototype = Object.create( AreaSegment && AreaSegment.prototype ); + PolarAreaSegment.prototype.constructor = PolarAreaSegment; + + PolarAreaSegment.prototype.fillToAxes = function fillToAxes (fillPath) { + var polarAxis = this.parent.plotArea.polarAxis; + var center = polarAxis.box.center(); + var centerSegment = new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].Segment([ center.x, center.y ]); + + fillPath.segments.unshift(centerSegment); + fillPath.segments.push(centerSegment); + }; + + return PolarAreaSegment; +}(_area_chart_area_segment__WEBPACK_IMPORTED_MODULE_1__["default"])); + + __webpack_exports__["default"] = (PolarAreaSegment); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/polar-area-chart/spline-polar-area-segment.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _area_chart_spline_area_segment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/area-chart/spline-area-segment.js"); + var _core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core.js"); + + + +var SplinePolarAreaSegment = (function (SplineAreaSegment) { + function SplinePolarAreaSegment () { + SplineAreaSegment.apply(this, arguments); + } + + if ( SplineAreaSegment ) SplinePolarAreaSegment.__proto__ = SplineAreaSegment; + SplinePolarAreaSegment.prototype = Object.create( SplineAreaSegment && SplineAreaSegment.prototype ); + SplinePolarAreaSegment.prototype.constructor = SplinePolarAreaSegment; + + SplinePolarAreaSegment.prototype.fillToAxes = function fillToAxes (fillPath) { + var center = this._polarAxisCenter(); + fillPath.lineTo(center.x, center.y); + }; + + SplinePolarAreaSegment.prototype._polarAxisCenter = function _polarAxisCenter () { + var polarAxis = this.parent.plotArea.polarAxis; + var center = polarAxis.box.center(); + return center; + }; + + SplinePolarAreaSegment.prototype.strokeSegments = function strokeSegments () { + var segments = this._strokeSegments; + + if (!segments) { + var center = this._polarAxisCenter(); + var curveProcessor = new _core__WEBPACK_IMPORTED_MODULE_1__["CurveProcessor"](false); + var linePoints = this.points(); + + linePoints.push(center); + segments = this._strokeSegments = curveProcessor.process(linePoints); + segments.pop(); + } + + return segments; + }; + + return SplinePolarAreaSegment; +}(_area_chart_spline_area_segment__WEBPACK_IMPORTED_MODULE_0__["default"])); + + __webpack_exports__["default"] = (SplinePolarAreaSegment); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/polar-line-chart/polar-line-chart.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _scatter_charts_scatter_line_chart__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/scatter-charts/scatter-line-chart.js"); + var _polar_scatter_chart_polar_scatter_chart__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/polar-scatter-chart/polar-scatter-chart.js"); + var _common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + + +var PolarLineChart = (function (ScatterLineChart) { + function PolarLineChart () { + ScatterLineChart.apply(this, arguments); + }if ( ScatterLineChart ) PolarLineChart.__proto__ = ScatterLineChart; + PolarLineChart.prototype = Object.create( ScatterLineChart && ScatterLineChart.prototype ); + PolarLineChart.prototype.constructor = PolarLineChart; + + + + return PolarLineChart; +}(_scatter_charts_scatter_line_chart__WEBPACK_IMPORTED_MODULE_0__["default"])); + +PolarLineChart.prototype.pointSlot = _polar_scatter_chart_polar_scatter_chart__WEBPACK_IMPORTED_MODULE_1__["default"].prototype.pointSlot; + +Object(_common__WEBPACK_IMPORTED_MODULE_2__["setDefaultOptions"])(PolarLineChart, { + clip: false +}); + + __webpack_exports__["default"] = (PolarLineChart); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/polar-scatter-chart/polar-scatter-chart.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _scatter_charts_scatter_chart__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/scatter-charts/scatter-chart.js"); + var _core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core.js"); + var _common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + + + +var PolarScatterChart = (function (ScatterChart) { + function PolarScatterChart () { + ScatterChart.apply(this, arguments); + } + + if ( ScatterChart ) PolarScatterChart.__proto__ = ScatterChart; + PolarScatterChart.prototype = Object.create( ScatterChart && ScatterChart.prototype ); + PolarScatterChart.prototype.constructor = PolarScatterChart; + + PolarScatterChart.prototype.pointSlot = function pointSlot (slotX, slotY) { + var valueRadius = slotX.center.y - slotY.y1; + var slot = _core__WEBPACK_IMPORTED_MODULE_1__["Point"].onCircle(slotX.center, slotX.startAngle, valueRadius); + + return new _core__WEBPACK_IMPORTED_MODULE_1__["Box"](slot.x, slot.y, slot.x, slot.y); + }; + + return PolarScatterChart; +}(_scatter_charts_scatter_chart__WEBPACK_IMPORTED_MODULE_0__["default"])); + +Object(_common__WEBPACK_IMPORTED_MODULE_2__["setDefaultOptions"])(PolarScatterChart, { + clip: false +}); + + __webpack_exports__["default"] = (PolarScatterChart); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/radar-area-chart/radar-area-chart.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _radar_line_chart_radar_line_chart__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/radar-line-chart/radar-line-chart.js"); + var _spline_radar_area_segment__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/radar-area-chart/spline-radar-area-segment.js"); + var _radar_area_segment__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/radar-area-chart/radar-area-segment.js"); + var _constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/constants.js"); + + + + + + +var RadarAreaChart = (function (RadarLineChart) { + function RadarAreaChart () { + RadarLineChart.apply(this, arguments); + } + + if ( RadarLineChart ) RadarAreaChart.__proto__ = RadarLineChart; + RadarAreaChart.prototype = Object.create( RadarLineChart && RadarLineChart.prototype ); + RadarAreaChart.prototype.constructor = RadarAreaChart; + + RadarAreaChart.prototype.createSegment = function createSegment (linePoints, currentSeries, seriesIx, prevSegment) { + var isStacked = this.options.isStacked; + var style = (currentSeries.line || {}).style; + var previousSegment; + var stackPoints; + var segment; + + if (isStacked && seriesIx > 0 && prevSegment) { + stackPoints = prevSegment.linePoints.slice(0); + previousSegment = prevSegment; + } + + if (style === _constants__WEBPACK_IMPORTED_MODULE_3__["SMOOTH"]) { + segment = new _spline_radar_area_segment__WEBPACK_IMPORTED_MODULE_1__["default"](linePoints, currentSeries, seriesIx, previousSegment, stackPoints); + segment.options.closed = true; + } else { + linePoints.push(linePoints[0]); + segment = new _radar_area_segment__WEBPACK_IMPORTED_MODULE_2__["default"](linePoints, currentSeries, seriesIx, previousSegment, stackPoints); + } + + return segment; + }; + + RadarAreaChart.prototype.seriesMissingValues = function seriesMissingValues (series) { + return series.missingValues || _constants__WEBPACK_IMPORTED_MODULE_3__["ZERO"]; + }; + + return RadarAreaChart; +}(_radar_line_chart_radar_line_chart__WEBPACK_IMPORTED_MODULE_0__["default"])); + + __webpack_exports__["default"] = (RadarAreaChart); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/radar-area-chart/radar-area-segment.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _area_chart_area_segment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/area-chart/area-segment.js"); + + +var RadarAreaSegment = (function (AreaSegment) { + function RadarAreaSegment () { + AreaSegment.apply(this, arguments); + } + + if ( AreaSegment ) RadarAreaSegment.__proto__ = AreaSegment; + RadarAreaSegment.prototype = Object.create( AreaSegment && AreaSegment.prototype ); + RadarAreaSegment.prototype.constructor = RadarAreaSegment; + + RadarAreaSegment.prototype.fillToAxes = function fillToAxes () {}; + + return RadarAreaSegment; +}(_area_chart_area_segment__WEBPACK_IMPORTED_MODULE_0__["default"])); + + __webpack_exports__["default"] = (RadarAreaSegment); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/radar-area-chart/spline-radar-area-segment.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _area_chart_spline_area_segment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/area-chart/spline-area-segment.js"); + + +var SplineRadarAreaSegment = (function (SplineAreaSegment) { + function SplineRadarAreaSegment () { + SplineAreaSegment.apply(this, arguments); + } + + if ( SplineAreaSegment ) SplineRadarAreaSegment.__proto__ = SplineAreaSegment; + SplineRadarAreaSegment.prototype = Object.create( SplineAreaSegment && SplineAreaSegment.prototype ); + SplineRadarAreaSegment.prototype.constructor = SplineRadarAreaSegment; + + SplineRadarAreaSegment.prototype.fillToAxes = function fillToAxes () {}; + + return SplineRadarAreaSegment; +}(_area_chart_spline_area_segment__WEBPACK_IMPORTED_MODULE_0__["default"])); + + __webpack_exports__["default"] = (SplineRadarAreaSegment); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/radar-bar-chart/radar-bar-chart.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _bar_chart_bar_chart__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/bar-chart/bar-chart.js"); + var _radar_segment__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/radar-bar-chart/radar-segment.js"); + var _layout_radar_cluster_layout__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/layout/radar-cluster-layout.js"); + var _layout_radar_stack_layout__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/layout/radar-stack-layout.js"); + var _categorical_chart__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/categorical-chart.js"); + var _common__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + + + + + +var RadarBarChart = (function (BarChart) { + function RadarBarChart () { + BarChart.apply(this, arguments); + } + + if ( BarChart ) RadarBarChart.__proto__ = BarChart; + RadarBarChart.prototype = Object.create( BarChart && BarChart.prototype ); + RadarBarChart.prototype.constructor = RadarBarChart; + + RadarBarChart.prototype.pointType = function pointType () { + return _radar_segment__WEBPACK_IMPORTED_MODULE_1__["default"]; + }; + + RadarBarChart.prototype.clusterType = function clusterType () { + return _layout_radar_cluster_layout__WEBPACK_IMPORTED_MODULE_2__["default"]; + }; + + RadarBarChart.prototype.stackType = function stackType () { + return _layout_radar_stack_layout__WEBPACK_IMPORTED_MODULE_3__["default"]; + }; + + RadarBarChart.prototype.categorySlot = function categorySlot (categoryAxis, categoryIx) { + return categoryAxis.getSlot(categoryIx); + }; + + RadarBarChart.prototype.pointSlot = function pointSlot (categorySlot, valueSlot) { + var slot = categorySlot.clone(); + var y = categorySlot.center.y; + + slot.radius = y - valueSlot.y1; + slot.innerRadius = y - valueSlot.y2; + + return slot; + }; + + RadarBarChart.prototype.reflowPoint = function reflowPoint (point, pointSlot) { + point.sector = pointSlot; + point.reflow(); + }; + + RadarBarChart.prototype.createAnimation = function createAnimation () { + this.options.animation.center = this.box.toRect().center(); + BarChart.prototype.createAnimation.call(this); + }; + + return RadarBarChart; +}(_bar_chart_bar_chart__WEBPACK_IMPORTED_MODULE_0__["default"])); + +RadarBarChart.prototype.reflow = _categorical_chart__WEBPACK_IMPORTED_MODULE_4__["default"].prototype.reflow; + +Object(_common__WEBPACK_IMPORTED_MODULE_5__["setDefaultOptions"])(RadarBarChart, { + clip: false, + limitPoints: false, + animation: { + type: "pie" + } +}); + + __webpack_exports__["default"] = (RadarBarChart); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/radar-bar-chart/radar-segment.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _donut_chart_donut_segment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/donut-chart/donut-segment.js"); + var _common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + +var RadarSegment = (function (DonutSegment) { + function RadarSegment(value, options) { + DonutSegment.call(this, value, null, options); + } + + if ( DonutSegment ) RadarSegment.__proto__ = DonutSegment; + RadarSegment.prototype = Object.create( DonutSegment && DonutSegment.prototype ); + RadarSegment.prototype.constructor = RadarSegment; + + return RadarSegment; +}(_donut_chart_donut_segment__WEBPACK_IMPORTED_MODULE_0__["default"])); + +Object(_common__WEBPACK_IMPORTED_MODULE_1__["setDefaultOptions"])(RadarSegment, { + overlay: { + gradient: "none" + }, + labels: { + distance: 10 + } +}); + + __webpack_exports__["default"] = (RadarSegment); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/radar-line-chart/radar-line-chart.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _line_chart_line_chart__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/line-chart/line-chart.js"); + var _line_chart_spline_segment__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/line-chart/spline-segment.js"); + var _line_chart_line_segment__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/line-chart/line-segment.js"); + var _core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core.js"); + var _constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + + + + + + + +function groupBySeriesIx(segments) { + var seriesSegments = []; + for (var idx = 0; idx < segments.length; idx++) { + var segment = segments[idx]; + seriesSegments[segment.seriesIx] = seriesSegments[segment.seriesIx] || []; + seriesSegments[segment.seriesIx].push(segment); + } + + return seriesSegments; +} + +var RadarLineChart = (function (LineChart) { + function RadarLineChart () { + LineChart.apply(this, arguments); + } + + if ( LineChart ) RadarLineChart.__proto__ = LineChart; + RadarLineChart.prototype = Object.create( LineChart && LineChart.prototype ); + RadarLineChart.prototype.constructor = RadarLineChart; + + RadarLineChart.prototype.pointSlot = function pointSlot (categorySlot, valueSlot) { + var valueRadius = categorySlot.center.y - valueSlot.y1; + var slot = _core__WEBPACK_IMPORTED_MODULE_3__["Point"].onCircle(categorySlot.center, categorySlot.middle(), valueRadius); + + return new _core__WEBPACK_IMPORTED_MODULE_3__["Box"](slot.x, slot.y, slot.x, slot.y); + }; + + RadarLineChart.prototype.renderSegments = function renderSegments () { + LineChart.prototype.renderSegments.call(this); + + if (this._segments && this._segments.length > 1) { + var seriesSegments = groupBySeriesIx(this._segments); + + for (var idx = 0; idx < seriesSegments.length; idx++) { + var segments = seriesSegments[idx]; + if (segments && segments.length > 1) { + var firstPoint = segments[0].linePoints[0]; + var lastSegment = Object(_common__WEBPACK_IMPORTED_MODULE_5__["last"])(segments); + var lastPoint = Object(_common__WEBPACK_IMPORTED_MODULE_5__["last"])(lastSegment.linePoints); + var isFirstDataPoint = firstPoint.categoryIx === 0; + var isLastDataPoint = lastPoint.categoryIx === lastPoint.categoriesCount - 1; + if (isFirstDataPoint && isLastDataPoint) { + Object(_common__WEBPACK_IMPORTED_MODULE_5__["last"])(segments).linePoints.push(firstPoint); + } + } + } + } + }; + + RadarLineChart.prototype.createSegment = function createSegment (linePoints, currentSeries, seriesIx) { + var style = currentSeries.style; + var pointType; + + if (style === _constants__WEBPACK_IMPORTED_MODULE_4__["SMOOTH"]) { + pointType = _line_chart_spline_segment__WEBPACK_IMPORTED_MODULE_1__["default"]; + } else { + pointType = _line_chart_line_segment__WEBPACK_IMPORTED_MODULE_2__["default"]; + } + + var segment = new pointType(linePoints, currentSeries, seriesIx); + + if (linePoints.length === currentSeries.data.length) { + segment.options.closed = true; + } + + return segment; + }; + + return RadarLineChart; +}(_line_chart_line_chart__WEBPACK_IMPORTED_MODULE_0__["default"])); + +Object(_common__WEBPACK_IMPORTED_MODULE_5__["setDefaultOptions"])(RadarLineChart, { + clip: false, + limitPoints: false +}); + + __webpack_exports__["default"] = (RadarLineChart); + + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/range-area-chart/range-area-chart.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _categorical_chart__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/categorical-chart.js"); + var _mixins_line_chart_mixin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/mixins/line-chart-mixin.js"); + var _mixins_clip_animation_mixin__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/mixins/clip-animation-mixin.js"); + var _range_area_point__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/range-area-chart/range-area-point.js"); + var _range_area_segment__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/range-area-chart/range-area-segment.js"); + var _spline_range_area_segment__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/range-area-chart/spline-range-area-segment.js"); + var _step_range_area_segment__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/range-area-chart/step-range-area-segment.js"); + var _core__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core.js"); + var _constants__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/constants.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + var _utils__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/utils.js"); + + + + + + + + + + + + + + + +var RangeAreaChart = (function (CategoricalChart) { + function RangeAreaChart () { + CategoricalChart.apply(this, arguments); + } + + if ( CategoricalChart ) RangeAreaChart.__proto__ = CategoricalChart; + RangeAreaChart.prototype = Object.create( CategoricalChart && CategoricalChart.prototype ); + RangeAreaChart.prototype.constructor = RangeAreaChart; + + RangeAreaChart.prototype.render = function render () { + CategoricalChart.prototype.render.call(this); + + this.renderSegments(); + }; + + RangeAreaChart.prototype.pointType = function pointType () { + return _range_area_point__WEBPACK_IMPORTED_MODULE_3__["default"]; + }; + + RangeAreaChart.prototype.createPoint = function createPoint (data, fields) { + var categoryIx = fields.categoryIx; + var category = fields.category; + var series = fields.series; + var seriesIx = fields.seriesIx; + var value = data.valueFields; + + if (!Object(_utils__WEBPACK_IMPORTED_MODULE_11__["hasValue"])(value.from) && !Object(_utils__WEBPACK_IMPORTED_MODULE_11__["hasValue"])(value.to)) { + if (this.seriesMissingValues(series) === _constants__WEBPACK_IMPORTED_MODULE_8__["ZERO"]) { + value = { + from: 0, + to: 0 + }; + } else { + return null; + } + } + + var pointOptions = this.pointOptions(series, seriesIx); + pointOptions = this.evalPointOptions( + pointOptions, value, category, categoryIx, series, seriesIx + ); + + var color = data.fields.color || series.color; + if (Object(_common__WEBPACK_IMPORTED_MODULE_10__["isFunction"])(series.color)) { + color = pointOptions.color; + } + + var point = new _range_area_point__WEBPACK_IMPORTED_MODULE_3__["default"](value, pointOptions); + point.color = color; + + this.append(point); + + return point; + }; + + RangeAreaChart.prototype.createSegment = function createSegment (linePoints, currentSeries, seriesIx) { + var style = (currentSeries.line || {}).style; + var segmentType; + if (style === "smooth") { + segmentType = _spline_range_area_segment__WEBPACK_IMPORTED_MODULE_5__["default"]; + } else if (style === "step") { + segmentType = _step_range_area_segment__WEBPACK_IMPORTED_MODULE_6__["default"]; + } else { + segmentType = _range_area_segment__WEBPACK_IMPORTED_MODULE_4__["default"]; + } + + return new segmentType(linePoints, currentSeries, seriesIx); + }; + + RangeAreaChart.prototype.plotRange = function plotRange (point, startValue) { + if (!point) { + return [ startValue, startValue ]; + } + + return [ point.value.from, point.value.to ]; + }; + + RangeAreaChart.prototype.valueSlot = function valueSlot (valueAxis, plotRange) { + var fromSlot = valueAxis.getSlot(plotRange[0], plotRange[0], !this.options.clip); + var toSlot = valueAxis.getSlot(plotRange[1], plotRange[1], !this.options.clip); + if (fromSlot && toSlot) { + return { + from: fromSlot, + to: toSlot + }; + } + }; + + RangeAreaChart.prototype.pointSlot = function pointSlot (categorySlot, valueSlot) { + var from = valueSlot.from; + var to = valueSlot.to; + var fromSlot, toSlot; + + if (this.options.invertAxes) { + fromSlot = new _core__WEBPACK_IMPORTED_MODULE_7__["Box"](from.x1, categorySlot.y1, from.x2, categorySlot.y2); + toSlot = new _core__WEBPACK_IMPORTED_MODULE_7__["Box"](to.x1, categorySlot.y1, to.x2, categorySlot.y2); + } else { + fromSlot = new _core__WEBPACK_IMPORTED_MODULE_7__["Box"](categorySlot.x1, from.y1, categorySlot.x2, from.y2); + toSlot = new _core__WEBPACK_IMPORTED_MODULE_7__["Box"](categorySlot.x1, to.y1, categorySlot.x2, to.y2); + } + + return { + from: fromSlot, + to: toSlot + }; + }; + + RangeAreaChart.prototype.addValue = function addValue (data, fields) { + var valueFields = data.valueFields; + if (!Object(_common__WEBPACK_IMPORTED_MODULE_10__["isNumber"])(valueFields.from)) { + valueFields.from = valueFields.to; + } + + if (!Object(_common__WEBPACK_IMPORTED_MODULE_10__["isNumber"])(valueFields.to)) { + valueFields.to = valueFields.from; + } + + CategoricalChart.prototype.addValue.call(this, data, fields); + }; + + RangeAreaChart.prototype.updateRange = function updateRange (value, fields) { + if (value !== null && Object(_common__WEBPACK_IMPORTED_MODULE_10__["isNumber"])(value.from) && Object(_common__WEBPACK_IMPORTED_MODULE_10__["isNumber"])(value.to)) { + var axisName = fields.series.axis; + var axisRange = this.valueAxisRanges[axisName] = this.valueAxisRanges[axisName] || { min: _common_constants__WEBPACK_IMPORTED_MODULE_9__["MAX_VALUE"], max: _common_constants__WEBPACK_IMPORTED_MODULE_9__["MIN_VALUE"] }; + var from = value.from; + var to = value.to; + + axisRange.min = Math.min(axisRange.min, from, to); + axisRange.max = Math.max(axisRange.max, from, to); + } + }; + + RangeAreaChart.prototype.formatPointValue = function formatPointValue (point, format) { + var value = point.value; + + return this.chartService.format.auto(format, value.from, value.to); + }; + + RangeAreaChart.prototype.animationPoints = function animationPoints () { + var points = this.points; + var result = []; + for (var idx = 0; idx < points.length; idx++) { + var point = points[idx]; + if (point) { + result.push((point.fromPoint || {}).marker); + result.push((point.toPoint || {}).marker); + } + } + + return result.concat(this._segments); + }; + + return RangeAreaChart; +}(_categorical_chart__WEBPACK_IMPORTED_MODULE_0__["default"])); + +Object(_common__WEBPACK_IMPORTED_MODULE_10__["deepExtend"])(RangeAreaChart.prototype, _mixins_line_chart_mixin__WEBPACK_IMPORTED_MODULE_1__["default"], _mixins_clip_animation_mixin__WEBPACK_IMPORTED_MODULE_2__["default"]); + + __webpack_exports__["default"] = (RangeAreaChart); + + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/range-area-chart/range-area-point.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/main.js"); + var _core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core.js"); + var _range_line_point__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/range-area-chart/range-line-point.js"); + var _mixins_point_events_mixin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/mixins/point-events-mixin.js"); + var _mixins_note_mixin__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/mixins/note-mixin.js"); + var _constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/constants.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + + + + + + + + +var AUTO = 'auto'; +var DEFAULT_FROM_FORMAT = '{0}'; +var DEFAULT_TO_FORMAT = '{1}'; + +var RangeAreaPoint = (function (ChartElement) { + function RangeAreaPoint(value, options) { + ChartElement.call(this); + + this.value = value; + this.options = options; + this.aboveAxis = Object(_common__WEBPACK_IMPORTED_MODULE_7__["valueOrDefault"])(this.options.aboveAxis, true); + this.tooltipTracking = true; + this.initLabelsFormat(); + } + + if ( ChartElement ) RangeAreaPoint.__proto__ = ChartElement; + RangeAreaPoint.prototype = Object.create( ChartElement && ChartElement.prototype ); + RangeAreaPoint.prototype.constructor = RangeAreaPoint; + + RangeAreaPoint.prototype.render = function render () { + if (this._rendered) { + return; + } + + this._rendered = true; + + var ref = this.options; + var markers = ref.markers; + var labels = ref.labels; + var value = this.value; + + var fromPoint = this.fromPoint = new _range_line_point__WEBPACK_IMPORTED_MODULE_2__["default"](value, Object(_common__WEBPACK_IMPORTED_MODULE_7__["deepExtend"])({}, this.options, { + labels: labels.from, + markers: markers.from + })); + + var toPoint = this.toPoint = new _range_line_point__WEBPACK_IMPORTED_MODULE_2__["default"](value, Object(_common__WEBPACK_IMPORTED_MODULE_7__["deepExtend"])({}, this.options, { + labels: labels.to, + markers: markers.to + })); + + this.copyFields(fromPoint); + this.copyFields(toPoint); + + this.append(fromPoint); + this.append(toPoint); + }; + + RangeAreaPoint.prototype.reflow = function reflow (targetBox) { + this.render(); + + var fromBox = targetBox.from; + var toBox = targetBox.to; + + this.positionLabels(fromBox, toBox); + + this.fromPoint.reflow(fromBox); + this.toPoint.reflow(toBox); + + this.box = this.fromPoint.markerBox().clone().wrap(this.toPoint.markerBox()); + }; + + RangeAreaPoint.prototype.createHighlight = function createHighlight () { + var group = new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Group(); + group.append(this.fromPoint.createHighlight()); + group.append(this.toPoint.createHighlight()); + + return group; + }; + + RangeAreaPoint.prototype.highlightVisual = function highlightVisual () { + return this.visual; + }; + + RangeAreaPoint.prototype.highlightVisualArgs = function highlightVisualArgs () { + return { + options: this.options, + from: this.fromPoint.highlightVisualArgs(), + to: this.toPoint.highlightVisualArgs() + }; + }; + + RangeAreaPoint.prototype.tooltipAnchor = function tooltipAnchor () { + var clipBox = this.owner.pane.clipBox(); + var showTooltip = !clipBox || clipBox.overlaps(this.box); + + if (showTooltip) { + var box = this.box; + var center = box.center(); + var horizontalAlign = _common_constants__WEBPACK_IMPORTED_MODULE_6__["LEFT"]; + var x, y, verticalAlign; + + if (this.options.vertical) { + x = center.x; + y = box.y1 - _constants__WEBPACK_IMPORTED_MODULE_5__["TOOLTIP_OFFSET"]; + verticalAlign = _common_constants__WEBPACK_IMPORTED_MODULE_6__["BOTTOM"]; + } else { + x = box.x2 + _constants__WEBPACK_IMPORTED_MODULE_5__["TOOLTIP_OFFSET"]; + y = center.y; + verticalAlign = _common_constants__WEBPACK_IMPORTED_MODULE_6__["CENTER"]; + } + + return { + point: new _core__WEBPACK_IMPORTED_MODULE_1__["Point"](x, y), + align: { + horizontal: horizontalAlign, + vertical: verticalAlign + } + }; + } + }; + + RangeAreaPoint.prototype.formatValue = function formatValue (format) { + return this.owner.formatPointValue(this, format); + }; + + RangeAreaPoint.prototype.overlapsBox = function overlapsBox (box) { + return this.box.overlaps(box); + }; + + RangeAreaPoint.prototype.unclipElements = function unclipElements () { + this.fromPoint.unclipElements(); + this.toPoint.unclipElements(); + }; + + RangeAreaPoint.prototype.initLabelsFormat = function initLabelsFormat () { + var labels = this.options.labels; + if (!labels.format) { + if (!labels.from || !labels.from.format) { + labels.from = Object.assign({}, labels.from, { + format: DEFAULT_FROM_FORMAT + }); + } + + if (!labels.to || !labels.to.format) { + labels.to = Object.assign({}, labels.to, { + format: DEFAULT_TO_FORMAT + }); + } + } + }; + + RangeAreaPoint.prototype.positionLabels = function positionLabels (fromBox, toBox) { + var ref = this.options; + var labels = ref.labels; + var vertical = ref.vertical; + + if (labels.position === AUTO) { + var fromLabelPosition, toLabelPosition; + if (vertical) { + if (toBox.y1 <= fromBox.y1) { + toLabelPosition = _constants__WEBPACK_IMPORTED_MODULE_5__["ABOVE"]; + fromLabelPosition = _constants__WEBPACK_IMPORTED_MODULE_5__["BELOW"]; + } else { + toLabelPosition = _constants__WEBPACK_IMPORTED_MODULE_5__["BELOW"]; + fromLabelPosition = _constants__WEBPACK_IMPORTED_MODULE_5__["ABOVE"]; + } + } else { + if (toBox.x1 <= fromBox.x1) { + toLabelPosition = _common_constants__WEBPACK_IMPORTED_MODULE_6__["LEFT"]; + fromLabelPosition = _common_constants__WEBPACK_IMPORTED_MODULE_6__["RIGHT"]; + } else { + toLabelPosition = _common_constants__WEBPACK_IMPORTED_MODULE_6__["RIGHT"]; + fromLabelPosition = _common_constants__WEBPACK_IMPORTED_MODULE_6__["LEFT"]; + } + } + + if (!labels.from || !labels.from.position) { + this.fromPoint.options.labels.position = fromLabelPosition; + } + + if (!labels.to || !labels.to.position) { + this.toPoint.options.labels.position = toLabelPosition; + } + } + }; + + RangeAreaPoint.prototype.copyFields = function copyFields (point) { + point.dataItem = this.dataItem; + point.category = this.category; + point.series = this.series; + point.color = this.color; + point.owner = this.owner; + }; + + return RangeAreaPoint; +}(_core__WEBPACK_IMPORTED_MODULE_1__["ChartElement"])); + +Object(_common__WEBPACK_IMPORTED_MODULE_7__["deepExtend"])(RangeAreaPoint.prototype, _mixins_point_events_mixin__WEBPACK_IMPORTED_MODULE_3__["default"]); +Object(_common__WEBPACK_IMPORTED_MODULE_7__["deepExtend"])(RangeAreaPoint.prototype, _mixins_note_mixin__WEBPACK_IMPORTED_MODULE_4__["default"]); + +RangeAreaPoint.prototype.defaults = { + markers: { + visible: false, + background: _common_constants__WEBPACK_IMPORTED_MODULE_6__["WHITE"], + size: _constants__WEBPACK_IMPORTED_MODULE_5__["LINE_MARKER_SIZE"], + type: _common_constants__WEBPACK_IMPORTED_MODULE_6__["CIRCLE"], + border: { + width: 2 + }, + opacity: 1 + }, + labels: { + visible: false, + margin: Object(_common__WEBPACK_IMPORTED_MODULE_7__["getSpacing"])(3), + padding: Object(_common__WEBPACK_IMPORTED_MODULE_7__["getSpacing"])(4), + animation: { + type: _constants__WEBPACK_IMPORTED_MODULE_5__["FADEIN"], + delay: _constants__WEBPACK_IMPORTED_MODULE_5__["INITIAL_ANIMATION_DURATION"] + }, + position: AUTO + }, + notes: { + label: {} + }, + highlight: { + markers: { + border: { + color: _common_constants__WEBPACK_IMPORTED_MODULE_6__["WHITE"], + width: 2 + } + }, + zIndex: _common_constants__WEBPACK_IMPORTED_MODULE_6__["HIGHLIGHT_ZINDEX"] + }, + tooltip: { + format: '{0} - {1}' + } +}; + + __webpack_exports__["default"] = (RangeAreaPoint); + + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/range-area-chart/range-area-segment.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/main.js"); + var _area_chart_area_segment__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/area-chart/area-segment.js"); + + + +var RangeAreaSegment = (function (AreaSegment) { + function RangeAreaSegment () { + AreaSegment.apply(this, arguments); + } + + if ( AreaSegment ) RangeAreaSegment.__proto__ = AreaSegment; + RangeAreaSegment.prototype = Object.create( AreaSegment && AreaSegment.prototype ); + RangeAreaSegment.prototype.constructor = RangeAreaSegment; + + RangeAreaSegment.prototype.createStrokeSegments = function createStrokeSegments () { + return this.segmentsFromPoints(this.toGeometryPoints(this.toPoints())); + }; + + RangeAreaSegment.prototype.stackSegments = function stackSegments () { + var fromSegments = this.fromSegments; + if (!this.fromSegments) { + fromSegments = this.fromSegments = this.segmentsFromPoints(this.toGeometryPoints(this.fromPoints().reverse())); + } + + return fromSegments; + }; + + RangeAreaSegment.prototype.createStroke = function createStroke (style) { + var toPath = new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Path(style); + var fromPath = new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Path(style); + + toPath.segments.push.apply(toPath.segments, this.strokeSegments()); + fromPath.segments.push.apply(fromPath.segments, this.stackSegments()); + + this.visual.append(toPath); + this.visual.append(fromPath); + }; + + RangeAreaSegment.prototype.hasStackSegment = function hasStackSegment () { + return true; + }; + + RangeAreaSegment.prototype.fromPoints = function fromPoints () { + return this.linePoints.map(function (point) { return point.fromPoint; }); + }; + + RangeAreaSegment.prototype.toPoints = function toPoints () { + return this.linePoints.map(function (point) { return point.toPoint; }); + }; + + return RangeAreaSegment; +}(_area_chart_area_segment__WEBPACK_IMPORTED_MODULE_1__["default"])); + + __webpack_exports__["default"] = (RangeAreaSegment); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/range-area-chart/range-line-point.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _line_chart_line_point__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/line-chart/line-point.js"); + + +var RangeLinePoint = (function (LinePoint) { + function RangeLinePoint () { + LinePoint.apply(this, arguments); + } + + if ( LinePoint ) RangeLinePoint.__proto__ = LinePoint; + RangeLinePoint.prototype = Object.create( LinePoint && LinePoint.prototype ); + RangeLinePoint.prototype.constructor = RangeLinePoint; + + RangeLinePoint.prototype.aliasFor = function aliasFor () { + return this.parent; + }; + + return RangeLinePoint; +}(_line_chart_line_point__WEBPACK_IMPORTED_MODULE_0__["default"])); + + __webpack_exports__["default"] = (RangeLinePoint); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/range-area-chart/spline-range-area-segment.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core.js"); + var _range_area_segment__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/range-area-chart/range-area-segment.js"); + + + + +var SplineRangeAreaSegment = (function (RangeAreaSegment) { + function SplineRangeAreaSegment () { + RangeAreaSegment.apply(this, arguments); + } + + if ( RangeAreaSegment ) SplineRangeAreaSegment.__proto__ = RangeAreaSegment; + SplineRangeAreaSegment.prototype = Object.create( RangeAreaSegment && RangeAreaSegment.prototype ); + SplineRangeAreaSegment.prototype.constructor = SplineRangeAreaSegment; + + SplineRangeAreaSegment.prototype.createStrokeSegments = function createStrokeSegments () { + return this.createCurveSegments(this.toPoints()); + }; + + SplineRangeAreaSegment.prototype.stackSegments = function stackSegments () { + var fromSegments = this.fromSegments; + if (!this.fromSegments) { + fromSegments = this.fromSegments = this.createCurveSegments(this.fromPoints().reverse()); + } + + return fromSegments; + }; + + SplineRangeAreaSegment.prototype.createCurveSegments = function createCurveSegments (points) { + var curveProcessor = new _core__WEBPACK_IMPORTED_MODULE_0__["CurveProcessor"](); + + return curveProcessor.process(this.toGeometryPoints(points)); + }; + + return SplineRangeAreaSegment; +}(_range_area_segment__WEBPACK_IMPORTED_MODULE_1__["default"])); + + __webpack_exports__["default"] = (SplineRangeAreaSegment); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/range-area-chart/step-range-area-segment.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _line_chart_step_line_mixin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/line-chart/step-line-mixin.js"); + var _range_area_segment__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/range-area-chart/range-area-segment.js"); + var _common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + +var StepRangeAreaSegment = (function (RangeAreaSegment) { + function StepRangeAreaSegment () { + RangeAreaSegment.apply(this, arguments); + } + + if ( RangeAreaSegment ) StepRangeAreaSegment.__proto__ = RangeAreaSegment; + StepRangeAreaSegment.prototype = Object.create( RangeAreaSegment && RangeAreaSegment.prototype ); + StepRangeAreaSegment.prototype.constructor = StepRangeAreaSegment; + + StepRangeAreaSegment.prototype.createStrokeSegments = function createStrokeSegments () { + return this.segmentsFromPoints(this.calculateStepPoints(this.toPoints())); + }; + + StepRangeAreaSegment.prototype.stackSegments = function stackSegments () { + var fromSegments = this.fromSegments; + if (!this.fromSegments) { + fromSegments = this.fromSegments = this.segmentsFromPoints(this.calculateStepPoints(this.fromPoints())); + fromSegments.reverse(); + } + + return fromSegments; + }; + + return StepRangeAreaSegment; +}(_range_area_segment__WEBPACK_IMPORTED_MODULE_1__["default"])); + +Object(_common__WEBPACK_IMPORTED_MODULE_2__["deepExtend"])(StepRangeAreaSegment.prototype, _line_chart_step_line_mixin__WEBPACK_IMPORTED_MODULE_0__["default"]); + + __webpack_exports__["default"] = (StepRangeAreaSegment); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/range-bar-chart/range-bar-chart.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _bar_chart_bar_chart__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/bar-chart/bar-chart.js"); + var _range_bar__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/range-bar-chart/range-bar.js"); + var _categorical_chart__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/categorical-chart.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + + + + +var RangeBarChart = (function (BarChart) { + function RangeBarChart () { + BarChart.apply(this, arguments); + } + + if ( BarChart ) RangeBarChart.__proto__ = BarChart; + RangeBarChart.prototype = Object.create( BarChart && BarChart.prototype ); + RangeBarChart.prototype.constructor = RangeBarChart; + + RangeBarChart.prototype.pointType = function pointType () { + return _range_bar__WEBPACK_IMPORTED_MODULE_1__["default"]; + }; + + RangeBarChart.prototype.pointValue = function pointValue (data) { + return data.valueFields; + }; + + RangeBarChart.prototype.formatPointValue = function formatPointValue (point, format) { + if (point.value.from === null && point.value.to === null) { + return ""; + } + + return this.chartService.format.auto(format, point.value.from, point.value.to); + }; + + RangeBarChart.prototype.plotRange = function plotRange (point) { + if (!point) { + return 0; + } + + return [ point.value.from, point.value.to ]; + }; + + RangeBarChart.prototype.updateRange = function updateRange (value, fields) { + var axisName = fields.series.axis; + var from = value.from; + var to = value.to; + var axisRange = this.valueAxisRanges[axisName]; + + if (value !== null && Object(_common__WEBPACK_IMPORTED_MODULE_4__["isNumber"])(from) && Object(_common__WEBPACK_IMPORTED_MODULE_4__["isNumber"])(to)) { + axisRange = this.valueAxisRanges[axisName] = axisRange || { min: _common_constants__WEBPACK_IMPORTED_MODULE_3__["MAX_VALUE"], max: _common_constants__WEBPACK_IMPORTED_MODULE_3__["MIN_VALUE"] }; + + axisRange.min = Math.min(axisRange.min, from); + axisRange.max = Math.max(axisRange.max, from); + + axisRange.min = Math.min(axisRange.min, to); + axisRange.max = Math.max(axisRange.max, to); + } + }; + + RangeBarChart.prototype.aboveAxis = function aboveAxis (point) { + var value = point.value; + return value.from < value.to; + }; + + return RangeBarChart; +}(_bar_chart_bar_chart__WEBPACK_IMPORTED_MODULE_0__["default"])); + +RangeBarChart.prototype.plotLimits = _categorical_chart__WEBPACK_IMPORTED_MODULE_2__["default"].prototype.plotLimits; + + __webpack_exports__["default"] = (RangeBarChart); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/range-bar-chart/range-bar.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _bar_chart_bar__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/bar-chart/bar.js"); + var _bar_chart_bar_label__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/bar-chart/bar-label.js"); + var _common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + + +var RangeBar = (function (Bar) { + function RangeBar () { + Bar.apply(this, arguments); + } + + if ( Bar ) RangeBar.__proto__ = Bar; + RangeBar.prototype = Object.create( Bar && Bar.prototype ); + RangeBar.prototype.constructor = RangeBar; + + RangeBar.prototype.createLabel = function createLabel () { + var labels = this.options.labels; + var fromOptions = Object(_common__WEBPACK_IMPORTED_MODULE_2__["deepExtend"])({}, labels, labels.from); + var toOptions = Object(_common__WEBPACK_IMPORTED_MODULE_2__["deepExtend"])({}, labels, labels.to); + + if (fromOptions.visible) { + this.labelFrom = this._createLabel(fromOptions); + this.append(this.labelFrom); + } + + if (toOptions.visible) { + this.labelTo = this._createLabel(toOptions); + this.append(this.labelTo); + } + }; + + RangeBar.prototype._createLabel = function _createLabel (options) { + var labelTemplate = Object(_common__WEBPACK_IMPORTED_MODULE_2__["getTemplate"])(options); + var pointData = this.pointData(); + + var labelText; + + if (labelTemplate) { + labelText = labelTemplate(pointData); + } else { + labelText = this.formatValue(options.format); + } + + return new _bar_chart_bar_label__WEBPACK_IMPORTED_MODULE_1__["default"](labelText, + Object(_common__WEBPACK_IMPORTED_MODULE_2__["deepExtend"])({ + vertical: this.options.vertical + }, + options + ), pointData); + }; + + RangeBar.prototype.reflow = function reflow (targetBox) { + this.render(); + + var ref = this; + var labelFrom = ref.labelFrom; + var labelTo = ref.labelTo; + var value = ref.value; + + this.box = targetBox; + + if (labelFrom) { + labelFrom.options.aboveAxis = value.from > value.to; + labelFrom.reflow(targetBox); + } + + if (labelTo) { + labelTo.options.aboveAxis = value.to > value.from; + labelTo.reflow(targetBox); + } + + if (this.note) { + this.note.reflow(targetBox); + } + }; + + return RangeBar; +}(_bar_chart_bar__WEBPACK_IMPORTED_MODULE_0__["default"])); + +RangeBar.prototype.defaults = Object(_common__WEBPACK_IMPORTED_MODULE_2__["deepExtend"])({}, RangeBar.prototype.defaults, { + labels: { + format: "{0} - {1}" + }, + tooltip: { + format: "{1}" + } +}); + + __webpack_exports__["default"] = (RangeBar); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/register-charts.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _plotarea_plotarea_factory__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/plotarea/plotarea-factory.js"); + var _series_binder__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/series-binder.js"); + var _aggregates_default_aggregates__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/aggregates/default-aggregates.js"); + var _plotarea_categorical_plotarea__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/plotarea/categorical-plotarea.js"); + var _plotarea_xy_plotarea__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/plotarea/xy-plotarea.js"); + var _plotarea_pie_plotarea__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/plotarea/pie-plotarea.js"); + var _plotarea_donut_plotarea__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/plotarea/donut-plotarea.js"); + var _plotarea_polar_plotarea__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/plotarea/polar-plotarea.js"); + var _plotarea_radar_plotarea__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/plotarea/radar-plotarea.js"); + var _plotarea_funnel_plotarea__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/plotarea/funnel-plotarea.js"); + var _constants__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/constants.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + + + + + + + + + + + + + + +var COLOR = "color"; +var FIRST = "first"; +var FROM = "from"; +var MAX = "max"; +var MIN = "min"; +var NOTE_TEXT = "noteText"; +var SUMMARY_FIELD = "summary"; +var TO = "to"; + +_plotarea_plotarea_factory__WEBPACK_IMPORTED_MODULE_0__["default"].current.register(_plotarea_categorical_plotarea__WEBPACK_IMPORTED_MODULE_3__["default"], [ + _constants__WEBPACK_IMPORTED_MODULE_10__["BAR"], _constants__WEBPACK_IMPORTED_MODULE_10__["COLUMN"], _constants__WEBPACK_IMPORTED_MODULE_10__["LINE"], _constants__WEBPACK_IMPORTED_MODULE_10__["VERTICAL_LINE"], _constants__WEBPACK_IMPORTED_MODULE_10__["AREA"], _constants__WEBPACK_IMPORTED_MODULE_10__["VERTICAL_AREA"], + _constants__WEBPACK_IMPORTED_MODULE_10__["CANDLESTICK"], _constants__WEBPACK_IMPORTED_MODULE_10__["OHLC"], _constants__WEBPACK_IMPORTED_MODULE_10__["BULLET"], _constants__WEBPACK_IMPORTED_MODULE_10__["VERTICAL_BULLET"], _constants__WEBPACK_IMPORTED_MODULE_10__["BOX_PLOT"], _constants__WEBPACK_IMPORTED_MODULE_10__["VERTICAL_BOX_PLOT"], + _constants__WEBPACK_IMPORTED_MODULE_10__["RANGE_COLUMN"], _constants__WEBPACK_IMPORTED_MODULE_10__["RANGE_BAR"], _constants__WEBPACK_IMPORTED_MODULE_10__["WATERFALL"], _constants__WEBPACK_IMPORTED_MODULE_10__["HORIZONTAL_WATERFALL"], _constants__WEBPACK_IMPORTED_MODULE_10__["RANGE_AREA"], _constants__WEBPACK_IMPORTED_MODULE_10__["VERTICAL_RANGE_AREA"] +]); + +_plotarea_plotarea_factory__WEBPACK_IMPORTED_MODULE_0__["default"].current.register(_plotarea_xy_plotarea__WEBPACK_IMPORTED_MODULE_4__["default"], [ + _constants__WEBPACK_IMPORTED_MODULE_10__["SCATTER"], _constants__WEBPACK_IMPORTED_MODULE_10__["SCATTER_LINE"], _constants__WEBPACK_IMPORTED_MODULE_10__["BUBBLE"] +]); + +_plotarea_plotarea_factory__WEBPACK_IMPORTED_MODULE_0__["default"].current.register(_plotarea_pie_plotarea__WEBPACK_IMPORTED_MODULE_5__["default"], [ _constants__WEBPACK_IMPORTED_MODULE_10__["PIE"] ]); +_plotarea_plotarea_factory__WEBPACK_IMPORTED_MODULE_0__["default"].current.register(_plotarea_donut_plotarea__WEBPACK_IMPORTED_MODULE_6__["default"], [ _constants__WEBPACK_IMPORTED_MODULE_10__["DONUT"] ]); +_plotarea_plotarea_factory__WEBPACK_IMPORTED_MODULE_0__["default"].current.register(_plotarea_funnel_plotarea__WEBPACK_IMPORTED_MODULE_9__["default"], [ _constants__WEBPACK_IMPORTED_MODULE_10__["FUNNEL"] ]); + +_plotarea_plotarea_factory__WEBPACK_IMPORTED_MODULE_0__["default"].current.register(_plotarea_polar_plotarea__WEBPACK_IMPORTED_MODULE_7__["default"], [ _constants__WEBPACK_IMPORTED_MODULE_10__["POLAR_AREA"], _constants__WEBPACK_IMPORTED_MODULE_10__["POLAR_LINE"], _constants__WEBPACK_IMPORTED_MODULE_10__["POLAR_SCATTER"] ]); +_plotarea_plotarea_factory__WEBPACK_IMPORTED_MODULE_0__["default"].current.register(_plotarea_radar_plotarea__WEBPACK_IMPORTED_MODULE_8__["default"], [ _constants__WEBPACK_IMPORTED_MODULE_10__["RADAR_AREA"], _constants__WEBPACK_IMPORTED_MODULE_10__["RADAR_COLUMN"], _constants__WEBPACK_IMPORTED_MODULE_10__["RADAR_LINE"] ]); + +_series_binder__WEBPACK_IMPORTED_MODULE_1__["default"].current.register( + [ _constants__WEBPACK_IMPORTED_MODULE_10__["BAR"], _constants__WEBPACK_IMPORTED_MODULE_10__["COLUMN"], _constants__WEBPACK_IMPORTED_MODULE_10__["LINE"], _constants__WEBPACK_IMPORTED_MODULE_10__["VERTICAL_LINE"], _constants__WEBPACK_IMPORTED_MODULE_10__["AREA"], _constants__WEBPACK_IMPORTED_MODULE_10__["VERTICAL_AREA"] ], + [ _common_constants__WEBPACK_IMPORTED_MODULE_11__["VALUE"] ], [ _constants__WEBPACK_IMPORTED_MODULE_10__["CATEGORY"], COLOR, NOTE_TEXT, _constants__WEBPACK_IMPORTED_MODULE_10__["ERROR_LOW_FIELD"], _constants__WEBPACK_IMPORTED_MODULE_10__["ERROR_HIGH_FIELD"] ] +); + +_series_binder__WEBPACK_IMPORTED_MODULE_1__["default"].current.register( + [ _constants__WEBPACK_IMPORTED_MODULE_10__["RANGE_COLUMN"], _constants__WEBPACK_IMPORTED_MODULE_10__["RANGE_BAR"], _constants__WEBPACK_IMPORTED_MODULE_10__["RANGE_AREA"], _constants__WEBPACK_IMPORTED_MODULE_10__["VERTICAL_RANGE_AREA"] ], + [ FROM, TO ], [ _constants__WEBPACK_IMPORTED_MODULE_10__["CATEGORY"], COLOR, NOTE_TEXT ] +); + +_series_binder__WEBPACK_IMPORTED_MODULE_1__["default"].current.register( + [ _constants__WEBPACK_IMPORTED_MODULE_10__["WATERFALL"], _constants__WEBPACK_IMPORTED_MODULE_10__["HORIZONTAL_WATERFALL"] ], + [ _common_constants__WEBPACK_IMPORTED_MODULE_11__["VALUE"] ], [ _constants__WEBPACK_IMPORTED_MODULE_10__["CATEGORY"], COLOR, NOTE_TEXT, SUMMARY_FIELD ] +); + +_series_binder__WEBPACK_IMPORTED_MODULE_1__["default"].current.register([ _constants__WEBPACK_IMPORTED_MODULE_10__["POLAR_AREA"], _constants__WEBPACK_IMPORTED_MODULE_10__["POLAR_LINE"], _constants__WEBPACK_IMPORTED_MODULE_10__["POLAR_SCATTER"] ], [ _common_constants__WEBPACK_IMPORTED_MODULE_11__["X"], _common_constants__WEBPACK_IMPORTED_MODULE_11__["Y"] ], [ COLOR ]); +_series_binder__WEBPACK_IMPORTED_MODULE_1__["default"].current.register([ _constants__WEBPACK_IMPORTED_MODULE_10__["RADAR_AREA"], _constants__WEBPACK_IMPORTED_MODULE_10__["RADAR_COLUMN"], _constants__WEBPACK_IMPORTED_MODULE_10__["RADAR_LINE"] ], [ _common_constants__WEBPACK_IMPORTED_MODULE_11__["VALUE"] ], [ COLOR ]); + +_series_binder__WEBPACK_IMPORTED_MODULE_1__["default"].current.register( + [ _constants__WEBPACK_IMPORTED_MODULE_10__["FUNNEL"] ], + [ _common_constants__WEBPACK_IMPORTED_MODULE_11__["VALUE"] ], [ _constants__WEBPACK_IMPORTED_MODULE_10__["CATEGORY"], COLOR, "visibleInLegend", "visible" ] +); + +_aggregates_default_aggregates__WEBPACK_IMPORTED_MODULE_2__["default"].current.register( + [ _constants__WEBPACK_IMPORTED_MODULE_10__["BAR"], _constants__WEBPACK_IMPORTED_MODULE_10__["COLUMN"], _constants__WEBPACK_IMPORTED_MODULE_10__["LINE"], _constants__WEBPACK_IMPORTED_MODULE_10__["VERTICAL_LINE"], _constants__WEBPACK_IMPORTED_MODULE_10__["AREA"], _constants__WEBPACK_IMPORTED_MODULE_10__["VERTICAL_AREA"], _constants__WEBPACK_IMPORTED_MODULE_10__["WATERFALL"], _constants__WEBPACK_IMPORTED_MODULE_10__["HORIZONTAL_WATERFALL"] ], + { value: MAX, color: FIRST, noteText: FIRST, errorLow: MIN, errorHigh: MAX } +); + +_aggregates_default_aggregates__WEBPACK_IMPORTED_MODULE_2__["default"].current.register( + [ _constants__WEBPACK_IMPORTED_MODULE_10__["RANGE_COLUMN"], _constants__WEBPACK_IMPORTED_MODULE_10__["RANGE_BAR"], _constants__WEBPACK_IMPORTED_MODULE_10__["RANGE_AREA"], _constants__WEBPACK_IMPORTED_MODULE_10__["VERTICAL_RANGE_AREA"] ], + { from: MIN, to: MAX, color: FIRST, noteText: FIRST } +); + +_aggregates_default_aggregates__WEBPACK_IMPORTED_MODULE_2__["default"].current.register( + [ _constants__WEBPACK_IMPORTED_MODULE_10__["RADAR_AREA"], _constants__WEBPACK_IMPORTED_MODULE_10__["RADAR_COLUMN"], _constants__WEBPACK_IMPORTED_MODULE_10__["RADAR_LINE"] ], + { value: MAX, color: FIRST } +); + +_series_binder__WEBPACK_IMPORTED_MODULE_1__["default"].current.register( + [ _constants__WEBPACK_IMPORTED_MODULE_10__["SCATTER"], _constants__WEBPACK_IMPORTED_MODULE_10__["SCATTER_LINE"], _constants__WEBPACK_IMPORTED_MODULE_10__["BUBBLE"] ], + [ _common_constants__WEBPACK_IMPORTED_MODULE_11__["X"], _common_constants__WEBPACK_IMPORTED_MODULE_11__["Y"] ], [ COLOR, NOTE_TEXT, _constants__WEBPACK_IMPORTED_MODULE_10__["X_ERROR_LOW_FIELD"], _constants__WEBPACK_IMPORTED_MODULE_10__["X_ERROR_HIGH_FIELD"], _constants__WEBPACK_IMPORTED_MODULE_10__["Y_ERROR_LOW_FIELD"], _constants__WEBPACK_IMPORTED_MODULE_10__["Y_ERROR_HIGH_FIELD"] ] +); + +_series_binder__WEBPACK_IMPORTED_MODULE_1__["default"].current.register( + [ _constants__WEBPACK_IMPORTED_MODULE_10__["BUBBLE"] ], [ _common_constants__WEBPACK_IMPORTED_MODULE_11__["X"], _common_constants__WEBPACK_IMPORTED_MODULE_11__["Y"], "size" ], [ COLOR, _constants__WEBPACK_IMPORTED_MODULE_10__["CATEGORY"], NOTE_TEXT ] +); + +_series_binder__WEBPACK_IMPORTED_MODULE_1__["default"].current.register( + [ _constants__WEBPACK_IMPORTED_MODULE_10__["CANDLESTICK"], _constants__WEBPACK_IMPORTED_MODULE_10__["OHLC"] ], + [ "open", "high", "low", "close" ], [ _constants__WEBPACK_IMPORTED_MODULE_10__["CATEGORY"], COLOR, "downColor", NOTE_TEXT ] +); + +_aggregates_default_aggregates__WEBPACK_IMPORTED_MODULE_2__["default"].current.register( + [ _constants__WEBPACK_IMPORTED_MODULE_10__["CANDLESTICK"], _constants__WEBPACK_IMPORTED_MODULE_10__["OHLC"] ], + { open: MAX, high: MAX, low: MIN, close: MAX, + color: FIRST, downColor: FIRST, noteText: FIRST } +); + +_series_binder__WEBPACK_IMPORTED_MODULE_1__["default"].current.register( + [ _constants__WEBPACK_IMPORTED_MODULE_10__["BOX_PLOT"], _constants__WEBPACK_IMPORTED_MODULE_10__["VERTICAL_BOX_PLOT"] ], + [ "lower", "q1", "median", "q3", "upper", "mean", "outliers" ], [ _constants__WEBPACK_IMPORTED_MODULE_10__["CATEGORY"], COLOR, NOTE_TEXT ] +); + +_aggregates_default_aggregates__WEBPACK_IMPORTED_MODULE_2__["default"].current.register( + [ _constants__WEBPACK_IMPORTED_MODULE_10__["BOX_PLOT"], _constants__WEBPACK_IMPORTED_MODULE_10__["VERTICAL_BOX_PLOT"] ], + { lower: MAX, q1: MAX, median: MAX, q3: MAX, upper: MAX, mean: MAX, outliers: FIRST, + color: FIRST, noteText: FIRST } +); + +_series_binder__WEBPACK_IMPORTED_MODULE_1__["default"].current.register( + [ _constants__WEBPACK_IMPORTED_MODULE_10__["BULLET"], _constants__WEBPACK_IMPORTED_MODULE_10__["VERTICAL_BULLET"] ], + [ "current", "target" ], [ _constants__WEBPACK_IMPORTED_MODULE_10__["CATEGORY"], COLOR, "visibleInLegend", NOTE_TEXT ] +); + +_aggregates_default_aggregates__WEBPACK_IMPORTED_MODULE_2__["default"].current.register( + [ _constants__WEBPACK_IMPORTED_MODULE_10__["BULLET"], _constants__WEBPACK_IMPORTED_MODULE_10__["VERTICAL_BULLET"] ], + { current: MAX, target: MAX, color: FIRST, noteText: FIRST } +); + +_series_binder__WEBPACK_IMPORTED_MODULE_1__["default"].current.register( + [ _constants__WEBPACK_IMPORTED_MODULE_10__["PIE"], _constants__WEBPACK_IMPORTED_MODULE_10__["DONUT"] ], + [ _common_constants__WEBPACK_IMPORTED_MODULE_11__["VALUE"] ], [ _constants__WEBPACK_IMPORTED_MODULE_10__["CATEGORY"], COLOR, "explode", "visibleInLegend", "visible" ] +); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/scatter-charts/scatter-chart.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core.js"); + var _mixins_clip_animation_mixin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/mixins/clip-animation-mixin.js"); + var _error_bars_error_range_calculator__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/error-bars/error-range-calculator.js"); + var _error_bars_scatter_error_bar__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/error-bars/scatter-error-bar.js"); + var _line_chart_line_point__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/line-chart/line-point.js"); + var _categorical_chart__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/categorical-chart.js"); + var _utils_has_value__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/utils/has-value.js"); + var _utils_eval_options__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/utils/eval-options.js"); + var _common__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + var _date_utils__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/date-utils.js"); + + + + + + + + + + + + + + + +var ScatterChart = (function (ChartElement) { + function ScatterChart(plotArea, options) { + + ChartElement.call(this, options); + + this.plotArea = plotArea; + this.chartService = plotArea.chartService; + this._initFields(); + + this.render(); + } + + if ( ChartElement ) ScatterChart.__proto__ = ChartElement; + ScatterChart.prototype = Object.create( ChartElement && ChartElement.prototype ); + ScatterChart.prototype.constructor = ScatterChart; + + ScatterChart.prototype._initFields = function _initFields () { + // X and Y axis ranges grouped by name, e.g.: + // primary: { min: 0, max: 1 } + this.xAxisRanges = {}; + this.yAxisRanges = {}; + + this.points = []; + this.seriesPoints = []; + this.seriesOptions = []; + this._evalSeries = []; + }; + + ScatterChart.prototype.render = function render () { + this.traverseDataPoints(this.addValue.bind(this)); + }; + + ScatterChart.prototype.addErrorBar = function addErrorBar (point, field, fields) { + var value = point.value[field]; + var valueErrorField = field + "Value"; + var lowField = field + "ErrorLow"; + var highField = field + "ErrorHigh"; + var seriesIx = fields.seriesIx; + var series = fields.series; + var errorBars = point.options.errorBars; + var lowValue = fields[lowField]; + var highValue = fields[highField]; + + if (Object(_common__WEBPACK_IMPORTED_MODULE_8__["isNumber"])(value)) { + var errorRange; + if (Object(_common__WEBPACK_IMPORTED_MODULE_8__["isNumber"])(lowValue) && Object(_common__WEBPACK_IMPORTED_MODULE_8__["isNumber"])(highValue)) { + errorRange = { low: lowValue, high: highValue }; + } + + if (errorBars && Object(_common__WEBPACK_IMPORTED_MODULE_8__["defined"])(errorBars[valueErrorField])) { + this.seriesErrorRanges = this.seriesErrorRanges || { x: [], y: [] }; + this.seriesErrorRanges[field][seriesIx] = this.seriesErrorRanges[field][seriesIx] || + new _error_bars_error_range_calculator__WEBPACK_IMPORTED_MODULE_2__["default"](errorBars[valueErrorField], series, field); + + errorRange = this.seriesErrorRanges[field][seriesIx].getErrorRange(value, errorBars[valueErrorField]); + } + + if (errorRange) { + this.addPointErrorBar(errorRange, point, field); + } + } + }; + + ScatterChart.prototype.addPointErrorBar = function addPointErrorBar (errorRange, point, field) { + var low = errorRange.low; + var high = errorRange.high; + var series = point.series; + var options = point.options.errorBars; + var isVertical = field === _common_constants__WEBPACK_IMPORTED_MODULE_9__["Y"]; + var item = {}; + + point[field + "Low"] = low; + point[field + "High"] = high; + + point.errorBars = point.errorBars || []; + var errorBar = new _error_bars_scatter_error_bar__WEBPACK_IMPORTED_MODULE_3__["default"](low, high, isVertical, this, series, options); + point.errorBars.push(errorBar); + point.append(errorBar); + + item[field] = low; + this.updateRange(item, series); + item[field] = high; + this.updateRange(item, series); + }; + + ScatterChart.prototype.addValue = function addValue (value, fields) { + var x = value.x; + var y = value.y; + var seriesIx = fields.seriesIx; + var series = this.options.series[seriesIx]; + var missingValues = this.seriesMissingValues(series); + var seriesPoints = this.seriesPoints[seriesIx]; + + var pointValue = value; + if (!(Object(_utils_has_value__WEBPACK_IMPORTED_MODULE_6__["default"])(x) && Object(_utils_has_value__WEBPACK_IMPORTED_MODULE_6__["default"])(y))) { + pointValue = this.createMissingValue(pointValue, missingValues); + } + + var point; + if (pointValue) { + point = this.createPoint(pointValue, fields); + if (point) { + Object.assign(point, fields); + this.addErrorBar(point, _common_constants__WEBPACK_IMPORTED_MODULE_9__["X"], fields); + this.addErrorBar(point, _common_constants__WEBPACK_IMPORTED_MODULE_9__["Y"], fields); + } + this.updateRange(pointValue, fields.series); + } + + this.points.push(point); + seriesPoints.push(point); + }; + + ScatterChart.prototype.seriesMissingValues = function seriesMissingValues (series) { + return series.missingValues; + }; + + ScatterChart.prototype.createMissingValue = function createMissingValue () {}; + + ScatterChart.prototype.updateRange = function updateRange (value, series) { + var intlService = this.chartService.intl; + var xAxisName = series.xAxis; + var yAxisName = series.yAxis; + var x = value.x; + var y = value.y; + var xAxisRange = this.xAxisRanges[xAxisName]; + var yAxisRange = this.yAxisRanges[yAxisName]; + + if (Object(_utils_has_value__WEBPACK_IMPORTED_MODULE_6__["default"])(x)) { + xAxisRange = this.xAxisRanges[xAxisName] = + xAxisRange || { min: _common_constants__WEBPACK_IMPORTED_MODULE_9__["MAX_VALUE"], max: _common_constants__WEBPACK_IMPORTED_MODULE_9__["MIN_VALUE"] }; + + if (Object(_common__WEBPACK_IMPORTED_MODULE_8__["isString"])(x)) { + x = Object(_date_utils__WEBPACK_IMPORTED_MODULE_10__["parseDate"])(intlService, x); + } + + xAxisRange.min = Math.min(xAxisRange.min, x); + xAxisRange.max = Math.max(xAxisRange.max, x); + } + + if (Object(_utils_has_value__WEBPACK_IMPORTED_MODULE_6__["default"])(y)) { + yAxisRange = this.yAxisRanges[yAxisName] = + yAxisRange || { min: _common_constants__WEBPACK_IMPORTED_MODULE_9__["MAX_VALUE"], max: _common_constants__WEBPACK_IMPORTED_MODULE_9__["MIN_VALUE"] }; + + if (Object(_common__WEBPACK_IMPORTED_MODULE_8__["isString"])(y)) { + y = Object(_date_utils__WEBPACK_IMPORTED_MODULE_10__["parseDate"])(intlService, y); + } + + yAxisRange.min = Math.min(yAxisRange.min, y); + yAxisRange.max = Math.max(yAxisRange.max, y); + } + }; + + ScatterChart.prototype.evalPointOptions = function evalPointOptions (options, value, fields) { + var series = fields.series; + var seriesIx = fields.seriesIx; + var state = { defaults: series._defaults, excluded: [ "data", "tooltip", "content", "template", "visual", "toggle", "_outOfRangeMinPoint", "_outOfRangeMaxPoint" ] }; + + var doEval = this._evalSeries[seriesIx]; + if (!Object(_common__WEBPACK_IMPORTED_MODULE_8__["defined"])(doEval)) { + this._evalSeries[seriesIx] = doEval = Object(_utils_eval_options__WEBPACK_IMPORTED_MODULE_7__["default"])(options, {}, state, true); + } + + var pointOptions = options; + if (doEval) { + pointOptions = Object(_common__WEBPACK_IMPORTED_MODULE_8__["deepExtend"])({}, options); + Object(_utils_eval_options__WEBPACK_IMPORTED_MODULE_7__["default"])(pointOptions, { + value: value, + series: series, + dataItem: fields.dataItem + }, state); + } + + return pointOptions; + }; + + ScatterChart.prototype.pointType = function pointType () { + return _line_chart_line_point__WEBPACK_IMPORTED_MODULE_4__["default"]; + }; + + ScatterChart.prototype.pointOptions = function pointOptions (series, seriesIx) { + var options = this.seriesOptions[seriesIx]; + if (!options) { + var defaults = this.pointType().prototype.defaults; + this.seriesOptions[seriesIx] = options = Object(_common__WEBPACK_IMPORTED_MODULE_8__["deepExtend"])({}, defaults, { + markers: { + opacity: series.opacity + }, + tooltip: { + format: this.options.tooltip.format + }, + labels: { + format: this.options.labels.format + } + }, series); + } + + return options; + }; + + ScatterChart.prototype.createPoint = function createPoint (value, fields) { + var series = fields.series; + var pointOptions = this.pointOptions(series, fields.seriesIx); + var color = fields.color || series.color; + + pointOptions = this.evalPointOptions(pointOptions, value, fields); + + if (Object(_common__WEBPACK_IMPORTED_MODULE_8__["isFunction"])(series.color)) { + color = pointOptions.color; + } + + var point = new _line_chart_line_point__WEBPACK_IMPORTED_MODULE_4__["default"](value, pointOptions); + point.color = color; + + this.append(point); + + return point; + }; + + ScatterChart.prototype.seriesAxes = function seriesAxes (series) { + var xAxisName = series.xAxis; + var yAxisName = series.yAxis; + var plotArea = this.plotArea; + var xAxis = xAxisName ? plotArea.namedXAxes[xAxisName] : plotArea.axisX; + var yAxis = yAxisName ? plotArea.namedYAxes[yAxisName] : plotArea.axisY; + + if (!xAxis) { + throw new Error("Unable to locate X axis with name " + xAxisName); + } + + if (!yAxis) { + throw new Error("Unable to locate Y axis with name " + yAxisName); + } + + return { + x: xAxis, + y: yAxis + }; + }; + + ScatterChart.prototype.reflow = function reflow (targetBox) { + var this$1 = this; + + var chartPoints = this.points; + var limit = !this.options.clip; + var pointIx = 0; + + + this.traverseDataPoints(function (value, fields) { + var point = chartPoints[pointIx++]; + var seriesAxes = this$1.seriesAxes(fields.series); + var slotX = seriesAxes.x.getSlot(value.x, value.x, limit); + var slotY = seriesAxes.y.getSlot(value.y, value.y, limit); + + if (point) { + if (slotX && slotY) { + var pointSlot = this$1.pointSlot(slotX, slotY); + point.reflow(pointSlot); + } else { + point.visible = false; + } + } + }); + + this.box = targetBox; + }; + + ScatterChart.prototype.pointSlot = function pointSlot (slotX, slotY) { + return new _core__WEBPACK_IMPORTED_MODULE_0__["Box"](slotX.x1, slotY.y1, slotX.x2, slotY.y2); + }; + + ScatterChart.prototype.traverseDataPoints = function traverseDataPoints (callback) { + var this$1 = this; + + var ref = this; + var series = ref.options.series; + var seriesPoints = ref.seriesPoints; + + for (var seriesIx = 0; seriesIx < series.length; seriesIx++) { + var currentSeries = series[seriesIx]; + var currentSeriesPoints = seriesPoints[seriesIx]; + if (!currentSeriesPoints) { + seriesPoints[seriesIx] = []; + } + + for (var pointIx = 0; pointIx < currentSeries.data.length; pointIx++) { + var ref$1 = this$1._bindPoint(currentSeries, seriesIx, pointIx); + var value = ref$1.valueFields; + var fields = ref$1.fields; + + callback(value, Object(_common__WEBPACK_IMPORTED_MODULE_8__["deepExtend"])({ + pointIx: pointIx, + series: currentSeries, + seriesIx: seriesIx, + dataItem: currentSeries.data[pointIx], + owner: this$1 + }, fields)); + } + } + }; + + ScatterChart.prototype.formatPointValue = function formatPointValue (point, format) { + var value = point.value; + return this.chartService.format.auto(format, value.x, value.y); + }; + + ScatterChart.prototype.animationPoints = function animationPoints () { + var points = this.points; + var result = []; + for (var idx = 0; idx < points.length; idx++) { + result.push((points[idx] || {}).marker); + } + return result; + }; + + return ScatterChart; +}(_core__WEBPACK_IMPORTED_MODULE_0__["ChartElement"])); +Object(_common__WEBPACK_IMPORTED_MODULE_8__["setDefaultOptions"])(ScatterChart, { + series: [], + tooltip: { + format: "{0}, {1}" + }, + labels: { + format: "{0}, {1}" + }, + clip: true +}); +Object(_common__WEBPACK_IMPORTED_MODULE_8__["deepExtend"])(ScatterChart.prototype, _mixins_clip_animation_mixin__WEBPACK_IMPORTED_MODULE_1__["default"], { + _bindPoint: _categorical_chart__WEBPACK_IMPORTED_MODULE_5__["default"].prototype._bindPoint +}); + + __webpack_exports__["default"] = (ScatterChart); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/scatter-charts/scatter-line-chart.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _scatter_chart__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/scatter-charts/scatter-chart.js"); + var _mixins_line_chart_mixin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/mixins/line-chart-mixin.js"); + var _line_chart_line_segment__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/line-chart/line-segment.js"); + var _line_chart_spline_segment__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/line-chart/spline-segment.js"); + var _constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/constants.js"); + var _utils_has_value__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/utils/has-value.js"); + var _common__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + + + + + + + + +var ScatterLineChart = (function (ScatterChart) { + function ScatterLineChart () { + ScatterChart.apply(this, arguments); + } + + if ( ScatterChart ) ScatterLineChart.__proto__ = ScatterChart; + ScatterLineChart.prototype = Object.create( ScatterChart && ScatterChart.prototype ); + ScatterLineChart.prototype.constructor = ScatterLineChart; + + ScatterLineChart.prototype.render = function render () { + ScatterChart.prototype.render.call(this); + + this.renderSegments(); + }; + + ScatterLineChart.prototype.createSegment = function createSegment (linePoints, currentSeries, seriesIx) { + var style = currentSeries.style; + var pointType; + + if (style === _constants__WEBPACK_IMPORTED_MODULE_4__["SMOOTH"]) { + pointType = _line_chart_spline_segment__WEBPACK_IMPORTED_MODULE_3__["default"]; + } else { + pointType = _line_chart_line_segment__WEBPACK_IMPORTED_MODULE_2__["default"]; + } + + return new pointType(linePoints, currentSeries, seriesIx); + }; + + ScatterLineChart.prototype.animationPoints = function animationPoints () { + var points = ScatterChart.prototype.animationPoints.call(this); + return points.concat(this._segments); + }; + + ScatterLineChart.prototype.createMissingValue = function createMissingValue (value, missingValues) { + if (missingValues === _constants__WEBPACK_IMPORTED_MODULE_4__["ZERO"]) { + var missingValue = { + x: value.x, + y: value.y + }; + if (!Object(_utils_has_value__WEBPACK_IMPORTED_MODULE_5__["default"])(missingValue.x)) { + missingValue.x = 0; + } + if (!Object(_utils_has_value__WEBPACK_IMPORTED_MODULE_5__["default"])(missingValue.y)) { + missingValue.y = 0; + } + return missingValue; + } + }; + + return ScatterLineChart; +}(_scatter_chart__WEBPACK_IMPORTED_MODULE_0__["default"])); + +Object(_common__WEBPACK_IMPORTED_MODULE_6__["deepExtend"])(ScatterLineChart.prototype, _mixins_line_chart_mixin__WEBPACK_IMPORTED_MODULE_1__["default"]); + + __webpack_exports__["default"] = (ScatterLineChart); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/selection.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _services__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/services.js"); + var _core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core.js"); + var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/constants.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + var _date_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/date-utils.js"); + + + + + + + + + + +var ZOOM_ACCELERATION = 3; +var SELECTOR_HEIGHT_ADJUST = 0.1; + +function createDiv(className) { + var element = document.createElement("div"); + if (className) { + element.className = className; + } + + return element; +} + +function closestHandle(element) { + var current = element; + while (current && !Object(_common__WEBPACK_IMPORTED_MODULE_4__["hasClasses"])(current, "k-handle")) { + current = current.parentNode; + } + + return current; +} + +var Selection = (function (Class) { + function Selection(chart, categoryAxis, options, observer) { + Class.call(this); + + var chartElement = chart.element; + + this.options = Object(_common__WEBPACK_IMPORTED_MODULE_4__["deepExtend"])({}, this.options, options); + this.chart = chart; + this.observer = observer; + this.chartElement = chartElement; + this.categoryAxis = categoryAxis; + this._dateAxis = this.categoryAxis instanceof _core__WEBPACK_IMPORTED_MODULE_1__["DateCategoryAxis"]; + + this.initOptions(); + + this.visible = this.options.visible && chartElement.offsetHeight; + + if (this.visible) { + this.createElements(); + + this.set(this._index(this.options.from), this._index(this.options.to)); + + this.bindEvents(); + } + } + + if ( Class ) Selection.__proto__ = Class; + Selection.prototype = Object.create( Class && Class.prototype ); + Selection.prototype.constructor = Selection; + + Selection.prototype.onPane = function onPane (pane) { + return this.categoryAxis.pane === pane; + }; + + Selection.prototype.createElements = function createElements () { + var options = this.options; + var wrapper = this.wrapper = createDiv("k-selector"); + Object(_common__WEBPACK_IMPORTED_MODULE_4__["elementStyles"])(wrapper, { + top: options.offset.top, + left: options.offset.left, + width: options.width, + height: options.height, + direction: 'ltr' + }); + var selection = this.selection = createDiv("k-selection"); + this.leftMask = createDiv("k-mask"); + this.rightMask = createDiv("k-mask"); + + wrapper.appendChild(this.leftMask); + wrapper.appendChild(this.rightMask); + wrapper.appendChild(selection); + + selection.appendChild(createDiv("k-selection-bg")); + + var leftHandle = this.leftHandle = createDiv("k-handle k-left-handle"); + var rightHandle = this.rightHandle = createDiv("k-handle k-right-handle"); + leftHandle.appendChild(createDiv()); + rightHandle.appendChild(createDiv()); + + selection.appendChild(leftHandle); + selection.appendChild(rightHandle); + + this.chartElement.appendChild(wrapper); + var selectionStyles = Object(_common__WEBPACK_IMPORTED_MODULE_4__["elementStyles"])(selection, [ "borderLeftWidth", "borderRightWidth", "height" ]); + var leftHandleHeight = Object(_common__WEBPACK_IMPORTED_MODULE_4__["elementStyles"])(leftHandle, "height").height; + var rightHandleHeight = Object(_common__WEBPACK_IMPORTED_MODULE_4__["elementStyles"])(rightHandle, "height").height; + + options.selection = { + border: { + left: selectionStyles.borderLeftWidth, + right: selectionStyles.borderRightWidth + } + }; + + Object(_common__WEBPACK_IMPORTED_MODULE_4__["elementStyles"])(leftHandle, { + top: (selectionStyles.height - leftHandleHeight) / 2 + }); + + Object(_common__WEBPACK_IMPORTED_MODULE_4__["elementStyles"])(rightHandle, { + top: (selectionStyles.height - rightHandleHeight) / 2 + }); + + wrapper.style.cssText = wrapper.style.cssText; + }; + + Selection.prototype.bindEvents = function bindEvents$1 () { + var obj; + + if (this.options.mousewheel !== false) { + this._mousewheelHandler = this._mousewheel.bind(this); + Object(_common__WEBPACK_IMPORTED_MODULE_4__["bindEvents"])(this.wrapper, ( obj = {}, obj[ _constants__WEBPACK_IMPORTED_MODULE_2__["MOUSEWHEEL"] ] = this._mousewheelHandler, obj )); + } + + this._domEvents = _services__WEBPACK_IMPORTED_MODULE_0__["DomEventsBuilder"].create(this.wrapper, { + stopPropagation: true, // applicable for the jQuery UserEvents + start: this._start.bind(this), + move: this._move.bind(this), + end: this._end.bind(this), + tap: this._tap.bind(this), + press: this._press.bind(this), + gesturestart: this._gesturestart.bind(this), + gesturechange: this._gesturechange.bind(this), + gestureend: this._gestureend.bind(this) + }); + }; + + Selection.prototype.initOptions = function initOptions () { + var ref = this; + var options = ref.options; + var categoryAxis = ref.categoryAxis; + var box = categoryAxis.pane.chartsBox(); + var intlService = this.chart.chartService.intl; + + if (this._dateAxis) { + Object(_common__WEBPACK_IMPORTED_MODULE_4__["deepExtend"])(options, { + min: Object(_date_utils__WEBPACK_IMPORTED_MODULE_5__["parseDate"])(intlService, options.min), + max: Object(_date_utils__WEBPACK_IMPORTED_MODULE_5__["parseDate"])(intlService, options.max), + from: Object(_date_utils__WEBPACK_IMPORTED_MODULE_5__["parseDate"])(intlService, options.from), + to: Object(_date_utils__WEBPACK_IMPORTED_MODULE_5__["parseDate"])(intlService, options.to) + }); + } + + var ref$1 = Object(_common__WEBPACK_IMPORTED_MODULE_4__["elementStyles"])(this.chartElement, [ "paddingLeft", "paddingTop" ]); + var paddingLeft = ref$1.paddingLeft; + var paddingTop = ref$1.paddingTop; + + this.options = Object(_common__WEBPACK_IMPORTED_MODULE_4__["deepExtend"])({}, { + width: box.width(), + height: box.height() + SELECTOR_HEIGHT_ADJUST, //workaround for sub-pixel hover on the paths in chrome + padding: { + left: paddingLeft, + top: paddingTop + }, + offset: { + left: box.x1 + paddingLeft, + top: box.y1 + paddingTop + }, + from: options.min, + to: options.max + }, options); + }; + + Selection.prototype.destroy = function destroy () { + var obj; + + if (this._domEvents) { + this._domEvents.destroy(); + delete this._domEvents; + } + + clearTimeout(this._mwTimeout); + this._state = null; + + if (this.wrapper) { + if (this._mousewheelHandler) { + Object(_common__WEBPACK_IMPORTED_MODULE_4__["unbindEvents"])(this.wrapper, ( obj = {}, obj[ _constants__WEBPACK_IMPORTED_MODULE_2__["MOUSEWHEEL"] ] = this._mousewheelHandler, obj )); + this._mousewheelHandler = null; + } + this.chartElement.removeChild(this.wrapper); + this.wrapper = null; + } + }; + + Selection.prototype._rangeEventArgs = function _rangeEventArgs (range) { + + return { + axis: this.categoryAxis.options, + from: this._value(range.from), + to: this._value(range.to) + }; + }; + + Selection.prototype._start = function _start (e) { + var options = this.options; + var target = Object(_common__WEBPACK_IMPORTED_MODULE_4__["eventElement"])(e); + + if (this._state || !target) { + return; + } + + this.chart._unsetActivePoint(); + this._state = { + moveTarget: closestHandle(target) || target, + startLocation: e.x ? e.x.location : 0, + range: { + from: this._index(options.from), + to: this._index(options.to) + } + }; + + var args = this._rangeEventArgs({ + from: this._index(options.from), + to: this._index(options.to) + }); + + if (this.trigger(_constants__WEBPACK_IMPORTED_MODULE_2__["SELECT_START"], args)) { + this._state = null; + } + }; + + Selection.prototype._press = function _press (e) { + var handle; + if (this._state) { + handle = this._state.moveTarget; + } else { + handle = closestHandle(Object(_common__WEBPACK_IMPORTED_MODULE_4__["eventElement"])(e)); + } + if (handle) { + Object(_common__WEBPACK_IMPORTED_MODULE_4__["addClass"])(handle, "k-handle-active"); + } + }; + + Selection.prototype._move = function _move (e) { + if (!this._state) { + return; + } + + var ref = this; + var state = ref._state; + var options = ref.options; + var categoryAxis = ref.categoryAxis; + var range = state.range; + var target = state.moveTarget; + var reverse = categoryAxis.options.reverse; + var from = this._index(options.from); + var to = this._index(options.to); + var min = this._index(options.min); + var max = this._index(options.max); + var delta = state.startLocation - e.x.location; + var oldRange = { from: range.from, to: range.to }; + var span = range.to - range.from; + var scale = Object(_common__WEBPACK_IMPORTED_MODULE_4__["elementStyles"])(this.wrapper, "width").width / (categoryAxis.categoriesCount() - 1); + var offset = Math.round(delta / scale) * (reverse ? -1 : 1); + + if (!target) { + return; + } + + var leftHandle = Object(_common__WEBPACK_IMPORTED_MODULE_4__["hasClasses"])(target, "k-left-handle"); + var rightHandle = Object(_common__WEBPACK_IMPORTED_MODULE_4__["hasClasses"])(target, "k-right-handle"); + + if (Object(_common__WEBPACK_IMPORTED_MODULE_4__["hasClasses"])(target, "k-selection k-selection-bg")) { + range.from = Math.min( + Math.max(min, from - offset), + max - span + ); + range.to = Math.min( + range.from + span, + max + ); + } else if ((leftHandle && !reverse) || (rightHandle && reverse)) { + range.from = Math.min( + Math.max(min, from - offset), + max - 1 + ); + range.to = Math.max(range.from + 1, range.to); + } else if ((leftHandle && reverse) || (rightHandle && !reverse)) { + range.to = Math.min( + Math.max(min + 1, to - offset), + max + ); + range.from = Math.min(range.to - 1, range.from); + } + + if (range.from !== oldRange.from || range.to !== oldRange.to) { + this.move(range.from, range.to); + this.trigger(_constants__WEBPACK_IMPORTED_MODULE_2__["SELECT"], this._rangeEventArgs(range)); + } + }; + + Selection.prototype._end = function _end () { + if (this._state) { + var moveTarget = this._state.moveTarget; + if (moveTarget) { + Object(_common__WEBPACK_IMPORTED_MODULE_4__["removeClass"])(moveTarget, "k-handle-active"); + } + + var range = this._state.range; + this.set(range.from, range.to); + this.trigger(_constants__WEBPACK_IMPORTED_MODULE_2__["SELECT_END"], this._rangeEventArgs(range)); + + delete this._state; + } + }; + + Selection.prototype._tap = function _tap (e) { + var ref = this; + var options = ref.options; + var categoryAxis = ref.categoryAxis; + var coords = this.chart._eventCoordinates(e); + var categoryIx = categoryAxis.pointCategoryIndex(new _core__WEBPACK_IMPORTED_MODULE_1__["Point"](coords.x, categoryAxis.box.y1)); + var from = this._index(options.from); + var to = this._index(options.to); + var min = this._index(options.min); + var max = this._index(options.max); + var span = to - from; + var mid = from + span / 2; + var range = {}; + var rightClick = e.event.which === 3; + var offset = Math.round(mid - categoryIx); + + if (this._state || rightClick) { + return; + } + + + this.chart._unsetActivePoint(); + + if (!categoryAxis.options.justified) { + offset--; + } + + range.from = Math.min( + Math.max(min, from - offset), + max - span + ); + + range.to = Math.min(range.from + span, max); + + this._start(e); + if (this._state) { + this._state.range = range; + this.trigger(_constants__WEBPACK_IMPORTED_MODULE_2__["SELECT"], this._rangeEventArgs(range)); + this._end(); + } + }; + + Selection.prototype._mousewheel = function _mousewheel (e) { + var this$1 = this; + + var delta = Object(_common__WEBPACK_IMPORTED_MODULE_4__["mousewheelDelta"])(e); + + this._start({ target: this.selection }); + + if (this._state) { + var range = this._state.range; + + e.preventDefault(); + e.stopPropagation(); + + if (Math.abs(delta) > 1) { + delta *= ZOOM_ACCELERATION; + } + + if (this.options.mousewheel.reverse) { + delta *= -1; + } + + if (this.expand(delta)) { + this.trigger(_constants__WEBPACK_IMPORTED_MODULE_2__["SELECT"], { + axis: this.categoryAxis.options, + delta: delta, + originalEvent: e, + from: this._value(range.from), + to: this._value(range.to) + }); + } + + if (this._mwTimeout) { + clearTimeout(this._mwTimeout); + } + + this._mwTimeout = setTimeout(function () { + this$1._end(); + }, _constants__WEBPACK_IMPORTED_MODULE_2__["MOUSEWHEEL_DELAY"]); + } + }; + + Selection.prototype._gesturestart = function _gesturestart (e) { + var options = this.options; + + this._state = { + range: { + from: this._index(options.from), + to: this._index(options.to) + } + }; + var args = this._rangeEventArgs(this._state.range); + + if (this.trigger(_constants__WEBPACK_IMPORTED_MODULE_2__["SELECT_START"], args)) { + this._state = null; + } else { + e.preventDefault(); + } + }; + + Selection.prototype._gestureend = function _gestureend () { + if (this._state) { + this.trigger(_constants__WEBPACK_IMPORTED_MODULE_2__["SELECT_END"], this._rangeEventArgs(this._state.range)); + delete this._state; + } + }; + + Selection.prototype._gesturechange = function _gesturechange (e) { + var ref = this; + var chart = ref.chart; + var state = ref._state; + var options = ref.options; + var categoryAxis = ref.categoryAxis; + var range = state.range; + var p0 = chart._toModelCoordinates(e.touches[0].x.location).x; + var p1 = chart._toModelCoordinates(e.touches[1].x.location).x; + var left = Math.min(p0, p1); + var right = Math.max(p0, p1); + + e.preventDefault(); + + range.from = categoryAxis.pointCategoryIndex(new _core__WEBPACK_IMPORTED_MODULE_1__["Point"](left)) || options.min; + + range.to = categoryAxis.pointCategoryIndex(new _core__WEBPACK_IMPORTED_MODULE_1__["Point"](right)) || options.max; + + this.move(range.from, range.to); + + this.trigger(_constants__WEBPACK_IMPORTED_MODULE_2__["SELECT"], this._rangeEventArgs(range)); + }; + + Selection.prototype._index = function _index (value) { + var index = value; + + if (value instanceof Date) { + index = this.categoryAxis.categoryIndex(value); + } + + return index; + }; + + Selection.prototype._value = function _value (index) { + var value = index; + if (this._dateAxis) { + value = this.categoryAxis.categoryAt(index); + if (value > this.options.max) { + value = this.options.max; + } + } + + return value; + }; + + Selection.prototype._slot = function _slot (value) { + var categoryAxis = this.categoryAxis; + var index = this._index(value); + + return categoryAxis.getSlot(index, index, true); + }; + + Selection.prototype.move = function move (from, to) { + var options = this.options; + var reverse = this.categoryAxis.options.reverse; + var offset = options.offset; + var padding = options.padding; + var border = options.selection.border; + var left = reverse ? to : from; + var right = reverse ? from : to; + var edge = 'x' + (reverse ? 2 : 1); + + var box = this._slot(left); + var leftMaskWidth = Object(_common__WEBPACK_IMPORTED_MODULE_4__["round"])(box[edge] - offset.left + padding.left); + + Object(_common__WEBPACK_IMPORTED_MODULE_4__["elementStyles"])(this.leftMask, { + width: leftMaskWidth + }); + Object(_common__WEBPACK_IMPORTED_MODULE_4__["elementStyles"])(this.selection, { + left: leftMaskWidth + }); + + box = this._slot(right); + + var rightMaskWidth = Object(_common__WEBPACK_IMPORTED_MODULE_4__["round"])(options.width - (box[edge] - offset.left + padding.left)); + Object(_common__WEBPACK_IMPORTED_MODULE_4__["elementStyles"])(this.rightMask, { + width: rightMaskWidth + }); + + var distance = options.width - rightMaskWidth; + if (distance !== options.width) { + distance += border.right; + } + + Object(_common__WEBPACK_IMPORTED_MODULE_4__["elementStyles"])(this.rightMask, { + left: distance + }); + Object(_common__WEBPACK_IMPORTED_MODULE_4__["elementStyles"])(this.selection, { + width: Math.max(options.width - (leftMaskWidth + rightMaskWidth) - border.right, 0) + }); + }; + + Selection.prototype.set = function set (from, to) { + var options = this.options; + var min = this._index(options.min); + var max = this._index(options.max); + var fromValue = Object(_common__WEBPACK_IMPORTED_MODULE_4__["limitValue"])(this._index(from), min, max); + var toValue = Object(_common__WEBPACK_IMPORTED_MODULE_4__["limitValue"])(this._index(to), fromValue + 1, max); + + if (options.visible) { + this.move(fromValue, toValue); + } + + options.from = this._value(fromValue); + options.to = this._value(toValue); + }; + + Selection.prototype.expand = function expand (delta) { + var options = this.options; + var min = this._index(options.min); + var max = this._index(options.max); + var zDir = options.mousewheel.zoom; + var from = this._index(options.from); + var to = this._index(options.to); + var range = { from: from, to: to }; + var oldRange = Object(_common__WEBPACK_IMPORTED_MODULE_4__["deepExtend"])({}, range); + + if (this._state) { + range = this._state.range; + } + + if (zDir !== _common_constants__WEBPACK_IMPORTED_MODULE_3__["RIGHT"]) { + range.from = Object(_common__WEBPACK_IMPORTED_MODULE_4__["limitValue"])( + Object(_common__WEBPACK_IMPORTED_MODULE_4__["limitValue"])(from - delta, 0, to - 1), + min, max + ); + } + + if (zDir !== _common_constants__WEBPACK_IMPORTED_MODULE_3__["LEFT"]) { + range.to = Object(_common__WEBPACK_IMPORTED_MODULE_4__["limitValue"])( + Object(_common__WEBPACK_IMPORTED_MODULE_4__["limitValue"])(to + delta, range.from + 1, max), + min, + max + ); + } + + if (range.from !== oldRange.from || range.to !== oldRange.to) { + this.set(range.from, range.to); + return true; + } + }; + + Selection.prototype.trigger = function trigger (name, args) { + return (this.observer || this.chart).trigger(name, args); + }; + + return Selection; +}(_common__WEBPACK_IMPORTED_MODULE_4__["Class"])); + +Object(_common__WEBPACK_IMPORTED_MODULE_4__["setDefaultOptions"])(Selection, { + visible: true, + mousewheel: { + zoom: "both" + }, + min: _common_constants__WEBPACK_IMPORTED_MODULE_3__["MIN_VALUE"], + max: _common_constants__WEBPACK_IMPORTED_MODULE_3__["MAX_VALUE"] +}); + + __webpack_exports__["default"] = (Selection); + + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/series-binder.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _utils_get_field__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/utils/get-field.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + +var SeriesBinder = (function (Class) { + function SeriesBinder() { + Class.call(this); + + this._valueFields = {}; + this._otherFields = {}; + this._nullValue = {}; + this._undefinedValue = {}; + } + + if ( Class ) SeriesBinder.__proto__ = Class; + SeriesBinder.prototype = Object.create( Class && Class.prototype ); + SeriesBinder.prototype.constructor = SeriesBinder; + + SeriesBinder.prototype.register = function register (seriesTypes, valueFields, otherFields) { + var this$1 = this; + if ( valueFields === void 0 ) valueFields = [ _common_constants__WEBPACK_IMPORTED_MODULE_1__["VALUE"] ]; + if ( otherFields === void 0 ) otherFields = {}; + + + for (var i = 0; i < seriesTypes.length; i++) { + var type = seriesTypes[i]; + + this$1._valueFields[type] = valueFields; + this$1._otherFields[type] = otherFields; + this$1._nullValue[type] = this$1._makeValue(valueFields, null); + this$1._undefinedValue[type] = this$1._makeValue(valueFields, undefined); + } + }; + + SeriesBinder.prototype.canonicalFields = function canonicalFields (series) { + return this.valueFields(series).concat(this.otherFields(series)); + }; + + SeriesBinder.prototype.valueFields = function valueFields (series) { + return this._valueFields[series.type] || [ _common_constants__WEBPACK_IMPORTED_MODULE_1__["VALUE"] ]; + }; + + SeriesBinder.prototype.otherFields = function otherFields (series) { + return this._otherFields[series.type] || [ _common_constants__WEBPACK_IMPORTED_MODULE_1__["VALUE"] ]; + }; + + SeriesBinder.prototype.bindPoint = function bindPoint (series, pointIx, item) { + var data = series.data; + var pointData = Object(_common__WEBPACK_IMPORTED_MODULE_2__["defined"])(item) ? item : data[pointIx]; + var result = { valueFields: { value: pointData } }; + var valueFields = this.valueFields(series); + var otherFields = this._otherFields[series.type]; + var fields, value; + + if (pointData === null) { + value = this._nullValue[series.type]; + } else if (!Object(_common__WEBPACK_IMPORTED_MODULE_2__["defined"])(pointData)) { + value = this._undefinedValue[series.type]; + } else if (Array.isArray(pointData)) { + var fieldData = pointData.slice(valueFields.length); + value = this._bindFromArray(pointData, valueFields); + fields = this._bindFromArray(fieldData, otherFields); + } else if (typeof pointData === "object") { + var srcValueFields = this.sourceFields(series, valueFields); + var srcPointFields = this.sourceFields(series, otherFields); + + value = this._bindFromObject(pointData, valueFields, srcValueFields); + fields = this._bindFromObject(pointData, otherFields, srcPointFields); + } + + if (Object(_common__WEBPACK_IMPORTED_MODULE_2__["defined"])(value)) { + if (valueFields.length === 1) { + result.valueFields.value = value[valueFields[0]]; + } else { + result.valueFields = value; + } + } + + result.fields = fields || {}; + + return result; + }; + + SeriesBinder.prototype._makeValue = function _makeValue (fields, initialValue) { + var value = {}; + var length = fields.length; + + for (var i = 0; i < length; i++) { + var fieldName = fields[i]; + value[fieldName] = initialValue; + } + + return value; + }; + + SeriesBinder.prototype._bindFromArray = function _bindFromArray (array, fields) { + var value = {}; + + if (fields) { + var length = Math.min(fields.length, array.length); + + for (var i = 0; i < length; i++) { + value[fields[i]] = array[i]; + } + } + + return value; + }; + + SeriesBinder.prototype._bindFromObject = function _bindFromObject (object, fields, srcFields) { + if ( srcFields === void 0 ) srcFields = fields; + + var value = {}; + + if (fields) { + var length = fields.length; + + for (var i = 0; i < length; i++) { + var fieldName = fields[i]; + var srcFieldName = srcFields[i]; + if (srcFieldName !== null) { + value[fieldName] = Object(_utils_get_field__WEBPACK_IMPORTED_MODULE_0__["default"])(srcFieldName, object); + } + } + } + + return value; + }; + + SeriesBinder.prototype.sourceFields = function sourceFields (series, canonicalFields) { + var sourceFields = []; + + if (canonicalFields) { + var length = canonicalFields.length; + + for (var i = 0; i < length; i++) { + var fieldName = canonicalFields[i]; + var sourceFieldName = fieldName === _common_constants__WEBPACK_IMPORTED_MODULE_1__["VALUE"] ? "field" : fieldName + "Field"; + + sourceFields.push(series[sourceFieldName] !== null ? (series[sourceFieldName] || fieldName) : null); + } + } + + return sourceFields; + }; + + return SeriesBinder; +}(_common__WEBPACK_IMPORTED_MODULE_2__["Class"])); + +SeriesBinder.current = new SeriesBinder(); + + __webpack_exports__["default"] = (SeriesBinder); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/tooltip/base-tooltip.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/main.js"); + var _common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/constants.js"); + + + + + +var BaseTooltip = (function (Class) { + function BaseTooltip(chartService, options) { + Class.call(this); + + this.chartService = chartService; + this.options = Object(_common__WEBPACK_IMPORTED_MODULE_1__["deepExtend"])({}, this.options, options); + } + + if ( Class ) BaseTooltip.__proto__ = Class; + BaseTooltip.prototype = Object.create( Class && Class.prototype ); + BaseTooltip.prototype.constructor = BaseTooltip; + + BaseTooltip.prototype.getStyle = function getStyle (options, point) { + var background = options.background; + var border = options.border.color; + + if (point) { + var pointColor = point.color || point.options.color; + background = Object(_common__WEBPACK_IMPORTED_MODULE_1__["valueOrDefault"])(background, pointColor); + border = Object(_common__WEBPACK_IMPORTED_MODULE_1__["valueOrDefault"])(border, pointColor); + } + + var padding = Object(_common__WEBPACK_IMPORTED_MODULE_1__["getSpacing"])(options.padding || {}, "auto"); + + return { + backgroundColor: background, + borderColor: border, + font: options.font, + color: options.color, + opacity: options.opacity, + borderWidth: Object(_common__WEBPACK_IMPORTED_MODULE_1__["styleValue"])(options.border.width), + paddingTop: Object(_common__WEBPACK_IMPORTED_MODULE_1__["styleValue"])(padding.top), + paddingBottom: Object(_common__WEBPACK_IMPORTED_MODULE_1__["styleValue"])(padding.bottom), + paddingLeft: Object(_common__WEBPACK_IMPORTED_MODULE_1__["styleValue"])(padding.left), + paddingRight: Object(_common__WEBPACK_IMPORTED_MODULE_1__["styleValue"])(padding.right) + }; + }; + + BaseTooltip.prototype.show = function show (options, tooltipOptions, point) { + options.format = tooltipOptions.format; + + var style = this.getStyle(tooltipOptions, point); + options.style = style; + + if (!Object(_common__WEBPACK_IMPORTED_MODULE_1__["defined"])(tooltipOptions.color) && new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["Color"](style.backgroundColor).percBrightness() > 180) { + options.className = "k-chart-tooltip-inverse"; + } + + this.chartService.notify(_constants__WEBPACK_IMPORTED_MODULE_2__["SHOW_TOOLTIP"], options); + + this.visible = true; + }; + + BaseTooltip.prototype.hide = function hide () { + if (this.chartService) { + this.chartService.notify(_constants__WEBPACK_IMPORTED_MODULE_2__["HIDE_TOOLTIP"]); + } + + this.visible = false; + }; + + BaseTooltip.prototype.destroy = function destroy () { + delete this.chartService; + }; + + return BaseTooltip; +}(_common__WEBPACK_IMPORTED_MODULE_1__["Class"])); + +Object(_common__WEBPACK_IMPORTED_MODULE_1__["setDefaultOptions"])(BaseTooltip, { + border: { + width: 1 + }, + opacity: 1 +}); + + __webpack_exports__["default"] = (BaseTooltip); + + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/tooltip/shared-tooltip.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _base_tooltip__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/tooltip/base-tooltip.js"); + var _core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core.js"); + var _common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + + +var SharedTooltip = (function (BaseTooltip) { + function SharedTooltip(plotArea, options) { + BaseTooltip.call(this, plotArea.chartService, options); + + this.plotArea = plotArea; + this.formatService = plotArea.chartService.format; + } + + if ( BaseTooltip ) SharedTooltip.__proto__ = BaseTooltip; + SharedTooltip.prototype = Object.create( BaseTooltip && BaseTooltip.prototype ); + SharedTooltip.prototype.constructor = SharedTooltip; + + SharedTooltip.prototype.showAt = function showAt (points, coords) { + var tooltipPoints = Object(_common__WEBPACK_IMPORTED_MODULE_2__["grep"])(points, function(point) { + var tooltip = point.series.tooltip; + var excluded = tooltip && tooltip.visible === false; + + return !excluded; + }); + + if (tooltipPoints.length > 0) { + var point = tooltipPoints[0]; + var slot = this.plotArea.categoryAxis.getSlot(point.categoryIx); + + var anchor = coords ? this._slotAnchor(coords, slot) : this._defaultAnchor(point, slot); + + this.show({ + anchor: anchor, + shared: true, + points: points, + category: point.category, + categoryText: this.formatService.auto(this.options.categoryFormat, point.category), + series: this.plotArea.series + }, this.options); + } + }; + + SharedTooltip.prototype._slotAnchor = function _slotAnchor (point, slot) { + var axis = this.plotArea.categoryAxis; + var align = { + horizontal: "left", + vertical: "center" + }; + + if (!axis.options.vertical) { + point.x = slot.center().x; + } + + return { + point: point, + align: align + }; + }; + + SharedTooltip.prototype._defaultAnchor = function _defaultAnchor (point, slot) { + var box = point.owner.pane.chartsBox(); + var vertical = this.plotArea.categoryAxis.options.vertical; + var center = box.center(); + var slotCenter = slot.center(); + var align = { + horizontal: "center", + vertical: "center" + }; + + var centerPoint; + if (vertical) { + centerPoint = new _core__WEBPACK_IMPORTED_MODULE_1__["Point"](center.x, slotCenter.y); + } else { + centerPoint = new _core__WEBPACK_IMPORTED_MODULE_1__["Point"](slotCenter.x, center.y); + } + + return { + point: centerPoint, + align: align + }; + }; + + return SharedTooltip; +}(_base_tooltip__WEBPACK_IMPORTED_MODULE_0__["default"])); + +Object(_common__WEBPACK_IMPORTED_MODULE_2__["setDefaultOptions"])(SharedTooltip, { + categoryFormat: '{0:d}' +}); + + __webpack_exports__["default"] = (SharedTooltip); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/tooltip/tooltip.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _base_tooltip__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/tooltip/base-tooltip.js"); + var _common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + +var Tooltip = (function (BaseTooltip) { + function Tooltip () { + BaseTooltip.apply(this, arguments); + } + + if ( BaseTooltip ) Tooltip.__proto__ = BaseTooltip; + Tooltip.prototype = Object.create( BaseTooltip && BaseTooltip.prototype ); + Tooltip.prototype.constructor = Tooltip; + + Tooltip.prototype.show = function show (point) { + if (!point || !point.tooltipAnchor || (this._current && this._current === point)) { + return; + } + + var options = Object(_common__WEBPACK_IMPORTED_MODULE_1__["deepExtend"])({}, this.options, point.options.tooltip); + var anchor = point.tooltipAnchor(); + + if (anchor) { + this._current = point; + BaseTooltip.prototype.show.call(this, { + point: point, + anchor: anchor + }, options, point); + } else { + this.hide(); + } + }; + + Tooltip.prototype.hide = function hide () { + delete this._current; + BaseTooltip.prototype.hide.call(this); + }; + + return Tooltip; +}(_base_tooltip__WEBPACK_IMPORTED_MODULE_0__["default"])); + + __webpack_exports__["default"] = (Tooltip); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/utils.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _utils_any_has_z_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/utils/any-has-z-index.js"); + __webpack_require__.d(__webpack_exports__, "anyHasZIndex", function() { return _utils_any_has_z_index__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + + var _utils_append_if_not_null__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/utils/append-if-not-null.js"); + __webpack_require__.d(__webpack_exports__, "appendIfNotNull", function() { return _utils_append_if_not_null__WEBPACK_IMPORTED_MODULE_1__["default"]; }); + + var _utils_are_numbers__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/utils/are-numbers.js"); + __webpack_require__.d(__webpack_exports__, "areNumbers", function() { return _utils_are_numbers__WEBPACK_IMPORTED_MODULE_2__["default"]; }); + + var _utils_bind_segments__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/utils/bind-segments.js"); + __webpack_require__.d(__webpack_exports__, "bindSegments", function() { return _utils_bind_segments__WEBPACK_IMPORTED_MODULE_3__["default"]; }); + + var _utils_categories_count__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/utils/categories-count.js"); + __webpack_require__.d(__webpack_exports__, "categoriesCount", function() { return _utils_categories_count__WEBPACK_IMPORTED_MODULE_4__["default"]; }); + + var _utils_count_numbers__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/utils/count-numbers.js"); + __webpack_require__.d(__webpack_exports__, "countNumbers", function() { return _utils_count_numbers__WEBPACK_IMPORTED_MODULE_5__["default"]; }); + + var _utils_equals_ignore_case__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/utils/equals-ignore-case.js"); + __webpack_require__.d(__webpack_exports__, "equalsIgnoreCase", function() { return _utils_equals_ignore_case__WEBPACK_IMPORTED_MODULE_6__["default"]; }); + + var _utils_eval_options__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/utils/eval-options.js"); + __webpack_require__.d(__webpack_exports__, "evalOptions", function() { return _utils_eval_options__WEBPACK_IMPORTED_MODULE_7__["default"]; }); + + var _utils_filter_series_by_type__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/utils/filter-series-by-type.js"); + __webpack_require__.d(__webpack_exports__, "filterSeriesByType", function() { return _utils_filter_series_by_type__WEBPACK_IMPORTED_MODULE_8__["default"]; }); + + var _utils_get_date_field__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/utils/get-date-field.js"); + __webpack_require__.d(__webpack_exports__, "getDateField", function() { return _utils_get_date_field__WEBPACK_IMPORTED_MODULE_9__["default"]; }); + + var _utils_get_field__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/utils/get-field.js"); + __webpack_require__.d(__webpack_exports__, "getField", function() { return _utils_get_field__WEBPACK_IMPORTED_MODULE_10__["default"]; }); + + var _utils_has_gradient_overlay__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/utils/has-gradient-overlay.js"); + __webpack_require__.d(__webpack_exports__, "hasGradientOverlay", function() { return _utils_has_gradient_overlay__WEBPACK_IMPORTED_MODULE_11__["default"]; }); + + var _utils_has_value__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/utils/has-value.js"); + __webpack_require__.d(__webpack_exports__, "hasValue", function() { return _utils_has_value__WEBPACK_IMPORTED_MODULE_12__["default"]; }); + + var _utils_is_date_axis__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/utils/is-date-axis.js"); + __webpack_require__.d(__webpack_exports__, "isDateAxis", function() { return _utils_is_date_axis__WEBPACK_IMPORTED_MODULE_13__["default"]; }); + + var _utils_segment_visible__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/utils/segment-visible.js"); + __webpack_require__.d(__webpack_exports__, "segmentVisible", function() { return _utils_segment_visible__WEBPACK_IMPORTED_MODULE_14__["default"]; }); + + var _utils_single_item_or_array__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/utils/single-item-or-array.js"); + __webpack_require__.d(__webpack_exports__, "singleItemOrArray", function() { return _utils_single_item_or_array__WEBPACK_IMPORTED_MODULE_15__["default"]; }); + + var _utils_create_out_of_range_points__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/utils/create-out-of-range-points.js"); + __webpack_require__.d(__webpack_exports__, "createOutOfRangePoints", function() { return _utils_create_out_of_range_points__WEBPACK_IMPORTED_MODULE_16__["default"]; }); + + + + + + + + + + + + + + + + + + + + + + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/utils/any-has-z-index.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return anyHasZIndex; }); + var _common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + +function anyHasZIndex(elements) { + for (var idx = 0; idx < elements.length; idx++) { + if (Object(_common__WEBPACK_IMPORTED_MODULE_0__["defined"])(elements[idx].zIndex)) { + return true; + } + } +} + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/utils/append-if-not-null.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return appendIfNotNull; }); +function appendIfNotNull(array, element) { + if (element !== null) { + array.push(element); + } +} + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/utils/are-numbers.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return areNumbers; }); + var _count_numbers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/utils/count-numbers.js"); + + +function areNumbers(values) { + return Object(_count_numbers__WEBPACK_IMPORTED_MODULE_0__["default"])(values) === values.length; +} + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/utils/bind-segments.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return bindSegments; }); + var _common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + var _series_binder__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/series-binder.js"); + var _segment_visible__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/utils/segment-visible.js"); + + + + +function bindSegments(series) { + var data = series.data; + var points = []; + var sum = 0; + var count = 0; + + for (var idx = 0; idx < data.length; idx++) { + var pointData = _series_binder__WEBPACK_IMPORTED_MODULE_1__["default"].current.bindPoint(series, idx); + var value = pointData.valueFields.value; + + + if (Object(_common__WEBPACK_IMPORTED_MODULE_0__["isString"])(value)) { + value = parseFloat(value); + } + + if (Object(_common__WEBPACK_IMPORTED_MODULE_0__["isNumber"])(value)) { + pointData.visible = Object(_segment_visible__WEBPACK_IMPORTED_MODULE_2__["default"])(series, pointData.fields, idx) !== false; + + pointData.value = Math.abs(value); + points.push(pointData); + + if (pointData.visible) { + sum += pointData.value; + } + + if (value !== 0) { + count++; + } + } else { + points.push(null); + } + } + + return { + total: sum, + points: points, + count: count + }; +} + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/utils/categories-count.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return categoriesCount; }); +function categoriesCount(series) { + var seriesCount = series.length; + var categories = 0; + + for (var i = 0; i < seriesCount; i++) { + categories = Math.max(categories, series[i].data.length); + } + + return categories; +} + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/utils/count-numbers.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return countNumbers; }); + var _common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + +function countNumbers(values) { + var length = values.length; + var count = 0; + + for (var i = 0; i < length; i++) { + var num = values[i]; + if (Object(_common__WEBPACK_IMPORTED_MODULE_0__["isNumber"])(num)) { + count++; + } + } + + return count; +} + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/utils/create-out-of-range-points.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return createOutOfRangePoints; }); + var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + var _series_binder__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/series-binder.js"); + + + + +var AREA_REGEX = /area/i; + +function seriesMissingValues(series) { + if (series.missingValues) { + return series.missingValues; + } + + return AREA_REGEX.test(series.type) || series.stack ? _constants__WEBPACK_IMPORTED_MODULE_0__["ZERO"] : _constants__WEBPACK_IMPORTED_MODULE_0__["INTERPOLATE"]; +} + +function hasValue(series, item) { + var fields = _series_binder__WEBPACK_IMPORTED_MODULE_2__["default"].current.bindPoint(series, null, item); + var valueFields = fields.valueFields; + + for (var field in valueFields) { + if (Object(_common__WEBPACK_IMPORTED_MODULE_1__["convertableToNumber"])(valueFields[field])) { + return true; + } + } +} + +function findNext(ref) { + var start = ref.start; + var dir = ref.dir; + var min = ref.min; + var max = ref.max; + var getter = ref.getter; + var hasItem = ref.hasItem; + var series = ref.series; + + var pointHasValue, outPoint; + var idx = start; + do { + idx += dir; + //aggregating and binding the item takes too much time for large number of categories + //will assume that if the aggregation does not create value for a missing item for one it will not create for others + if (hasItem(idx)) { + outPoint = getter(idx); + pointHasValue = hasValue(series, outPoint.item); + } + } while (min <= idx && idx <= max && !pointHasValue); + + if (pointHasValue) { + return outPoint; + } +} + +function createOutOfRangePoints(series, range, count, getter, hasItem) { + var min = range.min; + var max = range.max; + var hasMinPoint = min > 0 && min < count; + var hasMaxPoint = max + 1 < count; + + if (hasMinPoint || hasMaxPoint) { + var missingValues = seriesMissingValues(series); + var minPoint, maxPoint; + if (missingValues !== _constants__WEBPACK_IMPORTED_MODULE_0__["INTERPOLATE"]) { + if (hasMinPoint) { + minPoint = getter(min - 1); + } + + if (hasMaxPoint) { + maxPoint = getter(max + 1); + } + } else { + var outPoint, pointHasValue; + if (hasMinPoint) { + outPoint = getter(min - 1); + pointHasValue = hasValue(series, outPoint.item); + if (!pointHasValue) { + minPoint = findNext({ + start: min, + dir: -1, + min: 0, + max: count - 1, + getter: getter, + hasItem: hasItem, + series: series + }); + } else { + minPoint = outPoint; + } + } + + if (hasMaxPoint) { + outPoint = getter(max + 1); + pointHasValue = hasValue(series, outPoint.item); + if (!pointHasValue) { + maxPoint = findNext({ + start: max, + dir: 1, + min: 0, + max: count - 1, + getter: getter, + hasItem: hasItem, + series: series + }); + } else { + maxPoint = outPoint; + } + } + } + + if (minPoint) { + series._outOfRangeMinPoint = minPoint; + } + + if (maxPoint) { + series._outOfRangeMaxPoint = maxPoint; + } + } +} + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/utils/equals-ignore-case.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return equalsIgnoreCase; }); +function equalsIgnoreCase(a, b) { + if (a && b) { + return a.toLowerCase() === b.toLowerCase(); + } + + return a === b; +} + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/utils/eval-options.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return evalOptions; }); + var _common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + +var MAX_EXPAND_DEPTH = 5; + +function evalOptions(options, context, state, dryRun) { + if ( state === void 0 ) state = {}; + if ( dryRun === void 0 ) dryRun = false; + + var defaults = state.defaults = state.defaults || {}; + var depth = state.depth = state.depth || 0; + var needsEval = false; + + state.excluded = state.excluded || []; + + if (depth > MAX_EXPAND_DEPTH) { + return null; + } + + for (var property in options) { + if (!Object(_common__WEBPACK_IMPORTED_MODULE_0__["inArray"])(property, state.excluded) && options.hasOwnProperty(property)) { + var propValue = options[property]; + if (Object(_common__WEBPACK_IMPORTED_MODULE_0__["isFunction"])(propValue)) { + needsEval = true; + if (!dryRun) { + options[property] = Object(_common__WEBPACK_IMPORTED_MODULE_0__["valueOrDefault"])(propValue(context), defaults[property]); + } + } else if (Object(_common__WEBPACK_IMPORTED_MODULE_0__["isObject"])(propValue)) { + if (!dryRun) { + state.defaults = defaults[property]; + } + state.depth++; + needsEval = evalOptions(propValue, context, state, dryRun) || needsEval; + state.depth--; + } + } + } + + return needsEval; +} + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/utils/filter-series-by-type.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return filterSeriesByType; }); + var _common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + +function filterSeriesByType(series, types) { + var result = []; + + var seriesTypes = [].concat(types); + for (var idx = 0; idx < series.length; idx++) { + var currentSeries = series[idx]; + if (Object(_common__WEBPACK_IMPORTED_MODULE_0__["inArray"])(currentSeries.type, seriesTypes)) { + result.push(currentSeries); + } + } + + return result; +} + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/utils/get-date-field.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return getDateField; }); + var _date_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/date-utils.js"); + var _common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + +function getDateField(field, row, intlService) { + if (row === null) { + return row; + } + + var key = "_date_" + field; + var value = row[key]; + + if (!value) { + value = Object(_date_utils__WEBPACK_IMPORTED_MODULE_0__["parseDate"])(intlService, Object(_common__WEBPACK_IMPORTED_MODULE_1__["getter"])(field, true)(row)); + row[key] = value; + } + + return value; +} + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/utils/get-field.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return getField; }); + var _common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + +function getField(field, row) { + if (row === null) { + return row; + } + + var get = Object(_common__WEBPACK_IMPORTED_MODULE_0__["getter"])(field, true); + return get(row); +} + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/utils/has-gradient-overlay.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return hasGradientOverlay; }); +function hasGradientOverlay(options) { + var overlay = options.overlay; + + return overlay && overlay.gradient && overlay.gradient !== "none"; +} + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/utils/has-value.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return hasValue; }); + var _common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + +function hasValue(value) { + return Object(_common__WEBPACK_IMPORTED_MODULE_0__["defined"])(value) && value !== null; +} + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/utils/is-date-axis.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return isDateAxis; }); + var _equals_ignore_case__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/utils/equals-ignore-case.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + + + + +function isDateAxis(axisOptions, sampleCategory) { + var type = axisOptions.type; + var dateCategory = sampleCategory instanceof Date; + + return (!type && dateCategory) || Object(_equals_ignore_case__WEBPACK_IMPORTED_MODULE_0__["default"])(type, _common_constants__WEBPACK_IMPORTED_MODULE_1__["DATE"]); +} + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/utils/segment-visible.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return segmentVisible; }); + var _common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + +function segmentVisible(series, fields, index) { + var visible = fields.visible; + if (Object(_common__WEBPACK_IMPORTED_MODULE_0__["defined"])(visible)) { + return visible; + } + + var pointVisibility = series.pointVisibility; + if (pointVisibility) { + return pointVisibility[index]; + } +} + + + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/utils/single-item-or-array.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return singleItemOrArray; }); +function singleItemOrArray(array) { + return array.length === 1 ? array[0] : array; +} + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/waterfall-chart/waterfall-chart.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _bar_chart_bar_chart__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/bar-chart/bar-chart.js"); + var _series_binder__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/series-binder.js"); + var _waterfall_segment__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/waterfall-chart/waterfall-segment.js"); + var _utils_categories_count__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/utils/categories-count.js"); + var _common__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + + + + + +var WaterfallChart = (function (BarChart) { + function WaterfallChart () { + BarChart.apply(this, arguments); + } + + if ( BarChart ) WaterfallChart.__proto__ = BarChart; + WaterfallChart.prototype = Object.create( BarChart && BarChart.prototype ); + WaterfallChart.prototype.constructor = WaterfallChart; + + WaterfallChart.prototype.render = function render () { + BarChart.prototype.render.call(this); + this.createSegments(); + }; + + WaterfallChart.prototype.traverseDataPoints = function traverseDataPoints (callback) { + var this$1 = this; + + var series = this.options.series; + var totalCategories = Object(_utils_categories_count__WEBPACK_IMPORTED_MODULE_3__["default"])(series); + var isVertical = !this.options.invertAxes; + + for (var seriesIx = 0; seriesIx < series.length; seriesIx++) { + var currentSeries = series[seriesIx]; + var total = 0; + var runningTotal = 0; + + for (var categoryIx = 0; categoryIx < totalCategories; categoryIx++) { + var data = _series_binder__WEBPACK_IMPORTED_MODULE_1__["default"].current.bindPoint(currentSeries, categoryIx); + var value = data.valueFields.value; + var summary = data.fields.summary; + var from = total; + var to = (void 0); + + if (summary) { + if (summary.toLowerCase() === "total") { + data.valueFields.value = total; + from = 0; + to = total; + } else { + data.valueFields.value = runningTotal; + to = from - runningTotal; + runningTotal = 0; + } + } else if (Object(_common__WEBPACK_IMPORTED_MODULE_4__["isNumber"])(value)) { + runningTotal += value; + total += value; + to = total; + } + + callback(data, { + category: this$1.categoryAxis.categoryAt(categoryIx), + categoryIx: categoryIx, + series: currentSeries, + seriesIx: seriesIx, + total: total, + runningTotal: runningTotal, + from: from, + to: to, + isVertical: isVertical + }); + } + } + }; + + WaterfallChart.prototype.updateRange = function updateRange (value, fields) { + BarChart.prototype.updateRange.call(this, { value: fields.to }, fields); + }; + + WaterfallChart.prototype.aboveAxis = function aboveAxis (point) { + return point.value >= 0; + }; + + WaterfallChart.prototype.plotRange = function plotRange (point) { + return [ point.from, point.to ]; + }; + + WaterfallChart.prototype.createSegments = function createSegments () { + var this$1 = this; + + var series = this.options.series; + var seriesPoints = this.seriesPoints; + var segments = this.segments = []; + + for (var seriesIx = 0; seriesIx < series.length; seriesIx++) { + var currentSeries = series[seriesIx]; + var points = seriesPoints[seriesIx]; + + if (points) { + var prevPoint = (void 0); + for (var pointIx = 0; pointIx < points.length; pointIx++) { + var point = points[pointIx]; + + if (point && prevPoint) { + var segment = new _waterfall_segment__WEBPACK_IMPORTED_MODULE_2__["default"](prevPoint, point, currentSeries); + segments.push(segment); + this$1.append(segment); + } + + prevPoint = point; + } + } + } + }; + + return WaterfallChart; +}(_bar_chart_bar_chart__WEBPACK_IMPORTED_MODULE_0__["default"])); + + __webpack_exports__["default"] = (WaterfallChart); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/chart/waterfall-chart/waterfall-segment.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/main.js"); + var _core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core.js"); + var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + + + + + +var WaterfallSegment = (function (ChartElement) { + function WaterfallSegment(from, to, series) { + ChartElement.call(this); + + this.from = from; + this.to = to; + this.series = series; + } + + if ( ChartElement ) WaterfallSegment.__proto__ = ChartElement; + WaterfallSegment.prototype = Object.create( ChartElement && ChartElement.prototype ); + WaterfallSegment.prototype.constructor = WaterfallSegment; + + WaterfallSegment.prototype.linePoints = function linePoints () { + var from = this.from; + var ref = this; + var fromBox = ref.from.box; + var toBox = ref.to.box; + var points = []; + + if (from.isVertical) { + var y = from.aboveAxis ? fromBox.y1 : fromBox.y2; + points.push( + [ fromBox.x1, y ], + [ toBox.x2, y ] + ); + } else { + var x = from.aboveAxis ? fromBox.x2 : fromBox.x1; + points.push( + [ x, fromBox.y1 ], + [ x, toBox.y2 ] + ); + } + + return points; + }; + + WaterfallSegment.prototype.createVisual = function createVisual () { + ChartElement.prototype.createVisual.call(this); + + var line = this.series.line || {}; + + var path = _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Path.fromPoints(this.linePoints(), { + stroke: { + color: line.color, + width: line.width, + opacity: line.opacity, + dashType: line.dashType + } + }); + + Object(_common__WEBPACK_IMPORTED_MODULE_3__["alignPathToPixel"])(path); + this.visual.append(path); + }; + + return WaterfallSegment; +}(_core__WEBPACK_IMPORTED_MODULE_1__["ChartElement"])); + +Object(_common__WEBPACK_IMPORTED_MODULE_3__["setDefaultOptions"])(WaterfallSegment, { + animation: { + type: _constants__WEBPACK_IMPORTED_MODULE_2__["FADEIN"], + delay: _constants__WEBPACK_IMPORTED_MODULE_2__["INITIAL_ANIMATION_DURATION"] + } +}); + + __webpack_exports__["default"] = (WaterfallSegment); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/common.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _common_add_class__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/add-class.js"); + __webpack_require__.d(__webpack_exports__, "addClass", function() { return _common_add_class__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + + var _common_remove_class__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/remove-class.js"); + __webpack_require__.d(__webpack_exports__, "removeClass", function() { return _common_remove_class__WEBPACK_IMPORTED_MODULE_1__["default"]; }); + + var _common_align_path_to_pixel__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/align-path-to-pixel.js"); + __webpack_require__.d(__webpack_exports__, "alignPathToPixel", function() { return _common_align_path_to_pixel__WEBPACK_IMPORTED_MODULE_2__["default"]; }); + + var _common_clockwise__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/clockwise.js"); + __webpack_require__.d(__webpack_exports__, "clockwise", function() { return _common_clockwise__WEBPACK_IMPORTED_MODULE_3__["default"]; }); + + var _common_convertable_to_number__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/convertable-to-number.js"); + __webpack_require__.d(__webpack_exports__, "convertableToNumber", function() { return _common_convertable_to_number__WEBPACK_IMPORTED_MODULE_4__["default"]; }); + + var _common_deep_extend__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/deep-extend.js"); + __webpack_require__.d(__webpack_exports__, "deepExtend", function() { return _common_deep_extend__WEBPACK_IMPORTED_MODULE_5__["default"]; }); + + var _common_element_styles__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/element-styles.js"); + __webpack_require__.d(__webpack_exports__, "elementStyles", function() { return _common_element_styles__WEBPACK_IMPORTED_MODULE_6__["default"]; }); + + var _common_get_spacing__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/get-spacing.js"); + __webpack_require__.d(__webpack_exports__, "getSpacing", function() { return _common_get_spacing__WEBPACK_IMPORTED_MODULE_7__["default"]; }); + + var _common_get_template__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/get-template.js"); + __webpack_require__.d(__webpack_exports__, "getTemplate", function() { return _common_get_template__WEBPACK_IMPORTED_MODULE_8__["default"]; }); + + var _common_getter__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/getter.js"); + __webpack_require__.d(__webpack_exports__, "getter", function() { return _common_getter__WEBPACK_IMPORTED_MODULE_9__["default"]; }); + + var _common_grep__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/grep.js"); + __webpack_require__.d(__webpack_exports__, "grep", function() { return _common_grep__WEBPACK_IMPORTED_MODULE_10__["default"]; }); + + var _common_has_classes__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/has-classes.js"); + __webpack_require__.d(__webpack_exports__, "hasClasses", function() { return _common_has_classes__WEBPACK_IMPORTED_MODULE_11__["default"]; }); + + var _common_hash_map__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/hash-map.js"); + __webpack_require__.d(__webpack_exports__, "HashMap", function() { return _common_hash_map__WEBPACK_IMPORTED_MODULE_12__["default"]; }); + + var _common_in_array__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/in-array.js"); + __webpack_require__.d(__webpack_exports__, "inArray", function() { return _common_in_array__WEBPACK_IMPORTED_MODULE_13__["default"]; }); + + var _common_interpolate_value__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/interpolate-value.js"); + __webpack_require__.d(__webpack_exports__, "interpolateValue", function() { return _common_interpolate_value__WEBPACK_IMPORTED_MODULE_14__["default"]; }); + + var _common_instance_observer__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/instance-observer.js"); + __webpack_require__.d(__webpack_exports__, "InstanceObserver", function() { return _common_instance_observer__WEBPACK_IMPORTED_MODULE_15__["default"]; }); + + var _common_is_array__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/is-array.js"); + __webpack_require__.d(__webpack_exports__, "isArray", function() { return _common_is_array__WEBPACK_IMPORTED_MODULE_16__["default"]; }); + + var _common_is_function__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/is-function.js"); + __webpack_require__.d(__webpack_exports__, "isFunction", function() { return _common_is_function__WEBPACK_IMPORTED_MODULE_17__["default"]; }); + + var _common_is_number__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/is-number.js"); + __webpack_require__.d(__webpack_exports__, "isNumber", function() { return _common_is_number__WEBPACK_IMPORTED_MODULE_18__["default"]; }); + + var _common_is_object__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/is-object.js"); + __webpack_require__.d(__webpack_exports__, "isObject", function() { return _common_is_object__WEBPACK_IMPORTED_MODULE_19__["default"]; }); + + var _common_is_string__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/is-string.js"); + __webpack_require__.d(__webpack_exports__, "isString", function() { return _common_is_string__WEBPACK_IMPORTED_MODULE_20__["default"]; }); + + var _common_map__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/map.js"); + __webpack_require__.d(__webpack_exports__, "map", function() { return _common_map__WEBPACK_IMPORTED_MODULE_21__["default"]; }); + + var _common_mousewheel_delta__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/mousewheel-delta.js"); + __webpack_require__.d(__webpack_exports__, "mousewheelDelta", function() { return _common_mousewheel_delta__WEBPACK_IMPORTED_MODULE_22__["default"]; }); + + var _common_font_loader__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/font-loader.js"); + __webpack_require__.d(__webpack_exports__, "FontLoader", function() { return _common_font_loader__WEBPACK_IMPORTED_MODULE_23__["default"]; }); + + var _common_set_default_options__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/set-default-options.js"); + __webpack_require__.d(__webpack_exports__, "setDefaultOptions", function() { return _common_set_default_options__WEBPACK_IMPORTED_MODULE_24__["default"]; }); + + var _common_sparse_array_limits__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/sparse-array-limits.js"); + __webpack_require__.d(__webpack_exports__, "sparseArrayLimits", function() { return _common_sparse_array_limits__WEBPACK_IMPORTED_MODULE_25__["default"]; }); + + var _common_style_value__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/style-value.js"); + __webpack_require__.d(__webpack_exports__, "styleValue", function() { return _common_style_value__WEBPACK_IMPORTED_MODULE_26__["default"]; }); + + var _common_find__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/find.js"); + __webpack_require__.d(__webpack_exports__, "find", function() { return _common_find__WEBPACK_IMPORTED_MODULE_27__["default"]; }); + + var _drawing_utils__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/drawing-utils.js"); + __webpack_require__.d(__webpack_exports__, "append", function() { return _drawing_utils__WEBPACK_IMPORTED_MODULE_28__["append"]; }); + + __webpack_require__.d(__webpack_exports__, "bindEvents", function() { return _drawing_utils__WEBPACK_IMPORTED_MODULE_28__["bindEvents"]; }); + + __webpack_require__.d(__webpack_exports__, "Class", function() { return _drawing_utils__WEBPACK_IMPORTED_MODULE_28__["Class"]; }); + + __webpack_require__.d(__webpack_exports__, "defined", function() { return _drawing_utils__WEBPACK_IMPORTED_MODULE_28__["defined"]; }); + + __webpack_require__.d(__webpack_exports__, "deg", function() { return _drawing_utils__WEBPACK_IMPORTED_MODULE_28__["deg"]; }); + + __webpack_require__.d(__webpack_exports__, "elementOffset", function() { return _drawing_utils__WEBPACK_IMPORTED_MODULE_28__["elementOffset"]; }); + + __webpack_require__.d(__webpack_exports__, "elementSize", function() { return _drawing_utils__WEBPACK_IMPORTED_MODULE_28__["elementSize"]; }); + + __webpack_require__.d(__webpack_exports__, "eventElement", function() { return _drawing_utils__WEBPACK_IMPORTED_MODULE_28__["eventElement"]; }); + + __webpack_require__.d(__webpack_exports__, "eventCoordinates", function() { return _drawing_utils__WEBPACK_IMPORTED_MODULE_28__["eventCoordinates"]; }); + + __webpack_require__.d(__webpack_exports__, "last", function() { return _drawing_utils__WEBPACK_IMPORTED_MODULE_28__["last"]; }); + + __webpack_require__.d(__webpack_exports__, "limitValue", function() { return _drawing_utils__WEBPACK_IMPORTED_MODULE_28__["limitValue"]; }); + + __webpack_require__.d(__webpack_exports__, "logToConsole", function() { return _drawing_utils__WEBPACK_IMPORTED_MODULE_28__["logToConsole"]; }); + + __webpack_require__.d(__webpack_exports__, "objectKey", function() { return _drawing_utils__WEBPACK_IMPORTED_MODULE_28__["objectKey"]; }); + + __webpack_require__.d(__webpack_exports__, "rad", function() { return _drawing_utils__WEBPACK_IMPORTED_MODULE_28__["rad"]; }); + + __webpack_require__.d(__webpack_exports__, "round", function() { return _drawing_utils__WEBPACK_IMPORTED_MODULE_28__["round"]; }); + + __webpack_require__.d(__webpack_exports__, "unbindEvents", function() { return _drawing_utils__WEBPACK_IMPORTED_MODULE_28__["unbindEvents"]; }); + + __webpack_require__.d(__webpack_exports__, "valueOrDefault", function() { return _drawing_utils__WEBPACK_IMPORTED_MODULE_28__["valueOrDefault"]; }); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + }), + + "./node_modules/@progress/kendo-charts/dist/es/common/add-class.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return addClass; }); + var _is_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/is-array.js"); + + +function addClass(element, classes) { + var classArray = Object(_is_array__WEBPACK_IMPORTED_MODULE_0__["default"])(classes) ? classes : [ classes ]; + + for (var idx = 0; idx < classArray.length; idx++) { + var className = classArray[idx]; + if (element.className.indexOf(className) === -1) { + element.className += " " + className; + } + } +} + + }), + + "./node_modules/@progress/kendo-charts/dist/es/common/align-path-to-pixel.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return alignPathToPixel; }); + var _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/main.js"); + + +function alignPathToPixel(path) { + var offset = 0.5; + if (path.options.stroke && _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].util.defined(path.options.stroke.width)) { + if (path.options.stroke.width % 2 === 0) { + offset = 0; + } + } + + for (var i = 0; i < path.segments.length; i++) { + path.segments[i].anchor().round(0).translate(offset, offset); + } + + return path; +} + + }), + + "./node_modules/@progress/kendo-charts/dist/es/common/clockwise.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return clockwise; }); +function clockwise(angle1, angle2) { + // True if angle2 is clockwise of angle1 + // assuming angles grow in clock-wise direction + // (as in the pie and radar charts) + return -angle1.x * angle2.y + angle1.y * angle2.x < 0; +} + + }), + + "./node_modules/@progress/kendo-charts/dist/es/common/constants.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "ARC", function() { return ARC; }); + __webpack_require__.d(__webpack_exports__, "AXIS_LABEL_CLICK", function() { return AXIS_LABEL_CLICK; }); + __webpack_require__.d(__webpack_exports__, "BLACK", function() { return BLACK; }); + __webpack_require__.d(__webpack_exports__, "BOTTOM", function() { return BOTTOM; }); + __webpack_require__.d(__webpack_exports__, "CENTER", function() { return CENTER; }); + __webpack_require__.d(__webpack_exports__, "CIRCLE", function() { return CIRCLE; }); + __webpack_require__.d(__webpack_exports__, "COORD_PRECISION", function() { return COORD_PRECISION; }); + __webpack_require__.d(__webpack_exports__, "CROSS", function() { return CROSS; }); + __webpack_require__.d(__webpack_exports__, "DATE", function() { return DATE; }); + __webpack_require__.d(__webpack_exports__, "DEFAULT_FONT", function() { return DEFAULT_FONT; }); + __webpack_require__.d(__webpack_exports__, "DEFAULT_HEIGHT", function() { return DEFAULT_HEIGHT; }); + __webpack_require__.d(__webpack_exports__, "DEFAULT_PRECISION", function() { return DEFAULT_PRECISION; }); + __webpack_require__.d(__webpack_exports__, "DEFAULT_WIDTH", function() { return DEFAULT_WIDTH; }); + __webpack_require__.d(__webpack_exports__, "END", function() { return END; }); + __webpack_require__.d(__webpack_exports__, "FORMAT_REGEX", function() { return FORMAT_REGEX; }); + __webpack_require__.d(__webpack_exports__, "HEIGHT", function() { return HEIGHT; }); + __webpack_require__.d(__webpack_exports__, "HIGHLIGHT_ZINDEX", function() { return HIGHLIGHT_ZINDEX; }); + __webpack_require__.d(__webpack_exports__, "INSIDE", function() { return INSIDE; }); + __webpack_require__.d(__webpack_exports__, "LEFT", function() { return LEFT; }); + __webpack_require__.d(__webpack_exports__, "MAX_VALUE", function() { return MAX_VALUE; }); + __webpack_require__.d(__webpack_exports__, "MIN_VALUE", function() { return MIN_VALUE; }); + __webpack_require__.d(__webpack_exports__, "NONE", function() { return NONE; }); + __webpack_require__.d(__webpack_exports__, "NOTE_CLICK", function() { return NOTE_CLICK; }); + __webpack_require__.d(__webpack_exports__, "NOTE_HOVER", function() { return NOTE_HOVER; }); + __webpack_require__.d(__webpack_exports__, "NOTE_LEAVE", function() { return NOTE_LEAVE; }); + __webpack_require__.d(__webpack_exports__, "OBJECT", function() { return OBJECT; }); + __webpack_require__.d(__webpack_exports__, "OUTSIDE", function() { return OUTSIDE; }); + __webpack_require__.d(__webpack_exports__, "RIGHT", function() { return RIGHT; }); + __webpack_require__.d(__webpack_exports__, "START", function() { return START; }); + __webpack_require__.d(__webpack_exports__, "STRING", function() { return STRING; }); + __webpack_require__.d(__webpack_exports__, "TOP", function() { return TOP; }); + __webpack_require__.d(__webpack_exports__, "TRIANGLE", function() { return TRIANGLE; }); + __webpack_require__.d(__webpack_exports__, "VALUE", function() { return VALUE; }); + __webpack_require__.d(__webpack_exports__, "WHITE", function() { return WHITE; }); + __webpack_require__.d(__webpack_exports__, "WIDTH", function() { return WIDTH; }); + __webpack_require__.d(__webpack_exports__, "X", function() { return X; }); + __webpack_require__.d(__webpack_exports__, "Y", function() { return Y; }); +var ARC = "arc"; +var AXIS_LABEL_CLICK = "axisLabelClick"; +var BLACK = "#000"; +var BOTTOM = "bottom"; +var CENTER = "center"; +var CIRCLE = "circle"; +var COORD_PRECISION = 3; +var CROSS = "cross"; +var DATE = "date"; +var DEFAULT_FONT = "12px sans-serif"; +var DEFAULT_HEIGHT = 400; +var DEFAULT_PRECISION = 10; +var DEFAULT_WIDTH = 600; +var END = "end"; +var FORMAT_REGEX = /\{\d+:?/; +var HEIGHT = "height"; +var HIGHLIGHT_ZINDEX = 100; +var INSIDE = "inside"; +var LEFT = "left"; +var MAX_VALUE = Number.MAX_VALUE; +var MIN_VALUE = -Number.MAX_VALUE; +var NONE = "none"; +var NOTE_CLICK = "noteClick"; +var NOTE_HOVER = "noteHover"; +var NOTE_LEAVE = "noteLeave"; +var OBJECT = "object"; +var OUTSIDE = "outside"; +var RIGHT = "right"; +var START = "start"; +var STRING = "string"; +var TOP = "top"; +var TRIANGLE = "triangle"; +var VALUE = "value"; +var WHITE = "#fff"; +var WIDTH = "width"; +var X = "x"; +var Y = "y"; + + + + }), + + "./node_modules/@progress/kendo-charts/dist/es/common/convertable-to-number.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return convertableToNumber; }); + var _is_number__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/is-number.js"); + var _is_string__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/is-string.js"); + + + +function convertableToNumber(value) { + return Object(_is_number__WEBPACK_IMPORTED_MODULE_0__["default"])(value) || (Object(_is_string__WEBPACK_IMPORTED_MODULE_1__["default"])(value) && isFinite(value)); +} + + }), + + "./node_modules/@progress/kendo-charts/dist/es/common/deep-extend.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return deepExtend; }); + var _is_function__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/is-function.js"); + + +var OBJECT = "object"; +var UNDEFINED = "undefined"; + +function deepExtendOne(destination, source) { + + for (var property in source) { + var propValue = source[property]; + var propType = typeof propValue; + + var propInit = (void 0); + if (propType === OBJECT && propValue !== null) { + propInit = propValue.constructor; + } else { + propInit = null; + } + + if (propInit && propInit !== Array) { + + if (propValue instanceof Date) { + destination[property] = new Date(propValue.getTime()); + } else if (Object(_is_function__WEBPACK_IMPORTED_MODULE_0__["default"])(propValue.clone)) { + destination[property] = propValue.clone(); + } else { + var destProp = destination[property]; + if (typeof (destProp) === OBJECT) { + destination[property] = destProp || {}; + } else { + destination[property] = {}; + } + deepExtendOne(destination[property], propValue); + } + } else if (propType !== UNDEFINED) { + destination[property] = propValue; + } + } + + return destination; +} + +function deepExtend(destination) { + var arguments$1 = arguments; + + var length = arguments.length; + + for (var i = 1; i < length; i++) { + deepExtendOne(destination, arguments$1[i]); + } + + return destination; +} + + }), + + "./node_modules/@progress/kendo-charts/dist/es/common/element-styles.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return elementStyles; }); + var _is_object__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/is-object.js"); + var _is_array__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/is-array.js"); + var _is_string__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/is-string.js"); + var _style_value__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/style-value.js"); + + + + + +var SIZE_STYLES_REGEX = /width|height|top|left|bottom|right/i; + +function isSizeField(field) { + return SIZE_STYLES_REGEX.test(field); +} + +function elementStyles(element, styles) { + var stylesArray = Object(_is_string__WEBPACK_IMPORTED_MODULE_2__["default"])(styles) ? [ styles ] : styles; + + if (Object(_is_array__WEBPACK_IMPORTED_MODULE_1__["default"])(stylesArray)) { + var result = {}; + var style = window.getComputedStyle(element); + + for (var idx = 0; idx < stylesArray.length; idx++) { + var field = stylesArray[idx]; + result[field] = isSizeField(field) ? parseFloat(style[field]) : style[field]; + } + + return result; + } else if (Object(_is_object__WEBPACK_IMPORTED_MODULE_0__["default"])(styles)) { + for (var field$1 in styles) { + element.style[field$1] = Object(_style_value__WEBPACK_IMPORTED_MODULE_3__["default"])(styles[field$1]); + } + } +} + + }), + + "./node_modules/@progress/kendo-charts/dist/es/common/find.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return find; }); +function find(array, predicate) { + for (var i = 0; i < array.length; i++) { + var item = array[i]; + if (predicate(item, i, array)) { + return item; + } + } +} + + + }), + + "./node_modules/@progress/kendo-charts/dist/es/common/font-loader.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _drawing_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/drawing-utils.js"); + + +var FontLoader = function FontLoader () {}; + +FontLoader.fetchFonts = function fetchFonts (options, fonts, state) { + if ( state === void 0 ) state = { depth: 0 }; + + var MAX_DEPTH = 5; + + if (!options || state.depth > MAX_DEPTH || !document.fonts) { + return; + } + + Object.keys(options).forEach(function(key) { + var value = options[key]; + if (key === "dataSource" || key[0] === "$" || !value) { + return; + } + + if (key === "font") { + fonts.push(value); + } else if (typeof value === "object") { + state.depth++; + FontLoader.fetchFonts(value, fonts, state); + state.depth--; + } + }); +}; + +FontLoader.loadFonts = function loadFonts (fonts, callback) { + var promises = []; + + if (fonts.length > 0 && document.fonts) { + try { + promises = fonts.map(function(font) { + return document.fonts.load(font); + }); + } catch (e) { + // Silence font-loading errors + Object(_drawing_utils__WEBPACK_IMPORTED_MODULE_0__["logToConsole"])(e); + } + + Promise.all(promises).then(callback, callback); + } else { + callback(); + } +}; + +FontLoader.preloadFonts = function preloadFonts (options, callback) { + var fonts = []; + FontLoader.fetchFonts(options, fonts); + + FontLoader.loadFonts(fonts, callback); +}; + + __webpack_exports__["default"] = (FontLoader); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/common/get-spacing.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return getSpacing; }); + var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + + +function getSpacing(value, defaultSpacing) { + if ( defaultSpacing === void 0 ) defaultSpacing = 0; + + var spacing = { top: 0, right: 0, bottom: 0, left: 0 }; + + if (typeof(value) === "number") { + spacing[_constants__WEBPACK_IMPORTED_MODULE_0__["TOP"]] = spacing[_constants__WEBPACK_IMPORTED_MODULE_0__["RIGHT"]] = spacing[_constants__WEBPACK_IMPORTED_MODULE_0__["BOTTOM"]] = spacing[_constants__WEBPACK_IMPORTED_MODULE_0__["LEFT"]] = value; + } else { + spacing[_constants__WEBPACK_IMPORTED_MODULE_0__["TOP"]] = value[_constants__WEBPACK_IMPORTED_MODULE_0__["TOP"]] || defaultSpacing; + spacing[_constants__WEBPACK_IMPORTED_MODULE_0__["RIGHT"]] = value[_constants__WEBPACK_IMPORTED_MODULE_0__["RIGHT"]] || defaultSpacing; + spacing[_constants__WEBPACK_IMPORTED_MODULE_0__["BOTTOM"]] = value[_constants__WEBPACK_IMPORTED_MODULE_0__["BOTTOM"]] || defaultSpacing; + spacing[_constants__WEBPACK_IMPORTED_MODULE_0__["LEFT"]] = value[_constants__WEBPACK_IMPORTED_MODULE_0__["LEFT"]] || defaultSpacing; + } + + return spacing; +} + + }), + + "./node_modules/@progress/kendo-charts/dist/es/common/get-template.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return getTemplate; }); + var _services__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/services.js"); + var _is_function__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/is-function.js"); + + + +function getTemplate(options) { + if ( options === void 0 ) options = {}; + + var template; + if (options.template) { + options.template = template = _services__WEBPACK_IMPORTED_MODULE_0__["TemplateService"].compile(options.template); + } else if (Object(_is_function__WEBPACK_IMPORTED_MODULE_1__["default"])(options.content)) { + template = options.content; + } + + return template; +} + + }), + + "./node_modules/@progress/kendo-charts/dist/es/common/getter.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return getter; }); + var _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/main.js"); + + +var FIELD_REGEX = /\[(?:(\d+)|['"](.*?)['"])\]|((?:(?!\[.*?\]|\.).)+)/g; +var getterCache = {}; + +getterCache['undefined'] = function(obj) { + return obj; +}; + +function getter(field) { + if (getterCache[field]) { + return getterCache[field]; + } + + var fields = []; + field.replace(FIELD_REGEX, function(match, index, indexAccessor, field) { + fields.push(_progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].util.defined(index) ? index : (indexAccessor || field)); + }); + + getterCache[field] = function(obj) { + var result = obj; + for (var idx = 0; idx < fields.length && result; idx++) { + result = result[fields[idx]]; + } + + return result; + }; + + return getterCache[field]; +} + + }), + + "./node_modules/@progress/kendo-charts/dist/es/common/grep.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return grep; }); +function grep(array, callback) { + var length = array.length; + var result = []; + for (var idx = 0; idx < length; idx++) { + if (callback(array[idx])) { + result .push(array[idx]); + } + } + + return result; +} + + }), + + "./node_modules/@progress/kendo-charts/dist/es/common/has-classes.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return hasClasses; }); +function hasClasses(element, classNames) { + if (element.className) { + var names = classNames.split(" "); + for (var idx = 0; idx < names.length; idx++) { + if (element.className.indexOf(names[idx]) !== -1) { + return true; + } + } + } +} + + }), + + "./node_modules/@progress/kendo-charts/dist/es/common/hash-map.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + +var HashMap = function HashMap() { + this._map = {}; +}; + +HashMap.prototype.get = function get (name) { + return this._map[this._key(name)]; +}; + +HashMap.prototype.set = function set (name, value) { + this._map[this._key(name)] = value; +}; + +HashMap.prototype._key = function _key (name) { + return name instanceof Date ? name.getTime() : name; +}; + + __webpack_exports__["default"] = (HashMap); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/common/in-array.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return inArray; }); +function inArray(value, array) { + if (array) { + return array.indexOf(value) !== -1; + } +} + + }), + + "./node_modules/@progress/kendo-charts/dist/es/common/instance-observer.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _deep_extend__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/deep-extend.js"); + + +var TRIGGER = 'trigger'; + +var InstanceObserver = function InstanceObserver(observer, handlers) { + this.observer = observer; + this.handlerMap = Object(_deep_extend__WEBPACK_IMPORTED_MODULE_0__["default"])({}, this.handlerMap, handlers); +}; + +InstanceObserver.prototype.trigger = function trigger (name, args) { + var ref = this; + var observer = ref.observer; + var handlerMap = ref.handlerMap; + var isDefaultPrevented; + if (handlerMap[name]) { + isDefaultPrevented = this.callObserver(handlerMap[name], args); + } else if (observer[TRIGGER]) { + isDefaultPrevented = this.callObserver(TRIGGER, name, args); + } + + return isDefaultPrevented; +}; + +InstanceObserver.prototype.callObserver = function callObserver (fnName) { + var args = [], len = arguments.length - 1; + while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ]; + + return this.observer[fnName].apply(this.observer, args); +}; + +InstanceObserver.prototype.requiresHandlers = function requiresHandlers (names) { + var this$1 = this; + + if (this.observer.requiresHandlers) { + return this.observer.requiresHandlers(names); + } + + for (var idx = 0; idx < names.length; idx++) { + if (this$1.handlerMap[names[idx]]) { + return true; + } + } +}; + + __webpack_exports__["default"] = (InstanceObserver); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/common/interpolate-value.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return interpolateValue; }); + var _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/main.js"); + var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + + + +function interpolateValue(start, end, progress) { + return _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].util.round(start + (end - start) * progress, _constants__WEBPACK_IMPORTED_MODULE_1__["COORD_PRECISION"]); +} + + }), + + "./node_modules/@progress/kendo-charts/dist/es/common/is-array.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return isArray; }); +function isArray(value) { + return Array.isArray(value); +} + + }), + + "./node_modules/@progress/kendo-charts/dist/es/common/is-function.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return isFunction; }); +function isFunction(fn) { + return typeof fn === "function"; +} + + }), + + "./node_modules/@progress/kendo-charts/dist/es/common/is-number.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return isNumber; }); +function isNumber(value) { + return typeof value === "number" && !isNaN(value); +} + + }), + + "./node_modules/@progress/kendo-charts/dist/es/common/is-object.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return isObject; }); +function isObject(value) { + return typeof value === "object"; +} + + }), + + "./node_modules/@progress/kendo-charts/dist/es/common/is-string.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return isString; }); + var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + + +function isString(value) { + return typeof value === _constants__WEBPACK_IMPORTED_MODULE_0__["STRING"]; +} + + }), + + "./node_modules/@progress/kendo-charts/dist/es/common/map.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return map; }); + var _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/main.js"); + + +function map(array, callback) { + var length = array.length; + var result = []; + for (var idx = 0; idx < length; idx++) { + var value = callback(array[idx]); + if (_progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].util.defined(value)) { + result.push(value); + } + } + return result; +} + + }), + + "./node_modules/@progress/kendo-charts/dist/es/common/mousewheel-delta.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return mousewheelDelta; }); + var _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/main.js"); + + +function mousewheelDelta(e) { + var delta = 0; + + if (e.wheelDelta) { + delta = -e.wheelDelta / 120; + delta = delta > 0 ? Math.ceil(delta) : Math.floor(delta); + } + + if (e.detail) { + delta = _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].util.round(e.detail / 3); + } + + return delta; +} + + }), + + "./node_modules/@progress/kendo-charts/dist/es/common/remove-class.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return removeClass; }); +var SPACE_REGEX = /\s+/g; + +function removeClass(element, className) { + if (element && element.className) { + element.className = element.className.replace(className, "").replace(SPACE_REGEX, " "); + } +} + + }), + + "./node_modules/@progress/kendo-charts/dist/es/common/set-default-options.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return setDefaultOptions; }); + var _deep_extend__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/deep-extend.js"); + + +function setDefaultOptions(type, options) { + var proto = type.prototype; + if (proto.options) { + proto.options = Object(_deep_extend__WEBPACK_IMPORTED_MODULE_0__["default"])({}, proto.options, options); + } else { + proto.options = options; + } +} + + }), + + "./node_modules/@progress/kendo-charts/dist/es/common/sparse-array-limits.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return sparseArrayLimits; }); + var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + + +function sparseArrayLimits(arr) { + var min = _constants__WEBPACK_IMPORTED_MODULE_0__["MAX_VALUE"]; + var max = _constants__WEBPACK_IMPORTED_MODULE_0__["MIN_VALUE"]; + + for (var idx = 0, length = arr.length; idx < length; idx++) { + var value = arr[idx]; + if (value !== null && isFinite(value)) { + min = Math.min(min, value); + max = Math.max(max, value); + } + } + + return { + min: min === _constants__WEBPACK_IMPORTED_MODULE_0__["MAX_VALUE"] ? undefined : min, + max: max === _constants__WEBPACK_IMPORTED_MODULE_0__["MIN_VALUE"] ? undefined : max + }; +} + + }), + + "./node_modules/@progress/kendo-charts/dist/es/common/style-value.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return styleValue; }); + var _is_number__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/is-number.js"); + + +function styleValue(value) { + if (Object(_is_number__WEBPACK_IMPORTED_MODULE_0__["default"])(value)) { + return value + "px"; + } + return value; +} + + }), + + "./node_modules/@progress/kendo-charts/dist/es/core.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _core_utils_auto_major_unit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/utils/auto-major-unit.js"); + __webpack_require__.d(__webpack_exports__, "autoMajorUnit", function() { return _core_utils_auto_major_unit__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + + var _core_point__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/point.js"); + __webpack_require__.d(__webpack_exports__, "Point", function() { return _core_point__WEBPACK_IMPORTED_MODULE_1__["default"]; }); + + var _core_box__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/box.js"); + __webpack_require__.d(__webpack_exports__, "Box", function() { return _core_box__WEBPACK_IMPORTED_MODULE_2__["default"]; }); + + var _core_ring__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/ring.js"); + __webpack_require__.d(__webpack_exports__, "Ring", function() { return _core_ring__WEBPACK_IMPORTED_MODULE_3__["default"]; }); + + var _core_sector__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/sector.js"); + __webpack_require__.d(__webpack_exports__, "Sector", function() { return _core_sector__WEBPACK_IMPORTED_MODULE_4__["default"]; }); + + var _core_shape_builder__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/shape-builder.js"); + __webpack_require__.d(__webpack_exports__, "ShapeBuilder", function() { return _core_shape_builder__WEBPACK_IMPORTED_MODULE_5__["default"]; }); + + var _core_shape_element__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/shape-element.js"); + __webpack_require__.d(__webpack_exports__, "ShapeElement", function() { return _core_shape_element__WEBPACK_IMPORTED_MODULE_6__["default"]; }); + + var _core_chart_element__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/chart-element.js"); + __webpack_require__.d(__webpack_exports__, "ChartElement", function() { return _core_chart_element__WEBPACK_IMPORTED_MODULE_7__["default"]; }); + + var _core_box_element__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/box-element.js"); + __webpack_require__.d(__webpack_exports__, "BoxElement", function() { return _core_box_element__WEBPACK_IMPORTED_MODULE_8__["default"]; }); + + var _core_root_element__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/root-element.js"); + __webpack_require__.d(__webpack_exports__, "RootElement", function() { return _core_root_element__WEBPACK_IMPORTED_MODULE_9__["default"]; }); + + var _core_float_element__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/float-element.js"); + __webpack_require__.d(__webpack_exports__, "FloatElement", function() { return _core_float_element__WEBPACK_IMPORTED_MODULE_10__["default"]; }); + + var _core_text__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/text.js"); + __webpack_require__.d(__webpack_exports__, "Text", function() { return _core_text__WEBPACK_IMPORTED_MODULE_11__["default"]; }); + + var _core_text_box__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/text-box.js"); + __webpack_require__.d(__webpack_exports__, "TextBox", function() { return _core_text_box__WEBPACK_IMPORTED_MODULE_12__["default"]; }); + + var _core_title__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/title.js"); + __webpack_require__.d(__webpack_exports__, "Title", function() { return _core_title__WEBPACK_IMPORTED_MODULE_13__["default"]; }); + + var _core_axis_label__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/axis-label.js"); + __webpack_require__.d(__webpack_exports__, "AxisLabel", function() { return _core_axis_label__WEBPACK_IMPORTED_MODULE_14__["default"]; }); + + var _core_axis__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/axis.js"); + __webpack_require__.d(__webpack_exports__, "Axis", function() { return _core_axis__WEBPACK_IMPORTED_MODULE_15__["default"]; }); + + var _core_note__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/note.js"); + __webpack_require__.d(__webpack_exports__, "Note", function() { return _core_note__WEBPACK_IMPORTED_MODULE_16__["default"]; }); + + var _core_category_axis__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/category-axis.js"); + __webpack_require__.d(__webpack_exports__, "CategoryAxis", function() { return _core_category_axis__WEBPACK_IMPORTED_MODULE_17__["default"]; }); + + var _core_date_category_axis__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/date-category-axis.js"); + __webpack_require__.d(__webpack_exports__, "DateCategoryAxis", function() { return _core_date_category_axis__WEBPACK_IMPORTED_MODULE_18__["default"]; }); + + var _core_date_value_axis__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/date-value-axis.js"); + __webpack_require__.d(__webpack_exports__, "DateValueAxis", function() { return _core_date_value_axis__WEBPACK_IMPORTED_MODULE_19__["default"]; }); + + var _core_numeric_axis__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/numeric-axis.js"); + __webpack_require__.d(__webpack_exports__, "NumericAxis", function() { return _core_numeric_axis__WEBPACK_IMPORTED_MODULE_20__["default"]; }); + + var _core_logarithmic_axis__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/logarithmic-axis.js"); + __webpack_require__.d(__webpack_exports__, "LogarithmicAxis", function() { return _core_logarithmic_axis__WEBPACK_IMPORTED_MODULE_21__["default"]; }); + + var _core_polar_axis__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/polar-axis.js"); + __webpack_require__.d(__webpack_exports__, "PolarAxis", function() { return _core_polar_axis__WEBPACK_IMPORTED_MODULE_22__["default"]; }); + + var _core_radar_category_axis__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/radar-category-axis.js"); + __webpack_require__.d(__webpack_exports__, "RadarCategoryAxis", function() { return _core_radar_category_axis__WEBPACK_IMPORTED_MODULE_23__["default"]; }); + + var _core_radar_numeric_axis__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/radar-numeric-axis.js"); + __webpack_require__.d(__webpack_exports__, "RadarNumericAxis", function() { return _core_radar_numeric_axis__WEBPACK_IMPORTED_MODULE_24__["default"]; }); + + var _core_radar_logarithmic_axis__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/radar-logarithmic-axis.js"); + __webpack_require__.d(__webpack_exports__, "RadarLogarithmicAxis", function() { return _core_radar_logarithmic_axis__WEBPACK_IMPORTED_MODULE_25__["default"]; }); + + var _core_curve_processor__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/curve-processor.js"); + __webpack_require__.d(__webpack_exports__, "CurveProcessor", function() { return _core_curve_processor__WEBPACK_IMPORTED_MODULE_26__["default"]; }); + + var _core_gradients__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/gradients.js"); + __webpack_require__.d(__webpack_exports__, "Gradients", function() { return _core_gradients__WEBPACK_IMPORTED_MODULE_27__["default"]; }); + + var _core_utils_rect_to_box__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/utils/rect-to-box.js"); + __webpack_require__.d(__webpack_exports__, "rectToBox", function() { return _core_utils_rect_to_box__WEBPACK_IMPORTED_MODULE_28__["default"]; }); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + }), + + "./node_modules/@progress/kendo-charts/dist/es/core/axis-label.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/main.js"); + var _text_box__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/text-box.js"); + var _box__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/box.js"); + var _utils_rect_to_box__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/utils/rect-to-box.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + + + + + + + + +var AxisLabel = (function (TextBox) { + function AxisLabel(value, text, index, dataItem, options) { + TextBox.call(this, text, options); + + this.text = text; + this.value = value; + this.index = index; + this.dataItem = dataItem; + this.reflow(new _box__WEBPACK_IMPORTED_MODULE_2__["default"]()); + } + + if ( TextBox ) AxisLabel.__proto__ = TextBox; + AxisLabel.prototype = Object.create( TextBox && TextBox.prototype ); + AxisLabel.prototype.constructor = AxisLabel; + + AxisLabel.prototype.visualContext = function visualContext (targetBox) { + var context = TextBox.prototype.visualContext.call(this, targetBox); + + context.value = this.value; + context.dataItem = this.dataItem; + context.format = this.options.format; + context.culture = this.options.culture; + + return context; + }; + + AxisLabel.prototype.click = function click (widget, e) { + + widget.trigger(_common_constants__WEBPACK_IMPORTED_MODULE_4__["AXIS_LABEL_CLICK"], { + element: Object(_common__WEBPACK_IMPORTED_MODULE_5__["eventElement"])(e), + value: this.value, + text: this.text, + index: this.index, + dataItem: this.dataItem, + axis: this.parent.options + }); + }; + + AxisLabel.prototype.rotate = function rotate () { + if (this.options.alignRotation !== _common_constants__WEBPACK_IMPORTED_MODULE_4__["CENTER"]) { + var box = this.normalBox.toRect(); + var transform = this.rotationTransform(); + + this.box = Object(_utils_rect_to_box__WEBPACK_IMPORTED_MODULE_3__["default"])(box.bbox(transform.matrix())); + } else { + TextBox.prototype.rotate.call(this); + } + + return this.box; + }; + + AxisLabel.prototype.rotationTransform = function rotationTransform () { + var options = this.options; + var rotation = options.rotation; + if (!rotation) { + return null; + } + + if (options.alignRotation === _common_constants__WEBPACK_IMPORTED_MODULE_4__["CENTER"]) { + return TextBox.prototype.rotationTransform.call(this); + } + + var rotationMatrix = _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].transform().rotate(rotation).matrix(); + var box = this.normalBox.toRect(); + var rect = this.targetBox.toRect(); + + var rotationOrigin = options.rotationOrigin || _common_constants__WEBPACK_IMPORTED_MODULE_4__["TOP"]; + var alignAxis = rotationOrigin === _common_constants__WEBPACK_IMPORTED_MODULE_4__["TOP"] || rotationOrigin === _common_constants__WEBPACK_IMPORTED_MODULE_4__["BOTTOM"] ? _common_constants__WEBPACK_IMPORTED_MODULE_4__["X"] : _common_constants__WEBPACK_IMPORTED_MODULE_4__["Y"]; + var distanceAxis = rotationOrigin === _common_constants__WEBPACK_IMPORTED_MODULE_4__["TOP"] || rotationOrigin === _common_constants__WEBPACK_IMPORTED_MODULE_4__["BOTTOM"] ? _common_constants__WEBPACK_IMPORTED_MODULE_4__["Y"] : _common_constants__WEBPACK_IMPORTED_MODULE_4__["X"]; + var axisAnchor = rotationOrigin === _common_constants__WEBPACK_IMPORTED_MODULE_4__["TOP"] || rotationOrigin === _common_constants__WEBPACK_IMPORTED_MODULE_4__["LEFT"] ? rect.origin : rect.bottomRight(); + + var topLeft = box.topLeft().transformCopy(rotationMatrix); + var topRight = box.topRight().transformCopy(rotationMatrix); + var bottomRight = box.bottomRight().transformCopy(rotationMatrix); + var bottomLeft = box.bottomLeft().transformCopy(rotationMatrix); + var rotatedBox = _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].Rect.fromPoints(topLeft, topRight, bottomRight, bottomLeft); + + var translate = {}; + translate[distanceAxis] = rect.origin[distanceAxis] - rotatedBox.origin[distanceAxis]; + + var distanceLeft = Math.abs(topLeft[distanceAxis] + translate[distanceAxis] - axisAnchor[distanceAxis]); + var distanceRight = Math.abs(topRight[distanceAxis] + translate[distanceAxis] - axisAnchor[distanceAxis]); + + var alignStart, alignEnd; + + if (Object(_common__WEBPACK_IMPORTED_MODULE_5__["round"])(distanceLeft, _common_constants__WEBPACK_IMPORTED_MODULE_4__["DEFAULT_PRECISION"]) === Object(_common__WEBPACK_IMPORTED_MODULE_5__["round"])(distanceRight, _common_constants__WEBPACK_IMPORTED_MODULE_4__["DEFAULT_PRECISION"])) { + alignStart = topLeft; + alignEnd = topRight; + } else if (distanceRight < distanceLeft) { + alignStart = topRight; + alignEnd = bottomRight; + } else { + alignStart = topLeft; + alignEnd = bottomLeft; + } + + var alignCenter = alignStart[alignAxis] + (alignEnd[alignAxis] - alignStart[alignAxis]) / 2; + translate[alignAxis] = rect.center()[alignAxis] - alignCenter; + + return _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].transform() + .translate(translate.x, translate.y) + .rotate(rotation); + }; + + return AxisLabel; +}(_text_box__WEBPACK_IMPORTED_MODULE_1__["default"])); + +Object(_common__WEBPACK_IMPORTED_MODULE_5__["setDefaultOptions"])(AxisLabel, { + _autoReflow: false +}); + + __webpack_exports__["default"] = (AxisLabel); + + + }), + + "./node_modules/@progress/kendo-charts/dist/es/core/axis.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/main.js"); + var _chart_element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/chart-element.js"); + var _text_box__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/text-box.js"); + var _axis_label__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/axis-label.js"); + var _note__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/note.js"); + var _box__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/box.js"); + var _services__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/services.js"); + var _utils_create_axis_tick__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/utils/create-axis-tick.js"); + var _utils_create_axis_grid_line__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/utils/create-axis-grid-line.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + + + + + + + + + + + + +var Axis = (function (ChartElement) { + function Axis(options, chartService) { + if ( chartService === void 0 ) chartService = new _services__WEBPACK_IMPORTED_MODULE_6__["ChartService"](); + + ChartElement.call(this, options); + + this.chartService = chartService; + + if (!this.options.visible) { + this.options = Object(_common__WEBPACK_IMPORTED_MODULE_10__["deepExtend"])({}, this.options, { + labels: { + visible: false + }, + line: { + visible: false + }, + margin: 0, + majorTickSize: 0, + minorTickSize: 0 + }); + } + + this.options.minorTicks = Object(_common__WEBPACK_IMPORTED_MODULE_10__["deepExtend"])({}, { + color: this.options.line.color, + width: this.options.line.width, + visible: this.options.minorTickType !== _common_constants__WEBPACK_IMPORTED_MODULE_9__["NONE"] + }, this.options.minorTicks, { + size: this.options.minorTickSize, + align: this.options.minorTickType + }); + + this.options.majorTicks = Object(_common__WEBPACK_IMPORTED_MODULE_10__["deepExtend"])({}, { + color: this.options.line.color, + width: this.options.line.width, + visible: this.options.majorTickType !== _common_constants__WEBPACK_IMPORTED_MODULE_9__["NONE"] + }, this.options.majorTicks, { + size: this.options.majorTickSize, + align: this.options.majorTickType + }); + + this.initFields(); + + if (!this.options._deferLabels) { + this.createLabels(); + } + + this.createTitle(); + this.createNotes(); + } + + if ( ChartElement ) Axis.__proto__ = ChartElement; + Axis.prototype = Object.create( ChartElement && ChartElement.prototype ); + Axis.prototype.constructor = Axis; + + Axis.prototype.initFields = function initFields () { + }; + + // abstract labelsCount(): Number + // abstract createAxisLabel(index, options): AxisLabel + + Axis.prototype.labelsRange = function labelsRange () { + return { + min: this.options.labels.skip, + max: this.labelsCount() + }; + }; + + Axis.prototype.createLabels = function createLabels () { + var this$1 = this; + + var options = this.options; + var align = options.vertical ? _common_constants__WEBPACK_IMPORTED_MODULE_9__["RIGHT"] : _common_constants__WEBPACK_IMPORTED_MODULE_9__["CENTER"]; + var labelOptions = Object(_common__WEBPACK_IMPORTED_MODULE_10__["deepExtend"])({ }, options.labels, { + align: align, + zIndex: options.zIndex + }); + var step = Math.max(1, labelOptions.step); + + this.clearLabels(); + + if (labelOptions.visible) { + var range = this.labelsRange(); + var rotation = labelOptions.rotation; + + if (Object(_common__WEBPACK_IMPORTED_MODULE_10__["isObject"])(rotation)) { + labelOptions.alignRotation = rotation.align; + labelOptions.rotation = rotation.angle; + } + + if (labelOptions.rotation === "auto") { + labelOptions.rotation = 0; + options.autoRotateLabels = true; + } + + for (var idx = range.min; idx < range.max; idx += step) { + var label = this$1.createAxisLabel(idx, labelOptions); + if (label) { + this$1.append(label); + this$1.labels.push(label); + } + } + } + }; + + Axis.prototype.clearLabels = function clearLabels () { + this.children = Object(_common__WEBPACK_IMPORTED_MODULE_10__["grep"])(this.children, function (child) { return !(child instanceof _axis_label__WEBPACK_IMPORTED_MODULE_3__["default"]); }); + this.labels = []; + }; + + Axis.prototype.clearTitle = function clearTitle () { + var this$1 = this; + + if (this.title) { + this.children = Object(_common__WEBPACK_IMPORTED_MODULE_10__["grep"])(this.children, function (child) { return child !== this$1.title; }); + this.title = undefined; + } + }; + + Axis.prototype.clear = function clear () { + this.clearLabels(); + this.clearTitle(); + }; + + Axis.prototype.lineBox = function lineBox () { + var ref = this; + var options = ref.options; + var box = ref.box; + var vertical = options.vertical; + var mirror = options.labels.mirror; + var axisX = mirror ? box.x1 : box.x2; + var axisY = mirror ? box.y2 : box.y1; + var lineWidth = options.line.width || 0; + + return vertical ? + new _box__WEBPACK_IMPORTED_MODULE_5__["default"](axisX, box.y1, axisX, box.y2 - lineWidth) : + new _box__WEBPACK_IMPORTED_MODULE_5__["default"](box.x1, axisY, box.x2 - lineWidth, axisY); + }; + + Axis.prototype.createTitle = function createTitle () { + var options = this.options; + var titleOptions = Object(_common__WEBPACK_IMPORTED_MODULE_10__["deepExtend"])({ + rotation: options.vertical ? -90 : 0, + text: "", + zIndex: 1, + visualSize: true + }, options.title); + + if (titleOptions.visible && titleOptions.text) { + var title = new _text_box__WEBPACK_IMPORTED_MODULE_2__["default"](titleOptions.text, titleOptions); + this.append(title); + this.title = title; + } + }; + + Axis.prototype.createNotes = function createNotes () { + var this$1 = this; + + var options = this.options; + var notes = options.notes; + var items = notes.data || []; + + this.notes = []; + + for (var i = 0; i < items.length; i++) { + var item = Object(_common__WEBPACK_IMPORTED_MODULE_10__["deepExtend"])({}, notes, items[i]); + item.value = this$1.parseNoteValue(item.value); + + var note = new _note__WEBPACK_IMPORTED_MODULE_4__["default"]({ + value: item.value, + text: item.label.text, + dataItem: item + }, item, this$1.chartService); + + if (note.options.visible) { + if (Object(_common__WEBPACK_IMPORTED_MODULE_10__["defined"])(note.options.position)) { + if (options.vertical && !Object(_common__WEBPACK_IMPORTED_MODULE_10__["inArray"])(note.options.position, [ _common_constants__WEBPACK_IMPORTED_MODULE_9__["LEFT"], _common_constants__WEBPACK_IMPORTED_MODULE_9__["RIGHT"] ])) { + note.options.position = options.reverse ? _common_constants__WEBPACK_IMPORTED_MODULE_9__["LEFT"] : _common_constants__WEBPACK_IMPORTED_MODULE_9__["RIGHT"]; + } else if (!options.vertical && !Object(_common__WEBPACK_IMPORTED_MODULE_10__["inArray"])(note.options.position, [ _common_constants__WEBPACK_IMPORTED_MODULE_9__["TOP"], _common_constants__WEBPACK_IMPORTED_MODULE_9__["BOTTOM"] ])) { + note.options.position = options.reverse ? _common_constants__WEBPACK_IMPORTED_MODULE_9__["BOTTOM"] : _common_constants__WEBPACK_IMPORTED_MODULE_9__["TOP"]; + } + } else { + if (options.vertical) { + note.options.position = options.reverse ? _common_constants__WEBPACK_IMPORTED_MODULE_9__["LEFT"] : _common_constants__WEBPACK_IMPORTED_MODULE_9__["RIGHT"]; + } else { + note.options.position = options.reverse ? _common_constants__WEBPACK_IMPORTED_MODULE_9__["BOTTOM"] : _common_constants__WEBPACK_IMPORTED_MODULE_9__["TOP"]; + } + } + this$1.append(note); + this$1.notes.push(note); + } + } + }; + + Axis.prototype.parseNoteValue = function parseNoteValue (value) { + return value; + }; + + Axis.prototype.renderVisual = function renderVisual () { + ChartElement.prototype.renderVisual.call(this); + + this.createPlotBands(); + }; + + Axis.prototype.createVisual = function createVisual () { + ChartElement.prototype.createVisual.call(this); + + this.createBackground(); + this.createLine(); + }; + + Axis.prototype.gridLinesVisual = function gridLinesVisual () { + var gridLines = this._gridLines; + if (!gridLines) { + gridLines = this._gridLines = new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Group({ + zIndex: -2 + }); + this.appendVisual(this._gridLines); + } + + return gridLines; + }; + + Axis.prototype.createTicks = function createTicks (lineGroup) { + var options = this.options; + var lineBox = this.lineBox(); + var mirror = options.labels.mirror; + var majorUnit = options.majorTicks.visible ? options.majorUnit : 0; + var tickLineOptions = { + // TODO + // _alignLines: options._alignLines, + vertical: options.vertical + }; + + function render(tickPositions, tickOptions, skipUnit) { + var count = tickPositions.length; + var step = Math.max(1, tickOptions.step); + + if (tickOptions.visible) { + for (var i = tickOptions.skip; i < count; i += step) { + if (Object(_common__WEBPACK_IMPORTED_MODULE_10__["defined"])(skipUnit) && (i % skipUnit === 0)) { + continue; + } + + tickLineOptions.tickX = mirror ? lineBox.x2 : lineBox.x2 - tickOptions.size; + tickLineOptions.tickY = mirror ? lineBox.y1 - tickOptions.size : lineBox.y1; + tickLineOptions.position = tickPositions[i]; + + lineGroup.append(Object(_utils_create_axis_tick__WEBPACK_IMPORTED_MODULE_7__["default"])(tickLineOptions, tickOptions)); + } + } + } + + render(this.getMajorTickPositions(), options.majorTicks); + render(this.getMinorTickPositions(), options.minorTicks, majorUnit / options.minorUnit); + }; + + Axis.prototype.createLine = function createLine () { + var options = this.options; + var line = options.line; + var lineBox = this.lineBox(); + + if (line.width > 0 && line.visible) { + var path = new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Path({ + stroke: { + width: line.width, + color: line.color, + dashType: line.dashType + } + + + }); + + path.moveTo(lineBox.x1, lineBox.y1) + .lineTo(lineBox.x2, lineBox.y2); + + if (options._alignLines) { + Object(_common__WEBPACK_IMPORTED_MODULE_10__["alignPathToPixel"])(path); + } + + var group = this._lineGroup = new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Group(); + group.append(path); + + this.visual.append(group); + this.createTicks(group); + } + }; + + Axis.prototype.getActualTickSize = function getActualTickSize () { + var options = this.options; + var tickSize = 0; + + if (options.majorTicks.visible && options.minorTicks.visible) { + tickSize = Math.max(options.majorTicks.size, options.minorTicks.size); + } else if (options.majorTicks.visible) { + tickSize = options.majorTicks.size; + } else if (options.minorTicks.visible) { + tickSize = options.minorTicks.size; + } + + return tickSize; + }; + + Axis.prototype.createBackground = function createBackground () { + var ref = this; + var options = ref.options; + var box = ref.box; + var background = options.background; + + if (background) { + this._backgroundPath = _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Path.fromRect(box.toRect(), { + fill: { + color: background + }, + stroke: null + }); + + this.visual.append(this._backgroundPath); + } + }; + + Axis.prototype.createPlotBands = function createPlotBands () { + var this$1 = this; + + var options = this.options; + var plotBands = options.plotBands || []; + var vertical = options.vertical; + var plotArea = this.plotArea; + + if (plotBands.length === 0) { + return; + } + + var group = this._plotbandGroup = new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Group({ + zIndex: -1 + }); + + var altAxis = Object(_common__WEBPACK_IMPORTED_MODULE_10__["grep"])(this.pane.axes, function (axis) { return axis.options.vertical !== this$1.options.vertical; })[0]; + + for (var idx = 0; idx < plotBands.length; idx++) { + var item = plotBands[idx]; + var slotX = (void 0), slotY = (void 0); + + if (vertical) { + slotX = (altAxis || plotArea.axisX).lineBox(); + slotY = this$1.getSlot(item.from, item.to, true); + } else { + slotX = this$1.getSlot(item.from, item.to, true); + slotY = (altAxis || plotArea.axisY).lineBox(); + } + + if (slotX.width() !== 0 && slotY.height() !== 0) { + var bandRect = new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].Rect( + [ slotX.x1, slotY.y1 ], + [ slotX.width(), slotY.height() ] + ); + + var path = _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Path.fromRect(bandRect, { + fill: { + color: item.color, + opacity: item.opacity + }, + stroke: null + }); + + group.append(path); + } + } + + this.appendVisual(group); + }; + + Axis.prototype.createGridLines = function createGridLines (altAxis) { + var options = this.options; + var minorGridLines = options.minorGridLines; + var majorGridLines = options.majorGridLines; + var minorUnit = options.minorUnit; + var vertical = options.vertical; + var axisLineVisible = altAxis.options.line.visible; + var majorUnit = majorGridLines.visible ? options.majorUnit : 0; + var lineBox = altAxis.lineBox(); + var linePos = lineBox[vertical ? "y1" : "x1"]; + var lineOptions = { + lineStart: lineBox[vertical ? "x1" : "y1"], + lineEnd: lineBox[vertical ? "x2" : "y2"], + vertical: vertical + }; + var majorTicks = []; + + var container = this.gridLinesVisual(); + + function render(tickPositions, gridLine, skipUnit) { + var count = tickPositions.length; + var step = Math.max(1, gridLine.step); + + if (gridLine.visible) { + for (var i = gridLine.skip; i < count; i += step) { + var pos = Object(_common__WEBPACK_IMPORTED_MODULE_10__["round"])(tickPositions[i]); + if (!Object(_common__WEBPACK_IMPORTED_MODULE_10__["inArray"])(pos, majorTicks)) { + if (i % skipUnit !== 0 && (!axisLineVisible || linePos !== pos)) { + lineOptions.position = pos; + container.append(Object(_utils_create_axis_grid_line__WEBPACK_IMPORTED_MODULE_8__["default"])(lineOptions, gridLine)); + + majorTicks.push(pos); + } + } + } + } + } + + render(this.getMajorTickPositions(), majorGridLines); + render(this.getMinorTickPositions(), minorGridLines, majorUnit / minorUnit); + + return container.children; + }; + + Axis.prototype.reflow = function reflow (box) { + var ref = this; + var options = ref.options; + var labels = ref.labels; + var title = ref.title; + var vertical = options.vertical; + var count = labels.length; + var sizeFn = vertical ? _common_constants__WEBPACK_IMPORTED_MODULE_9__["WIDTH"] : _common_constants__WEBPACK_IMPORTED_MODULE_9__["HEIGHT"]; + var titleSize = title ? title.box[sizeFn]() : 0; + var space = this.getActualTickSize() + options.margin + titleSize; + var rootBox = (this.getRoot() || {}).box || box; + var boxSize = rootBox[sizeFn](); + var maxLabelSize = 0; + + for (var i = 0; i < count; i++) { + var labelSize = labels[i].box[sizeFn](); + if (labelSize + space <= boxSize) { + maxLabelSize = Math.max(maxLabelSize, labelSize); + } + } + + if (vertical) { + this.box = new _box__WEBPACK_IMPORTED_MODULE_5__["default"]( + box.x1, box.y1, + box.x1 + maxLabelSize + space, box.y2 + ); + } else { + this.box = new _box__WEBPACK_IMPORTED_MODULE_5__["default"]( + box.x1, box.y1, + box.x2, box.y1 + maxLabelSize + space + ); + } + + this.arrangeTitle(); + this.arrangeLabels(); + this.arrangeNotes(); + }; + + Axis.prototype.getLabelsTickPositions = function getLabelsTickPositions () { + return this.getMajorTickPositions(); + }; + + Axis.prototype.labelTickIndex = function labelTickIndex (label) { + return label.index; + }; + + Axis.prototype.arrangeLabels = function arrangeLabels () { + var this$1 = this; + + var ref = this; + var options = ref.options; + var labels = ref.labels; + var labelsBetweenTicks = this.labelsBetweenTicks(); + var vertical = options.vertical; + var lineBox = this.lineBox(); + var mirror = options.labels.mirror; + var tickPositions = this.getLabelsTickPositions(); + var labelOffset = this.getActualTickSize() + options.margin; + + for (var idx = 0; idx < labels.length; idx++) { + var label = labels[idx]; + var tickIx = this$1.labelTickIndex(label); + var labelSize = vertical ? label.box.height() : label.box.width(); + var labelPos = tickPositions[tickIx] - (labelSize / 2); + var labelBox = (void 0), firstTickPosition = (void 0), nextTickPosition = (void 0); + + if (vertical) { + if (labelsBetweenTicks) { + firstTickPosition = tickPositions[tickIx]; + nextTickPosition = tickPositions[tickIx + 1]; + + var middle = firstTickPosition + (nextTickPosition - firstTickPosition) / 2; + labelPos = middle - (labelSize / 2); + } + + var labelX = lineBox.x2; + + if (mirror) { + labelX += labelOffset; + label.options.rotationOrigin = _common_constants__WEBPACK_IMPORTED_MODULE_9__["LEFT"]; + } else { + labelX -= labelOffset + label.box.width(); + label.options.rotationOrigin = _common_constants__WEBPACK_IMPORTED_MODULE_9__["RIGHT"]; + } + + labelBox = label.box.move(labelX, labelPos); + } else { + if (labelsBetweenTicks) { + firstTickPosition = tickPositions[tickIx]; + nextTickPosition = tickPositions[tickIx + 1]; + } else { + firstTickPosition = labelPos; + nextTickPosition = labelPos + labelSize; + } + + var labelY = lineBox.y1; + + if (mirror) { + labelY -= labelOffset + label.box.height(); + label.options.rotationOrigin = _common_constants__WEBPACK_IMPORTED_MODULE_9__["BOTTOM"]; + } else { + labelY += labelOffset; + label.options.rotationOrigin = _common_constants__WEBPACK_IMPORTED_MODULE_9__["TOP"]; + } + + labelBox = new _box__WEBPACK_IMPORTED_MODULE_5__["default"](firstTickPosition, labelY, + nextTickPosition, labelY + label.box.height()); + } + + label.reflow(labelBox); + } + }; + + Axis.prototype.autoRotateLabels = function autoRotateLabels () { + if (this.options.autoRotateLabels && !this.options.vertical) { + var tickPositions = this.getMajorTickPositions(); + var labels = this.labels; + var angle; + + for (var idx = 0; idx < labels.length; idx++) { + var width = Math.abs(tickPositions[idx + 1] - tickPositions[idx]); + var labelBox = labels[idx].box; + + if (labelBox.width() > width) { + if (labelBox.height() > width) { + angle = -90; + break; + } + angle = -45; + } + } + + if (angle) { + for (var idx$1 = 0; idx$1 < labels.length; idx$1++) { + labels[idx$1].options.rotation = angle; + labels[idx$1].reflow(new _box__WEBPACK_IMPORTED_MODULE_5__["default"]()); + } + return true; + } + } + }; + + Axis.prototype.arrangeTitle = function arrangeTitle () { + var ref = this; + var options = ref.options; + var title = ref.title; + var mirror = options.labels.mirror; + var vertical = options.vertical; + + if (title) { + if (vertical) { + title.options.align = mirror ? _common_constants__WEBPACK_IMPORTED_MODULE_9__["RIGHT"] : _common_constants__WEBPACK_IMPORTED_MODULE_9__["LEFT"]; + title.options.vAlign = title.options.position; + } else { + title.options.align = title.options.position; + title.options.vAlign = mirror ? _common_constants__WEBPACK_IMPORTED_MODULE_9__["TOP"] : _common_constants__WEBPACK_IMPORTED_MODULE_9__["BOTTOM"]; + } + + title.reflow(this.box); + } + }; + + Axis.prototype.arrangeNotes = function arrangeNotes () { + var this$1 = this; + + for (var idx = 0; idx < this.notes.length; idx++) { + var item = this$1.notes[idx]; + var value = item.options.value; + var slot = (void 0); + + if (Object(_common__WEBPACK_IMPORTED_MODULE_10__["defined"])(value)) { + if (this$1.shouldRenderNote(value)) { + item.show(); + } else { + item.hide(); + } + + slot = this$1.noteSlot(value); + } else { + item.hide(); + } + + item.reflow(slot || this$1.lineBox()); + } + }; + + Axis.prototype.noteSlot = function noteSlot (value) { + return this.getSlot(value); + }; + + Axis.prototype.alignTo = function alignTo (secondAxis) { + var lineBox = secondAxis.lineBox(); + var vertical = this.options.vertical; + var pos = vertical ? _common_constants__WEBPACK_IMPORTED_MODULE_9__["Y"] : _common_constants__WEBPACK_IMPORTED_MODULE_9__["X"]; + + this.box.snapTo(lineBox, pos); + if (vertical) { + this.box.shrink(0, this.lineBox().height() - lineBox.height()); + } else { + this.box.shrink(this.lineBox().width() - lineBox.width(), 0); + } + this.box[pos + 1] -= this.lineBox()[pos + 1] - lineBox[pos + 1]; + this.box[pos + 2] -= this.lineBox()[pos + 2] - lineBox[pos + 2]; + }; + + Axis.prototype.axisLabelText = function axisLabelText (value, dataItem, options) { + var tmpl = Object(_common__WEBPACK_IMPORTED_MODULE_10__["getTemplate"])(options); + var text = value; + + if (tmpl) { + text = tmpl({ value: value, dataItem: dataItem, format: options.format, culture: options.culture }); + } else if (options.format) { + text = this.chartService.format.localeAuto(options.format, [ value ], options.culture); + } + + return text; + }; + + Axis.prototype.slot = function slot (from , to, limit) { + var slot = this.getSlot(from, to, limit); + if (slot) { + return slot.toRect(); + } + }; + + Axis.prototype.contentBox = function contentBox () { + var box = this.box.clone(); + var labels = this.labels; + if (labels.length) { + var axis = this.options.vertical ? _common_constants__WEBPACK_IMPORTED_MODULE_9__["Y"] : _common_constants__WEBPACK_IMPORTED_MODULE_9__["X"]; + if (this.chartService.isPannable(axis)) { + var offset = this.maxLabelOffset(); + box[axis + 1] -= offset.start; + box[axis + 2] += offset.end; + } else { + if (labels[0].options.visible) { + box.wrap(labels[0].box); + } + var lastLabel = labels[labels.length - 1]; + if (lastLabel.options.visible) { + box.wrap(lastLabel.box); + } + } + } + + return box; + }; + + Axis.prototype.maxLabelOffset = function maxLabelOffset () { + var this$1 = this; + + var ref = this.options; + var vertical = ref.vertical; + var reverse = ref.reverse; + var labelsBetweenTicks = this.labelsBetweenTicks(); + var tickPositions = this.getLabelsTickPositions(); + var offsetField = vertical ? _common_constants__WEBPACK_IMPORTED_MODULE_9__["Y"] : _common_constants__WEBPACK_IMPORTED_MODULE_9__["X"]; + var labels = this.labels; + var startPosition = reverse ? 1 : 0; + var endPosition = reverse ? 0 : 1; + var maxStartOffset = 0; + var maxEndOffset = 0; + + for (var idx = 0; idx < labels.length; idx++) { + var label = labels[idx]; + var tickIx = this$1.labelTickIndex(label); + var startTick = (void 0), endTick = (void 0); + + if (labelsBetweenTicks) { + startTick = tickPositions[tickIx + startPosition]; + endTick = tickPositions[tickIx + endPosition]; + } else { + startTick = endTick = tickPositions[tickIx]; + } + + maxStartOffset = Math.max(maxStartOffset, startTick - label.box[offsetField + 1]); + maxEndOffset = Math.max(maxEndOffset, label.box[offsetField + 2] - endTick); + } + + return { + start: maxStartOffset, + end: maxEndOffset + }; + }; + + Axis.prototype.limitRange = function limitRange (from, to, min, max, offset) { + var options = this.options; + + if ((from < min && offset < 0 && (!Object(_common__WEBPACK_IMPORTED_MODULE_10__["defined"])(options.min) || options.min <= min)) || (max < to && offset > 0 && (!Object(_common__WEBPACK_IMPORTED_MODULE_10__["defined"])(options.max) || max <= options.max))) { + return null; + } + + if ((to < min && offset > 0) || (max < from && offset < 0)) { + return { + min: from, + max: to + }; + } + + var rangeSize = to - from; + var minValue = from; + var maxValue = to; + + if (from < min && offset < 0) { + minValue = Object(_common__WEBPACK_IMPORTED_MODULE_10__["limitValue"])(from, min, max); + maxValue = Object(_common__WEBPACK_IMPORTED_MODULE_10__["limitValue"])(from + rangeSize, min + rangeSize, max); + } else if (to > max && offset > 0) { + maxValue = Object(_common__WEBPACK_IMPORTED_MODULE_10__["limitValue"])(to, min, max); + minValue = Object(_common__WEBPACK_IMPORTED_MODULE_10__["limitValue"])(to - rangeSize, min, max - rangeSize); + } + + return { + min: minValue, + max: maxValue + }; + }; + + Axis.prototype.valueRange = function valueRange () { + return { + min: this.seriesMin, + max: this.seriesMax + }; + }; + + Axis.prototype.labelsBetweenTicks = function labelsBetweenTicks () { + return !this.options.justified; + }; + + //add legacy fields to the options that are no longer generated by default + Axis.prototype.prepareUserOptions = function prepareUserOptions () { + }; + + return Axis; +}(_chart_element__WEBPACK_IMPORTED_MODULE_1__["default"])); + +Object(_common__WEBPACK_IMPORTED_MODULE_10__["setDefaultOptions"])(Axis, { + labels: { + visible: true, + rotation: 0, + mirror: false, + step: 1, + skip: 0 + }, + line: { + width: 1, + color: _common_constants__WEBPACK_IMPORTED_MODULE_9__["BLACK"], + visible: true + }, + title: { + visible: true, + position: _common_constants__WEBPACK_IMPORTED_MODULE_9__["CENTER"] + }, + majorTicks: { + align: _common_constants__WEBPACK_IMPORTED_MODULE_9__["OUTSIDE"], + size: 4, + skip: 0, + step: 1 + }, + minorTicks: { + align: _common_constants__WEBPACK_IMPORTED_MODULE_9__["OUTSIDE"], + size: 3, + skip: 0, + step: 1 + }, + axisCrossingValue: 0, + majorTickType: _common_constants__WEBPACK_IMPORTED_MODULE_9__["OUTSIDE"], + minorTickType: _common_constants__WEBPACK_IMPORTED_MODULE_9__["NONE"], + majorGridLines: { + skip: 0, + step: 1 + }, + minorGridLines: { + visible: false, + width: 1, + color: _common_constants__WEBPACK_IMPORTED_MODULE_9__["BLACK"], + skip: 0, + step: 1 + }, + // TODO: Move to line or labels options + margin: 5, + visible: true, + reverse: false, + justified: true, + notes: { + label: { + text: "" + } + }, + + _alignLines: true, + _deferLabels: false +}); + + __webpack_exports__["default"] = (Axis); + + + }), + + "./node_modules/@progress/kendo-charts/dist/es/core/box-element.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/main.js"); + var _chart_element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/chart-element.js"); + var _box__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/box.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + + + + + +var BoxElement = (function (ChartElement) { + function BoxElement(options) { + ChartElement.call(this, options); + + this.options.margin = Object(_common__WEBPACK_IMPORTED_MODULE_4__["getSpacing"])(this.options.margin); + this.options.padding = Object(_common__WEBPACK_IMPORTED_MODULE_4__["getSpacing"])(this.options.padding); + } + + if ( ChartElement ) BoxElement.__proto__ = ChartElement; + BoxElement.prototype = Object.create( ChartElement && ChartElement.prototype ); + BoxElement.prototype.constructor = BoxElement; + + BoxElement.prototype.reflow = function reflow (targetBox) { + var this$1 = this; + + var options = this.options; + var width = options.width; + var height = options.height; + var shrinkToFit = options.shrinkToFit; + var hasSetSize = width && height; + var margin = options.margin; + var padding = options.padding; + var borderWidth = options.border.width; + var box; + + var reflowPaddingBox = function () { + this$1.align(targetBox, _common_constants__WEBPACK_IMPORTED_MODULE_3__["X"], options.align); + this$1.align(targetBox, _common_constants__WEBPACK_IMPORTED_MODULE_3__["Y"], options.vAlign); + this$1.paddingBox = box.clone().unpad(margin).unpad(borderWidth); + }; + + var contentBox = targetBox.clone(); + if (hasSetSize) { + contentBox.x2 = contentBox.x1 + width; + contentBox.y2 = contentBox.y1 + height; + } + + if (shrinkToFit) { + contentBox.unpad(margin).unpad(borderWidth).unpad(padding); + } + + ChartElement.prototype.reflow.call(this, contentBox); + + if (hasSetSize) { + box = this.box = new _box__WEBPACK_IMPORTED_MODULE_2__["default"](0, 0, width, height); + } else { + box = this.box; + } + + if (shrinkToFit && hasSetSize) { + reflowPaddingBox(); + contentBox = this.contentBox = this.paddingBox.clone().unpad(padding); + } else { + contentBox = this.contentBox = box.clone(); + box.pad(padding).pad(borderWidth).pad(margin); + reflowPaddingBox(); + } + + this.translateChildren( + box.x1 - contentBox.x1 + margin.left + borderWidth + padding.left, + box.y1 - contentBox.y1 + margin.top + borderWidth + padding.top + ); + + var children = this.children; + for (var i = 0; i < children.length; i++) { + var item = children[i]; + item.reflow(item.box); + } + }; + + BoxElement.prototype.align = function align (targetBox, axis, alignment) { + this.box.align(targetBox, axis, alignment); + }; + + BoxElement.prototype.hasBox = function hasBox () { + var options = this.options; + return options.border.width || options.background; + }; + + BoxElement.prototype.createVisual = function createVisual () { + ChartElement.prototype.createVisual.call(this); + + var options = this.options; + if (options.visible && this.hasBox()) { + this.visual.append(_progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Path.fromRect( + this.paddingBox.toRect(), + this.visualStyle() + )); + } + }; + + BoxElement.prototype.visualStyle = function visualStyle () { + var options = this.options; + var border = options.border || {}; + + return { + stroke: { + width: border.width, + color: border.color, + opacity: Object(_common__WEBPACK_IMPORTED_MODULE_4__["valueOrDefault"])(border.opacity, options.opacity), + dashType: border.dashType + }, + fill: { + color: options.background, + opacity: options.opacity + }, + cursor: options.cursor + }; + }; + + return BoxElement; +}(_chart_element__WEBPACK_IMPORTED_MODULE_1__["default"])); + +Object(_common__WEBPACK_IMPORTED_MODULE_4__["setDefaultOptions"])(BoxElement, { + align: _common_constants__WEBPACK_IMPORTED_MODULE_3__["LEFT"], + vAlign: _common_constants__WEBPACK_IMPORTED_MODULE_3__["TOP"], + margin: {}, + padding: {}, + border: { + color: _common_constants__WEBPACK_IMPORTED_MODULE_3__["BLACK"], + width: 0 + }, + background: "", + shrinkToFit: false, + width: 0, + height: 0, + visible: true +}); + + __webpack_exports__["default"] = (BoxElement); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/core/box.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/main.js"); + var _point__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/point.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + + + + +var Box = (function (Class) { + function Box(x1, y1, x2, y2) { + Class.call(this); + + this.x1 = x1 || 0; + this.y1 = y1 || 0; + this.x2 = x2 || 0; + this.y2 = y2 || 0; + } + + if ( Class ) Box.__proto__ = Class; + Box.prototype = Object.create( Class && Class.prototype ); + Box.prototype.constructor = Box; + + Box.prototype.equals = function equals (box) { + return this.x1 === box.x1 && this.x2 === box.x2 && + this.y1 === box.y1 && this.y2 === box.y2; + }; + + Box.prototype.width = function width () { + return this.x2 - this.x1; + }; + + Box.prototype.height = function height () { + return this.y2 - this.y1; + }; + + Box.prototype.translate = function translate (dx, dy) { + this.x1 += dx; + this.x2 += dx; + this.y1 += dy; + this.y2 += dy; + + return this; + }; + + Box.prototype.move = function move (x, y) { + var height = this.height(); + var width = this.width(); + + if (Object(_common__WEBPACK_IMPORTED_MODULE_3__["defined"])(x)) { + this.x1 = x; + this.x2 = this.x1 + width; + } + + if (Object(_common__WEBPACK_IMPORTED_MODULE_3__["defined"])(y)) { + this.y1 = y; + this.y2 = this.y1 + height; + } + + return this; + }; + + Box.prototype.wrap = function wrap (targetBox) { + this.x1 = Math.min(this.x1, targetBox.x1); + this.y1 = Math.min(this.y1, targetBox.y1); + this.x2 = Math.max(this.x2, targetBox.x2); + this.y2 = Math.max(this.y2, targetBox.y2); + + return this; + }; + + Box.prototype.wrapPoint = function wrapPoint (point) { + var arrayPoint = Object(_common__WEBPACK_IMPORTED_MODULE_3__["isArray"])(point); + var x = arrayPoint ? point[0] : point.x; + var y = arrayPoint ? point[1] : point.y; + this.wrap(new Box(x, y, x, y)); + + return this; + }; + + Box.prototype.snapTo = function snapTo (targetBox, axis) { + + if (axis === _common_constants__WEBPACK_IMPORTED_MODULE_2__["X"] || !axis) { + this.x1 = targetBox.x1; + this.x2 = targetBox.x2; + } + + if (axis === _common_constants__WEBPACK_IMPORTED_MODULE_2__["Y"] || !axis) { + this.y1 = targetBox.y1; + this.y2 = targetBox.y2; + } + + return this; + }; + + Box.prototype.alignTo = function alignTo (targetBox, anchor) { + var height = this.height(); + var width = this.width(); + var axis = anchor === _common_constants__WEBPACK_IMPORTED_MODULE_2__["TOP"] || anchor === _common_constants__WEBPACK_IMPORTED_MODULE_2__["BOTTOM"] ? _common_constants__WEBPACK_IMPORTED_MODULE_2__["Y"] : _common_constants__WEBPACK_IMPORTED_MODULE_2__["X"]; + var offset = axis === _common_constants__WEBPACK_IMPORTED_MODULE_2__["Y"] ? height : width; + + if (anchor === _common_constants__WEBPACK_IMPORTED_MODULE_2__["CENTER"]) { + var targetCenter = targetBox.center(); + var center = this.center(); + + this.x1 += targetCenter.x - center.x; + this.y1 += targetCenter.y - center.y; + } else if (anchor === _common_constants__WEBPACK_IMPORTED_MODULE_2__["TOP"] || anchor === _common_constants__WEBPACK_IMPORTED_MODULE_2__["LEFT"]) { + this[axis + 1] = targetBox[axis + 1] - offset; + } else { + this[axis + 1] = targetBox[axis + 2]; + } + + this.x2 = this.x1 + width; + this.y2 = this.y1 + height; + + return this; + }; + + Box.prototype.shrink = function shrink (dw, dh) { + + this.x2 -= dw; + this.y2 -= dh; + + return this; + }; + + Box.prototype.expand = function expand (dw, dh) { + this.shrink(-dw, -dh); + return this; + }; + + Box.prototype.pad = function pad (padding) { + var spacing = Object(_common__WEBPACK_IMPORTED_MODULE_3__["getSpacing"])(padding); + + this.x1 -= spacing.left; + this.x2 += spacing.right; + this.y1 -= spacing.top; + this.y2 += spacing.bottom; + + return this; + }; + + Box.prototype.unpad = function unpad (padding) { + var spacing = Object(_common__WEBPACK_IMPORTED_MODULE_3__["getSpacing"])(padding); + + spacing.left = -spacing.left; + spacing.top = -spacing.top; + spacing.right = -spacing.right; + spacing.bottom = -spacing.bottom; + + return this.pad(spacing); + }; + + Box.prototype.clone = function clone () { + return new Box(this.x1, this.y1, this.x2, this.y2); + }; + + Box.prototype.center = function center () { + return new _point__WEBPACK_IMPORTED_MODULE_1__["default"]( + this.x1 + this.width() / 2, + this.y1 + this.height() / 2 + ); + }; + + Box.prototype.containsPoint = function containsPoint (point) { + + return point.x >= this.x1 && point.x <= this.x2 && + point.y >= this.y1 && point.y <= this.y2; + }; + + Box.prototype.points = function points () { + return [ + new _point__WEBPACK_IMPORTED_MODULE_1__["default"](this.x1, this.y1), + new _point__WEBPACK_IMPORTED_MODULE_1__["default"](this.x2, this.y1), + new _point__WEBPACK_IMPORTED_MODULE_1__["default"](this.x2, this.y2), + new _point__WEBPACK_IMPORTED_MODULE_1__["default"](this.x1, this.y2) + ]; + }; + + Box.prototype.getHash = function getHash () { + return [ this.x1, this.y1, this.x2, this.y2 ].join(","); + }; + + Box.prototype.overlaps = function overlaps (box) { + return !(box.y2 < this.y1 || this.y2 < box.y1 || box.x2 < this.x1 || this.x2 < box.x1); + }; + + Box.prototype.rotate = function rotate (rotation) { + var width = this.width(); + var height = this.height(); + var ref = this.center(); + var cx = ref.x; + var cy = ref.y; + + var r1 = rotatePoint(0, 0, cx, cy, rotation); + var r2 = rotatePoint(width, 0, cx, cy, rotation); + var r3 = rotatePoint(width, height, cx, cy, rotation); + var r4 = rotatePoint(0, height, cx, cy, rotation); + + width = Math.max(r1.x, r2.x, r3.x, r4.x) - Math.min(r1.x, r2.x, r3.x, r4.x); + height = Math.max(r1.y, r2.y, r3.y, r4.y) - Math.min(r1.y, r2.y, r3.y, r4.y); + + this.x2 = this.x1 + width; + this.y2 = this.y1 + height; + + return this; + }; + + Box.prototype.toRect = function toRect () { + return new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].Rect([ this.x1, this.y1 ], [ this.width(), this.height() ]); + }; + + Box.prototype.hasSize = function hasSize () { + return this.width() !== 0 && this.height() !== 0; + }; + + Box.prototype.align = function align (targetBox, axis, alignment) { + var c1 = axis + 1; + var c2 = axis + 2; + var sizeFunc = axis === _common_constants__WEBPACK_IMPORTED_MODULE_2__["X"] ? _common_constants__WEBPACK_IMPORTED_MODULE_2__["WIDTH"] : _common_constants__WEBPACK_IMPORTED_MODULE_2__["HEIGHT"]; + var size = this[sizeFunc](); + + if (Object(_common__WEBPACK_IMPORTED_MODULE_3__["inArray"])(alignment, [ _common_constants__WEBPACK_IMPORTED_MODULE_2__["LEFT"], _common_constants__WEBPACK_IMPORTED_MODULE_2__["TOP"] ])) { + this[c1] = targetBox[c1]; + this[c2] = this[c1] + size; + } else if (Object(_common__WEBPACK_IMPORTED_MODULE_3__["inArray"])(alignment, [ _common_constants__WEBPACK_IMPORTED_MODULE_2__["RIGHT"], _common_constants__WEBPACK_IMPORTED_MODULE_2__["BOTTOM"] ])) { + this[c2] = targetBox[c2]; + this[c1] = this[c2] - size; + } else if (alignment === _common_constants__WEBPACK_IMPORTED_MODULE_2__["CENTER"]) { + this[c1] = targetBox[c1] + (targetBox[sizeFunc]() - size) / 2; + this[c2] = this[c1] + size; + } + }; + + return Box; +}(_common__WEBPACK_IMPORTED_MODULE_3__["Class"])); + +function rotatePoint(x, y, cx, cy, angle) { + var theta = Object(_common__WEBPACK_IMPORTED_MODULE_3__["rad"])(angle); + + return new _point__WEBPACK_IMPORTED_MODULE_1__["default"]( + cx + (x - cx) * Math.cos(theta) + (y - cy) * Math.sin(theta), + cy - (x - cx) * Math.sin(theta) + (y - cy) * Math.cos(theta) + ); +} + + __webpack_exports__["default"] = (Box); + + + }), + + "./node_modules/@progress/kendo-charts/dist/es/core/category-axis.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _axis__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/axis.js"); + var _axis_label__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/axis-label.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + var _date_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/date-utils.js"); + + + + + + + +var MIN_CATEGORY_POINTS_RANGE = 0.01; + +function indexOf(value, arr) { + if (value instanceof Date) { + var length = arr.length; + for (var idx = 0; idx < length; idx++) { + if (Object(_date_utils__WEBPACK_IMPORTED_MODULE_4__["dateEquals"])(arr[idx], value)) { + return idx; + } + } + + return -1; + } + + return arr.indexOf(value); +} + +var CategoryAxis = (function (Axis) { + function CategoryAxis () { + Axis.apply(this, arguments); + } + + if ( Axis ) CategoryAxis.__proto__ = Axis; + CategoryAxis.prototype = Object.create( Axis && Axis.prototype ); + CategoryAxis.prototype.constructor = CategoryAxis; + + CategoryAxis.prototype.initFields = function initFields () { + this._ticks = {}; + }; + + CategoryAxis.prototype.categoriesHash = function categoriesHash () { + return ""; + }; + + CategoryAxis.prototype.clone = function clone () { + var copy = new CategoryAxis(Object.assign({}, this.options, { + categories: this.options.srcCategories + }), this.chartService); + copy.createLabels(); + + return copy; + }; + + CategoryAxis.prototype.initUserOptions = function initUserOptions (options) { + var categories = options.categories || []; + var definedMin = Object(_common__WEBPACK_IMPORTED_MODULE_3__["defined"])(options.min); + var definedMax = Object(_common__WEBPACK_IMPORTED_MODULE_3__["defined"])(options.max); + options.srcCategories = options.categories = categories; + + if ((definedMin || definedMax) && categories.length) { + var min = definedMin ? Math.floor(options.min) : 0; + var max; + + if (definedMax) { + max = options.justified ? Math.floor(options.max) + 1 : Math.ceil(options.max); + } else { + max = categories.length; + } + + options.categories = options.categories.slice(min, max); + } + + return options; + }; + + CategoryAxis.prototype.rangeIndices = function rangeIndices () { + var options = this.options; + var length = options.categories.length || 1; + var min = Object(_common__WEBPACK_IMPORTED_MODULE_3__["isNumber"])(options.min) ? options.min % 1 : 0; + var max; + + if (Object(_common__WEBPACK_IMPORTED_MODULE_3__["isNumber"])(options.max) && options.max % 1 !== 0 && options.max < this.totalRange().max) { + max = length - (1 - options.max % 1); + } else { + max = length - (options.justified ? 1 : 0); + } + + return { + min: min, + max: max + }; + }; + + CategoryAxis.prototype.totalRangeIndices = function totalRangeIndices (limit) { + var options = this.options; + var min = Object(_common__WEBPACK_IMPORTED_MODULE_3__["isNumber"])(options.min) ? options.min : 0; + var max; + + if (Object(_common__WEBPACK_IMPORTED_MODULE_3__["isNumber"])(options.max)) { + max = options.max; + } else if (Object(_common__WEBPACK_IMPORTED_MODULE_3__["isNumber"])(options.min)) { + max = min + options.categories.length; + } else { + max = this.totalRange().max || 1; + } + + if (limit) { + var totalRange = this.totalRange(); + min = Object(_common__WEBPACK_IMPORTED_MODULE_3__["limitValue"])(min, 0, totalRange.max); + max = Object(_common__WEBPACK_IMPORTED_MODULE_3__["limitValue"])(max, 0, totalRange.max); + } + + return { + min: min, + max: max + }; + }; + + CategoryAxis.prototype.range = function range () { + var options = this.options; + var min = Object(_common__WEBPACK_IMPORTED_MODULE_3__["isNumber"])(options.min) ? options.min : 0; + var max = Object(_common__WEBPACK_IMPORTED_MODULE_3__["isNumber"])(options.max) ? options.max : this.totalRange().max; + + return { + min: min, + max: max + }; + }; + + CategoryAxis.prototype.roundedRange = function roundedRange () { + return this.range(); + }; + + CategoryAxis.prototype.totalRange = function totalRange () { + var options = this.options; + return { min: 0, max: Math.max(this._seriesMax || 0, options.srcCategories.length) - (options.justified ? 1 : 0) }; + }; + + CategoryAxis.prototype.scaleOptions = function scaleOptions () { + var ref = this.rangeIndices(); + var min = ref.min; + var max = ref.max; + var lineBox = this.lineBox(); + var size = this.options.vertical ? lineBox.height() : lineBox.width(); + var scale = size / ((max - min) || 1); + + return { + scale: scale * (this.options.reverse ? -1 : 1), + box: lineBox, + min: min, + max: max + }; + }; + + CategoryAxis.prototype.arrangeLabels = function arrangeLabels () { + Axis.prototype.arrangeLabels.call(this); + this.hideOutOfRangeLabels(); + }; + + CategoryAxis.prototype.hideOutOfRangeLabels = function hideOutOfRangeLabels () { + var ref = this; + var box = ref.box; + var labels = ref.labels; + + if (labels.length) { + var valueAxis = this.options.vertical ? _common_constants__WEBPACK_IMPORTED_MODULE_2__["Y"] : _common_constants__WEBPACK_IMPORTED_MODULE_2__["X"]; + var start = box[valueAxis + 1]; + var end = box[valueAxis + 2]; + var firstLabel = labels[0]; + var lastLabel = Object(_common__WEBPACK_IMPORTED_MODULE_3__["last"])(labels); + + if (firstLabel.box[valueAxis + 1] > end || firstLabel.box[valueAxis + 2] < start) { + firstLabel.options.visible = false; + } + if (lastLabel.box[valueAxis + 1] > end || lastLabel.box[valueAxis + 2] < start) { + lastLabel.options.visible = false; + } + } + }; + + CategoryAxis.prototype.getMajorTickPositions = function getMajorTickPositions () { + return this.getTicks().majorTicks; + }; + + CategoryAxis.prototype.getMinorTickPositions = function getMinorTickPositions () { + return this.getTicks().minorTicks; + }; + + CategoryAxis.prototype.getLabelsTickPositions = function getLabelsTickPositions () { + return this.getTicks().labelTicks; + }; + + CategoryAxis.prototype.tickIndices = function tickIndices (stepSize) { + var ref = this.rangeIndices(); + var min = ref.min; + var max = ref.max; + var limit = Math.ceil(max); + var current = Math.floor(min); + var indices = []; + + while (current <= limit) { + indices.push(current); + current += stepSize; + } + + return indices; + }; + + CategoryAxis.prototype.getTickPositions = function getTickPositions (stepSize) { + var ref = this.options; + var vertical = ref.vertical; + var reverse = ref.reverse; + var ref$1 = this.scaleOptions(); + var scale = ref$1.scale; + var box = ref$1.box; + var min = ref$1.min; + var pos = box[(vertical ? _common_constants__WEBPACK_IMPORTED_MODULE_2__["Y"] : _common_constants__WEBPACK_IMPORTED_MODULE_2__["X"]) + (reverse ? 2 : 1)]; + var indices = this.tickIndices(stepSize); + var positions = []; + + for (var idx = 0; idx < indices.length; idx++) { + positions.push(pos + Object(_common__WEBPACK_IMPORTED_MODULE_3__["round"])(scale * (indices[idx] - min), _common_constants__WEBPACK_IMPORTED_MODULE_2__["COORD_PRECISION"])); + } + + return positions; + }; + + CategoryAxis.prototype.getTicks = function getTicks () { + var options = this.options; + var cache = this._ticks; + var range = this.rangeIndices(); + var lineBox = this.lineBox(); + var hash = lineBox.getHash() + range.min + "," + range.max + options.reverse + options.justified; + + if (cache._hash !== hash) { + var hasMinor = options.minorTicks.visible || options.minorGridLines.visible; + cache._hash = hash; + cache.labelTicks = this.getTickPositions(1); + cache.majorTicks = this.filterOutOfRangePositions(cache.labelTicks, lineBox); + cache.minorTicks = hasMinor ? this.filterOutOfRangePositions(this.getTickPositions(0.5), lineBox) : []; + } + + return cache; + }; + + CategoryAxis.prototype.filterOutOfRangePositions = function filterOutOfRangePositions (positions, lineBox) { + if (!positions.length) { + return positions; + } + + var axis = this.options.vertical ? _common_constants__WEBPACK_IMPORTED_MODULE_2__["Y"] : _common_constants__WEBPACK_IMPORTED_MODULE_2__["X"]; + var inRange = function (position) { return lineBox[axis + 1] <= position && position <= lineBox[axis + 2]; }; + + var end = positions.length - 1; + var startIndex = 0; + while (!inRange(positions[startIndex]) && startIndex <= end) { + startIndex++; + } + + var endIndex = end; + + while (!inRange(positions[endIndex]) && endIndex >= 0) { + endIndex--; + } + + return positions.slice(startIndex, endIndex + 1); + }; + + CategoryAxis.prototype.getSlot = function getSlot (from, to, limit) { + var options = this.options; + var reverse = options.reverse; + var justified = options.justified; + var vertical = options.vertical; + var ref = this.scaleOptions(); + var scale = ref.scale; + var box = ref.box; + var min = ref.min; + var valueAxis = vertical ? _common_constants__WEBPACK_IMPORTED_MODULE_2__["Y"] : _common_constants__WEBPACK_IMPORTED_MODULE_2__["X"]; + var lineStart = box[valueAxis + (reverse ? 2 : 1)]; + var slotBox = box.clone(); + var singleSlot = !Object(_common__WEBPACK_IMPORTED_MODULE_3__["defined"])(to); + + var start = Object(_common__WEBPACK_IMPORTED_MODULE_3__["valueOrDefault"])(from, 0); + var end = Object(_common__WEBPACK_IMPORTED_MODULE_3__["valueOrDefault"])(to, start); + end = Math.max(end - 1, start); + + // Fixes transient bug caused by iOS 6.0 JIT + // (one can never be too sure) + end = Math.max(start, end); + + var p1 = lineStart + (start - min) * scale; + var p2 = lineStart + (end + 1 - min) * scale; + + if (singleSlot && justified) { + p2 = p1; + } + + if (limit) { + p1 = Object(_common__WEBPACK_IMPORTED_MODULE_3__["limitValue"])(p1, box[valueAxis + 1], box[valueAxis + 2]); + p2 = Object(_common__WEBPACK_IMPORTED_MODULE_3__["limitValue"])(p2, box[valueAxis + 1], box[valueAxis + 2]); + } + + slotBox[valueAxis + 1] = reverse ? p2 : p1; + slotBox[valueAxis + 2] = reverse ? p1 : p2; + + return slotBox; + }; + + CategoryAxis.prototype.limitSlot = function limitSlot (slot) { + var vertical = this.options.vertical; + var valueAxis = vertical ? _common_constants__WEBPACK_IMPORTED_MODULE_2__["Y"] : _common_constants__WEBPACK_IMPORTED_MODULE_2__["X"]; + var lineBox = this.lineBox(); + var limittedSlot = slot.clone(); + + limittedSlot[valueAxis + 1] = Object(_common__WEBPACK_IMPORTED_MODULE_3__["limitValue"])(slot[valueAxis + 1], lineBox[valueAxis + 1], lineBox[valueAxis + 2]); + limittedSlot[valueAxis + 2] = Object(_common__WEBPACK_IMPORTED_MODULE_3__["limitValue"])(slot[valueAxis + 2], lineBox[valueAxis + 1], lineBox[valueAxis + 2]); + + return limittedSlot; + }; + + CategoryAxis.prototype.slot = function slot (from, to, limit) { + var min = Math.floor(this.options.min || 0); + var start = from; + var end = to; + + if (typeof start === "string") { + start = this.categoryIndex(start); + } else if (Object(_common__WEBPACK_IMPORTED_MODULE_3__["isNumber"])(start)) { + start -= min; + } + + if (typeof end === "string") { + end = this.categoryIndex(end); + } else if (Object(_common__WEBPACK_IMPORTED_MODULE_3__["isNumber"])(end)) { + end -= min; + } + + return Axis.prototype.slot.call(this, start, end, limit); + }; + + CategoryAxis.prototype.pointCategoryIndex = function pointCategoryIndex (point) { + var ref = this.options; + var reverse = ref.reverse; + var justified = ref.justified; + var vertical = ref.vertical; + var valueAxis = vertical ? _common_constants__WEBPACK_IMPORTED_MODULE_2__["Y"] : _common_constants__WEBPACK_IMPORTED_MODULE_2__["X"]; + var ref$1 = this.scaleOptions(); + var scale = ref$1.scale; + var box = ref$1.box; + var min = ref$1.min; + var max = ref$1.max; + var startValue = reverse ? max : min; + var lineStart = box[valueAxis + 1]; + var lineEnd = box[valueAxis + 2]; + var pos = point[valueAxis]; + + if (pos < lineStart || pos > lineEnd) { + return null; + } + + var value = startValue + (pos - lineStart) / scale; + var diff = value % 1; + + if (justified) { + value = Math.round(value); + } else if (diff === 0 && value > 0) { + value--; + } + + return Math.floor(value); + }; + + CategoryAxis.prototype.getCategory = function getCategory (point) { + var index = this.pointCategoryIndex(point); + + if (index === null) { + return null; + } + + return this.options.categories[index]; + }; + + CategoryAxis.prototype.categoryIndex = function categoryIndex (value) { + return this.totalIndex(value) - Math.floor(this.options.min || 0); + }; + + CategoryAxis.prototype.categoryAt = function categoryAt (index, total) { + var options = this.options; + + return (total ? options.srcCategories : options.categories)[index]; + }; + + CategoryAxis.prototype.categoriesCount = function categoriesCount () { + return (this.options.categories || []).length; + }; + + CategoryAxis.prototype.translateRange = function translateRange (delta) { + var options = this.options; + var lineBox = this.lineBox(); + var size = options.vertical ? lineBox.height() : lineBox.width(); + var range = options.categories.length; + var scale = size / range; + var offset = Object(_common__WEBPACK_IMPORTED_MODULE_3__["round"])(delta / scale, _common_constants__WEBPACK_IMPORTED_MODULE_2__["DEFAULT_PRECISION"]); + + return { + min: offset, + max: range + offset + }; + }; + + CategoryAxis.prototype.zoomRange = function zoomRange (rate) { + var rangeIndices = this.totalRangeIndices(); + var ref = this.totalRange(); + var totalMin = ref.min; + var totalMax = ref.max; + var min = Object(_common__WEBPACK_IMPORTED_MODULE_3__["limitValue"])(rangeIndices.min + rate, totalMin, totalMax); + var max = Object(_common__WEBPACK_IMPORTED_MODULE_3__["limitValue"])(rangeIndices.max - rate, totalMin, totalMax); + + if (max - min > 0) { + return { + min: min, + max: max + }; + } + }; + + CategoryAxis.prototype.scaleRange = function scaleRange (scale) { + var range = this.options.categories.length; + var delta = scale * range; + + return { + min: -delta, + max: range + delta + }; + }; + + CategoryAxis.prototype.labelsCount = function labelsCount () { + var labelsRange = this.labelsRange(); + + return labelsRange.max - labelsRange.min; + }; + + CategoryAxis.prototype.labelsRange = function labelsRange () { + var options = this.options; + var justified = options.justified; + var labelOptions = options.labels; + var ref = this.totalRangeIndices(true); + var min = ref.min; + var max = ref.max; + var start = Math.floor(min); + + if (!justified) { + min = Math.floor(min); + max = Math.ceil(max); + } else { + min = Math.ceil(min); + max = Math.floor(max); + } + + var skip; + + if (min > labelOptions.skip) { + skip = labelOptions.skip + labelOptions.step * Math.ceil((min - labelOptions.skip) / labelOptions.step); + } else { + skip = labelOptions.skip; + } + + return { + min: skip - start, + max: (options.categories.length ? max + (justified ? 1 : 0) : 0) - start + }; + }; + + CategoryAxis.prototype.createAxisLabel = function createAxisLabel (index, labelOptions) { + var options = this.options; + var dataItem = options.dataItems ? options.dataItems[index] : null; + var category = Object(_common__WEBPACK_IMPORTED_MODULE_3__["valueOrDefault"])(options.categories[index], ""); + var text = this.axisLabelText(category, dataItem, labelOptions); + + return new _axis_label__WEBPACK_IMPORTED_MODULE_1__["default"](category, text, index, dataItem, labelOptions); + }; + + CategoryAxis.prototype.shouldRenderNote = function shouldRenderNote (value) { + var range = this.totalRangeIndices(); + + return Math.floor(range.min) <= value && value <= Math.ceil(range.max); + }; + + CategoryAxis.prototype.noteSlot = function noteSlot (value) { + var options = this.options; + var index = value - Math.floor(options.min || 0); + return this.getSlot(index); + }; + + CategoryAxis.prototype.arrangeNotes = function arrangeNotes () { + Axis.prototype.arrangeNotes.call(this); + this.hideOutOfRangeNotes(); + }; + + CategoryAxis.prototype.hideOutOfRangeNotes = function hideOutOfRangeNotes () { + var ref = this; + var notes = ref.notes; + var box = ref.box; + if (notes && notes.length) { + var valueAxis = this.options.vertical ? _common_constants__WEBPACK_IMPORTED_MODULE_2__["Y"] : _common_constants__WEBPACK_IMPORTED_MODULE_2__["X"]; + var start = box[valueAxis + 1]; + var end = box[valueAxis + 2]; + + for (var idx = 0; idx < notes.length; idx++) { + var note = notes[idx]; + if (note.box && (end < note.box[valueAxis + 1] || note.box[valueAxis + 2] < start)) { + note.hide(); + } + } + } + }; + + CategoryAxis.prototype.pan = function pan (delta) { + var range = this.totalRangeIndices(true); + var ref = this.scaleOptions(); + var scale = ref.scale; + var offset = Object(_common__WEBPACK_IMPORTED_MODULE_3__["round"])(delta / scale, _common_constants__WEBPACK_IMPORTED_MODULE_2__["DEFAULT_PRECISION"]); + var totalRange = this.totalRange(); + var min = range.min + offset; + var max = range.max + offset; + + return this.limitRange(min, max, 0, totalRange.max, offset); + }; + + CategoryAxis.prototype.pointsRange = function pointsRange (start, end) { + var ref = this.options; + var reverse = ref.reverse; + var vertical = ref.vertical; + var valueAxis = vertical ? _common_constants__WEBPACK_IMPORTED_MODULE_2__["Y"] : _common_constants__WEBPACK_IMPORTED_MODULE_2__["X"]; + var range = this.totalRangeIndices(true); + var ref$1 = this.scaleOptions(); + var scale = ref$1.scale; + var box = ref$1.box; + var lineStart = box[valueAxis + (reverse ? 2 : 1)]; + + var diffStart = start[valueAxis] - lineStart; + var diffEnd = end[valueAxis] - lineStart; + + var min = range.min + diffStart / scale; + var max = range.min + diffEnd / scale; + var rangeMin = Math.min(min, max); + var rangeMax = Math.max(min, max); + + if (rangeMax - rangeMin >= MIN_CATEGORY_POINTS_RANGE) { + return { + min: rangeMin, + max: rangeMax + }; + } + }; + + CategoryAxis.prototype.valueRange = function valueRange () { + return this.range(); + }; + + CategoryAxis.prototype.totalIndex = function totalIndex (value) { + var options = this.options; + var index = this._categoriesMap ? + this._categoriesMap.get(value) : indexOf(value, options.srcCategories); + + return index; + }; + + CategoryAxis.prototype.currentRangeIndices = function currentRangeIndices () { + var options = this.options; + var min = 0; + + if (Object(_common__WEBPACK_IMPORTED_MODULE_3__["isNumber"])(options.min)) { + min = Math.floor(options.min); + } + + var max; + if (Object(_common__WEBPACK_IMPORTED_MODULE_3__["isNumber"])(options.max)) { + max = options.justified ? Math.floor(options.max) : Math.ceil(options.max) - 1; + } else { + max = this.totalCount() - 1; + } + + return { + min: min, + max: max + }; + }; + + CategoryAxis.prototype.mapCategories = function mapCategories () { + if (!this._categoriesMap) { + var map = this._categoriesMap = new _common__WEBPACK_IMPORTED_MODULE_3__["HashMap"](); + var srcCategories = this.options.srcCategories; + for (var idx = 0; idx < srcCategories.length; idx++) { + map.set(srcCategories[idx], idx); + } + } + }; + + CategoryAxis.prototype.totalCount = function totalCount () { + return Math.max(this.options.srcCategories.length, this._seriesMax || 0); + }; + + return CategoryAxis; +}(_axis__WEBPACK_IMPORTED_MODULE_0__["default"])); + +Object(_common__WEBPACK_IMPORTED_MODULE_3__["setDefaultOptions"])(CategoryAxis, { + type: "category", + vertical: false, + majorGridLines: { + visible: false, + width: 1, + color: _common_constants__WEBPACK_IMPORTED_MODULE_2__["BLACK"] + }, + labels: { + zIndex: 1 + }, + justified: false, + _deferLabels: true +}); + + __webpack_exports__["default"] = (CategoryAxis); + + + }), + + "./node_modules/@progress/kendo-charts/dist/es/core/chart-element.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/main.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + + +var ChartElement = (function (Class) { + function ChartElement(options) { + Class.call(this); + + this.children = []; + + this.options = Object(_common__WEBPACK_IMPORTED_MODULE_2__["deepExtend"])({}, this.options, this.initUserOptions(options)); + } + + if ( Class ) ChartElement.__proto__ = Class; + ChartElement.prototype = Object.create( Class && Class.prototype ); + ChartElement.prototype.constructor = ChartElement; + + ChartElement.prototype.initUserOptions = function initUserOptions (options) { + return options; + }; + + ChartElement.prototype.reflow = function reflow (targetBox) { + var children = this.children; + var box; + + for (var i = 0; i < children.length; i++) { + var currentChild = children[i]; + currentChild.reflow(targetBox); + + box = box ? box.wrap(currentChild.box) : currentChild.box.clone(); + } + + this.box = box || targetBox; + }; + + ChartElement.prototype.destroy = function destroy () { + var children = this.children; + + if (this.animation) { + this.animation.destroy(); + } + + for (var i = 0; i < children.length; i++) { + children[i].destroy(); + } + }; + + ChartElement.prototype.getRoot = function getRoot () { + var parent = this.parent; + + return parent ? parent.getRoot() : null; + }; + + ChartElement.prototype.getSender = function getSender () { + var service = this.getService(); + if (service) { + return service.sender; + } + }; + + ChartElement.prototype.getService = function getService () { + var element = this; + while (element) { + if (element.chartService) { + return element.chartService; + } + element = element.parent; + } + }; + + ChartElement.prototype.translateChildren = function translateChildren (dx, dy) { + var children = this.children; + var childrenCount = children.length; + + for (var i = 0; i < childrenCount; i++) { + children[i].box.translate(dx, dy); + } + }; + + ChartElement.prototype.append = function append () { + var arguments$1 = arguments; + var this$1 = this; + + for (var i = 0; i < arguments.length; i++) { + var item = arguments$1[i]; + this$1.children.push(item); + item.parent = this$1; + } + }; + + ChartElement.prototype.renderVisual = function renderVisual () { + if (this.options.visible === false) { + return; + } + + this.createVisual(); + + this.addVisual(); + + this.renderChildren(); + + this.createAnimation(); + this.renderComplete(); + }; + + ChartElement.prototype.addVisual = function addVisual () { + if (this.visual) { + this.visual.chartElement = this; + + if (this.parent) { + this.parent.appendVisual(this.visual); + } + } + }; + + ChartElement.prototype.renderChildren = function renderChildren () { + var children = this.children; + var length = children.length; + for (var i = 0; i < length; i++) { + children[i].renderVisual(); + } + }; + + ChartElement.prototype.createVisual = function createVisual () { + this.visual = new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Group({ + zIndex: this.options.zIndex, + visible: Object(_common__WEBPACK_IMPORTED_MODULE_2__["valueOrDefault"])(this.options.visible, true) + }); + }; + + ChartElement.prototype.createAnimation = function createAnimation () { + if (this.visual && this.options.animation) { + this.animation = _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Animation.create( + this.visual, this.options.animation + ); + } + }; + + ChartElement.prototype.appendVisual = function appendVisual (childVisual) { + if (!childVisual.chartElement) { + childVisual.chartElement = this; + } + + if (childVisual.options.noclip) { + this.clipRoot().visual.append(childVisual); + } else if (Object(_common__WEBPACK_IMPORTED_MODULE_2__["defined"])(childVisual.options.zIndex)) { + this.stackRoot().stackVisual(childVisual); + } else if (this.isStackRoot) { + this.stackVisual(childVisual); + } else if (this.visual) { + this.visual.append(childVisual); + } else { + // Allow chart elements without visuals to + // pass through child visuals + this.parent.appendVisual(childVisual); + } + }; + + ChartElement.prototype.clipRoot = function clipRoot () { + if (this.parent) { + return this.parent.clipRoot(); + } + + return this; + }; + + ChartElement.prototype.stackRoot = function stackRoot () { + if (this.parent) { + return this.parent.stackRoot(); + } + + return this; + }; + + ChartElement.prototype.stackVisual = function stackVisual (childVisual) { + var zIndex = childVisual.options.zIndex || 0; + var visuals = this.visual.children; + var length = visuals.length; + var pos; + + for (pos = 0; pos < length; pos++) { + var sibling = visuals[pos]; + var here = Object(_common__WEBPACK_IMPORTED_MODULE_2__["valueOrDefault"])(sibling.options.zIndex, 0); + if (here > zIndex) { + break; + } + } + + this.visual.insert(pos, childVisual); + }; + + ChartElement.prototype.traverse = function traverse (callback) { + var children = this.children; + var length = children.length; + + for (var i = 0; i < length; i++) { + var child = children[i]; + + callback(child); + if (child.traverse) { + child.traverse(callback); + } + } + }; + + ChartElement.prototype.closest = function closest (match) { + var element = this; + var matched = false; + + while (element && !matched) { + matched = match(element); + + if (!matched) { + element = element.parent; + } + } + + if (matched) { + return element; + } + }; + + ChartElement.prototype.renderComplete = function renderComplete () {}; + + ChartElement.prototype.hasHighlight = function hasHighlight () { + var options = (this.options || {}).highlight; + return !(!this.createHighlight || (options && options.visible === false)); + }; + + ChartElement.prototype.toggleHighlight = function toggleHighlight (show) { + var this$1 = this; + + var options = (this.options || {}).highlight || {}; + var customVisual = options.visual; + var highlight = this._highlight; + + if (!highlight) { + var highlightOptions = { + fill: { + color: _common_constants__WEBPACK_IMPORTED_MODULE_1__["WHITE"], + opacity: 0.2 + }, + stroke: { + color: _common_constants__WEBPACK_IMPORTED_MODULE_1__["WHITE"], + width: 1, + opacity: 0.2 + } + }; + + if (customVisual) { + highlight = this._highlight = customVisual( + Object.assign(this.highlightVisualArgs(), { + createVisual: function () { return this$1.createHighlight(highlightOptions); }, + sender: this.getSender(), + series: this.series, + dataItem: this.dataItem, + category: this.category, + value: this.value, + percentage: this.percentage, + runningTotal: this.runningTotal, + total: this.total + } + )); + + if (!highlight) { + return; + } + } else { + highlight = this._highlight = this.createHighlight(highlightOptions); + } + + if (!Object(_common__WEBPACK_IMPORTED_MODULE_2__["defined"])(highlight.options.zIndex)) { + highlight.options.zIndex = Object(_common__WEBPACK_IMPORTED_MODULE_2__["valueOrDefault"])(options.zIndex, this.options.zIndex); + } + + this.appendVisual(highlight); + } + + highlight.visible(show); + }; + + ChartElement.prototype.createGradientOverlay = function createGradientOverlay (element, options, gradientOptions) { + var overlay = new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Path(Object.assign({ + stroke: { + color: "none" + }, + fill: this.createGradient(gradientOptions), + closed: element.options.closed + }, options)); + + overlay.segments.elements(element.segments.elements()); + + return overlay; + }; + + ChartElement.prototype.createGradient = function createGradient (options) { + if (this.parent) { + return this.parent.createGradient(options); + } + }; + + return ChartElement; +}(_common__WEBPACK_IMPORTED_MODULE_2__["Class"])); + +ChartElement.prototype.options = { }; + + __webpack_exports__["default"] = (ChartElement); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/core/constants.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "COORDINATE_LIMIT", function() { return COORDINATE_LIMIT; }); + __webpack_require__.d(__webpack_exports__, "DateLabelFormats", function() { return DateLabelFormats; }); + __webpack_require__.d(__webpack_exports__, "ZERO_THRESHOLD", function() { return ZERO_THRESHOLD; }); +var COORDINATE_LIMIT = 300000; + +var DateLabelFormats = { + milliseconds: "HH:mm:ss.fff", + seconds: "HH:mm:ss", + minutes: "HH:mm", + hours: "HH:mm", + days: "M/d", + weeks: "M/d", + months: "MMM 'yy", + years: "yyyy" +}; + +var ZERO_THRESHOLD = 0.2; + + + + }), + + "./node_modules/@progress/kendo-charts/dist/es/core/curve-processor.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/main.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + + +var WEIGHT = 0.333; +var EXTREMUM_ALLOWED_DEVIATION = 0.01; + +var CurveProcessor = (function (Class) { + function CurveProcessor(closed) { + Class.call(this); + + this.closed = closed; + } + + if ( Class ) CurveProcessor.__proto__ = Class; + CurveProcessor.prototype = Object.create( Class && Class.prototype ); + CurveProcessor.prototype.constructor = CurveProcessor; + + CurveProcessor.prototype.process = function process (dataPoints) { + var this$1 = this; + + var points = dataPoints.slice(0); + var segments = []; + var closed = this.closed; + var length = points.length; + + if (length > 2) { + this.removeDuplicates(0, points); + length = points.length; + } + + if (length < 2 || (length === 2 && points[0].equals(points[1]))) { + return segments; + } + + var p0 = points[0]; + var p1 = points[1]; + var p2 = points[2]; + + segments.push(new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].Segment(p0)); + + while (p0.equals(points[length - 1])) { + closed = true; + points.pop(); + length--; + } + + if (length === 2) { + var tangent = this.tangent(p0,p1, _common_constants__WEBPACK_IMPORTED_MODULE_1__["X"], _common_constants__WEBPACK_IMPORTED_MODULE_1__["Y"]); + + Object(_common__WEBPACK_IMPORTED_MODULE_2__["last"])(segments).controlOut( + this.firstControlPoint(tangent, p0, p1, _common_constants__WEBPACK_IMPORTED_MODULE_1__["X"], _common_constants__WEBPACK_IMPORTED_MODULE_1__["Y"]) + ); + + segments.push(new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].Segment( + p1, + this.secondControlPoint(tangent, p0, p1, _common_constants__WEBPACK_IMPORTED_MODULE_1__["X"], _common_constants__WEBPACK_IMPORTED_MODULE_1__["Y"]) + )); + + return segments; + } + + var initialControlPoint, lastControlPoint; + + if (closed) { + p0 = points[length - 1]; p1 = points[0]; p2 = points[1]; + var controlPoints = this.controlPoints(p0, p1, p2); + initialControlPoint = controlPoints[1]; + lastControlPoint = controlPoints[0]; + } else { + var tangent$1 = this.tangent(p0, p1, _common_constants__WEBPACK_IMPORTED_MODULE_1__["X"],_common_constants__WEBPACK_IMPORTED_MODULE_1__["Y"]); + initialControlPoint = this.firstControlPoint(tangent$1, p0, p1, _common_constants__WEBPACK_IMPORTED_MODULE_1__["X"], _common_constants__WEBPACK_IMPORTED_MODULE_1__["Y"]); + } + + var cp0 = initialControlPoint; + for (var idx = 0; idx <= length - 3; idx++) { + this$1.removeDuplicates(idx, points); + length = points.length; + if (idx + 3 <= length) { + p0 = points[idx]; p1 = points[idx + 1]; p2 = points[idx + 2]; + var controlPoints$1 = this$1.controlPoints(p0,p1,p2); + + Object(_common__WEBPACK_IMPORTED_MODULE_2__["last"])(segments).controlOut(cp0); + cp0 = controlPoints$1[1]; + + var cp1 = controlPoints$1[0]; + segments.push(new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].Segment(p1, cp1)); + } + } + + if (closed) { + p0 = points[length - 2]; p1 = points[length - 1]; p2 = points[0]; + var controlPoints$2 = this.controlPoints(p0, p1, p2); + + Object(_common__WEBPACK_IMPORTED_MODULE_2__["last"])(segments).controlOut(cp0); + segments.push(new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].Segment( + p1, + controlPoints$2[0] + )); + + Object(_common__WEBPACK_IMPORTED_MODULE_2__["last"])(segments).controlOut(controlPoints$2[1]); + segments.push(new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].Segment( + p2, + lastControlPoint + )); + } else { + var tangent$2 = this.tangent(p1, p2, _common_constants__WEBPACK_IMPORTED_MODULE_1__["X"], _common_constants__WEBPACK_IMPORTED_MODULE_1__["Y"]); + + Object(_common__WEBPACK_IMPORTED_MODULE_2__["last"])(segments).controlOut(cp0); + segments.push(new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].Segment( + p2, + this.secondControlPoint(tangent$2, p1, p2, _common_constants__WEBPACK_IMPORTED_MODULE_1__["X"], _common_constants__WEBPACK_IMPORTED_MODULE_1__["Y"]) + )); + } + + return segments; + }; + + CurveProcessor.prototype.removeDuplicates = function removeDuplicates (idx, points) { + while (points[idx + 1] && (points[idx].equals(points[idx + 1]) || points[idx + 1].equals(points[idx + 2]))) { + points.splice(idx + 1, 1); + } + }; + + CurveProcessor.prototype.invertAxis = function invertAxis (p0, p1, p2) { + var invertAxis = false; + + if (p0.x === p1.x) { + invertAxis = true; + } else if (p1.x === p2.x) { + if ((p1.y < p2.y && p0.y <= p1.y) || (p2.y < p1.y && p1.y <= p0.y)) { + invertAxis = true; + } + } else { + var fn = this.lineFunction(p0,p1); + var y2 = this.calculateFunction(fn, p2.x); + if (!(p0.y <= p1.y && p2.y <= y2) && + !(p1.y <= p0.y && p2.y >= y2)) { + invertAxis = true; + } + } + + return invertAxis; + }; + + CurveProcessor.prototype.isLine = function isLine (p0, p1, p2) { + var fn = this.lineFunction(p0, p1); + var y2 = this.calculateFunction(fn, p2.x); + + return (p0.x === p1.x && p1.x === p2.x) || Object(_common__WEBPACK_IMPORTED_MODULE_2__["round"])(y2, 1) === Object(_common__WEBPACK_IMPORTED_MODULE_2__["round"])(p2.y, 1); + }; + + CurveProcessor.prototype.lineFunction = function lineFunction (p1, p2) { + var a = (p2.y - p1.y) / (p2.x - p1.x); + var b = p1.y - a * p1.x; + + return [ b, a ]; + }; + + CurveProcessor.prototype.controlPoints = function controlPoints (p0, p1, p2) { + var xField = _common_constants__WEBPACK_IMPORTED_MODULE_1__["X"]; + var yField = _common_constants__WEBPACK_IMPORTED_MODULE_1__["Y"]; + var restrict = false; + var switchOrientation = false; + var tangent; + + if (this.isLine(p0, p1, p2)) { + tangent = this.tangent(p0, p1, _common_constants__WEBPACK_IMPORTED_MODULE_1__["X"], _common_constants__WEBPACK_IMPORTED_MODULE_1__["Y"]); + } else { + var monotonic = { + x: this.isMonotonicByField(p0, p1, p2, _common_constants__WEBPACK_IMPORTED_MODULE_1__["X"]), + y: this.isMonotonicByField(p0, p1, p2, _common_constants__WEBPACK_IMPORTED_MODULE_1__["Y"]) + }; + + if (monotonic.x && monotonic.y) { + tangent = this.tangent(p0, p2, _common_constants__WEBPACK_IMPORTED_MODULE_1__["X"], _common_constants__WEBPACK_IMPORTED_MODULE_1__["Y"]); + restrict = true; + } else { + if (this.invertAxis(p0, p1, p2)) { + xField = _common_constants__WEBPACK_IMPORTED_MODULE_1__["Y"]; + yField = _common_constants__WEBPACK_IMPORTED_MODULE_1__["X"]; + } + + if (monotonic[xField]) { + tangent = 0; + } else { + var sign; + if ((p2[yField] < p0[yField] && p0[yField] <= p1[yField]) || + (p0[yField] < p2[yField] && p1[yField] <= p0[yField])) { + sign = numberSign((p2[yField] - p0[yField]) * (p1[xField] - p0[xField])); + } else { + sign = -numberSign((p2[xField] - p0[xField]) * (p1[yField] - p0[yField])); + } + + tangent = EXTREMUM_ALLOWED_DEVIATION * sign; + switchOrientation = true; + } + } + } + + var secondControlPoint = this.secondControlPoint(tangent, p0, p1, xField, yField); + + if (switchOrientation) { + var oldXField = xField; + xField = yField; + yField = oldXField; + } + + var firstControlPoint = this.firstControlPoint(tangent, p1, p2, xField, yField); + + if (restrict) { + this.restrictControlPoint(p0, p1, secondControlPoint, tangent); + this.restrictControlPoint(p1, p2, firstControlPoint, tangent); + } + + return [ secondControlPoint, firstControlPoint ]; + }; + + CurveProcessor.prototype.restrictControlPoint = function restrictControlPoint (p1, p2, cp, tangent) { + if (p1.y < p2.y) { + if (p2.y < cp.y) { + cp.x = p1.x + (p2.y - p1.y) / tangent; + cp.y = p2.y; + } else if (cp.y < p1.y) { + cp.x = p2.x - (p2.y - p1.y) / tangent; + cp.y = p1.y; + } + } else { + if (cp.y < p2.y) { + cp.x = p1.x - (p1.y - p2.y) / tangent; + cp.y = p2.y; + } else if (p1.y < cp.y) { + cp.x = p2.x + (p1.y - p2.y) / tangent; + cp.y = p1.y; + } + } + }; + + CurveProcessor.prototype.tangent = function tangent (p0, p1, xField, yField) { + var x = p1[xField] - p0[xField]; + var y = p1[yField] - p0[yField]; + var tangent; + + if (x === 0) { + tangent = 0; + } else { + tangent = y / x; + } + + return tangent; + }; + + CurveProcessor.prototype.isMonotonicByField = function isMonotonicByField (p0, p1, p2, field) { + return (p2[field] > p1[field] && p1[field] > p0[field]) || + (p2[field] < p1[field] && p1[field] < p0[field]); + }; + + CurveProcessor.prototype.firstControlPoint = function firstControlPoint (tangent, p0, p3, xField, yField) { + var t1 = p0[xField]; + var t2 = p3[xField]; + var distance = (t2 - t1) * WEIGHT; + + return this.point(t1 + distance, p0[yField] + distance * tangent, xField, yField); + }; + + CurveProcessor.prototype.secondControlPoint = function secondControlPoint (tangent, p0, p3, xField, yField) { + var t1 = p0[xField]; + var t2 = p3[xField]; + var distance = (t2 - t1) * WEIGHT; + + return this.point(t2 - distance, p3[yField] - distance * tangent, xField, yField); + }; + + CurveProcessor.prototype.point = function point (xValue, yValue, xField, yField) { + var controlPoint = new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].Point(); + controlPoint[xField] = xValue; + controlPoint[yField] = yValue; + + return controlPoint; + }; + + CurveProcessor.prototype.calculateFunction = function calculateFunction (fn, x) { + var length = fn.length; + var result = 0; + + for (var i = 0; i < length; i++) { + result += Math.pow(x,i) * fn[i]; + } + return result; + }; + + return CurveProcessor; +}(_common__WEBPACK_IMPORTED_MODULE_2__["Class"])); + +function numberSign(value) { + return value <= 0 ? -1 : 1; +} + + __webpack_exports__["default"] = (CurveProcessor); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/core/date-category-axis.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _category_axis__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/category-axis.js"); + var _axis_label__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/axis-label.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + var _date_utils_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/date-utils/constants.js"); + var _date_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/date-utils.js"); + var _constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/constants.js"); + + + + + + + + + + + +var AUTO = "auto"; +var BASE_UNITS = [ + _date_utils_constants__WEBPACK_IMPORTED_MODULE_4__["MILLISECONDS"], _date_utils_constants__WEBPACK_IMPORTED_MODULE_4__["SECONDS"], _date_utils_constants__WEBPACK_IMPORTED_MODULE_4__["MINUTES"], _date_utils_constants__WEBPACK_IMPORTED_MODULE_4__["HOURS"], _date_utils_constants__WEBPACK_IMPORTED_MODULE_4__["DAYS"], _date_utils_constants__WEBPACK_IMPORTED_MODULE_4__["WEEKS"], _date_utils_constants__WEBPACK_IMPORTED_MODULE_4__["MONTHS"], _date_utils_constants__WEBPACK_IMPORTED_MODULE_4__["YEARS"] +]; +var FIT = "fit"; + + +function categoryRange(categories) { + var range = categories._range; + if (!range) { + range = categories._range = Object(_common__WEBPACK_IMPORTED_MODULE_3__["sparseArrayLimits"])(categories); + range.min = Object(_date_utils__WEBPACK_IMPORTED_MODULE_5__["toDate"])(range.min); + range.max = Object(_date_utils__WEBPACK_IMPORTED_MODULE_5__["toDate"])(range.max); + } + + return range; +} + +var EmptyDateRange = function EmptyDateRange(options) { + this.options = options; +}; + +EmptyDateRange.prototype.displayIndices = function displayIndices () { + return { + min: 0, + max: 1 + }; +}; + +EmptyDateRange.prototype.displayRange = function displayRange () { + return {}; +}; + +EmptyDateRange.prototype.total = function total () { + return {}; +}; + +EmptyDateRange.prototype.valueRange = function valueRange () { + return {}; +}; + +EmptyDateRange.prototype.valueIndex = function valueIndex () { + return -1; +}; + +EmptyDateRange.prototype.values = function values () { + return []; +}; + +EmptyDateRange.prototype.totalIndex = function totalIndex () { + return -1; +}; + +EmptyDateRange.prototype.valuesCount = function valuesCount () { + return 0; +}; + +EmptyDateRange.prototype.totalCount = function totalCount () { + return 0; +}; + +EmptyDateRange.prototype.dateAt = function dateAt () { + return null; +}; + +var DateRange = function DateRange(start, end, options) { + this.options = options; + options.baseUnitStep = options.baseUnitStep || 1; + + var roundToBaseUnit = options.roundToBaseUnit; + var justified = options.justified; + + this.start = Object(_date_utils__WEBPACK_IMPORTED_MODULE_5__["addDuration"])(start, 0, options.baseUnit, options.weekStartDay); + var lowerEnd = this.roundToTotalStep(end); + var expandEnd = !justified && Object(_date_utils__WEBPACK_IMPORTED_MODULE_5__["dateEquals"])(end, lowerEnd) && !options.justifyEnd; + + this.end = this.roundToTotalStep(end, !justified, expandEnd ? 1 : 0); + + var min = options.min || start; + this.valueStart = this.roundToTotalStep(min); + this.displayStart = roundToBaseUnit ? this.valueStart : min; + + var max = options.max; + if (!max) { + this.valueEnd = lowerEnd; + this.displayEnd = roundToBaseUnit || expandEnd ? this.end : end; + } else { + this.valueEnd = this.roundToTotalStep(max, false, !justified && Object(_date_utils__WEBPACK_IMPORTED_MODULE_5__["dateEquals"])(max, this.roundToTotalStep(max)) ? -1 : 0); + this.displayEnd = roundToBaseUnit ? this.roundToTotalStep(max, !justified) : options.max; + } + + if (this.valueEnd < this.valueStart) { + this.valueEnd = this.valueStart; + } + if (this.displayEnd <= this.displayStart) { + this.displayEnd = this.roundToTotalStep(this.displayStart, false, 1); + } +}; + +DateRange.prototype.displayRange = function displayRange () { + return { + min: this.displayStart, + max: this.displayEnd + }; +}; + +DateRange.prototype.displayIndices = function displayIndices () { + if (!this._indices) { + var options = this.options; + + var baseUnit = options.baseUnit; + var baseUnitStep = options.baseUnitStep; + + var minIdx = Object(_date_utils__WEBPACK_IMPORTED_MODULE_5__["dateIndex"])(this.displayStart, this.valueStart, baseUnit, baseUnitStep); + var maxIdx = Object(_date_utils__WEBPACK_IMPORTED_MODULE_5__["dateIndex"])(this.displayEnd, this.valueStart, baseUnit, baseUnitStep); + + this._indices = { min: minIdx, max: maxIdx }; + } + + return this._indices; +}; + +DateRange.prototype.total = function total () { + return { + min: this.start, + max: this.end + }; +}; + +DateRange.prototype.totalCount = function totalCount () { + var last = this.totalIndex(this.end); + + return last + (this.options.justified ? 1 : 0); +}; + +DateRange.prototype.valueRange = function valueRange () { + return { + min: this.valueStart, + max: this.valueEnd + }; +}; + +DateRange.prototype.valueIndex = function valueIndex (value) { + var options = this.options; + return Math.floor(Object(_date_utils__WEBPACK_IMPORTED_MODULE_5__["dateIndex"])(value, this.valueStart, options.baseUnit, options.baseUnitStep)); +}; + +DateRange.prototype.totalIndex = function totalIndex (value) { + var options = this.options; + return Math.floor(Object(_date_utils__WEBPACK_IMPORTED_MODULE_5__["dateIndex"])(value, this.start, options.baseUnit, options.baseUnitStep)); +}; + +DateRange.prototype.dateIndex = function dateIndex$1 (value) { + var options = this.options; + return Object(_date_utils__WEBPACK_IMPORTED_MODULE_5__["dateIndex"])(value, this.valueStart, options.baseUnit, options.baseUnitStep); +}; + +DateRange.prototype.valuesCount = function valuesCount () { + var maxIdx = this.valueIndex(this.valueEnd); + + return maxIdx + 1; +}; + +DateRange.prototype.values = function values () { + var values = this._values; + if (!values) { + var options = this.options; + var range = this.valueRange(); + this._values = values = []; + + for (var date = range.min; date <= range.max;) { + values.push(date); + date = Object(_date_utils__WEBPACK_IMPORTED_MODULE_5__["addDuration"])(date, options.baseUnitStep, options.baseUnit, options.weekStartDay); + } + } + + return values; +}; + +DateRange.prototype.dateAt = function dateAt (index, total) { + var options = this.options; + + return Object(_date_utils__WEBPACK_IMPORTED_MODULE_5__["addDuration"])(total ? this.start : this.valueStart, options.baseUnitStep * index, options.baseUnit, options.weekStartDay); +}; + +DateRange.prototype.roundToTotalStep = function roundToTotalStep (value, upper, next) { + var ref = this.options; + var baseUnit = ref.baseUnit; + var baseUnitStep = ref.baseUnitStep; + var weekStartDay = ref.weekStartDay; + var start = this.start; + + var step = Object(_date_utils__WEBPACK_IMPORTED_MODULE_5__["dateIndex"])(value, start, baseUnit, baseUnitStep); + var roundedStep = upper ? Math.ceil(step) : Math.floor(step); + + if (next) { + roundedStep += next; + } + + return Object(_date_utils__WEBPACK_IMPORTED_MODULE_5__["addDuration"])(start, roundedStep * baseUnitStep, baseUnit, weekStartDay); +}; + +function autoBaseUnit(options, startUnit, startStep) { + var categoryLimits = categoryRange(options.categories); + var span = (options.max || categoryLimits.max) - (options.min || categoryLimits.min); + var autoBaseUnitSteps = options.autoBaseUnitSteps; + var maxDateGroups = options.maxDateGroups; + var autoUnit = options.baseUnit === FIT; + var autoUnitIx = startUnit ? BASE_UNITS.indexOf(startUnit) : 0; + var baseUnit = autoUnit ? BASE_UNITS[autoUnitIx++] : options.baseUnit; + var units = span / _date_utils_constants__WEBPACK_IMPORTED_MODULE_4__["TIME_PER_UNIT"][baseUnit]; + var totalUnits = units; + var unitSteps, step, nextStep; + + while (!step || units >= maxDateGroups) { + unitSteps = unitSteps || autoBaseUnitSteps[baseUnit].slice(0); + + do { + nextStep = unitSteps.shift(); + } while (nextStep && startUnit === baseUnit && nextStep < startStep); + + if (nextStep) { + step = nextStep; + units = totalUnits / step; + } else if (baseUnit === Object(_common__WEBPACK_IMPORTED_MODULE_3__["last"])(BASE_UNITS)) { + step = Math.ceil(totalUnits / maxDateGroups); + break; + } else if (autoUnit) { + baseUnit = BASE_UNITS[autoUnitIx++] || Object(_common__WEBPACK_IMPORTED_MODULE_3__["last"])(BASE_UNITS); + totalUnits = span / _date_utils_constants__WEBPACK_IMPORTED_MODULE_4__["TIME_PER_UNIT"][baseUnit]; + unitSteps = null; + } else { + if (units > maxDateGroups) { + step = Math.ceil(totalUnits / maxDateGroups); + } + break; + } + } + + options.baseUnitStep = step; + options.baseUnit = baseUnit; +} + +function defaultBaseUnit(options) { + var categories = options.categories; + var count = Object(_common__WEBPACK_IMPORTED_MODULE_3__["defined"])(categories) ? categories.length : 0; + var minDiff = _common_constants__WEBPACK_IMPORTED_MODULE_2__["MAX_VALUE"]; + var lastCategory, unit; + + for (var categoryIx = 0; categoryIx < count; categoryIx++) { + var category = categories[categoryIx]; + + if (category && lastCategory) { + var diff = Object(_date_utils__WEBPACK_IMPORTED_MODULE_5__["absoluteDateDiff"])(category, lastCategory); + if (diff > 0) { + minDiff = Math.min(minDiff, diff); + + if (minDiff >= _date_utils_constants__WEBPACK_IMPORTED_MODULE_4__["TIME_PER_YEAR"]) { + unit = _date_utils_constants__WEBPACK_IMPORTED_MODULE_4__["YEARS"]; + } else if (minDiff >= _date_utils_constants__WEBPACK_IMPORTED_MODULE_4__["TIME_PER_MONTH"] - _date_utils_constants__WEBPACK_IMPORTED_MODULE_4__["TIME_PER_DAY"] * 3) { + unit = _date_utils_constants__WEBPACK_IMPORTED_MODULE_4__["MONTHS"]; + } else if (minDiff >= _date_utils_constants__WEBPACK_IMPORTED_MODULE_4__["TIME_PER_WEEK"]) { + unit = _date_utils_constants__WEBPACK_IMPORTED_MODULE_4__["WEEKS"]; + } else if (minDiff >= _date_utils_constants__WEBPACK_IMPORTED_MODULE_4__["TIME_PER_DAY"]) { + unit = _date_utils_constants__WEBPACK_IMPORTED_MODULE_4__["DAYS"]; + } else if (minDiff >= _date_utils_constants__WEBPACK_IMPORTED_MODULE_4__["TIME_PER_HOUR"]) { + unit = _date_utils_constants__WEBPACK_IMPORTED_MODULE_4__["HOURS"]; + } else if (minDiff >= _date_utils_constants__WEBPACK_IMPORTED_MODULE_4__["TIME_PER_MINUTE"]) { + unit = _date_utils_constants__WEBPACK_IMPORTED_MODULE_4__["MINUTES"]; + } else { + unit = _date_utils_constants__WEBPACK_IMPORTED_MODULE_4__["SECONDS"]; + } + } + } + + lastCategory = category; + } + + options.baseUnit = unit || _date_utils_constants__WEBPACK_IMPORTED_MODULE_4__["DAYS"]; +} + +function initUnit(options) { + var baseUnit = (options.baseUnit || "").toLowerCase(); + var useDefault = baseUnit !== FIT && !Object(_common__WEBPACK_IMPORTED_MODULE_3__["inArray"])(baseUnit, BASE_UNITS); + + if (useDefault) { + defaultBaseUnit(options); + } + + if (baseUnit === FIT || options.baseUnitStep === AUTO) { + autoBaseUnit(options); + } + + return options; +} + +var DateCategoryAxis = (function (CategoryAxis) { + function DateCategoryAxis () { + CategoryAxis.apply(this, arguments); + } + + if ( CategoryAxis ) DateCategoryAxis.__proto__ = CategoryAxis; + DateCategoryAxis.prototype = Object.create( CategoryAxis && CategoryAxis.prototype ); + DateCategoryAxis.prototype.constructor = DateCategoryAxis; + + DateCategoryAxis.prototype.clone = function clone () { + var copy = new DateCategoryAxis(Object.assign({}, this.options), this.chartService); + copy.createLabels(); + + return copy; + }; + + DateCategoryAxis.prototype.categoriesHash = function categoriesHash () { + var start = this.dataRange.total().min; + return this.options.baseUnit + this.options.baseUnitStep + start; + }; + + DateCategoryAxis.prototype.initUserOptions = function initUserOptions (options) { + return options; + }; + + DateCategoryAxis.prototype.initFields = function initFields () { + CategoryAxis.prototype.initFields.call(this); + + var chartService = this.chartService; + var intlService = chartService.intl; + var options = this.options; + + var categories = options.categories || []; + if (!categories._parsed) { + categories = Object(_date_utils__WEBPACK_IMPORTED_MODULE_5__["parseDates"])(intlService, categories); + categories._parsed = true; + } + + options = Object(_common__WEBPACK_IMPORTED_MODULE_3__["deepExtend"])({ + roundToBaseUnit: true + }, options, { + categories: categories, + min: Object(_date_utils__WEBPACK_IMPORTED_MODULE_5__["parseDate"])(intlService, options.min), + max: Object(_date_utils__WEBPACK_IMPORTED_MODULE_5__["parseDate"])(intlService, options.max) + }); + + if (chartService.panning && chartService.isPannable(options.vertical ? _common_constants__WEBPACK_IMPORTED_MODULE_2__["Y"] : _common_constants__WEBPACK_IMPORTED_MODULE_2__["X"])) { + options.roundToBaseUnit = false; + } + + options.userSetBaseUnit = options.userSetBaseUnit || options.baseUnit; + options.userSetBaseUnitStep = options.userSetBaseUnitStep || options.baseUnitStep; + + this.options = options; + options.srcCategories = categories; + + if (categories.length > 0) { + var range = categoryRange(categories); + var maxDivisions = options.maxDivisions; + + this.dataRange = new DateRange(range.min, range.max, initUnit(options)); + + if (maxDivisions) { + var dataRange = this.dataRange.displayRange(); + + var divisionOptions = Object.assign({}, options, { + justified: true, + roundToBaseUnit: false, + baseUnit: 'fit', + min: dataRange.min, + max: dataRange.max, + maxDateGroups: maxDivisions + }); + + var dataRangeOptions = this.dataRange.options; + + autoBaseUnit(divisionOptions, dataRangeOptions.baseUnit, dataRangeOptions.baseUnitStep); + + this.divisionRange = new DateRange(range.min, range.max, divisionOptions); + } else { + this.divisionRange = this.dataRange; + } + + } else { + options.baseUnit = options.baseUnit || _date_utils_constants__WEBPACK_IMPORTED_MODULE_4__["DAYS"]; + this.dataRange = this.divisionRange = new EmptyDateRange(options); + } + }; + + DateCategoryAxis.prototype.tickIndices = function tickIndices (stepSize) { + var ref = this; + var dataRange = ref.dataRange; + var divisionRange = ref.divisionRange; + var valuesCount = divisionRange.valuesCount(); + + if (!this.options.maxDivisions || !valuesCount) { + return CategoryAxis.prototype.tickIndices.call(this, stepSize); + } + + var indices = []; + var values = divisionRange.values(); + var offset = 0; + + if (!this.options.justified) { + values = values.concat(divisionRange.dateAt(valuesCount)); + offset = 0.5;//align ticks to the center of not justified categories + } + + for (var idx = 0; idx < values.length; idx++) { + indices.push(dataRange.dateIndex(values[idx]) + offset); + if (stepSize !== 1 && idx >= 1) { + var last = indices.length - 1; + indices.splice(idx, 0, indices[last - 1] + (indices[last] - indices[last - 1]) * stepSize); + } + } + + return indices; + }; + + DateCategoryAxis.prototype.shouldRenderNote = function shouldRenderNote (value) { + var range = this.range(); + var categories = this.options.categories || []; + + return Object(_date_utils__WEBPACK_IMPORTED_MODULE_5__["dateComparer"])(value, range.min) >= 0 && Object(_date_utils__WEBPACK_IMPORTED_MODULE_5__["dateComparer"])(value, range.max) <= 0 && categories.length; + }; + + DateCategoryAxis.prototype.parseNoteValue = function parseNoteValue (value) { + return Object(_date_utils__WEBPACK_IMPORTED_MODULE_5__["parseDate"])(this.chartService.intl, value); + }; + + DateCategoryAxis.prototype.noteSlot = function noteSlot (value) { + return this.getSlot(value); + }; + + DateCategoryAxis.prototype.translateRange = function translateRange (delta) { + var options = this.options; + var baseUnit = options.baseUnit; + var weekStartDay = options.weekStartDay; + var vertical = options.vertical; + var lineBox = this.lineBox(); + var size = vertical ? lineBox.height() : lineBox.width(); + var range = this.range(); + var scale = size / (range.max - range.min); + var offset = Object(_common__WEBPACK_IMPORTED_MODULE_3__["round"])(delta / scale, _common_constants__WEBPACK_IMPORTED_MODULE_2__["DEFAULT_PRECISION"]); + + if (range.min && range.max) { + var from = Object(_date_utils__WEBPACK_IMPORTED_MODULE_5__["addTicks"])(options.min || range.min, offset); + var to = Object(_date_utils__WEBPACK_IMPORTED_MODULE_5__["addTicks"])(options.max || range.max, offset); + + range = { + min: Object(_date_utils__WEBPACK_IMPORTED_MODULE_5__["addDuration"])(from, 0, baseUnit, weekStartDay), + max: Object(_date_utils__WEBPACK_IMPORTED_MODULE_5__["addDuration"])(to, 0, baseUnit, weekStartDay) + }; + } + + return range; + }; + + DateCategoryAxis.prototype.scaleRange = function scaleRange (delta) { + var rounds = Math.abs(delta); + var result = this.range(); + var from = result.min; + var to = result.max; + + if (from && to) { + while (rounds--) { + var range = Object(_date_utils__WEBPACK_IMPORTED_MODULE_5__["dateDiff"])(from, to); + var step = Math.round(range * 0.1); + if (delta < 0) { + from = Object(_date_utils__WEBPACK_IMPORTED_MODULE_5__["addTicks"])(from, step); + to = Object(_date_utils__WEBPACK_IMPORTED_MODULE_5__["addTicks"])(to, -step); + } else { + from = Object(_date_utils__WEBPACK_IMPORTED_MODULE_5__["addTicks"])(from, -step); + to = Object(_date_utils__WEBPACK_IMPORTED_MODULE_5__["addTicks"])(to, step); + } + } + + result = { min: from, max: to }; + } + + return result; + }; + + DateCategoryAxis.prototype.labelsRange = function labelsRange () { + return { + min: this.options.labels.skip, + max: this.divisionRange.valuesCount() + }; + }; + + DateCategoryAxis.prototype.pan = function pan (delta) { + if (this.isEmpty()) { + return null; + } + + var options = this.options; + var lineBox = this.lineBox(); + var size = options.vertical ? lineBox.height() : lineBox.width(); + var ref = this.dataRange.displayRange(); + var min = ref.min; + var max = ref.max; + var totalLimits = this.dataRange.total(); + var scale = size / (max - min); + var offset = Object(_common__WEBPACK_IMPORTED_MODULE_3__["round"])(delta / scale, _common_constants__WEBPACK_IMPORTED_MODULE_2__["DEFAULT_PRECISION"]) * (options.reverse ? -1 : 1); + var from = Object(_date_utils__WEBPACK_IMPORTED_MODULE_5__["addTicks"])(min, offset); + var to = Object(_date_utils__WEBPACK_IMPORTED_MODULE_5__["addTicks"])(max, offset); + + var panRange = this.limitRange(Object(_date_utils__WEBPACK_IMPORTED_MODULE_5__["toTime"])(from), Object(_date_utils__WEBPACK_IMPORTED_MODULE_5__["toTime"])(to), Object(_date_utils__WEBPACK_IMPORTED_MODULE_5__["toTime"])(totalLimits.min), Object(_date_utils__WEBPACK_IMPORTED_MODULE_5__["toTime"])(totalLimits.max), offset); + + if (panRange) { + panRange.min = Object(_date_utils__WEBPACK_IMPORTED_MODULE_5__["toDate"])(panRange.min); + panRange.max = Object(_date_utils__WEBPACK_IMPORTED_MODULE_5__["toDate"])(panRange.max); + panRange.baseUnit = options.baseUnit; + panRange.baseUnitStep = options.baseUnitStep || 1; + panRange.userSetBaseUnit = options.userSetBaseUnit; + panRange.userSetBaseUnitStep = options.userSetBaseUnitStep; + + return panRange; + } + }; + + DateCategoryAxis.prototype.pointsRange = function pointsRange (start, end) { + if (this.isEmpty()) { + return null; + } + + var pointsRange = CategoryAxis.prototype.pointsRange.call(this, start, end); + var datesRange = this.dataRange.displayRange(); + var indicesRange = this.dataRange.displayIndices(); + var scale = Object(_date_utils__WEBPACK_IMPORTED_MODULE_5__["dateDiff"])(datesRange.max, datesRange.min) / (indicesRange.max - indicesRange.min); + var options = this.options; + + var min = Object(_date_utils__WEBPACK_IMPORTED_MODULE_5__["addTicks"])(datesRange.min, pointsRange.min * scale); + var max = Object(_date_utils__WEBPACK_IMPORTED_MODULE_5__["addTicks"])(datesRange.min, pointsRange.max * scale); + + return { + min: min, + max: max, + baseUnit: options.userSetBaseUnit || options.baseUnit, + baseUnitStep: options.userSetBaseUnitStep || options.baseUnitStep + }; + }; + + DateCategoryAxis.prototype.zoomRange = function zoomRange (delta) { + if (this.isEmpty()) { + return null; + } + + var options = this.options; + var fit = options.userSetBaseUnit === FIT; + var totalLimits = this.dataRange.total(); + var ref = this.dataRange.displayRange(); + var rangeMin = ref.min; + var rangeMax = ref.max; + var ref$1 = this.dataRange.options; + var weekStartDay = ref$1.weekStartDay; + var baseUnit = ref$1.baseUnit; + var baseUnitStep = ref$1.baseUnitStep; + var min = Object(_date_utils__WEBPACK_IMPORTED_MODULE_5__["addDuration"])(rangeMin, delta * baseUnitStep, baseUnit, weekStartDay); + var max = Object(_date_utils__WEBPACK_IMPORTED_MODULE_5__["addDuration"])(rangeMax, -delta * baseUnitStep, baseUnit, weekStartDay); + + if (fit) { + var autoBaseUnitSteps = options.autoBaseUnitSteps; + var maxDateGroups = options.maxDateGroups; + + var maxDiff = Object(_common__WEBPACK_IMPORTED_MODULE_3__["last"])(autoBaseUnitSteps[baseUnit]) * maxDateGroups * _date_utils_constants__WEBPACK_IMPORTED_MODULE_4__["TIME_PER_UNIT"][baseUnit]; + var rangeDiff = Object(_date_utils__WEBPACK_IMPORTED_MODULE_5__["dateDiff"])(rangeMax, rangeMin); + var diff = Object(_date_utils__WEBPACK_IMPORTED_MODULE_5__["dateDiff"])(max, min); + var baseUnitIndex = BASE_UNITS.indexOf(baseUnit); + var autoBaseUnitStep, ticks; + + if (diff < _date_utils_constants__WEBPACK_IMPORTED_MODULE_4__["TIME_PER_UNIT"][baseUnit] && baseUnit !== _date_utils_constants__WEBPACK_IMPORTED_MODULE_4__["MILLISECONDS"]) { + baseUnit = BASE_UNITS[baseUnitIndex - 1]; + autoBaseUnitStep = Object(_common__WEBPACK_IMPORTED_MODULE_3__["last"])(autoBaseUnitSteps[baseUnit]); + ticks = (rangeDiff - (maxDateGroups - 1) * autoBaseUnitStep * _date_utils_constants__WEBPACK_IMPORTED_MODULE_4__["TIME_PER_UNIT"][baseUnit]) / 2; + min = Object(_date_utils__WEBPACK_IMPORTED_MODULE_5__["addTicks"])(rangeMin, ticks); + max = Object(_date_utils__WEBPACK_IMPORTED_MODULE_5__["addTicks"])(rangeMax, -ticks); + + } else if (diff > maxDiff && baseUnit !== _date_utils_constants__WEBPACK_IMPORTED_MODULE_4__["YEARS"]) { + var stepIndex = 0; + + do { + baseUnitIndex++; + baseUnit = BASE_UNITS[baseUnitIndex]; + stepIndex = 0; + ticks = 2 * _date_utils_constants__WEBPACK_IMPORTED_MODULE_4__["TIME_PER_UNIT"][baseUnit]; + do { + autoBaseUnitStep = autoBaseUnitSteps[baseUnit][stepIndex]; + stepIndex++; + } while (stepIndex < autoBaseUnitSteps[baseUnit].length && ticks * autoBaseUnitStep < rangeDiff); + } while (baseUnit !== _date_utils_constants__WEBPACK_IMPORTED_MODULE_4__["YEARS"] && ticks * autoBaseUnitStep < rangeDiff); + + ticks = (ticks * autoBaseUnitStep - rangeDiff) / 2; + if (ticks > 0) { + min = Object(_date_utils__WEBPACK_IMPORTED_MODULE_5__["addTicks"])(rangeMin, -ticks); + max = Object(_date_utils__WEBPACK_IMPORTED_MODULE_5__["addTicks"])(rangeMax, ticks); + min = Object(_date_utils__WEBPACK_IMPORTED_MODULE_5__["addTicks"])(min, Object(_common__WEBPACK_IMPORTED_MODULE_3__["limitValue"])(max, totalLimits.min, totalLimits.max) - max); + max = Object(_date_utils__WEBPACK_IMPORTED_MODULE_5__["addTicks"])(max, Object(_common__WEBPACK_IMPORTED_MODULE_3__["limitValue"])(min, totalLimits.min, totalLimits.max) - min); + } + } + } + + if (min < totalLimits.min) { + min = totalLimits.min; + } + if (max > totalLimits.max) { + max = totalLimits.max; + } + + if (min && max && Object(_date_utils__WEBPACK_IMPORTED_MODULE_5__["dateDiff"])(max, min) > 0) { + return { + min: min, + max: max, + baseUnit: options.userSetBaseUnit || options.baseUnit, + baseUnitStep: options.userSetBaseUnitStep || options.baseUnitStep + }; + } + }; + + DateCategoryAxis.prototype.range = function range () { + return this.dataRange.displayRange(); + }; + + DateCategoryAxis.prototype.createAxisLabel = function createAxisLabel (index, labelOptions) { + var options = this.options; + var dataItem = options.dataItems && !options.maxDivisions ? options.dataItems[index] : null; + var date = this.divisionRange.dateAt(index); + var unitFormat = labelOptions.dateFormats[this.divisionRange.options.baseUnit]; + + labelOptions.format = labelOptions.format || unitFormat; + var text = this.axisLabelText(date, dataItem, labelOptions); + if (text) { + return new _axis_label__WEBPACK_IMPORTED_MODULE_1__["default"](date, text, index, dataItem, labelOptions); + } + }; + + DateCategoryAxis.prototype.categoryIndex = function categoryIndex (value) { + return this.dataRange.valueIndex(value); + }; + + DateCategoryAxis.prototype.slot = function slot (from, to, limit) { + var dateRange = this.dataRange; + var start = from; + var end = to; + + if (start instanceof Date) { + start = dateRange.dateIndex(start); + } + + if (end instanceof Date) { + end = dateRange.dateIndex(end); + } + + var slot = this.getSlot(start, end, limit); + if (slot) { + return slot.toRect(); + } + }; + + DateCategoryAxis.prototype.getSlot = function getSlot (a, b, limit) { + var start = a; + var end = b; + + if (typeof start === _common_constants__WEBPACK_IMPORTED_MODULE_2__["OBJECT"]) { + start = this.categoryIndex(start); + } + + if (typeof end === _common_constants__WEBPACK_IMPORTED_MODULE_2__["OBJECT"]) { + end = this.categoryIndex(end); + } + + return CategoryAxis.prototype.getSlot.call(this, start, end, limit); + }; + + DateCategoryAxis.prototype.valueRange = function valueRange () { + var options = this.options; + var range = categoryRange(options.srcCategories); + + return { + min: Object(_date_utils__WEBPACK_IMPORTED_MODULE_5__["toDate"])(range.min), + max: Object(_date_utils__WEBPACK_IMPORTED_MODULE_5__["toDate"])(range.max) + }; + }; + + DateCategoryAxis.prototype.categoryAt = function categoryAt (index, total) { + return this.dataRange.dateAt(index, total); + }; + + DateCategoryAxis.prototype.categoriesCount = function categoriesCount () { + return this.dataRange.valuesCount(); + }; + + DateCategoryAxis.prototype.rangeIndices = function rangeIndices () { + return this.dataRange.displayIndices(); + }; + + DateCategoryAxis.prototype.labelsBetweenTicks = function labelsBetweenTicks () { + return !this.divisionRange.options.justified; + }; + + DateCategoryAxis.prototype.prepareUserOptions = function prepareUserOptions () { + if (this.isEmpty()) { + return; + } + + this.options.categories = this.dataRange.values(); + }; + + DateCategoryAxis.prototype.getCategory = function getCategory (point) { + var index = this.pointCategoryIndex(point); + + if (index === null) { + return null; + } + + return this.dataRange.dateAt(index); + }; + + DateCategoryAxis.prototype.totalIndex = function totalIndex (value) { + return this.dataRange.totalIndex(value); + }; + + DateCategoryAxis.prototype.currentRangeIndices = function currentRangeIndices () { + var range = this.dataRange.valueRange(); + return { + min: this.dataRange.totalIndex(range.min), + max: this.dataRange.totalIndex(range.max) + }; + }; + + DateCategoryAxis.prototype.totalRange = function totalRange () { + return this.dataRange.total(); + }; + + DateCategoryAxis.prototype.totalCount = function totalCount () { + return this.dataRange.totalCount(); + }; + + DateCategoryAxis.prototype.isEmpty = function isEmpty () { + return !this.options.srcCategories.length; + }; + + DateCategoryAxis.prototype.roundedRange = function roundedRange () { + if (this.options.roundToBaseUnit !== false || this.isEmpty()) { + return this.range(); + } + + var options = this.options; + var datesRange = categoryRange(options.srcCategories); + + var dateRange = new DateRange(datesRange.min, datesRange.max, Object.assign({}, options, { + justified: false, + roundToBaseUnit: true, + justifyEnd: options.justified + })); + + return dateRange.displayRange(); + }; + + return DateCategoryAxis; +}(_category_axis__WEBPACK_IMPORTED_MODULE_0__["default"])); + +Object(_common__WEBPACK_IMPORTED_MODULE_3__["setDefaultOptions"])(DateCategoryAxis, { + type: _common_constants__WEBPACK_IMPORTED_MODULE_2__["DATE"], + labels: { + dateFormats: _constants__WEBPACK_IMPORTED_MODULE_6__["DateLabelFormats"] + }, + autoBaseUnitSteps: { + milliseconds: [ 1, 10, 100 ], + seconds: [ 1, 2, 5, 15, 30 ], + minutes: [ 1, 2, 5, 15, 30 ], + hours: [ 1, 2, 3 ], + days: [ 1, 2, 3 ], + weeks: [ 1, 2 ], + months: [ 1, 2, 3, 6 ], + years: [ 1, 2, 3, 5, 10, 25, 50 ] + }, + maxDateGroups: 10 +}); + + __webpack_exports__["default"] = (DateCategoryAxis); + + + }), + + "./node_modules/@progress/kendo-charts/dist/es/core/date-value-axis.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _axis__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/axis.js"); + var _numeric_axis__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/numeric-axis.js"); + var _axis_label__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/axis-label.js"); + var _constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/constants.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + var _utils_auto_major_unit__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/utils/auto-major-unit.js"); + var _utils_ceil__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/utils/ceil.js"); + var _date_utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/date-utils.js"); + var _date_utils_constants__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/date-utils/constants.js"); + + + + + + + + + + + + + + +var DateValueAxis = (function (Axis) { + function DateValueAxis(seriesMin, seriesMax, axisOptions, chartService) { + var min = Object(_date_utils__WEBPACK_IMPORTED_MODULE_8__["toDate"])(seriesMin); + var max = Object(_date_utils__WEBPACK_IMPORTED_MODULE_8__["toDate"])(seriesMax); + + var intlService = chartService.intl; + var options = axisOptions || {}; + options = Object(_common__WEBPACK_IMPORTED_MODULE_5__["deepExtend"])(options || {}, { + min: Object(_date_utils__WEBPACK_IMPORTED_MODULE_8__["parseDate"])(intlService, options.min), + max: Object(_date_utils__WEBPACK_IMPORTED_MODULE_8__["parseDate"])(intlService, options.max), + axisCrossingValue: Object(_date_utils__WEBPACK_IMPORTED_MODULE_8__["parseDates"])(intlService, options.axisCrossingValues || options.axisCrossingValue) + }); + options = applyDefaults(min, max, options); + + Axis.call(this, options, chartService); + + this.intlService = intlService; + this.seriesMin = min; + this.seriesMax = max; + + var weekStartDay = options.weekStartDay || 0; + this.totalMin = Object(_date_utils__WEBPACK_IMPORTED_MODULE_8__["toTime"])(Object(_date_utils__WEBPACK_IMPORTED_MODULE_8__["floorDate"])(Object(_date_utils__WEBPACK_IMPORTED_MODULE_8__["toTime"])(min) - 1, options.baseUnit, weekStartDay)); + this.totalMax = Object(_date_utils__WEBPACK_IMPORTED_MODULE_8__["toTime"])(Object(_date_utils__WEBPACK_IMPORTED_MODULE_8__["ceilDate"])(Object(_date_utils__WEBPACK_IMPORTED_MODULE_8__["toTime"])(max) + 1, options.baseUnit, weekStartDay)); + } + + if ( Axis ) DateValueAxis.__proto__ = Axis; + DateValueAxis.prototype = Object.create( Axis && Axis.prototype ); + DateValueAxis.prototype.constructor = DateValueAxis; + + DateValueAxis.prototype.clone = function clone () { + return new DateValueAxis(this.seriesMin, this.seriesMax, Object.assign({}, this.options), this.chartService); + }; + + DateValueAxis.prototype.range = function range () { + var options = this.options; + return { min: options.min, max: options.max }; + }; + + DateValueAxis.prototype.getDivisions = function getDivisions (stepValue) { + var options = this.options; + + return Math.floor( + Object(_date_utils__WEBPACK_IMPORTED_MODULE_8__["duration"])(options.min, options.max, options.baseUnit) / stepValue + 1 + ); + }; + + DateValueAxis.prototype.getTickPositions = function getTickPositions (step) { + var options = this.options; + var vertical = options.vertical; + var lineBox = this.lineBox(); + var dir = (vertical ? -1 : 1) * (options.reverse ? -1 : 1); + var startEdge = dir === 1 ? 1 : 2; + var start = lineBox[(vertical ? _common_constants__WEBPACK_IMPORTED_MODULE_4__["Y"] : _common_constants__WEBPACK_IMPORTED_MODULE_4__["X"]) + startEdge]; + var divisions = this.getDivisions(step); + var timeRange = Object(_date_utils__WEBPACK_IMPORTED_MODULE_8__["dateDiff"])(options.max, options.min); + var lineSize = vertical ? lineBox.height() : lineBox.width(); + var scale = lineSize / timeRange; + var weekStartDay = options.weekStartDay || 0; + + var positions = [ start ]; + for (var i = 1; i < divisions; i++) { + var date = Object(_date_utils__WEBPACK_IMPORTED_MODULE_8__["addDuration"])(options.min, i * step, options.baseUnit, weekStartDay); + var pos = start + Object(_date_utils__WEBPACK_IMPORTED_MODULE_8__["dateDiff"])(date, options.min) * scale * dir; + + positions.push(Object(_common__WEBPACK_IMPORTED_MODULE_5__["round"])(pos, _common_constants__WEBPACK_IMPORTED_MODULE_4__["COORD_PRECISION"])); + } + + return positions; + }; + + DateValueAxis.prototype.getMajorTickPositions = function getMajorTickPositions () { + return this.getTickPositions(this.options.majorUnit); + }; + + DateValueAxis.prototype.getMinorTickPositions = function getMinorTickPositions () { + return this.getTickPositions(this.options.minorUnit); + }; + + DateValueAxis.prototype.getSlot = function getSlot (a, b, limit) { + return _numeric_axis__WEBPACK_IMPORTED_MODULE_1__["default"].prototype.getSlot.call( + this, Object(_date_utils__WEBPACK_IMPORTED_MODULE_8__["parseDate"])(this.intlService, a), Object(_date_utils__WEBPACK_IMPORTED_MODULE_8__["parseDate"])(this.intlService, b), limit + ); + }; + + DateValueAxis.prototype.getValue = function getValue (point) { + var value = _numeric_axis__WEBPACK_IMPORTED_MODULE_1__["default"].prototype.getValue.call(this, point); + + return value !== null ? Object(_date_utils__WEBPACK_IMPORTED_MODULE_8__["toDate"])(value) : null; + }; + + DateValueAxis.prototype.labelsCount = function labelsCount () { + return this.getDivisions(this.options.majorUnit); + }; + + DateValueAxis.prototype.createAxisLabel = function createAxisLabel (index, labelOptions) { + var options = this.options; + var offset = index * options.majorUnit; + var weekStartDay = options.weekStartDay || 0; + var date = options.min; + + if (offset > 0) { + date = Object(_date_utils__WEBPACK_IMPORTED_MODULE_8__["addDuration"])(date, offset, options.baseUnit, weekStartDay); + } + + var unitFormat = labelOptions.dateFormats[options.baseUnit]; + labelOptions.format = labelOptions.format || unitFormat; + + var text = this.axisLabelText(date, null, labelOptions); + return new _axis_label__WEBPACK_IMPORTED_MODULE_2__["default"](date, text, index, null, labelOptions); + }; + + DateValueAxis.prototype.translateRange = function translateRange (delta, exact) { + var options = this.options; + var baseUnit = options.baseUnit; + var weekStartDay = options.weekStartDay || 0; + var lineBox = this.lineBox(); + var size = options.vertical ? lineBox.height() : lineBox.width(); + var range = this.range(); + var scale = size / Object(_date_utils__WEBPACK_IMPORTED_MODULE_8__["dateDiff"])(range.max, range.min); + var offset = Object(_common__WEBPACK_IMPORTED_MODULE_5__["round"])(delta / scale, _common_constants__WEBPACK_IMPORTED_MODULE_4__["DEFAULT_PRECISION"]) * (options.reverse ? -1 : 1); + var from = Object(_date_utils__WEBPACK_IMPORTED_MODULE_8__["addTicks"])(options.min, offset); + var to = Object(_date_utils__WEBPACK_IMPORTED_MODULE_8__["addTicks"])(options.max, offset); + + if (!exact) { + from = Object(_date_utils__WEBPACK_IMPORTED_MODULE_8__["addDuration"])(from, 0, baseUnit, weekStartDay); + to = Object(_date_utils__WEBPACK_IMPORTED_MODULE_8__["addDuration"])(to, 0, baseUnit, weekStartDay); + } + + return { + min: from, + max: to, + offset: offset + }; + }; + + DateValueAxis.prototype.scaleRange = function scaleRange (delta) { + var ref = this.options; + var from = ref.min; + var to = ref.max; + var rounds = Math.abs(delta); + + while (rounds--) { + var range = Object(_date_utils__WEBPACK_IMPORTED_MODULE_8__["dateDiff"])(from, to); + var step = Math.round(range * 0.1); + if (delta < 0) { + from = Object(_date_utils__WEBPACK_IMPORTED_MODULE_8__["addTicks"])(from, step); + to = Object(_date_utils__WEBPACK_IMPORTED_MODULE_8__["addTicks"])(to, -step); + } else { + from = Object(_date_utils__WEBPACK_IMPORTED_MODULE_8__["addTicks"])(from, -step); + to = Object(_date_utils__WEBPACK_IMPORTED_MODULE_8__["addTicks"])(to, step); + } + } + + return { min: from, max: to }; + }; + + DateValueAxis.prototype.shouldRenderNote = function shouldRenderNote (value) { + var range = this.range(); + + return Object(_date_utils__WEBPACK_IMPORTED_MODULE_8__["dateComparer"])(value, range.min) >= 0 && Object(_date_utils__WEBPACK_IMPORTED_MODULE_8__["dateComparer"])(value, range.max) <= 0; + }; + + DateValueAxis.prototype.pan = function pan (delta) { + var range = this.translateRange(delta, true); + var limittedRange = this.limitRange(Object(_date_utils__WEBPACK_IMPORTED_MODULE_8__["toTime"])(range.min), Object(_date_utils__WEBPACK_IMPORTED_MODULE_8__["toTime"])(range.max), this.totalMin, this.totalMax, range.offset); + + if (limittedRange) { + return { + min: Object(_date_utils__WEBPACK_IMPORTED_MODULE_8__["toDate"])(limittedRange.min), + max: Object(_date_utils__WEBPACK_IMPORTED_MODULE_8__["toDate"])(limittedRange.max) + }; + } + }; + + DateValueAxis.prototype.pointsRange = function pointsRange (start, end) { + var startValue = this.getValue(start); + var endValue = this.getValue(end); + var min = Math.min(startValue, endValue); + var max = Math.max(startValue, endValue); + + return { + min: Object(_date_utils__WEBPACK_IMPORTED_MODULE_8__["toDate"])(min), + max: Object(_date_utils__WEBPACK_IMPORTED_MODULE_8__["toDate"])(max) + }; + }; + + DateValueAxis.prototype.zoomRange = function zoomRange (delta) { + var range = this.scaleRange(delta); + var min = Object(_date_utils__WEBPACK_IMPORTED_MODULE_8__["toDate"])(Object(_common__WEBPACK_IMPORTED_MODULE_5__["limitValue"])(Object(_date_utils__WEBPACK_IMPORTED_MODULE_8__["toTime"])(range.min), this.totalMin, this.totalMax)); + var max = Object(_date_utils__WEBPACK_IMPORTED_MODULE_8__["toDate"])(Object(_common__WEBPACK_IMPORTED_MODULE_5__["limitValue"])(Object(_date_utils__WEBPACK_IMPORTED_MODULE_8__["toTime"])(range.max), this.totalMin, this.totalMax)); + + return { + min: min, + max: max + }; + }; + + return DateValueAxis; +}(_axis__WEBPACK_IMPORTED_MODULE_0__["default"])); + +function timeUnits(delta) { + var unit = _date_utils_constants__WEBPACK_IMPORTED_MODULE_9__["HOURS"]; + + if (delta >= _date_utils_constants__WEBPACK_IMPORTED_MODULE_9__["TIME_PER_YEAR"]) { + unit = _date_utils_constants__WEBPACK_IMPORTED_MODULE_9__["YEARS"]; + } else if (delta >= _date_utils_constants__WEBPACK_IMPORTED_MODULE_9__["TIME_PER_MONTH"]) { + unit = _date_utils_constants__WEBPACK_IMPORTED_MODULE_9__["MONTHS"]; + } else if (delta >= _date_utils_constants__WEBPACK_IMPORTED_MODULE_9__["TIME_PER_WEEK"]) { + unit = _date_utils_constants__WEBPACK_IMPORTED_MODULE_9__["WEEKS"]; + } else if (delta >= _date_utils_constants__WEBPACK_IMPORTED_MODULE_9__["TIME_PER_DAY"]) { + unit = _date_utils_constants__WEBPACK_IMPORTED_MODULE_9__["DAYS"]; + } + + return unit; +} + +function applyDefaults(seriesMin, seriesMax, options) { + var min = options.min || seriesMin; + var max = options.max || seriesMax; + var baseUnit = options.baseUnit || (max && min ? timeUnits(Object(_date_utils__WEBPACK_IMPORTED_MODULE_8__["absoluteDateDiff"])(max, min)) : _date_utils_constants__WEBPACK_IMPORTED_MODULE_9__["HOURS"]); + var baseUnitTime = _date_utils_constants__WEBPACK_IMPORTED_MODULE_9__["TIME_PER_UNIT"][baseUnit]; + var weekStartDay = options.weekStartDay || 0; + var autoMin = Object(_date_utils__WEBPACK_IMPORTED_MODULE_8__["floorDate"])(Object(_date_utils__WEBPACK_IMPORTED_MODULE_8__["toTime"])(min) - 1, baseUnit, weekStartDay) || Object(_date_utils__WEBPACK_IMPORTED_MODULE_8__["toDate"])(max); + var autoMax = Object(_date_utils__WEBPACK_IMPORTED_MODULE_8__["ceilDate"])(Object(_date_utils__WEBPACK_IMPORTED_MODULE_8__["toTime"])(max) + 1, baseUnit, weekStartDay); + var userMajorUnit = options.majorUnit ? options.majorUnit : undefined; + var majorUnit = userMajorUnit || Object(_utils_ceil__WEBPACK_IMPORTED_MODULE_7__["default"])( + Object(_utils_auto_major_unit__WEBPACK_IMPORTED_MODULE_6__["default"])(autoMin.getTime(), autoMax.getTime()), + baseUnitTime + ) / baseUnitTime; + var actualUnits = Object(_date_utils__WEBPACK_IMPORTED_MODULE_8__["duration"])(autoMin, autoMax, baseUnit); + var totalUnits = Object(_utils_ceil__WEBPACK_IMPORTED_MODULE_7__["default"])(actualUnits, majorUnit); + var unitsToAdd = totalUnits - actualUnits; + var head = Math.floor(unitsToAdd / 2); + var tail = unitsToAdd - head; + + if (!options.baseUnit) { + delete options.baseUnit; + } + + options.baseUnit = options.baseUnit || baseUnit; + options.min = options.min || Object(_date_utils__WEBPACK_IMPORTED_MODULE_8__["addDuration"])(autoMin, -head, baseUnit, weekStartDay); + options.max = options.max || Object(_date_utils__WEBPACK_IMPORTED_MODULE_8__["addDuration"])(autoMax, tail, baseUnit, weekStartDay); + options.minorUnit = options.minorUnit || majorUnit / 5; + options.majorUnit = majorUnit; + + return options; +} + +Object(_common__WEBPACK_IMPORTED_MODULE_5__["setDefaultOptions"])(DateValueAxis, { + type: _common_constants__WEBPACK_IMPORTED_MODULE_4__["DATE"], + majorGridLines: { + visible: true, + width: 1, + color: _common_constants__WEBPACK_IMPORTED_MODULE_4__["BLACK"] + }, + labels: { + dateFormats: _constants__WEBPACK_IMPORTED_MODULE_3__["DateLabelFormats"] + } +}); + + __webpack_exports__["default"] = (DateValueAxis); + + + }), + + "./node_modules/@progress/kendo-charts/dist/es/core/float-element.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _chart_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/chart-element.js"); + var _box__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/box.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + + + +var FloatElement = (function (ChartElement) { + function FloatElement(options) { + ChartElement.call(this, options); + this._initDirection(); + } + + if ( ChartElement ) FloatElement.__proto__ = ChartElement; + FloatElement.prototype = Object.create( ChartElement && ChartElement.prototype ); + FloatElement.prototype.constructor = FloatElement; + + FloatElement.prototype._initDirection = function _initDirection () { + var options = this.options; + if (options.vertical) { + this.groupAxis = _common_constants__WEBPACK_IMPORTED_MODULE_2__["X"]; + this.elementAxis = _common_constants__WEBPACK_IMPORTED_MODULE_2__["Y"]; + this.groupSizeField = _common_constants__WEBPACK_IMPORTED_MODULE_2__["WIDTH"]; + this.elementSizeField = _common_constants__WEBPACK_IMPORTED_MODULE_2__["HEIGHT"]; + this.groupSpacing = options.spacing; + this.elementSpacing = options.vSpacing; + } else { + this.groupAxis = _common_constants__WEBPACK_IMPORTED_MODULE_2__["Y"]; + this.elementAxis = _common_constants__WEBPACK_IMPORTED_MODULE_2__["X"]; + this.groupSizeField = _common_constants__WEBPACK_IMPORTED_MODULE_2__["HEIGHT"]; + this.elementSizeField = _common_constants__WEBPACK_IMPORTED_MODULE_2__["WIDTH"]; + this.groupSpacing = options.vSpacing; + this.elementSpacing = options.spacing; + } + }; + + FloatElement.prototype.reflow = function reflow (targetBox) { + this.box = targetBox.clone(); + this.reflowChildren(); + }; + + FloatElement.prototype.reflowChildren = function reflowChildren () { + var this$1 = this; + + var ref = this; + var box = ref.box; + var elementAxis = ref.elementAxis; + var groupAxis = ref.groupAxis; + var elementSizeField = ref.elementSizeField; + var groupSizeField = ref.groupSizeField; + var ref$1 = this.groupOptions(); + var groups = ref$1.groups; + var groupsSize = ref$1.groupsSize; + var maxGroupElementsSize = ref$1.maxGroupElementsSize; + var groupsCount = groups.length; + var groupsStart = box[groupAxis + 1] + this.alignStart(groupsSize, box[groupSizeField]()); + + if (groupsCount) { + var groupStart = groupsStart; + + for (var groupIdx = 0; groupIdx < groupsCount; groupIdx++) { + var group = groups[groupIdx]; + var groupElements = group.groupElements; + var elementStart = box[elementAxis + 1]; + var groupElementsCount = groupElements.length; + + for (var idx = 0; idx < groupElementsCount; idx++) { + var element = groupElements[idx]; + var elementSize = this$1.elementSize(element); + var groupElementStart = groupStart + this$1.alignStart(elementSize[groupSizeField], group.groupSize); + + var elementBox = new _box__WEBPACK_IMPORTED_MODULE_1__["default"](); + elementBox[groupAxis + 1] = groupElementStart; + elementBox[groupAxis + 2] = groupElementStart + elementSize[groupSizeField]; + elementBox[elementAxis + 1] = elementStart; + elementBox[elementAxis + 2] = elementStart + elementSize[elementSizeField]; + + element.reflow(elementBox); + + elementStart += elementSize[elementSizeField] + this$1.elementSpacing; + } + groupStart += group.groupSize + this$1.groupSpacing; + } + box[groupAxis + 1] = groupsStart; + box[groupAxis + 2] = groupsStart + groupsSize; + box[elementAxis + 2] = box[elementAxis + 1] + maxGroupElementsSize; + } + }; + + FloatElement.prototype.alignStart = function alignStart (size, maxSize) { + var start = 0; + var align = this.options.align; + if (align === _common_constants__WEBPACK_IMPORTED_MODULE_2__["RIGHT"] || align === _common_constants__WEBPACK_IMPORTED_MODULE_2__["BOTTOM"]) { + start = maxSize - size; + } else if (align === _common_constants__WEBPACK_IMPORTED_MODULE_2__["CENTER"]) { + start = (maxSize - size) / 2; + } + return start; + }; + + FloatElement.prototype.groupOptions = function groupOptions () { + var this$1 = this; + + var ref = this; + var box = ref.box; + var children = ref.children; + var elementSizeField = ref.elementSizeField; + var groupSizeField = ref.groupSizeField; + var elementSpacing = ref.elementSpacing; + var groupSpacing = ref.groupSpacing; + var maxSize = Object(_common__WEBPACK_IMPORTED_MODULE_3__["round"])(box[elementSizeField]()); + var childrenCount = children.length; + var groups = []; + + var groupSize = 0; + var groupElementsSize = 0; + var groupsSize = 0; + var maxGroupElementsSize = 0; + var groupElements = []; + + for (var idx = 0; idx < childrenCount; idx++) { + var element = children[idx]; + if (!element.box) { + element.reflow(box); + } + + var elementSize = this$1.elementSize(element); + if (this$1.options.wrap && Object(_common__WEBPACK_IMPORTED_MODULE_3__["round"])(groupElementsSize + elementSpacing + elementSize[elementSizeField]) > maxSize) { + groups.push({ + groupElements: groupElements, + groupSize: groupSize, + groupElementsSize: groupElementsSize + }); + maxGroupElementsSize = Math.max(maxGroupElementsSize, groupElementsSize); + groupsSize += groupSpacing + groupSize; + groupSize = 0; + groupElementsSize = 0; + groupElements = []; + } + groupSize = Math.max(groupSize, elementSize[groupSizeField]); + if (groupElementsSize > 0) { + groupElementsSize += elementSpacing; + } + groupElementsSize += elementSize[elementSizeField]; + groupElements.push(element); + } + + groups.push({ + groupElements: groupElements, + groupSize: groupSize, + groupElementsSize: groupElementsSize + }); + maxGroupElementsSize = Math.max(maxGroupElementsSize, groupElementsSize); + groupsSize += groupSize; + + return { + groups: groups, + groupsSize: groupsSize, + maxGroupElementsSize: maxGroupElementsSize + }; + }; + + FloatElement.prototype.elementSize = function elementSize (element) { + return { + width: element.box.width(), + height: element.box.height() + }; + }; + + FloatElement.prototype.createVisual = function createVisual () {}; + + return FloatElement; +}(_chart_element__WEBPACK_IMPORTED_MODULE_0__["default"])); + +Object(_common__WEBPACK_IMPORTED_MODULE_3__["setDefaultOptions"])(FloatElement, { + vertical: true, + wrap: true, + vSpacing: 0, + spacing: 0 +}); + + __webpack_exports__["default"] = (FloatElement); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/core/gradients.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _common_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + + +var LINEAR = "linear"; +var RADIAL = "radial"; + +var GRADIENTS = { + glass: { + type: LINEAR, + rotation: 0, + stops: [ { + offset: 0, + color: _common_constants__WEBPACK_IMPORTED_MODULE_0__["WHITE"], + opacity: 0 + }, { + offset: 0.25, + color: _common_constants__WEBPACK_IMPORTED_MODULE_0__["WHITE"], + opacity: 0.3 + }, { + offset: 1, + color: _common_constants__WEBPACK_IMPORTED_MODULE_0__["WHITE"], + opacity: 0 + } ] + }, + sharpBevel: { + type: RADIAL, + stops: [ { + offset: 0, + color: _common_constants__WEBPACK_IMPORTED_MODULE_0__["WHITE"], + opacity: 0.55 + }, { + offset: 0.65, + color: _common_constants__WEBPACK_IMPORTED_MODULE_0__["WHITE"], + opacity: 0 + }, { + offset: 0.95, + color: _common_constants__WEBPACK_IMPORTED_MODULE_0__["WHITE"], + opacity: 0.25 + } ] + }, + roundedBevel: { + type: RADIAL, + stops: [ { + offset: 0.33, + color: _common_constants__WEBPACK_IMPORTED_MODULE_0__["WHITE"], + opacity: 0.06 + }, { + offset: 0.83, + color: _common_constants__WEBPACK_IMPORTED_MODULE_0__["WHITE"], + opacity: 0.2 + }, { + offset: 0.95, + color: _common_constants__WEBPACK_IMPORTED_MODULE_0__["WHITE"], + opacity: 0 + } ] + }, + roundedGlass: { + type: RADIAL, + supportVML: false, + stops: [ { + offset: 0, + color: _common_constants__WEBPACK_IMPORTED_MODULE_0__["WHITE"], + opacity: 0 + }, { + offset: 0.5, + color: _common_constants__WEBPACK_IMPORTED_MODULE_0__["WHITE"], + opacity: 0.3 + }, { + offset: 0.99, + color: _common_constants__WEBPACK_IMPORTED_MODULE_0__["WHITE"], + opacity: 0 + } ] + }, + sharpGlass: { + type: RADIAL, + supportVML: false, + stops: [ { + offset: 0, + color: _common_constants__WEBPACK_IMPORTED_MODULE_0__["WHITE"], + opacity: 0.2 + }, { + offset: 0.15, + color: _common_constants__WEBPACK_IMPORTED_MODULE_0__["WHITE"], + opacity: 0.15 + }, { + offset: 0.17, + color: _common_constants__WEBPACK_IMPORTED_MODULE_0__["WHITE"], + opacity: 0.35 + }, { + offset: 0.85, + color: _common_constants__WEBPACK_IMPORTED_MODULE_0__["WHITE"], + opacity: 0.05 + }, { + offset: 0.87, + color: _common_constants__WEBPACK_IMPORTED_MODULE_0__["WHITE"], + opacity: 0.15 + }, { + offset: 0.99, + color: _common_constants__WEBPACK_IMPORTED_MODULE_0__["WHITE"], + opacity: 0 + } ] + }, + bubbleShadow: { + type: RADIAL, + center: [ 0.5, 0.5 ], + radius: 0.5 + } +}; + + __webpack_exports__["default"] = (GRADIENTS); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/core/logarithmic-axis.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _axis__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/axis.js"); + var _axis_label__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/axis-label.js"); + var _box__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/box.js"); + var _utils_create_axis_tick__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/utils/create-axis-tick.js"); + var _utils_create_axis_grid_line__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/utils/create-axis-grid-line.js"); + var _utils_limit_coordinate__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/utils/limit-coordinate.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + + + + + + + + + +var DEFAULT_MAJOR_UNIT = 10; + +var LogarithmicAxis = (function (Axis) { + function LogarithmicAxis(seriesMin, seriesMax, options, chartService) { + + var axisOptions = Object(_common__WEBPACK_IMPORTED_MODULE_7__["deepExtend"])({ majorUnit: DEFAULT_MAJOR_UNIT, min: seriesMin, max: seriesMax }, options); + var base = axisOptions.majorUnit; + var autoMax = autoAxisMax(seriesMax, base); + var autoMin = autoAxisMin(seriesMin, seriesMax, axisOptions); + var range = initRange(autoMin, autoMax, axisOptions, options); + + axisOptions.max = range.max; + axisOptions.min = range.min; + axisOptions.minorUnit = options.minorUnit || Object(_common__WEBPACK_IMPORTED_MODULE_7__["round"])(base - 1, _common_constants__WEBPACK_IMPORTED_MODULE_6__["DEFAULT_PRECISION"]); + + Axis.call(this, axisOptions, chartService); + + this.totalMin = Object(_common__WEBPACK_IMPORTED_MODULE_7__["defined"])(options.min) ? Math.min(autoMin, options.min) : autoMin; + this.totalMax = Object(_common__WEBPACK_IMPORTED_MODULE_7__["defined"])(options.max) ? Math.max(autoMax, options.max) : autoMax; + this.logMin = Object(_common__WEBPACK_IMPORTED_MODULE_7__["round"])(log(range.min, base), _common_constants__WEBPACK_IMPORTED_MODULE_6__["DEFAULT_PRECISION"]); + this.logMax = Object(_common__WEBPACK_IMPORTED_MODULE_7__["round"])(log(range.max, base), _common_constants__WEBPACK_IMPORTED_MODULE_6__["DEFAULT_PRECISION"]); + this.seriesMin = seriesMin; + this.seriesMax = seriesMax; + + this.createLabels(); + } + + if ( Axis ) LogarithmicAxis.__proto__ = Axis; + LogarithmicAxis.prototype = Object.create( Axis && Axis.prototype ); + LogarithmicAxis.prototype.constructor = LogarithmicAxis; + + LogarithmicAxis.prototype.clone = function clone () { + return new LogarithmicAxis( + this.seriesMin, + this.seriesMax, + Object.assign({}, this.options), + this.chartService + ); + }; + + LogarithmicAxis.prototype.startValue = function startValue () { + return this.options.min; + }; + + LogarithmicAxis.prototype.getSlot = function getSlot (a, b, limit) { + var ref = this; + var options = ref.options; + var logMin = ref.logMin; + var logMax = ref.logMax; + var reverse = options.reverse; + var vertical = options.vertical; + var base = options.majorUnit; + var valueAxis = vertical ? _common_constants__WEBPACK_IMPORTED_MODULE_6__["Y"] : _common_constants__WEBPACK_IMPORTED_MODULE_6__["X"]; + var lineBox = this.lineBox(); + var lineStart = lineBox[valueAxis + (reverse ? 2 : 1)]; + var lineSize = vertical ? lineBox.height() : lineBox.width(); + var dir = reverse ? -1 : 1; + var step = dir * (lineSize / (logMax - logMin)); + var slotBox = new _box__WEBPACK_IMPORTED_MODULE_2__["default"](lineBox.x1, lineBox.y1, lineBox.x1, lineBox.y1); + var start = a; + var end = b; + + if (!Object(_common__WEBPACK_IMPORTED_MODULE_7__["defined"])(start)) { + start = end || 1; + } + + if (!Object(_common__WEBPACK_IMPORTED_MODULE_7__["defined"])(end)) { + end = start || 1; + } + + if (start <= 0 || end <= 0) { + return null; + } + + if (limit) { + start = Math.max(Math.min(start, options.max), options.min); + end = Math.max(Math.min(end, options.max), options.min); + } + + start = log(start, base); + end = log(end, base); + + var p1, p2; + + if (vertical) { + p1 = logMax - Math.max(start, end); + p2 = logMax - Math.min(start, end); + } else { + p1 = Math.min(start, end) - logMin; + p2 = Math.max(start, end) - logMin; + } + + slotBox[valueAxis + 1] = Object(_utils_limit_coordinate__WEBPACK_IMPORTED_MODULE_5__["default"])(lineStart + step * (reverse ? p2 : p1)); + slotBox[valueAxis + 2] = Object(_utils_limit_coordinate__WEBPACK_IMPORTED_MODULE_5__["default"])(lineStart + step * (reverse ? p1 : p2)); + + return slotBox; + }; + + LogarithmicAxis.prototype.getValue = function getValue (point) { + var ref = this; + var options = ref.options; + var logMin = ref.logMin; + var logMax = ref.logMax; + var reverse = options.reverse; + var vertical = options.vertical; + var base = options.majorUnit; + var lineBox = this.lineBox(); + var dir = vertical === reverse ? 1 : -1; + var startEdge = dir === 1 ? 1 : 2; + var lineSize = vertical ? lineBox.height() : lineBox.width(); + var step = ((logMax - logMin) / lineSize); + var valueAxis = vertical ? _common_constants__WEBPACK_IMPORTED_MODULE_6__["Y"] : _common_constants__WEBPACK_IMPORTED_MODULE_6__["X"]; + var lineStart = lineBox[valueAxis + startEdge]; + var offset = dir * (point[valueAxis] - lineStart); + var valueOffset = offset * step; + + if (offset < 0 || offset > lineSize) { + return null; + } + + var value = logMin + valueOffset; + + return Object(_common__WEBPACK_IMPORTED_MODULE_7__["round"])(Math.pow(base, value), _common_constants__WEBPACK_IMPORTED_MODULE_6__["DEFAULT_PRECISION"]); + }; + + LogarithmicAxis.prototype.range = function range () { + var options = this.options; + return { min: options.min, max: options.max }; + }; + + LogarithmicAxis.prototype.scaleRange = function scaleRange (delta) { + var base = this.options.majorUnit; + var offset = -delta; + + return { + min: Math.pow(base, this.logMin - offset), + max: Math.pow(base, this.logMax + offset) + }; + }; + + LogarithmicAxis.prototype.translateRange = function translateRange (delta) { + var ref = this; + var options = ref.options; + var logMin = ref.logMin; + var logMax = ref.logMax; + var reverse = options.reverse; + var vertical = options.vertical; + var base = options.majorUnit; + var lineBox = this.lineBox(); + var size = vertical ? lineBox.height() : lineBox.width(); + var scale = size / (logMax - logMin); + var offset = Object(_common__WEBPACK_IMPORTED_MODULE_7__["round"])(delta / scale, _common_constants__WEBPACK_IMPORTED_MODULE_6__["DEFAULT_PRECISION"]); + + if ((vertical || reverse) && !(vertical && reverse )) { + offset = -offset; + } + + return { + min: Math.pow(base, logMin + offset), + max: Math.pow(base, logMax + offset), + offset: offset + }; + }; + + LogarithmicAxis.prototype.labelsCount = function labelsCount () { + var floorMax = Math.floor(this.logMax); + var count = Math.floor(floorMax - this.logMin) + 1; + + return count; + }; + + LogarithmicAxis.prototype.getMajorTickPositions = function getMajorTickPositions () { + var ticks = []; + + this.traverseMajorTicksPositions(function (position) { + ticks.push(position); + }, { step: 1, skip: 0 }); + + return ticks; + }; + + LogarithmicAxis.prototype.createTicks = function createTicks (lineGroup) { + var options = this.options; + var majorTicks = options.majorTicks; + var minorTicks = options.minorTicks; + var vertical = options.vertical; + var mirror = options.labels.mirror; + var lineBox = this.lineBox(); + var ticks = []; + var tickLineOptions = { + // TODO + // _alignLines: options._alignLines, + vertical: vertical + }; + + function render(tickPosition, tickOptions) { + tickLineOptions.tickX = mirror ? lineBox.x2 : lineBox.x2 - tickOptions.size; + tickLineOptions.tickY = mirror ? lineBox.y1 - tickOptions.size : lineBox.y1; + tickLineOptions.position = tickPosition; + + lineGroup.append(Object(_utils_create_axis_tick__WEBPACK_IMPORTED_MODULE_3__["default"])(tickLineOptions, tickOptions)); + } + + if (majorTicks.visible) { + this.traverseMajorTicksPositions(render, majorTicks); + } + + if (minorTicks.visible) { + this.traverseMinorTicksPositions(render, minorTicks); + } + + return ticks; + }; + + LogarithmicAxis.prototype.createGridLines = function createGridLines (altAxis) { + var options = this.options; + var minorGridLines = options.minorGridLines; + var majorGridLines = options.majorGridLines; + var vertical = options.vertical; + var lineBox = altAxis.lineBox(); + var lineOptions = { + lineStart: lineBox[vertical ? "x1" : "y1"], + lineEnd: lineBox[vertical ? "x2" : "y2"], + vertical: vertical + }; + var majorTicks = []; + + var container = this.gridLinesVisual(); + function render(tickPosition, gridLine) { + if (!Object(_common__WEBPACK_IMPORTED_MODULE_7__["inArray"])(tickPosition, majorTicks)) { + lineOptions.position = tickPosition; + container.append(Object(_utils_create_axis_grid_line__WEBPACK_IMPORTED_MODULE_4__["default"])(lineOptions, gridLine)); + + majorTicks.push(tickPosition); + } + } + + if (majorGridLines.visible) { + this.traverseMajorTicksPositions(render, majorGridLines); + } + + if (minorGridLines.visible) { + this.traverseMinorTicksPositions(render, minorGridLines); + } + + return container.children; + }; + + LogarithmicAxis.prototype.traverseMajorTicksPositions = function traverseMajorTicksPositions (callback, tickOptions) { + var ref = this._lineOptions(); + var lineStart = ref.lineStart; + var step = ref.step; + var ref$1 = this; + var logMin = ref$1.logMin; + var logMax = ref$1.logMax; + + for (var power = Math.ceil(logMin) + tickOptions.skip; power <= logMax; power += tickOptions.step) { + var position = Object(_common__WEBPACK_IMPORTED_MODULE_7__["round"])(lineStart + step * (power - logMin), _common_constants__WEBPACK_IMPORTED_MODULE_6__["DEFAULT_PRECISION"]); + callback(position, tickOptions); + } + }; + + LogarithmicAxis.prototype.traverseMinorTicksPositions = function traverseMinorTicksPositions (callback, tickOptions) { + var this$1 = this; + + var ref = this.options; + var min = ref.min; + var max = ref.max; + var minorUnit = ref.minorUnit; + var base = ref.majorUnit; + var ref$1 = this._lineOptions(); + var lineStart = ref$1.lineStart; + var step = ref$1.step; + var ref$2 = this; + var logMin = ref$2.logMin; + var logMax = ref$2.logMax; + var start = Math.floor(logMin); + + for (var power = start; power < logMax; power++) { + var minorOptions = this$1._minorIntervalOptions(power); + for (var idx = tickOptions.skip; idx < minorUnit; idx += tickOptions.step) { + var value = minorOptions.value + idx * minorOptions.minorStep; + if (value > max) { + break; + } + if (value >= min) { + var position = Object(_common__WEBPACK_IMPORTED_MODULE_7__["round"])(lineStart + step * (log(value, base) - logMin), _common_constants__WEBPACK_IMPORTED_MODULE_6__["DEFAULT_PRECISION"]); + callback(position, tickOptions); + } + } + } + }; + + LogarithmicAxis.prototype.createAxisLabel = function createAxisLabel (index, labelOptions) { + var power = Math.ceil(this.logMin + index); + var value = Math.pow(this.options.majorUnit, power); + var text = this.axisLabelText(value, null, labelOptions); + + return new _axis_label__WEBPACK_IMPORTED_MODULE_1__["default"](value, text, index, null, labelOptions); + }; + + LogarithmicAxis.prototype.shouldRenderNote = function shouldRenderNote (value) { + var range = this.range(); + return range.min <= value && value <= range.max; + }; + + LogarithmicAxis.prototype.pan = function pan (delta) { + var range = this.translateRange(delta); + return this.limitRange(range.min, range.max, this.totalMin, this.totalMax, range.offset); + }; + + LogarithmicAxis.prototype.pointsRange = function pointsRange (start, end) { + var startValue = this.getValue(start); + var endValue = this.getValue(end); + var min = Math.min(startValue, endValue); + var max = Math.max(startValue, endValue); + + return { + min: min, + max: max + }; + }; + + LogarithmicAxis.prototype.zoomRange = function zoomRange (delta) { + var ref = this; + var options = ref.options; + var totalMin = ref.totalMin; + var totalMax = ref.totalMax; + var newRange = this.scaleRange(delta); + var min = Object(_common__WEBPACK_IMPORTED_MODULE_7__["limitValue"])(newRange.min, totalMin, totalMax); + var max = Object(_common__WEBPACK_IMPORTED_MODULE_7__["limitValue"])(newRange.max, totalMin, totalMax); + var base = options.majorUnit; + var acceptOptionsRange = max > min && options.min && options.max && (Object(_common__WEBPACK_IMPORTED_MODULE_7__["round"])(log(options.max, base) - log(options.min, base), _common_constants__WEBPACK_IMPORTED_MODULE_6__["DEFAULT_PRECISION"]) < 1); + var acceptNewRange = !(options.min === totalMin && options.max === totalMax) && Object(_common__WEBPACK_IMPORTED_MODULE_7__["round"])(log(max, base) - log(min, base), _common_constants__WEBPACK_IMPORTED_MODULE_6__["DEFAULT_PRECISION"]) >= 1; + + if (acceptOptionsRange || acceptNewRange) { + return { + min: min, + max: max + }; + } + }; + + LogarithmicAxis.prototype._minorIntervalOptions = function _minorIntervalOptions (power) { + var ref = this.options; + var minorUnit = ref.minorUnit; + var base = ref.majorUnit; + var value = Math.pow(base, power); + var nextValue = Math.pow(base, power + 1); + var difference = nextValue - value; + var minorStep = difference / minorUnit; + + return { + value: value, + minorStep: minorStep + }; + }; + + LogarithmicAxis.prototype._lineOptions = function _lineOptions () { + var ref = this.options; + var reverse = ref.reverse; + var vertical = ref.vertical; + var valueAxis = vertical ? _common_constants__WEBPACK_IMPORTED_MODULE_6__["Y"] : _common_constants__WEBPACK_IMPORTED_MODULE_6__["X"]; + var lineBox = this.lineBox(); + var dir = vertical === reverse ? 1 : -1; + var startEdge = dir === 1 ? 1 : 2; + var lineSize = vertical ? lineBox.height() : lineBox.width(); + var step = dir * (lineSize / (this.logMax - this.logMin)); + var lineStart = lineBox[valueAxis + startEdge]; + + return { + step: step, + lineStart: lineStart, + lineBox: lineBox + }; + }; + + return LogarithmicAxis; +}(_axis__WEBPACK_IMPORTED_MODULE_0__["default"])); + +function initRange(autoMin, autoMax, axisOptions, options) { + var min = axisOptions.min; + var max = axisOptions.max; + + if (Object(_common__WEBPACK_IMPORTED_MODULE_7__["defined"])(axisOptions.axisCrossingValue) && axisOptions.axisCrossingValue <= 0) { + throwNegativeValuesError(); + } + + if (!Object(_common__WEBPACK_IMPORTED_MODULE_7__["defined"])(options.max)) { + max = autoMax; + } else if (options.max <= 0) { + throwNegativeValuesError(); + } + + if (!Object(_common__WEBPACK_IMPORTED_MODULE_7__["defined"])(options.min)) { + min = autoMin; + } else if (options.min <= 0) { + throwNegativeValuesError(); + } + + return { + min: min, + max: max + }; +} + +function autoAxisMin(min, max, options) { + var base = options.majorUnit; + var autoMin = min; + if (min <= 0) { + autoMin = max <= 1 ? Math.pow(base, -2) : 1; + } else if (!options.narrowRange) { + autoMin = Math.pow(base, Math.floor(log(min, base))); + } + return autoMin; +} + +function autoAxisMax(max, base) { + var logMaxRemainder = Object(_common__WEBPACK_IMPORTED_MODULE_7__["round"])(log(max, base), _common_constants__WEBPACK_IMPORTED_MODULE_6__["DEFAULT_PRECISION"]) % 1; + var autoMax; + if (max <= 0) { + autoMax = base; + } else if (logMaxRemainder !== 0 && (logMaxRemainder < 0.3 || logMaxRemainder > 0.9)) { + autoMax = Math.pow(base, log(max, base) + 0.2); + } else { + autoMax = Math.pow(base, Math.ceil(log(max, base))); + } + + return autoMax; +} + +function throwNegativeValuesError() { + throw new Error("Non positive values cannot be used for a logarithmic axis"); +} + +function log(y, x) { + return Math.log(y) / Math.log(x); +} + +Object(_common__WEBPACK_IMPORTED_MODULE_7__["setDefaultOptions"])(LogarithmicAxis, { + type: "log", + majorUnit: DEFAULT_MAJOR_UNIT, + minorUnit: 1, + axisCrossingValue: 1, + vertical: true, + majorGridLines: { + visible: true, + width: 1, + color: _common_constants__WEBPACK_IMPORTED_MODULE_6__["BLACK"] + }, + zIndex: 1, + _deferLabels: true +}); + + __webpack_exports__["default"] = (LogarithmicAxis); + + + }), + + "./node_modules/@progress/kendo-charts/dist/es/core/mixins/grid-lines-mixin.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/main.js"); + var _common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + +var GridLinesMixin = { + createGridLines: function(altAxis) { + var options = this.options; + var radius = Math.abs(this.box.center().y - altAxis.lineBox().y1); + var gridLines = []; + var skipMajor = false; + var majorAngles, minorAngles; + + if (options.majorGridLines.visible) { + majorAngles = this.majorGridLineAngles(altAxis); + skipMajor = true; + + gridLines = this.renderMajorGridLines( + majorAngles, radius, options.majorGridLines + ); + } + + if (options.minorGridLines.visible) { + minorAngles = this.minorGridLineAngles(altAxis, skipMajor); + + Object(_common__WEBPACK_IMPORTED_MODULE_1__["append"])(gridLines, this.renderMinorGridLines( + minorAngles, radius, options.minorGridLines, altAxis, skipMajor + )); + } + + return gridLines; + }, + + renderMajorGridLines: function(angles, radius, options) { + return this.renderGridLines(angles, radius, options); + }, + + renderMinorGridLines: function(angles, radius, options, altAxis, skipMajor) { + var radiusCallback = this.radiusCallback && this.radiusCallback(radius, altAxis, skipMajor); + return this.renderGridLines(angles, radius, options, radiusCallback); + }, + + renderGridLines: function(angles, radius, options, radiusCallback) { + var style = { + stroke: { + width: options.width, + color: options.color, + dashType: options.dashType + } + }; + + var center = this.box.center(); + var circle = new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].Circle([ center.x, center.y ], radius); + var container = this.gridLinesVisual(); + + for (var i = 0; i < angles.length; i++) { + var line = new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Path(style); + if (radiusCallback) { + circle.radius = radiusCallback(angles[i]); + } + + line.moveTo(circle.center) + .lineTo(circle.pointAt(angles[i] + 180)); + + container.append(line); + } + + return container.children; + }, + + gridLineAngles: function(altAxis, size, skip, step, skipAngles) { + var this$1 = this; + + var divs = this.intervals(size, skip, step, skipAngles); + var options = altAxis.options; + var altAxisVisible = options.visible && (options.line || {}).visible !== false; + + return Object(_common__WEBPACK_IMPORTED_MODULE_1__["map"])(divs, function (d) { + var alpha = this$1.intervalAngle(d); + + if (!altAxisVisible || alpha !== 90) { + return alpha; + } + }); + } +}; + + __webpack_exports__["default"] = (GridLinesMixin); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/core/mixins/radar-numeric-axis-mixin.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/main.js"); + var _shape_builder__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/shape-builder.js"); + var _ring__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/ring.js"); + var _point__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/point.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + + + + + + +var RadarNumericAxisMixin = { + options: { + majorGridLines: { + visible: true + } + }, + + createPlotBands: function() { + var this$1 = this; + + var ref = this.options; + var type = ref.majorGridLines.type; + var plotBands = ref.plotBands; if ( plotBands === void 0 ) plotBands = []; + var altAxis = this.plotArea.polarAxis; + var majorAngles = altAxis.majorAngles(); + var center = altAxis.box.center(); + var group = this._plotbandGroup = new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Group({ + zIndex: -1 + }); + + for (var i = 0; i < plotBands.length; i++) { + var band = plotBands[i]; + var bandStyle = { + fill: { + color: band.color, + opacity: band.opacity + }, + stroke: { + opacity: band.opacity + } + }; + + var slot = this$1.getSlot(band.from, band.to, true); + var ring = new _ring__WEBPACK_IMPORTED_MODULE_2__["default"](center, center.y - slot.y2, center.y - slot.y1, 0, 360); + + var shape = (void 0); + if (type === _common_constants__WEBPACK_IMPORTED_MODULE_4__["ARC"]) { + shape = _shape_builder__WEBPACK_IMPORTED_MODULE_1__["default"].current.createRing(ring, bandStyle); + } else { + shape = _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Path.fromPoints(this$1.plotBandPoints(ring, majorAngles), bandStyle).close(); + } + + group.append(shape); + } + + this.appendVisual(group); + }, + + plotBandPoints: function(ring, angles) { + var innerPoints = []; + var outerPoints = []; + var center = [ ring.center.x, ring.center.y ]; + var innerCircle = new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].Circle(center, ring.innerRadius); + var outerCircle = new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].Circle(center, ring.radius); + + for (var i = 0; i < angles.length; i++) { + innerPoints.push(innerCircle.pointAt(angles[i] + 180)); + outerPoints.push(outerCircle.pointAt(angles[i] + 180)); + } + + innerPoints.reverse(); + innerPoints.push(innerPoints[0]); + outerPoints.push(outerPoints[0]); + + return outerPoints.concat(innerPoints); + }, + + createGridLines: function(altAxis) { + var options = this.options; + var majorTicks = this.radarMajorGridLinePositions(); + var majorAngles = altAxis.majorAngles(); + var center = altAxis.box.center(); + var gridLines = []; + + if (options.majorGridLines.visible) { + gridLines = this.renderGridLines( + center, majorTicks, majorAngles, options.majorGridLines + ); + } + + if (options.minorGridLines.visible) { + var minorTicks = this.radarMinorGridLinePositions(); + Object(_common__WEBPACK_IMPORTED_MODULE_5__["append"])(gridLines, this.renderGridLines( + center, minorTicks, majorAngles, options.minorGridLines + )); + } + + return gridLines; + }, + + renderGridLines: function(center, ticks, angles, options) { + var style = { + stroke: { + width: options.width, + color: options.color, + dashType: options.dashType + } + }; + var skip = options.skip; if ( skip === void 0 ) skip = 0; + var step = options.step; if ( step === void 0 ) step = 0; + var container = this.gridLinesVisual(); + + for (var tickIx = skip; tickIx < ticks.length; tickIx += step) { + var tickRadius = center.y - ticks[tickIx]; + if (tickRadius > 0) { + var circle = new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].Circle([ center.x, center.y ], tickRadius); + if (options.type === _common_constants__WEBPACK_IMPORTED_MODULE_4__["ARC"]) { + container.append(new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Circle(circle, style)); + } else { + var line = new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Path(style); + for (var angleIx = 0; angleIx < angles.length; angleIx++) { + line.lineTo(circle.pointAt(angles[angleIx] + 180)); + } + + line.close(); + container.append(line); + } + } + } + + return container.children; + }, + + getValue: function(point) { + var lineBox = this.lineBox(); + var altAxis = this.plotArea.polarAxis; + var majorAngles = altAxis.majorAngles(); + var center = altAxis.box.center(); + var radius = point.distanceTo(center); + var distance = radius; + + if (this.options.majorGridLines.type !== _common_constants__WEBPACK_IMPORTED_MODULE_4__["ARC"] && majorAngles.length > 1) { + var dx = point.x - center.x; + var dy = point.y - center.y; + var theta = (Object(_common__WEBPACK_IMPORTED_MODULE_5__["deg"])(Math.atan2(dy, dx)) + 540) % 360; + + majorAngles.sort(function(a, b) { + return angularDistance(a, theta) - angularDistance(b, theta); + }); + + // Solve triangle (center, point, axis X) using one side (radius) and two angles. + // Angles are derived from triangle (center, point, gridline X) + var midAngle = angularDistance(majorAngles[0], majorAngles[1]) / 2; + var alpha = angularDistance(theta, majorAngles[0]); + var gamma = 90 - midAngle; + var beta = 180 - alpha - gamma; + + distance = radius * (Math.sin(Object(_common__WEBPACK_IMPORTED_MODULE_5__["rad"])(beta)) / Math.sin(Object(_common__WEBPACK_IMPORTED_MODULE_5__["rad"])(gamma))); + } + + return this.axisType().prototype.getValue.call( + this, new _point__WEBPACK_IMPORTED_MODULE_3__["default"](lineBox.x1, lineBox.y2 - distance) + ); + } +}; + +function angularDistance(a, b) { + return 180 - Math.abs(Math.abs(a - b) - 180); +} + + __webpack_exports__["default"] = (RadarNumericAxisMixin); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/core/note.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/main.js"); + var _box_element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/box-element.js"); + var _text_box__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/text-box.js"); + var _shape_element__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/shape-element.js"); + var _box__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/box.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + + + + + + + +var DEFAULT_ICON_SIZE = 7; +var DEFAULT_LABEL_COLOR = "#fff"; + +var Note = (function (BoxElement) { + function Note(fields, options, chartService) { + BoxElement.call(this, options); + + this.fields = fields; + this.chartService = chartService; + + this.render(); + } + + if ( BoxElement ) Note.__proto__ = BoxElement; + Note.prototype = Object.create( BoxElement && BoxElement.prototype ); + Note.prototype.constructor = Note; + + Note.prototype.hide = function hide () { + this.options.visible = false; + }; + + Note.prototype.show = function show () { + this.options.visible = true; + }; + + Note.prototype.render = function render () { + var this$1 = this; + + var options = this.options; + + if (options.visible) { + var label = options.label; + var icon = options.icon; + var box = new _box__WEBPACK_IMPORTED_MODULE_4__["default"](); + var childAlias = function () { return this$1; }; + var size = icon.size; + var text = this.fields.text; + var width, height; + + if (Object(_common__WEBPACK_IMPORTED_MODULE_6__["defined"])(label) && label.visible) { + var noteTemplate = Object(_common__WEBPACK_IMPORTED_MODULE_6__["getTemplate"])(label); + if (noteTemplate) { + text = noteTemplate(this.fields); + } else if (label.format) { + text = this.chartService.format.auto(label.format, text); + } + + if (!label.color) { + label.color = label.position === _common_constants__WEBPACK_IMPORTED_MODULE_5__["INSIDE"] ? DEFAULT_LABEL_COLOR : icon.background; + } + + this.label = new _text_box__WEBPACK_IMPORTED_MODULE_2__["default"](text, Object(_common__WEBPACK_IMPORTED_MODULE_6__["deepExtend"])({}, label)); + this.label.aliasFor = childAlias; + + if (label.position === _common_constants__WEBPACK_IMPORTED_MODULE_5__["INSIDE"] && !Object(_common__WEBPACK_IMPORTED_MODULE_6__["defined"])(size)) { + if (icon.type === _common_constants__WEBPACK_IMPORTED_MODULE_5__["CIRCLE"]) { + size = Math.max(this.label.box.width(), this.label.box.height()); + } else { + width = this.label.box.width(); + height = this.label.box.height(); + } + box.wrap(this.label.box); + } + } + + icon.width = width || size || DEFAULT_ICON_SIZE; + icon.height = height || size || DEFAULT_ICON_SIZE; + + var marker = new _shape_element__WEBPACK_IMPORTED_MODULE_3__["default"](Object(_common__WEBPACK_IMPORTED_MODULE_6__["deepExtend"])({}, icon)); + marker.aliasFor = childAlias; + + this.marker = marker; + this.append(marker); + + if (this.label) { + this.append(this.label); + } + + marker.reflow(new _box__WEBPACK_IMPORTED_MODULE_4__["default"]()); + this.wrapperBox = box.wrap(marker.box); + } + }; + + Note.prototype.reflow = function reflow (targetBox) { + var ref = this; + var options = ref.options; + var label = ref.label; + var marker = ref.marker; + var wrapperBox = ref.wrapperBox; + var center = targetBox.center(); + var length = options.line.length; + var position = options.position; + + // TODO: Review + if (options.visible) { + var lineStart, box, contentBox; + + if (Object(_common__WEBPACK_IMPORTED_MODULE_6__["inArray"])(position, [ _common_constants__WEBPACK_IMPORTED_MODULE_5__["LEFT"], _common_constants__WEBPACK_IMPORTED_MODULE_5__["RIGHT"] ])) { + if (position === _common_constants__WEBPACK_IMPORTED_MODULE_5__["LEFT"]) { + contentBox = wrapperBox.alignTo(targetBox, position).translate(-length, targetBox.center().y - wrapperBox.center().y); + + if (options.line.visible) { + lineStart = [ targetBox.x1, center.y ]; + this.linePoints = [ + lineStart, + [ contentBox.x2, center.y ] + ]; + box = contentBox.clone().wrapPoint(lineStart); + } + } else { + contentBox = wrapperBox.alignTo(targetBox, position).translate(length, targetBox.center().y - wrapperBox.center().y); + + if (options.line.visible) { + lineStart = [ targetBox.x2, center.y ]; + this.linePoints = [ + lineStart, + [ contentBox.x1, center.y ] + ]; + box = contentBox.clone().wrapPoint(lineStart); + } + } + } else { + if (position === _common_constants__WEBPACK_IMPORTED_MODULE_5__["BOTTOM"]) { + contentBox = wrapperBox.alignTo(targetBox, position).translate(targetBox.center().x - wrapperBox.center().x, length); + + if (options.line.visible) { + lineStart = [ center.x, targetBox.y2 ]; + this.linePoints = [ + lineStart, + [ center.x, contentBox.y1 ] + ]; + box = contentBox.clone().wrapPoint(lineStart); + } + } else { + contentBox = wrapperBox.alignTo(targetBox, position).translate(targetBox.center().x - wrapperBox.center().x, -length); + + if (options.line.visible) { + lineStart = [ center.x, targetBox.y1 ]; + this.linePoints = [ + lineStart, + [ center.x, contentBox.y2 ] + ]; + box = contentBox.clone().wrapPoint(lineStart); + } + } + } + + if (marker) { + marker.reflow(contentBox); + } + + if (label) { + label.reflow(contentBox); + if (marker) { + if (options.label.position === _common_constants__WEBPACK_IMPORTED_MODULE_5__["OUTSIDE"]) { + label.box.alignTo(marker.box, position); + } + label.reflow(label.box); + } + } + + this.contentBox = contentBox; + this.targetBox = targetBox; + this.box = box || contentBox; + } + }; + + Note.prototype.createVisual = function createVisual () { + BoxElement.prototype.createVisual.call(this); + this.visual.options.noclip = this.options.noclip; + + if (this.options.visible) { + this.createLine(); + } + }; + + Note.prototype.renderVisual = function renderVisual () { + var this$1 = this; + + var options = this.options; + var customVisual = options.visual; + if (options.visible && customVisual) { + this.visual = customVisual(Object.assign(this.fields, { + sender: this.getSender(), + rect: this.targetBox.toRect(), + options: { + background: options.background, + border: options.background, + icon: options.icon, + label: options.label, + line: options.line, + position: options.position, + visible: options.visible + }, + createVisual: function () { + this$1.createVisual(); + this$1.renderChildren(); + var defaultVisual = this$1.visual; + delete this$1.visual; + return defaultVisual; + } + })); + this.addVisual(); + } else { + BoxElement.prototype.renderVisual.call(this); + } + }; + + Note.prototype.createLine = function createLine () { + var options = this.options.line; + + if (this.linePoints) { + var path = _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Path.fromPoints(this.linePoints, { + stroke: { + color: options.color, + width: options.width, + dashType: options.dashType + } + }); + + Object(_common__WEBPACK_IMPORTED_MODULE_6__["alignPathToPixel"])(path); + this.visual.append(path); + } + }; + + Note.prototype.click = function click (widget, e) { + var args = this.eventArgs(e); + + if (!widget.trigger(_common_constants__WEBPACK_IMPORTED_MODULE_5__["NOTE_CLICK"], args)) { + e.preventDefault(); + } + }; + + Note.prototype.over = function over (widget, e) { + var args = this.eventArgs(e); + + if (!widget.trigger(_common_constants__WEBPACK_IMPORTED_MODULE_5__["NOTE_HOVER"], args)) { + e.preventDefault(); + } + }; + + Note.prototype.out = function out (widget, e) { + var args = this.eventArgs(e); + + widget.trigger(_common_constants__WEBPACK_IMPORTED_MODULE_5__["NOTE_LEAVE"], args); + }; + + Note.prototype.eventArgs = function eventArgs (e) { + var options = this.options; + + return Object.assign(this.fields, { + element: Object(_common__WEBPACK_IMPORTED_MODULE_6__["eventElement"])(e), + text: Object(_common__WEBPACK_IMPORTED_MODULE_6__["defined"])(options.label) ? options.label.text : "", + visual: this.visual + }); + }; + + return Note; +}(_box_element__WEBPACK_IMPORTED_MODULE_1__["default"])); + +Object(_common__WEBPACK_IMPORTED_MODULE_6__["setDefaultOptions"])(Note, { + icon: { + visible: true, + type: _common_constants__WEBPACK_IMPORTED_MODULE_5__["CIRCLE"] + }, + label: { + position: _common_constants__WEBPACK_IMPORTED_MODULE_5__["INSIDE"], + visible: true, + align: _common_constants__WEBPACK_IMPORTED_MODULE_5__["CENTER"], + vAlign: _common_constants__WEBPACK_IMPORTED_MODULE_5__["CENTER"] + }, + line: { + visible: true + }, + visible: true, + position: _common_constants__WEBPACK_IMPORTED_MODULE_5__["TOP"], + zIndex: 2 +}); + + __webpack_exports__["default"] = (Note); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/core/numeric-axis.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _axis__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/axis.js"); + var _axis_label__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/axis-label.js"); + var _box__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/box.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + var _utils_auto_major_unit__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/utils/auto-major-unit.js"); + var _utils_auto_axis_min__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/utils/auto-axis-min.js"); + var _utils_auto_axis_max__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/utils/auto-axis-max.js"); + var _utils_floor__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/utils/floor.js"); + var _utils_ceil__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/utils/ceil.js"); + var _utils_limit_coordinate__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/utils/limit-coordinate.js"); + + + + + + + + + + + + + + + +var MIN_VALUE_RANGE = Math.pow(10, -_common_constants__WEBPACK_IMPORTED_MODULE_3__["DEFAULT_PRECISION"] + 1); + +var NumericAxis = (function (Axis) { + function NumericAxis(seriesMin, seriesMax, options, chartService) { + Axis.call(this, Object.assign({}, options, { + seriesMin: seriesMin, + seriesMax: seriesMax + }), chartService); + } + + if ( Axis ) NumericAxis.__proto__ = Axis; + NumericAxis.prototype = Object.create( Axis && Axis.prototype ); + NumericAxis.prototype.constructor = NumericAxis; + + NumericAxis.prototype.initUserOptions = function initUserOptions (options) { + var autoOptions = autoAxisOptions(options.seriesMin, options.seriesMax, options); + this.totalOptions = totalAxisOptions(autoOptions, options); + + return axisOptions(autoOptions, options); + }; + + NumericAxis.prototype.initFields = function initFields () { + this.totalMin = this.totalOptions.min; + this.totalMax = this.totalOptions.max; + this.totalMajorUnit = this.totalOptions.majorUnit; + this.seriesMin = this.options.seriesMin; + this.seriesMax = this.options.seriesMax; + }; + + NumericAxis.prototype.clone = function clone () { + return new NumericAxis( + this.seriesMin, + this.seriesMax, + Object.assign({}, this.options), + this.chartService + ); + }; + + NumericAxis.prototype.startValue = function startValue () { + return 0; + }; + + NumericAxis.prototype.range = function range () { + var options = this.options; + return { min: options.min, max: options.max }; + }; + + NumericAxis.prototype.getDivisions = function getDivisions (stepValue) { + if (stepValue === 0) { + return 1; + } + + var options = this.options; + var range = options.max - options.min; + + return Math.floor(Object(_common__WEBPACK_IMPORTED_MODULE_4__["round"])(range / stepValue, _common_constants__WEBPACK_IMPORTED_MODULE_3__["COORD_PRECISION"])) + 1; + }; + + NumericAxis.prototype.getTickPositions = function getTickPositions (unit, skipUnit) { + var options = this.options; + var vertical = options.vertical; + var reverse = options.reverse; + var lineBox = this.lineBox(); + var lineSize = vertical ? lineBox.height() : lineBox.width(); + var range = options.max - options.min; + var scale = lineSize / range; + var step = unit * scale; + var divisions = this.getDivisions(unit); + var dir = (vertical ? -1 : 1) * (reverse ? -1 : 1); + var startEdge = dir === 1 ? 1 : 2; + var positions = []; + var pos = lineBox[(vertical ? _common_constants__WEBPACK_IMPORTED_MODULE_3__["Y"] : _common_constants__WEBPACK_IMPORTED_MODULE_3__["X"]) + startEdge]; + var skipStep = 0; + + if (skipUnit) { + skipStep = skipUnit / unit; + } + + for (var idx = 0; idx < divisions; idx++) { + if (idx % skipStep !== 0) { + positions.push(Object(_common__WEBPACK_IMPORTED_MODULE_4__["round"])(pos, _common_constants__WEBPACK_IMPORTED_MODULE_3__["COORD_PRECISION"])); + } + + pos = pos + step * dir; + } + + return positions; + }; + + NumericAxis.prototype.getMajorTickPositions = function getMajorTickPositions () { + return this.getTickPositions(this.options.majorUnit); + }; + + NumericAxis.prototype.getMinorTickPositions = function getMinorTickPositions () { + return this.getTickPositions(this.options.minorUnit); + }; + + NumericAxis.prototype.getSlot = function getSlot (a, b, limit) { + if ( limit === void 0 ) limit = false; + + var options = this.options; + var vertical = options.vertical; + var reverse = options.reverse; + var valueAxis = vertical ? _common_constants__WEBPACK_IMPORTED_MODULE_3__["Y"] : _common_constants__WEBPACK_IMPORTED_MODULE_3__["X"]; + var lineBox = this.lineBox(); + var lineStart = lineBox[valueAxis + (reverse ? 2 : 1)]; + var lineSize = vertical ? lineBox.height() : lineBox.width(); + var dir = reverse ? -1 : 1; + var step = dir * (lineSize / (options.max - options.min)); + var slotBox = new _box__WEBPACK_IMPORTED_MODULE_2__["default"](lineBox.x1, lineBox.y1, lineBox.x1, lineBox.y1); + + var start = a; + var end = b; + + if (!Object(_common__WEBPACK_IMPORTED_MODULE_4__["defined"])(start)) { + start = end || 0; + } + + if (!Object(_common__WEBPACK_IMPORTED_MODULE_4__["defined"])(end)) { + end = start || 0; + } + + if (limit) { + start = Math.max(Math.min(start, options.max), options.min); + end = Math.max(Math.min(end, options.max), options.min); + } + + var p1, p2; + + if (vertical) { + p1 = options.max - Math.max(start, end); + p2 = options.max - Math.min(start, end); + } else { + p1 = Math.min(start, end) - options.min; + p2 = Math.max(start, end) - options.min; + } + + slotBox[valueAxis + 1] = Object(_utils_limit_coordinate__WEBPACK_IMPORTED_MODULE_10__["default"])(lineStart + step * (reverse ? p2 : p1)); + slotBox[valueAxis + 2] = Object(_utils_limit_coordinate__WEBPACK_IMPORTED_MODULE_10__["default"])(lineStart + step * (reverse ? p1 : p2)); + + return slotBox; + }; + + NumericAxis.prototype.getValue = function getValue (point) { + var options = this.options; + var vertical = options.vertical; + var reverse = options.reverse; + var max = Number(options.max); + var min = Number(options.min); + var valueAxis = vertical ? _common_constants__WEBPACK_IMPORTED_MODULE_3__["Y"] : _common_constants__WEBPACK_IMPORTED_MODULE_3__["X"]; + var lineBox = this.lineBox(); + var lineStart = lineBox[valueAxis + (reverse ? 2 : 1)]; + var lineSize = vertical ? lineBox.height() : lineBox.width(); + var dir = reverse ? -1 : 1; + var offset = dir * (point[valueAxis] - lineStart); + var step = (max - min) / lineSize; + var valueOffset = offset * step; + + if (offset < 0 || offset > lineSize) { + return null; + } + + var value = vertical ? + max - valueOffset : + min + valueOffset; + + return Object(_common__WEBPACK_IMPORTED_MODULE_4__["round"])(value, _common_constants__WEBPACK_IMPORTED_MODULE_3__["DEFAULT_PRECISION"]); + }; + + NumericAxis.prototype.translateRange = function translateRange (delta) { + var options = this.options; + var vertical = options.vertical; + var reverse = options.reverse; + var max = options.max; + var min = options.min; + var lineBox = this.lineBox(); + var size = vertical ? lineBox.height() : lineBox.width(); + var range = max - min; + var scale = size / range; + var offset = Object(_common__WEBPACK_IMPORTED_MODULE_4__["round"])(delta / scale, _common_constants__WEBPACK_IMPORTED_MODULE_3__["DEFAULT_PRECISION"]); + + if ((vertical || reverse) && !(vertical && reverse )) { + offset = -offset; + } + + return { + min: min + offset, + max: max + offset, + offset: offset + }; + }; + + NumericAxis.prototype.scaleRange = function scaleRange (delta) { + var options = this.options; + var offset = -delta * options.majorUnit; + + return { + min: options.min - offset, + max: options.max + offset + }; + }; + + NumericAxis.prototype.labelsCount = function labelsCount () { + return this.getDivisions(this.options.majorUnit); + }; + + NumericAxis.prototype.createAxisLabel = function createAxisLabel (index, labelOptions) { + var options = this.options; + var value = Object(_common__WEBPACK_IMPORTED_MODULE_4__["round"])(options.min + (index * options.majorUnit), _common_constants__WEBPACK_IMPORTED_MODULE_3__["DEFAULT_PRECISION"]); + var text = this.axisLabelText(value, null, labelOptions); + + return new _axis_label__WEBPACK_IMPORTED_MODULE_1__["default"](value, text, index, null, labelOptions); + }; + + NumericAxis.prototype.shouldRenderNote = function shouldRenderNote (value) { + var range = this.range(); + return range.min <= value && value <= range.max; + }; + + NumericAxis.prototype.pan = function pan (delta) { + var range = this.translateRange(delta); + return this.limitRange(range.min, range.max, this.totalMin, this.totalMax, range.offset); + }; + + NumericAxis.prototype.pointsRange = function pointsRange (start, end) { + var startValue = this.getValue(start); + var endValue = this.getValue(end); + var min = Math.min(startValue, endValue); + var max = Math.max(startValue, endValue); + + if (this.isValidRange(min, max)) { + return { + min: min, + max: max + }; + } + }; + + NumericAxis.prototype.zoomRange = function zoomRange (delta) { + var ref = this; + var totalMin = ref.totalMin; + var totalMax = ref.totalMax; + var newRange = this.scaleRange(delta); + var min = Object(_common__WEBPACK_IMPORTED_MODULE_4__["limitValue"])(newRange.min, totalMin, totalMax); + var max = Object(_common__WEBPACK_IMPORTED_MODULE_4__["limitValue"])(newRange.max, totalMin, totalMax); + + if (this.isValidRange(min, max)) { + return { + min: min, + max: max + }; + } + }; + + NumericAxis.prototype.isValidRange = function isValidRange (min, max) { + return max - min > MIN_VALUE_RANGE; + }; + + return NumericAxis; +}(_axis__WEBPACK_IMPORTED_MODULE_0__["default"])); + +function autoAxisOptions(seriesMin, seriesMax, options) { + var narrowRange = options.narrowRange; + + var autoMin = Object(_utils_auto_axis_min__WEBPACK_IMPORTED_MODULE_6__["default"])(seriesMin, seriesMax, narrowRange); + var autoMax = Object(_utils_auto_axis_max__WEBPACK_IMPORTED_MODULE_7__["default"])(seriesMin, seriesMax, narrowRange); + + var majorUnit = Object(_utils_auto_major_unit__WEBPACK_IMPORTED_MODULE_5__["default"])(autoMin, autoMax); + var autoOptions = { + majorUnit: majorUnit + }; + + if (options.roundToMajorUnit !== false) { + if (autoMin < 0 && remainderClose(autoMin, majorUnit, 1 / 3)) { + autoMin -= majorUnit; + } + + if (autoMax > 0 && remainderClose(autoMax, majorUnit, 1 / 3)) { + autoMax += majorUnit; + } + } + + autoOptions.min = Object(_utils_floor__WEBPACK_IMPORTED_MODULE_8__["default"])(autoMin, majorUnit); + autoOptions.max = Object(_utils_ceil__WEBPACK_IMPORTED_MODULE_9__["default"])(autoMax, majorUnit); + + return autoOptions; +} + +function totalAxisOptions(autoOptions, options) { + return { + min: Object(_common__WEBPACK_IMPORTED_MODULE_4__["defined"])(options.min) ? Math.min(autoOptions.min, options.min) : autoOptions.min, + max: Object(_common__WEBPACK_IMPORTED_MODULE_4__["defined"])(options.max) ? Math.max(autoOptions.max, options.max) : autoOptions.max, + majorUnit: autoOptions.majorUnit + }; +} + +function clearNullValues(options, fields) { + for (var idx = 0; idx < fields.length; idx++) { + var field = fields[idx]; + if (options[field] === null) { + options[field] = undefined; + } + } +} + +function axisOptions(autoOptions, userOptions) { + var options = userOptions; + var userSetMin, userSetMax; + + if (userOptions) { + clearNullValues(userOptions, [ 'min', 'max' ]); + + userSetMin = Object(_common__WEBPACK_IMPORTED_MODULE_4__["defined"])(userOptions.min); + userSetMax = Object(_common__WEBPACK_IMPORTED_MODULE_4__["defined"])(userOptions.max); + + var userSetLimits = userSetMin || userSetMax; + + if (userSetLimits) { + if (userOptions.min === userOptions.max) { + if (userOptions.min > 0) { + userOptions.min = 0; + } else { + userOptions.max = 1; + } + } + } + + if (userOptions.majorUnit) { + autoOptions.min = Object(_utils_floor__WEBPACK_IMPORTED_MODULE_8__["default"])(autoOptions.min, userOptions.majorUnit); + autoOptions.max = Object(_utils_ceil__WEBPACK_IMPORTED_MODULE_9__["default"])(autoOptions.max, userOptions.majorUnit); + } else if (userSetLimits) { + options = Object(_common__WEBPACK_IMPORTED_MODULE_4__["deepExtend"])(autoOptions, userOptions); + + // Determine an auto major unit after min/max have been set + autoOptions.majorUnit = Object(_utils_auto_major_unit__WEBPACK_IMPORTED_MODULE_5__["default"])(options.min, options.max); + } + } + + autoOptions.minorUnit = (options.majorUnit || autoOptions.majorUnit) / 5; + + var result = Object(_common__WEBPACK_IMPORTED_MODULE_4__["deepExtend"])(autoOptions, options); + if (result.min >= result.max) { + if (userSetMin && !userSetMax) { + result.max = result.min + result.majorUnit; + } else if (!userSetMin && userSetMax) { + result.min = result.max - result.majorUnit; + } + } + + return result; +} + +function remainderClose(value, divisor, ratio) { + var remainder = Object(_common__WEBPACK_IMPORTED_MODULE_4__["round"])(Math.abs(value % divisor), _common_constants__WEBPACK_IMPORTED_MODULE_3__["DEFAULT_PRECISION"]); + var threshold = divisor * (1 - ratio); + + return remainder === 0 || remainder > threshold; +} + +Object(_common__WEBPACK_IMPORTED_MODULE_4__["setDefaultOptions"])(NumericAxis, { + type: "numeric", + min: 0, + max: 1, + vertical: true, + majorGridLines: { + visible: true, + width: 1, + color: _common_constants__WEBPACK_IMPORTED_MODULE_3__["BLACK"] + }, + labels: { + format: "#.####################" + }, + zIndex: 1 +}); + + __webpack_exports__["default"] = (NumericAxis); + + + }), + + "./node_modules/@progress/kendo-charts/dist/es/core/point.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _common_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + +var Point = (function (Class) { + function Point(x, y) { + Class.call(this); + + this.x = x || 0; + this.y = y || 0; + } + + if ( Class ) Point.__proto__ = Class; + Point.prototype = Object.create( Class && Class.prototype ); + Point.prototype.constructor = Point; + + Point.prototype.clone = function clone () { + return new Point(this.x, this.y); + }; + + Point.prototype.equals = function equals (point) { + return point && this.x === point.x && this.y === point.y; + }; + + Point.prototype.rotate = function rotate (center, degrees) { + var theta = Object(_common__WEBPACK_IMPORTED_MODULE_1__["rad"])(degrees); + var cosT = Math.cos(theta); + var sinT = Math.sin(theta); + var cx = center.x; + var cy = center.y; + var ref = this; + var x = ref.x; + var y = ref.y; + + this.x = Object(_common__WEBPACK_IMPORTED_MODULE_1__["round"])( + cx + (x - cx) * cosT + (y - cy) * sinT, + _common_constants__WEBPACK_IMPORTED_MODULE_0__["COORD_PRECISION"] + ); + + this.y = Object(_common__WEBPACK_IMPORTED_MODULE_1__["round"])( + cy + (y - cy) * cosT - (x - cx) * sinT, + _common_constants__WEBPACK_IMPORTED_MODULE_0__["COORD_PRECISION"] + ); + + return this; + }; + + Point.prototype.multiply = function multiply (a) { + + this.x *= a; + this.y *= a; + + return this; + }; + + Point.prototype.distanceTo = function distanceTo (point) { + var dx = this.x - point.x; + var dy = this.y - point.y; + + return Math.sqrt(dx * dx + dy * dy); + }; + + Point.onCircle = function onCircle (center, angle, radius) { + var radians = Object(_common__WEBPACK_IMPORTED_MODULE_1__["rad"])(angle); + + return new Point( + center.x - radius * Math.cos(radians), + center.y - radius * Math.sin(radians) + ); + }; + + return Point; +}(_common__WEBPACK_IMPORTED_MODULE_1__["Class"])); + + + __webpack_exports__["default"] = (Point); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/core/polar-axis.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/main.js"); + var _mixins_grid_lines_mixin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/mixins/grid-lines-mixin.js"); + var _radar_category_axis__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/radar-category-axis.js"); + var _numeric_axis__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/numeric-axis.js"); + var _axis__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/axis.js"); + var _ring__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/ring.js"); + var _box__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/box.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + + + + + + + + + +var PolarAxis = (function (Axis) { + function PolarAxis(options, chartService) { + Axis.call(this, options, chartService); + + var instanceOptions = this.options; + + instanceOptions.minorUnit = instanceOptions.minorUnit || instanceOptions.majorUnit / 2; + } + + if ( Axis ) PolarAxis.__proto__ = Axis; + PolarAxis.prototype = Object.create( Axis && Axis.prototype ); + PolarAxis.prototype.constructor = PolarAxis; + + PolarAxis.prototype.getDivisions = function getDivisions (stepValue) { + return _numeric_axis__WEBPACK_IMPORTED_MODULE_3__["default"].prototype.getDivisions.call(this, stepValue) - 1; + }; + + PolarAxis.prototype.reflow = function reflow (box) { + this.box = box; + this.reflowLabels(); + }; + + PolarAxis.prototype.reflowLabels = function reflowLabels () { + var this$1 = this; + + var ref = this; + var options = ref.options; + var labels = ref.labels; + var labelOptions = ref.options.labels; + var skip = labelOptions.skip || 0; + var step = labelOptions.step || 1; + + var measureBox = new _box__WEBPACK_IMPORTED_MODULE_6__["default"](); + var divs = this.intervals(options.majorUnit, skip, step); + + for (var i = 0; i < labels.length; i++) { + labels[i].reflow(measureBox); + var labelBox = labels[i].box; + + labels[i].reflow(this$1.getSlot(divs[i]).adjacentBox(0, labelBox.width(), labelBox.height())); + } + }; + + PolarAxis.prototype.lineBox = function lineBox () { + return this.box; + }; + + PolarAxis.prototype.intervals = function intervals (size, skipOption, stepOption, skipAngles) { + if ( skipAngles === void 0 ) skipAngles = false; + + var min = this.options.min; + var divisions = this.getDivisions(size); + var divs = []; + var skip = skipOption || 0; + var step = stepOption || 1; + + for (var i = skip; i < divisions; i += step) { + var current = (360 + min + i * size) % 360; + if (!(skipAngles && Object(_common__WEBPACK_IMPORTED_MODULE_8__["inArray"])(current, skipAngles))) { + divs.push(current); + } + } + + return divs; + }; + + PolarAxis.prototype.majorIntervals = function majorIntervals () { + return this.intervals(this.options.majorUnit); + }; + + PolarAxis.prototype.minorIntervals = function minorIntervals () { + return this.intervals(this.options.minorUnit); + }; + + PolarAxis.prototype.intervalAngle = function intervalAngle (i) { + return (540 - i - this.options.startAngle) % 360; + }; + + PolarAxis.prototype.createLine = function createLine () { + return []; + }; + + PolarAxis.prototype.majorGridLineAngles = function majorGridLineAngles (altAxis) { + var majorGridLines = this.options.majorGridLines; + return this.gridLineAngles(altAxis, this.options.majorUnit, majorGridLines.skip, majorGridLines.step); + }; + + PolarAxis.prototype.minorGridLineAngles = function minorGridLineAngles (altAxis, skipMajor) { + var options = this.options; + var minorGridLines = options.minorGridLines; + var majorGridLines = options.majorGridLines; + var majorGridLineAngles = skipMajor ? this.intervals(options.majorUnit, majorGridLines.skip, majorGridLines.step) : null; + + return this.gridLineAngles(altAxis, options.minorUnit, minorGridLines.skip, minorGridLines.step, majorGridLineAngles); + }; + + PolarAxis.prototype.plotBandSlot = function plotBandSlot (band) { + return this.getSlot(band.from, band.to); + }; + + PolarAxis.prototype.getSlot = function getSlot (a, b) { + var ref = this; + var options = ref.options; + var box = ref.box; + var startAngle = options.startAngle; + var start = Object(_common__WEBPACK_IMPORTED_MODULE_8__["limitValue"])(a, options.min, options.max); + var end = Object(_common__WEBPACK_IMPORTED_MODULE_8__["limitValue"])(b || start, start, options.max); + + if (options.reverse) { + start *= -1; + end *= -1; + } + + start = (540 - start - startAngle) % 360; + end = (540 - end - startAngle) % 360; + + if (end < start) { + var tmp = start; + start = end; + end = tmp; + } + + return new _ring__WEBPACK_IMPORTED_MODULE_5__["default"](box.center(), 0, box.height() / 2, start, end - start); + }; + + PolarAxis.prototype.slot = function slot (from, to) { + if ( to === void 0 ) to = from; + + var options = this.options; + var start = 360 - options.startAngle; + var slot = this.getSlot(from, to); + var min = Math.min(from, to); + var max = Math.max(from, to); + var startAngle, endAngle; + + if (options.reverse) { + startAngle = min; + endAngle = max; + } else { + startAngle = 360 - max; + endAngle = 360 - min; + } + + startAngle = (startAngle + start) % 360; + endAngle = (endAngle + start) % 360; + + return new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].Arc([ slot.center.x, slot.center.y ], { + startAngle: startAngle, + endAngle: endAngle, + radiusX: slot.radius, + radiusY: slot.radius + }); + }; + + PolarAxis.prototype.getValue = function getValue (point) { + var options = this.options; + var center = this.box.center(); + var dx = point.x - center.x; + var dy = point.y - center.y; + var theta = Math.round(Object(_common__WEBPACK_IMPORTED_MODULE_8__["deg"])(Math.atan2(dy, dx))); + var start = options.startAngle; + + if (!options.reverse) { + theta *= -1; + start *= -1; + } + + return (theta + start + 360) % 360; + }; + + PolarAxis.prototype.valueRange = function valueRange () { + return { + min: 0, + max: Math.PI * 2 + }; + }; + + return PolarAxis; +}(_axis__WEBPACK_IMPORTED_MODULE_4__["default"])); + +Object(_common__WEBPACK_IMPORTED_MODULE_8__["setDefaultOptions"])(PolarAxis, { + type: "polar", + startAngle: 0, + reverse: false, + majorUnit: 60, + min: 0, + max: 360, + labels: { + margin: Object(_common__WEBPACK_IMPORTED_MODULE_8__["getSpacing"])(10) + }, + majorGridLines: { + color: _common_constants__WEBPACK_IMPORTED_MODULE_7__["BLACK"], + visible: true, + width: 1 + }, + minorGridLines: { + color: "#aaa" + } +}); + +Object(_common__WEBPACK_IMPORTED_MODULE_8__["deepExtend"])(PolarAxis.prototype, _mixins_grid_lines_mixin__WEBPACK_IMPORTED_MODULE_1__["default"], { + createPlotBands: _radar_category_axis__WEBPACK_IMPORTED_MODULE_2__["default"].prototype.createPlotBands, + majorAngles: _radar_category_axis__WEBPACK_IMPORTED_MODULE_2__["default"].prototype.majorAngles, + range: _numeric_axis__WEBPACK_IMPORTED_MODULE_3__["default"].prototype.range, + labelsCount: _numeric_axis__WEBPACK_IMPORTED_MODULE_3__["default"].prototype.labelsCount, + createAxisLabel: _numeric_axis__WEBPACK_IMPORTED_MODULE_3__["default"].prototype.createAxisLabel +}); + + __webpack_exports__["default"] = (PolarAxis); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/core/radar-category-axis.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/main.js"); + var _mixins_grid_lines_mixin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/mixins/grid-lines-mixin.js"); + var _category_axis__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/category-axis.js"); + var _shape_builder__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/shape-builder.js"); + var _ring__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/ring.js"); + var _box__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/box.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + + + + + + + + +var RadarCategoryAxis = (function (CategoryAxis) { + function RadarCategoryAxis () { + CategoryAxis.apply(this, arguments); + } + + if ( CategoryAxis ) RadarCategoryAxis.__proto__ = CategoryAxis; + RadarCategoryAxis.prototype = Object.create( CategoryAxis && CategoryAxis.prototype ); + RadarCategoryAxis.prototype.constructor = RadarCategoryAxis; + + RadarCategoryAxis.prototype.range = function range () { + return { min: 0, max: this.options.categories.length }; + }; + + RadarCategoryAxis.prototype.reflow = function reflow (box) { + this.box = box; + this.reflowLabels(); + }; + + RadarCategoryAxis.prototype.lineBox = function lineBox () { + return this.box; + }; + + RadarCategoryAxis.prototype.reflowLabels = function reflowLabels () { + var this$1 = this; + + var ref = this; + var labels = ref.labels; + var labelOptions = ref.options.labels; + var skip = labelOptions.skip || 0; + var step = labelOptions.step || 1; + var measureBox = new _box__WEBPACK_IMPORTED_MODULE_5__["default"](); + + for (var i = 0; i < labels.length; i++) { + labels[i].reflow(measureBox); + var labelBox = labels[i].box; + + labels[i].reflow(this$1.getSlot(skip + i * step).adjacentBox( + 0, labelBox.width(), labelBox.height() + )); + } + }; + + RadarCategoryAxis.prototype.intervals = function intervals (size, skipOption, stepOption, skipAngles) { + if ( skipAngles === void 0 ) skipAngles = false; + + var options = this.options; + var categories = options.categories.length; + var divCount = categories / size || 1; + var divAngle = 360 / divCount; + var skip = skipOption || 0; + var step = stepOption || 1; + var divs = []; + var angle = 0; + + for (var i = skip; i < divCount; i += step) { + if (options.reverse) { + angle = 360 - i * divAngle; + } else { + angle = i * divAngle; + } + + angle = Object(_common__WEBPACK_IMPORTED_MODULE_7__["round"])(angle, _common_constants__WEBPACK_IMPORTED_MODULE_6__["COORD_PRECISION"]) % 360; + + if (!(skipAngles && Object(_common__WEBPACK_IMPORTED_MODULE_7__["inArray"])(angle, skipAngles))) { + divs.push(angle); + } + } + + return divs; + }; + + RadarCategoryAxis.prototype.majorIntervals = function majorIntervals () { + return this.intervals(1); + }; + + RadarCategoryAxis.prototype.minorIntervals = function minorIntervals () { + return this.intervals(0.5); + }; + + RadarCategoryAxis.prototype.intervalAngle = function intervalAngle (interval) { + return (360 + interval + this.options.startAngle) % 360; + }; + + RadarCategoryAxis.prototype.majorAngles = function majorAngles () { + var this$1 = this; + + return Object(_common__WEBPACK_IMPORTED_MODULE_7__["map"])(this.majorIntervals(), function (interval) { return this$1.intervalAngle(interval); }); + }; + + RadarCategoryAxis.prototype.createLine = function createLine () { + return []; + }; + + RadarCategoryAxis.prototype.majorGridLineAngles = function majorGridLineAngles (altAxis) { + var majorGridLines = this.options.majorGridLines; + return this.gridLineAngles(altAxis, 1, majorGridLines.skip, majorGridLines.step); + }; + + RadarCategoryAxis.prototype.minorGridLineAngles = function minorGridLineAngles (altAxis, skipMajor) { + var ref = this.options; + var minorGridLines = ref.minorGridLines; + var majorGridLines = ref.majorGridLines; + var majorGridLineAngles = skipMajor ? this.intervals(1, majorGridLines.skip, majorGridLines.step) : null; + + return this.gridLineAngles(altAxis, 0.5, minorGridLines.skip, minorGridLines.step, majorGridLineAngles); + }; + + RadarCategoryAxis.prototype.radiusCallback = function radiusCallback (radius, altAxis, skipMajor) { + if (altAxis.options.type !== _common_constants__WEBPACK_IMPORTED_MODULE_6__["ARC"]) { + var minorAngle = Object(_common__WEBPACK_IMPORTED_MODULE_7__["rad"])(360 / (this.options.categories.length * 2)); + var minorRadius = Math.cos(minorAngle) * radius; + var majorAngles = this.majorAngles(); + + var radiusCallback = function(angle) { + if (!skipMajor && Object(_common__WEBPACK_IMPORTED_MODULE_7__["inArray"])(angle, majorAngles)) { + return radius; + } + + return minorRadius; + }; + return radiusCallback; + } + }; + + RadarCategoryAxis.prototype.createPlotBands = function createPlotBands () { + var this$1 = this; + + var plotBands = this.options.plotBands || []; + + var group = this._plotbandGroup = new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Group({ + zIndex: -1 + }); + + for (var i = 0; i < plotBands.length; i++) { + var band = plotBands[i]; + var slot = this$1.plotBandSlot(band); + var singleSlot = this$1.getSlot(band.from); + + var head = band.from - Math.floor(band.from); + slot.startAngle += head * singleSlot.angle; + + var tail = Math.ceil(band.to) - band.to; + slot.angle -= (tail + head) * singleSlot.angle; + + var ring = _shape_builder__WEBPACK_IMPORTED_MODULE_3__["default"].current.createRing(slot, { + fill: { + color: band.color, + opacity: band.opacity + }, + stroke: { + opacity: band.opacity + } + }); + group.append(ring); + } + + this.appendVisual(group); + }; + + RadarCategoryAxis.prototype.plotBandSlot = function plotBandSlot (band) { + return this.getSlot(band.from, band.to - 1); + }; + + RadarCategoryAxis.prototype.getSlot = function getSlot (from, to) { + var options = this.options; + var justified = options.justified; + var box = this.box; + var divs = this.majorAngles(); + var totalDivs = divs.length; + var slotAngle = 360 / totalDivs; + var fromValue = from; + + if (options.reverse && !justified) { + fromValue = (fromValue + 1) % totalDivs; + } + + fromValue = Object(_common__WEBPACK_IMPORTED_MODULE_7__["limitValue"])(Math.floor(fromValue), 0, totalDivs - 1); + var slotStart = divs[fromValue]; + + if (justified) { + slotStart = slotStart - slotAngle / 2; + + if (slotStart < 0) { + slotStart += 360; + } + } + + var toValue = Object(_common__WEBPACK_IMPORTED_MODULE_7__["limitValue"])(Math.ceil(to || fromValue), fromValue, totalDivs - 1); + var slots = toValue - fromValue + 1; + var angle = slotAngle * slots; + + return new _ring__WEBPACK_IMPORTED_MODULE_4__["default"](box.center(), 0, box.height() / 2, slotStart, angle); + }; + + RadarCategoryAxis.prototype.slot = function slot (from, to) { + var slot = this.getSlot(from, to); + var startAngle = slot.startAngle + 180; + var endAngle = startAngle + slot.angle; + + return new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].Arc([ slot.center.x, slot.center.y ], { + startAngle: startAngle, + endAngle: endAngle, + radiusX: slot.radius, + radiusY: slot.radius + }); + }; + + RadarCategoryAxis.prototype.pointCategoryIndex = function pointCategoryIndex (point) { + var this$1 = this; + + var length = this.options.categories.length; + var index = null; + + for (var i = 0; i < length; i++) { + var slot = this$1.getSlot(i); + if (slot.containsPoint(point)) { + index = i; + break; + } + } + + return index; + }; + + return RadarCategoryAxis; +}(_category_axis__WEBPACK_IMPORTED_MODULE_2__["default"])); + +Object(_common__WEBPACK_IMPORTED_MODULE_7__["setDefaultOptions"])(RadarCategoryAxis, { + startAngle: 90, + labels: { + margin: Object(_common__WEBPACK_IMPORTED_MODULE_7__["getSpacing"])(10) + }, + majorGridLines: { + visible: true + }, + justified: true +}); +Object(_common__WEBPACK_IMPORTED_MODULE_7__["deepExtend"])(RadarCategoryAxis.prototype, _mixins_grid_lines_mixin__WEBPACK_IMPORTED_MODULE_1__["default"]); + + __webpack_exports__["default"] = (RadarCategoryAxis); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/core/radar-logarithmic-axis.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _logarithmic_axis__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/logarithmic-axis.js"); + var _mixins_radar_numeric_axis_mixin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/mixins/radar-numeric-axis-mixin.js"); + var _common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + + +var RadarLogarithmicAxis = (function (LogarithmicAxis) { + function RadarLogarithmicAxis () { + LogarithmicAxis.apply(this, arguments); + } + + if ( LogarithmicAxis ) RadarLogarithmicAxis.__proto__ = LogarithmicAxis; + RadarLogarithmicAxis.prototype = Object.create( LogarithmicAxis && LogarithmicAxis.prototype ); + RadarLogarithmicAxis.prototype.constructor = RadarLogarithmicAxis; + + RadarLogarithmicAxis.prototype.radarMajorGridLinePositions = function radarMajorGridLinePositions () { + var positions = []; + + this.traverseMajorTicksPositions(function(position) { + positions.push(position); + }, this.options.majorGridLines); + + return positions; + }; + + RadarLogarithmicAxis.prototype.radarMinorGridLinePositions = function radarMinorGridLinePositions () { + var positions = []; + + this.traverseMinorTicksPositions(function(position) { + positions.push(position); + }, this.options.minorGridLines); + + return positions; + }; + + RadarLogarithmicAxis.prototype.axisType = function axisType () { + return LogarithmicAxis; + }; + + return RadarLogarithmicAxis; +}(_logarithmic_axis__WEBPACK_IMPORTED_MODULE_0__["default"])); + +Object(_common__WEBPACK_IMPORTED_MODULE_2__["deepExtend"])(RadarLogarithmicAxis.prototype, _mixins_radar_numeric_axis_mixin__WEBPACK_IMPORTED_MODULE_1__["default"]); + + __webpack_exports__["default"] = (RadarLogarithmicAxis); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/core/radar-numeric-axis.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _numeric_axis__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/numeric-axis.js"); + var _mixins_radar_numeric_axis_mixin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/mixins/radar-numeric-axis-mixin.js"); + var _common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + + +var RadarNumericAxis = (function (NumericAxis) { + function RadarNumericAxis () { + NumericAxis.apply(this, arguments); + } + + if ( NumericAxis ) RadarNumericAxis.__proto__ = NumericAxis; + RadarNumericAxis.prototype = Object.create( NumericAxis && NumericAxis.prototype ); + RadarNumericAxis.prototype.constructor = RadarNumericAxis; + + RadarNumericAxis.prototype.radarMajorGridLinePositions = function radarMajorGridLinePositions () { + return this.getTickPositions(this.options.majorUnit); + }; + + RadarNumericAxis.prototype.radarMinorGridLinePositions = function radarMinorGridLinePositions () { + var options = this.options; + var minorSkipStep = 0; + + if (options.majorGridLines.visible) { + minorSkipStep = options.majorUnit; + } + return this.getTickPositions(options.minorUnit, minorSkipStep); + }; + + RadarNumericAxis.prototype.axisType = function axisType () { + return NumericAxis; + }; + + return RadarNumericAxis; +}(_numeric_axis__WEBPACK_IMPORTED_MODULE_0__["default"])); + +Object(_common__WEBPACK_IMPORTED_MODULE_2__["deepExtend"])(RadarNumericAxis.prototype, _mixins_radar_numeric_axis_mixin__WEBPACK_IMPORTED_MODULE_1__["default"]); + + __webpack_exports__["default"] = (RadarNumericAxis); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/core/ring.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _box__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/box.js"); + var _point__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/point.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + + +var Ring = (function (Class) { + function Ring(center, innerRadius, radius, startAngle, angle) { + Class.call(this); + + this.center = center; + this.innerRadius = innerRadius; + this.radius = radius; + this.startAngle = startAngle; + this.angle = angle; + } + + if ( Class ) Ring.__proto__ = Class; + Ring.prototype = Object.create( Class && Class.prototype ); + Ring.prototype.constructor = Ring; + + Ring.prototype.clone = function clone () { + return new Ring(this.center, this.innerRadius, this.radius, this.startAngle, this.angle); + }; + + Ring.prototype.middle = function middle () { + return this.startAngle + this.angle / 2; + }; + + Ring.prototype.setRadius = function setRadius (newRadius, innerRadius) { + if (innerRadius) { + this.innerRadius = newRadius; + } else { + this.radius = newRadius; + } + + return this; + }; + + // TODO: Remove and replace with Point.onCircle + Ring.prototype.point = function point (angle, innerRadius) { + var radianAngle = Object(_common__WEBPACK_IMPORTED_MODULE_3__["rad"])(angle); + var ax = Math.cos(radianAngle); + var ay = Math.sin(radianAngle); + var radius = innerRadius ? this.innerRadius : this.radius; + var x = Object(_common__WEBPACK_IMPORTED_MODULE_3__["round"])(this.center.x - (ax * radius), _common_constants__WEBPACK_IMPORTED_MODULE_2__["COORD_PRECISION"]); + var y = Object(_common__WEBPACK_IMPORTED_MODULE_3__["round"])(this.center.y - (ay * radius), _common_constants__WEBPACK_IMPORTED_MODULE_2__["COORD_PRECISION"]); + + return new _point__WEBPACK_IMPORTED_MODULE_1__["default"](x, y); + }; + + Ring.prototype.adjacentBox = function adjacentBox (distance, width, height) { + var sector = this.clone().expand(distance); + var midAndle = sector.middle(); + var midPoint = sector.point(midAndle); + var hw = width / 2; + var hh = height / 2; + var sa = Math.sin(Object(_common__WEBPACK_IMPORTED_MODULE_3__["rad"])(midAndle)); + var ca = Math.cos(Object(_common__WEBPACK_IMPORTED_MODULE_3__["rad"])(midAndle)); + var x = midPoint.x - hw; + var y = midPoint.y - hh; + + if (Math.abs(sa) < 0.9) { + x += hw * -ca / Math.abs(ca); + } + + if (Math.abs(ca) < 0.9) { + y += hh * -sa / Math.abs(sa); + } + + return new _box__WEBPACK_IMPORTED_MODULE_0__["default"](x, y, x + width, y + height); + }; + + Ring.prototype.containsPoint = function containsPoint (p) { + var center = this.center; + var innerRadius = this.innerRadius; + var radius = this.radius; + var startAngle = this.startAngle; + var endAngle = this.startAngle + this.angle; + var dx = p.x - center.x; + var dy = p.y - center.y; + var vector = new _point__WEBPACK_IMPORTED_MODULE_1__["default"](dx, dy); + var startPoint = this.point(startAngle); + var startVector = new _point__WEBPACK_IMPORTED_MODULE_1__["default"](startPoint.x - center.x, startPoint.y - center.y); + var endPoint = this.point(endAngle); + var endVector = new _point__WEBPACK_IMPORTED_MODULE_1__["default"](endPoint.x - center.x, endPoint.y - center.y); + var dist = Object(_common__WEBPACK_IMPORTED_MODULE_3__["round"])(dx * dx + dy * dy, _common_constants__WEBPACK_IMPORTED_MODULE_2__["COORD_PRECISION"]); + + return (startVector.equals(vector) || Object(_common__WEBPACK_IMPORTED_MODULE_3__["clockwise"])(startVector, vector)) && + !Object(_common__WEBPACK_IMPORTED_MODULE_3__["clockwise"])(endVector, vector) && + dist >= innerRadius * innerRadius && dist <= radius * radius; + }; + + Ring.prototype.getBBox = function getBBox () { + var this$1 = this; + + var box = new _box__WEBPACK_IMPORTED_MODULE_0__["default"](_common_constants__WEBPACK_IMPORTED_MODULE_2__["MAX_VALUE"], _common_constants__WEBPACK_IMPORTED_MODULE_2__["MAX_VALUE"], _common_constants__WEBPACK_IMPORTED_MODULE_2__["MIN_VALUE"], _common_constants__WEBPACK_IMPORTED_MODULE_2__["MIN_VALUE"]); + var startAngle = Object(_common__WEBPACK_IMPORTED_MODULE_3__["round"])(this.startAngle % 360); + var endAngle = Object(_common__WEBPACK_IMPORTED_MODULE_3__["round"])((startAngle + this.angle) % 360); + var innerRadius = this.innerRadius; + var allAngles = [ 0, 90, 180, 270, startAngle, endAngle ].sort(numericComparer); + var startAngleIndex = allAngles.indexOf(startAngle); + var endAngleIndex = allAngles.indexOf(endAngle); + var angles; + + if (startAngle === endAngle) { + angles = allAngles; + } else { + if (startAngleIndex < endAngleIndex) { + angles = allAngles.slice(startAngleIndex, endAngleIndex + 1); + } else { + angles = [].concat( + allAngles.slice(0, endAngleIndex + 1), + allAngles.slice(startAngleIndex, allAngles.length) + ); + } + } + + for (var i = 0; i < angles.length; i++) { + var point = this$1.point(angles[i]); + box.wrapPoint(point); + box.wrapPoint(point, innerRadius); + } + + if (!innerRadius) { + box.wrapPoint(this.center); + } + + return box; + }; + + Ring.prototype.expand = function expand (value) { + this.radius += value; + return this; + }; + + return Ring; +}(_common__WEBPACK_IMPORTED_MODULE_3__["Class"])); + +function numericComparer(a, b) { + return a - b; +} + + __webpack_exports__["default"] = (Ring); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/core/root-element.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/main.js"); + var _chart_element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/chart-element.js"); + var _gradients__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/gradients.js"); + var _box__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/box.js"); + var _utils_box_diff__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/utils/box-diff.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + + + + + + + + +var RootElement = (function (ChartElement) { + function RootElement(options) { + ChartElement.call(this, options); + + var rootOptions = this.options; + rootOptions.width = parseInt(rootOptions.width, 10); + rootOptions.height = parseInt(rootOptions.height, 10); + + this.gradients = {}; + } + + if ( ChartElement ) RootElement.__proto__ = ChartElement; + RootElement.prototype = Object.create( ChartElement && ChartElement.prototype ); + RootElement.prototype.constructor = RootElement; + + RootElement.prototype.reflow = function reflow () { + var ref = this; + var options = ref.options; + var children = ref.children; + var currentBox = new _box__WEBPACK_IMPORTED_MODULE_3__["default"](0, 0, options.width, options.height); + + this.box = currentBox.unpad(options.margin); + + for (var i = 0; i < children.length; i++) { + children[i].reflow(currentBox); + currentBox = Object(_utils_box_diff__WEBPACK_IMPORTED_MODULE_4__["default"])(currentBox, children[i].box) || new _box__WEBPACK_IMPORTED_MODULE_3__["default"](); + } + }; + + RootElement.prototype.createVisual = function createVisual () { + this.visual = new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Group(); + this.createBackground(); + }; + + RootElement.prototype.createBackground = function createBackground () { + var options = this.options; + var border = options.border || {}; + var box = this.box.clone().pad(options.margin).unpad(border.width); + + var background = _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Path.fromRect(box.toRect(), { + stroke: { + color: border.width ? border.color : "", + width: border.width, + dashType: border.dashType + }, + fill: { + color: options.background, + opacity: options.opacity + }, + zIndex: -10 + }); + + this.visual.append(background); + }; + + RootElement.prototype.getRoot = function getRoot () { + return this; + }; + + RootElement.prototype.createGradient = function createGradient (options) { + var gradients = this.gradients; + var hashCode = Object(_common__WEBPACK_IMPORTED_MODULE_6__["objectKey"])(options); + var gradient = _gradients__WEBPACK_IMPORTED_MODULE_2__["default"][options.gradient]; + var drawingGradient; + + if (gradients[hashCode]) { + drawingGradient = gradients[hashCode]; + } else { + var gradientOptions = Object.assign({}, gradient, options); + if (gradient.type === "linear") { + drawingGradient = new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].LinearGradient(gradientOptions); + } else { + if (options.innerRadius) { + gradientOptions.stops = innerRadialStops(gradientOptions); + } + drawingGradient = new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].RadialGradient(gradientOptions); + drawingGradient.supportVML = gradient.supportVML !== false; + } + gradients[hashCode] = drawingGradient; + } + + return drawingGradient; + }; + + RootElement.prototype.cleanGradients = function cleanGradients () { + var gradients = this.gradients; + for (var hashCode in gradients) { + gradients[hashCode]._observers = [];//add clear observers method in drawing ObserversMixin + } + }; + + RootElement.prototype.size = function size () { + var options = this.options; + return new _box__WEBPACK_IMPORTED_MODULE_3__["default"](0, 0, options.width, options.height); + }; + + return RootElement; +}(_chart_element__WEBPACK_IMPORTED_MODULE_1__["default"])); + +Object(_common__WEBPACK_IMPORTED_MODULE_6__["setDefaultOptions"])(RootElement, { + width: _common_constants__WEBPACK_IMPORTED_MODULE_5__["DEFAULT_WIDTH"], + height: _common_constants__WEBPACK_IMPORTED_MODULE_5__["DEFAULT_HEIGHT"], + background: _common_constants__WEBPACK_IMPORTED_MODULE_5__["WHITE"], + border: { + color: _common_constants__WEBPACK_IMPORTED_MODULE_5__["BLACK"], + width: 0 + }, + margin: Object(_common__WEBPACK_IMPORTED_MODULE_6__["getSpacing"])(5), + zIndex: -2 +}); + +function innerRadialStops(options) { + var stops = options.stops; + var usedSpace = ((options.innerRadius / options.radius) * 100); + var length = stops.length; + var currentStops = []; + + for (var i = 0; i < length; i++) { + var currentStop = Object.assign({}, stops[i]); + currentStop.offset = (currentStop.offset * (100 - usedSpace) + usedSpace) / 100; + currentStops.push(currentStop); + } + + return currentStops; +} + + __webpack_exports__["default"] = (RootElement); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/core/sector.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _ring__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/ring.js"); + + +var Sector = (function (Ring) { + function Sector(center, radius, startAngle, angle) { + Ring.call(this, center, 0, radius, startAngle, angle); + } + + if ( Ring ) Sector.__proto__ = Ring; + Sector.prototype = Object.create( Ring && Ring.prototype ); + Sector.prototype.constructor = Sector; + + Sector.prototype.expand = function expand (value) { + return Ring.prototype.expand.call(this, value); + }; + + Sector.prototype.clone = function clone () { + return new Sector(this.center, this.radius, this.startAngle, this.angle); + }; + + Sector.prototype.setRadius = function setRadius (newRadius) { + this.radius = newRadius; + + return this; + }; + + return Sector; +}(_ring__WEBPACK_IMPORTED_MODULE_0__["default"])); + + __webpack_exports__["default"] = (Sector); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/core/shape-builder.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/main.js"); + var _common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + +var DIRECTION_ANGLE = 0.001; //any value that will make the endAngle bigger than the start angle will work here. + +var ShapeBuilder = (function (Class) { + function ShapeBuilder () { + Class.apply(this, arguments); + } + + if ( Class ) ShapeBuilder.__proto__ = Class; + ShapeBuilder.prototype = Object.create( Class && Class.prototype ); + ShapeBuilder.prototype.constructor = ShapeBuilder; + + ShapeBuilder.prototype.createRing = function createRing (sector, options) { + var startAngle = sector.startAngle + 180; + var endAngle = sector.angle + startAngle; + + //required in order to avoid reversing the arc direction in cases like 0.000000000000001 + 100 === 100 + if (sector.angle > 0 && startAngle === endAngle) { + endAngle += DIRECTION_ANGLE; + } + + var center = new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].Point(sector.center.x, sector.center.y); + var radius = Math.max(sector.radius, 0); + var innerRadius = Math.max(sector.innerRadius, 0); + var arc = new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].Arc(center, { + startAngle: startAngle, + endAngle: endAngle, + radiusX: radius, + radiusY: radius + }); + var path = _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Path.fromArc(arc, options).close(); + + if (innerRadius) { + arc.radiusX = arc.radiusY = innerRadius; + var innerEnd = arc.pointAt(endAngle); + path.lineTo(innerEnd.x, innerEnd.y); + path.arc(endAngle, startAngle, innerRadius, innerRadius, true); + } else { + path.lineTo(center.x, center.y); + } + + return path; + }; + + return ShapeBuilder; +}(_common__WEBPACK_IMPORTED_MODULE_1__["Class"])); + +ShapeBuilder.current = new ShapeBuilder(); + + __webpack_exports__["default"] = (ShapeBuilder); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/core/shape-element.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/main.js"); + var _box_element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/box-element.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + + + + +var ShapeElement = (function (BoxElement) { + function ShapeElement(options, pointData) { + BoxElement.call(this, options); + + this.pointData = pointData; + } + + if ( BoxElement ) ShapeElement.__proto__ = BoxElement; + ShapeElement.prototype = Object.create( BoxElement && BoxElement.prototype ); + ShapeElement.prototype.constructor = ShapeElement; + + ShapeElement.prototype.getElement = function getElement () { + var ref = this; + var options = ref.options; + var box = ref.paddingBox; + var type = options.type; + var rotation = options.rotation; + var center = box.center(); + var halfWidth = box.width() / 2; + + if (!options.visible || !this.hasBox()) { + return null; + } + + var style = this.visualStyle(); + var element; + + if (type === _common_constants__WEBPACK_IMPORTED_MODULE_2__["CIRCLE"]) { + element = new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Circle( + new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].Circle([ + Object(_common__WEBPACK_IMPORTED_MODULE_3__["round"])(box.x1 + halfWidth, _common_constants__WEBPACK_IMPORTED_MODULE_2__["COORD_PRECISION"]), + Object(_common__WEBPACK_IMPORTED_MODULE_3__["round"])(box.y1 + box.height() / 2, _common_constants__WEBPACK_IMPORTED_MODULE_2__["COORD_PRECISION"]) + ], halfWidth), + style + ); + } else if (type === _common_constants__WEBPACK_IMPORTED_MODULE_2__["TRIANGLE"]) { + element = _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Path.fromPoints([ + [ box.x1 + halfWidth, box.y1 ], + [ box.x1, box.y2 ], + [ box.x2, box.y2 ] + ], style).close(); + } else if (type === _common_constants__WEBPACK_IMPORTED_MODULE_2__["CROSS"]) { + element = new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].MultiPath(style); + + element.moveTo(box.x1, box.y1).lineTo(box.x2, box.y2); + element.moveTo(box.x1, box.y2).lineTo(box.x2, box.y1); + } else { + element = _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Path.fromRect(box.toRect(), style); + } + + if (rotation) { + element.transform(_progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].transform() + .rotate(-rotation, [ center.x, center.y ]) + ); + } + + element.options.zIndex = options.zIndex; + return element; + }; + + ShapeElement.prototype.createElement = function createElement () { + var this$1 = this; + + var customVisual = this.options.visual; + var pointData = this.pointData || {}; + var visual; + + if (customVisual) { + visual = customVisual({ + value: pointData.value, + dataItem: pointData.dataItem, + sender: this.getSender(), + series: pointData.series, + category: pointData.category, + rect: this.paddingBox.toRect(), + options: this.visualOptions(), + createVisual: function () { return this$1.getElement(); } + }); + } else { + visual = this.getElement(); + } + + return visual; + }; + + ShapeElement.prototype.visualOptions = function visualOptions () { + var options = this.options; + return { + background: options.background, + border: options.border, + margin: options.margin, + padding: options.padding, + type: options.type, + size: options.width, + visible: options.visible + }; + }; + + ShapeElement.prototype.createVisual = function createVisual () { + this.visual = this.createElement(); + }; + + return ShapeElement; +}(_box_element__WEBPACK_IMPORTED_MODULE_1__["default"])); + +Object(_common__WEBPACK_IMPORTED_MODULE_3__["setDefaultOptions"])(ShapeElement, { + type: _common_constants__WEBPACK_IMPORTED_MODULE_2__["CIRCLE"], + align: _common_constants__WEBPACK_IMPORTED_MODULE_2__["CENTER"], + vAlign: _common_constants__WEBPACK_IMPORTED_MODULE_2__["CENTER"] +}); + + __webpack_exports__["default"] = (ShapeElement); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/core/text-box.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/main.js"); + var _box_element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/box-element.js"); + var _float_element__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/float-element.js"); + var _text__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/text.js"); + var _box__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/box.js"); + var _utils_rect_to_box__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/utils/rect-to-box.js"); + var _common__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + + + + + + + + + + + + +var ROWS_SPLIT_REGEX = /\n/m; + +var TextBox = (function (BoxElement) { + function TextBox(content, options, data) { + BoxElement.call(this, options); + this.content = content; + this.data = data; + + this._initContainer(); + if (this.options._autoReflow !== false) { + this.reflow(new _box__WEBPACK_IMPORTED_MODULE_4__["default"]()); + } + } + + if ( BoxElement ) TextBox.__proto__ = BoxElement; + TextBox.prototype = Object.create( BoxElement && BoxElement.prototype ); + TextBox.prototype.constructor = TextBox; + + TextBox.prototype._initContainer = function _initContainer () { + var options = this.options; + var rows = String(this.content).split(ROWS_SPLIT_REGEX); + var floatElement = new _float_element__WEBPACK_IMPORTED_MODULE_2__["default"]({ vertical: true, align: options.align, wrap: false }); + var textOptions = Object(_common__WEBPACK_IMPORTED_MODULE_6__["deepExtend"])({ }, options, { opacity: 1, animation: null }); + + this.container = floatElement; + this.append(floatElement); + + for (var rowIdx = 0; rowIdx < rows.length; rowIdx++) { + var text = new _text__WEBPACK_IMPORTED_MODULE_3__["default"](rows[rowIdx].trim(), textOptions); + floatElement.append(text); + } + }; + + TextBox.prototype.reflow = function reflow (targetBox) { + var options = this.options; + var visualFn = options.visual; + this.container.options.align = options.align; + + if (visualFn && !this._boxReflow) { + var visualBox = targetBox; + if (!visualBox.hasSize()) { + this._boxReflow = true; + this.reflow(visualBox); + this._boxReflow = false; + visualBox = this.box; + } + var visual = this.visual = visualFn(this.visualContext(visualBox)); + + if (visual) { + visualBox = Object(_utils_rect_to_box__WEBPACK_IMPORTED_MODULE_5__["default"])(visual.clippedBBox() || new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].Rect()); + + visual.options.zIndex = options.zIndex; + } + + this.box = this.contentBox = this.paddingBox = visualBox; + } else { + BoxElement.prototype.reflow.call(this, targetBox); + + if (options.rotation) { + var margin = Object(_common__WEBPACK_IMPORTED_MODULE_6__["getSpacing"])(options.margin); + var box = this.box.unpad(margin); + + this.targetBox = targetBox; + this.normalBox = box.clone(); + + box = this.rotate(); + box.translate(margin.left - margin.right, margin.top - margin.bottom); + + this.rotatedBox = box.clone(); + + box.pad(margin); + } + } + }; + + TextBox.prototype.createVisual = function createVisual () { + var options = this.options; + + this.visual = new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Group({ + transform: this.rotationTransform(), + zIndex: options.zIndex, + noclip: options.noclip + }); + + if (this.hasBox()) { + var box = _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Path.fromRect(this.paddingBox.toRect(), this.visualStyle()); + this.visual.append(box); + } + }; + + TextBox.prototype.renderVisual = function renderVisual () { + if (!this.options.visible) { + return; + } + + if (this.options.visual) { + var visual = this.visual; + if (visual && !Object(_common__WEBPACK_IMPORTED_MODULE_6__["defined"])(visual.options.noclip)) { + visual.options.noclip = this.options.noclip; + } + this.addVisual(); + this.createAnimation(); + } else { + BoxElement.prototype.renderVisual.call(this); + } + }; + + TextBox.prototype.visualContext = function visualContext (targetBox) { + var this$1 = this; + + var context = { + text: this.content, + rect: targetBox.toRect(), + sender: this.getSender(), + options: this.options, + createVisual: function () { + this$1._boxReflow = true; + this$1.reflow(targetBox); + this$1._boxReflow = false; + return this$1.getDefaultVisual(); + } + }; + if (this.data) { + Object.assign(context, this.data); + } + + return context; + }; + + TextBox.prototype.getDefaultVisual = function getDefaultVisual () { + this.createVisual(); + this.renderChildren(); + var visual = this.visual; + delete this.visual; + return visual; + }; + + TextBox.prototype.rotate = function rotate () { + var options = this.options; + this.box.rotate(options.rotation); + this.align(this.targetBox, _common_constants__WEBPACK_IMPORTED_MODULE_7__["X"], options.align); + this.align(this.targetBox, _common_constants__WEBPACK_IMPORTED_MODULE_7__["Y"], options.vAlign); + return this.box; + }; + + TextBox.prototype.rotationTransform = function rotationTransform () { + var rotation = this.options.rotation; + if (!rotation) { + return null; + } + + var ref = this.normalBox.center(); + var cx = ref.x; + var cy = ref.y; + var boxCenter = this.rotatedBox.center(); + + return _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].transform() + .translate(boxCenter.x - cx, boxCenter.y - cy) + .rotate(rotation, [ cx, cy ]); + }; + + return TextBox; +}(_box_element__WEBPACK_IMPORTED_MODULE_1__["default"])); + + __webpack_exports__["default"] = (TextBox); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/core/text.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/main.js"); + var _chart_element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/chart-element.js"); + var _box__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/box.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + + + + + +var DrawingText = _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Text; + +var Text = (function (ChartElement) { + function Text(content, options) { + ChartElement.call(this, options); + + this.content = content; + + // Calculate size + this.reflow(new _box__WEBPACK_IMPORTED_MODULE_2__["default"]()); + } + + if ( ChartElement ) Text.__proto__ = ChartElement; + Text.prototype = Object.create( ChartElement && ChartElement.prototype ); + Text.prototype.constructor = Text; + + Text.prototype.reflow = function reflow (targetBox) { + var options = this.options; + var size = options.size = _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].util.measureText(this.content, { font: options.font }); + + this.baseline = size.baseline; + + this.box = new _box__WEBPACK_IMPORTED_MODULE_2__["default"](targetBox.x1, targetBox.y1, + targetBox.x1 + size.width, targetBox.y1 + size.height); + }; + + Text.prototype.createVisual = function createVisual () { + var ref = this.options; + var font = ref.font; + var color = ref.color; + var opacity = ref.opacity; + var cursor = ref.cursor; + + this.visual = new DrawingText(this.content, this.box.toRect().topLeft(), { + font: font, + fill: { color: color, opacity: opacity }, + cursor: cursor + }); + }; + + return Text; +}(_chart_element__WEBPACK_IMPORTED_MODULE_1__["default"])); + +Object(_common__WEBPACK_IMPORTED_MODULE_4__["setDefaultOptions"])(Text, { + font: _common_constants__WEBPACK_IMPORTED_MODULE_3__["DEFAULT_FONT"], + color: _common_constants__WEBPACK_IMPORTED_MODULE_3__["BLACK"] +}); + + __webpack_exports__["default"] = (Text); + + + }), + + "./node_modules/@progress/kendo-charts/dist/es/core/title.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _chart_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/chart-element.js"); + var _text_box__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/text-box.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + + + +var Title = (function (ChartElement) { + function Title(options) { + ChartElement.call(this, options); + + this.append( + new _text_box__WEBPACK_IMPORTED_MODULE_1__["default"](this.options.text, Object.assign({}, this.options, { + vAlign: this.options.position + })) + ); + } + + if ( ChartElement ) Title.__proto__ = ChartElement; + Title.prototype = Object.create( ChartElement && ChartElement.prototype ); + Title.prototype.constructor = Title; + + Title.prototype.reflow = function reflow (targetBox) { + ChartElement.prototype.reflow.call(this, targetBox); + this.box.snapTo(targetBox, _common_constants__WEBPACK_IMPORTED_MODULE_2__["X"]); + }; + + Title.buildTitle = function buildTitle (options, parent, defaultOptions) { + var titleOptions = options; + + if (typeof options === "string") { + titleOptions = { text: options }; + } + + titleOptions = Object.assign({ visible: true }, defaultOptions, titleOptions); + + var title; + if (titleOptions && titleOptions.visible && titleOptions.text) { + title = new Title(titleOptions); + parent.append(title); + } + + return title; + }; + + return Title; +}(_chart_element__WEBPACK_IMPORTED_MODULE_0__["default"])); + +Object(_common__WEBPACK_IMPORTED_MODULE_3__["setDefaultOptions"])(Title, { + color: _common_constants__WEBPACK_IMPORTED_MODULE_2__["BLACK"], + position: _common_constants__WEBPACK_IMPORTED_MODULE_2__["TOP"], + align: _common_constants__WEBPACK_IMPORTED_MODULE_2__["CENTER"], + margin: Object(_common__WEBPACK_IMPORTED_MODULE_3__["getSpacing"])(5), + padding: Object(_common__WEBPACK_IMPORTED_MODULE_3__["getSpacing"])(5) +}); + + __webpack_exports__["default"] = (Title); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/core/utils/auto-axis-max.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return autoAxisMax; }); + var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/constants.js"); + + +function autoAxisMax(min, max, narrow) { + if (!min && !max) { + return 1; + } + + var axisMax; + + if (min <= 0 && max <= 0) { + var maxValue = min === max ? 0 : max; + + var diff = Math.abs((maxValue - min) / maxValue); + if (narrow === false || (!narrow && diff > _constants__WEBPACK_IMPORTED_MODULE_0__["ZERO_THRESHOLD"])) { + return 0; + } + + axisMax = Math.min(0, maxValue - ((min - maxValue) / 2)); + } else { + axisMax = max; + } + + return axisMax; +} + + }), + + "./node_modules/@progress/kendo-charts/dist/es/core/utils/auto-axis-min.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return autoAxisMin; }); + var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/constants.js"); + + +function autoAxisMin(min, max, narrow) { + if (!min && !max) { + return 0; + } + + var axisMin; + + if (min >= 0 && max >= 0) { + var minValue = min === max ? 0 : min; + + var diff = (max - minValue) / max; + if (narrow === false || (!narrow && diff > _constants__WEBPACK_IMPORTED_MODULE_0__["ZERO_THRESHOLD"])) { + return 0; + } + + axisMin = Math.max(0, minValue - ((max - minValue) / 2)); + } else { + axisMin = min; + } + + return axisMin; +} + + + }), + + "./node_modules/@progress/kendo-charts/dist/es/core/utils/auto-major-unit.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return autoMajorUnit; }); + var _common_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + +function autoMajorUnit(min, max) { + var diff = Object(_common__WEBPACK_IMPORTED_MODULE_1__["round"])(max - min, _common_constants__WEBPACK_IMPORTED_MODULE_0__["DEFAULT_PRECISION"] - 1); + + if (diff === 0) { + if (max === 0) { + return 0.1; + } + + diff = Math.abs(max); + } + + var scale = Math.pow(10, Math.floor(Math.log(diff) / Math.log(10))); + var relativeValue = Object(_common__WEBPACK_IMPORTED_MODULE_1__["round"])((diff / scale), _common_constants__WEBPACK_IMPORTED_MODULE_0__["DEFAULT_PRECISION"]); + var scaleMultiplier = 1; + + if (relativeValue < 1.904762) { + scaleMultiplier = 0.2; + } else if (relativeValue < 4.761904) { + scaleMultiplier = 0.5; + } else if (relativeValue < 9.523809) { + scaleMultiplier = 1; + } else { + scaleMultiplier = 2; + } + + return Object(_common__WEBPACK_IMPORTED_MODULE_1__["round"])(scale * scaleMultiplier, _common_constants__WEBPACK_IMPORTED_MODULE_0__["DEFAULT_PRECISION"]); +} + + }), + + "./node_modules/@progress/kendo-charts/dist/es/core/utils/box-diff.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return boxDiff; }); + var _box__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/box.js"); + var _common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + +function boxDiff(r, s) { + if (r.x1 === s.x1 && r.y1 === s.y1 && r.x2 === s.x2 && r.y2 === s.y2) { + return s; + } + + var a = Math.min(r.x1, s.x1); + var b = Math.max(r.x1, s.x1); + var c = Math.min(r.x2, s.x2); + var d = Math.max(r.x2, s.x2); + var e = Math.min(r.y1, s.y1); + var f = Math.max(r.y1, s.y1); + var g = Math.min(r.y2, s.y2); + var h = Math.max(r.y2, s.y2); + var boxes = []; + + // X = intersection, 0-7 = possible difference areas + // h +-+-+-+ + // . |5|6|7| + // g +-+-+-+ + // . |3|X|4| + // f +-+-+-+ + // . |0|1|2| + // e +-+-+-+ + // . a b c d + + // we'll always have rectangles 1, 3, 4 and 6 + boxes[0] = new _box__WEBPACK_IMPORTED_MODULE_0__["default"](b, e, c, f); + boxes[1] = new _box__WEBPACK_IMPORTED_MODULE_0__["default"](a, f, b, g); + boxes[2] = new _box__WEBPACK_IMPORTED_MODULE_0__["default"](c, f, d, g); + boxes[3] = new _box__WEBPACK_IMPORTED_MODULE_0__["default"](b, g, c, h); + + // decide which corners + if (r.x1 === a && r.y1 === e || s.x1 === a && s.y1 === e) { // corners 0 and 7 + boxes[4] = new _box__WEBPACK_IMPORTED_MODULE_0__["default"](a, e, b, f); + boxes[5] = new _box__WEBPACK_IMPORTED_MODULE_0__["default"](c, g, d, h); + } else { // corners 2 and 5 + boxes[4] = new _box__WEBPACK_IMPORTED_MODULE_0__["default"](c, e, d, f); + boxes[5] = new _box__WEBPACK_IMPORTED_MODULE_0__["default"](a, g, b, h); + } + + return Object(_common__WEBPACK_IMPORTED_MODULE_1__["grep"])(boxes, function(box) { + return box.height() > 0 && box.width() > 0; + })[0]; +} + + }), + + "./node_modules/@progress/kendo-charts/dist/es/core/utils/ceil.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return ceil; }); + var _common_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + +function ceil(value, step) { + return Object(_common__WEBPACK_IMPORTED_MODULE_1__["round"])(Math.ceil(value / step) * step, _common_constants__WEBPACK_IMPORTED_MODULE_0__["DEFAULT_PRECISION"]); +} + + }), + + "./node_modules/@progress/kendo-charts/dist/es/core/utils/create-axis-grid-line.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return createAxisGridLine; }); + var _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/main.js"); + var _common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + +function createAxisGridLine(options, gridLine) { + var lineStart = options.lineStart; + var lineEnd = options.lineEnd; + var position = options.position; + + var line = new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Path({ + stroke: { + width: gridLine.width, + color: gridLine.color, + dashType: gridLine.dashType + } + }); + + if (options.vertical) { + line.moveTo(lineStart, position) + .lineTo(lineEnd, position); + } else { + line.moveTo(position, lineStart) + .lineTo(position, lineEnd); + } + + Object(_common__WEBPACK_IMPORTED_MODULE_1__["alignPathToPixel"])(line); + + return line; +} + + }), + + "./node_modules/@progress/kendo-charts/dist/es/core/utils/create-axis-tick.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return createAxisTick; }); + var _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/main.js"); + var _common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + +function createAxisTick(options, tickOptions) { + var tickX = options.tickX; + var tickY = options.tickY; + var position = options.position; + + var tick = new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Path({ + stroke: { + width: tickOptions.width, + color: tickOptions.color + } + }); + + if (options.vertical) { + tick.moveTo(tickX, position) + .lineTo(tickX + tickOptions.size, position); + } else { + tick.moveTo(position, tickY) + .lineTo(position, tickY + tickOptions.size); + } + + Object(_common__WEBPACK_IMPORTED_MODULE_1__["alignPathToPixel"])(tick); + + return tick; +} + + }), + + "./node_modules/@progress/kendo-charts/dist/es/core/utils/floor.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return floor; }); + var _common_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + +function floor(value, step) { + return Object(_common__WEBPACK_IMPORTED_MODULE_1__["round"])(Math.floor(value / step) * step, _common_constants__WEBPACK_IMPORTED_MODULE_0__["DEFAULT_PRECISION"]); +} + + + }), + + "./node_modules/@progress/kendo-charts/dist/es/core/utils/limit-coordinate.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return limitCoordinate; }); + var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/constants.js"); + + +function limitCoordinate(value) { + return Math.max(Math.min(value, _constants__WEBPACK_IMPORTED_MODULE_0__["COORDINATE_LIMIT"]), -_constants__WEBPACK_IMPORTED_MODULE_0__["COORDINATE_LIMIT"]); +} + + }), + + "./node_modules/@progress/kendo-charts/dist/es/core/utils/rect-to-box.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return rectToBox; }); + var _box__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core/box.js"); + + +function rectToBox(rect) { + var origin = rect.origin; + var bottomRight = rect.bottomRight(); + + return new _box__WEBPACK_IMPORTED_MODULE_0__["default"](origin.x, origin.y, bottomRight.x, bottomRight.y); +} + + }), + + "./node_modules/@progress/kendo-charts/dist/es/date-utils.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _date_utils_absolute_date_diff__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/date-utils/absolute-date-diff.js"); + __webpack_require__.d(__webpack_exports__, "absoluteDateDiff", function() { return _date_utils_absolute_date_diff__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + + var _date_utils_add_duration__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/date-utils/add-duration.js"); + __webpack_require__.d(__webpack_exports__, "addDuration", function() { return _date_utils_add_duration__WEBPACK_IMPORTED_MODULE_1__["default"]; }); + + var _date_utils_add_ticks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/date-utils/add-ticks.js"); + __webpack_require__.d(__webpack_exports__, "addTicks", function() { return _date_utils_add_ticks__WEBPACK_IMPORTED_MODULE_2__["default"]; }); + + var _date_utils_ceil_date__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/date-utils/ceil-date.js"); + __webpack_require__.d(__webpack_exports__, "ceilDate", function() { return _date_utils_ceil_date__WEBPACK_IMPORTED_MODULE_3__["default"]; }); + + var _date_utils_date_comparer__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/date-utils/date-comparer.js"); + __webpack_require__.d(__webpack_exports__, "dateComparer", function() { return _date_utils_date_comparer__WEBPACK_IMPORTED_MODULE_4__["default"]; }); + + var _date_utils_date_diff__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/date-utils/date-diff.js"); + __webpack_require__.d(__webpack_exports__, "dateDiff", function() { return _date_utils_date_diff__WEBPACK_IMPORTED_MODULE_5__["default"]; }); + + var _date_utils_date_equals__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/date-utils/date-equals.js"); + __webpack_require__.d(__webpack_exports__, "dateEquals", function() { return _date_utils_date_equals__WEBPACK_IMPORTED_MODULE_6__["default"]; }); + + var _date_utils_date_index__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/date-utils/date-index.js"); + __webpack_require__.d(__webpack_exports__, "dateIndex", function() { return _date_utils_date_index__WEBPACK_IMPORTED_MODULE_7__["default"]; }); + + var _date_utils_duration__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/date-utils/duration.js"); + __webpack_require__.d(__webpack_exports__, "duration", function() { return _date_utils_duration__WEBPACK_IMPORTED_MODULE_8__["default"]; }); + + var _date_utils_floor_date__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/date-utils/floor-date.js"); + __webpack_require__.d(__webpack_exports__, "floorDate", function() { return _date_utils_floor_date__WEBPACK_IMPORTED_MODULE_9__["default"]; }); + + var _date_utils_lte_date_index__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/date-utils/lte-date-index.js"); + __webpack_require__.d(__webpack_exports__, "lteDateIndex", function() { return _date_utils_lte_date_index__WEBPACK_IMPORTED_MODULE_10__["default"]; }); + + var _date_utils_start_of_week__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/date-utils/start-of-week.js"); + __webpack_require__.d(__webpack_exports__, "startOfWeek", function() { return _date_utils_start_of_week__WEBPACK_IMPORTED_MODULE_11__["default"]; }); + + var _date_utils_to_date__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/date-utils/to-date.js"); + __webpack_require__.d(__webpack_exports__, "toDate", function() { return _date_utils_to_date__WEBPACK_IMPORTED_MODULE_12__["default"]; }); + + var _date_utils_parse_date__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/date-utils/parse-date.js"); + __webpack_require__.d(__webpack_exports__, "parseDate", function() { return _date_utils_parse_date__WEBPACK_IMPORTED_MODULE_13__["default"]; }); + + var _date_utils_parse_dates__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/date-utils/parse-dates.js"); + __webpack_require__.d(__webpack_exports__, "parseDates", function() { return _date_utils_parse_dates__WEBPACK_IMPORTED_MODULE_14__["default"]; }); + + var _date_utils_to_time__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/date-utils/to-time.js"); + __webpack_require__.d(__webpack_exports__, "toTime", function() { return _date_utils_to_time__WEBPACK_IMPORTED_MODULE_15__["default"]; }); + + + + + + + + + + + + + + + + + + + + }), + + "./node_modules/@progress/kendo-charts/dist/es/date-utils/absolute-date-diff.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return absoluteDateDiff; }); + var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/date-utils/constants.js"); + + +function absoluteDateDiff(a, b) { + var diff = a.getTime() - b; + var offsetDiff = a.getTimezoneOffset() - b.getTimezoneOffset(); + + return diff - (offsetDiff * _constants__WEBPACK_IMPORTED_MODULE_0__["TIME_PER_MINUTE"]); +} + + }), + + "./node_modules/@progress/kendo-charts/dist/es/date-utils/add-duration.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return addDuration; }); + var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/date-utils/constants.js"); + var _add_ticks__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/date-utils/add-ticks.js"); + var _to_date__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/date-utils/to-date.js"); + var _start_of_week__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/date-utils/start-of-week.js"); + + + + + +function adjustDST(date, hours) { + if (hours === 0 && date.getHours() === 23) { + date.setHours(date.getHours() + 2); + return true; + } + + return false; +} + +function addHours(date, hours) { + var roundedDate = new Date(date); + + roundedDate.setMinutes(0, 0, 0); + + var tzDiff = (date.getTimezoneOffset() - roundedDate.getTimezoneOffset()) * _constants__WEBPACK_IMPORTED_MODULE_0__["TIME_PER_MINUTE"]; + + return Object(_add_ticks__WEBPACK_IMPORTED_MODULE_1__["default"])(roundedDate, tzDiff + hours * _constants__WEBPACK_IMPORTED_MODULE_0__["TIME_PER_HOUR"]); +} + +function addDuration(dateValue, value, unit, weekStartDay) { + var result = dateValue; + + if (dateValue) { + var date = Object(_to_date__WEBPACK_IMPORTED_MODULE_2__["default"])(dateValue); + var hours = date.getHours(); + + if (unit === _constants__WEBPACK_IMPORTED_MODULE_0__["YEARS"]) { + result = new Date(date.getFullYear() + value, 0, 1); + adjustDST(result, 0); + } else if (unit === _constants__WEBPACK_IMPORTED_MODULE_0__["MONTHS"]) { + result = new Date(date.getFullYear(), date.getMonth() + value, 1); + adjustDST(result, hours); + } else if (unit === _constants__WEBPACK_IMPORTED_MODULE_0__["WEEKS"]) { + result = addDuration(Object(_start_of_week__WEBPACK_IMPORTED_MODULE_3__["default"])(date, weekStartDay), value * 7, _constants__WEBPACK_IMPORTED_MODULE_0__["DAYS"]); + adjustDST(result, hours); + } else if (unit === _constants__WEBPACK_IMPORTED_MODULE_0__["DAYS"]) { + result = new Date(date.getFullYear(), date.getMonth(), date.getDate() + value); + adjustDST(result, hours); + } else if (unit === _constants__WEBPACK_IMPORTED_MODULE_0__["HOURS"]) { + result = addHours(date, value); + } else if (unit === _constants__WEBPACK_IMPORTED_MODULE_0__["MINUTES"]) { + result = Object(_add_ticks__WEBPACK_IMPORTED_MODULE_1__["default"])(date, value * _constants__WEBPACK_IMPORTED_MODULE_0__["TIME_PER_MINUTE"]); + + if (result.getSeconds() > 0) { + result.setSeconds(0); + } + } else if (unit === _constants__WEBPACK_IMPORTED_MODULE_0__["SECONDS"]) { + result = Object(_add_ticks__WEBPACK_IMPORTED_MODULE_1__["default"])(date, value * _constants__WEBPACK_IMPORTED_MODULE_0__["TIME_PER_SECOND"]); + } else if (unit === _constants__WEBPACK_IMPORTED_MODULE_0__["MILLISECONDS"]) { + result = Object(_add_ticks__WEBPACK_IMPORTED_MODULE_1__["default"])(date, value); + } + + if (unit !== _constants__WEBPACK_IMPORTED_MODULE_0__["MILLISECONDS"] && result.getMilliseconds() > 0) { + result.setMilliseconds(0); + } + } + + return result; +} + + }), + + "./node_modules/@progress/kendo-charts/dist/es/date-utils/add-ticks.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return addTicks; }); +function addTicks(date, ticks) { + return new Date(date.getTime() + ticks); +} + + }), + + "./node_modules/@progress/kendo-charts/dist/es/date-utils/ceil-date.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return ceilDate; }); + var _floor_date__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/date-utils/floor-date.js"); + var _add_duration__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/date-utils/add-duration.js"); + var _to_date__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/date-utils/to-date.js"); + + + + +function ceilDate(dateValue, unit, weekStartDay) { + var date = Object(_to_date__WEBPACK_IMPORTED_MODULE_2__["default"])(dateValue); + + if (date && Object(_floor_date__WEBPACK_IMPORTED_MODULE_0__["default"])(date, unit, weekStartDay).getTime() === date.getTime()) { + return date; + } + + return Object(_add_duration__WEBPACK_IMPORTED_MODULE_1__["default"])(date, 1, unit, weekStartDay); +} + + }), + + "./node_modules/@progress/kendo-charts/dist/es/date-utils/constants.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "MILLISECONDS", function() { return MILLISECONDS; }); + __webpack_require__.d(__webpack_exports__, "SECONDS", function() { return SECONDS; }); + __webpack_require__.d(__webpack_exports__, "MINUTES", function() { return MINUTES; }); + __webpack_require__.d(__webpack_exports__, "HOURS", function() { return HOURS; }); + __webpack_require__.d(__webpack_exports__, "DAYS", function() { return DAYS; }); + __webpack_require__.d(__webpack_exports__, "WEEKS", function() { return WEEKS; }); + __webpack_require__.d(__webpack_exports__, "MONTHS", function() { return MONTHS; }); + __webpack_require__.d(__webpack_exports__, "YEARS", function() { return YEARS; }); + __webpack_require__.d(__webpack_exports__, "TIME_PER_MILLISECOND", function() { return TIME_PER_MILLISECOND; }); + __webpack_require__.d(__webpack_exports__, "TIME_PER_SECOND", function() { return TIME_PER_SECOND; }); + __webpack_require__.d(__webpack_exports__, "TIME_PER_MINUTE", function() { return TIME_PER_MINUTE; }); + __webpack_require__.d(__webpack_exports__, "TIME_PER_HOUR", function() { return TIME_PER_HOUR; }); + __webpack_require__.d(__webpack_exports__, "TIME_PER_DAY", function() { return TIME_PER_DAY; }); + __webpack_require__.d(__webpack_exports__, "TIME_PER_WEEK", function() { return TIME_PER_WEEK; }); + __webpack_require__.d(__webpack_exports__, "TIME_PER_MONTH", function() { return TIME_PER_MONTH; }); + __webpack_require__.d(__webpack_exports__, "TIME_PER_YEAR", function() { return TIME_PER_YEAR; }); + __webpack_require__.d(__webpack_exports__, "TIME_PER_UNIT", function() { return TIME_PER_UNIT; }); +var MILLISECONDS = "milliseconds"; +var SECONDS = "seconds"; +var MINUTES = "minutes"; +var HOURS = "hours"; +var DAYS = "days"; +var WEEKS = "weeks"; +var MONTHS = "months"; +var YEARS = "years"; + +var TIME_PER_MILLISECOND = 1; +var TIME_PER_SECOND = 1000; +var TIME_PER_MINUTE = 60 * TIME_PER_SECOND; +var TIME_PER_HOUR = 60 * TIME_PER_MINUTE; +var TIME_PER_DAY = 24 * TIME_PER_HOUR; +var TIME_PER_WEEK = 7 * TIME_PER_DAY; +var TIME_PER_MONTH = 31 * TIME_PER_DAY; +var TIME_PER_YEAR = 365 * TIME_PER_DAY; +var TIME_PER_UNIT = { + "years": TIME_PER_YEAR, + "months": TIME_PER_MONTH, + "weeks": TIME_PER_WEEK, + "days": TIME_PER_DAY, + "hours": TIME_PER_HOUR, + "minutes": TIME_PER_MINUTE, + "seconds": TIME_PER_SECOND, + "milliseconds": TIME_PER_MILLISECOND +}; + + + + }), + + "./node_modules/@progress/kendo-charts/dist/es/date-utils/date-comparer.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return dateComparer; }); +function dateComparer(a, b) { + if (a && b) { + return a.getTime() - b.getTime(); + } + + return -1; +} + + }), + + "./node_modules/@progress/kendo-charts/dist/es/date-utils/date-diff.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return dateDiff; }); +function dateDiff(a, b) { + return a.getTime() - b; +} + + }), + + "./node_modules/@progress/kendo-charts/dist/es/date-utils/date-equals.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return dateEquals; }); + var _to_time__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/date-utils/to-time.js"); + + +function dateEquals(a, b) { + if (a && b) { + return Object(_to_time__WEBPACK_IMPORTED_MODULE_0__["default"])(a) === Object(_to_time__WEBPACK_IMPORTED_MODULE_0__["default"])(b); + } + + return a === b; +} + + }), + + "./node_modules/@progress/kendo-charts/dist/es/date-utils/date-index.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return dateIndex; }); + var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/date-utils/constants.js"); + var _date_diff__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/date-utils/date-diff.js"); + var _absolute_date_diff__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/date-utils/absolute-date-diff.js"); + var _to_date__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/date-utils/to-date.js"); + + + + + +function timeIndex(date, start, baseUnit) { + return Object(_absolute_date_diff__WEBPACK_IMPORTED_MODULE_2__["default"])(date, start) / _constants__WEBPACK_IMPORTED_MODULE_0__["TIME_PER_UNIT"][baseUnit]; +} + +function dateIndex(value, start, baseUnit, baseUnitStep) { + var date = Object(_to_date__WEBPACK_IMPORTED_MODULE_3__["default"])(value); + var startDate = Object(_to_date__WEBPACK_IMPORTED_MODULE_3__["default"])(start); + var index; + + if (baseUnit === _constants__WEBPACK_IMPORTED_MODULE_0__["MONTHS"]) { + index = (date.getMonth() - startDate.getMonth() + (date.getFullYear() - startDate.getFullYear()) * 12) + + timeIndex(date, new Date(date.getFullYear(), date.getMonth()), _constants__WEBPACK_IMPORTED_MODULE_0__["DAYS"]) / new Date(date.getFullYear(), date.getMonth() + 1, 0).getDate(); + } else if (baseUnit === _constants__WEBPACK_IMPORTED_MODULE_0__["YEARS"]) { + index = date.getFullYear() - startDate.getFullYear() + dateIndex(date, new Date(date.getFullYear(), 0), _constants__WEBPACK_IMPORTED_MODULE_0__["MONTHS"], 1) / 12; + } else if (baseUnit === _constants__WEBPACK_IMPORTED_MODULE_0__["DAYS"] || baseUnit === _constants__WEBPACK_IMPORTED_MODULE_0__["WEEKS"]) { + index = timeIndex(date, startDate, baseUnit); + } else { + index = Object(_date_diff__WEBPACK_IMPORTED_MODULE_1__["default"])(date, start) / _constants__WEBPACK_IMPORTED_MODULE_0__["TIME_PER_UNIT"][baseUnit]; + } + + return index / baseUnitStep; +} + + + + }), + + "./node_modules/@progress/kendo-charts/dist/es/date-utils/duration.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return duration; }); + var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/date-utils/constants.js"); + var _date_diff__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/date-utils/date-diff.js"); + + + +function duration(a, b, unit) { + var diff; + + if (unit === _constants__WEBPACK_IMPORTED_MODULE_0__["YEARS"]) { + diff = b.getFullYear() - a.getFullYear(); + } else if (unit === _constants__WEBPACK_IMPORTED_MODULE_0__["MONTHS"]) { + diff = duration(a, b, _constants__WEBPACK_IMPORTED_MODULE_0__["YEARS"]) * 12 + b.getMonth() - a.getMonth(); + } else if (unit === _constants__WEBPACK_IMPORTED_MODULE_0__["DAYS"]) { + diff = Math.floor(Object(_date_diff__WEBPACK_IMPORTED_MODULE_1__["default"])(b, a) / _constants__WEBPACK_IMPORTED_MODULE_0__["TIME_PER_DAY"]); + } else { + diff = Math.floor(Object(_date_diff__WEBPACK_IMPORTED_MODULE_1__["default"])(b, a) / _constants__WEBPACK_IMPORTED_MODULE_0__["TIME_PER_UNIT"][unit]); + } + + return diff; +} + + }), + + "./node_modules/@progress/kendo-charts/dist/es/date-utils/floor-date.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return floorDate; }); + var _add_duration__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/date-utils/add-duration.js"); + var _to_date__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/date-utils/to-date.js"); + + + +function floorDate(date, unit, weekStartDay) { + return Object(_add_duration__WEBPACK_IMPORTED_MODULE_0__["default"])(Object(_to_date__WEBPACK_IMPORTED_MODULE_1__["default"])(date), 0, unit, weekStartDay); +} + + }), + + "./node_modules/@progress/kendo-charts/dist/es/date-utils/lte-date-index.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return lteDateIndex; }); + var _date_equals__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/date-utils/date-equals.js"); + + +function lteDateIndex(date, sortedDates) { + var low = 0; + var high = sortedDates.length - 1; + var index; + + while (low <= high) { + index = Math.floor((low + high) / 2); + var currentDate = sortedDates[index]; + + if (currentDate < date) { + low = index + 1; + continue; + } + + if (currentDate > date) { + high = index - 1; + continue; + } + + while (Object(_date_equals__WEBPACK_IMPORTED_MODULE_0__["default"])(sortedDates[index - 1], date)) { + index--; + } + + return index; + } + + if (sortedDates[index] <= date) { + return index; + } + + return index - 1; +} + + }), + + "./node_modules/@progress/kendo-charts/dist/es/date-utils/parse-date.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return parseDate; }); + var _common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + var _to_date__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/date-utils/to-date.js"); + + + +function parseDate(intlService, date) { + var result; + if (Object(_common__WEBPACK_IMPORTED_MODULE_0__["isString"])(date)) { + result = intlService.parseDate(date) || Object(_to_date__WEBPACK_IMPORTED_MODULE_1__["default"])(date); + } else { + result = Object(_to_date__WEBPACK_IMPORTED_MODULE_1__["default"])(date); + } + return result; +} + + + }), + + "./node_modules/@progress/kendo-charts/dist/es/date-utils/parse-dates.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return parseDates; }); + var _parse_date__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/date-utils/parse-date.js"); + var _common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + +function parseDates(intlService, dates) { + if (Object(_common__WEBPACK_IMPORTED_MODULE_1__["isArray"])(dates)) { + var result = []; + for (var idx = 0; idx < dates.length; idx++) { + result.push(Object(_parse_date__WEBPACK_IMPORTED_MODULE_0__["default"])(intlService, dates[idx])); + } + + return result; + } + + return Object(_parse_date__WEBPACK_IMPORTED_MODULE_0__["default"])(intlService, dates); +} + + }), + + "./node_modules/@progress/kendo-charts/dist/es/date-utils/start-of-week.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return startOfWeek; }); + var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/date-utils/constants.js"); + var _add_ticks__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/date-utils/add-ticks.js"); + + + +function startOfWeek(date, weekStartDay) { + if ( weekStartDay === void 0 ) weekStartDay = 0; + + var daysToSubtract = 0; + var day = date.getDay(); + + if (!isNaN(day)) { + while (day !== weekStartDay) { + if (day === 0) { + day = 6; + } else { + day--; + } + + daysToSubtract++; + } + } + + return Object(_add_ticks__WEBPACK_IMPORTED_MODULE_1__["default"])(date, -daysToSubtract * _constants__WEBPACK_IMPORTED_MODULE_0__["TIME_PER_DAY"]); +} + + }), + + "./node_modules/@progress/kendo-charts/dist/es/date-utils/to-date.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return toDate; }); +function toDate(value) { + var result; + + if (value instanceof Date) { + result = value; + } else if (value) { + result = new Date(value); + } + + return result; +} + + }), + + "./node_modules/@progress/kendo-charts/dist/es/date-utils/to-time.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return toTime; }); + var _common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + var _to_date__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/date-utils/to-date.js"); + + + +function toTime(value) { + if (Object(_common__WEBPACK_IMPORTED_MODULE_0__["isArray"])(value)) { + var result = []; + for (var idx = 0; idx < value.length; idx++) { + result.push(toTime(value[idx])); + } + + return result; + } else if (value) { + return Object(_to_date__WEBPACK_IMPORTED_MODULE_1__["default"])(value).getTime(); + } +} + + }), + + "./node_modules/@progress/kendo-charts/dist/es/drawing-utils.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "append", function() { return append; }); + __webpack_require__.d(__webpack_exports__, "bindEvents", function() { return bindEvents; }); + __webpack_require__.d(__webpack_exports__, "defined", function() { return defined; }); + __webpack_require__.d(__webpack_exports__, "deg", function() { return deg; }); + __webpack_require__.d(__webpack_exports__, "elementOffset", function() { return elementOffset; }); + __webpack_require__.d(__webpack_exports__, "elementSize", function() { return elementSize; }); + __webpack_require__.d(__webpack_exports__, "eventElement", function() { return eventElement; }); + __webpack_require__.d(__webpack_exports__, "eventCoordinates", function() { return eventCoordinates; }); + __webpack_require__.d(__webpack_exports__, "last", function() { return last; }); + __webpack_require__.d(__webpack_exports__, "limitValue", function() { return limitValue; }); + __webpack_require__.d(__webpack_exports__, "objectKey", function() { return objectKey; }); + __webpack_require__.d(__webpack_exports__, "rad", function() { return rad; }); + __webpack_require__.d(__webpack_exports__, "round", function() { return round; }); + __webpack_require__.d(__webpack_exports__, "unbindEvents", function() { return unbindEvents; }); + __webpack_require__.d(__webpack_exports__, "valueOrDefault", function() { return valueOrDefault; }); + var _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/main.js"); + __webpack_require__.d(__webpack_exports__, "Class", function() { return _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["Class"]; }); + + __webpack_require__.d(__webpack_exports__, "logToConsole", function() { return _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["logToConsole"]; }); + + + +var ref = _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].util; +var append = ref.append; +var bindEvents = ref.bindEvents; +var defined = ref.defined; +var deg = ref.deg; +var elementOffset = ref.elementOffset; +var elementSize = ref.elementSize; +var eventElement = ref.eventElement; +var eventCoordinates = ref.eventCoordinates; +var last = ref.last; +var limitValue = ref.limitValue; +var objectKey = ref.objectKey; +var rad = ref.rad; +var round = ref.round; +var unbindEvents = ref.unbindEvents; +var valueOrDefault = ref.valueOrDefault; + + + + }), + + "./node_modules/@progress/kendo-charts/dist/es/gauges.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _gauges_gauge__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/gauges/gauge.js"); + __webpack_require__.d(__webpack_exports__, "Gauge", function() { return _gauges_gauge__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + + var _gauges_linear_linear_gauge__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/gauges/linear/linear-gauge.js"); + __webpack_require__.d(__webpack_exports__, "LinearGauge", function() { return _gauges_linear_linear_gauge__WEBPACK_IMPORTED_MODULE_1__["default"]; }); + + var _gauges_linear_linear_pointer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/gauges/linear/linear-pointer.js"); + __webpack_require__.d(__webpack_exports__, "LinearPointer", function() { return _gauges_linear_linear_pointer__WEBPACK_IMPORTED_MODULE_2__["default"]; }); + + var _gauges_linear_arrow_linear_pointer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/gauges/linear/arrow-linear-pointer.js"); + __webpack_require__.d(__webpack_exports__, "ArrowLinearPointer", function() { return _gauges_linear_arrow_linear_pointer__WEBPACK_IMPORTED_MODULE_3__["default"]; }); + + var _gauges_linear_bar_linear_pointer__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/gauges/linear/bar-linear-pointer.js"); + __webpack_require__.d(__webpack_exports__, "BarLinearPointer", function() { return _gauges_linear_bar_linear_pointer__WEBPACK_IMPORTED_MODULE_4__["default"]; }); + + var _gauges_linear_linear_scale__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/gauges/linear/linear-scale.js"); + __webpack_require__.d(__webpack_exports__, "LinearScale", function() { return _gauges_linear_linear_scale__WEBPACK_IMPORTED_MODULE_5__["default"]; }); + + var _gauges_radial_radial_gauge__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/gauges/radial/radial-gauge.js"); + __webpack_require__.d(__webpack_exports__, "RadialGauge", function() { return _gauges_radial_radial_gauge__WEBPACK_IMPORTED_MODULE_6__["default"]; }); + + var _gauges_radial_radial_pointer__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/gauges/radial/radial-pointer.js"); + __webpack_require__.d(__webpack_exports__, "RadialPointer", function() { return _gauges_radial_radial_pointer__WEBPACK_IMPORTED_MODULE_7__["default"]; }); + + var _gauges_radial_radial_scale__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/gauges/radial/radial-scale.js"); + __webpack_require__.d(__webpack_exports__, "RadialScale", function() { return _gauges_radial_radial_scale__WEBPACK_IMPORTED_MODULE_8__["default"]; }); + + var _gauges_arc_arc_gauge__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/gauges/arc/arc-gauge.js"); + __webpack_require__.d(__webpack_exports__, "ArcGauge", function() { return _gauges_arc_arc_gauge__WEBPACK_IMPORTED_MODULE_9__["default"]; }); + + var _gauges_arc_range_pointer__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/gauges/arc/range-pointer.js"); + __webpack_require__.d(__webpack_exports__, "RangePointer", function() { return _gauges_arc_range_pointer__WEBPACK_IMPORTED_MODULE_10__["default"]; }); + + var _gauges_arc_arc_scale__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/gauges/arc/arc-scale.js"); + __webpack_require__.d(__webpack_exports__, "ArcScale", function() { return _gauges_arc_arc_scale__WEBPACK_IMPORTED_MODULE_11__["default"]; }); + + + + + + + + + + + + + + + + + + + }), + + "./node_modules/@progress/kendo-charts/dist/es/gauges/arc/arc-gauge.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _radial_radial_gauge__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/gauges/radial/radial-gauge.js"); + var _arc_scale__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/gauges/arc/arc-scale.js"); + var _range_pointer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/gauges/arc/range-pointer.js"); + var _common__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + + + + +var ArcGauge = (function (RadialGauge) { + function ArcGauge () { + RadialGauge.apply(this, arguments); + } + + if ( RadialGauge ) ArcGauge.__proto__ = RadialGauge; + ArcGauge.prototype = Object.create( RadialGauge && RadialGauge.prototype ); + ArcGauge.prototype.constructor = ArcGauge; + + ArcGauge.prototype._initTheme = function _initTheme (theme) { + RadialGauge.prototype._initTheme.call(this, theme); + + this.options.color = this.options.color || (this.theme.pointer || {}).color; + }; + + ArcGauge.prototype._createModel = function _createModel () { + var options = this.options; + var scale = this.scale = new _arc_scale__WEBPACK_IMPORTED_MODULE_1__["default"](options.scale, this.contextService); + + var pointer = new _range_pointer__WEBPACK_IMPORTED_MODULE_2__["default"](scale, Object(_common__WEBPACK_IMPORTED_MODULE_3__["deepExtend"])({}, { + colors: options.colors, + color: options.color, + value: options.value, + opacity: options.opacity, + animation: { + transitions: options.transitions + } + })); + + this.pointers = [ pointer ]; + }; + + ArcGauge.prototype._buildPointers = function _buildPointers (pointers) { + for (var i = 0; i < pointers.length; i++) { + var current = pointers[i]; + current.render(); + + current.value(current.options.value); + } + }; + + ArcGauge.prototype._setValueOptions = function _setValueOptions (value) { + this.options.value = value; + }; + + ArcGauge.prototype.currentColor = function currentColor () { + var pointer = this.pointers[0]; + if (pointer) { + return pointer.currentColor(); + } + }; + + ArcGauge.prototype.centerLabelPosition = function centerLabelPosition (width, height) { + var size = this.getSize(); + var center = this.scale.arc.center; + + var left = center.x - width / 2; + var top = center.y - height / 2; + + if (width < size.width) { + var right = left + width; + + left = Math.max(left, 0); + + if (right > size.width) { + left -= right - size.width; + } + } + + if (height < size.height) { + var bbox = this.scale.bbox; + var yLimit = bbox.bottomRight().y; + var bottom = top + height; + + top = Math.max(top, bbox.origin.y); + + if (bottom > yLimit) { + top -= bottom - yLimit; + } + } + + return { + left: left, + top: top + }; + }; + + return ArcGauge; +}(_radial_radial_gauge__WEBPACK_IMPORTED_MODULE_0__["default"])); + + __webpack_exports__["default"] = (ArcGauge); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/gauges/arc/arc-scale.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _radial_radial_scale__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/gauges/radial/radial-scale.js"); + var _common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + +var ArcScale = (function (RadialScale) { + function ArcScale () { + RadialScale.apply(this, arguments); + } + + if ( RadialScale ) ArcScale.__proto__ = RadialScale; + ArcScale.prototype = Object.create( RadialScale && RadialScale.prototype ); + ArcScale.prototype.constructor = ArcScale; + + ArcScale.prototype.rangeSegments = function rangeSegments () { + var ref = this.options; + var min = ref.min; + var max = ref.max; + var rangePlaceholderColor = ref.rangePlaceholderColor; + var rangeLineCap = ref.rangeLineCap; + + return [ { from: min, to: max, color: rangePlaceholderColor, lineCap: rangeLineCap } ]; + }; + + ArcScale.prototype.hasRanges = function hasRanges () { + return true; + }; + + ArcScale.prototype.placeholderRangeAngle = function placeholderRangeAngle (angle) { + var geometry = this.ranges.children[0].geometry(); + + if (this.options.reverse) { + geometry.setEndAngle(angle); + } else { + geometry.setStartAngle(angle); + } + }; + + ArcScale.prototype.addRange = function addRange (from, to, options) { + var reverse = this.options.reverse; + + var startAngle = this.slotAngle(reverse ? to : from); + var endAngle = this.slotAngle(reverse ? from : to); + + var range = this.createRange(startAngle, endAngle, this.getRangeRadius(), options); + + this.ranges.append(range); + + return range; + }; + + return ArcScale; +}(_radial_radial_scale__WEBPACK_IMPORTED_MODULE_0__["default"])); + +Object(_common__WEBPACK_IMPORTED_MODULE_1__["setDefaultOptions"])(ArcScale, { + min: 0, + max: 100, + + majorTicks: { + visible: false + }, + + minorTicks: { + visible: false + }, + + labels: { + visible: false + }, + + startAngle: 0, + endAngle: 180, + rangeLineCap: 'round' +}); + + __webpack_exports__["default"] = (ArcScale); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/gauges/arc/range-pointer-animation.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/main.js"); + var _common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/gauges/constants.js"); + + + + +var MAX_DURATION = 800; + +var RangePointerAnimation = (function (superclass) { + function RangePointerAnimation(element, options) { + superclass.call(this, element, options); + + var animationOptions = this.options; + var duration = (Math.abs(animationOptions.newAngle - animationOptions.oldAngle) / animationOptions.duration) * 1000; + animationOptions.duration = Object(_common__WEBPACK_IMPORTED_MODULE_1__["limitValue"])(duration, _constants__WEBPACK_IMPORTED_MODULE_2__["ANGULAR_SPEED"], MAX_DURATION); + + var startColor = element.elements.options.get("stroke.color"); + var color = element.currentColor(); + if (startColor !== color) { + this.startColor = new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["Color"](startColor); + this.color = new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["Color"](color); + } + } + + if ( superclass ) RangePointerAnimation.__proto__ = superclass; + RangePointerAnimation.prototype = Object.create( superclass && superclass.prototype ); + RangePointerAnimation.prototype.constructor = RangePointerAnimation; + + RangePointerAnimation.prototype.step = function step (pos) { + var ref = this; + var options = ref.options; + var startColor = ref.startColor; + var color = ref.color; + var angle = Object(_common__WEBPACK_IMPORTED_MODULE_1__["interpolateValue"])(options.oldAngle, options.newAngle, pos); + this.element.angle(angle); + + if (color) { + var r = Object(_common__WEBPACK_IMPORTED_MODULE_1__["round"])(Object(_common__WEBPACK_IMPORTED_MODULE_1__["interpolateValue"])(startColor.r, color.r, pos)); + var g = Object(_common__WEBPACK_IMPORTED_MODULE_1__["round"])(Object(_common__WEBPACK_IMPORTED_MODULE_1__["interpolateValue"])(startColor.g, color.g, pos)); + var b = Object(_common__WEBPACK_IMPORTED_MODULE_1__["round"])(Object(_common__WEBPACK_IMPORTED_MODULE_1__["interpolateValue"])(startColor.b, color.b, pos)); + + this.element.stroke(new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["Color"](r, g, b).toHex()); + } + }; + + return RangePointerAnimation; +}(_progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Animation)); + +Object(_common__WEBPACK_IMPORTED_MODULE_1__["setDefaultOptions"])(RangePointerAnimation, { + easing: _constants__WEBPACK_IMPORTED_MODULE_2__["LINEAR"], + duration: _constants__WEBPACK_IMPORTED_MODULE_2__["ANGULAR_SPEED"] +}); + +_progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].AnimationFactory.current.register(_constants__WEBPACK_IMPORTED_MODULE_2__["RADIAL_RANGE_POINTER"], RangePointerAnimation); + + __webpack_exports__["default"] = (RangePointerAnimation); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/gauges/arc/range-pointer.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/gauges/constants.js"); + var _pointer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/gauges/pointer.js"); + var _range_pointer_animation__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/gauges/arc/range-pointer-animation.js"); + + + + + +var RangePointer = (function (Pointer) { + function RangePointer () { + Pointer.apply(this, arguments); + } + + if ( Pointer ) RangePointer.__proto__ = Pointer; + RangePointer.prototype = Object.create( Pointer && Pointer.prototype ); + RangePointer.prototype.constructor = RangePointer; + + RangePointer.prototype.repaint = function repaint () { + var ref = this; + var scale = ref.scale; + var options = ref.options; + var oldAngle = scale.slotAngle(options._oldValue); + var newAngle = scale.slotAngle(options.value); + + if (this.animation) { + this.animation.abort(); + } + + if (options.animation.transitions === false) { + this.angle(newAngle); + this.stroke(this.currentColor()); + } else { + this.animation = new _range_pointer_animation__WEBPACK_IMPORTED_MODULE_3__["default"](this, Object(_common__WEBPACK_IMPORTED_MODULE_0__["deepExtend"])(options.animation, { + oldAngle: oldAngle, + newAngle: newAngle + })); + + this.animation.play(); + } + }; + + RangePointer.prototype.angle = function angle (value) { + var geometry = this.elements.geometry(); + if (this.scale.options.reverse) { + geometry.setStartAngle(value); + } else { + geometry.setEndAngle(value); + } + this.scale.placeholderRangeAngle(value); + }; + + RangePointer.prototype.stroke = function stroke (value) { + this.elements.stroke(value); + }; + + RangePointer.prototype.render = function render () { + if (this.elements) { + return; + } + + var ref = this; + var scale = ref.scale; + var options = ref.options; + + if (options.animation !== false) { + Object(_common__WEBPACK_IMPORTED_MODULE_0__["deepExtend"])(options.animation, { + startAngle: 0, + center: scale.arc.center, + reverse: scale.options.reverse + }); + } + + this.elements = scale.addRange(scale.options.min, this.options.value, { + color: this.currentColor(), + opacity: options.opacity, + lineCap: scale.options.rangeLineCap + }); + }; + + RangePointer.prototype.currentColor = function currentColor () { + var ref = this.scale.options; + var min = ref.min; + var max = ref.max; + var ref$1 = this.options; + var colors = ref$1.colors; + var color = ref$1.color; + var value = ref$1.value; + var currentValue = Object(_common__WEBPACK_IMPORTED_MODULE_0__["isNumber"])(value) ? value : min; + + if (colors) { + for (var idx = 0; idx < colors.length; idx++) { + var ref$2 = colors[idx]; + var rangeColor = ref$2.color; + var from = ref$2.from; if ( from === void 0 ) from = min; + var to = ref$2.to; if ( to === void 0 ) to = max; + + if (from <= currentValue && currentValue <= to) { + return rangeColor; + } + } + } + + return color; + }; + + RangePointer.prototype.reflow = function reflow () { + this.render(); + + this.bbox = this.elements.bbox(); + }; + + return RangePointer; +}(_pointer__WEBPACK_IMPORTED_MODULE_2__["default"])); + +Object(_common__WEBPACK_IMPORTED_MODULE_0__["setDefaultOptions"])(RangePointer, { + animation: { + type: _constants__WEBPACK_IMPORTED_MODULE_1__["RADIAL_RANGE_POINTER"], + duration: _constants__WEBPACK_IMPORTED_MODULE_1__["ANGULAR_SPEED"] + } +}); + + __webpack_exports__["default"] = (RangePointer); + + + }), + + "./node_modules/@progress/kendo-charts/dist/es/gauges/constants.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "ANGULAR_SPEED", function() { return ANGULAR_SPEED; }); + __webpack_require__.d(__webpack_exports__, "LINEAR_SPEED", function() { return LINEAR_SPEED; }); + __webpack_require__.d(__webpack_exports__, "ARROW", function() { return ARROW; }); + __webpack_require__.d(__webpack_exports__, "ARROW_POINTER", function() { return ARROW_POINTER; }); + __webpack_require__.d(__webpack_exports__, "BAR_POINTER", function() { return BAR_POINTER; }); + __webpack_require__.d(__webpack_exports__, "DEFAULT_HEIGHT", function() { return DEFAULT_HEIGHT; }); + __webpack_require__.d(__webpack_exports__, "DEFAULT_LINE_WIDTH", function() { return DEFAULT_LINE_WIDTH; }); + __webpack_require__.d(__webpack_exports__, "DEFAULT_WIDTH", function() { return DEFAULT_WIDTH; }); + __webpack_require__.d(__webpack_exports__, "DEGREE", function() { return DEGREE; }); + __webpack_require__.d(__webpack_exports__, "INSIDE", function() { return INSIDE; }); + __webpack_require__.d(__webpack_exports__, "LINEAR", function() { return LINEAR; }); + __webpack_require__.d(__webpack_exports__, "OUTSIDE", function() { return OUTSIDE; }); + __webpack_require__.d(__webpack_exports__, "RADIAL_POINTER", function() { return RADIAL_POINTER; }); + __webpack_require__.d(__webpack_exports__, "RADIAL_RANGE_POINTER", function() { return RADIAL_RANGE_POINTER; }); +var ANGULAR_SPEED = 150; +var LINEAR_SPEED = 250; +var ARROW = "arrow"; +var ARROW_POINTER = "arrowPointer"; +var BAR_POINTER = "barPointer"; +var DEFAULT_HEIGHT = 200; +var DEFAULT_LINE_WIDTH = 0.5; +var DEFAULT_WIDTH = 200; +var DEGREE = Math.PI / 180; +var INSIDE = "inside"; +var LINEAR = "linear"; +var OUTSIDE = "outside"; +var RADIAL_POINTER = "radialPointer"; +var RADIAL_RANGE_POINTER = "radialRangePointer"; + + + + }), + + "./node_modules/@progress/kendo-charts/dist/es/gauges/gauge.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/main.js"); + var _common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/gauges/constants.js"); + var _services__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/services.js"); + var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/gauges/utils.js"); + + + + + + +var DEFAULT_MARGIN = 5; +var Path = _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Path; +var Surface = _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Surface; + +var Gauge = (function (Class) { + function Gauge(element, userOptions, theme, context) { + if ( context === void 0 ) context = {}; + + Class.call(this); + + this.element = element; + this.theme = theme; + this.contextService = new _services__WEBPACK_IMPORTED_MODULE_3__["ChartService"](this, context); + this._originalOptions = Object(_common__WEBPACK_IMPORTED_MODULE_1__["deepExtend"])({}, this.options, userOptions); + this.options = Object(_common__WEBPACK_IMPORTED_MODULE_1__["deepExtend"])({}, this._originalOptions); + this._initTheme(theme); + + this.redraw(); + } + + if ( Class ) Gauge.__proto__ = Class; + Gauge.prototype = Object.create( Class && Class.prototype ); + Gauge.prototype.constructor = Gauge; + + Gauge.prototype.destroy = function destroy () { + if (this.surface) { + this.surface.destroy(); + this.surface = null; + } + + delete this.element; + delete this.surfaceElement; + }; + + Gauge.prototype.value = function value (pointerValue) { + var pointer = this.pointers[0]; + + if (arguments.length === 0) { + return pointer.value(); + } + + pointer.value(pointerValue); + this._setValueOptions(pointerValue); + }; + + Gauge.prototype._draw = function _draw () { + var surface = this.surface; + + surface.clear(); + surface.draw(this._visuals); + }; + + Gauge.prototype.exportVisual = function exportVisual () { + return this._visuals; + }; + + Gauge.prototype.allValues = function allValues (values) { + var pointers = this.pointers; + var allValues = []; + + if (arguments.length === 0) { + for (var i = 0; i < pointers.length; i++) { + allValues.push(pointers[i].value()); + } + + return allValues; + } + + if (Object(_common__WEBPACK_IMPORTED_MODULE_1__["isArray"])(values)) { + for (var i$1 = 0; i$1 < values.length; i$1++) { + if (Object(_common__WEBPACK_IMPORTED_MODULE_1__["isNumber"])(values[i$1])) { + pointers[i$1].value(values[i$1]); + } + } + } + + this._setValueOptions(values); + }; + + Gauge.prototype._setValueOptions = function _setValueOptions (values) { + var pointers = [].concat(this.options.pointer); + var arrayValues = [].concat(values); + + for (var i = 0; i < arrayValues.length; i++) { + pointers[i].value = arrayValues[i]; + } + }; + + Gauge.prototype.resize = function resize () { + this.noTransitionsRedraw(); + }; + + Gauge.prototype.noTransitionsRedraw = function noTransitionsRedraw () { + var transitions = this.options.transitions; + + this._toggleTransitions(false); + + this.redraw(); + + this._toggleTransitions(transitions); + }; + + Gauge.prototype.redraw = function redraw () { + var size = this._surfaceSize(); + var wrapper = new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].Rect([ 0, 0 ], [ size.width, size.height ]); + + this._initSurface(); + + this.gaugeArea = this._createGaugeArea(); + + this._createModel(); + + var bbox = Object(_utils__WEBPACK_IMPORTED_MODULE_4__["unpad"])(wrapper.bbox(), this._gaugeAreaMargin); + this.reflow(bbox); + }; + + Gauge.prototype.setOptions = function setOptions (options, theme) { + this._originalOptions = Object(_common__WEBPACK_IMPORTED_MODULE_1__["deepExtend"])(this._originalOptions, options); + this.options = Object(_common__WEBPACK_IMPORTED_MODULE_1__["deepExtend"])({}, this._originalOptions); + + this._initTheme(theme); + + this.redraw(); + }; + + Gauge.prototype.setDirection = function setDirection (rtl) { + this.contextService.rtl = Boolean(rtl); + if (this.surface && this.surface.type === 'svg') { + this.surface.destroy(); + this.surface = null; + } + }; + + Gauge.prototype.setIntlService = function setIntlService (intl) { + this.contextService.intl = intl; + }; + + Gauge.prototype._initTheme = function _initTheme (theme) { + var currentTheme = theme || this.theme || {}; + this.theme = currentTheme; + + this.options = Object(_common__WEBPACK_IMPORTED_MODULE_1__["deepExtend"])({}, currentTheme, this.options); + var options = this.options; + var pointer = options.pointer; + + if (Object(_common__WEBPACK_IMPORTED_MODULE_1__["isArray"])(pointer)) { + var pointers = []; + for (var i = 0; i < pointer.length; i++) { + pointers.push(Object(_common__WEBPACK_IMPORTED_MODULE_1__["deepExtend"])({}, currentTheme.pointer, pointer[i])); + } + options.pointer = pointers; + } + }; + + Gauge.prototype._createGaugeArea = function _createGaugeArea () { + var options = this.options.gaugeArea; + var size = this.surface.size(); + var border = options.border || {}; + var areaGeometry = new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].Rect([ 0, 0 ], [ size.width, size.height ]); + + this._gaugeAreaMargin = options.margin || DEFAULT_MARGIN; + + if (border.width > 0) { + areaGeometry = Object(_utils__WEBPACK_IMPORTED_MODULE_4__["unpad"])(areaGeometry, border.width); + } + + var gaugeArea = Path.fromRect(areaGeometry, { + stroke: { + color: border.width ? border.color : "", + width: border.width, + dashType: border.dashType, + lineJoin: "round", + lineCap: "round" + }, + fill: { + color: options.background + } + }); + + return gaugeArea; + }; + + Gauge.prototype._initSurface = function _initSurface () { + var ref = this; + var options = ref.options; + var surface = ref.surface; + var element = this._surfaceElement(); + var size = this._surfaceSize(); + + Object(_common__WEBPACK_IMPORTED_MODULE_1__["elementSize"])(element, size); + + if (!surface || surface.options.type !== options.renderAs) { + if (surface) { + surface.destroy(); + } + + this.surface = Surface.create(element, { + type: options.renderAs + }); + } else { + this.surface.clear(); + this.surface.resize(); + } + }; + + Gauge.prototype._surfaceSize = function _surfaceSize () { + var options = this.options; + var size = this._getSize(); + + if (options.gaugeArea) { + Object(_common__WEBPACK_IMPORTED_MODULE_1__["deepExtend"])(size, options.gaugeArea); + } + + return size; + }; + + Gauge.prototype._surfaceElement = function _surfaceElement () { + if (!this.surfaceElement) { + this.surfaceElement = document.createElement('div'); + this.element.appendChild(this.surfaceElement); + } + + return this.surfaceElement; + }; + + Gauge.prototype.getSize = function getSize () { + return this._getSize(); + }; + + Gauge.prototype._getSize = function _getSize () { + var element = this.element; + var defaultSize = this._defaultSize(); + var width = element.offsetWidth; + var height = element.offsetHeight; + + if (!width) { + width = defaultSize.width; + } + + if (!height) { + height = defaultSize.height; + } + + return { width: width, height: height }; + }; + + Gauge.prototype._defaultSize = function _defaultSize () { + return { + width: _constants__WEBPACK_IMPORTED_MODULE_2__["DEFAULT_WIDTH"], + height: _constants__WEBPACK_IMPORTED_MODULE_2__["DEFAULT_HEIGHT"] + }; + }; + + Gauge.prototype._toggleTransitions = function _toggleTransitions (value) { + var this$1 = this; + + this.options.transitions = value; + for (var i = 0; i < this.pointers.length; i++) { + this$1.pointers[i].options.animation.transitions = value; + } + }; + + return Gauge; +}(_common__WEBPACK_IMPORTED_MODULE_1__["Class"])); + +Object(_common__WEBPACK_IMPORTED_MODULE_1__["setDefaultOptions"])(Gauge, { + plotArea: {}, + theme: "default", + renderAs: "", + pointer: {}, + scale: {}, + gaugeArea: {} +}); + + __webpack_exports__["default"] = (Gauge); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/gauges/linear/arrow-linear-pointer-animation.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/main.js"); + var _common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/gauges/constants.js"); + + + + +var ArrowLinearPointerAnimation = (function (superclass) { + function ArrowLinearPointerAnimation () { + superclass.apply(this, arguments); + } + + if ( superclass ) ArrowLinearPointerAnimation.__proto__ = superclass; + ArrowLinearPointerAnimation.prototype = Object.create( superclass && superclass.prototype ); + ArrowLinearPointerAnimation.prototype.constructor = ArrowLinearPointerAnimation; + + ArrowLinearPointerAnimation.prototype.setup = function setup () { + var options = this.options; + var margin = options.margin; + var from = options.from; + var to = options.to; + var vertical = options.vertical; + var axis = vertical ? "x1" : "y1"; + + if (options.mirror === vertical) { + from[axis] -= margin; to[axis] -= margin; + } else { + from[axis] += margin; to[axis] += margin; + } + + var fromScale = this.fromScale = new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].Point(from.x1, from.y1); + var toScale = this.toScale = new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].Point(to.x1, to.y1); + + if (options.duration !== 0) { + options.duration = Math.max((fromScale.distanceTo(toScale) / options.duration) * 1000, 1); + } + }; + + ArrowLinearPointerAnimation.prototype.step = function step (pos) { + var translateX = Object(_common__WEBPACK_IMPORTED_MODULE_1__["interpolateValue"])(this.fromScale.x, this.toScale.x, pos); + var translateY = Object(_common__WEBPACK_IMPORTED_MODULE_1__["interpolateValue"])(this.fromScale.y, this.toScale.y, pos); + + this.element.transform(_progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].transform().translate(translateX, translateY)); + }; + + return ArrowLinearPointerAnimation; +}(_progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Animation)); + +Object(_common__WEBPACK_IMPORTED_MODULE_1__["setDefaultOptions"])(ArrowLinearPointerAnimation, { + easing: _constants__WEBPACK_IMPORTED_MODULE_2__["LINEAR"], + duration: _constants__WEBPACK_IMPORTED_MODULE_2__["LINEAR_SPEED"] +}); + +_progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].AnimationFactory.current.register(_constants__WEBPACK_IMPORTED_MODULE_2__["ARROW_POINTER"], ArrowLinearPointerAnimation); + + __webpack_exports__["default"] = (ArrowLinearPointerAnimation); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/gauges/linear/arrow-linear-pointer.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/main.js"); + var _common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/gauges/constants.js"); + var _linear_pointer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/gauges/linear/linear-pointer.js"); + var _arrow_linear_pointer_animation__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/gauges/linear/arrow-linear-pointer-animation.js"); + + + + + + +var Point = _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].Point; +var Path = _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Path; + +var ArrowLinearPointer = (function (LinearPointer) { + function ArrowLinearPointer(scale, options) { + LinearPointer.call(this, scale, options); + + if (!Object(_common__WEBPACK_IMPORTED_MODULE_1__["defined"])(this.options.size)) { + this.options.size = this.scale.options.majorTicks.size * 0.6; + } + } + + if ( LinearPointer ) ArrowLinearPointer.__proto__ = LinearPointer; + ArrowLinearPointer.prototype = Object.create( LinearPointer && LinearPointer.prototype ); + ArrowLinearPointer.prototype.constructor = ArrowLinearPointer; + + ArrowLinearPointer.prototype.pointerShape = function pointerShape () { + var ref = this; + var scale = ref.scale; + var size = ref.options.size; + var halfSize = size / 2; + var sign = (scale.options.mirror ? -1 : 1); + var shape; + + if (scale.options.vertical) { + shape = [ + new Point(0, 0 - halfSize), new Point(0 - sign * size, 0), new Point(0, 0 + halfSize) + ]; + } else { + shape = [ + new Point(0 - halfSize, 0), new Point(0, 0 + sign * size), new Point(0 + halfSize, 0) + ]; + } + + return shape; + }; + + ArrowLinearPointer.prototype.repaint = function repaint () { + var ref = this; + var scale = ref.scale; + var options = ref.options; + var animation = new _arrow_linear_pointer_animation__WEBPACK_IMPORTED_MODULE_4__["default"](this.elements, Object(_common__WEBPACK_IMPORTED_MODULE_1__["deepExtend"])(options.animation, { + vertical: scale.options.vertical, + mirror: scale.options.mirror, + margin: this._margin(options.margin), + from: scale.getSlot(options._oldValue), + to: scale.getSlot(options.value) + })); + + if (options.animation.transitions === false) { + animation.options.duration = 0; + } + + animation.setup(); + animation.play(); + }; + + ArrowLinearPointer.prototype.render = function render () { + var ref = this; + var scale = ref.scale; + var options = ref.options; + var elementOptions = this.getElementOptions(); + var shape = this.pointerShape(options.value); + + options.animation.type = _constants__WEBPACK_IMPORTED_MODULE_2__["ARROW_POINTER"]; + + var elements = new Path({ + stroke: elementOptions.stroke, + fill: elementOptions.fill + }).moveTo(shape[0]).lineTo(shape[1]).lineTo(shape[2]).close(); + + var slot = scale.getSlot(options.value); + elements.transform(_progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].transform().translate(slot.x1, slot.y1)); + + this.elements = elements; + + return elements; + }; + + return ArrowLinearPointer; +}(_linear_pointer__WEBPACK_IMPORTED_MODULE_3__["default"])); + + __webpack_exports__["default"] = (ArrowLinearPointer); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/gauges/linear/bar-linear-pointer-animation.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/main.js"); + var _common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + var _constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/gauges/constants.js"); + + + + + +var BarLinearPointerAnimation = (function (superclass) { + function BarLinearPointerAnimation () { + superclass.apply(this, arguments); + } + + if ( superclass ) BarLinearPointerAnimation.__proto__ = superclass; + BarLinearPointerAnimation.prototype = Object.create( superclass && superclass.prototype ); + BarLinearPointerAnimation.prototype.constructor = BarLinearPointerAnimation; + + BarLinearPointerAnimation.prototype.setup = function setup () { + var options = this.options; + var axis = this.axis = options.vertical ? _common_constants__WEBPACK_IMPORTED_MODULE_2__["Y"] : _common_constants__WEBPACK_IMPORTED_MODULE_2__["X"]; + var to = this.to = options.newPoints[0][axis]; + var from = this.from = options.oldPoints[0][axis]; + + if (options.duration !== 0) { + options.duration = Math.max((Math.abs(to - from) / options.speed) * 1000, 1); + } + + this._set(from); + }; + + BarLinearPointerAnimation.prototype.step = function step (pos) { + var value = Object(_common__WEBPACK_IMPORTED_MODULE_1__["interpolateValue"])(this.from, this.to, pos); + this._set(value); + }; + + BarLinearPointerAnimation.prototype._set = function _set (value) { + var setter = "set" + this.axis.toUpperCase(); + var points = this.options.newPoints; + + points[0][setter](value); + points[1][setter](value); + }; + + return BarLinearPointerAnimation; +}(_progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Animation)); + +Object(_common__WEBPACK_IMPORTED_MODULE_1__["setDefaultOptions"])(BarLinearPointerAnimation, { + easing: _constants__WEBPACK_IMPORTED_MODULE_3__["LINEAR"], + speed: _constants__WEBPACK_IMPORTED_MODULE_3__["LINEAR_SPEED"] +}); + +_progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].AnimationFactory.current.register(_constants__WEBPACK_IMPORTED_MODULE_3__["BAR_POINTER"], BarLinearPointerAnimation); + + __webpack_exports__["default"] = (BarLinearPointerAnimation); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/gauges/linear/bar-linear-pointer.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/main.js"); + var _common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + var _linear_pointer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/gauges/linear/linear-pointer.js"); + var _bar_linear_pointer_animation__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/gauges/linear/bar-linear-pointer-animation.js"); + + + + + + +var Group = _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Group; +var Path = _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Path; + +var BarLinearPointer = (function (LinearPointer) { + function BarLinearPointer(scale, options) { + LinearPointer.call(this, scale, options); + + if (!Object(_common__WEBPACK_IMPORTED_MODULE_1__["defined"])(this.options.size)) { + this.options.size = this.scale.options.majorTicks.size * 0.3; + } + } + + if ( LinearPointer ) BarLinearPointer.__proto__ = LinearPointer; + BarLinearPointer.prototype = Object.create( LinearPointer && LinearPointer.prototype ); + BarLinearPointer.prototype.constructor = BarLinearPointer; + + BarLinearPointer.prototype.pointerShape = function pointerShape (value) { + var ref = this; + var scale = ref.scale; + var options = ref.options; + var ref$1 = scale.options; + var mirror = ref$1.mirror; + var vertical = ref$1.vertical; + var dir = mirror === vertical ? -1 : 1; + var size = options.size * dir; + var minSlot = scale.getSlot(scale.options.min); + var slot = scale.getSlot(value); + var axis = vertical ? _common_constants__WEBPACK_IMPORTED_MODULE_2__["Y"] : _common_constants__WEBPACK_IMPORTED_MODULE_2__["X"]; + var sizeAxis = vertical ? _common_constants__WEBPACK_IMPORTED_MODULE_2__["X"] : _common_constants__WEBPACK_IMPORTED_MODULE_2__["Y"]; + var margin = this._margin() * dir; + + var p1 = new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].Point(); + p1[axis] = minSlot[axis + "1"]; + p1[sizeAxis] = minSlot[sizeAxis + "1"]; + + var p2 = new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].Point(); + p2[axis] = slot[axis + "1"]; + p2[sizeAxis] = slot[sizeAxis + "1"]; + + if (vertical) { + p1.translate(margin, 0); + p2.translate(margin, 0); + } else { + p1.translate(0, margin); + p2.translate(0, margin); + } + + var p3 = p2.clone(); + var p4 = p1.clone(); + + if (vertical) { + p3.translate(size, 0); + p4.translate(size, 0); + } else { + p3.translate(0, size); + p4.translate(0, size); + } + + return [ p1, p2, p3, p4 ]; + }; + + BarLinearPointer.prototype.repaint = function repaint () { + var ref = this; + var scale = ref.scale; + var options = ref.options; + var shape = this.pointerShape(options.value); + var pointerPath = this.pointerPath; + var oldShape = this.pointerShape(options._oldValue); + + pointerPath.moveTo(shape[0]).lineTo(shape[1]).lineTo(shape[2]).lineTo(shape[3]).close(); + + var animation = new _bar_linear_pointer_animation__WEBPACK_IMPORTED_MODULE_4__["default"](pointerPath, Object(_common__WEBPACK_IMPORTED_MODULE_1__["deepExtend"])(options.animation, { + reverse: scale.options.reverse, + vertical: scale.options.vertical, + oldPoints: [ oldShape[1], oldShape[2] ], + newPoints: [ shape[1], shape[2] ] + })); + + if (options.animation.transitions === false) { + animation.options.duration = 0; + } + + animation.setup(); + animation.play(); + }; + + BarLinearPointer.prototype.render = function render () { + var group = new Group(); + var elementOptions = this.getElementOptions(); + + if (this.options.track.visible) { + group.append(this.renderTrack()); + } + + var pointer = this.pointerPath = new Path({ + stroke: elementOptions.stroke, + fill: elementOptions.fill + }); + + group.append(pointer); + + this.elements = group; + + return group; + }; + + BarLinearPointer.prototype.renderTrack = function renderTrack () { + var trackOptions = this.options.track; + var border = trackOptions.border || {}; + var trackBox = this.trackBox.clone().pad(border.width || 0); + + return new Path.fromRect(trackBox.toRect(), { + fill: { + color: trackOptions.color, + opacity: trackOptions.opacity + }, + stroke: { + color: border.width ? border.color || trackOptions.color : "", + width: border.width, + dashType: border.dashType + } + }); + }; + + return BarLinearPointer; +}(_linear_pointer__WEBPACK_IMPORTED_MODULE_3__["default"])); + + __webpack_exports__["default"] = (BarLinearPointer); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/gauges/linear/linear-gauge.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/main.js"); + var _core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core.js"); + var _common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + var _constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/gauges/constants.js"); + var _gauge__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/gauges/gauge.js"); + var _linear_scale__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/gauges/linear/linear-scale.js"); + var _arrow_linear_pointer__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/gauges/linear/arrow-linear-pointer.js"); + var _bar_linear_pointer__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/gauges/linear/bar-linear-pointer.js"); + + + + + + + + + +var DEFAULT_MIN_WIDTH = 60; +var DEFAULT_MIN_HEIGHT = 60; + +var Group = _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Group; + +var LinearGauge = (function (Gauge) { + function LinearGauge () { + Gauge.apply(this, arguments); + } + + if ( Gauge ) LinearGauge.__proto__ = Gauge; + LinearGauge.prototype = Object.create( Gauge && Gauge.prototype ); + LinearGauge.prototype.constructor = LinearGauge; + + LinearGauge.prototype.reflow = function reflow (bbox) { + var pointers = this.pointers; + var bboxX = bbox.origin.x; + var bboxY = bbox.origin.y; + + var box = new _core__WEBPACK_IMPORTED_MODULE_1__["Box"](bboxX, bboxY, bboxX + bbox.width(), bboxY + bbox.height()); + + this.scale.reflow(box); + this._shrinkScaleWidth(box); + + for (var i = 0; i < pointers.length; i++) { + pointers[i].reflow(); + } + + this.bbox = this._getBox(box); + this._alignElements(); + this._shrinkElements(); + this._buildVisual(); + this._draw(); + }; + + LinearGauge.prototype._buildVisual = function _buildVisual () { + var visuals = new Group(); + var scaleElements = this.scale.render(); + var pointers = this.pointers; + + visuals.append(this.gaugeArea); + visuals.append(scaleElements); + + for (var i = 0; i < pointers.length; i++) { + var current = pointers[i]; + visuals.append(current.render()); + current.value(current.options.value); + } + + this._visuals = visuals; + }; + + LinearGauge.prototype._createModel = function _createModel () { + var this$1 = this; + + var options = this.options; + var scale = this.scale = new _linear_scale__WEBPACK_IMPORTED_MODULE_5__["default"](options.scale, this.contextService); + + this.pointers = []; + + var pointers = options.pointer; + pointers = Object(_common__WEBPACK_IMPORTED_MODULE_2__["isArray"])(pointers) ? pointers : [ pointers ]; + + for (var i = 0; i < pointers.length; i++) { + var currentOptions = Object(_common__WEBPACK_IMPORTED_MODULE_2__["deepExtend"])({}, pointers[i], { + animation: { + transitions: options.transitions + } + }); + var pointerType = currentOptions.shape === _constants__WEBPACK_IMPORTED_MODULE_3__["ARROW"] ? _arrow_linear_pointer__WEBPACK_IMPORTED_MODULE_6__["default"] : _bar_linear_pointer__WEBPACK_IMPORTED_MODULE_7__["default"]; + + this$1.pointers.push(new pointerType(scale, currentOptions)); + } + }; + + LinearGauge.prototype._defaultSize = function _defaultSize () { + var vertical = this.options.scale.vertical; + + return { + width: vertical ? DEFAULT_MIN_WIDTH : _constants__WEBPACK_IMPORTED_MODULE_3__["DEFAULT_WIDTH"], + height: vertical ? _constants__WEBPACK_IMPORTED_MODULE_3__["DEFAULT_HEIGHT"] : DEFAULT_MIN_HEIGHT + }; + }; + + LinearGauge.prototype._getBox = function _getBox (box) { + var ref = this; + var scale = ref.scale; + var pointers = ref.pointers; + var boxCenter = box.center(); + var plotAreaBox = pointers[0].box.clone().wrap(scale.box); + + for (var i = 0; i < pointers.length; i++) { + plotAreaBox.wrap(pointers[i].box.clone()); + } + + var size; + if (scale.options.vertical) { + size = plotAreaBox.width() / 2; + plotAreaBox = new _core__WEBPACK_IMPORTED_MODULE_1__["Box"]( + boxCenter.x - size, box.y1, + boxCenter.x + size, box.y2 + ); + } else { + size = plotAreaBox.height() / 2; + plotAreaBox = new _core__WEBPACK_IMPORTED_MODULE_1__["Box"]( + box.x1, boxCenter.y - size, + box.x2, boxCenter.y + size + ); + } + + return plotAreaBox; + }; + + LinearGauge.prototype._alignElements = function _alignElements () { + var this$1 = this; + + var ref = this; + var scale = ref.scale; + var pointers = ref.pointers; + var scaleBox = scale.box; + var box = pointers[0].box.clone().wrap(scale.box); + var plotAreaBox = this.bbox; + + for (var i = 0; i < pointers.length; i++) { + box.wrap(pointers[i].box.clone()); + } + + var diff; + if (scale.options.vertical) { + diff = plotAreaBox.center().x - box.center().x; + scale.reflow(new _core__WEBPACK_IMPORTED_MODULE_1__["Box"]( + scaleBox.x1 + diff, plotAreaBox.y1, + scaleBox.x2 + diff, plotAreaBox.y2 + )); + } else { + diff = plotAreaBox.center().y - box.center().y; + scale.reflow(new _core__WEBPACK_IMPORTED_MODULE_1__["Box"]( + scaleBox.x1, scaleBox.y1 + diff, + scaleBox.x2, scaleBox.y2 + diff + )); + } + + for (var i$1 = 0; i$1 < pointers.length; i$1++) { + pointers[i$1].reflow(this$1.bbox); + } + }; + + LinearGauge.prototype._shrinkScaleWidth = function _shrinkScaleWidth (bbox) { + var ref = this; + var scale = ref.scale; + if (!scale.options.vertical) { + var overflow = scale.contentBox().width() - bbox.width(); + if (overflow > 0) { + scale.box.shrink(overflow, 0); + scale.box.alignTo(bbox, 'center'); + scale.reflow(scale.box); + } + } + }; + + LinearGauge.prototype._shrinkElements = function _shrinkElements () { + var this$1 = this; + + var ref = this; + var scale = ref.scale; + var pointers = ref.pointers; + var scaleBox = scale.box.clone(); + var pos = scale.options.vertical ? "y" : "x"; + var pointerBox = pointers[0].box; + + for (var i = 0; i < pointers.length; i++) { + pointerBox.wrap(pointers[i].box.clone()); + } + + scaleBox[pos + 1] += Math.max(scaleBox[pos + 1] - pointerBox[pos + 1], 0); + scaleBox[pos + 2] -= Math.max(pointerBox[pos + 2] - scaleBox[pos + 2], 0); + + scale.reflow(scaleBox); + + for (var i$1 = 0; i$1 < pointers.length; i$1++) { + pointers[i$1].reflow(this$1.bbox); + } + }; + + return LinearGauge; +}(_gauge__WEBPACK_IMPORTED_MODULE_4__["default"])); + +Object(_common__WEBPACK_IMPORTED_MODULE_2__["setDefaultOptions"])(LinearGauge, { + transitions: true, + gaugeArea: { + background: "" + }, + scale: { + vertical: true + } +}); + + __webpack_exports__["default"] = (LinearGauge); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/gauges/linear/linear-pointer.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + var _core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + var _constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/gauges/constants.js"); + var _pointer__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/gauges/pointer.js"); + + + + + + +var LinearPointer = (function (Pointer) { + function LinearPointer(scale, options) { + Pointer.call(this, scale, options); + + this.options = Object(_common__WEBPACK_IMPORTED_MODULE_0__["deepExtend"])({ + track: { + visible: Object(_common__WEBPACK_IMPORTED_MODULE_0__["defined"])(options.track) + } + }, this.options); + } + + if ( Pointer ) LinearPointer.__proto__ = Pointer; + LinearPointer.prototype = Object.create( Pointer && Pointer.prototype ); + LinearPointer.prototype.constructor = LinearPointer; + + LinearPointer.prototype.reflow = function reflow () { + var ref = this; + var options = ref.options; + var scale = ref.scale; + var ref$1 = scale.options; + var mirror = ref$1.mirror; + var vertical = ref$1.vertical; + var scaleLine = scale.lineBox(); + var trackSize = options.track.size || options.size; + var pointerHalfSize = options.size / 2; + var margin = Object(_common__WEBPACK_IMPORTED_MODULE_0__["getSpacing"])(options.margin); + var space = vertical ? + margin[mirror ? "left" : "right"] : + margin[mirror ? "bottom" : "top"]; + var pointerBox, pointerRangeBox, trackBox; + + space = mirror ? -space : space; + + if (vertical) { + trackBox = new _core__WEBPACK_IMPORTED_MODULE_1__["Box"]( + scaleLine.x1 + space, scaleLine.y1, + scaleLine.x1 + space, scaleLine.y2); + + if (mirror) { + trackBox.x1 -= trackSize; + } else { + trackBox.x2 += trackSize; + } + + if (options.shape !== _constants__WEBPACK_IMPORTED_MODULE_3__["BAR_POINTER"]) { + pointerRangeBox = new _core__WEBPACK_IMPORTED_MODULE_1__["Box"]( + scaleLine.x2 + space, scaleLine.y1 - pointerHalfSize, + scaleLine.x2 + space, scaleLine.y2 + pointerHalfSize + ); + pointerBox = pointerRangeBox; + } + } else { + trackBox = new _core__WEBPACK_IMPORTED_MODULE_1__["Box"]( + scaleLine.x1, scaleLine.y1 - space, + scaleLine.x2, scaleLine.y1 - space); + + if (mirror) { + trackBox.y2 += trackSize; + } else { + trackBox.y1 -= trackSize; + } + + if (options.shape !== _constants__WEBPACK_IMPORTED_MODULE_3__["BAR_POINTER"]) { + pointerRangeBox = new _core__WEBPACK_IMPORTED_MODULE_1__["Box"]( + scaleLine.x1 - pointerHalfSize, scaleLine.y1 - space, + scaleLine.x2 + pointerHalfSize, scaleLine.y1 - space + ); + pointerBox = pointerRangeBox; + } + } + + this.trackBox = trackBox; + this.pointerRangeBox = pointerRangeBox; + this.box = pointerBox || trackBox.clone().pad(options.border.width); + }; + + LinearPointer.prototype.getElementOptions = function getElementOptions () { + var options = this.options; + + return { + fill: { + color: options.color, + opacity: options.opacity + }, + stroke: Object(_common__WEBPACK_IMPORTED_MODULE_0__["defined"])(options.border) ? { + color: options.border.width ? options.border.color || options.color : "", + width: options.border.width, + dashType: options.border.dashType, + opacity: options.opacity + } : null + }; + }; + + LinearPointer.prototype._margin = function _margin () { + var ref = this; + var scale = ref.scale; + var options = ref.options; + var ref$1 = scale.options; + var mirror = ref$1.mirror; + var vertical = ref$1.vertical; + var margin = Object(_common__WEBPACK_IMPORTED_MODULE_0__["getSpacing"])(options.margin); + + var space = vertical ? + margin[mirror ? "left" : "right"] : + margin[mirror ? "bottom" : "top"]; + + return space; + }; + + return LinearPointer; +}(_pointer__WEBPACK_IMPORTED_MODULE_4__["default"])); + +Object(_common__WEBPACK_IMPORTED_MODULE_0__["setDefaultOptions"])(LinearPointer, { + shape: _constants__WEBPACK_IMPORTED_MODULE_3__["BAR_POINTER"], + + track: { + border: { + width: 1 + } + }, + + color: _common_constants__WEBPACK_IMPORTED_MODULE_2__["BLACK"], + border: { + width: 1 + }, + opacity: 1, + + margin: Object(_common__WEBPACK_IMPORTED_MODULE_0__["getSpacing"])(3), + animation: { + type: _constants__WEBPACK_IMPORTED_MODULE_3__["BAR_POINTER"] + }, + visible: true +}); + + __webpack_exports__["default"] = (LinearPointer); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/gauges/linear/linear-scale.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/main.js"); + var _common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + var _core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core.js"); + var _constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/gauges/constants.js"); + var _utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/gauges/utils.js"); + + + + + + + + +var Path = _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Path; +var Group = _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Group; +var Point = _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].Point; + +function renderAxisTick(tickRenderOptions, tickOptions) { + var position = tickRenderOptions.position; + var tickX = tickRenderOptions.tickX; + var tickY = tickRenderOptions.tickY; + var start, end; + + if (tickRenderOptions.vertical) { + start = new Point(tickX, position); + end = new Point(tickX + tickOptions.size, position); + } else { + start = new Point(position, tickY); + end = new Point(position, tickY + tickOptions.size); + } + + var tickPath = new Path({ + stroke: { + color: tickOptions.color, + width: tickOptions.width + } + }).moveTo(start).lineTo(end); + + return tickPath; +} + +function renderTicks(tickGroup, tickPositions, tickRenderOptions, tickOptions) { + var count = tickPositions.length; + + if (tickOptions.visible) { + var mirror = tickRenderOptions.mirror; + var lineBox = tickRenderOptions.lineBox; + for (var i = tickOptions.skip; i < count; i += tickOptions.step) { + if (i % tickOptions.skipUnit === 0) { + continue; + } + + tickRenderOptions.tickX = mirror ? lineBox.x2 : lineBox.x2 - tickOptions.size; + tickRenderOptions.tickY = mirror ? lineBox.y1 - tickOptions.size : lineBox.y1; + tickRenderOptions.position = tickPositions[i]; + + tickGroup.append(renderAxisTick(tickRenderOptions, tickOptions)); + } + } +} + +var LinearScale = (function (NumericAxis) { + function LinearScale(options, service) { + var scaleOptions = options || {}; + if (!Object(_common__WEBPACK_IMPORTED_MODULE_1__["defined"])(scaleOptions.reverse) && scaleOptions.vertical === false && (service || {}).rtl) { + scaleOptions = Object.assign({}, scaleOptions, { + reverse: true + }); + } + + NumericAxis.call(this, 0, 1, scaleOptions, service); + + this.options.minorUnit = this.options.minorUnit || this.options.majorUnit / 10; + } + + if ( NumericAxis ) LinearScale.__proto__ = NumericAxis; + LinearScale.prototype = Object.create( NumericAxis && NumericAxis.prototype ); + LinearScale.prototype.constructor = LinearScale; + + LinearScale.prototype.initUserOptions = function initUserOptions (options) { + var scaleOptions = Object(_common__WEBPACK_IMPORTED_MODULE_1__["deepExtend"])({}, this.options, options); + scaleOptions = Object(_common__WEBPACK_IMPORTED_MODULE_1__["deepExtend"])({}, scaleOptions , { labels: { mirror: scaleOptions.mirror } }); + scaleOptions.majorUnit = scaleOptions.majorUnit || Object(_core__WEBPACK_IMPORTED_MODULE_3__["autoMajorUnit"])(scaleOptions.min, scaleOptions.max); + + return scaleOptions; + }; + + LinearScale.prototype.initFields = function initFields () { + }; + + LinearScale.prototype.render = function render () { + var elements = this.elements = new Group(); + var labels = this.renderLabels(); + var scaleLine = this.renderLine(); + var scaleTicks = this.renderTicks(); + var ranges = this.renderRanges(); + + elements.append(scaleLine, labels, scaleTicks, ranges); + + return elements; + }; + + LinearScale.prototype.renderRanges = function renderRanges () { + var this$1 = this; + + var options = this.options; + var min = options.min; + var max = options.max; + var vertical = options.vertical; + var mirror = options.labels.mirror; + var ranges = options.ranges || []; + var elements = new Group(); + var count = ranges.length; + var rangeSize = options.rangeSize || options.minorTicks.size / 2; + + for (var i = 0; i < count; i++) { + var range = Object(_utils__WEBPACK_IMPORTED_MODULE_5__["getRange"])(ranges[i], min, max); + var slot = this$1.getSlot(range.from, range.to); + var slotX = vertical ? this$1.lineBox() : slot; + var slotY = vertical ? slot : this$1.lineBox(); + if (vertical) { + slotX.x1 -= rangeSize * (mirror ? -1 : 1); + } else { + slotY.y2 += rangeSize * (mirror ? -1 : 1); + } + + elements.append(Path.fromRect(new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].Rect([ slotX.x1, slotY.y1 ], [ slotX.x2 - slotX.x1, slotY.y2 - slotY.y1 ]), { + fill: { color: range.color, opacity: range.opacity }, + stroke: { } + })); + } + + return elements; + }; + + LinearScale.prototype.renderLabels = function renderLabels () { + var ref = this; + var labels = ref.labels; + var options = ref.options; + var elements = new Group(); + + for (var i = 0; i < labels.length; i++) { + elements.append(Object(_utils__WEBPACK_IMPORTED_MODULE_5__["buildLabelElement"])(labels[i], options.labels)); + } + + return elements; + }; + + LinearScale.prototype.renderLine = function renderLine () { + var line = this.options.line; + var lineBox = this.lineBox(); + var elements = new Group(); + + if (line.width > 0 && line.visible) { + var linePath = new Path({ + stroke: { + color: line.color, + dashType: line.dashType, + width: line.width + } + }); + + linePath.moveTo(lineBox.x1, lineBox.y1).lineTo(lineBox.x2, lineBox.y2); + elements.append(linePath); + } + + return elements; + }; + + LinearScale.prototype.renderTicks = function renderTicks$1 () { + var ticks = new Group(); + var options = this.options; + var majorUnit = options.majorTicks.visible ? options.majorUnit : 0; + var tickRenderOptions = { + vertical: options.vertical, + mirror: options.labels.mirror, + lineBox: this.lineBox() + }; + + renderTicks(ticks, this.getMajorTickPositions(), tickRenderOptions, options.majorTicks); + renderTicks(ticks, this.getMinorTickPositions(), tickRenderOptions, Object(_common__WEBPACK_IMPORTED_MODULE_1__["deepExtend"])({}, { + skipUnit: majorUnit / options.minorUnit + }, options.minorTicks)); + + return ticks; + }; + + return LinearScale; +}(_core__WEBPACK_IMPORTED_MODULE_3__["NumericAxis"])); + +Object(_common__WEBPACK_IMPORTED_MODULE_1__["setDefaultOptions"])(LinearScale, { + min: 0, + max: 50, + + majorTicks: { + size: 15, + align: _constants__WEBPACK_IMPORTED_MODULE_4__["INSIDE"], + color: _common_constants__WEBPACK_IMPORTED_MODULE_2__["BLACK"], + width: _constants__WEBPACK_IMPORTED_MODULE_4__["DEFAULT_LINE_WIDTH"], + visible: true + }, + + minorTicks: { + size: 10, + align: _constants__WEBPACK_IMPORTED_MODULE_4__["INSIDE"], + color: _common_constants__WEBPACK_IMPORTED_MODULE_2__["BLACK"], + width: _constants__WEBPACK_IMPORTED_MODULE_4__["DEFAULT_LINE_WIDTH"], + visible: true + }, + + line: { + width: _constants__WEBPACK_IMPORTED_MODULE_4__["DEFAULT_LINE_WIDTH"] + }, + + labels: { + position: _constants__WEBPACK_IMPORTED_MODULE_4__["INSIDE"], + padding: 2 + }, + mirror: false, + _alignLines: false +}); + + __webpack_exports__["default"] = (LinearScale); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/gauges/pointer.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + + + +var Pointer = (function (Class) { + function Pointer(scale, userOptions) { + Class.call(this); + + var ref = scale.options; + var min = ref.min; + var max = ref.max; + var options = this.options = Object(_common__WEBPACK_IMPORTED_MODULE_0__["deepExtend"])({}, this.options, userOptions); + + options.fill = options.color; + + this.scale = scale; + + if (Object(_common__WEBPACK_IMPORTED_MODULE_0__["defined"])(options.value)) { + options.value = Object(_common__WEBPACK_IMPORTED_MODULE_0__["limitValue"])(options.value, min, max); + } else { + options.value = min; + } + } + + if ( Class ) Pointer.__proto__ = Class; + Pointer.prototype = Object.create( Class && Class.prototype ); + Pointer.prototype.constructor = Pointer; + + Pointer.prototype.value = function value (newValue) { + var options = this.options; + var value = options.value; + + if (arguments.length === 0) { + return value; + } + + var ref = this.scale.options; + var min = ref.min; + var max = ref.max; + + options._oldValue = Object(_common__WEBPACK_IMPORTED_MODULE_0__["defined"])(options._oldValue) ? options.value : min; + options.value = Object(_common__WEBPACK_IMPORTED_MODULE_0__["limitValue"])(newValue, min, max); + + if (this.elements) { + this.repaint(); + } + }; + + return Pointer; +}(_common__WEBPACK_IMPORTED_MODULE_0__["Class"])); + +Object(_common__WEBPACK_IMPORTED_MODULE_0__["setDefaultOptions"])(Pointer, { + color: _common_constants__WEBPACK_IMPORTED_MODULE_1__["BLACK"] +}); + + __webpack_exports__["default"] = (Pointer); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/gauges/radial/radial-gauge.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/main.js"); + var _common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + var _gauge__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/gauges/gauge.js"); + var _radial_scale__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/gauges/radial/radial-scale.js"); + var _radial_pointer__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/gauges/radial/radial-pointer.js"); + + + + + + + +var Group = _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Group; + +var RadialGauge = (function (Gauge) { + function RadialGauge () { + Gauge.apply(this, arguments); + } + + if ( Gauge ) RadialGauge.__proto__ = Gauge; + RadialGauge.prototype = Object.create( Gauge && Gauge.prototype ); + RadialGauge.prototype.constructor = RadialGauge; + + RadialGauge.prototype.reflow = function reflow (bbox) { + var this$1 = this; + + var pointers = this.pointers; + this.scale.reflow(bbox); + this._initialPlotArea = this.scale.bbox; + + for (var i = 0; i < pointers.length; i++) { + pointers[i].reflow(this$1.scale.arc); + this$1._initialPlotArea = _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].Rect.union(this$1._initialPlotArea, pointers[i].bbox); + } + + this.fitScale(bbox); + this.alignScale(bbox); + this._buildVisual(this.gaugeArea, pointers, this.scale); + this._draw(); + }; + + RadialGauge.prototype._buildVisual = function _buildVisual (gaugeArea, pointers, scale) { + var visuals = this._visuals = new Group(); + + visuals.append(gaugeArea); + visuals.append(scale.ticks); + visuals.append(scale.ranges); + this._buildPointers(pointers); + visuals.append(scale.labelElements); + }; + + RadialGauge.prototype._buildPointers = function _buildPointers (pointers) { + var this$1 = this; + + for (var i = 0; i < pointers.length; i++) { + var current = pointers[i]; + current.render(); + this$1._visuals.append(current.elements); + + current.value(current.options.value); + } + }; + + RadialGauge.prototype.fitScale = function fitScale (bbox) { + var this$1 = this; + + var arc = this.scale.arc; + var plotAreaBox = this._initialPlotArea; + var step = Math.abs(this.getDiff(plotAreaBox, bbox)); + var min = Object(_common__WEBPACK_IMPORTED_MODULE_1__["round"])(step, _common_constants__WEBPACK_IMPORTED_MODULE_2__["COORD_PRECISION"]); + var max = Object(_common__WEBPACK_IMPORTED_MODULE_1__["round"])(-step, _common_constants__WEBPACK_IMPORTED_MODULE_2__["COORD_PRECISION"]); + var minDiff, midDiff, maxDiff, mid, oldDiff; + var staleFlag = 0; + var i = 0; + + while (i++ < 100) { + staleFlag = (oldDiff === maxDiff) ? (staleFlag + 1) : 0; + + if (staleFlag > 5) { + break; + } + + if (min !== mid) { + minDiff = this$1.getPlotBox(min, bbox, arc); + if (0 <= minDiff && minDiff <= 2) { + break; + } + } + + if (max !== mid) { + maxDiff = this$1.getPlotBox(max, bbox, arc); + if (0 <= maxDiff && maxDiff <= 2) { + break; + } + } + + if (minDiff > 0 && maxDiff > 0) { + mid = min * 2; + } else if (minDiff < 0 && maxDiff < 0) { + mid = max * 2; + } else { + mid = Object(_common__WEBPACK_IMPORTED_MODULE_1__["round"])(((min + max) / 2) || 1, _common_constants__WEBPACK_IMPORTED_MODULE_2__["COORD_PRECISION"]); + } + + midDiff = this$1.getPlotBox(mid, bbox, arc); + if (0 <= midDiff && midDiff <= 2) { + break; + } + + oldDiff = maxDiff; + + if (midDiff > 0) { + max = mid; + maxDiff = midDiff; + } else { + min = mid; + minDiff = midDiff; + } + } + }; + + RadialGauge.prototype.getPlotBox = function getPlotBox (step, bbox, arc) { + var this$1 = this; + + var scale = this.scale; + var pointers = this.pointers; + var radius = arc.getRadiusX(); + var scaleArc = arc.clone(); + + scaleArc.setRadiusX(radius + step).setRadiusY(radius + step); + + scale.arc = scaleArc; + scale.reflow(bbox); + this.plotBbox = scale.bbox; + + for (var i = 0; i < pointers.length; i++) { + pointers[i].reflow(scaleArc); + this$1.plotBbox = _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].Rect.union(this$1.plotBbox, pointers[i].bbox); + } + + return this.getDiff(this.plotBbox, bbox); + }; + + RadialGauge.prototype.getDiff = function getDiff (plotBox, box) { + return Math.min(box.width() - plotBox.width(), box.height() - plotBox.height()); + }; + + RadialGauge.prototype.alignScale = function alignScale (bbox) { + var this$1 = this; + + var plotBoxCenter = this.plotBbox.center(); + var boxCenter = bbox.center(); + var paddingX = plotBoxCenter.x - boxCenter.x; + var paddingY = plotBoxCenter.y - boxCenter.y; + var ref = this; + var scale = ref.scale; + var pointers = ref.pointers; + + scale.arc.center.x -= paddingX; + scale.arc.center.y -= paddingY; + + scale.reflow(bbox); + + for (var i = 0; i < pointers.length; i++) { + pointers[i].reflow(scale.arc); + this$1.plotBbox = _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].Rect.union(scale.bbox, pointers[i].bbox); + } + }; + + RadialGauge.prototype._createModel = function _createModel () { + var this$1 = this; + + var options = this.options; + var pointers = options.pointer; + var scale = this.scale = new _radial_scale__WEBPACK_IMPORTED_MODULE_4__["default"](options.scale, this.contextService); + + this.pointers = []; + + var pointersArr = Object(_common__WEBPACK_IMPORTED_MODULE_1__["isArray"])(pointers) ? pointers : [ pointers ]; + for (var i = 0; i < pointersArr.length; i++) { + var current = new _radial_pointer__WEBPACK_IMPORTED_MODULE_5__["default"](scale, Object(_common__WEBPACK_IMPORTED_MODULE_1__["deepExtend"])({}, pointersArr[i], { + animation: { + transitions: options.transitions + } + })); + + this$1.pointers.push(current); + } + }; + + return RadialGauge; +}(_gauge__WEBPACK_IMPORTED_MODULE_3__["default"])); + +Object(_common__WEBPACK_IMPORTED_MODULE_1__["setDefaultOptions"])(RadialGauge, { + transitions: true, + gaugeArea: { + background: "" + } +}); + + __webpack_exports__["default"] = (RadialGauge); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/gauges/radial/radial-pointer-animation.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/main.js"); + var _common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/gauges/constants.js"); + + + + +var RadialPointerAnimation = (function (superclass) { + function RadialPointerAnimation(element, options) { + superclass.call(this, element, options); + + var animationOptions = this.options; + + animationOptions.duration = Math.max((Math.abs(animationOptions.newAngle - animationOptions.oldAngle) / animationOptions.duration) * 1000, 1); + } + + if ( superclass ) RadialPointerAnimation.__proto__ = superclass; + RadialPointerAnimation.prototype = Object.create( superclass && superclass.prototype ); + RadialPointerAnimation.prototype.constructor = RadialPointerAnimation; + + RadialPointerAnimation.prototype.step = function step (pos) { + var options = this.options; + var angle = Object(_common__WEBPACK_IMPORTED_MODULE_1__["interpolateValue"])(options.oldAngle, options.newAngle, pos); + + this.element.transform(_progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].transform().rotate(angle, options.center)); + }; + + return RadialPointerAnimation; +}(_progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Animation)); + +Object(_common__WEBPACK_IMPORTED_MODULE_1__["setDefaultOptions"])(RadialPointerAnimation, { + easing: _constants__WEBPACK_IMPORTED_MODULE_2__["LINEAR"], + duration: _constants__WEBPACK_IMPORTED_MODULE_2__["ANGULAR_SPEED"] +}); + +_progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].AnimationFactory.current.register(_constants__WEBPACK_IMPORTED_MODULE_2__["RADIAL_POINTER"], RadialPointerAnimation); + + __webpack_exports__["default"] = (RadialPointerAnimation); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/gauges/radial/radial-pointer.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/main.js"); + var _common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/gauges/constants.js"); + var _pointer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/gauges/pointer.js"); + var _radial_pointer_animation__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/gauges/radial/radial-pointer-animation.js"); + + + + + + + +var CAP_SIZE = 0.05; +var Circle = _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Circle; +var Group = _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Group; +var Path = _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Path; + +var RadialPointer = (function (Pointer) { + function RadialPointer () { + Pointer.apply(this, arguments); + } + + if ( Pointer ) RadialPointer.__proto__ = Pointer; + RadialPointer.prototype = Object.create( Pointer && Pointer.prototype ); + RadialPointer.prototype.constructor = RadialPointer; + + RadialPointer.prototype.setAngle = function setAngle (angle) { + this.elements.transform(_progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].transform().rotate(angle, this.center)); + }; + + RadialPointer.prototype.repaint = function repaint () { + var ref = this; + var scale = ref.scale; + var options = ref.options; + var oldAngle = scale.slotAngle(options._oldValue); + var newAngle = scale.slotAngle(options.value); + + if (options.animation.transitions === false) { + this.setAngle(newAngle); + } else { + new _radial_pointer_animation__WEBPACK_IMPORTED_MODULE_4__["default"](this.elements, Object(_common__WEBPACK_IMPORTED_MODULE_1__["deepExtend"])(options.animation, { + oldAngle: oldAngle, + newAngle: newAngle + })).play(); + } + }; + + RadialPointer.prototype.render = function render () { + var ref = this; + var scale = ref.scale; + var options = ref.options; + var elements = new Group(); + + if (options.animation !== false) { + Object(_common__WEBPACK_IMPORTED_MODULE_1__["deepExtend"])(options.animation, { + startAngle: 0, + center: scale.arc.center, + reverse: scale.options.reverse + }); + } + + elements.append(this._renderNeedle(), this._renderCap()); + + this.elements = elements; + this.setAngle(_constants__WEBPACK_IMPORTED_MODULE_2__["DEGREE"]); + + return elements; + }; + + RadialPointer.prototype.reflow = function reflow (arc) { + var center = this.center = arc.center; + var length = Object(_common__WEBPACK_IMPORTED_MODULE_1__["limitValue"])(this.options.length || 1, 0.1, 1.5); + var radius = this.radius = arc.getRadiusX() * length; + var capSize = this.capSize = Math.round(radius * this.options.cap.size); + + this.bbox = _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].Rect.fromPoints(new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].Point(center.x - capSize, center.y - capSize), + new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].Point(center.x + capSize, center.y + capSize)); + }; + + RadialPointer.prototype._renderNeedle = function _renderNeedle () { + var minorTickSize = this.scale.options.minorTicks.size; + var center = this.center; + var needleColor = this.options.color; + + var needlePath = new Path({ + fill: { color: needleColor }, + stroke: { color: needleColor, width: _constants__WEBPACK_IMPORTED_MODULE_2__["DEFAULT_LINE_WIDTH"] } + }); + + needlePath.moveTo(center.x + this.radius - minorTickSize, center.y) + .lineTo(center.x, center.y - (this.capSize / 2)) + .lineTo(center.x, center.y + (this.capSize / 2)) + .close(); + + return needlePath; + }; + + RadialPointer.prototype._renderCap = function _renderCap () { + var options = this.options; + var capColor = options.cap.color || options.color; + var circle = new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].Circle(this.center, this.capSize); + + var cap = new Circle(circle, { + fill: { color: capColor }, + stroke: { color: capColor } + }); + + return cap; + }; + + return RadialPointer; +}(_pointer__WEBPACK_IMPORTED_MODULE_3__["default"])); + +Object(_common__WEBPACK_IMPORTED_MODULE_1__["setDefaultOptions"])(RadialPointer, { + cap: { + size: CAP_SIZE + }, + arrow: { + width: 16, + height: 14 + }, + animation: { + type: _constants__WEBPACK_IMPORTED_MODULE_2__["RADIAL_POINTER"], + duration: _constants__WEBPACK_IMPORTED_MODULE_2__["ANGULAR_SPEED"] + } +}); + + __webpack_exports__["default"] = (RadialPointer); + + + }), + + "./node_modules/@progress/kendo-charts/dist/es/gauges/radial/radial-scale.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/main.js"); + var _common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + var _core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core.js"); + var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/gauges/utils.js"); + var _constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/gauges/constants.js"); + + + + + + + + +var GEO_ARC_ADJUST_ANGLE = 180; + +var Arc = _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Arc; +var Path = _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Path; +var Group = _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Group; + +function drawTicks(arc, tickAngles, unit, tickOptions) { + var ticks = new Group(); + var center = arc.center; + var radius = arc.getRadiusX(); + + if (tickOptions.visible) { + for (var i = 0; i < tickAngles.length; i++) { + var tickStart = arc.pointAt(tickAngles[i]); + var tickEnd = new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].Point(center.x + radius - tickOptions.size, center.y).rotate(tickAngles[i], center); + + ticks.append(new Path({ + stroke: { + color: tickOptions.color, + width: tickOptions.width + } + }).moveTo(tickStart).lineTo(tickEnd)); + } + } + + return ticks; +} + +function rangeSegment(from, to, color, opacity) { + return { from: from, to: to, color: color, opacity: opacity }; +} + +var RadialScale = (function (NumericAxis) { + function RadialScale(options, service) { + NumericAxis.call(this, 0, 1, options, service); + } + + if ( NumericAxis ) RadialScale.__proto__ = NumericAxis; + RadialScale.prototype = Object.create( NumericAxis && NumericAxis.prototype ); + RadialScale.prototype.constructor = RadialScale; + + RadialScale.prototype.initUserOptions = function initUserOptions (options) { + var scaleOptions = Object(_common__WEBPACK_IMPORTED_MODULE_1__["deepExtend"])({}, this.options, options); + scaleOptions.majorUnit = scaleOptions.majorUnit || Object(_core__WEBPACK_IMPORTED_MODULE_3__["autoMajorUnit"])(scaleOptions.min, scaleOptions.max); + scaleOptions.minorUnit = scaleOptions.minorUnit || scaleOptions.majorUnit / 10; + + return scaleOptions; + }; + + RadialScale.prototype.initFields = function initFields () { + }; + + RadialScale.prototype.render = function render (center, radius) { + var arc = this.renderArc(center, radius); + + this.bbox = arc.bbox(); + this.labelElements = this.renderLabels(); + this.ticks = this.renderTicks(); + this.ranges = this.renderRanges(); + }; + + RadialScale.prototype.reflow = function reflow (bbox) { + var center = bbox.center(); + var radius = Math.min(bbox.height(), bbox.width()) / 2; + + if (Object(_common__WEBPACK_IMPORTED_MODULE_1__["defined"])(this.bbox)) { + this.bbox = this.arc.bbox(); + this.radius(this.arc.getRadiusX()); + this.repositionRanges(); + this.renderLabels(); + } else { + return this.render(center, radius); + } + }; + + RadialScale.prototype.slotAngle = function slotAngle (value) { + var ref = this.options; + var min = ref.min; + var max = ref.max; + var reverse = ref.reverse; + var startAngle = ref.startAngle; + var endAngle = ref.endAngle; + var angle = endAngle - startAngle; + var result; + + if (reverse) { + result = endAngle - (value - min) / (max - min) * angle; + } else { + result = ((value - min) / (max - min) * angle) + startAngle; + } + + return result + GEO_ARC_ADJUST_ANGLE; + }; + + RadialScale.prototype.hasRanges = function hasRanges () { + var ranges = this.options.ranges; + + return ranges && ranges.length; + }; + + RadialScale.prototype.ticksSize = function ticksSize () { + var ref = this.options; + var majorTicks = ref.majorTicks; + var minorTicks = ref.minorTicks; + var size = 0; + if (majorTicks.visible) { + size = majorTicks.size; + } + + if (minorTicks.visible) { + size = Math.max(minorTicks.size, size); + } + + return size; + }; + + RadialScale.prototype.renderLabels = function renderLabels () { + var this$1 = this; + + var options = this.options; + var arc = this.arc.clone(); + var radius = arc.getRadiusX(); + var tickAngles = this.tickAngles(arc, options.majorUnit); + var rangeSize = options.rangeSize = options.rangeSize || radius * 0.1; + var labelsGroup = new Group(); + + var rangeDistance = radius * 0.05; + if (Object(_common__WEBPACK_IMPORTED_MODULE_1__["defined"])(options.rangeDistance)) { + rangeDistance = options.rangeDistance; + } else { + options.rangeDistance = rangeDistance; + } + + var labelsOptions = options.labels; + var isInside = labelsOptions.position === _constants__WEBPACK_IMPORTED_MODULE_5__["INSIDE"]; + var hasLabelElements = Object(_common__WEBPACK_IMPORTED_MODULE_1__["defined"])(this.labelElements); + + if (isInside) { + radius -= this.ticksSize(); + + if (this.hasRanges() && !hasLabelElements) { + radius -= rangeSize + rangeDistance; + } + arc.setRadiusX(radius).setRadiusY(radius); + } + + var labels = this.labels; + var count = labels.length; + var padding = Object(_common__WEBPACK_IMPORTED_MODULE_1__["getSpacing"])(labelsOptions.padding); + var paddingWidth = (padding.left + padding.right) / 2; + var paddingHeight = (padding.top + padding.bottom) / 2; + + for (var i = 0; i < count; i++) { + var label = labels[i]; + var halfWidth = label.box.width() / 2; + var halfHeight = label.box.height() / 2; + var angle = tickAngles[i]; + var labelAngle = (angle - GEO_ARC_ADJUST_ANGLE) * _constants__WEBPACK_IMPORTED_MODULE_5__["DEGREE"]; + + var lp = arc.pointAt(angle); + var cx = lp.x + (Math.cos(labelAngle) * (halfWidth + paddingWidth) * (isInside ? 1 : -1)); + var cy = lp.y + (Math.sin(labelAngle) * (halfHeight + paddingHeight) * (isInside ? 1 : -1)); + + label.reflow(new _core__WEBPACK_IMPORTED_MODULE_3__["Box"](cx - halfWidth, cy - halfHeight, cx + halfWidth, cy + halfHeight)); + var labelPos = new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].Point(label.box.x1, label.box.y1); + + var labelElement = (void 0); + if (!hasLabelElements) { + labelElement = Object(_utils__WEBPACK_IMPORTED_MODULE_4__["buildLabelElement"])(label, options.labels); + labelsGroup.append(labelElement); + } else { + labelElement = this$1.labelElements.children[i]; + var prevLabelPos = labelElement.bbox().origin; + + var labelTransform = labelElement.transform() || _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].transform(); + labelTransform.translate(labelPos.x - prevLabelPos.x, labelPos.y - prevLabelPos.y); + labelElement.transform(labelTransform); + } + + this$1.bbox = _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].Rect.union(this$1.bbox, labelElement.bbox()); + } + + return labelsGroup; + }; + + RadialScale.prototype.repositionRanges = function repositionRanges () { + var ranges = this.ranges.children; + + if (ranges.length > 0) { + var ref = this.options; + var rangeDistance = ref.rangeDistance; + var rangeSize = ref.rangeSize; + var rangeRadius = this.getRangeRadius(); + + if (this.options.labels.position === _constants__WEBPACK_IMPORTED_MODULE_5__["INSIDE"]) { + rangeRadius += rangeSize + rangeDistance; + } + + var newRadius = rangeRadius + (rangeSize / 2); + + for (var i = 0; i < ranges.length; i++) { + ranges[i]._geometry.setRadiusX(newRadius).setRadiusY(newRadius); + } + + this.bbox = _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].Rect.union(this.bbox, this.ranges.bbox()); + } + }; + + RadialScale.prototype.renderRanges = function renderRanges () { + var this$1 = this; + + var segments = this.rangeSegments(); + var segmentsCount = segments.length; + var result = new Group(); + + if (segmentsCount) { + var ref = this.options; + var rangeSize = ref.rangeSize; + var reverse = ref.reverse; + var rangeDistance = ref.rangeDistance; + var rangeRadius = this.getRangeRadius(); + + // move the ticks with a range distance and a range size + this.radius(this.radius() - rangeSize - rangeDistance); + + for (var i = 0; i < segmentsCount; i++) { + var segment = segments[i]; + var from = this$1.slotAngle(segment[reverse ? "to" : "from"]); + var to = this$1.slotAngle(segment[!reverse ? "to" : "from"]); + + if (to - from !== 0) { + result.append(this$1.createRange(from, to, rangeRadius, segment)); + } + } + } + + return result; + }; + + RadialScale.prototype.createRange = function createRange (startAngle, endAngle, rangeRadius, options) { + var rangeSize = this.options.rangeSize; + var rangeGeom = new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].Arc(this.arc.center, { + radiusX: rangeRadius + (rangeSize / 2), + radiusY: rangeRadius + (rangeSize / 2), + startAngle: startAngle, + endAngle: endAngle + }); + + return new Arc(rangeGeom, { + stroke: { + width: rangeSize, + color: options.color, + opacity: options.opacity, + lineCap: options.lineCap + } + }); + }; + + RadialScale.prototype.rangeSegments = function rangeSegments () { + var options = this.options; + var ranges = options.ranges || []; + var count = ranges.length; + var segments = []; + + if (count) { + var min = options.min; + var max = options.max; + var defaultColor = options.rangePlaceholderColor; + segments.push(rangeSegment(min, max, defaultColor)); + + for (var i = 0; i < count; i++) { + var range = Object(_utils__WEBPACK_IMPORTED_MODULE_4__["getRange"])(ranges[i], min, max); + var segmentsCount = segments.length; + + for (var j = 0; j < segmentsCount; j++) { + var segment = segments[j]; + + if (segment.from <= range.from && range.from <= segment.to) { + segments.push(rangeSegment(range.from, range.to, range.color, range.opacity)); + + if (segment.from <= range.to && range.to <= segment.to) { + segments.push(rangeSegment(range.to, segment.to, defaultColor, range.opacity)); + } + + segment.to = range.from; + + break; + } + } + } + } + + return segments; + }; + + RadialScale.prototype.getRangeRadius = function getRangeRadius () { + var ref = this; + var arc = ref.arc; + var options = ref.options; + var rangeSize = options.rangeSize; + var rangeDistance = options.rangeDistance; + var majorTickSize = options.majorTicks.size; + var radius; + + if (options.labels.position === _constants__WEBPACK_IMPORTED_MODULE_5__["OUTSIDE"]) { + radius = arc.getRadiusX() - majorTickSize - rangeDistance - rangeSize; + } else { + radius = arc.getRadiusX() - rangeSize; + } + + return radius; + }; + + RadialScale.prototype.renderArc = function renderArc (center, radius) { + var options = this.options; + + var arc = this.arc = new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].Arc(center, { + radiusX: radius, + radiusY: radius, + startAngle: options.startAngle + GEO_ARC_ADJUST_ANGLE, + endAngle: options.endAngle + GEO_ARC_ADJUST_ANGLE + }); + + return arc; + }; + + RadialScale.prototype.renderTicks = function renderTicks () { + var ref = this; + var arc = ref.arc; + var options = ref.options; + var tickArc = arc.clone(); + + this.majorTickAngles = this.tickAngles(arc, options.majorUnit); + this.majorTicks = drawTicks(tickArc, this.majorTickAngles, options.majorUnit, options.majorTicks); + + var allTicks = new Group(); + allTicks.append(this.majorTicks); + + var majorTickSize = options.majorTicks.size; + var minorTickSize = options.minorTicks.size; + + this._tickDifference = majorTickSize - minorTickSize; + + if (options.labels.position === _constants__WEBPACK_IMPORTED_MODULE_5__["OUTSIDE"]) { + var radius = tickArc.getRadiusX(); + tickArc.setRadiusX(radius - majorTickSize + minorTickSize) + .setRadiusY(radius - majorTickSize + minorTickSize); + } + + this.minorTickAngles = this.normalizeTickAngles(this.tickAngles(arc, options.minorUnit)); + this.minorTicks = drawTicks(tickArc, this.minorTickAngles, options.minorUnit, options.minorTicks); + allTicks.append(this.minorTicks); + + return allTicks; + }; + + RadialScale.prototype.normalizeTickAngles = function normalizeTickAngles (angles) { + var options = this.options; + var skip = options.majorUnit / options.minorUnit; + + for (var i = angles.length - 1; i >= 0; i--) { + if (i % skip === 0) { + angles.splice(i, 1); + } + } + + return angles; + }; + + RadialScale.prototype.tickAngles = function tickAngles (ring, stepValue) { + var options = this.options; + var reverse = options.reverse; + var range = options.max - options.min; + var angle = ring.endAngle - ring.startAngle; + var tickCount = range / stepValue; + var pos = ring.startAngle; + var step = angle / tickCount; + + if (reverse) { + pos += angle; + step = -step; + } + + var positions = []; + for (var i = 0; i < tickCount; i++) { + positions.push(Object(_common__WEBPACK_IMPORTED_MODULE_1__["round"])(pos, _common_constants__WEBPACK_IMPORTED_MODULE_2__["COORD_PRECISION"])); + pos += step; + } + + if (Object(_common__WEBPACK_IMPORTED_MODULE_1__["round"])(pos) <= ring.endAngle) { + positions.push(pos); + } + + return positions; + }; + + RadialScale.prototype.radius = function radius (value) { + if (value) { + this.arc.setRadiusX(value).setRadiusY(value); + this.repositionTicks(this.majorTicks.children, this.majorTickAngles); + this.repositionTicks(this.minorTicks.children, this.minorTickAngles, true); + } else { + return this.arc.getRadiusX(); + } + }; + + RadialScale.prototype.repositionTicks = function repositionTicks (ticks, tickAngles, minor) { + var diff = minor ? (this._tickDifference || 0) : 0; + var tickArc = this.arc; + var radius = tickArc.getRadiusX(); + + if (minor && this.options.labels.position === _constants__WEBPACK_IMPORTED_MODULE_5__["OUTSIDE"] && diff !== 0) { + tickArc = this.arc.clone(); + tickArc.setRadiusX(radius - diff).setRadiusY(radius - diff); + } + + for (var i = 0; i < ticks.length; i++) { + var newPoint = tickArc.pointAt(tickAngles[i]); + var segments = ticks[i].segments; + var xDiff = newPoint.x - segments[0].anchor().x; + var yDiff = newPoint.y - segments[0].anchor().y; + + ticks[i].transform(new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].transform().translate(xDiff, yDiff)); + } + }; + + return RadialScale; +}(_core__WEBPACK_IMPORTED_MODULE_3__["NumericAxis"])); + +Object(_common__WEBPACK_IMPORTED_MODULE_1__["setDefaultOptions"])(RadialScale, { + min: 0, + max: 100, + + majorTicks: { + size: 15, + align: _constants__WEBPACK_IMPORTED_MODULE_5__["INSIDE"], + color: _common_constants__WEBPACK_IMPORTED_MODULE_2__["BLACK"], + width: _constants__WEBPACK_IMPORTED_MODULE_5__["DEFAULT_LINE_WIDTH"], + visible: true + }, + + minorTicks: { + size: 10, + align: _constants__WEBPACK_IMPORTED_MODULE_5__["INSIDE"], + color: _common_constants__WEBPACK_IMPORTED_MODULE_2__["BLACK"], + width: _constants__WEBPACK_IMPORTED_MODULE_5__["DEFAULT_LINE_WIDTH"], + visible: true + }, + + startAngle: -30, + endAngle: 210, + + labels: { + position: _constants__WEBPACK_IMPORTED_MODULE_5__["INSIDE"], + padding: 2 + } +}); + + __webpack_exports__["default"] = (RadialScale); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/gauges/utils.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _utils_build_label_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/gauges/utils/build-label-element.js"); + __webpack_require__.d(__webpack_exports__, "buildLabelElement", function() { return _utils_build_label_element__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + + var _utils_get_range__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/gauges/utils/get-range.js"); + __webpack_require__.d(__webpack_exports__, "getRange", function() { return _utils_get_range__WEBPACK_IMPORTED_MODULE_1__["default"]; }); + + var _utils_pad__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/gauges/utils/pad.js"); + __webpack_require__.d(__webpack_exports__, "pad", function() { return _utils_pad__WEBPACK_IMPORTED_MODULE_2__["default"]; }); + + var _utils_unpad__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/gauges/utils/unpad.js"); + __webpack_require__.d(__webpack_exports__, "unpad", function() { return _utils_unpad__WEBPACK_IMPORTED_MODULE_3__["default"]; }); + + + + + + + }), + + "./node_modules/@progress/kendo-charts/dist/es/gauges/utils/build-label-element.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return buildLabelElement; }); + var _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/main.js"); + var _pad__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/gauges/utils/pad.js"); + + + +var Group = _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Group; +var Path = _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Path; +var Text = _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Text; + +function buildLabelElement(label, options) { + var labelBox = label.box; + var textBox = label.children[0].box; + var border = options.border || {}; + var background = options.background || ""; + + var wrapper = Path.fromRect(new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].Rect([ labelBox.x1, labelBox.y1 ], [ labelBox.width(), labelBox.height() ]), { + stroke: {} + }); + + var text = new Text(label.text, new _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["geometry"].Point(textBox.x1, textBox.y1), { + font: options.font, + fill: { color: options.color } + }); + + var styleGeometry = Object(_pad__WEBPACK_IMPORTED_MODULE_1__["default"])(text.bbox().clone(), options.padding); + + var styleBox = Path.fromRect(styleGeometry, { + stroke: { + color: border.width ? border.color : "", + width: border.width, + opacity: border.opacity, + dashType: border.dashType, + lineJoin: "round", + lineCap: "round" + }, + fill: { + color: background + } + }); + + var elements = new Group(); + elements.append(wrapper); + elements.append(styleBox); + elements.append(text); + + return elements; +} + + }), + + "./node_modules/@progress/kendo-charts/dist/es/gauges/utils/get-range.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return getRange; }); + var _common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + + + +function getRange(range, min, max) { + var from = Object(_common__WEBPACK_IMPORTED_MODULE_0__["defined"])(range.from) ? range.from : _common_constants__WEBPACK_IMPORTED_MODULE_1__["MIN_VALUE"]; + var to = Object(_common__WEBPACK_IMPORTED_MODULE_0__["defined"])(range.to) ? range.to : _common_constants__WEBPACK_IMPORTED_MODULE_1__["MAX_VALUE"]; + + range.from = Math.max(Math.min(to, from), min); + range.to = Math.min(Math.max(to, from), max); + + return range; +} + + }), + + "./node_modules/@progress/kendo-charts/dist/es/gauges/utils/pad.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return pad; }); + var _common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + +function pad(bbox, value) { + var origin = bbox.getOrigin(); + var size = bbox.getSize(); + var spacing = Object(_common__WEBPACK_IMPORTED_MODULE_0__["getSpacing"])(value); + + bbox.setOrigin([ origin.x - spacing.left, origin.y - spacing.top ]); + bbox.setSize([ size.width + (spacing.left + spacing.right), size.height + (spacing.top + spacing.bottom) ]); + + return bbox; +} + + }), + + "./node_modules/@progress/kendo-charts/dist/es/gauges/utils/unpad.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return unpad; }); + var _common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + var _pad__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/gauges/utils/pad.js"); + + + +function unpad(bbox, value) { + var spacing = Object(_common__WEBPACK_IMPORTED_MODULE_0__["getSpacing"])(value); + + spacing.left = -spacing.left; spacing.top = -spacing.top; + spacing.right = -spacing.right; spacing.bottom = -spacing.bottom; + + return Object(_pad__WEBPACK_IMPORTED_MODULE_1__["default"])(bbox, spacing); +} + + }), + + "./node_modules/@progress/kendo-charts/dist/es/main.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core.js"); + __webpack_require__.d(__webpack_exports__, "autoMajorUnit", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["autoMajorUnit"]; }); + + __webpack_require__.d(__webpack_exports__, "Point", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["Point"]; }); + + __webpack_require__.d(__webpack_exports__, "Box", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["Box"]; }); + + __webpack_require__.d(__webpack_exports__, "Ring", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["Ring"]; }); + + __webpack_require__.d(__webpack_exports__, "Sector", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["Sector"]; }); + + __webpack_require__.d(__webpack_exports__, "ShapeBuilder", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["ShapeBuilder"]; }); + + __webpack_require__.d(__webpack_exports__, "ShapeElement", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["ShapeElement"]; }); + + __webpack_require__.d(__webpack_exports__, "ChartElement", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["ChartElement"]; }); + + __webpack_require__.d(__webpack_exports__, "BoxElement", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["BoxElement"]; }); + + __webpack_require__.d(__webpack_exports__, "RootElement", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["RootElement"]; }); + + __webpack_require__.d(__webpack_exports__, "FloatElement", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["FloatElement"]; }); + + __webpack_require__.d(__webpack_exports__, "Text", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["Text"]; }); + + __webpack_require__.d(__webpack_exports__, "TextBox", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["TextBox"]; }); + + __webpack_require__.d(__webpack_exports__, "Title", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["Title"]; }); + + __webpack_require__.d(__webpack_exports__, "AxisLabel", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["AxisLabel"]; }); + + __webpack_require__.d(__webpack_exports__, "Axis", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["Axis"]; }); + + __webpack_require__.d(__webpack_exports__, "Note", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["Note"]; }); + + __webpack_require__.d(__webpack_exports__, "CategoryAxis", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["CategoryAxis"]; }); + + __webpack_require__.d(__webpack_exports__, "DateCategoryAxis", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["DateCategoryAxis"]; }); + + __webpack_require__.d(__webpack_exports__, "DateValueAxis", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["DateValueAxis"]; }); + + __webpack_require__.d(__webpack_exports__, "NumericAxis", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["NumericAxis"]; }); + + __webpack_require__.d(__webpack_exports__, "LogarithmicAxis", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["LogarithmicAxis"]; }); + + __webpack_require__.d(__webpack_exports__, "PolarAxis", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["PolarAxis"]; }); + + __webpack_require__.d(__webpack_exports__, "RadarCategoryAxis", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["RadarCategoryAxis"]; }); + + __webpack_require__.d(__webpack_exports__, "RadarNumericAxis", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["RadarNumericAxis"]; }); + + __webpack_require__.d(__webpack_exports__, "RadarLogarithmicAxis", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["RadarLogarithmicAxis"]; }); + + __webpack_require__.d(__webpack_exports__, "CurveProcessor", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["CurveProcessor"]; }); + + __webpack_require__.d(__webpack_exports__, "Gradients", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["Gradients"]; }); + + __webpack_require__.d(__webpack_exports__, "rectToBox", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["rectToBox"]; }); + + var _chart__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart.js"); + __webpack_require__.d(__webpack_exports__, "ChartAxis", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["ChartAxis"]; }); + + __webpack_require__.d(__webpack_exports__, "ChartPane", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["ChartPane"]; }); + + __webpack_require__.d(__webpack_exports__, "ChartPlotArea", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["ChartPlotArea"]; }); + + __webpack_require__.d(__webpack_exports__, "findAxisByName", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["findAxisByName"]; }); + + __webpack_require__.d(__webpack_exports__, "Aggregates", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["Aggregates"]; }); + + __webpack_require__.d(__webpack_exports__, "AreaChart", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["AreaChart"]; }); + + __webpack_require__.d(__webpack_exports__, "AreaSegment", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["AreaSegment"]; }); + + __webpack_require__.d(__webpack_exports__, "AxisGroupRangeTracker", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["AxisGroupRangeTracker"]; }); + + __webpack_require__.d(__webpack_exports__, "Bar", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["Bar"]; }); + + __webpack_require__.d(__webpack_exports__, "BarChart", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["BarChart"]; }); + + __webpack_require__.d(__webpack_exports__, "BarLabel", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["BarLabel"]; }); + + __webpack_require__.d(__webpack_exports__, "BoxPlotChart", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["BoxPlotChart"]; }); + + __webpack_require__.d(__webpack_exports__, "BoxPlot", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["BoxPlot"]; }); + + __webpack_require__.d(__webpack_exports__, "BubbleChart", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["BubbleChart"]; }); + + __webpack_require__.d(__webpack_exports__, "Bullet", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["Bullet"]; }); + + __webpack_require__.d(__webpack_exports__, "BulletChart", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["BulletChart"]; }); + + __webpack_require__.d(__webpack_exports__, "CandlestickChart", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["CandlestickChart"]; }); + + __webpack_require__.d(__webpack_exports__, "Candlestick", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["Candlestick"]; }); + + __webpack_require__.d(__webpack_exports__, "CategoricalChart", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["CategoricalChart"]; }); + + __webpack_require__.d(__webpack_exports__, "CategoricalErrorBar", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["CategoricalErrorBar"]; }); + + __webpack_require__.d(__webpack_exports__, "CategoricalPlotArea", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["CategoricalPlotArea"]; }); + + __webpack_require__.d(__webpack_exports__, "Chart", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["Chart"]; }); + + __webpack_require__.d(__webpack_exports__, "ChartContainer", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["ChartContainer"]; }); + + __webpack_require__.d(__webpack_exports__, "ClipAnimation", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["ClipAnimation"]; }); + + __webpack_require__.d(__webpack_exports__, "ClusterLayout", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["ClusterLayout"]; }); + + __webpack_require__.d(__webpack_exports__, "Crosshair", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["Crosshair"]; }); + + __webpack_require__.d(__webpack_exports__, "CrosshairTooltip", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["CrosshairTooltip"]; }); + + __webpack_require__.d(__webpack_exports__, "DefaultAggregates", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["DefaultAggregates"]; }); + + __webpack_require__.d(__webpack_exports__, "DonutChart", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["DonutChart"]; }); + + __webpack_require__.d(__webpack_exports__, "DonutPlotArea", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["DonutPlotArea"]; }); + + __webpack_require__.d(__webpack_exports__, "DonutSegment", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["DonutSegment"]; }); + + __webpack_require__.d(__webpack_exports__, "ErrorBarBase", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["ErrorBarBase"]; }); + + __webpack_require__.d(__webpack_exports__, "ErrorRangeCalculator", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["ErrorRangeCalculator"]; }); + + __webpack_require__.d(__webpack_exports__, "Highlight", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["Highlight"]; }); + + __webpack_require__.d(__webpack_exports__, "SharedTooltip", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["SharedTooltip"]; }); + + __webpack_require__.d(__webpack_exports__, "Legend", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["Legend"]; }); + + __webpack_require__.d(__webpack_exports__, "LegendItem", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["LegendItem"]; }); + + __webpack_require__.d(__webpack_exports__, "LegendLayout", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["LegendLayout"]; }); + + __webpack_require__.d(__webpack_exports__, "LineChart", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["LineChart"]; }); + + __webpack_require__.d(__webpack_exports__, "LinePoint", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["LinePoint"]; }); + + __webpack_require__.d(__webpack_exports__, "LineSegment", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["LineSegment"]; }); + + __webpack_require__.d(__webpack_exports__, "Pane", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["Pane"]; }); + + __webpack_require__.d(__webpack_exports__, "PieAnimation", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["PieAnimation"]; }); + + __webpack_require__.d(__webpack_exports__, "PieChart", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["PieChart"]; }); + + __webpack_require__.d(__webpack_exports__, "PieChartMixin", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["PieChartMixin"]; }); + + __webpack_require__.d(__webpack_exports__, "PiePlotArea", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["PiePlotArea"]; }); + + __webpack_require__.d(__webpack_exports__, "PieSegment", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["PieSegment"]; }); + + __webpack_require__.d(__webpack_exports__, "PlotAreaBase", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["PlotAreaBase"]; }); + + __webpack_require__.d(__webpack_exports__, "PlotAreaEventsMixin", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["PlotAreaEventsMixin"]; }); + + __webpack_require__.d(__webpack_exports__, "PlotAreaFactory", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["PlotAreaFactory"]; }); + + __webpack_require__.d(__webpack_exports__, "PointEventsMixin", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["PointEventsMixin"]; }); + + __webpack_require__.d(__webpack_exports__, "RangeBar", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["RangeBar"]; }); + + __webpack_require__.d(__webpack_exports__, "RangeBarChart", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["RangeBarChart"]; }); + + __webpack_require__.d(__webpack_exports__, "RangeAreaPoint", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["RangeAreaPoint"]; }); + + __webpack_require__.d(__webpack_exports__, "RangeAreaChart", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["RangeAreaChart"]; }); + + __webpack_require__.d(__webpack_exports__, "ScatterChart", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["ScatterChart"]; }); + + __webpack_require__.d(__webpack_exports__, "ScatterErrorBar", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["ScatterErrorBar"]; }); + + __webpack_require__.d(__webpack_exports__, "ScatterLineChart", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["ScatterLineChart"]; }); + + __webpack_require__.d(__webpack_exports__, "Selection", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["Selection"]; }); + + __webpack_require__.d(__webpack_exports__, "SeriesAggregator", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["SeriesAggregator"]; }); + + __webpack_require__.d(__webpack_exports__, "SeriesBinder", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["SeriesBinder"]; }); + + __webpack_require__.d(__webpack_exports__, "SplineSegment", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["SplineSegment"]; }); + + __webpack_require__.d(__webpack_exports__, "SplineAreaSegment", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["SplineAreaSegment"]; }); + + __webpack_require__.d(__webpack_exports__, "StackWrap", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["StackWrap"]; }); + + __webpack_require__.d(__webpack_exports__, "Tooltip", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["Tooltip"]; }); + + __webpack_require__.d(__webpack_exports__, "OHLCChart", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["OHLCChart"]; }); + + __webpack_require__.d(__webpack_exports__, "OHLCPoint", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["OHLCPoint"]; }); + + __webpack_require__.d(__webpack_exports__, "WaterfallChart", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["WaterfallChart"]; }); + + __webpack_require__.d(__webpack_exports__, "WaterfallSegment", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["WaterfallSegment"]; }); + + __webpack_require__.d(__webpack_exports__, "XYPlotArea", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["XYPlotArea"]; }); + + __webpack_require__.d(__webpack_exports__, "MousewheelZoom", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["MousewheelZoom"]; }); + + __webpack_require__.d(__webpack_exports__, "ZoomSelection", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["ZoomSelection"]; }); + + __webpack_require__.d(__webpack_exports__, "Pannable", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["Pannable"]; }); + + __webpack_require__.d(__webpack_exports__, "anyHasZIndex", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["anyHasZIndex"]; }); + + __webpack_require__.d(__webpack_exports__, "appendIfNotNull", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["appendIfNotNull"]; }); + + __webpack_require__.d(__webpack_exports__, "areNumbers", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["areNumbers"]; }); + + __webpack_require__.d(__webpack_exports__, "bindSegments", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["bindSegments"]; }); + + __webpack_require__.d(__webpack_exports__, "categoriesCount", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["categoriesCount"]; }); + + __webpack_require__.d(__webpack_exports__, "countNumbers", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["countNumbers"]; }); + + __webpack_require__.d(__webpack_exports__, "equalsIgnoreCase", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["equalsIgnoreCase"]; }); + + __webpack_require__.d(__webpack_exports__, "evalOptions", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["evalOptions"]; }); + + __webpack_require__.d(__webpack_exports__, "filterSeriesByType", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["filterSeriesByType"]; }); + + __webpack_require__.d(__webpack_exports__, "getDateField", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["getDateField"]; }); + + __webpack_require__.d(__webpack_exports__, "getField", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["getField"]; }); + + __webpack_require__.d(__webpack_exports__, "hasGradientOverlay", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["hasGradientOverlay"]; }); + + __webpack_require__.d(__webpack_exports__, "hasValue", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["hasValue"]; }); + + __webpack_require__.d(__webpack_exports__, "isDateAxis", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["isDateAxis"]; }); + + __webpack_require__.d(__webpack_exports__, "segmentVisible", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["segmentVisible"]; }); + + __webpack_require__.d(__webpack_exports__, "singleItemOrArray", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["singleItemOrArray"]; }); + + __webpack_require__.d(__webpack_exports__, "createOutOfRangePoints", function() { return _chart__WEBPACK_IMPORTED_MODULE_1__["createOutOfRangePoints"]; }); + + var _services__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/services.js"); + __webpack_require__.d(__webpack_exports__, "ChartService", function() { return _services__WEBPACK_IMPORTED_MODULE_2__["ChartService"]; }); + + __webpack_require__.d(__webpack_exports__, "DomEventsBuilder", function() { return _services__WEBPACK_IMPORTED_MODULE_2__["DomEventsBuilder"]; }); + + __webpack_require__.d(__webpack_exports__, "FormatService", function() { return _services__WEBPACK_IMPORTED_MODULE_2__["FormatService"]; }); + + __webpack_require__.d(__webpack_exports__, "IntlService", function() { return _services__WEBPACK_IMPORTED_MODULE_2__["IntlService"]; }); + + __webpack_require__.d(__webpack_exports__, "TemplateService", function() { return _services__WEBPACK_IMPORTED_MODULE_2__["TemplateService"]; }); + + var _sparkline__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/sparkline.js"); + __webpack_require__.d(__webpack_exports__, "Sparkline", function() { return _sparkline__WEBPACK_IMPORTED_MODULE_3__["Sparkline"]; }); + + var _stock__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/stock.js"); + __webpack_require__.d(__webpack_exports__, "Navigator", function() { return _stock__WEBPACK_IMPORTED_MODULE_4__["Navigator"]; }); + + __webpack_require__.d(__webpack_exports__, "NavigatorHint", function() { return _stock__WEBPACK_IMPORTED_MODULE_4__["NavigatorHint"]; }); + + __webpack_require__.d(__webpack_exports__, "StockChart", function() { return _stock__WEBPACK_IMPORTED_MODULE_4__["StockChart"]; }); + + __webpack_require__.d(__webpack_exports__, "constants", function() { return _stock__WEBPACK_IMPORTED_MODULE_4__["constants"]; }); + + var _gauges__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/gauges.js"); + __webpack_require__.d(__webpack_exports__, "Gauge", function() { return _gauges__WEBPACK_IMPORTED_MODULE_5__["Gauge"]; }); + + __webpack_require__.d(__webpack_exports__, "LinearGauge", function() { return _gauges__WEBPACK_IMPORTED_MODULE_5__["LinearGauge"]; }); + + __webpack_require__.d(__webpack_exports__, "LinearPointer", function() { return _gauges__WEBPACK_IMPORTED_MODULE_5__["LinearPointer"]; }); + + __webpack_require__.d(__webpack_exports__, "ArrowLinearPointer", function() { return _gauges__WEBPACK_IMPORTED_MODULE_5__["ArrowLinearPointer"]; }); + + __webpack_require__.d(__webpack_exports__, "BarLinearPointer", function() { return _gauges__WEBPACK_IMPORTED_MODULE_5__["BarLinearPointer"]; }); + + __webpack_require__.d(__webpack_exports__, "LinearScale", function() { return _gauges__WEBPACK_IMPORTED_MODULE_5__["LinearScale"]; }); + + __webpack_require__.d(__webpack_exports__, "RadialGauge", function() { return _gauges__WEBPACK_IMPORTED_MODULE_5__["RadialGauge"]; }); + + __webpack_require__.d(__webpack_exports__, "RadialPointer", function() { return _gauges__WEBPACK_IMPORTED_MODULE_5__["RadialPointer"]; }); + + __webpack_require__.d(__webpack_exports__, "RadialScale", function() { return _gauges__WEBPACK_IMPORTED_MODULE_5__["RadialScale"]; }); + + __webpack_require__.d(__webpack_exports__, "ArcGauge", function() { return _gauges__WEBPACK_IMPORTED_MODULE_5__["ArcGauge"]; }); + + __webpack_require__.d(__webpack_exports__, "RangePointer", function() { return _gauges__WEBPACK_IMPORTED_MODULE_5__["RangePointer"]; }); + + __webpack_require__.d(__webpack_exports__, "ArcScale", function() { return _gauges__WEBPACK_IMPORTED_MODULE_5__["ArcScale"]; }); + + var _common__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + __webpack_require__.d(__webpack_exports__, "addClass", function() { return _common__WEBPACK_IMPORTED_MODULE_6__["addClass"]; }); + + __webpack_require__.d(__webpack_exports__, "removeClass", function() { return _common__WEBPACK_IMPORTED_MODULE_6__["removeClass"]; }); + + __webpack_require__.d(__webpack_exports__, "alignPathToPixel", function() { return _common__WEBPACK_IMPORTED_MODULE_6__["alignPathToPixel"]; }); + + __webpack_require__.d(__webpack_exports__, "clockwise", function() { return _common__WEBPACK_IMPORTED_MODULE_6__["clockwise"]; }); + + __webpack_require__.d(__webpack_exports__, "convertableToNumber", function() { return _common__WEBPACK_IMPORTED_MODULE_6__["convertableToNumber"]; }); + + __webpack_require__.d(__webpack_exports__, "deepExtend", function() { return _common__WEBPACK_IMPORTED_MODULE_6__["deepExtend"]; }); + + __webpack_require__.d(__webpack_exports__, "elementStyles", function() { return _common__WEBPACK_IMPORTED_MODULE_6__["elementStyles"]; }); + + __webpack_require__.d(__webpack_exports__, "getSpacing", function() { return _common__WEBPACK_IMPORTED_MODULE_6__["getSpacing"]; }); + + __webpack_require__.d(__webpack_exports__, "getTemplate", function() { return _common__WEBPACK_IMPORTED_MODULE_6__["getTemplate"]; }); + + __webpack_require__.d(__webpack_exports__, "getter", function() { return _common__WEBPACK_IMPORTED_MODULE_6__["getter"]; }); + + __webpack_require__.d(__webpack_exports__, "grep", function() { return _common__WEBPACK_IMPORTED_MODULE_6__["grep"]; }); + + __webpack_require__.d(__webpack_exports__, "hasClasses", function() { return _common__WEBPACK_IMPORTED_MODULE_6__["hasClasses"]; }); + + __webpack_require__.d(__webpack_exports__, "HashMap", function() { return _common__WEBPACK_IMPORTED_MODULE_6__["HashMap"]; }); + + __webpack_require__.d(__webpack_exports__, "inArray", function() { return _common__WEBPACK_IMPORTED_MODULE_6__["inArray"]; }); + + __webpack_require__.d(__webpack_exports__, "interpolateValue", function() { return _common__WEBPACK_IMPORTED_MODULE_6__["interpolateValue"]; }); + + __webpack_require__.d(__webpack_exports__, "InstanceObserver", function() { return _common__WEBPACK_IMPORTED_MODULE_6__["InstanceObserver"]; }); + + __webpack_require__.d(__webpack_exports__, "isArray", function() { return _common__WEBPACK_IMPORTED_MODULE_6__["isArray"]; }); + + __webpack_require__.d(__webpack_exports__, "isFunction", function() { return _common__WEBPACK_IMPORTED_MODULE_6__["isFunction"]; }); + + __webpack_require__.d(__webpack_exports__, "isNumber", function() { return _common__WEBPACK_IMPORTED_MODULE_6__["isNumber"]; }); + + __webpack_require__.d(__webpack_exports__, "isObject", function() { return _common__WEBPACK_IMPORTED_MODULE_6__["isObject"]; }); + + __webpack_require__.d(__webpack_exports__, "isString", function() { return _common__WEBPACK_IMPORTED_MODULE_6__["isString"]; }); + + __webpack_require__.d(__webpack_exports__, "map", function() { return _common__WEBPACK_IMPORTED_MODULE_6__["map"]; }); + + __webpack_require__.d(__webpack_exports__, "mousewheelDelta", function() { return _common__WEBPACK_IMPORTED_MODULE_6__["mousewheelDelta"]; }); + + __webpack_require__.d(__webpack_exports__, "FontLoader", function() { return _common__WEBPACK_IMPORTED_MODULE_6__["FontLoader"]; }); + + __webpack_require__.d(__webpack_exports__, "setDefaultOptions", function() { return _common__WEBPACK_IMPORTED_MODULE_6__["setDefaultOptions"]; }); + + __webpack_require__.d(__webpack_exports__, "sparseArrayLimits", function() { return _common__WEBPACK_IMPORTED_MODULE_6__["sparseArrayLimits"]; }); + + __webpack_require__.d(__webpack_exports__, "styleValue", function() { return _common__WEBPACK_IMPORTED_MODULE_6__["styleValue"]; }); + + __webpack_require__.d(__webpack_exports__, "find", function() { return _common__WEBPACK_IMPORTED_MODULE_6__["find"]; }); + + __webpack_require__.d(__webpack_exports__, "append", function() { return _common__WEBPACK_IMPORTED_MODULE_6__["append"]; }); + + __webpack_require__.d(__webpack_exports__, "bindEvents", function() { return _common__WEBPACK_IMPORTED_MODULE_6__["bindEvents"]; }); + + __webpack_require__.d(__webpack_exports__, "Class", function() { return _common__WEBPACK_IMPORTED_MODULE_6__["Class"]; }); + + __webpack_require__.d(__webpack_exports__, "defined", function() { return _common__WEBPACK_IMPORTED_MODULE_6__["defined"]; }); + + __webpack_require__.d(__webpack_exports__, "deg", function() { return _common__WEBPACK_IMPORTED_MODULE_6__["deg"]; }); + + __webpack_require__.d(__webpack_exports__, "elementOffset", function() { return _common__WEBPACK_IMPORTED_MODULE_6__["elementOffset"]; }); + + __webpack_require__.d(__webpack_exports__, "elementSize", function() { return _common__WEBPACK_IMPORTED_MODULE_6__["elementSize"]; }); + + __webpack_require__.d(__webpack_exports__, "eventElement", function() { return _common__WEBPACK_IMPORTED_MODULE_6__["eventElement"]; }); + + __webpack_require__.d(__webpack_exports__, "eventCoordinates", function() { return _common__WEBPACK_IMPORTED_MODULE_6__["eventCoordinates"]; }); + + __webpack_require__.d(__webpack_exports__, "last", function() { return _common__WEBPACK_IMPORTED_MODULE_6__["last"]; }); + + __webpack_require__.d(__webpack_exports__, "limitValue", function() { return _common__WEBPACK_IMPORTED_MODULE_6__["limitValue"]; }); + + __webpack_require__.d(__webpack_exports__, "logToConsole", function() { return _common__WEBPACK_IMPORTED_MODULE_6__["logToConsole"]; }); + + __webpack_require__.d(__webpack_exports__, "objectKey", function() { return _common__WEBPACK_IMPORTED_MODULE_6__["objectKey"]; }); + + __webpack_require__.d(__webpack_exports__, "rad", function() { return _common__WEBPACK_IMPORTED_MODULE_6__["rad"]; }); + + __webpack_require__.d(__webpack_exports__, "round", function() { return _common__WEBPACK_IMPORTED_MODULE_6__["round"]; }); + + __webpack_require__.d(__webpack_exports__, "unbindEvents", function() { return _common__WEBPACK_IMPORTED_MODULE_6__["unbindEvents"]; }); + + __webpack_require__.d(__webpack_exports__, "valueOrDefault", function() { return _common__WEBPACK_IMPORTED_MODULE_6__["valueOrDefault"]; }); + + var _chart_base_theme__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/base-theme.js"); + __webpack_require__.d(__webpack_exports__, "chartBaseTheme", function() { return _chart_base_theme__WEBPACK_IMPORTED_MODULE_7__["baseTheme"]; }); + + + + + + + + + + + + + + }), + + "./node_modules/@progress/kendo-charts/dist/es/services.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _services_chart_service__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/services/chart-service.js"); + __webpack_require__.d(__webpack_exports__, "ChartService", function() { return _services_chart_service__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + + var _services_dom_events_builder__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/services/dom-events-builder.js"); + __webpack_require__.d(__webpack_exports__, "DomEventsBuilder", function() { return _services_dom_events_builder__WEBPACK_IMPORTED_MODULE_1__["default"]; }); + + var _services_format_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/services/format-service.js"); + __webpack_require__.d(__webpack_exports__, "FormatService", function() { return _services_format_service__WEBPACK_IMPORTED_MODULE_2__["default"]; }); + + var _services_intl_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/services/intl-service.js"); + __webpack_require__.d(__webpack_exports__, "IntlService", function() { return _services_intl_service__WEBPACK_IMPORTED_MODULE_3__["default"]; }); + + var _services_template_service__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/services/template-service.js"); + __webpack_require__.d(__webpack_exports__, "TemplateService", function() { return _services_template_service__WEBPACK_IMPORTED_MODULE_4__["default"]; }); + + + + + + + + }), + + "./node_modules/@progress/kendo-charts/dist/es/services/chart-service.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _intl_service__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/services/intl-service.js"); + var _format_service__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/services/format-service.js"); + + + +var ChartService = function ChartService(chart, context) { + if ( context === void 0 ) context = {}; + + this._intlService = context.intlService; + this.sender = context.sender || chart; + this.format = new _format_service__WEBPACK_IMPORTED_MODULE_1__["default"](context.intlService); + this.chart = chart; + this.rtl = Boolean(context.rtl); +}; + +var prototypeAccessors = { intl: { configurable: true } }; + +prototypeAccessors.intl.get = function () { + return this._intlService || _intl_service__WEBPACK_IMPORTED_MODULE_0__["default"].implementation; +}; + +prototypeAccessors.intl.set = function (value) { + this._intlService = value; + this.format.intl = value; +}; + +ChartService.prototype.notify = function notify (name, args) { + if (this.chart) { + this.chart.trigger(name, args); + } +}; + +ChartService.prototype.isPannable = function isPannable (axis) { + var pannable = ((this.chart || {}).options || {}).pannable; + return pannable && pannable.lock !== axis; +}; + +Object.defineProperties( ChartService.prototype, prototypeAccessors ); + + __webpack_exports__["default"] = (ChartService); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/services/dom-events-builder.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +var current; + +var DomEventsBuilder = function DomEventsBuilder () {}; + +DomEventsBuilder.register = function register (userImplementation) { + current = userImplementation; +}; + +DomEventsBuilder.create = function create (element, events) { + if (current) { + return current.create(element, events); + } +}; + + __webpack_exports__["default"] = (DomEventsBuilder); + + + }), + + "./node_modules/@progress/kendo-charts/dist/es/services/format-service.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _intl_service__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/services/intl-service.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + +var FORMAT_REPLACE_REGEX = /\{(\d+)(:[^\}]+)?\}/g; + +var FormatService = function FormatService(intlService) { + this._intlService = intlService; +}; + +var prototypeAccessors = { intl: { configurable: true } }; + +prototypeAccessors.intl.get = function () { + return this._intlService || _intl_service__WEBPACK_IMPORTED_MODULE_0__["default"].implementation; +}; + +prototypeAccessors.intl.set = function (value) { + this._intlService = value; +}; + +FormatService.prototype.auto = function auto (formatString) { + var values = [], len = arguments.length - 1; + while ( len-- > 0 ) values[ len ] = arguments[ len + 1 ]; + + var intl = this.intl; + + if (Object(_common__WEBPACK_IMPORTED_MODULE_2__["isString"])(formatString) && formatString.match(_common_constants__WEBPACK_IMPORTED_MODULE_1__["FORMAT_REGEX"])) { + return intl.format.apply(intl, [ formatString ].concat( values )); + } + + return intl.toString(values[0], formatString); +}; + +FormatService.prototype.localeAuto = function localeAuto (formatString, values, locale) { + var intl = this.intl; + var result; + + if (Object(_common__WEBPACK_IMPORTED_MODULE_2__["isString"])(formatString) && formatString.match(_common_constants__WEBPACK_IMPORTED_MODULE_1__["FORMAT_REGEX"])) { + result = formatString.replace(FORMAT_REPLACE_REGEX, function(match, index, placeholderFormat) { + var value = values[parseInt(index, 10)]; + + return intl.toString(value, placeholderFormat ? placeholderFormat.substring(1) : "", locale); + }); + } else { + result = intl.toString(values[0], formatString, locale); + } + + return result; +}; + +Object.defineProperties( FormatService.prototype, prototypeAccessors ); + + __webpack_exports__["default"] = (FormatService); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/services/intl-service.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +var defaultImplementation = { + format: function (format, value) { return value; }, + + toString: function (value) { return value; }, + + parseDate: function (value) { return new Date(value); } +}; + +var current = defaultImplementation; + +var IntlService = function IntlService () {}; + +var staticAccessors = { implementation: { configurable: true } }; + +IntlService.register = function register (userImplementation) { + current = userImplementation; +}; + +staticAccessors.implementation.get = function () { + return current; +}; + +Object.defineProperties( IntlService, staticAccessors ); + + __webpack_exports__["default"] = (IntlService); + + + }), + + "./node_modules/@progress/kendo-charts/dist/es/services/template-service.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +var current = { + compile: function(template) { + return template; + } +}; + +var TemplateService = function TemplateService () {}; + +TemplateService.register = function register (userImplementation) { + current = userImplementation; +}; + +TemplateService.compile = function compile (template) { + return current.compile(template); +}; + + __webpack_exports__["default"] = (TemplateService); + + + }), + + "./node_modules/@progress/kendo-charts/dist/es/sparkline.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _sparkline_sparkline__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/sparkline/sparkline.js"); + __webpack_require__.d(__webpack_exports__, "Sparkline", function() { return _sparkline_sparkline__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + + + + }), + + "./node_modules/@progress/kendo-charts/dist/es/sparkline/shared-tooltip.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _chart__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart.js"); + var _core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core.js"); + + +var TOP_OFFSET = -2; + +var SharedTooltip = (function (ChartSharedTooltip) { + function SharedTooltip () { + ChartSharedTooltip.apply(this, arguments); + } + + if ( ChartSharedTooltip ) SharedTooltip.__proto__ = ChartSharedTooltip; + SharedTooltip.prototype = Object.create( ChartSharedTooltip && ChartSharedTooltip.prototype ); + SharedTooltip.prototype.constructor = SharedTooltip; + + SharedTooltip.prototype._slotAnchor = function _slotAnchor (coords, slot) { + var axis = this.plotArea.categoryAxis; + var vertical = axis.options.vertical; + var align = vertical ? { + horizontal: "left", + vertical: "center" + } : { + horizontal: "center", + vertical: "bottom" + }; + + var point; + + if (vertical) { + point = new _core__WEBPACK_IMPORTED_MODULE_1__["Point"](this.plotArea.box.x2, slot.center().y); + } else { + point = new _core__WEBPACK_IMPORTED_MODULE_1__["Point"](slot.center().x, TOP_OFFSET); + } + + return { + point: point, + align: align + }; + }; + + SharedTooltip.prototype._defaultAnchor = function _defaultAnchor (point, slot) { + return this._slotAnchor({}, slot); + }; + + return SharedTooltip; +}(_chart__WEBPACK_IMPORTED_MODULE_0__["SharedTooltip"])); + + __webpack_exports__["default"] = (SharedTooltip); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/sparkline/sparkline.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _chart__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart.js"); + var _chart_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + var _shared_tooltip__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/sparkline/shared-tooltip.js"); + + + + + +var DEAULT_BAR_WIDTH = 150; +var DEAULT_BULLET_WIDTH = 150; +var NO_CROSSHAIR = [ _chart_constants__WEBPACK_IMPORTED_MODULE_1__["BAR"], _chart_constants__WEBPACK_IMPORTED_MODULE_1__["BULLET"] ]; + +function hide(children) { + var state = []; + for (var idx = 0; idx < children.length; idx++) { + var child = children[idx]; + state[idx] = child.style.display; + child.style.display = "none"; + } + + return state; +} + +function show(children, state) { + for (var idx = 0; idx < children.length; idx++) { + children[idx].style.display = state[idx]; + } +} + +function wrapNumber(value) { + return Object(_common__WEBPACK_IMPORTED_MODULE_2__["isNumber"])(value) ? [ value ] : value; +} + +var Sparkline = (function (Chart) { + function Sparkline () { + Chart.apply(this, arguments); + } + + if ( Chart ) Sparkline.__proto__ = Chart; + Sparkline.prototype = Object.create( Chart && Chart.prototype ); + Sparkline.prototype.constructor = Sparkline; + + Sparkline.prototype._setElementClass = function _setElementClass (element) { + Object(_common__WEBPACK_IMPORTED_MODULE_2__["addClass"])(element, 'k-sparkline'); + }; + + Sparkline.prototype._initElement = function _initElement (element) { + Chart.prototype._initElement.call(this, element); + + this._initialWidth = Math.floor(Object(_common__WEBPACK_IMPORTED_MODULE_2__["elementSize"])(element).width); + }; + + Sparkline.prototype._resize = function _resize () { + var element = this.element; + var state = hide(element.childNodes); + + this._initialWidth = Math.floor(Object(_common__WEBPACK_IMPORTED_MODULE_2__["elementSize"])(element).width); + + show(element.childNodes, state); + + Chart.prototype._resize.call(this); + }; + + Sparkline.prototype._modelOptions = function _modelOptions () { + var chartOptions = this.options; + var stage = this._surfaceWrap(); + var displayState = hide(stage.childNodes); + + var space = document.createElement('span'); + space.innerHTML = ' '; + + stage.appendChild(space); + + var options = Object(_common__WEBPACK_IMPORTED_MODULE_2__["deepExtend"])({ + width: this._autoWidth, + height: Object(_common__WEBPACK_IMPORTED_MODULE_2__["elementSize"])(stage).height, + transitions: chartOptions.transitions + }, chartOptions.chartArea, { + inline: true, + align: false + }); + + Object(_common__WEBPACK_IMPORTED_MODULE_2__["elementSize"])(stage, { + width: options.width, + height: options.height + }); + + stage.removeChild(space); + + show(stage.childNodes, displayState); + + if (this.surface) { + this.surface.resize(); + } + + return options; + }; + + Sparkline.prototype._surfaceWrap = function _surfaceWrap () { + if (!this.stage) { + var stage = this.stage = document.createElement('span'); + this.element.appendChild(stage); + } + return this.stage; + }; + + Sparkline.prototype._createPlotArea = function _createPlotArea (skipSeries) { + var plotArea = Chart.prototype._createPlotArea.call(this, skipSeries); + this._autoWidth = this._initialWidth || this._calculateWidth(plotArea); + + return plotArea; + }; + + Sparkline.prototype._calculateWidth = function _calculateWidth (plotArea) { + var options = this.options; + var margin = Object(_common__WEBPACK_IMPORTED_MODULE_2__["getSpacing"])(options.chartArea.margin); + var charts = plotArea.charts; + var stage = this._surfaceWrap(); + var total = 0; + + + for (var i = 0; i < charts.length; i++) { + var currentChart = charts[i]; + var firstSeries = (currentChart.options.series || [])[0]; + if (!firstSeries) { + continue; + } + + if (firstSeries.type === _chart_constants__WEBPACK_IMPORTED_MODULE_1__["BAR"]) { + return DEAULT_BAR_WIDTH; + } + + if (firstSeries.type === _chart_constants__WEBPACK_IMPORTED_MODULE_1__["BULLET"]) { + return DEAULT_BULLET_WIDTH; + } + + if (firstSeries.type === _chart_constants__WEBPACK_IMPORTED_MODULE_1__["PIE"]) { + return Object(_common__WEBPACK_IMPORTED_MODULE_2__["elementSize"])(stage).height; + } + + var categoryAxis = currentChart.categoryAxis; + if (categoryAxis) { + var pointsCount = categoryAxis.categoriesCount() * + (!currentChart.options.isStacked && Object(_common__WEBPACK_IMPORTED_MODULE_2__["inArray"])(firstSeries.type, [ _chart_constants__WEBPACK_IMPORTED_MODULE_1__["COLUMN"], _chart_constants__WEBPACK_IMPORTED_MODULE_1__["VERTICAL_BULLET"] ]) ? currentChart.seriesOptions.length : 1); + + total = Math.max(total, pointsCount); + } + } + + var size = total * options.pointWidth; + if (size > 0) { + size += margin.left + margin.right; + } + + return size; + }; + + Sparkline.prototype._createSharedTooltip = function _createSharedTooltip (options) { + return new _shared_tooltip__WEBPACK_IMPORTED_MODULE_3__["default"](this._plotArea, options); + }; + + Sparkline.normalizeOptions = function normalizeOptions (userOptions) { + var options = wrapNumber(userOptions); + + if (Object(_common__WEBPACK_IMPORTED_MODULE_2__["isArray"])(options)) { + options = { seriesDefaults: { data: options } }; + } else { + options = Object(_common__WEBPACK_IMPORTED_MODULE_2__["deepExtend"])({}, options); + } + + if (!options.series) { + options.series = [ { data: wrapNumber(options.data) } ]; + } + + Object(_common__WEBPACK_IMPORTED_MODULE_2__["deepExtend"])(options, { + seriesDefaults: { + type: options.type + } + }); + + if (Object(_common__WEBPACK_IMPORTED_MODULE_2__["inArray"])(options.series[0].type, NO_CROSSHAIR) || + Object(_common__WEBPACK_IMPORTED_MODULE_2__["inArray"])(options.seriesDefaults.type, NO_CROSSHAIR)) { + options = Object(_common__WEBPACK_IMPORTED_MODULE_2__["deepExtend"])({}, { + categoryAxis: { + crosshair: { + visible: false + } + } + }, options); + } + + return options; + }; + + return Sparkline; +}(_chart__WEBPACK_IMPORTED_MODULE_0__["Chart"])); + +Object(_common__WEBPACK_IMPORTED_MODULE_2__["setDefaultOptions"])(Sparkline, { + chartArea: { + margin: 2 + }, + axisDefaults: { + visible: false, + majorGridLines: { + visible: false + }, + valueAxis: { + narrowRange: true + } + }, + seriesDefaults: { + type: "line", + area: { + line: { + width: 0.5 + } + }, + bar: { + stack: true + }, + padding: 2, + width: 0.5, + overlay: { + gradient: null + }, + highlight: { + visible: false + }, + border: { + width: 0 + }, + markers: { + size: 2, + visible: false + } + }, + tooltip: { + visible: true, + shared: true + }, + categoryAxis: { + crosshair: { + visible: true, + tooltip: { + visible: false + } + } + }, + legend: { + visible: false + }, + transitions: false, + + pointWidth: 5, + + panes: [ { clip: false } ] +}); + + __webpack_exports__["default"] = (Sparkline); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/stock.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _stock_navigator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/stock/navigator.js"); + __webpack_require__.d(__webpack_exports__, "Navigator", function() { return _stock_navigator__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + + var _stock_navigator_hint__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/stock/navigator-hint.js"); + __webpack_require__.d(__webpack_exports__, "NavigatorHint", function() { return _stock_navigator_hint__WEBPACK_IMPORTED_MODULE_1__["default"]; }); + + var _stock_stock_chart__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/stock/stock-chart.js"); + __webpack_require__.d(__webpack_exports__, "StockChart", function() { return _stock_stock_chart__WEBPACK_IMPORTED_MODULE_2__["default"]; }); + + var _stock_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/stock/constants.js"); + __webpack_require__.d(__webpack_exports__, "constants", function() { return _stock_constants__WEBPACK_IMPORTED_MODULE_3__; }); + + + + + + + + + }), + + "./node_modules/@progress/kendo-charts/dist/es/stock/constants.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "NAVIGATOR_AXIS", function() { return NAVIGATOR_AXIS; }); + __webpack_require__.d(__webpack_exports__, "NAVIGATOR_PANE", function() { return NAVIGATOR_PANE; }); +var NAVIGATOR_PANE = "_navigator"; +var NAVIGATOR_AXIS = NAVIGATOR_PANE; + + + + }), + + "./node_modules/@progress/kendo-charts/dist/es/stock/fade-out-animation.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/main.js"); + var _common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + + + + +var FadeOutAnimation = (function (superclass) { + function FadeOutAnimation () { + superclass.apply(this, arguments); + } + + if ( superclass ) FadeOutAnimation.__proto__ = superclass; + FadeOutAnimation.prototype = Object.create( superclass && superclass.prototype ); + FadeOutAnimation.prototype.constructor = FadeOutAnimation; + + FadeOutAnimation.prototype.setup = function setup () { + this._initialOpacity = parseFloat(Object(_common__WEBPACK_IMPORTED_MODULE_1__["elementStyles"])(this.element, 'opacity').opacity); + }; + + FadeOutAnimation.prototype.step = function step (pos) { + Object(_common__WEBPACK_IMPORTED_MODULE_1__["elementStyles"])(this.element, { + opacity: String(Object(_common__WEBPACK_IMPORTED_MODULE_1__["interpolateValue"])(this._initialOpacity, 0, pos)) + }); + }; + + FadeOutAnimation.prototype.abort = function abort () { + superclass.prototype.abort.call(this); + Object(_common__WEBPACK_IMPORTED_MODULE_1__["elementStyles"])(this.element, { + display: 'none', + opacity: String(this._initialOpacity) + }); + }; + + FadeOutAnimation.prototype.cancel = function cancel () { + superclass.prototype.abort.call(this); + Object(_common__WEBPACK_IMPORTED_MODULE_1__["elementStyles"])(this.element, { + opacity: String(this._initialOpacity) + }); + }; + + return FadeOutAnimation; +}(_progress_kendo_drawing__WEBPACK_IMPORTED_MODULE_0__["drawing"].Animation)); + + __webpack_exports__["default"] = (FadeOutAnimation); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/stock/navigator-hint.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + var _date_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/date-utils.js"); + var _fade_out_animation__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/stock/fade-out-animation.js"); + + + + +function createDiv(className, style) { + var div = document.createElement("div"); + div.className = className; + if (style) { + div.style.cssText = style; + } + + return div; +} + +var NavigatorHint = (function (Class) { + function NavigatorHint(container, chartService, options) { + Class.call(this); + + this.options = Object(_common__WEBPACK_IMPORTED_MODULE_0__["deepExtend"])({}, this.options, options); + this.container = container; + this.chartService = chartService; + + var padding = Object(_common__WEBPACK_IMPORTED_MODULE_0__["elementStyles"])(container, [ "paddingLeft", "paddingTop" ]); + this.chartPadding = { + top: padding.paddingTop, + left: padding.paddingLeft + }; + + this.createElements(); + container.appendChild(this.element); + } + + if ( Class ) NavigatorHint.__proto__ = Class; + NavigatorHint.prototype = Object.create( Class && Class.prototype ); + NavigatorHint.prototype.constructor = NavigatorHint; + + NavigatorHint.prototype.createElements = function createElements () { + var element = this.element = createDiv('k-navigator-hint', 'display: none; position: absolute; top: 1px; left: 1px;'); + var tooltip = this.tooltip = createDiv('k-tooltip k-chart-tooltip'); + var scroll = this.scroll = createDiv('k-scroll'); + + tooltip.innerHTML = ' '; + + element.appendChild(tooltip); + element.appendChild(scroll); + }; + + NavigatorHint.prototype.show = function show (from, to, bbox) { + var ref = this; + var element = ref.element; + var options = ref.options; + var scroll = ref.scroll; + var tooltip = ref.tooltip; + var middle = Object(_date_utils__WEBPACK_IMPORTED_MODULE_1__["toDate"])(Object(_date_utils__WEBPACK_IMPORTED_MODULE_1__["toTime"])(from) + Object(_date_utils__WEBPACK_IMPORTED_MODULE_1__["toTime"])(to - from) / 2); + var scrollWidth = bbox.width() * 0.4; + var minPos = bbox.center().x - scrollWidth; + var maxPos = bbox.center().x; + var posRange = maxPos - minPos; + var range = options.max - options.min; + var scale = posRange / range; + var offset = middle - options.min; + var text = this.chartService.intl.format(options.format, from, to); + var template = Object(_common__WEBPACK_IMPORTED_MODULE_0__["getTemplate"])(options); + + this.clearHideTimeout(); + + if (!this._visible) { + Object(_common__WEBPACK_IMPORTED_MODULE_0__["elementStyles"])(element, { + visibility: 'hidden', + display: 'block' + }); + this._visible = true; + } + + if (template) { + text = template({ + from: from, + to: to + }); + } + + tooltip.innerHTML = text; + Object(_common__WEBPACK_IMPORTED_MODULE_0__["elementStyles"])(tooltip, { + left: bbox.center().x - tooltip.offsetWidth / 2, + top: bbox.y1 + }); + + var tooltipStyle = Object(_common__WEBPACK_IMPORTED_MODULE_0__["elementStyles"])(tooltip, [ 'marginTop', 'borderTopWidth', 'height' ]); + + Object(_common__WEBPACK_IMPORTED_MODULE_0__["elementStyles"])(scroll, { + width: scrollWidth, + left: minPos + offset * scale, + top: bbox.y1 + tooltipStyle.marginTop + tooltipStyle.borderTopWidth + tooltipStyle.height / 2 + }); + + Object(_common__WEBPACK_IMPORTED_MODULE_0__["elementStyles"])(element, { + visibility: 'visible' + }); + }; + + NavigatorHint.prototype.clearHideTimeout = function clearHideTimeout () { + if (this._hideTimeout) { + clearTimeout(this._hideTimeout); + } + + if (this._hideAnimation) { + this._hideAnimation.cancel(); + } + }; + + NavigatorHint.prototype.hide = function hide () { + var this$1 = this; + + this.clearHideTimeout(); + + this._hideTimeout = setTimeout(function () { + this$1._visible = false; + this$1._hideAnimation = new _fade_out_animation__WEBPACK_IMPORTED_MODULE_2__["default"](this$1.element); + this$1._hideAnimation.setup(); + this$1._hideAnimation.play(); + }, this.options.hideDelay); + }; + + NavigatorHint.prototype.destroy = function destroy () { + this.clearHideTimeout(); + if (this.container) { + this.container.removeChild(this.element); + } + delete this.container; + delete this.chartService; + delete this.element; + delete this.tooltip; + delete this.scroll; + }; + + return NavigatorHint; +}(_common__WEBPACK_IMPORTED_MODULE_0__["Class"])); + +Object(_common__WEBPACK_IMPORTED_MODULE_0__["setDefaultOptions"])(NavigatorHint, { + format: "{0:d} - {1:d}", + hideDelay: 500 +}); + + __webpack_exports__["default"] = (NavigatorHint); + + }), + + "./node_modules/@progress/kendo-charts/dist/es/stock/navigator.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _navigator_hint__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/stock/navigator-hint.js"); + var _chart__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart.js"); + var _chart_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart/constants.js"); + var _core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/core.js"); + var _date_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/date-utils.js"); + var _common__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + var _constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/stock/constants.js"); + + + + + + + + +var ZOOM_ACCELERATION = 3; + +var Navigator = (function (Class) { + function Navigator(chart) { + var obj; + + Class.call(this); + + this.chart = chart; + var options = this.options = Object(_common__WEBPACK_IMPORTED_MODULE_5__["deepExtend"])({}, this.options, chart.options.navigator); + var select = options.select; + if (select) { + select.from = this.parseDate(select.from); + select.to = this.parseDate(select.to); + } + + if (!Object(_common__WEBPACK_IMPORTED_MODULE_5__["defined"])(options.hint.visible)) { + options.hint.visible = options.visible; + } + + this.chartObserver = new _common__WEBPACK_IMPORTED_MODULE_5__["InstanceObserver"](this, ( obj = {}, obj[_chart_constants__WEBPACK_IMPORTED_MODULE_2__["DRAG"]] = '_drag', obj[_chart_constants__WEBPACK_IMPORTED_MODULE_2__["DRAG_END"]] = '_dragEnd', obj[_chart_constants__WEBPACK_IMPORTED_MODULE_2__["ZOOM"]] = '_zoom', obj[_chart_constants__WEBPACK_IMPORTED_MODULE_2__["ZOOM_END"]] = '_zoomEnd', obj )); + chart.addObserver(this.chartObserver); + } + + if ( Class ) Navigator.__proto__ = Class; + Navigator.prototype = Object.create( Class && Class.prototype ); + Navigator.prototype.constructor = Navigator; + + Navigator.prototype.parseDate = function parseDate$1 (value) { + return Object(_date_utils__WEBPACK_IMPORTED_MODULE_4__["parseDate"])(this.chart.chartService.intl, value); + }; + + Navigator.prototype.clean = function clean () { + if (this.selection) { + this.selection.destroy(); + this.selection = null; + } + + if (this.hint) { + this.hint.destroy(); + this.hint = null; + } + }; + + Navigator.prototype.destroy = function destroy () { + if (this.chart) { + this.chart.removeObserver(this.chartObserver); + delete this.chart; + } + + this.clean(); + }; + + Navigator.prototype.redraw = function redraw () { + this._redrawSelf(); + this.initSelection(); + }; + + Navigator.prototype.initSelection = function initSelection () { + var ref = this; + var chart = ref.chart; + var options = ref.options; + var axis = this.mainAxis(); + var ref$1 = axis.roundedRange(); + var min = ref$1.min; + var max = ref$1.max; + var ref$2 = options.select; + var from = ref$2.from; + var to = ref$2.to; + var mousewheel = ref$2.mousewheel; + var axisClone = clone(axis); + + if (axis.categoriesCount() === 0) { + return; + } + + this.clean(); + + // "Freeze" the selection axis position until the next redraw + axisClone.box = axis.box; + + this.selection = new _chart__WEBPACK_IMPORTED_MODULE_1__["Selection"](chart, axisClone, { + min: min, + max: max, + from: from || min, + to: to || max, + mousewheel: Object(_common__WEBPACK_IMPORTED_MODULE_5__["valueOrDefault"])(mousewheel, { zoom: "left" }), + visible: options.visible + }, new _common__WEBPACK_IMPORTED_MODULE_5__["InstanceObserver"](this, { + selectStart: '_selectStart', + select: '_select', + selectEnd: '_selectEnd' + })); + + if (options.hint.visible) { + this.hint = new _navigator_hint__WEBPACK_IMPORTED_MODULE_0__["default"](chart.element, chart.chartService, { + min: min, + max: max, + template: Object(_common__WEBPACK_IMPORTED_MODULE_5__["getTemplate"])(options.hint), + format: options.hint.format + }); + } + }; + + Navigator.prototype.setRange = function setRange () { + var plotArea = this.chart._createPlotArea(true); + var axis = plotArea.namedCategoryAxes[_constants__WEBPACK_IMPORTED_MODULE_6__["NAVIGATOR_AXIS"]]; + + var ref = axis.roundedRange(); + var min = ref.min; + var max = ref.max; + + var select = this.options.select || {}; + var from = select.from || min; + if (from < min) { + from = min; + } + + var to = select.to || max; + if (to > max) { + to = max; + } + + this.options.select = Object(_common__WEBPACK_IMPORTED_MODULE_5__["deepExtend"])({}, select, { + from: from, + to: to + }); + + this.filterAxes(); + }; + + Navigator.prototype._redrawSelf = function _redrawSelf (silent) { + var plotArea = this.chart._plotArea; + + if (plotArea) { + plotArea.redraw(Object(_common__WEBPACK_IMPORTED_MODULE_5__["last"])(plotArea.panes), silent); + } + }; + + Navigator.prototype.redrawSlaves = function redrawSlaves () { + var chart = this.chart; + var plotArea = chart._plotArea; + var slavePanes = plotArea.panes.slice(0, -1); + + // Update the original series and categoryAxis before partial refresh. + plotArea.srcSeries = chart.options.series; + plotArea.options.categoryAxis = chart.options.categoryAxis; + plotArea.clearSeriesPointsCache(); + + plotArea.redraw(slavePanes); + }; + + Navigator.prototype._drag = function _drag (e) { + var ref = this; + var chart = ref.chart; + var selection = ref.selection; + var coords = chart._eventCoordinates(e.originalEvent); + var navigatorAxis = this.mainAxis(); + var naviRange = navigatorAxis.roundedRange(); + var inNavigator = navigatorAxis.pane.box.containsPoint(coords); + var axis = chart._plotArea.categoryAxis; + var range = e.axisRanges[axis.options.name]; + var select = this.options.select; + var duration; + + if (!range || inNavigator || !selection) { + return; + } + + if (select.from && select.to) { + duration = Object(_date_utils__WEBPACK_IMPORTED_MODULE_4__["toTime"])(select.to) - Object(_date_utils__WEBPACK_IMPORTED_MODULE_4__["toTime"])(select.from); + } else { + duration = Object(_date_utils__WEBPACK_IMPORTED_MODULE_4__["toTime"])(selection.options.to) - Object(_date_utils__WEBPACK_IMPORTED_MODULE_4__["toTime"])(selection.options.from); + } + + var from = Object(_date_utils__WEBPACK_IMPORTED_MODULE_4__["toDate"])(Object(_common__WEBPACK_IMPORTED_MODULE_5__["limitValue"])( + Object(_date_utils__WEBPACK_IMPORTED_MODULE_4__["toTime"])(range.min), + naviRange.min, Object(_date_utils__WEBPACK_IMPORTED_MODULE_4__["toTime"])(naviRange.max) - duration + )); + + var to = Object(_date_utils__WEBPACK_IMPORTED_MODULE_4__["toDate"])(Object(_common__WEBPACK_IMPORTED_MODULE_5__["limitValue"])( + Object(_date_utils__WEBPACK_IMPORTED_MODULE_4__["toTime"])(from) + duration, + Object(_date_utils__WEBPACK_IMPORTED_MODULE_4__["toTime"])(naviRange.min) + duration, naviRange.max + )); + + this.options.select = { from: from, to: to }; + + if (this.options.liveDrag) { + this.filterAxes(); + this.redrawSlaves(); + } + + selection.set(from, to); + + this.showHint(from, to); + }; + + Navigator.prototype._dragEnd = function _dragEnd () { + this.filterAxes(); + this.filter(); + this.redrawSlaves(); + + if (this.hint) { + this.hint.hide(); + } + }; + + Navigator.prototype.readSelection = function readSelection () { + var ref = this; + var ref_selection_options = ref.selection.options; + var from = ref_selection_options.from; + var to = ref_selection_options.to; + var select = ref.options.select; + + select.from = from; + select.to = to; + }; + + Navigator.prototype.filterAxes = function filterAxes () { + var ref = this; + var select = ref.options.select; if ( select === void 0 ) select = { }; + var chart = ref.chart; + var allAxes = chart.options.categoryAxis; + var from = select.from; + var to = select.to; + + for (var idx = 0; idx < allAxes.length; idx++) { + var axis = allAxes[idx]; + if (axis.pane !== _constants__WEBPACK_IMPORTED_MODULE_6__["NAVIGATOR_PANE"]) { + axis.min = from; + axis.max = to; + } + } + }; + + Navigator.prototype.filter = function filter () { + var ref = this; + var chart = ref.chart; + var select = ref.options.select; + + if (!chart.requiresHandlers([ "navigatorFilter" ])) { + return; + } + + var mainAxis = this.mainAxis(); + var args = { + from: select.from, + to: select.to + }; + + if (mainAxis.options.type !== 'category') { + var axisOptions = new _core__WEBPACK_IMPORTED_MODULE_3__["DateCategoryAxis"](Object(_common__WEBPACK_IMPORTED_MODULE_5__["deepExtend"])({ + baseUnit: "fit" + }, chart.options.categoryAxis[0], { + categories: [ select.from, select.to ] + }), chart.chartService).options; + + args.from = Object(_date_utils__WEBPACK_IMPORTED_MODULE_4__["addDuration"])(axisOptions.min, -axisOptions.baseUnitStep, axisOptions.baseUnit); + args.to = Object(_date_utils__WEBPACK_IMPORTED_MODULE_4__["addDuration"])(axisOptions.max, axisOptions.baseUnitStep, axisOptions.baseUnit); + } + + this.chart.trigger("navigatorFilter", args); + }; + + Navigator.prototype._zoom = function _zoom (e) { + var ref = this; + var axis = ref.chart._plotArea.categoryAxis; + var selection = ref.selection; + var ref_options = ref.options; + var select = ref_options.select; + var liveDrag = ref_options.liveDrag; + var mainAxis = this.mainAxis(); + var delta = e.delta; + + if (!selection) { + return; + } + + var fromIx = mainAxis.categoryIndex(selection.options.from); + var toIx = mainAxis.categoryIndex(selection.options.to); + + e.originalEvent.preventDefault(); + + if (Math.abs(delta) > 1) { + delta *= ZOOM_ACCELERATION; + } + + if (toIx - fromIx > 1) { + selection.expand(delta); + this.readSelection(); + } else { + axis.options.min = select.from; + select.from = axis.scaleRange(-e.delta).min; + } + + if (liveDrag) { + this.filterAxes(); + this.redrawSlaves(); + } + + selection.set(select.from, select.to); + + this.showHint(this.options.select.from, this.options.select.to); + }; + + Navigator.prototype._zoomEnd = function _zoomEnd (e) { + this._dragEnd(e); + }; + + Navigator.prototype.showHint = function showHint (from, to) { + var plotArea = this.chart._plotArea; + + if (this.hint) { + this.hint.show(from, to, plotArea.backgroundBox()); + } + }; + + Navigator.prototype._selectStart = function _selectStart (e) { + return this.chart._selectStart(e); + }; + + Navigator.prototype._select = function _select (e) { + this.showHint(e.from, e.to); + + return this.chart._select(e); + }; + + Navigator.prototype._selectEnd = function _selectEnd (e) { + if (this.hint) { + this.hint.hide(); + } + + this.readSelection(); + this.filterAxes(); + this.filter(); + this.redrawSlaves(); + + return this.chart._selectEnd(e); + }; + + Navigator.prototype.mainAxis = function mainAxis () { + var plotArea = this.chart._plotArea; + + if (plotArea) { + return plotArea.namedCategoryAxes[_constants__WEBPACK_IMPORTED_MODULE_6__["NAVIGATOR_AXIS"]]; + } + }; + + Navigator.prototype.select = function select (from, to) { + var select = this.options.select; + + if (from && to) { + select.from = this.parseDate(from); + select.to = this.parseDate(to); + + this.filterAxes(); + this.filter(); + this.redrawSlaves(); + + this.selection.set(from, to); + } + + return { + from: select.from, + to: select.to + }; + }; + + Navigator.setup = function setup (options, themeOptions) { + if ( options === void 0 ) options = {}; + if ( themeOptions === void 0 ) themeOptions = {}; + + if (options.__navi) { + return; + } + options.__navi = true; + + var naviOptions = Object(_common__WEBPACK_IMPORTED_MODULE_5__["deepExtend"])({}, themeOptions.navigator, options.navigator); + var panes = options.panes = [].concat(options.panes); + var paneOptions = Object(_common__WEBPACK_IMPORTED_MODULE_5__["deepExtend"])({}, naviOptions.pane, { name: _constants__WEBPACK_IMPORTED_MODULE_6__["NAVIGATOR_PANE"] }); + + if (!naviOptions.visible) { + paneOptions.visible = false; + paneOptions.height = 0.1; + } + + panes.push(paneOptions); + + Navigator.attachAxes(options, naviOptions); + Navigator.attachSeries(options, naviOptions, themeOptions); + }; + + Navigator.attachAxes = function attachAxes (options, naviOptions) { + var series = naviOptions.series || []; + var categoryAxes = options.categoryAxis = [].concat(options.categoryAxis); + var valueAxes = options.valueAxis = [].concat(options.valueAxis); + + var equallySpacedSeries = Object(_chart__WEBPACK_IMPORTED_MODULE_1__["filterSeriesByType"])(series, _chart_constants__WEBPACK_IMPORTED_MODULE_2__["EQUALLY_SPACED_SERIES"]); + var justifyAxis = equallySpacedSeries.length === 0; + + var base = Object(_common__WEBPACK_IMPORTED_MODULE_5__["deepExtend"])({ + type: "date", + pane: _constants__WEBPACK_IMPORTED_MODULE_6__["NAVIGATOR_PANE"], + roundToBaseUnit: !justifyAxis, + justified: justifyAxis, + _collapse: false, + majorTicks: { visible: true }, + tooltip: { visible: false }, + labels: { step: 1 }, + autoBind: naviOptions.autoBindElements, + autoBaseUnitSteps: { + minutes: [ 1 ], + hours: [ 1, 2 ], + days: [ 1, 2 ], + weeks: [], + months: [ 1 ], + years: [ 1 ] + } + }); + var user = naviOptions.categoryAxis; + + categoryAxes.push( + Object(_common__WEBPACK_IMPORTED_MODULE_5__["deepExtend"])({}, base, { + maxDateGroups: 200 + }, user, { + name: _constants__WEBPACK_IMPORTED_MODULE_6__["NAVIGATOR_AXIS"], + title: null, + baseUnit: "fit", + baseUnitStep: "auto", + labels: { visible: false }, + majorTicks: { visible: false } + }), Object(_common__WEBPACK_IMPORTED_MODULE_5__["deepExtend"])({}, base, user, { + name: _constants__WEBPACK_IMPORTED_MODULE_6__["NAVIGATOR_AXIS"] + "_labels", + maxDateGroups: 20, + baseUnitStep: "auto", + labels: { position: "" }, + plotBands: [], + autoBaseUnitSteps: { + minutes: [] + }, + _overlap: true + }), Object(_common__WEBPACK_IMPORTED_MODULE_5__["deepExtend"])({}, base, user, { + name: _constants__WEBPACK_IMPORTED_MODULE_6__["NAVIGATOR_AXIS"] + "_ticks", + maxDateGroups: 200, + majorTicks: { + width: 0.5 + }, + plotBands: [], + title: null, + labels: { visible: false, mirror: true }, + _overlap: true + }) + ); + + valueAxes.push(Object(_common__WEBPACK_IMPORTED_MODULE_5__["deepExtend"])({ + name: _constants__WEBPACK_IMPORTED_MODULE_6__["NAVIGATOR_AXIS"], + pane: _constants__WEBPACK_IMPORTED_MODULE_6__["NAVIGATOR_PANE"], + majorGridLines: { + visible: false + }, + visible: false + }, naviOptions.valueAxis)); + }; + + Navigator.attachSeries = function attachSeries (options, naviOptions, themeOptions) { + var series = options.series = options.series || []; + var navigatorSeries = [].concat(naviOptions.series || []); + var seriesColors = themeOptions.seriesColors; + var defaults = naviOptions.seriesDefaults; + + for (var idx = 0; idx < navigatorSeries.length; idx++) { + series.push( + Object(_common__WEBPACK_IMPORTED_MODULE_5__["deepExtend"])({ + color: seriesColors[idx % seriesColors.length], + categoryField: naviOptions.dateField, + visibleInLegend: false, + tooltip: { + visible: false + } + }, defaults, navigatorSeries[idx], { + axis: _constants__WEBPACK_IMPORTED_MODULE_6__["NAVIGATOR_AXIS"], + categoryAxis: _constants__WEBPACK_IMPORTED_MODULE_6__["NAVIGATOR_AXIS"], + autoBind: naviOptions.autoBindElements + }) + ); + } + }; + + return Navigator; +}(_common__WEBPACK_IMPORTED_MODULE_5__["Class"])); + +function ClonedObject() { } +function clone(obj) { + ClonedObject.prototype = obj; + return new ClonedObject(); +} + + __webpack_exports__["default"] = (Navigator); + + + }), + + "./node_modules/@progress/kendo-charts/dist/es/stock/stock-chart.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _chart__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/chart.js"); + var _navigator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/stock/navigator.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/common.js"); + var _constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-charts/dist/es/stock/constants.js"); + + + + + + + +var AUTO_CATEGORY_WIDTH = 28; + +var StockChart = (function (Chart) { + function StockChart () { + Chart.apply(this, arguments); + } + + if ( Chart ) StockChart.__proto__ = Chart; + StockChart.prototype = Object.create( Chart && Chart.prototype ); + StockChart.prototype.constructor = StockChart; + + StockChart.prototype.applyDefaults = function applyDefaults (options, themeOptions) { + var width = Object(_common__WEBPACK_IMPORTED_MODULE_3__["elementSize"])(this.element).width || _common_constants__WEBPACK_IMPORTED_MODULE_2__["DEFAULT_WIDTH"]; + var theme = themeOptions; + + var stockDefaults = { + seriesDefaults: { + categoryField: options.dateField + }, + axisDefaults: { + categoryAxis: { + name: "default", + majorGridLines: { + visible: false + }, + labels: { + step: 2 + }, + majorTicks: { + visible: false + }, + maxDateGroups: Math.floor(width / AUTO_CATEGORY_WIDTH) + } + } + }; + + if (theme) { + theme = Object(_common__WEBPACK_IMPORTED_MODULE_3__["deepExtend"])({}, theme, stockDefaults); + } + + _navigator__WEBPACK_IMPORTED_MODULE_1__["default"].setup(options, theme); + + Chart.prototype.applyDefaults.call(this, options, theme); + }; + + StockChart.prototype._setElementClass = function _setElementClass (element) { + Object(_common__WEBPACK_IMPORTED_MODULE_3__["addClass"])(element, 'k-chart k-stockchart'); + }; + + StockChart.prototype.setOptions = function setOptions (options) { + this.destroyNavigator(); + Chart.prototype.setOptions.call(this, options); + }; + + StockChart.prototype.noTransitionsRedraw = function noTransitionsRedraw () { + var transitions = this.options.transitions; + + this.options.transitions = false; + this._fullRedraw(); + this.options.transitions = transitions; + }; + + StockChart.prototype._resize = function _resize () { + this.noTransitionsRedraw(); + }; + + StockChart.prototype._redraw = function _redraw () { + var navigator = this.navigator; + + if (!this._dirty() && navigator && navigator.options.partialRedraw) { + navigator.redrawSlaves(); + } else { + this._fullRedraw(); + } + }; + + StockChart.prototype._dirty = function _dirty () { + var options = this.options; + var series = [].concat(options.series, options.navigator.series); + var seriesCount = Object(_common__WEBPACK_IMPORTED_MODULE_3__["grep"])(series, function(s) { return s && s.visible; }).length; + var dirty = this._seriesCount !== seriesCount; + this._seriesCount = seriesCount; + + return dirty; + }; + + StockChart.prototype._fullRedraw = function _fullRedraw () { + var navigator = this.navigator; + + if (!navigator) { + navigator = this.navigator = new _navigator__WEBPACK_IMPORTED_MODULE_1__["default"](this); + this.trigger("navigatorCreated", { navigator: navigator }); + } + + navigator.clean(); + navigator.setRange(); + + Chart.prototype._redraw.call(this); + + navigator.initSelection(); + }; + + StockChart.prototype._trackSharedTooltip = function _trackSharedTooltip (coords) { + var plotArea = this._plotArea; + var pane = plotArea.paneByPoint(coords); + + if (pane && pane.options.name === _constants__WEBPACK_IMPORTED_MODULE_4__["NAVIGATOR_PANE"]) { + this._unsetActivePoint(); + } else { + Chart.prototype._trackSharedTooltip.call(this, coords); + } + }; + + StockChart.prototype.bindCategories = function bindCategories () { + Chart.prototype.bindCategories.call(this); + this.copyNavigatorCategories(); + }; + + StockChart.prototype.copyNavigatorCategories = function copyNavigatorCategories () { + var definitions = [].concat(this.options.categoryAxis); + var categories; + + for (var axisIx = 0; axisIx < definitions.length; axisIx++) { + var axis = definitions[axisIx]; + if (axis.name === _constants__WEBPACK_IMPORTED_MODULE_4__["NAVIGATOR_AXIS"]) { + categories = axis.categories; + } else if (categories && axis.pane === _constants__WEBPACK_IMPORTED_MODULE_4__["NAVIGATOR_PANE"]) { + axis.categories = categories; + } + } + }; + + StockChart.prototype.destroyNavigator = function destroyNavigator () { + if (this.navigator) { + this.navigator.destroy(); + this.navigator = null; + } + }; + + StockChart.prototype.destroy = function destroy () { + this.destroyNavigator(); + Chart.prototype.destroy.call(this); + }; + + StockChart.prototype._stopChartHandlers = function _stopChartHandlers (e) { + var coords = this._eventCoordinates(e); + var pane = this._plotArea.paneByPoint(coords); + + return Chart.prototype._stopChartHandlers.call(this, e) || (pane && pane.options.name === _constants__WEBPACK_IMPORTED_MODULE_4__["NAVIGATOR_PANE"]); + }; + + StockChart.prototype._toggleDragZoomEvents = function _toggleDragZoomEvents () { + if (!this._dragZoomEnabled) { + this.element.style.touchAction = "none"; + + this._dragZoomEnabled = true; + } + }; + + return StockChart; +}(_chart__WEBPACK_IMPORTED_MODULE_0__["Chart"])); + +Object(_common__WEBPACK_IMPORTED_MODULE_3__["setDefaultOptions"])(StockChart, { + dateField: "date", + axisDefaults: { + categoryAxis: { + type: "date", + baseUnit: "fit", + justified: true + }, + valueAxis: { + narrowRange: true, + labels: { + format: "C" + } + } + }, + navigator: { + select: {}, + seriesDefaults: { + markers: { + visible: false + }, + tooltip: { + visible: true + }, + line: { + width: 2 + } + }, + hint: {}, + visible: true + }, + tooltip: { + visible: true + }, + legend: { + visible: false + } +}); + + __webpack_exports__["default"] = (StockChart); + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/accessors/define-accessors.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return defineAccessors; }); +function setAccessor(field) { + return function(value) { + if (this[field] !== value) { + this[field] = value; + this.geometryChange(); + } + + return this; + }; +} + +function getAccessor(field) { + return function() { + return this[field]; + }; +} + +function defineAccessors(fn, fields) { + for (var i = 0; i < fields.length; i++) { + var name = fields[i]; + var capitalized = name.charAt(0).toUpperCase() + + name.substring(1, name.length); + + fn["set" + capitalized] = setAccessor(name); + fn["get" + capitalized] = getAccessor(name); + } +} + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/accessors/define-geometry-accessors.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return defineGeometryAccessors; }); + var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/util.js"); + + +function geometryAccessor(name) { + var fieldName = "_" + name; + return function(value) { + if (Object(_util__WEBPACK_IMPORTED_MODULE_0__["defined"])(value)) { + this._observerField(fieldName, value); + this.geometryChange(); + return this; + } + + return this[fieldName]; + }; +} + +function defineGeometryAccessors(fn, names) { + for (var i = 0; i < names.length; i++) { + fn[names[i]] = geometryAccessor(names[i]); + } +} + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/accessors/define-options-accessors.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return defineOptionsAccessors; }); + var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/util.js"); + + +function optionsAccessor(name) { + return function(value) { + if (Object(_util__WEBPACK_IMPORTED_MODULE_0__["defined"])(value)) { + this.options.set(name, value); + return this; + } + + return this.options.get(name); + }; +} + +function defineOptionsAccessors(fn, names) { + for (var i = 0; i < names.length; i++) { + fn[names[i]] = optionsAccessor(names[i]); + } +} + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/accessors/define-point-accessors.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return definePointAccessors; }); + var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/util.js"); + var _geometry_point__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/point.js"); + + + +function pointAccessor(name) { + var fieldName = "_" + name; + return function(value) { + if (Object(_util__WEBPACK_IMPORTED_MODULE_0__["defined"])(value)) { + this._observerField(fieldName, _geometry_point__WEBPACK_IMPORTED_MODULE_1__["default"].create(value)); + this.geometryChange(); + return this; + } + + return this[fieldName]; + }; +} + +function definePointAccessors(fn, names) { + for (var i = 0; i < names.length; i++) { + fn[names[i]] = pointAccessor(names[i]); + } +} + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/alignment.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _alignment_align__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/alignment/align.js"); + __webpack_require__.d(__webpack_exports__, "align", function() { return _alignment_align__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + + var _alignment_v_align__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/alignment/v-align.js"); + __webpack_require__.d(__webpack_exports__, "vAlign", function() { return _alignment_v_align__WEBPACK_IMPORTED_MODULE_1__["default"]; }); + + var _alignment_stack__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/alignment/stack.js"); + __webpack_require__.d(__webpack_exports__, "stack", function() { return _alignment_stack__WEBPACK_IMPORTED_MODULE_2__["default"]; }); + + var _alignment_v_stack__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/alignment/v-stack.js"); + __webpack_require__.d(__webpack_exports__, "vStack", function() { return _alignment_v_stack__WEBPACK_IMPORTED_MODULE_3__["default"]; }); + + var _alignment_wrap__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/alignment/wrap.js"); + __webpack_require__.d(__webpack_exports__, "wrap", function() { return _alignment_wrap__WEBPACK_IMPORTED_MODULE_4__["default"]; }); + + var _alignment_v_wrap__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/alignment/v-wrap.js"); + __webpack_require__.d(__webpack_exports__, "vWrap", function() { return _alignment_v_wrap__WEBPACK_IMPORTED_MODULE_5__["default"]; }); + + var _alignment_fit__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/alignment/fit.js"); + __webpack_require__.d(__webpack_exports__, "fit", function() { return _alignment_fit__WEBPACK_IMPORTED_MODULE_6__["default"]; }); + + + + + + + + + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/alignment/align-elements.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return alignElements; }); + var _translate_to_point__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/alignment/translate-to-point.js"); + var _align_start__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/alignment/align-start.js"); + + + +function alignElements(elements, rect, alignment, axis, sizeField) { + for (var idx = 0; idx < elements.length; idx++) { + var bbox = elements[idx].clippedBBox(); + if (bbox) { + var point = bbox.origin.clone(); + point[axis] = Object(_align_start__WEBPACK_IMPORTED_MODULE_1__["default"])(bbox.size[sizeField], rect, alignment || "start", axis, sizeField); + Object(_translate_to_point__WEBPACK_IMPORTED_MODULE_0__["default"])(point, bbox, elements[idx]); + } + } +} + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/alignment/align-start-reverse.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return alignStartReverse; }); + +function alignStartReverse(size, rect, align, axis, sizeField) { + var start; + if (align === "start") { + start = rect.origin[axis] + rect.size[sizeField] - size; + } else if (align === "end") { + start = rect.origin[axis]; + } else { + start = rect.origin[axis] + (rect.size[sizeField] - size) / 2; + } + + return start; +} + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/alignment/align-start.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return alignStart; }); + +function alignStart(size, rect, align, axis, sizeField) { + var start; + if (align === "start") { + start = rect.origin[axis]; + } else if (align === "end") { + start = rect.origin[axis] + rect.size[sizeField] - size; + } else { + start = rect.origin[axis] + (rect.size[sizeField] - size) / 2; + } + + return start; +} + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/alignment/align.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return align; }); + var _align_elements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/alignment/align-elements.js"); + + + +function align(elements, rect, alignment) { + Object(_align_elements__WEBPACK_IMPORTED_MODULE_0__["default"])(elements, rect, alignment, "x", "width"); +} + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/alignment/create-stack-elements.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return createStackElements; }); +function createStackElements(elements) { + var stackElements = []; + + for (var idx = 0; idx < elements.length; idx++) { + var element = elements[idx]; + var bbox = element.clippedBBox(); + if (bbox) { + stackElements.push({ + element: element, + bbox: bbox + }); + } + } + + return stackElements; +} + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/alignment/fit.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return fit; }); + var _geometry_transform__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/transform.js"); + + +function fit(element, rect) { + var bbox = element.clippedBBox(); + if (bbox) { + var elementSize = bbox.size; + var rectSize = rect.size; + if (rectSize.width < elementSize.width || rectSize.height < elementSize.height) { + var scale = Math.min(rectSize.width / elementSize.width, rectSize.height / elementSize.height); + var transform = element.transform() || Object(_geometry_transform__WEBPACK_IMPORTED_MODULE_0__["default"])(); + transform.scale(scale, scale); + element.transform(transform); + } + } +} + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/alignment/stack-elements.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return stackElements; }); + var _geometry_point__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/point.js"); + var _translate_to_point__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/alignment/translate-to-point.js"); + + + +function stackElements(elements, stackAxis, otherAxis, sizeField) { + if (elements.length > 1) { + var origin = new _geometry_point__WEBPACK_IMPORTED_MODULE_0__["default"](); + var previousBBox = elements[0].bbox; + + for (var idx = 1; idx < elements.length; idx++) { + var element = elements[idx].element; + var bbox = elements[idx].bbox; + origin[stackAxis] = previousBBox.origin[stackAxis] + previousBBox.size[sizeField]; + origin[otherAxis] = bbox.origin[otherAxis]; + Object(_translate_to_point__WEBPACK_IMPORTED_MODULE_1__["default"])(origin, bbox, element); + bbox.origin[stackAxis] = origin[stackAxis]; + previousBBox = bbox; + } + } +} + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/alignment/stack.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return stack; }); + var _stack_elements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/alignment/stack-elements.js"); + var _create_stack_elements__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/alignment/create-stack-elements.js"); + + + +function stack(elements) { + Object(_stack_elements__WEBPACK_IMPORTED_MODULE_0__["default"])(Object(_create_stack_elements__WEBPACK_IMPORTED_MODULE_1__["default"])(elements), "x", "y", "width"); +} + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/alignment/translate-to-point.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return translateToPoint; }); + var _geometry_transform__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/transform.js"); + + +function translateToPoint(point, bbox, element) { + var transofrm = element.transform() || Object(_geometry_transform__WEBPACK_IMPORTED_MODULE_0__["default"])(); + var matrix = transofrm.matrix(); + matrix.e += point.x - bbox.origin.x; + matrix.f += point.y - bbox.origin.y; + + transofrm.matrix(matrix); + element.transform(transofrm); +} + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/alignment/v-align.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return vAlign; }); + var _align_elements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/alignment/align-elements.js"); + + +function vAlign(elements, rect, alignment) { + Object(_align_elements__WEBPACK_IMPORTED_MODULE_0__["default"])(elements, rect, alignment, "y", "height"); +} + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/alignment/v-stack.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return vStack; }); + var _stack_elements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/alignment/stack-elements.js"); + var _create_stack_elements__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/alignment/create-stack-elements.js"); + + + +function vStack(elements) { + Object(_stack_elements__WEBPACK_IMPORTED_MODULE_0__["default"])(Object(_create_stack_elements__WEBPACK_IMPORTED_MODULE_1__["default"])(elements), "y", "x", "height"); +} + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/alignment/v-wrap.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return vWrap; }); + var _wrap_elements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/alignment/wrap-elements.js"); + + +function vWrap(elements, rect) { + return Object(_wrap_elements__WEBPACK_IMPORTED_MODULE_0__["default"])(elements, rect, "y", "x", "height"); +} + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/alignment/wrap-elements.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return wrapElements; }); + var _translate_to_point__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/alignment/translate-to-point.js"); + var _stack_elements__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/alignment/stack-elements.js"); + + + +function getStacks(elements, rect, sizeField) { + var maxSize = rect.size[sizeField]; + var stacks = []; + var stack = []; + var stackSize = 0; + var element, bbox; + + var addElementToStack = function() { + stack.push({ + element: element, + bbox: bbox + }); + }; + + for (var idx = 0; idx < elements.length; idx++) { + element = elements[idx]; + + bbox = element.clippedBBox(); + if (bbox) { + var size = bbox.size[sizeField]; + if (stackSize + size > maxSize) { + if (stack.length) { + stacks.push(stack); + stack = []; + addElementToStack(); + stackSize = size; + } else { + addElementToStack(); + stacks.push(stack); + stack = []; + stackSize = 0; + } + } else { + addElementToStack(); + stackSize += size; + } + } + } + + if (stack.length) { + stacks.push(stack); + } + + return stacks; +} + +function wrapElements(elements, rect, axis, otherAxis, sizeField) { + var stacks = getStacks(elements, rect, sizeField); + var origin = rect.origin.clone(); + var result = []; + + for (var idx = 0; idx < stacks.length; idx++) { + var stack = stacks[idx]; + var startElement = stack[0]; + origin[otherAxis] = startElement.bbox.origin[otherAxis]; + Object(_translate_to_point__WEBPACK_IMPORTED_MODULE_0__["default"])(origin, startElement.bbox, startElement.element); + startElement.bbox.origin[axis] = origin[axis]; + Object(_stack_elements__WEBPACK_IMPORTED_MODULE_1__["default"])(stack, axis, otherAxis, sizeField); + result.push([]); + for (var elementIdx = 0; elementIdx < stack.length; elementIdx++) { + result[idx].push(stack[elementIdx].element); + } + } + return result; +} + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/alignment/wrap.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return wrap; }); + var _wrap_elements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/alignment/wrap-elements.js"); + + +function wrap(elements, rect) { + return Object(_wrap_elements__WEBPACK_IMPORTED_MODULE_0__["default"])(elements, rect, "x", "y", "width"); +} + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/animations.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _animations_animation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/animations/animation.js"); + __webpack_require__.d(__webpack_exports__, "Animation", function() { return _animations_animation__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + + var _animations_animation_factory__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/animations/animation-factory.js"); + __webpack_require__.d(__webpack_exports__, "AnimationFactory", function() { return _animations_animation_factory__WEBPACK_IMPORTED_MODULE_1__["default"]; }); + + + + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/animations/animation-factory.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/common.js"); + + +var AnimationFactory = (function (Class) { + function AnimationFactory() { + Class.call(this); + + this._items = []; + } + + if ( Class ) AnimationFactory.__proto__ = Class; + AnimationFactory.prototype = Object.create( Class && Class.prototype ); + AnimationFactory.prototype.constructor = AnimationFactory; + + AnimationFactory.prototype.register = function register (name, type) { + this._items.push({ + name: name, + type: type + }); + }; + + AnimationFactory.prototype.create = function create (element, options) { + var items = this._items; + var match; + + if (options && options.type) { + var type = options.type.toLowerCase(); + for (var i = 0; i < items.length; i++) { + if (items[i].name.toLowerCase() === type) { + match = items[i]; + break; + } + } + } + + if (match) { + return new match.type(element, options); + } + }; + + return AnimationFactory; +}(_common__WEBPACK_IMPORTED_MODULE_0__["Class"])); + +AnimationFactory.current = new AnimationFactory(); + + __webpack_exports__["default"] = (AnimationFactory); + + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/animations/animation.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _easing_functions__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/animations/easing-functions.js"); + var _util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/util.js"); + var _common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/common.js"); + var _animation_factory__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/animations/animation-factory.js"); + + + + + +var now = Date.now || function() { + return new Date().getTime(); +}; + +var Animation = (function (Class) { + function Animation(element, options) { + Class.call(this); + + this.options = Object.assign({}, this.options, options); + this.element = element; + } + + if ( Class ) Animation.__proto__ = Class; + Animation.prototype = Object.create( Class && Class.prototype ); + Animation.prototype.constructor = Animation; + + Animation.prototype.setup = function setup () {}; + Animation.prototype.step = function step () {}; + + Animation.prototype.play = function play () { + var this$1 = this; + + var options = this.options; + var duration = options.duration; + var delay = options.delay; if ( delay === void 0 ) delay = 0; + var easing = _easing_functions__WEBPACK_IMPORTED_MODULE_0__[options.easing]; + var start = now() + delay; + var finish = start + duration; + + if (duration === 0) { + this.step(1); + this.abort(); + } else { + setTimeout(function () { + var loop = function () { + if (this$1._stopped) { + return; + } + + var wallTime = now(); + + var time = Object(_util__WEBPACK_IMPORTED_MODULE_1__["limitValue"])(wallTime - start, 0, duration); + var position = time / duration; + var easingPosition = easing(position, time, 0, 1, duration); + + this$1.step(easingPosition); + + if (wallTime < finish) { + Object(_common__WEBPACK_IMPORTED_MODULE_2__["animationFrame"])(loop); + } else { + this$1.abort(); + } + }; + + loop(); + }, delay); + } + }; + + Animation.prototype.abort = function abort () { + this._stopped = true; + }; + + Animation.prototype.destroy = function destroy () { + this.abort(); + }; + + return Animation; +}(_common__WEBPACK_IMPORTED_MODULE_2__["Class"])); + +Animation.prototype.options = { + duration: 500, + easing: "swing" +}; + +Animation.create = function(type, element, options) { + return _animation_factory__WEBPACK_IMPORTED_MODULE_3__["default"].current.create(type, element, options); +}; + + __webpack_exports__["default"] = (Animation); + + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/animations/easing-functions.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "swing", function() { return swing; }); + __webpack_require__.d(__webpack_exports__, "linear", function() { return linear; }); + __webpack_require__.d(__webpack_exports__, "easeOutElastic", function() { return easeOutElastic; }); +function swing(position) { + return 0.5 - Math.cos(position * Math.PI) / 2; +} + +function linear(position) { + return position; +} + +function easeOutElastic(position, time, start, diff) { + var s = 1.70158, + p = 0, + a = diff; + + if (position === 0) { + return start; + } + + if (position === 1) { + return start + diff; + } + + if (!p) { + p = 0.5; + } + + if (a < Math.abs(diff)) { + a = diff; + s = p / 4; + } else { + s = p / (2 * Math.PI) * Math.asin(diff / a); + } + + return a * Math.pow(2, -10 * position) * + Math.sin((Number(position) - s) * (1.1 * Math.PI) / p) + diff + start; +} + + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/canvas.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _canvas_surface__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/canvas/surface.js"); + __webpack_require__.d(__webpack_exports__, "Surface", function() { return _canvas_surface__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + + var _canvas_root_node__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/canvas/root-node.js"); + __webpack_require__.d(__webpack_exports__, "RootNode", function() { return _canvas_root_node__WEBPACK_IMPORTED_MODULE_1__["default"]; }); + + var _canvas_node__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/canvas/node.js"); + __webpack_require__.d(__webpack_exports__, "Node", function() { return _canvas_node__WEBPACK_IMPORTED_MODULE_2__["default"]; }); + + var _canvas_group_node__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/canvas/group-node.js"); + __webpack_require__.d(__webpack_exports__, "GroupNode", function() { return _canvas_group_node__WEBPACK_IMPORTED_MODULE_3__["default"]; }); + + var _canvas_arc_node__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/canvas/arc-node.js"); + __webpack_require__.d(__webpack_exports__, "ArcNode", function() { return _canvas_arc_node__WEBPACK_IMPORTED_MODULE_4__["default"]; }); + + var _canvas_circle_node__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/canvas/circle-node.js"); + __webpack_require__.d(__webpack_exports__, "CircleNode", function() { return _canvas_circle_node__WEBPACK_IMPORTED_MODULE_5__["default"]; }); + + var _canvas_rect_node__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/canvas/rect-node.js"); + __webpack_require__.d(__webpack_exports__, "RectNode", function() { return _canvas_rect_node__WEBPACK_IMPORTED_MODULE_6__["default"]; }); + + var _canvas_image_node__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/canvas/image-node.js"); + __webpack_require__.d(__webpack_exports__, "ImageNode", function() { return _canvas_image_node__WEBPACK_IMPORTED_MODULE_7__["default"]; }); + + var _canvas_text_node__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/canvas/text-node.js"); + __webpack_require__.d(__webpack_exports__, "TextNode", function() { return _canvas_text_node__WEBPACK_IMPORTED_MODULE_8__["default"]; }); + + var _canvas_path_node__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/canvas/path-node.js"); + __webpack_require__.d(__webpack_exports__, "PathNode", function() { return _canvas_path_node__WEBPACK_IMPORTED_MODULE_9__["default"]; }); + + var _canvas_multi_path_node__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/canvas/multi-path-node.js"); + __webpack_require__.d(__webpack_exports__, "MultiPathNode", function() { return _canvas_multi_path_node__WEBPACK_IMPORTED_MODULE_10__["default"]; }); + + + + + + + + + + + + + + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/canvas/arc-node.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _path_node__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/canvas/path-node.js"); + var _node_map__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/canvas/node-map.js"); + var _utils_render_path__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/canvas/utils/render-path.js"); + + + + +var ArcNode = (function (PathNode) { + function ArcNode () { + PathNode.apply(this, arguments); + } + + if ( PathNode ) ArcNode.__proto__ = PathNode; + ArcNode.prototype = Object.create( PathNode && PathNode.prototype ); + ArcNode.prototype.constructor = ArcNode; + + ArcNode.prototype.renderPoints = function renderPoints (ctx) { + var path = this.srcElement.toPath(); + Object(_utils_render_path__WEBPACK_IMPORTED_MODULE_2__["default"])(ctx, path); + }; + + return ArcNode; +}(_path_node__WEBPACK_IMPORTED_MODULE_0__["default"])); + +_node_map__WEBPACK_IMPORTED_MODULE_1__["default"].Arc = ArcNode; + + __webpack_exports__["default"] = (ArcNode); + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/canvas/circle-node.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _path_node__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/canvas/path-node.js"); + var _node_map__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/canvas/node-map.js"); + + + +var CircleNode = (function (PathNode) { + function CircleNode () { + PathNode.apply(this, arguments); + } + + if ( PathNode ) CircleNode.__proto__ = PathNode; + CircleNode.prototype = Object.create( PathNode && PathNode.prototype ); + CircleNode.prototype.constructor = CircleNode; + + CircleNode.prototype.renderPoints = function renderPoints (ctx) { + var ref = this.srcElement.geometry(); + var center = ref.center; + var radius = ref.radius; + + ctx.arc(center.x, center.y, radius, 0, Math.PI * 2); + }; + + return CircleNode; +}(_path_node__WEBPACK_IMPORTED_MODULE_0__["default"])); + +_node_map__WEBPACK_IMPORTED_MODULE_1__["default"].Circle = CircleNode; + + __webpack_exports__["default"] = (CircleNode); + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/canvas/export-image.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return exportImage; }); + var _surface__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/canvas/surface.js"); + var _geometry__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry.js"); + var _shapes_group__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/shapes/group.js"); + + + + +function exportImage(group, options) { + var defaults = { + width: "800px", height: "600px", + cors: "Anonymous" + }; + + var exportRoot = group; + var bbox = group.clippedBBox(); + + + if (bbox) { + var origin = bbox.getOrigin(); + exportRoot = new _shapes_group__WEBPACK_IMPORTED_MODULE_2__["default"](); + exportRoot.transform(Object(_geometry__WEBPACK_IMPORTED_MODULE_1__["transform"])().translate(-origin.x, -origin.y)); + exportRoot.children.push(group); + + var size = bbox.getSize(); + defaults.width = size.width + "px"; + defaults.height = size.height + "px"; + } + + var surfaceOptions = Object.assign(defaults, options); + + var container = document.createElement("div"); + var style = container.style; + + style.display = "none"; + style.width = surfaceOptions.width; + style.height = surfaceOptions.height; + document.body.appendChild(container); + + var surface = new _surface__WEBPACK_IMPORTED_MODULE_0__["default"](container, surfaceOptions); + surface.suspendTracking(); + surface.draw(exportRoot); + + var promise = surface.image(); + var destroy = function () { + surface.destroy(); + document.body.removeChild(container); + }; + promise.then(destroy, destroy); + + return promise; +} + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/canvas/group-node.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _node__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/canvas/node.js"); + var _mixins_traversable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/mixins/traversable.js"); + var _node_map__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/canvas/node-map.js"); + + + + +var GroupNode = (function (Node) { + function GroupNode () { + Node.apply(this, arguments); + } + + if ( Node ) GroupNode.__proto__ = Node; + GroupNode.prototype = Object.create( Node && Node.prototype ); + GroupNode.prototype.constructor = GroupNode; + + GroupNode.prototype.renderTo = function renderTo (ctx) { + if (!this.visible()) { + return; + } + + ctx.save(); + + this.setTransform(ctx); + this.setClip(ctx); + this.setOpacity(ctx); + + var childNodes = this.childNodes; + for (var i = 0; i < childNodes.length; i++) { + var child = childNodes[i]; + if (child.visible()) { + child.renderTo(ctx); + } + } + + ctx.restore(); + }; + + return GroupNode; +}(_node__WEBPACK_IMPORTED_MODULE_0__["default"])); + +_mixins_traversable__WEBPACK_IMPORTED_MODULE_1__["default"].extend(GroupNode.prototype, "childNodes"); + +_node_map__WEBPACK_IMPORTED_MODULE_2__["default"].Group = GroupNode; + + __webpack_exports__["default"] = (GroupNode); + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/canvas/image-node.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _path_node__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/canvas/path-node.js"); + var _node_map__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/canvas/node-map.js"); + var _util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/util.js"); + + + + +var ImageNode = (function (PathNode) { + function ImageNode(srcElement, cors) { + PathNode.call(this, srcElement); + + this.onLoad = this.onLoad.bind(this); + this.onError = this.onError.bind(this); + + this.loading = Object(_util__WEBPACK_IMPORTED_MODULE_2__["createPromise"])(); + + var img = this.img = new Image(); + + if (cors && !(/^data:/i.test(srcElement.src()))) { + img.crossOrigin = cors; + } + + img.src = srcElement.src(); + + if (img.complete) { + this.onLoad(); + } else { + img.onload = this.onLoad; + img.onerror = this.onError; + } + } + + if ( PathNode ) ImageNode.__proto__ = PathNode; + ImageNode.prototype = Object.create( PathNode && PathNode.prototype ); + ImageNode.prototype.constructor = ImageNode; + + ImageNode.prototype.renderTo = function renderTo (ctx) { + if (this.loading.state() === "resolved") { + ctx.save(); + + this.setTransform(ctx); + this.setClip(ctx); + + this.drawImage(ctx); + + ctx.restore(); + } + }; + + ImageNode.prototype.optionsChange = function optionsChange (e) { + if (e.field === "src") { + this.loading = Object(_util__WEBPACK_IMPORTED_MODULE_2__["createPromise"])(); + this.img.src = this.srcElement.src(); + } else { + PathNode.prototype.optionsChange.call(this, e); + } + }; + + ImageNode.prototype.onLoad = function onLoad () { + this.loading.resolve(); + this.invalidate(); + }; + + ImageNode.prototype.onError = function onError () { + this.loading.reject(new Error( + "Unable to load image '" + this.img.src + + "'. Check for connectivity and verify CORS headers." + )); + }; + + ImageNode.prototype.drawImage = function drawImage (ctx) { + var rect = this.srcElement.rect(); + var topLeft = rect.topLeft(); + + ctx.drawImage( + this.img, topLeft.x, topLeft.y, rect.width(), rect.height() + ); + }; + + return ImageNode; +}(_path_node__WEBPACK_IMPORTED_MODULE_0__["default"])); + +_node_map__WEBPACK_IMPORTED_MODULE_1__["default"].Image = ImageNode; + + __webpack_exports__["default"] = (ImageNode); + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/canvas/multi-path-node.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _path_node__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/canvas/path-node.js"); + var _node_map__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/canvas/node-map.js"); + var _utils_render_path__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/canvas/utils/render-path.js"); + + + + +var MultiPathNode = (function (PathNode) { + function MultiPathNode () { + PathNode.apply(this, arguments); + } + + if ( PathNode ) MultiPathNode.__proto__ = PathNode; + MultiPathNode.prototype = Object.create( PathNode && PathNode.prototype ); + MultiPathNode.prototype.constructor = MultiPathNode; + + MultiPathNode.prototype.renderPoints = function renderPoints (ctx) { + var paths = this.srcElement.paths; + for (var i = 0; i < paths.length; i++) { + Object(_utils_render_path__WEBPACK_IMPORTED_MODULE_2__["default"])(ctx, paths[i]); + } + }; + + return MultiPathNode; +}(_path_node__WEBPACK_IMPORTED_MODULE_0__["default"])); + +_node_map__WEBPACK_IMPORTED_MODULE_1__["default"].MultiPath = MultiPathNode; + + __webpack_exports__["default"] = (MultiPathNode); + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/canvas/node-map.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +var NODE_MAP = {}; + + __webpack_exports__["default"] = (NODE_MAP); + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/canvas/node.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _core_base_node__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/core/base-node.js"); + var _node_map__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/canvas/node-map.js"); + var _utils_render_path__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/canvas/utils/render-path.js"); + var _util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/util.js"); + + + + + +var Node = (function (BaseNode) { + function Node(srcElement) { + BaseNode.call(this, srcElement); + if (srcElement) { + this.initClip(); + } + } + + if ( BaseNode ) Node.__proto__ = BaseNode; + Node.prototype = Object.create( BaseNode && BaseNode.prototype ); + Node.prototype.constructor = Node; + + Node.prototype.initClip = function initClip () { + var clip = this.srcElement.clip(); + if (clip) { + this.clip = clip; + clip.addObserver(this); + } + }; + + Node.prototype.clear = function clear () { + if (this.srcElement) { + this.srcElement.removeObserver(this); + } + + this.clearClip(); + + BaseNode.prototype.clear.call(this); + }; + + Node.prototype.clearClip = function clearClip () { + if (this.clip) { + this.clip.removeObserver(this); + delete this.clip; + } + }; + + Node.prototype.setClip = function setClip (ctx) { + if (this.clip) { + ctx.beginPath(); + Object(_utils_render_path__WEBPACK_IMPORTED_MODULE_2__["default"])(ctx, this.clip); + ctx.clip(); + } + }; + + Node.prototype.optionsChange = function optionsChange (e) { + if (e.field === "clip") { + this.clearClip(); + this.initClip(); + } + + BaseNode.prototype.optionsChange.call(this, e); + }; + + Node.prototype.setTransform = function setTransform (ctx) { + if (this.srcElement) { + var transform = this.srcElement.transform(); + if (transform) { + ctx.transform.apply(ctx, transform.matrix().toArray(6)); + } + } + }; + + Node.prototype.loadElements = function loadElements (elements, pos, cors) { + var this$1 = this; + + for (var i = 0; i < elements.length; i++) { + var srcElement = elements[i]; + var children = srcElement.children; + + var childNode = new _node_map__WEBPACK_IMPORTED_MODULE_1__["default"][srcElement.nodeType](srcElement, cors); + + if (children && children.length > 0) { + childNode.load(children, pos, cors); + } + + if (Object(_util__WEBPACK_IMPORTED_MODULE_3__["defined"])(pos)) { + this$1.insertAt(childNode, pos); + } else { + this$1.append(childNode); + } + } + }; + + Node.prototype.load = function load (elements, pos, cors) { + this.loadElements(elements, pos, cors); + + this.invalidate(); + }; + + Node.prototype.setOpacity = function setOpacity (ctx) { + if (this.srcElement) { + var opacity = this.srcElement.opacity(); + if (Object(_util__WEBPACK_IMPORTED_MODULE_3__["defined"])(opacity)) { + this.globalAlpha(ctx, opacity); + } + } + }; + + Node.prototype.globalAlpha = function globalAlpha (ctx, value) { + var opactity = value; + if (opactity && ctx.globalAlpha) { + opactity *= ctx.globalAlpha; + } + ctx.globalAlpha = opactity; + }; + + Node.prototype.visible = function visible () { + var src = this.srcElement; + return !src || (src && src.options.visible !== false); + }; + + return Node; +}(_core_base_node__WEBPACK_IMPORTED_MODULE_0__["default"])); + + __webpack_exports__["default"] = (Node); + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/canvas/path-node.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _node__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/canvas/node.js"); + var _common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/common.js"); + var _util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/util.js"); + var _gradients_linear_gradient__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/gradients/linear-gradient.js"); + var _gradients_radial_gradient__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/gradients/radial-gradient.js"); + var _core_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/core/constants.js"); + var _utils_render_path__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/canvas/utils/render-path.js"); + var _node_map__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/canvas/node-map.js"); + + + + + + + + + +function addGradientStops(gradient, stops) { + for (var idx = 0; idx < stops.length; idx++) { + var stop = stops[idx]; + var color = Object(_common__WEBPACK_IMPORTED_MODULE_1__["parseColor"])(stop.color()); + + color.a *= stop.opacity(); + + gradient.addColorStop(stop.offset(), color.toCssRgba()); + } +} + +var PathNode = (function (Node) { + function PathNode () { + Node.apply(this, arguments); + } + + if ( Node ) PathNode.__proto__ = Node; + PathNode.prototype = Object.create( Node && Node.prototype ); + PathNode.prototype.constructor = PathNode; + + PathNode.prototype.renderTo = function renderTo (ctx) { + ctx.save(); + + this.setTransform(ctx); + this.setClip(ctx); + this.setOpacity(ctx); + + ctx.beginPath(); + + this.renderPoints(ctx, this.srcElement); + + this.setLineDash(ctx); + this.setLineCap(ctx); + this.setLineJoin(ctx); + + this.setFill(ctx); + this.setStroke(ctx); + + ctx.restore(); + }; + + PathNode.prototype.setFill = function setFill (ctx) { + var fill = this.srcElement.options.fill; + var hasFill = false; + + if (fill) { + if (fill.nodeType === "Gradient") { + this.setGradientFill(ctx, fill); + hasFill = true; + } else if (!Object(_util__WEBPACK_IMPORTED_MODULE_2__["isTransparent"])(fill.color)) { + ctx.fillStyle = fill.color; + + ctx.save(); + this.globalAlpha(ctx, fill.opacity); + ctx.fill(); + ctx.restore(); + + hasFill = true; + } + } + + return hasFill; + }; + + PathNode.prototype.setGradientFill = function setGradientFill (ctx, fill) { + var bbox = this.srcElement.rawBBox(); + var gradient; + + if (fill instanceof _gradients_linear_gradient__WEBPACK_IMPORTED_MODULE_3__["default"]) { + var start = fill.start(); + var end = fill.end(); + gradient = ctx.createLinearGradient(start.x, start.y, end.x, end.y); + } else if (fill instanceof _gradients_radial_gradient__WEBPACK_IMPORTED_MODULE_4__["default"]) { + var center = fill.center(); + gradient = ctx.createRadialGradient(center.x, center.y, 0, center.x, center.y, fill.radius()); + } + + addGradientStops(gradient, fill.stops); + + ctx.save(); + + if (!fill.userSpace()) { + ctx.transform(bbox.width(), 0, 0, bbox.height(), bbox.origin.x, bbox.origin.y); + } + ctx.fillStyle = gradient; + ctx.fill(); + + ctx.restore(); + }; + + PathNode.prototype.setStroke = function setStroke (ctx) { + var stroke = this.srcElement.options.stroke; + if (stroke && !Object(_util__WEBPACK_IMPORTED_MODULE_2__["isTransparent"])(stroke.color) && stroke.width > 0) { + ctx.strokeStyle = stroke.color; + ctx.lineWidth = Object(_util__WEBPACK_IMPORTED_MODULE_2__["valueOrDefault"])(stroke.width, 1); + + ctx.save(); + this.globalAlpha(ctx, stroke.opacity); + ctx.stroke(); + ctx.restore(); + + return true; + } + }; + + PathNode.prototype.dashType = function dashType () { + var stroke = this.srcElement.options.stroke; + if (stroke && stroke.dashType) { + return stroke.dashType.toLowerCase(); + } + }; + + PathNode.prototype.setLineDash = function setLineDash (ctx) { + var dashType = this.dashType(); + if (dashType && dashType !== _core_constants__WEBPACK_IMPORTED_MODULE_5__["SOLID"]) { + var dashArray = _core_constants__WEBPACK_IMPORTED_MODULE_5__["DASH_ARRAYS"][dashType]; + if (ctx.setLineDash) { + ctx.setLineDash(dashArray); + } else { + ctx.mozDash = dashArray; + ctx.webkitLineDash = dashArray; + } + } + }; + + PathNode.prototype.setLineCap = function setLineCap (ctx) { + var dashType = this.dashType(); + var stroke = this.srcElement.options.stroke; + if (dashType && dashType !== _core_constants__WEBPACK_IMPORTED_MODULE_5__["SOLID"]) { + ctx.lineCap = _core_constants__WEBPACK_IMPORTED_MODULE_5__["BUTT"]; + } else if (stroke && stroke.lineCap) { + ctx.lineCap = stroke.lineCap; + } + }; + + PathNode.prototype.setLineJoin = function setLineJoin (ctx) { + var stroke = this.srcElement.options.stroke; + if (stroke && stroke.lineJoin) { + ctx.lineJoin = stroke.lineJoin; + } + }; + + PathNode.prototype.renderPoints = function renderPoints (ctx, path) { + Object(_utils_render_path__WEBPACK_IMPORTED_MODULE_6__["default"])(ctx, path); + }; + + return PathNode; +}(_node__WEBPACK_IMPORTED_MODULE_0__["default"])); + +_node_map__WEBPACK_IMPORTED_MODULE_7__["default"].Path = PathNode; + + __webpack_exports__["default"] = (PathNode); + + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/canvas/rect-node.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _path_node__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/canvas/path-node.js"); + var _node_map__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/canvas/node-map.js"); + + + +var RectNode = (function (PathNode) { + function RectNode () { + PathNode.apply(this, arguments); + } + + if ( PathNode ) RectNode.__proto__ = PathNode; + RectNode.prototype = Object.create( PathNode && PathNode.prototype ); + RectNode.prototype.constructor = RectNode; + + RectNode.prototype.renderPoints = function renderPoints (ctx) { + var ref = this.srcElement.geometry(); + var origin = ref.origin; + var size = ref.size; + + ctx.rect(origin.x, origin.y, size.width, size.height); + }; + + return RectNode; +}(_path_node__WEBPACK_IMPORTED_MODULE_0__["default"])); + +_node_map__WEBPACK_IMPORTED_MODULE_1__["default"].Rect = RectNode; + + __webpack_exports__["default"] = (RectNode); + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/canvas/root-node.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _group_node__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/canvas/group-node.js"); + var _mixins_traversable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/mixins/traversable.js"); + var _common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/common.js"); + + + + +var FRAME_DELAY = 1000 / 60; + +var RootNode = (function (GroupNode) { + function RootNode(canvas, size) { + GroupNode.call(this); + + this.canvas = canvas; + this.size = size; + this.ctx = canvas.getContext("2d"); + + var invalidateHandler = this._invalidate.bind(this); + this.invalidate = Object(_common__WEBPACK_IMPORTED_MODULE_2__["throttle"])(function () { + Object(_common__WEBPACK_IMPORTED_MODULE_2__["animationFrame"])(invalidateHandler); + }, FRAME_DELAY); + } + + if ( GroupNode ) RootNode.__proto__ = GroupNode; + RootNode.prototype = Object.create( GroupNode && GroupNode.prototype ); + RootNode.prototype.constructor = RootNode; + + RootNode.prototype.destroy = function destroy () { + GroupNode.prototype.destroy.call(this); + this.canvas = null; + this.ctx = null; + }; + + RootNode.prototype.load = function load (elements, pos, cors) { + this.loadElements(elements, pos, cors); + this._invalidate(); + }; + + RootNode.prototype._rescale = function _rescale () { + var ref = this; + var canvas = ref.canvas; + var size = ref.size; + var scale = 1; + + if (typeof window.devicePixelRatio === 'number') { + scale = window.devicePixelRatio; + } + + canvas.width = size.width * scale; + canvas.height = size.height * scale; + this.ctx.scale(scale, scale); + }; + + RootNode.prototype._invalidate = function _invalidate () { + if (!this.ctx) { + return; + } + + this._rescale(); + + this.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height); + this.renderTo(this.ctx); + }; + + return RootNode; +}(_group_node__WEBPACK_IMPORTED_MODULE_0__["default"])); + +_mixins_traversable__WEBPACK_IMPORTED_MODULE_1__["default"].extend(RootNode.prototype, "childNodes"); + + __webpack_exports__["default"] = (RootNode); + + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/canvas/surface-cursor.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/util.js"); + + +var SurfaceCursor = function SurfaceCursor(surface) { + surface.bind("mouseenter", this._mouseenter.bind(this)); + surface.bind("mouseleave", this._mouseleave.bind(this)); + + this.element = surface.element; +}; + +SurfaceCursor.prototype.clear = function clear () { + this._resetCursor(); +}; + +SurfaceCursor.prototype.destroy = function destroy () { + this._resetCursor(); + delete this.element; +}; + +SurfaceCursor.prototype._mouseenter = function _mouseenter (e) { + var cursor = this._shapeCursor(e); + + if (!cursor) { + this._resetCursor(); + } else { + if (!this._current) { + this._defaultCursor = this._getCursor(); + } + + this._setCursor(cursor); + } +}; + +SurfaceCursor.prototype._mouseleave = function _mouseleave () { + this._resetCursor(); +}; + +SurfaceCursor.prototype._shapeCursor = function _shapeCursor (e) { + var shape = e.element; + + while (shape && !Object(_util__WEBPACK_IMPORTED_MODULE_0__["defined"])(shape.options.cursor)) { + shape = shape.parent; + } + + if (shape) { + return shape.options.cursor; + } +}; + +SurfaceCursor.prototype._getCursor = function _getCursor () { + if (this.element) { + return this.element.style.cursor; + } +}; + +SurfaceCursor.prototype._setCursor = function _setCursor (cursor) { + if (this.element) { + this.element.style.cursor = cursor; + this._current = cursor; + } +}; + +SurfaceCursor.prototype._resetCursor = function _resetCursor () { + if (this._current) { + this._setCursor(this._defaultCursor || ""); + delete this._current; + } +}; + + __webpack_exports__["default"] = (SurfaceCursor); + + + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/canvas/surface.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _core_surface__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/core/surface.js"); + var _core_surface_factory__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/core/surface-factory.js"); + var _util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/util.js"); + var _root_node__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/canvas/root-node.js"); + var _search_shapes_quad_tree__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/search/shapes-quad-tree.js"); + var _surface_cursor__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/canvas/surface-cursor.js"); + + + + + + + +var Surface = (function (BaseSurface) { + function Surface(element, options) { + BaseSurface.call(this, element, options); + + this.element.innerHTML = this._template(this); + + var canvas = this.element.firstElementChild; + var size = Object(_util__WEBPACK_IMPORTED_MODULE_2__["elementSize"])(element); + + canvas.width = size.width; + canvas.height = size.height; + + this._rootElement = canvas; + + this._root = new _root_node__WEBPACK_IMPORTED_MODULE_3__["default"](canvas, size); + + this._mouseTrackHandler = this._trackMouse.bind(this); + + Object(_util__WEBPACK_IMPORTED_MODULE_2__["bindEvents"])(this.element, { + click: this._mouseTrackHandler, + mousemove: this._mouseTrackHandler + }); + } + + if ( BaseSurface ) Surface.__proto__ = BaseSurface; + Surface.prototype = Object.create( BaseSurface && BaseSurface.prototype ); + Surface.prototype.constructor = Surface; + + Surface.prototype.destroy = function destroy () { + BaseSurface.prototype.destroy.call(this); + + if (this._root) { + this._root.destroy(); + this._root = null; + } + + if (this._searchTree) { + this._searchTree.clear(); + delete this._searchTree; + } + + if (this._cursor) { + this._cursor.destroy(); + delete this._cursor; + } + + Object(_util__WEBPACK_IMPORTED_MODULE_2__["unbindEvents"])(this.element, { + click: this._mouseTrackHandler, + mousemove: this._mouseTrackHandler + }); + }; + + Surface.prototype.draw = function draw (element) { + BaseSurface.prototype.draw.call(this, element); + this._root.load([ element ], undefined, this.options.cors); + + if (this._searchTree) { + this._searchTree.add([ element ]); + } + }; + + Surface.prototype.clear = function clear () { + BaseSurface.prototype.clear.call(this); + this._root.clear(); + + if (this._searchTree) { + this._searchTree.clear(); + } + + if (this._cursor) { + this._cursor.clear(); + } + }; + + Surface.prototype.eventTarget = function eventTarget (e) { + if (this._searchTree) { + var point = this._surfacePoint(e); + var shape = this._searchTree.pointShape(point); + return shape; + } + }; + + Surface.prototype.image = function image () { + var ref = this; + var root = ref._root; + var rootElement = ref._rootElement; + var loadingStates = []; + + root.traverse(function (childNode) { + if (childNode.loading) { + loadingStates.push(childNode.loading); + } + }); + + var promise = Object(_util__WEBPACK_IMPORTED_MODULE_2__["createPromise"])(); + var resolveDataURL = function () { + root._invalidate(); + + try { + var data = rootElement.toDataURL(); + promise.resolve(data); + } catch (e) { + promise.reject(e); + } + }; + + Object(_util__WEBPACK_IMPORTED_MODULE_2__["promiseAll"])(loadingStates).then(resolveDataURL, resolveDataURL); + + return promise; + }; + + Surface.prototype.suspendTracking = function suspendTracking () { + BaseSurface.prototype.suspendTracking.call(this); + if (this._searchTree) { + this._searchTree.clear(); + delete this._searchTree; + } + }; + + Surface.prototype.resumeTracking = function resumeTracking () { + BaseSurface.prototype.resumeTracking.call(this); + if (!this._searchTree) { + this._searchTree = new _search_shapes_quad_tree__WEBPACK_IMPORTED_MODULE_4__["default"](); + + var childNodes = this._root.childNodes; + var rootElements = []; + for (var idx = 0; idx < childNodes.length; idx++) { + rootElements.push(childNodes[idx].srcElement); + } + this._searchTree.add(rootElements); + } + }; + + Surface.prototype._resize = function _resize () { + this._rootElement.width = this._size.width; + this._rootElement.height = this._size.height; + + this._root.size = this._size; + this._root.invalidate(); + }; + + Surface.prototype._template = function _template () { + return ""; + }; + + Surface.prototype._enableTracking = function _enableTracking () { + this._searchTree = new _search_shapes_quad_tree__WEBPACK_IMPORTED_MODULE_4__["default"](); + this._cursor = new _surface_cursor__WEBPACK_IMPORTED_MODULE_5__["default"](this); + + BaseSurface.prototype._enableTracking.call(this); + }; + + Surface.prototype._trackMouse = function _trackMouse (e) { + if (this._suspendedTracking) { + return; + } + + var shape = this.eventTarget(e); + + if (e.type !== "click") { + var currentShape = this._currentShape; + if (currentShape && currentShape !== shape) { + this.trigger("mouseleave", { + element: currentShape, + originalEvent: e, + type: "mouseleave" + }); + } + + if (shape && currentShape !== shape) { + this.trigger("mouseenter", { + element: shape, + originalEvent: e, + type: "mouseenter" + }); + } + + this.trigger("mousemove", { + element: shape, + originalEvent: e, + type: "mousemove" + }); + + this._currentShape = shape; + } else if (shape) { + this.trigger("click", { + element: shape, + originalEvent: e, + type: "click" + }); + } + }; + + return Surface; +}(_core_surface__WEBPACK_IMPORTED_MODULE_0__["default"])); + +Surface.prototype.type = "canvas"; + +if (typeof document !== "undefined" && document.createElement("canvas").getContext) { + _core_surface__WEBPACK_IMPORTED_MODULE_0__["default"].support.canvas = true; + _core_surface_factory__WEBPACK_IMPORTED_MODULE_1__["default"].current.register("canvas", Surface, 20); +} + + __webpack_exports__["default"] = (Surface); + + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/canvas/text-node.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _path_node__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/canvas/path-node.js"); + var _node_map__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/canvas/node-map.js"); + + + +var TextNode = (function (PathNode) { + function TextNode () { + PathNode.apply(this, arguments); + } + + if ( PathNode ) TextNode.__proto__ = PathNode; + TextNode.prototype = Object.create( PathNode && PathNode.prototype ); + TextNode.prototype.constructor = TextNode; + + TextNode.prototype.renderTo = function renderTo (ctx) { + var text = this.srcElement; + var pos = text.position(); + var size = text.measure(); + + ctx.save(); + + this.setTransform(ctx); + this.setClip(ctx); + this.setOpacity(ctx); + + ctx.beginPath(); + + ctx.font = text.options.font; + ctx.textAlign = 'left'; + + if (this.setFill(ctx)) { + ctx.fillText(text.content(), pos.x, pos.y + size.baseline); + } + + if (this.setStroke(ctx)) { + this.setLineDash(ctx); + ctx.strokeText(text.content(), pos.x, pos.y + size.baseline); + } + + ctx.restore(); + }; + + return TextNode; +}(_path_node__WEBPACK_IMPORTED_MODULE_0__["default"])); + + +_node_map__WEBPACK_IMPORTED_MODULE_1__["default"].Text = TextNode; + + __webpack_exports__["default"] = (TextNode); + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/canvas/utils/render-path.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return renderPath; }); + +function renderPath(ctx, path) { + var segments = path.segments; + + if (segments.length === 0) { + return; + } + + var segment = segments[0]; + var anchor = segment.anchor(); + ctx.moveTo(anchor.x, anchor.y); + + for (var i = 1; i < segments.length; i++) { + segment = segments[i]; + anchor = segment.anchor(); + + var prevSeg = segments[i - 1]; + var prevOut = prevSeg.controlOut(); + var controlIn = segment.controlIn(); + + if (prevOut && controlIn) { + ctx.bezierCurveTo(prevOut.x, prevOut.y, + controlIn.x, controlIn.y, + anchor.x, anchor.y); + } else { + ctx.lineTo(anchor.x, anchor.y); + } + } + + if (path.options.closed) { + ctx.closePath(); + } +} + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/common.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _common_animation_frame__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/common/animation-frame.js"); + __webpack_require__.d(__webpack_exports__, "animationFrame", function() { return _common_animation_frame__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + + var _common_class__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/common/class.js"); + __webpack_require__.d(__webpack_exports__, "Class", function() { return _common_class__WEBPACK_IMPORTED_MODULE_1__["default"]; }); + + var _common_html_encode__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/common/html-encode.js"); + __webpack_require__.d(__webpack_exports__, "htmlEncode", function() { return _common_html_encode__WEBPACK_IMPORTED_MODULE_2__["default"]; }); + + var _common_log_to_console__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/common/log-to-console.js"); + __webpack_require__.d(__webpack_exports__, "logToConsole", function() { return _common_log_to_console__WEBPACK_IMPORTED_MODULE_3__["default"]; }); + + var _common_observable__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/common/observable.js"); + __webpack_require__.d(__webpack_exports__, "Observable", function() { return _common_observable__WEBPACK_IMPORTED_MODULE_4__["default"]; }); + + var _common_save_as__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/common/save-as.js"); + __webpack_require__.d(__webpack_exports__, "saveAs", function() { return _common_save_as__WEBPACK_IMPORTED_MODULE_5__["default"]; }); + + var _common_support__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/common/support.js"); + __webpack_require__.d(__webpack_exports__, "support", function() { return _common_support__WEBPACK_IMPORTED_MODULE_6__["default"]; }); + + var _common_template__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/common/template.js"); + __webpack_require__.d(__webpack_exports__, "template", function() { return _common_template__WEBPACK_IMPORTED_MODULE_7__["default"]; }); + + var _common_throttle__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/common/throttle.js"); + __webpack_require__.d(__webpack_exports__, "throttle", function() { return _common_throttle__WEBPACK_IMPORTED_MODULE_8__["default"]; }); + + var _common_color__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/common/color.js"); + __webpack_require__.d(__webpack_exports__, "parseColor", function() { return _common_color__WEBPACK_IMPORTED_MODULE_9__["parseColor"]; }); + + __webpack_require__.d(__webpack_exports__, "namedColors", function() { return _common_color__WEBPACK_IMPORTED_MODULE_9__["namedColors"]; }); + + __webpack_require__.d(__webpack_exports__, "Color", function() { return _common_color__WEBPACK_IMPORTED_MODULE_9__["Color"]; }); + + + + + + + + + + + + + + + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/common/animation-frame.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return animationFrameProxy; }); +var wnd = typeof window !== "undefined" ? window : {}; + +var animationFrame = wnd.requestAnimationFrame || + wnd.webkitRequestAnimationFrame || + wnd.mozRequestAnimationFrame || + wnd.oRequestAnimationFrame || + wnd.msRequestAnimationFrame || + function(callback) { setTimeout(callback, 1000 / 60); }; + +function animationFrameProxy(callback) { + animationFrame.call(wnd, callback); +} + + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/common/class.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +var Class = function Class () {}; + + __webpack_exports__["default"] = (Class); + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/common/color.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _color_parse_color__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/common/color/parse-color.js"); + __webpack_require__.d(__webpack_exports__, "parseColor", function() { return _color_parse_color__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + + var _color_named_colors__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/common/color/named-colors.js"); + __webpack_require__.d(__webpack_exports__, "namedColors", function() { return _color_named_colors__WEBPACK_IMPORTED_MODULE_1__["default"]; }); + + var _color_color__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/common/color/color.js"); + __webpack_require__.d(__webpack_exports__, "Color", function() { return _color_color__WEBPACK_IMPORTED_MODULE_2__["default"]; }); + + + + + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/common/color/color.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _class__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/common/class.js"); + var _named_colors__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/common/color/named-colors.js"); + var _parse_color__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/common/color/parse-color.js"); + + + + +var DARK_TRESHOLD = 180; + +var Color = (function (Class) { + function Color(value) { + var this$1 = this; + + Class.call(this); + + if (arguments.length === 1) { + var formats = Color.formats; + var resolvedColor = this.resolveColor(value); + + for (var idx = 0; idx < formats.length; idx++) { + var formatRegex = formats[idx].re; + var processor = formats[idx].process; + var parts = formatRegex.exec(resolvedColor); + + if (parts) { + var channels = processor(parts); + this$1.r = channels[0]; + this$1.g = channels[1]; + this$1.b = channels[2]; + } + } + } else { + this.r = arguments[0]; + this.g = arguments[1]; + this.b = arguments[2]; + } + + this.r = this.normalizeByte(this.r); + this.g = this.normalizeByte(this.g); + this.b = this.normalizeByte(this.b); + } + + if ( Class ) Color.__proto__ = Class; + Color.prototype = Object.create( Class && Class.prototype ); + Color.prototype.constructor = Color; + + Color.prototype.toHex = function toHex () { + var pad = this.padDigit; + var r = this.r.toString(16); + var g = this.g.toString(16); + var b = this.b.toString(16); + + return "#" + pad(r) + pad(g) + pad(b); + }; + + Color.prototype.resolveColor = function resolveColor (value) { + var color = value || "black"; + + if (color.charAt(0) === "#") { + color = color.substr(1, 6); + } + + color = color.replace(/ /g, ""); + color = color.toLowerCase(); + color = Color.namedColors[color] || color; + + return color; + }; + + Color.prototype.normalizeByte = function normalizeByte (value) { + if (value < 0 || isNaN(value)) { + return 0; + } + + return value > 255 ? 255 : value; + }; + + Color.prototype.padDigit = function padDigit (value) { + return (value.length === 1) ? "0" + value : value; + }; + + Color.prototype.brightness = function brightness (value) { + var round = Math.round; + + this.r = round(this.normalizeByte(this.r * value)); + this.g = round(this.normalizeByte(this.g * value)); + this.b = round(this.normalizeByte(this.b * value)); + + return this; + }; + + Color.prototype.percBrightness = function percBrightness () { + return Math.sqrt(0.241 * this.r * this.r + 0.691 * this.g * this.g + 0.068 * this.b * this.b); + }; + + Color.prototype.isDark = function isDark () { + return this.percBrightness() < DARK_TRESHOLD; + }; + + Color.fromBytes = function fromBytes (r, g, b, a) { + return new _parse_color__WEBPACK_IMPORTED_MODULE_2__["Bytes"](r, g, b, a != null ? a : 1); + }; + + Color.fromRGB = function fromRGB (r, g, b, a) { + return new _parse_color__WEBPACK_IMPORTED_MODULE_2__["RGB"](r, g, b, a != null ? a : 1); + }; + + Color.fromHSV = function fromHSV (h, s, v, a) { + return new _parse_color__WEBPACK_IMPORTED_MODULE_2__["HSV"](h, s, v, a != null ? a : 1); + }; + + Color.fromHSL = function fromHSL (h, s, l, a) { + return new _parse_color__WEBPACK_IMPORTED_MODULE_2__["HSL"](h, s, l, a != null ? a : 1); + }; + + return Color; +}(_class__WEBPACK_IMPORTED_MODULE_0__["default"])); + +Color.formats = [ { + re: /^rgb\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3})\)$/, + process: function(parts) { + return [ + parseInt(parts[1], 10), parseInt(parts[2], 10), parseInt(parts[3], 10) + ]; + } +}, { + re: /^(\w{2})(\w{2})(\w{2})$/, + process: function(parts) { + return [ + parseInt(parts[1], 16), parseInt(parts[2], 16), parseInt(parts[3], 16) + ]; + } +}, { + re: /^(\w{1})(\w{1})(\w{1})$/, + process: function(parts) { + return [ + parseInt(parts[1] + parts[1], 16), + parseInt(parts[2] + parts[2], 16), + parseInt(parts[3] + parts[3], 16) + ]; + } +} ]; + +Color.namedColors = _named_colors__WEBPACK_IMPORTED_MODULE_1__["default"]; + + __webpack_exports__["default"] = (Color); + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/common/color/named-colors.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +var namedColors = { + aliceblue: "f0f8ff", antiquewhite: "faebd7", aqua: "00ffff", + aquamarine: "7fffd4", azure: "f0ffff", beige: "f5f5dc", + bisque: "ffe4c4", black: "000000", blanchedalmond: "ffebcd", + blue: "0000ff", blueviolet: "8a2be2", brown: "a52a2a", + burlywood: "deb887", cadetblue: "5f9ea0", chartreuse: "7fff00", + chocolate: "d2691e", coral: "ff7f50", cornflowerblue: "6495ed", + cornsilk: "fff8dc", crimson: "dc143c", cyan: "00ffff", + darkblue: "00008b", darkcyan: "008b8b", darkgoldenrod: "b8860b", + darkgray: "a9a9a9", darkgrey: "a9a9a9", darkgreen: "006400", + darkkhaki: "bdb76b", darkmagenta: "8b008b", darkolivegreen: "556b2f", + darkorange: "ff8c00", darkorchid: "9932cc", darkred: "8b0000", + darksalmon: "e9967a", darkseagreen: "8fbc8f", darkslateblue: "483d8b", + darkslategray: "2f4f4f", darkslategrey: "2f4f4f", darkturquoise: "00ced1", + darkviolet: "9400d3", deeppink: "ff1493", deepskyblue: "00bfff", + dimgray: "696969", dimgrey: "696969", dodgerblue: "1e90ff", + firebrick: "b22222", floralwhite: "fffaf0", forestgreen: "228b22", + fuchsia: "ff00ff", gainsboro: "dcdcdc", ghostwhite: "f8f8ff", + gold: "ffd700", goldenrod: "daa520", gray: "808080", + grey: "808080", green: "008000", greenyellow: "adff2f", + honeydew: "f0fff0", hotpink: "ff69b4", indianred: "cd5c5c", + indigo: "4b0082", ivory: "fffff0", khaki: "f0e68c", + lavender: "e6e6fa", lavenderblush: "fff0f5", lawngreen: "7cfc00", + lemonchiffon: "fffacd", lightblue: "add8e6", lightcoral: "f08080", + lightcyan: "e0ffff", lightgoldenrodyellow: "fafad2", lightgray: "d3d3d3", + lightgrey: "d3d3d3", lightgreen: "90ee90", lightpink: "ffb6c1", + lightsalmon: "ffa07a", lightseagreen: "20b2aa", lightskyblue: "87cefa", + lightslategray: "778899", lightslategrey: "778899", lightsteelblue: "b0c4de", + lightyellow: "ffffe0", lime: "00ff00", limegreen: "32cd32", + linen: "faf0e6", magenta: "ff00ff", maroon: "800000", + mediumaquamarine: "66cdaa", mediumblue: "0000cd", mediumorchid: "ba55d3", + mediumpurple: "9370d8", mediumseagreen: "3cb371", mediumslateblue: "7b68ee", + mediumspringgreen: "00fa9a", mediumturquoise: "48d1cc", mediumvioletred: "c71585", + midnightblue: "191970", mintcream: "f5fffa", mistyrose: "ffe4e1", + moccasin: "ffe4b5", navajowhite: "ffdead", navy: "000080", + oldlace: "fdf5e6", olive: "808000", olivedrab: "6b8e23", + orange: "ffa500", orangered: "ff4500", orchid: "da70d6", + palegoldenrod: "eee8aa", palegreen: "98fb98", paleturquoise: "afeeee", + palevioletred: "d87093", papayawhip: "ffefd5", peachpuff: "ffdab9", + peru: "cd853f", pink: "ffc0cb", plum: "dda0dd", + powderblue: "b0e0e6", purple: "800080", red: "ff0000", + rosybrown: "bc8f8f", royalblue: "4169e1", saddlebrown: "8b4513", + salmon: "fa8072", sandybrown: "f4a460", seagreen: "2e8b57", + seashell: "fff5ee", sienna: "a0522d", silver: "c0c0c0", + skyblue: "87ceeb", slateblue: "6a5acd", slategray: "708090", + slategrey: "708090", snow: "fffafa", springgreen: "00ff7f", + steelblue: "4682b4", tan: "d2b48c", teal: "008080", + thistle: "d8bfd8", tomato: "ff6347", turquoise: "40e0d0", + violet: "ee82ee", wheat: "f5deb3", white: "ffffff", + whitesmoke: "f5f5f5", yellow: "ffff00", yellowgreen: "9acd32" +}; + + __webpack_exports__["default"] = (namedColors); + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/common/color/parse-color.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "RGB", function() { return RGB; }); + __webpack_require__.d(__webpack_exports__, "Bytes", function() { return Bytes; }); + __webpack_require__.d(__webpack_exports__, "HSV", function() { return HSV; }); + __webpack_require__.d(__webpack_exports__, "HSL", function() { return HSL; }); + __webpack_require__.d(__webpack_exports__, "default", function() { return parseColor; }); + var _class__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/common/class.js"); + var _support__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/common/support.js"); + var _named_colors__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/common/color/named-colors.js"); + + + + +var browser = _support__WEBPACK_IMPORTED_MODULE_1__["default"].browser; + +var matchNamedColor = function (color) { + var colorNames = Object.keys(_named_colors__WEBPACK_IMPORTED_MODULE_2__["default"]); + colorNames.push("transparent"); + + var regexp = new RegExp("^(" + colorNames.join("|") + ")(\\W|$)", "i"); + matchNamedColor = function (color) { return regexp.exec(color); }; + + return regexp.exec(color); +}; + +var BaseColor = (function (Class) { + function BaseColor() { Class.call(this); } + + if ( Class ) BaseColor.__proto__ = Class; + BaseColor.prototype = Object.create( Class && Class.prototype ); + BaseColor.prototype.constructor = BaseColor; + BaseColor.prototype.toHSV = function toHSV () { return this; }; + + BaseColor.prototype.toRGB = function toRGB () { return this; }; + + BaseColor.prototype.toHex = function toHex () { return this.toBytes().toHex(); }; + + BaseColor.prototype.toBytes = function toBytes () { return this; }; + + BaseColor.prototype.toCss = function toCss () { return "#" + this.toHex(); }; + + BaseColor.prototype.toCssRgba = function toCssRgba () { + var rgb = this.toBytes(); + return ("rgba(" + (rgb.r) + ", " + (rgb.g) + ", " + (rgb.b) + ", " + (parseFloat((Number(this.a)).toFixed(3))) + ")"); + }; + + BaseColor.prototype.toDisplay = function toDisplay () { + if (browser.msie && browser.version < 9) { + return this.toCss(); // no RGBA support; does it support any opacity in colors? + } + return this.toCssRgba(); + }; + + BaseColor.prototype.equals = function equals (c) { + return c === this || c !== null && this.toCssRgba() === parseColor(c).toCssRgba(); + }; + + BaseColor.prototype.diff = function diff (other) { + if (other === null) { + return NaN; + } + + var c1 = this.toBytes(); + var c2 = other.toBytes(); + + return Math.sqrt(Math.pow((c1.r - c2.r) * 0.30, 2) + + Math.pow((c1.g - c2.g) * 0.59, 2) + + Math.pow((c1.b - c2.b) * 0.11, 2)); + }; + + BaseColor.prototype.clone = function clone () { + var c = this.toBytes(); + if (c === this) { + c = new Bytes(c.r, c.g, c.b, c.a); + } + + return c; + }; + + return BaseColor; +}(_class__WEBPACK_IMPORTED_MODULE_0__["default"])); + +var RGB = (function (BaseColor) { + function RGB(r, g, b, a) { + BaseColor.call(this); + + this.r = r; + this.g = g; + this.b = b; + this.a = a; + } + + if ( BaseColor ) RGB.__proto__ = BaseColor; + RGB.prototype = Object.create( BaseColor && BaseColor.prototype ); + RGB.prototype.constructor = RGB; + + RGB.prototype.toHSV = function toHSV () { + var ref = this; + var r = ref.r; + var g = ref.g; + var b = ref.b; + var min = Math.min(r, g, b); + var max = Math.max(r, g, b); + var delta = max - min; + var v = max; + var h, s; + + if (delta === 0) { + return new HSV(0, 0, v, this.a); + } + + if (max !== 0) { + s = delta / max; + if (r === max) { + h = (g - b) / delta; + } else if (g === max) { + h = 2 + (b - r) / delta; + } else { + h = 4 + (r - g) / delta; + } + + h *= 60; + if (h < 0) { + h += 360; + } + } else { + s = 0; + h = -1; + } + + return new HSV(h, s, v, this.a); + }; + + RGB.prototype.toHSL = function toHSL () { + var ref = this; + var r = ref.r; + var g = ref.g; + var b = ref.b; + var max = Math.max(r, g, b); + var min = Math.min(r, g, b); + var h, s, l = (max + min) / 2; + + if (max === min) { + h = s = 0; + } else { + var d = max - min; + s = l > 0.5 ? d / (2 - max - min) : d / (max + min); + switch (max) { + case r: h = (g - b) / d + (g < b ? 6 : 0); break; + case g: h = (b - r) / d + 2; break; + case b: h = (r - g) / d + 4; break; + default: break; + } + } + + return new HSL(h * 60, s * 100, l * 100, this.a); + }; + + RGB.prototype.toBytes = function toBytes () { + return new Bytes(this.r * 255, this.g * 255, this.b * 255, this.a); + }; + + return RGB; +}(BaseColor)); + +var Bytes = (function (RGB) { + function Bytes(r, g, b, a) { + RGB.call(this, Math.round(r), Math.round(g), Math.round(b), a); + } + + if ( RGB ) Bytes.__proto__ = RGB; + Bytes.prototype = Object.create( RGB && RGB.prototype ); + Bytes.prototype.constructor = Bytes; + + Bytes.prototype.toRGB = function toRGB () { + return new RGB(this.r / 255, this.g / 255, this.b / 255, this.a); + }; + + Bytes.prototype.toHSV = function toHSV () { + return this.toRGB().toHSV(); + }; + + Bytes.prototype.toHSL = function toHSL () { + return this.toRGB().toHSL(); + }; + + Bytes.prototype.toHex = function toHex () { + return hex(this.r, 2) + hex(this.g, 2) + hex(this.b, 2); + }; + + Bytes.prototype.toBytes = function toBytes () { + return this; + }; + + return Bytes; +}(RGB)); + +function hex(n, width, pad) { + if ( pad === void 0 ) pad = "0"; + + var result = n.toString(16); + while (width > result.length) { + result = pad + result; + } + + return result; +} + +var HSV = (function (BaseColor) { + function HSV(h, s, v, a) { + BaseColor.call(this); + + this.h = h; + this.s = s; + this.v = v; + this.a = a; + } + + if ( BaseColor ) HSV.__proto__ = BaseColor; + HSV.prototype = Object.create( BaseColor && BaseColor.prototype ); + HSV.prototype.constructor = HSV; + + HSV.prototype.toRGB = function toRGB () { + var ref = this; + var h = ref.h; + var s = ref.s; + var v = ref.v; + var r, g, b; + + if (s === 0) { + r = g = b = v; + } else { + h /= 60; + + var i = Math.floor(h); + var f = h - i; + var p = v * (1 - s); + var q = v * (1 - s * f); + var t = v * (1 - s * (1 - f)); + + switch (i) { + case 0: r = v; g = t; b = p; break; + case 1: r = q; g = v; b = p; break; + case 2: r = p; g = v; b = t; break; + case 3: r = p; g = q; b = v; break; + case 4: r = t; g = p; b = v; break; + default: r = v; g = p; b = q; break; + } + } + + return new RGB(r, g, b, this.a); + }; + + HSV.prototype.toHSL = function toHSL () { + return this.toRGB().toHSL(); + }; + + HSV.prototype.toBytes = function toBytes () { + return this.toRGB().toBytes(); + }; + + return HSV; +}(BaseColor)); + +var HSL = (function (BaseColor) { + function HSL(h, s, l, a) { + BaseColor.call(this); + + this.h = h; + this.s = s; + this.l = l; + this.a = a; + } + + if ( BaseColor ) HSL.__proto__ = BaseColor; + HSL.prototype = Object.create( BaseColor && BaseColor.prototype ); + HSL.prototype.constructor = HSL; + + HSL.prototype.toRGB = function toRGB () { + var h = this.h / 360; + var s = this.s / 100; + var l = this.l / 100; + var r, g, b; + + if (s === 0) { + r = g = b = l; // achromatic + } else { + var q = l < 0.5 ? l * (1 + s) : l + s - l * s; + var p = 2 * l - q; + r = hue2rgb(p, q, h + 1 / 3); + g = hue2rgb(p, q, h); + b = hue2rgb(p, q, h - 1 / 3); + } + + return new RGB(r, g, b, this.a); + }; + + HSL.prototype.toHSV = function toHSV () { + return this.toRGB().toHSV(); + }; + + HSL.prototype.toBytes = function toBytes () { + return this.toRGB().toBytes(); + }; + + return HSL; +}(BaseColor)); + +function hue2rgb(p, q, s) { + var t = s; + + if (t < 0) { + t += 1; + } + + if (t > 1) { + t -= 1; + } + + if (t < 1 / 6) { + return p + (q - p) * 6 * t; + } + + if (t < 1 / 2) { + return q; + } + + if (t < 2 / 3) { + return p + (q - p) * (2 / 3 - t) * 6; + } + + return p; +} + + + +function parseColor(value, safe) { + var m, ret; + + if (value == null || value === "none") { + return null; + } + + if (value instanceof BaseColor) { + return value; + } + + var color = value.toLowerCase(); + if ((m = matchNamedColor(color))) { + if (m[1] === "transparent") { + color = new RGB(1, 1, 1, 0); + } else { + color = parseColor(_named_colors__WEBPACK_IMPORTED_MODULE_2__["default"][m[1]], safe); + } + color.match = [ m[1] ]; + return color; + } + if ((m = /^#?([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})\b/i.exec(color))) { + ret = new Bytes(parseInt(m[1], 16), + parseInt(m[2], 16), + parseInt(m[3], 16), 1); + } else if ((m = /^#?([0-9a-f])([0-9a-f])([0-9a-f])\b/i.exec(color))) { + ret = new Bytes(parseInt(m[1] + m[1], 16), + parseInt(m[2] + m[2], 16), + parseInt(m[3] + m[3], 16), 1); + } else if ((m = /^rgb\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\s*\)/.exec(color))) { + ret = new Bytes(parseInt(m[1], 10), + parseInt(m[2], 10), + parseInt(m[3], 10), 1); + } else if ((m = /^rgba\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9.]+)\s*\)/.exec(color))) { + ret = new Bytes(parseInt(m[1], 10), + parseInt(m[2], 10), + parseInt(m[3], 10), parseFloat(m[4])); + } else if ((m = /^rgb\(\s*([0-9]*\.?[0-9]+)%\s*,\s*([0-9]*\.?[0-9]+)%\s*,\s*([0-9]*\.?[0-9]+)%\s*\)/.exec(color))) { + ret = new RGB(parseFloat(m[1]) / 100, + parseFloat(m[2]) / 100, + parseFloat(m[3]) / 100, 1); + } else if ((m = /^rgba\(\s*([0-9]*\.?[0-9]+)%\s*,\s*([0-9]*\.?[0-9]+)%\s*,\s*([0-9]*\.?[0-9]+)%\s*,\s*([0-9.]+)\s*\)/.exec(color))) { + ret = new RGB(parseFloat(m[1]) / 100, + parseFloat(m[2]) / 100, + parseFloat(m[3]) / 100, parseFloat(m[4])); + } + + if (ret) { + ret.match = m; + } else if (!safe) { + throw new Error("Cannot parse color: " + color); + } + + return ret; +} + + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/common/html-encode.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return htmlEncode; }); +var ampRegExp = /&/g; +var ltRegExp = //g; + +function htmlEncode(value) { + return String(value).replace(ampRegExp, "&").replace(ltRegExp, "<").replace(gtRegExp, ">").replace(quoteRegExp, """).replace(aposRegExp, "'"); +} + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/common/log-to-console.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return logToConsole; }); + + +function logToConsole(message) { + var console = window.console; + + if (typeof(console) != "undefined" && console.log) { + console.log(message); + } +} + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/common/observable.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _class__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/common/class.js"); + + +var Observable = (function (Class) { + function Observable() { + Class.call(this); + + this._events = {}; + } + + if ( Class ) Observable.__proto__ = Class; + Observable.prototype = Object.create( Class && Class.prototype ); + Observable.prototype.constructor = Observable; + + Observable.prototype.bind = function bind (eventName, handlers, one) { + var arguments$1 = arguments; + var this$1 = this; + + var eventNames = getArray(eventName); + var handlersIsFunction = isFunction(handlers); + var length = eventNames.length; + + if (handlers === undefined) { + for (var field in eventName) { + this$1.bind(field, eventName[field]); + } + return this; + } + + var loop = function ( idx ) { + var eventName$1 = eventNames[idx]; + + var handler = handlersIsFunction ? handlers : handlers[eventName$1]; + + if (handler) { + if (one) { + var original = handler; + handler = function () { // eslint-disable-line no-loop-func + this$1.unbind(eventName$1, handler); + original.apply(this$1, arguments$1); + }; + handler.original = original; + } + var events = this$1._events[eventName$1] = this$1._events[eventName$1] || []; + events.push(handler); + } + }; + + for (var idx = 0; idx < length; idx++) loop( idx ); + + return this; + }; + + Observable.prototype.one = function one (eventNames, handlers) { + return this.bind(eventNames, handlers, true); + }; + + Observable.prototype.first = function first (eventName, handlers) { + var this$1 = this; + + var eventNames = getArray(eventName); + var handlersIsFunction = isFunction(handlers); + + for (var idx = 0, length = eventNames.length; idx < length; idx++) { + var eventName$1 = eventNames[idx]; + + var handler = handlersIsFunction ? handlers : handlers[eventName$1]; + + if (handler) { + var events = this$1._events[eventName$1] = this$1._events[eventName$1] || []; + events.unshift(handler); + } + } + + return this; + }; + + Observable.prototype.trigger = function trigger (eventName, e) { + var this$1 = this; + if ( e === void 0 ) e = {}; + + var events = this._events[eventName]; + + if (events) { + var length = events.length; + + e.sender = this; + e._defaultPrevented = false; + e.preventDefault = preventDefault; + e.isDefaultPrevented = isDefaultPrevented; + + events = events.slice(); + + for (var idx = 0; idx < length; idx++) { + events[idx].call(this$1, e); + } + + return e._defaultPrevented === true; + } + + return false; + }; + + Observable.prototype.unbind = function unbind (eventName, handler) { + var events = this._events[eventName]; + + if (eventName === undefined) { + this._events = {}; + } else if (events) { + if (handler) { + for (var idx = events.length - 1; idx >= 0; idx--) { + if (events[idx] === handler || events[idx].original === handler) { + events.splice(idx, 1); + } + } + } else { + this._events[eventName] = []; + } + } + + return this; + }; + + return Observable; +}(_class__WEBPACK_IMPORTED_MODULE_0__["default"])); + +function isFunction(value) { + return typeof value === "function"; +} + +function getArray(value) { + return typeof value === "string" ? [ value ] : value; +} + +function preventDefault() { + this._defaultPrevented = true; +} + +function isDefaultPrevented() { + return this._defaultPrevented === true; +} + + __webpack_exports__["default"] = (Observable); + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/common/save-as.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return saveAs; }); +// XXX: the following will not work with IE9 (requires server proxy). +function saveAs(options) { + var dataURI = options.dataURI; + var fileName = options.fileName; + var data = dataURI; + + if (typeof data == "string" && window.Blob) { + var parts = data.split(";base64,"); + var contentType = parts[0]; + var base64 = atob(parts[1]); + var array = new Uint8Array(base64.length); + for (var idx = 0; idx < base64.length; idx++) { + array[idx] = base64.charCodeAt(idx); + } + data = new Blob([ array.buffer ], { type: contentType }); + } + if (navigator.msSaveBlob) { + navigator.msSaveBlob(data, fileName); + } else { + var link = document.createElement("a"); + link.download = fileName; + data = link.href = URL.createObjectURL(data); + var e = document.createEvent("MouseEvents"); + e.initMouseEvent("click", true, false, window, + 0, 0, 0, 0, 0, false, false, false, false, 0, null); + link.dispatchEvent(e); + setTimeout(function() { + URL.revokeObjectURL(data); + }); + } +} + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/common/support.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +var support = {}; + +if (typeof window !== 'undefined') { + support.browser = (function(userAgent) { + var browserRxs = { + edge: /(edge)[ \/]([\w.]+)/i, + webkit: /(chrome)[ \/]([\w.]+)/i, + safari: /(webkit)[ \/]([\w.]+)/i, + opera: /(opera)(?:.*version|)[ \/]([\w.]+)/i, + msie: /(msie\s|trident.*? rv:)([\w.]+)/i, + mozilla: /(mozilla)(?:.*? rv:([\w.]+)|)/i + }; + + var browser; + + for (var agent in browserRxs) { + if (browserRxs.hasOwnProperty(agent)) { + var match = userAgent.match(browserRxs[agent]); + if (match) { + browser = {}; + browser[agent] = true; + browser[match[1].toLowerCase().split(" ")[0].split("/")[0]] = true; + browser.version = parseInt(document.documentMode || match[2], 10); + + break; + } + } + } + + return browser; + + })(window.navigator.userAgent); +} + + __webpack_exports__["default"] = (support); + + + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/common/template.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return template; }); +function template() { + // XXX: no template engine for now + throw new Error("String template not yet supported. Pass a function and use your preferred template engine."); +} + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/common/throttle.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return throttle; }); +function now() { + return new Date().getTime(); +} + +function throttle(fn, delay) { + var lastExecTime = 0; + var timeout; + + if (!delay || delay <= 0) { + return fn; + } + + var throttled = function() { + var elapsed = now() - lastExecTime; + var args = arguments; + + var exec = function() { + fn.apply(null, args); + lastExecTime = now(); + }; + + // first execution + if (!lastExecTime) { + return exec(); + } + + if (timeout) { + clearTimeout(timeout); + } + + if (elapsed > delay) { + exec(); + } else { + timeout = setTimeout(exec, delay - elapsed); + } + }; + + throttled.cancel = function() { + clearTimeout(timeout); + }; + + return throttled; +} + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/core/base-node.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/common.js"); + + +var BaseNode = (function (Class) { + function BaseNode(srcElement) { + Class.call(this); + + this.childNodes = []; + this.parent = null; + + if (srcElement) { + this.srcElement = srcElement; + this.observe(); + } + } + + if ( Class ) BaseNode.__proto__ = Class; + BaseNode.prototype = Object.create( Class && Class.prototype ); + BaseNode.prototype.constructor = BaseNode; + + BaseNode.prototype.destroy = function destroy () { + var this$1 = this; + + if (this.srcElement) { + this.srcElement.removeObserver(this); + } + + var children = this.childNodes; + for (var i = 0; i < children.length; i++) { + this$1.childNodes[i].destroy(); + } + + this.parent = null; + }; + + BaseNode.prototype.load = function load () {}; + + BaseNode.prototype.observe = function observe () { + if (this.srcElement) { + this.srcElement.addObserver(this); + } + }; + + BaseNode.prototype.append = function append (node) { + this.childNodes.push(node); + node.parent = this; + }; + + BaseNode.prototype.insertAt = function insertAt (node, pos) { + this.childNodes.splice(pos, 0, node); + node.parent = this; + }; + + BaseNode.prototype.remove = function remove (index, count) { + var this$1 = this; + + var end = index + count; + for (var i = index; i < end; i++) { + this$1.childNodes[i].removeSelf(); + } + this.childNodes.splice(index, count); + }; + + BaseNode.prototype.removeSelf = function removeSelf () { + this.clear(); + this.destroy(); + }; + + BaseNode.prototype.clear = function clear () { + this.remove(0, this.childNodes.length); + }; + + BaseNode.prototype.invalidate = function invalidate () { + if (this.parent) { + this.parent.invalidate(); + } + }; + + BaseNode.prototype.geometryChange = function geometryChange () { + this.invalidate(); + }; + + BaseNode.prototype.optionsChange = function optionsChange () { + this.invalidate(); + }; + + BaseNode.prototype.childrenChange = function childrenChange (e) { + if (e.action === "add") { + this.load(e.items, e.index); + } else if (e.action === "remove") { + this.remove(e.index, e.items.length); + } + + this.invalidate(); + }; + + return BaseNode; +}(_common__WEBPACK_IMPORTED_MODULE_0__["Class"])); + + __webpack_exports__["default"] = (BaseNode); + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/core/constants.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "DASH_ARRAYS", function() { return DASH_ARRAYS; }); + __webpack_require__.d(__webpack_exports__, "SOLID", function() { return SOLID; }); + __webpack_require__.d(__webpack_exports__, "BUTT", function() { return BUTT; }); +var DASH_ARRAYS = { + dot: [ 1.5, 3.5 ], + dash: [ 4, 3.5 ], + longdash: [ 8, 3.5 ], + dashdot: [ 3.5, 3.5, 1.5, 3.5 ], + longdashdot: [ 8, 3.5, 1.5, 3.5 ], + longdashdotdot: [ 8, 3.5, 1.5, 3.5, 1.5, 3.5 ] +}; + +var SOLID = "solid"; +var BUTT = "butt"; + + + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/core/options-store.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _mixins_observers_mixin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/mixins/observers-mixin.js"); + var _common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/common.js"); + var _util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/util.js"); + + + + +var toString = {}.toString; + +var OptionsStore = (function (Class) { + function OptionsStore(options, prefix) { + var this$1 = this; + if ( prefix === void 0 ) prefix = ""; + + Class.call(this); + + this.prefix = prefix; + + for (var field in options) { + var member = options[field]; + member = this$1._wrap(member, field); + this$1[field] = member; + } + } + + if ( Class ) OptionsStore.__proto__ = Class; + OptionsStore.prototype = Object.create( Class && Class.prototype ); + OptionsStore.prototype.constructor = OptionsStore; + + OptionsStore.prototype.get = function get (field) { + var parts = field.split("."); + var result = this; + + while (parts.length && result) { + var part = parts.shift(); + result = result[part]; + } + + return result; + }; + + OptionsStore.prototype.set = function set (field, value) { + var current = this.get(field); + + if (current !== value) { + this._set(field, this._wrap(value, field)); + this.optionsChange({ + field: this.prefix + field, + value: value + }); + } + }; + + OptionsStore.prototype._set = function _set (field, value) { + var this$1 = this; + + var composite = field.indexOf(".") >= 0; + var parentObj = this; + var fieldName = field; + + if (composite) { + var parts = fieldName.split("."); + var prefix = this.prefix; + + while (parts.length > 1) { + fieldName = parts.shift(); + prefix += fieldName + "."; + + var obj = parentObj[fieldName]; + + if (!obj) { + obj = new OptionsStore({}, prefix); + obj.addObserver(this$1); + parentObj[fieldName] = obj; + } + parentObj = obj; + } + fieldName = parts[0]; + } + + parentObj._clear(fieldName); + parentObj[fieldName] = value; + }; + + OptionsStore.prototype._clear = function _clear (field) { + var current = this[field]; + if (current && current.removeObserver) { + current.removeObserver(this); + } + }; + + OptionsStore.prototype._wrap = function _wrap (object, field) { + var type = toString.call(object); + var wrapped = object; + + if (wrapped !== null && Object(_util__WEBPACK_IMPORTED_MODULE_2__["defined"])(wrapped) && type === "[object Object]") { + if (!(object instanceof OptionsStore) && !(object instanceof Class)) { + wrapped = new OptionsStore(wrapped, this.prefix + field + "."); + } + + wrapped.addObserver(this); + } + + return wrapped; + }; + + return OptionsStore; +}(_common__WEBPACK_IMPORTED_MODULE_1__["Class"])); + +_mixins_observers_mixin__WEBPACK_IMPORTED_MODULE_0__["default"].extend(OptionsStore.prototype); + + __webpack_exports__["default"] = (OptionsStore); + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/core/surface-factory.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/common.js"); + + +var SurfaceFactory = (function (Class) { + function SurfaceFactory() { + Class.call(this); + + this._items = []; + } + + if ( Class ) SurfaceFactory.__proto__ = Class; + SurfaceFactory.prototype = Object.create( Class && Class.prototype ); + SurfaceFactory.prototype.constructor = SurfaceFactory; + + SurfaceFactory.prototype.register = function register (name, type, order) { + var items = this._items; + var first = items[0]; + var entry = { + name: name, + type: type, + order: order + }; + + if (!first || order < first.order) { + items.unshift(entry); + } else { + items.push(entry); + } + }; + + SurfaceFactory.prototype.create = function create (element, options) { + var items = this._items; + var match = items[0]; + + if (options && options.type) { + var preferred = options.type.toLowerCase(); + for (var i = 0; i < items.length; i++) { + if (items[i].name === preferred) { + match = items[i]; + break; + } + } + } + + if (match) { + return new match.type(element, options); + } + + Object(_common__WEBPACK_IMPORTED_MODULE_0__["logToConsole"])( + "Warning: Unable to create Kendo UI Drawing Surface. Possible causes:\n" + + "- The browser does not support SVG and Canvas. User agent: " + (navigator.userAgent)); + }; + + return SurfaceFactory; +}(_common__WEBPACK_IMPORTED_MODULE_0__["Class"])); + +SurfaceFactory.current = new SurfaceFactory(); + + __webpack_exports__["default"] = (SurfaceFactory); + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/core/surface.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _shapes_group__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/shapes/group.js"); + var _geometry_point__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/point.js"); + var _surface_factory__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/core/surface-factory.js"); + var _common__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/common.js"); + var _util__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/util.js"); + + + + + + +var events = [ + "click", + "mouseenter", + "mouseleave", + "mousemove", + "resize" +]; + +var Surface = (function (Observable) { + function Surface(element, options) { + Observable.call(this); + + this.options = Object.assign({}, options); + this.element = element; + this.element._kendoExportVisual = this.exportVisual.bind(this); + + this._click = this._handler("click"); + this._mouseenter = this._handler("mouseenter"); + this._mouseleave = this._handler("mouseleave"); + this._mousemove = this._handler("mousemove"); + + this._visual = new _shapes_group__WEBPACK_IMPORTED_MODULE_0__["default"](); + + Object(_util__WEBPACK_IMPORTED_MODULE_4__["elementSize"])(element, this.options); + + this.bind(events, this.options); + + this._enableTracking(); + } + + if ( Observable ) Surface.__proto__ = Observable; + Surface.prototype = Object.create( Observable && Observable.prototype ); + Surface.prototype.constructor = Surface; + + Surface.prototype.draw = function draw (element) { + this._visual.children.push(element); + }; + + Surface.prototype.clear = function clear () { + this._visual.children = []; + }; + + Surface.prototype.destroy = function destroy () { + this._visual = null; + this.element._kendoExportVisual = null; + this.unbind(); + }; + + Surface.prototype.eventTarget = function eventTarget (e) { + var this$1 = this; + + var domNode = Object(_util__WEBPACK_IMPORTED_MODULE_4__["eventElement"])(e); + var node; + + while (!node && domNode) { + node = domNode._kendoNode; + if (domNode === this$1.element) { + break; + } + + domNode = domNode.parentElement; + } + + if (node) { + return node.srcElement; + } + }; + + Surface.prototype.exportVisual = function exportVisual () { + return this._visual; + }; + + Surface.prototype.getSize = function getSize () { + return Object(_util__WEBPACK_IMPORTED_MODULE_4__["elementSize"])(this.element); + }; + + Surface.prototype.currentSize = function currentSize (size) { + if (size) { + this._size = size; + } else { + return this._size; + } + }; + + Surface.prototype.setSize = function setSize (size) { + Object(_util__WEBPACK_IMPORTED_MODULE_4__["elementSize"])(this.element, size); + + this.currentSize(size); + this._resize(); + }; + + Surface.prototype.resize = function resize (force) { + var size = this.getSize(); + var currentSize = this.currentSize(); + + if (force || (size.width > 0 || size.height > 0) && (!currentSize || size.width !== currentSize.width || size.height !== currentSize.height)) { + this.currentSize(size); + this._resize(size, force); + this.trigger("resize", size); + } + }; + + Surface.prototype.size = function size (value) { + if (!value) { + return this.getSize(); + } + + this.setSize(value); + }; + + Surface.prototype.suspendTracking = function suspendTracking () { + this._suspendedTracking = true; + }; + + Surface.prototype.resumeTracking = function resumeTracking () { + this._suspendedTracking = false; + }; + + Surface.prototype._enableTracking = function _enableTracking () {}; + + Surface.prototype._resize = function _resize () {}; + + Surface.prototype._handler = function _handler (eventName) { + var this$1 = this; + + return function (e) { + var node = this$1.eventTarget(e); + if (node && !this$1._suspendedTracking) { + this$1.trigger(eventName, { + element: node, + originalEvent: e, + type: eventName + }); + } + }; + }; + + Surface.prototype._elementOffset = function _elementOffset () { + var element = this.element; + var ref = Object(_util__WEBPACK_IMPORTED_MODULE_4__["elementStyles"])(element, [ "paddingLeft", "paddingTop" ]); + var paddingLeft = ref.paddingLeft; + var paddingTop = ref.paddingTop; + var ref$1 = Object(_util__WEBPACK_IMPORTED_MODULE_4__["elementOffset"])(element); + var left = ref$1.left; + var top = ref$1.top; + + return { + left: left + parseInt(paddingLeft, 10), + top: top + parseInt(paddingTop, 10) + }; + }; + + Surface.prototype._surfacePoint = function _surfacePoint (e) { + var offset = this._elementOffset(); + var coord = Object(_util__WEBPACK_IMPORTED_MODULE_4__["eventCoordinates"])(e); + var x = coord.x - offset.left; + var y = coord.y - offset.top; + + return new _geometry_point__WEBPACK_IMPORTED_MODULE_1__["default"](x, y); + }; + + return Surface; +}(_common__WEBPACK_IMPORTED_MODULE_3__["Observable"])); + +Surface.create = function(element, options) { + return _surface_factory__WEBPACK_IMPORTED_MODULE_2__["default"].current.create(element, options); +}; + +Surface.support = {}; + + __webpack_exports__["default"] = (Surface); + + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/drawing.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _shapes__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/shapes.js"); + __webpack_require__.d(__webpack_exports__, "Element", function() { return _shapes__WEBPACK_IMPORTED_MODULE_0__["Element"]; }); + + __webpack_require__.d(__webpack_exports__, "Circle", function() { return _shapes__WEBPACK_IMPORTED_MODULE_0__["Circle"]; }); + + __webpack_require__.d(__webpack_exports__, "Arc", function() { return _shapes__WEBPACK_IMPORTED_MODULE_0__["Arc"]; }); + + __webpack_require__.d(__webpack_exports__, "Path", function() { return _shapes__WEBPACK_IMPORTED_MODULE_0__["Path"]; }); + + __webpack_require__.d(__webpack_exports__, "MultiPath", function() { return _shapes__WEBPACK_IMPORTED_MODULE_0__["MultiPath"]; }); + + __webpack_require__.d(__webpack_exports__, "Text", function() { return _shapes__WEBPACK_IMPORTED_MODULE_0__["Text"]; }); + + __webpack_require__.d(__webpack_exports__, "Image", function() { return _shapes__WEBPACK_IMPORTED_MODULE_0__["Image"]; }); + + __webpack_require__.d(__webpack_exports__, "Group", function() { return _shapes__WEBPACK_IMPORTED_MODULE_0__["Group"]; }); + + __webpack_require__.d(__webpack_exports__, "Layout", function() { return _shapes__WEBPACK_IMPORTED_MODULE_0__["Layout"]; }); + + __webpack_require__.d(__webpack_exports__, "Rect", function() { return _shapes__WEBPACK_IMPORTED_MODULE_0__["Rect"]; }); + + var _alignment__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/alignment.js"); + __webpack_require__.d(__webpack_exports__, "align", function() { return _alignment__WEBPACK_IMPORTED_MODULE_1__["align"]; }); + + __webpack_require__.d(__webpack_exports__, "vAlign", function() { return _alignment__WEBPACK_IMPORTED_MODULE_1__["vAlign"]; }); + + __webpack_require__.d(__webpack_exports__, "stack", function() { return _alignment__WEBPACK_IMPORTED_MODULE_1__["stack"]; }); + + __webpack_require__.d(__webpack_exports__, "vStack", function() { return _alignment__WEBPACK_IMPORTED_MODULE_1__["vStack"]; }); + + __webpack_require__.d(__webpack_exports__, "wrap", function() { return _alignment__WEBPACK_IMPORTED_MODULE_1__["wrap"]; }); + + __webpack_require__.d(__webpack_exports__, "vWrap", function() { return _alignment__WEBPACK_IMPORTED_MODULE_1__["vWrap"]; }); + + __webpack_require__.d(__webpack_exports__, "fit", function() { return _alignment__WEBPACK_IMPORTED_MODULE_1__["fit"]; }); + + var _gradients__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/gradients.js"); + __webpack_require__.d(__webpack_exports__, "LinearGradient", function() { return _gradients__WEBPACK_IMPORTED_MODULE_2__["LinearGradient"]; }); + + __webpack_require__.d(__webpack_exports__, "RadialGradient", function() { return _gradients__WEBPACK_IMPORTED_MODULE_2__["RadialGradient"]; }); + + __webpack_require__.d(__webpack_exports__, "GradientStop", function() { return _gradients__WEBPACK_IMPORTED_MODULE_2__["GradientStop"]; }); + + __webpack_require__.d(__webpack_exports__, "Gradient", function() { return _gradients__WEBPACK_IMPORTED_MODULE_2__["Gradient"]; }); + + var _animations__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/animations.js"); + __webpack_require__.d(__webpack_exports__, "Animation", function() { return _animations__WEBPACK_IMPORTED_MODULE_3__["Animation"]; }); + + __webpack_require__.d(__webpack_exports__, "AnimationFactory", function() { return _animations__WEBPACK_IMPORTED_MODULE_3__["AnimationFactory"]; }); + + var _parsing_path_parser__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/parsing/path-parser.js"); + __webpack_require__.d(__webpack_exports__, "PathParser", function() { return _parsing_path_parser__WEBPACK_IMPORTED_MODULE_4__["default"]; }); + + var _core_surface__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/core/surface.js"); + __webpack_require__.d(__webpack_exports__, "Surface", function() { return _core_surface__WEBPACK_IMPORTED_MODULE_5__["default"]; }); + + var _core_base_node__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/core/base-node.js"); + __webpack_require__.d(__webpack_exports__, "BaseNode", function() { return _core_base_node__WEBPACK_IMPORTED_MODULE_6__["default"]; }); + + var _core_surface_factory__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/core/surface-factory.js"); + __webpack_require__.d(__webpack_exports__, "SurfaceFactory", function() { return _core_surface_factory__WEBPACK_IMPORTED_MODULE_7__["default"]; }); + + var _core_options_store__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/core/options-store.js"); + __webpack_require__.d(__webpack_exports__, "OptionsStore", function() { return _core_options_store__WEBPACK_IMPORTED_MODULE_8__["default"]; }); + + var _svg__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/svg.js"); + __webpack_require__.d(__webpack_exports__, "svg", function() { return _svg__WEBPACK_IMPORTED_MODULE_9__; }); + var _canvas__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/canvas.js"); + __webpack_require__.d(__webpack_exports__, "canvas", function() { return _canvas__WEBPACK_IMPORTED_MODULE_10__; }); + var _util__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/util.js"); + __webpack_require__.d(__webpack_exports__, "util", function() { return _util__WEBPACK_IMPORTED_MODULE_11__; }); + var _canvas_export_image__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/canvas/export-image.js"); + __webpack_require__.d(__webpack_exports__, "exportImage", function() { return _canvas_export_image__WEBPACK_IMPORTED_MODULE_12__["default"]; }); + + var _svg_export_svg__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/svg/export-svg.js"); + __webpack_require__.d(__webpack_exports__, "exportSVG", function() { return _svg_export_svg__WEBPACK_IMPORTED_MODULE_13__["default"]; }); + + var _search_quad_node__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/search/quad-node.js"); + __webpack_require__.d(__webpack_exports__, "QuadNode", function() { return _search_quad_node__WEBPACK_IMPORTED_MODULE_14__["default"]; }); + + var _search_shapes_quad_tree__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/search/shapes-quad-tree.js"); + __webpack_require__.d(__webpack_exports__, "ShapesQuadTree", function() { return _search_shapes_quad_tree__WEBPACK_IMPORTED_MODULE_15__["default"]; }); + + var _mixins_observers_mixin__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/mixins/observers-mixin.js"); + __webpack_require__.d(__webpack_exports__, "ObserversMixin", function() { return _mixins_observers_mixin__WEBPACK_IMPORTED_MODULE_16__["default"]; }); + + + + + + + + + + + + + + + + + + + + + + + + + + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/geometry.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _geometry_circle__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/circle.js"); + __webpack_require__.d(__webpack_exports__, "Circle", function() { return _geometry_circle__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + + var _geometry_arc__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/arc.js"); + __webpack_require__.d(__webpack_exports__, "Arc", function() { return _geometry_arc__WEBPACK_IMPORTED_MODULE_1__["default"]; }); + + var _geometry_rect__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/rect.js"); + __webpack_require__.d(__webpack_exports__, "Rect", function() { return _geometry_rect__WEBPACK_IMPORTED_MODULE_2__["default"]; }); + + var _geometry_point__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/point.js"); + __webpack_require__.d(__webpack_exports__, "Point", function() { return _geometry_point__WEBPACK_IMPORTED_MODULE_3__["default"]; }); + + var _geometry_segment__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/segment.js"); + __webpack_require__.d(__webpack_exports__, "Segment", function() { return _geometry_segment__WEBPACK_IMPORTED_MODULE_4__["default"]; }); + + var _geometry_matrix__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/matrix.js"); + __webpack_require__.d(__webpack_exports__, "Matrix", function() { return _geometry_matrix__WEBPACK_IMPORTED_MODULE_5__["default"]; }); + + var _geometry_size__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/size.js"); + __webpack_require__.d(__webpack_exports__, "Size", function() { return _geometry_size__WEBPACK_IMPORTED_MODULE_6__["default"]; }); + + var _geometry_to_matrix__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/to-matrix.js"); + __webpack_require__.d(__webpack_exports__, "toMatrix", function() { return _geometry_to_matrix__WEBPACK_IMPORTED_MODULE_7__["default"]; }); + + var _geometry_transformation__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/transformation.js"); + __webpack_require__.d(__webpack_exports__, "Transformation", function() { return _geometry_transformation__WEBPACK_IMPORTED_MODULE_8__["default"]; }); + + var _geometry_transform__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/transform.js"); + __webpack_require__.d(__webpack_exports__, "transform", function() { return _geometry_transform__WEBPACK_IMPORTED_MODULE_9__["default"]; }); + + + + + + + + + + + + + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/geometry/arc.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _accessors_define_accessors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/accessors/define-accessors.js"); + var _mixins_observers_mixin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/mixins/observers-mixin.js"); + var _common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/common.js"); + var _util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/util.js"); + var _math_close_or_less__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/math/close-or-less.js"); + var _math_line_intersection__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/math/line-intersection.js"); + var _math_ellipse_extreme_angles__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/math/ellipse-extreme-angles.js"); + var _constants__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/constants.js"); + var _point__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/point.js"); + var _rect__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/rect.js"); + var _transform__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/transform.js"); + + + + + + + + + + + + + + +var MAX_INTERVAL = 45; +var pow = Math.pow; + +var Arc = (function (Class) { + function Arc(center, options) { + if ( center === void 0 ) center = new _point__WEBPACK_IMPORTED_MODULE_8__["default"](); + if ( options === void 0 ) options = {}; + + Class.call(this); + + this.setCenter(center); + + this.radiusX = options.radiusX; + this.radiusY = options.radiusY || options.radiusX; + this.startAngle = options.startAngle; + this.endAngle = options.endAngle; + this.anticlockwise = options.anticlockwise || false; + this.xRotation = options.xRotation; + } + + if ( Class ) Arc.__proto__ = Class; + Arc.prototype = Object.create( Class && Class.prototype ); + Arc.prototype.constructor = Arc; + + Arc.prototype.clone = function clone () { + return new Arc(this.center, { + radiusX: this.radiusX, + radiusY: this.radiusY, + startAngle: this.startAngle, + endAngle: this.endAngle, + anticlockwise: this.anticlockwise + }); + }; + + Arc.prototype.setCenter = function setCenter (value) { + this._observerField("center", _point__WEBPACK_IMPORTED_MODULE_8__["default"].create(value)); + this.geometryChange(); + return this; + }; + + Arc.prototype.getCenter = function getCenter () { + return this.center; + }; + + Arc.prototype.pointAt = function pointAt (angle) { + var center = this.center; + var radian = Object(_util__WEBPACK_IMPORTED_MODULE_3__["rad"])(angle); + + return new _point__WEBPACK_IMPORTED_MODULE_8__["default"]( + center.x + this.radiusX * Math.cos(radian), + center.y + this.radiusY * Math.sin(radian) + ); + }; + + Arc.prototype.curvePoints = function curvePoints () { + var this$1 = this; + + var startAngle = this.startAngle; + var dir = this.anticlockwise ? -1 : 1; + var curvePoints = [ this.pointAt(startAngle) ]; + var interval = this._arcInterval(); + var intervalAngle = interval.endAngle - interval.startAngle; + var subIntervalsCount = Math.ceil(intervalAngle / MAX_INTERVAL); + var subIntervalAngle = intervalAngle / subIntervalsCount; + var currentAngle = startAngle; + var transformation; + if (this.xRotation) { + transformation = Object(_transform__WEBPACK_IMPORTED_MODULE_10__["default"])().rotate(this.xRotation, this.center); + } + + for (var i = 1; i <= subIntervalsCount; i++) { + var nextAngle = currentAngle + dir * subIntervalAngle; + var points = this$1._intervalCurvePoints(currentAngle, nextAngle, transformation); + + curvePoints.push(points.cp1, points.cp2, points.p2); + currentAngle = nextAngle; + } + + return curvePoints; + }; + + Arc.prototype.bbox = function bbox (matrix) { + var this$1 = this; + + var interval = this._arcInterval(); + var startAngle = interval.startAngle; + var endAngle = interval.endAngle; + var extremeAngles = Object(_math_ellipse_extreme_angles__WEBPACK_IMPORTED_MODULE_6__["default"])(this.center, this.radiusX, this.radiusY, matrix); + var extremeX = Object(_util__WEBPACK_IMPORTED_MODULE_3__["deg"])(extremeAngles.x); + var extremeY = Object(_util__WEBPACK_IMPORTED_MODULE_3__["deg"])(extremeAngles.y); + var endPoint = this.pointAt(endAngle).transformCopy(matrix); + var currentAngleX = bboxStartAngle(extremeX, startAngle); + var currentAngleY = bboxStartAngle(extremeY, startAngle); + var currentPoint = this.pointAt(startAngle).transformCopy(matrix); + var minPoint = _point__WEBPACK_IMPORTED_MODULE_8__["default"].min(currentPoint, endPoint); + var maxPoint = _point__WEBPACK_IMPORTED_MODULE_8__["default"].max(currentPoint, endPoint); + + while (currentAngleX < endAngle || currentAngleY < endAngle) { + var currentPointX = (void 0); + if (currentAngleX < endAngle) { + currentPointX = this$1.pointAt(currentAngleX).transformCopy(matrix); + currentAngleX += 90; + } + + var currentPointY = (void 0); + if (currentAngleY < endAngle) { + currentPointY = this$1.pointAt(currentAngleY).transformCopy(matrix); + currentAngleY += 90; + } + + currentPoint = new _point__WEBPACK_IMPORTED_MODULE_8__["default"](currentPointX.x, currentPointY.y); + minPoint = _point__WEBPACK_IMPORTED_MODULE_8__["default"].min(minPoint, currentPoint); + maxPoint = _point__WEBPACK_IMPORTED_MODULE_8__["default"].max(maxPoint, currentPoint); + } + + return _rect__WEBPACK_IMPORTED_MODULE_9__["default"].fromPoints(minPoint, maxPoint); + }; + + Arc.prototype._arcInterval = function _arcInterval () { + var ref = this; + var startAngle = ref.startAngle; + var endAngle = ref.endAngle; + var anticlockwise = ref.anticlockwise; + + if (anticlockwise) { + var oldStart = startAngle; + startAngle = endAngle; + endAngle = oldStart; + } + + if (startAngle > endAngle || (anticlockwise && startAngle === endAngle)) { + endAngle += 360; + } + + return { + startAngle: startAngle, + endAngle: endAngle + }; + }; + + Arc.prototype._intervalCurvePoints = function _intervalCurvePoints (startAngle, endAngle, transformation) { + var p1 = this.pointAt(startAngle); + var p2 = this.pointAt(endAngle); + var p1Derivative = this._derivativeAt(startAngle); + var p2Derivative = this._derivativeAt(endAngle); + var t = (Object(_util__WEBPACK_IMPORTED_MODULE_3__["rad"])(endAngle) - Object(_util__WEBPACK_IMPORTED_MODULE_3__["rad"])(startAngle)) / 3; + var cp1 = new _point__WEBPACK_IMPORTED_MODULE_8__["default"](p1.x + t * p1Derivative.x, p1.y + t * p1Derivative.y); + var cp2 = new _point__WEBPACK_IMPORTED_MODULE_8__["default"](p2.x - t * p2Derivative.x, p2.y - t * p2Derivative.y); + if (transformation) { + p1.transform(transformation); + p2.transform(transformation); + cp1.transform(transformation); + cp2.transform(transformation); + } + + return { + p1: p1, + cp1: cp1, + cp2: cp2, + p2: p2 + }; + }; + + Arc.prototype._derivativeAt = function _derivativeAt (angle) { + var radian = Object(_util__WEBPACK_IMPORTED_MODULE_3__["rad"])(angle); + + return new _point__WEBPACK_IMPORTED_MODULE_8__["default"](-this.radiusX * Math.sin(radian), this.radiusY * Math.cos(radian)); + }; + + Arc.prototype.containsPoint = function containsPoint (point) { + var interval = this._arcInterval(); + var intervalAngle = interval.endAngle - interval.startAngle; + var ref = this; + var center = ref.center; + var radiusX = ref.radiusX; + var radiusY = ref.radiusY; + var distance = center.distanceTo(point); + var angleRad = Math.atan2(point.y - center.y, point.x - center.x); + var pointRadius = (radiusX * radiusY) / + Math.sqrt(pow(radiusX, 2) * pow(Math.sin(angleRad), 2) + pow(radiusY, 2) * pow(Math.cos(angleRad), 2)); + var startPoint = this.pointAt(this.startAngle).round(_constants__WEBPACK_IMPORTED_MODULE_7__["PRECISION"]); + var endPoint = this.pointAt(this.endAngle).round(_constants__WEBPACK_IMPORTED_MODULE_7__["PRECISION"]); + var intersection = Object(_math_line_intersection__WEBPACK_IMPORTED_MODULE_5__["default"])(center, point.round(_constants__WEBPACK_IMPORTED_MODULE_7__["PRECISION"]), startPoint, endPoint); + var containsPoint; + + if (intervalAngle < 180) { + containsPoint = intersection && Object(_math_close_or_less__WEBPACK_IMPORTED_MODULE_4__["default"])(center.distanceTo(intersection), distance) && Object(_math_close_or_less__WEBPACK_IMPORTED_MODULE_4__["default"])(distance, pointRadius); + } else { + var angle = calculateAngle(center.x, center.y, radiusX, radiusY, point.x, point.y); + if (angle !== 360) { + angle = (360 + angle) % 360; + } + + var inAngleRange = interval.startAngle <= angle && angle <= interval.endAngle; + containsPoint = (inAngleRange && Object(_math_close_or_less__WEBPACK_IMPORTED_MODULE_4__["default"])(distance, pointRadius)) || (!inAngleRange && (!intersection || intersection.equals(point))); + } + return containsPoint; + }; + + Arc.prototype._isOnPath = function _isOnPath (point, width) { + var interval = this._arcInterval(); + var center = this.center; + var angle = calculateAngle(center.x, center.y, this.radiusX, this.radiusY, point.x, point.y); + if (angle !== 360) { + angle = (360 + angle) % 360; + } + + var inAngleRange = interval.startAngle <= angle && angle <= interval.endAngle; + + return inAngleRange && this.pointAt(angle).distanceTo(point) <= width; + }; + + Arc.fromPoints = function fromPoints (start, end, rx, ry, largeArc, swipe, rotation) {// eslint-disable-line max-params + var arcParameters = normalizeArcParameters({ + x1: start.x, + y1: start.y, + x2: end.x, + y2: end.y, + rx: rx, + ry: ry, + largeArc: largeArc, + swipe: swipe, + rotation: rotation + }); + + return new Arc(arcParameters.center, { + startAngle: arcParameters.startAngle, + endAngle: arcParameters.endAngle, + radiusX: arcParameters.radiusX, + radiusY: arcParameters.radiusY, + xRotation: arcParameters.xRotation, + anticlockwise: swipe === 0 + }); + }; + + return Arc; +}(_common__WEBPACK_IMPORTED_MODULE_2__["Class"])); + +Object(_accessors_define_accessors__WEBPACK_IMPORTED_MODULE_0__["default"])(Arc.prototype, [ "radiusX", "radiusY", "startAngle", "endAngle", "anticlockwise" ]); +_mixins_observers_mixin__WEBPACK_IMPORTED_MODULE_1__["default"].extend(Arc.prototype); + +function calculateAngle(cx, cy, rx, ry, x, y) { + var cos = Object(_util__WEBPACK_IMPORTED_MODULE_3__["round"])((x - cx) / rx, 3); + var sin = Object(_util__WEBPACK_IMPORTED_MODULE_3__["round"])((y - cy) / ry, 3); + + return Object(_util__WEBPACK_IMPORTED_MODULE_3__["round"])(Object(_util__WEBPACK_IMPORTED_MODULE_3__["deg"])(Math.atan2(sin, cos))); +} + +function normalizeArcParameters(parameters) { + var x1 = parameters.x1; + var y1 = parameters.y1; + var x2 = parameters.x2; + var y2 = parameters.y2; + var rx = parameters.rx; + var ry = parameters.ry; + var largeArc = parameters.largeArc; + var swipe = parameters.swipe; + var rotation = parameters.rotation; if ( rotation === void 0 ) rotation = 0; + + var radians = Object(_util__WEBPACK_IMPORTED_MODULE_3__["rad"])(rotation); + var cosine = Math.cos(radians); + var sine = Math.sin(radians); + + var xT = cosine * (x1 - x2) / 2 + sine * (y1 - y2) / 2; + var yT = -sine * (x1 - x2) / 2 + cosine * (y1 - y2) / 2; + + var sign = largeArc !== swipe ? 1 : -1; + + var xt2 = Math.pow(xT, 2); + var yt2 = Math.pow(yT, 2); + var rx2 = Math.pow(rx, 2); + var ry2 = Math.pow(ry, 2); + + var delta = xt2 / rx2 + yt2 / ry2; + + if (delta > 1) { + delta = Math.sqrt(xt2 / rx2 + yt2 / ry2); + rx = delta * rx; + rx2 = Math.pow(rx, 2); + + ry = delta * ry; + ry2 = Math.pow(ry, 2); + } + + var constT = sign * Math.sqrt((rx2 * ry2 - rx2 * yt2 - ry2 * xt2) / (rx2 * yt2 + ry2 * xt2)); + // due to rounding errors the value could become NaN even after radii correction + if (isNaN(constT)) { + constT = 0; + } + + var cxT = constT * (rx * yT) / ry; + var cyT = - constT * (ry * xT) / rx; + + var cx = cosine * cxT - sine * cyT + (x1 + x2) / 2; + var cy = sine * cxT + cosine * cyT + (y1 + y2) / 2; + + + var uX = (xT - cxT) / rx; + var uY = (yT - cyT) / ry; + var vX = -(xT + cxT) / rx; + var vY = -(yT + cyT) / ry; + + var startAngle = (uY >= 0 ? 1 : -1) * Object(_util__WEBPACK_IMPORTED_MODULE_3__["deg"])(Math.acos(uX / Math.sqrt(uX * uX + uY * uY))); + + var angleCosine = Object(_util__WEBPACK_IMPORTED_MODULE_3__["round"])((uX * vX + uY * vY) / (Math.sqrt(uX * uX + uY * uY) * Math.sqrt(vX * vX + vY * vY)), 10); + var angle = (uX * vY - uY * vX >= 0 ? 1 : -1) * Object(_util__WEBPACK_IMPORTED_MODULE_3__["deg"])(Math.acos(angleCosine)); + + if (!swipe && angle > 0) { + angle -= 360; + } + + if (swipe && angle < 0) { + angle += 360; + } + var endAngle = startAngle + angle; + var signEndAngle = endAngle >= 0 ? 1 : -1; + endAngle = (Math.abs(endAngle) % 360) * signEndAngle; + + return { + center: new _point__WEBPACK_IMPORTED_MODULE_8__["default"](cx, cy), + startAngle: startAngle, + endAngle: endAngle, + radiusX: rx, + radiusY: ry, + xRotation: rotation + }; +} + +function bboxStartAngle(angle, start) { + var startAngle = angle; + + while (startAngle < start) { + startAngle += 90; + } + + return startAngle; +} + + __webpack_exports__["default"] = (Arc); + + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/geometry/circle.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _accessors_define_accessors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/accessors/define-accessors.js"); + var _mixins_observers_mixin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/mixins/observers-mixin.js"); + var _point__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/point.js"); + var _rect__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/rect.js"); + var _math_ellipse_extreme_angles__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/math/ellipse-extreme-angles.js"); + var _common__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/common.js"); + var _util__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/util.js"); + + + + + + + + +var PI_DIV_2 = Math.PI / 2; + +var Circle = (function (Class) { + function Circle(center, radius) { + if ( center === void 0 ) center = new _point__WEBPACK_IMPORTED_MODULE_2__["default"](); + if ( radius === void 0 ) radius = 0; + + Class.call(this); + + this.setCenter(center); + this.setRadius(radius); + } + + if ( Class ) Circle.__proto__ = Class; + Circle.prototype = Object.create( Class && Class.prototype ); + Circle.prototype.constructor = Circle; + + Circle.prototype.setCenter = function setCenter (value) { + this._observerField("center", _point__WEBPACK_IMPORTED_MODULE_2__["default"].create(value)); + this.geometryChange(); + return this; + }; + + Circle.prototype.getCenter = function getCenter () { + return this.center; + }; + + Circle.prototype.equals = function equals (other) { + return other && + other.center.equals(this.center) && + other.radius === this.radius; + }; + + Circle.prototype.clone = function clone () { + return new Circle(this.center.clone(), this.radius); + }; + + Circle.prototype.pointAt = function pointAt (angle) { + return this._pointAt(Object(_util__WEBPACK_IMPORTED_MODULE_6__["rad"])(angle)); + }; + + Circle.prototype.bbox = function bbox (matrix) { + var this$1 = this; + + var extremeAngles = Object(_math_ellipse_extreme_angles__WEBPACK_IMPORTED_MODULE_4__["default"])(this.center, this.radius, this.radius, matrix); + var minPoint = _point__WEBPACK_IMPORTED_MODULE_2__["default"].maxPoint(); + var maxPoint = _point__WEBPACK_IMPORTED_MODULE_2__["default"].minPoint(); + + for (var i = 0; i < 4; i++) { + var currentPointX = this$1._pointAt(extremeAngles.x + i * PI_DIV_2).transformCopy(matrix); + var currentPointY = this$1._pointAt(extremeAngles.y + i * PI_DIV_2).transformCopy(matrix); + var currentPoint = new _point__WEBPACK_IMPORTED_MODULE_2__["default"](currentPointX.x, currentPointY.y); + + minPoint = _point__WEBPACK_IMPORTED_MODULE_2__["default"].min(minPoint, currentPoint); + maxPoint = _point__WEBPACK_IMPORTED_MODULE_2__["default"].max(maxPoint, currentPoint); + } + + return _rect__WEBPACK_IMPORTED_MODULE_3__["default"].fromPoints(minPoint, maxPoint); + }; + + Circle.prototype._pointAt = function _pointAt (angle) { + var ref = this; + var center = ref.center; + var radius = ref.radius; + + return new _point__WEBPACK_IMPORTED_MODULE_2__["default"]( + center.x + radius * Math.cos(angle), + center.y + radius * Math.sin(angle) + ); + }; + + Circle.prototype.containsPoint = function containsPoint (point) { + var ref = this; + var center = ref.center; + var radius = ref.radius; + var inCircle = Math.pow(point.x - center.x, 2) + + Math.pow(point.y - center.y, 2) <= Math.pow(radius, 2); + return inCircle; + }; + + Circle.prototype._isOnPath = function _isOnPath (point, width) { + var ref = this; + var center = ref.center; + var radius = ref.radius; + var pointDistance = center.distanceTo(point); + + return radius - width <= pointDistance && pointDistance <= radius + width; + }; + + return Circle; +}(_common__WEBPACK_IMPORTED_MODULE_5__["Class"])); + +Object(_accessors_define_accessors__WEBPACK_IMPORTED_MODULE_0__["default"])(Circle.prototype, [ "radius" ]); +_mixins_observers_mixin__WEBPACK_IMPORTED_MODULE_1__["default"].extend(Circle.prototype); + + __webpack_exports__["default"] = (Circle); + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/geometry/constants.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "PRECISION", function() { return PRECISION; }); +var PRECISION = 10; + + + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/geometry/math/calculate-curve-at.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return calculateCurveAt; }); +function calculateCurveAt(t, field, points) { + var t1 = 1 - t; + return Math.pow(t1, 3) * points[0][field] + + 3 * Math.pow(t1, 2) * t * points[1][field] + + 3 * Math.pow(t, 2) * t1 * points[2][field] + + Math.pow(t, 3) * points[3][field]; +} + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/geometry/math/close-or-less.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return closeOrLess; }); + var _close__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/math/close.js"); + + +function closeOrLess(a, b, tolerance) { + return a < b || Object(_close__WEBPACK_IMPORTED_MODULE_0__["default"])(a, b, tolerance); +} + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/geometry/math/close.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return close; }); + var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/constants.js"); + var _util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/util.js"); + + + + +function close(a, b, tolerance) { + if ( tolerance === void 0 ) tolerance = _constants__WEBPACK_IMPORTED_MODULE_0__["PRECISION"]; + + return Object(_util__WEBPACK_IMPORTED_MODULE_1__["round"])(Math.abs(a - b), tolerance) === 0; +} + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/geometry/math/complex-number.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/common.js"); + var _util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/util.js"); + + + + +var ComplexNumber = (function (Class) { + function ComplexNumber(real, img) { + if ( real === void 0 ) real = 0; + if ( img === void 0 ) img = 0; + + Class.call(this); + + this.real = real; + this.img = img; + } + + if ( Class ) ComplexNumber.__proto__ = Class; + ComplexNumber.prototype = Object.create( Class && Class.prototype ); + ComplexNumber.prototype.constructor = ComplexNumber; + + ComplexNumber.prototype.add = function add (cNumber) { + return new ComplexNumber(Object(_util__WEBPACK_IMPORTED_MODULE_2__["round"])(this.real + cNumber.real, _constants__WEBPACK_IMPORTED_MODULE_0__["PRECISION"]), Object(_util__WEBPACK_IMPORTED_MODULE_2__["round"])(this.img + cNumber.img, _constants__WEBPACK_IMPORTED_MODULE_0__["PRECISION"])); + }; + + ComplexNumber.prototype.addConstant = function addConstant (value) { + return new ComplexNumber(this.real + value, this.img); + }; + + ComplexNumber.prototype.negate = function negate () { + return new ComplexNumber(-this.real, -this.img); + }; + + ComplexNumber.prototype.multiply = function multiply (cNumber) { + return new ComplexNumber(this.real * cNumber.real - this.img * cNumber.img, + this.real * cNumber.img + this.img * cNumber.real); + }; + + ComplexNumber.prototype.multiplyConstant = function multiplyConstant (value) { + return new ComplexNumber(this.real * value, this.img * value); + }; + + ComplexNumber.prototype.nthRoot = function nthRoot (n) { + var rad = Math.atan2(this.img, this.real); + var r = Math.sqrt(Math.pow(this.img, 2) + Math.pow(this.real, 2)); + var nthR = Math.pow(r, 1 / n); + + return new ComplexNumber(nthR * Math.cos(rad / n), nthR * Math.sin(rad / n)); //Moivre's formula + }; + + ComplexNumber.prototype.equals = function equals (cNumber) { + return this.real === cNumber.real && this.img === cNumber.img; + }; + + ComplexNumber.prototype.isReal = function isReal () { + return this.img === 0; + }; + + return ComplexNumber; +}(_common__WEBPACK_IMPORTED_MODULE_1__["Class"])); + + __webpack_exports__["default"] = (ComplexNumber); + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/geometry/math/curve-intersections-count.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return curveIntersectionsCount; }); + var _to_cubic_polynomial__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/math/to-cubic-polynomial.js"); + var _solve_cubic_equation__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/math/solve-cubic-equation.js"); + var _calculate_curve_at__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/math/calculate-curve-at.js"); + var _close__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/math/close.js"); + + + + + +function curveIntersectionsCount(points, point, bbox) { + var polynomial = Object(_to_cubic_polynomial__WEBPACK_IMPORTED_MODULE_0__["default"])(points, "x"); + var roots = Object(_solve_cubic_equation__WEBPACK_IMPORTED_MODULE_1__["default"])(polynomial[0], polynomial[1], polynomial[2], polynomial[3] - point.x); + var rayIntersection, intersectsRay; + var count = 0; + for (var i = 0; i < roots.length; i++) { + rayIntersection = Object(_calculate_curve_at__WEBPACK_IMPORTED_MODULE_2__["default"])(roots[i], "y", points); + intersectsRay = Object(_close__WEBPACK_IMPORTED_MODULE_3__["default"])(rayIntersection, point.y) || rayIntersection > point.y; + if (intersectsRay && (((roots[i] === 0 || roots[i] === 1) && bbox.bottomRight().x > point.x) || (0 < roots[i] && roots[i] < 1))) { + count++; + } + } + + return count; +} + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/geometry/math/ellipse-extreme-angles.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return ellipseExtremeAngles; }); +function ellipseExtremeAngles(center, rx, ry, matrix) { + var extremeX = 0; + var extremeY = 0; + + if (matrix) { + extremeX = Math.atan2(matrix.c * ry, matrix.a * rx); + if (matrix.b !== 0) { + extremeY = Math.atan2(matrix.d * ry, matrix.b * rx); + } + } + + return { + x: extremeX, + y: extremeY + }; +} + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/geometry/math/has-roots-in-range.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return hasRootsInRange; }); + var _to_cubic_polynomial__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/math/to-cubic-polynomial.js"); + var _solve_cubic_equation__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/math/solve-cubic-equation.js"); + var _calculate_curve_at__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/math/calculate-curve-at.js"); + + + + +function hasRootsInRange(points, point, field, rootField, range) { + var polynomial = Object(_to_cubic_polynomial__WEBPACK_IMPORTED_MODULE_0__["default"])(points, rootField); + var roots = Object(_solve_cubic_equation__WEBPACK_IMPORTED_MODULE_1__["default"])(polynomial[0], polynomial[1], polynomial[2], polynomial[3] - point[rootField]); + var intersection; + + for (var idx = 0; idx < roots.length; idx++) { + if (0 <= roots[idx] && roots[idx] <= 1) { + intersection = Object(_calculate_curve_at__WEBPACK_IMPORTED_MODULE_2__["default"])(roots[idx], field, points); + if (Math.abs(intersection - point[field]) <= range) { + return true; + } + } + } +} + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/geometry/math/is-out-of-end-point.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return isOutOfEndPoint; }); + var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/util.js"); + var _transform__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/transform.js"); + + + +function isOutOfEndPoint(endPoint, controlPoint, point) { + var angle = Object(_util__WEBPACK_IMPORTED_MODULE_0__["deg"])(Math.atan2(controlPoint.y - endPoint.y, controlPoint.x - endPoint.x)); + var rotatedPoint = point.transformCopy(Object(_transform__WEBPACK_IMPORTED_MODULE_1__["default"])().rotate(-angle, endPoint)); + + return rotatedPoint.x < endPoint.x; +} + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/geometry/math/line-intersection.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return lineIntersection; }); + var _point__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/point.js"); + + +function lineIntersection(p0, p1, p2, p3) { + var s1x = p1.x - p0.x; + var s2x = p3.x - p2.x; + var s1y = p1.y - p0.y; + var s2y = p3.y - p2.y; + var nx = p0.x - p2.x; + var ny = p0.y - p2.y; + var d = s1x * s2y - s2x * s1y; + var s = (s1x * ny - s1y * nx) / d; + var t = (s2x * ny - s2y * nx) / d; + + if (s >= 0 && s <= 1 && t >= 0 && t <= 1) { + return new _point__WEBPACK_IMPORTED_MODULE_0__["default"](p0.x + t * s1x, p0.y + t * s1y); + } +} + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/geometry/math/line-intersections-count.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return lineIntersectionsCount; }); +function lineIntersectionsCount(a, b, point) { + var intersects; + if (a.x !== b.x) { + var minX = Math.min(a.x, b.x); + var maxX = Math.max(a.x, b.x); + var minY = Math.min(a.y, b.y); + var maxY = Math.max(a.y, b.y); + var inRange = minX <= point.x && point.x < maxX; + + if (minY === maxY) { + intersects = point.y <= minY && inRange; + } else { + intersects = inRange && (((maxY - minY) * ((a.x - b.x) * (a.y - b.y) > 0 ? point.x - minX : maxX - point.x)) / (maxX - minX) + minY - point.y) >= 0; + } + } + + return intersects ? 1 : 0; +} + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/geometry/math/solve-cubic-equation.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return solveCubicEquation; }); + var _complex_number__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/math/complex-number.js"); + var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/constants.js"); + var _util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/util.js"); + + + + +function numberSign(x) { + return x < 0 ? -1 : 1; +} + +function solveQuadraticEquation(a, b, c) { + var squareRoot = Math.sqrt(Math.pow(b, 2) - 4 * a * c); + return [ + (-b + squareRoot) / (2 * a), + (-b - squareRoot) / (2 * a) + ]; +} + +//Cardano's formula +function solveCubicEquation(a, b, c, d) { + if (a === 0) { + return solveQuadraticEquation(b, c, d); + } + + var p = (3 * a * c - Math.pow(b, 2)) / (3 * Math.pow(a, 2)); + var q = (2 * Math.pow(b, 3) - 9 * a * b * c + 27 * Math.pow(a, 2) * d) / (27 * Math.pow(a, 3)); + var Q = Math.pow(p / 3, 3) + Math.pow(q / 2, 2); + var i = new _complex_number__WEBPACK_IMPORTED_MODULE_0__["default"](0,1); + var b3a = -b / (3 * a); + var x1, x2, y1, y2, y3, z1, z2; + + if (Q < 0) { + x1 = new _complex_number__WEBPACK_IMPORTED_MODULE_0__["default"](-q / 2, Math.sqrt(-Q)).nthRoot(3); + x2 = new _complex_number__WEBPACK_IMPORTED_MODULE_0__["default"](-q / 2, - Math.sqrt(-Q)).nthRoot(3); + } else { + x1 = -q / 2 + Math.sqrt(Q); + x1 = new _complex_number__WEBPACK_IMPORTED_MODULE_0__["default"](numberSign(x1) * Math.pow(Math.abs(x1), 1 / 3)); + x2 = -q / 2 - Math.sqrt(Q); + x2 = new _complex_number__WEBPACK_IMPORTED_MODULE_0__["default"](numberSign(x2) * Math.pow(Math.abs(x2), 1 / 3)); + } + + y1 = x1.add(x2); + + z1 = x1.add(x2).multiplyConstant(-1 / 2); + z2 = x1.add(x2.negate()).multiplyConstant(Math.sqrt(3) / 2); + + y2 = z1.add(i.multiply(z2)); + y3 = z1.add(i.negate().multiply(z2)); + + var result = []; + + if (y1.isReal()) { + result.push(Object(_util__WEBPACK_IMPORTED_MODULE_2__["round"])(y1.real + b3a, _constants__WEBPACK_IMPORTED_MODULE_1__["PRECISION"])); + } + if (y2.isReal()) { + result.push(Object(_util__WEBPACK_IMPORTED_MODULE_2__["round"])(y2.real + b3a, _constants__WEBPACK_IMPORTED_MODULE_1__["PRECISION"])); + } + if (y3.isReal()) { + result.push(Object(_util__WEBPACK_IMPORTED_MODULE_2__["round"])(y3.real + b3a, _constants__WEBPACK_IMPORTED_MODULE_1__["PRECISION"])); + } + + return result; +} + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/geometry/math/to-cubic-polynomial.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return toCubicPolynomial; }); +function toCubicPolynomial(points, field) { + return [ -points[0][field] + 3 * points[1][field] - 3 * points[2][field] + points[3][field], + 3 * (points[0][field] - 2 * points[1][field] + points[2][field]), + 3 * (-points[0][field] + points[1][field]), + points[0][field] + ]; +} + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/geometry/matrix.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/common.js"); + var _util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/util.js"); + + + +var Matrix = (function (Class) { + function Matrix(a, b, c, d, e, f) { + if ( a === void 0 ) a = 0; + if ( b === void 0 ) b = 0; + if ( c === void 0 ) c = 0; + if ( d === void 0 ) d = 0; + if ( e === void 0 ) e = 0; + if ( f === void 0 ) f = 0; + + Class.call(this); + + this.a = a; + this.b = b; + this.c = c; + this.d = d; + this.e = e; + this.f = f; + } + + if ( Class ) Matrix.__proto__ = Class; + Matrix.prototype = Object.create( Class && Class.prototype ); + Matrix.prototype.constructor = Matrix; + + Matrix.prototype.multiplyCopy = function multiplyCopy (matrix) { + return new Matrix( + this.a * matrix.a + this.c * matrix.b, + this.b * matrix.a + this.d * matrix.b, + this.a * matrix.c + this.c * matrix.d, + this.b * matrix.c + this.d * matrix.d, + this.a * matrix.e + this.c * matrix.f + this.e, + this.b * matrix.e + this.d * matrix.f + this.f + ); + }; + + Matrix.prototype.invert = function invert () { + var ref = this; + var a = ref.a; + var b = ref.b; + var d = ref.c; + var e = ref.d; + var g = ref.e; + var h = ref.f; + var det = a * e - b * d; + + if (det === 0) { + return null; + } + + return new Matrix(e / det, -b / det, -d / det, a / det, + (d * h - e * g) / det, (b * g - a * h) / det); + }; + + Matrix.prototype.clone = function clone () { + return new Matrix(this.a, this.b, this.c, this.d, this.e, this.f); + }; + + Matrix.prototype.equals = function equals (other) { + if (!other) { + return false; + } + + return this.a === other.a && this.b === other.b && + this.c === other.c && this.d === other.d && + this.e === other.e && this.f === other.f; + }; + + Matrix.prototype.round = function round$1 (precision) { + this.a = Object(_util__WEBPACK_IMPORTED_MODULE_1__["round"])(this.a, precision); + this.b = Object(_util__WEBPACK_IMPORTED_MODULE_1__["round"])(this.b, precision); + this.c = Object(_util__WEBPACK_IMPORTED_MODULE_1__["round"])(this.c, precision); + this.d = Object(_util__WEBPACK_IMPORTED_MODULE_1__["round"])(this.d, precision); + this.e = Object(_util__WEBPACK_IMPORTED_MODULE_1__["round"])(this.e, precision); + this.f = Object(_util__WEBPACK_IMPORTED_MODULE_1__["round"])(this.f, precision); + + return this; + }; + + Matrix.prototype.toArray = function toArray (precision) { + var result = [ this.a, this.b, this.c, this.d, this.e, this.f ]; + + if (Object(_util__WEBPACK_IMPORTED_MODULE_1__["defined"])(precision)) { + for (var i = 0; i < result.length; i++) { + result[i] = Object(_util__WEBPACK_IMPORTED_MODULE_1__["round"])(result[i], precision); + } + } + + return result; + }; + + Matrix.prototype.toString = function toString (precision, separator) { + if ( separator === void 0 ) separator = ","; + + return this.toArray(precision).join(separator); + }; + + Matrix.translate = function translate (x, y) { + return new Matrix(1, 0, 0, 1, x, y); + }; + + Matrix.unit = function unit () { + return new Matrix(1, 0, 0, 1, 0, 0); + }; + + Matrix.rotate = function rotate (angle, x, y) { + var matrix = new Matrix(); + matrix.a = Math.cos(Object(_util__WEBPACK_IMPORTED_MODULE_1__["rad"])(angle)); + matrix.b = Math.sin(Object(_util__WEBPACK_IMPORTED_MODULE_1__["rad"])(angle)); + matrix.c = -matrix.b; + matrix.d = matrix.a; + matrix.e = (x - x * matrix.a + y * matrix.b) || 0; + matrix.f = (y - y * matrix.a - x * matrix.b) || 0; + + return matrix; + }; + + Matrix.scale = function scale (scaleX, scaleY) { + return new Matrix(scaleX, 0, 0, scaleY, 0, 0); + }; + + return Matrix; +}(_common__WEBPACK_IMPORTED_MODULE_0__["Class"])); + +Matrix.IDENTITY = Matrix.unit(); + + __webpack_exports__["default"] = (Matrix); + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/geometry/point.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _accessors_define_accessors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/accessors/define-accessors.js"); + var _mixins_observers_mixin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/mixins/observers-mixin.js"); + var _common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/common.js"); + var _util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/util.js"); + var _matrix__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/matrix.js"); + var _to_matrix__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/to-matrix.js"); + + + + + + + +var Point = (function (Class) { + function Point(x, y) { + Class.call(this); + + this.x = x || 0; + this.y = y || 0; + } + + if ( Class ) Point.__proto__ = Class; + Point.prototype = Object.create( Class && Class.prototype ); + Point.prototype.constructor = Point; + + var staticAccessors = { ZERO: { configurable: true } }; + + Point.prototype.equals = function equals (other) { + return other && other.x === this.x && other.y === this.y; + }; + + Point.prototype.clone = function clone () { + return new Point(this.x, this.y); + }; + + Point.prototype.rotate = function rotate (angle, origin) { + var originPoint = Point.create(origin) || Point.ZERO; + + return this.transform(_matrix__WEBPACK_IMPORTED_MODULE_4__["default"].rotate(angle, originPoint.x, originPoint.y)); + }; + + Point.prototype.translate = function translate (x, y) { + this.x += x; + this.y += y; + + this.geometryChange(); + + return this; + }; + + Point.prototype.translateWith = function translateWith (point) { + return this.translate(point.x, point.y); + }; + + Point.prototype.move = function move (x, y) { + this.x = this.y = 0; + return this.translate(x, y); + }; + + Point.prototype.scale = function scale (scaleX, scaleY) { + if ( scaleY === void 0 ) scaleY = scaleX; + + this.x *= scaleX; + this.y *= scaleY; + + this.geometryChange(); + + return this; + }; + + Point.prototype.scaleCopy = function scaleCopy (scaleX, scaleY) { + return this.clone().scale(scaleX, scaleY); + }; + + Point.prototype.transform = function transform (transformation) { + var matrix = Object(_to_matrix__WEBPACK_IMPORTED_MODULE_5__["default"])(transformation); + var ref = this; + var x = ref.x; + var y = ref.y; + + this.x = matrix.a * x + matrix.c * y + matrix.e; + this.y = matrix.b * x + matrix.d * y + matrix.f; + + this.geometryChange(); + + return this; + }; + + Point.prototype.transformCopy = function transformCopy (transformation) { + var point = this.clone(); + + if (transformation) { + point.transform(transformation); + } + + return point; + }; + + Point.prototype.distanceTo = function distanceTo (point) { + var dx = this.x - point.x; + var dy = this.y - point.y; + + return Math.sqrt(dx * dx + dy * dy); + }; + + Point.prototype.round = function round$1 (digits) { + this.x = Object(_util__WEBPACK_IMPORTED_MODULE_3__["round"])(this.x, digits); + this.y = Object(_util__WEBPACK_IMPORTED_MODULE_3__["round"])(this.y, digits); + + this.geometryChange(); + + return this; + }; + + Point.prototype.toArray = function toArray (digits) { + var doRound = Object(_util__WEBPACK_IMPORTED_MODULE_3__["defined"])(digits); + var x = doRound ? Object(_util__WEBPACK_IMPORTED_MODULE_3__["round"])(this.x, digits) : this.x; + var y = doRound ? Object(_util__WEBPACK_IMPORTED_MODULE_3__["round"])(this.y, digits) : this.y; + + return [ x, y ]; + }; + + Point.prototype.toString = function toString (digits, separator) { + if ( separator === void 0 ) separator = " "; + + var ref = this; + var x = ref.x; + var y = ref.y; + + if (Object(_util__WEBPACK_IMPORTED_MODULE_3__["defined"])(digits)) { + x = Object(_util__WEBPACK_IMPORTED_MODULE_3__["round"])(x, digits); + y = Object(_util__WEBPACK_IMPORTED_MODULE_3__["round"])(y, digits); + } + + return x + separator + y; + }; + + Point.create = function create (arg0, arg1) { + if (Object(_util__WEBPACK_IMPORTED_MODULE_3__["defined"])(arg0)) { + if (arg0 instanceof Point) { + return arg0; + } else if (arguments.length === 1 && arg0.length === 2) { + return new Point(arg0[0], arg0[1]); + } + + return new Point(arg0, arg1); + } + }; + + Point.min = function min () { + var arguments$1 = arguments; + + var minX = _util__WEBPACK_IMPORTED_MODULE_3__["MAX_NUM"]; + var minY = _util__WEBPACK_IMPORTED_MODULE_3__["MAX_NUM"]; + + for (var i = 0; i < arguments.length; i++) { + var point = arguments$1[i]; + minX = Math.min(point.x, minX); + minY = Math.min(point.y, minY); + } + + return new Point(minX, minY); + }; + + Point.max = function max () { + var arguments$1 = arguments; + + var maxX = _util__WEBPACK_IMPORTED_MODULE_3__["MIN_NUM"]; + var maxY = _util__WEBPACK_IMPORTED_MODULE_3__["MIN_NUM"]; + + for (var i = 0; i < arguments.length; i++) { + var point = arguments$1[i]; + maxX = Math.max(point.x, maxX); + maxY = Math.max(point.y, maxY); + } + + return new Point(maxX, maxY); + }; + + Point.minPoint = function minPoint () { + return new Point(_util__WEBPACK_IMPORTED_MODULE_3__["MIN_NUM"], _util__WEBPACK_IMPORTED_MODULE_3__["MIN_NUM"]); + }; + + Point.maxPoint = function maxPoint () { + return new Point(_util__WEBPACK_IMPORTED_MODULE_3__["MAX_NUM"], _util__WEBPACK_IMPORTED_MODULE_3__["MAX_NUM"]); + }; + + staticAccessors.ZERO.get = function () { + return new Point(0, 0); + }; + + Object.defineProperties( Point, staticAccessors ); + + return Point; +}(_common__WEBPACK_IMPORTED_MODULE_2__["Class"])); + +Object(_accessors_define_accessors__WEBPACK_IMPORTED_MODULE_0__["default"])(Point.prototype, [ "x", "y" ]); +_mixins_observers_mixin__WEBPACK_IMPORTED_MODULE_1__["default"].extend(Point.prototype); + + __webpack_exports__["default"] = (Point); + + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/geometry/rect.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _mixins_observers_mixin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/mixins/observers-mixin.js"); + var _common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/common.js"); + var _point__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/point.js"); + var _size__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/size.js"); + + + + + +var Rect = (function (Class) { + function Rect(origin, size) { + if ( origin === void 0 ) origin = new _point__WEBPACK_IMPORTED_MODULE_2__["default"](); + if ( size === void 0 ) size = new _size__WEBPACK_IMPORTED_MODULE_3__["default"](); + + Class.call(this); + + this.setOrigin(origin); + this.setSize(size); + } + + if ( Class ) Rect.__proto__ = Class; + Rect.prototype = Object.create( Class && Class.prototype ); + Rect.prototype.constructor = Rect; + + Rect.prototype.clone = function clone () { + return new Rect( + this.origin.clone(), + this.size.clone() + ); + }; + + Rect.prototype.equals = function equals (other) { + return other && + other.origin.equals(this.origin) && + other.size.equals(this.size); + }; + + Rect.prototype.setOrigin = function setOrigin (value) { + this._observerField("origin", _point__WEBPACK_IMPORTED_MODULE_2__["default"].create(value)); + this.geometryChange(); + return this; + }; + + Rect.prototype.getOrigin = function getOrigin () { + return this.origin; + }; + + Rect.prototype.setSize = function setSize (value) { + this._observerField("size", _size__WEBPACK_IMPORTED_MODULE_3__["default"].create(value)); + this.geometryChange(); + return this; + }; + + Rect.prototype.getSize = function getSize () { + return this.size; + }; + + Rect.prototype.width = function width () { + return this.size.width; + }; + + Rect.prototype.height = function height () { + return this.size.height; + }; + + Rect.prototype.topLeft = function topLeft () { + return this.origin.clone(); + }; + + Rect.prototype.bottomRight = function bottomRight () { + return this.origin.clone().translate(this.width(), this.height()); + }; + + Rect.prototype.topRight = function topRight () { + return this.origin.clone().translate(this.width(), 0); + }; + + Rect.prototype.bottomLeft = function bottomLeft () { + return this.origin.clone().translate(0, this.height()); + }; + + Rect.prototype.center = function center () { + return this.origin.clone().translate(this.width() / 2, this.height() / 2); + }; + + Rect.prototype.bbox = function bbox (matrix) { + var tl = this.topLeft().transformCopy(matrix); + var tr = this.topRight().transformCopy(matrix); + var br = this.bottomRight().transformCopy(matrix); + var bl = this.bottomLeft().transformCopy(matrix); + + return Rect.fromPoints(tl, tr, br, bl); + }; + + Rect.prototype.transformCopy = function transformCopy (m) { + return Rect.fromPoints( + this.topLeft().transform(m), + this.bottomRight().transform(m) + ); + }; + + Rect.prototype.expand = function expand (x, y) { + if ( y === void 0 ) y = x; + + + this.size.width += 2 * x; + this.size.height += 2 * y; + + this.origin.translate(-x, -y); + + return this; + }; + + Rect.prototype.expandCopy = function expandCopy (x, y) { + return this.clone().expand(x, y); + }; + + Rect.prototype.containsPoint = function containsPoint (point) { + var origin = this.origin; + var bottomRight = this.bottomRight(); + return !(point.x < origin.x || point.y < origin.y || bottomRight.x < point.x || bottomRight.y < point.y); + }; + + Rect.prototype._isOnPath = function _isOnPath (point, width) { + var rectOuter = this.expandCopy(width, width); + var rectInner = this.expandCopy(-width, -width); + + return rectOuter.containsPoint(point) && !rectInner.containsPoint(point); + }; + + Rect.fromPoints = function fromPoints () { + var topLeft = _point__WEBPACK_IMPORTED_MODULE_2__["default"].min.apply(null, arguments); + var bottomRight = _point__WEBPACK_IMPORTED_MODULE_2__["default"].max.apply(null, arguments); + var size = new _size__WEBPACK_IMPORTED_MODULE_3__["default"]( + bottomRight.x - topLeft.x, + bottomRight.y - topLeft.y + ); + + return new Rect(topLeft, size); + }; + + Rect.union = function union (a, b) { + return Rect.fromPoints( + _point__WEBPACK_IMPORTED_MODULE_2__["default"].min(a.topLeft(), b.topLeft()), + _point__WEBPACK_IMPORTED_MODULE_2__["default"].max(a.bottomRight(), b.bottomRight()) + ); + }; + + Rect.intersect = function intersect (a, b) { + var rect1 = { + left: a.topLeft().x, + top: a.topLeft().y, + right: a.bottomRight().x, + bottom: a.bottomRight().y + }; + + var rect2 = { + left: b.topLeft().x, + top: b.topLeft().y, + right: b.bottomRight().x, + bottom: b.bottomRight().y + }; + + if (rect1.left <= rect2.right && + rect2.left <= rect1.right && + rect1.top <= rect2.bottom && + rect2.top <= rect1.bottom) { + return Rect.fromPoints( + new _point__WEBPACK_IMPORTED_MODULE_2__["default"](Math.max(rect1.left, rect2.left), Math.max(rect1.top, rect2.top)), + new _point__WEBPACK_IMPORTED_MODULE_2__["default"](Math.min(rect1.right, rect2.right), Math.min(rect1.bottom, rect2.bottom)) + ); + } + }; + + return Rect; +}(_common__WEBPACK_IMPORTED_MODULE_1__["Class"])); + +_mixins_observers_mixin__WEBPACK_IMPORTED_MODULE_0__["default"].extend(Rect.prototype); + + __webpack_exports__["default"] = (Rect); + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/geometry/segment.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _mixins_observers_mixin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/mixins/observers-mixin.js"); + var _common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/common.js"); + var _accessors_define_point_accessors__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/accessors/define-point-accessors.js"); + var _rect__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/rect.js"); + var _point__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/point.js"); + var _transform__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/transform.js"); + var _util__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/util.js"); + var _math_is_out_of_end_point__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/math/is-out-of-end-point.js"); + var _math_calculate_curve_at__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/math/calculate-curve-at.js"); + var _math_has_roots_in_range__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/math/has-roots-in-range.js"); + var _math_curve_intersections_count__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/math/curve-intersections-count.js"); + var _math_line_intersections_count__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/math/line-intersections-count.js"); + + + + + + + + + + + + + +var Segment = (function (Class) { + function Segment(anchor, controlIn, controlOut) { + Class.call(this); + + this.anchor(anchor || new _point__WEBPACK_IMPORTED_MODULE_4__["default"]()); + this.controlIn(controlIn); + this.controlOut(controlOut); + } + + if ( Class ) Segment.__proto__ = Class; + Segment.prototype = Object.create( Class && Class.prototype ); + Segment.prototype.constructor = Segment; + + Segment.prototype.bboxTo = function bboxTo (toSegment, matrix) { + var segmentAnchor = this.anchor().transformCopy(matrix); + var toSegmentAnchor = toSegment.anchor().transformCopy(matrix); + var rect; + + if (this.controlOut() && toSegment.controlIn()) { + rect = this._curveBoundingBox( + segmentAnchor, this.controlOut().transformCopy(matrix), + toSegment.controlIn().transformCopy(matrix), toSegmentAnchor + ); + } else { + rect = this._lineBoundingBox(segmentAnchor, toSegmentAnchor); + } + + return rect; + }; + + Segment.prototype._lineBoundingBox = function _lineBoundingBox (p1, p2) { + return _rect__WEBPACK_IMPORTED_MODULE_3__["default"].fromPoints(p1, p2); + }; + + Segment.prototype._curveBoundingBox = function _curveBoundingBox (p1, cp1, cp2, p2) { + var points = [ p1, cp1, cp2, p2 ]; + var extremesX = this._curveExtremesFor(points, "x"); + var extremesY = this._curveExtremesFor(points, "y"); + var xLimits = arrayLimits([ extremesX.min, extremesX.max, p1.x, p2.x ]); + var yLimits = arrayLimits([ extremesY.min, extremesY.max, p1.y, p2.y ]); + + return _rect__WEBPACK_IMPORTED_MODULE_3__["default"].fromPoints(new _point__WEBPACK_IMPORTED_MODULE_4__["default"](xLimits.min, yLimits.min), new _point__WEBPACK_IMPORTED_MODULE_4__["default"](xLimits.max, yLimits.max)); + }; + + Segment.prototype._curveExtremesFor = function _curveExtremesFor (points, field) { + var extremes = this._curveExtremes( + points[0][field], points[1][field], + points[2][field], points[3][field] + ); + + return { + min: Object(_math_calculate_curve_at__WEBPACK_IMPORTED_MODULE_8__["default"])(extremes.min, field, points), + max: Object(_math_calculate_curve_at__WEBPACK_IMPORTED_MODULE_8__["default"])(extremes.max, field, points) + }; + }; + + Segment.prototype._curveExtremes = function _curveExtremes (x1, x2, x3, x4) { + var a = x1 - 3 * x2 + 3 * x3 - x4; + var b = - 2 * (x1 - 2 * x2 + x3); + var c = x1 - x2; + var sqrt = Math.sqrt(b * b - 4 * a * c); + var t1 = 0; + var t2 = 1; + + if (a === 0) { + if (b !== 0) { + t1 = t2 = -c / b; + } + } else if (!isNaN(sqrt)) { + t1 = (- b + sqrt) / (2 * a); + t2 = (- b - sqrt) / (2 * a); + } + + var min = Math.max(Math.min(t1, t2), 0); + if (min < 0 || min > 1) { + min = 0; + } + + var max = Math.min(Math.max(t1, t2), 1); + if (max > 1 || max < 0) { + max = 1; + } + + return { + min: min, + max: max + }; + }; + + Segment.prototype._intersectionsTo = function _intersectionsTo (segment, point) { + var intersectionsCount; + if (this.controlOut() && segment.controlIn()) { + intersectionsCount = Object(_math_curve_intersections_count__WEBPACK_IMPORTED_MODULE_10__["default"])([ this.anchor(), this.controlOut(), segment.controlIn(), segment.anchor() ], point, this.bboxTo(segment)); + } else { + intersectionsCount = Object(_math_line_intersections_count__WEBPACK_IMPORTED_MODULE_11__["default"])(this.anchor(), segment.anchor(), point); + } + return intersectionsCount; + }; + + Segment.prototype._isOnCurveTo = function _isOnCurveTo (segment, point, width, endSegment) { + var bbox = this.bboxTo(segment).expand(width, width); + if (bbox.containsPoint(point)) { + var p1 = this.anchor(); + var p2 = this.controlOut(); + var p3 = segment.controlIn(); + var p4 = segment.anchor(); + + if (endSegment === "start" && p1.distanceTo(point) <= width) { + return !Object(_math_is_out_of_end_point__WEBPACK_IMPORTED_MODULE_7__["default"])(p1, p2, point); + } else if (endSegment === "end" && p4.distanceTo(point) <= width) { + return !Object(_math_is_out_of_end_point__WEBPACK_IMPORTED_MODULE_7__["default"])(p4, p3, point); + } + + //the approach is not entirely correct but is close and the alternatives are solving a 6th degree polynomial or testing the segment points + var points = [ p1, p2, p3, p4 ]; + if (Object(_math_has_roots_in_range__WEBPACK_IMPORTED_MODULE_9__["default"])(points, point, "x", "y", width) || Object(_math_has_roots_in_range__WEBPACK_IMPORTED_MODULE_9__["default"])(points, point, "y", "x", width)) { + return true; + } + var rotation = Object(_transform__WEBPACK_IMPORTED_MODULE_5__["default"])().rotate(45, point); + var rotatedPoints = [ p1.transformCopy(rotation), p2.transformCopy(rotation), p3.transformCopy(rotation), p4.transformCopy(rotation) ]; + return Object(_math_has_roots_in_range__WEBPACK_IMPORTED_MODULE_9__["default"])(rotatedPoints, point, "x", "y", width) || Object(_math_has_roots_in_range__WEBPACK_IMPORTED_MODULE_9__["default"])(rotatedPoints, point, "y", "x", width); + } + }; + + Segment.prototype._isOnLineTo = function _isOnLineTo (segment, point, width) { + var p1 = this.anchor(); + var p2 = segment.anchor(); + var angle = Object(_util__WEBPACK_IMPORTED_MODULE_6__["deg"])(Math.atan2(p2.y - p1.y, p2.x - p1.x)); + var rect = new _rect__WEBPACK_IMPORTED_MODULE_3__["default"]([ p1.x, p1.y - width / 2 ], [ p1.distanceTo(p2), width ]); + return rect.containsPoint(point.transformCopy(Object(_transform__WEBPACK_IMPORTED_MODULE_5__["default"])().rotate(-angle, p1))); + }; + + Segment.prototype._isOnPathTo = function _isOnPathTo (segment, point, width, endSegment) { + var isOnPath; + if (this.controlOut() && segment.controlIn()) { + isOnPath = this._isOnCurveTo(segment, point, width / 2, endSegment); + } else { + isOnPath = this._isOnLineTo(segment, point, width); + } + return isOnPath; + }; + + return Segment; +}(_common__WEBPACK_IMPORTED_MODULE_1__["Class"])); + +Object(_accessors_define_point_accessors__WEBPACK_IMPORTED_MODULE_2__["default"])(Segment.prototype, [ "anchor", "controlIn", "controlOut" ]); +_mixins_observers_mixin__WEBPACK_IMPORTED_MODULE_0__["default"].extend(Segment.prototype); + +function arrayLimits(arr) { + var length = arr.length; + var min = _util__WEBPACK_IMPORTED_MODULE_6__["MAX_NUM"]; + var max = _util__WEBPACK_IMPORTED_MODULE_6__["MIN_NUM"]; + + for (var i = 0; i < length; i ++) { + max = Math.max(max, arr[i]); + min = Math.min(min, arr[i]); + } + + return { + min: min, + max: max + }; +} + + __webpack_exports__["default"] = (Segment); + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/geometry/size.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _accessors_define_accessors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/accessors/define-accessors.js"); + var _mixins_observers_mixin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/mixins/observers-mixin.js"); + var _common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/common.js"); + var _util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/util.js"); + + + + + +var Size = (function (Class) { + function Size(width, height) { + Class.call(this); + + this.width = width || 0; + this.height = height || 0; + } + + if ( Class ) Size.__proto__ = Class; + Size.prototype = Object.create( Class && Class.prototype ); + Size.prototype.constructor = Size; + + var staticAccessors = { ZERO: { configurable: true } }; + + Size.prototype.equals = function equals (other) { + return other && other.width === this.width && other.height === this.height; + }; + + Size.prototype.clone = function clone () { + return new Size(this.width, this.height); + }; + + Size.prototype.toArray = function toArray (digits) { + var doRound = Object(_util__WEBPACK_IMPORTED_MODULE_3__["defined"])(digits); + var width = doRound ? Object(_util__WEBPACK_IMPORTED_MODULE_3__["round"])(this.width, digits) : this.width; + var height = doRound ? Object(_util__WEBPACK_IMPORTED_MODULE_3__["round"])(this.height, digits) : this.height; + + return [ width, height ]; + }; + + Size.create = function create (arg0, arg1) { + if (Object(_util__WEBPACK_IMPORTED_MODULE_3__["defined"])(arg0)) { + if (arg0 instanceof Size) { + return arg0; + } else if (arguments.length === 1 && arg0.length === 2) { + return new Size(arg0[0], arg0[1]); + } + + return new Size(arg0, arg1); + } + }; + + staticAccessors.ZERO.get = function () { + return new Size(0, 0); + }; + + Object.defineProperties( Size, staticAccessors ); + + return Size; +}(_common__WEBPACK_IMPORTED_MODULE_2__["Class"])); + +Object(_accessors_define_accessors__WEBPACK_IMPORTED_MODULE_0__["default"])(Size.prototype, [ "width", "height" ]); +_mixins_observers_mixin__WEBPACK_IMPORTED_MODULE_1__["default"].extend(Size.prototype); + + __webpack_exports__["default"] = (Size); + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/geometry/to-matrix.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return toMatrix; }); +function toMatrix(transformation) { + if (transformation && typeof transformation.matrix === "function") { + return transformation.matrix(); + } + + return transformation; +} + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/geometry/transform.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return transform; }); + var _transformation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/transformation.js"); + + +function transform(matrix) { + if (matrix === null) { + return null; + } + + if (matrix instanceof _transformation__WEBPACK_IMPORTED_MODULE_0__["default"]) { + return matrix; + } + + return new _transformation__WEBPACK_IMPORTED_MODULE_0__["default"](matrix); +} + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/geometry/transformation.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _mixins_observers_mixin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/mixins/observers-mixin.js"); + var _common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/common.js"); + var _to_matrix__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/to-matrix.js"); + var _matrix__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/matrix.js"); + var _point__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/point.js"); + + + + + + +var Transformation = (function (Class) { + function Transformation(matrix) { + if ( matrix === void 0 ) matrix = _matrix__WEBPACK_IMPORTED_MODULE_3__["default"].unit(); + + Class.call(this); + + this._matrix = matrix; + } + + if ( Class ) Transformation.__proto__ = Class; + Transformation.prototype = Object.create( Class && Class.prototype ); + Transformation.prototype.constructor = Transformation; + + Transformation.prototype.clone = function clone () { + return new Transformation( + this._matrix.clone() + ); + }; + + Transformation.prototype.equals = function equals (other) { + return other && + other._matrix.equals(this._matrix); + }; + + Transformation.prototype.translate = function translate (x, y) { + this._matrix = this._matrix.multiplyCopy(_matrix__WEBPACK_IMPORTED_MODULE_3__["default"].translate(x, y)); + + this._optionsChange(); + return this; + }; + + Transformation.prototype.scale = function scale (scaleX, scaleY, origin) { + if ( scaleY === void 0 ) scaleY = scaleX; + if ( origin === void 0 ) origin = null; + + var originPoint = origin; + + if (originPoint) { + originPoint = _point__WEBPACK_IMPORTED_MODULE_4__["default"].create(originPoint); + this._matrix = this._matrix.multiplyCopy(_matrix__WEBPACK_IMPORTED_MODULE_3__["default"].translate(originPoint.x, originPoint.y)); + } + + this._matrix = this._matrix.multiplyCopy(_matrix__WEBPACK_IMPORTED_MODULE_3__["default"].scale(scaleX, scaleY)); + + if (originPoint) { + this._matrix = this._matrix.multiplyCopy(_matrix__WEBPACK_IMPORTED_MODULE_3__["default"].translate(-originPoint.x, -originPoint.y)); + } + + this._optionsChange(); + return this; + }; + + Transformation.prototype.rotate = function rotate (angle, origin) { + var originPoint = _point__WEBPACK_IMPORTED_MODULE_4__["default"].create(origin) || _point__WEBPACK_IMPORTED_MODULE_4__["default"].ZERO; + + this._matrix = this._matrix.multiplyCopy(_matrix__WEBPACK_IMPORTED_MODULE_3__["default"].rotate(angle, originPoint.x, originPoint.y)); + + this._optionsChange(); + return this; + }; + + Transformation.prototype.multiply = function multiply (transformation) { + var matrix = Object(_to_matrix__WEBPACK_IMPORTED_MODULE_2__["default"])(transformation); + + this._matrix = this._matrix.multiplyCopy(matrix); + + this._optionsChange(); + return this; + }; + + Transformation.prototype.matrix = function matrix (value) { + if (value) { + this._matrix = value; + this._optionsChange(); + return this; + } + + return this._matrix; + }; + + Transformation.prototype._optionsChange = function _optionsChange () { + this.optionsChange({ + field: "transform", + value: this + }); + }; + + return Transformation; +}(_common__WEBPACK_IMPORTED_MODULE_1__["Class"])); + +_mixins_observers_mixin__WEBPACK_IMPORTED_MODULE_0__["default"].extend(Transformation.prototype); + + __webpack_exports__["default"] = (Transformation); + + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/gradients.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _gradients_linear_gradient__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/gradients/linear-gradient.js"); + __webpack_require__.d(__webpack_exports__, "LinearGradient", function() { return _gradients_linear_gradient__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + + var _gradients_radial_gradient__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/gradients/radial-gradient.js"); + __webpack_require__.d(__webpack_exports__, "RadialGradient", function() { return _gradients_radial_gradient__WEBPACK_IMPORTED_MODULE_1__["default"]; }); + + var _gradients_gradient_stop__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/gradients/gradient-stop.js"); + __webpack_require__.d(__webpack_exports__, "GradientStop", function() { return _gradients_gradient_stop__WEBPACK_IMPORTED_MODULE_2__["default"]; }); + + var _gradients_gradient__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/gradients/gradient.js"); + __webpack_require__.d(__webpack_exports__, "Gradient", function() { return _gradients_gradient__WEBPACK_IMPORTED_MODULE_3__["default"]; }); + + + + + + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/gradients/gradient-stop.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _accessors_define_options_accessors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/accessors/define-options-accessors.js"); + var _core_options_store__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/core/options-store.js"); + var _mixins_observers_mixin__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/mixins/observers-mixin.js"); + var _common__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/common.js"); + var _util__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/util.js"); + + + + + + +var GradientStop = (function (Class) { + function GradientStop(offset, color, opacity) { + Class.call(this); + + this.options = new _core_options_store__WEBPACK_IMPORTED_MODULE_1__["default"]({ + offset: offset, + color: color, + opacity: Object(_util__WEBPACK_IMPORTED_MODULE_4__["defined"])(opacity) ? opacity : 1 + }); + this.options.addObserver(this); + } + + if ( Class ) GradientStop.__proto__ = Class; + GradientStop.prototype = Object.create( Class && Class.prototype ); + GradientStop.prototype.constructor = GradientStop; + + GradientStop.create = function create (arg) { + if (Object(_util__WEBPACK_IMPORTED_MODULE_4__["defined"])(arg)) { + var stop; + if (arg instanceof GradientStop) { + stop = arg; + } else if (arg.length > 1) { + stop = new GradientStop(arg[0], arg[1], arg[2]); + } else { + stop = new GradientStop(arg.offset, arg.color, arg.opacity); + } + + return stop; + } + }; + + return GradientStop; +}(_common__WEBPACK_IMPORTED_MODULE_3__["Class"])); + +Object(_accessors_define_options_accessors__WEBPACK_IMPORTED_MODULE_0__["default"])(GradientStop.prototype, [ "offset", "color", "opacity" ]); +_mixins_observers_mixin__WEBPACK_IMPORTED_MODULE_2__["default"].extend(GradientStop.prototype); + + __webpack_exports__["default"] = (GradientStop); + + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/gradients/gradient.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _mixins_observers_mixin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/mixins/observers-mixin.js"); + var _stops_array__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/gradients/stops-array.js"); + var _gradient_stop__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/gradients/gradient-stop.js"); + var _common__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/common.js"); + var _util__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/util.js"); + + + + + + +var Gradient = (function (Class) { + function Gradient(options) { + if ( options === void 0 ) options = {}; + + Class.call(this); + + this.stops = new _stops_array__WEBPACK_IMPORTED_MODULE_1__["default"](this._createStops(options.stops)); + this.stops.addObserver(this); + this._userSpace = options.userSpace; + this.id = Object(_util__WEBPACK_IMPORTED_MODULE_4__["definitionId"])(); + } + + if ( Class ) Gradient.__proto__ = Class; + Gradient.prototype = Object.create( Class && Class.prototype ); + Gradient.prototype.constructor = Gradient; + + Gradient.prototype.userSpace = function userSpace (value) { + if (Object(_util__WEBPACK_IMPORTED_MODULE_4__["defined"])(value)) { + this._userSpace = value; + this.optionsChange(); + return this; + } + + return this._userSpace; + }; + + Gradient.prototype._createStops = function _createStops (stops) { + if ( stops === void 0 ) stops = []; + + var result = []; + for (var idx = 0; idx < stops.length; idx++) { + result.push(_gradient_stop__WEBPACK_IMPORTED_MODULE_2__["default"].create(stops[idx])); + } + + return result; + }; + + Gradient.prototype.addStop = function addStop (offset, color, opacity) { + this.stops.push(new _gradient_stop__WEBPACK_IMPORTED_MODULE_2__["default"](offset, color, opacity)); + }; + + Gradient.prototype.removeStop = function removeStop (stop) { + var index = this.stops.indexOf(stop); + if (index >= 0) { + this.stops.splice(index, 1); + } + }; + + return Gradient; +}(_common__WEBPACK_IMPORTED_MODULE_3__["Class"])); + +Gradient.prototype.nodeType = "Gradient"; + +_mixins_observers_mixin__WEBPACK_IMPORTED_MODULE_0__["default"].extend(Gradient.prototype); + +Object.assign(Gradient.prototype, { + optionsChange: function(e) { + this.trigger("optionsChange", { + field: "gradient" + (e ? "." + e.field : ""), + value: this + }); + }, + + geometryChange: function() { + this.optionsChange(); + } +}); + + __webpack_exports__["default"] = (Gradient); + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/gradients/linear-gradient.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _accessors_define_point_accessors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/accessors/define-point-accessors.js"); + var _geometry_point__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/point.js"); + var _gradient__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/gradients/gradient.js"); + + + + +var LinearGradient = (function (Gradient) { + function LinearGradient(options) { + if ( options === void 0 ) options = {}; + + Gradient.call(this, options); + + this.start(options.start || new _geometry_point__WEBPACK_IMPORTED_MODULE_1__["default"]()); + + this.end(options.end || new _geometry_point__WEBPACK_IMPORTED_MODULE_1__["default"](1, 0)); + } + + if ( Gradient ) LinearGradient.__proto__ = Gradient; + LinearGradient.prototype = Object.create( Gradient && Gradient.prototype ); + LinearGradient.prototype.constructor = LinearGradient; + + return LinearGradient; +}(_gradient__WEBPACK_IMPORTED_MODULE_2__["default"])); + +Object(_accessors_define_point_accessors__WEBPACK_IMPORTED_MODULE_0__["default"])(LinearGradient.prototype, [ "start", "end" ]); + + __webpack_exports__["default"] = (LinearGradient); + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/gradients/radial-gradient.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _accessors_define_point_accessors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/accessors/define-point-accessors.js"); + var _geometry_point__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/point.js"); + var _gradient__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/gradients/gradient.js"); + var _util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/util.js"); + + + + + +var RadialGradient = (function (Gradient) { + function RadialGradient(options) { + if ( options === void 0 ) options = {}; + + Gradient.call(this, options); + + this.center(options.center || new _geometry_point__WEBPACK_IMPORTED_MODULE_1__["default"]()); + this._radius = Object(_util__WEBPACK_IMPORTED_MODULE_3__["defined"])(options.radius) ? options.radius : 1; + this._fallbackFill = options.fallbackFill; + } + + if ( Gradient ) RadialGradient.__proto__ = Gradient; + RadialGradient.prototype = Object.create( Gradient && Gradient.prototype ); + RadialGradient.prototype.constructor = RadialGradient; + + RadialGradient.prototype.radius = function radius (value) { + if (Object(_util__WEBPACK_IMPORTED_MODULE_3__["defined"])(value)) { + this._radius = value; + this.geometryChange(); + return this; + } + + return this._radius; + }; + + RadialGradient.prototype.fallbackFill = function fallbackFill (value) { + if (Object(_util__WEBPACK_IMPORTED_MODULE_3__["defined"])(value)) { + this._fallbackFill = value; + this.optionsChange(); + return this; + } + + return this._fallbackFill; + }; + + return RadialGradient; +}(_gradient__WEBPACK_IMPORTED_MODULE_2__["default"])); + +Object(_accessors_define_point_accessors__WEBPACK_IMPORTED_MODULE_0__["default"])(RadialGradient.prototype, [ "center" ]); + + __webpack_exports__["default"] = (RadialGradient); + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/gradients/stops-array.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _shapes_elements_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/shapes/elements-array.js"); + + +var StopsArray = (function (ElementsArray) { + function StopsArray () { + ElementsArray.apply(this, arguments); + } + + if ( ElementsArray ) StopsArray.__proto__ = ElementsArray; + StopsArray.prototype = Object.create( ElementsArray && ElementsArray.prototype ); + StopsArray.prototype.constructor = StopsArray; + + StopsArray.prototype._change = function _change () { + this.optionsChange({ + field: "stops" + }); + }; + + return StopsArray; +}(_shapes_elements_array__WEBPACK_IMPORTED_MODULE_0__["default"])); + + __webpack_exports__["default"] = (StopsArray); + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/html.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _html_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/html/core.js"); + __webpack_require__.d(__webpack_exports__, "drawDOM", function() { return _html_core__WEBPACK_IMPORTED_MODULE_0__["drawDOM"]; }); + + + + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/html/core.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "drawDOM", function() { return drawDOM; }); + var _geometry__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry.js"); + var _pdf__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/pdf.js"); + var _util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/util.js"); + var _common__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/common.js"); + var _drawing__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/drawing.js"); + + + + + + + + + + + +var browser = _common__WEBPACK_IMPORTED_MODULE_3__["support"].browser || {}; + + + + +function slice(thing) { + return Array.prototype.slice.call(thing); +} + +var KENDO_PSEUDO_ELEMENT = "KENDO-PSEUDO-ELEMENT"; + +var IMAGE_CACHE = {}; + +var nodeInfo = {}; +nodeInfo._root = nodeInfo; + + + +var inBrowser = typeof window !== 'undefined'; +var microsoft = inBrowser ? browser.msie || browser.edge : false; + +var TextRect = (function (Text) { + function TextRect(str, rect, options) { + Text.call(this, str, rect.getOrigin(), options); + this._pdfRect = rect; + } + + if ( Text ) TextRect.__proto__ = Text; + TextRect.prototype = Object.create( Text && Text.prototype ); + TextRect.prototype.constructor = TextRect; + TextRect.prototype.rect = function rect () { + // this is the crux of it: we can avoid a call to + // measure(), which is what the base class does, since we + // already know the rect. measure() is s-l-o-w. + return this._pdfRect; + }; + TextRect.prototype.rawBBox = function rawBBox () { + // also let's avoid creating a new rectangle. + return this._pdfRect; + }; + + return TextRect; +}(_drawing__WEBPACK_IMPORTED_MODULE_4__["Text"])); + +function addClass(el, cls) { + if (el.classList) { + el.classList.add(cls); + } else { + el.className += " " + cls; + } +} + +function removeClass(el, cls) { + if (el.classList) { + el.classList.remove(cls); + } else { + el.className = el.className.split(/\s+/).reduce(function(a, word){ + if (word != cls) { + a.push(word); + } + return a; + }, []).join(" "); + } +} + +function setCSS(el, styles) { + Object.keys(styles).forEach(function(key){ + el.style[key] = styles[key]; + }); +} + +var matches = typeof Element !== "undefined" && Element.prototype && (function(p){ + if (p.matches) { + return function(el, selector) { return el.matches(selector); }; + } + if (p.webkitMatchesSelector) { + return function(el, selector) { return el.webkitMatchesSelector(selector); }; + } + if (p.mozMatchesSelector) { + return function(el, selector) { return el.mozMatchesSelector(selector); }; + } + if (p.msMatchesSelector) { + return function(el, selector) { return el.msMatchesSelector(selector); }; + } + return function(s) { + return [].indexOf.call(document.querySelectorAll(s), this) !== -1; + }; +})(Element.prototype); + +function closest(el, selector) { + if (el.closest) { + return el.closest(selector); + } + // IE: stringifying rather than simply comparing with `document`, + // which is not iframe-proof and fails in editor export — + // https://github.com/telerik/kendo/issues/6721 + while (el && !/^\[object (?:HTML)?Document\]$/.test(String(el))) { + if (el.nodeType == 1 && matches(el, selector)) { + return el; + } + el = el.parentNode; + } +} + +// clone nodes ourselves, so that we redraw (DOM or +// jQuery clone will not) +var cloneNodes = (function($){ + if ($) { + // if we have Kendo and jQuery, use this version as it will + // maintain proper links between cloned element and Kendo + // widgets (i.e. it clones jQuery data(), which isn't the same + // as element's data attributes). + // https://github.com/telerik/kendo-ui-core/issues/2750 + return function cloneNodes(el) { + var clone = el.cloneNode(false); + if (el.nodeType == 1 ) { + var $el = $(el), $clone = $(clone), i; + var data = $el.data(); + for (i in data) { + $clone.data(i, data[i]); + } + if (/^canvas$/i.test(el.tagName)) { + clone.getContext("2d").drawImage(el, 0, 0); + } else if (/^(?:input|select|textarea|option)$/i.test(el.tagName)) { + // drop the name attributes so that we don't affect the selection of the + // original nodes (i.e. checked status of radio buttons) when we insert our copy + // into the DOM. https://github.com/telerik/kendo/issues/5409 + clone.removeAttribute("id"); + clone.removeAttribute("name"); + if (!/^textarea$/i.test(el.tagName)) { + clone.value = el.value; + } + clone.checked = el.checked; + clone.selected = el.selected; + } + for (i = el.firstChild; i; i = i.nextSibling) { + clone.appendChild(cloneNodes(i)); + } + } + return clone; + }; + } else { + // the no-jQuery version + return function cloneNodes(el) { + var clone = (function dive(node){ + var clone = node.cloneNode(false); + if (node._kendoExportVisual) { + clone._kendoExportVisual = node._kendoExportVisual; + } + for (var i = node.firstChild; i; i = i.nextSibling) { + clone.appendChild(dive(i)); + } + return clone; + })(el); + + // re-draw canvases - https://github.com/telerik/kendo/issues/4872 + var canvases = el.querySelectorAll("canvas"); + if (canvases.length) { + slice(clone.querySelectorAll("canvas")).forEach(function (canvas, i) { + canvas.getContext("2d").drawImage(canvases[i], 0, 0); + }); + } + + // remove "name" attributes from elements - + // https://github.com/telerik/kendo/issues/5409 + var orig = el.querySelectorAll("input, select, textarea, option"); + slice(clone.querySelectorAll("input, select, textarea, option")).forEach(function (el, i) { + el.removeAttribute("id"); + el.removeAttribute("name"); + if (!/^textarea$/i.test(el.tagName)) { + el.value = orig[i].value; + } + el.checked = orig[i].checked; + el.selected = orig[i].selected; + }); + + return clone; + }; + } +})(typeof window !== "undefined" && window.kendo && window.kendo.jQuery); + +function getXY(thing) { + if (typeof thing == "number") { + return { x: thing, y: thing }; + } + if (Array.isArray(thing)) { + return { x: thing[0], y: thing[1] }; + } + return { x: thing.x, y: thing.y }; +} + +function drawDOM(element, options) { + if (!options) { + options = {}; + } + var promise = Object(_util__WEBPACK_IMPORTED_MODULE_2__["createPromise"])(); + + if (!element) { + return promise.reject("No element to export"); + } + + if (typeof window.getComputedStyle != "function") { + throw new Error("window.getComputedStyle is missing. You are using an unsupported browser, or running in IE8 compatibility mode. Drawing HTML is supported in Chrome, Firefox, Safari and IE9+."); + } + + _pdf__WEBPACK_IMPORTED_MODULE_1__["defineFont"](getFontFaces(element.ownerDocument)); + + var scale = getXY(options.scale || 1); + + function doOne(element) { + var group = new _drawing__WEBPACK_IMPORTED_MODULE_4__["Group"](); + + // translate to start of page + var pos = element.getBoundingClientRect(); + setTransform(group, [ + scale.x, + 0, + 0, + scale.y, + (-pos.left * scale.x), + (-pos.top * scale.y) + ]); + + nodeInfo._clipbox = false; + nodeInfo._matrix = _geometry__WEBPACK_IMPORTED_MODULE_0__["Matrix"].unit(); + nodeInfo._stackingContext = { + element: element, + group: group + }; + + if (options.avoidLinks === true) { + nodeInfo._avoidLinks = "a"; + } else { + nodeInfo._avoidLinks = options.avoidLinks; + } + + addClass(element, "k-pdf-export"); + renderElement(element, group); + removeClass(element, "k-pdf-export"); + + return group; + } + + cacheImages(element, function(){ + var forceBreak = options && options.forcePageBreak; + var hasPaperSize = options && options.paperSize && options.paperSize != "auto"; + var paperOptions = _pdf__WEBPACK_IMPORTED_MODULE_1__["getPaperOptions"](function(key, def){ + if (key == "paperSize") { + // PDF.getPaperOptions croaks on "auto", just pass dummy A4 as we might + // still be interested in margins. + return hasPaperSize ? options[key] : "A4"; + } + return key in options ? options[key] : def; + }); + var pageWidth = hasPaperSize && paperOptions.paperSize[0]; + var pageHeight = hasPaperSize && paperOptions.paperSize[1]; + var margin = options.margin && paperOptions.margin; + var hasMargin = Boolean(margin); + if (forceBreak || pageHeight) { + if (!margin) { + margin = { left: 0, top: 0, right: 0, bottom: 0 }; + } + + // we want paper size and margin to be unaffected by + // scaling in the output, so we have to reverse-scale + // before our calculations begin. + if (pageWidth) { pageWidth /= scale.x; } + if (pageHeight) { pageHeight /= scale.y; } + margin.left /= scale.x; + margin.right /= scale.x; + margin.top /= scale.y; + margin.bottom /= scale.y; + + var group = new _drawing__WEBPACK_IMPORTED_MODULE_4__["Group"]({ + pdf: { + multiPage : true, + paperSize : hasPaperSize ? paperOptions.paperSize : "auto", + _ignoreMargin : hasMargin // HACK! see exportPDF in pdf/drawing.js + } + }); + handlePageBreaks( + function(x) { + if (options.progress) { + var canceled = false, pageNum = 0; + (function next(){ + if (pageNum < x.pages.length) { + var page = doOne(x.pages[pageNum]); + group.append(page); + options.progress({ + page: page, + pageNum: ++pageNum, + totalPages: x.pages.length, + cancel: function() { + canceled = true; + } + }); + if (!canceled) { + setTimeout(next); + } else { + // XXX: should we also fail() the deferred object? + x.container.parentNode.removeChild(x.container); + } + } else { + x.container.parentNode.removeChild(x.container); + promise.resolve(group); + } + })(); + } else { + x.pages.forEach(function(page){ + group.append(doOne(page)); + }); + x.container.parentNode.removeChild(x.container); + promise.resolve(group); + } + }, + element, + forceBreak, + pageWidth ? pageWidth - margin.left - margin.right : null, + pageHeight ? pageHeight - margin.top - margin.bottom : null, + margin, + options + ); + } else { + promise.resolve(doOne(element)); + } + }); + + function makeTemplate(template) { + if (template != null) { + if (typeof template == "string") { + template = Object(_common__WEBPACK_IMPORTED_MODULE_3__["template"])(template.replace(/^\s+|\s+$/g, "")); + } + if (typeof template == "function") { + return function(data) { + var el = template(data); + if (el && typeof el == "string") { + var div = document.createElement("div"); + div.innerHTML = el; + el = div.firstElementChild; + } + return el; + }; + } + // assumed DOM element + return function() { + return template.cloneNode(true); + }; + } + } + + function handlePageBreaks(callback, element, forceBreak, pageWidth, pageHeight, margin, options) { + var template = makeTemplate(options.template); + var doc = element.ownerDocument; + var pages = []; + var copy = options._destructive ? element : cloneNodes(element); + var container = doc.createElement("KENDO-PDF-DOCUMENT"); + var adjust = 0; + + // make sure elements are at the end (Grid widget + // places TFOOT before TBODY, tricking our algorithm to + // insert a page break right after the header). + // https://github.com/telerik/kendo/issues/4699 + slice(copy.querySelectorAll("tfoot")).forEach(function(tfoot){ + tfoot.parentNode.appendChild(tfoot); + }); + + // remember the index of each LI from an ordered list. + // we'll use it to reconstruct the proper numbering. + slice(copy.querySelectorAll("ol")).forEach(function(ol){ + slice(ol.children).forEach(function(li, index){ + li.setAttribute("kendo-split-index", index); + }); + }); + + setCSS(container, { + display : "block", + position : "absolute", + boxSizing : "content-box", + left : "-10000px", + top : "-10000px" + }); + + if (pageWidth) { + // subtle: if we don't set the width *and* margins here, the layout in this + // container will be different from the one in our final page elements, and we'll + // split at the wrong places. + setCSS(container, { + width : pageWidth + "px", + paddingLeft : margin.left + "px", + paddingRight : margin.right + "px" + }); + + // when the first element has a margin-top (i.e. a

) the page will be + // inadvertently enlarged by that number (the browser will report the container's + // bounding box top to start at the element's top, rather than including its + // margin). Adding overflow: hidden seems to fix it. + // + // to understand the difference, try the following snippets in your browser: + // + // 1.
+ //

Foo

+ //
+ // + // 2.
+ //

Foo

+ //
+ // + // this detail is not important when automatic page breaking is not requested, hence + // doing it only if pageWidth is defined. + setCSS(copy, { overflow: "hidden" }); + } + + element.parentNode.insertBefore(container, element); + container.appendChild(copy); + + // we need the timeouts here, so that images dimensions are + // properly computed in DOM when we start our thing. + if (options.beforePageBreak) { + setTimeout(function(){ + options.beforePageBreak(container, doPageBreak); + }, 15); + } else { + setTimeout(doPageBreak, 15); + } + + function doPageBreak() { + if (forceBreak != "-" || pageHeight) { + splitElement(copy); + } + + { + var page = makePage(); + copy.parentNode.insertBefore(page, copy); + page.appendChild(copy); + } + + if (template) { + pages.forEach(function(page, i){ + var el = template({ + element : page, + pageNum : i + 1, + totalPages : pages.length + }); + if (el) { + page.appendChild(el); + } + }); + } + + cacheImages(pages, function() { + // Even though we already cached images, they simply won't be available + // immediately in the newly created DOM. Previously we'd allow a 10ms timeout, + // but that's arbitrary and clearly not working in all cases + // (https://github.com/telerik/kendo/issues/5399), so this function will wait + // for their .complete attribute. + whenImagesAreActuallyLoaded(pages, function(){ + callback({ pages: pages, container: container }); + }); + }); + } + + function keepTogether(el) { + if (options.keepTogether && matches(el, options.keepTogether) && el.offsetHeight <= pageHeight - adjust) { + return true; + } + + var tag = el.tagName; + if (/^h[1-6]$/i.test(tag) && el.offsetHeight >= pageHeight - adjust) { + return false; + } + + return (el.getAttribute("data-kendo-chart") || + /^(?:img|tr|thead|th|tfoot|iframe|svg|object|canvas|input|textarea|select|video|h[1-6])/i.test(el.tagName)); + } + + function splitElement(element) { + if (element.tagName == "TABLE") { + setCSS(element, { tableLayout: "fixed" }); + } + if (keepTogether(element)) { + return; + } + var style = getComputedStyle(element); + var bottomPadding = parseFloat(getPropertyValue(style, "padding-bottom")); + var bottomBorder = parseFloat(getPropertyValue(style, "border-bottom-width")); + var saveAdjust = adjust; + adjust += bottomPadding + bottomBorder; + var isFirst = true; + for (var el = element.firstChild; el; el = el.nextSibling) { + if (el.nodeType == 1 ) { + isFirst = false; + if (matches(el, forceBreak)) { + breakAtElement(el); + continue; + } + if (!pageHeight) { + // we're in "manual breaks mode" + splitElement(el); + continue; + } + if (!/^(?:static|relative)$/.test(getPropertyValue(getComputedStyle(el), "position"))) { + continue; + } + var fall = fallsOnMargin(el); + if (fall == 1) { + // element starts on next page, break before anyway. + breakAtElement(el); + } + else if (fall) { + // elements ends up on next page, or possibly doesn't fit on a page at + // all. break before it anyway if it's an or , otherwise + // attempt to split. + if (keepTogether(el)) { + breakAtElement(el); + } else { + splitElement(el); + } + } + else { + splitElement(el); + } + } + else if (el.nodeType == 3 && pageHeight) { + splitText(el, isFirst); + isFirst = false; + } + } + adjust = saveAdjust; + } + + function firstInParent(el) { + var p = el.parentNode, first = p.firstChild; + if (el === first) { + return true; + } + if (el === p.children[0]) { + if (first.nodeType == 7 || + first.nodeType == 8 ) { + return true; + } + if (first.nodeType == 3 ) { + // if whitespace only we can probably consider it's first + return !/\S/.test(first.data); + } + } + return false; + } + + function breakAtElement(el) { + if (el.nodeType == 1 && el !== copy && firstInParent(el)) { + return breakAtElement(el.parentNode); + } + var table, colgroup, thead, grid, gridHead; + table = closest(el, "table"); + colgroup = table && table.querySelector("colgroup"); + if (options.repeatHeaders) { + thead = table && table.querySelector("thead"); + + // If we break page in a Kendo Grid, repeat its header. This ugly hack is + // necessary because a scrollable grid will keep the header in a separate + // element from its content. + // + // XXX: This is likely to break as soon as the widget HTML is modified. + grid = closest(el, ".k-grid.k-widget"); + if (grid && grid.querySelector(".k-auto-scrollable")) { + gridHead = grid.querySelector(".k-grid-header"); + } + } + var page = makePage(); + var range = doc.createRange(); + range.setStartBefore(copy); + range.setEndBefore(el); + page.appendChild(range.extractContents()); + copy.parentNode.insertBefore(page, copy); + preventBulletOnListItem(el.parentNode); + if (table) { + table = closest(el, "table"); // that's the
on next page! + if (options.repeatHeaders && thead) { + table.insertBefore(thead.cloneNode(true), table.firstChild); + } + if (colgroup) { + table.insertBefore(colgroup.cloneNode(true), table.firstChild); + } + } + if (options.repeatHeaders && gridHead) { + grid = closest(el, ".k-grid.k-widget"); + grid.insertBefore(gridHead.cloneNode(true), grid.firstChild); + } + } + + function makePage() { + var page = doc.createElement("KENDO-PDF-PAGE"); + setCSS(page, { + display : "block", + boxSizing: "content-box", + width : pageWidth ? (pageWidth + "px") : "auto", + padding : (margin.top + "px " + + margin.right + "px " + + margin.bottom + "px " + + margin.left + "px"), + + // allow absolutely positioned elements to be relative to current page + position : "relative", + + // without the following we might affect layout of subsequent pages + height : pageHeight ? (pageHeight + "px") : "auto", + overflow : pageHeight || pageWidth ? "hidden" : "visible", + clear : "both" + }); + + // debug + // $("
").css({ + // position : "absolute", + // left : margin.left, + // top : margin.top, + // width : pageWidth, + // height : pageHeight, + // boxSizing : "border-box", + // background: "rgba(255, 255, 0, 0.5)" + // //border : "1px solid red" + // }).appendTo(page); + + if (options && options.pageClassName) { + page.className = options.pageClassName; + } + pages.push(page); + return page; + } + + function fallsOnMargin(thing) { + var box = thing.getBoundingClientRect(); + if (box.width === 0 || box.height === 0) { + // I'd say an element with dimensions zero fits on current page. + return 0; + } + var top = copy.getBoundingClientRect().top; + var available = pageHeight - adjust; + return (box.height > available) ? 3 + : (box.top - top > available) ? 1 + : (box.bottom - top > available) ? 2 + : 0; + } + + function splitText(node, isFirst) { + if (!/\S/.test(node.data)) { + return; + } + + var len = node.data.length; + var range = doc.createRange(); + range.selectNodeContents(node); + var fall = fallsOnMargin(range); + if (!fall) { + return; // the whole text fits on current page + } + + var nextnode = node; + if (fall == 1) { + // starts on next page, break before anyway. + if (isFirst) { + // avoid leaving an empty

,

  • , etc. on previous page. + breakAtElement(node.parentNode); + } else { + breakAtElement(node); + } + } + else { + (function findEOP(min, pos, max) { + range.setEnd(node, pos); + if (min == pos || pos == max) { + return pos; + } + if (fallsOnMargin(range)) { + return findEOP(min, (min + pos) >> 1, pos); + } else { + return findEOP(pos, (pos + max) >> 1, max); + } + })(0, len >> 1, len); + + if (!/\S/.test(range.toString()) && isFirst) { + // avoid leaving an empty

    ,

  • , etc. on previous page. + breakAtElement(node.parentNode); + } else { + // This is only needed for IE, but it feels cleaner to do it anyway. Without + // it, IE will truncate a very long text (playground/pdf-long-text-2.html). + nextnode = node.splitText(range.endOffset); + + var page = makePage(); + range.setStartBefore(copy); + page.appendChild(range.extractContents()); + copy.parentNode.insertBefore(page, copy); + preventBulletOnListItem(nextnode.parentNode); + } + } + + splitText(nextnode); + } + + function preventBulletOnListItem(el) { + // set a hint on continued LI elements, to tell the + // renderer not to draw the bullet again. + // https://github.com/telerik/kendo-ui-core/issues/2732 + var li = closest(el, "li"); + if (li) { + li.setAttribute("kendo-no-bullet", "1"); + preventBulletOnListItem(li.parentNode); + } + } + } + + return promise; +} + +drawDOM.getFontFaces = getFontFaces; + +// This is needed for the Spreadsheet print functionality. Since +// there we only need to draw text, this cuts through the ceremony +// of drawDOM/renderElement and renders the text node directly. +drawDOM.drawText = function(element) { + var group = new _drawing__WEBPACK_IMPORTED_MODULE_4__["Group"](); + nodeInfo._clipbox = false; + nodeInfo._matrix = _geometry__WEBPACK_IMPORTED_MODULE_0__["Matrix"].unit(); + nodeInfo._stackingContext = { + element: element, + group: group + }; + pushNodeInfo(element, getComputedStyle(element), group); + if (element.firstChild.nodeType == 3 ) { + // avoid the penalty of renderElement + renderText(element, element.firstChild, group); + } else { + _renderElement(element, group); + } + popNodeInfo(); + return group; +}; + +var parseBackgroundImage = (function(){ + var tok_linear_gradient = /^((-webkit-|-moz-|-o-|-ms-)?linear-gradient\s*)\(/; + //var tok_radial_gradient = /^((-webkit-|-moz-|-o-|-ms-)?radial-gradient\s*)\(/; + var tok_percent = /^([-0-9.]+%)/; + var tok_length = /^([-0-9.]+px)/; + var tok_keyword = /^(left|right|top|bottom|to|center)\W/; + var tok_angle = /^([-0-9.]+(deg|grad|rad|turn)|0)/; + var tok_whitespace = /^(\s+)/; + var tok_popen = /^(\()/; + var tok_pclose = /^(\))/; + var tok_comma = /^(,)/; + var tok_url = /^(url)\(/; + var tok_content = /^(.*?)\)/; + + var cache1 = {}, cache2 = {}; + + function parse(input) { + var orig = input; + if (hasOwnProperty(cache1, orig)) { + return cache1[orig]; + } + function skip_ws() { + var m = tok_whitespace.exec(input); + if (m) { + input = input.substr(m[1].length); + } + } + function read(token) { + skip_ws(); + var m = token.exec(input); + if (m) { + input = input.substr(m[1].length); + return m[1]; + } + } + + function read_stop() { + var color = Object(_common__WEBPACK_IMPORTED_MODULE_3__["parseColor"])(input, true); + var length, percent; + if (color) { + var match = + /^#[0-9a-f]+/i.exec(input) || + /^rgba?\(.*?\)/i.exec(input) || + /^..*?\b/.exec(input); // maybe named color + input = input.substr(match[0].length); + color = color.toRGB(); + if (!(length = read(tok_length))) { + percent = read(tok_percent); + } + return { color: color, length: length, percent: percent }; + } + } + + function read_linear_gradient(propName) { + var angle; + var to1, to2; + var stops = []; + var reverse = false; + + if (read(tok_popen)) { + // 1. [ || to , ]? + angle = read(tok_angle); + if (angle == "0") { + angle = "0deg"; // Edge + } + if (angle) { + angle = parseAngle(angle); + read(tok_comma); + } + else { + to1 = read(tok_keyword); + if (to1 == "to") { + to1 = read(tok_keyword); + } else if (to1 && /^-/.test(propName)) { + reverse = true; + } + to2 = read(tok_keyword); + read(tok_comma); + } + + if (/-moz-/.test(propName) && angle == null && to1 == null) { + var x = read(tok_percent), y = read(tok_percent); + reverse = true; + if (x == "0%") { + to1 = "left"; + } else if (x == "100%") { + to1 = "right"; + } + if (y == "0%") { + to2 = "top"; + } else if (y == "100%") { + to2 = "bottom"; + } + read(tok_comma); + } + + // 2. color stops + while (input && !read(tok_pclose)) { + var stop = read_stop(); + if (!stop) { + break; + } + stops.push(stop); + read(tok_comma); + } + + return { + type : "linear", + angle : angle, + to : to1 && to2 ? to1 + " " + to2 : to1 ? to1 : to2 ? to2 : null, + stops : stops, + reverse : reverse + }; + } + } + + function read_url() { + if (read(tok_popen)) { + var url = read(tok_content); + url = url.replace(/^['"]+|["']+$/g, ""); + read(tok_pclose); + return { type: "url", url: url }; + } + } + + var tok; + + if ((tok = read(tok_linear_gradient))) { + tok = read_linear_gradient(tok); + } + else if ((tok = read(tok_url))) { + tok = read_url(); + } + + return (cache1[orig] = tok || { type: "none" }); + } + + return function(input) { + if (hasOwnProperty(cache2, input)) { + return cache2[input]; + } + return (cache2[input] = splitProperty(input).map(parse)); + }; +})(); + +var splitProperty = (function(){ + var cache = {}; + return function(input, separator) { + if (!separator) { + separator = /^\s*,\s*/; + } + + var cacheKey = input + separator; + + if (hasOwnProperty(cache, cacheKey)) { + return cache[cacheKey]; + } + + var ret = []; + var last = 0, pos = 0; + var in_paren = 0; + var in_string = false; + var m; + + function looking_at(rx) { + return (m = rx.exec(input.substr(pos))); + } + + function trim(str) { + return str.replace(/^\s+|\s+$/g, ""); + } + + while (pos < input.length) { + if (!in_string && looking_at(/^[\(\[\{]/)) { + in_paren++; + pos++; + } + else if (!in_string && looking_at(/^[\)\]\}]/)) { + in_paren--; + pos++; + } + else if (!in_string && looking_at(/^[\"\']/)) { + in_string = m[0]; + pos++; + } + else if (in_string == "'" && looking_at(/^\\\'/)) { + pos += 2; + } + else if (in_string == '"' && looking_at(/^\\\"/)) { + pos += 2; + } + else if (in_string == "'" && looking_at(/^\'/)) { + in_string = false; + pos++; + } + else if (in_string == '"' && looking_at(/^\"/)) { + in_string = false; + pos++; + } + else if (looking_at(separator)) { + if (!in_string && !in_paren && pos > last) { + ret.push(trim(input.substring(last, pos))); + last = pos + m[0].length; + } + pos += m[0].length; + } + else { + pos++; + } + } + if (last < pos) { + ret.push(trim(input.substring(last, pos))); + } + return (cache[cacheKey] = ret); + }; +})(); + +var getFontURL = (function(cache){ + return function(el){ + // XXX: for IE we get here the whole cssText of the rule, + // because the computedStyle.src is empty. Next time we need + // to fix these regexps we better write a CSS parser. :-\ + var url = cache[el]; + if (!url) { + var m; + if ((m = /url\((['"]?)([^'")]*?)\1\)\s+format\((['"]?)truetype\3\)/.exec(el))) { + url = cache[el] = m[2]; + } else if ((m = /url\((['"]?)([^'")]*?\.ttf)\1\)/.exec(el))) { + url = cache[el] = m[2]; + } + } + return url; + }; +})(Object.create(null)); + +var getFontHeight = (function(cache){ + return function(font) { + var height = cache[font]; + if (height == null) { + height = cache[font] = Object(_util__WEBPACK_IMPORTED_MODULE_2__["measureText"])("Mapq", { font: font }).height; + } + return height; + }; +})(Object.create(null)); + +function getFontFaces(doc) { + if (doc == null) { + doc = document; + } + var result = {}; + for (var i = 0; i < doc.styleSheets.length; ++i) { + doStylesheet(doc.styleSheets[i]); + } + return result; + function doStylesheet(ss) { + if (ss) { + var rules = null; + try { + rules = ss.cssRules; + } catch (ex) {} + if (rules) { + addRules(ss, rules); + } + } + } + function findFonts(rule) { + var src = getPropertyValue(rule.style, "src"); + if (src) { + return splitProperty(src).reduce(function(a, el){ + var font = getFontURL(el); + if (font) { + a.push(font); + } + return a; + }, []); + } else { + // Internet Explorer + // XXX: this is gross. should work though for valid CSS. + var font = getFontURL(rule.cssText); + return font ? [ font ] : []; + } + } + function addRules(styleSheet, rules) { + for (var i = 0; i < rules.length; ++i) { + var r = rules[i]; + switch (r.type) { + case 3: // CSSImportRule + doStylesheet(r.styleSheet); + break; + case 5: // CSSFontFaceRule + var style = r.style; + var family = splitProperty(getPropertyValue(style, "font-family")); + var bold = /^([56789]00|bold)$/i.test(getPropertyValue(style, "font-weight")); + var italic = "italic" == getPropertyValue(style, "font-style"); + var src = findFonts(r); + if (src.length > 0) { + addRule(styleSheet, family, bold, italic, src[0]); + } + } + } + } + function addRule(styleSheet, names, bold, italic, url) { + // We get full resolved absolute URLs in Chrome, but sadly + // not in Firefox. + if (!(/^data:/i.test(url))) { + if (!(/^[^\/:]+:\/\//.test(url) || /^\//.test(url))) { + url = String(styleSheet.href).replace(/[^\/]*$/, "") + url; + } + } + names.forEach(function(name){ + name = name.replace(/^(['"]?)(.*?)\1$/, "$2"); // it's quoted + if (bold) { + name += "|bold"; + } + if (italic) { + name += "|italic"; + } + result[name] = url; + }); + } +} + +function hasOwnProperty(obj, key) { + return Object.prototype.hasOwnProperty.call(obj, key); +} + +function getCounter(name) { + name = "_counter_" + name; + return nodeInfo[name]; +} + +function getAllCounters(name) { + var values = [], p = nodeInfo; + name = "_counter_" + name; + while (p) { + if (hasOwnProperty(p, name)) { + values.push(p[name]); + } + p = Object.getPrototypeOf(p); + } + return values.reverse(); +} + +function incCounter(name, inc) { + var p = nodeInfo; + name = "_counter_" + name; + while (p && !hasOwnProperty(p, name)) { + p = Object.getPrototypeOf(p); + } + if (!p) { + p = nodeInfo._root; + } + p[name] = (p[name] || 0) + (inc == null ? 1 : inc); +} + +function resetCounter(name, val) { + name = "_counter_" + name; + nodeInfo[name] = val == null ? 0 : val; +} + +function doCounters(a, f, def) { + for (var i = 0; i < a.length;) { + var name = a[i++]; + var val = parseFloat(a[i]); + if (isNaN(val)) { + f(name, def); + } else { + f(name, val); + ++i; + } + } +} + +function updateCounters(style) { + var counterReset = getPropertyValue(style, "counter-reset"); + if (counterReset) { + doCounters(splitProperty(counterReset, /^\s+/), resetCounter, 0); + } + var counterIncrement = getPropertyValue(style, "counter-increment"); + if (counterIncrement) { + doCounters(splitProperty(counterIncrement, /^\s+/), incCounter, 1); + } +} + +function parseColor(str, css) { + var color = Object(_common__WEBPACK_IMPORTED_MODULE_3__["parseColor"])(str, true); + if (color) { + color = color.toRGB(); + if (css) { + color = color.toCssRgba(); + } else if (color.a === 0) { + color = null; + } + } + return color; +} + +function whenImagesAreActuallyLoaded(elements, callback) { + var pending = 0; + elements.forEach(function(el){ + var images = el.querySelectorAll("img"); + for (var i = 0; i < images.length; ++i) { + var img = images[i]; + if (!img.complete) { + pending++; + img.onload = img.onerror = next; + } + } + }); + if (!pending) { + next(); + } + function next() { + if (--pending <= 0) { + callback(); + } + } +} + +function cacheImages(element, callback) { + var urls = []; + function add(url) { + if (!IMAGE_CACHE[url]) { + IMAGE_CACHE[url] = true; + urls.push(url); + } + } + function dive(element){ + if (/^img$/i.test(element.tagName)) { + add(element.src); + } + parseBackgroundImage( + getPropertyValue( + getComputedStyle(element), "background-image" + ) + ).forEach(function(bg){ + if (bg.type == "url") { + add(bg.url); + } + }); + + if (element.children) { + slice(element.children).forEach(dive); + } + } + + if (Array.isArray(element)) { + element.forEach(dive); + } else { + dive(element); + } + + var count = urls.length; + function next() { + if (--count <= 0) { + callback(); + } + } + if (count === 0) { + next(); + } + urls.forEach(function(url){ + var img = IMAGE_CACHE[url] = new window.Image(); + if (!(/^data:/i.test(url))) { + img.crossOrigin = "Anonymous"; + } + img.src = url; + if (img.complete) { + next(); + } else { + img.onload = next; + img.onerror = function() { + IMAGE_CACHE[url] = null; + next(); + }; + } + }); +} + +function alphaNumeral(n) { + var result = ""; + do { + var r = n % 26; + result = String.fromCharCode(97 + r) + result; + n = Math.floor(n / 26); + } while (n > 0); + return result; +} + +function pushNodeInfo(element, style, group) { + nodeInfo = Object.create(nodeInfo); + nodeInfo[element.tagName.toLowerCase()] = { + element: element, + style: style + }; + var decoration = getPropertyValue(style, "text-decoration"); + if (decoration && decoration != "none") { + var color = getPropertyValue(style, "color"); + decoration.split(/\s+/g).forEach(function(name){ + if (!nodeInfo[name]) { + nodeInfo[name] = color; + } + }); + } + + if (createsStackingContext(style)) { + nodeInfo._stackingContext = { + element: element, + group: group + }; + } +} + +function popNodeInfo() { + nodeInfo = Object.getPrototypeOf(nodeInfo); +} + +function updateClipbox(path) { + if (nodeInfo._clipbox != null) { + var box = path.bbox(nodeInfo._matrix); + if (nodeInfo._clipbox) { + nodeInfo._clipbox = _geometry__WEBPACK_IMPORTED_MODULE_0__["Rect"].intersect(nodeInfo._clipbox, box); + } else { + nodeInfo._clipbox = box; + } + } +} + +function emptyClipbox() { + var cb = nodeInfo._clipbox; + if (cb == null) { + return true; + } + if (cb) { + return cb.width() === 0 || cb.height() === 0; + } +} + +function createsStackingContext(style) { + function prop(name) { return getPropertyValue(style, name); } + if (prop("transform") != "none" || + prop("position") != "static" || + prop("z-index") != "auto" || + prop("opacity") < 1) { + return true; + } +} + +function getComputedStyle(element, pseudoElt) { + return window.getComputedStyle(element, pseudoElt || null); +} + +function getPropertyValue(style, prop, defa) { + var val = style.getPropertyValue(prop); + if (val == null || val === "") { + if (browser.webkit) { + val = style.getPropertyValue("-webkit-" + prop ); + } else if (browser.mozilla) { + val = style.getPropertyValue("-moz-" + prop ); + } else if (browser.opera) { + val = style.getPropertyValue("-o-" + prop); + } else if (microsoft) { + val = style.getPropertyValue("-ms-" + prop); + } + } + if (arguments.length > 2 && (val == null || val === "")) { + return defa; + } else { + return val; + } +} + +function pleaseSetPropertyValue(style, prop, value, important) { + style.setProperty(prop, value, important); + if (browser.webkit) { + style.setProperty("-webkit-" + prop, value, important); + } else if (browser.mozilla) { + style.setProperty("-moz-" + prop, value, important); + } else if (browser.opera) { + style.setProperty("-o-" + prop, value, important); + } else if (microsoft) { + style.setProperty("-ms-" + prop, value, important); + prop = "ms" + prop.replace(/(^|-)([a-z])/g, function(s, p1, p2){ + return p1 + p2.toUpperCase(); + }); + style[prop] = value; + } +} + +function getBorder(style, side) { + side = "border-" + side; + return { + width: parseFloat(getPropertyValue(style, side + "-width")), + style: getPropertyValue(style, side + "-style"), + color: parseColor(getPropertyValue(style, side + "-color"), true) + }; +} + +function saveStyle(element, func) { + var prev = element.style.cssText; + var result = func(); + element.style.cssText = prev; + return result; +} + +function getBorderRadius(style, side) { + var r = getPropertyValue(style, "border-" + side + "-radius").split(/\s+/g).map(parseFloat); + if (r.length == 1) { + r.push(r[0]); + } + return sanitizeRadius({ x: r[0], y: r[1] }); +} + +function getContentBox(element) { + var box = element.getBoundingClientRect(); + box = innerBox(box, "border-*-width", element); + box = innerBox(box, "padding-*", element); + return box; +} + +function innerBox(box, prop, element) { + var style, wt, wr, wb, wl; + if (typeof prop == "string") { + style = getComputedStyle(element); + wt = parseFloat(getPropertyValue(style, prop.replace("*", "top"))); + wr = parseFloat(getPropertyValue(style, prop.replace("*", "right"))); + wb = parseFloat(getPropertyValue(style, prop.replace("*", "bottom"))); + wl = parseFloat(getPropertyValue(style, prop.replace("*", "left"))); + } + else if (typeof prop == "number") { + wt = wr = wb = wl = prop; + } + return { + top : box.top + wt, + right : box.right - wr, + bottom : box.bottom - wb, + left : box.left + wl, + width : box.right - box.left - wr - wl, + height : box.bottom - box.top - wb - wt + }; +} + +function getTransform(style) { + var transform = getPropertyValue(style, "transform"); + if (transform == "none") { + return null; + } + var matrix = /^\s*matrix\(\s*(.*?)\s*\)\s*$/.exec(transform); + if (matrix) { + var origin = getPropertyValue(style, "transform-origin"); + matrix = matrix[1].split(/\s*,\s*/g).map(parseFloat); + origin = origin.split(/\s+/g).map(parseFloat); + return { + matrix: matrix, + origin: origin + }; + } +} + +function radiansToDegrees(radians) { + return ((180 * radians) / Math.PI) % 360; +} + +function parseAngle(angle) { + var num = parseFloat(angle); + if (/grad$/.test(angle)) { + return Math.PI * num / 200; + } + else if (/rad$/.test(angle)) { + return num; + } + else if (/turn$/.test(angle)) { + return Math.PI * num * 2; + } + else if (/deg$/.test(angle)) { + return Math.PI * num / 180; + } +} + +function setTransform(shape, m) { + m = new _geometry__WEBPACK_IMPORTED_MODULE_0__["Matrix"](m[0], m[1], m[2], m[3], m[4], m[5]); + shape.transform(m); + return m; +} + +function setClipping(shape, clipPath) { + shape.clip(clipPath); +} + +function addArcToPath(path, x, y, options) { + var points = new _geometry__WEBPACK_IMPORTED_MODULE_0__["Arc"]([ x, y ], options).curvePoints(), i = 1; + while (i < points.length) { + path.curveTo(points[i++], points[i++], points[i++]); + } +} + +function sanitizeRadius(r) { + if (r.x <= 0 || r.y <= 0) { + r.x = r.y = 0; + } + return r; +} + +function adjustBorderRadiusForBox(box, rTL, rTR, rBR, rBL) { + // adjust border radiuses such that the sum of adjacent + // radiuses is not bigger than the length of the side. + // seems the correct algorithm is variant (3) from here: + // http://www.w3.org/Style/CSS/Tracker/issues/29?changelog + var tl_x = Math.max(0, rTL.x), tl_y = Math.max(0, rTL.y); + var tr_x = Math.max(0, rTR.x), tr_y = Math.max(0, rTR.y); + var br_x = Math.max(0, rBR.x), br_y = Math.max(0, rBR.y); + var bl_x = Math.max(0, rBL.x), bl_y = Math.max(0, rBL.y); + + var f = Math.min( + box.width / (tl_x + tr_x), + box.height / (tr_y + br_y), + box.width / (br_x + bl_x), + box.height / (bl_y + tl_y) + ); + + if (f < 1) { + tl_x *= f; tl_y *= f; + tr_x *= f; tr_y *= f; + br_x *= f; br_y *= f; + bl_x *= f; bl_y *= f; + } + + return { + tl: { x: tl_x, y: tl_y }, + tr: { x: tr_x, y: tr_y }, + br: { x: br_x, y: br_y }, + bl: { x: bl_x, y: bl_y } + }; +} + +function elementRoundBox(element, box, type) { + var style = getComputedStyle(element); + + var rTL = getBorderRadius(style, "top-left"); + var rTR = getBorderRadius(style, "top-right"); + var rBL = getBorderRadius(style, "bottom-left"); + var rBR = getBorderRadius(style, "bottom-right"); + + if (type == "padding" || type == "content") { + var bt = getBorder(style, "top"); + var br = getBorder(style, "right"); + var bb = getBorder(style, "bottom"); + var bl = getBorder(style, "left"); + rTL.x -= bl.width; rTL.y -= bt.width; + rTR.x -= br.width; rTR.y -= bt.width; + rBR.x -= br.width; rBR.y -= bb.width; + rBL.x -= bl.width; rBL.y -= bb.width; + if (type == "content") { + var pt = parseFloat(getPropertyValue(style, "padding-top")); + var pr = parseFloat(getPropertyValue(style, "padding-right")); + var pb = parseFloat(getPropertyValue(style, "padding-bottom")); + var pl = parseFloat(getPropertyValue(style, "padding-left")); + rTL.x -= pl; rTL.y -= pt; + rTR.x -= pr; rTR.y -= pt; + rBR.x -= pr; rBR.y -= pb; + rBL.x -= pl; rBL.y -= pb; + } + } + + if (typeof type == "number") { + rTL.x -= type; rTL.y -= type; + rTR.x -= type; rTR.y -= type; + rBR.x -= type; rBR.y -= type; + rBL.x -= type; rBL.y -= type; + } + + return roundBox(box, rTL, rTR, rBR, rBL); +} + +// Create a drawing.Path for a rounded rectangle. Receives the +// bounding box and the border-radiuses in CSS order (top-left, +// top-right, bottom-right, bottom-left). The radiuses must be +// objects containing x (horiz. radius) and y (vertical radius). +function roundBox(box, rTL0, rTR0, rBR0, rBL0) { + var tmp = adjustBorderRadiusForBox(box, rTL0, rTR0, rBR0, rBL0); + var rTL = tmp.tl; + var rTR = tmp.tr; + var rBR = tmp.br; + var rBL = tmp.bl; + var path = new _drawing__WEBPACK_IMPORTED_MODULE_4__["Path"]({ fill: null, stroke: null }); + path.moveTo(box.left, box.top + rTL.y); + if (rTL.x) { + addArcToPath(path, box.left + rTL.x, box.top + rTL.y, { + startAngle: -180, + endAngle: -90, + radiusX: rTL.x, + radiusY: rTL.y + }); + } + path.lineTo(box.right - rTR.x, box.top); + if (rTR.x) { + addArcToPath(path, box.right - rTR.x, box.top + rTR.y, { + startAngle: -90, + endAngle: 0, + radiusX: rTR.x, + radiusY: rTR.y + }); + } + path.lineTo(box.right, box.bottom - rBR.y); + if (rBR.x) { + addArcToPath(path, box.right - rBR.x, box.bottom - rBR.y, { + startAngle: 0, + endAngle: 90, + radiusX: rBR.x, + radiusY: rBR.y + }); + } + path.lineTo(box.left + rBL.x, box.bottom); + if (rBL.x) { + addArcToPath(path, box.left + rBL.x, box.bottom - rBL.y, { + startAngle: 90, + endAngle: 180, + radiusX: rBL.x, + radiusY: rBL.y + }); + } + return path.close(); +} + +function formatCounter(val, style) { + var str = String(parseFloat(val)); + switch (style) { + case "decimal-leading-zero": + if (str.length < 2) { + str = "0" + str; + } + return str; + case "lower-roman": + return Object(_util__WEBPACK_IMPORTED_MODULE_2__["arabicToRoman"])(val).toLowerCase(); + case "upper-roman": + return Object(_util__WEBPACK_IMPORTED_MODULE_2__["arabicToRoman"])(val).toUpperCase(); + case "lower-latin": + case "lower-alpha": + return alphaNumeral(val - 1); + case "upper-latin": + case "upper-alpha": + return alphaNumeral(val - 1).toUpperCase(); + default: + return str; + } +} + +function evalPseudoElementContent(element, content) { + function displayCounter(name, style, separator) { + if (!separator) { + return formatCounter(getCounter(name) || 0, style); + } + separator = separator.replace(/^\s*(["'])(.*)\1\s*$/, "$2"); + return getAllCounters(name).map(function(val){ + return formatCounter(val, style); + }).join(separator); + } + var a = splitProperty(content, /^\s+/); + var result = [], m; + a.forEach(function(el){ + var tmp; + if ((m = /^\s*(["'])(.*)\1\s*$/.exec(el))) { + result.push(m[2].replace(/\\([0-9a-f]{4})/gi, function(s, p){ + return String.fromCharCode(parseInt(p, 16)); + })); + } + else if ((m = /^\s*counter\((.*?)\)\s*$/.exec(el))) { + tmp = splitProperty(m[1]); + result.push(displayCounter(tmp[0], tmp[1])); + } + else if ((m = /^\s*counters\((.*?)\)\s*$/.exec(el))) { + tmp = splitProperty(m[1]); + result.push(displayCounter(tmp[0], tmp[2], tmp[1])); + } + else if ((m = /^\s*attr\((.*?)\)\s*$/.exec(el))) { + result.push(element.getAttribute(m[1]) || ""); + } + else { + result.push(el); + } + }); + return result.join(""); +} + +function getCssText(style) { + if (style.cssText) { + return style.cssText; + } + // Status: NEW. Report year: 2002. Current year: 2014. + // Nice played, Mozillians. + // https://bugzilla.mozilla.org/show_bug.cgi?id=137687 + var result = []; + for (var i = 0; i < style.length; ++i) { + result.push(style[i] + ": " + getPropertyValue(style, style[i])); + } + return result.join(";\n"); +} + +function _renderWithPseudoElements(element, group) { + if (element.tagName == KENDO_PSEUDO_ELEMENT) { + _renderElement(element, group); + return; + } + var fake = []; + function pseudo(kind, place) { + var style = getComputedStyle(element, kind), content = style.content; + updateCounters(style); + if (content && content != "normal" && content != "none" && style.width != "0px") { + var psel = element.ownerDocument.createElement(KENDO_PSEUDO_ELEMENT); + psel.style.cssText = getCssText(style); + psel.textContent = evalPseudoElementContent(element, content); + element.insertBefore(psel, place); + fake.push(psel); + } + } + pseudo(":before", element.firstChild); + pseudo(":after", null); + if (fake.length > 0) { + var saveClass = element.className; + element.className += " kendo-pdf-hide-pseudo-elements"; + _renderElement(element, group); + element.className = saveClass; + fake.forEach(function(el){ element.removeChild(el); }); + } else { + _renderElement(element, group); + } +} + +function _renderElement(element, group) { + var style = getComputedStyle(element); + + var top = getBorder(style, "top"); + var right = getBorder(style, "right"); + var bottom = getBorder(style, "bottom"); + var left = getBorder(style, "left"); + + var rTL0 = getBorderRadius(style, "top-left"); + var rTR0 = getBorderRadius(style, "top-right"); + var rBL0 = getBorderRadius(style, "bottom-left"); + var rBR0 = getBorderRadius(style, "bottom-right"); + + var dir = getPropertyValue(style, "direction"); + + var backgroundColor = getPropertyValue(style, "background-color"); + backgroundColor = parseColor(backgroundColor); + + var backgroundImage = parseBackgroundImage( getPropertyValue(style, "background-image") ); + var backgroundRepeat = splitProperty( getPropertyValue(style, "background-repeat") ); + var backgroundPosition = splitProperty( getPropertyValue(style, "background-position") ); + var backgroundOrigin = splitProperty( getPropertyValue(style, "background-origin") ); + var backgroundSize = splitProperty( getPropertyValue(style, "background-size") ); + + // IE shrinks the text with text-overflow: ellipsis, + // apparently because the returned bounding box for the range + // is limited to the visible area minus space for the dots, + // instead of being the full width of the text. + // + // https://github.com/telerik/kendo/issues/5232 + // https://github.com/telerik/kendo-ui-core/issues/1868 + // + // We have to test it here rather than in renderText because + // text-overflow: ellipsis could be set on a parent element (not + // necessarily the one containing the text); in this case, + // getComputedStyle(elementWithTheText) will return "clip", not + // "ellipsis" (which is probably a bug, but oh well...) + var textOverflow, saveTextOverflow; + if (microsoft) { + textOverflow = style.textOverflow; // computed style + if (textOverflow == "ellipsis") { + saveTextOverflow = element.style.textOverflow; // own style. + element.style.textOverflow = "clip"; + } + } + + if (browser.msie && browser.version < 10) { + // IE9 hacks. getPropertyValue won't return the correct + // value. Sucks that we have to do it here, I'd prefer to + // move it in getPropertyValue, but we don't have the + // element. + backgroundPosition = splitProperty(element.currentStyle.backgroundPosition); + } + + var innerbox = innerBox(element.getBoundingClientRect(), "border-*-width", element); + + // CSS "clip" property - if present, replace the group with a + // new one which is clipped. This must happen before drawing + // the borders and background. + (function(){ + var clip = getPropertyValue(style, "clip"); + var m = /^\s*rect\((.*)\)\s*$/.exec(clip); + if (m) { + var a = m[1].split(/[ ,]+/g); + var top = a[0] == "auto" ? innerbox.top : parseFloat(a[0]) + innerbox.top; + var right = a[1] == "auto" ? innerbox.right : parseFloat(a[1]) + innerbox.left; + var bottom = a[2] == "auto" ? innerbox.bottom : parseFloat(a[2]) + innerbox.top; + var left = a[3] == "auto" ? innerbox.left : parseFloat(a[3]) + innerbox.left; + var tmp = new _drawing__WEBPACK_IMPORTED_MODULE_4__["Group"](); + var clipPath = new _drawing__WEBPACK_IMPORTED_MODULE_4__["Path"]() + .moveTo(left, top) + .lineTo(right, top) + .lineTo(right, bottom) + .lineTo(left, bottom) + .close(); + setClipping(tmp, clipPath); + group.append(tmp); + group = tmp; + updateClipbox(clipPath); + } + })(); + + var boxes, i, cells; + var display = getPropertyValue(style, "display"); + + if (display == "table-row") { + // because of rowspan/colspan, we shouldn't draw background of table row elements on the + // box given by its getBoundingClientRect, because if we do we risk overwritting a + // previously rendered cell. https://github.com/telerik/kendo/issues/4881 + boxes = []; + for (i = 0, cells = element.children; i < cells.length; ++i) { + boxes.push(cells[i].getBoundingClientRect()); + } + } else { + boxes = element.getClientRects(); + if (boxes.length == 1) { + // Workaround the missing borders in Chrome! getClientRects() boxes contains values + // rounded to integer. getBoundingClientRect() appears to work fine. We still need + // getClientRects() to support cases where there are more boxes (continued inline + // elements that might have border/background). + boxes = [ element.getBoundingClientRect() ]; + } + } + + // This function workarounds another Chrome bug, where boxes returned for a table with + // border-collapse: collapse will overlap the table border. Our rendering is not perfect in + // such case anyway, but with this is better than without it. + boxes = adjustBoxes(boxes); + + for (i = 0; i < boxes.length; ++i) { + drawOneBox(boxes[i], i === 0, i == boxes.length - 1); + } + + // Render links as separate groups. We can't use boxes returned by element's getClientRects + // because if display type is "inline" (default for ), boxes will not include the height of + // images inside. https://github.com/telerik/kendo-ui-core/issues/3359 + if (element.tagName == "A" && element.href && !/^#?$/.test(element.getAttribute("href"))) { + if (!nodeInfo._avoidLinks || !matches(element, nodeInfo._avoidLinks)) { + var r = document.createRange(); + r.selectNodeContents(element); + slice(r.getClientRects()).forEach(function(box){ + var g = new _drawing__WEBPACK_IMPORTED_MODULE_4__["Group"](); + g._pdfLink = { + url : element.href, + top : box.top, + right : box.right, + bottom : box.bottom, + left : box.left + }; + group.append(g); + }); + } + } + + if (boxes.length > 0 && display == "list-item" && !element.getAttribute("kendo-no-bullet")) { + drawBullet(boxes[0]); + } + + // overflow: hidden/auto - if present, replace the group with + // a new one clipped by the inner box. + (function(){ + function clipit() { + var clipPath = elementRoundBox(element, innerbox, "padding"); + var tmp = new _drawing__WEBPACK_IMPORTED_MODULE_4__["Group"](); + setClipping(tmp, clipPath); + group.append(tmp); + group = tmp; + updateClipbox(clipPath); + } + if (isFormField(element)) { + clipit(); + } else if (/^(hidden|auto|scroll)/.test(getPropertyValue(style, "overflow"))) { + clipit(); + } else if (/^(hidden|auto|scroll)/.test(getPropertyValue(style, "overflow-x"))) { + clipit(); + } else if (/^(hidden|auto|scroll)/.test(getPropertyValue(style, "overflow-y"))) { + clipit(); + } + })(); + + if (!maybeRenderWidget(element, group)) { + renderContents(element, group); + } + + if (microsoft && textOverflow == "ellipsis") { + element.style.textOverflow = saveTextOverflow; + } + + return group; // only utility functions after this line. + + function adjustBoxes(boxes) { + if (/^td$/i.test(element.tagName)) { + var table = nodeInfo.table; + if (table && getPropertyValue(table.style, "border-collapse") == "collapse") { + var tableBorderLeft = getBorder(table.style, "left").width; + var tableBorderTop = getBorder(table.style, "top").width; + // check if we need to adjust + if (tableBorderLeft === 0 && tableBorderTop === 0) { + return boxes; // nope + } + var tableBox = table.element.getBoundingClientRect(); + var firstCell = table.element.rows[0].cells[0]; + var firstCellBox = firstCell.getBoundingClientRect(); + if (firstCellBox.top == tableBox.top || firstCellBox.left == tableBox.left) { + return slice(boxes).map(function(box){ + return { + left : box.left + tableBorderLeft, + top : box.top + tableBorderTop, + right : box.right + tableBorderLeft, + bottom : box.bottom + tableBorderTop, + height : box.height, + width : box.width + }; + }); + } + } + } + return boxes; + } + + // this function will be called to draw each border. it + // draws starting at origin and the resulted path must be + // translated/rotated to be placed in the proper position. + // + // arguments are named as if it draws the top border: + // + // - `len` the length of the edge + // - `Wtop` the width of the edge (i.e. border-top-width) + // - `Wleft` the width of the left edge (border-left-width) + // - `Wright` the width of the right edge + // - `rl` and `rl` -- the border radius on the left and right + // (objects containing x and y, for horiz/vertical radius) + // - `transform` -- transformation to apply + // + function drawEdge(color, len, Wtop, Wleft, Wright, rl, rr, transform) { + if (Wtop <= 0) { + return; + } + + var path, edge = new _drawing__WEBPACK_IMPORTED_MODULE_4__["Group"](); + setTransform(edge, transform); + group.append(edge); + + sanitizeRadius(rl); + sanitizeRadius(rr); + + // draw main border. this is the area without the rounded corners + path = new _drawing__WEBPACK_IMPORTED_MODULE_4__["Path"]({ + fill: { color: color }, + stroke: null + }); + edge.append(path); + path.moveTo(rl.x ? Math.max(rl.x, Wleft) : 0, 0) + .lineTo(len - (rr.x ? Math.max(rr.x, Wright) : 0), 0) + .lineTo(len - Math.max(rr.x, Wright), Wtop) + .lineTo(Math.max(rl.x, Wleft), Wtop) + .close(); + + if (rl.x) { + drawRoundCorner(Wleft, rl, [ -1, 0, 0, 1, rl.x, 0 ]); + } + + if (rr.x) { + drawRoundCorner(Wright, rr, [ 1, 0, 0, 1, len - rr.x, 0 ]); + } + + // draws one round corner, starting at origin (needs to be + // translated/rotated to be placed properly). + function drawRoundCorner(Wright, r, transform) { + var angle = Math.PI/2 * Wright / (Wright + Wtop); + + // not sanitizing this one, because negative values + // are useful to fill the box correctly. + var ri = { + x: r.x - Wright, + y: r.y - Wtop + }; + + var path = new _drawing__WEBPACK_IMPORTED_MODULE_4__["Path"]({ + fill: { color: color }, + stroke: null + }).moveTo(0, 0); + + setTransform(path, transform); + + addArcToPath(path, 0, r.y, { + startAngle: -90, + endAngle: -radiansToDegrees(angle), + radiusX: r.x, + radiusY: r.y + }); + + if (ri.x > 0 && ri.y > 0) { + path.lineTo(ri.x * Math.cos(angle), r.y - ri.y * Math.sin(angle)); + addArcToPath(path, 0, r.y, { + startAngle: -radiansToDegrees(angle), + endAngle: -90, + radiusX: ri.x, + radiusY: ri.y, + anticlockwise: true + }); + } + else if (ri.x > 0) { + path.lineTo(ri.x, Wtop) + .lineTo(0, Wtop); + } + else { + path.lineTo(ri.x, Wtop) + .lineTo(ri.x, 0); + } + + edge.append(path.close()); + } + } + + function drawBackground(box) { + var background = new _drawing__WEBPACK_IMPORTED_MODULE_4__["Group"](); + setClipping(background, roundBox(box, rTL0, rTR0, rBR0, rBL0)); + group.append(background); + + if (backgroundColor) { + var path = new _drawing__WEBPACK_IMPORTED_MODULE_4__["Path"]({ + fill: { color: backgroundColor.toCssRgba() }, + stroke: null + }); + path.moveTo(box.left, box.top) + .lineTo(box.right, box.top) + .lineTo(box.right, box.bottom) + .lineTo(box.left, box.bottom) + .close(); + background.append(path); + } + + for (var i = backgroundImage.length; --i >= 0;) { + drawOneBackground( + background, box, + backgroundImage[i], + backgroundRepeat[i % backgroundRepeat.length], + backgroundPosition[i % backgroundPosition.length], + backgroundOrigin[i % backgroundOrigin.length], + backgroundSize[i % backgroundSize.length] + ); + } + } + + function drawOneBackground(group, box, background, backgroundRepeat, backgroundPosition, backgroundOrigin, backgroundSize) { + if (!background || (background == "none")) { + return; + } + + if (background.type == "url") { + // SVG taints the canvas, can't draw it. + if (/^url\(\"data:image\/svg/i.test(background.url)) { + return; + } + var img = IMAGE_CACHE[background.url]; + if (img && img.width > 0 && img.height > 0) { + drawBackgroundImage(group, box, img.width, img.height, function(group, rect){ + group.append(new _drawing__WEBPACK_IMPORTED_MODULE_4__["Image"](background.url, rect)); + }); + } + } else if (background.type == "linear") { + drawBackgroundImage(group, box, box.width, box.height, gradientRenderer(background)); + } else { + return; + } + + function drawBackgroundImage(group, box, img_width, img_height, renderBG) { + var aspect_ratio = img_width / img_height, f; + + // for background-origin: border-box the box is already appropriate + var orgBox = box; + if (backgroundOrigin == "content-box") { + orgBox = innerBox(orgBox, "border-*-width", element); + orgBox = innerBox(orgBox, "padding-*", element); + } else if (backgroundOrigin == "padding-box") { + orgBox = innerBox(orgBox, "border-*-width", element); + } + + if (!/^\s*auto(\s+auto)?\s*$/.test(backgroundSize)) { + if (backgroundSize == "contain") { + f = Math.min(orgBox.width / img_width, + orgBox.height / img_height); + img_width *= f; + img_height *= f; + } + else if (backgroundSize == "cover") { + f = Math.max(orgBox.width / img_width, + orgBox.height / img_height); + img_width *= f; + img_height *= f; + } + else { + var size = backgroundSize.split(/\s+/g); + // compute width + if (/%$/.test(size[0])) { + img_width = orgBox.width * parseFloat(size[0]) / 100; + } else { + img_width = parseFloat(size[0]); + } + // compute height + if (size.length == 1 || size[1] == "auto") { + img_height = img_width / aspect_ratio; + } else if (/%$/.test(size[1])) { + img_height = orgBox.height * parseFloat(size[1]) / 100; + } else { + img_height = parseFloat(size[1]); + } + } + } + + var pos = String(backgroundPosition); + + // IE sometimes reports single-word positions + // https://github.com/telerik/kendo-ui-core/issues/2786 + // + // it seems to switch to percentages when the horizontal + // position is not "center", therefore we don't handle + // multi-word cases here. All other browsers return + // percentages or pixels instead of keywords. At least + // for now... + switch (pos) { + case "bottom" : pos = "50% 100%"; break; + case "top" : pos = "50% 0"; break; + case "left" : pos = "0 50%"; break; + case "right" : pos = "100% 50%"; break; + case "center" : pos = "50% 50%"; break; + } + + pos = pos.split(/\s+/); + if (pos.length == 1) { + pos[1] = "50%"; + } + + if (/%$/.test(pos[0])) { + pos[0] = parseFloat(pos[0]) / 100 * (orgBox.width - img_width); + } else { + pos[0] = parseFloat(pos[0]); + } + if (/%$/.test(pos[1])) { + pos[1] = parseFloat(pos[1]) / 100 * (orgBox.height - img_height); + } else { + pos[1] = parseFloat(pos[1]); + } + + var rect = new _geometry__WEBPACK_IMPORTED_MODULE_0__["Rect"]([ orgBox.left + pos[0], orgBox.top + pos[1] ], [ img_width, img_height ]); + + // XXX: background-repeat could be implemented more + // efficiently as a fill pattern (at least for PDF + // output, probably SVG too). + + function rewX() { + while (rect.origin.x > box.left) { + rect.origin.x -= img_width; + } + } + + function rewY() { + while (rect.origin.y > box.top) { + rect.origin.y -= img_height; + } + } + + function repeatX() { + while (rect.origin.x < box.right) { + renderBG(group, rect.clone()); + rect.origin.x += img_width; + } + } + + if (backgroundRepeat == "no-repeat") { + renderBG(group, rect); + } + else if (backgroundRepeat == "repeat-x") { + rewX(); + repeatX(); + } + else if (backgroundRepeat == "repeat-y") { + rewY(); + while (rect.origin.y < box.bottom) { + renderBG(group, rect.clone()); + rect.origin.y += img_height; + } + } + else if (backgroundRepeat == "repeat") { + rewX(); + rewY(); + var origin = rect.origin.clone(); + while (rect.origin.y < box.bottom) { + rect.origin.x = origin.x; + repeatX(); + rect.origin.y += img_height; + } + } + } + } + + function drawBullet() { + var listStyleType = getPropertyValue(style, "list-style-type"); + if (listStyleType == "none") { + return; + } + var listStylePosition = getPropertyValue(style, "list-style-position"); + + function _drawBullet(f) { + saveStyle(element, function(){ + element.style.position = "relative"; + var bullet = element.ownerDocument.createElement(KENDO_PSEUDO_ELEMENT); + bullet.style.position = "absolute"; + bullet.style.boxSizing = "border-box"; + if (listStylePosition == "outside") { + bullet.style.width = "6em"; + bullet.style.left = "-6.8em"; + bullet.style.textAlign = "right"; + } else { + bullet.style.left = "0px"; + } + f(bullet); + element.insertBefore(bullet, element.firstChild); + renderElement(bullet, group); + element.removeChild(bullet); + }); + } + + function elementIndex(f) { + var a = element.parentNode.children; + var k = element.getAttribute("kendo-split-index"); + if (k != null) { + return f(k|0, a.length); + } + for (var i = 0; i < a.length; ++i) { + if (a[i] === element) { + return f(i, a.length); + } + } + } + + switch (listStyleType) { + case "circle": + case "disc": + case "square": + _drawBullet(function(bullet){ + // XXX: the science behind these values is called "trial and error". + bullet.style.fontSize = "60%"; + bullet.style.lineHeight = "200%"; + bullet.style.paddingRight = "0.5em"; + bullet.style.fontFamily = "DejaVu Serif"; + bullet.innerHTML = { + "disc" : "\u25cf", + "circle" : "\u25ef", + "square" : "\u25a0" + }[listStyleType]; + }); + break; + + case "decimal": + case "decimal-leading-zero": + _drawBullet(function(bullet){ + elementIndex(function(idx){ + ++idx; + if (listStyleType == "decimal-leading-zero" && idx < 10) { + idx = "0" + idx; + } + bullet.innerHTML = idx + "."; + }); + }); + break; + + case "lower-roman": + case "upper-roman": + _drawBullet(function(bullet){ + elementIndex(function(idx){ + idx = Object(_util__WEBPACK_IMPORTED_MODULE_2__["arabicToRoman"])(idx + 1); + if (listStyleType == "upper-roman") { + idx = idx.toUpperCase(); + } + bullet.innerHTML = idx + "."; + }); + }); + break; + + case "lower-latin": + case "lower-alpha": + case "upper-latin": + case "upper-alpha": + _drawBullet(function(bullet){ + elementIndex(function(idx){ + idx = alphaNumeral(idx); + if (/^upper/i.test(listStyleType)) { + idx = idx.toUpperCase(); + } + bullet.innerHTML = idx + "."; + }); + }); + break; + } + } + + // draws a single border box + function drawOneBox(box, isFirst, isLast) { + if (box.width === 0 || box.height === 0) { + return; + } + + drawBackground(box); + + var shouldDrawLeft = (left.width > 0 && ((isFirst && dir == "ltr") || (isLast && dir == "rtl"))); + var shouldDrawRight = (right.width > 0 && ((isLast && dir == "ltr") || (isFirst && dir == "rtl"))); + + // The most general case is that the 4 borders have different widths and border + // radiuses. The way that is handled is by drawing 3 Paths for each border: the + // straight line, and two round corners which represent half of the entire rounded + // corner. To simplify code those shapes are drawed at origin (by the drawEdge + // function), then translated/rotated into the right position. + // + // However, this leads to poor results due to rounding in the simpler cases where + // borders are straight lines. Therefore we handle a few such cases separately with + // straight lines. C^wC^wC^w -- nope, scratch that. poor rendering was because of a bug + // in Chrome (getClientRects() returns rounded integer values rather than exact floats. + // web dev is still a ghetto.) + + // first, just in case there is no border... + if (top.width === 0 && left.width === 0 && right.width === 0 && bottom.width === 0) { + return; + } + + // START paint borders + // if all borders have equal colors... + if (top.color == right.color && top.color == bottom.color && top.color == left.color) { + + // if same widths too, we can draw the whole border by stroking a single path. + if (top.width == right.width && top.width == bottom.width && top.width == left.width) + { + if (shouldDrawLeft && shouldDrawRight) { + // reduce box by half the border width, so we can draw it by stroking. + box = innerBox(box, top.width/2); + + // adjust the border radiuses, again by top.width/2, and make the path element. + var path = elementRoundBox(element, box, top.width/2); + path.options.stroke = { + color: top.color, + width: top.width + }; + group.append(path); + return; + } + } + } + + // if border radiuses are zero and widths are at most one pixel, we can again use simple + // paths. + if (rTL0.x === 0 && rTR0.x === 0 && rBR0.x === 0 && rBL0.x === 0) { + // alright, 1.9px will do as well. the difference in color blending should not be + // noticeable. + if (top.width < 2 && left.width < 2 && right.width < 2 && bottom.width < 2) { + // top border + if (top.width > 0) { + group.append( + new _drawing__WEBPACK_IMPORTED_MODULE_4__["Path"]({ + stroke: { width: top.width, color: top.color } + }) + .moveTo(box.left, box.top + top.width/2) + .lineTo(box.right, box.top + top.width/2) + ); + } + + // bottom border + if (bottom.width > 0) { + group.append( + new _drawing__WEBPACK_IMPORTED_MODULE_4__["Path"]({ + stroke: { width: bottom.width, color: bottom.color } + }) + .moveTo(box.left, box.bottom - bottom.width/2) + .lineTo(box.right, box.bottom - bottom.width/2) + ); + } + + // left border + if (shouldDrawLeft) { + group.append( + new _drawing__WEBPACK_IMPORTED_MODULE_4__["Path"]({ + stroke: { width: left.width, color: left.color } + }) + .moveTo(box.left + left.width/2, box.top) + .lineTo(box.left + left.width/2, box.bottom) + ); + } + + // right border + if (shouldDrawRight) { + group.append( + new _drawing__WEBPACK_IMPORTED_MODULE_4__["Path"]({ + stroke: { width: right.width, color: right.color } + }) + .moveTo(box.right - right.width/2, box.top) + .lineTo(box.right - right.width/2, box.bottom) + ); + } + + return; + } + } + // END paint borders + + var tmp = adjustBorderRadiusForBox(box, rTL0, rTR0, rBR0, rBL0); + var rTL = tmp.tl; + var rTR = tmp.tr; + var rBR = tmp.br; + var rBL = tmp.bl; + + // top border + drawEdge(top.color, + box.width, top.width, left.width, right.width, + rTL, rTR, + [ 1, 0, 0, 1, box.left, box.top ]); + + // bottom border + drawEdge(bottom.color, + box.width, bottom.width, right.width, left.width, + rBR, rBL, + [ -1, 0, 0, -1, box.right, box.bottom ]); + + // for left/right borders we need to invert the border-radiuses + function inv(p) { + return { x: p.y, y: p.x }; + } + + // left border + drawEdge(left.color, + box.height, left.width, bottom.width, top.width, + inv(rBL), inv(rTL), + [ 0, -1, 1, 0, box.left, box.bottom ]); + + // right border + drawEdge(right.color, + box.height, right.width, top.width, bottom.width, + inv(rTR), inv(rBR), + [ 0, 1, -1, 0, box.right, box.top ]); + } +} + +function gradientRenderer(gradient) { + return function(group, rect) { + var width = rect.width(), height = rect.height(); + + switch (gradient.type) { + case "linear": + + // figure out the angle. + var angle = gradient.angle != null ? gradient.angle : Math.PI; + switch (gradient.to) { + case "top": + angle = 0; + break; + case "left": + angle = -Math.PI / 2; + break; + case "bottom": + angle = Math.PI; + break; + case "right": + angle = Math.PI / 2; + break; + case "top left": case "left top": + angle = -Math.atan2(height, width); + break; + case "top right": case "right top": + angle = Math.atan2(height, width); + break; + case "bottom left": case "left bottom": + angle = Math.PI + Math.atan2(height, width); + break; + case "bottom right": case "right bottom": + angle = Math.PI - Math.atan2(height, width); + break; + } + + if (gradient.reverse) { + angle -= Math.PI; + } + + // limit the angle between 0..2PI + angle %= 2 * Math.PI; + if (angle < 0) { + angle += 2 * Math.PI; + } + + // compute gradient's start/end points. here len is the length of the gradient line + // and x,y is the end point relative to the center of the rectangle in conventional + // (math) axis direction. + + // this is the original (unscaled) length of the gradient line. needed to deal with + // absolutely positioned color stops. formula from the CSS spec: + // http://dev.w3.org/csswg/css-images-3/#linear-gradient-syntax + var pxlen = Math.abs(width * Math.sin(angle)) + Math.abs(height * Math.cos(angle)); + + // The math below is pretty simple, but it took a while to figure out. We compute x + // and y, the *end* of the gradient line. However, we want to transform them into + // element-based coordinates (SVG's gradientUnits="objectBoundingBox"). That means, + // x=0 is the left edge, x=1 is the right edge, y=0 is the top edge and y=1 is the + // bottom edge. + // + // A naive approach would use the original angle for these calculations. Say we'd + // like to draw a gradient angled at 45deg in a 100x400 box. When we use + // objectBoundingBox, the renderer will draw it in a 1x1 *square* box, and then + // scale that to the desired dimensions. The 45deg angle will look more like 70deg + // after scaling. SVG (http://www.w3.org/TR/SVG/pservers.html#LinearGradients) says + // the following: + // + // When gradientUnits="objectBoundingBox" and 'gradientTransform' is the + // identity matrix, the normal of the linear gradient is perpendicular to the + // gradient vector in object bounding box space (i.e., the abstract coordinate + // system where (0,0) is at the top/left of the object bounding box and (1,1) is + // at the bottom/right of the object bounding box). When the object's bounding + // box is not square, the gradient normal which is initially perpendicular to + // the gradient vector within object bounding box space may render + // non-perpendicular relative to the gradient vector in user space. If the + // gradient vector is parallel to one of the axes of the bounding box, the + // gradient normal will remain perpendicular. This transformation is due to + // application of the non-uniform scaling transformation from bounding box space + // to user space. + // + // which is an extremely long and confusing way to tell what I just said above. + // + // For this reason we need to apply the reverse scaling to the original angle, so + // that when it'll finally be rendered it'll actually be at the desired slope. Now + // I'll let you figure out the math yourself. + + var scaledAngle = Math.atan(width * Math.tan(angle) / height); + var sin = Math.sin(scaledAngle), cos = Math.cos(scaledAngle); + var len = Math.abs(sin) + Math.abs(cos); + var x = len/2 * sin; + var y = len/2 * cos; + + // Because of the arctangent, our scaledAngle ends up between -PI/2..PI/2, possibly + // losing the intended direction of the gradient. The following fixes it. + if (angle > Math.PI/2 && angle <= 3*Math.PI/2) { + x = -x; + y = -y; + } + + // compute the color stops. + var implicit = [], right = 0; + var stops = gradient.stops.map(function(s, i){ + var offset = s.percent; + if (offset) { + offset = parseFloat(offset) / 100; + } else if (s.length) { + offset = parseFloat(s.length) / pxlen; + } else if (i === 0) { + offset = 0; + } else if (i == gradient.stops.length - 1) { + offset = 1; + } + var stop = { + color: s.color.toCssRgba(), + offset: offset + }; + if (offset != null) { + right = offset; + // fix implicit offsets + implicit.forEach(function(s, i){ + var stop = s.stop; + stop.offset = s.left + (right - s.left) * (i + 1) / (implicit.length + 1); + }); + implicit = []; + } else { + implicit.push({ left: right, stop: stop }); + } + return stop; + }); + + var start = [ 0.5 - x, 0.5 + y ]; + var end = [ 0.5 + x, 0.5 - y ]; + + // finally, draw it. + group.append( + _drawing__WEBPACK_IMPORTED_MODULE_4__["Path"].fromRect(rect) + .stroke(null) + .fill(new _drawing__WEBPACK_IMPORTED_MODULE_4__["LinearGradient"]({ + start : start, + end : end, + stops : stops, + userSpace : false + })) + ); + break; + case "radial": + // XXX: + if (window.console && window.console.log) { + window.console.log("Radial gradients are not yet supported in HTML renderer"); + } + break; + } + }; +} + +function maybeRenderWidget(element, group) { + var visual; + + if (element._kendoExportVisual) { + visual = element._kendoExportVisual(); + } else if (window.kendo && window.kendo.jQuery && element.getAttribute(window.kendo.attr("role"))) { + var widget = window.kendo.widgetInstance(window.kendo.jQuery(element)); + if (widget && (widget.exportDOMVisual || widget.exportVisual)) { + if (widget.exportDOMVisual) { + visual = widget.exportDOMVisual(); + } else { + visual = widget.exportVisual(); + } + } + } + + if (!visual) { + return false; + } + + var wrap = new _drawing__WEBPACK_IMPORTED_MODULE_4__["Group"](); + wrap.children.push(visual); + + var bbox = element.getBoundingClientRect(); + wrap.transform(_geometry__WEBPACK_IMPORTED_MODULE_0__["transform"]().translate(bbox.left, bbox.top)); + + group.append(wrap); + + return true; +} + +function renderImage(element, url, group) { + var box = getContentBox(element); + var rect = new _geometry__WEBPACK_IMPORTED_MODULE_0__["Rect"]([ box.left, box.top ], [ box.width, box.height ]); + var image = new _drawing__WEBPACK_IMPORTED_MODULE_4__["Image"](url, rect); + setClipping(image, elementRoundBox(element, box, "content")); + group.append(image); +} + +function zIndexSort(a, b) { + var sa = getComputedStyle(a); + var sb = getComputedStyle(b); + var za = parseFloat(getPropertyValue(sa, "z-index")); + var zb = parseFloat(getPropertyValue(sb, "z-index")); + var pa = getPropertyValue(sa, "position"); + var pb = getPropertyValue(sb, "position"); + if (isNaN(za) && isNaN(zb)) { + if ((/static|absolute/.test(pa)) && (/static|absolute/.test(pb))) { + return 0; + } + if (pa == "static") { + return -1; + } + if (pb == "static") { + return 1; + } + return 0; + } + if (isNaN(za)) { + return zb === 0 ? 0 : zb > 0 ? -1 : 1; + } + if (isNaN(zb)) { + return za === 0 ? 0 : za > 0 ? 1 : -1; + } + return parseFloat(za) - parseFloat(zb); +} + +function isFormField(element) { + return /^(?:textarea|select|input)$/i.test(element.tagName); +} + +function getSelectedOption(element) { + if (element.selectedOptions && element.selectedOptions.length > 0) { + return element.selectedOptions[0]; + } + return element.options[element.selectedIndex]; +} + +function renderCheckbox(element, group) { + var style = getComputedStyle(element); + var color = getPropertyValue(style, "color"); + var box = element.getBoundingClientRect(); + if (element.type == "checkbox") { + group.append( + _drawing__WEBPACK_IMPORTED_MODULE_4__["Path"].fromRect( + new _geometry__WEBPACK_IMPORTED_MODULE_0__["Rect"]([ box.left+1, box.top+1 ], + [ box.width-2, box.height-2 ]) + ).stroke(color, 1) + ); + if (element.checked) { + // fill a rectangle inside? looks kinda ugly. + // group.append( + // Path.fromRect( + // new geo.Rect([ box.left+4, box.top+4 ], + // [ box.width-8, box.height-8]) + // ).fill(color).stroke(null) + // ); + + // let's draw a checkmark instead. artistic, eh? + group.append( + new _drawing__WEBPACK_IMPORTED_MODULE_4__["Path"]() + .stroke(color, 1.2) + .moveTo(box.left + 0.22 * box.width, + box.top + 0.55 * box.height) + .lineTo(box.left + 0.45 * box.width, + box.top + 0.75 * box.height) + .lineTo(box.left + 0.78 * box.width, + box.top + 0.22 * box.width) + ); + } + } else { + group.append( + new _drawing__WEBPACK_IMPORTED_MODULE_4__["Circle"]( + new _geometry__WEBPACK_IMPORTED_MODULE_0__["Circle"]([ + (box.left + box.right) / 2, + (box.top + box.bottom) / 2 + ], Math.min(box.width-2, box.height-2) / 2) + ).stroke(color, 1) + ); + if (element.checked) { + group.append( + new _drawing__WEBPACK_IMPORTED_MODULE_4__["Circle"]( + new _geometry__WEBPACK_IMPORTED_MODULE_0__["Circle"]([ + (box.left + box.right) / 2, + (box.top + box.bottom) / 2 + ], Math.min(box.width-8, box.height-8) / 2) + ).fill(color).stroke(null) + ); + } + } +} + +function renderFormField(element, group) { + var tag = element.tagName.toLowerCase(); + if (tag == "input" && (element.type == "checkbox" || element.type == "radio")) { + return renderCheckbox(element, group); + } + var p = element.parentNode; + var doc = element.ownerDocument; + var el = doc.createElement(KENDO_PSEUDO_ELEMENT); + var option; + el.style.cssText = getCssText(getComputedStyle(element)); + if (tag == "input") { + el.style.whiteSpace = "pre"; + } + if (tag == "select" || tag == "textarea") { + el.style.overflow = "auto"; + } + if (tag == "select") { + if (element.multiple) { + for (var i = 0; i < element.options.length; ++i) { + option = doc.createElement(KENDO_PSEUDO_ELEMENT); + option.style.cssText = getCssText(getComputedStyle(element.options[i])); + option.style.display = "block"; // IE9 messes up without this + option.textContent = element.options[i].textContent; + el.appendChild(option); + } + } else { + option = getSelectedOption(element); + if (option) { + el.textContent = option.textContent; + } + } + } else { + el.textContent = element.value; + } + p.insertBefore(el, element); + el.scrollLeft = element.scrollLeft; + el.scrollTop = element.scrollTop; + + // must temporarily hide the original element, otherwise it + // may affect layout of the fake element we want to render. + element.style.display = "none"; + + renderContents(el, group); + element.style.display = ""; + p.removeChild(el); +} + +function renderContents(element, group) { + if (nodeInfo._stackingContext.element === element) { + // the group that was set in pushNodeInfo might have + // changed due to clipping/transforms, update it here. + nodeInfo._stackingContext.group = group; + } + switch (element.tagName.toLowerCase()) { + case "img": + renderImage(element, element.src, group); + break; + + case "canvas": + try { + renderImage(element, element.toDataURL("image/png"), group); + } catch (ex) { + // tainted; can't draw it, ignore. + } + break; + + case "textarea": + case "input": + case "select": + renderFormField(element, group); + break; + + default: + var children = [], floats = [], positioned = []; + for (var i = element.firstChild; i; i = i.nextSibling) { + switch (i.nodeType) { + case 3: // Text + if (/\S/.test(i.data)) { + renderText(element, i, group); + } + break; + case 1: // Element + var style = getComputedStyle(i); + var floating = getPropertyValue(style, "float"); + var position = getPropertyValue(style, "position"); + if (position != "static") { + positioned.push(i); + } + else if (floating != "none") { + floats.push(i); + } else { + children.push(i); + } + break; + } + } + + Object(_util__WEBPACK_IMPORTED_MODULE_2__["mergeSort"])(children, zIndexSort).forEach(function(el){ renderElement(el, group); }); + Object(_util__WEBPACK_IMPORTED_MODULE_2__["mergeSort"])(floats, zIndexSort).forEach(function(el){ renderElement(el, group); }); + Object(_util__WEBPACK_IMPORTED_MODULE_2__["mergeSort"])(positioned, zIndexSort).forEach(function(el){ renderElement(el, group); }); + } +} + +function renderText(element, node, group) { + if (emptyClipbox()) { + return; + } + var style = getComputedStyle(element); + + if (parseFloat(getPropertyValue(style, "text-indent")) < -500) { + // assume it should not be displayed. the slider's + // draggable handle displays a Drag text for some reason, + // having text-indent: -3333px. + return; + } + + var text = node.data; + var start = 0; + var end = text.search(/\S\s*$/) + 1; + + if (!end) { + return; // whitespace-only node + } + + var fontSize = getPropertyValue(style, "font-size"); + var lineHeight = getPropertyValue(style, "line-height"); + + // simply getPropertyValue("font") doesn't work in Firefox :-\ + var font = [ + getPropertyValue(style, "font-style"), + getPropertyValue(style, "font-variant"), + getPropertyValue(style, "font-weight"), + fontSize, // no need for line height here; it breaks layout in FF + getPropertyValue(style, "font-family") + ].join(" "); + + fontSize = parseFloat(fontSize); + lineHeight = parseFloat(lineHeight); + + if (fontSize === 0) { + return; + } + + var color = getPropertyValue(style, "color"); + var range = element.ownerDocument.createRange(); + var align = getPropertyValue(style, "text-align"); + var isJustified = align == "justify"; + var columnCount = getPropertyValue(style, "column-count", 1); + var whiteSpace = getPropertyValue(style, "white-space"); + var textTransform = getPropertyValue(style, "text-transform"); + + // A line of 500px, with a font of 12px, contains an average of 80 characters, but since we + // err, we'd like to guess a bigger number rather than a smaller one. Multiplying by 5 + // seems to be a good option. + var estimateLineLength = element.getBoundingClientRect().width / fontSize * 5; + if (estimateLineLength === 0) { + estimateLineLength = 500; + } + + // we'll maintain this so we can workaround bugs in Chrome's Range.getClientRects + // https://github.com/telerik/kendo/issues/5740 + var prevLineBottom = null; + + var underline = nodeInfo["underline"]; + var lineThrough = nodeInfo["line-through"]; + var overline = nodeInfo["overline"]; + var hasDecoration = underline || lineThrough || overline; + + // doChunk returns true when all text has been rendered + while (!doChunk()) {} + + if (hasDecoration) { + range.selectNode(node); + slice(range.getClientRects()).forEach(decorate); + } + + return; // only function declarations after this line + + function actuallyGetRangeBoundingRect(range) { + // XXX: to be revised when this Chrome bug is fixed: + // https://bugs.chromium.org/p/chromium/issues/detail?id=612459 + if (microsoft || browser.chrome) { + // Workaround browser bugs: IE and Chrome would sometimes + // return 0 or 1-width rectangles before or after the main + // one. https://github.com/telerik/kendo/issues/4674 + + // Actually Chrome 50 got worse, since the rectangles can now have the width of a + // full character, making it hard to tell whether it's a bogus rectangle or valid + // selection location. The workaround is to ignore rectangles that fall on the + // previous line. https://github.com/telerik/kendo/issues/5740 + var rectangles = range.getClientRects(), box = { + top : Infinity, + right : -Infinity, + bottom : -Infinity, + left : Infinity + }, done = false; + for (var i = 0; i < rectangles.length; ++i) { + var b = rectangles[i]; + if (b.width <= 1 || b.bottom === prevLineBottom) { + continue; // bogus rectangle + } + box.left = Math.min(b.left , box.left); + box.top = Math.min(b.top , box.top); + box.right = Math.max(b.right , box.right); + box.bottom = Math.max(b.bottom , box.bottom); + done = true; + } + if (!done) { + return range.getBoundingClientRect(); + } + box.width = box.right - box.left; + box.height = box.bottom - box.top; + return box; + } + return range.getBoundingClientRect(); + } + + // Render a chunk of text, typically one line (but for justified text we render each word as + // a separate Text object, because spacing is variable). Returns true when it finished the + // current node. After each chunk it updates `start` to just after the last rendered + // character. + function doChunk() { + var origStart = start; + var box, pos = text.substr(start).search(/\S/); + start += pos; + if (pos < 0 || start >= end) { + return true; + } + + // Select a single character to determine the height of a line of text. The box.bottom + // will be essential for us to figure out where the next line begins. + range.setStart(node, start); + range.setEnd(node, start + 1); + box = actuallyGetRangeBoundingRect(range); + + // for justified text we must split at each space, because space has variable width. + var found = false; + if (isJustified || columnCount > 1) { + pos = text.substr(start).search(/\s/); + if (pos >= 0) { + // we can only split there if it's on the same line, otherwise we'll fall back + // to the default mechanism (see findEOL below). + range.setEnd(node, start + pos); + var r = actuallyGetRangeBoundingRect(range); + if (r.bottom == box.bottom) { + box = r; + found = true; + start += pos; + } + } + } + + if (!found) { + // This code does three things: (1) it selects one line of text in `range`, (2) it + // leaves the bounding rect of that line in `box` and (3) it returns the position + // just after the EOL. We know where the line starts (`start`) but we don't know + // where it ends. To figure this out, we select a piece of text and look at the + // bottom of the bounding box. If it changes, we have more than one line selected + // and should retry with a smaller selection. + // + // To speed things up, we first try to select all text in the node (`start` -> + // `end`). If there's more than one line there, then select only half of it. And + // so on. When we find a value for `end` that fits in one line, we try increasing + // it (also in halves) until we get to the next line. The algorithm stops when the + // right side of the bounding box does not change. + // + // One more thing to note is that everything happens in a single Text DOM node. + // There's no other tags inside it, therefore the left/top coordinates of the + // bounding box will not change. + pos = (function findEOL(min, eol, max){ + range.setEnd(node, eol); + var r = actuallyGetRangeBoundingRect(range); + if (r.bottom != box.bottom && min < eol) { + return findEOL(min, (min + eol) >> 1, eol); + } else if (r.right != box.right) { + box = r; + if (eol < max) { + return findEOL(eol, (eol + max) >> 1, max); + } else { + return eol; + } + } else { + return eol; + } + })(start, Math.min(end, start + estimateLineLength), end); + + if (pos == start) { + // if EOL is at the start, then no more text fits on this line. Skip the + // remainder of this node entirely to avoid a stack overflow. + return true; + } + start = pos; + + pos = range.toString().search(/\s+$/); + if (pos === 0) { + return false; // whitespace only; we should not get here. + } + if (pos > 0) { + // eliminate trailing whitespace + range.setEnd(node, range.startOffset + pos); + box = actuallyGetRangeBoundingRect(range); + } + } + + // another workaround for IE: if we rely on getBoundingClientRect() we'll overlap with the bullet for LI + // elements. Calling getClientRects() and using the *first* rect appears to give us the correct location. + // Note: not to be used in Chrome as it randomly returns a zero-width rectangle from the previous line. + if (microsoft) { + box = range.getClientRects()[0]; + } + + var str = range.toString(); + if (!/^(?:pre|pre-wrap)$/i.test(whiteSpace)) { + // node with non-significant space -- collapse whitespace. + str = str.replace(/\s+/g, " "); + } + else if (/\t/.test(str)) { + // with significant whitespace we need to do something about literal TAB characters. + // There's no TAB glyph in a font so they would be rendered in PDF as an empty box, + // and the whole text will stretch to fill the original width. The core PDF lib + // does not have sufficient context to deal with it. + + // calculate the starting column here, since we initially discarded any whitespace. + var cc = 0; + for (pos = origStart; pos < range.startOffset; ++pos) { + var code = text.charCodeAt(pos); + if (code == 9) { + // when we meet a TAB we must round up to the next tab stop. + // in all browsers TABs seem to be 8 characters. + cc += 8 - cc % 8; + } else if (code == 10 || code == 13) { + // just in case we meet a newline we must restart. + cc = 0; + } else { + // ordinary character --> advance one column + cc++; + } + } + + // based on starting column, replace any TAB characters in the string we actually + // have to display with spaces so that they align to columns multiple of 8. + while ((pos = str.search("\t")) >= 0) { + var indent = " ".substr(0, 8 - (cc + pos) % 8); + str = str.substr(0, pos) + indent + str.substr(pos + 1); + } + } + + if (!found) { + prevLineBottom = box.bottom; + } + drawText(str, box); + } + + function drawText(str, box) { + // In IE the box height will be approximately lineHeight, while in + // other browsers it'll (correctly) be the height of the bounding + // box for the current text/font. Which is to say, IE sucks again. + // The only good solution I can think of is to measure the text + // ourselves and center the bounding box. + if (microsoft && !isNaN(lineHeight)) { + var height = getFontHeight(font); + var top = (box.top + box.bottom - height) / 2; + box = { + top : top, + right : box.right, + bottom : top + height, + left : box.left, + height : height, + width : box.right - box.left + }; + } + + // var path = new Path({ stroke: { color: "red" }}); + // path.moveTo(box.left, box.top) + // .lineTo(box.right, box.top) + // .lineTo(box.right, box.bottom) + // .lineTo(box.left, box.bottom) + // .close(); + // group.append(path); + + switch (textTransform) { + case "uppercase": + str = str.toUpperCase(); + break; + case "lowercase": + str = str.toLowerCase(); + break; + case "capitalize": + str = str.replace(/(?:^|\s)\S/g, function (l) { return l.toUpperCase(); }); + break; + } + + var text = new TextRect( + str, new _geometry__WEBPACK_IMPORTED_MODULE_0__["Rect"]([ box.left, box.top ], + [ box.width, box.height ]), + { + font: font, + fill: { color: color } + } + ); + group.append(text); + } + + function decorate(box) { + line(underline, box.bottom); + line(lineThrough, box.bottom - box.height / 2.7); + line(overline, box.top); + function line(color, ypos) { + if (color) { + var width = fontSize / 12; + var path = new _drawing__WEBPACK_IMPORTED_MODULE_4__["Path"]({ stroke: { + width: width, + color: color + }}); + + ypos -= width; + path.moveTo(box.left, ypos) + .lineTo(box.right, ypos); + group.append(path); + } + } + } +} + +function groupInStackingContext(element, group, zIndex) { + var main; + if (zIndex != "auto") { + // use the current stacking context + main = nodeInfo._stackingContext.group; + zIndex = parseFloat(zIndex); + } else { + // normal flow — use given container. we still have to + // figure out where should we insert this element with the + // assumption that its z-index is zero, as the group might + // already contain elements with higher z-index. + main = group; + zIndex = 0; + } + var a = main.children; + for (var i = 0; i < a.length; ++i) { + if (a[i]._dom_zIndex != null && a[i]._dom_zIndex > zIndex) { + break; + } + } + + var tmp = new _drawing__WEBPACK_IMPORTED_MODULE_4__["Group"](); + main.insert(i, tmp); + tmp._dom_zIndex = zIndex; + + if (main !== group) { + // console.log("Placing", element, "in", nodeInfo._stackingContext.element, "at position", i, " / ", a.length); + // console.log(a.slice(i+1)); + + // if (nodeInfo._matrix) { + // tmp.transform(nodeInfo._matrix); + // } + if (nodeInfo._clipbox) { + var m = nodeInfo._matrix.invert(); + var r = nodeInfo._clipbox.transformCopy(m); + setClipping(tmp, _drawing__WEBPACK_IMPORTED_MODULE_4__["Path"].fromRect(r)); + // console.log(r); + // tmp.append(Path.fromRect(r)); + // tmp.append(new Text(element.className || element.id, r.topLeft())); + } + } + + return tmp; +} + +function renderElement(element, container) { + var style = getComputedStyle(element); + + updateCounters(style); + + if (/^(style|script|link|meta|iframe|svg|col|colgroup)$/i.test(element.tagName)) { + return; + } + + if (nodeInfo._clipbox == null) { + return; + } + + var opacity = parseFloat(getPropertyValue(style, "opacity")); + var visibility = getPropertyValue(style, "visibility"); + var display = getPropertyValue(style, "display"); + + if (opacity === 0 || visibility == "hidden" || display == "none") { + return; + } + + var tr = getTransform(style); + var group; + + var zIndex = getPropertyValue(style, "z-index"); + if ((tr || opacity < 1) && zIndex == "auto") { + zIndex = 0; + } + group = groupInStackingContext(element, container, zIndex); + + // XXX: remove at some point + // group._pdfElement = element; + // group.options._pdfDebug = ""; + // if (element.id) { + // group.options._pdfDebug = "#" + element.id; + // } + // if (element.className) { + // group.options._pdfDebug += "." + element.className.split(" ").join("."); + // } + + if (opacity < 1) { + group.opacity(opacity * group.opacity()); + } + + pushNodeInfo(element, style, group); + + if (!tr) { + _renderWithPseudoElements(element, group); + } + else { + saveStyle(element, function(){ + // must clear transform, so getBoundingClientRect returns correct values. + pleaseSetPropertyValue(element.style, "transform", "none", "important"); + + // must also clear transitions, so correct values are returned *immediately* + pleaseSetPropertyValue(element.style, "transition", "none", "important"); + + // the presence of any transform makes it behave like it had position: relative, + // because why not. + // http://meyerweb.com/eric/thoughts/2011/09/12/un-fixing-fixed-elements-with-css-transforms/ + if (getPropertyValue(style, "position") == "static") { + // but only if it's not already positioned. :-/ + pleaseSetPropertyValue(element.style, "position", "relative", "important"); + } + + // must translate to origin before applying the CSS + // transformation, then translate back. + var bbox = element.getBoundingClientRect(); + var x = bbox.left + tr.origin[0]; + var y = bbox.top + tr.origin[1]; + var m = [ 1, 0, 0, 1, -x, -y ]; + m = mmul(m, tr.matrix); + m = mmul(m, [ 1, 0, 0, 1, x, y ]); + m = setTransform(group, m); + + nodeInfo._matrix = nodeInfo._matrix.multiplyCopy(m); + + _renderWithPseudoElements(element, group); + }); + } + + popNodeInfo(); + + //drawDebugBox(element.getBoundingClientRect(), container); +} + +// function drawDebugBox(box, group, color) { +// var path = Path.fromRect(new geo.Rect([ box.left, box.top ], [ box.width, box.height ])); +// if (color) { +// path.stroke(color); +// } +// group.append(path); +// } + +// function dumpTextNode(node) { +// var txt = node.data.replace(/^\s+/, ""); +// if (txt.length < 100) { +// console.log(node.data.length + ": |" + txt); +// } else { +// console.log(node.data.length + ": |" + txt.substr(0, 50) + "|...|" + txt.substr(-50)); +// } +// } + +function mmul(a, b) { + var a1 = a[0], b1 = a[1], c1 = a[2], d1 = a[3], e1 = a[4], f1 = a[5]; + var a2 = b[0], b2 = b[1], c2 = b[2], d2 = b[3], e2 = b[4], f2 = b[5]; + return [ + a1*a2 + b1*c2, a1*b2 + b1*d2, + c1*a2 + d1*c2, c1*b2 + d1*d2, + e1*a2 + f1*c2 + e2, e1*b2 + f1*d2 + f2 + ]; +} + + + + + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/main.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _drawing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/drawing.js"); + __webpack_require__.d(__webpack_exports__, "drawing", function() { return _drawing__WEBPACK_IMPORTED_MODULE_0__; }); + var _geometry__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry.js"); + __webpack_require__.d(__webpack_exports__, "geometry", function() { return _geometry__WEBPACK_IMPORTED_MODULE_1__; }); + var _pdf__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/pdf.js"); + __webpack_require__.d(__webpack_exports__, "pdf", function() { return _pdf__WEBPACK_IMPORTED_MODULE_2__; }); + var _html__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/html.js"); + __webpack_require__.d(__webpack_exports__, "drawDOM", function() { return _html__WEBPACK_IMPORTED_MODULE_3__["drawDOM"]; }); + + __webpack_require__.d(__webpack_exports__, "exportPDF", function() { return _pdf__WEBPACK_IMPORTED_MODULE_2__["exportPDF"]; }); + + __webpack_require__.d(__webpack_exports__, "exportImage", function() { return _drawing__WEBPACK_IMPORTED_MODULE_0__["exportImage"]; }); + + __webpack_require__.d(__webpack_exports__, "exportSVG", function() { return _drawing__WEBPACK_IMPORTED_MODULE_0__["exportSVG"]; }); + + var _common__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/common.js"); + __webpack_require__.d(__webpack_exports__, "animationFrame", function() { return _common__WEBPACK_IMPORTED_MODULE_4__["animationFrame"]; }); + + __webpack_require__.d(__webpack_exports__, "Class", function() { return _common__WEBPACK_IMPORTED_MODULE_4__["Class"]; }); + + __webpack_require__.d(__webpack_exports__, "Color", function() { return _common__WEBPACK_IMPORTED_MODULE_4__["Color"]; }); + + __webpack_require__.d(__webpack_exports__, "htmlEncode", function() { return _common__WEBPACK_IMPORTED_MODULE_4__["htmlEncode"]; }); + + __webpack_require__.d(__webpack_exports__, "logToConsole", function() { return _common__WEBPACK_IMPORTED_MODULE_4__["logToConsole"]; }); + + __webpack_require__.d(__webpack_exports__, "Observable", function() { return _common__WEBPACK_IMPORTED_MODULE_4__["Observable"]; }); + + __webpack_require__.d(__webpack_exports__, "saveAs", function() { return _common__WEBPACK_IMPORTED_MODULE_4__["saveAs"]; }); + + __webpack_require__.d(__webpack_exports__, "support", function() { return _common__WEBPACK_IMPORTED_MODULE_4__["support"]; }); + + __webpack_require__.d(__webpack_exports__, "template", function() { return _common__WEBPACK_IMPORTED_MODULE_4__["template"]; }); + + __webpack_require__.d(__webpack_exports__, "throttle", function() { return _common__WEBPACK_IMPORTED_MODULE_4__["throttle"]; }); + + __webpack_require__.d(__webpack_exports__, "parseColor", function() { return _common__WEBPACK_IMPORTED_MODULE_4__["parseColor"]; }); + + __webpack_require__.d(__webpack_exports__, "namedColors", function() { return _common__WEBPACK_IMPORTED_MODULE_4__["namedColors"]; }); + + __webpack_require__.d(__webpack_exports__, "Animation", function() { return _drawing__WEBPACK_IMPORTED_MODULE_0__["Animation"]; }); + + __webpack_require__.d(__webpack_exports__, "AnimationFactory", function() { return _drawing__WEBPACK_IMPORTED_MODULE_0__["AnimationFactory"]; }); + + __webpack_require__.d(__webpack_exports__, "Arc", function() { return _drawing__WEBPACK_IMPORTED_MODULE_0__["Arc"]; }); + + __webpack_require__.d(__webpack_exports__, "BaseNode", function() { return _drawing__WEBPACK_IMPORTED_MODULE_0__["BaseNode"]; }); + + __webpack_require__.d(__webpack_exports__, "Circle", function() { return _drawing__WEBPACK_IMPORTED_MODULE_0__["Circle"]; }); + + __webpack_require__.d(__webpack_exports__, "Element", function() { return _drawing__WEBPACK_IMPORTED_MODULE_0__["Element"]; }); + + __webpack_require__.d(__webpack_exports__, "Gradient", function() { return _drawing__WEBPACK_IMPORTED_MODULE_0__["Gradient"]; }); + + __webpack_require__.d(__webpack_exports__, "GradientStop", function() { return _drawing__WEBPACK_IMPORTED_MODULE_0__["GradientStop"]; }); + + __webpack_require__.d(__webpack_exports__, "Group", function() { return _drawing__WEBPACK_IMPORTED_MODULE_0__["Group"]; }); + + __webpack_require__.d(__webpack_exports__, "Image", function() { return _drawing__WEBPACK_IMPORTED_MODULE_0__["Image"]; }); + + __webpack_require__.d(__webpack_exports__, "Layout", function() { return _drawing__WEBPACK_IMPORTED_MODULE_0__["Layout"]; }); + + __webpack_require__.d(__webpack_exports__, "LinearGradient", function() { return _drawing__WEBPACK_IMPORTED_MODULE_0__["LinearGradient"]; }); + + __webpack_require__.d(__webpack_exports__, "MultiPath", function() { return _drawing__WEBPACK_IMPORTED_MODULE_0__["MultiPath"]; }); + + __webpack_require__.d(__webpack_exports__, "ObserversMixin", function() { return _drawing__WEBPACK_IMPORTED_MODULE_0__["ObserversMixin"]; }); + + __webpack_require__.d(__webpack_exports__, "OptionsStore", function() { return _drawing__WEBPACK_IMPORTED_MODULE_0__["OptionsStore"]; }); + + __webpack_require__.d(__webpack_exports__, "Path", function() { return _drawing__WEBPACK_IMPORTED_MODULE_0__["Path"]; }); + + __webpack_require__.d(__webpack_exports__, "PathParser", function() { return _drawing__WEBPACK_IMPORTED_MODULE_0__["PathParser"]; }); + + __webpack_require__.d(__webpack_exports__, "QuadNode", function() { return _drawing__WEBPACK_IMPORTED_MODULE_0__["QuadNode"]; }); + + __webpack_require__.d(__webpack_exports__, "RadialGradient", function() { return _drawing__WEBPACK_IMPORTED_MODULE_0__["RadialGradient"]; }); + + __webpack_require__.d(__webpack_exports__, "Rect", function() { return _drawing__WEBPACK_IMPORTED_MODULE_0__["Rect"]; }); + + __webpack_require__.d(__webpack_exports__, "ShapesQuadTree", function() { return _drawing__WEBPACK_IMPORTED_MODULE_0__["ShapesQuadTree"]; }); + + __webpack_require__.d(__webpack_exports__, "Surface", function() { return _drawing__WEBPACK_IMPORTED_MODULE_0__["Surface"]; }); + + __webpack_require__.d(__webpack_exports__, "SurfaceFactory", function() { return _drawing__WEBPACK_IMPORTED_MODULE_0__["SurfaceFactory"]; }); + + __webpack_require__.d(__webpack_exports__, "Text", function() { return _drawing__WEBPACK_IMPORTED_MODULE_0__["Text"]; }); + + __webpack_require__.d(__webpack_exports__, "align", function() { return _drawing__WEBPACK_IMPORTED_MODULE_0__["align"]; }); + + __webpack_require__.d(__webpack_exports__, "fit", function() { return _drawing__WEBPACK_IMPORTED_MODULE_0__["fit"]; }); + + __webpack_require__.d(__webpack_exports__, "stack", function() { return _drawing__WEBPACK_IMPORTED_MODULE_0__["stack"]; }); + + __webpack_require__.d(__webpack_exports__, "vAlign", function() { return _drawing__WEBPACK_IMPORTED_MODULE_0__["vAlign"]; }); + + __webpack_require__.d(__webpack_exports__, "vStack", function() { return _drawing__WEBPACK_IMPORTED_MODULE_0__["vStack"]; }); + + __webpack_require__.d(__webpack_exports__, "vWrap", function() { return _drawing__WEBPACK_IMPORTED_MODULE_0__["vWrap"]; }); + + __webpack_require__.d(__webpack_exports__, "wrap", function() { return _drawing__WEBPACK_IMPORTED_MODULE_0__["wrap"]; }); + + + + + + + + + + + + + + + + + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/mixins/measurable.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _geometry_matrix__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/matrix.js"); + var _geometry_to_matrix__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/to-matrix.js"); + + + +var IDENTITY_MATRIX_HASH = _geometry_matrix__WEBPACK_IMPORTED_MODULE_0__["default"].IDENTITY.toString(); + +var Measurable = { + extend: function(proto) { + proto.bbox = this.bbox; + proto.geometryChange = this.geometryChange; + }, + + bbox: function(transformation) { + var combinedMatrix = Object(_geometry_to_matrix__WEBPACK_IMPORTED_MODULE_1__["default"])(this.currentTransform(transformation)); + var matrixHash = combinedMatrix ? combinedMatrix.toString() : IDENTITY_MATRIX_HASH; + var bbox; + + if (this._bboxCache && this._matrixHash === matrixHash) { + bbox = this._bboxCache.clone(); + } else { + bbox = this._bbox(combinedMatrix); + this._bboxCache = bbox ? bbox.clone() : null; + this._matrixHash = matrixHash; + } + + var strokeWidth = this.options.get("stroke.width"); + if (strokeWidth && bbox) { + bbox.expand(strokeWidth / 2); + } + + return bbox; + }, + + geometryChange: function() { + delete this._bboxCache; + this.trigger("geometryChange", { + element: this + }); + } +}; + + __webpack_exports__["default"] = (Measurable); + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/mixins/observers-mixin.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + +var ObserversMixin = { + extend: function(proto) { + var this$1 = this; + + for (var method in this$1) { + if (method !== "extend") { + proto[method] = this$1[method]; + } + } + }, + + observers: function() { + this._observers = this._observers || []; + return this._observers; + }, + + addObserver: function(element) { + if (!this._observers) { + this._observers = [ element ]; + } else { + this._observers.push(element); + } + return this; + }, + + removeObserver: function(element) { + var observers = this.observers(); + var index = observers.indexOf(element); + if (index !== -1) { + observers.splice(index, 1); + } + return this; + }, + + trigger: function(methodName, event) { + var observers = this._observers; + + if (observers && !this._suspended) { + for (var idx = 0; idx < observers.length; idx++) { + var observer = observers[idx]; + if (observer[methodName]) { + observer[methodName](event); + } + } + } + return this; + }, + + optionsChange: function(e) { + if ( e === void 0 ) e = {}; + + e.element = this; + this.trigger("optionsChange", e); + }, + + geometryChange: function() { + this.trigger("geometryChange", { + element: this + }); + }, + + suspend: function() { + this._suspended = (this._suspended || 0) + 1; + return this; + }, + + resume: function() { + this._suspended = Math.max((this._suspended || 0) - 1, 0); + return this; + }, + + _observerField: function(field, value) { + if (this[field]) { + this[field].removeObserver(this); + } + this[field] = value; + value.addObserver(this); + } +}; + + __webpack_exports__["default"] = (ObserversMixin); + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/mixins/paintable.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/util.js"); + + +var GRADIENT = "Gradient"; + +var Paintable = { + extend: function(proto) { + proto.fill = this.fill; + proto.stroke = this.stroke; + }, + + fill: function(color, opacity) { + var options = this.options; + + if (Object(_util__WEBPACK_IMPORTED_MODULE_0__["defined"])(color)) { + if (color && color.nodeType !== GRADIENT) { + var newFill = { + color: color + }; + if (Object(_util__WEBPACK_IMPORTED_MODULE_0__["defined"])(opacity)) { + newFill.opacity = opacity; + } + options.set("fill", newFill); + } else { + options.set("fill", color); + } + + return this; + } + + return options.get("fill"); + }, + + stroke: function(color, width, opacity) { + if (Object(_util__WEBPACK_IMPORTED_MODULE_0__["defined"])(color)) { + this.options.set("stroke.color", color); + + if (Object(_util__WEBPACK_IMPORTED_MODULE_0__["defined"])(width)) { + this.options.set("stroke.width", width); + } + + if (Object(_util__WEBPACK_IMPORTED_MODULE_0__["defined"])(opacity)) { + this.options.set("stroke.opacity", opacity); + } + + return this; + } + + return this.options.get("stroke"); + } +}; + + __webpack_exports__["default"] = (Paintable); + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/mixins/traversable.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + +var Traversable = { + extend: function(proto, childrenField) { + proto.traverse = function(callback) { + var children = this[childrenField]; + + for (var i = 0; i < children.length; i++) { + var child = children[i]; + + if (child.traverse) { + child.traverse(callback); + } else { + callback(child); + } + } + + return this; + }; + } +}; + + __webpack_exports__["default"] = (Traversable); + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/parsing/path-parser.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/common.js"); + var _shapes_multi_path__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/shapes/multi-path.js"); + var _geometry_point__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/point.js"); + var _shape_map__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/parsing/shape-map.js"); + + + + + +var SEGMENT_REGEX = /([a-df-z]{1})([^a-df-z]*)(z)?/gi; +var SPLIT_REGEX = /[,\s]?([+\-]?(?:\d*\.\d+|\d+)(?:[eE][+\-]?\d+)?)/g; +var MOVE = "m"; +var CLOSE = "z"; + +function parseParameters(str) { + var parameters = []; + str.replace(SPLIT_REGEX, function(match, number) { + parameters.push(parseFloat(number)); + }); + return parameters; +} + +var PathParser = (function (Class) { + function PathParser () { + Class.apply(this, arguments); + } + + if ( Class ) PathParser.__proto__ = Class; + PathParser.prototype = Object.create( Class && Class.prototype ); + PathParser.prototype.constructor = PathParser; + + PathParser.prototype.parse = function parse (str, options) { + var multiPath = new _shapes_multi_path__WEBPACK_IMPORTED_MODULE_1__["default"](options); + var position = new _geometry_point__WEBPACK_IMPORTED_MODULE_2__["default"](); + var previousCommand; + + str.replace(SEGMENT_REGEX, function (match, element, params, closePath) { + var command = element.toLowerCase(); + var isRelative = command === element; + var parameters = parseParameters(params.trim()); + + if (command === MOVE) { + if (isRelative) { + position.x += parameters[0]; + position.y += parameters[1]; + } else { + position.x = parameters[0]; + position.y = parameters[1]; + } + + multiPath.moveTo(position.x, position.y); + + if (parameters.length > 2) { + command = "l"; + parameters.splice(0, 2); + } + } + + if (_shape_map__WEBPACK_IMPORTED_MODULE_3__["default"][command]) { + _shape_map__WEBPACK_IMPORTED_MODULE_3__["default"][command]( + multiPath, { + parameters: parameters, + position: position, + isRelative: isRelative, + previousCommand: previousCommand + } + ); + + if (closePath && closePath.toLowerCase() === CLOSE) { + multiPath.close(); + } + } else if (command !== MOVE) { + throw new Error("Error while parsing SVG path. Unsupported command: " + command); + } + + previousCommand = command; + }); + + return multiPath; + }; + + return PathParser; +}(_common__WEBPACK_IMPORTED_MODULE_0__["Class"])); + +PathParser.current = new PathParser(); + + __webpack_exports__["default"] = (PathParser); + + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/parsing/shape-map.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _geometry_point__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/point.js"); + var _util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/util.js"); + + + +var ShapeMap = { + l: function(path, options) { + var parameters = options.parameters; + var position = options.position; + + for (var i = 0; i < parameters.length; i += 2) { + var point = new _geometry_point__WEBPACK_IMPORTED_MODULE_0__["default"](parameters[i], parameters[i + 1]); + + if (options.isRelative) { + point.translateWith(position); + } + + path.lineTo(point.x, point.y); + + position.x = point.x; + position.y = point.y; + } + }, + + c: function(path, options) { + var parameters = options.parameters; + var position = options.position; + + for (var i = 0; i < parameters.length; i += 6) { + var controlOut = new _geometry_point__WEBPACK_IMPORTED_MODULE_0__["default"](parameters[i], parameters[i + 1]); + var controlIn = new _geometry_point__WEBPACK_IMPORTED_MODULE_0__["default"](parameters[i + 2], parameters[i + 3]); + var point = new _geometry_point__WEBPACK_IMPORTED_MODULE_0__["default"](parameters[i + 4], parameters[i + 5]); + if (options.isRelative) { + controlIn.translateWith(position); + controlOut.translateWith(position); + point.translateWith(position); + } + + path.curveTo(controlOut, controlIn, point); + + position.x = point.x; + position.y = point.y; + } + }, + + v: function(path, options) { + var value = options.isRelative ? 0 : options.position.x; + + toLineParamaters(options.parameters, true, value); + this.l(path, options); + }, + + h: function(path, options) { + var value = options.isRelative ? 0 : options.position.y; + + toLineParamaters(options.parameters, false, value); + this.l(path, options); + }, + + a: function(path, options) { + var parameters = options.parameters; + var position = options.position; + + for (var i = 0; i < parameters.length; i += 7) { + var radiusX = parameters[i]; + var radiusY = parameters[i + 1]; + var rotation = parameters[i + 2]; + var largeArc = parameters[i + 3]; + var swipe = parameters[i + 4]; + var endPoint = new _geometry_point__WEBPACK_IMPORTED_MODULE_0__["default"](parameters[i + 5], parameters[i + 6]); + + if (options.isRelative) { + endPoint.translateWith(position); + } + if (position.x !== endPoint.x || position.y !== endPoint.y) { + path.arcTo(endPoint, radiusX, radiusY, largeArc, swipe, rotation); + + position.x = endPoint.x; + position.y = endPoint.y; + } + } + }, + + s: function(path, options) { + var parameters = options.parameters; + var position = options.position; + var previousCommand = options.previousCommand; + var lastControlIn; + + if (previousCommand === "s" || previousCommand === "c") { + lastControlIn = Object(_util__WEBPACK_IMPORTED_MODULE_1__["last"])(Object(_util__WEBPACK_IMPORTED_MODULE_1__["last"])(path.paths).segments).controlIn(); + } + + for (var i = 0; i < parameters.length; i += 4) { + var controlIn = new _geometry_point__WEBPACK_IMPORTED_MODULE_0__["default"](parameters[i], parameters[i + 1]); + var endPoint = new _geometry_point__WEBPACK_IMPORTED_MODULE_0__["default"](parameters[i + 2], parameters[i + 3]); + var controlOut = (void 0); + + if (options.isRelative) { + controlIn.translateWith(position); + endPoint.translateWith(position); + } + + if (lastControlIn) { + controlOut = reflectionPoint(lastControlIn, position); + } else { + controlOut = position.clone(); + } + + lastControlIn = controlIn; + + path.curveTo(controlOut, controlIn, endPoint); + + position.x = endPoint.x; + position.y = endPoint.y; + } + }, + + q: function(path, options) { + var parameters = options.parameters; + var position = options.position; + + for (var i = 0; i < parameters.length; i += 4) { + var controlPoint = new _geometry_point__WEBPACK_IMPORTED_MODULE_0__["default"](parameters[i], parameters[i + 1]); + var endPoint = new _geometry_point__WEBPACK_IMPORTED_MODULE_0__["default"](parameters[i + 2], parameters[i + 3]); + + if (options.isRelative) { + controlPoint.translateWith(position); + endPoint.translateWith(position); + } + + var cubicControlPoints = quadraticToCubicControlPoints(position, controlPoint, endPoint); + + path.curveTo(cubicControlPoints.controlOut, cubicControlPoints.controlIn, endPoint); + + position.x = endPoint.x; + position.y = endPoint.y; + } + }, + + t: function(path, options) { + var parameters = options.parameters; + var position = options.position; + var previousCommand = options.previousCommand; + var controlPoint; + + if (previousCommand === "q" || previousCommand === "t") { + var lastSegment = Object(_util__WEBPACK_IMPORTED_MODULE_1__["last"])(Object(_util__WEBPACK_IMPORTED_MODULE_1__["last"])(path.paths).segments); + controlPoint = lastSegment.controlIn().clone() + .translateWith(position.scaleCopy(-1 / 3)) + .scale(3 / 2); + } + + for (var i = 0; i < parameters.length; i += 2) { + var endPoint = new _geometry_point__WEBPACK_IMPORTED_MODULE_0__["default"](parameters[i], parameters[i + 1]); + if (options.isRelative) { + endPoint.translateWith(position); + } + + if (controlPoint) { + controlPoint = reflectionPoint(controlPoint, position); + } else { + controlPoint = position.clone(); + } + + var cubicControlPoints = quadraticToCubicControlPoints(position, controlPoint, endPoint); + + path.curveTo(cubicControlPoints.controlOut, cubicControlPoints.controlIn, endPoint); + + position.x = endPoint.x; + position.y = endPoint.y; + } + } +}; + +function toLineParamaters(parameters, isVertical, value) { + var insertPosition = isVertical ? 0 : 1; + + for (var i = 0; i < parameters.length; i += 2) { + parameters.splice(i + insertPosition, 0, value); + } +} + +function reflectionPoint(point, center) { + if (point && center) { + return center.scaleCopy(2).translate(-point.x, -point.y); + } +} + +var third = 1 / 3; + +function quadraticToCubicControlPoints(position, controlPoint, endPoint) { + var scaledPoint = controlPoint.clone().scale(2 / 3); + return { + controlOut: scaledPoint.clone().translateWith(position.scaleCopy(third)), + controlIn: scaledPoint.translateWith(endPoint.scaleCopy(third)) + }; +} + + __webpack_exports__["default"] = (ShapeMap); + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/pdf.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _pdf_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/pdf/core.js"); + __webpack_require__.d(__webpack_exports__, "Document", function() { return _pdf_core__WEBPACK_IMPORTED_MODULE_0__["Document"]; }); + + __webpack_require__.d(__webpack_exports__, "BinaryStream", function() { return _pdf_core__WEBPACK_IMPORTED_MODULE_0__["BinaryStream"]; }); + + __webpack_require__.d(__webpack_exports__, "defineFont", function() { return _pdf_core__WEBPACK_IMPORTED_MODULE_0__["defineFont"]; }); + + __webpack_require__.d(__webpack_exports__, "parseFontDef", function() { return _pdf_core__WEBPACK_IMPORTED_MODULE_0__["parseFontDef"]; }); + + __webpack_require__.d(__webpack_exports__, "getFontURL", function() { return _pdf_core__WEBPACK_IMPORTED_MODULE_0__["getFontURL"]; }); + + __webpack_require__.d(__webpack_exports__, "loadFonts", function() { return _pdf_core__WEBPACK_IMPORTED_MODULE_0__["loadFonts"]; }); + + __webpack_require__.d(__webpack_exports__, "loadImages", function() { return _pdf_core__WEBPACK_IMPORTED_MODULE_0__["loadImages"]; }); + + __webpack_require__.d(__webpack_exports__, "getPaperOptions", function() { return _pdf_core__WEBPACK_IMPORTED_MODULE_0__["getPaperOptions"]; }); + + __webpack_require__.d(__webpack_exports__, "clearImageCache", function() { return _pdf_core__WEBPACK_IMPORTED_MODULE_0__["clearImageCache"]; }); + + __webpack_require__.d(__webpack_exports__, "TEXT_RENDERING_MODE", function() { return _pdf_core__WEBPACK_IMPORTED_MODULE_0__["TEXT_RENDERING_MODE"]; }); + + var _pdf_drawing__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/pdf/drawing.js"); + __webpack_require__.d(__webpack_exports__, "exportPDF", function() { return _pdf_drawing__WEBPACK_IMPORTED_MODULE_1__["exportPDF"]; }); + + __webpack_require__.d(__webpack_exports__, "saveAs", function() { return _pdf_drawing__WEBPACK_IMPORTED_MODULE_1__["saveAs"]; }); + + __webpack_require__.d(__webpack_exports__, "toDataURL", function() { return _pdf_drawing__WEBPACK_IMPORTED_MODULE_1__["toDataURL"]; }); + + __webpack_require__.d(__webpack_exports__, "toBlob", function() { return _pdf_drawing__WEBPACK_IMPORTED_MODULE_1__["toBlob"]; }); + + __webpack_require__.d(__webpack_exports__, "render", function() { return _pdf_drawing__WEBPACK_IMPORTED_MODULE_1__["render"]; }); + + + + + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/pdf/core.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "Document", function() { return PDFDocument; }); + __webpack_require__.d(__webpack_exports__, "defineFont", function() { return defineFont; }); + __webpack_require__.d(__webpack_exports__, "parseFontDef", function() { return parseFontDef; }); + __webpack_require__.d(__webpack_exports__, "getFontURL", function() { return getFontURL; }); + __webpack_require__.d(__webpack_exports__, "loadFonts", function() { return loadFonts; }); + __webpack_require__.d(__webpack_exports__, "loadImages", function() { return loadImages; }); + __webpack_require__.d(__webpack_exports__, "getPaperOptions", function() { return getPaperOptions; }); + __webpack_require__.d(__webpack_exports__, "clearImageCache", function() { return clearImageCache; }); + __webpack_require__.d(__webpack_exports__, "TEXT_RENDERING_MODE", function() { return TEXT_RENDERING_MODE; }); + var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/pdf/utils.js"); + __webpack_require__.d(__webpack_exports__, "BinaryStream", function() { return _utils__WEBPACK_IMPORTED_MODULE_0__["BinaryStream"]; }); + + var _common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/common.js"); + var _ttf__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/pdf/ttf.js"); + var _deflate__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/pdf/deflate.js"); + var _util_encode_utf__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/util/encode-utf.js"); + + + + + + + + + + + +var browser = _common__WEBPACK_IMPORTED_MODULE_1__["support"].browser; +var NL = "\n"; + +var RESOURCE_COUNTER = 0; + +var PAPER_SIZE = { + a0 : [ 2383.94 , 3370.39 ], + a1 : [ 1683.78 , 2383.94 ], + a2 : [ 1190.55 , 1683.78 ], + a3 : [ 841.89 , 1190.55 ], + a4 : [ 595.28 , 841.89 ], + a5 : [ 419.53 , 595.28 ], + a6 : [ 297.64 , 419.53 ], + a7 : [ 209.76 , 297.64 ], + a8 : [ 147.40 , 209.76 ], + a9 : [ 104.88 , 147.40 ], + a10 : [ 73.70 , 104.88 ], + b0 : [ 2834.65 , 4008.19 ], + b1 : [ 2004.09 , 2834.65 ], + b2 : [ 1417.32 , 2004.09 ], + b3 : [ 1000.63 , 1417.32 ], + b4 : [ 708.66 , 1000.63 ], + b5 : [ 498.90 , 708.66 ], + b6 : [ 354.33 , 498.90 ], + b7 : [ 249.45 , 354.33 ], + b8 : [ 175.75 , 249.45 ], + b9 : [ 124.72 , 175.75 ], + b10 : [ 87.87 , 124.72 ], + c0 : [ 2599.37 , 3676.54 ], + c1 : [ 1836.85 , 2599.37 ], + c2 : [ 1298.27 , 1836.85 ], + c3 : [ 918.43 , 1298.27 ], + c4 : [ 649.13 , 918.43 ], + c5 : [ 459.21 , 649.13 ], + c6 : [ 323.15 , 459.21 ], + c7 : [ 229.61 , 323.15 ], + c8 : [ 161.57 , 229.61 ], + c9 : [ 113.39 , 161.57 ], + c10 : [ 79.37 , 113.39 ], + executive : [ 521.86 , 756.00 ], + folio : [ 612.00 , 936.00 ], + legal : [ 612.00 , 1008.00 ], + letter : [ 612.00 , 792.00 ], + tabloid : [ 792.00 , 1224.00 ] +}; + +function makeOutput() { + var indentLevel = 0, output = Object(_utils__WEBPACK_IMPORTED_MODULE_0__["BinaryStream"])(); + function out() { + var arguments$1 = arguments; + + for (var i = 0; i < arguments.length; ++i) { + var x = arguments$1[i]; + if (x === undefined) { + throw new Error("Cannot output undefined to PDF"); + } + else if (x instanceof PDFValue) { + x.beforeRender(out); + x.render(out); + } + else if (isArray(x)) { + renderArray(x, out); + } + else if (isDate(x)) { + renderDate(x, out); + } + else if (typeof x == "number") { + if (isNaN(x)) { + throw new Error("Cannot output NaN to PDF"); + } + // make sure it doesn't end up in exponent notation + var num = x.toFixed(7); + if (num.indexOf(".") >= 0) { + num = num.replace(/\.?0+$/, ""); + } + if (num == "-0") { + num = "0"; + } + output.writeString(num); + } + else if (/string|boolean/.test(typeof x)) { + output.writeString(String(x)); + } + else if (typeof x.get == "function") { + output.write(x.get()); + } + else if (typeof x == "object") { + if (!x) { + output.writeString("null"); + } else { + out(new PDFDictionary(x)); + } + } + } + } + out.writeData = function(data) { + output.write(data); + }; + out.withIndent = function(f) { + ++indentLevel; + f(out); + --indentLevel; + }; + out.indent = function() { + out(NL, pad("", indentLevel * 2, " ")); + out.apply(null, arguments); + }; + out.offset = function() { + return output.offset(); + }; + out.toString = function() { + throw new Error("FIX CALLER"); + }; + out.get = function() { + return output.get(); + }; + out.stream = function() { + return output; + }; + return out; +} + +function wrapObject(value, id) { + var beforeRender = value.beforeRender; + var renderValue = value.render; + + value.beforeRender = function(){}; + + value.render = function(out) { + out(id, " 0 R"); + }; + + value.renderFull = function(out) { + value._offset = out.offset(); + out(id, " 0 obj "); + beforeRender.call(value, out); + renderValue.call(value, out); + out(" endobj"); + }; +} + +function getPaperOptions(getOption) { + if (typeof getOption != "function") { + var options = getOption; + getOption = function(key, def) { + return key in options ? options[key] : def; + }; + } + var paperSize = getOption("paperSize", PAPER_SIZE.a4); + if (!paperSize) { + return {}; + } + if (typeof paperSize == "string") { + paperSize = PAPER_SIZE[paperSize.toLowerCase()]; + if (paperSize == null) { + throw new Error("Unknown paper size"); + } + } + + paperSize[0] = unitsToPoints(paperSize[0]); + paperSize[1] = unitsToPoints(paperSize[1]); + + if (getOption("landscape", false)) { + paperSize = [ + Math.max(paperSize[0], paperSize[1]), + Math.min(paperSize[0], paperSize[1]) + ]; + } + + var margin = getOption("margin"); + if (margin) { + if (typeof margin == "string" || typeof margin == "number") { + margin = unitsToPoints(margin, 0); + margin = { left: margin, top: margin, right: margin, bottom: margin }; + } else { + margin = { + left : unitsToPoints(margin.left, 0), + top : unitsToPoints(margin.top, 0), + right : unitsToPoints(margin.right, 0), + bottom : unitsToPoints(margin.bottom, 0) + }; + } + if (getOption("addMargin")) { + paperSize[0] += margin.left + margin.right; + paperSize[1] += margin.top + margin.bottom; + } + } + return { paperSize: paperSize, margin: margin }; +} + +function PDFDocument(options) { + var self = this; + var out = makeOutput(); + var objcount = 0; + var objects = []; + + function getOption(name, defval) { + return (options && options[name] != null) ? options[name] : defval; + } + + self.getOption = getOption; + + self.attach = function(value) { + if (objects.indexOf(value) < 0) { + wrapObject(value, ++objcount); + objects.push(value); + } + return value; + }; + + self.pages = []; + + self.FONTS = {}; + self.IMAGES = {}; + self.GRAD_COL_FUNCTIONS = {}; // cache for color gradient functions + self.GRAD_OPC_FUNCTIONS = {}; // cache for opacity gradient functions + self.GRAD_COL = {}; // cache for whole color gradient objects + self.GRAD_OPC = {}; // cache for whole opacity gradient objects + + var catalog = self.attach(new PDFCatalog()); + var pageTree = self.attach(new PDFPageTree()); + + if (getOption("autoPrint")) { + var nameTree = {}; + nameTree.JavaScript = new PDFDictionary({ Names: [ + new PDFString("JS"), self.attach(new PDFDictionary({ + S: _("JavaScript"), + JS: new PDFString("print(true);") + })) + ] }); + catalog.props.Names = new PDFDictionary(nameTree); + } + + catalog.setPages(pageTree); + + var info = self.attach(new PDFDictionary({ + Producer : new PDFString(getOption("producer", "Kendo UI PDF Generator"), true), // XXX: kendo.version? + Title : new PDFString(getOption("title", ""), true), + Author : new PDFString(getOption("author", ""), true), + Subject : new PDFString(getOption("subject", ""), true), + Keywords : new PDFString(getOption("keywords", ""), true), + Creator : new PDFString(getOption("creator", "Kendo UI PDF Generator"), true), + CreationDate : getOption("date", new Date()) + })); + + self.addPage = function(options) { + var paperOptions = getPaperOptions(function(name, defval){ + return (options && options[name] != null) ? options[name] : defval; + }); + var paperSize = paperOptions.paperSize; + var margin = paperOptions.margin; + var contentWidth = paperSize[0]; + var contentHeight = paperSize[1]; + if (margin) { + contentWidth -= margin.left + margin.right; + contentHeight -= margin.top + margin.bottom; + } + var content = new PDFStream(makeOutput(), null, true); + var props = { + Contents : self.attach(content), + Parent : pageTree, + MediaBox : [ 0, 0, paperSize[0], paperSize[1] ] + }; + var page = new PDFPage(self, props); + page._content = content; + pageTree.addPage(self.attach(page)); + + // canvas-like coord. system. (0,0) is upper-left. + // text must be vertically mirorred before drawing. + page.transform(1, 0, 0, -1, 0, paperSize[1]); + + if (margin) { + page.translate(margin.left, margin.top); + // XXX: clip to right/bottom margin. Make this optional? + page.rect(0, 0, contentWidth, contentHeight); + page.clip(); + } + + self.pages.push(page); + return page; + }; + + self.render = function() { + var i; + /// file header + out("%PDF-1.4", NL, "%\xc2\xc1\xda\xcf\xce", NL, NL); + + /// file body + for (i = 0; i < objects.length; ++i) { + objects[i].renderFull(out); + out(NL, NL); + } + + /// cross-reference table + var xrefOffset = out.offset(); + out("xref", NL, 0, " ", objects.length + 1, NL); + out("0000000000 65535 f ", NL); + for (i = 0; i < objects.length; ++i) { + out(zeropad(objects[i]._offset, 10), " 00000 n ", NL); + } + out(NL); + + /// trailer + out("trailer", NL); + out(new PDFDictionary({ + Size: objects.length + 1, + Root: catalog, + Info: info + }), NL, NL); + + /// end + out("startxref", NL, xrefOffset, NL); + out("%%EOF", NL); + + return out.stream().offset(0); + }; +} + +var FONT_CACHE = { + "Times-Roman" : true, + "Times-Bold" : true, + "Times-Italic" : true, + "Times-BoldItalic" : true, + "Helvetica" : true, + "Helvetica-Bold" : true, + "Helvetica-Oblique" : true, + "Helvetica-BoldOblique" : true, + "Courier" : true, + "Courier-Bold" : true, + "Courier-Oblique" : true, + "Courier-BoldOblique" : true, + "Symbol" : true, + "ZapfDingbats" : true +}; + +function loadBinary(url, cont) { + // IE throws Accesss denied error for Data URIs + var m; + if (browser.msie && (m = /^data:.*?;base64,/i.exec(url))) { + cont(Object(_utils__WEBPACK_IMPORTED_MODULE_0__["base64ToUint8Array"])(url.substr(m[0].length))); + return; + } + + function error() { + if (window.console) { + if (window.console.error) { + window.console.error("Cannot load URL: %s", url); + } else { + window.console.log("Cannot load URL: %s", url); + } + } + cont(null); + } + var req = new XMLHttpRequest(); + req.open('GET', url, true); + if (_utils__WEBPACK_IMPORTED_MODULE_0__["HAS_TYPED_ARRAYS"]) { + req.responseType = "arraybuffer"; + } + req.onload = function() { + if (req.status == 200 || req.status == 304) { + if (_utils__WEBPACK_IMPORTED_MODULE_0__["HAS_TYPED_ARRAYS"]) { + cont(new Uint8Array(req.response)); + } else { + cont(new window.VBArray(req.responseBody).toArray()); // IE9 only + } + } else { + error(); + } + }; + req.onerror = error; + req.send(null); +} + +function loadFont(url, cont) { + var font = FONT_CACHE[url]; + if (font) { + cont(font); + } else { + loadBinary(url, function(data){ + if (data == null) { + throw new Error("Cannot load font from " + url); + } else { + var font = new _ttf__WEBPACK_IMPORTED_MODULE_2__["TTFFont"](data); + FONT_CACHE[url] = font; + cont(font); + } + }); + } +} + +var IMAGE_CACHE = {}; + +function clearImageCache() { + IMAGE_CACHE = {}; +} + +function loadImage(url, size, cont) { + var img = IMAGE_CACHE[url], bloburl, blob; + if (img) { + cont(img); + } else { + img = new Image(); + if (!(/^data:/i.test(url))) { + img.crossOrigin = "Anonymous"; + } + if (_utils__WEBPACK_IMPORTED_MODULE_0__["HAS_TYPED_ARRAYS"] && !(/^data:/i.test(url))) { + // IE10 fails to load images from another domain even when the server sends the + // proper CORS headers. a XHR, however, will be able to load the data. + // http://stackoverflow.com/a/19734516/154985 + // + // On the other hand, it's worth doing it this way for all browsers which support + // responseType = "blob" (HAS_TYPED_ARRAYS will be true), because we can inspect the + // mime type and if it's a JPEG (very common case) we can save a lot of time in + // _load below. + var xhr = new XMLHttpRequest(); + xhr.onload = function() { + blob = xhr.response; + bloburl = URL.createObjectURL(blob); + _load(bloburl); + }; + xhr.onerror = _onerror; + xhr.open("GET", url, true); + xhr.responseType = "blob"; + xhr.send(); + } else { + _load(url); + } + } + + function _load(url) { + img.src = url; + if (img.complete && !browser.msie) { + // IE, bless it's little heart, says img.complete == true even though the image is + // not loaded (width=0), therefore we must go the onload route (ticket 929635). + _onload(); + } else { + img.onload = _onload; + img.onerror = _onerror; + } + } + + function _trycanvas() { + if (!size) { + size = { width: img.width, height: img.height }; + } + + var canvas = document.createElement("canvas"); + canvas.width = size.width; + canvas.height = size.height; + + var ctx = canvas.getContext("2d"); + ctx.drawImage(img, 0, 0, size.width, size.height); + + var imgdata; + try { + imgdata = ctx.getImageData(0, 0, size.width, size.height); + } catch (ex) { + // it tainted the canvas -- can't draw it. + _onerror(); + return; + } finally { + if (bloburl) { + URL.revokeObjectURL(bloburl); + } + } + + // in case it contains transparency, we must separate rgb data from the alpha + // channel and create a PDFRawImage image with opacity. otherwise we can use a + // PDFJpegImage. + // + // to do this in one step, we create the rgb and alpha streams anyway, even if + // we might end up not using them if hasAlpha remains false. + + var hasAlpha = false, rgb = Object(_utils__WEBPACK_IMPORTED_MODULE_0__["BinaryStream"])(), alpha = Object(_utils__WEBPACK_IMPORTED_MODULE_0__["BinaryStream"])(); + var rawbytes = imgdata.data; + var i = 0; + while (i < rawbytes.length) { + rgb.writeByte(rawbytes[i++]); + rgb.writeByte(rawbytes[i++]); + rgb.writeByte(rawbytes[i++]); + var a = rawbytes[i++]; + if (a < 255) { + hasAlpha = true; + } + alpha.writeByte(a); + } + + if (hasAlpha) { + img = new PDFRawImage(size.width, size.height, rgb, alpha); + } else { + // no transparency, encode as JPEG. + var data = canvas.toDataURL("image/jpeg"); + data = data.substr(data.indexOf(";base64,") + 8); + + var stream = Object(_utils__WEBPACK_IMPORTED_MODULE_0__["BinaryStream"])(); + stream.writeBase64(data); + img = new PDFJpegImage(stream); + } + + cont(IMAGE_CACHE[url] = img); + } + + function _onerror() { + cont(IMAGE_CACHE[url] = "ERROR"); + } + + function _onload() { + if (size) { + // but if requested size is bigger than the image, just use the original image. + if (size.width >= img.width || size.height >= img.height) { + size = null; + } + } + if (!size && blob && /^image\/jpe?g$/i.test(blob.type)) { + // If we know we got a JPEG, we can skip the process of rendering it to a + // canvas, getting the pixel data, searching for transparency we know we won't + // find, getting back a data URI and then decoding the BASE64 to finally get the + // binary we already have. Also, we avoid downgrading the image quality, with + // the possible drawback of making a bigger PDF; still, seems legit. + // + // Besides saving a lot of work, this also reuses the buffer memory + // (BinaryStream does not create a copy), potentially saving some GC cycles. + var reader = new FileReader(); + reader.onload = function() { + try { + var img = new PDFJpegImage(Object(_utils__WEBPACK_IMPORTED_MODULE_0__["BinaryStream"])(new Uint8Array(this.result))); + URL.revokeObjectURL(bloburl); + cont(IMAGE_CACHE[url] = img); + } catch (ex) { + // if there's an error parsing the JPEG stream, it could be due to a + // misconfigured server (improper content-type: + // https://github.com/telerik/kendo-ui-core/issues/4184). If that's the case, + // the canvas will still be able to draw it. + _trycanvas(); + } + }; + reader.readAsArrayBuffer(blob); + } else { + _trycanvas(); + } + } +} + +function manyLoader(loadOne) { + return function(urls, callback) { + var n = urls.length, i = n; + if (n === 0) { + return callback(); + } + function next() { + if (--n === 0) { + callback(); + } + } + while (i-- > 0) { + loadOne(urls[i], next); + } + }; +} + +var loadFonts = manyLoader(loadFont); +var loadImages = function(images, callback) { + var urls = Object.keys(images), n = urls.length; + if (n === 0) { + return callback(); + } + function next() { + if (--n === 0) { + callback(); + } + } + urls.forEach(function(url){ + loadImage(url, images[url], next); + }); +}; + +PDFDocument.prototype = { + loadFonts: loadFonts, + loadImages: loadImages, + + getFont: function(url) { + var font = this.FONTS[url]; + if (!font) { + font = FONT_CACHE[url]; + if (!font) { + throw new Error("Font " + url + " has not been loaded"); + } + if (font === true) { + font = this.attach(new PDFStandardFont(url)); + } else { + font = this.attach(new PDFFont(this, font)); + } + this.FONTS[url] = font; + } + return font; + }, + + getImage: function(url) { + var img = this.IMAGES[url]; + if (!img) { + img = IMAGE_CACHE[url]; + if (!img) { + throw new Error("Image " + url + " has not been loaded"); + } + if (img === "ERROR") { + return null; + } + img = this.IMAGES[url] = this.attach(img.asStream(this)); + } + return img; + }, + + getOpacityGS: function(opacity, forStroke) { + var id = parseFloat(opacity).toFixed(3); + opacity = parseFloat(id); + id += forStroke ? "S" : "F"; + var cache = this._opacityGSCache || (this._opacityGSCache = {}); + var gs = cache[id]; + if (!gs) { + var props = { + Type: _("ExtGState") + }; + if (forStroke) { + props.CA = opacity; + } else { + props.ca = opacity; + } + gs = this.attach(new PDFDictionary(props)); + gs._resourceName = _("GS" + (++RESOURCE_COUNTER)); + cache[id] = gs; + } + return gs; + }, + + dict: function(props) { + return new PDFDictionary(props); + }, + + name: function(str) { + return _(str); + }, + + stream: function(props, content) { + return new PDFStream(content, props); + } +}; + + + +function pad(str, len, ch) { + while (str.length < len) { + str = ch + str; + } + return str; +} + +function zeropad(n, len) { + return pad(String(n), len, "0"); +} + +function hasOwnProperty(obj, key) { + return Object.prototype.hasOwnProperty.call(obj, key); +} + +var isArray = Array.isArray || function(obj) { + return obj instanceof Array; +}; + +function isDate(obj) { + return obj instanceof Date; +} + +function renderArray(a, out) { + out("["); + if (a.length > 0) { + out.withIndent(function(){ + for (var i = 0; i < a.length; ++i) { + if (i > 0 && i % 8 === 0) { + out.indent(a[i]); + } else { + out(" ", a[i]); + } + } + }); + //out.indent(); + } + out(" ]"); +} + +function renderDate(date, out) { + out("(D:", + zeropad(date.getUTCFullYear(), 4), + zeropad(date.getUTCMonth() + 1, 2), + zeropad(date.getUTCDate(), 2), + zeropad(date.getUTCHours(), 2), + zeropad(date.getUTCMinutes(), 2), + zeropad(date.getUTCSeconds(), 2), + "Z)"); +} + +function mm2pt(mm) { + return mm * (72/25.4); +} + +function cm2pt(cm) { + return mm2pt(cm * 10); +} + +function in2pt(inch) { + return inch * 72; +} + + +function unitsToPoints(x, def) { + if (typeof x == "number") { + return x; + } + if (typeof x == "string") { + var m; + m = /^\s*([0-9.]+)\s*(mm|cm|in|pt)\s*$/.exec(x); + if (m) { + var num = parseFloat(m[1]); + if (!isNaN(num)) { + if (m[2] == "pt") { + return num; + } + return { + "mm": mm2pt, + "cm": cm2pt, + "in": in2pt + }[m[2]](num); + } + } + } + if (def != null) { + return def; + } + throw new Error("Can't parse unit: " + x); +} + + + +function PDFValue(){} + +PDFValue.prototype.beforeRender = function(){}; + +function defclass(Ctor, proto, Base) { + if (!Base) { + Base = PDFValue; + } + Ctor.prototype = new Base(); + for (var i in proto) { + if (hasOwnProperty(proto, i)) { + Ctor.prototype[i] = proto[i]; + } + } + return Ctor; +} + +var PDFString = defclass(function PDFString(value, utf16be){ + this.value = value; + this.utf16be = Boolean(utf16be); +}, { + render: function(out) { + var txt = this.value; + if (txt.length > 0) { + txt = this.value.replace(/([\(\)\\])/g, "\\$1"); + + if (this.utf16be) { + txt = _util_encode_utf__WEBPACK_IMPORTED_MODULE_4__["BOM"] + Object(_util_encode_utf__WEBPACK_IMPORTED_MODULE_4__["encodeUTF16BE"])(txt); + } + } + + out("(", txt, ")"); + }, + toString: function() { + return this.value; + } +}); + +var PDFHexString = defclass(function PDFHexString(value){ + this.value = value; +}, { + render: function(out) { + var this$1 = this; + + out("<"); + for (var i = 0; i < this.value.length; ++i) { + out(zeropad(this$1.value.charCodeAt(i).toString(16), 4)); + } + out(">"); + } +}, PDFString); + +/// names + +var PDFName = defclass(function PDFName(name) { + this.name = name; +}, { + render: function(out) { + out("/" + this.escape()); + }, + escape: function() { + return this.name.replace(/[^\x21-\x7E]/g, function(c){ + return "#" + zeropad(c.charCodeAt(0).toString(16), 2); + }); + }, + toString: function() { + return this.name; + } +}); + +var PDFName_cache = {}; +PDFName.get = _; + +function _(name) { + if (hasOwnProperty(PDFName_cache, name)) { + return PDFName_cache[name]; + } + return (PDFName_cache[name] = new PDFName(name)); +} + +/// dictionary + +var PDFDictionary = defclass(function PDFDictionary(props) { + this.props = props; +}, { + render: function(out) { + var props = this.props, empty = true; + out("<<"); + out.withIndent(function(){ + for (var i in props) { + if (hasOwnProperty(props, i) && !/^_/.test(i)) { + empty = false; + out.indent(_(i), " ", props[i]); + } + } + }); + if (!empty) { + out.indent(); + } + out(">>"); + } +}); + +/// streams + +var PDFStream = defclass(function PDFStream(data, props, compress) { + if (typeof data == "string") { + var tmp = Object(_utils__WEBPACK_IMPORTED_MODULE_0__["BinaryStream"])(); + tmp.write(data); + data = tmp; + } + this.data = data; + this.props = props || {}; + this.compress = compress; +}, { + render: function(out) { + var data = this.data.get(), props = this.props; + if (this.compress && Object(_deflate__WEBPACK_IMPORTED_MODULE_3__["supportsDeflate"])()) { + if (!props.Filter) { + props.Filter = []; + } else if (!(props.Filter instanceof Array)) { + props.Filter = [ props.Filter ]; + } + props.Filter.unshift(_("FlateDecode")); + data = Object(_deflate__WEBPACK_IMPORTED_MODULE_3__["deflate"])(data); + } + props.Length = data.length; + out(new PDFDictionary(props), " stream", NL); + out.writeData(data); + out(NL, "endstream"); + } +}); + +/// catalog + +var PDFCatalog = defclass(function PDFCatalog(){ + this.props = { + Type: _("Catalog") + }; +}, { + setPages: function(pagesObj) { + this.props.Pages = pagesObj; + } +}, PDFDictionary); + +/// page tree + +var PDFPageTree = defclass(function PDFPageTree(){ + this.props = { + Type : _("Pages"), + Kids : [], + Count : 0 + }; +}, { + addPage: function(pageObj) { + this.props.Kids.push(pageObj); + this.props.Count++; + } +}, PDFDictionary); + +/// images + +// JPEG + +var SOF_CODES = [0xc0, 0xc1, 0xc2, 0xc3, 0xc5, 0xc6, 0xc7, 0xc9, 0xca, 0xcb, 0xcd, 0xce, 0xcf]; + +function PDFJpegImage(data) { + // we must determine the correct color space. we'll parse a bit + // of the JPEG stream for this, it's still better than going + // through the canvas. + // https://github.com/telerik/kendo-ui-core/issues/2845 + data.offset(0); + var width, height, colorSpace, bitsPerComponent; + var soi = data.readShort(); + if (soi != 0xFFD8) { + // XXX: do we have some better options here? + throw new Error("Invalid JPEG image"); + } + while (!data.eof()) { + var ff = data.readByte(); + if (ff != 0xFF) { + throw new Error("Invalid JPEG image"); + } + var marker = data.readByte(); + var length = data.readShort(); + if (SOF_CODES.indexOf(marker) >= 0) { + // "start of frame" marker + bitsPerComponent = data.readByte(); + height = data.readShort(); + width = data.readShort(); + colorSpace = data.readByte(); + break; + } + data.skip(length - 2); + } + + if (colorSpace == null) { + throw new Error("Invalid JPEG image"); + } + + var props = { + Type : _("XObject"), + Subtype : _("Image"), + Width : width, + Height : height, + BitsPerComponent : bitsPerComponent, + Filter : _("DCTDecode") + }; + + switch (colorSpace) { + case 1: + props.ColorSpace = _("DeviceGray"); + break; + case 3: + props.ColorSpace = _("DeviceRGB"); + break; + case 4: + props.ColorSpace = _("DeviceCMYK"); + props.Decode = [ 1, 0, 1, 0, 1, 0, 1, 0 ]; // invert colors + break; + } + + this.asStream = function() { + data.offset(0); + var stream = new PDFStream(data, props); + stream._resourceName = _("I" + (++RESOURCE_COUNTER)); + return stream; + }; +} + +// PDFRawImage will be used for images with transparency (PNG) + +function PDFRawImage(width, height, rgb, alpha) { + this.asStream = function(pdf) { + var mask = new PDFStream(alpha, { + Type : _("XObject"), + Subtype : _("Image"), + Width : width, + Height : height, + BitsPerComponent : 8, + ColorSpace : _("DeviceGray") + }, true); + var stream = new PDFStream(rgb, { + Type : _("XObject"), + Subtype : _("Image"), + Width : width, + Height : height, + BitsPerComponent : 8, + ColorSpace : _("DeviceRGB"), + SMask : pdf.attach(mask) + }, true); + stream._resourceName = _("I" + (++RESOURCE_COUNTER)); + return stream; + }; +} + +/// standard fonts + +var PDFStandardFont = defclass(function PDFStandardFont(name){ + this.props = { + Type : _("Font"), + Subtype : _("Type1"), + BaseFont : _(name) + }; + this._resourceName = _("F" + (++RESOURCE_COUNTER)); +}, { + encodeText: function(str) { + return new PDFString(String(str)); + } +}, PDFDictionary); + +/// TTF fonts + +var PDFFont = defclass(function PDFFont(pdf, font, props){ + props = this.props = props || {}; + props.Type = _("Font"); + props.Subtype = _("Type0"); + props.Encoding = _("Identity-H"); + + this._pdf = pdf; + this._font = font; + this._sub = font.makeSubset(); + this._resourceName = _("F" + (++RESOURCE_COUNTER)); + + var head = font.head; + + this.name = font.psName; + var scale = this.scale = font.scale; + this.bbox = [ + head.xMin * scale, + head.yMin * scale, + head.xMax * scale, + head.yMax * scale + ]; + + this.italicAngle = font.post.italicAngle; + this.ascent = font.ascent * scale; + this.descent = font.descent * scale; + this.lineGap = font.lineGap * scale; + this.capHeight = font.os2.capHeight || this.ascent; + this.xHeight = font.os2.xHeight || 0; + this.stemV = 0; + + this.familyClass = (font.os2.familyClass || 0) >> 8; + this.isSerif = this.familyClass >= 1 && this.familyClass <= 7; + this.isScript = this.familyClass == 10; + + this.flags = ((font.post.isFixedPitch ? 1 : 0) | + (this.isSerif ? 1 << 1 : 0) | + (this.isScript ? 1 << 3 : 0) | + (this.italicAngle !== 0 ? 1 << 6 : 0) | + (1 << 5)); +}, { + encodeText: function(text) { + return new PDFHexString(this._sub.encodeText(String(text))); + }, + getTextWidth: function(fontSize, text) { + var this$1 = this; + + var width = 0, codeMap = this._font.cmap.codeMap; + for (var i = 0; i < text.length; ++i) { + var glyphId = codeMap[text.charCodeAt(i)]; + width += this$1._font.widthOfGlyph(glyphId || 0); + } + return width * fontSize / 1000; + }, + beforeRender: function() { + var self = this; + var sub = self._sub; + + // write the TTF data + var data = sub.render(); + var fontStream = new PDFStream(Object(_utils__WEBPACK_IMPORTED_MODULE_0__["BinaryStream"])(data), { + Length1: data.length + }, true); + + var descriptor = self._pdf.attach(new PDFDictionary({ + Type : _("FontDescriptor"), + FontName : _(self._sub.psName), + FontBBox : self.bbox, + Flags : self.flags, + StemV : self.stemV, + ItalicAngle : self.italicAngle, + Ascent : self.ascent, + Descent : self.descent, + CapHeight : self.capHeight, + XHeight : self.xHeight, + FontFile2 : self._pdf.attach(fontStream) + })); + + var cmap = sub.ncid2ogid; + var firstChar = sub.firstChar; + var lastChar = sub.lastChar; + var charWidths = []; + (function loop(i, chunk){ + if (i <= lastChar) { + var gid = cmap[i]; + if (gid == null) { + loop(i + 1); + } else { + if (!chunk) { + charWidths.push(i, chunk = []); + } + chunk.push(self._font.widthOfGlyph(gid)); + loop(i + 1, chunk); + } + } + })(firstChar); + + // As if two dictionaries weren't enough, we need another + // one, the "descendant font". Only that one can be of + // Subtype CIDFontType2. PDF is the X11 of document + // formats: portable but full of legacy that nobody cares + // about anymore. + + var descendant = new PDFDictionary({ + Type: _("Font"), + Subtype: _("CIDFontType2"), + BaseFont: _(self._sub.psName), + CIDSystemInfo: new PDFDictionary({ + Registry : new PDFString("Adobe"), + Ordering : new PDFString("Identity"), + Supplement : 0 + }), + FontDescriptor: descriptor, + FirstChar: firstChar, + LastChar: lastChar, + DW: Math.round(self._font.widthOfGlyph(0)), + W: charWidths, + CIDToGIDMap: self._pdf.attach(self._makeCidToGidMap()) + }); + + var dict = self.props; + dict.BaseFont = _(self._sub.psName); + dict.DescendantFonts = [ self._pdf.attach(descendant) ]; + + // Compute the ToUnicode map so that apps can extract + // meaningful text from the PDF. + var unimap = new PDFToUnicodeCmap(firstChar, lastChar, sub.subset); + var unimapStream = new PDFStream(makeOutput(), null, true); + unimapStream.data(unimap); + dict.ToUnicode = self._pdf.attach(unimapStream); + }, + _makeCidToGidMap: function() { + return new PDFStream(Object(_utils__WEBPACK_IMPORTED_MODULE_0__["BinaryStream"])(this._sub.cidToGidMap()), null, true); + } +}, PDFDictionary); + +var PDFToUnicodeCmap = defclass(function PDFUnicodeCMap(firstChar, lastChar, map){ + this.firstChar = firstChar; + this.lastChar = lastChar; + this.map = map; +}, { + render: function(out) { + out.indent("/CIDInit /ProcSet findresource begin"); + out.indent("12 dict begin"); + out.indent("begincmap"); + out.indent("/CIDSystemInfo <<"); + out.indent(" /Registry (Adobe)"); + out.indent(" /Ordering (UCS)"); + out.indent(" /Supplement 0"); + out.indent(">> def"); + out.indent("/CMapName /Adobe-Identity-UCS def"); + out.indent("/CMapType 2 def"); + out.indent("1 begincodespacerange"); + out.indent(" <0000>"); + out.indent("endcodespacerange"); + + var self = this; + out.indent(self.lastChar - self.firstChar + 1, " beginbfchar"); + out.withIndent(function(){ + for (var code = self.firstChar; code <= self.lastChar; ++code) { + var unicode = self.map[code]; + var str = Object(_utils__WEBPACK_IMPORTED_MODULE_0__["ucs2encode"])([ unicode ]); + out.indent("<", zeropad(code.toString(16), 4), ">", "<"); + for (var i = 0; i < str.length; ++i) { + out(zeropad(str.charCodeAt(i).toString(16), 4)); + } + out(">"); + } + }); + out.indent("endbfchar"); + + out.indent("endcmap"); + out.indent("CMapName currentdict /CMap defineresource pop"); + out.indent("end"); + out.indent("end"); + } +}); + +/// gradients + +function makeHash(a) { + return a.map(function(x){ + return isArray(x) ? makeHash(x) + : typeof x == "number" ? (Math.round(x * 1000) / 1000).toFixed(3) + : x; + }).join(" "); +} + +function cacheColorGradientFunction(pdf, r1, g1, b1, r2, g2, b2) { + var hash = makeHash([ r1, g1, b1, r2, g2, b2 ]); + var func = pdf.GRAD_COL_FUNCTIONS[hash]; + if (!func) { + func = pdf.GRAD_COL_FUNCTIONS[hash] = pdf.attach(new PDFDictionary({ + FunctionType: 2, + Domain: [ 0, 1 ], + Range: [ 0, 1, 0, 1, 0, 1 ], + N: 1, + C0: [ r1 , g1 , b1 ], + C1: [ r2 , g2 , b2 ] + })); + } + return func; +} + +function cacheOpacityGradientFunction(pdf, a1, a2) { + var hash = makeHash([ a1, a2 ]); + var func = pdf.GRAD_OPC_FUNCTIONS[hash]; + if (!func) { + func = pdf.GRAD_OPC_FUNCTIONS[hash] = pdf.attach(new PDFDictionary({ + FunctionType: 2, + Domain: [ 0, 1 ], + Range: [ 0, 1 ], + N: 1, + C0: [ a1 ], + C1: [ a2 ] + })); + } + return func; +} + +function makeGradientFunctions(pdf, stops) { + var hasAlpha = false; + var opacities = []; + var colors = []; + var offsets = []; + var encode = []; + var i, prev, cur, prevColor, curColor; + for (i = 1; i < stops.length; ++i) { + prev = stops[i - 1]; + cur = stops[i]; + prevColor = prev.color; + curColor = cur.color; + colors.push(cacheColorGradientFunction( + pdf, + prevColor.r, prevColor.g, prevColor.b, + curColor.r, curColor.g, curColor.b + )); + if (prevColor.a < 1 || curColor.a < 1) { + hasAlpha = true; + } + offsets.push(cur.offset); + encode.push(0, 1); + } + if (hasAlpha) { + for (i = 1; i < stops.length; ++i) { + prev = stops[i - 1]; + cur = stops[i]; + prevColor = prev.color; + curColor = cur.color; + opacities.push(cacheOpacityGradientFunction( + pdf, prevColor.a, curColor.a + )); + } + } + offsets.pop(); + return { + hasAlpha : hasAlpha, + colors : assemble(colors), + opacities : hasAlpha ? assemble(opacities) : null + }; + function assemble(funcs) { + if (funcs.length == 1) { + return funcs[0]; + } + return { + FunctionType: 3, + Functions: funcs, + Domain: [ 0, 1 ], + Bounds: offsets, + Encode: encode + }; + } +} + +function cacheColorGradient(pdf, isRadial, stops, coords, funcs, box) { + var shading, hash; + // if box is given then we have user-space coordinates, which + // means the gradient is designed for a certain position/size + // on page. caching won't do any good. + if (!box) { + var a = [ isRadial ].concat(coords); + stops.forEach(function(x){ + a.push(x.offset, x.color.r, x.color.g, x.color.b); + }); + hash = makeHash(a); + shading = pdf.GRAD_COL[hash]; + } + if (!shading) { + shading = new PDFDictionary({ + Type: _("Shading"), + ShadingType: isRadial ? 3 : 2, + ColorSpace: _("DeviceRGB"), + Coords: coords, + Domain: [ 0, 1 ], + Function: funcs, + Extend: [ true, true ] + }); + pdf.attach(shading); + shading._resourceName = "S" + (++RESOURCE_COUNTER); + if (hash) { + pdf.GRAD_COL[hash] = shading; + } + } + return shading; +} + +function cacheOpacityGradient(pdf, isRadial, stops, coords, funcs, box) { + var opacity, hash; + // if box is given then we have user-space coordinates, which + // means the gradient is designed for a certain position/size + // on page. caching won't do any good. + if (!box) { + var a = [ isRadial ].concat(coords); + stops.forEach(function(x){ + a.push(x.offset, x.color.a); + }); + hash = makeHash(a); + opacity = pdf.GRAD_OPC[hash]; + } + if (!opacity) { + opacity = new PDFDictionary({ + Type: _("ExtGState"), + AIS: false, + CA: 1, + ca: 1, + SMask: { + Type: _("Mask"), + S: _("Luminosity"), + G: pdf.attach(new PDFStream("/a0 gs /s0 sh", { + Type: _("XObject"), + Subtype: _("Form"), + FormType: 1, + BBox: (box ? [ + box.left, box.top + box.height, box.left + box.width, box.top + ] : [ 0, 1, 1, 0 ]), + Group: { + Type: _("Group"), + S: _("Transparency"), + CS: _("DeviceGray"), + I: true + }, + Resources: { + ExtGState: { + a0: { CA: 1, ca: 1 } + }, + Shading: { + s0: { + ColorSpace: _("DeviceGray"), + Coords: coords, + Domain: [ 0, 1 ], + ShadingType: isRadial ? 3 : 2, + Function: funcs, + Extend: [ true, true ] + } + } + } + })) + } + }); + pdf.attach(opacity); + opacity._resourceName = "O" + (++RESOURCE_COUNTER); + if (hash) { + pdf.GRAD_OPC[hash] = opacity; + } + } + return opacity; +} + +function cacheGradient(pdf, gradient, box) { + var isRadial = gradient.type == "radial"; + var funcs = makeGradientFunctions(pdf, gradient.stops); + var coords = isRadial ? [ + gradient.start.x , gradient.start.y , gradient.start.r, + gradient.end.x , gradient.end.y , gradient.end.r + ] : [ + gradient.start.x , gradient.start.y, + gradient.end.x , gradient.end.y + ]; + var shading = cacheColorGradient( + pdf, isRadial, gradient.stops, coords, funcs.colors, gradient.userSpace && box + ); + var opacity = funcs.hasAlpha ? cacheOpacityGradient( + pdf, isRadial, gradient.stops, coords, funcs.opacities, gradient.userSpace && box + ) : null; + return { + hasAlpha: funcs.hasAlpha, + shading: shading, + opacity: opacity + }; +} + +/// page object + +var PDFPage = defclass(function PDFPage(pdf, props){ + this._pdf = pdf; + this._rcount = 0; + this._textMode = false; + this._fontResources = {}; + this._gsResources = {}; + this._xResources = {}; + this._patResources = {}; + this._shResources = {}; + this._opacity = 1; + this._matrix = [ 1, 0, 0, 1, 0, 0 ]; + this._annotations = []; + + this._font = null; + this._fontSize = null; + + this._contextStack = []; + + props = this.props = props || {}; + props.Type = _("Page"); + props.ProcSet = [ + _("PDF"), + _("Text"), + _("ImageB"), + _("ImageC"), + _("ImageI") + ]; + props.Resources = new PDFDictionary({ + Font : new PDFDictionary(this._fontResources), + ExtGState : new PDFDictionary(this._gsResources), + XObject : new PDFDictionary(this._xResources), + Pattern : new PDFDictionary(this._patResources), + Shading : new PDFDictionary(this._shResources) + }); + props.Annots = this._annotations; +}, { + _out: function() { + this._content.data.apply(null, arguments); + }, + transform: function(a, b, c, d, e, f) { + if (!isIdentityMatrix(arguments)) { + this._matrix = mmul(arguments, this._matrix); + this._out(a, " ", b, " ", c, " ", d, " ", e, " ", f, " cm"); + // XXX: debug + // this._out(" % current matrix: ", this._matrix); + this._out(NL); + } + }, + translate: function(dx, dy) { + this.transform(1, 0, 0, 1, dx, dy); + }, + scale: function(sx, sy) { + this.transform(sx, 0, 0, sy, 0, 0); + }, + rotate: function(angle) { + var cos = Math.cos(angle), sin = Math.sin(angle); + this.transform(cos, sin, -sin, cos, 0, 0); + }, + beginText: function() { + this._textMode = true; + this._out("BT", NL); + }, + endText: function() { + this._textMode = false; + this._out("ET", NL); + }, + _requireTextMode: function() { + if (!this._textMode) { + throw new Error("Text mode required; call page.beginText() first"); + } + }, + _requireFont: function() { + if (!this._font) { + throw new Error("No font selected; call page.setFont() first"); + } + }, + setFont: function(font, size) { + this._requireTextMode(); + if (font == null) { + font = this._font; + } else if (!(font instanceof PDFFont)) { + font = this._pdf.getFont(font); + } + if (size == null) { + size = this._fontSize; + } + this._fontResources[font._resourceName] = font; + this._font = font; + this._fontSize = size; + this._out(font._resourceName, " ", size, " Tf", NL); + }, + setTextLeading: function(size) { + this._requireTextMode(); + this._out(size, " TL", NL); + }, + setTextRenderingMode: function(mode) { + this._requireTextMode(); + this._out(mode, " Tr", NL); + }, + showText: function(text, requestedWidth) { + this._requireFont(); + if (text.length > 1 && requestedWidth && this._font instanceof PDFFont) { + var outputWidth = this._font.getTextWidth(this._fontSize, text); + var scale = requestedWidth / outputWidth * 100; + this._out(scale, " Tz "); + } + this._out(this._font.encodeText(text), " Tj", NL); + }, + showTextNL: function(text) { + this._requireFont(); + this._out(this._font.encodeText(text), " '", NL); + }, + addLink: function(uri, box) { + var ll = this._toPage({ x: box.left, y: box.bottom }); + var ur = this._toPage({ x: box.right, y: box.top }); + this._annotations.push(new PDFDictionary({ + Type : _("Annot"), + Subtype : _("Link"), + Rect : [ ll.x, ll.y, ur.x, ur.y ], + Border : [ 0, 0, 0 ], + A : new PDFDictionary({ + Type : _("Action"), + S : _("URI"), + URI : new PDFString(uri) + }) + })); + }, + setStrokeColor: function(r, g, b) { + this._out(r, " ", g, " ", b, " RG", NL); + }, + setOpacity: function(opacity) { + this.setFillOpacity(opacity); + this.setStrokeOpacity(opacity); + this._opacity *= opacity; + }, + setStrokeOpacity: function(opacity) { + if (opacity < 1) { + var gs = this._pdf.getOpacityGS(this._opacity * opacity, true); + this._gsResources[gs._resourceName] = gs; + this._out(gs._resourceName, " gs", NL); + } + }, + setFillColor: function(r, g, b) { + this._out(r, " ", g, " ", b, " rg", NL); + }, + setFillOpacity: function(opacity) { + if (opacity < 1) { + var gs = this._pdf.getOpacityGS(this._opacity * opacity, false); + this._gsResources[gs._resourceName] = gs; + this._out(gs._resourceName, " gs", NL); + } + }, + gradient: function(gradient, box) { + this.save(); + this.rect(box.left, box.top, box.width, box.height); + this.clip(); + if (!gradient.userSpace) { + this.transform(box.width, 0, 0, box.height, box.left, box.top); + } + var g = cacheGradient(this._pdf, gradient, box); + var sname = g.shading._resourceName, oname; + this._shResources[sname] = g.shading; + if (g.hasAlpha) { + oname = g.opacity._resourceName; + this._gsResources[oname] = g.opacity; + this._out("/" + oname + " gs "); + } + this._out("/" + sname + " sh", NL); + this.restore(); + }, + setDashPattern: function(dashArray, dashPhase) { + this._out(dashArray, " ", dashPhase, " d", NL); + }, + setLineWidth: function(width) { + this._out(width, " w", NL); + }, + setLineCap: function(lineCap) { + this._out(lineCap, " J", NL); + }, + setLineJoin: function(lineJoin) { + this._out(lineJoin, " j", NL); + }, + setMitterLimit: function(mitterLimit) { + this._out(mitterLimit, " M", NL); + }, + save: function() { + this._contextStack.push(this._context()); + this._out("q", NL); + }, + restore: function() { + this._out("Q", NL); + this._context(this._contextStack.pop()); + }, + + // paths + moveTo: function(x, y) { + this._out(x, " ", y, " m", NL); + }, + lineTo: function(x, y) { + this._out(x, " ", y, " l", NL); + }, + bezier: function(x1, y1, x2, y2, x3, y3) { + this._out(x1, " ", y1, " ", x2, " ", y2, " ", x3, " ", y3, " c", NL); + }, + bezier1: function(x1, y1, x3, y3) { + this._out(x1, " ", y1, " ", x3, " ", y3, " y", NL); + }, + bezier2: function(x2, y2, x3, y3) { + this._out(x2, " ", y2, " ", x3, " ", y3, " v", NL); + }, + close: function() { + this._out("h", NL); + }, + rect: function(x, y, w, h) { + this._out(x, " ", y, " ", w, " ", h, " re", NL); + }, + ellipse: function(x, y, rx, ry) { + function _X(v) { return x + v; } + function _Y(v) { return y + v; } + + // how to get to the "magic number" is explained here: + // http://www.whizkidtech.redprince.net/bezier/circle/kappa/ + var k = 0.5522847498307936; + + this.moveTo(_X(0), _Y(ry)); + this.bezier( + _X(rx * k) , _Y(ry), + _X(rx) , _Y(ry * k), + _X(rx) , _Y(0) + ); + this.bezier( + _X(rx) , _Y(-ry * k), + _X(rx * k) , _Y(-ry), + _X(0) , _Y(-ry) + ); + this.bezier( + _X(-rx * k) , _Y(-ry), + _X(-rx) , _Y(-ry * k), + _X(-rx) , _Y(0) + ); + this.bezier( + _X(-rx) , _Y(ry * k), + _X(-rx * k) , _Y(ry), + _X(0) , _Y(ry) + ); + }, + circle: function(x, y, r) { + this.ellipse(x, y, r, r); + }, + stroke: function() { + this._out("S", NL); + }, + nop: function() { + this._out("n", NL); + }, + clip: function() { + this._out("W n", NL); + }, + clipStroke: function() { + this._out("W S", NL); + }, + closeStroke: function() { + this._out("s", NL); + }, + fill: function() { + this._out("f", NL); + }, + fillStroke: function() { + this._out("B", NL); + }, + drawImage: function(url) { + var img = this._pdf.getImage(url); + if (img) { // the result can be null for a cross-domain image + this._xResources[img._resourceName] = img; + this._out(img._resourceName, " Do", NL); + } + }, + comment: function(txt) { + var self = this; + txt.split(/\r?\n/g).forEach(function(line){ + self._out("% ", line, NL); + }); + }, + + // internal + _context: function(val) { + if (val != null) { + this._opacity = val.opacity; + this._matrix = val.matrix; + } else { + return { + opacity: this._opacity, + matrix: this._matrix + }; + } + }, + + _toPage: function(p) { + var m = this._matrix; + var a = m[0], b = m[1], c = m[2], d = m[3], e = m[4], f = m[5]; + return { + x: a*p.x + c*p.y + e, + y: b*p.x + d*p.y + f + }; + } +}, PDFDictionary); + +function unquote(str) { + return str.replace(/^\s*(['"])(.*)\1\s*$/, "$2"); +} + +function parseFontDef(fontdef) { + // XXX: this is very crude for now and buggy. Proper parsing is quite involved. + var rx = /^\s*((normal|italic)\s+)?((normal|small-caps)\s+)?((normal|bold|\d+)\s+)?(([0-9.]+)(px|pt))(\/(([0-9.]+)(px|pt)|normal))?\s+(.*?)\s*$/i; + var m = rx.exec(fontdef); + if (!m) { + return { fontSize: 12, fontFamily: "sans-serif" }; + } + var fontSize = m[8] ? parseInt(m[8], 10) : 12; + return { + italic : m[2] && m[2].toLowerCase() == "italic", + variant : m[4], + bold : m[6] && /bold|700/i.test(m[6]), + fontSize : fontSize, + lineHeight : m[12] ? m[12] == "normal" ? fontSize : parseInt(m[12], 10) : null, + fontFamily : m[14].split(/\s*,\s*/g).map(unquote) + }; +} + +function getFontURL(style) { + function mkFamily(name) { + if (style.bold) { + name += "|bold"; + } + if (style.italic) { + name += "|italic"; + } + return name.toLowerCase(); + } + var fontFamily = style.fontFamily; + var name, url; + if (fontFamily instanceof Array) { + for (var i = 0; i < fontFamily.length; ++i) { + name = mkFamily(fontFamily[i]); + url = FONT_MAPPINGS[name]; + if (url) { + break; + } + } + } else { + url = FONT_MAPPINGS[fontFamily.toLowerCase()]; + } + while (typeof url == "function") { + url = url(); + } + if (!url) { + url = "Times-Roman"; + } + return url; +} + +var FONT_MAPPINGS = { + "serif" : "Times-Roman", + "serif|bold" : "Times-Bold", + "serif|italic" : "Times-Italic", + "serif|bold|italic" : "Times-BoldItalic", + "sans-serif" : "Helvetica", + "sans-serif|bold" : "Helvetica-Bold", + "sans-serif|italic" : "Helvetica-Oblique", + "sans-serif|bold|italic" : "Helvetica-BoldOblique", + "monospace" : "Courier", + "monospace|bold" : "Courier-Bold", + "monospace|italic" : "Courier-Oblique", + "monospace|bold|italic" : "Courier-BoldOblique", + "zapfdingbats" : "ZapfDingbats", + "zapfdingbats|bold" : "ZapfDingbats", + "zapfdingbats|italic" : "ZapfDingbats", + "zapfdingbats|bold|italic" : "ZapfDingbats" +}; + +function fontAlias(alias, name) { + alias = alias.toLowerCase(); + FONT_MAPPINGS[alias] = function() { + return FONT_MAPPINGS[name]; + }; + FONT_MAPPINGS[alias + "|bold"] = function() { + return FONT_MAPPINGS[name + "|bold"]; + }; + FONT_MAPPINGS[alias + "|italic"] = function() { + return FONT_MAPPINGS[name + "|italic"]; + }; + FONT_MAPPINGS[alias + "|bold|italic"] = function() { + return FONT_MAPPINGS[name + "|bold|italic"]; + }; +} + +// Let's define some common names to an appropriate replacement. +// These are overridable via pdf.defineFont, should the user want to +// include the proper versions. + +fontAlias("Times New Roman" , "serif"); +fontAlias("Courier New" , "monospace"); +fontAlias("Arial" , "sans-serif"); +fontAlias("Helvetica" , "sans-serif"); +fontAlias("Verdana" , "sans-serif"); +fontAlias("Tahoma" , "sans-serif"); +fontAlias("Georgia" , "sans-serif"); +fontAlias("Monaco" , "monospace"); +fontAlias("Andale Mono" , "monospace"); + +function defineFont(name, url) { + if (arguments.length == 1) { + for (var i in name) { + if (hasOwnProperty(name, i)) { + defineFont(i, name[i]); + } + } + } else { + name = name.toLowerCase(); + FONT_MAPPINGS[name] = url; + + // special handling for DejaVu fonts: if they get defined, + // let them also replace the default families, for good + // Unicode support out of the box. + switch (name) { + case "dejavu sans" : FONT_MAPPINGS["sans-serif"] = url; break; + case "dejavu sans|bold" : FONT_MAPPINGS["sans-serif|bold"] = url; break; + case "dejavu sans|italic" : FONT_MAPPINGS["sans-serif|italic"] = url; break; + case "dejavu sans|bold|italic" : FONT_MAPPINGS["sans-serif|bold|italic"] = url; break; + case "dejavu serif" : FONT_MAPPINGS["serif"] = url; break; + case "dejavu serif|bold" : FONT_MAPPINGS["serif|bold"] = url; break; + case "dejavu serif|italic" : FONT_MAPPINGS["serif|italic"] = url; break; + case "dejavu serif|bold|italic" : FONT_MAPPINGS["serif|bold|italic"] = url; break; + case "dejavu mono" : FONT_MAPPINGS["monospace"] = url; break; + case "dejavu mono|bold" : FONT_MAPPINGS["monospace|bold"] = url; break; + case "dejavu mono|italic" : FONT_MAPPINGS["monospace|italic"] = url; break; + case "dejavu mono|bold|italic" : FONT_MAPPINGS["monospace|bold|italic"] = url; break; + } + } +} + +function mmul(a, b) { + var a1 = a[0], b1 = a[1], c1 = a[2], d1 = a[3], e1 = a[4], f1 = a[5]; + var a2 = b[0], b2 = b[1], c2 = b[2], d2 = b[3], e2 = b[4], f2 = b[5]; + return [ + a1*a2 + b1*c2, a1*b2 + b1*d2, + c1*a2 + d1*c2, c1*b2 + d1*d2, + e1*a2 + f1*c2 + e2, e1*b2 + f1*d2 + f2 + ]; +} + +function isIdentityMatrix(m) { + return m[0] === 1 && m[1] === 0 && m[2] === 0 && m[3] === 1 && m[4] === 0 && m[5] === 0; +} + +var TEXT_RENDERING_MODE = { + fill : 0, + stroke : 1, + fillAndStroke : 2, + invisible : 3, + fillAndClip : 4, + strokeAndClip : 5, + fillStrokeClip : 6, + clip : 7 +}; + + + + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/pdf/deflate.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "deflate", function() { return deflate; }); + __webpack_require__.d(__webpack_exports__, "supportsDeflate", function() { return supportsDeflate; }); + var _progress_pako_esm__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/pako-esm/dist/pako-esm5.js"); + + +var deflate = _progress_pako_esm__WEBPACK_IMPORTED_MODULE_0__["deflate"]; + +function supportsDeflate() { + return true; +} + + + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/pdf/drawing.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "exportPDF", function() { return exportPDF; }); + __webpack_require__.d(__webpack_exports__, "saveAs", function() { return saveAs; }); + __webpack_require__.d(__webpack_exports__, "toDataURL", function() { return toDataURL; }); + __webpack_require__.d(__webpack_exports__, "toBlob", function() { return toBlob; }); + __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); + var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/util.js"); + var _common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/common.js"); + var _core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/pdf/core.js"); + var _drawing__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/drawing.js"); + var _geometry__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry.js"); + + + + + + + + + + + +var TEXT_RENDERING_MODE = _core__WEBPACK_IMPORTED_MODULE_2__["TEXT_RENDERING_MODE"]; + +var DASH_PATTERNS = { + dash : [ 4 ], + dashDot : [ 4, 2, 1, 2 ], + dot : [ 1, 2 ], + longDash : [ 8, 2 ], + longDashDot : [ 8, 2, 1, 2 ], + longDashDotDot : [ 8, 2, 1, 2, 1, 2 ], + solid : [] +}; + +var LINE_CAP = { + butt : 0, + round : 1, + square : 2 +}; + +var LINE_JOIN = { + miter : 0, + round : 1, + bevel : 2 +}; + +function render(group, callback) { + var fonts = [], images = {}, options = group.options; + + function getOption(name, defval, hash) { + if (!hash) { + hash = options; + } + if (hash.pdf && hash.pdf[name] != null) { + return hash.pdf[name]; + } + return defval; + } + + var multiPage = getOption("multiPage"); + var imgDPI = getOption("imgDPI"); + + if (imgDPI) { + _core__WEBPACK_IMPORTED_MODULE_2__["clearImageCache"](); + } + + group.traverse(function(element){ + dispatch({ + Image: function(element) { + var url = element.src(); + if (imgDPI) { + var box = element.bbox().size; + var prev = images[url]; + box = { + width: Math.ceil(box.width * imgDPI / 72), + height: Math.ceil(box.height * imgDPI / 72) + }; + if (prev) { + box.width = Math.max(prev.width, box.width); + box.height = Math.max(prev.height, box.height); + } + images[url] = box; + } else { + images[url] = null; + } + }, + Text: function(element) { + var style = _core__WEBPACK_IMPORTED_MODULE_2__["parseFontDef"](element.options.font); + var url = _core__WEBPACK_IMPORTED_MODULE_2__["getFontURL"](style); + if (fonts.indexOf(url) < 0) { + fonts.push(url); + } + } + }, element); + }); + + function doIt() { + if (--count > 0) { + return; + } + + var pdf = new (_core__WEBPACK_IMPORTED_MODULE_2__["Document"])({ + producer : getOption("producer"), + title : getOption("title"), + author : getOption("author"), + subject : getOption("subject"), + keywords : getOption("keywords"), + creator : getOption("creator"), + date : getOption("date"), + + autoPrint : getOption("autoPrint") + }); + + function drawPage(group) { + var options = group.options; + + var tmp = optimize(group); + var bbox = tmp.bbox; + group = tmp.root; + // var tmp, bbox; + + var paperSize = getOption("paperSize", getOption("paperSize", "auto"), options), addMargin = false; + if (paperSize == "auto") { + if (bbox) { + var size = bbox.getSize(); + paperSize = [ size.width, size.height ]; + addMargin = true; + var origin = bbox.getOrigin(); + tmp = new _drawing__WEBPACK_IMPORTED_MODULE_3__["Group"](); + tmp.transform(new _geometry__WEBPACK_IMPORTED_MODULE_4__["Matrix"](1, 0, 0, 1, -origin.x, -origin.y)); + tmp.append(group); + group = tmp; + } + else { + paperSize = "A4"; + } + } + + var page; + page = pdf.addPage({ + paperSize : paperSize, + margin : getOption("margin", getOption("margin"), options), + addMargin : addMargin, + landscape : getOption("landscape", getOption("landscape", false), options) + }); + drawElement(group, page, pdf); + } + + if (multiPage) { + group.children.forEach(drawPage); + } else { + drawPage(group); + } + + callback(pdf.render(), pdf); + } + + var count = 2; + _core__WEBPACK_IMPORTED_MODULE_2__["loadFonts"](fonts, doIt); + _core__WEBPACK_IMPORTED_MODULE_2__["loadImages"](images, doIt); +} + +function toDataURL(group, callback) { + render(group, function(data){ + callback("data:application/pdf;base64," + data.base64()); + }); +} + +function toBlob(group, callback) { + render(group, function(data){ + callback(new window.Blob([ data.get() ], { type: "application/pdf" })); + }); +} + +function saveAs(group, filename, proxy, callback) { + // XXX: Safari has Blob, but does not support the download attribute + // so we'd end up converting to dataURL and using the proxy anyway. + if (window.Blob && !_common__WEBPACK_IMPORTED_MODULE_1__["support"].browser.safari) { + toBlob(group, function(blob){ + Object(_common__WEBPACK_IMPORTED_MODULE_1__["saveAs"])({ dataURI: blob, fileName: filename }); + if (callback) { + callback(blob); + } + }); + } else { + toDataURL(group, function(dataURL){ + Object(_common__WEBPACK_IMPORTED_MODULE_1__["saveAs"])({ dataURI: dataURL, fileName: filename, proxyURL: proxy }); + if (callback) { + callback(dataURL); + } + }); + } +} + +function dispatch(handlers, element) { + var handler = handlers[element.nodeType]; + if (handler) { + return handler.call.apply(handler, arguments); + } + return element; +} + +function drawElement(element, page, pdf) { + if (element.options._pdfDebug) { + page.comment("BEGIN: " + element.options._pdfDebug); + } + + var transform = element.transform(); + var opacity = element.opacity(); + + page.save(); + + if (opacity != null && opacity < 1) { + page.setOpacity(opacity); + } + + setStrokeOptions(element, page, pdf); + setFillOptions(element, page, pdf); + + if (transform) { + var m = transform.matrix(); + page.transform(m.a, m.b, m.c, m.d, m.e, m.f); + } + + setClipping(element, page, pdf); + + dispatch({ + Path : drawPath, + MultiPath : drawMultiPath, + Circle : drawCircle, + Arc : drawArc, + Text : drawText, + Image : drawImage, + Group : drawGroup, + Rect : drawRect + }, element, page, pdf); + + page.restore(); + + if (element.options._pdfDebug) { + page.comment("END: " + element.options._pdfDebug); + } +} + +function setStrokeOptions(element, page) { + var stroke = element.stroke && element.stroke(); + if (!stroke) { + return; + } + + var color = stroke.color; + if (color) { + color = parseColor(color); + if (color == null) { + return; // no stroke + } + page.setStrokeColor(color.r, color.g, color.b); + if (color.a != 1) { + page.setStrokeOpacity(color.a); + } + } + + var width = stroke.width; + if (width != null) { + if (width === 0) { + return; // no stroke + } + page.setLineWidth(width); + } + + var dashType = stroke.dashType; + if (dashType) { + page.setDashPattern(DASH_PATTERNS[dashType], 0); + } + + var lineCap = stroke.lineCap; + if (lineCap) { + page.setLineCap(LINE_CAP[lineCap]); + } + + var lineJoin = stroke.lineJoin; + if (lineJoin) { + page.setLineJoin(LINE_JOIN[lineJoin]); + } + + var opacity = stroke.opacity; + if (opacity != null) { + page.setStrokeOpacity(opacity); + } +} + +function setFillOptions(element, page) { + var fill = element.fill && element.fill(); + if (!fill) { + return; + } + + if (fill instanceof _drawing__WEBPACK_IMPORTED_MODULE_3__["Gradient"]) { + return; + } + + var color = fill.color; + if (color) { + color = parseColor(color); + if (color == null) { + return; // no fill + } + page.setFillColor(color.r, color.g, color.b); + if (color.a != 1) { + page.setFillOpacity(color.a); + } + } + + var opacity = fill.opacity; + if (opacity != null) { + page.setFillOpacity(opacity); + } +} + +function setClipping(element, page, pdf) { + // XXX: only Path supported at the moment. + var clip = element.clip(); + if (clip) { + _drawPath(clip, page, pdf); + page.clip(); + // page.setStrokeColor(Math.random(), Math.random(), Math.random()); + // page.setLineWidth(1); + // page.stroke(); + } +} + +function shouldDraw(thing) { + return (thing && + (thing instanceof _drawing__WEBPACK_IMPORTED_MODULE_3__["Gradient"] || + (thing.color && !/^(none|transparent)$/i.test(thing.color) && + (thing.width == null || thing.width > 0) && + (thing.opacity == null || thing.opacity > 0)))); +} + +function maybeGradient(element, page, pdf, stroke) { + var fill = element.fill(); + if (fill instanceof _drawing__WEBPACK_IMPORTED_MODULE_3__["Gradient"]) { + if (stroke) { + page.clipStroke(); + } else { + page.clip(); + } + var isRadial = fill instanceof _drawing__WEBPACK_IMPORTED_MODULE_3__["RadialGradient"]; + var start, end; + if (isRadial) { + start = { x: fill.center().x , y: fill.center().y , r: 0 }; + end = { x: fill.center().x , y: fill.center().y , r: fill.radius() }; + } else { + start = { x: fill.start().x , y: fill.start().y }; + end = { x: fill.end().x , y: fill.end().y }; + } + + var stops = fill.stops.elements().map(function(stop){ + var offset = stop.offset(); + if (/%$/.test(offset)) { + offset = parseFloat(offset) / 100; + } else { + offset = parseFloat(offset); + } + var color = parseColor(stop.color()); + color.a *= stop.opacity(); + return { + offset: offset, + color: color + }; + }); + + // Duplicats first and last stop to fix + // https://github.com/telerik/kendo-ui-core/issues/1782 + stops.unshift(stops[0]); + stops.push(stops[stops.length - 1]); + + var gradient = { + userSpace : fill.userSpace(), + type : isRadial ? "radial" : "linear", + start : start, + end : end, + stops : stops + }; + var box = element.rawBBox(); + var tl = box.topLeft(), size = box.getSize(); + box = { + left : tl.x, + top : tl.y, + width : size.width, + height : size.height + }; + page.gradient(gradient, box); + return true; + } +} + +function maybeFillStroke(element, page, pdf) { + if (shouldDraw(element.fill()) && shouldDraw(element.stroke())) { + if (!maybeGradient(element, page, pdf, true)) { + page.fillStroke(); + } + } else if (shouldDraw(element.fill())) { + if (!maybeGradient(element, page, pdf, false)) { + page.fill(); + } + } else if (shouldDraw(element.stroke())) { + page.stroke(); + } else { + // we should not get here; the path should have been + // optimized away. but let's be prepared. + page.nop(); + } +} + +function maybeDrawRect(path, page) { + var segments = path.segments; + if (segments.length == 4 && path.options.closed) { + // detect if this path looks like a rectangle parallel to the axis + var a = []; + for (var i = 0; i < segments.length; ++i) { + if (segments[i].controlIn()) { // has curve? + return false; + } + a[i] = segments[i].anchor(); + } + // it's a rectangle if the y/x/y/x or x/y/x/y coords of + // consecutive points are the same. + var isRect = ( + a[0].y == a[1].y && a[1].x == a[2].x && a[2].y == a[3].y && a[3].x == a[0].x + ) || ( + a[0].x == a[1].x && a[1].y == a[2].y && a[2].x == a[3].x && a[3].y == a[0].y + ); + if (isRect) { + // this saves a bunch of instructions in PDF: + // moveTo, lineTo, lineTo, lineTo, close -> rect. + page.rect(a[0].x, a[0].y, + a[2].x - a[0].x , + a[2].y - a[0].y ); + return true; + } + } +} + +function _drawPath(element, page, pdf) { + var segments = element.segments; + if (segments.length === 0) { + return; + } + if (!maybeDrawRect(element, page, pdf)) { + for (var prev, i = 0; i < segments.length; ++i) { + var seg = segments[i]; + var anchor = seg.anchor(); + if (!prev) { + page.moveTo(anchor.x, anchor.y); + } else { + var prevOut = prev.controlOut(); + var controlIn = seg.controlIn(); + if (prevOut && controlIn) { + page.bezier( + prevOut.x , prevOut.y, + controlIn.x , controlIn.y, + anchor.x , anchor.y + ); + } else { + page.lineTo(anchor.x, anchor.y); + } + } + prev = seg; + } + if (element.options.closed) { + page.close(); + } + } +} + +function drawPath(element, page, pdf) { + _drawPath(element, page, pdf); + maybeFillStroke(element, page, pdf); +} + +function drawMultiPath(element, page, pdf) { + var paths = element.paths; + for (var i = 0; i < paths.length; ++i) { + _drawPath(paths[i], page, pdf); + } + maybeFillStroke(element, page, pdf); +} + +function drawCircle(element, page, pdf) { + var g = element.geometry(); + page.circle(g.center.x, g.center.y, g.radius); + maybeFillStroke(element, page, pdf); +} + +function drawArc(element, page, pdf) { + var points = element.geometry().curvePoints(); + page.moveTo(points[0].x, points[0].y); + for (var i = 1; i < points.length;) { + page.bezier( + points[i].x, points[i++].y, + points[i].x, points[i++].y, + points[i].x, points[i++].y + ); + } + maybeFillStroke(element, page, pdf); +} + +function drawText(element, page) { + var style = _core__WEBPACK_IMPORTED_MODULE_2__["parseFontDef"](element.options.font); + var pos = element._position; + var mode; + if (element.fill() && element.stroke()) { + mode = TEXT_RENDERING_MODE.fillAndStroke; + } else if (element.fill()) { + mode = TEXT_RENDERING_MODE.fill; + } else if (element.stroke()) { + mode = TEXT_RENDERING_MODE.stroke; + } + + page.transform(1, 0, 0, -1, pos.x, pos.y + style.fontSize); + page.beginText(); + page.setFont(_core__WEBPACK_IMPORTED_MODULE_2__["getFontURL"](style), style.fontSize); + page.setTextRenderingMode(mode); + page.showText(element.content(), element._pdfRect ? element._pdfRect.width() : null); + page.endText(); +} + +function drawGroup(element, page, pdf) { + if (element._pdfLink) { + page.addLink(element._pdfLink.url, element._pdfLink); + } + var children = element.children; + for (var i = 0; i < children.length; ++i) { + drawElement(children[i], page, pdf); + } +} + +function drawImage(element, page) { + var url = element.src(); + if (!url) { + return; + } + + var rect = element.rect(); + var tl = rect.getOrigin(); + var sz = rect.getSize(); + page.transform(sz.width, 0, 0, -sz.height, tl.x, tl.y + sz.height); + page.drawImage(url); +} + +function drawRect(element, page, pdf) { + var geometry = element.geometry(); + page.rect(geometry.origin.x, geometry.origin.y, geometry.size.width, geometry.size.height); + maybeFillStroke(element, page, pdf); +} + +function parseColor(value) { + var color = Object(_common__WEBPACK_IMPORTED_MODULE_1__["parseColor"])(value, true); + return color ? color.toRGB() : null; +} + +function optimize(root) { + var clipbox = false; + var matrix = _geometry__WEBPACK_IMPORTED_MODULE_4__["Matrix"].unit(); + var currentBox = null; + var changed; + do { + changed = false; + root = opt(root); + } while (root && changed); + return { root: root, bbox: currentBox }; + + function change(newShape) { + changed = true; + return newShape; + } + + function visible(shape) { + return (shape.visible() && shape.opacity() > 0 && + ( shouldDraw(shape.fill()) || + shouldDraw(shape.stroke()) )); + } + + function optArray(a) { + var b = []; + for (var i = 0; i < a.length; ++i) { + var el = opt(a[i]); + if (el != null) { + b.push(el); + } + } + return b; + } + + function withClipping(shape, f) { + var saveclipbox = clipbox; + var savematrix = matrix; + + if (shape.transform()) { + matrix = matrix.multiplyCopy(shape.transform().matrix()); + } + + var clip = shape.clip(); + if (clip) { + clip = clip.bbox(); + if (clip) { + clip = clip.bbox(matrix); + clipbox = clipbox ? _geometry__WEBPACK_IMPORTED_MODULE_4__["Rect"].intersect(clipbox, clip) : clip; + } + } + + try { + return f(); + } + finally { + clipbox = saveclipbox; + matrix = savematrix; + } + } + + function inClipbox(shape) { + if (clipbox == null) { + return false; + } + var box = shape.rawBBox().bbox(matrix); + if (clipbox && box) { + box = _geometry__WEBPACK_IMPORTED_MODULE_4__["Rect"].intersect(box, clipbox); + } + return box; + } + + function opt(shape) { + return withClipping(shape, function(){ + if (!(shape instanceof _drawing__WEBPACK_IMPORTED_MODULE_3__["Group"] || shape instanceof _drawing__WEBPACK_IMPORTED_MODULE_3__["MultiPath"])) { + var box = inClipbox(shape); + if (!box) { + return change(null); + } + currentBox = currentBox ? _geometry__WEBPACK_IMPORTED_MODULE_4__["Rect"].union(currentBox, box) : box; + } + return dispatch({ + Path: function(shape) { + if (shape.segments.length === 0 || !visible(shape)) { + return change(null); + } + return shape; + }, + MultiPath: function(shape) { + if (!visible(shape)) { + return change(null); + } + var el = new _drawing__WEBPACK_IMPORTED_MODULE_3__["MultiPath"](shape.options); + el.paths = optArray(shape.paths); + if (el.paths.length === 0) { + return change(null); + } + return el; + }, + Circle: function(shape) { + if (!visible(shape)) { + return change(null); + } + return shape; + }, + Arc: function(shape) { + if (!visible(shape)) { + return change(null); + } + return shape; + }, + Text: function(shape) { + if (!/\S/.test(shape.content()) || !visible(shape)) { + return change(null); + } + return shape; + }, + Image: function(shape) { + if (!(shape.visible() && shape.opacity() > 0)) { + return change(null); + } + return shape; + }, + Group: function(shape) { + if (!(shape.visible() && shape.opacity() > 0)) { + return change(null); + } + var el = new _drawing__WEBPACK_IMPORTED_MODULE_3__["Group"](shape.options); + el.children = optArray(shape.children); + el._pdfLink = shape._pdfLink; + if (shape !== root && el.children.length === 0 && !shape._pdfLink) { + return change(null); + } + return el; + }, + Rect: function(shape) { + if (!visible(shape)) { + return change(null); + } + return shape; + } + }, shape); + }); + } +} + +function exportPDF(group, options) { + var promise = Object(_util__WEBPACK_IMPORTED_MODULE_0__["createPromise"])(); + + for (var i in options) { + if (i == "margin" && group.options.pdf && group.options.pdf._ignoreMargin) { + // This hackish option is set by the page breaking code in drawDOM. The idea is + // that margin is already taken into account there (that's required to do proper + // page breaking) and we don't want to set it again here, as it would double the + // top-left margin, and truncate the content on bottom/right. + continue; + } + group.options.set("pdf." + i, options[i]); + } + + toDataURL(group, promise.resolve); + + return promise; +} + + + + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/pdf/ttf.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "TTFFont", function() { return TTFFont; }); + var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/pdf/utils.js"); + + + + + + + + + +function hasOwnProperty(obj, key) { + return Object.prototype.hasOwnProperty.call(obj, key); +} + +function sortedKeys(obj) { + return Object.keys(obj).sort(function(a, b){ return a - b; }).map(parseFloat); +} + +/// + +function Directory(data) { + this.raw = data; + this.scalerType = data.readLong(); + this.tableCount = data.readShort(); + this.searchRange = data.readShort(); + this.entrySelector = data.readShort(); + this.rangeShift = data.readShort(); + + var tables = this.tables = {}; + for (var i = 0; i < this.tableCount; ++i) { + var entry = { + tag : data.readString(4), + checksum : data.readLong(), + offset : data.readLong(), + length : data.readLong() + }; + tables[entry.tag] = entry; + } +} + +Directory.prototype = { + + readTable: function(name, Ctor) { + var def = this.tables[name]; + if (!def) { + throw new Error("Table " + name + " not found in directory"); + } + return (this[name] = def.table = new Ctor(this, def)); + }, + + render: function(tables) { + var this$1 = this; + + var tableCount = Object.keys(tables).length; + + var maxpow2 = Math.pow(2, Math.floor(Math.log(tableCount) / Math.LN2)); + var searchRange = maxpow2 * 16; + var entrySelector = Math.floor(Math.log(maxpow2) / Math.LN2); + var rangeShift = tableCount * 16 - searchRange; + + var out = Object(_utils__WEBPACK_IMPORTED_MODULE_0__["BinaryStream"])(); + out.writeLong(this.scalerType); + out.writeShort(tableCount); + out.writeShort(searchRange); + out.writeShort(entrySelector); + out.writeShort(rangeShift); + + var directoryLength = tableCount * 16; + var offset = out.offset() + directoryLength; + var headOffset = null; + var tableData = Object(_utils__WEBPACK_IMPORTED_MODULE_0__["BinaryStream"])(); + + for (var tag in tables) { + if (hasOwnProperty(tables, tag)) { + var table = tables[tag]; + + out.writeString(tag); + out.writeLong(this$1.checksum(table)); + out.writeLong(offset); + out.writeLong(table.length); + + tableData.write(table); + if (tag == "head") { + headOffset = offset; + } + offset += table.length; + + while (offset % 4) { + tableData.writeByte(0); + offset++; + } + } + } + + out.write(tableData.get()); + var sum = this.checksum(out.get()); + var adjustment = 0xB1B0AFBA - sum; + + out.offset(headOffset + 8); + out.writeLong(adjustment); + return out.get(); + }, + + checksum: function(data) { + data = Object(_utils__WEBPACK_IMPORTED_MODULE_0__["BinaryStream"])(data); + var sum = 0; + while (!data.eof()) { + sum += data.readLong(); + } + return sum & 0xFFFFFFFF; + } +}; + +function deftable(methods) { + function Ctor(file, def) { + this.definition = def; + this.length = def.length; + this.offset = def.offset; + this.file = file; + this.rawData = file.raw; + this.parse(file.raw); + } + Ctor.prototype.raw = function() { + return this.rawData.slice(this.offset, this.length); + }; + for (var i in methods) { + if (hasOwnProperty(methods, i)) { + Ctor[i] = Ctor.prototype[i] = methods[i]; + } + } + return Ctor; +} + +var HeadTable = deftable({ + parse: function(data) { + data.offset(this.offset); + this.version = data.readLong(); + this.revision = data.readLong(); + this.checkSumAdjustment = data.readLong(); + this.magicNumber = data.readLong(); + this.flags = data.readShort(); + this.unitsPerEm = data.readShort(); + this.created = data.read(8); + this.modified = data.read(8); + + this.xMin = data.readShort_(); + this.yMin = data.readShort_(); + this.xMax = data.readShort_(); + this.yMax = data.readShort_(); + + this.macStyle = data.readShort(); + this.lowestRecPPEM = data.readShort(); + this.fontDirectionHint = data.readShort_(); + this.indexToLocFormat = data.readShort_(); + this.glyphDataFormat = data.readShort_(); + }, + render: function(indexToLocFormat) { + var out = Object(_utils__WEBPACK_IMPORTED_MODULE_0__["BinaryStream"])(); + out.writeLong(this.version); + out.writeLong(this.revision); + out.writeLong(0); // checksum adjustment; shall be computed later + out.writeLong(this.magicNumber); + out.writeShort(this.flags); + out.writeShort(this.unitsPerEm); + out.write(this.created); + out.write(this.modified); + out.writeShort_(this.xMin); + out.writeShort_(this.yMin); + out.writeShort_(this.xMax); + out.writeShort_(this.yMax); + out.writeShort(this.macStyle); + out.writeShort(this.lowestRecPPEM); + out.writeShort_(this.fontDirectionHint); + out.writeShort_(indexToLocFormat); // this will depend on the `loca` table + out.writeShort_(this.glyphDataFormat); + return out.get(); + } +}); + +var LocaTable = deftable({ + parse: function(data) { + data.offset(this.offset); + var format = this.file.head.indexToLocFormat; + if (format === 0) { + this.offsets = data.times(this.length / 2, function(){ + return 2 * data.readShort(); + }); + } else { + this.offsets = data.times(this.length / 4, data.readLong); + } + }, + offsetOf: function(id) { + return this.offsets[id]; + }, + lengthOf: function(id) { + return this.offsets[id + 1] - this.offsets[id]; + }, + render: function(offsets) { + var out = Object(_utils__WEBPACK_IMPORTED_MODULE_0__["BinaryStream"])(); + var needsLongFormat = offsets[offsets.length - 1] > 0xFFFF; + for (var i = 0; i < offsets.length; ++i) { + if (needsLongFormat) { + out.writeLong(offsets[i]); + } else { + out.writeShort(offsets[i] / 2); + } + } + return { + format: needsLongFormat ? 1 : 0, + table: out.get() + }; + } +}); + +var HheaTable = deftable({ + parse: function(data) { + data.offset(this.offset); + + this.version = data.readLong(); + this.ascent = data.readShort_(); + this.descent = data.readShort_(); + this.lineGap = data.readShort_(); + this.advanceWidthMax = data.readShort(); + this.minLeftSideBearing = data.readShort_(); + this.minRightSideBearing = data.readShort_(); + this.xMaxExtent = data.readShort_(); + this.caretSlopeRise = data.readShort_(); + this.caretSlopeRun = data.readShort_(); + this.caretOffset = data.readShort_(); + + data.skip(4 * 2); // reserved + + this.metricDataFormat = data.readShort_(); + this.numOfLongHorMetrics = data.readShort(); + }, + render: function(ids) { + var out = Object(_utils__WEBPACK_IMPORTED_MODULE_0__["BinaryStream"])(); + out.writeLong(this.version); + out.writeShort_(this.ascent); + out.writeShort_(this.descent); + out.writeShort_(this.lineGap); + out.writeShort(this.advanceWidthMax); + out.writeShort_(this.minLeftSideBearing); + out.writeShort_(this.minRightSideBearing); + out.writeShort_(this.xMaxExtent); + out.writeShort_(this.caretSlopeRise); + out.writeShort_(this.caretSlopeRun); + out.writeShort_(this.caretOffset); + + out.write([ 0, 0, 0, 0, 0, 0, 0, 0 ]); // reserved bytes + + out.writeShort_(this.metricDataFormat); + out.writeShort(ids.length); + return out.get(); + } +}); + +var MaxpTable = deftable({ + parse: function(data) { + data.offset(this.offset); + this.version = data.readLong(); + this.numGlyphs = data.readShort(); + this.maxPoints = data.readShort(); + this.maxContours = data.readShort(); + this.maxComponentPoints = data.readShort(); + this.maxComponentContours = data.readShort(); + this.maxZones = data.readShort(); + this.maxTwilightPoints = data.readShort(); + this.maxStorage = data.readShort(); + this.maxFunctionDefs = data.readShort(); + this.maxInstructionDefs = data.readShort(); + this.maxStackElements = data.readShort(); + this.maxSizeOfInstructions = data.readShort(); + this.maxComponentElements = data.readShort(); + this.maxComponentDepth = data.readShort(); + }, + render: function(glyphIds) { + var out = Object(_utils__WEBPACK_IMPORTED_MODULE_0__["BinaryStream"])(); + out.writeLong(this.version); + out.writeShort(glyphIds.length); + out.writeShort(this.maxPoints); + out.writeShort(this.maxContours); + out.writeShort(this.maxComponentPoints); + out.writeShort(this.maxComponentContours); + out.writeShort(this.maxZones); + out.writeShort(this.maxTwilightPoints); + out.writeShort(this.maxStorage); + out.writeShort(this.maxFunctionDefs); + out.writeShort(this.maxInstructionDefs); + out.writeShort(this.maxStackElements); + out.writeShort(this.maxSizeOfInstructions); + out.writeShort(this.maxComponentElements); + out.writeShort(this.maxComponentDepth); + return out.get(); + } +}); + +var HmtxTable = deftable({ + parse: function(data) { + data.offset(this.offset); + var dir = this.file, hhea = dir.hhea; + this.metrics = data.times(hhea.numOfLongHorMetrics, function(){ + return { + advance: data.readShort(), + lsb: data.readShort_() + }; + }); + var lsbCount = dir.maxp.numGlyphs - dir.hhea.numOfLongHorMetrics; + this.leftSideBearings = data.times(lsbCount, data.readShort_); + }, + forGlyph: function(id) { + var metrics = this.metrics; + var n = metrics.length; + if (id < n) { + return metrics[id]; + } + return { + advance: metrics[n - 1].advance, + lsb: this.leftSideBearings[id - n] + }; + }, + render: function(glyphIds) { + var this$1 = this; + + var out = Object(_utils__WEBPACK_IMPORTED_MODULE_0__["BinaryStream"])(); + for (var i = 0; i < glyphIds.length; ++i) { + var m = this$1.forGlyph(glyphIds[i]); + out.writeShort(m.advance); + out.writeShort_(m.lsb); + } + return out.get(); + } +}); + +var GlyfTable = (function(){ + + function SimpleGlyph(raw) { + this.raw = raw; + } + SimpleGlyph.prototype = { + compound: false, + render: function() { + return this.raw.get(); + } + }; + + var ARG_1_AND_2_ARE_WORDS = 0x0001; + var WE_HAVE_A_SCALE = 0x0008; + var MORE_COMPONENTS = 0x0020; + var WE_HAVE_AN_X_AND_Y_SCALE = 0x0040; + var WE_HAVE_A_TWO_BY_TWO = 0x0080; + //var WE_HAVE_INSTRUCTIONS = 0x0100; + + function CompoundGlyph(data) { + this.raw = data; + var ids = this.glyphIds = []; + var offsets = this.idOffsets = []; + while (true) { // eslint-disable-line no-constant-condition + var flags = data.readShort(); + offsets.push(data.offset()); + ids.push(data.readShort()); + + if (!(flags & MORE_COMPONENTS)) { + break; + } + + data.skip(flags & ARG_1_AND_2_ARE_WORDS ? 4 : 2); + + if (flags & WE_HAVE_A_TWO_BY_TWO) { + data.skip(8); + } else if (flags & WE_HAVE_AN_X_AND_Y_SCALE) { + data.skip(4); + } else if (flags & WE_HAVE_A_SCALE) { + data.skip(2); + } + } + } + + CompoundGlyph.prototype = { + compound: true, + render: function(old2new) { + var this$1 = this; + + var out = Object(_utils__WEBPACK_IMPORTED_MODULE_0__["BinaryStream"])(this.raw.get()); + for (var i = 0; i < this.glyphIds.length; ++i) { + var id = this$1.glyphIds[i]; + out.offset(this$1.idOffsets[i]); + out.writeShort(old2new[id]); + } + return out.get(); + } + }; + + return deftable({ + parse: function() { + this.cache = {}; + }, + glyphFor: function(id) { + var cache = this.cache; + if (hasOwnProperty(cache, id)) { + return cache[id]; + } + + var loca = this.file.loca; + var length = loca.lengthOf(id); + + if (length === 0) { + return (cache[id] = null); + } + + var data = this.rawData; + var offset = this.offset + loca.offsetOf(id); + var raw = Object(_utils__WEBPACK_IMPORTED_MODULE_0__["BinaryStream"])(data.slice(offset, length)); + + var numberOfContours = raw.readShort_(); + var xMin = raw.readShort_(); + var yMin = raw.readShort_(); + var xMax = raw.readShort_(); + var yMax = raw.readShort_(); + + var glyph = cache[id] = numberOfContours == -1 ? new CompoundGlyph(raw) : new SimpleGlyph(raw); + + glyph.numberOfContours = numberOfContours; + glyph.xMin = xMin; + glyph.yMin = yMin; + glyph.xMax = xMax; + glyph.yMax = yMax; + + return glyph; + }, + render: function(glyphs, oldIds, old2new) { + var out = Object(_utils__WEBPACK_IMPORTED_MODULE_0__["BinaryStream"])(), offsets = []; + for (var i = 0; i < oldIds.length; ++i) { + var id = oldIds[i]; + var glyph = glyphs[id]; + offsets.push(out.offset()); + if (glyph) { + out.write(glyph.render(old2new)); + } + } + offsets.push(out.offset()); + return { + table: out.get(), + offsets: offsets + }; + } + }); + +}()); + +var NameTable = (function(){ + + function NameEntry(text, entry) { + this.text = text; + this.length = text.length; + this.platformID = entry.platformID; + this.platformSpecificID = entry.platformSpecificID; + this.languageID = entry.languageID; + this.nameID = entry.nameID; + } + + return deftable({ + parse: function(data) { + data.offset(this.offset); + data.readShort(); // format + var count = data.readShort(); + var stringOffset = this.offset + data.readShort(); + var nameRecords = data.times(count, function(){ + return { + platformID : data.readShort(), + platformSpecificID : data.readShort(), + languageID : data.readShort(), + nameID : data.readShort(), + length : data.readShort(), + offset : data.readShort() + stringOffset + }; + }); + var strings = this.strings = {}; + for (var i = 0; i < nameRecords.length; ++i) { + var rec = nameRecords[i]; + data.offset(rec.offset); + var text = data.readString(rec.length); + if (!strings[rec.nameID]) { + strings[rec.nameID] = []; + } + strings[rec.nameID].push(new NameEntry(text, rec)); + } + this.postscriptEntry = strings[6][0]; + this.postscriptName = this.postscriptEntry.text.replace(/[^\x20-\x7F]/g, ""); + }, + + render: function(psName) { + var this$1 = this; + + var strings = this.strings; + var strCount = 0; + for (var i in strings) { + if (hasOwnProperty(strings, i)) { + strCount += strings[i].length; + } + } + var out = Object(_utils__WEBPACK_IMPORTED_MODULE_0__["BinaryStream"])(); + var strTable = Object(_utils__WEBPACK_IMPORTED_MODULE_0__["BinaryStream"])(); + + out.writeShort(0); // format + out.writeShort(strCount); + out.writeShort(6 + 12 * strCount); // stringOffset + + for (i in strings) { + if (hasOwnProperty(strings, i)) { + var list = i == 6 ? [ + new NameEntry(psName, this$1.postscriptEntry) + ] : strings[i]; + for (var j = 0; j < list.length; ++j) { + var str = list[j]; + out.writeShort(str.platformID); + out.writeShort(str.platformSpecificID); + out.writeShort(str.languageID); + out.writeShort(str.nameID); + out.writeShort(str.length); + out.writeShort(strTable.offset()); + + strTable.writeString(str.text); + } + } + } + + out.write(strTable.get()); + + return out.get(); + } + }); + +})(); + +var PostTable = (function(){ + + var POSTSCRIPT_GLYPHS = ".notdef .null nonmarkingreturn space exclam quotedbl numbersign dollar percent ampersand quotesingle parenleft parenright asterisk plus comma hyphen period slash zero one two three four five six seven eight nine colon semicolon less equal greater question at A B C D E F G H I J K L M N O P Q R S T U V W X Y Z bracketleft backslash bracketright asciicircum underscore grave a b c d e f g h i j k l m n o p q r s t u v w x y z braceleft bar braceright asciitilde Adieresis Aring Ccedilla Eacute Ntilde Odieresis Udieresis aacute agrave acircumflex adieresis atilde aring ccedilla eacute egrave ecircumflex edieresis iacute igrave icircumflex idieresis ntilde oacute ograve ocircumflex odieresis otilde uacute ugrave ucircumflex udieresis dagger degree cent sterling section bullet paragraph germandbls registered copyright trademark acute dieresis notequal AE Oslash infinity plusminus lessequal greaterequal yen mu partialdiff summation product pi integral ordfeminine ordmasculine Omega ae oslash questiondown exclamdown logicalnot radical florin approxequal Delta guillemotleft guillemotright ellipsis nonbreakingspace Agrave Atilde Otilde OE oe endash emdash quotedblleft quotedblright quoteleft quoteright divide lozenge ydieresis Ydieresis fraction currency guilsinglleft guilsinglright fi fl daggerdbl periodcentered quotesinglbase quotedblbase perthousand Acircumflex Ecircumflex Aacute Edieresis Egrave Iacute Icircumflex Idieresis Igrave Oacute Ocircumflex apple Ograve Uacute Ucircumflex Ugrave dotlessi circumflex tilde macron breve dotaccent ring cedilla hungarumlaut ogonek caron Lslash lslash Scaron scaron Zcaron zcaron brokenbar Eth eth Yacute yacute Thorn thorn minus multiply onesuperior twosuperior threesuperior onehalf onequarter threequarters franc Gbreve gbreve Idotaccent Scedilla scedilla Cacute cacute Ccaron ccaron dcroat".split(/\s+/g); + + return deftable({ + parse: function(data) { + var this$1 = this; + + data.offset(this.offset); + + this.format = data.readLong(); + this.italicAngle = data.readFixed_(); + this.underlinePosition = data.readShort_(); + this.underlineThickness = data.readShort_(); + this.isFixedPitch = data.readLong(); + this.minMemType42 = data.readLong(); + this.maxMemType42 = data.readLong(); + this.minMemType1 = data.readLong(); + this.maxMemType1 = data.readLong(); + + var numberOfGlyphs; + + switch (this.format) { + case 0x00010000: + case 0x00030000: + break; + + case 0x00020000: + numberOfGlyphs = data.readShort(); + this.glyphNameIndex = data.times(numberOfGlyphs, data.readShort); + this.names = []; + var limit = this.offset + this.length; + while (data.offset() < limit) { + this$1.names.push(data.readString(data.readByte())); + } + break; + + case 0x00025000: + numberOfGlyphs = data.readShort(); + this.offsets = data.read(numberOfGlyphs); + break; + + case 0x00040000: + this.map = data.times(this.file.maxp.numGlyphs, data.readShort); + break; + } + }, + glyphFor: function(code) { + switch (this.format) { + case 0x00010000: + return POSTSCRIPT_GLYPHS[code] || ".notdef"; + + case 0x00020000: + var index = this.glyphNameIndex[code]; + if (index < POSTSCRIPT_GLYPHS.length) { + return POSTSCRIPT_GLYPHS[index]; + } + return this.names[index - POSTSCRIPT_GLYPHS.length] || ".notdef"; + + case 0x00025000: + + case 0x00030000: + return ".notdef"; + + case 0x00040000: + return this.map[code] || 0xFFFF; + } + }, + render: function(mapping) { + var this$1 = this; + + if (this.format == 0x00030000) { + return this.raw(); + } + + // keep original header, but set format to 2.0 + var out = Object(_utils__WEBPACK_IMPORTED_MODULE_0__["BinaryStream"])(this.rawData.slice(this.offset, 32)); + out.writeLong(0x00020000); + out.offset(32); + + var indexes = []; + var strings = []; + + for (var i = 0; i < mapping.length; ++i) { + var id = mapping[i]; + var post = this$1.glyphFor(id); + var index = POSTSCRIPT_GLYPHS.indexOf(post); + if (index >= 0) { + indexes.push(index); + } else { + indexes.push(POSTSCRIPT_GLYPHS.length + strings.length); + strings.push(post); + } + } + + out.writeShort(mapping.length); + + for (i = 0; i < indexes.length; ++i) { + out.writeShort(indexes[i]); + } + + for (i = 0; i < strings.length; ++i) { + out.writeByte(strings[i].length); + out.writeString(strings[i]); + } + + return out.get(); + } + }); +})(); + +var CmapTable = (function(){ + + function CmapEntry(data, offset, codeMap) { + var self = this; + self.platformID = data.readShort(); + self.platformSpecificID = data.readShort(); + self.offset = offset + data.readLong(); + + data.saveExcursion(function(){ + var code; + data.offset(self.offset); + self.format = data.readShort(); + + switch (self.format) { + case 0: + self.length = data.readShort(); + self.language = data.readShort(); + for (var i = 0; i < 256; ++i) { + codeMap[i] = data.readByte(); + } + break; + + case 4: + self.length = data.readShort(); + self.language = data.readShort(); + var segCount = data.readShort() / 2; + + data.skip(6); // searchRange, entrySelector, rangeShift + var endCode = data.times(segCount, data.readShort); + data.skip(2); // reserved pad + var startCode = data.times(segCount, data.readShort); + var idDelta = data.times(segCount, data.readShort_); + var idRangeOffset = data.times(segCount, data.readShort); + + var count = (self.length + self.offset - data.offset()) / 2; + var glyphIds = data.times(count, data.readShort); + + for (i = 0; i < segCount; ++i) { + var start = startCode[i], end = endCode[i]; + for (code = start; code <= end; ++code) { + var glyphId; + if (idRangeOffset[i] === 0) { + glyphId = code + idDelta[i]; + } else { + /// + // When non-zero, idRangeOffset contains for each segment the byte offset of the Glyph ID + // into the glyphIds table, from the *current* `i` cell of idRangeOffset. In other words, + // this offset spans from the first into the second array. This works, because the arrays + // are consecutive in the TTF file: + // + // [ ...idRangeOffset... ][ ...glyphIds... ] + // ...... 48 ...... .... ID .... + // ^----- 48 bytes -----^ + // + // (but I can't stop wondering why is it not just a plain index, possibly incremented by 1 + // so that we can have that special `zero` value.) + // + // The elements of idRangeOffset are even numbers, because both arrays contain 16-bit words, + // yet the offset is in bytes. That is why we divide it by 2. Then we subtract the + // remaining segments (segCount-i), and add the code-start offset, to which we need to add + // the corresponding delta to get the actual glyph ID. + /// + var index = idRangeOffset[i] / 2 - (segCount - i) + (code - start); + glyphId = glyphIds[index] || 0; + if (glyphId !== 0) { + glyphId += idDelta[i]; + } + } + codeMap[code] = glyphId & 0xFFFF; + } + } + break; + + case 6: + self.length = data.readShort(); + self.language = data.readShort(); + code = data.readShort(); + var length = data.readShort(); + while (length-- > 0) { + codeMap[code++] = data.readShort(); + } + break; + + case 12: + data.readShort(); // reserved + self.length = data.readLong(); + self.language = data.readLong(); + var ngroups = data.readLong(); + while (ngroups-- > 0) { + code = data.readLong(); + var endCharCode = data.readLong(); + var glyphCode = data.readLong(); + while (code <= endCharCode) { + codeMap[code++] = glyphCode++; + } + } + break; + + default: + if (window.console) { + window.console.error("Unhandled CMAP format: " + self.format); + } + } + }); + } + + function renderCharmap(ncid2ogid, ogid2ngid) { + var codes = sortedKeys(ncid2ogid); + var startCodes = []; + var endCodes = []; + var last = null; + var diff = null; + + function new_gid(charcode) { + return ogid2ngid[ncid2ogid[charcode]]; + } + + for (var i = 0; i < codes.length; ++i) { + var code = codes[i]; + var gid = new_gid(code); + var delta = gid - code; + if (last == null || delta !== diff) { + if (last) { + endCodes.push(last); + } + startCodes.push(code); + diff = delta; + } + last = code; + } + + if (last) { + endCodes.push(last); + } + endCodes.push(0xFFFF); + startCodes.push(0xFFFF); + + var segCount = startCodes.length; + var segCountX2 = segCount * 2; + var searchRange = 2 * Math.pow(2, Math.floor(Math.log(segCount) / Math.LN2)); + var entrySelector = Math.log(searchRange / 2) / Math.LN2; + var rangeShift = segCountX2 - searchRange; + + var deltas = []; + var rangeOffsets = []; + var glyphIds = []; + + for (i = 0; i < segCount; ++i) { + var startCode = startCodes[i]; + var endCode = endCodes[i]; + if (startCode == 0xFFFF) { + deltas.push(0); + rangeOffsets.push(0); + break; + } + var startGlyph = new_gid(startCode); + if (startCode - startGlyph >= 0x8000) { + deltas.push(0); + rangeOffsets.push(2 * (glyphIds.length + segCount - i)); + for (var j = startCode; j <= endCode; ++j) { + glyphIds.push(new_gid(j)); + } + } else { + deltas.push(startGlyph - startCode); + rangeOffsets.push(0); + } + } + + var out = Object(_utils__WEBPACK_IMPORTED_MODULE_0__["BinaryStream"])(); + + out.writeShort(3); // platformID + out.writeShort(1); // platformSpecificID + out.writeLong(12); // offset + out.writeShort(4); // format + out.writeShort(16 + segCount * 8 + glyphIds.length * 2); // length + out.writeShort(0); // language + out.writeShort(segCountX2); + out.writeShort(searchRange); + out.writeShort(entrySelector); + out.writeShort(rangeShift); + + endCodes.forEach(out.writeShort); + out.writeShort(0); // reserved pad + startCodes.forEach(out.writeShort); + deltas.forEach(out.writeShort_); + rangeOffsets.forEach(out.writeShort); + glyphIds.forEach(out.writeShort); + + return out.get(); + } + + return deftable({ + parse: function(data) { + var self = this; + var offset = self.offset; + data.offset(offset); + self.codeMap = {}; + self.version = data.readShort(); + var tableCount = data.readShort(); + self.tables = data.times(tableCount, function(){ + return new CmapEntry(data, offset, self.codeMap); + }); + }, + render: function(ncid2ogid, ogid2ngid) { + var out = Object(_utils__WEBPACK_IMPORTED_MODULE_0__["BinaryStream"])(); + out.writeShort(0); // version + out.writeShort(1); // tableCount + out.write(renderCharmap(ncid2ogid, ogid2ngid)); + return out.get(); + } + }); + +})(); + +var OS2Table = deftable({ + parse: function(data) { + data.offset(this.offset); + this.version = data.readShort(); + this.averageCharWidth = data.readShort_(); + this.weightClass = data.readShort(); + this.widthClass = data.readShort(); + this.type = data.readShort(); + this.ySubscriptXSize = data.readShort_(); + this.ySubscriptYSize = data.readShort_(); + this.ySubscriptXOffset = data.readShort_(); + this.ySubscriptYOffset = data.readShort_(); + this.ySuperscriptXSize = data.readShort_(); + this.ySuperscriptYSize = data.readShort_(); + this.ySuperscriptXOffset = data.readShort_(); + this.ySuperscriptYOffset = data.readShort_(); + this.yStrikeoutSize = data.readShort_(); + this.yStrikeoutPosition = data.readShort_(); + this.familyClass = data.readShort_(); + + this.panose = data.times(10, data.readByte); + this.charRange = data.times(4, data.readLong); + + this.vendorID = data.readString(4); + this.selection = data.readShort(); + this.firstCharIndex = data.readShort(); + this.lastCharIndex = data.readShort(); + + if (this.version > 0) { + this.ascent = data.readShort_(); + this.descent = data.readShort_(); + this.lineGap = data.readShort_(); + this.winAscent = data.readShort(); + this.winDescent = data.readShort(); + this.codePageRange = data.times(2, data.readLong); + + if (this.version > 1) { + this.xHeight = data.readShort(); + this.capHeight = data.readShort(); + this.defaultChar = data.readShort(); + this.breakChar = data.readShort(); + this.maxContext = data.readShort(); + } + } + }, + render: function() { + return this.raw(); + } +}); + +var subsetTag = 100000; + +function nextSubsetTag() { + var ret = "", n = String(subsetTag); + for (var i = 0; i < n.length; ++i) { + ret += String.fromCharCode(n.charCodeAt(i) - 48 + 65); + } + ++subsetTag; + return ret; +} + +function Subfont(font) { + this.font = font; + this.subset = {}; + this.unicodes = {}; + this.ogid2ngid = { 0: 0 }; + this.ngid2ogid = { 0: 0 }; + this.ncid2ogid = {}; + this.next = this.firstChar = 1; + this.nextGid = 1; + this.psName = nextSubsetTag() + "+" + this.font.psName; +} + +Subfont.prototype = { + use: function(ch) { + var self = this; + if (typeof ch == "string") { + return Object(_utils__WEBPACK_IMPORTED_MODULE_0__["ucs2decode"])(ch).reduce(function(ret, code){ + return ret + String.fromCharCode(self.use(code)); + }, ""); + } + var code = self.unicodes[ch]; + if (!code) { + code = self.next++; + self.subset[code] = ch; + self.unicodes[ch] = code; + + // generate new GID (glyph ID) and maintain newGID -> + // oldGID and back mappings + var old_gid = self.font.cmap.codeMap[ch]; + if (old_gid) { + self.ncid2ogid[code] = old_gid; + if (self.ogid2ngid[old_gid] == null) { + var new_gid = self.nextGid++; + self.ogid2ngid[old_gid] = new_gid; + self.ngid2ogid[new_gid] = old_gid; + } + } + } + return code; + }, + encodeText: function(text) { + return this.use(text); + }, + glyphIds: function() { + return sortedKeys(this.ogid2ngid); + }, + glyphsFor: function(glyphIds, result) { + var this$1 = this; + + if (!result) { + result = {}; + } + for (var i = 0; i < glyphIds.length; ++i) { + var id = glyphIds[i]; + if (!result[id]) { + var glyph = result[id] = this$1.font.glyf.glyphFor(id); + if (glyph && glyph.compound) { + this$1.glyphsFor(glyph.glyphIds, result); + } + } + } + return result; + }, + render: function() { + var this$1 = this; + + var glyphs = this.glyphsFor(this.glyphIds()); + + // add missing sub-glyphs + for (var old_gid in glyphs) { + if (hasOwnProperty(glyphs, old_gid)) { + old_gid = parseInt(old_gid, 10); + if (this$1.ogid2ngid[old_gid] == null) { + var new_gid = this$1.nextGid++; + this$1.ogid2ngid[old_gid] = new_gid; + this$1.ngid2ogid[new_gid] = old_gid; + } + } + } + + // must obtain old_gid_ids in an order matching sorted + // new_gid_ids + var new_gid_ids = sortedKeys(this.ngid2ogid); + var old_gid_ids = new_gid_ids.map(function(id){ + return this.ngid2ogid[id]; + }, this); + + var font = this.font; + var glyf = font.glyf.render(glyphs, old_gid_ids, this.ogid2ngid); + var loca = font.loca.render(glyf.offsets); + + this.lastChar = this.next - 1; + + var tables = { + "cmap" : CmapTable.render(this.ncid2ogid, this.ogid2ngid), + "glyf" : glyf.table, + "loca" : loca.table, + "hmtx" : font.hmtx.render(old_gid_ids), + "hhea" : font.hhea.render(old_gid_ids), + "maxp" : font.maxp.render(old_gid_ids), + "post" : font.post.render(old_gid_ids), + "name" : font.name.render(this.psName), + "head" : font.head.render(loca.format), + "OS/2" : font.os2.render() + }; + + return this.font.directory.render(tables); + }, + cidToGidMap: function() { + var this$1 = this; + + var out = Object(_utils__WEBPACK_IMPORTED_MODULE_0__["BinaryStream"])(), len = 0; + for (var cid = this.firstChar; cid < this.next; ++cid) { + while (len < cid) { + out.writeShort(0); + len++; + } + var old_gid = this$1.ncid2ogid[cid]; + if (old_gid) { + var new_gid = this$1.ogid2ngid[old_gid]; + out.writeShort(new_gid); + } else { + out.writeShort(0); + } + len++; + } + return out.get(); + } +}; + +function TTFFont(rawData, name) { + var self = this; + var data = self.contents = Object(_utils__WEBPACK_IMPORTED_MODULE_0__["BinaryStream"])(rawData); + if (data.readString(4) == "ttcf") { + var offset; + var parse = function() { + data.offset(offset); + self.parse(); + }; + if (!name) { + throw new Error("Must specify a name for TTC files"); + } + data.readLong(); // version + var numFonts = data.readLong(); + for (var i = 0; i < numFonts; ++i) { + offset = data.readLong(); + data.saveExcursion(parse); + if (self.psName == name) { + return; + } + } + throw new Error("Font " + name + " not found in collection"); + } else { + data.offset(0); + self.parse(); + } +} + +TTFFont.prototype = { + parse: function() { + var dir = this.directory = new Directory(this.contents); + + this.head = dir.readTable("head", HeadTable); + this.loca = dir.readTable("loca", LocaTable); + this.hhea = dir.readTable("hhea", HheaTable); + this.maxp = dir.readTable("maxp", MaxpTable); + this.hmtx = dir.readTable("hmtx", HmtxTable); + this.glyf = dir.readTable("glyf", GlyfTable); + this.name = dir.readTable("name", NameTable); + this.post = dir.readTable("post", PostTable); + this.cmap = dir.readTable("cmap", CmapTable); + this.os2 = dir.readTable("OS/2", OS2Table); + + this.psName = this.name.postscriptName; + this.ascent = this.os2.ascent || this.hhea.ascent; + this.descent = this.os2.descent || this.hhea.descent; + this.lineGap = this.os2.lineGap || this.hhea.lineGap; + this.scale = 1000 / this.head.unitsPerEm; + }, + widthOfGlyph: function(glyph) { + return this.hmtx.forGlyph(glyph).advance * this.scale; + }, + makeSubset: function() { + return new Subfont(this); + } +}; + + + + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/pdf/utils.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "HAS_TYPED_ARRAYS", function() { return HAS_TYPED_ARRAYS; }); + __webpack_require__.d(__webpack_exports__, "BASE64", function() { return BASE64; }); + __webpack_require__.d(__webpack_exports__, "BinaryStream", function() { return BinaryStream; }); + __webpack_require__.d(__webpack_exports__, "ucs2decode", function() { return ucs2decode; }); + __webpack_require__.d(__webpack_exports__, "ucs2encode", function() { return ucs2encode; }); + __webpack_require__.d(__webpack_exports__, "base64ToUint8Array", function() { return base64ToUint8Array; }); + var _common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/common.js"); + + + + + + + +// XXX: remove this junk (assume `true`) when we no longer have to support IE < 10 +// IE 9 (at least compatibility) reports having Uint8Array but the request response does not contain ArrayBuffer which results in missing table head error +var HAS_TYPED_ARRAYS = typeof Uint8Array !== 'undefined' && _common__WEBPACK_IMPORTED_MODULE_0__["support"].browser && (!_common__WEBPACK_IMPORTED_MODULE_0__["support"].browser.msie || _common__WEBPACK_IMPORTED_MODULE_0__["support"].browser.version > 9); + +var BASE64 = (function(){ + var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; + return { + decode: function(str) { + var input = str.replace(/[^A-Za-z0-9\+\/\=]/g, ""), i = 0, n = input.length, output = []; + + while (i < n) { + var enc1 = keyStr.indexOf(input.charAt(i++)); + var enc2 = keyStr.indexOf(input.charAt(i++)); + var enc3 = keyStr.indexOf(input.charAt(i++)); + var enc4 = keyStr.indexOf(input.charAt(i++)); + + var chr1 = (enc1 << 2) | (enc2 >>> 4); + var chr2 = ((enc2 & 15) << 4) | (enc3 >>> 2); + var chr3 = ((enc3 & 3) << 6) | enc4; + + output.push(chr1); + if (enc3 != 64) { + output.push(chr2); + } + if (enc4 != 64) { + output.push(chr3); + } + } + + return output; + }, + encode: function(bytes) { + var i = 0, n = bytes.length; + var output = ""; + + while (i < n) { + var chr1 = bytes[i++]; + var chr2 = bytes[i++]; + var chr3 = bytes[i++]; + + var enc1 = chr1 >>> 2; + var enc2 = ((chr1 & 3) << 4) | (chr2 >>> 4); + var enc3 = ((chr2 & 15) << 2) | (chr3 >>> 6); + var enc4 = chr3 & 63; + + if (i - n == 2) { + enc3 = enc4 = 64; + } else if (i - n == 1) { + enc4 = 64; + } + + output += keyStr.charAt(enc1) + keyStr.charAt(enc2) + keyStr.charAt(enc3) + keyStr.charAt(enc4); + } + return output; + } + }; +}()); + +function BinaryStream(data) { + var offset = 0, length = 0; + if (data == null) { + data = HAS_TYPED_ARRAYS ? new Uint8Array(256) : []; + } else { + length = data.length; + } + + var ensure = HAS_TYPED_ARRAYS ? function(len) { + if (len >= data.length) { + var tmp = new Uint8Array(Math.max(len + 256, data.length * 2)); + tmp.set(data, 0); + data = tmp; + } + } : function() {}; + + var get = HAS_TYPED_ARRAYS ? function() { + return new Uint8Array(data.buffer, 0, length); + } : function() { + return data; + }; + + var write = HAS_TYPED_ARRAYS ? function(bytes) { + if (typeof bytes == "string") { + return writeString(bytes); + } + var len = bytes.length; + ensure(offset + len); + data.set(bytes, offset); + offset += len; + if (offset > length) { + length = offset; + } + } : function(bytes) { + if (typeof bytes == "string") { + return writeString(bytes); + } + for (var i = 0; i < bytes.length; ++i) { + writeByte(bytes[i]); + } + }; + + var slice = HAS_TYPED_ARRAYS ? function(start, length) { + if (data.buffer.slice) { + return new Uint8Array(data.buffer.slice(start, start + length)); + } else { + // IE10 + var x = new Uint8Array(length); + x.set(new Uint8Array(data.buffer, start, length)); + return x; + } + } : function(start, length) { + return data.slice(start, start + length); + }; + + function eof() { + return offset >= length; + } + function readByte() { + return offset < length ? data[offset++] : 0; + } + function writeByte(b) { + ensure(offset); + data[offset++] = b & 0xFF; + if (offset > length) { + length = offset; + } + } + function readShort() { + return (readByte() << 8) | readByte(); + } + function writeShort(w) { + writeByte(w >> 8); + writeByte(w); + } + function readShort_() { + var w = readShort(); + return w >= 0x8000 ? w - 0x10000 : w; + } + function writeShort_(w) { + writeShort(w < 0 ? w + 0x10000 : w); + } + function readLong() { + return (readShort() * 0x10000) + readShort(); + } + function writeLong(w) { + writeShort((w >>> 16) & 0xFFFF); + writeShort(w & 0xFFFF); + } + function readLong_() { + var w = readLong(); + return w >= 0x80000000 ? w - 0x100000000 : w; + } + function writeLong_(w) { + writeLong(w < 0 ? w + 0x100000000 : w); + } + function readFixed() { + return readLong() / 0x10000; + } + function writeFixed(f) { + writeLong(Math.round(f * 0x10000)); + } + function readFixed_() { + return readLong_() / 0x10000; + } + function writeFixed_(f) { + writeLong_(Math.round(f * 0x10000)); + } + function read(len) { + return times(len, readByte); + } + function readString(len) { + return String.fromCharCode.apply(String, read(len)); + } + function writeString(str) { + for (var i = 0; i < str.length; ++i) { + writeByte(str.charCodeAt(i)); + } + } + function times(n, reader) { + for (var ret = new Array(n), i = 0; i < n; ++i) { + ret[i] = reader(); + } + return ret; + } + + var stream = { + eof : eof, + readByte : readByte, + writeByte : writeByte, + readShort : readShort, + writeShort : writeShort, + readLong : readLong, + writeLong : writeLong, + readFixed : readFixed, + writeFixed : writeFixed, + + // signed numbers. + readShort_ : readShort_, + writeShort_ : writeShort_, + readLong_ : readLong_, + writeLong_ : writeLong_, + readFixed_ : readFixed_, + writeFixed_ : writeFixed_, + + read : read, + write : write, + readString : readString, + writeString : writeString, + + times : times, + get : get, + slice : slice, + + offset: function(pos) { + if (pos != null) { + offset = pos; + return stream; + } + return offset; + }, + + skip: function(nbytes) { + offset += nbytes; + }, + + toString: function() { + throw new Error("FIX CALLER. BinaryStream is no longer convertible to string!"); + }, + + length: function() { return length; }, + + saveExcursion: function(f) { + var pos = offset; + try { + return f(); + } finally { + offset = pos; + } + }, + + writeBase64: function(base64) { + if (window.atob) { + writeString(window.atob(base64)); + } else { + write(BASE64.decode(base64)); + } + }, + base64: function() { + return BASE64.encode(get()); + } + }; + + return stream; +} + +function ucs2decode(string) { + var output = [], + counter = 0, + length = string.length, + value, + extra; + while (counter < length) { + value = string.charCodeAt(counter++); + if (value >= 0xD800 && value <= 0xDBFF && counter < length) { + // high surrogate, and there is a next character + extra = string.charCodeAt(counter++); + if ((extra & 0xFC00) == 0xDC00) { // low surrogate + output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000); + } else { + // unmatched surrogate; only append this code unit, in case the next + // code unit is the high surrogate of a surrogate pair + output.push(value); + counter--; + } + } else { + output.push(value); + } + } + return output; +} + +function ucs2encode(array) { + return array.map(function(value){ + var output = ""; + if (value > 0xFFFF) { + value -= 0x10000; + output += String.fromCharCode(value >>> 10 & 0x3FF | 0xD800); + value = 0xDC00 | value & 0x3FF; + } + output += String.fromCharCode(value); + return output; + }).join(""); +} + +function atobUint8Array(base64) { + var data = window.atob(base64); + var result = new Uint8Array(data.length); + + for (var idx = 0; idx < data.length; idx++) { + result[idx] = data.charCodeAt(idx); + } + + return result; +} + +function createUint8Array(data) { + var result = new Uint8Array(data.length); + + for (var idx = 0; idx < data.length; idx++) { + result[idx] = data[idx]; + } + + return result; +} + +function base64ToUint8Array(base64) { + if (window.atob) { + return atobUint8Array(base64); + } + + return createUint8Array(BASE64.decode(base64)); +} + + + + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/search/quad-node.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _quad_root__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/search/quad-root.js"); + var _geometry__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry.js"); + var _util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/util.js"); + + + + +var QuadNode = (function (QuadRoot) { + function QuadNode(rect) { + QuadRoot.call(this); + this.children = []; + this.rect = rect; + } + + if ( QuadRoot ) QuadNode.__proto__ = QuadRoot; + QuadNode.prototype = Object.create( QuadRoot && QuadRoot.prototype ); + QuadNode.prototype.constructor = QuadNode; + + QuadNode.prototype.inBounds = function inBounds (rect) { + var nodeRect = this.rect; + var nodeBottomRight = nodeRect.bottomRight(); + var bottomRight = rect.bottomRight(); + var inBounds = nodeRect.origin.x <= rect.origin.x && nodeRect.origin.y <= rect.origin.y && bottomRight.x <= nodeBottomRight.x && + bottomRight.y <= nodeBottomRight.y; + return inBounds; + }; + + QuadNode.prototype.pointShapes = function pointShapes (point) { + var children = this.children; + var length = children.length; + var result = QuadRoot.prototype.pointShapes.call(this, point); + for (var idx = 0; idx < length; idx++) { + Object(_util__WEBPACK_IMPORTED_MODULE_2__["append"])(result, children[idx].pointShapes(point)); + } + return result; + }; + + QuadNode.prototype.insert = function insert (shape, bbox) { + var children = this.children; + var inserted = false; + + if (this.inBounds(bbox)) { + if (this.shapes.length < 4) { + this._add(shape, bbox); + } else { + if (!children.length) { + this._initChildren(); + } + + for (var idx = 0; idx < children.length; idx++) { + if (children[idx].insert(shape, bbox)) { + inserted = true; + break; + } + } + + if (!inserted) { + this._add(shape, bbox); + } + } + inserted = true; + } + + return inserted; + }; + + QuadNode.prototype._initChildren = function _initChildren () { + var ref = this; + var rect = ref.rect; + var children = ref.children; + var center = rect.center(); + var halfWidth = rect.width() / 2; + var halfHeight = rect.height() / 2; + + children.push( + new QuadNode(new _geometry__WEBPACK_IMPORTED_MODULE_1__["Rect"]([ rect.origin.x, rect.origin.y ], [ halfWidth, halfHeight ])), + new QuadNode(new _geometry__WEBPACK_IMPORTED_MODULE_1__["Rect"]([ center.x, rect.origin.y ], [ halfWidth, halfHeight ])), + new QuadNode(new _geometry__WEBPACK_IMPORTED_MODULE_1__["Rect"]([ rect.origin.x, center.y ], [ halfWidth, halfHeight ])), + new QuadNode(new _geometry__WEBPACK_IMPORTED_MODULE_1__["Rect"]([ center.x, center.y ], [ halfWidth, halfHeight ])) + ); + }; + + return QuadNode; +}(_quad_root__WEBPACK_IMPORTED_MODULE_0__["default"])); + + __webpack_exports__["default"] = (QuadNode); + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/search/quad-root.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/common.js"); + + +var QuadRoot = (function (Class) { + function QuadRoot() { + Class.call(this); + + this.shapes = []; + } + + if ( Class ) QuadRoot.__proto__ = Class; + QuadRoot.prototype = Object.create( Class && Class.prototype ); + QuadRoot.prototype.constructor = QuadRoot; + + QuadRoot.prototype._add = function _add (shape, bbox) { + this.shapes.push({ + bbox: bbox, + shape: shape + }); + shape._quadNode = this; + }; + + QuadRoot.prototype.pointShapes = function pointShapes (point) { + var shapes = this.shapes; + var length = shapes.length; + var result = []; + for (var idx = 0; idx < length; idx++) { + if (shapes[idx].bbox.containsPoint(point)) { + result.push(shapes[idx].shape); + } + } + return result; + }; + + QuadRoot.prototype.insert = function insert (shape, bbox) { + this._add(shape, bbox); + }; + + QuadRoot.prototype.remove = function remove (shape) { + var shapes = this.shapes; + var length = shapes.length; + + for (var idx = 0; idx < length; idx++) { + if (shapes[idx].shape === shape) { + shapes.splice(idx, 1); + break; + } + } + }; + + return QuadRoot; +}(_common__WEBPACK_IMPORTED_MODULE_0__["Class"])); + + __webpack_exports__["default"] = (QuadRoot); + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/search/shapes-quad-tree.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _quad_root__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/search/quad-root.js"); + var _quad_node__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/search/quad-node.js"); + var _geometry__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry.js"); + var _common__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/common.js"); + var _util__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/util.js"); + + + + + + +var ROOT_SIZE = 3000; +var LEVEL_STEP = 10000; +var MAX_LEVEL = 75; + +var ShapesQuadTree = (function (Class) { + function ShapesQuadTree() { + Class.call(this); + + this.initRoots(); + } + + if ( Class ) ShapesQuadTree.__proto__ = Class; + ShapesQuadTree.prototype = Object.create( Class && Class.prototype ); + ShapesQuadTree.prototype.constructor = ShapesQuadTree; + + ShapesQuadTree.prototype.initRoots = function initRoots () { + this.rootMap = {}; + this.root = new _quad_root__WEBPACK_IMPORTED_MODULE_0__["default"](); + this.rootElements = []; + }; + + ShapesQuadTree.prototype.clear = function clear () { + var this$1 = this; + + var rootElements = this.rootElements; + for (var idx = 0; idx < rootElements.length; idx++) { + this$1.remove(rootElements[idx]); + } + this.initRoots(); + }; + + ShapesQuadTree.prototype.pointShape = function pointShape (point) { + var sectorRoot = ( this.rootMap[ Math.floor( point.x / ROOT_SIZE ) ] || {} )[ Math.floor( point.y / ROOT_SIZE ) ]; + var result = this.root.pointShapes(point); + + if (sectorRoot) { + result = result.concat(sectorRoot.pointShapes(point)); + } + + this.assignZindex(result); + + result.sort(zIndexComparer); + for (var idx = 0; idx < result.length; idx++) { + if (result[idx].containsPoint(point)) { + return result[idx]; + } + } + }; + + ShapesQuadTree.prototype.assignZindex = function assignZindex (elements) { + var this$1 = this; + + for (var idx = 0; idx < elements.length; idx++) { + var element = elements[idx]; + var zIndex = 0; + var levelWeight = Math.pow(LEVEL_STEP, MAX_LEVEL); + var parents = []; + + while (element) { + parents.push(element); + element = element.parent; + } + + while (parents.length) { + element = parents.pop(); + zIndex += ((element.parent ? element.parent.children : this$1.rootElements).indexOf(element) + 1) * levelWeight; + levelWeight /= LEVEL_STEP; + } + + elements[idx]._zIndex = zIndex; + } + }; + + ShapesQuadTree.prototype.optionsChange = function optionsChange (e) { + if (e.field === "transform" || e.field === "stroke.width") { + this.bboxChange(e.element); + } + }; + + ShapesQuadTree.prototype.geometryChange = function geometryChange (e) { + this.bboxChange(e.element); + }; + + ShapesQuadTree.prototype.bboxChange = function bboxChange (element) { + var this$1 = this; + + if (element.nodeType === "Group") { + for (var idx = 0; idx < element.children.length; idx++) { + this$1.bboxChange(element.children[idx]); + } + } else { + if (element._quadNode) { + element._quadNode.remove(element); + } + this._insertShape(element); + } + }; + + ShapesQuadTree.prototype.add = function add (elements) { + var elementsArray = Array.isArray(elements) ? elements.slice(0) : [ elements ]; + + Object(_util__WEBPACK_IMPORTED_MODULE_4__["append"])(this.rootElements, elementsArray); + this._insert(elementsArray); + }; + + ShapesQuadTree.prototype.childrenChange = function childrenChange (e) { + var this$1 = this; + + if (e.action === "remove") { + for (var idx = 0; idx < e.items.length; idx++) { + this$1.remove(e.items[idx]); + } + } else { + this._insert(Array.prototype.slice.call(e.items, 0)); + } + }; + + ShapesQuadTree.prototype._insert = function _insert (elements) { + var this$1 = this; + + var element; + + while (elements.length > 0) { + element = elements.pop(); + element.addObserver(this$1); + if (element.nodeType === "Group") { + Object(_util__WEBPACK_IMPORTED_MODULE_4__["append"])(elements, element.children); + } else { + this$1._insertShape(element); + } + } + }; + + ShapesQuadTree.prototype._insertShape = function _insertShape (shape) { + var bbox = shape.bbox(); + if (bbox) { + var sectors = this.getSectors(bbox); + var x = sectors[0][0]; + var y = sectors[1][0]; + + if (this.inRoot(sectors)) { + this.root.insert(shape, bbox); + } else { + var rootMap = this.rootMap; + if (!rootMap[x]) { + rootMap[x] = {}; + } + + if (!rootMap[x][y]) { + rootMap[x][y] = new _quad_node__WEBPACK_IMPORTED_MODULE_1__["default"]( + new _geometry__WEBPACK_IMPORTED_MODULE_2__["Rect"]([ x * ROOT_SIZE, y * ROOT_SIZE ], [ ROOT_SIZE, ROOT_SIZE ]) + ); + } + + rootMap[x][y].insert(shape, bbox); + } + } + }; + + ShapesQuadTree.prototype.remove = function remove (element) { + var this$1 = this; + + element.removeObserver(this); + + if (element.nodeType === "Group") { + var children = element.children; + for (var idx = 0; idx < children.length; idx++) { + this$1.remove(children[idx]); + } + } else if (element._quadNode) { + element._quadNode.remove(element); + delete element._quadNode; + } + }; + + ShapesQuadTree.prototype.inRoot = function inRoot (sectors) { + return sectors[0].length > 1 || sectors[1].length > 1; + }; + + ShapesQuadTree.prototype.getSectors = function getSectors (rect) { + var bottomRight = rect.bottomRight(); + var bottomX = Math.floor(bottomRight.x / ROOT_SIZE); + var bottomY = Math.floor(bottomRight.y / ROOT_SIZE); + var sectors = [ [], [] ]; + for (var x = Math.floor(rect.origin.x / ROOT_SIZE); x <= bottomX; x++) { + sectors[0].push(x); + } + for (var y = Math.floor(rect.origin.y / ROOT_SIZE); y <= bottomY; y++) { + sectors[1].push(y); + } + return sectors; + }; + + return ShapesQuadTree; +}(_common__WEBPACK_IMPORTED_MODULE_3__["Class"])); + +function zIndexComparer(x1, x2) { + if (x1._zIndex < x2._zIndex) { + return 1; + } + if (x1._zIndex > x2._zIndex) { + return -1; + } + + return 0; +} + + __webpack_exports__["default"] = (ShapesQuadTree); + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/shapes.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _shapes_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/shapes/element.js"); + __webpack_require__.d(__webpack_exports__, "Element", function() { return _shapes_element__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + + var _shapes_circle__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/shapes/circle.js"); + __webpack_require__.d(__webpack_exports__, "Circle", function() { return _shapes_circle__WEBPACK_IMPORTED_MODULE_1__["default"]; }); + + var _shapes_arc__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/shapes/arc.js"); + __webpack_require__.d(__webpack_exports__, "Arc", function() { return _shapes_arc__WEBPACK_IMPORTED_MODULE_2__["default"]; }); + + var _shapes_path__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/shapes/path.js"); + __webpack_require__.d(__webpack_exports__, "Path", function() { return _shapes_path__WEBPACK_IMPORTED_MODULE_3__["default"]; }); + + var _shapes_multi_path__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/shapes/multi-path.js"); + __webpack_require__.d(__webpack_exports__, "MultiPath", function() { return _shapes_multi_path__WEBPACK_IMPORTED_MODULE_4__["default"]; }); + + var _shapes_text__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/shapes/text.js"); + __webpack_require__.d(__webpack_exports__, "Text", function() { return _shapes_text__WEBPACK_IMPORTED_MODULE_5__["default"]; }); + + var _shapes_image__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/shapes/image.js"); + __webpack_require__.d(__webpack_exports__, "Image", function() { return _shapes_image__WEBPACK_IMPORTED_MODULE_6__["default"]; }); + + var _shapes_group__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/shapes/group.js"); + __webpack_require__.d(__webpack_exports__, "Group", function() { return _shapes_group__WEBPACK_IMPORTED_MODULE_7__["default"]; }); + + var _shapes_layout__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/shapes/layout.js"); + __webpack_require__.d(__webpack_exports__, "Layout", function() { return _shapes_layout__WEBPACK_IMPORTED_MODULE_8__["default"]; }); + + var _shapes_rect__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/shapes/rect.js"); + __webpack_require__.d(__webpack_exports__, "Rect", function() { return _shapes_rect__WEBPACK_IMPORTED_MODULE_9__["default"]; }); + + + + + + + + + + + + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/shapes/arc.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _geometry_arc__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/arc.js"); + var _element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/shapes/element.js"); + var _path__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/shapes/path.js"); + var _mixins_paintable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/mixins/paintable.js"); + var _mixins_measurable__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/mixins/measurable.js"); + var _accessors_define_geometry_accessors__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/accessors/define-geometry-accessors.js"); + var _util__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/util.js"); + + + + + + + + +var DEFAULT_STROKE = "#000"; + +var Arc = (function (Element) { + function Arc(geometry, options) { + if ( geometry === void 0 ) geometry = new _geometry_arc__WEBPACK_IMPORTED_MODULE_0__["default"](); + if ( options === void 0 ) options = {}; + + Element.call(this, options); + + this.geometry(geometry); + + if (!Object(_util__WEBPACK_IMPORTED_MODULE_6__["defined"])(this.options.stroke)) { + this.stroke(DEFAULT_STROKE); + } + } + + if ( Element ) Arc.__proto__ = Element; + Arc.prototype = Object.create( Element && Element.prototype ); + Arc.prototype.constructor = Arc; + + Arc.prototype._bbox = function _bbox (matrix) { + return this._geometry.bbox(matrix); + }; + + Arc.prototype.rawBBox = function rawBBox () { + return this.geometry().bbox(); + }; + + Arc.prototype.toPath = function toPath () { + var path = new _path__WEBPACK_IMPORTED_MODULE_2__["default"](); + var curvePoints = this.geometry().curvePoints(); + + if (curvePoints.length > 0) { + path.moveTo(curvePoints[0].x, curvePoints[0].y); + + for (var i = 1; i < curvePoints.length; i += 3) { + path.curveTo(curvePoints[i], curvePoints[i + 1], curvePoints[i + 2]); + } + } + + return path; + }; + + Arc.prototype._containsPoint = function _containsPoint (point) { + return this.geometry().containsPoint(point); + }; + + Arc.prototype._isOnPath = function _isOnPath (point) { + return this.geometry()._isOnPath(point, this.options.stroke.width / 2); + }; + + return Arc; +}(_element__WEBPACK_IMPORTED_MODULE_1__["default"])); + +Arc.prototype.nodeType = "Arc"; + +_mixins_paintable__WEBPACK_IMPORTED_MODULE_3__["default"].extend(Arc.prototype); +_mixins_measurable__WEBPACK_IMPORTED_MODULE_4__["default"].extend(Arc.prototype); +Object(_accessors_define_geometry_accessors__WEBPACK_IMPORTED_MODULE_5__["default"])(Arc.prototype, [ "geometry" ]); + + __webpack_exports__["default"] = (Arc); + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/shapes/circle.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _geometry_circle__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/circle.js"); + var _mixins_paintable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/mixins/paintable.js"); + var _mixins_measurable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/mixins/measurable.js"); + var _accessors_define_geometry_accessors__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/accessors/define-geometry-accessors.js"); + var _element__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/shapes/element.js"); + var _util__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/util.js"); + + + + + + + +var DEFAULT_STROKE = "#000"; + +var Circle = (function (Element) { + function Circle(geometry, options) { + if ( geometry === void 0 ) geometry = new _geometry_circle__WEBPACK_IMPORTED_MODULE_0__["default"](); + if ( options === void 0 ) options = {}; + + Element.call(this, options); + this.geometry(geometry); + + if (!Object(_util__WEBPACK_IMPORTED_MODULE_5__["defined"])(this.options.stroke)) { + this.stroke(DEFAULT_STROKE); + } + } + + if ( Element ) Circle.__proto__ = Element; + Circle.prototype = Object.create( Element && Element.prototype ); + Circle.prototype.constructor = Circle; + + Circle.prototype.rawBBox = function rawBBox () { + return this._geometry.bbox(); + }; + + Circle.prototype._bbox = function _bbox (matrix) { + return this._geometry.bbox(matrix); + }; + + Circle.prototype._containsPoint = function _containsPoint (point) { + return this.geometry().containsPoint(point); + }; + + Circle.prototype._isOnPath = function _isOnPath (point) { + return this.geometry()._isOnPath(point, this.options.stroke.width / 2); + }; + + return Circle; +}(_element__WEBPACK_IMPORTED_MODULE_4__["default"])); + +Circle.prototype.nodeType = "Circle"; + +_mixins_paintable__WEBPACK_IMPORTED_MODULE_1__["default"].extend(Circle.prototype); +_mixins_measurable__WEBPACK_IMPORTED_MODULE_2__["default"].extend(Circle.prototype); +Object(_accessors_define_geometry_accessors__WEBPACK_IMPORTED_MODULE_3__["default"])(Circle.prototype, [ "geometry" ]); + + __webpack_exports__["default"] = (Circle); + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/shapes/element.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _core_options_store__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/core/options-store.js"); + var _mixins_observers_mixin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/mixins/observers-mixin.js"); + var _geometry_rect__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/rect.js"); + var _geometry_matrix__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/matrix.js"); + var _geometry_transform__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/transform.js"); + var _geometry_to_matrix__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/to-matrix.js"); + var _common__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/common.js"); + var _util__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/util.js"); + + + + + + + + + +var Element = (function (Class) { + function Element(options) { + Class.call(this); + + this._initOptions(options); + } + + if ( Class ) Element.__proto__ = Class; + Element.prototype = Object.create( Class && Class.prototype ); + Element.prototype.constructor = Element; + + Element.prototype._initOptions = function _initOptions (options) { + if ( options === void 0 ) options = {}; + + var clip = options.clip; + var transform = options.transform; + + if (transform) { + options.transform = Object(_geometry_transform__WEBPACK_IMPORTED_MODULE_4__["default"])(transform); + } + + if (clip && !clip.id) { + clip.id = Object(_util__WEBPACK_IMPORTED_MODULE_7__["definitionId"])(); + } + + this.options = new _core_options_store__WEBPACK_IMPORTED_MODULE_0__["default"](options); + this.options.addObserver(this); + }; + + Element.prototype.transform = function transform (value) { + if (Object(_util__WEBPACK_IMPORTED_MODULE_7__["defined"])(value)) { + this.options.set("transform", Object(_geometry_transform__WEBPACK_IMPORTED_MODULE_4__["default"])(value)); + } else { + return this.options.get("transform"); + } + }; + + Element.prototype.parentTransform = function parentTransform () { + var element = this; + var parentMatrix; + + while (element.parent) { + element = element.parent; + var transformation = element.transform(); + if (transformation) { + parentMatrix = transformation.matrix().multiplyCopy(parentMatrix || _geometry_matrix__WEBPACK_IMPORTED_MODULE_3__["default"].unit()); + } + } + + if (parentMatrix) { + return Object(_geometry_transform__WEBPACK_IMPORTED_MODULE_4__["default"])(parentMatrix); + } + }; + + Element.prototype.currentTransform = function currentTransform (parentTransform) { + if ( parentTransform === void 0 ) parentTransform = this.parentTransform(); + + var elementTransform = this.transform(); + var elementMatrix = Object(_geometry_to_matrix__WEBPACK_IMPORTED_MODULE_5__["default"])(elementTransform); + + var parentMatrix = Object(_geometry_to_matrix__WEBPACK_IMPORTED_MODULE_5__["default"])(parentTransform); + var combinedMatrix; + + if (elementMatrix && parentMatrix) { + combinedMatrix = parentMatrix.multiplyCopy(elementMatrix); + } else { + combinedMatrix = elementMatrix || parentMatrix; + } + + if (combinedMatrix) { + return Object(_geometry_transform__WEBPACK_IMPORTED_MODULE_4__["default"])(combinedMatrix); + } + }; + + Element.prototype.visible = function visible (value) { + if (Object(_util__WEBPACK_IMPORTED_MODULE_7__["defined"])(value)) { + this.options.set("visible", value); + return this; + } + + return this.options.get("visible") !== false; + }; + + Element.prototype.clip = function clip (value) { + var options = this.options; + if (Object(_util__WEBPACK_IMPORTED_MODULE_7__["defined"])(value)) { + if (value && !value.id) { + value.id = Object(_util__WEBPACK_IMPORTED_MODULE_7__["definitionId"])(); + } + options.set("clip", value); + return this; + } + + return options.get("clip"); + }; + + Element.prototype.opacity = function opacity (value) { + if (Object(_util__WEBPACK_IMPORTED_MODULE_7__["defined"])(value)) { + this.options.set("opacity", value); + return this; + } + + return Object(_util__WEBPACK_IMPORTED_MODULE_7__["valueOrDefault"])(this.options.get("opacity"), 1); + }; + + Element.prototype.clippedBBox = function clippedBBox (transformation) { + var bbox = this._clippedBBox(transformation); + if (bbox) { + var clip = this.clip(); + return clip ? _geometry_rect__WEBPACK_IMPORTED_MODULE_2__["default"].intersect(bbox, clip.bbox(transformation)) : bbox; + } + }; + + Element.prototype.containsPoint = function containsPoint (point, parentTransform) { + if (this.visible()) { + var transform = this.currentTransform(parentTransform); + var transformedPoint = point; + if (transform) { + transformedPoint = point.transformCopy(transform.matrix().invert()); + } + return (this._hasFill() && this._containsPoint(transformedPoint)) || (this._isOnPath && this._hasStroke() && this._isOnPath(transformedPoint)); + } + return false; + }; + + Element.prototype._hasFill = function _hasFill () { + var fill = this.options.fill; + return fill && !Object(_util__WEBPACK_IMPORTED_MODULE_7__["isTransparent"])(fill.color); + }; + + Element.prototype._hasStroke = function _hasStroke () { + var stroke = this.options.stroke; + return stroke && stroke.width > 0 && !Object(_util__WEBPACK_IMPORTED_MODULE_7__["isTransparent"])(stroke.color); + }; + + Element.prototype._clippedBBox = function _clippedBBox (transformation) { + return this.bbox(transformation); + }; + + return Element; +}(_common__WEBPACK_IMPORTED_MODULE_6__["Class"])); + +Element.prototype.nodeType = "Element"; + +_mixins_observers_mixin__WEBPACK_IMPORTED_MODULE_1__["default"].extend(Element.prototype); + + __webpack_exports__["default"] = (Element); + + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/shapes/elements-array.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _mixins_observers_mixin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/mixins/observers-mixin.js"); + var _common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/common.js"); + + + +var push = [].push; +var pop = [].pop; +var splice = [].splice; +var shift = [].shift; +var slice = [].slice; +var unshift = [].unshift; + +var ElementsArray = (function (Class) { + function ElementsArray(array) { + if ( array === void 0 ) array = []; + + Class.call(this); + + this.length = 0; + this._splice(0, array.length, array); + } + + if ( Class ) ElementsArray.__proto__ = Class; + ElementsArray.prototype = Object.create( Class && Class.prototype ); + ElementsArray.prototype.constructor = ElementsArray; + + ElementsArray.prototype.elements = function elements (value) { + if (value) { + this._splice(0, this.length, value); + + this._change(); + return this; + } + + return this.slice(0); + }; + + ElementsArray.prototype.push = function push$1 () { + var elements = arguments; + var result = push.apply(this, elements); + + this._add(elements); + + return result; + }; + + ElementsArray.prototype.slice = function slice$1 () { + return slice.call(this); + }; + + ElementsArray.prototype.pop = function pop$1 () { + var length = this.length; + var result = pop.apply(this); + + if (length) { + this._remove([ result ]); + } + + return result; + }; + + ElementsArray.prototype.splice = function splice (index, howMany) { + var elements = slice.call(arguments, 2); + var result = this._splice(index, howMany, elements); + + this._change(); + + return result; + }; + + ElementsArray.prototype.shift = function shift$1 () { + var length = this.length; + var result = shift.apply(this); + + if (length) { + this._remove([ result ]); + } + + return result; + }; + + ElementsArray.prototype.unshift = function unshift$1 () { + var elements = arguments; + var result = unshift.apply(this, elements); + + this._add(elements); + + return result; + }; + + ElementsArray.prototype.indexOf = function indexOf (element) { + var this$1 = this; + + var length = this.length; + + for (var idx = 0; idx < length; idx++) { + if (this$1[idx] === element) { + return idx; + } + } + return -1; + }; + + ElementsArray.prototype._splice = function _splice (index, howMany, elements) { + var result = splice.apply(this, [ index, howMany ].concat(elements)); + + this._clearObserver(result); + this._setObserver(elements); + + return result; + }; + + ElementsArray.prototype._add = function _add (elements) { + this._setObserver(elements); + this._change(); + }; + + ElementsArray.prototype._remove = function _remove (elements) { + this._clearObserver(elements); + this._change(); + }; + + ElementsArray.prototype._setObserver = function _setObserver (elements) { + var this$1 = this; + + for (var idx = 0; idx < elements.length; idx++) { + elements[idx].addObserver(this$1); + } + }; + + ElementsArray.prototype._clearObserver = function _clearObserver (elements) { + var this$1 = this; + + for (var idx = 0; idx < elements.length; idx++) { + elements[idx].removeObserver(this$1); + } + }; + + ElementsArray.prototype._change = function _change () {}; + + return ElementsArray; +}(_common__WEBPACK_IMPORTED_MODULE_1__["Class"])); + +_mixins_observers_mixin__WEBPACK_IMPORTED_MODULE_0__["default"].extend(ElementsArray.prototype); + + __webpack_exports__["default"] = (ElementsArray); + + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/shapes/geometry-elements-array.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _elements_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/shapes/elements-array.js"); + + +var GeometryElementsArray = (function (ElementsArray) { + function GeometryElementsArray () { + ElementsArray.apply(this, arguments); + } + + if ( ElementsArray ) GeometryElementsArray.__proto__ = ElementsArray; + GeometryElementsArray.prototype = Object.create( ElementsArray && ElementsArray.prototype ); + GeometryElementsArray.prototype.constructor = GeometryElementsArray; + + GeometryElementsArray.prototype._change = function _change () { + this.geometryChange(); + }; + + return GeometryElementsArray; +}(_elements_array__WEBPACK_IMPORTED_MODULE_0__["default"])); + + __webpack_exports__["default"] = (GeometryElementsArray); + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/shapes/group.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/shapes/element.js"); + var _mixins_traversable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/mixins/traversable.js"); + var _util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/util.js"); + var _utils_elements_bounding_box__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/shapes/utils/elements-bounding-box.js"); + var _utils_elements_clippend_bounding_box__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/shapes/utils/elements-clippend-bounding-box.js"); + + + + + + +var Group = (function (Element) { + function Group(options) { + Element.call(this, options); + this.children = []; + } + + if ( Element ) Group.__proto__ = Element; + Group.prototype = Object.create( Element && Element.prototype ); + Group.prototype.constructor = Group; + + Group.prototype.childrenChange = function childrenChange (action, items, index) { + this.trigger("childrenChange",{ + action: action, + items: items, + index: index + }); + }; + + Group.prototype.append = function append$1 () { + Object(_util__WEBPACK_IMPORTED_MODULE_2__["append"])(this.children, arguments); + this._reparent(arguments, this); + + this.childrenChange("add", arguments); + + return this; + }; + + Group.prototype.insert = function insert (index, element) { + this.children.splice(index, 0, element); + element.parent = this; + + this.childrenChange("add", [ element ], index); + + return this; + }; + + Group.prototype.insertAt = function insertAt (element, index) { + return this.insert(index, element); + }; + + Group.prototype.remove = function remove (element) { + var index = this.children.indexOf(element); + if (index >= 0) { + this.children.splice(index, 1); + element.parent = null; + this.childrenChange("remove", [ element ], index); + } + + return this; + }; + + Group.prototype.removeAt = function removeAt (index) { + if (0 <= index && index < this.children.length) { + var element = this.children[index]; + this.children.splice(index, 1); + element.parent = null; + this.childrenChange("remove", [ element ], index); + } + + return this; + }; + + Group.prototype.clear = function clear () { + var items = this.children; + this.children = []; + this._reparent(items, null); + + this.childrenChange("remove", items, 0); + + return this; + }; + + Group.prototype.bbox = function bbox (transformation) { + return Object(_utils_elements_bounding_box__WEBPACK_IMPORTED_MODULE_3__["default"])(this.children, true, this.currentTransform(transformation)); + }; + + Group.prototype.rawBBox = function rawBBox () { + return Object(_utils_elements_bounding_box__WEBPACK_IMPORTED_MODULE_3__["default"])(this.children, false); + }; + + Group.prototype._clippedBBox = function _clippedBBox (transformation) { + return Object(_utils_elements_clippend_bounding_box__WEBPACK_IMPORTED_MODULE_4__["default"])(this.children, this.currentTransform(transformation)); + }; + + Group.prototype.currentTransform = function currentTransform (transformation) { + return Element.prototype.currentTransform.call(this, transformation) || null; + }; + + Group.prototype.containsPoint = function containsPoint (point, parentTransform) { + if (this.visible()) { + var children = this.children; + var transform = this.currentTransform(parentTransform); + for (var idx = 0; idx < children.length; idx++) { + if (children[idx].containsPoint(point, transform)) { + return true; + } + } + } + return false; + }; + + Group.prototype._reparent = function _reparent (elements, newParent) { + var this$1 = this; + + for (var i = 0; i < elements.length; i++) { + var child = elements[i]; + var parent = child.parent; + if (parent && parent !== this$1 && parent.remove) { + parent.remove(child); + } + + child.parent = newParent; + } + }; + + return Group; +}(_element__WEBPACK_IMPORTED_MODULE_0__["default"])); + +Group.prototype.nodeType = "Group"; + +_mixins_traversable__WEBPACK_IMPORTED_MODULE_1__["default"].extend(Group.prototype, "children"); + + __webpack_exports__["default"] = (Group); + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/shapes/image.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _accessors_define_geometry_accessors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/accessors/define-geometry-accessors.js"); + var _element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/shapes/element.js"); + var _geometry_rect__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/rect.js"); + var _geometry_to_matrix__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/to-matrix.js"); + var _util__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/util.js"); + + + + + + +var Image = (function (Element) { + function Image(src, rect, options) { + if ( rect === void 0 ) rect = new _geometry_rect__WEBPACK_IMPORTED_MODULE_2__["default"](); + if ( options === void 0 ) options = {}; + + Element.call(this, options); + + this.src(src); + this.rect(rect); + } + + if ( Element ) Image.__proto__ = Element; + Image.prototype = Object.create( Element && Element.prototype ); + Image.prototype.constructor = Image; + + Image.prototype.src = function src (value) { + if (Object(_util__WEBPACK_IMPORTED_MODULE_4__["defined"])(value)) { + this.options.set("src", value); + return this; + } + + return this.options.get("src"); + }; + + Image.prototype.bbox = function bbox (transformation) { + var combinedMatrix = Object(_geometry_to_matrix__WEBPACK_IMPORTED_MODULE_3__["default"])(this.currentTransform(transformation)); + return this._rect.bbox(combinedMatrix); + }; + + Image.prototype.rawBBox = function rawBBox () { + return this._rect.bbox(); + }; + + Image.prototype._containsPoint = function _containsPoint (point) { + return this._rect.containsPoint(point); + }; + + Image.prototype._hasFill = function _hasFill () { + return this.src(); + }; + + return Image; +}(_element__WEBPACK_IMPORTED_MODULE_1__["default"])); + +Image.prototype.nodeType = "Image"; + +Object(_accessors_define_geometry_accessors__WEBPACK_IMPORTED_MODULE_0__["default"])(Image.prototype, [ "rect" ]); + + __webpack_exports__["default"] = (Image); + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/shapes/layout.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _group__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/shapes/group.js"); + var _geometry_size__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/size.js"); + var _geometry_rect__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/rect.js"); + var _geometry_point__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/point.js"); + var _geometry_transform__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/transform.js"); + var _alignment_translate_to_point__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/alignment/translate-to-point.js"); + var _alignment_align_start__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/alignment/align-start.js"); + var _alignment_align_start_reverse__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/alignment/align-start-reverse.js"); + + + + + + + + + +var DEFAULT_OPTIONS = { + alignContent: "start", + justifyContent: "start", + alignItems: "start", + spacing: 0, + orientation: "horizontal", + lineSpacing: 0, + wrap: true, + revers: false +}; + +var forEach = function (elements, callback) { + elements.forEach(callback); +}; + +var forEachReverse = function (elements, callback) { + var length = elements.length; + + for (var idx = length - 1; idx >= 0; idx--) { + callback(elements[idx], idx); + } +}; + +var Layout = (function (Group) { + function Layout(rect, options) { + Group.call(this, Object.assign({}, DEFAULT_OPTIONS, options)); + this._rect = rect; + this._fieldMap = {}; + } + + if ( Group ) Layout.__proto__ = Group; + Layout.prototype = Object.create( Group && Group.prototype ); + Layout.prototype.constructor = Layout; + + Layout.prototype.rect = function rect (value) { + if (value) { + this._rect = value; + return this; + } + + return this._rect; + }; + + Layout.prototype._initMap = function _initMap () { + var options = this.options; + var fieldMap = this._fieldMap; + if (options.orientation === "horizontal") { + fieldMap.sizeField = "width"; + fieldMap.groupsSizeField = "height"; + fieldMap.groupAxis = "x"; + fieldMap.groupsAxis = "y"; + } else { + fieldMap.sizeField = "height"; + fieldMap.groupsSizeField = "width"; + fieldMap.groupAxis = "y"; + fieldMap.groupsAxis = "x"; + } + + if (options.reverse) { + this.forEach = forEachReverse; + this.justifyAlign = _alignment_align_start_reverse__WEBPACK_IMPORTED_MODULE_7__["default"]; + } else { + this.forEach = forEach; + this.justifyAlign = _alignment_align_start__WEBPACK_IMPORTED_MODULE_6__["default"]; + } + }; + + Layout.prototype.reflow = function reflow () { + var this$1 = this; + + if (!this._rect || this.children.length === 0) { + return; + } + this._initMap(); + + if (this.options.transform) { + this.transform(null); + } + + var options = this.options; + var rect = this._rect; + var ref = this._initGroups(); + var groups = ref.groups; + var groupsSize = ref.groupsSize; + var ref$1 = this._fieldMap; + var sizeField = ref$1.sizeField; + var groupsSizeField = ref$1.groupsSizeField; + var groupAxis = ref$1.groupAxis; + var groupsAxis = ref$1.groupsAxis; + var groupOrigin = new _geometry_point__WEBPACK_IMPORTED_MODULE_3__["default"](); + var elementOrigin = new _geometry_point__WEBPACK_IMPORTED_MODULE_3__["default"](); + var size = new _geometry_size__WEBPACK_IMPORTED_MODULE_1__["default"](); + var groupStart = Object(_alignment_align_start__WEBPACK_IMPORTED_MODULE_6__["default"])(groupsSize, rect, options.alignContent, groupsAxis, groupsSizeField); + var elementStart, group, groupBox; + + var arrangeElements = function (bbox, idx) { + var element = group.elements[idx]; + + elementOrigin[groupAxis] = elementStart; + elementOrigin[groupsAxis] = Object(_alignment_align_start__WEBPACK_IMPORTED_MODULE_6__["default"])(bbox.size[groupsSizeField], groupBox, options.alignItems, groupsAxis, groupsSizeField); + Object(_alignment_translate_to_point__WEBPACK_IMPORTED_MODULE_5__["default"])(elementOrigin, bbox, element); + elementStart += bbox.size[sizeField] + options.spacing; + }; + + for (var groupIdx = 0; groupIdx < groups.length; groupIdx++) { + group = groups[groupIdx]; + groupOrigin[groupAxis] = elementStart = this$1.justifyAlign(group.size, rect, options.justifyContent, groupAxis, sizeField); + groupOrigin[groupsAxis] = groupStart; + size[sizeField] = group.size; + size[groupsSizeField] = group.lineSize; + groupBox = new _geometry_rect__WEBPACK_IMPORTED_MODULE_2__["default"](groupOrigin, size); + this$1.forEach(group.bboxes, arrangeElements); + + groupStart += group.lineSize + options.lineSpacing; + } + + if (!options.wrap && group.size > rect.size[sizeField]) { + var scale = rect.size[sizeField] / groupBox.size[sizeField]; + var scaledStart = groupBox.topLeft().scale(scale, scale); + var scaledSize = groupBox.size[groupsSizeField] * scale; + var newStart = Object(_alignment_align_start__WEBPACK_IMPORTED_MODULE_6__["default"])(scaledSize, rect, options.alignContent, groupsAxis, groupsSizeField); + var transform = Object(_geometry_transform__WEBPACK_IMPORTED_MODULE_4__["default"])(); + if (groupAxis === "x") { + transform.translate(rect.origin.x - scaledStart.x, newStart - scaledStart.y); + } else { + transform.translate(newStart - scaledStart.x, rect.origin.y - scaledStart.y); + } + transform.scale(scale, scale); + + this.transform(transform); + } + }; + + Layout.prototype._initGroups = function _initGroups () { + var this$1 = this; + + var ref = this; + var options = ref.options; + var children = ref.children; + var lineSpacing = options.lineSpacing; + var wrap = options.wrap; + var spacing = options.spacing; + var sizeField = this._fieldMap.sizeField; + var group = this._newGroup(); + var groups = []; + var addGroup = function() { + groups.push(group); + groupsSize += group.lineSize + lineSpacing; + }; + var groupsSize = -lineSpacing; + + for (var idx = 0; idx < children.length; idx++) { + var element = children[idx]; + var bbox = children[idx].clippedBBox(); + if (element.visible() && bbox) { + if (wrap && group.size + bbox.size[sizeField] + spacing > this$1._rect.size[sizeField]) { + if (group.bboxes.length === 0) { + this$1._addToGroup(group, bbox, element); + addGroup(); + group = this$1._newGroup(); + } else { + addGroup(); + group = this$1._newGroup(); + this$1._addToGroup(group, bbox, element); + } + } else { + this$1._addToGroup(group, bbox, element); + } + } + } + + if (group.bboxes.length) { + addGroup(); + } + + return { + groups: groups, + groupsSize: groupsSize + }; + }; + + Layout.prototype._addToGroup = function _addToGroup (group, bbox, element) { + group.size += bbox.size[this._fieldMap.sizeField] + this.options.spacing; + group.lineSize = Math.max(bbox.size[this._fieldMap.groupsSizeField], group.lineSize); + group.bboxes.push(bbox); + group.elements.push(element); + }; + + Layout.prototype._newGroup = function _newGroup () { + return { + lineSize: 0, + size: -this.options.spacing, + bboxes: [], + elements: [] + }; + }; + + return Layout; +}(_group__WEBPACK_IMPORTED_MODULE_0__["default"])); + + __webpack_exports__["default"] = (Layout); + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/shapes/multi-path.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _geometry_elements_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/shapes/geometry-elements-array.js"); + var _element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/shapes/element.js"); + var _path__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/shapes/path.js"); + var _mixins_paintable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/mixins/paintable.js"); + var _mixins_measurable__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/mixins/measurable.js"); + var _utils_elements_bounding_box__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/shapes/utils/elements-bounding-box.js"); + var _utils_elements_clippend_bounding_box__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/shapes/utils/elements-clippend-bounding-box.js"); + var _util__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/util.js"); + + + + + + + + + +var MultiPath = (function (Element) { + function MultiPath(options) { + Element.call(this, options); + this.paths = new _geometry_elements_array__WEBPACK_IMPORTED_MODULE_0__["default"](); + this.paths.addObserver(this); + + if (!Object(_util__WEBPACK_IMPORTED_MODULE_7__["defined"])(this.options.stroke)) { + this.stroke("#000"); + } + } + + if ( Element ) MultiPath.__proto__ = Element; + MultiPath.prototype = Object.create( Element && Element.prototype ); + MultiPath.prototype.constructor = MultiPath; + + MultiPath.prototype.moveTo = function moveTo (x, y) { + var path = new _path__WEBPACK_IMPORTED_MODULE_2__["default"](); + path.moveTo(x, y); + + this.paths.push(path); + + return this; + }; + + MultiPath.prototype.lineTo = function lineTo (x, y) { + if (this.paths.length > 0) { + Object(_util__WEBPACK_IMPORTED_MODULE_7__["last"])(this.paths).lineTo(x, y); + } + + return this; + }; + + MultiPath.prototype.curveTo = function curveTo (controlOut, controlIn, point) { + if (this.paths.length > 0) { + Object(_util__WEBPACK_IMPORTED_MODULE_7__["last"])(this.paths).curveTo(controlOut, controlIn, point); + } + + return this; + }; + + MultiPath.prototype.arc = function arc (startAngle, endAngle, radiusX, radiusY, anticlockwise) { + if (this.paths.length > 0) { + Object(_util__WEBPACK_IMPORTED_MODULE_7__["last"])(this.paths).arc(startAngle, endAngle, radiusX, radiusY, anticlockwise); + } + + return this; + }; + + MultiPath.prototype.arcTo = function arcTo (end, rx, ry, largeArc, swipe, rotation) { + if (this.paths.length > 0) { + Object(_util__WEBPACK_IMPORTED_MODULE_7__["last"])(this.paths).arcTo(end, rx, ry, largeArc, swipe, rotation); + } + + return this; + }; + + MultiPath.prototype.close = function close () { + if (this.paths.length > 0) { + Object(_util__WEBPACK_IMPORTED_MODULE_7__["last"])(this.paths).close(); + } + + return this; + }; + + MultiPath.prototype._bbox = function _bbox (matrix) { + return Object(_utils_elements_bounding_box__WEBPACK_IMPORTED_MODULE_5__["default"])(this.paths, true, matrix); + }; + + MultiPath.prototype.rawBBox = function rawBBox () { + return Object(_utils_elements_bounding_box__WEBPACK_IMPORTED_MODULE_5__["default"])(this.paths, false); + }; + + MultiPath.prototype._containsPoint = function _containsPoint (point) { + var paths = this.paths; + + for (var idx = 0; idx < paths.length; idx++) { + if (paths[idx]._containsPoint(point)) { + return true; + } + } + return false; + }; + + MultiPath.prototype._isOnPath = function _isOnPath (point) { + var paths = this.paths; + var width = this.options.stroke.width; + + for (var idx = 0; idx < paths.length; idx++) { + if (paths[idx]._isOnPath(point, width)) { + return true; + } + } + return false; + }; + + MultiPath.prototype._clippedBBox = function _clippedBBox (transformation) { + return Object(_utils_elements_clippend_bounding_box__WEBPACK_IMPORTED_MODULE_6__["default"])(this.paths, this.currentTransform(transformation)); + }; + + return MultiPath; +}(_element__WEBPACK_IMPORTED_MODULE_1__["default"])); + +MultiPath.prototype.nodeType = "MultiPath"; + +_mixins_paintable__WEBPACK_IMPORTED_MODULE_3__["default"].extend(MultiPath.prototype); +_mixins_measurable__WEBPACK_IMPORTED_MODULE_4__["default"].extend(MultiPath.prototype); + + __webpack_exports__["default"] = (MultiPath); + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/shapes/path.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _geometry_elements_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/shapes/geometry-elements-array.js"); + var _element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/shapes/element.js"); + var _mixins_paintable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/mixins/paintable.js"); + var _mixins_measurable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/mixins/measurable.js"); + var _geometry_arc__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/arc.js"); + var _geometry_rect__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/rect.js"); + var _geometry_segment__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/segment.js"); + var _geometry_point__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/point.js"); + var _geometry_size__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/size.js"); + var _geometry_math_line_intersections_count__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/math/line-intersections-count.js"); + var _util__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/util.js"); + var _parsing_path_parser__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/parsing/path-parser.js"); + + + + + + + + + + + + + +var Path = (function (Element) { + function Path(options) { + Element.call(this, options); + this.segments = new _geometry_elements_array__WEBPACK_IMPORTED_MODULE_0__["default"](); + this.segments.addObserver(this); + + if (!Object(_util__WEBPACK_IMPORTED_MODULE_10__["defined"])(this.options.stroke)) { + this.stroke("#000"); + + if (!Object(_util__WEBPACK_IMPORTED_MODULE_10__["defined"])(this.options.stroke.lineJoin)) { + this.options.set("stroke.lineJoin", "miter"); + } + } + } + + if ( Element ) Path.__proto__ = Element; + Path.prototype = Object.create( Element && Element.prototype ); + Path.prototype.constructor = Path; + + Path.prototype.moveTo = function moveTo (x, y) { + this.suspend(); + this.segments.elements([]); + this.resume(); + + this.lineTo(x, y); + + return this; + }; + + Path.prototype.lineTo = function lineTo (x, y) { + var point = Object(_util__WEBPACK_IMPORTED_MODULE_10__["defined"])(y) ? new _geometry_point__WEBPACK_IMPORTED_MODULE_7__["default"](x, y) : x; + var segment = new _geometry_segment__WEBPACK_IMPORTED_MODULE_6__["default"](point); + + this.segments.push(segment); + + return this; + }; + + Path.prototype.curveTo = function curveTo (controlOut, controlIn, point) { + if (this.segments.length > 0) { + var lastSegment = Object(_util__WEBPACK_IMPORTED_MODULE_10__["last"])(this.segments); + var segment = new _geometry_segment__WEBPACK_IMPORTED_MODULE_6__["default"](point, controlIn); + this.suspend(); + lastSegment.controlOut(controlOut); + this.resume(); + + this.segments.push(segment); + } + + return this; + }; + + Path.prototype.arc = function arc (startAngle, endAngle, radiusX, radiusY, anticlockwise) { + if (this.segments.length > 0) { + var lastSegment = Object(_util__WEBPACK_IMPORTED_MODULE_10__["last"])(this.segments); + var anchor = lastSegment.anchor(); + var start = Object(_util__WEBPACK_IMPORTED_MODULE_10__["rad"])(startAngle); + var center = new _geometry_point__WEBPACK_IMPORTED_MODULE_7__["default"](anchor.x - radiusX * Math.cos(start), + anchor.y - radiusY * Math.sin(start)); + var arc = new _geometry_arc__WEBPACK_IMPORTED_MODULE_4__["default"](center, { + startAngle: startAngle, + endAngle: endAngle, + radiusX: radiusX, + radiusY: radiusY, + anticlockwise: anticlockwise + }); + + this._addArcSegments(arc); + } + + return this; + }; + + Path.prototype.arcTo = function arcTo (end, rx, ry, largeArc, swipe, rotation) { + if (this.segments.length > 0) { + var lastSegment = Object(_util__WEBPACK_IMPORTED_MODULE_10__["last"])(this.segments); + var anchor = lastSegment.anchor(); + var arc = _geometry_arc__WEBPACK_IMPORTED_MODULE_4__["default"].fromPoints(anchor, end, rx, ry, largeArc, swipe, rotation); + + this._addArcSegments(arc); + } + return this; + }; + + Path.prototype._addArcSegments = function _addArcSegments (arc) { + var this$1 = this; + + this.suspend(); + + var curvePoints = arc.curvePoints(); + + for (var i = 1; i < curvePoints.length; i += 3) { + this$1.curveTo(curvePoints[i], curvePoints[i + 1], curvePoints[i + 2]); + } + + this.resume(); + this.geometryChange(); + }; + + Path.prototype.close = function close () { + this.options.closed = true; + this.geometryChange(); + + return this; + }; + + Path.prototype.rawBBox = function rawBBox () { + return this._bbox(); + }; + + Path.prototype._containsPoint = function _containsPoint (point) { + var segments = this.segments; + var length = segments.length; + var intersectionsCount = 0; + var previous, current; + + for (var idx = 1; idx < length; idx++) { + previous = segments[idx - 1]; + current = segments[idx]; + intersectionsCount += previous._intersectionsTo(current, point); + } + + if (this.options.closed || !segments[0].anchor().equals(segments[length - 1].anchor())) { + intersectionsCount += Object(_geometry_math_line_intersections_count__WEBPACK_IMPORTED_MODULE_9__["default"])(segments[0].anchor(), segments[length - 1].anchor(), point); + } + + return intersectionsCount % 2 !== 0; + }; + + Path.prototype._isOnPath = function _isOnPath (point, width) { + var segments = this.segments; + var length = segments.length; + var pathWidth = width || this.options.stroke.width; + + if (length > 1) { + if (segments[0]._isOnPathTo(segments[1], point, pathWidth, "start")) { + return true; + } + + for (var idx = 2; idx <= length - 2; idx++) { + if (segments[idx - 1]._isOnPathTo(segments[idx], point, pathWidth)) { + return true; + } + } + + if (segments[length - 2]._isOnPathTo(segments[length - 1], point, pathWidth, "end")) { + return true; + } + } + return false; + }; + + Path.prototype._bbox = function _bbox (matrix) { + var segments = this.segments; + var length = segments.length; + var boundingBox; + + if (length === 1) { + var anchor = segments[0].anchor().transformCopy(matrix); + boundingBox = new _geometry_rect__WEBPACK_IMPORTED_MODULE_5__["default"](anchor, _geometry_size__WEBPACK_IMPORTED_MODULE_8__["default"].ZERO); + } else if (length > 0) { + for (var i = 1; i < length; i++) { + var segmentBox = segments[i - 1].bboxTo(segments[i], matrix); + if (boundingBox) { + boundingBox = _geometry_rect__WEBPACK_IMPORTED_MODULE_5__["default"].union(boundingBox, segmentBox); + } else { + boundingBox = segmentBox; + } + } + } + + return boundingBox; + }; + + Path.fromRect = function fromRect (rect, options) { + return new Path(options) + .moveTo(rect.topLeft()) + .lineTo(rect.topRight()) + .lineTo(rect.bottomRight()) + .lineTo(rect.bottomLeft()) + .close(); + }; + + Path.fromPoints = function fromPoints (points, options) { + if (points) { + var path = new Path(options); + + for (var i = 0; i < points.length; i++) { + var point = _geometry_point__WEBPACK_IMPORTED_MODULE_7__["default"].create(points[i]); + if (point) { + if (i === 0) { + path.moveTo(point); + } else { + path.lineTo(point); + } + } + } + + return path; + } + }; + + Path.fromArc = function fromArc (arc, options) { + var path = new Path(options); + var startAngle = arc.startAngle; + var start = arc.pointAt(startAngle); + path.moveTo(start.x, start.y); + path.arc(startAngle, arc.endAngle, arc.radiusX, arc.radiusY, arc.anticlockwise); + return path; + }; + + return Path; +}(_element__WEBPACK_IMPORTED_MODULE_1__["default"])); + +Path.prototype.nodeType = "Path"; + +_mixins_paintable__WEBPACK_IMPORTED_MODULE_2__["default"].extend(Path.prototype); +_mixins_measurable__WEBPACK_IMPORTED_MODULE_3__["default"].extend(Path.prototype); + +Path.parse = function(str, options) { + return _parsing_path_parser__WEBPACK_IMPORTED_MODULE_11__["default"].current.parse(str, options); +}; + + __webpack_exports__["default"] = (Path); + + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/shapes/rect.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _accessors_define_geometry_accessors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/accessors/define-geometry-accessors.js"); + var _element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/shapes/element.js"); + var _mixins_paintable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/mixins/paintable.js"); + var _mixins_measurable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/mixins/measurable.js"); + var _geometry_rect__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/rect.js"); + var _util__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/util.js"); + + + + + + + +var Rect = (function (Element) { + function Rect(geometry, options) { + if ( geometry === void 0 ) geometry = new _geometry_rect__WEBPACK_IMPORTED_MODULE_4__["default"](); + if ( options === void 0 ) options = {}; + + Element.call(this, options); + this.geometry(geometry); + + if (!Object(_util__WEBPACK_IMPORTED_MODULE_5__["defined"])(this.options.stroke)) { + this.stroke("#000"); + } + } + + if ( Element ) Rect.__proto__ = Element; + Rect.prototype = Object.create( Element && Element.prototype ); + Rect.prototype.constructor = Rect; + + Rect.prototype._bbox = function _bbox (matrix) { + return this._geometry.bbox(matrix); + }; + + Rect.prototype.rawBBox = function rawBBox () { + return this._geometry.bbox(); + }; + + Rect.prototype._containsPoint = function _containsPoint (point) { + return this._geometry.containsPoint(point); + }; + + Rect.prototype._isOnPath = function _isOnPath (point) { + return this.geometry()._isOnPath(point, this.options.stroke.width / 2); + }; + + return Rect; +}(_element__WEBPACK_IMPORTED_MODULE_1__["default"])); + +Rect.prototype.nodeType = "Rect"; + +_mixins_paintable__WEBPACK_IMPORTED_MODULE_2__["default"].extend(Rect.prototype); +_mixins_measurable__WEBPACK_IMPORTED_MODULE_3__["default"].extend(Rect.prototype); +Object(_accessors_define_geometry_accessors__WEBPACK_IMPORTED_MODULE_0__["default"])(Rect.prototype, [ "geometry" ]); + + __webpack_exports__["default"] = (Rect); + + + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/shapes/text.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/shapes/element.js"); + var _geometry_point__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/point.js"); + var _geometry_rect__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/rect.js"); + var _geometry_to_matrix__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/to-matrix.js"); + var _mixins_paintable__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/mixins/paintable.js"); + var _accessors_define_point_accessors__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/accessors/define-point-accessors.js"); + var _util__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/util.js"); + + + + + + + + +var DEFAULT_FONT = "12px sans-serif"; +var DEFAULT_FILL = "#000"; + +var Text = (function (Element) { + function Text(content, position, options) { + if ( position === void 0 ) position = new _geometry_point__WEBPACK_IMPORTED_MODULE_1__["default"](); + if ( options === void 0 ) options = {}; + + Element.call(this, options); + + this.content(content); + this.position(position); + + if (!this.options.font) { + this.options.font = DEFAULT_FONT; + } + + if (!Object(_util__WEBPACK_IMPORTED_MODULE_6__["defined"])(this.options.fill)) { + this.fill(DEFAULT_FILL); + } + } + + if ( Element ) Text.__proto__ = Element; + Text.prototype = Object.create( Element && Element.prototype ); + Text.prototype.constructor = Text; + + Text.prototype.content = function content (value) { + if (Object(_util__WEBPACK_IMPORTED_MODULE_6__["defined"])(value)) { + this.options.set("content", value); + return this; + } + + return this.options.get("content"); + }; + + Text.prototype.measure = function measure () { + var metrics = Object(_util__WEBPACK_IMPORTED_MODULE_6__["measureText"])(this.content(), { + font: this.options.get("font") + }); + + return metrics; + }; + + Text.prototype.rect = function rect () { + var size = this.measure(); + var pos = this.position().clone(); + return new _geometry_rect__WEBPACK_IMPORTED_MODULE_2__["default"](pos, [ size.width, size.height ]); + }; + + Text.prototype.bbox = function bbox (transformation) { + var combinedMatrix = Object(_geometry_to_matrix__WEBPACK_IMPORTED_MODULE_3__["default"])(this.currentTransform(transformation)); + return this.rect().bbox(combinedMatrix); + }; + + Text.prototype.rawBBox = function rawBBox () { + return this.rect().bbox(); + }; + + Text.prototype._containsPoint = function _containsPoint (point) { + return this.rect().containsPoint(point); + }; + + return Text; +}(_element__WEBPACK_IMPORTED_MODULE_0__["default"])); + +Text.prototype.nodeType = "Text"; + +_mixins_paintable__WEBPACK_IMPORTED_MODULE_4__["default"].extend(Text.prototype); + +Object(_accessors_define_point_accessors__WEBPACK_IMPORTED_MODULE_5__["default"])(Text.prototype, [ "position" ]); + + __webpack_exports__["default"] = (Text); + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/shapes/utils/elements-bounding-box.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return elementsBoundingBox; }); + var _geometry_rect__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/rect.js"); + + +function elementsBoundingBox(elements, applyTransform, transformation) { + var boundingBox; + + for (var i = 0; i < elements.length; i++) { + var element = elements[i]; + if (element.visible()) { + var elementBoundingBox = applyTransform ? element.bbox(transformation) : element.rawBBox(); + if (elementBoundingBox) { + if (boundingBox) { + boundingBox = _geometry_rect__WEBPACK_IMPORTED_MODULE_0__["default"].union(boundingBox, elementBoundingBox); + } else { + boundingBox = elementBoundingBox; + } + } + } + } + + return boundingBox; +} + + + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/shapes/utils/elements-clippend-bounding-box.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return elementsClippedBoundingBox; }); + var _geometry_rect__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/rect.js"); + + +function elementsClippedBoundingBox(elements, transformation) { + var boundingBox; + + for (var i = 0; i < elements.length; i++) { + var element = elements[i]; + if (element.visible()) { + var elementBoundingBox = element.clippedBBox(transformation); + if (elementBoundingBox) { + if (boundingBox) { + boundingBox = _geometry_rect__WEBPACK_IMPORTED_MODULE_0__["default"].union(boundingBox, elementBoundingBox); + } else { + boundingBox = elementBoundingBox; + } + } + } + } + + return boundingBox; +} + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/svg.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _svg_surface__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/svg/surface.js"); + __webpack_require__.d(__webpack_exports__, "Surface", function() { return _svg_surface__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + + var _svg_root_node__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/svg/root-node.js"); + __webpack_require__.d(__webpack_exports__, "RootNode", function() { return _svg_root_node__WEBPACK_IMPORTED_MODULE_1__["default"]; }); + + var _svg_node__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/svg/node.js"); + __webpack_require__.d(__webpack_exports__, "Node", function() { return _svg_node__WEBPACK_IMPORTED_MODULE_2__["default"]; }); + + var _svg_group_node__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/svg/group-node.js"); + __webpack_require__.d(__webpack_exports__, "GroupNode", function() { return _svg_group_node__WEBPACK_IMPORTED_MODULE_3__["default"]; }); + + var _svg_arc_node__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/svg/arc-node.js"); + __webpack_require__.d(__webpack_exports__, "ArcNode", function() { return _svg_arc_node__WEBPACK_IMPORTED_MODULE_4__["default"]; }); + + var _svg_circle_node__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/svg/circle-node.js"); + __webpack_require__.d(__webpack_exports__, "CircleNode", function() { return _svg_circle_node__WEBPACK_IMPORTED_MODULE_5__["default"]; }); + + var _svg_rect_node__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/svg/rect-node.js"); + __webpack_require__.d(__webpack_exports__, "RectNode", function() { return _svg_rect_node__WEBPACK_IMPORTED_MODULE_6__["default"]; }); + + var _svg_image_node__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/svg/image-node.js"); + __webpack_require__.d(__webpack_exports__, "ImageNode", function() { return _svg_image_node__WEBPACK_IMPORTED_MODULE_7__["default"]; }); + + var _svg_text_node__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/svg/text-node.js"); + __webpack_require__.d(__webpack_exports__, "TextNode", function() { return _svg_text_node__WEBPACK_IMPORTED_MODULE_8__["default"]; }); + + var _svg_path_node__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/svg/path-node.js"); + __webpack_require__.d(__webpack_exports__, "PathNode", function() { return _svg_path_node__WEBPACK_IMPORTED_MODULE_9__["default"]; }); + + var _svg_multi_path_node__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/svg/multi-path-node.js"); + __webpack_require__.d(__webpack_exports__, "MultiPathNode", function() { return _svg_multi_path_node__WEBPACK_IMPORTED_MODULE_10__["default"]; }); + + var _svg_definition_node__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/svg/definition-node.js"); + __webpack_require__.d(__webpack_exports__, "DefinitionNode", function() { return _svg_definition_node__WEBPACK_IMPORTED_MODULE_11__["default"]; }); + + var _svg_clip_node__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/svg/clip-node.js"); + __webpack_require__.d(__webpack_exports__, "ClipNode", function() { return _svg_clip_node__WEBPACK_IMPORTED_MODULE_12__["default"]; }); + + var _svg_gradient_stop_node__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/svg/gradient-stop-node.js"); + __webpack_require__.d(__webpack_exports__, "GradientStopNode", function() { return _svg_gradient_stop_node__WEBPACK_IMPORTED_MODULE_13__["default"]; }); + + var _svg_linear_gradient_node__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/svg/linear-gradient-node.js"); + __webpack_require__.d(__webpack_exports__, "LinearGradientNode", function() { return _svg_linear_gradient_node__WEBPACK_IMPORTED_MODULE_14__["default"]; }); + + var _svg_radial_gradient_node__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/svg/radial-gradient-node.js"); + __webpack_require__.d(__webpack_exports__, "RadialGradientNode", function() { return _svg_radial_gradient_node__WEBPACK_IMPORTED_MODULE_15__["default"]; }); + + var _svg_export_group__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/svg/export-group.js"); + __webpack_require__.d(__webpack_exports__, "exportGroup", function() { return _svg_export_group__WEBPACK_IMPORTED_MODULE_16__["default"]; }); + + + + + + + + + + + + + + + + + + + + + + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/svg/arc-node.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _path_node__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/svg/path-node.js"); + var _node_map__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/svg/node-map.js"); + + + +var ArcNode = (function (PathNode) { + function ArcNode () { + PathNode.apply(this, arguments); + } + + if ( PathNode ) ArcNode.__proto__ = PathNode; + ArcNode.prototype = Object.create( PathNode && PathNode.prototype ); + ArcNode.prototype.constructor = ArcNode; + + ArcNode.prototype.renderData = function renderData () { + return this.printPath(this.srcElement.toPath()); + }; + + return ArcNode; +}(_path_node__WEBPACK_IMPORTED_MODULE_0__["default"])); + +_node_map__WEBPACK_IMPORTED_MODULE_1__["default"].Arc = ArcNode; + + __webpack_exports__["default"] = (ArcNode); + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/svg/circle-node.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _path_node__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/svg/path-node.js"); + var _node_map__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/svg/node-map.js"); + + + +var CircleNode = (function (PathNode) { + function CircleNode () { + PathNode.apply(this, arguments); + } + + if ( PathNode ) CircleNode.__proto__ = PathNode; + CircleNode.prototype = Object.create( PathNode && PathNode.prototype ); + CircleNode.prototype.constructor = CircleNode; + + CircleNode.prototype.geometryChange = function geometryChange () { + var center = this.center(); + this.attr("cx", center.x); + this.attr("cy", center.y); + this.attr("r", this.radius()); + this.invalidate(); + }; + + CircleNode.prototype.center = function center () { + return this.srcElement.geometry().center; + }; + + CircleNode.prototype.radius = function radius () { + return this.srcElement.geometry().radius; + }; + + CircleNode.prototype.template = function template () { + return ""; + }; + + return CircleNode; +}(_path_node__WEBPACK_IMPORTED_MODULE_0__["default"])); + +_node_map__WEBPACK_IMPORTED_MODULE_1__["default"].Circle = CircleNode; + + __webpack_exports__["default"] = (CircleNode); + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/svg/clip-node.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _node__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/svg/node.js"); + + +var ClipNode = (function (Node) { + function ClipNode(srcElement) { + Node.call(this); + + this.srcElement = srcElement; + this.id = srcElement.id; + + this.load([ srcElement ]); + } + + if ( Node ) ClipNode.__proto__ = Node; + ClipNode.prototype = Object.create( Node && Node.prototype ); + ClipNode.prototype.constructor = ClipNode; + + ClipNode.prototype.template = function template () { + return ("" + (this.renderChildren()) + ""); + }; + + return ClipNode; +}(_node__WEBPACK_IMPORTED_MODULE_0__["default"])); + + __webpack_exports__["default"] = (ClipNode); + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/svg/constants.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "SVG_NS", function() { return SVG_NS; }); + __webpack_require__.d(__webpack_exports__, "NONE", function() { return NONE; }); +var SVG_NS = "http://www.w3.org/2000/svg"; +var NONE = "none"; + + + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/svg/definition-node.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _gradients_linear_gradient__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/gradients/linear-gradient.js"); + var _gradients_radial_gradient__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/gradients/radial-gradient.js"); + var _linear_gradient_node__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/svg/linear-gradient-node.js"); + var _radial_gradient_node__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/svg/radial-gradient-node.js"); + var _node__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/svg/node.js"); + var _clip_node__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/svg/clip-node.js"); + + + + + + + +var DefinitionNode = (function (Node) { + function DefinitionNode() { + Node.call(this); + this.definitionMap = {}; + } + + if ( Node ) DefinitionNode.__proto__ = Node; + DefinitionNode.prototype = Object.create( Node && Node.prototype ); + DefinitionNode.prototype.constructor = DefinitionNode; + + DefinitionNode.prototype.attachTo = function attachTo (domElement) { + this.element = domElement; + }; + + DefinitionNode.prototype.template = function template () { + return ("" + (this.renderChildren()) + ""); + }; + + DefinitionNode.prototype.definitionChange = function definitionChange (e) { + var definitions = e.definitions; + var action = e.action; + + if (action === "add") { + this.addDefinitions(definitions); + } else if (action === "remove") { + this.removeDefinitions(definitions); + } + }; + + DefinitionNode.prototype.createDefinition = function createDefinition (type, item) { + var nodeType; + if (type === "clip") { + nodeType = _clip_node__WEBPACK_IMPORTED_MODULE_5__["default"]; + } else if (type === "fill") { + if (item instanceof _gradients_linear_gradient__WEBPACK_IMPORTED_MODULE_0__["default"]) { + nodeType = _linear_gradient_node__WEBPACK_IMPORTED_MODULE_2__["default"]; + } else if (item instanceof _gradients_radial_gradient__WEBPACK_IMPORTED_MODULE_1__["default"]) { + nodeType = _radial_gradient_node__WEBPACK_IMPORTED_MODULE_3__["default"]; + } + } + return new nodeType(item); + }; + + DefinitionNode.prototype.addDefinitions = function addDefinitions (definitions) { + var this$1 = this; + + for (var field in definitions) { + this$1.addDefinition(field, definitions[field]); + } + }; + + DefinitionNode.prototype.addDefinition = function addDefinition (type, srcElement) { + var ref = this; + var element = ref.element; + var definitionMap = ref.definitionMap; + var id = srcElement.id; + var mapItem = definitionMap[id]; + if (!mapItem) { + var node = this.createDefinition(type, srcElement); + definitionMap[id] = { + element: node, + count: 1 + }; + this.append(node); + if (element) { + node.attachTo(this.element); + } + } else { + mapItem.count++; + } + }; + + DefinitionNode.prototype.removeDefinitions = function removeDefinitions (definitions) { + var this$1 = this; + + for (var field in definitions) { + this$1.removeDefinition(definitions[field]); + } + }; + + DefinitionNode.prototype.removeDefinition = function removeDefinition (srcElement) { + var definitionMap = this.definitionMap; + var id = srcElement.id; + var mapItem = definitionMap[id]; + + if (mapItem) { + mapItem.count--; + if (mapItem.count === 0) { + this.remove(this.childNodes.indexOf(mapItem.element), 1); + delete definitionMap[id]; + } + } + }; + + return DefinitionNode; +}(_node__WEBPACK_IMPORTED_MODULE_4__["default"])); + + __webpack_exports__["default"] = (DefinitionNode); + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/svg/export-group.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return exportGroup; }); + var _root_node__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/svg/root-node.js"); + var _shapes__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/shapes.js"); + var _geometry__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry.js"); + var _constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/svg/constants.js"); + + + + + +function exportGroup(group) { + var root = new _root_node__WEBPACK_IMPORTED_MODULE_0__["default"]({ + skipBaseHref: true + }); + var bbox = group.clippedBBox(); + var rootGroup = group; + + if (bbox) { + var origin = bbox.getOrigin(); + var exportRoot = new _shapes__WEBPACK_IMPORTED_MODULE_1__["Group"](); + exportRoot.transform(Object(_geometry__WEBPACK_IMPORTED_MODULE_2__["transform"])().translate(-origin.x, -origin.y)); + exportRoot.children.push(group); + rootGroup = exportRoot; + } + + root.load([ rootGroup ]); + + var svg = "" + (root.render()) + ""; + + root.destroy(); + + return svg; +} + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/svg/export-svg.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return exportSVG; }); + var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/util.js"); + var _export_group__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/svg/export-group.js"); + + + +function exportSVG(group, options) { + var svg = Object(_export_group__WEBPACK_IMPORTED_MODULE_1__["default"])(group); + + if (!options || !options.raw) { + svg = "data:image/svg+xml;base64," + Object(_util__WEBPACK_IMPORTED_MODULE_0__["encodeBase64"])(svg); + } + + return Object(_util__WEBPACK_IMPORTED_MODULE_0__["createPromise"])().resolve(svg); +} + + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/svg/gradient-node.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _gradient_stop_node__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/svg/gradient-stop-node.js"); + var _core_base_node__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/core/base-node.js"); + var _node__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/svg/node.js"); + var _utils_render_all_attributes__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/svg/utils/render-all-attributes.js"); + + + + + +var GradientNode = (function (Node) { + function GradientNode(srcElement) { + Node.call(this, srcElement); + + this.id = srcElement.id; + + this.loadStops(); + } + + if ( Node ) GradientNode.__proto__ = Node; + GradientNode.prototype = Object.create( Node && Node.prototype ); + GradientNode.prototype.constructor = GradientNode; + + GradientNode.prototype.loadStops = function loadStops () { + var this$1 = this; + + var stops = this.srcElement.stops; + var element = this.element; + + for (var idx = 0; idx < stops.length; idx++) { + var stopNode = new _gradient_stop_node__WEBPACK_IMPORTED_MODULE_0__["default"](stops[idx]); + this$1.append(stopNode); + if (element) { + stopNode.attachTo(element); + } + } + }; + + GradientNode.prototype.optionsChange = function optionsChange (e) { + if (e.field === "gradient.stops") { + _core_base_node__WEBPACK_IMPORTED_MODULE_1__["default"].prototype.clear.call(this); + this.loadStops(); + } else if (e.field === "gradient") { + this.allAttr(this.mapCoordinates()); + } + }; + + GradientNode.prototype.renderCoordinates = function renderCoordinates () { + return Object(_utils_render_all_attributes__WEBPACK_IMPORTED_MODULE_3__["default"])(this.mapCoordinates()); + }; + + GradientNode.prototype.mapSpace = function mapSpace () { + return [ "gradientUnits", this.srcElement.userSpace() ? "userSpaceOnUse" : "objectBoundingBox" ]; + }; + + return GradientNode; +}(_node__WEBPACK_IMPORTED_MODULE_2__["default"])); + + __webpack_exports__["default"] = (GradientNode); + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/svg/gradient-stop-node.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _node__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/svg/node.js"); + var _utils_render_attribute__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/svg/utils/render-attribute.js"); + + + +var GradientStopNode = (function (Node) { + function GradientStopNode () { + Node.apply(this, arguments); + } + + if ( Node ) GradientStopNode.__proto__ = Node; + GradientStopNode.prototype = Object.create( Node && Node.prototype ); + GradientStopNode.prototype.constructor = GradientStopNode; + + GradientStopNode.prototype.template = function template () { + return (""); + }; + + GradientStopNode.prototype.renderOffset = function renderOffset () { + return Object(_utils_render_attribute__WEBPACK_IMPORTED_MODULE_1__["default"])("offset", this.srcElement.offset()); + }; + + GradientStopNode.prototype.mapStyle = function mapStyle () { + var srcElement = this.srcElement; + return [ + [ "stop-color", srcElement.color() ], + [ "stop-opacity", srcElement.opacity() ] + ]; + }; + + GradientStopNode.prototype.optionsChange = function optionsChange (e) { + if (e.field === "offset") { + this.attr(e.field, e.value); + } else if (e.field === "color" || e.field === "opacity") { + this.css("stop-" + e.field, e.value); + } + }; + + return GradientStopNode; +}(_node__WEBPACK_IMPORTED_MODULE_0__["default"])); + + __webpack_exports__["default"] = (GradientStopNode); + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/svg/group-node.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _node__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/svg/node.js"); + var _node_map__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/svg/node-map.js"); + + + +var GroupNode = (function (Node) { + function GroupNode () { + Node.apply(this, arguments); + } + + if ( Node ) GroupNode.__proto__ = Node; + GroupNode.prototype = Object.create( Node && Node.prototype ); + GroupNode.prototype.constructor = GroupNode; + + GroupNode.prototype.template = function template () { + return ("" + (this.renderChildren()) + ""); + }; + + GroupNode.prototype.optionsChange = function optionsChange (e) { + if (e.field === "transform") { + this.transformChange(e.value); + } + + Node.prototype.optionsChange.call(this, e); + }; + + return GroupNode; +}(_node__WEBPACK_IMPORTED_MODULE_0__["default"])); + +_node_map__WEBPACK_IMPORTED_MODULE_1__["default"].Group = GroupNode; + + __webpack_exports__["default"] = (GroupNode); + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/svg/image-node.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _path_node__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/svg/path-node.js"); + var _node_map__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/svg/node-map.js"); + var _utils_render_all_attributes__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/svg/utils/render-all-attributes.js"); + var _common__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/common.js"); + + + + + +var ImageNode = (function (PathNode) { + function ImageNode () { + PathNode.apply(this, arguments); + } + + if ( PathNode ) ImageNode.__proto__ = PathNode; + ImageNode.prototype = Object.create( PathNode && PathNode.prototype ); + ImageNode.prototype.constructor = ImageNode; + + ImageNode.prototype.geometryChange = function geometryChange () { + this.allAttr(this.mapPosition()); + this.invalidate(); + }; + + ImageNode.prototype.optionsChange = function optionsChange (e) { + if (e.field === "src") { + this.allAttr(this.mapSource()); + } + + PathNode.prototype.optionsChange.call(this, e); + }; + + ImageNode.prototype.mapPosition = function mapPosition () { + var rect = this.srcElement.rect(); + var tl = rect.topLeft(); + + return [ + [ "x", tl.x ], + [ "y", tl.y ], + [ "width", rect.width() + "px" ], + [ "height", rect.height() + "px" ] + ]; + }; + + ImageNode.prototype.renderPosition = function renderPosition () { + return Object(_utils_render_all_attributes__WEBPACK_IMPORTED_MODULE_2__["default"])(this.mapPosition()); + }; + + ImageNode.prototype.mapSource = function mapSource (encode) { + var src = this.srcElement.src(); + + if (encode) { + src = Object(_common__WEBPACK_IMPORTED_MODULE_3__["htmlEncode"])(src); + } + + return [ [ "xlink:href", src ] ]; + }; + + ImageNode.prototype.renderSource = function renderSource () { + return Object(_utils_render_all_attributes__WEBPACK_IMPORTED_MODULE_2__["default"])(this.mapSource(true)); + }; + + ImageNode.prototype.template = function template () { + return "" + + ""; + }; + + return ImageNode; +}(_path_node__WEBPACK_IMPORTED_MODULE_0__["default"])); + +_node_map__WEBPACK_IMPORTED_MODULE_1__["default"].Image = ImageNode; + + __webpack_exports__["default"] = (ImageNode); + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/svg/linear-gradient-node.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _gradient_node__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/svg/gradient-node.js"); + + +var LinearGradientNode = (function (GradientNode) { + function LinearGradientNode () { + GradientNode.apply(this, arguments); + } + + if ( GradientNode ) LinearGradientNode.__proto__ = GradientNode; + LinearGradientNode.prototype = Object.create( GradientNode && GradientNode.prototype ); + LinearGradientNode.prototype.constructor = LinearGradientNode; + + LinearGradientNode.prototype.template = function template () { + return ("" + (this.renderChildren()) + ""); + }; + + LinearGradientNode.prototype.mapCoordinates = function mapCoordinates () { + var srcElement = this.srcElement; + var start = srcElement.start(); + var end = srcElement.end(); + var attrs = [ + [ "x1", start.x ], + [ "y1", start.y ], + [ "x2", end.x ], + [ "y2", end.y ], + this.mapSpace() + ]; + + return attrs; + }; + + return LinearGradientNode; +}(_gradient_node__WEBPACK_IMPORTED_MODULE_0__["default"])); + + __webpack_exports__["default"] = (LinearGradientNode); + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/svg/multi-path-node.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _path_node__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/svg/path-node.js"); + var _node_map__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/svg/node-map.js"); + + + +var MultiPathNode = (function (PathNode) { + function MultiPathNode () { + PathNode.apply(this, arguments); + } + + if ( PathNode ) MultiPathNode.__proto__ = PathNode; + MultiPathNode.prototype = Object.create( PathNode && PathNode.prototype ); + MultiPathNode.prototype.constructor = MultiPathNode; + + MultiPathNode.prototype.renderData = function renderData () { + var this$1 = this; + + var paths = this.srcElement.paths; + + if (paths.length > 0) { + var result = []; + + for (var i = 0; i < paths.length; i++) { + result.push(this$1.printPath(paths[i])); + } + + return result.join(" "); + } + }; + + return MultiPathNode; +}(_path_node__WEBPACK_IMPORTED_MODULE_0__["default"])); + +_node_map__WEBPACK_IMPORTED_MODULE_1__["default"].MultiPath = MultiPathNode; + + __webpack_exports__["default"] = (MultiPathNode); + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/svg/node-map.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +var NODE_MAP = {}; + + __webpack_exports__["default"] = (NODE_MAP); + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/svg/node.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _core_base_node__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/core/base-node.js"); + var _utils_render_all_attributes__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/svg/utils/render-all-attributes.js"); + var _utils_render_attribute__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/svg/utils/render-attribute.js"); + var _utils_render_style__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/svg/utils/render-style.js"); + var _node_map__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/svg/node-map.js"); + var _utils_render_svg__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/svg/utils/render-svg.js"); + var _constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/svg/constants.js"); + var _common__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/common.js"); + var _util__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/util.js"); + + + + + + + + + + +var TRANSFORM = "transform"; +var DefinitionMap = { + clip: "clip-path", + fill: "fill" +}; + +function isDefinition(type, value) { + return type === "clip" || (type === "fill" && (!value || value.nodeType === "Gradient")); +} + +function baseUrl() { + var base = document.getElementsByTagName("base")[0]; + var href = document.location.href; + var url = ""; + + if (base && !(_common__WEBPACK_IMPORTED_MODULE_7__["support"].browser || {}).msie) { + var hashIndex = href.indexOf("#"); + if (hashIndex !== -1) { + href = href.substring(0, hashIndex); + } + + url = href; + } + + return url; +} + +var Node = (function (BaseNode) { + function Node(srcElement, options) { + BaseNode.call(this, srcElement); + this.definitions = {}; + + this.options = options; + } + + if ( BaseNode ) Node.__proto__ = BaseNode; + Node.prototype = Object.create( BaseNode && BaseNode.prototype ); + Node.prototype.constructor = Node; + + Node.prototype.destroy = function destroy () { + if (this.element) { + this.element._kendoNode = null; + this.element = null; + } + + this.clearDefinitions(); + BaseNode.prototype.destroy.call(this); + }; + + Node.prototype.load = function load (elements, pos) { + var this$1 = this; + + for (var i = 0; i < elements.length; i++) { + var srcElement = elements[i]; + var children = srcElement.children; + + var childNode = new _node_map__WEBPACK_IMPORTED_MODULE_4__["default"][srcElement.nodeType](srcElement, this$1.options); + + if (Object(_util__WEBPACK_IMPORTED_MODULE_8__["defined"])(pos)) { + this$1.insertAt(childNode, pos); + } else { + this$1.append(childNode); + } + + childNode.createDefinitions(); + + if (children && children.length > 0) { + childNode.load(children); + } + + var element = this$1.element; + if (element) { + childNode.attachTo(element, pos); + } + } + }; + + Node.prototype.root = function root () { + var root = this; + + while (root.parent) { + root = root.parent; + } + + return root; + }; + + Node.prototype.attachTo = function attachTo (domElement, pos) { + var container = document.createElement("div"); + Object(_utils_render_svg__WEBPACK_IMPORTED_MODULE_5__["default"])(container, + "" + + this.render() + + "" + ); + + var element = container.firstChild.firstChild; + if (element) { + if (Object(_util__WEBPACK_IMPORTED_MODULE_8__["defined"])(pos)) { + domElement.insertBefore(element, domElement.childNodes[pos] || null); + } else { + domElement.appendChild(element); + } + this.setElement(element); + } + }; + + Node.prototype.setElement = function setElement (element) { + if (this.element) { + this.element._kendoNode = null; + } + + this.element = element; + this.element._kendoNode = this; + + var nodes = this.childNodes; + for (var i = 0; i < nodes.length; i++) { + var childElement = element.childNodes[i]; + nodes[i].setElement(childElement); + } + }; + + Node.prototype.clear = function clear () { + this.clearDefinitions(); + + if (this.element) { + this.element.innerHTML = ""; + } + + var children = this.childNodes; + for (var i = 0; i < children.length; i++) { + children[i].destroy(); + } + + this.childNodes = []; + }; + + Node.prototype.removeSelf = function removeSelf () { + if (this.element) { + var parentNode = this.element.parentNode; + if (parentNode) { + parentNode.removeChild(this.element); + } + this.element = null; + } + + BaseNode.prototype.removeSelf.call(this); + }; + + Node.prototype.template = function template () { + return this.renderChildren(); + }; + + Node.prototype.render = function render () { + return this.template(); + }; + + Node.prototype.renderChildren = function renderChildren () { + var nodes = this.childNodes; + var output = ""; + + for (var i = 0; i < nodes.length; i++) { + output += nodes[i].render(); + } + + return output; + }; + + Node.prototype.optionsChange = function optionsChange (e) { + var field = e.field; + var value = e.value; + + if (field === "visible") { + this.css("display", value ? "" : _constants__WEBPACK_IMPORTED_MODULE_6__["NONE"]); + } else if (DefinitionMap[field] && isDefinition(field, value)) { + this.updateDefinition(field, value); + } else if (field === "opacity") { + this.attr("opacity", value); + } else if (field === "cursor") { + this.css("cursor", value); + } else if (field === "id") { + if (value) { + this.attr("id", value); + } else { + this.removeAttr("id"); + } + } + + BaseNode.prototype.optionsChange.call(this, e); + }; + + Node.prototype.attr = function attr (name, value) { + if (this.element) { + this.element.setAttribute(name, value); + } + }; + + Node.prototype.allAttr = function allAttr (attrs) { + var this$1 = this; + + for (var i = 0; i < attrs.length; i++) { + this$1.attr(attrs[i][0], attrs[i][1]); + } + }; + + Node.prototype.css = function css (name, value) { + if (this.element) { + this.element.style[name] = value; + } + }; + + Node.prototype.allCss = function allCss (styles) { + var this$1 = this; + + for (var i = 0; i < styles.length; i++) { + this$1.css(styles[i][0], styles[i][1]); + } + }; + + Node.prototype.removeAttr = function removeAttr (name) { + if (this.element) { + this.element.removeAttribute(name); + } + }; + + Node.prototype.mapTransform = function mapTransform (transform) { + var attrs = []; + if (transform) { + attrs.push([ + TRANSFORM, + "matrix(" + transform.matrix().toString(6) + ")" + ]); + } + + return attrs; + }; + + Node.prototype.renderTransform = function renderTransform () { + return Object(_utils_render_all_attributes__WEBPACK_IMPORTED_MODULE_1__["default"])( + this.mapTransform(this.srcElement.transform()) + ); + }; + + Node.prototype.transformChange = function transformChange (value) { + if (value) { + this.allAttr(this.mapTransform(value)); + } else { + this.removeAttr(TRANSFORM); + } + }; + + Node.prototype.mapStyle = function mapStyle () { + var options = this.srcElement.options; + var style = [ [ "cursor", options.cursor ] ]; + + if (options.visible === false) { + style.push([ "display", _constants__WEBPACK_IMPORTED_MODULE_6__["NONE"] ]); + } + + return style; + }; + + Node.prototype.renderStyle = function renderStyle$1 () { + return Object(_utils_render_attribute__WEBPACK_IMPORTED_MODULE_2__["default"])("style", Object(_utils_render_style__WEBPACK_IMPORTED_MODULE_3__["default"])(this.mapStyle(true))); + }; + + Node.prototype.renderOpacity = function renderOpacity () { + return Object(_utils_render_attribute__WEBPACK_IMPORTED_MODULE_2__["default"])("opacity", this.srcElement.options.opacity); + }; + + Node.prototype.renderId = function renderId () { + return Object(_utils_render_attribute__WEBPACK_IMPORTED_MODULE_2__["default"])("id", this.srcElement.options.id); + }; + + Node.prototype.createDefinitions = function createDefinitions () { + var srcElement = this.srcElement; + var definitions = this.definitions; + if (srcElement) { + var options = srcElement.options; + var hasDefinitions; + + for (var field in DefinitionMap) { + var definition = options.get(field); + if (definition && isDefinition(field, definition)) { + definitions[field] = definition; + hasDefinitions = true; + } + } + if (hasDefinitions) { + this.definitionChange({ + action: "add", + definitions: definitions + }); + } + } + }; + + Node.prototype.definitionChange = function definitionChange (e) { + if (this.parent) { + this.parent.definitionChange(e); + } + }; + + Node.prototype.updateDefinition = function updateDefinition (type, value) { + var definitions = this.definitions; + var current = definitions[type]; + var attr = DefinitionMap[type]; + var definition = {}; + if (current) { + definition[type] = current; + this.definitionChange({ + action: "remove", + definitions: definition + }); + delete definitions[type]; + } + + if (!value) { + if (current) { + this.removeAttr(attr); + } + } else { + definition[type] = value; + this.definitionChange({ + action: "add", + definitions: definition + }); + definitions[type] = value; + this.attr(attr, this.refUrl(value.id)); + } + }; + + Node.prototype.clearDefinitions = function clearDefinitions () { + var definitions = this.definitions; + + this.definitionChange({ + action: "remove", + definitions: definitions + }); + this.definitions = {}; + }; + + Node.prototype.renderDefinitions = function renderDefinitions () { + return Object(_utils_render_all_attributes__WEBPACK_IMPORTED_MODULE_1__["default"])(this.mapDefinitions()); + }; + + Node.prototype.mapDefinitions = function mapDefinitions () { + var this$1 = this; + + var definitions = this.definitions; + var attrs = []; + + for (var field in definitions) { + attrs.push([ DefinitionMap[field], this$1.refUrl(definitions[field].id) ]); + } + + return attrs; + }; + + Node.prototype.refUrl = function refUrl (id) { + var skipBaseHref = (this.options || {}).skipBaseHref; + var baseHref = this.baseUrl().replace(/'/g, "\\'"); + var base = skipBaseHref ? '' : baseHref; + return ("url(" + base + "#" + id + ")"); + }; + + Node.prototype.baseUrl = function baseUrl$1 () { + return baseUrl(); + }; + + return Node; +}(_core_base_node__WEBPACK_IMPORTED_MODULE_0__["default"])); + + __webpack_exports__["default"] = (Node); + + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/svg/path-node.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _node__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/svg/node.js"); + var _util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/util.js"); + var _core_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/core/constants.js"); + var _constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/svg/constants.js"); + var _utils_render_all_attributes__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/svg/utils/render-all-attributes.js"); + var _utils_render_attribute__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/svg/utils/render-attribute.js"); + var _node_map__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/svg/node-map.js"); + + + + + + + + +var ATTRIBUTE_MAP = { + "fill.opacity": "fill-opacity", + "stroke.color": "stroke", + "stroke.width": "stroke-width", + "stroke.opacity": "stroke-opacity" +}; +var SPACE = " "; + +var PathNode = (function (Node) { + function PathNode () { + Node.apply(this, arguments); + } + + if ( Node ) PathNode.__proto__ = Node; + PathNode.prototype = Object.create( Node && Node.prototype ); + PathNode.prototype.constructor = PathNode; + + PathNode.prototype.geometryChange = function geometryChange () { + this.attr("d", this.renderData()); + this.invalidate(); + }; + + PathNode.prototype.optionsChange = function optionsChange (e) { + switch (e.field) { + case "fill": + if (e.value) { + this.allAttr(this.mapFill(e.value)); + } else { + this.removeAttr("fill"); + } + break; + + case "fill.color": + this.allAttr(this.mapFill({ color: e.value })); + break; + + case "stroke": + if (e.value) { + this.allAttr(this.mapStroke(e.value)); + } else { + this.removeAttr("stroke"); + } + break; + + case "transform": + this.transformChange(e.value); + break; + + default: + var name = ATTRIBUTE_MAP[e.field]; + if (name) { + this.attr(name, e.value); + } + break; + } + + Node.prototype.optionsChange.call(this, e); + }; + + PathNode.prototype.content = function content () { + if (this.element) { + this.element.textContent = this.srcElement.content(); + } + }; + + PathNode.prototype.renderData = function renderData () { + return this.printPath(this.srcElement); + }; + + PathNode.prototype.printPath = function printPath (path) { + var this$1 = this; + + var segments = path.segments; + var length = segments.length; + if (length > 0) { + var parts = []; + var output, currentType; + + for (var i = 1; i < length; i++) { + var segmentType = this$1.segmentType(segments[i - 1], segments[i]); + if (segmentType !== currentType) { + currentType = segmentType; + parts.push(segmentType); + } + + if (segmentType === "L") { + parts.push(this$1.printPoints(segments[i].anchor())); + } else { + parts.push(this$1.printPoints(segments[i - 1].controlOut(), segments[i].controlIn(), segments[i].anchor())); + } + } + + output = "M" + this.printPoints(segments[0].anchor()) + SPACE + parts.join(SPACE); + if (path.options.closed) { + output += "Z"; + } + + return output; + } + }; + + PathNode.prototype.printPoints = function printPoints () { + var points = arguments; + var length = points.length; + var result = []; + + for (var i = 0; i < length; i++) { + result.push(points[i].toString(3)); + } + + return result.join(" "); + }; + + PathNode.prototype.segmentType = function segmentType (segmentStart, segmentEnd) { + return segmentStart.controlOut() && segmentEnd.controlIn() ? "C" : "L"; + }; + + PathNode.prototype.mapStroke = function mapStroke (stroke) { + var attrs = []; + + if (stroke && !Object(_util__WEBPACK_IMPORTED_MODULE_1__["isTransparent"])(stroke.color)) { + attrs.push([ "stroke", stroke.color ]); + attrs.push([ "stroke-width", stroke.width ]); + attrs.push([ "stroke-linecap", this.renderLinecap(stroke) ]); + attrs.push([ "stroke-linejoin", stroke.lineJoin ]); + + if (Object(_util__WEBPACK_IMPORTED_MODULE_1__["defined"])(stroke.opacity)) { + attrs.push([ "stroke-opacity", stroke.opacity ]); + } + + if (Object(_util__WEBPACK_IMPORTED_MODULE_1__["defined"])(stroke.dashType)) { + attrs.push([ "stroke-dasharray", this.renderDashType(stroke) ]); + } + } else { + attrs.push([ "stroke", _constants__WEBPACK_IMPORTED_MODULE_3__["NONE"] ]); + } + + return attrs; + }; + + PathNode.prototype.renderStroke = function renderStroke () { + return Object(_utils_render_all_attributes__WEBPACK_IMPORTED_MODULE_4__["default"])( + this.mapStroke(this.srcElement.options.stroke) + ); + }; + + PathNode.prototype.renderDashType = function renderDashType (stroke) { + var dashType = stroke.dashType; + var width = stroke.width; if ( width === void 0 ) width = 1; + + if (dashType && dashType !== _core_constants__WEBPACK_IMPORTED_MODULE_2__["SOLID"]) { + var dashArray = _core_constants__WEBPACK_IMPORTED_MODULE_2__["DASH_ARRAYS"][dashType.toLowerCase()]; + var result = []; + + for (var i = 0; i < dashArray.length; i++) { + result.push(dashArray[i] * width); + } + + return result.join(" "); + } + }; + + PathNode.prototype.renderLinecap = function renderLinecap (stroke) { + var dashType = stroke.dashType; + var lineCap = stroke.lineCap; + + return (dashType && dashType !== "solid") ? _core_constants__WEBPACK_IMPORTED_MODULE_2__["BUTT"] : lineCap; + }; + + PathNode.prototype.mapFill = function mapFill (fill) { + var attrs = []; + if (!(fill && fill.nodeType === "Gradient")) { + if (fill && !Object(_util__WEBPACK_IMPORTED_MODULE_1__["isTransparent"])(fill.color)) { + attrs.push([ "fill", fill.color ]); + + if (Object(_util__WEBPACK_IMPORTED_MODULE_1__["defined"])(fill.opacity)) { + attrs.push([ "fill-opacity", fill.opacity ]); + } + } else { + attrs.push([ "fill", _constants__WEBPACK_IMPORTED_MODULE_3__["NONE"] ]); + } + } + + return attrs; + }; + + PathNode.prototype.renderFill = function renderFill () { + return Object(_utils_render_all_attributes__WEBPACK_IMPORTED_MODULE_4__["default"])( + this.mapFill(this.srcElement.options.fill) + ); + }; + + PathNode.prototype.template = function template () { + return ""; + }; + + return PathNode; +}(_node__WEBPACK_IMPORTED_MODULE_0__["default"])); + +_node_map__WEBPACK_IMPORTED_MODULE_6__["default"].Path = PathNode; + + __webpack_exports__["default"] = (PathNode); + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/svg/radial-gradient-node.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _gradient_node__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/svg/gradient-node.js"); + + +var RadialGradientNode = (function (GradientNode) { + function RadialGradientNode () { + GradientNode.apply(this, arguments); + } + + if ( GradientNode ) RadialGradientNode.__proto__ = GradientNode; + RadialGradientNode.prototype = Object.create( GradientNode && GradientNode.prototype ); + RadialGradientNode.prototype.constructor = RadialGradientNode; + + RadialGradientNode.prototype.template = function template () { + return ("" + (this.renderChildren()) + ""); + }; + + RadialGradientNode.prototype.mapCoordinates = function mapCoordinates () { + var srcElement = this.srcElement; + var center = srcElement.center(); + var radius = srcElement.radius(); + var attrs = [ + [ "cx", center.x ], + [ "cy", center.y ], + [ "r", radius ], + this.mapSpace() + ]; + return attrs; + }; + + return RadialGradientNode; +}(_gradient_node__WEBPACK_IMPORTED_MODULE_0__["default"])); + + __webpack_exports__["default"] = (RadialGradientNode); + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/svg/rect-node.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _path_node__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/svg/path-node.js"); + var _node_map__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/svg/node-map.js"); + + + +var RectNode = (function (PathNode) { + function RectNode () { + PathNode.apply(this, arguments); + } + + if ( PathNode ) RectNode.__proto__ = PathNode; + RectNode.prototype = Object.create( PathNode && PathNode.prototype ); + RectNode.prototype.constructor = RectNode; + + RectNode.prototype.geometryChange = function geometryChange () { + var geometry = this.srcElement.geometry(); + this.attr("x", geometry.origin.x); + this.attr("y", geometry.origin.y); + this.attr("width", geometry.size.width); + this.attr("height", geometry.size.height); + this.invalidate(); + }; + + RectNode.prototype.size = function size () { + return this.srcElement.geometry().size; + }; + + RectNode.prototype.origin = function origin () { + return this.srcElement.geometry().origin; + }; + + RectNode.prototype.template = function template () { + return ""; + }; + + return RectNode; +}(_path_node__WEBPACK_IMPORTED_MODULE_0__["default"])); + +_node_map__WEBPACK_IMPORTED_MODULE_1__["default"].Rect = RectNode; + + __webpack_exports__["default"] = (RectNode); + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/svg/root-node.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _core_base_node__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/core/base-node.js"); + var _node__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/svg/node.js"); + var _definition_node__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/svg/definition-node.js"); + + + + +var RootNode = (function (Node) { + function RootNode(options) { + Node.call(this); + this.options = options; + this.defs = new _definition_node__WEBPACK_IMPORTED_MODULE_2__["default"](); + } + + if ( Node ) RootNode.__proto__ = Node; + RootNode.prototype = Object.create( Node && Node.prototype ); + RootNode.prototype.constructor = RootNode; + + RootNode.prototype.attachTo = function attachTo (domElement) { + this.element = domElement; + this.defs.attachTo(domElement.firstElementChild); + }; + + RootNode.prototype.clear = function clear () { + _core_base_node__WEBPACK_IMPORTED_MODULE_0__["default"].prototype.clear.call(this); + }; + + RootNode.prototype.template = function template () { + return this.defs.render() + this.renderChildren(); + }; + + RootNode.prototype.definitionChange = function definitionChange (e) { + this.defs.definitionChange(e); + }; + + return RootNode; +}(_node__WEBPACK_IMPORTED_MODULE_1__["default"])); + + __webpack_exports__["default"] = (RootNode); + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/svg/surface.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _core_surface__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/core/surface.js"); + var _core_surface_factory__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/core/surface-factory.js"); + var _root_node__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/svg/root-node.js"); + var _shapes_group__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/shapes/group.js"); + var _geometry_transform__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/geometry/transform.js"); + var _utils_render_svg__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/svg/utils/render-svg.js"); + var _constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/svg/constants.js"); + var _util__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/util.js"); + + + + + + + + + +var RTL = 'rtl'; + +function alignToScreen(element) { + var ctm; + + try { + ctm = element.getScreenCTM ? element.getScreenCTM() : null; + } catch (e) { } // eslint-disable-line no-empty + + if (ctm) { + var left = - ctm.e % 1; + var top = - ctm.f % 1; + var style = element.style; + + if (left !== 0 || top !== 0) { + style.left = left + "px"; + style.top = top + "px"; + } + } +} + +var Surface = (function (BaseSurface) { + function Surface(element, options) { + BaseSurface.call(this, element, options); + + this._root = new _root_node__WEBPACK_IMPORTED_MODULE_2__["default"](Object.assign({ + rtl: Object(_util__WEBPACK_IMPORTED_MODULE_7__["elementStyles"])(element, 'direction').direction === RTL + }, this.options)); + + Object(_utils_render_svg__WEBPACK_IMPORTED_MODULE_5__["default"])(this.element, this._template()); + + this._rootElement = this.element.firstElementChild; + + alignToScreen(this._rootElement); + + this._root.attachTo(this._rootElement); + + Object(_util__WEBPACK_IMPORTED_MODULE_7__["bindEvents"])(this.element, { + click: this._click, + mouseover: this._mouseenter, + mouseout: this._mouseleave, + mousemove: this._mousemove + }); + + this.resize(); + } + + if ( BaseSurface ) Surface.__proto__ = BaseSurface; + Surface.prototype = Object.create( BaseSurface && BaseSurface.prototype ); + Surface.prototype.constructor = Surface; + + Surface.prototype.destroy = function destroy () { + if (this._root) { + this._root.destroy(); + this._root = null; + this._rootElement = null; + Object(_util__WEBPACK_IMPORTED_MODULE_7__["unbindEvents"])(this.element, { + click: this._click, + mouseover: this._mouseenter, + mouseout: this._mouseleave, + mousemove: this._mousemove + }); + } + + BaseSurface.prototype.destroy.call(this); + }; + + Surface.prototype.translate = function translate (offset) { + var viewBox = (Math.round(offset.x)) + " " + (Math.round(offset.y)) + " " + (this._size.width) + " " + (this._size.height); + + this._offset = offset; + this._rootElement.setAttribute("viewBox", viewBox); + }; + + Surface.prototype.draw = function draw (element) { + BaseSurface.prototype.draw.call(this, element); + this._root.load([ element ]); + }; + + Surface.prototype.clear = function clear () { + BaseSurface.prototype.clear.call(this); + this._root.clear(); + }; + + Surface.prototype.svg = function svg () { + return "" + this._template(); + }; + + Surface.prototype.exportVisual = function exportVisual () { + var ref = this; + var visual = ref._visual; + var offset = ref._offset; + + if (offset) { + var wrap = new _shapes_group__WEBPACK_IMPORTED_MODULE_3__["default"](); + wrap.children.push(visual); + + wrap.transform( + Object(_geometry_transform__WEBPACK_IMPORTED_MODULE_4__["default"])().translate(-offset.x, -offset.y) + ); + + visual = wrap; + } + + return visual; + }; + + Surface.prototype._resize = function _resize () { + if (this._offset) { + this.translate(this._offset); + } + }; + + Surface.prototype._template = function _template () { + return ("" + (this._root.render()) + ""); + }; + + return Surface; +}(_core_surface__WEBPACK_IMPORTED_MODULE_0__["default"])); + +Surface.prototype.type = "svg"; + +if (typeof document !== "undefined" && document.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure", "1.1")) { + _core_surface__WEBPACK_IMPORTED_MODULE_0__["default"].support.svg = true; + _core_surface_factory__WEBPACK_IMPORTED_MODULE_1__["default"].current.register("svg", Surface, 10); +} + + __webpack_exports__["default"] = (Surface); + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/svg/text-node.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _path_node__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/svg/path-node.js"); + var _utils_render_style__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/svg/utils/render-style.js"); + var _utils_render_attribute__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/svg/utils/render-attribute.js"); + var _node_map__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/svg/node-map.js"); + var _common__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/common.js"); + var _text_metrics__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/text-metrics.js"); + + + + + + + +var ENTITY_REGEX = /&(?:[a-zA-Z]+|#\d+);/g; + +function decodeEntities(text) { + if (!text || typeof text !== "string" || !ENTITY_REGEX.test(text)) { + return text; + } + + var element = decodeEntities._element; + ENTITY_REGEX.lastIndex = 0; + + return text.replace(ENTITY_REGEX, function (match) { + element.innerHTML = match; + + return element.textContent || element.innerText; + }); +} + +if (typeof document !== "undefined") { + decodeEntities._element = document.createElement("span"); +} + +var TextNode = (function (PathNode) { + function TextNode () { + PathNode.apply(this, arguments); + } + + if ( PathNode ) TextNode.__proto__ = PathNode; + TextNode.prototype = Object.create( PathNode && PathNode.prototype ); + TextNode.prototype.constructor = TextNode; + + TextNode.prototype.geometryChange = function geometryChange () { + var pos = this.pos(); + this.attr("x", pos.x); + this.attr("y", pos.y); + this.invalidate(); + }; + + TextNode.prototype.optionsChange = function optionsChange (e) { + if (e.field === "font") { + this.attr("style", Object(_utils_render_style__WEBPACK_IMPORTED_MODULE_1__["default"])(this.mapStyle())); + this.geometryChange(); + } else if (e.field === "content") { + PathNode.prototype.content.call(this, this.srcElement.content()); + } + + PathNode.prototype.optionsChange.call(this, e); + }; + + TextNode.prototype.mapStyle = function mapStyle (encode) { + var style = PathNode.prototype.mapStyle.call(this, encode); + var font = this.srcElement.options.font; + + if (encode) { + font = Object(_common__WEBPACK_IMPORTED_MODULE_4__["htmlEncode"])(font); + } + + style.push([ "font", font ], [ "white-space", "pre" ]); + + return style; + }; + + TextNode.prototype.pos = function pos () { + var pos = this.srcElement.position(); + var size = this.srcElement.measure(); + return pos.clone().setY(pos.y + size.baseline); + }; + + TextNode.prototype.renderContent = function renderContent () { + var content = this.srcElement.content(); + content = decodeEntities(content); + content = Object(_common__WEBPACK_IMPORTED_MODULE_4__["htmlEncode"])(content); + + return Object(_text_metrics__WEBPACK_IMPORTED_MODULE_5__["normalizeText"])(content); + }; + + TextNode.prototype.renderTextAnchor = function renderTextAnchor () { + var anchor; + + if ((this.options || {}).rtl && !(_common__WEBPACK_IMPORTED_MODULE_4__["support"].browser.msie || _common__WEBPACK_IMPORTED_MODULE_4__["support"].browser.edge)) { + anchor = 'end'; + } + + return Object(_utils_render_attribute__WEBPACK_IMPORTED_MODULE_2__["default"])("text-anchor", anchor); + }; + + TextNode.prototype.template = function template () { + return "" + (this.renderContent()) + ""; + }; + + return TextNode; +}(_path_node__WEBPACK_IMPORTED_MODULE_0__["default"])); + +_node_map__WEBPACK_IMPORTED_MODULE_3__["default"].Text = TextNode; + + __webpack_exports__["default"] = (TextNode); + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/svg/utils/render-all-attributes.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return renderAllAttr; }); + var _render_attribute__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/svg/utils/render-attribute.js"); + + +function renderAllAttr(attrs) { + var output = ""; + for (var i = 0; i < attrs.length; i++) { + output += Object(_render_attribute__WEBPACK_IMPORTED_MODULE_0__["default"])(attrs[i][0], attrs[i][1]); + } + + return output; +} + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/svg/utils/render-attribute.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return renderAttr; }); + var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/util.js"); + + +function renderAttr(name, value) { + return (Object(_util__WEBPACK_IMPORTED_MODULE_0__["defined"])(value) && value !== null) ? (" " + name + "=\"" + value + "\" ") : ""; +} + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/svg/utils/render-style.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return renderStyle; }); + var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/util.js"); + + +function renderStyle(attrs) { + var output = ""; + for (var i = 0; i < attrs.length; i++) { + var value = attrs[i][1]; + if (Object(_util__WEBPACK_IMPORTED_MODULE_0__["defined"])(value)) { + output += attrs[i][0] + ":" + value + ";"; + } + } + + if (output !== "") { + return output; + } +} + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/svg/utils/render-svg.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/svg/constants.js"); + + +var renderSVG = function(container, svg) { + container.innerHTML = svg; +}; + +if (typeof document !== "undefined") { + var testFragment = ""; + var testContainer = document.createElement("div"); + var hasParser = typeof DOMParser !== "undefined"; + + testContainer.innerHTML = testFragment; + + if (hasParser && testContainer.firstChild.namespaceURI !== _constants__WEBPACK_IMPORTED_MODULE_0__["SVG_NS"]) { + renderSVG = function(container, svg) { + var parser = new DOMParser(); + var chartDoc = parser.parseFromString(svg, "text/xml"); + var importedDoc = document.adoptNode(chartDoc.documentElement); + + container.innerHTML = ""; + container.appendChild(importedDoc); + }; + } +} + + __webpack_exports__["default"] = (renderSVG); + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/text-metrics.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _text_metrics_lru_cache__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/text-metrics/lru-cache.js"); + __webpack_require__.d(__webpack_exports__, "LRUCache", function() { return _text_metrics_lru_cache__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + + var _text_metrics_text_metrics__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/text-metrics/text-metrics.js"); + __webpack_require__.d(__webpack_exports__, "TextMetrics", function() { return _text_metrics_text_metrics__WEBPACK_IMPORTED_MODULE_1__["default"]; }); + + var _text_metrics_measure_text__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/text-metrics/measure-text.js"); + __webpack_require__.d(__webpack_exports__, "measureText", function() { return _text_metrics_measure_text__WEBPACK_IMPORTED_MODULE_2__["default"]; }); + + var _text_metrics_util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/text-metrics/util.js"); + __webpack_require__.d(__webpack_exports__, "objectKey", function() { return _text_metrics_util__WEBPACK_IMPORTED_MODULE_3__["objectKey"]; }); + + __webpack_require__.d(__webpack_exports__, "hashKey", function() { return _text_metrics_util__WEBPACK_IMPORTED_MODULE_3__["hashKey"]; }); + + __webpack_require__.d(__webpack_exports__, "normalizeText", function() { return _text_metrics_util__WEBPACK_IMPORTED_MODULE_3__["normalizeText"]; }); + + + + + + + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/text-metrics/lru-cache.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/common.js"); + + +var LRUCache = (function (Class) { + function LRUCache(size) { + Class.call(this); + + this._size = size; + this._length = 0; + this._map = {}; + } + + if ( Class ) LRUCache.__proto__ = Class; + LRUCache.prototype = Object.create( Class && Class.prototype ); + LRUCache.prototype.constructor = LRUCache; + + LRUCache.prototype.put = function put (key, value) { + var map = this._map; + var entry = { key: key, value: value }; + + map[key] = entry; + + if (!this._head) { + this._head = this._tail = entry; + } else { + this._tail.newer = entry; + entry.older = this._tail; + this._tail = entry; + } + + if (this._length >= this._size) { + map[this._head.key] = null; + this._head = this._head.newer; + this._head.older = null; + } else { + this._length++; + } + }; + + LRUCache.prototype.get = function get (key) { + var entry = this._map[key]; + + if (entry) { + if (entry === this._head && entry !== this._tail) { + this._head = entry.newer; + this._head.older = null; + } + + if (entry !== this._tail) { + if (entry.older) { + entry.older.newer = entry.newer; + entry.newer.older = entry.older; + } + + entry.older = this._tail; + entry.newer = null; + + this._tail.newer = entry; + this._tail = entry; + } + + return entry.value; + } + }; + + return LRUCache; +}(_common__WEBPACK_IMPORTED_MODULE_0__["Class"])); + + __webpack_exports__["default"] = (LRUCache); + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/text-metrics/measure-text.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return measureText; }); + var _text_metrics__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/text-metrics/text-metrics.js"); + + +function measureText(text, style, measureBox) { + return _text_metrics__WEBPACK_IMPORTED_MODULE_0__["default"].current.measure(text, style, measureBox); +} + + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/text-metrics/text-metrics.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _lru_cache__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/text-metrics/lru-cache.js"); + var _common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/common.js"); + var _util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/text-metrics/util.js"); + + + + +function zeroSize() { + return { width: 0, height: 0, baseline: 0 }; +} + +var DEFAULT_OPTIONS = { + baselineMarkerSize: 1 +}; + +var defaultMeasureBox; + +if (typeof document !== "undefined") { + defaultMeasureBox = document.createElement("div"); + defaultMeasureBox.style.cssText = "position: absolute !important; top: -4000px !important; width: auto !important; height: auto !important;" + + "padding: 0 !important; margin: 0 !important; border: 0 !important;" + + "line-height: normal !important; visibility: hidden !important; white-space: pre!important;"; +} + +var TextMetrics = (function (Class) { + function TextMetrics(options) { + Class.call(this); + + this._cache = new _lru_cache__WEBPACK_IMPORTED_MODULE_0__["default"](1000); + this.options = Object.assign({}, DEFAULT_OPTIONS, options); + } + + if ( Class ) TextMetrics.__proto__ = Class; + TextMetrics.prototype = Object.create( Class && Class.prototype ); + TextMetrics.prototype.constructor = TextMetrics; + + TextMetrics.prototype.measure = function measure (text, style, options) { + if ( options === void 0 ) options = {}; + + if (!text) { + return zeroSize(); + } + + var styleKey = Object(_util__WEBPACK_IMPORTED_MODULE_2__["objectKey"])(style); + var cacheKey = Object(_util__WEBPACK_IMPORTED_MODULE_2__["hashKey"])(text + styleKey); + var cachedResult = this._cache.get(cacheKey); + + if (cachedResult) { + return cachedResult; + } + + var size = zeroSize(); + var measureBox = options.box || defaultMeasureBox; + var baselineMarker = this._baselineMarker().cloneNode(false); + + for (var key in style) { + var value = style[key]; + if (typeof value !== "undefined") { + measureBox.style[key] = value; + } + } + + var textStr = options.normalizeText !== false ? Object(_util__WEBPACK_IMPORTED_MODULE_2__["normalizeText"])(text) : String(text); + + measureBox.textContent = textStr; + measureBox.appendChild(baselineMarker); + document.body.appendChild(measureBox); + + if (textStr.length) { + size.width = measureBox.offsetWidth - this.options.baselineMarkerSize; + size.height = measureBox.offsetHeight; + size.baseline = baselineMarker.offsetTop + this.options.baselineMarkerSize; + } + + if (size.width > 0 && size.height > 0) { + this._cache.put(cacheKey, size); + } + + measureBox.parentNode.removeChild(measureBox); + + return size; + }; + + TextMetrics.prototype._baselineMarker = function _baselineMarker () { + var marker = document.createElement("div"); + marker.style.cssText = "display: inline-block; vertical-align: baseline;width: " + + this.options.baselineMarkerSize + "px; height: " + this.options.baselineMarkerSize + "px;overflow: hidden;"; + + return marker; + }; + + return TextMetrics; +}(_common__WEBPACK_IMPORTED_MODULE_1__["Class"])); + +TextMetrics.current = new TextMetrics(); + + __webpack_exports__["default"] = (TextMetrics); + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/text-metrics/util.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "objectKey", function() { return objectKey; }); + __webpack_require__.d(__webpack_exports__, "hashKey", function() { return hashKey; }); + __webpack_require__.d(__webpack_exports__, "normalizeText", function() { return normalizeText; }); +var REPLACE_REGEX = /\r?\n|\r|\t/g; +var SPACE = ' '; + +function normalizeText(text) { + return String(text).replace(REPLACE_REGEX, SPACE); +} + +function objectKey(object) { + var parts = []; + for (var key in object) { + parts.push(key + object[key]); + } + + return parts.sort().join(""); +} + +// Computes FNV-1 hash +// See http://en.wikipedia.org/wiki/Fowler%E2%80%93Noll%E2%80%93Vo_hash_function +function hashKey(str) { + // 32-bit FNV-1 offset basis + // See http://isthe.com/chongo/tech/comp/fnv/#FNV-param + var hash = 0x811C9DC5; + + for (var i = 0; i < str.length; ++i) { + hash += (hash << 1) + (hash << 4) + (hash << 7) + (hash << 8) + (hash << 24); + hash ^= str.charCodeAt(i); + } + + return hash >>> 0; +} + + + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/util.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _util_append__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/util/append.js"); + __webpack_require__.d(__webpack_exports__, "append", function() { return _util_append__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + + var _util_arabic_to_roman__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/util/arabic-to-roman.js"); + __webpack_require__.d(__webpack_exports__, "arabicToRoman", function() { return _util_arabic_to_roman__WEBPACK_IMPORTED_MODULE_1__["default"]; }); + + var _util_create_promise__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/util/create-promise.js"); + __webpack_require__.d(__webpack_exports__, "createPromise", function() { return _util_create_promise__WEBPACK_IMPORTED_MODULE_2__["default"]; }); + + var _util_defined__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/util/defined.js"); + __webpack_require__.d(__webpack_exports__, "defined", function() { return _util_defined__WEBPACK_IMPORTED_MODULE_3__["default"]; }); + + var _util_definition_id__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/util/definition-id.js"); + __webpack_require__.d(__webpack_exports__, "definitionId", function() { return _util_definition_id__WEBPACK_IMPORTED_MODULE_4__["default"]; }); + + var _util_deg__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/util/deg.js"); + __webpack_require__.d(__webpack_exports__, "deg", function() { return _util_deg__WEBPACK_IMPORTED_MODULE_5__["default"]; }); + + var _util_encode_base64__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/util/encode-base64.js"); + __webpack_require__.d(__webpack_exports__, "encodeBase64", function() { return _util_encode_base64__WEBPACK_IMPORTED_MODULE_6__["default"]; }); + + var _util_event_coordinates__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/util/event-coordinates.js"); + __webpack_require__.d(__webpack_exports__, "eventCoordinates", function() { return _util_event_coordinates__WEBPACK_IMPORTED_MODULE_7__["default"]; }); + + var _util_event_element__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/util/event-element.js"); + __webpack_require__.d(__webpack_exports__, "eventElement", function() { return _util_event_element__WEBPACK_IMPORTED_MODULE_8__["default"]; }); + + var _util_is_transparent__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/util/is-transparent.js"); + __webpack_require__.d(__webpack_exports__, "isTransparent", function() { return _util_is_transparent__WEBPACK_IMPORTED_MODULE_9__["default"]; }); + + var _util_last__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/util/last.js"); + __webpack_require__.d(__webpack_exports__, "last", function() { return _util_last__WEBPACK_IMPORTED_MODULE_10__["default"]; }); + + var _util_limit_value__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/util/limit-value.js"); + __webpack_require__.d(__webpack_exports__, "limitValue", function() { return _util_limit_value__WEBPACK_IMPORTED_MODULE_11__["default"]; }); + + var _util_merge_sort__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/util/merge-sort.js"); + __webpack_require__.d(__webpack_exports__, "mergeSort", function() { return _util_merge_sort__WEBPACK_IMPORTED_MODULE_12__["default"]; }); + + var _util_promise_all__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/util/promise-all.js"); + __webpack_require__.d(__webpack_exports__, "promiseAll", function() { return _util_promise_all__WEBPACK_IMPORTED_MODULE_13__["default"]; }); + + var _util_rad__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/util/rad.js"); + __webpack_require__.d(__webpack_exports__, "rad", function() { return _util_rad__WEBPACK_IMPORTED_MODULE_14__["default"]; }); + + var _util_round__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/util/round.js"); + __webpack_require__.d(__webpack_exports__, "round", function() { return _util_round__WEBPACK_IMPORTED_MODULE_15__["default"]; }); + + var _util_value_or_default__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/util/value-or-default.js"); + __webpack_require__.d(__webpack_exports__, "valueOrDefault", function() { return _util_value_or_default__WEBPACK_IMPORTED_MODULE_16__["default"]; }); + + var _util_bind_events__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/util/bind-events.js"); + __webpack_require__.d(__webpack_exports__, "bindEvents", function() { return _util_bind_events__WEBPACK_IMPORTED_MODULE_17__["default"]; }); + + var _util_element_offset__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/util/element-offset.js"); + __webpack_require__.d(__webpack_exports__, "elementOffset", function() { return _util_element_offset__WEBPACK_IMPORTED_MODULE_18__["default"]; }); + + var _util_element_size__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/util/element-size.js"); + __webpack_require__.d(__webpack_exports__, "elementSize", function() { return _util_element_size__WEBPACK_IMPORTED_MODULE_19__["default"]; }); + + var _util_element_styles__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/util/element-styles.js"); + __webpack_require__.d(__webpack_exports__, "elementStyles", function() { return _util_element_styles__WEBPACK_IMPORTED_MODULE_20__["default"]; }); + + var _util_unbind_events__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/util/unbind-events.js"); + __webpack_require__.d(__webpack_exports__, "unbindEvents", function() { return _util_unbind_events__WEBPACK_IMPORTED_MODULE_21__["default"]; }); + + var _util_constants__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/util/constants.js"); + __webpack_require__.d(__webpack_exports__, "DEG_TO_RAD", function() { return _util_constants__WEBPACK_IMPORTED_MODULE_22__["DEG_TO_RAD"]; }); + + __webpack_require__.d(__webpack_exports__, "MAX_NUM", function() { return _util_constants__WEBPACK_IMPORTED_MODULE_22__["MAX_NUM"]; }); + + __webpack_require__.d(__webpack_exports__, "MIN_NUM", function() { return _util_constants__WEBPACK_IMPORTED_MODULE_22__["MIN_NUM"]; }); + + var _text_metrics__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/text-metrics.js"); + __webpack_require__.d(__webpack_exports__, "LRUCache", function() { return _text_metrics__WEBPACK_IMPORTED_MODULE_23__["LRUCache"]; }); + + __webpack_require__.d(__webpack_exports__, "TextMetrics", function() { return _text_metrics__WEBPACK_IMPORTED_MODULE_23__["TextMetrics"]; }); + + __webpack_require__.d(__webpack_exports__, "measureText", function() { return _text_metrics__WEBPACK_IMPORTED_MODULE_23__["measureText"]; }); + + __webpack_require__.d(__webpack_exports__, "objectKey", function() { return _text_metrics__WEBPACK_IMPORTED_MODULE_23__["objectKey"]; }); + + __webpack_require__.d(__webpack_exports__, "hashKey", function() { return _text_metrics__WEBPACK_IMPORTED_MODULE_23__["hashKey"]; }); + + __webpack_require__.d(__webpack_exports__, "normalizeText", function() { return _text_metrics__WEBPACK_IMPORTED_MODULE_23__["normalizeText"]; }); + + + + + + + + + + + + + + + + + + + + + + + + + + + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/util/append.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return append; }); +function append(first, second) { + first.push.apply(first, second); + return first; +} + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/util/arabic-to-roman.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return arabicToRoman; }); + + +var literals = { + 1 : "i", 10 : "x", 100 : "c", + 2 : "ii", 20 : "xx", 200 : "cc", + 3 : "iii", 30 : "xxx", 300 : "ccc", + 4 : "iv", 40 : "xl", 400 : "cd", + 5 : "v", 50 : "l", 500 : "d", + 6 : "vi", 60 : "lx", 600 : "dc", + 7 : "vii", 70 : "lxx", 700 : "dcc", + 8 : "viii", 80 : "lxxx", 800 : "dccc", + 9 : "ix", 90 : "xc", 900 : "cm", + 1000 : "m" +}; + +function arabicToRoman(n) { + var values = [ 1000, + 900 , 800, 700, 600, 500, 400, 300, 200, 100, + 90 , 80 , 70 , 60 , 50 , 40 , 30 , 20 , 10 , + 9 , 8 , 7 , 6 , 5 , 4 , 3 , 2 , 1 ]; + + var roman = ""; + while (n > 0) { + if (n < values[0]) { + values.shift(); + } else { + roman += literals[values[0]]; + n -= values[0]; + } + } + return roman; +} + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/util/bind-events.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return bindEvents; }); +function bindEvents(element, events) { + for (var eventName in events) { + var eventNames = eventName.trim().split(" "); + for (var idx = 0; idx < eventNames.length; idx++) { + element.addEventListener(eventNames[idx], events[eventName], false); + } + } +} + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/util/constants.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "DEG_TO_RAD", function() { return DEG_TO_RAD; }); + __webpack_require__.d(__webpack_exports__, "MAX_NUM", function() { return MAX_NUM; }); + __webpack_require__.d(__webpack_exports__, "MIN_NUM", function() { return MIN_NUM; }); +var DEG_TO_RAD = Math.PI / 180; +var MAX_NUM = Number.MAX_VALUE; +var MIN_NUM = -Number.MAX_VALUE; + + + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/util/create-promise.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return createPromise; }); +function createPromise() { + var resolveFn, rejectFn; + var promise = new Promise(function (resolve, reject) { + resolveFn = function (data) { + promise._state = "resolved"; + resolve(data); + return promise; + }; + rejectFn = function (data) { + promise._state = "rejected"; + reject(data); + + return promise; + }; + }); + promise._state = "pending"; + promise.resolve = resolveFn; + promise.reject = rejectFn; + promise.state = function () { return promise._state; }; + + return promise; +} + + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/util/defined.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return defined; }); +var UNDEFINED = "undefined"; + +function defined(value) { + return typeof value !== UNDEFINED; +} + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/util/definition-id.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return definitionId; }); +var defId = 1; + +function definitionId() { + return "kdef" + defId++; +} + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/util/deg.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return deg; }); + var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/util/constants.js"); + + +function deg(radians) { + return radians / _constants__WEBPACK_IMPORTED_MODULE_0__["DEG_TO_RAD"]; +} + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/util/element-offset.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return elementOffset; }); +function elementOffset(element) { + var box = element.getBoundingClientRect(); + + var documentElement = document.documentElement; + + return { + top: box.top + (window.pageYOffset || documentElement.scrollTop) - (documentElement.clientTop || 0), + left: box.left + (window.pageXOffset || documentElement.scrollLeft) - (documentElement.clientLeft || 0) + }; +} + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/util/element-size.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return elementSize; }); + var _element_styles__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/util/element-styles.js"); + var _defined__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/util/defined.js"); + + + +function getPixels(value) { + if (isNaN(value)) { + return value; + } + return value + "px"; +} + +function elementSize(element, size) { + if (size) { + var width = size.width; + var height = size.height; + + if (Object(_defined__WEBPACK_IMPORTED_MODULE_1__["default"])(width)) { + element.style.width = getPixels(width); + } + + if (Object(_defined__WEBPACK_IMPORTED_MODULE_1__["default"])(height)) { + element.style.height = getPixels(height); + } + + } else { + var size$1 = Object(_element_styles__WEBPACK_IMPORTED_MODULE_0__["default"])(element, [ 'width', 'height' ]); + + return { + width: parseInt(size$1.width, 10), + height: parseInt(size$1.height, 10) + }; + } +} + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/util/element-styles.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return elementStyles; }); +function elementStyles(element, styles) { + var result = {}; + var style = window.getComputedStyle(element) || {}; + var stylesArray = Array.isArray(styles) ? styles : [ styles ]; + + for (var idx = 0; idx < stylesArray.length; idx++) { + var field = stylesArray[idx]; + result[field] = style[field]; + } + + return result; +} + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/util/encode-base64.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return encodeBase64; }); + var _encode_utf__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/util/encode-utf.js"); + + +var KEY_STR = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; + +function encodeBase64(input) { + var output = ""; + var i = 0; + + var utfInput = Object(_encode_utf__WEBPACK_IMPORTED_MODULE_0__["encodeUTF8"])(input); + + while (i < utfInput.length) { + var chr1 = utfInput.charCodeAt(i++); + var chr2 = utfInput.charCodeAt(i++); + var chr3 = utfInput.charCodeAt(i++); + + var enc1 = chr1 >> 2; + var enc2 = ((chr1 & 3) << 4) | (chr2 >> 4); + var enc3 = ((chr2 & 15) << 2) | (chr3 >> 6); + var enc4 = chr3 & 63; + + if (isNaN(chr2)) { + enc3 = enc4 = 64; + } else if (isNaN(chr3)) { + enc4 = 64; + } + + output = output + + KEY_STR.charAt(enc1) + KEY_STR.charAt(enc2) + + KEY_STR.charAt(enc3) + KEY_STR.charAt(enc4); + } + + return output; +} + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/util/encode-utf.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "BOM", function() { return BOM; }); + __webpack_require__.d(__webpack_exports__, "encodeUTF8", function() { return encodeUTF8; }); + __webpack_require__.d(__webpack_exports__, "encodeUTF16BE", function() { return encodeUTF16BE; }); +var fromCharCode = String.fromCharCode; + +var BOM = '\xfe\xff'; + +// Encodes a string as UTF-8 +function encodeUTF8(input) { + var output = ""; + + for (var i = 0; i < input.length; i++) { + var c = input.charCodeAt(i); + + if (c < 0x80) { + // One byte + output += fromCharCode(c); + } else if (c < 0x800) { + // Two bytes + output += fromCharCode(0xC0 | (c >>> 6)); + output += fromCharCode(0x80 | (c & 0x3f)); + } else if (c < 0x10000) { + // Three bytes + output += fromCharCode(0xE0 | (c >>> 12)); + output += fromCharCode(0x80 | (c >>> 6 & 0x3f)); + output += fromCharCode(0x80 | (c & 0x3f)); + } + } + + return output; +} + +function encodeUnit(codeUnit) { + return fromCharCode(codeUnit >> 8) + fromCharCode(codeUnit & 0x00ff); +} + +// Encodes a string as UTF-16 big-endian +function encodeUTF16BE(input) { + var output = ''; + + for (var i = 0; i < input.length; i++) { + var c = input.charCodeAt(i); + + if (c < 0xFFFF) { + output += encodeUnit(c); + } else { + var lead = ((c - 0x10000) >> 10) + 0xD800; + var trail = ((c - 0x10000) & 0x3FF) + 0xDC00; + output += encodeUnit(lead); + output += encodeUnit(trail); + } + } + + return output; +} + + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/util/event-coordinates.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return eventCoordinates; }); + var _defined__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/util/defined.js"); + + +function eventCoordinates(e) { + if (Object(_defined__WEBPACK_IMPORTED_MODULE_0__["default"])((e.x || {}).location)) { + return { + x: e.x.location, + y: e.y.location + }; + } + + return { + x: e.pageX || e.clientX || 0, + y: e.pageY || e.clientY || 0 + }; +} + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/util/event-element.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return eventElement; }); +function eventElement(e) { + if ( e === void 0 ) e = {}; + + return e.touch ? e.touch.initialTouch : e.target; +} + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/util/is-transparent.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return isTransparent; }); + var _defined__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/util/defined.js"); + + +function isTransparent(color) { + return color === "" || color === null || color === "none" || color === "transparent" || !Object(_defined__WEBPACK_IMPORTED_MODULE_0__["default"])(color); +} + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/util/last.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return last; }); +function last(array) { + if (array) { + return array[array.length - 1]; + } +} + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/util/limit-value.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return limitValue; }); +function limitValue(value, min, max) { + return Math.max(Math.min(value, max), min); +} + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/util/merge-sort.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return mergeSort; }); + + + + + +// mergeSort is stable. +function mergeSort(a, cmp) { + if (a.length < 2) { + return a.slice(); + } + function merge(a, b) { + var r = [], ai = 0, bi = 0, i = 0; + while (ai < a.length && bi < b.length) { + if (cmp(a[ai], b[bi]) <= 0) { + r[i++] = a[ai++]; + } else { + r[i++] = b[bi++]; + } + } + if (ai < a.length) { + r.push.apply(r, a.slice(ai)); + } + if (bi < b.length) { + r.push.apply(r, b.slice(bi)); + } + return r; + } + return (function sort(a) { + if (a.length <= 1) { + return a; + } + var m = Math.floor(a.length / 2); + var left = a.slice(0, m); + var right = a.slice(m); + left = sort(left); + right = sort(right); + return merge(left, right); + })(a); +} + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/util/promise-all.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return promiseAll; }); +function promiseAll(promises) { + return Promise.all(promises); +} + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/util/rad.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return rad; }); + var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/util/constants.js"); + + +function rad(degrees) { + return degrees * _constants__WEBPACK_IMPORTED_MODULE_0__["DEG_TO_RAD"]; +} + + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/util/round.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return round; }); +function pow(p) { + if (p) { + return Math.pow(10, p); + } + + return 1; +} + +function round(value, precision) { + var power = pow(precision); + return Math.round(value * power) / power; +} + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/util/unbind-events.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return unbindEvents; }); +function unbindEvents(element, events) { + if ( events === void 0 ) events = {}; + + for (var name in events) { + var eventNames = name.trim().split(" "); + for (var idx = 0; idx < eventNames.length; idx++) { + element.removeEventListener(eventNames[idx], events[name], false); + } + } +} + + }), + + "./node_modules/@progress/kendo-drawing/dist/es/util/value-or-default.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return valueOrDefault; }); + var _defined__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/util/defined.js"); + + +function valueOrDefault(value, defaultValue) { + return Object(_defined__WEBPACK_IMPORTED_MODULE_0__["default"])(value) ? value : defaultValue; +} + + }), + + "./node_modules/@progress/kendo-popup-common/dist/es/add-scroll.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return addScroll; }); +function addScroll(rect, scroll) { + return { + top: rect.top + scroll.y, + left: rect.left + scroll.x, + height: rect.height, + width: rect.width + }; +} + + + }), + + "./node_modules/@progress/kendo-popup-common/dist/es/align-point.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_exports__["default"] = ({ + "bottom": "bottom", + "center": "center", + "middle": "middle", + "left": "left", + "right": "right", + "top": "top" +}); + + + }), + + "./node_modules/@progress/kendo-popup-common/dist/es/align.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _align_point__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-popup-common/dist/es/align-point.js"); + + +var align = function (options) { + var anchorRect = options.anchorRect; + var anchorAlign = options.anchorAlign; + var elementRect = options.elementRect; + var elementAlign = options.elementAlign; + var margin = options.margin; if ( margin === void 0 ) margin = {}; + var anchorHorizontal = anchorAlign.horizontal; + var anchorVertical = anchorAlign.vertical; + var elementHorizontal = elementAlign.horizontal; + var elementVertical = elementAlign.vertical; + + var horizontalMargin = margin.horizontal || 0; + var verticalMargin = margin.vertical || 0; + + var top = anchorRect.top; + var left = anchorRect.left; + + if (anchorVertical === _align_point__WEBPACK_IMPORTED_MODULE_0__["default"].bottom) { + top += anchorRect.height; + } + + if (anchorVertical === _align_point__WEBPACK_IMPORTED_MODULE_0__["default"].center || anchorVertical === _align_point__WEBPACK_IMPORTED_MODULE_0__["default"].middle) { + top += Math.round(anchorRect.height / 2); + } + + if (elementVertical === _align_point__WEBPACK_IMPORTED_MODULE_0__["default"].bottom) { + top -= elementRect.height; + verticalMargin *= -1; + } + + if (elementVertical === _align_point__WEBPACK_IMPORTED_MODULE_0__["default"].center || elementVertical === _align_point__WEBPACK_IMPORTED_MODULE_0__["default"].middle) { + top -= Math.round(elementRect.height / 2); + verticalMargin *= -1; + } + + if (anchorHorizontal === _align_point__WEBPACK_IMPORTED_MODULE_0__["default"].right) { + left += anchorRect.width; + } + + if (anchorHorizontal === _align_point__WEBPACK_IMPORTED_MODULE_0__["default"].center || anchorHorizontal === _align_point__WEBPACK_IMPORTED_MODULE_0__["default"].middle) { + left += Math.round(anchorRect.width / 2); + } + + if (elementHorizontal === _align_point__WEBPACK_IMPORTED_MODULE_0__["default"].right) { + left -= elementRect.width; + horizontalMargin *= -1; + } + + if (elementHorizontal === _align_point__WEBPACK_IMPORTED_MODULE_0__["default"].center || elementHorizontal === _align_point__WEBPACK_IMPORTED_MODULE_0__["default"].middle) { + left -= Math.round(elementRect.width / 2); + horizontalMargin *= -1; + } + + return { + top: top + verticalMargin, + left: left + horizontalMargin + }; +}; + + __webpack_exports__["default"] = (align); + + + }), + + "./node_modules/@progress/kendo-popup-common/dist/es/apply-location-offset.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return applyLocationOffset; }); +function applyLocationOffset(rect, location, isOffsetBody) { + var top = rect.top; + var left = rect.left; + + if (isOffsetBody) { + left = 0; + top = 0; + } + + return { + top: top + location.top, + left: left + location.left, + height: rect.height, + width: rect.width + }; +} + + + }), + + "./node_modules/@progress/kendo-popup-common/dist/es/bounding-offset.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _window_viewport__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-popup-common/dist/es/window-viewport.js"); + + +var boundingOffset = function (element) { + if (!element.getBoundingClientRect) { + var viewport = Object(_window_viewport__WEBPACK_IMPORTED_MODULE_0__["default"])(element); + return { + bottom: viewport.height, + left: 0, + right: viewport.width, + top: 0 + }; + } + + var ref = element.getBoundingClientRect(); + var bottom = ref.bottom; + var left = ref.left; + var right = ref.right; + var top = ref.top; + + return { + bottom: bottom, + left: left, + right: right, + top: top + }; +}; + + __webpack_exports__["default"] = (boundingOffset); + + + }), + + "./node_modules/@progress/kendo-popup-common/dist/es/collision.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_exports__["default"] = ({ + "fit": "fit", + "flip": "flip" +}); + + + }), + + "./node_modules/@progress/kendo-popup-common/dist/es/document.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _owner_document__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-popup-common/dist/es/owner-document.js"); + + +var getDocument = function (element) { return Object(_owner_document__WEBPACK_IMPORTED_MODULE_0__["default"])(element).documentElement; }; + + __webpack_exports__["default"] = (getDocument); + + + }), + + "./node_modules/@progress/kendo-popup-common/dist/es/element-scroll-position.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _scroll_position__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-popup-common/dist/es/scroll-position.js"); + + + __webpack_exports__["default"] = (function (element) { + if (element === (element.ownerDocument || {}).body) { + return Object(_scroll_position__WEBPACK_IMPORTED_MODULE_0__["default"])(element); + } + + return { + x: element.scrollLeft, + y: element.scrollTop + }; +});; + + + }), + + "./node_modules/@progress/kendo-popup-common/dist/es/is-body-offset.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _offset_parent__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-popup-common/dist/es/offset-parent.js"); + + +var isBodyOffset = function (element) { return (Object(_offset_parent__WEBPACK_IMPORTED_MODULE_0__["default"])(element) === element.ownerDocument.body); }; + + __webpack_exports__["default"] = (isBodyOffset); + + + }), + + "./node_modules/@progress/kendo-popup-common/dist/es/main.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _align__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-popup-common/dist/es/align.js"); + __webpack_require__.d(__webpack_exports__, "align", function() { return _align__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + + var _add_scroll__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-popup-common/dist/es/add-scroll.js"); + __webpack_require__.d(__webpack_exports__, "addScroll", function() { return _add_scroll__WEBPACK_IMPORTED_MODULE_1__["default"]; }); + + var _apply_location_offset__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-popup-common/dist/es/apply-location-offset.js"); + __webpack_require__.d(__webpack_exports__, "applyLocationOffset", function() { return _apply_location_offset__WEBPACK_IMPORTED_MODULE_2__["default"]; }); + + var _bounding_offset__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@progress/kendo-popup-common/dist/es/bounding-offset.js"); + __webpack_require__.d(__webpack_exports__, "boundingOffset", function() { return _bounding_offset__WEBPACK_IMPORTED_MODULE_3__["default"]; }); + + var _is_body_offset__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@progress/kendo-popup-common/dist/es/is-body-offset.js"); + __webpack_require__.d(__webpack_exports__, "isBodyOffset", function() { return _is_body_offset__WEBPACK_IMPORTED_MODULE_4__["default"]; }); + + var _offset_parent__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@progress/kendo-popup-common/dist/es/offset-parent.js"); + __webpack_require__.d(__webpack_exports__, "offsetParent", function() { return _offset_parent__WEBPACK_IMPORTED_MODULE_5__["default"]; }); + + var _offset__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__( "./node_modules/@progress/kendo-popup-common/dist/es/offset.js"); + __webpack_require__.d(__webpack_exports__, "offset", function() { return _offset__WEBPACK_IMPORTED_MODULE_6__["default"]; }); + + var _parents__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__( "./node_modules/@progress/kendo-popup-common/dist/es/parents.js"); + __webpack_require__.d(__webpack_exports__, "parents", function() { return _parents__WEBPACK_IMPORTED_MODULE_7__["default"]; }); + + var _parent_scroll_position__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__( "./node_modules/@progress/kendo-popup-common/dist/es/parent-scroll-position.js"); + __webpack_require__.d(__webpack_exports__, "parentScrollPosition", function() { return _parent_scroll_position__WEBPACK_IMPORTED_MODULE_8__["default"]; }); + + var _position__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__( "./node_modules/@progress/kendo-popup-common/dist/es/position.js"); + __webpack_require__.d(__webpack_exports__, "position", function() { return _position__WEBPACK_IMPORTED_MODULE_9__["default"]; }); + + var _position_with_scroll__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__( "./node_modules/@progress/kendo-popup-common/dist/es/position-with-scroll.js"); + __webpack_require__.d(__webpack_exports__, "positionWithScroll", function() { return _position_with_scroll__WEBPACK_IMPORTED_MODULE_10__["default"]; }); + + var _remove_scroll__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__( "./node_modules/@progress/kendo-popup-common/dist/es/remove-scroll.js"); + __webpack_require__.d(__webpack_exports__, "removeScroll", function() { return _remove_scroll__WEBPACK_IMPORTED_MODULE_11__["default"]; }); + + var _restrict_to_view__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__( "./node_modules/@progress/kendo-popup-common/dist/es/restrict-to-view.js"); + __webpack_require__.d(__webpack_exports__, "restrictToView", function() { return _restrict_to_view__WEBPACK_IMPORTED_MODULE_12__["default"]; }); + + var _scroll_position__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__( "./node_modules/@progress/kendo-popup-common/dist/es/scroll-position.js"); + __webpack_require__.d(__webpack_exports__, "scrollPosition", function() { return _scroll_position__WEBPACK_IMPORTED_MODULE_13__["default"]; }); + + var _sibling_container__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__( "./node_modules/@progress/kendo-popup-common/dist/es/sibling-container.js"); + __webpack_require__.d(__webpack_exports__, "siblingContainer", function() { return _sibling_container__WEBPACK_IMPORTED_MODULE_14__["default"]; }); + + var _siblings__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__( "./node_modules/@progress/kendo-popup-common/dist/es/siblings.js"); + __webpack_require__.d(__webpack_exports__, "siblings", function() { return _siblings__WEBPACK_IMPORTED_MODULE_15__["default"]; }); + + var _document__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__( "./node_modules/@progress/kendo-popup-common/dist/es/document.js"); + __webpack_require__.d(__webpack_exports__, "getDocumentElement", function() { return _document__WEBPACK_IMPORTED_MODULE_16__["default"]; }); + + var _window__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__( "./node_modules/@progress/kendo-popup-common/dist/es/window.js"); + __webpack_require__.d(__webpack_exports__, "getWindow", function() { return _window__WEBPACK_IMPORTED_MODULE_17__["default"]; }); + + var _window_viewport__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__( "./node_modules/@progress/kendo-popup-common/dist/es/window-viewport.js"); + __webpack_require__.d(__webpack_exports__, "getWindowViewPort", function() { return _window_viewport__WEBPACK_IMPORTED_MODULE_18__["default"]; }); + + var _align_point__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__( "./node_modules/@progress/kendo-popup-common/dist/es/align-point.js"); + __webpack_require__.d(__webpack_exports__, "AlignPoint", function() { return _align_point__WEBPACK_IMPORTED_MODULE_19__["default"]; }); + + var _collision__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__( "./node_modules/@progress/kendo-popup-common/dist/es/collision.js"); + __webpack_require__.d(__webpack_exports__, "Collision", function() { return _collision__WEBPACK_IMPORTED_MODULE_20__["default"]; }); + + + + + + + + + + + + + + + + + + + + + + + + + + + }), + + "./node_modules/@progress/kendo-popup-common/dist/es/offset-parent-scroll-position.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _element_scroll_position__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-popup-common/dist/es/element-scroll-position.js"); + var _parent_scroll_position__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-popup-common/dist/es/parent-scroll-position.js"); + + + + __webpack_exports__["default"] = (function (offsetParentElement, element) { return ( // eslint-disable-line no-arrow-condition + offsetParentElement ? Object(_element_scroll_position__WEBPACK_IMPORTED_MODULE_0__["default"])(offsetParentElement) : Object(_parent_scroll_position__WEBPACK_IMPORTED_MODULE_1__["default"])(element) +); });; + + + }), + + "./node_modules/@progress/kendo-popup-common/dist/es/offset-parent.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _document__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-popup-common/dist/es/document.js"); + + +var offsetParent = function (element) { + var offsetParent = element.offsetParent; + + while (offsetParent && offsetParent.style.position === "static") { + offsetParent = offsetParent.offsetParent; + } + + return offsetParent || Object(_document__WEBPACK_IMPORTED_MODULE_0__["default"])(element); +}; + + __webpack_exports__["default"] = (offsetParent); + + + }), + + "./node_modules/@progress/kendo-popup-common/dist/es/offset.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +var rectOfHiddenElement = function (element) { + var ref = element.style; + var display = ref.display; + var left = ref.left; + var position = ref.position; + + element.style.display = ''; + element.style.left = '-10000px'; + element.style.position = 'absolute'; + + var rect = element.getBoundingClientRect(); + + element.style.display = display; + element.style.left = left; + element.style.position = position; + + return rect; +}; + +var offset = function (element) { + var rect = element.getBoundingClientRect(); + var left = rect.left; + var top = rect.top; + + if (!rect.height && !rect.width) { + rect = rectOfHiddenElement(element); + } + + return { + top: top, + left: left, + height: rect.height, + width: rect.width + }; +}; + + __webpack_exports__["default"] = (offset); + + + }), + + "./node_modules/@progress/kendo-popup-common/dist/es/owner-document.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return ownerDocument; }); +function ownerDocument(element) { + return element.ownerDocument || element.document || element; +} + + + }), + + "./node_modules/@progress/kendo-popup-common/dist/es/parent-scroll-position.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return parentScrollPosition; }); + var _offset_parent__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-popup-common/dist/es/offset-parent.js"); + var _element_scroll_position__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-popup-common/dist/es/element-scroll-position.js"); + + + +function parentScrollPosition(element) { + var parent = Object(_offset_parent__WEBPACK_IMPORTED_MODULE_0__["default"])(element); + + return parent ? Object(_element_scroll_position__WEBPACK_IMPORTED_MODULE_1__["default"])(parent) : { x: 0, y: 0 }; +} + + + }), + + "./node_modules/@progress/kendo-popup-common/dist/es/parents.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_exports__["default"] = (function (element, until) { + var result = []; + var next = element.parentNode; + + while (next) { + result.push(next); + + if (next === until) { break; } + + next = next.parentNode; + } + + return result; +});; + + + }), + + "./node_modules/@progress/kendo-popup-common/dist/es/position-with-scroll.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _offset_parent_scroll_position__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-popup-common/dist/es/offset-parent-scroll-position.js"); + var _offset_parent__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-popup-common/dist/es/offset-parent.js"); + var _position__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-popup-common/dist/es/position.js"); + + + + + __webpack_exports__["default"] = (function (element, parent, scale) { + if ( scale === void 0 ) scale = 1; + + var offsetParentElement = parent ? Object(_offset_parent__WEBPACK_IMPORTED_MODULE_1__["default"])(parent) : null; + var ref = Object(_position__WEBPACK_IMPORTED_MODULE_2__["default"])(element, offsetParentElement); + var top = ref.top; + var left = ref.left; + var height = ref.height; + var width = ref.width; + var ref$1 = Object(_offset_parent_scroll_position__WEBPACK_IMPORTED_MODULE_0__["default"])(offsetParentElement, element); + var x = ref$1.x; + var y = ref$1.y; + var ownerDocument = element.ownerDocument; + var positionScale = offsetParentElement === ownerDocument.body || offsetParentElement === ownerDocument.documentElement ? 1 : scale; + + return { + top: top + y * positionScale, + left: left + x * positionScale, + height: height, + width: width + }; +});; + + + }), + + "./node_modules/@progress/kendo-popup-common/dist/es/position.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _offset_parent__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-popup-common/dist/es/offset-parent.js"); + var _offset__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-popup-common/dist/es/offset.js"); + var _window__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-popup-common/dist/es/window.js"); + + + + +var position = function (element, parent) { + var win = Object(_window__WEBPACK_IMPORTED_MODULE_2__["default"])(element); + var elementStyles = win.getComputedStyle(element); + var offset = Object(_offset__WEBPACK_IMPORTED_MODULE_1__["default"])(element); + var parentElement = parent || Object(_offset_parent__WEBPACK_IMPORTED_MODULE_0__["default"])(element); + + var ownerDocument = element.ownerDocument; + var useRelative = parentElement !== ownerDocument.body && parentElement !== ownerDocument.documentElement; + + var parentOffset = { top: 0, left: 0 }; + + if (elementStyles.position !== "fixed" && useRelative) { + var parentStyles = win.getComputedStyle(parentElement); + + parentOffset = Object(_offset__WEBPACK_IMPORTED_MODULE_1__["default"])(parentElement); + parentOffset.top += parseInt(parentStyles.borderTopWidth, 10); + parentOffset.left += parseInt(parentStyles.borderLeftWidth, 10); + } + + return { + top: offset.top - parentOffset.top, + left: offset.left - parentOffset.left, + height: offset.height, + width: offset.width + }; +}; + + __webpack_exports__["default"] = (position); + + + }), + + "./node_modules/@progress/kendo-popup-common/dist/es/remove-scroll.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return removeScroll; }); +function removeScroll(rect, scroll) { + return { + top: rect.top - scroll.y, + left: rect.left - scroll.x, + height: rect.height, + width: rect.width + }; +} + + + }), + + "./node_modules/@progress/kendo-popup-common/dist/es/restrict-to-view.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _align_point__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-popup-common/dist/es/align-point.js"); + var _collision__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-popup-common/dist/es/collision.js"); + + + +var fit = function(position, size, viewPortSize) { + var output = 0; + + if (position + size > viewPortSize) { + output = viewPortSize - (position + size); + } + + if (position < 0) { + output = -position; + } + + return output; +}; + +var flip = function(ref) { + var offset = ref.offset; + var size = ref.size; + var anchorSize = ref.anchorSize; + var viewPortSize = ref.viewPortSize; + var anchorAlignPoint = ref.anchorAlignPoint; + var elementAlignPoint = ref.elementAlignPoint; + var margin = ref.margin; + + var output = 0; + + var isPositionCentered = elementAlignPoint === _align_point__WEBPACK_IMPORTED_MODULE_0__["default"].center || elementAlignPoint === _align_point__WEBPACK_IMPORTED_MODULE_0__["default"].middle; + var isOriginCentered = anchorAlignPoint === _align_point__WEBPACK_IMPORTED_MODULE_0__["default"].center || anchorAlignPoint === _align_point__WEBPACK_IMPORTED_MODULE_0__["default"].middle; + var marginToAdd = 2 * margin; //2x to keep margin after flip + + if (elementAlignPoint !== anchorAlignPoint && !isPositionCentered && !isOriginCentered) { + var isBeforeAnchor = anchorAlignPoint === _align_point__WEBPACK_IMPORTED_MODULE_0__["default"].top || anchorAlignPoint === _align_point__WEBPACK_IMPORTED_MODULE_0__["default"].left; + if (offset < 0 && isBeforeAnchor) { + output = size + anchorSize + marginToAdd; + if (offset + output + size > viewPortSize) { + output = 0; //skip flip + } + } else if (offset >= 0 && !isBeforeAnchor) { + if (offset + size > viewPortSize) { + output += -(anchorSize + size + marginToAdd); + } + + if (offset + output < 0) { + output = 0; //skip flip + } + } + } + + return output; +}; + +var restrictToView = function (options) { + var anchorRect = options.anchorRect; + var anchorAlign = options.anchorAlign; + var elementRect = options.elementRect; + var elementAlign = options.elementAlign; + var collisions = options.collisions; + var viewPort = options.viewPort; + var margin = options.margin; if ( margin === void 0 ) margin = {}; + var elementTop = elementRect.top; + var elementLeft = elementRect.left; + var elementHeight = elementRect.height; + var elementWidth = elementRect.width; + var viewPortHeight = viewPort.height; + var viewPortWidth = viewPort.width; + var horizontalMargin = margin.horizontal || 0; + var verticalMargin = margin.vertical || 0; + + var left = 0; + var top = 0; + + var isHorizontalFlip = collisions.horizontal === _collision__WEBPACK_IMPORTED_MODULE_1__["default"].flip; + var isVerticalFlip = collisions.vertical === _collision__WEBPACK_IMPORTED_MODULE_1__["default"].flip; + + if (collisions.vertical === _collision__WEBPACK_IMPORTED_MODULE_1__["default"].fit) { + top += fit(elementTop, elementHeight, viewPortHeight); + } + + if (collisions.horizontal === _collision__WEBPACK_IMPORTED_MODULE_1__["default"].fit) { + left += fit(elementLeft, elementWidth, viewPortWidth); + } + + if (isVerticalFlip) { + top += flip({ + margin: verticalMargin, + offset: elementTop, + size: elementHeight, + anchorSize: anchorRect.height, + viewPortSize: viewPortHeight, + anchorAlignPoint: anchorAlign.vertical, + elementAlignPoint: elementAlign.vertical + }); + } + + if (isHorizontalFlip) { + left += flip({ + margin: horizontalMargin, + offset: elementLeft, + size: elementWidth, + anchorSize: anchorRect.width, + viewPortSize: viewPortWidth, + anchorAlignPoint: anchorAlign.horizontal, + elementAlignPoint: elementAlign.horizontal + }); + } + var flippedHorizontal = isHorizontalFlip && left !== 0; + var flippedVertical = isVerticalFlip && top !== 0; + + return { + flipped: flippedHorizontal || flippedVertical, + flip: { + horizontal: flippedHorizontal, + vertical: flippedVertical + }, + offset: { + left: left, + top: top + } + }; +}; + + __webpack_exports__["default"] = (restrictToView); + + + }), + + "./node_modules/@progress/kendo-popup-common/dist/es/scroll-position.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return scrollPosition; }); + var _document__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-popup-common/dist/es/document.js"); + var _window__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-popup-common/dist/es/window.js"); + + + +function scrollPosition(element) { + var documentElement = Object(_document__WEBPACK_IMPORTED_MODULE_0__["default"])(element); + var win = Object(_window__WEBPACK_IMPORTED_MODULE_1__["default"])(element); + + return { + x: win.pageXOffset || documentElement.scrollLeft || 0, + y: win.pageYOffset || documentElement.scrollTop || 0 + }; +} + + + }), + + "./node_modules/@progress/kendo-popup-common/dist/es/scrollbar-width.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return scrollbarWidth; }); +var cachedWidth = 0; + +function scrollbarWidth() { + if (!cachedWidth && typeof document !== 'undefined') { + var div = document.createElement("div"); + + div.style.cssText = "overflow:scroll;overflow-x:hidden;zoom:1;clear:both;display:block"; + div.innerHTML = " "; + document.body.appendChild(div); + + cachedWidth = div.offsetWidth - div.scrollWidth; + + document.body.removeChild(div); + } + + return cachedWidth; +} + + + }), + + "./node_modules/@progress/kendo-popup-common/dist/es/sibling-container.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _parents__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-popup-common/dist/es/parents.js"); + var _siblings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-popup-common/dist/es/siblings.js"); + + + + + + __webpack_exports__["default"] = (function (anchor, container) { + var parentElements = Object(_parents__WEBPACK_IMPORTED_MODULE_0__["default"])(anchor); + var containerElement = container; + var siblingElements; + var result; + + while (containerElement) { + siblingElements = Object(_siblings__WEBPACK_IMPORTED_MODULE_1__["default"])(containerElement); + + result = parentElements.reduce( + function (list, p) { return list.concat(siblingElements.filter(function (s) { return s === p; })); }, + [] + )[0]; + + if (result) { break; } + + containerElement = containerElement.parentElement; + } + + return result; +});; + + + + }), + + "./node_modules/@progress/kendo-popup-common/dist/es/siblings.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_exports__["default"] = (function (element) { + var result = []; + + var sibling = element.parentNode.firstElementChild; + + while (sibling) { + if (sibling !== element) { + result.push(sibling); + } + + sibling = sibling.nextElementSibling; + } + return result; +});; + + + }), + + "./node_modules/@progress/kendo-popup-common/dist/es/window-viewport.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return windowViewport; }); + var _window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-popup-common/dist/es/window.js"); + var _document__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@progress/kendo-popup-common/dist/es/document.js"); + var _scrollbar_width__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@progress/kendo-popup-common/dist/es/scrollbar-width.js"); + + + + +function windowViewport(element) { + var win = Object(_window__WEBPACK_IMPORTED_MODULE_0__["default"])(element); + var document = Object(_document__WEBPACK_IMPORTED_MODULE_1__["default"])(element); + var result = { + height: win.innerHeight, + width: win.innerWidth + }; + + if (document.scrollHeight - document.clientHeight > 0) { + result.width -= Object(_scrollbar_width__WEBPACK_IMPORTED_MODULE_2__["default"])(); + } + + return result; +} + + + }), + + "./node_modules/@progress/kendo-popup-common/dist/es/window.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _owner_document__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@progress/kendo-popup-common/dist/es/owner-document.js"); + + +var getWindow = function (element) { return Object(_owner_document__WEBPACK_IMPORTED_MODULE_0__["default"])(element).defaultView; }; + + __webpack_exports__["default"] = (getWindow); + + + }), + + "./node_modules/@progress/pako-esm/dist/pako-esm5.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "Deflate", function() { return Deflate; }); + __webpack_require__.d(__webpack_exports__, "Inflate", function() { return Inflate; }); + __webpack_require__.d(__webpack_exports__, "Z_BEST_COMPRESSION", function() { return Z_BEST_COMPRESSION; }); + __webpack_require__.d(__webpack_exports__, "Z_BEST_SPEED", function() { return Z_BEST_SPEED; }); + __webpack_require__.d(__webpack_exports__, "Z_BINARY", function() { return Z_BINARY; }); + __webpack_require__.d(__webpack_exports__, "Z_BLOCK", function() { return Z_BLOCK; }); + __webpack_require__.d(__webpack_exports__, "Z_BUF_ERROR", function() { return Z_BUF_ERROR; }); + __webpack_require__.d(__webpack_exports__, "Z_DATA_ERROR", function() { return Z_DATA_ERROR; }); + __webpack_require__.d(__webpack_exports__, "Z_DEFAULT_COMPRESSION", function() { return Z_DEFAULT_COMPRESSION; }); + __webpack_require__.d(__webpack_exports__, "Z_DEFAULT_STRATEGY", function() { return Z_DEFAULT_STRATEGY; }); + __webpack_require__.d(__webpack_exports__, "Z_DEFLATED", function() { return Z_DEFLATED; }); + __webpack_require__.d(__webpack_exports__, "Z_ERRNO", function() { return Z_ERRNO; }); + __webpack_require__.d(__webpack_exports__, "Z_FILTERED", function() { return Z_FILTERED; }); + __webpack_require__.d(__webpack_exports__, "Z_FINISH", function() { return Z_FINISH; }); + __webpack_require__.d(__webpack_exports__, "Z_FIXED", function() { return Z_FIXED; }); + __webpack_require__.d(__webpack_exports__, "Z_FULL_FLUSH", function() { return Z_FULL_FLUSH; }); + __webpack_require__.d(__webpack_exports__, "Z_HUFFMAN_ONLY", function() { return Z_HUFFMAN_ONLY; }); + __webpack_require__.d(__webpack_exports__, "Z_NEED_DICT", function() { return Z_NEED_DICT; }); + __webpack_require__.d(__webpack_exports__, "Z_NO_COMPRESSION", function() { return Z_NO_COMPRESSION; }); + __webpack_require__.d(__webpack_exports__, "Z_NO_FLUSH", function() { return Z_NO_FLUSH; }); + __webpack_require__.d(__webpack_exports__, "Z_OK", function() { return Z_OK; }); + __webpack_require__.d(__webpack_exports__, "Z_PARTIAL_FLUSH", function() { return Z_PARTIAL_FLUSH; }); + __webpack_require__.d(__webpack_exports__, "Z_RLE", function() { return Z_RLE; }); + __webpack_require__.d(__webpack_exports__, "Z_STREAM_END", function() { return Z_STREAM_END; }); + __webpack_require__.d(__webpack_exports__, "Z_STREAM_ERROR", function() { return Z_STREAM_ERROR; }); + __webpack_require__.d(__webpack_exports__, "Z_SYNC_FLUSH", function() { return Z_SYNC_FLUSH; }); + __webpack_require__.d(__webpack_exports__, "Z_TEXT", function() { return Z_TEXT; }); + __webpack_require__.d(__webpack_exports__, "Z_TREES", function() { return Z_TREES; }); + __webpack_require__.d(__webpack_exports__, "Z_UNKNOWN", function() { return Z_UNKNOWN; }); + __webpack_require__.d(__webpack_exports__, "deflate", function() { return deflate$1; }); + __webpack_require__.d(__webpack_exports__, "deflateRaw", function() { return deflateRaw; }); + __webpack_require__.d(__webpack_exports__, "gzip", function() { return gzip; }); + __webpack_require__.d(__webpack_exports__, "inflate", function() { return inflate$1; }); + __webpack_require__.d(__webpack_exports__, "inflateRaw", function() { return inflateRaw; }); + __webpack_require__.d(__webpack_exports__, "ungzip", function() { return ungzip; }); + + +// (C) 1995-2013 Jean-loup Gailly and Mark Adler +// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin +// +// This software is provided 'as-is', without any express or implied +// warranty. In no event will the authors be held liable for any damages +// arising from the use of this software. +// +// Permission is granted to anyone to use this software for any purpose, +// including commercial applications, and to alter it and redistribute it +// freely, subject to the following restrictions: +// +// 1. The origin of this software must not be misrepresented; you must not +// claim that you wrote the original software. If you use this software +// in a product, an acknowledgment in the product documentation would be +// appreciated but is not required. +// 2. Altered source versions must be plainly marked as such, and must not be +// misrepresented as being the original software. +// 3. This notice may not be removed or altered from any source distribution. + + +var Z_NO_FLUSH = 0; +var Z_PARTIAL_FLUSH = 1; +var Z_SYNC_FLUSH = 2; +var Z_FULL_FLUSH = 3; +var Z_FINISH = 4; +var Z_BLOCK = 5; +var Z_TREES = 6; + + +var Z_OK = 0; +var Z_STREAM_END = 1; +var Z_NEED_DICT = 2; +var Z_ERRNO = -1; +var Z_STREAM_ERROR = -2; +var Z_DATA_ERROR = -3; +//export var Z_MEM_ERROR = -4; +var Z_BUF_ERROR = -5; +//export var Z_VERSION_ERROR = -6; + + +var Z_NO_COMPRESSION = 0; +var Z_BEST_SPEED = 1; +var Z_BEST_COMPRESSION = 9; +var Z_DEFAULT_COMPRESSION = -1; + + +var Z_FILTERED = 1; +var Z_HUFFMAN_ONLY = 2; +var Z_RLE = 3; +var Z_FIXED = 4; +var Z_DEFAULT_STRATEGY = 0; + + +var Z_BINARY = 0; +var Z_TEXT = 1; +//export var Z_ASCII = 1; // = Z_TEXT (deprecated) +var Z_UNKNOWN = 2; + + +var Z_DEFLATED = 8; +//export var Z_NULL = null // Use -1 or null inline; depending on var type + + + +function _has(obj, key) { + return Object.prototype.hasOwnProperty.call(obj, key); +} + +function assign(obj ) { + var sources = Array.prototype.slice.call(arguments, 1); + while (sources.length) { + var source = sources.shift(); + if (!source) { continue; } + + if (typeof source !== 'object') { + throw new TypeError(source + 'must be non-object'); + } + + for (var p in source) { + if (_has(source, p)) { + obj[p] = source[p]; + } + } + } + + return obj; +} + + +// reduce buffer size, avoiding mem copy +function shrinkBuf(buf, size) { + if (buf.length === size) { return buf; } + if (buf.subarray) { return buf.subarray(0, size); } + buf.length = size; + return buf; +} + +var fnTyped = { + arraySet: function (dest, src, src_offs, len, dest_offs) { + if (src.subarray && dest.subarray) { + dest.set(src.subarray(src_offs, src_offs + len), dest_offs); + return; + } + // Fallback to ordinary array + for (var i = 0; i < len; i++) { + dest[dest_offs + i] = src[src_offs + i]; + } + }, + // Join array of chunks to single array. + flattenChunks: function (chunks) { + var i, l, len, pos, chunk, result; + + // calculate data length + len = 0; + for (i = 0, l = chunks.length; i < l; i++) { + len += chunks[i].length; + } + + // join chunks + result = new Uint8Array(len); + pos = 0; + for (i = 0, l = chunks.length; i < l; i++) { + chunk = chunks[i]; + result.set(chunk, pos); + pos += chunk.length; + } + + return result; + }, + Buf8: function(size) { + return new Uint8Array(size); + }, + Buf16: function(size) { + return new Uint16Array(size); + }, + Buf32: function(size) { + return new Int32Array(size); + } +}; + +var fnUntyped = { + arraySet: function (dest, src, src_offs, len, dest_offs) { + for (var i = 0; i < len; i++) { + dest[dest_offs + i] = src[src_offs + i]; + } + }, + // Join array of chunks to single array. + flattenChunks: function (chunks) { + return [].concat.apply([], chunks); + }, + Buf8: function(size) { + return new Array(size); + }, + Buf16: function(size) { + return new Array(size); + }, + Buf32: function(size) { + return new Array(size); + } +}; + +var typedOK = function () { + var supported = + (typeof Uint8Array !== 'undefined') && + (typeof Uint16Array !== 'undefined') && + (typeof Int32Array !== 'undefined'); + + typedOK = function () { return supported; }; + return supported; +}; + +var arraySet = function (dest, src, src_offs, len, dest_offs) { + arraySet = typedOK() ? + fnTyped.arraySet : fnUntyped.arraySet; + + return arraySet(dest, src, src_offs, len, dest_offs); +}; + +var flattenChunks = function (chunks) { + flattenChunks = typedOK() ? + fnTyped.flattenChunks : fnUntyped.flattenChunks; + + return flattenChunks(chunks); +}; + +var Buf8 = function (size) { + Buf8 = typedOK() ? fnTyped.Buf8 : fnUntyped.Buf8; + return Buf8(size); +}; + +var Buf16 = function (size) { + Buf16 = typedOK() ? fnTyped.Buf16 : fnUntyped.Buf16; + return Buf16(size); +}; + +var Buf32 = function (size) { + Buf32 = typedOK() ? fnTyped.Buf32 : fnUntyped.Buf32; + return Buf32(size); +}; + + + + +// Quick check if we can use fast array to bin string conversion +// +// - apply(Array) can fail on Android 2.2 +// - apply(Uint8Array) can fail on iOS 5.1 Safari +// +var STR_APPLY_OK = true; +var STR_APPLY_UIA_OK = true; + +try { String.fromCharCode.apply(null, [ 0 ]); } catch (_) { STR_APPLY_OK = false; } +try { String.fromCharCode.apply(null, new Uint8Array(1)); } catch (_$1) { STR_APPLY_UIA_OK = false; } + + +// Table with utf8 lengths (calculated by first byte of sequence) +// Note, that 5 & 6-byte values and some 4-byte values can not be represented in JS, +// because max possible codepoint is 0x10ffff +var _utf8len = new Uint8Array(256); +for (var q = 0; q < 256; q++) { + _utf8len[q] = (q >= 252 ? 6 : q >= 248 ? 5 : q >= 240 ? 4 : q >= 224 ? 3 : q >= 192 ? 2 : 1); +} +_utf8len[254] = _utf8len[254] = 1; // Invalid sequence start + + +// convert string to array (typed, when possible) +function string2buf(str) { + var buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0; + + // count binary size + for (m_pos = 0; m_pos < str_len; m_pos++) { + c = str.charCodeAt(m_pos); + if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) { + c2 = str.charCodeAt(m_pos + 1); + if ((c2 & 0xfc00) === 0xdc00) { + c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00); + m_pos++; + } + } + buf_len += c < 0x80 ? 1 : c < 0x800 ? 2 : c < 0x10000 ? 3 : 4; + } + + // allocate buffer + buf = new Uint8Array(buf_len); + + // convert + for (i = 0, m_pos = 0; i < buf_len; m_pos++) { + c = str.charCodeAt(m_pos); + if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) { + c2 = str.charCodeAt(m_pos + 1); + if ((c2 & 0xfc00) === 0xdc00) { + c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00); + m_pos++; + } + } + if (c < 0x80) { + + buf[i++] = c; + } else if (c < 0x800) { + + buf[i++] = 0xC0 | (c >>> 6); + buf[i++] = 0x80 | (c & 0x3f); + } else if (c < 0x10000) { + + buf[i++] = 0xE0 | (c >>> 12); + buf[i++] = 0x80 | (c >>> 6 & 0x3f); + buf[i++] = 0x80 | (c & 0x3f); + } else { + + buf[i++] = 0xf0 | (c >>> 18); + buf[i++] = 0x80 | (c >>> 12 & 0x3f); + buf[i++] = 0x80 | (c >>> 6 & 0x3f); + buf[i++] = 0x80 | (c & 0x3f); + } + } + + return buf; +} + +// Helper (used in 2 places) +function _buf2binstring(buf, len) { + // On Chrome, the arguments in a function call that are allowed is `65534`. + // If the length of the buffer is smaller than that, we can use this optimization, + // otherwise we will take a slower path. + if (len < 65534) { + if ((buf.subarray && STR_APPLY_UIA_OK) || (!buf.subarray && STR_APPLY_OK)) { + return String.fromCharCode.apply(null, shrinkBuf(buf, len)); + } + } + + var result = ''; + for (var i = 0; i < len; i++) { + result += String.fromCharCode(buf[i]); + } + return result; +} + + +// Convert byte array to binary string +function buf2binstring(buf) { + return _buf2binstring(buf, buf.length); +} + + +// Convert binary string (typed, when possible) +function binstring2buf(str) { + var buf = new Uint8Array(str.length); + for (var i = 0, len = buf.length; i < len; i++) { + buf[i] = str.charCodeAt(i); + } + return buf; +} + + +// convert array to string +function buf2string(buf, max) { + var i, out, c, c_len; + var len = max || buf.length; + + // Reserve max possible length (2 words per char) + // NB: by unknown reasons, Array is significantly faster for + // String.fromCharCode.apply than Uint16Array. + var utf16buf = new Array(len * 2); + + for (out = 0, i = 0; i < len;) { + c = buf[i++]; + // quick process ascii + if (c < 0x80) { utf16buf[out++] = c; continue; } + + c_len = _utf8len[c]; + // skip 5 & 6 byte codes + if (c_len > 4) { utf16buf[out++] = 0xfffd; i += c_len - 1; continue; } + + // apply mask on first byte + c &= c_len === 2 ? 0x1f : c_len === 3 ? 0x0f : 0x07; + // join the rest + while (c_len > 1 && i < len) { + c = (c << 6) | (buf[i++] & 0x3f); + c_len--; + } + + // terminated by end of string? + if (c_len > 1) { utf16buf[out++] = 0xfffd; continue; } + + if (c < 0x10000) { + utf16buf[out++] = c; + } else { + c -= 0x10000; + utf16buf[out++] = 0xd800 | ((c >> 10) & 0x3ff); + utf16buf[out++] = 0xdc00 | (c & 0x3ff); + } + } + + return _buf2binstring(utf16buf, out); +} + + +// Calculate max possible position in utf8 buffer, +// that will not break sequence. If that's not possible +// - (very small limits) return max size as is. +// +// buf[] - utf8 bytes array +// max - length limit (mandatory); +function utf8border(buf, max) { + var pos; + + max = max || buf.length; + if (max > buf.length) { max = buf.length; } + + // go back from last position, until start of sequence found + pos = max - 1; + while (pos >= 0 && (buf[pos] & 0xC0) === 0x80) { pos--; } + + // Very small and broken sequence, + // return max, because we should return something anyway. + if (pos < 0) { return max; } + + // If we came to start of buffer - that means buffer is too small, + // return max too. + if (pos === 0) { return max; } + + return (pos + _utf8len[buf[pos]] > max) ? pos : max; +} + + + +// Note: adler32 takes 12% for level 0 and 2% for level 6. +// It isn't worth it to make additional optimizations as in original. +// Small size is preferable. + +// (C) 1995-2013 Jean-loup Gailly and Mark Adler +// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin +// +// This software is provided 'as-is', without any express or implied +// warranty. In no event will the authors be held liable for any damages +// arising from the use of this software. +// +// Permission is granted to anyone to use this software for any purpose, +// including commercial applications, and to alter it and redistribute it +// freely, subject to the following restrictions: +// +// 1. The origin of this software must not be misrepresented; you must not +// claim that you wrote the original software. If you use this software +// in a product, an acknowledgment in the product documentation would be +// appreciated but is not required. +// 2. Altered source versions must be plainly marked as such, and must not be +// misrepresented as being the original software. +// 3. This notice may not be removed or altered from any source distribution. + +function adler32(adler, buf, len, pos) { + var s1 = (adler & 0xffff) |0, + s2 = ((adler >>> 16) & 0xffff) |0, + n = 0; + + while (len !== 0) { + // Set limit ~ twice less than 5552, to keep + // s2 in 31-bits, because we force signed ints. + // in other case %= will fail. + n = len > 2000 ? 2000 : len; + len -= n; + + do { + s1 = (s1 + buf[pos++]) |0; + s2 = (s2 + s1) |0; + } while (--n); + + s1 %= 65521; + s2 %= 65521; + } + + return (s1 | (s2 << 16)) |0; +} + + + +// Note: we can't get significant speed boost here. +// So write code to minimize size - no pregenerated tables +// and array tools dependencies. + +// (C) 1995-2013 Jean-loup Gailly and Mark Adler +// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin +// +// This software is provided 'as-is', without any express or implied +// warranty. In no event will the authors be held liable for any damages +// arising from the use of this software. +// +// Permission is granted to anyone to use this software for any purpose, +// including commercial applications, and to alter it and redistribute it +// freely, subject to the following restrictions: +// +// 1. The origin of this software must not be misrepresented; you must not +// claim that you wrote the original software. If you use this software +// in a product, an acknowledgment in the product documentation would be +// appreciated but is not required. +// 2. Altered source versions must be plainly marked as such, and must not be +// misrepresented as being the original software. +// 3. This notice may not be removed or altered from any source distribution. + +// Use ordinary array, since untyped makes no boost here +function makeTable() { + var c, table = []; + + for (var n = 0; n < 256; n++) { + c = n; + for (var k = 0; k < 8; k++) { + c = ((c & 1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1)); + } + table[n] = c; + } + + return table; +} + +// Create table on load. Just 255 signed longs. Not a problem. +var crcTable = makeTable(); + + +function crc32(crc, buf, len, pos) { + var t = crcTable, + end = pos + len; + + crc ^= -1; + + for (var i = pos; i < end; i++) { + crc = (crc >>> 8) ^ t[(crc ^ buf[i]) & 0xFF]; + } + + return (crc ^ (-1)); // >>> 0; +} + + + +// (C) 1995-2013 Jean-loup Gailly and Mark Adler +// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin +// +// This software is provided 'as-is', without any express or implied +// warranty. In no event will the authors be held liable for any damages +// arising from the use of this software. +// +// Permission is granted to anyone to use this software for any purpose, +// including commercial applications, and to alter it and redistribute it +// freely, subject to the following restrictions: +// +// 1. The origin of this software must not be misrepresented; you must not +// claim that you wrote the original software. If you use this software +// in a product, an acknowledgment in the product documentation would be +// appreciated but is not required. +// 2. Altered source versions must be plainly marked as such, and must not be +// misrepresented as being the original software. +// 3. This notice may not be removed or altered from any source distribution. + +// See state defs from inflate.js +var BAD = 30; +var TYPE = 12; + + +function inflate_fast(strm, start) { + var state; + var _in; + var last; + var _out; + var beg; + var end; +//#ifdef INFLATE_STRICT + var dmax; +//#endif + var wsize; + var whave; + var wnext; + // Use `s_window` instead `window`, avoid conflict with instrumentation tools + var s_window; + var hold; + var bits; + var lcode; + var dcode; + var lmask; + var dmask; + var here; + var op; + + var len; + var dist; + var from; + var from_source; + + + var input, output; // JS specific, because we have no pointers + + + state = strm.state; + //here = state.here; + _in = strm.next_in; + input = strm.input; + last = _in + (strm.avail_in - 5); + _out = strm.next_out; + output = strm.output; + beg = _out - (start - strm.avail_out); + end = _out + (strm.avail_out - 257); +//#ifdef INFLATE_STRICT + dmax = state.dmax; +//#endif + wsize = state.wsize; + whave = state.whave; + wnext = state.wnext; + s_window = state.window; + hold = state.hold; + bits = state.bits; + lcode = state.lencode; + dcode = state.distcode; + lmask = (1 << state.lenbits) - 1; + dmask = (1 << state.distbits) - 1; + + + + + top: + do { + if (bits < 15) { + hold += input[_in++] << bits; + bits += 8; + hold += input[_in++] << bits; + bits += 8; + } + + here = lcode[hold & lmask]; + + dolen: + for (;;) { // Goto emulation + op = here >>> 24; + hold >>>= op; + bits -= op; + op = (here >>> 16) & 0xff; + if (op === 0) { + //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ? + // "inflate: literal '%c'\n" : + // "inflate: literal 0x%02x\n", here.val)); + output[_out++] = here & 0xffff; + } + else if (op & 16) { + len = here & 0xffff; + op &= 15; + if (op) { + if (bits < op) { + hold += input[_in++] << bits; + bits += 8; + } + len += hold & ((1 << op) - 1); + hold >>>= op; + bits -= op; + } + //Tracevv((stderr, "inflate: length %u\n", len)); + if (bits < 15) { + hold += input[_in++] << bits; + bits += 8; + hold += input[_in++] << bits; + bits += 8; + } + here = dcode[hold & dmask]; + + dodist: + for (;;) { // goto emulation + op = here >>> 24; + hold >>>= op; + bits -= op; + op = (here >>> 16) & 0xff; + + if (op & 16) { + dist = here & 0xffff; + op &= 15; + if (bits < op) { + hold += input[_in++] << bits; + bits += 8; + if (bits < op) { + hold += input[_in++] << bits; + bits += 8; + } + } + dist += hold & ((1 << op) - 1); +//#ifdef INFLATE_STRICT + if (dist > dmax) { + strm.msg = 'invalid distance too far back'; + state.mode = BAD; + break top; + } +//#endif + hold >>>= op; + bits -= op; + //Tracevv((stderr, "inflate: distance %u\n", dist)); + op = _out - beg; + if (dist > op) { + op = dist - op; + if (op > whave) { + if (state.sane) { + strm.msg = 'invalid distance too far back'; + state.mode = BAD; + break top; + } + +// (!) This block is disabled in zlib defaults, +// don't enable it for binary compatibility +//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR +// if (len <= op - whave) { +// do { +// output[_out++] = 0; +// } while (--len); +// continue top; +// } +// len -= op - whave; +// do { +// output[_out++] = 0; +// } while (--op > whave); +// if (op === 0) { +// from = _out - dist; +// do { +// output[_out++] = output[from++]; +// } while (--len); +// continue top; +// } +//#endif + } + from = 0; // window index + from_source = s_window; + if (wnext === 0) { + from += wsize - op; + if (op < len) { + len -= op; + do { + output[_out++] = s_window[from++]; + } while (--op); + from = _out - dist; + from_source = output; + } + } + else if (wnext < op) { + from += wsize + wnext - op; + op -= wnext; + if (op < len) { + len -= op; + do { + output[_out++] = s_window[from++]; + } while (--op); + from = 0; + if (wnext < len) { + op = wnext; + len -= op; + do { + output[_out++] = s_window[from++]; + } while (--op); + from = _out - dist; + from_source = output; + } + } + } + else { + from += wnext - op; + if (op < len) { + len -= op; + do { + output[_out++] = s_window[from++]; + } while (--op); + from = _out - dist; + from_source = output; + } + } + while (len > 2) { + output[_out++] = from_source[from++]; + output[_out++] = from_source[from++]; + output[_out++] = from_source[from++]; + len -= 3; + } + if (len) { + output[_out++] = from_source[from++]; + if (len > 1) { + output[_out++] = from_source[from++]; + } + } + } + else { + from = _out - dist; + do { + output[_out++] = output[from++]; + output[_out++] = output[from++]; + output[_out++] = output[from++]; + len -= 3; + } while (len > 2); + if (len) { + output[_out++] = output[from++]; + if (len > 1) { + output[_out++] = output[from++]; + } + } + } + } + else if ((op & 64) === 0) { + here = dcode[(here & 0xffff) + (hold & ((1 << op) - 1))]; + continue dodist; + } + else { + strm.msg = 'invalid distance code'; + state.mode = BAD; + break top; + } + + break; // need to emulate goto via "continue" + } + } + else if ((op & 64) === 0) { + here = lcode[(here & 0xffff) + (hold & ((1 << op) - 1))]; + continue dolen; + } + else if (op & 32) { + //Tracevv((stderr, "inflate: end of block\n")); + state.mode = TYPE; + break top; + } + else { + strm.msg = 'invalid literal/length code'; + state.mode = BAD; + break top; + } + + break; // need to emulate goto via "continue" + } + } while (_in < last && _out < end); + + + len = bits >> 3; + _in -= len; + bits -= len << 3; + hold &= (1 << bits) - 1; + + + strm.next_in = _in; + strm.next_out = _out; + strm.avail_in = (_in < last ? 5 + (last - _in) : 5 - (_in - last)); + strm.avail_out = (_out < end ? 257 + (end - _out) : 257 - (_out - end)); + state.hold = hold; + state.bits = bits; + return; +} + + + +var MAXBITS = 15; +var ENOUGH_LENS = 852; +var ENOUGH_DISTS = 592; +//var ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS); + +var CODES = 0; +var LENS = 1; +var DISTS = 2; + +var lbase = [ + 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, + 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0 +]; + +var lext = [ + 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18, + 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78 +]; + +var dbase = [ + 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, + 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, + 8193, 12289, 16385, 24577, 0, 0 +]; + +var dext = [ + 16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, + 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, + 28, 28, 29, 29, 64, 64 +]; + +function inflate_table(type, lens, lens_index, codes, table, table_index, work, opts) { + var bits = opts.bits; + //here = opts.here; + + var len = 0; + var sym = 0; + var min = 0, max = 0; + var root = 0; + var curr = 0; + var drop = 0; + var left = 0; + var used = 0; + var huff = 0; + var incr; + var fill; + var low; + var mask; + var next; + var base = null; + var base_index = 0; +// var shoextra; + var end; + var count = Buf16(MAXBITS + 1); //[MAXBITS+1]; + var offs = Buf16(MAXBITS + 1); //[MAXBITS+1]; + var extra = null; + var extra_index = 0; + + var here_bits, here_op, here_val; + + + + + for (len = 0; len <= MAXBITS; len++) { + count[len] = 0; + } + for (sym = 0; sym < codes; sym++) { + count[lens[lens_index + sym]]++; + } + + + root = bits; + for (max = MAXBITS; max >= 1; max--) { + if (count[max] !== 0) { break; } + } + if (root > max) { + root = max; + } + if (max === 0) { + //table.op[opts.table_index] = 64; //here.op = (var char)64; + //table.bits[opts.table_index] = 1; //here.bits = (var char)1; + //table.val[opts.table_index++] = 0; //here.val = (var short)0; + table[table_index++] = (1 << 24) | (64 << 16) | 0; + + + //table.op[opts.table_index] = 64; + //table.bits[opts.table_index] = 1; + //table.val[opts.table_index++] = 0; + table[table_index++] = (1 << 24) | (64 << 16) | 0; + + opts.bits = 1; + return 0; + } + for (min = 1; min < max; min++) { + if (count[min] !== 0) { break; } + } + if (root < min) { + root = min; + } + + + left = 1; + for (len = 1; len <= MAXBITS; len++) { + left <<= 1; + left -= count[len]; + if (left < 0) { + return -1; + } + } + if (left > 0 && (type === CODES || max !== 1)) { + return -1; + } + + + offs[1] = 0; + for (len = 1; len < MAXBITS; len++) { + offs[len + 1] = offs[len] + count[len]; + } + + + for (sym = 0; sym < codes; sym++) { + if (lens[lens_index + sym] !== 0) { + work[offs[lens[lens_index + sym]]++] = sym; + } + } + + + + + // poor man optimization - use if-else instead of switch, + // to avoid deopts in old v8 + if (type === CODES) { + base = extra = work; + end = 19; + + } else if (type === LENS) { + base = lbase; + base_index -= 257; + extra = lext; + extra_index -= 257; + end = 256; + + } else { + base = dbase; + extra = dext; + end = -1; + } + + + huff = 0; + sym = 0; + len = min; + next = table_index; + curr = root; + drop = 0; + low = -1; + used = 1 << root; + mask = used - 1; + + + if ((type === LENS && used > ENOUGH_LENS) || + (type === DISTS && used > ENOUGH_DISTS)) { + return 1; + } + + + for (;;) { + + here_bits = len - drop; + if (work[sym] < end) { + here_op = 0; + here_val = work[sym]; + } + else if (work[sym] > end) { + here_op = extra[extra_index + work[sym]]; + here_val = base[base_index + work[sym]]; + } + else { + here_op = 32 + 64; + here_val = 0; + } + + + incr = 1 << (len - drop); + fill = 1 << curr; + min = fill; + do { + fill -= incr; + table[next + (huff >> drop) + fill] = (here_bits << 24) | (here_op << 16) | here_val |0; + } while (fill !== 0); + + + incr = 1 << (len - 1); + while (huff & incr) { + incr >>= 1; + } + if (incr !== 0) { + huff &= incr - 1; + huff += incr; + } else { + huff = 0; + } + + + sym++; + if (--count[len] === 0) { + if (len === max) { break; } + len = lens[lens_index + work[sym]]; + } + + + if (len > root && (huff & mask) !== low) { + + if (drop === 0) { + drop = root; + } + + + next += min; + + + curr = len - drop; + left = 1 << curr; + while (curr + drop < max) { + left -= count[curr + drop]; + if (left <= 0) { break; } + curr++; + left <<= 1; + } + + + used += 1 << curr; + if ((type === LENS && used > ENOUGH_LENS) || + (type === DISTS && used > ENOUGH_DISTS)) { + return 1; + } + + + low = huff & mask; + + table[low] = (root << 24) | (curr << 16) | (next - table_index) |0; + } + } + + + if (huff !== 0) { + //table.op[next + huff] = 64; + //table.bits[next + huff] = len - drop; + //table.val[next + huff] = 0; + table[next + huff] = ((len - drop) << 24) | (64 << 16) |0; + } + + + //opts.table_index += used; + opts.bits = root; + return 0; +} + + + +var CODES$1 = 0; +var LENS$1 = 1; +var DISTS$1 = 2; + + + + + + +//var Z_NO_FLUSH = 0; +//var Z_PARTIAL_FLUSH = 1; +//var Z_SYNC_FLUSH = 2; +//var Z_FULL_FLUSH = 3; +var Z_FINISH$1 = 4; +var Z_BLOCK$1 = 5; +var Z_TREES$1 = 6; + + + +var Z_OK$1 = 0; +var Z_STREAM_END$1 = 1; +var Z_NEED_DICT$1 = 2; +//var Z_ERRNO = -1; +var Z_STREAM_ERROR$1 = -2; +var Z_DATA_ERROR$1 = -3; +var Z_MEM_ERROR = -4; +var Z_BUF_ERROR$1 = -5; +//var Z_VERSION_ERROR = -6; + + +var Z_DEFLATED$1 = 8; + + + + + + +var HEAD = 1; +var FLAGS = 2; +var TIME = 3; +var OS = 4; +var EXLEN = 5; +var EXTRA = 6; +var NAME = 7; +var COMMENT = 8; +var HCRC = 9; +var DICTID = 10; +var DICT = 11; +var TYPE$1 = 12; +var TYPEDO = 13; +var STORED = 14; +var COPY_ = 15; +var COPY = 16; +var TABLE = 17; +var LENLENS = 18; +var CODELENS = 19; +var LEN_ = 20; +var LEN = 21; +var LENEXT = 22; +var DIST = 23; +var DISTEXT = 24; +var MATCH = 25; +var LIT = 26; +var CHECK = 27; +var LENGTH = 28; +var DONE = 29; +var BAD$1 = 30; +var MEM = 31; +var SYNC = 32; + + + + + +var ENOUGH_LENS$1 = 852; +var ENOUGH_DISTS$1 = 592; + + +function zswap32(q) { + return (((q >>> 24) & 0xff) + + ((q >>> 8) & 0xff00) + + ((q & 0xff00) << 8) + + ((q & 0xff) << 24)); +} + + +function InflateState() { + this.mode = 0; + this.last = false; + this.wrap = 0; + this.havedict = false; + this.flags = 0; + this.dmax = 0; + this.check = 0; + this.total = 0; + // TODO: may be {} + this.head = null; + + + this.wbits = 0; + this.wsize = 0; + this.whave = 0; + this.wnext = 0; + this.window = null; + + + this.hold = 0; + this.bits = 0; + + + this.length = 0; + this.offset = 0; + + + this.extra = 0; + + + this.lencode = null; + this.distcode = null; + this.lenbits = 0; + this.distbits = 0; + + + this.ncode = 0; + this.nlen = 0; + this.ndist = 0; + this.have = 0; + this.next = null; + + this.lens = Buf16(320); + this.work = Buf16(288); + + + //this.codes = Buf32(ENOUGH); + this.lendyn = null; + this.distdyn = null; + this.sane = 0; + this.back = 0; + this.was = 0; +} + +function inflateResetKeep(strm) { + var state; + + if (!strm || !strm.state) { return Z_STREAM_ERROR$1; } + state = strm.state; + strm.total_in = strm.total_out = state.total = 0; + strm.msg = ''; + if (state.wrap) { + strm.adler = state.wrap & 1; + } + state.mode = HEAD; + state.last = 0; + state.havedict = 0; + state.dmax = 32768; + state.head = null; + state.hold = 0; + state.bits = 0; + //state.lencode = state.distcode = state.next = state.codes; + state.lencode = state.lendyn = Buf32(ENOUGH_LENS$1); + state.distcode = state.distdyn = Buf32(ENOUGH_DISTS$1); + + state.sane = 1; + state.back = -1; + //Tracev((stderr, "inflate: reset\n")); + return Z_OK$1; +} + +function inflateReset(strm) { + var state; + + if (!strm || !strm.state) { return Z_STREAM_ERROR$1; } + state = strm.state; + state.wsize = 0; + state.whave = 0; + state.wnext = 0; + return inflateResetKeep(strm); + +} + +function inflateReset2(strm, windowBits) { + var wrap; + var state; + + + if (!strm || !strm.state) { return Z_STREAM_ERROR$1; } + state = strm.state; + + + if (windowBits < 0) { + wrap = 0; + windowBits = -windowBits; + } + else { + wrap = (windowBits >> 4) + 1; + if (windowBits < 48) { + windowBits &= 15; + } + } + + + if (windowBits && (windowBits < 8 || windowBits > 15)) { + return Z_STREAM_ERROR$1; + } + if (state.window !== null && state.wbits !== windowBits) { + state.window = null; + } + + + state.wrap = wrap; + state.wbits = windowBits; + return inflateReset(strm); +} + +function inflateInit2(strm, windowBits) { + var ret; + var state; + + if (!strm) { return Z_STREAM_ERROR$1; } + //strm.msg = Z_NULL; + + state = new InflateState(); + + //if (state === Z_NULL) return Z_MEM_ERROR; + //Tracev((stderr, "inflate: allocated\n")); + strm.state = state; + state.window = null; + ret = inflateReset2(strm, windowBits); + if (ret !== Z_OK$1) { + strm.state = null; + } + return ret; +} + + + +var virgin = true; + +var lenfix, distfix; // We have no pointers in JS, so keep tables separate + +function fixedtables(state) { + + if (virgin) { + var sym; + + lenfix = Buf32(512); + distfix = Buf32(32); + + + sym = 0; + while (sym < 144) { state.lens[sym++] = 8; } + while (sym < 256) { state.lens[sym++] = 9; } + while (sym < 280) { state.lens[sym++] = 7; } + while (sym < 288) { state.lens[sym++] = 8; } + + inflate_table(LENS$1, state.lens, 0, 288, lenfix, 0, state.work, { bits: 9 }); + + + sym = 0; + while (sym < 32) { state.lens[sym++] = 5; } + + inflate_table(DISTS$1, state.lens, 0, 32, distfix, 0, state.work, { bits: 5 }); + + + virgin = false; + } + + state.lencode = lenfix; + state.lenbits = 9; + state.distcode = distfix; + state.distbits = 5; +} + + + +function updatewindow(strm, src, end, copy) { + var dist; + var state = strm.state; + + + if (state.window === null) { + state.wsize = 1 << state.wbits; + state.wnext = 0; + state.whave = 0; + + state.window = Buf8(state.wsize); + } + + + if (copy >= state.wsize) { + arraySet(state.window, src, end - state.wsize, state.wsize, 0); + state.wnext = 0; + state.whave = state.wsize; + } + else { + dist = state.wsize - state.wnext; + if (dist > copy) { + dist = copy; + } + //zmemcpy(state->window + state->wnext, end - copy, dist); + arraySet(state.window, src, end - copy, dist, state.wnext); + copy -= dist; + if (copy) { + //zmemcpy(state->window, end - copy, copy); + arraySet(state.window, src, end - copy, copy, 0); + state.wnext = copy; + state.whave = state.wsize; + } + else { + state.wnext += dist; + if (state.wnext === state.wsize) { state.wnext = 0; } + if (state.whave < state.wsize) { state.whave += dist; } + } + } + return 0; +} + +function inflate(strm, flush) { + var state; + var input, output; // input/output buffers + var next; + var put; + var have, left; + var hold; + var bits; + var _in, _out; + var copy; + var from; + var from_source; + var here = 0; + var here_bits, here_op, here_val; // paked "here" denormalized (JS specific) + //var last; + var last_bits, last_op, last_val; // paked "last" denormalized (JS specific) + var len; + var ret; + var hbuf = Buf8(4); + var opts; + + var n; // temporary var for NEED_BITS + + var order = + [ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ]; + + + if (!strm || !strm.state || !strm.output || + (!strm.input && strm.avail_in !== 0)) { + return Z_STREAM_ERROR$1; + } + + state = strm.state; + if (state.mode === TYPE$1) { state.mode = TYPEDO; } + + + //--- LOAD() --- + put = strm.next_out; + output = strm.output; + left = strm.avail_out; + next = strm.next_in; + input = strm.input; + have = strm.avail_in; + hold = state.hold; + bits = state.bits; + //--- + + _in = have; + _out = left; + ret = Z_OK$1; + + inf_leave: // goto emulation + for (;;) { + switch (state.mode) { + case HEAD: + if (state.wrap === 0) { + state.mode = TYPEDO; + break; + } + //=== NEEDBITS(16); + while (bits < 16) { + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + } + //===// + if ((state.wrap & 2) && hold === 0x8b1f) { + state.check = 0; + //=== CRC2(state.check, hold); + hbuf[0] = hold & 0xff; + hbuf[1] = (hold >>> 8) & 0xff; + state.check = crc32(state.check, hbuf, 2, 0); + //===// + + //=== INITBITS(); + hold = 0; + bits = 0; + //===// + state.mode = FLAGS; + break; + } + state.flags = 0; + if (state.head) { + state.head.done = false; + } + if (!(state.wrap & 1) || + (((hold & 0xff) << 8) + (hold >> 8)) % 31) { + strm.msg = 'incorrect header check'; + state.mode = BAD$1; + break; + } + if ((hold & 0x0f) !== Z_DEFLATED$1) { + strm.msg = 'unknown compression method'; + state.mode = BAD$1; + break; + } + //--- DROPBITS(4) ---// + hold >>>= 4; + bits -= 4; + //---// + len = (hold & 0x0f) + 8; + if (state.wbits === 0) { + state.wbits = len; + } + else if (len > state.wbits) { + strm.msg = 'invalid window size'; + state.mode = BAD$1; + break; + } + state.dmax = 1 << len; + //Tracev((stderr, "inflate: zlib header ok\n")); + strm.adler = state.check = 1; + state.mode = hold & 0x200 ? DICTID : TYPE$1; + //=== INITBITS(); + hold = 0; + bits = 0; + //===// + break; + case FLAGS: + //=== NEEDBITS(16); */ + while (bits < 16) { + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + } + //===// + state.flags = hold; + if ((state.flags & 0xff) !== Z_DEFLATED$1) { + strm.msg = 'unknown compression method'; + state.mode = BAD$1; + break; + } + if (state.flags & 0xe000) { + strm.msg = 'unknown header flags set'; + state.mode = BAD$1; + break; + } + if (state.head) { + state.head.text = ((hold >> 8) & 1); + } + if (state.flags & 0x0200) { + //=== CRC2(state.check, hold); + hbuf[0] = hold & 0xff; + hbuf[1] = (hold >>> 8) & 0xff; + state.check = crc32(state.check, hbuf, 2, 0); + //===// + } + //=== INITBITS(); + hold = 0; + bits = 0; + //===// + state.mode = TIME; + + case TIME: + //=== NEEDBITS(32); */ + while (bits < 32) { + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + } + //===// + if (state.head) { + state.head.time = hold; + } + if (state.flags & 0x0200) { + //=== CRC4(state.check, hold) + hbuf[0] = hold & 0xff; + hbuf[1] = (hold >>> 8) & 0xff; + hbuf[2] = (hold >>> 16) & 0xff; + hbuf[3] = (hold >>> 24) & 0xff; + state.check = crc32(state.check, hbuf, 4, 0); + //=== + } + //=== INITBITS(); + hold = 0; + bits = 0; + //===// + state.mode = OS; + + case OS: + //=== NEEDBITS(16); */ + while (bits < 16) { + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + } + //===// + if (state.head) { + state.head.xflags = (hold & 0xff); + state.head.os = (hold >> 8); + } + if (state.flags & 0x0200) { + //=== CRC2(state.check, hold); + hbuf[0] = hold & 0xff; + hbuf[1] = (hold >>> 8) & 0xff; + state.check = crc32(state.check, hbuf, 2, 0); + //===// + } + //=== INITBITS(); + hold = 0; + bits = 0; + //===// + state.mode = EXLEN; + + case EXLEN: + if (state.flags & 0x0400) { + //=== NEEDBITS(16); */ + while (bits < 16) { + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + } + //===// + state.length = hold; + if (state.head) { + state.head.extra_len = hold; + } + if (state.flags & 0x0200) { + //=== CRC2(state.check, hold); + hbuf[0] = hold & 0xff; + hbuf[1] = (hold >>> 8) & 0xff; + state.check = crc32(state.check, hbuf, 2, 0); + //===// + } + //=== INITBITS(); + hold = 0; + bits = 0; + //===// + } + else if (state.head) { + state.head.extra = null; + } + state.mode = EXTRA; + + case EXTRA: + if (state.flags & 0x0400) { + copy = state.length; + if (copy > have) { copy = have; } + if (copy) { + if (state.head) { + len = state.head.extra_len - state.length; + if (!state.head.extra) { + // Use untyped array for more convenient processing later + state.head.extra = new Array(state.head.extra_len); + } + arraySet( + state.head.extra, + input, + next, + // extra field is limited to 65536 bytes + // - no need for additional size check + copy, + + len + ); + //zmemcpy(state.head.extra + len, next, + // len + copy > state.head.extra_max ? + // state.head.extra_max - len : copy); + } + if (state.flags & 0x0200) { + state.check = crc32(state.check, input, copy, next); + } + have -= copy; + next += copy; + state.length -= copy; + } + if (state.length) { break inf_leave; } + } + state.length = 0; + state.mode = NAME; + + case NAME: + if (state.flags & 0x0800) { + if (have === 0) { break inf_leave; } + copy = 0; + do { + // TODO: 2 or 1 bytes? + len = input[next + copy++]; + + if (state.head && len && + (state.length < 65536 )) { + state.head.name += String.fromCharCode(len); + } + } while (len && copy < have); + + if (state.flags & 0x0200) { + state.check = crc32(state.check, input, copy, next); + } + have -= copy; + next += copy; + if (len) { break inf_leave; } + } + else if (state.head) { + state.head.name = null; + } + state.length = 0; + state.mode = COMMENT; + + case COMMENT: + if (state.flags & 0x1000) { + if (have === 0) { break inf_leave; } + copy = 0; + do { + len = input[next + copy++]; + + if (state.head && len && + (state.length < 65536 )) { + state.head.comment += String.fromCharCode(len); + } + } while (len && copy < have); + if (state.flags & 0x0200) { + state.check = crc32(state.check, input, copy, next); + } + have -= copy; + next += copy; + if (len) { break inf_leave; } + } + else if (state.head) { + state.head.comment = null; + } + state.mode = HCRC; + + case HCRC: + if (state.flags & 0x0200) { + //=== NEEDBITS(16); */ + while (bits < 16) { + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + } + //===// + if (hold !== (state.check & 0xffff)) { + strm.msg = 'header crc mismatch'; + state.mode = BAD$1; + break; + } + //=== INITBITS(); + hold = 0; + bits = 0; + //===// + } + if (state.head) { + state.head.hcrc = ((state.flags >> 9) & 1); + state.head.done = true; + } + strm.adler = state.check = 0; + state.mode = TYPE$1; + break; + case DICTID: + //=== NEEDBITS(32); */ + while (bits < 32) { + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + } + //===// + strm.adler = state.check = zswap32(hold); + //=== INITBITS(); + hold = 0; + bits = 0; + //===// + state.mode = DICT; + + case DICT: + if (state.havedict === 0) { + //--- RESTORE() --- + strm.next_out = put; + strm.avail_out = left; + strm.next_in = next; + strm.avail_in = have; + state.hold = hold; + state.bits = bits; + //--- + return Z_NEED_DICT$1; + } + strm.adler = state.check = 1; + state.mode = TYPE$1; + + case TYPE$1: + if (flush === Z_BLOCK$1 || flush === Z_TREES$1) { break inf_leave; } + + case TYPEDO: + if (state.last) { + //--- BYTEBITS() ---// + hold >>>= bits & 7; + bits -= bits & 7; + //---// + state.mode = CHECK; + break; + } + //=== NEEDBITS(3); */ + while (bits < 3) { + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + } + //===// + state.last = (hold & 0x01); + //--- DROPBITS(1) ---// + hold >>>= 1; + bits -= 1; + //---// + + switch ((hold & 0x03)) { + case 0: + //Tracev((stderr, "inflate: stored block%s\n", + // state.last ? " (last)" : "")); + state.mode = STORED; + break; + case 1: + fixedtables(state); + //Tracev((stderr, "inflate: fixed codes block%s\n", + // state.last ? " (last)" : "")); + state.mode = LEN_; + if (flush === Z_TREES$1) { + //--- DROPBITS(2) ---// + hold >>>= 2; + bits -= 2; + //---// + break inf_leave; + } + break; + case 2: + //Tracev((stderr, "inflate: dynamic codes block%s\n", + // state.last ? " (last)" : "")); + state.mode = TABLE; + break; + case 3: + strm.msg = 'invalid block type'; + state.mode = BAD$1; + } + //--- DROPBITS(2) ---// + hold >>>= 2; + bits -= 2; + //---// + break; + case STORED: + //--- BYTEBITS() ---// + hold >>>= bits & 7; + bits -= bits & 7; + //---// + //=== NEEDBITS(32); */ + while (bits < 32) { + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + } + //===// + if ((hold & 0xffff) !== ((hold >>> 16) ^ 0xffff)) { + strm.msg = 'invalid stored block lengths'; + state.mode = BAD$1; + break; + } + state.length = hold & 0xffff; + //Tracev((stderr, "inflate: stored length %u\n", + // state.length)); + //=== INITBITS(); + hold = 0; + bits = 0; + //===// + state.mode = COPY_; + if (flush === Z_TREES$1) { break inf_leave; } + + case COPY_: + state.mode = COPY; + + case COPY: + copy = state.length; + if (copy) { + if (copy > have) { copy = have; } + if (copy > left) { copy = left; } + if (copy === 0) { break inf_leave; } + //--- zmemcpy(put, next, copy); --- + arraySet(output, input, next, copy, put); + //---// + have -= copy; + next += copy; + left -= copy; + put += copy; + state.length -= copy; + break; + } + //Tracev((stderr, "inflate: stored end\n")); + state.mode = TYPE$1; + break; + case TABLE: + //=== NEEDBITS(14); */ + while (bits < 14) { + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + } + //===// + state.nlen = (hold & 0x1f) + 257; + //--- DROPBITS(5) ---// + hold >>>= 5; + bits -= 5; + //---// + state.ndist = (hold & 0x1f) + 1; + //--- DROPBITS(5) ---// + hold >>>= 5; + bits -= 5; + //---// + state.ncode = (hold & 0x0f) + 4; + //--- DROPBITS(4) ---// + hold >>>= 4; + bits -= 4; + //---// +//#ifndef PKZIP_BUG_WORKAROUND + if (state.nlen > 286 || state.ndist > 30) { + strm.msg = 'too many length or distance symbols'; + state.mode = BAD$1; + break; + } +//#endif + //Tracev((stderr, "inflate: table sizes ok\n")); + state.have = 0; + state.mode = LENLENS; + + case LENLENS: + while (state.have < state.ncode) { + //=== NEEDBITS(3); + while (bits < 3) { + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + } + //===// + state.lens[order[state.have++]] = (hold & 0x07);//BITS(3); + //--- DROPBITS(3) ---// + hold >>>= 3; + bits -= 3; + //---// + } + while (state.have < 19) { + state.lens[order[state.have++]] = 0; + } + // We have separate tables & no pointers. 2 commented lines below not needed. + //state.next = state.codes; + //state.lencode = state.next; + // Switch to use dynamic table + state.lencode = state.lendyn; + state.lenbits = 7; + + opts = { bits: state.lenbits }; + ret = inflate_table(CODES$1, state.lens, 0, 19, state.lencode, 0, state.work, opts); + state.lenbits = opts.bits; + + if (ret) { + strm.msg = 'invalid code lengths set'; + state.mode = BAD$1; + break; + } + //Tracev((stderr, "inflate: code lengths ok\n")); + state.have = 0; + state.mode = CODELENS; + + case CODELENS: + while (state.have < state.nlen + state.ndist) { + for (;;) { + here = state.lencode[hold & ((1 << state.lenbits) - 1)]; + here_bits = here >>> 24; + here_op = (here >>> 16) & 0xff; + here_val = here & 0xffff; + + if ((here_bits) <= bits) { break; } + //--- PULLBYTE() ---// + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + //---// + } + if (here_val < 16) { + //--- DROPBITS(here.bits) ---// + hold >>>= here_bits; + bits -= here_bits; + //---// + state.lens[state.have++] = here_val; + } + else { + if (here_val === 16) { + //=== NEEDBITS(here.bits + 2); + n = here_bits + 2; + while (bits < n) { + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + } + //===// + //--- DROPBITS(here.bits) ---// + hold >>>= here_bits; + bits -= here_bits; + //---// + if (state.have === 0) { + strm.msg = 'invalid bit length repeat'; + state.mode = BAD$1; + break; + } + len = state.lens[state.have - 1]; + copy = 3 + (hold & 0x03);//BITS(2); + //--- DROPBITS(2) ---// + hold >>>= 2; + bits -= 2; + //---// + } + else if (here_val === 17) { + //=== NEEDBITS(here.bits + 3); + n = here_bits + 3; + while (bits < n) { + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + } + //===// + //--- DROPBITS(here.bits) ---// + hold >>>= here_bits; + bits -= here_bits; + //---// + len = 0; + copy = 3 + (hold & 0x07);//BITS(3); + //--- DROPBITS(3) ---// + hold >>>= 3; + bits -= 3; + //---// + } + else { + //=== NEEDBITS(here.bits + 7); + n = here_bits + 7; + while (bits < n) { + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + } + //===// + //--- DROPBITS(here.bits) ---// + hold >>>= here_bits; + bits -= here_bits; + //---// + len = 0; + copy = 11 + (hold & 0x7f);//BITS(7); + //--- DROPBITS(7) ---// + hold >>>= 7; + bits -= 7; + //---// + } + if (state.have + copy > state.nlen + state.ndist) { + strm.msg = 'invalid bit length repeat'; + state.mode = BAD$1; + break; + } + while (copy--) { + state.lens[state.have++] = len; + } + } + } + + + if (state.mode === BAD$1) { break; } + + + if (state.lens[256] === 0) { + strm.msg = 'invalid code -- missing end-of-block'; + state.mode = BAD$1; + break; + } + + + state.lenbits = 9; + + opts = { bits: state.lenbits }; + ret = inflate_table(LENS$1, state.lens, 0, state.nlen, state.lencode, 0, state.work, opts); + // We have separate tables & no pointers. 2 commented lines below not needed. + // state.next_index = opts.table_index; + state.lenbits = opts.bits; + // state.lencode = state.next; + + if (ret) { + strm.msg = 'invalid literal/lengths set'; + state.mode = BAD$1; + break; + } + + state.distbits = 6; + //state.distcode.copy(state.codes); + // Switch to use dynamic table + state.distcode = state.distdyn; + opts = { bits: state.distbits }; + ret = inflate_table(DISTS$1, state.lens, state.nlen, state.ndist, state.distcode, 0, state.work, opts); + // We have separate tables & no pointers. 2 commented lines below not needed. + // state.next_index = opts.table_index; + state.distbits = opts.bits; + // state.distcode = state.next; + + if (ret) { + strm.msg = 'invalid distances set'; + state.mode = BAD$1; + break; + } + //Tracev((stderr, 'inflate: codes ok\n')); + state.mode = LEN_; + if (flush === Z_TREES$1) { break inf_leave; } + + case LEN_: + state.mode = LEN; + + case LEN: + if (have >= 6 && left >= 258) { + //--- RESTORE() --- + strm.next_out = put; + strm.avail_out = left; + strm.next_in = next; + strm.avail_in = have; + state.hold = hold; + state.bits = bits; + //--- + inflate_fast(strm, _out); + //--- LOAD() --- + put = strm.next_out; + output = strm.output; + left = strm.avail_out; + next = strm.next_in; + input = strm.input; + have = strm.avail_in; + hold = state.hold; + bits = state.bits; + //--- + + if (state.mode === TYPE$1) { + state.back = -1; + } + break; + } + state.back = 0; + for (;;) { + here = state.lencode[hold & ((1 << state.lenbits) - 1)]; + here_bits = here >>> 24; + here_op = (here >>> 16) & 0xff; + here_val = here & 0xffff; + + if (here_bits <= bits) { break; } + //--- PULLBYTE() ---// + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + //---// + } + if (here_op && (here_op & 0xf0) === 0) { + last_bits = here_bits; + last_op = here_op; + last_val = here_val; + for (;;) { + here = state.lencode[last_val + + ((hold & ((1 << (last_bits + last_op)) - 1)) >> last_bits)]; + here_bits = here >>> 24; + here_op = (here >>> 16) & 0xff; + here_val = here & 0xffff; + + if ((last_bits + here_bits) <= bits) { break; } + //--- PULLBYTE() ---// + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + //---// + } + //--- DROPBITS(last.bits) ---// + hold >>>= last_bits; + bits -= last_bits; + //---// + state.back += last_bits; + } + //--- DROPBITS(here.bits) ---// + hold >>>= here_bits; + bits -= here_bits; + //---// + state.back += here_bits; + state.length = here_val; + if (here_op === 0) { + //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ? + // "inflate: literal '%c'\n" : + // "inflate: literal 0x%02x\n", here.val)); + state.mode = LIT; + break; + } + if (here_op & 32) { + //Tracevv((stderr, "inflate: end of block\n")); + state.back = -1; + state.mode = TYPE$1; + break; + } + if (here_op & 64) { + strm.msg = 'invalid literal/length code'; + state.mode = BAD$1; + break; + } + state.extra = here_op & 15; + state.mode = LENEXT; + + case LENEXT: + if (state.extra) { + //=== NEEDBITS(state.extra); + n = state.extra; + while (bits < n) { + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + } + //===// + state.length += hold & ((1 << state.extra) - 1); + //--- DROPBITS(state.extra) ---// + hold >>>= state.extra; + bits -= state.extra; + //---// + state.back += state.extra; + } + //Tracevv((stderr, "inflate: length %u\n", state.length)); + state.was = state.length; + state.mode = DIST; + + case DIST: + for (;;) { + here = state.distcode[hold & ((1 << state.distbits) - 1)]; + here_bits = here >>> 24; + here_op = (here >>> 16) & 0xff; + here_val = here & 0xffff; + + if ((here_bits) <= bits) { break; } + //--- PULLBYTE() ---// + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + //---// + } + if ((here_op & 0xf0) === 0) { + last_bits = here_bits; + last_op = here_op; + last_val = here_val; + for (;;) { + here = state.distcode[last_val + + ((hold & ((1 << (last_bits + last_op)) - 1)) >> last_bits)]; + here_bits = here >>> 24; + here_op = (here >>> 16) & 0xff; + here_val = here & 0xffff; + + if ((last_bits + here_bits) <= bits) { break; } + //--- PULLBYTE() ---// + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + //---// + } + //--- DROPBITS(last.bits) ---// + hold >>>= last_bits; + bits -= last_bits; + //---// + state.back += last_bits; + } + //--- DROPBITS(here.bits) ---// + hold >>>= here_bits; + bits -= here_bits; + //---// + state.back += here_bits; + if (here_op & 64) { + strm.msg = 'invalid distance code'; + state.mode = BAD$1; + break; + } + state.offset = here_val; + state.extra = (here_op) & 15; + state.mode = DISTEXT; + + case DISTEXT: + if (state.extra) { + //=== NEEDBITS(state.extra); + n = state.extra; + while (bits < n) { + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + } + //===// + state.offset += hold & ((1 << state.extra) - 1); + //--- DROPBITS(state.extra) ---// + hold >>>= state.extra; + bits -= state.extra; + //---// + state.back += state.extra; + } +//#ifdef INFLATE_STRICT + if (state.offset > state.dmax) { + strm.msg = 'invalid distance too far back'; + state.mode = BAD$1; + break; + } +//#endif + //Tracevv((stderr, "inflate: distance %u\n", state.offset)); + state.mode = MATCH; + + case MATCH: + if (left === 0) { break inf_leave; } + copy = _out - left; + if (state.offset > copy) { + copy = state.offset - copy; + if (copy > state.whave) { + if (state.sane) { + strm.msg = 'invalid distance too far back'; + state.mode = BAD$1; + break; + } +// (!) This block is disabled in zlib defaults, +// don't enable it for binary compatibility +//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR +// Trace((stderr, "inflate.c too far\n")); +// copy -= state.whave; +// if (copy > state.length) { copy = state.length; } +// if (copy > left) { copy = left; } +// left -= copy; +// state.length -= copy; +// do { +// output[put++] = 0; +// } while (--copy); +// if (state.length === 0) { state.mode = LEN; } +// break; +//#endif + } + if (copy > state.wnext) { + copy -= state.wnext; + from = state.wsize - copy; + } + else { + from = state.wnext - copy; + } + if (copy > state.length) { copy = state.length; } + from_source = state.window; + } + else { + from_source = output; + from = put - state.offset; + copy = state.length; + } + if (copy > left) { copy = left; } + left -= copy; + state.length -= copy; + do { + output[put++] = from_source[from++]; + } while (--copy); + if (state.length === 0) { state.mode = LEN; } + break; + case LIT: + if (left === 0) { break inf_leave; } + output[put++] = state.length; + left--; + state.mode = LEN; + break; + case CHECK: + if (state.wrap) { + //=== NEEDBITS(32); + while (bits < 32) { + if (have === 0) { break inf_leave; } + have--; + // Use '|' instead of '+' to make sure that result is signed + hold |= input[next++] << bits; + bits += 8; + } + //===// + _out -= left; + strm.total_out += _out; + state.total += _out; + if (_out) { + strm.adler = state.check = + + (state.flags ? crc32(state.check, output, _out, put - _out) : adler32(state.check, output, _out, put - _out)); + + } + _out = left; + // NB: crc32 stored as signed 32-bit int, zswap32 returns signed too + if ((state.flags ? hold : zswap32(hold)) !== state.check) { + strm.msg = 'incorrect data check'; + state.mode = BAD$1; + break; + } + //=== INITBITS(); + hold = 0; + bits = 0; + //===// + //Tracev((stderr, "inflate: check matches trailer\n")); + } + state.mode = LENGTH; + + case LENGTH: + if (state.wrap && state.flags) { + //=== NEEDBITS(32); + while (bits < 32) { + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + } + //===// + if (hold !== (state.total & 0xffffffff)) { + strm.msg = 'incorrect length check'; + state.mode = BAD$1; + break; + } + //=== INITBITS(); + hold = 0; + bits = 0; + //===// + //Tracev((stderr, "inflate: length matches trailer\n")); + } + state.mode = DONE; + + case DONE: + ret = Z_STREAM_END$1; + break inf_leave; + case BAD$1: + ret = Z_DATA_ERROR$1; + break inf_leave; + case MEM: + return Z_MEM_ERROR; + case SYNC: + + default: + return Z_STREAM_ERROR$1; + } + } + + // inf_leave <- here is real place for "goto inf_leave", emulated via "break inf_leave" + + + + //--- RESTORE() --- + strm.next_out = put; + strm.avail_out = left; + strm.next_in = next; + strm.avail_in = have; + state.hold = hold; + state.bits = bits; + //--- + + if (state.wsize || (_out !== strm.avail_out && state.mode < BAD$1 && + (state.mode < CHECK || flush !== Z_FINISH$1))) { + if (updatewindow(strm, strm.output, strm.next_out, _out - strm.avail_out)) ; + } + _in -= strm.avail_in; + _out -= strm.avail_out; + strm.total_in += _in; + strm.total_out += _out; + state.total += _out; + if (state.wrap && _out) { + strm.adler = state.check = + (state.flags ? crc32(state.check, output, _out, strm.next_out - _out) : adler32(state.check, output, _out, strm.next_out - _out)); + } + strm.data_type = state.bits + (state.last ? 64 : 0) + + (state.mode === TYPE$1 ? 128 : 0) + + (state.mode === LEN_ || state.mode === COPY_ ? 256 : 0); + if (((_in === 0 && _out === 0) || flush === Z_FINISH$1) && ret === Z_OK$1) { + ret = Z_BUF_ERROR$1; + } + return ret; +} + +function inflateEnd(strm) { + + if (!strm || !strm.state ) { + return Z_STREAM_ERROR$1; + } + + var state = strm.state; + if (state.window) { + state.window = null; + } + strm.state = null; + return Z_OK$1; +} + +function inflateGetHeader(strm, head) { + var state; + + + if (!strm || !strm.state) { return Z_STREAM_ERROR$1; } + state = strm.state; + if ((state.wrap & 2) === 0) { return Z_STREAM_ERROR$1; } + + + state.head = head; + head.done = false; + return Z_OK$1; +} + +function inflateSetDictionary(strm, dictionary) { + var dictLength = dictionary.length; + + var state; + var dictid; + var ret; + + + if (!strm || !strm.state ) { return Z_STREAM_ERROR$1; } + state = strm.state; + + if (state.wrap !== 0 && state.mode !== DICT) { + return Z_STREAM_ERROR$1; + } + + + if (state.mode === DICT) { + dictid = 1; + + dictid = adler32(dictid, dictionary, dictLength, 0); + if (dictid !== state.check) { + return Z_DATA_ERROR$1; + } + } + + ret = updatewindow(strm, dictionary, dictLength, dictLength); + if (ret) { + state.mode = MEM; + return Z_MEM_ERROR; + } + state.havedict = 1; + // Tracev((stderr, "inflate: dictionary set\n")); + return Z_OK$1; +} + + + + + +// (C) 1995-2013 Jean-loup Gailly and Mark Adler +// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin +// +// This software is provided 'as-is', without any express or implied +// warranty. In no event will the authors be held liable for any damages +// arising from the use of this software. +// +// Permission is granted to anyone to use this software for any purpose, +// including commercial applications, and to alter it and redistribute it +// freely, subject to the following restrictions: +// +// 1. The origin of this software must not be misrepresented; you must not +// claim that you wrote the original software. If you use this software +// in a product, an acknowledgment in the product documentation would be +// appreciated but is not required. +// 2. Altered source versions must be plainly marked as such, and must not be +// misrepresented as being the original software. +// 3. This notice may not be removed or altered from any source distribution. + +var msg = { + 2: 'need dictionary', + 1: 'stream end', + 0: '', + '-1': 'file error', + '-2': 'stream error', + '-3': 'data error', + '-4': 'insufficient memory', + '-5': 'buffer error', + '-6': 'incompatible version' +}; + + + +// (C) 1995-2013 Jean-loup Gailly and Mark Adler +// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin +// +// This software is provided 'as-is', without any express or implied +// warranty. In no event will the authors be held liable for any damages +// arising from the use of this software. +// +// Permission is granted to anyone to use this software for any purpose, +// including commercial applications, and to alter it and redistribute it +// freely, subject to the following restrictions: +// +// 1. The origin of this software must not be misrepresented; you must not +// claim that you wrote the original software. If you use this software +// in a product, an acknowledgment in the product documentation would be +// appreciated but is not required. +// 2. Altered source versions must be plainly marked as such, and must not be +// misrepresented as being the original software. +// 3. This notice may not be removed or altered from any source distribution. + +function ZStream() { + + this.input = null; // JS specific, because we have no pointers + this.next_in = 0; + + this.avail_in = 0; + + this.total_in = 0; + + this.output = null; // JS specific, because we have no pointers + this.next_out = 0; + + this.avail_out = 0; + + this.total_out = 0; + + this.msg = ''; + + this.state = null; + + this.data_type = 2; + + this.adler = 0; +} + + + +// (C) 1995-2013 Jean-loup Gailly and Mark Adler +// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin +// +// This software is provided 'as-is', without any express or implied +// warranty. In no event will the authors be held liable for any damages +// arising from the use of this software. +// +// Permission is granted to anyone to use this software for any purpose, +// including commercial applications, and to alter it and redistribute it +// freely, subject to the following restrictions: +// +// 1. The origin of this software must not be misrepresented; you must not +// claim that you wrote the original software. If you use this software +// in a product, an acknowledgment in the product documentation would be +// appreciated but is not required. +// 2. Altered source versions must be plainly marked as such, and must not be +// misrepresented as being the original software. +// 3. This notice may not be removed or altered from any source distribution. + +function GZheader() { + + this.text = 0; + + this.time = 0; + + this.xflags = 0; + + this.os = 0; + + this.extra = null; + + this.extra_len = 0; // Actually, we don't need it in JS, + // but leave for few code modifications + + // + // Setup limits is not necessary because in js we should not preallocate memory + // for inflate use constant limit in 65536 bytes + // + + + // this.extra_max = 0; + + this.name = ''; + + // this.name_max = 0; + + this.comment = ''; + + // this.comm_max = 0; + + this.hcrc = 0; + + this.done = false; +} + + + +var toString = Object.prototype.toString; + + + + + + + + + + + + + +function Inflate(options) { + if (!(this instanceof Inflate)) { return new Inflate(options); } + + this.options = assign({ + chunkSize: 16384, + windowBits: 0, + to: '' + }, options || {}); + + var opt = this.options; + + // Force window size for `raw` data, if not set directly, + // because we have no header for autodetect. + if (opt.raw && (opt.windowBits >= 0) && (opt.windowBits < 16)) { + opt.windowBits = -opt.windowBits; + if (opt.windowBits === 0) { opt.windowBits = -15; } + } + + // If `windowBits` not defined (and mode not raw) - set autodetect flag for gzip/deflate + if ((opt.windowBits >= 0) && (opt.windowBits < 16) && + !(options && options.windowBits)) { + opt.windowBits += 32; + } + + // Gzip header has no info about windows size, we can do autodetect only + // for deflate. So, if window size not set, force it to max when gzip possible + if ((opt.windowBits > 15) && (opt.windowBits < 48)) { + // bit 3 (16) -> gzipped data + // bit 4 (32) -> autodetect gzip/deflate + if ((opt.windowBits & 15) === 0) { + opt.windowBits |= 15; + } + } + + this.err = 0; // error code, if happens (0 = Z_OK) + this.msg = ''; // error message + this.ended = false; // used to avoid multiple onEnd() calls + this.chunks = []; // chunks of compressed data + + this.strm = new ZStream(); + this.strm.avail_out = 0; + + var status = inflateInit2( + this.strm, + opt.windowBits + ); + + if (status !== Z_OK) { + throw new Error(msg[status]); + } + + this.header = new GZheader(); + + inflateGetHeader(this.strm, this.header); + + // Setup dictionary + if (opt.dictionary) { + // Convert data if needed + if (typeof opt.dictionary === 'string') { + opt.dictionary = string2buf(opt.dictionary); + } else if (toString.call(opt.dictionary) === '[object ArrayBuffer]') { + opt.dictionary = new Uint8Array(opt.dictionary); + } + if (opt.raw) { //In raw mode we need to set the dictionary early + status = inflateSetDictionary(this.strm, opt.dictionary); + if (status !== Z_OK) { + throw new Error(msg[status]); + } + } + } +} + + +Inflate.prototype.push = function (data, mode) { + var strm = this.strm; + var chunkSize = this.options.chunkSize; + var dictionary = this.options.dictionary; + var status, _mode; + var next_out_utf8, tail, utf8str; + var dict; + + // Flag to properly process Z_BUF_ERROR on testing inflate call + // when we check that all output data was flushed. + var allowBufError = false; + + if (this.ended) { return false; } + _mode = (mode === ~~mode) ? mode : ((mode === true) ? Z_FINISH : Z_NO_FLUSH); + + // Convert data if needed + if (typeof data === 'string') { + // Only binary strings can be decompressed on practice + strm.input = binstring2buf(data); + } else if (toString.call(data) === '[object ArrayBuffer]') { + strm.input = new Uint8Array(data); + } else { + strm.input = data; + } + + strm.next_in = 0; + strm.avail_in = strm.input.length; + + do { + if (strm.avail_out === 0) { + strm.output = Buf8(chunkSize); + strm.next_out = 0; + strm.avail_out = chunkSize; + } + + status = inflate(strm, Z_NO_FLUSH); + + if (status === Z_NEED_DICT && dictionary) { + // Convert data if needed + if (typeof dictionary === 'string') { + dict = string2buf(dictionary); + } else if (toString.call(dictionary) === '[object ArrayBuffer]') { + dict = new Uint8Array(dictionary); + } else { + dict = dictionary; + } + + status = inflateSetDictionary(this.strm, dict); + + } + + if (status === Z_BUF_ERROR && allowBufError === true) { + status = Z_OK; + allowBufError = false; + } + + if (status !== Z_STREAM_END && status !== Z_OK) { + this.onEnd(status); + this.ended = true; + return false; + } + + if (strm.next_out) { + if (strm.avail_out === 0 || status === Z_STREAM_END || (strm.avail_in === 0 && (_mode === Z_FINISH || _mode === Z_SYNC_FLUSH))) { + + if (this.options.to === 'string') { + + next_out_utf8 = utf8border(strm.output, strm.next_out); + + tail = strm.next_out - next_out_utf8; + utf8str = buf2string(strm.output, next_out_utf8); + + // move tail + strm.next_out = tail; + strm.avail_out = chunkSize - tail; + if (tail) { arraySet(strm.output, strm.output, next_out_utf8, tail, 0); } + + this.onData(utf8str); + + } else { + this.onData(shrinkBuf(strm.output, strm.next_out)); + } + } + } + + // When no more input data, we should check that internal inflate buffers + // are flushed. The only way to do it when avail_out = 0 - run one more + // inflate pass. But if output data not exists, inflate return Z_BUF_ERROR. + // Here we set flag to process this error properly. + // + // NOTE. Deflate does not return error in this case and does not needs such + // logic. + if (strm.avail_in === 0 && strm.avail_out === 0) { + allowBufError = true; + } + + } while ((strm.avail_in > 0 || strm.avail_out === 0) && status !== Z_STREAM_END); + + if (status === Z_STREAM_END) { + _mode = Z_FINISH; + } + + // Finalize on the last chunk. + if (_mode === Z_FINISH) { + status = inflateEnd(this.strm); + this.onEnd(status); + this.ended = true; + return status === Z_OK; + } + + // callback interim results if Z_SYNC_FLUSH. + if (_mode === Z_SYNC_FLUSH) { + this.onEnd(Z_OK); + strm.avail_out = 0; + return true; + } + + return true; +}; + + + +Inflate.prototype.onData = function (chunk) { + this.chunks.push(chunk); +}; + + + +Inflate.prototype.onEnd = function (status) { + // On success - join + if (status === Z_OK) { + if (this.options.to === 'string') { + // Glue & convert here, until we teach pako to send + // utf8 aligned strings to onData + this.result = this.chunks.join(''); + } else { + this.result = flattenChunks(this.chunks); + } + } + this.chunks = []; + this.err = status; + this.msg = this.strm.msg; +}; + + + +function inflate$1(input, options) { + var inflator = new Inflate(options); + + inflator.push(input, true); + + // That will never happens, if you don't cheat with options :) + if (inflator.err) { throw inflator.msg || msg[inflator.err]; } + + return inflator.result; +} + + + +function inflateRaw(input, options) { + options = options || {}; + options.raw = true; + return inflate$1(input, options); +} + + +var ungzip = inflate$1; + + + +function zero(buf) { var len = buf.length; while (--len >= 0) { buf[len] = 0; } } + +// From zutil.h + +var STORED_BLOCK = 0; +var STATIC_TREES = 1; +var DYN_TREES = 2; + + +var MIN_MATCH = 3; +var MAX_MATCH = 258; + + +// From deflate.h + + +var LENGTH_CODES = 29; + + +var LITERALS = 256; + + +var L_CODES = LITERALS + 1 + LENGTH_CODES; + + +var D_CODES = 30; + + +var BL_CODES = 19; + + +var HEAP_SIZE = 2 * L_CODES + 1; + + +var MAX_BITS = 15; + + +var Buf_size = 16; + + + + + +var MAX_BL_BITS = 7; + + +var END_BLOCK = 256; + + +var REP_3_6 = 16; + + +var REPZ_3_10 = 17; + + +var REPZ_11_138 = 18; + + + +var extra_lbits = + [0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]; + +var extra_dbits = + [0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]; + +var extra_blbits = + [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]; + +var bl_order = + [16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]; + + + + + + +// We pre-fill arrays with 0 to avoid uninitialized gaps + +var DIST_CODE_LEN = 512; + +// !!!! Use flat array instead of structure, Freq = i*2, Len = i*2+1 +var static_ltree = new Array((L_CODES + 2) * 2); +zero(static_ltree); + + +var static_dtree = new Array(D_CODES * 2); +zero(static_dtree); + + +var _dist_code = new Array(DIST_CODE_LEN); +zero(_dist_code); + + +var _length_code = new Array(MAX_MATCH - MIN_MATCH + 1); +zero(_length_code); + + +var base_length = new Array(LENGTH_CODES); +zero(base_length); + + +var base_dist = new Array(D_CODES); +zero(base_dist); + + + +function StaticTreeDesc(static_tree, extra_bits, extra_base, elems, max_length) { + + this.static_tree = static_tree; + this.extra_bits = extra_bits; + this.extra_base = extra_base; + this.elems = elems; + this.max_length = max_length; + + // show if `static_tree` has data or dummy - needed for monomorphic objects + this.has_stree = static_tree && static_tree.length; +} + + +var static_l_desc; +var static_d_desc; +var static_bl_desc; + + +function TreeDesc(dyn_tree, stat_desc) { + this.dyn_tree = dyn_tree; + this.max_code = 0; + this.stat_desc = stat_desc; +} + + + +function d_code(dist) { + return dist < 256 ? _dist_code[dist] : _dist_code[256 + (dist >>> 7)]; +} + + + +function put_short(s, w) { +// put_byte(s, (uch)((w) & 0xff)); +// put_byte(s, (uch)((ush)(w) >> 8)); + s.pending_buf[s.pending++] = (w) & 0xff; + s.pending_buf[s.pending++] = (w >>> 8) & 0xff; +} + + + +function send_bits(s, value, length) { + if (s.bi_valid > (Buf_size - length)) { + s.bi_buf |= (value << s.bi_valid) & 0xffff; + put_short(s, s.bi_buf); + s.bi_buf = value >> (Buf_size - s.bi_valid); + s.bi_valid += length - Buf_size; + } else { + s.bi_buf |= (value << s.bi_valid) & 0xffff; + s.bi_valid += length; + } +} + + +function send_code(s, c, tree) { + send_bits(s, tree[c * 2], tree[c * 2 + 1]); +} + + + +function bi_reverse(code, len) { + var res = 0; + do { + res |= code & 1; + code >>>= 1; + res <<= 1; + } while (--len > 0); + return res >>> 1; +} + + + +function bi_flush(s) { + if (s.bi_valid === 16) { + put_short(s, s.bi_buf); + s.bi_buf = 0; + s.bi_valid = 0; + + } else if (s.bi_valid >= 8) { + s.pending_buf[s.pending++] = s.bi_buf & 0xff; + s.bi_buf >>= 8; + s.bi_valid -= 8; + } +} + + + +function gen_bitlen(s, desc) +// deflate_state *s; +// tree_desc *desc; +{ + var tree = desc.dyn_tree; + var max_code = desc.max_code; + var stree = desc.stat_desc.static_tree; + var has_stree = desc.stat_desc.has_stree; + var extra = desc.stat_desc.extra_bits; + var base = desc.stat_desc.extra_base; + var max_length = desc.stat_desc.max_length; + var h; + var n, m; + var bits; + var xbits; + var f; + var overflow = 0; + + for (bits = 0; bits <= MAX_BITS; bits++) { + s.bl_count[bits] = 0; + } + + + tree[s.heap[s.heap_max] * 2 + 1] = 0; + + for (h = s.heap_max + 1; h < HEAP_SIZE; h++) { + n = s.heap[h]; + bits = tree[tree[n * 2 + 1] * 2 + 1] + 1; + if (bits > max_length) { + bits = max_length; + overflow++; + } + tree[n * 2 + 1] = bits; + + + if (n > max_code) { continue; } + + s.bl_count[bits]++; + xbits = 0; + if (n >= base) { + xbits = extra[n - base]; + } + f = tree[n * 2]; + s.opt_len += f * (bits + xbits); + if (has_stree) { + s.static_len += f * (stree[n * 2 + 1] + xbits); + } + } + if (overflow === 0) { return; } + + // Trace((stderr,"\nbit length overflow\n")); + + + + do { + bits = max_length - 1; + while (s.bl_count[bits] === 0) { bits--; } + s.bl_count[bits]--; + s.bl_count[bits + 1] += 2; + s.bl_count[max_length]--; + + overflow -= 2; + } while (overflow > 0); + + + for (bits = max_length; bits !== 0; bits--) { + n = s.bl_count[bits]; + while (n !== 0) { + m = s.heap[--h]; + if (m > max_code) { continue; } + if (tree[m * 2 + 1] !== bits) { + // Trace((stderr,"code %d bits %d->%d\n", m, tree[m].Len, bits)); + s.opt_len += (bits - tree[m * 2 + 1]) * tree[m * 2]; + tree[m * 2 + 1] = bits; + } + n--; + } + } +} + + + +function gen_codes(tree, max_code, bl_count) +// ct_data *tree; +// int max_code; +// ushf *bl_count; +{ + var next_code = new Array(MAX_BITS + 1); + var code = 0; + var bits; + var n; + + + for (bits = 1; bits <= MAX_BITS; bits++) { + next_code[bits] = code = (code + bl_count[bits - 1]) << 1; + } + + //Assert (code + bl_count[MAX_BITS]-1 == (1<>= 7; + for (; code < D_CODES; code++) { + base_dist[code] = dist << 7; + for (n = 0; n < (1 << (extra_dbits[code] - 7)); n++) { + _dist_code[256 + dist++] = code; + } + } + //Assert (dist == 256, "tr_static_init: 256+dist != 512"); + + + for (bits = 0; bits <= MAX_BITS; bits++) { + bl_count[bits] = 0; + } + + n = 0; + while (n <= 143) { + static_ltree[n * 2 + 1] = 8; + n++; + bl_count[8]++; + } + while (n <= 255) { + static_ltree[n * 2 + 1] = 9; + n++; + bl_count[9]++; + } + while (n <= 279) { + static_ltree[n * 2 + 1] = 7; + n++; + bl_count[7]++; + } + while (n <= 287) { + static_ltree[n * 2 + 1] = 8; + n++; + bl_count[8]++; + } + + gen_codes(static_ltree, L_CODES + 1, bl_count); + + + for (n = 0; n < D_CODES; n++) { + static_dtree[n * 2 + 1] = 5; + static_dtree[n * 2] = bi_reverse(n, 5); + } + + // Now data ready and we can init static trees + static_l_desc = new StaticTreeDesc(static_ltree, extra_lbits, LITERALS + 1, L_CODES, MAX_BITS); + static_d_desc = new StaticTreeDesc(static_dtree, extra_dbits, 0, D_CODES, MAX_BITS); + static_bl_desc = new StaticTreeDesc(new Array(0), extra_blbits, 0, BL_CODES, MAX_BL_BITS); + + //static_init_done = true; +} + + + +function init_block(s) { + var n; + + + for (n = 0; n < L_CODES; n++) { s.dyn_ltree[n * 2] = 0; } + for (n = 0; n < D_CODES; n++) { s.dyn_dtree[n * 2] = 0; } + for (n = 0; n < BL_CODES; n++) { s.bl_tree[n * 2] = 0; } + + s.dyn_ltree[END_BLOCK * 2] = 1; + s.opt_len = s.static_len = 0; + s.last_lit = s.matches = 0; +} + + + +function bi_windup(s) +{ + if (s.bi_valid > 8) { + put_short(s, s.bi_buf); + } else if (s.bi_valid > 0) { + //put_byte(s, (Byte)s->bi_buf); + s.pending_buf[s.pending++] = s.bi_buf; + } + s.bi_buf = 0; + s.bi_valid = 0; +} + + +function copy_block(s, buf, len, header) +//DeflateState *s; +//charf *buf; +//unsigned len; +//int header; +{ + bi_windup(s); + + if (header) { + put_short(s, len); + put_short(s, ~len); + } +// while (len--) { +// put_byte(s, *buf++); +// } + arraySet(s.pending_buf, s.window, buf, len, s.pending); + s.pending += len; +} + + +function smaller(tree, n, m, depth) { + var _n2 = n * 2; + var _m2 = m * 2; + return (tree[_n2] < tree[_m2] || + (tree[_n2] === tree[_m2] && depth[n] <= depth[m])); +} + + +function pqdownheap(s, tree, k) +// deflate_state *s; +// ct_data *tree; +// int k; +{ + var v = s.heap[k]; + var j = k << 1; + while (j <= s.heap_len) { + + if (j < s.heap_len && + smaller(tree, s.heap[j + 1], s.heap[j], s.depth)) { + j++; + } + + if (smaller(tree, v, s.heap[j], s.depth)) { break; } + + + s.heap[k] = s.heap[j]; + k = j; + + + j <<= 1; + } + s.heap[k] = v; +} + + +// inlined manually +// var SMALLEST = 1; + + +function compress_block(s, ltree, dtree) +// deflate_state *s; +// const ct_data *ltree; +// const ct_data *dtree; +{ + var dist; + var lc; + var lx = 0; + var code; + var extra; + + if (s.last_lit !== 0) { + do { + dist = (s.pending_buf[s.d_buf + lx * 2] << 8) | (s.pending_buf[s.d_buf + lx * 2 + 1]); + lc = s.pending_buf[s.l_buf + lx]; + lx++; + + if (dist === 0) { + send_code(s, lc, ltree); + //Tracecv(isgraph(lc), (stderr," '%c' ", lc)); + } else { + + code = _length_code[lc]; + send_code(s, code + LITERALS + 1, ltree); + extra = extra_lbits[code]; + if (extra !== 0) { + lc -= base_length[code]; + send_bits(s, lc, extra); + } + dist--; + code = d_code(dist); + //Assert (code < D_CODES, "bad d_code"); + + send_code(s, code, dtree); + extra = extra_dbits[code]; + if (extra !== 0) { + dist -= base_dist[code]; + send_bits(s, dist, extra); + } + } + + + //Assert((uInt)(s->pending) < s->lit_bufsize + 2*lx, + // "pendingBuf overflow"); + + } while (lx < s.last_lit); + } + + send_code(s, END_BLOCK, ltree); +} + + + +function build_tree(s, desc) +// deflate_state *s; +// tree_desc *desc; +{ + var tree = desc.dyn_tree; + var stree = desc.stat_desc.static_tree; + var has_stree = desc.stat_desc.has_stree; + var elems = desc.stat_desc.elems; + var n, m; + var max_code = -1; + var node; + + + s.heap_len = 0; + s.heap_max = HEAP_SIZE; + + for (n = 0; n < elems; n++) { + if (tree[n * 2] !== 0) { + s.heap[++s.heap_len] = max_code = n; + s.depth[n] = 0; + + } else { + tree[n * 2 + 1] = 0; + } + } + + + while (s.heap_len < 2) { + node = s.heap[++s.heap_len] = (max_code < 2 ? ++max_code : 0); + tree[node * 2] = 1; + s.depth[node] = 0; + s.opt_len--; + + if (has_stree) { + s.static_len -= stree[node * 2 + 1]; + } + + } + desc.max_code = max_code; + + + for (n = (s.heap_len >> 1); n >= 1; n--) { pqdownheap(s, tree, n); } + + + node = elems; + do { + //pqremove(s, tree, n); + + n = s.heap[1]; + s.heap[1] = s.heap[s.heap_len--]; + pqdownheap(s, tree, 1); + + + m = s.heap[1]; + + s.heap[--s.heap_max] = n; + s.heap[--s.heap_max] = m; + + + tree[node * 2] = tree[n * 2] + tree[m * 2]; + s.depth[node] = (s.depth[n] >= s.depth[m] ? s.depth[n] : s.depth[m]) + 1; + tree[n * 2 + 1] = tree[m * 2 + 1] = node; + + + s.heap[1] = node++; + pqdownheap(s, tree, 1); + + } while (s.heap_len >= 2); + + s.heap[--s.heap_max] = s.heap[1]; + + + gen_bitlen(s, desc); + + + gen_codes(tree, max_code, s.bl_count); +} + + + +function scan_tree(s, tree, max_code) +// deflate_state *s; +// ct_data *tree; +// int max_code; +{ + var n; + var prevlen = -1; + var curlen; + + var nextlen = tree[0 * 2 + 1]; + + var count = 0; + var max_count = 7; + var min_count = 4; + + if (nextlen === 0) { + max_count = 138; + min_count = 3; + } + tree[(max_code + 1) * 2 + 1] = 0xffff; + + for (n = 0; n <= max_code; n++) { + curlen = nextlen; + nextlen = tree[(n + 1) * 2 + 1]; + + if (++count < max_count && curlen === nextlen) { + continue; + + } else if (count < min_count) { + s.bl_tree[curlen * 2] += count; + + } else if (curlen !== 0) { + + if (curlen !== prevlen) { s.bl_tree[curlen * 2]++; } + s.bl_tree[REP_3_6 * 2]++; + + } else if (count <= 10) { + s.bl_tree[REPZ_3_10 * 2]++; + + } else { + s.bl_tree[REPZ_11_138 * 2]++; + } + + count = 0; + prevlen = curlen; + + if (nextlen === 0) { + max_count = 138; + min_count = 3; + + } else if (curlen === nextlen) { + max_count = 6; + min_count = 3; + + } else { + max_count = 7; + min_count = 4; + } + } +} + + + +function send_tree(s, tree, max_code) +// deflate_state *s; +// ct_data *tree; +// int max_code; +{ + var n; + var prevlen = -1; + var curlen; + + var nextlen = tree[0 * 2 + 1]; + + var count = 0; + var max_count = 7; + var min_count = 4; + + + if (nextlen === 0) { + max_count = 138; + min_count = 3; + } + + for (n = 0; n <= max_code; n++) { + curlen = nextlen; + nextlen = tree[(n + 1) * 2 + 1]; + + if (++count < max_count && curlen === nextlen) { + continue; + + } else if (count < min_count) { + do { send_code(s, curlen, s.bl_tree); } while (--count !== 0); + + } else if (curlen !== 0) { + if (curlen !== prevlen) { + send_code(s, curlen, s.bl_tree); + count--; + } + //Assert(count >= 3 && count <= 6, " 3_6?"); + send_code(s, REP_3_6, s.bl_tree); + send_bits(s, count - 3, 2); + + } else if (count <= 10) { + send_code(s, REPZ_3_10, s.bl_tree); + send_bits(s, count - 3, 3); + + } else { + send_code(s, REPZ_11_138, s.bl_tree); + send_bits(s, count - 11, 7); + } + + count = 0; + prevlen = curlen; + if (nextlen === 0) { + max_count = 138; + min_count = 3; + + } else if (curlen === nextlen) { + max_count = 6; + min_count = 3; + + } else { + max_count = 7; + min_count = 4; + } + } +} + + + +function build_bl_tree(s) { + var max_blindex; + + + scan_tree(s, s.dyn_ltree, s.l_desc.max_code); + scan_tree(s, s.dyn_dtree, s.d_desc.max_code); + + + build_tree(s, s.bl_desc); + + + + for (max_blindex = BL_CODES - 1; max_blindex >= 3; max_blindex--) { + if (s.bl_tree[bl_order[max_blindex] * 2 + 1] !== 0) { + break; + } + } + + s.opt_len += 3 * (max_blindex + 1) + 5 + 5 + 4; + //Tracev((stderr, "\ndyn trees: dyn %ld, stat %ld", + // s->opt_len, s->static_len)); + + return max_blindex; +} + + + +function send_all_trees(s, lcodes, dcodes, blcodes) +// deflate_state *s; +// int lcodes, dcodes, blcodes; +{ + var rank; + + //Assert (lcodes >= 257 && dcodes >= 1 && blcodes >= 4, "not enough codes"); + //Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES, + // "too many codes"); + //Tracev((stderr, "\nbl counts: ")); + send_bits(s, lcodes - 257, 5); + send_bits(s, dcodes - 1, 5); + send_bits(s, blcodes - 4, 4); + for (rank = 0; rank < blcodes; rank++) { + //Tracev((stderr, "\nbl code %2d ", bl_order[rank])); + send_bits(s, s.bl_tree[bl_order[rank] * 2 + 1], 3); + } + //Tracev((stderr, "\nbl tree: sent %ld", s->bits_sent)); + + send_tree(s, s.dyn_ltree, lcodes - 1); + //Tracev((stderr, "\nlit tree: sent %ld", s->bits_sent)); + + send_tree(s, s.dyn_dtree, dcodes - 1); + //Tracev((stderr, "\ndist tree: sent %ld", s->bits_sent)); +} + + + +function detect_data_type(s) { + + var black_mask = 0xf3ffc07f; + var n; + + + for (n = 0; n <= 31; n++, black_mask >>>= 1) { + if ((black_mask & 1) && (s.dyn_ltree[n * 2] !== 0)) { + return Z_BINARY; + } + } + + + if (s.dyn_ltree[9 * 2] !== 0 || s.dyn_ltree[10 * 2] !== 0 || + s.dyn_ltree[13 * 2] !== 0) { + return Z_TEXT; + } + for (n = 32; n < LITERALS; n++) { + if (s.dyn_ltree[n * 2] !== 0) { + return Z_TEXT; + } + } + + + return Z_BINARY; +} + + +var static_init_done = false; + + +function _tr_init(s) { + + if (!static_init_done) { + tr_static_init(); + static_init_done = true; + } + + s.l_desc = new TreeDesc(s.dyn_ltree, static_l_desc); + s.d_desc = new TreeDesc(s.dyn_dtree, static_d_desc); + s.bl_desc = new TreeDesc(s.bl_tree, static_bl_desc); + + s.bi_buf = 0; + s.bi_valid = 0; + + + init_block(s); +} + + + +function _tr_stored_block(s, buf, stored_len, last) { + //DeflateState *s; + //charf *buf; + //ulg stored_len; + //int last; + send_bits(s, (STORED_BLOCK << 1) + (last ? 1 : 0), 3); + copy_block(s, buf, stored_len, true); +} + + + +function _tr_align(s) { + send_bits(s, STATIC_TREES << 1, 3); + send_code(s, END_BLOCK, static_ltree); + bi_flush(s); +} + + + +function _tr_flush_block(s, buf, stored_len, last) { + //DeflateState *s; + //charf *buf; + //ulg stored_len; + //int last; + var opt_lenb, static_lenb; + var max_blindex = 0; + + + if (s.level > 0) { + + + if (s.strm.data_type === Z_UNKNOWN) { + s.strm.data_type = detect_data_type(s); + } + + + build_tree(s, s.l_desc); + // Tracev((stderr, "\nlit data: dyn %ld, stat %ld", s->opt_len, + // s->static_len)); + + build_tree(s, s.d_desc); + // Tracev((stderr, "\ndist data: dyn %ld, stat %ld", s->opt_len, + // s->static_len)); + + + + max_blindex = build_bl_tree(s); + + + opt_lenb = (s.opt_len + 3 + 7) >>> 3; + static_lenb = (s.static_len + 3 + 7) >>> 3; + + // Tracev((stderr, "\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u ", + // opt_lenb, s->opt_len, static_lenb, s->static_len, stored_len, + // s->last_lit)); + + if (static_lenb <= opt_lenb) { opt_lenb = static_lenb; } + + } else { + // Assert(buf != (char*)0, "lost buf"); + opt_lenb = static_lenb = stored_len + 5; + } + + if ((stored_len + 4 <= opt_lenb) && (buf !== -1)) { + + + + _tr_stored_block(s, buf, stored_len, last); + + } else if (s.strategy === Z_FIXED || static_lenb === opt_lenb) { + + send_bits(s, (STATIC_TREES << 1) + (last ? 1 : 0), 3); + compress_block(s, static_ltree, static_dtree); + + } else { + send_bits(s, (DYN_TREES << 1) + (last ? 1 : 0), 3); + send_all_trees(s, s.l_desc.max_code + 1, s.d_desc.max_code + 1, max_blindex + 1); + compress_block(s, s.dyn_ltree, s.dyn_dtree); + } + // Assert (s->compressed_len == s->bits_sent, "bad compressed size"); + + init_block(s); + + if (last) { + bi_windup(s); + } + // Tracev((stderr,"\ncomprlen %lu(%lu) ", s->compressed_len>>3, + // s->compressed_len-7*last)); +} + + +function _tr_tally(s, dist, lc) { + // deflate_state *s; + // unsigned dist; + // unsigned lc; + //var out_length, in_length, dcode; + + s.pending_buf[s.d_buf + s.last_lit * 2] = (dist >>> 8) & 0xff; + s.pending_buf[s.d_buf + s.last_lit * 2 + 1] = dist & 0xff; + + s.pending_buf[s.l_buf + s.last_lit] = lc & 0xff; + s.last_lit++; + + if (dist === 0) { + + s.dyn_ltree[lc * 2]++; + } else { + s.matches++; + + dist--; + //Assert((ush)dist < (ush)MAX_DIST(s) && + // (ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) && + // (ush)d_code(dist) < (ush)D_CODES, "_tr_tally: bad match"); + + s.dyn_ltree[(_length_code[lc] + LITERALS + 1) * 2]++; + s.dyn_dtree[d_code(dist) * 2]++; + } + +// (!) This block is disabled in zlib defaults, +// don't enable it for binary compatibility + +//#ifdef TRUNCATE_BLOCK +// +// if ((s.last_lit & 0x1fff) === 0 && s.level > 2) { +// +// out_length = s.last_lit*8; +// in_length = s.strstart - s.block_start; +// +// for (dcode = 0; dcode < D_CODES; dcode++) { +// out_length += s.dyn_dtree[dcode*2] * (5 + extra_dbits[dcode]); +// } +// out_length >>>= 3; +// //Tracev((stderr,"\nlast_lit %u, in %ld, out ~%ld(%ld%%) ", +// // s->last_lit, in_length, out_length, +// // 100L - out_length*100L/in_length)); +// if (s.matches < (s.last_lit>>1) && out_length < (in_length>>1)) { +// return true; +// } +// } +//#endif + + return (s.last_lit === s.lit_bufsize - 1); + +} + + + +var MAX_MEM_LEVEL = 9; + + +var LENGTH_CODES$1 = 29; + +var LITERALS$1 = 256; + +var L_CODES$1 = LITERALS$1 + 1 + LENGTH_CODES$1; + +var D_CODES$1 = 30; + +var BL_CODES$1 = 19; + +var HEAP_SIZE$1 = 2 * L_CODES$1 + 1; + +var MAX_BITS$1 = 15; + + +var MIN_MATCH$1 = 3; +var MAX_MATCH$1 = 258; +var MIN_LOOKAHEAD = (MAX_MATCH$1 + MIN_MATCH$1 + 1); + +var PRESET_DICT = 0x20; + +var INIT_STATE = 42; +var EXTRA_STATE = 69; +var NAME_STATE = 73; +var COMMENT_STATE = 91; +var HCRC_STATE = 103; +var BUSY_STATE = 113; +var FINISH_STATE = 666; + +var BS_NEED_MORE = 1; +var BS_BLOCK_DONE = 2; +var BS_FINISH_STARTED = 3; +var BS_FINISH_DONE = 4; + +var OS_CODE = 0x03; // Unix :) . Don't detect, use this default. + +function err(strm, errorCode) { + strm.msg = msg[errorCode]; + return errorCode; +} + +function rank(f) { + return ((f) << 1) - ((f) > 4 ? 9 : 0); +} + +function zero$1(buf) { var len = buf.length; while (--len >= 0) { buf[len] = 0; } } + + + +function flush_pending(strm) { + var s = strm.state; + + //_tr_flush_bits(s); + var len = s.pending; + if (len > strm.avail_out) { + len = strm.avail_out; + } + if (len === 0) { return; } + + arraySet(strm.output, s.pending_buf, s.pending_out, len, strm.next_out); + strm.next_out += len; + s.pending_out += len; + strm.total_out += len; + strm.avail_out -= len; + s.pending -= len; + if (s.pending === 0) { + s.pending_out = 0; + } +} + + +function flush_block_only(s, last) { + _tr_flush_block(s, (s.block_start >= 0 ? s.block_start : -1), s.strstart - s.block_start, last); + s.block_start = s.strstart; + flush_pending(s.strm); +} + + +function put_byte(s, b) { + s.pending_buf[s.pending++] = b; +} + + + +function putShortMSB(s, b) { +// put_byte(s, (Byte)(b >> 8)); +// put_byte(s, (Byte)(b & 0xff)); + s.pending_buf[s.pending++] = (b >>> 8) & 0xff; + s.pending_buf[s.pending++] = b & 0xff; +} + + + +function read_buf(strm, buf, start, size) { + var len = strm.avail_in; + + if (len > size) { len = size; } + if (len === 0) { return 0; } + + strm.avail_in -= len; + + // zmemcpy(buf, strm->next_in, len); + arraySet(buf, strm.input, strm.next_in, len, start); + if (strm.state.wrap === 1) { + strm.adler = adler32(strm.adler, buf, len, start); + } + + else if (strm.state.wrap === 2) { + strm.adler = crc32(strm.adler, buf, len, start); + } + + strm.next_in += len; + strm.total_in += len; + + return len; +} + + + +function longest_match(s, cur_match) { + var chain_length = s.max_chain_length; + var scan = s.strstart; + var match; + var len; + var best_len = s.prev_length; + var nice_match = s.nice_match; + var limit = (s.strstart > (s.w_size - MIN_LOOKAHEAD)) ? + s.strstart - (s.w_size - MIN_LOOKAHEAD) : 0; + + var _win = s.window; // shortcut + + var wmask = s.w_mask; + var prev = s.prev; + + + + var strend = s.strstart + MAX_MATCH$1; + var scan_end1 = _win[scan + best_len - 1]; + var scan_end = _win[scan + best_len]; + + + // Assert(s->hash_bits >= 8 && MAX_MATCH == 258, "Code too clever"); + + + if (s.prev_length >= s.good_match) { + chain_length >>= 2; + } + + if (nice_match > s.lookahead) { nice_match = s.lookahead; } + + // Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, "need lookahead"); + + do { + // Assert(cur_match < s->strstart, "no future"); + match = cur_match; + + + + if (_win[match + best_len] !== scan_end || + _win[match + best_len - 1] !== scan_end1 || + _win[match] !== _win[scan] || + _win[++match] !== _win[scan + 1]) { + continue; + } + + + scan += 2; + match++; + // Assert(*scan == *match, "match[2]?"); + + + do { + + } while (_win[++scan] === _win[++match] && _win[++scan] === _win[++match] && + _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && + _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && + _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && + scan < strend); + + // Assert(scan <= s->window+(unsigned)(s->window_size-1), "wild scan"); + + len = MAX_MATCH$1 - (strend - scan); + scan = strend - MAX_MATCH$1; + + if (len > best_len) { + s.match_start = cur_match; + best_len = len; + if (len >= nice_match) { + break; + } + scan_end1 = _win[scan + best_len - 1]; + scan_end = _win[scan + best_len]; + } + } while ((cur_match = prev[cur_match & wmask]) > limit && --chain_length !== 0); + + if (best_len <= s.lookahead) { + return best_len; + } + return s.lookahead; +} + + + +function fill_window(s) { + var _w_size = s.w_size; + var p, n, m, more, str; + + //Assert(s->lookahead < MIN_LOOKAHEAD, "already enough lookahead"); + + do { + more = s.window_size - s.lookahead - s.strstart; + + // JS ints have 32 bit, block below not needed + + //if (sizeof(int) <= 2) { + // if (more == 0 && s->strstart == 0 && s->lookahead == 0) { + // more = wsize; + // + // } else if (more == (unsigned)(-1)) { + // + // more--; + // } + //} + + + + if (s.strstart >= _w_size + (_w_size - MIN_LOOKAHEAD)) { + + arraySet(s.window, s.window, _w_size, _w_size, 0); + s.match_start -= _w_size; + s.strstart -= _w_size; + + s.block_start -= _w_size; + + + + n = s.hash_size; + p = n; + do { + m = s.head[--p]; + s.head[p] = (m >= _w_size ? m - _w_size : 0); + } while (--n); + + n = _w_size; + p = n; + do { + m = s.prev[--p]; + s.prev[p] = (m >= _w_size ? m - _w_size : 0); + + } while (--n); + + more += _w_size; + } + if (s.strm.avail_in === 0) { + break; + } + + + //Assert(more >= 2, "more < 2"); + n = read_buf(s.strm, s.window, s.strstart + s.lookahead, more); + s.lookahead += n; + + + if (s.lookahead + s.insert >= MIN_MATCH$1) { + str = s.strstart - s.insert; + s.ins_h = s.window[str]; + + + s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[str + 1]) & s.hash_mask; +//#if MIN_MATCH != 3 +// Call update_hash() MIN_MATCH-3 more times +//#endif + while (s.insert) { + + s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[str + MIN_MATCH$1 - 1]) & s.hash_mask; + + s.prev[str & s.w_mask] = s.head[s.ins_h]; + s.head[s.ins_h] = str; + str++; + s.insert--; + if (s.lookahead + s.insert < MIN_MATCH$1) { + break; + } + } + } + + + } while (s.lookahead < MIN_LOOKAHEAD && s.strm.avail_in !== 0); + + +// if (s.high_water < s.window_size) { +// var curr = s.strstart + s.lookahead; +// var init = 0; +// +// if (s.high_water < curr) { +// +// init = s.window_size - curr; +// if (init > WIN_INIT) +// init = WIN_INIT; +// zmemzero(s->window + curr, (unsigned)init); +// s->high_water = curr + init; +// } +// else if (s->high_water < (ulg)curr + WIN_INIT) { +// +// init = (ulg)curr + WIN_INIT - s->high_water; +// if (init > s->window_size - s->high_water) +// init = s->window_size - s->high_water; +// zmemzero(s->window + s->high_water, (unsigned)init); +// s->high_water += init; +// } +// } +// +// Assert((ulg)s->strstart <= s->window_size - MIN_LOOKAHEAD, +// "not enough room for search"); +} + + +function deflate_stored(s, flush) { + + var max_block_size = 0xffff; + + if (max_block_size > s.pending_buf_size - 5) { + max_block_size = s.pending_buf_size - 5; + } + + + for (;;) { + + if (s.lookahead <= 1) { + + //Assert(s->strstart < s->w_size+MAX_DIST(s) || + // s->block_start >= (long)s->w_size, "slide too late"); +// if (!(s.strstart < s.w_size + (s.w_size - MIN_LOOKAHEAD) || +// s.block_start >= s.w_size)) { +// throw new Error("slide too late"); +// } + + fill_window(s); + if (s.lookahead === 0 && flush === Z_NO_FLUSH) { + return BS_NEED_MORE; + } + + if (s.lookahead === 0) { + break; + } + + } + //Assert(s->block_start >= 0L, "block gone"); +// if (s.block_start < 0) throw new Error("block gone"); + + s.strstart += s.lookahead; + s.lookahead = 0; + + + var max_start = s.block_start + max_block_size; + + if (s.strstart === 0 || s.strstart >= max_start) { + + s.lookahead = s.strstart - max_start; + s.strstart = max_start; + + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + + + + } + + if (s.strstart - s.block_start >= (s.w_size - MIN_LOOKAHEAD)) { + + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + + } + } + + s.insert = 0; + + if (flush === Z_FINISH) { + + flush_block_only(s, true); + if (s.strm.avail_out === 0) { + return BS_FINISH_STARTED; + } + + return BS_FINISH_DONE; + } + + if (s.strstart > s.block_start) { + + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + + } + + return BS_NEED_MORE; +} + + +function deflate_fast(s, flush) { + var hash_head; + var bflush; + + for (;;) { + + if (s.lookahead < MIN_LOOKAHEAD) { + fill_window(s); + if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) { + return BS_NEED_MORE; + } + if (s.lookahead === 0) { + break; + } + } + + + hash_head = 0; + if (s.lookahead >= MIN_MATCH$1) { + + s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH$1 - 1]) & s.hash_mask; + hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h]; + s.head[s.ins_h] = s.strstart; + + } + + + if (hash_head !== 0 && ((s.strstart - hash_head) <= (s.w_size - MIN_LOOKAHEAD))) { + + s.match_length = longest_match(s, hash_head); + + } + if (s.match_length >= MIN_MATCH$1) { + // check_match(s, s.strstart, s.match_start, s.match_length); // for debug only + + + bflush = _tr_tally(s, s.strstart - s.match_start, s.match_length - MIN_MATCH$1); + + s.lookahead -= s.match_length; + + + if (s.match_length <= s.max_lazy_match && s.lookahead >= MIN_MATCH$1) { + s.match_length--; + do { + s.strstart++; + + s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH$1 - 1]) & s.hash_mask; + hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h]; + s.head[s.ins_h] = s.strstart; + + + } while (--s.match_length !== 0); + s.strstart++; + } else + { + s.strstart += s.match_length; + s.match_length = 0; + s.ins_h = s.window[s.strstart]; + + s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + 1]) & s.hash_mask; + +//#if MIN_MATCH != 3 +// Call UPDATE_HASH() MIN_MATCH-3 more times +//#endif + + } + } else { + + //Tracevv((stderr,"%c", s.window[s.strstart])); + + bflush = _tr_tally(s, 0, s.window[s.strstart]); + + s.lookahead--; + s.strstart++; + } + if (bflush) { + + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + + } + } + s.insert = ((s.strstart < (MIN_MATCH$1 - 1)) ? s.strstart : MIN_MATCH$1 - 1); + if (flush === Z_FINISH) { + + flush_block_only(s, true); + if (s.strm.avail_out === 0) { + return BS_FINISH_STARTED; + } + + return BS_FINISH_DONE; + } + if (s.last_lit) { + + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + + } + return BS_BLOCK_DONE; +} + + +function deflate_slow(s, flush) { + var hash_head; + var bflush; + + var max_insert; + + + for (;;) { + + if (s.lookahead < MIN_LOOKAHEAD) { + fill_window(s); + if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) { + return BS_NEED_MORE; + } + if (s.lookahead === 0) { break; } + } + + + hash_head = 0; + if (s.lookahead >= MIN_MATCH$1) { + + s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH$1 - 1]) & s.hash_mask; + hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h]; + s.head[s.ins_h] = s.strstart; + + } + + + s.prev_length = s.match_length; + s.prev_match = s.match_start; + s.match_length = MIN_MATCH$1 - 1; + + if (hash_head !== 0 && s.prev_length < s.max_lazy_match && + s.strstart - hash_head <= (s.w_size - MIN_LOOKAHEAD)) { + + s.match_length = longest_match(s, hash_head); + + + if (s.match_length <= 5 && + (s.strategy === Z_FILTERED || (s.match_length === MIN_MATCH$1 && s.strstart - s.match_start > 4096))) { + + + s.match_length = MIN_MATCH$1 - 1; + } + } + + if (s.prev_length >= MIN_MATCH$1 && s.match_length <= s.prev_length) { + max_insert = s.strstart + s.lookahead - MIN_MATCH$1; + + + //check_match(s, s.strstart-1, s.prev_match, s.prev_length); + + + bflush = _tr_tally(s, s.strstart - 1 - s.prev_match, s.prev_length - MIN_MATCH$1); + + s.lookahead -= s.prev_length - 1; + s.prev_length -= 2; + do { + if (++s.strstart <= max_insert) { + + s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH$1 - 1]) & s.hash_mask; + hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h]; + s.head[s.ins_h] = s.strstart; + + } + } while (--s.prev_length !== 0); + s.match_available = 0; + s.match_length = MIN_MATCH$1 - 1; + s.strstart++; + + if (bflush) { + + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + + } + + } else if (s.match_available) { + + //Tracevv((stderr,"%c", s->window[s->strstart-1])); + + bflush = _tr_tally(s, 0, s.window[s.strstart - 1]); + + if (bflush) { + + flush_block_only(s, false); + + } + s.strstart++; + s.lookahead--; + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } else { + + s.match_available = 1; + s.strstart++; + s.lookahead--; + } + } + //Assert (flush != Z_NO_FLUSH, "no flush?"); + if (s.match_available) { + //Tracevv((stderr,"%c", s->window[s->strstart-1])); + + bflush = _tr_tally(s, 0, s.window[s.strstart - 1]); + + s.match_available = 0; + } + s.insert = s.strstart < MIN_MATCH$1 - 1 ? s.strstart : MIN_MATCH$1 - 1; + if (flush === Z_FINISH) { + + flush_block_only(s, true); + if (s.strm.avail_out === 0) { + return BS_FINISH_STARTED; + } + + return BS_FINISH_DONE; + } + if (s.last_lit) { + + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + + } + + return BS_BLOCK_DONE; +} + + + +function deflate_rle(s, flush) { + var bflush; + var prev; + var scan, strend; + + var _win = s.window; + + for (;;) { + + if (s.lookahead <= MAX_MATCH$1) { + fill_window(s); + if (s.lookahead <= MAX_MATCH$1 && flush === Z_NO_FLUSH) { + return BS_NEED_MORE; + } + if (s.lookahead === 0) { break; } + } + + + s.match_length = 0; + if (s.lookahead >= MIN_MATCH$1 && s.strstart > 0) { + scan = s.strstart - 1; + prev = _win[scan]; + if (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan]) { + strend = s.strstart + MAX_MATCH$1; + do { + + } while (prev === _win[++scan] && prev === _win[++scan] && + prev === _win[++scan] && prev === _win[++scan] && + prev === _win[++scan] && prev === _win[++scan] && + prev === _win[++scan] && prev === _win[++scan] && + scan < strend); + s.match_length = MAX_MATCH$1 - (strend - scan); + if (s.match_length > s.lookahead) { + s.match_length = s.lookahead; + } + } + //Assert(scan <= s->window+(uInt)(s->window_size-1), "wild scan"); + } + + + if (s.match_length >= MIN_MATCH$1) { + //check_match(s, s.strstart, s.strstart - 1, s.match_length); + + + bflush = _tr_tally(s, 1, s.match_length - MIN_MATCH$1); + + s.lookahead -= s.match_length; + s.strstart += s.match_length; + s.match_length = 0; + } else { + + //Tracevv((stderr,"%c", s->window[s->strstart])); + + bflush = _tr_tally(s, 0, s.window[s.strstart]); + + s.lookahead--; + s.strstart++; + } + if (bflush) { + + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + + } + } + s.insert = 0; + if (flush === Z_FINISH) { + + flush_block_only(s, true); + if (s.strm.avail_out === 0) { + return BS_FINISH_STARTED; + } + + return BS_FINISH_DONE; + } + if (s.last_lit) { + + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + + } + return BS_BLOCK_DONE; +} + + +function deflate_huff(s, flush) { + var bflush; + + for (;;) { + + if (s.lookahead === 0) { + fill_window(s); + if (s.lookahead === 0) { + if (flush === Z_NO_FLUSH) { + return BS_NEED_MORE; + } + break; + } + } + + + s.match_length = 0; + //Tracevv((stderr,"%c", s->window[s->strstart])); + + bflush = _tr_tally(s, 0, s.window[s.strstart]); + s.lookahead--; + s.strstart++; + if (bflush) { + + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + + } + } + s.insert = 0; + if (flush === Z_FINISH) { + + flush_block_only(s, true); + if (s.strm.avail_out === 0) { + return BS_FINISH_STARTED; + } + + return BS_FINISH_DONE; + } + if (s.last_lit) { + + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + + } + return BS_BLOCK_DONE; +} + + +function Config(good_length, max_lazy, nice_length, max_chain, func) { + this.good_length = good_length; + this.max_lazy = max_lazy; + this.nice_length = nice_length; + this.max_chain = max_chain; + this.func = func; +} + +var configuration_table; + +configuration_table = [ + + new Config(0, 0, 0, 0, deflate_stored), + new Config(4, 4, 8, 4, deflate_fast), + new Config(4, 5, 16, 8, deflate_fast), + new Config(4, 6, 32, 32, deflate_fast), + + new Config(4, 4, 16, 16, deflate_slow), + new Config(8, 16, 32, 32, deflate_slow), + new Config(8, 16, 128, 128, deflate_slow), + new Config(8, 32, 128, 256, deflate_slow), + new Config(32, 128, 258, 1024, deflate_slow), + new Config(32, 258, 258, 4096, deflate_slow) +]; + + + +function lm_init(s) { + s.window_size = 2 * s.w_size; + + + zero$1(s.head); // Fill with NIL (= 0); + + + s.max_lazy_match = configuration_table[s.level].max_lazy; + s.good_match = configuration_table[s.level].good_length; + s.nice_match = configuration_table[s.level].nice_length; + s.max_chain_length = configuration_table[s.level].max_chain; + + s.strstart = 0; + s.block_start = 0; + s.lookahead = 0; + s.insert = 0; + s.match_length = s.prev_length = MIN_MATCH$1 - 1; + s.match_available = 0; + s.ins_h = 0; +} + + +function DeflateState() { + this.strm = null; + this.status = 0; + this.pending_buf = null; + this.pending_buf_size = 0; + this.pending_out = 0; + this.pending = 0; + this.wrap = 0; + this.gzhead = null; + this.gzindex = 0; + this.method = Z_DEFLATED; + this.last_flush = -1; + + this.w_size = 0; + this.w_bits = 0; + this.w_mask = 0; + + this.window = null; + + + this.window_size = 0; + + + this.prev = null; + + + this.head = null; + + this.ins_h = 0; + this.hash_size = 0; + this.hash_bits = 0; + this.hash_mask = 0; + + this.hash_shift = 0; + + + this.block_start = 0; + + + this.match_length = 0; + this.prev_match = 0; + this.match_available = 0; + this.strstart = 0; + this.match_start = 0; + this.lookahead = 0; + + this.prev_length = 0; + + + this.max_chain_length = 0; + + + this.max_lazy_match = 0; + + // That's alias to max_lazy_match, don't use directly + //this.max_insert_length = 0; + + + this.level = 0; + this.strategy = 0; + + this.good_match = 0; + + + this.nice_match = 0; + + + + + + // struct ct_data_s dyn_ltree[HEAP_SIZE]; + // struct ct_data_s dyn_dtree[2*D_CODES+1]; + // struct ct_data_s bl_tree[2*BL_CODES+1]; + + // Use flat array of DOUBLE size, with interleaved fata, + // because JS does not support effective + this.dyn_ltree = Buf16(HEAP_SIZE$1 * 2); + this.dyn_dtree = Buf16((2 * D_CODES$1 + 1) * 2); + this.bl_tree = Buf16((2 * BL_CODES$1 + 1) * 2); + zero$1(this.dyn_ltree); + zero$1(this.dyn_dtree); + zero$1(this.bl_tree); + + this.l_desc = null; + this.d_desc = null; + this.bl_desc = null; + + //ush bl_count[MAX_BITS+1]; + this.bl_count = Buf16(MAX_BITS$1 + 1); + + + //int heap[2*L_CODES+1]; + this.heap = Buf16(2 * L_CODES$1 + 1); + zero$1(this.heap); + + this.heap_len = 0; + this.heap_max = 0; + + + this.depth = Buf16(2 * L_CODES$1 + 1); //uch depth[2*L_CODES+1]; + zero$1(this.depth); + + + this.l_buf = 0; + + this.lit_bufsize = 0; + + + this.last_lit = 0; + + this.d_buf = 0; + + + this.opt_len = 0; + this.static_len = 0; + this.matches = 0; + this.insert = 0; + + + this.bi_buf = 0; + + this.bi_valid = 0; + + + // Used for window memory init. We safely ignore it for JS. That makes + // sense only for pointers and memory check tools. + //this.high_water = 0; + +} + + +function deflateResetKeep(strm) { + var s; + + if (!strm || !strm.state) { + return err(strm, Z_STREAM_ERROR); + } + + strm.total_in = strm.total_out = 0; + strm.data_type = Z_UNKNOWN; + + s = strm.state; + s.pending = 0; + s.pending_out = 0; + + if (s.wrap < 0) { + s.wrap = -s.wrap; + + } + s.status = (s.wrap ? INIT_STATE : BUSY_STATE); + strm.adler = (s.wrap === 2) ? + 0 // crc32(0, Z_NULL, 0) + : + 1; // adler32(0, Z_NULL, 0) + s.last_flush = Z_NO_FLUSH; + _tr_init(s); + return Z_OK; +} + + +function deflateReset(strm) { + var ret = deflateResetKeep(strm); + if (ret === Z_OK) { + lm_init(strm.state); + } + return ret; +} + + +function deflateSetHeader(strm, head) { + if (!strm || !strm.state) { return Z_STREAM_ERROR; } + if (strm.state.wrap !== 2) { return Z_STREAM_ERROR; } + strm.state.gzhead = head; + return Z_OK; +} + + +function deflateInit2(strm, level, method, windowBits, memLevel, strategy) { + if (!strm) { // === Z_NULL + return Z_STREAM_ERROR; + } + var wrap = 1; + + if (level === Z_DEFAULT_COMPRESSION) { + level = 6; + } + + if (windowBits < 0) { + wrap = 0; + windowBits = -windowBits; + } + + else if (windowBits > 15) { + wrap = 2; + windowBits -= 16; + } + + + if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method !== Z_DEFLATED || + windowBits < 8 || windowBits > 15 || level < 0 || level > 9 || + strategy < 0 || strategy > Z_FIXED) { + return err(strm, Z_STREAM_ERROR); + } + + + if (windowBits === 8) { + windowBits = 9; + } + + + var s = new DeflateState(); + + strm.state = s; + s.strm = strm; + + s.wrap = wrap; + s.gzhead = null; + s.w_bits = windowBits; + s.w_size = 1 << s.w_bits; + s.w_mask = s.w_size - 1; + + s.hash_bits = memLevel + 7; + s.hash_size = 1 << s.hash_bits; + s.hash_mask = s.hash_size - 1; + s.hash_shift = ~~((s.hash_bits + MIN_MATCH$1 - 1) / MIN_MATCH$1); + + s.window = Buf8(s.w_size * 2); + s.head = Buf16(s.hash_size); + s.prev = Buf16(s.w_size); + + // Don't need mem init magic for JS. + //s.high_water = 0; + + s.lit_bufsize = 1 << (memLevel + 6); + + s.pending_buf_size = s.lit_bufsize * 4; + + //overlay = (ushf *) ZALLOC(strm, s->lit_bufsize, sizeof(ush)+2); + //s->pending_buf = (uchf *) overlay; + s.pending_buf = Buf8(s.pending_buf_size); + + // It is offset from `s.pending_buf` (size is `s.lit_bufsize * 2`) + //s->d_buf = overlay + s->lit_bufsize/sizeof(ush); + s.d_buf = 1 * s.lit_bufsize; + + //s->l_buf = s->pending_buf + (1+sizeof(ush))*s->lit_bufsize; + s.l_buf = (1 + 2) * s.lit_bufsize; + + s.level = level; + s.strategy = strategy; + s.method = method; + + return deflateReset(strm); +} + + +function deflate(strm, flush) { + var old_flush, s; + var beg, val; // for gzip header write only + + if (!strm || !strm.state || + flush > Z_BLOCK || flush < 0) { + return strm ? err(strm, Z_STREAM_ERROR) : Z_STREAM_ERROR; + } + + s = strm.state; + + if (!strm.output || + (!strm.input && strm.avail_in !== 0) || + (s.status === FINISH_STATE && flush !== Z_FINISH)) { + return err(strm, (strm.avail_out === 0) ? Z_BUF_ERROR : Z_STREAM_ERROR); + } + + s.strm = strm; + old_flush = s.last_flush; + s.last_flush = flush; + + + if (s.status === INIT_STATE) { + + if (s.wrap === 2) { // GZIP header + strm.adler = 0; //crc32(0L, Z_NULL, 0); + put_byte(s, 31); + put_byte(s, 139); + put_byte(s, 8); + if (!s.gzhead) { // s->gzhead == Z_NULL + put_byte(s, 0); + put_byte(s, 0); + put_byte(s, 0); + put_byte(s, 0); + put_byte(s, 0); + put_byte(s, s.level === 9 ? 2 : + (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ? + 4 : 0)); + put_byte(s, OS_CODE); + s.status = BUSY_STATE; + } + else { + put_byte(s, (s.gzhead.text ? 1 : 0) + + (s.gzhead.hcrc ? 2 : 0) + + (!s.gzhead.extra ? 0 : 4) + + (!s.gzhead.name ? 0 : 8) + + (!s.gzhead.comment ? 0 : 16) + ); + put_byte(s, s.gzhead.time & 0xff); + put_byte(s, (s.gzhead.time >> 8) & 0xff); + put_byte(s, (s.gzhead.time >> 16) & 0xff); + put_byte(s, (s.gzhead.time >> 24) & 0xff); + put_byte(s, s.level === 9 ? 2 : + (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ? + 4 : 0)); + put_byte(s, s.gzhead.os & 0xff); + if (s.gzhead.extra && s.gzhead.extra.length) { + put_byte(s, s.gzhead.extra.length & 0xff); + put_byte(s, (s.gzhead.extra.length >> 8) & 0xff); + } + if (s.gzhead.hcrc) { + strm.adler = crc32(strm.adler, s.pending_buf, s.pending, 0); + } + s.gzindex = 0; + s.status = EXTRA_STATE; + } + } + else // DEFLATE header + { + var header = (Z_DEFLATED + ((s.w_bits - 8) << 4)) << 8; + var level_flags = -1; + + if (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2) { + level_flags = 0; + } else if (s.level < 6) { + level_flags = 1; + } else if (s.level === 6) { + level_flags = 2; + } else { + level_flags = 3; + } + header |= (level_flags << 6); + if (s.strstart !== 0) { header |= PRESET_DICT; } + header += 31 - (header % 31); + + s.status = BUSY_STATE; + putShortMSB(s, header); + + + if (s.strstart !== 0) { + putShortMSB(s, strm.adler >>> 16); + putShortMSB(s, strm.adler & 0xffff); + } + strm.adler = 1; // adler32(0L, Z_NULL, 0); + } + } + +//#ifdef GZIP + if (s.status === EXTRA_STATE) { + if (s.gzhead.extra) { + beg = s.pending; + + while (s.gzindex < (s.gzhead.extra.length & 0xffff)) { + if (s.pending === s.pending_buf_size) { + if (s.gzhead.hcrc && s.pending > beg) { + strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg); + } + flush_pending(strm); + beg = s.pending; + if (s.pending === s.pending_buf_size) { + break; + } + } + put_byte(s, s.gzhead.extra[s.gzindex] & 0xff); + s.gzindex++; + } + if (s.gzhead.hcrc && s.pending > beg) { + strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg); + } + if (s.gzindex === s.gzhead.extra.length) { + s.gzindex = 0; + s.status = NAME_STATE; + } + } + else { + s.status = NAME_STATE; + } + } + if (s.status === NAME_STATE) { + if (s.gzhead.name) { + beg = s.pending; + //int val; + + do { + if (s.pending === s.pending_buf_size) { + if (s.gzhead.hcrc && s.pending > beg) { + strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg); + } + flush_pending(strm); + beg = s.pending; + if (s.pending === s.pending_buf_size) { + val = 1; + break; + } + } + // JS specific: little magic to add zero terminator to end of string + if (s.gzindex < s.gzhead.name.length) { + val = s.gzhead.name.charCodeAt(s.gzindex++) & 0xff; + } else { + val = 0; + } + put_byte(s, val); + } while (val !== 0); + + if (s.gzhead.hcrc && s.pending > beg) { + strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg); + } + if (val === 0) { + s.gzindex = 0; + s.status = COMMENT_STATE; + } + } + else { + s.status = COMMENT_STATE; + } + } + if (s.status === COMMENT_STATE) { + if (s.gzhead.comment) { + beg = s.pending; + //int val; + + do { + if (s.pending === s.pending_buf_size) { + if (s.gzhead.hcrc && s.pending > beg) { + strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg); + } + flush_pending(strm); + beg = s.pending; + if (s.pending === s.pending_buf_size) { + val = 1; + break; + } + } + // JS specific: little magic to add zero terminator to end of string + if (s.gzindex < s.gzhead.comment.length) { + val = s.gzhead.comment.charCodeAt(s.gzindex++) & 0xff; + } else { + val = 0; + } + put_byte(s, val); + } while (val !== 0); + + if (s.gzhead.hcrc && s.pending > beg) { + strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg); + } + if (val === 0) { + s.status = HCRC_STATE; + } + } + else { + s.status = HCRC_STATE; + } + } + if (s.status === HCRC_STATE) { + if (s.gzhead.hcrc) { + if (s.pending + 2 > s.pending_buf_size) { + flush_pending(strm); + } + if (s.pending + 2 <= s.pending_buf_size) { + put_byte(s, strm.adler & 0xff); + put_byte(s, (strm.adler >> 8) & 0xff); + strm.adler = 0; //crc32(0L, Z_NULL, 0); + s.status = BUSY_STATE; + } + } + else { + s.status = BUSY_STATE; + } + } +//#endif + + + if (s.pending !== 0) { + flush_pending(strm); + if (strm.avail_out === 0) { + + s.last_flush = -1; + return Z_OK; + } + + + } else if (strm.avail_in === 0 && rank(flush) <= rank(old_flush) && + flush !== Z_FINISH) { + return err(strm, Z_BUF_ERROR); + } + + + if (s.status === FINISH_STATE && strm.avail_in !== 0) { + return err(strm, Z_BUF_ERROR); + } + + + if (strm.avail_in !== 0 || s.lookahead !== 0 || + (flush !== Z_NO_FLUSH && s.status !== FINISH_STATE)) { + var bstate = (s.strategy === Z_HUFFMAN_ONLY) ? deflate_huff(s, flush) : + (s.strategy === Z_RLE ? deflate_rle(s, flush) : + configuration_table[s.level].func(s, flush)); + + if (bstate === BS_FINISH_STARTED || bstate === BS_FINISH_DONE) { + s.status = FINISH_STATE; + } + if (bstate === BS_NEED_MORE || bstate === BS_FINISH_STARTED) { + if (strm.avail_out === 0) { + s.last_flush = -1; + + } + return Z_OK; + + } + if (bstate === BS_BLOCK_DONE) { + if (flush === Z_PARTIAL_FLUSH) { + _tr_align(s); + } + else if (flush !== Z_BLOCK) { + + _tr_stored_block(s, 0, 0, false); + + if (flush === Z_FULL_FLUSH) { + + zero$1(s.head); // Fill with NIL (= 0); + + if (s.lookahead === 0) { + s.strstart = 0; + s.block_start = 0; + s.insert = 0; + } + } + } + flush_pending(strm); + if (strm.avail_out === 0) { + s.last_flush = -1; + return Z_OK; + } + } + } + //Assert(strm->avail_out > 0, "bug2"); + //if (strm.avail_out <= 0) { throw new Error("bug2");} + + if (flush !== Z_FINISH) { return Z_OK; } + if (s.wrap <= 0) { return Z_STREAM_END; } + + + if (s.wrap === 2) { + put_byte(s, strm.adler & 0xff); + put_byte(s, (strm.adler >> 8) & 0xff); + put_byte(s, (strm.adler >> 16) & 0xff); + put_byte(s, (strm.adler >> 24) & 0xff); + put_byte(s, strm.total_in & 0xff); + put_byte(s, (strm.total_in >> 8) & 0xff); + put_byte(s, (strm.total_in >> 16) & 0xff); + put_byte(s, (strm.total_in >> 24) & 0xff); + } + else + { + putShortMSB(s, strm.adler >>> 16); + putShortMSB(s, strm.adler & 0xffff); + } + + flush_pending(strm); + + if (s.wrap > 0) { s.wrap = -s.wrap; } + + return s.pending !== 0 ? Z_OK : Z_STREAM_END; +} + +function deflateEnd(strm) { + var status; + + if (!strm || !strm.state) { + return Z_STREAM_ERROR; + } + + status = strm.state.status; + if (status !== INIT_STATE && + status !== EXTRA_STATE && + status !== NAME_STATE && + status !== COMMENT_STATE && + status !== HCRC_STATE && + status !== BUSY_STATE && + status !== FINISH_STATE + ) { + return err(strm, Z_STREAM_ERROR); + } + + strm.state = null; + + return status === BUSY_STATE ? err(strm, Z_DATA_ERROR) : Z_OK; +} + + + +function deflateSetDictionary(strm, dictionary) { + var dictLength = dictionary.length; + + var s; + var str, n; + var wrap; + var avail; + var next; + var input; + var tmpDict; + + if (!strm || !strm.state) { + return Z_STREAM_ERROR; + } + + s = strm.state; + wrap = s.wrap; + + if (wrap === 2 || (wrap === 1 && s.status !== INIT_STATE) || s.lookahead) { + return Z_STREAM_ERROR; + } + + + if (wrap === 1) { + + strm.adler = adler32(strm.adler, dictionary, dictLength, 0); + } + + s.wrap = 0; + + + if (dictLength >= s.w_size) { + if (wrap === 0) { + + zero$1(s.head); // Fill with NIL (= 0); + s.strstart = 0; + s.block_start = 0; + s.insert = 0; + } + + // dictionary = dictionary.slice(dictLength - s.w_size); + tmpDict = Buf8(s.w_size); + arraySet(tmpDict, dictionary, dictLength - s.w_size, s.w_size, 0); + dictionary = tmpDict; + dictLength = s.w_size; + } + + avail = strm.avail_in; + next = strm.next_in; + input = strm.input; + strm.avail_in = dictLength; + strm.next_in = 0; + strm.input = dictionary; + fill_window(s); + while (s.lookahead >= MIN_MATCH$1) { + str = s.strstart; + n = s.lookahead - (MIN_MATCH$1 - 1); + do { + + s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[str + MIN_MATCH$1 - 1]) & s.hash_mask; + + s.prev[str & s.w_mask] = s.head[s.ins_h]; + + s.head[s.ins_h] = str; + str++; + } while (--n); + s.strstart = str; + s.lookahead = MIN_MATCH$1 - 1; + fill_window(s); + } + s.strstart += s.lookahead; + s.block_start = s.strstart; + s.insert = s.lookahead; + s.lookahead = 0; + s.match_length = s.prev_length = MIN_MATCH$1 - 1; + s.match_available = 0; + strm.next_in = next; + strm.input = input; + strm.avail_in = avail; + s.wrap = wrap; + return Z_OK; +} + + + + + +var toString$1 = Object.prototype.toString; + + + + + + + + + + + + +function Deflate(options) { + if (!(this instanceof Deflate)) { return new Deflate(options); } + + this.options = assign({ + level: Z_DEFAULT_COMPRESSION, + method: Z_DEFLATED, + chunkSize: 16384, + windowBits: 15, + memLevel: 8, + strategy: Z_DEFAULT_STRATEGY, + to: '' + }, options || {}); + + var opt = this.options; + + if (opt.raw && (opt.windowBits > 0)) { + opt.windowBits = -opt.windowBits; + } + + else if (opt.gzip && (opt.windowBits > 0) && (opt.windowBits < 16)) { + opt.windowBits += 16; + } + + this.err = 0; // error code, if happens (0 = Z_OK) + this.msg = ''; // error message + this.ended = false; // used to avoid multiple onEnd() calls + this.chunks = []; // chunks of compressed data + + this.strm = new ZStream(); + this.strm.avail_out = 0; + + var status = deflateInit2( + this.strm, + opt.level, + opt.method, + opt.windowBits, + opt.memLevel, + opt.strategy + ); + + if (status !== Z_OK) { + throw new Error(msg[status]); + } + + if (opt.header) { + deflateSetHeader(this.strm, opt.header); + } + + if (opt.dictionary) { + var dict; + // Convert data if needed + if (typeof opt.dictionary === 'string') { + // If we need to compress text, change encoding to utf8. + dict = string2buf(opt.dictionary); + } else if (toString$1.call(opt.dictionary) === '[object ArrayBuffer]') { + dict = new Uint8Array(opt.dictionary); + } else { + dict = opt.dictionary; + } + + status = deflateSetDictionary(this.strm, dict); + + if (status !== Z_OK) { + throw new Error(msg[status]); + } + + this._dict_set = true; + } +} + + +Deflate.prototype.push = function (data, mode) { + var strm = this.strm; + var chunkSize = this.options.chunkSize; + var status, _mode; + + if (this.ended) { return false; } + + _mode = (mode === ~~mode) ? mode : ((mode === true) ? Z_FINISH : Z_NO_FLUSH); + + // Convert data if needed + if (typeof data === 'string') { + // If we need to compress text, change encoding to utf8. + strm.input = string2buf(data); + } else if (toString$1.call(data) === '[object ArrayBuffer]') { + strm.input = new Uint8Array(data); + } else { + strm.input = data; + } + + strm.next_in = 0; + strm.avail_in = strm.input.length; + + do { + if (strm.avail_out === 0) { + strm.output = Buf8(chunkSize); + strm.next_out = 0; + strm.avail_out = chunkSize; + } + status = deflate(strm, _mode); + + if (status !== Z_STREAM_END && status !== Z_OK) { + this.onEnd(status); + this.ended = true; + return false; + } + if (strm.avail_out === 0 || (strm.avail_in === 0 && (_mode === Z_FINISH || _mode === Z_SYNC_FLUSH))) { + if (this.options.to === 'string') { + this.onData(buf2binstring(shrinkBuf(strm.output, strm.next_out))); + } else { + this.onData(shrinkBuf(strm.output, strm.next_out)); + } + } + } while ((strm.avail_in > 0 || strm.avail_out === 0) && status !== Z_STREAM_END); + + // Finalize on the last chunk. + if (_mode === Z_FINISH) { + status = deflateEnd(this.strm); + this.onEnd(status); + this.ended = true; + return status === Z_OK; + } + + // callback interim results if Z_SYNC_FLUSH. + if (_mode === Z_SYNC_FLUSH) { + this.onEnd(Z_OK); + strm.avail_out = 0; + return true; + } + + return true; +}; + + + +Deflate.prototype.onData = function (chunk) { + this.chunks.push(chunk); +}; + + + +Deflate.prototype.onEnd = function (status) { + // On success - join + if (status === Z_OK) { + if (this.options.to === 'string') { + this.result = this.chunks.join(''); + } else { + this.result = flattenChunks(this.chunks); + } + } + this.chunks = []; + this.err = status; + this.msg = this.strm.msg; +}; + + + +function deflate$1(input, options) { + var deflator = new Deflate(options); + + deflator.push(input, true); + + // That will never happens, if you don't cheat with options :) + if (deflator.err) { throw deflator.msg || msg[deflator.err]; } + + return deflator.result; +} + + + +function deflateRaw(input, options) { + options = options || {}; + options.raw = true; + return deflate$1(input, options); +} + + + +function gzip(input, options) { + options = options || {}; + options.gzip = true; + return deflate$1(input, options); +} + + + + + }), + + "./node_modules/@telerik/kendo-draggable/dist/es/main.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "Draggable", function() { return Draggable; }); +var proxy = function (a, b) { return function (e) { return b(a(e)); }; }; + +var bind = function (el, event, callback) { return el.addEventListener && el.addEventListener(event, callback); }; + +var unbind = function (el, event, callback) { return el && el.removeEventListener && el.removeEventListener(event, callback); }; + +var noop = function () { }; + +var preventDefault = function (e) { return e.preventDefault(); }; + +var touchRegExp = /touch/; + +// 300ms is the usual mouse interval; +// // However, an underpowered mobile device under a heavy load may queue mouse events for a longer period. +var IGNORE_MOUSE_TIMEOUT = 2000; + +function normalizeEvent(e) { + if (e.type.match(touchRegExp)) { + return { + pageX: e.changedTouches[0].pageX, + pageY: e.changedTouches[0].pageY, + clientX: e.changedTouches[0].clientX, + clientY: e.changedTouches[0].clientY, + type: e.type, + originalEvent: e, + isTouch: true + }; + } + + return { + pageX: e.pageX, + pageY: e.pageY, + clientX: e.clientX, + clientY: e.clientY, + offsetX: e.offsetX, + offsetY: e.offsetY, + type: e.type, + ctrlKey: e.ctrlKey, + shiftKey: e.shiftKey, + altKey: e.altKey, + originalEvent: e + }; +} + +var Draggable = function Draggable(ref) { + var this$1 = this; + var press = ref.press; if ( press === void 0 ) press = noop; + var drag = ref.drag; if ( drag === void 0 ) drag = noop; + var release = ref.release; if ( release === void 0 ) release = noop; + var mouseOnly = ref.mouseOnly; if ( mouseOnly === void 0 ) mouseOnly = false; + + this._pressHandler = proxy(normalizeEvent, press); + this._dragHandler = proxy(normalizeEvent, drag); + this._releaseHandler = proxy(normalizeEvent, release); + this._ignoreMouse = false; + this._mouseOnly = mouseOnly; + + this._touchstart = function (e) { + if (e.touches.length === 1) { + this$1._pressHandler(e); + } + }; + + this._touchmove = function (e) { + if (e.touches.length === 1) { + this$1._dragHandler(e); + } + }; + + this._touchend = function (e) { + // the last finger has been lifted, and the user is not doing gesture. + // there might be a better way to handle this. + if (e.touches.length === 0 && e.changedTouches.length === 1) { + this$1._releaseHandler(e); + this$1._ignoreMouse = true; + setTimeout(this$1._restoreMouse, IGNORE_MOUSE_TIMEOUT); + } + }; + + this._restoreMouse = function () { + this$1._ignoreMouse = false; + }; + + this._mousedown = function (e) { + var which = e.which; + + if ((which && which > 1) || this$1._ignoreMouse) { + return; + } + + bind(document, "mousemove", this$1._mousemove); + bind(document, "mouseup", this$1._mouseup); + this$1._pressHandler(e); + }; + + this._mousemove = function (e) { + this$1._dragHandler(e); + }; + + this._mouseup = function (e) { + unbind(document, "mousemove", this$1._mousemove); + unbind(document, "mouseup", this$1._mouseup); + this$1._releaseHandler(e); + }; + + this._pointerdown = function (e) { + if (e.isPrimary && e.button === 0) { + bind(document, "pointermove", this$1._pointermove); + bind(document, "pointerup", this$1._pointerup); + bind(document, "pointercancel", this$1._pointerup); + bind(document, "contextmenu", preventDefault); + + this$1._pressHandler(e); + } + }; + + this._pointermove = function (e) { + if (e.isPrimary) { + this$1._dragHandler(e); + } + }; + + this._pointerup = function (e) { + if (e.isPrimary) { + unbind(document, "pointermove", this$1._pointermove); + unbind(document, "pointerup", this$1._pointerup); + unbind(document, "pointercancel", this$1._pointerup); + unbind(document, "contextmenu", preventDefault); + + this$1._releaseHandler(e); + } + }; +}; + +Draggable.supportPointerEvent = function supportPointerEvent () { + return (typeof window !== 'undefined') && window.PointerEvent; +}; + +Draggable.prototype.bindTo = function bindTo (element) { + if (element === this._element) { + return; + } + + if (this._element) { + this._unbindFromCurrent(); + } + + this._element = element; + this._bindToCurrent(); +}; + +Draggable.prototype._bindToCurrent = function _bindToCurrent () { + var element = this._element; + + if (this._usePointers()) { + bind(element, "pointerdown", this._pointerdown); + return; + } + + bind(element, "mousedown", this._mousedown); + + if (!this._mouseOnly) { + bind(element, "touchstart", this._touchstart); + bind(element, "touchmove", this._touchmove); + bind(element, "touchend", this._touchend); + } +}; + +Draggable.prototype._unbindFromCurrent = function _unbindFromCurrent () { + var element = this._element; + + if (this._usePointers()) { + unbind(element, "pointerdown", this._pointerdown); + unbind(document, "pointermove", this._pointermove); + unbind(document, "pointerup", this._pointerup); + unbind(document, "contextmenu", preventDefault); + unbind(document, "pointercancel", this._pointerup); + return; + } + + unbind(element, "mousedown", this._mousedown); + + if (!this._mouseOnly) { + unbind(element, "touchstart", this._touchstart); + unbind(element, "touchmove", this._touchmove); + unbind(element, "touchend", this._touchend); + } +}; + +Draggable.prototype._usePointers = function _usePointers () { + return !this._mouseOnly && Draggable.supportPointerEvent(); +}; + +Draggable.prototype.update = function update (ref) { + var press = ref.press; if ( press === void 0 ) press = noop; + var drag = ref.drag; if ( drag === void 0 ) drag = noop; + var release = ref.release; if ( release === void 0 ) release = noop; + var mouseOnly = ref.mouseOnly; if ( mouseOnly === void 0 ) mouseOnly = false; + + this._pressHandler = proxy(normalizeEvent, press); + this._dragHandler = proxy(normalizeEvent, drag); + this._releaseHandler = proxy(normalizeEvent, release); + this._mouseOnly = mouseOnly; +}; + +Draggable.prototype.destroy = function destroy () { + this._unbindFromCurrent(); + this._element = null; +}; + +// Re-export as "default" field to address a bug +// where the ES Module is imported by CommonJS code. +// +// See https://github.com/telerik/kendo-angular/issues/1314 +Draggable.default = Draggable; + +// Rollup won't output exports['default'] otherwise + __webpack_exports__["default"] = (Draggable); + + + + }), + + "./node_modules/@telerik/kendo-intl/dist/es/cldr.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _cldr_load__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/cldr/load.js"); + __webpack_require__.d(__webpack_exports__, "load", function() { return _cldr_load__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + + var _cldr_set_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/cldr/set-data.js"); + __webpack_require__.d(__webpack_exports__, "setData", function() { return _cldr_set_data__WEBPACK_IMPORTED_MODULE_1__["default"]; }); + + var _cldr_date_field_name__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/cldr/date-field-name.js"); + __webpack_require__.d(__webpack_exports__, "dateFieldName", function() { return _cldr_date_field_name__WEBPACK_IMPORTED_MODULE_2__["default"]; }); + + var _cldr_date_format_names__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/cldr/date-format-names.js"); + __webpack_require__.d(__webpack_exports__, "dateFormatNames", function() { return _cldr_date_format_names__WEBPACK_IMPORTED_MODULE_3__["default"]; }); + + var _cldr_info__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/cldr/info.js"); + __webpack_require__.d(__webpack_exports__, "cldr", function() { return _cldr_info__WEBPACK_IMPORTED_MODULE_4__["cldr"]; }); + + __webpack_require__.d(__webpack_exports__, "localeInfo", function() { return _cldr_info__WEBPACK_IMPORTED_MODULE_4__["localeInfo"]; }); + + var _cldr_currency__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/cldr/currency.js"); + __webpack_require__.d(__webpack_exports__, "currencyDisplays", function() { return _cldr_currency__WEBPACK_IMPORTED_MODULE_5__["currencyDisplays"]; }); + + __webpack_require__.d(__webpack_exports__, "currencyDisplay", function() { return _cldr_currency__WEBPACK_IMPORTED_MODULE_5__["currencyDisplay"]; }); + + __webpack_require__.d(__webpack_exports__, "currencyFractionOptions", function() { return _cldr_currency__WEBPACK_IMPORTED_MODULE_5__["currencyFractionOptions"]; }); + + __webpack_require__.d(__webpack_exports__, "territoryCurrencyCode", function() { return _cldr_currency__WEBPACK_IMPORTED_MODULE_5__["territoryCurrencyCode"]; }); + + __webpack_require__.d(__webpack_exports__, "localeCurrency", function() { return _cldr_currency__WEBPACK_IMPORTED_MODULE_5__["localeCurrency"]; }); + + var _cldr_first_day__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/cldr/first-day.js"); + __webpack_require__.d(__webpack_exports__, "firstDay", function() { return _cldr_first_day__WEBPACK_IMPORTED_MODULE_6__["default"]; }); + + var _cldr_weekend_range__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/cldr/weekend-range.js"); + __webpack_require__.d(__webpack_exports__, "weekendRange", function() { return _cldr_weekend_range__WEBPACK_IMPORTED_MODULE_7__["default"]; }); + + var _cldr_number_symbols__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/cldr/number-symbols.js"); + __webpack_require__.d(__webpack_exports__, "numberSymbols", function() { return _cldr_number_symbols__WEBPACK_IMPORTED_MODULE_8__["default"]; }); + + + + + + + + + + + + + + }), + + "./node_modules/@telerik/kendo-intl/dist/es/cldr/constants.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "DAYS_OF_WEEK", function() { return DAYS_OF_WEEK; }); + __webpack_require__.d(__webpack_exports__, "DEFAULT_TERRITORY", function() { return DEFAULT_TERRITORY; }); + +var DAYS_OF_WEEK = [ "sun", "mon", "tue", "wed", "thu", "fri", "sat" ]; + +var DEFAULT_TERRITORY = '001'; + + + }), + + "./node_modules/@telerik/kendo-intl/dist/es/cldr/currency.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "currencyDisplays", function() { return currencyDisplays; }); + __webpack_require__.d(__webpack_exports__, "currencyDisplay", function() { return currencyDisplay; }); + __webpack_require__.d(__webpack_exports__, "currencyFractionOptions", function() { return currencyFractionOptions; }); + __webpack_require__.d(__webpack_exports__, "territoryCurrencyCode", function() { return territoryCurrencyCode; }); + __webpack_require__.d(__webpack_exports__, "localeCurrency", function() { return localeCurrency; }); + var _info__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/cldr/info.js"); + var _errors__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/errors.js"); + var _territory__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/cldr/territory.js"); + var _parse_range_date__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/cldr/parse-range-date.js"); + + + + + + + +var NoCurrency = _errors__WEBPACK_IMPORTED_MODULE_1__["errors"].NoCurrency; +var NoCurrencyDisplay = _errors__WEBPACK_IMPORTED_MODULE_1__["errors"].NoCurrencyDisplay; +var NoSupplementalCurrency = _errors__WEBPACK_IMPORTED_MODULE_1__["errors"].NoSupplementalCurrency; +var NoCurrencyRegion = _errors__WEBPACK_IMPORTED_MODULE_1__["errors"].NoCurrencyRegion; +var NoValidCurrency = _errors__WEBPACK_IMPORTED_MODULE_1__["errors"].NoValidCurrency; + +var DEFAULT_CURRENCY_FRACTIONS = 2; +var SYMBOL = "symbol"; +var INVALID_CURRENCY_CODE = 'XXX'; + +var GLOBAL_CURRENCIES = { + '001': 'USD', // 001 refers to world. not sure if it is correct to assume USD but seems better than throw an error + '150': 'EUR' // 150 territory for Europe + +}; + +function getCurrencyInfo(locale, currency, throwIfNoValid) { + var info = Object(_info__WEBPACK_IMPORTED_MODULE_0__["getLocaleInfo"])(locale); + var currencies = info.numbers.currencies; + if (!currencies) { + if (throwIfNoValid) { + throw NoCurrency.error(); + } + + return; + } + + var currencyDisplayInfo = currencies[currency]; + + if (!currencyDisplayInfo) { + if (throwIfNoValid) { + throw NoCurrencyDisplay.error(); + } + + return; + } + + return currencyDisplayInfo; +} + +function lengthComparer(a, b) { + return b.length - a.length; +} + +function regionCurrency(regionCurrencies) { + var latestValidUntil, latestValidUntilRange; + var latestStillValid, latestStillValidDate; + + for (var idx = 0; idx < regionCurrencies.length; idx++) { + var currency = regionCurrencies[idx]; + var code = Object.keys(currency)[0]; + var info = currency[code]; + if (code !== INVALID_CURRENCY_CODE && info._tender !== 'false' && info._from) { + if (!info._to) { + var stillValidDate = Object(_parse_range_date__WEBPACK_IMPORTED_MODULE_3__["default"])(info._from); + if (!latestStillValidDate || latestStillValidDate < stillValidDate) { + latestStillValid = code; + latestStillValidDate = stillValidDate; + } + } else if (!latestStillValid) { + var validFrom = Object(_parse_range_date__WEBPACK_IMPORTED_MODULE_3__["default"])(info._from); + var validTo = Object(_parse_range_date__WEBPACK_IMPORTED_MODULE_3__["default"])(info._to); + if (!latestValidUntilRange || latestValidUntilRange.to < validTo || latestValidUntilRange.from < validFrom) { + latestValidUntil = code; + latestValidUntilRange = { + from: validFrom, + to: validTo + }; + } + } + } + } + + return latestStillValid || latestValidUntil; +} + +function currencyDisplays(locale, currency, throwIfNoValid) { + if ( throwIfNoValid === void 0 ) throwIfNoValid = true; + + var currencyInfo = getCurrencyInfo(locale, currency, throwIfNoValid); + if (!currencyInfo) { + return; + } + + if (!currencyInfo.displays) { + var displays = [ currency ]; + for (var field in currencyInfo) { + displays.push(currencyInfo[field]); + } + displays.sort(lengthComparer); + currencyInfo.displays = displays; + } + + return currencyInfo.displays; +} + +function currencyDisplay(locale, options) { + var value = options.value; + var currency = options.currency; + var currencyDisplay = options.currencyDisplay; if ( currencyDisplay === void 0 ) currencyDisplay = SYMBOL; + + if (currencyDisplay === "code") { + return currency; + } + + var currencyInfo = getCurrencyInfo(locale, currency, true); + var result; + + if (currencyDisplay === SYMBOL) { + result = currencyInfo["symbol-alt-narrow"] || currencyInfo[SYMBOL]; + } else { + if (typeof value === undefined || value !== 1) { + result = currencyInfo["displayName-count-other"]; + } else { + result = currencyInfo["displayName-count-one"]; + } + } + + return result; +} + +function currencyFractionOptions(code) { + var minimumFractionDigits = DEFAULT_CURRENCY_FRACTIONS; + var maximumFractionDigits = DEFAULT_CURRENCY_FRACTIONS; + + var fractions = ((_info__WEBPACK_IMPORTED_MODULE_0__["cldr"].supplemental.currencyData || {}).fractions || {})[code]; + + if (fractions && fractions._digits) { + maximumFractionDigits = minimumFractionDigits = parseInt(fractions._digits, 10); + } + + return { + minimumFractionDigits: minimumFractionDigits, + maximumFractionDigits: maximumFractionDigits + }; +} + +function territoryCurrencyCode(territory, throwIfNoValid) { + if ( throwIfNoValid === void 0 ) throwIfNoValid = true; + + if (GLOBAL_CURRENCIES[territory]) { + return GLOBAL_CURRENCIES[territory]; + } + + var currencyData = _info__WEBPACK_IMPORTED_MODULE_0__["cldr"].supplemental.currencyData; + if (!currencyData) { + if (throwIfNoValid) { + throw NoSupplementalCurrency.error(); + } + + return; + } + + var regionCurrencies = currencyData.region[territory]; + + if (!regionCurrencies) { + if (throwIfNoValid) { + throw NoCurrencyRegion.error(territory); + } + + return; + } + + var currencyCode = regionCurrency(regionCurrencies); + + return currencyCode; +} + +function localeCurrency(locale, throwIfNoValid) { + var info = Object(_info__WEBPACK_IMPORTED_MODULE_0__["getLocaleInfo"])(locale); + var numbers = info.numbers; + + if (!numbers.localeCurrency) { + var currency = territoryCurrencyCode(Object(_territory__WEBPACK_IMPORTED_MODULE_2__["default"])(info), throwIfNoValid); + + if (!currency && throwIfNoValid) { + throw NoValidCurrency.error(info.name); + } + + numbers.localeCurrency = currency; + } + + return numbers.localeCurrency; +} + + + }), + + "./node_modules/@telerik/kendo-intl/dist/es/cldr/date-field-name.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return dateFieldName; }); + var _info__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/cldr/info.js"); + var _errors__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/errors.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/common/constants.js"); + + + + +function dateFieldName(options, locale) { + if ( locale === void 0 ) locale = _common_constants__WEBPACK_IMPORTED_MODULE_2__["DEFAULT_LOCALE"]; + + var info = Object(_info__WEBPACK_IMPORTED_MODULE_0__["localeInfo"])(locale); + var dateFields = info.calendar.dateFields; + if (!dateFields) { + throw _errors__WEBPACK_IMPORTED_MODULE_1__["errors"].NoDateFieldNames.error(); + } + + var fieldNameInfo = dateFields[options.type] || {}; + + return fieldNameInfo[options.nameType] || fieldNameInfo['wide']; +} + + + }), + + "./node_modules/@telerik/kendo-intl/dist/es/cldr/date-format-names.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return dateFormatNames; }); + var _info__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/cldr/info.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/common/constants.js"); + + + +function lowerArray(arr) { + var result = []; + for (var idx = 0; idx < arr.length; idx++) { + result.push(arr[idx].toLowerCase()); + } + return result; +} + +function lowerObject(obj) { + var result = {}; + for (var field in obj) { + result[field] = obj[field].toLowerCase(); + } + return result; +} + +function cloneLower(obj) { + var result = Array.isArray(obj) ? lowerArray(obj) : lowerObject(obj); + return result; +} + +function dateFormatNames(locale, options) { + var type = options.type; + var nameType = options.nameType; + var standAlone = options.standAlone; + var lower = options.lower; + var info = Object(_info__WEBPACK_IMPORTED_MODULE_0__["getLocaleInfo"])(locale); + var formatType = standAlone ? "stand-alone" : "format"; + var lowerNameType = (lower ? "lower-" : _common_constants__WEBPACK_IMPORTED_MODULE_1__["EMPTY"]) + nameType; + var formatNames = info.calendar[type][formatType]; + var result = formatNames[lowerNameType]; + if (!result && lower) { + result = formatNames[lowerNameType] = cloneLower(formatNames[nameType]); + } + return result; +} + + }), + + "./node_modules/@telerik/kendo-intl/dist/es/cldr/default-data.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +var defaultData = { + en: { + name: "en", + identity: { + version: { + _number: "$Revision: 12418 $", + _cldrVersion: "29" + }, + language: "en" + }, + territory: "US", + numbers: { + symbols: { + decimal: ".", + group: ",", + list: ";", + percentSign: "%", + plusSign: "+", + minusSign: "-", + exponential: "E", + superscriptingExponent: "×", + perMille: "‰", + infinity: "∞", + nan: "NaN", + timeSeparator: ":" + }, + decimal: { + patterns: [ + "n" + ], + groupSize: [ + 3 + ] + }, + scientific: { + patterns: [ + "nEn" + ], + groupSize: [] + }, + percent: { + patterns: [ + "n%" + ], + groupSize: [ + 3 + ] + }, + currency: { + patterns: [ + "$n" + ], + groupSize: [ + 3 + ], + "unitPattern-count-one": "n $", + "unitPattern-count-other": "n $" + }, + currencies: { + BGN: { + displayName: "Bulgarian Lev", + "displayName-count-one": "Bulgarian lev", + "displayName-count-other": "Bulgarian leva", + symbol: "BGN" + }, + EUR: { + displayName: "Euro", + "displayName-count-one": "euro", + "displayName-count-other": "euros", + symbol: "€", + "symbol-alt-narrow": "€" + }, + USD: { + displayName: "US Dollar", + "displayName-count-one": "US dollar", + "displayName-count-other": "US dollars", + symbol: "$", + "symbol-alt-narrow": "$" + } + }, + localeCurrency: "USD", + accounting: { + patterns: [ + "$n", + "($n)" + ], + groupSize: [ + 3 + ] + } + }, + calendar: { + gmtFormat: "GMT{0}", + gmtZeroFormat: "GMT", + patterns: { + d: "M/d/y", + D: "EEEE, MMMM d, y", + m: "MMM d", + M: "MMMM d", + y: "MMM y", + Y: "MMMM y", + F: "EEEE, MMMM d, y h:mm:ss a", + g: "M/d/y h:mm a", + G: "M/d/y h:mm:ss a", + t: "h:mm a", + T: "h:mm:ss a", + s: "yyyy'-'MM'-'dd'T'HH':'mm':'ss", + u: "yyyy'-'MM'-'dd HH':'mm':'ss'Z'" + }, + dateTimeFormats: { + full: "{1} 'at' {0}", + long: "{1} 'at' {0}", + medium: "{1}, {0}", + short: "{1}, {0}", + availableFormats: { + Bh: "h B", + Bhm: "h:mm B", + Bhms: "h:mm:ss B", + d: "d", + E: "ccc", + EBhm: "E h:mm B", + EBhms: "E h:mm:ss B", + Ed: "d E", + Ehm: "E h:mm a", + EHm: "E HH:mm", + Ehms: "E h:mm:ss a", + EHms: "E HH:mm:ss", + Gy: "y G", + GyMMM: "MMM y G", + GyMMMd: "MMM d, y G", + GyMMMEd: "E, MMM d, y G", + h: "h a", + H: "HH", + hm: "h:mm a", + Hm: "HH:mm", + hms: "h:mm:ss a", + Hms: "HH:mm:ss", + hmsv: "h:mm:ss a v", + Hmsv: "HH:mm:ss v", + hmv: "h:mm a v", + Hmv: "HH:mm v", + M: "L", + Md: "M/d", + MEd: "E, M/d", + MMM: "LLL", + MMMd: "MMM d", + MMMEd: "E, MMM d", + MMMMd: "MMMM d", + "MMMMW-count-one": "'week' W 'of' MMMM", + "MMMMW-count-other": "'week' W 'of' MMMM", + ms: "mm:ss", + y: "y", + yM: "M/y", + yMd: "M/d/y", + yMEd: "E, M/d/y", + yMMM: "MMM y", + yMMMd: "MMM d, y", + yMMMEd: "E, MMM d, y", + yMMMM: "MMMM y", + yQQQ: "QQQ y", + yQQQQ: "QQQQ y", + "yw-count-one": "'week' w 'of' Y", + "yw-count-other": "'week' w 'of' Y" + } + }, + timeFormats: { + full: "h:mm:ss a zzzz", + long: "h:mm:ss a z", + medium: "h:mm:ss a", + short: "h:mm a" + }, + dateFormats: { + full: "EEEE, MMMM d, y", + long: "MMMM d, y", + medium: "MMM d, y", + short: "M/d/yy" + }, + days: { + format: { + abbreviated: [ + "Sun", + "Mon", + "Tue", + "Wed", + "Thu", + "Fri", + "Sat" + ], + narrow: [ + "S", + "M", + "T", + "W", + "T", + "F", + "S" + ], + short: [ + "Su", + "Mo", + "Tu", + "We", + "Th", + "Fr", + "Sa" + ], + wide: [ + "Sunday", + "Monday", + "Tuesday", + "Wednesday", + "Thursday", + "Friday", + "Saturday" + ] + }, + "stand-alone": { + abbreviated: [ + "Sun", + "Mon", + "Tue", + "Wed", + "Thu", + "Fri", + "Sat" + ], + narrow: [ + "S", + "M", + "T", + "W", + "T", + "F", + "S" + ], + short: [ + "Su", + "Mo", + "Tu", + "We", + "Th", + "Fr", + "Sa" + ], + wide: [ + "Sunday", + "Monday", + "Tuesday", + "Wednesday", + "Thursday", + "Friday", + "Saturday" + ] + } + }, + months: { + format: { + abbreviated: [ + "Jan", + "Feb", + "Mar", + "Apr", + "May", + "Jun", + "Jul", + "Aug", + "Sep", + "Oct", + "Nov", + "Dec" + ], + narrow: [ + "J", + "F", + "M", + "A", + "M", + "J", + "J", + "A", + "S", + "O", + "N", + "D" + ], + wide: [ + "January", + "February", + "March", + "April", + "May", + "June", + "July", + "August", + "September", + "October", + "November", + "December" + ] + }, + "stand-alone": { + abbreviated: [ + "Jan", + "Feb", + "Mar", + "Apr", + "May", + "Jun", + "Jul", + "Aug", + "Sep", + "Oct", + "Nov", + "Dec" + ], + narrow: [ + "J", + "F", + "M", + "A", + "M", + "J", + "J", + "A", + "S", + "O", + "N", + "D" + ], + wide: [ + "January", + "February", + "March", + "April", + "May", + "June", + "July", + "August", + "September", + "October", + "November", + "December" + ] + } + }, + quarters: { + format: { + abbreviated: [ + "Q1", + "Q2", + "Q3", + "Q4" + ], + narrow: [ + "1", + "2", + "3", + "4" + ], + wide: [ + "1st quarter", + "2nd quarter", + "3rd quarter", + "4th quarter" + ] + }, + "stand-alone": { + abbreviated: [ + "Q1", + "Q2", + "Q3", + "Q4" + ], + narrow: [ + "1", + "2", + "3", + "4" + ], + wide: [ + "1st quarter", + "2nd quarter", + "3rd quarter", + "4th quarter" + ] + } + }, + dayPeriods: { + format: { + abbreviated: { + midnight: "midnight", + am: "AM", + "am-alt-variant": "am", + noon: "noon", + pm: "PM", + "pm-alt-variant": "pm", + morning1: "in the morning", + afternoon1: "in the afternoon", + evening1: "in the evening", + night1: "at night" + }, + narrow: { + midnight: "mi", + am: "a", + "am-alt-variant": "am", + noon: "n", + pm: "p", + "pm-alt-variant": "pm", + morning1: "in the morning", + afternoon1: "in the afternoon", + evening1: "in the evening", + night1: "at night" + }, + wide: { + midnight: "midnight", + am: "AM", + "am-alt-variant": "am", + noon: "noon", + pm: "PM", + "pm-alt-variant": "pm", + morning1: "in the morning", + afternoon1: "in the afternoon", + evening1: "in the evening", + night1: "at night" + } + }, + "stand-alone": { + abbreviated: { + midnight: "midnight", + am: "AM", + "am-alt-variant": "am", + noon: "noon", + pm: "PM", + "pm-alt-variant": "pm", + morning1: "morning", + afternoon1: "afternoon", + evening1: "evening", + night1: "night" + }, + narrow: { + midnight: "midnight", + am: "AM", + "am-alt-variant": "am", + noon: "noon", + pm: "PM", + "pm-alt-variant": "pm", + morning1: "morning", + afternoon1: "afternoon", + evening1: "evening", + night1: "night" + }, + wide: { + midnight: "midnight", + am: "AM", + "am-alt-variant": "am", + noon: "noon", + pm: "PM", + "pm-alt-variant": "pm", + morning1: "morning", + afternoon1: "afternoon", + evening1: "evening", + night1: "night" + } + } + }, + eras: { + format: { + wide: { + "0": "Before Christ", + "1": "Anno Domini", + "0-alt-variant": "Before Common Era", + "1-alt-variant": "Common Era" + }, + abbreviated: { + "0": "BC", + "1": "AD", + "0-alt-variant": "BCE", + "1-alt-variant": "CE" + }, + narrow: { + "0": "B", + "1": "A", + "0-alt-variant": "BCE", + "1-alt-variant": "CE" + } + } + }, + dateFields: { + era: { + wide: "era" + }, + year: { + wide: "year", + short: "yr.", + narrow: "yr." + }, + quarter: { + wide: "quarter", + short: "qtr.", + narrow: "qtr." + }, + month: { + wide: "month", + short: "mo.", + narrow: "mo." + }, + week: { + wide: "week", + short: "wk.", + narrow: "wk." + }, + day: { + wide: "day", + short: "day", + narrow: "day" + }, + weekday: { + wide: "day of the week" + }, + dayperiod: { + wide: "AM/PM" + }, + hour: { + wide: "hour", + short: "hr.", + narrow: "hr." + }, + minute: { + wide: "minute", + short: "min.", + narrow: "min." + }, + second: { + wide: "second", + short: "sec.", + narrow: "sec." + }, + zone: { + wide: "time zone" + } + } + } + }, + supplemental: { + likelySubtags: { + en: "en-Latn-US" + }, + currencyData: { + region: { + US: [ + { + USD: { + _from: "1792-01-01" + } + } + ] + } + }, + weekData: { + firstDay: { + US: "sun" + }, + weekendStart: { + "001": "sat" + }, + weekendEnd: { + "001": "sun" + } + } + } +}; + __webpack_exports__["default"] = (defaultData); + + }), + + "./node_modules/@telerik/kendo-intl/dist/es/cldr/first-day.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return firstDay; }); + var _info__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/cldr/info.js"); + var _territory__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/cldr/territory.js"); + var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/cldr/constants.js"); + var _errors__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/errors.js"); + + + + + + +var NoWeekData = _errors__WEBPACK_IMPORTED_MODULE_3__["errors"].NoWeekData; +var NoFirstDay = _errors__WEBPACK_IMPORTED_MODULE_3__["errors"].NoFirstDay; + +function firstDay(locale) { + var info = Object(_info__WEBPACK_IMPORTED_MODULE_0__["getLocaleInfo"])(locale); + + if (!isNaN(info.firstDay)) { + return info.firstDay; + } + + var weekData = _info__WEBPACK_IMPORTED_MODULE_0__["cldr"].supplemental.weekData; + if (!weekData) { + throw NoWeekData.error(); + } + + var firstDay = weekData.firstDay[Object(_territory__WEBPACK_IMPORTED_MODULE_1__["default"])(info)] || weekData.firstDay[_constants__WEBPACK_IMPORTED_MODULE_2__["DEFAULT_TERRITORY"]]; + + if (!firstDay) { + throw NoFirstDay.error(); + } + + info.firstDay = _constants__WEBPACK_IMPORTED_MODULE_2__["DAYS_OF_WEEK"].indexOf(firstDay); + + return info.firstDay; +} + + + }), + + "./node_modules/@telerik/kendo-intl/dist/es/cldr/info.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "cldr", function() { return cldr; }); + __webpack_require__.d(__webpack_exports__, "getLocaleInfo", function() { return getLocaleInfo; }); + __webpack_require__.d(__webpack_exports__, "localeInfo", function() { return localeInfo; }); + var _default_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/cldr/default-data.js"); + var _common_is_string__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/common/is-string.js"); + var _errors__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/errors.js"); + + + + +function availableLocaleInfo(fullName, suffixes) { + var parts = fullName.split("-"); + var language = parts[0]; + var script = parts[1]; + var territory = parts[2]; + + return cldr[fullName] || (suffixes.indexOf(territory) !== -1 && cldr[language + "-" + territory]) || (suffixes.indexOf(script) !== -1 && cldr[language + "-" + script]) || cldr[language]; +} + +function localeFullName(language, suffixes) { + var likelySubtags = cldr.supplemental.likelySubtags; + + for (var idx = 0; idx < suffixes.length; idx++) { + var name = likelySubtags[language + "-" + suffixes[idx ]]; + if (name) { + return name; + } + } + + if (likelySubtags[language]) { + return likelySubtags[language]; + } +} + +var cldr = _default_data__WEBPACK_IMPORTED_MODULE_0__["default"]; + +function getLocaleInfo(locale) { + var info; + if (Object(_common_is_string__WEBPACK_IMPORTED_MODULE_1__["default"])(locale)) { + info = localeInfo(locale); + } else { + info = locale; + } + return info; +} + +function localeInfo(locale) { + if (cldr[locale]) { + return cldr[locale]; + } + + var likelySubtags = cldr.supplemental.likelySubtags; + if (likelySubtags) { + var parts = locale.split("-"); + var language = parts[0]; + var suffixes = parts.slice(1); + var fullName = localeFullName(language, suffixes); + var info = fullName ? availableLocaleInfo(fullName, suffixes) : null; + if (info) { + return info; + } + } + + throw _errors__WEBPACK_IMPORTED_MODULE_2__["errors"].NoLocale.error(locale); +} + + + }), + + "./node_modules/@telerik/kendo-intl/dist/es/cldr/load-dates.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return loadCalendarInfo; }); + var _info__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/cldr/info.js"); + + +var predefinedDatePatterns = { + s: "yyyy'-'MM'-'dd'T'HH':'mm':'ss", + u: "yyyy'-'MM'-'dd HH':'mm':'ss'Z'" +}; + +var YEAR_REGEX = /y+/g; +var SHORT_DATE = [ [ "dateFormats", "short" ] ]; + +var datePatterns = { + D: [ [ "dateFormats", "full" ] ], + m: [ [ "dateTimeFormats", "availableFormats", "MMMd" ] ], + M: [ [ "dateTimeFormats", "availableFormats", "MMMMd" ] ], + y: [ [ "dateTimeFormats", "availableFormats", "yMMM" ] ], + Y: [ [ "dateTimeFormats", "availableFormats", "yMMMM" ] ], + F: [ [ "dateFormats", "full" ], [ "timeFormats", "medium" ] ], + g: [ [ "dateTimeFormats", "availableFormats", "yMd" ], [ "timeFormats", "short" ] ], + G: [ [ "dateTimeFormats", "availableFormats", "yMd" ], [ "timeFormats", "medium" ] ], + t: [ [ "timeFormats", "short" ] ], + T: [ [ "timeFormats", "medium" ] ] +}; + +function toArray(obj) { + var result = []; + var names = Object.getOwnPropertyNames(obj); + for (var idx = 0; idx < names.length; idx++) { + var value = obj[names[idx]]; + result.push(value); + } + return result; +} + +function getCalendarNames(info, isObj) { + var result = {}; + for (var formatType in info) { + var names = result[formatType] = {}; + for (var format in info[formatType]) { + var formats = info[formatType][format]; + names[format] = isObj ? formats : toArray(formats); + } + } + return result; +} + +function getEraNames(eras) { + var result = {}; + var format = result.format = {}; + var eraNameMap = { + eraAbbr: "abbreviated", + eraNames: "wide", + eraNarrow: "narrow" + }; + + for (var eraFormatName in eras) { + var formatName = eraNameMap[eraFormatName]; + format[formatName] = eras[eraFormatName]; + } + + return result; +} + +function loadCalendarNames(locale, calendar) { + var localeCalendar = _info__WEBPACK_IMPORTED_MODULE_0__["cldr"][locale].calendar; + localeCalendar.days = getCalendarNames(calendar.days); + localeCalendar.months = getCalendarNames(calendar.months); + localeCalendar.quarters = getCalendarNames(calendar.quarters); + localeCalendar.dayPeriods = getCalendarNames(calendar.dayPeriods, true); + + localeCalendar.eras = getEraNames(calendar.eras); +} + +function loadCalendarDateFields(locale, fields) { + var localeCalendar = _info__WEBPACK_IMPORTED_MODULE_0__["cldr"][locale].calendar; + var dateFields = {}; + + for (var field in fields) { + var ref = field.split('-'); + var fieldName = ref[0]; + var formatType = ref[1]; if ( formatType === void 0 ) formatType = 'wide'; + var fieldInfo = dateFields[fieldName] || {}; + var displayName = fields[field].displayName; + + if (!displayName) { continue; } + + fieldInfo[formatType] = displayName; + dateFields[fieldName] = fieldInfo; + } + + localeCalendar.dateFields = dateFields; +} + +function getPredefinedFormat(paths, calendar) { + var result = []; + + for (var pathIdx = 0; pathIdx < paths.length; pathIdx++) { + var fields = paths[ pathIdx ]; + var pattern = calendar; + for (var idx = 0; idx < fields.length; idx++) { + pattern = pattern[fields[idx]]; + } + result.push(pattern); + } + + return result.join(" "); +} + +function loadCalendarPatterns(locale, calendar) { + var cldrCalendar = _info__WEBPACK_IMPORTED_MODULE_0__["cldr"][locale].calendar; + var patterns = cldrCalendar.patterns = {}; + + patterns.d = getPredefinedFormat(SHORT_DATE, calendar).replace(YEAR_REGEX, 'y'); + + for (var pattern in datePatterns) { + patterns[pattern] = getPredefinedFormat(datePatterns[pattern], calendar); + } + + for (var pattern$1 in predefinedDatePatterns) { + patterns[pattern$1] = predefinedDatePatterns[pattern$1]; + } + + var dateTimeFormats = calendar.dateTimeFormats; + cldrCalendar.dateTimeFormats = { + full: dateTimeFormats.full, + long: dateTimeFormats.long, + medium: dateTimeFormats.medium, + short: dateTimeFormats.short, + availableFormats: dateTimeFormats.availableFormats + }; + cldrCalendar.timeFormats = calendar.timeFormats; + cldrCalendar.dateFormats = calendar.dateFormats; +} + + +function loadCalendarInfo(locale, info) { + var calendar = _info__WEBPACK_IMPORTED_MODULE_0__["cldr"][locale].calendar = _info__WEBPACK_IMPORTED_MODULE_0__["cldr"][locale].calendar || {}; + for (var field in info) { + if (field === "timeZoneNames") { + calendar.gmtFormat = info[field].gmtFormat; + calendar.gmtZeroFormat = info[field].gmtZeroFormat; + } else if (field === "calendars" && info[field].gregorian) { + loadCalendarPatterns(locale, info[field].gregorian); + loadCalendarNames(locale, info[field].gregorian); + } else if (field === "fields") { + loadCalendarDateFields(locale, info.fields); + } + } +} + + + }), + + "./node_modules/@telerik/kendo-intl/dist/es/cldr/load-numbers.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return loadNumbersInfo; }); + var _info__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/cldr/info.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/common/constants.js"); + + + +var LATIN_NUMBER_FORMATS = "Formats-numberSystem-latn"; +var LATIN_NUMBER_SYMBOLS = "symbols-numberSystem-latn"; + +var patternRegExp = /([#,0.]+)/g; +var cldrCurrencyRegExp = /¤/g; + +function getPatterns(pattern) { + patternRegExp.lastIndex = 0; + + return pattern.replace(cldrCurrencyRegExp, _common_constants__WEBPACK_IMPORTED_MODULE_1__["CURRENCY_PLACEHOLDER"]).replace(patternRegExp, _common_constants__WEBPACK_IMPORTED_MODULE_1__["NUMBER_PLACEHOLDER"]).split(_common_constants__WEBPACK_IMPORTED_MODULE_1__["LIST_SEPARATOR"]); +} + +function getGroupSize(pattern) { + patternRegExp.lastIndex = 0; + + var numberPatterns = patternRegExp.exec(pattern.split(_common_constants__WEBPACK_IMPORTED_MODULE_1__["LIST_SEPARATOR"])[0])[0].split(_common_constants__WEBPACK_IMPORTED_MODULE_1__["POINT"]); + var integer = numberPatterns[0]; + + var groupSize = integer.split(_common_constants__WEBPACK_IMPORTED_MODULE_1__["GROUP_SEPARATOR"]).slice(1).map(function(group) { + return group.length; + }).reverse(); + + return groupSize; +} + +function loadCurrencyUnitPatterns(currencyInfo, currencyFormats) { + for (var field in currencyFormats) { + if (field.startsWith("unitPattern")) { + currencyInfo[field] = currencyFormats[field].replace("{0}", _common_constants__WEBPACK_IMPORTED_MODULE_1__["NUMBER_PLACEHOLDER"]).replace("{1}", _common_constants__WEBPACK_IMPORTED_MODULE_1__["CURRENCY_PLACEHOLDER"]); + } + } +} + +function loadNumbersInfo(locale, info) { + var localeInfo = _info__WEBPACK_IMPORTED_MODULE_0__["cldr"][locale]; + var numbers = localeInfo.numbers = localeInfo.numbers || {}; + numbers.symbols = numbers.symbols || {}; + for (var field in info) { + if (field === LATIN_NUMBER_SYMBOLS) { + Object.assign(numbers.symbols, info[field]); + } else if (field.includes(LATIN_NUMBER_FORMATS)) { + var style = field.substr(0, field.indexOf(LATIN_NUMBER_FORMATS)); + var pattern = info[field].standard; + numbers[style] = { + patterns: getPatterns(pattern) + }; + if (style === _common_constants__WEBPACK_IMPORTED_MODULE_1__["CURRENCY"]) { + numbers[style].groupSize = getGroupSize((info[_common_constants__WEBPACK_IMPORTED_MODULE_1__["DECIMAL"] + LATIN_NUMBER_FORMATS] || info[field]).standard); + loadCurrencyUnitPatterns(numbers[style], info[field]); + numbers[_common_constants__WEBPACK_IMPORTED_MODULE_1__["ACCOUNTING"]] = { + patterns: getPatterns(info[field][_common_constants__WEBPACK_IMPORTED_MODULE_1__["ACCOUNTING"]]), + groupSize: numbers[style].groupSize + }; + } else { + numbers[style].groupSize = getGroupSize(pattern); + } + } else if (field === "currencies") { + numbers.currencies = info[field]; + } + } +} + + }), + + "./node_modules/@telerik/kendo-intl/dist/es/cldr/load.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return load; }); + var _info__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/cldr/info.js"); + var _load_numbers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/cldr/load-numbers.js"); + var _load_dates__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/cldr/load-dates.js"); + var _territory__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/cldr/territory.js"); + + + + + +function loadLocale(locale, info) { + for (var field in info) { + if (field === "numbers") { + Object(_load_numbers__WEBPACK_IMPORTED_MODULE_1__["default"])(locale, info[field]); + } else if (field === "dates") { + Object(_load_dates__WEBPACK_IMPORTED_MODULE_2__["default"])(locale, info[field]); + } + } +} + +function load() { + var arguments$1 = arguments; + + var length = arguments.length; + for (var idx = 0; idx < length; idx++) { + var entry = arguments$1[idx]; + if (entry.main) { + var locale = Object.keys(entry.main)[0]; + var info = entry.main[locale]; + var localeInfo = _info__WEBPACK_IMPORTED_MODULE_0__["cldr"][locale] = _info__WEBPACK_IMPORTED_MODULE_0__["cldr"][locale] || {}; + + localeInfo.name = localeInfo.name || locale; + localeInfo.identity = localeInfo.identity || info.identity; + + Object(_territory__WEBPACK_IMPORTED_MODULE_3__["default"])(localeInfo); + loadLocale(locale, info); + } else if (entry.supplemental) { + if (entry.supplemental.weekData) { + _info__WEBPACK_IMPORTED_MODULE_0__["cldr"].supplemental.weekData = { + firstDay: entry.supplemental.weekData.firstDay, + weekendStart: entry.supplemental.weekData.weekendStart, + weekendEnd: entry.supplemental.weekData.weekendEnd + }; + } else if (entry.supplemental.likelySubtags) { + _info__WEBPACK_IMPORTED_MODULE_0__["cldr"].supplemental.likelySubtags = Object.assign(_info__WEBPACK_IMPORTED_MODULE_0__["cldr"].supplemental.likelySubtags, entry.supplemental.likelySubtags); + } else if (entry.supplemental.currencyData) { + var currencyData = _info__WEBPACK_IMPORTED_MODULE_0__["cldr"].supplemental.currencyData; + currencyData.region = Object.assign(currencyData.region || {}, entry.supplemental.currencyData.region); + currencyData.fractions = Object.assign(currencyData.fractions || {}, entry.supplemental.currencyData.fractions); + } + } + } +} + + + }), + + "./node_modules/@telerik/kendo-intl/dist/es/cldr/number-symbols.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return numberSymbols; }); + var _info__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/cldr/info.js"); + + +function numberSymbols(locale) { + var info = Object(_info__WEBPACK_IMPORTED_MODULE_0__["getLocaleInfo"])(locale); + + return info.numbers.symbols; +} + + }), + + "./node_modules/@telerik/kendo-intl/dist/es/cldr/parse-range-date.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return parseRangeDate; }); +function parseRangeDate(value) { + var parts = value.split('-'); + var year = parseInt(parts[0], 10); + var month = parseInt(parts[1], 10) - 1; + var day = parseInt(parts[2], 10); + + return new Date(year, month, day); +} + + + }), + + "./node_modules/@telerik/kendo-intl/dist/es/cldr/set-data.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return setData; }); + var _info__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/cldr/info.js"); + + +function setData(data) { + var locale = data.name; + var info = _info__WEBPACK_IMPORTED_MODULE_0__["cldr"][locale] = _info__WEBPACK_IMPORTED_MODULE_0__["cldr"][locale] || {}; + var supplemental = _info__WEBPACK_IMPORTED_MODULE_0__["cldr"].supplemental = _info__WEBPACK_IMPORTED_MODULE_0__["cldr"].supplemental || {}; + + if (data.likelySubtags) { + supplemental.likelySubtags = Object.assign(supplemental.likelySubtags || {}, data.likelySubtags); + } + + if (data.currencyData) { + supplemental.currencyData = supplemental.currencyData || {}; + supplemental.currencyData.fractions = Object.assign(supplemental.currencyData.fractions || {}, data.currencyData); + } + + var numbers = info.numbers; + + Object.assign(info, data); + + if (numbers && data.numbers) { + info.numbers = Object.assign({}, numbers, data.numbers); + } +} + + }), + + "./node_modules/@telerik/kendo-intl/dist/es/cldr/territory.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return localeTerritory; }); + var _info__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/cldr/info.js"); + + +function territoryFromName(name, identity) { + var likelySubtags = _info__WEBPACK_IMPORTED_MODULE_0__["cldr"].supplemental.likelySubtags; + var parts = name.split("-"); + if (likelySubtags) { + var likelyName = likelySubtags[name] || likelySubtags[parts[0]]; + if (likelyName) { + parts = likelyName.split("-"); + } + } + + if (identity) { + for (var idx = parts.length - 1; idx >= 1; idx--) { + var part = parts[idx]; + if (part === identity.variant || part === identity.script) { + parts.splice(idx, 1); + } + } + } + + var length = parts.length; + + if (length > 1) { + var territory = parts[length - 1]; + return territory.toUpperCase(); + } +} + +function localeTerritory(info) { + if (info.territory) { + return info.territory; + } + + var name = info.name; + var identity = info.identity; + var territory; + + if (identity && identity.territory) { + territory = identity.territory; + } else { + territory = territoryFromName(name, identity); + } + + info.territory = territory; + + return territory; +} + + + }), + + "./node_modules/@telerik/kendo-intl/dist/es/cldr/weekend-range.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return weekendRange; }); + var _info__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/cldr/info.js"); + var _territory__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/cldr/territory.js"); + var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/cldr/constants.js"); + var _errors__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/errors.js"); + + + + + + +var NoWeekData = _errors__WEBPACK_IMPORTED_MODULE_3__["errors"].NoWeekData; + +function weekendRange(locale) { + var info = Object(_info__WEBPACK_IMPORTED_MODULE_0__["getLocaleInfo"])(locale); + + if (info.weekendRange) { + return info.weekendRange; + } + + var weekData = _info__WEBPACK_IMPORTED_MODULE_0__["cldr"].supplemental.weekData; + if (!weekData) { + throw NoWeekData.error(); + } + + var territory = Object(_territory__WEBPACK_IMPORTED_MODULE_1__["default"])(info); + var start = weekData.weekendStart[territory] || weekData.weekendStart[_constants__WEBPACK_IMPORTED_MODULE_2__["DEFAULT_TERRITORY"]]; + var end = weekData.weekendEnd[territory] || weekData.weekendEnd[_constants__WEBPACK_IMPORTED_MODULE_2__["DEFAULT_TERRITORY"]]; + + info.weekendRange = { + start: _constants__WEBPACK_IMPORTED_MODULE_2__["DAYS_OF_WEEK"].indexOf(start), + end: _constants__WEBPACK_IMPORTED_MODULE_2__["DAYS_OF_WEEK"].indexOf(end) + }; + + return info.weekendRange; +} + + + }), + + "./node_modules/@telerik/kendo-intl/dist/es/common/constants.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "DECIMAL", function() { return DECIMAL; }); + __webpack_require__.d(__webpack_exports__, "CURRENCY", function() { return CURRENCY; }); + __webpack_require__.d(__webpack_exports__, "ACCOUNTING", function() { return ACCOUNTING; }); + __webpack_require__.d(__webpack_exports__, "PERCENT", function() { return PERCENT; }); + __webpack_require__.d(__webpack_exports__, "SCIENTIFIC", function() { return SCIENTIFIC; }); + __webpack_require__.d(__webpack_exports__, "CURRENCY_PLACEHOLDER", function() { return CURRENCY_PLACEHOLDER; }); + __webpack_require__.d(__webpack_exports__, "PERCENT_PLACEHOLDER", function() { return PERCENT_PLACEHOLDER; }); + __webpack_require__.d(__webpack_exports__, "NUMBER_PLACEHOLDER", function() { return NUMBER_PLACEHOLDER; }); + __webpack_require__.d(__webpack_exports__, "LIST_SEPARATOR", function() { return LIST_SEPARATOR; }); + __webpack_require__.d(__webpack_exports__, "GROUP_SEPARATOR", function() { return GROUP_SEPARATOR; }); + __webpack_require__.d(__webpack_exports__, "POINT", function() { return POINT; }); + __webpack_require__.d(__webpack_exports__, "EMPTY", function() { return EMPTY; }); + __webpack_require__.d(__webpack_exports__, "DEFAULT_LOCALE", function() { return DEFAULT_LOCALE; }); +var DECIMAL = "decimal"; +var CURRENCY = "currency"; +var ACCOUNTING = "accounting"; +var PERCENT = "percent"; +var SCIENTIFIC = "scientific"; + +var CURRENCY_PLACEHOLDER = "$"; +var PERCENT_PLACEHOLDER = "%"; +var NUMBER_PLACEHOLDER = "n"; + +var LIST_SEPARATOR = ";"; +var GROUP_SEPARATOR = ","; + +var POINT = "."; +var EMPTY = ""; + +var DEFAULT_LOCALE = "en"; + + + + }), + + "./node_modules/@telerik/kendo-intl/dist/es/common/format-string.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return formatString; }); +var formatRegExp = /\{(\d+)}/g; + +function formatString(format) { + var values = arguments; + + return format.replace(formatRegExp, function (match, index) { + var value = values[parseInt(index, 10) + 1]; + + return value; + }); +} + + }), + + "./node_modules/@telerik/kendo-intl/dist/es/common/is-date.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return isDate; }); +function isFunction(fun) { + return typeof(fun) === 'function'; +} + +function isDate(value) { + return Boolean(value) && isFunction(value.getTime) && isFunction(value.getMonth); +} + + + }), + + "./node_modules/@telerik/kendo-intl/dist/es/common/is-negative-zero.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return isNegativeZero; }); +function isNegativeZero(value) { + return (1 / value === -Infinity); +} + + + }), + + "./node_modules/@telerik/kendo-intl/dist/es/common/is-number.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return isNumber; }); +function isNumber(value) { + return typeof value === "number"; +} + + }), + + "./node_modules/@telerik/kendo-intl/dist/es/common/is-string.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return isString; }); +function isString(value) { + return typeof value === "string"; +} + + }), + + "./node_modules/@telerik/kendo-intl/dist/es/common/pad.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return pad; }); +function pad(number, digits, right) { + if ( digits === void 0 ) digits = 2; + if ( right === void 0 ) right = false; + + var count = digits - String(number).length; + var result = number; + + if (count > 0) { + var padString = new Array(count + 1).join("0"); + result = right ? number + padString : padString + number; + } + + return result; +} + + }), + + "./node_modules/@telerik/kendo-intl/dist/es/common/round.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return round; }); +var MAX_PRECISION = 20; + +function round(value, precision) { + var result = value; + var decimals = precision || 0; + + result = result.toString().split('e'); + result = Math.round(Number(result[0] + 'e' + (result[1] ? (Number(result[1]) + decimals) : decimals))); + + result = result.toString().split('e'); + result = Number(result[0] + 'e' + (result[1] ? (Number(result[1]) - decimals) : -decimals)); + + return result.toFixed(Math.min(decimals, MAX_PRECISION)); +} + + }), + + "./node_modules/@telerik/kendo-intl/dist/es/dates.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _dates_format_date__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/dates/format-date.js"); + __webpack_require__.d(__webpack_exports__, "formatDate", function() { return _dates_format_date__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + + var _dates_parse_date__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/dates/parse-date.js"); + __webpack_require__.d(__webpack_exports__, "parseDate", function() { return _dates_parse_date__WEBPACK_IMPORTED_MODULE_1__["default"]; }); + + var _dates_split_date_format__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/dates/split-date-format.js"); + __webpack_require__.d(__webpack_exports__, "splitDateFormat", function() { return _dates_split_date_format__WEBPACK_IMPORTED_MODULE_2__["default"]; }); + + + + + + + }), + + "./node_modules/@telerik/kendo-intl/dist/es/dates/constants.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "dateFormatRegExp", function() { return dateFormatRegExp; }); + __webpack_require__.d(__webpack_exports__, "DATE_FIELD_MAP", function() { return DATE_FIELD_MAP; }); +var MONTH = 'month'; +var HOUR = 'hour'; +var ZONE = 'zone'; +var WEEKDAY = 'weekday'; +var QUARTER = 'quarter'; + +var DATE_FIELD_MAP = { + 'G': 'era', + 'y': 'year', + 'q': QUARTER, + 'Q': QUARTER, + 'M': MONTH, + 'L': MONTH, + 'd': 'day', + 'E': WEEKDAY, + 'c': WEEKDAY, + 'e': WEEKDAY, + 'h': HOUR, + 'H': HOUR, + 'k': HOUR, + 'K': HOUR, + 'm': 'minute', + 's': 'second', + 'a': 'dayperiod', + 'x': ZONE, + 'X': ZONE, + 'z': ZONE, + 'Z': ZONE +}; + +var dateFormatRegExp = /d{1,2}|E{1,6}|e{1,6}|c{3,6}|c{1}|M{1,5}|L{1,5}|y{1,4}|H{1,2}|h{1,2}|k{1,2}|K{1,2}|m{1,2}|a{1,5}|s{1,2}|S{1,3}|z{1,4}|Z{1,5}|x{1,5}|X{1,5}|G{1,5}|q{1,5}|Q{1,5}|"[^"]*"|'[^']*'/g; + + + + }), + + "./node_modules/@telerik/kendo-intl/dist/es/dates/date-name-type.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return dateNameType; }); +function dateNameType(formatLength) { + var nameType; + if (formatLength <= 3) { + nameType = "abbreviated"; + } else if (formatLength === 4) { + nameType = "wide"; + } else if (formatLength === 5) { + nameType = "narrow"; + } else if (formatLength === 6) { + nameType = "short"; + } + + return nameType; +} + + }), + + "./node_modules/@telerik/kendo-intl/dist/es/dates/date-pattern.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return datePattern; }); + var _common_format_string__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/common/format-string.js"); + var _common_is_string__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/common/is-string.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/common/constants.js"); + + + + +var REMOVAL_PENALTY = 120; +var ADDITION_PENALTY = 20; +var LENGHT_DELTA = [ 2, 1, 5, 3, 4 ]; +var LONG_LESS_PENALTY_DELTA = -2; +var SHORT_LESS_PENALTY_DELTA = -1; +var SHORT_MORE_PENALTY_DELTA = 1; +var LONG_MORE_PENALTY_DELTA = 2; + +var PENALTIES = {}; +PENALTIES[LONG_LESS_PENALTY_DELTA.toString()] = 8; +PENALTIES[SHORT_LESS_PENALTY_DELTA.toString()] = 6; +PENALTIES[LONG_MORE_PENALTY_DELTA.toString()] = 6; +PENALTIES[SHORT_MORE_PENALTY_DELTA.toString()] = 3; + +var VALUE_FORMAT_LENGTH = { + numeric: 1, + "2-digit": 2, + short: 3, + long: 4, + narrow: 5 +}; + +var TIME_SPECIFIERS_REGEX = /[hHmsSzZoOvVxX]/; + +function getHourSpecifier(options) { + return options.hour12 ? "h" : "H"; +} + +var DATE_OPTIONS_MAP = [ { + key: "era", + specifier: "G" +}, { + key: "year", + specifier: "y" +}, { + key: "month", + specifier: "M" +}, { + key: "day", + specifier: "d" +}, { + key: "weekday", + specifier: "E" +}, { + key: "hour", + getSpecifier: getHourSpecifier +}, { + key: "minute", + specifier: "m" +}, { + key: "second", + specifier: "s" +}, { + key: "timeZoneName", + specifier: "z" +} ]; + +var STAND_ALONE_SPECIFIERS = { + e: 'c', + E: 'c', + M: 'L', + Q: 'q' +}; + +var specifiersRegex = {}; +var resolvedFormats = {}; + +function getSpecifierRegex(specifier) { + if (!specifiersRegex[specifier]) { + specifiersRegex[specifier] = new RegExp(specifier + "+"); + } + return specifiersRegex[specifier]; +} + +function skeletonSpecifiers(skeleton) { + var result = []; + var current = skeleton.charAt(0); + var specifier = current; + for (var idx = 1; idx < skeleton.length; idx++) { + var character = skeleton.charAt(idx); + if (character === specifier) { + current += character; + } else { + result.push(current); + current = specifier = character; + } + } + + result.push(current); + + return result; +} + +function findBestMatch(specifiers, availableFormats) { + var specifiersLength = specifiers.length; + var maxScore = -Number.MAX_VALUE; + var bestMatches, result; + for (var format in availableFormats) { + var matches = []; + var currentFormat = format.replace("v", "z"); + var score = 0; + for (var idx = 0; idx < specifiersLength; idx++) { + var specifier = specifiers[idx]; + var specifierRegex = getSpecifierRegex(specifier[0]); + var match = (specifierRegex.exec(currentFormat) || [])[0]; + + if (!match) { + score -= REMOVAL_PENALTY; + } else { + currentFormat = currentFormat.replace(match, _common_constants__WEBPACK_IMPORTED_MODULE_2__["EMPTY"]); + if (match.length !== specifier.length) { + var delta = Math.max(Math.min(LENGHT_DELTA[match.length] - LENGHT_DELTA[specifier.length], 2), -2); + score -= PENALTIES[delta]; + } + } + + matches.push(match); + + if (score < maxScore) { + break; + } + } + + if (currentFormat.length) { + score -= skeletonSpecifiers(currentFormat).length * ADDITION_PENALTY; + } + + if (score > maxScore) { + maxScore = score; + bestMatches = matches; + result = availableFormats[format]; + } + } + + result = result.replace("v", "z"); + + for (var idx$1 = 0; idx$1 < specifiersLength; idx$1++) { + var bestMatch = bestMatches[idx$1]; + if (bestMatch && bestMatch !== specifiers[idx$1]) { + var matchSpecifier = bestMatches[idx$1][0]; + result = result.replace(getSpecifierRegex(matchSpecifier), specifiers[idx$1]); + if (STAND_ALONE_SPECIFIERS[matchSpecifier]) { + result = result.replace(getSpecifierRegex(STAND_ALONE_SPECIFIERS[matchSpecifier]), specifiers[idx$1]); + } + } + } + + return result; +} + +function cacheFormat(skeleton, format, locale) { + if (!resolvedFormats[locale]) { + resolvedFormats[locale] = {}; + } + resolvedFormats[locale][skeleton] = format; +} + + +function skeletonFormat(skeleton, info) { + var availableFormats = info.calendar.dateTimeFormats.availableFormats; + if (availableFormats[skeleton]) { + return availableFormats[skeleton]; + } + if (resolvedFormats[info.name] && resolvedFormats[info.name][skeleton]) { + return resolvedFormats[info.name][skeleton]; + } + var timeStartIndex = skeleton.search(TIME_SPECIFIERS_REGEX); + var result; + if (timeStartIndex > 0) { + var dateSkeleton = skeleton.substr(0, timeStartIndex); + var timeSkeleton = skeleton.substr(timeStartIndex); + + result = Object(_common_format_string__WEBPACK_IMPORTED_MODULE_0__["default"])(info.calendar.dateTimeFormats.short, //should be deterimed based on specifiers + availableFormats[timeSkeleton] || findBestMatch(skeletonSpecifiers(timeSkeleton), availableFormats), + availableFormats[dateSkeleton] || findBestMatch(skeletonSpecifiers(dateSkeleton), availableFormats)); + } else { + result = findBestMatch(skeletonSpecifiers(skeleton), availableFormats); + } + + cacheFormat(skeleton, result, info.name); + return result; +} + +function skeletonFromOptions(options) { + var result = []; + for (var idx = 0; idx < DATE_OPTIONS_MAP.length; idx++) { + var option = DATE_OPTIONS_MAP[idx]; + var field = option.key; + var value = options[field]; + if (value) { + var spcifier = option.specifier || option.getSpecifier(options); + result.push(spcifier.repeat(VALUE_FORMAT_LENGTH[value])); + } + } + + return result.join(_common_constants__WEBPACK_IMPORTED_MODULE_2__["EMPTY"]); +} + +function datePattern(format, info) { + var calendar = info.calendar; + var result; + if (Object(_common_is_string__WEBPACK_IMPORTED_MODULE_1__["default"])(format)) { + if (calendar.patterns[format]) { + result = calendar.patterns[format]; + } else { + result = format; + } + } else if (format) { + if (format.pattern) { + return format.pattern; + } + + var skeleton = format.skeleton; + if (!skeleton) { + if (format.datetime) { + result = Object(_common_format_string__WEBPACK_IMPORTED_MODULE_0__["default"])(calendar.dateTimeFormats[format.datetime], calendar.timeFormats[format.datetime], calendar.dateFormats[format.datetime]); + } else if (format.date) { + result = calendar.dateFormats[format.date]; + } else if (format.time) { + result = calendar.timeFormats[format.time]; + } else { + skeleton = skeletonFromOptions(format); + } + } + + if (skeleton) { + result = skeletonFormat(skeleton, info); + } + } + + if (!result) { + result = calendar.patterns.d; + } + + return result; +} + + + }), + + "./node_modules/@telerik/kendo-intl/dist/es/dates/format-date.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return formatDate; }); + var _cldr__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/cldr.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/common/constants.js"); + var _common_format_string__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/common/format-string.js"); + var _date_pattern__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/dates/date-pattern.js"); + var _format_names__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/dates/format-names.js"); + var _common_pad__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/common/pad.js"); + var _common_is_date__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/common/is-date.js"); + var _constants__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/dates/constants.js"); + + + + + + + + + +function formatDayOfWeekIndex(day, formatLength, localeInfo) { + var firstDayIndex = Object(_cldr__WEBPACK_IMPORTED_MODULE_0__["firstDay"])(localeInfo); + var dayIndex; + if (day < firstDayIndex) { + dayIndex = 7 - firstDayIndex + day; + } else { + dayIndex = day - firstDayIndex; + } + + return dayIndex + 1; +} + +function formatMonth(month, formatLength, info, standAlone) { + if (formatLength <= 2) { + return Object(_common_pad__WEBPACK_IMPORTED_MODULE_5__["default"])(month + 1, formatLength); + } + return Object(_format_names__WEBPACK_IMPORTED_MODULE_4__["default"])(info, "months", formatLength, standAlone)[month]; +} + +function formatQuarter(date, formatLength, info, standAlone) { + var quarter = Math.floor(date.getMonth() / 3); + if (formatLength < 3) { + return quarter + 1; + } + + return Object(_format_names__WEBPACK_IMPORTED_MODULE_4__["default"])(info, "quarters", formatLength, standAlone)[quarter]; +} + + +function formatTimeZone(date, info, options) { + var shortHours = options.shortHours; + var optionalMinutes = options.optionalMinutes; + var separator = options.separator; + var localizedName = options.localizedName; + var zZeroOffset = options.zZeroOffset; + var offset = date.getTimezoneOffset() / 60; + if (offset === 0 && zZeroOffset) { + return "Z"; + } + var sign = offset <= 0 ? "+" : "-"; + var hoursMinutes = Math.abs(offset).toString().split("."); + var minutes = hoursMinutes[1] || 0; + var result = sign + (shortHours ? hoursMinutes[0] : Object(_common_pad__WEBPACK_IMPORTED_MODULE_5__["default"])(hoursMinutes[0], 2)); + if (minutes || !optionalMinutes) { + result += (separator ? ":" : _common_constants__WEBPACK_IMPORTED_MODULE_1__["EMPTY"]) + Object(_common_pad__WEBPACK_IMPORTED_MODULE_5__["default"])(minutes, 2); + } + + if (localizedName) { + var localizedFormat = offset === 0 ? info.calendar.gmtZeroFormat : info.calendar.gmtFormat; + result = Object(_common_format_string__WEBPACK_IMPORTED_MODULE_2__["default"])(localizedFormat, result); + } + + return result; +} + +function formatDayOfWeek(date, formatLength, info, standAlone) { + var result; + if (formatLength < 3) { + result = formatDayOfWeekIndex(date.getDay(), formatLength, info); + } else { + result = Object(_format_names__WEBPACK_IMPORTED_MODULE_4__["default"])(info, "days", formatLength, standAlone)[date.getDay()]; + } + return result; +} + +var formatters = {}; + +formatters.d = function(date, formatLength) { + return Object(_common_pad__WEBPACK_IMPORTED_MODULE_5__["default"])(date.getDate(), formatLength); +}; + +formatters.E = function(date, formatLength, info) { + return Object(_format_names__WEBPACK_IMPORTED_MODULE_4__["default"])(info, "days", formatLength)[date.getDay()]; +}; + +formatters.M = function(date, formatLength, info) { + return formatMonth(date.getMonth(), formatLength, info, false); +}; + +formatters.L = function(date, formatLength, info) { + return formatMonth(date.getMonth(), formatLength, info, true); +}; + +formatters.y = function(date, formatLength) { + var year = date.getFullYear(); + if (formatLength === 2) { + year = year % 100; + } + return Object(_common_pad__WEBPACK_IMPORTED_MODULE_5__["default"])(year, formatLength); +}; + +formatters.h = function(date, formatLength) { + var hours = date.getHours() % 12 || 12; + return Object(_common_pad__WEBPACK_IMPORTED_MODULE_5__["default"])(hours, formatLength); +}; + +formatters.H = function(date, formatLength) { + return Object(_common_pad__WEBPACK_IMPORTED_MODULE_5__["default"])(date.getHours(), formatLength); +}; + +formatters.k = function(date, formatLength) { + return Object(_common_pad__WEBPACK_IMPORTED_MODULE_5__["default"])(date.getHours() || 24, formatLength); +}; + +formatters.K = function(date, formatLength) { + return Object(_common_pad__WEBPACK_IMPORTED_MODULE_5__["default"])(date.getHours() % 12, formatLength); +}; + +formatters.m = function(date, formatLength) { + return Object(_common_pad__WEBPACK_IMPORTED_MODULE_5__["default"])(date.getMinutes(), formatLength); +}; + +formatters.s = function(date, formatLength) { + return Object(_common_pad__WEBPACK_IMPORTED_MODULE_5__["default"])(date.getSeconds(), formatLength); +}; + +formatters.S = function(date, formatLength) { + var milliseconds = date.getMilliseconds(); + var result; + if (milliseconds !== 0) { + result = String(date.getMilliseconds() / 1000).split(".")[1].substr(0, formatLength); + } else { + result = Object(_common_pad__WEBPACK_IMPORTED_MODULE_5__["default"])(_common_constants__WEBPACK_IMPORTED_MODULE_1__["EMPTY"], formatLength); + } + return result; +}; + +formatters.a = function(date, formatLength, info) { + return Object(_format_names__WEBPACK_IMPORTED_MODULE_4__["default"])(info, "dayPeriods", formatLength)[date.getHours() < 12 ? "am" : "pm"]; +}; + +formatters.z = function(date, formatLength, info) { + return formatTimeZone(date, info, { + shortHours: formatLength < 4, + optionalMinutes: formatLength < 4, + separator: true, + localizedName: true + }); +}; + +formatters.Z = function(date, formatLength, info) { + return formatTimeZone(date, info, { + separator: formatLength > 3, + localizedName: formatLength === 4, + zZeroOffset: formatLength === 5 + }); +}; + +formatters.x = function(date, formatLength, info) { + return formatTimeZone(date, info, { + optionalMinutes: formatLength === 1, + separator: formatLength === 3 || formatLength === 5 + }); +}; + +formatters.X = function(date, formatLength, info) { + return formatTimeZone(date, info, { + optionalMinutes: formatLength === 1, + separator: formatLength === 3 || formatLength === 5, + zZeroOffset: true + }); +}; + +formatters.G = function(date, formatLength, info) { + var era = date.getFullYear() >= 0 ? 1 : 0; + return Object(_format_names__WEBPACK_IMPORTED_MODULE_4__["default"])(info, "eras", formatLength)[era]; +}; + +formatters.e = formatDayOfWeek; + +formatters.c = function(date, formatLength, info) { + return formatDayOfWeek(date, formatLength, info, true); +}; + +formatters.q = function(date, formatLength, info) { + return formatQuarter(date, formatLength, info, true); +}; + +formatters.Q = formatQuarter; + +function formatDate(date, format, locale) { + if ( locale === void 0 ) locale = _common_constants__WEBPACK_IMPORTED_MODULE_1__["DEFAULT_LOCALE"]; + + if (!Object(_common_is_date__WEBPACK_IMPORTED_MODULE_6__["default"])(date)) { + if (date === undefined || date === null) { + return _common_constants__WEBPACK_IMPORTED_MODULE_1__["EMPTY"]; + } + return date; + } + + var info = Object(_cldr__WEBPACK_IMPORTED_MODULE_0__["localeInfo"])(locale); + var pattern = Object(_date_pattern__WEBPACK_IMPORTED_MODULE_3__["default"])(format, info); + + return pattern.replace(_constants__WEBPACK_IMPORTED_MODULE_7__["dateFormatRegExp"], function(match) { + var formatLength = match.length; + var result; + + if (match.includes("'") || match.includes("\"")) { + result = match.slice(1, formatLength - 1); + } else { + result = formatters[match[0]](date, formatLength, info); + } + + return result; + }); +} + + + }), + + "./node_modules/@telerik/kendo-intl/dist/es/dates/format-names.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return formatNames; }); + var _cldr_date_format_names__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/cldr/date-format-names.js"); + var _date_name_type__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/dates/date-name-type.js"); + + + +function formatNames(locale, type, formatLength, standAlone, lower) { + return Object(_cldr_date_format_names__WEBPACK_IMPORTED_MODULE_0__["default"])(locale, { + type: type, + nameType: Object(_date_name_type__WEBPACK_IMPORTED_MODULE_1__["default"])(formatLength), + standAlone: standAlone, + lower: lower + }); +} + + }), + + "./node_modules/@telerik/kendo-intl/dist/es/dates/parse-date.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return parseDate; }); + var _time_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/dates/time-utils.js"); + var _cldr__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/cldr.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/common/constants.js"); + var _errors__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/errors.js"); + var _format_names__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/dates/format-names.js"); + var _date_pattern__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/dates/date-pattern.js"); + var _common_round__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/common/round.js"); + var _common_is_date__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/common/is-date.js"); + + + + + + + + + +var timeZoneOffsetRegExp = /([+|\-]\d{1,2})(:?)(\d{2})?/; +var dateRegExp = /^\/Date\((.*?)\)\/$/; +var offsetRegExp = /[+-]\d*/; +var numberRegExp = { + 2: /^\d{1,2}/, + 3: /^\d{1,3}/, + 4: /^\d{4}/ +}; +var numberRegex = /\d+/; +var PLACEHOLDER = "{0}"; + +var leadingSpacesRegex = /^ */; +var trailingSpacesRegex = / *$/; + +var standardDateFormats = [ + "yyyy/MM/dd HH:mm:ss", + "yyyy/MM/dd HH:mm", + "yyyy/MM/dd", + "E MMM dd yyyy HH:mm:ss", + "yyyy-MM-ddTHH:mm:ss.SSSSSSSXXX", + "yyyy-MM-ddTHH:mm:ss.SSSXXX", + "yyyy-MM-ddTHH:mm:ss.SSXXX", + "yyyy-MM-ddTHH:mm:ssXXX", + "yyyy-MM-ddTHH:mm:ss.SSSSSSS", + "yyyy-MM-ddTHH:mm:ss.SSS", + "yyyy-MM-ddTHH:mmXXX", + "yyyy-MM-ddTHH:mmX", + "yyyy-MM-ddTHH:mm:ss", + "yyyy-MM-ddTHH:mm", + "yyyy-MM-dd HH:mm:ss", + "yyyy-MM-dd HH:mm", + "yyyy-MM-dd", + "HH:mm:ss", + "HH:mm" +]; +var FORMATS_SEQUENCE = [ "G", "g", "F", "Y", "y", "M", "m", "D", "d", "y", "T", "t" ]; +var TWO_DIGIT_YEAR_MAX = 2029; + +function outOfRange(value, start, end) { + return !(value >= start && value <= end); +} + +function lookAhead(match, state) { + var format = state.format; + var idx = state.idx; + var i = 0; + while (format[idx] === match) { + i++; + idx++; + } + if (i > 0) { + idx -= 1; + } + state.idx = idx; + return i; +} + +function getNumber(size, state) { + var regex = size ? (numberRegExp[size] || new RegExp('^\\d{1,' + size + '}')) : numberRegex, + match = state.value.substr(state.valueIdx, size).match(regex); + + if (match) { + match = match[0]; + state.valueIdx += match.length; + return parseInt(match, 10); + } + return null; +} + +function getIndexByName(names, state, lower) { + var i = 0, + length = names.length, + name, nameLength, + matchLength = 0, + matchIdx = 0, + subValue; + + for (; i < length; i++) { + name = names[i]; + nameLength = name.length; + subValue = state.value.substr(state.valueIdx, nameLength); + + if (lower) { + subValue = subValue.toLowerCase(); + } + + if (subValue === name && nameLength > matchLength) { + matchLength = nameLength; + matchIdx = i; + } + } + + if (matchLength) { + state.valueIdx += matchLength; + return matchIdx + 1; + } + + return null; +} + +function checkLiteral(state) { + var result = false; + if (state.value.charAt(state.valueIdx) === state.format[state.idx]) { + state.valueIdx++; + result = true; + } + return result; +} + +function calendarGmtFormats(calendar) { + var gmtFormat = calendar.gmtFormat; + var gmtZeroFormat = calendar.gmtZeroFormat; + if (!gmtFormat) { + throw _errors__WEBPACK_IMPORTED_MODULE_3__["errors"].NoGMTInfo.error(); + } + + return [ gmtFormat.replace(PLACEHOLDER, _common_constants__WEBPACK_IMPORTED_MODULE_2__["EMPTY"]).toLowerCase(), gmtZeroFormat.replace(PLACEHOLDER, _common_constants__WEBPACK_IMPORTED_MODULE_2__["EMPTY"]).toLowerCase() ]; +} + +function parseTimeZoneOffset(state, info, options) { + var shortHours = options.shortHours; + var noSeparator = options.noSeparator; + var optionalMinutes = options.optionalMinutes; + var localizedName = options.localizedName; + var zLiteral = options.zLiteral; + state.UTC = true; + + if (zLiteral && state.value.charAt(state.valueIdx) === "Z") { + state.valueIdx++; + return false; + } + + if (localizedName && !getIndexByName(calendarGmtFormats(info.calendar), state, true)) { + return true; + } + + var matches = timeZoneOffsetRegExp.exec(state.value.substr(state.valueIdx, 6)); + if (!matches) { + return !localizedName; + } + + var hoursMatch = matches[1]; + var minutesMatch = matches[3]; + var hoursOffset = parseInt(hoursMatch, 10); + var separator = matches[2]; + var minutesOffset = parseInt(minutesMatch, 10); + + if (isNaN(hoursOffset) || (!shortHours && hoursMatch.length !== 3) || (!optionalMinutes && isNaN(minutesOffset)) || (noSeparator && separator)) { + return true; + } + + if (isNaN(minutesOffset)) { + minutesOffset = null; + } + + if (outOfRange(hoursOffset, -12, 13) || (minutesOffset && outOfRange(minutesOffset, 0, 59))) { + return true; + } + + state.valueIdx += matches[0].length; + state.hoursOffset = hoursOffset; + state.minutesOffset = minutesOffset; +} + +function parseMonth(ch, state, info) { + var count = lookAhead(ch, state); + var names = Object(_format_names__WEBPACK_IMPORTED_MODULE_4__["default"])(info, "months", count, ch === "L", true); + + var month = count < 3 ? getNumber(2, state) : getIndexByName(names, state, true); + + if (month === null || outOfRange(month, 1, 12)) { + return true; + } + state.month = month - 1; +} + +function parseDayOfWeek(ch, state, info) { + var count = lookAhead(ch, state); + var names = Object(_format_names__WEBPACK_IMPORTED_MODULE_4__["default"])(info, "days", count, ch === "c", true); + var dayOfWeek = count < 3 ? getNumber(1, state) : getIndexByName(names, state, true); + if ((!dayOfWeek && dayOfWeek !== 0) || outOfRange(dayOfWeek, 1, 7)) { + return true; + } +} + +var parsers = {}; + +parsers.d = function(state) { + lookAhead("d", state); + var day = getNumber(2, state); + + if (day === null || outOfRange(day, 1, 31)) { + return true; + } + + if (state.day === null) { + state.day = day; + } +}; + +parsers.E = function(state, info) { + var count = lookAhead("E", state); + //validate if it matches the day? + var dayOfWeek = getIndexByName(Object(_format_names__WEBPACK_IMPORTED_MODULE_4__["default"])(info, "days", count, false, true), state, true); + if (dayOfWeek === null) { + return true; + } +}; + +parsers.M = function(state, info) { + return parseMonth("M", state, info); +}; + +parsers.L = function(state, info) { + return parseMonth("L", state, info); +}; + +parsers.y = function(state) { + var count = lookAhead("y", state); + var year = getNumber(count === 1 ? undefined : count, state); + + if (year === null) { + return true; + } + + if (count === 2) { + var currentYear = new Date().getFullYear(); + year = (currentYear - currentYear % 100) + year; + if (year > TWO_DIGIT_YEAR_MAX) { + year -= 100; + } + } + + state.year = year; +}; + +parsers.h = function(state) { + lookAhead("h", state); + + var hours = getNumber(2, state); + if (hours === 12) { + hours = 0; + } + + if (hours === null || outOfRange(hours, 0, 11)) { + return true; + } + + state.hours = hours; +}; + +parsers.K = function(state) { + lookAhead("K", state); + + var hours = getNumber(2, state); + + if (hours === null || outOfRange(hours, 0, 11)) { + return true; + } + + state.hours = hours; +}; + +parsers.a = function(state, info) { + var count = lookAhead("a", state); + var periodFormats = Object(_format_names__WEBPACK_IMPORTED_MODULE_4__["default"])(info, "dayPeriods", count, false, true); + + var pmHour = getIndexByName([ periodFormats.pm ], state, true); + if (!pmHour && !getIndexByName([ periodFormats.am ], state, true)) { + return true; + } + + state.pmHour = pmHour; +}; + +parsers.H = function(state) { + lookAhead("H", state); + var hours = getNumber(2, state); + if (hours === null || outOfRange(hours, 0, 23)) { + return true; + } + state.hours = hours; +}; + +parsers.k = function(state) { + lookAhead("k", state); + + var hours = getNumber(2, state); + + if (hours === null || outOfRange(hours, 1, 24)) { + return true; + } + + state.hours = hours === 24 ? 0 : hours; +}; + +parsers.m = function(state) { + lookAhead("m", state); + var minutes = getNumber(2, state); + + if (minutes === null || outOfRange(minutes, 0, 59)) { + return true; + } + + state.minutes = minutes; +}; + +parsers.s = function(state) { + lookAhead("s", state); + var seconds = getNumber(2, state); + if (seconds === null || outOfRange(seconds, 0, 59)) { + return true; + } + state.seconds = seconds; +}; + +parsers.S = function(state) { + var count = lookAhead("S", state); + var match = state.value.substr(state.valueIdx, count); + var milliseconds = null; + + if (!isNaN(parseInt(match, 10))) { + milliseconds = parseFloat("0." + match, 10); + milliseconds = Object(_common_round__WEBPACK_IMPORTED_MODULE_6__["default"])(milliseconds, 3); + milliseconds *= 1000; + state.valueIdx += count; + } + + if (milliseconds === null || outOfRange(milliseconds, 0, 999)) { + return true; + } + + state.milliseconds = milliseconds; +}; + +parsers.z = function(state, info) { + var count = lookAhead("z", state); + + var shortFormat = count < 4; + + var invalid = parseTimeZoneOffset(state, info, { + shortHours: shortFormat, + optionalMinutes: shortFormat, + localizedName: true + }); + + if (invalid) { + return invalid; + } +}; + +parsers.Z = function(state, info) { + var count = lookAhead("Z", state); + + var invalid = parseTimeZoneOffset(state, info, { + noSeparator: count < 4, + zLiteral: count === 5, + localizedName: count === 4 + }); + + if (invalid) { + return invalid; + } +}; + +parsers.x = function(state, info) { + var count = lookAhead("x", state); + + var invalid = parseTimeZoneOffset(state, info, { + noSeparator: count !== 3 && count !== 5, + optionalMinutes: count === 1 + }); + if (invalid) { + return invalid; + } +}; + +parsers.X = function(state, info) { + var count = lookAhead("X", state); + + var invalid = parseTimeZoneOffset(state, info, { + noSeparator: count !== 3 && count !== 5, + optionalMinutes: count === 1, + zLiteral: true + }); + if (invalid) { + return invalid; + } +}; + +parsers.G = function(state, info) { + var count = lookAhead("G", state); + var eras = Object(_format_names__WEBPACK_IMPORTED_MODULE_4__["default"])(info, "eras", count, false, true); + var era = getIndexByName([ eras[0], eras[1] ], state, true); + + if (era === null) { + return true; + } +}; + +parsers.e = function(state, info) { + return parseDayOfWeek("e", state, info); +}; + +parsers.c = function(state, info) { + return parseDayOfWeek("c", state, info); +}; + +function createDate(state) { + var year = state.year; + var month = state.month; + var day = state.day; + var hours = state.hours; + var minutes = state.minutes; + var seconds = state.seconds; + var milliseconds = state.milliseconds; + var pmHour = state.pmHour; + var UTC = state.UTC; + var hoursOffset = state.hoursOffset; + var minutesOffset = state.minutesOffset; + var hasTime = hours !== null || minutes !== null || seconds || null; + var date = new Date(); + var result; + + if (year === null && month === null && day === null && hasTime) { + year = date.getFullYear(); + month = date.getMonth(); + day = date.getDate(); + } else { + if (year === null) { + year = date.getFullYear(); + } + + if (day === null) { + day = 1; + } + } + + if (pmHour && hours < 12) { + hours += 12; + } + + if (UTC) { + if (hoursOffset) { + hours += -hoursOffset; + } + + if (minutesOffset) { + minutes += -minutesOffset * (hoursOffset < 0 ? -1 : 1); + } + + result = new Date(Date.UTC(year, month, day, hours, minutes, seconds, milliseconds)); + } else { + result = new Date(year, month, day, hours, minutes, seconds, milliseconds); + Object(_time_utils__WEBPACK_IMPORTED_MODULE_0__["adjustDST"])(result, hours); + } + + if (year < 100) { + result.setFullYear(year); + } + + if (result.getDate() !== day && UTC === undefined) { + return null; + } + + return result; +} + +function addFormatSpaces(value, format) { + var leadingSpaces = leadingSpacesRegex.exec(format)[0]; + var trailingSpaces = trailingSpacesRegex.exec(format)[0]; + + return ("" + leadingSpaces + value + trailingSpaces); +} + +function parseExact(value, format, info) { + var pattern = Object(_date_pattern__WEBPACK_IMPORTED_MODULE_5__["default"])(format, info).split(_common_constants__WEBPACK_IMPORTED_MODULE_2__["EMPTY"]); + + var state = { + format: pattern, + idx: 0, + value: addFormatSpaces(value, format), + valueIdx: 0, + year: null, + month: null, + day: null, + hours: null, + minutes: null, + seconds: null, + milliseconds: null + }; + var length = pattern.length; + var literal = false; + + for (; state.idx < length; state.idx++) { + var ch = pattern[state.idx]; + + if (literal) { + if (ch === "'") { + literal = false; + } + + checkLiteral(state); + } else { + if (parsers[ch]) { + var invalid = parsers[ch](state, info); + if (invalid) { + return null; + } + } else if (ch === "'") { + literal = true; + checkLiteral(state); + } else if (!checkLiteral(state)) { + return null; + } + } + } + + if (state.valueIdx < value.length) { + return null; + } + + return createDate(state) || null; +} + +function parseMicrosoftDateOffset(offset) { + var sign = offset.substr(0, 1) === "-" ? -1 : 1; + + var result = offset.substring(1); + result = (parseInt(result.substr(0, 2), 10) * 60) + parseInt(result.substring(2), 10); + + return sign * result; +} + +function parseMicrosoftDateFormat(value) { + if (value && value.indexOf("/D") === 0) { + var date = dateRegExp.exec(value); + if (date) { + date = date[1]; + var tzoffset = offsetRegExp.exec(date.substring(1)); + + date = new Date(parseInt(date, 10)); + + if (tzoffset) { + tzoffset = parseMicrosoftDateOffset(tzoffset[0]); + date = Object(_time_utils__WEBPACK_IMPORTED_MODULE_0__["convertTimeZone"])(date, date.getTimezoneOffset(), 0); + date = Object(_time_utils__WEBPACK_IMPORTED_MODULE_0__["convertTimeZone"])(date, 0, -1 * tzoffset); + } + + return date; + } + } +} + +function defaultFormats(calendar) { + var formats = []; + var patterns = calendar.patterns; + var length = FORMATS_SEQUENCE.length; + + for (var idx = 0; idx < length; idx++) { + formats.push(patterns[FORMATS_SEQUENCE[idx]]); + } + + return formats.concat(standardDateFormats); +} + +function parseDate(value, formats, locale) { + if ( locale === void 0 ) locale = _common_constants__WEBPACK_IMPORTED_MODULE_2__["DEFAULT_LOCALE"]; + + if (!value) { + return null; + } + + if (Object(_common_is_date__WEBPACK_IMPORTED_MODULE_7__["default"])(value)) { + return value; + } + + var parseValue = String(value).trim(); + var date = parseMicrosoftDateFormat(parseValue); + if (date) { + return date; + } + + var info = Object(_cldr__WEBPACK_IMPORTED_MODULE_1__["localeInfo"])(locale); + var parseFormats = formats || defaultFormats(info.calendar); + parseFormats = Array.isArray(parseFormats) ? parseFormats : [ parseFormats ]; + + var length = parseFormats.length; + + for (var idx = 0; idx < length; idx++) { + date = parseExact(parseValue, parseFormats[idx], info); + if (date) { + return date; + } + } + + return date; +} + + + }), + + "./node_modules/@telerik/kendo-intl/dist/es/dates/split-date-format.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return splitDateFormat; }); + var _common_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/common/constants.js"); + var _common_is_number__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/common/is-number.js"); + var _date_pattern__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/dates/date-pattern.js"); + var _date_name_type__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/dates/date-name-type.js"); + var _constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/dates/constants.js"); + var _cldr__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/cldr.js"); + + + + + + + +var NAME_TYPES = { + month: { + type: 'months', + minLength: 3, + standAlone: 'L' + }, + + quarter: { + type: 'quarters', + minLength: 3, + standAlone: 'q' + }, + + weekday: { + type: 'days', + minLength: { + E: 0, + c: 3, + e: 3 + }, + standAlone: 'c' + }, + + dayperiod: { + type: 'dayPeriods', + minLength: 0 + }, + + era: { + type: 'eras', + minLength: 0 + } +}; + +var LITERAL = 'literal'; + +function addLiteral(parts, value) { + var lastPart = parts[parts.length - 1]; + if (lastPart && lastPart.type === LITERAL) { + lastPart.pattern += value; + } else { + parts.push({ + type: LITERAL, + pattern: value + }); + } +} + +function isHour12(pattern) { + return pattern === 'h' || pattern === 'K'; +} + +function splitDateFormat(format, locale) { + if ( locale === void 0 ) locale = _common_constants__WEBPACK_IMPORTED_MODULE_0__["DEFAULT_LOCALE"]; + + var info = Object(_cldr__WEBPACK_IMPORTED_MODULE_5__["localeInfo"])(locale); + var pattern = Object(_date_pattern__WEBPACK_IMPORTED_MODULE_2__["default"])(format, info); + var parts = []; + var lastIndex = _constants__WEBPACK_IMPORTED_MODULE_4__["dateFormatRegExp"].lastIndex = 0; + var match = _constants__WEBPACK_IMPORTED_MODULE_4__["dateFormatRegExp"].exec(pattern); + + while (match) { + var value = match[0]; + + if (lastIndex < match.index) { + addLiteral(parts, pattern.substring(lastIndex, match.index)); + } + + if (value.startsWith('"') || value.startsWith("'")) { + addLiteral(parts, value); + } else { + var specifier = value[0]; + var type = _constants__WEBPACK_IMPORTED_MODULE_4__["DATE_FIELD_MAP"][specifier]; + var part = { + type: type, + pattern: value + }; + + if (type === 'hour') { + part.hour12 = isHour12(value); + } + + var names = NAME_TYPES[type]; + + if (names) { + var minLength = Object(_common_is_number__WEBPACK_IMPORTED_MODULE_1__["default"])(names.minLength) ? names.minLength : names.minLength[specifier]; + var patternLength = value.length; + + if (patternLength >= minLength) { + part.names = { + type: names.type, + nameType: Object(_date_name_type__WEBPACK_IMPORTED_MODULE_3__["default"])(patternLength), + standAlone: names.standAlone === specifier + }; + } + } + + parts.push(part); + } + + lastIndex = _constants__WEBPACK_IMPORTED_MODULE_4__["dateFormatRegExp"].lastIndex; + match = _constants__WEBPACK_IMPORTED_MODULE_4__["dateFormatRegExp"].exec(pattern); + } + + if (lastIndex < pattern.length) { + addLiteral(parts, pattern.substring(lastIndex)); + } + + return parts; +} + + + }), + + "./node_modules/@telerik/kendo-intl/dist/es/dates/time-utils.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "convertTimeZone", function() { return convertTimeZone; }); + __webpack_require__.d(__webpack_exports__, "adjustDST", function() { return adjustDST; }); +function convertTimeZone(date, fromOffset, toOffset) { + var fromLocalOffset = date.getTimezoneOffset(); + + var offsetDate = new Date(date.getTime() + (fromOffset - toOffset) * 60000); + + var toLocalOffset = offsetDate.getTimezoneOffset(); + + return new Date(offsetDate.getTime() + (toLocalOffset - fromLocalOffset) * 60000); +} + +function adjustDST(date, hours) { + if (!hours && date.getHours() === 23) { + date.setHours(date.getHours() + 2); + } +} + + }), + + "./node_modules/@telerik/kendo-intl/dist/es/error-details.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +//The error is represented by unique name and corresponding message +//The message can contain placeholders with index, e.g. {0}, {1} + + __webpack_exports__["default"] = ({ + "NoLocale": "Missing locale info for '{0}'", + "NoCurrency": "Cannot determine currency information. Please load the locale currencies data.", + "NoSupplementalCurrency": "Cannot determine currency. Please load the supplemental currencyData.", + "NoCurrencyRegion": "No currency data for region '{0}'", + "NoCurrencyDisplay": "Cannot determine currency display information. Please load the locale currencies data. The default culture does not include the all currencies data.", + "NoGMTInfo": "Cannot determine locale GMT format. Please load the locale timeZoneNames data.", + "NoWeekData": "Cannot determine locale first day of week. Please load the supplemental weekData.", + "NoFirstDay": "Cannot determine locale first day of week. Please load the supplemental weekData. The default culture includes only the 'en-US' first day info.", + "NoValidCurrency": "Cannot determine a default currency for the {0} locale. Please specify explicitly the currency with the format options.", + "NoDateFieldNames": "Cannot determine the locale date field names. Please load the locale dateFields data." +}); + + + }), + + "./node_modules/@telerik/kendo-intl/dist/es/errors.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "errors", function() { return errors; }); + __webpack_require__.d(__webpack_exports__, "IntlError", function() { return IntlError; }); + __webpack_require__.d(__webpack_exports__, "toIntlErrors", function() { return toIntlErrors; }); + var _error_details__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/error-details.js"); + + +var formatRegExp = /\{(\d+)}?\}/g; + +var IntlError = function IntlError(ref) { + var name = ref.name; + var message = ref.message; + + if (!name || !message) { + throw new Error("{ name: string, message: string } object is required!"); + } + + this.name = name; + this.message = message; +}; + +IntlError.prototype.formatMessage = function formatMessage () { + var values = [], len = arguments.length; + while ( len-- ) values[ len ] = arguments[ len ]; + + var flattenValues = flatten(values); + + var formattedMessage = this.message.replace(formatRegExp, function(match, index) { + return flattenValues[parseInt(index, 10)]; + }); + + return ((this.name) + ": " + formattedMessage); +}; + +IntlError.prototype.error = function error () { + var values = [], len = arguments.length; + while ( len-- ) values[ len ] = arguments[ len ]; + + return new Error(this.formatMessage(values)); +}; + +var flatten = function(arr) { + return arr.reduce(function (a, b) { return a.concat(b); }, []); +}; + +var toIntlErrors = function(errors) { + var predicate = function(prev, name) { + prev[name] = new IntlError({ name: name, message: errors[name] }); + return prev; + }; + + return Object.keys(errors).reduce(predicate, {}); +}; + +var errors = toIntlErrors(_error_details__WEBPACK_IMPORTED_MODULE_0__["default"]); + + + + + }), + + "./node_modules/@telerik/kendo-intl/dist/es/format.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "toString", function() { return toString; }); + __webpack_require__.d(__webpack_exports__, "format", function() { return format; }); + var _dates__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/dates.js"); + var _numbers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/numbers.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/common/constants.js"); + var _common_is_date__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/common/is-date.js"); + var _common_is_number__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/common/is-number.js"); + + + + + + +var formatRegExp = /\{(\d+)(:[^\}]+)?\}/g; + +function toString(value, format, locale) { + if (format) { + if (Object(_common_is_date__WEBPACK_IMPORTED_MODULE_3__["default"])(value)) { + return Object(_dates__WEBPACK_IMPORTED_MODULE_0__["formatDate"])(value, format, locale); + } else if (Object(_common_is_number__WEBPACK_IMPORTED_MODULE_4__["default"])(value)) { + return Object(_numbers__WEBPACK_IMPORTED_MODULE_1__["formatNumber"])(value, format, locale); + } + } + + return value !== undefined && value !== null ? value : _common_constants__WEBPACK_IMPORTED_MODULE_2__["EMPTY"]; +} + +function format(format, values, locale) { + return format.replace(formatRegExp, function(match, index, placeholderFormat) { + var value = values[parseInt(index, 10)]; + + return toString(value, placeholderFormat ? placeholderFormat.substring(1) : _common_constants__WEBPACK_IMPORTED_MODULE_2__["EMPTY"], locale); + }); +} + + + }), + + "./node_modules/@telerik/kendo-intl/dist/es/main.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _numbers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/numbers.js"); + __webpack_require__.d(__webpack_exports__, "formatNumber", function() { return _numbers__WEBPACK_IMPORTED_MODULE_0__["formatNumber"]; }); + + __webpack_require__.d(__webpack_exports__, "parseNumber", function() { return _numbers__WEBPACK_IMPORTED_MODULE_0__["parseNumber"]; }); + + var _dates__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/dates.js"); + __webpack_require__.d(__webpack_exports__, "formatDate", function() { return _dates__WEBPACK_IMPORTED_MODULE_1__["formatDate"]; }); + + __webpack_require__.d(__webpack_exports__, "parseDate", function() { return _dates__WEBPACK_IMPORTED_MODULE_1__["parseDate"]; }); + + __webpack_require__.d(__webpack_exports__, "splitDateFormat", function() { return _dates__WEBPACK_IMPORTED_MODULE_1__["splitDateFormat"]; }); + + var _cldr__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/cldr.js"); + __webpack_require__.d(__webpack_exports__, "load", function() { return _cldr__WEBPACK_IMPORTED_MODULE_2__["load"]; }); + + __webpack_require__.d(__webpack_exports__, "setData", function() { return _cldr__WEBPACK_IMPORTED_MODULE_2__["setData"]; }); + + __webpack_require__.d(__webpack_exports__, "dateFieldName", function() { return _cldr__WEBPACK_IMPORTED_MODULE_2__["dateFieldName"]; }); + + __webpack_require__.d(__webpack_exports__, "dateFormatNames", function() { return _cldr__WEBPACK_IMPORTED_MODULE_2__["dateFormatNames"]; }); + + __webpack_require__.d(__webpack_exports__, "cldr", function() { return _cldr__WEBPACK_IMPORTED_MODULE_2__["cldr"]; }); + + __webpack_require__.d(__webpack_exports__, "localeInfo", function() { return _cldr__WEBPACK_IMPORTED_MODULE_2__["localeInfo"]; }); + + __webpack_require__.d(__webpack_exports__, "currencyDisplays", function() { return _cldr__WEBPACK_IMPORTED_MODULE_2__["currencyDisplays"]; }); + + __webpack_require__.d(__webpack_exports__, "currencyDisplay", function() { return _cldr__WEBPACK_IMPORTED_MODULE_2__["currencyDisplay"]; }); + + __webpack_require__.d(__webpack_exports__, "currencyFractionOptions", function() { return _cldr__WEBPACK_IMPORTED_MODULE_2__["currencyFractionOptions"]; }); + + __webpack_require__.d(__webpack_exports__, "territoryCurrencyCode", function() { return _cldr__WEBPACK_IMPORTED_MODULE_2__["territoryCurrencyCode"]; }); + + __webpack_require__.d(__webpack_exports__, "localeCurrency", function() { return _cldr__WEBPACK_IMPORTED_MODULE_2__["localeCurrency"]; }); + + __webpack_require__.d(__webpack_exports__, "firstDay", function() { return _cldr__WEBPACK_IMPORTED_MODULE_2__["firstDay"]; }); + + __webpack_require__.d(__webpack_exports__, "weekendRange", function() { return _cldr__WEBPACK_IMPORTED_MODULE_2__["weekendRange"]; }); + + __webpack_require__.d(__webpack_exports__, "numberSymbols", function() { return _cldr__WEBPACK_IMPORTED_MODULE_2__["numberSymbols"]; }); + + var _format__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/format.js"); + __webpack_require__.d(__webpack_exports__, "toString", function() { return _format__WEBPACK_IMPORTED_MODULE_3__["toString"]; }); + + __webpack_require__.d(__webpack_exports__, "format", function() { return _format__WEBPACK_IMPORTED_MODULE_3__["format"]; }); + + var _errors__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/errors.js"); + __webpack_require__.d(__webpack_exports__, "errors", function() { return _errors__WEBPACK_IMPORTED_MODULE_4__["errors"]; }); + + __webpack_require__.d(__webpack_exports__, "IntlError", function() { return _errors__WEBPACK_IMPORTED_MODULE_4__["IntlError"]; }); + + __webpack_require__.d(__webpack_exports__, "toIntlErrors", function() { return _errors__WEBPACK_IMPORTED_MODULE_4__["toIntlErrors"]; }); + + + + + + + + + }), + + "./node_modules/@telerik/kendo-intl/dist/es/numbers.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + var _numbers_format_number__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/numbers/format-number.js"); + __webpack_require__.d(__webpack_exports__, "formatNumber", function() { return _numbers_format_number__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + + var _numbers_parse_number__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/numbers/parse-number.js"); + __webpack_require__.d(__webpack_exports__, "parseNumber", function() { return _numbers_parse_number__WEBPACK_IMPORTED_MODULE_1__["default"]; }); + + + + + }), + + "./node_modules/@telerik/kendo-intl/dist/es/numbers/custom-number-format.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return customNumberFormat; }); + var _common_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/common/constants.js"); + var _common_is_negative_zero__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/common/is-negative-zero.js"); + var _group_integer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/numbers/group-integer.js"); + var _common_round__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/common/round.js"); + var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/numbers/utils.js"); + + + + + + +var SHARP = "#"; +var ZERO = "0"; + +var trailingZerosRegExp = /(\.(?:[0-9]*[1-9])?)0+$/g; +var trailingPointRegExp = /\.$/; +var commaRegExp = /\,/g; + +function trimTrailingZeros(value, lastZero) { + var trimRegex; + + if (lastZero === 0) { + trimRegex = trailingZerosRegExp; + } else { + trimRegex = new RegExp(("(\\.[0-9]{" + lastZero + "}[1-9]*)0+$"), 'g'); + } + + return value.replace(trimRegex, '$1').replace(trailingPointRegExp, _common_constants__WEBPACK_IMPORTED_MODULE_0__["EMPTY"]); +} + +function roundNumber(formatOptions) { + var number = formatOptions.number; + var format = formatOptions.format; + var decimalIndex = format.indexOf(_common_constants__WEBPACK_IMPORTED_MODULE_0__["POINT"]); + + if (decimalIndex !== -1) { + var zeroIndex = format.lastIndexOf(ZERO) - decimalIndex; + var sharpIndex = format.lastIndexOf(SHARP) - decimalIndex; + var hasZero = zeroIndex > -1; + var hasSharp = sharpIndex > -1; + var fraction = number.toString().split("e"); + + if (fraction[1]) { + fraction = Object(_common_round__WEBPACK_IMPORTED_MODULE_3__["default"])(number, Math.abs(fraction[1])); + } else { + fraction = fraction[0]; + } + fraction = fraction.split(_common_constants__WEBPACK_IMPORTED_MODULE_0__["POINT"])[1] || _common_constants__WEBPACK_IMPORTED_MODULE_0__["EMPTY"]; + + var precision = fraction.length; + var trailingZeros = -1; + + if (!hasZero && !hasSharp) { + formatOptions.format = format.substring(0, decimalIndex) + format.substring(decimalIndex + 1); + decimalIndex = -1; + precision = 0; + } else if (hasZero && zeroIndex > sharpIndex) { + precision = zeroIndex; + } else if (sharpIndex > zeroIndex) { + if (hasSharp && precision > sharpIndex) { + precision = sharpIndex; + } else if (hasZero && precision < zeroIndex) { + precision = zeroIndex; + } + + trailingZeros = hasZero ? zeroIndex : 0; + } + + if (precision > -1) { + number = Object(_common_round__WEBPACK_IMPORTED_MODULE_3__["default"])(number, precision); + if (trailingZeros > -1) { + number = trimTrailingZeros(number, trailingZeros); + } + } + } else { + number = Object(_common_round__WEBPACK_IMPORTED_MODULE_3__["default"])(number); + } + + if (formatOptions.negative && (number * -1) >= 0 && !formatOptions.negativeZero) { + formatOptions.negative = false; + } + + formatOptions.number = number; + formatOptions.decimalIndex = decimalIndex; +} + +function isConstantFormat(format) { + return format.indexOf(SHARP) === -1 && format.indexOf(ZERO) === -1; +} + +function setValueSpecificFormat(formatOptions) { + var number = formatOptions.number; + var format = formatOptions.format; + format = format.split(_common_constants__WEBPACK_IMPORTED_MODULE_0__["LIST_SEPARATOR"]); + if ((formatOptions.negative || formatOptions.negativeZero) && format[1]) { + format = format[1]; + formatOptions.hasNegativeFormat = true; + } else if (number === 0) { + var zeroFormat = format[2]; + format = zeroFormat || format[0]; + if (zeroFormat && isConstantFormat(zeroFormat)) { + formatOptions.constant = zeroFormat; + } + } else { + format = format[0]; + } + + formatOptions.format = format; +} + +function setGroupOptions(formatOptions) { + formatOptions.hasGroup = formatOptions.format.indexOf(_common_constants__WEBPACK_IMPORTED_MODULE_0__["GROUP_SEPARATOR"]) > -1; + if (formatOptions.hasGroup) { + formatOptions.format = formatOptions.format.replace(commaRegExp, _common_constants__WEBPACK_IMPORTED_MODULE_0__["EMPTY"]); + } +} + +function placeholderIndex(index1, index2, start) { + var index; + if (index1 === -1 && index2 !== -1) { + index = index2; + } else if (index1 !== -1 && index2 === -1) { + index = index1; + } else { + index = start ? Math.min(index1, index2) : Math.max(index1, index2); + } + return index; +} + +function setPlaceholderIndices(formatOptions) { + var format = formatOptions.format; + var sharpIndex = format.indexOf(SHARP); + var zeroIndex = format.indexOf(ZERO); + + var start = placeholderIndex(sharpIndex, zeroIndex, true); + + sharpIndex = format.lastIndexOf(SHARP); + zeroIndex = format.lastIndexOf(ZERO); + + var end = placeholderIndex(sharpIndex, zeroIndex); + + if (start === format.length) { + end = start; + } + + formatOptions.start = start; + formatOptions.end = end; + formatOptions.lastZeroIndex = zeroIndex; +} + +function replaceStyleSymbols(number, style, symbol) { + var result = number; + if (style === _common_constants__WEBPACK_IMPORTED_MODULE_0__["CURRENCY"] || style === _common_constants__WEBPACK_IMPORTED_MODULE_0__["PERCENT"]) { + result = _common_constants__WEBPACK_IMPORTED_MODULE_0__["EMPTY"]; + for (var idx = 0, length = number.length; idx < length; idx++) { + var ch = number.charAt(idx); + result += (ch === _common_constants__WEBPACK_IMPORTED_MODULE_0__["CURRENCY_PLACEHOLDER"] || ch === _common_constants__WEBPACK_IMPORTED_MODULE_0__["PERCENT_PLACEHOLDER"]) ? symbol : ch; + } + } + return result; +} + +function replacePlaceHolders(formatOptions, info) { + var start = formatOptions.start; + var end = formatOptions.end; + var negative = formatOptions.negative; + var negativeZero = formatOptions.negativeZero; + var format = formatOptions.format; + var decimalIndex = formatOptions.decimalIndex; + var lastZeroIndex = formatOptions.lastZeroIndex; + var hasNegativeFormat = formatOptions.hasNegativeFormat; + var hasGroup = formatOptions.hasGroup; + var number = formatOptions.number; + var value = number.toString().split(_common_constants__WEBPACK_IMPORTED_MODULE_0__["POINT"]); + var length = format.length; + var integer = value[0]; + var fraction = value[1] || _common_constants__WEBPACK_IMPORTED_MODULE_0__["EMPTY"]; + var integerLength = integer.length; + var replacement = _common_constants__WEBPACK_IMPORTED_MODULE_0__["EMPTY"]; + + number = format.substring(0, start); + + if ((negative || negativeZero) && !hasNegativeFormat) { + number += "-"; + } + + for (var idx = start; idx < length; idx++) { + var ch = format.charAt(idx); + + if (decimalIndex === -1) { + if (end - idx < integerLength) { + + number += integer; + break; + } + } else { + if (lastZeroIndex !== -1 && lastZeroIndex < idx) { + replacement = _common_constants__WEBPACK_IMPORTED_MODULE_0__["EMPTY"]; + } + + if ((decimalIndex - idx) <= integerLength && decimalIndex - idx > -1) { + number += integer; + idx = decimalIndex; + } + + if (decimalIndex === idx) { + number += (fraction ? info.numbers.symbols.decimal : _common_constants__WEBPACK_IMPORTED_MODULE_0__["EMPTY"]) + fraction; + idx += end - decimalIndex + 1; + continue; + } + } + + if (ch === ZERO) { + number += ch; + replacement = ch; + } else if (ch === SHARP) { + number += replacement; + } + } + + if (hasGroup) { + number = Object(_group_integer__WEBPACK_IMPORTED_MODULE_2__["default"])(number, start + (negative && !hasNegativeFormat ? 1 : 0), Math.max(end, (integerLength + start)), info.numbers.decimal, info); + } + + if (end >= start) { + number += format.substring(end + 1); + } + + return number; +} + +function applyCustomFormat(formatOptions, info) { + var number = formatOptions.number; + if (formatOptions.start !== -1) { + number = replacePlaceHolders(formatOptions, info); + number = replaceStyleSymbols(number, formatOptions.style, formatOptions.symbol); + number = Object(_utils__WEBPACK_IMPORTED_MODULE_4__["replaceLiterals"])(number, formatOptions.literals); + } + + return number; +} + +function customNumberFormat(number, format, info) { + var formatOptions = { + negative: number < 0, + number: Math.abs(number), + negativeZero: Object(_common_is_negative_zero__WEBPACK_IMPORTED_MODULE_1__["default"])(number), + format: format + }; + + setValueSpecificFormat(formatOptions); + + if (formatOptions.constant) { + return formatOptions.constant; + } + + Object(_utils__WEBPACK_IMPORTED_MODULE_4__["setFormatLiterals"])(formatOptions); + Object(_utils__WEBPACK_IMPORTED_MODULE_4__["setStyleOptions"])(formatOptions, info); + setGroupOptions(formatOptions); + roundNumber(formatOptions); + setPlaceholderIndices(formatOptions); + + return applyCustomFormat(formatOptions, info); +} + + }), + + "./node_modules/@telerik/kendo-intl/dist/es/numbers/format-currency-symbol.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return formatCurrencySymbol; }); + var _cldr__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/cldr.js"); + + +function formatCurrencySymbol(info, options) { + if ( options === void 0 ) options = {}; + + if (!options.currency) { + options.currency = Object(_cldr__WEBPACK_IMPORTED_MODULE_0__["localeCurrency"])(info, true); + } + + var display = Object(_cldr__WEBPACK_IMPORTED_MODULE_0__["currencyDisplay"])(info, options); + + return display; +} + + + }), + + "./node_modules/@telerik/kendo-intl/dist/es/numbers/format-number.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return formatNumber; }); + var _cldr__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/cldr.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/common/constants.js"); + var _standard_number_format__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/numbers/standard-number-format.js"); + var _custom_number_format__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/numbers/custom-number-format.js"); + var _format_options__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/numbers/format-options.js"); + + + + + + +function formatNumber(number, format, locale) { + if ( format === void 0 ) format = _common_constants__WEBPACK_IMPORTED_MODULE_1__["NUMBER_PLACEHOLDER"]; + if ( locale === void 0 ) locale = _common_constants__WEBPACK_IMPORTED_MODULE_1__["DEFAULT_LOCALE"]; + + if (number === undefined || number === null) { + return _common_constants__WEBPACK_IMPORTED_MODULE_1__["EMPTY"]; + } + + if (!isFinite(number)) { + return String(number); + } + + var info = Object(_cldr__WEBPACK_IMPORTED_MODULE_0__["localeInfo"])(locale); + var options = Object(_format_options__WEBPACK_IMPORTED_MODULE_4__["default"])(format); + + var result; + if (options) { + var style = options.style || _common_constants__WEBPACK_IMPORTED_MODULE_1__["DECIMAL"]; + result = Object(_standard_number_format__WEBPACK_IMPORTED_MODULE_2__["default"])(number, Object.assign({}, info.numbers[style], options), info); + } else { + result = Object(_custom_number_format__WEBPACK_IMPORTED_MODULE_3__["default"])(number, format, info); + } + + return result; +} + + + }), + + "./node_modules/@telerik/kendo-intl/dist/es/numbers/format-options.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return formatOptions; }); + var _common_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/common/constants.js"); + var _common_is_string__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/common/is-string.js"); + + + +var standardFormatRegExp = /^(n|c|p|e|a)(\d*)$/i; + +function standardFormatOptions(format) { + var formatAndPrecision = standardFormatRegExp.exec(format); + + if (formatAndPrecision) { + var options = { + style: _common_constants__WEBPACK_IMPORTED_MODULE_0__["DECIMAL"] + }; + + var style = formatAndPrecision[1].toLowerCase(); + + if (style === "c") { + options.style = _common_constants__WEBPACK_IMPORTED_MODULE_0__["CURRENCY"]; + } else if (style === "a") { + options.style = _common_constants__WEBPACK_IMPORTED_MODULE_0__["ACCOUNTING"]; + } else if (style === "p") { + options.style = _common_constants__WEBPACK_IMPORTED_MODULE_0__["PERCENT"]; + } else if (style === "e") { + options.style = _common_constants__WEBPACK_IMPORTED_MODULE_0__["SCIENTIFIC"]; + } + + if (formatAndPrecision[2]) { + options.minimumFractionDigits = options.maximumFractionDigits = parseInt(formatAndPrecision[2], 10); + } + + return options; + } +} + +function formatOptions(format) { + var options; + if (Object(_common_is_string__WEBPACK_IMPORTED_MODULE_1__["default"])(format)) { + options = standardFormatOptions(format); + } else { + options = format; + } + + return options; +} + + }), + + "./node_modules/@telerik/kendo-intl/dist/es/numbers/group-integer.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return groupInteger; }); +function groupInteger(number, start, end, options, info) { + var symbols = info.numbers.symbols; + var decimalIndex = number.indexOf(symbols.decimal); + var groupSizes = options.groupSize.slice(); + var groupSize = groupSizes.shift(); + + var integerEnd = decimalIndex !== -1 ? decimalIndex : end + 1; + + var integer = number.substring(start, integerEnd); + var result = number; + var integerLength = integer.length; + + if (integerLength >= groupSize) { + var idx = integerLength; + var parts = []; + + while (idx > -1) { + var value = integer.substring(idx - groupSize, idx); + if (value) { + parts.push(value); + } + idx -= groupSize; + var newGroupSize = groupSizes.shift(); + groupSize = newGroupSize !== undefined ? newGroupSize : groupSize; + + if (groupSize === 0) { + value = integer.substring(0, idx); + if (value) { + parts.push(value); + } + break; + } + } + + integer = parts.reverse().join(symbols.group); + result = number.substring(0, start) + integer + number.substring(integerEnd); + } + + return result; +} + + }), + + "./node_modules/@telerik/kendo-intl/dist/es/numbers/is-currency-style.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return isCurrencyStyle; }); + var _common_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/common/constants.js"); + + +function isCurrencyStyle(style) { + return style === _common_constants__WEBPACK_IMPORTED_MODULE_0__["CURRENCY"] || style === _common_constants__WEBPACK_IMPORTED_MODULE_0__["ACCOUNTING"]; +} + + }), + + "./node_modules/@telerik/kendo-intl/dist/es/numbers/parse-number.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return parseNumber; }); + var _cldr__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/cldr.js"); + var _common_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/common/constants.js"); + var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/numbers/utils.js"); + var _common_is_number__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/common/is-number.js"); + var _is_currency_style__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/numbers/is-currency-style.js"); + var _format_options__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/numbers/format-options.js"); + var _common_is_string__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/common/is-string.js"); + + + + + + + + +var exponentRegExp = /[eE][\-+]?[0-9]+/; +var nonBreakingSpaceRegExp = /\u00A0/g; + +function cleanNegativePattern(number, patterns) { + if (patterns.length > 1) { + var parts = (patterns[1] || _common_constants__WEBPACK_IMPORTED_MODULE_1__["EMPTY"]).replace(_common_constants__WEBPACK_IMPORTED_MODULE_1__["CURRENCY_PLACEHOLDER"], _common_constants__WEBPACK_IMPORTED_MODULE_1__["EMPTY"]).split(_common_constants__WEBPACK_IMPORTED_MODULE_1__["NUMBER_PLACEHOLDER"]); + if (number.indexOf(parts[0]) > -1 && number.indexOf(parts[1]) > -1) { + return number.replace(parts[0], _common_constants__WEBPACK_IMPORTED_MODULE_1__["EMPTY"]).replace(parts[1], _common_constants__WEBPACK_IMPORTED_MODULE_1__["EMPTY"]); + } + } +} + +function cleanCurrencyNumber(value, info, format) { + var options = Object(_format_options__WEBPACK_IMPORTED_MODULE_5__["default"])(format) || {}; + var isCurrency = Object(_is_currency_style__WEBPACK_IMPORTED_MODULE_4__["default"])(options.style); + var number = value; + var negative; + + var currency = options.currency || Object(_cldr__WEBPACK_IMPORTED_MODULE_0__["localeCurrency"])(info, isCurrency); + + if (currency) { + var displays = Object(_cldr__WEBPACK_IMPORTED_MODULE_0__["currencyDisplays"])(info, currency, isCurrency); + if (displays) { + for (var idx = 0; idx < displays.length; idx++) { + var display = displays[idx]; + if (number.includes(display)) { + number = number.replace(display, _common_constants__WEBPACK_IMPORTED_MODULE_1__["EMPTY"]); + isCurrency = true; + break; + } + } + } + + if (isCurrency) { + var cleanNumber = cleanNegativePattern(number, info.numbers.currency.patterns) || + cleanNegativePattern(number, info.numbers.accounting.patterns); + + if (cleanNumber) { + negative = true; + number = cleanNumber; + } + + } + } + + return { + number: number, + negative: negative + }; +} + +function cleanLiterals(number, formatOptions) { + var literals = formatOptions.literals; + var result = number; + + if (literals) { + for (var idx = 0; idx < literals.length; idx++) { + result = result.replace(literals[idx], _common_constants__WEBPACK_IMPORTED_MODULE_1__["EMPTY"]); + } + } + + return result; +} + +function parseNumber(value, locale, format) { + if ( locale === void 0 ) locale = _common_constants__WEBPACK_IMPORTED_MODULE_1__["DEFAULT_LOCALE"]; + if ( format === void 0 ) format = {}; + + if (!value && value !== 0) { + return null; + } + + if (Object(_common_is_number__WEBPACK_IMPORTED_MODULE_3__["default"])(value)) { + return value; + } + + var info = Object(_cldr__WEBPACK_IMPORTED_MODULE_0__["localeInfo"])(locale); + var symbols = info.numbers.symbols; + + var number = value.toString(); + var formatOptions = format || {}; + var isPercent; + + if (Object(_common_is_string__WEBPACK_IMPORTED_MODULE_6__["default"])(format)) { + formatOptions = { format: format }; + Object(_utils__WEBPACK_IMPORTED_MODULE_2__["setFormatLiterals"])(formatOptions); + number = cleanLiterals(number, formatOptions); + + Object(_utils__WEBPACK_IMPORTED_MODULE_2__["setStyleOptions"])(formatOptions, info); + } + + if (formatOptions.style === _common_constants__WEBPACK_IMPORTED_MODULE_1__["PERCENT"] || number.indexOf(symbols.percentSign) > -1) { + number = number.replace(symbols.percentSign, _common_constants__WEBPACK_IMPORTED_MODULE_1__["EMPTY"]); + isPercent = true; + } + + if (exponentRegExp.test(number)) { + number = parseFloat(number.replace(symbols.decimal, _common_constants__WEBPACK_IMPORTED_MODULE_1__["POINT"])); + return isNaN(number) ? null : number; + } + + var ref = cleanCurrencyNumber(number, info, formatOptions); + var negativeCurrency = ref.negative; + var currencyNumber = ref.number; + number = String(currencyNumber).trim(); + + var negativeSignIndex = number.indexOf("-"); + if (negativeSignIndex > 0) { + return null; + } + + var isNegative = negativeSignIndex > -1; + + isNegative = negativeCurrency !== undefined ? negativeCurrency : isNegative; + + number = number.replace("-", _common_constants__WEBPACK_IMPORTED_MODULE_1__["EMPTY"]) + .replace(nonBreakingSpaceRegExp, " ") + .split(symbols.group.replace(nonBreakingSpaceRegExp, " ")).join(_common_constants__WEBPACK_IMPORTED_MODULE_1__["EMPTY"]) + .replace(symbols.decimal, _common_constants__WEBPACK_IMPORTED_MODULE_1__["POINT"]); + + number = parseFloat(number); + + if (isNaN(number)) { + number = null; + } else if (isNegative) { + number *= -1; + } + + if (number && isPercent) { + number /= 100; + } + + return number; +} + + + }), + + "./node_modules/@telerik/kendo-intl/dist/es/numbers/standard-number-format.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "default", function() { return standardNumberFormat; }); + var _common_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/common/constants.js"); + var _common_is_negative_zero__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/common/is-negative-zero.js"); + var _format_currency_symbol__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/numbers/format-currency-symbol.js"); + var _group_integer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/numbers/group-integer.js"); + var _is_currency_style__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/numbers/is-currency-style.js"); + var _common_pad__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/common/pad.js"); + var _common_round__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/common/round.js"); + var _cldr__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/cldr.js"); + + + + + + + + + +var DEFAULT_DECIMAL_ROUNDING = 3; +var DEFAULT_PERCENT_ROUNDING = 0; + +var trailingZeroRegex = /0+$/; + +function fractionOptions(options) { + var minimumFractionDigits = options.minimumFractionDigits; + var maximumFractionDigits = options.maximumFractionDigits; + var style = options.style; + var isCurrency = Object(_is_currency_style__WEBPACK_IMPORTED_MODULE_4__["default"])(style); + var currencyFractions; + if (isCurrency) { + currencyFractions = Object(_cldr__WEBPACK_IMPORTED_MODULE_7__["currencyFractionOptions"])(options.currency); + } + + if (minimumFractionDigits === undefined) { + minimumFractionDigits = isCurrency ? currencyFractions.minimumFractionDigits : 0; + } + + if (maximumFractionDigits === undefined) { + if (style === _common_constants__WEBPACK_IMPORTED_MODULE_0__["PERCENT"]) { + maximumFractionDigits = Math.max(minimumFractionDigits, DEFAULT_PERCENT_ROUNDING); + } else if (isCurrency) { + maximumFractionDigits = Math.max(minimumFractionDigits, currencyFractions.maximumFractionDigits); + } else { + maximumFractionDigits = Math.max(minimumFractionDigits, DEFAULT_DECIMAL_ROUNDING); + } + } + + return { + minimumFractionDigits: minimumFractionDigits, + maximumFractionDigits: maximumFractionDigits + }; +} + +function applyPattern(value, pattern, symbol) { + var result = _common_constants__WEBPACK_IMPORTED_MODULE_0__["EMPTY"]; + for (var idx = 0, length = pattern.length; idx < length; idx++) { + var ch = pattern.charAt(idx); + + if (ch === _common_constants__WEBPACK_IMPORTED_MODULE_0__["NUMBER_PLACEHOLDER"]) { + result += value; + } else if (ch === _common_constants__WEBPACK_IMPORTED_MODULE_0__["CURRENCY_PLACEHOLDER"] || ch === _common_constants__WEBPACK_IMPORTED_MODULE_0__["PERCENT_PLACEHOLDER"]) { + result += symbol; + } else { + result += ch; + } + } + return result; +} + +function currencyUnitPattern(info, value) { + var currencyInfo = info.numbers.currency; + var pattern = value !== 1 ? currencyInfo["unitPattern-count-other"] : currencyInfo["unitPattern-count-one"]; + if (value < 0) { + pattern = pattern.replace(_common_constants__WEBPACK_IMPORTED_MODULE_0__["NUMBER_PLACEHOLDER"], ("-" + _common_constants__WEBPACK_IMPORTED_MODULE_0__["NUMBER_PLACEHOLDER"])); + } + + return pattern; +} + + +function standardNumberFormat(number, options, info) { + var symbols = info.numbers.symbols; + var style = options.style; + var isCurrency = Object(_is_currency_style__WEBPACK_IMPORTED_MODULE_4__["default"])(style); + + //return number in exponential format + if (style === _common_constants__WEBPACK_IMPORTED_MODULE_0__["SCIENTIFIC"]) { + var exponential = options.minimumFractionDigits !== undefined ? number.toExponential(options.minimumFractionDigits) : number.toExponential(); + return exponential.replace(_common_constants__WEBPACK_IMPORTED_MODULE_0__["POINT"], symbols.decimal); + } + + var value = number; + var symbol; + + if (isCurrency) { + options.value = value; + symbol = Object(_format_currency_symbol__WEBPACK_IMPORTED_MODULE_2__["default"])(info, options); + } + + if (style === _common_constants__WEBPACK_IMPORTED_MODULE_0__["PERCENT"]) { + value *= 100; + symbol = symbols.percentSign; + } + + var ref = fractionOptions(options); + var minimumFractionDigits = ref.minimumFractionDigits; + var maximumFractionDigits = ref.maximumFractionDigits; + + value = Object(_common_round__WEBPACK_IMPORTED_MODULE_6__["default"])(value, maximumFractionDigits); + + var negative = value < 0; + var negativeZero = Object(_common_is_negative_zero__WEBPACK_IMPORTED_MODULE_1__["default"])(number); + + var parts = value.split(_common_constants__WEBPACK_IMPORTED_MODULE_0__["POINT"]); + + var integer = parts[0]; + var fraction = Object(_common_pad__WEBPACK_IMPORTED_MODULE_5__["default"])(parts[1] ? parts[1].replace(trailingZeroRegex, _common_constants__WEBPACK_IMPORTED_MODULE_0__["EMPTY"]) : _common_constants__WEBPACK_IMPORTED_MODULE_0__["EMPTY"], minimumFractionDigits, true); + + //exclude "-" if number is negative. + if (negative) { + integer = integer.substring(1); + } + + if (options.minimumIntegerDigits) { + integer = Object(_common_pad__WEBPACK_IMPORTED_MODULE_5__["default"])(integer, options.minimumIntegerDigits); + } + + var formattedValue = options.useGrouping !== false ? Object(_group_integer__WEBPACK_IMPORTED_MODULE_3__["default"])(integer, 0, integer.length, options, info) : integer; + + if (fraction) { + formattedValue += symbols.decimal + fraction; + } + + var pattern; + + if (isCurrency && options.currencyDisplay === "name") { + pattern = currencyUnitPattern(info, number); + } else { + var patterns = options.patterns; + pattern = (negative || negativeZero) ? patterns[1] || ("-" + patterns[0]) : patterns[0]; + } + + if (pattern === _common_constants__WEBPACK_IMPORTED_MODULE_0__["NUMBER_PLACEHOLDER"] && !negative) { + return formattedValue; + } + + var result = applyPattern(formattedValue, pattern, symbol); + + return result; +} + + }), + + "./node_modules/@telerik/kendo-intl/dist/es/numbers/utils.js": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "setStyleOptions", function() { return setStyleOptions; }); + __webpack_require__.d(__webpack_exports__, "setFormatLiterals", function() { return setFormatLiterals; }); + __webpack_require__.d(__webpack_exports__, "replaceLiterals", function() { return replaceLiterals; }); + var _common_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/common/constants.js"); + var _format_currency_symbol__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/@telerik/kendo-intl/dist/es/numbers/format-currency-symbol.js"); + + + +var literalRegExp = /(\\.)|(['][^']*[']?)|(["][^"]*["]?)/g; +var PLACEHOLDER = "__??__"; + +function setStyleOptions(formatOptions, info) { + var format = formatOptions.format; + + //multiply number if the format has percent + if (format.indexOf(_common_constants__WEBPACK_IMPORTED_MODULE_0__["PERCENT_PLACEHOLDER"]) !== -1) { + formatOptions.style = _common_constants__WEBPACK_IMPORTED_MODULE_0__["PERCENT"]; + formatOptions.symbol = info.numbers.symbols.percentSign; + formatOptions.number *= 100; + } + + if (format.indexOf(_common_constants__WEBPACK_IMPORTED_MODULE_0__["CURRENCY_PLACEHOLDER"]) !== -1) { + formatOptions.style = _common_constants__WEBPACK_IMPORTED_MODULE_0__["CURRENCY"]; + formatOptions.symbol = Object(_format_currency_symbol__WEBPACK_IMPORTED_MODULE_1__["default"])(info); + } +} + +function setFormatLiterals(formatOptions) { + var format = formatOptions.format; + if (format.indexOf("'") > -1 || format.indexOf("\"") > -1 || format.indexOf("\\") > -1) { + var literals = formatOptions.literals = []; + formatOptions.format = format.replace(literalRegExp, function(match) { + var quoteChar = match.charAt(0).replace("\\", _common_constants__WEBPACK_IMPORTED_MODULE_0__["EMPTY"]); + var literal = match.slice(1).replace(quoteChar, _common_constants__WEBPACK_IMPORTED_MODULE_0__["EMPTY"]); + + literals.push(literal); + + return PLACEHOLDER; + }); + } +} + +function replaceLiterals(number, literals) { + var result = number; + if (literals) { + var length = literals.length; + for (var idx = 0; idx < length; idx++) { + result = result.replace(PLACEHOLDER, literals[idx]); + } + } + return result; +} + + }), + + "./node_modules/hammerjs/hammer.js": + + + (function(module, exports, __webpack_require__) { + +var __WEBPACK_AMD_DEFINE_RESULT__; +(function(window, document, exportName, undefined) { + 'use strict'; + +var VENDOR_PREFIXES = ['', 'webkit', 'Moz', 'MS', 'ms', 'o']; +var TEST_ELEMENT = document.createElement('div'); + +var TYPE_FUNCTION = 'function'; + +var round = Math.round; +var abs = Math.abs; +var now = Date.now; + + +function setTimeoutContext(fn, timeout, context) { + return setTimeout(bindFn(fn, context), timeout); +} + + +function invokeArrayArg(arg, fn, context) { + if (Array.isArray(arg)) { + each(arg, context[fn], context); + return true; + } + return false; +} + + +function each(obj, iterator, context) { + var i; + + if (!obj) { + return; + } + + if (obj.forEach) { + obj.forEach(iterator, context); + } else if (obj.length !== undefined) { + i = 0; + while (i < obj.length) { + iterator.call(context, obj[i], i, obj); + i++; + } + } else { + for (i in obj) { + obj.hasOwnProperty(i) && iterator.call(context, obj[i], i, obj); + } + } +} + + +function deprecate(method, name, message) { + var deprecationMessage = 'DEPRECATED METHOD: ' + name + '\n' + message + ' AT \n'; + return function() { + var e = new Error('get-stack-trace'); + var stack = e && e.stack ? e.stack.replace(/^[^\(]+?[\n$]/gm, '') + .replace(/^\s+at\s+/gm, '') + .replace(/^Object.\s*\(/gm, '{anonymous}()@') : 'Unknown Stack Trace'; + + var log = window.console && (window.console.warn || window.console.log); + if (log) { + log.call(window.console, deprecationMessage, stack); + } + return method.apply(this, arguments); + }; +} + + +var assign; +if (typeof Object.assign !== 'function') { + assign = function assign(target) { + if (target === undefined || target === null) { + throw new TypeError('Cannot convert undefined or null to object'); + } + + var output = Object(target); + for (var index = 1; index < arguments.length; index++) { + var source = arguments[index]; + if (source !== undefined && source !== null) { + for (var nextKey in source) { + if (source.hasOwnProperty(nextKey)) { + output[nextKey] = source[nextKey]; + } + } + } + } + return output; + }; +} else { + assign = Object.assign; +} + + +var extend = deprecate(function extend(dest, src, merge) { + var keys = Object.keys(src); + var i = 0; + while (i < keys.length) { + if (!merge || (merge && dest[keys[i]] === undefined)) { + dest[keys[i]] = src[keys[i]]; + } + i++; + } + return dest; +}, 'extend', 'Use `assign`.'); + + +var merge = deprecate(function merge(dest, src) { + return extend(dest, src, true); +}, 'merge', 'Use `assign`.'); + + +function inherit(child, base, properties) { + var baseP = base.prototype, + childP; + + childP = child.prototype = Object.create(baseP); + childP.constructor = child; + childP._super = baseP; + + if (properties) { + assign(childP, properties); + } +} + + +function bindFn(fn, context) { + return function boundFn() { + return fn.apply(context, arguments); + }; +} + + +function boolOrFn(val, args) { + if (typeof val == TYPE_FUNCTION) { + return val.apply(args ? args[0] || undefined : undefined, args); + } + return val; +} + + +function ifUndefined(val1, val2) { + return (val1 === undefined) ? val2 : val1; +} + + +function addEventListeners(target, types, handler) { + each(splitStr(types), function(type) { + target.addEventListener(type, handler, false); + }); +} + + +function removeEventListeners(target, types, handler) { + each(splitStr(types), function(type) { + target.removeEventListener(type, handler, false); + }); +} + + +function hasParent(node, parent) { + while (node) { + if (node == parent) { + return true; + } + node = node.parentNode; + } + return false; +} + + +function inStr(str, find) { + return str.indexOf(find) > -1; +} + + +function splitStr(str) { + return str.trim().split(/\s+/g); +} + + +function inArray(src, find, findByKey) { + if (src.indexOf && !findByKey) { + return src.indexOf(find); + } else { + var i = 0; + while (i < src.length) { + if ((findByKey && src[i][findByKey] == find) || (!findByKey && src[i] === find)) { + return i; + } + i++; + } + return -1; + } +} + + +function toArray(obj) { + return Array.prototype.slice.call(obj, 0); +} + + +function uniqueArray(src, key, sort) { + var results = []; + var values = []; + var i = 0; + + while (i < src.length) { + var val = key ? src[i][key] : src[i]; + if (inArray(values, val) < 0) { + results.push(src[i]); + } + values[i] = val; + i++; + } + + if (sort) { + if (!key) { + results = results.sort(); + } else { + results = results.sort(function sortUniqueArray(a, b) { + return a[key] > b[key]; + }); + } + } + + return results; +} + + +function prefixed(obj, property) { + var prefix, prop; + var camelProp = property[0].toUpperCase() + property.slice(1); + + var i = 0; + while (i < VENDOR_PREFIXES.length) { + prefix = VENDOR_PREFIXES[i]; + prop = (prefix) ? prefix + camelProp : property; + + if (prop in obj) { + return prop; + } + i++; + } + return undefined; +} + + +var _uniqueId = 1; +function uniqueId() { + return _uniqueId++; +} + + +function getWindowForElement(element) { + var doc = element.ownerDocument || element; + return (doc.defaultView || doc.parentWindow || window); +} + +var MOBILE_REGEX = /mobile|tablet|ip(ad|hone|od)|android/i; + +var SUPPORT_TOUCH = ('ontouchstart' in window); +var SUPPORT_POINTER_EVENTS = prefixed(window, 'PointerEvent') !== undefined; +var SUPPORT_ONLY_TOUCH = SUPPORT_TOUCH && MOBILE_REGEX.test(navigator.userAgent); + +var INPUT_TYPE_TOUCH = 'touch'; +var INPUT_TYPE_PEN = 'pen'; +var INPUT_TYPE_MOUSE = 'mouse'; +var INPUT_TYPE_KINECT = 'kinect'; + +var COMPUTE_INTERVAL = 25; + +var INPUT_START = 1; +var INPUT_MOVE = 2; +var INPUT_END = 4; +var INPUT_CANCEL = 8; + +var DIRECTION_NONE = 1; +var DIRECTION_LEFT = 2; +var DIRECTION_RIGHT = 4; +var DIRECTION_UP = 8; +var DIRECTION_DOWN = 16; + +var DIRECTION_HORIZONTAL = DIRECTION_LEFT | DIRECTION_RIGHT; +var DIRECTION_VERTICAL = DIRECTION_UP | DIRECTION_DOWN; +var DIRECTION_ALL = DIRECTION_HORIZONTAL | DIRECTION_VERTICAL; + +var PROPS_XY = ['x', 'y']; +var PROPS_CLIENT_XY = ['clientX', 'clientY']; + + +function Input(manager, callback) { + var self = this; + this.manager = manager; + this.callback = callback; + this.element = manager.element; + this.target = manager.options.inputTarget; + + // smaller wrapper around the handler, for the scope and the enabled state of the manager, + // so when disabled the input events are completely bypassed. + this.domHandler = function(ev) { + if (boolOrFn(manager.options.enable, [manager])) { + self.handler(ev); + } + }; + + this.init(); + +} + +Input.prototype = { + + handler: function() { }, + + + init: function() { + this.evEl && addEventListeners(this.element, this.evEl, this.domHandler); + this.evTarget && addEventListeners(this.target, this.evTarget, this.domHandler); + this.evWin && addEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler); + }, + + + destroy: function() { + this.evEl && removeEventListeners(this.element, this.evEl, this.domHandler); + this.evTarget && removeEventListeners(this.target, this.evTarget, this.domHandler); + this.evWin && removeEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler); + } +}; + + +function createInputInstance(manager) { + var Type; + var inputClass = manager.options.inputClass; + + if (inputClass) { + Type = inputClass; + } else if (SUPPORT_POINTER_EVENTS) { + Type = PointerEventInput; + } else if (SUPPORT_ONLY_TOUCH) { + Type = TouchInput; + } else if (!SUPPORT_TOUCH) { + Type = MouseInput; + } else { + Type = TouchMouseInput; + } + return new (Type)(manager, inputHandler); +} + + +function inputHandler(manager, eventType, input) { + var pointersLen = input.pointers.length; + var changedPointersLen = input.changedPointers.length; + var isFirst = (eventType & INPUT_START && (pointersLen - changedPointersLen === 0)); + var isFinal = (eventType & (INPUT_END | INPUT_CANCEL) && (pointersLen - changedPointersLen === 0)); + + input.isFirst = !!isFirst; + input.isFinal = !!isFinal; + + if (isFirst) { + manager.session = {}; + } + + // source event is the normalized value of the domEvents + // like 'touchstart, mouseup, pointerdown' + input.eventType = eventType; + + // compute scale, rotation etc + computeInputData(manager, input); + + // emit secret event + manager.emit('hammer.input', input); + + manager.recognize(input); + manager.session.prevInput = input; +} + + +function computeInputData(manager, input) { + var session = manager.session; + var pointers = input.pointers; + var pointersLength = pointers.length; + + // store the first input to calculate the distance and direction + if (!session.firstInput) { + session.firstInput = simpleCloneInputData(input); + } + + // to compute scale and rotation we need to store the multiple touches + if (pointersLength > 1 && !session.firstMultiple) { + session.firstMultiple = simpleCloneInputData(input); + } else if (pointersLength === 1) { + session.firstMultiple = false; + } + + var firstInput = session.firstInput; + var firstMultiple = session.firstMultiple; + var offsetCenter = firstMultiple ? firstMultiple.center : firstInput.center; + + var center = input.center = getCenter(pointers); + input.timeStamp = now(); + input.deltaTime = input.timeStamp - firstInput.timeStamp; + + input.angle = getAngle(offsetCenter, center); + input.distance = getDistance(offsetCenter, center); + + computeDeltaXY(session, input); + input.offsetDirection = getDirection(input.deltaX, input.deltaY); + + var overallVelocity = getVelocity(input.deltaTime, input.deltaX, input.deltaY); + input.overallVelocityX = overallVelocity.x; + input.overallVelocityY = overallVelocity.y; + input.overallVelocity = (abs(overallVelocity.x) > abs(overallVelocity.y)) ? overallVelocity.x : overallVelocity.y; + + input.scale = firstMultiple ? getScale(firstMultiple.pointers, pointers) : 1; + input.rotation = firstMultiple ? getRotation(firstMultiple.pointers, pointers) : 0; + + input.maxPointers = !session.prevInput ? input.pointers.length : ((input.pointers.length > + session.prevInput.maxPointers) ? input.pointers.length : session.prevInput.maxPointers); + + computeIntervalInputData(session, input); + + // find the correct target + var target = manager.element; + if (hasParent(input.srcEvent.target, target)) { + target = input.srcEvent.target; + } + input.target = target; +} + +function computeDeltaXY(session, input) { + var center = input.center; + var offset = session.offsetDelta || {}; + var prevDelta = session.prevDelta || {}; + var prevInput = session.prevInput || {}; + + if (input.eventType === INPUT_START || prevInput.eventType === INPUT_END) { + prevDelta = session.prevDelta = { + x: prevInput.deltaX || 0, + y: prevInput.deltaY || 0 + }; + + offset = session.offsetDelta = { + x: center.x, + y: center.y + }; + } + + input.deltaX = prevDelta.x + (center.x - offset.x); + input.deltaY = prevDelta.y + (center.y - offset.y); +} + + +function computeIntervalInputData(session, input) { + var last = session.lastInterval || input, + deltaTime = input.timeStamp - last.timeStamp, + velocity, velocityX, velocityY, direction; + + if (input.eventType != INPUT_CANCEL && (deltaTime > COMPUTE_INTERVAL || last.velocity === undefined)) { + var deltaX = input.deltaX - last.deltaX; + var deltaY = input.deltaY - last.deltaY; + + var v = getVelocity(deltaTime, deltaX, deltaY); + velocityX = v.x; + velocityY = v.y; + velocity = (abs(v.x) > abs(v.y)) ? v.x : v.y; + direction = getDirection(deltaX, deltaY); + + session.lastInterval = input; + } else { + // use latest velocity info if it doesn't overtake a minimum period + velocity = last.velocity; + velocityX = last.velocityX; + velocityY = last.velocityY; + direction = last.direction; + } + + input.velocity = velocity; + input.velocityX = velocityX; + input.velocityY = velocityY; + input.direction = direction; +} + + +function simpleCloneInputData(input) { + // make a simple copy of the pointers because we will get a reference if we don't + // we only need clientXY for the calculations + var pointers = []; + var i = 0; + while (i < input.pointers.length) { + pointers[i] = { + clientX: round(input.pointers[i].clientX), + clientY: round(input.pointers[i].clientY) + }; + i++; + } + + return { + timeStamp: now(), + pointers: pointers, + center: getCenter(pointers), + deltaX: input.deltaX, + deltaY: input.deltaY + }; +} + + +function getCenter(pointers) { + var pointersLength = pointers.length; + + // no need to loop when only one touch + if (pointersLength === 1) { + return { + x: round(pointers[0].clientX), + y: round(pointers[0].clientY) + }; + } + + var x = 0, y = 0, i = 0; + while (i < pointersLength) { + x += pointers[i].clientX; + y += pointers[i].clientY; + i++; + } + + return { + x: round(x / pointersLength), + y: round(y / pointersLength) + }; +} + + +function getVelocity(deltaTime, x, y) { + return { + x: x / deltaTime || 0, + y: y / deltaTime || 0 + }; +} + + +function getDirection(x, y) { + if (x === y) { + return DIRECTION_NONE; + } + + if (abs(x) >= abs(y)) { + return x < 0 ? DIRECTION_LEFT : DIRECTION_RIGHT; + } + return y < 0 ? DIRECTION_UP : DIRECTION_DOWN; +} + + +function getDistance(p1, p2, props) { + if (!props) { + props = PROPS_XY; + } + var x = p2[props[0]] - p1[props[0]], + y = p2[props[1]] - p1[props[1]]; + + return Math.sqrt((x * x) + (y * y)); +} + + +function getAngle(p1, p2, props) { + if (!props) { + props = PROPS_XY; + } + var x = p2[props[0]] - p1[props[0]], + y = p2[props[1]] - p1[props[1]]; + return Math.atan2(y, x) * 180 / Math.PI; +} + + +function getRotation(start, end) { + return getAngle(end[1], end[0], PROPS_CLIENT_XY) + getAngle(start[1], start[0], PROPS_CLIENT_XY); +} + + +function getScale(start, end) { + return getDistance(end[0], end[1], PROPS_CLIENT_XY) / getDistance(start[0], start[1], PROPS_CLIENT_XY); +} + +var MOUSE_INPUT_MAP = { + mousedown: INPUT_START, + mousemove: INPUT_MOVE, + mouseup: INPUT_END +}; + +var MOUSE_ELEMENT_EVENTS = 'mousedown'; +var MOUSE_WINDOW_EVENTS = 'mousemove mouseup'; + + +function MouseInput() { + this.evEl = MOUSE_ELEMENT_EVENTS; + this.evWin = MOUSE_WINDOW_EVENTS; + + this.pressed = false; // mousedown state + + Input.apply(this, arguments); +} + +inherit(MouseInput, Input, { + + handler: function MEhandler(ev) { + var eventType = MOUSE_INPUT_MAP[ev.type]; + + // on start we want to have the left mouse button down + if (eventType & INPUT_START && ev.button === 0) { + this.pressed = true; + } + + if (eventType & INPUT_MOVE && ev.which !== 1) { + eventType = INPUT_END; + } + + // mouse must be down + if (!this.pressed) { + return; + } + + if (eventType & INPUT_END) { + this.pressed = false; + } + + this.callback(this.manager, eventType, { + pointers: [ev], + changedPointers: [ev], + pointerType: INPUT_TYPE_MOUSE, + srcEvent: ev + }); + } +}); + +var POINTER_INPUT_MAP = { + pointerdown: INPUT_START, + pointermove: INPUT_MOVE, + pointerup: INPUT_END, + pointercancel: INPUT_CANCEL, + pointerout: INPUT_CANCEL +}; + +// in IE10 the pointer types is defined as an enum +var IE10_POINTER_TYPE_ENUM = { + 2: INPUT_TYPE_TOUCH, + 3: INPUT_TYPE_PEN, + 4: INPUT_TYPE_MOUSE, + 5: INPUT_TYPE_KINECT // see https://twitter.com/jacobrossi/status/480596438489890816 +}; + +var POINTER_ELEMENT_EVENTS = 'pointerdown'; +var POINTER_WINDOW_EVENTS = 'pointermove pointerup pointercancel'; + +// IE10 has prefixed support, and case-sensitive +if (window.MSPointerEvent && !window.PointerEvent) { + POINTER_ELEMENT_EVENTS = 'MSPointerDown'; + POINTER_WINDOW_EVENTS = 'MSPointerMove MSPointerUp MSPointerCancel'; +} + + +function PointerEventInput() { + this.evEl = POINTER_ELEMENT_EVENTS; + this.evWin = POINTER_WINDOW_EVENTS; + + Input.apply(this, arguments); + + this.store = (this.manager.session.pointerEvents = []); +} + +inherit(PointerEventInput, Input, { + + handler: function PEhandler(ev) { + var store = this.store; + var removePointer = false; + + var eventTypeNormalized = ev.type.toLowerCase().replace('ms', ''); + var eventType = POINTER_INPUT_MAP[eventTypeNormalized]; + var pointerType = IE10_POINTER_TYPE_ENUM[ev.pointerType] || ev.pointerType; + + var isTouch = (pointerType == INPUT_TYPE_TOUCH); + + // get index of the event in the store + var storeIndex = inArray(store, ev.pointerId, 'pointerId'); + + // start and mouse must be down + if (eventType & INPUT_START && (ev.button === 0 || isTouch)) { + if (storeIndex < 0) { + store.push(ev); + storeIndex = store.length - 1; + } + } else if (eventType & (INPUT_END | INPUT_CANCEL)) { + removePointer = true; + } + + // it not found, so the pointer hasn't been down (so it's probably a hover) + if (storeIndex < 0) { + return; + } + + // update the event in the store + store[storeIndex] = ev; + + this.callback(this.manager, eventType, { + pointers: store, + changedPointers: [ev], + pointerType: pointerType, + srcEvent: ev + }); + + if (removePointer) { + // remove from the store + store.splice(storeIndex, 1); + } + } +}); + +var SINGLE_TOUCH_INPUT_MAP = { + touchstart: INPUT_START, + touchmove: INPUT_MOVE, + touchend: INPUT_END, + touchcancel: INPUT_CANCEL +}; + +var SINGLE_TOUCH_TARGET_EVENTS = 'touchstart'; +var SINGLE_TOUCH_WINDOW_EVENTS = 'touchstart touchmove touchend touchcancel'; + + +function SingleTouchInput() { + this.evTarget = SINGLE_TOUCH_TARGET_EVENTS; + this.evWin = SINGLE_TOUCH_WINDOW_EVENTS; + this.started = false; + + Input.apply(this, arguments); +} + +inherit(SingleTouchInput, Input, { + handler: function TEhandler(ev) { + var type = SINGLE_TOUCH_INPUT_MAP[ev.type]; + + // should we handle the touch events? + if (type === INPUT_START) { + this.started = true; + } + + if (!this.started) { + return; + } + + var touches = normalizeSingleTouches.call(this, ev, type); + + // when done, reset the started state + if (type & (INPUT_END | INPUT_CANCEL) && touches[0].length - touches[1].length === 0) { + this.started = false; + } + + this.callback(this.manager, type, { + pointers: touches[0], + changedPointers: touches[1], + pointerType: INPUT_TYPE_TOUCH, + srcEvent: ev + }); + } +}); + + +function normalizeSingleTouches(ev, type) { + var all = toArray(ev.touches); + var changed = toArray(ev.changedTouches); + + if (type & (INPUT_END | INPUT_CANCEL)) { + all = uniqueArray(all.concat(changed), 'identifier', true); + } + + return [all, changed]; +} + +var TOUCH_INPUT_MAP = { + touchstart: INPUT_START, + touchmove: INPUT_MOVE, + touchend: INPUT_END, + touchcancel: INPUT_CANCEL +}; + +var TOUCH_TARGET_EVENTS = 'touchstart touchmove touchend touchcancel'; + + +function TouchInput() { + this.evTarget = TOUCH_TARGET_EVENTS; + this.targetIds = {}; + + Input.apply(this, arguments); +} + +inherit(TouchInput, Input, { + handler: function MTEhandler(ev) { + var type = TOUCH_INPUT_MAP[ev.type]; + var touches = getTouches.call(this, ev, type); + if (!touches) { + return; + } + + this.callback(this.manager, type, { + pointers: touches[0], + changedPointers: touches[1], + pointerType: INPUT_TYPE_TOUCH, + srcEvent: ev + }); + } +}); + + +function getTouches(ev, type) { + var allTouches = toArray(ev.touches); + var targetIds = this.targetIds; + + // when there is only one touch, the process can be simplified + if (type & (INPUT_START | INPUT_MOVE) && allTouches.length === 1) { + targetIds[allTouches[0].identifier] = true; + return [allTouches, allTouches]; + } + + var i, + targetTouches, + changedTouches = toArray(ev.changedTouches), + changedTargetTouches = [], + target = this.target; + + // get target touches from touches + targetTouches = allTouches.filter(function(touch) { + return hasParent(touch.target, target); + }); + + // collect touches + if (type === INPUT_START) { + i = 0; + while (i < targetTouches.length) { + targetIds[targetTouches[i].identifier] = true; + i++; + } + } + + // filter changed touches to only contain touches that exist in the collected target ids + i = 0; + while (i < changedTouches.length) { + if (targetIds[changedTouches[i].identifier]) { + changedTargetTouches.push(changedTouches[i]); + } + + // cleanup removed touches + if (type & (INPUT_END | INPUT_CANCEL)) { + delete targetIds[changedTouches[i].identifier]; + } + i++; + } + + if (!changedTargetTouches.length) { + return; + } + + return [ + // merge targetTouches with changedTargetTouches so it contains ALL touches, including 'end' and 'cancel' + uniqueArray(targetTouches.concat(changedTargetTouches), 'identifier', true), + changedTargetTouches + ]; +} + + + +var DEDUP_TIMEOUT = 2500; +var DEDUP_DISTANCE = 25; + +function TouchMouseInput() { + Input.apply(this, arguments); + + var handler = bindFn(this.handler, this); + this.touch = new TouchInput(this.manager, handler); + this.mouse = new MouseInput(this.manager, handler); + + this.primaryTouch = null; + this.lastTouches = []; +} + +inherit(TouchMouseInput, Input, { + + handler: function TMEhandler(manager, inputEvent, inputData) { + var isTouch = (inputData.pointerType == INPUT_TYPE_TOUCH), + isMouse = (inputData.pointerType == INPUT_TYPE_MOUSE); + + if (isMouse && inputData.sourceCapabilities && inputData.sourceCapabilities.firesTouchEvents) { + return; + } + + // when we're in a touch event, record touches to de-dupe synthetic mouse event + if (isTouch) { + recordTouches.call(this, inputEvent, inputData); + } else if (isMouse && isSyntheticEvent.call(this, inputData)) { + return; + } + + this.callback(manager, inputEvent, inputData); + }, + + + destroy: function destroy() { + this.touch.destroy(); + this.mouse.destroy(); + } +}); + +function recordTouches(eventType, eventData) { + if (eventType & INPUT_START) { + this.primaryTouch = eventData.changedPointers[0].identifier; + setLastTouch.call(this, eventData); + } else if (eventType & (INPUT_END | INPUT_CANCEL)) { + setLastTouch.call(this, eventData); + } +} + +function setLastTouch(eventData) { + var touch = eventData.changedPointers[0]; + + if (touch.identifier === this.primaryTouch) { + var lastTouch = {x: touch.clientX, y: touch.clientY}; + this.lastTouches.push(lastTouch); + var lts = this.lastTouches; + var removeLastTouch = function() { + var i = lts.indexOf(lastTouch); + if (i > -1) { + lts.splice(i, 1); + } + }; + setTimeout(removeLastTouch, DEDUP_TIMEOUT); + } +} + +function isSyntheticEvent(eventData) { + var x = eventData.srcEvent.clientX, y = eventData.srcEvent.clientY; + for (var i = 0; i < this.lastTouches.length; i++) { + var t = this.lastTouches[i]; + var dx = Math.abs(x - t.x), dy = Math.abs(y - t.y); + if (dx <= DEDUP_DISTANCE && dy <= DEDUP_DISTANCE) { + return true; + } + } + return false; +} + +var PREFIXED_TOUCH_ACTION = prefixed(TEST_ELEMENT.style, 'touchAction'); +var NATIVE_TOUCH_ACTION = PREFIXED_TOUCH_ACTION !== undefined; + +// magical touchAction value +var TOUCH_ACTION_COMPUTE = 'compute'; +var TOUCH_ACTION_AUTO = 'auto'; +var TOUCH_ACTION_MANIPULATION = 'manipulation'; // not implemented +var TOUCH_ACTION_NONE = 'none'; +var TOUCH_ACTION_PAN_X = 'pan-x'; +var TOUCH_ACTION_PAN_Y = 'pan-y'; +var TOUCH_ACTION_MAP = getTouchActionProps(); + + +function TouchAction(manager, value) { + this.manager = manager; + this.set(value); +} + +TouchAction.prototype = { + + set: function(value) { + // find out the touch-action by the event handlers + if (value == TOUCH_ACTION_COMPUTE) { + value = this.compute(); + } + + if (NATIVE_TOUCH_ACTION && this.manager.element.style && TOUCH_ACTION_MAP[value]) { + this.manager.element.style[PREFIXED_TOUCH_ACTION] = value; + } + this.actions = value.toLowerCase().trim(); + }, + + + update: function() { + this.set(this.manager.options.touchAction); + }, + + + compute: function() { + var actions = []; + each(this.manager.recognizers, function(recognizer) { + if (boolOrFn(recognizer.options.enable, [recognizer])) { + actions = actions.concat(recognizer.getTouchAction()); + } + }); + return cleanTouchActions(actions.join(' ')); + }, + + + preventDefaults: function(input) { + var srcEvent = input.srcEvent; + var direction = input.offsetDirection; + + // if the touch action did prevented once this session + if (this.manager.session.prevented) { + srcEvent.preventDefault(); + return; + } + + var actions = this.actions; + var hasNone = inStr(actions, TOUCH_ACTION_NONE) && !TOUCH_ACTION_MAP[TOUCH_ACTION_NONE]; + var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y) && !TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_Y]; + var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X) && !TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_X]; + + if (hasNone) { + //do not prevent defaults if this is a tap gesture + + var isTapPointer = input.pointers.length === 1; + var isTapMovement = input.distance < 2; + var isTapTouchTime = input.deltaTime < 250; + + if (isTapPointer && isTapMovement && isTapTouchTime) { + return; + } + } + + if (hasPanX && hasPanY) { + // `pan-x pan-y` means browser handles all scrolling/panning, do not prevent + return; + } + + if (hasNone || + (hasPanY && direction & DIRECTION_HORIZONTAL) || + (hasPanX && direction & DIRECTION_VERTICAL)) { + return this.preventSrc(srcEvent); + } + }, + + + preventSrc: function(srcEvent) { + this.manager.session.prevented = true; + srcEvent.preventDefault(); + } +}; + + +function cleanTouchActions(actions) { + // none + if (inStr(actions, TOUCH_ACTION_NONE)) { + return TOUCH_ACTION_NONE; + } + + var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X); + var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y); + + // if both pan-x and pan-y are set (different recognizers + // for different directions, e.g. horizontal pan but vertical swipe?) + // we need none (as otherwise with pan-x pan-y combined none of these + // recognizers will work, since the browser would handle all panning + if (hasPanX && hasPanY) { + return TOUCH_ACTION_NONE; + } + + // pan-x OR pan-y + if (hasPanX || hasPanY) { + return hasPanX ? TOUCH_ACTION_PAN_X : TOUCH_ACTION_PAN_Y; + } + + // manipulation + if (inStr(actions, TOUCH_ACTION_MANIPULATION)) { + return TOUCH_ACTION_MANIPULATION; + } + + return TOUCH_ACTION_AUTO; +} + +function getTouchActionProps() { + if (!NATIVE_TOUCH_ACTION) { + return false; + } + var touchMap = {}; + var cssSupports = window.CSS && window.CSS.supports; + ['auto', 'manipulation', 'pan-y', 'pan-x', 'pan-x pan-y', 'none'].forEach(function(val) { + + // If css.supports is not supported but there is native touch-action assume it supports + // all values. This is the case for IE 10 and 11. + touchMap[val] = cssSupports ? window.CSS.supports('touch-action', val) : true; + }); + return touchMap; +} + + +var STATE_POSSIBLE = 1; +var STATE_BEGAN = 2; +var STATE_CHANGED = 4; +var STATE_ENDED = 8; +var STATE_RECOGNIZED = STATE_ENDED; +var STATE_CANCELLED = 16; +var STATE_FAILED = 32; + + +function Recognizer(options) { + this.options = assign({}, this.defaults, options || {}); + + this.id = uniqueId(); + + this.manager = null; + + // default is enable true + this.options.enable = ifUndefined(this.options.enable, true); + + this.state = STATE_POSSIBLE; + + this.simultaneous = {}; + this.requireFail = []; +} + +Recognizer.prototype = { + + defaults: {}, + + + set: function(options) { + assign(this.options, options); + + // also update the touchAction, in case something changed about the directions/enabled state + this.manager && this.manager.touchAction.update(); + return this; + }, + + + recognizeWith: function(otherRecognizer) { + if (invokeArrayArg(otherRecognizer, 'recognizeWith', this)) { + return this; + } + + var simultaneous = this.simultaneous; + otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this); + if (!simultaneous[otherRecognizer.id]) { + simultaneous[otherRecognizer.id] = otherRecognizer; + otherRecognizer.recognizeWith(this); + } + return this; + }, + + + dropRecognizeWith: function(otherRecognizer) { + if (invokeArrayArg(otherRecognizer, 'dropRecognizeWith', this)) { + return this; + } + + otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this); + delete this.simultaneous[otherRecognizer.id]; + return this; + }, + + + requireFailure: function(otherRecognizer) { + if (invokeArrayArg(otherRecognizer, 'requireFailure', this)) { + return this; + } + + var requireFail = this.requireFail; + otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this); + if (inArray(requireFail, otherRecognizer) === -1) { + requireFail.push(otherRecognizer); + otherRecognizer.requireFailure(this); + } + return this; + }, + + + dropRequireFailure: function(otherRecognizer) { + if (invokeArrayArg(otherRecognizer, 'dropRequireFailure', this)) { + return this; + } + + otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this); + var index = inArray(this.requireFail, otherRecognizer); + if (index > -1) { + this.requireFail.splice(index, 1); + } + return this; + }, + + + hasRequireFailures: function() { + return this.requireFail.length > 0; + }, + + + canRecognizeWith: function(otherRecognizer) { + return !!this.simultaneous[otherRecognizer.id]; + }, + + + emit: function(input) { + var self = this; + var state = this.state; + + function emit(event) { + self.manager.emit(event, input); + } + + // 'panstart' and 'panmove' + if (state < STATE_ENDED) { + emit(self.options.event + stateStr(state)); + } + + emit(self.options.event); // simple 'eventName' events + + if (input.additionalEvent) { // additional event(panleft, panright, pinchin, pinchout...) + emit(input.additionalEvent); + } + + // panend and pancancel + if (state >= STATE_ENDED) { + emit(self.options.event + stateStr(state)); + } + }, + + + tryEmit: function(input) { + if (this.canEmit()) { + return this.emit(input); + } + // it's failing anyway + this.state = STATE_FAILED; + }, + + + canEmit: function() { + var i = 0; + while (i < this.requireFail.length) { + if (!(this.requireFail[i].state & (STATE_FAILED | STATE_POSSIBLE))) { + return false; + } + i++; + } + return true; + }, + + + recognize: function(inputData) { + // make a new copy of the inputData + // so we can change the inputData without messing up the other recognizers + var inputDataClone = assign({}, inputData); + + // is is enabled and allow recognizing? + if (!boolOrFn(this.options.enable, [this, inputDataClone])) { + this.reset(); + this.state = STATE_FAILED; + return; + } + + // reset when we've reached the end + if (this.state & (STATE_RECOGNIZED | STATE_CANCELLED | STATE_FAILED)) { + this.state = STATE_POSSIBLE; + } + + this.state = this.process(inputDataClone); + + // the recognizer has recognized a gesture + // so trigger an event + if (this.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED | STATE_CANCELLED)) { + this.tryEmit(inputDataClone); + } + }, + + + process: function(inputData) { }, // jshint ignore:line + + + getTouchAction: function() { }, + + + reset: function() { } +}; + + +function stateStr(state) { + if (state & STATE_CANCELLED) { + return 'cancel'; + } else if (state & STATE_ENDED) { + return 'end'; + } else if (state & STATE_CHANGED) { + return 'move'; + } else if (state & STATE_BEGAN) { + return 'start'; + } + return ''; +} + + +function directionStr(direction) { + if (direction == DIRECTION_DOWN) { + return 'down'; + } else if (direction == DIRECTION_UP) { + return 'up'; + } else if (direction == DIRECTION_LEFT) { + return 'left'; + } else if (direction == DIRECTION_RIGHT) { + return 'right'; + } + return ''; +} + + +function getRecognizerByNameIfManager(otherRecognizer, recognizer) { + var manager = recognizer.manager; + if (manager) { + return manager.get(otherRecognizer); + } + return otherRecognizer; +} + + +function AttrRecognizer() { + Recognizer.apply(this, arguments); +} + +inherit(AttrRecognizer, Recognizer, { + + defaults: { + + pointers: 1 + }, + + + attrTest: function(input) { + var optionPointers = this.options.pointers; + return optionPointers === 0 || input.pointers.length === optionPointers; + }, + + + process: function(input) { + var state = this.state; + var eventType = input.eventType; + + var isRecognized = state & (STATE_BEGAN | STATE_CHANGED); + var isValid = this.attrTest(input); + + // on cancel input and we've recognized before, return STATE_CANCELLED + if (isRecognized && (eventType & INPUT_CANCEL || !isValid)) { + return state | STATE_CANCELLED; + } else if (isRecognized || isValid) { + if (eventType & INPUT_END) { + return state | STATE_ENDED; + } else if (!(state & STATE_BEGAN)) { + return STATE_BEGAN; + } + return state | STATE_CHANGED; + } + return STATE_FAILED; + } +}); + + +function PanRecognizer() { + AttrRecognizer.apply(this, arguments); + + this.pX = null; + this.pY = null; +} + +inherit(PanRecognizer, AttrRecognizer, { + + defaults: { + event: 'pan', + threshold: 10, + pointers: 1, + direction: DIRECTION_ALL + }, + + getTouchAction: function() { + var direction = this.options.direction; + var actions = []; + if (direction & DIRECTION_HORIZONTAL) { + actions.push(TOUCH_ACTION_PAN_Y); + } + if (direction & DIRECTION_VERTICAL) { + actions.push(TOUCH_ACTION_PAN_X); + } + return actions; + }, + + directionTest: function(input) { + var options = this.options; + var hasMoved = true; + var distance = input.distance; + var direction = input.direction; + var x = input.deltaX; + var y = input.deltaY; + + // lock to axis? + if (!(direction & options.direction)) { + if (options.direction & DIRECTION_HORIZONTAL) { + direction = (x === 0) ? DIRECTION_NONE : (x < 0) ? DIRECTION_LEFT : DIRECTION_RIGHT; + hasMoved = x != this.pX; + distance = Math.abs(input.deltaX); + } else { + direction = (y === 0) ? DIRECTION_NONE : (y < 0) ? DIRECTION_UP : DIRECTION_DOWN; + hasMoved = y != this.pY; + distance = Math.abs(input.deltaY); + } + } + input.direction = direction; + return hasMoved && distance > options.threshold && direction & options.direction; + }, + + attrTest: function(input) { + return AttrRecognizer.prototype.attrTest.call(this, input) && + (this.state & STATE_BEGAN || (!(this.state & STATE_BEGAN) && this.directionTest(input))); + }, + + emit: function(input) { + + this.pX = input.deltaX; + this.pY = input.deltaY; + + var direction = directionStr(input.direction); + + if (direction) { + input.additionalEvent = this.options.event + direction; + } + this._super.emit.call(this, input); + } +}); + + +function PinchRecognizer() { + AttrRecognizer.apply(this, arguments); +} + +inherit(PinchRecognizer, AttrRecognizer, { + + defaults: { + event: 'pinch', + threshold: 0, + pointers: 2 + }, + + getTouchAction: function() { + return [TOUCH_ACTION_NONE]; + }, + + attrTest: function(input) { + return this._super.attrTest.call(this, input) && + (Math.abs(input.scale - 1) > this.options.threshold || this.state & STATE_BEGAN); + }, + + emit: function(input) { + if (input.scale !== 1) { + var inOut = input.scale < 1 ? 'in' : 'out'; + input.additionalEvent = this.options.event + inOut; + } + this._super.emit.call(this, input); + } +}); + + +function PressRecognizer() { + Recognizer.apply(this, arguments); + + this._timer = null; + this._input = null; +} + +inherit(PressRecognizer, Recognizer, { + + defaults: { + event: 'press', + pointers: 1, + time: 251, // minimal time of the pointer to be pressed + threshold: 9 // a minimal movement is ok, but keep it low + }, + + getTouchAction: function() { + return [TOUCH_ACTION_AUTO]; + }, + + process: function(input) { + var options = this.options; + var validPointers = input.pointers.length === options.pointers; + var validMovement = input.distance < options.threshold; + var validTime = input.deltaTime > options.time; + + this._input = input; + + // we only allow little movement + // and we've reached an end event, so a tap is possible + if (!validMovement || !validPointers || (input.eventType & (INPUT_END | INPUT_CANCEL) && !validTime)) { + this.reset(); + } else if (input.eventType & INPUT_START) { + this.reset(); + this._timer = setTimeoutContext(function() { + this.state = STATE_RECOGNIZED; + this.tryEmit(); + }, options.time, this); + } else if (input.eventType & INPUT_END) { + return STATE_RECOGNIZED; + } + return STATE_FAILED; + }, + + reset: function() { + clearTimeout(this._timer); + }, + + emit: function(input) { + if (this.state !== STATE_RECOGNIZED) { + return; + } + + if (input && (input.eventType & INPUT_END)) { + this.manager.emit(this.options.event + 'up', input); + } else { + this._input.timeStamp = now(); + this.manager.emit(this.options.event, this._input); + } + } +}); + + +function RotateRecognizer() { + AttrRecognizer.apply(this, arguments); +} + +inherit(RotateRecognizer, AttrRecognizer, { + + defaults: { + event: 'rotate', + threshold: 0, + pointers: 2 + }, + + getTouchAction: function() { + return [TOUCH_ACTION_NONE]; + }, + + attrTest: function(input) { + return this._super.attrTest.call(this, input) && + (Math.abs(input.rotation) > this.options.threshold || this.state & STATE_BEGAN); + } +}); + + +function SwipeRecognizer() { + AttrRecognizer.apply(this, arguments); +} + +inherit(SwipeRecognizer, AttrRecognizer, { + + defaults: { + event: 'swipe', + threshold: 10, + velocity: 0.3, + direction: DIRECTION_HORIZONTAL | DIRECTION_VERTICAL, + pointers: 1 + }, + + getTouchAction: function() { + return PanRecognizer.prototype.getTouchAction.call(this); + }, + + attrTest: function(input) { + var direction = this.options.direction; + var velocity; + + if (direction & (DIRECTION_HORIZONTAL | DIRECTION_VERTICAL)) { + velocity = input.overallVelocity; + } else if (direction & DIRECTION_HORIZONTAL) { + velocity = input.overallVelocityX; + } else if (direction & DIRECTION_VERTICAL) { + velocity = input.overallVelocityY; + } + + return this._super.attrTest.call(this, input) && + direction & input.offsetDirection && + input.distance > this.options.threshold && + input.maxPointers == this.options.pointers && + abs(velocity) > this.options.velocity && input.eventType & INPUT_END; + }, + + emit: function(input) { + var direction = directionStr(input.offsetDirection); + if (direction) { + this.manager.emit(this.options.event + direction, input); + } + + this.manager.emit(this.options.event, input); + } +}); + + +function TapRecognizer() { + Recognizer.apply(this, arguments); + + // previous time and center, + // used for tap counting + this.pTime = false; + this.pCenter = false; + + this._timer = null; + this._input = null; + this.count = 0; +} + +inherit(TapRecognizer, Recognizer, { + + defaults: { + event: 'tap', + pointers: 1, + taps: 1, + interval: 300, // max time between the multi-tap taps + time: 250, // max time of the pointer to be down (like finger on the screen) + threshold: 9, // a minimal movement is ok, but keep it low + posThreshold: 10 // a multi-tap can be a bit off the initial position + }, + + getTouchAction: function() { + return [TOUCH_ACTION_MANIPULATION]; + }, + + process: function(input) { + var options = this.options; + + var validPointers = input.pointers.length === options.pointers; + var validMovement = input.distance < options.threshold; + var validTouchTime = input.deltaTime < options.time; + + this.reset(); + + if ((input.eventType & INPUT_START) && (this.count === 0)) { + return this.failTimeout(); + } + + // we only allow little movement + // and we've reached an end event, so a tap is possible + if (validMovement && validTouchTime && validPointers) { + if (input.eventType != INPUT_END) { + return this.failTimeout(); + } + + var validInterval = this.pTime ? (input.timeStamp - this.pTime < options.interval) : true; + var validMultiTap = !this.pCenter || getDistance(this.pCenter, input.center) < options.posThreshold; + + this.pTime = input.timeStamp; + this.pCenter = input.center; + + if (!validMultiTap || !validInterval) { + this.count = 1; + } else { + this.count += 1; + } + + this._input = input; + + // if tap count matches we have recognized it, + // else it has began recognizing... + var tapCount = this.count % options.taps; + if (tapCount === 0) { + // no failing requirements, immediately trigger the tap event + // or wait as long as the multitap interval to trigger + if (!this.hasRequireFailures()) { + return STATE_RECOGNIZED; + } else { + this._timer = setTimeoutContext(function() { + this.state = STATE_RECOGNIZED; + this.tryEmit(); + }, options.interval, this); + return STATE_BEGAN; + } + } + } + return STATE_FAILED; + }, + + failTimeout: function() { + this._timer = setTimeoutContext(function() { + this.state = STATE_FAILED; + }, this.options.interval, this); + return STATE_FAILED; + }, + + reset: function() { + clearTimeout(this._timer); + }, + + emit: function() { + if (this.state == STATE_RECOGNIZED) { + this._input.tapCount = this.count; + this.manager.emit(this.options.event, this._input); + } + } +}); + + +function Hammer(element, options) { + options = options || {}; + options.recognizers = ifUndefined(options.recognizers, Hammer.defaults.preset); + return new Manager(element, options); +} + + +Hammer.VERSION = '2.0.7'; + + +Hammer.defaults = { + + domEvents: false, + + + touchAction: TOUCH_ACTION_COMPUTE, + + + enable: true, + + + inputTarget: null, + + + inputClass: null, + + + preset: [ + // RecognizerClass, options, [recognizeWith, ...], [requireFailure, ...] + [RotateRecognizer, {enable: false}], + [PinchRecognizer, {enable: false}, ['rotate']], + [SwipeRecognizer, {direction: DIRECTION_HORIZONTAL}], + [PanRecognizer, {direction: DIRECTION_HORIZONTAL}, ['swipe']], + [TapRecognizer], + [TapRecognizer, {event: 'doubletap', taps: 2}, ['tap']], + [PressRecognizer] + ], + + + cssProps: { + + userSelect: 'none', + + + touchSelect: 'none', + + + touchCallout: 'none', + + + contentZooming: 'none', + + + userDrag: 'none', + + + tapHighlightColor: 'rgba(0,0,0,0)' + } +}; + +var STOP = 1; +var FORCED_STOP = 2; + + +function Manager(element, options) { + this.options = assign({}, Hammer.defaults, options || {}); + + this.options.inputTarget = this.options.inputTarget || element; + + this.handlers = {}; + this.session = {}; + this.recognizers = []; + this.oldCssProps = {}; + + this.element = element; + this.input = createInputInstance(this); + this.touchAction = new TouchAction(this, this.options.touchAction); + + toggleCssProps(this, true); + + each(this.options.recognizers, function(item) { + var recognizer = this.add(new (item[0])(item[1])); + item[2] && recognizer.recognizeWith(item[2]); + item[3] && recognizer.requireFailure(item[3]); + }, this); +} + +Manager.prototype = { + + set: function(options) { + assign(this.options, options); + + // Options that need a little more setup + if (options.touchAction) { + this.touchAction.update(); + } + if (options.inputTarget) { + // Clean up existing event listeners and reinitialize + this.input.destroy(); + this.input.target = options.inputTarget; + this.input.init(); + } + return this; + }, + + + stop: function(force) { + this.session.stopped = force ? FORCED_STOP : STOP; + }, + + + recognize: function(inputData) { + var session = this.session; + if (session.stopped) { + return; + } + + // run the touch-action polyfill + this.touchAction.preventDefaults(inputData); + + var recognizer; + var recognizers = this.recognizers; + + // this holds the recognizer that is being recognized. + // so the recognizer's state needs to be BEGAN, CHANGED, ENDED or RECOGNIZED + // if no recognizer is detecting a thing, it is set to `null` + var curRecognizer = session.curRecognizer; + + // reset when the last recognizer is recognized + // or when we're in a new session + if (!curRecognizer || (curRecognizer && curRecognizer.state & STATE_RECOGNIZED)) { + curRecognizer = session.curRecognizer = null; + } + + var i = 0; + while (i < recognizers.length) { + recognizer = recognizers[i]; + + // find out if we are allowed try to recognize the input for this one. + // 1. allow if the session is NOT forced stopped (see the .stop() method) + // 2. allow if we still haven't recognized a gesture in this session, or the this recognizer is the one + // that is being recognized. + // 3. allow if the recognizer is allowed to run simultaneous with the current recognized recognizer. + // this can be setup with the `recognizeWith()` method on the recognizer. + if (session.stopped !== FORCED_STOP && ( // 1 + !curRecognizer || recognizer == curRecognizer || // 2 + recognizer.canRecognizeWith(curRecognizer))) { // 3 + recognizer.recognize(inputData); + } else { + recognizer.reset(); + } + + // if the recognizer has been recognizing the input as a valid gesture, we want to store this one as the + // current active recognizer. but only if we don't already have an active recognizer + if (!curRecognizer && recognizer.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED)) { + curRecognizer = session.curRecognizer = recognizer; + } + i++; + } + }, + + + get: function(recognizer) { + if (recognizer instanceof Recognizer) { + return recognizer; + } + + var recognizers = this.recognizers; + for (var i = 0; i < recognizers.length; i++) { + if (recognizers[i].options.event == recognizer) { + return recognizers[i]; + } + } + return null; + }, + + + add: function(recognizer) { + if (invokeArrayArg(recognizer, 'add', this)) { + return this; + } + + // remove existing + var existing = this.get(recognizer.options.event); + if (existing) { + this.remove(existing); + } + + this.recognizers.push(recognizer); + recognizer.manager = this; + + this.touchAction.update(); + return recognizer; + }, + + + remove: function(recognizer) { + if (invokeArrayArg(recognizer, 'remove', this)) { + return this; + } + + recognizer = this.get(recognizer); + + // let's make sure this recognizer exists + if (recognizer) { + var recognizers = this.recognizers; + var index = inArray(recognizers, recognizer); + + if (index !== -1) { + recognizers.splice(index, 1); + this.touchAction.update(); + } + } + + return this; + }, + + + on: function(events, handler) { + if (events === undefined) { + return; + } + if (handler === undefined) { + return; + } + + var handlers = this.handlers; + each(splitStr(events), function(event) { + handlers[event] = handlers[event] || []; + handlers[event].push(handler); + }); + return this; + }, + + + off: function(events, handler) { + if (events === undefined) { + return; + } + + var handlers = this.handlers; + each(splitStr(events), function(event) { + if (!handler) { + delete handlers[event]; + } else { + handlers[event] && handlers[event].splice(inArray(handlers[event], handler), 1); + } + }); + return this; + }, + + + emit: function(event, data) { + // we also want to trigger dom events + if (this.options.domEvents) { + triggerDomEvent(event, data); + } + + // no handlers, so skip it all + var handlers = this.handlers[event] && this.handlers[event].slice(); + if (!handlers || !handlers.length) { + return; + } + + data.type = event; + data.preventDefault = function() { + data.srcEvent.preventDefault(); + }; + + var i = 0; + while (i < handlers.length) { + handlers[i](data); + i++; + } + }, + + + destroy: function() { + this.element && toggleCssProps(this, false); + + this.handlers = {}; + this.session = {}; + this.input.destroy(); + this.element = null; + } +}; + + +function toggleCssProps(manager, add) { + var element = manager.element; + if (!element.style) { + return; + } + var prop; + each(manager.options.cssProps, function(value, name) { + prop = prefixed(element.style, name); + if (add) { + manager.oldCssProps[prop] = element.style[prop]; + element.style[prop] = value; + } else { + element.style[prop] = manager.oldCssProps[prop] || ''; + } + }); + if (!add) { + manager.oldCssProps = {}; + } +} + + +function triggerDomEvent(event, data) { + var gestureEvent = document.createEvent('Event'); + gestureEvent.initEvent(event, true, true); + gestureEvent.gesture = data; + data.target.dispatchEvent(gestureEvent); +} + +assign(Hammer, { + INPUT_START: INPUT_START, + INPUT_MOVE: INPUT_MOVE, + INPUT_END: INPUT_END, + INPUT_CANCEL: INPUT_CANCEL, + + STATE_POSSIBLE: STATE_POSSIBLE, + STATE_BEGAN: STATE_BEGAN, + STATE_CHANGED: STATE_CHANGED, + STATE_ENDED: STATE_ENDED, + STATE_RECOGNIZED: STATE_RECOGNIZED, + STATE_CANCELLED: STATE_CANCELLED, + STATE_FAILED: STATE_FAILED, + + DIRECTION_NONE: DIRECTION_NONE, + DIRECTION_LEFT: DIRECTION_LEFT, + DIRECTION_RIGHT: DIRECTION_RIGHT, + DIRECTION_UP: DIRECTION_UP, + DIRECTION_DOWN: DIRECTION_DOWN, + DIRECTION_HORIZONTAL: DIRECTION_HORIZONTAL, + DIRECTION_VERTICAL: DIRECTION_VERTICAL, + DIRECTION_ALL: DIRECTION_ALL, + + Manager: Manager, + Input: Input, + TouchAction: TouchAction, + + TouchInput: TouchInput, + MouseInput: MouseInput, + PointerEventInput: PointerEventInput, + TouchMouseInput: TouchMouseInput, + SingleTouchInput: SingleTouchInput, + + Recognizer: Recognizer, + AttrRecognizer: AttrRecognizer, + Tap: TapRecognizer, + Pan: PanRecognizer, + Swipe: SwipeRecognizer, + Pinch: PinchRecognizer, + Rotate: RotateRecognizer, + Press: PressRecognizer, + + on: addEventListeners, + off: removeEventListeners, + each: each, + merge: merge, + extend: extend, + assign: assign, + inherit: inherit, + bindFn: bindFn, + prefixed: prefixed +}); + +// this prevents errors when Hammer is loaded in the presence of an AMD +// style loader but by script tag, not by the loader. +var freeGlobal = (typeof window !== 'undefined' ? window : (typeof self !== 'undefined' ? self : {})); // jshint ignore:line +freeGlobal.Hammer = Hammer; + +if (true) { + !(__WEBPACK_AMD_DEFINE_RESULT__ = (function() { + return Hammer; + }).call(exports, __webpack_require__, exports, module), + __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); +} else {} + +})(window, document, 'Hammer'); + + + }), + + "./node_modules/raw-loader/dist/cjs.js!./src/insights-loader/components/general-sitefinity-insight-error/general-sitefinity-insight-error.component.html": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_exports__["default"] = ("\r\n"); + + }), + + "./node_modules/raw-loader/dist/cjs.js!./src/insights-loader/components/loader/loader.component.html": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_exports__["default"] = ("\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    "); + + }), + + "./node_modules/raw-loader/dist/cjs.js!./src/insights-loader/components/lost-connection/lost-connection.component.html": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_exports__["default"] = ("
    \r\n \r\n

    Lost connection

    \r\n

    Connection to Sitefinity Insight is lost and no data is currently available.

    \r\n \r\n
    "); + + }), + + "./node_modules/raw-loader/dist/cjs.js!./src/insights-loader/components/show-improvement/show-improvement.component.html": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_exports__["default"] = ("= 0\" class=\"-txt-hint -sf-txt-hint\">+{{improvement | number: '1.0-2'}}% vs previous {{periodLengthInDays}} days\r\n-{{(improvement * -1) | number: '1.0-2'}}% vs previous {{periodLengthInDays}} days"); + + }), + + "./node_modules/raw-loader/dist/cjs.js!./src/insights-loader/components/sitefinity-insight-analytics-redirect-button/sitefinity-insight-analytics-redirect-button.component.html": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_exports__["default"] = (""); + + }), + + "./node_modules/raw-loader/dist/cjs.js!./src/insights-loader/components/touchpoint-chart/touchpoint-chart.component.html": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_exports__["default"] = ("\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n {{ dataItem.FormattedDateForTooltip }}
    \r\n {{ value | number }} unique visits\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n"); + + }), + + "./node_modules/raw-loader/dist/cjs.js!./src/insights-loader/components/touchpoint-highest-attribution-table/touchpoint-hightest-attribution-table.component.html": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_exports__["default"] = ("
    0\">\r\n

    This item attributes to...

    \r\n
  • \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n Conversion\r\n \r\n
    \r\n Unique conversions\r\n
    \r\n
    \r\n

    Unique conversions

    \r\n Number of conversions by visitors after they visited this content item.\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Conversion rate\r\n
    \r\n
    \r\n

    Conversion rate

    \r\n Ratio between the number of unique conversions and unique visits.\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Attribution\r\n
    \r\n
    \r\n

    Attribution

    \r\n Indicates how visiting this content item affects the conversion rate.\r\n
    \r\n
    \r\n
    \r\n
    {{ attribution.GoalName }}
    Period: {{attribution.GoalPeriod}}
    {{ attribution.GoalCompletions || 0 }}{{ numberDisplayFormatter.roundPercentage(attribution.ConversionRateTouchpoint) }}%{{attribution.Attribution | number: '1.0-2' }}
    \r\n"); + + }), + + "./node_modules/raw-loader/dist/cjs.js!./src/insights-loader/components/touchpoint-hits/touchpoint-hits.component.html": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_exports__["default"] = ("\r\n
    \r\n\r\n

    Unique visits in last {{periodLengthInDays}} days

    \r\n

    Unique visits

    \r\n
    {{ touchpointPeriodMetrics.UniqueHits_CurrentPeriod | number }}
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n\r\n

    {{ touchpointPeriodMetrics.UniqueHits_AllTime | number }} for all time

    \r\n
    \r\n\r\n"); + + }), + + "./node_modules/raw-loader/dist/cjs.js!./src/insights-loader/create-content-touchpoint/create-content-touchpoint.component.html": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_exports__["default"] = ("\r\n
    \r\n \r\n

    Start tracking visits and attribution?

    \r\n
    \r\n
    An error occurred while attempting to start tracking. Try again.
    \r\n
    \r\n

    {{contentItemInfo.Title}}

    \r\n

    1\" class=\"-txt-hint -sf-txt-hint -txt-large -sf-txt-large -sf-mt--4xs\" data-info=\"all-translations-label\">For all translations

    \r\n\r\n
    \r\n Sitefinity Insight will track:\r\n\r\n
      \r\n
    • Number of visits for all items under this {{contentItemInfo.ContentType}}
    • \r\n
    • Items’ attribution to site conversions
    • \r\n
    \r\n\r\n
      \r\n
    • Number of visits for this content item
    • \r\n
    • Attribution to site conversions
    • \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Start tracking\r\n
    \r\n Cancel\r\n
    \r\n
    \r\n\r\n\r\n
    \r\n \r\n

    Tracking successfully set

    \r\n

    Collected data will be available here within 24 hours.

    \r\n\r\n Close\r\n
    \r\n"); + + }), + + "./node_modules/raw-loader/dist/cjs.js!./src/insights-loader/entry-point/insights-cell/insights-cell.component.html": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_exports__["default"] = ("
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n"); + + }), + + "./node_modules/raw-loader/dist/cjs.js!./src/insights-loader/entry-point/insights-details/insights-details-view.component.html": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_exports__["default"] = ("\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
    \r\n \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n"); + + }), + + "./node_modules/raw-loader/dist/cjs.js!./src/insights-loader/touchpoint-details/touchpoint-details.component.html": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_exports__["default"] = ("
    \r\n

    Visits and attribution

    \r\n

    {{contentItemInfo.Title}}

    \r\n

    1\" class=\"-txt-hint -sf-txt-hint -txt-large -sf-txt-large -sf-mt--4xs\" data-info=\"all-translations-label\">For all translations

    \r\n
    \r\n\r\n
    \r\n
    \r\n\r\n \r\n\r\n
    \r\n\r\n \r\n \r\n\r\n \r\n \r\n
    \r\n \r\n \r\n\r\n \r\n \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n
    \r\n"); + + }), + + "./node_modules/raw-loader/dist/cjs.js!./src/insights-loader/touchpoint-no-data-yet/touchpoint-no-data-yet.component.html": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_exports__["default"] = ("

    Visits and attribution

    \r\n

    {{contentItemInfo.Title}}

    \r\n

    1\" class=\"-txt-hint -sf-txt-hint -txt-large -sf-txt-large -sf-mt--4xs\" data-info=\"all-translations-label\">For all translations

    \r\n
    \r\n
    \r\n \r\n

    Visits and attribution will appear here.
    Not enough data have been collected yet.

    \r\n
    "); + + }), + + "./src/insights-loader/components/general-sitefinity-insight-error/general-sitefinity-insight-error.component.scss": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_exports__["default"] = (".-sf-centered-vertical-box {\n margin-top: -100px;\n margin-bottom: -66px;\n}"); + + }), + + "./src/insights-loader/components/general-sitefinity-insight-error/general-sitefinity-insight-error.component.ts": + + + (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var tslib_1 = __webpack_require__( 100002); +var core_1 = __webpack_require__( 100003); +var GeneralSitefinityInsightErrorComponent = (function () { + function GeneralSitefinityInsightErrorComponent() { + this.retry = new core_1.EventEmitter(); + } + GeneralSitefinityInsightErrorComponent.prototype.retryOperations = function () { + this.retry.emit(null); + }; + tslib_1.__decorate([ + core_1.Output(), + tslib_1.__metadata("design:type", Object) + ], GeneralSitefinityInsightErrorComponent.prototype, "retry", void 0); + GeneralSitefinityInsightErrorComponent = tslib_1.__decorate([ + core_1.Component({ + selector: "general-sitefinity-insight-error", + template: tslib_1.__importDefault(__webpack_require__( "./node_modules/raw-loader/dist/cjs.js!./src/insights-loader/components/general-sitefinity-insight-error/general-sitefinity-insight-error.component.html")).default, + styles: [tslib_1.__importDefault(__webpack_require__( "./src/insights-loader/components/general-sitefinity-insight-error/general-sitefinity-insight-error.component.scss")).default] + }) + ], GeneralSitefinityInsightErrorComponent); + return GeneralSitefinityInsightErrorComponent; +}()); +exports.GeneralSitefinityInsightErrorComponent = GeneralSitefinityInsightErrorComponent; + + + }), + + "./src/insights-loader/components/loader/loader.component.ts": + + + (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var tslib_1 = __webpack_require__( 100002); +var core_1 = __webpack_require__( 100003); +var loaderClass = "sf-loader"; +var firstRectClass = "-first"; +var secondRectClass = "-second"; +var thirdRectClass = "-third"; +var LoaderComponent = (function () { + function LoaderComponent() { + this.iterations = [0]; + } + LoaderComponent.prototype.ngOnInit = function () { + if (this.count) { + this.iterations = Array(this.count).fill(0); + } + this.rectClasses = [firstRectClass, secondRectClass, thirdRectClass]; + if (this.look && (this.look.includes("progressbar") || this.look.includes("skeleton"))) { + this.rectClasses.length = 0; + } + this.cssClassList = this.generateCssClassList(); + }; + LoaderComponent.prototype.generateCssClassList = function () { + var cls = loaderClass; + if (this.look) { + cls += " -" + this.look.split(" ").join(" -"); + } + return cls; + }; + tslib_1.__decorate([ + core_1.Input(), + tslib_1.__metadata("design:type", String) + ], LoaderComponent.prototype, "look", void 0); + tslib_1.__decorate([ + core_1.Input(), + tslib_1.__metadata("design:type", Number) + ], LoaderComponent.prototype, "count", void 0); + LoaderComponent = tslib_1.__decorate([ + core_1.Component({ + selector: "sf-loader", + template: tslib_1.__importDefault(__webpack_require__( "./node_modules/raw-loader/dist/cjs.js!./src/insights-loader/components/loader/loader.component.html")).default + }) + ], LoaderComponent); + return LoaderComponent; +}()); +exports.LoaderComponent = LoaderComponent; + + + }), + + "./src/insights-loader/components/lost-connection/lost-connection.component.scss": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_exports__["default"] = (".-sf-centered-vertical-box {\n margin-top: -100px;\n margin-bottom: -66px;\n}"); + + }), + + "./src/insights-loader/components/lost-connection/lost-connection.component.ts": + + + (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var tslib_1 = __webpack_require__( 100002); +var core_1 = __webpack_require__( 100003); +var sitefinity_base_url_1 = __webpack_require__( "./src/insights-loader/services/sitefinity-base-url.ts"); +var connector_service_1 = __webpack_require__( "./src/insights-loader/services/connector.service.ts"); +var LostConnectionComponent = (function () { + function LostConnectionComponent(connectorService) { + var _this = this; + this.connectorService = connectorService; + this.connectorService.getConnectorDetails().subscribe(function (sitefinityInsightConfiguration) { + _this.insightSetupInSitefinity = "" + sitefinity_base_url_1.SitefinityBaseUrl.getUrl() + sitefinityInsightConfiguration.DecAdminBackendPageUrl; + }); + } + LostConnectionComponent.ctorParameters = function () { return [ + { type: connector_service_1.ConnectorService, decorators: [{ type: core_1.Inject, args: [core_1.forwardRef(function () { return connector_service_1.ConnectorService; }),] }] } + ]; }; + LostConnectionComponent = tslib_1.__decorate([ + core_1.Component({ + selector: "lost-connection", + template: tslib_1.__importDefault(__webpack_require__( "./node_modules/raw-loader/dist/cjs.js!./src/insights-loader/components/lost-connection/lost-connection.component.html")).default, + styles: [tslib_1.__importDefault(__webpack_require__( "./src/insights-loader/components/lost-connection/lost-connection.component.scss")).default] + }), + tslib_1.__param(0, core_1.Inject(core_1.forwardRef(function () { return connector_service_1.ConnectorService; }))), + tslib_1.__metadata("design:paramtypes", [connector_service_1.ConnectorService]) + ], LostConnectionComponent); + return LostConnectionComponent; +}()); +exports.LostConnectionComponent = LostConnectionComponent; + + + }), + + "./src/insights-loader/components/show-improvement/show-improvement.component.ts": + + + (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var tslib_1 = __webpack_require__( 100002); +var core_1 = __webpack_require__( 100003); +var ShowImprovementComponent = (function () { + // tslint:disable-next-line:no-empty + function ShowImprovementComponent() { + } + ShowImprovementComponent.prototype.ngOnInit = function () { + }; + tslib_1.__decorate([ + core_1.Input(), + tslib_1.__metadata("design:type", String) + ], ShowImprovementComponent.prototype, "improvement", void 0); + tslib_1.__decorate([ + core_1.Input(), + tslib_1.__metadata("design:type", Number) + ], ShowImprovementComponent.prototype, "periodLengthInDays", void 0); + ShowImprovementComponent = tslib_1.__decorate([ + core_1.Component({ + selector: "show-improvement", + template: tslib_1.__importDefault(__webpack_require__( "./node_modules/raw-loader/dist/cjs.js!./src/insights-loader/components/show-improvement/show-improvement.component.html")).default + }), + tslib_1.__metadata("design:paramtypes", []) + ], ShowImprovementComponent); + return ShowImprovementComponent; +}()); +exports.ShowImprovementComponent = ShowImprovementComponent; + + + }), + + "./src/insights-loader/components/sitefinity-insight-analytics-redirect-button/sitefinity-insight-analytics-redirect-button.component.ts": + + + (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var tslib_1 = __webpack_require__( 100002); +var core_1 = __webpack_require__( 100003); +var connector_service_1 = __webpack_require__( "./src/insights-loader/services/connector.service.ts"); +var sitefinity_insight_datacenter_requester_service_1 = __webpack_require__( "./src/insights-loader/services/sitefinity-insight-datacenter-requester.service.ts"); +var SitefinityInsightAnalyticsRedirectButtonComponent = (function () { + function SitefinityInsightAnalyticsRedirectButtonComponent(connectorService, sitefinityInsightDatacenterService) { + this.connectorService = connectorService; + this.sitefinityInsightDatacenterService = sitefinityInsightDatacenterService; + this.loadingData = false; + this.httpError = null; + } + SitefinityInsightAnalyticsRedirectButtonComponent.prototype.ngOnInit = function () { + this.getWebAppUrl(); + }; + SitefinityInsightAnalyticsRedirectButtonComponent.prototype.getWebAppUrl = function () { + var _this = this; + this.httpError = null; + this.loadingData = true; + this.connectorService.getConnectorDetails() + .subscribe(function (sitefinityInsightConfiguration) { + _this.sitefinityInsightDatacenterService.getDatacenterId(sitefinityInsightConfiguration.DataCenterApiKey) + .subscribe(function (datacenterId) { + _this.sitefinityInsightWebAppRedirectUrl = sitefinityInsightConfiguration.DecAppUrl + "/new-web-app/data-centers/" + datacenterId + "/" + _this.redirectPath; + _this.loadingData = false; + }, function (error) { + _this.httpError = error; + }); + }); + }; + SitefinityInsightAnalyticsRedirectButtonComponent.ctorParameters = function () { return [ + { type: connector_service_1.ConnectorService, decorators: [{ type: core_1.Inject, args: [core_1.forwardRef(function () { return connector_service_1.ConnectorService; }),] }] }, + { type: sitefinity_insight_datacenter_requester_service_1.SitefinityInsightDatacenterRequesterService, decorators: [{ type: core_1.Inject, args: [core_1.forwardRef(function () { return sitefinity_insight_datacenter_requester_service_1.SitefinityInsightDatacenterRequesterService; }),] }] } + ]; }; + tslib_1.__decorate([ + core_1.Input(), + tslib_1.__metadata("design:type", String) + ], SitefinityInsightAnalyticsRedirectButtonComponent.prototype, "redirectPath", void 0); + tslib_1.__decorate([ + core_1.Input(), + tslib_1.__metadata("design:type", String) + ], SitefinityInsightAnalyticsRedirectButtonComponent.prototype, "buttonText", void 0); + SitefinityInsightAnalyticsRedirectButtonComponent = tslib_1.__decorate([ + core_1.Component({ + selector: "sitefinity-insight-analytics-redirect-button", + template: tslib_1.__importDefault(__webpack_require__( "./node_modules/raw-loader/dist/cjs.js!./src/insights-loader/components/sitefinity-insight-analytics-redirect-button/sitefinity-insight-analytics-redirect-button.component.html")).default + }), + tslib_1.__param(0, core_1.Inject(core_1.forwardRef(function () { return connector_service_1.ConnectorService; }))), + tslib_1.__param(1, core_1.Inject(core_1.forwardRef(function () { return sitefinity_insight_datacenter_requester_service_1.SitefinityInsightDatacenterRequesterService; }))), + tslib_1.__metadata("design:paramtypes", [connector_service_1.ConnectorService, + sitefinity_insight_datacenter_requester_service_1.SitefinityInsightDatacenterRequesterService]) + ], SitefinityInsightAnalyticsRedirectButtonComponent); + return SitefinityInsightAnalyticsRedirectButtonComponent; +}()); +exports.SitefinityInsightAnalyticsRedirectButtonComponent = SitefinityInsightAnalyticsRedirectButtonComponent; + + + }), + + "./src/insights-loader/components/touchpoint-chart/kendo-chart-data-converter.service.ts": + + + (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var tslib_1 = __webpack_require__( 100002); +var operators_1 = __webpack_require__( 100007); +var core_1 = __webpack_require__( 100003); +var sitefinity_insight_touchpoints_requester_service_1 = __webpack_require__( "./src/insights-loader/services/sitefinity-insight-touchpoints-requester.service.ts"); +var date_time_utils_service_1 = __webpack_require__( "./src/insights-loader/services/date-time-utils.service.ts"); +var KendoChartDataConverterService = (function () { + function KendoChartDataConverterService(sitefinityInsightServerService, dateTimeUtils) { + this.sitefinityInsightServerService = sitefinityInsightServerService; + this.dateTimeUtils = dateTimeUtils; + } + KendoChartDataConverterService_1 = KendoChartDataConverterService; + KendoChartDataConverterService.prototype.formatNumberByIncludingMagnituteNotation = function (num) { + var oneK = 1000; + var oneM = 1000 * 1000; + if (Math.abs(num) < oneK) { + return "" + num; + } + else if (Math.abs(num) < oneM) { + return toFixedIfNotInteger(num / oneK) + "K"; + } + else { + return toFixedIfNotInteger(num / oneM) + "M"; + } + function toFixedIfNotInteger(num) { + if (Number.isInteger(num)) + return "" + num; + else + return num.toFixed(1); + } + }; + KendoChartDataConverterService.prototype.getTouchpointStatisticsDataSource = function (touchpointId, periodInDays) { + var _this = this; + return this.sitefinityInsightServerService.getDailyStatistics(touchpointId, periodInDays).pipe(operators_1.map(function (touchpointStatistics) { + return touchpointStatistics.map(function (stat) { return _this.touchpointStatisticToKendoChartItem(stat); }); + }), operators_1.map(function (chartDataItemsForStatistics) { + while (chartDataItemsForStatistics.length < periodInDays) { + var latestStatisticsDate = chartDataItemsForStatistics[chartDataItemsForStatistics.length - 1].StatisticsDate; + var fillerStatisticsDate = _this.dateTimeUtils.addDays(new Date(latestStatisticsDate), 1).toISOString(); + var chartDataItem = _this.touchpointStatisticToKendoChartItem({ StatisticsDate: fillerStatisticsDate, UniqueHits: 0, TotalHits: 0 }); + chartDataItem.IsFake = true; + chartDataItemsForStatistics.push(chartDataItem); + } + return chartDataItemsForStatistics; + }), operators_1.map(function (chartDataItemsForStatistics) { + return { + touchpointStatisticsItems: chartDataItemsForStatistics, + categoryAxisLabels: KendoChartDataConverterService_1.getCategoryLabels(chartDataItemsForStatistics) + }; + })); + }; + KendoChartDataConverterService.prototype.touchpointStatisticToKendoChartItem = function (touchpointStatistic) { + return { + IsFake: false, + StatisticsDate: touchpointStatistic.StatisticsDate, + UniqueHits: touchpointStatistic.UniqueHits, + TotalHits: touchpointStatistic.TotalHits, + FormattedDateForLabel: this.dateTimeUtils.toShortDateTimeFormat(touchpointStatistic.StatisticsDate), + FormattedDateForTooltip: this.dateTimeUtils.toLongDateTimeFormat(touchpointStatistic.StatisticsDate) + }; + }; + KendoChartDataConverterService.getCategoryLabels = function (chartsData) { + var nonFakedPointsCount = chartsData.filter(function (x) { return x.IsFake === false; }).length; + if (nonFakedPointsCount < 3) { + return KendoChartDataConverterService_1.produceOnlyOneLabel(chartsData); + } + else if (nonFakedPointsCount <= 15) { + return KendoChartDataConverterService_1.produceTwoLabels(chartsData, nonFakedPointsCount); + } + else { + var middlePointIndex = (nonFakedPointsCount / 2) | 0; + return KendoChartDataConverterService_1.produceThreeLabels(chartsData, middlePointIndex, nonFakedPointsCount); + } + }; + KendoChartDataConverterService.produceOnlyOneLabel = function (chartsData) { + var labels = []; + for (var i = 0; i < chartsData.length; i++) { + var stat = chartsData[i]; + if (i === 0) + labels.push(stat.FormattedDateForLabel); + else { + labels.push(""); + } + } + return labels; + }; + KendoChartDataConverterService.produceTwoLabels = function (chartsData, nonFakedPointsCount) { + var labels = []; + for (var i = 0; i < chartsData.length; i++) { + var stat = chartsData[i]; + if (i === 0) + labels.push(stat.FormattedDateForLabel); + else if (i === nonFakedPointsCount - 1) { + labels.push(stat.FormattedDateForLabel); + } + else { + labels.push(""); + } + } + return labels; + }; + KendoChartDataConverterService.produceThreeLabels = function (chartsData, middleLabelIndex, nonFakedPointsCount) { + var labels = []; + for (var i = 0; i < chartsData.length; i++) { + var stat = chartsData[i]; + if (i === 0) + labels.push(stat.FormattedDateForLabel); + else if (i === nonFakedPointsCount - 1) { + labels.push(stat.FormattedDateForLabel); + } + else if (i === middleLabelIndex) { + labels.push(stat.FormattedDateForLabel); + } + else { + labels.push(""); + } + } + return labels; + }; + var KendoChartDataConverterService_1; + KendoChartDataConverterService.ctorParameters = function () { return [ + { type: sitefinity_insight_touchpoints_requester_service_1.SitefinityInsightTouchpointRequesterService, decorators: [{ type: core_1.Inject, args: [core_1.forwardRef(function () { return sitefinity_insight_touchpoints_requester_service_1.SitefinityInsightTouchpointRequesterService; }),] }] }, + { type: date_time_utils_service_1.DateTimeUtilsService, decorators: [{ type: core_1.Inject, args: [core_1.forwardRef(function () { return date_time_utils_service_1.DateTimeUtilsService; }),] }] } + ]; }; + KendoChartDataConverterService = KendoChartDataConverterService_1 = tslib_1.__decorate([ + core_1.Injectable(), + tslib_1.__param(0, core_1.Inject(core_1.forwardRef(function () { return sitefinity_insight_touchpoints_requester_service_1.SitefinityInsightTouchpointRequesterService; }))), + tslib_1.__param(1, core_1.Inject(core_1.forwardRef(function () { return date_time_utils_service_1.DateTimeUtilsService; }))), + tslib_1.__metadata("design:paramtypes", [sitefinity_insight_touchpoints_requester_service_1.SitefinityInsightTouchpointRequesterService, + date_time_utils_service_1.DateTimeUtilsService]) + ], KendoChartDataConverterService); + return KendoChartDataConverterService; +}()); +exports.KendoChartDataConverterService = KendoChartDataConverterService; + + + }), + + "./src/insights-loader/components/touchpoint-chart/touchpoint-chart.component.scss": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_exports__["default"] = ("@charset \"UTF-8\";\n.k-theme-test-class,\n.k-common-test-class {\n opacity: 0;\n}\n.k-reset {\n margin: 0;\n padding: 0;\n border-width: 0;\n outline: 0;\n text-decoration: none;\n font: inherit;\n list-style: none;\n}\n.k-widget {\n border-width: 1px;\n border-style: solid;\n box-sizing: border-box;\n outline: 0;\n font-family: inherit;\n font-size: 14px;\n line-height: 1.4285714286;\n display: block;\n -webkit-touch-callout: none;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\ntable.k-widget {\n display: table;\n}\nkendo-sortable {\n display: block;\n}\n.k-overlay {\n width: 100%;\n height: 100%;\n background-color: #000000;\n opacity: 0.5;\n position: fixed;\n top: 0;\n left: 0;\n z-index: 10001;\n}\n.k-rtl {\n direction: rtl;\n}\n.k-link,\n.k-link:hover {\n color: inherit;\n text-decoration: none;\n outline: 0;\n cursor: pointer;\n}\n.k-content {\n outline: 0;\n}\n.k-centered {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n}\n.k-no-click {\n pointer-events: none;\n}\n.k-pdf-export-shadow {\n position: absolute;\n overflow: hidden;\n left: -15000px;\n width: 14400px;\n}\n.kendo-pdf-hide-pseudo-elements::before,\n.kendo-pdf-hide-pseudo-elements::after {\n display: none !important;\n}\n.k-text-selection ::-moz-selection, .k-chart ::-moz-selection, .k-sparkline ::-moz-selection, .k-stockchart ::-moz-selection, .k-block ::-moz-selection, .k-panel ::-moz-selection, .k-widget ::-moz-selection {\n background-color: #ff6358;\n color: #ffffff;\n}\n.k-text-selection ::selection, .k-chart ::selection,\n.k-sparkline ::selection,\n.k-stockchart ::selection, .k-block ::selection,\n.k-panel ::selection, .k-widget ::selection {\n background-color: #ff6358;\n color: #ffffff;\n}\n.k-widget {\n border-color: rgba(0, 0, 0, 0.08);\n color: #656565;\n background-color: #ffffff;\n}\n.k-block,\n.k-panel {\n border-radius: 2px;\n border-color: rgba(0, 0, 0, 0.08);\n color: #656565;\n background-color: #ffffff;\n padding: 4px 8px;\n border-width: 1px;\n border-style: solid;\n box-sizing: border-box;\n}\n.k-block > .k-header,\n.k-panel > .k-header {\n border-top-left-radius: 2px;\n border-top-right-radius: 2px;\n border-color: rgba(0, 0, 0, 0.08);\n color: #656565;\n background-color: #f6f6f6;\n margin: -4px -8px 4px;\n padding: 8px 8px;\n}\n.k-content {\n border-color: rgba(0, 0, 0, 0.08);\n color: #656565;\n background-color: #ffffff;\n}\n.k-state-disabled,\n.k-widget[disabled] {\n outline: none;\n cursor: default;\n opacity: 0.6;\n -webkit-filter: grayscale(0.1);\n filter: grayscale(0.1);\n pointer-events: none;\n box-shadow: none;\n}\n.k-state-disabled .k-link,\n.k-state-disabled .k-button,\n.k-widget[disabled] .k-link,\n.k-widget[disabled] .k-button {\n cursor: default;\n outline: 0;\n}\n.k-state-disabled [disabled],\n.k-state-disabled .k-state-disabled,\n.k-widget[disabled] [disabled],\n.k-widget[disabled] .k-state-disabled {\n opacity: 1;\n -webkit-filter: grayscale(0);\n filter: grayscale(0);\n}\n.k-hr {\n margin: 1em auto;\n padding: 0;\n height: 0;\n border-width: 1px 0 0;\n border-style: solid;\n border-color: rgba(0, 0, 0, 0.08);\n display: block;\n float: none;\n clear: both;\n}\n.k-hbox > .k-hr, .k-columnset > .k-hr {\n margin: 0;\n width: 0;\n height: auto;\n border-width: 0 0 0 1px;\n flex: 0 0 auto;\n}\n.k-vbox > .k-hr, .k-rowset > .k-hr {\n margin: 0;\n flex: 0 0 auto;\n}\n.k-dirty {\n margin: 0;\n padding: 0;\n width: 0;\n height: 0;\n border-width: 3px;\n border-style: solid;\n border-color: #f31700 #f31700 transparent transparent;\n position: absolute;\n top: 0;\n right: 0;\n}\n[dir=rtl] .k-dirty,\n.k-rtl .k-dirty {\n border-color: transparent transparent #f31700 #f31700;\n right: auto;\n left: 0;\n}\n.k-placeholder-line {\n width: 100%;\n height: 10px;\n background-color: rgba(0, 0, 0, 0.1);\n display: inline-block;\n}\n.k-display-inline {\n display: inline !important;\n}\n.k-display-block {\n display: block !important;\n}\n.k-display-inline-block {\n display: inline-block !important;\n}\n.k-display-flex {\n display: flex !important;\n}\n.k-display-inline-flex {\n display: inline-flex !important;\n}\n.k-display-table {\n display: table !important;\n}\n.k-display-inline-table {\n display: inline-table !important;\n}\n.k-display-none, .k-hidden {\n display: none !important;\n}\n.k-float-left {\n float: left !important;\n}\n.k-float-right {\n float: right !important;\n}\n.k-float-none {\n float: none !important;\n}\n.k-floatwrap::after,\n.k-grid-toolbar::after,\n.k-slider-items::after {\n content: \"\";\n display: block;\n clear: both;\n}\n.k-pt-0 {\n padding-top: 0;\n}\n.k-pt-0-f {\n padding-top: 0 !important;\n}\n.k-pr-0 {\n padding-right: 0;\n}\n.k-pr-0-f {\n padding-right: 0 !important;\n}\n.k-pb-0 {\n padding-bottom: 0;\n}\n.k-pb-0-f {\n padding-bottom: 0 !important;\n}\n.k-pl-0 {\n padding-left: 0;\n}\n.k-pl-0-f {\n padding-left: 0 !important;\n}\n.k-mt-0 {\n margin-top: 0;\n}\n.k-mt-0-f {\n margin-top: 0 !important;\n}\n.k-mr-0 {\n margin-right: 0;\n}\n.k-mr-0-f {\n margin-right: 0 !important;\n}\n.k-mb-0 {\n margin-bottom: 0;\n}\n.k-mb-0-f {\n margin-bottom: 0 !important;\n}\n.k-ml-0 {\n margin-left: 0;\n}\n.k-ml-0-f {\n margin-left: 0 !important;\n}\n.k-flex-wrap {\n flex-wrap: wrap;\n}\n.k-flex-nowrap {\n flex-wrap: nowrap;\n}\n.k-flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n}\n.k-flex {\n flex: 1 1 0;\n}\n.k-flex-auto {\n flex: 1 1 auto;\n}\n.k-no-flex {\n flex: 0 0 0;\n}\n.k-no-flex-auto {\n flex: 0 0 auto;\n}\n.k-flex-grow {\n flex-grow: 1;\n}\n.k-no-flex-grow {\n flex-grow: 0;\n}\n.k-flex-shrink {\n flex-shrink: 1;\n}\n.k-no-flex-shrink {\n flex-shrink: 0;\n}\n.k-align-items-start {\n align-items: flex-start;\n}\n.k-align-items-end {\n align-items: flex-end;\n}\n.k-align-items-center {\n align-items: center;\n}\n.k-align-items-stretch {\n align-items: stretch;\n}\n.k-align-items-baseline {\n align-items: baseline;\n}\n.k-align-content-start {\n align-content: flex-start;\n}\n.k-align-content-end {\n align-content: flex-end;\n}\n.k-align-content-center {\n align-content: center;\n}\n.k-align-content-stretch {\n align-content: stretch;\n}\n.k-align-content-baseline {\n align-content: baseline;\n}\n.k-align-self-start {\n align-self: flex-start;\n}\n.k-align-self-end {\n align-self: flex-end;\n}\n.k-align-self-center {\n align-self: center;\n}\n.k-align-self-stretch {\n align-self: stretch;\n}\n.k-align-self-baseline {\n align-self: baseline;\n}\n.k-justify-content-start {\n justify-content: flex-start;\n}\n.k-justify-content-end {\n justify-content: flex-end;\n}\n.k-justify-content-center {\n justify-content: center;\n}\n.k-justify-content-between {\n justify-content: space-between;\n}\n.k-justify-content-around {\n justify-content: space-around;\n}\n.k-justify-content-evenly {\n justify-content: space-evenly;\n}\n.k-hbox, .k-columnset, .k-vbox, .k-rowset {\n display: flex;\n}\n.k-ihbox, .k-ivbox {\n display: inline-flex;\n}\n.k-hbox, .k-columnset, .k-ihbox {\n flex-direction: row;\n}\n.k-vbox, .k-rowset, .k-ivbox {\n flex-direction: column;\n}\n.k-column {\n flex-grow: 1;\n flex-basis: 0;\n}\n.k-reset {\n margin: 0;\n padding: 0;\n border-width: 0;\n outline: 0;\n font: inherit;\n text-decoration: none;\n list-style: none;\n}\n.k-text-nowrap {\n white-space: nowrap !important;\n}\n.k-text-ellipsis {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.k-text-left {\n text-align: left !important;\n}\n.k-text-right {\n text-align: right !important;\n}\n.k-text-center {\n text-align: center !important;\n}\n.k-text-justify {\n text-align: justify !important;\n}\n.k-text-lowercase {\n text-transform: lowercase !important;\n}\n.k-text-uppercase {\n text-transform: uppercase !important;\n}\n.k-text-capitalize {\n text-transform: capitalize !important;\n}\n.k-font-weight-light {\n font-weight: 300 !important;\n}\n.k-font-weight-normal {\n font-weight: 400 !important;\n}\n.k-font-weight-bold {\n font-weight: 700 !important;\n}\n.k-flip-h {\n transform: scaleX(-1);\n}\n.k-flip-v {\n transform: scaleY(-1);\n}\n.k-flip-h.k-flip-v {\n transform: scale(-1, -1);\n}\n.k-rotate-45 {\n transform: rotate(45deg);\n}\n.k-rotate-90 {\n transform: rotate(90deg);\n}\n.k-rotate-135 {\n transform: rotate(135deg);\n}\n.k-rotate-180 {\n transform: rotate(180deg);\n}\n.k-rotate-225 {\n transform: rotate(225deg);\n}\n.k-rotate-270 {\n transform: rotate(270deg);\n}\n.k-rotate-315 {\n transform: rotate(315deg);\n}\n.k-scale-0 {\n transform: scale(0, 0);\n}\n.k-scale-1 {\n transform: scale(1, 1);\n}\n.k-scale-2 {\n transform: scale(2, 2);\n}\n.k-translate-0 {\n transform: translate(0, 0);\n}\n.k-translate-0-50 {\n transform: translate(0, 50%);\n}\n.k-translate-0-100 {\n transform: translate(0, 100%);\n}\n.k-translate-50-0 {\n transform: translate(50%, 0);\n}\n.k-translate-50-50 {\n transform: translate(50%, 50%);\n}\n.k-translate-50-100 {\n transform: translate(50%, 100%);\n}\n.k-translate-100-0 {\n transform: translate(100%, 0);\n}\n.k-translate-100-50 {\n transform: translate(100%, 50%);\n}\n.k-translate-100-100 {\n transform: translate(100%, 100%);\n}\n.k-animation-container {\n position: absolute;\n overflow: hidden;\n z-index: 100;\n}\n.k-animation-container-fixed {\n position: fixed;\n}\n.k-animation-container-relative {\n position: relative;\n display: inline-block;\n}\n.k-push-right-enter, .k-push-right-appear {\n transform: translate(-100%, 0);\n}\n.k-push-right-enter-active, .k-push-right-appear-active {\n transform: translate(0, 0);\n transition: transform 300ms ease-in-out;\n}\n.k-push-right-exit {\n transform: translate(0, 0);\n}\n.k-push-right-exit-active {\n transform: translate(100%, 0);\n transition: transform 300ms ease-in-out;\n}\n.k-push-left-enter, .k-push-left-appear {\n transform: translate(100%, 0);\n}\n.k-push-left-enter-active, .k-push-left-appear-active {\n transform: translate(0, 0);\n transition: transform 300ms ease-in-out;\n}\n.k-push-left-exit {\n transform: translate(0, 0);\n}\n.k-push-left-exit-active {\n transform: translate(-100%, 0);\n transition: transform 300ms ease-in-out;\n}\n.k-push-down-enter, .k-push-down-appear {\n transform: translate(0, -100%);\n}\n.k-push-down-enter-active, .k-push-down-appear-active {\n transform: translate(0, 0);\n transition: transform 300ms ease-in-out;\n}\n.k-push-down-exit {\n transform: translate(0, 0);\n}\n.k-push-down-exit-active {\n transform: translate(0, 100%);\n transition: transform 300ms ease-in-out;\n}\n.k-push-up-enter, .k-push-up-appear {\n transform: translate(0, 100%);\n}\n.k-push-up-enter-active, .k-push-up-appear-active {\n transform: translate(0, 0);\n transition: transform 300ms ease-in-out;\n}\n.k-push-up-exit {\n transform: translate(0, 0);\n}\n.k-push-up-exit-active {\n transform: translate(0, -100%);\n transition: transform 300ms ease-in-out;\n}\n.k-expand-vertical-enter, .k-expand-vertical-appear {\n transform: scaleY(0);\n}\n.k-expand-vertical-enter-active, .k-expand-vertical-appear-active {\n transform: scaleY(1);\n transition: transform 300ms ease-in-out;\n}\n.k-expand-vertical-exit {\n transform: scaleY(1);\n}\n.k-expand-vertical-exit-active {\n transform: scaleY(0);\n transition: transform 300ms ease-in-out;\n}\n.k-expand-horizontal-enter, .k-expand-horizontal-appear {\n transform: scaleX(0);\n}\n.k-expand-horizontal-enter-active, .k-expand-horizontal-appear-active {\n transform: scaleX(1);\n transition: transform 300ms ease-in-out;\n}\n.k-expand-horizontal-exit {\n transform: scaleX(1);\n}\n.k-expand-horizontal-exit-active {\n transform: scaleX(0);\n transition: transform 300ms ease-in-out;\n}\n.k-fade-enter, .k-fade-appear {\n opacity: 0;\n}\n.k-fade-enter-active, .k-fade-appear-active {\n opacity: 1;\n transition: opacity 500ms ease-in-out;\n}\n.k-fade-exit {\n opacity: 1;\n}\n.k-fade-exit-active {\n opacity: 0;\n transition: opacity 500ms ease-in-out;\n}\n.k-fade-exit-active + .k-fade-exit-active, .k-fade-enter-active + .k-fade-enter-active {\n display: none;\n}\n.k-zoom-in-enter, .k-zoom-in-appear {\n opacity: 0;\n transform: scale(0);\n}\n.k-zoom-in-enter-active, .k-zoom-in-appear-active {\n opacity: 1;\n transform: scale(1);\n transition: transform, opacity 300ms ease-in-out;\n}\n.k-zoom-in-exit {\n opacity: 1;\n transform: scale(1);\n}\n.k-zoom-in-exit-active {\n opacity: 0;\n transform: scale(2);\n transition: transform, opacity 300ms ease-in-out;\n}\n.k-zoom-out-enter, .k-zoom-out-appear {\n opacity: 0;\n transform: scale(2);\n}\n.k-zoom-out-enter-active, .k-zoom-out-appear-active {\n opacity: 1;\n transform: scale(1);\n transition: transform, opacity 300ms ease-in-out;\n}\n.k-zoom-out-exit {\n opacity: 1;\n transform: scale(1);\n}\n.k-zoom-out-exit-active {\n opacity: 0;\n transform: scale(0);\n transition: transform, opacity 300ms ease-in-out;\n}\n.k-slide-in-appear {\n opacity: 0.1;\n transform: translate(0, -3em);\n}\n.k-slide-in-appear .k-centered {\n transform: translate(-50%, -60%);\n}\n.k-slide-in-appear-active {\n opacity: 1;\n transform: translate(0, 0);\n transition: transform 0.3s cubic-bezier(0.2, 0.6, 0.4, 1), opacity 0.3s cubic-bezier(0.2, 1, 0.2, 1);\n}\n.k-slide-in-appear-active .k-centered {\n transform: translate(-50%, -50%);\n}\n.k-slide-down-enter, .k-slide-down-appear {\n transform: translateY(-100%);\n}\n.k-slide-down-enter-active, .k-slide-down-appear-active {\n transform: translateY(0);\n transition: transform 300ms ease-in-out;\n}\n.k-slide-down-exit {\n transform: translateY(0);\n}\n.k-slide-down-exit-active {\n transform: translateY(-100%);\n transition: transform 300ms ease-in-out;\n}\n.k-slide-up-enter, .k-slide-up-appear {\n transform: translateY(100%);\n}\n.k-slide-up-enter-active, .k-slide-up-appear-active {\n transform: translateY(0);\n transition: transform 300ms ease-in-out;\n}\n.k-slide-up-exit {\n transform: translateY(0);\n}\n.k-slide-up-exit-active {\n transform: translateY(100%);\n transition: transform 300ms ease-in-out;\n}\n.k-slide-right-enter, .k-slide-right-appear {\n transform: translateX(-100%);\n}\n.k-slide-right-enter-active, .k-slide-right-appear-active {\n transform: translateX(0);\n transition: transform 300ms ease-in-out;\n}\n.k-slide-right-exit {\n transform: translateX(0);\n}\n.k-slide-right-exit-active {\n transform: translateX(-100%);\n transition: transform 300ms ease-in-out;\n}\n.k-slide-left-enter, .k-slide-left-appear {\n transform: translateX(100%);\n}\n.k-slide-left-enter-active, .k-slide-left-appear-active {\n transform: translateX(0);\n transition: transform 300ms ease-in-out;\n}\n.k-slide-left-exit {\n transform: translateX(0);\n}\n.k-slide-left-exit-active {\n transform: translateX(100%);\n transition: transform 300ms ease-in-out;\n}\n.k-reveal-vertical-enter, .k-reveal-vertical-appear {\n max-height: 0;\n}\n.k-reveal-vertical-enter-active, .k-reveal-vertical-appear-active {\n transition: max-height 300ms ease-in-out;\n}\n.k-reveal-vertical-exit-active {\n max-height: 0 !important;\n transition: max-height 300ms ease-in-out;\n}\n.k-reveal-horizontal-enter, .k-reveal-horizontal-appear {\n max-width: 0;\n}\n.k-reveal-horizontal-enter-active, .k-reveal-horizontal-appear-active {\n transition: max-width 300ms ease-in-out;\n}\n.k-reveal-horizontal-exit-active {\n max-width: 0 !important;\n transition: max-width 300ms ease-in-out;\n}\n.k-fx-end .k-fx-next,\n.k-fx-end .k-fx-current {\n transition: all 350ms ease-out;\n}\n.k-fx {\n position: relative;\n}\n.k-fx .k-fx-current {\n z-index: 0;\n}\n.k-fx .k-fx-next {\n z-index: 1;\n}\n.k-fx-hidden,\n.k-fx-hidden * {\n visibility: hidden !important;\n}\n.k-fx-reverse .k-fx-current {\n z-index: 1;\n}\n.k-fx-reverse .k-fx-next {\n z-index: 0;\n}\n.k-fx-zoom.k-fx-start .k-fx-next {\n transform: scale(0) !important;\n}\n.k-fx-zoom.k-fx-end .k-fx-next {\n transform: scale(1) !important;\n}\n.k-fx-zoom.k-fx-reverse.k-fx-start .k-fx-next, .k-fx-zoom.k-fx-reverse.k-fx-end .k-fx-next {\n transform: scale(1) !important;\n}\n.k-fx-zoom.k-fx-reverse.k-fx-start .k-fx-current {\n transform: scale(1) !important;\n}\n.k-fx-zoom.k-fx-reverse.k-fx-end .k-fx-current {\n transform: scale(0) !important;\n}\n.k-fx-fade.k-fx-start .k-fx-next {\n will-change: opacity;\n opacity: 0;\n}\n.k-fx-fade.k-fx-end .k-fx-next {\n opacity: 1;\n}\n.k-fx-fade.k-fx-reverse.k-fx-start .k-fx-current {\n will-change: opacity;\n opacity: 1;\n}\n.k-fx-fade.k-fx-reverse.k-fx-end .k-fx-current {\n opacity: 0;\n}\n.k-fx-slide.k-fx-end .k-fx-next .k-content, .k-fx-slide.k-fx-end .k-fx-next .k-header, .k-fx-slide.k-fx-end .k-fx-next .k-footer, .k-fx-slide.k-fx-end .k-fx-current .k-content, .k-fx-slide.k-fx-end .k-fx-current .k-header, .k-fx-slide.k-fx-end .k-fx-current .k-footer, .k-fx-slide.k-fx-end .k-fx-next .km-content, .k-fx-slide.k-fx-end .k-fx-next .km-header, .k-fx-slide.k-fx-end .k-fx-next .km-footer, .k-fx-slide.k-fx-end .k-fx-current .km-content, .k-fx-slide.k-fx-end .k-fx-current .km-header, .k-fx-slide.k-fx-end .k-fx-current .km-footer {\n transition: all 350ms ease-out;\n}\n.k-fx-slide.k-fx-start .k-fx-next .k-content, .k-fx-slide.k-fx-start .k-fx-next .km-content {\n will-change: transform;\n transform: translateX(100%);\n}\n.k-fx-slide.k-fx-start .k-fx-next .k-header, .k-fx-slide.k-fx-start .k-fx-next .k-footer, .k-fx-slide.k-fx-start .k-fx-next .km-header, .k-fx-slide.k-fx-start .k-fx-next .km-footer {\n will-change: opacity;\n opacity: 0;\n}\n.k-fx-slide.k-fx-end .k-fx-current .k-content, .k-fx-slide.k-fx-end .k-fx-current .km-content {\n transform: translateX(-100%);\n}\n.k-fx-slide.k-fx-end .k-fx-next .k-header, .k-fx-slide.k-fx-end .k-fx-next .k-footer, .k-fx-slide.k-fx-end .k-fx-next .km-header, .k-fx-slide.k-fx-end .k-fx-next .km-footer {\n opacity: 1;\n}\n.k-fx-slide.k-fx-reverse.k-fx-start .k-fx-current .k-content, .k-fx-slide.k-fx-reverse.k-fx-start .k-fx-current .km-content {\n will-change: transform;\n transform: translateX(0);\n}\n.k-fx-slide.k-fx-reverse.k-fx-end .k-fx-current .k-content, .k-fx-slide.k-fx-reverse.k-fx-end .k-fx-current .km-content {\n transform: translateX(100%);\n}\n.k-fx-slide.k-fx-reverse.k-fx-start .k-fx-next .k-content, .k-fx-slide.k-fx-reverse.k-fx-start .k-fx-next .km-content {\n transform: translateX(-100%);\n}\n.k-fx-slide.k-fx-reverse.k-fx-end .k-fx-next .k-content, .k-fx-slide.k-fx-reverse.k-fx-end .k-fx-next .km-content {\n transform: translateX(0);\n}\n.k-fx-slide.k-fx-reverse.k-fx-start .k-fx-current .k-header, .k-fx-slide.k-fx-reverse.k-fx-start .k-fx-current .k-footer, .k-fx-slide.k-fx-reverse.k-fx-start .k-fx-current .km-header, .k-fx-slide.k-fx-reverse.k-fx-start .k-fx-current .km-footer {\n will-change: opacity;\n opacity: 1;\n}\n.k-fx-slide.k-fx-reverse.k-fx-start .k-fx-next .k-header, .k-fx-slide.k-fx-reverse.k-fx-start .k-fx-next .k-footer, .k-fx-slide.k-fx-reverse.k-fx-start .k-fx-next .km-header, .k-fx-slide.k-fx-reverse.k-fx-start .k-fx-next .km-footer {\n opacity: 1;\n}\n.k-fx-slide.k-fx-reverse.k-fx-end .k-fx-current .k-header, .k-fx-slide.k-fx-reverse.k-fx-end .k-fx-current .k-footer, .k-fx-slide.k-fx-reverse.k-fx-end .k-fx-current .km-header, .k-fx-slide.k-fx-reverse.k-fx-end .k-fx-current .km-footer {\n opacity: 0;\n}\n.k-fx-slide.k-fx-reverse.k-fx-end .k-fx-next .k-header, .k-fx-slide.k-fx-reverse.k-fx-end .k-fx-next .k-footer, .k-fx-slide.k-fx-reverse.k-fx-end .k-fx-next .km-header, .k-fx-slide.k-fx-reverse.k-fx-end .k-fx-next .km-footer {\n opacity: 1;\n}\n.k-fx-slide.k-fx-right.k-fx-start .k-fx-next .k-content, .k-fx-slide.k-fx-right.k-fx-start .k-fx-next .km-content {\n transform: translateX(-100%);\n}\n.k-fx-slide.k-fx-right.k-fx-end .k-fx-current .k-content, .k-fx-slide.k-fx-right.k-fx-end .k-fx-current .km-content {\n transform: translateX(100%);\n}\n.k-fx-slide.k-fx-right.k-fx-reverse.k-fx-start .k-fx-current .k-content, .k-fx-slide.k-fx-right.k-fx-reverse.k-fx-start .k-fx-current .km-content {\n transform: translateX(0);\n}\n.k-fx-slide.k-fx-right.k-fx-reverse.k-fx-end .k-fx-current .k-content, .k-fx-slide.k-fx-right.k-fx-reverse.k-fx-end .k-fx-current .km-content {\n transform: translateX(-100%);\n}\n.k-fx-slide.k-fx-right.k-fx-reverse.k-fx-start .k-fx-next .k-content, .k-fx-slide.k-fx-right.k-fx-reverse.k-fx-start .k-fx-next .km-content {\n transform: translateX(100%);\n}\n.k-fx-slide.k-fx-right.k-fx-reverse.k-fx-end .k-fx-next .k-content, .k-fx-slide.k-fx-right.k-fx-reverse.k-fx-end .k-fx-next .km-content {\n transform: translateX(0%);\n}\n.k-fx-tile.k-fx-start .k-fx-next {\n will-change: transform;\n transform: translateX(100%);\n}\n.k-fx-tile.k-fx-end .k-fx-current {\n transform: translateX(-100%);\n}\n.k-fx-tile.k-fx-reverse.k-fx-start .k-fx-current {\n will-change: transform;\n transform: translateX(0);\n}\n.k-fx-tile.k-fx-reverse.k-fx-end .k-fx-current {\n transform: translateX(100%);\n}\n.k-fx-tile.k-fx-reverse.k-fx-start .k-fx-next {\n transform: translateX(-100%);\n}\n.k-fx-tile.k-fx-reverse.k-fx-end .k-fx-next {\n transform: translateX(0);\n}\n.k-fx-tile.k-fx-right.k-fx-start .k-fx-next {\n transform: translateX(-100%);\n}\n.k-fx-tile.k-fx-right.k-fx-end .k-fx-current {\n transform: translateX(100%);\n}\n.k-fx-tile.k-fx-right.k-fx-reverse.k-fx-start .k-fx-current {\n transform: translateX(0);\n}\n.k-fx-tile.k-fx-right.k-fx-reverse.k-fx-end .k-fx-current {\n transform: translateX(-100%);\n}\n.k-fx-tile.k-fx-right.k-fx-reverse.k-fx-start .k-fx-next {\n transform: translateX(100%);\n}\n.k-fx-tile.k-fx-right.k-fx-reverse.k-fx-end .k-fx-next {\n transform: translateX(0%);\n}\n.k-fx-tile.k-fx-start .k-fx-next {\n will-change: transform;\n transform: translateX(100%);\n}\n.k-fx-tile.k-fx-end .k-fx-current {\n transform: translateX(-100%);\n}\n.k-fx-tile.k-fx-reverse.k-fx-start .k-fx-current {\n will-change: transform;\n transform: translateX(0);\n}\n.k-fx-tile.k-fx-reverse.k-fx-end .k-fx-current {\n transform: translateX(100%);\n}\n.k-fx-tile.k-fx-reverse.k-fx-start .k-fx-next {\n transform: translateX(-100%);\n}\n.k-fx-tile.k-fx-reverse.k-fx-end .k-fx-next {\n transform: translateX(0);\n}\n.k-fx-tile.k-fx-right.k-fx-start .k-fx-next {\n transform: translateX(-100%);\n}\n.k-fx-tile.k-fx-right.k-fx-end .k-fx-current {\n transform: translateX(100%);\n}\n.k-fx-tile.k-fx-right.k-fx-reverse.k-fx-start .k-fx-current {\n transform: translateX(0);\n}\n.k-fx-tile.k-fx-right.k-fx-reverse.k-fx-end .k-fx-current {\n transform: translateX(-100%);\n}\n.k-fx-tile.k-fx-right.k-fx-reverse.k-fx-start .k-fx-next {\n transform: translateX(100%);\n}\n.k-fx-tile.k-fx-right.k-fx-reverse.k-fx-end .k-fx-next {\n transform: translateX(0%);\n}\n.k-fx.k-fx-overlay.k-fx-start .k-fx-next, .k-fx.k-fx-overlay.k-fx-left.k-fx-start .k-fx-next {\n will-change: transform;\n transform: translateX(100%);\n}\n.k-fx.k-fx-overlay.k-fx-right.k-fx-start .k-fx-next {\n transform: translateX(-100%);\n}\n.k-fx.k-fx-overlay.k-fx-up.k-fx-start .k-fx-next {\n transform: translateY(100%);\n}\n.k-fx.k-fx-overlay.k-fx-down.k-fx-start .k-fx-next {\n transform: translateY(-100%);\n}\n.k-fx.k-fx-overlay.k-fx-reverse.k-fx-start .k-fx-next {\n transform: none;\n}\n.k-fx.k-fx-overlay.k-fx-reverse.k-fx-start .k-fx-current {\n will-change: transform;\n transform: none;\n}\n.k-fx.k-fx-overlay.k-fx-reverse.k-fx-end .k-fx-current, .k-fx.k-fx-overlay.k-fx-reverse.k-fx-left.k-fx-end .k-fx-current {\n transform: translateX(100%);\n}\n.k-fx.k-fx-overlay.k-fx-reverse.k-fx-right.k-fx-end .k-fx-current {\n transform: translateX(-100%);\n}\n.k-fx.k-fx-overlay.k-fx-reverse.k-fx-up.k-fx-end .k-fx-current {\n transform: translateY(100%);\n}\n.k-fx.k-fx-overlay.k-fx-reverse.k-fx-down.k-fx-end .k-fx-current {\n transform: translateY(-100%);\n}\n.k-drag-clue {\n padding: 2px 4px;\n border-width: 1px;\n border-style: solid;\n font-size: 12px;\n white-space: nowrap;\n overflow: hidden;\n position: absolute;\n z-index: 20000;\n cursor: move;\n}\n.k-drag-status {\n margin-right: 0.4ex;\n}\n.k-drag-clue {\n border-color: #ff6358;\n color: #ffffff;\n background-color: #ff6358;\n}\n.k-reorder-cue {\n position: absolute;\n}\n.k-reorder-cue::before, .k-reorder-cue::after {\n content: \"\";\n width: 0;\n height: 0;\n border: 3px solid transparent;\n position: absolute;\n transform: translateX(-50%);\n}\n.k-reorder-cue::before {\n border-bottom-width: 0;\n border-top-color: currentColor;\n top: -4px;\n}\n.k-reorder-cue::after {\n border-top-width: 0;\n border-bottom-color: currentColor;\n bottom: -4px;\n}\n@font-face {\n font-family: \"WebComponentsIcons\";\n font-style: normal;\n font-weight: normal;\n src: url(data:font/ttf;base64,AAEAAAAMAIAAAwBAR1NVQgIk33cAAADMAABL3E9TLzIPEgdLAABMqAAAAGBjbWFwZYuCuQAATQgAAAC8Z2FzcAAAABAAAE3EAAAACGdseWby9fVhAABNzAABndRoZWFkGIbVEgAB66AAAAA2aGhlYQfABigAAevYAAAAJGhtdHgGA8XoAAHr/AAACZxsb2Nhkuj4YgAB9ZgAAATQbWF4cAKmAy4AAfpoAAAAIG5hbWX0BPU5AAH6iAAABOlwb3N0AAMAAAAB/3QAAAAgAAEAAAAKAB4ALAABbGF0bgAIAAQAAAAAAAAAAQAAAAFsaWdhAAgAAAABAAAAAQAEAAQAAAABAAoAAAABADwAGwB2C0oPXBX8GLAZoiDkIs4k1iegKaYqii1cL7IwBjA+NVw1yDmAP0BHykiSSZhKjErCSxhLmAABABsADAANAA4ADwAQABEAEgATABQAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAiACMAJAAlAmYAUgCmALIAzgDkAO4BBgEmAUgBXgGCAZIBpAHAAeICAgIiAjICSAJgAnoCogKyAsgC4gMCAyADPgNOA2YDfAOiA84D+AQiBEQEbASSBLgE0ATuBQoFJgVKBWwFlAW6BdoF9AYKBigGQgZQBlgGfgaiBrYG0gcSB1YHlAfWCAAIKAhACFoIhgiwCMoI8gkYCS4JSgl2CaAJugnmChAKKgpaCo4KsAq4AMAABQAgAA8AFAAaAGkADQAfAB8ADAAOABMAGAAQABkAHwAEAAkACgBoAAoAHwAfAAwADgATABgAEAAZAB8CDgAEAB4ADgAjAEYACwAdAB0AGgAiAB4ABAAeACIADAAbAEQADwAdAB0AGgAiAB4ABAAdABAAHgAUACUAFAAZABIANwAQAB0AHQAaACIAHgAEABkAGgAEAA4AEwAMABkAEgAQADYACgAdAB0AGgAiAB4ABAAWABsAFABFABEAHQAdABoAIgAeAAQADwAUABgAEAAZAB4AFAAaABkAHgAtAAcAHQAdABoAIgAEACIAPQAIAB0AHQAaACIABAAgABsAMgANAB0AHQAaACIABAAeABAAEAAWAAQAIAAbADMAEAAdAB0AGgAiAAQAHgAQABAAFgAEAB0AFAASABMAHwA1AA8AHQAdABoAIgAEAB4AEAAQABYABAAXABAAEQAfADQADwAdAB0AGgAiAAQAHgAQABAAFgAEAA8AGgAiABkALAAHAB0AHQAaACIABAAeAEMACgAdAB0AGgAiAAQAHQAaABoAHwA+AAsAHQAdABoAIgAEAB0AFAASABMAHwBCAAwAHQAdABoAIgAEABsADAAdABAAGQAfADgAEwAdAB0AGgAiAAQAGgAhABAAHQARABcAGgAiAAQADwAaACIAGQAqAAcAHQAdABoAIgAEABkAQAAKAB0AHQAaACIABAAXABAAEQAfAC4ADAAdAB0AGgAiAAQAEAAZAA8ABAAgABsALwAPAB0AHQAaACIABAAQABkADwAEAB0AFAASABMAHwAxAA4AHQAdABoAIgAEABAAGQAPAAQAFwAQABEAHwAwAA4AHQAdABoAIgAEABAAGQAPAAQADwAaACIAGQArAAcAHQAdABoAIgAEABAAQQALAB0AHQAaACIABAAPAB0AFAAXABcAPwAKAB0AHQAaACIABAAPABoAIgAZADIAEgAdAB0AGgAiAAQADwAaACAADQAXABAABAALAAUABAAgABsAMwAVAB0AHQAaACIABAAPABoAIAANABcAEAAEAAsABQAEAB0AFAASABMAHwA1ABQAHQAdABoAIgAEAA8AGgAgAA0AFwAQAAQACwAFAAQAFwAQABEAHwA0ABQAHQAdABoAIgAEAA8AGgAgAA0AFwAQAAQACwAFAAQADwAaACIAGQA5ABAAHQAdABoAIgAEAA4AEwAQACEAHQAaABkABAAgABsAOgATAB0AHQAaACIABAAOABMAEAAhAB0AGgAZAAQAHQAUABIAEwAfADwAEgAdAB0AGgAiAAQADgATABAAIQAdABoAGQAEABcAEAARAB8AOwASAB0AHQAaACIABAAOABMAEAAhAB0AGgAZAAQADwAaACIAGQAqAAsAHQAdABoAIgAEAAsABQAEACAAGwArAA4AHQAdABoAIgAEAAsABQAEAB0AFAASABMAHwAtAA0AHQAdABoAIgAEAAsABQAEABcAEAARAB8ALAANAB0AHQAaACIABAALAAUABAAPABoAIgAZACYAEQAdAB0AGgAiAAQACQAKAAQAIAAbAAQAHQAUABIAEwAfACkAEAAdAB0AGgAiAAQACQAKAAQAIAAbAAQAFwAQABEAHwAnABMAHQAdABoAIgAEAAkACgAEAA8AGgAiABkABAAdABQAEgATAB8AKAASAB0AHQAaACIABAAJAAoABAAPABoAIgAZAAQAFwAQABEAHwJPAA8AHQAQAAwABAAeAB8ADAAOABYAEAAPAAYABQAFAk4ADAAdABAADAAEAB4AHwAMAA4AFgAQAA8CUAAKAB0AEAAMAAQAHQAMABkAEgAQAk0ADgAdABAADAAEAA4AFwAgAB4AHwAQAB0AEAAPAY0ADAAbABsAFwAkAAQAEQAaAB0AGAAMAB8BnAAGABkADgATABoAHQEzAAMAFwAXARgAEgAXABQAEgAZAAQAHwAaABsABAAQABcAEAAYABAAGQAfAB4A9AARABcAFAASABkABAAfABoAGwAEABAAFwAQABgAEAAZAB8BQQAJABcAFAASABkABAAfABoAGwD/AA0AFwAUABIAGQAEAB8AGgAEABIAHQAUAA8BGwAfABcAFAASABkABAAeAB8AHQAQAB8ADgATAAQAEAAXABAAGAAQABkAHwAeAAQAIQAQAB0AHwAUAA4ADAAXARYAIQAXABQAEgAZAAQAHgAfAB0AEAAfAA4AEwAEABAAFwAQABgAEAAZAB8AHgAEABMAGgAdABQAJQAaABkAHwAMABcBEgAeABcAFAASABkABAAeAB8AHQAQAB8ADgATAAQAEAAXABAAGAAQABkAHwAEACEAEAAdAB8AFAAOAAwAFwERACAAFwAUABIAGQAEAB4AHwAdABAAHwAOABMABAAQABcAEAAYABAAGQAfAAQAEwAaAB0AFAAlABoAGQAfAAwAFwEVABQAFwAUABIAGQAEAB0AFAASABMAHwAEABAAFwAQABgAEAAZAB8AHgDzABMAFwAUABIAGQAEAB0AFAASABMAHwAEABAAFwAQABgAEAAZAB8BRgALABcAFAASABkABAAdABQAEgATAB8BSAAMABcAFAASABkABAAdABAAGAAaACEAEAEZABUAFwAUABIAGQAEABgAFAAPAA8AFwAQAAQAEAAXABAAGAAQABkAHwAeAPUAFAAXABQAEgAZAAQAGAAUAA8ADwAXABAABAAQABcAEAAYABAAGQAfAUIADAAXABQAEgAZAAQAGAAUAA8ADwAXABABEwATABcAFAASABkABAAXABAAEQAfAAQAEAAXABAAGAAQABkAHwAeAPEAEgAXABQAEgAZAAQAFwAQABEAHwAEABAAFwAQABgAEAAZAB8BRAAKABcAFAASABkABAAXABAAEQAfAUcADQAXABQAEgAZAAQAFQAgAB4AHwAUABEAJAEUABUAFwAUABIAGQAEAA4AEAAZAB8AEAAdAAQAEAAXABAAGAAQABkAHwAeAPIAFAAXABQAEgAZAAQADgAQABkAHwAQAB0ABAAQABcAEAAYABAAGQAfAUUADAAXABQAEgAZAAQADgAQABkAHwAQAB0BGgAVABcAFAASABkABAANABoAHwAfABoAGAAEABAAFwAQABgAEAAZAB8AHgD2ABQAFwAUABIAGQAEAA0AGgAfAB8AGgAYAAQAEAAXABAAGAAQABkAHwFDAAwAFwAUABIAGQAEAA0AGgAfAB8AGgAYARwAFwAXABQAEgAZAAQADQAMAB4AEAAXABQAGQAQAAQAIQAQAB0AHwAUAA4ADAAXARcAGQAXABQAEgAZAAQADQAMAB4AEAAXABQAGQAQAAQAEwAaAB0AFAAlABoAGQAfAAwAFwIBABAAEgASAB0AEAASAAwAHwAQAAQAEQAUABAAFwAPAB4AeQADAA8ADwCqAA0ADgAOABAAHgAeABQADQAUABcAFAAfACQAJwBQAF4AbAB4AKAAxADkARQBSAFmAX4BlAGuAcIB2gH2AgQCJgI4AkICTAJkAnQCfgKWAqYCxgL2AxYDJgNEA1wDcAOMA5QDtgPaA/AECgFkAAYAIAAfAB8AGgAZAl4ABgAgAA0ADQAXABAA4AAFAB0AIAAeABMA5AATAB0AFAASABMAHwAZABAAHgAeAAQADgAaABkAHwAdAAwAHgAfAV8AEQAaAB0ADwAQAB0AHgAEAB4AEwAaACIABAATABQADwAQAVYADwAaAB0ADwAQAB0AHgAEABoAIAAfAB4AFAAPABABWQAXABoAHQAPABAAHQAeAAQAFAAZAB4AFAAPABAABAAhABAAHQAfABQADgAMABcBWAAZABoAHQAPABAAHQAeAAQAFAAZAB4AFAAPABAABAATABoAHQAUACUAGgAZAB8ADAAXAVcADgAaAB0ADwAQAB0AHgAEABQAGQAeABQADwAQAVUACwAaAB0ADwAQAB0AHgAEAAwAFwAXAVoACgAaAB0ADwAQAB0ABAAfABoAGwFdAAwAGgAdAA8AEAAdAAQAHQAUABIAEwAfAV4ACQAaAB0ADwAQAB0ABAAZABoBXAALABoAHQAPABAAHQAEABcAEAARAB8BWwANABoAHQAPABAAHQAEAA0AGgAfAB8AGgAYAWAABgAaAB0ADwAQAB0AxgAQABoAGgAWABgADAAdABYABAAaACAAHwAXABQAGQAQAMcACAAaABoAFgAYAAwAHQAWASgABAAaABcADwDpAAQAFwAgAB0B0wALABcAGgASABIAEAAdAAQADQAaACMB0gAHABcAGgASABIAEAAdAM8ABAAQABcAFwHzAAsAEAATAAwAGQAOABAABAANABoAIwHyAAcAEAATAAwAGQAOABAArQAPAAwAHQAOABoADwAQAAQAHgAOAAwAGQAZABAAHQCxABcADAAdAA4AGgAPABAABAAcAB0ABAAOABoADwAQAAQAHgAOAAwAGQAZABAAHQCrAA8ADAAdAA4AGgAPABAABAAaACAAHwAXABQAGQAQAKwABwAMAB0ADgAaAA8AEAJLAA4ADAAdAAQAHgAfAAwADgAWABAADwAGAAUABQJKAAsADAAdAAQAHgAfAAwADgAWABAADwJMAAkADAAdAAQAHQAMABkAEgAQAkkADQAMAB0ABAAOABcAIAAeAB8AEAAdABAADwJgAAMADAAdAPAAEAAMAA4AFgAiAAwAHQAPAAQAEAAXABAAGAAQABkAHwD9ABEADAAOABYAEgAdABoAIAAZAA8ABAAdABAAGAAaACEAEADiAAoADAAOABYAEgAdABoAIAAZAA8A7gAMAAwADgAWAAQAEAAXABAAGAAQABkAHwIPAAMADAAOAEUAjACUAKwAyADWAOQA9gD+AQgBEAEeASQBNgFAAVgBYgGGAaoBvgHMAfQCEgIiAjICVgJ0Ao4CqgLMAuQC/AMUAywDPgNIA1ADagN2A5IDrAO4A8QD1APeA/IEAAQWBDoEXARwBJIEpATABNoE5gUGBTQFZgV+BaoF2gXwBfoGFAYyBk4GXAZ4BooBhQADACAAHwF3AAsAIAAeAB8AGgAYAAQAFAAOABoAGQG9AA0AIAAeAB8AGgAYAAQAEQAaAB0AGAAMAB8AlQAGACAAHgAfABoAGAC0AAYAIAAdAB4AGgAdAbsACAAgAB0AHQAQABkADgAkAgUAAwAeACECEgAEAB4AHgAIAhUAAwAeAB4CGAAGAB4AGwAdABoAFQIaAAIAHgHDAAgAHQAaAB4AHgAfAAwADQDZAAQAHQAaABsBjwALABoAGwAkAAQAEQAaAB0AGAAMAB8BhAAEABoAGwAkAS4AEQAaABkAIQAQAB0AHwAEACAAGwAbABAAHQAOAAwAHgAQAS0AEQAaABkAIQAQAB0AHwAEABcAGgAiABAAHQAOAAwAHgAQAJ8ACQAaABkAGQAQAA4AHwAaAB0CDQAGABoAGQARABQAEgF+ABMAGgAYABgAEAAZAB8AHgAEAB0AEAAYABoAIQAQAAQADAAXABcBfQAOABoAGAAYABAAGQAfAAQAHQAQABgAGgAhABABfAAHABoAGAAYABAAGQAfAFMABwAaABcAIAAYABkAHgJHABEAGgAXACAAGAAZAAQAHgAfAAwADgAWABAADwAGAAUABQJGAA4AGgAXACAAGAAZAAQAHgAfAAwADgAWABAADwJIAAwAGgAXACAAGAAZAAQAHQAMABkAEgAQAbIADQAaABcAIAAYABkABAARAB0AEAAQACUAEAJFABAAGgAXACAAGAAZAAQADgAXACAAHgAfABAAHQAQAA8AKAALABoAFwAXAAwAGwAeABAABAAeACIAJwALABoAFwAXAAwAGwAeABAABAAeABAAKQALABoAFwAXAAwAGwAeABAABAAZACIAJgALABoAFwAXAAwAGwAeABAABAAZABAAJwAIABoAFwAXAAwAGwAeABAAlgAEABoAEgAeAJUAAwAaABIBYgAMABoADwAQAAQAHgAZABQAGwAbABAAHwIdAAUAFwAaACAADwB3AA0AFwAaAB4AEAAEABoAIAAfABcAFAAZABAAeAAMABcAGgAeABAABAAOABQAHQAOABcAEAB2AAUAFwAaAB4AEABiAAUAFwAaAA4AFgBpAAcAFwAUABsABAAJAAoAaAAEABcAFAAbAY4ACQAXABAADAAdAAQADgAeAB4AzAAGABQAHQAOABcAEAJlAAoAEwAaAB0AGgAbABcAEAAfABMAdAARABMAEAAOABYAGAAMAB0AFgAEABoAIAAfABcAFAAZABAAdQAQABMAEAAOABYAGAAMAB0AFgAEAA4AFAAdAA4AFwAQAHMACQATABAADgAWABgADAAdABYAyQAQABMAEAAOABYADQAaACMABAAOABMAEAAOABYAEAAPAMgACAATABAADgAWAA0AGgAjAHQADQATABAADgAWAAQAGgAgAB8AFwAUABkAEAB1AAwAEwAQAA4AFgAEAA4AFAAdAA4AFwAQAHMABQATABAADgAWAW8ADwATAAwAGQASABAABAAYAAwAGQAgAAwAFwAXACQBrAAWABAAFwAXAB4ABAAYABAAHQASABAABAAhABAAHQAfABQADgAMABcAFwAkAasAGAAQABcAFwAeAAQAGAAQAB0AEgAQAAQAEwAaAB0AFAAlABoAGQAfAAwAFwAXACQBqgALABAAFwAXAB4ABAAYABAAHQASABABrgAVABAAFwAXAAQAHgAbABcAFAAfAAQAIQAQAB0AHwAUAA4ADAAXABcAJAGtABcAEAAXABcABAAeABsAFwAUAB8ABAATABoAHQAUACUAGgAZAB8ADAAXABcAJABIAAoADAAfABAAEgAaAB0AFAAlABAAngAEAAwAHQAfAl8ADAAMABkADwAXABAABAAeAB8AFAAOABYAcQAOAAwAGQAOABAAFwAEABoAIAAfABcAFAAZABAAcgANAAwAGQAOABAAFwAEAA4AFAAdAA4AFwAQAHAABgAMABkADgAQABcBZgANAAwAFwAQABkADwAMAB0ABAAPAAwAHwAQAGMACAAMABcAEAAZAA8ADAAdAJ0ACgAMABcADgAgABcADAAfABoAHQAcADoASgBkAHYAkgCkALYAxADmAO4A/AEEARoBLAE2AVQBcgGOAaIBsAHkAhwCPgJgAnIChAKYAqoA4gAHAB0AGgAbABcAEAAfAfUADAAdABQADQANAA0AFwAQAAQADQAaACMB9AAIAB0AFAANAA0ADQAXABAARwANAB0ADAASAAQADAAZAA8ABAAPAB0AGgAbAI0ACAAaACIAGQAXABoADAAPAlgACAAaACAAEgATABkAIAAfAbsABgAaABcAFwAMAB0BdgAQABoADgAgABgAEAAZAB8ABAAYAAwAGQAMABIAEAAdAgcAAwAaAA4AqQAGABQAIQAUAA8AEAEyAAMAFAAhARAACgAUABgAEAAZAB8AFAAaABkAHgHXAAgAFAASABIABAANABoAIwHWAAQAFAASABIBeAAOABQADgAfABQAGgAZAAwAHQAkAAQADAAPAA8CJwAOABAAHwAMABQAFwAEAB4AEAAOAB8AFAAaABkB1QANABAAFwAUAA4AFAAaACAAHgAEAA0AGgAjAdQACQAQABcAFAAOABQAGgAgAB4AZwAGABAAFwAQAB8AEAEKABkAEAAOAB0AEAAMAB4AEAAEACEAEAAdAB8AFAAOAAwAFwAEAB4AGwAMAA4AFAAZABIBBgAbABAADgAdABAADAAeABAABAATABoAHQAUACUAGgAZAB8ADAAXAAQAHgAbAAwADgAUABkAEgG+ABAAEAAOABQAGAAMABcABAAUABkADgAdABAADAAeABABvwAQABAADgAUABgADAAXAAQADwAQAA4AHQAQAAwAHgAQAi4ACAAMAB8ADAAEACIAEAANAi0ACAAMAB8ADAAEAB4AHAAXAiwACQAMAB8ADAAEABUAHgAaABkCKwAIAAwAHwAMAAQADgAeACECIAAEAAwAHwAMAA4AHgA0ADwASgBSAGYAcgB+AIoAogCyAMYA0gDoAQwACgAkABAADwAdABoAGwAbABAAHQCYAAMAJAAQACsABgAjABsADAAZAA8CFwADACMAEADSAAkAIwAOABAAGwAfABQAGgAZAgYABQAjAA4AEAAXAHcABQAdAB0AGgAdAKUABQAcACAADAAXAdkACwAZACEAEAAXABoAGwAEAA0AGgAjAdgABwAZACEAEAAXABoAGwHZAAkAGAAMABQAFwAEAA0AGgAjAdgABQAYAAwAFAAXAW0ACgAPABQAHwAEAB8AGgAaABcAHgBmAAQADwAUAB8ASQCUALQAygDsAQQBIAE2AVYBZgF8AaABugHEAeYB+gISAiYCPgJWAmwCegKIAqQCxALgAuwDDgMYA0ADZgN6A5QDtgPiA/AD+gQcBDQEQARSBGQEeASOBKoEygTcBO4FEAU0BUYFWAVqBYAFoAW2BcwF4gX0BhQGKAY6BlIGZAZ6Bo4GoAaqBsIG5Ab2Bw4HFgcwAPwADwAgABcAFwAeAA4AHQAQABAAGQAEABAAIwAUAB8A+wAKACAAFwAXAB4ADgAdABAAEAAZAPwAEAAgABcAFwAEAB4ADgAdABAAEAAZAAQAEAAjABQAHwD7AAsAIAAXABcABAAeAA4AHQAQABAAGQDtAA0AHQAaABkAHwAEABAAFwAQABgAEAAZAB8AMwAKABoAHQAiAAwAHQAPAAQAHgAYAO8ADwAaAB0AIgAMAB0ADwAEABAAFwAQABgAEAAZAB8AuQAHABoAHQAiAAwAHQAPAbgACgAaAB0AGAAgABcADAAEABEAIwGVABEAGgAdABgADAAfAAQADgAaAA8AEAAEAA0AFwAaAA4AFgFhAAwAGgAdABgABAAQABcAEAAYABAAGQAfAWAABAAaAB0AGAEsABAAGgAdABAAEgAdABoAIAAZAA8ABAAOABoAFwAaAB0BwAAJABoAGQAfAAQAHgAUACUAEAErAAsAGgAZAB8ABAARAAwAGAAUABcAJAH/AAkAGgAXAA8AEAAdAAQAIAAbAf0ACwAaABcADwAQAB0ABAAaABsAEAAZAgAACwAaABcADwAQAB0ABAAYABoAHQAQAf4ACgAaABcADwAQAB0ABAAMAA8ADwH8AAYAGgAXAA8AEAAdAGQABgAXABoAGwAbACQA3AANABcAFAAbAAQAIQAQAB0AHwAUAA4ADAAXANsADwAXABQAGwAEABMAGgAdABQAJQAaABkAHwAMABcBggANABcADAAeABMABAAYAAwAGQAMABIAEAAdAgwABQAXAAwAHgATAYMAEAAUABkADwAEAAwAGQAPAAQAHQAQABsAFwAMAA4AEAGDAAQAFAAZAA8AiAATABQAFwAfABAAHQAEAB4AGgAdAB8ABAAPABAAHgAOAAQAHgAYAIcAEgAUABcAHwAQAB0ABAAeABoAHQAfAAQADAAeAA4ABAAeABgAhgAJABQAFwAfABAAHQAEAB4AGACFAAwAFAAXAB8AEAAdAAQADgAXABAADAAdAIoAEAAUABcAHwAQAB0ABAAMAA8ADwAEABIAHQAaACAAGwCJABUAFAAXAB8AEAAdAAQADAAPAA8ABAAQACMAGwAdABAAHgAeABQAGgAZAIQABgAUABcAHwAQAB0CEQAEABQAFwAYAkEAEAAUABcAEAAeAAQAIQAMABcAFAAPAAwAHwAUABoAGQJBAAsAFAAXABAAHgAEABAAHQAdABoAHQGEAAUAFAAXABAAHgIQAAgAFAAXABAABAAlABQAGwIGAAgAFAAXABAABAAjABcAHgIHAAkAFAAXABAABAAiABoAHQAPAjcACgAUABcAEAAEACEAFAAPABAAGgICAA0AFAAXABAABAAhABAAHQAfABQADgAMABcCQAAPABQAFwAQAAQAIQAMABcAFAAPAAwAHwAUABoAGQIEAAgAFAAXABAABAAfACMAHwILAAgAFAAXABAABAAbAB4ADwI9ABAAFAAXABAABAAbAB0AGgASAB0ADAAYABgAFAAZABICOgARABQAFwAQAAQAGwAdABAAHgAQABkAHwAMAB8AFAAaABkCCQAIABQAFwAQAAQAGwAbAB8CCgAIABQAFwAQAAQAGwAPABECCAAIABQAFwAQAAQAGAAPAA0COQAKABQAFwAQAAQAFAAYAAwAEgAQAh4ADwAUABcAEAAEABMAGgAdABQAJQAaABkAHwAMABcCDAAKABQAFwAQAAQAEQAXAAwAHgATAgYACgAUABcAEAAEABAAIwAOABAAFwJAAAoAFAAXABAABAAQAB0AHQAaAB0CBwAIABQAFwAQAAQADwAaAA4CPAAPABQAFwAQAAQADwAUAB4ADgAEABQAGAAMABIAEAI7AAkAFAAXABAABAAPAAwAHwAMAgUACAAUABcAEAAEAA4AHgAhAg0ACwAUABcAEAAEAA4AGgAZABEAFAASAg8ACAAUABcAEAAEAA0ADAAOAjgACgAUABcAEAAEAAwAIAAPABQAGgIOAAkAFAAXABAABAAMAB4ADgAjAgMACAAUABcAEAAEAAwADwAPAgIABAAUABcAEAIAAAsAFAAQABcADwAeAAQAGAAaAB0AEADEABAADAAhABoAHQAUAB8AEAAEABoAIAAfABcAFAAZABAAxQAIAAwAIQAaAB0AFAAfABAAxAALAAwAIQAEABoAIAAfABcAFAAZABAAxQADAAwAIQHbAAwADAAOABAADQAaABoAFgAEAA0AGgAjAdoACAAMAA4AEAANABoAGgAWABQAKgBGAHAAmgC8ANAA3AD0AP4BEgE0AUABYAF4AY4BnAG4AcQB0AHaAikADQAdABoAIAAbAAQAHgAQAA4AHwAUABoAGQIjABQAHQAaACAAGwAEABMAEAAMAA8AEAAdAAQAHgAQAA4AHwAUABoAGQIkABQAHQAaACAAGwAEABEAGgAaAB8AEAAdAAQAHgAQAA4AHwAUABoAGQIvABAAHQAaACAAGwAEAA4AGgAXABcAEAAOAB8AFAAaABkBZwAJAB0AGgAgABsABAANABoAIwBLAAUAHQAaACAAGwBKAAsAHQAUAA8ABAAXAAwAJAAaACAAHwBJAAQAHQAUAA8A6AAJAB0AEAAkAB4ADgAMABcAEACoABAAHQAQAAwAHwAQAB0ABAAaAB0ABAAQABwAIAAMABcCRAAFAB0ADAAbABMB3wAPABoAGgASABcAEAAEABsAFwAgAB4ABAANABoAIwHeAAsAGgAaABIAFwAQAAQAGwAXACAAHgHdAAoAGgAaABIAFwAQAAQADQAaACMB3AAGABoAGgASABcAEAHJAA0AFwAaAA0AEAAEABoAIAAfABcAFAAZABABygAFABcAGgANABAAlgAFABAADAAdAB4AlQAEABAADAAdAP4ABwAMABcAFwAQAB0AJAAYADIAVAB4AJYAxADmARQBNAFUAWgBdAF+AYgBkgGuAboBwAHaAeQB6gHwAfYB/AICAGsAEAAkABsAEAAdABcAFAAZABYABAAdABAAGAAaACEAEACQABEAJAAbABAAHQAXABQAGQAWAAQAGgAbABAAGQAEAB4AGACPAA4AJAAbABAAHQAXABQAGQAWAAQAGgAbABAAGQGYABYAJAAbABAAHQAXABQAGQAWAAQAFwAUABIAEwAfAAQADwAUAAwAFwAaABIBmAAQACQAGwAQAB0AFwAUABkAFgAEABQAGQAeABAAHQAfAZoAFgAkABsAEAAdABcAFAAZABYABAASABcAGgANABAABAAdABAAGAAaACEAEAGZAA8AJAAbABAAHQAXABQAGQAWAAQAEgAXABoADQAQAZsADwAkABsAEAAdABcAFAAZABYABAAQABgADAAUABcAagAJACQAGwAQAB0AFwAUABkAFgITAAUAHwAYABcACgIUAAQAHwAYABcAWgAEABoAGAAQANEABAAQABcAGwDEAA0AEAAMAB0AHwAEABoAIAAfABcAFAAZABAAxQAFABAADAAdAB8AvQACAA8ATQAMAAwAGQAPABcAEAAdAAQADwAdAAwAEgCzAAQADAAZAA8BOQACAAsBOAACAAoBNwACAAkBNgACAAgBNQACAAcBNAACAAYAGQA0AEIAXgByAIgApAC8ANgA7AEEAQ4BLgFOAVwBkAHIAdQB4gH8Ah4CRAJeAngCjgK+ASkABgAfAAwAFwAUAA4A5gANABkAIQAQAB0AHwAEAA4AGgAXABoAHQAeAT4ACQAZAB4AEAAdAB8ABAAgABsBPgAKABkAHgAQAB0AHwAEAB8AGgAbAT8ADQAZAB4AEAAdAB8ABAAYABQADwAPABcAEAFAAAsAGQAeABAAHQAfAAQADwAaACIAGQFAAA0AGQAeABAAHQAfAAQADQAaAB8AHwAaABgCNgAJABkAEwAQAB0AFAAfABAADwDQAAsAGQARABoAHQAYAAwAHwAUABoAGQDQAAQAGQARABoBPAAPABkADwAQABkAHwAEABQAGQAOAB0AEAAMAB4AEAE9AA8AGQAPABAAGQAfAAQADwAQAA4AHQAQAAwAHgAQATwABgAZAA8AEAAZAB8BCQAZABkADgAdABAADAAeABAABAAhABAAHQAfABQADgAMABcABAAeABsADAAOABQAGQASAQUAGwAZAA4AHQAQAAwAHgAQAAQAEwAaAB0AFAAlABoAGQAfAAwAFwAEAB4AGwAMAA4AFAAZABIB0QAFABkADQAaACMA/gAGABgADAASABAAHgDYAAwAGAAMABIAEAAEAB0AEAAeABQAJQAQAXsAEAAYAAwAEgAQAAQAGAAMABsABAAQAA8AFAAfABoAHQF5ABIAGAAMABIAEAAEABcAFAASABMAHwAEAA8AFAAMABcAGgASAXkADAAYAAwAEgAQAAQAFAAZAB4AEAAdAB8A1QAMABgADAASABAABAAQACMAGwAaAB0AHwF6AAoAGAAMABIAEAAEABAADwAUAB8BwQAXABgADAASABAABAAMAA0AHgAaABcAIAAfABAABAAbABoAHgAUAB8AFAAaABkA1AAFABgADAASABAACwAYAEYAeACiANABAAE0AWYBnAHMAgABIgAWACAAHgAfABQAEQAkAAQAHgAfAAwAHQAfAAQAIQAQAB0AHwAUAA4ADAAXAR0AGAAgAB4AHwAUABEAJAAEAB4AHwAMAB0AHwAEABMAGgAdABQAJQAaABkAHwAMABcBJAAUACAAHgAfABQAEQAkAAQAEAAZAA8ABAAhABAAHQAfABQADgAMABcBHwAWACAAHgAfABQAEQAkAAQAEAAZAA8ABAATABoAHQAUACUAGgAZAB8ADAAXASMAFwAgAB4AHwAUABEAJAAEAA4AEAAZAB8AEAAdAAQAIQAQAB0AHwAUAA4ADAAXAR4AGQAgAB4AHwAUABEAJAAEAA4AEAAZAB8AEAAdAAQAEwAaAB0AFAAlABoAGQAfAAwAFwElABgAIAAeAB8AFAARACQABAANABAAHwAiABAAEAAZAAQAIQAQAB0AHwAUAA4ADAAXASAAGgAgAB4AHwAUABEAJAAEAA0AEAAfACIAEAAQABkABAATABoAHQAUACUAGgAZAB8ADAAXASYAFwAgAB4AHwAUABEAJAAEAAwAHQAaACAAGQAPAAQAIQAQAB0AHwAUAA4ADAAXASEAGQAgAB4AHwAUABEAJAAEAAwAHQAaACAAGQAPAAQAEwAaAB0AFAAlABoAGQAfAAwAFwIWAAIAHgAHABAANgBWAHwAnAC8ANwAKgASABsAFAAEAB8AHQAQABkADwAEABQAGQAOAB0AEAAMAB4AEAB8AA8AGwAUAAQAHwAdABAAGQAPAAQAEAAcACAADAAXACwAEgAbABQABAAfAB0AEAAZAA8ABAAPABAADgAdABAADAAeABAApAAPABsAFAAEAB4AHwAMAB8AIAAeAAQAGgAbABAAGQCjAA8AGwAUAAQAHgAfAAwAHwAgAB4ABAATABoAFwAPAKIADwAbABQABAAeAB8ADAAfACAAHgAEAA8AEAAZACQANgADABsAFAAbADgARgBSAFwAegCUALAAzADmAPgBFAE0AUABcAGQAboB1AHuAfgCDgIcAjgCVgJ+ApoCtgLEAIwABgAaABIAGgAgAB8AiwAFABoAEgAUABkAbgAEABoADgAWATsADgAUAB4AHwAEACAAGQAaAB0ADwAQAB0AEAAPAToADAAUAB4AHwAEABoAHQAPABAAHQAQAA8BOgANABQAHgAfAAQAGQAgABgADQAQAB0AEAAPATsADQAUAB4AHwAEAA0AIAAXABcAEAAfABAADwHhAAwAFAAZABYAEAAPABQAGQAEAA0AGgAjAeAACAAUABkAFgAQAA8AFAAZAGwADQAUABkAFgAEACEAEAAdAB8AFAAOAAwAFwBqAA8AFAAZABYABAATABoAHQAUACUAGgAZAB8ADAAXAlEABQAUABkAEAAGAlYAFwAUABkAEAAEAB4AHwAMAA4AFgAQAA8ABgAFAAUABAAYAAwAHQAWABAAHQAeAlMADwAUABkAEAAEAB4AHwAMAA4AFgAQAA8ABgAFAAUCVQAUABQAGQAQAAQAHgAfAAwADgAWABAADwAEABgADAAdABYAEAAdAB4CUgAMABQAGQAQAAQAHgAfAAwADgAWABAADwJUAAwAFAAZABAABAAYAAwAHQAWABAAHQAeAOMABAAUABkAEAHZAAoAEAAfAB8AEAAdAAQADQAaACMB2AAGABAAHwAfABAAHQCnAA0AEAAeAB4ABAAaAB0ABAAQABwAIAAMABcAUgAOAAwAJAAaACAAHwAEAB4AHwAMAA4AFgAQAA8AUQATAAwAJAAaACAAHwAEAB4AFAAPABAABAANACQABAAeABQADwAQAFAADQAMACQAGgAgAB8ABAAHAAQADQAkAAQABwBPAA0ADAAkABoAIAAfAAQABgAEAA0AJAAEAAkATgAGAAwAJAAaACAAHwCRAAYADAAgABkADgATABUALABEAFQAXgB6AJoAuADGANgA9AEOARoBJAFAAUgBbAGCAboB2gH4AhoB4wALACQAHgAbAAwADgAQAAQADQAaACMB4gAHACQAHgAbAAwADgAQAJwABAAaACEAEABXAA0AGgAdABAABAAhABAAHQAfABQADgAMABcAWAAPABoAHQAQAAQAEwAaAB0AFAAlABoAGQAfAAwAFwGXAA4AGgAPACAAFwAQAAQAGAAMABkADAASABAAHQDaAAYAFAAdAB0AGgAdAKEACAAUABkAIAAeAAQAHgAYAH0ADQAUABkAIAAeAAQAGgAgAB8AFwAUABkAEAB+AAwAFAAZACAAHgAEAA4AFAAdAA4AFwAQAHwABQAUABkAIAAeAFYABAAQABkAIAGAAA0AEAAPABQADAAEABgADAAZAAwAEgAQAB0CCAADAA8ADQHMABEADAAdABYAEAAdAAQAGwAUABkABAAfAAwAHQASABAAHwHLAAoADAAdABYAEAAdAAQAGwAUABkBCAAbAAwAFgAQAAQAIQAQAB0AHwAUAA4ADAAXAAQAHgAbAAwADgAUABkAEgAEABAAHAAgAAwAFwECAA8ADAAWABAABAAeAAwAGAAQAAQAIgAUAA8AHwATAQEADgAMABYAEAAEAB4ADAAYABAABAAeABQAJQAQAQMAEAAMABYAEAAEAB4ADAAYABAABAATABAAFAASABMAHwEEAB0ADAAWABAABAATABoAHQAUACUAGgAZAB8ADAAXAAQAHgAbAAwADgAUABkAEgAEABAAHAAgAAwAFwADAAgAIgA2AM8ADAAaAB8AFAARABQADgAMAB8AFAAaABkApgAJABoAHwAEABAAHAAgAAwAFwBfAA4AGgAZAAQAHQAQAA4AIAAdAB0AEAAZAA4AEAADAAgAGAAoAFkABwAhABAAHQAXAAwAGwE9AAcAIAAfAA8AEAAZAB8A5wAHABsADAAOABQAHwAkADUAbAB0AIQAkACgAKgAuADIAOIA+gEEARYBJgEwAUwBYAFoAXABfgGYAbIBvgHOAdwB5AH2AgICJAJCAlgCjgKuAsoC1gLoAw4DOgNQA3IDlgO2A94EAgQeBDYEPgROBGgEdASUBLAEzgT2AgsAAwAeAA8AZQAHAB0AFAAZAB8AEAAdAGUABQAdABQAGQAfAJgABwAdABAAIQAUABAAIgIJAAMAGwAfALQABwAaABQAGQAfABAAHQCgAAcAFwAgAB4ABAAeABgAegAMABcAIAAeAAQAGgAgAB8AFwAUABkAEAB7AAsAFwAgAB4ABAAOABQAHQAOABcAEAB5AAQAFwAgAB4AvwAIABcADAAkABcAFAAeAB8AwQAHABcADAAkAAQAHgAYALUABAAXAAwAJAHlAA0AFAAZAB8AEAAdABAAHgAfAAQADQAaACMB5AAJABQAGQAfABAAHQAQAB4AHwHNAAMAFAAZAlcAAwAUABAA/gAGABMAGgAfABoAHgDVAAwAEwAaAB8AGgAEABAAIwAbABoAHQAfANMADAATABoAHwAaAAQADgAMABgAEAAdAAwA1AAFABMAGgAfABoBvAAHABAAHQAOABAAGQAfAGYABgAQABkADgAUABcCCgADAA8AEQDCAAgADAAgAB4AEAAEAB4AGAC2AAUADAAgAB4AEAGMABAADAAeAB8AEAAEABsAFwAMABQAGQAEAB8AEAAjAB8BiwAOAAwAHgAfABAABAAYAAwAHQAWAA8AGgAiABkBigAKAAwAHgAfABAABAATAB8AGAAXAYkAGgAMAB4AHwAQAAQAEQAdABoAGAAEACIAGgAdAA8ABAAeAB8AHQAUABsABAARABQAFwAQAYgADwAMAB4AHwAQAAQAEQAdABoAGAAEACIAGgAdAA8BhwANAAwAHgAfABAABAAMAB4ABAATAB8AGAAXAYYABQAMAB4AHwAQAWsACAAMAB4AHgAiABoAHQAPAj8AEgAMAB0ADAAYABAAHwAQAB0AHgAEACAAGQAWABkAGgAiABkCPgAVAAwAHQAMABgAEAAfABAAHQAeAAQADQAkAB8AEAAEAAwAHQAdAAwAJAIqAAoADAAdAAwAGAAQAB8AEAAdAB4CNAAQAAwAHQAMABgAEAAfABAAHQAEAB4AHwAdABQAGQASAjMAEQAMAB0ADAAYABAAHwAQAB0ABAAUABkAHwAQABIAEAAdAjIADwAMAB0ADAAYABAAHwAQAB0ABAARABcAGgAMAB8CMQATAAwAHQAMABgAEAAfABAAHQAEAA8ADAAfABAABAAfABQAGAAQAjAAEQAMAB0ADAAYABAAHwAQAB0ABAANABoAGgAXABAADAAZAWwADQAMAB0ADAASAB0ADAAbABMABAAMAA8ADwGwAAsADAAZABAABAARAB0AEAAQACUAEACcAAMADAAZAOEABwAMABcAEAAfAB8AEAD9AAwADAAUABkAHwAEAB0AEAAYABoAIQAQAOIABQAMABQAGQAfAScADwAMABIAEAAEABsAHQAaABsAEAAdAB8AFAAQAB4CAgANAAwAEgAQAAQAGwAaAB0AHwAdAAwAFAAfAh4ADgAMABIAEAAEABcADAAZAA8AHgAOAAwAGwAQAiUAEwAMABIAEAAEABMAEAAMAA8AEAAdAAQAHgAQAA4AHwAUABoAGQImABMADAASABAABAARABoAGgAfABAAHQAEAB4AEAAOAB8AFAAaABkABAAKABwAPABcANEACAAgABAAHgAfABQAGgAZALAADwAdAAQADgAaAA8AEAAEAB4ADgAMABkAGQAQAB0ArgAPAB0ABAAOABoADwAQAAQAGgAgAB8AFwAUABkAEACvAAcAHQAEAA4AGgAPABAAJwBQAHAAgACIAJIAqADEAN4A9gEEAQ4BGAEsAToBTgFiAXgBjAGeAbYBwgHuAhoCKgJaAo4CogKwAsYC1gLgAvYDBAMgAzYDXgN2A5IDrAFKAA8AIAAXABAABAATABoAHQAUACUAGgAZAB8ADAAXAfcABwAeAB4ABAANABoAIwH2AAMAHgAeAFQABAAaACIAHgGxAAoAGgAiAAQAEQAdABAAEAAlABAA7AANABoAIAAZAA8ABAAOABoAHQAZABAAHQAeAN4ADAAaAB8ADAAfABAABAAdABQAEgATAB8A3wALABoAHwAMAB8AEAAEABcAEAARAB8A3QAGABoAHwAMAB8AEAJkAAQAGgAeABAAWgAEABoAGgAfADUACQAQACIAFAAZAA8ABAAeABgAuAAGABAAIgAUABkADwAoAAkAEAAeABQAJQAQAAQAHgAiACcACQAQAB4AFAAlABAABAAeABAAKQAKABAAHgAUACUAEAAEABkAEAAiACYACQAQAB4AFAAlABAABAAZABAAYAAIABAAHgAQAB8ABAAeABgA/QALABAAHgAQAB8ABAAOABoAFwAaAB0AXQAFABAAHgAQAB8CIQAVABAAGwAaAB0AHwAEABMAEAAMAA8AEAAdAAQAHgAQAA4AHwAUABoAGQIiABUAEAAbABoAHQAfAAQAEQAaABoAHwAQAB0ABAAeABAADgAfABQAGgAZAFUABwAQABoAHQAPABAAHQELABcAEAAYABoAIQAQAAQAIQAQAB0AHwAUAA4ADAAXAAQAHgAbAAwADgAUABkAEgEHABkAEAAYABoAIQAQAAQAEwAaAB0AFAAlABoAGQAfAAwAFwAEAB4AGwAMAA4AFAAZABIAYQAJABAAFwAaAAwADwAEAB4AGABeAAYAEAAXABoADAAPAGEACgAQABEAHQAQAB4AEwAEAB4AGABeAAcAEAARAB0AEAAeABMAXAAEABAADwAaAecACgAQAA8ADwAUAB8ABAANABoAIwHmAAYAEAAPAA8AFAAfAGEADQAQAA4AIAAdAB0AEAAZAA4AEAAEAB4AGABeAAoAEAAOACAAHQAdABAAGQAOABAAzgATAAwADwAUABoADQAgAB8AHwAaABkABAAOABMAEAAOABYAEAAPAM0ACwAMAA8AFAAaAA0AIAAfAB8AGgAZAmIADQAMAA8ADAAdAAQAGAAMAB0AFgAQAB0AHgJjAAwADAAPAAwAHQAEABEAFAAXABcAEAAPAmEABQAMAA8ADAAdADgAcgCAAJYAngCuAMIA1gDsAQgBKgFEAXABmAHAAeICDAIoAjgCQgJcAmYCggKaArQCyALeAvYDCAMsA1ADZANsA4YDngOyA84D3gPqBAAEFgQwBDwETgRkBHoEiASWBKQEsgTABP4FLAVmBZAFoAWqAboABgAkABgADQAaABcBMQAKACAAGwAEAB4ADgAdABQAGwAfAbkAAwAgABgAdAAHACAADgAOABAAHgAeAL4ACQAgAA0AHwAUAB8AFwAQAB4CHwAJACAADQAdABAAGwAaAB0AHwEwAAoAIAANAAQAHgAOAB0AFAAbAB8BlgANAB8AJAAXABAABAANACAAFAAXAA8AEAAdAekAEAAfACAAGAANABcAEAAEACAAGwAaABkABAANABoAIwHoAAwAHwAgABgADQAXABAABAAgABsAGgAZAZQAFQAfAB0AFAAbAAQAIgAaAB0ADwAEABEAGgAdABgADAAfAB8AFAAZABIBkwATAB8AHQAUABsABAAeABsADAAZAAQAEAAXABAAGAAQABkAHwAeAZIAEwAfAB0AFAAbAAQAEQAaABkAHwAEABAAFwAQABgAEAAZAB8AHgGRABAAHwAdABQAGwAEAA4AHgAeAAQAEQAaAB0AGAAMAB8BkAAUAB8AHQAUABsABAAMABcAFwAEABEAGgAdABgADAAfAB8AFAAZABIBLwANAB8AHQAUABYAEAAfABMAHQAaACAAEgATAMMABwAfABoAGwAEAB4AGAC3AAQAHwAaABsAxgAMAB8ADAAdAAQAGgAgAB8AFwAUABkAEADHAAQAHwAMAB0BtAANABsAEAAXABcABAAOABMAEAAOABYAEAAdAhQACwAaACAAHQAOABAABAAOABoADwAQAIMADAAaAB0AHwAEAA8AEAAeAA4ABAAeABgAgAAJABoAHQAfAAQADwAQAB4ADgCBAAoAGgAdAB8ABAAOABcAEAAMAB0AggALABoAHQAfAAQADAAeAA4ABAAeABgAfwAIABoAHQAfAAQADAAeAA4BDwARABkADAAbAAQAHwAaAAQAHgAZAAwAGwAXABQAGQAQAB4BDgARABkADAAbAAQAHwAaAAQAEgAdABQADwAXABQAGQAQAB4BDQAJABkADAAbAAQAEgAdABQADwIcAAMAFwAZAQAADAAUACUAEAAEAB8AGgAEABIAHQAUAA8BfwALABQAFwAhABAAHQAXABQAEgATAB8AsgAJABQAEgAZAAwAHwAgAB0AEACeAA0AEwAaABsAGwAUABkAEgAEAA4ADAAdAB8A6gAHABMADAAdABsAEAAZAc8ABQATAAwAHQAQAMgACgATAAwAGwAQAAQAHQAQAA4AHwDjAAoAEwAMABsAEAAEABcAFAAZABAAzQAMABMADAAbABAABAAOABQAHQAOABcAEADrAAUAEwAMABsAEACXAAgAEAAfAB8AFAAZABIAHgFlAAoAEAAXABAADgAfAAQADQAaACMBYwAKABAAFwAQAA4AHwAEAAwAFwAXADEABgAQABAAFgAEACIAMAAGABAAEAAWAAQAHgAuAAYAEAAQABYABAAZAC8ABgAQABAAFgAEABAAmQAGABAADAAdAA4AEwJcAB4ADgAMAB8AHwAQAB0ABAAeAB8AHQAMABQAEgATAB8ABAAXABQAGQAQAB4ABAAYAAwAHQAWABAAHQAeAl0AFgAOAAwAHwAfABAAHQAEAB4AHwAdAAwAFAASABMAHwAEABcAFAAZABAAHgJaABwADgAMAB8AHwAQAB0ABAAeABgAGgAaAB8AEwAEABcAFAAZABAAHgAEABgADAAdABYAEAAdAB4CWwAUAA4ADAAfAB8AEAAdAAQAHgAYABoAGgAfABMABAAXABQAGQAQAB4CWQAHAA4ADAAfAB8AEAAdAGQABAAMACEAEADlAAoADAAfACAAHQAMAB8AFAAaABkAPQB8AIQAnACsAMIA0ADuAR4BKgFEAXYBoAHKAfwCJgJCAl4CjgKyAsoC1gLyAxQDNANUA3IDggOUA6gDygPuBAoEJARABG4EnAS+BOAFAgUoBUIFXAV2BaoF3AYEBiwGWAZ8BpIGqAbUBv4HLAdSB4QHtAfoCBoISgh+AgQAAwAjAB8B7wALACIAFAAfAB8AEAAdAAQADQAaACMB7gAHACIAFAAfAB8AEAAdAe0ACgAgABgADQAXAB0ABAANABoAIwHsAAYAIAAYAA0AFwAdAMsADgAdABQABAAeAB8ADAAfABAABAAZACAAFwAXAMoAFwAdABQABAAeAB8ADAAfABAABAAUABkADwAQAB8AEAAdABgAFAAZAAwAHwAQAGcABQAdAAwAHgATAOcADAAdAAwAGQAeABsAEAAdAAwAGQAOACQBdQAYAB0ADAAOABYABAAOABMADAAZABIAEAAeAAQAHQAQABUAEAAOAB8ABAAMABcAFwF0ABQAHQAMAA4AFgAEAA4AEwAMABkAEgAQAB4ABAAdABAAFQAQAA4AHwFxABQAHQAMAA4AFgAEAA4AEwAMABkAEgAQAB4ABAAQABkADAANABcAEAFzABgAHQAMAA4AFgAEAA4AEwAMABkAEgAQAB4ABAAMAA4ADgAQABsAHwAEAAwAFwAXAXIAFAAdAAwADgAWAAQADgATAAwAGQASABAAHgAEAAwADgAOABAAGwAfAXAADQAdAAwADgAWAAQADgATAAwAGQASABAAHgGzAA0AGgAaABcADQAMAB0ABAARABcAGgAMAB8BtwAXABoAEgASABcAEAAEABEAIAAXABcABAAeAA4AHQAQABAAGQAEABgAGgAPABACNQARABoADgAEAB4AEAAOAB8AFAAaABkABAAXABAAIQAQABcCKAALABoADgAEAB4AEAAOAB8AFAAaABkAkwAFABQAFwAQAB4A9wANABMAIAAYAA0AGQAMABQAFwAeAAQAIAAbAPgAEAATACAAGAANABkADAAUABcAHgAEAB0AFAASABMAHwD6AA8AEwAgABgADQAZAAwAFAAXAB4ABAAXABAAEQAfAPkADwATACAAGAANABkADAAUABcAHgAEAA8AGgAiABkBagAOABAAIwAfAA0AGgAjAAQAEwAUAA8ADwAQABkBaQAHABAAIwAfAA0AGgAjAWgACAAQACMAHwAMAB0AEAAMAUkACQAQACMAHwAEACIAHQAMABsBbgAQABAAGAAbABcADAAfABAABAAYAAwAGQAMABIAEAAdAesAEQAQABcAFwAEAAwABAARAB0AFAAQABkADwAEAA0AGgAjAeoADQAQABcAFwAEAAwABAARAB0AFAAQABkADwGfAAwADAANABcAEAAEACIAFAAlAAwAHQAPAa8ADQAMAA0AFwAQAAQAIAAZABgAEAAdABIAEAGlABYADAANABcAEAAEAB0AGgAiAAQAFAAZAB4AEAAdAB8ABAANABAAFwAaACIBpAAWAAwADQAXABAABAAdABoAIgAEABQAGQAeABAAHQAfAAQADAANABoAIQAQAcgAEAAMAA0AFwAQAAQAHQAaACIABAASAB0AGgAgABsAHgGnABAADAANABcAEAAEAB0AGgAiAAQADwAQABcAEAAfABABnwAQAAwADQAXABAABAAbAB0AGgAbABAAHQAfABQAEAAeAZ0AEgAMAA0AFwAQAAQAFwAUABIAEwAfAAQADwAUAAwAFwAaABIBnQAMAAwADQAXABAABAAUABkAHgAQAB0AHwGpAAwADAANABcAEAAEAA8AEAAXABAAHwAQAccADAAMAA0AFwAQAAQADgAaAB0AGQAQAB0BowAZAAwADQAXABAABAAOABoAFwAgABgAGQAEABQAGQAeABAAHQAfAAQAHQAUABIAEwAfAaIAGAAMAA0AFwAQAAQADgAaABcAIAAYABkABAAUABkAHgAQAB0AHwAEABcAEAARAB8BxgATAAwADQAXABAABAAOABoAFwAgABgAGQAEABIAHQAaACAAGwAeAaYAEwAMAA0AFwAQAAQADgAaABcAIAAYABkABAAPABAAFwAQAB8AEAGhABUADAANABcAEAAEAA4AEAAXABcABAAbAB0AGgAbABAAHQAfABQAEAAeAagAEQAMAA0AFwAQAAQADgAQABcAFwAEAA8AEAAXABAAHwAQAaAACgAMAA0AFwAQAAQADgAQABcAFwHFAAoADAANABcAEAAEAA0AGgAPACQBTQAVAAwADQAXABAABAAMABcAFAASABkABAAfABoAGwAEAB0AFAASABMAHwFLABQADAANABcAEAAEAAwAFwAUABIAGQAEAB8AGgAbAAQAFwAQABEAHwFMABYADAANABcAEAAEAAwAFwAUABIAGQAEAB8AGgAbAAQADgAQABkAHwAQAB0BVAASAAwADQAXABAABAAMABcAFAASABkABAAdABAAGAAaACEAEAFQABgADAANABcAEAAEAAwAFwAUABIAGQAEABgAFAAPAA8AFwAQAAQAHQAUABIAEwAfAU4AFwAMAA0AFwAQAAQADAAXABQAEgAZAAQAGAAUAA8ADwAXABAABAAXABAAEQAfAU8AGQAMAA0AFwAQAAQADAAXABQAEgAZAAQAGAAUAA8ADwAXABAABAAOABAAGQAfABAAHQFTABgADAANABcAEAAEAAwAFwAUABIAGQAEAA0AGgAfAB8AGgAYAAQAHQAUABIAEwAfAVEAFwAMAA0AFwAQAAQADAAXABQAEgAZAAQADQAaAB8AHwAaABgABAAXABAAEQAfAVIAGQAMAA0AFwAQAAQADAAXABQAEgAZAAQADQAaAB8AHwAaABgABAAOABAAGQAfABAAHQGeAAUADAANABcAEAAKABYAIAAuADwASABWAHYAmgCqALQB0AAEAB4AEAAdAI4ABgAbABcAGgAMAA8AgQAGABkAHgAaAB0AHwHOAAUAGQAbABQAGQBvAAYAGQAXABoADgAWAG0ADwAZABcAFAAZABYABAAhABAAHQAfABQADgAMABcAawARABkAFwAUABkAFgAEABMAGgAdABQAJQAaABkAHwAMABcATAAHABkAEgAdABoAIAAbAFsABAAZAA8AGgEqAAkAGQAPABAAHQAXABQAGQAQAAsAGAAsAEIAWgBuAHoAkgCwAL4AxADmALsACQAaABcAIAAYABAABAAgABsAvAAKABoAFwAgABgAEAAEABoAEQARALoACwAaABcAIAAYABAABAAPABoAIgAZAfkACQAUABgAEAAaAAQADQAaACMB+AAFABQAGAAQABoCFAALABQAEAAiAAQAHgAaACAAHQAOABABgQAOABQADwAQABoABAAQACMAHwAQAB0AGQAMABcCGQAGAA0AGwAdABoAFQIbAAIADQG1ABAADAAXABQADwAMAB8AFAAaABkABAAjABMAHwAYABcBtgAPAAwAFwAUAA8ADAAfABQAGgAZAAQADwAMAB8ADAAKABYAJAAuAEgAaAB4AJYAtgDWAOQAlwAGAB0AEAAZAA4AEwIHAAQAGgAdAA8BwgAMABQAJQAMAB0ADwAEAB8ADAANABcAEAHEAA8AFAAlAAwAHQAPAAQADgAdABoAHgAeAB8ADAANAJMABwAUABkADwAaACIAHgCTAA4AFAAZAA8AGgAiAAQAHQAQAB4AHwAaAB0AEACUAA8AFAAZAA8AGgAiAAQAGAAUABkAFAAYABQAJQAQAJIADwAUABkADwAaACIABAAYAAwAIwAUABgAFAAlABAAkgAGABQAGQAPABoAIgDSAAcADAAdABkAFAAZABIAAwAIABAAJAIGAAMAFwAeAHcACQAEABoAIAAfABcAFAAZABAAeAAIAAQADgAUAB0ADgAXABAABAAKACIAMgBIAfsACwAaACAAHwAgAA0AEAAEAA0AGgAjAfoABwAaACAAHwAgAA0AEAHxAAoADAAYABgAEAAdAAQADQAaACMB8AAGAAwAGAAYABAAHQAGAA4AIAAwAEwAbgB4AJsACAAaABoAGAAEABoAIAAfAJoABwAaABoAGAAEABQAGQDXAA0AGgAaABgABAANABAAHgAfAAQAEQAUAB8A1gAQABoAGgAYAAQADAAOAB8AIAAMABcABAAeABQAJQAQAJkABAAaABoAGAIQAAMAFAAbAAEABAJlAAICZgADA/8BkAAFAAACmQLMAAAAjwKZAswAAAHrADMBCQAAAAAAAAAAAAAAAAAAAAEQAAAAAAAAAAAAAAAAAAAAAEAAAOoiA8D/wABAA8AAQAAAAAEAAAAAAAAAAAAAACAAAAAAAAMAAAADAAAAHAABAAMAAAAcAAMAAQAAABwABACgAAAAJAAgAAQABAABACAALQA2AHrgNOFZ4g7jCuQD5VPmoecF6CzpR+oi//3//wAA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wP8AAAABAQAAgAMAAwAABwAAATMRMxEzCQEBAMCAwP8A/wACAAEA/wD+gAGAAAAAAAEAwADAA0ACwAAGAAABFSEVIRUBAkABAP8A/oACwMCAwAEAAAEBAADAA0ACgAAKAAABFTMLATM1ITUhFQJAgKCggP8AAkACQID/AAEAgEBAAAAAAAEBAADAA0ACgAAIAAABGwEjFSEVITUBAKCggAGA/kABgAEA/wCAQMAAAAAAAgDAAMADQALAAAgADAAAARsBIxUhFSE1ASEVIQEAoKCAAYD+QAHA/YACgAGAAQD/AIBAwAFAQAADAAAAAAQAA4AABgAKABEAAAEzFSMVLQETMxEjASUVIxUzFQEAgID/AAEAwICAAkD/AICAAcFBgKCg/cADgP4goIBBfwAAAAABAEAAAAPAA4AAEQAAJTUhFSM1IzUzESMbASMRITUFAsD+QECAgICgoIABwAEAAICAgEABwAEA/wD+QICgAAAAAgDAAAADQAOAAAYADQAAASMRIxEjEwERIxEjGwECAIBAgKABYECAoKACgP5AAcABAP2AAcD+QP8AAQAAAgBAAQADwALAAAIABgAAEw0BARUhNUABgP6AAcABwALA4OABAEBAAAYAQAAAA8ADgAACAAUACQANABEAFQAAExElAREFARUhNQUVITUBFSE1BRUhNUABQP7AAUACQP3AAkD9wAJA/cACQP3AA4D+gMD9QAGAwAKAQEDAQED+wEBAwEBAAAAAAAkAQAAAA8ADgAADAAcACwAPABMAFwAbAB8AIwAAEyERIQEhESEBIREhNSERIQEhESEBESERASERISUhESEBIREhQAEA/wABQAEA/wD+wAEA/wABAP8AAUABAP8AAUABAP8AAQD/AP7AAQD/AAFAAQD/AAOA/wD9gAEA/wABAEABAP8AAQABQP8AAQD9wAEAQAEA/IABAAAABgBAAEADwAOAAAMABwALAA8AEwAXAAATMxUjJRUhNQEzNSMFITUhATM1IwUhNSFAwMABAAKA/IDAwAEAAoD9gP8AwMABAAKA/YADgMDAwMD+AMDAwP4AwMDAAAAEAEAAQAOAA4AAAwAHAAsADwAAEyERIREhESEBIREhGQEhEUABgP6AAYD+gAHAAYD+gAGAAcD+gAHAAYD8wAGAAcD+gAGAAAAEAEAAQAOAA4AAAwAHAAsADwAA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wID+AAFAAQDAAQACwEBA/wBA/kACAP4AgMBAAQAAAAAABQCAAEADgANAAAQACAARABYAGgAAATMRIRE3MxUjATMRIRUjESE1ISMRIREHIzUzAQCA/wBAgIABgMD+wMABQAEAwAEAQICAAkABAP8AwID/AAFAwP7AgP8AAQDAgAAAAgCAAEADgANAAAcADQAAAREhESERIREXIxUjFSEDgP4A/wACAMDAwAGAAkD+AAEAAgD/AEDAwAADAIAAQAOAA0AAAwAHAA0AAAERIREDIREhAyERMxEhAYACAED+gAGAwP4AwAFAAkD+AAIA/kABgAFA/gABQAAABAA/AAADfwOAAAMABwALAA8AABMzESMBIREhBREhEQUhFSE/QEACQP5AAcABAP1AAoD9wAJAA4D8gAMA/wCA/wABAECAAAAAAgB/AAADPwOAABQAGAAAATUzESM1IxUjETMVIREhFTM1IREhBSE1IQH/wMBAwMD+wAFAQAFA/sABAP3AAkABgIABAICA/wCA/wCAgAEAwIAAAAAABACBAAADwQOAAAQACQAOABIAADchESERNyEVITUTIREhESURIxGBAsD9QEACQP3AwAHA/kACQECAAQD/AMCAgAHA/wABAID8gAOAAAQAPwBAA78DgAADAAcACwAQAAATIREhASERITczESMlFSE1Ib8BAP8AAYABAP8AQICA/cADgPyAAwD+QAHA/UBAAkDAQEAAAAIAPwCAA78DQAATABgAAAERIREjNSEVIxUzFSE1MxEhETM1IxEjETMDP/8AgP8AgIABAIABAIDAgIACAAFA/sDAwEDAwP7AAUBA/sACQAAABAA///4DvwM+AAMABwALAA8AACUVITUBIREhKQERIQcjETMDv/yAAYD/AAEAAYD/AAEAQICAPkBAAgD+QALAQP3AAAAEAEAAQAOAA4AAAwAIAAwAEAAAATMVIyUzFSM1ITMVIxUhESECwMDA/sDAwP7AwMADQPzAA4DAwMDAwID+AAAABABAAEADgAOAAAMACAANABEAAAEzFSMRMxUjNREzFSM1KQERIQLAwMDAwMDA/YACAP4AAQDAAf+/vwFBwMD8wAAAAAAEAEAAQAOAA4AAAwAIAAwAEAAAATMVIyUzFSM1ITMVIxEhESECwMDA/sDAwP7AwMADQPzAAQDAwMDAwANA/gAABABA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KEBAQl7+wEBAQEADgPzAA0D9AMBAwEDA/UDAQMBAwP6gQl5AOCgoOEBeQmBA/sBAAAUAQAAAA8ADgAAbAB8AMwA3ADsAAAEzNSM1IxUjNSMVIxUzESMVMxUzNTMVMzUhNSErAREzASM1MzI2NTQmIzEjNTMyFhUUBiMDIxUzAzM1IwHAwMBAgECAgICAQIBAAgD+AECAgAGgQEAoODgoQEBCXl5CYEBAQEBAAsBAgICAgED+AECAgICAQAIA/oBAOCgoOEBeQkJeAUBA/wBAAAAGAAD/wAQAA8AABgAKABIAGgAiACoAAAEhESERIREFMxUjEyMVMxUjETMRIxUzFSMRMyU1IxUjNSEVISM1IxUjNSECgP2AAQADAPxAgICAQECAgEBAgIABAECAAUABgIBAgAFAA8D8AAMAAQBAgP3AQIABQAEAQIABQEBAQICAQECAAAAFAD8AAAO/A4AABAAIAA0AEgAWAAATIREhEQMzESMTIREhERchNSEVAREzEb8CgP2AgEBAgAKA/YBAAgD+AAKAQAMA/wABAP0AA4D+AP8AAQDAgIACwPyAA4AAAAUAPwAAA78DgAADAAgADAAQABUAAAERIREDITUhFQERIREXIxEzARUhNSEBv/8AgAOA/IADAP8AwICA/UADgPyAAwD9gAKA/QBAQAMA/YACgED+AALAQEAAAAAAAwA/AAADfwOAAAMABwAMAAABIREhATMRIxMRIREhAn/+QAHA/cBAQIACwP1AAgABAP0AA4D+AP8AAQAAAQB/AAADPwOAABMAACUhFSM1IREhNSMRMzUzFTMRIxUhAz/+wED+wAFAwMBAwMABQICAgAEAgAEAgID/AIAAAAMAgQAAA8EDgAAEAAgADQAAASERIRElETMRASERIREBgQHA/kACAED8wALA/UADAP8AAQCA/IADgP0AAQD/AAAEAD8AAAO/A4AAAwAHAAsAEAAAASERIQEzESMhETMRASERIREDP/2AAoD9AEBAA0BA/QICgP2AAgABAP0AA4D8gAOA/QABAP8AAAAAAwA/AIADvwNAABMAFwAbAAABESERIzUhFSMVMxUhNTMRIREzNQUjNTMBIxEzAz//AID/AICAAQCAAQCA/cCAgAGAgIACAAFA/sDAwEDAwP7AAUBAwID/AAEAAAADAEAAQAPAA4AAAwAHAAsAABMhESEDFSE1ASERIcABAP8AgAOA/oABAP8AAwD+QAJAQED8wALAAAEAPwCAA78DQAATAAABIxEhESMVITUjNTM1IRUzESERMwO/gP8AgP8AgIABAIABAIABwP7AAUDAwEDAwAFA/sAAAAAAAwA///4DvwM+AAMACAAMAAAlIREhARUhNSEBIREhAb//AAEA/oADgPyAAwD/AAEAfgHA/gBAQAMA/UAABAA/AAADvwOAAAMACAANABEAAAERIREDITUhFREVITUhBREhEQG//wCAA4D8gAOA/IACAAEAAwD9gAKA/QBAQAOAQEB+/YACgAAAAAMAfwAAAz8DgAAUABgAHAAAATUzESM1IxUjETMVIREhFTM1IREhByE1IREjNTMB/8DAQMDA/sABQEABQP7AQP8AAQCAgAGAgAEAgID/AID/AICAAQDAgAEAgAAAAwA/AAAC/wOAAAMABwAMAAATIREhBzMRIwURIREhvwEA/wCAQEABwAEA/wADAP2AgAOAfv2AAoAAAAAAAwB/AAADPwOAAAQACAAMAAATIREhEQEzESMXESERfwEA/wABQEBAgAEAAwD9gAKA/QADgH79gAKAAAAAAwEBAAADwQOAAAQACAAMAAABIREhESURMxEBIREhAQEBAP8AAoBA/oABAP8AAwD9gAKAgPyAA4D9AgKAAAAAAAT//wAAA/8DgAAEAAgADAARAAATIREhESURMxEBIREhATMRIxF/AQD/AANAQP6AAQD/AP2AQEADAP2AAoCA/IADgP0CAoD8/gOA/IAAAAAABP//AAAD/wOAAAMABwALABAAABMhESEBETMRASERIQEzESMRvwEA/wADAED+QAEA/wD9wEBAAwD9gAMA/IADgP0CAoD8/gOA/IAAAAMAPwDAA78DgAADAAgADQAAASERISUVITUhEyERIREDP/2AAoD9AAOA/ICCAoD9gAIAAQCAQED9QAEA/wAAAAADAD8AgAO/A0AAAwAIAA0AAAEhESEBFSE1IRMhESERAz/9gAKA/QADgPyAggKA/YACQAEA/sBAQP6AAQD/AAAAAwA///4DvwK+AAMACAANAAABIREhARUhNSE3IREhEQM//YACgP0AA4D8gIICgP2AAb4BAP2AQEBAAQD/AAAAAAQAP//AA78DwAAEAAkADgATAAATIREhEQMhNSEVNyERIRED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ASE1IQchNSEXITUhByE1IRchNSEHITUhA4D9AAMAgP4AAgCA/QADAID+AAIAgP0AAwCA/gACAAMAQMBAwEDAQMBAwEAABgCAAIADgANAAAMABwALAA8AEwAXAAATIRUhATUhFRchNSEDFSE1JSE1IREVITWAAwD9AAMA/QDAAkD9wMADAP3AAkD9wAJAAkBAAQBAQIBA/oBAQEBA/wBAQAAGAIAAgAOAA0AAAwAHAAsADwATABcAAAEhNSE1IRUhASE1ITUhNSE1ITUhESE1IQOA/QADAP0AAwD9AAMA/QADAP0AAwD9AAMA/QACgECAQP4AQEBAQED+QEAAAAUAQAAAA8ADgAADAAcACwAQACwAABMXIzUVMycjFSEnIR0BISchBTcnMzUjJzM1IychNSEnITUhJyE1ISchNSEnB55AXt5AngFeQP7iAd5A/mIDEy1TE1NAk9NAARP+rUABk/4tQAIT/a1AApP9LUAtAkBAQMBAwECAQEDALVNAQEBAQEBAQEBAQEAtAAAAAAYAQAAAA8ADgAADAAcACwAPABMAGwAAARUhNQERIREFIREhAyEVIRU1IRUDITUhESE1IQPA/QACAP2AAkD+AAIAQP6AAYD+gEACQP2AAoD9wAMAQED+wP5AAcBA/sABAECAQEACwED+wEAAAAUAQABAA8ADQAADAAcACwAPABMAAAEhNSEXIRUhFyEVIQUhFSEXIRUhAoD9wAJAwP0AAwCA/IADgP7A/cACQMD9AAMAAwBAgECAgIBAQEAABQBAAAADwAPAAAMABwALAA8AEwAANxEhEQERIREFITUhFSE1IRUhNSFAA4D8wAMA/UABgP6AAoD9gAGA/oAAA8D8QAOA/MADQIBAwEDAQAAFAEAAAAPAA8AAAwAHAAsADwATAAA3ESERAREhEQchFSEXIRUhByEVIUADgPzAAwDA/oABgID9gAKAgP6AAYAAA8D8QAOA/MADQEBAQEBAQAAAAAAFAEAAAAPAA8AAAwAHAAsADwATAAA3ESERAREhEQchFSEVIRUhFSEVIUADgPzAAwBA/oABgP2AAoD+gAGAAAPA/EADgPzAA0BAQEBAQEAAAAUAQAAAA8ADwAADAAcACwAPABMAADcRIREBESERASE1IRUhNSEVITUhQAOA/MADAP1AAYD+gAKA/YABgP6AAAPA/EADgPzA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NzgBMT4BMzI0MzI2NzoBNTI2MzA2MzI2MzI2MzA2MzoBNzAyMzQyMzA2MzAyMzI2MzoBMzoBMzYyMToBMToBMzoBMzoBMToBMToBFzoBMR4BFzgBMRQWFTAUMRwBFQPAAQEBAQEBAQEBAQEBAQIBAgECAQEBAQEBAQEBAgEBAQIBAgEBAQIBAQECAQEBAgEBAQIBAQECAQEBAQIBAQECAQEBAQICAQMBAQEBAgEBAgICAQECAgEBAwIBAQICAQIDAQIDAgEBAQMBAQECAgECAQIBAQEBAQIBAQECAgEBAQECAQEBAQMCBQgFAQMBAQECAQEBAgEBAQIBAgIBCBQLAxYezBYeCQkVGUs1NUsZFAkKHhaMjBYeCQkCAgEBAQIBAQECAQECAQECAQMFAwIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQIBAgECAQEBAQEBAQEBAgEBAQIBAgEBAQIBAQECAQEBAgEBAQIBAQECAQEBAQIBAQECAQEBAQICAQMBAQEBAgEBAgICAQECAgEBAwIBAQICAQICAgEDAgECAgItQQQBAQEBAQEBAQEBAQEBAQEBAQYOCQkKHhbMHhYDCxUHCBIKAQIBAQEBAQEBAQECAQEBAQEBAQEBAgEBAQECAQIBAgECAQEBAQEBAQEBAQECAQIBAgEBAQEBAgECAQIBAQEtQQQBAQACAgIBAgIBAQIDAQECAgEBAgICAQECAQEBAQMBAgIBAQEBAgEBAQIBAQEBAgEBAQIBAQECAQEBAgEBAQIBAQECAQIBAQECAQEBAQEBAQEBAgECAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQIDBQMBAgEBAgEBAgEBAQIBAQECAgkJHhaMHhYDCxQIETMeNUtLNR0zEgcVCwMWHgJAHhYDCxQIAQICAQIBAQECAQEBAgEBAQMBBQgFAgMBAQEBAgEBAQECAgEBAQIBAQEBAQIBAgECAgEBAQMBAQECAwIBAwIBAgIBAQIDAQECAgEBAgICAQECAQEBAQMBAgIBAQEBAgEBAQIBAQEBAgEBAQIBAQECAQEBAgEBAQIBAQECAQIBAQECAQEBAQEBAQEBAgECAQIBAQEBAQEBAQEBAQEBAQRBLQEBAQIBAgECAQEBAQECAQIBAgEBAQEBAQEBAQEBAgECAQIBAgEBAQECAQEBAQEBAQEBAgEBAQEB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dxMhHRYmEQdJCg9SPTVFFhElHB8lEw1MDBNZPDZFGQAAAwBAAAADwAOAAAUACwAWAAA3IRUhETMBBxUhEQEBFwUnBxU3FwEXNYADQPyAQAEAwAMA/oABABz+5MDAwMABXSNAQAOA/kDAgAIA/sACABzkgMCAwIABIyOAAAACAEAAAAPAA4AACwAPAAABESMRIREjESMRIREBIxEzAoBA/sCAQAOA/kDAwAMA/UABQP7AA0D8gAMA/UABAAAAAwBAAAADwAOAAAsADwATAAABESMRIREjESMRIREBETMRMzUzFQKAQP7AgEADgP2AwMDAAkD+AALA/UADQPyAAkD+AAGA/oDAwAAAAAMAQAAAA8ADgAALAA8AEwAAAREjESERIxEjESERAREzETMRMxECgED+wIBAA4D9gMDAwAOA/MADQPzAA0D8gAOA/MACAP4AAUD+wAAEAEAAAAPAA4AABQAJAA0AEQAAJRUhETMRASMRMxMRIRElIREhA8D8gEABgMDAQP7AAsD+wAFAQEADgPzAAoD+QAIA/cACQID+QAAAAgBAAAADwAOAAAsADwAANzUhESE1IREhESE1ARUhNYABQP7AAsD9AAOA/cD/AECAAUBAAUD8gEABgMDAAAAAAAMAQAAAA8ADgAALAA8AEwAANzUhESE1IREhESE1ATMVIwUVITWAAsD9QAIA/cADgPzAwMABgP6AQIABQEABQPyAQAMAwMDAwAAAAAADAEAAAAPAA4AACwAPABMAAAERIREhNSE1IREhNQUVITURIRUhA8D8gAOA/MADQPzAAgD+AAFA/sACQAFA/IBAgAFAQIDAwAGAwAAABABAAAADwAOAAAUACQANABEAACUVIREzEQEhFSETESERASERIQPA/IBAAoD+QAHAQP3AAsD+QAHAQEADgPzAAYDAAQD+wAFAAYD+wAAAAAADAEAAAAPAA4AACgAOABEAAAEnBycHJzUjESERBRcHJyUXBwMrsLdES7VAA4D+wIWFjv6OjIwCL7HkRFq05vyAAwCAhbuOcoynAAAAAgBAAAADwAOAAAcADwAAASUBESMRIREDCQI1ARc3AoD/AP8AQAOAQP8A/wD/AAEN/PcCdYD/AAGL/IADgP7m/poBAP7NzgEMfs4AAAIAQAAAA8ADgAADAAkAABMRIREHCQIRIUADgED/AP8A/wAD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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAUAEAAFABAABQAQAAUAEAAEABAABQAQAAQAEAAFABAABAAQAAQAEAAEABAABAAQAAQAEAACABAABAAQAAIAEAAEABAAAAAQAAQAEAADABAABPAQAAMAEAAFABAABAAQAAMAEAAEABAAAwAQAAQAEAAEABAAAwAQAAAAEAABABAAAwAQAAEAEAABABAAAQAQAAEAEAABABAAAQAQAAUAEAABABAAAQAQAAEAEAABABAAAQAQAAIAEAABABAAAQAQAAEAEAAGABAAAQAQAAIAEAABABAAAQAQAAEAEAABABAAAQAQAAAAEAADABAAAwAQAAEAEAABABAAAQAQAAEAEAABABAAAgAQAAQAEAABTBAAAAAQAAAAEAAEABAAAAAQAAMAEAABABAAAQAQAAEAEAABABAAAQAQAAEAEAABABAAAwAQAAEAEAABABAAAwAQAAEAEAABABAAAwAQAAEAEAABABAAAwAQAAMAEAABABAABAAQAAQAEAACABAAAgAQAAQAEAACABAAAgAQAAEAEAABABAAAQAQAAEAEAABABAAAQAQAAEAEAADABAAAwAQAAMAEAACABAAAwAQAAFoEAABDBAAAQAQAAEAEAABABAAAQAQAAEAEAABABAAAgAQAAEAEAACABAABQAQAAUAEAABABAAAQAQAAEAEAADABAAAwAQAAQAEAAEABAABAAQAAIAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAQAQAAFEEAAEABAAAAAQAAEAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAABABAAAwAQAAMAEAADABAAAUAQAAFAEAABABAAAQAQAAIAEAACABAAAgAQAAIAEAAEABAAAgAQAAIAEAACABAAAQAQAAEAEAABABAAAQAQAAEAEAAAABAAAAAQAAAAEAABABAAAAAQAAEAEAACABAAAgAQAAIAEAABABAAAQAQAAEAEAAAMBAAAwAQAAEAEAABABAAAQAQAAEAEAACABAAAAAQAAQAEAAEABAAAQAQAAIAEAACABAAAgAQAAIAEAACABAAAPwQAAH8EAACBBAAAPwQAAD8EAAA/BAAAQAQAAEAEAABABAAAQAQAAAAEAAAABAAAQAQAAEAEAAAABAAAAAQAAAAEAAAABAAAQAQAAEAEAABABAAAQAQAAD8EAACABAAAAAQA//4EAAAABAAAQAQAAAAEAAAABAAAQAQAAAAEAAA/BAAAPwQAAD8EAAB/BAAAgQQAAD8EAAA/BAAAQAQAAD8EAAA/BAAAPwQAAH8EAAA/BAAAfwQAAQEEAP//BAD//wQAAD8EAAA/BAAAPwQAAD8EAAA/BAAAgAQAAQAEAAEABAABAAQAAQAEAADABAAAQAQAAEAEAAAABAAAgAQAAIAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAEAEAABABAAAQAQAAEAEAABABAAAQAQAAEAEAABABAAAQAQAAEAEAACABAAAgAQAAIAEAACABAAAQAQAAEAEAABABAAAQAQAAEAEAABABAAAQAQAAEAEAABABAAAQAQAAEAEAABABAAAQAQAAEAEAABABAAAQAQAAEAEAABABAAAQAQAAEAEAABABAAAQAQAAEAEAABABAAAAAQAAAAEAAAABAAAAAQAAEAEAABABAAAQAQAAEAEAADABAAAwAQAAAAEAABABAAAQAQAAAAEAACABAAAQAQAAAAEAACABAAAAAQAAAAEAAAABAAAAAQAAAAEAACABAAAgAQAAAAEAABABAAAQAQAAEAEAABABAAAQAQAAAAEAAAABAAAAAQAAAAEAABABAAAQAQAAEAEAACABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAEAEAAAABAAAAAQAAAAEAAAABAAAQAQAAEAEAABABAAAAAQAAEAEAAAABAAAQAQAAEAEAAAABAAAAAQAAEAEAAAABAAAQAQAAEAEAABABAAAQAQAAEAEAABABAAAQAQAAEAEAABABAAAQAQAAEAEAABTBAAAAAQAAAAEAAAABAAAQAQAAEAEAADABAAAQAQAAQAEAACABAAAQAQAAIAEAACABAAAQAQAAAAEAAAABAAAQAQAAAAEAABABAAAQAQAAEAEAABABAAAQAQAAEAEAACgBAAAoAQAAMAEAACABAAAQAQAAIAEAABABAAAgAQAAEAEAABABAAAQAQAAEAEAABABAAAQAQAAEAEAAEABAAAQAQAAMAEAABABAAAQAQAAEAEAACABAAAQAQAAEAEAABABAAAgAQAAEAEAAAABAAAQAQAAEAEAABABAAAQAQAAEAEAADABAAAQAQAAEAEAABABAAAQgQAAEAEAABABAAAQAQAAEAEAABABAAAQAQAAEAEAABABAAAQAQAAEAEAABABAAAgAQAAEAEAABABAAAQAQAAEAEAABABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAAAAAQAAEAEAABABAAAQAQAAEAEAABABAAAQAQAAEAEAABABAAAQAQAAEAEAABABAAAgAQAAIAEAACABAAAQAQAAEAEAACABAAAgAQAAIAEAACABAAAQAQAAIAEAABABAAAQAQAAEAEAABABAAAQAQAAEAEAABABAAAQAQAAEAEAABABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAAAQAQAAEAEAACABAAAQAQAAEAEAACABAAAQAQAAEAEAABABAAAQAQAAEAEAABABAAAQAQAAEAEAABABAAAQAQAAEAEAABABAAAQAQAAEAEAABABAAAQAQAAAAEAAAABAAAAAQAAEAEAABABAAAQAQAAEAEAABABAAAQAQAAEAEAABABAAAQAQAAEAEAABABAAAQgQAAEAEAABABAAAQAAAAAAAAAAAAAoAFAAeACgAMgA8AEYAUABaAGQAbgB4AIIAjACWAKAAqgC0AL4AyADSANwA5gDwAPoBBAEOARgBIgEsATYBQAFKAVQBXgFoAXIBgAGOAZwBqgG4AcYB1AHiAfgCDgIkAjoCUAJmAnwCkgKqAsAC1ALoAv4DFAMoAzoDTANiA3QDjAOiA74D4gQCBCAENARkBLAE3gUCBSgFPAVsBZYFvAXcBgYGIAY6BlQGbgakBtoG9AdIB2wHkgfiCDQIoAjwCUIJognoChwKcgqeCuQLMguSC/oMkgz6DZIN1g4YDngO8A9uD4IP5hAiEDwQphDoEQARZhGkEbISEBJGEmASehKgErQSyBLeEwITFhM0E1ITiBPIE+IT/BQWFDAUVBR2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) format(\"truetype\");\n}\n.k-icon {\n width: 1em;\n height: 1em;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-size: 16px;\n font-family: \"WebComponentsIcons\";\n font-style: normal;\n font-variant: normal;\n font-weight: normal;\n line-height: 1;\n speak: none;\n text-transform: none;\n text-decoration: none;\n display: inline-block;\n vertical-align: middle;\n}\n.k-icon::before {\n vertical-align: baseline;\n}\n.k-icon:hover, .k-icon:focus {\n text-decoration: none;\n}\n.k-icon-with-modifier {\n position: relative;\n margin: 0.25em;\n}\n.k-icon-modifier {\n position: absolute;\n font-size: 0.5em;\n bottom: 0;\n right: 0;\n margin: 0 -0.5em -0.5em 0;\n}\n.k-i-none::before {\n content: \"\";\n display: none;\n}\n.k-widget .k-icon.k-i-expand, .k-widget .k-icon.k-i-collapse {\n cursor: pointer;\n}\n.k-icon-xs {\n font-size: 8px;\n}\n.k-icon-sm {\n font-size: 12px;\n}\n.k-icon-md {\n font-size: 32px;\n}\n.k-icon-lg {\n font-size: 48px;\n}\n.k-icon-xl {\n font-size: 64px;\n}\n.k-i-arrow-45-up-right::before {\n content: \"\";\n}\n.k-i-collapse-ne::before {\n content: \"\";\n}\n.k-i-resize-ne::before {\n content: \"\";\n}\n.k-i-arrow-45-down-right::before {\n content: \"\";\n}\n.k-i-collapse-se::before {\n content: \"\";\n}\n.k-i-resize-se::before {\n content: \"\";\n}\n.k-i-arrow-45-down-left::before {\n content: \"\";\n}\n.k-i-collapse-sw::before {\n content: \"\";\n}\n.k-i-resize-sw::before {\n content: \"\";\n}\n.k-i-arrow-45-up-left::before, .k-i-resize-nw::before {\n content: \"\";\n}\n.k-i-collapse-nw::before {\n content: \"\";\n}\n.k-i-resize-new::before {\n content: \"\";\n}\n.k-i-arrow-60-up::before, .k-i-expand-n::before, .k-i-sarrow-n::before, .k-i-arrow-n::before {\n content: \"\";\n}\n.k-i-kpi-trend-increase::before {\n content: \"\";\n}\n.k-i-arrow-60-right::before, .k-i-expand-e::before, .k-i-expand::before, .k-i-sarrow-e::before, .k-i-arrow-e::before {\n content: \"\";\n}\n.k-i-arrow-60-down::before, .k-i-expand-s::before, .k-i-collapse::before, .k-i-sarrow-s::before, .k-i-arrow-s::before {\n content: \"\";\n}\n.k-i-kpi-trend-decrease::before {\n content: \"\";\n}\n.k-i-arrow-60-left::before, .k-i-expand-w::before, .k-i-sarrow-w::before, .k-i-arrow-w::before {\n content: \"\";\n}\n.k-i-arrow-end-up::before {\n content: \"\";\n}\n.k-i-arrow-end-right::before, .k-i-seek-e::before {\n content: \"\";\n}\n.k-i-arrow-end-down::before {\n content: \"\";\n}\n.k-i-arrow-end-left::before, .k-i-seek-w::before {\n content: \"\";\n}\n.k-i-arrow-double-60-up::before {\n content: \"\";\n}\n.k-i-arrow-seek-up::before, .k-i-seek-n::before {\n content: \"\";\n}\n.k-i-arrow-double-60-right::before {\n content: \"\";\n}\n.k-i-arrow-seek-right::before {\n content: \"\";\n}\n.k-i-forward-sm::before {\n content: \"\";\n}\n.k-i-arrow-double-60-down::before {\n content: \"\";\n}\n.k-i-arrow-seek-down::before, .k-i-seek-s::before {\n content: \"\";\n}\n.k-i-arrow-double-60-left::before {\n content: \"\";\n}\n.k-i-arrow-seek-left::before {\n content: \"\";\n}\n.k-i-rewind-sm::before {\n content: \"\";\n}\n.k-i-arrows-kpi::before {\n content: \"\";\n}\n.k-i-kpi::before {\n content: \"\";\n}\n.k-i-arrows-no-change::before {\n content: \"\";\n}\n.k-i-arrow-overflow-down::before {\n content: \"\";\n}\n.k-i-arrow-chevron-up::before, .k-i-arrowhead-n::before {\n content: \"\";\n}\n.k-i-arrow-chevron-right::before, .k-i-arrowhead-e::before {\n content: \"\";\n}\n.k-i-arrow-chevron-down::before, .k-i-arrowhead-s::before {\n content: \"\";\n}\n.k-i-arrow-chevron-left::before, .k-i-arrowhead-w::before {\n content: \"\";\n}\n.k-i-arrow-up::before {\n content: \"\";\n}\n.k-i-arrow-right::before {\n content: \"\";\n}\n.k-i-arrow-down::before {\n content: \"\";\n}\n.k-i-arrow-left::before {\n content: \"\";\n}\n.k-i-arrow-drill::before {\n content: \"\";\n}\n.k-i-arrow-parent::before {\n content: \"\";\n}\n.k-i-arrow-root::before {\n content: \"\";\n}\n.k-i-arrows-resizing::before {\n content: \"\";\n}\n.k-i-arrows-dimensions::before, .k-i-dimension::before {\n content: \"\";\n}\n.k-i-arrows-swap::before {\n content: \"\";\n}\n.k-i-drag-and-drop::before {\n content: \"\";\n}\n.k-i-categorize::before {\n content: \"\";\n}\n.k-i-grid::before {\n content: \"\";\n}\n.k-i-grid-layout::before {\n content: \"\";\n}\n.k-i-group::before {\n content: \"\";\n}\n.k-i-ungroup::before {\n content: \"\";\n}\n.k-i-handler-drag::before {\n content: \"\";\n}\n.k-i-layout::before {\n content: \"\";\n}\n.k-i-layout-1-by-4::before {\n content: \"\";\n}\n.k-i-layout-2-by-2::before, .k-i-page-layout::before {\n content: \"\";\n}\n.k-i-layout-side-by-side::before {\n content: \"\";\n}\n.k-i-layout-stacked::before {\n content: \"\";\n}\n.k-i-columns::before {\n content: \"\";\n}\n.k-i-rows::before {\n content: \"\";\n}\n.k-i-reorder::before {\n content: \"\";\n}\n.k-i-menu::before, .k-i-hamburger::before {\n content: \"\";\n}\n.k-i-more-vertical::before, .k-i-vbars::before {\n content: \"\";\n}\n.k-i-more-horizontal::before, .k-i-hbars::before {\n content: \"\";\n}\n.k-i-undo::before, .k-i-undo-large::before {\n content: \"\";\n}\n.k-i-redo::before, .k-i-redo-large::before {\n content: \"\";\n}\n.k-i-reset::before {\n content: \"\";\n}\n.k-i-reload::before {\n content: \"\";\n}\n.k-i-refresh::before {\n content: \"\";\n}\n.k-i-recurrence::before {\n content: \"\";\n}\n.k-i-non-recurrence::before, .k-i-refresh-clear::before {\n content: \"\";\n}\n.k-i-reset-sm::before {\n content: \"\";\n}\n.k-i-reload-sm::before {\n content: \"\";\n}\n.k-i-refresh-sm::before {\n content: \"\";\n}\n.k-i-recurrence-sm::before {\n content: \"\";\n}\n.k-i-clock::before {\n content: \"\";\n}\n.k-i-calendar::before {\n content: \"\";\n}\n.k-i-save::before {\n content: \"\";\n}\n.k-i-floppy::before {\n content: \"\";\n}\n.k-i-print::before {\n content: \"\";\n}\n.k-i-printer::before {\n content: \"\";\n}\n.k-i-edit::before {\n content: \"\";\n}\n.k-i-pencil::before {\n content: \"\";\n}\n.k-i-delete::before {\n content: \"\";\n}\n.k-i-trash::before {\n content: \"\";\n}\n.k-i-attachment::before {\n content: \"\";\n}\n.k-i-clip::before {\n content: \"\";\n}\n.k-i-attachment-45::before {\n content: \"\";\n}\n.k-i-clip-45::before {\n content: \"\";\n}\n.k-i-link-horizontal::before {\n content: \"\";\n}\n.k-i-hyperlink::before {\n content: \"\";\n}\n.k-i-unlink-horizontal::before {\n content: \"\";\n}\n.k-i-hyperlink-remove::before {\n content: \"\";\n}\n.k-i-link-vertical::before {\n content: \"\";\n}\n.k-i-unlink-vertical::before {\n content: \"\";\n}\n.k-i-lock::before {\n content: \"\";\n}\n.k-i-unlock::before {\n content: \"\";\n}\n.k-i-cancel::before {\n content: \"\";\n}\n.k-i-cancel-outline::before, .k-i-deny::before {\n content: \"\";\n}\n.k-i-cancel-circle::before {\n content: \"\";\n}\n.k-i-check::before, .k-i-tick::before {\n content: \"\";\n}\n.k-i-checkmark::before {\n content: \"\";\n}\n.k-i-check-outline::before {\n content: \"\";\n}\n.k-i-checkmark-outline::before {\n content: \"\";\n}\n.k-i-success::before {\n content: \"\";\n}\n.k-i-check-circle::before {\n content: \"\";\n}\n.k-i-checkmark-circle::before {\n content: \"\";\n}\n.k-i-close::before, .k-i-group-delete::before {\n content: \"\";\n}\n.k-i-x::before {\n content: \"\";\n}\n.k-i-close-outline::before {\n content: \"\";\n}\n.k-i-x-outline::before {\n content: \"\";\n}\n.k-i-error::before {\n content: \"\";\n}\n.k-i-close-circle::before {\n content: \"\";\n}\n.k-i-x-circle::before {\n content: \"\";\n}\n.k-i-plus::before, .k-i-add::before, .k-plus::before {\n content: \"\";\n}\n.k-i-plus-outline::before {\n content: \"\";\n}\n.k-i-plus-circle::before {\n content: \"\";\n}\n.k-i-minus::before, .k-minus::before {\n content: \"\";\n}\n.k-i-kpi-trend-equal::before {\n content: \"\";\n}\n.k-i-minus-outline::before {\n content: \"\";\n}\n.k-i-minus-circle::before {\n content: \"\";\n}\n.k-i-sort-asc::before {\n content: \"\";\n}\n.k-i-sort-desc::before {\n content: \"\";\n}\n.k-i-unsort::before {\n content: \"\";\n}\n.k-i-sort-clear::before {\n content: \"\";\n}\n.k-i-sort-asc-sm::before {\n content: \"\";\n}\n.k-i-sort-desc-sm::before {\n content: \"\";\n}\n.k-i-filter::before {\n content: \"\";\n}\n.k-i-filter-clear::before {\n content: \"\";\n}\n.k-i-filter-sm::before {\n content: \"\";\n}\n.k-i-filter-sort-asc-sm::before {\n content: \"\";\n}\n.k-i-filter-sort-desc-sm::before {\n content: \"\";\n}\n.k-i-filter-add-expression::before {\n content: \"\";\n}\n.k-i-filter-add-group::before {\n content: \"\";\n}\n.k-i-login::before {\n content: \"\";\n}\n.k-i-logout::before {\n content: \"\";\n}\n.k-i-download::before {\n content: \"\";\n}\n.k-i-upload::before {\n content: \"\";\n}\n.k-i-hyperlink-open::before {\n content: \"\";\n}\n.k-i-hyperlink-open-sm::before {\n content: \"\";\n}\n.k-i-launch::before {\n content: \"\";\n}\n.k-i-window::before {\n content: \"\";\n}\n.k-i-window-maximize::before, .k-i-maximize::before {\n content: \"\";\n}\n.k-i-windows::before {\n content: \"\";\n}\n.k-i-window-restore::before, .k-i-restore::before {\n content: \"\";\n}\n.k-i-tiles::before {\n content: \"\";\n}\n.k-i-window-minimize::before, .k-i-minimize::before {\n content: \"\";\n}\n.k-i-gear::before {\n content: \"\";\n}\n.k-i-cog::before {\n content: \"\";\n}\n.k-i-custom::before {\n content: \"\";\n}\n.k-i-gears::before {\n content: \"\";\n}\n.k-i-cogs::before {\n content: \"\";\n}\n.k-i-wrench::before {\n content: \"\";\n}\n.k-i-settings::before {\n content: \"\";\n}\n.k-i-preview::before {\n content: \"\";\n}\n.k-i-eye::before {\n content: \"\";\n}\n.k-i-zoom::before {\n content: \"\";\n}\n.k-i-search::before {\n content: \"\";\n}\n.k-i-zoom-in::before {\n content: \"\";\n}\n.k-i-zoom-out::before {\n content: \"\";\n}\n.k-i-pan::before {\n content: \"\";\n}\n.k-i-move::before {\n content: \"\";\n}\n.k-i-calculator::before {\n content: \"\";\n}\n.k-i-cart::before {\n content: \"\";\n}\n.k-i-shopping-cart::before {\n content: \"\";\n}\n.k-i-connector::before {\n content: \"\";\n}\n.k-i-plus-sm::before, .k-i-splus::before {\n content: \"\";\n}\n.k-i-minus-sm::before, .k-i-sminus::before {\n content: \"\";\n}\n.k-i-kpi-status-deny::before {\n content: \"\";\n}\n.k-i-kpi-status-hold::before {\n content: \"\";\n}\n.k-i-kpi-status-open::before {\n content: \"\";\n}\n.k-i-play::before {\n content: \"\";\n}\n.k-i-pause::before {\n content: \"\";\n}\n.k-i-stop::before {\n content: \"\";\n}\n.k-i-rewind::before {\n content: \"\";\n}\n.k-i-forward::before {\n content: \"\";\n}\n.k-i-volume-down::before, .k-i-volume-low::before {\n content: \"\";\n}\n.k-i-volume-up::before, .k-i-volume-high::before {\n content: \"\";\n}\n.k-i-volume-off::before, .k-i-volume-mute::before {\n content: \"\";\n}\n.k-i-hd::before {\n content: \"\";\n}\n.k-i-subtitles::before {\n content: \"\";\n}\n.k-i-playlist::before {\n content: \"\";\n}\n.k-i-audio::before {\n content: \"\";\n}\n.k-i-play-sm::before {\n content: \"\";\n}\n.k-i-pause-sm::before {\n content: \"\";\n}\n.k-i-stop-sm::before {\n content: \"\";\n}\n.k-i-heart-outline::before {\n content: \"\";\n}\n.k-i-fav-outline::before {\n content: \"\";\n}\n.k-i-favorite-outline::before {\n content: \"\";\n}\n.k-i-heart::before {\n content: \"\";\n}\n.k-i-fav::before {\n content: \"\";\n}\n.k-i-favorite::before {\n content: \"\";\n}\n.k-i-star-outline::before {\n content: \"\";\n}\n.k-i-bookmark-outline::before {\n content: \"\";\n}\n.k-i-star::before {\n content: \"\";\n}\n.k-i-bookmark::before {\n content: \"\";\n}\n.k-i-checkbox::before {\n content: \"\";\n}\n.k-i-shape-rect::before {\n content: \"\";\n}\n.k-i-checkbox-checked::before {\n content: \"\";\n}\n.k-i-tri-state-indeterminate::before {\n content: \"\";\n}\n.k-i-tri-state-null::before {\n content: \"\";\n}\n.k-i-circle::before {\n content: \"\";\n}\n.k-i-radiobutton::before {\n content: \"\";\n}\n.k-i-shape-circle::before {\n content: \"\";\n}\n.k-i-radiobutton-checked::before {\n content: \"\";\n}\n.k-i-notification::before {\n content: \"\";\n}\n.k-i-bell::before {\n content: \"\";\n}\n.k-i-information::before {\n content: \"\";\n}\n.k-i-info::before, .k-i-note::before {\n content: \"\";\n}\n.k-i-question::before {\n content: \"\";\n}\n.k-i-help::before {\n content: \"\";\n}\n.k-i-warning::before {\n content: \"\";\n}\n.k-i-exception::before {\n content: \"\";\n}\n.k-i-photo-camera::before {\n content: \"\";\n}\n.k-i-image::before {\n content: \"\";\n}\n.k-i-photo::before {\n content: \"\";\n}\n.k-i-image-export::before {\n content: \"\";\n}\n.k-i-photo-export::before {\n content: \"\";\n}\n.k-i-zoom-actual-size::before {\n content: \"\";\n}\n.k-i-zoom-best-fit::before {\n content: \"\";\n}\n.k-i-image-resize::before {\n content: \"\";\n}\n.k-i-crop::before {\n content: \"\";\n}\n.k-i-mirror::before {\n content: \"\";\n}\n.k-i-flip-horizontal::before {\n content: \"\";\n}\n.k-i-flip-vertical::before {\n content: \"\";\n}\n.k-i-rotate::before {\n content: \"\";\n}\n.k-i-rotate-right::before, .k-i-rotate-cw::before {\n content: \"\";\n}\n.k-i-rotate-left::before, .k-i-rotate-ccw::before {\n content: \"\";\n}\n.k-i-brush::before {\n content: \"\";\n}\n.k-i-palette::before {\n content: \"\";\n}\n.k-i-paint::before {\n content: \"\";\n}\n.k-i-droplet::before {\n content: \"\";\n}\n.k-i-background::before {\n content: \"\";\n}\n.k-i-line::before {\n content: \"\";\n}\n.k-i-shape-line::before {\n content: \"\";\n}\n.k-i-brightness-contrast::before {\n content: \"\";\n}\n.k-i-saturation::before {\n content: \"\";\n}\n.k-i-invert-colors::before {\n content: \"\";\n}\n.k-i-transperancy::before {\n content: \"\";\n}\n.k-i-opacity::before {\n content: \"\";\n}\n.k-i-greyscale::before {\n content: \"\";\n}\n.k-i-blur::before {\n content: \"\";\n}\n.k-i-sharpen::before {\n content: \"\";\n}\n.k-i-shape::before {\n content: \"\";\n}\n.k-i-round-corners::before {\n content: \"\";\n}\n.k-i-front-element::before {\n content: \"\";\n}\n.k-i-back-element::before {\n content: \"\";\n}\n.k-i-forward-element::before {\n content: \"\";\n}\n.k-i-backward-element::before {\n content: \"\";\n}\n.k-i-align-left-element::before {\n content: \"\";\n}\n.k-i-align-center-element::before {\n content: \"\";\n}\n.k-i-align-right-element::before {\n content: \"\";\n}\n.k-i-align-top-element::before {\n content: \"\";\n}\n.k-i-align-middle-element::before {\n content: \"\";\n}\n.k-i-align-bottom-element::before {\n content: \"\";\n}\n.k-i-thumbnails-up::before {\n content: \"\";\n}\n.k-i-thumbnails-right::before {\n content: \"\";\n}\n.k-i-thumbnails-down::before {\n content: \"\";\n}\n.k-i-thumbnails-left::before {\n content: \"\";\n}\n.k-i-full-screen::before, .k-i-fullscreen-enter::before {\n content: \"\";\n}\n.k-i-fullscreen::before {\n content: \"\";\n}\n.k-i-full-screen-exit::before {\n content: \"\";\n}\n.k-i-fullscreen-exit::before {\n content: \"\";\n}\n.k-i-reset-color::before {\n content: \"\";\n}\n.k-i-paint-remove::before {\n content: \"\";\n}\n.k-i-background-remove::before {\n content: \"\";\n}\n.k-i-page-properties::before {\n content: \"\";\n}\n.k-i-bold::before {\n content: \"\";\n}\n.k-i-italic::before {\n content: \"\";\n}\n.k-i-underline::before {\n content: \"\";\n}\n.k-i-font-family::before {\n content: \"\";\n}\n.k-i-foreground-color::before, .k-i-text::before {\n content: \"\";\n}\n.k-i-convert-lowercase::before {\n content: \"\";\n}\n.k-i-convert-uppercase::before {\n content: \"\";\n}\n.k-i-strikethrough::before, .k-i-strike-through::before {\n content: \"\";\n}\n.k-i-sub-script::before, .k-i-subscript::before {\n content: \"\";\n}\n.k-i-sup-script::before, .k-i-superscript::before {\n content: \"\";\n}\n.k-i-div::before {\n content: \"\";\n}\n.k-i-all::before {\n content: \"\";\n}\n.k-i-h1::before {\n content: \"\";\n}\n.k-i-h2::before {\n content: \"\";\n}\n.k-i-h3::before {\n content: \"\";\n}\n.k-i-h4::before {\n content: \"\";\n}\n.k-i-h5::before {\n content: \"\";\n}\n.k-i-h6::before {\n content: \"\";\n}\n.k-i-list-ordered::before, .k-i-insert-ordered-list::before {\n content: \"\";\n}\n.k-i-list-numbered::before {\n content: \"\";\n}\n.k-i-list-unordered::before, .k-i-insert-unordered-list::before {\n content: \"\";\n}\n.k-i-list-bulleted::before {\n content: \"\";\n}\n.k-i-indent-increase::before {\n content: \"\";\n}\n.k-i-indent::before {\n content: \"\";\n}\n.k-i-indent-decrease::before {\n content: \"\";\n}\n.k-i-outdent::before {\n content: \"\";\n}\n.k-i-insert-up::before, .k-i-insert-n::before {\n content: \"\";\n}\n.k-i-insert-top::before {\n content: \"\";\n}\n.k-i-insert-middle::before, .k-i-insert-m::before {\n content: \"\";\n}\n.k-i-insert-down::before, .k-i-insert-s::before {\n content: \"\";\n}\n.k-i-insert-bottom::before {\n content: \"\";\n}\n.k-i-align-top::before {\n content: \"\";\n}\n.k-i-align-middle::before {\n content: \"\";\n}\n.k-i-align-bottom::before {\n content: \"\";\n}\n.k-i-align-left::before, .k-i-justify-left::before {\n content: \"\";\n}\n.k-i-align-center::before, .k-i-justify-center::before {\n content: \"\";\n}\n.k-i-align-right::before, .k-i-justify-right::before {\n content: \"\";\n}\n.k-i-align-justify::before, .k-i-justify-full::before {\n content: \"\";\n}\n.k-i-align-remove::before, .k-i-justify-clear::before {\n content: \"\";\n}\n.k-i-text-wrap::before {\n content: \"\";\n}\n.k-i-rule-horizontal::before {\n content: \"\";\n}\n.k-i-table-align-top-left::before {\n content: \"\";\n}\n.k-i-table-align-top-center::before {\n content: \"\";\n}\n.k-i-table-align-top-right::before {\n content: \"\";\n}\n.k-i-table-align-middle-left::before {\n content: \"\";\n}\n.k-i-table-align-middle-center::before {\n content: \"\";\n}\n.k-i-table-align-middle-right::before {\n content: \"\";\n}\n.k-i-table-align-bottom-left::before {\n content: \"\";\n}\n.k-i-table-align-bottom-center::before {\n content: \"\";\n}\n.k-i-table-align-bottom-right::before {\n content: \"\";\n}\n.k-i-table-align-remove::before {\n content: \"\";\n}\n.k-i-borders-all::before, .k-i-all-borders::before {\n content: \"\";\n}\n.k-i-borders-outside::before, .k-i-outside-borders::before {\n content: \"\";\n}\n.k-i-borders-inside::before, .k-i-inside-borders::before {\n content: \"\";\n}\n.k-i-borders-inside-horizontal::before, .k-i-inside-horizontal-borders::before {\n content: \"\";\n}\n.k-i-borders-inside-vertical::before, .k-i-inside-vertical-borders::before {\n content: \"\";\n}\n.k-i-border-top::before, .k-i-top-border::before {\n content: \"\";\n}\n.k-i-border-bottom::before, .k-i-bottom-border::before {\n content: \"\";\n}\n.k-i-border-left::before, .k-i-left-border::before {\n content: \"\";\n}\n.k-i-border-right::before, .k-i-right-border::before {\n content: \"\";\n}\n.k-i-border-no::before, .k-i-no-borders::before {\n content: \"\";\n}\n.k-i-borders-show-hide::before {\n content: \"\";\n}\n.k-i-form::before {\n content: \"\";\n}\n.k-i-border::before {\n content: \"\";\n}\n.k-i-form-element::before {\n content: \"\";\n}\n.k-i-code-snippet::before {\n content: \"\";\n}\n.k-i-select-all::before {\n content: \"\";\n}\n.k-i-button::before {\n content: \"\";\n}\n.k-i-select-box::before {\n content: \"\";\n}\n.k-i-calendar-date::before {\n content: \"\";\n}\n.k-i-group-box::before {\n content: \"\";\n}\n.k-i-textarea::before {\n content: \"\";\n}\n.k-i-textbox::before {\n content: \"\";\n}\n.k-i-textbox-hidden::before {\n content: \"\";\n}\n.k-i-password::before {\n content: \"\";\n}\n.k-i-paragraph-add::before {\n content: \"\";\n}\n.k-i-edit-tools::before {\n content: \"\";\n}\n.k-i-template-manager::before {\n content: \"\";\n}\n.k-i-change-manually::before {\n content: \"\";\n}\n.k-i-track-changes::before {\n content: \"\";\n}\n.k-i-track-changes-enable::before {\n content: \"\";\n}\n.k-i-track-changes-accept::before {\n content: \"\";\n}\n.k-i-track-changes-accept-all::before {\n content: \"\";\n}\n.k-i-track-changes-reject::before {\n content: \"\";\n}\n.k-i-track-changes-reject-all::before {\n content: \"\";\n}\n.k-i-document-manager::before {\n content: \"\";\n}\n.k-i-custom-icon::before {\n content: \"\";\n}\n.k-i-dictionary-add::before {\n content: \"\";\n}\n.k-i-image-light-dialog::before {\n content: \"\";\n}\n.k-i-image-insert::before, .k-i-insert-image::before {\n content: \"\";\n}\n.k-i-image-edit::before {\n content: \"\";\n}\n.k-i-image-map-editor::before {\n content: \"\";\n}\n.k-i-comment::before {\n content: \"\";\n}\n.k-i-comment-remove::before {\n content: \"\";\n}\n.k-i-comments-remove-all::before {\n content: \"\";\n}\n.k-i-silverlight::before {\n content: \"\";\n}\n.k-i-media-manager::before {\n content: \"\";\n}\n.k-i-video-external::before {\n content: \"\";\n}\n.k-i-flash-manager::before {\n content: \"\";\n}\n.k-i-find-and-replace::before {\n content: \"\";\n}\n.k-i-find::before {\n content: \"\";\n}\n.k-i-copy::before {\n content: \"\";\n}\n.k-i-files::before {\n content: \"\";\n}\n.k-i-cut::before {\n content: \"\";\n}\n.k-i-paste::before {\n content: \"\";\n}\n.k-i-paste-as-html::before {\n content: \"\";\n}\n.k-i-paste-from-word::before {\n content: \"\";\n}\n.k-i-paste-from-word-strip-file::before {\n content: \"\";\n}\n.k-i-paste-html::before {\n content: \"\";\n}\n.k-i-paste-markdown::before {\n content: \"\";\n}\n.k-i-paste-plain-text::before {\n content: \"\";\n}\n.k-i-apply-format::before {\n content: \"\";\n}\n.k-i-clear-css::before, .k-i-clearformat::before {\n content: \"\";\n}\n.k-i-copy-format::before {\n content: \"\";\n}\n.k-i-strip-all-formating::before {\n content: \"\";\n}\n.k-i-strip-css-format::before {\n content: \"\";\n}\n.k-i-strip-font-elements::before {\n content: \"\";\n}\n.k-i-strip-span-elements::before {\n content: \"\";\n}\n.k-i-strip-word-formatting::before {\n content: \"\";\n}\n.k-i-format-code-block::before {\n content: \"\";\n}\n.k-i-style-builder::before {\n content: \"\";\n}\n.k-i-module-manager::before {\n content: \"\";\n}\n.k-i-hyperlink-light-dialog::before {\n content: \"\";\n}\n.k-i-hyperlink-insert::before {\n content: \"\";\n}\n.k-i-hyperlink-globe::before {\n content: \"\";\n}\n.k-i-hyperlink-globe-remove::before {\n content: \"\";\n}\n.k-i-hyperlink-email::before {\n content: \"\";\n}\n.k-i-anchor::before {\n content: \"\";\n}\n.k-i-table-light-dialog::before, .k-i-create-table::before {\n content: \"\";\n}\n.k-i-table-insert::before {\n content: \"\";\n}\n.k-i-table::before {\n content: \"\";\n}\n.k-i-table-properties::before {\n content: \"\";\n}\n.k-i-table-wizard::before {\n content: \"\";\n}\n.k-i-table-cell::before {\n content: \"\";\n}\n.k-i-table-cell-properties::before {\n content: \"\";\n}\n.k-i-table-column-insert-left::before, .k-i-add-column-left::before {\n content: \"\";\n}\n.k-i-table-column-insert-right::before, .k-i-add-column-right::before {\n content: \"\";\n}\n.k-i-table-row-insert-above::before, .k-i-add-row-above::before {\n content: \"\";\n}\n.k-i-table-row-insert-below::before, .k-i-add-row-below::before {\n content: \"\";\n}\n.k-i-table-column-delete::before, .k-i-delete-column::before {\n content: \"\";\n}\n.k-i-table-row-delete::before, .k-i-delete-row::before {\n content: \"\";\n}\n.k-i-table-cell-delete::before {\n content: \"\";\n}\n.k-i-table-delete::before {\n content: \"\";\n}\n.k-i-cells-merge::before, .k-i-merge-cells::before {\n content: \"\";\n}\n.k-i-cells-merge-horizontally::before, .k-i-merge-horizontally::before {\n content: \"\";\n}\n.k-i-cells-merge-vertically::before, .k-i-merge-vertically::before {\n content: \"\";\n}\n.k-i-cell-split-horizontally::before {\n content: \"\";\n}\n.k-i-cell-split-vertically::before {\n content: \"\";\n}\n.k-i-table-unmerge::before, .k-i-normal-layout::before {\n content: \"\";\n}\n.k-i-pane-freeze::before, .k-i-freeze-panes::before {\n content: \"\";\n}\n.k-i-row-freeze::before, .k-i-freeze-row::before {\n content: \"\";\n}\n.k-i-column-freeze::before, .k-i-freeze-col::before {\n content: \"\";\n}\n.k-i-toolbar-float::before {\n content: \"\";\n}\n.k-i-spell-checker::before {\n content: \"\";\n}\n.k-i-validation-xhtml::before {\n content: \"\";\n}\n.k-i-validation-data::before {\n content: \"\";\n}\n.k-i-toggle-full-screen-mode::before {\n content: \"\";\n}\n.k-i-formula-fx::before, .k-i-fx::before {\n content: \"\";\n}\n.k-i-sum::before {\n content: \"\";\n}\n.k-i-symbol::before {\n content: \"\";\n}\n.k-i-dollar::before {\n content: \"\";\n}\n.k-i-currency::before {\n content: \"\";\n}\n.k-i-percent::before {\n content: \"\";\n}\n.k-i-custom-format::before, .k-i-format-number::before {\n content: \"\";\n}\n.k-i-decimal-increase::before, .k-i-increase-decimal::before {\n content: \"\";\n}\n.k-i-decimal-decrease::before, .k-i-decrease-decimal::before {\n content: \"\";\n}\n.k-i-font-size::before {\n content: \"\";\n}\n.k-i-image-absolute-position::before {\n content: \"\";\n}\n.k-i-globe-outline::before {\n content: \"\";\n}\n.k-i-globe::before {\n content: \"\";\n}\n.k-i-marker-pin::before {\n content: \"\";\n}\n.k-i-marker-pin-target::before {\n content: \"\";\n}\n.k-i-pin::before {\n content: \"\";\n}\n.k-i-unpin::before {\n content: \"\";\n}\n.k-i-share::before {\n content: \"\";\n}\n.k-i-user::before {\n content: \"\";\n}\n.k-i-inbox::before {\n content: \"\";\n}\n.k-i-blogger::before {\n content: \"\";\n}\n.k-i-blogger-box::before {\n content: \"\";\n}\n.k-i-delicious::before {\n content: \"\";\n}\n.k-i-delicious-box::before {\n content: \"\";\n}\n.k-i-digg::before {\n content: \"\";\n}\n.k-i-digg-box::before {\n content: \"\";\n}\n.k-i-email::before {\n content: \"\";\n}\n.k-i-envelop::before {\n content: \"\";\n}\n.k-i-letter::before {\n content: \"\";\n}\n.k-i-email-box::before {\n content: \"\";\n}\n.k-i-envelop-box::before {\n content: \"\";\n}\n.k-i-letter-box::before {\n content: \"\";\n}\n.k-i-facebook::before {\n content: \"\";\n}\n.k-i-facebook-box::before {\n content: \"\";\n}\n.k-i-google::before {\n content: \"\";\n}\n.k-i-google-box::before {\n content: \"\";\n}\n.k-i-google-plus::before {\n content: \"\";\n}\n.k-i-google-plus-box::before {\n content: \"\";\n}\n.k-i-linkedin::before {\n content: \"\";\n}\n.k-i-linkedin-box::before {\n content: \"\";\n}\n.k-i-myspace::before {\n content: \"\";\n}\n.k-i-myspace-box::before {\n content: \"\";\n}\n.k-i-pinterest::before {\n content: \"\";\n}\n.k-i-pinterest-box::before {\n content: \"\";\n}\n.k-i-reddit::before {\n content: \"\";\n}\n.k-i-reddit-box::before {\n content: \"\";\n}\n.k-i-stumble-upon::before {\n content: \"\";\n}\n.k-i-stumble-upon-box::before {\n content: \"\";\n}\n.k-i-tell-a-friend::before {\n content: \"\";\n}\n.k-i-tell-a-friend-box::before {\n content: \"\";\n}\n.k-i-tumblr::before {\n content: \"\";\n}\n.k-i-tumblr-box::before {\n content: \"\";\n}\n.k-i-twitter::before {\n content: \"\";\n}\n.k-i-twitter-box::before {\n content: \"\";\n}\n.k-i-yammer::before {\n content: \"\";\n}\n.k-i-yammer-box::before {\n content: \"\";\n}\n.k-i-behance::before {\n content: \"\";\n}\n.k-i-behance-box::before {\n content: \"\";\n}\n.k-i-dribbble::before {\n content: \"\";\n}\n.k-i-dribbble-box::before {\n content: \"\";\n}\n.k-i-rss::before {\n content: \"\";\n}\n.k-i-rss-box::before {\n content: \"\";\n}\n.k-i-vimeo::before {\n content: \"\";\n}\n.k-i-vimeo-box::before {\n content: \"\";\n}\n.k-i-youtube::before {\n content: \"\";\n}\n.k-i-youtube-box::before {\n content: \"\";\n}\n.k-i-folder::before {\n content: \"\";\n}\n.k-i-folder-open::before {\n content: \"\";\n}\n.k-i-folder-add::before {\n content: \"\";\n}\n.k-i-folder-up::before {\n content: \"\";\n}\n.k-i-folder-more::before {\n content: \"\";\n}\n.k-i-fields-more::before {\n content: \"\";\n}\n.k-i-aggregate-fields::before {\n content: \"\";\n}\n.k-i-file::before {\n content: \"\";\n}\n.k-i-file-vertical::before, .k-i-page-portrait::before {\n content: \"\";\n}\n.k-i-file-add::before, .k-i-insert-file::before {\n content: \"\";\n}\n.k-i-file-txt::before {\n content: \"\";\n}\n.k-i-txt::before {\n content: \"\";\n}\n.k-i-file-csv::before {\n content: \"\";\n}\n.k-i-csv::before {\n content: \"\";\n}\n.k-i-file-excel::before {\n content: \"\";\n}\n.k-i-file-xls::before {\n content: \"\";\n}\n.k-i-excel::before {\n content: \"\";\n}\n.k-i-xls::before, .k-i-xlsa::before {\n content: \"\";\n}\n.k-i-file-word::before {\n content: \"\";\n}\n.k-i-file-doc::before {\n content: \"\";\n}\n.k-i-word::before {\n content: \"\";\n}\n.k-i-doc::before {\n content: \"\";\n}\n.k-i-file-mdb::before {\n content: \"\";\n}\n.k-i-mdb::before {\n content: \"\";\n}\n.k-i-file-ppt::before {\n content: \"\";\n}\n.k-i-ppt::before {\n content: \"\";\n}\n.k-i-file-pdf::before {\n content: \"\";\n}\n.k-i-pdf::before, .k-i-pdfa::before {\n content: \"\";\n}\n.k-i-file-psd::before {\n content: \"\";\n}\n.k-i-psd::before {\n content: \"\";\n}\n.k-i-file-flash::before {\n content: \"\";\n}\n.k-i-flash::before {\n content: \"\";\n}\n.k-i-file-config::before {\n content: \"\";\n}\n.k-i-config::before {\n content: \"\";\n}\n.k-i-file-ascx::before {\n content: \"\";\n}\n.k-i-ascx::before {\n content: \"\";\n}\n.k-i-file-bac::before {\n content: \"\";\n}\n.k-i-bac::before {\n content: \"\";\n}\n.k-i-file-zip::before {\n content: \"\";\n}\n.k-i-zip::before {\n content: \"\";\n}\n.k-i-film::before {\n content: \"\";\n}\n.k-i-css3::before {\n content: \"\";\n}\n.k-i-html5::before {\n content: \"\";\n}\n.k-i-html::before {\n content: \"\";\n}\n.k-i-source-code::before {\n content: \"\";\n}\n.k-i-view-source::before {\n content: \"\";\n}\n.k-i-css::before {\n content: \"\";\n}\n.k-i-js::before {\n content: \"\";\n}\n.k-i-exe::before {\n content: \"\";\n}\n.k-i-csproj::before {\n content: \"\";\n}\n.k-i-vbproj::before {\n content: \"\";\n}\n.k-i-cs::before {\n content: \"\";\n}\n.k-i-vb::before {\n content: \"\";\n}\n.k-i-sln::before {\n content: \"\";\n}\n.k-i-cloud::before {\n content: \"\";\n}\n.k-i-file-horizontal::before, .k-i-page-landscape::before {\n content: \"\";\n}\n.k-i-hand::before {\n content: \"\";\n}\n.k-i-cursor::before {\n content: \"\";\n}\n.k-i-home::before {\n content: \"\";\n}\n.k-i-file-video::before {\n content: \"\";\n}\n.k-i-file-audio::before {\n content: \"\";\n}\n.k-i-file-image::before {\n content: \"\";\n}\n.k-i-file-presentation::before {\n content: \"\";\n}\n.k-i-file-data::before {\n content: \"\";\n}\n.k-i-file-disc-image::before {\n content: \"\";\n}\n.k-i-file-programming::before {\n content: \"\";\n}\n.k-i-parameters-byte-array::before {\n content: \"\";\n}\n.k-i-parameters-unknown::before {\n content: \"\";\n}\n.k-i-file-error::before {\n content: \"\";\n}\n.k-i-files-error::before {\n content: \"\";\n}\n.k-i-overlap::before {\n content: \"\";\n}\n.k-i-align-to-grid::before {\n content: \"\";\n}\n.k-i-size-to-grid::before {\n content: \"\";\n}\n.k-i-make-same-size::before {\n content: \"\";\n}\n.k-i-make-same-width::before {\n content: \"\";\n}\n.k-i-make-same-height::before {\n content: \"\";\n}\n.k-i-make-horizontal-spacing-equal::before {\n content: \"\";\n}\n.k-i-increase-horizontal-spacing::before {\n content: \"\";\n}\n.k-i-decrease-horizontal-spacing::before {\n content: \"\";\n}\n.k-i-remove-horizontal-spacing::before {\n content: \"\";\n}\n.k-i-make-vertical-spacing-equal::before {\n content: \"\";\n}\n.k-i-increase-vertical-spacing::before {\n content: \"\";\n}\n.k-i-decrease-vertical-spacing::before {\n content: \"\";\n}\n.k-i-remove-vertical-spacing::before {\n content: \"\";\n}\n.k-i-eyedropper::before {\n content: \"\";\n}\n.k-i-snap-grid::before {\n content: \"\";\n}\n.k-i-snap-to-gridlines::before {\n content: \"\";\n}\n.k-i-snap-to-snaplines::before {\n content: \"\";\n}\n.k-i-dimensions::before {\n content: \"\";\n}\n.k-i-crosstab::before {\n content: \"\";\n}\n.k-i-table-body::before {\n content: \"\";\n}\n.k-i-table-column-groups::before {\n content: \"\";\n}\n.k-i-table-corner::before {\n content: \"\";\n}\n.k-i-table-row-groups::before {\n content: \"\";\n}\n.k-i-subreport::before {\n content: \"\";\n}\n.k-i-data::before {\n content: \"\";\n}\n.k-i-report-header-section::before {\n content: \"\";\n}\n.k-i-report-footer-section::before {\n content: \"\";\n}\n.k-i-group-header-section::before {\n content: \"\";\n}\n.k-i-group-footer-section::before {\n content: \"\";\n}\n.k-i-page-header-section::before {\n content: \"\";\n}\n.k-i-page-footer-section::before {\n content: \"\";\n}\n.k-i-detail-section::before {\n content: \"\";\n}\n.k-i-toc-section::before {\n content: \"\";\n}\n.k-i-group-section::before {\n content: \"\";\n}\n.k-i-parameters::before {\n content: \"\";\n}\n.k-i-data-csv::before {\n content: \"\";\n}\n.k-i-data-json::before {\n content: \"\";\n}\n.k-i-data-sql::before {\n content: \"\";\n}\n.k-i-data-web::before {\n content: \"\";\n}\n.k-i-group-collection::before {\n content: \"\";\n}\n.k-i-parameter-boolean::before {\n content: \"\";\n}\n.k-i-parameter-date-time::before {\n content: \"\";\n}\n.k-i-parameter-float::before {\n content: \"\";\n}\n.k-i-parameter-integer::before {\n content: \"\";\n}\n.k-i-parameter-string::before {\n content: \"\";\n}\n.k-i-toc-section-level::before {\n content: \"\";\n}\n.k-i-inherited::before {\n content: \"\";\n}\n.k-i-graph::before {\n content: \"\";\n}\n.k-i-column-clustered::before {\n content: \"\";\n}\n.k-i-column-stacked::before {\n content: \"\";\n}\n.k-i-column-stacked100::before {\n content: \"\";\n}\n.k-i-column-range::before {\n content: \"\";\n}\n.k-i-bar-clustered::before {\n content: \"\";\n}\n.k-i-bar-stacked::before {\n content: \"\";\n}\n.k-i-bar-stacked100::before {\n content: \"\";\n}\n.k-i-bar-range::before {\n content: \"\";\n}\n.k-i-area-clustered::before {\n content: \"\";\n}\n.k-i-area-stacked::before {\n content: \"\";\n}\n.k-i-area-stacked100::before {\n content: \"\";\n}\n.k-i-area-range::before {\n content: \"\";\n}\n.k-i-line-stacked::before {\n content: \"\";\n}\n.k-i-line-stacked100::before {\n content: \"\";\n}\n.k-i-line-markers::before {\n content: \"\";\n}\n.k-i-line-stacked-markers::before {\n content: \"\";\n}\n.k-i-line-stacked100-markers::before {\n content: \"\";\n}\n.k-i-pie::before {\n content: \"\";\n}\n.k-i-doughnut::before {\n content: \"\";\n}\n.k-i-scatter::before {\n content: \"\";\n}\n.k-i-scatter-smooth-lines-markers::before {\n content: \"\";\n}\n.k-i-scatter-smooth-lines::before {\n content: \"\";\n}\n.k-i-scatter-straight-lines-markers::before {\n content: \"\";\n}\n.k-i-scatter-straight-lines::before {\n content: \"󦨙\";\n}\n.k-i-bubble::before {\n content: \"\";\n}\n.k-i-candlestick::before {\n content: \"\";\n}\n.k-i-bar::before {\n content: \"\";\n}\n.k-i-radar::before {\n content: \"\";\n}\n.k-i-radar-markers::before {\n content: \"\";\n}\n.k-i-radar-filled::before {\n content: \"\";\n}\n.k-i-rose::before {\n content: \"\";\n}\n.k-i-choropleth::before {\n content: \"\";\n}\n.k-i-align-stretch-element-horizontal::before {\n content: \"\";\n}\n.k-i-align-stretch-element-vertical::before {\n content: \"\";\n}\n.k-i-align-align-left-elements::before {\n content: \"\";\n}\n.k-i-align-center-elements::before {\n content: \"\";\n}\n.k-i-align-right-elements::before {\n content: \"\";\n}\n.k-i-align-stretch-elements-horizontal::before {\n content: \"\";\n}\n.k-i-align-baseline-horizontal::before {\n content: \"\";\n}\n.k-i-align-top-elements::before {\n content: \"\";\n}\n.k-i-align-middle-elements::before {\n content: \"\";\n}\n.k-i-align-bottom-elements::before {\n content: \"\";\n}\n.k-i-align-stretch-elements-vertical::before {\n content: \"\";\n}\n.k-i-align-baseline-vertical::before {\n content: \"\";\n}\n.k-i-justify-start-horizontal::before {\n content: \"\";\n}\n.k-i-justify-center-horizontal::before {\n content: \"\";\n}\n.k-i-justify-end-horizontal::before {\n content: \"\";\n}\n.k-i-justify-between-horizontal::before {\n content: \"\";\n}\n.k-i-justify-around-horizontal::before {\n content: \"\";\n}\n.k-i-justify-start-vertical::before {\n content: \"\";\n}\n.k-i-justify-center-vertical::before {\n content: \"\";\n}\n.k-i-justify-end-vertical::before {\n content: \"\";\n}\n.k-i-justify-between-vertical::before {\n content: \"\";\n}\n.k-i-justify-around-vertical::before {\n content: \"\";\n}\n.k-i-data-rest::before {\n content: \"\";\n}\n.k-i-file-typescript::before {\n content: \"\";\n}\n.k-rtl .k-i-indent-increase,\n.k-rtl .k-i-indent-decrease,\n.k-rtl .k-i-expand,\n.k-rtl .k-i-collapse,\n[dir=rtl] .k-i-expand,\n[dir=rtl] .k-i-collapse {\n transform: scaleX(-1);\n}\n.k-sprite {\n display: inline-block;\n width: 16px;\n height: 16px;\n overflow: hidden;\n background-repeat: no-repeat;\n font-size: 0;\n line-height: 0;\n text-align: center;\n -ms-high-contrast-adjust: none;\n}\n.k-image {\n display: inline-block;\n}\n.k-loading {\n width: 64px;\n height: 64px;\n display: block;\n}\n.k-loading .animate {\n -webkit-animation: loading 2s infinite linear;\n animation: loading 2s infinite linear;\n}\n.k-loading-mask,\n.k-loading-image,\n.k-loading-color {\n width: 100%;\n height: 100%;\n position: absolute;\n top: 0;\n left: 0;\n}\n.k-loading-mask {\n z-index: 100;\n}\n.k-loading-mask.k-opaque .k-loading-color {\n opacity: 1;\n}\n.k-loading-text {\n text-indent: -4000px;\n text-align: center;\n position: absolute;\n}\n.k-loading-image {\n z-index: 2;\n}\n.k-loading-color {\n background-color: #ffffff;\n opacity: 0.3;\n}\n.k-i-loading {\n position: relative;\n background-color: transparent;\n box-sizing: border-box;\n color: currentColor;\n}\n.k-i-loading::before,\n.k-i-loading::after,\n.k-loading-image::before,\n.k-loading-image::after {\n position: absolute;\n top: 50%;\n left: 50%;\n display: inline-block;\n content: \"\";\n box-sizing: inherit;\n border-radius: 50%;\n border-width: 0.05em;\n border-style: solid;\n border-color: currentColor;\n border-top-color: transparent;\n border-bottom-color: transparent;\n background-color: transparent;\n}\n.k-icon.k-i-loading::before,\n.k-icon.k-i-loading::after {\n content: \"\";\n}\n.k-i-loading::before,\n.k-loading-image::before {\n margin-top: -0.5em;\n margin-left: -0.5em;\n width: 1em;\n height: 1em;\n -webkit-animation: k-loading-animation 0.7s linear infinite;\n animation: k-loading-animation 0.7s linear infinite;\n}\n.k-i-loading::after,\n.k-loading-image::after {\n margin-top: -0.25em;\n margin-left: -0.25em;\n width: 0.5em;\n height: 0.5em;\n animation: k-loading-animation reverse 1.4s linear infinite;\n}\n.k-loading-image::before,\n.k-loading-image::after {\n content: \"\";\n border-width: 0.015em;\n font-size: 4em;\n}\n@-webkit-keyframes loading {\n 0% {\n stroke-dasharray: 0 251;\n stroke-dashoffset: 502;\n }\n 50% {\n stroke-dasharray: 250 1;\n }\n 100% {\n stroke-dasharray: 0 251;\n stroke-dashoffset: 0;\n }\n}\n@keyframes loading {\n 0% {\n stroke-dasharray: 0 251;\n stroke-dashoffset: 502;\n }\n 50% {\n stroke-dasharray: 250 1;\n }\n 100% {\n stroke-dasharray: 0 251;\n stroke-dashoffset: 0;\n }\n}\n@-webkit-keyframes k-loading-animation {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n@keyframes k-loading-animation {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n.k-resize-handle,\n.k-resize-hint {\n position: absolute;\n border-color: inherit;\n z-index: 200;\n}\n.k-resize-handle {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.k-resize-handle::before {\n content: \"\";\n border: 0 solid;\n border-color: inherit;\n}\n.k-resize-n {\n width: 100%;\n height: 6px;\n flex-direction: row;\n left: 0;\n top: -3px;\n cursor: n-resize;\n}\n.k-resize-s {\n width: 100%;\n height: 6px;\n flex-direction: row;\n left: 0;\n bottom: -3px;\n cursor: s-resize;\n}\n.k-resize-w {\n width: 6px;\n height: 100%;\n flex-direction: column;\n top: 0;\n left: -3px;\n cursor: w-resize;\n}\n.k-resize-e {\n width: 6px;\n height: 100%;\n flex-direction: column;\n top: 0;\n right: -3px;\n cursor: w-resize;\n}\n.k-resize-sw,\n.k-resize-se,\n.k-resize-nw,\n.k-resize-ne {\n width: 5px;\n height: 5px;\n}\n.k-resize-sw {\n cursor: sw-resize;\n bottom: 0;\n left: 0;\n}\n.k-resize-se {\n cursor: se-resize;\n bottom: 0;\n right: 0;\n}\n.k-resize-nw {\n cursor: nw-resize;\n top: 0;\n left: 0;\n}\n.k-resize-ne {\n cursor: ne-resize;\n top: 0;\n right: 0;\n}\n.k-vertical-resize {\n cursor: row-resize;\n}\n.k-horizontal-resize {\n cursor: col-resize;\n}\n.k-resize-hint {\n display: flex;\n flex-direction: column;\n align-items: center;\n}\n.k-resize-hint .k-resize-hint-handle {\n width: auto;\n height: 20px;\n align-self: stretch;\n}\n.k-resize-hint .k-resize-hint-marker {\n width: 2px;\n height: auto;\n flex: 1 1 auto;\n}\n.k-resize-hint-vertical {\n display: flex;\n flex-direction: row;\n align-items: center;\n}\n.k-resize-hint-vertical .k-resize-hint-handle {\n width: 20px;\n height: auto;\n align-self: stretch;\n}\n.k-resize-hint-vertical .k-resize-hint-marker {\n width: auto;\n height: 2px;\n flex: 1 1 auto;\n}\n.k-scrollbar {\n position: absolute;\n overflow: scroll;\n}\n.k-scrollbar-vertical {\n top: 0;\n right: 0;\n width: 17px;\n height: 100%;\n overflow-x: hidden;\n}\n.k-touch-scrollbar {\n display: none;\n position: absolute;\n z-index: 200000;\n height: 8px;\n width: 8px;\n border: 1px solid #8a8a8a;\n background-color: #858585;\n}\n.k-marquee {\n position: absolute;\n z-index: 100000;\n}\n.k-marquee-color,\n.k-marquee-text {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n}\n.k-marquee-color {\n color: #ffffff;\n background-color: #ff6358;\n border-color: rgba(0, 0, 0, 0.1);\n opacity: 0.6;\n}\n.k-marquee-text {\n color: #ffffff;\n}\n.k-popup {\n background-clip: padding-box;\n margin: 0;\n padding: 0 0;\n border-width: 1px;\n border-style: solid;\n box-sizing: border-box;\n font-size: 14px;\n line-height: 1.4285714286;\n display: flex;\n flex-direction: column;\n align-items: stretch;\n}\n.k-popup .k-ie11 {\n background-clip: border-box;\n}\n.k-popup > .k-widget {\n border-width: 0;\n}\n.k-popup.k-colorpicker-popup {\n display: flex;\n align-items: center;\n}\n.k-popup .k-item {\n outline: none;\n}\n.k-popup .k-rtl .k-list-optionlabel, [dir=rtl] .k-popup .k-list-optionlabel {\n text-align: right;\n}\n.k-animation-container {\n border-radius: 0 0 2px 2px;\n}\n.k-animation-container-shown {\n overflow: visible;\n}\n.k-popup > kendo-list > .k-first {\n border-bottom-width: 1px;\n border-bottom-style: solid;\n}\n.k-popup .k-item.k-first {\n position: relative;\n}\n.k-popup > .k-group-header,\n.k-popup > .k-virtual-wrap > .k-group-header {\n padding: 4px 8px;\n min-height: 1.4285714286em;\n white-space: normal;\n transition: color 0.2s ease-in-out, background-color 0.2s ease-in-out, border-color 0.2s ease-in-out, box-shadow 0.2s ease-in-out;\n border-bottom-width: 1px;\n border-bottom-style: solid;\n}\n.k-popup > .k-group-header {\n margin-top: 0;\n}\n.k-popup .k-outer-group-header {\n padding: 4px 8px;\n min-height: 1.4285714286em;\n white-space: normal;\n}\n.k-popup .k-outer-group-header.k-virtual-item {\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.k-popup > .k-colorpalette,\n.k-popup > .k-flatcolorpicker {\n padding: 8px;\n}\n.k-popup .k-list .k-item > .k-group {\n padding: 0 0.5em;\n font-size: 9.996px;\n line-height: 14px;\n text-transform: uppercase;\n position: absolute;\n top: 0;\n right: 0;\n}\n.k-popup .k-list .k-item > .k-group::before {\n content: \"\";\n width: 14px;\n height: 14px;\n border-width: 7px;\n border-style: solid;\n box-sizing: border-box;\n display: block;\n position: absolute;\n left: -14px;\n bottom: 0;\n}\n.k-rtl.k-popup .k-list .k-item > .k-group,\n[dir=rtl] .k-popup .k-list .k-item > .k-group {\n right: auto;\n left: 0;\n}\n.k-rtl.k-popup .k-list .k-item > .k-group::before,\n[dir=rtl] .k-popup .k-list .k-item > .k-group::before {\n right: -14px;\n left: auto;\n}\n.k-group-header + div > .k-list > .k-item.k-first::before {\n content: \" \";\n display: block;\n border-top-width: 1px;\n border-top-style: solid;\n position: absolute;\n top: -1px;\n left: 0;\n right: 0;\n}\n.k-popup .k-list > .k-outer-group-header {\n border-top-width: 1px;\n border-top-style: solid;\n}\n.k-popup.k-popup-transparent {\n border-width: 0;\n background-color: transparent;\n}\n.k-popup.k-popup-flush {\n padding: 0;\n}\n.k-list-scroller {\n position: relative;\n overflow: auto;\n}\n.k-list {\n height: auto;\n}\n.k-list > .k-item {\n display: flex;\n align-items: center;\n align-content: center;\n cursor: pointer;\n}\n.k-list > .k-item > .k-icon {\n align-self: center;\n margin-right: 8px;\n}\n.k-list > .k-custom-item {\n font-style: italic;\n}\n.k-list > .k-custom-item > .k-i-plus, .k-list > .k-custom-item > .k-plus::before, .k-list > .k-custom-item > .k-i-add::before {\n margin-left: auto;\n margin-right: 0;\n}\n.k-list .k-item,\n.k-list-optionlabel {\n padding: 4px 8px;\n min-height: 1.4285714286em;\n line-height: 1.4285714286em;\n white-space: normal;\n transition-property: color, background-color, outline-color, box-shadow;\n transition-duration: 200ms;\n transition-timing-function: ease;\n}\n.k-list-optionlabel {\n cursor: pointer;\n outline: none;\n}\n.k-list-filter {\n display: block;\n position: relative;\n padding: 8px;\n min-height: calc( 16px + 1.4285714286em + 8px );\n box-sizing: border-box;\n flex: 1 0 auto;\n}\n.k-list-filter > .k-textbox {\n width: 100% !important;\n box-sizing: border-box;\n padding-left: 8px;\n padding-right: calc( 16px + 8px );\n}\n.k-list-filter > .k-icon {\n position: absolute;\n right: calc( 8px + 8px );\n top: 50%;\n transform: translateY(-50%);\n}\n.k-rtl .k-list-filter > .k-textbox, [dir=rtl] .k-list-filter > .k-textbox {\n padding-right: 8px;\n padding-left: calc( 16px + 8px );\n}\n.k-rtl .k-list-filter > .k-icon, [dir=rtl] .k-list-filter > .k-icon {\n left: calc( 8px + 8px );\n right: auto;\n}\n.k-dropdown-button .k-popup .k-item {\n cursor: pointer;\n}\n.k-split-button .k-list .k-item:focus,\n.k-dropdown-button .k-list .k-item:focus {\n outline: none;\n}\n.k-list-container .k-button {\n border-radius: 0;\n padding: 4px 8px;\n border-width: 0;\n color: inherit;\n background-color: transparent;\n background-image: none;\n line-height: inherit;\n display: flex;\n justify-content: flex-start;\n}\n.k-list-container .k-button .k-icon {\n margin: 0 4px 0 0;\n}\n.k-ie11 .k-list-container .k-button {\n display: flex;\n}\n.k-list-container .k-button.k-state-disabled {\n pointer-events: none;\n}\n.k-list-container .k-nodata {\n min-height: 138px;\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n text-transform: uppercase;\n font-weight: lighter;\n text-align: center;\n white-space: normal;\n}\n.k-list-container .k-nodata .k-button {\n display: inline-flex;\n border-width: 1px;\n}\n.k-list-container .k-separator {\n height: 0;\n}\n.k-virtual-content {\n overflow-y: scroll;\n -webkit-overflow-scrolling: touch;\n position: relative;\n}\n.k-virtual-content > .k-virtual-list > .k-virtual-item {\n position: absolute;\n width: 100%;\n box-sizing: border-box;\n overflow: hidden;\n text-overflow: ellipsis;\n display: block;\n white-space: nowrap;\n}\n.k-popup {\n border-color: rgba(0, 0, 0, 0.08);\n color: #656565;\n background-color: #f9f9f9;\n}\n.k-popup > kendo-list > .k-first {\n border-bottom-color: rgba(0, 0, 0, 0.08);\n}\n.k-popup > .k-group-header,\n.k-popup .k-outer-group-header.k-first,\n.k-popup > .k-virtual-wrap > .k-group-header {\n border-bottom-color: rgba(0, 0, 0, 0.08);\n box-shadow: 0 5px 10px 0 rgba(0, 0, 0, 0.06);\n}\n.k-popup .k-outer-group-header {\n border-bottom-color: rgba(0, 0, 0, 0.08);\n}\n.k-popup .k-list .k-item > .k-group {\n color: #ffffff;\n background: #656565;\n}\n.k-popup .k-list .k-item > .k-group::before {\n border-color: #656565 #656565 transparent transparent;\n}\n.k-rtl.k-popup .k-list .k-item > .k-group::before,\n[dir=rtl] .k-popup .k-list .k-item > .k-group::before {\n border-color: #656565 transparent transparent #656565;\n}\n.k-group-header + div > .k-list > .k-item.k-first::before {\n border-color: rgba(0, 0, 0, 0.08);\n}\n.k-list > .k-outer-group-header {\n border-color: rgba(0, 0, 0, 0.08);\n}\n.k-popup > .k-colorpalette,\n.k-popup > .k-flatcolorpicker {\n background: transparent;\n}\n.k-list .k-item:hover,\n.k-list .k-item.k-state-hover,\n.k-list-optionlabel:hover,\n.k-list-optionlabel.k-state-hover {\n color: #656565;\n background-color: #ededed;\n}\n.k-list .k-item:hover.k-state-selected,\n.k-list .k-item.k-state-hover.k-state-selected,\n.k-list-optionlabel:hover.k-state-selected,\n.k-list-optionlabel.k-state-hover.k-state-selected {\n color: #ffffff;\n background-color: #eb5b51;\n}\n.k-list .k-item:focus,\n.k-list .k-item.k-state-focused,\n.k-list-optionlabel:focus,\n.k-list-optionlabel.k-state-focused {\n box-shadow: inset 0 0 0 2px rgba(0, 0, 0, 0.13);\n}\n.k-list .k-item.k-state-selected,\n.k-list-optionlabel.k-state-selected {\n color: #ffffff;\n background-color: #ff6358;\n}\n.k-animation-container {\n border-radius: 0 0 2px 2px;\n}\n.k-animation-container-shown,\n.k-animation-container > .k-popup {\n box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.03), 0 4px 5px 0 rgba(0, 0, 0, 0.04);\n}\n.k-animation-container-fixed > .k-popup {\n box-shadow: none;\n}\n.k-list-container .k-button,\n.k-list-container .k-button.k-state-active {\n box-shadow: none;\n}\n.k-list-container .k-button:hover,\n.k-list-container .k-button.k-state-hover {\n color: #656565;\n background-color: #ededed;\n background-image: none;\n}\n.k-list-container .k-button:active,\n.k-list-container .k-button.k-state-active {\n color: #ffffff;\n background-color: #ff6358;\n background-image: none;\n}\n.k-list-container .k-button.k-state-disabled {\n background: transparent;\n}\n.k-list-container .k-button:focus,\n.k-list-container .k-button.k-state-focused {\n box-shadow: inset 0 0 0 2px rgba(0, 0, 0, 0.13);\n}\n.k-list-container .k-nodata {\n color: rgba(101, 101, 101, 0.5);\n}\n.k-list-container .k-nodata .k-button {\n border-color: rgba(0, 0, 0, 0.08);\n color: #656565;\n background-color: #f6f6f6;\n background-image: linear-gradient(#f6f6f6, #f1f1f1);\n}\n.k-barcode {\n display: inline-block;\n}\n.k-var--chart-font {\n font-size: 14px;\n}\n.k-var--chart-title-font {\n font-size: 1.143em;\n}\n.k-var--chart-label-font {\n font-size: 0.857em;\n}\n.k-chart,\n.k-sparkline,\n.k-stockchart {\n border-width: 0;\n border-style: solid;\n box-sizing: border-box;\n outline: 0;\n font-family: inherit;\n font-size: 14px;\n line-height: 1.4285714286;\n -webkit-touch-callout: none;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n.k-chart,\n.k-stockchart {\n display: block;\n height: 400px;\n}\n.k-chart-surface {\n height: 100%;\n}\n.k-chart .k-popup {\n border-width: 0;\n}\n.k-chart-tooltip-wrapper .k-animation-container-shown,\n.k-chart-tooltip-wrapper.k-animation-container-shown {\n transition: left ease-in 80ms, top ease-in 80ms;\n}\n.k-sparkline-tooltip-wrapper,\n.k-chart-tooltip-wrapper {\n z-index: 12000;\n}\n.k-sparkline-tooltip-wrapper > .k-popup,\n.k-chart-tooltip-wrapper > .k-popup {\n padding: 0;\n border-width: 0;\n}\n.k-chart-tooltip table {\n border-spacing: 0;\n border-collapse: collapse;\n}\n.k-chart-tooltip {\n border-radius: 2px;\n font-size: 13.006px;\n line-height: 1.4285714286;\n padding: 4px 8px;\n}\n.k-chart-tooltip th {\n width: auto;\n text-align: center;\n padding: 1px;\n}\n.k-chart-tooltip td {\n width: auto;\n text-align: left;\n padding: 2px 4px;\n line-height: 1.4285714286;\n vertical-align: middle;\n}\n.k-chart-crosshair-tooltip,\n.k-chart-shared-tooltip {\n border-width: 1px;\n border-style: solid;\n}\n.k-chart-shared-tooltip .k-chart-shared-tooltip-marker {\n display: block;\n width: 15px;\n height: 3px;\n vertical-align: middle;\n}\n.k-selector {\n position: absolute;\n transform: translateZ(0);\n}\n.k-selection {\n position: absolute;\n height: 100%;\n border-width: 1px;\n border-style: solid;\n border-bottom: 0;\n}\n.k-selection-bg {\n position: absolute;\n width: 100%;\n height: 100%;\n}\n.k-handle {\n border-radius: 50%;\n width: 22px;\n height: 22px;\n border-width: 1px;\n border-style: solid;\n z-index: 1;\n position: absolute;\n box-sizing: content-box;\n}\n.k-handle div {\n width: 100%;\n height: 100%;\n}\n.k-left-handle {\n left: -11px;\n}\n.k-right-handle {\n right: -11px;\n}\n.k-left-handle div {\n margin: -22px 0 0 -14.6666666667px;\n padding: 44px 29.3333333333px 0 0;\n}\n.k-right-handle div {\n margin: -22px 0 0 -14.6666666667px;\n padding: 44px 0 0 29.3333333333px;\n}\n.k-left-handle.k-handle-active div {\n margin-left: -44px;\n padding-left: 58.6666666667px;\n}\n.k-right-handle.k-handle-active div {\n margin-left: -44px;\n padding-right: 58.6666666667px;\n}\n.k-mask {\n position: absolute;\n height: 100%;\n}\n.k-border {\n width: 1px;\n height: 100%;\n position: absolute;\n}\n.k-marquee {\n position: absolute;\n z-index: 100000;\n}\n.k-marquee-color,\n.k-marquee-text {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n}\n.k-navigator-hint div {\n position: absolute;\n}\n.k-navigator-hint .k-scroll {\n border-radius: 2px;\n position: absolute;\n height: 4px;\n}\n.k-navigator-hint .k-tooltip {\n margin-top: 20px;\n min-width: 160px;\n opacity: 1;\n text-align: center;\n}\n.k-sparkline,\n.k-sparkline span {\n display: inline-block;\n vertical-align: top;\n}\n.k-sparkline span {\n height: 100%;\n width: 100%;\n}\n.k-chart-dragging {\n user-select: none;\n -moz-user-select: none;\n -webkit-user-select: none;\n -ms-user-select: none;\n}\n.k-chart-donut-center {\n position: absolute;\n display: flex;\n align-items: center;\n flex-direction: column;\n justify-content: center;\n border-radius: 50%;\n text-align: center;\n border: 4px solid transparent;\n box-sizing: border-box;\n}\n.k-pdf-export .k-chart .k-animation-container,\n.k-pdf-export .k-sparkline .k-animation-container,\n.k-pdf-export .k-stockchart .k-animation-container {\n display: none;\n}\n.k-diagram {\n height: 600px;\n}\n.k-diagram .km-scroll-wrapper {\n width: 100%;\n height: 100%;\n position: relative;\n}\n.k-diagram .km-scroll-wrapper {\n width: 100%;\n height: 100%;\n position: relative;\n}\n.k-canvas-container {\n width: 100%;\n height: 100%;\n}\n.k-diagram img {\n box-sizing: content-box;\n}\n.k-treemap {\n height: 400px;\n overflow: hidden;\n}\n.k-treemap .k-treemap-tile {\n margin: -1px 0 0 -1px;\n height: 100%;\n box-sizing: border-box;\n border: 1px solid;\n border-color: inherit;\n color: inherit;\n background-color: inherit;\n overflow: hidden;\n position: absolute;\n}\n.k-treemap > .k-treemap-tile {\n position: relative;\n}\n.k-treemap .k-treemap-title {\n padding: 2px 4px;\n border-width: 0 0 1px;\n border-style: solid;\n border-color: inherit;\n font-size: 14px;\n background-position: 0 0;\n background-repeat: repeat-x;\n}\n.k-treemap .k-treemap-title-vertical {\n padding: 4px 2px;\n width: 1.4285714286em;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n position: absolute;\n top: 0;\n bottom: 0;\n}\n.k-treemap .k-treemap-title-vertical > div {\n transform-origin: right;\n transform: rotate(-90deg);\n position: absolute;\n top: 0;\n right: 1em;\n}\n.k-treemap .k-treemap-wrap {\n border-color: inherit;\n color: inherit;\n background-color: inherit;\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n}\n.k-treemap .k-treemap-title + .k-treemap-wrap {\n top: calc( 4px + (1.4285714286 * 14px) + 1px);\n}\n.k-treemap .k-treemap-title-vertical + .k-treemap-wrap {\n left: calc( 4px + (1.4285714286 * 14px) + 1px);\n}\n.k-treemap .k-leaf {\n padding: 4px;\n}\n.k-arcgauge {\n display: inline-block;\n}\n.k-arcgauge-label {\n position: absolute;\n text-align: center;\n padding: 0;\n margin: 0;\n}\n.k-qrcode {\n display: inline-block;\n}\n.k-var--accent {\n background-color: #ff6358;\n}\nsvg .k-var--accent {\n fill: #ff6358;\n}\n.k-var--accent-contrast {\n background-color: #ffffff;\n}\nsvg .k-var--accent-contrast {\n fill: #ffffff;\n}\n.k-var--primary {\n background-color: #ff6358;\n}\nsvg .k-var--primary {\n fill: #ff6358;\n}\n.k-var--primary-contrast {\n background-color: #ffffff;\n}\nsvg .k-var--primary-contrast {\n fill: #ffffff;\n}\n.k-var--base {\n background-color: #f6f6f6;\n}\nsvg .k-var--base {\n fill: #f6f6f6;\n}\n.k-var--background {\n background-color: #ffffff;\n}\nsvg .k-var--background {\n fill: #ffffff;\n}\n.k-var--border-radius {\n margin-top: 2px;\n}\n.k-var--normal-background {\n background-color: #f6f6f6;\n}\nsvg .k-var--normal-background {\n fill: #f6f6f6;\n}\n.k-var--normal-text-color {\n background-color: #656565;\n}\nsvg .k-var--normal-text-color {\n fill: #656565;\n}\n.k-var--hover-background {\n background-color: #ededed;\n}\nsvg .k-var--hover-background {\n fill: #ededed;\n}\n.k-var--hover-text-color {\n background-color: #656565;\n}\nsvg .k-var--hover-text-color {\n fill: #656565;\n}\n.k-var--selected-background {\n background-color: #ff6358;\n}\nsvg .k-var--selected-background {\n fill: #ff6358;\n}\n.k-var--selected-text-color {\n background-color: #ffffff;\n}\nsvg .k-var--selected-text-color {\n fill: #ffffff;\n}\n.k-var--success {\n background-color: #37b400;\n}\nsvg .k-var--success {\n fill: #37b400;\n}\n.k-var--info {\n background-color: #0058e9;\n}\nsvg .k-var--info {\n fill: #0058e9;\n}\n.k-var--warning {\n background-color: #ffc000;\n}\nsvg .k-var--warning {\n fill: #ffc000;\n}\n.k-var--error {\n background-color: #f31700;\n}\nsvg .k-var--error {\n fill: #f31700;\n}\n.k-var--series-a {\n background-color: #ff6358;\n}\nsvg .k-var--series-a {\n fill: #ff6358;\n}\n.k-var--series-b {\n background-color: #ffd246;\n}\nsvg .k-var--series-b {\n fill: #ffd246;\n}\n.k-var--series-c {\n background-color: #78d237;\n}\nsvg .k-var--series-c {\n fill: #78d237;\n}\n.k-var--series-d {\n background-color: #28b4c8;\n}\nsvg .k-var--series-d {\n fill: #28b4c8;\n}\n.k-var--series-e {\n background-color: #2d73f5;\n}\nsvg .k-var--series-e {\n fill: #2d73f5;\n}\n.k-var--series-f {\n background-color: #aa46be;\n}\nsvg .k-var--series-f {\n fill: #aa46be;\n}\n.k-var--gauge-pointer {\n background-color: #ff6358;\n}\nsvg .k-var--gauge-pointer {\n fill: #ff6358;\n}\n.k-var--gauge-track {\n background-color: #e6e6e6;\n}\nsvg .k-var--gauge-track {\n fill: #e6e6e6;\n}\n.k-var--chart-inactive {\n background-color: rgba(101, 101, 101, 0.5);\n}\n.k-var--chart-major-lines {\n background-color: rgba(0, 0, 0, 0.08);\n}\n.k-var--chart-minor-lines {\n background-color: rgba(0, 0, 0, 0.04);\n}\n.k-var--chart-area-opacity {\n opacity: 0.8;\n}\n.k-var--chart-notes-background {\n background-color: rgba(0, 0, 0, 0.5);\n}\n.k-var--chart-notes-border {\n background-color: rgba(0, 0, 0, 0.5);\n}\n.k-var--chart-notes-lines {\n background-color: rgba(0, 0, 0, 0.5);\n}\n.k-var--chart-crosshair-background {\n background-color: rgba(0, 0, 0, 0.5);\n}\n.k-var--chart-error-bars-background {\n background-color: rgba(0, 0, 0, 0.5);\n}\n.k-chart,\n.k-sparkline,\n.k-stockchart {\n border-color: rgba(0, 0, 0, 0.08);\n color: #656565;\n background-color: transparent;\n}\n.k-chart .k-popup,\n.k-sparkline .k-popup,\n.k-stockchart .k-popup {\n background: transparent;\n}\n.k-chart-tooltip {\n color: #ffffff;\n}\n.k-chart-tooltip-inverse {\n color: black;\n}\n.k-chart-crosshair-tooltip,\n.k-chart-shared-tooltip {\n color: #656565;\n background-color: #f6f6f6;\n border-color: rgba(0, 0, 0, 0.08);\n}\n.k-selection {\n border-color: rgba(0, 0, 0, 0.08);\n box-shadow: inset 0 1px 7px rgba(0, 0, 0, 0.15);\n}\n.k-selection-bg {\n background-color: transparent;\n}\n.k-handle {\n cursor: e-resize;\n border-color: rgba(0, 0, 0, 0.08);\n color: #656565;\n background-color: #f6f6f6;\n background-image: linear-gradient(#f6f6f6, #f1f1f1);\n}\n.k-handle:hover {\n border-color: rgba(0, 0, 0, 0.15);\n color: #656565;\n background-color: #ededed;\n background-image: linear-gradient(#ededed, #e8e8e8);\n}\n.k-handle div {\n background-color: transparent;\n}\n.k-mask {\n background-color: #ffffff;\n opacity: 0.8;\n}\n.k-marquee-color {\n background-color: #ff6358;\n}\n.k-marquee-color {\n opacity: 0.6;\n}\n.k-treemap {\n border-color: rgba(0, 0, 0, 0.08);\n color: #656565;\n background-color: #ffffff;\n}\n.k-treemap .k-treemap-title {\n border-color: rgba(0, 0, 0, 0.08);\n color: #656565;\n background-color: #f6f6f6;\n}\n.k-treemap .k-leaf {\n color: #ffffff;\n}\n.k-treemap .k-leaf.k-inverse {\n color: #656565;\n}\n.k-treemap .k-leaf.k-state-hover {\n box-shadow: inset 0 0 0 3px rgba(0, 0, 0, 0.08);\n}\n:root kendo-popup.k-chart-tooltip-wrapper.k-animation-container > .k-popup {\n box-shadow: none;\n border: 0;\n}\n:root .k-chart {\n height: 150px;\n width: calc(100% + 2.1rem);\n border-width: 0;\n transform: translateX(-2.1rem);\n}\n:root .k-chart-tooltip-wrapper {\n z-index: 10000001 !important;\n}\n:root .k-chart-tooltip-wrapper.k-animation-container {\n box-shadow: none;\n}\n:root .k-chart-tooltip-wrapper.k-animation-container {\n transform: translate(calc(-50% - 12px), calc(-50% - 47px));\n}\n:root .k-chart-tooltip-wrapper.k-animation-container > .k-popup {\n background-color: transparent;\n border-color: transparent;\n}\n:root .sf-notification.-up::before {\n bottom: -20px;\n}\n:root .sf-notification.-up::after {\n bottom: -18px;\n}"); + + }), + + "./src/insights-loader/components/touchpoint-chart/touchpoint-chart.component.ts": + + + (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var tslib_1 = __webpack_require__( 100002); +var operators_1 = __webpack_require__( 100007); +var core_1 = __webpack_require__( 100003); +var kendo_chart_data_converter_service_1 = __webpack_require__( "./src/insights-loader/components/touchpoint-chart/kendo-chart-data-converter.service.ts"); +var touchpoint_statistics_chart_data_source_1 = __webpack_require__( "./src/insights-loader/components/touchpoint-chart/touchpoint-statistics-chart-data-source.ts"); +var kendo_drawing_1 = __webpack_require__( "./node_modules/@progress/kendo-drawing/dist/es/main.js"); +var FAKE_DATA_BAR_COLOR = "#eee"; +var TouchpointChartComponent = (function () { + function TouchpointChartComponent(kendoChartDataConverterService) { + this.kendoChartDataConverterService = kendoChartDataConverterService; + this.kendoChartDataSource = new touchpoint_statistics_chart_data_source_1.TouchpointStatisticsChartDataSource(); + this.loadingData = true; + this.httpError = null; + this.valueAxisValueToToShortMagnituteDisplay = this.valueAxisValueToToShortMagnituteDisplay.bind(this); + } + TouchpointChartComponent.prototype.ngOnInit = function () { + this.getTouchpointStatistics(); + }; + TouchpointChartComponent.prototype.getTouchpointStatistics = function () { + var _this = this; + this.httpError = null; + this.loadingData = true; + this.kendoChartDataConverterService.getTouchpointStatisticsDataSource(this.touchpoint.Id, this.periodLengthInDays).pipe(operators_1.finalize(function () { return _this.loadingData = false; })) + .subscribe(function (kendoChartDataSource) { + _this.kendoChartDataSource = kendoChartDataSource; + }, function (error) { + _this.httpError = error; + }); + }; + TouchpointChartComponent.prototype.adjustZeroBarOffset = function (e) { + var ZERO_BAR_SIZE = 1; + var visual; + if (e.value === 0 || e.rect.size.height < ZERO_BAR_SIZE) { + e.rect.origin.y -= ZERO_BAR_SIZE; + e.rect.size.height = ZERO_BAR_SIZE; + visual = new kendo_drawing_1.Rect(e.rect, { + fill: { + color: e.options.color + }, + stroke: { + color: e.options.color, + width: 1 + } + }); + } + else { + visual = e.createVisual(); + } + return visual; + }; + TouchpointChartComponent.prototype.valueAxisValueToToShortMagnituteDisplay = function (valueAxisItem) { + var valueAxisValue = valueAxisItem.value; + // valueAxisItem.value is each label on the Y axis(Value Axis). It is calculated by Kendo. + // When values on the charts are relatively large, the valueAxisItem.value tend to be round numbers + // for example there are point with values >= 500 and <= 1000, the label values will be 0, 500, 1000 + return this.kendoChartDataConverterService.formatNumberByIncludingMagnituteNotation(valueAxisValue); + }; + TouchpointChartComponent.prototype.getBarColor = function (bar) { + if (bar.dataItem.IsFake) + return FAKE_DATA_BAR_COLOR; + else + return "#38AB63"; + }; + TouchpointChartComponent.prototype.highlightVisual = function (bar) { + var highlight = FAKE_DATA_BAR_COLOR; + if (!bar.dataItem.IsFake) { + highlight = "#309255"; + } + var visual = bar.createVisual(); + visual.fill(highlight); + visual.stroke(highlight); + visual.stroke().opacity = 1; + return visual; + }; + TouchpointChartComponent.ctorParameters = function () { return [ + { type: kendo_chart_data_converter_service_1.KendoChartDataConverterService, decorators: [{ type: core_1.Inject, args: [core_1.forwardRef(function () { return kendo_chart_data_converter_service_1.KendoChartDataConverterService; }),] }] } + ]; }; + tslib_1.__decorate([ + core_1.Input(), + tslib_1.__metadata("design:type", Object) + ], TouchpointChartComponent.prototype, "touchpoint", void 0); + tslib_1.__decorate([ + core_1.Input(), + tslib_1.__metadata("design:type", Number) + ], TouchpointChartComponent.prototype, "periodLengthInDays", void 0); + TouchpointChartComponent = tslib_1.__decorate([ + core_1.Component({ + selector: "touchpoint-chart", + template: tslib_1.__importDefault(__webpack_require__( "./node_modules/raw-loader/dist/cjs.js!./src/insights-loader/components/touchpoint-chart/touchpoint-chart.component.html")).default, + encapsulation: core_1.ViewEncapsulation.None, + styles: [tslib_1.__importDefault(__webpack_require__( "./src/insights-loader/components/touchpoint-chart/touchpoint-chart.component.scss")).default] + }), + tslib_1.__param(0, core_1.Inject(core_1.forwardRef(function () { return kendo_chart_data_converter_service_1.KendoChartDataConverterService; }))), + tslib_1.__metadata("design:paramtypes", [kendo_chart_data_converter_service_1.KendoChartDataConverterService]) + ], TouchpointChartComponent); + return TouchpointChartComponent; +}()); +exports.TouchpointChartComponent = TouchpointChartComponent; + + + }), + + "./src/insights-loader/components/touchpoint-chart/touchpoint-statistics-chart-data-source.ts": + + + (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var TouchpointStatisticsChartDataSource = (function () { + function TouchpointStatisticsChartDataSource() { + this.touchpointStatisticsItems = []; + this.categoryAxisLabels = []; + } + return TouchpointStatisticsChartDataSource; +}()); +exports.TouchpointStatisticsChartDataSource = TouchpointStatisticsChartDataSource; + + + }), + + "./src/insights-loader/components/touchpoint-highest-attribution-table/touchpoint-hightest-attribution-table.component.scss": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_exports__["default"] = ("touchpoints-attribution-table .sf-tree-list {\n width: 100%;\n}\ntouchpoints-attribution-table .sf-tree-list__cell {\n word-break: normal;\n}\ntouchpoints-attribution-table .sf-tree-list__cell.-head {\n cursor: default;\n}\ntouchpoints-attribution-table .sf-tree-list__cell.-head.-with-tooltip {\n overflow: visible;\n}\ntouchpoints-attribution-table .sf-tree-list .-with-tooltip .sf-tooltip {\n display: inline;\n}\ntouchpoints-attribution-table .sf-tree-list .-with-tooltip .sf-tooltip__content {\n max-width: 280px;\n text-transform: none;\n}\ntouchpoints-attribution-table .sf-tree-list .-with-tooltip .notification__content,\ntouchpoints-attribution-table .sf-tree-list .-with-tooltip .sf-notification__content {\n overflow: hidden;\n white-space: normal;\n}\ntouchpoints-attribution-table .sf-tree-list__cell.-head.-txt-align-right,\ntouchpoints-attribution-table .sf-tree-list__cell.-head.-sf-txt-align-right {\n text-align: right;\n}\ntouchpoints-attribution-table tr.sf-tree-list__row {\n display: table-row;\n}\ntouchpoints-attribution-table tr.sf-tree-list__row .sf-tree-list__cell:first-child {\n padding-left: 0;\n}\ntouchpoints-attribution-table tr.sf-tree-list__row .sf-tree-list__cell:last-child {\n padding-right: 0;\n}\ntouchpoints-attribution-table .k-popup {\n font-size: inherit;\n}\ntouchpoints-attribution-table .sf-notification.-down {\n margin-top: 10px;\n}\nkendo-popup .sf-notification.-tooltip {\n padding: 10px 9px;\n}"); + + }), + + "./src/insights-loader/components/touchpoint-highest-attribution-table/touchpoint-hightest-attribution-table.component.ts": + + + (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var tslib_1 = __webpack_require__( 100002); +var operators_1 = __webpack_require__( 100007); +var core_1 = __webpack_require__( 100003); +var sitefinity_insight_touchpoints_requester_service_1 = __webpack_require__( "./src/insights-loader/services/sitefinity-insight-touchpoints-requester.service.ts"); +var sitefinity_insight_conversions_requester_service_1 = __webpack_require__( "./src/insights-loader/services/sitefinity-insight-conversions-requester.service.ts"); +var goal_period_display_service_1 = __webpack_require__( "./src/insights-loader/services/goal-period-display.service.ts"); +var number_display_formatter_service_1 = __webpack_require__( "./src/insights-loader/services/number-display-formatter.service.ts"); +var TouchpointHighestAttributionTableComponent = (function () { + function TouchpointHighestAttributionTableComponent(numberDisplayFormatter, touchpointRequester, conversionRequester) { + this.numberDisplayFormatter = numberDisplayFormatter; + this.touchpointRequester = touchpointRequester; + this.conversionRequester = conversionRequester; + this.loadingData = true; + this.httpError = null; + } + TouchpointHighestAttributionTableComponent.prototype.ngOnInit = function () { + this.getAttributions(); + }; + TouchpointHighestAttributionTableComponent.prototype.getAttributions = function () { + var _this = this; + this.httpError = null; + this.loadingData = true; + this.touchpointRequester.getAttributions(this.touchpoint.Id, 3).pipe(operators_1.mergeMap(function (attributions) { + var goalIds = attributions.map(function (a) { return a.GoalId; }); + return _this.conversionRequester.getAllGoals(goalIds).pipe(operators_1.map(function (goals) { + return { attributions: attributions, goals: goals }; + })); + }), operators_1.map(function (attributionsAndGoals) { + var e_1, _a; + var attributions = attributionsAndGoals.attributions; + var goals = attributionsAndGoals.goals; + var goalIdToGoalEntityMap = {}; + try { + for (var goals_1 = tslib_1.__values(goals), goals_1_1 = goals_1.next(); !goals_1_1.done; goals_1_1 = goals_1.next()) { + var goal = goals_1_1.value; + goalIdToGoalEntityMap[goal.Id] = { Name: goal.Name, InputDays: goal.InputDays }; + } + } + catch (e_1_1) { e_1 = { error: e_1_1 }; } + finally { + try { + if (goals_1_1 && !goals_1_1.done && (_a = goals_1.return)) _a.call(goals_1); + } + finally { if (e_1) throw e_1.error; } + } + var attributionsWithGoalInfo = attributions.map(function (attribution) { + var goal = goalIdToGoalEntityMap[attribution.GoalId]; + attribution.GoalName = goal.Name; + attribution.GoalPeriod = goal_period_display_service_1.GoalPeriodDisplayService.getDisplayPeriod(goal.InputDays); + return attribution; + }); + return attributionsWithGoalInfo; + }), operators_1.finalize(function () { return _this.loadingData = false; })) + .subscribe(function (attributionsWithGoalNames) { + _this.attributionsWithGoalNames = attributionsWithGoalNames; + }, function (error) { + _this.httpError = error; + }); + }; + TouchpointHighestAttributionTableComponent.ctorParameters = function () { return [ + { type: number_display_formatter_service_1.NumberDisplayFormatterService, decorators: [{ type: core_1.Inject, args: [core_1.forwardRef(function () { return number_display_formatter_service_1.NumberDisplayFormatterService; }),] }] }, + { type: sitefinity_insight_touchpoints_requester_service_1.SitefinityInsightTouchpointRequesterService, decorators: [{ type: core_1.Inject, args: [core_1.forwardRef(function () { return sitefinity_insight_touchpoints_requester_service_1.SitefinityInsightTouchpointRequesterService; }),] }] }, + { type: sitefinity_insight_conversions_requester_service_1.SitefinityInsightConversionsRequesterService, decorators: [{ type: core_1.Inject, args: [core_1.forwardRef(function () { return sitefinity_insight_conversions_requester_service_1.SitefinityInsightConversionsRequesterService; }),] }] } + ]; }; + tslib_1.__decorate([ + core_1.Input(), + tslib_1.__metadata("design:type", Object) + ], TouchpointHighestAttributionTableComponent.prototype, "touchpoint", void 0); + TouchpointHighestAttributionTableComponent = tslib_1.__decorate([ + core_1.Component({ + selector: "touchpoints-attribution-table", + template: tslib_1.__importDefault(__webpack_require__( "./node_modules/raw-loader/dist/cjs.js!./src/insights-loader/components/touchpoint-highest-attribution-table/touchpoint-hightest-attribution-table.component.html")).default, + encapsulation: core_1.ViewEncapsulation.None, + styles: [tslib_1.__importDefault(__webpack_require__( "./src/insights-loader/components/touchpoint-highest-attribution-table/touchpoint-hightest-attribution-table.component.scss")).default] + }), + tslib_1.__param(0, core_1.Inject(core_1.forwardRef(function () { return number_display_formatter_service_1.NumberDisplayFormatterService; }))), + tslib_1.__param(1, core_1.Inject(core_1.forwardRef(function () { return sitefinity_insight_touchpoints_requester_service_1.SitefinityInsightTouchpointRequesterService; }))), + tslib_1.__param(2, core_1.Inject(core_1.forwardRef(function () { return sitefinity_insight_conversions_requester_service_1.SitefinityInsightConversionsRequesterService; }))), + tslib_1.__metadata("design:paramtypes", [number_display_formatter_service_1.NumberDisplayFormatterService, + sitefinity_insight_touchpoints_requester_service_1.SitefinityInsightTouchpointRequesterService, + sitefinity_insight_conversions_requester_service_1.SitefinityInsightConversionsRequesterService]) + ], TouchpointHighestAttributionTableComponent); + return TouchpointHighestAttributionTableComponent; +}()); +exports.TouchpointHighestAttributionTableComponent = TouchpointHighestAttributionTableComponent; + + + }), + + "./src/insights-loader/components/touchpoint-hits/touchpoint-hits.component.ts": + + + (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var tslib_1 = __webpack_require__( 100002); +var rxjs_1 = __webpack_require__( 100006); +var operators_1 = __webpack_require__( 100007); +var core_1 = __webpack_require__( 100003); +var sitefinity_insight_touchpoints_requester_service_1 = __webpack_require__( "./src/insights-loader/services/sitefinity-insight-touchpoints-requester.service.ts"); +var number_display_formatter_service_1 = __webpack_require__( "./src/insights-loader/services/number-display-formatter.service.ts"); +var TouchpointHitsComponent = (function () { + function TouchpointHitsComponent(numberDisplayFormatter, sitefinityInsightServerService) { + this.numberDisplayFormatter = numberDisplayFormatter; + this.sitefinityInsightServerService = sitefinityInsightServerService; + this.hasStatisticsOutsideOfTheRequestedPeriod = false; + this.hasStatisticsForEntirePeriod = false; + this.loadingData = true; + this.httpError = null; + } + TouchpointHitsComponent.prototype.ngOnInit = function () { + this.getTouchpointHits(); + }; + TouchpointHitsComponent.prototype.getTouchpointHits = function () { + var _this = this; + this.loadingData = true; + this.httpError = null; + var extendedPeriod = this.periodLengthInDays + 1; + var dailyStatistics$ = this.sitefinityInsightServerService.getDailyStatistics(this.touchpoint.Id, extendedPeriod); + var periodMetrics$ = this.sitefinityInsightServerService.getPeriodMetrics(this.touchpoint.Id, this.periodString); + rxjs_1.forkJoin(dailyStatistics$, periodMetrics$).pipe(operators_1.finalize(function () { return _this.loadingData = false; })) + .subscribe(function (_a) { + var _b = tslib_1.__read(_a, 2), dailyStatistics = _b[0], touchpointPeriodMetrics = _b[1]; + _this.touchpointPeriodMetrics = touchpointPeriodMetrics; + _this.formattedImprovement = _this.numberDisplayFormatter.roundPercentage(touchpointPeriodMetrics.Improvement); + _this.hasStatisticsOutsideOfTheRequestedPeriod = dailyStatistics.length >= extendedPeriod; + _this.hasStatisticsForEntirePeriod = dailyStatistics.length >= _this.periodLengthInDays; + }, function (error) { + _this.httpError = error; + }); + }; + TouchpointHitsComponent.ctorParameters = function () { return [ + { type: number_display_formatter_service_1.NumberDisplayFormatterService, decorators: [{ type: core_1.Inject, args: [core_1.forwardRef(function () { return number_display_formatter_service_1.NumberDisplayFormatterService; }),] }] }, + { type: sitefinity_insight_touchpoints_requester_service_1.SitefinityInsightTouchpointRequesterService, decorators: [{ type: core_1.Inject, args: [core_1.forwardRef(function () { return sitefinity_insight_touchpoints_requester_service_1.SitefinityInsightTouchpointRequesterService; }),] }] } + ]; }; + tslib_1.__decorate([ + core_1.Input(), + tslib_1.__metadata("design:type", Object) + ], TouchpointHitsComponent.prototype, "touchpoint", void 0); + tslib_1.__decorate([ + core_1.Input(), + tslib_1.__metadata("design:type", Number) + ], TouchpointHitsComponent.prototype, "periodLengthInDays", void 0); + tslib_1.__decorate([ + core_1.Input(), + tslib_1.__metadata("design:type", String) + ], TouchpointHitsComponent.prototype, "periodString", void 0); + TouchpointHitsComponent = tslib_1.__decorate([ + core_1.Component({ + selector: "touchpoint-hits", + template: tslib_1.__importDefault(__webpack_require__( "./node_modules/raw-loader/dist/cjs.js!./src/insights-loader/components/touchpoint-hits/touchpoint-hits.component.html")).default + }), + tslib_1.__param(0, core_1.Inject(core_1.forwardRef(function () { return number_display_formatter_service_1.NumberDisplayFormatterService; }))), + tslib_1.__param(1, core_1.Inject(core_1.forwardRef(function () { return sitefinity_insight_touchpoints_requester_service_1.SitefinityInsightTouchpointRequesterService; }))), + tslib_1.__metadata("design:paramtypes", [number_display_formatter_service_1.NumberDisplayFormatterService, + sitefinity_insight_touchpoints_requester_service_1.SitefinityInsightTouchpointRequesterService]) + ], TouchpointHitsComponent); + return TouchpointHitsComponent; +}()); +exports.TouchpointHitsComponent = TouchpointHitsComponent; + + + }), + + "./src/insights-loader/create-content-touchpoint/create-content-touchpoint.component.scss": + + + (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + __webpack_exports__["default"] = (".-sf-centered-vertical-box {\n margin-top: -100px;\n margin-bottom: -66px;\n}"); + + }), + + "./src/insights-loader/create-content-touchpoint/create-content-touchpoint.component.ts": + + + (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var tslib_1 = __webpack_require__( 100002); +var operators_1 = __webpack_require__( 100007); +var core_1 = __webpack_require__( 100003); +var sitefinity_insight_touchpoints_requester_service_1 = __webpack_require__( "./src/insights-loader/services/sitefinity-insight-touchpoints-requester.service.ts"); +var content_item_info_1 = __webpack_require__( "./src/insights-loader/entities/content-item-info.ts"); +var create_touchpoint_view_state_1 = __webpack_require__( "./src/insights-loader/create-content-touchpoint/create-touchpoint-view-state.ts"); +var site_data_store_1 = __webpack_require__( "./src/insights-loader/entities/site-data-store.ts"); +var CreateContentTouchpointComponent = (function () { + function CreateContentTouchpointComponent(sitefinityInsightServerService) { + this.sitefinityInsightServerService = sitefinityInsightServerService; + this.viewState = new create_touchpoint_view_state_1.CreateTouchpointViewState(); + this.loadingData = false; + // tslint:disable-next-line + this.closeButtonPressedEvent = new core_1.EventEmitter(); + // tslint:disable-next-line + this.touchpointCreatedEvent = new core_1.EventEmitter(); + } + CreateContentTouchpointComponent.prototype.ngOnInit = function () { + this.viewState.showCreateTouchpointUI(); + }; + CreateContentTouchpointComponent.prototype.cancel = function () { + this.closeButtonPressedEvent.emit(null); + }; + CreateContentTouchpointComponent.prototype.createTouchpoint = function () { + var _this = this; + this.httpError = ''; + this.loadingData = true; + this.sitefinityInsightServerService.createContentTouchpoint(this.siteDataStore.DefaultContentCulture, this.contentItemInfo).pipe(operators_1.finalize(function () { return _this.loadingData = false; })) + .subscribe(function (touchpoint) { + _this.createdTouchpoint = touchpoint; + _this.viewState.showSuccessfullyCreatedUI(); + _this.touchpointCreatedEvent.emit(_this.createdTouchpoint); + }, function (error) { + _this.httpError = error; + }); + }; + CreateContentTouchpointComponent.prototype.close = function () { + this.closeButtonPressedEvent.emit(null); + }; + CreateContentTouchpointComponent.ctorParameters = function () { return [ + { type: sitefinity_insight_touchpoints_requester_service_1.SitefinityInsightTouchpointRequesterService, decorators: [{ type: core_1.Inject, args: [core_1.forwardRef(function () { return sitefinity_insight_touchpoints_requester_service_1.SitefinityInsightTouchpointRequesterService; }),] }] } + ]; }; + tslib_1.__decorate([ + core_1.Input(), + tslib_1.__metadata("design:type", content_item_info_1.ContentItemInfo) + ], CreateContentTouchpointComponent.prototype, "contentItemInfo", void 0); + tslib_1.__decorate([ + core_1.Input(), + tslib_1.__metadata("design:type", site_data_store_1.SiteDataStore) + ], CreateContentTouchpointComponent.prototype, "siteDataStore", void 0); + tslib_1.__decorate([ + core_1.Output("close"), + tslib_1.__metadata("design:type", core_1.EventEmitter) + ], CreateContentTouchpointComponent.prototype, "closeButtonPressedEvent", void 0); + tslib_1.__decorate([ + core_1.Output("touchpointCreated"), + tslib_1.__metadata("design:type", core_1.EventEmitter) + ], CreateContentTouchpointComponent.prototype, "touchpointCreatedEvent", void 0); + CreateContentTouchpointComponent = tslib_1.__decorate([ + core_1.Component({ + selector: "create-content-touchpoint", + template: tslib_1.__importDefault(__webpack_require__( "./node_modules/raw-loader/dist/cjs.js!./src/insights-loader/create-content-touchpoint/create-content-touchpoint.component.html")).default, + styles: [tslib_1.__importDefault(__webpack_require__( "./src/insights-loader/create-content-touchpoint/create-content-touchpoint.component.scss")).default] + }), + tslib_1.__param(0, core_1.Inject(core_1.forwardRef(function () { return sitefinity_insight_touchpoints_requester_service_1.SitefinityInsightTouchpointRequesterService; }))), + tslib_1.__metadata("design:paramtypes", [sitefinity_insight_touchpoints_requester_service_1.SitefinityInsightTouchpointRequesterService]) + ], CreateContentTouchpointComponent); + return CreateContentTouchpointComponent; +}()); +exports.CreateContentTouchpointComponent = CreateContentTouchpointComponent; + + + }), + + "./src/insights-loader/create-content-touchpoint/create-touchpoint-view-state.ts": + + + (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var tslib_1 = __webpack_require__( 100002); +var CreateTouchpointViewState = (function () { + function CreateTouchpointViewState() { + this.restartState(); + } + CreateTouchpointViewState.prototype.showCreateTouchpointUI = function () { + this.restartState(); + this.shouldShowCreateTouchpointUI = true; + }; + CreateTouchpointViewState.prototype.showSuccessfullyCreatedUI = function () { + this.restartState(); + this.shouldShowSuccessfullyCreatedUI = true; + }; + CreateTouchpointViewState.prototype.restartState = function () { + var e_1, _a; + try { + for (var _b = tslib_1.__values(Object.keys(this)), _c = _b.next(); !_c.done; _c = _b.next()) { + var shouldShowKey = _c.value; + this[shouldShowKey] = false; + } + } + catch (e_1_1) { e_1 = { error: e_1_1 }; } + finally { + try { + if (_c && !_c.done && (_a = _b.return)) _a.call(_b); + } + finally { if (e_1) throw e_1.error; } + } + }; + return CreateTouchpointViewState; +}()); +exports.CreateTouchpointViewState = CreateTouchpointViewState; + + + }), + + "./src/insights-loader/entities/content-item-info.ts": + + + (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var ContentItemInfo = (function () { + // the dataItem is actually of type DataItem located in "progress-sitefinity-adminapp-sdk/app/api/v1"; + // any type is used as DataItem types does not have the this.dataItem.childTypes array exposed + function ContentItemInfo(dataItem) { + this.DefaultFieldName = dataItem.metadata.defaultFieldName; + this.Title = dataItem.data[this.DefaultFieldName]; + this.Id = dataItem.data.Id; + this.Provider = dataItem.provider; + this.HasChildren = dataItem.childTypes.length > 0; + this.ContentType = ContentItemInfo.getContentTypeFromFullTypeName(dataItem.metadata.typeFullName); + this.SfSetName = dataItem.metadata.setName; + this.AvailableLanguages = dataItem.data.AvailableLanguages || []; + } + ContentItemInfo.getContentTypeFromFullTypeName = function (contentType) { + var indexAfterLastDot = contentType.lastIndexOf(".") + 1; + return contentType.substring(indexAfterLastDot); + }; + return ContentItemInfo; +}()); +exports.ContentItemInfo = ContentItemInfo; + + + }), + + "./src/insights-loader/entities/site-data-store.ts": + + + (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var SiteDataStore = (function () { + function SiteDataStore(siteDataStore) { + this.ContentCultures = siteDataStore.ContentCultures; + this.DefaultContentCulture = siteDataStore.DefaultContentCulture; + } + return SiteDataStore; +}()); +exports.SiteDataStore = SiteDataStore; + + + }), + + "./src/insights-loader/entry-point/insights-cell/insights-cell.component.ts": + + + (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var tslib_1 = __webpack_require__( 100002); +var rxjs_1 = __webpack_require__( 100006); +var operators_1 = __webpack_require__( 100007); +var core_1 = __webpack_require__( 100003); +var insights_details_view_component_1 = __webpack_require__( "./src/insights-loader/entry-point/insights-details/insights-details-view.component.ts"); +var sitefinity_insight_touchpoints_requester_service_1 = __webpack_require__( "./src/insights-loader/services/sitefinity-insight-touchpoints-requester.service.ts"); +var content_item_info_1 = __webpack_require__( "./src/insights-loader/entities/content-item-info.ts"); +var lost_connection_component_1 = __webpack_require__( "./src/insights-loader/components/lost-connection/lost-connection.component.ts"); +var selector_service_wrapper_1 = __webpack_require__( "./src/insights-loader/wrapper-for-iris-services/selector-service-wrapper.ts"); +var InsightsCellComponent = (function () { + function InsightsCellComponent(decServerService, selectorService) { + this.decServerService = decServerService; + this.selectorService = selectorService; + this.loadingData = true; + } + InsightsCellComponent.prototype.setCloseModalCallback = function () { + }; + InsightsCellComponent.prototype.ngOnInit = function () { + var _this = this; + this.contentItemInfo = new content_item_info_1.ContentItemInfo(this.context.dataItem); + this.loadingData = true; + this.decServerService.getTouchpointByContent(this.contentItemInfo).pipe(operators_1.finalize(function () { return _this.loadingData = false; })) + .subscribe(function (touchpoint) { + _this.touchpoint = touchpoint; + }, function (error) { + _this.httpError = error; + }); + }; + InsightsCellComponent.prototype.onClick = function () { + this.selectorService.openDialog({ + componentData: { + type: insights_details_view_component_1.InsightsDetailsViewComponent, + properties: { + externalTouchpointLoad$: rxjs_1.of(this.touchpoint), + contentItemInfo: this.contentItemInfo, + notifyGridCellForNewTouchpointFunc: this.onTouchpointCreated.bind(this) + } + }, + commands: [] + }).subscribe(); + }; + InsightsCellComponent.prototype.onErrorClick = function () { + this.selectorService.openDialog({ + componentData: { + type: lost_connection_component_1.LostConnectionComponent + }, + commands: [] + }).subscribe(); + }; + InsightsCellComponent.prototype.onTouchpointCreated = function (touchpoint) { + this.touchpoint = touchpoint; + }; + InsightsCellComponent.ctorParameters = function () { return [ + { type: sitefinity_insight_touchpoints_requester_service_1.SitefinityInsightTouchpointRequesterService, decorators: [{ type: core_1.Inject, args: [core_1.forwardRef(function () { return sitefinity_insight_touchpoints_requester_service_1.SitefinityInsightTouchpointRequesterService; }),] }] }, + { type: selector_service_wrapper_1.SelectorServiceWrapper, decorators: [{ type: core_1.Inject, args: [core_1.forwardRef(function () { return selector_service_wrapper_1.SelectorServiceWrapper; }),] }] } + ]; }; + InsightsCellComponent = tslib_1.__decorate([ + core_1.Component({ + template: tslib_1.__importDefault(__webpack_require__( "./node_modules/raw-loader/dist/cjs.js!./src/insights-loader/entry-point/insights-cell/insights-cell.component.html")).default + }), + tslib_1.__param(0, core_1.Inject(core_1.forwardRef(function () { return sitefinity_insight_touchpoints_requester_service_1.SitefinityInsightTouchpointRequesterService; }))), + tslib_1.__param(1, core_1.Inject(core_1.forwardRef(function () { return selector_service_wrapper_1.SelectorServiceWrapper; }))), + tslib_1.__metadata("design:paramtypes", [sitefinity_insight_touchpoints_requester_service_1.SitefinityInsightTouchpointRequesterService, + selector_service_wrapper_1.SelectorServiceWrapper]) + ], InsightsCellComponent); + return InsightsCellComponent; +}()); +exports.InsightsCellComponent = InsightsCellComponent; + + + }), + + "./src/insights-loader/entry-point/insights-columns-provider.ts": + + + (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var tslib_1 = __webpack_require__( 100002); +var rxjs_1 = __webpack_require__( 100006); +var operators_1 = __webpack_require__( 100007); +var v1_1 = __webpack_require__( 100008); +var core_1 = __webpack_require__( 100003); +var insights_cell_component_1 = __webpack_require__( "./src/insights-loader/entry-point/insights-cell/insights-cell.component.ts"); +var connector_service_1 = __webpack_require__( "./src/insights-loader/services/connector.service.ts"); +var extension_point_utils_service_1 = __webpack_require__( "./src/insights-loader/services/extension-point-utils.service.ts"); +var InsightsColumnProvider = (function () { + function InsightsColumnProvider(sitefinityInsightConnectorService, extensionPointUtils) { + this.sitefinityInsightConnectorService = sitefinityInsightConnectorService; + this.extensionPointUtils = extensionPointUtils; + this.columnName = "sitefinity-insight-column"; + this.columnTitle = "Insight"; + } + InsightsColumnProvider.prototype.getColumns = function (entityData) { + var _this = this; + if (this.extensionPointUtils.shouldExtendGrid(entityData.metadata.typeFullName) === false) + return rxjs_1.of([]); + return this.sitefinityInsightConnectorService.isSitefinityInsightEnabled().pipe(operators_1.map(function (isSitefinityInsightEnabled) { + if (isSitefinityInsightEnabled === false) + return []; + var column = { + name: _this.columnName, + title: _this.columnTitle, + css: "-col-size-2xs", + componentData: { + type: insights_cell_component_1.InsightsCellComponent + } + }; + return [column]; + }), operators_1.catchError(function (err) { + return rxjs_1.of([]); + })); + }; + InsightsColumnProvider.ctorParameters = function () { return [ + { type: connector_service_1.ConnectorService }, + { type: extension_point_utils_service_1.ExtensionPointUtilsService } + ]; }; + InsightsColumnProvider = tslib_1.__decorate([ + core_1.Injectable(), + tslib_1.__metadata("design:paramtypes", [connector_service_1.ConnectorService, + extension_point_utils_service_1.ExtensionPointUtilsService]) + ], InsightsColumnProvider); + return InsightsColumnProvider; +}()); +exports.INSIGHTS_COLUMNS_PROVIDER = { + useClass: InsightsColumnProvider, + multi: true, + provide: v1_1.COLUMNS_TOKEN +}; + + + }), + + "./src/insights-loader/entry-point/insights-command-provider.ts": + + + (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var tslib_1 = __webpack_require__( 100002); +var rxjs_1 = __webpack_require__( 100006); +var operators_1 = __webpack_require__( 100007); +var v1_1 = __webpack_require__( 100008); +var core_1 = __webpack_require__( 100003); +var content_item_info_1 = __webpack_require__( "./src/insights-loader/entities/content-item-info.ts"); +var connector_service_1 = __webpack_require__( "./src/insights-loader/services/connector.service.ts"); +var insights_menu_command_1 = __webpack_require__( "./src/insights-loader/entry-point/insights-menu-command.ts"); +var extension_point_utils_service_1 = __webpack_require__( "./src/insights-loader/services/extension-point-utils.service.ts"); +var commands_target_enum_wrapper_1 = __webpack_require__( "./src/insights-loader/wrapper-for-iris-services/commands-target-enum-wrapper.ts"); +var InsightsCommandProvider = (function () { + function InsightsCommandProvider(sitefinityInsightConnectorService, extensionPointUtils, commandsTargetEnumWrapper) { + this.sitefinityInsightConnectorService = sitefinityInsightConnectorService; + this.extensionPointUtils = extensionPointUtils; + this.commandsTargetEnumWrapper = commandsTargetEnumWrapper; + } + InsightsCommandProvider.prototype.getCommands = function (data) { + if (data.target !== this.commandsTargetEnumWrapper.Edit) { + return rxjs_1.of([]); + } + if (this.extensionPointUtils.shouldExtendMenu(data.dataItem.metadata.typeFullName) === false) + return rxjs_1.of([]); + return this.sitefinityInsightConnectorService.isSitefinityInsightEnabled().pipe(operators_1.mergeMap(function (isSitefinityInsightEnabled) { + if (!isSitefinityInsightEnabled) { + return rxjs_1.of([]); + } + var contentItemInfo = new content_item_info_1.ContentItemInfo(data.dataItem); + return rxjs_1.of([{ + name: "Visits and Attribution", + title: "Visits and Attribution", + category: "Lifecycle", + ordinal: 2147483647, + token: { + type: insights_menu_command_1.SitefinityInsightInsightsMenuCommand, + properties: { + contentItemInfo: contentItemInfo + } + } + }]); + }), operators_1.catchError(function (err) { + return rxjs_1.of([]); + })); + }; + // placeholder for now + InsightsCommandProvider.prototype.getCategories = function (data) { + return rxjs_1.of([]); + }; + InsightsCommandProvider.ctorParameters = function () { return [ + { type: connector_service_1.ConnectorService }, + { type: extension_point_utils_service_1.ExtensionPointUtilsService }, + { type: commands_target_enum_wrapper_1.CommandsTargetEnumWrapper } + ]; }; + InsightsCommandProvider = tslib_1.__decorate([ + core_1.Injectable(), + tslib_1.__metadata("design:paramtypes", [connector_service_1.ConnectorService, + extension_point_utils_service_1.ExtensionPointUtilsService, + commands_target_enum_wrapper_1.CommandsTargetEnumWrapper]) + ], InsightsCommandProvider); + return InsightsCommandProvider; +}()); +exports.COMMANDS_PROVIDER = { + useClass: InsightsCommandProvider, + multi: true, + provide: v1_1.COMMANDS_TOKEN +}; + + + }), + + "./src/insights-loader/entry-point/insights-details/details-view-state.ts": + + + (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var tslib_1 = __webpack_require__( 100002); +var DetailsViewState = (function () { + function DetailsViewState() { + this.shouldShowCreateTouchpointUI = false; + this.shouldShowNoStatisticsYetUI = false; + this.shouldShowTouchpointDataUI = false; + } + DetailsViewState.prototype.showCreateTouchpointUI = function () { + this.restartState(); + this.shouldShowCreateTouchpointUI = true; + }; + DetailsViewState.prototype.showNoStatisticsYetUI = function () { + this.restartState(); + this.shouldShowNoStatisticsYetUI = true; + }; + DetailsViewState.prototype.showTouchpointDataUI = function () { + this.restartState(); + this.shouldShowTouchpointDataUI = true; + }; + DetailsViewState.prototype.restartState = function () { + var e_1, _a; + try { + for (var _b = tslib_1.__values(Object.keys(this)), _c = _b.next(); !_c.done; _c = _b.next()) { + var shouldShowKey = _c.value; + this[shouldShowKey] = false; + } + } + catch (e_1_1) { e_1 = { error: e_1_1 }; } + finally { + try { + if (_c && !_c.done && (_a = _b.return)) _a.call(_b); + } + finally { if (e_1) throw e_1.error; } + } + }; + return DetailsViewState; +}()); +exports.DetailsViewState = DetailsViewState; + + + }), + + "./src/insights-loader/entry-point/insights-details/insights-details-view.component.ts": + + + (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var tslib_1 = __webpack_require__( 100002); +var core_1 = __webpack_require__( 100003); +var site_data_store_1 = __webpack_require__( "./src/insights-loader/entities/site-data-store.ts"); +var details_view_state_1 = __webpack_require__( "./src/insights-loader/entry-point/insights-details/details-view-state.ts"); +var sitefinity_insight_touchpoints_requester_service_1 = __webpack_require__( "./src/insights-loader/services/sitefinity-insight-touchpoints-requester.service.ts"); +var router_1 = __webpack_require__( 100009); +var InsightsDetailsViewComponent = (function () { + function InsightsDetailsViewComponent(decServerService, route) { + this.decServerService = decServerService; + this.route = route; + this.viewState = new details_view_state_1.DetailsViewState(); + } + InsightsDetailsViewComponent.prototype.setCloseModalCallback = function (closeFunc) { + this.closeModalWindowFunc = closeFunc; + }; + InsightsDetailsViewComponent.prototype.ngOnInit = function () { + this.siteDataStore = new site_data_store_1.SiteDataStore(this.route.parent.snapshot.data.siteDataStore); + this.initViewState(); + }; + InsightsDetailsViewComponent.prototype.initViewState = function () { + var _this = this; + this.httpError = null; + this.getTouchpoint().subscribe(function (touchpoint) { + _this.touchpoint = touchpoint; + if (!_this.touchpoint) { + _this.viewState.showCreateTouchpointUI(); + } + else if (_this.touchpoint) { + _this.decServerService.hasStatistics(_this.touchpoint.Id) + .subscribe(function (hasStatistics) { + if (hasStatistics) + _this.viewState.showTouchpointDataUI(); + else + _this.viewState.showNoStatisticsYetUI(); + }, function (error) { _this.httpError = error; }); + } + }, function (error) { _this.httpError = error; }); + }; + InsightsDetailsViewComponent.prototype.onTouchpointCreated = function (touchpoint) { + this.touchpoint = touchpoint; + this.notifyGridCellForNewTouchpointFunc(this.touchpoint); + }; + InsightsDetailsViewComponent.prototype.getTouchpoint = function () { + if (this.externalTouchpointLoad$) + return this.externalTouchpointLoad$; + return this.decServerService.getTouchpointByContent(this.contentItemInfo); + }; + InsightsDetailsViewComponent.ctorParameters = function () { return [ + { type: sitefinity_insight_touchpoints_requester_service_1.SitefinityInsightTouchpointRequesterService, decorators: [{ type: core_1.Inject, args: [core_1.forwardRef(function () { return sitefinity_insight_touchpoints_requester_service_1.SitefinityInsightTouchpointRequesterService; }),] }] }, + { type: router_1.ActivatedRoute, decorators: [{ type: core_1.Inject, args: [core_1.forwardRef(function () { return router_1.ActivatedRoute; }),] }] } + ]; }; + InsightsDetailsViewComponent = tslib_1.__decorate([ + core_1.Component({ + template: tslib_1.__importDefault(__webpack_require__( "./node_modules/raw-loader/dist/cjs.js!./src/insights-loader/entry-point/insights-details/insights-details-view.component.html")).default + }), + tslib_1.__param(0, core_1.Inject(core_1.forwardRef(function () { return sitefinity_insight_touchpoints_requester_service_1.SitefinityInsightTouchpointRequesterService; }))), + tslib_1.__param(1, core_1.Inject(core_1.forwardRef(function () { return router_1.ActivatedRoute; }))), + tslib_1.__metadata("design:paramtypes", [sitefinity_insight_touchpoints_requester_service_1.SitefinityInsightTouchpointRequesterService, + router_1.ActivatedRoute]) + ], InsightsDetailsViewComponent); + return InsightsDetailsViewComponent; +}()); +exports.InsightsDetailsViewComponent = InsightsDetailsViewComponent; + + + }), + + "./src/insights-loader/entry-point/insights-menu-command.ts": + + + (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var tslib_1 = __webpack_require__( 100002); +var v1_1 = __webpack_require__( 100008); +var core_1 = __webpack_require__( 100003); +var insights_details_view_component_1 = __webpack_require__( "./src/insights-loader/entry-point/insights-details/insights-details-view.component.ts"); +var SitefinityInsightInsightsMenuCommand = (function () { + function SitefinityInsightInsightsMenuCommand(selectorService) { + this.selectorService = selectorService; + } + SitefinityInsightInsightsMenuCommand.prototype.execute = function (context) { + var contentItemInfo = context.data.contentItemInfo; + return this.selectorService.openDialog({ + componentData: { + type: insights_details_view_component_1.InsightsDetailsViewComponent, + properties: { + externalTouchpointLoad$: null, + contentItemInfo: contentItemInfo, + notifyGridCellForNewTouchpointFunc: function () { } + } + }, + commands: [] + }); + }; + SitefinityInsightInsightsMenuCommand.ctorParameters = function () { return [ + { type: undefined, decorators: [{ type: core_1.Inject, args: [v1_1.SELECTOR_SERVICE,] }] } + ]; }; + SitefinityInsightInsightsMenuCommand = tslib_1.__decorate([ + core_1.Injectable(), + tslib_1.__param(0, core_1.Inject(v1_1.SELECTOR_SERVICE)), + tslib_1.__metadata("design:paramtypes", [Object]) + ], SitefinityInsightInsightsMenuCommand); + return SitefinityInsightInsightsMenuCommand; +}()); +exports.SitefinityInsightInsightsMenuCommand = SitefinityInsightInsightsMenuCommand; + + + }), + + "./src/insights-loader/index.ts": + + + (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var tslib_1 = __webpack_require__( 100002); +var core_1 = __webpack_require__( 100003); +var platform_browser_1 = __webpack_require__( 100004); +var http_1 = __webpack_require__( 100005); +var insights_cell_component_1 = __webpack_require__( "./src/insights-loader/entry-point/insights-cell/insights-cell.component.ts"); +var insights_columns_provider_1 = __webpack_require__( "./src/insights-loader/entry-point/insights-columns-provider.ts"); +var insights_details_view_component_1 = __webpack_require__( "./src/insights-loader/entry-point/insights-details/insights-details-view.component.ts"); +var connector_service_1 = __webpack_require__( "./src/insights-loader/services/connector.service.ts"); +var kendo_chart_data_converter_service_1 = __webpack_require__( "./src/insights-loader/components/touchpoint-chart/kendo-chart-data-converter.service.ts"); +var sitefinity_insight_http_requester_1 = __webpack_require__( "./src/insights-loader/services/sitefinity-insight-http-requester.ts"); +var date_time_utils_service_1 = __webpack_require__( "./src/insights-loader/services/date-time-utils.service.ts"); +var sitefinity_insight_touchpoints_requester_service_1 = __webpack_require__( "./src/insights-loader/services/sitefinity-insight-touchpoints-requester.service.ts"); +var sitefinity_insight_conversions_requester_service_1 = __webpack_require__( "./src/insights-loader/services/sitefinity-insight-conversions-requester.service.ts"); +var sitefinity_insight_datacenter_requester_service_1 = __webpack_require__( "./src/insights-loader/services/sitefinity-insight-datacenter-requester.service.ts"); +var sitefinity_requester_service_1 = __webpack_require__( "./src/insights-loader/services/sitefinity-requester.service.ts"); +var extension_point_utils_service_1 = __webpack_require__( "./src/insights-loader/services/extension-point-utils.service.ts"); +var animations_1 = __webpack_require__( 100010); +var kendo_angular_charts_1 = __webpack_require__( "./node_modules/@progress/kendo-angular-charts/__ivy_ngcc__/dist/fesm5/index.js"); +var kendo_angular_tooltip_1 = __webpack_require__( "./node_modules/@progress/kendo-angular-tooltip/__ivy_ngcc__/dist/fesm5/index.js"); +var loader_component_1 = __webpack_require__( "./src/insights-loader/components/loader/loader.component.ts"); +var create_content_touchpoint_component_1 = __webpack_require__( "./src/insights-loader/create-content-touchpoint/create-content-touchpoint.component.ts"); +var touchpoint_no_data_yet_component_1 = __webpack_require__( "./src/insights-loader/touchpoint-no-data-yet/touchpoint-no-data-yet.component.ts"); +var touchpoint_details_component_1 = __webpack_require__( "./src/insights-loader/touchpoint-details/touchpoint-details.component.ts"); +var touchpoint_hits_component_1 = __webpack_require__( "./src/insights-loader/components/touchpoint-hits/touchpoint-hits.component.ts"); +var touchpoint_chart_component_1 = __webpack_require__( "./src/insights-loader/components/touchpoint-chart/touchpoint-chart.component.ts"); +var show_improvement_component_1 = __webpack_require__( "./src/insights-loader/components/show-improvement/show-improvement.component.ts"); +var touchpoint_hightest_attribution_table_component_1 = __webpack_require__( "./src/insights-loader/components/touchpoint-highest-attribution-table/touchpoint-hightest-attribution-table.component.ts"); +var sitefinity_insight_analytics_redirect_button_component_1 = __webpack_require__( "./src/insights-loader/components/sitefinity-insight-analytics-redirect-button/sitefinity-insight-analytics-redirect-button.component.ts"); +__webpack_require__( "./node_modules/hammerjs/hammer.js"); +var insights_menu_command_1 = __webpack_require__( "./src/insights-loader/entry-point/insights-menu-command.ts"); +var insights_command_provider_1 = __webpack_require__( "./src/insights-loader/entry-point/insights-command-provider.ts"); +var lost_connection_component_1 = __webpack_require__( "./src/insights-loader/components/lost-connection/lost-connection.component.ts"); +var general_sitefinity_insight_error_component_1 = __webpack_require__( "./src/insights-loader/components/general-sitefinity-insight-error/general-sitefinity-insight-error.component.ts"); +var selector_service_wrapper_1 = __webpack_require__( "./src/insights-loader/wrapper-for-iris-services/selector-service-wrapper.ts"); +var commands_target_enum_wrapper_1 = __webpack_require__( "./src/insights-loader/wrapper-for-iris-services/commands-target-enum-wrapper.ts"); +var number_display_formatter_service_1 = __webpack_require__( "./src/insights-loader/services/number-display-formatter.service.ts"); +var InsightsLoaderExtensionModule = (function () { + function InsightsLoaderExtensionModule() { + } + InsightsLoaderExtensionModule = tslib_1.__decorate([ + core_1.NgModule({ + imports: [ + platform_browser_1.BrowserModule, + http_1.HttpClientModule, + animations_1.BrowserAnimationsModule, + kendo_angular_charts_1.ChartModule, + kendo_angular_tooltip_1.TooltipModule + ], + declarations: [ + insights_cell_component_1.InsightsCellComponent, + insights_details_view_component_1.InsightsDetailsViewComponent, + create_content_touchpoint_component_1.CreateContentTouchpointComponent, + touchpoint_no_data_yet_component_1.TouchpointNoDataYetComponent, + touchpoint_details_component_1.TouchpointDetailsComponent, + touchpoint_hits_component_1.TouchpointHitsComponent, + touchpoint_chart_component_1.TouchpointChartComponent, + show_improvement_component_1.ShowImprovementComponent, + touchpoint_hightest_attribution_table_component_1.TouchpointHighestAttributionTableComponent, + sitefinity_insight_analytics_redirect_button_component_1.SitefinityInsightAnalyticsRedirectButtonComponent, + loader_component_1.LoaderComponent, + lost_connection_component_1.LostConnectionComponent, + general_sitefinity_insight_error_component_1.GeneralSitefinityInsightErrorComponent + ], + entryComponents: [ + insights_cell_component_1.InsightsCellComponent, + insights_details_view_component_1.InsightsDetailsViewComponent, + create_content_touchpoint_component_1.CreateContentTouchpointComponent, + loader_component_1.LoaderComponent, + lost_connection_component_1.LostConnectionComponent + ], + providers: [ + insights_columns_provider_1.INSIGHTS_COLUMNS_PROVIDER, + connector_service_1.ConnectorService, + sitefinity_insight_touchpoints_requester_service_1.SitefinityInsightTouchpointRequesterService, + sitefinity_insight_conversions_requester_service_1.SitefinityInsightConversionsRequesterService, + sitefinity_insight_datacenter_requester_service_1.SitefinityInsightDatacenterRequesterService, + extension_point_utils_service_1.ExtensionPointUtilsService, + insights_menu_command_1.SitefinityInsightInsightsMenuCommand, + sitefinity_insight_http_requester_1.SitefinityInsightHttpRequester, + date_time_utils_service_1.DateTimeUtilsService, + kendo_chart_data_converter_service_1.KendoChartDataConverterService, + sitefinity_requester_service_1.SitefinityRequesterService, + selector_service_wrapper_1.SelectorServiceWrapper, + number_display_formatter_service_1.NumberDisplayFormatterService, + insights_command_provider_1.COMMANDS_PROVIDER, + commands_target_enum_wrapper_1.CommandsTargetEnumWrapper + ] + }) + ], InsightsLoaderExtensionModule); + return InsightsLoaderExtensionModule; +}()); +exports.InsightsLoaderExtensionModule = InsightsLoaderExtensionModule; + + + }), + + "./src/insights-loader/services/connector.service.ts": + + + (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var tslib_1 = __webpack_require__( 100002); +var operators_1 = __webpack_require__( 100007); +var core_1 = __webpack_require__( 100003); +var http_1 = __webpack_require__( 100005); +var rxjs_1 = __webpack_require__( 100006); +var sitefinity_base_url_1 = __webpack_require__( "./src/insights-loader/services/sitefinity-base-url.ts"); +var date_time_utils_service_1 = __webpack_require__( "./src/insights-loader/services/date-time-utils.service.ts"); +var ConnectorService = (function () { + function ConnectorService(http, dateTimeUtils) { + this.http = http; + this.dateTimeUtils = dateTimeUtils; + this.lastAccessInTimeTicks = 0; + } + ConnectorService.prototype.getConnectorDetails = function () { + var _this = this; + var nowInTicks = this.dateTimeUtils.getNow().getTime(); + if (this.lastConfigValue$ == null || nowInTicks - this.lastAccessInTimeTicks > 10000) { + this.lastAccessInTimeTicks = nowInTicks; + this.lastConfigValue$ = new rxjs_1.AsyncSubject(); + this.http.get(sitefinity_base_url_1.SitefinityBaseUrl.getUrl() + "/restapi/sitefinity/data-intelligence/settings").subscribe(function (config) { + _this.lastConfigValue$.next(config); + _this.lastConfigValue$.complete(); + }, function (error) { + var lastConfigValue$ = _this.lastConfigValue$; + _this.lastConfigValue$ = null; // required when using inner subscriptions + lastConfigValue$.error(error); + lastConfigValue$.complete(); + }); + } + return this.lastConfigValue$; + }; + ConnectorService.prototype.isSitefinityInsightEnabled = function () { + return this.getConnectorDetails().pipe(operators_1.map(function (config) { return config !== null && config.IsDecEnabled && config.DataCenterApiKey != null; })); + }; + ConnectorService.ctorParameters = function () { return [ + { type: http_1.HttpClient, decorators: [{ type: core_1.Inject, args: [core_1.forwardRef(function () { return http_1.HttpClient; }),] }] }, + { type: date_time_utils_service_1.DateTimeUtilsService, decorators: [{ type: core_1.Inject, args: [core_1.forwardRef(function () { return date_time_utils_service_1.DateTimeUtilsService; }),] }] } + ]; }; + ConnectorService = tslib_1.__decorate([ + core_1.Injectable(), + tslib_1.__param(0, core_1.Inject(core_1.forwardRef(function () { return http_1.HttpClient; }))), + tslib_1.__param(1, core_1.Inject(core_1.forwardRef(function () { return date_time_utils_service_1.DateTimeUtilsService; }))), + tslib_1.__metadata("design:paramtypes", [http_1.HttpClient, + date_time_utils_service_1.DateTimeUtilsService]) + ], ConnectorService); + return ConnectorService; +}()); +exports.ConnectorService = ConnectorService; + + + }), + + "./src/insights-loader/services/date-time-utils.service.ts": + + + (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var tslib_1 = __webpack_require__( 100002); +var core_1 = __webpack_require__( 100003); +var DateTimeUtilsService = (function () { + function DateTimeUtilsService() { + this.monthNames = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]; + this.daysOfWeek = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]; + } + DateTimeUtilsService.prototype.getNow = function () { + return new Date(); + }; + DateTimeUtilsService.prototype.getFromDateAndToDateInclusiveHeaderValue = function (periodLengthInDays) { + var now = this.getNow(); + var toDate = new Date(Date.UTC(now.getUTCFullYear(), now.getUTCMonth(), now.getUTCDate(), 23, 59, 59)); + var fromDate = new Date(Date.UTC(now.getUTCFullYear(), now.getUTCMonth(), now.getUTCDate(), 0, 0, 0)); + fromDate = this.subtractDays(fromDate, periodLengthInDays); + var fromDateISOString = fromDate.toISOString(); + var toDateISOString = toDate.toISOString(); + return { fromDateISOString: fromDateISOString, toDateISOString: toDateISOString }; + }; + DateTimeUtilsService.prototype.subtractDays = function (date, numberOfDays) { + return this.addDays(date, -1 * numberOfDays); + }; + DateTimeUtilsService.prototype.addDays = function (date, numberOfDays) { + var resultDate = new Date(date); + resultDate.setUTCDate(resultDate.getUTCDate() + numberOfDays); + return resultDate; + }; + DateTimeUtilsService.prototype.toShortDateTimeFormat = function (dateTimeISOString) { + var date = new Date(dateTimeISOString); + var month = this.monthNames[date.getUTCMonth()]; + return date.getUTCDate() + " " + month; + }; + DateTimeUtilsService.prototype.toLongDateTimeFormat = function (dateTimeISOString) { + var date = new Date(dateTimeISOString); + var month = this.monthNames[date.getUTCMonth()]; + var dayOfWeek = this.daysOfWeek[date.getUTCDay()]; + return dayOfWeek + ", " + date.getUTCDate() + " " + month + " " + date.getUTCFullYear(); + }; + DateTimeUtilsService = tslib_1.__decorate([ + core_1.Injectable() + ], DateTimeUtilsService); + return DateTimeUtilsService; +}()); +exports.DateTimeUtilsService = DateTimeUtilsService; + + + }), + + "./src/insights-loader/services/extension-point-utils.service.ts": + + + (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var tslib_1 = __webpack_require__( 100002); +var core_1 = __webpack_require__( 100003); +var ExtensionPointUtilsService = (function () { + function ExtensionPointUtilsService() { + } + ExtensionPointUtilsService.prototype.shouldExtendMenu = function (dataItemFullTypeName) { + if (!dataItemFullTypeName) + return false; + var staticContentTypes = [ + "Telerik.Sitefinity.News.Model.NewsItem", + "Telerik.Sitefinity.Blogs.Model.BlogPost", + "Telerik.Sitefinity.Lists.Model.ListItem" + ]; + var isKnownStaticContentType = staticContentTypes.indexOf(dataItemFullTypeName) !== -1; + if (isKnownStaticContentType) + return true; + return !!this._isDynamicModule(dataItemFullTypeName); + }; + ExtensionPointUtilsService.prototype.shouldExtendGrid = function (dataItemFullTypeName) { + if (!dataItemFullTypeName) + return false; + var staticContentTypes = [ + "Telerik.Sitefinity.News.Model.NewsItem", + "Telerik.Sitefinity.Blogs.Model.Blog", + "Telerik.Sitefinity.Blogs.Model.BlogPost", + "Telerik.Sitefinity.Lists.Model.List", + "Telerik.Sitefinity.Lists.Model.ListItem" + ]; + var isKnownStatisContentType = staticContentTypes.indexOf(dataItemFullTypeName) !== -1; + if (isKnownStatisContentType) + return true; + return !!this._isDynamicModule(dataItemFullTypeName); + }; + ExtensionPointUtilsService.prototype._isDynamicModule = function (dateItemFullType) { + return dateItemFullType.startsWith("Telerik.Sitefinity.DynamicTypes"); + }; + ExtensionPointUtilsService = tslib_1.__decorate([ + core_1.Injectable() + ], ExtensionPointUtilsService); + return ExtensionPointUtilsService; +}()); +exports.ExtensionPointUtilsService = ExtensionPointUtilsService; + + + }), + + "./src/insights-loader/services/goal-period-display.service.ts": + + + (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var GoalPeriodDisplayService = (function () { + function GoalPeriodDisplayService() { + } + GoalPeriodDisplayService.getDisplayPeriod = function (period) { + var displayPeriod = ''; + if (period > 30) { + var periodInMonths = Math.round(period / 30); + displayPeriod = periodInMonths + " months"; + } + else { + displayPeriod = period + " days"; + } + return displayPeriod; + }; + return GoalPeriodDisplayService; +}()); +exports.GoalPeriodDisplayService = GoalPeriodDisplayService; + + + }), + + "./src/insights-loader/services/http-data-response-utils.ts": + + + (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var HttpDataResponseUtils = (function () { + function HttpDataResponseUtils() { + } + HttpDataResponseUtils.flattenCollectionResponse = function (collectionResponse) { + return collectionResponse.items; + }; + HttpDataResponseUtils.firstOrDefault = function (collectionResponse) { + if (collectionResponse && collectionResponse.items && collectionResponse.items.length > 0) + return collectionResponse.items[0]; + else + return null; + }; + return HttpDataResponseUtils; +}()); +exports.HttpDataResponseUtils = HttpDataResponseUtils; + + + }), + + "./src/insights-loader/services/number-display-formatter.service.ts": + + + (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var tslib_1 = __webpack_require__( 100002); +var core_1 = __webpack_require__( 100003); +var NumberDisplayFormatterService = (function () { + function NumberDisplayFormatterService() { + } + NumberDisplayFormatterService.prototype.roundPercentage = function (percentage) { + if (percentage === null) + return; + var absValue = Math.abs(percentage); + if (absValue === 0) + return percentage.toFixed(0); + if (absValue < 10) + return percentage.toFixed(2); + if (absValue < 100) + return percentage.toFixed(1); + else { + return percentage.toFixed(0); + } + }; + NumberDisplayFormatterService = tslib_1.__decorate([ + core_1.Injectable() + ], NumberDisplayFormatterService); + return NumberDisplayFormatterService; +}()); +exports.NumberDisplayFormatterService = NumberDisplayFormatterService; + + + }), + + "./src/insights-loader/services/sitefinity-base-url.ts": + + + (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var v1_1 = __webpack_require__( 100008); +var SitefinityBaseUrl = (function () { + function SitefinityBaseUrl() { + } + SitefinityBaseUrl.getUrl = function () { + return localStorage.getItem('sf.config.serviceUrl'); + }; + SitefinityBaseUrl.getHTTPPrefix = function () { + return v1_1.HTTP_PREFIX || ""; + }; + return SitefinityBaseUrl; +}()); +exports.SitefinityBaseUrl = SitefinityBaseUrl; + + + }), + + "./src/insights-loader/services/sitefinity-insight-conversions-requester.service.ts": + + + (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var tslib_1 = __webpack_require__( 100002); +var operators_1 = __webpack_require__( 100007); +var core_1 = __webpack_require__( 100003); +var sitefinity_insight_http_requester_1 = __webpack_require__( "./src/insights-loader/services/sitefinity-insight-http-requester.ts"); +var http_data_response_utils_1 = __webpack_require__( "./src/insights-loader/services/http-data-response-utils.ts"); +var SitefinityInsightConversionsRequesterService = (function () { + function SitefinityInsightConversionsRequesterService(sitefinityInsightHttpClient) { + this.sitefinityInsightHttpClient = sitefinityInsightHttpClient; + } + SitefinityInsightConversionsRequesterService.prototype.getAllGoals = function (goalIds) { + var headers = {}; + if (goalIds) + headers.filter = { Id: goalIds }; + return this.sitefinityInsightHttpClient.get("analytics/v1/goals", headers).pipe(operators_1.map(http_data_response_utils_1.HttpDataResponseUtils.flattenCollectionResponse)); + }; + SitefinityInsightConversionsRequesterService.ctorParameters = function () { return [ + { type: sitefinity_insight_http_requester_1.SitefinityInsightHttpRequester, decorators: [{ type: core_1.Inject, args: [core_1.forwardRef(function () { return sitefinity_insight_http_requester_1.SitefinityInsightHttpRequester; }),] }] } + ]; }; + SitefinityInsightConversionsRequesterService = tslib_1.__decorate([ + core_1.Injectable(), + tslib_1.__param(0, core_1.Inject(core_1.forwardRef(function () { return sitefinity_insight_http_requester_1.SitefinityInsightHttpRequester; }))), + tslib_1.__metadata("design:paramtypes", [sitefinity_insight_http_requester_1.SitefinityInsightHttpRequester]) + ], SitefinityInsightConversionsRequesterService); + return SitefinityInsightConversionsRequesterService; +}()); +exports.SitefinityInsightConversionsRequesterService = SitefinityInsightConversionsRequesterService; + + + }), + + "./src/insights-loader/services/sitefinity-insight-datacenter-requester.service.ts": + + + (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var tslib_1 = __webpack_require__( 100002); +var operators_1 = __webpack_require__( 100007); +var core_1 = __webpack_require__( 100003); +var sitefinity_insight_http_requester_1 = __webpack_require__( "./src/insights-loader/services/sitefinity-insight-http-requester.ts"); +var http_data_response_utils_1 = __webpack_require__( "./src/insights-loader/services/http-data-response-utils.ts"); +var SitefinityInsightDatacenterRequesterService = (function () { + function SitefinityInsightDatacenterRequesterService(sitefinityInsightHttpClient) { + this.sitefinityInsightHttpClient = sitefinityInsightHttpClient; + } + SitefinityInsightDatacenterRequesterService.prototype.getDatacenterId = function (apiKey) { + var headers = { + filter: { ApiKey: apiKey } + }; + return this.sitefinityInsightHttpClient.get('admin/v1/users/mydatacenters', headers).pipe(operators_1.map(function (datacenterResult) { + var dataCenter = http_data_response_utils_1.HttpDataResponseUtils.firstOrDefault(datacenterResult); + return dataCenter.Id; + })); + }; + SitefinityInsightDatacenterRequesterService.ctorParameters = function () { return [ + { type: sitefinity_insight_http_requester_1.SitefinityInsightHttpRequester, decorators: [{ type: core_1.Inject, args: [core_1.forwardRef(function () { return sitefinity_insight_http_requester_1.SitefinityInsightHttpRequester; }),] }] } + ]; }; + SitefinityInsightDatacenterRequesterService = tslib_1.__decorate([ + core_1.Injectable(), + tslib_1.__param(0, core_1.Inject(core_1.forwardRef(function () { return sitefinity_insight_http_requester_1.SitefinityInsightHttpRequester; }))), + tslib_1.__metadata("design:paramtypes", [sitefinity_insight_http_requester_1.SitefinityInsightHttpRequester]) + ], SitefinityInsightDatacenterRequesterService); + return SitefinityInsightDatacenterRequesterService; +}()); +exports.SitefinityInsightDatacenterRequesterService = SitefinityInsightDatacenterRequesterService; + + + }), + + "./src/insights-loader/services/sitefinity-insight-http-requester.ts": + + + (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var tslib_1 = __webpack_require__( 100002); +var operators_1 = __webpack_require__( 100007); +var core_1 = __webpack_require__( 100003); +var http_1 = __webpack_require__( 100005); +var connector_service_1 = __webpack_require__( "./src/insights-loader/services/connector.service.ts"); +var SitefinityInsightHttpRequester = (function () { + function SitefinityInsightHttpRequester(sitefinityInsightConnectorService, http) { + this.sitefinityInsightConnectorService = sitefinityInsightConnectorService; + this.http = http; + } + SitefinityInsightHttpRequester.prototype.get = function (url, headers) { + var _this = this; + return this.sitefinityInsightConnectorService.getConnectorDetails().pipe(operators_1.mergeMap(function (sitefinityInsightConfiguration) { + var httpOptions = { + headers: new http_1.HttpHeaders(_this.getHeaders(headers, sitefinityInsightConfiguration)) + }; + return _this.http.get(sitefinityInsightConfiguration.ApiServerUrl + "/" + url, httpOptions); + })); + }; + SitefinityInsightHttpRequester.prototype.post = function (url, requestPayload, headers) { + var _this = this; + return this.sitefinityInsightConnectorService.getConnectorDetails().pipe(operators_1.mergeMap(function (sitefinityInsightConfiguration) { + var httpOptions = { + headers: new http_1.HttpHeaders(_this.getHeaders(headers, sitefinityInsightConfiguration)) + }; + return _this.http.post(sitefinityInsightConfiguration.ApiServerUrl + "/" + url, requestPayload, httpOptions); + })); + }; + SitefinityInsightHttpRequester.prototype.getHeaders = function (clientSpecifiedHeaders, sitefinityInsightConfiguration) { + var commonHeaders = { + 'x-dataintelligence-datacenterkey': sitefinityInsightConfiguration.DataCenterApiKey, + 'Authorization': sitefinityInsightConfiguration.AuthorizationHeader + }; + if (clientSpecifiedHeaders.filter) + commonHeaders['x-dataintelligence-filter'] = JSON.stringify(clientSpecifiedHeaders.filter); + if (clientSpecifiedHeaders.fromDate) + commonHeaders['x-dataintelligence-fromdate'] = clientSpecifiedHeaders.fromDate; + if (clientSpecifiedHeaders.toDate) + commonHeaders['x-dataintelligence-todate'] = clientSpecifiedHeaders.toDate; + if (clientSpecifiedHeaders.scale) + commonHeaders['x-dataintelligence-scale'] = clientSpecifiedHeaders.scale; + if (clientSpecifiedHeaders.period) + commonHeaders['x-dataintelligence-period'] = clientSpecifiedHeaders.period; + if (clientSpecifiedHeaders.sort) + commonHeaders['x-dataintelligence-sort'] = JSON.stringify(clientSpecifiedHeaders.sort); + if (clientSpecifiedHeaders.take) + commonHeaders['x-dataintelligence-take'] = "" + clientSpecifiedHeaders.take; + if (clientSpecifiedHeaders.ids) + commonHeaders['x-dataintelligence-ids'] = "" + clientSpecifiedHeaders.ids; + return commonHeaders; + }; + SitefinityInsightHttpRequester.ctorParameters = function () { return [ + { type: connector_service_1.ConnectorService, decorators: [{ type: core_1.Inject, args: [core_1.forwardRef(function () { return connector_service_1.ConnectorService; }),] }] }, + { type: http_1.HttpClient, decorators: [{ type: core_1.Inject, args: [core_1.forwardRef(function () { return http_1.HttpClient; }),] }] } + ]; }; + SitefinityInsightHttpRequester = tslib_1.__decorate([ + core_1.Injectable(), + tslib_1.__param(0, core_1.Inject(core_1.forwardRef(function () { return connector_service_1.ConnectorService; }))), + tslib_1.__param(1, core_1.Inject(core_1.forwardRef(function () { return http_1.HttpClient; }))), + tslib_1.__metadata("design:paramtypes", [connector_service_1.ConnectorService, + http_1.HttpClient]) + ], SitefinityInsightHttpRequester); + return SitefinityInsightHttpRequester; +}()); +exports.SitefinityInsightHttpRequester = SitefinityInsightHttpRequester; + + + }), + + "./src/insights-loader/services/sitefinity-insight-touchpoints-requester.service.ts": + + + (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var tslib_1 = __webpack_require__( 100002); +var operators_1 = __webpack_require__( 100007); +var core_1 = __webpack_require__( 100003); +var http_data_response_utils_1 = __webpack_require__( "./src/insights-loader/services/http-data-response-utils.ts"); +var sitefinity_insight_http_requester_1 = __webpack_require__( "./src/insights-loader/services/sitefinity-insight-http-requester.ts"); +var sitefinity_requester_service_1 = __webpack_require__( "./src/insights-loader/services/sitefinity-requester.service.ts"); +var date_time_utils_service_1 = __webpack_require__( "./src/insights-loader/services/date-time-utils.service.ts"); +var SitefinityInsightTouchpointRequesterService = (function () { + function SitefinityInsightTouchpointRequesterService(sitefinityInsightHttpClient, sitefinityRequesterService, dateTimeUtils) { + this.sitefinityInsightHttpClient = sitefinityInsightHttpClient; + this.sitefinityRequesterService = sitefinityRequesterService; + this.dateTimeUtils = dateTimeUtils; + } + SitefinityInsightTouchpointRequesterService.prototype.getTouchpointByContent = function (contentItemInfo) { + var headers = { + filter: { + ContentId: contentItemInfo.Id, + ContentType: contentItemInfo.ContentType, + ContentProvider: contentItemInfo.Provider + } + }; + return this.sitefinityInsightHttpClient.get("analytics/v1/touchpoints/content", headers).pipe(operators_1.map(http_data_response_utils_1.HttpDataResponseUtils.firstOrDefault)); + }; + SitefinityInsightTouchpointRequesterService.prototype.createContentTouchpoint = function (defaultCulture, contentItemInfo) { + var _this = this; + var culture = contentItemInfo.AvailableLanguages[0]; + var hasTranslationInDefaultLanguage = contentItemInfo.AvailableLanguages.indexOf(defaultCulture) !== -1; + if (hasTranslationInDefaultLanguage) + culture = defaultCulture; + return this.sitefinityRequesterService.getContentItemsDetails(culture, contentItemInfo).pipe(operators_1.map(function (sfContentItem) { + var touchpoint = { + "Name": sfContentItem[contentItemInfo.DefaultFieldName], + "ContentId": contentItemInfo.Id, + "ContentType": contentItemInfo.ContentType, + "ContentProvider": contentItemInfo.Provider + }; + return touchpoint; + }), operators_1.mergeMap(function (touchpoint) { return _this.sitefinityInsightHttpClient.post("analytics/v1/touchpoints/content", touchpoint, {}); })); + }; + SitefinityInsightTouchpointRequesterService.prototype.hasStatistics = function (touchpointId) { + return this.getDailyStatistics(touchpointId, 5).pipe(operators_1.map(function (statistics) { return statistics && statistics.length >= 1; })); + }; + SitefinityInsightTouchpointRequesterService.prototype.getPeriodMetrics = function (touchpointId, period) { + var headers = { period: period }; + return this.sitefinityInsightHttpClient.get("analytics/v1/touchpoints/" + touchpointId + "/period-metrics", headers) + .pipe(operators_1.map(http_data_response_utils_1.HttpDataResponseUtils.firstOrDefault)) + .pipe(operators_1.map(function (touchpointPeriodMetrics) { + touchpointPeriodMetrics.Improvement = + touchpointPeriodMetrics.UniqueHits_PreviousPeriod + ? ((touchpointPeriodMetrics.UniqueHits_CurrentPeriod - touchpointPeriodMetrics.UniqueHits_PreviousPeriod) / touchpointPeriodMetrics.UniqueHits_PreviousPeriod) * 100 + : null; + return touchpointPeriodMetrics; + })); + }; + SitefinityInsightTouchpointRequesterService.prototype.getDailyStatistics = function (touchpointId, periodInDays) { + var extendedPeriod = periodInDays + 5; + var _a = this.dateTimeUtils.getFromDateAndToDateInclusiveHeaderValue(extendedPeriod), fromDateISOString = _a.fromDateISOString, toDateISOString = _a.toDateISOString; + var headers = { + fromDate: fromDateISOString, + toDate: toDateISOString + }; + return this.sitefinityInsightHttpClient.get("analytics/v1/touchpoints/" + touchpointId + "/statistics/daily", headers) + .pipe(operators_1.map(http_data_response_utils_1.HttpDataResponseUtils.flattenCollectionResponse)) + .pipe(operators_1.map(function (touchpointStatistics) { + var totalNumberOfStatistics = touchpointStatistics.length; + var gotMoreStatisticsThenRequestedPeriod = totalNumberOfStatistics - periodInDays > 0; + if (gotMoreStatisticsThenRequestedPeriod) { + return touchpointStatistics.slice(totalNumberOfStatistics - periodInDays); + } + else { + return touchpointStatistics; + } + })); + }; + SitefinityInsightTouchpointRequesterService.prototype.getAttributions = function (touchpointId, numberOfItemsToTake) { + var headers = { + filter: { TouchpointId: touchpointId }, + take: numberOfItemsToTake, + sort: { GoalCompletions: -1 } + }; + return this.sitefinityInsightHttpClient.get("analytics/v1/attributions", headers).pipe(operators_1.map(http_data_response_utils_1.HttpDataResponseUtils.flattenCollectionResponse)); + }; + SitefinityInsightTouchpointRequesterService.ctorParameters = function () { return [ + { type: sitefinity_insight_http_requester_1.SitefinityInsightHttpRequester, decorators: [{ type: core_1.Inject, args: [core_1.forwardRef(function () { return sitefinity_insight_http_requester_1.SitefinityInsightHttpRequester; }),] }] }, + { type: sitefinity_requester_service_1.SitefinityRequesterService, decorators: [{ type: core_1.Inject, args: [core_1.forwardRef(function () { return sitefinity_requester_service_1.SitefinityRequesterService; }),] }] }, + { type: date_time_utils_service_1.DateTimeUtilsService, decorators: [{ type: core_1.Inject, args: [core_1.forwardRef(function () { return date_time_utils_service_1.DateTimeUtilsService; }),] }] } + ]; }; + SitefinityInsightTouchpointRequesterService = tslib_1.__decorate([ + core_1.Injectable(), + tslib_1.__param(0, core_1.Inject(core_1.forwardRef(function () { return sitefinity_insight_http_requester_1.SitefinityInsightHttpRequester; }))), + tslib_1.__param(1, core_1.Inject(core_1.forwardRef(function () { return sitefinity_requester_service_1.SitefinityRequesterService; }))), + tslib_1.__param(2, core_1.Inject(core_1.forwardRef(function () { return date_time_utils_service_1.DateTimeUtilsService; }))), + tslib_1.__metadata("design:paramtypes", [sitefinity_insight_http_requester_1.SitefinityInsightHttpRequester, + sitefinity_requester_service_1.SitefinityRequesterService, + date_time_utils_service_1.DateTimeUtilsService]) + ], SitefinityInsightTouchpointRequesterService); + return SitefinityInsightTouchpointRequesterService; +}()); +exports.SitefinityInsightTouchpointRequesterService = SitefinityInsightTouchpointRequesterService; + + + }), + + "./src/insights-loader/services/sitefinity-requester.service.ts": + + + (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var tslib_1 = __webpack_require__( 100002); +var core_1 = __webpack_require__( 100003); +var http_1 = __webpack_require__( 100005); +var sitefinity_base_url_1 = __webpack_require__( "./src/insights-loader/services/sitefinity-base-url.ts"); +var SitefinityRequesterService = (function () { + function SitefinityRequesterService(httpClient) { + this.httpClient = httpClient; + } + SitefinityRequesterService.prototype.getContentItemsDetails = function (culture, itemInfo) { + var url = "sf/system/" + itemInfo.SfSetName + "(" + itemInfo.Id + ")?sf_culture=" + culture + "&sf_provider=" + itemInfo.Provider; + return this.httpClient.get(sitefinity_base_url_1.SitefinityBaseUrl.getHTTPPrefix() + url); + }; + SitefinityRequesterService.ctorParameters = function () { return [ + { type: http_1.HttpClient, decorators: [{ type: core_1.Inject, args: [core_1.forwardRef(function () { return http_1.HttpClient; }),] }] } + ]; }; + SitefinityRequesterService = tslib_1.__decorate([ + core_1.Injectable(), + tslib_1.__param(0, core_1.Inject(core_1.forwardRef(function () { return http_1.HttpClient; }))), + tslib_1.__metadata("design:paramtypes", [http_1.HttpClient]) + ], SitefinityRequesterService); + return SitefinityRequesterService; +}()); +exports.SitefinityRequesterService = SitefinityRequesterService; + + + }), + + "./src/insights-loader/touchpoint-details/touchpoint-details.component.ts": + + + (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var tslib_1 = __webpack_require__( 100002); +var core_1 = __webpack_require__( 100003); +var content_item_info_1 = __webpack_require__( "./src/insights-loader/entities/content-item-info.ts"); +var site_data_store_1 = __webpack_require__( "./src/insights-loader/entities/site-data-store.ts"); +var touchpoint_hits_component_1 = __webpack_require__( "./src/insights-loader/components/touchpoint-hits/touchpoint-hits.component.ts"); +var touchpoint_chart_component_1 = __webpack_require__( "./src/insights-loader/components/touchpoint-chart/touchpoint-chart.component.ts"); +var touchpoint_hightest_attribution_table_component_1 = __webpack_require__( "./src/insights-loader/components/touchpoint-highest-attribution-table/touchpoint-hightest-attribution-table.component.ts"); +var sitefinity_insight_analytics_redirect_button_component_1 = __webpack_require__( "./src/insights-loader/components/sitefinity-insight-analytics-redirect-button/sitefinity-insight-analytics-redirect-button.component.ts"); +var TouchpointDetailsComponent = (function () { + function TouchpointDetailsComponent() { + this.periodLengthInDays = 30; + this.periodString = '30 days'; + this.subcomponentsLoaded = false; + } + TouchpointDetailsComponent.prototype.ngAfterViewInit = function () { + var _this = this; + setTimeout(function () { return _this.subcomponentsLoaded = true; }, 0); + }; + TouchpointDetailsComponent.prototype.hasErrorInAnyComponent = function () { + return this.subcomponentsLoaded && + (this.hitsComponent.httpError || + this.chartComponent.httpError || + this.attributionsComponent.httpError || + this.redirectButtonComponent.httpError); + }; + TouchpointDetailsComponent.prototype.isLoadingAnyComponent = function () { + return this.subcomponentsLoaded && + (this.hitsComponent.loadingData || + this.chartComponent.loadingData || + this.attributionsComponent.loadingData || + this.redirectButtonComponent.loadingData); + }; + TouchpointDetailsComponent.prototype.retryLoadingComponents = function () { + if (this.subcomponentsLoaded) { + this.hitsComponent.getTouchpointHits(); + this.chartComponent.getTouchpointStatistics(); + this.attributionsComponent.getAttributions(); + this.redirectButtonComponent.getWebAppUrl(); + } + }; + tslib_1.__decorate([ + core_1.Input(), + tslib_1.__metadata("design:type", Object) + ], TouchpointDetailsComponent.prototype, "touchpoint", void 0); + tslib_1.__decorate([ + core_1.Input(), + tslib_1.__metadata("design:type", content_item_info_1.ContentItemInfo) + ], TouchpointDetailsComponent.prototype, "contentItemInfo", void 0); + tslib_1.__decorate([ + core_1.Input(), + tslib_1.__metadata("design:type", site_data_store_1.SiteDataStore) + ], TouchpointDetailsComponent.prototype, "siteDataStore", void 0); + tslib_1.__decorate([ + core_1.ViewChild(touchpoint_hits_component_1.TouchpointHitsComponent), + tslib_1.__metadata("design:type", touchpoint_hits_component_1.TouchpointHitsComponent) + ], TouchpointDetailsComponent.prototype, "hitsComponent", void 0); + tslib_1.__decorate([ + core_1.ViewChild(touchpoint_chart_component_1.TouchpointChartComponent), + tslib_1.__metadata("design:type", touchpoint_chart_component_1.TouchpointChartComponent) + ], TouchpointDetailsComponent.prototype, "chartComponent", void 0); + tslib_1.__decorate([ + core_1.ViewChild(touchpoint_hightest_attribution_table_component_1.TouchpointHighestAttributionTableComponent), + tslib_1.__metadata("design:type", touchpoint_hightest_attribution_table_component_1.TouchpointHighestAttributionTableComponent) + ], TouchpointDetailsComponent.prototype, "attributionsComponent", void 0); + tslib_1.__decorate([ + core_1.ViewChild(sitefinity_insight_analytics_redirect_button_component_1.SitefinityInsightAnalyticsRedirectButtonComponent), + tslib_1.__metadata("design:type", sitefinity_insight_analytics_redirect_button_component_1.SitefinityInsightAnalyticsRedirectButtonComponent) + ], TouchpointDetailsComponent.prototype, "redirectButtonComponent", void 0); + TouchpointDetailsComponent = tslib_1.__decorate([ + core_1.Component({ + selector: "touchpoint-details", + template: tslib_1.__importDefault(__webpack_require__( "./node_modules/raw-loader/dist/cjs.js!./src/insights-loader/touchpoint-details/touchpoint-details.component.html")).default + }) + ], TouchpointDetailsComponent); + return TouchpointDetailsComponent; +}()); +exports.TouchpointDetailsComponent = TouchpointDetailsComponent; + + + }), + + "./src/insights-loader/touchpoint-no-data-yet/touchpoint-no-data-yet.component.ts": + + + (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var tslib_1 = __webpack_require__( 100002); +var core_1 = __webpack_require__( 100003); +var content_item_info_1 = __webpack_require__( "./src/insights-loader/entities/content-item-info.ts"); +var site_data_store_1 = __webpack_require__( "./src/insights-loader/entities/site-data-store.ts"); +var TouchpointNoDataYetComponent = (function () { + function TouchpointNoDataYetComponent() { + } + TouchpointNoDataYetComponent.prototype.ngOnInit = function () { + }; + tslib_1.__decorate([ + core_1.Input(), + tslib_1.__metadata("design:type", content_item_info_1.ContentItemInfo) + ], TouchpointNoDataYetComponent.prototype, "contentItemInfo", void 0); + tslib_1.__decorate([ + core_1.Input(), + tslib_1.__metadata("design:type", site_data_store_1.SiteDataStore) + ], TouchpointNoDataYetComponent.prototype, "siteDataStore", void 0); + TouchpointNoDataYetComponent = tslib_1.__decorate([ + core_1.Component({ + selector: "touchpoint-no-data-yet", + template: tslib_1.__importDefault(__webpack_require__( "./node_modules/raw-loader/dist/cjs.js!./src/insights-loader/touchpoint-no-data-yet/touchpoint-no-data-yet.component.html")).default + }), + tslib_1.__metadata("design:paramtypes", []) + ], TouchpointNoDataYetComponent); + return TouchpointNoDataYetComponent; +}()); +exports.TouchpointNoDataYetComponent = TouchpointNoDataYetComponent; + + + }), + + "./src/insights-loader/wrapper-for-iris-services/commands-target-enum-wrapper.ts": + + + (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var tslib_1 = __webpack_require__( 100002); +var v1_1 = __webpack_require__( 100008); +var core_1 = __webpack_require__( 100003); +var CommandsTargetEnumWrapper = (function () { + function CommandsTargetEnumWrapper() { + } + Object.defineProperty(CommandsTargetEnumWrapper.prototype, "Edit", { + get: function () { + return v1_1.CommandsTarget.Edit; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(CommandsTargetEnumWrapper.prototype, "Create", { + get: function () { + return v1_1.CommandsTarget.Create; + }, + enumerable: true, + configurable: true + }); + CommandsTargetEnumWrapper = tslib_1.__decorate([ + core_1.Injectable() + ], CommandsTargetEnumWrapper); + return CommandsTargetEnumWrapper; +}()); +exports.CommandsTargetEnumWrapper = CommandsTargetEnumWrapper; + + + }), + + "./src/insights-loader/wrapper-for-iris-services/selector-service-wrapper.ts": + + + (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var tslib_1 = __webpack_require__( 100002); +var core_1 = __webpack_require__( 100003); +var v1_1 = __webpack_require__( 100008); +var SelectorServiceWrapper = (function () { + function SelectorServiceWrapper(selectorService) { + this.selectorService = selectorService; + } + SelectorServiceWrapper.prototype.openDialog = function (dialogData) { + return this.selectorService.openDialog(dialogData); + }; + SelectorServiceWrapper.ctorParameters = function () { return [ + { type: undefined, decorators: [{ type: core_1.Inject, args: [v1_1.SELECTOR_SERVICE,] }] } + ]; }; + SelectorServiceWrapper = tslib_1.__decorate([ + core_1.Injectable(), + tslib_1.__param(0, core_1.Inject(v1_1.SELECTOR_SERVICE)), + tslib_1.__metadata("design:paramtypes", [Object]) + ], SelectorServiceWrapper); + return SelectorServiceWrapper; +}()); +exports.SelectorServiceWrapper = SelectorServiceWrapper; + + + }), + + 100000: + + + (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var insights_loader_1 = __webpack_require__( "./src/insights-loader/index.ts"); +sitefinityExtensionsStore.addExtensionModule(insights_loader_1.InsightsLoaderExtensionModule); + + + }), + + 100001: + + + (function(module, exports, __webpack_require__) { + +module.exports = __webpack_require__(100000); + + + }), + + 100002: + + + (function(module, exports, __webpack_require__) { + +module.exports = __iris_require__('./node_modules/tslib/tslib.es6.js') + + }), + + 100003: + + + (function(module, exports, __webpack_require__) { + +module.exports = __iris_require__('./node_modules/@angular/core/__ivy_ngcc__/fesm5/core.js') + + }), + + 100004: + + + (function(module, exports, __webpack_require__) { + +module.exports = __iris_require__('./node_modules/@angular/platform-browser/__ivy_ngcc__/fesm5/platform-browser.js') + + }), + + 100005: + + + (function(module, exports, __webpack_require__) { + +module.exports = __iris_require__('./node_modules/@angular/common/__ivy_ngcc__/fesm5/http.js') + + }), + + 100006: + + + (function(module, exports, __webpack_require__) { + +module.exports = __iris_require__('./node_modules/rxjs/_esm5/index.js') + + }), + + 100007: + + + (function(module, exports, __webpack_require__) { + +module.exports = __iris_require__('./node_modules/rxjs/_esm5/operators/index.js') + + }), + + 100008: + + + (function(module, exports, __webpack_require__) { + +module.exports = __iris_require__('./node_modules/progress-sitefinity-adminapp-sdk/app/api/v1/index.js') + + }), + + 100009: + + + (function(module, exports, __webpack_require__) { + +module.exports = __iris_require__('./node_modules/@angular/router/__ivy_ngcc__/fesm5/router.js') + + }), + + 100010: + + + (function(module, exports, __webpack_require__) { + +module.exports = __iris_require__('./node_modules/@angular/platform-browser/__ivy_ngcc__/fesm5/animations.js') + + }), + + 100011: + + + (function(module, exports, __webpack_require__) { + +module.exports = __iris_require__('./node_modules/@angular/common/__ivy_ngcc__/fesm5/common.js') + + }), + + 100012: + + + (function(module, exports, __webpack_require__) { + +module.exports = __iris_require__('./node_modules/@angular/animations/__ivy_ngcc__/fesm5/animations.js') + + }), + + "dll-reference adminapp": + + + (function(module, exports) { + +module.exports = adminapp; + + }) + +},[[100001,"runtime"]]]); diff --git a/SitefinityWebApp/AdminApp/assets/auth/oidc-client.min.js b/SitefinityWebApp/AdminApp/assets/auth/oidc-client.min.js new file mode 100644 index 0000000..ae9cdba --- /dev/null +++ b/SitefinityWebApp/AdminApp/assets/auth/oidc-client.min.js @@ -0,0 +1,47 @@ +var Oidc=function(t){var e={};function r(n){if(e[n])return e[n].exports;var i=e[n]={i:n,l:!1,exports:{}};return t[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=t,r.c=e,r.d=function(t,e,n){r.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},r.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.t=function(t,e){if(1&e&&(t=r(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)r.d(n,i,function(e){return t[e]}.bind(null,i));return n},r.n=function(t){var e=t&&t.__esModule?function e(){return t.default}:function e(){return t};return r.d(e,"a",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p="",r(r.s=152)}([function(t,e,r){var n=r(2),i=r(19),o=r(12),s=r(13),a=r(20),u=function(t,e,r){var c,f,h,l,p=t&u.F,d=t&u.G,g=t&u.S,v=t&u.P,y=t&u.B,m=d?n:g?n[e]||(n[e]={}):(n[e]||{}).prototype,_=d?i:i[e]||(i[e]={}),S=_.prototype||(_.prototype={});for(c in d&&(r=e),r)h=((f=!p&&m&&void 0!==m[c])?m:r)[c],l=y&&f?a(h,n):v&&"function"==typeof h?a(Function.call,h):h,m&&s(m,c,h,t&u.U),_[c]!=h&&o(_,c,l),v&&S[c]!=h&&(S[c]=h)};n.core=i,u.F=1,u.G=2,u.S=4,u.P=8,u.B=16,u.W=32,u.U=64,u.R=128,t.exports=u},function(t,e,r){var n=r(5);t.exports=function(t){if(!n(t))throw TypeError(t+" is not an object!");return t}},function(t,e){var r=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=r)},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function t(t,e){for(var r=0;r=4){for(var e=arguments.length,r=Array(e),n=0;n=3){for(var e=arguments.length,r=Array(e),n=0;n=2){for(var e=arguments.length,r=Array(e),n=0;n=1){for(var e=arguments.length,r=Array(e),n=0;n0?i(n(t),9007199254740991):0}},function(t,e,r){t.exports=!r(4)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(t,e,r){var n=r(1),i=r(103),o=r(24),s=Object.defineProperty;e.f=r(8)?Object.defineProperty:function t(e,r,a){if(n(e),r=o(r,!0),n(a),i)try{return s(e,r,a)}catch(t){}if("get"in a||"set"in a)throw TypeError("Accessors not supported!");return"value"in a&&(e[r]=a.value),e}},function(t,e,r){var n=r(25);t.exports=function(t){return Object(n(t))}},function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},function(t,e,r){var n=r(9),i=r(34);t.exports=r(8)?function(t,e,r){return n.f(t,e,i(1,r))}:function(t,e,r){return t[e]=r,t}},function(t,e,r){var n=r(2),i=r(12),o=r(15),s=r(35)("src"),a=r(156),u=(""+a).split("toString");r(19).inspectSource=function(t){return a.call(t)},(t.exports=function(t,e,r,a){var c="function"==typeof r;c&&(o(r,"name")||i(r,"name",e)),t[e]!==r&&(c&&(o(r,s)||i(r,s,t[e]?""+t[e]:u.join(String(e)))),t===n?t[e]=r:a?t[e]?t[e]=r:i(t,e,r):(delete t[e],i(t,e,r)))})(Function.prototype,"toString",function t(){return"function"==typeof this&&this[s]||a.call(this)})},function(t,e,r){var n=r(0),i=r(4),o=r(25),s=/"/g,a=function(t,e,r,n){var i=String(o(t)),a="<"+e;return""!==r&&(a+=" "+r+'="'+String(n).replace(s,""")+'"'),a+">"+i+""};t.exports=function(t,e){var r={};r[t]=e(a),n(n.P+n.F*i(function(){var e=""[t]('"');return e!==e.toLowerCase()||e.split('"').length>3}),"String",r)}},function(t,e){var r={}.hasOwnProperty;t.exports=function(t,e){return r.call(t,e)}},function(t,e,r){var n=r(51),i=r(25);t.exports=function(t){return n(i(t))}},function(t,e,r){var n=r(52),i=r(34),o=r(16),s=r(24),a=r(15),u=r(103),c=Object.getOwnPropertyDescriptor;e.f=r(8)?c:function t(e,r){if(e=o(e),r=s(r,!0),u)try{return c(e,r)}catch(t){}if(a(e,r))return i(!n.f.call(e,r),e[r])}},function(t,e,r){var n=r(15),i=r(10),o=r(74)("IE_PROTO"),s=Object.prototype;t.exports=Object.getPrototypeOf||function(t){return t=i(t),n(t,o)?t[o]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?s:null}},function(t,e){var r=t.exports={version:"2.6.4"};"number"==typeof __e&&(__e=r)},function(t,e,r){var n=r(11);t.exports=function(t,e,r){if(n(t),void 0===e)return t;switch(r){case 1:return function(r){return t.call(e,r)};case 2:return function(r,n){return t.call(e,r,n)};case 3:return function(r,n,i){return t.call(e,r,n,i)}}return function(){return t.apply(e,arguments)}}},function(t,e){var r={}.toString;t.exports=function(t){return r.call(t).slice(8,-1)}},function(t,e){var r=Math.ceil,n=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?n:r)(t)}},function(t,e,r){"use strict";var n=r(4);t.exports=function(t,e){return!!t&&n(function(){e?t.call(null,function(){},1):t.call(null)})}},function(t,e,r){var n=r(5);t.exports=function(t,e){if(!n(t))return t;var r,i;if(e&&"function"==typeof(r=t.toString)&&!n(i=r.call(t)))return i;if("function"==typeof(r=t.valueOf)&&!n(i=r.call(t)))return i;if(!e&&"function"==typeof(r=t.toString)&&!n(i=r.call(t)))return i;throw TypeError("Can't convert object to primitive value")}},function(t,e){t.exports=function(t){if(void 0==t)throw TypeError("Can't call method on "+t);return t}},function(t,e,r){var n=r(0),i=r(19),o=r(4);t.exports=function(t,e){var r=(i.Object||{})[t]||Object[t],s={};s[t]=e(r),n(n.S+n.F*o(function(){r(1)}),"Object",s)}},function(t,e,r){var n=r(20),i=r(51),o=r(10),s=r(7),a=r(90);t.exports=function(t,e){var r=1==t,u=2==t,c=3==t,f=4==t,h=6==t,l=5==t||h,p=e||a;return function(e,a,d){for(var g,v,y=o(e),m=i(y),_=n(a,d,3),S=s(m.length),b=0,w=r?p(e,S):u?p(e,0):void 0;S>b;b++)if((l||b in m)&&(v=_(g=m[b],b,y),t))if(r)w[b]=v;else if(v)switch(t){case 3:return!0;case 5:return g;case 6:return b;case 2:w.push(g)}else if(f)return!1;return h?-1:c||f?f:w}}},function(t,e,r){"use strict";if(r(8)){var n=r(30),i=r(2),o=r(4),s=r(0),a=r(66),u=r(98),c=r(20),f=r(41),h=r(34),l=r(12),p=r(43),d=r(22),g=r(7),v=r(131),y=r(37),m=r(24),_=r(15),S=r(46),b=r(5),w=r(10),F=r(87),E=r(38),x=r(18),A=r(39).f,k=r(89),P=r(35),C=r(6),T=r(27),R=r(56),I=r(54),O=r(92),D=r(48),N=r(61),L=r(40),M=r(91),j=r(120),U=r(9),B=r(17),H=U.f,V=B.f,K=i.RangeError,q=i.TypeError,W=i.Uint8Array,J=Array.prototype,z=u.ArrayBuffer,Y=u.DataView,G=T(0),X=T(2),$=T(3),Q=T(4),Z=T(5),tt=T(6),et=R(!0),rt=R(!1),nt=O.values,it=O.keys,ot=O.entries,st=J.lastIndexOf,at=J.reduce,ut=J.reduceRight,ct=J.join,ft=J.sort,ht=J.slice,lt=J.toString,pt=J.toLocaleString,dt=C("iterator"),gt=C("toStringTag"),vt=P("typed_constructor"),yt=P("def_constructor"),mt=a.CONSTR,_t=a.TYPED,St=a.VIEW,bt=T(1,function(t,e){return At(I(t,t[yt]),e)}),wt=o(function(){return 1===new W(new Uint16Array([1]).buffer)[0]}),Ft=!!W&&!!W.prototype.set&&o(function(){new W(1).set({})}),Et=function(t,e){var r=d(t);if(r<0||r%e)throw K("Wrong offset!");return r},xt=function(t){if(b(t)&&_t in t)return t;throw q(t+" is not a typed array!")},At=function(t,e){if(!(b(t)&&vt in t))throw q("It is not a typed array constructor!");return new t(e)},kt=function(t,e){return Pt(I(t,t[yt]),e)},Pt=function(t,e){for(var r=0,n=e.length,i=At(t,n);n>r;)i[r]=e[r++];return i},Ct=function(t,e,r){H(t,e,{get:function(){return this._d[r]}})},Tt=function t(e){var r,n,i,o,s,a,u=w(e),f=arguments.length,h=f>1?arguments[1]:void 0,l=void 0!==h,p=k(u);if(void 0!=p&&!F(p)){for(a=p.call(u),i=[],r=0;!(s=a.next()).done;r++)i.push(s.value);u=i}for(l&&f>2&&(h=c(h,arguments[2],2)),r=0,n=g(u.length),o=At(this,n);n>r;r++)o[r]=l?h(u[r],r):u[r];return o},Rt=function t(){for(var e=0,r=arguments.length,n=At(this,r);r>e;)n[e]=arguments[e++];return n},It=!!W&&o(function(){pt.call(new W(1))}),Ot=function t(){return pt.apply(It?ht.call(xt(this)):xt(this),arguments)},Dt={copyWithin:function t(e,r){return j.call(xt(this),e,r,arguments.length>2?arguments[2]:void 0)},every:function t(e){return Q(xt(this),e,arguments.length>1?arguments[1]:void 0)},fill:function t(e){return M.apply(xt(this),arguments)},filter:function t(e){return kt(this,X(xt(this),e,arguments.length>1?arguments[1]:void 0))},find:function t(e){return Z(xt(this),e,arguments.length>1?arguments[1]:void 0)},findIndex:function t(e){return tt(xt(this),e,arguments.length>1?arguments[1]:void 0)},forEach:function t(e){G(xt(this),e,arguments.length>1?arguments[1]:void 0)},indexOf:function t(e){return rt(xt(this),e,arguments.length>1?arguments[1]:void 0)},includes:function t(e){return et(xt(this),e,arguments.length>1?arguments[1]:void 0)},join:function t(e){return ct.apply(xt(this),arguments)},lastIndexOf:function t(e){return st.apply(xt(this),arguments)},map:function t(e){return bt(xt(this),e,arguments.length>1?arguments[1]:void 0)},reduce:function t(e){return at.apply(xt(this),arguments)},reduceRight:function t(e){return ut.apply(xt(this),arguments)},reverse:function t(){for(var e,r=xt(this).length,n=Math.floor(r/2),i=0;i1?arguments[1]:void 0)},sort:function t(e){return ft.call(xt(this),e)},subarray:function t(e,r){var n=xt(this),i=n.length,o=y(e,i);return new(I(n,n[yt]))(n.buffer,n.byteOffset+o*n.BYTES_PER_ELEMENT,g((void 0===r?i:y(r,i))-o))}},Nt=function t(e,r){return kt(this,ht.call(xt(this),e,r))},Lt=function t(e){xt(this);var r=Et(arguments[1],1),n=this.length,i=w(e),o=g(i.length),s=0;if(o+r>n)throw K("Wrong length!");for(;s255?255:255&n),i.v[p](r*e+i.o,n,wt)}(this,r,t)},enumerable:!0})};_?(d=r(function(t,r,n,i){f(t,d,c,"_d");var o,s,a,u,h=0,p=0;if(b(r)){if(!(r instanceof z||"ArrayBuffer"==(u=S(r))||"SharedArrayBuffer"==u))return _t in r?Pt(d,r):Tt.call(d,r);o=r,p=Et(n,e);var y=r.byteLength;if(void 0===i){if(y%e)throw K("Wrong length!");if((s=y-p)<0)throw K("Wrong length!")}else if((s=g(i)*e)+p>y)throw K("Wrong length!");a=s/e}else a=v(r),o=new z(s=a*e);for(l(t,"_d",{b:o,o:p,l:s,e:a,v:new Y(o)});hdocument.F=Object<\/script>"),t.close(),u=t.F;n--;)delete u.prototype[o[n]];return u()};t.exports=Object.create||function t(e,r){var o;return null!==e?(a.prototype=n(e),o=new a,a.prototype=null,o[s]=e):o=u(),void 0===r?o:i(o,r)}},function(t,e,r){var n=r(105),i=r(75).concat("length","prototype");e.f=Object.getOwnPropertyNames||function t(e){return n(e,i)}},function(t,e,r){"use strict";var n=r(2),i=r(9),o=r(8),s=r(6)("species");t.exports=function(t){var e=n[t];o&&e&&!e[s]&&i.f(e,s,{configurable:!0,get:function(){return this}})}},function(t,e){t.exports=function(t,e,r,n){if(!(t instanceof e)||void 0!==n&&n in t)throw TypeError(r+": incorrect invocation!");return t}},function(t,e,r){var n=r(20),i=r(118),o=r(87),s=r(1),a=r(7),u=r(89),c={},f={};(e=t.exports=function(t,e,r,h,l){var p,d,g,v,y=l?function(){return t}:u(t),m=n(r,h,e?2:1),_=0;if("function"!=typeof y)throw TypeError(t+" is not iterable!");if(o(y)){for(p=a(t.length);p>_;_++)if((v=e?m(s(d=t[_])[0],d[1]):m(t[_]))===c||v===f)return v}else for(g=y.call(t);!(d=g.next()).done;)if((v=i(g,m,d.value,e))===c||v===f)return v}).BREAK=c,e.RETURN=f},function(t,e,r){var n=r(13);t.exports=function(t,e,r){for(var i in e)n(t,i,e[i],r);return t}},function(t,e,r){var n=r(5);t.exports=function(t,e){if(!n(t)||t._t!==e)throw TypeError("Incompatible receiver, "+e+" required!");return t}},function(t,e,r){var n=r(9).f,i=r(15),o=r(6)("toStringTag");t.exports=function(t,e,r){t&&!i(t=r?t:t.prototype,o)&&n(t,o,{configurable:!0,value:e})}},function(t,e,r){var n=r(21),i=r(6)("toStringTag"),o="Arguments"==n(function(){return arguments}());t.exports=function(t){var e,r,s;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(r=function(t,e){try{return t[e]}catch(t){}}(e=Object(t),i))?r:o?n(e):"Object"==(s=n(e))&&"function"==typeof e.callee?"Arguments":s}},function(t,e,r){var n=r(0),i=r(25),o=r(4),s=r(78),a="["+s+"]",u=RegExp("^"+a+a+"*"),c=RegExp(a+a+"*$"),f=function(t,e,r){var i={},a=o(function(){return!!s[t]()||"​…"!="​…"[t]()}),u=i[t]=a?e(h):s[t];r&&(i[r]=u),n(n.P+n.F*a,"String",i)},h=f.trim=function(t,e){return t=String(i(t)),1&e&&(t=t.replace(u,"")),2&e&&(t=t.replace(c,"")),t};t.exports=f},function(t,e){t.exports={}},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.MetadataService=void 0;var n=function(){function t(t,e){for(var r=0;r1&&void 0!==arguments[1]?arguments[1]:o.JsonService;if(function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),!e)throw i.Log.error("MetadataService: No settings passed to MetadataService"),new Error("settings");this._settings=e,this._jsonService=new r(["application/jwk-set+json"])}return t.prototype.getMetadata=function t(){var e=this;return this._settings.metadata?(i.Log.debug("MetadataService.getMetadata: Returning metadata from settings"),Promise.resolve(this._settings.metadata)):this.metadataUrl?(i.Log.debug("MetadataService.getMetadata: getting metadata from",this.metadataUrl),this._jsonService.getJson(this.metadataUrl).then(function(t){return i.Log.debug("MetadataService.getMetadata: json received"),e._settings.metadata=t,t})):(i.Log.error("MetadataService.getMetadata: No authority or metadataUrl configured on settings"),Promise.reject(new Error("No authority or metadataUrl configured on settings")))},t.prototype.getIssuer=function t(){return this._getMetadataProperty("issuer")},t.prototype.getAuthorizationEndpoint=function t(){return this._getMetadataProperty("authorization_endpoint")},t.prototype.getUserInfoEndpoint=function t(){return this._getMetadataProperty("userinfo_endpoint")},t.prototype.getTokenEndpoint=function t(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return this._getMetadataProperty("token_endpoint",e)},t.prototype.getCheckSessionIframe=function t(){return this._getMetadataProperty("check_session_iframe",!0)},t.prototype.getEndSessionEndpoint=function t(){return this._getMetadataProperty("end_session_endpoint",!0)},t.prototype.getRevocationEndpoint=function t(){return this._getMetadataProperty("revocation_endpoint",!0)},t.prototype.getKeysEndpoint=function t(){return this._getMetadataProperty("jwks_uri",!0)},t.prototype._getMetadataProperty=function t(e){var r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return i.Log.debug("MetadataService.getMetadataProperty for: "+e),this.getMetadata().then(function(t){if(i.Log.debug("MetadataService.getMetadataProperty: metadata recieved"),void 0===t[e]){if(!0===r)return void i.Log.warn("MetadataService.getMetadataProperty: Metadata does not contain optional property "+e);throw i.Log.error("MetadataService.getMetadataProperty: Metadata does not contain property "+e),new Error("Metadata does not contain property "+e)}return t[e]})},t.prototype.getSigningKeys=function t(){var e=this;return this._settings.signingKeys?(i.Log.debug("MetadataService.getSigningKeys: Returning signingKeys from settings"),Promise.resolve(this._settings.signingKeys)):this._getMetadataProperty("jwks_uri").then(function(t){return i.Log.debug("MetadataService.getSigningKeys: jwks_uri received",t),e._jsonService.getJson(t).then(function(t){if(i.Log.debug("MetadataService.getSigningKeys: key set received",t),!t.keys)throw i.Log.error("MetadataService.getSigningKeys: Missing keys on keyset"),new Error("Missing keys on keyset");return e._settings.signingKeys=t.keys,e._settings.signingKeys})})},n(t,[{key:"metadataUrl",get:function t(){return this._metadataUrl||(this._settings.metadataUrl?this._metadataUrl=this._settings.metadataUrl:(this._metadataUrl=this._settings.authority,this._metadataUrl&&this._metadataUrl.indexOf(".well-known/openid-configuration")<0&&("/"!==this._metadataUrl[this._metadataUrl.length-1]&&(this._metadataUrl+="/"),this._metadataUrl+=".well-known/openid-configuration"))),this._metadataUrl}}]),t}()},function(t,e,r){var n=r(19),i=r(2),o=i["__core-js_shared__"]||(i["__core-js_shared__"]={});(t.exports=function(t,e){return o[t]||(o[t]=void 0!==e?e:{})})("versions",[]).push({version:n.version,mode:r(30)?"pure":"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})},function(t,e,r){var n=r(21);t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==n(t)?t.split(""):Object(t)}},function(t,e){e.f={}.propertyIsEnumerable},function(t,e,r){"use strict";var n=r(1);t.exports=function(){var t=n(this),e="";return t.global&&(e+="g"),t.ignoreCase&&(e+="i"),t.multiline&&(e+="m"),t.unicode&&(e+="u"),t.sticky&&(e+="y"),e}},function(t,e,r){var n=r(1),i=r(11),o=r(6)("species");t.exports=function(t,e){var r,s=n(t).constructor;return void 0===s||void 0==(r=n(s)[o])?e:i(r)}},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.UrlUtility=void 0;var n=r(3),i=r(33);e.UrlUtility=function(){function t(){!function e(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,t)}return t.addQueryParam=function t(e,r,n){return e.indexOf("?")<0&&(e+="?"),"?"!==e[e.length-1]&&(e+="&"),e+=encodeURIComponent(r),e+="=",e+=encodeURIComponent(n)},t.parseUrlFragment=function t(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"#",o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:i.Global;"string"!=typeof e&&(e=o.location.href);var s=e.lastIndexOf(r);s>=0&&(e=e.substr(s+1)),"?"===r&&(s=e.indexOf("#"))>=0&&(e=e.substr(0,s));for(var a,u={},c=/([^&=]+)=([^&]*)/g,f=0;a=c.exec(e);)if(u[decodeURIComponent(a[1])]=decodeURIComponent(a[2]),f++>50)return n.Log.error("UrlUtility.parseUrlFragment: response exceeded expected number of parameters",e),{error:"Response exceeded expected number of parameters"};for(var h in u)return u;return{}},t}()},function(t,e,r){var n=r(16),i=r(7),o=r(37);t.exports=function(t){return function(e,r,s){var a,u=n(e),c=i(u.length),f=o(s,c);if(t&&r!=r){for(;c>f;)if((a=u[f++])!=a)return!0}else for(;c>f;f++)if((t||f in u)&&u[f]===r)return t||f||0;return!t&&-1}}},function(t,e){e.f=Object.getOwnPropertySymbols},function(t,e,r){var n=r(21);t.exports=Array.isArray||function t(e){return"Array"==n(e)}},function(t,e,r){var n=r(22),i=r(25);t.exports=function(t){return function(e,r){var o,s,a=String(i(e)),u=n(r),c=a.length;return u<0||u>=c?t?"":void 0:(o=a.charCodeAt(u))<55296||o>56319||u+1===c||(s=a.charCodeAt(u+1))<56320||s>57343?t?a.charAt(u):o:t?a.slice(u,u+2):s-56320+(o-55296<<10)+65536}}},function(t,e,r){var n=r(5),i=r(21),o=r(6)("match");t.exports=function(t){var e;return n(t)&&(void 0!==(e=t[o])?!!e:"RegExp"==i(t))}},function(t,e,r){var n=r(6)("iterator"),i=!1;try{var o=[7][n]();o.return=function(){i=!0},Array.from(o,function(){throw 2})}catch(t){}t.exports=function(t,e){if(!e&&!i)return!1;var r=!1;try{var o=[7],s=o[n]();s.next=function(){return{done:r=!0}},o[n]=function(){return s},t(o)}catch(t){}return r}},function(t,e,r){"use strict";var n=r(46),i=RegExp.prototype.exec;t.exports=function(t,e){var r=t.exec;if("function"==typeof r){var o=r.call(t,e);if("object"!=typeof o)throw new TypeError("RegExp exec method returned something other than an Object or null");return o}if("RegExp"!==n(t))throw new TypeError("RegExp#exec called on incompatible receiver");return i.call(t,e)}},function(t,e,r){"use strict";r(122);var n=r(13),i=r(12),o=r(4),s=r(25),a=r(6),u=r(93),c=a("species"),f=!o(function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:"7"},t},"7"!=="".replace(t,"$")}),h=function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var r="ab".split(t);return 2===r.length&&"a"===r[0]&&"b"===r[1]}();t.exports=function(t,e,r){var l=a(t),p=!o(function(){var e={};return e[l]=function(){return 7},7!=""[t](e)}),d=p?!o(function(){var e=!1,r=/a/;return r.exec=function(){return e=!0,null},"split"===t&&(r.constructor={},r.constructor[c]=function(){return r}),r[l](""),!e}):void 0;if(!p||!d||"replace"===t&&!f||"split"===t&&!h){var g=/./[l],v=r(s,l,""[t],function t(e,r,n,i,o){return r.exec===u?p&&!o?{done:!0,value:g.call(r,n,i)}:{done:!0,value:e.call(n,r,i)}:{done:!1}}),y=v[0],m=v[1];n(String.prototype,t,y),i(RegExp.prototype,l,2==e?function(t,e){return m.call(t,this,e)}:function(t){return m.call(t,this)})}}},function(t,e,r){var n=r(2).navigator;t.exports=n&&n.userAgent||""},function(t,e,r){"use strict";var n=r(2),i=r(0),o=r(13),s=r(43),a=r(31),u=r(42),c=r(41),f=r(5),h=r(4),l=r(61),p=r(45),d=r(79);t.exports=function(t,e,r,g,v,y){var m=n[t],_=m,S=v?"set":"add",b=_&&_.prototype,w={},F=function(t){var e=b[t];o(b,t,"delete"==t?function(t){return!(y&&!f(t))&&e.call(this,0===t?0:t)}:"has"==t?function t(r){return!(y&&!f(r))&&e.call(this,0===r?0:r)}:"get"==t?function t(r){return y&&!f(r)?void 0:e.call(this,0===r?0:r)}:"add"==t?function t(r){return e.call(this,0===r?0:r),this}:function t(r,n){return e.call(this,0===r?0:r,n),this})};if("function"==typeof _&&(y||b.forEach&&!h(function(){(new _).entries().next()}))){var E=new _,x=E[S](y?{}:-0,1)!=E,A=h(function(){E.has(1)}),k=l(function(t){new _(t)}),P=!y&&h(function(){for(var t=new _,e=5;e--;)t[S](e,e);return!t.has(-0)});k||((_=e(function(e,r){c(e,_,t);var n=d(new m,e,_);return void 0!=r&&u(r,v,n[S],n),n})).prototype=b,b.constructor=_),(A||P)&&(F("delete"),F("has"),v&&F("get")),(P||x)&&F(S),y&&b.clear&&delete b.clear}else _=g.getConstructor(e,t,v,S),s(_.prototype,r),a.NEED=!0;return p(_,t),w[t]=_,i(i.G+i.W+i.F*(_!=m),w),y||g.setStrong(_,t,v),_}},function(t,e,r){for(var n,i=r(2),o=r(12),s=r(35),a=s("typed_array"),u=s("view"),c=!(!i.ArrayBuffer||!i.DataView),f=c,h=0,l="Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array".split(",");h<9;)(n=i[l[h++]])?(o(n.prototype,a,!0),o(n.prototype,u,!0)):f=!1;t.exports={ABV:c,CONSTR:f,TYPED:a,VIEW:u}},function(t,e,r){"use strict";t.exports=r(30)||!r(4)(function(){var t=Math.random();__defineSetter__.call(null,t,function(){}),delete r(2)[t]})},function(t,e,r){"use strict";var n=r(0);t.exports=function(t){n(n.S,t,{of:function t(){for(var e=arguments.length,r=new Array(e);e--;)r[e]=arguments[e];return new this(r)}})}},function(t,e,r){"use strict";var n=r(0),i=r(11),o=r(20),s=r(42);t.exports=function(t){n(n.S,t,{from:function t(e){var r,n,a,u,c=arguments[1];return i(this),(r=void 0!==c)&&i(c),void 0==e?new this:(n=[],r?(a=0,u=o(c,arguments[2],2),s(e,!1,function(t){n.push(u(t,a++))})):s(e,!1,n.push,n),new this(n))}})}},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.JoseUtil=void 0;var n=r(358),i=function o(t){return t&&t.__esModule?t:{default:t}}(r(364));e.JoseUtil=(0,i.default)({jws:n.jws,KeyUtil:n.KeyUtil,X509:n.X509,crypto:n.crypto,hextob64u:n.hextob64u,b64tohex:n.b64tohex,AllowedSigningAlgs:n.AllowedSigningAlgs})},function(t,e){var r;r=function(){return this}();try{r=r||new Function("return this")()}catch(t){"object"==typeof window&&(r=window)}t.exports=r},function(t,e,r){var n=r(5),i=r(2).document,o=n(i)&&n(i.createElement);t.exports=function(t){return o?i.createElement(t):{}}},function(t,e,r){var n=r(2),i=r(19),o=r(30),s=r(104),a=r(9).f;t.exports=function(t){var e=i.Symbol||(i.Symbol=o?{}:n.Symbol||{});"_"==t.charAt(0)||t in e||a(e,t,{value:s.f(t)})}},function(t,e,r){var n=r(50)("keys"),i=r(35);t.exports=function(t){return n[t]||(n[t]=i(t))}},function(t,e){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(t,e,r){var n=r(2).document;t.exports=n&&n.documentElement},function(t,e,r){var n=r(5),i=r(1),o=function(t,e){if(i(t),!n(e)&&null!==e)throw TypeError(e+": can't set as prototype!")};t.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(t,e,n){try{(n=r(20)(Function.call,r(17).f(Object.prototype,"__proto__").set,2))(t,[]),e=!(t instanceof Array)}catch(t){e=!0}return function t(r,i){return o(r,i),e?r.__proto__=i:n(r,i),r}}({},!1):void 0),check:o}},function(t,e){t.exports="\t\n\v\f\r   ᠎              \u2028\u2029\ufeff"},function(t,e,r){var n=r(5),i=r(77).set;t.exports=function(t,e,r){var o,s=e.constructor;return s!==r&&"function"==typeof s&&(o=s.prototype)!==r.prototype&&n(o)&&i&&i(t,o),t}},function(t,e,r){"use strict";var n=r(22),i=r(25);t.exports=function t(e){var r=String(i(this)),o="",s=n(e);if(s<0||s==1/0)throw RangeError("Count can't be negative");for(;s>0;(s>>>=1)&&(r+=r))1&s&&(o+=r);return o}},function(t,e){t.exports=Math.sign||function t(e){return 0==(e=+e)||e!=e?e:e<0?-1:1}},function(t,e){var r=Math.expm1;t.exports=!r||r(10)>22025.465794806718||r(10)<22025.465794806718||-2e-17!=r(-2e-17)?function t(e){return 0==(e=+e)?e:e>-1e-6&&e<1e-6?e+e*e/2:Math.exp(e)-1}:r},function(t,e,r){"use strict";var n=r(30),i=r(0),o=r(13),s=r(12),a=r(48),u=r(84),c=r(45),f=r(18),h=r(6)("iterator"),l=!([].keys&&"next"in[].keys()),p=function(){return this};t.exports=function(t,e,r,d,g,v,y){u(r,e,d);var m,_,S,b=function(t){if(!l&&t in x)return x[t];switch(t){case"keys":return function e(){return new r(this,t)};case"values":return function e(){return new r(this,t)}}return function e(){return new r(this,t)}},w=e+" Iterator",F="values"==g,E=!1,x=t.prototype,A=x[h]||x["@@iterator"]||g&&x[g],k=A||b(g),P=g?F?b("entries"):k:void 0,C="Array"==e&&x.entries||A;if(C&&(S=f(C.call(new t)))!==Object.prototype&&S.next&&(c(S,w,!0),n||"function"==typeof S[h]||s(S,h,p)),F&&A&&"values"!==A.name&&(E=!0,k=function t(){return A.call(this)}),n&&!y||!l&&!E&&x[h]||s(x,h,k),a[e]=k,a[w]=p,g)if(m={values:F?k:b("values"),keys:v?k:b("keys"),entries:P},y)for(_ in m)_ in x||o(x,_,m[_]);else i(i.P+i.F*(l||E),e,m);return m}},function(t,e,r){"use strict";var n=r(38),i=r(34),o=r(45),s={};r(12)(s,r(6)("iterator"),function(){return this}),t.exports=function(t,e,r){t.prototype=n(s,{next:i(1,r)}),o(t,e+" Iterator")}},function(t,e,r){var n=r(60),i=r(25);t.exports=function(t,e,r){if(n(e))throw TypeError("String#"+r+" doesn't accept regex!");return String(i(t))}},function(t,e,r){var n=r(6)("match");t.exports=function(t){var e=/./;try{"/./"[t](e)}catch(r){try{return e[n]=!1,!"/./"[t](e)}catch(t){}}return!0}},function(t,e,r){var n=r(48),i=r(6)("iterator"),o=Array.prototype;t.exports=function(t){return void 0!==t&&(n.Array===t||o[i]===t)}},function(t,e,r){"use strict";var n=r(9),i=r(34);t.exports=function(t,e,r){e in t?n.f(t,e,i(0,r)):t[e]=r}},function(t,e,r){var n=r(46),i=r(6)("iterator"),o=r(48);t.exports=r(19).getIteratorMethod=function(t){if(void 0!=t)return t[i]||t["@@iterator"]||o[n(t)]}},function(t,e,r){var n=r(245);t.exports=function(t,e){return new(n(t))(e)}},function(t,e,r){"use strict";var n=r(10),i=r(37),o=r(7);t.exports=function t(e){for(var r=n(this),s=o(r.length),a=arguments.length,u=i(a>1?arguments[1]:void 0,s),c=a>2?arguments[2]:void 0,f=void 0===c?s:i(c,s);f>u;)r[u++]=e;return r}},function(t,e,r){"use strict";var n=r(32),i=r(121),o=r(48),s=r(16);t.exports=r(83)(Array,"Array",function(t,e){this._t=s(t),this._i=0,this._k=e},function(){var t=this._t,e=this._k,r=this._i++;return!t||r>=t.length?(this._t=void 0,i(1)):i(0,"keys"==e?r:"values"==e?t[r]:[r,t[r]])},"values"),o.Arguments=o.Array,n("keys"),n("values"),n("entries")},function(t,e,r){"use strict";var n,i,o=r(53),s=RegExp.prototype.exec,a=String.prototype.replace,u=s,c=(n=/a/,i=/b*/g,s.call(n,"a"),s.call(i,"a"),0!==n.lastIndex||0!==i.lastIndex),f=void 0!==/()??/.exec("")[1];(c||f)&&(u=function t(e){var r,n,i,u,h=this;return f&&(n=new RegExp("^"+h.source+"$(?!\\s)",o.call(h))),c&&(r=h.lastIndex),i=s.call(h,e),c&&i&&(h.lastIndex=h.global?i.index+i[0].length:r),f&&i&&i.length>1&&a.call(i[0],n,function(){for(u=1;ui;)r.push(arguments[i++]);return y[++v]=function(){a("function"==typeof e?e:Function(e),r)},n(v),v},p=function t(e){delete y[e]},"process"==r(21)(h)?n=function(t){h.nextTick(s(m,t,1))}:g&&g.now?n=function(t){g.now(s(m,t,1))}:d?(o=(i=new d).port2,i.port1.onmessage=_,n=s(o.postMessage,o,1)):f.addEventListener&&"function"==typeof postMessage&&!f.importScripts?(n=function(t){f.postMessage(t+"","*")},f.addEventListener("message",_,!1)):n="onreadystatechange"in c("script")?function(t){u.appendChild(c("script")).onreadystatechange=function(){u.removeChild(this),m.call(t)}}:function(t){setTimeout(s(m,t,1),0)}),t.exports={set:l,clear:p}},function(t,e,r){var n=r(2),i=r(95).set,o=n.MutationObserver||n.WebKitMutationObserver,s=n.process,a=n.Promise,u="process"==r(21)(s);t.exports=function(){var t,e,r,c=function(){var n,i;for(u&&(n=s.domain)&&n.exit();t;){i=t.fn,t=t.next;try{i()}catch(n){throw t?r():e=void 0,n}}e=void 0,n&&n.enter()};if(u)r=function(){s.nextTick(c)};else if(!o||n.navigator&&n.navigator.standalone)if(a&&a.resolve){var f=a.resolve(void 0);r=function(){f.then(c)}}else r=function(){i.call(n,c)};else{var h=!0,l=document.createTextNode("");new o(c).observe(l,{characterData:!0}),r=function(){l.data=h=!h}}return function(n){var i={fn:n,next:void 0};e&&(e.next=i),t||(t=i,r()),e=i}}},function(t,e,r){"use strict";var n=r(11);t.exports.f=function(t){return new function e(t){var e,r;this.promise=new t(function(t,n){if(void 0!==e||void 0!==r)throw TypeError("Bad Promise constructor");e=t,r=n}),this.resolve=n(e),this.reject=n(r)}(t)}},function(t,e,r){"use strict";var n=r(2),i=r(8),o=r(30),s=r(66),a=r(12),u=r(43),c=r(4),f=r(41),h=r(22),l=r(7),p=r(131),d=r(39).f,g=r(9).f,v=r(91),y=r(45),m="prototype",_="Wrong index!",S=n.ArrayBuffer,b=n.DataView,w=n.Math,F=n.RangeError,E=n.Infinity,x=S,A=w.abs,k=w.pow,P=w.floor,C=w.log,T=w.LN2,R=i?"_b":"buffer",I=i?"_l":"byteLength",O=i?"_o":"byteOffset";function D(t,e,r){var n,i,o,s=new Array(r),a=8*r-e-1,u=(1<>1,f=23===e?k(2,-24)-k(2,-77):0,h=0,l=t<0||0===t&&1/t<0?1:0;for((t=A(t))!=t||t===E?(i=t!=t?1:0,n=u):(n=P(C(t)/T),t*(o=k(2,-n))<1&&(n--,o*=2),(t+=n+c>=1?f/o:f*k(2,1-c))*o>=2&&(n++,o/=2),n+c>=u?(i=0,n=u):n+c>=1?(i=(t*o-1)*k(2,e),n+=c):(i=t*k(2,c-1)*k(2,e),n=0));e>=8;s[h++]=255&i,i/=256,e-=8);for(n=n<0;s[h++]=255&n,n/=256,a-=8);return s[--h]|=128*l,s}function N(t,e,r){var n,i=8*r-e-1,o=(1<>1,a=i-7,u=r-1,c=t[u--],f=127&c;for(c>>=7;a>0;f=256*f+t[u],u--,a-=8);for(n=f&(1<<-a)-1,f>>=-a,a+=e;a>0;n=256*n+t[u],u--,a-=8);if(0===f)f=1-s;else{if(f===o)return n?NaN:c?-E:E;n+=k(2,e),f-=s}return(c?-1:1)*n*k(2,f-e)}function L(t){return t[3]<<24|t[2]<<16|t[1]<<8|t[0]}function M(t){return[255&t]}function j(t){return[255&t,t>>8&255]}function U(t){return[255&t,t>>8&255,t>>16&255,t>>24&255]}function B(t){return D(t,52,8)}function H(t){return D(t,23,4)}function V(t,e,r){g(t[m],e,{get:function(){return this[r]}})}function K(t,e,r,n){var i=p(+r);if(i+e>t[I])throw F(_);var o=t[R]._b,s=i+t[O],a=o.slice(s,s+e);return n?a:a.reverse()}function q(t,e,r,n,i,o){var s=p(+r);if(s+e>t[I])throw F(_);for(var a=t[R]._b,u=s+t[O],c=n(+i),f=0;fY;)(W=z[Y++])in S||a(S,W,x[W]);o||(J.constructor=S)}var G=new b(new S(2)),X=b[m].setInt8;G.setInt8(0,2147483648),G.setInt8(1,2147483649),!G.getInt8(0)&&G.getInt8(1)||u(b[m],{setInt8:function t(e,r){X.call(this,e,r<<24>>24)},setUint8:function t(e,r){X.call(this,e,r<<24>>24)}},!0)}else S=function t(e){f(this,S,"ArrayBuffer");var r=p(e);this._b=v.call(new Array(r),0),this[I]=r},b=function t(e,r,n){f(this,b,"DataView"),f(e,S,"DataView");var i=e[I],o=h(r);if(o<0||o>i)throw F("Wrong offset!");if(o+(n=void 0===n?i-o:l(n))>i)throw F("Wrong length!");this[R]=e,this[O]=o,this[I]=n},i&&(V(S,"byteLength","_l"),V(b,"buffer","_b"),V(b,"byteLength","_l"),V(b,"byteOffset","_o")),u(b[m],{getInt8:function t(e){return K(this,1,e)[0]<<24>>24},getUint8:function t(e){return K(this,1,e)[0]},getInt16:function t(e){var r=K(this,2,e,arguments[1]);return(r[1]<<8|r[0])<<16>>16},getUint16:function t(e){var r=K(this,2,e,arguments[1]);return r[1]<<8|r[0]},getInt32:function t(e){return L(K(this,4,e,arguments[1]))},getUint32:function t(e){return L(K(this,4,e,arguments[1]))>>>0},getFloat32:function t(e){return N(K(this,4,e,arguments[1]),23,4)},getFloat64:function t(e){return N(K(this,8,e,arguments[1]),52,8)},setInt8:function t(e,r){q(this,1,e,M,r)},setUint8:function t(e,r){q(this,1,e,M,r)},setInt16:function t(e,r){q(this,2,e,j,r,arguments[2])},setUint16:function t(e,r){q(this,2,e,j,r,arguments[2])},setInt32:function t(e,r){q(this,4,e,U,r,arguments[2])},setUint32:function t(e,r){q(this,4,e,U,r,arguments[2])},setFloat32:function t(e,r){q(this,4,e,H,r,arguments[2])},setFloat64:function t(e,r){q(this,8,e,B,r,arguments[2])}});y(S,"ArrayBuffer"),y(b,"DataView"),a(b[m],s.VIEW,!0),e.ArrayBuffer=S,e.DataView=b},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.OidcClientSettings=void 0;var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i=function(){function t(t,e){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{},r=e.authority,i=e.metadataUrl,o=e.metadata,p=e.signingKeys,d=e.client_id,g=e.client_secret,v=e.response_type,y=void 0===v?c:v,m=e.scope,_=void 0===m?f:m,S=e.redirect_uri,b=e.post_logout_redirect_uri,w=e.prompt,F=e.display,E=e.max_age,x=e.ui_locales,A=e.acr_values,k=e.resource,P=e.response_mode,C=e.filterProtocolClaims,T=void 0===C||C,R=e.loadUserInfo,I=void 0===R||R,O=e.staleStateAge,D=void 0===O?h:O,N=e.clockSkew,L=void 0===N?l:N,M=e.userInfoJwtIssuer,j=void 0===M?"OP":M,U=e.stateStore,B=void 0===U?new s.WebStorageStateStore:U,H=e.ResponseValidatorCtor,V=void 0===H?a.ResponseValidator:H,K=e.MetadataServiceCtor,q=void 0===K?u.MetadataService:K,W=e.extraQueryParams,J=void 0===W?{}:W,z=e.extraTokenParams,Y=void 0===z?{}:z;!function G(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this._authority=r,this._metadataUrl=i,this._metadata=o,this._signingKeys=p,this._client_id=d,this._client_secret=g,this._response_type=y,this._scope=_,this._redirect_uri=S,this._post_logout_redirect_uri=b,this._prompt=w,this._display=F,this._max_age=E,this._ui_locales=x,this._acr_values=A,this._resource=k,this._response_mode=P,this._filterProtocolClaims=!!T,this._loadUserInfo=!!I,this._staleStateAge=D,this._clockSkew=L,this._userInfoJwtIssuer=j,this._stateStore=B,this._validator=new V(this),this._metadataService=new q(this),this._extraQueryParams="object"===(void 0===J?"undefined":n(J))?J:{},this._extraTokenParams="object"===(void 0===Y?"undefined":n(Y))?Y:{}}return i(t,[{key:"client_id",get:function t(){return this._client_id},set:function t(e){if(this._client_id)throw o.Log.error("OidcClientSettings.set_client_id: client_id has already been assigned."),new Error("client_id has already been assigned.");this._client_id=e}},{key:"client_secret",get:function t(){return this._client_secret}},{key:"response_type",get:function t(){return this._response_type}},{key:"scope",get:function t(){return this._scope}},{key:"redirect_uri",get:function t(){return this._redirect_uri}},{key:"post_logout_redirect_uri",get:function t(){return this._post_logout_redirect_uri}},{key:"prompt",get:function t(){return this._prompt}},{key:"display",get:function t(){return this._display}},{key:"max_age",get:function t(){return this._max_age}},{key:"ui_locales",get:function t(){return this._ui_locales}},{key:"acr_values",get:function t(){return this._acr_values}},{key:"resource",get:function t(){return this._resource}},{key:"response_mode",get:function t(){return this._response_mode}},{key:"authority",get:function t(){return this._authority},set:function t(e){if(this._authority)throw o.Log.error("OidcClientSettings.set_authority: authority has already been assigned."),new Error("authority has already been assigned.");this._authority=e}},{key:"metadataUrl",get:function t(){return this._metadataUrl||(this._metadataUrl=this.authority,this._metadataUrl&&this._metadataUrl.indexOf(".well-known/openid-configuration")<0&&("/"!==this._metadataUrl[this._metadataUrl.length-1]&&(this._metadataUrl+="/"),this._metadataUrl+=".well-known/openid-configuration")),this._metadataUrl}},{key:"metadata",get:function t(){return this._metadata},set:function t(e){this._metadata=e}},{key:"signingKeys",get:function t(){return this._signingKeys},set:function t(e){this._signingKeys=e}},{key:"filterProtocolClaims",get:function t(){return this._filterProtocolClaims}},{key:"loadUserInfo",get:function t(){return this._loadUserInfo}},{key:"staleStateAge",get:function t(){return this._staleStateAge}},{key:"clockSkew",get:function t(){return this._clockSkew}},{key:"userInfoJwtIssuer",get:function t(){return this._userInfoJwtIssuer}},{key:"stateStore",get:function t(){return this._stateStore}},{key:"validator",get:function t(){return this._validator}},{key:"metadataService",get:function t(){return this._metadataService}},{key:"extraQueryParams",get:function t(){return this._extraQueryParams},set:function t(e){"object"===(void 0===e?"undefined":n(e))?this._extraQueryParams=e:this._extraQueryParams={}}},{key:"extraTokenParams",get:function t(){return this._extraTokenParams},set:function t(e){"object"===(void 0===e?"undefined":n(e))?this._extraTokenParams=e:this._extraTokenParams={}}}]),t}()},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.WebStorageStateStore=void 0;var n=r(3),i=r(33);e.WebStorageStateStore=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=e.prefix,n=void 0===r?"oidc.":r,o=e.store,s=void 0===o?i.Global.localStorage:o;!function a(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this._store=s,this._prefix=n}return t.prototype.set=function t(e,r){return n.Log.debug("WebStorageStateStore.set",e),e=this._prefix+e,this._store.setItem(e,r),Promise.resolve()},t.prototype.get=function t(e){n.Log.debug("WebStorageStateStore.get",e),e=this._prefix+e;var r=this._store.getItem(e);return Promise.resolve(r)},t.prototype.remove=function t(e){n.Log.debug("WebStorageStateStore.remove",e),e=this._prefix+e;var r=this._store.getItem(e);return this._store.removeItem(e),Promise.resolve(r)},t.prototype.getAllKeys=function t(){n.Log.debug("WebStorageStateStore.getAllKeys");for(var e=[],r=0;r0&&void 0!==arguments[0]?arguments[0]:null,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:i.Global.XMLHttpRequest,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;!function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),e&&Array.isArray(e)?this._contentTypes=e.slice():this._contentTypes=[],this._contentTypes.push("application/json"),n&&this._contentTypes.push("application/jwt"),this._XMLHttpRequest=r,this._jwtHandler=n}return t.prototype.getJson=function t(e,r){var i=this;if(!e)throw n.Log.error("JsonService.getJson: No url passed"),new Error("url");return n.Log.debug("JsonService.getJson, url: ",e),new Promise(function(t,o){var s=new i._XMLHttpRequest;s.open("GET",e);var a=i._contentTypes,u=i._jwtHandler;s.onload=function(){if(n.Log.debug("JsonService.getJson: HTTP response received, status",s.status),200===s.status){var r=s.getResponseHeader("Content-Type");if(r){var i=a.find(function(t){if(r.startsWith(t))return!0});if("application/jwt"==i)return void u(s).then(t,o);if(i)try{return void t(JSON.parse(s.responseText))}catch(t){return n.Log.error("JsonService.getJson: Error parsing JSON response",t.message),void o(t)}}o(Error("Invalid response Content-Type: "+r+", from URL: "+e))}else o(Error(s.statusText+" ("+s.status+")"))},s.onerror=function(){n.Log.error("JsonService.getJson: network error"),o(Error("Network Error"))},r&&(n.Log.debug("JsonService.getJson: token passed, setting Authorization header"),s.setRequestHeader("Authorization","Bearer "+r)),s.send()})},t.prototype.postForm=function t(e,r){var i=this;if(!e)throw n.Log.error("JsonService.postForm: No url passed"),new Error("url");return n.Log.debug("JsonService.postForm, url: ",e),new Promise(function(t,o){var s=new i._XMLHttpRequest;s.open("POST",e);var a=i._contentTypes;s.onload=function(){if(n.Log.debug("JsonService.postForm: HTTP response received, status",s.status),200!==s.status){if(400===s.status)if(i=s.getResponseHeader("Content-Type"))if(a.find(function(t){if(i.startsWith(t))return!0}))try{var r=JSON.parse(s.responseText);if(r&&r.error)return n.Log.error("JsonService.postForm: Error from server: ",r.error),void o(new Error(r.error))}catch(t){return n.Log.error("JsonService.postForm: Error parsing JSON response",t.message),void o(t)}o(Error(s.statusText+" ("+s.status+")"))}else{var i;if((i=s.getResponseHeader("Content-Type"))&&a.find(function(t){if(i.startsWith(t))return!0}))try{return void t(JSON.parse(s.responseText))}catch(t){return n.Log.error("JsonService.postForm: Error parsing JSON response",t.message),void o(t)}o(Error("Invalid response Content-Type: "+i+", from URL: "+e))}},s.onerror=function(){n.Log.error("JsonService.postForm: network error"),o(Error("Network Error"))};var u="";for(var c in r){var f=r[c];f&&(u.length>0&&(u+="&"),u+=encodeURIComponent(c),u+="=",u+=encodeURIComponent(f))}s.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),s.send(u)})},t}()},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.State=void 0;var n=function(){function t(t,e){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{},r=e.id,n=e.data,i=e.created,s=e.request_type;!function a(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this._id=r||(0,o.default)(),this._data=n,this._created="number"==typeof i&&i>0?i:parseInt(Date.now()/1e3),this._request_type=s}return t.prototype.toStorageString=function t(){return i.Log.debug("State.toStorageString"),JSON.stringify({id:this.id,data:this.data,created:this.created,request_type:this.request_type})},t.fromStorageString=function e(r){return i.Log.debug("State.fromStorageString"),new t(JSON.parse(r))},t.clearStaleState=function e(r,n){var o=Date.now()/1e3-n;return r.getAllKeys().then(function(e){i.Log.debug("State.clearStaleState: got keys",e);for(var n=[],s=function s(a){var c=e[a];u=r.get(c).then(function(e){var n=!1;if(e)try{var s=t.fromStorageString(e);i.Log.debug("State.clearStaleState: got item from key: ",c,s.created),s.created<=o&&(n=!0)}catch(t){i.Log.error("State.clearStaleState: Error parsing state for key",c,t.message),n=!0}else i.Log.debug("State.clearStaleState: no item in storage for key: ",c),n=!0;if(n)return i.Log.debug("State.clearStaleState: removed item for key: ",c),r.remove(c)}),n.push(u)},a=0;au;)n(a,r=e[u++])&&(~o(c,r)||c.push(r));return c}},function(t,e,r){var n=r(9),i=r(1),o=r(36);t.exports=r(8)?Object.defineProperties:function t(e,r){i(e);for(var s,a=o(r),u=a.length,c=0;u>c;)n.f(e,s=a[c++],r[s]);return e}},function(t,e,r){var n=r(16),i=r(39).f,o={}.toString,s="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];t.exports.f=function t(e){return s&&"[object Window]"==o.call(e)?function(t){try{return i(t)}catch(t){return s.slice()}}(e):i(n(e))}},function(t,e,r){"use strict";var n=r(36),i=r(57),o=r(52),s=r(10),a=r(51),u=Object.assign;t.exports=!u||r(4)(function(){var t={},e={},r=Symbol(),n="abcdefghijklmnopqrst";return t[r]=7,n.split("").forEach(function(t){e[t]=t}),7!=u({},t)[r]||Object.keys(u({},e)).join("")!=n})?function t(e,r){for(var u=s(e),c=arguments.length,f=1,h=i.f,l=o.f;c>f;)for(var p,d=a(arguments[f++]),g=h?n(d).concat(h(d)):n(d),v=g.length,y=0;v>y;)l.call(d,p=g[y++])&&(u[p]=d[p]);return u}:u},function(t,e){t.exports=Object.is||function t(e,r){return e===r?0!==e||1/e==1/r:e!=e&&r!=r}},function(t,e,r){"use strict";var n=r(11),i=r(5),o=r(111),s=[].slice,a={};t.exports=Function.bind||function t(e){var r=n(this),u=s.call(arguments,1),c=function(){var t=u.concat(s.call(arguments));return this instanceof c?function(t,e,r){if(!(e in a)){for(var n=[],i=0;i>>0||(s.test(o)?16:10))}:n},function(t,e,r){var n=r(2).parseFloat,i=r(47).trim;t.exports=1/n(r(78)+"-0")!=-1/0?function t(e){var r=i(String(e),3),o=n(r);return 0===o&&"-"==r.charAt(0)?-0:o}:n},function(t,e,r){var n=r(21);t.exports=function(t,e){if("number"!=typeof t&&"Number"!=n(t))throw TypeError(e);return+t}},function(t,e,r){var n=r(5),i=Math.floor;t.exports=function t(e){return!n(e)&&isFinite(e)&&i(e)===e}},function(t,e){t.exports=Math.log1p||function t(e){return(e=+e)>-1e-8&&e<1e-8?e-e*e/2:Math.log(1+e)}},function(t,e,r){var n=r(81),i=Math.pow,o=i(2,-52),s=i(2,-23),a=i(2,127)*(2-s),u=i(2,-126);t.exports=Math.fround||function t(e){var r,i,c=Math.abs(e),f=n(e);return ca||i!=i?f*(1/0):f*i}},function(t,e,r){var n=r(1);t.exports=function(t,e,r,i){try{return i?e(n(r)[0],r[1]):e(r)}catch(e){var o=t.return;throw void 0!==o&&n(o.call(t)),e}}},function(t,e,r){var n=r(11),i=r(10),o=r(51),s=r(7);t.exports=function(t,e,r,a,u){n(e);var c=i(t),f=o(c),h=s(c.length),l=u?h-1:0,p=u?-1:1;if(r<2)for(;;){if(l in f){a=f[l],l+=p;break}if(l+=p,u?l<0:h<=l)throw TypeError("Reduce of empty array with no initial value")}for(;u?l>=0:h>l;l+=p)l in f&&(a=e(a,f[l],l,c));return a}},function(t,e,r){"use strict";var n=r(10),i=r(37),o=r(7);t.exports=[].copyWithin||function t(e,r){var s=n(this),a=o(s.length),u=i(e,a),c=i(r,a),f=arguments.length>2?arguments[2]:void 0,h=Math.min((void 0===f?a:i(f,a))-c,a-u),l=1;for(c0;)c in s?s[u]=s[c]:delete s[u],u+=l,c+=l;return s}},function(t,e){t.exports=function(t,e){return{value:e,done:!!t}}},function(t,e,r){"use strict";var n=r(93);r(0)({target:"RegExp",proto:!0,forced:n!==/./.exec},{exec:n})},function(t,e,r){r(8)&&"g"!=/./g.flags&&r(9).f(RegExp.prototype,"flags",{configurable:!0,get:r(53)})},function(t,e){t.exports=function(t){try{return{e:!1,v:t()}}catch(t){return{e:!0,v:t}}}},function(t,e,r){var n=r(1),i=r(5),o=r(97);t.exports=function(t,e){if(n(t),i(e)&&e.constructor===t)return e;var r=o.f(t);return(0,r.resolve)(e),r.promise}},function(t,e,r){"use strict";var n=r(127),i=r(44);t.exports=r(65)("Map",function(t){return function e(){return t(this,arguments.length>0?arguments[0]:void 0)}},{get:function t(e){var r=n.getEntry(i(this,"Map"),e);return r&&r.v},set:function t(e,r){return n.def(i(this,"Map"),0===e?0:e,r)}},n,!0)},function(t,e,r){"use strict";var n=r(9).f,i=r(38),o=r(43),s=r(20),a=r(41),u=r(42),c=r(83),f=r(121),h=r(40),l=r(8),p=r(31).fastKey,d=r(44),g=l?"_s":"size",v=function(t,e){var r,n=p(e);if("F"!==n)return t._i[n];for(r=t._f;r;r=r.n)if(r.k==e)return r};t.exports={getConstructor:function(t,e,r,c){var f=t(function(t,n){a(t,f,e,"_i"),t._t=e,t._i=i(null),t._f=void 0,t._l=void 0,t[g]=0,void 0!=n&&u(n,r,t[c],t)});return o(f.prototype,{clear:function t(){for(var r=d(this,e),n=r._i,i=r._f;i;i=i.n)i.r=!0,i.p&&(i.p=i.p.n=void 0),delete n[i.i];r._f=r._l=void 0,r[g]=0},delete:function(t){var r=d(this,e),n=v(r,t);if(n){var i=n.n,o=n.p;delete r._i[n.i],n.r=!0,o&&(o.n=i),i&&(i.p=o),r._f==n&&(r._f=i),r._l==n&&(r._l=o),r[g]--}return!!n},forEach:function t(r){d(this,e);for(var n,i=s(r,arguments.length>1?arguments[1]:void 0,3);n=n?n.n:this._f;)for(i(n.v,n.k,this);n&&n.r;)n=n.p},has:function t(r){return!!v(d(this,e),r)}}),l&&n(f.prototype,"size",{get:function(){return d(this,e)[g]}}),f},def:function(t,e,r){var n,i,o=v(t,e);return o?o.v=r:(t._l=o={i:i=p(e,!0),k:e,v:r,p:n=t._l,n:void 0,r:!1},t._f||(t._f=o),n&&(n.n=o),t[g]++,"F"!==i&&(t._i[i]=o)),t},getEntry:v,setStrong:function(t,e,r){c(t,e,function(t,r){this._t=d(t,e),this._k=r,this._l=void 0},function(){for(var t=this._k,e=this._l;e&&e.r;)e=e.p;return this._t&&(this._l=e=e?e.n:this._t._f)?f(0,"keys"==t?e.k:"values"==t?e.v:[e.k,e.v]):(this._t=void 0,f(1))},r?"entries":"values",!r,!0),h(e)}}},function(t,e,r){"use strict";var n=r(127),i=r(44);t.exports=r(65)("Set",function(t){return function e(){return t(this,arguments.length>0?arguments[0]:void 0)}},{add:function t(e){return n.def(i(this,"Set"),e=0===e?0:e,e)}},n)},function(t,e,r){"use strict";var n,i=r(2),o=r(27)(0),s=r(13),a=r(31),u=r(108),c=r(130),f=r(5),h=r(44),l=r(44),p=!i.ActiveXObject&&"ActiveXObject"in i,d=a.getWeak,g=Object.isExtensible,v=c.ufstore,y=function(t){return function e(){return t(this,arguments.length>0?arguments[0]:void 0)}},m={get:function t(e){if(f(e)){var r=d(e);return!0===r?v(h(this,"WeakMap")).get(e):r?r[this._i]:void 0}},set:function t(e,r){return c.def(h(this,"WeakMap"),e,r)}},_=t.exports=r(65)("WeakMap",y,m,c,!0,!0);l&&p&&(u((n=c.getConstructor(y,"WeakMap")).prototype,m),a.NEED=!0,o(["delete","has","get","set"],function(t){var e=_.prototype,r=e[t];s(e,t,function(e,i){if(f(e)&&!g(e)){this._f||(this._f=new n);var o=this._f[t](e,i);return"set"==t?this:o}return r.call(this,e,i)})}))},function(t,e,r){"use strict";var n=r(43),i=r(31).getWeak,o=r(1),s=r(5),a=r(41),u=r(42),c=r(27),f=r(15),h=r(44),l=c(5),p=c(6),d=0,g=function(t){return t._l||(t._l=new v)},v=function(){this.a=[]},y=function(t,e){return l(t.a,function(t){return t[0]===e})};v.prototype={get:function(t){var e=y(this,t);if(e)return e[1]},has:function(t){return!!y(this,t)},set:function(t,e){var r=y(this,t);r?r[1]=e:this.a.push([t,e])},delete:function(t){var e=p(this.a,function(e){return e[0]===t});return~e&&this.a.splice(e,1),!!~e}},t.exports={getConstructor:function(t,e,r,o){var c=t(function(t,n){a(t,c,e,"_i"),t._t=e,t._i=d++,t._l=void 0,void 0!=n&&u(n,r,t[o],t)});return n(c.prototype,{delete:function(t){if(!s(t))return!1;var r=i(t);return!0===r?g(h(this,e)).delete(t):r&&f(r,this._i)&&delete r[this._i]},has:function t(r){if(!s(r))return!1;var n=i(r);return!0===n?g(h(this,e)).has(r):n&&f(n,this._i)}}),c},def:function(t,e,r){var n=i(o(e),!0);return!0===n?g(t).set(e,r):n[t._i]=r,t},ufstore:g}},function(t,e,r){var n=r(22),i=r(7);t.exports=function(t){if(void 0===t)return 0;var e=n(t),r=i(e);if(e!==r)throw RangeError("Wrong length!");return r}},function(t,e,r){var n=r(39),i=r(57),o=r(1),s=r(2).Reflect;t.exports=s&&s.ownKeys||function t(e){var r=n.f(o(e)),s=i.f;return s?r.concat(s(e)):r}},function(t,e,r){"use strict";var n=r(58),i=r(5),o=r(7),s=r(20),a=r(6)("isConcatSpreadable");t.exports=function t(e,r,u,c,f,h,l,p){for(var d,g,v=f,y=0,m=!!l&&s(l,p,3);y0)v=t(e,r,d,o(d.length),v,h-1)-1;else{if(v>=9007199254740991)throw TypeError();e[v]=d}v++}y++}return v}},function(t,e,r){var n=r(7),i=r(80),o=r(25);t.exports=function(t,e,r,s){var a=String(o(t)),u=a.length,c=void 0===r?" ":String(r),f=n(e);if(f<=u||""==c)return a;var h=f-u,l=i.call(c,Math.ceil(h/c.length));return l.length>h&&(l=l.slice(0,h)),s?l+a:a+l}},function(t,e,r){var n=r(36),i=r(16),o=r(52).f;t.exports=function(t){return function(e){for(var r,s=i(e),a=n(s),u=a.length,c=0,f=[];u>c;)o.call(s,r=a[c++])&&f.push(t?[r,s[r]]:s[r]);return f}}},function(t,e,r){var n=r(46),i=r(137);t.exports=function(t){return function e(){if(n(this)!=t)throw TypeError(t+"#toJSON isn't generic");return i(this)}}},function(t,e,r){var n=r(42);t.exports=function(t,e){var r=[];return n(t,!1,r.push,r,e),r}},function(t,e){t.exports=Math.scale||function t(e,r,n,i,o){return 0===arguments.length||e!=e||r!=r||n!=n||i!=i||o!=o?NaN:e===1/0||e===-1/0?e:(e-r)*(o-i)/(n-r)+i}},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.OidcClient=void 0;var n=function(){function t(t,e){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{};!function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),e instanceof o.OidcClientSettings?this._settings=e:this._settings=new o.OidcClientSettings(e)}return t.prototype.createSigninRequest=function t(){var e=this,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=r.response_type,o=r.scope,s=r.redirect_uri,u=r.data,c=r.state,f=r.prompt,h=r.display,l=r.max_age,p=r.ui_locales,d=r.id_token_hint,g=r.login_hint,v=r.acr_values,y=r.resource,m=r.request,_=r.request_uri,S=r.response_mode,b=r.extraQueryParams,w=r.extraTokenParams,F=r.request_type,E=r.skipUserInfo,x=arguments[1];i.Log.debug("OidcClient.createSigninRequest");var A=this._settings.client_id;n=n||this._settings.response_type,o=o||this._settings.scope,s=s||this._settings.redirect_uri,f=f||this._settings.prompt,h=h||this._settings.display,l=l||this._settings.max_age,p=p||this._settings.ui_locales,v=v||this._settings.acr_values,y=y||this._settings.resource,S=S||this._settings.response_mode,b=b||this._settings.extraQueryParams,w=w||this._settings.extraTokenParams;var k=this._settings.authority;return a.SigninRequest.isCode(n)&&"code"!==n?Promise.reject(new Error("OpenID Connect hybrid flow is not supported")):this._metadataService.getAuthorizationEndpoint().then(function(t){i.Log.debug("OidcClient.createSigninRequest: Received authorization endpoint",t);var r=new a.SigninRequest({url:t,client_id:A,redirect_uri:s,response_type:n,scope:o,data:u||c,authority:k,prompt:f,display:h,max_age:l,ui_locales:p,id_token_hint:d,login_hint:g,acr_values:v,resource:y,request:m,request_uri:_,extraQueryParams:b,extraTokenParams:w,request_type:F,response_mode:S,client_secret:e._settings.client_secret,skipUserInfo:E}),P=r.state;return(x=x||e._stateStore).set(P.id,P.toStorageString()).then(function(){return r})})},t.prototype.readSigninResponseState=function t(e,r){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];i.Log.debug("OidcClient.readSigninResponseState");var o="query"===this._settings.response_mode||!this._settings.response_mode&&a.SigninRequest.isCode(this._settings.response_type)?"?":"#",s=new u.SigninResponse(e,o);return s.state?(r=r||this._stateStore,(n?r.remove.bind(r):r.get.bind(r))(s.state).then(function(t){if(!t)throw i.Log.error("OidcClient.readSigninResponseState: No matching state found in storage"),new Error("No matching state found in storage");return{state:h.SigninState.fromStorageString(t),response:s}})):(i.Log.error("OidcClient.readSigninResponseState: No state in response"),Promise.reject(new Error("No state in response")))},t.prototype.processSigninResponse=function t(e,r){var n=this;return i.Log.debug("OidcClient.processSigninResponse"),this.readSigninResponseState(e,r,!0).then(function(t){var e=t.state,r=t.response;return i.Log.debug("OidcClient.processSigninResponse: Received state from storage; validating response"),n._validator.validateSigninResponse(e,r)})},t.prototype.createSignoutRequest=function t(){var e=this,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=r.id_token_hint,o=r.data,s=r.state,a=r.post_logout_redirect_uri,u=r.extraQueryParams,f=r.request_type,h=arguments[1];return i.Log.debug("OidcClient.createSignoutRequest"),a=a||this._settings.post_logout_redirect_uri,u=u||this._settings.extraQueryParams,this._metadataService.getEndSessionEndpoint().then(function(t){if(!t)throw i.Log.error("OidcClient.createSignoutRequest: No end session endpoint url returned"),new Error("no end session endpoint");i.Log.debug("OidcClient.createSignoutRequest: Received end session endpoint",t);var r=new c.SignoutRequest({url:t,id_token_hint:n,post_logout_redirect_uri:a,data:o||s,extraQueryParams:u,request_type:f}),l=r.state;return l&&(i.Log.debug("OidcClient.createSignoutRequest: Signout request has state to persist"),(h=h||e._stateStore).set(l.id,l.toStorageString())),r})},t.prototype.readSignoutResponseState=function t(e,r){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];i.Log.debug("OidcClient.readSignoutResponseState");var o=new f.SignoutResponse(e);if(!o.state)return i.Log.debug("OidcClient.readSignoutResponseState: No state in response"),o.error?(i.Log.warn("OidcClient.readSignoutResponseState: Response was error: ",o.error),Promise.reject(new s.ErrorResponse(o))):Promise.resolve({undefined:void 0,response:o});var a=o.state;return r=r||this._stateStore,(n?r.remove.bind(r):r.get.bind(r))(a).then(function(t){if(!t)throw i.Log.error("OidcClient.readSignoutResponseState: No matching state found in storage"),new Error("No matching state found in storage");return{state:l.State.fromStorageString(t),response:o}})},t.prototype.processSignoutResponse=function t(e,r){var n=this;return i.Log.debug("OidcClient.processSignoutResponse"),this.readSignoutResponseState(e,r,!0).then(function(t){var e=t.state,r=t.response;return e?(i.Log.debug("OidcClient.processSignoutResponse: Received state from storage; validating response"),n._validator.validateSignoutResponse(e,r)):(i.Log.debug("OidcClient.processSignoutResponse: No state from storage; skipping validating response"),r)})},t.prototype.clearStaleState=function t(e){return i.Log.debug("OidcClient.clearStaleState"),e=e||this._stateStore,l.State.clearStaleState(e,this.settings.staleStateAge)},n(t,[{key:"_stateStore",get:function t(){return this.settings.stateStore}},{key:"_validator",get:function t(){return this.settings.validator}},{key:"_metadataService",get:function t(){return this.settings.metadataService}},{key:"settings",get:function t(){return this._settings}},{key:"metadataService",get:function t(){return this._metadataService}}]),t}()},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.TokenClient=void 0;var n=r(101),i=r(49),o=r(3);e.TokenClient=function(){function t(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:n.JsonService,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:i.MetadataService;if(function a(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),!e)throw o.Log.error("TokenClient.ctor: No settings passed"),new Error("settings");this._settings=e,this._jsonService=new r,this._metadataService=new s(this._settings)}return t.prototype.exchangeCode=function t(){var e=this,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return(r=Object.assign({},r)).grant_type=r.grant_type||"authorization_code",r.client_id=r.client_id||this._settings.client_id,r.redirect_uri=r.redirect_uri||this._settings.redirect_uri,r.code?r.redirect_uri?r.code_verifier?r.client_id?this._metadataService.getTokenEndpoint(!1).then(function(t){return o.Log.debug("TokenClient.exchangeCode: Received token endpoint"),e._jsonService.postForm(t,r).then(function(t){return o.Log.debug("TokenClient.exchangeCode: response received"),t})}):(o.Log.error("TokenClient.exchangeCode: No client_id passed"),Promise.reject(new Error("A client_id is required"))):(o.Log.error("TokenClient.exchangeCode: No code_verifier passed"),Promise.reject(new Error("A code_verifier is required"))):(o.Log.error("TokenClient.exchangeCode: No redirect_uri passed"),Promise.reject(new Error("A redirect_uri is required"))):(o.Log.error("TokenClient.exchangeCode: No code passed"),Promise.reject(new Error("A code is required")))},t.prototype.exchangeRefreshToken=function t(){var e=this,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return(r=Object.assign({},r)).grant_type=r.grant_type||"refresh_token",r.client_id=r.client_id||this._settings.client_id,r.client_secret=r.client_secret||this._settings.client_secret,r.refresh_token?r.client_id?this._metadataService.getTokenEndpoint(!1).then(function(t){return o.Log.debug("TokenClient.exchangeRefreshToken: Received token endpoint"),e._jsonService.postForm(t,r).then(function(t){return o.Log.debug("TokenClient.exchangeRefreshToken: response received"),t})}):(o.Log.error("TokenClient.exchangeRefreshToken: No client_id passed"),Promise.reject(new Error("A client_id is required"))):(o.Log.error("TokenClient.exchangeRefreshToken: No refresh_token passed"),Promise.reject(new Error("A refresh_token is required")))},t}()},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ErrorResponse=void 0;var n=r(3);e.ErrorResponse=function(t){function e(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=r.error,o=r.error_description,s=r.error_uri,a=r.state,u=r.session_state;if(function c(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e),!i)throw n.Log.error("No error passed to ErrorResponse"),new Error("error");var f=function h(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}(this,t.call(this,o||i));return f.name="ErrorResponse",f.error=i,f.error_description=o,f.error_uri=s,f.state=a,f.session_state=u,f}return function r(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,t),e}(Error)},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SigninRequest=void 0;var n=r(3),i=r(55),o=r(143);e.SigninRequest=function(){function t(e){var r=e.url,s=e.client_id,a=e.redirect_uri,u=e.response_type,c=e.scope,f=e.authority,h=e.data,l=e.prompt,p=e.display,d=e.max_age,g=e.ui_locales,v=e.id_token_hint,y=e.login_hint,m=e.acr_values,_=e.resource,S=e.response_mode,b=e.request,w=e.request_uri,F=e.extraQueryParams,E=e.request_type,x=e.client_secret,A=e.extraTokenParams,k=e.skipUserInfo;if(function P(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),!r)throw n.Log.error("SigninRequest.ctor: No url passed"),new Error("url");if(!s)throw n.Log.error("SigninRequest.ctor: No client_id passed"),new Error("client_id");if(!a)throw n.Log.error("SigninRequest.ctor: No redirect_uri passed"),new Error("redirect_uri");if(!u)throw n.Log.error("SigninRequest.ctor: No response_type passed"),new Error("response_type");if(!c)throw n.Log.error("SigninRequest.ctor: No scope passed"),new Error("scope");if(!f)throw n.Log.error("SigninRequest.ctor: No authority passed"),new Error("authority");var C=t.isOidc(u),T=t.isCode(u);S||(S=t.isCode(u)?"query":null),this.state=new o.SigninState({nonce:C,data:h,client_id:s,authority:f,redirect_uri:a,code_verifier:T,request_type:E,response_mode:S,client_secret:x,scope:c,extraTokenParams:A,skipUserInfo:k}),r=i.UrlUtility.addQueryParam(r,"client_id",s),r=i.UrlUtility.addQueryParam(r,"redirect_uri",a),r=i.UrlUtility.addQueryParam(r,"response_type",u),r=i.UrlUtility.addQueryParam(r,"scope",c),r=i.UrlUtility.addQueryParam(r,"state",this.state.id),C&&(r=i.UrlUtility.addQueryParam(r,"nonce",this.state.nonce)),T&&(r=i.UrlUtility.addQueryParam(r,"code_challenge",this.state.code_challenge),r=i.UrlUtility.addQueryParam(r,"code_challenge_method","S256"));var R={prompt:l,display:p,max_age:d,ui_locales:g,id_token_hint:v,login_hint:y,acr_values:m,resource:_,request:b,request_uri:w,response_mode:S};for(var I in R)R[I]&&(r=i.UrlUtility.addQueryParam(r,I,R[I]));for(var O in F)r=i.UrlUtility.addQueryParam(r,O,F[O]);this.url=r}return t.isOidc=function t(e){return!!e.split(/\s+/g).filter(function(t){return"id_token"===t})[0]},t.isOAuth=function t(e){return!!e.split(/\s+/g).filter(function(t){return"token"===t})[0]},t.isCode=function t(e){return!!e.split(/\s+/g).filter(function(t){return"code"===t})[0]},t}()},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SigninState=void 0;var n=function(){function t(t,e){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{},n=r.nonce,i=r.authority,o=r.client_id,u=r.redirect_uri,c=r.code_verifier,f=r.response_mode,h=r.client_secret,l=r.scope,p=r.extraTokenParams,d=r.skipUserInfo;!function g(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e);var v=function y(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}(this,t.call(this,arguments[0]));if(!0===n?v._nonce=(0,a.default)():n&&(v._nonce=n),!0===c?v._code_verifier=(0,a.default)()+(0,a.default)()+(0,a.default)():c&&(v._code_verifier=c),v.code_verifier){var m=s.JoseUtil.hashString(v.code_verifier,"SHA256");v._code_challenge=s.JoseUtil.hexToBase64Url(m)}return v._redirect_uri=u,v._authority=i,v._client_id=o,v._response_mode=f,v._client_secret=h,v._scope=l,v._extraTokenParams=p,v._skipUserInfo=d,v}return function r(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,t),e.prototype.toStorageString=function t(){return i.Log.debug("SigninState.toStorageString"),JSON.stringify({id:this.id,data:this.data,created:this.created,request_type:this.request_type,nonce:this.nonce,code_verifier:this.code_verifier,redirect_uri:this.redirect_uri,authority:this.authority,client_id:this.client_id,response_mode:this.response_mode,client_secret:this.client_secret,scope:this.scope,extraTokenParams:this.extraTokenParams,skipUserInfo:this.skipUserInfo})},e.fromStorageString=function t(r){return i.Log.debug("SigninState.fromStorageString"),new e(JSON.parse(r))},n(e,[{key:"nonce",get:function t(){return this._nonce}},{key:"authority",get:function t(){return this._authority}},{key:"client_id",get:function t(){return this._client_id}},{key:"redirect_uri",get:function t(){return this._redirect_uri}},{key:"code_verifier",get:function t(){return this._code_verifier}},{key:"code_challenge",get:function t(){return this._code_challenge}},{key:"response_mode",get:function t(){return this._response_mode}},{key:"client_secret",get:function t(){return this._client_secret}},{key:"scope",get:function t(){return this._scope}},{key:"extraTokenParams",get:function t(){return this._extraTokenParams}},{key:"skipUserInfo",get:function t(){return this._skipUserInfo}}]),e}(o.State)},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function n(){return(0,i.default)().replace(/-/g,"")};var i=function o(t){return t&&t.__esModule?t:{default:t}}(r(365));t.exports=e.default},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.User=void 0;var n=function(){function t(t,e){for(var r=0;r0){var n=parseInt(Date.now()/1e3);this.expires_at=n+r}}},{key:"expired",get:function t(){var e=this.expires_in;if(void 0!==e)return e<=0}},{key:"scopes",get:function t(){return(this.scope||"").split(" ")}}]),t}()},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.AccessTokenEvents=void 0;var n=r(3),i=r(380);var o=60;e.AccessTokenEvents=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=e.accessTokenExpiringNotificationTime,n=void 0===r?o:r,s=e.accessTokenExpiringTimer,a=void 0===s?new i.Timer("Access token expiring"):s,u=e.accessTokenExpiredTimer,c=void 0===u?new i.Timer("Access token expired"):u;!function f(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this._accessTokenExpiringNotificationTime=n,this._accessTokenExpiring=a,this._accessTokenExpired=c}return t.prototype.load=function t(e){if(e.access_token&&void 0!==e.expires_in){var r=e.expires_in;if(n.Log.debug("AccessTokenEvents.load: access token present, remaining duration:",r),r>0){var i=r-this._accessTokenExpiringNotificationTime;i<=0&&(i=1),n.Log.debug("AccessTokenEvents.load: registering expiring timer in:",i),this._accessTokenExpiring.init(i)}else n.Log.debug("AccessTokenEvents.load: canceling existing expiring timer becase we're past expiration."),this._accessTokenExpiring.cancel();var o=r+1;n.Log.debug("AccessTokenEvents.load: registering expired timer in:",o),this._accessTokenExpired.init(o)}else this._accessTokenExpiring.cancel(),this._accessTokenExpired.cancel()},t.prototype.unload=function t(){n.Log.debug("AccessTokenEvents.unload: canceling existing access token timers"),this._accessTokenExpiring.cancel(),this._accessTokenExpired.cancel()},t.prototype.addAccessTokenExpiring=function t(e){this._accessTokenExpiring.addHandler(e)},t.prototype.removeAccessTokenExpiring=function t(e){this._accessTokenExpiring.removeHandler(e)},t.prototype.addAccessTokenExpired=function t(e){this._accessTokenExpired.addHandler(e)},t.prototype.removeAccessTokenExpired=function t(e){this._accessTokenExpired.removeHandler(e)},t}()},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Event=void 0;var n=r(3);e.Event=function(){function t(e){!function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this._name=e,this._callbacks=[]}return t.prototype.addHandler=function t(e){this._callbacks.push(e)},t.prototype.removeHandler=function t(e){var r=this._callbacks.findIndex(function(t){return t===e});r>=0&&this._callbacks.splice(r,1)},t.prototype.raise=function t(){n.Log.debug("Event: Raising event: "+this._name);for(var e=0;e1&&void 0!==arguments[1]?arguments[1]:o.CheckSessionIFrame,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:s.Global.timer;if(function u(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),!e)throw i.Log.error("SessionMonitor.ctor: No user manager passed to SessionMonitor"),new Error("userManager");this._userManager=e,this._CheckSessionIFrameCtor=n,this._timer=a,this._userManager.events.addUserLoaded(this._start.bind(this)),this._userManager.events.addUserUnloaded(this._stop.bind(this)),this._userManager.getUser().then(function(t){t?r._start(t):r._settings.monitorAnonymousSession&&r._userManager.querySessionStatus().then(function(t){var e={session_state:t.session_state};t.sub&&t.sid&&(e.profile={sub:t.sub,sid:t.sid}),r._start(e)}).catch(function(t){i.Log.error("SessionMonitor ctor: error from querySessionStatus:",t.message)})}).catch(function(t){i.Log.error("SessionMonitor ctor: error from getUser:",t.message)})}return t.prototype._start=function t(e){var r=this,n=e.session_state;n&&(e.profile?(this._sub=e.profile.sub,this._sid=e.profile.sid,i.Log.debug("SessionMonitor._start: session_state:",n,", sub:",this._sub)):(this._sub=void 0,this._sid=void 0,i.Log.debug("SessionMonitor._start: session_state:",n,", anonymous user")),this._checkSessionIFrame?this._checkSessionIFrame.start(n):this._metadataService.getCheckSessionIframe().then(function(t){if(t){i.Log.debug("SessionMonitor._start: Initializing check session iframe");var e=r._client_id,o=r._checkSessionInterval,s=r._stopCheckSessionOnError;r._checkSessionIFrame=new r._CheckSessionIFrameCtor(r._callback.bind(r),e,t,o,s),r._checkSessionIFrame.load().then(function(){r._checkSessionIFrame.start(n)})}else i.Log.warn("SessionMonitor._start: No check session iframe found in the metadata")}).catch(function(t){i.Log.error("SessionMonitor._start: Error from getCheckSessionIframe:",t.message)}))},t.prototype._stop=function t(){var e=this;if(this._sub=void 0,this._sid=void 0,this._checkSessionIFrame&&(i.Log.debug("SessionMonitor._stop"),this._checkSessionIFrame.stop()),this._settings.monitorAnonymousSession)var r=this._timer.setInterval(function(){e._timer.clearInterval(r),e._userManager.querySessionStatus().then(function(t){var r={session_state:t.session_state};t.sub&&t.sid&&(r.profile={sub:t.sub,sid:t.sid}),e._start(r)}).catch(function(t){i.Log.error("SessionMonitor: error from querySessionStatus:",t.message)})},1e3)},t.prototype._callback=function t(){var e=this;this._userManager.querySessionStatus().then(function(t){var r=!0;t?t.sub===e._sub?(r=!1,e._checkSessionIFrame.start(t.session_state),t.sid===e._sid?i.Log.debug("SessionMonitor._callback: Same sub still logged in at OP, restarting check session iframe; session_state:",t.session_state):(i.Log.debug("SessionMonitor._callback: Same sub still logged in at OP, session state has changed, restarting check session iframe; session_state:",t.session_state),e._userManager.events._raiseUserSessionChanged())):i.Log.debug("SessionMonitor._callback: Different subject signed into OP:",t.sub):i.Log.debug("SessionMonitor._callback: Subject no longer signed into OP"),r&&(e._sub?(i.Log.debug("SessionMonitor._callback: SessionMonitor._callback; raising signed out event"),e._userManager.events._raiseUserSignedOut()):(i.Log.debug("SessionMonitor._callback: SessionMonitor._callback; raising signed in event"),e._userManager.events._raiseUserSignedIn()))}).catch(function(t){e._sub&&(i.Log.debug("SessionMonitor._callback: Error calling queryCurrentSigninSession; raising signed out event",t.message),e._userManager.events._raiseUserSignedOut())})},n(t,[{key:"_settings",get:function t(){return this._userManager.settings}},{key:"_metadataService",get:function t(){return this._userManager.metadataService}},{key:"_client_id",get:function t(){return this._settings.client_id}},{key:"_checkSessionInterval",get:function t(){return this._settings.checkSessionInterval}},{key:"_stopCheckSessionOnError",get:function t(){return this._settings.stopCheckSessionOnError}}]),t}()},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CheckSessionIFrame=void 0;var n=r(3);var i=2e3;e.CheckSessionIFrame=function(){function t(e,r,n,o){var s=!(arguments.length>4&&void 0!==arguments[4])||arguments[4];!function a(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this._callback=e,this._client_id=r,this._url=n,this._interval=o||i,this._stopOnError=s;var u=n.indexOf("/",n.indexOf("//")+2);this._frame_origin=n.substr(0,u),this._frame=window.document.createElement("iframe"),this._frame.style.visibility="hidden",this._frame.style.position="absolute",this._frame.style.display="none",this._frame.style.width=0,this._frame.style.height=0,this._frame.src=n}return t.prototype.load=function t(){var e=this;return new Promise(function(t){e._frame.onload=function(){t()},window.document.body.appendChild(e._frame),e._boundMessageEvent=e._message.bind(e),window.addEventListener("message",e._boundMessageEvent,!1)})},t.prototype._message=function t(e){e.origin===this._frame_origin&&e.source===this._frame.contentWindow&&("error"===e.data?(n.Log.error("CheckSessionIFrame: error message from check session op iframe"),this._stopOnError&&this.stop()):"changed"===e.data?(n.Log.debug("CheckSessionIFrame: changed message from check session op iframe"),this.stop(),this._callback()):n.Log.debug("CheckSessionIFrame: "+e.data+" message from check session op iframe"))},t.prototype.start=function t(e){var r=this;if(this._session_state!==e){n.Log.debug("CheckSessionIFrame.start"),this.stop(),this._session_state=e;var i=function t(){r._frame.contentWindow.postMessage(r._client_id+" "+r._session_state,r._frame_origin)};i(),this._timer=window.setInterval(i,this._interval)}},t.prototype.stop=function t(){this._session_state=null,this._timer&&(n.Log.debug("CheckSessionIFrame.stop"),window.clearInterval(this._timer),this._timer=null)},t}()},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.TokenRevocationClient=void 0;var n=r(3),i=r(49),o=r(33);e.TokenRevocationClient=function(){function t(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:o.Global.XMLHttpRequest,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:i.MetadataService;if(function a(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),!e)throw n.Log.error("TokenRevocationClient.ctor: No settings provided"),new Error("No settings provided.");this._settings=e,this._XMLHttpRequestCtor=r,this._metadataService=new s(this._settings)}return t.prototype.revoke=function t(e,r){var i=this,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"access_token";if(!e)throw n.Log.error("TokenRevocationClient.revoke: No token provided"),new Error("No token provided.");if("access_token"!==o&&"refresh_token"!=o)throw n.Log.error("TokenRevocationClient.revoke: Invalid token type"),new Error("Invalid token type.");return this._metadataService.getRevocationEndpoint().then(function(t){if(t){n.Log.debug("TokenRevocationClient.revoke: Revoking "+o);var s=i._settings.client_id,a=i._settings.client_secret;return i._revoke(t,s,a,e,o)}if(r)throw n.Log.error("TokenRevocationClient.revoke: Revocation not supported"),new Error("Revocation not supported")})},t.prototype._revoke=function t(e,r,i,o,s){var a=this;return new Promise(function(t,u){var c=new a._XMLHttpRequestCtor;c.open("POST",e),c.onload=function(){n.Log.debug("TokenRevocationClient.revoke: HTTP response received, status",c.status),200===c.status?t():u(Error(c.statusText+" ("+c.status+")"))},c.onerror=function(){n.Log.debug("TokenRevocationClient.revoke: Network Error."),u("Network Error")};var f="client_id="+encodeURIComponent(r);i&&(f+="&client_secret="+encodeURIComponent(i)),f+="&token_type_hint="+encodeURIComponent(s),f+="&token="+encodeURIComponent(o),c.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),c.send(f)})},t}()},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CordovaPopupWindow=void 0;var n=function(){function t(t,e){for(var r=0;ro;)z(e,n=i[o++],r[n]);return e},G=function t(e){var r=L.call(this,e=b(e,!0));return!(this===B&&i(j,e)&&!i(U,e))&&(!(r||!i(this,e)||!i(j,e)||i(this,D)&&this[D][e])||r)},X=function t(e,r){if(e=S(e),r=b(r,!0),e!==B||!i(j,r)||i(U,r)){var n=P(e,r);return!n||!i(j,r)||i(e,D)&&e[D][r]||(n.enumerable=!0),n}},$=function t(e){for(var r,n=T(S(e)),o=[],s=0;n.length>s;)i(j,r=n[s++])||r==D||r==u||o.push(r);return o},Q=function t(e){for(var r,n=e===B,o=T(n?U:S(e)),s=[],a=0;o.length>a;)!i(j,r=o[a++])||n&&!i(B,r)||s.push(j[r]);return s};H||(a((R=function t(){if(this instanceof R)throw TypeError("Symbol is not a constructor!");var e=l(arguments.length>0?arguments[0]:void 0),r=function(t){this===B&&r.call(U,t),i(this,D)&&i(this[D],e)&&(this[D][e]=!1),q(this,e,w(1,t))};return o&&K&&q(B,e,{configurable:!0,set:r}),W(e)}).prototype,"toString",function t(){return this._k}),x.f=X,A.f=z,r(39).f=E.f=$,r(52).f=G,r(57).f=Q,o&&!r(30)&&a(B,"propertyIsEnumerable",G,!0),d.f=function(t){return W(p(t))}),s(s.G+s.W+s.F*!H,{Symbol:R});for(var Z="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),tt=0;Z.length>tt;)p(Z[tt++]);for(var et=k(p.store),rt=0;et.length>rt;)g(et[rt++]);s(s.S+s.F*!H,"Symbol",{for:function(t){return i(M,t+="")?M[t]:M[t]=R(t)},keyFor:function t(e){if(!J(e))throw TypeError(e+" is not a symbol!");for(var r in M)if(M[r]===e)return r},useSetter:function(){K=!0},useSimple:function(){K=!1}}),s(s.S+s.F*!H,"Object",{create:function t(e,r){return void 0===r?F(e):Y(F(e),r)},defineProperty:z,defineProperties:Y,getOwnPropertyDescriptor:X,getOwnPropertyNames:$,getOwnPropertySymbols:Q}),I&&s(s.S+s.F*(!H||c(function(){var t=R();return"[null]"!=O([t])||"{}"!=O({a:t})||"{}"!=O(Object(t))})),"JSON",{stringify:function t(e){for(var r,n,i=[e],o=1;arguments.length>o;)i.push(arguments[o++]);if(n=r=i[1],(_(r)||void 0!==e)&&!J(e))return y(r)||(r=function(t,e){if("function"==typeof n&&(e=n.call(this,t,e)),!J(e))return e}),i[1]=r,O.apply(I,i)}}),R.prototype[N]||r(12)(R.prototype,N,R.prototype.valueOf),h(R,"Symbol"),h(Math,"Math",!0),h(n.JSON,"JSON",!0)},function(t,e,r){t.exports=r(50)("native-function-to-string",Function.toString)},function(t,e,r){var n=r(36),i=r(57),o=r(52);t.exports=function(t){var e=n(t),r=i.f;if(r)for(var s,a=r(t),u=o.f,c=0;a.length>c;)u.call(t,s=a[c++])&&e.push(s);return e}},function(t,e,r){var n=r(0);n(n.S,"Object",{create:r(38)})},function(t,e,r){var n=r(0);n(n.S+n.F*!r(8),"Object",{defineProperty:r(9).f})},function(t,e,r){var n=r(0);n(n.S+n.F*!r(8),"Object",{defineProperties:r(106)})},function(t,e,r){var n=r(16),i=r(17).f;r(26)("getOwnPropertyDescriptor",function(){return function t(e,r){return i(n(e),r)}})},function(t,e,r){var n=r(10),i=r(18);r(26)("getPrototypeOf",function(){return function t(e){return i(n(e))}})},function(t,e,r){var n=r(10),i=r(36);r(26)("keys",function(){return function t(e){return i(n(e))}})},function(t,e,r){r(26)("getOwnPropertyNames",function(){return r(107).f})},function(t,e,r){var n=r(5),i=r(31).onFreeze;r(26)("freeze",function(t){return function e(r){return t&&n(r)?t(i(r)):r}})},function(t,e,r){var n=r(5),i=r(31).onFreeze;r(26)("seal",function(t){return function e(r){return t&&n(r)?t(i(r)):r}})},function(t,e,r){var n=r(5),i=r(31).onFreeze;r(26)("preventExtensions",function(t){return function e(r){return t&&n(r)?t(i(r)):r}})},function(t,e,r){var n=r(5);r(26)("isFrozen",function(t){return function e(r){return!n(r)||!!t&&t(r)}})},function(t,e,r){var n=r(5);r(26)("isSealed",function(t){return function e(r){return!n(r)||!!t&&t(r)}})},function(t,e,r){var n=r(5);r(26)("isExtensible",function(t){return function e(r){return!!n(r)&&(!t||t(r))}})},function(t,e,r){var n=r(0);n(n.S+n.F,"Object",{assign:r(108)})},function(t,e,r){var n=r(0);n(n.S,"Object",{is:r(109)})},function(t,e,r){var n=r(0);n(n.S,"Object",{setPrototypeOf:r(77).set})},function(t,e,r){"use strict";var n=r(46),i={};i[r(6)("toStringTag")]="z",i+""!="[object z]"&&r(13)(Object.prototype,"toString",function t(){return"[object "+n(this)+"]"},!0)},function(t,e,r){var n=r(0);n(n.P,"Function",{bind:r(110)})},function(t,e,r){var n=r(9).f,i=Function.prototype,o=/^\s*function ([^ (]*)/;"name"in i||r(8)&&n(i,"name",{configurable:!0,get:function(){try{return(""+this).match(o)[1]}catch(t){return""}}})},function(t,e,r){"use strict";var n=r(5),i=r(18),o=r(6)("hasInstance"),s=Function.prototype;o in s||r(9).f(s,o,{value:function(t){if("function"!=typeof this||!n(t))return!1;if(!n(this.prototype))return t instanceof this;for(;t=i(t);)if(this.prototype===t)return!0;return!1}})},function(t,e,r){var n=r(0),i=r(112);n(n.G+n.F*(parseInt!=i),{parseInt:i})},function(t,e,r){var n=r(0),i=r(113);n(n.G+n.F*(parseFloat!=i),{parseFloat:i})},function(t,e,r){"use strict";var n=r(2),i=r(15),o=r(21),s=r(79),a=r(24),u=r(4),c=r(39).f,f=r(17).f,h=r(9).f,l=r(47).trim,p=n.Number,d=p,g=p.prototype,v="Number"==o(r(38)(g)),y="trim"in String.prototype,m=function(t){var e=a(t,!1);if("string"==typeof e&&e.length>2){var r,n,i,o=(e=y?e.trim():l(e,3)).charCodeAt(0);if(43===o||45===o){if(88===(r=e.charCodeAt(2))||120===r)return NaN}else if(48===o){switch(e.charCodeAt(1)){case 66:case 98:n=2,i=49;break;case 79:case 111:n=8,i=55;break;default:return+e}for(var s,u=e.slice(2),c=0,f=u.length;ci)return NaN;return parseInt(u,n)}}return+e};if(!p(" 0o1")||!p("0b1")||p("+0x1")){p=function t(e){var r=arguments.length<1?0:e,n=this;return n instanceof p&&(v?u(function(){g.valueOf.call(n)}):"Number"!=o(n))?s(new d(m(r)),n,p):m(r)};for(var _,S=r(8)?c(d):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger".split(","),b=0;S.length>b;b++)i(d,_=S[b])&&!i(p,_)&&h(p,_,f(d,_));p.prototype=g,g.constructor=p,r(13)(n,"Number",p)}},function(t,e,r){"use strict";var n=r(0),i=r(22),o=r(114),s=r(80),a=1..toFixed,u=Math.floor,c=[0,0,0,0,0,0],f="Number.toFixed: incorrect invocation!",h=function(t,e){for(var r=-1,n=e;++r<6;)n+=t*c[r],c[r]=n%1e7,n=u(n/1e7)},l=function(t){for(var e=6,r=0;--e>=0;)r+=c[e],c[e]=u(r/t),r=r%t*1e7},p=function(){for(var t=6,e="";--t>=0;)if(""!==e||0===t||0!==c[t]){var r=String(c[t]);e=""===e?r:e+s.call("0",7-r.length)+r}return e},d=function(t,e,r){return 0===e?r:e%2==1?d(t,e-1,r*t):d(t*t,e/2,r)};n(n.P+n.F*(!!a&&("0.000"!==8e-5.toFixed(3)||"1"!==.9.toFixed(0)||"1.25"!==1.255.toFixed(2)||"1000000000000000128"!==(0xde0b6b3a7640080).toFixed(0))||!r(4)(function(){a.call({})})),"Number",{toFixed:function t(e){var r,n,a,u,c=o(this,f),g=i(e),v="",y="0";if(g<0||g>20)throw RangeError(f);if(c!=c)return"NaN";if(c<=-1e21||c>=1e21)return String(c);if(c<0&&(v="-",c=-c),c>1e-21)if(n=(r=function(t){for(var e=0,r=t;r>=4096;)e+=12,r/=4096;for(;r>=2;)e+=1,r/=2;return e}(c*d(2,69,1))-69)<0?c*d(2,-r,1):c/d(2,r,1),n*=4503599627370496,(r=52-r)>0){for(h(0,n),a=g;a>=7;)h(1e7,0),a-=7;for(h(d(10,a,1),0),a=r-1;a>=23;)l(1<<23),a-=23;l(1<0?v+((u=y.length)<=g?"0."+s.call("0",g-u)+y:y.slice(0,u-g)+"."+y.slice(u-g)):v+y}})},function(t,e,r){"use strict";var n=r(0),i=r(4),o=r(114),s=1..toPrecision;n(n.P+n.F*(i(function(){return"1"!==s.call(1,void 0)})||!i(function(){s.call({})})),"Number",{toPrecision:function t(e){var r=o(this,"Number#toPrecision: incorrect invocation!");return void 0===e?s.call(r):s.call(r,e)}})},function(t,e,r){var n=r(0);n(n.S,"Number",{EPSILON:Math.pow(2,-52)})},function(t,e,r){var n=r(0),i=r(2).isFinite;n(n.S,"Number",{isFinite:function t(e){return"number"==typeof e&&i(e)}})},function(t,e,r){var n=r(0);n(n.S,"Number",{isInteger:r(115)})},function(t,e,r){var n=r(0);n(n.S,"Number",{isNaN:function t(e){return e!=e}})},function(t,e,r){var n=r(0),i=r(115),o=Math.abs;n(n.S,"Number",{isSafeInteger:function t(e){return i(e)&&o(e)<=9007199254740991}})},function(t,e,r){var n=r(0);n(n.S,"Number",{MAX_SAFE_INTEGER:9007199254740991})},function(t,e,r){var n=r(0);n(n.S,"Number",{MIN_SAFE_INTEGER:-9007199254740991})},function(t,e,r){var n=r(0),i=r(113);n(n.S+n.F*(Number.parseFloat!=i),"Number",{parseFloat:i})},function(t,e,r){var n=r(0),i=r(112);n(n.S+n.F*(Number.parseInt!=i),"Number",{parseInt:i})},function(t,e,r){var n=r(0),i=r(116),o=Math.sqrt,s=Math.acosh;n(n.S+n.F*!(s&&710==Math.floor(s(Number.MAX_VALUE))&&s(1/0)==1/0),"Math",{acosh:function t(e){return(e=+e)<1?NaN:e>94906265.62425156?Math.log(e)+Math.LN2:i(e-1+o(e-1)*o(e+1))}})},function(t,e,r){var n=r(0),i=Math.asinh;n(n.S+n.F*!(i&&1/i(0)>0),"Math",{asinh:function t(e){return isFinite(e=+e)&&0!=e?e<0?-t(-e):Math.log(e+Math.sqrt(e*e+1)):e}})},function(t,e,r){var n=r(0),i=Math.atanh;n(n.S+n.F*!(i&&1/i(-0)<0),"Math",{atanh:function t(e){return 0==(e=+e)?e:Math.log((1+e)/(1-e))/2}})},function(t,e,r){var n=r(0),i=r(81);n(n.S,"Math",{cbrt:function t(e){return i(e=+e)*Math.pow(Math.abs(e),1/3)}})},function(t,e,r){var n=r(0);n(n.S,"Math",{clz32:function t(e){return(e>>>=0)?31-Math.floor(Math.log(e+.5)*Math.LOG2E):32}})},function(t,e,r){var n=r(0),i=Math.exp;n(n.S,"Math",{cosh:function t(e){return(i(e=+e)+i(-e))/2}})},function(t,e,r){var n=r(0),i=r(82);n(n.S+n.F*(i!=Math.expm1),"Math",{expm1:i})},function(t,e,r){var n=r(0);n(n.S,"Math",{fround:r(117)})},function(t,e,r){var n=r(0),i=Math.abs;n(n.S,"Math",{hypot:function t(e,r){for(var n,o,s=0,a=0,u=arguments.length,c=0;a0?(o=n/c)*o:n;return c===1/0?1/0:c*Math.sqrt(s)}})},function(t,e,r){var n=r(0),i=Math.imul;n(n.S+n.F*r(4)(function(){return-5!=i(4294967295,5)||2!=i.length}),"Math",{imul:function t(e,r){var n=+e,i=+r,o=65535&n,s=65535&i;return 0|o*s+((65535&n>>>16)*s+o*(65535&i>>>16)<<16>>>0)}})},function(t,e,r){var n=r(0);n(n.S,"Math",{log10:function t(e){return Math.log(e)*Math.LOG10E}})},function(t,e,r){var n=r(0);n(n.S,"Math",{log1p:r(116)})},function(t,e,r){var n=r(0);n(n.S,"Math",{log2:function t(e){return Math.log(e)/Math.LN2}})},function(t,e,r){var n=r(0);n(n.S,"Math",{sign:r(81)})},function(t,e,r){var n=r(0),i=r(82),o=Math.exp;n(n.S+n.F*r(4)(function(){return-2e-17!=!Math.sinh(-2e-17)}),"Math",{sinh:function t(e){return Math.abs(e=+e)<1?(i(e)-i(-e))/2:(o(e-1)-o(-e-1))*(Math.E/2)}})},function(t,e,r){var n=r(0),i=r(82),o=Math.exp;n(n.S,"Math",{tanh:function t(e){var r=i(e=+e),n=i(-e);return r==1/0?1:n==1/0?-1:(r-n)/(o(e)+o(-e))}})},function(t,e,r){var n=r(0);n(n.S,"Math",{trunc:function t(e){return(e>0?Math.floor:Math.ceil)(e)}})},function(t,e,r){var n=r(0),i=r(37),o=String.fromCharCode,s=String.fromCodePoint;n(n.S+n.F*(!!s&&1!=s.length),"String",{fromCodePoint:function t(e){for(var r,n=[],s=arguments.length,a=0;s>a;){if(r=+arguments[a++],i(r,1114111)!==r)throw RangeError(r+" is not a valid code point");n.push(r<65536?o(r):o(55296+((r-=65536)>>10),r%1024+56320))}return n.join("")}})},function(t,e,r){var n=r(0),i=r(16),o=r(7);n(n.S,"String",{raw:function t(e){for(var r=i(e.raw),n=o(r.length),s=arguments.length,a=[],u=0;n>u;)a.push(String(r[u++])),u=e.length?{value:void 0,done:!0}:(t=n(e,r),this._i+=t.length,{value:t,done:!1})})},function(t,e,r){"use strict";var n=r(0),i=r(59)(!1);n(n.P,"String",{codePointAt:function t(e){return i(this,e)}})},function(t,e,r){"use strict";var n=r(0),i=r(7),o=r(85),s="".endsWith;n(n.P+n.F*r(86)("endsWith"),"String",{endsWith:function t(e){var r=o(this,e,"endsWith"),n=arguments.length>1?arguments[1]:void 0,a=i(r.length),u=void 0===n?a:Math.min(i(n),a),c=String(e);return s?s.call(r,c,u):r.slice(u-c.length,u)===c}})},function(t,e,r){"use strict";var n=r(0),i=r(85);n(n.P+n.F*r(86)("includes"),"String",{includes:function t(e){return!!~i(this,e,"includes").indexOf(e,arguments.length>1?arguments[1]:void 0)}})},function(t,e,r){var n=r(0);n(n.P,"String",{repeat:r(80)})},function(t,e,r){"use strict";var n=r(0),i=r(7),o=r(85),s="".startsWith;n(n.P+n.F*r(86)("startsWith"),"String",{startsWith:function t(e){var r=o(this,e,"startsWith"),n=i(Math.min(arguments.length>1?arguments[1]:void 0,r.length)),a=String(e);return s?s.call(r,a,n):r.slice(n,n+a.length)===a}})},function(t,e,r){"use strict";r(14)("anchor",function(t){return function e(r){return t(this,"a","name",r)}})},function(t,e,r){"use strict";r(14)("big",function(t){return function e(){return t(this,"big","","")}})},function(t,e,r){"use strict";r(14)("blink",function(t){return function e(){return t(this,"blink","","")}})},function(t,e,r){"use strict";r(14)("bold",function(t){return function e(){return t(this,"b","","")}})},function(t,e,r){"use strict";r(14)("fixed",function(t){return function e(){return t(this,"tt","","")}})},function(t,e,r){"use strict";r(14)("fontcolor",function(t){return function e(r){return t(this,"font","color",r)}})},function(t,e,r){"use strict";r(14)("fontsize",function(t){return function e(r){return t(this,"font","size",r)}})},function(t,e,r){"use strict";r(14)("italics",function(t){return function e(){return t(this,"i","","")}})},function(t,e,r){"use strict";r(14)("link",function(t){return function e(r){return t(this,"a","href",r)}})},function(t,e,r){"use strict";r(14)("small",function(t){return function e(){return t(this,"small","","")}})},function(t,e,r){"use strict";r(14)("strike",function(t){return function e(){return t(this,"strike","","")}})},function(t,e,r){"use strict";r(14)("sub",function(t){return function e(){return t(this,"sub","","")}})},function(t,e,r){"use strict";r(14)("sup",function(t){return function e(){return t(this,"sup","","")}})},function(t,e,r){var n=r(0);n(n.S,"Date",{now:function(){return(new Date).getTime()}})},function(t,e,r){"use strict";var n=r(0),i=r(10),o=r(24);n(n.P+n.F*r(4)(function(){return null!==new Date(NaN).toJSON()||1!==Date.prototype.toJSON.call({toISOString:function(){return 1}})}),"Date",{toJSON:function t(e){var r=i(this),n=o(r);return"number"!=typeof n||isFinite(n)?r.toISOString():null}})},function(t,e,r){var n=r(0),i=r(234);n(n.P+n.F*(Date.prototype.toISOString!==i),"Date",{toISOString:i})},function(t,e,r){"use strict";var n=r(4),i=Date.prototype.getTime,o=Date.prototype.toISOString,s=function(t){return t>9?t:"0"+t};t.exports=n(function(){return"0385-07-25T07:06:39.999Z"!=o.call(new Date(-5e13-1))})||!n(function(){o.call(new Date(NaN))})?function t(){if(!isFinite(i.call(this)))throw RangeError("Invalid time value");var e=this,r=e.getUTCFullYear(),n=e.getUTCMilliseconds(),o=r<0?"-":r>9999?"+":"";return o+("00000"+Math.abs(r)).slice(o?-6:-4)+"-"+s(e.getUTCMonth()+1)+"-"+s(e.getUTCDate())+"T"+s(e.getUTCHours())+":"+s(e.getUTCMinutes())+":"+s(e.getUTCSeconds())+"."+(n>99?n:"0"+s(n))+"Z"}:o},function(t,e,r){var n=Date.prototype,i=n.toString,o=n.getTime;new Date(NaN)+""!="Invalid Date"&&r(13)(n,"toString",function t(){var e=o.call(this);return e==e?i.call(this):"Invalid Date"})},function(t,e,r){var n=r(6)("toPrimitive"),i=Date.prototype;n in i||r(12)(i,n,r(237))},function(t,e,r){"use strict";var n=r(1),i=r(24);t.exports=function(t){if("string"!==t&&"number"!==t&&"default"!==t)throw TypeError("Incorrect hint");return i(n(this),"number"!=t)}},function(t,e,r){var n=r(0);n(n.S,"Array",{isArray:r(58)})},function(t,e,r){"use strict";var n=r(20),i=r(0),o=r(10),s=r(118),a=r(87),u=r(7),c=r(88),f=r(89);i(i.S+i.F*!r(61)(function(t){Array.from(t)}),"Array",{from:function t(e){var r,i,h,l,p=o(e),d="function"==typeof this?this:Array,g=arguments.length,v=g>1?arguments[1]:void 0,y=void 0!==v,m=0,_=f(p);if(y&&(v=n(v,g>2?arguments[2]:void 0,2)),void 0==_||d==Array&&a(_))for(i=new d(r=u(p.length));r>m;m++)c(i,m,y?v(p[m],m):p[m]);else for(l=_.call(p),i=new d;!(h=l.next()).done;m++)c(i,m,y?s(l,v,[h.value,m],!0):h.value);return i.length=m,i}})},function(t,e,r){"use strict";var n=r(0),i=r(88);n(n.S+n.F*r(4)(function(){function t(){}return!(Array.of.call(t)instanceof t)}),"Array",{of:function t(){for(var e=0,r=arguments.length,n=new("function"==typeof this?this:Array)(r);r>e;)i(n,e,arguments[e++]);return n.length=r,n}})},function(t,e,r){"use strict";var n=r(0),i=r(16),o=[].join;n(n.P+n.F*(r(51)!=Object||!r(23)(o)),"Array",{join:function t(e){return o.call(i(this),void 0===e?",":e)}})},function(t,e,r){"use strict";var n=r(0),i=r(76),o=r(21),s=r(37),a=r(7),u=[].slice;n(n.P+n.F*r(4)(function(){i&&u.call(i)}),"Array",{slice:function t(e,r){var n=a(this.length),i=o(this);if(r=void 0===r?n:r,"Array"==i)return u.call(this,e,r);for(var c=s(e,n),f=s(r,n),h=a(f-c),l=new Array(h),p=0;p1&&(c=Math.min(c,o(arguments[1]))),c<0&&(c=n+c);c>=0;c--)if(c in r&&r[c]===e)return c||0;return-1}})},function(t,e,r){var n=r(0);n(n.P,"Array",{copyWithin:r(120)}),r(32)("copyWithin")},function(t,e,r){var n=r(0);n(n.P,"Array",{fill:r(91)}),r(32)("fill")},function(t,e,r){"use strict";var n=r(0),i=r(27)(5),o=!0;"find"in[]&&Array(1).find(function(){o=!1}),n(n.P+n.F*o,"Array",{find:function t(e){return i(this,e,arguments.length>1?arguments[1]:void 0)}}),r(32)("find")},function(t,e,r){"use strict";var n=r(0),i=r(27)(6),o="findIndex",s=!0;o in[]&&Array(1)[o](function(){s=!1}),n(n.P+n.F*s,"Array",{findIndex:function t(e){return i(this,e,arguments.length>1?arguments[1]:void 0)}}),r(32)(o)},function(t,e,r){r(40)("Array")},function(t,e,r){var n=r(2),i=r(79),o=r(9).f,s=r(39).f,a=r(60),u=r(53),c=n.RegExp,f=c,h=c.prototype,l=/a/g,p=/a/g,d=new c(l)!==l;if(r(8)&&(!d||r(4)(function(){return p[r(6)("match")]=!1,c(l)!=l||c(p)==p||"/a/i"!=c(l,"i")}))){c=function t(e,r){var n=this instanceof c,o=a(e),s=void 0===r;return!n&&o&&e.constructor===c&&s?e:i(d?new f(o&&!s?e.source:e,r):f((o=e instanceof c)?e.source:e,o&&s?u.call(e):r),n?this:h,c)};for(var g=function(t){t in c||o(c,t,{configurable:!0,get:function(){return f[t]},set:function(e){f[t]=e}})},v=s(f),y=0;v.length>y;)g(v[y++]);h.constructor=c,c.prototype=h,r(13)(n,"RegExp",c)}r(40)("RegExp")},function(t,e,r){"use strict";r(123);var n=r(1),i=r(53),o=r(8),s=/./.toString,a=function(t){r(13)(RegExp.prototype,"toString",t,!0)};r(4)(function(){return"/a/b"!=s.call({source:"a",flags:"b"})})?a(function t(){var e=n(this);return"/".concat(e.source,"/","flags"in e?e.flags:!o&&e instanceof RegExp?i.call(e):void 0)}):"toString"!=s.name&&a(function t(){return s.call(this)})},function(t,e,r){"use strict";var n=r(1),i=r(7),o=r(94),s=r(62);r(63)("match",1,function(t,e,r,a){return[function r(n){var i=t(this),o=void 0==n?void 0:n[e];return void 0!==o?o.call(n,i):new RegExp(n)[e](String(i))},function(t){var e=a(r,t,this);if(e.done)return e.value;var u=n(t),c=String(this);if(!u.global)return s(u,c);var f=u.unicode;u.lastIndex=0;for(var h,l=[],p=0;null!==(h=s(u,c));){var d=String(h[0]);l[p]=d,""===d&&(u.lastIndex=o(c,i(u.lastIndex),f)),p++}return 0===p?null:l}]})},function(t,e,r){"use strict";var n=r(1),i=r(10),o=r(7),s=r(22),a=r(94),u=r(62),c=Math.max,f=Math.min,h=Math.floor,l=/\$([$&`']|\d\d?|<[^>]*>)/g,p=/\$([$&`']|\d\d?)/g;r(63)("replace",2,function(t,e,r,d){return[function n(i,o){var s=t(this),a=void 0==i?void 0:i[e];return void 0!==a?a.call(i,s,o):r.call(String(s),i,o)},function(t,e){var i=d(r,t,this,e);if(i.done)return i.value;var h=n(t),l=String(this),p="function"==typeof e;p||(e=String(e));var v=h.global;if(v){var y=h.unicode;h.lastIndex=0}for(var m=[];;){var _=u(h,l);if(null===_)break;if(m.push(_),!v)break;""===String(_[0])&&(h.lastIndex=a(l,o(h.lastIndex),y))}for(var S,b="",w=0,F=0;F=w&&(b+=l.slice(w,x)+T,w=x+E.length)}return b+l.slice(w)}];function g(t,e,n,o,s,a){var u=n+t.length,c=o.length,f=p;return void 0!==s&&(s=i(s),f=l),r.call(a,f,function(r,i){var a;switch(i.charAt(0)){case"$":return"$";case"&":return t;case"`":return e.slice(0,n);case"'":return e.slice(u);case"<":a=s[i.slice(1,-1)];break;default:var f=+i;if(0===f)return r;if(f>c){var l=h(f/10);return 0===l?r:l<=c?void 0===o[l-1]?i.charAt(1):o[l-1]+i.charAt(1):r}a=o[f-1]}return void 0===a?"":a})}})},function(t,e,r){"use strict";var n=r(1),i=r(109),o=r(62);r(63)("search",1,function(t,e,r,s){return[function r(n){var i=t(this),o=void 0==n?void 0:n[e];return void 0!==o?o.call(n,i):new RegExp(n)[e](String(i))},function(t){var e=s(r,t,this);if(e.done)return e.value;var a=n(t),u=String(this),c=a.lastIndex;i(c,0)||(a.lastIndex=0);var f=o(a,u);return i(a.lastIndex,c)||(a.lastIndex=c),null===f?-1:f.index}]})},function(t,e,r){"use strict";var n=r(60),i=r(1),o=r(54),s=r(94),a=r(7),u=r(62),c=r(93),f=r(4),h=Math.min,l=[].push,p=!f(function(){RegExp(4294967295,"y")});r(63)("split",2,function(t,e,r,f){var d;return d="c"=="abbc".split(/(b)*/)[1]||4!="test".split(/(?:)/,-1).length||2!="ab".split(/(?:ab)*/).length||4!=".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length?function(t,e){var i=String(this);if(void 0===t&&0===e)return[];if(!n(t))return r.call(i,t,e);for(var o,s,a,u=[],f=(t.ignoreCase?"i":"")+(t.multiline?"m":"")+(t.unicode?"u":"")+(t.sticky?"y":""),h=0,p=void 0===e?4294967295:e>>>0,d=new RegExp(t.source,f+"g");(o=c.call(d,i))&&!((s=d.lastIndex)>h&&(u.push(i.slice(h,o.index)),o.length>1&&o.index=p));)d.lastIndex===o.index&&d.lastIndex++;return h===i.length?!a&&d.test("")||u.push(""):u.push(i.slice(h)),u.length>p?u.slice(0,p):u}:"0".split(void 0,0).length?function(t,e){return void 0===t&&0===e?[]:r.call(this,t,e)}:r,[function r(n,i){var o=t(this),s=void 0==n?void 0:n[e];return void 0!==s?s.call(n,o,i):d.call(String(o),n,i)},function(t,e){var n=f(d,t,this,e,d!==r);if(n.done)return n.value;var c=i(t),l=String(this),g=o(c,RegExp),v=c.unicode,y=(c.ignoreCase?"i":"")+(c.multiline?"m":"")+(c.unicode?"u":"")+(p?"y":"g"),m=new g(p?c:"^(?:"+c.source+")",y),_=void 0===e?4294967295:e>>>0;if(0===_)return[];if(0===l.length)return null===u(m,l)?[l]:[];for(var S=0,b=0,w=[];bo;)s(r[o++]);t._c=[],t._n=!1,e&&!t._h&&D(t)})}},D=function(t){y.call(u,function(){var e,r,n,i=t._v,o=N(t);if(o&&(e=S(function(){P?E.emit("unhandledRejection",i,t):(r=u.onunhandledrejection)?r({promise:t,reason:i}):(n=u.console)&&n.error&&n.error("Unhandled promise rejection",i)}),t._h=P||N(t)?2:1),t._a=void 0,o&&e.e)throw e.v})},N=function(t){return 1!==t._h&&0===(t._a||t._c).length},L=function(t){y.call(u,function(){var e;P?E.emit("rejectionHandled",t):(e=u.onrejectionhandled)&&e({promise:t,reason:t._v})})},M=function(t){var e=this;e._d||(e._d=!0,(e=e._w||e)._v=t,e._s=2,e._a||(e._a=e._c.slice()),O(e,!0))},j=function(t){var e,r=this;if(!r._d){r._d=!0,r=r._w||r;try{if(r===t)throw F("Promise can't be resolved itself");(e=I(t))?m(function(){var n={_w:r,_d:!1};try{e.call(t,c(j,n,1),c(M,n,1))}catch(t){M.call(n,t)}}):(r._v=t,r._s=1,O(r,!1))}catch(t){M.call({_w:r,_d:!1},t)}}};R||(k=function t(e){d(this,k,"Promise","_h"),p(e),n.call(this);try{e(c(j,this,1),c(M,this,1))}catch(t){M.call(this,t)}},(n=function t(e){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1}).prototype=r(43)(k.prototype,{then:function t(e,r){var n=T(v(this,k));return n.ok="function"!=typeof e||e,n.fail="function"==typeof r&&r,n.domain=P?E.domain:void 0,this._c.push(n),this._a&&this._a.push(n),this._s&&O(this,!1),n.promise},catch:function(t){return this.then(void 0,t)}}),o=function(){var t=new n;this.promise=t,this.resolve=c(j,t,1),this.reject=c(M,t,1)},_.f=T=function(t){return t===k||t===s?new o(t):i(t)}),h(h.G+h.W+h.F*!R,{Promise:k}),r(45)(k,"Promise"),r(40)("Promise"),s=r(19).Promise,h(h.S+h.F*!R,"Promise",{reject:function t(e){var r=T(this);return(0,r.reject)(e),r.promise}}),h(h.S+h.F*(a||!R),"Promise",{resolve:function t(e){return w(a&&this===s?k:this,e)}}),h(h.S+h.F*!(R&&r(61)(function(t){k.all(t).catch(C)})),"Promise",{all:function t(e){var r=this,n=T(r),i=n.resolve,o=n.reject,s=S(function(){var t=[],n=0,s=1;g(e,!1,function(e){var a=n++,u=!1;t.push(void 0),s++,r.resolve(e).then(function(e){u||(u=!0,t[a]=e,--s||i(t))},o)}),--s||i(t)});return s.e&&o(s.v),n.promise},race:function t(e){var r=this,n=T(r),i=n.reject,o=S(function(){g(e,!1,function(t){r.resolve(t).then(n.resolve,i)})});return o.e&&i(o.v),n.promise}})},function(t,e,r){"use strict";var n=r(130),i=r(44);r(65)("WeakSet",function(t){return function e(){return t(this,arguments.length>0?arguments[0]:void 0)}},{add:function t(e){return n.def(i(this,"WeakSet"),e,!0)}},n,!1,!0)},function(t,e,r){"use strict";var n=r(0),i=r(66),o=r(98),s=r(1),a=r(37),u=r(7),c=r(5),f=r(2).ArrayBuffer,h=r(54),l=o.ArrayBuffer,p=o.DataView,d=i.ABV&&f.isView,g=l.prototype.slice,v=i.VIEW;n(n.G+n.W+n.F*(f!==l),{ArrayBuffer:l}),n(n.S+n.F*!i.CONSTR,"ArrayBuffer",{isView:function t(e){return d&&d(e)||c(e)&&v in e}}),n(n.P+n.U+n.F*r(4)(function(){return!new l(2).slice(1,void 0).byteLength}),"ArrayBuffer",{slice:function t(e,r){if(void 0!==g&&void 0===r)return g.call(s(this),e);for(var n=s(this).byteLength,i=a(e,n),o=a(void 0===r?n:r,n),c=new(h(this,l))(u(o-i)),f=new p(this),d=new p(c),v=0;i=e.length)return{value:void 0,done:!0}}while(!((t=e[this._i++])in this._t));return{value:t,done:!1}}),n(n.S,"Reflect",{enumerate:function t(e){return new o(e)}})},function(t,e,r){var n=r(17),i=r(18),o=r(15),s=r(0),a=r(5),u=r(1);s(s.S,"Reflect",{get:function t(e,r){var s,c,f=arguments.length<3?e:arguments[2];return u(e)===f?e[r]:(s=n.f(e,r))?o(s,"value")?s.value:void 0!==s.get?s.get.call(f):void 0:a(c=i(e))?t(c,r,f):void 0}})},function(t,e,r){var n=r(17),i=r(0),o=r(1);i(i.S,"Reflect",{getOwnPropertyDescriptor:function t(e,r){return n.f(o(e),r)}})},function(t,e,r){var n=r(0),i=r(18),o=r(1);n(n.S,"Reflect",{getPrototypeOf:function t(e){return i(o(e))}})},function(t,e,r){var n=r(0);n(n.S,"Reflect",{has:function t(e,r){return r in e}})},function(t,e,r){var n=r(0),i=r(1),o=Object.isExtensible;n(n.S,"Reflect",{isExtensible:function t(e){return i(e),!o||o(e)}})},function(t,e,r){var n=r(0);n(n.S,"Reflect",{ownKeys:r(132)})},function(t,e,r){var n=r(0),i=r(1),o=Object.preventExtensions;n(n.S,"Reflect",{preventExtensions:function t(e){i(e);try{return o&&o(e),!0}catch(t){return!1}}})},function(t,e,r){var n=r(9),i=r(17),o=r(18),s=r(15),a=r(0),u=r(34),c=r(1),f=r(5);a(a.S,"Reflect",{set:function t(e,r,a){var h,l,p=arguments.length<4?e:arguments[3],d=i.f(c(e),r);if(!d){if(f(l=o(e)))return t(l,r,a,p);d=u(0)}if(s(d,"value")){if(!1===d.writable||!f(p))return!1;if(h=i.f(p,r)){if(h.get||h.set||!1===h.writable)return!1;h.value=a,n.f(p,r,h)}else n.f(p,r,u(0,a));return!0}return void 0!==d.set&&(d.set.call(p,a),!0)}})},function(t,e,r){var n=r(0),i=r(77);i&&n(n.S,"Reflect",{setPrototypeOf:function t(e,r){i.check(e,r);try{return i.set(e,r),!0}catch(t){return!1}}})},function(t,e,r){"use strict";var n=r(0),i=r(56)(!0);n(n.P,"Array",{includes:function t(e){return i(this,e,arguments.length>1?arguments[1]:void 0)}}),r(32)("includes")},function(t,e,r){"use strict";var n=r(0),i=r(133),o=r(10),s=r(7),a=r(11),u=r(90);n(n.P,"Array",{flatMap:function t(e){var r,n,c=o(this);return a(e),r=s(c.length),n=u(c,0),i(n,c,c,r,0,1,e,arguments[1]),n}}),r(32)("flatMap")},function(t,e,r){"use strict";var n=r(0),i=r(133),o=r(10),s=r(7),a=r(22),u=r(90);n(n.P,"Array",{flatten:function t(){var e=arguments[0],r=o(this),n=s(r.length),c=u(r,0);return i(c,r,r,n,0,void 0===e?1:a(e)),c}}),r(32)("flatten")},function(t,e,r){"use strict";var n=r(0),i=r(59)(!0);n(n.P,"String",{at:function t(e){return i(this,e)}})},function(t,e,r){"use strict";var n=r(0),i=r(134),o=r(64);n(n.P+n.F*/Version\/10\.\d+(\.\d+)? Safari\//.test(o),"String",{padStart:function t(e){return i(this,e,arguments.length>1?arguments[1]:void 0,!0)}})},function(t,e,r){"use strict";var n=r(0),i=r(134),o=r(64);n(n.P+n.F*/Version\/10\.\d+(\.\d+)? Safari\//.test(o),"String",{padEnd:function t(e){return i(this,e,arguments.length>1?arguments[1]:void 0,!1)}})},function(t,e,r){"use strict";r(47)("trimLeft",function(t){return function e(){return t(this,1)}},"trimStart")},function(t,e,r){"use strict";r(47)("trimRight",function(t){return function e(){return t(this,2)}},"trimEnd")},function(t,e,r){"use strict";var n=r(0),i=r(25),o=r(7),s=r(60),a=r(53),u=RegExp.prototype,c=function(t,e){this._r=t,this._s=e};r(84)(c,"RegExp String",function t(){var e=this._r.exec(this._s);return{value:e,done:null===e}}),n(n.P,"String",{matchAll:function t(e){if(i(this),!s(e))throw TypeError(e+" is not a regexp!");var r=String(this),n="flags"in u?String(e.flags):a.call(e),f=new RegExp(e.source,~n.indexOf("g")?n:"g"+n);return f.lastIndex=o(e.lastIndex),new c(f,r)}})},function(t,e,r){r(73)("asyncIterator")},function(t,e,r){r(73)("observable")},function(t,e,r){var n=r(0),i=r(132),o=r(16),s=r(17),a=r(88);n(n.S,"Object",{getOwnPropertyDescriptors:function t(e){for(var r,n,u=o(e),c=s.f,f=i(u),h={},l=0;f.length>l;)void 0!==(n=c(u,r=f[l++]))&&a(h,r,n);return h}})},function(t,e,r){var n=r(0),i=r(135)(!1);n(n.S,"Object",{values:function t(e){return i(e)}})},function(t,e,r){var n=r(0),i=r(135)(!0);n(n.S,"Object",{entries:function t(e){return i(e)}})},function(t,e,r){"use strict";var n=r(0),i=r(10),o=r(11),s=r(9);r(8)&&n(n.P+r(67),"Object",{__defineGetter__:function t(e,r){s.f(i(this),e,{get:o(r),enumerable:!0,configurable:!0})}})},function(t,e,r){"use strict";var n=r(0),i=r(10),o=r(11),s=r(9);r(8)&&n(n.P+r(67),"Object",{__defineSetter__:function t(e,r){s.f(i(this),e,{set:o(r),enumerable:!0,configurable:!0})}})},function(t,e,r){"use strict";var n=r(0),i=r(10),o=r(24),s=r(18),a=r(17).f;r(8)&&n(n.P+r(67),"Object",{__lookupGetter__:function t(e){var r,n=i(this),u=o(e,!0);do{if(r=a(n,u))return r.get}while(n=s(n))}})},function(t,e,r){"use strict";var n=r(0),i=r(10),o=r(24),s=r(18),a=r(17).f;r(8)&&n(n.P+r(67),"Object",{__lookupSetter__:function t(e){var r,n=i(this),u=o(e,!0);do{if(r=a(n,u))return r.set}while(n=s(n))}})},function(t,e,r){var n=r(0);n(n.P+n.R,"Map",{toJSON:r(136)("Map")})},function(t,e,r){var n=r(0);n(n.P+n.R,"Set",{toJSON:r(136)("Set")})},function(t,e,r){r(68)("Map")},function(t,e,r){r(68)("Set")},function(t,e,r){r(68)("WeakMap")},function(t,e,r){r(68)("WeakSet")},function(t,e,r){r(69)("Map")},function(t,e,r){r(69)("Set")},function(t,e,r){r(69)("WeakMap")},function(t,e,r){r(69)("WeakSet")},function(t,e,r){var n=r(0);n(n.G,{global:r(2)})},function(t,e,r){var n=r(0);n(n.S,"System",{global:r(2)})},function(t,e,r){var n=r(0),i=r(21);n(n.S,"Error",{isError:function t(e){return"Error"===i(e)}})},function(t,e,r){var n=r(0);n(n.S,"Math",{clamp:function t(e,r,n){return Math.min(n,Math.max(r,e))}})},function(t,e,r){var n=r(0);n(n.S,"Math",{DEG_PER_RAD:Math.PI/180})},function(t,e,r){var n=r(0),i=180/Math.PI;n(n.S,"Math",{degrees:function t(e){return e*i}})},function(t,e,r){var n=r(0),i=r(138),o=r(117);n(n.S,"Math",{fscale:function t(e,r,n,s,a){return o(i(e,r,n,s,a))}})},function(t,e,r){var n=r(0);n(n.S,"Math",{iaddh:function t(e,r,n,i){var o=e>>>0,s=n>>>0;return(r>>>0)+(i>>>0)+((o&s|(o|s)&~(o+s>>>0))>>>31)|0}})},function(t,e,r){var n=r(0);n(n.S,"Math",{isubh:function t(e,r,n,i){var o=e>>>0,s=n>>>0;return(r>>>0)-(i>>>0)-((~o&s|~(o^s)&o-s>>>0)>>>31)|0}})},function(t,e,r){var n=r(0);n(n.S,"Math",{imulh:function t(e,r){var n=+e,i=+r,o=65535&n,s=65535&i,a=n>>16,u=i>>16,c=(a*s>>>0)+(o*s>>>16);return a*u+(c>>16)+((o*u>>>0)+(65535&c)>>16)}})},function(t,e,r){var n=r(0);n(n.S,"Math",{RAD_PER_DEG:180/Math.PI})},function(t,e,r){var n=r(0),i=Math.PI/180;n(n.S,"Math",{radians:function t(e){return e*i}})},function(t,e,r){var n=r(0);n(n.S,"Math",{scale:r(138)})},function(t,e,r){var n=r(0);n(n.S,"Math",{umulh:function t(e,r){var n=+e,i=+r,o=65535&n,s=65535&i,a=n>>>16,u=i>>>16,c=(a*s>>>0)+(o*s>>>16);return a*u+(c>>>16)+((o*u>>>0)+(65535&c)>>>16)}})},function(t,e,r){var n=r(0);n(n.S,"Math",{signbit:function t(e){return(e=+e)!=e?e:0==e?1/e==1/0:e>0}})},function(t,e,r){"use strict";var n=r(0),i=r(19),o=r(2),s=r(54),a=r(125);n(n.P+n.R,"Promise",{finally:function(t){var e=s(this,i.Promise||o.Promise),r="function"==typeof t;return this.then(r?function(r){return a(e,t()).then(function(){return r})}:t,r?function(r){return a(e,t()).then(function(){throw r})}:t)}})},function(t,e,r){"use strict";var n=r(0),i=r(97),o=r(124);n(n.S,"Promise",{try:function(t){var e=i.f(this),r=o(t);return(r.e?e.reject:e.resolve)(r.v),e.promise}})},function(t,e,r){var n=r(29),i=r(1),o=n.key,s=n.set;n.exp({defineMetadata:function t(e,r,n,a){s(e,r,i(n),o(a))}})},function(t,e,r){var n=r(29),i=r(1),o=n.key,s=n.map,a=n.store;n.exp({deleteMetadata:function t(e,r){var n=arguments.length<3?void 0:o(arguments[2]),u=s(i(r),n,!1);if(void 0===u||!u.delete(e))return!1;if(u.size)return!0;var c=a.get(r);return c.delete(n),!!c.size||a.delete(r)}})},function(t,e,r){var n=r(29),i=r(1),o=r(18),s=n.has,a=n.get,u=n.key,c=function(t,e,r){if(s(t,e,r))return a(t,e,r);var n=o(e);return null!==n?c(t,n,r):void 0};n.exp({getMetadata:function t(e,r){return c(e,i(r),arguments.length<3?void 0:u(arguments[2]))}})},function(t,e,r){var n=r(128),i=r(137),o=r(29),s=r(1),a=r(18),u=o.keys,c=o.key,f=function(t,e){var r=u(t,e),o=a(t);if(null===o)return r;var s=f(o,e);return s.length?r.length?i(new n(r.concat(s))):s:r};o.exp({getMetadataKeys:function t(e){return f(s(e),arguments.length<2?void 0:c(arguments[1]))}})},function(t,e,r){var n=r(29),i=r(1),o=n.get,s=n.key;n.exp({getOwnMetadata:function t(e,r){return o(e,i(r),arguments.length<3?void 0:s(arguments[2]))}})},function(t,e,r){var n=r(29),i=r(1),o=n.keys,s=n.key;n.exp({getOwnMetadataKeys:function t(e){return o(i(e),arguments.length<2?void 0:s(arguments[1]))}})},function(t,e,r){var n=r(29),i=r(1),o=r(18),s=n.has,a=n.key,u=function(t,e,r){if(s(t,e,r))return!0;var n=o(e);return null!==n&&u(t,n,r)};n.exp({hasMetadata:function t(e,r){return u(e,i(r),arguments.length<3?void 0:a(arguments[2]))}})},function(t,e,r){var n=r(29),i=r(1),o=n.has,s=n.key;n.exp({hasOwnMetadata:function t(e,r){return o(e,i(r),arguments.length<3?void 0:s(arguments[2]))}})},function(t,e,r){var n=r(29),i=r(1),o=r(11),s=n.key,a=n.set;n.exp({metadata:function t(e,r){return function t(n,u){a(e,r,(void 0!==u?i:o)(n),s(u))}}})},function(t,e,r){var n=r(0),i=r(96)(),o=r(2).process,s="process"==r(21)(o);n(n.G,{asap:function t(e){var r=s&&o.domain;i(r?r.bind(e):e)}})},function(t,e,r){"use strict";var n=r(0),i=r(2),o=r(19),s=r(96)(),a=r(6)("observable"),u=r(11),c=r(1),f=r(41),h=r(43),l=r(12),p=r(42),d=p.RETURN,g=function(t){return null==t?void 0:u(t)},v=function(t){var e=t._c;e&&(t._c=void 0,e())},y=function(t){return void 0===t._o},m=function(t){y(t)||(t._o=void 0,v(t))},_=function(t,e){c(t),this._c=void 0,this._o=t,t=new S(this);try{var r=e(t),n=r;null!=r&&("function"==typeof r.unsubscribe?r=function(){n.unsubscribe()}:u(r),this._c=r)}catch(e){return void t.error(e)}y(this)&&v(this)};_.prototype=h({},{unsubscribe:function t(){m(this)}});var S=function(t){this._s=t};S.prototype=h({},{next:function t(e){var r=this._s;if(!y(r)){var n=r._o;try{var i=g(n.next);if(i)return i.call(n,e)}catch(t){try{m(r)}finally{throw t}}}},error:function t(e){var r=this._s;if(y(r))throw e;var n=r._o;r._o=void 0;try{var i=g(n.error);if(!i)throw e;e=i.call(n,e)}catch(t){try{v(r)}finally{throw t}}return v(r),e},complete:function t(e){var r=this._s;if(!y(r)){var n=r._o;r._o=void 0;try{var i=g(n.complete);e=i?i.call(n,e):void 0}catch(t){try{v(r)}finally{throw t}}return v(r),e}}});var b=function t(e){f(this,b,"Observable","_f")._f=u(e)};h(b.prototype,{subscribe:function t(e){return new _(e,this._f)},forEach:function t(e){var r=this;return new(o.Promise||i.Promise)(function(t,n){u(e);var i=r.subscribe({next:function(t){try{return e(t)}catch(t){n(t),i.unsubscribe()}},error:n,complete:t})})}}),h(b,{from:function t(e){var r="function"==typeof this?this:b,n=g(c(e)[a]);if(n){var i=c(n.call(e));return i.constructor===r?i:new r(function(t){return i.subscribe(t)})}return new r(function(t){var r=!1;return s(function(){if(!r){try{if(p(e,!1,function(e){if(t.next(e),r)return d})===d)return}catch(e){if(r)throw e;return void t.error(e)}t.complete()}}),function(){r=!0}})},of:function t(){for(var e=0,r=arguments.length,n=new Array(r);e2,i=!!n&&s.call(arguments,2);return t(n?function(){("function"==typeof e?e:Function(e)).apply(this,i)}:e,r)}};i(i.G+i.B+i.F*a,{setTimeout:u(n.setTimeout),setInterval:u(n.setInterval)})},function(t,e,r){var n=r(0),i=r(95);n(n.G+n.B,{setImmediate:i.set,clearImmediate:i.clear})},function(t,e,r){for(var n=r(92),i=r(36),o=r(13),s=r(2),a=r(12),u=r(48),c=r(6),f=c("iterator"),h=c("toStringTag"),l=u.Array,p={CSSRuleList:!0,CSSStyleDeclaration:!1,CSSValueList:!1,ClientRectList:!1,DOMRectList:!1,DOMStringList:!1,DOMTokenList:!0,DataTransferItemList:!1,FileList:!1,HTMLAllCollection:!1,HTMLCollection:!1,HTMLFormElement:!1,HTMLSelectElement:!1,MediaList:!0,MimeTypeArray:!1,NamedNodeMap:!1,NodeList:!0,PaintRequestList:!1,Plugin:!1,PluginArray:!1,SVGLengthList:!1,SVGNumberList:!1,SVGPathSegList:!1,SVGPointList:!1,SVGStringList:!1,SVGTransformList:!1,SourceBufferList:!1,StyleSheetList:!0,TextTrackCueList:!1,TextTrackList:!1,TouchList:!1},d=i(p),g=0;g=0;--o){var s=this.tryEntries[o],a=s.completion;if("root"===s.tryLoc)return n("end");if(s.tryLoc<=this.prev){var u=i.call(s,"catchLoc"),c=i.call(s,"finallyLoc");if(u&&c){if(this.prev=0;--r){var n=this.tryEntries[r];if(n.tryLoc<=this.prev&&i.call(n,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),C(r),g}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var i=n.arg;C(r)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,n){return this.delegate={iterator:R(t),resultName:e,nextLoc:n},"next"===this.method&&(this.arg=r),g}}}function S(t,e,r,n){var i=e&&e.prototype instanceof w?e:w,o=Object.create(i.prototype),s=new T(n||[]);return o._invoke=function a(t,e,r){var n=h;return function i(o,s){if(n===p)throw new Error("Generator is already running");if(n===d){if("throw"===o)throw s;return I()}for(r.method=o,r.arg=s;;){var a=r.delegate;if(a){var u=k(a,r);if(u){if(u===g)continue;return u}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(n===h)throw n=d,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n=p;var c=b(t,e,r);if("normal"===c.type){if(n=r.done?d:l,c.arg===g)continue;return{value:c.arg,done:r.done}}"throw"===c.type&&(n=d,r.method="throw",r.arg=c.arg)}}}(t,r,s),o}function b(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}function w(){}function F(){}function E(){}function x(t){["next","throw","return"].forEach(function(e){t[e]=function(t){return this._invoke(e,t)}})}function A(t){function r(e,n,o,s){var a=b(t[e],t,n);if("throw"!==a.type){var u=a.arg,c=u.value;return c&&"object"==typeof c&&i.call(c,"__await")?Promise.resolve(c.__await).then(function(t){r("next",t,o,s)},function(t){r("throw",t,o,s)}):Promise.resolve(c).then(function(t){u.value=t,o(u)},s)}s(a.arg)}var n;"object"==typeof e.process&&e.process.domain&&(r=e.process.domain.bind(r)),this._invoke=function o(t,e){function i(){return new Promise(function(n,i){r(t,e,n,i)})}return n=n?n.then(i,i):i()}}function k(t,e){var n=t.iterator[e.method];if(n===r){if(e.delegate=null,"throw"===e.method){if(t.iterator.return&&(e.method="return",e.arg=r,k(t,e),"throw"===e.method))return g;e.method="throw",e.arg=new TypeError("The iterator does not provide a 'throw' method")}return g}var i=b(n,t.iterator,e.arg);if("throw"===i.type)return e.method="throw",e.arg=i.arg,e.delegate=null,g;var o=i.arg;return o?o.done?(e[t.resultName]=o.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=r),e.delegate=null,g):o:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,g)}function P(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function C(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function T(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(P,this),this.reset(!0)}function R(t){if(t){var e=t[s];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var n=-1,o=function e(){for(;++n1&&void 0!==arguments[1]?arguments[1]:o.MetadataService,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:s.UserInfoService,u=arguments.length>3&&void 0!==arguments[3]?arguments[3]:c.JoseUtil,f=arguments.length>4&&void 0!==arguments[4]?arguments[4]:a.TokenClient;if(function h(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),!e)throw i.Log.error("ResponseValidator.ctor: No settings passed to ResponseValidator"),new Error("settings");this._settings=e,this._metadataService=new r(this._settings),this._userInfoService=new n(this._settings),this._joseUtil=u,this._tokenClient=new f(this._settings)}return t.prototype.validateSigninResponse=function t(e,r){var n=this;return i.Log.debug("ResponseValidator.validateSigninResponse"),this._processSigninParams(e,r).then(function(t){return i.Log.debug("ResponseValidator.validateSigninResponse: state processed"),n._validateTokens(e,t).then(function(t){return i.Log.debug("ResponseValidator.validateSigninResponse: tokens validated"),n._processClaims(e,t).then(function(t){return i.Log.debug("ResponseValidator.validateSigninResponse: claims processed"),t})})})},t.prototype.validateSignoutResponse=function t(e,r){return e.id!==r.state?(i.Log.error("ResponseValidator.validateSignoutResponse: State does not match"),Promise.reject(new Error("State does not match"))):(i.Log.debug("ResponseValidator.validateSignoutResponse: state validated"),r.state=e.data,r.error?(i.Log.warn("ResponseValidator.validateSignoutResponse: Response was error",r.error),Promise.reject(new u.ErrorResponse(r))):Promise.resolve(r))},t.prototype._processSigninParams=function t(e,r){if(e.id!==r.state)return i.Log.error("ResponseValidator._processSigninParams: State does not match"),Promise.reject(new Error("State does not match"));if(!e.client_id)return i.Log.error("ResponseValidator._processSigninParams: No client_id on state"),Promise.reject(new Error("No client_id on state"));if(!e.authority)return i.Log.error("ResponseValidator._processSigninParams: No authority on state"),Promise.reject(new Error("No authority on state"));if(this._settings.authority){if(this._settings.authority&&this._settings.authority!==e.authority)return i.Log.error("ResponseValidator._processSigninParams: authority mismatch on settings vs. signin state"),Promise.reject(new Error("authority mismatch on settings vs. signin state"))}else this._settings.authority=e.authority;if(this._settings.client_id){if(this._settings.client_id&&this._settings.client_id!==e.client_id)return i.Log.error("ResponseValidator._processSigninParams: client_id mismatch on settings vs. signin state"),Promise.reject(new Error("client_id mismatch on settings vs. signin state"))}else this._settings.client_id=e.client_id;return i.Log.debug("ResponseValidator._processSigninParams: state validated"),r.state=e.data,r.error?(i.Log.warn("ResponseValidator._processSigninParams: Response was error",r.error),Promise.reject(new u.ErrorResponse(r))):e.nonce&&!r.id_token?(i.Log.error("ResponseValidator._processSigninParams: Expecting id_token in response"),Promise.reject(new Error("No id_token in response"))):!e.nonce&&r.id_token?(i.Log.error("ResponseValidator._processSigninParams: Not expecting id_token in response"),Promise.reject(new Error("Unexpected id_token in response"))):e.code_verifier&&!r.code?(i.Log.error("ResponseValidator._processSigninParams: Expecting code in response"),Promise.reject(new Error("No code in response"))):!e.code_verifier&&r.code?(i.Log.error("ResponseValidator._processSigninParams: Not expecting code in response"),Promise.reject(new Error("Unexpected code in response"))):(r.scope||(r.scope=e.scope),Promise.resolve(r))},t.prototype._processClaims=function t(e,r){var n=this;if(r.isOpenIdConnect){if(i.Log.debug("ResponseValidator._processClaims: response is OIDC, processing claims"),r.profile=this._filterProtocolClaims(r.profile),!0!==e.skipUserInfo&&this._settings.loadUserInfo&&r.access_token)return i.Log.debug("ResponseValidator._processClaims: loading user info"),this._userInfoService.getClaims(r.access_token).then(function(t){return i.Log.debug("ResponseValidator._processClaims: user info claims received from user info endpoint"),t.sub!==r.profile.sub?(i.Log.error("ResponseValidator._processClaims: sub from user info endpoint does not match sub in access_token"),Promise.reject(new Error("sub from user info endpoint does not match sub in access_token"))):(r.profile=n._mergeClaims(r.profile,t),i.Log.debug("ResponseValidator._processClaims: user info claims received, updated profile:",r.profile),r)});i.Log.debug("ResponseValidator._processClaims: not loading user info")}else i.Log.debug("ResponseValidator._processClaims: response is not OIDC, not processing claims");return Promise.resolve(r)},t.prototype._mergeClaims=function t(e,r){var i=Object.assign({},e);for(var o in r){var s=r[o];Array.isArray(s)||(s=[s]);for(var a=0;a1)return i.Log.error("ResponseValidator._validateIdToken: No kid found in id_token and more than one key found in metadata"),Promise.reject(new Error("No kid found in id_token and more than one key found in metadata"));u=a[0]}if(!u)return i.Log.error("ResponseValidator._validateIdToken: No key matching kid or alg found in signing keys"),Promise.reject(new Error("No key matching kid or alg found in signing keys"));var c=e.client_id,f=n._settings.clockSkew;return i.Log.debug("ResponseValidator._validateIdToken: Validaing JWT; using clock skew (in seconds) of: ",f),n._joseUtil.validateJwt(r.id_token,u,t,c,f).then(function(){return i.Log.debug("ResponseValidator._validateIdToken: JWT validation successful"),o.payload.sub?(r.profile=o.payload,r):(i.Log.error("ResponseValidator._validateIdToken: No sub present in id_token"),Promise.reject(new Error("No sub present in id_token")))})})})},t.prototype._filterByAlg=function t(e,r){var n=null;if(r.startsWith("RS"))n="RSA";else if(r.startsWith("PS"))n="PS";else{if(!r.startsWith("ES"))return i.Log.debug("ResponseValidator._filterByAlg: alg not supported: ",r),[];n="EC"}return i.Log.debug("ResponseValidator._filterByAlg: Looking for keys that match kty: ",n),e=e.filter(function(t){return t.kty===n}),i.Log.debug("ResponseValidator._filterByAlg: Number of keys that match kty: ",n,e.length),e},t.prototype._validateAccessToken=function t(e){if(!e.profile)return i.Log.error("ResponseValidator._validateAccessToken: No profile loaded from id_token"),Promise.reject(new Error("No profile loaded from id_token"));if(!e.profile.at_hash)return i.Log.error("ResponseValidator._validateAccessToken: No at_hash in id_token"),Promise.reject(new Error("No at_hash in id_token"));if(!e.id_token)return i.Log.error("ResponseValidator._validateAccessToken: No id_token"),Promise.reject(new Error("No id_token"));var r=this._joseUtil.parseJwt(e.id_token);if(!r||!r.header)return i.Log.error("ResponseValidator._validateAccessToken: Failed to parse id_token",r),Promise.reject(new Error("Failed to parse id_token"));var n=r.header.alg;if(!n||5!==n.length)return i.Log.error("ResponseValidator._validateAccessToken: Unsupported alg:",n),Promise.reject(new Error("Unsupported alg: "+n));var o=n.substr(2,3);if(!o)return i.Log.error("ResponseValidator._validateAccessToken: Unsupported alg:",n,o),Promise.reject(new Error("Unsupported alg: "+n));if(256!==(o=parseInt(o))&&384!==o&&512!==o)return i.Log.error("ResponseValidator._validateAccessToken: Unsupported alg:",n,o),Promise.reject(new Error("Unsupported alg: "+n));var s="sha"+o,a=this._joseUtil.hashString(e.access_token,s);if(!a)return i.Log.error("ResponseValidator._validateAccessToken: access_token hash failed:",s),Promise.reject(new Error("Failed to validate at_hash"));var u=a.substr(0,a.length/2),c=this._joseUtil.hexToBase64Url(u);return c!==e.profile.at_hash?(i.Log.error("ResponseValidator._validateAccessToken: Failed to validate at_hash",c,e.profile.at_hash),Promise.reject(new Error("Failed to validate at_hash"))):(i.Log.debug("ResponseValidator._validateAccessToken: success"),Promise.resolve(e))},t}()},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.UserInfoService=void 0;var n=r(101),i=r(49),o=r(3),s=r(70);e.UserInfoService=function(){function t(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:n.JsonService,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:i.MetadataService,u=arguments.length>3&&void 0!==arguments[3]?arguments[3]:s.JoseUtil;if(function c(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),!e)throw o.Log.error("UserInfoService.ctor: No settings passed"),new Error("settings");this._settings=e,this._jsonService=new r(void 0,void 0,this._getClaimsFromJwt.bind(this)),this._metadataService=new a(this._settings),this._joseUtil=u}return t.prototype.getClaims=function t(e){var r=this;return e?this._metadataService.getUserInfoEndpoint().then(function(t){return o.Log.debug("UserInfoService.getClaims: received userinfo url",t),r._jsonService.getJson(t,e).then(function(t){return o.Log.debug("UserInfoService.getClaims: claims received",t),t})}):(o.Log.error("UserInfoService.getClaims: No token passed"),Promise.reject(new Error("A token is required")))},t.prototype._getClaimsFromJwt=function t(e){var r=this;try{var n=this._joseUtil.parseJwt(e.responseText);if(!n||!n.header||!n.payload)return o.Log.error("UserInfoService._getClaimsFromJwt: Failed to parse JWT",n),Promise.reject(new Error("Failed to parse id_token"));var i=n.header.kid,s=void 0;switch(this._settings.userInfoJwtIssuer){case"OP":s=this._metadataService.getIssuer();break;case"ANY":s=Promise.resolve(n.payload.iss);break;default:s=Promise.resolve(this._settings.userInfoJwtIssuer)}return s.then(function(t){return o.Log.debug("UserInfoService._getClaimsFromJwt: Received issuer:"+t),r._metadataService.getSigningKeys().then(function(s){if(!s)return o.Log.error("UserInfoService._getClaimsFromJwt: No signing keys from metadata"),Promise.reject(new Error("No signing keys from metadata"));o.Log.debug("UserInfoService._getClaimsFromJwt: Received signing keys");var a=void 0;if(i)a=s.filter(function(t){return t.kid===i})[0];else{if((s=r._filterByAlg(s,n.header.alg)).length>1)return o.Log.error("UserInfoService._getClaimsFromJwt: No kid found in id_token and more than one key found in metadata"),Promise.reject(new Error("No kid found in id_token and more than one key found in metadata"));a=s[0]}if(!a)return o.Log.error("UserInfoService._getClaimsFromJwt: No key matching kid or alg found in signing keys"),Promise.reject(new Error("No key matching kid or alg found in signing keys"));var u=r._settings.client_id,c=r._settings.clockSkew;return o.Log.debug("UserInfoService._getClaimsFromJwt: Validaing JWT; using clock skew (in seconds) of: ",c),r._joseUtil.validateJwt(e.responseText,a,t,u,c,void 0,!0).then(function(){return o.Log.debug("UserInfoService._getClaimsFromJwt: JWT validation successful"),n.payload})})})}catch(t){return o.Log.error("UserInfoService._getClaimsFromJwt: Error parsing JWT response",t.message),void reject(t)}},t.prototype._filterByAlg=function t(e,r){var n=null;if(r.startsWith("RS"))n="RSA";else if(r.startsWith("PS"))n="PS";else{if(!r.startsWith("ES"))return o.Log.debug("UserInfoService._filterByAlg: alg not supported: ",r),[];n="EC"}return o.Log.debug("UserInfoService._filterByAlg: Looking for keys that match kty: ",n),e=e.filter(function(t){return t.kty===n}),o.Log.debug("UserInfoService._filterByAlg: Number of keys that match kty: ",n,e.length),e},t}()},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.AllowedSigningAlgs=e.b64tohex=e.hextob64u=e.crypto=e.X509=e.KeyUtil=e.jws=void 0;var n=r(359);e.jws=n.jws,e.KeyUtil=n.KEYUTIL,e.X509=n.X509,e.crypto=n.crypto,e.hextob64u=n.hextob64u,e.b64tohex=n.b64tohex,e.AllowedSigningAlgs=["RS256","RS384","RS512","PS256","PS384","PS512","ES256","ES384","ES512"]},function(t,e,r){"use strict";(function(t){Object.defineProperty(e,"__esModule",{value:!0});var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},n={userAgent:!1},i={}; +/*! +Copyright (c) 2011, Yahoo! Inc. All rights reserved. +Code licensed under the BSD License: +http://developer.yahoo.com/yui/license.html +version: 2.9.0 +*/ +if(void 0===o)var o={};o.lang={extend:function t(e,r,i){if(!r||!e)throw new Error("YAHOO.lang.extend failed, please check that all dependencies are included.");var o=function t(){};if(o.prototype=r.prototype,e.prototype=new o,e.prototype.constructor=e,e.superclass=r.prototype,r.prototype.constructor==Object.prototype.constructor&&(r.prototype.constructor=r),i){var s;for(s in i)e.prototype[s]=i[s];var a=function t(){},u=["toString","valueOf"];try{/MSIE/.test(n.userAgent)&&(a=function t(e,r){for(s=0;s>>2]>>>24-s%4*8&255;r[i+s>>>2]|=a<<24-(i+s)%4*8}else for(s=0;s>>2]=n[s>>>2];return this.sigBytes+=o,this},clamp:function t(){var e=this.words,r=this.sigBytes;e[r>>>2]&=4294967295<<32-r%4*8,e.length=s.ceil(r/4)},clone:function t(){var e=c.clone.call(this);return e.words=this.words.slice(0),e},random:function t(e){for(var r=[],n=0;n>>2]>>>24-o%4*8&255;i.push((s>>>4).toString(16)),i.push((15&s).toString(16))}return i.join("")},parse:function t(e){for(var r=e.length,n=[],i=0;i>>3]|=parseInt(e.substr(i,2),16)<<24-i%8*4;return new f.init(n,r/2)}},p=h.Latin1={stringify:function t(e){for(var r=e.words,n=e.sigBytes,i=[],o=0;o>>2]>>>24-o%4*8&255;i.push(String.fromCharCode(s))}return i.join("")},parse:function t(e){for(var r=e.length,n=[],i=0;i>>2]|=(255&e.charCodeAt(i))<<24-i%4*8;return new f.init(n,r)}},d=h.Utf8={stringify:function t(e){try{return decodeURIComponent(escape(p.stringify(e)))}catch(t){throw new Error("Malformed UTF-8 data")}},parse:function t(e){return p.parse(unescape(encodeURIComponent(e)))}},g=u.BufferedBlockAlgorithm=c.extend({reset:function t(){this._data=new f.init,this._nDataBytes=0},_append:function t(e){"string"==typeof e&&(e=d.parse(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes},_process:function t(e){var r=this._data,n=r.words,i=r.sigBytes,o=this.blockSize,a=i/(4*o),u=(a=e?s.ceil(a):s.max((0|a)-this._minBufferSize,0))*o,c=s.min(4*u,i);if(u){for(var h=0;h>>2]>>>24-o%4*8&255)<<16|(r[o+1>>>2]>>>24-(o+1)%4*8&255)<<8|r[o+2>>>2]>>>24-(o+2)%4*8&255,a=0;4>a&&o+.75*a>>6*(3-a)&63));if(r=i.charAt(64))for(;e.length%4;)e.push(r);return e.join("")},parse:function t(r){var n=r.length,i=this._map;(o=i.charAt(64))&&(-1!=(o=r.indexOf(o))&&(n=o));for(var o=[],s=0,a=0;a>>6-a%4*2;o[s>>>2]|=(u|c)<<24-s%4*8,s++}return e.create(o,s)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="}}(),function(t){for(var e=y,r=(i=e.lib).WordArray,n=i.Hasher,i=e.algo,o=[],s=[],a=function t(e){return 4294967296*(e-(0|e))|0},u=2,c=0;64>c;){var f;t:{f=u;for(var h=t.sqrt(f),l=2;l<=h;l++)if(!(f%l)){f=!1;break t}f=!0}f&&(8>c&&(o[c]=a(t.pow(u,.5))),s[c]=a(t.pow(u,1/3)),c++),u++}var p=[];i=i.SHA256=n.extend({_doReset:function t(){this._hash=new r.init(o.slice(0))},_doProcessBlock:function t(e,r){for(var n=this._hash.words,i=n[0],o=n[1],a=n[2],u=n[3],c=n[4],f=n[5],h=n[6],l=n[7],d=0;64>d;d++){if(16>d)p[d]=0|e[r+d];else{var g=p[d-15],v=p[d-2];p[d]=((g<<25|g>>>7)^(g<<14|g>>>18)^g>>>3)+p[d-7]+((v<<15|v>>>17)^(v<<13|v>>>19)^v>>>10)+p[d-16]}g=l+((c<<26|c>>>6)^(c<<21|c>>>11)^(c<<7|c>>>25))+(c&f^~c&h)+s[d]+p[d],v=((i<<30|i>>>2)^(i<<19|i>>>13)^(i<<10|i>>>22))+(i&o^i&a^o&a),l=h,h=f,f=c,c=u+g|0,u=a,a=o,o=i,i=g+v|0}n[0]=n[0]+i|0,n[1]=n[1]+o|0,n[2]=n[2]+a|0,n[3]=n[3]+u|0,n[4]=n[4]+c|0,n[5]=n[5]+f|0,n[6]=n[6]+h|0,n[7]=n[7]+l|0},_doFinalize:function e(){var r=this._data,n=r.words,i=8*this._nDataBytes,o=8*r.sigBytes;return n[o>>>5]|=128<<24-o%32,n[14+(o+64>>>9<<4)]=t.floor(i/4294967296),n[15+(o+64>>>9<<4)]=i,r.sigBytes=4*n.length,this._process(),this._hash},clone:function t(){var e=n.clone.call(this);return e._hash=this._hash.clone(),e}});e.SHA256=n._createHelper(i),e.HmacSHA256=n._createHmacHelper(i)}(Math),function(){function t(){return n.create.apply(n,arguments)}for(var e=y,r=e.lib.Hasher,n=(o=e.x64).Word,i=o.WordArray,o=e.algo,s=[t(1116352408,3609767458),t(1899447441,602891725),t(3049323471,3964484399),t(3921009573,2173295548),t(961987163,4081628472),t(1508970993,3053834265),t(2453635748,2937671579),t(2870763221,3664609560),t(3624381080,2734883394),t(310598401,1164996542),t(607225278,1323610764),t(1426881987,3590304994),t(1925078388,4068182383),t(2162078206,991336113),t(2614888103,633803317),t(3248222580,3479774868),t(3835390401,2666613458),t(4022224774,944711139),t(264347078,2341262773),t(604807628,2007800933),t(770255983,1495990901),t(1249150122,1856431235),t(1555081692,3175218132),t(1996064986,2198950837),t(2554220882,3999719339),t(2821834349,766784016),t(2952996808,2566594879),t(3210313671,3203337956),t(3336571891,1034457026),t(3584528711,2466948901),t(113926993,3758326383),t(338241895,168717936),t(666307205,1188179964),t(773529912,1546045734),t(1294757372,1522805485),t(1396182291,2643833823),t(1695183700,2343527390),t(1986661051,1014477480),t(2177026350,1206759142),t(2456956037,344077627),t(2730485921,1290863460),t(2820302411,3158454273),t(3259730800,3505952657),t(3345764771,106217008),t(3516065817,3606008344),t(3600352804,1432725776),t(4094571909,1467031594),t(275423344,851169720),t(430227734,3100823752),t(506948616,1363258195),t(659060556,3750685593),t(883997877,3785050280),t(958139571,3318307427),t(1322822218,3812723403),t(1537002063,2003034995),t(1747873779,3602036899),t(1955562222,1575990012),t(2024104815,1125592928),t(2227730452,2716904306),t(2361852424,442776044),t(2428436474,593698344),t(2756734187,3733110249),t(3204031479,2999351573),t(3329325298,3815920427),t(3391569614,3928383900),t(3515267271,566280711),t(3940187606,3454069534),t(4118630271,4000239992),t(116418474,1914138554),t(174292421,2731055270),t(289380356,3203993006),t(460393269,320620315),t(685471733,587496836),t(852142971,1086792851),t(1017036298,365543100),t(1126000580,2618297676),t(1288033470,3409855158),t(1501505948,4234509866),t(1607167915,987167468),t(1816402316,1246189591)],a=[],u=0;80>u;u++)a[u]=t();o=o.SHA512=r.extend({_doReset:function t(){this._hash=new i.init([new n.init(1779033703,4089235720),new n.init(3144134277,2227873595),new n.init(1013904242,4271175723),new n.init(2773480762,1595750129),new n.init(1359893119,2917565137),new n.init(2600822924,725511199),new n.init(528734635,4215389547),new n.init(1541459225,327033209)])},_doProcessBlock:function t(e,r){for(var n=(l=this._hash.words)[0],i=l[1],o=l[2],u=l[3],c=l[4],f=l[5],h=l[6],l=l[7],p=n.high,d=n.low,g=i.high,v=i.low,y=o.high,m=o.low,_=u.high,S=u.low,b=c.high,w=c.low,F=f.high,E=f.low,x=h.high,A=h.low,k=l.high,P=l.low,C=p,T=d,R=g,I=v,O=y,D=m,N=_,L=S,M=b,j=w,U=F,B=E,H=x,V=A,K=k,q=P,W=0;80>W;W++){var J=a[W];if(16>W)var z=J.high=0|e[r+2*W],Y=J.low=0|e[r+2*W+1];else{z=((Y=(z=a[W-15]).high)>>>1|(G=z.low)<<31)^(Y>>>8|G<<24)^Y>>>7;var G=(G>>>1|Y<<31)^(G>>>8|Y<<24)^(G>>>7|Y<<25),X=((Y=(X=a[W-2]).high)>>>19|($=X.low)<<13)^(Y<<3|$>>>29)^Y>>>6,$=($>>>19|Y<<13)^($<<3|Y>>>29)^($>>>6|Y<<26),Q=(Y=a[W-7]).high,Z=(tt=a[W-16]).high,tt=tt.low;z=(z=(z=z+Q+((Y=G+Y.low)>>>0>>0?1:0))+X+((Y=Y+$)>>>0<$>>>0?1:0))+Z+((Y=Y+tt)>>>0>>0?1:0);J.high=z,J.low=Y}Q=M&U^~M&H,tt=j&B^~j&V,J=C&R^C&O^R&O;var et=T&I^T&D^I&D,rt=(G=(C>>>28|T<<4)^(C<<30|T>>>2)^(C<<25|T>>>7),X=(T>>>28|C<<4)^(T<<30|C>>>2)^(T<<25|C>>>7),($=s[W]).high),nt=$.low;Z=(Z=(Z=(Z=K+((M>>>14|j<<18)^(M>>>18|j<<14)^(M<<23|j>>>9))+(($=q+((j>>>14|M<<18)^(j>>>18|M<<14)^(j<<23|M>>>9)))>>>0>>0?1:0))+Q+(($=$+tt)>>>0>>0?1:0))+rt+(($=$+nt)>>>0>>0?1:0))+z+(($=$+Y)>>>0>>0?1:0),J=G+J+((Y=X+et)>>>0>>0?1:0),K=H,q=V,H=U,V=B,U=M,B=j,M=N+Z+((j=L+$|0)>>>0>>0?1:0)|0,N=O,L=D,O=R,D=I,R=C,I=T,C=Z+J+((T=$+Y|0)>>>0<$>>>0?1:0)|0}d=n.low=d+T,n.high=p+C+(d>>>0>>0?1:0),v=i.low=v+I,i.high=g+R+(v>>>0>>0?1:0),m=o.low=m+D,o.high=y+O+(m>>>0>>0?1:0),S=u.low=S+L,u.high=_+N+(S>>>0>>0?1:0),w=c.low=w+j,c.high=b+M+(w>>>0>>0?1:0),E=f.low=E+B,f.high=F+U+(E>>>0>>0?1:0),A=h.low=A+V,h.high=x+H+(A>>>0>>0?1:0),P=l.low=P+q,l.high=k+K+(P>>>0>>0?1:0)},_doFinalize:function t(){var e=this._data,r=e.words,n=8*this._nDataBytes,i=8*e.sigBytes;return r[i>>>5]|=128<<24-i%32,r[30+(i+128>>>10<<5)]=Math.floor(n/4294967296),r[31+(i+128>>>10<<5)]=n,e.sigBytes=4*r.length,this._process(),this._hash.toX32()},clone:function t(){var e=r.clone.call(this);return e._hash=this._hash.clone(),e},blockSize:32}),e.SHA512=r._createHelper(o),e.HmacSHA512=r._createHmacHelper(o)}(),function(){var t=y,e=(i=t.x64).Word,r=i.WordArray,n=(i=t.algo).SHA512,i=i.SHA384=n.extend({_doReset:function t(){this._hash=new r.init([new e.init(3418070365,3238371032),new e.init(1654270250,914150663),new e.init(2438529370,812702999),new e.init(355462360,4144912697),new e.init(1731405415,4290775857),new e.init(2394180231,1750603025),new e.init(3675008525,1694076839),new e.init(1203062813,3204075428)])},_doFinalize:function t(){var e=n._doFinalize.call(this);return e.sigBytes-=16,e}});t.SHA384=n._createHelper(i),t.HmacSHA384=n._createHmacHelper(i)}(); +/*! (c) Tom Wu | http://www-cs-students.stanford.edu/~tjw/jsbn/ + */ +var m,_="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",S="=";function b(t){var e,r,n="";for(e=0;e+3<=t.length;e+=3)r=parseInt(t.substring(e,e+3),16),n+=_.charAt(r>>6)+_.charAt(63&r);if(e+1==t.length?(r=parseInt(t.substring(e,e+1),16),n+=_.charAt(r<<2)):e+2==t.length&&(r=parseInt(t.substring(e,e+2),16),n+=_.charAt(r>>2)+_.charAt((3&r)<<4)),S)for(;(3&n.length)>0;)n+=S;return n}function w(t){var e,r,n,i="",o=0;for(e=0;e>2),r=3&n,o=1):1==o?(i+=O(r<<2|n>>4),r=15&n,o=2):2==o?(i+=O(r),i+=O(n>>2),r=3&n,o=3):(i+=O(r<<2|n>>4),i+=O(15&n),o=0));return 1==o&&(i+=O(r<<2)),i}function F(t){var e,r=w(t),n=new Array;for(e=0;2*e>15;--o>=0;){var u=32767&this[t],c=this[t++]>>15,f=a*u+c*s;i=((u=s*u+((32767&f)<<15)+r[n]+(1073741823&i))>>>30)+(f>>>15)+a*c+(i>>>30),r[n++]=1073741823&u}return i},m=30):"Netscape"!=n.appName?(E.prototype.am=function k(t,e,r,n,i,o){for(;--o>=0;){var s=e*this[t++]+r[n]+i;i=Math.floor(s/67108864),r[n++]=67108863&s}return i},m=26):(E.prototype.am=function P(t,e,r,n,i,o){for(var s=16383&e,a=e>>14;--o>=0;){var u=16383&this[t],c=this[t++]>>14,f=a*u+c*s;i=((u=s*u+((16383&f)<<14)+r[n]+i)>>28)+(f>>14)+a*c,r[n++]=268435455&u}return i},m=28),E.prototype.DB=m,E.prototype.DM=(1<>>16)&&(t=e,r+=16),0!=(e=t>>8)&&(t=e,r+=8),0!=(e=t>>4)&&(t=e,r+=4),0!=(e=t>>2)&&(t=e,r+=2),0!=(e=t>>1)&&(t=e,r+=1),r}function M(t){this.m=t}function j(t){this.m=t,this.mp=t.invDigit(),this.mpl=32767&this.mp,this.mph=this.mp>>15,this.um=(1<>=16,e+=16),0==(255&t)&&(t>>=8,e+=8),0==(15&t)&&(t>>=4,e+=4),0==(3&t)&&(t>>=2,e+=2),0==(1&t)&&++e,e}function q(t){for(var e=0;0!=t;)t&=t-1,++e;return e}function W(){}function J(t){return t}function z(t){this.r2=x(),this.q3=x(),E.ONE.dlShiftTo(2*t.t,this.r2),this.mu=this.r2.divide(t),this.m=t}M.prototype.convert=function Y(t){return t.s<0||t.compareTo(this.m)>=0?t.mod(this.m):t},M.prototype.revert=function G(t){return t},M.prototype.reduce=function X(t){t.divRemTo(this.m,null,t)},M.prototype.mulTo=function $(t,e,r){t.multiplyTo(e,r),this.reduce(r)},M.prototype.sqrTo=function Q(t,e){t.squareTo(e),this.reduce(e)},j.prototype.convert=function Z(t){var e=x();return t.abs().dlShiftTo(this.m.t,e),e.divRemTo(this.m,null,e),t.s<0&&e.compareTo(E.ZERO)>0&&this.m.subTo(e,e),e},j.prototype.revert=function tt(t){var e=x();return t.copyTo(e),this.reduce(e),e},j.prototype.reduce=function et(t){for(;t.t<=this.mt2;)t[t.t++]=0;for(var e=0;e>15)*this.mpl&this.um)<<15)&t.DM;for(t[r=e+this.m.t]+=this.m.am(0,n,t,e,0,this.m.t);t[r]>=t.DV;)t[r]-=t.DV,t[++r]++}t.clamp(),t.drShiftTo(this.m.t,t),t.compareTo(this.m)>=0&&t.subTo(this.m,t)},j.prototype.mulTo=function rt(t,e,r){t.multiplyTo(e,r),this.reduce(r)},j.prototype.sqrTo=function nt(t,e){t.squareTo(e),this.reduce(e)},E.prototype.copyTo=function it(t){for(var e=this.t-1;e>=0;--e)t[e]=this[e];t.t=this.t,t.s=this.s},E.prototype.fromInt=function ot(t){this.t=1,this.s=t<0?-1:0,t>0?this[0]=t:t<-1?this[0]=t+this.DV:this.t=0},E.prototype.fromString=function st(t,e){var r;if(16==e)r=4;else if(8==e)r=3;else if(256==e)r=8;else if(2==e)r=1;else if(32==e)r=5;else{if(4!=e)return void this.fromRadix(t,e);r=2}this.t=0,this.s=0;for(var n=t.length,i=!1,o=0;--n>=0;){var s=8==r?255&t[n]:D(t,n);s<0?"-"==t.charAt(n)&&(i=!0):(i=!1,0==o?this[this.t++]=s:o+r>this.DB?(this[this.t-1]|=(s&(1<>this.DB-o):this[this.t-1]|=s<=this.DB&&(o-=this.DB))}8==r&&0!=(128&t[0])&&(this.s=-1,o>0&&(this[this.t-1]|=(1<0&&this[this.t-1]==t;)--this.t},E.prototype.dlShiftTo=function ut(t,e){var r;for(r=this.t-1;r>=0;--r)e[r+t]=this[r];for(r=t-1;r>=0;--r)e[r]=0;e.t=this.t+t,e.s=this.s},E.prototype.drShiftTo=function ct(t,e){for(var r=t;r=0;--r)e[r+s+1]=this[r]>>i|a,a=(this[r]&o)<=0;--r)e[r]=0;e[s]=a,e.t=this.t+s+1,e.s=this.s,e.clamp()},E.prototype.rShiftTo=function ht(t,e){e.s=this.s;var r=Math.floor(t/this.DB);if(r>=this.t)e.t=0;else{var n=t%this.DB,i=this.DB-n,o=(1<>n;for(var s=r+1;s>n;n>0&&(e[this.t-r-1]|=(this.s&o)<>=this.DB;if(t.t>=this.DB;n+=this.s}else{for(n+=this.s;r>=this.DB;n-=t.s}e.s=n<0?-1:0,n<-1?e[r++]=this.DV+n:n>0&&(e[r++]=n),e.t=r,e.clamp()},E.prototype.multiplyTo=function pt(t,e){var r=this.abs(),n=t.abs(),i=r.t;for(e.t=i+n.t;--i>=0;)e[i]=0;for(i=0;i=0;)t[r]=0;for(r=0;r=e.DV&&(t[r+e.t]-=e.DV,t[r+e.t+1]=1)}t.t>0&&(t[t.t-1]+=e.am(r,e[r],t,2*r,0,1)),t.s=0,t.clamp()},E.prototype.divRemTo=function gt(t,e,r){var n=t.abs();if(!(n.t<=0)){var i=this.abs();if(i.t0?(n.lShiftTo(u,o),i.lShiftTo(u,r)):(n.copyTo(o),i.copyTo(r));var c=o.t,f=o[c-1];if(0!=f){var h=f*(1<1?o[c-2]>>this.F2:0),l=this.FV/h,p=(1<=0&&(r[r.t++]=1,r.subTo(y,r)),E.ONE.dlShiftTo(c,y),y.subTo(o,o);o.t=0;){var m=r[--g]==f?this.DM:Math.floor(r[g]*l+(r[g-1]+d)*p);if((r[g]+=o.am(0,m,r,v,0,c))0&&r.rShiftTo(u,r),s<0&&E.ZERO.subTo(r,r)}}},E.prototype.invDigit=function vt(){if(this.t<1)return 0;var t=this[0];if(0==(1&t))return 0;var e=3&t;return(e=(e=(e=(e=e*(2-(15&t)*e)&15)*(2-(255&t)*e)&255)*(2-((65535&t)*e&65535))&65535)*(2-t*e%this.DV)%this.DV)>0?this.DV-e:-e},E.prototype.isEven=function yt(){return 0==(this.t>0?1&this[0]:this.s)},E.prototype.exp=function mt(t,e){if(t>4294967295||t<1)return E.ONE;var r=x(),n=x(),i=e.convert(this),o=L(t)-1;for(i.copyTo(r);--o>=0;)if(e.sqrTo(r,n),(t&1<0)e.mulTo(n,i,r);else{var s=r;r=n,n=s}return e.revert(r)},E.prototype.toString=function _t(t){if(this.s<0)return"-"+this.negate().toString(t);var e;if(16==t)e=4;else if(8==t)e=3;else if(2==t)e=1;else if(32==t)e=5;else{if(4!=t)return this.toRadix(t);e=2}var r,n=(1<0)for(a>a)>0&&(i=!0,o=O(r));s>=0;)a>(a+=this.DB-e)):(r=this[s]>>(a-=e)&n,a<=0&&(a+=this.DB,--s)),r>0&&(i=!0),i&&(o+=O(r));return i?o:"0"},E.prototype.negate=function St(){var t=x();return E.ZERO.subTo(this,t),t},E.prototype.abs=function bt(){return this.s<0?this.negate():this},E.prototype.compareTo=function wt(t){var e=this.s-t.s;if(0!=e)return e;var r=this.t;if(0!=(e=r-t.t))return this.s<0?-e:e;for(;--r>=0;)if(0!=(e=this[r]-t[r]))return e;return 0},E.prototype.bitLength=function Ft(){return this.t<=0?0:this.DB*(this.t-1)+L(this[this.t-1]^this.s&this.DM)},E.prototype.mod=function Et(t){var e=x();return this.abs().divRemTo(t,null,e),this.s<0&&e.compareTo(E.ZERO)>0&&t.subTo(e,e),e},E.prototype.modPowInt=function xt(t,e){var r;return r=t<256||e.isEven()?new M(e):new j(e),this.exp(t,r)},E.ZERO=N(0),E.ONE=N(1),W.prototype.convert=J,W.prototype.revert=J,W.prototype.mulTo=function At(t,e,r){t.multiplyTo(e,r)},W.prototype.sqrTo=function kt(t,e){t.squareTo(e)},z.prototype.convert=function Pt(t){if(t.s<0||t.t>2*this.m.t)return t.mod(this.m);if(t.compareTo(this.m)<0)return t;var e=x();return t.copyTo(e),this.reduce(e),e},z.prototype.revert=function Ct(t){return t},z.prototype.reduce=function Tt(t){for(t.drShiftTo(this.m.t-1,this.r2),t.t>this.m.t+1&&(t.t=this.m.t+1,t.clamp()),this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3),this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);t.compareTo(this.r2)<0;)t.dAddOffset(1,this.m.t+1);for(t.subTo(this.r2,t);t.compareTo(this.m)>=0;)t.subTo(this.m,t)},z.prototype.mulTo=function Rt(t,e,r){t.multiplyTo(e,r),this.reduce(r)},z.prototype.sqrTo=function It(t,e){t.squareTo(e),this.reduce(e)};var Ot=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997],Dt=(1<<26)/Ot[Ot.length-1]; +/*! (c) Tom Wu | http://www-cs-students.stanford.edu/~tjw/jsbn/ + */ +function Nt(){this.i=0,this.j=0,this.S=new Array}E.prototype.chunkSize=function Lt(t){return Math.floor(Math.LN2*this.DB/Math.log(t))},E.prototype.toRadix=function Mt(t){if(null==t&&(t=10),0==this.signum()||t<2||t>36)return"0";var e=this.chunkSize(t),r=Math.pow(t,e),n=N(r),i=x(),o=x(),s="";for(this.divRemTo(n,i,o);i.signum()>0;)s=(r+o.intValue()).toString(t).substr(1)+s,i.divRemTo(n,i,o);return o.intValue().toString(t)+s},E.prototype.fromRadix=function jt(t,e){this.fromInt(0),null==e&&(e=10);for(var r=this.chunkSize(e),n=Math.pow(e,r),i=!1,o=0,s=0,a=0;a=r&&(this.dMultiply(n),this.dAddOffset(s,0),o=0,s=0))}o>0&&(this.dMultiply(Math.pow(e,o)),this.dAddOffset(s,0)),i&&E.ZERO.subTo(this,this)},E.prototype.fromNumber=function Ut(t,e,r){if("number"==typeof e)if(t<2)this.fromInt(1);else for(this.fromNumber(t,r),this.testBit(t-1)||this.bitwiseTo(E.ONE.shiftLeft(t-1),B,this),this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(e);)this.dAddOffset(2,0),this.bitLength()>t&&this.subTo(E.ONE.shiftLeft(t-1),this);else{var n=new Array,i=7&t;n.length=1+(t>>3),e.nextBytes(n),i>0?n[0]&=(1<>=this.DB;if(t.t>=this.DB;n+=this.s}else{for(n+=this.s;r>=this.DB;n+=t.s}e.s=n<0?-1:0,n>0?e[r++]=n:n<-1&&(e[r++]=this.DV+n),e.t=r,e.clamp()},E.prototype.dMultiply=function Kt(t){this[this.t]=this.am(0,t-1,this,0,0,this.t),++this.t,this.clamp()},E.prototype.dAddOffset=function qt(t,e){if(0!=t){for(;this.t<=e;)this[this.t++]=0;for(this[e]+=t;this[e]>=this.DV;)this[e]-=this.DV,++e>=this.t&&(this[this.t++]=0),++this[e]}},E.prototype.multiplyLowerTo=function Wt(t,e,r){var n,i=Math.min(this.t+t.t,e);for(r.s=0,r.t=i;i>0;)r[--i]=0;for(n=r.t-this.t;i=0;)r[n]=0;for(n=Math.max(e-this.t,0);n0)if(0==e)r=this[0]%t;else for(var n=this.t-1;n>=0;--n)r=(e*r+this[n])%t;return r},E.prototype.millerRabin=function Yt(t){var e=this.subtract(E.ONE),r=e.getLowestSetBit();if(r<=0)return!1;var n=e.shiftRight(r);(t=t+1>>1)>Ot.length&&(t=Ot.length);for(var i=x(),o=0;o>24},E.prototype.shortValue=function Qt(){return 0==this.t?this.s:this[0]<<16>>16},E.prototype.signum=function Zt(){return this.s<0?-1:this.t<=0||1==this.t&&this[0]<=0?0:1},E.prototype.toByteArray=function te(){var t=this.t,e=new Array;e[0]=this.s;var r,n=this.DB-t*this.DB%8,i=0;if(t-- >0)for(n>n)!=(this.s&this.DM)>>n&&(e[i++]=r|this.s<=0;)n<8?(r=(this[t]&(1<>(n+=this.DB-8)):(r=this[t]>>(n-=8)&255,n<=0&&(n+=this.DB,--t)),0!=(128&r)&&(r|=-256),0==i&&(128&this.s)!=(128&r)&&++i,(i>0||r!=this.s)&&(e[i++]=r);return e},E.prototype.equals=function ee(t){return 0==this.compareTo(t)},E.prototype.min=function re(t){return this.compareTo(t)<0?this:t},E.prototype.max=function ne(t){return this.compareTo(t)>0?this:t},E.prototype.and=function ie(t){var e=x();return this.bitwiseTo(t,U,e),e},E.prototype.or=function oe(t){var e=x();return this.bitwiseTo(t,B,e),e},E.prototype.xor=function se(t){var e=x();return this.bitwiseTo(t,H,e),e},E.prototype.andNot=function ae(t){var e=x();return this.bitwiseTo(t,V,e),e},E.prototype.not=function ue(){for(var t=x(),e=0;e=this.t?0!=this.s:0!=(this[e]&1<1){var f=x();for(n.sqrTo(s[1],f);a<=c;)s[a]=x(),n.mulTo(f,s[a-2],s[a]),a+=2}var h,l,p=t.t-1,d=!0,g=x();for(i=L(t[p])-1;p>=0;){for(i>=u?h=t[p]>>i-u&c:(h=(t[p]&(1<0&&(h|=t[p-1]>>this.DB+i-u)),a=r;0==(1&h);)h>>=1,--a;if((i-=a)<0&&(i+=this.DB,--p),d)s[h].copyTo(o),d=!1;else{for(;a>1;)n.sqrTo(o,g),n.sqrTo(g,o),a-=2;a>0?n.sqrTo(o,g):(l=o,o=g,g=l),n.mulTo(g,s[h],o)}for(;p>=0&&0==(t[p]&1<=0?(r.subTo(n,r),e&&i.subTo(s,i),o.subTo(a,o)):(n.subTo(r,n),e&&s.subTo(i,s),a.subTo(o,a))}return 0!=n.compareTo(E.ONE)?E.ZERO:a.compareTo(t)>=0?a.subtract(t):a.signum()<0?(a.addTo(t,a),a.signum()<0?a.add(t):a):a},E.prototype.pow=function xe(t){return this.exp(t,new W)},E.prototype.gcd=function Ae(t){var e=this.s<0?this.negate():this.clone(),r=t.s<0?t.negate():t.clone();if(e.compareTo(r)<0){var n=e;e=r,r=n}var i=e.getLowestSetBit(),o=r.getLowestSetBit();if(o<0)return e;for(i0&&(e.rShiftTo(o,e),r.rShiftTo(o,r));e.signum()>0;)(i=e.getLowestSetBit())>0&&e.rShiftTo(i,e),(i=r.getLowestSetBit())>0&&r.rShiftTo(i,r),e.compareTo(r)>=0?(e.subTo(r,e),e.rShiftTo(1,e)):(r.subTo(e,r),r.rShiftTo(1,r));return o>0&&r.lShiftTo(o,r),r},E.prototype.isProbablePrime=function ke(t){var e,r=this.abs();if(1==r.t&&r[0]<=Ot[Ot.length-1]){for(e=0;e>8&255,Ie[Oe++]^=e>>16&255,Ie[Oe++]^=e>>24&255,Oe>=De&&(Oe-=De)}((new Date).getTime())}if(null==Ie){var Le;if(Ie=new Array,Oe=0,void 0!==i&&(void 0!==i.crypto||void 0!==i.msCrypto)){var Me=i.crypto||i.msCrypto;if(Me.getRandomValues){var je=new Uint8Array(32);for(Me.getRandomValues(je),Le=0;Le<32;++Le)Ie[Oe++]=je[Le]}else if("Netscape"==n.appName&&n.appVersion<"5"){var Ue=i.crypto.random(32);for(Le=0;Le>>8,Ie[Oe++]=255&Le;Oe=0,Ne()}function Be(){if(null==Re){for(Ne(),(Re=function t(){return new Nt}()).init(Ie),Oe=0;Oe>24,(16711680&i)>>16,(65280&i)>>8,255&i]))),i+=1;return n}function qe(){this.n=null,this.e=0,this.d=null,this.p=null,this.q=null,this.dmp1=null,this.dmq1=null,this.coeff=null} +/*! (c) Tom Wu | http://www-cs-students.stanford.edu/~tjw/jsbn/ + */ +function We(t,e){this.x=e,this.q=t}function Je(t,e,r,n){this.curve=t,this.x=e,this.y=r,this.z=null==n?E.ONE:n,this.zinv=null}function ze(t,e,r){this.q=t,this.a=this.fromBigInteger(e),this.b=this.fromBigInteger(r),this.infinity=new Je(this,null,null)}He.prototype.nextBytes=function Ye(t){var e;for(e=0;e0&&e.length>0))throw"Invalid RSA public key";this.n=Ve(t,16),this.e=parseInt(e,16)}},qe.prototype.encrypt=function $e(t){var e=function r(t,e){if(e=0&&e>0;){var i=t.charCodeAt(n--);i<128?r[--e]=i:i>127&&i<2048?(r[--e]=63&i|128,r[--e]=i>>6|192):(r[--e]=63&i|128,r[--e]=i>>6&63|128,r[--e]=i>>12|224)}r[--e]=0;for(var o=new He,s=new Array;e>2;){for(s[0]=0;0==s[0];)o.nextBytes(s);r[--e]=s[0]}return r[--e]=2,r[--e]=0,new E(r)}(t,this.n.bitLength()+7>>3);if(null==e)return null;var n=this.doPublic(e);if(null==n)return null;var i=n.toString(16);return 0==(1&i.length)?i:"0"+i},qe.prototype.encryptOAEP=function Qe(t,e,r){var n=function i(t,e,r,n){var i=Er.crypto.MessageDigest,o=Er.crypto.Util,s=null;if(r||(r="sha1"),"string"==typeof r&&(s=i.getCanonicalAlgName(r),n=i.getHashLength(s),r=function t(e){return jr(o.hashHex(Ur(e),s))}),t.length+2*n+2>e)throw"Message too long for RSA";var a,u="";for(a=0;a>3,e,r);if(null==n)return null;var o=this.doPublic(n);if(null==o)return null;var s=o.toString(16);return 0==(1&s.length)?s:"0"+s},qe.prototype.type="RSA",We.prototype.equals=function Ze(t){return t==this||this.q.equals(t.q)&&this.x.equals(t.x)},We.prototype.toBigInteger=function tr(){return this.x},We.prototype.negate=function er(){return new We(this.q,this.x.negate().mod(this.q))},We.prototype.add=function rr(t){return new We(this.q,this.x.add(t.toBigInteger()).mod(this.q))},We.prototype.subtract=function nr(t){return new We(this.q,this.x.subtract(t.toBigInteger()).mod(this.q))},We.prototype.multiply=function ir(t){return new We(this.q,this.x.multiply(t.toBigInteger()).mod(this.q))},We.prototype.square=function or(){return new We(this.q,this.x.square().mod(this.q))},We.prototype.divide=function sr(t){return new We(this.q,this.x.multiply(t.toBigInteger().modInverse(this.q)).mod(this.q))},Je.prototype.getX=function ar(){return null==this.zinv&&(this.zinv=this.z.modInverse(this.curve.q)),this.curve.fromBigInteger(this.x.toBigInteger().multiply(this.zinv).mod(this.curve.q))},Je.prototype.getY=function ur(){return null==this.zinv&&(this.zinv=this.z.modInverse(this.curve.q)),this.curve.fromBigInteger(this.y.toBigInteger().multiply(this.zinv).mod(this.curve.q))},Je.prototype.equals=function cr(t){return t==this||(this.isInfinity()?t.isInfinity():t.isInfinity()?this.isInfinity():!!t.y.toBigInteger().multiply(this.z).subtract(this.y.toBigInteger().multiply(t.z)).mod(this.curve.q).equals(E.ZERO)&&t.x.toBigInteger().multiply(this.z).subtract(this.x.toBigInteger().multiply(t.z)).mod(this.curve.q).equals(E.ZERO))},Je.prototype.isInfinity=function fr(){return null==this.x&&null==this.y||this.z.equals(E.ZERO)&&!this.y.toBigInteger().equals(E.ZERO)},Je.prototype.negate=function hr(){return new Je(this.curve,this.x,this.y.negate(),this.z)},Je.prototype.add=function lr(t){if(this.isInfinity())return t;if(t.isInfinity())return this;var e=t.y.toBigInteger().multiply(this.z).subtract(this.y.toBigInteger().multiply(t.z)).mod(this.curve.q),r=t.x.toBigInteger().multiply(this.z).subtract(this.x.toBigInteger().multiply(t.z)).mod(this.curve.q);if(E.ZERO.equals(r))return E.ZERO.equals(e)?this.twice():this.curve.getInfinity();var n=new E("3"),i=this.x.toBigInteger(),o=this.y.toBigInteger(),s=(t.x.toBigInteger(),t.y.toBigInteger(),r.square()),a=s.multiply(r),u=i.multiply(s),c=e.square().multiply(this.z),f=c.subtract(u.shiftLeft(1)).multiply(t.z).subtract(a).multiply(r).mod(this.curve.q),h=u.multiply(n).multiply(e).subtract(o.multiply(a)).subtract(c.multiply(e)).multiply(t.z).add(e.multiply(a)).mod(this.curve.q),l=a.multiply(this.z).multiply(t.z).mod(this.curve.q);return new Je(this.curve,this.curve.fromBigInteger(f),this.curve.fromBigInteger(h),l)},Je.prototype.twice=function pr(){if(this.isInfinity())return this;if(0==this.y.toBigInteger().signum())return this.curve.getInfinity();var t=new E("3"),e=this.x.toBigInteger(),r=this.y.toBigInteger(),n=r.multiply(this.z),i=n.multiply(r).mod(this.curve.q),o=this.curve.a.toBigInteger(),s=e.square().multiply(t);E.ZERO.equals(o)||(s=s.add(this.z.square().multiply(o)));var a=(s=s.mod(this.curve.q)).square().subtract(e.shiftLeft(3).multiply(i)).shiftLeft(1).multiply(n).mod(this.curve.q),u=s.multiply(t).multiply(e).subtract(i.shiftLeft(1)).shiftLeft(2).multiply(i).subtract(s.square().multiply(s)).mod(this.curve.q),c=n.square().multiply(n).shiftLeft(3).mod(this.curve.q);return new Je(this.curve,this.curve.fromBigInteger(a),this.curve.fromBigInteger(u),c)},Je.prototype.multiply=function dr(t){if(this.isInfinity())return this;if(0==t.signum())return this.curve.getInfinity();var e,r=t,n=r.multiply(new E("3")),i=this.negate(),o=this;for(e=n.bitLength()-2;e>0;--e){o=o.twice();var s=n.testBit(e);s!=r.testBit(e)&&(o=o.add(s?this:i))}return o},Je.prototype.multiplyTwo=function gr(t,e,r){var n;n=t.bitLength()>r.bitLength()?t.bitLength()-1:r.bitLength()-1;for(var i=this.curve.getInfinity(),o=this.add(e);n>=0;)i=i.twice(),t.testBit(n)?i=r.testBit(n)?i.add(o):i.add(this):r.testBit(n)&&(i=i.add(e)),--n;return i},ze.prototype.getQ=function vr(){return this.q},ze.prototype.getA=function yr(){return this.a},ze.prototype.getB=function mr(){return this.b},ze.prototype.equals=function _r(t){return t==this||this.q.equals(t.q)&&this.a.equals(t.a)&&this.b.equals(t.b)},ze.prototype.getInfinity=function Sr(){return this.infinity},ze.prototype.fromBigInteger=function br(t){return new We(this.q,t)},ze.prototype.decodePointHex=function wr(t){switch(parseInt(t.substr(0,2),16)){case 0:return this.infinity;case 2:case 3:return null;case 4:case 6:case 7:var e=(t.length-2)/2,r=t.substr(2,e),n=t.substr(e+2,e);return new Je(this,this.fromBigInteger(new E(r,16)),this.fromBigInteger(new E(n,16)));default:return null}}, +/*! (c) Stefan Thomas | https://github.com/bitcoinjs/bitcoinjs-lib + */ +We.prototype.getByteLength=function(){return Math.floor((this.toBigInteger().bitLength()+7)/8)},Je.prototype.getEncoded=function(t){var e=function t(e,r){var n=e.toByteArrayUnsigned();if(rn.length;)n.unshift(0);return n},r=this.getX().toBigInteger(),n=this.getY().toBigInteger(),i=e(r,32);return t?n.isEven()?i.unshift(2):i.unshift(3):(i.unshift(4),i=i.concat(e(n,32))),i},Je.decodeFrom=function(t,e){e[0];var r=e.length-1,n=e.slice(1,1+r/2),i=e.slice(1+r/2,1+r);n.unshift(0),i.unshift(0);var o=new E(n),s=new E(i);return new Je(t,t.fromBigInteger(o),t.fromBigInteger(s))},Je.decodeFromHex=function(t,e){e.substr(0,2);var r=e.length-2,n=e.substr(2,r/2),i=e.substr(2+r/2,r/2),o=new E(n,16),s=new E(i,16);return new Je(t,t.fromBigInteger(o),t.fromBigInteger(s))},Je.prototype.add2D=function(t){if(this.isInfinity())return t;if(t.isInfinity())return this;if(this.x.equals(t.x))return this.y.equals(t.y)?this.twice():this.curve.getInfinity();var e=t.x.subtract(this.x),r=t.y.subtract(this.y).divide(e),n=r.square().subtract(this.x).subtract(t.x),i=r.multiply(this.x.subtract(n)).subtract(this.y);return new Je(this.curve,n,i)},Je.prototype.twice2D=function(){if(this.isInfinity())return this;if(0==this.y.toBigInteger().signum())return this.curve.getInfinity();var t=this.curve.fromBigInteger(E.valueOf(2)),e=this.curve.fromBigInteger(E.valueOf(3)),r=this.x.square().multiply(e).add(this.curve.a).divide(this.y.multiply(t)),n=r.square().subtract(this.x.multiply(t)),i=r.multiply(this.x.subtract(n)).subtract(this.y);return new Je(this.curve,n,i)},Je.prototype.multiply2D=function(t){if(this.isInfinity())return this;if(0==t.signum())return this.curve.getInfinity();var e,r=t,n=r.multiply(new E("3")),i=this.negate(),o=this;for(e=n.bitLength()-2;e>0;--e){o=o.twice();var s=n.testBit(e);s!=r.testBit(e)&&(o=o.add2D(s?this:i))}return o},Je.prototype.isOnCurve=function(){var t=this.getX().toBigInteger(),e=this.getY().toBigInteger(),r=this.curve.getA().toBigInteger(),n=this.curve.getB().toBigInteger(),i=this.curve.getQ(),o=e.multiply(e).mod(i),s=t.multiply(t).multiply(t).add(r.multiply(t)).add(n).mod(i);return o.equals(s)},Je.prototype.toString=function(){return"("+this.getX().toBigInteger().toString()+","+this.getY().toBigInteger().toString()+")"},Je.prototype.validate=function(){var t=this.curve.getQ();if(this.isInfinity())throw new Error("Point is at infinity.");var e=this.getX().toBigInteger(),r=this.getY().toBigInteger();if(e.compareTo(E.ONE)<0||e.compareTo(t.subtract(E.ONE))>0)throw new Error("x coordinate out of bounds");if(r.compareTo(E.ONE)<0||r.compareTo(t.subtract(E.ONE))>0)throw new Error("y coordinate out of bounds");if(!this.isOnCurve())throw new Error("Point is not on the curve.");if(this.multiply(t).isInfinity())throw new Error("Point is not a scalar multiple of G.");return!0}; +/*! Mike Samuel (c) 2009 | code.google.com/p/json-sans-eval + */ +var Fr=function(){var t=new RegExp('(?:false|true|null|[\\{\\}\\[\\]]|(?:-?\\b(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?\\b)|(?:"(?:[^\\0-\\x08\\x0a-\\x1f"\\\\]|\\\\(?:["/\\\\bfnrt]|u[0-9A-Fa-f]{4}))*"))',"g"),e=new RegExp("\\\\(?:([^u])|u(.{4}))","g"),n={'"':'"',"/":"/","\\":"\\",b:"\b",f:"\f",n:"\n",r:"\r",t:"\t"};function i(t,e,r){return e?n[e]:String.fromCharCode(parseInt(r,16))}var o=new String(""),s=(Object,Array,Object.hasOwnProperty);return function(n,a){var u,c,f=n.match(t),h=f[0],l=!1;"{"===h?u={}:"["===h?u=[]:(u=[],l=!0);for(var p=[u],d=1-l,g=f.length;d=0;)delete i[o[f]]}return a.call(e,n,i)}({"":u},"")}return u}}();void 0!==Er&&Er||(e.KJUR=Er={}),void 0!==Er.asn1&&Er.asn1||(Er.asn1={}),Er.asn1.ASN1Util=new function(){this.integerToByteHex=function(t){var e=t.toString(16);return e.length%2==1&&(e="0"+e),e},this.bigIntToMinTwosComplementsHex=function(t){var e=t.toString(16);if("-"!=e.substr(0,1))e.length%2==1?e="0"+e:e.match(/^[0-7]/)||(e="00"+e);else{var r=e.substr(1).length;r%2==1?r+=1:e.match(/^[0-7]/)||(r+=2);for(var n="",i=0;i15)throw"ASN.1 length too long to represent by 8x: n = "+t.toString(16);return(128+r).toString(16)+e},this.getEncodedHex=function(){return(null==this.hTLV||this.isModified)&&(this.hV=this.getFreshValueHex(),this.hL=this.getLengthHexFromValue(),this.hTLV=this.hT+this.hL+this.hV,this.isModified=!1),this.hTLV},this.getValueHex=function(){return this.getEncodedHex(),this.hV},this.getFreshValueHex=function(){return""}},Er.asn1.DERAbstractString=function(t){Er.asn1.DERAbstractString.superclass.constructor.call(this);this.getString=function(){return this.s},this.setString=function(t){this.hTLV=null,this.isModified=!0,this.s=t,this.hV=Lr(this.s).toLowerCase()},this.setStringHex=function(t){this.hTLV=null,this.isModified=!0,this.s=null,this.hV=t},this.getFreshValueHex=function(){return this.hV},void 0!==t&&("string"==typeof t?this.setString(t):void 0!==t.str?this.setString(t.str):void 0!==t.hex&&this.setStringHex(t.hex))},o.lang.extend(Er.asn1.DERAbstractString,Er.asn1.ASN1Object),Er.asn1.DERAbstractTime=function(t){Er.asn1.DERAbstractTime.superclass.constructor.call(this);this.localDateToUTC=function(t){return utc=t.getTime()+6e4*t.getTimezoneOffset(),new Date(utc)},this.formatDate=function(t,e,r){var n=this.zeroPadding,i=this.localDateToUTC(t),o=String(i.getFullYear());"utc"==e&&(o=o.substr(2,2));var s=o+n(String(i.getMonth()+1),2)+n(String(i.getDate()),2)+n(String(i.getHours()),2)+n(String(i.getMinutes()),2)+n(String(i.getSeconds()),2);if(!0===r){var a=i.getMilliseconds();if(0!=a){var u=n(String(a),3);s=s+"."+(u=u.replace(/[0]+$/,""))}}return s+"Z"},this.zeroPadding=function(t,e){return t.length>=e?t:new Array(e-t.length+1).join("0")+t},this.getString=function(){return this.s},this.setString=function(t){this.hTLV=null,this.isModified=!0,this.s=t,this.hV=Rr(t)},this.setByDateValue=function(t,e,r,n,i,o){var s=new Date(Date.UTC(t,e-1,r,n,i,o,0));this.setByDate(s)},this.getFreshValueHex=function(){return this.hV}},o.lang.extend(Er.asn1.DERAbstractTime,Er.asn1.ASN1Object),Er.asn1.DERAbstractStructured=function(t){Er.asn1.DERAbstractString.superclass.constructor.call(this);this.setByASN1ObjectArray=function(t){this.hTLV=null,this.isModified=!0,this.asn1Array=t},this.appendASN1Object=function(t){this.hTLV=null,this.isModified=!0,this.asn1Array.push(t)},this.asn1Array=new Array,void 0!==t&&void 0!==t.array&&(this.asn1Array=t.array)},o.lang.extend(Er.asn1.DERAbstractStructured,Er.asn1.ASN1Object),Er.asn1.DERBoolean=function(){Er.asn1.DERBoolean.superclass.constructor.call(this),this.hT="01",this.hTLV="0101ff"},o.lang.extend(Er.asn1.DERBoolean,Er.asn1.ASN1Object),Er.asn1.DERInteger=function(t){Er.asn1.DERInteger.superclass.constructor.call(this),this.hT="02",this.setByBigInteger=function(t){this.hTLV=null,this.isModified=!0,this.hV=Er.asn1.ASN1Util.bigIntToMinTwosComplementsHex(t)},this.setByInteger=function(t){var e=new E(String(t),10);this.setByBigInteger(e)},this.setValueHex=function(t){this.hV=t},this.getFreshValueHex=function(){return this.hV},void 0!==t&&(void 0!==t.bigint?this.setByBigInteger(t.bigint):void 0!==t.int?this.setByInteger(t.int):"number"==typeof t?this.setByInteger(t):void 0!==t.hex&&this.setValueHex(t.hex))},o.lang.extend(Er.asn1.DERInteger,Er.asn1.ASN1Object),Er.asn1.DERBitString=function(t){if(void 0!==t&&void 0!==t.obj){var e=Er.asn1.ASN1Util.newObject(t.obj);t.hex="00"+e.getEncodedHex()}Er.asn1.DERBitString.superclass.constructor.call(this),this.hT="03",this.setHexValueIncludingUnusedBits=function(t){this.hTLV=null,this.isModified=!0,this.hV=t},this.setUnusedBitsAndHexValue=function(t,e){if(t<0||7i.length&&(i=n[r]);return(t=t.replace(i,"::")).slice(1,-1)}function $r(t){var e="malformed hex value";if(!t.match(/^([0-9A-Fa-f][0-9A-Fa-f]){1,}$/))throw e;if(8!=t.length)return 32==t.length?Xr(t):t;try{return parseInt(t.substr(0,2),16)+"."+parseInt(t.substr(2,2),16)+"."+parseInt(t.substr(4,2),16)+"."+parseInt(t.substr(6,2),16)}catch(t){throw e}}function Qr(t){for(var e=encodeURIComponent(t),r="",n=0;n"7"?"00"+t:t}kr.getLblen=function(t,e){if("8"!=t.substr(e+2,1))return 1;var r=parseInt(t.substr(e+3,1));return 0==r?-1:0=2*o)break;if(a>=200)break;n.push(u),s=u,a++}return n},kr.getNthChildIdx=function(t,e,r){return kr.getChildIdx(t,e)[r]},kr.getIdxbyList=function(t,e,r,n){var i,o,s=kr;if(0==r.length){if(void 0!==n&&t.substr(e,2)!==n)throw"checking tag doesn't match: "+t.substr(e,2)+"!="+n;return e}return i=r.shift(),o=s.getChildIdx(t,e),s.getIdxbyList(t,o[i],r,n)},kr.getTLVbyList=function(t,e,r,n){var i=kr,o=i.getIdxbyList(t,e,r);if(void 0===o)throw"can't find nthList object";if(void 0!==n&&t.substr(o,2)!=n)throw"checking tag doesn't match: "+t.substr(o,2)+"!="+n;return i.getTLV(t,o)},kr.getVbyList=function(t,e,r,n,i){var o,s,a=kr;if(void 0===(o=a.getIdxbyList(t,e,r,n)))throw"can't find nthList object";return s=a.getV(t,o),!0===i&&(s=s.substr(2)),s},kr.hextooidstr=function(t){var e=function t(e,r){return e.length>=r?e:new Array(r-e.length+1).join("0")+e},r=[],n=t.substr(0,2),i=parseInt(n,16);r[0]=new String(Math.floor(i/40)),r[1]=new String(i%40);for(var o=t.substr(2),s=[],a=0;a0&&(f=f+"."+u.join(".")),f},kr.dump=function(t,e,r,n){var i=kr,o=i.getV,s=i.dump,a=i.getChildIdx,u=t;t instanceof Er.asn1.ASN1Object&&(u=t.getEncodedHex());var c=function t(e,r){return e.length<=2*r?e:e.substr(0,r)+"..(total "+e.length/2+"bytes).."+e.substr(e.length-r,r)};void 0===e&&(e={ommit_long_octet:32}),void 0===r&&(r=0),void 0===n&&(n="");var f=e.ommit_long_octet;if("01"==u.substr(r,2))return"00"==(h=o(u,r))?n+"BOOLEAN FALSE\n":n+"BOOLEAN TRUE\n";if("02"==u.substr(r,2))return n+"INTEGER "+c(h=o(u,r),f)+"\n";if("03"==u.substr(r,2))return n+"BITSTRING "+c(h=o(u,r),f)+"\n";if("04"==u.substr(r,2)){var h=o(u,r);if(i.isASN1HEX(h)){var l=n+"OCTETSTRING, encapsulates\n";return l+=s(h,e,0,n+" ")}return n+"OCTETSTRING "+c(h,f)+"\n"}if("05"==u.substr(r,2))return n+"NULL\n";if("06"==u.substr(r,2)){var p=o(u,r),d=Er.asn1.ASN1Util.oidHexToInt(p),g=Er.asn1.x509.OID.oid2name(d),v=d.replace(/\./g," ");return""!=g?n+"ObjectIdentifier "+g+" ("+v+")\n":n+"ObjectIdentifier ("+v+")\n"}if("0c"==u.substr(r,2))return n+"UTF8String '"+Mr(o(u,r))+"'\n";if("13"==u.substr(r,2))return n+"PrintableString '"+Mr(o(u,r))+"'\n";if("14"==u.substr(r,2))return n+"TeletexString '"+Mr(o(u,r))+"'\n";if("16"==u.substr(r,2))return n+"IA5String '"+Mr(o(u,r))+"'\n";if("17"==u.substr(r,2))return n+"UTCTime "+Mr(o(u,r))+"\n";if("18"==u.substr(r,2))return n+"GeneralizedTime "+Mr(o(u,r))+"\n";if("30"==u.substr(r,2)){if("3000"==u.substr(r,4))return n+"SEQUENCE {}\n";l=n+"SEQUENCE\n";var y=e;if((2==(S=a(u,r)).length||3==S.length)&&"06"==u.substr(S[0],2)&&"04"==u.substr(S[S.length-1],2)){g=i.oidname(o(u,S[0]));var m=JSON.parse(JSON.stringify(e));m.x509ExtName=g,y=m}for(var _=0;_i)throw"key is too short for SigAlg: keylen="+r+","+e;for(var o="0001",s="00"+n,a="",u=i-o.length-s.length,c=0;c=0)return!1;if(r.compareTo(E.ONE)<0||r.compareTo(i)>=0)return!1;var s=r.modInverse(i),a=t.multiply(s).mod(i),u=e.multiply(s).mod(i);return o.multiply(a).add(n.multiply(u)).getX().toBigInteger().mod(i).equals(e)},this.serializeSig=function(t,e){var r=t.toByteArraySigned(),n=e.toByteArraySigned(),i=[];return i.push(2),i.push(r.length),(i=i.concat(r)).push(2),i.push(n.length),(i=i.concat(n)).unshift(i.length),i.unshift(48),i},this.parseSig=function(t){var e;if(48!=t[0])throw new Error("Signature not a valid DERSequence");if(2!=t[e=2])throw new Error("First element in signature must be a DERInteger");var r=t.slice(e+2,e+2+t[e+1]);if(2!=t[e+=2+t[e+1]])throw new Error("Second element in signature must be a DERInteger");var n=t.slice(e+2,e+2+t[e+1]);return e+=2+t[e+1],{r:E.fromByteArrayUnsigned(r),s:E.fromByteArrayUnsigned(n)}},this.parseSigCompact=function(t){if(65!==t.length)throw"Signature has the wrong length";var e=t[0]-27;if(e<0||e>7)throw"Invalid signature type";var r=this.ecparams.n;return{r:E.fromByteArrayUnsigned(t.slice(1,33)).mod(r),s:E.fromByteArrayUnsigned(t.slice(33,65)).mod(r),i:e}},this.readPKCS5PrvKeyHex=function(t){var e,r,n,i=kr,o=Er.crypto.ECDSA.getName,s=i.getVbyList;if(!1===i.isASN1HEX(t))throw"not ASN.1 hex string";try{e=s(t,0,[2,0],"06"),r=s(t,0,[1],"04");try{n=s(t,0,[3,0],"03").substr(2)}catch(t){}}catch(t){throw"malformed PKCS#1/5 plain ECC private key"}if(this.curveName=o(e),void 0===this.curveName)throw"unsupported curve name";this.setNamedCurve(this.curveName),this.setPublicKeyHex(n),this.setPrivateKeyHex(r),this.isPublic=!1},this.readPKCS8PrvKeyHex=function(t){var e,r,n,i=kr,o=Er.crypto.ECDSA.getName,s=i.getVbyList;if(!1===i.isASN1HEX(t))throw"not ASN.1 hex string";try{s(t,0,[1,0],"06"),e=s(t,0,[1,1],"06"),r=s(t,0,[2,0,1],"04");try{n=s(t,0,[2,0,2,0],"03").substr(2)}catch(t){}}catch(t){throw"malformed PKCS#8 plain ECC private key"}if(this.curveName=o(e),void 0===this.curveName)throw"unsupported curve name";this.setNamedCurve(this.curveName),this.setPublicKeyHex(n),this.setPrivateKeyHex(r),this.isPublic=!1},this.readPKCS8PubKeyHex=function(t){var e,r,n=kr,i=Er.crypto.ECDSA.getName,o=n.getVbyList;if(!1===n.isASN1HEX(t))throw"not ASN.1 hex string";try{o(t,0,[0,0],"06"),e=o(t,0,[0,1],"06"),r=o(t,0,[1],"03").substr(2)}catch(t){throw"malformed PKCS#8 ECC public key"}if(this.curveName=i(e),null===this.curveName)throw"unsupported curve name";this.setNamedCurve(this.curveName),this.setPublicKeyHex(r)},this.readCertPubKeyHex=function(t,e){5!==e&&(e=6);var r,n,i=kr,o=Er.crypto.ECDSA.getName,s=i.getVbyList;if(!1===i.isASN1HEX(t))throw"not ASN.1 hex string";try{r=s(t,0,[0,e,0,1],"06"),n=s(t,0,[0,e,1],"03").substr(2)}catch(t){throw"malformed X.509 certificate ECC public key"}if(this.curveName=o(r),null===this.curveName)throw"unsupported curve name";this.setNamedCurve(this.curveName),this.setPublicKeyHex(n)},void 0!==t&&void 0!==t.curve&&(this.curveName=t.curve),void 0===this.curveName&&(this.curveName="secp256r1"),this.setNamedCurve(this.curveName),void 0!==t&&(void 0!==t.prv&&this.setPrivateKeyHex(t.prv),void 0!==t.pub&&this.setPublicKeyHex(t.pub))},Er.crypto.ECDSA.parseSigHex=function(t){var e=Er.crypto.ECDSA.parseSigHexInHexRS(t);return{r:new E(e.r,16),s:new E(e.s,16)}},Er.crypto.ECDSA.parseSigHexInHexRS=function(t){var e=kr,r=e.getChildIdx,n=e.getV;if("30"!=t.substr(0,2))throw"signature is not a ASN.1 sequence";var i=r(t,0);if(2!=i.length)throw"number of signature ASN.1 sequence elements seem wrong";var o=i[0],s=i[1];if("02"!=t.substr(o,2))throw"1st item of sequene of signature is not ASN.1 integer";if("02"!=t.substr(s,2))throw"2nd item of sequene of signature is not ASN.1 integer";return{r:n(t,o),s:n(t,s)}},Er.crypto.ECDSA.asn1SigToConcatSig=function(t){var e=Er.crypto.ECDSA.parseSigHexInHexRS(t),r=e.r,n=e.s;if("00"==r.substr(0,2)&&r.length%32==2&&(r=r.substr(2)),"00"==n.substr(0,2)&&n.length%32==2&&(n=n.substr(2)),r.length%32==30&&(r="00"+r),n.length%32==30&&(n="00"+n),r.length%32!=0)throw"unknown ECDSA sig r length error";if(n.length%32!=0)throw"unknown ECDSA sig s length error";return r+n},Er.crypto.ECDSA.concatSigToASN1Sig=function(t){if(t.length/2*8%128!=0)throw"unknown ECDSA concatinated r-s sig length error";var e=t.substr(0,t.length/2),r=t.substr(t.length/2);return Er.crypto.ECDSA.hexRSSigToASN1Sig(e,r)},Er.crypto.ECDSA.hexRSSigToASN1Sig=function(t,e){var r=new E(t,16),n=new E(e,16);return Er.crypto.ECDSA.biRSSigToASN1Sig(r,n)},Er.crypto.ECDSA.biRSSigToASN1Sig=function(t,e){var r=Er.asn1,n=new r.DERInteger({bigint:t}),i=new r.DERInteger({bigint:e});return new r.DERSequence({array:[n,i]}).getEncodedHex()},Er.crypto.ECDSA.getName=function(t){return"2a8648ce3d030107"===t?"secp256r1":"2b8104000a"===t?"secp256k1":"2b81040022"===t?"secp384r1":-1!=="|secp256r1|NIST P-256|P-256|prime256v1|".indexOf(t)?"secp256r1":-1!=="|secp256k1|".indexOf(t)?"secp256k1":-1!=="|secp384r1|NIST P-384|P-384|".indexOf(t)?"secp384r1":null},void 0!==Er&&Er||(e.KJUR=Er={}),void 0!==Er.crypto&&Er.crypto||(Er.crypto={}),Er.crypto.ECParameterDB=new function(){var t={},e={};function r(t){return new E(t,16)}this.getByName=function(r){var n=r;if(void 0!==e[n]&&(n=e[r]),void 0!==t[n])return t[n];throw"unregistered EC curve name: "+n},this.regist=function(n,i,o,s,a,u,c,f,h,l,p,d){t[n]={};var g=r(o),v=r(s),y=r(a),m=r(u),_=r(c),S=new ze(g,v,y),b=S.decodePointHex("04"+f+h);t[n].name=n,t[n].keylen=i,t[n].curve=S,t[n].G=b,t[n].n=m,t[n].h=_,t[n].oid=p,t[n].info=d;for(var w=0;w=2*u)break}var l={};return l.keyhex=c.substr(0,2*i[e].keylen),l.ivhex=c.substr(2*i[e].keylen,2*i[e].ivlen),l},a=function t(e,r,n,o){var s=y.enc.Base64.parse(e),a=y.enc.Hex.stringify(s);return(0,i[r].proc)(a,n,o)};return{version:"1.0.0",parsePKCS5PEM:function t(e){return o(e)},getKeyAndUnusedIvByPasscodeAndIvsalt:function t(e,r,n){return s(e,r,n)},decryptKeyB64:function t(e,r,n,i){return a(e,r,n,i)},getDecryptedKeyHex:function t(e,r){var n=o(e),i=(n.type,n.cipher),u=n.ivsalt,c=n.data,f=s(i,r,u).keyhex;return a(c,i,f,u)},getEncryptedPKCS5PEMFromPrvKeyHex:function t(e,r,n,o,a){var u="";if(void 0!==o&&null!=o||(o="AES-256-CBC"),void 0===i[o])throw"KEYUTIL unsupported algorithm: "+o;void 0!==a&&null!=a||(a=function t(e){var r=y.lib.WordArray.random(e);return y.enc.Hex.stringify(r)}(i[o].ivlen).toUpperCase());var c=function t(e,r,n,o){return(0,i[r].eproc)(e,n,o)}(r,o,s(o,n,a).keyhex,a);u="-----BEGIN "+e+" PRIVATE KEY-----\r\n";return u+="Proc-Type: 4,ENCRYPTED\r\n",u+="DEK-Info: "+o+","+a+"\r\n",u+="\r\n",u+=c.replace(/(.{64})/g,"$1\r\n"),u+="\r\n-----END "+e+" PRIVATE KEY-----\r\n"},parseHexOfEncryptedPKCS8:function t(e){var r=kr,n=r.getChildIdx,i=r.getV,o={},s=n(e,0);if(2!=s.length)throw"malformed format: SEQUENCE(0).items != 2: "+s.length;o.ciphertext=i(e,s[1]);var a=n(e,s[0]);if(2!=a.length)throw"malformed format: SEQUENCE(0.0).items != 2: "+a.length;if("2a864886f70d01050d"!=i(e,a[0]))throw"this only supports pkcs5PBES2";var u=n(e,a[1]);if(2!=a.length)throw"malformed format: SEQUENCE(0.0.1).items != 2: "+u.length;var c=n(e,u[1]);if(2!=c.length)throw"malformed format: SEQUENCE(0.0.1.1).items != 2: "+c.length;if("2a864886f70d0307"!=i(e,c[0]))throw"this only supports TripleDES";o.encryptionSchemeAlg="TripleDES",o.encryptionSchemeIV=i(e,c[1]);var f=n(e,u[0]);if(2!=f.length)throw"malformed format: SEQUENCE(0.0.1.0).items != 2: "+f.length;if("2a864886f70d01050c"!=i(e,f[0]))throw"this only supports pkcs5PBKDF2";var h=n(e,f[1]);if(h.length<2)throw"malformed format: SEQUENCE(0.0.1.0.1).items < 2: "+h.length;o.pbkdf2Salt=i(e,h[0]);var l=i(e,h[1]);try{o.pbkdf2Iter=parseInt(l,16)}catch(t){throw"malformed format pbkdf2Iter: "+l}return o},getPBKDF2KeyHexFromParam:function t(e,r){var n=y.enc.Hex.parse(e.pbkdf2Salt),i=e.pbkdf2Iter,o=y.PBKDF2(r,n,{keySize:6,iterations:i});return y.enc.Hex.stringify(o)},_getPlainPKCS8HexFromEncryptedPKCS8PEM:function t(e,r){var n=qr(e,"ENCRYPTED PRIVATE KEY"),i=this.parseHexOfEncryptedPKCS8(n),o=tn.getPBKDF2KeyHexFromParam(i,r),s={};s.ciphertext=y.enc.Hex.parse(i.ciphertext);var a=y.enc.Hex.parse(o),u=y.enc.Hex.parse(i.encryptionSchemeIV),c=y.TripleDES.decrypt(s,a,{iv:u});return y.enc.Hex.stringify(c)},getKeyFromEncryptedPKCS8PEM:function t(e,r){var n=this._getPlainPKCS8HexFromEncryptedPKCS8PEM(e,r);return this.getKeyFromPlainPrivatePKCS8Hex(n)},parsePlainPrivatePKCS8Hex:function t(e){var r=kr,n=r.getChildIdx,i=r.getV,o={algparam:null};if("30"!=e.substr(0,2))throw"malformed plain PKCS8 private key(code:001)";var s=n(e,0);if(3!=s.length)throw"malformed plain PKCS8 private key(code:002)";if("30"!=e.substr(s[1],2))throw"malformed PKCS8 private key(code:003)";var a=n(e,s[1]);if(2!=a.length)throw"malformed PKCS8 private key(code:004)";if("06"!=e.substr(a[0],2))throw"malformed PKCS8 private key(code:005)";if(o.algoid=i(e,a[0]),"06"==e.substr(a[1],2)&&(o.algparam=i(e,a[1])),"04"!=e.substr(s[2],2))throw"malformed PKCS8 private key(code:006)";return o.keyidx=r.getVidx(e,s[2]),o},getKeyFromPlainPrivatePKCS8PEM:function t(e){var r=qr(e,"PRIVATE KEY");return this.getKeyFromPlainPrivatePKCS8Hex(r)},getKeyFromPlainPrivatePKCS8Hex:function t(e){var r,n=this.parsePlainPrivatePKCS8Hex(e);if("2a864886f70d010101"==n.algoid)r=new qe;else if("2a8648ce380401"==n.algoid)r=new Er.crypto.DSA;else{if("2a8648ce3d0201"!=n.algoid)throw"unsupported private key algorithm";r=new Er.crypto.ECDSA}return r.readPKCS8PrvKeyHex(e),r},_getKeyFromPublicPKCS8Hex:function t(e){var r,n=kr.getVbyList(e,0,[0,0],"06");if("2a864886f70d010101"===n)r=new qe;else if("2a8648ce380401"===n)r=new Er.crypto.DSA;else{if("2a8648ce3d0201"!==n)throw"unsupported PKCS#8 public key hex";r=new Er.crypto.ECDSA}return r.readPKCS8PubKeyHex(e),r},parsePublicRawRSAKeyHex:function t(e){var r=kr,n=r.getChildIdx,i=r.getV,o={};if("30"!=e.substr(0,2))throw"malformed RSA key(code:001)";var s=n(e,0);if(2!=s.length)throw"malformed RSA key(code:002)";if("02"!=e.substr(s[0],2))throw"malformed RSA key(code:003)";if(o.n=i(e,s[0]),"02"!=e.substr(s[1],2))throw"malformed RSA key(code:004)";return o.e=i(e,s[1]),o},parsePublicPKCS8Hex:function t(e){var r=kr,n=r.getChildIdx,i=r.getV,o={algparam:null},s=n(e,0);if(2!=s.length)throw"outer DERSequence shall have 2 elements: "+s.length;var a=s[0];if("30"!=e.substr(a,2))throw"malformed PKCS8 public key(code:001)";var u=n(e,a);if(2!=u.length)throw"malformed PKCS8 public key(code:002)";if("06"!=e.substr(u[0],2))throw"malformed PKCS8 public key(code:003)";if(o.algoid=i(e,u[0]),"06"==e.substr(u[1],2)?o.algparam=i(e,u[1]):"30"==e.substr(u[1],2)&&(o.algparam={},o.algparam.p=r.getVbyList(e,u[1],[0],"02"),o.algparam.q=r.getVbyList(e,u[1],[1],"02"),o.algparam.g=r.getVbyList(e,u[1],[2],"02")),"03"!=e.substr(s[1],2))throw"malformed PKCS8 public key(code:004)";return o.key=i(e,s[1]).substr(2),o}}}();tn.getKey=function(t,e,r){var n=(v=kr).getChildIdx,i=(v.getV,v.getVbyList),o=Er.crypto,s=o.ECDSA,a=o.DSA,u=qe,c=qr,f=tn;if(void 0!==u&&t instanceof u)return t;if(void 0!==s&&t instanceof s)return t;if(void 0!==a&&t instanceof a)return t;if(void 0!==t.curve&&void 0!==t.xy&&void 0===t.d)return new s({pub:t.xy,curve:t.curve});if(void 0!==t.curve&&void 0!==t.d)return new s({prv:t.d,curve:t.curve});if(void 0===t.kty&&void 0!==t.n&&void 0!==t.e&&void 0===t.d)return(P=new u).setPublic(t.n,t.e),P;if(void 0===t.kty&&void 0!==t.n&&void 0!==t.e&&void 0!==t.d&&void 0!==t.p&&void 0!==t.q&&void 0!==t.dp&&void 0!==t.dq&&void 0!==t.co&&void 0===t.qi)return(P=new u).setPrivateEx(t.n,t.e,t.d,t.p,t.q,t.dp,t.dq,t.co),P;if(void 0===t.kty&&void 0!==t.n&&void 0!==t.e&&void 0!==t.d&&void 0===t.p)return(P=new u).setPrivate(t.n,t.e,t.d),P;if(void 0!==t.p&&void 0!==t.q&&void 0!==t.g&&void 0!==t.y&&void 0===t.x)return(P=new a).setPublic(t.p,t.q,t.g,t.y),P;if(void 0!==t.p&&void 0!==t.q&&void 0!==t.g&&void 0!==t.y&&void 0!==t.x)return(P=new a).setPrivate(t.p,t.q,t.g,t.y,t.x),P;if("RSA"===t.kty&&void 0!==t.n&&void 0!==t.e&&void 0===t.d)return(P=new u).setPublic(Nr(t.n),Nr(t.e)),P;if("RSA"===t.kty&&void 0!==t.n&&void 0!==t.e&&void 0!==t.d&&void 0!==t.p&&void 0!==t.q&&void 0!==t.dp&&void 0!==t.dq&&void 0!==t.qi)return(P=new u).setPrivateEx(Nr(t.n),Nr(t.e),Nr(t.d),Nr(t.p),Nr(t.q),Nr(t.dp),Nr(t.dq),Nr(t.qi)),P;if("RSA"===t.kty&&void 0!==t.n&&void 0!==t.e&&void 0!==t.d)return(P=new u).setPrivate(Nr(t.n),Nr(t.e),Nr(t.d)),P;if("EC"===t.kty&&void 0!==t.crv&&void 0!==t.x&&void 0!==t.y&&void 0===t.d){var h=(k=new s({curve:t.crv})).ecparams.keylen/4,l="04"+("0000000000"+Nr(t.x)).slice(-h)+("0000000000"+Nr(t.y)).slice(-h);return k.setPublicKeyHex(l),k}if("EC"===t.kty&&void 0!==t.crv&&void 0!==t.x&&void 0!==t.y&&void 0!==t.d){h=(k=new s({curve:t.crv})).ecparams.keylen/4,l="04"+("0000000000"+Nr(t.x)).slice(-h)+("0000000000"+Nr(t.y)).slice(-h);var p=("0000000000"+Nr(t.d)).slice(-h);return k.setPublicKeyHex(l),k.setPrivateKeyHex(p),k}if("pkcs5prv"===r){var d,g=t,v=kr;if(9===(d=n(g,0)).length)(P=new u).readPKCS5PrvKeyHex(g);else if(6===d.length)(P=new a).readPKCS5PrvKeyHex(g);else{if(!(d.length>2&&"04"===g.substr(d[1],2)))throw"unsupported PKCS#1/5 hexadecimal key";(P=new s).readPKCS5PrvKeyHex(g)}return P}if("pkcs8prv"===r)return P=f.getKeyFromPlainPrivatePKCS8Hex(t);if("pkcs8pub"===r)return f._getKeyFromPublicPKCS8Hex(t);if("x509pub"===r)return sn.getPublicKeyFromCertHex(t);if(-1!=t.indexOf("-END CERTIFICATE-",0)||-1!=t.indexOf("-END X509 CERTIFICATE-",0)||-1!=t.indexOf("-END TRUSTED CERTIFICATE-",0))return sn.getPublicKeyFromCertPEM(t);if(-1!=t.indexOf("-END PUBLIC KEY-")){var y=qr(t,"PUBLIC KEY");return f._getKeyFromPublicPKCS8Hex(y)}if(-1!=t.indexOf("-END RSA PRIVATE KEY-")&&-1==t.indexOf("4,ENCRYPTED")){var m=c(t,"RSA PRIVATE KEY");return f.getKey(m,null,"pkcs5prv")}if(-1!=t.indexOf("-END DSA PRIVATE KEY-")&&-1==t.indexOf("4,ENCRYPTED")){var _=i(R=c(t,"DSA PRIVATE KEY"),0,[1],"02"),S=i(R,0,[2],"02"),b=i(R,0,[3],"02"),w=i(R,0,[4],"02"),F=i(R,0,[5],"02");return(P=new a).setPrivate(new E(_,16),new E(S,16),new E(b,16),new E(w,16),new E(F,16)),P}if(-1!=t.indexOf("-END PRIVATE KEY-"))return f.getKeyFromPlainPrivatePKCS8PEM(t);if(-1!=t.indexOf("-END RSA PRIVATE KEY-")&&-1!=t.indexOf("4,ENCRYPTED")){var x=f.getDecryptedKeyHex(t,e),A=new qe;return A.readPKCS5PrvKeyHex(x),A}if(-1!=t.indexOf("-END EC PRIVATE KEY-")&&-1!=t.indexOf("4,ENCRYPTED")){var k,P=i(R=f.getDecryptedKeyHex(t,e),0,[1],"04"),C=i(R,0,[2,0],"06"),T=i(R,0,[3,0],"03").substr(2);if(void 0===Er.crypto.OID.oidhex2name[C])throw"undefined OID(hex) in KJUR.crypto.OID: "+C;return(k=new s({curve:Er.crypto.OID.oidhex2name[C]})).setPublicKeyHex(T),k.setPrivateKeyHex(P),k.isPublic=!1,k}if(-1!=t.indexOf("-END DSA PRIVATE KEY-")&&-1!=t.indexOf("4,ENCRYPTED")){var R;_=i(R=f.getDecryptedKeyHex(t,e),0,[1],"02"),S=i(R,0,[2],"02"),b=i(R,0,[3],"02"),w=i(R,0,[4],"02"),F=i(R,0,[5],"02");return(P=new a).setPrivate(new E(_,16),new E(S,16),new E(b,16),new E(w,16),new E(F,16)),P}if(-1!=t.indexOf("-END ENCRYPTED PRIVATE KEY-"))return f.getKeyFromEncryptedPKCS8PEM(t,e);throw"not supported argument"},tn.generateKeypair=function(t,e){if("RSA"==t){var r=e;(s=new qe).generate(r,"10001"),s.isPrivate=!0,s.isPublic=!0;var n=new qe,i=s.n.toString(16),o=s.e.toString(16);return n.setPublic(i,o),n.isPrivate=!1,n.isPublic=!0,(a={}).prvKeyObj=s,a.pubKeyObj=n,a}if("EC"==t){var s,a,u=e,c=new Er.crypto.ECDSA({curve:u}).generateKeyPairHex();return(s=new Er.crypto.ECDSA({curve:u})).setPublicKeyHex(c.ecpubhex),s.setPrivateKeyHex(c.ecprvhex),s.isPrivate=!0,s.isPublic=!1,(n=new Er.crypto.ECDSA({curve:u})).setPublicKeyHex(c.ecpubhex),n.isPrivate=!1,n.isPublic=!0,(a={}).prvKeyObj=s,a.pubKeyObj=n,a}throw"unknown algorithm: "+t},tn.getPEM=function(t,e,r,n,i,o){var s=Er,a=s.asn1,u=a.DERObjectIdentifier,c=a.DERInteger,f=a.ASN1Util.newObject,h=a.x509.SubjectPublicKeyInfo,l=s.crypto,p=l.DSA,d=l.ECDSA,g=qe;function v(t){return f({seq:[{int:0},{int:{bigint:t.n}},{int:t.e},{int:{bigint:t.d}},{int:{bigint:t.p}},{int:{bigint:t.q}},{int:{bigint:t.dmp1}},{int:{bigint:t.dmq1}},{int:{bigint:t.coeff}}]})}function m(t){return f({seq:[{int:1},{octstr:{hex:t.prvKeyHex}},{tag:["a0",!0,{oid:{name:t.curveName}}]},{tag:["a1",!0,{bitstr:{hex:"00"+t.pubKeyHex}}]}]})}function _(t){return f({seq:[{int:0},{int:{bigint:t.p}},{int:{bigint:t.q}},{int:{bigint:t.g}},{int:{bigint:t.y}},{int:{bigint:t.x}}]})}if((void 0!==g&&t instanceof g||void 0!==p&&t instanceof p||void 0!==d&&t instanceof d)&&1==t.isPublic&&(void 0===e||"PKCS8PUB"==e))return Kr(F=new h(t).getEncodedHex(),"PUBLIC KEY");if("PKCS1PRV"==e&&void 0!==g&&t instanceof g&&(void 0===r||null==r)&&1==t.isPrivate)return Kr(F=v(t).getEncodedHex(),"RSA PRIVATE KEY");if("PKCS1PRV"==e&&void 0!==d&&t instanceof d&&(void 0===r||null==r)&&1==t.isPrivate){var S=new u({name:t.curveName}).getEncodedHex(),b=m(t).getEncodedHex(),w="";return w+=Kr(S,"EC PARAMETERS"),w+=Kr(b,"EC PRIVATE KEY")}if("PKCS1PRV"==e&&void 0!==p&&t instanceof p&&(void 0===r||null==r)&&1==t.isPrivate)return Kr(F=_(t).getEncodedHex(),"DSA PRIVATE KEY");if("PKCS5PRV"==e&&void 0!==g&&t instanceof g&&void 0!==r&&null!=r&&1==t.isPrivate){var F=v(t).getEncodedHex();return void 0===n&&(n="DES-EDE3-CBC"),this.getEncryptedPKCS5PEMFromPrvKeyHex("RSA",F,r,n,o)}if("PKCS5PRV"==e&&void 0!==d&&t instanceof d&&void 0!==r&&null!=r&&1==t.isPrivate){F=m(t).getEncodedHex();return void 0===n&&(n="DES-EDE3-CBC"),this.getEncryptedPKCS5PEMFromPrvKeyHex("EC",F,r,n,o)}if("PKCS5PRV"==e&&void 0!==p&&t instanceof p&&void 0!==r&&null!=r&&1==t.isPrivate){F=_(t).getEncodedHex();return void 0===n&&(n="DES-EDE3-CBC"),this.getEncryptedPKCS5PEMFromPrvKeyHex("DSA",F,r,n,o)}var E=function t(e,r){var n=x(e,r);return new f({seq:[{seq:[{oid:{name:"pkcs5PBES2"}},{seq:[{seq:[{oid:{name:"pkcs5PBKDF2"}},{seq:[{octstr:{hex:n.pbkdf2Salt}},{int:n.pbkdf2Iter}]}]},{seq:[{oid:{name:"des-EDE3-CBC"}},{octstr:{hex:n.encryptionSchemeIV}}]}]}]},{octstr:{hex:n.ciphertext}}]}).getEncodedHex()},x=function t(e,r){var n=y.lib.WordArray.random(8),i=y.lib.WordArray.random(8),o=y.PBKDF2(r,n,{keySize:6,iterations:100}),s=y.enc.Hex.parse(e),a=y.TripleDES.encrypt(s,o,{iv:i})+"",u={};return u.ciphertext=a,u.pbkdf2Salt=y.enc.Hex.stringify(n),u.pbkdf2Iter=100,u.encryptionSchemeAlg="DES-EDE3-CBC",u.encryptionSchemeIV=y.enc.Hex.stringify(i),u};if("PKCS8PRV"==e&&void 0!=g&&t instanceof g&&1==t.isPrivate){var A=v(t).getEncodedHex();F=f({seq:[{int:0},{seq:[{oid:{name:"rsaEncryption"}},{null:!0}]},{octstr:{hex:A}}]}).getEncodedHex();return void 0===r||null==r?Kr(F,"PRIVATE KEY"):Kr(b=E(F,r),"ENCRYPTED PRIVATE KEY")}if("PKCS8PRV"==e&&void 0!==d&&t instanceof d&&1==t.isPrivate){A=new f({seq:[{int:1},{octstr:{hex:t.prvKeyHex}},{tag:["a1",!0,{bitstr:{hex:"00"+t.pubKeyHex}}]}]}).getEncodedHex(),F=f({seq:[{int:0},{seq:[{oid:{name:"ecPublicKey"}},{oid:{name:t.curveName}}]},{octstr:{hex:A}}]}).getEncodedHex();return void 0===r||null==r?Kr(F,"PRIVATE KEY"):Kr(b=E(F,r),"ENCRYPTED PRIVATE KEY")}if("PKCS8PRV"==e&&void 0!==p&&t instanceof p&&1==t.isPrivate){A=new c({bigint:t.x}).getEncodedHex(),F=f({seq:[{int:0},{seq:[{oid:{name:"dsa"}},{seq:[{int:{bigint:t.p}},{int:{bigint:t.q}},{int:{bigint:t.g}}]}]},{octstr:{hex:A}}]}).getEncodedHex();return void 0===r||null==r?Kr(F,"PRIVATE KEY"):Kr(b=E(F,r),"ENCRYPTED PRIVATE KEY")}throw"unsupported object nor format"},tn.getKeyFromCSRPEM=function(t){var e=qr(t,"CERTIFICATE REQUEST");return tn.getKeyFromCSRHex(e)},tn.getKeyFromCSRHex=function(t){var e=tn.parseCSRHex(t);return tn.getKey(e.p8pubkeyhex,null,"pkcs8pub")},tn.parseCSRHex=function(t){var e=kr,r=e.getChildIdx,n=e.getTLV,i={},o=t;if("30"!=o.substr(0,2))throw"malformed CSR(code:001)";var s=r(o,0);if(s.length<1)throw"malformed CSR(code:002)";if("30"!=o.substr(s[0],2))throw"malformed CSR(code:003)";var a=r(o,s[0]);if(a.length<3)throw"malformed CSR(code:004)";return i.p8pubkeyhex=n(o,a[2]),i},tn.getJWKFromKey=function(t){var e={};if(t instanceof qe&&t.isPrivate)return e.kty="RSA",e.n=Dr(t.n.toString(16)),e.e=Dr(t.e.toString(16)),e.d=Dr(t.d.toString(16)),e.p=Dr(t.p.toString(16)),e.q=Dr(t.q.toString(16)),e.dp=Dr(t.dmp1.toString(16)),e.dq=Dr(t.dmq1.toString(16)),e.qi=Dr(t.coeff.toString(16)),e;if(t instanceof qe&&t.isPublic)return e.kty="RSA",e.n=Dr(t.n.toString(16)),e.e=Dr(t.e.toString(16)),e;if(t instanceof Er.crypto.ECDSA&&t.isPrivate){if("P-256"!==(n=t.getShortNISTPCurveName())&&"P-384"!==n)throw"unsupported curve name for JWT: "+n;var r=t.getPublicKeyXYHex();return e.kty="EC",e.crv=n,e.x=Dr(r.x),e.y=Dr(r.y),e.d=Dr(t.prvKeyHex),e}if(t instanceof Er.crypto.ECDSA&&t.isPublic){var n;if("P-256"!==(n=t.getShortNISTPCurveName())&&"P-384"!==n)throw"unsupported curve name for JWT: "+n;r=t.getPublicKeyXYHex();return e.kty="EC",e.crv=n,e.x=Dr(r.x),e.y=Dr(r.y),e}throw"not supported key object"},qe.getPosArrayOfChildrenFromHex=function(t){return kr.getChildIdx(t,0)},qe.getHexValueArrayOfChildrenFromHex=function(t){var e,r=kr.getV,n=r(t,(e=qe.getPosArrayOfChildrenFromHex(t))[0]),i=r(t,e[1]),o=r(t,e[2]),s=r(t,e[3]),a=r(t,e[4]),u=r(t,e[5]),c=r(t,e[6]),f=r(t,e[7]),h=r(t,e[8]);return(e=new Array).push(n,i,o,s,a,u,c,f,h),e},qe.prototype.readPrivateKeyFromPEMString=function(t){var e=qr(t),r=qe.getHexValueArrayOfChildrenFromHex(e);this.setPrivateEx(r[1],r[2],r[3],r[4],r[5],r[6],r[7],r[8])},qe.prototype.readPKCS5PrvKeyHex=function(t){var e=qe.getHexValueArrayOfChildrenFromHex(t);this.setPrivateEx(e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8])},qe.prototype.readPKCS8PrvKeyHex=function(t){var e,r,n,i,o,s,a,u,c=kr,f=c.getVbyList;if(!1===c.isASN1HEX(t))throw"not ASN.1 hex string";try{e=f(t,0,[2,0,1],"02"),r=f(t,0,[2,0,2],"02"),n=f(t,0,[2,0,3],"02"),i=f(t,0,[2,0,4],"02"),o=f(t,0,[2,0,5],"02"),s=f(t,0,[2,0,6],"02"),a=f(t,0,[2,0,7],"02"),u=f(t,0,[2,0,8],"02")}catch(t){throw"malformed PKCS#8 plain RSA private key"}this.setPrivateEx(e,r,n,i,o,s,a,u)},qe.prototype.readPKCS5PubKeyHex=function(t){var e=kr,r=e.getV;if(!1===e.isASN1HEX(t))throw"keyHex is not ASN.1 hex string";var n=e.getChildIdx(t,0);if(2!==n.length||"02"!==t.substr(n[0],2)||"02"!==t.substr(n[1],2))throw"wrong hex for PKCS#5 public key";var i=r(t,n[0]),o=r(t,n[1]);this.setPublic(i,o)},qe.prototype.readPKCS8PubKeyHex=function(t){var e=kr;if(!1===e.isASN1HEX(t))throw"not ASN.1 hex string";if("06092a864886f70d010101"!==e.getTLVbyList(t,0,[0,0]))throw"not PKCS8 RSA public key";var r=e.getTLVbyList(t,0,[1,0]);this.readPKCS5PubKeyHex(r)},qe.prototype.readCertPubKeyHex=function(t,e){var r,n;(r=new sn).readCertHex(t),n=r.getPublicKeyHex(),this.readPKCS8PubKeyHex(n)};var en=new RegExp("");function rn(t,e){for(var r="",n=e/4-t.length,i=0;i>24,(16711680&i)>>16,(65280&i)>>8,255&i])))),i+=1;return n}function on(t){for(var e in Er.crypto.Util.DIGESTINFOHEAD){var r=Er.crypto.Util.DIGESTINFOHEAD[e],n=r.length;if(t.substring(0,n)==r)return[e,t.substring(n)]}return[]}function sn(){var t=kr,e=t.getChildIdx,r=t.getV,n=t.getTLV,i=t.getVbyList,o=t.getTLVbyList,s=t.getIdxbyList,a=t.getVidx,u=t.oidname,c=sn,f=qr;this.hex=null,this.version=0,this.foffset=0,this.aExtInfo=null,this.getVersion=function(){return null===this.hex||0!==this.version?this.version:"a003020102"!==o(this.hex,0,[0,0])?(this.version=1,this.foffset=-1,1):(this.version=3,3)},this.getSerialNumberHex=function(){return i(this.hex,0,[0,1+this.foffset],"02")},this.getSignatureAlgorithmField=function(){return u(i(this.hex,0,[0,2+this.foffset,0],"06"))},this.getIssuerHex=function(){return o(this.hex,0,[0,3+this.foffset],"30")},this.getIssuerString=function(){return c.hex2dn(this.getIssuerHex())},this.getSubjectHex=function(){return o(this.hex,0,[0,5+this.foffset],"30")},this.getSubjectString=function(){return c.hex2dn(this.getSubjectHex())},this.getNotBefore=function(){var t=i(this.hex,0,[0,4+this.foffset,0]);return t=t.replace(/(..)/g,"%$1"),t=decodeURIComponent(t)},this.getNotAfter=function(){var t=i(this.hex,0,[0,4+this.foffset,1]);return t=t.replace(/(..)/g,"%$1"),t=decodeURIComponent(t)},this.getPublicKeyHex=function(){return t.getTLVbyList(this.hex,0,[0,6+this.foffset],"30")},this.getPublicKeyIdx=function(){return s(this.hex,0,[0,6+this.foffset],"30")},this.getPublicKeyContentIdx=function(){var t=this.getPublicKeyIdx();return s(this.hex,t,[1,0],"30")},this.getPublicKey=function(){return tn.getKey(this.getPublicKeyHex(),null,"pkcs8pub")},this.getSignatureAlgorithmName=function(){return u(i(this.hex,0,[1,0],"06"))},this.getSignatureValueHex=function(){return i(this.hex,0,[2],"03",!0)},this.verifySignature=function(t){var e=this.getSignatureAlgorithmName(),r=this.getSignatureValueHex(),n=o(this.hex,0,[0],"30"),i=new Er.crypto.Signature({alg:e});return i.init(t),i.updateHex(n),i.verify(r)},this.parseExt=function(){if(3!==this.version)return-1;var r=s(this.hex,0,[0,7,0],"30"),n=e(this.hex,r);this.aExtInfo=new Array;for(var o=0;o0&&(c=new Array(r),(new He).nextBytes(c),c=String.fromCharCode.apply(String,c));var f=jr(u(Ur("\0\0\0\0\0\0\0\0"+i+c))),h=[];for(n=0;n>8*a-s&255;for(d[0]&=~g,n=0;nthis.n.bitLength())return 0;var n=on(this.doPublic(r).toString(16).replace(/^1f+00/,""));if(0==n.length)return!1;var i=n[0];return n[1]==function t(e){return Er.crypto.Util.hashString(e,i)}(t)},qe.prototype.verifyWithMessageHash=function(t,e){var r=Ve(e=(e=e.replace(en,"")).replace(/[ \n]+/g,""),16);if(r.bitLength()>this.n.bitLength())return 0;var n=on(this.doPublic(r).toString(16).replace(/^1f+00/,""));if(0==n.length)return!1;n[0];return n[1]==t},qe.prototype.verifyPSS=function(t,e,r,n){var i=function t(e){return Er.crypto.Util.hashHex(e,r)}(Ur(t));return void 0===n&&(n=-1),this.verifyWithMessageHashPSS(i,e,r,n)},qe.prototype.verifyWithMessageHashPSS=function(t,e,r,n){var i=new E(e,16);if(i.bitLength()>this.n.bitLength())return!1;var o,s=function t(e){return Er.crypto.Util.hashHex(e,r)},a=jr(t),u=a.length,c=this.n.bitLength()-1,f=Math.ceil(c/8);if(-1===n||void 0===n)n=u;else if(-2===n)n=f-u-2;else if(n<-2)throw"invalid salt length";if(f>8*f-c&255;if(0!=(l.charCodeAt(0)&d))throw"bits beyond keysize not zero";var g=nn(p,l.length,s),v=[];for(o=0;o0)&&-1==(":"+n.join(":")+":").indexOf(":"+v+":"))throw"algorithm '"+v+"' not accepted in the list";if("none"!=v&&null===e)throw"key shall be specified to verify.";if("string"==typeof e&&-1!=e.indexOf("-----BEGIN ")&&(e=tn.getKey(e)),!("RS"!=y&&"PS"!=y||e instanceof i))throw"key shall be a RSAKey obj for RS* and PS* algs";if("ES"==y&&!(e instanceof c))throw"key shall be a ECDSA obj for ES* algs";var m=null;if(void 0===s.jwsalg2sigalg[g.alg])throw"unsupported alg name: "+v;if("none"==(m=s.jwsalg2sigalg[v]))throw"not supported";if("Hmac"==m.substr(0,4)){if(void 0===e)throw"hexadecimal key shall be specified for HMAC";var _=new f({alg:m,pass:e});return _.updateString(p),d==_.doFinal()}if(-1!=m.indexOf("withECDSA")){var S,b=null;try{b=c.concatSigToASN1Sig(d)}catch(t){return!1}return(S=new h({alg:m})).init(e),S.updateString(p),S.verify(b)}return(S=new h({alg:m})).init(e),S.updateString(p),S.verify(d)},Er.jws.JWS.parse=function(t){var e,r,n,i=t.split("."),o={};if(2!=i.length&&3!=i.length)throw"malformed sJWS: wrong number of '.' splitted elements";return e=i[0],r=i[1],3==i.length&&(n=i[2]),o.headerObj=Er.jws.JWS.readSafeJSONString(Ar(e)),o.payloadObj=Er.jws.JWS.readSafeJSONString(Ar(r)),o.headerPP=JSON.stringify(o.headerObj,null," "),null==o.payloadObj?o.payloadPP=Ar(r):o.payloadPP=JSON.stringify(o.payloadObj,null," "),void 0!==n&&(o.sigHex=Nr(n)),o},Er.jws.JWS.verifyJWT=function(t,e,n){var i=Er.jws,o=i.JWS,s=o.readSafeJSONString,a=o.inArray,u=o.includedArray,c=t.split("."),f=c[0],h=c[1],l=(Nr(c[2]),s(Ar(f))),p=s(Ar(h));if(void 0===l.alg)return!1;if(void 0===n.alg)throw"acceptField.alg shall be specified";if(!a(l.alg,n.alg))return!1;if(void 0!==p.iss&&"object"===r(n.iss)&&!a(p.iss,n.iss))return!1;if(void 0!==p.sub&&"object"===r(n.sub)&&!a(p.sub,n.sub))return!1;if(void 0!==p.aud&&"object"===r(n.aud))if("string"==typeof p.aud){if(!a(p.aud,n.aud))return!1}else if("object"==r(p.aud)&&!u(p.aud,n.aud))return!1;var d=i.IntDate.getNow();return void 0!==n.verifyAt&&"number"==typeof n.verifyAt&&(d=n.verifyAt),void 0!==n.gracePeriod&&"number"==typeof n.gracePeriod||(n.gracePeriod=0),!(void 0!==p.exp&&"number"==typeof p.exp&&p.exp+n.gracePeriodr.length&&(n=r.length);for(var i=0;i + * @license MIT + */ +var n=r(361),i=r(362),o=r(363);function s(){return u.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function a(t,e){if(s()=s())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+s().toString(16)+" bytes");return 0|t}function d(t,e){if(u.isBuffer(t))return t.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(t)||t instanceof ArrayBuffer))return t.byteLength;"string"!=typeof t&&(t=""+t);var r=t.length;if(0===r)return 0;for(var n=!1;;)switch(e){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return V(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return K(t).length;default:if(n)return V(t).length;e=(""+e).toLowerCase(),n=!0}}function g(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function v(t,e,r,n,i){if(0===t.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=i?0:t.length-1),r<0&&(r=t.length+r),r>=t.length){if(i)return-1;r=t.length-1}else if(r<0){if(!i)return-1;r=0}if("string"==typeof e&&(e=u.from(e,n)),u.isBuffer(e))return 0===e.length?-1:y(t,e,r,n,i);if("number"==typeof e)return e&=255,u.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(t,e,r):Uint8Array.prototype.lastIndexOf.call(t,e,r):y(t,[e],r,n,i);throw new TypeError("val must be string, number or Buffer")}function y(t,e,r,n,i){var o,s=1,a=t.length,u=e.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(t.length<2||e.length<2)return-1;s=2,a/=2,u/=2,r/=2}function c(t,e){return 1===s?t[e]:t.readUInt16BE(e*s)}if(i){var f=-1;for(o=r;oa&&(r=a-u),o=r;o>=0;o--){for(var h=!0,l=0;li&&(n=i):n=i;var o=e.length;if(o%2!=0)throw new TypeError("Invalid hex string");n>o/2&&(n=o/2);for(var s=0;s>8,i=r%256,o.push(i),o.push(n);return o}(e,t.length-r),t,r,n)}function E(t,e,r){return 0===e&&r===t.length?n.fromByteArray(t):n.fromByteArray(t.slice(e,r))}function x(t,e,r){r=Math.min(t.length,r);for(var n=[],i=e;i239?4:c>223?3:c>191?2:1;if(i+h<=r)switch(h){case 1:c<128&&(f=c);break;case 2:128==(192&(o=t[i+1]))&&(u=(31&c)<<6|63&o)>127&&(f=u);break;case 3:o=t[i+1],s=t[i+2],128==(192&o)&&128==(192&s)&&(u=(15&c)<<12|(63&o)<<6|63&s)>2047&&(u<55296||u>57343)&&(f=u);break;case 4:o=t[i+1],s=t[i+2],a=t[i+3],128==(192&o)&&128==(192&s)&&128==(192&a)&&(u=(15&c)<<18|(63&o)<<12|(63&s)<<6|63&a)>65535&&u<1114112&&(f=u)}null===f?(f=65533,h=1):f>65535&&(f-=65536,n.push(f>>>10&1023|55296),f=56320|1023&f),n.push(f),i+=h}return function l(t){var e=t.length;if(e<=P)return String.fromCharCode.apply(String,t);var r="",n=0;for(;nthis.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(e>>>=0))return"";for(t||(t="utf8");;)switch(t){case"hex":return R(this,e,n);case"utf8":case"utf-8":return x(this,e,n);case"ascii":return C(this,e,n);case"latin1":case"binary":return T(this,e,n);case"base64":return E(this,e,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return I(this,e,n);default:if(i)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),i=!0}}.apply(this,arguments)},u.prototype.equals=function t(e){if(!u.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e||0===u.compare(this,e)},u.prototype.inspect=function t(){var r="",n=e.INSPECT_MAX_BYTES;return this.length>0&&(r=this.toString("hex",0,n).match(/.{2}/g).join(" "),this.length>n&&(r+=" ... ")),""},u.prototype.compare=function t(e,r,n,i,o){if(!u.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===r&&(r=0),void 0===n&&(n=e?e.length:0),void 0===i&&(i=0),void 0===o&&(o=this.length),r<0||n>e.length||i<0||o>this.length)throw new RangeError("out of range index");if(i>=o&&r>=n)return 0;if(i>=o)return-1;if(r>=n)return 1;if(r>>>=0,n>>>=0,i>>>=0,o>>>=0,this===e)return 0;for(var s=o-i,a=n-r,c=Math.min(s,a),f=this.slice(i,o),h=e.slice(r,n),l=0;lo)&&(n=o),e.length>0&&(n<0||r<0)||r>this.length)throw new RangeError("Attempt to write outside buffer bounds");i||(i="utf8");for(var s=!1;;)switch(i){case"hex":return m(this,e,r,n);case"utf8":case"utf-8":return _(this,e,r,n);case"ascii":return S(this,e,r,n);case"latin1":case"binary":return b(this,e,r,n);case"base64":return w(this,e,r,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return F(this,e,r,n);default:if(s)throw new TypeError("Unknown encoding: "+i);i=(""+i).toLowerCase(),s=!0}},u.prototype.toJSON=function t(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var P=4096;function C(t,e,r){var n="";r=Math.min(t.length,r);for(var i=e;in)&&(r=n);for(var i="",o=e;or)throw new RangeError("Trying to access beyond buffer length")}function D(t,e,r,n,i,o){if(!u.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>i||et.length)throw new RangeError("Index out of range")}function N(t,e,r,n){e<0&&(e=65535+e+1);for(var i=0,o=Math.min(t.length-r,2);i>>8*(n?i:1-i)}function L(t,e,r,n){e<0&&(e=4294967295+e+1);for(var i=0,o=Math.min(t.length-r,4);i>>8*(n?i:3-i)&255}function M(t,e,r,n,i,o){if(r+n>t.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function j(t,e,r,n,o){return o||M(t,0,r,4),i.write(t,e,r,n,23,4),r+4}function U(t,e,r,n,o){return o||M(t,0,r,8),i.write(t,e,r,n,52,8),r+8}u.prototype.slice=function t(e,r){var n,i=this.length;if(e=~~e,r=void 0===r?i:~~r,e<0?(e+=i)<0&&(e=0):e>i&&(e=i),r<0?(r+=i)<0&&(r=0):r>i&&(r=i),r0&&(o*=256);)i+=this[e+--r]*o;return i},u.prototype.readUInt8=function t(e,r){return r||O(e,1,this.length),this[e]},u.prototype.readUInt16LE=function t(e,r){return r||O(e,2,this.length),this[e]|this[e+1]<<8},u.prototype.readUInt16BE=function t(e,r){return r||O(e,2,this.length),this[e]<<8|this[e+1]},u.prototype.readUInt32LE=function t(e,r){return r||O(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},u.prototype.readUInt32BE=function t(e,r){return r||O(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},u.prototype.readIntLE=function t(e,r,n){e|=0,r|=0,n||O(e,r,this.length);for(var i=this[e],o=1,s=0;++s=(o*=128)&&(i-=Math.pow(2,8*r)),i},u.prototype.readIntBE=function t(e,r,n){e|=0,r|=0,n||O(e,r,this.length);for(var i=r,o=1,s=this[e+--i];i>0&&(o*=256);)s+=this[e+--i]*o;return s>=(o*=128)&&(s-=Math.pow(2,8*r)),s},u.prototype.readInt8=function t(e,r){return r||O(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},u.prototype.readInt16LE=function t(e,r){r||O(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},u.prototype.readInt16BE=function t(e,r){r||O(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},u.prototype.readInt32LE=function t(e,r){return r||O(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},u.prototype.readInt32BE=function t(e,r){return r||O(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},u.prototype.readFloatLE=function t(e,r){return r||O(e,4,this.length),i.read(this,e,!0,23,4)},u.prototype.readFloatBE=function t(e,r){return r||O(e,4,this.length),i.read(this,e,!1,23,4)},u.prototype.readDoubleLE=function t(e,r){return r||O(e,8,this.length),i.read(this,e,!0,52,8)},u.prototype.readDoubleBE=function t(e,r){return r||O(e,8,this.length),i.read(this,e,!1,52,8)},u.prototype.writeUIntLE=function t(e,r,n,i){(e=+e,r|=0,n|=0,i)||D(this,e,r,n,Math.pow(2,8*n)-1,0);var o=1,s=0;for(this[r]=255&e;++s=0&&(s*=256);)this[r+o]=e/s&255;return r+n},u.prototype.writeUInt8=function t(e,r,n){return e=+e,r|=0,n||D(this,e,r,1,255,0),u.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[r]=255&e,r+1},u.prototype.writeUInt16LE=function t(e,r,n){return e=+e,r|=0,n||D(this,e,r,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[r]=255&e,this[r+1]=e>>>8):N(this,e,r,!0),r+2},u.prototype.writeUInt16BE=function t(e,r,n){return e=+e,r|=0,n||D(this,e,r,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[r]=e>>>8,this[r+1]=255&e):N(this,e,r,!1),r+2},u.prototype.writeUInt32LE=function t(e,r,n){return e=+e,r|=0,n||D(this,e,r,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[r+3]=e>>>24,this[r+2]=e>>>16,this[r+1]=e>>>8,this[r]=255&e):L(this,e,r,!0),r+4},u.prototype.writeUInt32BE=function t(e,r,n){return e=+e,r|=0,n||D(this,e,r,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[r]=e>>>24,this[r+1]=e>>>16,this[r+2]=e>>>8,this[r+3]=255&e):L(this,e,r,!1),r+4},u.prototype.writeIntLE=function t(e,r,n,i){if(e=+e,r|=0,!i){var o=Math.pow(2,8*n-1);D(this,e,r,n,o-1,-o)}var s=0,a=1,u=0;for(this[r]=255&e;++s>0)-u&255;return r+n},u.prototype.writeIntBE=function t(e,r,n,i){if(e=+e,r|=0,!i){var o=Math.pow(2,8*n-1);D(this,e,r,n,o-1,-o)}var s=n-1,a=1,u=0;for(this[r+s]=255&e;--s>=0&&(a*=256);)e<0&&0===u&&0!==this[r+s+1]&&(u=1),this[r+s]=(e/a>>0)-u&255;return r+n},u.prototype.writeInt8=function t(e,r,n){return e=+e,r|=0,n||D(this,e,r,1,127,-128),u.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[r]=255&e,r+1},u.prototype.writeInt16LE=function t(e,r,n){return e=+e,r|=0,n||D(this,e,r,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[r]=255&e,this[r+1]=e>>>8):N(this,e,r,!0),r+2},u.prototype.writeInt16BE=function t(e,r,n){return e=+e,r|=0,n||D(this,e,r,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[r]=e>>>8,this[r+1]=255&e):N(this,e,r,!1),r+2},u.prototype.writeInt32LE=function t(e,r,n){return e=+e,r|=0,n||D(this,e,r,4,2147483647,-2147483648),u.TYPED_ARRAY_SUPPORT?(this[r]=255&e,this[r+1]=e>>>8,this[r+2]=e>>>16,this[r+3]=e>>>24):L(this,e,r,!0),r+4},u.prototype.writeInt32BE=function t(e,r,n){return e=+e,r|=0,n||D(this,e,r,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),u.TYPED_ARRAY_SUPPORT?(this[r]=e>>>24,this[r+1]=e>>>16,this[r+2]=e>>>8,this[r+3]=255&e):L(this,e,r,!1),r+4},u.prototype.writeFloatLE=function t(e,r,n){return j(this,e,r,!0,n)},u.prototype.writeFloatBE=function t(e,r,n){return j(this,e,r,!1,n)},u.prototype.writeDoubleLE=function t(e,r,n){return U(this,e,r,!0,n)},u.prototype.writeDoubleBE=function t(e,r,n){return U(this,e,r,!1,n)},u.prototype.copy=function t(e,r,n,i){if(n||(n=0),i||0===i||(i=this.length),r>=e.length&&(r=e.length),r||(r=0),i>0&&i=this.length)throw new RangeError("sourceStart out of bounds");if(i<0)throw new RangeError("sourceEnd out of bounds");i>this.length&&(i=this.length),e.length-r=0;--o)e[o+r]=this[o+n];else if(s<1e3||!u.TYPED_ARRAY_SUPPORT)for(o=0;o>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(s=r;s55295&&r<57344){if(!i){if(r>56319){(e-=3)>-1&&o.push(239,191,189);continue}if(s+1===n){(e-=3)>-1&&o.push(239,191,189);continue}i=r;continue}if(r<56320){(e-=3)>-1&&o.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(e-=3)>-1&&o.push(239,191,189);if(i=null,r<128){if((e-=1)<0)break;o.push(r)}else if(r<2048){if((e-=2)<0)break;o.push(r>>6|192,63&r|128)}else if(r<65536){if((e-=3)<0)break;o.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return o}function K(t){return n.toByteArray(function e(t){if((t=function e(t){return t.trim?t.trim():t.replace(/^\s+|\s+$/g,"")}(t).replace(B,"")).length<2)return"";for(;t.length%4!=0;)t+="=";return t}(t))}function q(t,e,r,n){for(var i=0;i=e.length||i>=t.length);++i)e[i+r]=t[i];return i}}).call(this,r(71))},function(t,e,r){"use strict";e.byteLength=function n(t){var e=l(t),r=e[0],n=e[1];return 3*(r+n)/4-n},e.toByteArray=function i(t){for(var e,r=l(t),n=r[0],i=r[1],o=new u(function s(t,e,r){return 3*(e+r)/4-r}(0,n,i)),c=0,f=i>0?n-4:n,h=0;h>16&255,o[c++]=e>>8&255,o[c++]=255&e;2===i&&(e=a[t.charCodeAt(h)]<<2|a[t.charCodeAt(h+1)]>>4,o[c++]=255&e);1===i&&(e=a[t.charCodeAt(h)]<<10|a[t.charCodeAt(h+1)]<<4|a[t.charCodeAt(h+2)]>>2,o[c++]=e>>8&255,o[c++]=255&e);return o},e.fromByteArray=function o(t){for(var e,r=t.length,n=r%3,i=[],o=0,a=r-n;oa?a:o+16383));1===n?(e=t[r-1],i.push(s[e>>2]+s[e<<4&63]+"==")):2===n&&(e=(t[r-2]<<8)+t[r-1],i.push(s[e>>10]+s[e>>4&63]+s[e<<2&63]+"="));return i.join("")};for(var s=[],a=[],u="undefined"!=typeof Uint8Array?Uint8Array:Array,c="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",f=0,h=c.length;f0)throw new Error("Invalid string. Length must be a multiple of 4");var r=t.indexOf("=");return-1===r&&(r=e),[r,r===e?0:4-r%4]}function p(t,e,r){for(var n,i,o=[],a=e;a>18&63]+s[i>>12&63]+s[i>>6&63]+s[63&i]);return o.join("")}a["-".charCodeAt(0)]=62,a["_".charCodeAt(0)]=63},function(t,e){e.read=function(t,e,r,n,i){var o,s,a=8*i-n-1,u=(1<>1,f=-7,h=r?i-1:0,l=r?-1:1,p=t[e+h];for(h+=l,o=p&(1<<-f)-1,p>>=-f,f+=a;f>0;o=256*o+t[e+h],h+=l,f-=8);for(s=o&(1<<-f)-1,o>>=-f,f+=n;f>0;s=256*s+t[e+h],h+=l,f-=8);if(0===o)o=1-c;else{if(o===u)return s?NaN:1/0*(p?-1:1);s+=Math.pow(2,n),o-=c}return(p?-1:1)*s*Math.pow(2,o-n)},e.write=function(t,e,r,n,i,o){var s,a,u,c=8*o-i-1,f=(1<>1,l=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,p=n?0:o-1,d=n?1:-1,g=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,s=f):(s=Math.floor(Math.log(e)/Math.LN2),e*(u=Math.pow(2,-s))<1&&(s--,u*=2),(e+=s+h>=1?l/u:l*Math.pow(2,1-h))*u>=2&&(s++,u/=2),s+h>=f?(a=0,s=f):s+h>=1?(a=(e*u-1)*Math.pow(2,i),s+=h):(a=e*Math.pow(2,h-1)*Math.pow(2,i),s=0));i>=8;t[r+p]=255&a,p+=d,a/=256,i-=8);for(s=s<0;t[r+p]=255&s,p+=d,s/=256,c-=8);t[r+p-d]|=128*g}},function(t,e){var r={}.toString;t.exports=Array.isArray||function(t){return"[object Array]"==r.call(t)}},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function n(t){var e=t.jws,r=t.KeyUtil,n=t.X509,o=t.crypto,s=t.hextob64u,a=t.b64tohex,u=t.AllowedSigningAlgs;return function(){function t(){!function e(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,t)}return t.parseJwt=function t(r){i.Log.debug("JoseUtil.parseJwt");try{var n=e.JWS.parse(r);return{header:n.headerObj,payload:n.payloadObj}}catch(t){i.Log.error(t)}},t.validateJwt=function e(o,s,u,c,f,h,l){i.Log.debug("JoseUtil.validateJwt");try{if("RSA"===s.kty)if(s.e&&s.n)s=r.getKey(s);else{if(!s.x5c||!s.x5c.length)return i.Log.error("JoseUtil.validateJwt: RSA key missing key material",s),Promise.reject(new Error("RSA key missing key material"));var p=a(s.x5c[0]);s=n.getPublicKeyFromCertHex(p)}else{if("EC"!==s.kty)return i.Log.error("JoseUtil.validateJwt: Unsupported key type",s&&s.kty),Promise.reject(new Error(s.kty));if(!(s.crv&&s.x&&s.y))return i.Log.error("JoseUtil.validateJwt: EC key missing key material",s),Promise.reject(new Error("EC key missing key material"));s=r.getKey(s)}return t._validateJwt(o,s,u,c,f,h,l)}catch(t){return i.Log.error(t&&t.message||t),Promise.reject("JWT validation failed")}},t.validateJwtAttributes=function e(r,n,o,s,a,u){s||(s=0),a||(a=parseInt(Date.now()/1e3));var c=t.parseJwt(r).payload;if(!c.iss)return i.Log.error("JoseUtil._validateJwt: issuer was not provided"),Promise.reject(new Error("issuer was not provided"));if(c.iss!==n)return i.Log.error("JoseUtil._validateJwt: Invalid issuer in token",c.iss),Promise.reject(new Error("Invalid issuer in token: "+c.iss));if(!c.aud)return i.Log.error("JoseUtil._validateJwt: aud was not provided"),Promise.reject(new Error("aud was not provided"));var f=c.aud===o||Array.isArray(c.aud)&&c.aud.indexOf(o)>=0;if(!f)return i.Log.error("JoseUtil._validateJwt: Invalid audience in token",c.aud),Promise.reject(new Error("Invalid audience in token: "+c.aud));if(c.azp&&c.azp!==o)return i.Log.error("JoseUtil._validateJwt: Invalid azp in token",c.azp),Promise.reject(new Error("Invalid azp in token: "+c.azp));if(!u){var h=a+s,l=a-s;if(!c.iat)return i.Log.error("JoseUtil._validateJwt: iat was not provided"),Promise.reject(new Error("iat was not provided"));if(h>>((3&r)<<3)&255;return i}}},function(t,e){for(var r=[],n=0;n<256;++n)r[n]=(n+256).toString(16).substr(1);t.exports=function i(t,e){var n=e||0,i=r;return[i[t[n++]],i[t[n++]],i[t[n++]],i[t[n++]],"-",i[t[n++]],i[t[n++]],"-",i[t[n++]],i[t[n++]],"-",i[t[n++]],i[t[n++]],"-",i[t[n++]],i[t[n++]],i[t[n++]],i[t[n++]],i[t[n++]],i[t[n++]]].join("")}},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SigninResponse=void 0;var n=function(){function t(t,e){for(var r=0;r1&&void 0!==arguments[1]?arguments[1]:"#";!function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t);var o=i.UrlUtility.parseUrlFragment(e,r);this.error=o.error,this.error_description=o.error_description,this.error_uri=o.error_uri,this.code=o.code,this.state=o.state,this.id_token=o.id_token,this.session_state=o.session_state,this.access_token=o.access_token,this.token_type=o.token_type,this.scope=o.scope,this.profile=void 0,this.expires_in=o.expires_in}return n(t,[{key:"expires_in",get:function t(){if(this.expires_at){var e=parseInt(Date.now()/1e3);return this.expires_at-e}},set:function t(e){var r=parseInt(e);if("number"==typeof r&&r>0){var n=parseInt(Date.now()/1e3);this.expires_at=n+r}}},{key:"expired",get:function t(){var e=this.expires_in;if(void 0!==e)return e<=0}},{key:"scopes",get:function t(){return(this.scope||"").split(" ")}},{key:"isOpenIdConnect",get:function t(){return this.scopes.indexOf("openid")>=0||!!this.id_token}}]),t}()},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SignoutRequest=void 0;var n=r(3),i=r(55),o=r(102);e.SignoutRequest=function t(e){var r=e.url,s=e.id_token_hint,a=e.post_logout_redirect_uri,u=e.data,c=e.extraQueryParams,f=e.request_type;if(function h(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),!r)throw n.Log.error("SignoutRequest.ctor: No url passed"),new Error("url");for(var l in s&&(r=i.UrlUtility.addQueryParam(r,"id_token_hint",s)),a&&(r=i.UrlUtility.addQueryParam(r,"post_logout_redirect_uri",a),u&&(this.state=new o.State({data:u,request_type:f}),r=i.UrlUtility.addQueryParam(r,"state",this.state.id))),c)r=i.UrlUtility.addQueryParam(r,l,c[l]);this.url=r}},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SignoutResponse=void 0;var n=r(55);e.SignoutResponse=function t(e){!function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t);var i=n.UrlUtility.parseUrlFragment(e,"?");this.error=i.error,this.error_description=i.error_description,this.error_uri=i.error_uri,this.state=i.state}},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.InMemoryWebStorage=void 0;var n=function(){function t(t,e){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:c.SilentRenewService,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:f.SessionMonitor,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:h.TokenRevocationClient,d=arguments.length>4&&void 0!==arguments[4]?arguments[4]:l.TokenClient,g=arguments.length>5&&void 0!==arguments[5]?arguments[5]:p.JoseUtil;!function v(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e),r instanceof s.UserManagerSettings||(r=new s.UserManagerSettings(r));var y=function m(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}(this,t.call(this,r));return y._events=new u.UserManagerEvents(r),y._silentRenewService=new n(y),y.settings.automaticSilentRenew&&(i.Log.debug("UserManager.ctor: automaticSilentRenew is configured, setting up silent renew"),y.startSilentRenew()),y.settings.monitorSession&&(i.Log.debug("UserManager.ctor: monitorSession is configured, setting up session monitor"),y._sessionMonitor=new o(y)),y._tokenRevocationClient=new a(y._settings),y._tokenClient=new d(y._settings),y._joseUtil=g,y}return function r(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,t),e.prototype.getUser=function t(){var e=this;return this._loadUser().then(function(t){return t?(i.Log.info("UserManager.getUser: user loaded"),e._events.load(t,!1),t):(i.Log.info("UserManager.getUser: user not found in storage"),null)})},e.prototype.removeUser=function t(){var e=this;return this.storeUser(null).then(function(){i.Log.info("UserManager.removeUser: user removed from storage"),e._events.unload()})},e.prototype.signinRedirect=function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(e=Object.assign({},e)).request_type="si:r";var r={useReplaceToNavigate:e.useReplaceToNavigate};return this._signinStart(e,this._redirectNavigator,r).then(function(){i.Log.info("UserManager.signinRedirect: successful")})},e.prototype.signinRedirectCallback=function t(e){return this._signinEnd(e||this._redirectNavigator.url).then(function(t){return t.profile&&t.profile.sub?i.Log.info("UserManager.signinRedirectCallback: successful, signed in sub: ",t.profile.sub):i.Log.info("UserManager.signinRedirectCallback: no sub"),t})},e.prototype.signinPopup=function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(e=Object.assign({},e)).request_type="si:p";var r=e.redirect_uri||this.settings.popup_redirect_uri||this.settings.redirect_uri;return r?(e.redirect_uri=r,e.display="popup",this._signin(e,this._popupNavigator,{startUrl:r,popupWindowFeatures:e.popupWindowFeatures||this.settings.popupWindowFeatures,popupWindowTarget:e.popupWindowTarget||this.settings.popupWindowTarget}).then(function(t){return t&&(t.profile&&t.profile.sub?i.Log.info("UserManager.signinPopup: signinPopup successful, signed in sub: ",t.profile.sub):i.Log.info("UserManager.signinPopup: no sub")),t})):(i.Log.error("UserManager.signinPopup: No popup_redirect_uri or redirect_uri configured"),Promise.reject(new Error("No popup_redirect_uri or redirect_uri configured")))},e.prototype.signinPopupCallback=function t(e){return this._signinCallback(e,this._popupNavigator).then(function(t){return t&&(t.profile&&t.profile.sub?i.Log.info("UserManager.signinPopupCallback: successful, signed in sub: ",t.profile.sub):i.Log.info("UserManager.signinPopupCallback: no sub")),t}).catch(function(t){i.Log.error(t.message)})},e.prototype.signinSilent=function t(){var e=this,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return(r=Object.assign({},r)).request_type="si:s",this._loadUser().then(function(t){return t&&t.refresh_token?(r.refresh_token=t.refresh_token,e._useRefreshToken(r)):(r.id_token_hint=r.id_token_hint||e.settings.includeIdTokenInSilentRenew&&t&&t.id_token,t&&e._settings.validateSubOnSilentRenew&&(i.Log.debug("UserManager.signinSilent, subject prior to silent renew: ",t.profile.sub),r.current_sub=t.profile.sub),e._signinSilentIframe(r))})},e.prototype._useRefreshToken=function t(){var e=this,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this._tokenClient.exchangeRefreshToken(r).then(function(t){return t?t.access_token?e._loadUser().then(function(r){if(r){var n=Promise.resolve();return t.id_token&&(n=e._validateIdTokenFromTokenRefreshToken(r.profile,t.id_token)),n.then(function(){return i.Log.debug("UserManager._useRefreshToken: refresh token response success"),r.id_token=t.id_token,r.access_token=t.access_token,r.refresh_token=t.refresh_token||r.refresh_token,r.expires_in=t.expires_in,e.storeUser(r).then(function(){return e._events.load(r),r})})}return null}):(i.Log.error("UserManager._useRefreshToken: No access token returned from token endpoint"),Promise.reject("No access token returned from token endpoint")):(i.Log.error("UserManager._useRefreshToken: No response returned from token endpoint"),Promise.reject("No response returned from token endpoint"))})},e.prototype._validateIdTokenFromTokenRefreshToken=function t(e,r){var n=this;return this._metadataService.getIssuer().then(function(t){return n._joseUtil.validateJwtAttributes(r,t,n._settings.client_id,n._settings.clockSkew).then(function(t){return t?t.sub!==e.sub?(i.Log.error("UserManager._validateIdTokenFromTokenRefreshToken: sub in id_token does not match current sub"),Promise.reject(new Error("sub in id_token does not match current sub"))):t.auth_time&&t.auth_time!==e.auth_time?(i.Log.error("UserManager._validateIdTokenFromTokenRefreshToken: auth_time in id_token does not match original auth_time"),Promise.reject(new Error("auth_time in id_token does not match original auth_time"))):t.azp&&t.azp!==e.azp?(i.Log.error("UserManager._validateIdTokenFromTokenRefreshToken: azp in id_token does not match original azp"),Promise.reject(new Error("azp in id_token does not match original azp"))):!t.azp&&e.azp?(i.Log.error("UserManager._validateIdTokenFromTokenRefreshToken: azp not in id_token, but present in original id_token"),Promise.reject(new Error("azp not in id_token, but present in original id_token"))):void 0:(i.Log.error("UserManager._validateIdTokenFromTokenRefreshToken: Failed to validate id_token"),Promise.reject(new Error("Failed to validate id_token")))})})},e.prototype._signinSilentIframe=function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=e.redirect_uri||this.settings.silent_redirect_uri||this.settings.redirect_uri;return r?(e.redirect_uri=r,e.prompt=e.prompt||"none",this._signin(e,this._iframeNavigator,{startUrl:r,silentRequestTimeout:e.silentRequestTimeout||this.settings.silentRequestTimeout}).then(function(t){return t&&(t.profile&&t.profile.sub?i.Log.info("UserManager.signinSilent: successful, signed in sub: ",t.profile.sub):i.Log.info("UserManager.signinSilent: no sub")),t})):(i.Log.error("UserManager.signinSilent: No silent_redirect_uri configured"),Promise.reject(new Error("No silent_redirect_uri configured")))},e.prototype.signinSilentCallback=function t(e){return this._signinCallback(e,this._iframeNavigator).then(function(t){return t&&(t.profile&&t.profile.sub?i.Log.info("UserManager.signinSilentCallback: successful, signed in sub: ",t.profile.sub):i.Log.info("UserManager.signinSilentCallback: no sub")),t})},e.prototype.signinCallback=function t(e){var r=this;return this.readSigninResponseState(e).then(function(t){var n=t.state;t.response;return"si:r"===n.request_type?r.signinRedirectCallback(e):"si:p"===n.request_type?r.signinPopupCallback(e):"si:s"===n.request_type?r.signinSilentCallback(e):Promise.reject(new Error("invalid response_type in state"))})},e.prototype.signoutCallback=function t(e,r){var n=this;return this.readSignoutResponseState(e).then(function(t){var i=t.state,o=t.response;return i?"so:r"===i.request_type?n.signoutRedirectCallback(e):"so:p"===i.request_type?n.signoutPopupCallback(e,r):Promise.reject(new Error("invalid response_type in state")):o})},e.prototype.querySessionStatus=function t(){var e=this,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(r=Object.assign({},r)).request_type="si:s";var n=r.redirect_uri||this.settings.silent_redirect_uri||this.settings.redirect_uri;return n?(r.redirect_uri=n,r.prompt="none",r.response_type=r.response_type||this.settings.query_status_response_type,r.scope=r.scope||"openid",r.skipUserInfo=!0,this._signinStart(r,this._iframeNavigator,{startUrl:n,silentRequestTimeout:r.silentRequestTimeout||this.settings.silentRequestTimeout}).then(function(t){return e.processSigninResponse(t.url).then(function(t){if(i.Log.debug("UserManager.querySessionStatus: got signin response"),t.session_state&&t.profile.sub)return i.Log.info("UserManager.querySessionStatus: querySessionStatus success for sub: ",t.profile.sub),{session_state:t.session_state,sub:t.profile.sub,sid:t.profile.sid};i.Log.info("querySessionStatus successful, user not authenticated")}).catch(function(t){if(t.session_state&&e.settings.monitorAnonymousSession&&("login_required"==t.message||"consent_required"==t.message||"interaction_required"==t.message||"account_selection_required"==t.message))return i.Log.info("UserManager.querySessionStatus: querySessionStatus success for anonymous user"),{session_state:t.session_state};throw t})})):(i.Log.error("UserManager.querySessionStatus: No silent_redirect_uri configured"),Promise.reject(new Error("No silent_redirect_uri configured")))},e.prototype._signin=function t(e,r){var n=this,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this._signinStart(e,r,i).then(function(t){return n._signinEnd(t.url,e)})},e.prototype._signinStart=function t(e,r){var n=this,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return r.prepare(o).then(function(t){return i.Log.debug("UserManager._signinStart: got navigator window handle"),n.createSigninRequest(e).then(function(e){return i.Log.debug("UserManager._signinStart: got signin request"),o.url=e.url,o.id=e.state.id,t.navigate(o)}).catch(function(e){throw t.close&&(i.Log.debug("UserManager._signinStart: Error after preparing navigator, closing navigator window"),t.close()),e})})},e.prototype._signinEnd=function t(e){var r=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.processSigninResponse(e).then(function(t){i.Log.debug("UserManager._signinEnd: got signin response");var e=new a.User(t);if(n.current_sub){if(n.current_sub!==e.profile.sub)return i.Log.debug("UserManager._signinEnd: current user does not match user returned from signin. sub from signin: ",e.profile.sub),Promise.reject(new Error("login_required"));i.Log.debug("UserManager._signinEnd: current user matches user returned from signin")}return r.storeUser(e).then(function(){return i.Log.debug("UserManager._signinEnd: user stored"),r._events.load(e),e})})},e.prototype._signinCallback=function t(e,r){return i.Log.debug("UserManager._signinCallback"),r.callback(e)},e.prototype.signoutRedirect=function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(e=Object.assign({},e)).request_type="so:r";var r=e.post_logout_redirect_uri||this.settings.post_logout_redirect_uri;r&&(e.post_logout_redirect_uri=r);var n={useReplaceToNavigate:e.useReplaceToNavigate};return this._signoutStart(e,this._redirectNavigator,n).then(function(){i.Log.info("UserManager.signoutRedirect: successful")})},e.prototype.signoutRedirectCallback=function t(e){return this._signoutEnd(e||this._redirectNavigator.url).then(function(t){return i.Log.info("UserManager.signoutRedirectCallback: successful"),t})},e.prototype.signoutPopup=function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(e=Object.assign({},e)).request_type="so:p";var r=e.post_logout_redirect_uri||this.settings.popup_post_logout_redirect_uri||this.settings.post_logout_redirect_uri;return e.post_logout_redirect_uri=r,e.display="popup",e.post_logout_redirect_uri&&(e.state=e.state||{}),this._signout(e,this._popupNavigator,{startUrl:r,popupWindowFeatures:e.popupWindowFeatures||this.settings.popupWindowFeatures,popupWindowTarget:e.popupWindowTarget||this.settings.popupWindowTarget}).then(function(){i.Log.info("UserManager.signoutPopup: successful")})},e.prototype.signoutPopupCallback=function t(e,r){void 0===r&&"boolean"==typeof e&&(r=e,e=null);return this._popupNavigator.callback(e,r,"?").then(function(){i.Log.info("UserManager.signoutPopupCallback: successful")})},e.prototype._signout=function t(e,r){var n=this,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this._signoutStart(e,r,i).then(function(t){return n._signoutEnd(t.url)})},e.prototype._signoutStart=function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=this,n=arguments[1],o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return n.prepare(o).then(function(t){return i.Log.debug("UserManager._signoutStart: got navigator window handle"),r._loadUser().then(function(n){return i.Log.debug("UserManager._signoutStart: loaded current user from storage"),(r._settings.revokeAccessTokenOnSignout?r._revokeInternal(n):Promise.resolve()).then(function(){var s=e.id_token_hint||n&&n.id_token;return s&&(i.Log.debug("UserManager._signoutStart: Setting id_token into signout request"),e.id_token_hint=s),r.removeUser().then(function(){return i.Log.debug("UserManager._signoutStart: user removed, creating signout request"),r.createSignoutRequest(e).then(function(e){return i.Log.debug("UserManager._signoutStart: got signout request"),o.url=e.url,e.state&&(o.id=e.state.id),t.navigate(o)})})})}).catch(function(e){throw t.close&&(i.Log.debug("UserManager._signoutStart: Error after preparing navigator, closing navigator window"),t.close()),e})})},e.prototype._signoutEnd=function t(e){return this.processSignoutResponse(e).then(function(t){return i.Log.debug("UserManager._signoutEnd: got signout response"),t})},e.prototype.revokeAccessToken=function t(){var e=this;return this._loadUser().then(function(t){return e._revokeInternal(t,!0).then(function(r){if(r)return i.Log.debug("UserManager.revokeAccessToken: removing token properties from user and re-storing"),t.access_token=null,t.refresh_token=null,t.expires_at=null,t.token_type=null,e.storeUser(t).then(function(){i.Log.debug("UserManager.revokeAccessToken: user stored"),e._events.load(t)})})}).then(function(){i.Log.info("UserManager.revokeAccessToken: access token revoked successfully")})},e.prototype._revokeInternal=function t(e,r){var n=this;if(e){var o=e.access_token,s=e.refresh_token;return this._revokeAccessTokenInternal(o,r).then(function(t){return n._revokeRefreshTokenInternal(s,r).then(function(e){return t||e||i.Log.debug("UserManager.revokeAccessToken: no need to revoke due to no token(s), or JWT format"),t||e})})}return Promise.resolve(!1)},e.prototype._revokeAccessTokenInternal=function t(e,r){return!e||e.indexOf(".")>=0?Promise.resolve(!1):this._tokenRevocationClient.revoke(e,r).then(function(){return!0})},e.prototype._revokeRefreshTokenInternal=function t(e,r){return e?this._tokenRevocationClient.revoke(e,r,"refresh_token").then(function(){return!0}):Promise.resolve(!1)},e.prototype.startSilentRenew=function t(){this._silentRenewService.start()},e.prototype.stopSilentRenew=function t(){this._silentRenewService.stop()},e.prototype._loadUser=function t(){return this._userStore.get(this._userStoreKey).then(function(t){return t?(i.Log.debug("UserManager._loadUser: user storageString loaded"),a.User.fromStorageString(t)):(i.Log.debug("UserManager._loadUser: no user storageString"),null)})},e.prototype.storeUser=function t(e){if(e){i.Log.debug("UserManager.storeUser: storing user");var r=e.toStorageString();return this._userStore.set(this._userStoreKey,r)}return i.Log.debug("storeUser.storeUser: removing user"),this._userStore.remove(this._userStoreKey)},n(e,[{key:"_redirectNavigator",get:function t(){return this.settings.redirectNavigator}},{key:"_popupNavigator",get:function t(){return this.settings.popupNavigator}},{key:"_iframeNavigator",get:function t(){return this.settings.iframeNavigator}},{key:"_userStore",get:function t(){return this.settings.userStore}},{key:"events",get:function t(){return this._events}},{key:"_userStoreKey",get:function t(){return"user:"+this.settings.authority+":"+this.settings.client_id}}]),e}(o.OidcClient)},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.UserManagerSettings=void 0;var n=function(){function t(t,e){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{},n=r.popup_redirect_uri,i=r.popup_post_logout_redirect_uri,p=r.popupWindowFeatures,d=r.popupWindowTarget,g=r.silent_redirect_uri,v=r.silentRequestTimeout,y=r.automaticSilentRenew,m=void 0!==y&&y,_=r.validateSubOnSilentRenew,S=void 0!==_&&_,b=r.includeIdTokenInSilentRenew,w=void 0===b||b,F=r.monitorSession,E=void 0===F||F,x=r.monitorAnonymousSession,A=void 0!==x&&x,k=r.checkSessionInterval,P=void 0===k?l:k,C=r.stopCheckSessionOnError,T=void 0===C||C,R=r.query_status_response_type,I=r.revokeAccessTokenOnSignout,O=void 0!==I&&I,D=r.accessTokenExpiringNotificationTime,N=void 0===D?h:D,L=r.redirectNavigator,M=void 0===L?new o.RedirectNavigator:L,j=r.popupNavigator,U=void 0===j?new s.PopupNavigator:j,B=r.iframeNavigator,H=void 0===B?new a.IFrameNavigator:B,V=r.userStore,K=void 0===V?new u.WebStorageStateStore({store:c.Global.sessionStorage}):V;!function q(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e);var W=function J(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}(this,t.call(this,arguments[0]));return W._popup_redirect_uri=n,W._popup_post_logout_redirect_uri=i,W._popupWindowFeatures=p,W._popupWindowTarget=d,W._silent_redirect_uri=g,W._silentRequestTimeout=v,W._automaticSilentRenew=m,W._validateSubOnSilentRenew=S,W._includeIdTokenInSilentRenew=w,W._accessTokenExpiringNotificationTime=N,W._monitorSession=E,W._monitorAnonymousSession=A,W._checkSessionInterval=P,W._stopCheckSessionOnError=T,R?W._query_status_response_type=R:arguments[0]&&arguments[0].response_type?W._query_status_response_type=f.SigninRequest.isOidc(arguments[0].response_type)?"id_token":"code":W._query_status_response_type="id_token",W._revokeAccessTokenOnSignout=O,W._redirectNavigator=M,W._popupNavigator=U,W._iframeNavigator=H,W._userStore=K,W}return function r(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,t),n(e,[{key:"popup_redirect_uri",get:function t(){return this._popup_redirect_uri}},{key:"popup_post_logout_redirect_uri",get:function t(){return this._popup_post_logout_redirect_uri}},{key:"popupWindowFeatures",get:function t(){return this._popupWindowFeatures}},{key:"popupWindowTarget",get:function t(){return this._popupWindowTarget}},{key:"silent_redirect_uri",get:function t(){return this._silent_redirect_uri}},{key:"silentRequestTimeout",get:function t(){return this._silentRequestTimeout}},{key:"automaticSilentRenew",get:function t(){return this._automaticSilentRenew}},{key:"validateSubOnSilentRenew",get:function t(){return this._validateSubOnSilentRenew}},{key:"includeIdTokenInSilentRenew",get:function t(){return this._includeIdTokenInSilentRenew}},{key:"accessTokenExpiringNotificationTime",get:function t(){return this._accessTokenExpiringNotificationTime}},{key:"monitorSession",get:function t(){return this._monitorSession}},{key:"monitorAnonymousSession",get:function t(){return this._monitorAnonymousSession}},{key:"checkSessionInterval",get:function t(){return this._checkSessionInterval}},{key:"stopCheckSessionOnError",get:function t(){return this._stopCheckSessionOnError}},{key:"query_status_response_type",get:function t(){return this._query_status_response_type}},{key:"revokeAccessTokenOnSignout",get:function t(){return this._revokeAccessTokenOnSignout}},{key:"redirectNavigator",get:function t(){return this._redirectNavigator}},{key:"popupNavigator",get:function t(){return this._popupNavigator}},{key:"iframeNavigator",get:function t(){return this._iframeNavigator}},{key:"userStore",get:function t(){return this._userStore}}]),e}(i.OidcClientSettings)},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.RedirectNavigator=void 0;var n=function(){function t(t,e){for(var r=0;r1&&void 0!==arguments[1])||arguments[1];n.Log.debug("UserManagerEvents.load"),t.prototype.load.call(this,r),i&&this._userLoaded.raise(r)},e.prototype.unload=function e(){n.Log.debug("UserManagerEvents.unload"),t.prototype.unload.call(this),this._userUnloaded.raise()},e.prototype.addUserLoaded=function t(e){this._userLoaded.addHandler(e)},e.prototype.removeUserLoaded=function t(e){this._userLoaded.removeHandler(e)},e.prototype.addUserUnloaded=function t(e){this._userUnloaded.addHandler(e)},e.prototype.removeUserUnloaded=function t(e){this._userUnloaded.removeHandler(e)},e.prototype.addSilentRenewError=function t(e){this._silentRenewError.addHandler(e)},e.prototype.removeSilentRenewError=function t(e){this._silentRenewError.removeHandler(e)},e.prototype._raiseSilentRenewError=function t(e){n.Log.debug("UserManagerEvents._raiseSilentRenewError",e.message),this._silentRenewError.raise(e)},e.prototype.addUserSignedIn=function t(e){this._userSignedIn.addHandler(e)},e.prototype.removeUserSignedIn=function t(e){this._userSignedIn.removeHandler(e)},e.prototype._raiseUserSignedIn=function t(){n.Log.debug("UserManagerEvents._raiseUserSignedIn"),this._userSignedIn.raise()},e.prototype.addUserSignedOut=function t(e){this._userSignedOut.addHandler(e)},e.prototype.removeUserSignedOut=function t(e){this._userSignedOut.removeHandler(e)},e.prototype._raiseUserSignedOut=function t(){n.Log.debug("UserManagerEvents._raiseUserSignedOut"),this._userSignedOut.raise()},e.prototype.addUserSessionChanged=function t(e){this._userSessionChanged.addHandler(e)},e.prototype.removeUserSessionChanged=function t(e){this._userSessionChanged.removeHandler(e)},e.prototype._raiseUserSessionChanged=function t(){n.Log.debug("UserManagerEvents._raiseUserSessionChanged"),this._userSessionChanged.raise()},e}(i.AccessTokenEvents)},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Timer=void 0;var n=function(){function t(t,e){for(var r=0;r1&&void 0!==arguments[1]?arguments[1]:o.Global.timer,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0;!function s(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e);var a=function u(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}(this,t.call(this,r));return a._timer=n,a._nowFunc=i||function(){return Date.now()/1e3},a}return function r(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,t),e.prototype.init=function t(e){e<=0&&(e=1),e=parseInt(e);var r=this.now+e;if(this.expiration===r&&this._timerHandle)i.Log.debug("Timer.init timer "+this._name+" skipping initialization since already initialized for expiration:",this.expiration);else{this.cancel(),i.Log.debug("Timer.init timer "+this._name+" for duration:",e),this._expiration=r;var n=5;e + + + + + + + + +

    Waiting...

    +
    + + + + + diff --git a/SitefinityWebApp/AdminApp/assets/auth/silent-renew.js b/SitefinityWebApp/AdminApp/assets/auth/silent-renew.js new file mode 100644 index 0000000..a0432b0 --- /dev/null +++ b/SitefinityWebApp/AdminApp/assets/auth/silent-renew.js @@ -0,0 +1 @@ +new Oidc.UserManager().signinSilentCallback(); diff --git a/SitefinityWebApp/AdminApp/assets/fonts/font-awesome/FontAwesome.otf b/SitefinityWebApp/AdminApp/assets/fonts/font-awesome/FontAwesome.otf new file mode 100644 index 0000000..401ec0f Binary files /dev/null and b/SitefinityWebApp/AdminApp/assets/fonts/font-awesome/FontAwesome.otf differ diff --git a/SitefinityWebApp/AdminApp/assets/fonts/font-awesome/fontawesome-webfont.eot b/SitefinityWebApp/AdminApp/assets/fonts/font-awesome/fontawesome-webfont.eot new file mode 100644 index 0000000..e9f60ca Binary files /dev/null and b/SitefinityWebApp/AdminApp/assets/fonts/font-awesome/fontawesome-webfont.eot differ diff --git a/SitefinityWebApp/AdminApp/assets/fonts/font-awesome/fontawesome-webfont.svg b/SitefinityWebApp/AdminApp/assets/fonts/font-awesome/fontawesome-webfont.svg new file mode 100644 index 0000000..855c845 --- /dev/null +++ b/SitefinityWebApp/AdminApp/assets/fonts/font-awesome/fontawesome-webfont.svg @@ -0,0 +1,2671 @@ + + + + +Created by FontForge 20120731 at Mon Oct 24 17:37:40 2016 + By ,,, +Copyright Dave Gandy 2016. All rights reserved. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SitefinityWebApp/AdminApp/assets/fonts/font-awesome/fontawesome-webfont.ttf b/SitefinityWebApp/AdminApp/assets/fonts/font-awesome/fontawesome-webfont.ttf new file mode 100644 index 0000000..35acda2 Binary files /dev/null and b/SitefinityWebApp/AdminApp/assets/fonts/font-awesome/fontawesome-webfont.ttf differ diff --git a/SitefinityWebApp/AdminApp/assets/fonts/font-awesome/fontawesome-webfont.woff b/SitefinityWebApp/AdminApp/assets/fonts/font-awesome/fontawesome-webfont.woff new file mode 100644 index 0000000..400014a Binary files /dev/null and b/SitefinityWebApp/AdminApp/assets/fonts/font-awesome/fontawesome-webfont.woff differ diff --git a/SitefinityWebApp/AdminApp/assets/fonts/font-awesome/fontawesome-webfont.woff2 b/SitefinityWebApp/AdminApp/assets/fonts/font-awesome/fontawesome-webfont.woff2 new file mode 100644 index 0000000..4d13fc6 Binary files /dev/null and b/SitefinityWebApp/AdminApp/assets/fonts/font-awesome/fontawesome-webfont.woff2 differ diff --git a/SitefinityWebApp/AdminApp/assets/fonts/open-sans/OpenSans-Bold.ttf b/SitefinityWebApp/AdminApp/assets/fonts/open-sans/OpenSans-Bold.ttf new file mode 100644 index 0000000..efdd5e8 Binary files /dev/null and b/SitefinityWebApp/AdminApp/assets/fonts/open-sans/OpenSans-Bold.ttf differ diff --git a/SitefinityWebApp/AdminApp/assets/fonts/open-sans/OpenSans-Light.ttf b/SitefinityWebApp/AdminApp/assets/fonts/open-sans/OpenSans-Light.ttf new file mode 100644 index 0000000..6580d3a Binary files /dev/null and b/SitefinityWebApp/AdminApp/assets/fonts/open-sans/OpenSans-Light.ttf differ diff --git a/SitefinityWebApp/AdminApp/assets/fonts/open-sans/OpenSans-Regular.ttf b/SitefinityWebApp/AdminApp/assets/fonts/open-sans/OpenSans-Regular.ttf new file mode 100644 index 0000000..29bfd35 Binary files /dev/null and b/SitefinityWebApp/AdminApp/assets/fonts/open-sans/OpenSans-Regular.ttf differ diff --git a/SitefinityWebApp/AdminApp/assets/fonts/open-sans/OpenSansCondensed-Bold.ttf b/SitefinityWebApp/AdminApp/assets/fonts/open-sans/OpenSansCondensed-Bold.ttf new file mode 100644 index 0000000..f756951 Binary files /dev/null and b/SitefinityWebApp/AdminApp/assets/fonts/open-sans/OpenSansCondensed-Bold.ttf differ diff --git a/SitefinityWebApp/AdminApp/assets/images/ProgressSitefinityCms.min.svg b/SitefinityWebApp/AdminApp/assets/images/ProgressSitefinityCms.min.svg new file mode 100644 index 0000000..1a7447c --- /dev/null +++ b/SitefinityWebApp/AdminApp/assets/images/ProgressSitefinityCms.min.svg @@ -0,0 +1 @@ +SitefinityCMS \ No newline at end of file diff --git a/SitefinityWebApp/AdminApp/assets/images/sfLoadingData.gif b/SitefinityWebApp/AdminApp/assets/images/sfLoadingData.gif new file mode 100644 index 0000000..b20bc09 Binary files /dev/null and b/SitefinityWebApp/AdminApp/assets/images/sfLoadingData.gif differ diff --git a/SitefinityWebApp/AdminApp/assets/js/kendo-editor/kendo.custom.min.js b/SitefinityWebApp/AdminApp/assets/js/kendo-editor/kendo.custom.min.js index fe00c50..0101da8 100644 --- a/SitefinityWebApp/AdminApp/assets/js/kendo-editor/kendo.custom.min.js +++ b/SitefinityWebApp/AdminApp/assets/js/kendo-editor/kendo.custom.min.js @@ -1,15 +1,28 @@ -!function(e,define){define("kendo.core.min",["jquery"],e)}(function(){return function(e,t,n){function r(){}function o(e,t){if(t)return"'"+e.split("'").join("\\'").split('\\"').join('\\\\\\"').replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\t/g,"\\t")+"'";var n=e.charAt(0),r=e.substring(1);return"="===n?"+("+r+")+":":"===n?"+$kendoHtmlEncode("+r+")+":";"+e+";$kendoOutput+="}function i(e,t,n){return e+="",t=t||2,n=t-e.length,n?L[t].substring(0,n)+e:e}function a(e){var t=e.css(ye.support.transitions.css+"box-shadow")||e.css("box-shadow"),n=t?t.match(ze)||[0,0,0,0,0]:[0,0,0,0,0],r=Te.max(+n[3],+(n[4]||0));return{left:-n[1]+r,right:+n[1]+r,bottom:+n[2]+r}}function s(t,n){var r,o,i,a,s,u,l,c=ke.browser,d=ye._outerWidth,f=ye._outerHeight;return t.parent().hasClass("k-animation-container")?(u=t.parent(".k-animation-container"),l=u[0].style,u.is(":hidden")&&u.css({display:"",position:""}),r=Oe.test(l.width)||Oe.test(l.height),r||u.css({width:n?d(t)+1:d(t),height:f(t),boxSizing:"content-box",mozBoxSizing:"content-box",webkitBoxSizing:"content-box"})):(o=t[0].style.width,i=t[0].style.height,a=Oe.test(o),s=Oe.test(i),r=a||s,!a&&(!n||n&&o)&&(o=n?d(t)+1:d(t)),!s&&(!n||n&&i)&&(i=f(t)),t.wrap(e("
    ',h+=i;a[l]=d}this._renderResult=a}else this._renderResult=null},t.prototype.render=function(e,t){if(!this._renderResult)return"";var n=t-e;if(n<0||n>=this._renderResult.length)throw new Error("Unexpected render request");return this._renderResult[n]},t}(n.DynamicViewOverlay);t.IndentGuidesOverlay=s,i.registerThemingParticipant(function(e,t){var n=e.getColor(o.editorIndentGuides);n&&t.addRule(".monaco-editor .lines-content .cigr { background-color: "+n+"; }")})}),define(d[171],h([0,1,36,14,15,60,12,380]),function(e,t,n,i,o,r,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var a=function(e){function t(t){var n=e.call(this)||this;return n._context=t,n._readConfig(),n._lastCursorModelPosition=new s.Position(1,1),n._renderResult=null,n._context.addEventHandler(n),n}return f(t,e),t.prototype._readConfig=function(){var e=this._context.configuration.editor;this._lineHeight=e.lineHeight,this._renderLineNumbers=e.viewInfo.renderLineNumbers,this._renderCustomLineNumbers=e.viewInfo.renderCustomLineNumbers,this._renderRelativeLineNumbers=e.viewInfo.renderRelativeLineNumbers,this._lineNumbersLeft=e.layoutInfo.lineNumbersLeft,this._lineNumbersWidth=e.layoutInfo.lineNumbersWidth},t.prototype.dispose=function(){this._context.removeEventHandler(this),this._context=null,this._renderResult=null,e.prototype.dispose.call(this)},t.prototype.onConfigurationChanged=function(e){return this._readConfig(),!0},t.prototype.onCursorStateChanged=function(e){var t=e.selections[0].getPosition();return this._lastCursorModelPosition=this._context.model.coordinatesConverter.convertViewPositionToModelPosition(t),!!this._renderRelativeLineNumbers},t.prototype.onFlushed=function(e){return!0},t.prototype.onLinesChanged=function(e){return!0},t.prototype.onLinesDeleted=function(e){return!0},t.prototype.onLinesInserted=function(e){return!0},t.prototype.onScrollChanged=function(e){return e.scrollTopChanged},t.prototype.onZonesChanged=function(e){return!0},t.prototype._getLineRenderLineNumber=function(e){var t=this._context.model.coordinatesConverter.convertViewPositionToModelPosition(new s.Position(e,1));if(1!==t.column)return"";var n=t.lineNumber;if(this._renderCustomLineNumbers)return this._renderCustomLineNumbers(n);if(this._renderRelativeLineNumbers){var i=Math.abs(this._lastCursorModelPosition.lineNumber-n);return 0===i?''+n+"":String(i)}return String(n)},t.prototype.prepareRender=function(e){if(this._renderLineNumbers){for(var n=o.isLinux?this._lineHeight%2==0?" lh-even":" lh-odd":"",i=e.visibleRange.startLineNumber,r=e.visibleRange.endLineNumber,s='
    ',a=[],u=i;u<=r;u++){var l=u-i,c=this._getLineRenderLineNumber(u);a[l]=c?s+c+"
    ":""}this._renderResult=a}else this._renderResult=null},t.prototype.render=function(e,t){if(!this._renderResult)return"";var n=t-e;if(n<0||n>=this._renderResult.length)throw new Error("Unexpected render request");return this._renderResult[n]},t}(r.DynamicViewOverlay);a.CLASS_NAME="line-numbers",t.LineNumbersOverlay=a,i.registerThemingParticipant(function(e,t){var i=e.getColor(n.editorLineNumbers);i&&t.addRule(".monaco-editor .line-numbers { color: "+i+"; }")})}),define(d[489],h([0,1,15,30,179,178,2,22,12,65,56,26,35,153,171,386]),function(e,t,n,i,o,r,s,a,u,l,c,d,h,p,g){"use strict";function m(e,t){var n=document.createElement("canvas").getContext("2d");n.font=v(t);var o=n.measureText(e);return i.isFirefox?o.width+2:o.width}function v(e){return _("normal",e.fontWeight,e.fontSize,e.lineHeight,e.fontFamily)}function _(e,t,n,i,o){return e+" normal "+t+" "+n+"px / "+i+"px "+o}Object.defineProperty(t,"__esModule",{value:!0});var y=function(){function e(e,t,n){this.top=e,this.left=t,this.width=n}return e.prototype.setWidth=function(t){return new e(this.top,this.left,t)},e}(),b=i.isEdgeOrIE||i.isFirefox,C=function(e){function t(t,n,u){var l=e.call(this,t)||this;l._primaryCursorVisibleRange=null,l._viewController=n,l._viewHelper=u;var p=l._context.configuration.editor;l._pixelRatio=p.pixelRatio,l._accessibilitySupport=p.accessibilitySupport,l._contentLeft=p.layoutInfo.contentLeft,l._contentWidth=p.layoutInfo.contentWidth,l._contentHeight=p.layoutInfo.contentHeight,l._scrollLeft=0,l._scrollTop=0,l._fontInfo=p.fontInfo,l._lineHeight=p.lineHeight,l._emptySelectionClipboard=p.emptySelectionClipboard,l._visibleTextArea=null,l._selections=[new a.Selection(1,1,1,1)],l._lastCopiedValue=null,l._lastCopiedValueIsFromEmptySelection=!1,l.textArea=d.createFastDomNode(document.createElement("textarea")),h.PartFingerprints.write(l.textArea,6),l.textArea.setClassName("inputarea"),l.textArea.setAttribute("wrap","off"),l.textArea.setAttribute("autocorrect","off"),l.textArea.setAttribute("autocapitalize","off"),l.textArea.setAttribute("autocomplete","off"),l.textArea.setAttribute("spellcheck","false"),l.textArea.setAttribute("aria-label",p.viewInfo.ariaLabel),l.textArea.setAttribute("role","textbox"),l.textArea.setAttribute("aria-multiline","true"),l.textArea.setAttribute("aria-haspopup","false"),l.textArea.setAttribute("aria-autocomplete","both"),l.textAreaCover=d.createFastDomNode(document.createElement("div")),l.textAreaCover.setPosition("absolute");var f={getLineCount:function(){return l._context.model.getLineCount()},getLineMaxColumn:function(e){return l._context.model.getLineMaxColumn(e)},getValueInRange:function(e,t){return l._context.model.getValueInRange(e,t)}},g={getPlainTextToCopy:function(){var e=l._context.model.getPlainTextToCopy(l._selections,l._emptySelectionClipboard);if(l._emptySelectionClipboard){i.isFirefox?l._lastCopiedValue=e.replace(/\r\n/g,"\n"):l._lastCopiedValue=e;var t=l._selections;l._lastCopiedValueIsFromEmptySelection=1===t.length&&t[0].isEmpty()}return e},getHTMLToCopy:function(){return l._context.model.getHTMLToCopy(l._selections,l._emptySelectionClipboard)},getScreenReaderContent:function(e){return i.isIPad?r.TextAreaState.EMPTY:1===l._accessibilitySupport?r.TextAreaState.EMPTY:r.PagedScreenReaderStrategy.fromEditorSelection(e,f,l._selections[0])}};return l._textAreaInput=l._register(new o.TextAreaInput(g,l.textArea)),l._register(l._textAreaInput.onKeyDown(function(e){l._viewController.emitKeyDown(e)})),l._register(l._textAreaInput.onKeyUp(function(e){l._viewController.emitKeyUp(e)})),l._register(l._textAreaInput.onPaste(function(e){var t=!1;l._emptySelectionClipboard&&(t=e.text===l._lastCopiedValue&&l._lastCopiedValueIsFromEmptySelection),l._viewController.paste("keyboard",e.text,t)})),l._register(l._textAreaInput.onCut(function(){l._viewController.cut("keyboard")})),l._register(l._textAreaInput.onType(function(e){e.replaceCharCnt?l._viewController.replacePreviousChar("keyboard",e.text,e.replaceCharCnt):l._viewController.type("keyboard",e.text)})),l._register(l._textAreaInput.onCompositionStart(function(){var e=l._selections[0].startLineNumber,t=l._selections[0].startColumn;l._context.privateViewEventBus.emit(new c.ViewRevealRangeRequestEvent(new s.Range(e,t,e,t),0,!0));var n=l._viewHelper.visibleRangeForPositionRelativeToEditor(e,t);n&&(l._visibleTextArea=new y(l._context.viewLayout.getVerticalOffsetForLineNumber(e),n.left,b?0:1),l._render()),l.textArea.setClassName("inputarea ime-input"),l._viewController.compositionStart("keyboard")})),l._register(l._textAreaInput.onCompositionUpdate(function(e){i.isEdgeOrIE?l._visibleTextArea=l._visibleTextArea.setWidth(0):l._visibleTextArea=l._visibleTextArea.setWidth(m(e.data,l._fontInfo)),l._render()})),l._register(l._textAreaInput.onCompositionEnd(function(){l._visibleTextArea=null,l._render(),l.textArea.setClassName("inputarea"),l._viewController.compositionEnd("keyboard")})),l._register(l._textAreaInput.onFocus(function(){l._context.privateViewEventBus.emit(new c.ViewFocusChangedEvent(!0))})),l._register(l._textAreaInput.onBlur(function(){l._context.privateViewEventBus.emit(new c.ViewFocusChangedEvent(!1))})),l}return f(t,e),t.prototype.dispose=function(){e.prototype.dispose.call(this)},t.prototype.onConfigurationChanged=function(e){var t=this._context.configuration.editor;return e.fontInfo&&(this._fontInfo=t.fontInfo),e.viewInfo&&this.textArea.setAttribute("aria-label",t.viewInfo.ariaLabel),e.layoutInfo&&(this._contentLeft=t.layoutInfo.contentLeft,this._contentWidth=t.layoutInfo.contentWidth,this._contentHeight=t.layoutInfo.contentHeight),e.lineHeight&&(this._lineHeight=t.lineHeight),e.pixelRatio&&(this._pixelRatio=t.pixelRatio),e.accessibilitySupport&&(this._accessibilitySupport=t.accessibilitySupport,this._textAreaInput.writeScreenReaderContent("strategy changed")),e.emptySelectionClipboard&&(this._emptySelectionClipboard=t.emptySelectionClipboard),!0},t.prototype.onCursorStateChanged=function(e){return this._selections=e.selections.slice(0),this._textAreaInput.writeScreenReaderContent("selection changed"),!0},t.prototype.onDecorationsChanged=function(e){return!0},t.prototype.onFlushed=function(e){return!0},t.prototype.onLinesChanged=function(e){return!0},t.prototype.onLinesDeleted=function(e){return!0},t.prototype.onLinesInserted=function(e){return!0},t.prototype.onScrollChanged=function(e){return this._scrollLeft=e.scrollLeft,this._scrollTop=e.scrollTop,!0},t.prototype.onZonesChanged=function(e){return!0},t.prototype.isFocused=function(){return this._textAreaInput.isFocused()},t.prototype.focusTextArea=function(){this._textAreaInput.focusTextArea()},t.prototype.setAriaActiveDescendant=function(e){e?(this.textArea.setAttribute("role","combobox"),this.textArea.getAttribute("aria-activedescendant")!==e&&(this.textArea.setAttribute("aria-haspopup","true"),this.textArea.setAttribute("aria-activedescendant",e))):(this.textArea.setAttribute("role","textbox"),this.textArea.removeAttribute("aria-activedescendant"),this.textArea.removeAttribute("aria-haspopup"))},t.prototype.prepareRender=function(e){if(2===this._accessibilitySupport)this._primaryCursorVisibleRange=null;else{var t=new u.Position(this._selections[0].positionLineNumber,this._selections[0].positionColumn);this._primaryCursorVisibleRange=e.visibleRangeForPosition(t)}},t.prototype.render=function(e){this._textAreaInput.writeScreenReaderContent("render"),this._render()},t.prototype._render=function(){if(this._visibleTextArea)this._renderInsideEditor(this._visibleTextArea.top-this._scrollTop,this._contentLeft+this._visibleTextArea.left-this._scrollLeft,this._visibleTextArea.width,this._lineHeight,!0);else if(this._primaryCursorVisibleRange){var e=this._contentLeft+this._primaryCursorVisibleRange.left-this._scrollLeft;if(ethis._contentLeft+this._contentWidth)this._renderAtTopLeft();else{var t=this._context.viewLayout.getVerticalOffsetForLineNumber(this._selections[0].positionLineNumber)-this._scrollTop;t<0||t>this._contentHeight?this._renderAtTopLeft():this._renderInsideEditor(t,e,b?0:1,b?0:1,!1)}}else this._renderAtTopLeft()},t.prototype._renderInsideEditor=function(e,t,n,i,o){var r=this.textArea,s=this.textAreaCover;o?l.Configuration.applyFontInfo(r,this._fontInfo):(r.setFontSize(1),r.setLineHeight(this._fontInfo.lineHeight)),r.setTop(e),r.setLeft(t),r.setWidth(n),r.setHeight(i),s.setTop(0),s.setLeft(0),s.setWidth(0),s.setHeight(0)},t.prototype._renderAtTopLeft=function(){var e=this.textArea,t=this.textAreaCover;if(l.Configuration.applyFontInfo(e,this._fontInfo),e.setTop(0),e.setLeft(0),t.setTop(0),t.setLeft(0),b)return e.setWidth(0),e.setHeight(0),t.setWidth(0),void t.setHeight(0);e.setWidth(1),e.setHeight(1),t.setWidth(1),t.setHeight(1),this._context.configuration.editor.viewInfo.glyphMargin?t.setClassName("monaco-editor-background textAreaCover "+p.Margin.CLASS_NAME):this._context.configuration.editor.viewInfo.renderLineNumbers?t.setClassName("monaco-editor-background textAreaCover "+g.LineNumbersOverlay.CLASS_NAME):t.setClassName("monaco-editor-background textAreaCover")},t}(h.ViewPart);t.TextAreaHandler=C}),define(d[490],h([0,1,26,35,14,36,6,318]),function(e,t,n,i,o,r,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var a=function(e){function t(t){var i=e.call(this,t)||this;return i.domNode=n.createFastDomNode(document.createElement("div")),i.domNode.setAttribute("role","presentation"),i.domNode.setAttribute("aria-hidden","true"),i.domNode.setClassName("view-rulers"),i._renderedRulers=[],i._rulers=i._context.configuration.editor.viewInfo.rulers,i._height=i._context.configuration.editor.layoutInfo.contentHeight,i._typicalHalfwidthCharacterWidth=i._context.configuration.editor.fontInfo.typicalHalfwidthCharacterWidth,i}return f(t,e),t.prototype.dispose=function(){e.prototype.dispose.call(this)},t.prototype.onConfigurationChanged=function(e){return!!(e.viewInfo||e.layoutInfo||e.fontInfo)&&(this._rulers=this._context.configuration.editor.viewInfo.rulers,this._height=this._context.configuration.editor.layoutInfo.contentHeight,this._typicalHalfwidthCharacterWidth=this._context.configuration.editor.fontInfo.typicalHalfwidthCharacterWidth,!0)},t.prototype.onScrollChanged=function(e){return e.scrollHeightChanged},t.prototype.prepareRender=function(e){},t.prototype._ensureRulersCount=function(){var e=this._renderedRulers.length,t=this._rulers.length;if(e!==t)if(e0;)(a=n.createFastDomNode(document.createElement("div"))).setClassName("view-ruler"),a.setWidth(i),this.domNode.appendChild(a),this._renderedRulers.push(a),o--;else for(var r=e-t;r>0;){var a=this._renderedRulers.pop();this.domNode.removeChild(a),r--}},t.prototype.render=function(e){this._ensureRulersCount();for(var t=0,n=this._rulers.length;tt.length)for(var a=this._secondaryCursors.length-t.length,r=0;r0){var _=e[r-1];m=0===_.originalEndLineNumber?_.originalStartLineNumber+1:_.originalEndLineNumber+1,v=0===_.modifiedEndLineNumber?_.modifiedStartLineNumber+1:_.modifiedEndLineNumber+1}var y=f-3+1,b=g-3+1;yL&&(M+=k=L-M,T+=k),T>x){var k=x-T;M+=k,T+=k}h[p++]=new S(C,M,w,T),i[o++]=new E(h)}for(var I=i[0].entries,D=[],O=0,r=1,s=i.length;rg)&&(g=C),0!==w&&(0===m||wv)&&(v=S)}var E=document.createElement("div");E.className="diff-review-row";var L=document.createElement("div");L.className="diff-review-cell diff-review-summary",L.appendChild(document.createTextNode(d+1+"/"+this._diffs.length+": @@ -"+f+","+(g-f+1)+" +"+m+","+(v-m+1)+" @@")),E.setAttribute("data-line",String(m)),E.setAttribute("aria-label",n.localize(1,null,d+1,this._diffs.length,f,g-f+1,m,v-m+1)),E.appendChild(L),E.setAttribute("role","listitem"),p.appendChild(E);for(var x=m,_=0,y=h.length;_=i)s.push(a),o++;else{var u=t[n],l=u.compareTo(a);l<0?n++:l>0?(s.push(a),o++):(s.push(u),n++,o++)}}this._zones=s},e.prototype.setLineHeight=function(e){return this._lineHeight!==e&&(this._lineHeight=e,this._colorZonesInvalid=!0,!0)},e.prototype.setPixelRatio=function(e){this._pixelRatio=e,this._colorZonesInvalid=!0},e.prototype.getDOMWidth=function(){return this._domWidth},e.prototype.getCanvasWidth=function(){return this._domWidth*this._pixelRatio},e.prototype.setDOMWidth=function(e){return this._domWidth!==e&&(this._domWidth=e,this._colorZonesInvalid=!0,!0)},e.prototype.getDOMHeight=function(){return this._domHeight},e.prototype.getCanvasHeight=function(){return this._domHeight*this._pixelRatio},e.prototype.setDOMHeight=function(e){return this._domHeight!==e&&(this._domHeight=e,this._colorZonesInvalid=!0,!0)},e.prototype.getOuterHeight=function(){return this._outerHeight},e.prototype.setOuterHeight=function(e){return this._outerHeight!==e&&(this._outerHeight=e,this._colorZonesInvalid=!0,!0)},e.prototype.setMaximumHeight=function(e){return this._maximumHeight!==e&&(this._maximumHeight=e,this._colorZonesInvalid=!0,!0)},e.prototype.setMinimumHeight=function(e){return this._minimumHeight!==e&&(this._minimumHeight=e,this._colorZonesInvalid=!0,!0)},e.prototype.setThemeType=function(e){return this._themeType!==e&&(this._themeType=e,this._colorZonesInvalid=!0,!0)},e.prototype.resolveColorZones=function(){for(var e=this._colorZonesInvalid,t=Math.floor(this._lineHeight),n=Math.floor(this.getCanvasHeight()),i=Math.floor(this._maximumHeight*this._pixelRatio),o=Math.floor(this._minimumHeight*this._pixelRatio),r=this._themeType,s=n/Math.floor(this._outerHeight),a=[],u=0,l=this._zones.length;u_)for(var y=c.startLineNumber;y<=c.endLineNumber;y++)v=(m=Math.floor(this._getVerticalOffsetForLine(y)))+t,m=Math.floor(m*s),v=Math.floor(v*s),f.push(this.createZone(n,m,v,o,i,c.getColor(r),c.position));else f.push(this.createZone(n,m,v,o,_,c.getColor(r),c.position))}c.setColorZones(f);for(var h=0,p=f.length;hr/2&&(l=r/2),le&&(u=e-l);var c=this._color2Id[s];return c||(c=++this._lastAssignedId,this._color2Id[s]=c,this._id2Color[c]=s),new i(u-l,u+l,c,a)},e}();t.OverviewZoneManager=r}),define(d[156],h([0,1,26,21,143,14]),function(e,t,n,i,o,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var s=function(){function e(e,t,i,s,a,u,l,c){this._canvasLeftOffset=e,this._domNode=n.createFastDomNode(document.createElement("canvas")),this._domNode.setClassName(t),this._domNode.setPosition("absolute"),this._domNode.setLayerHinting(!0),this._lanesCount=3,this._background=null,this._zoneManager=new o.OverviewZoneManager(c),this._zoneManager.setMinimumHeight(u),this._zoneManager.setMaximumHeight(l),this._zoneManager.setThemeType(r.LIGHT),this._zoneManager.setDOMWidth(0),this._zoneManager.setDOMHeight(0),this._zoneManager.setOuterHeight(i),this._zoneManager.setLineHeight(s),this._zoneManager.setPixelRatio(a)}return e.prototype.dispose=function(){this._zoneManager=null},e.prototype.setLayout=function(e,t){this._domNode.setTop(e.top),this._domNode.setRight(e.right);var n=!1;n=this._zoneManager.setDOMWidth(e.width)||n,(n=this._zoneManager.setDOMHeight(e.height)||n)&&(this._domNode.setWidth(this._zoneManager.getDOMWidth()),this._domNode.setHeight(this._zoneManager.getDOMHeight()),this._domNode.domNode.width=this._zoneManager.getCanvasWidth(),this._domNode.domNode.height=this._zoneManager.getCanvasHeight(),t&&this.render(!0))},e.prototype.getLanesCount=function(){return this._lanesCount},e.prototype.setLanesCount=function(e,t){this._lanesCount=e,t&&this.render(!0)},e.prototype.setThemeType=function(e,t){this._zoneManager.setThemeType(e),t&&this.render(!0)},e.prototype.setUseBackground=function(e,t){this._background=e,t&&this.render(!0)},e.prototype.getDomNode=function(){return this._domNode.domNode},e.prototype.getPixelWidth=function(){return this._zoneManager.getCanvasWidth()},e.prototype.getPixelHeight=function(){return this._zoneManager.getCanvasHeight()},e.prototype.setScrollHeight=function(e,t){this._zoneManager.setOuterHeight(e),t&&this.render(!0)},e.prototype.setLineHeight=function(e,t){this._zoneManager.setLineHeight(e),t&&this.render(!0)},e.prototype.setPixelRatio=function(e,t){this._zoneManager.setPixelRatio(e),this._domNode.setWidth(this._zoneManager.getDOMWidth()),this._domNode.setHeight(this._zoneManager.getDOMHeight()),this._domNode.domNode.width=this._zoneManager.getCanvasWidth(),this._domNode.domNode.height=this._zoneManager.getCanvasHeight(),t&&this.render(!0)},e.prototype.setZones=function(e,t){this._zoneManager.setZones(e),t&&this.render(!1)},e.prototype.render=function(e){if(0===this._zoneManager.getOuterHeight())return!1;var t=this._zoneManager.getCanvasWidth(),n=this._zoneManager.getCanvasHeight(),i=this._zoneManager.resolveColorZones(),o=this._zoneManager.getId2Color(),r=this._domNode.domNode.getContext("2d");if(null===this._background?r.clearRect(0,0,t,n):(r.fillStyle=this._background.toRGBHex(),r.fillRect(0,0,t,n)),i.length>0){var s=t-this._canvasLeftOffset;this._lanesCount>=3?this._renderThreeLanes(r,i,o,s):2===this._lanesCount?this._renderTwoLanes(r,i,o,s):1===this._lanesCount&&this._renderOneLane(r,i,o,s)}return!0},e.prototype._renderOneLane=function(e,t,n,o){this._renderVerticalPatch(e,t,n,i.OverviewRulerLane.Left|i.OverviewRulerLane.Center|i.OverviewRulerLane.Right,this._canvasLeftOffset,o)},e.prototype._renderTwoLanes=function(e,t,n,o){var r=Math.floor(o/2),s=o-r,a=this._canvasLeftOffset,u=this._canvasLeftOffset+r;this._renderVerticalPatch(e,t,n,i.OverviewRulerLane.Left|i.OverviewRulerLane.Center,a,r),this._renderVerticalPatch(e,t,n,i.OverviewRulerLane.Right,u,s)},e.prototype._renderThreeLanes=function(e,t,n,o){var r=Math.floor(o/3),s=Math.floor(o/3),a=o-r-s,u=this._canvasLeftOffset,l=this._canvasLeftOffset+r,c=this._canvasLeftOffset+r+a;this._renderVerticalPatch(e,t,n,i.OverviewRulerLane.Left,u,r),this._renderVerticalPatch(e,t,n,i.OverviewRulerLane.Center,l,a),this._renderVerticalPatch(e,t,n,i.OverviewRulerLane.Right,c,s)},e.prototype._renderVerticalPatch=function(e,t,n,i,o,r){for(var s=0,a=0,u=0,l=0,c=t.length;l=p?u=Math.max(u,f):(e.fillRect(o,a,r,u-a),a=p,u=f)}}e.fillRect(o,a,r,u-a)},e}();t.OverviewRulerImpl=s}),define(d[495],h([0,1,21,35,156,17,143,36,34]),function(e,t,n,i,o,r,s,a,u){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var l=function(e){function t(n){var i=e.call(this,n)||this;return i._overviewRuler=new o.OverviewRulerImpl(1,"decorationsOverviewRuler",i._context.viewLayout.getScrollHeight(),i._context.configuration.editor.lineHeight,i._context.configuration.editor.pixelRatio,t.MIN_DECORATION_HEIGHT,t.MAX_DECORATION_HEIGHT,function(e){return i._context.viewLayout.getVerticalOffsetForLineNumber(e)}),i._overviewRuler.setLanesCount(i._context.configuration.editor.viewInfo.overviewRulerLanes,!1),i._overviewRuler.setLayout(i._context.configuration.editor.layoutInfo.overviewRuler,!1),i._renderBorder=i._context.configuration.editor.viewInfo.overviewRulerBorder,i._updateColors(),i._updateBackground(!1),i._tokensColorTrackerListener=r.TokenizationRegistry.onDidChange(function(e){e.changedColorMap&&i._updateBackground(!0)}),i._shouldUpdateDecorations=!0,i._zonesFromDecorations=[],i._shouldUpdateCursorPosition=!0,i._hideCursor=i._context.configuration.editor.viewInfo.hideCursorInOverviewRuler,i._zonesFromCursors=[],i._cursorPositions=[],i}return f(t,e),t.prototype.dispose=function(){e.prototype.dispose.call(this),this._overviewRuler.dispose(),this._tokensColorTrackerListener.dispose()},t.prototype._updateBackground=function(e){var t=this._context.configuration.editor.viewInfo.minimap.enabled;this._overviewRuler.setUseBackground(t?r.TokenizationRegistry.getDefaultBackground():null,e)},t.prototype.onConfigurationChanged=function(e){var t=this._overviewRuler.getLanesCount(),n=this._context.configuration.editor.viewInfo.overviewRulerLanes;return t!==n&&this._overviewRuler.setLanesCount(n,!1),e.lineHeight&&this._overviewRuler.setLineHeight(this._context.configuration.editor.lineHeight,!1),e.pixelRatio&&this._overviewRuler.setPixelRatio(this._context.configuration.editor.pixelRatio,!1),e.viewInfo&&(this._renderBorder=this._context.configuration.editor.viewInfo.overviewRulerBorder,this._hideCursor=this._context.configuration.editor.viewInfo.hideCursorInOverviewRuler,this._shouldUpdateCursorPosition=!0,this._updateBackground(!1)),e.layoutInfo&&this._overviewRuler.setLayout(this._context.configuration.editor.layoutInfo.overviewRuler,!1),!0},t.prototype.onCursorStateChanged=function(e){this._shouldUpdateCursorPosition=!0,this._cursorPositions=[];for(var t=0,n=e.selections.length;t0&&(this._zonesFromDecorations.length>0||this._zonesFromCursors.length>0)){var n=this._overviewRuler.getDomNode().getContext("2d");n.beginPath(),n.lineWidth=1,n.strokeStyle=this._borderColor,n.moveTo(0,0),n.lineTo(0,this._overviewRuler.getPixelHeight()),n.stroke(),n.moveTo(0,0),n.lineTo(this._overviewRuler.getPixelWidth(),0),n.stroke()}},t}(i.ViewPart);l.MIN_DECORATION_HEIGHT=6,l.MAX_DECORATION_HEIGHT=60,t.DecorationsOverviewRuler=l}),define(d[496],h([0,1,87,156]),function(e,t,n,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=function(e){function t(t,n,o,r){var s=e.call(this)||this;return s._context=t,s._overviewRuler=new i.OverviewRulerImpl(0,n,s._context.viewLayout.getScrollHeight(),s._context.configuration.editor.lineHeight,s._context.configuration.editor.pixelRatio,o,r,function(e){return s._context.viewLayout.getVerticalOffsetForLineNumber(e)}),s._context.addEventHandler(s),s}return f(t,e),t.prototype.dispose=function(){this._context.removeEventHandler(this),this._overviewRuler.dispose(),e.prototype.dispose.call(this)},t.prototype.onConfigurationChanged=function(e){return e.lineHeight&&this._overviewRuler.setLineHeight(this._context.configuration.editor.lineHeight,!0),e.pixelRatio&&this._overviewRuler.setPixelRatio(this._context.configuration.editor.pixelRatio,!0),!0},t.prototype.onFlushed=function(e){return!0},t.prototype.onScrollChanged=function(t){return this._overviewRuler.setScrollHeight(t.scrollHeight,!0),e.prototype.onScrollChanged.call(this,t)||t.scrollHeightChanged},t.prototype.onZonesChanged=function(e){return!0},t.prototype.getDomNode=function(){return this._overviewRuler.getDomNode()},t.prototype.setLayout=function(e){this._overviewRuler.setLayout(e,!0)},t.prototype.setZones=function(e){this._overviewRuler.setZones(e,!0)},t}(n.ViewEventHandler);t.OverviewRuler=o}),define(d[497],h([0,1,10,6,26,2,87,489,478,439,216,433,229,485,486,230,116,171,487,480,153,232,234,235,495,496,490,482,483,491,236,35,215,80,479,220,474,481,56,14]),function(e,t,n,i,o,r,s,a,u,l,c,d,h,p,g,m,v,_,y,b,C,w,S,E,L,x,N,M,T,k,I,D,O,R,P,A,F,W,B,V){"use strict";function H(e){try{return e()}catch(e){n.onUnexpectedError(e)}}function z(e,t){try{return e(t)}catch(e){n.onUnexpectedError(e)}}Object.defineProperty(t,"__esModule",{value:!0});var K=function(e){function t(t,n,i,o,r,s){var d=e.call(this)||this;d._isDisposed=!1,d._cursor=r,d._renderAnimationFrame=null,d.outgoingEvents=new P.ViewOutgoingEvents(o);var h=new l.ViewController(n,o,s,d.outgoingEvents,t);return d.eventDispatcher=new c.ViewEventDispatcher(function(e){return d._renderOnce(e)}),d.eventDispatcher.addEventHandler(d),d._context=new O.ViewContext(n,i.getTheme(),o,d.eventDispatcher),d._register(i.onThemeChange(function(e){d._context.theme=e,d.eventDispatcher.emit(new B.ViewThemeChangedEvent),d.render(!0,!1)})),d.viewParts=[],d._textAreaHandler=new a.TextAreaHandler(d._context,h,d.createTextAreaHandlerHelper()),d.viewParts.push(d._textAreaHandler),d.createViewParts(),d._setLayout(),d.pointerHandler=new u.PointerHandler(d._context,h,d.createPointerHandlerHelper()),d._register(o.addEventListener(function(e){d.eventDispatcher.emitMany(e)})),d._register(d._cursor.addEventListener(function(e){d.eventDispatcher.emitMany(e)})),d}return f(t,e),t.prototype.createViewParts=function(){this.linesContent=o.createFastDomNode(document.createElement("div")),this.linesContent.setClassName("lines-content monaco-editor-background"),this.linesContent.setPosition("absolute"),this.domNode=o.createFastDomNode(document.createElement("div")),this.domNode.setClassName(this.getEditorClassName()),this.overflowGuardContainer=o.createFastDomNode(document.createElement("div")),D.PartFingerprints.write(this.overflowGuardContainer,3),this.overflowGuardContainer.setClassName("overflow-guard"),this._scrollbar=new F.EditorScrollbar(this._context,this.linesContent,this.domNode,this.overflowGuardContainer),this.viewParts.push(this._scrollbar),this.viewLines=new b.ViewLines(this._context,this.linesContent),this.viewZones=new I.ViewZones(this._context),this.viewParts.push(this.viewZones);var e=new L.DecorationsOverviewRuler(this._context);this.viewParts.push(e);var t=new M.ScrollDecorationViewPart(this._context);this.viewParts.push(t);var n=new d.ContentViewOverlays(this._context);this.viewParts.push(n),n.addDynamicOverlay(new p.CurrentLineHighlightOverlay(this._context)),n.addDynamicOverlay(new T.SelectionsOverlay(this._context)),n.addDynamicOverlay(new m.DecorationsOverlay(this._context)),n.addDynamicOverlay(new y.IndentGuidesOverlay(this._context));var i=new d.MarginViewOverlays(this._context);this.viewParts.push(i),i.addDynamicOverlay(new g.CurrentLineMarginHighlightOverlay(this._context)),i.addDynamicOverlay(new v.GlyphMarginOverlay(this._context)),i.addDynamicOverlay(new S.MarginViewLineDecorationsOverlay(this._context)),i.addDynamicOverlay(new w.LinesDecorationsOverlay(this._context)),i.addDynamicOverlay(new _.LineNumbersOverlay(this._context));var r=new C.Margin(this._context);r.getDomNode().appendChild(this.viewZones.marginDomNode),r.getDomNode().appendChild(i.getDomNode()),this.viewParts.push(r),this.contentWidgets=new h.ViewContentWidgets(this._context,this.domNode),this.viewParts.push(this.contentWidgets),this.viewCursors=new k.ViewCursors(this._context),this.viewParts.push(this.viewCursors),this.overlayWidgets=new E.ViewOverlayWidgets(this._context),this.viewParts.push(this.overlayWidgets);var s=new N.Rulers(this._context);this.viewParts.push(s);var a=new W.Minimap(this._context);if(this.viewParts.push(a),e){var u=this._scrollbar.getOverviewRulerLayoutInfo();u.parent.insertBefore(e.getDomNode(),u.insertBefore)}this.linesContent.appendChild(n.getDomNode()),this.linesContent.appendChild(s.domNode),this.linesContent.appendChild(this.viewZones.domNode),this.linesContent.appendChild(this.viewLines.getDomNode()),this.linesContent.appendChild(this.contentWidgets.domNode),this.linesContent.appendChild(this.viewCursors.getDomNode()),this.overflowGuardContainer.appendChild(r.getDomNode()),this.overflowGuardContainer.appendChild(this._scrollbar.getDomNode()),this.overflowGuardContainer.appendChild(t.getDomNode()),this.overflowGuardContainer.appendChild(this._textAreaHandler.textArea),this.overflowGuardContainer.appendChild(this._textAreaHandler.textAreaCover),this.overflowGuardContainer.appendChild(this.overlayWidgets.getDomNode()),this.overflowGuardContainer.appendChild(a.getDomNode()),this.domNode.appendChild(this.overflowGuardContainer),this.domNode.appendChild(this.contentWidgets.overflowingContentWidgetsDomNode)},t.prototype._flushAccumulatedAndRenderNow=function(){this._renderNow()},t.prototype.createPointerHandlerHelper=function(){var e=this;return{viewDomNode:this.domNode.domNode,linesContentDomNode:this.linesContent.domNode,focusTextArea:function(){e.focus()},getLastViewCursorsRenderData:function(){return e.viewCursors.getLastRenderData()||[]},shouldSuppressMouseDownOnViewZone:function(t){return e.viewZones.shouldSuppressMouseDownOnViewZone(t)},shouldSuppressMouseDownOnWidget:function(t){return e.contentWidgets.shouldSuppressMouseDownOnWidget(t)},getPositionFromDOMInfo:function(t,n){return e._flushAccumulatedAndRenderNow(),e.viewLines.getPositionFromDOMInfo(t,n)},visibleRangeForPosition2:function(t,n){e._flushAccumulatedAndRenderNow();var i=e.viewLines.visibleRangesForRange2(new r.Range(t,n,t,n));return i?i[0]:null},getLineWidth:function(t){return e._flushAccumulatedAndRenderNow(),e.viewLines.getLineWidth(t)}}},t.prototype.createTextAreaHandlerHelper=function(){var e=this;return{visibleRangeForPositionRelativeToEditor:function(t,n){e._flushAccumulatedAndRenderNow();var i=e.viewLines.visibleRangesForRange2(new r.Range(t,n,t,n));return i?i[0]:null}}},t.prototype._setLayout=function(){var e=this._context.configuration.editor.layoutInfo;this.domNode.setWidth(e.width),this.domNode.setHeight(e.height),this.overflowGuardContainer.setWidth(e.width),this.overflowGuardContainer.setHeight(e.height),this.linesContent.setWidth(1e6),this.linesContent.setHeight(1e6)},t.prototype.getEditorClassName=function(){return this._context.configuration.editor.editorClassName+" "+V.getThemeTypeSelector(this._context.theme.type)},t.prototype.onConfigurationChanged=function(e){return e.editorClassName&&this.domNode.setClassName(this.getEditorClassName()),e.layoutInfo&&this._setLayout(),!1},t.prototype.onFocusChanged=function(e){return this.domNode.toggleClassName("focused",e.isFocused),e.isFocused?this.outgoingEvents.emitViewFocusGained():this.outgoingEvents.emitViewFocusLost(),!1},t.prototype.onScrollChanged=function(e){return this.outgoingEvents.emitScrollChanged(e),!1},t.prototype.onThemeChanged=function(e){return this.domNode.setClassName(this.getEditorClassName()),!1},t.prototype.dispose=function(){this._isDisposed=!0,null!==this._renderAnimationFrame&&(this._renderAnimationFrame.dispose(),this._renderAnimationFrame=null),this.eventDispatcher.removeEventHandler(this),this.outgoingEvents.dispose(),this.pointerHandler.dispose(),this.viewLines.dispose();for(var t=0,n=this.viewParts.length;t");m.registerThemingParticipant(function(e,t){var n=e.getColor(_.editorErrorBorder);n&&t.addRule(".monaco-editor .redsquiggly { border-bottom: 4px double "+n+"; }");var i=e.getColor(_.editorErrorForeground);i&&t.addRule('.monaco-editor .redsquiggly { background: url("data:image/svg+xml,'+b(i)+'") repeat-x bottom left; }');var o=e.getColor(_.editorWarningBorder);o&&t.addRule(".monaco-editor .greensquiggly { border-bottom: 4px double "+o+"; }");var r=e.getColor(_.editorWarningForeground);r&&t.addRule('.monaco-editor .greensquiggly { background: url("data:image/svg+xml;utf8,'+b(r)+'") repeat-x bottom left; }')})}),define(d[115],h([0,1,16,31,19,41,198,13,32,14]),function(e,t,n,i,o,r,s,a,u,l){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var c=function(e){function t(t,n,i,o,r,s,a){return e.call(this,t,n,i,o,r,s,a)||this}return f(t,e),t.prototype._getContributions=function(){return[].concat(u.EditorBrowserRegistry.getEditorContributions()).concat(a.CommonEditorRegistry.getEditorContributions())},t.prototype._getActions=function(){return a.CommonEditorRegistry.getEditorActions()},t}(s.CodeEditorWidget);c=v([y(2,n.IInstantiationService),y(3,r.ICodeEditorService),y(4,i.ICommandService),y(5,o.IContextKeyService),y(6,l.IThemeService)],c),t.CodeEditor=c}),define(d[163],h([0,1,18,3,28,6,26,99,16,19,41,2,21,63,126,109,115,79,65,86,84,11,49,14,23,143,33,492,305]),function(e,t,n,i,o,r,s,a,u,l,c,d,h,p,g,m,_,b,C,w,S,E,L,x,N,M,T,k){"use strict";function I(e,t,n,i,o){return{range:new d.Range(e,t,n,i),options:o}}function D(e){return e.modifiedEndLineNumber>0}function O(e){return e.originalEndLineNumber>0}function R(){var e=document.createElement("div");return e.className="diagonal-fill",e}Object.defineProperty(t,"__esModule",{value:!0});var P=function(){function e(){this._zones=[],this._zonesMap={},this._decorations=[]}return e.prototype.getForeignViewZones=function(e){var t=this;return e.filter(function(e){return!t._zonesMap[String(e.id)]})},e.prototype.clean=function(e){var t=this;this._zones.length>0&&e.changeViewZones(function(e){for(var n=0,i=t._zones.length;n0&&e.changeDecorations(function(e){e.deltaDecorations(t._decorations,[])}),this._decorations=[]},e.prototype.apply=function(e,t,n){var i=this;e.changeViewZones(function(e){for(var t=0,o=i._zones.length;t0?o/n:0;return{height:Math.max(0,Math.floor(e.contentHeight*r)),top:Math.floor(t*r)}},t.prototype._createDataSource=function(){var e=this;return{getWidth:function(){return e._width},getHeight:function(){return e._height-e._reviewHeight},getContainerDomNode:function(){return e._containerDomElement},relayoutEditors:function(){e._doLayout()},getOriginalEditor:function(){return e.originalEditor},getModifiedEditor:function(){return e.modifiedEditor}}},t.prototype._setStrategy=function(e){this._strategy&&this._strategy.dispose(),this._strategy=e,e.applyColors(this._themeService.getTheme()),this._lineChanges&&this._updateDecorations(),this._measureDomElement(!0)},t.prototype._getLineChangeAtOrBeforeLineNumber=function(e,t){if(0===this._lineChanges.length||e=s?n=o+1:(n=o,i=o)}return this._lineChanges[n]},t.prototype._getEquivalentLineForOriginalLineNumber=function(e){var t=this._getLineChangeAtOrBeforeLineNumber(e,function(e){return e.originalStartLineNumber});if(!t)return e;var n=t.originalStartLineNumber+(t.originalEndLineNumber>0?-1:0),i=t.modifiedStartLineNumber+(t.modifiedEndLineNumber>0?-1:0),o=t.originalEndLineNumber>0?t.originalEndLineNumber-t.originalStartLineNumber+1:0,r=t.modifiedEndLineNumber>0?t.modifiedEndLineNumber-t.modifiedStartLineNumber+1:0,s=e-n;return s<=o?i+Math.min(s,r):i+r-o+s},t.prototype._getEquivalentLineForModifiedLineNumber=function(e){var t=this._getLineChangeAtOrBeforeLineNumber(e,function(e){return e.modifiedStartLineNumber});if(!t)return e;var n=t.originalStartLineNumber+(t.originalEndLineNumber>0?-1:0),i=t.modifiedStartLineNumber+(t.modifiedEndLineNumber>0?-1:0),o=t.originalEndLineNumber>0?t.originalEndLineNumber-t.originalStartLineNumber+1:0,r=t.modifiedEndLineNumber>0?t.modifiedEndLineNumber-t.modifiedStartLineNumber+1:0,s=e-i;return s<=r?n+Math.min(s,o):n+o-r+s},t.prototype.getDiffLineInformationForOriginal=function(e){return this._lineChanges?{equivalentLineNumber:this._getEquivalentLineForOriginalLineNumber(e)}:null},t.prototype.getDiffLineInformationForModified=function(e){return this._lineChanges?{equivalentLineNumber:this._getEquivalentLineForModifiedLineNumber(e)}:null},t}(i.Disposable);F.ONE_OVERVIEW_WIDTH=15,F.ENTIRE_DIFF_OVERVIEW_WIDTH=30,F.UPDATE_DIFF_DECORATIONS_DELAY=200,F=v([y(2,p.IEditorWorkerService),y(3,l.IContextKeyService),y(4,u.IInstantiationService),y(5,c.ICodeEditorService),y(6,x.IThemeService)],F),t.DiffEditorWidget=F;var W=function(e){function t(t){var n=e.call(this)||this;return n._dataSource=t,n}return f(t,e),t.prototype.applyColors=function(e){var t=(e.getColor(N.diffInserted)||N.defaultInsertColor).transparent(2),n=(e.getColor(N.diffRemoved)||N.defaultRemoveColor).transparent(2),i=!t.equals(this._insertColor)||!n.equals(this._removeColor);return this._insertColor=t,this._removeColor=n,i},t.prototype.getEditorsDiffDecorations=function(e,t,n,i,o,r,s){o=o.sort(function(e,t){return e.afterLineNumber-t.afterLineNumber}),i=i.sort(function(e,t){return e.afterLineNumber-t.afterLineNumber});var a=this._getViewZones(e,i,o,r,s,n),u=this._getOriginalEditorDecorations(e,t,n,r,s),l=this._getModifiedEditorDecorations(e,t,n,r,s);return{original:{decorations:u.decorations,overviewZones:u.overviewZones,zones:a.original},modified:{decorations:l.decorations,overviewZones:l.overviewZones,zones:a.modified}}},t.prototype._getViewZones=function(e,t,n,i,o,r){return null},t.prototype._getOriginalEditorDecorations=function(e,t,n,i,o){return null},t.prototype._getModifiedEditorDecorations=function(e,t,n,i,o){return null},t}(i.Disposable),B=function(){function e(e){this._source=e,this._index=-1,this.advance()}return e.prototype.advance=function(){++this._index0){var n=e[e.length-1];if(n.afterLineNumber===t.afterLineNumber&&null===n.domNode)return void(n.heightInLines+=t.heightInLines)}e.push(t)},l=new B(this.modifiedForeignVZ),c=new B(this.originalForeignVZ),d=0,h=this.lineChanges.length;d<=h;d++){var p=d0?-1:0),o=p.modifiedStartLineNumber+(p.modifiedEndLineNumber>0?-1:0),n=p.originalEndLineNumber>0?p.originalEndLineNumber-p.originalStartLineNumber+1:0,t=p.modifiedEndLineNumber>0?p.modifiedEndLineNumber-p.modifiedStartLineNumber+1:0,r=Math.max(p.originalStartLineNumber,p.originalEndLineNumber),s=Math.max(p.modifiedStartLineNumber,p.modifiedEndLineNumber)):(r=i+=1e7+n,s=o+=1e7+t);for(var f=[],g=[];l.current&&l.current.afterLineNumber<=s;){m=void 0;m=l.current.afterLineNumber<=o?i-o+l.current.afterLineNumber:r,f.push({afterLineNumber:m,heightInLines:l.current.heightInLines,domNode:null}),l.advance()}for(;c.current&&c.current.afterLineNumber<=r;){var m=void 0;m=c.current.afterLineNumber<=i?o-i+c.current.afterLineNumber:s,g.push({afterLineNumber:m,heightInLines:c.current.heightInLines,domNode:null}),c.advance()}if(null!==p&&D(p)&&(v=this._produceOriginalFromDiff(p,n,t))&&f.push(v),null!==p&&O(p)){var v=this._produceModifiedFromDiff(p,n,t);v&&g.push(v)}var _=0,y=0;for(f=f.sort(a),g=g.sort(a);_=C.heightInLines?(b.heightInLines-=C.heightInLines,y++):(C.heightInLines-=b.heightInLines,_++)}for(;_2*t.MINIMUM_EDITOR_WIDTH?(in-t.MINIMUM_EDITOR_WIDTH&&(i=n-t.MINIMUM_EDITOR_WIDTH)):i=o,this._sashPosition!==i&&(this._sashPosition=i,this._sash.layout()),this._sashPosition},t.prototype.onSashDragStart=function(){this._startSashPosition=this._sashPosition},t.prototype.onSashDrag=function(e){var t=this._dataSource.getWidth()-F.ENTIRE_DIFF_OVERVIEW_WIDTH,n=this.layout((this._startSashPosition+(e.currentX-e.startX))/t);this._sashRatio=n/t,this._dataSource.relayoutEditors()},t.prototype.onSashDragEnd=function(){this._sash.layout()},t.prototype.onSashReset=function(){this._sashRatio=.5,this._dataSource.relayoutEditors(),this._sash.layout()},t.prototype.getVerticalSashTop=function(e){return 0},t.prototype.getVerticalSashLeft=function(e){return this._sashPosition},t.prototype.getVerticalSashHeight=function(e){return this._dataSource.getHeight()},t.prototype._getViewZones=function(e,t,n,i,o){return new K(e,t,n).getViewZones()},t.prototype._getOriginalEditorDecorations=function(e,t,n,i,o){for(var r={decorations:[],overviewZones:[]},s=i.getModel(),a=0,u=e.length;at?{afterLineNumber:Math.max(e.originalStartLineNumber,e.originalEndLineNumber),heightInLines:n-t,domNode:null}:null},t.prototype._produceModifiedFromDiff=function(e,t,n){return t>n?{afterLineNumber:Math.max(e.modifiedStartLineNumber,e.modifiedEndLineNumber),heightInLines:t-n,domNode:null}:null},t}(V),U=function(e){function t(t,n){var i=e.call(this,t)||this;return i.decorationsLeft=t.getOriginalEditor().getLayoutInfo().decorationsLeft,i._register(t.getOriginalEditor().onDidLayoutChange(function(e){i.decorationsLeft!==e.decorationsLeft&&(i.decorationsLeft=e.decorationsLeft,t.relayoutEditors())})),i}return f(t,e),t.prototype.dispose=function(){e.prototype.dispose.call(this)},t.prototype.setEnableSplitViewResizing=function(e){},t.prototype._getViewZones=function(e,t,n,i,o,r){return new j(e,t,n,i,o,r).getViewZones()},t.prototype._getOriginalEditorDecorations=function(e,t,n,i,o){for(var r={decorations:[],overviewZones:[]},s=0,a=e.length;s'])}var f=document.createElement("div");f.className="view-lines line-delete",f.innerHTML=a.join(""),C.Configuration.applyFontInfoSlow(f,this.modifiedEditorConfiguration.fontInfo);var g=document.createElement("div");return g.className="inline-deleted-margin-view-zone",g.innerHTML=u.join(""),C.Configuration.applyFontInfoSlow(g,this.modifiedEditorConfiguration.fontInfo),{shouldNotShrink:!0,afterLineNumber:0===e.modifiedEndLineNumber?e.modifiedStartLineNumber:e.modifiedStartLineNumber-1,heightInLines:t,domNode:f,marginDomNode:g}},t.prototype.renderOriginalLine=function(e,t,n,i,o,r){var s=t.getLineContent(o),a=g.LineDecoration.filter(r,o,1,s.length+1),u=m.renderViewLine(new m.RenderLineInput(n.fontInfo.isMonospace&&!n.viewInfo.disableMonospaceOptimizations,s,t.mightContainRTL(),0,[new b.ViewLineToken(s.length,16793600)],a,i,n.fontInfo.spaceWidth,n.viewInfo.stopRenderingLineAfter,n.viewInfo.renderWhitespace,n.viewInfo.renderControlCharacters,n.viewInfo.fontLigatures)),l=[];return l.push('
    '),(l=l.concat(u.html)).push("
    "),l},t}(V);x.registerThemingParticipant(function(e,t){var n=e.getColor(N.diffInserted);n&&(t.addRule(".monaco-editor .line-insert, .monaco-editor .char-insert { background-color: "+n+"; }"),t.addRule(".monaco-diff-editor .line-insert, .monaco-diff-editor .char-insert { background-color: "+n+"; }"),t.addRule(".monaco-editor .inline-added-margin-view-zone { background-color: "+n+"; }"));var i=e.getColor(N.diffRemoved);i&&(t.addRule(".monaco-editor .line-delete, .monaco-editor .char-delete { background-color: "+i+"; }"),t.addRule(".monaco-diff-editor .line-delete, .monaco-diff-editor .char-delete { background-color: "+i+"; }"),t.addRule(".monaco-editor .inline-deleted-margin-view-zone { background-color: "+i+"; }"));var o=e.getColor(N.diffInsertedOutline);o&&t.addRule(".monaco-editor .line-insert, .monaco-editor .char-insert { border: 1px dashed "+o+"; }");var r=e.getColor(N.diffRemovedOutline);r&&t.addRule(".monaco-editor .line-delete, .monaco-editor .char-delete { border: 1px dashed "+r+"; }");var s=e.getColor(N.scrollbarShadow);s&&t.addRule(".monaco-diff-editor.side-by-side .editor.modified { box-shadow: -6px 0 5px -5px "+s+"; }")})}),define(d[162],h([0,1,28,16,31,19,41,115,14]),function(e,t,n,i,o,r,s,a,u){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var l=function(e){function t(t,n,i,o,r,s,a,u){var l=e.call(this,t,i.getRawConfiguration(),o,r,s,a,u)||this;return l._parentEditor=i,l._overwriteOptions=n,e.prototype.updateOptions.call(l,l._overwriteOptions),l._register(i.onDidChangeConfiguration(function(e){return l._onParentConfigurationChanged(e)})),l}return f(t,e),t.prototype.getParentEditor=function(){return this._parentEditor},t.prototype._onParentConfigurationChanged=function(t){e.prototype.updateOptions.call(this,this._parentEditor.getRawConfiguration()),e.prototype.updateOptions.call(this,this._overwriteOptions)},t.prototype.updateOptions=function(t){n.mixin(this._overwriteOptions,t,!0),e.prototype.updateOptions.call(this,this._overwriteOptions)},t}(a.CodeEditor);l=v([y(3,i.IInstantiationService),y(4,s.ICodeEditorService),y(5,o.ICommandService),y(6,r.IContextKeyService),y(7,u.IThemeService)],l),t.EmbeddedCodeEditorWidget=l}),define(d[502],h([0,1,331,3,12,18,21,13,20,14,36,33]),function(e,t,n,i,o,r,s,a,u,l,c,d){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var h=function(e){function t(){return e.call(this,{id:"editor.action.jumpToBracket",label:n.localize(0,null),alias:"Go to Bracket",precondition:null,kbOpts:{kbExpr:u.EditorContextKeys.textFocus,primary:3160}})||this}return f(t,e),t.prototype.run=function(e,t){var n=g.get(t);n&&n.jumpToBracket()},t}(a.EditorAction);h=v([a.editorAction],h);var p=function(){return function(e,t){this.position=e,this.brackets=t}}(),g=m=function(e){function t(t){var n=e.call(this)||this;return n._editor=t,n._lastBracketsData=[],n._lastVersionId=0,n._decorations=[],n._updateBracketsSoon=n._register(new r.RunOnceScheduler(function(){return n._updateBrackets()},50)),n._matchBrackets=n._editor.getConfiguration().contribInfo.matchBrackets,n._updateBracketsSoon.schedule(),n._register(t.onDidChangeCursorPosition(function(e){n._matchBrackets&&n._updateBracketsSoon.schedule()})),n._register(t.onDidChangeModel(function(e){n._decorations=[],n._updateBracketsSoon.schedule()})),n._register(t.onDidChangeConfiguration(function(e){n._matchBrackets=n._editor.getConfiguration().contribInfo.matchBrackets,!n._matchBrackets&&n._decorations.length>0&&(n._decorations=n._editor.deltaDecorations(n._decorations,[])),n._updateBracketsSoon.schedule()})),n}return f(t,e),t.get=function(e){return e.getContribution(m.ID)},t.prototype.getId=function(){return m.ID},t.prototype.jumpToBracket=function(){var e=this._editor.getModel();if(e){var t=this._editor.getSelection();if(t.isEmpty()){var n=t.getStartPosition(),i=e.matchBracket(n);if(i){var o=null;i[0].containsPosition(n)?o=i[1].getStartPosition():i[1].containsPosition(n)&&(o=i[0].getStartPosition()),o&&(this._editor.setPosition(o),this._editor.revealPosition(o))}}}},t.prototype._updateBrackets=function(){if(this._matchBrackets){this._recomputeBrackets();for(var e=[],t=0,n=0,i=this._lastBracketsData.length;n1&&r.sort(o.Position.compare);for(var c=[],d=0,h=0,f=n.length,a=0,u=r.length;a{1}",n,r),this._commands[n]=i):s=o.format("{0}",r),t.push(s)}this._domNode.innerHTML=t.join(" | "),this._editor.layoutContentWidget(this)}else this._domNode.innerHTML="no commands"},e.prototype.getId=function(){return this._id},e.prototype.getDomNode=function(){return this._domNode},e.prototype.setSymbolRange=function(e){this._symbolRange=e;var t=e.startLineNumber,n=this._editor.getModel().getLineFirstNonWhitespaceColumn(t);this._widgetPosition={position:{lineNumber:t,column:n},preference:[a.ContentWidgetPositionPreference.ABOVE]}},e.prototype.getPosition=function(){return this._widgetPosition},e.prototype.isVisible=function(){return this._domNode.hasAttribute("monaco-visible-content-widget")},e}();p._idPool=0;var f=function(){function e(){this._removeDecorations=[],this._addDecorations=[],this._addDecorationsCallbacks=[]}return e.prototype.addDecoration=function(e,t){this._addDecorations.push(e),this._addDecorationsCallbacks.push(t)},e.prototype.removeDecoration=function(e){this._removeDecorations.push(e)},e.prototype.commit=function(e){for(var t=e.deltaDecorations(this._removeDecorations,this._addDecorations),n=0,i=t.length;n a:hover { color: "+i+" !important; }")})}),define(d[504],h([0,1,18,10,3,8,31,66,17,32,443,503]),function(e,t,n,i,o,r,s,a,u,l,c,d){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var h=p=function(){function e(e,t,n){var i=this;this._editor=e,this._commandService=t,this._messageService=n,this._isEnabled=this._editor.getConfiguration().contribInfo.codeLens,this._globalToDispose=[],this._localToDispose=[],this._lenses=[],this._currentFindCodeLensSymbolsPromise=null,this._modelChangeCounter=0,this._globalToDispose.push(this._editor.onDidChangeModel(function(){return i._onModelChange()})),this._globalToDispose.push(this._editor.onDidChangeModelLanguage(function(){return i._onModelChange()})),this._globalToDispose.push(this._editor.onDidChangeConfiguration(function(e){var t=i._isEnabled;i._isEnabled=i._editor.getConfiguration().contribInfo.codeLens,t!==i._isEnabled&&i._onModelChange()})),this._globalToDispose.push(u.CodeLensProviderRegistry.onDidChange(this._onModelChange,this)),this._onModelChange()}return e.prototype.dispose=function(){this._localDispose(),this._globalToDispose=o.dispose(this._globalToDispose)},e.prototype._localDispose=function(){this._currentFindCodeLensSymbolsPromise&&(this._currentFindCodeLensSymbolsPromise.cancel(),this._currentFindCodeLensSymbolsPromise=null,this._modelChangeCounter++),this._currentFindOccPromise&&(this._currentFindOccPromise.cancel(),this._currentFindOccPromise=null),this._localToDispose=o.dispose(this._localToDispose)},e.prototype.getId=function(){return p.ID},e.prototype._onModelChange=function(){var e=this;this._localDispose();var t=this._editor.getModel();if(t&&this._isEnabled&&u.CodeLensProviderRegistry.has(t)){for(var o=0,r=u.CodeLensProviderRegistry.all(t);oi||(n&&n[n.length-1].symbol.range.startLineNumber===u?n.push(a):(n=[a],o.push(n)))}var l=this._editor.getCenteredRangeInViewport(),c=l&&o.length!==this._lenses.length&&0!==this._editor.getScrollTop();this._editor.changeDecorations(function(e){t._editor.changeViewZones(function(n){for(var i=0,r=0,s=new d.CodeLensHelper;rD)return l._domNode.style.maxWidth=e-28-t-15+"px",void(l._replaceInputBox.inputElement.style.width=s.getTotalWidth(l._findInput.inputBox.inputElement)+"px");D+28+t>=e&&(i=!0),D+28+t-O>=e&&(o=!0),D+28+t-O>=e+50&&(n=!0),s.toggleClass(l._domNode,"collapsed-find-widget",n),s.toggleClass(l._domNode,"narrow-find-widget",o),s.toggleClass(l._domNode,"reduced-find-widget",i),o||n||(l._domNode.style.maxWidth=e-28-t-15+"px");var r=s.getTotalWidth(l._findInput.inputBox.inputElement);r>0&&(l._replaceInputBox.inputElement.style.width=r+"px")};return c(),l._register(l._codeEditor.onDidChangeConfiguration(function(e){e.readOnly&&(l._codeEditor.getConfiguration().readOnly&&l._state.change({isReplaceRevealed:!1},!1),l._updateButtons()),e.layoutInfo&&c()})),l._register(l._codeEditor.onDidChangeCursorSelection(function(){l._isVisible&&l._updateToggleSelectionFindButton()})),l._findInputFocussed=g.CONTEXT_FIND_INPUT_FOCUSSED.bindTo(a),l._focusTracker=l._register(s.trackFocus(l._findInput.inputBox.inputElement)),l._focusTracker.addFocusListener(function(){if(l._findInputFocussed.set(!0),l._toggleSelectionFind.checked){var e=l._codeEditor.getSelection();1===e.endColumn&&e.endLineNumber>e.startLineNumber&&(e=e.setEndPosition(e.endLineNumber-1,1));var t=l._state.currentMatch;e.startLineNumber!==e.endLineNumber&&(p.Range.equalsRange(e,t)||l._state.change({searchScope:e},!0))}}),l._focusTracker.addBlurListener(function(){l._findInputFocussed.set(!1)}),l._codeEditor.addOverlayWidget(l),l._viewZone=new A(0),l._applyTheme(u.getTheme()),l._register(u.onThemeChange(l._applyTheme.bind(l))),l._register(l._codeEditor.onDidChangeModel(function(e){l._isVisible&&void 0!==l._viewZoneId&&l._codeEditor.changeViewZones(function(e){e.removeZone(l._viewZoneId),l._viewZoneId=void 0})})),l._register(l._codeEditor.onDidScrollChange(function(e){e.scrollTopChanged?l._layoutViewZone():setTimeout(function(){l._layoutViewZone()},0)})),l}return f(t,e),t.prototype.getId=function(){return t.ID},t.prototype.getDomNode=function(){return this._domNode},t.prototype.getPosition=function(){return this._isVisible?{preference:d.OverlayWidgetPositionPreference.TOP_RIGHT_CORNER}:null},t.prototype._onStateChanged=function(e){if(e.searchString&&(this._findInput.setValue(this._state.searchString),this._updateButtons()),e.replaceString&&(this._replaceInputBox.value=this._state.replaceString),e.isRevealed&&(this._state.isRevealed?this._reveal(!0):this._hide(!0)),e.isReplaceRevealed&&(this._state.isReplaceRevealed?this._codeEditor.getConfiguration().readOnly||this._isReplaceVisible||(this._isReplaceVisible=!0,this._updateButtons()):this._isReplaceVisible&&(this._isReplaceVisible=!1,this._updateButtons())),e.isRegex&&this._findInput.setRegex(this._state.isRegex),e.wholeWord&&this._findInput.setWholeWords(this._state.wholeWord),e.matchCase&&this._findInput.setCaseSensitive(this._state.matchCase),e.searchScope&&(this._state.searchScope?this._toggleSelectionFind.checked=!0:this._toggleSelectionFind.checked=!1,this._updateToggleSelectionFindButton()),e.searchString||e.matchesCount||e.matchesPosition){var t=this._state.searchString.length>0&&0===this._state.matchesCount;s.toggleClass(this._domNode,"no-results",t),this._updateMatchesCount()}(e.searchString||e.currentMatch)&&this._layoutViewZone()},t.prototype._updateMatchesCount=function(){this._matchesCount.style.minWidth=O+"px",this._state.matchesCount>=h.MATCHES_LIMIT?this._matchesCount.title=T:this._matchesCount.title="",this._matchesCount.firstChild&&this._matchesCount.removeChild(this._matchesCount.firstChild);var e;if(this._state.matchesCount>0){var t=String(this._state.matchesCount);this._state.matchesCount>=h.MATCHES_LIMIT&&(t+="+");var n=String(this._state.matchesPosition);"0"===n&&(n="?"),e=r.format(k,n,t)}else e=I;this._matchesCount.appendChild(document.createTextNode(e)),O=Math.max(O,this._matchesCount.clientWidth)},t.prototype._updateToggleSelectionFindButton=function(){var e=this._codeEditor.getSelection(),t=!!e&&(e.startLineNumber!==e.endLineNumber||e.startColumn!==e.endColumn),n=this._toggleSelectionFind.checked;this._toggleSelectionFind.setEnabled(this._isVisible&&(n||t))},t.prototype._updateButtons=function(){this._findInput.setEnabled(this._isVisible),this._replaceInputBox.setEnabled(this._isVisible&&this._isReplaceVisible),this._updateToggleSelectionFindButton(),this._closeBtn.setEnabled(this._isVisible);var e=this._state.searchString.length>0;this._prevBtn.setEnabled(this._isVisible&&e),this._nextBtn.setEnabled(this._isVisible&&e),this._replaceBtn.setEnabled(this._isVisible&&this._isReplaceVisible&&e),this._replaceAllBtn.setEnabled(this._isVisible&&this._isReplaceVisible&&e),s.toggleClass(this._domNode,"replaceToggled",this._isReplaceVisible),this._toggleReplaceBtn.toggleClass("collapse",!this._isReplaceVisible),this._toggleReplaceBtn.toggleClass("expand",this._isReplaceVisible),this._toggleReplaceBtn.setExpanded(this._isReplaceVisible);var t=!this._codeEditor.getConfiguration().readOnly;this._toggleReplaceBtn.setEnabled(this._isVisible&&t)},t.prototype._reveal=function(e){var t=this;if(!this._isVisible){this._isVisible=!0;var n=this._codeEditor.getSelection();!!n&&(n.startLineNumber!==n.endLineNumber||n.startColumn!==n.endColumn)&&this._codeEditor.getConfiguration().contribInfo.find.autoFindInSelection?this._toggleSelectionFind.checked=!0:this._toggleSelectionFind.checked=!1,this._updateButtons(),setTimeout(function(){s.addClass(t._domNode,"visible"),t._domNode.setAttribute("aria-hidden","false"),e||(s.addClass(t._domNode,"noanimation"),setTimeout(function(){s.removeClass(t._domNode,"noanimation")},200))},0),this._codeEditor.layoutOverlayWidget(this);var i=!0;if(this._codeEditor.getConfiguration().contribInfo.find.seedSearchStringFromSelection&&n){var o=s.getDomNodePagePosition(this._codeEditor.getDomNode()),r=this._codeEditor.getScrolledVisiblePosition(n.getStartPosition()),a=o.left+r.left;if(r.topn.startLineNumber&&(i=!1);var u=s.getTopLeftOffset(this._domNode).left;a>u&&(i=!1);var l=this._codeEditor.getScrolledVisiblePosition(n.getEndPosition());o.left+l.left>u&&(i=!1)}}this._showViewZone(i)}},t.prototype._hide=function(e){var t=this;this._isVisible&&(this._isVisible=!1,this._updateButtons(),s.removeClass(this._domNode,"visible"),this._domNode.setAttribute("aria-hidden","true"),e&&this._codeEditor.focus(),this._codeEditor.layoutOverlayWidget(this),this._codeEditor.changeViewZones(function(e){void 0!==t._viewZoneId&&(e.removeZone(t._viewZoneId),t._viewZoneId=void 0,t._codeEditor.setScrollTop(t._codeEditor.getScrollTop()-t._viewZone.heightInPx))}))},t.prototype._layoutViewZone=function(){var e=this;this._isVisible&&void 0===this._viewZoneId&&this._codeEditor.changeViewZones(function(t){e._state.isReplaceRevealed?e._viewZone.heightInPx=64:e._viewZone.heightInPx=P,e._viewZoneId=t.addZone(e._viewZone),e._codeEditor.setScrollTop(e._codeEditor.getScrollTop()+e._viewZone.heightInPx)})},t.prototype._showViewZone=function(e){var t=this;void 0===e&&(e=!0),this._isVisible&&this._codeEditor.changeViewZones(function(n){var i=P;void 0!==t._viewZoneId?(t._state.isReplaceRevealed?(t._viewZone.heightInPx=64,i=64-P):(t._viewZone.heightInPx=P,i=P-64),n.removeZone(t._viewZoneId)):t._viewZone.heightInPx=P,t._viewZoneId=n.addZone(t._viewZone),e&&t._codeEditor.setScrollTop(t._codeEditor.getScrollTop()+i)})},t.prototype._applyTheme=function(e){var t={inputActiveOptionBorder:e.getColor(v.inputActiveOptionBorder),inputBackground:e.getColor(v.inputBackground),inputForeground:e.getColor(v.inputForeground),inputBorder:e.getColor(v.inputBorder),inputValidationInfoBackground:e.getColor(v.inputValidationInfoBackground),inputValidationInfoBorder:e.getColor(v.inputValidationInfoBorder),inputValidationWarningBackground:e.getColor(v.inputValidationWarningBackground),inputValidationWarningBorder:e.getColor(v.inputValidationWarningBorder),inputValidationErrorBackground:e.getColor(v.inputValidationErrorBackground),inputValidationErrorBorder:e.getColor(v.inputValidationErrorBorder)};this._findInput.style(t),this._replaceInputBox.style(t)},t.prototype.focusFindInput=function(){this._findInput.select(),this._findInput.focus()},t.prototype.focusReplaceInput=function(){this._replaceInputBox.select(),this._replaceInputBox.focus()},t.prototype.highlightFindOptions=function(){this._findInput.highlightFindOptions()},t.prototype._onFindInputMouseDown=function(e){e.middleButton&&e.stopPropagation()},t.prototype._onFindInputKeyDown=function(e){return e.equals(3)?(this._codeEditor.getAction(h.FIND_IDS.NextMatchFindAction).run().done(null,i.onUnexpectedError),void e.preventDefault()):e.equals(1027)?(this._codeEditor.getAction(h.FIND_IDS.PreviousMatchFindAction).run().done(null,i.onUnexpectedError),void e.preventDefault()):e.equals(2)?(this._isReplaceVisible?this._replaceInputBox.focus():this._findInput.focusOnCaseSensitive(),void e.preventDefault()):e.equals(2066)?(this._codeEditor.focus(),void e.preventDefault()):void 0},t.prototype._onReplaceInputKeyDown=function(e){return e.equals(3)?(this._controller.replace(),void e.preventDefault()):e.equals(2051)?(this._controller.replaceAll(),void e.preventDefault()):e.equals(2)?(this._findInput.focusOnCaseSensitive(),void e.preventDefault()):e.equals(1026)?(this._findInput.focus(),void e.preventDefault()):e.equals(2066)?(this._codeEditor.focus(),void e.preventDefault()):void 0},t.prototype.getHorizontalSashTop=function(e){return 0},t.prototype.getHorizontalSashLeft=function(e){return 0},t.prototype.getHorizontalSashWidth=function(e){return 500},t.prototype._keybindingLabelFor=function(e){var t=this._keybindingService.lookupKeybinding(e);return t?" ("+t.getLabel()+")":""},t.prototype._buildFindPart=function(){var e=this;this._findInput=this._register(new a.FindInput(null,this._contextViewProvider,{width:221,label:_,placeholder:y,appendCaseSensitiveLabel:this._keybindingLabelFor(h.FIND_IDS.ToggleCaseSensitiveCommand),appendWholeWordsLabel:this._keybindingLabelFor(h.FIND_IDS.ToggleWholeWordCommand),appendRegexLabel:this._keybindingLabelFor(h.FIND_IDS.ToggleRegexCommand),validation:function(t){if(0===t.length)return null;if(!e._findInput.getRegex())return null;try{return new RegExp(t),null}catch(e){return{content:e.message}}}})),this._findInput.setRegex(!!this._state.isRegex),this._findInput.setCaseSensitive(!!this._state.matchCase),this._findInput.setWholeWords(!!this._state.wholeWord),this._register(this._findInput.onKeyDown(function(t){return e._onFindInputKeyDown(t)})),this._register(this._findInput.onInput(function(){e._state.change({searchString:e._findInput.getValue()},!0)})),this._register(this._findInput.onDidOptionChange(function(){e._state.change({isRegex:e._findInput.getRegex(),wholeWord:e._findInput.getWholeWords(),matchCase:e._findInput.getCaseSensitive()},!0)})),this._register(this._findInput.onCaseSensitiveKeyDown(function(t){t.equals(1026)&&e._isReplaceVisible&&(e._replaceInputBox.focus(),t.preventDefault())})),o.isLinux&&this._register(this._findInput.onMouseDown(function(t){return e._onFindInputMouseDown(t)})),this._matchesCount=document.createElement("div"),this._matchesCount.className="matchesCount",this._updateMatchesCount(),this._prevBtn=this._register(new B({label:b+this._keybindingLabelFor(h.FIND_IDS.PreviousMatchFindAction),className:"previous",onTrigger:function(){e._codeEditor.getAction(h.FIND_IDS.PreviousMatchFindAction).run().done(null,i.onUnexpectedError)},onKeyDown:function(e){}})),this._nextBtn=this._register(new B({label:C+this._keybindingLabelFor(h.FIND_IDS.NextMatchFindAction),className:"next",onTrigger:function(){e._codeEditor.getAction(h.FIND_IDS.NextMatchFindAction).run().done(null,i.onUnexpectedError)},onKeyDown:function(e){}}));var t=document.createElement("div");return t.className="find-part",t.appendChild(this._findInput.domNode),t.appendChild(this._matchesCount),t.appendChild(this._prevBtn.domNode),t.appendChild(this._nextBtn.domNode),this._toggleSelectionFind=this._register(new W({parent:t,title:w+this._keybindingLabelFor(h.FIND_IDS.ToggleSearchScopeCommand),onChange:function(){if(e._toggleSelectionFind.checked){var t=e._codeEditor.getSelection();1===t.endColumn&&t.endLineNumber>t.startLineNumber&&(t=t.setEndPosition(t.endLineNumber-1,1)),t.isEmpty()||e._state.change({searchScope:t},!0)}else e._state.change({searchScope:null},!0)}})),this._closeBtn=this._register(new B({label:S+this._keybindingLabelFor(h.FIND_IDS.CloseFindWidgetCommand),className:"close-fw",onTrigger:function(){e._state.change({isRevealed:!1,searchScope:null},!1)},onKeyDown:function(t){t.equals(2)&&e._isReplaceVisible&&(e._replaceBtn.isEnabled()?e._replaceBtn.focus():e._codeEditor.focus(),t.preventDefault())}})),t.appendChild(this._closeBtn.domNode),t},t.prototype._buildReplacePart=function(){var e=this,t=document.createElement("div");t.className="replace-input",t.style.width="221px",this._replaceInputBox=this._register(new u.InputBox(t,null,{ariaLabel:E,placeholder:L})),this._register(s.addStandardDisposableListener(this._replaceInputBox.inputElement,"keydown",function(t){return e._onReplaceInputKeyDown(t)})),this._register(s.addStandardDisposableListener(this._replaceInputBox.inputElement,"input",function(t){e._state.change({replaceString:e._replaceInputBox.value},!1)})),this._replaceBtn=this._register(new B({label:x+this._keybindingLabelFor(h.FIND_IDS.ReplaceOneAction),className:"replace",onTrigger:function(){e._controller.replace()},onKeyDown:function(t){t.equals(1026)&&(e._closeBtn.focus(),t.preventDefault())}})),this._replaceAllBtn=this._register(new B({label:N+this._keybindingLabelFor(h.FIND_IDS.ReplaceAllAction),className:"replace-all",onTrigger:function(){e._controller.replaceAll()},onKeyDown:function(e){}}));var n=document.createElement("div");return n.className="replace-part",n.appendChild(t),n.appendChild(this._replaceBtn.domNode),n.appendChild(this._replaceAllBtn.domNode),n},t.prototype._buildDomNode=function(){var e=this,t=this._buildFindPart(),n=this._buildReplacePart();this._toggleReplaceBtn=this._register(new B({label:M,className:"toggle left",onTrigger:function(){e._state.change({isReplaceRevealed:!e._isReplaceVisible},!1),e._isReplaceVisible&&(e._replaceInputBox.width=e._findInput.inputBox.width),e._showViewZone()},onKeyDown:function(e){}})),this._toggleReplaceBtn.toggleClass("expand",this._isReplaceVisible),this._toggleReplaceBtn.toggleClass("collapse",!this._isReplaceVisible),this._toggleReplaceBtn.setExpanded(this._isReplaceVisible),this._domNode=document.createElement("div"),this._domNode.className="editor-widget find-widget",this._domNode.setAttribute("aria-hidden","true"),this._domNode.appendChild(this._toggleReplaceBtn.domNode),this._domNode.appendChild(t),this._domNode.appendChild(n),this._buildSash()},t.prototype._buildSash=function(){var e=this;this._resizeSash=new c.Sash(this._domNode,this,{orientation:c.Orientation.VERTICAL});var t=D;this._register(this._resizeSash.addListener("start",function(n){t=s.getTotalWidth(e._domNode)})),this._register(this._resizeSash.addListener("change",function(n){var i=t+n.startX-n.currentX;if(!(i(parseFloat(s.getComputedStyle(e._domNode).maxWidth)||0)||(e._domNode.style.width=i+"px",e._isReplaceVisible&&(e._replaceInputBox.width=o))}}))},t}(l.Widget);F.ID="editor.contrib.findWidget",t.FindWidget=F;var W=function(e){function t(n){var i=e.call(this)||this;return i._opts=n,i._domNode=document.createElement("div"),i._domNode.className="monaco-checkbox",i._domNode.title=i._opts.title,i._domNode.tabIndex=0,i._checkbox=document.createElement("input"),i._checkbox.type="checkbox",i._checkbox.className="checkbox",i._checkbox.id="checkbox-"+t._COUNTER++,i._checkbox.tabIndex=-1,i._label=document.createElement("label"),i._label.className="label",i._label.htmlFor=i._checkbox.id,i._label.tabIndex=-1,i._domNode.appendChild(i._checkbox),i._domNode.appendChild(i._label),i._opts.parent.appendChild(i._domNode),i.onchange(i._checkbox,function(e){i._opts.onChange()}),i}return f(t,e),Object.defineProperty(t.prototype,"domNode",{get:function(){return this._domNode},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"checked",{get:function(){return this._checkbox.checked},set:function(e){this._checkbox.checked=e},enumerable:!0,configurable:!0}),t.prototype.focus=function(){this._checkbox.focus()},t.prototype.enable=function(){this._checkbox.removeAttribute("disabled")},t.prototype.disable=function(){this._checkbox.disabled=!0},t.prototype.setEnabled=function(e){e?(this.enable(),this.domNode.tabIndex=0):(this.disable(),this.domNode.tabIndex=-1)},t}(l.Widget);W._COUNTER=0;var B=function(e){function t(t){var n=e.call(this)||this;return n._opts=t,n._domNode=document.createElement("div"),n._domNode.title=n._opts.label,n._domNode.tabIndex=0,n._domNode.className="button "+n._opts.className,n._domNode.setAttribute("role","button"),n._domNode.setAttribute("aria-label",n._opts.label),n.onclick(n._domNode,function(e){n._opts.onTrigger(),e.preventDefault()}),n.onkeydown(n._domNode,function(e){if(e.equals(10)||e.equals(3))return n._opts.onTrigger(),void e.preventDefault();n._opts.onKeyDown(e)}),n}return f(t,e),Object.defineProperty(t.prototype,"domNode",{get:function(){return this._domNode},enumerable:!0,configurable:!0}),t.prototype.isEnabled=function(){return this._domNode.tabIndex>=0},t.prototype.focus=function(){this._domNode.focus()},t.prototype.setEnabled=function(e){s.toggleClass(this._domNode,"disabled",!e),this._domNode.setAttribute("aria-disabled",String(!e)),this._domNode.tabIndex=e?0:-1},t.prototype.setExpanded=function(e){this._domNode.setAttribute("aria-expanded",String(!!e))},t.prototype.toggleClass=function(e,t){s.toggleClass(this._domNode,e,t)},t}(l.Widget);m.registerThemingParticipant(function(e,t){function n(e,n){n&&t.addRule(".monaco-editor "+e+" { background-color: "+n+"; }")}n(".findMatch",e.getColor(v.editorFindMatchHighlight)),n(".currentFindMatch",e.getColor(v.editorFindMatch)),n(".findScope",e.getColor(v.editorFindRangeHighlight)),n(".find-widget",e.getColor(v.editorWidgetBackground));var i=e.getColor(v.widgetShadow);i&&t.addRule(".monaco-editor .find-widget { box-shadow: 0 2px 8px "+i+"; }");var o=e.getColor(v.activeContrastBorder);o&&(t.addRule(".monaco-editor .findScope { border: 1px dashed "+o.transparent(.4)+"; }"),t.addRule(".monaco-editor .currentFindMatch { border: 2px solid "+o+"; padding: 1px; -moz-box-sizing: border-box; box-sizing: border-box; }"),t.addRule(".monaco-editor .findMatch { border: 1px dotted "+o+"; -moz-box-sizing: border-box; box-sizing: border-box; }"));var r=e.getColor(v.contrastBorder);r&&t.addRule(".monaco-editor .find-widget { border: 2px solid "+r+"; }");var s=e.getColor(v.errorForeground);s&&t.addRule(".monaco-editor .find-widget.no-results .matchesCount { color: "+s+"; }");var a=e.getColor("panel.border");a&&t.addRule(".monaco-editor .find-widget .monaco-sash { background-color: "+a+"; width: 3px !important; margin-left: -4px;}")})}),define(d[507],h([0,1,71,47,19,32,506,505,145,14,72]),function(e,t,n,i,o,r,s,a,u,l,c){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var d=function(e){function t(t,n,i,o,r,u){var l=e.call(this,t,i,u)||this;return l._widget=l._register(new s.FindWidget(t,l,l._state,n,o,i,r)),l._findOptionsWidget=l._register(new a.FindOptionsWidget(t,l._state,o,r)),l}return f(t,e),t.prototype._start=function(t){e.prototype._start.call(this,t),2===t.shouldFocus?this._widget.focusReplaceInput():1===t.shouldFocus&&this._widget.focusFindInput()},t.prototype.highlightFindOptions=function(){this._state.isRevealed?this._widget.highlightFindOptions():this._findOptionsWidget.highlightFindOptions()},t}(u.CommonFindController);d=v([r.editorContribution,y(1,n.IContextViewService),y(2,o.IContextKeyService),y(3,i.IKeybindingService),y(4,l.IThemeService),y(5,c.IStorageService)],d),t.FindController=d}),define(d[508],h([0,1,18,3,48,2,13,25,19,14,23,290]),function(e,t,n,i,o,r,s,a,u,l,c){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var d=f=function(){function e(e,t){this._messageListeners=[],this._editor=e,this._visible=f.CONTEXT_SNIPPET_MODE.bindTo(t)}return e.get=function(e){return e.getContribution(f._id)},e.prototype.getId=function(){return f._id},e.prototype.dispose=function(){this._visible.reset()},e.prototype.showMessage=function(e,t){var s=this;o.alert(e),this._visible.set(!0),i.dispose(this._messageWidget),this._messageListeners=i.dispose(this._messageListeners),this._messageWidget=new p(this._editor,t,e),this._messageListeners.push(this._editor.onDidBlurEditorText(function(){return s.closeMessage()})),this._messageListeners.push(this._editor.onDidChangeCursorPosition(function(){return s.closeMessage()})),this._messageListeners.push(this._editor.onDidDispose(function(){return s.closeMessage()})),this._messageListeners.push(this._editor.onDidChangeModel(function(){return s.closeMessage()})),this._messageListeners.push(n.setDisposableTimeout(function(){return s.closeMessage()},3e3));var a;this._messageListeners.push(this._editor.onMouseMove(function(e){e.target.position&&(a?a.containsPosition(e.target.position)||s.closeMessage():a=new r.Range(t.lineNumber-3,1,e.target.position.lineNumber+3,1))}))},e.prototype.closeMessage=function(){this._visible.reset(),this._messageListeners=i.dispose(this._messageListeners),this._messageListeners.push(p.fadeOut(this._messageWidget))},e}();d._id="editor.contrib.messageController",d.CONTEXT_SNIPPET_MODE=new u.RawContextKey("messageVisible",!1),d=f=v([s.commonEditorContribution,y(1,u.IContextKeyService)],d),t.MessageController=d;var h=s.EditorCommand.bindToContribution(d.get);s.CommonEditorRegistry.registerEditorCommand(new h({id:"leaveEditorMessage",precondition:d.CONTEXT_SNIPPET_MODE,handler:function(e){return e.closeMessage()},kbOpts:{weight:s.CommonEditorRegistry.commandWeight(30),primary:9}}));var p=function(){function e(e,t,n){var i=t.lineNumber,o=t.column;this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._editor=e,this._editor.revealLinesInCenterIfOutsideViewport(i,i),this._position={lineNumber:i,column:1},this._domNode=document.createElement("div"),this._domNode.style.paddingLeft=e.getOffsetForColumn(i,o)-6+"px",this._domNode.classList.add("monaco-editor-overlaymessage");var r=document.createElement("div");r.classList.add("message"),r.textContent=n,this._domNode.appendChild(r);var s=document.createElement("div");s.classList.add("anchor"),this._domNode.appendChild(s),this._editor.addContentWidget(this),this._domNode.classList.add("fadeIn")}return e.fadeOut=function(e){var t,n=function(){e.dispose(),clearTimeout(t),e.getDomNode().removeEventListener("animationend",n)};return t=setTimeout(n,110),e.getDomNode().addEventListener("animationend",n),e.getDomNode().classList.add("fadeOut"),{dispose:n}},e.prototype.dispose=function(){this._editor.removeContentWidget(this)},e.prototype.getId=function(){return"messageoverlay"},e.prototype.getDomNode=function(){return this._domNode},e.prototype.getPosition=function(){return{position:this._position,preference:[a.ContentWidgetPositionPreference.ABOVE]}},e}();l.registerThemingParticipant(function(e,t){var n=e.getColor(c.inputValidationInfoBorder);if(n){var i=e.type===l.HIGH_CONTRAST?2:1;t.addRule(".monaco-editor .monaco-editor-overlaymessage .anchor { border-top-color: "+n+"; }"),t.addRule(".monaco-editor .monaco-editor-overlaymessage .message { border: "+i+"px solid "+n+"; }")}var o=e.getColor(c.inputValidationInfoBackground);o&&t.addRule(".monaco-editor .monaco-editor-overlaymessage .message { background-color: "+o+"; }")});var f}),define(d[509],h([0,1,343,11,3,40,6,19,105,62,12,2,13,32,170,23,14,34,20,36,287]),function(e,t,n,i,o,r,s,a,u,l,c,d,h,p,g,m,b,C,w,S){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var E=function(){function e(e,t){var n=this;this._editor=e,this._markers=null,this._nextIdx=-1,this._toUnbind=[],this._ignoreSelectionChange=!1,this._onCurrentMarkerChanged=new i.Emitter,this._onMarkerSetChanged=new i.Emitter,this.setMarkers(t),this._toUnbind.push(this._editor.onDidDispose(function(){return n.dispose()})),this._toUnbind.push(this._editor.onDidChangeCursorPosition(function(){n._ignoreSelectionChange||(n._nextIdx=-1)}))}return Object.defineProperty(e.prototype,"onCurrentMarkerChanged",{get:function(){return this._onCurrentMarkerChanged.event},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"onMarkerSetChanged",{get:function(){return this._onMarkerSetChanged.event},enumerable:!0,configurable:!0}),e.prototype.setMarkers=function(e){this._markers=e||[],this._markers.sort(function(e,t){return r.default.compare(e.severity,t.severity)||d.Range.compareRangesUsingStarts(e,t)}),this._nextIdx=-1,this._onMarkerSetChanged.fire(this)},e.prototype.withoutWatchingEditorPosition=function(e){this._ignoreSelectionChange=!0;try{e()}finally{this._ignoreSelectionChange=!1}},e.prototype._initIdx=function(e){for(var t=!1,n=this._editor.getPosition(),i=0;i=this._markers.length&&(this._nextIdx=0)):(this._nextIdx-=1,this._nextIdx<0&&(this._nextIdx=this._markers.length-1));var t=this._markers[this._nextIdx];this._onCurrentMarkerChanged.fire(t)}else this._onCurrentMarkerChanged.fire(void 0)},e.prototype.canNavigate=function(){return this._markers.length>0},e.prototype.next=function(){this.move(!0)},e.prototype.previous=function(){this.move(!1)},e.prototype.findMarkerAtPosition=function(e){for(var t=0,n=this._markers;t1&&(s=new r.Selection(s.startLineNumber,s.startColumn,s.endLineNumber,s.endColumn+d-1));var h=new l.InPlaceReplaceCommand(a,s,t.value);n.editor.pushUndoStop(),n.editor.executeCommand(e,h),n.editor.pushUndoStop(),n.decorationIds=n.editor.deltaDecorations(n.decorationIds,[{range:c,options:b.DECORATION}]),n.decorationRemover.cancel(),n.decorationRemover=i.TPromise.timeout(350),n.decorationRemover.then(function(){n.editor.changeDecorations(function(e){n.decorationIds=e.deltaDecorations(n.decorationIds,[])})})}})},e}();g.ID="editor.contrib.inPlaceReplaceController",g.DECORATION=p.ModelDecorationOptions.register({className:"valueSetReplacement"}),g=b=v([a.commonEditorContribution,y(1,u.IEditorWorkerService)],g);var m=function(e){function t(){return e.call(this,{id:"editor.action.inPlaceReplace.up",label:n.localize(0,null),alias:"Replace with Previous Value",precondition:s.EditorContextKeys.writable,kbOpts:{kbExpr:s.EditorContextKeys.textFocus,primary:3154}})||this}return f(t,e),t.prototype.run=function(e,t){var n=g.get(t);if(n)return n.run(this.id,!0)},t}(a.EditorAction);m=v([a.editorAction],m);var _=function(e){function t(){return e.call(this,{id:"editor.action.inPlaceReplace.down",label:n.localize(1,null),alias:"Replace with Next Value",precondition:s.EditorContextKeys.writable,kbOpts:{kbExpr:s.EditorContextKeys.textFocus,primary:3156}})||this}return f(t,e),t.prototype.run=function(e,t){var n=g.get(t);if(n)return n.run(this.id,!1)},t}(a.EditorAction);_=v([a.editorAction],_),d.registerThemingParticipant(function(e,t){var n=e.getColor(h.editorBracketMatchBorder);n&&t.addRule(".monaco-editor.vs .valueSetReplacement { outline: solid 2px "+n+"; }")});var b}),define(d[512],h([0,1,348,10,15,40,8,66,67,21,13,17,63,25,391,3,32,14,23,33,150,282]),function(e,t,n,i,o,r,s,a,u,l,c,d,h,p,g,m,_,b,C,w,S){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var E=o.isMacintosh?n.localize(0,null):n.localize(1,null),L=n.localize(2,null),x={meta:w.ModelDecorationOptions.register({stickiness:l.TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges,inlineClassName:"detected-link",hoverMessage:E}),metaActive:w.ModelDecorationOptions.register({stickiness:l.TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges,inlineClassName:"detected-link-active",hoverMessage:E}),alt:w.ModelDecorationOptions.register({stickiness:l.TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges,inlineClassName:"detected-link",hoverMessage:L}),altActive:w.ModelDecorationOptions.register({stickiness:l.TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges,inlineClassName:"detected-link-active",hoverMessage:L})},N=function(){function e(e,t){this.link=e,this.decorationId=t}return e.decoration=function(t,n){return{range:{startLineNumber:t.range.startLineNumber,startColumn:t.range.startColumn,endLineNumber:t.range.endLineNumber,endColumn:t.range.endColumn},options:e._getOptions(n,!1)}},e._getOptions=function(e,t){return e?t?x.metaActive:x.meta:t?x.altActive:x.alt},e.prototype.activate=function(t,n){t.changeDecorationOptions(this.decorationId,e._getOptions(n,!0))},e.prototype.deactivate=function(t,n){t.changeDecorationOptions(this.decorationId,e._getOptions(n,!1))},e}(),M=k=function(){function e(e,t,n,i){var o=this;this.editor=e,this.openerService=t,this.messageService=n,this.editorWorkerService=i,this.listenersToRemove=[];var r=new S.ClickLinkGesture(e);this.listenersToRemove.push(r),this.listenersToRemove.push(r.onMouseMoveOrRelevantKeyDown(function(e){var t=e[0],n=e[1];o._onEditorMouseMove(t,n)})),this.listenersToRemove.push(r.onExecute(function(e){o.onEditorMouseUp(e)})),this.listenersToRemove.push(r.onCancel(function(e){o.cleanUpActiveLinkDecoration()})),this.enabled=e.getConfiguration().contribInfo.links,this.listenersToRemove.push(e.onDidChangeConfiguration(function(t){var n=e.getConfiguration().contribInfo.links;o.enabled!==n&&(o.enabled=n,o.updateDecorations([]),o.stop(),o.beginCompute())})),this.listenersToRemove.push(e.onDidChangeModelContent(function(e){return o.onChange()})),this.listenersToRemove.push(e.onDidChangeModel(function(e){return o.onModelChanged()})),this.listenersToRemove.push(e.onDidChangeModelLanguage(function(e){return o.onModelModeChanged()})),this.listenersToRemove.push(d.LinkProviderRegistry.onDidChange(function(e){return o.onModelModeChanged()})),this.timeoutPromise=null,this.computePromise=null,this.currentOccurrences={},this.activeLinkDecorationId=null,this.beginCompute()}return e.get=function(e){return e.getContribution(k.ID)},e.prototype.getId=function(){return k.ID},e.prototype.isComputing=function(){return s.TPromise.is(this.computePromise)},e.prototype.onModelChanged=function(){this.currentOccurrences={},this.activeLinkDecorationId=null,this.stop(),this.beginCompute()},e.prototype.onModelModeChanged=function(){this.stop(),this.beginCompute()},e.prototype.onChange=function(){var e=this;this.timeoutPromise||(this.timeoutPromise=s.TPromise.timeout(k.RECOMPUTE_TIME),this.timeoutPromise.then(function(){e.timeoutPromise=null,e.beginCompute()}))},e.prototype.beginCompute=function(){var e=this;this.editor.getModel()&&this.enabled&&d.LinkProviderRegistry.has(this.editor.getModel())&&(this.computePromise=g.getLinks(this.editor.getModel()).then(function(t){e.updateDecorations(t),e.computePromise=null}))},e.prototype.updateDecorations=function(e){var t=this,n="altKey"===this.editor.getConfiguration().multiCursorModifier;this.editor.changeDecorations(function(i){for(var o=[],r=Object.keys(t.currentOccurrences),s=0,a=r.length;s1;r.toggleClass(this.element,"multiple",e),this.keyMultipleSignatures.set(e),this.signature.innerHTML="",this.docs.innerHTML="";var t=this.hints.signatures[this.currentSignature];if(t){var i=r.append(this.signature,w(".code")),o=t.parameters.length>0,a=this.editor.getConfiguration().fontInfo;i.style.fontSize=a.fontSize+"px",i.style.fontFamily=a.fontFamily,o?this.renderParameters(i,t,this.hints.activeParameter):r.append(i,w("span")).textContent=t.label;var u=t.parameters[this.hints.activeParameter];if(u&&u.documentation){var l=w("span.documentation");l.textContent=u.documentation,r.append(this.docs,w("p",null,l))}r.toggleClass(this.signature,"has-docs",!!t.documentation),t.documentation&&r.append(this.docs,w("p",null,t.documentation));var c=String(this.currentSignature+1);if(this.hints.signatures.length<10&&(c+="/"+this.hints.signatures.length),this.overloads.textContent=c,u){var d=u.label;this.announcedLabel!==d&&(s.alert(n.localize(0,null,d)),this.announcedLabel=d)}this.editor.layoutContentWidget(this),this.scrollbar.scanDomNode()}},e.prototype.renderParameters=function(e,t,n){for(var i,o=t.label.length,s=0,a=t.parameters.length-1;a>=0;a--){var u=t.parameters[a],l=0,c=0;(s=t.label.lastIndexOf(u.label,o-1))>=0&&(l=s,c=s+u.label.length),(i=document.createElement("span")).textContent=t.label.substring(c,o),r.prepend(e,i),(i=document.createElement("span")).className="parameter "+(a===n?"active":""),i.textContent=t.label.substring(l,c),r.prepend(e,i),o=l}(i=document.createElement("span")).textContent=t.label.substring(0,o),r.prepend(e,i)},e.prototype.next=function(){var e=this.hints.signatures.length;return e<2?(this.cancel(),!1):(this.currentSignature=(this.currentSignature+1)%e,this.render(),!0)},e.prototype.previous=function(){var e=this.hints.signatures.length;return e<2?(this.cancel(),!1):(this.currentSignature=(this.currentSignature-1+e)%e,this.render(),!0)},e.prototype.cancel=function(){this.model.cancel()},e.prototype.getDomNode=function(){return this.element},e.prototype.getId=function(){return e.ID},e.prototype.trigger=function(){this.model.trigger(0)},e.prototype.updateMaxHeight=function(){var e=Math.max(this.editor.getLayoutInfo().height/4,250);this.element.style.maxHeight=e+"px"},e.prototype.dispose=function(){this.disposables=i.dispose(this.disposables),this.model=null},e}();E.ID="editor.widget.parameterHintsWidget",E=v([y(1,p.IContextKeyService)],E),t.ParameterHintsWidget=E,b.registerThemingParticipant(function(e,t){var n=e.getColor(C.editorHoverBorder);if(n){var i=e.type===b.HIGH_CONTRAST?2:1;t.addRule(".monaco-editor .parameter-hints-widget { border: "+i+"px solid "+n+"; }"),t.addRule(".monaco-editor .parameter-hints-widget.multiple .body { border-left: 1px solid "+n.transparent(.5)+"; }"),t.addRule(".monaco-editor .parameter-hints-widget .signature.has-docs { border-bottom: 1px solid "+n.transparent(.5)+"; }")}var o=e.getColor(C.editorHoverBackground);o&&t.addRule(".monaco-editor .parameter-hints-widget { background-color: "+o+"; }")})}),define(d[514],h([0,1,350,3,16,20,19,13,32,513,199]),function(e,t,n,i,o,r,s,a,u,l,c){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var d=m=function(){function e(e,t){this.editor=e,this.widget=t.createInstance(l.ParameterHintsWidget,this.editor)}return e.get=function(e){return e.getContribution(m.ID)},e.prototype.getId=function(){return m.ID},e.prototype.cancel=function(){this.widget.cancel()},e.prototype.previous=function(){this.widget.previous()},e.prototype.next=function(){this.widget.next()},e.prototype.trigger=function(){this.widget.trigger()},e.prototype.dispose=function(){this.widget=i.dispose(this.widget)},e}();d.ID="editor.controller.parameterHints",d=m=v([u.editorContribution,y(1,o.IInstantiationService)],d);var h=function(e){function t(){return e.call(this,{id:"editor.action.triggerParameterHints",label:n.localize(0,null),alias:"Trigger Parameter Hints",precondition:r.EditorContextKeys.hasSignatureHelpProvider,kbOpts:{kbExpr:r.EditorContextKeys.textFocus,primary:3082}})||this}return f(t,e),t.prototype.run=function(e,t){var n=d.get(t);n&&n.trigger()},t}(a.EditorAction);h=v([a.editorAction],h),t.TriggerParameterHintsAction=h;var p=a.CommonEditorRegistry.commandWeight(75),g=a.EditorCommand.bindToContribution(d.get);a.CommonEditorRegistry.registerEditorCommand(new g({id:"closeParameterHints",precondition:c.Context.Visible,handler:function(e){return e.cancel()},kbOpts:{weight:p,kbExpr:r.EditorContextKeys.textFocus,primary:9,secondary:[1033]}})),a.CommonEditorRegistry.registerEditorCommand(new g({id:"showPrevParameterHint",precondition:s.ContextKeyExpr.and(c.Context.Visible,c.Context.MultipleSignatures),handler:function(e){return e.previous()},kbOpts:{weight:p,kbExpr:r.EditorContextKeys.textFocus,primary:16,secondary:[528],mac:{primary:16,secondary:[528,302]}}})),a.CommonEditorRegistry.registerEditorCommand(new g({id:"showNextParameterHint",precondition:s.ContextKeyExpr.and(c.Context.Visible,c.Context.MultipleSignatures),handler:function(e){return e.next()},kbOpts:{weight:p,kbExpr:r.EditorContextKeys.textFocus,primary:18,secondary:[530],mac:{primary:18,secondary:[530,300]}}}));var m}),define(d[515],h([0,1,359,10,3,8,2,25,14,23,12,271]),function(e,t,n,i,o,r,s,a,u,l,c){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var d=function(){function e(e,t){var n=this;this.themeService=t,this._disposables=[],this.allowEditorOverflow=!0,this._currentAcceptInput=null,this._currentCancelInput=null,this._editor=e,this._editor.addContentWidget(this),this._disposables.push(e.onDidChangeConfiguration(function(e){e.fontInfo&&n.updateFont()})),this._disposables.push(t.onThemeChange(function(e){return n.onThemeChange(e)}))}return e.prototype.onThemeChange=function(e){this.updateStyles(e)},e.prototype.dispose=function(){this._disposables=o.dispose(this._disposables),this._editor.removeContentWidget(this)},e.prototype.getId=function(){return"__renameInputWidget"},e.prototype.getDomNode=function(){return this._domNode||(this._inputField=document.createElement("input"),this._inputField.className="rename-input",this._inputField.type="text",this._inputField.setAttribute("aria-label",n.localize(0,null)),this._domNode=document.createElement("div"),this._domNode.style.height=this._editor.getConfiguration().lineHeight+"px",this._domNode.className="monaco-editor rename-box",this._domNode.appendChild(this._inputField),this.updateFont(),this.updateStyles(this.themeService.getTheme())),this._domNode},e.prototype.updateStyles=function(e){if(this._inputField){var t=e.getColor(l.inputBackground),n=e.getColor(l.inputForeground),i=e.getColor(l.widgetShadow),o=e.getColor(l.inputBorder);this._inputField.style.backgroundColor=t?t.toString():null,this._inputField.style.color=n?n.toString():null,this._inputField.style.borderWidth=o?"1px":"0px",this._inputField.style.borderStyle=o?"solid":"none",this._inputField.style.borderColor=o?o.toString():"none",this._domNode.style.boxShadow=i?" 0 2px 8px "+i:null}},e.prototype.updateFont=function(){if(this._inputField){var e=this._editor.getConfiguration().fontInfo;this._inputField.style.fontFamily=e.fontFamily,this._inputField.style.fontWeight=e.fontWeight,this._inputField.style.fontSize=e.fontSize+"px"}},e.prototype.getPosition=function(){return this._visible?{position:this._position,preference:[a.ContentWidgetPositionPreference.BELOW,a.ContentWidgetPositionPreference.ABOVE]}:null},e.prototype.acceptInput=function(){this._currentAcceptInput&&this._currentAcceptInput()},e.prototype.cancelInput=function(){this._currentCancelInput&&this._currentCancelInput()},e.prototype.getInput=function(e,t,n,a){var u=this;this._position=new c.Position(e.startLineNumber,e.startColumn),this._inputField.value=t,this._inputField.setAttribute("selectionStart",n.toString()),this._inputField.setAttribute("selectionEnd",a.toString()),this._inputField.size=Math.max(1.1*(e.endColumn-e.startColumn),20);var l,d=[];return l=function(){o.dispose(d),u._hide()},new r.TPromise(function(n,o){u._currentCancelInput=function(){return u._currentAcceptInput=null,u._currentCancelInput=null,o(i.canceled()),!0},u._currentAcceptInput=function(){0!==u._inputField.value.trim().length&&u._inputField.value!==t?(u._currentAcceptInput=null,u._currentCancelInput=null,n(u._inputField.value)):u.cancelInput()};d.push(u._editor.onDidChangeCursorSelection(function(){s.Range.containsPosition(e,u._editor.getPosition())||u.cancelInput()})),d.push(u._editor.onDidBlurEditor(function(){return u.cancelInput()})),u._show()},this._currentCancelInput).then(function(e){return l(),e},function(e){return l(),r.TPromise.wrapError(e)})},e.prototype._show=function(){var e=this;this._editor.revealLineInCenterIfOutsideViewport(this._position.lineNumber),this._visible=!0,this._editor.layoutContentWidget(this),setTimeout(function(){e._inputField.focus(),e._inputField.setSelectionRange(parseInt(e._inputField.getAttribute("selectionStart")),parseInt(e._inputField.getAttribute("selectionEnd")))},25)},e.prototype._hide=function(){this._visible=!1,this._editor.layoutContentWidget(this)},e}();d=v([y(1,u.IThemeService)],d),t.default=d}),define(d[516],h([0,1,358,10,40,8,401,19,66,180,13,32,20,328,515,78,16,14,18,17,48,2]),function(e,t,n,i,o,r,s,a,u,l,c,d,h,p,g,m,_,b,C,w,S,E){"use strict";function L(e,t,o){var s=[],a=!1,u=w.RenameProviderRegistry.ordered(e).map(function(n){return function(){if(!a)return C.asWinJsPromise(function(i){return n.provideRenameEdits(e,t,o,i)}).then(function(e){if(e){if(!e.rejectReason)return a=!0,e;s.push(e.rejectReason)}else;},function(e){return i.onUnexpectedExternalError(e),r.TPromise.wrapError(new Error("provider failed"))})}});return C.sequence(u).then(function(e){var t=e[0];return s.length>0?{edits:void 0,rejectReason:s.join("\n")}:t||{edits:void 0,rejectReason:n.localize(0,null)}})}Object.defineProperty(t,"__esModule",{value:!0}),t.rename=L;var x=new a.RawContextKey("renameInputVisible",!1),N=k=function(){function e(e,t,n,i,o,r,s){this.editor=e,this._messageService=t,this._textModelResolverService=n,this._progressService=i,this._fileService=s,this._renameInputField=new g.default(e,r),this._renameInputVisible=x.bindTo(o)}return e.get=function(e){return e.getContribution(k.ID)},e.prototype.dispose=function(){this._renameInputField.dispose()},e.prototype.getId=function(){return k.ID},e.prototype.run=function(){var e=this,t=this.editor.getSelection(),s=this.editor.getModel().getWordAtPosition(t.getStartPosition());if(s){var a,u=t.startLineNumber,l=0,c=s.word.length;return a=new E.Range(u,s.startColumn,u,s.endColumn),t.isEmpty()||t.startLineNumber!==t.endLineNumber||(l=Math.max(0,t.startColumn-s.startColumn),c=Math.min(s.endColumn,t.endColumn)-s.startColumn),this._renameInputVisible.set(!0),this._renameInputField.getInput(a,s.word,l,c).then(function(t){e._renameInputVisible.reset(),e.editor.focus();var i=e._prepareRename(t).then(function(i){return i.finish().then(function(o){o&&e.editor.setSelection(o),S.alert(n.localize(1,null,s.word,t,i.ariaMessage()))})},function(t){return"string"==typeof t?void e._messageService.show(o.default.Info,t):(e._messageService.show(o.default.Error,n.localize(2,null)),r.TPromise.wrapError(t))});return e._progressService.showWhile(i,250),i},function(t){if(e._renameInputVisible.reset(),e.editor.focus(),!i.isPromiseCanceledError(t))return r.TPromise.wrapError(t)})}},e.prototype.acceptRenameInput=function(){this._renameInputField.acceptInput()},e.prototype.cancelRenameInput=function(){this._renameInputField.cancelInput()},e.prototype._prepareRename=function(e){var t=p.createBulkEdit(this._textModelResolverService,this.editor,this._fileService);return L(this.editor.getModel(),this.editor.getPosition(),e).then(function(e){return e.rejectReason?r.TPromise.wrapError(new Error(e.rejectReason)):(t.add(e.edits),t)})},e}();N.ID="editor.contrib.renameController",N=k=v([d.editorContribution,y(1,u.IMessageService),y(2,m.ITextModelService),y(3,l.IProgressService),y(4,a.IContextKeyService),y(5,b.IThemeService),y(6,_.optional(s.IFileService))],N);var M=function(e){function t(){return e.call(this,{id:"editor.action.rename",label:n.localize(3,null),alias:"Rename Symbol",precondition:a.ContextKeyExpr.and(h.EditorContextKeys.writable,h.EditorContextKeys.hasRenameProvider),kbOpts:{kbExpr:h.EditorContextKeys.textFocus,primary:60},menuOpts:{group:"1_modification",order:1.1}})||this}return f(t,e),t.prototype.run=function(e,t){var n=N.get(t);if(n)return n.run()},t}(c.EditorAction);M=v([c.editorAction],M),t.RenameAction=M;var T=c.EditorCommand.bindToContribution(N.get);c.CommonEditorRegistry.registerEditorCommand(new T({id:"acceptRenameInput",precondition:x,handler:function(e){return e.acceptRenameInput()},kbOpts:{weight:c.CommonEditorRegistry.commandWeight(99),kbExpr:h.EditorContextKeys.focus,primary:3}})),c.CommonEditorRegistry.registerEditorCommand(new T({id:"cancelRenameInput",precondition:x,handler:function(e){return e.cancelRenameInput()},kbOpts:{weight:c.CommonEditorRegistry.commandWeight(99),kbExpr:h.EditorContextKeys.focus,primary:9,secondary:[1033]}})),c.CommonEditorRegistry.registerDefaultLanguageCommand("_executeDocumentRenameProvider",function(e,t,n){var o=n.newName;if("string"!=typeof o)throw i.illegalArgument("newName");return L(e,t,o)});var k}),define(d[517],h([0,1,362,85,9,11,8,10,3,6,124,395,61,16,47,19,25,135,48,62,134,14,23,72,269]),function(e,t,n,i,o,r,s,a,u,l,c,d,h,p,f,g,m,b,C,w,S,E,L,x){"use strict";function N(e){return e&&e.match(I)?e:null}function M(e){if(!e)return!1;var t=e.suggestion;return!!t.documentation||t.detail&&t.detail!==t.label}Object.defineProperty(t,"__esModule",{value:!0});var T=!1;t.editorSuggestWidgetBackground=L.registerColor("editorSuggestWidget.background",{dark:L.editorWidgetBackground,light:L.editorWidgetBackground,hc:L.editorWidgetBackground},n.localize(0,null)),t.editorSuggestWidgetBorder=L.registerColor("editorSuggestWidget.border",{dark:L.editorWidgetBorder,light:L.editorWidgetBorder,hc:L.editorWidgetBorder},n.localize(1,null)),t.editorSuggestWidgetForeground=L.registerColor("editorSuggestWidget.foreground",{dark:L.editorForeground,light:L.editorForeground,hc:L.editorForeground},n.localize(2,null)),t.editorSuggestWidgetSelectedBackground=L.registerColor("editorSuggestWidget.selectedBackground",{dark:L.listFocusBackground,light:L.listFocusBackground,hc:L.listFocusBackground},n.localize(3,null)),t.editorSuggestWidgetHighlightForeground=L.registerColor("editorSuggestWidget.highlightForeground",{dark:L.listHighlightForeground,light:L.listHighlightForeground,hc:L.listHighlightForeground},n.localize(4,null));var k,I=/^(#([\da-f]{3}){1,2}|(rgb|hsl)a\(\s*(\d{1,3}%?\s*,\s*){3}(1|0?\.\d+)\)|(rgb|hsl)\(\s*\d{1,3}%?(\s*,\s*\d{1,3}%?){2}\s*\))$/i,D=function(){function e(e,t,n){this.widget=e,this.editor=t,this.triggerKeybindingLabel=n}return Object.defineProperty(e.prototype,"templateId",{get:function(){return"suggestion"},enumerable:!0,configurable:!0}),e.prototype.renderTemplate=function(e){var t=this,i=Object.create(null);i.disposables=[],i.root=e,i.icon=l.append(e,l.$(".icon")),i.colorspan=l.append(i.icon,l.$("span.colorspan"));var o=l.append(e,l.$(".contents")),s=l.append(o,l.$(".main"));i.highlightedLabel=new c.HighlightedLabel(s),i.disposables.push(i.highlightedLabel),i.typeLabel=l.append(s,l.$("span.type-label")),i.readMore=l.append(s,l.$("span.readMore")),i.readMore.title=n.localize(5,null,this.triggerKeybindingLabel);var a=function(){var e=t.editor.getConfiguration(),n=e.fontInfo.fontFamily,o=(e.contribInfo.suggestFontSize||e.fontInfo.fontSize)+"px",r=(e.contribInfo.suggestLineHeight||e.fontInfo.lineHeight)+"px";i.root.style.fontSize=o,s.style.fontFamily=n,s.style.lineHeight=r,i.icon.style.height=r,i.icon.style.width=r,i.readMore.style.height=r,i.readMore.style.width=r};return a(),r.chain(this.editor.onDidChangeConfiguration.bind(this.editor)).filter(function(e){return e.fontInfo||e.contribInfo}).on(a,null,i.disposables),i},e.prototype.renderElement=function(e,t,o){var r=this,s=o,a=e.suggestion;if(M(e)?s.root.setAttribute("aria-label",n.localize(6,null,a.label)):s.root.setAttribute("aria-label",n.localize(7,null,a.label)),s.icon.className="icon "+a.type,s.colorspan.style.backgroundColor="","color"===a.type){var u=N(a.label)||N(a.documentation);u&&(s.icon.className="icon customcolor",s.colorspan.style.backgroundColor=u)}s.highlightedLabel.set(a.label,i.createMatches(e.matches)),s.typeLabel.textContent=(a.detail||"").replace(/\n.*$/m,""),M(e)?(l.show(s.readMore),s.readMore.onmousedown=function(e){e.stopPropagation(),e.preventDefault()},s.readMore.onclick=function(e){e.stopPropagation(),e.preventDefault(),r.widget.toggleDetails()}):(l.hide(s.readMore),s.readMore.onmousedown=null,s.readMore.onclick=null)},e.prototype.disposeTemplate=function(e){e.highlightedLabel.dispose(),e.disposables=u.dispose(e.disposables)},e}();!function(e){e[e.Hidden=0]="Hidden",e[e.Loading=1]="Loading",e[e.Empty=2]="Empty",e[e.Open=3]="Open",e[e.Frozen=4]="Frozen",e[e.Details=5]="Details"}(k||(k={}));var O=function(){function e(e,t,i,o){var s=this;this.widget=t,this.editor=i,this.triggerKeybindingLabel=o,this.borderWidth=1,this.disposables=[],this.el=l.append(e,l.$(".details")),this.disposables.push(u.toDisposable(function(){return e.removeChild(s.el)})),this.body=l.$(".body"),this.scrollbar=new h.DomScrollableElement(this.body,{}),l.append(this.el,this.scrollbar.getDomNode()),this.disposables.push(this.scrollbar),this.header=l.append(this.body,l.$(".header")),this.close=l.append(this.header,l.$("span.close")),this.close.title=n.localize(8,null,o),this.type=l.append(this.header,l.$("p.type")),this.docs=l.append(this.body,l.$("p.docs")),this.ariaLabel=null,this.configureFont(),r.chain(this.editor.onDidChangeConfiguration.bind(this.editor)).filter(function(e){return e.fontInfo}).on(this.configureFont,this,this.disposables)}return Object.defineProperty(e.prototype,"element",{get:function(){return this.el},enumerable:!0,configurable:!0}),e.prototype.render=function(e){var t=this;if(!e||!M(e))return this.type.textContent="",this.docs.textContent="",l.addClass(this.el,"no-docs"),void(this.ariaLabel=null);l.removeClass(this.el,"no-docs"),this.docs.textContent=e.suggestion.documentation,e.suggestion.detail?(this.type.innerText=e.suggestion.detail,l.show(this.type)):(this.type.innerText="",l.hide(this.type)),this.el.style.height=this.header.offsetHeight+this.docs.offsetHeight+2*this.borderWidth+"px",this.close.onmousedown=function(e){e.preventDefault(),e.stopPropagation()},this.close.onclick=function(e){e.preventDefault(),e.stopPropagation(),t.widget.toggleDetails()},this.body.scrollTop=0,this.scrollbar.scanDomNode(),this.ariaLabel=o.format("{0}\n{1}\n{2}",e.suggestion.label||"",e.suggestion.detail||"",e.suggestion.documentation||"")},e.prototype.getAriaLabel=function(){return this.ariaLabel},e.prototype.scrollDown=function(e){void 0===e&&(e=8),this.body.scrollTop+=e},e.prototype.scrollUp=function(e){void 0===e&&(e=8),this.body.scrollTop-=e},e.prototype.scrollTop=function(){this.body.scrollTop=0},e.prototype.scrollBottom=function(){this.body.scrollTop=this.body.scrollHeight},e.prototype.pageDown=function(){this.scrollDown(80)},e.prototype.pageUp=function(){this.scrollUp(80)},e.prototype.setBorderWidth=function(e){this.borderWidth=e},e.prototype.configureFont=function(){var e=this.editor.getConfiguration(),t=e.fontInfo.fontFamily,n=(e.contribInfo.suggestFontSize||e.fontInfo.fontSize)+"px",i=(e.contribInfo.suggestLineHeight||e.fontInfo.lineHeight)+"px";this.el.style.fontSize=n,this.type.style.fontFamily=t,this.close.style.height=i,this.close.style.width=i},e.prototype.dispose=function(){this.disposables=u.dispose(this.disposables)},e}(),R=function(){function e(e,n,i,o,s,a,u){var c=this;this.editor=e,this.telemetryService=n,this.allowEditorOverflow=!0,this.ignoreFocusEvents=!1,this.onDidSelectEmitter=new r.Emitter,this.onDidFocusEmitter=new r.Emitter,this.onDidHideEmitter=new r.Emitter,this.onDidShowEmitter=new r.Emitter,this.onDidSelect=this.onDidSelectEmitter.event,this.onDidFocus=this.onDidFocusEmitter.event,this.onDidHide=this.onDidHideEmitter.event,this.onDidShow=this.onDidShowEmitter.event,this.maxWidgetWidth=660,this.listWidth=330,this.storageServiceAvailable=!0,this.expandSuggestionDocs=!1;var h=u.lookupKeybinding("editor.action.triggerSuggest"),p=h?" ("+h.getLabel()+")":"";this.isAuto=!1,this.focusedItem=null,this.storageService=a,void 0===this.expandDocsSettingFromStorage()&&(this.storageService.store("expandSuggestionDocs",T,x.StorageScope.GLOBAL),void 0===this.expandDocsSettingFromStorage()&&(this.storageServiceAvailable=!1)),this.element=l.$(".editor-widget.suggest-widget"),this.editor.getConfiguration().contribInfo.iconsInSuggestions||l.addClass(this.element,"no-icons"),this.messageElement=l.append(this.element,l.$(".message")),this.listElement=l.append(this.element,l.$(".tree")),this.details=new O(this.element,this,this.editor,p);var f=o.createInstance(D,this,this.editor,p);this.list=new d.List(this.listElement,this,[f],{useShadows:!1,selectOnMouseDown:!0}),this.toDispose=[S.attachListStyler(this.list,s,{listInactiveFocusBackground:t.editorSuggestWidgetSelectedBackground,listInactiveFocusOutline:L.activeContrastBorder}),s.onThemeChange(function(e){return c.onThemeChange(e)}),e.onDidBlurEditorText(function(){return c.onEditorBlur()}),e.onDidLayoutChange(function(){return c.onEditorLayoutChange()}),this.list.onSelectionChange(function(e){return c.onListSelection(e)}),this.list.onFocusChange(function(e){return c.onListFocus(e)}),this.editor.onDidChangeCursorSelection(function(){return c.onCursorSelectionChanged()})],this.suggestWidgetVisible=b.Context.Visible.bindTo(i),this.suggestWidgetMultipleSuggestions=b.Context.MultipleSuggestions.bindTo(i),this.suggestionSupportsAutoAccept=b.Context.AcceptOnKey.bindTo(i),this.editor.addContentWidget(this),this.setState(0),this.onThemeChange(s.getTheme())}return e.prototype.onCursorSelectionChanged=function(){0!==this.state&&this.editor.layoutContentWidget(this)},e.prototype.onEditorBlur=function(){var e=this;this.editorBlurTimeout=s.TPromise.timeout(150).then(function(){e.editor.isFocused()||e.setState(0)})},e.prototype.onEditorLayoutChange=function(){3!==this.state&&5!==this.state||!this.expandDocsSettingFromStorage()||this.expandSideOrBelow()},e.prototype.onListSelection=function(e){if(e.elements.length){var t=e.elements[0];this.onDidSelectEmitter.fire(t),C.alert(n.localize(11,null,t.suggestion.label)),this.editor.focus()}},e.prototype._getSuggestionAriaAlertLabel=function(e){return M(e)?n.localize(12,null,e.suggestion.label):n.localize(13,null,e.suggestion.label)},e.prototype._ariaAlert=function(e){this._lastAriaAlertLabel!==e&&(this._lastAriaAlertLabel=e,this._lastAriaAlertLabel&&C.alert(this._lastAriaAlertLabel))},e.prototype.onThemeChange=function(e){var n=e.getColor(t.editorSuggestWidgetBackground);n&&(this.listElement.style.backgroundColor=n.toString(),this.details.element.style.backgroundColor=n.toString(),this.messageElement.style.backgroundColor=n.toString());var i=e.getColor(t.editorSuggestWidgetBorder);i&&(this.listElement.style.borderColor=i.toString(),this.details.element.style.borderColor=i.toString(),this.messageElement.style.borderColor=i.toString(),this.detailsBorderColor=i.toString());var o=e.getColor(L.focusBorder);o&&(this.detailsFocusBorderColor=o.toString()),this.details.setBorderWidth("hc"===e.type?2:1)},e.prototype.onListFocus=function(e){var t=this;if(!this.ignoreFocusEvents){if(!e.elements.length)return this.currentSuggestionDetails&&(this.currentSuggestionDetails.cancel(),this.currentSuggestionDetails=null,this.focusedItem=null),void this._ariaAlert(null);var n=e.elements[0];if(this._ariaAlert(this._getSuggestionAriaAlertLabel(n)),n!==this.focusedItem){this.currentSuggestionDetails&&(this.currentSuggestionDetails.cancel(),this.currentSuggestionDetails=null);var i=e.indexes[0];this.suggestionSupportsAutoAccept.set(!n.suggestion.noAutoAccept);var o=this.focusedItem,r=this.focusedItemIndex;this.focusedItemIndex=i,this.focusedItem=n,o&&(this.ignoreFocusEvents=!0,this.list.splice(r,1,[o]),this.ignoreFocusEvents=!1),this.updateListHeight(),this.list.reveal(i),this.currentSuggestionDetails=n.resolve().then(function(){t.ignoreFocusEvents=!0,t.list.splice(i,1,[n]),t.ignoreFocusEvents=!1,t.list.setFocus([i]),t.list.reveal(i),t.expandDocsSettingFromStorage()?t.showDetails():l.removeClass(t.element,"docs-side")}).then(null,function(e){return!a.isPromiseCanceledError(e)&&a.onUnexpectedError(e)}).then(function(){return t.currentSuggestionDetails=null}),this.onDidFocusEmitter.fire(n)}}},e.prototype.setState=function(t){if(this.element){var n=this.state!==t;switch(this.state=t,l.toggleClass(this.element,"frozen",4===t),t){case 0:l.hide(this.messageElement,this.details.element),l.show(this.listElement),this.hide(),n&&this.list.splice(0,this.list.length);break;case 1:this.messageElement.textContent=e.LOADING_MESSAGE,l.hide(this.listElement,this.details.element),l.show(this.messageElement),l.removeClass(this.element,"docs-side"),this.show();break;case 2:this.messageElement.textContent=e.NO_SUGGESTIONS_MESSAGE,l.hide(this.listElement,this.details.element),l.show(this.messageElement),l.removeClass(this.element,"docs-side"),this.show();break;case 3:l.hide(this.messageElement),l.show(this.listElement),this.expandDocsSettingFromStorage()&&M(this.list.getFocusedElements()[0])?(l.show(this.details.element),this.expandSideOrBelow()):l.hide(this.details.element),this.show();break;case 4:l.hide(this.messageElement,this.details.element),l.show(this.listElement),this.show();break;case 5:l.hide(this.messageElement),l.show(this.details.element,this.listElement),this.show(),this._ariaAlert(this.details.getAriaLabel())}n&&this.editor.layoutContentWidget(this)}},e.prototype.showTriggered=function(e){var t=this;0===this.state&&(this.isAuto=!!e,this.isAuto||(this.loadingTimeout=setTimeout(function(){t.loadingTimeout=null,t.setState(1)},50)))},e.prototype.showSuggestions=function(e,t,n){if(this.loadingTimeout&&(clearTimeout(this.loadingTimeout),this.loadingTimeout=null),this.completionModel=e,t&&2!==this.state&&0!==this.state)this.setState(4);else{var i=this.completionModel.items.length,o=0===i;if(this.suggestWidgetMultipleSuggestions.set(i>1),o)n?this.setState(0):this.setState(2),this.completionModel=null;else{var r=this.completionModel.stats;r.wasAutomaticallyTriggered=!!n,this.telemetryService.publicLog("suggestWidget",_({},r,this.editor.getTelemetryData())),this.focusedItem=null,this.focusedItemIndex=null,this.list.splice(0,this.list.length,this.completionModel.items),this.list.setFocus([0]),this.list.reveal(0,0),t?this.setState(4):this.setState(3),this.detailsBorderColor&&(this.details.element.style.borderColor=this.detailsBorderColor)}}},e.prototype.selectNextPage=function(){switch(this.state){case 0:return!1;case 5:return this.details.pageDown(),!0;case 1:return!this.isAuto;default:return this.list.focusNextPage(),!0}},e.prototype.selectNext=function(){switch(this.state){case 0:return!1;case 1:return!this.isAuto;default:return this.list.focusNext(1,!0),!0}},e.prototype.selectLast=function(){switch(this.state){case 0:return!1;case 5:return this.details.scrollBottom(),!0;case 1:return!this.isAuto;default:return this.list.focusLast(),!0}},e.prototype.selectPreviousPage=function(){switch(this.state){case 0:return!1;case 5:return this.details.pageUp(),!0;case 1:return!this.isAuto;default:return this.list.focusPreviousPage(),!0}},e.prototype.selectPrevious=function(){switch(this.state){case 0:return!1;case 1:return!this.isAuto;default:return this.list.focusPrevious(1,!0),!1}},e.prototype.selectFirst=function(){switch(this.state){case 0:return!1;case 5:return this.details.scrollTop(),!0;case 1:return!this.isAuto;default:return this.list.focusFirst(),!0}},e.prototype.getFocusedItem=function(){if(0!==this.state&&2!==this.state&&1!==this.state)return this.list.getFocusedElements()[0]},e.prototype.toggleDetailsFocus=function(){5===this.state?(this.setState(3),this.detailsBorderColor&&(this.details.element.style.borderColor=this.detailsBorderColor)):3===this.state&&this.expandDocsSettingFromStorage()&&(this.setState(5),this.detailsFocusBorderColor&&(this.details.element.style.borderColor=this.detailsFocusBorderColor)),this.telemetryService.publicLog("suggestWidget:toggleDetailsFocus",this.editor.getTelemetryData())},e.prototype.toggleDetails=function(){if(M(this.list.getFocusedElements()[0]))if(this.expandDocsSettingFromStorage())this.updateExpandDocsSetting(!1),l.hide(this.details.element),l.removeClass(this.element,"docs-side"),l.removeClass(this.element,"docs-below"),this.editor.layoutContentWidget(this),this.telemetryService.publicLog("suggestWidget:collapseDetails",this.editor.getTelemetryData());else{if(3!==this.state&&5!==this.state)return;this.updateExpandDocsSetting(!0),this.showDetails(),this.telemetryService.publicLog("suggestWidget:expandDetails",this.editor.getTelemetryData())}},e.prototype.showDetails=function(){this.expandSideOrBelow(),l.show(this.details.element),this.details.render(this.list.getFocusedElements()[0]),this.details.element.style.maxHeight=this.maxWidgetHeight+"px",this.listElement.style.marginTop="0px",this.editor.layoutContentWidget(this),this.adjustDocsPosition(),this.editor.focus(),this._ariaAlert(this.details.getAriaLabel())},e.prototype.show=function(){var e=this;this.updateListHeight(),this.suggestWidgetVisible.set(!0),this.showTimeout=s.TPromise.timeout(100).then(function(){l.addClass(e.element,"visible"),e.onDidShowEmitter.fire(e)})},e.prototype.hide=function(){this.suggestWidgetVisible.reset(),this.suggestWidgetMultipleSuggestions.reset(),l.removeClass(this.element,"visible")},e.prototype.hideWidget=function(){clearTimeout(this.loadingTimeout),this.setState(0),this.onDidHideEmitter.fire(this)},e.prototype.getPosition=function(){return 0===this.state?null:{position:this.editor.getPosition(),preference:[m.ContentWidgetPositionPreference.BELOW,m.ContentWidgetPositionPreference.ABOVE]}},e.prototype.getDomNode=function(){return this.element},e.prototype.getId=function(){return e.ID},e.prototype.updateListHeight=function(){var e=0;if(2===this.state||1===this.state)e=this.unfocusedHeight;else{var t=this.list.contentHeight/this.unfocusedHeight;e=Math.min(t,12)*this.unfocusedHeight}return this.element.style.lineHeight=this.unfocusedHeight+"px",this.listElement.style.height=e+"px",this.list.layout(e),this.editor.layoutContentWidget(this),e},e.prototype.adjustDocsPosition=function(){var e=this.editor.getConfiguration().fontInfo.lineHeight,t=this.editor.getScrolledVisiblePosition(this.editor.getPosition()),n=l.getDomNodePagePosition(this.editor.getDomNode()),i=n.left+t.left,o=n.top+t.top+t.height,r=l.getDomNodePagePosition(this.element),s=r.left,a=r.top;sa&&this.details.element.offsetHeight>this.listElement.offsetHeight&&(this.listElement.style.marginTop=this.details.element.offsetHeight-this.listElement.offsetHeight+"px")},e.prototype.expandSideOrBelow=function(){var e=this.element.style.maxWidth.match(/(\d+)px/);!e||Number(e[1])0&&this._activeAcceptCharacters.add(i[0])}}else this.reset()},e.prototype.reset=function(){this._activeItem=void 0},e.prototype.dispose=function(){r.dispose(this._disposables)},e}(),x=k=function(){function e(e,t,n,i,o){var r=this;this._editor=e,this._commandService=t,this._telemetryService=n,this._toDispose=[],this._model=new S.SuggestModel(this._editor),this._toDispose.push(this._model.onDidTrigger(function(e){return r._widget.showTriggered(e.auto)})),this._toDispose.push(this._model.onDidSuggest(function(e){return r._widget.showSuggestions(e.completionModel,e.isFrozen,e.auto)})),this._toDispose.push(this._model.onDidCancel(function(e){return!e.retrigger&&r._widget.hideWidget()}));var s=w.Context.AcceptSuggestionsOnEnter.bindTo(i),a=function(){var e=r._editor.getConfiguration().contribInfo.acceptSuggestionOnEnter;s.set("on"===e||"smart"===e||!0===e)};this._toDispose.push(this._editor.onDidChangeConfiguration(function(e){return a()})),a(),this._widget=o.createInstance(E.SuggestWidget,this._editor),this._toDispose.push(this._widget.onDidSelect(this._onDidSelectItem,this));var u=new L(e,this._widget,function(e){return r._onDidSelectItem(e)});this._toDispose.push(u,this._model.onDidSuggest(function(e){0===e.completionModel.items.length&&u.reset()}));var l=w.Context.MakesTextEdit.bindTo(i);this._toDispose.push(this._widget.onDidFocus(function(e){var t=r._editor.getPosition(),n=e.position.column-e.suggestion.overwriteBefore,i=t.column,o=!0;"smart"!==r._editor.getConfiguration().contribInfo.acceptSuggestionOnEnter||2!==r._model.state||e.suggestion.command||e.suggestion.additionalTextEdits||"textmate"===e.suggestion.snippetType||i-n!==e.suggestion.insertText.length||(o=r._editor.getModel().getValueInRange({startLineNumber:t.lineNumber,startColumn:n,endLineNumber:t.lineNumber,endColumn:i})!==e.suggestion.insertText),l.set(o)})),this._toDispose.push({dispose:function(){l.reset()}})}return e.get=function(e){return e.getContribution(k.ID)},e.prototype.getId=function(){return k.ID},e.prototype.dispose=function(){this._toDispose=r.dispose(this._toDispose),this._widget&&(this._widget.dispose(),this._widget=null),this._model&&(this._model.dispose(),this._model=null)},e.prototype._onDidSelectItem=function(e){if(e){var t=e.suggestion,n=e.position,o=this._editor.getPosition().column-n.column;Array.isArray(t.additionalTextEdits)&&(this._editor.pushUndoStop(),this._editor.executeEdits("suggestController.additionalTextEdits",t.additionalTextEdits.map(function(e){return g.EditOperation.replace(m.Range.lift(e.range),e.text)})),this._editor.pushUndoStop());var r=t.insertText;"textmate"!==t.snippetType&&(r=b.SnippetParser.escape(r)),C.SnippetController2.get(this._editor).insert(r,t.overwriteBefore+o,t.overwriteAfter),t.command&&(s=this._commandService).executeCommand.apply(s,[t.command.id].concat(t.command.arguments)).done(void 0,i.onUnexpectedError),this._alertCompletionItem(e),this._telemetryService.publicLog("suggestSnippetInsert",_({},this._editor.getTelemetryData(),{suggestionType:t.type}))}this._model.cancel();var s},e.prototype._alertCompletionItem=function(e){var t=e.suggestion,i=n.localize(0,null,t.label,t.insertText);h.alert(i)},e.prototype.triggerSuggest=function(){this._model.trigger(!1,!1),this._editor.revealLine(this._editor.getPosition().lineNumber),this._editor.focus()},e.prototype.acceptSelectedSuggestion=function(){if(this._widget){var e=this._widget.getFocusedItem();this._onDidSelectItem(e)}},e.prototype.cancelSuggestWidget=function(){this._widget&&(this._model.cancel(),this._widget.hideWidget())},e.prototype.selectNextSuggestion=function(){this._widget&&this._widget.selectNext()},e.prototype.selectNextPageSuggestion=function(){this._widget&&this._widget.selectNextPage()},e.prototype.selectLastSuggestion=function(){this._widget&&this._widget.selectLast()},e.prototype.selectPrevSuggestion=function(){this._widget&&this._widget.selectPrevious()},e.prototype.selectPrevPageSuggestion=function(){this._widget&&this._widget.selectPreviousPage()},e.prototype.selectFirstSuggestion=function(){this._widget&&this._widget.selectFirst()},e.prototype.toggleSuggestionDetails=function(){this._widget&&this._widget.toggleDetails()},e.prototype.toggleSuggestionFocus=function(){this._widget&&this._widget.toggleDetailsFocus()},e}();x.ID="editor.contrib.suggestController",x=k=v([p.editorContribution,y(1,l.ICommandService),y(2,a.ITelemetryService),y(3,u.IContextKeyService),y(4,s.IInstantiationService)],x),t.SuggestController=x;var N=function(e){function t(){return e.call(this,{id:"editor.action.triggerSuggest",label:n.localize(1,null),alias:"Trigger Suggest",precondition:u.ContextKeyExpr.and(c.EditorContextKeys.writable,c.EditorContextKeys.hasCompletionItemProvider),kbOpts:{kbExpr:c.EditorContextKeys.textFocus,primary:2058,mac:{primary:266}}})||this}return f(t,e),t.prototype.run=function(e,t){var n=x.get(t);n&&n.triggerSuggest()},t}(d.EditorAction);N=v([d.editorAction],N),t.TriggerSuggestAction=N;var M=d.CommonEditorRegistry.commandWeight(90),T=d.EditorCommand.bindToContribution(x.get);d.CommonEditorRegistry.registerEditorCommand(new T({id:"acceptSelectedSuggestion",precondition:w.Context.Visible,handler:function(e){return e.acceptSelectedSuggestion()},kbOpts:{weight:M,kbExpr:c.EditorContextKeys.textFocus,primary:2}})),d.CommonEditorRegistry.registerEditorCommand(new T({id:"acceptSelectedSuggestionOnEnter",precondition:w.Context.Visible,handler:function(e){return e.acceptSelectedSuggestion()},kbOpts:{weight:M,kbExpr:u.ContextKeyExpr.and(c.EditorContextKeys.textFocus,w.Context.AcceptSuggestionsOnEnter,w.Context.MakesTextEdit),primary:3}})),d.CommonEditorRegistry.registerEditorCommand(new T({id:"hideSuggestWidget",precondition:w.Context.Visible,handler:function(e){return e.cancelSuggestWidget()},kbOpts:{weight:M,kbExpr:c.EditorContextKeys.textFocus,primary:9,secondary:[1033]}})),d.CommonEditorRegistry.registerEditorCommand(new T({id:"selectNextSuggestion",precondition:u.ContextKeyExpr.and(w.Context.Visible,w.Context.MultipleSuggestions),handler:function(e){return e.selectNextSuggestion()},kbOpts:{weight:M,kbExpr:c.EditorContextKeys.textFocus,primary:18,secondary:[2066],mac:{primary:18,secondary:[2066,300]}}})),d.CommonEditorRegistry.registerEditorCommand(new T({id:"selectNextPageSuggestion",precondition:u.ContextKeyExpr.and(w.Context.Visible,w.Context.MultipleSuggestions),handler:function(e){return e.selectNextPageSuggestion()},kbOpts:{weight:M,kbExpr:c.EditorContextKeys.textFocus,primary:12,secondary:[2060]}})),d.CommonEditorRegistry.registerEditorCommand(new T({id:"selectLastSuggestion",precondition:u.ContextKeyExpr.and(w.Context.Visible,w.Context.MultipleSuggestions),handler:function(e){return e.selectLastSuggestion()}})),d.CommonEditorRegistry.registerEditorCommand(new T({id:"selectPrevSuggestion",precondition:u.ContextKeyExpr.and(w.Context.Visible,w.Context.MultipleSuggestions),handler:function(e){return e.selectPrevSuggestion()},kbOpts:{weight:M,kbExpr:c.EditorContextKeys.textFocus,primary:16,secondary:[2064],mac:{primary:16,secondary:[2064,302]}}})),d.CommonEditorRegistry.registerEditorCommand(new T({id:"selectPrevPageSuggestion",precondition:u.ContextKeyExpr.and(w.Context.Visible,w.Context.MultipleSuggestions),handler:function(e){return e.selectPrevPageSuggestion()},kbOpts:{weight:M,kbExpr:c.EditorContextKeys.textFocus,primary:11,secondary:[2059]}})),d.CommonEditorRegistry.registerEditorCommand(new T({id:"selectFirstSuggestion",precondition:u.ContextKeyExpr.and(w.Context.Visible,w.Context.MultipleSuggestions),handler:function(e){return e.selectFirstSuggestion()}})),d.CommonEditorRegistry.registerEditorCommand(new T({id:"toggleSuggestionDetails",precondition:w.Context.Visible,handler:function(e){return e.toggleSuggestionDetails()},kbOpts:{weight:M,kbExpr:c.EditorContextKeys.textFocus,primary:2058,mac:{primary:266}}})),d.CommonEditorRegistry.registerEditorCommand(new T({id:"toggleSuggestionFocus",precondition:w.Context.Visible,handler:function(e){return e.toggleSuggestionFocus()},kbOpts:{weight:M,kbExpr:c.EditorContextKeys.textFocus,primary:2570,mac:{primary:778}}}));var k}),define(d[519],h([0,1,364,18,10,2,21,13,17,3,23,14,54,33]),function(e,t,n,i,o,r,s,a,u,l,c,d,h,p){"use strict";function f(e,t){var n=u.DocumentHighlightProviderRegistry.ordered(e),r=!1;return i.sequence(n.map(function(n){return function(){if(!r)return i.asWinJsPromise(function(i){return n.provideDocumentHighlights(e,t,i)}).then(function(e){if(Array.isArray(e)&&e.length>0)return r=!0,e},function(e){o.onUnexpectedExternalError(e)})}})).then(function(e){return e[0]})}Object.defineProperty(t,"__esModule",{value:!0}),t.editorWordHighlight=c.registerColor("editor.wordHighlightBackground",{dark:"#575757B8",light:"#57575740",hc:null},n.localize(0,null)),t.editorWordHighlightStrong=c.registerColor("editor.wordHighlightStrongBackground",{dark:"#004972B8",light:"#0e639c40",hc:null},n.localize(1,null)),t.getOccurrencesAtPosition=f,a.CommonEditorRegistry.registerDefaultLanguageCommand("_executeDocumentHighlights",f);var g=function(){function e(e){var t=this;this.workerRequestTokenId=0,this.workerRequest=null,this.workerRequestCompleted=!1,this.workerRequestValue=[],this.lastCursorPositionChangeTime=0,this.renderDecorationsTimer=-1,this.editor=e,this.occurrencesHighlight=this.editor.getConfiguration().contribInfo.occurrencesHighlight,this.model=this.editor.getModel(),this.toUnhook=[],this.toUnhook.push(e.onDidChangeCursorPosition(function(e){t.occurrencesHighlight&&t._onPositionChanged(e)})),this.toUnhook.push(e.onDidChangeModel(function(e){t._stopAll(),t.model=t.editor.getModel()})),this.toUnhook.push(e.onDidChangeModelContent(function(e){t._stopAll()})),this.toUnhook.push(e.onDidChangeConfiguration(function(e){var n=t.editor.getConfiguration().contribInfo.occurrencesHighlight;t.occurrencesHighlight!==n&&(t.occurrencesHighlight=n,t._stopAll())})),this._lastWordRange=null,this._decorationIds=[],this.workerRequestTokenId=0,this.workerRequest=null,this.workerRequestCompleted=!1,this.lastCursorPositionChangeTime=0,this.renderDecorationsTimer=-1}return e.prototype._removeDecorations=function(){this._decorationIds.length>0&&(this._decorationIds=this.editor.deltaDecorations(this._decorationIds,[]))},e.prototype._stopAll=function(){this._lastWordRange=null,this._removeDecorations(),-1!==this.renderDecorationsTimer&&(clearTimeout(this.renderDecorationsTimer),this.renderDecorationsTimer=-1),null!==this.workerRequest&&(this.workerRequest.cancel(),this.workerRequest=null),this.workerRequestCompleted||(this.workerRequestTokenId++,this.workerRequestCompleted=!0)},e.prototype._onPositionChanged=function(e){var t=this;if(this.occurrencesHighlight)if(e.reason===h.CursorChangeReason.Explicit)if(u.DocumentHighlightProviderRegistry.has(this.model)){var n=this.editor.getSelection();if(n.startLineNumber===n.endLineNumber){var i=n.startLineNumber,o=n.startColumn,s=n.endColumn,a=this.model.getWordAtPosition({lineNumber:i,column:o});if(!a||a.startColumn>o||a.endColumn=s&&(c=!0)}if(this.lastCursorPositionChangeTime=(new Date).getTime(),c)this.workerRequestCompleted&&-1!==this.renderDecorationsTimer&&(clearTimeout(this.renderDecorationsTimer),this.renderDecorationsTimer=-1,this._beginRenderDecorations());else{this._stopAll();var m=++this.workerRequestTokenId;this.workerRequestCompleted=!1,this.workerRequest=f(this.model,this.editor.getPosition()),this.workerRequest.then(function(e){m===t.workerRequestTokenId&&(t.workerRequestCompleted=!0,t.workerRequestValue=e||[],t._beginRenderDecorations())}).done()}this._lastWordRange=l}}else this._stopAll()}else this._stopAll();else this._stopAll();else this._stopAll()},e.prototype._beginRenderDecorations=function(){var e=this,t=(new Date).getTime(),n=this.lastCursorPositionChangeTime+250;t>=n?(this.renderDecorationsTimer=-1,this.renderDecorations()):this.renderDecorationsTimer=setTimeout(function(){e.renderDecorations()},n-t)},e.prototype.renderDecorations=function(){this.renderDecorationsTimer=-1;for(var t=[],n=0,i=this.workerRequestValue.length;n0?o.format(O,e.length):null:T}Object.defineProperty(t,"__esModule",{value:!0});var N=new d.RawContextKey("accessibilityHelpWidgetVisible",!1),M=F=function(e){function t(t,n){var i=e.call(this)||this;return i._editor=t,i._widget=i._register(n.createInstance(R,i._editor)),i}return f(t,e),t.get=function(e){return e.getContribution(F.ID)},t.prototype.getId=function(){return F.ID},t.prototype.show=function(){this._widget.show()},t.prototype.hide=function(){this._widget.hide()},t}(i.Disposable);M.ID="editor.contrib.accessibilityHelpController",M=F=v([g.editorContribution,y(1,l.IInstantiationService)],M);var T=n.localize("noSelection","No selection"),k=n.localize("singleSelectionRange","Line {0}, Column {1} ({2} selected)"),I=n.localize("singleSelection","Line {0}, Column {1}"),D=n.localize("multiSelectionRange","{0} selections ({1} characters selected)"),O=n.localize("multiSelection","{0} selections"),R=function(e){function t(t,i,o,s){var u=e.call(this)||this;return u._contextKeyService=i,u._keybindingService=o,u._openerService=s,u._editor=t,u._isVisibleKey=N.bindTo(u._contextKeyService),u._domNode=a.createFastDomNode(document.createElement("div")),u._domNode.setClassName("accessibilityHelpWidget"),u._domNode.setDisplay("none"),u._domNode.setAttribute("role","dialog"),u._domNode.setAttribute("aria-hidden","true"),u._contentDomNode=a.createFastDomNode(document.createElement("div")),u._contentDomNode.setAttribute("role","document"),u._domNode.appendChild(u._contentDomNode),u._isVisible=!1,u._register(u._editor.onDidLayoutChange(function(){u._isVisible&&u._layout()})),u._register(r.addStandardDisposableListener(u._contentDomNode.domNode,"keydown",function(e){if(u._isVisible&&(e.equals(2083)&&(w.alert(n.localize("emergencyConfOn","Now changing the setting `accessibilitySupport` to 'on'.")),u._editor.updateOptions({accessibilitySupport:"on"}),r.clearNode(u._contentDomNode.domNode),u._buildContent(),u._contentDomNode.domNode.focus(),e.preventDefault(),e.stopPropagation()),e.equals(2086))){w.alert(n.localize("openingDocs","Now opening the Editor Accessibility documentation page."));var t=u._editor.getRawConfiguration().accessibilityHelpUrl;void 0===t&&(t="https://go.microsoft.com/fwlink/?linkid=852450"),u._openerService.open(E.default.parse(t)),e.preventDefault(),e.stopPropagation()}})),u.onblur(u._contentDomNode.domNode,function(){u.hide()}),u._editor.addOverlayWidget(u),u}return f(t,e),t.prototype.dispose=function(){this._editor.removeOverlayWidget(this),e.prototype.dispose.call(this)},t.prototype.getId=function(){return t.ID},t.prototype.getDomNode=function(){return this._domNode.domNode},t.prototype.getPosition=function(){return{preference:null}},t.prototype.show=function(){this._isVisible||(this._isVisible=!0,this._isVisibleKey.set(!0),this._layout(),this._domNode.setDisplay("block"),this._domNode.setAttribute("aria-hidden","false"),this._contentDomNode.domNode.tabIndex=0,this._buildContent(),this._contentDomNode.domNode.focus())},t.prototype._descriptionForCommand=function(e,t,n){var i=this._keybindingService.lookupKeybinding(e);return i?o.format(t,i.getAriaLabel()):o.format(n,e)},t.prototype._buildContent=function(){var e=this._editor.getConfiguration(),t=this._editor.getSelections(),i=0;if(t){var o=this._editor.getModel();o&&t.forEach(function(e){i+=o.getValueLengthInRange(e)})}var r=x(t,i);switch(e.wrappingInfo.inDiffEditor?e.readOnly?r+=n.localize("readonlyDiffEditor"," in a read-only pane of a diff editor."):r+=n.localize("editableDiffEditor"," in a pane of a diff editor."):e.readOnly?r+=n.localize("readonlyEditor"," in a read-only code editor"):r+=n.localize("editableEditor"," in a code editor"),e.accessibilitySupport){case 0:var a=C.isMacintosh?n.localize("changeConfigToOnMac","To configure the editor to be optimized for usage with a Screen Reader press Command+E now."):n.localize("changeConfigToOnWinLinux","To configure the editor to be optimized for usage with a Screen Reader press Control+E now.");r+="\n\n - "+a;break;case 2:r+="\n\n - "+n.localize("auto_on","The editor is configured to be optimized for usage with a Screen Reader.");break;case 1:r+="\n\n - "+n.localize("auto_off","The editor is configured to never be optimized for usage with a Screen Reader, which is not the case at this time."),r+=" "+a}var u=n.localize("tabFocusModeOnMsg","Pressing Tab in the current editor will move focus to the next focusable element. Toggle this behavior by pressing {0}."),l=n.localize("tabFocusModeOnMsgNoKb","Pressing Tab in the current editor will move focus to the next focusable element. The command {0} is currently not triggerable by a keybinding."),c=n.localize("tabFocusModeOffMsg","Pressing Tab in the current editor will insert the tab character. Toggle this behavior by pressing {0}."),d=n.localize("tabFocusModeOffMsgNoKb","Pressing Tab in the current editor will insert the tab character. The command {0} is currently not triggerable by a keybinding.");e.tabFocusMode?r+="\n\n - "+this._descriptionForCommand(m.ToggleTabFocusModeAction.ID,u,l):r+="\n\n - "+this._descriptionForCommand(m.ToggleTabFocusModeAction.ID,c,d),r+="\n\n - "+(C.isMacintosh?n.localize("openDocMac","Press Command+H now to open a browser window with more information related to editor accessibility."):n.localize("openDocWinLinux","Press Control+H now to open a browser window with more information related to editor accessibility.")),r+="\n\n"+n.localize("outroMsg","You can dismiss this tooltip and return to the editor by pressing Escape or Shift+Escape."),this._contentDomNode.domNode.appendChild(s.renderFormattedText(r))},t.prototype.hide=function(){this._isVisible&&(this._isVisible=!1,this._isVisibleKey.reset(),this._domNode.setDisplay("none"),this._domNode.setAttribute("aria-hidden","true"),this._contentDomNode.domNode.tabIndex=-1,r.clearNode(this._contentDomNode.domNode),this._editor.focus())},t.prototype._layout=function(){var e=this._editor.getLayoutInfo(),n=Math.max(5,Math.min(t.WIDTH,e.width-40)),i=Math.max(5,Math.min(t.HEIGHT,e.height-40));this._domNode.setWidth(n),this._domNode.setHeight(i);var o=Math.round((e.height-i)/2);this._domNode.setTop(o);var r=Math.round((e.width-n)/2);this._domNode.setLeft(r)},t}(u.Widget);R.ID="editor.contrib.accessibilityHelpWidget",R.WIDTH=500,R.HEIGHT=300,R=v([y(1,d.IContextKeyService),y(2,c.IKeybindingService),y(3,S.IOpenerService)],R);var P=function(e){function t(){return e.call(this,{id:"editor.action.showAccessibilityHelp",label:n.localize("ShowAccessibilityHelpAction","Show Accessibility Help"),alias:"Show Accessibility Help",precondition:null,kbOpts:{kbExpr:h.EditorContextKeys.focus,primary:L.isIE?2107:571}})||this}return f(t,e),t.prototype.run=function(e,t){var n=M.get(t);n&&n.show()},t}(p.EditorAction);P=v([p.editorAction],P);var A=p.EditorCommand.bindToContribution(M.get);p.CommonEditorRegistry.registerEditorCommand(new A({id:"closeAccessibilityHelp",precondition:N,handler:function(e){return e.hide()},kbOpts:{weight:p.CommonEditorRegistry.commandWeight(100),kbExpr:h.EditorContextKeys.focus,primary:9,secondary:[1033]}})),_.registerThemingParticipant(function(e,t){var n=e.getColor(b.editorWidgetBackground);n&&t.addRule(".monaco-editor .accessibilityHelpWidget { background-color: "+n+"; }");var i=e.getColor(b.widgetShadow);i&&t.addRule(".monaco-editor .accessibilityHelpWidget { box-shadow: 0 2px 8px "+i+"; }");var o=e.getColor(b.contrastBorder);o&&t.addRule(".monaco-editor .accessibilityHelpWidget { border: 2px solid "+o+"; }")});var F}),define(d[522],h([0,1,366,3,9,13,25,32,89,131,17,83,70,14,23,250]),function(e,t,n,i,o,r,s,a,u,l,c,d,h,p,g){"use strict";function m(e){for(var t="",n=0,i=e.length;n=0;i--){var r=t.tokens1[i];if(e.column-1>=r.offset){n=i;break}}for(var s=0,i=t.tokens2.length>>>1;i>=0;i--)if(e.column-1>=t.tokens2[i<<1]){s=i;break}var a="",u=this._model.getLineContent(e.lineNumber),l="";if(n'+m(l)+'('+l.length+" "+(1===l.length?"char":"chars")+")
    ").addClass("k-animation-container").css({width:o,height:i})),r&&t.css({width:"100%",height:"100%",boxSizing:"border-box",mozBoxSizing:"border-box",webkitBoxSizing:"border-box"})),c.msie&&Te.floor(c.version)<=7&&(t.css({zoom:1}),t.children(".k-menu").width(t.width())),t.parent()}function u(e){var t=1,n=arguments.length;for(t=1;t-1)return!0;var t=p(e,["overflow"]).overflow;return"auto"==t||"scroll"==t}function h(t,r){var o,i=ke.browser.webkit,a=ke.browser.mozilla,s=t instanceof e?t[0]:t;if(t)return o=ke.isRtl(t),r===n?o&&i?s.scrollWidth-s.clientWidth-s.scrollLeft:Math.abs(s.scrollLeft):(s.scrollLeft=o&&i?s.scrollWidth-s.clientWidth-r:o&&a?-r:r,n)}function g(e){var t,n=0;for(t in e)e.hasOwnProperty(t)&&"toJSON"!=t&&n++;return n}function y(e,n,r){var o,i,a;return n||(n="offset"),o=e[n](),i={top:o.top,right:o.right,bottom:o.bottom,left:o.left},ke.browser.msie&&(ke.pointers||ke.msPointers)&&!r&&(a=ke.isRtl(e)?1:-1,i.top-=t.pageYOffset-document.documentElement.scrollTop,i.left-=t.pageXOffset+a*document.documentElement.scrollLeft),i}function v(e){var t={};return be("string"==typeof e?e.split(" "):e,function(e){t[e]=this}),t}function b(e){return new ye.effects.Element(e)}function w(e,t,n,r){return typeof e===He&&(_(t)&&(r=t,t=400,n=!1),_(n)&&(r=n,n=!1),typeof t===Pe&&(n=t,t=400),e={effects:e,duration:t,reverse:n,complete:r}),ve({effects:{},duration:400,reverse:!1,init:Se,teardown:Se,hide:!1},e,{completeCallback:e.complete,complete:Se})}function M(t,n,r,o,i){for(var a,s=0,u=t.length;s-1||t.is(":visible")}function z(e,t){var n=e.nodeName.toLowerCase();return(/input|select|textarea|button|object/.test(n)?!e.disabled:"a"===n?e.href||t:t)&&C(e)}function C(t){return e.expr.filters.visible(t)&&!e(t).parents().addBack().filter(function(){return"hidden"===e.css(this,"visibility")}).length}function E(e,t){return new E.fn.init(e,t)}var H,_,A,N,P,F,R,U,I,W,$,L,j,B,Y,q,J,V,G,K,Q,Z,X,ee,te,ne,re,oe,ie,ae,se,ue,le,ce,de,fe,pe,me,he,ge,ye=t.kendo=t.kendo||{cultures:{}},ve=e.extend,be=e.each,we=e.isArray,Me=e.proxy,Se=e.noop,Te=Math,xe=t.JSON||{},ke={},Oe=/%/,De=/\{(\d+)(:[^\}]+)?\}/g,ze=/(\d+(?:\.?)\d*)px\s*(\d+(?:\.?)\d*)px\s*(\d+(?:\.?)\d*)px\s*(\d+)?/i,Ce=/^(\+|-?)\d+(\.?)\d*$/,Ee="function",He="string",_e="number",Ae="object",Ne="null",Pe="boolean",Fe="undefined",Re={},Ue={},Ie=[].slice;ye.version="2017.3.1018".replace(/^\s+|\s+$/g,""),r.extend=function(e){var t,n,r=function(){},o=this,i=e&&e.init?e.init:function(){o.apply(this,arguments)};r.prototype=o.prototype,n=i.fn=i.prototype=new r;for(t in e)n[t]=null!=e[t]&&e[t].constructor===Object?ve(!0,{},r.prototype[t],e[t]):e[t];return n.constructor=i,i.extend=o.extend,i},r.prototype._initOptions=function(e){this.options=u({},this.options,e)},_=ye.isFunction=function(e){return"function"==typeof e},A=function(){this._defaultPrevented=!0},N=function(){return this._defaultPrevented===!0},P=r.extend({init:function(){this._events={}},bind:function(e,t,r){var o,i,a,s,u,l=this,c=typeof e===He?[e]:e,d=typeof t===Ee;if(t===n){for(o in e)l.bind(o,e[o]);return l}for(o=0,i=c.length;o=0;r--)i[r]!==t&&i[r].original!==t||i.splice(r,1);else o._events[e]=[];return o}}),F=/^\w+/,R=/\$\{([^}]*)\}/g,U=/\\\}/g,I=/__CURLY__/g,W=/\\#/g,$=/__SHARP__/g,L=["","0","00","000","0000"],H={paramName:"data",useWithBlock:!0,render:function(e,t){var n,r,o="";for(n=0,r=t.length;n99&&(o=Te.floor(o/10)),o=i(o)):"fff"===t?o=i(e.getMilliseconds(),3):"tt"===t?o=e.getHours()<12?a.AM[0]:a.PM[0]:"zzz"===t?(r=e.getTimezoneOffset(),l=r<0,o=(""+Te.abs(r/60)).split(".")[0],r=Te.abs(r)-60*o,o=(l?"+":"-")+i(o),o+=":"+i(r)):"zz"!==t&&"z"!==t||(o=e.getTimezoneOffset()/60,l=o<0,o=(""+Te.abs(o)).split(".")[0],o=(l?"+":"-")+("zz"===t?i(o):o)),o!==n?o:t.slice(1,t.length-1)})}function a(e,t,o){o=r(o);var i,a,l,c,w,M,S,T,x,k,O,D,z,C,E,H,_,A,N,P,F,R,U,I=o.numberFormat,W=I[h],$=I.decimals,L=I.pattern[0],j=[],B=e<0,Y=m,q=m,J=-1;if(e===n)return m;if(!isFinite(e))return e;if(!t)return o.name.length?e.toLocaleString():""+e;if(w=d.exec(t)){if(t=w[1].toLowerCase(),a="c"===t,l="p"===t,(a||l)&&(I=a?I.currency:I.percent,W=I[h],$=I.decimals,i=I.symbol,L=I.pattern[B?0:1]),c=w[2],c&&($=+c),"e"===t)return c?e.toExponential($):e.toExponential();if(l&&(e*=100),e=u(e,$),B=e<0,e=e.split(h),M=e[0],S=e[1],B&&(M=M.substring(1)),q=s(M,0,M.length,I),S&&(q+=W+S),"n"===t&&!B)return q;for(e=m,k=0,O=L.length;k-1||t.indexOf('"')>-1||t.indexOf("\\")>-1)&&(t=t.replace(f,function(e){var t=e.charAt(0).replace("\\",""),n=e.slice(1).replace(t,"");return j.push(n),b})),t=t.split(";"),B&&t[1])t=t[1],C=!0;else if(0===e){if(t=t[2]||t[0],t.indexOf(y)==-1&&t.indexOf(v)==-1)return t}else t=t[0];if(P=t.indexOf("%"),F=t.indexOf("$"),l=P!=-1,a=F!=-1,l&&(e*=100),a&&"\\"===t[F-1]&&(t=t.split("\\").join(""),a=!1),(a||l)&&(I=a?I.currency:I.percent,W=I[h],$=I.decimals,i=I.symbol),z=t.indexOf(g)>-1,z&&(t=t.replace(p,m)),E=t.indexOf(h),O=t.length,E!=-1?(S=(""+e).split("e"),S=S[1]?u(e,Math.abs(S[1])):S[0],S=S.split(h)[1]||m,_=t.lastIndexOf(v)-E,H=t.lastIndexOf(y)-E,A=_>-1,N=H>-1,k=S.length,A||N||(t=t.substring(0,E)+t.substring(E+1),O=t.length,E=-1,k=0),A&&_>H?k=_:H>_&&(N&&k>H?k=H:A&&k<_&&(k=_)),k>-1&&(e=u(e,k))):e=u(e),H=t.indexOf(y),R=_=t.indexOf(v),J=H==-1&&_!=-1?_:H!=-1&&_==-1?H:H>_?_:H,H=t.lastIndexOf(y),_=t.lastIndexOf(v),U=H==-1&&_!=-1?_:H!=-1&&_==-1?H:H>_?H:_,J==O&&(U=J),J!=-1){for(q=(""+e).split(h),M=q[0],S=q[1]||m,T=M.length,x=S.length,B&&e*-1>=0&&(B=!1),e=t.substring(0,J),B&&!C&&(e+="-"),k=J;k-1&&(e+=M,k=E),E===k){e+=(S?W:m)+S,k+=U-E+1;continue}D===v?(e+=D,Y=D):D===y&&(e+=Y)}if(z&&(e=s(e,J+(B&&!C?1:0),Math.max(U,T+J),I)),U>=J&&(e+=t.substring(U+1)),a||l){for(q=m,k=0,O=e.length;k=p){for(s=a,u=[];s>-1;)if(l=i.substring(s-p,s),l&&u.push(l),s-=p,c=f.shift(),p=c!==n?c:p,0===p){s>0&&u.push(i.substring(0,s));break}i=u.reverse().join(o[g]),e=e.substring(0,t)+i+e.substring(r)}return e},u=function(e,t){return t=t||0,e=(""+e).split("e"),e=Math.round(+(e[0]+"e"+(e[1]?+e[1]+t:t))),e=(""+e).split("e"),e=+(e[0]+"e"+(e[1]?+e[1]-t:-t)),e.toFixed(Math.min(t,20))},l=function(e,t,r){if(t){if("[object Date]"===M.call(e))return o(e,t,r);if(typeof e===_e)return a(e,t,r)}return e!==n?e:""},ye.format=function(e){var t=arguments;return e.replace(De,function(e,n,r){var o=t[parseInt(n,10)+1];return l(o,r?r.substring(1):"")})},ye._extractFormat=function(e){return"{0:"===e.slice(0,3)&&(e=e.slice(3,e.length-1)),e},ye._activeElement=function(){try{return document.activeElement}catch(e){return document.documentElement.activeElement}},ye._round=u,ye._outerWidth=function(t,n){return e(t).outerWidth(n||!1)||0},ye._outerHeight=function(t,n){return e(t).outerHeight(n||!1)||0},ye.toString=l}(),function(){function t(e,t,n){return!(e>=t&&e<=n)}function r(e){return e.charAt(0)}function o(t){return e.map(t,r)}function i(e,t){t||23!==e.getHours()||e.setHours(e.getHours()+2)}function a(e){for(var t=0,n=e.length,r=[];t0&&(R-=1),t},O=function(t){var n=w[t]||RegExp("^\\d{1,"+t+"}"),r=e.substr(U,t).match(n);return r?(r=r[0],U+=r.length,parseInt(r,10)):null},D=function(t,n){for(var r,o,i,a=0,s=t.length,u=0,l=0;au&&(u=o,l=a);return u?(U+=u,l+1):null},z=function(){var t=!1;return e.charAt(U)===r[R]&&(U++,t=!0),t},C=a.calendars.standard,E=null,H=null,_=null,A=null,N=null,P=null,F=null,R=0,U=0,I=!1,W=new Date,$=C.twoDigitYearMax||2029,L=W.getFullYear();for(r||(r="d"),f=C.patterns[r],f&&(r=f),r=r.split(""),d=r.length;R2)continue;if(_=c<3?O(2):D(C._lowerDays[3==c?"namesAbbr":"names"],!0),null===_||t(_,1,31))return null}else if("M"===l){if(c=k("M"),C._lowerMonths||(C._lowerMonths=s(C.months)),H=c<3?O(2):D(C._lowerMonths[3==c?"namesAbbr":"names"],!0),null===H||t(H,1,12))return null;H-=1}else if("y"===l){if(c=k("y"),E=O(c),null===E)return null;2==c&&("string"==typeof $&&($=L+parseInt($,10)),E=L-L%100+E,E>$&&(E-=100))}else if("h"===l){if(k("h"),A=O(2),12==A&&(A=0),null===A||t(A,0,11))return null}else if("H"===l){if(k("H"),A=O(2),null===A||t(A,0,23))return null}else if("m"===l){if(k("m"),N=O(2),null===N||t(N,0,59))return null}else if("s"===l){if(k("s"),P=O(2),null===P||t(P,0,59))return null}else if("f"===l){if(c=k("f"),x=e.substr(U,c).match(w[3]),F=O(c),null!==F&&(F=parseFloat("0."+x[0],10),F=ye._round(F,3),F*=1e3),null===F||t(F,0,999))return null}else if("t"===l){if(c=k("t"),v=C.AM,b=C.PM,1===c&&(v=o(v),b=o(b)),p=D(b),!p&&!D(v))return null}else if("z"===l){if(g=!0,c=k("z"),"Z"===e.substr(U,1)){z();continue}if(y=e.substr(U,6).match(c>2?h:m),!y)return null;if(y=y[0].split(":"),M=y[0],S=y[1],!S&&M.length>3&&(U=M.length-2,S=M.substring(U),M=M.substring(0,U)),M=parseInt(M,10),t(M,-12,13))return null;if(c>2&&(S=parseInt(S,10),isNaN(S)||t(S,0,59)))return null}else if("'"===l)I=!0,z();else if(!z())return null;return u&&!/^\s*$/.test(e.substr(U))?null:(T=null!==A||null!==N||P||null,null===E&&null===H&&null===_&&T?(E=L,H=W.getMonth(),_=W.getDate()):(null===E&&(E=L),null===_&&(_=1)),p&&A<12&&(A+=12),g?(M&&(A+=-M),S&&(N+=-S),e=new Date(Date.UTC(E,H,_,A,N,P,F))):(e=new Date(E,H,_,A,N,P,F),i(e,A)),E<100&&e.setFullYear(E),e.getDate()!==_&&g===n?null:e)}function l(e){var t="-"===e.substr(0,1)?-1:1;return e=e.substring(1),e=60*parseInt(e.substr(0,2),10)+parseInt(e.substring(2),10),t*e}function c(e){var t,n,r,o=Te.max(v.length,b.length),i=e.calendar.patterns,a=[];for(r=0;r0?null:(c=c>-1,e.indexOf(u)>-1||n&&n.toLowerCase().indexOf("c")>-1?(i=s,r=i.pattern[0].replace("$",u).split("n"),e.indexOf(r[0])>-1&&e.indexOf(r[1])>-1&&(e=e.replace(r[0],"").replace(r[1],""),c=!0)):e.indexOf(l)>-1&&(o=!0,i=a,u=l),e=e.replace("-","").replace(u,"").replace(f," ").split(i[","].replace(f," ")).join("").replace(i["."],"."),e=parseFloat(e),isNaN(e)?e=null:c&&(e*=-1),e&&o&&(e/=100),e)}}(),function(){var r,o,i,a,s,u,l,d,f;ke._scrollbar=n,ke.scrollbar=function(e){if(isNaN(ke._scrollbar)||e){var t,n=document.createElement("div");return n.style.cssText="overflow:scroll;overflow-x:hidden;zoom:1;clear:both;display:block",n.innerHTML=" ",document.body.appendChild(n),ke._scrollbar=t=n.offsetWidth-n.scrollWidth,document.body.removeChild(n),t}return ke._scrollbar},ke.isRtl=function(t){return e(t).closest(".k-rtl").length>0},r=document.createElement("table");try{r.innerHTML="",ke.tbodyInnerHtml=!0}catch(p){ke.tbodyInnerHtml=!1}ke.touch="ontouchstart"in t,o=document.documentElement.style,i=ke.transitions=!1,a=ke.transforms=!1,s="HTMLElement"in t?HTMLElement.prototype:[],ke.hasHW3D="WebKitCSSMatrix"in t&&"m11"in new t.WebKitCSSMatrix||"MozPerspective"in o||"msPerspective"in o,ke.cssFlexbox="flexWrap"in o||"WebkitFlexWrap"in o||"msFlexWrap"in o,be(["Moz","webkit","O","ms"],function(){var e,t=""+this,n=typeof r.style[t+"Transition"]===He;if(n||typeof r.style[t+"Transform"]===He)return e=t.toLowerCase(),a={css:"ms"!=e?"-"+e+"-":"",prefix:t,event:"o"===e||"webkit"===e?e:""},n&&(i=a,i.event=i.event?i.event+"TransitionEnd":"transitionend"),!1}),r=null,ke.transforms=a,ke.transitions=i,ke.devicePixelRatio=t.devicePixelRatio===n?1:t.devicePixelRatio;try{ke.screenWidth=t.outerWidth||t.screen?t.screen.availWidth:t.innerWidth,ke.screenHeight=t.outerHeight||t.screen?t.screen.availHeight:t.innerHeight}catch(p){ke.screenWidth=t.screen.availWidth,ke.screenHeight=t.screen.availHeight}ke.detectOS=function(e){var n,r,o=!1,i=[],a=!/mobile safari/i.test(e),s={wp:/(Windows Phone(?: OS)?)\s(\d+)\.(\d+(\.\d+)?)/,fire:/(Silk)\/(\d+)\.(\d+(\.\d+)?)/,android:/(Android|Android.*(?:Opera|Firefox).*?\/)\s*(\d+)\.(\d+(\.\d+)?)/,iphone:/(iPhone|iPod).*OS\s+(\d+)[\._]([\d\._]+)/,ipad:/(iPad).*OS\s+(\d+)[\._]([\d_]+)/,meego:/(MeeGo).+NokiaBrowser\/(\d+)\.([\d\._]+)/,webos:/(webOS)\/(\d+)\.(\d+(\.\d+)?)/,blackberry:/(BlackBerry|BB10).*?Version\/(\d+)\.(\d+(\.\d+)?)/,playbook:/(PlayBook).*?Tablet\s*OS\s*(\d+)\.(\d+(\.\d+)?)/,windows:/(MSIE)\s+(\d+)\.(\d+(\.\d+)?)/,tizen:/(tizen).*?Version\/(\d+)\.(\d+(\.\d+)?)/i,sailfish:/(sailfish).*rv:(\d+)\.(\d+(\.\d+)?).*firefox/i,ffos:/(Mobile).*rv:(\d+)\.(\d+(\.\d+)?).*Firefox/},u={ios:/^i(phone|pad|pod)$/i,android:/^android|fire$/i,blackberry:/^blackberry|playbook/i,windows:/windows/,wp:/wp/,flat:/sailfish|ffos|tizen/i,meego:/meego/},l={tablet:/playbook|ipad|fire/i},d={omini:/Opera\sMini/i,omobile:/Opera\sMobi/i,firefox:/Firefox|Fennec/i,mobilesafari:/version\/.*safari/i,ie:/MSIE|Windows\sPhone/i,chrome:/chrome|crios/i,webkit:/webkit/i};for(r in s)if(s.hasOwnProperty(r)&&(i=e.match(s[r]))){if("windows"==r&&"plugins"in navigator)return!1;o={},o.device=r,o.tablet=c(r,l,!1),o.browser=c(e,d,"default"),o.name=c(r,u),o[o.name]=!0,o.majorVersion=i[2],o.minorVersion=i[3].replace("_","."),n=o.minorVersion.replace(".","").substr(0,2),o.flatVersion=o.majorVersion+n+Array(3-(n.length<3?n.length:2)).join("0"),o.cordova=typeof t.PhoneGap!==Fe||typeof t.cordova!==Fe,o.appMode=t.navigator.standalone||/file|local|wmapp/.test(t.location.protocol)||o.cordova,o.android&&(ke.devicePixelRatio<1.5&&o.flatVersion<400||a)&&(ke.screenWidth>800||ke.screenHeight>800)&&(o.tablet=r);break}return o},u=ke.mobileOS=ke.detectOS(navigator.userAgent),ke.wpDevicePixelRatio=u.wp?screen.width/320:0,ke.hasNativeScrolling=!1,(u.ios||u.android&&u.majorVersion>2||u.wp)&&(ke.hasNativeScrolling=u),ke.delayedClick=function(){if(ke.touch){if(u.ios)return!0;if(u.android)return!ke.browser.chrome||!(ke.browser.version<32)&&!(e("meta[name=viewport]").attr("content")||"").match(/user-scalable=no/i)}return!1},ke.mouseAndTouchPresent=ke.touch&&!(ke.mobileOS.ios||ke.mobileOS.android),ke.detectBrowser=function(e){var t,n=!1,r=[],o={edge:/(edge)[ \/]([\w.]+)/i,webkit:/(chrome)[ \/]([\w.]+)/i,safari:/(webkit)[ \/]([\w.]+)/i,opera:/(opera)(?:.*version|)[ \/]([\w.]+)/i,msie:/(msie\s|trident.*? rv:)([\w.]+)/i,mozilla:/(mozilla)(?:.*? rv:([\w.]+)|)/i};for(t in o)if(o.hasOwnProperty(t)&&(r=e.match(o[t]))){n={},n[t]=!0,n[r[1].toLowerCase().split(" ")[0].split("/")[0]]=!0,n.version=parseInt(document.documentMode||r[2],10);break}return n},ke.browser=ke.detectBrowser(navigator.userAgent),ke.detectClipboardAccess=function(){var e={copy:!!document.queryCommandSupported&&document.queryCommandSupported("copy"),cut:!!document.queryCommandSupported&&document.queryCommandSupported("cut"),paste:!!document.queryCommandSupported&&document.queryCommandSupported("paste")};return ke.browser.chrome&&(e.paste=!1,ke.browser.version>=43&&(e.copy=!0,e.cut=!0)),e},ke.clipboard=ke.detectClipboardAccess(),ke.zoomLevel=function(){var e,n,r;try{return e=ke.browser,n=0,r=document.documentElement,e.msie&&11==e.version&&r.scrollHeight>r.clientHeight&&!ke.touch&&(n=ke.scrollbar()),ke.touch?r.clientWidth/t.innerWidth:e.msie&&e.version>=10?((top||t).document.documentElement.offsetWidth+n)/(top||t).innerWidth:1}catch(o){return 1}},ke.cssBorderSpacing=n!==o.borderSpacing&&!(ke.browser.msie&&ke.browser.version<8),function(t){var n="",r=e(document.documentElement),o=parseInt(t.version,10);t.msie?n="ie":t.mozilla?n="ff":t.safari?n="safari":t.webkit?n="webkit":t.opera?n="opera":t.edge&&(n="edge"),n&&(n="k-"+n+" k-"+n+o),ke.mobileOS&&(n+=" k-mobile"),ke.cssFlexbox||(n+=" k-no-flexbox"),r.addClass(n)}(ke.browser),ke.eventCapture=document.documentElement.addEventListener,l=document.createElement("input"),ke.placeholder="placeholder"in l,ke.propertyChangeEvent="onpropertychange"in l,ke.input=function(){for(var e,t=["number","date","time","month","week","datetime","datetime-local"],n=t.length,r="test",o={},i=0;it.field?1:e.field/g,K=function(e){return e.target},ke.touch&&(K=function(e){var t="originalEvent"in e?e.originalEvent.changedTouches:"changedTouches"in e?e.changedTouches:null;return t?document.elementFromPoint(t[0].clientX,t[0].clientY):e.target},be(["swipe","swipeLeft","swipeRight","swipeUp","swipeDown","doubleTap","tap"],function(t,n){e.fn[n]=function(e){return this.bind(n,e)}})),ke.touch?ke.mobileOS?(ke.mousedown="touchstart",ke.mouseup="touchend",ke.mousemove="touchmove",ke.mousecancel="touchcancel",ke.click="touchend",ke.resize="orientationchange"):(ke.mousedown="mousedown touchstart",ke.mouseup="mouseup touchend",ke.mousemove="mousemove touchmove",ke.mousecancel="mouseleave touchcancel",ke.click="click",ke.resize="resize"):ke.pointers?(ke.mousemove="pointermove",ke.mousedown="pointerdown",ke.mouseup="pointerup",ke.mousecancel="pointercancel",ke.click="pointerup",ke.resize="orientationchange resize"):ke.msPointers?(ke.mousemove="MSPointerMove",ke.mousedown="MSPointerDown",ke.mouseup="MSPointerUp",ke.mousecancel="MSPointerCancel",ke.click="MSPointerUp",ke.resize="orientationchange resize"):(ke.mousemove="mousemove",ke.mousedown="mousedown",ke.mouseup="mouseup",ke.mousecancel="mouseleave",ke.click="click",ke.resize="resize"),Q=function(e,t){var n,r,o,i,a=t||"d",s=1;for(r=0,o=e.length;r0||t.height>0)&&(!n||t.width!==n.width||t.height!==n.height))&&(this._size=t,this._resize(t,e),this.trigger("resize",t))},getSize:function(){return ye.dimensions(this.element)},size:function(e){return e?(this.setSize(e),n):this.getSize()},setSize:e.noop,_resize:e.noop,destroy:function(){var e=this;e.element.removeData("kendo"+e.options.prefix+e.options.name),e.element.removeData("handler"),e.unbind()},_destroy:function(){this.destroy()},angular:function(){},_muteAngularRebind:function(e){this._muteRebind=!0,e.call(this),this._muteRebind=!1}}),ee=X.extend({dataItems:function(){return this.dataSource.flatView()},_angularItems:function(t){var n=this;n.angular(t,function(){return{elements:n.items(),data:e.map(n.dataItems(),function(e){return{dataItem:e}})}})}}),ye.dimensions=function(e,t){var n=e[0];return t&&e.css(t),{width:n.offsetWidth,height:n.offsetHeight}},ye.notify=Se,te=/template$/i,ne=/^\s*(?:\{(?:.|\r\n|\n)*\}|\[(?:.|\r\n|\n)*\])\s*$/,re=/^\{(\d+)(:[^\}]+)?\}|^\[[A-Za-z_]+\]$/,oe=/([A-Z])/g,ye.initWidget=function(r,o,i){var a,s,u,l,c,d,f,p,m,h,g,y,v;if(i?i.roles&&(i=i.roles):i=ye.ui.roles,r=r.nodeType?r:r[0],d=r.getAttribute("data-"+ye.ns+"role")){m=d.indexOf(".")===-1,u=m?i[d]:ye.getter(d)(t),g=e(r).data(),y=u?"kendo"+u.fn.options.prefix+u.fn.options.name:"",h=m?RegExp("^kendo.*"+d+"$","i"):RegExp("^"+y+"$","i");for(v in g)if(v.match(h)){if(v!==y)return g[v];a=g[v]}if(u){for(p=x(r,"dataSource"),o=e.extend({},k(r,u.fn.options),o),p&&(o.dataSource=typeof p===He?ye.getter(p)(t):p),l=0,c=u.fn.events.length;l{1}
    ",u,ye.ui.progress.messages.loading)).width(r.width).height(r.height).css("top",r.top).css(i,Math.abs(s)+a).prependTo(t)):l&&l.remove()},plugin:function(t,r,o){var i,a,s,u,l=t.fn.options.name;for(r=r||ye.ui,o=o||"",r[l]=t,r.roles[l.toLowerCase()]=t,i="getKendo"+o+l,l="kendo"+o+l,a={name:l,widget:t,prefix:o||""},ye.widgets.push(a),s=0,u=ye._widgetRegisteredCallbacks.length;s=0&&(u=[ye.getter(s)(t)]),r=0,o=u.length;r-1)}}),se=["mousedown","mousemove","mouseenter","mouseleave","mouseover","mouseout","mouseup","click"],ue="label, input, [data-rel=external]",le={setupMouseMute:function(){var t,n=0,r=se.length,o=document.documentElement;if(!le.mouseTrap&&ke.eventCapture)for(le.mouseTrap=!0,le.bustClick=!1,le.captureMouse=!1,t=function(t){le.captureMouse&&("click"===t.type?le.bustClick&&!e(t.target).is(ue)&&(t.preventDefault(),t.stopPropagation()):t.stopPropagation())};n-1&&this[0]!==document.documentElement&&(le.setupMouseMute(),o=2===t.length?null:t[1],i=r.indexOf("click")>-1&&r.indexOf("touchend")>-1,pe.call(this,{touchstart:le.muteMouse,touchend:le.unMuteMouse},o,{bustClick:i})),typeof n===He&&(e=a.data("handler"),n=e[n],t[t.length-1]=function(t){n.call(e,t)}),t[0]=r,pe.apply(a,t),a)},kendoDestroy:function(e){return e=e||this.data("kendoNS"),e&&this.off("."+e),this}}),ye.jQuery=E,ye.eventMap=ce,ye.timezone=function(){function e(e,t){var n,r,o,i=t[3],a=t[4],s=t[5],u=t[8];return u||(t[8]=u={}),u[e]?u[e]:(isNaN(a)?0===a.indexOf("last")?(n=new Date(Date.UTC(e,c[i]+1,1,s[0]-24,s[1],s[2],0)),r=d[a.substr(4,3)],o=n.getUTCDay(),n.setUTCDate(n.getUTCDate()+r-o-(r>o?7:0))):a.indexOf(">=")>=0&&(n=new Date(Date.UTC(e,c[i],a.substr(5),s[0],s[1],s[2],0)),r=d[a.substr(0,3)],o=n.getUTCDay(),n.setUTCDate(n.getUTCDate()+r-o+(r=a||t==a&&"only"==n||"max"==n)}),n.push(t),n.sort(function(t,n){return"number"!=typeof t&&(t=+e(a,t)),"number"!=typeof n&&(n=+e(a,n)),t-n}),s=n[jQuery.inArray(t,n)-1]||n[n.length-1],isNaN(s)?s:null):(o=r.split(":"),i=0,o.length>1&&(i=60*o[0]+ +o[1]),[-1e6,"max","-","Jan",1,[0,0,0],i,"-"])}function n(e,t,n){var r,o,i,a=t[n];if("string"==typeof a&&(a=t[a]),!a)throw Error('Timezone "'+n+'" is either incorrect, or kendo.timezones.min.js is not included.');for(r=a.length-1;r>=0&&(o=a[r][3],!(o&&e>o));r--);if(i=a[r+1],!i)throw Error('Timezone "'+n+'" not found on '+e+".");return i}function r(e,r,o,i){typeof e!=_e&&(e=Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()));var a=n(e,r,i);return{zone:a,rule:t(e,o,a[1])}}function o(e,t){var n,o,i;return"Etc/UTC"==t||"Etc/GMT"==t?0:(n=r(e,this.zones,this.rules,t),o=n.zone,i=n.rule,ye.parseFloat(i?o[0]-i[6]:o[0]))}function i(e,t){var n=r(e,this.zones,this.rules,t),o=n.zone,i=n.rule,a=o[2];return a.indexOf("/")>=0?a.split("/")[i&&+i[6]?1:0]:a.indexOf("%s")>=0?a.replace("%s",i&&"-"!=i[7]?i[7]:""):a}function a(e,t,n){var r,o,i,a=n;return typeof t==He&&(t=this.offset(e,t)),typeof n==He&&(n=this.offset(e,n)),o=e.getTimezoneOffset(),e=new Date(e.getTime()+6e4*(t-n)),i=e.getTimezoneOffset(),typeof a==He&&(a=this.offset(e,a)),r=i-o+(n-a),new Date(e.getTime()+6e4*r)}function s(e,t){return this.convert(e,e.getTimezoneOffset(),t)}function u(e,t){return this.convert(e,t,e.getTimezoneOffset())}function l(e){return this.apply(new Date(e),"Etc/UTC")}var c={Jan:0,Feb:1,Mar:2,Apr:3,May:4,Jun:5,Jul:6,Aug:7,Sep:8,Oct:9,Nov:10,Dec:11},d={Sun:0,Mon:1,Tue:2,Wed:3,Thu:4,Fri:5,Sat:6};return{zones:{},rules:{},offset:o,convert:a,apply:s,remove:u,abbr:i,toLocalDate:l}}(),ye.date=function(){function e(e,t){return 0===t&&23===e.getHours()&&(e.setHours(e.getHours()+2),!0)}function t(t,n,r){var o=t.getHours();r=r||1,n=(n-t.getDay()+7*r)%7,t.setDate(t.getDate()+n),e(t,o)}function r(e,n,r){return e=new Date(e),t(e,n,r),e}function o(e){return new Date(e.getFullYear(),e.getMonth(),1)}function i(e){var t=new Date(e.getFullYear(),e.getMonth()+1,0),n=o(e),r=Math.abs(t.getTimezoneOffset()-n.getTimezoneOffset());return r&&t.setHours(n.getHours()+r/60),t}function a(e,t){return 1!==t?m(r(e,t,-1),4):m(e,4-(e.getDay()||7))}function s(e,t){var n=new Date(e.getFullYear(),0,1,(-6)),r=a(e,t),o=r.getTime()-n.getTime(),i=Math.floor(o/M);return 1+Math.floor(i/7)}function u(e,t){var r,o,i;return t===n&&(t=ye.culture().calendar.firstDay),r=m(e,-7),o=m(e,7),i=s(e,t),0===i?s(r,t)+1:53===i&&s(o,t)>1?1:i}function l(t){return t=new Date(t.getFullYear(),t.getMonth(),t.getDate(),0,0,0),e(t,0),t}function c(e){return Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds())}function d(e){return b(e).getTime()-l(b(e))}function f(e,t,n){var r,o=d(t),i=d(n);return!e||o==i||(t>=n&&(n+=M),r=d(e),o>r&&(r+=M),i=o&&r<=i)}function p(e,t,n){var r,o=t.getTime(),i=n.getTime();return o>=i&&(i+=M),r=e.getTime(),r>=o&&r<=i}function m(t,n){var r=t.getHours();return t=new Date(t),h(t,n*M),e(t,r),t}function h(e,t,n){var r,o=e.getTimezoneOffset();e.setTime(e.getTime()+t),n||(r=e.getTimezoneOffset()-o,e.setTime(e.getTime()+r*w))}function g(t,n){return t=new Date(ye.date.getDate(t).getTime()+ye.date.getMilliseconds(n)),e(t,n.getHours()),t}function y(){return l(new Date)}function v(e){return l(e).getTime()==y().getTime()}function b(e){var t=new Date(1980,1,1,0,0,0);return e&&t.setHours(e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()),t}var w=6e4,M=864e5;return{adjustDST:e,dayOfWeek:r,setDayOfWeek:t,getDate:l,isInDateRange:p,isInTimeRange:f,isToday:v,nextDay:function(e){return m(e,1)},previousDay:function(e){return m(e,-1)},toUtcTime:c,MS_PER_DAY:M,MS_PER_HOUR:60*w,MS_PER_MINUTE:w,setTime:h,setHours:g,addDays:m,today:y,toInvariantTime:b,firstDayOfMonth:o,lastDayOfMonth:i,weekInYear:u,getMilliseconds:d}}(),ye.stripWhitespace=function(e){var t,n,r;if(document.createNodeIterator)for(t=document.createNodeIterator(e,NodeFilter.SHOW_TEXT,function(t){return t.parentNode==e?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_REJECT},!1);t.nextNode();)t.referenceNode&&!t.referenceNode.textContent.trim()&&t.referenceNode.parentNode.removeChild(t.referenceNode);else for(n=0;nt?o():r=setTimeout(o,t-s),n):o()},o.cancel=function(){clearTimeout(r)},o)},ye.caret=function(t,r,o){var i,a,s,u,l,c=r!==n;if(o===n&&(o=r),t[0]&&(t=t[0]),!c||!t.disabled){try{t.selectionStart!==n?c?(t.focus(),a=ke.mobileOS,a.wp||a.android?setTimeout(function(){t.setSelectionRange(r,o)},0):t.setSelectionRange(r,o)):r=[t.selectionStart,t.selectionEnd]:document.selection&&(e(t).is(":visible")&&t.focus(),i=t.createTextRange(),c?(i.collapse(!0),i.moveStart("character",r),i.moveEnd("character",o-r),i.select()):(s=i.duplicate(),i.moveToBookmark(document.selection.createRange().getBookmark()),s.setEndPoint("EndToStart",i),u=s.text.length,l=u+i.text.length,r=[u,l]))}catch(d){r=[]}return r}},ye.compileMobileDirective=function(e,n){var r=t.angular;return e.attr("data-"+ye.ns+"role",e[0].tagName.toLowerCase().replace("kendo-mobile-","").replace("-","")),r.element(e).injector().invoke(["$compile",function(t){t(e)(n),/^\$(digest|apply)$/.test(n.$$phase)||n.$digest()}]),ye.widgetInstance(e,ye.mobile.ui)},ye.antiForgeryTokens=function(){var t={},r=e("meta[name=csrf-token],meta[name=_csrf]").attr("content"),o=e("meta[name=csrf-param],meta[name=_csrf_header]").attr("content");return e("input[name^='__RequestVerificationToken']").each(function(){t[this.name]=this.value}),o!==n&&r!==n&&(t[o]=r),t},ye.cycleForm=function(e){function t(e){var t=ye.widgetInstance(e);t&&t.focus?t.focus():e.focus()}var n=e.find("input, .k-widget").first(),r=e.find("button, .k-button").last();r.on("keydown",function(e){e.keyCode!=ye.keys.TAB||e.shiftKey||(e.preventDefault(),t(n))}),n.on("keydown",function(e){e.keyCode==ye.keys.TAB&&e.shiftKey&&(e.preventDefault(),t(r))})},ye.focusElement=function(n){var r=[],o=n.parentsUntil("body").filter(function(e,t){var n=ye.getComputedStyles(t,["overflow"]);return"visible"!==n.overflow}).add(t);o.each(function(t,n){r[t]=e(n).scrollTop()});try{n[0].setActive()}catch(i){n[0].focus()}o.each(function(t,n){e(n).scrollTop(r[t])})},function(){function n(t,n,r,o){var i,a,s=e("
    ").attr({action:r,method:"POST",target:o}),u=ye.antiForgeryTokens();u.fileName=n,i=t.split(";base64,"),u.contentType=i[0].replace("data:",""),u.base64=i[1];for(a in u)u.hasOwnProperty(a)&&e("").attr({value:u[a],name:a,type:"hidden"}).appendTo(s);s.appendTo("body").submit().remove()}function r(e,t){var n,r,o,i,a,s=e;if("string"==typeof e){for(n=e.split(";base64,"),r=n[0],o=atob(n[1]),i=new Uint8Array(o.length),a=0;a1},_maxTouchesReached:function(){return this.touches.length>=this._maxTouches},_disposeAll:function(){for(var e=this.touches;e.length>0;)e.pop().dispose()},_isMoved:function(){return e.grep(this.touches,function(e){return e.isMoved()}).length},_select:function(e){this.allowSelection&&!this.trigger(m,{event:e})||e.preventDefault()},_start:function(t){var n,o,r=this,s=0,a=r.filter,c=i(t),u=c.length,h=t.which;if(!(h&&h>1||r._maxTouchesReached()))for(P.current=null,r.currentTarget=t.currentTarget,r.stopPropagation&&t.stopPropagation();si||n.rightl||n.bottomspan,.k-button>img,span.k-icon.k-i-arrow-60-down,span.k-icon.k-i-arrow-60-up",p=s.support.browser.msie,_=!1;!function(e){!function(){e('
    ').on("click",">*",function(){_=!0}).find("span").click().end().off()}()}(e),i=l.extend({init:function(t,n){var i,o=this;l.fn.init.call(o,t,n),o._marquee=e("
    "),o._lastActive=null,o.element.addClass(d),o.relatedTarget=o.options.relatedTarget,i=o.options.multiple,h=o.options.inputSelectors,this.options.aria&&i&&o.element.attr("aria-multiselectable",!0),o.userEvents=new s.UserEvents(o.element,{global:!0,allowSelection:!0,filter:(_?"":"."+d+" ")+o.options.filter,tap:a(o._tap,o),touchAction:i?"none":"pan-x pan-y"}),i&&o.userEvents.bind("start",a(o._start,o)).bind("move",a(o._move,o)).bind("end",a(o._end,o)).bind("select",a(o._select,o))},events:[f],options:{name:"Selectable",filter:">*",inputSelectors:h,multiple:!1,relatedTarget:e.noop},_isElement:function(e){var t,n=this.element,i=n.length,s=!1;for(e=e[0],t=0;te.x.location?e.x.location:e.x.startLocation,top:e.y.startLocation>e.y.location?e.y.location:e.y.startLocation,width:o(e.x.initialDelta),height:o(e.y.initialDelta)};t._marquee.css(n),t._invalidateSelectables(n,e.event.ctrlKey||e.event.metaKey),e.preventDefault()},_end:function(e){var t,n=this;n._marquee.remove(),n._unselect(n.element.find(n.options.filter+"."+m)).removeClass(m),t=n.element.find(n.options.filter+"."+u),t=t.add(n.relatedTarget(t)),n.value(t,e),n._lastActive=n._downTarget,n._items=null},_invalidateSelectables:function(e,t){var i,s,l,a,o=this._downTarget[0],r=this._items;for(i=0,s=r.length;i0?e[0]:t.element.find(t.options.filter)[0])},_selectElement:function(t,n){var i=e(t),s=!n&&this._notify("select",{element:t});i.removeClass(u),s||(i.addClass(c),this.options.aria&&i.attr(r,!0))},_notify:function(e,t){return t=t||{},this.trigger(e,t)},_unselect:function(e){return e.removeClass(c),this.options.aria&&e.attr(r,!1),e},_select:function(t){this._allowSelection(t.event.target)&&(!p||p&&!e(s._activeElement()).is(h))&&t.preventDefault()},_allowSelection:function(t){return!e(t).is(h)||(this.userEvents.cancel(),this._downTarget=null,!1)},resetTouchEvents:function(){this.userEvents.cancel()},clear:function(){var e=this.element.find(this.options.filter+"."+c);this._unselect(e)},selectRange:function(t,n,i){var s,l,a,o=this;for(o.clear(),o.element.length>1&&(a=o.options.continuousItems()),a&&a.length||(a=o.element.find(o.options.filter)),t=e.inArray(e(t)[0],a),n=e.inArray(e(n)[0],a),t>n&&(l=t,t=n,n=l),o.options.useAllItems||(n+=o.element.length-1),s=t;s<=n;s++)o._selectElement(a[s]);o._notify(f,i)},destroy:function(){var e=this;l.fn.destroy.call(e),e.element.off(v),e.userEvents.destroy(),e._marquee=e._lastActive=e.element=e.userEvents=null}}),i.parseOptions=function(e){var t="string"==typeof e&&e.toLowerCase();return{multiple:t&&t.indexOf("multiple")>-1,cell:t&&t.indexOf("cell")>-1}},s.ui.plugin(i)}(window.kendo.jQuery),window.kendo},"function"==typeof define&&define.amd?define:function(e,t,n){(n||t)()});;!function(e,define){define("kendo.data.min",["kendo.core.min","kendo.data.odata.min","kendo.data.xml.min"],e)}(function(){return function(e,t){function r(e,t,r,i){return function(n){var a,s={};for(a in n)s[a]=n[a];s.field=i?r+"."+n.field:r,t==De&&e._notifyChange&&e._notifyChange(s),e.trigger(t,s)}}function i(t,r){if(t===r)return!0;var n,a=e.type(t),s=e.type(r);if(a!==s)return!1;if("date"===a)return t.getTime()===r.getTime();if("object"!==a&&"array"!==a)return!1;for(n in t)if(!i(t[n],r[n]))return!1;return!0}function n(e,t){var r,i;for(i in e){if(r=e[i],de(r)&&r.field&&r.field===t)return r;if(r===t)return r}return null}function a(e){this.data=e||[]}function s(e,r){if(e){var i=typeof e===we?{field:e,dir:r}:e,n=ce(i)?i:i!==t?[i]:[];return ge(n,function(e){return!!e.dir})}}function o(e){var t,r,i,n,a=e.filters;if(a)for(t=0,r=a.length;tt.field?1:e.field=t.length)););o0&&(t=this[r--]);r>=0;r--)t=e(t,this[r],r,this);return t},filter:function(e){for(var t,r=0,i=[],n=this.length;r=0;if(s)for(r=e.split("."),i="";r.length>1;){if(i+=r.shift(),n=me.getter(i,!0)(a),n instanceof U)return n.set(r.join("."),t),s;i+="."}return me.setter(e)(a,t),s},set:function(e,t){var r=this,i=!1,n=e.indexOf(".")>=0,a=me.getter(e,!0)(r);return a!==t&&(a instanceof Se&&this._handlers[e]&&(this._handlers[e].get&&a.unbind(ze,this._handlers[e].get),a.unbind(De,this._handlers[e].change)),i=r.trigger("set",{field:e,value:t}),i||(n||(t=r.wrap(t,e,function(){return r})),(!r._set(e,t)||e.indexOf("(")>=0||e.indexOf("[")>=0)&&r.trigger(De,{field:e}))),i},parent:ve,wrap:function(e,t,i){var n,a,s,o,u=this,l=We.call(e);return null==e||"[object Object]"!==l&&"[object Array]"!==l||(s=e instanceof Ke,o=e instanceof ie,"[object Object]"!==l||o||s?("[object Array]"===l||s||o)&&(s||o||(e=new Ke(e)),a=r(u,De,t,!1),e.bind(De,a),u._handlers[t]={change:a}):(e instanceof U||(e=new U(e)),n=r(u,ze,t,!0),e.bind(ze,n),a=r(u,De,t,!0),e.bind(De,a),u._handlers[t]={get:n,change:a}),e.parent=i),e}}),J={number:function(e){return me.parseFloat(e)},date:function(e){return me.parseDate(e)},"boolean":function(e){return typeof e===we?"true"===e.toLowerCase():null!=e?!!e:e},string:function(e){return null!=e?e+"":e},"default":function(e){return e}},V={string:"",number:0,date:new Date,"boolean":!1,"default":""},W=U.extend({init:function(r){var i,n,a=this;if((!r||e.isEmptyObject(r))&&(r=e.extend({},a.defaults,r),a._initializers))for(i=0;i0&&(d._initializers=g),i=e.extend(d),i.define=function(e){return W.define(i,e)},d.fields&&(i.fields=d.fields,i.idField=d.idField),i},Q={selector:function(e){return ye(e)?e:Ne(e)},compare:function(e){var t=this.selector(e);return function(e,r){return e=t(e),r=t(r),null==e&&null==r?0:null==e?-1:null==r?1:e.localeCompare?e.localeCompare(r):e>r?1:en?1:-1}},desc:function(e){var t=this.selector(e);return function(e,r){var i=t(e),n=t(r);return i&&i.getTime&&n&&n.getTime&&(i=i.getTime(),n=n.getTime()),i===n?e.__position-r.__position:null==i?1:null==n?-1:n.localeCompare?n.localeCompare(i):i=0?"\\"+n:n}r=!1}return t+"$/"}return{quote:function(t){return t&&t.getTime?"new Date("+t.getTime()+")":e(t)},eq:function(e,t,i){return r("==",e,t,i)},neq:function(e,t,i){return r("!=",e,t,i)},gt:function(e,t,i){return r(">",e,t,i)},gte:function(e,t,i){return r(">=",e,t,i)},lt:function(e,t,i){return r("<",e,t,i)},lte:function(e,t,i){return r("<=",e,t,i)},startswith:t(function(e,t){return e+".lastIndexOf("+t+", 0) == 0"}),doesnotstartwith:t(function(e,t){return e+".lastIndexOf("+t+", 0) == -1"}),endswith:t(function(e,t){var r=t?t.length-2:0;return e+".indexOf("+t+", "+e+".length - "+r+") >= 0"}),doesnotendwith:t(function(e,t){var r=t?t.length-2:0;return e+".indexOf("+t+", "+e+".length - "+r+") < 0"}),contains:t(function(e,t){return e+".indexOf("+t+") >= 0"}),doesnotcontain:t(function(e,t){return e+".indexOf("+t+") == -1"}),matches:t(function(e,t){return t=t.substring(1,t.length-1),i(t)+".test("+e+")"}),doesnotmatch:t(function(e,t){return t=t.substring(1,t.length-1),"!"+i(t)+".test("+e+")"}),isempty:function(e){return e+" === ''"},isnotempty:function(e){return e+" !== ''"},isnull:function(e){return"("+e+" == null)"},isnotnull:function(e){return"("+e+" != null)"}}}(),a.filterExpr=function(e){var r,i,n,s,o,u,l=[],h={and:" && ",or:" || "},d=[],f=[],c=e.filters;for(r=0,i=c.length;r":"gt",isgreaterthan:"gt",greaterthan:"gt",greater:"gt",">=":"gte",isgreaterthanorequalto:"gte",greaterthanequal:"gte",ge:"gte",notsubstringof:"doesnotcontain",isnull:"isnull",isempty:"isempty",isnotempty:"isnotempty"},a.normalizeFilter=u,a.compareFilters=f,a.prototype={toArray:function(){return this.data},range:function(e,t){return new a(this.data.slice(e,e+t))},skip:function(e){return new a(this.data.slice(e))},take:function(e){return new a(this.data.slice(0,e))},select:function(e){return new a(H(this.data,e))},order:function(e,t,r){var i={dir:t};return e&&(e.compare?i.compare=e.compare:i.field=e),new a(r?this.data.sort(Q.create(i)):this.data.slice(0).sort(Q.create(i)))},orderBy:function(e,t){return this.order(e,"asc",t)},orderByDescending:function(e,t){return this.order(e,"desc",t)},sort:function(e,t,r,i){var n,a,o=s(e,t),u=[];if(r=r||Q,o.length){for(n=0,a=o.length;n0&&(r=e[0],n=n.groupBy(r).select(function(i){var n=new a(t).filter([{field:i.field,operator:"eq",value:i.value,ignoreCase:!1}]);return{field:i.field,value:i.value,items:e.length>1?new a(i.items).group(e.slice(1),n.toArray()).toArray():i.items,hasSubgroups:e.length>1,aggregates:n.aggregate(r.aggregates)}})),n},groupBy:function(e){if(fe(e)||!this.data.length)return new a([]);var t,r,i,n,s=e.field,o=this._sortForGrouping(s,e.dir||"asc"),u=me.accessor(s),l=u.get(o[0],s),h={field:s,value:l,items:[]},d=[h];for(i=0,n=o.length;ii&&(v(i)||m(i))&&(e=i),e}},a.process=function(e,r,i){r=r||{};var n,o=new a(e),u=r.group,l=g(u||[]).concat(s(r.sort||[])),h=r.filterCallback,d=r.filter,f=r.skip,c=r.take;return d&&(o=o.filter(d),h&&(o=h(o)),n=o.toArray().length),l&&(o=i?o.sort(l,t,t,i):o.sort(l),u&&(e=o.toArray())),f!==t&&c!==t&&(o=o.range(f,c)),u&&(o=o.group(u,e)),{total:n,data:o.toArray()}},Z=be.extend({init:function(e){this.data=e.data},read:function(e){e.success(this.data)},update:function(e){e.success(e.data)},create:function(e){e.success(e.data)},destroy:function(e){e.success(e.data)}}),ee=be.extend({init:function(e){var t,r=this;e=r.options=le({},r.options,e),_e(Ie,function(t,r){typeof e[r]===we&&(e[r]={url:e[r]})}),r.cache=e.cache?te.create(e.cache):{find:ve,add:ve},t=e.parameterMap,ye(e.push)&&(r.push=e.push),r.push||(r.push=Me),r.parameterMap=ye(t)?t:function(e){var r={};return _e(e,function(e,i){e in t&&(e=t[e],de(e)&&(i=e.value(i),e=e.key)),r[e]=i}),r}},options:{parameterMap:Me},create:function(e){return pe(this.setup(e,xe))},read:function(r){var i,n,a,s=this,o=s.cache;r=s.setup(r,qe),i=r.success||ve,n=r.error||ve,a=o.find(r.data),a!==t?i(a):(r.success=function(e){o.add(r.data,e),i(e)},e.ajax(r))},update:function(e){return pe(this.setup(e,Fe))},destroy:function(e){return pe(this.setup(e,Re))},setup:function(e,t){e=e||{};var r,i=this,n=i.options[t],a=ye(n.data)?n.data(e.data):n.data;return e=le(!0,{},n,e),r=le(!0,{},a,e.data),e.data=i.parameterMap(r,t),ye(e.url)&&(e.url=e.url(r)),e}}),te=be.extend({init:function(){this._store={}},add:function(e,r){e!==t&&(this._store[je(e)]=r)},find:function(e){return this._store[je(e)]},clear:function(){this._store={}},remove:function(e){delete this._store[je(e)]}}),te.create=function(e){var t={inmemory:function(){return new te}};return de(e)&&ye(e.find)?e:e===!0?new te:t[e]()},re=be.extend({init:function(e){var t,r,i,n,a,s,o,u,l,h,d,f,c,g=this;e=e||{};for(t in e)r=e[t],g[t]=typeof r===we?Ne(r):r;n=e.modelBase||W,de(g.model)&&(g.model=i=n.define(g.model)),a=he(g.data,g),g._dataAccessFunction=a,g.model&&(s=he(g.groups,g),o=he(g.serialize,g),u={},l={},h={},d={},f=!1,i=g.model,i.fields&&(_e(i.fields,function(e,t){var r;c=e,de(t)&&t.field?c=t.field:typeof t===we&&(c=t),de(t)&&t.from&&(r=t.from),f=f||r&&r!==e||c!==e,l[e]=Ne(r||c),h[e]=Ne(e),u[r||c]=e,d[e]=r||c}),!e.serialize&&f&&(g.serialize=k(o,i,S,h,u,d))),g._dataAccessFunction=a,g.data=k(a,i,b,l,u,d),g.groups=k(s,i,w,l,u,d))},errors:function(e){return e?e.errors:null},parse:Me,data:Me,total:function(e){return e.length},groups:Me,aggregates:function(){return{}},serialize:function(e){return e}}),ie=Se.extend({init:function(e){var r,i,n,a=this;e&&(i=e.data),e=a.options=le({},a.options,e),a._map={},a._prefetch={},a._data=[],a._pristineData=[],a._ranges=[],a._view=[],a._pristineTotal=0,a._destroyed=[],a._pageSize=e.pageSize,a._page=e.page||(e.pageSize?1:t),a._sort=s(e.sort),a._filter=u(e.filter),a._group=g(e.group),a._aggregate=e.aggregate,a._total=e.total,a._shouldDetachObservableParents=!0,Se.fn.init.call(a),a.transport=ne.create(e,i,a),ye(a.transport.push)&&a.transport.push({pushCreate:he(a._pushCreate,a),pushUpdate:he(a._pushUpdate,a),pushDestroy:he(a._pushDestroy,a)}),null!=e.offlineStorage&&("string"==typeof e.offlineStorage?(n=e.offlineStorage,a._storage={getItem:function(){return JSON.parse(localStorage.getItem(n))},setItem:function(e){localStorage.setItem(n,je(a.reader.serialize(e)))}}):a._storage=e.offlineStorage),a.reader=new me.data.readers[e.schema.type||"json"](e.schema),r=a.reader.model||{},a._detachObservableParents(),a._data=a._observe(a._data),a._online=!0,a.bind(["push",Pe,De,Ce,Oe,Ae,Te],e)},options:{data:null,schema:{modelBase:W},offlineStorage:null,serverSorting:!1,serverPaging:!1,serverFiltering:!1,serverGrouping:!1,serverAggregates:!1,batch:!1,inPlaceSort:!1},clone:function(){return this},online:function(r){return r!==t?this._online!=r&&(this._online=r,r)?this.sync():e.Deferred().resolve().promise():this._online},offlineData:function(e){return null==this.options.offlineStorage?null:e!==t?this._storage.setItem(e):this._storage.getItem()||[]},_isServerGrouped:function(){var e=this.group()||[];return this.options.serverGrouping&&e.length},_pushCreate:function(e){this._push(e,"pushCreate")},_pushUpdate:function(e){this._push(e,"pushUpdate")},_pushDestroy:function(e){this._push(e,"pushDestroy")},_push:function(e,t){var r=this._readData(e);r||(r=e),this[t](r)},_flatData:function(e,t){if(e){if(this._isServerGrouped())return q(e);if(!t)for(var r=0;r-1)return t(i,r),!0})},_removePristineForModel:function(e){this._executeOnPristineForModel(e,function(e,t){t.splice(e,1)})},_readData:function(e){var t=this._isServerGrouped()?this.reader.groups:this.reader.data;return t.call(this.reader,e)},_eachPristineItem:function(e){this._eachItem(this._pristineData,e)},_eachItem:function(e,t){e&&e.length&&(this._isServerGrouped()?R(e,t):t(e))},_pristineForModel:function(e){var t,r,i=function(i){if(r=C(i,e),r>-1)return t=i[r],!0};return this._eachPristineItem(i),t},_cancelModel:function(e){var t=this,r=this._pristineForModel(e);this._eachItem(this._data,function(i){var n=T(i,e);n>=0&&(!r||e.isNew()&&!r.__state__?(i.splice(n,1),t._removeModelFromRanges(e)):(i[n].accept(r),"update"==r.__state__&&(i[n].dirty=!0)))})},_submit:function(t,r){var i=this;i.trigger(Ce,{type:"submit"}),i.trigger(Te),i.transport.submit(le({success:function(r,i){var n=e.grep(t,function(e){return e.type==i})[0];n&&n.resolve({response:r,models:n.models,type:i})},error:function(e,r,n){for(var a=0;a1?arguments[1]:t,e=f._readData(e,r),f._destroyed=[]}else{for(e=f._readData(e),i=[],n={},a=f.reader.model,s=a?a.idField:"id",o=0;o0?(n=this.pageSize(),r.page=r.pageSize/n,r.pageSize=n):(r.page=1,this.options.endless=!1)),this.read(this._mergeState(r))):(a=this.trigger(Ce,{type:"read"}),a||(this.trigger(Te),i=this._queryProcess(this._data,this._mergeState(r)),this.options.serverFiltering||(this._total=i.total!==t?i.total:this._data.length),this._aggregateResult=this._calculateAggregates(this._data,r),this.view(i.data),this.trigger(Ae,{type:"read"}),this.trigger(De,{items:i.data})),e.Deferred().resolve(a).promise())},fetch:function(e){var t=this,r=function(r){r!==!0&&ye(e)&&e.call(t)};return this._query().then(r)},_query:function(e){var t=this;return t.query(le({},{page:t.page(),pageSize:t.pageSize(),sort:t.sort(),filter:t.filter(),group:t.group(),aggregate:t.aggregate()},e))},next:function(e){var t=this,r=t.page(),i=t.total();if(e=e||{},r&&!(i&&r+1>t.totalPages()))return t._skip=t._currentRangeStart=r*t.take(),r+=1,e.page=r,t._query(e),r},prev:function(e){var t=this,r=t.page();if(e=e||{},r&&1!==r)return t._skip=t._currentRangeStart=t._skip-t.take(),r-=1,e.page=r,t._query(e),r},page:function(e){var r,i=this;return e!==t?(e=Ge.max(Ge.min(Ge.max(e,1),i.totalPages()),1),i._query({page:e}),t):(r=i.skip(),r!==t?Ge.round((r||0)/(i.take()||1))+1:t)},pageSize:function(e){var r=this;return e!==t?(r._query({pageSize:e,page:1}),t):r.take()},sort:function(e){var r=this;return e!==t?(r._query({sort:e}),t):r._sort},filter:function(e){var r=this;return e===t?r._filter:(r.trigger("reset"),r._query({filter:e,page:1}),t)},group:function(e){var r=this;return e!==t?(r._query({group:e}),t):r._group},total:function(){return parseInt(this._total||0,10)},aggregate:function(e){var r=this;return e!==t?(r._query({aggregate:e}),t):r._aggregate},aggregates:function(){var e=this._aggregateResult;return fe(e)&&(e=this._emptyAggregates(this.aggregate())),e},_emptyAggregates:function(e){var t,r,i={};if(!fe(e))for(t={},ce(e)||(e=[e]),r=0;r=n;i--)r=a[i],t={value:e.get(r.field),field:r.field,items:t?[t]:[e],hasSubgroups:!!t,aggregates:this._emptyAggregates(r.aggregates)};return t},totalPages:function(){var e=this,t=e.pageSize()||e.total();return Ge.ceil((e.total()||0)/t)},inRange:function(e,t){var r=this,i=Ge.min(e+t,r.total());return!r.options.serverPaging&&r._data.length>0||r._findRange(e,i).length>0},lastRange:function(){var e=this._ranges;return e[e.length-1]||{start:0,end:0,data:[]}},firstItemUid:function(){var e=this._ranges;return e.length&&e[0].data.length&&e[0].data[0].uid},enableRequestsInProgress:function(){this._skipRequestsInProgress=!1},_timeStamp:function(){return(new Date).getTime()},range:function(e,r,i){var n,a,s,o,u,l,h,d;if(this._currentRequestTimeStamp=this._timeStamp(),this._skipRequestsInProgress=!0,e=Ge.min(e||0,this.total()),n=this,a=Ge.max(Ge.floor(e/r),0)*r,s=Ge.min(a+r,n.total()),o=n._findRange(e,Ge.min(e+r,n.total())),o.length){n._pending=t,n._skip=e>n.skip()?Ge.min(s,(n.totalPages()-1)*n.take()):a,n._currentRangeStart=e,n._take=r,u=n.options.serverPaging,l=n.options.serverSorting,h=n.options.serverFiltering,d=n.options.serverAggregates;try{n.options.serverPaging=!0,n._isServerGrouped()||n.group()&&n.group().length||(n.options.serverSorting=!0),n.options.serverFiltering=!0,n.options.serverPaging=!0,n.options.serverAggregates=!0,u&&(n._detachObservableParents(),n._data=o=n._observe(o)),n._process(o)}finally{n.options.serverPaging=u,n.options.serverSorting=l,n.options.serverFiltering=h,n.options.serverAggregates=d}return ye(i)&&i(),t}r!==t&&(n._rangeExists(a,s)?aa&&s=i.start&&e<=i.end){for(c=0,a=n;a=i.start&&(l=i.data,h=i.end,b||(S.inPlaceSort?d=v._queryProcess(i.data,{filter:v.filter()}):(_=g(v.group()||[]).concat(s(v.sort()||[])),d=v._queryProcess(i.data,{sort:_,filter:v.filter()})),f=l=d.data,d.total!==t&&(h=d.total)),o=0,e+c>i.start&&(o=e+c-i.start),u=f.length,h>r&&(u-=h-r),c+=u-o,y=v._mergeGroups(y,l,o,u),r<=i.end&&c==r-e))return y;break}return[]},_mergeGroups:function(e,t,r,i){if(this._isServerGrouped()){var n,a=t.toJSON();return e.length&&(n=e[e.length-1]),x(n,a,r,i),e.concat(a)}return e.concat(t.slice(r,i))},skip:function(){var e=this;return e._skip===t?e._page!==t?(e._page-1)*(e.take()||1):t:e._skip},currentRangeStart:function(){return this._currentRangeStart||0},take:function(){return this._take||this._pageSize},_prefetchSuccessHandler:function(e,t,r,i){var n=this,a=n._timeStamp();return function(s){var o,u,l,h=!1,d={start:e,end:t,data:[],timestamp:n._timeStamp()};if(n._dequeueRequest(),n.trigger(Ae,{response:s,type:"read"}),s=n.reader.parse(s),l=n._readData(s),l.length){for(o=0,u=n._ranges.length;o=n._currentRequestTimeStamp||!n._skipRequestsInProgress)&&(r&&l.length?r():n.trigger(De,{}))}},prefetch:function(e,t,r){var i=this,n=Ge.min(e+t,i.total()),a={take:t,skip:e,page:e/t+1,pageSize:t,sort:i._sort,filter:i._filter,group:i._group,aggregate:i._aggregate};i._rangeExists(e,n)?r&&r():(clearTimeout(i._timeout),i._timeout=setTimeout(function(){i._queueRequest(a,function(){i.trigger(Ce,{type:"read"})?i._dequeueRequest():i.transport.read({data:i._params(a),success:i._prefetchSuccessHandler(e,n,r),error:function(){var e=Je.call(arguments);i.error.apply(i,e)}})})},100))},_multiplePrefetch:function(e,t,r){var i=this,n=Ge.min(e+t,i.total()),a={take:t,skip:e,page:e/t+1,pageSize:t,sort:i._sort,filter:i._filter,group:i._group,aggregate:i._aggregate};i._rangeExists(e,n)?r&&r():i.trigger(Ce,{type:"read"})||i.transport.read({data:i._params(a),success:i._prefetchSuccessHandler(e,n,r,!0)})},_rangeExists:function(e,t){var r,i,n=this,a=n._ranges;for(r=0,i=a.length;r=t)return!0;return!1},_removeModelFromRanges:function(e){var t,r,i,n,a,s=this;for(n=0,a=this._ranges.length;n=e){n._getByUid(t.uid,r.data)||(n._isServerGrouped()?r.data.splice(e,0,n._wrapInEmptyGroup(t)):r.data.splice(e,0,t));break}n._updateRangesLength()},_updateRangesLength:function(){var e,t,r=this,i=r._ranges||[],n=i.length,a=!1,s=0,o=0;for(t=0;t0?this.filter(this._hierarchicalFilter):(this.options.filter=this._hierarchicalFilter,this._filter=u(this.options.filter),this._hierarchicalFilter=null)),t},remove:function(e){var t,r=e.parentNode(),i=this;return r&&r._initChildren&&(i=r.children),t=ie.fn.remove.call(i,e),r&&!i.data().length&&(r.hasChildren=!1),t},success:B("success"),data:B("data"),insert:function(e,t){var r=this.parent();return r&&r._initChildren&&(r.hasChildren=!0,r._initChildren()),ie.fn.insert.call(this,e,t)},filter:function(e){return e===t?this._filter:(!this.options.serverFiltering&&this._markHierarchicalQuery(e)&&(e={logic:"or",filters:[e,{field:"_matchFilter",operator:"equals",value:!0}]}),this.trigger("reset"),this._query({filter:e,page:1}),t)},_markHierarchicalQuery:function(e){var t,r,i,n,s;return e=u(e),e&&0!==e.filters.length?(t=a.filterExpr(e),i=t.fields,n=t.operators,r=s=Function("d, __f, __o","return "+t.expression),(i.length||n.length)&&(s=function(e){return r(e,i,n)}),this._updateHierarchicalFilter(s),!0):(this._updateHierarchicalFilter(function(){return!0}),!1)},_updateHierarchicalFilter:function(e){var t,r,i=this._data,n=!1;for(r=0;r=this.total()?(this.trigger("endreached",{index:e}),null):this.useRanges?this.useRanges?((e=this.skip+r)&&(i=this.range(Math.floor(e/r)*r)),e===this.prefetchThreshold&&this._prefetch(),e===this.midPageThreshold?this.range(this.nextMidRange,!0):e===this.nextPageThreshold?this.range(this.nextFullRange):e===this.pullBackThreshold&&this.range(this.offset===this.skip?this.previousMidRange:this.previousFullRange),i?this.dataSource.at(e-this.dataOffset):(this.trigger("endreached",{index:e}),null)):t:this.dataSource.view()[e]},indexOf:function(e){return this.dataSource.data().indexOf(e)+this.dataOffset},total:function(){return parseInt(this.dataSource.total(),10)},next:function(){var e=this,t=e.pageSize,r=e.skip-e.viewSize+t,i=Ge.max(Ge.floor(r/t),0)*t;this.offset=r,this.dataSource.prefetch(i,t,function(){e._goToRange(r,!0)})},range:function(e,t){if(this.offset===e)return!0;var r=this,i=this.pageSize,n=Ge.max(Ge.floor(e/i),0)*i,a=this.dataSource;return t&&(n+=i),a.inRange(e,i)?(this.offset=e,this._recalculate(),this._goToRange(e),!0):!this.prefetch||(a.prefetch(n,i,function(){r.offset=e,r._recalculate(),r._goToRange(e,!0)}),!1)},syncDataSource:function(){var e=this.offset;this.offset=null,this.range(e)},destroy:function(){this.unbind()},_prefetch:function(){var e=this,t=this.pageSize,r=this.skip+t,i=this.dataSource;i.inRange(r,t)||this._prefetching||!this.prefetch||(this._prefetching=!0,this.trigger("prefetching",{skip:r,take:t}),i.prefetch(r,t,function(){e._prefetching=!1,e.trigger("prefetched",{skip:r,take:t})}))},_goToRange:function(e,t){this.offset===e&&(this.dataOffset=e,this._expanding=t,this.dataSource.range(e,this.pageSize),this.dataSource.enableRequestsInProgress())},_reset:function(){this._syncPending=!0},_change:function(){var e=this.dataSource;this.length=this.useRanges?e.lastRange().end:e.view().length,this._syncPending&&(this._syncWithDataSource(),this._recalculate(),this._syncPending=!1,this.trigger("reset",{offset:this.offset})),this.trigger("resize"),this._expanding&&this.trigger("expand"),delete this._expanding},_syncWithDataSource:function(){var e=this.dataSource;this._firstItemUid=e.firstItemUid(),this.dataOffset=this.offset=e.skip()||0,this.pageSize=e.pageSize(),this.useRanges=e.options.serverPaging},_recalculate:function(){var e=this.pageSize,t=this.offset,r=this.viewSize,i=Math.ceil(t/e)*e;this.skip=i,this.midPageThreshold=i+e-1,this.nextPageThreshold=i+r-1,this.prefetchThreshold=i+Math.floor(e/3*2),this.pullBackThreshold=this.offset-1,this.nextMidRange=i+e-r,this.nextFullRange=i,this.previousMidRange=t-r,this.previousFullRange=i-e}}),ue=me.Observable.extend({init:function(e,t){var r=this;me.Observable.fn.init.call(r),this.dataSource=e,this.batchSize=t,this._total=0,this.buffer=new oe(e,3*t),this.buffer.bind({endreached:function(e){r.trigger("endreached",{index:e.index})},prefetching:function(e){r.trigger("prefetching",{skip:e.skip,take:e.take})},prefetched:function(e){r.trigger("prefetched",{skip:e.skip,take:e.take})},reset:function(){r._total=0,r.trigger("reset")},resize:function(){r._total=Math.ceil(this.length/r.batchSize),r.trigger("resize",{total:r.total(),offset:this.offset})}})},syncDataSource:function(){this.buffer.syncDataSource()},at:function(e){var t,r,i=this.buffer,n=e*this.batchSize,a=this.batchSize,s=[];for(i.offset>n&&i.at(i.offset-1),r=0;r*:not(.k-loading-mask)",c="progress",u="error",m="k-state-focused",f="k-state-selected",p="k-edit-item",g="edit",h="remove",_="save",b="click",v=".kendoListView",S=e.proxy,E=n._activeElement,w=n.ui.progress,k=n.data.DataSource,y=n.ui.DataBoundWidget.extend({init:function(t,a){var i=this;a=e.isArray(a)?{dataSource:a}:a,o.fn.init.call(i,t,a),a=i.options,i.wrapper=t=i.element,t[0].id&&(i._itemId=t[0].id+"_lv_active"),i._element(),i._dataSource(),i._templates(),i._navigatable(),i._selectable(),i._pageable(),i._crudHandlers(),i.options.autoBind&&i.dataSource.fetch(),n.notify(i)},events:[a,i,l,r,g,h,_],options:{name:"ListView",autoBind:!0,selectable:!1,navigatable:!1,template:"",altTemplate:"",editTemplate:""},setOptions:function(e){o.fn.setOptions.call(this,e),this._templates(),this.selectable&&(this.selectable.destroy(),this.selectable=null),this._selectable()},_templates:function(){var e=this.options;this.template=n.template(e.template||""),this.altTemplate=n.template(e.altTemplate||e.template),this.editTemplate=n.template(e.editTemplate||"")},_item:function(e){return this.element.children()[e]()},items:function(){return this.element.children()},dataItem:function(t){var a=n.attr("uid"),i=e(t).closest("["+a+"]").attr(a);return this.dataSource.getByUid(i)},setDataSource:function(e){this.options.dataSource=e,this._dataSource(),this.options.autoBind&&e.fetch()},_unbindDataSource:function(){var e=this;e.dataSource.unbind(a,e._refreshHandler).unbind(c,e._progressHandler).unbind(u,e._errorHandler)},_dataSource:function(){var e=this;e.dataSource&&e._refreshHandler?e._unbindDataSource():(e._refreshHandler=S(e.refresh,e),e._progressHandler=S(e._progress,e),e._errorHandler=S(e._error,e)),e.dataSource=k.create(e.options.dataSource).bind(a,e._refreshHandler).bind(c,e._progressHandler).bind(u,e._errorHandler)},_progress:function(){w(this.element,!0)},_error:function(){w(this.element,!1)},_element:function(){this.element.addClass("k-widget k-listview").attr("role","listbox")},refresh:function(e){var a,i,o,s,d,c=this,u=c.dataSource.view(),m="",f=c.template,p=c.altTemplate,g=E();if(e=e||{},"itemchange"===e.action)return c._hasBindingTarget()||c.editable||(a=e.items[0],o=c.items().filter("["+n.attr("uid")+"="+a.uid+"]"),o.length>0&&(s=o.index(),c.angular("cleanup",function(){return{elements:[o]}}),o.replaceWith(f(a)),o=c.items().eq(s),o.attr(n.attr("uid"),a.uid),c.angular("compile",function(){return{elements:[o],data:[{dataItem:a}]}}),c.trigger("itemChange",{item:o,data:a}))),t;if(!c.trigger(l,{action:e.action||"rebind",items:e.items,index:e.index})){for(c._angularItems("cleanup"),c._destroyEditable(),s=0,d=u.length;sd+c?e(n)[l+a](o+s-c):o.k-icon,textarea")||n.focusElement(i)};a&&(t._tabindex(),i.on("focus"+v,function(){var e=t._current;e&&e.is(":visible")||(e=t._item("first")),t.current(e)}).on("focusout"+v,function(){t._current&&t._current.removeClass(m)}).on("keydown"+v,function(a){var r,l,o=a.keyCode,d=t.current(),c=e(a.target),u=!c.is(":button,textarea,a,a>.t-icon,input"),m=c.is(":text,:password"),f=n.preventDefault,g=i.find("."+p),h=E();if(!(!u&&!m&&s.ESC!=o||m&&s.ESC!=o&&s.ENTER!=o))if(s.UP===o||s.LEFT===o)d&&(d=d.prev()),t.current(d&&d[0]?d:t._item("last")),f(a);else if(s.DOWN===o||s.RIGHT===o)d&&(d=d.next()),t.current(d&&d[0]?d:t._item("first")),f(a);else if(s.PAGEUP===o)t.current(null),t.dataSource.page(t.dataSource.page()-1),f(a);else if(s.PAGEDOWN===o)t.current(null),t.dataSource.page(t.dataSource.page()+1),f(a);else if(s.HOME===o)t.current(t._item("first")),f(a);else if(s.END===o)t.current(t._item("last")),f(a);else if(s.ENTER===o)0!==g.length&&(u||m)?(r=t.items().index(g),h&&h.blur(),t.save(),l=function(){t.element.trigger("focus"),t.current(t.items().eq(r))},t.one("dataBound",l)):""!==t.options.editTemplate&&t.edit(d);else if(s.ESC===o){if(g=i.find("."+p),0===g.length)return;r=t.items().index(g),t.cancel(),t.element.trigger("focus"),t.current(t.items().eq(r))}}),i.on("mousedown"+v+" touchstart"+v,d,S(r,t)))},clearSelection:function(){var e=this;e.selectable.clear(),e.trigger(a)},select:function(n){var a=this,i=a.selectable;return n=e(n),n.length?(i.options.multiple||(i.clear(),n=n.first()),i.value(n),t):i.value()},_destroyEditable:function(){var e=this;e.editable&&(e.editable.destroy(),delete e.editable)},_modelFromElement:function(e){var t=e.attr(n.attr("uid"));return this.dataSource.getByUid(t)},_closeEditable:function(){var e,t,a,i=this,r=i.editable,l=i.template;return r&&(r.element.index()%2&&(l=i.altTemplate),i.angular("cleanup",function(){return{elements:[r.element]}}),e=i._modelFromElement(r.element),i._destroyEditable(),a=r.element.index(),r.element.replaceWith(l(e)),t=i.items().eq(a),t.attr(n.attr("uid"),e.uid),i._hasBindingTarget()&&n.bind(t,e),i.angular("compile",function(){return{elements:[t],data:[{dataItem:e}]}})),!0},edit:function(e){var t,a,i=this,r=i._modelFromElement(e),l=r.uid;i.cancel(),e=i.items().filter("["+n.attr("uid")+"="+l+"]"),a=e.index(),e.replaceWith(i.editTemplate(r)),t=i.items().eq(a).addClass(p).attr(n.attr("uid"),r.uid),i.editable=t.kendoEditable({model:r,clearContainer:!1,errorTemplate:!1,target:i}).data("kendoEditable"),i.trigger(g,{model:r,item:t})},save:function(){var e,t,n=this,a=n.editable;a&&(t=a.element,e=n._modelFromElement(t),a.end()&&!n.trigger(_,{model:e,item:t})&&(n._closeEditable(),n.dataSource.sync()))},remove:function(e){var t=this,n=t.dataSource,a=t._modelFromElement(e);t.editable&&(n.cancelChanges(t._modelFromElement(t.editable.element)),t._closeEditable()),t.trigger(h,{model:a,item:e})||(e.hide(),n.remove(a),n.sync())},add:function(){var e,t=this,n=t.dataSource,a=n.indexOf((n.view()||[])[0]);a<0&&(a=0),t.cancel(),e=n.insert(a,{}),t.edit(t.element.find("[data-uid='"+e.uid+"']"))},cancel:function(){var e,t,n=this,a=n.dataSource;n.editable&&(e=n.editable.element,t=n._modelFromElement(e),n.trigger(i,{model:t,container:e})||(a.cancelChanges(t),n._closeEditable()))},_crudHandlers:function(){var t=this,a=b+v;t.element.on(a,".k-edit-button",function(a){var i=e(this).closest("["+n.attr("uid")+"]");t.edit(i),a.preventDefault()}),t.element.on(a,".k-delete-button",function(a){var i=e(this).closest("["+n.attr("uid")+"]");t.remove(i),a.preventDefault()}),t.element.on(a,".k-update-button",function(e){t.save(),e.preventDefault()}),t.element.on(a,".k-cancel-button",function(e){t.cancel(),e.preventDefault()})},destroy:function(){var e=this;o.fn.destroy.call(e),e._unbindDataSource(),e._destroyEditable(),e.element.off(v),e.pager&&e.pager.destroy(),n.destroy(e.element)}});n.ui.plugin(y)}(window.kendo.jQuery),window.kendo},"function"==typeof define&&define.amd?define:function(e,t,n){(n||t)()});;!function(e,define){define("kendo.popup.min",["kendo.core.min"],e)}(function(){return function(e,t){function o(t,o){return!(!t||!o)&&(t===o||e.contains(t,o))}var n,i,s,r,a=window.kendo,l=a.ui,d=l.Widget,p=a.Class,c=a.support,f=a.getOffset,u=a._outerWidth,h=a._outerHeight,m="open",g="close",w="deactivate",v="activate",_="center",b="left",y="right",k="top",x="bottom",T="absolute",z="hidden",C="body",S="location",E="position",I="visible",P="effects",R="k-state-active",A="k-state-border",D=/k-state-border-(\w+)/,O=".k-picker-wrap, .k-dropdown-wrap, .k-link",H="down",F=e(document.documentElement),L=e.proxy,N=e(window),W="scroll",j=c.transitions.css,K=j+"transform",M=e.extend,U=".kendoPopup",Y=["font-size","font-family","font-stretch","font-style","font-weight","line-height"],Q=d.extend({init:function(t,o){var n,i=this;o=o||{},o.isRtl&&(o.origin=o.origin||x+" "+y,o.position=o.position||k+" "+y),d.fn.init.call(i,t,o),t=i.element,o=i.options,i.collisions=o.collision?o.collision.split(" "):[],i.downEvent=a.applyEventMap(H,a.guid()),1===i.collisions.length&&i.collisions.push(i.collisions[0]),n=e(i.options.anchor).closest(".k-popup,.k-group").filter(":not([class^=km-])"),o.appendTo=e(e(o.appendTo)[0]||n[0]||document.body),i.element.hide().addClass("k-popup k-group k-reset").toggleClass("k-rtl",!!o.isRtl).css({position:T}).appendTo(o.appendTo).attr("aria-hidden",!0).on("mouseenter"+U,function(){i._hovered=!0}).on("wheel"+U,function(t){var o=e(this).find(".k-list").parent();(0===o.scrollTop()&&t.originalEvent.deltaY<0||o.scrollTop()===o.prop("scrollHeight")-o.prop("offsetHeight")&&t.originalEvent.deltaY>0)&&t.preventDefault()}).on("mouseleave"+U,function(){i._hovered=!1}),i.wrapper=e(),o.animation===!1&&(o.animation={open:{effects:{}},close:{hide:!0,effects:{}}}),M(o.animation.open,{complete:function(){i.wrapper.css({overflow:I}),i._activated=!0,i._trigger(v)}}),M(o.animation.close,{complete:function(){i._animationClose()}}),i._mousedownProxy=function(e){i._mousedown(e)},i._resizeProxy=c.mobileOS.android?function(e){setTimeout(function(){i._resize(e)},600)}:function(e){i._resize(e)},o.toggleTarget&&e(o.toggleTarget).on(o.toggleEvent+U,e.proxy(i.toggle,i))},events:[m,v,g,w],options:{name:"Popup",toggleEvent:"click",origin:x+" "+b,position:k+" "+b,anchor:C,appendTo:null,collision:"flip fit",viewport:window,copyAnchorStyles:!0,autosize:!1,modal:!1,adjustSize:{width:0,height:0},animation:{open:{effects:"slideIn:down",transition:!0,duration:200},close:{duration:100,hide:!0}}},_animationClose:function(){var e=this,t=e.wrapper.data(S);e.wrapper.hide(),t&&e.wrapper.css(t),e.options.anchor!=C&&e._hideDirClass(),e._closing=!1,e._trigger(w)},destroy:function(){var t,o=this,n=o.options,i=o.element.off(U);d.fn.destroy.call(o),n.toggleTarget&&e(n.toggleTarget).off(U),n.modal||(F.unbind(o.downEvent,o._mousedownProxy),o._toggleResize(!1)),a.destroy(o.element.children()),i.removeData(),n.appendTo[0]===document.body&&(t=i.parent(".k-animation-container"),t[0]?t.remove():i.remove())},open:function(t,o){var n,i,s=this,r={isFixed:!isNaN(parseInt(o,10)),x:t,y:o},l=s.element,d=s.options,p=e(d.anchor),f=l[0]&&l.hasClass("km-widget");if(!s.visible()){if(d.copyAnchorStyles&&(f&&"font-size"==Y[0]&&Y.shift(),l.css(a.getComputedStyles(p[0],Y))),l.data("animating")||s._trigger(m))return;s._activated=!1,d.modal||(F.unbind(s.downEvent,s._mousedownProxy).bind(s.downEvent,s._mousedownProxy),s._toggleResize(!1),s._toggleResize(!0)),s.wrapper=i=a.wrap(l,d.autosize).css({overflow:z,display:"block",position:T}).attr("aria-hidden",!1),c.mobileOS.android&&i.css(K,"translatez(0)"),i.css(E),e(d.appendTo)[0]==document.body&&i.css(k,"-10000px"),s.flipped=s._position(r),n=s._openAnimation(),d.anchor!=C&&s._showDirClass(n),l.data(P,n.effects).kendoStop(!0).kendoAnimate(n).attr("aria-hidden",!1)}},_location:function(t){var o,n,i=this,s=i.element,r=i.options,l=e(r.anchor),d=s[0]&&s.hasClass("km-widget");return r.copyAnchorStyles&&(d&&"font-size"==Y[0]&&Y.shift(),s.css(a.getComputedStyles(l[0],Y))),i.wrapper=o=a.wrap(s,r.autosize).css({overflow:z,display:"block",position:T}),c.mobileOS.android&&o.css(K,"translatez(0)"),o.css(E),e(r.appendTo)[0]==document.body&&o.css(k,"-10000px"),i._position(t||{}),n=o.offset(),{width:a._outerWidth(o),height:a._outerHeight(o),left:n.left,top:n.top}},_openAnimation:function(){var e=M(!0,{},this.options.animation.open);return e.effects=a.parseEffects(e.effects,this.flipped),e},_hideDirClass:function(){var t=e(this.options.anchor),o=((t.attr("class")||"").match(D)||["","down"])[1],n=A+"-"+o;t.removeClass(n).children(O).removeClass(R).removeClass(n),this.element.removeClass(A+"-"+a.directions[o].reverse)},_showDirClass:function(t){var o=t.effects.slideIn?t.effects.slideIn.direction:"down",n=A+"-"+o;e(this.options.anchor).addClass(n).children(O).addClass(R).addClass(n),this.element.addClass(A+"-"+a.directions[o].reverse)},position:function(){this.visible()&&(this.flipped=this._position())},toggle:function(){var e=this;e[e.visible()?g:m]()},visible:function(){return this.element.is(":"+I)},close:function(o){var n,i,s,r,l=this,d=l.options;if(l.visible()){if(n=l.wrapper[0]?l.wrapper:a.wrap(l.element).hide(),l._toggleResize(!1),l._closing||l._trigger(g))return l._toggleResize(!0),t;l.element.find(".k-popup").each(function(){var t=e(this),n=t.data("kendoPopup");n&&n.close(o)}),F.unbind(l.downEvent,l._mousedownProxy),o?i={hide:!0,effects:{}}:(i=M(!0,{},d.animation.close),s=l.element.data(P),r=i.effects,!r&&!a.size(r)&&s&&a.size(s)&&(i.effects=s,i.reverse=!0),l._closing=!0),l.element.kendoStop(!0).attr("aria-hidden",!0),n.css({overflow:z}).attr("aria-hidden",!0),l.element.kendoAnimate(i),o&&l._animationClose()}},_trigger:function(e){return this.trigger(e,{type:e})},_resize:function(e){var t=this;c.resize.indexOf(e.type)!==-1?(clearTimeout(t._resizeTimeout),t._resizeTimeout=setTimeout(function(){t._position(),t._resizeTimeout=null},50)):(!t._hovered||t._activated&&t.element.hasClass("k-list-container"))&&t.close()},_toggleResize:function(e){var t=e?"on":"off",o=c.resize;c.mobileOS.ios||c.mobileOS.android||(o+=" "+W),this._scrollableParents()[t](W,this._resizeProxy),N[t](o,this._resizeProxy)},_mousedown:function(t){var n=this,i=n.element[0],s=n.options,r=e(s.anchor)[0],l=s.toggleTarget,d=a.eventTarget(t),p=e(d).closest(".k-popup"),c=p.parent().parent(".km-shim").length;p=p[0],!c&&p&&p!==n.element[0]||"popover"!==e(t.target).closest("a").data("rel")&&(o(i,d)||o(r,d)||l&&o(e(l)[0],d)||n.close())},_fit:function(e,t,o){var n=0;return e+t>o&&(n=o-(e+t)),e<0&&(n=-e),n},_flip:function(e,t,o,n,i,s,r){var a=0;return r=r||t,s!==i&&s!==_&&i!==_&&(e+r>n&&(a+=-(o+t)),e+a<0&&(a+=o+t)),a},_scrollableParents:function(){return e(this.options.anchor).parentsUntil("body").filter(function(e,t){return a.isScrollable(t)})},_position:function(t){var o,n,i,s,r,l,d,p,m,g,w,v,_,b,y,k,x,z=this,C=z.element,I=z.wrapper,P=z.options,R=e(P.viewport),A=c.zoomLevel(),D=!!(R[0]==window&&window.innerWidth&&A<=1.02),O=e(P.anchor),H=P.origin.toLowerCase().split(" "),F=P.position.toLowerCase().split(" "),L=z.collisions,N=10002,W=0,j=document.documentElement;if(r=P.viewport===window?{top:window.pageYOffset||document.documentElement.scrollTop||0,left:window.pageXOffset||document.documentElement.scrollLeft||0}:R.offset(),D?(l=window.innerWidth,d=window.innerHeight):(l=R.width(),d=R.height()),D&&j.scrollHeight-j.clientHeight>0&&(p=P.isRtl?-1:1,l-=p*a.support.scrollbar()),o=O.parents().filter(I.siblings()),o[0])if(i=Math.max(+o.css("zIndex"),0))N=i+10;else for(n=O.parentsUntil(o),s=n.length;W=0&&e(o).is(":visible")&&!e(o).is(":disabled")});return this.element.is("[tabindex]")&&t.push(this.element[0]),t},_sortFocusableElements:function(e){var t,o;return n?t=e.sort(function(e,t){return e.tabIndex-t.tabIndex}):(o="__k_index",e.each(function(e,t){t.setAttribute(o,e)}),t=e.sort(function(e,t){return e.tabIndex===t.tabIndex?parseInt(e.getAttribute(o),10)-parseInt(t.getAttribute(o),10):e.tabIndex-t.tabIndex}),e.removeAttr(o)),t},_nextFocusable:function(e,t){var o=t.length,n=t.index(e.target);return t.get((n+(e.shiftKey?-1:1))%o)},_focus:function(e){e.focus(),"INPUT"==e.nodeName&&e.setSelectionRange&&this._haveSelectionRange(e)&&e.setSelectionRange(0,e.value.length)},_haveSelectionRange:function(e){var t=e.type.toLowerCase();return"text"===t||"search"===t||"url"===t||"tel"===t||"password"===t}}),l.Popup.TabKeyTrap=r}(window.kendo.jQuery),window.kendo},"function"==typeof define&&define.amd?define:function(e,t,o){(o||t)()});;!function(e,define){define("kendo.list.min",["kendo.data.min","kendo.popup.min"],e)}(function(){return function(e,t){function i(e,i){return e!==t&&""!==e&&null!==e&&("boolean"===i?e=!!e:"number"===i?e=+e:"string"===i&&(e=""+e)),e}function a(e){return e[e.length-1]}function n(e){var t=e.selectedIndex;return t>-1?e.options[t]:{}}function s(e,t){var i,a,n,s,r=t.length,l=e.length,o=[],u=[];if(l)for(n=0;n').attr({tabIndex:-1,"aria-hidden":!0}),n.list=e("
    ").append(n.ul).on("mousedown"+s,W(n._listMousedown,n)),a=t.attr(x),a&&(n.list.attr(x,a+"-list"),n.ul.attr(x,a+"_listbox")),n._header(),n._noData(),n._footer(),n._accessors(),n._initValue()},options:{valuePrimitive:!1,footerTemplate:"",headerTemplate:"",noDataTemplate:"No data found."},setOptions:function(e){_.fn.setOptions.call(this,e),e&&e.enable!==t&&(e.enabled=e.enable),this._header(),this._noData(),this._footer(),this._renderFooter(),this._renderNoData()},focus:function(){this._focused.focus()},readonly:function(e){this._editable({readonly:e===t||e,disable:!1})},enable:function(e){this._editable({readonly:!1,disable:!(e=e===t||e)})},_listOptions:function(t){var i=this,a=i.options,n=a.virtual,s=W(i._listBound,i);return n="object"==typeof n?n:{},t=e.extend({autoBind:!1,selectable:!0,dataSource:i.dataSource,click:W(i._click,i),change:W(i._listChange,i),activate:W(i._activateItem,i),deactivate:W(i._deactivateItem,i),dataBinding:function(){i.trigger("dataBinding")},dataBound:s,height:a.height,dataValueField:a.dataValueField,dataTextField:a.dataTextField,groupTemplate:a.groupTemplate,fixedGroupTemplate:a.fixedGroupTemplate,template:a.template},t,n),t.template||(t.template="#:"+c.expr(t.dataTextField,"data")+"#"),a.$angular&&(t.$angular=a.$angular),t},_initList:function(){var e=this,t=e._listOptions({selectedItemChange:W(e._listChange,e)});e.listView=e.options.virtual?new c.ui.VirtualList(e.ul,t):new c.ui.StaticList(e.ul,t),e.listView.bind("listBound",W(e._listBound,e)),e._setListValue()},_setListValue:function(e){e=e||this.options.value,e!==t&&this.listView.value(e).done(W(this._updateSelectionState,this))},_updateSelectionState:e.noop,_listMousedown:function(e){this.filterInput&&this.filterInput[0]===e.target||e.preventDefault()},_isFilterEnabled:function(){var e=this.options.filter;return e&&"none"!==e},_hideClear:function(){var e=this;e._clear&&this._clear.addClass(T)},_showClear:function(){var e=this;e._clear&&this._clear.removeClass(T)},_clearValue:function(){this._clearText(),this._accessor(""),this.listView.value([]),this._isFilterEnabled()&&!this.options.enforceMinLength&&this._filter({word:"",open:!1}),this._change()},_clearText:function(){this.text("")},_clearFilter:function(){this.options.virtual||this.listView.bound(!1),this._filterSource()},_filterSource:function(e,t){var i,a,n=this,s=n.options,o=n.dataSource,u=q({},o.filter()||{}),c=e||u.filters&&u.filters.length&&!e,d=l(u,s.dataTextField);(e||d)&&n.trigger("filtering",{filter:e})||(i={filters:[],logic:"and"},r(e)&&i.filters.push(e),r(u)&&(i.logic===u.logic?i.filters=i.filters.concat(u.filters):i.filters.push(u)),n._cascading&&this.listView.setDSFilter(i),a=q({},{page:c?1:o.page(),pageSize:c?o.options.pageSize:o.pageSize(),sort:o.sort(),filter:o.filter(),group:o.group(),aggregate:o.aggregate()},{filter:i}),o[t?"read":"query"](o._mergeState(a)))},_angularElement:function(e,t){e&&this.angular(t,function(){return{elements:e}})},_noData:function(){var i=e(this.noData),a=this.options.noDataTemplate;return this.angular("cleanup",function(){return{elements:i}}),c.destroy(i),i.remove(),a?(this.noData=e('').appendTo(this.list),this.noDataTemplate="function"!=typeof a?c.template(a):a,t):(this.noData=null,t)},_renderNoData:function(){var e=this.noData;e&&(this._angularElement(e,"cleanup"),e.children(":first").html(this.noDataTemplate({instance:this})),this._angularElement(e,"compile"))},_toggleNoData:function(t){e(this.noData).toggle(t)},_toggleHeader:function(e){var t=this.listView.content.prev(F);t.toggle(e)},_footer:function(){var i=e(this.footer),a=this.options.footerTemplate;return this._angularElement(i,"cleanup"),c.destroy(i),i.remove(),a?(this.footer=e('').appendTo(this.list),this.footerTemplate="function"!=typeof a?c.template(a):a,t):(this.footer=null,t)},_renderFooter:function(){var e=this.footer;e&&(this._angularElement(e,"cleanup"),e.html(this.footerTemplate({instance:this})),this._angularElement(e,"compile"))},_header:function(){var i,a=e(this.header),n=this.options.headerTemplate;return this._angularElement(a,"cleanup"),c.destroy(a),a.remove(),n?(i="function"!=typeof n?c.template(n):n,a=e(i({})),this.header=a[0]?a:null,this.list.prepend(a),this._angularElement(this.header,"compile"),t):(this.header=null,t)},_allowOpening:function(){return this.options.noDataTemplate||this.dataSource.flatView().length},_initValue:function(){var e=this,t=e.options.value;null!==t?e.element.val(t):(t=e._accessor(),e.options.value=t),e._old=t},_ignoreCase:function(){var e,t=this,i=t.dataSource.reader.model;i&&i.fields&&(e=i.fields[t.options.dataTextField],e&&e.type&&"string"!==e.type&&(t.options.ignoreCase=!1))},_focus:function(e){return this.listView.focus(e)},_filter:function(e){var t=this,i=t.options,a=i.ignoreCase,n=i.dataTextField,s={value:a?e.word.toLowerCase():e.word,field:n,operator:i.filter,ignoreCase:a};t._open=e.open,t._filterSource(s)},_clearButton:function(){this._clear||(this._clear=e('').attr({role:"button",tabIndex:-1})),this.options.clearButton||this._clear.remove()},search:function(e){var t=this.options;e="string"==typeof e?e:this._inputValue(),clearTimeout(this._typingTimeout),(!t.enforceMinLength&&!e.length||e.length>=t.minLength)&&(this._state="filter",this._isFilterEnabled()?this._filter({word:e,open:!0}):this._searchByWord(e))},current:function(e){return this._focus(e)},items:function(){return this.ul[0].children},destroy:function(){var e=this,t=e.ns;_.fn.destroy.call(e),e._unbindDataSource(),e.listView.destroy(),e.list.off(t),e.popup.destroy(),e._form&&e._form.off("reset",e._resetHandler)},dataItem:function(i){var a=this;if(i===t)return a.listView.selectedDataItems()[0];if("number"!=typeof i){if(a.options.virtual)return a.dataSource.getByUid(e(i).data("uid"));i=e(a.items()).index(i)}return a.dataSource.flatView()[i]},_activateItem:function(){var e=this.listView.focus();e&&this._focused.add(this.filterInput).attr("aria-activedescendant",e.attr("id"))},_deactivateItem:function(){this._focused.add(this.filterInput).removeAttr("aria-activedescendant")},_accessors:function(){var e=this,t=e.element,i=e.options,a=c.getter,n=t.attr(c.attr("text-field")),s=t.attr(c.attr("value-field"));!i.dataTextField&&n&&(i.dataTextField=n),!i.dataValueField&&s&&(i.dataValueField=s),e._text=a(i.dataTextField),e._value=a(i.dataValueField)},_aria:function(e){var i=this,a=i.options,n=i._focused.add(i.filterInput);a.suggest!==t&&n.attr("aria-autocomplete",a.suggest?"both":"list"),e=e?e+" "+i.ul[0].id:i.ul[0].id,n.attr("aria-owns",e),i.ul.attr("aria-live",i._isFilterEnabled()?"polite":"off"),i._ariaLabel()},_ariaLabel:function(){var t,i=this,a=i._focused,n=i.element,s=n.attr("id"),r=e('label[for="'+s+'"]'),l=n.attr("aria-label"),o=n.attr("aria-labelledby");a!==n&&(l?a.attr("aria-label",l):o?a.attr("aria-labelledby",o):r.length&&(t=r.attr("id")||i._generateLabelId(r,s),a.attr("aria-labelledby",t)))},_generateLabelId:function(e,t){var i=t+k;return e.attr("id",i),i},_blur:function(){var e=this;e._change(),e.close()},_change:function(){var e,a=this,n=a.selectedIndex,s=a.options.value,r=a.value();a._isSelect&&!a.listView.bound()&&s&&(r=s),r!==i(a._old,typeof r)?e=!0:n!==t&&n!==a._oldIndex&&(e=!0),e&&(a._old=r,a._oldIndex=n,a._typing||a.element.trigger(I),a.trigger(I)),a.typing=!1},_data:function(){return this.dataSource.view()},_enable:function(){var e=this,i=e.options,a=e.element.is("[disabled]");i.enable!==t&&(i.enabled=i.enable),!i.enabled||a?e.enable(!1):e.readonly(e.element.is("[readonly]"))},_dataValue:function(e){var i=this._value(e);return i===t&&(i=this._text(e)),i},_offsetHeight:function(){var t=0,i=this.listView.content.prevAll(":visible");return i.each(function(){var i=e(this);t+=f(i,!0)}),t},_height:function(i){var a,n,s,r=this,l=r.list,o=r.options.height,u=r.popup.visible();if(i||r.options.noDataTemplate){if(n=l.add(l.parent(".k-animation-container")).show(),!l.is(":visible"))return n.hide(),t;o=r.listView.content[0].scrollHeight>o?o:"auto",n.height(o),"auto"!==o&&(a=r._offsetHeight(),s=f(e(r.footer))||0,o=o-a-s),r.listView.content.height(o),u||n.hide()}return o},_adjustListWidth:function(){var e,t,i=this.list,a=i[0].style.width,n=this.wrapper;if(i.data(L)||!a)return e=window.getComputedStyle?window.getComputedStyle(n[0],null):0,t=parseFloat(e&&e.width)||h(n),e&&A.msie&&(t+=parseFloat(e.paddingLeft)+parseFloat(e.paddingRight)+parseFloat(e.borderLeftWidth)+parseFloat(e.borderRightWidth)),a="border-box"!==i.css("box-sizing")?t-(h(i)-i.width()):t,i.css({fontFamily:n.css("font-family"),width:this.options.autoWidth?"auto":a,minWidth:a}).data(L,a),!0},_openHandler:function(e){this._adjustListWidth(),this.trigger(V)?e.preventDefault():(this._focused.attr("aria-expanded",!0),this.ul.attr("aria-hidden",!1))},_closeHandler:function(e){this.trigger(D)?e.preventDefault():(this._focused.attr("aria-expanded",!1),this.ul.attr("aria-hidden",!0))},_focusItem:function(){var e=this.listView,i=!e.focus(),n=a(e.select());n===t&&this.options.highlightFirst&&i&&(n=0),n!==t?e.focus(n):i&&e.scrollToIndex(0)},_calculateGroupPadding:function(e){var t=this.ul.children(".k-first:first"),i=this.listView.content.prev(F),a=0;i[0]&&"none"!==i[0].style.display&&("auto"!==e&&(a=c.support.scrollbar()),a+=parseFloat(t.css("border-right-width"),10)+parseFloat(t.children(".k-group").css("padding-right"),10),i.css("padding-right",a))},_calculatePopupHeight:function(e){var t=this._height(this.dataSource.flatView().length||e);this._calculateGroupPadding(t)},_resizePopup:function(e){this.options.virtual||(this.popup.element.is(":visible")?this._calculatePopupHeight(e):this.popup.one("open",function(e){return W(function(){this._calculatePopupHeight(e)},this)}.call(this,e)))},_popup:function(){var e=this;e.popup=new d.Popup(e.list,q({},e.options.popup,{anchor:e.wrapper,open:W(e._openHandler,e),close:W(e._closeHandler,e),animation:e.options.animation,isRtl:g.isRtl(e.wrapper),autosize:e.options.autoWidth}))},_makeUnselectable:function(){N&&this.list.find("*").not(".k-textbox").attr("unselectable","on")},_toggleHover:function(t){e(t.currentTarget).toggleClass(w,"mouseenter"===t.type)},_toggle:function(e,i){var a=this,n=g.mobileOS&&(g.touch||g.MSPointers||g.pointers);e=e!==t?e:!a.popup.visible(),i||n||a._focused[0]===m()||(a._prevent=!0,a._focused.focus(),a._prevent=!1),a[e?V:D]()},_triggerCascade:function(){var e=this;e._cascadeTriggered&&e._old===e.value()&&e._oldIndex===e.selectedIndex||(e._cascadeTriggered=!0,e.trigger(C,{userTriggered:e._userTriggered}))},_triggerChange:function(){this._valueBeforeCascade!==this.value()&&this.trigger(I)},_unbindDataSource:function(){var e=this;e.dataSource.unbind(E,e._requestStartHandler).unbind(P,e._requestEndHandler).unbind("error",e._errorHandler)},requireValueMapper:function(e,t){var i=(e.value instanceof Array?e.value.length:e.value)||(t instanceof Array?t.length:t);if(i&&e.virtual&&"function"!=typeof e.virtual.valueMapper)throw Error("ValueMapper is not provided while the value is being set. See http://docs.telerik.com/kendo-ui/controls/editors/combobox/virtualization#the-valuemapper-function")}});q(M,{inArray:function(e,t){var i,a,n=t.children;if(!e||e.parentNode!==t)return-1;for(i=0,a=n.length;i"),i._customOption=n,a.append(n)),n.text(t),n[0].selected=!0},_hideBusy:function(){var e=this;clearTimeout(e._busy),e._arrowIcon.removeClass(y),e._focused.attr("aria-busy",!1),e._busy=null,e._showClear()},_showBusy:function(e){var t=this;e.isDefaultPrevented()||(t._request=!0,t._busy||(t._busy=setTimeout(function(){t._arrowIcon&&(t._focused.attr("aria-busy",!0),t._arrowIcon.addClass(y),t._hideClear())},100)))},_requestEnd:function(){this._request=!1,this._hideBusy()},_dataSource:function(){var t,i=this,a=i.element,n=i.options,s=n.dataSource||{};s=e.isArray(s)?{data:s}:s,i._isSelect&&(t=a[0].selectedIndex,t>-1&&(n.index=t),s.select=a,s.fields=[{field:n.dataTextField},{field:n.dataValueField}]),i.dataSource?i._unbindDataSource():(i._requestStartHandler=W(i._showBusy,i),i._requestEndHandler=W(i._requestEnd,i),i._errorHandler=W(i._hideBusy,i)),i.dataSource=c.data.DataSource.create(s).bind(E,i._requestStartHandler).bind(P,i._requestEndHandler).bind("error",i._errorHandler)},_firstItem:function(){this.listView.focusFirst()},_lastItem:function(){this.listView.focusLast()},_nextItem:function(){this.listView.focusNext()},_prevItem:function(){this.listView.focusPrev()},_move:function(e){var i,a,n,s,r,l,o=this,u=o.listView,c=e.keyCode,d=c===p.DOWN;if(c===p.UP||d){if(e.altKey)o.toggle(d);else{if(!u.bound())return o._fetch||(o.dataSource.one(I,function(){o._fetch=!1,o._move(e)}),o._fetch=!0,o._filterSource()),e.preventDefault(),!0;if(n=o._focus(),o._fetch||n&&!n.hasClass("k-state-selected")||(d?(o._nextItem(),o._focus()||o._lastItem()):(o._prevItem(),o._focus()||o._firstItem())),i=u.dataItemByIndex(u.getElementIndex(o._focus())),o.trigger(H,{dataItem:i,item:o._focus()}))return o._focus(n),t;o._select(o._focus(),!0).done(function(){o.popup.visible()||o._blur(),o._oldIndex=o.selectedIndex})}e.preventDefault(),a=!0}else if(c===p.ENTER||c===p.TAB){if(o.popup.visible()&&e.preventDefault(),n=o._focus(),i=o.dataItem(),o.popup.visible()||i&&o.text()===o._text(i)||(n=null),s=o.filterInput&&o.filterInput[0]===m(),n){if(i=u.dataItemByIndex(u.getElementIndex(n)),r=!0,i&&(r=o._value(i)!==M.unifyType(o.value(),typeof o._value(i))),r&&o.trigger(H,{dataItem:i,item:n}))return;o._select(n)}else o.input&&(o._accessor(o.input.val()),o.listView.value(o.input.val()));o._focusElement&&o._focusElement(o.wrapper),s&&c===p.TAB?o.wrapper.focusout():o._blur(),o.close(),a=!0}else c===p.ESC?(o.popup.visible()&&e.preventDefault(),o.close(),a=!0):!o.popup.visible()||c!==p.PAGEDOWN&&c!==p.PAGEUP||(e.preventDefault(),l=c===p.PAGEDOWN?1:-1,u.scrollWith(l*u.screenHeight()),a=!0);return a},_fetchData:function(){var e=this,t=!!e.dataSource.view().length;e._request||e.options.cascadeFrom||e.listView.bound()||e._fetch||t||(e._fetch=!0,e.dataSource.fetch().done(function(){e._fetch=!1}))},_options:function(e,i,a){var s,r,l,o,u=this,c=u.element,d=c[0],h=e.length,f="",_=0;for(i&&(f=i);_",f+=s;c.html(f),a!==t&&(d.value=a,d.value&&!a&&(d.selectedIndex=-1)),d.selectedIndex!==-1&&(s=n(d),s&&s.setAttribute(B,B))},_reset:function(){var t=this,i=t.element,a=i.attr("form"),n=a?e("#"+a):i.closest("form");n[0]&&(t._resetHandler=function(){setTimeout(function(){t.value(t._initial)})},t._form=n.on("reset",t._resetHandler))},_parentWidget:function(){var t,i,a=this.options.name;if(this.options.cascadeFrom)return t=e("#"+this.options.cascadeFrom),i=t.data("kendo"+a),i||(i=t.data("kendo"+U[a])),i},_cascade:function(){var e,t=this,i=t.options,a=i.cascadeFrom;if(a){if(e=t._parentWidget(),!e)return;t._cascadeHandlerProxy=W(t._cascadeHandler,t),t._cascadeFilterRequests=[],i.autoBind=!1,e.bind("set",function(){t.one("set",function(e){t._selectedValue=e.value||t._accessor()})}),e.first(C,t._cascadeHandlerProxy),e.listView.bound()?(t._toggleCascadeOnFocus(),t._cascadeSelect(e)):(e.one("dataBound",function(){t._toggleCascadeOnFocus()}),e.value()||t.enable(!1))}},_toggleCascadeOnFocus:function(){var e=this,t=e._parentWidget(),i=O?"blur":"focusout";t._focused.add(t.filterInput).bind("focus",function(){t.unbind(C,e._cascadeHandlerProxy),t.first(I,e._cascadeHandlerProxy)}),t._focused.add(t.filterInput).bind(i,function(){t.unbind(I,e._cascadeHandlerProxy),t.first(C,e._cascadeHandlerProxy)})},_cascadeHandler:function(e){var t=this._parentWidget(),i=this.value();this._userTriggered=e.userTriggered,this.listView.bound()&&this._clearSelection(t,!0),this._cascadeSelect(t,i)},_cascadeChange:function(e){var t=this,i=t._accessor()||t._selectedValue;t._cascadeFilterRequests.length||(t._selectedValue=null),t._userTriggered?t._clearSelection(e,!0):i?(i!==t.listView.value()[0]&&t.value(i),t.dataSource.view()[0]&&t.selectedIndex!==-1||t._clearSelection(e,!0)):t.dataSource.flatView().length&&t.select(t.options.index),t.enable(),t._triggerCascade(),t._triggerChange(),t._userTriggered=!1},_cascadeSelect:function(e,i){var a,n,s=this,r=e.dataItem(),o=r?e._value(r):null,u=s.options.cascadeFromField||e.options.dataValueField;s._valueBeforeCascade=i!==t?i:s.value(),o||0===o?(a=s.dataSource.filter()||{},l(a,u),n=function(){var t=s._cascadeFilterRequests.shift();t&&s.unbind("dataBound",t),t=s._cascadeFilterRequests[0],t&&s.first("dataBound",t),s._cascadeChange(e)},s._cascadeFilterRequests.push(n),1===s._cascadeFilterRequests.length&&s.first("dataBound",n),s._cascading=!0,s._filterSource({field:u,operator:"eq",value:o}),s._cascading=!1):(s.enable(!1),s._clearSelection(e),s._triggerCascade(),s._triggerChange(),s._userTriggered=!1)}}),o=".StaticList",u=c.ui.DataBoundWidget.extend({init:function(t,i){_.fn.init.call(this,t,i),this.element.attr("role","listbox").on("click"+o,"li",W(this._click,this)).on("mouseenter"+o,"li",function(){e(this).addClass(w)}).on("mouseleave"+o,"li",function(){e(this).removeClass(w)}),"multiple"===this.options.selectable&&this.element.attr("aria-multiselectable",!0),this.content=this.element.wrap("
    ").parent(),this.header=this.content.before('').prev(),this.bound(!1),this._optionID=c.guid(),this._selectedIndices=[],this._view=[],this._dataItems=[],this._values=[];var a=this.options.value;a&&(this._values=e.isArray(a)?a.slice(0):[a]),this._getter(),this._templates(),this.setDataSource(this.options.dataSource),this._onScroll=W(function(){var e=this;clearTimeout(e._scrollId),e._scrollId=setTimeout(function(){e._renderHeader()},50)},this)},options:{name:"StaticList",dataValueField:null,valuePrimitive:!1,selectable:!0,template:null,groupTemplate:null,fixedGroupTemplate:null},events:["click",I,"activate","deactivate","dataBinding","dataBound","selectedItemChange"],setDataSource:function(t){var i,a=this,n=t||{};n=e.isArray(n)?{data:n}:n,n=c.data.DataSource.create(n),a.dataSource?(a.dataSource.unbind(I,a._refreshHandler),i=a.value(),a.value([]),a.bound(!1),a.value(i)):a._refreshHandler=W(a.refresh,a),a.setDSFilter(n.filter()),a.dataSource=n.bind(I,a._refreshHandler),a._fixedHeader()},skip:function(){return this.dataSource.skip()},setOptions:function(e){_.fn.setOptions.call(this,e),this._getter(),this._templates(),this._render()},destroy:function(){this.element.off(o),this._refreshHandler&&this.dataSource.unbind(I,this._refreshHandler),clearTimeout(this._scrollId),_.fn.destroy.call(this)},dataItemByIndex:function(e){return this.dataSource.flatView()[e]},screenHeight:function(){return this.content[0].clientHeight},scrollToIndex:function(e){var t=this.element[0].children[e];t&&this.scroll(t)},scrollWith:function(e){this.content.scrollTop(this.content.scrollTop()+e)},scroll:function(e){if(e){e[0]&&(e=e[0]);var t=this.content[0],i=e.offsetTop,a=e.offsetHeight,n=t.scrollTop,s=t.clientHeight,r=i+a;n>i?n=i:r>n+s&&(n=r-s),t.scrollTop=n}},selectedDataItems:function(e){return e===t?this._dataItems.slice():(this._dataItems=e,this._values=this._getValues(e),t)},_getValues:function(t){var i=this._valueGetter;return e.map(t,function(e){return i(e)})},focusNext:function(){var e=this.focus();e=e?e.next():0,this.focus(e)},focusPrev:function(){var e=this.focus();e=e?e.prev():this.element[0].children.length-1,this.focus(e)},focusFirst:function(){this.focus(this.element[0].children[0])},focusLast:function(){this.focus(a(this.element[0].children))},focus:function(i){var n,s=this,r=s._optionID;return i===t?s._current:(i=a(s._get(i)),i=e(this.element[0].children[i]),s._current&&(s._current.removeClass(S).removeAttr(x),s.trigger("deactivate")),n=!!i[0],n&&(i.addClass(S),s.scroll(i),i.attr("id",r)),s._current=n?i:null,s.trigger("activate"),t)},focusIndex:function(){return this.focus()?this.focus().index():t},skipUpdate:function(e){this._skipUpdate=e},select:function(i){var n,s,r,l=this,o=l.options.selectable,u="multiple"!==o&&o!==!1,c=l._selectedIndices,d=[],h=[];return i===t?c.slice():(i=l._get(i),1===i.length&&i[0]===-1&&(i=[]),s=e.Deferred().resolve(),r=l.isFiltered(),r&&!u&&l._deselectFiltered(i)?s:u&&!r&&e.inArray(a(i),c)!==-1?(l._dataItems.length&&l._view.length&&(l._dataItems=[l._view[c[0]].item]),s):(n=l._deselect(i),h=n.removed,i=n.indices,i.length&&(u&&(i=[a(i)]),d=l._select(i)),(d.length||h.length)&&(l._valueComparer=null,l.trigger(I,{added:d,removed:h})),s))},removeAt:function(e){return this._selectedIndices.splice(e,1),this._values.splice(e,1),this._valueComparer=null,{position:e,dataItem:this._dataItems.splice(e,1)[0]}},setValue:function(t){t=e.isArray(t)||t instanceof b?t.slice(0):[t],this._values=t,this._valueComparer=null},value:function(i){var a,n=this,s=n._valueDeferred;return i===t?n._values.slice():(n.setValue(i),s&&"resolved"!==s.state()||(n._valueDeferred=s=e.Deferred()),n.bound()&&(a=n._valueIndices(n._values),"multiple"===n.options.selectable&&n.select(-1),n.select(a),s.resolve()),n._skipUpdate=!1,s)},items:function(){return this.element.children(".k-item")},_click:function(t){t.isDefaultPrevented()||this.trigger("click",{item:e(t.currentTarget)})||this.select(t.currentTarget)},_valueExpr:function(e,t){var a,n,s=this,r=0,l=[];if(!s._valueComparer||s._valueType!==e){for(s._valueType=e;r-1&&(r.push(this.removeAt(n)),e(s[a]).removeClass("k-state-selected"));return!!r.length&&(this.trigger(I,{added:[],removed:r}),!0)},_select:function(t){var i,n,s=this,r=s.element[0].children,l=s._view,o=[],u=0;for(a(t)!==-1&&s.focus(t);u'+i(e)+""}):i=c.template('
  • ${'+c.expr(t.dataTextField,"data")+"}
  • ",{useWithBlock:!1}),i},_templates:function(){var e,t,i=this.options,a={template:i.template,groupTemplate:i.groupTemplate,fixedGroupTemplate:i.fixedGroupTemplate};for(t in a)e=a[t],e&&"function"!=typeof e&&(a[t]=c.template(e));this.templates=a},_normalizeIndices:function(e){for(var i=[],a=0;aa||!r.nextSibling)break;r=r.nextSibling}else{if(r.offsetTop<=a||!r.previousSibling)break;r=r.previousSibling}return this._view[e(r).data("offset-index")]},_fixedHeader:function(){this.isGrouped()&&this.templates.fixedGroupTemplate?(this.header.show(),this.content.scroll(this._onScroll)):(this.header.hide(),this.content.off("scroll",this._onScroll))},_renderHeader:function(){var e,t=this.templates.fixedGroupTemplate;t&&(e=this._firstVisibleItem(),e&&this.header.html(t(e.group)))},_renderItem:function(e){var t='
  • ',t+=this.templates.template(i),a&&e.newGroup&&(t+='
    '+this.templates.groupTemplate(e.group)+"
    "),t+"
  • "},_render:function(){var e,t,i,a,n="",s=0,r=0,l=[],o=this.dataSource.view(),u=this.value(),c=this.isGrouped();if(c)for(s=0;s=t&&(e-=t),e}function s(e,t){for(var i=0;i0;e.popup.visible()||(e.listView.bound()&&e._state!==k?e._allowOpening()&&(e._open=!0,e.popup.one("activate",e._focusInputHandler),e.popup._hovered=!0,e.popup.open(),e._resizeFilterInput(),e._focusItem()):(e._open=!0,e._state="rebind",e.filterInput&&(e.filterInput.val(""),e._prev=""),e.filterInput&&1!==e.options.minLength&&!t?(e.refresh(),e.popup.one("activate",e._focusInputHandler),e.popup.open(),e._resizeFilterInput()):e._filterSource()))},_focusInput:function(){this._focusElement(this.filterInput)},_resizeFilterInput:function(){var e,t,i=this.filterInput,n=this._prevent;i&&(e=this.filterInput[0]===u(),t=o.caret(this.filterInput[0])[0],this._prevent=!0,i.css("display","none").css("width",this.popup.element.css("width")).css("display","inline-block"),e&&(i.focus(),o.caret(i[0],t)),this._prevent=n)},_allowOpening:function(){return this.hasOptionLabel()||this.filterInput||r.fn._allowOpening.call(this)},toggle:function(e){this._toggle(e,!0)},current:function(e){var i;return e===t?(i=this.listView.focus(),!i&&0===this.selectedIndex&&this.hasOptionLabel()?this.optionLabel:i):(this._focus(e),t)},dataItem:function(i){var n=this,s=null;if(null===i)return i;if(i===t)s=n.listView.selectedDataItems()[0];else{if("number"!=typeof i){if(n.options.virtual)return n.dataSource.getByUid(e(i).data("uid"));i=i.hasClass("k-list-optionlabel")?-1:e(n.items()).index(i)}else n.hasOptionLabel()&&(i-=1);s=n.dataSource.flatView()[i]}return s||(s=n._optionLabelDataItem()),s},refresh:function(){this.listView.refresh()},text:function(e){var i,n=this,s=n.options.ignoreCase;return e=null===e?"":e,e===t?n._textAccessor():"string"!=typeof e?(n._textAccessor(e),t):(i=s?e.toLowerCase():e,n._select(function(e){return e=n._text(e),s&&(e=(e+"").toLowerCase()),e===i}).done(function(){n._textAccessor(n.dataItem()||e)}),t)},_clearFilter:function(){e(this.filterInput).val(""),r.fn._clearFilter.call(this)},value:function(e){var i=this,n=i.listView,s=i.dataSource;return e===t?(e=i._accessor()||i.listView.value()[0],e===t||null===e?"":e):(i.requireValueMapper(i.options,e),!e&&i.hasOptionLabel()||(i._initialIndex=null),this.trigger("set",{value:e}),i._request&&i.options.cascadeFrom&&i.listView.bound()?(i._valueSetter&&s.unbind(m,i._valueSetter),i._valueSetter=T(function(){i.value(e)},i),s.one(m,i._valueSetter),t):(i._isFilterEnabled()&&n.bound()&&n.isFiltered()?i._clearFilter():i._fetchData(),n.value(e).done(function(){i._old=i._accessor(),i._oldIndex=i.selectedIndex}),t))},hasOptionLabel:function(){return this.optionLabel&&!!this.optionLabel[0]},_optionLabel:function(){var i=this,n=i.options,s=n.optionLabel,a=n.optionLabelTemplate;return s?(a||(a="#:",a+="string"==typeof s?"data":o.expr(n.dataTextField,"data"),a+="#"),"function"!=typeof a&&(a=o.template(a)),i.optionLabelTemplate=a,i.hasOptionLabel()||(i.optionLabel=e('
    ').prependTo(i.list)),i.optionLabel.html(a(s)).off().click(T(i._click,i)).on(I,i._toggleHover),i.angular("compile",function(){return{elements:i.optionLabel,data:[{dataItem:i._optionLabelDataItem()}]}}),t):(i.optionLabel.off().remove(),i.optionLabel=e(),t)},_optionLabelText:function(){var e=this.options.optionLabel;return"string"==typeof e?e:this._text(e)},_optionLabelDataItem:function(){var i=this,n=i.options.optionLabel;return i.hasOptionLabel()?e.isPlainObject(n)?new c(n):i._assignInstance(i._optionLabelText(),""):t},_buildOptions:function(e){var i,n,s,o=this;o._isSelect&&(i=o.listView.value()[0],n=o._optionLabelDataItem(),s=n&&o._value(n),i!==t&&null!==i||(i=""),n&&(s!==t&&null!==s||(s=""),n='"),o._options(e,n,i),i!==l.unifyType(o._accessor(),typeof i)&&(o._customOption=null,o._custom(i)))},_listBound:function(){var e,t=this,i=t._initialIndex,n=t._state===L,s=t.dataSource.flatView();t._presetValue=!1,t._renderFooter(),t._renderNoData(),t._toggleNoData(!s.length),t._resizePopup(!0),t.popup.position(),t._buildOptions(s),t._makeUnselectable(),n||(t._open&&t.toggle(t._allowOpening()),t._open=!1,t._fetch||(s.length?(!t.listView.value().length&&i>-1&&null!==i&&t.select(i),t._initialIndex=null,e=t.listView.selectedDataItems()[0],e&&t.text()!==t._text(e)&&t._selectValue(e)):t._textAccessor()!==t._optionLabelText()&&(t.listView.value(""),t._selectValue(null),t._oldIndex=t.selectedIndex))),t._hideBusy(),t.trigger("dataBound")},_listChange:function(){this._selectValue(this.listView.selectedDataItems()[0]),(this._presetValue||this._old&&this._oldIndex===-1)&&(this._oldIndex=this.selectedIndex)},_filterPaste:function(){this._search()},_focusHandler:function(){this.wrapper.focus()},_focusinHandler:function(){this._inputWrapper.addClass(b),this._prevent=!1},_focusoutHandler:function(){var e=this,t=window.self!==window.top;e._prevent||(clearTimeout(e._typingTimeout),p.mobileOS.ios&&t?e._change():e._blur(),e._inputWrapper.removeClass(b),e._prevent=!0,e._open=!1,e.element.blur())},_wrapperMousedown:function(){this._prevent=!!this.filterInput},_wrapperClick:function(e){e.preventDefault(),this.popup.unbind("activate",this._focusInputHandler),this._focused=this.wrapper,this._prevent=!1,this._toggle()},_editable:function(e){var t=this,i=t.element,n=e.disable,s=e.readonly,o=t.wrapper.add(t.filterInput).off(_),a=t._inputWrapper.off(I);s||n?n?(o.removeAttr(x),a.addClass(w).removeClass(v)):(a.addClass(v).removeClass(w),o.on("focusin"+_,T(t._focusinHandler,t)).on("focusout"+_,T(t._focusoutHandler,t))):(i.removeAttr(f).removeAttr(h),a.addClass(v).removeClass(w).on(I,t._toggleHover),o.attr(x,o.data(x)).attr(g,!1).on("keydown"+_,T(t._keydown,t)).on("focusin"+_,T(t._focusinHandler,t)).on("focusout"+_,T(t._focusoutHandler,t)).on("mousedown"+_,T(t._wrapperMousedown,t)).on("paste"+_,T(t._filterPaste,t)),t.wrapper.on("click"+_,T(t._wrapperClick,t)),t.filterInput||o.on("keypress"+_,T(t._keypress,t))),i.attr(f,n).attr(h,s),o.attr(g,n)},_keydown:function(e){var i,n,s,o=this,a=e.keyCode,l=e.altKey,r=o.popup.visible();if(o.filterInput&&(i=o.filterInput[0]===u()),a===d.LEFT?(a=d.UP,n=!0):a===d.RIGHT&&(a=d.DOWN,n=!0),!n||!i){if(e.keyCode=a,(l&&a===d.UP||a===d.ESC)&&o._focusElement(o.wrapper),o._state===L&&a===d.ESC&&(o._clearFilter(),o._open=!1,o._state=k),a===d.ENTER&&o._typingTimeout&&o.filterInput&&r)return e.preventDefault(),t;if(a!==d.SPACEBAR||i||(o.toggle(!r),e.preventDefault()),n=o._move(e),!n){if((!r||!o.filterInput)&&(s=o._focus(),a===d.HOME?(n=!0,o._firstItem()):a===d.END&&(n=!0,o._lastItem()),n)){if(o.trigger("select",{dataItem:o._getElementDataItem(o._focus()),item:o._focus()}))return o._focus(s),t;o._select(o._focus(),!0).done(function(){r||o._blur()}),e.preventDefault()}l||n||!o.filterInput||o._search()}}},_matchText:function(e,i){var n=this.options.ignoreCase;return e!==t&&null!==e&&(e+="",n&&(e=e.toLowerCase()),0===e.indexOf(i))},_shuffleData:function(e,t){var i=this._optionLabelDataItem();return i&&(e=[i].concat(e)),e.slice(t).concat(e.slice(0,t))},_selectNext:function(){var e,t,i,o=this,a=o.dataSource.flatView(),l=a.length+(o.hasOptionLabel()?1:0),r=s(o._word,o._last),p=o.selectedIndex;for(p===-1?p=0:(p+=r?1:0,p=n(p,l)),a=a.toJSON?a.toJSON():a.slice(),a=o._shuffleData(a,p),i=0;i-1&&(t-=1):a.hasClass("k-list-optionlabel")&&(t=-1)),o){for(i=this.dataSource.flatView(),s=0;s',this.filterInput=e('').attr({placeholder:this.element.attr("placeholder"),title:this.element.attr("title"),role:"listbox","aria-haspopup":!0,"aria-expanded":!1}),this.list.prepend(e('').append(this.filterInput.add(t))))},_span:function(){var t,i=this,n=i.wrapper,s="span.k-input";t=n.find(s),t[0]||(n.append(' ').append(i.element),t=n.find(s)),i.span=t,i._inputWrapper=e(n[0].firstChild),i._arrow=n.find(".k-select"),i._arrowIcon=i._arrow.find(".k-icon")},_wrapper:function(){var e,t=this,i=t.element,n=i[0];e=i.parent(),e.is("span.k-widget")||(e=i.wrap("").parent(),e[0].style.cssText=n.style.cssText,e[0].title=n.title),t._focused=t.wrapper=e.addClass("k-widget k-dropdown k-header").addClass(n.className).css("display","").attr({accesskey:i.attr("accesskey"),unselectable:"on",role:"listbox","aria-haspopup":!0,"aria-expanded":!1}),i.hide().removeAttr("accesskey")},_clearSelection:function(e){this.select(e.value()?0:-1)},_inputTemplate:function(){var t=this,i=t.options.valueTemplate;if(i=i?o.template(i):e.proxy(o.template("#:this._text(data)#",{useWithBlock:!1}),t),t.valueTemplate=i,t.hasOptionLabel()&&!t.options.optionLabelTemplate)try{t.valueTemplate(t._optionLabelDataItem())}catch(n){throw Error(y)}},_textAccessor:function(i){var n,s=null,o=this.valueTemplate,a=this._optionLabelText(),l=this.span;if(i===t)return l.text();e.isPlainObject(i)||i instanceof c?s=i:a&&a===i&&(s=this.options.optionLabel),s||(s=this._assignInstance(i,this._accessor())),this.hasOptionLabel()&&(s!==a&&this._text(s)!==a||(o=this.optionLabelTemplate,"string"!=typeof this.options.optionLabel||this.options.optionLabelTemplate||(s=a))),n=function(){return{elements:l.get(),data:[{dataItem:s}]}},this.angular("cleanup",n);try{l.html(o(s))}catch(r){l.html("")}this.angular("compile",n)},_preselect:function(e,t){e||t||(t=this._optionLabelText()),this._accessor(e),this._textAccessor(t),this._old=this._accessor(),this._oldIndex=this.selectedIndex,this.listView.setValue(e),this._initialIndex=null,this._presetValue=!0},_assignInstance:function(e,t){var n=this.options.dataTextField,s={};return n?(i(s,n.split("."),e),i(s,this.options.dataValueField.split("."),t),s=new c(s)):s=e,s}});a.plugin(V)}(window.kendo.jQuery),window.kendo},"function"==typeof define&&define.amd?define:function(e,t,i){(i||t)()});;!function(e,define){define("kendo.upload.min",["kendo.core.min"],e)}(function(){return function(e,t){function a(t){return e.map(n(t),function(e){return e.name}).join(", ")}function n(e){var t=e[0];return t.files?i(t.files):[{name:s(t.value),extension:r(t.value),size:null}]}function i(t){return e.map(t,function(e){return o(e)})}function o(e){var t=e.name||e.fileName;return{name:U.htmlEncode(t),extension:r(t),size:"number"==typeof e.size?e.size:e.fileSize,rawFile:e}}function r(e){var t=e.match(x);return t?t[0]:""}function s(e){var t=e.lastIndexOf("\\");return t!=-1?e.substr(t+1):e}function l(t,a){var n=U.guid();return e.map(t,function(e){return e.uid=a?U.guid():n,e})}function p(e,t){var a,n=d(t.allowedExtensions),i=t.maxFileSize,o=t.minFileSize;for(a=0;a0&&a.indexOf(t.extension.toLowerCase())<0&&(t.validationErrors=t.validationErrors||[],e.inArray(j,t.validationErrors)===-1&&t.validationErrors.push(j))}function c(t,a,n){0!==a&&t.sizen&&(t.validationErrors=t.validationErrors||[],e.inArray(O,t.validationErrors)===-1&&t.validationErrors.push(O))}function f(e){var t,a=0;if("number"!=typeof e[0].size)return"";for(t=0;t1}function m(a,n,i,o){var r,s;return n._supportsRemove()?(r=a.data("fileNames"),s=e.map(r,function(e){return e.name}),o===!1?(n._removeFileEntry(a),t):(n._submitRemove(s,i,function(e,t,i){var o=n.trigger(R,{operation:"remove",files:r,response:e,XMLHttpRequest:i});o||n._removeFileEntry(a)},function(e){h(n)&&n._removeFileEntry(a),n.trigger(I,{operation:"remove",files:r,XMLHttpRequest:e}),z("Server response: "+e.responseText)}),t)):(!h(n)&&o||n._removeFileEntry(a),t)}function k(t,a,n){var i=!1,o="";try{o=e.parseJSON(v(t)),i=!0}catch(r){n()}i&&a(o)}function v(e){return t!==e&&""!==e||(e="{}"),e}function g(e){e.stopPropagation(),e.preventDefault()}function _(e,t,a,n){var i,o;e.on("dragenter"+t,function(e){a(e),o=new Date,i||(i=setInterval(function(){var e=new Date-o;e>100&&(n(),clearInterval(i),i=null)},100))}).on("dragover"+t,function(){o=new Date})}function y(e){return e.is(".k-file-progress, .k-file-success, .k-file-error")}function F(t){return e(t.target).closest(".k-file")}var w,C,U=window.kendo,S=U.ui.Widget,b=U.antiForgeryTokens,z=U.logToConsole,x=/\.([^\.]+)$/,E=".kendoUpload",D="select",A="upload",R="success",I="error",P="complete",T="cancel",N="clear",B="pause",H="resume",q="progress",M="remove",L="validationErrors",O="invalidMaxFileSize",V="invalidMinFileSize",j="invalidFileExtension",X=1e3,Z=2e3,W={loading:"k-i-loading",warning:"k-i-warning",success:"k-i-check"},K=S.extend({init:function(t,a){var n,i,o,r=this;S.fn.init.call(r,t,a),r.name=t.name,r.multiple=r.options.multiple,r.directory=r.options.directory,r.localization=r.options.localization,n=r.element,r.wrapper=n.closest(".k-upload"),0===r.wrapper.length&&(r.wrapper=r._wrapInput(n)),r._activeInput(n),r.toggle(r.options.enabled),i=r._ns=E+"-"+U.guid(),n.closest("form").on("submit"+i,e.proxy(r._onParentFormSubmit,r)).on("reset"+i,e.proxy(r._onParentFormReset,r)),r.options.async.saveUrl?(r._module=r._supportsFormData()?new C(r):new w(r),r._async=!0,o=r.options.files,o.length>0&&r._renderInitialFiles(o)):r._module=new G(r),r._supportsDrop()&&(""!==r.options.dropZone?r._setupCustomDropZone():r._setupDropZone()),r.wrapper.on("click",".k-upload-action",e.proxy(r._onFileAction,r)).on("click",".k-clear-selected",e.proxy(r._onClearSelected,r)).on("click",".k-upload-selected",e.proxy(r._onUploadSelected,r)),r.element.val()&&r._onInputChange({target:r.element})},events:[D,A,R,I,P,T,N,q,M,B,H],options:{name:"Upload",enabled:!0,multiple:!0,directory:!1,showFileList:!0,template:"",files:[],async:{autoRetryAfter:0,bufferChunkSize:1e7,maxAutoRetries:1,removeVerb:"POST",autoUpload:!0,withCredentials:!0,accept:"*/*; q=0.5, application/json",useArrayBuffer:!1},localization:{select:"Select files...",cancel:"Cancel",retry:"Retry",remove:"Remove",pause:"Pause",resume:"Resume",clearSelectedFiles:"Clear",uploadSelectedFiles:"Upload",dropFilesHere:"Drop files here to upload",invalidFiles:"Invalid file(s). Please check file upload requirements.",statusUploading:"uploading",statusUploaded:"uploaded",statusWarning:"warning",statusFailed:"failed",headerStatusUploading:"Uploading...",headerStatusPaused:"Paused",headerStatusUploaded:"Done",invalidMaxFileSize:"File size too large.",invalidMinFileSize:"File size too small.",invalidFileExtension:"File type not allowed."},validation:{allowedExtensions:[],maxFileSize:0,minFileSize:0},dropZone:""},setOptions:function(e){var t=this,a=t.element;S.fn.setOptions.call(t,e),t.multiple=t.options.multiple,t.directory=t.options.directory,a.attr("multiple",!!t._supportsMultiple()&&t.multiple),t.directory&&(a.attr("webkitdirectory",t.directory),a.attr("directory",t.directory)),t.toggle(t.options.enabled)},enable:function(e){e=t===e||e,this.toggle(e)},disable:function(){this.toggle(!1)},toggle:function(e){e=t===e?e:!e,this.wrapper.toggleClass("k-state-disabled",e),this.element.prop("disabled",e)},focus:function(){this.element.focus()},destroy:function(){var t=this,a=e(t.options.dropZone);e(document).add(e(".k-dropzone",t.wrapper)).add(t.wrapper.closest("form")).off(t._ns),a.length>0&&a.off(t._ns),e(t.element).off(E),S.fn.destroy.call(t)},pause:function(t){this._module.onPause({target:e(t,this.wrapper)});var a=t.find(".k-i-pause-sm");a.removeClass("k-i-pause-sm").addClass("k-i-play-sm").attr("title",this.localization.resume),e(a).parent().attr("aria-label",this.localization.resume)},resume:function(t){this._module.onResume({target:e(t,this.wrapper)});var a=t.find(".k-i-play-sm");a.removeClass("k-i-play-sm").addClass("k-i-pause-sm").attr("title",this.localization.pause),e(a).parent().attr("aria-label",this.localization.pause)},upload:function(){var e=this;e._module.onSaveSelected()},getFiles:function(){var t,a,n,i=this,o=[],r=i.wrapper.find(".k-file");for(a=0;a0&&i._removeFileByDomElement(n,a))},clearFile:function(e){this._removeFile(e,!1)},removeFile:function(e){this._removeFile(e,!0)},_removeFile:function(t,a){var n,i=this,o=i.wrapper.find(".k-file");"function"==typeof t&&o.each(function(o,r){n=e(r).data("fileNames"),t(n)&&i._removeFileByDomElement(r,a)})},_removeFileByDomElement:function(t,a){var n,i=this,o={target:e(t,i.wrapper)};i.options.async.saveUrl?(e(t).hasClass("k-file-progress")?i._module.onCancel(o):i._module.onRemove(o,{},a),n=e(".k-file",i.wrapper),0===n.length?i._hideHeaderUploadstatus():i._updateHeaderUploadStatus()):i._module.onRemove(o,{},a)},_addInput:function(t){if(t[0].nodeType){var a=this,n=t.clone().val("");n.insertAfter(a.element).data("kendoUpload",a),e(a.element).hide().attr("tabindex","-1").removeAttr("id").off(E),a._activeInput(n),a.element.focus()}},_activeInput:function(t){var a=this,n=a.wrapper;a.element=t,a.directory&&(t.attr("webkitdirectory",a.directory),t.attr("directory",a.directory)),t.attr("multiple",!!a._supportsMultiple()&&a.multiple).attr("autocomplete","off").on("click"+E,function(e){n.hasClass("k-state-disabled")&&e.preventDefault()}).on("focus"+E,function(){e(this).parent().addClass("k-state-focused")}).on("blur"+E,function(){e(this).parent().removeClass("k-state-focused")}).on("change"+E,e.proxy(a._onInputChange,a)).on("keydown"+E,e.proxy(a._onInputKeyDown,a))},_onInputKeyDown:function(e){var t=this,a=t.wrapper.find(".k-upload-action:visible:first");e.keyCode===U.keys.TAB&&a.length>0&&!e.shiftKey&&(e.preventDefault(),a.focus())},_onInputChange:function(t){var a,n=this,i=e(t.target),o=l(n._inputFiles(i),n._isAsyncNonBatch());p(o,n.options.validation),a=n.trigger(D,{files:o}),a?(n._addInput(i),i.remove()):n._module.onSelect({target:i},o)},_readDirectory:function(t){var a=new e.Deferred,n=t.createReader(),i=[],o=function(){n.readEntries(function(e){e.length?(i=i.concat(e),o()):a.resolve(i)},a.reject)};return o(),a.promise()},_readFile:function(e){var t=this,a=e.fullPath;e.file(function(e){e.relativePath=a.slice(1),t.droppedFolderFiles.push(e),t.droppedFolderCounter--,0===t.droppedFolderCounter&&setTimeout(function(){0===t.droppedFolderCounter&&t.droppedFolderFiles.length&&(t._proceedDroppedItems(t.droppedFolderFiles),t.droppedFolderFiles=[])},0)},function(){z("File error.")})},_traverseFileTree:function(e,t){var a=this;t||a.droppedFolderCounter--,this._readDirectory(e).then(function(e){a.droppedFolderCounter+=e.length;for(var t=0;t0&&!n.wrapper.hasClass("k-state-disabled")&&(!n.multiple&&o.length>1&&o.splice(1,o.length-1),p(o,n.options.validation),a=n.trigger(D,{files:o}),a||n._module.onSelect({target:e(".k-dropzone",n.wrapper)},o))},_filesContainValidationErrors:function(t){var a=!1;return e(t).each(function(e,t){if(t[L]&&t[L].length>0)return a=!0,!1}),a},_isAsyncNonBatch:function(){return this._async&&!this.options.async.batch||!1},_renderInitialFiles:function(e){var t,a,n=this,i=0;for(e=l(e,!0),i=0;i0?"
  • !"+n.name+""+a.localization[o[0]]+"":"
  • "+n.extension.substring(1)+""+n.name+""+i+"",r+="",e(r)},_prepareDefaultMultipleFileEntriesTemplate:function(t){var a,n,i=this,o=t.fileNames,r=i._filesContainValidationErrors(o),s=f(o),l="";for(l+=r?"
  • !":"
  • ",l+="",o.sort(function(e,t){return e[L]?-1:t[L]?1:0}),l+="",a=0;a0?""+n.name+"":""+n.name+"";return l+=r?""+i.localization.invalidFiles+"":"Total: "+o.length+" files, "+s+"",l+="",e(l)},_enqueueFile:function(t,a){var n,i,o,r,s=this,l=a.fileNames[0].uid,p=e(".k-upload-files",s.wrapper),d=s.options,u=d.template;return 0===p.length&&(p=e("
      ").appendTo(s.wrapper),s.options.showFileList||p.hide(),s.wrapper.removeClass("k-upload-empty")),n=e(".k-file",p),u?(o=s._prepareTemplateData(t,a),u=U.template(u),i=e("
    • "+u(o)+"
    • "),i.find(".k-upload-action").addClass("k-button"),s.angular("compile",function(){return{elements:i,data:[o]}})):i=1===a.fileNames.length?s._prepareDefaultSingleFileEntryTemplate(a):s._prepareDefaultMultipleFileEntriesTemplate(a),i.attr(U.attr("uid"),l).appendTo(p).data(a),s._async||e(".k-progress",i).width("100%"),!s.multiple&&n.length>0&&(r={files:n.data("fileNames"),headers:{}},s.trigger(M,r)||s._module.onRemove({target:e(n,s.wrapper)},r)),i},_removeFileEntry:function(t){var a,n,i,o=this,r=t.closest(".k-upload-files");t.remove(),a=e(".k-file",r),n=e(".k-file-success, .k-file-error",r),i=e(".k-file-invalid",r),n.length!==a.length&&i.length!==a.length||this._hideUploadButton(),0===a.length?(r.remove(),o.wrapper.addClass("k-upload-empty"),o._hideHeaderUploadstatus()):o._updateHeaderUploadStatus()},_fileAction:function(e,t,a){var n,i={remove:"k-i-x",cancel:"k-i-cancel",retry:"k-i-retry",pause:"k-i-pause-sm"},o={remove:"k-i-close",cancel:"k-i-close",retry:"k-i-reload-sm",pause:"k-i-pause-sm"};i.hasOwnProperty(t)&&(a||this._clearFileAction(e),this.options.template?(n=e.find(".k-upload-action").first(),n.find(".k-icon").length?n.next(".k-upload-action").length&&n.next(".k-upload-action").addClass("k-button").append("").show():n.addClass("k-button").append("").show()):(a||e.find(".k-upload-status .k-upload-action").remove(),e.find(".k-upload-status").append(this._renderAction(i[t],this.localization[t],o[t]))))},_fileState:function(t,a){var n=this.localization,i={uploading:{text:n.statusUploading},uploaded:{text:n.statusUploaded},failed:{text:n.statusFailed}},o=i[a];o&&e("span.k-file-state",t).text(o.text)},_renderAction:function(t,a,n){return""!==t?e("").on("focus",function(){e(this).addClass("k-state-focused")}).on("blur",function(){e(this).removeClass("k-state-focused")}):e("")},_clearFileAction:function(t){e(".k-upload-action",t).empty().hide()},_onFileAction:function(t){var a,n,i,o,r,s,l=this;return l.wrapper.hasClass("k-state-disabled")||(a=e(t.target).closest(".k-upload-action"),n=a.find(".k-icon"),i=a.closest(".k-file"),o=i.data("fileNames"),r=l._filesContainValidationErrors(o),s={files:o,headers:{}},l._retryClicked=!1,n.hasClass("k-i-x")?l.trigger(M,s)||l._module.onRemove({target:e(i,l.wrapper)},s,!r):n.hasClass("k-i-cancel")?(l.trigger(T,s),l._module.onCancel({target:e(i,l.wrapper)}),l._checkAllComplete(),l._updateHeaderUploadStatus()):n.hasClass("k-i-pause-sm")?(l.trigger(B,s),l.pause(i),l._updateHeaderUploadStatus()):n.hasClass("k-i-play-sm")?(l.trigger(H,s),l.resume(i)):n.hasClass("k-i-retry")&&(e(".k-i-warning",i).remove(),e(".k-progress",i).finish().show(),l._module.onRetry({target:e(i,l.wrapper)}),l._retryClicked=!0)),!1},_onUploadSelected:function(){var e=this,t=e.wrapper;return t.hasClass("k-state-disabled")||this._module.onSaveSelected(),!1},_onClearSelected:function(){var e=this,t=e.wrapper,a={};return t.hasClass("k-state-disabled")||e.trigger(N,a)||e.clearAllFiles(),!1},_onFileProgress:function(t,a){var n,i;a>100&&(a=100),this.options.template?e(".k-progress",t.target).width(a+"%"):(n=e(".k-upload-pct",t.target),i=e(".k-i-warning",t.target),i.length?i.removeClass("k-i-warning").removeClass("k-icon").addClass("k-upload-pct"):0===n.length&&e(".k-upload-status",t.target).prepend(""),100!==a?e(".k-upload-pct",t.target).text(a+"%"):e(".k-upload-pct",t.target).remove(),e(".k-progress",t.target).width(a+"%")),this.trigger(q,{files:F(t).data("fileNames"),percentComplete:a})},_onUploadSuccess:function(e,t,a){var n=this,i=F(e),o=n.trigger(R,{files:i.data("fileNames"),response:t,operation:"upload",XMLHttpRequest:a});o?n._setUploadErrorState(i):(n._fileState(i,"uploaded"),i.removeClass("k-file-progress").addClass("k-file-success"),n._updateHeaderUploadStatus(),n._supportsRemove()?n._fileAction(i,M):n._clearFileAction(i)),n._hideUploadProgress(i),n._checkAllComplete()},_onUploadError:function(e,t){var a=this,n=a._module,i=F(e),o=i.data("uid");a._setUploadErrorState(i),a.trigger(I,{operation:"upload",files:i.data("fileNames"),XMLHttpRequest:t}),z("Server response: "+t.responseText),a.options.async.chunkSize?n._decreasePosition&&n._decreasePosition(o):a._hideUploadProgress(i),a._checkAllComplete(),this.options.async.autoRetryAfter&&this._autoRetryAfter(i)},_autoRetryAfter:function(e){var t=this,a=this._module.retries;a&&(a[e.data("uid")]||(a[e.data("uid")]=1),a[e.data("uid")]<=this.options.async.maxAutoRetries&&(a[e.data("uid")]++,setTimeout(function(){t._module.performUpload(e)},this.options.async.autoRetryAfter)))},_setUploadErrorState:function(t){var a,n=this;n._fileState(t,"failed"),t.removeClass("k-file-progress").addClass("k-file-error"),n._updateUploadProgress(t),a=e(".k-upload-pct",t),a.length>0?(a.parent().find(".k-i-warning").length||a.removeClass("k-upload-pct").addClass("k-icon k-i-warning"),a.empty()):e(".k-upload-status",t).prepend(""),this._updateHeaderUploadStatus(),this._fileAction(t,"retry"),this._fileAction(t,M,!0),n._retryClicked&&t.find(".k-i-retry").parent().focus()},_updateUploadProgress:function(t){var a,n,i,o=this;o.options.async.chunkSize?(a=t.data("uid"),o._module.metaData&&(n=o._module.metaData[a],n&&(i=n.totalChunks?Math.round(n.chunkIndex/n.totalChunks*100):100,o._onFileProgress({target:e(t,o.wrapper)},i)))):e(".k-progress",t).width("100%")},_hideUploadProgress:function(t){e(".k-progress",t).delay(X).fadeOut(Z,function(){e(this).css("width","0%")})},_showUploadButton:function(){var t=this,a=e(".k-upload-selected",t.wrapper),n=e(".k-clear-selected",t.wrapper);0===a.length&&(a=t._renderAction("",this.localization.uploadSelectedFiles).addClass("k-upload-selected"),n=t._renderAction("",this.localization.clearSelectedFiles).addClass("k-clear-selected")),this.wrapper.append(n,a)},_hideUploadButton:function(){e(".k-upload-selected, .k-clear-selected",this.wrapper).remove()},_showHeaderUploadStatus:function(t){var a=this,n=a.localization,i=e(".k-dropzone",a.wrapper),o=e(".k-upload-status-total",a.wrapper);0!==o.length&&o.remove(),o='',t?(o=e(o).append(n.headerStatusUploading),o.find(".k-icon").addClass(W.loading)):(o=e(o).append(n.headerStatusUploaded),o.find(".k-icon").addClass(W.warning)),i.length>0?i.append(o):e(".k-upload-button",a.wrapper).after(o)},_updateHeaderUploadStatus:function(){var t,a,n=this,i=e(".k-upload-status-total",this.wrapper),o=e(".k-file",n.wrapper).not(".k-file-success, .k-file-error, .k-file-invalid"),r=e(".k-file-invalid",n.wrapper),s=e(".k-file-error",n.wrapper),l=e(".k-file",n.wrapper).find(".k-i-play-sm");!l.length||l.length!==o.length&&n.options.async.concurrent?(0===o.length||r.length>0||s.length>0)&&(t=e(".k-file.k-file-error, .k-file.k-file-invalid",n.wrapper),i=e(".k-upload-status-total",n.wrapper),a=e(".k-icon",i).removeClass().addClass("k-icon").addClass(0!==t.length?W.warning:W.success),i.html(a).append(n.localization.headerStatusUploaded)):(a=e(".k-icon",i).removeClass().addClass("k-icon").addClass("k-i-pause-sm"),i.html(a).append(n.localization.headerStatusPaused))},_hideHeaderUploadstatus:function(){e(".k-upload-status-total",this.wrapper).remove()},_onParentFormSubmit:function(){var a,n=this,i=n.element;t!==this._module.onAbort&&this._module.onAbort(),i.value||(a=e(i),a.attr("disabled","disabled"),window.setTimeout(function(){a.removeAttr("disabled")},0))},_onParentFormReset:function(){e(".k-upload-files",this.wrapper).remove()},_supportsFormData:function(){return"undefined"!=typeof FormData},_supportsMultiple:function(){var e=this._userAgent().indexOf("Windows")>-1;return!(U.support.browser.opera||U.support.browser.safari&&e)},_supportsDrop:function(){var e=this._userAgent().toLowerCase(),t=/chrome/.test(e),a=!t&&/safari/.test(e),n=a&&/windows/.test(e);return!n&&this._supportsFormData()&&this.options.async.saveUrl},_userAgent:function(){return navigator.userAgent},_setupDropZone:function(){var t,a,n=this;e(".k-upload-button",n.wrapper).wrap("
      "),t=n._ns,a=e(".k-dropzone",n.wrapper).append(e(""+n.localization.dropFilesHere+"")).on("dragenter"+t,g).on("dragover"+t,function(e){e.preventDefault()}).on("drop"+t,e.proxy(n._onDrop,n)),_(a,t,function(){a.closest(".k-upload").hasClass("k-state-disabled")||a.addClass("k-dropzone-hovered")},function(){a.removeClass("k-dropzone-hovered")}),n._bindDocumentDragEventWrappers(a)},_setupCustomDropZone:function(){var t,a=this,n=e(a.options.dropZone);e(".k-upload-button",a.wrapper).wrap("
      ").after(e(""+a.localization.dropFilesHere+"")),t=a._ns,n.on("dragenter"+t,g).on("dragover"+t,function(e){e.preventDefault()}).on("drop"+t,e.proxy(a._onDrop,a)),_(n,t,function(t){a.wrapper.hasClass("k-state-disabled")||(n.removeClass("k-dropzone-hovered"),e(t.target).addClass("k-dropzone-hovered"))},function(){n.removeClass("k-dropzone-hovered")}),a._bindDocumentDragEventWrappers(n)},_bindDocumentDragEventWrappers:function(t){var a=this,n=a._ns;_(e(document),n,function(){a.wrapper.hasClass("k-state-disabled")||(t.addClass("k-dropzone-active"),t.closest(".k-upload").removeClass("k-upload-empty"))},function(){t.removeClass("k-dropzone-active"),0===e("li.k-file",t.closest(".k-upload")).length&&t.closest(".k-upload").addClass("k-upload-empty")})},_supportsRemove:function(){return!!this.options.async.removeUrl},_submitRemove:function(t,a,n,i){var o=this,r=o.options.async.removeField||"fileNames",s=e.extend(a.data,b());s[r]=t,jQuery.ajax({type:this.options.async.removeVerb,dataType:"json",dataFilter:v,url:this.options.async.removeUrl,traditional:!0,data:s,headers:a.headers,success:n,error:i,xhrFields:{withCredentials:this.options.async.withCredentials}})},_wrapInput:function(e){var t=this,a=t.options;return e.wrap("
      "),a.async.saveUrl||e.closest(".k-upload").addClass("k-upload-sync"),e.closest(".k-upload").addClass("k-upload-empty"),e.closest(".k-button").append(""+this.localization.select+""),e.closest(".k-upload")},_checkAllComplete:function(){0===e(".k-file.k-file-progress",this.wrapper).length&&this.trigger(P)},_inputFiles:function(e){return n(e)}}),G=function(e){this.name="syncUploadModule",this.element=e.wrapper,this.upload=e,this.element.closest("form").attr("enctype","multipart/form-data").attr("encoding","multipart/form-data")};G.prototype={onSelect:function(t,n){var i,o,r=this.upload,s=e(t.target),l=r._filesContainValidationErrors(n);r._addInput(s),i={fileNames:n},l?s.remove():i.relatedInput=s,o=r._enqueueFile(a(s),i),l&&r._hideUploadProgress(o),r._fileAction(o,M)},onRemove:function(e){var t=F(e),a=t.data("relatedInput");a&&a.remove(),this.upload._removeFileEntry(t)}},w=function(e){this.name="iframeUploadModule",this.element=e.wrapper,this.upload=e,this.iframes=[]},K._frameId=0,w.prototype={onSelect:function(t,a){var n=this.upload,i=e(t.target),o=n._filesContainValidationErrors(a),r=this.prepareUpload(i,a,o);n.options.async.autoUpload?o?(n._fileAction(r,M),n._showHeaderUploadStatus(!1)):this.performUpload(r):(n._fileAction(r,M),o?n._updateHeaderUploadStatus():n._showUploadButton()),o&&n._hideUploadProgress(r)},prepareUpload:function(t,n,i){var o,r,s,l,p=this.upload,d=e(p.element),u=p.options.async.saveField||t.attr("name");return p._addInput(t),t.attr("name",u),i?(t.remove(),r={fileNames:n}):(s=this.createFrame(p.name+"_"+K._frameId++),this.registerFrame(s),l=this.createForm(p.options.async.saveUrl,s.attr("name")).append(d),r={frame:s,relatedInput:d,fileNames:n}),o=p._enqueueFile(a(t),r),s&&s.data({form:l,file:o}),o},performUpload:function(t){var a,n,i,o={files:t.data("fileNames")},r=t.data("frame"),s=this.upload;if(s.trigger(A,o))s._removeFileEntry(r.data("file")),this.cleanupFrame(r),this.unregisterFrame(r);else{s._hideUploadButton(),s._showHeaderUploadStatus(!0),r.appendTo(document.body),a=r.data("form").attr("action",s.options.async.saveUrl).appendTo(document.body),o.data=e.extend({},o.data,b());for(n in o.data)i=a.find("input[name='"+n+"']"),0===i.length&&(i=e("",{type:"hidden",name:n}).prependTo(a)),i.val(o.data[n]);s._fileAction(t,T),s._fileState(t,"uploading"),e(t).removeClass("k-file-error").addClass("k-file-progress"),r.one("load",e.proxy(this.onIframeLoad,this)),a[0].submit()}},onSaveSelected:function(){var t=this,a=t.upload;e(".k-file",this.element).each(function(){var n=e(this),i=y(n),o=a._filesContainValidationErrors(n.data("fileNames"));i||o||t.performUpload(n)})},onIframeLoad:function(t){var a,n=e(t.target);try{a=n.contents().text()}catch(i){a="Error trying to get server response: "+i}this.processResponse(n,a)},processResponse:function(t,a){var n=t.data("file"),i=this,o={responseText:a};k(a,function(a){e.extend(o,{statusText:"OK",status:"200"}),i.upload._onFileProgress({target:e(n,i.upload.wrapper)},100),i.upload._onUploadSuccess({target:e(n,i.upload.wrapper)},a,o),i.cleanupFrame(t),i.unregisterFrame(t)},function(){e.extend(o,{statusText:"error",status:"500"}),i.upload._onUploadError({target:e(n,i.upload.wrapper)},o)})},onCancel:function(t){var a=e(t.target).data("frame");this.stopFrameSubmit(a),this.cleanupFrame(a),this.unregisterFrame(a),this.upload._removeFileEntry(a.data("file"))},onRetry:function(e){var t=F(e);this.performUpload(t)},onRemove:function(e,t,a){var n=this,i=n.upload,o=F(e),r=o.data("frame");r?(n.unregisterFrame(r),i._removeFileEntry(o),n.cleanupFrame(r)):o.hasClass("k-file-success")?m(o,i,t,a):i._removeFileEntry(o)},onAbort:function(){var t=this.element,a=this;e.each(this.iframes,function(){e("input",this.data("form")).appendTo(t),a.stopFrameSubmit(this[0]),this.data("form").remove(),this.remove()}),this.iframes=[]},createFrame:function(t){return e(""),resizeHandle:v("
      ")};s.prototype={addOverlay:function(){this.owner.wrapper.append(di.overlay)},removeOverlay:function(){this.owner.wrapper.find(P).remove()},dragstart:function(t){var e,n,o,s,a,d,c,p=this,h=p.owner,f=h.wrapper;p._preventDragging=h.trigger(U),p._preventDragging||(p.elementPadding=parseInt(f.css("padding-top"),10),p.initialPosition=l.getOffset(f,"position"),p.resizeDirection=t.currentTarget.prop("className").replace("k-resize-handle k-resize-",""),p.initialSize={width:f.width(),height:f.height()},p.containerOffset=l.getOffset(h.appendTo,"position"),e=f.offsetParent(),e.is("html")?p.containerOffset.top=p.containerOffset.left=0:(n=e.css("margin-top"),o=e.css("margin-left"),s=!ri.test(n)||!ri.test(o),s&&(a=r(f[0]),d=a.left-p.containerOffset.left-p.initialPosition.left,c=a.top-p.containerOffset.top-p.initialPosition.top,p._relativeElMarginLeft=d>1?d:0,p._relativeElMarginTop=c>1?c:0,p.initialPosition.left+=p._relativeElMarginLeft,p.initialPosition.top+=p._relativeElMarginTop)),f.children(M).not(t.currentTarget).hide(),i(b).css(E,t.currentTarget.css(E)))},drag:function(t){var e,o,s,r,a,l,d,c,p,h,f,u,g,m,w;this._preventDragging||(e=this,o=e.owner,s=o.wrapper,r=o.options,a=e.resizeDirection,l=e.containerOffset,d=e.initialPosition,c=e.initialSize,g=Math.max(t.x.location,0),m=Math.max(t.y.location,0),a.indexOf("e")>=0?(p=g-d.left-l.left,s.width(n(p,r.minWidth,r.maxWidth))):a.indexOf("w")>=0&&(u=d.left+c.width+l.left,p=n(u-g,r.minWidth,r.maxWidth),s.css({left:u-p-l.left-(e._relativeElMarginLeft||0),width:p})),w=m,o.options.pinned&&(w-=i(window).scrollTop()),a.indexOf("s")>=0?(h=w-d.top-e.elementPadding-l.top,s.height(n(h,r.minHeight,r.maxHeight))):a.indexOf("n")>=0&&(f=d.top+c.height+l.top,h=n(f-w,r.minHeight,r.maxHeight),s.css({top:f-h-l.top-(e._relativeElMarginTop||0),height:h})),p&&(o.options.width=p+"px"),h&&(o.options.height=h+"px"),o.resize())},dragend:function(t){if(!this._preventDragging){var e=this,n=e.owner,o=n.wrapper;return o.children(M).not(t.currentTarget).show(),i(b).css(E,""),n.touchScroller&&n.touchScroller.reset(),27==t.keyCode&&o.css(e.initialPosition).css(e.initialSize),n.trigger(J),!1}},destroy:function(){this._draggable&&this._draggable.destroy(),this._draggable=this.owner=null}},a.prototype={dragstart:function(t){var e=this.owner,n=e.element,o=n.find(".k-window-actions"),s=l.getOffset(e.appendTo);this._preventDragging=e.trigger(V)||!e.options.draggable,this._preventDragging||(e.initialWindowPosition=l.getOffset(e.wrapper,"position"),e.initialPointerPosition={left:t.x.client,top:t.y.client},e.startPosition={left:t.x.client-e.initialWindowPosition.left,top:t.y.client-e.initialWindowPosition.top},e.minLeftPosition=o.length>0?u(o)+parseInt(o.css("right"),10)-u(n):20-u(n),e.minLeftPosition-=s.left,e.minTopPosition=-s.top,e.wrapper.append(di.overlay).children(M).hide(),i(b).css(E,t.currentTarget.css(E)))},drag:function(t){var e,n;this._preventDragging||(e=this.owner,n=e.options.position,n.top=Math.max(t.y.client-e.startPosition.top,e.minTopPosition),n.left=Math.max(t.x.client-e.startPosition.left,e.minLeftPosition),l.support.transforms?i(e.wrapper).css("transform","translate("+(t.x.client-e.initialPointerPosition.left)+"px, "+(t.y.client-e.initialPointerPosition.top)+"px)"):i(e.wrapper).css(n))},_finishDrag:function(){var t=this.owner;t.wrapper.children(M).toggle(!t.options.isMinimized).end().find(P).remove(),i(b).css(E,"")},dragcancel:function(i){this._preventDragging||(this._finishDrag(),i.currentTarget.closest(z).css(this.owner.initialWindowPosition))},dragend:function(){if(!this._preventDragging)return i(this.owner.wrapper).css(this.owner.options.position).css("transform",""),this._finishDrag(),this.owner.trigger(B),!1},destroy:function(){this._draggable&&this._draggable.destroy(),this._draggable=this.owner=null}},l.ui.plugin(li)}(window.kendo.jQuery),window.kendo},"function"==typeof define&&define.amd?define:function(i,t,e){(e||t)()});;!function(e,define){define("kendo.slider.min",["kendo.draganddrop.min"],e)}(function(){return function(e,t){function n(e,t,n){var i=n?" k-slider-horizontal":" k-slider-vertical",a=e.style?e.style:t.attr("style"),o=t.attr("class")?" "+t.attr("class"):"",r="";return"bottomRight"==e.tickPlacement?r=" k-slider-bottomright":"topLeft"==e.tickPlacement&&(r=" k-slider-topleft"),a=a?" style='"+a+"'":"","
      "}function i(e,t,n,i){var a="";return a=n?!i&&"increase"==t||i&&"increase"!=t?"k-i-arrow-60-right":"k-i-arrow-60-left":"increase"==t?"k-i-arrow-60-up":"k-i-arrow-60-down","
      "}function a(e,t){var n,i="
        ",a=H.floor(u(t/e.smallStep))+1;for(n=0;n ";return i+="
      "}function o(e,t){var n=t.is("input")?1:2,i=2==n?e.leftDragHandleTitle:e.dragHandleTitle;return"
      Drag"+(n>1?"Drag":"")+"
      "}function r(e){return function(t){return t+e}}function l(e){return function(){return e}}function s(e){return(e+"").replace(".",m.cultures.current.numberFormat["."])}function d(e){var t=""+e,n=0;return t=t.split("."),t[1]&&(n=t[1].length),n=n>10?10:n}function u(e){var t,n;return e=parseFloat(e,10),t=d(e),n=H.pow(10,t||0),H.round(e*n)/n}function p(e,n){var i=x(e.getAttribute(n));return null===i&&(i=t),i}function c(e){return typeof e!==Q}function f(e){return 1e4*e}var _,m=window.kendo,v=m.ui.Widget,h=m.ui.Draggable,g=m._outerWidth,w=m._outerHeight,k=e.extend,S=m.format,x=m.parseFloat,D=e.proxy,b=e.isArray,H=Math,T=m.support,y=T.pointers,z=T.msPointers,I="change",E="slide",C=".slider",F="touchstart"+C+" mousedown"+C,R=y?"pointerdown"+C:z?"MSPointerDown"+C:F,A="touchend"+C+" mouseup"+C,V=y?"pointerup":z?"MSPointerUp"+C:A,q="moveSelection",M="keydown"+C,P="click"+C,W="mouseover"+C,N="focus"+C,O="blur"+C,B=".k-draghandle",L=".k-slider-track",Z=".k-tick",U="k-state-selected",X="k-state-focused",Y="k-state-default",j="k-state-disabled",K="disabled",Q="undefined",G="tabindex",J=m.getTouches,$=v.extend({init:function(e,t){var n,i=this;if(v.fn.init.call(i,e,t),t=i.options,i._isHorizontal="horizontal"==t.orientation,i._isRtl=i._isHorizontal&&m.support.isRtl(e),i._position=i._isHorizontal?"left":"bottom",i._sizeFn=i._isHorizontal?"width":"height",i._outerSize=i._isHorizontal?g:w,t.tooltip.format=t.tooltip.enabled?t.tooltip.format||"{0}":"{0}",t.smallStep<=0)throw Error("Kendo UI Slider smallStep must be a positive number.");i._createHtml(),i.wrapper=i.element.closest(".k-slider"),i._trackDiv=i.wrapper.find(L),i._setTrackDivWidth(),i._maxSelection=i._trackDiv[i._sizeFn](),i._sliderItemsInit(),i._reset(),i._tabindex(i.wrapper.find(B)),i[t.enabled?"enable":"disable"](),n=m.support.isRtl(i.wrapper)?-1:1,i._keyMap={37:r(-1*n*t.smallStep),40:r(-t.smallStep),39:r(1*n*t.smallStep),38:r(+t.smallStep),35:l(t.max),36:l(t.min),33:r(+t.largeStep),34:r(-t.largeStep)},m.notify(i)},events:[I,E],options:{enabled:!0,min:0,max:10,smallStep:1,largeStep:5,orientation:"horizontal",tickPlacement:"both",tooltip:{enabled:!0,format:"{0}"}},_distance:function(){return u(this.options.max-this.options.min)},_resize:function(){this._setTrackDivWidth(),this.wrapper.find(".k-slider-items").remove(),this._maxSelection=this._trackDiv[this._sizeFn](),this._sliderItemsInit(),this._refresh(),this.options.enabled&&this.enable(!0)},_sliderItemsInit:function(){var t=this,n=t.options,i=t._maxSelection/((n.max-n.min)/n.smallStep),o=t._calculateItemsWidth(H.floor(t._distance()/n.smallStep));"none"!=n.tickPlacement&&i>=2&&(e(this.element).parent().find(".k-slider-items").remove(),t._trackDiv.before(a(n,t._distance())),t._setItemsWidth(o),t._setItemsTitle()),t._calculateSteps(o),"none"!=n.tickPlacement&&i>=2&&n.largeStep>=n.smallStep&&t._setItemsLargeTick()},getSize:function(){return m.dimensions(this.wrapper)},_setTrackDivWidth:function(){var e=this,t=2*parseFloat(e._trackDiv.css(e._isRtl?"right":e._position),10);e._trackDiv[e._sizeFn](e.wrapper[e._sizeFn]()-2-t)},_setItemsWidth:function(t){var n,i=this,a=i.options,o=0,r=t.length-1,l=i.wrapper.find(Z),s=0,d=2,u=l.length,p=0;for(n=0;n=3)for(a._isHorizontal||a._isRtl||(r=e.makeArray(r).reverse()),l=0;l"+t.attr("title")+""),0!==l&&l!==r.length-1&&t.css("line-height",t[a._sizeFn]()+"px"))},_calculateItemsWidth:function(e){var t,n,i,a=this,o=a.options,r=parseFloat(a._trackDiv.css(a._sizeFn))+1,l=a._distance(),s=r/l;for(l/o.smallStep-H.floor(l/o.smallStep)>0&&(r-=l%o.smallStep*s),t=r/e,n=[],i=0;i=i.min&&e<=i.max&&i.value!=e&&(n.element.prop("value",s(e)),i.value=e,n._refreshAriaAttr(e),n._refresh()),t)},_refresh:function(){this.trigger(q,{value:this.options.value})},_refreshAriaAttr:function(e){var t,n=this,i=n._drag;t=i&&i._tooltipDiv?i._tooltipDiv.text():n._getFormattedValue(e,null),this.wrapper.find(B).attr("aria-valuenow",e).attr("aria-valuetext",t)},_clearTimer:function(){clearTimeout(this.timeout),clearInterval(this.timer)},_keydown:function(e){var t=this;e.keyCode in t._keyMap&&(t._clearTooltipTimeout(),t._setValueInRange(t._keyMap[e.keyCode](t.options.value)),t._drag._updateTooltip(t.value()),e.preventDefault())},_setValueInRange:function(e){var n=this,i=n.options;return e=u(e),isNaN(e)?(n._update(i.min),t):(e=H.max(H.min(e,i.max),i.min),n._update(e),t)},_nextValueByIndex:function(e){var t=this._values.length;return this._isRtl&&(e=t-1-e),this._values[H.max(0,H.min(e,t-1))]},_formResetHandler:function(){var e=this,t=e.options.min;setTimeout(function(){var n=e.element[0].value;e.value(""===n||isNaN(n)?t:n)})},destroy:function(){var e=this;$.fn.destroy.call(e),e.wrapper.off(C).find(".k-button").off(C).end().find(B).off(C).end().find(Z+", "+L).off(C).end(),e._drag.draggable.destroy(),e._drag._removeTooltip(!0)}});ee.Selection=function(e,t,n){function i(i){var a=i-n.min,o=t._valueIndex=H.ceil(u(a/n.smallStep)),r=parseInt(t._pixelSteps[o],10),l=t._trackDiv.find(".k-slider-selection"),s=parseInt(t._outerSize(e)/2,10),d=t._isRtl?2:0;l[t._sizeFn](t._isRtl?t._maxSelection-r:r),e.css(t._position,r-s-d)}i(n.value),t.bind([E,q],function(e){i(parseFloat(e.value,10))}),t.bind(I,function(e){i(parseFloat(e.sender.value(),10))})},ee.Drag=function(e,t,n,i){var a=this;a.owner=n,a.options=i,a.element=e,a.type=t,a.draggable=new h(e,{distance:0,dragstart:D(a._dragstart,a),drag:D(a.drag,a),dragend:D(a.dragend,a),dragcancel:D(a.dragcancel,a)}),e.click(!1)},ee.Drag.prototype={dragstart:function(e){this.owner._activeDragHandle=this,this.draggable.userEvents.cancel(),this._dragstart(e),this.dragend()},_dragstart:function(n){var i=this,a=i.owner,o=i.options;return o.enabled?(this.owner._activeDragHandle=this,a.element.off(W),a.wrapper.find("."+X).removeClass(X+" "+U),i.element.addClass(X+" "+U),e(document.documentElement).css("cursor","pointer"),i.dragableArea=a._getDraggableArea(),i.step=H.max(o.smallStep*(a._maxSelection/a._distance()),0),i.type?(i.selectionStart=o.selectionStart,i.selectionEnd=o.selectionEnd,a._setZIndex(i.type)):i.oldVal=i.val=o.value,i._removeTooltip(!0),i._createTooltip(),t):(n.preventDefault(),t)},_createTooltip:function(){var t,n,i=this,a=i.owner,o=i.options.tooltip,r="",l=e(window);o.enabled&&(o.template&&(t=i.tooltipTemplate=m.template(o.template)),e(".k-slider-tooltip").remove(),i.tooltipDiv=e("
      ").appendTo(document.body),r=a._getFormattedValue(i.val||a.value(),i),i.type||(n="k-callout-"+(a._isHorizontal?"s":"e"),i.tooltipInnerDiv="
      ",r+=i.tooltipInnerDiv),i.tooltipDiv.html(r),i._scrollOffset={top:l.scrollTop(),left:l.scrollLeft()},i.moveTooltip())},drag:function(e){var t,n=this,i=n.owner,a=e.x.location,o=e.y.location,r=n.dragableArea.startPoint,l=n.dragableArea.endPoint;e.preventDefault(),n.val=i._isHorizontal?i._isRtl?n.constrainValue(a,r,l,a=l):n.constrainValue(o,l,r,o<=l),n.oldVal!=n.val&&(n.oldVal=n.val,n.type?("firstHandle"==n.type?n.selectionStart=n.valn.selectionStart?n.selectionEnd=n.val:n.selectionStart=n.selectionEnd=n.val,t={values:[n.selectionStart,n.selectionEnd],value:[n.selectionStart,n.selectionEnd]}):t={value:n.val},i.trigger(E,t)),n._updateTooltip(n.val)},_updateTooltip:function(e){var t=this,n=t.options,i=n.tooltip,a="";i.enabled&&(t.tooltipDiv||t._createTooltip(),a=t.owner._getFormattedValue(u(e),t),t.type||(a+=t.tooltipInnerDiv),t.tooltipDiv.html(a),t.moveTooltip())},dragcancel:function(){return this.owner._refresh(),e(document.documentElement).css("cursor",""),this._end()},dragend:function(){var t=this,n=t.owner;return e(document.documentElement).css("cursor",""),t.type?n._update(t.selectionStart,t.selectionEnd):(n._update(t.val),t.draggable.userEvents._disposeAll()),t.draggable.userEvents.cancel(),t._end()},_end:function(){var e=this,t=e.owner;return t._focusWithMouse(e.element),t.element.on(W),!1},_removeTooltip:function(t){var n=this,i=n.owner;n.tooltipDiv&&i.options.tooltip.enabled&&i.options.enabled&&(t?(n.tooltipDiv.remove(),n.tooltipDiv=null):n.tooltipDiv.fadeOut("slow",function(){e(this).remove(),n.tooltipDiv=null}))},moveTooltip:function(){var t,n,i,a,o=this,r=o.owner,l=0,s=0,d=o.element,u=m.getOffset(d),p=8,c=e(window),f=o.tooltipDiv.find(".k-callout"),_=g(o.tooltipDiv),v=w(o.tooltipDiv);o.type?(t=r.wrapper.find(B),u=m.getOffset(t.eq(0)),n=m.getOffset(t.eq(1)),r._isHorizontal?(l=n.top,s=u.left+(n.left-u.left)/2):(l=u.top+(n.top-u.top)/2,s=n.left),a=g(t.eq(0))+2*p):(l=u.top,s=u.left,a=g(d)+2*p),r._isHorizontal?(s-=parseInt((_-r._outerSize(d))/2,10),l-=v+f.height()+p):(l-=parseInt((v-r._outerSize(d))/2,10),s-=_+f.width()+p),r._isHorizontal?(i=o._flip(l,v,a,w(c)+o._scrollOffset.top),l+=i,s+=o._fit(s,_,g(c)+o._scrollOffset.left)):(i=o._flip(s,_,a,g(c)+o._scrollOffset.left),l+=o._fit(l,v,w(c)+o._scrollOffset.top),s+=i),i>0&&f&&(f.removeClass(),f.addClass("k-callout k-callout-"+(r._isHorizontal?"n":"w"))),o.tooltipDiv.css({top:l,left:s})},_fit:function(e,t,n){var i=0;return e+t>n&&(i=n-(e+t)),e<0&&(i=-e),i},_flip:function(e,t,n,i){var a=0;return e+t>i&&(a+=-(n+t)),e+a<0&&(a+=n+t),a},constrainValue:function(e,t,n,i){var a=this,o=0;return o=ta.selectionEnd?(d=o.selectionStart,u=l,p=a._lastHandleDrag):l-o.selectionStart<=o.selectionEnd-l?(d=l,u=o.selectionEnd,p=a._firstHandleDrag):(d=o.selectionStart,u=l,p=a._lastHandleDrag),p.dragstart(n),a._setValueInRange(d,u),a._focusWithMouse(p.element)}},a.wrapper.find(Z+", "+L).on(R,i).end().on(R,function(){e(document.documentElement).one("selectstart",m.preventDefault)}).on(V,function(){a._activeDragHandle&&a._activeDragHandle._end()}),a.wrapper.find(B).attr(G,0).on(A,function(){a._setTooltipTimeout()}).on(P,function(e){a._focusWithMouse(e.target),e.preventDefault()}).on(N,D(a._focus,a)).on(O,D(a._blur,a)),a.wrapper.find(B).off(M,m.preventDefault).eq(0).on(M,D(function(e){this._keydown(e,"firstHandle")},a)).end().eq(1).on(M,D(function(e){this._keydown(e,"lastHandle")},a)),a.options.enabled=!0)},disable:function(){var e=this;e.wrapper.removeClass(Y).addClass(j),e.wrapper.find("input").prop(K,K),e.wrapper.find(Z+", "+L).off(R).off(V),e.wrapper.find(B).attr(G,-1).off(A).off(M).off(P).off(N).off(O),e.options.enabled=!1},_keydown:function(e,t){var n,i,a,o=this,r=o.options.selectionStart,l=o.options.selectionEnd;e.keyCode in o._keyMap&&(o._clearTooltipTimeout(),"firstHandle"==t?(a=o._activeHandleDrag=o._firstHandleDrag,r=o._keyMap[e.keyCode](r),r>l&&(l=r)):(a=o._activeHandleDrag=o._lastHandleDrag,l=o._keyMap[e.keyCode](l),r>l&&(r=l)),o._setValueInRange(u(r),u(l)),n=Math.max(r,o.options.selectionStart),i=Math.min(l,o.options.selectionEnd),a.selectionEnd=Math.max(i,o.options.selectionStart),a.selectionStart=Math.min(n,o.options.selectionEnd),a._updateTooltip(o.value()[o._activeHandle]),e.preventDefault())},_update:function(e,t){var n=this,i=n.value(),a=i[0]!=e||i[1]!=t;n.value([e,t]),a&&n.trigger(I,{values:[e,t],value:[e,t]})},value:function(e){return e&&e.length?this._value(e[0],e[1]):this._value()},_value:function(e,n){var i=this,a=i.options,o=a.selectionStart,r=a.selectionEnd;return isNaN(e)&&isNaN(n)?[o,r]:(e=u(e),n=u(n),e>=a.min&&e<=a.max&&n>=a.min&&n<=a.max&&e<=n&&(o==e&&r==n||(i.element.find("input").eq(0).prop("value",s(e)).end().eq(1).prop("value",s(n)),a.selectionStart=e,a.selectionEnd=n,i._refresh(),i._refreshAriaAttr(e,n))),t)},values:function(e,t){return b(e)?this._value(e[0],e[1]):this._value(e,t)},_refresh:function(){var e=this,t=e.options;e.trigger(q,{values:[t.selectionStart,t.selectionEnd],value:[t.selectionStart,t.selectionEnd]}),t.selectionStart==t.max&&t.selectionEnd==t.max&&e._setZIndex("firstHandle")},_refreshAriaAttr:function(e,t){var n,i=this,a=i.wrapper.find(B),o=i._activeHandleDrag;n=i._getFormattedValue([e,t],o),a.eq(0).attr("aria-valuenow",e),a.eq(1).attr("aria-valuenow",t),a.attr("aria-valuetext",n)},_setValueInRange:function(e,t){var n=this.options;e=H.max(H.min(e,n.max),n.min),t=H.max(H.min(t,n.max),n.min),e==n.max&&t==n.max&&this._setZIndex("firstHandle"),this._update(H.min(e,t),H.max(e,t))},_setZIndex:function(t){this.wrapper.find(B).each(function(n){e(this).css("z-index","firstHandle"==t?1-n:n)})},_formResetHandler:function(){var e=this,t=e.options;setTimeout(function(){var n=e.element.find("input"),i=n[0].value,a=n[1].value;e.values(""===i||isNaN(i)?t.min:i,""===a||isNaN(a)?t.max:a)})},destroy:function(){var e=this;$.fn.destroy.call(e),e.wrapper.off(C).find(Z+", "+L).off(C).end().find(B).off(C),e._firstHandleDrag.draggable.destroy(),e._lastHandleDrag.draggable.destroy()}}),_.Selection=function(e,t,n){function i(i){i=i||[];var o=i[0]-n.min,r=i[1]-n.min,l=H.ceil(u(o/n.smallStep)),s=H.ceil(u(r/n.smallStep)),d=t._pixelSteps[l],p=t._pixelSteps[s],c=parseInt(t._outerSize(e.eq(0))/2,10),f=t._isRtl?2:0;e.eq(0).css(t._position,d-c-f).end().eq(1).css(t._position,p-c-f),a(d,p)}function a(e,n){var i,a,o=t._trackDiv.find(".k-slider-selection");i=H.abs(e-n),o[t._sizeFn](i),t._isRtl?(a=H.max(e,n),o.css("right",t._maxSelection-a-1)):(a=H.min(e,n),o.css(t._position,a-1))}i(t.value()),t.bind([I,E,q],function(e){i(e.values)})},m.ui.plugin(_)}(window.kendo.jQuery),window.kendo},"function"==typeof define&&define.amd?define:function(e,t,n){(n||t)()});;!function(e,define){define("kendo.colorpicker.min",["kendo.core.min","kendo.color.min","kendo.popup.min","kendo.slider.min","kendo.userevents.min","kendo.button.min"],e)}(function(){return function(e,t,a){function o(e,t,a){a=d(a),a&&!a.equals(e.color())&&("change"==t&&(e._value=a),a=1!=a.a?a.toCssRgba():a.toCss(),e.trigger(t,{value:a}))}function s(e,t,a){var o,s;return e=Array.prototype.slice.call(e),o=e.length,s=e.indexOf(t),s<0?a<0?e[o-1]:e[0]:(s+=a,s<0?s+=o:s%=o,e[s])}function l(e){e.preventDefault()}function n(e,t){return function(){return e.apply(t,arguments)}}var i=window.kendo,r=i.ui,c=r.Widget,d=i.parseColor,p=i.Color,u=i.keys,C="background-color",h="k-state-selected",F="000000,7f7f7f,880015,ed1c24,ff7f27,fff200,22b14c,00a2e8,3f48cc,a349a4,ffffff,c3c3c3,b97a57,ffaec9,ffc90e,efe4b0,b5e61d,99d9ea,7092be,c8bfe7",f="FFFFFF,FFCCFF,FF99FF,FF66FF,FF33FF,FF00FF,CCFFFF,CCCCFF,CC99FF,CC66FF,CC33FF,CC00FF,99FFFF,99CCFF,9999FF,9966FF,9933FF,9900FF,FFFFCC,FFCCCC,FF99CC,FF66CC,FF33CC,FF00CC,CCFFCC,CCCCCC,CC99CC,CC66CC,CC33CC,CC00CC,99FFCC,99CCCC,9999CC,9966CC,9933CC,9900CC,FFFF99,FFCC99,FF9999,FF6699,FF3399,FF0099,CCFF99,CCCC99,CC9999,CC6699,CC3399,CC0099,99FF99,99CC99,999999,996699,993399,990099,FFFF66,FFCC66,FF9966,FF6666,FF3366,FF0066,CCFF66,CCCC66,CC9966,CC6666,CC3366,CC0066,99FF66,99CC66,999966,996666,993366,990066,FFFF33,FFCC33,FF9933,FF6633,FF3333,FF0033,CCFF33,CCCC33,CC9933,CC6633,CC3333,CC0033,99FF33,99CC33,999933,996633,993333,990033,FFFF00,FFCC00,FF9900,FF6600,FF3300,FF0000,CCFF00,CCCC00,CC9900,CC6600,CC3300,CC0000,99FF00,99CC00,999900,996600,993300,990000,66FFFF,66CCFF,6699FF,6666FF,6633FF,6600FF,33FFFF,33CCFF,3399FF,3366FF,3333FF,3300FF,00FFFF,00CCFF,0099FF,0066FF,0033FF,0000FF,66FFCC,66CCCC,6699CC,6666CC,6633CC,6600CC,33FFCC,33CCCC,3399CC,3366CC,3333CC,3300CC,00FFCC,00CCCC,0099CC,0066CC,0033CC,0000CC,66FF99,66CC99,669999,666699,663399,660099,33FF99,33CC99,339999,336699,333399,330099,00FF99,00CC99,009999,006699,003399,000099,66FF66,66CC66,669966,666666,663366,660066,33FF66,33CC66,339966,336666,333366,330066,00FF66,00CC66,009966,006666,003366,000066,66FF33,66CC33,669933,666633,663333,660033,33FF33,33CC33,339933,336633,333333,330033,00FF33,00CC33,009933,006633,003333,000033,66FF00,66CC00,669900,666600,663300,660000,33FF00,33CC00,339900,336600,333300,330000,00FF00,00CC00,009900,006600,003300,000000",_="#ffffff",v={apply:"Apply",cancel:"Cancel",noColor:"no color",clearColor:"Clear color",previewInput:"Color Hexadecimal Code"},k=".kendoColorTools",g="click"+k,m="keydown"+k,b=i.support.browser,y=b.msie&&b.version<9,w=c.extend({init:function(e,t){var a,o=this;c.fn.init.call(o,e,t),e=o.element,t=o.options,o._value=t.value=d(t.value),o._tabIndex=e.attr("tabIndex")||0,a=o._ariaId=t.ariaId,a&&e.attr("aria-labelledby",a),t._standalone&&(o._triggerSelect=o._triggerChange)},options:{name:"ColorSelector",value:null,_standalone:!0},events:["change","select","cancel"],color:function(e){return e!==a&&(this._value=d(e),this._updateUI(this._value)),this._value},value:function(e){return e=this.color(e),e&&(e=this.options.opacity?e.toCssRgba():e.toCss()),e||null},enable:function(t){0===arguments.length&&(t=!0),e(".k-disabled-overlay",this.wrapper).remove(),t||this.wrapper.append("
      "),this._onEnable(t)},_select:function(e,t){var a=this._value;e=this.color(e),t||(this.element.trigger("change"),e.equals(a)?this._standalone||this.trigger("cancel"):this.trigger("change",{value:this.value()}))},_triggerSelect:function(e){o(this,"select",e)},_triggerChange:function(e){o(this,"change",e)},destroy:function(){this.element&&this.element.off(k),this.wrapper&&this.wrapper.off(k).find("*").off(k),this.wrapper=null,c.fn.destroy.call(this)},_updateUI:e.noop,_selectOnHide:function(){return null},_cancel:function(){this.trigger("cancel")}}),I=w.extend({init:function(t,a){var o,s,l,r,c=this;if(w.fn.init.call(c,t,a),t=c.wrapper=c.element,a=c.options,o=a.palette,"websafe"==o?(o=f,a.columns=18):"basic"==o&&(o=F),"string"==typeof o&&(o=o.split(",")),e.isArray(o)&&(o=e.map(o,function(e){return d(e)})),c._selectedID=(a.ariaId||i.guid())+"_selected",t.addClass("k-widget k-colorpalette").attr("role","grid").attr("aria-readonly","true").append(e(c._template({colors:o,columns:a.columns,tileSize:a.tileSize,value:c._value,id:a.ariaId}))).on(g,".k-item",function(t){c._select(e(t.currentTarget).css(C))}).attr("tabIndex",c._tabIndex).on(m,n(c._keydown,c)),s=a.tileSize){if(/number|string/.test(typeof s))l=r=parseFloat(s);else{if("object"!=typeof s)throw Error("Unsupported value for the 'tileSize' argument");l=parseFloat(s.width),r=parseFloat(s.height)}t.find(".k-item").css({width:l,height:r})}},focus:function(){this.wrapper&&!this.wrapper.is("[unselectable='on']")&&this.wrapper.focus()},options:{name:"ColorPalette",columns:10,tileSize:null,palette:"basic"},_onEnable:function(e){e?this.wrapper.attr("tabIndex",this._tabIndex):this.wrapper.removeAttr("tabIndex")},_keydown:function(t){var a,o,n=this.wrapper,i=n.find(".k-item"),r=i.filter("."+h).get(0),c=t.keyCode;if(c==u.LEFT?a=s(i,r,-1):c==u.RIGHT?a=s(i,r,1):c==u.DOWN?a=s(i,r,this.options.columns):c==u.UP?a=s(i,r,-this.options.columns):c==u.ENTER?(l(t),r&&this._select(e(r).css(C))):c==u.ESC&&this._cancel(),a){l(t),this._current(a);try{o=d(a.css(C)),this._triggerSelect(o)}catch(p){}}},_current:function(t){this.wrapper.find("."+h).removeClass(h).attr("aria-selected",!1).removeAttr("id"),e(t).addClass(h).attr("aria-selected",!0).attr("id",this._selectedID),this.element.removeAttr("aria-activedescendant").attr("aria-activedescendant",this._selectedID)},_updateUI:function(t){var a=null;this.wrapper.find(".k-item").each(function(){var o=d(e(this).css(C));if(o&&o.equals(t))return a=this,!1}),this._current(a)},_template:i.template('# for (var i = 0; i < colors.length; ++i) { ## var selected = colors[i].equals(value); ## if (i && i % columns == 0) { # # } ## } #')}),S=w.extend({init:function(t,a){var o=this;w.fn.init.call(o,t,a),a=o.options,a.messages=a.options?e.extend(o.options.messages,a.options.messages):o.options.messages,t=o.element,o.wrapper=t.addClass("k-widget k-flatcolorpicker").append(o._template(a)),o._hueElements=e(".k-hsv-rectangle, .k-transparency-slider .k-slider-track",t),o._selectedColor=e(".k-selected-color-display",t),o._colorAsText=e("input.k-color-value",t),o._sliders(),o._hsvArea(),o._updateUI(o._value||d("#f00")),t.find("input.k-color-value").on(m,function(t){var a,s,l=this;if(t.keyCode==u.ENTER)try{a=d(l.value),s=o.color(),o._select(a,a.equals(s))}catch(n){e(l).addClass("k-state-error")}else o.options.autoupdate&&setTimeout(function(){var e=d(l.value,!0);e&&o._updateUI(e,!0)},10)}).end().on(g,".k-controls button.apply",function(){o.options._clearedColor?o.trigger("change"):o._select(o._getHSV())}).on(g,".k-controls button.cancel",function(){o._updateUI(o.color()),o._cancel()}),y&&o._applyIEFilter()},destroy:function(){this._hueSlider.destroy(),this._opacitySlider&&this._opacitySlider.destroy(),this._hueSlider=this._opacitySlider=this._hsvRect=this._hsvHandle=this._hueElements=this._selectedColor=this._colorAsText=null,w.fn.destroy.call(this)},options:{name:"FlatColorPicker",opacity:!1,buttons:!1,input:!0,preview:!0,clearButton:!1,autoupdate:!0,messages:v},_applyIEFilter:function(){var e=this.element.find(".k-hue-slider .k-slider-track")[0],t=e.currentStyle.backgroundImage;t=t.replace(/^url\([\'\"]?|[\'\"]?\)$/g,""),e.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+t+"', sizingMethod='scale')"},_sliders:function(){function e(e){a._updateUI(a._getHSV(e.value,null,null,null))}function t(e){a._updateUI(a._getHSV(null,null,null,e.value/100))}var a=this,o=a.element,s=o.find(".k-hue-slider"),l=o.find(".k-transparency-slider");s.attr("aria-label","hue saturation"),a._hueSlider=s.kendoSlider({min:0,max:360,tickPlacement:"none",showButtons:!1,slide:e,change:e}).data("kendoSlider"),l.attr("aria-label","opacity"),a._opacitySlider=l.kendoSlider({min:0,max:100,tickPlacement:"none",showButtons:!1,slide:t,change:t}).data("kendoSlider")},_hsvArea:function(){function e(e,a){var o=this.offset,s=e-o.left,l=a-o.top,n=this.width,i=this.height;s=s<0?0:s>n?n:s,l=l<0?0:l>i?i:l,t._svChange(s/n,1-l/i)}var t=this,a=t.element,o=a.find(".k-hsv-rectangle"),s=o.find(".k-draghandle").attr("tabIndex",0).on(m,n(t._keydown,t));t._hsvEvents=new i.UserEvents(o,{global:!0,press:function(t){this.offset=i.getOffset(o),this.width=o.width(),this.height=o.height(),s.focus(),e.call(this,t.x.location,t.y.location)},start:function(){o.addClass("k-dragging"),s.focus()},move:function(t){t.preventDefault(),e.call(this,t.x.location,t.y.location)},end:function(){o.removeClass("k-dragging")}}),t._hsvRect=o,t._hsvHandle=s},_onEnable:function(e){this._hueSlider.enable(e),this._opacitySlider&&this._opacitySlider.enable(e),this.wrapper.find("input").attr("disabled",!e);var t=this._hsvRect.find(".k-draghandle");e?t.attr("tabIndex",this._tabIndex):t.removeAttr("tabIndex")},_keydown:function(e){function t(t,a){var s=o._getHSV();s[t]+=a*(e.shiftKey?.01:.05),s[t]<0&&(s[t]=0),s[t]>1&&(s[t]=1),o._updateUI(s),l(e)}function a(t){var a=o._getHSV();a.h+=t*(e.shiftKey?1:5),a.h<0&&(a.h=0),a.h>359&&(a.h=359),o._updateUI(a),l(e)}var o=this;switch(e.keyCode){case u.LEFT:e.ctrlKey?a(-1):t("s",-1);break;case u.RIGHT:e.ctrlKey?a(1):t("s",1);break;case u.UP:t(e.ctrlKey&&o._opacitySlider?"a":"v",1);break;case u.DOWN:t(e.ctrlKey&&o._opacitySlider?"a":"v",-1);break;case u.ENTER:o._select(o._getHSV());break;case u.F2:o.wrapper.find("input.k-color-value").focus().select();break;case u.ESC:o._cancel()}},focus:function(){this._hsvHandle.focus()},_getHSV:function(e,t,a,o){var s=this._hsvRect,l=s.width(),n=s.height(),i=this._hsvHandle.position();return null==e&&(e=this._hueSlider.value()),null==t&&(t=i.left/l),null==a&&(a=1-i.top/n),null==o&&(o=this._opacitySlider?this._opacitySlider.value()/100:1),p.fromHSV(e,t,a,o)},_svChange:function(e,t){var a=this._getHSV(null,e,t,null);this._updateUI(a)},_updateUI:function(e,t){var a=this,o=a._hsvRect;e&&(this._colorAsText.attr("title",a.options.messages.previewInput),this._colorAsText.removeClass("k-state-error"),a._selectedColor.css(C,e.toDisplay()),t||a._colorAsText.val(a._opacitySlider?e.toCssRgba():e.toCss()),a._triggerSelect(e),e=e.toHSV(),a._hsvHandle.css({left:e.s*o.width()+"px",top:(1-e.v)*o.height()+"px"}),a._hueElements.css(C,p.fromHSV(e.h,1,1,1).toCss()),a._hueSlider.value(e.h),a._opacitySlider&&a._opacitySlider.value(100*e.a))},_selectOnHide:function(){return this.options.buttons?null:this._getHSV()},_template:i.template('# if (preview) { #
      # if (clearButton && !_standalone) { ## } #
      # } ## if (clearButton && !_standalone && !preview) { #
      #: messages.clearColor #
      # } #
      # if (opacity) { ## } ## if (buttons) { #
      # } #')}),x=c.extend({init:function(t,a){var o,s,l,n,i,r=this;c.fn.init.call(r,t,a),a=r.options,t=r.element,o=t.attr("value")||t.val(),o=o?d(o,!0):d(a.value,!0),r._value=a.value=o,s=r.wrapper=e(r._template(a)),t.hide().after(s),t.is("input")&&(t.appendTo(s),l=t.closest("label"),n=t.attr("id"),n&&(l=l.add('label[for="'+n+'"]')),l.click(function(e){r.open(),e.preventDefault()})),r._tabIndex=t.attr("tabIndex")||0,r.enable(!t.attr("disabled")),i=t.attr("accesskey"),i&&(t.attr("accesskey",null),s.attr("accesskey",i)),r.bind("activate",function(e){e.isDefaultPrevented()||r.toggle()}),r._updateUI(o)},destroy:function(){this.wrapper.off(k).find("*").off(k),this._popup&&(this._selector.destroy(),this._popup.destroy()),this._selector=this._popup=this.wrapper=null,c.fn.destroy.call(this)},enable:function(e){var t=this,a=t.wrapper,o=a.children(".k-picker-wrap"),s=o.find(".k-select");0===arguments.length&&(e=!0),t.element.attr("disabled",!e),a.attr("aria-disabled",!e),s.off(k).on("mousedown"+k,l),a.addClass("k-state-disabled").removeAttr("tabIndex").add("*",a).off(k),e?a.removeClass("k-state-disabled").attr("tabIndex",t._tabIndex).on("mouseenter"+k,function(){o.addClass("k-state-hover")}).on("mouseleave"+k,function(){o.removeClass("k-state-hover")}).on("focus"+k,function(){o.addClass("k-state-focused")}).on("blur"+k,function(){o.removeClass("k-state-focused")}).on(m,n(t._keydown,t)).on(g,".k-select",n(t.toggle,t)).on(g,t.options.toolIcon?".k-tool-icon":".k-selected-color",function(){t.trigger("activate")}):t.close()},_template:i.template('# if (toolIcon) { ## } else { ## } #'),options:{name:"ColorPicker",palette:null,columns:10,toolIcon:null,value:null,messages:v,opacity:!1,buttons:!0,preview:!0,clearButton:!1,ARIATemplate:'Current selected color is #=data || ""#'},events:["activate","change","select","open","close"],open:function(){this.element.prop("disabled")||this._getPopup().open()},close:function(){var e=this._selector&&this._selector.options||{};e._closing=!0,this._getPopup().close(),delete e._closing},toggle:function(){this.element.prop("disabled")||this._getPopup().toggle()},_noColorIcon:function(){return this.wrapper.find(".k-picker-wrap > .k-selected-color > .k-icon.k-i-line")},color:w.fn.color,value:w.fn.value,_select:w.fn._select,_triggerSelect:w.fn._triggerSelect,_isInputTypeColor:function(){var e=this.element[0];return/^input$/i.test(e.tagName)&&/^color$/i.test(e.type)},_updateUI:function(e){var t="";e&&(t=this._isInputTypeColor()||1==e.a?e.toCss():e.toCssRgba(),this.element.val(t)),this._ariaTemplate||(this._ariaTemplate=i.template(this.options.ARIATemplate)),this.wrapper.attr("aria-label",this._ariaTemplate(t)),this._triggerSelect(e),this.wrapper.find(".k-selected-color").css(C,e?e.toDisplay():_),this._noColorIcon()[t?"hide":"show"]()},_keydown:function(e){var t=e.keyCode;this._getPopup().visible()?(t==u.ESC?this._selector._cancel():this._selector._keydown(e),l(e)):t!=u.ENTER&&t!=u.DOWN||(this.open(),l(e))},_getPopup:function(){var t,o,s,l,n=this,r=n._popup;return r||(t=n.options,o=t.palette?I:S,t._standalone=!1,delete t.select,delete t.change,delete t.cancel,s=i.guid(),l=n._selector=new o(e('
      ').appendTo(document.body),t),n.wrapper.attr("aria-owns",s),n._popup=r=l.wrapper.kendoPopup({anchor:n.wrapper,adjustSize:{width:5,height:0}}).data("kendoPopup"),l.element.find(".k-clear-color").kendoButton({icon:"reset-color",click:function(e){l.options._clearedColor=!0,n.value(null),n.element.val(null),n._updateUI(null),l._colorAsText.val(""),l._hsvHandle.css({top:"0px",left:"0px"}),l._selectedColor.css(C,_),n.trigger("change",{value:n.value()}),e.preventDefault()}}),l.bind({select:function(e){n._updateUI(d(e.value)),delete l.options._clearedColor},change:function(){l.options._clearedColor||n._select(l.color()),n.close()},cancel:function(){l.options._clearedColor&&!n.value()&&l.value()&&n._select(l.color(),!0),n.close()}}),r.bind({close:function(e){var t,o,s,i;return n.trigger("close")?(e.preventDefault(),a):(n.wrapper.children(".k-picker-wrap").removeClass("k-state-focused"),t=l._selectOnHide(),o=l.value(),s=n.value(),i=l.options,t?i._clearedColor&&!s||n._select(t):(setTimeout(function(){n.wrapper&&!n.wrapper.is("[unselectable='on']")&&n.wrapper.focus()}),!i._closing&&i._clearedColor&&!s&&o?n._select(o,!0):n._updateUI(n.color())),a)},open:function(e){n.trigger("open")?e.preventDefault():n.wrapper.children(".k-picker-wrap").addClass("k-state-focused")},activate:function(){l._select(n.color(),!0),l.focus(),n.wrapper.children(".k-picker-wrap").addClass("k-state-focused")}})),r}});r.plugin(I),r.plugin(S),r.plugin(x)}(jQuery,parseInt),window.kendo},"function"==typeof define&&define.amd?define:function(e,t,a){(a||t)()});;!function(e,define){define("util/undoredostack.min",["kendo.core.min"],e)}(function(){!function(e){var t=e.Observable.extend({init:function(t){e.Observable.fn.init.call(this,t),this.clear()},events:["undo","redo"],push:function(e){this.stack=this.stack.slice(0,this.currentCommandIndex+1),this.currentCommandIndex=this.stack.push(e)-1},undo:function(){if(this.canUndo()){var e=this.stack[this.currentCommandIndex--];e.undo(),this.trigger("undo",{command:e})}},redo:function(){if(this.canRedo()){var e=this.stack[++this.currentCommandIndex];e.redo(),this.trigger("redo",{command:e})}},clear:function(){this.stack=[],this.currentCommandIndex=-1},canUndo:function(){return this.currentCommandIndex>=0},canRedo:function(){return this.currentCommandIndex!=this.stack.length-1}});e.deepExtend(e,{util:{UndoRedoStack:t}})}(kendo)},"function"==typeof define&&define.amd?define:function(e,t,i){(i||t)()}),function(e,define){define("editor/main.min",["util/undoredostack.min","kendo.combobox.min","kendo.dropdownlist.min","kendo.window.min","kendo.colorpicker.min"],e)}(function(){!function(e,t){var i,n,o,r,a,s=window.kendo,l=s.Class,d=s.ui.Widget,c=s.support.mobileOS,u=s.support.browser,f=e.extend,p=e.proxy,m=s.deepExtend,h=s.keys,g="select",b="select.k-select-overlay",v=l.extend({init:function(e){this.options=e},getHtml:function(){var e=this.options;return s.template(e.template,{useWithBlock:!1})(e)}}),k={editorWrapperTemplate:'',buttonTemplate:'# var iconCssClass= "k-icon k-i-" + kendo.toHyphens(data.cssClass.replace("k-", ""));##= data.title #',colorPickerTemplate:'
      ',comboBoxTemplate:'',separatorTemplate:'',overflowAnchorTemplate:'',formatByName:function(t,i){for(var n=0;n=0)return i[n]},getToolCssClass:function(e){var t={superscript:"sup-script",subscript:"sub-script",justifyLeft:"align-left",justifyCenter:"align-center",justifyRight:"align-right",justifyFull:"align-justify",insertUnorderedList:"list-unordered",insertOrderedList:"list-ordered","import":"login",indent:"indent-increase",outdent:"indent-decrease",createLink:"link-horizontal",unlink:"unlink-horizontal",insertImage:"image",insertFile:"file-add",viewHtml:"html",foreColor:"foreground-color",backColor:"paint",createTable:"table-insert",addColumnLeft:"table-column-insert-left",addColumnRight:"table-column-insert-right",addRowAbove:"table-row-insert-above",addRowBelow:"table-row-insert-below",deleteRow:"table-row-delete",deleteColumn:"table-column-delete",tableWizard:"table-properties",tableWizardInsert:"table-wizard",cleanFormatting:"clear-css"},i=t[e];return i?i:e},registerTool:function(e,t){var i=t.options;i&&i.template&&(i.template.options.cssClass="k-"+k.getToolCssClass(e)),t.name||(t.options.name=e,t.name=e.toLowerCase()),C.defaultTools[e]=t},registerFormat:function(e,t){C.fn.options.formats[e]=t}},y={bold:"Bold",italic:"Italic",underline:"Underline",strikethrough:"Strikethrough",superscript:"Superscript",subscript:"Subscript",justifyCenter:"Center text",justifyLeft:"Align text left",justifyRight:"Align text right",justifyFull:"Justify",insertUnorderedList:"Insert unordered list",insertOrderedList:"Insert ordered list",indent:"Indent",outdent:"Outdent",createLink:"Insert hyperlink",unlink:"Remove hyperlink",insertImage:"Insert image",insertFile:"Insert file",insertHtml:"Insert HTML",viewHtml:"View HTML",fontName:"Select font family",fontNameInherit:"(inherited font)",fontSize:"Select font size",fontSizeInherit:"(inherited size)",formatBlock:"Format",formatting:"Format",foreColor:"Color",backColor:"Background color",style:"Styles",emptyFolder:"Empty Folder",editAreaTitle:"Editable area. Press F10 for toolbar.",uploadFile:"Upload",overflowAnchor:"More tools",orderBy:"Arrange by:",orderBySize:"Size",orderByName:"Name",invalidFileType:'The selected file "{0}" is not valid. Supported file types are {1}.',deleteFile:'Are you sure you want to delete "{0}"?',overwriteFile:'A file with name "{0}" already exists in the current directory. Do you want to overwrite it?',directoryNotFound:"A directory with this name was not found.",imageWebAddress:"Web address",imageAltText:"Alternate text",imageWidth:"Width (px)",imageHeight:"Height (px)",fileWebAddress:"Web address",fileTitle:"Title",fileText:"Text",linkWebAddress:"Web address",linkText:"Text",linkToolTip:"ToolTip",linkOpenInNewWindow:"Open link in new window",dialogUpdate:"Update",dialogInsert:"Insert",dialogOk:"Ok",dialogCancel:"Cancel",cleanFormatting:"Clean formatting",createTable:"Create a table",createTableHint:"Create a {0} x {1} table",addColumnLeft:"Add column on the left",addColumnRight:"Add column on the right",addRowAbove:"Add row above",addRowBelow:"Add row below",deleteRow:"Delete row",deleteColumn:"Delete column",tableWizard:"Table Wizard",tableTab:"Table",cellTab:"Cell",accessibilityTab:"Accessibility",caption:"Caption",summary:"Summary",width:"Width",height:"Height",units:"Units",cellSpacing:"Cell Spacing",cellPadding:"Cell Padding",cellMargin:"Cell Margin",alignment:"Alignment",background:"Background",cssClass:"CSS Class",id:"ID",border:"Border",borderStyle:"Border Style",collapseBorders:"Collapse borders",wrapText:"Wrap text",associateCellsWithHeaders:"Associate cells with headers",alignLeft:"Align Left",alignCenter:"Align Center",alignRight:"Align Right",alignLeftTop:"Align Left Top",alignCenterTop:"Align Center Top",alignRightTop:"Align Right Top",alignLeftMiddle:"Align Left Middle",alignCenterMiddle:"Align Center Middle",alignRightMiddle:"Align Right Middle",alignLeftBottom:"Align Left Bottom",alignCenterBottom:"Align Center Bottom",alignRightBottom:"Align Right Bottom",alignRemove:"Remove Alignment",columns:"Columns",rows:"Rows",selectAllCells:"Select All Cells",exportAs:"Export As","import":"Import"},w=!c||c.ios&&c.flatVersion>=500||!c.ios&&t!==document.documentElement.contentEditable,x={basic:["bold","italic","underline"],alignment:["justifyLeft","justifyCenter","justifyRight"],lists:["insertUnorderedList","insertOrderedList"],indenting:["indent","outdent"],links:["createLink","unlink"],tables:["tableWizard","createTable","addColumnLeft","addColumnRight","addRowAbove","addRowBelow","deleteRow","deleteColumn"]},C=d.extend({init:function(i,n){var o,r,a,l,c,u=this,h=s.ui.editor,g=h.Dom;w&&(d.fn.init.call(u,i,n),u.options=m({},u.options,n),u.options.tools=u.options.tools.slice(),i=u.element,c=i[0],l=g.name(c),this._registerHandler(i.closest("form"),"submit",p(u.update,u,t)),a=f({},u.options),a.editor=u,"textarea"==l?(u._wrapTextarea(),r=u.wrapper.find(".k-editor-toolbar"),c.id&&r.attr("aria-controls",c.id)):(u.element.attr("contenteditable",!0).addClass("k-widget k-editor k-editor-inline"),a.popup=!0,r=e('"),r=this.isBlock(t),k.focus(),s=k.getRange(),s.deleteContents(),s.startContainer==k.document&&s.selectNodeContents(k.body),l=new m,d=l.addCaret(s),u=this.splittableParent(r,d),f=!1,p=u!=k.body&&!c.is(u,"td"),i.split&&p&&(r||c.isInline(u))&&(s.selectNode(d),a.RangeUtils.split(s,u,!0),f=!0),h=this.htmlToFragment(t),h.firstChild&&"k-paste-container"===h.firstChild.className){for(g=[],n=0,o=h.childNodes.length;n"))}if(e(h.childNodes).filter("table").addClass("k-table").end().find("table").addClass("k-table"),s.insertNode(h),u=this.splittableParent(r,d),f){for(;d.parentNode!=u;)c.unwrap(d.parentNode);c.unwrap(d.parentNode)}c.normalize(s.commonAncestorContainer),d.style.display="inline",c.restoreScrollTop(k.document),c.scrollTo(d),l.removeCaret(s),v=s.commonAncestorContainer.parentNode,s.collapsed&&"tbody"==c.name(v)&&(s.setStartAfter(e(v).closest("table")[0]),s.collapse(!0)),k.selectRange(s)}}),H=r.extend({init:function(e){this.options=e||{},this.replacements=[]},clean:function(e,t){var i,n,o=this,r=t||o.replacements;for(i=0,n=r.length;i]*)>/i,"<$1telerik:script$2>"]},applicable:function(e){return!this.options.none&&/]*>/i.test(e)}}),O=H.extend({init:function(e){H.fn.init.call(this,e);var t=" ";this.replacements=[/]*>\s*<\/span>/gi,t,/\t/gi,t,/    /gi,t]},applicable:function(e){return/    |class="?Apple-tab-span/i.test(e)}}),F=H.extend({init:function(e){H.fn.init.call(this,e),this.junkReplacements=[/<\?xml[^>]*>/gi,"",//g,"",/"/g,"'",/ <\/o:p>/gi," ",/<\/?(meta|link|style|o:|v:|x:)[^>]*>((?:.|\n)*?<\/(meta|link|style|o:|v:|x:)[^>]*>)?/gi,"",/<\/o>/g,""],this.replacements=this.junkReplacements.concat([/(?:
       [\s\r\n]+|
      )*(<\/?(h[1-6]|hr|p|div|table|tbody|thead|tfoot|th|tr|td|li|ol|ul|caption|address|pre|form|blockquote|dl|dt|dd|dir|fieldset)[^>]*>)(?:
       [\s\r\n]+|
      )*/g,"$1",/

      /g,"

      ",/
      (?!\n)/g," ",/]*)>(\s| )+]*>(\s| )*<\/tr>/gi,"",/]*>(\s| )*<\/tbody>/gi,"",/]*>(\s| )*<\/table>/gi,"",/

      /g,"
      ",/^\s*( )+/gi,"",/( |]*>)+\s*$/gi,"",/mso-[^;"]*;?/gi,"",/<(\/?)b(\s[^>]*)?>/gi,"<$1strong$2>",/<(\/?)font(\s[^>]*)?>/gi,this.convertFontMatch,/<(\/?)i(\s[^>]*)?>/gi,"<$1em$2>",/style=(["|'])\s*\1/g,"",/(]*>)?\n/g,function(e,t){return t?e:" "}])},convertFontMatch:function(e,t,i){var n=/face=['"]([^'"]+)['"]/i,o=n.exec(i),r=i&&o&&o[1];return t?"
      ":r?'':""},applicable:function(e){return/class="?Mso/i.test(e)||/style="[^"]*mso-/i.test(e)||/urn:schemas-microsoft-com:office/.test(e)},stripEmptyAnchors:function(e){return e.replace(/]*)>\s*<\/a>/gi,function(e,t){return!t||t.indexOf("href")<0?"":e})},listType:function(e,t){var i,n=e.innerHTML,o=c.innerText(e),r=n.match(/^(?:]*texhtml[^>]*>)?]*(?:Symbol|Wingdings)[^>]*>([^<]+)/i),a=r&&r[1],s=/^[a-z\d]/i.test(a),l=function(e){return e.replace(/^(?: |[\u00a0\n\r\s])+/,"")};return r&&(i=!0),n=n.replace(/<\/?\w+[^>]*>/g,"").replace(/ /g," "),!i&&/^[\u2022\u00b7\u00a7\u00d8o]\u00a0+/.test(n)||i&&/^.\u00a0+/.test(n)||a&&!s&&t?{tag:"ul",style:this._guessUnorderedListStyle(l(o))}:/^\s*\w+[\.\)][\u00a0 ]{2,}/.test(n)?{tag:"ol",style:this._guessOrderedListStyle(l(o))}:void 0},_convertToLi:function(e){var t;return 1==e.childNodes.length?t=e.firstChild.innerHTML.replace(/^\w+[\.\)]( )+ /,""):(c.remove(e.firstChild),3==e.firstChild.nodeType&&/^[ivxlcdm]+\.$/i.test(e.firstChild.nodeValue)&&c.remove(e.firstChild),/^( |\s)+$/i.test(e.firstChild.innerHTML)&&c.remove(e.firstChild),t=e.innerHTML),c.remove(e),c.create(document,"li",{innerHTML:t})},_guessUnorderedListStyle:function(e){return/^[\u2022\u00b7\u00FC\u00D8\u002dv-]/.test(e)?null:/^o/.test(e)?"circle":"square"},_guessOrderedListStyle:function(e){var t=null;return/^\d/.test(e)||(t=(/^[a-z]/.test(e)?"lower-":"upper-")+(/^[ivxlcdm]/i.test(e)?"roman":"alpha")),t},extractListLevels:function(e){var t=/style=['"]?[^'"]*?mso-list:\s?[a-zA-Z]+(\d+)\s[a-zA-Z]+(\d+)\s(\w+)/gi;return e=e.replace(t,function(e,t,i){return o.format('data-list="{0}" data-level="{1}" {2}',t,i,e)})},lists:function(t){var i,n,o,r,a,s,l,d,u,f,p,m,h=e(t).find(c.blockElements.join(",")),g=-1,b={},v=t;for(r=0;rg||!d)&&(d=c.create(document,s,{style:{listStyleType:p.style}}),v==t||l<=g?(o&&n!==l?o.appendChild(d):c.insertBefore(d,a),b[l]={}):(o=v,v.appendChild(d)),b[l][m]=d),v=this._convertToLi(a),d.appendChild(v),g=l):a.innerHTML?(g=-1,v=t):c.remove(a))},removeAttributes:function(e){for(var t=e.attributes,i=t.length;i--;)"colspan"!=c.name(t[i])&&e.removeAttributeNode(t[i])},createColGroup:function(t){var i=t.cells,n=e(t).closest("table"),r=n.children("colgroup");i.length<2||(r.length&&(i=r.children(),r[0].parentNode.removeChild(r[0])),r=e(e.map(i,function(e){var t=e.width;return t&&0!==parseInt(t,10)?o.format('',t):""}).join("")),r.is("colgroup")||(r=e("").append(r)),r.prependTo(n))},convertHeaders:function(t){var i,n=t.cells,o=e.map(n,function(t){var i=e(t).children("p").children("strong")[0];if(i&&"strong"==c.name(i))return i});if(o.length==n.length){for(i=0;i").end().find("thead").append(t),i=0;io.cells.length&&(o=i[a]);l.createColGroup(o),l.convertHeaders(n),l.removeAttributes(s[r]),l.removeParagraphs(s.eq(r).find("td,th")),l.removeDefaultColors(s.eq(r).find("span"))}},headers:function(t){var i,n=e(t).find("p.MsoTitle");for(i=0;i]*)\s+class="?[^"\s>]*"?/gi,"$1")),e}}),L=H.extend({init:function(e){H.fn.init.call(this,e),this.replacements=[/\s+class="Apple-style-span[^"]*"/gi,"",/<(div|p|h[1-6])\s+style="[^"]*"/gi,"<$1",/^
      (.*)<\/div>$/,"$1"]},applicable:function(e){return/class="?Apple-style-span|style="[^"]*-webkit-nbsp-mode/i.test(e)}}),W=H.extend({clean:function(e){var t=c.create(document,"div",{innerHTML:e});return t=this.cleanDom(t),t.innerHTML},cleanDom:function(e){return e}}),U=W.extend({cleanDom:function(t){var i=this.collectTags();return e(t).find(i).each(function(){c.unwrap(this)}),t},collectTags:function(){if(this.options.span)return"span"},applicable:function(){return this.options.span}}),M=W.extend({cleanDom:function(t){var i=this.collectAttr(),n=e(t).find("["+i.join("],[")+"]");return n.removeAttr(i.join(" ")),t},collectAttr:function(){return this.options.css?["class","style"]:[]},applicable:function(){return this.options.css}}),V=function(){this.text="",this.add=function(e){this.text+=e}},j=r.extend({init:function(e){this.separators=e||{text:" ",line:"
      "},this.lines=[],this.inlineBlockText=[],this.resetLine()},appendText:function(e){3===e.nodeType&&(e=e.nodeValue),this.textContainer.add(e)},appendInlineBlockText:function(e){this.inlineBlockText.push(e)},flashInlineBlockText:function(){this.inlineBlockText.length&&(this.appendText(this.inlineBlockText.join(" ")),this.inlineBlockText=[])},endLine:function(){this.flashInlineBlockText(),this.resetLine()},html:function(){var e,t,i,n,o,r,a,s,l=this.separators,d="",c=this.lines;for(this.flashInlineBlockText(),e=0,t=c.length,i=t-1;e"}},actions:{ul:e.noop,ol:e.noop,table:e.noop,thead:e.noop,tbody:e.noop,td:function(e,t){var i=new $({all:!0}),n=i.cleanDom(t);return e.htmlLines.appendInlineBlockText(n),!0},block:function(e){e.htmlLines.endLine()}}}),G=H.extend({clean:function(e){return this.options.custom(e)},applicable:function(){return"function"==typeof this.options.custom}}),q=y.extend({init:function(e){y.fn.init.call(this,e),this.managesUndoRedo=!0},exec:function(){var e=this.editor;o.support.browser.msie?e.document.execCommand("print",!1,null):e.window.print&&e.window.print()}}),Q=y.extend({init:function(e){this.async=!0,y.fn.init.call(this,e)},exec:function(){var e=this,t=e.lockRange(!0),i=e.editor;i._destroyResizings(),i.saveAsPDF().then(function(){e.releaseRange(t),i._initializeColumnResizing(),i._initializeRowResizing(),i._initializeTableResizing()})}});b(a,{_finishUpdate:t,Command:y,GenericCommand:w,InsertHtmlCommand:x,InsertHtmlTool:C,TypingHandler:z,SystemHandler:E,BackspaceHandler:A,SelectAllHandler:D,Keyboard:P,Clipboard:I,Cleaner:H,ScriptCleaner:B,TabCleaner:O,MSWordFormatCleaner:F,WebkitFormatCleaner:L,HtmlTagsCleaner:U,HtmlAttrCleaner:M,HtmlContentCleaner:$,HtmlTextLines:j,CustomCleaner:G,PrintCommand:q,ExportPdfCommand:Q}),d("insertHtml",new C({template:new f({template:s.dropDownListTemplate,title:"Insert HTML",initialValue:"Insert HTML"})})),d("print",new u({command:q,template:new f({template:s.buttonTemplate,title:"Print"})})),d("pdf",new u({command:Q,template:new f({template:s.buttonTemplate,title:"Export PDF"})}))}(window.kendo.jQuery); -},"function"==typeof define&&define.amd?define:function(e,t,i){(i||t)()}),function(e,define){define("editor/inlineformat.min",["editor/system.min"],e)}(function(){!function(e){var t=window.kendo,i=t.Class,n=t.ui.editor,o=t.ui.Editor.fn.options.formats,r=n.EditorUtils,a=n.Tool,s=n.ToolTemplate,l=n.FormatTool,d=n.Dom,c=n.RangeUtils,u=e.extend,f=n.EditorUtils.registerTool,p=n.EditorUtils.registerFormat,m=function(e){e.preventDefault()},h="mousedown.kendoEditor",g="keydown.kendoEditor",b="k-marker",v=i.extend({init:function(e){this.format=e},numberOfSiblings:function(e){var t,i=0,n=0,o=0,r=e.parentNode;for(t=r.firstChild;t;t=t.nextSibling)t!=e&&(t.className==b?o++:3==t.nodeType?i++:n++);return o>1&&r.firstChild.className==b&&r.lastChild.className==b?0:n+i},findSuitable:function(e,t){var i,n;if(!t&&this.numberOfSiblings(e)>0)return null;for(i=e.parentNode,n=this.format[0].tags;!d.ofType(i,n);){if(this.numberOfSiblings(i)>0)return null;i=i.parentNode}return i},findFormat:function(e){var t,i,n,o,r,a=this.format,s=d.attrEquals;for(t=0,i=a.length;t0&&this.activate(e,i)},immutables:function(){return this.editor&&this.editor.options.immutables},apply:function(e){var t,i,n,o,r=[],a=this.attributes,s=a?a.style||{}:{};for(t=0,i=e.length;t0)for(t=0;t1;)if(t=e.pop(),i=e[e.length-1],t.previousSibling&&t.previousSibling.className==b&&i.appendChild(t.previousSibling),t.tagName==i.tagName&&t.previousSibling==i&&t.style.cssText==i.style.cssText){for(;t.firstChild;)i.appendChild(t.firstChild);d.remove(t)}}}),y=v.extend({init:function(e,t){this.format=e,this.greedyProperty=t,v.fn.init.call(this,e)},getInlineCssValue:function(t){var i,n,o,r,a,s,l,c,u,f,p,m,h=t.attributes,g=e.trim;if(h)for(i=0,n=h.length;i=0?d.toHex(m):m}},getFormatInner:function(t){var i,n,o,r=e(d.isDataNode(t)?t.parentNode:t),a=r.parentsUntil("[contentEditable]").addBack().toArray().reverse();for(i=0,n=a.length;i=0&&!(o=s.ofType(t[i],a[r].tags)?t[i]:s.closestEditableOfType(t[i],a[r].tags));r--);if(!o||"true"===o.contentEditable)return[];e.inArray(o,l)<0&&l.push(o)}for(this._resolveListsItems(l),i=0,n=l.length;i=0;a--)l=n.immutableParent(e[a]),l&&(l!==e[a+1]&&(t?s.attr(l,i.attr):s.unstyle(l,i.attr.style)),e.splice(a,1))},immutables:function(){return this.editor&&this.editor.options.immutables},remove:function(e){var t,i,n,o,r;for(this._handleImmutables(e,!1),t=0,i=e.length;t1&&1==u.childNodes.length&&u.children[0],o.insertAfter(a,g),o.remove(1==b?u.parentNode:u),v&&v!==c?(a.appendChild(v),a.appendChild(c)):a.innerHTML=w,r=a):f&&this._blankAfter(c)&&(a=o.create(y,"p"),o.insertAfter(a,f),a.innerHTML=w,o.remove(c),r=a),r||(u||f||new s([{tags:["p"]}]).apply([c]),k.selectNode(c),t=o.parentOfType(c,[u?"li":f?o.name(f):"p"]),d.split(k,t,m),i=t.previousSibling,o.is(i,"li")&&i.firstChild&&!o.is(i.firstChild,"br")&&(i=i.firstChild),r=t.nextSibling,this.clean(i),this.clean(r,{links:!0}),o.is(r,"li")&&r.firstChild&&!o.is(r.firstChild,"br")&&(r=r.firstChild),o.remove(t),l(i)),l(r),this._moveFocus(k,r),k.collapse(!0),o.scrollTo(r,!0),d.selectRange(k)},clean:function(t,i){var r,a=t;if(t.firstChild&&o.is(t.firstChild,"br")&&o.remove(t.firstChild),o.isDataNode(t)&&!t.nodeValue&&(t=t.parentNode),t){for(r=!1;t.firstChild&&1==t.firstChild.nodeType;)r=r||o.significantNodes(t.childNodes).length>1,t=t.firstChild;if(o.isEmpty(t)||!/^\s*$/.test(t.innerHTML)||r||(e(a).find(".k-br").remove(),t.innerHTML=n.emptyElementContent),i&&i.links)for(;t!=a;){if(o.is(t,"a")&&o.emptyNode(t)){o.unwrap(t);break}t=t.parentNode}}}}),f=r.extend({init:function(e){this.options=e,r.fn.init.call(this,e)},exec:function(){var e,i,n,r,a=this.getRange();this.expandImmutablesIn(a),e=o.create(d.documentFromRange(a),"br"),n=t.support.browser,r=n.msie&&n.version<11,a.deleteContents(),a.insertNode(e),l(e.parentNode),r||e.nextSibling&&!o.isWhitespace(e.nextSibling)||(i=e.cloneNode(!0),i.className="k-br",o.insertAfter(i,e)),a.setStartAfter(e),a.collapse(!0),o.scrollTo(e.nextSibling||e,!0),d.selectRange(a)}});i(n,{ParagraphCommand:u,NewLineCommand:f}),c("insertLineBreak",new a({key:13,shift:!0,command:f})),c("insertParagraph",new a({key:13,command:u}))}(window.kendo.jQuery)},"function"==typeof define&&define.amd?define:function(e,t,i){(i||t)()}),function(e,define){define("editor/lists.min",["editor/linebreak.min"],e)}(function(){!function(e){var t=window.kendo,i=t.Class,n=e.extend,o=t.ui.editor,r=o.Dom,a=o.RangeUtils,s=o.EditorUtils,l=o.Command,d=o.ToolTemplate,c=o.FormatTool,u=o.BlockFormatFinder,f=a.textNodes,p=o.EditorUtils.registerTool,m=u.extend({init:function(e){this.tag=e;var t=this.tags=["ul"==e?"ol":"ul",e];u.fn.init.call(this,[{tags:t}])},isFormatted:function(e){var t,i,n=[];for(i=0;i
      ")({messages:this.editor.options.messages})},exec:function(){var t,i,n,o,r=this.editor.options.messages;this._initialText="",this._range=this.lockRange(!0),this.formatter.immutables=this.immutables(),t=b(this._range),i=t.length?this.formatter.finder.findSuitable(t[0]):null,n=t.length&&"img"==d.name(t[0]),o=this.createDialog(this._dialogTemplate(),{title:r.createLink,close:s(this._close,this),visible:!1}),i&&(this._range.selectNodeContents(i),t=b(this._range)),this._initialText=this.linkText(t),o.find(".k-dialog-insert").click(s(this._apply,this)).end().find(".k-dialog-close").click(s(this._close,this)).end().find(".k-edit-field input").keydown(s(this._keydown,this)).end().find("#k-editor-link-url").val(this.linkUrl(i)).end().find("#k-editor-link-text").val(this._initialText).end().find("#k-editor-link-title").val(i?i.title:"").end().find("#k-editor-link-target").attr("checked",!!i&&"_blank"==i.target).end().find(".k-editor-link-text-row").toggle(!n),this._dialog=o.data("kendoWindow").center().open(),e("#k-editor-link-url",o).focus().select()},_keydown:function(e){var t=o.keys;e.keyCode==t.ENTER?this._apply(e):e.keyCode==t.ESC&&this._close(e)},_apply:function(t){var i,n,o,r=this._dialog.element,a=e("#k-editor-link-url",r).val(),s=e("#k-editor-link-text",r);a&&a!=w&&(a.indexOf("@")>0&&!/^(\w+:)|(\/\/)/i.test(a)&&(a="mailto:"+a),this.attributes={href:a},i=e("#k-editor-link-title",r).val(),i&&(this.attributes.title=i),s.is(":visible")&&(n=s.val(),n||this._initialText?n&&n!==this._initialText&&(this.attributes.innerHTML=d.stripBom(n)):this.attributes.innerHTML=a),o=e("#k-editor-link-target",r).is(":checked"),this.attributes.target=o?"_blank":null,this.formatter.apply(this._range,this.attributes)),this._close(t),this.change&&this.change()},_close:function(e){e.preventDefault(),this._dialog.destroy(),d.windowFromDocument(c.documentFromRange(this._range)).focus(),this.releaseRange(this._range)},linkUrl:function(e){return e?e.getAttribute("href",2):w},linkText:function(e){var t,i="";for(t=0;t-1)return this.end.node=t,this.end.offset=n+1,!1},_detectStart:function(e,t){var n=i(e,/\s/),o=n+1;if(this.text=e.substring(o)+this.text,this.start.node=t,this.start.offset=o,n>-1)return!1},_skipStartPuntuation:function(e,t,i){var o=n(e,/\w/),r=o;if(o===-1&&(r=e.length),this.text=this.text.substring(r),this.start.node=t,this.start.offset=r+(0|i),o>-1)return!1}}),E=function(){return{node:null,offset:null,blank:function(){return null===this.node&&null===this.offset}}},D=r.extend({init:function(i){this.node=i.node,this.offset=i.offset===t?d.isDataNode(this.node)&&this.node.length||0:i.offset,this.cancelAtNode=i.cancelAtNode||this.cancelAtNode||e.noop},traverse:function(e){e&&(this.cancel=!1,this._traverse(e,this.node,this.offset))},_traverse:function(e,i,n){ -var o,r,a,s;if(i&&!this.cancel){if(3!==i.nodeType)return r=this.edgeNode(i),this.cancel=this.cancel||this.cancelAtNode(r),this._traverse(e,r);if(o=i.data,n!==t&&(o=this.subText(o,n)),this.cancel=e(o,i,n)===!1,a=this.next(i),!a)for(s=i.parentNode;!a&&d.isInline(s);)a=this.next(s),s=s.parentNode;this.cancel=this.cancel||this.cancelAtNode(a),this._traverse(e,a)}},extendOptions:function(t){return e.extend({node:this.node,offset:this.offset,cancelAtNode:this.cancelAtNode},t||{})},edgeNode:function(e){},next:function(e){},subText:function(e,t){}}),P=D.extend({subText:function(e,t){return e.substring(0,t)},next:function(e){return e.previousSibling},edgeNode:function(e){return e.lastChild},clone:function(e){var t=this.extendOptions(e);return new P(t)}}),I=D.extend({subText:function(e,t){return e.substring(t)},next:function(e){return e.nextSibling},edgeNode:function(e){return e.firstChild},clone:function(e){var t=this.extendOptions(e);return new I(t)}});a(o.ui.editor,{LinkFormatFinder:T,LinkFormatter:_,UnlinkCommand:N,LinkCommand:S,AutoLinkCommand:R,UnlinkTool:z,DomTextLinkDetection:A,LeftDomTextTraverser:P,RightDomTextTraverser:I}),k("createLink",new p({key:"K",ctrl:!0,command:S,template:new m({template:u.buttonTemplate,title:"Create Link"})})),k("unlink",new z({key:"K",ctrl:!0,shift:!0,template:new m({template:u.buttonTemplate,title:"Remove Link"})})),k("autoLink",new p({key:[y.ENTER,y.SPACEBAR],keyPressCommand:!0,command:R}))}(window.kendo.jQuery)},"function"==typeof define&&define.amd?define:function(e,t,i){(i||t)()}),function(e,define){define("editor/file.min",["kendo.filebrowser.min","editor/link.min"],e)}(function(){!function(e,t){var i=window.kendo,n=e.extend,o=i.ui.editor,r=o.EditorUtils,a=o.Dom,s=r.registerTool,l=o.ToolTemplate,d=o.RangeUtils,c=o.Command,u=o.LinkFormatter,f=d.textNodes,p=i.keys,m="#k-editor-file-url",h="#k-editor-file-text",g="#k-editor-file-title",b=c.extend({init:function(e){var t=this;c.fn.init.call(t,e),t.formatter=new u,t.async=!0,t.attributes={}},insertFile:function(e,t){var i=this.attributes,n=d.documentFromRange(t);if(i.href&&"http://"!=i.href){if(!e)return e=a.create(n,"a",{href:i.href}),e.innerHTML=i.innerHTML,e.title=i.title,t.deleteContents(),t.insertNode(e),e.nextSibling||a.insertAfter(n.createTextNode("\ufeff"),e),t.setStartAfter(e),t.setEndAfter(e),d.selectRange(t),!0;a.attr(e,i)}return!1},_dialogTemplate:function(e){return i.template('
      # if (showBrowser) { #
      # } #
      ')({messages:this.editor.options.messages,showBrowser:e})},redo:function(){var e=this,t=e.lockRange();this.formatter.apply(t,this.attributes),e.releaseRange(t)},exec:function(){function e(e){var t=s.element,i=t.find(m).val().replace(/ /g,"%20"),n=t.find(h).val(),r=t.find(g).val();u.attributes={href:i,innerHTML:""!==n?n:i,title:r},k=u.insertFile(y,b),o(e),u.change&&u.change()}function o(e){e.preventDefault(),s.destroy(),a.windowFromDocument(d.documentFromRange(b)).focus(),k||u.releaseRange(b)}function r(t){t.keyCode==p.ENTER?e(t):t.keyCode==p.ESC&&o(t)}var s,l,c,u=this,b=u.lockRange(),v=f(b),k=!1,y=v.length?this.formatter.finder.findSuitable(v[0]):null,w=i.support.browser.msie,x=u.editor.options,C=x.messages,T=x.fileBrowser,_=!!(i.ui.FileBrowser&&T&&T.transport&&T.transport.read!==t),N={title:C.insertFile,visible:!1,resizable:_};this.expandImmutablesIn(b),N.close=o,_&&(N.width=750),s=this.createDialog(u._dialogTemplate(_),N).toggleClass("k-filebrowser-dialog",_).find(".k-dialog-insert").click(e).end().find(".k-dialog-close").click(o).end().find(".k-edit-field input").keydown(r).end().find(m).val(y?y.getAttribute("href",2):"http://").end().find(h).val(y?y.innerText:"").end().find(g).val(y?y.title:"").end().data("kendoWindow"),l=s.element,_&&(u._fileBrowser=new i.ui.FileBrowser(l.find(".k-filebrowser"),n({},T)),u._fileBrowser.bind("change",function(e){"f"===e.selected.get("type")&&l.find(m).val(this.value())}),u._fileBrowser.bind("apply",e)),w&&(c=l.closest(".k-window").height(),l.css("max-height",c)),s.center().open(),l.find(m).focus().select()}});i.ui.editor.FileCommand=b,s("insertFile",new o.Tool({command:b,template:new l({template:r.buttonTemplate,title:"Insert File"})}))}(window.kendo.jQuery)},"function"==typeof define&&define.amd?define:function(e,t,i){(i||t)()}),function(e,define){define("editor/image.min",["kendo.imagebrowser.min","editor/link.min"],e)}(function(){!function(e,t){var i=window.kendo,n=e.extend,o=i.ui.editor,r=o.EditorUtils,a=o.Dom,s=r.registerTool,l=o.ToolTemplate,d=o.RangeUtils,c=o.Command,u=i.keys,f="#k-editor-image-url",p="#k-editor-image-title",m="#k-editor-image-width",h="#k-editor-image-height",g=c.extend({init:function(e){var t=this;c.fn.init.call(t,e),t.async=!0,t.attributes={}},insertImage:function(e,t){var i,n=this.attributes,o=d.documentFromRange(t);if(n.src&&"http://"!=n.src){if(i=function(){setTimeout(function(){n.width||e.removeAttribute("width"),n.height||e.removeAttribute("height"),e.removeAttribute("complete")})},!e)return e=a.create(o,"img",n),e.onload=e.onerror=i,t.deleteContents(),t.insertNode(e),e.nextSibling||a.insertAfter(o.createTextNode("\ufeff"),e),i(),t.setStartAfter(e),t.setEndAfter(e),d.selectRange(t),!0;e.onload=e.onerror=i,a.attr(e,n),i()}return!1},_dialogTemplate:function(e){return i.template('
      # if (showBrowser) { #
      # } #
      ')({messages:this.editor.options.messages,showBrowser:e})},redo:function(){var e=this,t=e.lockRange();e.insertImage(d.image(t),t)||e.releaseRange(t)},exec:function(){function e(e){var t=s.element,i=parseInt(t.find(m).val(),10),n=parseInt(t.find(h).val(),10);g.attributes={src:t.find(f).val().replace(/ /g,"%20"),alt:t.find(p).val()},g.attributes.width=null,g.attributes.height=null,!isNaN(i)&&i>0&&(g.attributes.width=i),!isNaN(n)&&n>0&&(g.attributes.height=n),v=g.insertImage(k,b),o(e),g.change&&g.change()}function o(e){e.preventDefault(),s.destroy(),a.windowFromDocument(d.documentFromRange(b)).focus(),v||g.releaseRange(b)}function r(t){t.keyCode==u.ENTER?e(t):t.keyCode==u.ESC&&o(t)}var s,l,c,g=this,b=g.lockRange(),v=!1,k=d.image(b),y=k&&k.getAttribute("width")||"",w=k&&k.getAttribute("height")||"",x=i.support.browser.msie,C=g.editor.options,T=C.messages,_=C.imageBrowser,N=!!(i.ui.ImageBrowser&&_&&_.transport&&_.transport.read!==t),S={title:T.insertImage,visible:!1,resizable:N};this.expandImmutablesIn(b),S.close=o,N&&(S.width=750),s=this.createDialog(g._dialogTemplate(N),S).toggleClass("k-filebrowser-dialog",N).find(".k-dialog-insert").click(e).end().find(".k-dialog-close").click(o).end().find(".k-edit-field input").keydown(r).end().find(f).val(k?k.getAttribute("src",2):"http://").end().find(p).val(k?k.alt:"").end().find(m).val(y).end().find(h).val(w).end().data("kendoWindow"),l=s.element,N&&(this._imageBrowser=new i.ui.ImageBrowser(l.find(".k-imagebrowser"),n({},_)),this._imageBrowser.bind("change",function(e){"f"===e.selected.get("type")&&l.find(f).val(this.value())}),this._imageBrowser.bind("apply",e)),x&&(c=l.closest(".k-window").height(),l.css("max-height",c)),s.center().open(),l.find(f).focus().select()}});i.ui.editor.ImageCommand=g,s("insertImage",new o.Tool({command:g,template:new l({template:r.buttonTemplate,title:"Insert Image"})}))}(window.kendo.jQuery)},"function"==typeof define&&define.amd?define:function(e,t,i){(i||t)()}),function(e,define){define("editor/components.min",["editor/image.min"],e)}(function(){!function(e,t){var i=window.kendo,n=i.ui.DropDownList,o=i.ui.editor.Dom,r=n.extend({init:function(t,o){var r=this;n.fn.init.call(r,t,o),i.support.mobileOS.ios&&(this._initSelectOverlay(),this.bind("dataBound",e.proxy(this._initSelectOverlay,this))),r.text(r.options.title),r.bind("open",function(){if(r.options.autoSize){var e,t=r.list;t.css({whiteSpace:"nowrap",width:"auto"}),e=t.width(),e?e+=20:e=r._listWidth,t.css("width",e+i.support.scrollbar()),r._listWidth=e}})},options:{name:"SelectBox",index:-1},_initSelectOverlay:function(){var t,n,o,r,a=this,s=a.value(),l=this.dataSource.view(),d="",c=i.htmlEncode;for(n=0;n";o=e(""),r=e(this.element).closest(".k-widget"),r.next(".k-select-overlay").remove(),o.insertAfter(r),o.on("change",function(){a.value(this.value),a.trigger("change")})},value:function(e){var i=this,o=n.fn.value.call(i,e);return e===t?o:(n.fn.value.call(i)||i.text(i.options.title),t)},decorate:function(t){var i,n,r,a,s=this,l=s.dataSource,d=l.data();for(t&&s.list.css("background-color",o.getEffectiveBackground(e(t))),i=0;i0?i.style[a]=n+"px":(i.style[a]="",i.style.cssText||i.removeAttribute("style")),t)}var n=window.kendo,o=n.Class,r=e.extend,a=n.ui.editor,s=a.Dom,l=a.EditorUtils,d=l.registerTool,c=a.Command,u=a.Tool,f=a.ToolTemplate,p=a.RangeUtils,m=s.blockElements,h=a.BlockFormatFinder,g=a.BlockFormatter,b=o.extend({init:function(){this.finder=new h([{tags:s.blockElements}])},apply:function(t){var n,o,r,a,l,d,c,u,f,p,m,h;if(t=s.filterBy(t,s.htmlIndentSpace,!0),n=this.finder.findSuitable(t),o=[],n=this.mapImmutables(n),n.length){for(r=0,a=n.length;r1||i(u.parentNode))||s.ofType(u,["ul","ol"])&&l>0),r)return n.removeClass("k-state-disabled"),t;n.addClass("k-state-disabled").removeClass("k-state-hover")}});r(a,{IndentFormatter:b,IndentCommand:v,OutdentCommand:k,OutdentTool:y}),d("indent",new u({command:v,template:new f({template:l.buttonTemplate,title:"Indent"})})),d("outdent",new y({command:k,template:new f({template:l.buttonTemplate,title:"Outdent"})}))}(window.kendo.jQuery)},"function"==typeof define&&define.amd?define:function(e,t,i){(i||t)()}),function(e,define){define("editor/viewhtml.min",["editor/indent.min"],e)}(function(){!function(e,t){var i=window.kendo,n=e.extend,o=i.ui.editor,r=o.EditorUtils,a=o.Command,s=o.Tool,l=o.ToolTemplate,d=a.extend({init:function(e){var t=this;t.options=e,a.fn.init.call(t,e),t.attributes=null,t.async=!0},exec:function(){function n(e){l.deserialization.immutables=s.immutables,s.value(u.find(f).val()),l.deserialization.immutables=t,o(e),a.change&&a.change(),s.trigger("change")}function o(e){e.preventDefault(),u.data("kendoWindow").destroy(),s.immutables&&(s.immutables.serializedImmutables={}),s.focus()}var r,a=this,s=a.editor,l=s.options,c=s.options.messages,u=e(i.template(d.template)(c)).appendTo(document.body),f=".k-editor-textarea";l.serialization.immutables=s.immutables,r=d.indent(s.value()),l.serialization.immutables=t,this.createDialog(u,{title:c.viewHtml,close:o,visible:!1}).find(f).val(r).end().find(".k-dialog-update").click(n).end().find(".k-dialog-close").click(o).end().data("kendoWindow").center().open(),u.find(f).focus()}});n(d,{template:"
      ",indent:function(e){return e.replace(/<\/(p|li|ul|ol|h[1-6]|table|tr|td|th)>/gi,"\n").replace(/<(ul|ol)([^>]*)>
    • \n/gi,"
      \n").replace(/\n$/,"")}}),i.ui.editor.ViewHtmlCommand=d,o.EditorUtils.registerTool("viewHtml",new s({command:d,template:new l({template:r.buttonTemplate,title:"View HTML"})}))}(window.kendo.jQuery)},"function"==typeof define&&define.amd?define:function(e,t,i){(i||t)()}),function(e,define){define("editor/formatting.min",["editor/viewhtml.min"],e)}(function(){!function(e){function t(e){var t,o,r=l.closestEditableOfType(e,["li"]);r&&(t=new n.ListFormatter(l.name(r.parentNode)),o=i.ui.editor.W3CRange.fromNode(e),o.selectNode(r),t.toggle(o))}var i=window.kendo,n=i.ui.editor,o=n.Tool,r=n.ToolTemplate,a=n.DelayedExecutionTool,s=n.Command,l=n.Dom,d=n.EditorUtils,c=n.RangeUtils,u=d.registerTool,f=a.extend({init:function(e){var t=this;o.fn.init.call(t,i.deepExtend({},t.options,e)),t.type="kendoSelectBox",t.finder={getFormat:function(){return""}}},options:{items:[{text:"Paragraph",value:"p"},{text:"Quotation",value:"blockquote"},{text:"Heading 1",value:"h1"},{text:"Heading 2",value:"h2"},{text:"Heading 3",value:"h3"},{text:"Heading 4",value:"h4"},{text:"Heading 5",value:"h5"},{text:"Heading 6",value:"h6"}],width:110},toFormattingItem:function(e){var t,i=e.value;return i?e.tag||e.className?e:(t=i.indexOf("."),0===t?e.className=i.substring(1):t==-1?e.tag=i:(e.tag=i.substring(0,t),e.className=i.substring(t+1)),e):e},command:function(t){var i=this,o=t.value;return o=this.toFormattingItem(o),new n.FormatCommand({range:t.range,formatter:function(){var t,r=(o.tag||o.context||"span").split(","),a=[{tags:r,attr:{className:o.className||""}}];return t=e.inArray(r[0],l.inlineElements)>=0?new n.GreedyInlineFormatter(a):new n.GreedyBlockFormatter(a),t.editor=i.editor,t}})},initialize:function(e,t){var n=t.editor,r=this.options,a=r.name,s=this;s.editor=n,e.width(r.width),e.kendoSelectBox({dataTextField:"text",dataValueField:"value",dataSource:r.items||n.options[a],title:n.options.messages[a],autoSize:!0,change:function(){var e=this.dataItem();e&&o.exec(n,a,e.toJSON())},dataBound:function(){var e,t=this.dataSource.data();for(e=0;e#:data.text#')}),e.addClass("k-decorated").closest(".k-widget").removeClass("k-"+a).find("*").addBack().attr("unselectable","on")},getFormattingValue:function(t,i){var n,o,r,a,s,l,d;for(n=0;n=0;t--)i=e[t],this.immutableParent(i)||this.clean(i);this.releaseRange(n)},clean:function(i){var o,r,a,s,d;if(i&&!l.isMarker(i)){if(o=l.name(i),"ul"==o||"ol"==o)for(r=new n.ListFormatter(o),a=i.previousSibling,s=i.nextSibling,r.unwrap(i);a&&a!=s;a=a.nextSibling)this.clean(a);else if("blockquote"==o)l.changeTag(i,"p");else if(1!=i.nodeType||l.insignificant(i))t(i);else{for(d=i.childNodes.length-1;d>=0;d--)this.clean(i.childNodes[d]);i.removeAttribute("style"),i.removeAttribute("class")}e.inArray(o,this.tagsToClean)>-1&&l.unwrap(i)}},immutableParent:function(e){return this.immutables()&&n.Immutables.immutableParent(e)}});e.extend(n,{FormattingTool:f,CleanFormatCommand:p}),u("formatting",new f({template:new r({template:d.dropDownListTemplate,title:"Format"})})),u("cleanFormatting",new o({command:p,template:new r({template:d.buttonTemplate,title:"Clean formatting"})}))}(window.kendo.jQuery)},"function"==typeof define&&define.amd?define:function(e,t,i){(i||t)()}),function(e,define){define("editor/toolbar.min",["editor/formatting.min"],e)}(function(){!function(e,t){var i,n=window.kendo,o=n.ui,r=o.editor,a=o.Widget,s=e.extend,l=e.proxy,d=n.keys,c=".kendoEditor",u=n.ui.editor.EditorUtils,f=n.ui.editor.ToolTemplate,p=n.ui.editor.Tool,m=n._outerWidth,h=n._outerHeight,g="overflowAnchor",b=".k-tool-group:visible a.k-tool:not(.k-state-disabled),.k-tool.k-overflow-anchor:visible,.k-tool-group:visible .k-widget.k-colorpicker,.k-tool-group:visible .k-selectbox,.k-tool-group:visible .k-dropdown,.k-tool-group:visible .k-combobox .k-input",v={"k-i-sup-script":"superscript","k-i-sub-script":"subscript","k-i-align-left":"justifyLeft","k-i-align-center":"justifyCenter","k-i-align-right":"justifyRight","k-i-align-justify":"justifyFull","k-i-list-unordered":"insertUnorderedList","k-i-list-ordered":"insertOrderedList","k-i-login":"import","k-i-indent-increase":"indent","k-i-indent-decrease":"outdent","k-i-link-horizontal":"createLink","k-i-unlink-horizontal":"unlink","k-i-image":"insertImage","k-i-file-add":"insertFile","k-i-html":"viewHtml","k-i-foreground-color":"foreColor","k-i-paint":"backColor","k-i-table-insert":"createTable","k-i-table-column-insert-left":"addColumnLeft","k-i-table-column-insert-right":"addColumnRight","k-i-table-row-insert-above":"addRowAbove","k-i-table-row-insert-below":"addRowBelow","k-i-table-row-delete":"deleteRow","k-i-table-column-delete":"deleteColumn","k-i-table-properties":"tableWizard","k-i-table-wizard":"tableWizardInsert","k-i-clear-css":"cleanFormatting"},k=p.extend({initialize:function(t,i){t.attr({unselectable:"on"});var n=i.editor.toolbar;t.attr("aria-controls",i.editor.element.attr("id")).on("click",e.proxy(function(){this.overflowPopup.toggle()},n))},options:{name:g},command:e.noop,update:e.noop,destroy:e.noop});u.registerTool(g,new k({key:"",ctrl:!0,template:new f({template:u.overflowAnchorTemplate})})),i=a.extend({init:function(e,t){var i=this;t=s({},t,{name:"EditorToolbar"}),a.fn.init.call(i,e,t),t.popup&&i._initPopup(),t.resizable&&t.resizable.toolbar&&(i._resizeHandler=n.onResize(function(){i.resize()}),i.element.addClass("k-toolbar-resizable"))},events:["execute"],groups:{basic:["bold","italic","underline","strikethrough"],scripts:["subscript","superscript"],alignment:["justifyLeft","justifyCenter","justifyRight","justifyFull"],links:["insertImage","insertFile","createLink","unlink"],lists:["insertUnorderedList","insertOrderedList","indent","outdent"],tables:["createTable","addColumnLeft","addColumnRight","addRowAbove","addRowBelow","deleteRow","deleteColumn"],advanced:["viewHtml","cleanFormatting","print","pdf","exportAs","import"],fonts:["fontName","fontSize"],colors:["foreColor","backColor"]},overflowFlaseTools:["formatting","fontName","fontSize","foreColor","backColor","insertHtml"],_initPopup:function(){var t=this;this.window=e(this.element).wrap("
      ").parent().prepend("").kendoWindow({title:!1,resizable:!1,draggable:{dragHandle:".k-editortoolbar-dragHandle"},animation:{open:{effects:"fade:in"},close:{effects:"fade:out"}},minHeight:42,visible:!1,autoFocus:!1,actions:[],dragend:function(){this._moved=!0}}).on("mousedown",function(i){e(i.target).is(".k-icon")||(t.preventPopupHide=!0)}).on("focusout",function(){t.options.editor.element.focusout()}).data("kendoWindow")},_toggleOverflowStyles:function(e,t){e.find("li").toggleClass("k-item k-state-default",t).find(".k-tool:not(.k-state-disabled),.k-overflow-button").toggleClass("k-overflow-button k-button",t)},_initOverflowPopup:function(t){var i=this,n="
        ";i.overflowPopup=e(n).appendTo("body").kendoPopup({anchor:t,origin:"bottom right",position:"top right",copyAnchorStyles:!1,open:function(e){this.element.is(":empty")&&e.preventDefault(),i._toggleOverflowStyles(this.element,!0),t.attr("aria-expanded",!0)},close:function(){t.attr("aria-expanded",!1)},activate:l(i.focusOverflowPopup,i)}).data("kendoPopup")},items:function(){var e,t,i=this.options.resizable&&this.options.resizable.toolbar;return t=this.element.children().find("> *, select"),i&&(e=this.overflowPopup,t=t.add(e.element.children().find("> *"))),t},focused:function(){return this.element.find(".k-state-focused").length>0||this.preventPopupHide||this.overflowPopup&&this.overflowPopup.visible()},toolById:function(e){var t,i=this.tools;for(t in i)if(t.toLowerCase()==e)return i[t]},toolGroupFor:function(t){var i,n=this.groups;if(this.isCustomTool(t))return"custom";for(i in n)if(e.inArray(t,n[i])>=0)return i},bindTo:function(t){var i=this,n=i.window;i._editor&&i._editor.unbind("select",l(i.resize,i)),i._editor=t,i.options.resizable&&i.options.resizable.toolbar&&t.options.tools.push(g),i.tools=i.expandTools(t.options.tools),i.render(),i.element.find(".k-combobox .k-input").keydown(function(t){var i=e(this).closest(".k-combobox").data("kendoComboBox"),n=t.keyCode;n==d.RIGHT||n==d.LEFT?i.close():n==d.DOWN&&(i.dropDown.isOpened()||(t.stopImmediatePropagation(),i.open()))}),i._attachEvents(),i.items().each(function(){var n,o=i._toolName(this),r="moreVertical"!==o?i.tools[o]:i.tools.overflowAnchor,a=r&&r.options,s=t.options.messages,l=a&&a.tooltip||s[o],d=e(this);r&&r.initialize&&("fontSize"!=o&&"fontName"!=o||(n=s[o+"Inherit"],d.find("input").val(n).end().find("span.k-input").text(n).end()),r.initialize(d,{title:i._appendShortcutSequence(l,r),editor:i._editor}),d.closest(".k-widget",i.element).addClass("k-editor-widget"),d.closest(".k-colorpicker",i.element).next(".k-colorpicker").addClass("k-editor-widget"))}),t.bind("select",l(i.resize,i)),i.update(),n&&n.wrapper.css({top:"",left:"",width:""})},show:function(){var e,t,i,o=this,r=o.window,a=o.options.editor,s=n.support.browser;r&&(e=r.wrapper,t=a.element,e.is(":visible")&&o.window.options.visible||(e[0].style.width||e.width(m(t)-parseInt(e.css("border-left-width"),10)-parseInt(e.css("border-right-width"),10)),r._moved||(i=t.offset(),e.css({top:Math.max(0,parseInt(i.top,10)-h(e)-parseInt(o.window.element.css("padding-bottom"),10)),left:Math.max(0,parseInt(i.left,10))})),(s.msie||s.edge)&&o._overlaps(t)?setTimeout(function(){r.open()},0):r.open()))},_overlaps:function(e){var t=this.window.wrapper,i=t.offset(),n=i.left,o=i.top,r=e.offset(),a=r.left,s=r.top;return!(a+e.width()n+t.width()||s+e.height()o+t.height())},hide:function(){this.window&&this.window.close()},focus:function(){var e="tabIndex",t=this.element,i=this._editor.element.attr(e);t.attr(e,i||0).focus().find(b).first().focus(),i||0===i||t.removeAttr(e)},focusOverflowPopup:function(){var e="tabIndex",t=this.overflowPopup.element,i=this._editor.element.attr(e);t.closest(".k-animation-container").addClass("k-overflow-wrapper"),t.attr(e,i||0).find(b).first().focus(),i||0===i||t.removeAttr(e)},_appendShortcutSequence:function(e,t){if(!t.key)return e;var i=e+" (";return t.ctrl&&(i+="Ctrl + "),t.shift&&(i+="Shift + "),t.alt&&(i+="Alt + "),i+=t.key+")"},_nativeTools:["insertLineBreak","insertParagraph","redo","undo","autoLink"],tools:{},isCustomTool:function(e){return!(e in n.ui.Editor.defaultTools)},expandTools:function(t){var i,o,a,l,d=this._nativeTools,c=n.deepExtend({},n.ui.Editor.defaultTools),u={};for(o=0;o"),f.data("overflow",e.inArray(t,C)===-1)):f=e("
      • ")}var r,a,s,d,c,u,f,p,m=this,h=m.tools,b=m._editor.element,v=m.element.empty(),k=m._editor.options.tools,y=n.support.browser,w=0,x=m.options.resizable&&m.options.resizable.toolbar,C=this.overflowFlaseTools;for(v.empty(),k.length&&(d=k[0].name||k[0]),o(d,C),p=0;p").appendTo(m.element),o(d,C)),a&&(u=m.toolGroupFor(d),c==u&&d!=g||(i(),o(d,C),c=u),d==g&&(a.options.title=m.options.messages.overflowAnchor),a=t(a),s=e(a).appendTo(f),"custom"==u&&(i(),o(d,C)),r.exec&&s.hasClass("k-tool")&&s.click(l(r.exec,b[0])));i(),e(m.element).children(":has(> .k-tool)").addClass("k-button-group"),m.options.popup&&y.msie&&y.version<9&&m.window.wrapper.find("*").attr("unselectable","on"),m.updateGroups(),x&&m._initOverflowPopup(m.element.find(".k-overflow-anchor")),m.angular("compile",function(){return{elements:m.element}})},updateGroups:function(){e(this.element).children().each(function(){e(this).children().filter(function(){return!e(this).hasClass("k-state-disabled")}).removeClass("k-group-end").first().addClass("k-group-start").end().last().addClass("k-group-end").end()})},decorateFrom:function(t){this.items().filter(".k-decorated").each(function(){var i=e(this).data("kendoSelectBox");i&&i.decorate(t)})},destroy:function(){a.fn.destroy.call(this);var e,t=this.tools;for(e in t)t[e].destroy&&t[e].destroy();this.window&&this.window.destroy(),this._resizeHandler&&n.unbindResize(this._resizeHandler),this.overflowPopup&&this.overflowPopup.destroy()},_attachEvents:function(){var t=this,i=t.overflowPopup?t.overflowPopup.element:e([]);t.attachToolsEvents(t.element.add(i))},attachToolsEvents:function(t){var i=this,o="[role=button].k-tool",r=o+":not(.k-state-disabled)",a=o+".k-state-disabled",s=".k-dropdown",l=".k-colorpicker",u=[o,s,l].join(",");t.off(c).on("mouseenter"+c,r,function(){e(this).addClass("k-state-hover")}).on("mouseleave"+c,r,function(){e(this).removeClass("k-state-hover")}).on("mousedown"+c,u,function(e){e.preventDefault()}).on("keydown"+c,b,function(t){function o(e,t,i){var n=t.find(b),o=n.index(l)+e;return i&&(o=Math.max(0,Math.min(n.length-1,o))),n[o]}var r,a,s,l=this,c=i.options.resizable&&i.options.resizable.toolbar,u=n.support.isRtl(i.element)?-1:1,f=t.keyCode;f==d.RIGHT||f==d.LEFT?a=e(l).is(".k-dropdown")?e(l):o(f==d.RIGHT?1*u:-1*u,i.element,!0):!c||f!=d.UP&&f!=d.DOWN?f==d.HOME?(a=i.element.find(b)[0],t.preventDefault()):f==d.END?(r=i.element.find(b).filter(function(){return"hidden"!==e(this).css("visibility")}),a=r[r.length-1],t.preventDefault()):f==d.ESC?(i.overflowPopup&&i.overflowPopup.visible()&&i.overflowPopup.close(),a=i._editor):f!=d.TAB||t.ctrlKey||t.altKey||(s=c&&e(l.parentElement).hasClass("k-overflow-tool-group")?i.overflowPopup.element:i.element,t.shiftKey?a=o(-1,s):(a=o(1,s),a&&"hidden"!==e(a).closest(".k-overflow-tools").css("visibility")||(a=i._editor))):a=o(f==d.DOWN?1:-1,i.overflowPopup.element,!0),a&&(t.preventDefault(),a.focus()),f!==d.ENTER&&f!==d.SPACEBAR||!e(l).is("a")||e(l).attr("href")||i._executeToolCommand(l,t)}).on("click"+c,r,function(e){i._executeToolCommand(this,e)}).on("click"+c,a,function(e){e.preventDefault()})},_executeToolCommand:function(t,i){var n=this,o=e(t);i.preventDefault(),i.stopPropagation(),o.removeClass("k-state-hover"),o.is("[data-popup]")||n._editor.exec(n._toolName(t))},_toolName:function(t){var i,o,r;if(t)return i=t.className,/k-tool\b/i.test(i)&&(i=t.firstChild.className), -o=e.grep(i.split(" "),function(e){return!/^k-(widget|tool|tool-icon|icon|state-hover|header|combobox|dropdown|selectbox|colorpicker)$/i.test(e)}),o[0]?(r=o[0],v[r]&&(r=v[r]),r.indexOf("k-i-")>=0?n.toCamelCase(r.substring(r.indexOf("k-i-")+4)):r.substring(r.lastIndexOf("-")+1)):"custom"},refreshTools:function(){var t=this,i=n.ui.editor,o=t._editor,r=o.getRange(),a=i.RangeUtils.textNodes(r),s=o.options.immutables,l=t._immutablesContext(r);a=i.Dom.filterBy(a,i.Dom.htmlIndentSpace,!0),a.length||(a=[r.startContainer]),t.items().each(function(){var i,n=t.tools[t._toolName(this)];n&&(i=e(this),n.update&&n.update(i,a),s&&t._updateImmutablesState(n,i,l))}),this.update()},_immutablesContext:function(e){if(this._editor.options.immutables){var t=n.ui.editor;return e.collapsed?t.Immutables.immutablesContext(e):0===t.RangeUtils.editableTextNodes(e).length}},_updateImmutablesState:function(i,n,o){var a,s,l,d,c,u=i.name,f=n,p=i.options.trackImmutables;if(p===t&&(p=e.inArray(u,r.Immutables.toolsToBeUpdated)>-1),p){if(a=o?"none":"",!n.is(".k-tool")){s=n.data();for(l in s)if(l.match(/^kendo[A-Z][a-zA-Z]*/)){d=s[l],f=d.wrapper;break}}f.css("display",a),c=f.closest("li"),0===c.children(":visible").length&&c.css("display",a)}},update:function(){this.updateGroups()},_resize:function(e){var t=e.width,i=this.options.resizable&&this.options.resizable.toolbar,n=this.overflowPopup;this.refreshTools(),i&&(n.visible()&&n.close(!0),this._refreshWidths(),this._shrink(t),this._stretch(t),this._toggleOverflowStyles(this.element,!1),this._toggleOverflowStyles(this.overflowPopup.element,!0),this.element.children("li.k-overflow-tools").css("visibility",n.element.is(":empty")?"hidden":"visible"))},_refreshWidths:function(){this.element.children("li").each(function(t,i){var n=e(i);n.data("outerWidth",m(n,!0))})},_shrink:function(e){var t,i,n;if(e=0&&(t=i.eq(n),!(e>this._groupsWidth()));n--)this._hideGroup(t)},_stretch:function(e){var t,i,n;if(e>this._groupsWidth())for(i=this._hiddenGroups(),n=0;ne(i).data("position")?1:-1}),i},_visibleGroups:function(){return this.element.children("li.k-tool-group, li.k-overflow-tools").filter(":visible")},_groupsWidth:function(){var t=0;return this._visibleGroups().each(function(){t+=e(this).data("outerWidth")}),Math.ceil(t)},_hideGroup:function(e){if(e.data("overflow")){var t=this.overflowPopup;e.detach().prependTo(t.element).addClass("k-overflow-tool-group")}else e.hide()},_showGroup:function(t,i){var n,o;return!!(t.length&&i>this._groupsWidth()+t.data("outerWidth"))&&(t.hasClass("k-overflow-tool-group")?(n=t.data("position"),0===n?t.detach().prependTo(this.element):(o=this.element.children().filter(function(t,i){return e(i).data("position")===n-1}),t.detach().insertAfter(o)),t.removeClass("k-overflow-tool-group")):t.show(),!0)}}),e.extend(r,{Toolbar:i})}(window.jQuery||window.kendo.jQuery)},"function"==typeof define&&define.amd?define:function(e,t,i){(i||t)()}),function(e,define){define("editor/tables.min",["editor/toolbar.min"],e)}(function(){!function(e,t){var i=window.kendo,n=e.extend,o=e.proxy,r=i.ui.editor,a=r.Dom,s=r.EditorUtils,l=r.RangeUtils,d=r.Command,c="kendoEditor",u="k-state-active",f="k-state-selected",p=r.Tool,m=r.ToolTemplate,h=r.InsertHtmlCommand,g=r.BlockFormatFinder,b=r.EditorUtils.registerTool,v=i.getTouches,k=i.template,y="#=content#",w=new g([{tags:["table"]}]),x=h.extend({init:function(t){var i=e.extend({postProcess:this.postProcess,skipCleaners:!0},t||{});h.fn.init.call(this,i)},_tableHtml:function(e,t){var i,n;return e=e||1,t=t||1,i=k(y)({width:100/t,content:r.emptyTableCellContent}),n=100/e,""+Array(e+1).join(""+Array(t+1).join(i)+"")+"
        "},postProcess:function(t,i){var n=e("table[data-last]",t.document).removeAttr("data-last");i.setStart(n.find("td")[0],0),i.collapse(!0),t.selectRange(i)},exec:function(){var e=this.options;e.html=this._tableHtml(e.rows,e.columns),h.fn.exec.call(this)}}),C=p.extend({initialize:function(t,i){var n,a,l,d;p.fn.initialize.call(this,t,i),n=e(this.options.popupTemplate).appendTo("body").kendoPopup({anchor:t,copyAnchorStyles:!1,open:o(this._open,this),activate:o(this._activate,this),close:o(this._close,this)}).data("kendoPopup"),t.click(o(this._toggle,this)).keydown(o(this._keydown,this)),a=this._editor=i.editor,this._popup=n,l=new r.TableWizardTool({template:new m({template:s.buttonTemplate,title:a.options.messages.tableWizard}),command:r.TableWizardCommand,insertNewTable:!0}),b("tableWizardInsert",l),d=e("
        "+l.options.template.getHtml()+"
        "),d.appendTo(n.element),a.toolbar&&a.toolbar.attachToolsEvents(d)},popup:function(){return this._popup},_activate:e.noop,_open:function(){this._popup.options.anchor.addClass(u)},_close:function(){this._popup.options.anchor.removeClass(u)},_keydown:function(e){var t=i.keys,n=e.keyCode;n==t.DOWN&&e.altKey?this._popup.open():n==t.ESC&&this._popup.close()},_toggle:function(t){var i=e(t.target).closest(".k-tool");i.hasClass("k-state-disabled")||this.popup().toggle()},update:function(e){var t=this.popup();t.wrapper&&"block"==t.wrapper.css("display")&&t.close(),e.removeClass("k-state-hover")},destroy:function(){this._popup.destroy()}}),T=C.extend({init:function(t){this.cols=8,this.rows=6,C.fn.init.call(this,e.extend(t,{command:x,popupTemplate:"
        "+Array(this.cols*this.rows+1).join("")+"
        "}))},_activate:function(){function t(t){var i=e(window);return{row:Math.floor((t.clientY+i.scrollTop()-u.top)/o)+1,col:Math.floor((t.clientX+i.scrollLeft()-u.left)/n)+1}}var n,o,r=this,a=r._popup.element,s=a.find(".k-ct-cell"),l=s.eq(0),d=s.eq(s.length-1),u=i.getOffset(l),f=i.getOffset(d),p=r.cols,m=r.rows;a.find("*").addBack().attr("unselectable","on"),f.left+=d[0].offsetWidth,f.top+=d[0].offsetHeight,n=(f.left-u.left)/p,o=(f.top-u.top)/m,a.autoApplyNS(c).on("mousemove",function(e){r._setTableSize(t(e))}).on("mouseleave",function(){r._setTableSize()}).on("down",function(e){e.preventDefault();var i=v(e)[0];r._exec(t(i.location))})},_valid:function(e){return e&&e.row>0&&e.col>0&&e.row<=this.rows&&e.col<=this.cols},_exec:function(e){this._valid(e)&&(this._editor.exec("createTable",{rows:e.row,columns:e.col}),this._popup.close())},_setTableSize:function(t){var n=this._popup.element,o=n.find(".k-status"),r=n.find(".k-ct-cell"),a=this.cols,s=this._editor.options.messages;this._valid(t)?(o.text(i.format(s.createTableHint,t.row,t.col)),r.each(function(i){e(this).toggleClass(f,i%a").attr({action:i&&i.proxyURL||"",method:"POST"});return n.append([t.valueInput(),t.exportTypeInput(),t.fileNameInput()]),n},valueInput:function(){var t=this.editor;return e("").attr({value:t.encodedValue(),name:"value",type:"hidden"})},exportTypeInput:function(){var t=this;return e("").attr({value:t.exportType,name:"exportType",type:"hidden"})},fileNameInput:function(){var t=this.editor,i=t.options.exportAs,n=i&&i.fileName||t.element.attr("id")||"editor";return e("").attr({value:n,name:"fileName",type:"hidden"})}}),p=l.extend({init:function(e){var t=this;l.fn.init.call(t,i.deepExtend({},t.options,e)),t.type="kendoSelectBox"},options:{items:u,width:115},command:function(e){var t=e.value;return new r.ExportAsCommand({range:e.range,exportType:t.exportType})},initialize:function(e,t){var n=this,r=t.editor,a=n.options,s=a.name,l=o(n.changeHandler,n),d=a.items||r.options[s];d.unshift({text:r.options.messages[s],value:""}),n.editor=r,e.width(a.width),e.kendoSelectBox({dataTextField:"text",dataValueField:"value",dataSource:d,autoSize:!0,change:l,open:function(e){var t=e.sender;t.items()[0].style.display="none",t.unbind("open")},highlightFirst:!1,template:i.template('#:data.text#')}),e.addClass("k-decorated").closest(".k-widget").removeClass("k-"+s).find("*").addBack().attr("unselectable","on")},changeHandler:function(e){var t=e.sender,i=t.dataItem(),n=i&&i.value;this._exec(n),t.value("")},_exec:function(e){e&&l.exec(this.editor,this.options.name,{exportType:e})},destroy:function(){this._ancestor=null}});n(r,{ExportAsTool:p,ExportAsCommand:f}),d("exportAs",new p({template:new c({template:a.dropDownListTemplate,title:"Export As"})}))}(window.kendo.jQuery)},"function"==typeof define&&define.amd?define:function(e,t,i){(i||t)()}),function(e,define){define("editor/import.min",["editor/main.min"],e)}(function(){!function(e,t){var i=window.kendo,n=e.extend,o=e.proxy,r=i.ui.editor,a=r.EditorUtils,s=r.Command,l=r.Tool,d=a.registerTool,c=r.ToolTemplate,u='
        ',f=s.extend({exec:function(){(this.editor._uploadWidget||this._initializeUploadWidget()).element.click()},_initializeUploadWidget:function(){var t=this,i=t.editor,n=i.options["import"],r=e('').kendoUpload({success:o(t._onUploadSuccess,t),progress:o(t._onUploadProgress,t),select:o(t._onUploadSelect,t),error:o(t._onUploadError,t),complete:o(t._onUploadComplete,t),showFileList:!1,multiple:!1,async:{saveUrl:n.proxyUrl,autoUpload:!0,saveField:"file"},validation:{allowedExtensions:n.allowedExtensions,maxFileSize:n.maxFileSize}}).getKendoUpload();return i._uploadWidget=r,r},_onUploadComplete:function(e){this._trigger("complete",e),e.sender.clearAllFiles(),this._removeLoadingOverlay()},_onUploadSuccess:function(e){this.editor.value(e.response.html.replace(/<\/?body>/gi,"")),this._trigger("success",e)},_onUploadProgress:function(e){this._trigger("progress",e)},_onUploadSelect:function(e){this._trigger("select",e),e.files[0].validationErrors||this._initLoadingOverlay()},_onUploadError:function(e){this._trigger("error",e)},_trigger:function(e,t){var i=this.editor,n=i.options["import"];"function"==typeof n[e]&&n[e].call(i,t)},_initLoadingOverlay:function(){var t=this.editor.body;r.Dom.is(t,"body")?this._iframeWrapper=this._container=this.editor.wrapper.find("iframe").parent().css({position:"relative"}).append(u):this._container=e(t).append(u),i.ui.progress(this._container,!0)},_removeLoadingOverlay:function(){i.ui.progress(this._container,!1),e(this._iframeWrapper).css({position:""}),delete this._container,delete this._iframeWrapper}});n(r,{ImportCommand:f}),d("import",new l({command:f,template:new c({template:a.buttonTemplate,title:"Import"})}))}(window.kendo.jQuery)},"function"==typeof define&&define.amd?define:function(e,t,i){(i||t)()}),function(e,define){define("editor/resizing/resizing-utils.min",["editor/main.min"],e)}(function(){!function(e,t){function i(e){var t=e.value,i=e.min,n=e.max;return f(u(p(t),p(n)),p(i))}function n(t){return t&&!m(t).is("body")&&t.scrollHeight>t.clientHeight?e.support.scrollbar():0}function o(e,t){return r(e)?p(e):p(e)/t*100}function r(e){return typeof e===w&&k.test(e)}function a(e){return typeof e===w&&y.test(e)}function s(e){return p(e)+b}function l(e){return p(e)+v}var d=window,c=d.Math,u=c.min,f=c.max,p=d.parseFloat,m=e.jQuery,h=m.extend,g=e.ui.editor,b="%",v="px",k=/(\d+)(\.?)(\d*)%/,y=/(\d+)(\.?)(\d*)px/,w="string",x={constrain:i,getScrollBarWidth:n,calculatePercentageRatio:o,inPercentages:r,inPixels:a,toPercentages:s,toPixels:l};h(g,{ResizingUtils:x})}(window.kendo)},"function"==typeof define&&define.amd?define:function(e,t,i){(i||t)()}),function(e,define){define("editor/resizing/table-element-resizing.min",["editor/main.min","kendo.resizable.min","editor/resizing/resizing-utils.min"],e)}(function(){!function(e,t){var i=e.jQuery,n=i.extend,o=i.noop,r=i.proxy,a=e.ui.editor,s=e.Class,l="keydown",d="mousedown",c="mouseenter",u="mouseleave",f="mousemove",p="mouseup",m=",",h=".",g=":last-child",b="table",v=s.extend({init:function(e,t){var o=this;o.options=n({},o.options,t),o.options.tags=i.isArray(o.options.tags)?o.options.tags:[o.options.tags],i(e).is(b)&&(o.element=e,o._attachEventHandlers())},destroy:function(){var e=this,t=e.options.eventNamespace;e.element&&(i(e.element).off(t),e.element=null),i(e.options.rootElement).off(l+t),e._destroyResizeHandle()},options:{tags:[],min:0,rootElement:null,eventNamespace:"",rtl:!1,handle:{dataAttribute:"",height:0,width:0,classNames:{},template:""}},_attachEventHandlers:function(){var e=this,t=e.options;i(e.element).on(f+t.eventNamespace,t.tags.join(m),r(e.detectElementBorderHovering,e))},resizingInProgress:function(){var e=this,t=e._resizable;return!!t&&!!t.resizing},resize:o,detectElementBorderHovering:function(e){var t=this,n=t.options,o=n.handle,r=i(e.currentTarget),a=t.resizeHandle,s=o.dataAttribute;t.resizingInProgress()||(!r.is(g)&&t.elementBorderHovered(r,e)?a?a.data(s)&&a.data(s)!==r[0]&&t.showResizeHandle(r,e):t.showResizeHandle(r,e):a&&t._destroyResizeHandle())},elementBorderHovered:o,showResizeHandle:function(e,t){var i=this;0===t.buttons&&(i._initResizeHandle(),i.setResizeHandlePosition(e),i.setResizeHandleDimensions(),i.setResizeHandleDataAttributes(e[0]),i._attachResizeHandleEventHandlers(),i._initResizable(e),i._hideResizeMarker(),i.resizeHandle.show())},_initResizeHandle:function(){var e=this,t=e.options;e._destroyResizeHandle(),e.resizeHandle=i(t.handle.template).appendTo(t.rootElement)},setResizeHandlePosition:o,setResizeHandleDimensions:o,setResizeHandleDataAttributes:function(e){var t=this;t.resizeHandle.data(t.options.handle.dataAttribute,e)},_attachResizeHandleEventHandlers:function(){var e=this,t=e.options,i=t.eventNamespace,n=t.handle.classNames.marker,o=e.resizeHandle;e.resizeHandle.on(d+i,function(){o.find(h+n).show()}).on(p+i,function(){o.find(h+n).hide()})},_hideResizeMarker:function(){var e=this;e.resizeHandle.find(h+e.options.handle.classNames.marker).hide()},_destroyResizeHandle:function(){var e=this;e.resizeHandle&&(e._destroyResizable(),e.resizeHandle.off(e.options.eventNamespace).remove(),e.resizeHandle=null)},_initResizable:function(t){var i=this;i.resizeHandle&&(i._destroyResizable(),i._resizable=new e.ui.Resizable(t,{draggableElement:i.resizeHandle[0],start:r(i.onResizeStart,i),resize:r(i.onResize,i),resizeend:r(i.onResizeEnd,i)}))},_destroyResizable:function(){var e=this;e._resizable&&(e._resizable.destroy(),e._resizable=null)},onResizeStart:function(){this._disableKeyboard()},onResize:function(e){this.setResizeHandleDragPosition(e)},setResizeHandleDragPosition:o,onResizeEnd:function(e){var t=this;t.resize(e),t._destroyResizeHandle(),t._enableKeyboard()},_enableKeyboard:function(){var e=this.options;i(e.rootElement).off(l+e.eventNamespace)},_disableKeyboard:function(){var e=this.options;i(e.rootElement).on(l+e.eventNamespace,function(e){e.preventDefault()})},_forceResizing:function(e){var t=this._resizable;t&&t.userEvents&&t.userEvents._end(e)}}),k=s.extend({create:function(e,t){var n=this,o=t.name,r=t.eventNamespace;i(e.body).on(c+r,b,function(i){var r=i.currentTarget,a=e[o];i.stopPropagation(),a?a.element===r||a.resizingInProgress()||(n._destroyResizing(e,t),n._initResizing(e,r,t)):n._initResizing(e,r,t)}).on(u+r,b,function(r){var a,s=e[o];r.stopPropagation(),!s||s.resizingInProgress()||s.resizeHandle||(a=i(s.element).parents(b)[0],a&&(n._destroyResizing(e,t),n._initResizing(e,a,t)))}).on(u+r,function(){var i=e[o];i&&!i.resizingInProgress()&&n._destroyResizing(e,t)}).on(p+r,function(r){var a,s=e[o];s&&s.resizingInProgress()&&(a=i(r.target).parents(b)[0],a&&(s._forceResizing(r),n._destroyResizing(e,t),n._initResizing(e,a,t)))})},dispose:function(e,t){i(e.body).off(t.eventNamespace)},_initResizing:function(t,i,n){var o=n.name,r=n.type;t[o]=new r(i,{rtl:e.support.isRtl(t.element),rootElement:t.body})},_destroyResizing:function(e,t){var i=t.name;e[i]&&(e[i].destroy(),e[i]=null)}});k.current=new k,v.create=function(e,t){k.current.create(e,t)},v.dispose=function(e,t){k.current.dispose(e,t)},n(a,{TableElementResizing:v})}(window.kendo)},"function"==typeof define&&define.amd?define:function(e,t,i){(i||t)()}),function(e,define){define("editor/resizing/column-resizing.min",["editor/main.min","editor/resizing/resizing-utils.min","editor/resizing/table-element-resizing.min"],e)}(function(){!function(e,t){var i=window,n=i.Math,o=n.abs,r=e.jQuery,a=r.extend,s=e.ui.editor,l=s.TableElementResizing,d=s.ResizingUtils,c=d.constrain,u=d.calculatePercentageRatio,f=d.getScrollBarWidth,p=d.inPercentages,m=d.toPercentages,h=d.toPixels,g=e._outerWidth,b=".kendoEditorColumnResizing",v="k-column-resize-handle",k="k-column-resize-marker",y="body",w="tbody",x="td",C="th",T="tr",_=",",N="width",S=l.extend({options:{tags:[x,C],min:20,rootElement:null,eventNamespace:b,rtl:!1,handle:{dataAttribute:"column",width:10,height:0,classNames:{handle:v,marker:k},template:'
        '}},elementBorderHovered:function(e,t){var i=this,n=i.options,o=n.handle.width,a=e.offset().left+(n.rtl?0:g(e)),s=t.clientX+r(e[0].ownerDocument).scrollLeft();return s>a-o&&s
      • '}},elementBorderHovered:function(e,t){var i=this,n=i.options.handle[C],r=e.offset().top+h(e),a=t.clientY+o(e[0].ownerDocument).scrollTop();return a>r-n&&a
        "},events:[O,F,L,U,M],show:function(){this._setPosition()},_setPosition:function(){var e=this,t=e._positioningStrategy.getPosition();T(e.element).css({top:t.top,left:t.left,position:"absolute"})},_attachEventHandlers:function(){var e=this;T(e.element).on(U+H,S(e._onMouseOver,e)).on(M+H,S(e._onMouseOut,e))},_onMouseOver:function(){this.trigger(U)},_onMouseOut:function(){this.trigger(M)},_addStyles:function(){var e=this;T(e.element).children(Z+B).addClass("k-resize-"+e.options.direction)},_initPositioningStrategy:function(){var e=this,t=e.options;e._positioningStrategy=i.create({name:t.direction,handle:e.element,resizableElement:t.resizableElement,rootElement:t.rootElement,rtl:t.rtl})},_initDraggable:function(){var e=this,t=e.element;!e._draggable&&t&&(e._draggable=new A(t,{dragstart:S(e._onDragStart,e),drag:S(e._onDrag,e),dragend:S(e._onDragEnd,e)}))},_onDragStart:function(){this.trigger(O)},_onDrag:function(e){var t=this;t.trigger(F,t._draggingStrategy.adjustDragDelta({deltaX:e.x.delta,deltaY:e.y.delta,initialDeltaX:e.x.initialDelta,initialDeltaY:e.y.initialDelta}))},_onDragEnd:function(){this.trigger(L)},_destroyDraggable:function(){var e=this;e._draggable&&(e._draggable.destroy(),e._draggable=null)},_initDraggingStrategy:function(){var e=this;e._draggingStrategy=f.create({name:e.options.direction})}}),te=z.extend({init:function(){this._items=[]},register:function(e,t){this._items.push({name:e,type:t})},create:function(e){var t,i,n,o=this._items,r=o.length,a=e.name?e.name.toLowerCase():"";for(n=0;nm?(o=a(d,m),l=r(d,m)):(o=r(d,m),l=a(d,m)),n=y(g(o,l))):n=w(d),c._setColumnsWidth(),u[0].style[L]=n)},_resizeHeight:function(e,t){var n,o,l,d,c=this,u=s(c.element),f=u[0].style[W],p=C(u),m=u.parent(),h=m.height(),k=c._getMaxDimensionValue(W),x=c.options.minHeight,T=c._hasRowsInPixels();0!==e&&(i(c._initialElementHeight)&&(c._initialElementHeight=p),d=b({value:c._initialElementHeight+t,min:x,max:k}),T&&e<0&&c._setRowsHeightInPercentages(),v(f)?(p+e>h?(o=a(d,h),l=r(d,h)):(o=r(d,h),l=a(d,h)),n=y(g(o,l))):n=w(d),u[0].style[W]=n,T&&e<0&&c._setRowsHeightInPixels())},_getMaxDimensionValue:function(e){var t=this,i=s(t.element),n=e.toLowerCase(),o=t.options.rtl?-1:1,r=s(t.element).parent(),a=r[0],l=r[n](),d=o*(e===L?r.scrollLeft():r.scrollTop());return a===i.closest(H)[0]?""!==a.style[n]||v(t.element.style[n])?l+d:1/0:l+d},_setColumnsWidth:function(){function e(e){var t=e.style.width;return""!==t?!!v(t):!!s(e).hasClass(N)}var t,i=this,n=s(i.element),o=n.parent()[0],r=n.closest(H),a=r.closest(B).children(),l=a.length;if(e(n[0])&&o===r[0]&&""===o.style[L])for(t=0;t0)){for(e=0;e0;!i||n===o||l(n,o)||r||e._destroyTableResizing()})},dispose:function(e){s(e.body).off(T)},_initResizing:function(t,i){u.msie||u.mozilla||(t.tableResizing=new X(i,{appendHandlesTo:t.body,rtl:e.support.isRtl(t.element),rootElement:t.body}))}});Y.current=new Y,X.create=function(e){Y.current.create(e)},X.dispose=function(e){Y.current.dispose(e)},d(f,{TableResizing:X})}(window.kendo)},"function"==typeof define&&define.amd?define:function(e,t,i){(i||t)()}),function(e,define){define("editor/immutables.min",["editor/tables.min"],e)}(function(){!function(e,t){var i=window.kendo,n=i.Class,o=i.ui.editor,r=o.Dom,a=i.template,s=o.RangeUtils,l=["ul","ol","tbody","thead","table"],d=["bold","italic","underline","strikethrough","superscript","subscript","forecolor","backcolor","fontname","fontsize","createlink","unlink","autolink","addcolumnleft","addcolumnright","addrowabove","addrowbelow","deleterow","deletecolumn","mergecells","formatting","cleanformatting"],c="k-immutable",u="["+c+"]",f="[contenteditable='false']",p=function(t){return e(t).is("body,.k-editor")},m=function(e){return e.getAttribute&&"false"==e.getAttribute("contenteditable")},h=function(e){return r.closestBy(e,m,p)},g=function(e){var t=h(e.startContainer),i=h(e.endContainer);(t||i)&&(t&&e.setStartBefore(t),i&&e.setEndAfter(i))},b=function(e){if(h(e.commonAncestorContainer))return!0;if(h(e.startContainer)||h(e.endContainer)){var t=s.editableTextNodes(e);if(0===t.length)return!0}return!1},v=function(e){var t,i="",n="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";for(t=e||10;t>0;--t)i+=n.charAt(Math.round(Math.random()*(n.length-1)));return i},k=function(t){var i,n,o,a={empty:!0};return e(t).find(f).each(function(t,s){i=r.name(s),n=v(),o="<"+i+" "+c+"='"+n+"'>",a[n]={node:s,style:e(s).attr("style")},a.empty=!1,e(s).replaceWith(o)}),a},y=function(t,i){var n,o;e(t).find(u).each(function(t,r){n=r.getAttribute(c),o=i[n],e(r).replaceWith(o.node),o.style!=e(o.node).attr("style")&&e(o.node).removeAttr("style").attr("style",o.style)})},w=function(e){var t=i.keys;return e===t.BACKSPACE||e==t.DELETE},x=function(e){var i=e?e.options:t;i&&i.finder&&i.finder._initOptions({immutables:!0})},C=n.extend({init:function(t){this.editor=t,this.serializedImmutables={},this.options=e.extend({},t&&t.options&&t.options.immutables);var i=t.toolbar.tools;x(i.justifyLeft),x(i.justifyCenter),x(i.justifyRight),x(i.justifyFull)},serialize:function(e){var t,i=this._toHtml(e);return i.indexOf(c)===-1?(t=this.randomId(),i=i.replace(/>/," "+c+'="'+t+'">')):t=i.match(/k-immutable\s*=\s*['"](.*)['"]/)[1],this.serializedImmutables[t]=e,i},_toHtml:function(e){var t,i=this.options.serialization,n=typeof i;switch(n){case"string":return a(i)(e);case"function":return i(e);default:return t=r.name(e),"<"+t+">"}},deserialize:function(t){var n=this,o=this.options.deserialization;e(u,t).each(function(){var t=this.getAttribute(c),r=n.serializedImmutables[t];i.isFunction(o)&&o(this,r),e(this).replaceWith(r)}),n.serializedImmutables={}},randomId:function(e){return v(e)},keydown:function(e,t){var i=w(e.keyCode),n=i&&this._cancelDeleting(e,t)||!i&&this._cancelTyping(e,t);if(n)return e.preventDefault(),!0},_cancelTyping:function(e,t){var i=this.editor,n=i.keyboard;return t.collapsed&&!n.typingInProgress&&n.isTypingKey(e)&&b(t)},_cancelDeleting:function(e,t){var n,o,a,s,d=i.keys,c=e.keyCode===d.BACKSPACE,u=e.keyCode==d.DELETE;if(!c&&!u)return!1;if(n=!1,t.collapsed){if(b(t))return!0;if(o=this.nextImmutable(t,u),o&&c&&(a=r.closest(t.commonAncestorContainer,"li"),a&&(s=r.closest(o,"li"),s&&s!==a)))return n;if(o&&!r.tableCell(o)){if(r.parentOfType(o,l)===r.parentOfType(t.commonAncestorContainer,l)){for(;o&&1==o.parentNode.childNodes.length;)o=o.parentNode;if(r.tableCell(o))return n;this._removeImmutable(o,t)}n=!0}}return n},nextImmutable:function(e,t){var i,n=e.commonAncestorContainer;if(r.isBom(n)||t&&s.isEndOf(e,n)||!t&&s.isStartOf(e,n)){if(i=this._nextNode(n,t),i&&r.isBlock(i)&&!h(i))for(;i&&i.children&&i.children[t?0:i.children.length-1];)i=i.children[t?0:i.children.length-1];return h(i)}},_removeImmutable:function(e,t){var i=this.editor,n=new o.RestorePoint(t,i.body);r.remove(e),o._finishUpdate(i,n)},_nextNode:function(e,t){for(var i,n=t?"nextSibling":"previousSibling",o=e;o&&!i;)i=o[n],i&&r.isDataNode(i)&&/^\s|[\ufeff]$/.test(i.nodeValue)&&(o=i,i=o[n]),i||(o=o.parentNode);return i}});C.immutable=m,C.immutableParent=h,C.expandImmutablesIn=g,C.immutablesContext=b,C.toolsToBeUpdated=d,C.removeImmutables=k,C.restoreImmutables=y,o.Immutables=C}(window.kendo.jQuery)},"function"==typeof define&&define.amd?define:function(e,t,i){(i||t)()}),function(e,define){define("editor/table-wizard/table-wizard-command.min",["editor/tables.min"],e)}(function(){!function(e,t){var i=window.kendo,n=i.ui.editor,o=n.EditorUtils,r=n.RangeUtils,a=n.Dom,s=o.registerTool,l=n.ToolTemplate,d=n.Command,c=new n.BlockFormatFinder([{tags:["table"]}]),u=new n.BlockFormatFinder([{tags:["td","th"]}]),f=/([a-z]+|%)$/i,p=d.extend({exec:function(){var o=this,r=o.editor,a=o.range=o.lockRange(),s=o._sourceTable=o.options.insertNewTable?t:o._selectedTable(a),l=o._selectedTableCells=s?o._selectedCells(a):t,d={visible:!1,messages:r.options.messages,closeCallback:e.proxy(o.onDialogClose,o),table:o.parseTable(s,l),dialogOptions:r.options.dialogOptions,isRtl:i.support.isRtl(r.wrapper)},c=new n.TableWizardDialog(d);c.open()},onDialogClose:function(e){var t=this;t.releaseRange(t.range),e&&(t.options.insertNewTable?t.insertTable(t.createNewTable(e)):t.updateTable(e,t._sourceTable,t._selectedTableCells))},releaseRange:function(e){var t=this,i=t.editor.document;a.windowFromDocument(i).focus(),d.fn.releaseRange.call(t,e)},insertTable:function(e){var t=this.range;t.insertNode(e),t.collapse(!0),this.editor.selectRange(t)},updateTable:function(t,i,n){for(var o,r,s,l,d,c,u,f,p=this,m=e(i.rows).toArray(),h=t.tableProperties,g=h.rows,b=h.columns,v=function(e){return e[e.length-1]};n.length>1;)n.pop();if(o=n.length?v(n).parentNode:v(m),p._deleteTableRows(m,m.length-g),m.lengthb&&e(m).each(function(e,t){for(;t.cells.length>b;)t.deleteCell(-1)}),m[0].cells.length-1}),!!i.length},_insertCells:function(e,t,i){i=isNaN(i)?-1:i;for(var n,o=0;o",valueTemplate:""},s={dataSource:[{className:"k-icon k-i-table-align-top-left",value:"left top"},{className:"k-icon k-i-table-align-top-center",value:"center top"},{className:"k-icon k-i-table-align-top-right",value:"right top"},{className:"k-icon k-i-table-align-middle-left",value:"left middle"},{className:"k-icon k-i-table-align-middle-center",value:"center middle"},{className:"k-icon k-i-table-align-middle-right",value:"right middle"},{className:"k-icon k-i-table-align-bottom-left",value:"left bottom"},{className:"k-icon k-i-table-align-bottom-center",value:"center bottom"},{className:"k-icon k-i-table-align-bottom-right",value:"right bottom"},{className:"k-icon k-i-align-remove",value:""}],dataTextField:"className",dataValueField:"value",template:"",valueTemplate:""},l={dataSource:[{className:"k-icon k-i-table-align-top-left",value:"left top"},{className:"k-icon k-i-table-align-top-center",value:"center top"},{className:"k-icon k-i-table-align-top-right",value:"right top"},{className:"k-icon k-i-table-align-bottom-left",value:"left bottom"},{className:"k-icon k-i-table-align-bottom-center",value:"center bottom"},{className:"k-icon k-i-table-align-bottom-right",value:"right bottom"},{className:"k-icon k-i-align-remove",value:""}],dataTextField:"className",dataValueField:"value",template:"",valueTemplate:""},d='
        • #= messages.tableTab #
        • #= messages.cellTab #
        • #= messages.accessibilityTab #
         
         
         
        ',c=i.Class.extend({init:function(e){this.options=e},open:function(){function t(e){e.preventDefault(),l.destroy(),r.destroy()}function n(e){l.collectDialogValues(u),t(e),l.change&&l.change(),d.closeCallback(u)}function o(e){t(e),d.closeCallback()}var r,a,s,l=this,d=l.options,c=d.dialogOptions,u=d.table,f=d.messages,p=i.support.browser.msie;c.close=o,c.title=f.tableWizard,c.visible=d.visible,r=e(l._dialogTemplate(f)).appendTo(document.body).kendoWindow(c).closest(".k-window").toggleClass("k-rtl",d.isRtl).end().find(".k-dialog-ok").click(n).end().find(".k-dialog-close").click(o).end().data("kendoWindow"),a=r.element,l._initTabStripComponent(a),l._initTableViewComponents(a,u),l._initCellViewComponents(a,u),l._initAccessibilityViewComponents(a,u),r.center(),r.open(),p&&(s=a.closest(".k-window").height(),a.css("max-height",s))},_initTabStripComponent:function(e){var t=this.components={};t.tabStrip=e.find("#k-table-wizard-tabs").kendoTabStrip({animation:!1}).data("kendoTabStrip")},collectDialogValues:function(){var e=this,t=e.options.table;e._collectTableViewValues(t),e._collectCellViewValues(t),e._collectAccessibilityViewValues(t)},_collectTableViewValues:function(e){var t=this.components.tableView,i=e.tableProperties;i.width=t.width.value(),i.widthUnit=t.widthUnit.value(),i.height=t.height.value(),i.columns=t.columns.value(),i.rows=t.rows.value(),i.heightUnit=t.heightUnit.value(),i.cellSpacing=t.cellSpacing.value(),i.cellPadding=t.cellPadding.value(),i.alignment=t.alignment.value(),i.bgColor=t.bgColor.value(),i.className=t.className.value,i.id=t.id.value,i.borderWidth=t.borderWidth.value(),i.borderColor=t.borderColor.value(),i.borderStyle=t.borderStyle.value(),i.collapseBorders=t.collapseBorders.checked},_collectCellViewValues:function(e){var t=e.cellProperties={},i=this.components.cellView;t.selectAllCells=i.selectAllCells.checked,t.width=i.width.value(),t.widthUnit=i.widthUnit.value(),t.height=i.height.value(),t.heightUnit=i.heightUnit.value(),t.cellMargin=i.cellMargin.value(),t.cellPadding=i.cellPadding.value(),t.alignment=i.alignment.value(),t.bgColor=i.bgColor.value(),t.className=i.className.value,t.id=i.id.value,t.borderWidth=i.borderWidth.value(),t.borderColor=i.borderColor.value(),t.borderStyle=i.borderStyle.value(),t.wrapText=i.wrapText.checked},_collectAccessibilityViewValues:function(e){var t=e.tableProperties,i=this.components.accessibilityView;t.captionContent=i.captionContent.value,t.captionAlignment=i.captionAlignment.value(),t.summary=i.summary.value,t.cellsWithHeaders=i.cellsWithHeaders.checked},_addUnit:function(t,i){i&&e.inArray(i,t)==-1&&t.push(i)},_initTableViewComponents:function(e,t){var i=this.components,n=i.tableView={},a=t.tableProperties=t.tableProperties||{};a.borderStyle=a.borderStyle||"",this._addUnit(o,a.widthUnit),this._addUnit(o,a.heightUnit),this._initNumericTextbox(e.find("#k-editor-table-width"),"width",a,n),this._initNumericTextbox(e.find("#k-editor-table-height"),"height",a,n),this._initNumericTextbox(e.find("#k-editor-table-columns"),"columns",a,n,{min:1,value:4}),this._initNumericTextbox(e.find("#k-editor-table-rows"),"rows",a,n,{min:1,value:4}),this._initDropDownList(e.find("#k-editor-table-width-type"),"widthUnit",a,n,o),this._initDropDownList(e.find("#k-editor-table-height-type"),"heightUnit",a,n,o),this._initNumericTextbox(e.find("#k-editor-table-cell-spacing"),"cellSpacing",a,n),this._initNumericTextbox(e.find("#k-editor-table-cell-padding"),"cellPadding",a,n),this._initTableAlignmentDropDown(e.find("#k-editor-table-alignment"),a),this._initColorPicker(e.find("#k-editor-table-bg"),"bgColor",a,n),this._initInput(e.find("#k-editor-css-class"),"className",a,n),this._initInput(e.find("#k-editor-id"),"id",a,n),this._initNumericTextbox(e.find("#k-editor-border-width"),"borderWidth",a,n), -this._initColorPicker(e.find("#k-editor-border-color"),"borderColor",a,n),this._initDropDownList(e.find("#k-editor-border-style"),"borderStyle",a,n,r),this._initCheckbox(e.find("#k-editor-collapse-borders"),"collapseBorders",a,n)},_initCellViewComponents:function(e,t){var i,n=this.components,a=n.cellView={};t.selectedCells=t.selectedCells=t.selectedCells||[],i=t.selectedCells[0]||{borderStyle:"",wrapText:!0},this._addUnit(o,i.widthUnit),this._addUnit(o,i.heightUnit),this._initCheckbox(e.find("#k-editor-selectAllCells"),"selectAllCells",t.tableProperties,a),this._initNumericTextbox(e.find("#k-editor-cell-width"),"width",i,a),this._initNumericTextbox(e.find("#k-editor-cell-height"),"height",i,a),this._initDropDownList(e.find("#k-editor-cell-width-type"),"widthUnit",i,a,o),this._initDropDownList(e.find("#k-editor-cell-height-type"),"heightUnit",i,a,o),this._initNumericTextbox(e.find("#k-editor-table-cell-margin"),"cellMargin",i,a),this._initNumericTextbox(e.find("#k-editor-table-cells-padding"),"cellPadding",i,a),this._initCellAlignmentDropDown(e.find("#k-editor-cell-alignment"),i),this._initColorPicker(e.find("#k-editor-cell-bg"),"bgColor",i,a),this._initInput(e.find("#k-editor-cell-css-class"),"className",i,a),this._initInput(e.find("#k-editor-cell-id"),"id",i,a),this._initNumericTextbox(e.find("#k-editor-cell-border-width"),"borderWidth",i,a),this._initColorPicker(e.find("#k-editor-cell-border-color"),"borderColor",i,a),this._initDropDownList(e.find("#k-editor-cell-border-style"),"borderStyle",i,a,r),this._initCheckbox(e.find("#k-editor-wrap-text"),"wrapText",i,a)},_initAccessibilityViewComponents:function(e,t){var i=this.components,n=i.accessibilityView={},o=t.tableProperties;this._initInput(e.find("#k-editor-table-caption"),"captionContent",o,n),this._initAccessibilityAlignmentDropDown(e.find("#k-editor-accessibility-alignment"),o),this._initInput(e.find("#k-editor-accessibility-summary"),"summary",o,n),this._initCheckbox(e.find("#k-editor-cells-headers"),"cellsWithHeaders",o,n)},_initNumericTextbox:function(t,i,o,r,a){var s=r[i]=t.kendoNumericTextBox(a?e.extend({},n,a):n).data("kendoNumericTextBox");i in o&&s.value(parseInt(o[i],10))},_initDropDownList:function(e,t,i,n,o){var r=n[t]=e.kendoDropDownList({dataSource:o}).data("kendoDropDownList");this._setComponentValue(r,i,t)},_initTableAlignmentDropDown:function(e,t){var i=this.options.messages,n=this.components.tableView,o=a.dataSource;o[0].tooltip=i.alignLeft,o[1].tooltip=i.alignCenter,o[2].tooltip=i.alignRight,o[3].tooltip=i.alignRemove,this._initAlignmentDropDown(e,a,"alignment",t,n)},_initCellAlignmentDropDown:function(e,t){var i=this.options.messages,n=this.components.cellView,o=s.dataSource;o[0].tooltip=i.alignLeftTop,o[1].tooltip=i.alignCenterTop,o[2].tooltip=i.alignRightTop,o[3].tooltip=i.alignLeftMiddle,o[4].tooltip=i.alignCenterMiddle,o[5].tooltip=i.alignRightMiddle,o[6].tooltip=i.alignLeftBottom,o[7].tooltip=i.alignCenterBottom,o[8].tooltip=i.alignRightBottom,o[9].tooltip=i.alignRemove,this._initAlignmentDropDown(e,s,"alignment",t,n)},_initAccessibilityAlignmentDropDown:function(e,t){var i=this.options.messages,n=this.components.accessibilityView,o=l.dataSource;o[0].tooltip=i.alignLeftTop,o[1].tooltip=i.alignCenterTop,o[2].tooltip=i.alignRightTop,o[3].tooltip=i.alignLeftBottom,o[4].tooltip=i.alignCenterBottom,o[5].tooltip=i.alignRightBottom,o[6].tooltip=i.alignRemove,this._initAlignmentDropDown(e,l,"captionAlignment",t,n)},_initAlignmentDropDown:function(e,t,i,n,o){var r=o[i]=e.kendoDropDownList(t).data("kendoDropDownList");r.list.addClass("k-align").css("width","110px"),this._setComponentValue(r,n,i)},_setComponentValue:function(e,t,i){i in t&&e.value(t[i])},_initColorPicker:function(e,t,i,n){var o=n[t]=e.kendoColorPicker({buttons:!1,clearButton:!0}).data("kendoColorPicker");i[t]&&o.value(i[t])},_initInput:function(e,t,i,n){var o=n[t]=e.get(0);t in i&&(o.value=i[t])},_initCheckbox:function(e,t,i,n){var o=n[t]=e.get(0);t in i&&(o.checked=i[t])},destroy:function(){this._destroyComponents(this.components.tableView),this._destroyComponents(this.components.cellView),this._destroyComponents(this.components.accessibilityView),this._destroyComponents(this.components),delete this.components},_destroyComponents:function(e){for(var t in e)e[t].destroy&&e[t].destroy(),delete e[t]},_dialogTemplate:function(e){return i.template(d)({messages:e})}});i.ui.editor.TableWizardDialog=c}(window.kendo.jQuery)},"function"==typeof define&&define.amd?define:function(e,t,i){(i||t)()}),function(e,define){define("kendo.editor.min",["kendo.combobox.min","kendo.dropdownlist.min","kendo.resizable.min","kendo.window.min","kendo.colorpicker.min","kendo.imagebrowser.min","kendo.tabstrip.min","kendo.numerictextbox.min","util/undoredostack.min","editor/main.min","editor/dom.min","editor/serializer.min","editor/range.min","editor/system.min","editor/inlineformat.min","editor/formatblock.min","editor/linebreak.min","editor/lists.min","editor/link.min","editor/file.min","editor/image.min","editor/components.min","editor/indent.min","editor/viewhtml.min","editor/formatting.min","editor/toolbar.min","editor/tables.min","editor/export.min","editor/import.min","editor/resizing/column-resizing.min","editor/resizing/row-resizing.min","editor/resizing/table-resizing.min","editor/resizing/table-resize-handle.min","editor/immutables.min","editor/table-wizard/table-wizard-command.min","editor/table-wizard/table-wizard-dialog.min"],e)}(function(){return window.kendo},"function"==typeof define&&define.amd?define:function(e,t,i){(i||t)()});; \ No newline at end of file +!function(e,define){define("kendo.core.min",["jquery"],e)}(function(){return function(e,t,n){function i(){}function o(e,t){if(t)return"'"+e.split("'").join("\\'").split('\\"').join('\\\\\\"').replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\t/g,"\\t")+"'";var n=e.charAt(0),i=e.substring(1);return"="===n?"+("+i+")+":":"===n?"+$kendoHtmlEncode("+i+")+":";"+e+";$kendoOutput+="}function r(e,t,n){return e+="",t=t||2,n=t-e.length,n?j[t].substring(0,n)+e:e}function a(e){var t=e.css(be.support.transitions.css+"box-shadow")||e.css("box-shadow"),n=t?t.match(ze)||[0,0,0,0,0]:[0,0,0,0,0],i=Te.max(+n[3],+(n[4]||0));return{left:-n[1]+i,right:+n[1]+i,bottom:+n[2]+i}}function s(n,i){var o,r,a,s,d,u,c=Fe.browser,p=be._outerWidth,f=be._outerHeight,h=n.parent(),m=p(t);return h.removeClass("k-animation-container-sm"),h.hasClass("k-animation-container")?l(n,i):(r=n[0].style.width,a=n[0].style.height,s=De.test(r),d=De.test(a),u=n.hasClass("k-tooltip")||n.is(".k-menu-horizontal.k-context-menu"),o=s||d,!s&&(!i||i&&r||u)&&(r=i?p(n)+1:p(n)),(!d&&(!i||i&&a)||n.is(".k-menu-horizontal.k-context-menu"))&&(a=f(n)),n.wrap(e("
        ").addClass("k-animation-container").css({width:r,height:a})),h=n.parent(),o&&n.css({width:"100%",height:"100%",boxSizing:"border-box",mozBoxSizing:"border-box",webkitBoxSizing:"border-box"})),m-1)return!0;var t=h(e,["overflow"]).overflow;return"auto"==t||"scroll"==t}function g(t,i){var o,r=Fe.browser.webkit,a=Fe.browser.mozilla,s=t instanceof e?t[0]:t;if(t)return o=Fe.isRtl(t),i===n?o&&r?s.scrollWidth-s.clientWidth-s.scrollLeft:Math.abs(s.scrollLeft):(s.scrollLeft=o&&r?s.scrollWidth-s.clientWidth-i:o&&a?-i:i,n)}function v(e){var t,n=0;for(t in e)e.hasOwnProperty(t)&&"toJSON"!=t&&n++;return n}function _(e,n,i){var o,r,a;return n||(n="offset"),o=e[n](),r={top:o.top,right:o.right,bottom:o.bottom,left:o.left},Fe.browser.msie&&(Fe.pointers||Fe.msPointers)&&!i&&(a=Fe.isRtl(e)?1:-1,r.top-=t.pageYOffset-document.documentElement.scrollTop,r.left-=t.pageXOffset+a*document.documentElement.scrollLeft),r}function b(e){var t={};return we("string"==typeof e?e.split(" "):e,function(e){t[e]=this}),t}function y(e){return new be.effects.Element(e)}function w(e,t,n,i){return typeof e===Ne&&(R(t)&&(i=t,t=400,n=!1),R(n)&&(i=n,n=!1),typeof t===Me&&(n=t,t=400),e={effects:e,duration:t,reverse:n,complete:i}),ye({effects:{},duration:400,reverse:!1,init:Ce,teardown:Ce,hide:!1},e,{completeCallback:e.complete,complete:Ce})}function k(t,n,i,o,r){for(var a,s=0,l=t.length;s-1||t.is(":visible")}function z(e,t){var n=e.nodeName.toLowerCase();return(/input|select|textarea|button|object/.test(n)?!e.disabled:"a"===n?e.href||t:t)&&E(e)}function E(t){return e.expr.pseudos.visible(t)&&!e(t).parents().addBack().filter(function(){return"hidden"===e.css(this,"visibility")}).length}function A(e,t){return new A.fn.init(e,t)}var N,R,H,P,M,O,B,L,V,U,W,j,q,G,$,Y,K,Q,X,J,Z,ee,te,ne,ie,oe,re,ae,se,le,de,ue,ce,pe,fe,he,me,ge,ve,_e,be=t.kendo=t.kendo||{cultures:{}},ye=e.extend,we=e.each,ke=e.isArray,xe=e.proxy,Ce=e.noop,Te=Math,Se=t.JSON||{},Fe={},De=/%/,Ie=/\{(\d+)(:[^\}]+)?\}/g,ze=/(\d+(?:\.?)\d*)px\s*(\d+(?:\.?)\d*)px\s*(\d+(?:\.?)\d*)px\s*(\d+)?/i,Ee=/^(\+|-?)\d+(\.?)\d*$/,Ae="function",Ne="string",Re="number",He="object",Pe="null",Me="boolean",Oe="undefined",Be={},Le={},Ve=[].slice,Ue=function(){var e,t,i,o,r,a,s=arguments[0]||{},l=1,d=arguments.length,u=!1;for("boolean"==typeof s&&(u=s,s=arguments[l]||{},l++),"object"==typeof s||jQuery.isFunction(s)||(s={}),l===d&&(s=this,l--);l=0;i--)r[i]!==t&&r[i].original!==t||r.splice(i,1);else o._events[e]=[];return o}}),O=/^\w+/,B=/\$\{([^}]*)\}/g,L=/\\\}/g,V=/__CURLY__/g,U=/\\#/g,W=/__SHARP__/g,j=["","0","00","000","0000"],N={paramName:"data",useWithBlock:!0,render:function(e,t){var n,i,o="";for(n=0,i=t.length;n99&&(o=Te.floor(o/10)),o=r(o)):"fff"===t?o=r(e.getMilliseconds(),3):"tt"===t?o=e.getHours()<12?a.AM[0]:a.PM[0]:"zzz"===t?(i=e.getTimezoneOffset(),d=i<0,o=(""+Te.abs(i/60)).split(".")[0],i=Te.abs(i)-60*o,o=(d?"+":"-")+r(o),o+=":"+r(i)):"zz"!==t&&"z"!==t||(o=e.getTimezoneOffset()/60,d=o<0,o=(""+Te.abs(o)).split(".")[0],o=(d?"+":"-")+("zz"===t?r(o):o)),o!==n?o:t.slice(1,t.length-1)})}function a(e,t,o){var r,a,d,u,y,w,k,x,C,T,S,F,D,I,z,E,A,N,R,H,P,M,O,B,L,V,U,W,j,q,G,$,Y,K;if(o=i(o),r=o.numberFormat,a=r[m],d=r.decimals,u=r.pattern[0],y=[],S=e<0,E=h,A=h,G=-1,e===n)return h;if(!isFinite(e))return e;if(!t)return o.name.length?e.toLocaleString():""+e;if(T=c.exec(t)){if(t=T[1].toLowerCase(),k="c"===t,x="p"===t,(k||x)&&(r=k?r.currency:r.percent,a=r[m],d=r.decimals,w=r.symbol,u=r.pattern[S?0:1]),C=T[2],C&&(d=+C),"e"===t)return Y=C?e.toExponential(d):e.toExponential(),Y.replace(m,r[m]);if(x&&(e*=100),e=l(e,d),S=e<0,e=e.split(m),F=e[0],D=e[1],S&&(F=F.substring(1)),A=s(F,0,F.length,r),D&&(A+=a+D),"n"===t&&!S)return A;for(e=h,N=0,R=u.length;N-1||t.indexOf('"')>-1||t.indexOf("\\")>-1)&&(t=t.replace(p,function(e){var t=e.charAt(0).replace("\\",""),n=e.slice(1).replace(t,"");return y.push(n),b})),t=t.split(";"),S&&t[1])t=t[1],M=!0;else if(0===e&&t[2]){if(t=t[2],t.indexOf(v)==-1&&t.indexOf(_)==-1)return t}else t=t[0];if(W=t.indexOf("%"),j=t.indexOf("$"),x=W!=-1,k=j!=-1,x&&(e*=100),k&&"\\"===t[j-1]&&(t=t.split("\\").join(""),k=!1),(k||x)&&(r=k?r.currency:r.percent,a=r[m],d=r.decimals,w=r.symbol),P=t.indexOf(g)>-1,P&&(t=t.replace(f,h)),O=t.indexOf(m),R=t.length,O!=-1)if(D=(""+e).split("e"),D=D[1]?l(e,Math.abs(D[1])):D[0],D=D.split(m)[1]||h,L=t.lastIndexOf(_)-O,B=t.lastIndexOf(v)-O,V=L>-1,U=B>-1,N=D.length,V||U||(t=t.substring(0,O)+t.substring(O+1),R=t.length,O=-1,N=0),V&&L>B)N=L;else if(B>L)if(U&&N>B){for(K=l(e,B,S);K.charAt(K.length-1)===_&&B>0&&B>L;)B--,K=l(e,B,S);N=B}else V&&NL?L:B,B=t.lastIndexOf(v),L=t.lastIndexOf(_),$=B==-1&&L!=-1?L:B!=-1&&L==-1?B:B>L?B:L,G==R&&($=G),G!=-1){for(A=(""+e).split(m),F=A[0],D=A[1]||h,I=F.length,z=D.length,S&&e*-1>=0&&(S=!1),e=t.substring(0,G),S&&!M&&(e+="-"),N=G;N-1&&(e+=F,N=O),O===N){e+=(D?a:h)+D,N+=$-O+1;continue}H===_?(e+=H,E=H):H===v&&(e+=E)}if(P&&(e=s(e,G+(S&&!M?1:0),Math.max($,I+G),r)),$>=G&&(e+=t.substring($+1)),k||x){for(A=h,N=0,R=e.length;N=f){for(s=a,l=[];s>-1;)if(d=r.substring(s-f,s),d&&l.push(d),s-=f,u=p.shift(),f=u!==n?u:f,0===f){s>0&&l.push(r.substring(0,s));break}r=l.reverse().join(o[g]),e=e.substring(0,t)+r+e.substring(i)}return e},l=function(e,t,n){return t=t||0,e=(""+e).split("e"),e=Math.round(+(e[0]+"e"+(e[1]?+e[1]+t:t))),n&&(e=-e),e=(""+e).split("e"),e=+(e[0]+"e"+(e[1]?+e[1]-t:-t)),e.toFixed(Math.min(t,20))},d=function(e,t,i){if(t){if("[object Date]"===w.call(e))return o(e,t,i);if(typeof e===Re)return a(e,t,i)}return e!==n?e:""},be.format=function(e){var t=arguments;return e.replace(Ie,function(e,n,i){var o=t[parseInt(n,10)+1];return d(o,i?i.substring(1):"")})},be._extractFormat=function(e){return"{0:"===e.slice(0,3)&&(e=e.slice(3,e.length-1)),e},be._activeElement=function(){try{return document.activeElement}catch(e){return document.documentElement.activeElement}},be._round=l,be._outerWidth=function(t,n){return e(t).outerWidth(n||!1)||0},be._outerHeight=function(t,n){return e(t).outerHeight(n||!1)||0},be.toString=d}(),function(){function t(e,t,n){return!(e>=t&&e<=n)}function i(e){return e.charAt(0)}function o(t){return e.map(t,i)}function r(e,t){t||23!==e.getHours()||e.setHours(e.getHours()+2)}function a(e){for(var t=0,n=e.length,i=[];t0&&(M-=1),t},S=function(t){var n=y[t]||RegExp("^\\d{1,"+t+"}"),i=e.substr(O,t).match(n);return i?(i=i[0],O+=i.length,parseInt(i,10)):null},F=function(t,n){for(var i,o,r,a=0,s=t.length,l=0,d=0;al&&(l=o,d=a);return l?(O+=l,d+1):null},D=function(){var t=!1;return e.charAt(O)===i[M]&&(O++,t=!0),t},I=a.calendars.standard,z=null,E=null,A=null,N=null,R=null,H=null,P=null,M=0,O=0,B=!1,L=new Date,V=I.twoDigitYearMax||2029,U=L.getFullYear();for(i||(i="d"),p=I.patterns[i],p&&(i=p),i=i.split(""),c=i.length;M2)continue;if(A=u<3?S(2):F(I._lowerDays[3==u?"namesAbbr":"names"],!0),null===A||t(A,1,31))return null}else if("M"===d){if(u=T("M"),I._lowerMonths||(I._lowerMonths=s(I.months)),E=u<3?S(2):F(I._lowerMonths[3==u?"namesAbbr":"names"],!0),null===E||t(E,1,12))return null;E-=1}else if("y"===d){if(u=T("y"),z=S(u),null===z)return null;2==u&&("string"==typeof V&&(V=U+parseInt(V,10)),z=U-U%100+z,z>V&&(z-=100))}else if("h"===d){if(T("h"),N=S(2),12==N&&(N=0),null===N||t(N,0,11))return null}else if("H"===d){if(T("H"),N=S(2),null===N||t(N,0,23))return null}else if("m"===d){if(T("m"),R=S(2),null===R||t(R,0,59))return null}else if("s"===d){if(T("s"),H=S(2),null===H||t(H,0,59))return null}else if("f"===d){if(u=T("f"),C=e.substr(O,u).match(y[3]),P=S(u),null!==P&&(P=parseFloat("0."+C[0],10),P=be._round(P,3),P*=1e3),null===P||t(P,0,999))return null}else if("t"===d){if(u=T("t"),_=I.AM,b=I.PM,1===u&&(_=o(_),b=o(b)),f=F(b),!f&&!F(_))return null}else if("z"===d){if(g=!0,u=T("z"),"Z"===e.substr(O,1)){D();continue}if(v=e.substr(O,6).match(u>2?m:h),!v)return null;if(v=v[0].split(":"),w=v[0],k=v[1],!k&&w.length>3&&(O=w.length-2,k=w.substring(O),w=w.substring(0,O)),w=parseInt(w,10),t(w,-12,13))return null;if(u>2&&(k=v[0][0]+k,k=parseInt(k,10),isNaN(k)||t(k,-59,59)))return null}else if("'"===d)B=!0,D();else if(!D())return null;return l&&!/^\s*$/.test(e.substr(O))?null:(x=null!==N||null!==R||H||null,null===z&&null===E&&null===A&&x?(z=U,E=L.getMonth(),A=L.getDate()):(null===z&&(z=U),null===A&&(A=1)),f&&N<12&&(N+=12),g?(w&&(N+=-w),k&&(R+=-k),e=new Date(Date.UTC(z,E,A,N,R,H,P))):(e=new Date(z,E,A,N,R,H,P),r(e,N)),z<100&&e.setFullYear(z),e.getDate()!==A&&g===n?null:e)}function d(e){var t="-"===e.substr(0,1)?-1:1;return e=e.substring(1),e=60*parseInt(e.substr(0,2),10)+parseInt(e.substring(2),10),t*e}function u(e){var t,n,i,o=Te.max(_.length,b.length),r=e.calendar||e.calendars.standard,a=r.patterns,s=[];for(i=0;i0?null:(u=u>-1,e.indexOf(l)>-1||n&&n.toLowerCase().indexOf("c")>-1?(r=s,i=r.pattern[0].replace("$",l).split("n"),e.indexOf(i[0])>-1&&e.indexOf(i[1])>-1&&(e=e.replace(i[0],"").replace(i[1],""),u=!0)):e.indexOf(d)>-1&&(o=!0,r=a,l=d),e=e.replace("-","").replace(l,"").replace(p," ").split(r[","].replace(p," ")).join("").replace(r["."],"."),e=parseFloat(e),isNaN(e)?e=null:u&&(e*=-1),e&&o&&(e/=100),e)}}(),function(){var i,o,r,a,s,l,d,u,p,f,h,m;Fe._scrollbar=n,Fe.scrollbar=function(e){if(isNaN(Fe._scrollbar)||e){var t,n=document.createElement("div");return n.style.cssText="overflow:scroll;overflow-x:hidden;zoom:1;clear:both;display:block",n.innerHTML=" ",document.body.appendChild(n),Fe._scrollbar=t=n.offsetWidth-n.scrollWidth,document.body.removeChild(n),t}return Fe._scrollbar},Fe.isRtl=function(t){return e(t).closest(".k-rtl").length>0},i=document.createElement("table");try{i.innerHTML="",Fe.tbodyInnerHtml=!0}catch(g){Fe.tbodyInnerHtml=!1}Fe.touch="ontouchstart"in t,o=document.documentElement.style,r=Fe.transitions=!1,a=Fe.transforms=!1,s="HTMLElement"in t?HTMLElement.prototype:[],Fe.hasHW3D="WebKitCSSMatrix"in t&&"m11"in new t.WebKitCSSMatrix||"MozPerspective"in o||"msPerspective"in o,Fe.cssFlexbox="flexWrap"in o||"WebkitFlexWrap"in o||"msFlexWrap"in o,we(["Moz","webkit","O","ms"],function(){var e,t=""+this,n=typeof i.style[t+"Transition"]===Ne;if(n||typeof i.style[t+"Transform"]===Ne)return e=t.toLowerCase(),a={css:"ms"!=e?"-"+e+"-":"",prefix:t,event:"o"===e||"webkit"===e?e:""},n&&(r=a,r.event=r.event?r.event+"TransitionEnd":"transitionend"),!1}),i=null,Fe.transforms=a,Fe.transitions=r,Fe.devicePixelRatio=t.devicePixelRatio===n?1:t.devicePixelRatio;try{Fe.screenWidth=t.outerWidth||t.screen?t.screen.availWidth:t.innerWidth,Fe.screenHeight=t.outerHeight||t.screen?t.screen.availHeight:t.innerHeight}catch(g){Fe.screenWidth=t.screen.availWidth,Fe.screenHeight=t.screen.availHeight}Fe.detectOS=function(e){var n,i,o=!1,r=[],a=!/mobile safari/i.test(e),s={wp:/(Windows Phone(?: OS)?)\s(\d+)\.(\d+(\.\d+)?)/,fire:/(Silk)\/(\d+)\.(\d+(\.\d+)?)/,android:/(Android|Android.*(?:Opera|Firefox).*?\/)\s*(\d+)\.?(\d+(\.\d+)?)?/,iphone:/(iPhone|iPod).*OS\s+(\d+)[\._]([\d\._]+)/,ipad:/(iPad).*OS\s+(\d+)[\._]([\d_]+)/,meego:/(MeeGo).+NokiaBrowser\/(\d+)\.([\d\._]+)/,webos:/(webOS)\/(\d+)\.(\d+(\.\d+)?)/,blackberry:/(BlackBerry|BB10).*?Version\/(\d+)\.(\d+(\.\d+)?)/,playbook:/(PlayBook).*?Tablet\s*OS\s*(\d+)\.(\d+(\.\d+)?)/,windows:/(MSIE)\s+(\d+)\.(\d+(\.\d+)?)/,tizen:/(tizen).*?Version\/(\d+)\.(\d+(\.\d+)?)/i,sailfish:/(sailfish).*rv:(\d+)\.(\d+(\.\d+)?).*firefox/i,ffos:/(Mobile).*rv:(\d+)\.(\d+(\.\d+)?).*Firefox/},l={ios:/^i(phone|pad|pod)$/i,android:/^android|fire$/i,blackberry:/^blackberry|playbook/i,windows:/windows/,wp:/wp/,flat:/sailfish|ffos|tizen/i,meego:/meego/},d={tablet:/playbook|ipad|fire/i},u={omini:/Opera\sMini/i,omobile:/Opera\sMobi/i,firefox:/Firefox|Fennec/i,mobilesafari:/version\/.*safari/i,ie:/MSIE|Windows\sPhone/i,chrome:/chrome|crios/i,webkit:/webkit/i};for(i in s)if(s.hasOwnProperty(i)&&(r=e.match(s[i]))){if("windows"==i&&"plugins"in navigator)return!1;o={},o.device=i,o.tablet=c(i,d,!1),o.browser=c(e,u,"default"),o.name=c(i,l),o[o.name]=!0,o.majorVersion=r[2],o.minorVersion=(r[3]||"0").replace("_","."),n=o.minorVersion.replace(".","").substr(0,2),o.flatVersion=o.majorVersion+n+Array(3-(n.length<3?n.length:2)).join("0"),o.cordova=typeof t.PhoneGap!==Oe||typeof t.cordova!==Oe,o.appMode=t.navigator.standalone||/file|local|wmapp/.test(t.location.protocol)||o.cordova,o.android&&(Fe.devicePixelRatio<1.5&&o.flatVersion<400||a)&&(Fe.screenWidth>800||Fe.screenHeight>800)&&(o.tablet=i);break}return o},l=Fe.mobileOS=Fe.detectOS(navigator.userAgent),Fe.wpDevicePixelRatio=l.wp?screen.width/320:0,Fe.hasNativeScrolling=!1,(l.ios||l.android&&l.majorVersion>2||l.wp)&&(Fe.hasNativeScrolling=l),Fe.delayedClick=function(){if(Fe.touch){if(l.ios)return!0;if(l.android)return!Fe.browser.chrome||!(Fe.browser.version<32)&&!(e("meta[name=viewport]").attr("content")||"").match(/user-scalable=no/i)}return!1},Fe.mouseAndTouchPresent=Fe.touch&&!(Fe.mobileOS.ios||Fe.mobileOS.android),Fe.detectBrowser=function(e){var t,n=!1,i=[],o={edge:/(edge)[ \/]([\w.]+)/i,webkit:/(chrome|crios)[ \/]([\w.]+)/i,safari:/(webkit)[ \/]([\w.]+)/i,opera:/(opera)(?:.*version|)[ \/]([\w.]+)/i,msie:/(msie\s|trident.*? rv:)([\w.]+)/i,mozilla:/(mozilla)(?:.*? rv:([\w.]+)|)/i};for(t in o)if(o.hasOwnProperty(t)&&(i=e.match(o[t]))){n={},n[t]=!0,n[i[1].toLowerCase().split(" ")[0].split("/")[0]]=!0,n.version=parseInt(document.documentMode||i[2],10);break}return n},Fe.browser=Fe.detectBrowser(navigator.userAgent),Fe.detectClipboardAccess=function(){var e={copy:!!document.queryCommandSupported&&document.queryCommandSupported("copy"),cut:!!document.queryCommandSupported&&document.queryCommandSupported("cut"),paste:!!document.queryCommandSupported&&document.queryCommandSupported("paste")};return Fe.browser.chrome&&(e.paste=!1,Fe.browser.version>=43&&(e.copy=!0,e.cut=!0)),e},Fe.clipboard=Fe.detectClipboardAccess(),Fe.zoomLevel=function(){var e,n,i;try{return e=Fe.browser,n=0,i=document.documentElement,e.msie&&11==e.version&&i.scrollHeight>i.clientHeight&&!Fe.touch&&(n=Fe.scrollbar()),Fe.touch?i.clientWidth/t.innerWidth:e.msie&&e.version>=10?((top||t).document.documentElement.offsetWidth+n)/(top||t).innerWidth:1}catch(o){return 1}},Fe.cssBorderSpacing=n!==o.borderSpacing&&!(Fe.browser.msie&&Fe.browser.version<8),function(t){var n="",i=e(document.documentElement),o=parseInt(t.version,10);t.msie?n="ie":t.mozilla?n="ff":t.safari?n="safari":t.webkit?n="webkit":t.opera?n="opera":t.edge&&(n="edge"),n&&(n="k-"+n+" k-"+n+o),Fe.mobileOS&&(n+=" k-mobile"),Fe.cssFlexbox||(n+=" k-no-flexbox"),i.addClass(n)}(Fe.browser),Fe.eventCapture=document.documentElement.addEventListener,d=document.createElement("input"),Fe.placeholder="placeholder"in d,Fe.propertyChangeEvent="onpropertychange"in d,Fe.input=function(){for(var e,t=["number","date","time","month","week","datetime","datetime-local"],n=t.length,i="test",o={},r=0;rt.field?1:e.field/g,J=function(e){return e.target},Fe.touch&&(J=function(e){var t="originalEvent"in e?e.originalEvent.changedTouches:"changedTouches"in e?e.changedTouches:null;return t?document.elementFromPoint(t[0].clientX,t[0].clientY):e.target},we(["swipe","swipeLeft","swipeRight","swipeUp","swipeDown","doubleTap","tap"],function(t,n){e.fn[n]=function(e){return this.bind(n,e)}})),Fe.touch?Fe.mobileOS?(Fe.mousedown="touchstart",Fe.mouseup="touchend",Fe.mousemove="touchmove",Fe.mousecancel="touchcancel",Fe.click="touchend",Fe.resize="orientationchange"):(Fe.mousedown="mousedown touchstart",Fe.mouseup="mouseup touchend",Fe.mousemove="mousemove touchmove",Fe.mousecancel="mouseleave touchcancel",Fe.click="click",Fe.resize="resize"):Fe.pointers?(Fe.mousemove="pointermove",Fe.mousedown="pointerdown",Fe.mouseup="pointerup",Fe.mousecancel="pointercancel",Fe.click="pointerup",Fe.resize="orientationchange resize"):Fe.msPointers?(Fe.mousemove="MSPointerMove",Fe.mousedown="MSPointerDown",Fe.mouseup="MSPointerUp",Fe.mousecancel="MSPointerCancel",Fe.click="MSPointerUp",Fe.resize="orientationchange resize"):(Fe.mousemove="mousemove",Fe.mousedown="mousedown",Fe.mouseup="mouseup",Fe.mousecancel="mouseleave",Fe.click="click",Fe.resize="resize"),Z=function(e,t){var n,i,o,r,a=t||"d",s=1;for(i=0,o=e.length;i0||t.height>0)&&(!n||t.width!==n.width||t.height!==n.height))&&(this._size=t,this._resize(t,e),this.trigger("resize",t))},getSize:function(){return be.dimensions(this.element)},size:function(e){return e?(this.setSize(e),n):this.getSize()},setSize:e.noop,_resize:e.noop,destroy:function(){var e=this;e.element.removeData("kendo"+e.options.prefix+e.options.name),e.element.removeData("handler"),e.unbind()},_destroy:function(){this.destroy()},angular:function(){},_muteAngularRebind:function(e){this._muteRebind=!0,e.call(this),this._muteRebind=!1}}),ne=te.extend({dataItems:function(){return this.dataSource.flatView()},_angularItems:function(t){var n=this;n.angular(t,function(){return{elements:n.items(),data:e.map(n.dataItems(),function(e){return{dataItem:e}})}})}}),be.dimensions=function(e,t){var n=e[0];return t&&e.css(t),{width:n.offsetWidth,height:n.offsetHeight}},be.notify=Ce,ie=/template$/i,oe=/^\s*(?:\{(?:.|\r\n|\n)*\}|\[(?:.|\r\n|\n)*\])\s*$/,re=/^\{(\d+)(:[^\}]+)?\}|^\[[A-Za-z_]+\]$/,ae=/([A-Z])/g,be.initWidget=function(i,o,r){var a,s,l,d,u,c,p,f,h,m,g,v,_;if(r?r.roles&&(r=r.roles):r=be.ui.roles,i=i.nodeType?i:i[0],c=i.getAttribute("data-"+be.ns+"role")){h=c.indexOf(".")===-1,l=h?r[c]:be.getter(c)(t),g=e(i).data(),v=l?"kendo"+l.fn.options.prefix+l.fn.options.name:"",m=h?RegExp("^kendo.*"+c+"$","i"):RegExp("^"+v+"$","i");for(_ in g)if(_.match(m)){if(_!==v)return g[_];a=g[_]}if(l){for(f=S(i,"dataSource"),o=e.extend({},F(i,e.extend({},l.fn.options,l.fn.defaults)),o),f&&(o.dataSource=typeof f===Ne?be.getter(f)(t):f),d=0,u=l.fn.events.length;d{1}
        ",l,be.ui.progress.messages.loading)).width(i.width).height(i.height).css("top",i.top).css(r,Math.abs(s)+a).prependTo(t)):d&&d.remove()},plugin:function(t,i,o){var r,a,s,l,d=t.fn.options.name;for(i=i||be.ui,o=o||"",i[d]=t,i.roles[d.toLowerCase()]=t,r="getKendo"+o+d,d="kendo"+o+d,a={name:d,widget:t,prefix:o||""},be.widgets.push(a),s=0,l=be._widgetRegisteredCallbacks.length;s=0&&(d=[be.getter(l)(t)]),i=0,o=d.length;i-1)}}),de=["mousedown","mousemove","mouseenter","mouseleave","mouseover","mouseout","mouseup","click"],ue="label, input, [data-rel=external]",ce={setupMouseMute:function(){var t,n=0,i=de.length,o=document.documentElement;if(!ce.mouseTrap&&Fe.eventCapture)for(ce.mouseTrap=!0,ce.bustClick=!1,ce.captureMouse=!1,t=function(t){ce.captureMouse&&("click"===t.type?ce.bustClick&&!e(t.target).is(ue)&&(t.preventDefault(),t.stopPropagation()):t.stopPropagation())};n-1&&this[0]!==document.documentElement&&(ce.setupMouseMute(),o=2===t.length?null:t[1],r=i.indexOf("click")>-1&&i.indexOf("touchend")>-1,me.call(this,{touchstart:ce.muteMouse,touchend:ce.unMuteMouse},o,{bustClick:r})),arguments[0].indexOf("keydown")!==-1&&t[1]&&t[1].options?(t[0]=i,a=t[1],s=t[t.length-1],t[t.length-1]=function(e){if(be.keyDownHandler(e,a))return s.apply(this,[e])},me.apply(l,t),l):(typeof n===Ne&&(e=l.data("handler"),n=e[n],t[t.length-1]=function(t){n.call(e,t)}),t[0]=i,me.apply(l,t),l))},kendoDestroy:function(e){return e=e||this.data("kendoNS"),e&&this.off("."+e),this}}),be.jQuery=A,be.eventMap=pe,be.timezone=function(){function e(e,t){var n,i,o,r=t[3],a=t[4],s=t[5],l=t[8];return l||(t[8]=l={}),l[e]?l[e]:(isNaN(a)?0===a.indexOf("last")?(n=new Date(Date.UTC(e,u[r]+1,1,s[0]-24,s[1],s[2],0)),i=c[a.substr(4,3)],o=n.getUTCDay(),n.setUTCDate(n.getUTCDate()+i-o-(i>o?7:0))):a.indexOf(">=")>=0?(n=new Date(Date.UTC(e,u[r],a.substr(5),s[0],s[1],s[2],0)),i=c[a.substr(0,3)],o=n.getUTCDay(),n.setUTCDate(n.getUTCDate()+i-o+(i=0&&(n=new Date(Date.UTC(e,u[r],a.substr(5),s[0],s[1],s[2],0)),i=c[a.substr(0,3)],o=n.getUTCDay(),n.setUTCDate(n.getUTCDate()+i-o-(i>o?7:0))):n=new Date(Date.UTC(e,u[r],a,s[0],s[1],s[2],0)),l[e]=n)}function t(t,n,i){var o,r,a,s;return(n=n[i])?(a=new Date(t).getUTCFullYear(),n=jQuery.grep(n,function(e){var t=e[0],n=e[1];return t<=a&&(n>=a||t==a&&"only"==n||"max"==n)}),n.push(t),n.sort(function(t,n){return"number"!=typeof t&&(t=+e(a,t)),"number"!=typeof n&&(n=+e(a,n)),t-n}),s=n[jQuery.inArray(t,n)-1]||n[n.length-1],isNaN(s)?s:null):(o=i.split(":"),r=0,o.length>1&&(r=60*o[0]+ +o[1]),[-1e6,"max","-","Jan",1,[0,0,0],r,"-"])}function n(e,t,n){var i,o,r,a=t[n];if("string"==typeof a&&(a=t[a]),!a)throw Error('Timezone "'+n+'" is either incorrect, or kendo.timezones.min.js is not included.');for(i=a.length-1;i>=0&&(o=a[i][3],!(o&&e>o));i--);if(r=a[i+1],!r)throw Error('Timezone "'+n+'" not found on '+e+".");return r}function i(e,i,o,r){typeof e!=Re&&(e=Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()));var a=n(e,i,r);return{zone:a,rule:t(e,o,a[1])}}function o(e,t){var n,o,r;return"Etc/UTC"==t||"Etc/GMT"==t?0:(n=i(e,this.zones,this.rules,t),o=n.zone,r=n.rule,be.parseFloat(r?o[0]-r[6]:o[0]))}function r(e,t){var n=i(e,this.zones,this.rules,t),o=n.zone,r=n.rule,a=o[2];return a.indexOf("/")>=0?a.split("/")[r&&+r[6]?1:0]:a.indexOf("%s")>=0?a.replace("%s",r&&"-"!=r[7]?r[7]:""):a}function a(e,t,n){var i,o,r,a=n;return typeof t==Ne&&(t=this.offset(e,t)),typeof n==Ne&&(n=this.offset(e,n)),o=e.getTimezoneOffset(),e=new Date(e.getTime()+6e4*(t-n)),r=e.getTimezoneOffset(),typeof a==Ne&&(a=this.offset(e,a)),i=r-o+(n-a),new Date(e.getTime()+6e4*i)}function s(e,t){return this.convert(e,e.getTimezoneOffset(),t)}function l(e,t){return this.convert(e,t,e.getTimezoneOffset())}function d(e){return this.apply(new Date(e),"Etc/UTC")}var u={Jan:0,Feb:1,Mar:2,Apr:3,May:4,Jun:5,Jul:6,Aug:7,Sep:8,Oct:9,Nov:10,Dec:11},c={Sun:0,Mon:1,Tue:2,Wed:3,Thu:4,Fri:5,Sat:6};return{zones:{},rules:{},offset:o,convert:a,apply:s,remove:l,abbr:r,toLocalDate:d}}(),be.date=function(){function e(e,t){return 0===t&&23===e.getHours()&&(e.setHours(e.getHours()+2),!0)}function t(t,n,i){var o=t.getHours();i=i||1,n=(n-t.getDay()+7*i)%7,t.setDate(t.getDate()+n),e(t,o)}function i(e,n,i){return e=new Date(e),t(e,n,i),e}function o(e){return new Date(e.getFullYear(),e.getMonth(),1)}function r(e){var t=new Date(e.getFullYear(),e.getMonth()+1,0),n=o(e),i=Math.abs(t.getTimezoneOffset()-n.getTimezoneOffset());return i&&t.setHours(n.getHours()+i/60),t}function a(e,t){return 1!==t?h(i(e,t,-1),4):h(e,4-(e.getDay()||7))}function s(e,t){var n=new Date(e.getFullYear(),0,1,(-6)),i=a(e,t),o=i.getTime()-n.getTime(),r=Math.floor(o/w);return 1+Math.floor(r/7)}function l(e,t){var i,o,r;return t===n&&(t=be.culture().calendar.firstDay),i=h(e,-7),o=h(e,7),r=s(e,t),0===r?s(i,t)+1:53===r&&s(o,t)>1?1:r}function d(t){return t=new Date(t.getFullYear(),t.getMonth(),t.getDate(),0,0,0),e(t,0),t}function u(e){return Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds())}function c(e){return b(e).getTime()-d(b(e))}function p(e,t,n){var i,o=c(t),r=c(n);return!e||o==r||(t>=n&&(n+=w),i=c(e),o>i&&(i+=w),r=o&&i<=r)}function f(e,t,n){var i,o=t.getTime(),r=n.getTime();return o>=r&&(r+=w),i=e.getTime(),i>=o&&i<=r}function h(t,n){var i=t.getHours();return t=new Date(t),m(t,n*w),e(t,i),t}function m(e,t,n){var i,o=e.getTimezoneOffset();e.setTime(e.getTime()+t),n||(i=e.getTimezoneOffset()-o,e.setTime(e.getTime()+i*y))}function g(t,n){return t=new Date(t.getFullYear(),t.getMonth(),t.getDate(),n.getHours(),n.getMinutes(),n.getSeconds(),n.getMilliseconds()),e(t,n.getHours()),t}function v(){return d(new Date)}function _(e){return d(e).getTime()==v().getTime()}function b(e){var t=new Date(1980,1,1,0,0,0);return e&&t.setHours(e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()),t}var y=6e4,w=864e5;return{adjustDST:e,dayOfWeek:i,setDayOfWeek:t,getDate:d,isInDateRange:f,isInTimeRange:p,isToday:_,nextDay:function(e){return h(e,1)},previousDay:function(e){return h(e,-1)},toUtcTime:u,MS_PER_DAY:w,MS_PER_HOUR:60*y,MS_PER_MINUTE:y,setTime:m,setHours:g,addDays:h,today:v,toInvariantTime:b,firstDayOfMonth:o,lastDayOfMonth:r,weekInYear:l,getMilliseconds:c}}(),be.stripWhitespace=function(e){var t,n,i;if(document.createNodeIterator)for(t=document.createNodeIterator(e,NodeFilter.SHOW_TEXT,function(t){return t.parentNode==e?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_REJECT},!1);t.nextNode();)t.referenceNode&&!t.referenceNode.textContent.trim()&&t.referenceNode.parentNode.removeChild(t.referenceNode);else for(n=0;nt?o():i=setTimeout(o,t-s),n):o()},o.cancel=function(){clearTimeout(i)},o)},be.caret=function(t,i,o){var r,a,s,l,d,u=i!==n;if(o===n&&(o=i),t[0]&&(t=t[0]),!u||!t.disabled){try{t.selectionStart!==n?u?(t.focus(),a=Fe.mobileOS,a.wp||a.android?setTimeout(function(){t.setSelectionRange(i,o)},0):t.setSelectionRange(i,o)):i=[t.selectionStart,t.selectionEnd]:document.selection&&(e(t).is(":visible")&&t.focus(),r=t.createTextRange(),u?(r.collapse(!0),r.moveStart("character",i),r.moveEnd("character",o-i),r.select()):(s=r.duplicate(),r.moveToBookmark(document.selection.createRange().getBookmark()),s.setEndPoint("EndToStart",r),l=s.text.length,d=l+r.text.length,i=[l,d]))}catch(c){i=[]}return i}},be.compileMobileDirective=function(e,n){var i=t.angular;return e.attr("data-"+be.ns+"role",e[0].tagName.toLowerCase().replace("kendo-mobile-","").replace("-","")),i.element(e).injector().invoke(["$compile",function(t){t(e)(n),/^\$(digest|apply)$/.test(n.$$phase)||n.$digest()}]),be.widgetInstance(e,be.mobile.ui)},be.antiForgeryTokens=function(){var t={},i=e("meta[name=csrf-token],meta[name=_csrf]").attr("content"),o=e("meta[name=csrf-param],meta[name=_csrf_header]").attr("content");return e("input[name^='__RequestVerificationToken']").each(function(){t[this.name]=this.value}),o!==n&&i!==n&&(t[o]=i),t},be.cycleForm=function(e){function t(e){var t=be.widgetInstance(e);t&&t.focus?t.focus():e.focus()}var n=e.find("input, .k-widget").first(),i=e.find("button, .k-button").last();i.on("keydown",function(e){e.keyCode!=be.keys.TAB||e.shiftKey||(e.preventDefault(),t(n))}),n.on("keydown",function(e){e.keyCode==be.keys.TAB&&e.shiftKey&&(e.preventDefault(),t(i))})},be.focusElement=function(n){var i=[],o=n.parentsUntil("body").filter(function(e,t){var n=be.getComputedStyles(t,["overflow"]);return"visible"!==n.overflow}).add(t);o.each(function(t,n){i[t]=e(n).scrollTop()});try{n[0].setActive()}catch(r){n[0].focus()}o.each(function(t,n){e(n).scrollTop(i[t])})},be.focusNextElement=function(){var t,n,i;document.activeElement&&(t=e(":kendoFocusable"),n=t.index(document.activeElement),n>-1&&(i=t[n+1]||t[0],i.focus()))},be.trim=function(e){return e?(""+e).trim():""},be.getWidgetFocusableElement=function(t){var n,i=t.closest(":kendoFocusable"),o=be.widgetInstance(t);return n=i.length?i:o?"Editor"===o.options.name?e(o.body):o.wrapper.find(":kendoFocusable").first():t},be.addAttribute=function(e,t,n){var i=e.attr(t)||"";i.indexOf(n)<0&&e.attr(t,(i+" "+n).trim())},be.removeAttribute=function(e,t,n){var i=e.attr(t)||"";e.attr(t,i.replace(n,"").trim())},be.toggleAttribute=function(e,t,n){var i=e.attr(t)||"";i.indexOf(n)<0?be.addAttribute(e,t,n):be.removeAttribute(e,t,n)},be.matchesMedia=function(e){var n=be._bootstrapToMedia(e)||e;return Fe.matchMedia&&t.matchMedia(n).matches},be._bootstrapToMedia=function(e){return{xs:"(max-width: 576px)",sm:"(min-width: 576px)",md:"(min-width: 768px)",lg:"(min-width: 992px)",xl:"(min-width: 1200px)"}[e]},be.fileGroupMap={audio:[".aif",".iff",".m3u",".m4a",".mid",".mp3",".mpa",".wav",".wma",".ogg",".wav",".wma",".wpl"],video:[".3g2",".3gp",".avi",".asf",".flv",".m4u",".rm",".h264",".m4v",".mkv",".mov",".mp4",".mpg",".rm",".swf",".vob",".wmv"],image:[".ai",".dds",".heic",".jpe","jfif",".jif",".jp2",".jps",".eps",".bmp",".gif",".jpeg",".jpg",".png",".ps",".psd",".svg",".svgz",".tif",".tiff"],txt:[".doc",".docx",".log",".pages",".tex",".wpd",".wps",".odt",".rtf",".text",".txt",".wks"],presentation:[".key",".odp",".pps",".ppt",".pptx"],data:[".xlr",".xls",".xlsx"],programming:[".tmp",".bak",".msi",".cab",".cpl",".cur",".dll",".dmp",".drv",".icns",".ico",".link",".sys",".cfg",".ini",".asp",".aspx",".cer",".csr",".css",".dcr",".htm",".html",".js",".php",".rss",".xhtml"],pdf:[".pdf"],config:[".apk",".app",".bat",".cgi",".com",".exe",".gadget",".jar",".wsf"],zip:[".7z",".cbr",".gz",".sitx",".arj",".deb",".pkg",".rar",".rpm",".tar.gz",".z",".zip",".zipx"],"disc-image":[".dmg",".iso",".toast",".vcd",".bin",".cue",".mdf"]},be.getFileGroup=function(e,t){var i,o,r=be.fileGroupMap,a=Object.keys(r),s="file";if(e===n||!e.length)return s;for(i=0;i-1)return t?"file-"+a[i]:a[i];return s},be.getFileSizeMessage=function(e){var t,n=["Bytes","KB","MB","GB","TB"];return 0===e?"0 Byte":(t=parseInt(Math.floor(Math.log(e)/Math.log(1024)),10),Math.round(e/Math.pow(1024,t),2)+" "+n[t])},be.selectorFromClasses=function(e){return"."+e.split(" ").join(".")},function(){function n(t,n,i,o){var r,a,s=e("").attr({action:i,method:"POST",target:o}),l=be.antiForgeryTokens();l.fileName=n,r=t.split(";base64,"),l.contentType=r[0].replace("data:",""),l.base64=r[1];for(a in l)l.hasOwnProperty(a)&&e("").attr({value:l[a],name:a,type:"hidden"}).appendTo(s);s.appendTo("body").submit().remove()}function i(e,t){var n,i,o,r,a,s=e;if("string"==typeof e){for(n=e.split(";base64,"),i=n[0],o=atob(n[1]),r=new Uint8Array(o.length),a=0;a3?"substringof"!==i?d="{0}({2},"+d+")":(d="{0}("+d+",{2})","doesnotcontain"===u&&(o?(d="{0}({2},'{1}') eq -1",i="indexof"):d+=" eq false")):d="{2} {0} "+d,i=m.format(d,i,c,s))),f.push(i);return i=f.join(" "+h+" "),f.length>1&&(i="("+i+")"),i}function i(e){for(var t in e)0===t.indexOf("@odata")&&delete e[t]}function o(){return Math.floor(65536*(1+Math.random())).toString(16).substr(1)}function r(e){return e+o()+"-"+o()+"-"+o()}function a(e,t){var n=v+"--"+e;return t&&(n+="--"),n}function s(e,t,n,i){var o=e.options[i].url,r=m.format("{0} ",n);return b(o)?r+o(t):r+o}function l(e,t){var n="";return n+=a(e,!1),n+=v+"Content-Type: application/http",n+=v+"Content-Transfer-Encoding: binary",n+=v+"Content-ID: "+t}function d(e){var t="";return t+=v+"Content-Type: application/json;odata=minimalmetadata",t+=v+"Prefer: return=representation",t+=_+m.stringify(e)}function u(e,t,n,i,o,r){var a,u="";for(a=0;a=200&&i<=299?(r=t.match(/\{.*\}/gm),r&&d[d.length-1].models.push(JSON.parse(r[0]))):d[d.length-1].passed=!1);return d}var m=window.kendo,g=e.extend,v="\r\n",_="\r\n\r\n",b=m.isFunction,y={eq:"eq",neq:"ne",gt:"gt",gte:"ge",lt:"lt",lte:"le",contains:"substringof",doesnotcontain:"substringof",endswith:"endswith",startswith:"startswith",isnull:"eq",isnotnull:"ne",isnullorempty:"eq",isnotnullorempty:"ne",isempty:"eq",isnotempty:"ne"},w=g({},y,{contains:"contains"}),k={pageSize:e.noop,page:e.noop,filter:function(e,t,i){t&&(t=n(t,i),t&&(e.$filter=t))},sort:function(t,n){var i=e.map(n,function(e){var t=e.field.replace(/\./g,"/");return"desc"===e.dir&&(t+=" desc"),t}).join(",");i&&(t.$orderby=i)},skip:function(e,t){t&&(e.$skip=t)},take:function(e,t){t&&(e.$top=t)}},x={read:{dataType:"jsonp"}};g(!0,m.data,{schemas:{odata:{type:"json",data:function(e){return e.d.results||[e.d]},total:"d.__count"}},transports:{odata:{read:{cache:!0,dataType:"jsonp",jsonp:"$callback"},update:{cache:!0,dataType:"json",contentType:"application/json",type:"PUT"},create:{cache:!0,dataType:"json",contentType:"application/json",type:"POST"},destroy:{cache:!0,dataType:"json",type:"DELETE"},parameterMap:function(e,t,n){var i,o,r,a;if(e=e||{},t=t||"read",a=(this.options||x)[t],a=a?a.dataType:"json","read"===t){i={$inlinecount:"allpages"},"json"!=a&&(i.$format="json");for(r in e)k[r]?k[r](i,e[r],n):i[r]=e[r]}else{if("json"!==a)throw Error("Only json dataType can be used for "+t+" operation.");if("destroy"!==t){for(r in e)o=e[r],"number"==typeof o&&(e[r]=o+"");i=m.stringify(e)}}return i}}}}),g(!0,m.data,{schemas:{"odata-v4":{type:"json",data:function(t){if(e.isArray(t)){for(var n=0;n=0?e.replace(/\.?(@.*)/,t?"$1":'["$1"]'):e.indexOf("text()")>=0?e.replace(/(\.?text\(\))/,t?"#text":'["#text"]'):e):""},getter:function(e){return l(this.xpathToMember(e),!0)}});e.extend(!0,n.data,{XmlDataReader:u,readers:{xml:u}})}(window.kendo.jQuery),window.kendo},"function"==typeof define&&define.amd?define:function(e,t,n){(n||t)()}),function(e,define){define("kendo.data.min",["kendo.core.min","kendo.data.odata.min","kendo.data.xml.min"],e)}(function(){return function(e,t){function n(e,t,n,i){return function(o){var r,a={};for(r in o)a[r]=o[r];a.field=i?n+"."+o.field:n,t==He&&e._notifyChange&&e._notifyChange(a),e.trigger(t,a)}}function i(t,n){if(t===n)return!0;var o,r=e.type(t),a=e.type(n);if(r!==a)return!1;if("date"===r)return t.getTime()===n.getTime();if("object"!==r&&"array"!==r)return!1;for(o in t)if(!i(t[o],n[o]))return!1;return!0}function o(e,t){var n,i;for(i in e){if(n=e[i],ve(n)&&n.field&&n.field===t)return n;if(n===t)return n}return null}function r(e){this.data=e||[]}function a(e,n){if(e){var i=typeof e===De?{field:e,dir:n}:e,o=be(i)?i:i!==t?[i]:[];return ye(o,function(e){return!!e.dir})}}function s(e,n){var i,o,r,a={};if(e)for(i=typeof e===De?{field:e,dir:n}:e,o=be(i)?i:i!==t?[i]:[],r=0;rt.field?1:e.field=t.length)););s0&&(t=this[n--]);n>=0;n--)t=e(t,this[n],n,this);return t},filter:function(e,t){for(var n,i=0,o=[],r=this.length,a=t||window;i=0;if(a)for(n=e.split("."),i="";n.length>1;){if(i+=n.shift(),o=Ce.getter(i,!0)(r),o instanceof Q)return o.set(n.join("."),t),a;i+="."}return Ce.setter(e)(r,t),a},set:function(e,t){var n=this,i=!1,o=e.indexOf(".")>=0,r=Ce.getter(e,!0)(n);return r!==t&&(r instanceof Se&&this._handlers[e]&&(this._handlers[e].get&&r.unbind(Me,this._handlers[e].get),r.unbind(He,this._handlers[e].change)),i=n.trigger("set",{field:e,value:t}),i||(o||(t=n.wrap(t,e,function(){return n})),(!n._set(e,t)||e.indexOf("(")>=0||e.indexOf("[")>=0)&&n.trigger(He,{field:e}))),i},parent:xe,wrap:function(e,t,i){var o,r,a,s,l=this,d=et.call(e);return null==e||"[object Object]"!==d&&"[object Array]"!==d||(a=e instanceof it,s=e instanceof de,"[object Object]"!==d||s||a?("[object Array]"===d||a||s)&&(a||s||(e=new it(e)),r=n(l,He,t,!1),e.bind(He,r),l._handlers[t]={change:r}):(e instanceof Q||(e=new Q(e)),o=n(l,Me,t,!0),e.bind(Me,o),r=n(l,He,t,!0),e.bind(He,r),l._handlers[t]={get:o,change:r}),e.parent=i),e}}),X={number:function(e){return typeof e===De&&"null"===e.toLowerCase()?null:Ce.parseFloat(e)},date:function(e){return typeof e===De&&"null"===e.toLowerCase()?null:Ce.parseDate(e)},"boolean":function(e){return typeof e===De?"null"===e.toLowerCase()?null:"true"===e.toLowerCase():null!=e?!!e:e},string:function(e){return typeof e===De&&"null"===e.toLowerCase()?null:null!=e?e+"":e},"default":function(e){return e}},J={string:"",number:0,date:new Date,"boolean":!1,"default":""},Z=Q.extend({init:function(n){var i,o,r=this;if((!n||e.isEmptyObject(n))&&(n=e.extend({},r.defaults,n),r._initializers))for(i=0;i0&&(c._initializers=h),i=e.extend(c),i.define=function(e){return Z.define(i,e)},c.fields&&(i.fields=c.fields,i.idField=c.idField),i},ee={selector:function(e){return Te(e)?e:je(e)},compare:function(e){var t=this.selector(e);return function(e,n){return e=t(e),n=t(n),null==e&&null==n?0:null==e?-1:null==n?1:e.localeCompare?e.localeCompare(n):e>n?1:eo?1:-1}},desc:function(e){var t=this.selector(e);return function(e,n){var i=t(e),o=t(n);return i&&i.getTime&&o&&o.getTime&&(i=i.getTime(),o=o.getTime()),i===o?e.__position-n.__position:null==i?1:null==o?-1:o.localeCompare?o.localeCompare(i):i=0?"\\"+o:o}n=!1}return t+"$/"}return{quote:function(t){return t&&t.getTime?"new Date("+t.getTime()+")":e(t)},eq:function(e,t,i,o){return n("==",e,t,i,o)},neq:function(e,t,i,o){return n("!=",e,t,i,o)},gt:function(e,t,i){return n(">",e,t,i)},gte:function(e,t,i){return n(">=",e,t,i)},lt:function(e,t,i){return n("<",e,t,i)},lte:function(e,t,i){return n("<=",e,t,i)},startswith:t(function(e,t){return e+".lastIndexOf("+t+", 0) == 0"}),doesnotstartwith:t(function(e,t){return e+".lastIndexOf("+t+", 0) == -1"}),endswith:t(function(e,t){var n=t?t.length-2:0;return e+".indexOf("+t+", "+e+".length - "+n+") >= 0"}),doesnotendwith:t(function(e,t){var n=t?t.length-2:0;return e+".indexOf("+t+", "+e+".length - "+n+") < 0"}),contains:t(function(e,t){return e+".indexOf("+t+") >= 0"}),doesnotcontain:t(function(e,t){return e+".indexOf("+t+") == -1"}),matches:t(function(e,t){return t=t.substring(1,t.length-1),i(t)+".test("+e+")"}),doesnotmatch:t(function(e,t){return t=t.substring(1,t.length-1),"!"+i(t)+".test("+e+")"}),isempty:function(e){return e+" === ''"},isnotempty:function(e){return e+" !== ''"},isnull:function(e){return"("+e+" == null)"},isnotnull:function(e){return"("+e+" != null)"},isnullorempty:function(e){return"("+e+" === null) || ("+e+" === '')"},isnotnullorempty:function(e){return"("+e+" !== null) && ("+e+" !== '')"}}}(),r.filterExpr=function(e){var n,i,o,a,s,l,d=[],u={and:" && ",or:" || "},c=[],p=[],f=e.filters;for(n=0,i=f.length;n":"gt",isgreaterthan:"gt",greaterthan:"gt",greater:"gt",">=":"gte",isgreaterthanorequalto:"gte",greaterthanequal:"gte",ge:"gte",notsubstringof:"doesnotcontain",isnull:"isnull",isempty:"isempty",isnotempty:"isnotempty"},r.normalizeFilter=d,r.compareFilters=f,r.prototype={toArray:function(){return this.data},range:function(e,t){return new r(this.data.slice(e,e+t))},skip:function(e){return new r(this.data.slice(e))},take:function(e){return new r(this.data.slice(0,e))},select:function(e){return new r(Y(this.data,e))},order:function(e,t,n){var i={dir:t};return e&&(e.compare?i.compare=e.compare:i.field=e),new r(n?this.data.sort(ee.create(i)):this.data.slice(0).sort(ee.create(i)))},orderBy:function(e,t){return this.order(e,"asc",t)},orderByDescending:function(e,t){return this.order(e,"desc",t)},sort:function(e,t,n,i){var o,r,s=a(e,t),l=[];if(n=n||ee,s.length){for(o=0,r=s.length;o0&&(i=e[0],a=n&&n.groupPaging?new r(t).groupAllData(i,t).select(function(o){var a=new r(t).filter([{field:o.field,operator:"eq",value:o.value,ignoreCase:!1}]),s=e.length>1?new r(o.items).group(e.slice(1),a.toArray(),n).toArray():o.items;return{field:o.field,value:o.value,hasSubgroups:e.length>1,items:s,aggregates:a.aggregate(i.aggregates),uid:Ce.guid(),itemCount:s.length,subgroupCount:s.length}}):a.groupBy(i).select(function(n){var o=new r(t).filter([{field:n.field,operator:"eq",value:n.value,ignoreCase:!1}]);return{field:n.field,value:n.value,items:e.length>1?new r(n.items).group(e.slice(1),o.toArray()).toArray():n.items,hasSubgroups:e.length>1,aggregates:o.aggregate(i.aggregates)}})),a},groupBy:function(e){var t,n,i,o,a,s,l,d,u,c,p=this;if(_e(e)||!this.data.length)return new r([]);for(t=e.field,n=e.skipItemSorting?this.data:this._sortForGrouping(t,e.dir||"asc"),i=Ce.accessor(t),a=i.get(n[0],t),s={field:t,value:a,items:[]},c=[s],d=0,u=n.length;di&&(y(i)||w(i))&&(e=i),e}},r.normalizeGroup=m,r.normalizeSort=a,r.process=function(e,n,i){var o,s,l,d,u,c,p,f,h,_,b,y;return n=n||{},o=n.group,s=v(m(o||[])),l=new r(e),d=g(o||[]),u=a(n.sort||[]),c=s?u:d.concat(u),h=n.filterCallback,_=n.filter,b=n.skip,y=n.take,c&&i&&(l=l.sort(c,t,t,i)),_&&(l=l.filter(_),h&&(l=h(l)),f=l.toArray().length),c&&(i||(l=l.sort(c)),o&&(e=l.toArray())),s?(l=l.group(o,e),b!==t&&y!==t&&(l=new r(z(l.toArray())).range(b,y),p=Y(d,function(e){return me({},e,{skipItemSorting:!0})}),l=l.group(p,e))):(b!==t&&y!==t&&(l=l.range(b,y)),o&&(l=l.group(o,e,n))),{total:f,data:l.toArray()}},re=Fe.extend({init:function(e){this.data=e.data},read:function(e){e.success(this.data)},update:function(e){e.success(e.data)},create:function(e){e.success(e.data)},destroy:function(e){e.success(e.data)}}),ae=Fe.extend({init:function(e){var t,n=this;e=n.options=me({},n.options,e),ke(Ue,function(t,n){typeof e[n]===De&&(e[n]={url:e[n]})}),n.cache=e.cache?se.create(e.cache):{find:xe,add:xe},t=e.parameterMap,e.submit&&(n.submit=e.submit),Te(e.push)&&(n.push=e.push),n.push||(n.push=We),n.parameterMap=Te(t)?t:function(e){var n={};return ke(e,function(e,i){e in t&&(e=t[e],ve(e)&&(i=e.value(i),e=e.key)),n[e]=i}),n}},options:{parameterMap:We},create:function(e){return we(this.setup(e,Ee))},read:function(n){var i,o,r,a=this,s=a.cache;n=a.setup(n,Ae),i=n.success||xe,o=n.error||xe,r=s.find(n.data),r!==t?i(r):(n.success=function(e){s.add(n.data,e),i(e)},e.ajax(n))},update:function(e){return we(this.setup(e,Ne))},destroy:function(e){return we(this.setup(e,Re))},setup:function(e,t){e=e||{};var n,i=this,o=i.options[t],r=Te(o.data)?o.data(e.data):o.data;return e=me(!0,{},o,e),n=me(!0,{},r,e.data),e.data=i.parameterMap(n,t),Te(e.url)&&(e.url=e.url(n)),e}}),se=Fe.extend({init:function(){this._store={}},add:function(e,n){e!==t&&(this._store[qe(e)]=n)},find:function(e){return this._store[qe(e)]},clear:function(){this._store={}},remove:function(e){delete this._store[qe(e)]}}),se.create=function(e){var t={inmemory:function(){return new se}};return ve(e)&&Te(e.find)?e:e===!0?new se:t[e]()},le=Fe.extend({init:function(e){var t,n,i,o,r,a,s,l,d,u,c,p,f,h,m=this;e=e||{};for(t in e)n=e[t],m[t]=typeof n===De?je(n):n;o=e.modelBase||Z,ve(m.model)&&(m.model=i=o.define(m.model)),r=ge(m.data,m),m._dataAccessFunction=r,m.model&&(a=ge(m.groups,m),s=ge(m.serialize,m),l={},d={},u={},c={},p=!1,i=m.model,i.fields&&(ke(i.fields,function(e,t){var n;f=e,ve(t)&&t.field?f=t.field:typeof t===De&&(f=t),ve(t)&&t.from&&(n=t.from),p=p||n&&n!==e||f!==e,h=n||f,d[e]=h.indexOf(".")!==-1?je(h,!0):je(h),u[e]=je(e),l[n||f]=e,c[e]=n||f}),!e.serialize&&p&&(m.serialize=S(s,i,x,u,l,c))),m._dataAccessFunction=r,m._wrapDataAccessBase=F(i,C,d,l,c),m.data=S(r,i,C,d,l,c),m.groups=S(a,i,T,d,l,c))},errors:function(e){return e?e.errors:null},parse:We,data:We,total:function(e){return e.length},groups:We,aggregates:function(){return{}},serialize:function(e){return e}}),de=Se.extend({init:function(e){var n,i,o,r=this;e&&(i=e.data),e=r.options=me({},r.options,e),r._map={},r._prefetch={},r._data=[],r._pristineData=[],r._ranges=[],r._view=[],r._pristineTotal=0,r._destroyed=[],r._pageSize=e.pageSize,r._page=e.page||(e.pageSize?1:t),r._sort=a(e.sort),r._filter=d(e.filter),r._group=m(e.group),r._aggregate=e.aggregate,r._total=e.total,r._groupPaging=e.groupPaging,r._groupPaging&&(r._groupsState={}),r._shouldDetachObservableParents=!0,Se.fn.init.call(r),r.transport=ue.create(e,i,r),Te(r.transport.push)&&r.transport.push({pushCreate:ge(r._pushCreate,r),pushUpdate:ge(r._pushUpdate,r),pushDestroy:ge(r._pushDestroy,r)}),null!=e.offlineStorage&&("string"==typeof e.offlineStorage?(o=e.offlineStorage,r._storage={getItem:function(){return JSON.parse(localStorage.getItem(o))},setItem:function(e){localStorage.setItem(o,qe(r.reader.serialize(e)))}}):r._storage=e.offlineStorage),r.reader=new Ce.data.readers[e.schema.type||"json"](e.schema),n=r.reader.model||{},r._detachObservableParents(),r._data=r._observe(r._data),r._online=!0,r.bind(["push",Oe,He,Be,Pe,Ve,Le],e)},options:{data:null,schema:{modelBase:Z},offlineStorage:null,serverSorting:!1,serverPaging:!1,serverFiltering:!1,serverGrouping:!1,serverAggregates:!1,batch:!1,inPlaceSort:!1},clone:function(){return this},online:function(n){return n!==t?this._online!=n&&(this._online=n,n)?this.sync():e.Deferred().resolve().promise():this._online},offlineData:function(e){return null==this.options.offlineStorage?null:e!==t?this._storage.setItem(e):this._storage.getItem()||[]},_isServerGrouped:function(){var e=this.group()||[];return this.options.serverGrouping&&e.length},_isServerGroupPaged:function(){return this._isServerGrouped()&&this._groupPaging},_isGroupPaged:function(){var e=this.group()||[];return this._groupPaging&&e.length},_pushCreate:function(e){this._push(e,"pushCreate")},_pushUpdate:function(e){this._push(e,"pushUpdate")},_pushDestroy:function(e){this._push(e,"pushDestroy")},_push:function(e,t){var n=this._readData(e);n||(n=e),this[t](n)},_flatData:function(e,t){if(e){if(this._isServerGrouped())return E(e);if(!t)for(var n=0;n-1)return t(i,n),!0})},_removePristineForModel:function(e){this._executeOnPristineForModel(e,function(e,t){t.splice(e,1)})},_readData:function(e){var t=this._isServerGrouped()?this.reader.groups:this.reader.data;return t.call(this.reader,e)},_eachPristineItem:function(e){var t=this,n=t.options,i=t._getCurrentRangeSpan();t._eachItem(t._pristineData,e),n.serverPaging&&n.useRanges&&ke(i,function(n,i){t._eachItem(i.pristineData,e)})},_eachItem:function(e,t){e&&e.length&&(this._isServerGrouped()?N(e,t):t(e))},_pristineForModel:function(e){var t,n,i=function(i){if(n=O(i,e),n>-1)return t=i[n],!0};return this._eachPristineItem(i),t},_cancelModel:function(e){var t=this,n=this._pristineForModel(e);this._eachItem(this._data,function(i){var o=B(i,e);o>=0&&(!n||e.isNew()&&!n.__state__?(t._modelCanceled(e),i.splice(o,1),t._removeModelFromRanges(e)):(i[o].accept(n),"update"==n.__state__&&(i[o].dirty=!0)))})},_modelCanceled:xe,_submit:function(t,n){var i=this;i.trigger(Be,{type:"submit"}),i.trigger(Le),i.transport.submit(me({success:function(n,i){var o=e.grep(t,function(e){return e.type==i})[0];o&&o.resolve({response:n,models:o.models,type:i})},error:function(e,n,o){for(var r=0;rf._total&&(f._pageSize=f._total,f.options.pageSize&&f.options.pageSize>f._pageSize&&(f._pageSize=f.options.pageSize)),f._aggregate&&h.serverAggregates&&(f._aggregateResult=f._readAggregates(e)),e=f._readData(e),f._destroyed=[]}else{for(e=f._readData(e),n=[],o={},r=f.reader.model,a=r?r.idField:"id",s=0;se.data.length/t.take+1&&(t.skip=0),o.view(i.range(t.skip,t.take).toArray())):(o.view(e.data),o._updateOuterRangesLength()):o.view(e.data)},_clearEmptyGroups:function(e){var t,n;for(t=e.length-1;t>=0;t--)n=e[t],n.hasSubgroups?this._clearEmptyGroups(n.items):n.items&&!n.items.length&&Qe.apply(n.parent(),[t,1])},_queryProcess:function(e,t){return this.options.inPlaceSort?r.process(e,t,this.options.inPlaceSort):r.process(e,t)},_mergeState:function(n){var i=this;return n!==t&&(i._pageSize=n.pageSize,i._page=n.page,i._sort=n.sort,i._filter=n.filter,i._group=n.group,i._aggregate=n.aggregate,i._skip=i._currentRangeStart=n.skip,i._take=n.take,i._skip===t&&(i._skip=i._currentRangeStart=i.skip(),n.skip=i.skip()),i._take===t&&i._pageSize!==t&&(i._take=i._pageSize,n.take=i._take),n.sort&&(i._sort=n.sort=a(n.sort),i._sortFields=s(n.sort)),n.filter&&(i._filter=n.filter=i.options.accentFoldingFiltering&&!e.isEmptyObject(n.filter)?e.extend({},d(n.filter),{accentFoldingFiltering:i.options.accentFoldingFiltering}):d(n.filter)),n.group&&(i._group=n.group=m(n.group)),n.aggregate&&(i._aggregate=n.aggregate=h(n.aggregate))),n},query:function(n){var i,o,r,a=this.options.serverSorting||this.options.serverPaging||this.options.serverFiltering||this.options.serverGrouping||this.options.serverAggregates;return a||(this._data===t||0===this._data.length)&&!this._destroyed.length?(this.options.endless&&(o=n.pageSize-this.pageSize(),o>0?(o=this.pageSize(),n.page=n.pageSize/o,n.pageSize=o):(n.page=1,this.options.endless=!1)),this.read(this._mergeState(n))):(r=this.trigger(Be,{type:"read"}),r||(this.trigger(Le),n&&(n.groupPaging=this._groupPaging),i=this._queryProcess(this._data,this._mergeState(n)),this._setFilterTotal(i.total,!0),this._aggregateResult=this._calculateAggregates(i.dataToAggregate||this._data,n),this._setView(i,n),this.trigger(Ve,{type:"read"}),this.trigger(He,{items:i.data,action:n?n.action:""})),e.Deferred().resolve(r).promise())},_hasExpandedSubGroups:function(e){var t,n=!1,i=e.items?e.items.length:0;if(!e.hasSubgroups)return!1;for(t=0;t=i.take));p++)if(h._getGroupByUid(a.uid)||h._groupsFlat.push(a),h._groupsState[a.uid]){if(h._isServerGroupPaged()){if(a.hasSubgroups&&!a.subgroupCount)return h.getGroupSubGroupCount(a,i,o,r),h._fetchingGroupItems=!0,t;if(u=(a.subgroupCount||a.itemCount)+1,c=i.skip-i.skipped,d=!a.items||a.items.length-cu){i.skipped+=u;continue}if(a.hasSubgroups&&(!a.items||d&&a.items.length0?n.push(a):a.excludeHeader=!1;else{for(s=[],l=a.items.length,f=0;f=i.take)break;s.push(a.items[f]),i.taken++}s.length||i.taken>0?(a.currentItems=s,n.push(a)):a.excludeHeader=!1}}else{if(i.skipped=o._currentRequestTimeStamp||!o._skipRequestsInProgress)&&o.trigger(He,{})}},findSubgroups:function(e){var t=this._group.map(function(e){return e.field}).indexOf(e.field);return this._group.slice(t+1,this._group.length)},_composeItemsFilter:function(e,t){var n,i=this.filter()||{logic:"and",filters:[]};if(i=me(!0,{},i),i.filters.push({field:e.field,operator:"eq",value:e.value}),t)for(n=0;n1;)t=t[r.splice(0,1)[0]].items;t[r[0]]=l._cloneGroup(e);break}}},_containsSubGroup:function(e,t,n){var i,o,r=this,a=e.items.length;if(e.hasSubgroups&&a)for(o=0;ot.totalPages()))return t._skip=t._currentRangeStart=n*t.take(),n+=1,e.page=n,t._query(e),n},prev:function(e){var t=this,n=t.page();if(e=e||{},n&&1!==n)return t._skip=t._currentRangeStart=t._skip-t.take(),n-=1,e.page=n,t._query(e),n},page:function(e){var n,i,o=this;return e!==t?(e=Ge.max(Ge.min(Ge.max(e,1),o.totalPages()),1),i=o.take(),o._isGroupPaged()?(e-=1,o.range(e*i,i,null,"page"),t):(o._query(o._pageableQueryOptions({page:e})),t)):(n=o.skip(),n!==t?Ge.round((n||0)/(o.take()||1))+1:t)},pageSize:function(e){var n=this;return e!==t?(n._query(n._pageableQueryOptions({pageSize:e,page:1})),t):n.take()},sort:function(e){var n=this;return e!==t?(n.trigger("sort"),n._query({sort:e}),t):n._sort},filter:function(e){var n=this;return e===t?n._filter:(n.trigger("reset"),n._query({filter:e,page:1}),t)},group:function(e){var n=this;return e!==t?(n._query({group:e}),t):n._group},getGroupsFlat:function(e){var t,n,i,o=[];for(t=0,n=e.length;t=o;i--)n=r[i],t={value:e.get?e.get(n.field):e[n.field],field:n.field,items:t?[t]:[e],hasSubgroups:!!t,aggregates:this._emptyAggregates(n.aggregates)};return t},totalPages:function(){var e=this,t=e.pageSize()||e.total(),n=e._isGroupPaged()?e.groupsTotal(!0):e.total();return Ge.ceil((n||0)/t)},inRange:function(e,t){var n=this,i=Ge.min(e+t,n.total());return!n.options.serverPaging&&n._data.length>0||n._findRange(e,i).length>0},lastRange:function(){var e=this._ranges;return e[e.length-1]||{start:0,end:0,data:[]}},firstItemUid:function(){var e=this._ranges;return e.length&&e[0].data.length&&e[0].data[0].uid},enableRequestsInProgress:function(){this._skipRequestsInProgress=!1},_timeStamp:function(){return(new Date).getTime()},range:function(e,n,i,o){var r,a,s,l,d;return this._currentRequestTimeStamp=this._timeStamp(),this._skipRequestsInProgress=!0,r=this._isGroupPaged()?this.groupsTotal(!0):this.total(),"expandGroup"!==o&&"collapseGroup"!==o||this._updateOuterRangesLength(),e=Ge.min(e||0,r),i=Te(i)?i:xe,a=this,s=Ge.max(Ge.floor(e/n),0)*n,l=Ge.min(s+n,r),d=a._findRange(e,Ge.min(e+n,r),i),!d.length&&0!==r||a._fetchingGroupItems?(a._isGroupPaged()&&(a._originalPageSkip=s,a._originalSize=l,s=Ge.max(Ge.floor(a._adjustPageSkip(e,n)/n),0)*n,l=Ge.min(s+n,r)),n===t||a._fetchingGroupItems||(a._isGroupPaged()&&!a._groupRangeExists(s,n)||!a._rangeExists(s,l)?a.prefetch(s,n,function(){e>s&&l=n)return[];if(e>o.outerEnd){T.skipped+=o.outerEnd-(v||0),v=o.outerEnd;continue}if(t!==v&&v!=o.outerStart&&(T.skipped+=o.outerStart-v),T.skipped>T.skip)return[];for(t===v&&e>0&&o.start>0&&(T.skipped=o.outerStart),s=r;;){if(this._findGroupedRange(o.data,k,T,null,i),_=y._calculateGroupsTotal(k,!0,"currentItems"),_>=T.take)return k;if(y._fetchingGroupItems)return[];if(s++,!w[s]||w[s].outerStart!==o.outerEnd)break;o=w[s]}}else if(e>=o[F]&&e<=o[D]){for(h=0,s=r;s=o.start&&(u=o.data,c=o.end,C||(x.inPlaceSort?p=y._queryProcess(o.data,{filter:y.filter()}):(b=g(y.group()||[]).concat(a(y.sort()||[])),p=y._queryProcess(o.data,{sort:b,filter:y.filter()})),f=u=p.data,p.total!==t&&(c=p.total)),l=0,e+h>o.start&&(l=e+h-o.start),d=f.length,c>n&&(d-=c-n),h+=d-l,k=y._mergeGroups(k,u,l,d),n<=o.end&&h==n-e))return k;break}v=o.outerEnd}return[]},_getRangesMismatch:function(e){for(var t,n=this,i=n._ranges,o=0,r=0;;){if(t=i[r],!t||t.outerStart>e)break;t.outerEnd!=t.end&&(o=t.outerEnd-t.end),r++}return o},_mergeGroups:function(e,t,n,i){if(this._isServerGrouped()){var o,r=t.toJSON();return e.length&&(o=e[e.length-1]),I(o,r,n,i),e.concat(r)}return e.concat(t.slice(n,i))},_processRangeData:function(e,n,i,o,r,a){var s,l,d,u,c=this;c._pending=t,c._skip=n>c.skip()&&!c._omitPrefetch?Ge.min(r,(c.totalPages()-1)*c.take()):o,c._currentRangeStart=n,c._take=i,s=c.options.serverPaging,l=c.options.serverSorting,d=c.options.serverFiltering,u=c.options.serverAggregates;try{c.options.serverPaging=!0,c._isServerGrouped()||c.group()&&c.group().length||(c.options.serverSorting=!0),c.options.serverFiltering=!0,c.options.serverPaging=!0,c.options.serverAggregates=!0,s&&(c._detachObservableParents(),c._data=e=c._observe(e)),c._process(e,a)}finally{c.options.serverPaging=s,c.options.serverSorting=l,c.options.serverFiltering=d,c.options.serverAggregates=u}},skip:function(){var e=this;return e._skip===t?e._page!==t?(e._page-1)*(e.take()||1):t:e._skip},currentRangeStart:function(){return this._currentRangeStart||0},take:function(){return this._take||this._pageSize},_prefetchSuccessHandler:function(e,t,n,i){var o=this,r=o._timeStamp();return function(a){var s,l,d,u=!1,c={start:e,end:t,data:[],timestamp:o._timeStamp()};if(o._dequeueRequest(),o.trigger(Ve,{response:a,type:"read"}),a=o.reader.parse(a),d=o._readData(a),d.length){for(s=0,l=o._ranges.length;s=o._currentRequestTimeStamp||!o._skipRequestsInProgress)&&(n&&d.length?n():o.trigger(He,{}))}},prefetch:function(e,n,i){var o=this,r=Ge.min(e+n,o.total()),a={take:n,skip:e,page:e/n+1,pageSize:n,sort:o._sort,filter:o._filter,group:o._group,aggregate:o._aggregate};return o._isGroupPaged()&&!o._isServerGrouped()&&o._groupRangeExists(e,r)?(i&&i(),t):(o._isServerGroupPaged()&&!o._groupRangeExists(e,r)||!o._rangeExists(e,r)?(clearTimeout(o._timeout),o._timeout=setTimeout(function(){o._queueRequest(a,function(){o.trigger(Be,{type:"read"})?o._dequeueRequest():(o._omitPrefetch&&o.trigger(Le),o.transport.read({data:o._params(a),success:o._prefetchSuccessHandler(e,r,i),error:function(){var e=Je.call(arguments);o.error.apply(o,e)}}))})},100)):i&&i(),t)},_multiplePrefetch:function(e,t,n){var i=this,o=Ge.min(e+t,i.total()),r={take:t,skip:e,page:e/t+1,pageSize:t,sort:i._sort,filter:i._filter,group:i._group,aggregate:i._aggregate};i._rangeExists(e,o)?n&&n():i.trigger(Be,{type:"read"})||i.transport.read({data:i._params(r),success:i._prefetchSuccessHandler(e,o,n,!0)})},_adjustPageSkip:function(e,t){var n,i,o=this,r=o._getPrevRange(e),a=o.total();if(r){if(i=o._getRangesMismatch(e),!i)return e;e-=i}if(n=Ge.max(Ge.floor(e/t),0)*t,n>a)for(;;)if(n-=t,n=e)return o[t]},_getPrevRange:function(e){var t,n,i=this,o=i._ranges,r=o.length;for(t=r-1;t>=0;t--)if(o[t].outerStart<=e){n=o[t];break}return n},_rangeExists:function(e,t){var n,i,o=this,r=o._ranges;for(n=0,i=r.length;n=t)return!0;return!1},_groupRangeExists:function(e,t){var n,i,o,r=this,a=r._ranges,s=0,l=r.groupsTotal(!0);for(t>l&&!r._isServerGrouped()&&(t=l),n=0,i=a.length;n=e?s+=o.outerEnd-e:o.outerStart<=t&&o.outerEnd>=t&&(s+=t-o.outerStart);return s>=t-e},_getCurrentRangeSpan:function(){var e,t,n=this,i=n._ranges,o=n.currentRangeStart(),r=o+(n.take()||0),a=[],s=i.length;for(t=0;t=o||e.start>=o&&e.start<=r)&&a.push(e);return a},_removeModelFromRanges:function(e){var t,n,i,o=this;for(n=0,i=this._ranges.length;n=e){o._getByUid(t.uid,n.data)||(o._isServerGrouped()?n.data.splice(e,0,o._wrapInEmptyGroup(t)):n.data.splice(e,0,t));break}o._updateRangesLength()},_updateRangesLength:function(){var e,t,n,i=this,o=i._ranges||[],r=o.length,a=!1,s=0,l=0;for(n=0;n0?this.filter(this._hierarchicalFilter):(this.options.filter=this._hierarchicalFilter,this._filter=d(this.options.filter),this._hierarchicalFilter=null)),t},remove:function(e){var t,n=e.parentNode(),i=this;return n&&n._initChildren&&(i=n.children),t=de.fn.remove.call(i,e),n&&!i.data().length&&(n.hasChildren=!1),t},success:G("success"),data:G("data"),insert:function(e,t){var n=this.parent();return n&&n._initChildren&&(n.hasChildren=!0,n._initChildren()),de.fn.insert.call(this,e,t)},filter:function(e){return e===t?this._filter:(!this.options.serverFiltering&&this._markHierarchicalQuery(e)&&(e={logic:"or",filters:[e,{field:"_matchFilter",operator:"equals",value:!0}]}),this.trigger("reset"),this._query({filter:e,page:1}),t)},_markHierarchicalQuery:function(t){var n,i,o,a,s,l=this.options.accentFoldingFiltering;return t=l?e.extend({},d(t),{accentFoldingFiltering:l}):d(t),t&&0!==t.filters.length?(n=r.filterExpr(t),o=n.fields,a=n.operators,i=s=Function("d, __f, __o","return "+n.expression),(o.length||a.length)&&(s=function(e){return i(e,o,a)}),this._updateHierarchicalFilter(s),!0):(this._updateHierarchicalFilter(function(){return!0}),!1)},_updateHierarchicalFilter:function(e){var t,n,i=this._data,o=!1;for(n=0;n=this.total()?(this.trigger("endreached",{index:e}),null):this.useRanges?this.useRanges?((e=this.skip+n)&&(i=this.range(Math.floor(e/n)*n)),e===this.prefetchThreshold&&this._prefetch(),e===this.midPageThreshold?this.range(this.nextMidRange,!0):e===this.nextPageThreshold?this.range(this.nextFullRange):e===this.pullBackThreshold&&this.range(this.offset===this.skip?this.previousMidRange:this.previousFullRange),i?this.dataSource.at(e-this.dataOffset):(this.trigger("endreached",{index:e}),null)):t:this.dataSource.view()[e]},indexOf:function(e){return this.dataSource.data().indexOf(e)+this.dataOffset},total:function(){return parseInt(this.dataSource.total(),10)},next:function(){var e=this,t=e.pageSize,n=e.skip-e.viewSize+t,i=Ge.max(Ge.floor(n/t),0)*t;this.offset=n,this.dataSource.prefetch(i,t,function(){e._goToRange(n,!0)})},range:function(e,t){if(this.offset===e)return!0;var n=this,i=this.pageSize,o=Ge.max(Ge.floor(e/i),0)*i,r=this.dataSource;return t&&(o+=i),r.inRange(e,i)?(this.offset=e,this._recalculate(),this._goToRange(e),!0):!this.prefetch||(r.prefetch(o,i,function(){n.offset=e,n._recalculate(),n._goToRange(e,!0)}),!1)},syncDataSource:function(){var e=this.offset;this.offset=null,this.range(e)},destroy:function(){this.unbind()},_prefetch:function(){var e=this,t=this.pageSize,n=this.skip+t,i=this.dataSource;i.inRange(n,t)||this._prefetching||!this.prefetch||(this._prefetching=!0,this.trigger("prefetching",{skip:n,take:t}),i.prefetch(n,t,function(){e._prefetching=!1,e.trigger("prefetched",{skip:n,take:t})}))},_goToRange:function(e,t){this.offset===e&&(this.dataOffset=e,this._expanding=t,this.dataSource.range(e,this.pageSize),this.dataSource.enableRequestsInProgress())},_reset:function(){this._syncPending=!0},_change:function(){var e=this.dataSource;this.length=this.useRanges?e.lastRange().end:e.view().length,this._syncPending&&(this._syncWithDataSource(),this._recalculate(),this._syncPending=!1,this.trigger("reset",{offset:this.offset})),this.trigger("resize"),this._expanding&&this.trigger("expand"),delete this._expanding},_syncWithDataSource:function(){var e=this.dataSource;this._firstItemUid=e.firstItemUid(),this.dataOffset=this.offset=e.skip()||0,this.pageSize=e.pageSize(),this.useRanges=e.options.serverPaging},_recalculate:function(){var e=this.pageSize,t=this.offset,n=this.viewSize,i=Math.ceil(t/e)*e;this.skip=i,this.midPageThreshold=i+e-1,this.nextPageThreshold=i+n-1,this.prefetchThreshold=i+Math.floor(e/3*2),this.pullBackThreshold=this.offset-1,this.nextMidRange=i+e-n,this.nextFullRange=i,this.previousMidRange=t-n,this.previousFullRange=i-e}}),he=Ce.Observable.extend({init:function(e,t){var n=this;Ce.Observable.fn.init.call(n),this.dataSource=e,this.batchSize=t,this._total=0,this.buffer=new fe(e,3*t),this.buffer.bind({endreached:function(e){n.trigger("endreached",{index:e.index})},prefetching:function(e){n.trigger("prefetching",{skip:e.skip,take:e.take})},prefetched:function(e){n.trigger("prefetched",{skip:e.skip,take:e.take})},reset:function(){n._total=0,n.trigger("reset")},resize:function(){n._total=Math.ceil(this.length/n.batchSize),n.trigger("resize",{total:n.total(),offset:this.offset})}})},syncDataSource:function(){this.buffer.syncDataSource()},at:function(e){var t,n,i=this.buffer,o=e*this.batchSize,r=this.batchSize,a=[];for(i.offset>o&&i.at(i.offset-1),n=0;n0)&&t.preventDefault()}).on("mouseleave"+W,function(){o._hovered=!1}),o.wrapper=e(),n.animation===!1&&(n.animation={open:{effects:{}},close:{hide:!0,effects:{}}}),U(n.animation.open,{complete:function(){o.wrapper.css({overflow:I}),o._activated=!0,o._trigger(_)}}),U(n.animation.close,{complete:function(){o._animationClose()}}),o._mousedownProxy=function(e){o._mousedown(e)},o._resizeProxy=c.mobileOS.android?function(e){setTimeout(function(){o._resize(e)},600)}:function(e){o._resize(e)},n.toggleTarget&&e(n.toggleTarget).on(n.toggleEvent+W,e.proxy(o.toggle,o))},events:[m,_,g,v],options:{name:"Popup",toggleEvent:"click",origin:x+" "+y,position:k+" "+y,anchor:S,appendTo:null,collision:"flip fit",viewport:window,copyAnchorStyles:!0,autosize:!1,modal:!1,adjustSize:{width:0,height:0},animation:{open:{effects:"slideIn:down",transition:!0,duration:200},close:{duration:100,hide:!0}}},_animationClose:function(){var e=this,t=e.wrapper.data(F);e.wrapper.hide(),t&&e.wrapper.css(t),e.options.anchor!=S&&e._hideDirClass(),e._closing=!1,e._trigger(v)},destroy:function(){var t,n=this,i=n.options,o=n.element.off(W);d.fn.destroy.call(n),i.toggleTarget&&e(i.toggleTarget).off(W),i.modal||(P.off(n.downEvent,n._mousedownProxy),n._toggleResize(!1)),s.destroy(n.element.children()),o.removeData(),i.appendTo[0]===document.body&&(t=o.parent(".k-animation-container"),t[0]?t.remove():o.remove())},open:function(n,i){var o,r,a=this,l={isFixed:!isNaN(parseInt(i,10)),x:n,y:i},d=a.element,u=a.options,p=e(u.anchor),f=d[0]&&d.hasClass("km-widget");if(!a.visible()){if(u.copyAnchorStyles&&(f&&"font-size"==j[0]&&j.shift(),d.css(s.getComputedStyles(p[0],j))),d.data("animating")||a._trigger(m))return;a._activated=!1,u.modal||(P.off(a.downEvent,a._mousedownProxy).on(a.downEvent,a._mousedownProxy),a._toggleResize(!1),a._toggleResize(!0)),a.wrapper=r=s.wrap(d,u.autosize).css({overflow:T,display:"block",position:C}).attr("aria-hidden",!1),c.mobileOS.android&&r.css(V,"translatez(0)"),r.css(D),e(u.appendTo)[0]==document.body&&r.css(k,"-10000px"),a.flipped=a._position(l),o=a._openAnimation(),u.anchor!=S&&a._showDirClass(o),d.is(":visible")||d.data("olddisplay")!==t||(d.show(),d.data("olddisplay",d.css("display")),d.hide()),d.data(z,o.effects).kendoStop(!0).kendoAnimate(o).attr("aria-hidden",!1)}},_location:function(t){var n,i,o=this,r=o.element,a=o.options,l=e(a.anchor),d=r[0]&&r.hasClass("km-widget");return a.copyAnchorStyles&&(d&&"font-size"==j[0]&&j.shift(),r.css(s.getComputedStyles(l[0],j))),o.wrapper=n=s.wrap(r,a.autosize).css({overflow:T,display:"block",position:C}),c.mobileOS.android&&n.css(V,"translatez(0)"),n.css(D),e(a.appendTo)[0]==document.body&&n.css(k,"-10000px"),o._position(t||{}),i=n.offset(),{width:s._outerWidth(n),height:s._outerHeight(n),left:i.left,top:i.top}},_openAnimation:function(){var e=U(!0,{},this.options.animation.open);return e.effects=s.parseEffects(e.effects,this.flipped),e},_hideDirClass:function(){var t=e(this.options.anchor),n=((t.attr("class")||"").match(N)||["","down"])[1],i=A+"-"+n;t.removeClass(i).children(R).removeClass(E).removeClass(i),this.element.removeClass(A+"-"+s.directions[n].reverse)},_showDirClass:function(t){var n=t.effects.slideIn?t.effects.slideIn.direction:"down",i=A+"-"+n;e(this.options.anchor).addClass(i).children(R).addClass(E).addClass(i),this.element.addClass(A+"-"+s.directions[n].reverse)},position:function(){this.visible()&&(this.flipped=this._position())},toggle:function(){var e=this;e[e.visible()?g:m]()},visible:function(){return this.element.is(":"+I)},close:function(n){var i,o,r,a,l=this,d=l.options;if(l.visible()){if(i=l.wrapper[0]?l.wrapper:s.wrap(l.element).hide(),l._toggleResize(!1),l._closing||l._trigger(g))return l._toggleResize(!0),t;l.element.find(".k-popup").each(function(){var t=e(this),i=t.data("kendoPopup");i&&i.close(n)}),P.off(l.downEvent,l._mousedownProxy),n?o={hide:!0,effects:{}}:(o=U(!0,{},d.animation.close),r=l.element.data(z),a=o.effects,!a&&!s.size(a)&&r&&s.size(r)&&(o.effects=r,o.reverse=!0),l._closing=!0),l.element.kendoStop(!0).attr("aria-hidden",!0),i.css({overflow:T}).attr("aria-hidden",!0),l.element.kendoAnimate(o),n&&l._animationClose()}},_trigger:function(e){return this.trigger(e,{type:e})},_resize:function(e){var t=this;c.resize.indexOf(e.type)!==-1?(clearTimeout(t._resizeTimeout),t._resizeTimeout=setTimeout(function(){t._position(),t._resizeTimeout=null},50)):(!t._hovered||t._activated&&t.element.hasClass("k-list-container"))&&t.close()},_toggleResize:function(e){var t=e?"on":"off",n=c.resize;c.mobileOS.ios||c.mobileOS.android||c.browser.safari||(n+=" "+B),e&&!this.scrollableParents&&(this.scrollableParents=this._scrollableParents()),this.scrollableParents&&this.scrollableParents.length&&this.scrollableParents[t](B,this._resizeProxy),O[t](n,this._resizeProxy)},_mousedown:function(t){var i=this,o=i.element[0],r=i.options,a=e(r.anchor)[0],l=r.toggleTarget,d=s.eventTarget(t),u=e(d).closest(".k-popup"),c=u.parent().parent(".km-shim").length;u=u[0],!c&&u&&u!==i.element[0]||"popover"!==e(t.target).closest("a").data("rel")&&(n(o,d)||n(a,d)||l&&n(e(l)[0],d)||i.close())},_fit:function(e,t,n){var i=0;return e+t>n&&(i=n-(e+t)),e<0&&(i=-e),i},_flip:function(e,t,n,i,o,r,a){var s=0;return a=a||t,r!==o&&r!==b&&o!==b&&(e+a>i&&(s+=-(n+t)),e+s<0&&(s+=n+t)),s},_scrollableParents:function(){return e(this.options.anchor).parentsUntil("body").filter(function(e,t){return s.isScrollable(t)})},_position:function(t){var n,i,o,r,a,l,d,u,m,g,v,_,b,y,w,k,x,T=this,S=T.element,I=T.wrapper,z=T.options,E=e(z.viewport),A=c.zoomLevel(),N=!!(E[0]==window&&window.innerWidth&&A<=1.02),R=e(z.anchor),H=z.origin.toLowerCase().split(" "),P=z.position.toLowerCase().split(" "),M=T.collisions,O=10002,B=0,L=document.documentElement;if(a=z.viewport===window?{top:window.pageYOffset||document.documentElement.scrollTop||0,left:window.pageXOffset||document.documentElement.scrollLeft||0}:E.offset(),N?(l=window.innerWidth,d=window.innerHeight):(l=E.width(),d=E.height()),N&&L.scrollHeight-L.clientHeight>0&&(u=z.isRtl?-1:1,l-=u*s.support.scrollbar()),n=R.parents().filter(I.siblings()),n[0])if(o=Math.max(+n.css("zIndex"),0))O=o+10;else for(i=R.parentsUntil(n),r=i.length;B=0&&e(n).is(":visible")&&!e(n).is("[disabled]")});return this.element.is("[tabindex]")&&t.push(this.element[0]),t},_sortFocusableElements:function(e){var t,n;return i?t=e.sort(function(e,t){return e.tabIndex-t.tabIndex}):(n="__k_index",e.each(function(e,t){t.setAttribute(n,e)}),t=e.sort(function(e,t){return e.tabIndex===t.tabIndex?parseInt(e.getAttribute(n),10)-parseInt(t.getAttribute(n),10):e.tabIndex-t.tabIndex}),e.removeAttr(n)),t},_nextFocusable:function(e,t){var n=t.length,i=t.index(e.target);return t.get((i+(e.shiftKey?-1:1))%n)},_focus:function(e){return"IFRAME"==e.nodeName?(e.contentWindow.document.body.focus(),t):(e.focus(),"INPUT"==e.nodeName&&e.setSelectionRange&&this._haveSelectionRange(e)&&e.setSelectionRange(0,e.value.length),t)},_haveSelectionRange:function(e){var t=e.type.toLowerCase();return"text"===t||"search"===t||"url"===t||"tel"===t||"password"===t}}),l.Popup.TabKeyTrap=a}(window.kendo.jQuery),window.kendo},"function"==typeof define&&define.amd?define:function(e,t,n){(n||t)()}),function(e,define){define("kendo.list.min",["kendo.data.min","kendo.popup.min"],e)}(function(){return function(e,t){function n(e,n){return e!==t&&""!==e&&null!==e&&("boolean"===n?("boolean"!=typeof e&&(e="true"===e.toLowerCase()),e=!!e):"number"===n?e=+e:"string"===n&&(e=""+e)),e}function i(e){return e[e.length-1]}function o(e){var t=e.selectedIndex;return t>-1?e.options[t]:{}}function r(e,t){var n,i,o,r,a=t.length,s=e.length,l=[],d=[];if(s)for(o=0;o').attr({tabIndex:-1,"aria-hidden":!0}),o.list=e("
        ").append(o.ul).on("mousedown"+r,L(o._listMousedown,o)),i=t.attr(w),i||(i=u.guid()),o.list.attr(w,i+"-list"),o.ul.attr(w,i+"_listbox"),n.columns&&n.columns.length&&(o.ul.removeClass("k-list").addClass("k-grid-list"),o._columnsHeader()),o._header(),o._noData(),o._footer(),o._accessors(),o._initValue()},options:{valuePrimitive:!1,footerTemplate:"",headerTemplate:"",noDataTemplate:!0,messages:{noData:"No data found.",clear:"clear"}},setOptions:function(e){h.fn.setOptions.call(this,e),e&&e.enable!==t&&(e.enabled=e.enable),e.columns&&e.columns.length&&this._columnsHeader(),this._header(),this._noData(),this._footer(),this._renderFooter(),this._renderNoData()},focus:function(){this._focused.focus()},readonly:function(e){this._editable({readonly:e===t||e,disable:!1})},enable:function(e){this._editable({readonly:!1,disable:!(e=e===t||e)})},_header:function(){var n,i=this,o=e(i.header),r=i.options.headerTemplate;return this._angularElement(o,"cleanup"),u.destroy(o),o.remove(),r?(n="function"!=typeof r?u.template(r):r,o=e(n({})),i.header=o[0]?o:null,i.list.prepend(o),this._angularElement(i.header,"compile"),t):(i.header=null,t)},_columnsHeader:function(){var t,n,i,o,r,a,s,l,d,c,p,h=this,m=e(h.columnsHeader);for(this._angularElement(m,"cleanup"),u.destroy(m),m.remove(),t="
        ",n="",i="",o=0;o",i+="";n+="",i+="",t+=n,t+=i,t+="
        ",i+=l(r),i+="
        ",h.columnsHeader=m=e(t),h.list.prepend(m),this._angularElement(h.columnsHeader,"compile")},_noData:function(){var n=this,i=e(n.noData),o=n.options.noDataTemplate===!0?n.options.messages.noData:n.options.noDataTemplate;return n.angular("cleanup",function(){return{elements:i}}),u.destroy(i),i.remove(),o?(n.noData=e('').appendTo(n.list),n.noDataTemplate="function"!=typeof o?u.template(o):o,t):(n.noData=null,t)},_footer:function(){var n=this,i=e(n.footer),o=n.options.footerTemplate;return this._angularElement(i,"cleanup"),u.destroy(i),i.remove(),o?(n.footer=e('').appendTo(n.list),n.footerTemplate="function"!=typeof o?u.template(o):o,t):(n.footer=null,t)},_listOptions:function(t){var n=this,i=n.options,o=i.virtual,r={change:L(n._listChange,n)},a=L(n._listBound,n);return o="object"==typeof o?o:{},t=e.extend({autoBind:!1,selectable:!0,dataSource:n.dataSource,click:L(n._click,n),activate:L(n._activateItem,n),columns:i.columns,deactivate:L(n._deactivateItem,n),dataBinding:function(){n.trigger("dataBinding")},dataBound:a,height:i.height,dataValueField:i.dataValueField,dataTextField:i.dataTextField,groupTemplate:i.groupTemplate,fixedGroupTemplate:i.fixedGroupTemplate,template:i.template},t,o,r),t.template||(t.template="#:"+u.expr(t.dataTextField,"data")+"#"),i.$angular&&(t.$angular=i.$angular),t},_initList:function(){var e=this,t=e._listOptions({selectedItemChange:L(e._listChange,e)});e.listView=e.options.virtual?new u.ui.VirtualList(e.ul,t):new u.ui.StaticList(e.ul,t),e.listView.bind("listBound",L(e._listBound,e)),e._setListValue()},_setListValue:function(e){e=e||this.options.value,e!==t&&this.listView.value(e).done(L(this._updateSelectionState,this))},_updateSelectionState:e.noop,_listMousedown:function(e){this.filterInput&&this.filterInput[0]===e.target||e.preventDefault()},_isFilterEnabled:function(){var e=this.options.filter;return e&&"none"!==e},_hideClear:function(){var e=this;e._clear&&e._clear.addClass(W)},_showClear:function(){this._clear&&this._clear.removeClass(W)},_clearValue:function(){this._clearText(),this._accessor(""),this.listView.value([]),this._isSelect&&(this._customOption=t),this._isFilterEnabled()&&!this.options.enforceMinLength&&(this._filter({word:"",open:!1}),this.options.highlightFirst&&this.listView.focus(0)),this._change()},_clearText:function(){this.text("")},_clearFilter:function(){this.options.virtual||this.listView.bound(!1),this._filterSource()},_filterSource:function(e,t){var n,i,o=this,r=o.options,l=r.filterFields&&e&&e.logic&&e.filters&&e.filters.length,d=o.dataSource,u=B({},d.filter()||{}),c=e||u.filters&&u.filters.length&&!e,p=s(u,r.dataTextField);if(this._clearFilterExpressions(u),!e&&!p||!o.trigger("filtering",{filter:e}))return n={filters:[],logic:"and"},l?n.filters.push(e):this._pushFilterExpression(n,e),a(u)&&(n.logic===u.logic?n.filters=n.filters.concat(u.filters):n.filters.push(u)),o._cascading&&this.listView.setDSFilter(n),i=B({},{page:c?1:d.page(),pageSize:c?d.options.pageSize:d.pageSize(),sort:d.sort(),filter:d.filter(),group:d.group(),aggregate:d.aggregate()},{filter:n}),d[t?"read":"query"](d._mergeState(i))},_pushFilterExpression:function(e,t){a(t)&&""!==t.value&&e.filters.push(t)},_clearFilterExpressions:function(e){var t,n;if(e.filters){for(n=0;n').attr({role:"button",tabIndex:-1})),t.options.clearButton||t._clear.remove(),this._hideClear()},search:function(e){var t=this.options;e="string"==typeof e?e:this._inputValue(),clearTimeout(this._typingTimeout),(!t.enforceMinLength&&!e.length||e.length>=t.minLength)&&(this._state="filter",this.listView&&(this.listView._emptySearch=!u.trim(e).length),this._isFilterEnabled()?this._filter({word:e,open:!0}):this._searchByWord(e))},current:function(e){return this._focus(e)},items:function(){return this.ul[0].children},destroy:function(){var e=this,t=e.ns;h.fn.destroy.call(e),e._unbindDataSource(),e.listView.destroy(),e.list.off(t),e.popup.destroy(),e._form&&e._form.off("reset",e._resetHandler)},dataItem:function(n){var i=this;if(n===t)return i.listView.selectedDataItems()[0];if("number"!=typeof n){if(i.options.virtual)return i.dataSource.getByUid(e(n).data("uid"));n=e(i.items()).index(n)}return i.dataSource.flatView()[n]},_activateItem:function(){var e=this.listView.focus();e&&this._focused.add(this.filterInput).attr("aria-activedescendant",e.attr("id"))},_deactivateItem:function(){this._focused.add(this.filterInput).removeAttr("aria-activedescendant")},_accessors:function(){var e=this,t=e.element,n=e.options,i=u.getter,o=t.attr(u.attr("text-field")),r=t.attr(u.attr("value-field"));!n.dataTextField&&o&&(n.dataTextField=o),!n.dataValueField&&r&&(n.dataValueField=r),e._text=i(n.dataTextField),e._value=i(n.dataValueField)},_aria:function(e){var n=this,i=n.options,o=n._focused.add(n.filterInput);i.suggest!==t&&o.attr("aria-autocomplete",i.suggest?"both":"list"),e=e?e+" "+n.ul[0].id:n.ul[0].id,o.attr("aria-owns",e),n.ul.attr("aria-live",n._isFilterEnabled()?"polite":"off"),n._ariaLabel()},_ariaLabel:function(){var t,n=this,i=n._focused,o=n.element,r=o.attr("id"),a=e('label[for="'+r+'"]'),s=o.attr("aria-label"),l=o.attr("aria-labelledby");i!==o&&(s?i.attr("aria-label",s):l?i.attr("aria-labelledby",l):a.length&&(t=a.attr("id")||n._generateLabelId(a,r||u.guid()),i.attr("aria-labelledby",t)))},_generateLabelId:function(e,t){var n=t+D;return e.attr("id",n),n},_blur:function(){var e=this;e._change(),e.close(),e._userTriggered=!1},_change:function(){var e,i=this,o=i.selectedIndex,r=i.options.value,a=i.value();i._isSelect&&!i.listView.bound()&&r&&(a=r),a!==n(i._old,typeof a)&&a!==n(i._oldText,typeof a)?e=!0:i._valueBeforeCascade!==t&&i._valueBeforeCascade!==n(i._old,typeof i._valueBeforeCascade)&&i._userTriggered?e=!0:o===t||o===i._oldIndex||i.listView.isFiltered()||(e=!0),e&&(i._valueBeforeCascade=i._old=null===i._old||""===i._old||""===a?a:i.dataItem()?i.options.dataValueField?i.dataItem()[i.options.dataValueField]:i.dataItem():null,i._oldIndex=o,i._oldText=i.text&&i.text(),i._typing||i.element.trigger(k),i.trigger(k)),i.typing=!1},_data:function(){return this.dataSource.view()},_enable:function(){var e=this,n=e.options,i=e.element.is("[disabled]");n.enable!==t&&(n.enabled=n.enable),!n.enabled||i?e.enable(!1):e.readonly(e.element.is("[readonly]"))},_dataValue:function(e){var n=this._value(e);return n===t&&(n=this._text(e)),n},_offsetHeight:function(){var t=0,n=this.listView.content.prevAll(":visible");return n.each(function(){var n=e(this);t+=p(n,!0)}),t},_height:function(n){var i,o,r,a=this,s=a.list,l=a.options.height,d=a.popup.visible();if(n||a.options.noDataTemplate){if(o=s.add(s.parent(".k-animation-container")).show(),!s.is(":visible"))return o.hide(),t;l=a.listView.content[0].scrollHeight>l?l:"auto",o.height(l),"auto"!==l&&(i=a._offsetHeight(),r=p(e(a.footer))||0,l=l-i-r),a.listView.content.height(l),d||o.hide()}return l},_openHandler:function(e){this._adjustListWidth(),this.trigger(I)?e.preventDefault():(this._focused.attr("aria-expanded",!0),this.ul.attr("aria-hidden",!1))},_adjustListWidth:function(){var e,t,n=this,i=n.list,o=i[0].style.width,r=n.wrapper;if(i.data(j)||!o)return e=window.getComputedStyle?window.getComputedStyle(r[0],null):0,t=parseFloat(e&&e.width)||b(r),e&&U.msie&&(t+=parseFloat(e.paddingLeft)+parseFloat(e.paddingRight)+parseFloat(e.borderLeftWidth)+parseFloat(e.borderRightWidth)),o="border-box"!==i.css("box-sizing")?t-(b(i)-i.width()):t,i.css({fontFamily:r.css("font-family"),width:n.options.autoWidth?"auto":o,minWidth:o,whiteSpace:n.options.autoWidth?"nowrap":"normal"}).data(j,o),!0},_closeHandler:function(e){this.trigger(z)?e.preventDefault():(this._focused.attr("aria-expanded",!1),this.ul.attr("aria-hidden",!0))},_focusItem:function(){var e=this.listView,n=!e.focus(),o=i(e.select());o===t&&this.options.highlightFirst&&n&&(o=0),o!==t?e.focus(o):n&&e.scrollToIndex(0)},_calculateGroupPadding:function(e){var t=this.ul.children(".k-first:first"),n=this.listView.content.prev(S),i=0,o="right";n[0]&&"none"!==n[0].style.display&&("auto"!==e&&(i=u.support.scrollbar()),this.element.parents(".k-rtl").length&&(o="left"),i+=parseFloat(t.css("border-"+o+"-width"),10)+parseFloat(t.children(".k-group").css("padding-"+o),10),n.css("padding-"+o,i))},_calculatePopupHeight:function(e){var t=this._height(this.dataSource.flatView().length||e);this._calculateGroupPadding(t),this._calculateColumnsHeaderPadding(t)},_calculateColumnsHeaderPadding:function(e){var t,n,i;this.options.columns&&this.options.columns.length&&(t=this,n=g.isRtl(t.wrapper),i=u.support.scrollbar(), +t.columnsHeader.css(n?"padding-left":"padding-right","auto"!==e?i:0))},_refreshScroll:function(){var e=this.listView,t=e.element.height()>e.content.height();this.options.autoWidth&&e.content.css({overflowX:"hidden",overflowY:t?"scroll":"auto"})},_resizePopup:function(e){this.options.virtual||(this.popup.element.is(":visible")?this._calculatePopupHeight(e):(this.popup.one("open",function(e){return L(function(){this._calculatePopupHeight(e)},this)}.call(this,e)),this.popup.one("activate",L(this._refreshScroll,this))))},_popup:function(){var e=this;e.popup=new c.Popup(e.list,B({},e.options.popup,{anchor:e.wrapper,open:L(e._openHandler,e),close:L(e._closeHandler,e),animation:e.options.animation,isRtl:g.isRtl(e.wrapper),autosize:e.options.autoWidth}))},_makeUnselectable:function(){G&&this.list.find("*").not(".k-textbox").attr("unselectable","on")},_toggleHover:function(t){e(t.currentTarget).toggleClass(C,"mouseenter"===t.type)},_toggle:function(e,n){var i=this,o=g.mobileOS&&(g.touch||g.MSPointers||g.pointers);e=e!==t?e:!i.popup.visible(),n||o||i._focused[0]===_()||(i._prevent=!0,i._focused.focus(),i._prevent=!1),i[e?I:z]()},_triggerCascade:function(){var e=this;e._cascadeTriggered&&e.value()===n(e._cascadedValue,typeof e.value())||(e._cascadedValue=e.value(),e._cascadeTriggered=!0,e.trigger(E,{userTriggered:e._userTriggered}))},_triggerChange:function(){this._valueBeforeCascade!==this.value()&&this.trigger(k)},_unbindDataSource:function(){var e=this;e.dataSource.unbind(R,e._requestStartHandler).unbind(H,e._requestEndHandler).unbind("error",e._errorHandler)},requireValueMapper:function(e,t){var n=(e.value instanceof Array?e.value.length:e.value)||(t instanceof Array?t.length:t);if(n&&e.virtual&&"function"!=typeof e.virtual.valueMapper)throw Error("ValueMapper is not provided while the value is being set. See http://docs.telerik.com/kendo-ui/controls/editors/combobox/virtualization#the-valuemapper-function")}});B(K,{inArray:function(e,t){var n,i,o=t.children;if(!e||e.parentNode!==t)return-1;for(n=0,i=o.length;n"),n._customOption=o,i.append(o)),o.text(t),o[0].selected=!0},_hideBusy:function(){var e=this;clearTimeout(e._busy),e._arrowIcon.removeClass(T),e._focused.attr("aria-busy",!1),e._busy=null,e._showClear()},_showBusy:function(e){var t=this;e.isDefaultPrevented()||(t._request=!0,t._busy||(t._busy=setTimeout(function(){t._arrowIcon&&(t._focused.attr("aria-busy",!0),t._arrowIcon.addClass(T),t._hideClear())},100)))},_requestEnd:function(){this._request=!1,this._hideBusy()},_dataSource:function(){var t,n=this,i=n.element,o=n.options,r=o.dataSource||{};r=e.isArray(r)?{data:r}:r,n._isSelect&&(t=i[0].selectedIndex,t>-1&&(o.index=t),r.select=i,r.fields=[{field:o.dataTextField},{field:o.dataValueField}]),n.dataSource?n._unbindDataSource():(n._requestStartHandler=L(n._showBusy,n),n._requestEndHandler=L(n._requestEnd,n),n._errorHandler=L(n._hideBusy,n)),n.dataSource=u.data.DataSource.create(r).bind(R,n._requestStartHandler).bind(H,n._requestEndHandler).bind("error",n._errorHandler)},_firstItem:function(){this.listView.focusFirst()},_lastItem:function(){this.listView.focusLast()},_nextItem:function(){return this.listView.focusNext()},_prevItem:function(){return this.listView.focusPrev()},_getNormalizedDataItem:function(e){var t,n=this,i=n.listView,o="number"==typeof e,r=n.optionLabel&&n.optionLabel.length;return t=o?r?--e:e:i.getElementIndex(e),i.dataItemByIndex(t)},_getNormalizedSelectCandidate:function(e){var t=this,n=t.optionLabel&&t.optionLabel.length,i="number"==typeof e,o=e;return n&&i&&o++,o},_move:function(e){var t,n,i,o,r,a,s,l,d,u=this,c=u.listView,p=e.keyCode,f=p===m.DOWN,h=u.options.virtual;if(p===m.UP||f){if(e.altKey)u.toggle(f);else{if(!c.bound()&&!u.ul[0].firstChild)return u._fetch||(u.dataSource.one(k,function(){u._fetch=!1,u._move(e)}),u._fetch=!0,u._filterSource()),e.preventDefault(),!0;i=u._focus(),u._fetch||i&&!i.hasClass("k-state-selected")||(f?(o=u._nextItem(),(h&&o<=0||!u._focus()&&!o)&&u._lastItem()):(o=u._prevItem(),(h&&o>=c.dataSource.total()-1||!u._focus()&&!o)&&u._firstItem())),r=u._getNormalizedSelectCandidate(u._get(u._focus())||o||0),u._select(r,!0).done(function(){var e=function(){u.popup.visible()||u._blur(),u._cascadedValue=null===u._cascadedValue?u.value():u.dataItem()?u.dataItem()[u.options.dataValueField]||u.dataItem():null};u.trigger(A,{dataItem:u._getNormalizedDataItem(r),item:u._focus()})?u._select(i).done(e):e()})}e.preventDefault(),n=!0}else if(p===m.ENTER||p===m.TAB){if(u.popup.visible()&&e.preventDefault(),i=u._focus(),t=u.dataItem(),u.popup.visible()||t&&u.text()===u._text(t)||(i=null),a=u.filterInput&&u.filterInput[0]===_(),i){if(t=c.dataItemByIndex(c.getElementIndex(i)),l=!0,t&&(l=u._value(t)!==K.unifyType(u.value(),typeof u._value(t))),l&&u.trigger(A,{dataItem:t,item:i}))return;s=u._select(i)}else u.input&&((u._syncValueAndText()||u._isSelect)&&u._accessor(u.input.val()),u.listView.value(u.input.val()));u._focusElement&&u._focusElement(u.wrapper),a&&p===m.TAB?u.wrapper.focusout():s&&"function"==typeof s.done?s.done(function(){u._blur()}):u._blur(),u.close(),n=!0}else p===m.ESC?(u.popup.visible()&&e.preventDefault(),u.close(),n=!0):!u.popup.visible()||p!==m.PAGEDOWN&&p!==m.PAGEUP||(e.preventDefault(),d=p===m.PAGEDOWN?1:-1,c.scrollWith(d*c.screenHeight()),n=!0);return n},_fetchData:function(){var e=this,t=!!e.dataSource.view().length;e._request||e.options.cascadeFrom||e.listView.bound()||e._fetch||t||(e._fetch=!0,e.dataSource.fetch().done(function(){e._fetch=!1}))},_options:function(e,n,i){var r,a,s,l,d=this,u=d.element,c=u[0],p=e.length,f="",h=0;for(n&&(f=n);h",f+=r;u.html(f),i!==t&&(c.value=i,c.value&&!i&&(c.selectedIndex=-1)),c.selectedIndex!==-1&&(r=o(c),r&&r.setAttribute(N,N))},_reset:function(){var t=this,n=t.element,i=n.attr("form"),o=i?e("#"+i):n.closest("form");o[0]&&(t._resetHandler=function(){setTimeout(function(){t.value(t._initial)})},t._form=o.on("reset",t._resetHandler))},_parentWidget:function(){var t,n,i,o=this.options.name;if(this.options.cascadeFrom){if(t=e("#"+this.options.cascadeFrom),n=t.data("kendo"+o),!n)for(i=0;i
        ").parent(),this.header=this.content.before('').prev(),this.bound(!1),this._optionID=u.guid(),this._selectedIndices=[],this._view=[],this._dataItems=[],this._values=[];var i=this.options.value;i&&(this._values=e.isArray(i)?i.slice(0):[i]),this._getter(),this._templates(),this.setDataSource(this.options.dataSource),this._onScroll=L(function(){var e=this;clearTimeout(e._scrollId),e._scrollId=setTimeout(function(){e._renderHeader()},50)},this)},options:{name:"StaticList",dataValueField:null,valuePrimitive:!1,selectable:!0,template:null,groupTemplate:null,fixedGroupTemplate:null},events:["click",k,"activate","deactivate","dataBinding","dataBound","selectedItemChange"],setDataSource:function(t){var n,i=this,o=t||{};o=e.isArray(o)?{data:o}:o,o=u.data.DataSource.create(o),i.dataSource?(i.dataSource.unbind(k,i._refreshHandler),n=i.value(),i.value([]),i.bound(!1),i.value(n)):i._refreshHandler=L(i.refresh,i),i.setDSFilter(o.filter()),i.dataSource=o.bind(k,i._refreshHandler),i._fixedHeader()},_touchHandlers:function(){var t,n,i=this,o=function(e){return(e.originalEvent||e).changedTouches[0].pageY};i.element.on("touchstart"+l,function(e){t=o(e)}),i.element.on("touchend"+l,function(r){r.isDefaultPrevented()||(n=o(r),Math.abs(n-t)<10&&(i._touchTriggered=!0,i._triggerClick(e(r.target).closest(F).get(0))))})},skip:function(){return this.dataSource.skip()},setOptions:function(e){h.fn.setOptions.call(this,e),this._getter(),this._templates(),this._render()},destroy:function(){this.element.off(l),this._refreshHandler&&this.dataSource.unbind(k,this._refreshHandler),clearTimeout(this._scrollId),h.fn.destroy.call(this)},dataItemByIndex:function(e){return this.dataSource.flatView()[e]},screenHeight:function(){return this.content[0].clientHeight},scrollToIndex:function(e){var t=this.element[0].children[e];t&&this.scroll(t)},scrollWith:function(e){this.content.scrollTop(this.content.scrollTop()+e)},scroll:function(e){if(e){e[0]&&(e=e[0]);var t=this.content[0],n=e.offsetTop,i=e.offsetHeight,o=t.scrollTop,r=t.clientHeight,a=n+i;o>n?o=n:a>o+r&&(o=a-r),t.scrollTop=o}},selectedDataItems:function(e){return e===t?this._dataItems.slice():(this._dataItems=e,this._values=this._getValues(e),t)},_getValues:function(t){var n=this._valueGetter;return e.map(t,function(e){return n(e)})},focusNext:function(){var e=this.focus();e=e?e.next():0,this.focus(e)},focusPrev:function(){var e=this.focus();e=e?e.prev():this.element[0].children.length-1,this.focus(e)},focusFirst:function(){this.focus(this.element[0].children[0])},focusLast:function(){this.focus(i(this.element[0].children))},focus:function(n){var o,r=this,a=r._optionID;return n===t?r._current:(n=i(r._get(n)),n=e(this.element[0].children[n]),r._current&&(r._current.removeClass(x).removeAttr(w),r.trigger("deactivate")),o=!!n[0],o&&(n.addClass(x),r.scroll(n),n.attr("id",a)),r._current=o?n:null,r.trigger("activate"),t)},focusIndex:function(){return this.focus()?this.focus().index():t},skipUpdate:function(e){this._skipUpdate=e},select:function(n){var o,r,a,s=this,l=s.options.selectable,d="multiple"!==l&&l!==!1,u=s._selectedIndices,c=[this.element.find(".k-state-selected").index()],p=[],f=[];return n===t?u.slice():(n=s._get(n),1===n.length&&n[0]===-1&&(n=[]),r=e.Deferred().resolve(),a=s.isFiltered(),a&&!d&&s._deselectFiltered(n)?r:d&&!a&&e.inArray(i(n),u)!==-1&&e.inArray(i(n),c)!==-1?(s._dataItems.length&&s._view.length&&(s._dataItems=[s._view[u[0]].item]),r):(o=s._deselect(n),f=o.removed,n=o.indices,n.length&&(d&&(n=[i(n)]),p=s._select(n)),(p.length||f.length)&&(s._valueComparer=null,s.trigger(k,{added:p,removed:f})),r))},removeAt:function(e){return this._selectedIndices.splice(e,1),this._values.splice(e,1),this._valueComparer=null,{position:e,dataItem:this._dataItems.splice(e,1)[0]}},setValue:function(t){t=e.isArray(t)||t instanceof y?t.slice(0):[t],this._values=t,this._valueComparer=null},value:function(n){var i,o=this,r=o._valueDeferred;return n===t?o._values.slice():(o.setValue(n),r&&"resolved"!==r.state()||(o._valueDeferred=r=e.Deferred()),o.bound()&&(i=o._valueIndices(o._values),"multiple"===o.options.selectable&&o.select(-1),o.select(i),r.resolve()),o._skipUpdate=!1,r)},items:function(){return this.element.children(F)},_click:function(e){return this._touchTriggered?(this._touchTriggered=!1,t):(e.isDefaultPrevented()||this._triggerClick(e.currentTarget),t)},_triggerClick:function(t){this.trigger("click",{item:e(t)})||this.select(t)},_valueExpr:function(e,t){var i,o,r=this,a=0,s=[];if(!r._valueComparer||r._valueType!==e){for(r._valueType=e;a-1&&(a.push(this.removeAt(o)),e(r[i]).removeClass("k-state-selected"));return!!a.length&&(this.trigger(k,{added:[],removed:a}),!0)},_select:function(t){var n,o,r=this,a=r.element[0].children,s=r._view,l=[],d=0;for(i(t)!==-1&&r.focus(t);d'+n(e)+""}):n=u.template('
      • ${'+u.expr(t.dataTextField,"data")+"}
      • ",{useWithBlock:!1}),n},_templates:function(){var e,t,n,i,o,r=this.options,a={template:r.template,groupTemplate:r.groupTemplate,fixedGroupTemplate:r.fixedGroupTemplate};if(r.columns)for(t=0;ti||!a.nextSibling)break;a=a.nextSibling}else{if(a.offsetTop<=i||!a.previousSibling)break;a=a.previousSibling}return this._view[e(a).data("offset-index")]},_fixedHeader:function(){this.isGrouped()&&this.templates.fixedGroupTemplate?(this.header.show(),this.content.scroll(this._onScroll)):(this.header.hide(),this.content.off("scroll",this._onScroll))},_renderHeader:function(){var e,t=this.templates.fixedGroupTemplate;t&&(e=this._firstVisibleItem(),e&&(""+e.group).length&&this.header.html(t(e.group)))},_renderItem:function(e){var t='
      • ',t+=a?this._renderColumns(n):this.templates.template(n),i&&e.newGroup?t+=a?'
        '+this.templates.groupTemplate(e.group)+"
        ":'
        '+this.templates.groupTemplate(e.group)+"
        ":r&&a&&(t+="
        "),t+"
      • "},_renderColumns:function(e){var t,n,i,o,r="";for(t=0;t",r+=this.templates["column"+t](e),r+="";return r},_render:function(){var e,t,n,i,o="",r=0,a=0,s=[],l=this.dataSource.view(),d=this.value(),u=this.isGrouped();if(u)for(r=0;r1&&(l.direction=t&&o?pe[s].reverse:s),n[a[0]]=l}):S(e,function(e){var i=this.direction;i&&t&&!L.test(e)&&(this.direction=pe[i].reverse),n[e]=this}),n},A&&F(T,{transition:function(t,n,i){var r,s,l,d,u=0,c=t.data("keys")||[];i=F({duration:200,ease:"ease-out",complete:null,exclusive:"all"},i),l=!1,d=function(){l||(l=!0,s&&(clearTimeout(s),s=null),t.removeData(te).dequeue().css(ae,"").css(ae),i.complete.call(t))},i.duration=e.fx?e.fx.speeds[i.duration]||i.duration:i.duration,r=a(t,n),e.merge(c,o(r)),e.hasOwnProperty("uniqueSort")?t.data("keys",e.uniqueSort(c)).height():t.data("keys",e.unique(c)).height(),t.css(ae,i.exclusive+" "+i.duration+"ms "+i.ease).css(ae),t.css(r).css(se),A.event&&(t.one(A.event,d),0!==i.duration&&(u=500)),s=setTimeout(d,i.duration+u),t.data(te,s),t.data(re,d)},stopQueue:function(e,t,n){var i,o=e.data("keys"),r=!n&&o,a=e.data(re);return r&&(i=C.getComputedStyles(e[0],o)),a&&a(),r&&e.css(i),e.removeData("keys").stop(t)}}),f=C.Class.extend({init:function(e,t){var n=this;n.element=e,n.effects=[],n.options=t,n.restore=[]},run:function(t){var n,i,o,s,l,d,u,c=this,p=t.length,f=c.element,h=c.options,m=e.Deferred(),g={},v={};for(c.effects=t,m.done(e.proxy(c,"complete")),f.data("animating",!0),i=0;i=this.duration},timePassed:function(){return Math.min(this.duration,new Date-this.startDate)},moveTo:function(e){var t=this,n=t.movable;t.initial=n[t.axis],t.delta=e.location-t.initial,t.duration="number"==typeof e.duration?e.duration:300,t.tick=t._easeProxy(e.ease),t.startDate=new Date,t.start()},_easeProxy:function(e){var t=this;return function(){t.movable.moveAxis(t.axis,e(t.timePassed(),t.initial,t.delta,t.duration))}}}),F(x,{easeOutExpo:function(e,t,n,i){return e==i?t+n:n*(-Math.pow(2,-10*e/i)+1)+t},easeOutBack:function(e,t,n,i,o){return o=1.70158,n*((e=e/i-1)*e*((o+1)*e+o)+1)+t}}),T.Animation=k,T.Transition=x,T.createEffect=d,T.box=function(t){t=e(t);var n=t.offset();return n.width=C._outerWidth(t),n.height=C._outerHeight(t),n},T.transformOrigin=function(e,t){var n=(e.left-t.left)*t.width/(t.width-e.width),i=(e.top-t.top)*t.height/(t.height-e.height);return{x:isNaN(n)?0:n,y:isNaN(i)?0:i}},T.fillScale=function(e,t){return Math.min(e.width/t.width,e.height/t.height)},T.fitScale=function(e,t){return Math.max(e.width/t.width,e.height/t.height)}}(window.kendo.jQuery),window.kendo},"function"==typeof define&&define.amd?define:function(e,t,n){(n||t)()}),function(e,define){define("kendo.userevents.min",["kendo.core.min"],e)}(function(){return function(e,t){function n(e,t){var n=e.x.location,i=e.y.location,o=t.x.location,r=t.y.location,a=n-o,s=i-r;return{center:{x:(n+o)/2,y:(i+r)/2},distance:Math.sqrt(a*a+s*s)}}function i(e){var t,n,i,o=[],r=e.originalEvent,s=e.currentTarget,l=0;if(e.api)o.push({id:2,event:e,target:e.target,currentTarget:e.target,location:e,type:"api"});else if(e.type.match(/touch/))for(n=r?r.changedTouches:[],t=n.length;l1},_maxTouchesReached:function(){return this.touches.length>=this._maxTouches},_disposeAll:function(){for(var e=this.touches;e.length>0;)e.pop().dispose()},_isMoved:function(){return e.grep(this.touches,function(e){return e.isMoved()}).length},_select:function(e){this.allowSelection&&!this.trigger(_,{event:e})||e.preventDefault()},_start:function(t){var n,o,r=this,a=0,s=r.filter,l=i(t),d=l.length,u=t.which;if(!(u&&u>1||r._maxTouchesReached()))for(R.current=null,r.currentTarget=t.currentTarget,r.stopPropagation&&t.stopPropagation();a1){for(n=0;nthis.max||eo,e||t.trigger(R,t))}}),G=C.extend({init:function(e){var t=this;C.fn.init.call(t),t.x=new q(F({horizontal:!0},e)),t.y=new q(F({horizontal:!1},e)),t.container=e.container,t.forcedMinScale=e.minScale,t.maxScale=e.maxScale||100,t.bind(R,e)},rescale:function(e){this.x.rescale(e),this.y.rescale(e),this.refresh()},centerCoordinates:function(){return{x:Math.min(0,-this.x.centerOffset),y:Math.min(0,-this.y.centerOffset)}},refresh:function(){var e=this;e.x.update(),e.y.update(),e.enabled=e.x.enabled||e.y.enabled,e.minScale=e.forcedMinScale||Math.min(e.x.minScale,e.y.minScale),e.fitScale=Math.max(e.x.minScale,e.y.minScale),e.trigger(R)}}),$=C.extend({init:function(e){var t=this;F(t,e),C.fn.init.call(t)},outOfBounds:function(){return this.dimension.outOfBounds(this.movable[this.axis])},dragMove:function(e){var t=this,n=t.dimension,i=t.axis,o=t.movable,r=o[i]+e;n.enabled&&((rn.max&&e>0)&&(e*=t.resistance),o.translateAxis(i,e),t.trigger(R,t))}}),Y=k.extend({init:function(t){var n,i,o,r,a=this;F(a,{elastic:!0},t),o=a.elastic?.5:0,r=a.movable,a.x=n=new $({axis:"x",dimension:a.dimensions.x,resistance:o,movable:r}),a.y=i=new $({axis:"y",dimension:a.dimensions.y,resistance:o,movable:r}),a.userEvents.bind(["press","move","end","gesturestart","gesturechange"],{gesturestart:function(e){a.gesture=e,a.offset=a.dimensions.container.offset()},press:function(t){e(t.event.target).closest("a").is("[data-navigate-on-press=true]")&&t.sender.cancel()},gesturechange:function(e){var t,o,s,l=a.gesture,d=l.center,u=e.center,c=e.distance/l.distance,p=a.dimensions.minScale,f=a.dimensions.maxScale;r.scale<=p&&c<1&&(c+=.8*(1-c)),r.scale*c>=f&&(c=f/r.scale),o=r.x+a.offset.left,s=r.y+a.offset.top,t={x:(o-d.x)*c+u.x-o,y:(s-d.y)*c+u.y-s},r.scaleWith(c),n.dragMove(t.x),i.dragMove(t.y),a.dimensions.rescale(r.scale),a.gesture=e,e.preventDefault()},move:function(e){e.event.target.tagName.match(/textarea|input/i)||(n.dimension.enabled||i.dimension.enabled?(n.dragMove(e.x.delta),i.dragMove(e.y.delta),e.preventDefault()):e.touch.skip())},end:function(e){e.preventDefault()}})}}),K=b.transitions.prefix+"Transform";f=b.hasHW3D?function(e,t,n){return"translate3d("+e+"px,"+t+"px,0) scale("+n+")"}:function(e,t,n){return"translate("+e+"px,"+t+"px) scale("+n+")"},h=C.extend({init:function(t){var n=this;C.fn.init.call(n),n.element=e(t),n.element[0].style.webkitTransformOrigin="left top",n.x=0,n.y=0,n.scale=1,n._saveCoordinates(f(n.x,n.y,n.scale))},translateAxis:function(e,t){this[e]+=t,this.refresh()},scaleTo:function(e){this.scale=e,this.refresh()},scaleWith:function(e){this.scale*=e,this.refresh()},translate:function(e){this.x+=e.x,this.y+=e.y,this.refresh()},moveAxis:function(e,t){this[e]=t,this.refresh()},moveTo:function(e){F(this,e),this.refresh()},refresh:function(){var e,t=this,n=t.x,i=t.y;t.round&&(n=Math.round(n),i=Math.round(i)),e=f(n,i,t.scale),e!=t.coordinates&&(_.support.browser.msie&&_.support.browser.version<10?(t.element[0].style.position="absolute",t.element[0].style.left=t.x+"px",t.element[0].style.top=t.y+"px"):t.element[0].style[K]=e,t._saveCoordinates(e),t.trigger(R))},_saveCoordinates:function(e){this.coordinates=e}}),m=x.extend({init:function(e,t){var n,i=this;x.fn.init.call(i,e,t),n=i.options.group,n in z?z[n].push(i):z[n]=[i]},events:[V,U,W],options:{name:"DropTarget",group:"default"},destroy:function(){s(z,this)},_trigger:function(e,t){var n=this,i=I[n.options.group];if(i)return n.trigger(e,F({},t.event,{draggable:i,dropTarget:t.dropTarget}))},_over:function(e){this._trigger(V,e)},_out:function(e){this._trigger(U,e)},_drop:function(e){var t=this,n=I[t.options.group];n&&(n.dropped=!t._trigger(W,e))}}),m.destroyGroup=function(e){var t,n=z[e]||E[e];if(n){for(t=0;tw.height(),n=y.body.scrollWidth>w.width()):(t=l.offsetHeight<=l.scrollHeight,n=l.offsetWidth<=l.scrollWidth),o=l.scrollTop+u.y,r=t&&o>0&&o0&&at.max?t.max:t.min;e._moveTo(n)},_moveTo:function(e){this.transition.moveTo({location:e,duration:g,ease:f.easeOutExpo})}}),A=h.extend({init:function(e){var t=this;n.effects.Animation.fn.init.call(this),s(t,e,{origin:{},destination:{},offset:{}})},tick:function(){this._updateCoordinates(),this.moveTo(this.origin)},done:function(){return m(this.offset.y)');s(n,t,{element:o,elementSize:0,movable:new u(o),scrollMovable:t.movable,alwaysVisible:t.alwaysVisible,size:i?"width":"height"}),n.scrollMovable.bind(S,a(n.refresh,n)),n.container.append(o),t.alwaysVisible&&n.show()},refresh:function(){var e=this,t=e.axis,n=e.dimension,i=n.size,o=e.scrollMovable,r=i/n.total,a=Math.round(-o[t]*r),s=Math.round(i*r);r>=1?this.element.css("display","none"):this.element.css("display",""),a+s>i?s=i-a:a<0&&(s+=a,a=0),e.elementSize!=s&&(e.element.css(e.size,s+"px"),e.elementSize=s),e.movable.moveAxis(t,a)},show:function(){ +this.element.css({opacity:v,visibility:"visible"})},hide:function(){this.alwaysVisible||this.element.css({opacity:0})}}),R=l.extend({init:function(i,o){var r,d,f,h,g,v,_,b,y,w=this;return l.fn.init.call(w,i,o),i=w.element,(w._native=w.options.useNative&&n.support.hasNativeScrolling)?(i.addClass("km-native-scroller").prepend('
        '),s(w,{scrollElement:i,fixedContainer:i.children().first()}),t):(i.css("overflow","hidden").addClass("km-scroll-wrapper").wrapInner('
        ').prepend('
        '),r=i.children().eq(1),d=new n.TapCapture(i),f=new u(r),h=new p({element:r,container:i,forcedEnabled:w.options.zoom}),g=this.options.avoidScrolling,v=new n.UserEvents(i,{touchAction:"pan-y",fastTap:!0,allowSelection:!0,preventDragEvent:!0,captureUpIfMoved:!0,multiTouch:w.options.zoom,supportDoubleTap:w.options.supportDoubleTap,start:function(t){h.refresh();var n=m(t.x.velocity),i=m(t.y.velocity),o=2*n>=i,r=e.contains(w.fixedContainer[0],t.event.target),a=2*i>=n;!r&&!g(t)&&w.enabled&&(h.x.enabled&&o||h.y.enabled&&a)?v.capture():v.cancel()}}),_=new c({movable:f,dimensions:h,userEvents:v,elastic:w.options.elastic}),b=new z({movable:f,dimensions:h,userEvents:v,tapCapture:d}),y=new A({moveTo:function(e){w.scrollTo(e.x,e.y)}}),f.bind(S,function(){w.scrollTop=-f.y,w.scrollLeft=-f.x,w.trigger(D,{scrollTop:w.scrollTop,scrollLeft:w.scrollLeft})}),w.options.mousewheelScrolling&&i.on("DOMMouseScroll mousewheel",a(this,"_wheelScroll")),s(w,{movable:f,dimensions:h,zoomSnapBack:b,animatedScroller:y,userEvents:v,pane:_,tapCapture:d,pulled:!1,enabled:!0,scrollElement:r,scrollTop:0,scrollLeft:0,fixedContainer:i.children().first()}),w._initAxis("x"),w._initAxis("y"),w._wheelEnd=function(){w._wheel=!1,w.userEvents.end(0,w._wheelY)},h.refresh(),w.options.pullToRefresh&&w._initPullToRefresh(),t)},_wheelScroll:function(e){if(!e.ctrlKey){this._wheel||(this._wheel=!0,this._wheelY=0,this.userEvents.press(0,this._wheelY)),clearTimeout(this._wheelTimeout),this._wheelTimeout=setTimeout(this._wheelEnd,50);var t=n.wheelDeltaY(e);t&&(this._wheelY+=t,this.userEvents.move(0,this._wheelY)),e.preventDefault()}},makeVirtual:function(){this.dimensions.y.makeVirtual()},virtualSize:function(e,t){this.dimensions.y.virtualSize(e,t)},height:function(){return this.dimensions.y.size},scrollHeight:function(){return this.scrollElement[0].scrollHeight},scrollWidth:function(){return this.scrollElement[0].scrollWidth},options:{name:"Scroller",zoom:!1,pullOffset:140,visibleScrollHints:!1,elastic:!0,useNative:!1,mousewheelScrolling:!0,avoidScrolling:function(){return!1},pullToRefresh:!1,messages:{pullTemplate:"Pull to refresh",releaseTemplate:"Release to refresh",refreshTemplate:"Refreshing"}},events:[T,D,F],_resize:function(){this._native||this.contentResized()},setOptions:function(e){var t=this;l.fn.setOptions.call(t,e),e.pullToRefresh&&t._initPullToRefresh()},reset:function(){this._native?this.scrollElement.scrollTop(0):(this.movable.moveTo({x:0,y:0}),this._scale(1))},contentResized:function(){this.dimensions.refresh(),this.pane.x.outOfBounds()&&this.movable.moveAxis("x",this.dimensions.x.min),this.pane.y.outOfBounds()&&this.movable.moveAxis("y",this.dimensions.y.min)},zoomOut:function(){var e=this.dimensions;e.refresh(),this._scale(e.fitScale),this.movable.moveTo(e.centerCoordinates())},enable:function(){this.enabled=!0},disable:function(){this.enabled=!1},scrollTo:function(e,t){this._native?(this.scrollElement.scrollLeft(m(e)),this.scrollElement.scrollTop(m(t))):(this.dimensions.refresh(),this.movable.moveTo({x:e,y:t}))},animatedScrollTo:function(e,t,n){var i,o;this._native?this.scrollTo(e,t):(i={x:this.movable.x,y:this.movable.y},o={x:e,y:t},this.animatedScroller.setCoordinates(i,o),this.animatedScroller.setCallback(n),this.animatedScroller.start())},pullHandled:function(){var e=this;e.refreshHint.removeClass(C),e.hintContainer.html(e.pullTemplate({})),e.yinertia.onEnd(),e.xinertia.onEnd(),e.userEvents.cancel()},destroy:function(){l.fn.destroy.call(this),this.userEvents&&this.userEvents.destroy()},_scale:function(e){this.dimensions.rescale(e),this.movable.scaleTo(e)},_initPullToRefresh:function(){var e=this;e.dimensions.y.forceEnabled(),e.pullTemplate=n.template(e.options.messages.pullTemplate),e.releaseTemplate=n.template(e.options.messages.releaseTemplate),e.refreshTemplate=n.template(e.options.messages.refreshTemplate),e.scrollElement.prepend(''+e.pullTemplate({})+""),e.refreshHint=e.scrollElement.children().first(),e.hintContainer=e.refreshHint.children(".km-template"),e.pane.y.bind("change",a(e._paneChange,e)),e.userEvents.bind("end",a(e._dragEnd,e))},_dragEnd:function(){var e=this;e.pulled&&(e.pulled=!1,e.refreshHint.removeClass(x).addClass(C),e.hintContainer.html(e.refreshTemplate({})),e.yinertia.freeze(e.options.pullOffset/2),e.trigger("pull"))},_paneChange:function(){var e=this;e.movable.y/w>e.options.pullOffset?e.pulled||(e.pulled=!0,e.refreshHint.removeClass(C).addClass(x),e.hintContainer.html(e.releaseTemplate({}))):e.pulled&&(e.pulled=!1,e.refreshHint.removeClass(x),e.hintContainer.html(e.pullTemplate({})))},_initAxis:function(e){var t=this,n=t.movable,i=t.dimensions[e],o=t.tapCapture,r=t.pane[e],a=new N({axis:e,movable:n,dimension:i,container:t.element,alwaysVisible:t.options.visibleScrollHints});i.bind(S,function(){a.refresh()}),r.bind(S,function(){a.show()}),t[e+"inertia"]=new E({axis:e,paneAxis:r,movable:n,tapCapture:o,userEvents:t.userEvents,dimension:i,elastic:t.options.elastic,friction:t.options.friction||_,velocityMultiplier:t.options.velocityMultiplier||b,end:function(){a.hide(),t.trigger("scrollEnd",{axis:e,scrollTop:t.scrollTop,scrollLeft:t.scrollLeft})}})}});r.plugin(R)}(window.kendo.jQuery),window.kendo},"function"==typeof define&&define.amd?define:function(e,t,n){(n||t)()}),function(e,define){define("kendo.virtuallist.min",["kendo.data.min"],e)}(function(){return function(e,t){function n(e){return e[e.length-1]}function i(e){return e instanceof Array?e:[e]}function o(e){return"string"==typeof e||"number"==typeof e||"boolean"==typeof e}function r(e,t,n){return Math.ceil(e*t/n)}function a(e,t,n){var i=document.createElement(n||"div");return t&&(i.className=t),e.appendChild(i),i}function s(){var t,n=e('
        ');return n.css({position:"absolute",left:"-200000px",visibility:"hidden"}),n.appendTo(document.body),t=parseFloat(b.getComputedStyles(n.find(".k-item")[0],["line-height"])["line-height"]),n.remove(),t}function l(e,t,n){return{down:e*n,up:e*(t-1-n)}}function d(e,t){var n=(e.listScreens-1-e.threshold)*t,i=e.threshold*t;return function(e,t,o){return t>o?t-e.topi}}function u(e,t){return function(n){return t(e.scrollTop,n)}}function c(e){return function(t,n){return e(t.items,t.index,n),t}}function p(e,t){b.support.browser.msie&&b.support.browser.version<10?e.style.top=t+"px":(e.style.webkitTransform="translateY("+t+"px)",e.style.transform="translateY("+t+"px)")}function f(t,n){return function(i,o){for(var r=0,a=i.length;r0?(n=e.splice(0,t),e.push.apply(e,n)):(n=e.splice(t,-t),e.unshift.apply(e,n)),n}function m(n,i,o){var r=o.template;n=e(n),i.item||(r=o.placeholderTemplate),0===i.index&&this.header&&i.group&&this.header.html(o.fixedGroupTemplate(i.group)),this.angular("cleanup",function(){return{elements:[n]}}),n.attr("data-uid",i.item?i.item.uid:"").attr("data-offset-index",i.index),n.html(this.options.columns&&this.options.columns.length&&i.item?g(this.options,i.item,o):r(i.item||{})),n.toggleClass(H,i.current),n.toggleClass(R,i.selected),n.toggleClass("k-first",i.newGroup),n.toggleClass("k-last",i.isLastGroupedItem),n.toggleClass("k-loading-item",!i.item),0!==i.index&&i.newGroup&&e("
        ").appendTo(n).html(o.groupTemplate(i.group)),i.top!==t&&p(n[0],i.top),this.angular("compile",function(){return{elements:[n],data:[{dataItem:i.item,group:i.group,newGroup:i.newGroup}]}})}function g(e,t,n){var i,o,r,a,s="";for(i=0;i",s+=n["column"+i](t),s+="";return s}function v(e,t){var n,i,o,r,a=t.length,s=e.length,l=[],d=[];if(s)for(o=0;o
        ").parent(),o.wrapper=o.content.wrap("
        ").parent(),o.header=o.content.before("
        ").prev(),n.columns&&n.columns.length&&o.element.removeClass(D),o.element.on("mouseenter"+W,"li:not(.k-loading-item)",function(){e(this).addClass(P)}).on("mouseleave"+W,"li",function(){e(this).removeClass(P)}),o._values=i(o.options.value),o._selectedDataItems=[],o._selectedIndexes=[],o._rangesList={},o._promisesList=[],o._optionID=b.guid(),o._templates(),o.setDataSource(n.dataSource),o.content.on("scroll"+W,b.throttle(function(){o._renderItems(),o._triggerListBound()},n.delay)),o._selectable()},options:{name:"VirtualList",autoBind:!0,delay:100,height:null,listScreens:4,threshold:.5,itemHeight:null,oppositeBuffer:1,type:"flat",selectable:!1,value:[],dataValueField:null,template:"#:data#",placeholderTemplate:"loading...",groupTemplate:"#:data#",fixedGroupTemplate:"#:data#",mapValueTo:"index",valueMapper:null},events:[M,O,B,L,V,U],setOptions:function(e){w.fn.setOptions.call(this,e),this._selectProxy&&this.options.selectable===!1?this.element.off(O,"."+z,this._selectProxy):!this._selectProxy&&this.options.selectable&&this._selectable(),this._templates(),this.refresh()},items:function(){return e(this._items)},destroy:function(){this.wrapper.off(W),this.dataSource.unbind(M,this._refreshHandler),w.fn.destroy.call(this)},setDataSource:function(t){var n,i=this,o=t||{};o=e.isArray(o)?{data:o}:o,o=b.data.DataSource.create(o),i.dataSource?(i.dataSource.unbind(M,i._refreshHandler),i._clean(),i.bound(!1),i._deferValueSet=!0,n=i.value(),i.value([]),i.mute(function(){i.value(n)})):i._refreshHandler=e.proxy(i.refresh,i),i.dataSource=o.bind(M,i._refreshHandler),i.setDSFilter(o.filter()),0!==o.view().length?i.refresh():i.options.autoBind&&o.fetch()},skip:function(){return this.dataSource.currentRangeStart()},_triggerListBound:function(){var e=this,t=e.skip();e.bound()&&!e._selectingValue&&e._skip!==t&&(e._skip=t,e.trigger(B))},_getValues:function(t){var n=this._valueGetter;return e.map(t,function(e){return n(e)})},_highlightSelectedItems:function(){var e,t;for(e=0;e0?(t-=1,this.focus(t),e=this.focus(),e&&e.hasClass("k-loading-item")&&(t+=1,this.focus(t)),t):(t=this.dataSource.total()-1,this.focus(t),t)},focusNext:function(){var e,t=this._focusedIndex,n=this.dataSource.total()-1;return!isNaN(t)&&ti&&(t=i*n):t=0,t},setScreenHeight:function(){var e=this._height();this.content.height(e),this._screenHeight=e},screenHeight:function(){return this._screenHeight},_getElementLocation:function(e){var t,n=this.content.scrollTop(),i=this._screenHeight,o=this.options.itemHeight,r=e*o,a=r+o,s=n+i;return t=r===n-o||a>n&&r=n&&r<=n+(i-o)?"inScreen":"outScreen"},_templates:function(){var e,t,n,i,o=this.options,r={template:o.template,placeholderTemplate:o.placeholderTemplate,groupTemplate:o.groupTemplate,fixedGroupTemplate:o.fixedGroupTemplate};if(o.columns)for(e=0;e0;)n=document.createElement("li"),n.tabIndex=-1,n.className=z+" "+E,n.setAttribute("role","option"),n.style.height=o,n.style.minHeight=o,e.appendChild(n),i.push(n);return i},_saveInitialRanges:function(){var t,n=this.dataSource._ranges,i=e.Deferred();for(i.resolve(),this._rangesList={},t=0;to.total()&&(t.itemCount=o.total()),t._items=t._generateItems(t.element[0],t.itemCount),t._setHeight(i.itemHeight*o.total()),t.options.type=(o.group()||[]).length?"group":"flat","flat"===t.options.type?t.header.hide():t.header.show(),t.getter=t._getter(function(){t._renderItems(!0)}),t._onScroll=function(e,n){var i=t._listItems(t.getter);return t._fixedHeader(e,i(e,n))},t._renderItems=t._whenChanged(u(n,t._onScroll),c(t._reorderList(t._items,e.proxy(m,t)))),t._renderItems(),t._calculateGroupPadding(t._screenHeight),t._calculateColumnsHeaderPadding()},_setHeight:function(e){var t,n,i=this.heightContainer;if(i?t=i.offsetHeight:i=this.heightContainer=a(this.content[0],A),e!==t)for(i.innerHTML="";e>0;)n=Math.min(e,25e4),a(i).style.height=n+"px",e-=n},_getter:function(){var e=null,t=this.dataSource,n=t.skip(),i=this.options.type,o=this.itemCount,r={};return t.pageSize()=o?(l=t,d=e):(l=h(t,u),d=u>0?e.slice(-u):e.slice(0,-u)),n(l,d,i.bound()),r=a}},_bufferSizes:function(){var e=this.options;return l(this._screenHeight,e.listScreens,e.oppositeBuffer)},_indexConstraint:function(e){var t=this.itemCount,n=this.options.itemHeight,i=this.dataSource.total();return Math.min(Math.max(i-t,0),Math.max(0,Math.floor(e/n)))},_listIndex:function(e,t){var n,i=this._bufferSizes();return n=e-(e>t?i.down:i.up),this._indexConstraint(n)},_selectable:function(){this.options.selectable&&(this._selectProxy=e.proxy(this,"_clickHandler"),this.element.on(O+W,"."+z,this._selectProxy))},getElementIndex:function(e){return e instanceof jQuery?parseInt(e.attr("data-offset-index"),10):t},_getIndecies:function(e){var t,n,i,o=[];if("function"==typeof e)for(t=this.dataSource.flatView(),n=0;n-1&&(l.push(this.removeAt(o)),e(a[i]).removeClass("k-state-selected"))}return l},_getSkip:function(e,t){var n=e0,i=!e.ul.find(e.listView.focus()).length;e.popup.visible()||(!e.listView.bound()&&t!==C||t===T?(e._open=!0,e._state=S,1!==e.options.minLength&&!n||n&&e.value()&&e.selectedIndex===-1?(e.refresh(),e._openPopup(),this.options.virtual||e.listView.bound(!1)):e._filterSource()):e._allowOpening()&&(e.popup._hovered=!0,e._openPopup(),e.options.virtual?e._focusItem():i&&e.options.highlightFirst&&e.listView.focus(0)))},_scrollToFocusedItem:function(){var e=this.listView;e.scrollToIndex(e.getElementIndex(e.focus()))},_openPopup:function(){this.popup.one("activate",D(this._scrollToFocusedItem,this)),this.popup.open()},_updateSelectionState:function(){var e=this,n=e.options.text,i=e.options.value;e.listView.isFiltered()||(e.selectedIndex===-1?(n!==t&&null!==n||(n=i),e._accessor(i),e.input.val(n||e.input.val()),e._placeholder()):e._oldIndex===-1&&(e._oldIndex=e.selectedIndex))},_buildOptions:function(e){var n,i=this;i._isSelect&&(n=i._customOption,i._state===S&&(i._state=""),i._customOption=t,i._options(e,"",i.value()),n&&n[0].selected&&!i.listView._emptySearch&&i._custom(n.val()))},_updateSelection:function(){var n,i=this,o=i.listView,r=i._initialIndex,a=null!==r&&r>-1,s=i._state===C;return s?(e(o.focus()).removeClass("k-state-selected"),t):(i._fetch||(o.value().length||(a?i.select(r):i._accessor()&&o.value(i._accessor())),i._initialIndex=null,n=o.selectedDataItems()[0],n&&(i._value(n)!==i.value()?i._custom(i._value(n)):i._value(n)!==i.element[0].value&&i._accessor(i._value(n)),i.text()&&i.text()!==i._text(n)&&i._selectValue(n))),t)},_updateItemFocus:function(){var e=this.listView;this.options.highlightFirst?e.focus()||e.focusIndex()||e.focus(0):e.focus(-1)},_listBound:function(){var e=this,n=e.input[0]===d(),i=e.dataSource.flatView(),o=e.listView.skip(),r=i.length,a=e.dataSource._group?e.dataSource._group.length:0,s=o===t||0===o;e._presetValue=!1,e._renderFooter(),e._renderNoData(),e._toggleNoData(!r),e._toggleHeader(!!a&&!!r),e._resizePopup(),e.popup.position(),e._buildOptions(i),e._makeUnselectable(),e._updateSelection(),i.length&&s&&(e._updateItemFocus(),e.options.suggest&&n&&e.input.val()&&e.suggest(i[0])),e._open&&(e._open=!1,e._typingTimeout&&!n?e.popup.close():e.toggle(e._allowOpening()),e._typingTimeout=null),e._hideBusy(),e.trigger("dataBound")},_listChange:function(){this._selectValue(this.listView.selectedDataItems()[0]),this._presetValue&&(this._oldIndex=this.selectedIndex)},_get:function(e){var t,n,i;if("function"==typeof e){for(t=this.dataSource.flatView(),i=0;i-1&&(s+=e.substring(n+s.length))):s=s.substring(0,l),s.length===l&&e||(r.value=s,r===d()&&a(r,l,s.length)),t)},text:function(e){var n,i,r,a,s,l;return e=null===e?"":e,n=this,i=n.input[0],r=n.options.ignoreCase,a=e,e===t?i.value:n.options.autoBind!==!1||n.listView.bound()?(s=n.dataItem(),s&&n._text(s).replace&&n._text(s).replace(I,"")===e&&(l=n._value(s),l===o.unifyType(n._old,typeof l))?(n._triggerCascade(),t):(r&&(a=a.toLowerCase()),n.dataItem()&&n._text(n.dataItem())===e||(n._select(function(e){return e=n._text(e),r&&(e=(e+"").toLowerCase()),e===a}).done(function(){n.selectedIndex<0&&(i.value=e,n.options.syncValueAndText&&n._accessor(e),n._cascadeTriggered=!0,n._triggerCascade()),n._prev=i.value}),n._toggleCloseVisibility()),t)):(n._setText(e),t)},toggle:function(e){this._toggle(e,!0)},value:function(e){var n=this,i=n.options,o=n.listView;return e===t?(e=n._accessor()||n.listView.value()[0],e===t||null===e?"":e):(n.requireValueMapper(n.options,e),n.trigger("set",{value:e}),(e!==i.value||n.input.val()!==i.text||n.options.cascadeFrom)&&(n._accessor(e),n._isFilterEnabled()&&o.bound()&&o.isFiltered()?n._clearFilter():n._fetchData(),o.value(e).done(function(){n.selectedIndex!==-1||o._selectedDataItems&&o._selectedDataItems.length||(n._accessor(e),n.input.val(e),n._placeholder(!0)),n._old=n._userTriggered?n._accessor():n._valueBeforeCascade=n._accessor(),n._oldIndex=n.selectedIndex,n._prev=n._oldText=n.input.val(),n._state===C&&(n._state=T),n._toggleCloseVisibility()})),t)},_hideBusy:function(){var e=this;clearTimeout(e._busy),e._arrowIcon.removeClass(_),e._focused.attr("aria-busy",!1),e._busy=null,e._toggleCloseVisibility()},_click:function(e){var n=this,i=e.item,r=n.listView.dataItemByIndex(n.listView.getElementIndex(i)),a=!0;return e.preventDefault(),r&&(a=n._value(r)!==o.unifyType(n.value(),typeof n._value(r)),a||n.input.val(n._text(r))),a&&n.trigger("select",{dataItem:r,item:i})?(n.close(),t):(n._userTriggered=!0,n._select(i).done(function(){n._blur()}),t)},_syncValueAndText:function(){return this.options.syncValueAndText},_inputValue:function(){return this.text()},_searchByWord:function(e){var n,i=this,o=i.options,r=i.dataSource,a=o.ignoreCase,s=function(n){var o=i._text(n);if(o!==t)return o+="",(""===o||""!==e)&&(a&&(o=o.toLowerCase()),0===o.indexOf(e))};return a&&(e=e.toLowerCase()),i.ul[0].firstChild?(this.listView.focus(this._get(s)),n=this.listView.focus(),n&&(o.suggest&&i.suggest(n),this.open()),this.options.highlightFirst&&!e&&this.listView.focusFirst(),t):(r.one(v,function(){r.view()[0]&&i.search(e)}).fetch(),t)},_input:function(){var t,n,i=this,o=i.element.removeClass("k-input")[0],r=o.accessKey,a=i.wrapper,s="input.k-input",d=o.name||"";d&&(d='name="'+d+'_input" '),t=a.find(s),t[0]||(a.append('').append(i.element),t=a.find(s)),t[0].style.cssText=o.style.cssText,t[0].title=o.title,n=parseInt(this.element.prop("maxlength")||this.element.attr("maxlength"),10),n>-1&&(t[0].maxLength=n),t.addClass(o.className).css({width:"",height:o.style.height}).attr({role:"combobox","aria-expanded":!1}).show(),l&&t.attr("placeholder",i.options.placeholder),r&&(o.accessKey="",t[0].accessKey=r),i._focused=i.input=t,i._inputWrapper=e(a[0].firstChild),i._arrow=a.find(".k-select").attr({role:"button",tabIndex:-1}),i._arrowIcon=i._arrow.find(".k-icon"),o.id&&i._arrow.attr("aria-controls",i.ul[0].id)},_clearButton:function(){o.fn._clearButton.call(this),this.options.clearButton&&(this._clear.insertAfter(this.input),this.wrapper.addClass("k-combobox-clearable"))},_keydown:function(e){var t,n,i,r=this,a=e.keyCode;if(r._last=a,clearTimeout(r._typingTimeout),r._typingTimeout=null,a===u.HOME)r._firstItem();else if(a===u.END)r._lastItem();else if(a===u.ENTER||a===u.TAB&&r.popup.visible())if(t=r.listView.focus(),n=r.dataItem(),i=!0,r.popup.visible()||n&&r.text()===r._text(n)||(t=null),t){if(r.popup.visible()&&e.preventDefault(),n=r.listView.dataItemByIndex(r.listView.getElementIndex(t)),n&&(i=r._value(n)!==o.unifyType(r.value(),typeof r._value(n))),i&&r.trigger("select",{dataItem:n,item:t}))return;r._userTriggered=!0,r._select(t).done(function(){r._blur(),r._valueBeforeCascade=r._old=r.value()})}else(r._syncValueAndText()||r._isSelect)&&r._accessor(r.input.val()),r.options.highlightFirst?(r.listView.value(r.input.val()),r._blur()):r._oldText=r.text();else a==u.TAB||r._move(e)?a===u.ESC&&!r.popup.visible()&&r.text()&&r._clearValue():r._search()},_placeholder:function(e){if(!l){var n,i=this,o=i.input,r=i.options.placeholder;if(r){if(n=i.value(),e===t&&(e=!n),o.toggleClass("k-readonly",e),!e){if(n)return;r=""}o.val(r),r||o[0]!==d()||a(o[0],0,0)}}},_search:function(){var e=this;clearTimeout(e._typingTimeout),e._typingTimeout=setTimeout(function(){var t=e.text();""!==t&&e._prev!==t?(e._prev=t,"none"===e.options.filter&&e.options.virtual&&e.listView.select(-1),e.search(t),e._toggleCloseVisibility()):""===t&&""!==e._prev&&(e._clearValue(),e.search("")),e._typingTimeout=null},e.options.delay)},_setText:function(e){this.input.val(e),this._prev=e},_wrapper:function(){var e=this,t=e.element,n=t.parent();n.is("span.k-widget")||(n=t.hide().wrap("").parent(),n[0].style.cssText=t[0].style.cssText),e.wrapper=n.addClass("k-widget k-combobox").addClass(t[0].className).removeClass("input-validation-error").css("display","")},_clearSelection:function(e,t){var n=this,i=e.value(),o=i&&e.selectedIndex===-1;this.selectedIndex==-1&&this.value()||(t||!i||o)&&(n.options.value="",n.value(""))},_preselect:function(e,t){this.input.val(t),this._accessor(e),this._old=this._accessor(),this._oldIndex=this.selectedIndex,this.listView.setValue(e),this._placeholder(),this._initialIndex=null,this._presetValue=!0,this._toggleCloseVisibility()},_clearText:function(){this._old=this.value(),this.text("")},_clearValue:function(){r.fn._clearValue.call(this),this.input.focus()}});i.plugin(z)}(window.kendo.jQuery),window.kendo},"function"==typeof define&&define.amd?define:function(e,t,n){(n||t)()}),function(e,define){define("kendo.dropdownlist.min",["kendo.list.min","kendo.mobile.scroller.min","kendo.virtuallist.min"],e)}(function(){return function(e,t){function n(e,t,n){for(var i,o=0,r=t.length-1;o=t&&(e-=t),e}function o(e,t){for(var n=0;n0;e.popup.visible()||(e.listView.bound()&&e._state!==S?e._allowOpening()&&(e._focusFilter=!0,e.popup.one("activate",e._focusInputHandler),e.popup._hovered=!0,e.popup.open(),e._resizeFilterInput(),e._focusItem()):(e._open=!0,e._state="rebind",e.filterInput&&(e.filterInput.val(""),e._prev=""),e.filterInput&&1!==e.options.minLength&&!t?(e.refresh(),e.popup.one("activate",e._focusInputHandler),e.popup.open(),e._resizeFilterInput()):e._filterSource()))},_focusInput:function(){this._focusElement(this.filterInput)},_resizeFilterInput:function(){var e,t,n=this.filterInput,i=this._prevent;n&&(e=this.filterInput[0]===u(),t=r.caret(this.filterInput[0])[0],this._prevent=!0,n.css("display","none").css("width",this.popup.element.css("width")).css("display","inline-block"),e&&(n.focus(),r.caret(n[0],t)),this._prevent=i)},_allowOpening:function(){return this.hasOptionLabel()||this.filterInput||l.fn._allowOpening.call(this)},toggle:function(e){this._toggle(e,!0)},current:function(e){var n;return e===t?(n=this.listView.focus(),!n&&0===this.selectedIndex&&this.hasOptionLabel()?this.optionLabel:n):(this._focus(e),t)},dataItem:function(n){var i=this,o=null;if(null===n)return n;if(n===t)o=i.listView.selectedDataItems()[0];else{if("number"!=typeof n){if(i.options.virtual)return i.dataSource.getByUid(e(n).data("uid"));n=n.hasClass("k-list-optionlabel")?-1:e(i.items()).index(n)}else i.hasOptionLabel()&&(n-=1);o=i.dataSource.flatView()[n]}return o||(o=i._optionLabelDataItem()),o},refresh:function(){this.listView.refresh()},text:function(e){var n,i=this,o=i.options.ignoreCase;return e=null===e?"":e,e===t?i._textAccessor():"string"!=typeof e?(i._textAccessor(e),t):(n=o?e.toLowerCase():e,i._select(function(e){return e=i._text(e),o&&(e=(e+"").toLowerCase()),e===n}).done(function(){i._textAccessor(i.dataItem()||e)}),t)},_clearFilter:function(){e(this.filterInput).val(""),l.fn._clearFilter.call(this)},value:function(e){var n=this,i=n.listView,o=n.dataSource;return e===t?(e=n._accessor()||n.listView.value()[0],e===t||null===e?"":e):(n.requireValueMapper(n.options,e),!e&&n.hasOptionLabel()||(n._initialIndex=null),this.trigger("set",{value:e}),n._request&&n.options.cascadeFrom&&n.listView.bound()?(n._valueSetter&&o.unbind(v,n._valueSetter),n._valueSetter=D(function(){n.value(e)},n),o.one(v,n._valueSetter),t):(n._isFilterEnabled()&&i.bound()&&i.isFiltered()?n._clearFilter():n._fetchData(),i.value(e).done(function(){n._old=n._valueBeforeCascade=n._accessor(),n._oldIndex=n.selectedIndex}),t))},hasOptionLabel:function(){return this.optionLabel&&!!this.optionLabel[0]},_optionLabel:function(){var n=this,i=n.options,o=i.optionLabel,a=i.optionLabelTemplate;return o?(a||(a="#:",a+="string"==typeof o?"data":r.expr(i.dataTextField,"data"),a+="#"),"function"!=typeof a&&(a=r.template(a)),n.optionLabelTemplate=a,n.hasOptionLabel()||(n.optionLabel=e('
        ').prependTo(n.list)),n.optionLabel.html(a(o)).off().on(k,D(n._click,n)).on(x,n._toggleHover),n.angular("compile",function(){return{elements:n.optionLabel,data:[{dataItem:n._optionLabelDataItem()}]}}),t):(n.optionLabel.off().remove(),n.optionLabel=e(),t)},_optionLabelText:function(){var e=this.options.optionLabel;return"string"==typeof e?e:this._text(e)},_optionLabelDataItem:function(){var n=this,i=n.options.optionLabel;return n.hasOptionLabel()?e.isPlainObject(i)?new c(i):n._assignInstance(n._optionLabelText(),""):t},_buildOptions:function(e){var n,i,o,r=this;r._isSelect&&(n=r.listView.value()[0],i=r._optionLabelDataItem(),o=i&&r._value(i),n!==t&&null!==n||(n=""),i&&(o!==t&&null!==o||(o=""),i='"),r._options(e,i,n),n!==s.unifyType(r._accessor(),typeof n)&&(r._customOption=null,r._custom(n)))},_listBound:function(){var e,t=this,n=t._initialIndex,i=t._state===T,o=t.dataSource.flatView();t._presetValue=!1,t._renderFooter(),t._renderNoData(),t._toggleNoData(!o.length),t._resizePopup(!0),t.popup.position(),t._buildOptions(o),t._makeUnselectable(),i||(t._open&&t.toggle(t._allowOpening()),t._open=!1,t._fetch||(o.length?(!t.listView.value().length&&n>-1&&null!==n&&t.select(n),t._initialIndex=null,e=t.listView.selectedDataItems()[0],e&&t.text()!==t._text(e)&&t._selectValue(e)):t._textAccessor()!==t._optionLabelText()&&(t.listView.value(""),t._selectValue(null),t._oldIndex=t.selectedIndex))),t._hideBusy(),t.trigger("dataBound")},_listChange:function(){this._selectValue(this.listView.selectedDataItems()[0]),(this._presetValue||this._old&&this._oldIndex===-1)&&(this._oldIndex=this.selectedIndex)},_filterPaste:function(){this._search()},_attachFocusHandlers:function(){var e=this,t=e.wrapper;t.on("focusin"+h,D(e._focusinHandler,e)).on("focusout"+h,D(e._focusoutHandler,e)),e.filterInput&&e.filterInput.on("focusin"+h,D(e._focusinHandler,e)).on("focusout"+h,D(e._focusoutHandler,e))},_focusHandler:function(){this.wrapper.focus()},_focusinHandler:function(){this._inputWrapper.addClass(_),this._prevent=!1},_focusoutHandler:function(){var e=this,t=window.self!==window.top;e._prevent||(clearTimeout(e._typingTimeout),d.mobileOS.ios&&t?e._change():e._blur(),e._inputWrapper.removeClass(_),e._prevent=!0,e._open=!1,e.element.blur())},_wrapperMousedown:function(){this._prevent=!!this.filterInput},_wrapperClick:function(e){e.preventDefault(),this.popup.unbind("activate",this._focusInputHandler),this._focused=this.wrapper,this._prevent=!1,this._toggle()},_editable:function(e){var t=this,n=t.element,i=e.disable,o=e.readonly,a=t.wrapper.add(t.filterInput).off(f),s=t._inputWrapper.off(x);o||i?i?(a.removeAttr(C),s.addClass(y).removeClass(b)):s.addClass(b).removeClass(y):(n.removeAttr(m).removeAttr(g),s.addClass(b).removeClass(y).on(x,t._toggleHover),a.attr(C,a.data(C)).attr(w,!1).on("keydown"+f,t,D(t._keydown,t)).on(r.support.mousedown+f,D(t._wrapperMousedown,t)).on("paste"+f,D(t._filterPaste,t)),t.wrapper.on("click"+f,D(t._wrapperClick,t)),t.filterInput?a.on("input"+f,D(t._search,t)):a.on("keypress"+f,D(t._keypress,t))),n.attr(m,i).attr(g,o),a.attr(w,i)},_keydown:function(e){var n,i,o,r=this,a=e.keyCode,s=e.altKey,l=r.popup.visible();if(r.filterInput&&(n=r.filterInput[0]===u()),a===p.LEFT?(a=p.UP,i=!0):a===p.RIGHT&&(a=p.DOWN,i=!0),!i||!n){if(e.keyCode=a,(s&&a===p.UP||a===p.ESC)&&r._focusElement(r.wrapper),r._state===T&&a===p.ESC&&(r._clearFilter(),r._open=!1,r._state=S),a===p.ENTER&&r._typingTimeout&&r.filterInput&&l)return e.preventDefault(),t;if(a!==p.SPACEBAR||n||(r.toggle(!l),e.preventDefault()),i=r._move(e),!i){if((!l||!r.filterInput)&&(o=r._focus(),a===p.HOME?(i=!0,r._firstItem()):a===p.END&&(i=!0,r._lastItem()),i)){if(r.trigger("select",{dataItem:r._getElementDataItem(r._focus()),item:r._focus()}))return r._focus(o),t;r._select(r._focus(),!0).done(function(){l||r._blur()}),e.preventDefault()}s||i||!r.filterInput||r._search()}}},_matchText:function(e,n){var i=this.options.ignoreCase;return e!==t&&null!==e&&(e+="",i&&(e=e.toLowerCase()),0===e.indexOf(n))},_shuffleData:function(e,t){var n=this._optionLabelDataItem();return n&&(e=[n].concat(e)),e.slice(t).concat(e.slice(0,t))},_selectNext:function(){var e,t,n,r=this,a=r.dataSource.flatView(),s=a.length+(r.hasOptionLabel()?1:0),l=o(r._word,r._last),d=r.selectedIndex;for(d===-1?d=0:(d+=l?1:0,d=i(d,s)),a=a.toJSON?a.toJSON():a.slice(),a=r._shuffleData(a,d),n=0;n-1&&(t-=1):a.hasClass("k-list-optionlabel")&&(t=-1)),r){for(n=this.dataSource.flatView(),o=0;o
        ',this.filterInput=e('').attr({placeholder:this.element.attr("placeholder"),title:this.element.attr("title"),role:"listbox","aria-haspopup":!0,"aria-expanded":!1}),this.list.prepend(e('').append(this.filterInput.add(t))))},_span:function(){var t,n=this,i=n.wrapper,o="span.k-input";t=i.find(o),t[0]||(i.append(' ').append(n.element),t=i.find(o)),n.span=t,n._inputWrapper=e(i[0].firstChild),n._arrow=i.find(".k-select"),n._arrowIcon=n._arrow.find(".k-icon")},_wrapper:function(){var e,t=this,n=t.element,i=n[0];e=n.parent(),e.is("span.k-widget")||(e=n.wrap("").parent(),e[0].style.cssText=i.style.cssText,e[0].title=i.title),t._focused=t.wrapper=e.addClass("k-widget k-dropdown").addClass(i.className).removeClass("input-validation-error").css("display","").attr({accesskey:n.attr("accesskey"),unselectable:"on",role:"listbox","aria-haspopup":!0,"aria-expanded":!1}),n.hide().removeAttr("accesskey")},_clearSelection:function(e){this.select(e.value()?0:-1)},_inputTemplate:function(){var t=this,n=t.options.valueTemplate;if(n=n?r.template(n):e.proxy(r.template("#:this._text(data)#",{useWithBlock:!1}),t),t.valueTemplate=n,t.hasOptionLabel()&&!t.options.optionLabelTemplate)try{t.valueTemplate(t._optionLabelDataItem())}catch(i){throw Error(F)}},_textAccessor:function(n){var i,o=null,r=this.valueTemplate,a=this._optionLabelText(),s=this.span;if(n===t)return s.text();e.isPlainObject(n)||n instanceof c?o=n:a&&a===n&&(o=this.options.optionLabel),o||(o=this._assignInstance(n,this._accessor())),this.hasOptionLabel()&&(o!==a&&this._text(o)!==a||(r=this.optionLabelTemplate,"string"!=typeof this.options.optionLabel||this.options.optionLabelTemplate||(o=a))),i=function(){return{elements:s.get(),data:[{dataItem:o}]}},this.angular("cleanup",i);try{s.html(r(o))}catch(l){s.html("")}this.angular("compile",i)},_preselect:function(e,t){e||t||(t=this._optionLabelText()),this._accessor(e),this._textAccessor(t),this._old=this._accessor(),this._oldIndex=this.selectedIndex,this.listView.setValue(e),this._initialIndex=null,this._presetValue=!0},_assignInstance:function(e,t){var i=this.options.dataTextField,o={};return i?(n(o,i.split("."),e),n(o,this.options.dataValueField.split("."),t),o=new c(o)):o=e,o}});a.plugin(I)}(window.kendo.jQuery),window.kendo},"function"==typeof define&&define.amd?define:function(e,t,n){(n||t)()}),function(e,define){define("kendo.resizable.min",["kendo.core.min","kendo.draganddrop.min"],e)}(function(){return function(e,t){var n=window.kendo,i=n.ui,o=i.Widget,r=e.proxy,a=n.isFunction,s=e.extend,l="horizontal",d="vertical",u="start",c="resize",p="resizeend",f=o.extend({init:function(e,t){var n=this;o.fn.init.call(n,e,t),n.orientation=n.options.orientation.toLowerCase()!=d?l:d,n._positionMouse=n.orientation==l?"x":"y",n._position=n.orientation==l?"left":"top",n._sizingDom=n.orientation==l?"outerWidth":"outerHeight",n.draggable=new i.Draggable(t.draggableElement||e,{distance:1,filter:t.handle,drag:r(n._resize,n),dragcancel:r(n._cancel,n),dragstart:r(n._start,n),dragend:r(n._stop,n)}),n.userEvents=n.draggable.userEvents},events:[c,p,u],options:{name:"Resizable",orientation:l},resize:function(){},_max:function(e){var n=this,i=n.hint?n.hint[n._sizingDom]():0,o=n.options.max;return a(o)?o(e):o!==t?n._initialElementPosition+o-i:o},_min:function(e){var n=this,i=n.options.min;return a(i)?i(e):i!==t?n._initialElementPosition+i:i},_start:function(t){var n=this,i=n.options.hint,o=e(t.currentTarget);n._initialElementPosition=o.position()[n._position],n._initialMousePosition=t[n._positionMouse].startLocation,i&&(n.hint=a(i)?e(i(o)):i,n.hint.css({position:"absolute"}).css(n._position,n._initialElementPosition).appendTo(n.element)),n.trigger(u,t),n._maxPosition=n._max(t),n._minPosition=n._min(t),e(document.body).css("cursor",o.css("cursor"))},_resize:function(e){var n,i=this,o=i._maxPosition,r=i._minPosition,a=i._initialElementPosition+(e[i._positionMouse].location-i._initialMousePosition);n=r!==t?Math.max(r,a):a,i.position=n=o!==t?Math.min(o,n):n,i.hint&&i.hint.toggleClass(i.options.invalidClass||"",n==o||n==r).css(i._position,n),i.resizing=!0,i.trigger(c,s(e,{position:n}))},_stop:function(t){var n=this;n.hint&&n.hint.remove(),n.resizing=!1,n.trigger(p,s(t,{position:n.position})),e(document.body).css("cursor","")},_cancel:function(e){var n=this;n.hint&&(n.position=t,n.hint.css(n._position,n._initialElementPosition),n._stop(e))},destroy:function(){var e=this;o.fn.destroy.call(e),e.draggable&&e.draggable.destroy()},press:function(e){if(e){var t=e.position(),n=this;n.userEvents.press(t.left,t.top,e[0]),n.targetPosition=t,n.target=e}},move:function(e){var n=this,i=n._position,o=n.targetPosition,r=n.position;r===t&&(r=o[i]),o[i]=r+e,n.userEvents.move(o.left,o.top)},end:function(){this.userEvents.end(),this.target=this.position=t}});n.ui.plugin(f)}(window.kendo.jQuery),window.kendo},"function"==typeof define&&define.amd?define:function(e,t,n){(n||t)()}),function(e,define){define("kendo.window.min",["kendo.draganddrop.min","kendo.popup.min"],e)}(function(){return function(e,t){function n(e){return t!==e}function i(e,t){return parseInt(e.css(t),10)||0}function o(e,t,n){var i;return i=e&&isNaN(e)&&(""+e).indexOf("px")<0?e:Math.max(Math.min(parseInt(e,10),n===1/0?n:parseInt(n,10)),t===-(1/0)?t:parseInt(t,10))}function r(){return!this.type||this.type.toLowerCase().indexOf("script")>=0}function a(t){for(var n,i,o={top:t.offsetTop,left:t.offsetLeft},r=t.offsetParent;r;)o.top+=r.offsetTop,o.left+=r.offsetLeft,n=e(r).css("overflowX"),i=e(r).css("overflowY"),"auto"!==i&&"scroll"!==i||(o.top-=r.scrollTop),"auto"!==n&&"scroll"!==n||(o.left-=r.scrollLeft),r=r.offsetParent;return o}function s(e){var t=this;t.owner=e,t._preventDragging=!1,t._draggable=new p(e.wrapper,{filter:">"+I, +group:e.wrapper.id+"-resizing",dragstart:v(t.dragstart,t),drag:v(t.drag,t),dragend:v(t.dragend,t)}),t._draggable.userEvents.bind("press",v(t.addOverlay,t)),t._draggable.userEvents.bind("release",v(t.removeOverlay,t))}function l(e,t){var n=this;n.owner=e,n._preventDragging=!1,n._draggable=new p(e.wrapper,{filter:t,group:e.wrapper.id+"-moving",dragstart:v(n.dragstart,n),drag:v(n.drag,n),dragend:v(n.dragend,n),dragcancel:v(n.dragcancel,n)}),n._draggable.userEvents.stopPropagation=!1}var d=window.kendo,u=d.ui.Widget,c=d.ui.Popup.TabKeyTrap,p=d.ui.Draggable,f=e.isPlainObject,h=d._activeElement,m=d._outerWidth,g=d._outerHeight,v=e.proxy,_=e.extend,b=e.each,y=d.template,w="body",k=".kendoWindow",x=".kendoWindowModal",C=".k-window",T=".k-window-title",S=T+"bar",F=".k-window-content",D=".k-dialog-content",I=".k-resize-handle",z=".k-overlay",E="k-content-frame",A="k-i-loading",N="k-state-hover",R="k-state-focused",H="k-window-maximized",P=":visible",M="hidden",O="cursor",B="open",L="activate",V="deactivate",U="close",W="refresh",j="minimize",q="maximize",G="resizeStart",$="resize",Y="resizeEnd",K="dragstart",Q="dragend",X="error",J="overflow",Z="original-overflow-rule",ee="zIndex",te=".k-window-actions .k-i-window-minimize,.k-window-actions .k-i-window-maximize",ne=".k-i-pin",ie=".k-i-unpin",oe=ne+","+ie,re=".k-window-titlebar .k-window-action",ae=".k-window-titlebar .k-i-refresh",se="WindowEventsHandled",le=/^0[a-z]*$/i,de=d.isLocalUrl,ue={small:"k-window-sm",medium:"k-window-md",large:"k-window-lg"},ce=u.extend({init:function(i,o){var a,s,l,p,h,m,g,_,b,y=this,w={},x=!1,I=o&&o.actions&&!o.actions.length;u.fn.init.call(y,i,o),o=y.options,p=o.position,i=y.element,h=o.content,_=e(window),I&&(o.actions=[]),y.appendTo=e(o.appendTo),y.containment=o.draggable.containment?e(o.draggable.containment).first():null,h&&!f(h)&&(h=o.content={url:h}),i.find("script").filter(r).remove(),i.parent().is(y.appendTo)||y.containment||p.top!==t&&p.left!==t||(i.is(P)?(w=i.offset(),x=!0):(s=i.css("visibility"),l=i.css("display"),i.css({visibility:M,display:""}),w=i.offset(),i.css({visibility:s,display:l})),p.top===t&&(p.top=w.top),p.left===t&&(p.left=w.left)),n(o.visible)&&null!==o.visible||(o.visible=i.is(P)),a=y.wrapper=i.closest(C),i.is(".k-window-content")&&a[0]||(i.addClass("k-window-content"),y._createWindow(i,o),a=y.wrapper=i.closest(C),y.title(y.options.title),y._dimensions()),y.minTop=y.minLeft=-(1/0),y.maxTop=y.maxLeft=1/0,y._position(),h&&y.refresh(h),o.visible&&y.toFront(),m=a.children(F),y._tabindex(m),o.visible&&o.modal&&y._overlay(a.is(P)).css({opacity:.5}),a.on("mouseenter"+k,re,v(y._buttonEnter,y)).on("mouseleave"+k,re,v(y._buttonLeave,y)).on("click"+k,"> "+re,v(y._windowActionHandler,y)).on("keydown"+k,v(y._keydown,y)).on("focus"+k,v(y._focus,y)).on("blur"+k,v(y._blur,y)),m.on("keydown"+k,v(y._keydown,y)).on("focus"+k,v(y._focus,y)).on("blur"+k,v(y._blur,y)),g=m.find("."+E)[0],g&&!_.data(se)&&(_.on("blur"+k,function(){var t,n=e(document.activeElement).parent(F);n.length&&(t=d.widgetInstance(n),t._focus())}),_.on("focus"+k,function(){e(F).not(D).each(function(t,n){d.widgetInstance(e(n))._blur()})}),_.data(se,!0)),this._resizable(),this._draggable(),o.pinned&&this.wrapper.is(":visible")&&y.pin(),b=i.attr("id"),b&&(b+="_wnd_title",a.children(S).children(T).attr("id",b),m.attr({role:"dialog","aria-labelledby":b})),a.add(a.children(".k-resize-handle,"+S)).on("mousedown"+k,v(y.toFront,y)),y.touchScroller=d.touchScroller(i),y._resizeHandler=v(y._onDocumentResize,y),y._marker=d.guid().substring(0,8),e(window).on("resize"+k+y._marker,y._resizeHandler),o.visible&&(y.trigger(B),y.trigger(L)),d.notify(y),this.options.modal&&(this._tabKeyTrap=new c(a),this._tabKeyTrap.trap(),this._tabKeyTrap.shouldTrap=function(){return m.data("isFront")})},_buttonEnter:function(t){e(t.currentTarget).addClass(N)},_buttonLeave:function(t){e(t.currentTarget).removeClass(N)},_focus:function(){this.wrapper.addClass(R)},_blur:function(){this.wrapper.removeClass(R)},_dimensions:function(){var e,t,n=this.wrapper,r=this.options,a=r.width,s=r.height,l=r.maxHeight,d=r.size,u=["minWidth","minHeight","maxWidth","maxHeight"],c="content-box"==n.css("box-sizing"),p=c?i(n,"border-left-width")+i(n,"border-right-width"):0,f=c?i(n,"border-top-width")+i(n,"border-bottom-width"):0,h=c?i(n,"padding-top"):0;for(this.containment&&!this._isPinned&&(this._updateBoundaries(),r.maxHeight=Math.min(this.containment.height-(f+h),l),r.maxWidth=Math.min(this.containment.width-p,r.maxWidth)),e=0;ee[0].clientWidth&&(e.width-=d.support.scrollbar()),parseInt(e.height,10)>e[0].clientHeight&&(e.height-=d.support.scrollbar()),e.position=a(e[0]),this._isPinned?(this.minTop=this.minLeft=-(1/0),this.maxTop=this.maxLeft=1/0):(this.minTop=e.scrollTop(),this.minLeft=e.scrollLeft(),this.maxLeft=this.minLeft+e.width-m(this.wrapper,!0),this.maxTop=this.minTop+e.height-g(this.wrapper,!0)),t):null},_animationOptions:function(e){var t=this.options.animation,n={open:{effects:{}},close:{hide:!0,effects:{}}};return t&&t[e]||n[e]},_resize:function(){d.resize(this.element.children())},_resizable:function(){var t=this.options.resizable,n=this.wrapper;this.resizing&&(n.off("dblclick"+k).children(I).remove(),this.resizing.destroy(),this.resizing=null),t&&(n.on("dblclick"+k,S,v(function(t){e(t.target).closest(".k-window-action").length||this.toggleMaximization()},this)),b("n e s w se sw ne nw".split(" "),function(e,t){n.append(pe.resizeHandle(t))}),this.resizing=new s(this)),n=null},_draggable:function(){var e=this.options.draggable;this.dragging&&(this.dragging.destroy(),this.dragging=null),e&&(this.dragging=new l(this,e.dragHandle||S))},_actions:function(){var t=this.options,n=t.actions,i=t.pinned,o=this.wrapper.children(S),r=o.find(".k-window-actions"),a=["maximize","minimize"];n=e.map(n,function(e){return e=i&&"pin"===e.toLowerCase()?"unpin":e,{name:a.indexOf(e.toLowerCase())>-1?"window-"+e:e}}),r.html(d.render(pe.action,n))},setOptions:function(e){var n,i,o=this,r=o.options.size,a=JSON.parse(JSON.stringify(e));_(e.position,o.options.position),_(e.position,a.position),u.fn.setOptions.call(o,e),n=o.options.scrollable!==!1,o.restore(),t!==e.title&&o.title(e.title),o.wrapper.removeClass(ue[r]),o._dimensions(),o._position(),o._resizable(),o._draggable(),o._actions(),t!==e.modal&&(i=o.options.visible!==!1,o._enableDocumentScrolling(),o._overlay(e.modal&&i)),o.element.css(J,n?"":"hidden")},events:[B,L,V,U,j,q,W,G,$,Y,K,Q,X],options:{name:"Window",animation:{open:{effects:{zoom:{direction:"in"},fade:{direction:"in"}},duration:350},close:{effects:{zoom:{direction:"out",properties:{scale:.7}},fade:{direction:"out"}},duration:350,hide:!0}},title:"",actions:["Close"],autoFocus:!0,modal:!1,size:"auto",resizable:!0,draggable:!0,minWidth:90,minHeight:50,maxWidth:1/0,maxHeight:1/0,pinned:!1,scrollable:!0,position:{},content:null,visible:null,height:null,width:null,appendTo:"body",isMaximized:!1,isMinimized:!1},_closable:function(){return e.inArray("close",e.map(this.options.actions,function(e){return e.toLowerCase()}))>-1},_keydown:function(e){var t,n,r,a,s,l,u=this,c=u.options,p=d.keys,f=e.keyCode,h=u.wrapper,m=10,g=c.isMaximized,v=c.isMinimized;f==p.ESC&&u._closable()&&(e.stopPropagation(),u._close(!1)),e.target!=e.currentTarget||u._closing||(e.altKey&&82==f&&u.refresh(),e.altKey&&80==f&&(u.options.pinned?u.unpin():u.pin()),e.altKey&&f==p.UP?v?(u.restore(),u.element.focus()):g||(u.maximize(),u.element.focus()):e.altKey&&f==p.DOWN&&(v||g?g&&(u.restore(),u.element.focus()):(u.minimize(),u.wrapper.focus())),t=d.getOffset(h),u.containment&&!u._isPinned&&(t=u.options.position),!c.draggable||e.ctrlKey||e.altKey||g||(u._updateBoundaries(),f==p.UP?(t.top=o(t.top-m,u.minTop,u.maxTop),n=h.css("top",t.top)):f==p.DOWN?(t.top=o(t.top+m,u.minTop,u.maxTop),n=h.css("top",t.top)):f==p.LEFT?(t.left=o(t.left-m,u.minLeft,u.maxLeft),n=h.css("left",t.left)):f==p.RIGHT&&(t.left=o(t.left+m,u.minLeft,u.maxLeft),n=h.css("left",t.left))),c.resizable&&e.ctrlKey&&!g&&!v&&(f==p.UP?(n=!0,a=h.height()-m):f==p.DOWN&&(n=!0,a=u.containment&&!u._isPinned?Math.min(h.height()+m,u.containment.height-t.top-i(h,"padding-top")-i(h,"borderBottomWidth")-i(h,"borderTopWidth")):h.height()+m),f==p.LEFT?(n=!0,r=h.width()-m):f==p.RIGHT&&(n=!0,r=u.containment&&!u._isPinned?Math.min(h.width()+m,u.containment.width-t.left-i(h,"borderLeftWidth")-i(h,"borderRightWidth")):h.width()+m),n&&(s=o(r,c.minWidth,c.maxWidth),l=o(a,c.minHeight,c.maxHeight),isNaN(s)||(h.width(s),u.options.width=s+"px"),isNaN(l)||(h.height(l),u.options.height=l+"px"),u.resize())),n&&e.preventDefault())},_overlay:function(t){var n=this.containment?this.containment.children(z):this.appendTo.children(z),i=this.wrapper;return n.length||(n=e("
        ")),n.insertBefore(i[0]).toggle(t).css(ee,parseInt(i.css(ee),10)-1),this.options.modal.preventScroll&&!this.containment&&this._stopDocumentScrolling(),n},_actionForIcon:function(e){var t=/\bk-i(-\w+)+\b/.exec(e[0].className)[0];return{"k-i-close":"_close","k-i-window-maximize":"maximize","k-i-window-minimize":"minimize","k-i-window-restore":"restore","k-i-refresh":"refresh","k-i-pin":"pin","k-i-unpin":"unpin"}[t]},_windowActionHandler:function(n){var i,o;if(!this._closing)return i=e(n.target).closest(".k-window-action").find(".k-icon"),o=this._actionForIcon(i),o?(n.preventDefault(),this[o](),!1):t},_modals:function(){var t=this,n=e(C).filter(function(){var n=e(this),i=t._object(n),o=i&&i.options;return o&&o.modal&&o.visible&&o.appendTo===t.options.appendTo&&n.is(P)}).sort(function(t,n){return+e(t).css("zIndex")-+e(n).css("zIndex")});return t=null,n},_object:function(e){var n=e.children(F),i=d.widgetInstance(n);return i?i:t},center:function(){var t,n,o=this,r=o.options.position,a=o.wrapper,s=e(window),l=0,d=0;return o.options.isMaximized?o:(o.options.pinned&&!o._isPinned&&o.pin(),o.options.pinned||(l=s.scrollTop(),d=s.scrollLeft()),this.containment&&!o.options.pinned?(t=this.minTop+(this.maxTop-this.minTop)/2,n=this.minLeft+(this.maxLeft-this.minLeft)/2):(o._scrollIsAppended=!0,n=d+Math.max(0,(s.width()-a.width())/2),t=l+Math.max(0,(s.height()-a.height()-i(a,"paddingTop"))/2)),a.css({left:n,top:t}),r.top=t,r.left=n,o)},title:function(n){var i,o,r,a,s=this,l=!0,u=s.wrapper,c=u.children(S),p=c.children(T);return arguments.length?(e.isPlainObject(n)?(i=t!==n.text?n.text:"",l=n.encoded!==!1):i=n,i===!1?(u.addClass("k-window-titleless"),u.css("padding-top",0),c.remove()):(c.length?p.html(l?d.htmlEncode(i):i):(u.prepend(pe.titlebar({title:l?d.htmlEncode(i):i})),s._actions(),c=u.children(S)),a=u.css("visibility"),r=u.css("display"),a===M?(u.css({display:""}),o=parseInt(g(c),10),u.css({display:r})):(u.css({visibility:M,display:""}),o=parseInt(g(c),10),u.css({visibility:a,display:r})),u.css("padding-top",o),c.css("margin-top",-o)),s.options.title=i,s):p.html()},content:function(e,t){var i=this.wrapper.children(F),o=i.children(".km-scroll-container");return i=o[0]?o:i,n(e)?(this.angular("cleanup",function(){return{elements:i.children()}}),d.destroy(this.element.children()),i.empty().html(e),this.angular("compile",function(){var e,n=[];for(e=i.length;--e>=0;)n.push({dataItem:t});return{elements:i.children(),data:n}}),this):i.html()},open:function(){var t,n,i,o=this,r=o.wrapper,a=o.options,s=this._animationOptions("open"),l=r.children(F),u=this.containment&&!o._isPinned,c=u?this.containment:e(document);return o.trigger(B)||(o._closing&&r.kendoStop(!0,!0),o._closing=!1,o.toFront(),a.autoFocus&&o.element.focus(),a.visible=!0,a.modal&&(n=!!o._modals().length,t=o._overlay(n),t.kendoStop(!0,!0),s.duration&&d.effects.Fade&&!n?(i=d.fx(t).fadeIn(),i.duration(s.duration||0),i.endValue(.5),i.play()):t.css("opacity",.5),t.show(),e(window).on("focus"+x,function(){l.data("isFront")&&!e(document.activeElement).closest(l).length&&o.element.focus()})),r.is(P)||(l.css(J,M),o.wrapper.find(re).addClass("k-flat"),r.show().kendoStop().kendoAnimate({effects:s.effects,duration:s.duration,complete:v(this._activate,this)}))),a.isMaximized&&(o._containerScrollTop=c.scrollTop(),o._containerScrollLeft=c.scrollLeft(),o._stopDocumentScrolling()),this.options.pinned&&!this._isPinned&&this.pin(),o},_activate:function(){var e=this.options.scrollable!==!1;this.options.autoFocus&&this.element.focus(),this.element.css(J,e?"":"hidden"),d.resize(this.element.children()),this.trigger(L)},_removeOverlay:function(n){var i,o=this._modals(),r=this.options,a=r.modal&&!o.length,s=r.modal?this._overlay(!0):e(t),l=this._animationOptions("close");a?(!n&&l.duration&&d.effects.Fade?(i=d.fx(s).fadeOut(),i.duration(l.duration||0),i.startValue(.5),i.play()):this._overlay(!1).remove(),r.modal.preventScroll&&this._enableDocumentScrolling()):o.length&&(this._object(o.last())._overlay(!0),r.modal.preventScroll&&this._stopDocumentScrolling())},_close:function(t){var n,i=this,o=i.wrapper,r=i.options,a=this._animationOptions("open"),s=this._animationOptions("close"),l=this.containment&&!i._isPinned,d=l?this.containment:e(document);i._closing||(n=i.trigger(U,{userTriggered:!t}),i._closing=!n,o.is(P)&&!n&&(r.visible=!1,e(C).each(function(t,n){var i=e(n).children(F);n!=o&&i.find("> ."+E).length>0&&i.children(z).remove()}),this._removeOverlay(),i.wrapper.find(re).removeClass("k-flat"),o.kendoStop().kendoAnimate({effects:s.effects||a.effects,reverse:s.reverse===!0,duration:s.duration,complete:v(this._deactivate,this)}),e(window).off(x)),i.options.isMaximized&&(i._enableDocumentScrolling(),i._containerScrollTop&&i._containerScrollTop>0&&d.scrollTop(i._containerScrollTop),i._containerScrollLeft&&i._containerScrollLeft>0&&d.scrollLeft(i._containerScrollLeft)))},_deactivate:function(){var e,t=this;t.wrapper.hide().css("opacity",""),t.trigger(V),t.options.modal&&(e=t._object(t._modals().last()),e&&e.toFront())},close:function(){return this._close(!0),this},_actionable:function(t){return e(t).is(re+","+re+" .k-icon,:input,a")},_shouldFocus:function(t){var n=h(),i=this.element;return this.options.autoFocus&&!e(n).is(i)&&!this._actionable(t)&&(!i.find(n).length||!i.find(t).length)},toFront:function(t){var n,i,o=this,r=o.wrapper,a=r[0],s=o.containment&&!o._isPinned,l=+r.css(ee),d=l,u=t&&t.target||null;return e(C).each(function(t,n){var i=e(n),o=i.css(ee),r=i.children(F);isNaN(o)||(l=Math.max(+o,l)),r.data("isFront",n==a),n!=a&&r.find("> ."+E).length>0&&r.append(pe.overlay)}),(!r[0].style.zIndex||d .k-overlay").remove(),o._shouldFocus(u)&&(o.isMinimized()?o.wrapper.focus():e(u).is(z)?setTimeout(function(){o.element.focus()}):o.element.focus(),n=s?o.containment.scrollTop():e(window).scrollTop(),i=parseInt(r.position().top,10),!o.options.pinned&&i>0&&i0?e(window).scrollTop(i):r.css("top",n))),r=null,o},toggleMaximization:function(){return this._closing?this:this[this.options.isMaximized?"restore":"maximize"]()},restore:function(){var t,n=this,i=n.options,r=i.minHeight,a=n.restoreOptions,s=n.containment&&!n._isPinned?n.containment:e(document);return i.isMaximized||i.isMinimized?(r&&r!=1/0&&n.wrapper.css("min-height",r),a&&!i.isMaximized&&(a.height=o(a.height,n.options.minHeight,n.options.maxHeight),t=i.position.top+parseInt(a.height,10)>n.maxTop,t&&(i.position.top=o(i.position.top,n.minTop,n.maxTop-parseInt(a.height,10)),_(a,{left:i.position.left,top:i.position.top}))),n.wrapper.css({position:i.pinned?"fixed":"absolute",left:a.left,top:a.top,width:a.width,height:a.height}).removeClass(H).find(".k-window-content,.k-resize-handle").show().end().find(".k-window-titlebar .k-i-window-restore").parent().remove().end().end().find(te).parent().show().end().end().find(oe).parent().show(),i.isMaximized?n.wrapper.find(".k-i-window-maximize").parent().focus():i.isMinimized&&n.wrapper.find(".k-i-window-minimize").parent().focus(),n.options.width=a.width,n.options.height=a.height,n.options.modal.preventScroll||n._enableDocumentScrolling(),n._containerScrollTop&&n._containerScrollTop>0&&s.scrollTop(n._containerScrollTop),n._containerScrollLeft&&n._containerScrollLeft>0&&s.scrollLeft(n._containerScrollLeft),i.isMaximized=i.isMinimized=!1,n.wrapper.removeAttr("tabindex"),n.wrapper.removeAttr("aria-labelled-by"),n.resize(),n):n},_sizingAction:function(e,t){var n=this,i=n.wrapper,o=i[0].style,r=n.options;return r.isMaximized||r.isMinimized?n:(n.restoreOptions={width:o.width,height:o.height},i.children(I).hide().end().children(S).find(te).parent().hide().eq(0).before(pe.action({name:"window-restore"})),t.call(n),n.wrapper.children(S).find(oe).parent().toggle("maximize"!==e),n.trigger(e),i.find(".k-i-window-restore").parent().focus(),n)},maximize:function(){return this._sizingAction("maximize",function(){var t=this,n=t.wrapper,i=this.containment&&!t._isPinned,o=n.position(),r=e(document);_(t.restoreOptions,{left:o.left+(i?this.containment.scrollLeft():0),top:o.top+(i?this.containment.scrollTop():0)}),this._containerScrollTop=i?this.containment.scrollTop():r.scrollTop(),this._containerScrollLeft=i?this.containment.scrollLeft():r.scrollLeft(),t._stopDocumentScrolling(),n.css({top:i?this.containment.scrollTop():0,left:i?this.containment.scrollLeft():0,position:i?"absolute":"fixed"}).addClass(H),t.options.isMaximized=!0,t._onDocumentResize()}),this},_stopDocumentScrolling:function(){var n,i,o=this,r=o.containment;return r&&!o._isPinned?(o._storeOverflowRule(r),r.css(J,M),o.wrapper.css({maxWidth:r.innerWidth(),maxHeight:r.innerHeight()}),t):(n=e("body"),o._storeOverflowRule(n),n.css(J,M),i=e("html"),o._storeOverflowRule(i),i.css(J,M),t)},_enableDocumentScrolling:function(){var n=this,i=n.containment;return i&&!n._isPinned?(n._restoreOverflowRule(i),n.wrapper.css({maxWidth:i.width,maxHeight:i.height}),t):(n._restoreOverflowRule(e(document.body)),n._restoreOverflowRule(e("html")),t)},_storeOverflowRule:function(e){if(!this._isOverflowStored(e)){var t=e.get(0).style.overflow;"string"==typeof t&&e.data(Z,t)}},_isOverflowStored:function(e){return"string"==typeof e.data(Z)},_restoreOverflowRule:function(e){var n=e.data(Z);null!==n&&n!==t?(e.css(J,n),e.removeData(Z)):e.css(J,"")},isMaximized:function(){return this.options.isMaximized},minimize:function(){return this._sizingAction("minimize",function(){var e=this;e.wrapper.css({height:"",minHeight:""}),e.element.hide(),e.options.isMinimized=!0}),this.wrapper.attr("tabindex",0),this.wrapper.attr("aria-labelled-by",this.element.attr("aria-labelled-by")),this._updateBoundaries(),this},isMinimized:function(){return this.options.isMinimized},pin:function(){var t=this,n=e(window),o=t.wrapper,r=t.options,s=r.position,l=this.containment?a(o[0]).top+i(this.containment,"borderTopWidth"):i(o,"top"),d=this.containment?a(o[0]).left+i(this.containment,"borderLeftWidth"):i(o,"left");t.options.isMaximized||(s.top=l,s.left=d,!t._scrollIsAppended||this.containment&&"fixed"===this.containment.css("position")||(s.top-=n.scrollTop(),s.left-=n.scrollLeft(),t._scrollIsAppended=!1),o.css(_(s,{position:"fixed"})),o.children(S).find(ne).addClass("k-i-unpin").removeClass("k-i-pin"),t._isPinned=!0,t.options.pinned=!0,this.containment&&(r.maxWidth=r.maxHeight=1/0,o.css({maxWidth:"",maxHeight:""})))},unpin:function(){var t=this,n=e(window),r=t.wrapper,a=t.options,s=t.options.position,l=t.containment,d=parseInt(r.css("top"),10)+n.scrollTop(),u=parseInt(r.css("left"),10)+n.scrollLeft();t.options.isMaximized||(t._isPinned=!1,t._scrollIsAppended=!0,t.options.pinned=!1,l&&(t._updateBoundaries(),a.maxWidth=Math.min(l.width,a.maxWidth),a.maxHeight=Math.min(l.height-i(r,"padding-top"),a.maxHeight),r.css({maxWidth:a.maxWidth,maxHeight:a.maxHeight}),d=dl.position.top+l.height?t.maxTop:d+l.scrollTop()-(l.position.top+i(l,"border-top-width")),u=ul.position.left+l.width?t.maxLeft:u+l.scrollLeft()-(l.position.left+i(l,"border-left-width"))),s.top=o(d,t.minTop,t.maxTop),s.left=o(u,t.minLeft,t.maxLeft),r.css(_(s,{position:""})),r.children(S).find(ie).addClass("k-i-pin").removeClass("k-i-unpin"))},_onDocumentResize:function(){var t,n,o,r,a,s=this,l=s.wrapper,u=e(window),c=d.support.zoomLevel(),p="content-box"==l.css("box-sizing");s.options.isMaximized&&(o=p?i(l,"border-left-width")+i(l,"border-right-width"):0,r=p?i(l,"border-top-width")+i(l,"border-bottom-width"):0,a=p?i(l,"padding-top"):0,s.containment&&!s._isPinned?(t=s.containment.innerWidth()-o,n=s.containment.innerHeight()-(r+a)):(t=u.width()/c-o,n=u.height()/c-(r+a)),l.css({width:t,height:n}),s.options.width=t,s.options.height=n,s.resize())},refresh:function(t){var i,o,r,a=this,s=a.options,l=e(a.element);return f(t)||(t={url:t}),t=_({},s.content,t),o=n(s.iframe)?s.iframe:t.iframe,r=t.url,r?(n(o)||(o=!de(r)),o?(i=l.find("."+E)[0],i?i.src=r||i.src:l.html(pe.contentFrame(_({},s,{content:t}))),l.find("."+E).unbind("load"+k).on("load"+k,v(this._triggerRefresh,this))):a._ajaxRequest(t)):(t.template&&a.content(y(t.template)({})),a.trigger(W)),l.toggleClass("k-window-iframecontent",!!o),a},_triggerRefresh:function(){this.trigger(W)},_ajaxComplete:function(){clearTimeout(this._loadingIconTimeout),this.wrapper.find(ae).removeClass(A)},_ajaxError:function(e,t){this.trigger(X,{status:t,xhr:e})},_ajaxSuccess:function(e){return function(t){var n=t;e&&(n=y(e)(t||{})),this.content(n,t),this.element.prop("scrollTop",0),this.trigger(W)}},_showLoading:function(){this.wrapper.find(ae).addClass(A)},_ajaxRequest:function(t){this._loadingIconTimeout=setTimeout(v(this._showLoading,this),100),e.ajax(_({type:"GET",dataType:"html",cache:!1,error:v(this._ajaxError,this),complete:v(this._ajaxComplete,this),success:v(this._ajaxSuccess(t.template),this)},t))},_destroy:function(){this.resizing&&this.resizing.destroy(),this.dragging&&this.dragging.destroy(),this.wrapper.off(k).children(F).off(k).end().find(".k-resize-handle,.k-window-titlebar").off(k),e(window).off("resize"+k+this._marker),e(window).off(x),e(window).off(k),clearTimeout(this._loadingIconTimeout),u.fn.destroy.call(this),this.unbind(t),d.destroy(this.wrapper),this._removeOverlay(!0)},destroy:function(){this._destroy(),this.wrapper.empty().remove(),this.wrapper=this.appendTo=this.element=e()},_createWindow:function(){var t,n,i=this.element,o=this.options,r=d.support.isRtl(i);o.scrollable===!1&&i.css("overflow","hidden"),n=e(pe.wrapper(o)),t=i.find("iframe:not(.k-content-frame)").map(function(){var e=this.getAttribute("src");return this.src="",e}),n.toggleClass("k-rtl",r).append(i).find("iframe:not(.k-content-frame)").each(function(e){this.src=t[e]}),this.containment?this.containment.prepend(n):this.appendTo&&n.appendTo(this.appendTo),n.find(".k-window-title").css(r?"left":"right",m(n.find(".k-window-actions"))+10),i.css("visibility","").show(),i.find("[data-role=editor]").each(function(){var t=e(this).data("kendoEditor");t&&t.refresh()}),n=i=null}}),pe={wrapper:y("
        "),action:y(""),titlebar:y("
        #= title #
        "),overlay:"
        ",contentFrame:y(""),resizeHandle:y("
        ")};s.prototype={addOverlay:function(){this.owner.wrapper.append(pe.overlay)},removeOverlay:function(){this.owner.wrapper.find(z).remove()},dragstart:function(t){var n,i,o,r,s,l,u,c=this,p=c.owner,f=p.wrapper;c._preventDragging=p.trigger(G),c._preventDragging||(c.elementPadding=parseInt(f.css("padding-top"),10),c.initialPosition=d.getOffset(f,"position"),c.resizeDirection=t.currentTarget.prop("className").replace("k-resize-handle k-resize-",""),c.initialSize={width:f.width(),height:f.height()},p._updateBoundaries(),c.containerOffset=p.containment?p.containment.position:d.getOffset(p.appendTo,"position"),n=f.offsetParent(),n.is("html")?c.containerOffset.top=c.containerOffset.left=0:(i=n.css("margin-top"),o=n.css("margin-left"),r=!le.test(i)||!le.test(o),r&&(s=a(f[0]),l=s.left-c.containerOffset.left-c.initialPosition.left,u=s.top-c.containerOffset.top-c.initialPosition.top,c._relativeElMarginLeft=l>1?l:0,c._relativeElMarginTop=u>1?u:0,c.initialPosition.left+=c._relativeElMarginLeft,c.initialPosition.top+=c._relativeElMarginTop)),f.children(I).not(t.currentTarget).hide(),e(w).css(O,t.currentTarget.css(O)))},drag:function(t){var n,i,r,a,s,l,u,c,p,f,h,m,g,v,_,b,y,w,k,x;this._preventDragging||(n=this,i=n.owner,r=i.wrapper,a=i.options,s=a.position,l=n.resizeDirection,u=n.containerOffset,c=n.initialPosition,p=n.initialSize,f=i.containment&&!i._isPinned,h=d.support.isRtl(i.containment),m=f&&h&&i.containment.innerWidth()>i.containment.width?d.support.scrollbar():0,g=f?{top:i.containment.scrollTop(),left:i.containment.scrollLeft()}:{top:0,left:0},w=Math.max(t.x.location,0),k=Math.max(t.y.location,0),l.indexOf("e")>=0?(v=i.containment&&w-p.width>=i.maxLeft-g.left+u.left+m?i.maxLeft+m-c.left+p.width-g.left:w-c.left-u.left,r.width(o(v,a.minWidth,a.maxWidth))):l.indexOf("w")>=0&&(y=c.left+p.width+u.left,v=o(y-w,a.minWidth,a.maxWidth),s.left=y-v-u.left-m-(n._relativeElMarginLeft||0)+g.left,i.containment&&s.left<=i.minLeft&&(s.left=i.minLeft,v=o(y-m-s.left-u.left+g.left,a.minWidth,a.maxWidth)),r.css({left:s.left,width:v})),x=k,i.options.pinned&&(x-=e(window).scrollTop()),l.indexOf("s")>=0?(_=x-c.top-n.elementPadding-u.top,x-p.height-n.elementPadding>=i.maxTop+u.top-g.top&&(_=i.maxTop-c.top+p.height-g.top),r.height(o(_,a.minHeight,a.maxHeight))):l.indexOf("n")>=0&&(b=c.top+p.height+u.top,_=o(b-x,a.minHeight,a.maxHeight),s.top=b-_-u.top-(n._relativeElMarginTop||0)+g.top,s.top<=i.minTop&&i.containment&&(s.top=i.minTop,_=o(b-s.top-u.top+g.top,a.minHeight,a.maxHeight)),r.css({top:s.top,height:_})),v&&(i.options.width=v+"px"),_&&(i.options.height=_+"px"),i.resize())},dragend:function(t){if(!this._preventDragging){var n=this,i=n.owner,o=i.wrapper;return o.children(I).not(t.currentTarget).show(),e(w).css(O,""),i.touchScroller&&i.touchScroller.reset(),27==t.keyCode&&o.css(n.initialPosition).css(n.initialSize),i.trigger(Y),!1}},destroy:function(){this._draggable&&this._draggable.destroy(),this._draggable=this.owner=null}},l.prototype={dragstart:function(t){var n=this.owner,i=n.options.draggable,o=n.element,r=o.find(".k-window-actions"),a=d.getOffset(n.appendTo);this._preventDragging=n.trigger(K)||!i,this._preventDragging||n.isMaximized()||(n.initialWindowPosition=d.getOffset(n.wrapper,"position"),n.initialPointerPosition={left:n.options.position.left,top:n.options.position.top},n.startPosition={left:t.x.client-n.initialWindowPosition.left,top:t.y.client-n.initialWindowPosition.top},n._updateBoundaries(),n.containment||(n.minLeft=r.length>0?m(r)+parseInt(r.css("right"),10)-m(o):20-m(o),n.minLeft-=a.left,n.minTop=-a.top),n.wrapper.append(pe.overlay).children(I).hide(),e(w).css(O,t.currentTarget.css(O)))},drag:function(t){var n,i,r=this.owner,a=r.options.position,s=r.options.draggable.axis;this._preventDragging||r.isMaximized()||(s&&"x"!==s.toLowerCase()||(n=t.x.client-r.startPosition.left,r.containment&&!r._isPinned&&(n+=r.containment.scrollLeft()),a.left=o(n,r.minLeft,r.maxLeft)),s&&"y"!==s.toLowerCase()||(i=t.y.client-r.startPosition.top,r.containment&&!r._isPinned&&(i+=r.containment.scrollTop()),a.top=o(i,r.minTop,r.maxTop)),d.support.transforms?e(r.wrapper).css("transform","translate("+(a.left-r.initialPointerPosition.left)+"px, "+(a.top-r.initialPointerPosition.top)+"px)"):e(r.wrapper).css(a))},_finishDrag:function(){var t=this.owner;t.wrapper.children(I).toggle(!t.options.isMinimized).end().find(z).remove(),e(w).css(O,"")},dragcancel:function(e){this._preventDragging||(this._finishDrag(),e.currentTarget.closest(C).css(this.owner.initialWindowPosition))},dragend:function(){var t=this.owner;if(!this._preventDragging&&!t.isMaximized())return e(t.wrapper).css(t.options.position).css("transform",""),this._finishDrag(),t.trigger(Q),!1},destroy:function(){this._draggable&&this._draggable.destroy(),this._draggable=this.owner=null}},d.ui.plugin(ce)}(window.kendo.jQuery),window.kendo},"function"==typeof define&&define.amd?define:function(e,t,n){(n||t)()}),function(e,define){define("kendo.color.min",["kendo.core.min"],e)}(function(){function e(e,t,n){void 0===n&&(n="0");for(var i=e.toString(16);t>i.length;)i=n+i;return i}function t(e,t,n){var i=n;return i<0&&(i+=1),i>1&&(i-=1),i<1/6?e+6*(t-e)*i:i<.5?t:i<2/3?e+(t-e)*(2/3-i)*6:e}function n(e,t){var i,o,a;if(null==e||"none"===e)return null;if(e instanceof l)return e;if(a=e.toLowerCase(),i=s(a))return a="transparent"===i[1]?new d(1,1,1,0):n(r[i[1]],t),a.match=[i[1]],a;if((i=/^#?([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})\b/i.exec(a))?o=new u(parseInt(i[1],16),parseInt(i[2],16),parseInt(i[3],16),1):(i=/^#?([0-9a-f])([0-9a-f])([0-9a-f])\b/i.exec(a))?o=new u(parseInt(i[1]+i[1],16),parseInt(i[2]+i[2],16),parseInt(i[3]+i[3],16),1):(i=/^rgb\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\s*\)/.exec(a))?o=new u(parseInt(i[1],10),parseInt(i[2],10),parseInt(i[3],10),1):(i=/^rgba\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9.]+)\s*\)/.exec(a))?o=new u(parseInt(i[1],10),parseInt(i[2],10),parseInt(i[3],10),parseFloat(i[4])):(i=/^rgb\(\s*([0-9]*\.?[0-9]+)%\s*,\s*([0-9]*\.?[0-9]+)%\s*,\s*([0-9]*\.?[0-9]+)%\s*\)/.exec(a))?o=new d(parseFloat(i[1])/100,parseFloat(i[2])/100,parseFloat(i[3])/100,1):(i=/^rgba\(\s*([0-9]*\.?[0-9]+)%\s*,\s*([0-9]*\.?[0-9]+)%\s*,\s*([0-9]*\.?[0-9]+)%\s*,\s*([0-9.]+)\s*\)/.exec(a))&&(o=new d(parseFloat(i[1])/100,parseFloat(i[2])/100,parseFloat(i[3])/100,parseFloat(i[4]))),o)o.match=i;else if(!t)throw Error("Cannot parse color: "+a);return o}var i,o,r,a,s,l,d,u,c,p,f;window.kendo=window.kendo||{},i=kendo.Class,o=kendo.support,r={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"00ffff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000000",blanchedalmond:"ffebcd",blue:"0000ff",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"00ffff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgrey:"a9a9a9",darkgreen:"006400",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"ff00ff",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",grey:"808080",green:"008000",greenyellow:"adff2f",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgrey:"d3d3d3",lightgreen:"90ee90",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"778899",lightslategrey:"778899", +lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"00ff00",limegreen:"32cd32",linen:"faf0e6",magenta:"ff00ff",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370d8",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"d87093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",red:"ff0000",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"ffffff",whitesmoke:"f5f5f5",yellow:"ffff00",yellowgreen:"9acd32"},a=o.browser,s=function(e){var t,n=Object.keys(r);return n.push("transparent"),t=RegExp("^("+n.join("|")+")(\\W|$)","i"),s=function(e){return t.exec(e)},t.exec(e)},l=i.extend({init:function(){},toHSV:function(){return this},toRGB:function(){return this},toHex:function(){return this.toBytes().toHex()},toBytes:function(){return this},toCss:function(){return"#"+this.toHex()},toCssRgba:function(){var e=this.toBytes();return"rgba("+e.r+", "+e.g+", "+e.b+", "+parseFloat((+this.a).toFixed(3))+")"},toDisplay:function(){return a.msie&&a.version<9?this.toCss():this.toCssRgba()},equals:function(e){return e===this||null!==e&&this.toCssRgba()===n(e).toCssRgba()},diff:function(e){var t,n;return null===e?NaN:(t=this.toBytes(),n=e.toBytes(),Math.sqrt(Math.pow(.3*(t.r-n.r),2)+Math.pow(.59*(t.g-n.g),2)+Math.pow(.11*(t.b-n.b),2)))},clone:function(){var e=this.toBytes();return e===this&&(e=new u(e.r,e.g,e.b,e.a)),e}}),d=l.extend({init:function(e,t,n,i){l.fn.init.call(this),this.r=e,this.g=t,this.b=n,this.a=i},toHSV:function(){var e,t,n=this,i=n.r,o=n.g,r=n.b,a=Math.min(i,o,r),s=Math.max(i,o,r),l=s-a,d=s;return 0===l?new c(0,0,d,this.a):(0!==s?(t=l/s,e=i===s?(o-r)/l:o===s?2+(r-i)/l:4+(i-o)/l,e*=60,e<0&&(e+=360)):(t=0,e=-1),new c(e,t,d,this.a))},toHSL:function(){var e,t,n,i=this,o=i.r,r=i.g,a=i.b,s=Math.max(o,r,a),l=Math.min(o,r,a),d=(s+l)/2;if(s===l)e=t=0;else switch(n=s-l,t=d>.5?n/(2-s-l):n/(s+l),s){case o:e=(r-a)/n+(r255?255:e},padDigit:function(e){return 1===e.length?"0"+e:e},brightness:function(e){var t=Math.round;return this.r=t(this.normalizeByte(this.r*e)),this.g=t(this.normalizeByte(this.g*e)),this.b=t(this.normalizeByte(this.b*e)),this},percBrightness:function(){return Math.sqrt(.241*this.r*this.r+.691*this.g*this.g+.068*this.b*this.b)}}),f.fromBytes=function(e,t,n,i){return new u(e,t,n,null!=i?i:1)},f.fromRGB=function(e,t,n,i){return new d(e,t,n,null!=i?i:1)},f.fromHSV=function(e,t,n,i){return new c(e,t,n,null!=i?i:1)},f.fromHSL=function(e,t,n,i){return new p(e,t,n,null!=i?i:1)},f.formats=[{re:/^rgb\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3})\)$/,process:function(e){return[parseInt(e[1],10),parseInt(e[2],10),parseInt(e[3],10)]}},{re:/^(\w{2})(\w{2})(\w{2})$/,process:function(e){return[parseInt(e[1],16),parseInt(e[2],16),parseInt(e[3],16)]}},{re:/^(\w{1})(\w{1})(\w{1})$/,process:function(e){return[parseInt(e[1]+e[1],16),parseInt(e[2]+e[2],16),parseInt(e[3]+e[3],16)]}}],f.namedColors=r,kendo.deepExtend(kendo,{parseColor:n,Color:f})},"function"==typeof define&&define.amd?define:function(e,t,n){(n||t)()}),function(e,define){define("kendo.slider.min",["kendo.draganddrop.min"],e)}(function(){return function(e,t){function n(e,t,n){var i=n?" k-slider-horizontal":" k-slider-vertical",o=e.style?e.style:t.attr("style"),r=t.attr("class")?" "+t.attr("class"):"",a="";return"bottomRight"==e.tickPlacement?a=" k-slider-bottomright":"topLeft"==e.tickPlacement&&(a=" k-slider-topleft"),o=o?" style='"+o+"'":"","
        "}function i(e,t,n,i){var o="";return o=n?!i&&"increase"==t||i&&"increase"!=t?"k-i-arrow-60-right":"k-i-arrow-60-left":"increase"==t?"k-i-arrow-60-up":"k-i-arrow-60-down",""}function o(e,t){var n,i="
          ",o=T.floor(u(t/e.smallStep))+1;for(n=0;n ";return i+="
        "}function r(e,t){var n=t.is("input")?1:2,i=2==n?e.leftDragHandleTitle:e.dragHandleTitle;return"
        "+(n>1?"":"")+"
        "}function a(e){return function(t){return t+e}}function s(e){return function(){return e}}function l(e){return(e+"").replace(".",m.cultures.current.numberFormat["."])}function d(e){var t=""+e,n=0;return t=t.split("."),t[1]&&(n=t[1].length),n=n>10?10:n}function u(e){var t,n;return e=parseFloat(e,10),t=d(e),n=T.pow(10,t||0),T.round(e*n)/n}function c(e,n){var i=k(e.getAttribute(n));return null===i&&(i=t),i}function p(e){return typeof e!==Q}function f(e){return 1e4*e}var h,m=window.kendo,g=m.ui.Widget,v=m.ui.Draggable,_=m._outerWidth,b=m._outerHeight,y=e.extend,w=m.format,k=m.parseFloat,x=e.proxy,C=e.isArray,T=Math,S=m.support,F=S.pointers,D=S.msPointers,I="change",z="slide",E=".slider",A="touchstart"+E+" mousedown"+E,N=F?"pointerdown"+E:D?"MSPointerDown"+E:A,R="touchend"+E+" mouseup"+E,H=F?"pointerup":D?"MSPointerUp"+E:R,P="moveSelection",M="keydown"+E,O="click"+E,B="mouseover"+E,L="focus"+E,V="blur"+E,U=".k-draghandle",W=".k-slider-track",j=".k-tick",q="k-state-selected",G="k-state-focused",$="k-state-default",Y="k-state-disabled",K="disabled",Q="undefined",X="tabindex",J=m.getTouches,Z=g.extend({init:function(e,t){var n,i=this;if(g.fn.init.call(i,e,t),t=i.options,i._isHorizontal="horizontal"==t.orientation,i._isRtl=i._isHorizontal&&m.support.isRtl(e),i._position=i._isHorizontal?"left":"bottom",i._sizeFn=i._isHorizontal?"width":"height",i._outerSize=i._isHorizontal?_:b,t.tooltip.format=t.tooltip.enabled?t.tooltip.format||"{0}":"{0}",t.smallStep<=0)throw Error("Kendo UI Slider smallStep must be a positive number.");i._createHtml(),i.wrapper=i.element.closest(".k-slider"),i._trackDiv=i.wrapper.find(W),i._setTrackDivWidth(),i._maxSelection=i._trackDiv[i._sizeFn](),i._sliderItemsInit(),i._reset(),i._tabindex(i.wrapper.find(U)),i[t.enabled?"enable":"disable"](),n=m.support.isRtl(i.wrapper)?-1:1,i._keyMap={37:a(-1*n*t.smallStep),40:a(-t.smallStep),39:a(1*n*t.smallStep),38:a(+t.smallStep),35:s(t.max),36:s(t.min),33:a(+t.largeStep),34:a(-t.largeStep)},m.notify(i)},events:[I,z],options:{enabled:!0,min:0,max:10,smallStep:1,largeStep:5,orientation:"horizontal",tickPlacement:"both",tooltip:{enabled:!0,format:"{0}"}},_distance:function(){return u(this.options.max-this.options.min)},_resize:function(){this._setTrackDivWidth(),this.wrapper.find(".k-slider-items").remove(),this._maxSelection=this._trackDiv[this._sizeFn](),this._sliderItemsInit(),this._refresh(),this.options.enabled&&this.enable(!0)},_sliderItemsInit:function(){var t=this,n=t.options,i=t._maxSelection/((n.max-n.min)/n.smallStep),r=t._calculateItemsWidth(T.floor(f(t._distance())/f(n.smallStep)));"none"!=n.tickPlacement&&i>=2&&(e(this.element).parent().find(".k-slider-items").remove(),t._trackDiv.before(o(n,t._distance())),t._setItemsWidth(r),t._setItemsTitle()),t._calculateSteps(r),"none"!=n.tickPlacement&&i>=2&&n.largeStep>=n.smallStep&&t._setItemsLargeTick()},getSize:function(){return m.dimensions(this.wrapper)},_setTrackDivWidth:function(){var e=this,t=2*parseFloat(e._trackDiv.css(e._isRtl?"right":e._position),10);e._trackDiv[e._sizeFn](e.wrapper[e._sizeFn]()-2-t)},_setItemsWidth:function(t){var n,i=this,o=i.options,r=0,a=t.length-1,s=i.wrapper.find(j),l=0,d=2,u=s.length,c=0;for(n=0;n=3)for(o._isHorizontal||o._isRtl||(a=e.makeArray(a).reverse()),s=0;s"+t.attr("title")+""),0!==s&&s!==a.length-1&&t.css("line-height",t[o._sizeFn]()+"px"))},_calculateItemsWidth:function(e){var t,n,i,o=this,r=o.options,a=parseFloat(o._trackDiv.css(o._sizeFn))+1,s=o._distance(),l=f(s)/f(r.smallStep),d=a/f(s);for(l-e>0&&(a-=f(s)%f(r.smallStep)*d),t=a/e,n=[],i=0;i=i.min&&e<=i.max&&i.value!=e&&(n.element.prop("value",l(e)),i.value=e,n._refreshAriaAttr(e),n._refresh()),t)},_refresh:function(){this.trigger(P,{value:this.options.value})},_refreshAriaAttr:function(e){var t,n=this,i=n._drag;t=i&&i._tooltipDiv?i._tooltipDiv.text():n._getFormattedValue(e,null),this.wrapper.find(U).attr("aria-valuenow",e).attr("aria-valuetext",t)},_clearTimer:function(){clearTimeout(this.timeout),clearInterval(this.timer)},_keydown:function(e){var t=this;e.keyCode in t._keyMap&&(t._clearTooltipTimeout(),t._setValueInRange(t._keyMap[e.keyCode](t.options.value)),t._drag._updateTooltip(t.value()),e.preventDefault())},_setValueInRange:function(e){var n=this,i=n.options;return e=u(e),isNaN(e)?(n._update(i.min),t):(e=T.max(T.min(e,i.max),i.min),n._update(e),t)},_nextValueByIndex:function(e){var t=this._values.length;return this._isRtl&&(e=t-1-e),this._values[T.max(0,T.min(e,t-1))]},_formResetHandler:function(){var e=this,t=e.options.min;setTimeout(function(){var n=e.element[0].value;e.value(""===n||isNaN(n)?t:n)})},destroy:function(){var e=this;Z.fn.destroy.call(e),e.wrapper.off(E).find(".k-button").off(E).end().find(U).off(E).end().find(j+", "+W).off(E).end(),e._drag.draggable.destroy(),e._drag._removeTooltip(!0)}});ee.Selection=function(e,t,n){function i(i){var o=i-n.min,r=t._valueIndex=T.ceil(u(o/n.smallStep)),a=parseInt(t._pixelSteps[r],10),s=t._trackDiv.find(".k-slider-selection"),l=parseInt(t._outerSize(e)/2,10),d=t._isRtl?2:0;s[t._sizeFn](t._isRtl?t._maxSelection-a:a),e.css(t._position,a-l-d)}i(n.value),t.bind([z,P],function(e){i(parseFloat(e.value,10))}),t.bind(I,function(e){i(parseFloat(e.sender.value(),10))})},ee.Drag=function(e,t,n,i){var o=this;o.owner=n,o.options=i,o.element=e,o.type=t,o.draggable=new v(e,{distance:0,dragstart:x(o._dragstart,o),drag:x(o.drag,o),dragend:x(o.dragend,o),dragcancel:x(o.dragcancel,o)}),e.click(!1),e.on("dragstart",function(e){e.preventDefault()})},ee.Drag.prototype={dragstart:function(e){this.owner._activeDragHandle=this,this.draggable.userEvents.cancel(),this._dragstart(e),this.dragend()},_dragstart:function(n){var i=this,o=i.owner,r=i.options;return r.enabled?(this.owner._activeDragHandle=this,o.element.off(B),o.wrapper.find("."+G).removeClass(G+" "+q),i.element.addClass(G+" "+q),e(document.documentElement).css("cursor","pointer"),i.dragableArea=o._getDraggableArea(),i.step=T.max(r.smallStep*(o._maxSelection/o._distance()),0),i.type?(i.selectionStart=r.selectionStart,i.selectionEnd=r.selectionEnd,o._setZIndex(i.type)):i.oldVal=i.val=r.value,i._removeTooltip(!0),i._createTooltip(),t):(n.preventDefault(),t)},_createTooltip:function(){var t,n,i=this,o=i.owner,r=i.options.tooltip,a="",s=e(window);r.enabled&&(r.template&&(t=i.tooltipTemplate=m.template(r.template)),e(".k-slider-tooltip").remove(),i.tooltipDiv=e("
        ").appendTo(document.body),a=o._getFormattedValue(i.val||o.value(),i),i.type||(n="k-callout-"+(o._isHorizontal?"s":"e"),i.tooltipInnerDiv="
        ",a+=i.tooltipInnerDiv),i.tooltipDiv.html(a),i._scrollOffset={top:s.scrollTop(),left:s.scrollLeft()},i.moveTooltip())},drag:function(e){var t,n=this,i=n.owner,o=e.x.location,r=e.y.location,a=n.dragableArea.startPoint,s=n.dragableArea.endPoint;e.preventDefault(),n.val=i._isHorizontal?i._isRtl?n.constrainValue(o,a,s,o=s):n.constrainValue(r,s,a,r<=s),n.oldVal!=n.val&&(n.oldVal=n.val,n.type?("firstHandle"==n.type?n.selectionStart=n.valn.selectionStart?n.selectionEnd=n.val:n.selectionStart=n.selectionEnd=n.val,t={values:[n.selectionStart,n.selectionEnd],value:[n.selectionStart,n.selectionEnd]}):t={value:n.val},i.trigger(z,t)),n._updateTooltip(n.val)},_updateTooltip:function(e){var t=this,n=t.options,i=n.tooltip,o="";i.enabled&&(t.tooltipDiv||t._createTooltip(),o=t.owner._getFormattedValue(u(e),t),t.type||(o+=t.tooltipInnerDiv),t.tooltipDiv.html(o),t.moveTooltip())},dragcancel:function(){return this.owner._refresh(),e(document.documentElement).css("cursor",""),this._end()},dragend:function(){var t=this,n=t.owner;return e(document.documentElement).css("cursor",""),t.type?n._update(t.selectionStart,t.selectionEnd):(n._update(t.val),t.draggable.userEvents._disposeAll()),t.draggable.userEvents.cancel(),t._end()},_end:function(){var e=this,t=e.owner;return t._focusWithMouse(e.element),t.element.on(B),!1},_removeTooltip:function(t){var n=this,i=n.owner;n.tooltipDiv&&i.options.tooltip.enabled&&i.options.enabled&&(t?(n.tooltipDiv.remove(),n.tooltipDiv=null):n.tooltipDiv.fadeOut("slow",function(){e(this).remove(),n.tooltipDiv=null}))},moveTooltip:function(){var t,n,i,o,r=this,a=r.owner,s=0,l=0,d=r.element,u=m.getOffset(d),c=8,p=e(window),f=r.tooltipDiv.find(".k-callout"),h=_(r.tooltipDiv),g=b(r.tooltipDiv);r.type?(t=a.wrapper.find(U),u=m.getOffset(t.eq(0)),n=m.getOffset(t.eq(1)),a._isHorizontal?(s=n.top,l=u.left+(n.left-u.left)/2):(s=u.top+(n.top-u.top)/2,l=n.left),o=_(t.eq(0))+2*c):(s=u.top,l=u.left,o=_(d)+2*c),a._isHorizontal?(l-=parseInt((h-a._outerSize(d))/2,10),s-=g+c+(f.length?f.height():0)):(s-=parseInt((g-a._outerSize(d))/2,10),l-=h+c+(f.length?f.width():0)),a._isHorizontal?(i=r._flip(s,g,o,b(p)+r._scrollOffset.top),s+=i,l+=r._fit(l,h,_(p)+r._scrollOffset.left)):(i=r._flip(l,h,o,_(p)+r._scrollOffset.left),s+=r._fit(s,g,b(p)+r._scrollOffset.top),l+=i),i>0&&f&&(f.removeClass(),f.addClass("k-callout k-callout-"+(a._isHorizontal?"n":"w"))),r.tooltipDiv.css({top:s,left:l})},_fit:function(e,t,n){var i=0;return e+t>n&&(i=n-(e+t)),e<0&&(i=-e),i},_flip:function(e,t,n,i){var o=0;return e+t>i&&(o+=-(n+t)),e+o<0&&(o+=n+t),o},constrainValue:function(e,t,n,i){var o=this,r=0;return r=to.selectionEnd?(d=r.selectionStart,u=s,c=o._lastHandleDrag):s-r.selectionStart<=r.selectionEnd-s?(d=s,u=r.selectionEnd,c=o._firstHandleDrag):(d=r.selectionStart,u=s,c=o._lastHandleDrag),c.dragstart(n),o._setValueInRange(d,u),o._focusWithMouse(c.element)}},o.wrapper.find(j+", "+W).on(N,i).end().on(N,function(){e(document.documentElement).one("selectstart",m.preventDefault)}).on(H,function(){o._activeDragHandle&&o._activeDragHandle._end()}),o.wrapper.find(U).attr(X,0).on(R,function(){o._setTooltipTimeout()}).on(O,function(e){o._focusWithMouse(e.target),e.preventDefault()}).on(L,x(o._focus,o)).on(V,x(o._blur,o)),o.wrapper.find(U).off(M,m.preventDefault).eq(0).on(M,x(function(e){this._keydown(e,"firstHandle")},o)).end().eq(1).on(M,x(function(e){this._keydown(e,"lastHandle")},o)),o.options.enabled=!0)},disable:function(){var e=this;e.wrapper.removeClass($).addClass(Y),e.wrapper.find("input").prop(K,K),e.wrapper.find(j+", "+W).off(N).off(H),e.wrapper.find(U).attr(X,-1).off(R).off(M).off(O).off(L).off(V),e.options.enabled=!1},_keydown:function(e,t){var n,i,o,r=this,a=r.options.selectionStart,s=r.options.selectionEnd;e.keyCode in r._keyMap&&(r._clearTooltipTimeout(),"firstHandle"==t?(o=r._activeHandleDrag=r._firstHandleDrag,a=r._keyMap[e.keyCode](a),a>s&&(s=a)):(o=r._activeHandleDrag=r._lastHandleDrag,s=r._keyMap[e.keyCode](s),a>s&&(a=s)),r._setValueInRange(u(a),u(s)),n=Math.max(a,r.options.selectionStart),i=Math.min(s,r.options.selectionEnd),o.selectionEnd=Math.max(i,r.options.selectionStart),o.selectionStart=Math.min(n,r.options.selectionEnd),o._updateTooltip(r.value()[r._activeHandle]),e.preventDefault())},_update:function(e,t){var n=this,i=n.value(),o=i[0]!=e||i[1]!=t;n.value([e,t]),o&&n.trigger(I,{values:[e,t],value:[e,t]})},value:function(e){return e&&e.length?this._value(e[0],e[1]):this._value()},_value:function(e,n){var i=this,o=i.options,r=o.selectionStart,a=o.selectionEnd;return isNaN(e)&&isNaN(n)?[r,a]:(e=u(e),n=u(n),e>=o.min&&e<=o.max&&n>=o.min&&n<=o.max&&e<=n&&(r==e&&a==n||(i.element.find("input").eq(0).prop("value",l(e)).end().eq(1).prop("value",l(n)),o.selectionStart=e,o.selectionEnd=n,i._refresh(),i._refreshAriaAttr(e,n))),t)},values:function(e,t){return C(e)?this._value(e[0],e[1]):this._value(e,t)},_refresh:function(){var e=this,t=e.options;e.trigger(P,{values:[t.selectionStart,t.selectionEnd],value:[t.selectionStart,t.selectionEnd]}),t.selectionStart==t.max&&t.selectionEnd==t.max&&e._setZIndex("firstHandle")},_refreshAriaAttr:function(e,t){var n,i=this,o=i.wrapper.find(U),r=i._activeHandleDrag;n=i._getFormattedValue([e,t],r),o.eq(0).attr("aria-valuenow",e),o.eq(1).attr("aria-valuenow",t),o.attr("aria-valuetext",n)},_setValueInRange:function(e,t){var n=this.options;e=T.max(T.min(e,n.max),n.min),t=T.max(T.min(t,n.max),n.min),e==n.max&&t==n.max&&this._setZIndex("firstHandle"),this._update(T.min(e,t),T.max(e,t))},_setZIndex:function(t){this.wrapper.find(U).each(function(n){e(this).css("z-index","firstHandle"==t?1-n:n)})},_formResetHandler:function(){var e=this,t=e.options;setTimeout(function(){var n=e.element.find("input"),i=n[0].value,o=n[1].value;e.values(""===i||isNaN(i)?t.min:i,""===o||isNaN(o)?t.max:o)})},destroy:function(){var e=this;Z.fn.destroy.call(e),e.wrapper.off(E).find(j+", "+W).off(E).end().find(U).off(E),e._firstHandleDrag.draggable.destroy(),e._lastHandleDrag.draggable.destroy()}}),h.Selection=function(e,t,n){function i(i){i=i||[];var r=i[0]-n.min,a=i[1]-n.min,s=T.ceil(u(r/n.smallStep)),l=T.ceil(u(a/n.smallStep)),d=t._pixelSteps[s],c=t._pixelSteps[l],p=parseInt(t._outerSize(e.eq(0))/2,10),f=t._isRtl?2:0;e.eq(0).css(t._position,d-p-f).end().eq(1).css(t._position,c-p-f),o(d,c)}function o(e,n){var i,o,r=t._trackDiv.find(".k-slider-selection");i=T.abs(e-n),r[t._sizeFn](i),t._isRtl?(o=T.max(e,n),r.css("right",t._maxSelection-o-1)):(o=T.min(e,n),r.css(t._position,o-1))}i(t.value()),t.bind([I,z,P],function(e){i(e.values)})},m.ui.plugin(h)}(window.kendo.jQuery),window.kendo},"function"==typeof define&&define.amd?define:function(e,t,n){(n||t)()}),function(e,define){define("kendo.badge.min",["kendo.core.min"],e)}(function(){return function(e,t){var n=window.kendo,i=n.ui.Widget,o=n.ui,r="k-hidden",a="",s="#= icon #",l=i.extend({init:function(e,t){var o=this;i.fn.init.call(o,e,t),o._deprecated(),o._content(),o._appearance(),n.notify(o)},destroy:function(){var e=this;i.fn.destroy.call(e)},options:{name:"Badge",badgeStyle:"solid",color:"secondary",cutoutBorder:!1,data:{},icon:"",max:1/0,placement:"edge",position:"inline",sizes:{small:"sm",medium:"",large:"lg"},size:"medium",shape:"rounded",template:null,text:"",visible:!0,_classNames:[]},_deprecated:function(){var e=this,n=e.options;""===n.text&&""!==n.value&&n.value!==t&&(n.text=n.value),"secondary"===n.color&&"string"==typeof n.type&&""!==n.type&&(n.color=n.type),"rounded"===n.shape&&"string"==typeof n.appearance&&""!==n.appearance&&(n.shape=n.appearance),"solid"===n.badgeStyle&&"string"==typeof n.look&&""!==n.look&&(n.badgeStyle=n.look),"inline"===n.position&&"boolean"==typeof n.overlay&&n.overlay===!0&&(n.position="top end")},_content:function(){var e=this,i=e.options.text,o=e.options.template,r=e.options.data,a=e.options.icon;return null!==o?(e._text=i,e._template=n.template(o).bind(e),e.element.html(e._template(r)),t):""!==a?(e.icon(a),t):""!==i?(e.text(i),t):(e.text(e.element.html()),t)},_appearance:function(){var e=this;e._color=e.options.color,e._shape=e.options.shape,e._sizes=e.options.sizes,e._size=e.options.size,e._badgeStyle=e.options.badgeStyle,e._cutoutBorder=e.options.cutoutBorder,e._placement=e.options.placement,e._position=e.options.position,e._visible=e.options.visible,e._updateClassNames()},_updateClassNames:function(){var e,n=this,i=["k-badge"],o=n.options._classNames,a=n._color,s=n._shape,l=n._sizes,d=n._size,u=l[d]===t?d:l[d],c="",p=n._badgeStyle,f="",h=this._cutoutBorder,m=n._placement,g="",v=this._position.toLowerCase(),_=n._visible;n.element.removeClass(function(e,t){0===t.indexOf("k-")&&o.indexOf(t)===-1&&n.element.removeClass(t)}),"string"==typeof p&&""!==p&&"solid"!==p&&(i.push("k-badge-"+p), +f=p+"-"),"string"==typeof a&&""!==a&&"inherit"!==a&&i.push("k-badge-"+f+a),"string"==typeof d&&""!==d&&"medium"!==d&&""!==u&&(i.push("k-badge-"+u),c="-"+u),"string"==typeof s&&""!==s&&"rectangle"!==s&&(i.push("k-badge-"+s),""!==c&&i.push("k-badge-"+s+c)),"boolean"==typeof h&&h===!0&&i.push("k-badge-border-cutout"),"string"==typeof m&&""!==m&&"edge"!==m&&(g=m+"-"),"string"==typeof v&&2==v.split(" ").length&&(e=v.split(" "),i.push("k-badge-"+g+e[0]+"-"+e[1])),_===!1&&i.push(r),n.element.addClass(i.join(" "))},setOptions:function(e){var t=this;t.element.removeClass(function(e,n){n.indexOf("k-")>=0&&t.element.removeClass(n)}),i.fn.setOptions.call(t,e),t._deprecated(),t._content(),t._appearance()},text:function(e){var n=this,i=n.options.max;return 0===arguments.length||e===t?n._text:(n._text=e,e===!0||e===!1||null===e?(n.element.html(""),t):"string"==typeof e?(n.element.html(e),t):"number"==typeof e?(n.element.html(e>i?i+"+":e),t):"object"==typeof e&&"toString"in e?(n.element.html(""+e),t):t)},icon:function(e){var i,o=this;return 0===arguments.length||e===t?o._icon:(o._icon=e,0===e.indexOf("0)&&(o=!1)}),a.addClass(o?f:h)),c?(n=a.children("img.k-image").first(),n[0]||(n=e('icon').prependTo(a)),n.attr("src",c)):l||d?(t=a.children("span.k-icon").first(),t[0]||(t=e("").prependTo(a)),t.attr("class",l?"k-icon k-i-"+l:d)):u&&(t=a.children("span.k-sprite").first(),t[0]||(t=e('').prependTo(a)),t.addClass(u))},enable:function(e){var n=this,i=n.element;e===t&&(e=!0),e=!!e,n.options.enable=e,i.toggleClass(v,!e).attr("aria-disabled",!e).attr(g,!e),e&&n._tabindex();try{i.blur()}catch(o){}},_badge:function(){var n,i=this,o=i.options.badge;null!==o&&o!==t&&(o.constructor!==Object&&(o={text:o}),o.position!==t&&""!==o.position||(o.position="top end"),o._classNames=["k-button-badge"],i.element.addClass("k-badge-container"),n=e("").appendTo(i.element),i.badge=new r.Badge(n,o))}}),n.fn.hasOwnProperty("defaults")===!1&&Object.defineProperty(n.fn,"defaults",{get:function(){return i.defaults.button}}),i.ui.plugin(n)}(window.kendo.jQuery),window.kendo},"function"==typeof define&&define.amd?define:function(e,t,n){(n||t)()}),function(e,define){define("kendo.colorpicker.min",["kendo.core.min","kendo.color.min","kendo.popup.min","kendo.slider.min","kendo.userevents.min","kendo.button.min"],e)}(function(){return function(e,t,n){function i(e,t,n){n=u(n),n&&!n.equals(e.color())&&("change"==t&&(e._value=n),n=1!=n.a?n.toCssRgba():n.toCss(),e.trigger(t,{value:n}))}function o(e,t,n){var i,o;return e=Array.prototype.slice.call(e),i=e.length,o=e.indexOf(t),o<0?n<0?e[i-1]:e[0]:(o+=n,o<0?o+=i:o%=i,e[o])}function r(e){e.preventDefault()}function a(e,t){return function(){return e.apply(t,arguments)}}var s=window.kendo,l=s.ui,d=l.Widget,u=s.parseColor,c=s.Color,p=s.keys,f="background-color",h="k-state-selected",m="000000,7f7f7f,880015,ed1c24,ff7f27,fff200,22b14c,00a2e8,3f48cc,a349a4,ffffff,c3c3c3,b97a57,ffaec9,ffc90e,efe4b0,b5e61d,99d9ea,7092be,c8bfe7",g="FFFFFF,FFCCFF,FF99FF,FF66FF,FF33FF,FF00FF,CCFFFF,CCCCFF,CC99FF,CC66FF,CC33FF,CC00FF,99FFFF,99CCFF,9999FF,9966FF,9933FF,9900FF,FFFFCC,FFCCCC,FF99CC,FF66CC,FF33CC,FF00CC,CCFFCC,CCCCCC,CC99CC,CC66CC,CC33CC,CC00CC,99FFCC,99CCCC,9999CC,9966CC,9933CC,9900CC,FFFF99,FFCC99,FF9999,FF6699,FF3399,FF0099,CCFF99,CCCC99,CC9999,CC6699,CC3399,CC0099,99FF99,99CC99,999999,996699,993399,990099,FFFF66,FFCC66,FF9966,FF6666,FF3366,FF0066,CCFF66,CCCC66,CC9966,CC6666,CC3366,CC0066,99FF66,99CC66,999966,996666,993366,990066,FFFF33,FFCC33,FF9933,FF6633,FF3333,FF0033,CCFF33,CCCC33,CC9933,CC6633,CC3333,CC0033,99FF33,99CC33,999933,996633,993333,990033,FFFF00,FFCC00,FF9900,FF6600,FF3300,FF0000,CCFF00,CCCC00,CC9900,CC6600,CC3300,CC0000,99FF00,99CC00,999900,996600,993300,990000,66FFFF,66CCFF,6699FF,6666FF,6633FF,6600FF,33FFFF,33CCFF,3399FF,3366FF,3333FF,3300FF,00FFFF,00CCFF,0099FF,0066FF,0033FF,0000FF,66FFCC,66CCCC,6699CC,6666CC,6633CC,6600CC,33FFCC,33CCCC,3399CC,3366CC,3333CC,3300CC,00FFCC,00CCCC,0099CC,0066CC,0033CC,0000CC,66FF99,66CC99,669999,666699,663399,660099,33FF99,33CC99,339999,336699,333399,330099,00FF99,00CC99,009999,006699,003399,000099,66FF66,66CC66,669966,666666,663366,660066,33FF66,33CC66,339966,336666,333366,330066,00FF66,00CC66,009966,006666,003366,000066,66FF33,66CC33,669933,666633,663333,660033,33FF33,33CC33,339933,336633,333333,330033,00FF33,00CC33,009933,006633,003333,000033,66FF00,66CC00,669900,666600,663300,660000,33FF00,33CC00,339900,336600,333300,330000,00FF00,00CC00,009900,006600,003300,000000",v="#ffffff",_={apply:"Apply",cancel:"Cancel",noColor:"no color",clearColor:"Clear color",previewInput:"Color Hexadecimal Code"},b=".kendoColorTools",y="click"+b,w="keydown"+b,k="k-state-disabled",x=s.support.browser,C=x.msie&&x.version<9,T=d.extend({init:function(e,t){var n,i=this;d.fn.init.call(i,e,t),e=i.element,t=i.options,i._value=t.value=u(t.value),i._tabIndex=e.attr("tabIndex")||0,n=i._ariaId=t.ariaId,n&&e.attr("aria-labelledby",n),t._standalone&&(i._triggerSelect=i._triggerChange)},options:{name:"ColorSelector",value:null,_standalone:!0},events:["change","select","cancel"],color:function(e){return e!==n&&(this._value=u(e),this._updateUI(this._value)),this._value},value:function(e){return e=this.color(e),e&&(e=this.options.opacity?e.toCssRgba():e.toCss()),e||null},enable:function(e){0===arguments.length&&(e=!0),this.wrapper.toggleClass(k,!e),this._onEnable(e)},_select:function(e,t){var n=this._value;e=this.color(e),t||(this.element.trigger("change"),e.equals(n)?this._standalone||this.trigger("cancel"):this.trigger("change",{value:this.value()}))},_triggerSelect:function(e){i(this,"select",e)},_triggerChange:function(e){i(this,"change",e)},destroy:function(){this.element&&this.element.off(b),this.wrapper&&this.wrapper.off(b).find("*").off(b),this.wrapper=null,d.fn.destroy.call(this)},_updateUI:e.noop,_selectOnHide:function(){return null},_cancel:function(){this.trigger("cancel")}}),S=T.extend({init:function(t,n){var i,o,r,l,d=this;if(T.fn.init.call(d,t,n),t=d.wrapper=d.element,n=d.options,i=n.palette,"websafe"==i?(i=g,n.columns=18):"basic"==i&&(i=m),"string"==typeof i&&(i=i.split(",")),e.isArray(i)&&(i=e.map(i,function(e){return u(e)})),d._selectedID=(n.ariaId||s.guid())+"_selected",t.addClass("k-widget k-colorpalette").attr("role","grid").attr("aria-readonly","true").append(e(d._template({colors:i,columns:n.columns,tileSize:n.tileSize,value:d._value,id:n.ariaId}))).on(y,".k-item",function(t){d._select(e(t.currentTarget).css(f))}).attr("tabIndex",d._tabIndex).on(w,a(d._keydown,d)),o=n.tileSize){if(/number|string/.test(typeof o))r=l=parseFloat(o);else{if("object"!=typeof o)throw Error("Unsupported value for the 'tileSize' argument");r=parseFloat(o.width),l=parseFloat(o.height)}t.find(".k-item").css({width:r,height:l})}},focus:function(){this.wrapper&&!this.wrapper.is("[unselectable='on']")&&this.wrapper.focus()},options:{name:"ColorPalette",columns:10,tileSize:null,palette:"basic"},_onEnable:function(e){e?this.wrapper.attr("tabIndex",this._tabIndex):this.wrapper.removeAttr("tabIndex")},_keydown:function(t){var n,i,a=this.wrapper,s=a.find(".k-item"),l=s.filter("."+h).get(0),d=t.keyCode;if(d==p.LEFT?n=o(s,l,-1):d==p.RIGHT?n=o(s,l,1):d==p.DOWN?n=o(s,l,this.options.columns):d==p.UP?n=o(s,l,-this.options.columns):d==p.ENTER?(r(t),l&&this._select(e(l).css(f))):d==p.ESC&&this._cancel(),n){r(t),this._current(n);try{i=u(n.css(f)),this._triggerSelect(i)}catch(c){}}},_current:function(t){this.wrapper.find("."+h).removeClass(h).attr("aria-selected",!1).removeAttr("id"),e(t).addClass(h).attr("aria-selected",!0).attr("id",this._selectedID),this.element.removeAttr("aria-activedescendant").attr("aria-activedescendant",this._selectedID)},_updateUI:function(t){var n=null;this.wrapper.find(".k-item").each(function(){var i=u(e(this).css(f));if(i&&i.equals(t))return n=this,!1}),this._current(n)},_template:s.template('# for (var i = 0; i < colors.length; ++i) { ## var selected = colors[i].equals(value); ## if (i && i % columns == 0) { # # } ## } #')}),F=T.extend({init:function(t,n){var i=this;T.fn.init.call(i,t,n),n=i.options,n.messages=n.options?e.extend(i.options.messages,n.options.messages):i.options.messages,t=i.element,i.wrapper=t.addClass("k-widget k-flatcolorpicker").append(i._template(n)),i._hueElements=e(".k-hsv-rectangle, .k-alpha-slider .k-slider-track",t),i._selectedColor=e(".k-selected-color-display",t),i._colorAsText=e("input.k-color-value",t),i._sliders(),i._hsvArea(),i._updateUI(i._value||u("#f00")),t.find("input.k-color-value").on(w,function(t){var n,o,r=this;if(t.keyCode==p.ENTER)try{n=u(r.value),o=i.color(),i._select(n,n.equals(o))}catch(a){e(r).addClass("k-state-error")}else i.options.autoupdate&&setTimeout(function(){var e=u(r.value,!0);e&&i._updateUI(e,!0)},10)}).end().on(y,".k-controls button.apply",function(){i.options._clearedColor?i.trigger("change"):i._select(i._getHSV())}).on(y,".k-controls button.cancel",function(){i._updateUI(i.color()),i._cancel()}),C&&i._applyIEFilter()},destroy:function(){this._hsvEvents.destroy(),this._hueSlider.destroy(),this._opacitySlider&&this._opacitySlider.destroy(),this._hueSlider=this._opacitySlider=this._hsvRect=this._hsvHandle=this._hueElements=this._selectedColor=this._colorAsText=null,T.fn.destroy.call(this)},options:{name:"FlatColorPicker",opacity:!1,buttons:!1,input:!0,preview:!0,clearButton:!1,autoupdate:!0,messages:_},_applyIEFilter:function(){var e=this.element.find(".k-hue-slider .k-slider-track")[0],t=e.currentStyle.backgroundImage;t=t.replace(/^url\([\'\"]?|[\'\"]?\)$/g,""),e.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+t+"', sizingMethod='scale')"},_sliders:function(){function e(e){n._updateUI(n._getHSV(e.value,null,null,null))}function t(e){n._updateUI(n._getHSV(null,null,null,e.value/100))}var n=this,i=n.element,o=i.find(".k-hue-slider"),r=i.find(".k-alpha-slider");o.attr("aria-label","hue saturation"),n._hueSlider=o.kendoSlider({min:0,max:360,tickPlacement:"none",showButtons:!1,slide:e,change:e}).data("kendoSlider"),r.attr("aria-label","opacity"),n._opacitySlider=r.kendoSlider({min:0,max:100,tickPlacement:"none",showButtons:!1,slide:t,change:t}).data("kendoSlider")},_hsvArea:function(){function e(e,n){var i=this.offset,o=e-i.left,r=n-i.top,a=this.width,s=this.height;o=o<0?0:o>a?a:o,r=r<0?0:r>s?s:r,t._svChange(o/a,1-r/s)}var t=this,n=t.element,i=n.find(".k-hsv-rectangle"),o=i.find(".k-draghandle").attr("tabIndex",0).on(w,a(t._keydown,t));t._hsvEvents=new s.UserEvents(i,{global:!0,press:function(t){this.offset=s.getOffset(i),this.width=i.width(),this.height=i.height(),o.focus(),e.call(this,t.x.location,t.y.location)},start:function(){i.addClass("k-dragging"),o.focus()},move:function(t){t.preventDefault(),e.call(this,t.x.location,t.y.location)},end:function(){i.removeClass("k-dragging")}}),t._hsvRect=i,t._hsvHandle=o},_onEnable:function(e){this._hueSlider.enable(e),this._opacitySlider&&this._opacitySlider.enable(e),this.wrapper.find("input").attr("disabled",!e);var t=this._hsvRect.find(".k-draghandle");e?t.attr("tabIndex",this._tabIndex):t.removeAttr("tabIndex")},_keydown:function(e){function t(t,n){var o=i._getHSV();o[t]+=n*(e.shiftKey?.01:.05),o[t]<0&&(o[t]=0),o[t]>1&&(o[t]=1),i._updateUI(o),r(e)}function n(t){var n=i._getHSV();n.h+=t*(e.shiftKey?1:5),n.h<0&&(n.h=0),n.h>359&&(n.h=359),i._updateUI(n),r(e)}var i=this;switch(e.keyCode){case p.LEFT:e.ctrlKey?n(-1):t("s",-1);break;case p.RIGHT:e.ctrlKey?n(1):t("s",1);break;case p.UP:t(e.ctrlKey&&i._opacitySlider?"a":"v",1);break;case p.DOWN:t(e.ctrlKey&&i._opacitySlider?"a":"v",-1);break;case p.ENTER:i._select(i._getHSV());break;case p.F2:i.wrapper.find("input.k-color-value").focus().select();break;case p.ESC:i._cancel()}},focus:function(){this._hsvHandle.focus()},_getHSV:function(e,t,n,i){var o=this._hsvRect,r=o.width(),a=o.height(),s=this._hsvHandle.position();return null==e&&(e=this._hueSlider.value()),null==t&&(t=s.left/r),null==n&&(n=1-s.top/a),null==i&&(i=this._opacitySlider?this._opacitySlider.value()/100:1),c.fromHSV(e,t,n,i)},_svChange:function(e,t){var n=this._getHSV(null,e,t,null);this._updateUI(n)},_updateUI:function(e,t){var n=this,i=n._hsvRect;e&&(this._colorAsText.attr("title",n.options.messages.previewInput),this._colorAsText.removeClass("k-state-error"),n._selectedColor.css(f,e.toDisplay()),t||n._colorAsText.val(n._opacitySlider?e.toCssRgba():e.toCss()),n._triggerSelect(e),e=e.toHSV(),n._hsvHandle.css({left:e.s*i.width()+"px",top:(1-e.v)*i.height()+"px"}),n._hueElements.css(f,c.fromHSV(e.h,1,1,1).toCss()),n._hueSlider.value(e.h),n._opacitySlider&&n._opacitySlider.value(100*e.a))},_selectOnHide:function(){return this.options.buttons?null:this._getHSV()},_template:s.template('# if (preview) { #
        # if (clearButton && !_standalone) { ## } #
        # } ## if (clearButton && !_standalone && !preview) { #
        #: messages.clearColor #
        # } #
        # if (opacity) { ## } #
        # if (buttons) { #
        # } #')}),D=d.extend({init:function(t,n){var i,o,r,a,s,l=this;d.fn.init.call(l,t,n),n=l.options,t=l.element,i=t.attr("value")||t.val(),i=i?u(i,!0):u(n.value,!0),l._value=n.value=i,o=l.wrapper=e(l._template(n)),t.hide().after(o),l._inputWrapper=e(l.wrapper[0].firstChild),t.is("input")&&(t.appendTo(o),r=t.closest("label"),a=t.attr("id"),a&&(r=r.add('label[for="'+a+'"]')),r.click(function(e){l.open(),e.preventDefault()})),l._tabIndex=t.attr("tabIndex")||0,l.enable(!t.attr("disabled")),s=t.attr("accesskey"),s&&(t.attr("accesskey",null),o.attr("accesskey",s)),l.bind("activate",function(e){e.isDefaultPrevented()||l.toggle()}),l._updateUI(i)},destroy:function(){this.wrapper.off(b).find("*").off(b),this._popup&&(this._selector.destroy(),this._popup.destroy()),this._selector=this._popup=this.wrapper=null,d.fn.destroy.call(this)},enable:function(e){var t=this,n=t.wrapper,i=n.children(".k-picker-wrap"),o=i.find(".k-select");0===arguments.length&&(e=!0),t.element.attr("disabled",!e),n.attr("aria-disabled",!e),o.off(b).on("mousedown"+b,r),n.addClass("k-state-disabled").removeAttr("tabIndex").add("*",n).off(b),e?n.removeClass("k-state-disabled").attr("tabIndex",t._tabIndex).on("mouseenter"+b,function(){i.addClass("k-state-hover")}).on("mouseleave"+b,function(){i.removeClass("k-state-hover")}).on("focus"+b,function(){i.addClass("k-state-focused")}).on("blur"+b,function(){i.removeClass("k-state-focused")}).on(w,a(t._keydown,t)).on(y,".k-select",a(t.toggle,t)).on(y,t.options.toolIcon?".k-tool-icon":".k-selected-color",function(){t.trigger("activate")}):t.close()},_template:s.template('# if (toolIcon) { ## } else { ## } #'),options:{name:"ColorPicker",palette:null,columns:10,toolIcon:null,value:null,messages:_,opacity:!1,buttons:!0,preview:!0,clearButton:!1,ARIATemplate:'Current selected color is #=data || ""#'},events:["activate","change","select","open","close"],open:function(){this.element.prop("disabled")||this._getPopup().open()},close:function(){var e=this._selector&&this._selector.options||{};e._closing=!0,this._getPopup().close(),delete e._closing},toggle:function(){this.element.prop("disabled")||this._getPopup().toggle()},_noColorIcon:function(){return this.wrapper.find(".k-picker-wrap > .k-selected-color > .k-icon.k-i-line")},color:T.fn.color,value:T.fn.value,_select:T.fn._select,_triggerSelect:T.fn._triggerSelect,_isInputTypeColor:function(){var e=this.element[0];return/^input$/i.test(e.tagName)&&/^color$/i.test(e.type)},_updateUI:function(e){var t="";e&&(t=this._isInputTypeColor()||1==e.a?e.toCss():e.toCssRgba(),this.element.val(t)),this._ariaTemplate||(this._ariaTemplate=s.template(this.options.ARIATemplate)),this.wrapper.attr("aria-label",this._ariaTemplate(t)),this._triggerSelect(e),this.wrapper.find(".k-selected-color").css(f,e?e.toDisplay():v),this._noColorIcon()[t?"hide":"show"]()},_keydown:function(e){var t=e.keyCode;this._getPopup().visible()?(t==p.ESC?this._selector._cancel():this._selector._keydown(e),r(e)):t!=p.ENTER&&t!=p.DOWN||(this.open(),r(e))},_getPopup:function(){var t,i,o,r,a=this,l=a._popup;return l||(t=a.options,i=t.palette?S:F,t._standalone=!1,delete t.select,delete t.change,delete t.cancel,o=s.guid(),r=a._selector=new i(e('
        ').appendTo(document.body),t),a.wrapper.attr("aria-owns",o),a._popup=l=r.wrapper.kendoPopup({anchor:a.wrapper,adjustSize:{width:5,height:0}}).data("kendoPopup"),r.element.find(".k-clear-color").kendoButton({icon:"reset-color",click:function(e){r.options._clearedColor=!0,a.value(null),a.element.val(null),a._updateUI(null),r._colorAsText.val(""),r._hsvHandle.css({top:"0px",left:"0px"}),r._selectedColor.css(f,v),a.trigger("change",{value:a.value()}),e.preventDefault()}}),r.bind({select:function(e){a._updateUI(u(e.value)),delete r.options._clearedColor},change:function(){r.options._clearedColor||a._select(r.color()),a.close()},cancel:function(){r.options._clearedColor&&!a.value()&&r.value()&&a._select(r.color(),!0),a.close()}}),l.bind({close:function(e){var t,i,o,s;return a.trigger("close")?(e.preventDefault(),n):(a.wrapper.children(".k-picker-wrap").removeClass("k-state-focused"),t=r._selectOnHide(),i=r.value(),o=a.value(),s=r.options,t?s._clearedColor&&!o||a._select(t):(setTimeout(function(){a.wrapper&&!a.wrapper.is("[unselectable='on']")&&a.wrapper.focus()}),!s._closing&&s._clearedColor&&!o&&i?a._select(i,!0):a._updateUI(a.color())),n)},open:function(e){a.trigger("open")?e.preventDefault():a.wrapper.children(".k-picker-wrap").addClass("k-state-focused")},activate:function(){r._select(a.color(),!0),r.focus(),a.wrapper.children(".k-picker-wrap").addClass("k-state-focused")}})),l}});l.plugin(S),l.plugin(F),l.plugin(D)}(jQuery,parseInt),window.kendo},"function"==typeof define&&define.amd?define:function(e,t,n){(n||t)()}),function(e,define){define("kendo.selectable.min",["kendo.core.min","kendo.userevents.min"],e)}(function(){return function(e,t){function n(e,t){if(!e.is(":visible"))return!1;var n=o.getOffset(e),i=t.left+t.width,r=t.top+t.height;return n.right=n.left+o._outerWidth(e),n.bottom=n.top+o._outerHeight(e),!(n.left>i||n.rightr||n.bottomspan,.k-button>img,span.k-icon.k-i-arrow-60-down,span.k-icon.k-i-arrow-60-up,label.k-checkbox-label.k-no-text,.k-icon.k-i-collapse,.k-icon.k-i-expand,span.k-numeric-wrap,.k-focusable",v=o.support.browser.msie,_=!1;!function(e){!function(){e('
        ').on("click",">*",function(){_=!0}).find("span").trigger("click").end().off()}()}(e),i=r.extend({init:function(t,n){var i,s=this;r.fn.init.call(s,t,n),s._marquee=e("
        "),s._lastActive=null,s.element.addClass(c),s.relatedTarget=s.options.relatedTarget,i=s.options.multiple,this.options.aria&&i&&s.element.attr("aria-multiselectable",!0),s.userEvents=new o.UserEvents(s.element,{global:!0,allowSelection:!0,filter:(_?"":"."+c+" ")+s.options.filter,tap:a(s._tap,s),touchAction:i?"none":"pan-x pan-y"}),i&&s.userEvents.bind("start",a(s._start,s)).bind("move",a(s._move,s)).bind("end",a(s._end,s)).bind("select",a(s._select,s))},events:[p,h],options:{name:"Selectable",filter:">*",inputSelectors:g,multiple:!1,relatedTarget:e.noop},_isElement:function(e){var t,n=this.element,i=n.length,o=!1;for(e=e[0],t=0;te.x.location?e.x.location:e.x.startLocation,top:e.y.startLocation>e.y.location?e.y.location:e.y.startLocation,width:s(e.x.initialDelta),height:s(e.y.initialDelta)};t._marquee.css(n),t._invalidateSelectables(n,e.event.ctrlKey||e.event.metaKey),e.preventDefault()},_end:function(e){var t,n=this;n._marquee.remove(),n._unselect(n.element.find(n.options.filter+"."+m)).removeClass(m),t=n.element.find(n.options.filter+"."+u),t=t.add(n.relatedTarget(t)),n.value(t,e),n._lastActive=n._downTarget,n._items=null},_invalidateSelectables:function(e,t){var i,o,r,a,s=this._downTarget[0],l=this._items;for(i=0,o=l.length;i0?e[0]:t.element.find(t.options.filter)[0])},_selectElement:function(t,n){var i=e(t),o=!n&&this._notify("select",{element:t});i.removeClass(u),o||(i.addClass(d),this.options.aria&&i.attr(l,!0))},_notify:function(e,t){return t=t||{},this.trigger(e,t)},_unselect:function(e){if(!this.trigger(h,{element:e}))return e.removeClass(d),this.options.aria&&e.attr(l,!1),e},_select:function(t){this._allowSelection(t.event.target)&&(!v||v&&!e(o._activeElement()).is(this.options.inputSelectors))&&t.preventDefault()},_allowSelection:function(t){return!e(t).is(this.options.inputSelectors)||(this.userEvents.cancel(),this._downTarget=null,!1)},resetTouchEvents:function(){this.userEvents.cancel()},clear:function(){var e=this.element.find(this.options.filter+"."+d);this._unselect(e)},selectRange:function(t,n,i){var o,r,a,s=this;for(s.clear(),s.element.length>1&&(a=s.options.continuousItems()),a&&a.length||(a=s.element.find(s.options.filter)),t=e.inArray(e(t)[0],a),n=e.inArray(e(n)[0],a),t>n&&(r=t,t=n,n=r),s.options.useAllItems||(n+=s.element.length-1),o=t;o<=n;o++)s._selectElement(a[o]);s._notify(p,i)},destroy:function(){var e=this;r.fn.destroy.call(e),e.element.off(f),e.userEvents.destroy(),e._marquee=e._lastActive=e.element=e.userEvents=null}}),i.parseOptions=function(e){var t="string"==typeof e&&e.toLowerCase();return{multiple:t&&t.indexOf("multiple")>-1,cell:t&&t.indexOf("cell")>-1}},o.ui.plugin(i)}(window.kendo.jQuery),window.kendo},"function"==typeof define&&define.amd?define:function(e,t,n){(n||t)()}),function(e,define){define("kendo.calendar.min",["kendo.core.min","kendo.selectable.min"],e)}(function(){return function(e,t){function n(e,t,n,i){var o,r=e.getFullYear(),a=t.getFullYear(),s=n.getFullYear();return r-=r%i,o=r+(i-1),rs&&(o=s),r+"-"+o}function i(e){var t,n=0,i=e.min,o=e.max,r=e.start,a=e.setter,l=e.build,d=e.weekNumberBuild,u=e.cells||12,c=e.isWeekColumnVisible,p=e.perRow||4,f=e.otherMonth,m=e.lastDayOfMonth,g=e.weekNumber||q,v=e.content||U,_=e.empty||W,b=e.otherMonthCellTemplate||j,y=e.html||'';for(c&&(y+=g(d(r)));n0&&n%p===0&&(y+='',c&&(y+=g(f||+r<=+m?d(r):{weekNumber:" "}))),r=h(r.getFullYear(),r.getMonth(),r.getDate()),R(r,0),t=l(r,n,e.disableDates),y+=t.cssClass.indexOf(ue)===-1||f?s(r,i,o)?v(t):_(t):b(t),a(r,1);return y+"
        "}function o(e,t,n){var i=e.getFullYear(),o=t.getFullYear(),r=o,a=0;return n&&(o-=o%n,r=o-o%n+n-1),i>r?a=1:ii?i=new Ne((+t)):n=+t&&+e<=+n}function l(e,t){return e.slice(t).concat(e.slice(0,t))}function d(e,t,n){t=t instanceof Ne?t.getFullYear():e.getFullYear()+n*t,e.setFullYear(t)}function u(e,t){var n,i,o;return+t<+e&&(n=+e,F.views[0].setDate(e,t),F.views[0].setDate(t,new Date(n))),i=Date.UTC(e.getFullYear(),e.getMonth(),e.getDate()),o=Date.UTC(t.getFullYear(),t.getMonth(),t.getDate()),Math.ceil((+o-+i)/D.date.MS_PER_DAY)}function c(e,t,n,i){var o,r;for(o=0;o<=t;o++)r=new Date(n.getTime()),r=new Date(r.setDate(r.getDate()+o)),i(r)||e.push(r)}function p(t){var n=e(this).hasClass("k-state-disabled");n||e(this).toggleClass(se,we.indexOf(t.type)>-1||t.type==be)}function f(e){e.preventDefault()}function h(e,t,n){var i=new Ne(e,t,n);return i.setFullYear(e,t,n),i}function m(e){return B(e).calendars.standard}function g(e){var n=Re[e.start],i=Re[e.depth],o=B(e.culture);e.format=M(e.format||o.calendars.standard.patterns.d),isNaN(n)&&(n=0,e.start=ne),(i===t||i>n)&&(e.depth=ne),null===e.dates&&(e.dates=[])}function v(e){$&&e.find("*").attr("unselectable","on")}function _(e,t){e.addClass("k-"+t)}function b(e,t){for(var n=0,i=t.length;n -1;"+d;else{for(o=0;o-1&&s.push(a);n="var found = date && window.kendo.jQuery.inArray(date.getDay(),["+s+"]) > -1;"+d}return i=Function("date",n)}function T(e,t){return e instanceof Date&&t instanceof Date&&(e=e.getTime(),t=t.getTime()),e===t}function S(t){var n=e(t).attr(D.attr(ae)).split("/");return n=h(n[0],n[1],n[2])}var F,D=window.kendo,I=D.support,z=D.ui,E=z.Widget,A=D.keys,N=D.parseDate,R=D.date.adjustDST,H=D.date.weekInYear,P=D.ui.Selectable,M=D._extractFormat,O=D.template,B=D.getCulture,L=D.support.transitions,V=L?L.css+"transform-origin":"",U=O('#=data.value#',{useWithBlock:!1}),W=O('',{useWithBlock:!1}),j=O(' ',{useWithBlock:!1}),q=O('#= data.weekNumber #',{useWithBlock:!1}),G=D.support.browser,$=G.msie&&G.version<9,Y=D._outerWidth,K=".kendoCalendar",Q="click"+K,X="keydown"+K,J="id",Z="min",ee="left",te="slideIn",ne="month",ie="century",oe="change",re="navigate",ae="value",se="k-state-hover",le="k-state-disabled",de="k-state-focused",ue="k-other-month",ce=' class="'+ue+'"',pe="k-out-of-range",fe="k-nav-today",he="td:has(.k-link)",me="td:has(.k-link):not(."+le+"):not(."+pe+")",ge="td:not(:has(.k-link))",ve="k-state-selected",_e="blur"+K,be="focus",ye=be+K,we=I.touch?"touchstart":"mouseenter",ke=I.touch?"touchstart"+K:"mouseenter"+K,xe=I.touch?"touchend"+K+" touchmove"+K:"mouseleave"+K,Ce=6e4,Te=864e5,Se="_prevArrow",Fe="_nextArrow",De="aria-disabled",Ie="aria-selected",ze="aria-label",Ee=e.proxy,Ae=e.extend,Ne=Date,Re={ +month:0,year:1,decade:2,century:3},He=".k-header, .k-calendar-header",Pe='
        ',Me='',Oe=E.extend({init:function(t,n){var i,o,s=this;n=n||{},n.componentType=n.componentType||"classic",E.fn.init.call(s,t,n),t=s.wrapper=s.element,n=s.options,n.url=D.unescape(n.url),s.options.disableDates=k(s.options.disableDates),s._templates(),s._selectable(),s._header(),s._viewWrapper(),s.options.hasFooter&&s._footer(s.footer),o=t.addClass("k-widget k-calendar "+(n.weekNumber?" k-week-number":"")).on(ke+" "+xe,he,p).on(X,"table.k-content",Ee(s._move,s)).on(Q+" touchend",he,function(t){var i=t.currentTarget.firstChild,o=S(i);i.href.indexOf("#")!=-1&&t.preventDefault(),"month"==s._view.name&&s.options.disableDates(o)||"month"==s._view.name&&"single"!=n.selectable||s._click(e(i))}).on("mouseup"+K,"table.k-content, .k-footer",function(){s._focusView(s.options.focusOnNav!==!1)}).attr(J),o&&(s._cellID=o+"_cell_selected"),s._isMultipleSelection()&&s.options.weekNumber&&t.on(Q,ge,function(t){var n=e(t.currentTarget).closest("tr").find(me).first(),i=s.selectable._lastActive=e(t.currentTarget).closest("tr").find(me).last();s.selectable.selectRange(n,i,{event:t}),s._current=s._value=S(i.find("a")),s._class(de,s._current)}),g(n),i=N(n.value,n.format,n.culture),s._selectDates=[],s._index=Re[n.start],s._current=new Ne((+a(i,n.min,n.max))),s._addClassProxy=function(){if(s._active=!0,s._cell.hasClass(le)){var e=s._view.toDateString(r());s._cell=s._cellByDate(e)}s._cell.addClass(de)},s._removeClassProxy=function(){s._active=!1,s._cell.removeClass(de)},s.value(i),s._isMultipleSelection()&&n.selectDates.length>0&&s.selectDates(n.selectDates),D.notify(s)},options:{name:"Calendar",value:null,min:new Ne(1900,0,1),max:new Ne(2099,11,31),dates:[],disableDates:null,url:"",culture:"",footer:"",format:"",month:{},weekNumber:!1,selectable:"single",selectDates:[],start:ne,depth:ne,animation:{horizontal:{effects:te,reverse:!0,duration:500,divisor:2},vertical:{effects:"zoomIn",duration:400}},messages:{weekColumnHeader:"",today:"Today"}},events:[oe,re],componentTypes:{classic:{header:{template:Pe},hasFooter:!0,linksSelector:".k-link",contentClasses:"k-content"},modern:{header:{template:Me},hasFooter:!1,linksSelector:".k-button",contentClasses:"k-content k-calendar-content"}},setOptions:function(e){var t=this;g(e),e.disableDates=k(e.disableDates),t._destroySelectable(),E.fn.setOptions.call(t,e),t._templates(),t._selectable(),t._viewWrapper(),t.options.hasFooter?t._footer(t.footer):t.element.find(".k-footer").hide(),t._index=Re[t.options.start],t.navigate(),e.weekNumber&&t.element.addClass("k-week-number")},destroy:function(){var e=this,t=e._today;e.element.off(K),e._title.off(K),e[Se].off(K),e[Fe].off(K),e._destroySelectable(),D.destroy(e._table),t&&D.destroy(t.off(K)),E.fn.destroy.call(e)},current:function(){return this._current},view:function(){return this._view},focus:function(e){e=e||this._table,this._bindTable(e),e.trigger("focus")},min:function(e){return this._option(Z,e)},max:function(e){return this._option("max",e)},navigateToPast:function(){this._navigate(Se,-1)},navigateToFuture:function(){this._navigate(Fe,1)},navigateUp:function(){var e=this,t=e._index;e._title.hasClass(le)||e.navigate(e._current,++t)},navigateDown:function(e){var n=this,i=n._index,o=n.options.depth;if(e)return i===Re[o]?(T(n._value,n._current)&&T(n._value,e)||(n.value(e),n.trigger(oe)),t):(n.navigate(e,--i),t)},navigate:function(n,i){var o,r,s,l,d,u,c,p,f,h,m,g,b,y,w,k,x;i=isNaN(i)?Re[i]:i,o=this,r=o.options,s=r.culture,l=r.min,d=r.max,u=o._title,c=o._table,p=o._oldTable,f=o._current,h=n&&+n>+f,m=i!==t&&i!==o._index,k=o.element.children(".k-calendar-view"),n||(n=f),o._current=n=new Ne((+a(n,l,d))),i===t?i=o._index:o._index=i,o._view=b=F.views[i],y=b.compare,w=i===Re[ie],u.toggleClass(le,w).attr(De,w),w=y(n,l)<1,o[Se].toggleClass(le,w).attr(De,w),o[Se].hasClass(le)&&o[Se].removeClass(se),w=y(n,d)>-1,o[Fe].toggleClass(le,w).attr(De,w),o[Fe].hasClass(le)&&o[Fe].removeClass(se),c&&p&&p.data("animating")&&(p.kendoStop(!0,!0),c.kendoStop(!0,!0)),o._oldTable=c,c&&!o._changeView||(u.html(b.title(n,l,d,s)),o._table=g=e(b.content(Ae({min:l,max:d,date:n,url:r.url,dates:r.dates,format:r.format,otherMonth:!0,culture:s,disableDates:r.disableDates,isWeekColumnVisible:r.weekNumber,messages:r.messages,contentClasses:o.options.contentClasses},o[b.name]))),_(g,b.name),v(g),x=c&&c.data("start")===g.data("start"),o._animate({from:c,to:g,vertical:m,future:h,replace:x}),"modern"===o.options.componentType&&(k.removeClass("k-calendar-monthview k-calendar-yearview k-calendar-decadeview k-calendar-centuryview"),k.addClass("k-calendar-"+b.name+"view")),o.trigger(re),o._focus(n)),i===Re[r.depth]&&o._selectDates.length>0&&o._visualizeSelectedDatesInView(),"single"===o.options.selectable&&i===Re[r.depth]&&o._value&&!o.options.disableDates(o._value)&&o._class("k-state-selected",o._value),o._class(de,n),!c&&o._cell&&o._cell.removeClass(de),o._changeView=!0},selectDates:function(n){var i,o,r=this;return n===t?r._selectDates:(o=n.map(function(e){return e.getTime()}).filter(function(e,t,n){return n.indexOf(e)===t}).map(function(e){return new Date(e)}),i=e.grep(o,function(e){if(e)return+r._validateValue(new Date(e.setHours(0,0,0,0)))===+e}),r._selectDates=i.length>0?i:0===o.length?o:r._selectDates,r._visualizeSelectedDatesInView(),t)},value:function(e){var n,i=this,o=i._view,r=i._view;return e===t?i._value:(e=i._validateValue(e),e&&i._isMultipleSelection()&&(n=new Date((+e)),n.setHours(0,0,0,0),i._selectDates=[n],i.selectable._lastActive=null),o&&null===e&&i._cell?i._cell.removeClass(ve):(i._changeView=!e||r&&0!==r.compare(e,i._current),i.navigate(e)),t)},_validateValue:function(e){var n=this,i=n.options,o=i.min,r=i.max;return null===e&&(n._current=h(n._current.getFullYear(),n._current.getMonth(),n._current.getDate())),e=N(e,i.format,i.culture),null!==e&&(e=new Ne((+e)),s(e,o,r)||(e=null)),null!==e&&n.options.disableDates(new Date((+e)))?n._value===t&&(n._value=null):n._value=e,n._value},_visualizeSelectedDatesInView:function(){var t,n=this,i={};e.each(n._selectDates,function(e,t){i[D.calendar.views[0].toDateString(t)]=t}),n.selectable.clear(),t=n._table.find(he).filter(function(t,n){return i[e(n.firstChild).attr(D.attr(ae))]}),t.length>0&&n.selectable._selectElement(t,!0)},_isMultipleSelection:function(){var e=this;return"multiple"===e.options.selectable},_selectable:function(){var e,t,n=this;n._isMultipleSelection()&&(e=n.options.selectable,t=P.parseOptions(e),t.multiple&&n.element.attr("aria-multiselectable","true"),n.selectable=new P(n.wrapper,{aria:!0,inputSelectors:"input,textarea,.k-multiselect-wrap,select,button,.k-button>span,.k-button>img,span.k-icon.k-i-arrow-60-down,span.k-icon.k-i-arrow-60-up",multiple:t.multiple,filter:"table.k-month:eq(0) "+me,change:Ee(n._onSelect,n),relatedTarget:Ee(n._onRelatedTarget,n)}))},_onRelatedTarget:function(e){var t=this;t.selectable.options.multiple&&e.is(me)&&(t._current=S(e.find("a")),t._class(de,S(e.find("a"))))},_onSelect:function(n){var i=this,o=n,r=P.parseOptions(i.options.selectable);return r.multiple?(o.event.ctrlKey||o.event.metaKey?e(o.event.currentTarget).is(me)?i._toggleSelection(e(o.event.currentTarget)):(i._cellsBySelector(me).each(function(t,n){var o=S(e(n).find("a"));i._deselect(o)}),i._addSelectedCellsToArray()):o.event.shiftKey?i._rangeSelection(i._cell):e(o.event.currentTarget).is(he)?i.value(S(e(o.event.currentTarget).find("a"))):(i._selectDates=[],i._addSelectedCellsToArray()),i.trigger(oe),t):(e(o.event.currentTarget).is("td")&&!e(o.event.currentTarget).hasClass("k-state-selected")?e(o.event.currentTarget).addClass("k-state-selected"):i._click(e(o.event.currentTarget).find("a")),t)},_destroySelectable:function(){var e=this;e.selectable&&(e.selectable.destroy(),e.selectable=null)},_toggleSelection:function(e){var t=this,n=S(e.find("a"));e.hasClass("k-state-selected")?t._selectDates.push(n):t._deselect(n)},_rangeSelection:function(e,t){var n,i=this,o=t||S(i.selectable.value().first().find("a")),r=S(e.find("a"));i.selectable._lastActive||i._value?o=i.selectable._lastActive?S(i.selectable._lastActive.find("a")):new Date((+i._value)):i.selectable._lastActive=t?i._cellByDate(i._view.toDateString(t),me):i.selectable.value().first(),i._selectDates=[],n=u(o,r),c(i._selectDates,n,o,i.options.disableDates),i._visualizeSelectedDatesInView()},_cellsBySelector:function(e){var t=this;return t._table.find(e)},_addSelectedCellsToArray:function(){var t=this;t.selectable.value().each(function(n,i){var o=S(e(i.firstChild));t.options.disableDates(o)||t._selectDates.push(o)})},_deselect:function(e){var t=this,n=t._selectDates.map(Number).indexOf(+e);n!=-1&&t._selectDates.splice(n,1)},_dateInView:function(e){var t=this,n=S(t._cellsBySelector(me+":first").find("a")),i=S(t._cellsBySelector(me+":last").find("a"));return+e<=+i&&+e>=+n},_isNavigatable:function(e,t){var n,i,o=this,r=o.options.disableDates;return"month"==o._view.name?!r(e):(i=o.wrapper.find("."+de).index(),n=o.wrapper.find(".k-content td:eq("+(i+t)+")"),n.is(me)||!r(e))},_move:function(n){var i,o,r,l,d,u=this,c=u.options,p=n.keyCode,f=u._view,m=u._index,g=u.options.min,v=u.options.max,_=new Ne((+u._current)),b=D.support.isRtl(u.wrapper),y=u.options.disableDates;return n.target===u._table[0]&&(u._active=!0),p==A.RIGHT&&!b||p==A.LEFT&&b?(i=1,o=!0):p==A.LEFT&&!b||p==A.RIGHT&&b?(i=-1,o=!0):p==A.UP?(i=0===m?-7:-4,o=!0):p==A.DOWN?(i=0===m?7:4,o=!0):p==A.SPACEBAR?(i=0,o=!0):p!=A.HOME&&p!=A.END||(r=p==A.HOME?"first":"last",l=f[r](_),_=new Ne(l.getFullYear(),l.getMonth(),l.getDate(),_.getHours(),_.getMinutes(),_.getSeconds(),_.getMilliseconds()),_.setFullYear(l.getFullYear()),o=!0),n.ctrlKey||n.metaKey?p==A.RIGHT&&!b||p==A.LEFT&&b?(u.navigateToFuture(),o=!0):p==A.LEFT&&!b||p==A.RIGHT&&b?(u.navigateToPast(),o=!0):p==A.UP?(u.navigateUp(),o=!0):p==A.DOWN?(u._click(e(u._cell[0].firstChild)),o=!0):p!=A.ENTER&&p!=A.SPACEBAR||!u._isMultipleSelection()||(u._keyboardToggleSelection(n),d=S(e(u._cell[0]).find("a")),u._class(de,d)):n.shiftKey?(i!==t||r)&&(r||f.setDate(_,i),s(_,g,v)||(_=a(_,c.min,c.max)),y(_)&&(_=u._nextNavigatable(_,i)),g=h(g.getFullYear(),g.getMonth(),g.getDate()),u._isMultipleSelection()?u._keyboardRangeSelection(n,_):u._focus(_)):(p==A.ENTER||p==A.SPACEBAR?("month"==f.name&&u._isMultipleSelection()?(u.value(S(e(u._cell.find("a")))),u.selectable._lastActive=e(u._cell[0]),u.trigger(oe)):u._click(e(u._cell[0].firstChild)),o=!0):p==A.PAGEUP?(o=!0,u.navigateToPast()):p==A.PAGEDOWN&&(o=!0,u.navigateToFuture()),(i||r)&&(r||f.setDate(_,i),g=h(g.getFullYear(),g.getMonth(),g.getDate()),s(_,g,v)||(_=a(_,c.min,c.max)),u._isNavigatable(_,i)||(_=u._nextNavigatable(_,i)),u._isMultipleSelection()?u._dateInView(_)?(u._current=_,u._class(de,_)):u.navigate(_):u._focus(_))),o&&n.preventDefault(),u._current},_keyboardRangeSelection:function(e,n){var i,o,r=this;return r._dateInView(n)?(r.selectable.options.filter=r.wrapper.find("table").length>1&&+n>+r._current?"table.k-month:eq(1) "+me:"table.k-month:eq(0) "+me,r._class(de,n),r._current=n,r._rangeSelection(r._cellByDate(r._view.toDateString(n),me),n),r.trigger(oe),r.selectable.options.filter="table.k-month:eq(0) "+me,t):(r._selectDates=[],i=r.selectable._lastActive?S(r.selectable._lastActive.find("a")):n,o=u(i,new Date((+n))),c(r._selectDates,o,i,r.options.disableDates),r.navigate(n),r._current=n,r.selectable._lastActive=r.selectable._lastActive||r._cellByDate(r._view.toDateString(n),me),r.trigger(oe),t)},_keyboardToggleSelection:function(t){var n=this;t.currentTarget=n._cell[0],n.selectable._lastActive=e(n._cell[0]),e(n._cell[0]).hasClass(ve)?(n.selectable._unselect(e(n._cell[0])),n.selectable.trigger(oe,{event:t})):n.selectable.value(e(n._cell[0]),{event:t})},_nextNavigatable:function(e,t){var n=this,i=!0,o=n._view,r=n.options.min,a=n.options.max,l=n.options.disableDates,d=new Date(e.getTime());for(o.setDate(d,-t);i;){if(o.setDate(e,t),!s(e,r,a)){e=d;break}i=l(e)}return e},_animate:function(e){var t=this,n=e.from,i=e.to,o=t._active,r=t.element.children(".k-calendar-view");n?n.parent().data("animating")?(n.off(K),n.parent().kendoStop(!0,!0).remove(),n.remove(),r.append(i),t._focusView(o)):!n.is(":visible")||t.options.animation===!1||e.replace?(i.insertAfter(n),n.off(K).remove(),t._focusView(o)):t[e.vertical?"_vertical":"_horizontal"](n,i,e.future):(r.append(i),t._bindTable(i))},_horizontal:function(e,t,n){var i=this,o=i._active,r=i.options.animation.horizontal,a=r.effects,s=Y(e);a&&a.indexOf(te)!=-1&&(e.add(t).css({width:s}),e.wrap("
        "),i._focusView(o,e),e.parent().css({position:"relative",width:2*s,"float":ee,"margin-left":n?0:-s}),t[n?"insertAfter":"insertBefore"](e),Ae(r,{effects:te+":"+(n?"right":ee),complete:function(){e.off(K).remove(),i._oldTable=null,t.unwrap(),i._focusView(o)}}),e.parent().kendoStop(!0,!0).kendoAnimate(r))},_vertical:function(e,t){var n,i,o=this,r=o.options.animation.vertical,a=r.effects,s=o._active;a&&a.indexOf("zoom")!=-1&&(t.insertBefore(e),e.css({position:"absolute",width:t.width()}),V&&(n=o._cellByDate(o._view.toDateString(o._current)),i=n.position(),i=i.left+parseInt(n.width()/2,10)+"px "+(i.top+parseInt(n.height()/2,10)+"px"),t.css(V,i)),e.kendoStop(!0,!0).kendoAnimate({effects:"fadeOut",duration:600,complete:function(){e.off(K).remove(),o._oldTable=null,o._focusView(s)}}),t.kendoStop(!0,!0).kendoAnimate(r))},_cellByDate:function(t,n){return this._table.find(n?n:"td:not(."+ue+")").filter(function(){return e(this.firstChild).attr(D.attr(ae))===t})},_class:function(e,t){var n,i=this,o=i._cellID,r=i._cell,a=i._view.toDateString(t);r&&r.length&&(r[0].removeAttribute(Ie),r[0].removeAttribute(ze),r[0].removeAttribute(J)),t&&"month"==i._view.name&&(n=i.options.disableDates(t)),i._cellsBySelector(i._isMultipleSelection()?he:"td:not(."+ue+")").removeClass(e),r=i._cellByDate(a,"multiple"==i.options.selectable?he:"td:not(."+ue+")").attr(Ie,!0),(e===de&&!i._active&&i.options.focusOnNav!==!1||n)&&(e=""),r.addClass(e),r[0]&&(i._cell=r),o&&(r.attr(J,o),i._table[0].removeAttribute("aria-activedescendant"),i._table.attr("aria-activedescendant",o))},_bindTable:function(e){e.on(ye,this._addClassProxy).on(_e,this._removeClassProxy)},_click:function(e){var t=this,n=t.options,i=new Date((+t._current)),o=S(e);R(o,0),"month"==t._view.name&&t.options.disableDates(o)&&(o=t._value),t._view.setDate(i,o),t.navigateDown(a(i,n.min,n.max))},_focus:function(e){var t=this,n=t._view;0!==n.compare(e,t._current)?t.navigate(e):(t._current=e,t._class(de,e))},_focusView:function(e,t){e&&this.focus(t)},_viewWrapper:function(){var t=this,n=t.element,i=n.children(".k-calendar-view");i[0]||(i=e("
        ").insertAfter(n.find(He)))},_footer:function(n){var i=this,o=r(),a=i.element,s=a.find(".k-footer");return n?(s[0]||(s=e('').appendTo(a)),i._today=s.show().find(".k-link").html(n(o)).attr("title",D.toString(o,"D",i.options.culture)),i._toggle(),t):(i._toggle(!1),s.hide(),t)},_header:function(){var e=this,t=e.element,n=e.options.linksSelector;t.find(He)[0]||t.html(D.template(e.options.header.template)(e.options)),t.find(n).on(ke+" "+xe+" "+ye+" "+_e,p).on(Q+" touchend"+K,function(){return!1}),e._title=t.find("["+D.attr("action")+'="nav-up"]').on(Q+" touchend"+K,function(){e._active=e.options.focusOnNav!==!1,e.navigateUp()}),e[Se]=t.find("["+D.attr("action")+'="prev"]').on(Q+" touchend"+K,function(){e._active=e.options.focusOnNav!==!1,e.navigateToPast()}),e[Fe]=t.find("["+D.attr("action")+'="next"]').on(Q+" touchend"+K,function(){e._active=e.options.focusOnNav!==!1,e.navigateToFuture()}),t.find("["+D.attr("action")+'="today"]').on(Q+" touchend"+K,Ee(e._todayClick,e))},_navigate:function(e,t){var n,i=this,o=i._index+1,r=new Ne((+i._current));i._isMultipleSelection()&&(n=i._table.find("td:not(.k-other-month):not(.k-out-of-range)").has(".k-link").first(),r=S(n.find("a")),i._current=new Date((+r))),e=i[e],e.hasClass(le)||(o>3?r.setFullYear(r.getFullYear()+100*t):F.views[o].setDate(r,t),i.navigate(r))},_option:function(e,n){var i,o=this,r=o.options,a=o._value||o._current;return n===t?r[e]:(n=N(n,r.format,r.culture),n&&(r[e]=new Ne((+n)),i=e===Z?n>a:a>n,(i||w(a,n))&&(i&&(o._value=null),o._changeView=!0),o._changeView||(o._changeView=!(!r.month.content&&!r.month.empty)),o.navigate(o._value),o._toggle()),t)},_toggle:function(e){var n=this,i=n.options,o=n.options.disableDates(r()),a=n._today;e===t&&(e=s(r(),i.min,i.max)),a&&(a.off(Q),e&&!o?a.addClass(fe).removeClass(le).on(Q,Ee(n._todayClick,n)):a.removeClass(fe).addClass(le).on(Q,f))},_todayClick:function(e){var t=this,n=Re[t.options.depth],i=t.options.disableDates,o=r();e.preventDefault(),i(o)||(0===t._view.compare(t._current,o)&&t._index==n&&(t._changeView=!1),t._isMultipleSelection()&&(t._selectDates=[o],t.selectable._lastActive=null),t._value=o,t.navigate(o,n),t.trigger(oe))},_templates:function(){var e=this,t=e.options,n=t.footer,i=t.month,o=i.content,r=i.weekNumber,a=i.empty,s='#= kendo.toString(data,"D","'+t.culture+'") #';e.month={content:O(''+(o||"#=data.value#")+"",{useWithBlock:!!o}),empty:O(''+(a||" ")+"",{useWithBlock:!!a}),weekNumber:O(''+(r||"#= data.weekNumber #")+"",{useWithBlock:!!r})},n&&n!==!0&&(s=n),e.footer=n!==!1?O(s,{useWithBlock:!1}):null}});z.plugin(Oe),F={firstDayOfMonth:function(e){return h(e.getFullYear(),e.getMonth(),1)},firstVisibleDay:function(e,t){t=t||D.culture().calendar;var n=t.firstDay,i=new Ne(e.getFullYear(),e.getMonth(),1,e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds());for(i.setFullYear(e.getFullYear());i.getDay()!=n;)F.setTime(i,-1*Te);return i},setTime:function(e,t){var n=e.getTimezoneOffset(),i=new Ne(e.getTime()+t),o=i.getTimezoneOffset()-n;e.setTime(i.getTime()+o*Ce)},views:[{name:ne,title:function(e,t,n,i){return m(i).months.names[e.getMonth()]+" "+e.getFullYear()},content:function(e){var t=this,n=0,o=e.min,a=e.max,s=e.date,d=e.dates,u=e.format,c=e.culture,p=e.url,f=e.showHeader,g=e.otherMonth,v=e.isWeekColumnVisible,_=p&&d[0],y=m(c),w=y.firstDay,k=y.days,x=l(k.names,w),C=l(k.namesShort,w),T=F.firstVisibleDay(s,y),S=t.first(s),I=t.last(s),z=t.toDateString,E=r(),A=e.contentClasses,N='';for(N+=f?'':'',v&&(N+='");n<7;n++)N+='";return R(E,0),E=+E,i({cells:42,perRow:7,html:N+='',start:T,isWeekColumnVisible:v,weekNumber:e.weekNumber,min:h(o.getFullYear(),o.getMonth(),o.getDate()),max:h(a.getFullYear(),a.getMonth(),a.getDate()),otherMonth:g,content:e.content,lastDayOfMonth:I,empty:e.empty,setter:t.setDate,disableDates:e.disableDates,build:function(e,t,n){var i=[],o=e.getDay(),r="",a="#";return(eI)&&i.push(ue),n(e)&&i.push(le),+e===E&&i.push("k-today"),0!==o&&6!==o||i.push("k-weekend"),_&&b(+e,d)&&(a=p.replace("{0}",D.toString(e,u,c)),r=" k-action-link"),{date:e,dates:d,ns:D.ns,title:D.toString(e,"D",c),value:e.getDate(),dateString:z(e),cssClass:i[0]?' class="'+i.join(" ")+'"':"",linkClass:r,url:a}},weekNumberBuild:function(e){return{weekNumber:H(e,D.culture().calendar.firstDay),currentDate:e}}})},first:function(e){return F.firstDayOfMonth(e)},last:function(e){var t=h(e.getFullYear(),e.getMonth()+1,0),n=F.firstDayOfMonth(e),i=Math.abs(t.getTimezoneOffset()-n.getTimezoneOffset());return i&&t.setHours(n.getHours()+i/60),t},compare:function(e,t){var n,i=e.getMonth(),o=e.getFullYear(),r=t.getMonth(),a=t.getFullYear();return n=o>a?1:or?1:-1},setDate:function(e,t){var n=e.getHours();t instanceof Ne?e.setFullYear(t.getFullYear(),t.getMonth(),t.getDate()):F.setTime(e,t*Te),R(e,n)},toDateString:function(e){return e.getFullYear()+"/"+e.getMonth()+"/"+e.getDate()}},{name:"year",title:function(e){return e.getFullYear()},content:function(e){var t=m(e.culture).months.namesAbbr,n=this.toDateString,o=e.min,r=e.max,a="";return e.showHeader&&(a+='
        '+this.title(s,o,a,c)+'
        '+e.messages.weekColumnHeader+"'+C[n]+"
        '),i({min:h(o.getFullYear(),o.getMonth(),1),max:h(r.getFullYear(),r.getMonth(),1),start:h(e.date.getFullYear(),0,1),html:a,setter:this.setDate,build:function(e){return{value:t[e.getMonth()],ns:D.ns,dateString:n(e),cssClass:""}}})},first:function(e){return h(e.getFullYear(),0,e.getDate())},last:function(e){return h(e.getFullYear(),11,e.getDate())},compare:function(e,t){return o(e,t)},setDate:function(e,t){var n,i=e.getHours();t instanceof Ne?(n=t.getMonth(),e.setFullYear(t.getFullYear(),n,e.getDate()),n!==e.getMonth()&&e.setDate(0)):(n=e.getMonth()+t,e.setMonth(n),n>11&&(n-=12),n>0&&e.getMonth()!=n&&e.setDate(0)),R(e,i)},toDateString:function(e){return e.getFullYear()+"/"+e.getMonth()+"/1"}},{name:"decade",title:function(e,t,i){return n(e,t,i,10)},content:function(e){var t=e.date.getFullYear(),n=this.toDateString,o="";return e.showHeader&&(o+='
        ',a+=this.title(e.date),a+='
        '),i({start:h(t-t%10-1,0,1),min:h(e.min.getFullYear(),0,1),max:h(e.max.getFullYear(),0,1),otherMonth:e.otherMonth,html:o,setter:this.setDate,build:function(e,t){return{value:e.getFullYear(),ns:D.ns,dateString:n(e),cssClass:0===t||11==t?ce:""}}})},first:function(e){var t=e.getFullYear();return h(t-t%10,e.getMonth(),e.getDate())},last:function(e){var t=e.getFullYear();return h(t-t%10+9,e.getMonth(),e.getDate())},compare:function(e,t){return o(e,t,10)},setDate:function(e,t){d(e,t,1)},toDateString:function(e){return e.getFullYear()+"/0/1"}},{name:ie,title:function(e,t,i){return n(e,t,i,100)},content:function(e){var t=e.date.getFullYear(),n=e.min.getFullYear(),o=e.max.getFullYear(),r=this.toDateString,a=n,s=o,l="";return a-=a%10,s-=s%10,s-a<10&&(s=a+9),e.showHeader&&(l+='
        ',o+=this.title(e.date,e.min,e.max),o+='
        '),i({start:h(t-t%100-10,0,1),min:h(a,0,1),max:h(s,0,1),otherMonth:e.otherMonth,html:l,setter:this.setDate,build:function(e,t){var i=e.getFullYear(),a=i+9;return io&&(a=o),{ns:D.ns,value:i+" - "+a,dateString:r(e),cssClass:0===t||11==t?ce:""}}})},first:function(e){var t=e.getFullYear();return h(t-t%100,e.getMonth(),e.getDate())},last:function(e){var t=e.getFullYear();return h(t-t%100+99,e.getMonth(),e.getDate())},compare:function(e,t){return o(e,t,100)},setDate:function(e,t){d(e,t,10)},toDateString:function(e){var t=e.getFullYear();return t-t%10+"/0/1"}}]},F.isEqualDatePart=y,F.isEqualDate=T,F.makeUnselectable=v,F.restrictValue=a,F.isInRange=s,F.addClassToViewContainer=_,F.normalize=g,F.viewsEnum=Re,F.disabled=k,F.toDateObject=S,F.getToday=r,F.createDate=h,D.calendar=F}(window.kendo.jQuery),window.kendo},"function"==typeof define&&define.amd?define:function(e,t,n){(n||t)()}),function(e,define){define("kendo.dateinput.min",["kendo.core.min"],e)}(function(){return function(e,t){function n(e,t,n,i){var o,r,a,s,l=e[i+e.length-n.length];if(e=e.substring(0,i+e.length-n.length),n=n.substring(0,i),o=[],e===n&&i>0)return o.push([t[i-1],n[i-1]]),o;if(0===e.indexOf(n)&&(0===n.length||t[n.length-1]!==t[n.length])){for(a="",r=n.length;r=0&&(a=t[r],o.push([a,""]));return o}if(" "===n[n.length-1]||n[n.length-1]===l)return[[t[i-1]," "]];if(0===n.indexOf(e)||y.indexOf(t[i-1])===-1){for(s=t[0],r=Math.max(0,e.length-1);r=0){s=t[r];break}return[[s,n[i-1]]]}return[[t[i-1],n[i-1]]]}var i,o=window,r=o.kendo,a=r.caret,s=r.ui,l=s.Widget,d=r.keys,u=".kendoDateInput",c=e.proxy,p={}.toString,f=(r.support.propertyChangeEvent?"propertychange.kendoDateInput input":"input")+u,h="k-state-disabled",m="k-state-default",g="k-state-invalid",v="disabled",_="readonly",b="change",y="dMyHhmftsz",w=l.extend({init:function(t,n){var i,o,a=this;l.fn.init.call(a,t,n),t=a.element,n=a.options,n.format=r._extractFormat(n.format||r.getCulture(n.culture).calendars.standard.patterns.d),n.min=r.parseDate(t.attr("min"))||r.parseDate(n.min),n.max=r.parseDate(t.attr("max"))||r.parseDate(n.max),i=(t.parent().attr("class")||"").indexOf("k-picker-wrap")>=0,i?a.wrapper=t.parent():(a.wrapper=t.wrap("").parent(),a.wrapper.addClass(t[0].className).removeClass("input-validation-error"),a.wrapper[0].style.cssText=t[0].style.cssText,t.css({width:"100%",height:t[0].style.height})),a._inputWrapper=e(a.wrapper[0]),e("").insertAfter(t),a._form(),a.element.addClass(i?" ":"k-textbox").attr("autocomplete","off").on("focusout"+u,function(){a._change()});try{t[0].setAttribute("type","text")}catch(s){t[0].type="text"}o=t.is("[disabled]")||e(a.element).parents("fieldset").is(":disabled"),o?a.enable(!1):a.readonly(t.is("[readonly]")),a.value(a.options.value||t.val()),r.notify(a)},options:{name:"DateInput",culture:"",value:"",format:"",min:new Date(1900,0,1),max:new Date(2099,11,31),messages:{year:"year",month:"month",day:"day",weekday:"day of the week",hour:"hours",minute:"minutes",second:"seconds",dayperiod:"AM/PM"}},events:[b],min:function(e){return e===t?this.options.min:(this.options.min=e,t)},max:function(e){return e===t?this.options.max:(this.options.max=e,t)},setOptions:function(e){var t=this;l.fn.setOptions.call(t,e),this._unbindInput(),this._bindInput(),this._updateElementValue()},destroy:function(){var e=this;e.element.off(u),e._formElement&&e._formElement.off("reset",e._resetHandler),l.fn.destroy.call(e)},value:function(e){return e===t?this._dateTime.getDateObject():(null===e&&(e=""),"[object Date]"!==p.call(e)&&(e=r.parseDate(e,this.options.format,this.options.culture)),e&&!e.getTime()&&(e=null),this._dateTime=new i(e,this.options.format,this.options.culture,this.options.messages),this._updateElementValue(),this._oldValue=e,t)},_updateElementValue:function(){var e=this._dateTime.toPair(this.options.format,this.options.culture,this.options.messages);this.element.val(e[0]),this._oldText=e[0],this._format=e[1]},readonly:function(e){this._editable({readonly:e===t||e,disable:!1})},enable:function(e){this._editable({readonly:!1,disable:!(e=e===t||e)})},_bindInput:function(){var e=this;e.element.on("focusout"+u,function(){e._change()}).on("paste"+u,c(e._paste,e)).on("keydown"+u,c(e._keydown,e)).on(f,c(e._input,e)).on("mouseup"+u,c(e._mouseUp,e)).on("DOMMouseScroll"+u+" mousewheel"+u,c(e._scroll,e))},_unbindInput:function(){this.element.off("keydown"+u).off("paste"+u).off("focusout"+u).off(f).off("mouseup"+u).off("DOMMouseScroll"+u+" mousewheel"+u)},_editable:function(e){var t=this,n=t.element,i=e.disable,o=e.readonly,r=t.wrapper;t._unbindInput(),o||i?(i&&(r.addClass(h).removeClass(m),n.attr(v,i),n&&n.length&&n[0].removeAttribute(_)),o&&n.attr(_,o)):(r.addClass(m).removeClass(h),n&&n.length&&(n[0].removeAttribute(v),n[0].removeAttribute(_)),t._bindInput())},_change:function(){var e=this,t=e._oldValue,n=e.value();n&&e.min()&&ne.max()&&(e.value(e.max()),n=e.value()),(t&&n&&n.getTime()!==t.getTime()||t&&!n||!t&&n)&&(e._oldValue=n,e.trigger(b),e.element.trigger(b))},_input:function(){var e,t,i,o,s,l,d,u=this,c=u.element[0],p=!1;if(r._activeElement()===c){if(e=n(this._oldText,this._format,this.element[0].value,a(this.element[0])[0]),t=1===e.length&&" "===e[0][1],!t)for(i=0;i0?37:39:(e.wheelDelta||-e.detail)>0?38:40,this._keydown(t),e.returnValue=!1,e.preventDefault&&e.preventDefault(),e.stopPropagation&&e.stopPropagation()}},_form:function(){var t=this,n=t.element,i=n.attr("form"),o=i?e("#"+i):n.closest("form"),r=n[0].value;!r&&t.options.value&&(r=t.options.value),o[0]&&(t._resetHandler=function(){setTimeout(function(){t.value(r)})},t._formElement=o.on("reset",t._resetHandler))},_paste:function(e){e.preventDefault()},_keydown:function(e){var t,n,i,o,s,l,u,c=e.keyCode;if(37==c||39==c)for(e.preventDefault(),t=a(this.element[0]),t[0]!=t[1]&&this._selectNearestSegment(),n=37==c?-1:1,i=n==-1?a(this.element[0])[0]-1:a(this.element[0])[1]+1;i>=0&&i=0){this._selectSegment(this._format[i]);break}i+=n}38!=c&&40!=c||(e.preventDefault(),t=a(this.element[0]),o=this._format[t[0]],y.indexOf(o)>=0&&(s=1,"m"==o&&(s=this.options.interval||1),this._dateTime.modifyPart(o,38==c?1*s:s*-1),this._updateElementValue(),this._selectSegment(o),this.element.trigger(b))),r.support.browser.msie&&r.support.browser.version<10&&(l=e.keyCode?e.keyCode:e.which,8!==l&&46!==l||(u=this,setTimeout(function(){u._input()},0))),c===d.ENTER&&this._change()},_selectNearestSegment:function(){var e,n,i=a(this.element[0]),o=i[0];for(e=o,n=o-1;e=0;e++,n--){if(e=0&&y.indexOf(this._format[n])!==-1)return this._selectSegment(this._format[n]),t}},_selectSegment:function(e){var t,n=-1,i=0;for(t=0;t99&&(o=Math.floor(o/10)),o=_?a(o):e;break;case"fff":o=_?a(c.getMilliseconds(),3):e;break;case"tt":o=m?c.getHours()<12?T.AM[0]:T.PM[0]:w.dayperiod;break;case"zzz":n=c.getTimezoneOffset(),i=n<0,o=(""+Math.abs(n/60)).split(".")[0],n=Math.abs(n)-60*o,o=(i?"+":"-")+a(o),o+=":"+a(n);break;case"z":case"zz":o=c.getTimezoneOffset()/60,i=o<0,o=(""+Math.abs(o)).split(".")[0],o=(i?"+":"-")+("zz"===e?a(o):o)}if(o=o!==t?o:e.slice(1,e.length-1),F){for(o=""+o,r="","ddd"==e&&(e="EEE"),"dddd"==e&&(e="EEEE"),s=0;s0&&(l(e,!0),c=i)},this.parsePart=function(e,t){var n,i,o,r,a,s,d,u,_;if(!t)return l(e,!1),!0;switch(n=new Date(c&&c.getTime?c.getTime():c),e){case"d":if(o=(h?10*n.getDate():0)+parseInt(t,10),isNaN(o))return;for(;o>31;)o=parseInt((""+o).slice(1),10);if(o<1)h=!1;else{if(n.setDate(o),n.getMonth()!==c.getMonth())return;h=!0}break;case"M":if(r=(f?10*(n.getMonth()+1):0)+parseInt(t,10),isNaN(r)){for(a=T.months.names,b+=t.toLowerCase();b.length>0;){for(s=0;s12;)r=parseInt((""+r).slice(1),10);r<1?f=!1:(n.setMonth(r-1),n.getMonth()!==r-1&&(n.setDate(1),n.setMonth(r-1)),f=!0);break;case"y":if(d=(p?10*n.getFullYear():0)+parseInt(t,10),isNaN(d))return;for(;d>9999;)d=parseInt((""+d).slice(1),10);d<1?p=!1:(n.setFullYear(d),p=!0);break;case"h":if(i=(m?10*(n.getHours()%12||12):0)+parseInt(t,10),isNaN(i))return;for(;i>12;)i=parseInt((""+i).slice(1),10);n.setHours(12*Math.floor(n.getHours()/12)+i%12),m=!0;break;case"H":if(i=(m?10*n.getHours():0)+parseInt(t,10),isNaN(i))return;for(;i>23;)i=parseInt((""+i).slice(1),10);n.setHours(i),m=!0;break;case"m":if(u=(g?10*n.getMinutes():0)+parseInt(t,10),isNaN(u))return;for(;u>59;)u=parseInt((""+u).slice(1),10);n.setMinutes(u),g=!0;break;case"s":if(_=(v?10*n.getSeconds():0)+parseInt(t,10),isNaN(_))return;for(;_>59;)_=parseInt((""+_).slice(1),10);n.setSeconds(_),v=!0;break;case"t":if(m){for(y+=t.toLowerCase();y.length>0;){if(0===T.AM[0].toLowerCase().indexOf(y)&&n.getHours()>=12||0===T.PM[0].toLowerCase().indexOf(y)&&n.getHours()<12)return n.setHours((n.getHours()+12)%24),c=n,!0;y=y.substring(1,y.length)}return!1}}return c=n,!0},this.toPair=function(e,t,n){return e?(t=r.getCulture(t),T=t.calendars.standard,e=T.patterns[e]||e,S=T.days,C=T.months,w=n,[e.replace(x,s(!1)),e.replace(x,s(!0))]):["",""]},this.getDateObject=function(){return p&&f&&h&&m&&g&&v&&_?new Date(c.getTime()):null},e)c=new Date(e.getTime());else for(c=new Date,d=this.toPair(n,i,o)[1],u=0;u",h="",m=".kendoDatePicker",g="click"+m,v=u.mouseAndTouchPresent?r.applyEventMap("up",m.slice(1)):g,_="open",b="close",y="change",w="disabled",k="readonly",x="k-state-default",C="k-state-focused",T="k-state-selected",S="k-state-disabled",F="k-state-hover",D="mouseenter"+m+" mouseleave"+m,I="mousedown"+m,z="id",E="min",A="max",N="month",R="aria-disabled",H="aria-expanded",P="aria-hidden",M=r.calendar,O=M.isInRange,B=M.restrictValue,L=M.isEqualDatePart,V=e.extend,U=e.proxy,W=Date,j=function(t){var n,i=this,o=document.body,s=e(f).attr(P,"true").addClass("k-calendar-container");i.options=t=t||{},n=t.id,t.omitPopup?s=t.dateDiv:(s.appendTo(o),i.popup=new a.Popup(s,V(t.popup,t,{name:"Popup",isRtl:r.support.isRtl(t.anchor)}))),n&&(n+="_dateview",s.attr(z,n),i._dateViewID=n),i.div=s,i.value(t.value)};j.prototype={_calendar:function(){var t,n=this,o=n.calendar,s=n.options;o||(t=e(f).attr(z,r.guid()).appendTo(s.omitPopup?s.dateDiv:n.popup.element).on(I,i).on(g,"td:has(.k-link)",U(n._click,n)),n.calendar=o=new a.Calendar(t,{componentType:s.componentType}),n._setOptions(s),r.calendar.makeUnselectable(o.element),o.navigate(n._value||n._current,s.start),n.value(n._value))},_setOptions:function(e){this.calendar.setOptions({focusOnNav:!1,change:e.change,culture:e.culture,dates:e.dates,depth:e.depth,footer:e.footer,format:e.format,max:e.max,min:e.min,month:e.month,weekNumber:e.weekNumber,start:e.start,disableDates:e.disableDates})},setOptions:function(e){var t=this.options,n=e.disableDates;n&&(e.disableDates=M.disabled(n)),this.options=V(t,e,{change:t.change,close:t.close,open:t.open}),this.calendar&&this._setOptions(this.options)},destroy:function(){this.popup&&this.popup.destroy()},open:function(){var e,t=this;t._calendar(),e=t.popup._hovered,t.popup._hovered=!0,t.popup.open(),setTimeout(function(){t.popup._hovered=e},1)},close:function(){this.popup.close()},min:function(e){this._option(E,e)},max:function(e){this._option(A,e)},toggle:function(){var e=this;e[e.popup.visible()?b:_]()},move:function(e){var t=this,n=e.keyCode,i=t.calendar,o=e.ctrlKey&&n==d.DOWN||n==d.ENTER,r=!1;if(e.altKey)n==d.DOWN?(t.open(),e.preventDefault(),r=!0):n==d.UP&&(t.close(),e.preventDefault(),r=!0);else if(t.popup&&t.popup.visible()){if(n==d.ESC||o&&i._cell.hasClass(T))return t.close(),e.preventDefault(),!0;n!=d.SPACEBAR&&(t._current=i._move(e)),r=!0}return r},current:function(e){this._current=e,this.calendar&&this.calendar._focus(e)},value:function(e){var t=this,n=t.calendar,i=t.options,o=i.disableDates;o&&o(e)&&(e=null),t._value=e,t._current=new W((+B(e,i.min,i.max))),n&&n.value(e)},_click:function(e){e.currentTarget.className.indexOf(T)!==-1&&(this.calendar.trigger("change"),this.close())},_option:function(e,t){var n=this,i=n.calendar;n.options[e]=t,i&&i[e](t)}},j.normalize=n,r.DateView=j,o=s.extend({init:function(t,i){var o,a,d=this;s.fn.init.call(d,t,i),t=d.element,i=d.options,i.disableDates=r.calendar.disabled(i.disableDates),i.min=l(t.attr("min"))||l(i.min),i.max=l(t.attr("max"))||l(i.max),n(i),d._initialOptions=V({},i),d._wrapper(),d.dateView=new j(V({},i,{id:t.attr(z),anchor:d.wrapper,change:function(){d._change(this.value()),d.close()},close:function(e){d.trigger(b)?e.preventDefault():(t.attr(H,!1),a.attr(P,!0))},open:function(e){var n,i=d.options;d.trigger(_)?e.preventDefault():(d.element.val()!==d._oldText&&(n=l(t.val(),i.parseFormats,i.culture),d.dateView[n?"current":"value"](n)),t.attr(H,!0),a.attr(P,!1),d._updateARIA(n))}})),a=d.dateView.div,d._icon();try{t[0].setAttribute("type","text")}catch(u){t[0].type="text"}t.addClass("k-input").attr({role:"combobox","aria-expanded":!1,"aria-owns":d.dateView._dateViewID,autocomplete:"off"}),d._reset(),d._template(),o=t.is("[disabled]")||e(d.element).parents("fieldset").is(":disabled"),o?d.enable(!1):d.readonly(t.is("[readonly]")),d._createDateInput(i),d._old=d._update(i.value||d.element.val()),d._oldText=t.val(),r.notify(d)},events:[_,b,y],options:{name:"DatePicker",value:null,footer:"",format:"",culture:"",parseFormats:[],min:new Date(1900,0,1),max:new Date(2099,11,31),start:N,depth:N,animation:{},month:{},dates:[],disableDates:null,ARIATemplate:'Current focused date is #=kendo.toString(data.current, "D")#',dateInput:!1,weekNumber:!1},setOptions:function(e){var t=this,i=t._value;s.fn.setOptions.call(t,e),e=t.options,e.min=l(e.min),e.max=l(e.max),n(e),t.dateView.setOptions(e),t._createDateInput(e),t._dateInput||t.element.val(r.toString(i,e.format,e.culture)),i&&t._updateARIA(i)},_editable:function(e){var t=this,n=t._dateIcon.off(m),o=t.element.off(m),r=t._inputWrapper.off(m),a=e.readonly,s=e.disable;a||s?(r.addClass(s?S:x).removeClass(s?x:S),o.attr(w,s).attr(k,a).attr(R,s)):(r.addClass(x).removeClass(S).on(D,t._toggleHover),o&&o.length&&(o[0].removeAttribute(w),o[0].removeAttribute(k)),o.attr(R,!1).on("keydown"+m,U(t._keydown,t)).on("focusout"+m,U(t._blur,t)).on("focus"+m,function(){t._inputWrapper.addClass(C)}),n.on(v,U(t._click,t)).on(I,i))},readonly:function(e){this._editable({readonly:e===t||e,disable:!1}),this._dateInput&&this._dateInput._editable({readonly:e===t||e,disable:!1})},enable:function(e){this._editable({readonly:!1,disable:!(e=e===t||e)}),this._dateInput&&this._dateInput._editable({readonly:!1,disable:!(e=e===t||e)})},destroy:function(){var e=this;s.fn.destroy.call(e),e.dateView.destroy(),e.element.off(m),e._dateIcon.off(m),e._inputWrapper.off(m),e._form&&e._form.off("reset",e._resetHandler)},open:function(){this.dateView.open()},close:function(){this.dateView.close()},min:function(e){return this._option(E,e)},max:function(e){return this._option(A,e)},value:function(e){var n=this;return e===t?n._value:(n._old=n._update(e),null===n._old&&n.element.val(""),n._oldText=n.element.val(),t)},_toggleHover:function(t){e(t.currentTarget).toggleClass(F,"mouseenter"===t.type)},_blur:function(){var e=this,t=e.element.val();e.close(),t!==e._oldText&&(e._change(t),t||e.dateView.current(r.calendar.getToday())),e._inputWrapper.removeClass(C)},_click:function(e){var t=this;t.dateView.toggle(),t._focusElement(e.type)},_focusElement:function(e){var t=this.element;u.touch&&(!u.mouseAndTouchPresent||(e||"").match(/touch/i))||t[0]===p()||t.trigger("focus")},_change:function(e){var t,n,i,o=this,a=o.element.val();e=o._update(e),t=!r.calendar.isEqualDate(o._old,e),n=t&&!o._typing,i=a!==o.element.val(),(n||i)&&o.element.trigger(y),t&&(o._old=e,o._oldText=o.element.val(),o.trigger(y)),o._typing=!1},_keydown:function(e){var t=this,n=t.dateView,i=t.element.val(),o=!1;n.popup.visible()||e.keyCode!=d.ENTER||i===t._oldText?(o=n.move(e),t._updateARIA(n._current),o?t._dateInput&&e.stopImmediatePropagation&&e.stopImmediatePropagation():t._typing=!0):t._change(i)},_icon:function(){var t,n=this,i=n.element;t=i.next("span.k-select"),t[0]||(t=e('').insertAfter(i)),n._dateIcon=t.attr({role:"button","aria-controls":n.dateView._dateViewID})},_option:function(e,n){var i=this,o=i.options;return n===t?o[e]:(n=l(n,o.parseFormats,o.culture),n&&(o[e]=new W((+n)),i.dateView[e](n)),t)},_update:function(e){var t,n=this,i=n.options,o=i.min,a=i.max,s=n._value,d=l(e,i.parseFormats,i.culture),u=null===d&&null===s||d instanceof Date&&s instanceof Date;return i.disableDates(d)&&(d=null,n._old||n.element.val()||(e=null)),+d===+s&&u?(t=r.toString(d,i.format,i.culture),t!==e&&n.element.val(null===d?e:t),d):(null!==d&&L(d,o)?d=B(d,o,a):O(d,o,a)||(d=null),n._value=d,n.dateView.value(d),n._dateInput&&d?n._dateInput.value(d||e):n.element.val(r.toString(d||e,i.format,i.culture)),n._updateARIA(d),d)},_wrapper:function(){var t,n=this,i=n.element;t=i.parents(".k-datepicker"),t[0]||(t=i.wrap(h).parent().addClass("k-picker-wrap k-state-default"),t=t.wrap(h).parent()),t[0].style.cssText=i[0].style.cssText,i.css({width:"100%",height:i[0].style.height}),n.wrapper=t.addClass("k-widget k-datepicker").addClass(i[0].className).removeClass("input-validation-error"),n._inputWrapper=e(t[0].firstChild)},_reset:function(){var t=this,n=t.element,i=n.attr("form"),o=t.options,a=o.disableDates,s=o.parseFormats.length?o.parseFormats:null,l=t._initialOptions.value,d=i?e("#"+i):n.closest("form"),u=n[0].defaultValue;l&&a&&a(l)&&(l=null),u&&r.parseDate(u,s,o.culture)||!l||n.attr("value",r.toString(l,o.format,o.culture)),d[0]&&(t._resetHandler=function(){t.value(l||n[0].defaultValue),t.max(t._initialOptions.max),t.min(t._initialOptions.min)},t._form=d.on("reset",t._resetHandler))},_template:function(){this._ariaTemplate=c(this.options.ARIATemplate)},_createDateInput:function(e){this._dateInput&&(this._dateInput.destroy(),this._dateInput=null),e.dateInput&&(this._dateInput=new a.DateInput(this.element,{culture:e.culture,format:e.format,min:e.min,max:e.max}))},_updateARIA:function(e){var t,n=this,i=n.dateView.calendar;n.element&&n.element.length&&n.element[0].removeAttribute("aria-activedescendant"),i&&(t=i._cell,t.attr("aria-label",n._ariaTemplate({current:e||i.current()})),n.element.attr("aria-activedescendant",t.attr("id")))}}),a.plugin(o)}(window.kendo.jQuery),window.kendo},"function"==typeof define&&define.amd?define:function(e,t,n){(n||t)()}),function(e,define){define("kendo.floatinglabel.min",["kendo.core.min"],e)}(function(){return function(e,t){var n=window.kendo,i=n.ui.Widget,o=n.ui,r=".kendoFloatingLabel",a="k-floating-label-container",s="k-state-empty",l="k-state-focused",d="k-state-disabled",u="k-no-click",c=e.proxy,p=i.extend({init:function(o,r){var s=this;i.fn.init.call(s,o,r),r=e.extend(!0,{},r),s.refresh(),s._editable({readonly:s.options.widget.options.readonly!==t&&s.options.widget.options.readonly,disable:s.options.widget.options.enable!==t&&!s.options.widget.options.enable}),s.element.addClass(a),n.notify(s)},options:{name:"FloatingLabel",widget:null},readonly:function(e){this._editable({readonly:e===t||e,disable:!1})},enable:function(e){this._editable({readonly:!1,disable:!(e=e===t||e)})},refresh:function(){var e=this,t=e.element;t.removeClass(s).removeClass(l),e.options.widget.element.val()||t.addClass(s),document.activeElement===e.options.widget.element[0]&&t.addClass(l)},destroy:function(){var e=this;e.element.off(r),i.fn.destroy.call(e)},_editable:function(e){var t=this,n=t.element,i=e.disable,o=e.readonly;n.off(r),o||i?n.toggleClass(d,i).toggleClass(u,o):(n.removeClass(d).removeClass(u),n.on("focusin"+r,c(t.refresh,t)),n.on("focusout"+r,c(t.refresh,t)))}});o.plugin(p)}(window.kendo.jQuery),window.kendo},"function"==typeof define&&define.amd?define:function(e,t,n){(n||t)()}),function(e,define){define("kendo.numerictextbox.min",["kendo.core.min","kendo.userevents.min","kendo.floatinglabel.min"],e)}(function(){return function(e,t){function n(e,t){var n="k-i-arrow-"+("increase"===e?"60-up":"60-down");return''}function i(e,t){var n=(""+parseFloat(e,10)).split(F);return n[1]&&(n[1]=n[1].substring(0,t)),n.join(F)}var o=window.kendo,r=o.caret,a=o.keys,s=o.ui,l=s.Widget,d=o._activeElement,u=o._extractFormat,c=o.parseFloat,p=o.support.placeholder,f=o.getCulture,h="change",m="disabled",g="readonly",v="k-input",_="spin",b=".kendoNumericTextBox",y="touchend",w="mouseleave"+b,k="mouseenter"+b+" "+w,x="k-state-default",C="k-state-focused",T="k-state-hover",S="focus",F=".",D="k-icon",I="k-label k-input-label",z="k-state-selected",E="k-state-disabled",A="k-state-invalid",N="aria-disabled",R=/^(-)?(\d*)$/,H=null,P=e.proxy,M=e.isPlainObject,O=e.extend,B=l.extend({init:function(n,i){var r,a,s,d,c,p,f=this,h=i&&i.step!==t;l.fn.init.call(f,n,i),i=f.options,n=f.element.on("focusout"+b,P(f._focusout,f)).attr("role","spinbutton"),i.placeholder=i.placeholder||n.attr("placeholder"),r=f.min(n.attr("min")),a=f.max(n.attr("max")),s=f._parse(n.attr("step")),i.min===H&&r!==H&&(i.min=r),i.max===H&&a!==H&&(i.max=a),h||s===H||(i.step=s),f._initialOptions=O({},i),p=n.attr("type"),f._reset(),f._wrapper(),f._arrows(),f._validation(),f._input(),o.support.mobileOS?f._text.on(y+b+" "+S+b,function(){o.support.browser.edge?f._text.one(S+b,function(){f._toggleText(!1),n.focus()}):(f._toggleText(!1),n.focus())}):f._text.on(S+b,P(f._click,f)),n.attr("aria-valuemin",i.min!==H?i.min*i.factor:i.min).attr("aria-valuemax",i.max!==H?i.max*i.factor:i.max),i.format=u(i.format),d=i.value,d==H&&(d="number"==p?parseFloat(n.val()):n.val()),f.value(d),c=n.is("[disabled]")||e(f.element).parents("fieldset").is(":disabled"),c?f.enable(!1):f.readonly(n.is("[readonly]")),f.angular("compile",function(){return{elements:f._text.get()}}),f._label(),o.notify(f)},options:{name:"NumericTextBox",decimals:H,restrictDecimals:!1,min:H,max:H,value:H,step:1,round:!0,culture:"",format:"n",spinners:!0,placeholder:"",factor:1,upArrowText:"Increase value",downArrowText:"Decrease value",label:null},events:[h,_],_editable:function(e){var t=this,n=t.element,i=e.disable,o=e.readonly,r=t._text.add(n),a=t._inputWrapper.off(k);t._toggleText(!0),t._upArrowEventHandler.unbind("press"),t._downArrowEventHandler.unbind("press"),n.off("keydown"+b).off("keyup"+b).off("input"+b).off("paste"+b),t._inputLabel&&t._inputLabel.off(b),o||i?(a.addClass(i?E:x).removeClass(i?x:E),r.attr(m,i).attr(g,o).attr(N,i)):(a.addClass(x).removeClass(E).on(k,t._toggleHover),r.removeAttr(m).removeAttr(g).attr(N,!1),t._upArrowEventHandler.bind("press",function(e){e.preventDefault(),t._spin(1),t._upArrow.addClass(z)}),t._downArrowEventHandler.bind("press",function(e){e.preventDefault(),t._spin(-1),t._downArrow.addClass(z)}),t.element.on("keydown"+b,P(t._keydown,t)).on("keyup"+b,P(t._keyup,t)).on("paste"+b,P(t._paste,t)).on("input"+b,P(t._inputHandler,t)),t._inputLabel&&t._inputLabel.on("click"+b,P(t.focus,t)))},readonly:function(e){var n=this;this._editable({readonly:e===t||e,disable:!1}),n.floatingLabel&&n.floatingLabel.readonly(e===t||e)},enable:function(e){var n=this;this._editable({readonly:!1,disable:!(e=e===t||e)}),n.floatingLabel&&n.floatingLabel.enable(e=e===t||e)},setOptions:function(e){var n=this;l.fn.setOptions.call(n,e),n._arrowsWrap.toggle(n.options.spinners),n._inputWrapper.toggleClass("k-expand-padding",!n.options.spinners),n._text.prop("placeholder",n.options.placeholder),n._placeholder(n.options.placeholder),n.element.attr({"aria-valuemin":n.options.min!==H?n.options.min*n.options.factor:n.options.min,"aria-valuemax":n.options.max!==H?n.options.max*n.options.factor:n.options.max}),n.options.format=u(n.options.format),e.value!==t&&n.value(e.value)},destroy:function(){var e=this;e._inputLabel&&(e._inputLabel.off(b),e.floatingLabel&&e.floatingLabel.destroy()),e.element.add(e._text).add(e._upArrow).add(e._downArrow).add(e._inputWrapper).off(b),e._upArrowEventHandler.destroy(),e._downArrowEventHandler.destroy(),e._form&&e._form.off("reset",e._resetHandler),l.fn.destroy.call(e)},min:function(e){return this._option("min",e)},max:function(e){return this._option("max",e)},step:function(e){return this._option("step",e)},value:function(e){var n,i=this;return e===t?i._value:(e=i._parse(e),n=i._adjust(e),e===n&&(i._update(e),i._old=i._value),t)},focus:function(){this._focusin()},_adjust:function(e){var t=this,n=t.options,i=n.min,o=n.max;return e===H?e:(i!==H&&eo&&(e=o),e)},_arrows:function(){var t,i=this,r=function(){clearTimeout(i._spinning),t.removeClass(z)},a=i.options,s=a.spinners,l=i.element;t=l.siblings("."+D),t[0]||(t=e(n("increase",a.upArrowText)+n("decrease",a.downArrowText)).insertAfter(l),i._arrowsWrap=t.wrapAll('').parent()),s||(t.parent().toggle(s),i._inputWrapper.addClass("k-expand-padding")),i._upArrow=t.eq(0),i._upArrowEventHandler=new o.UserEvents(i._upArrow,{release:r}),i._downArrow=t.eq(1),i._downArrowEventHandler=new o.UserEvents(i._downArrow,{release:r})},_validation:function(){var t=this,n=t.element;t._validationIcon=e("").hide().insertAfter(n)},_blur:function(){var e=this;e._toggleText(!0),e._change(e.element.val())},_click:function(e){var t=this;clearTimeout(t._focusing),t._focusing=setTimeout(function(){var n,i,o,a=e.target,s=r(a)[0],l=a.value.substring(0,s),d=t._format(t.options.format),u=d[","],c=0;u&&(i=RegExp("\\"+u,"g"),o=RegExp("(^(-)$)|(^(-)?([\\d\\"+u+"]+)(\\"+d[F]+")?(\\d+)?)")),o&&(n=o.exec(l)),n&&(c=n[0].replace(i,"").length,l.indexOf("(")!=-1&&t._value<0&&c++),t._focusin(),r(t.element[0],c)})},_change:function(e){var t=this,n=t.options.factor;n&&1!==n&&(e=o.parseFloat(e),null!==e&&(e/=n)),t._update(e),e=t._value,t._old!=e&&(t._old=e,t._typing||t.element.trigger(h),t.trigger(h)),t._typing=!1},_culture:function(e){return e||f(this.options.culture)},_focusin:function(){var e=this;e._inputWrapper.addClass(C),e._toggleText(!1),e.element[0].focus()},_focusout:function(){var e=this;clearTimeout(e._focusing),e._inputWrapper.removeClass(C).removeClass(T),e._blur(),e._removeInvalidState()},_format:function(e,t){var n=this._culture(t).numberFormat;return e=e.toLowerCase(),e.indexOf("c")>-1?n=n.currency:e.indexOf("p")>-1&&(n=n.percent),n},_input:function(){var t,n=this,i=n.options,o="k-formatted-value",r=n.element.addClass(v).show()[0],a=r.accessKey,s=n.wrapper;t=s.find(F+o),t[0]||(t=e('').insertBefore(r).addClass(o).attr("aria-hidden","true"));try{r.setAttribute("type","text")}catch(l){r.type="text"}t[0].title=r.title,t[0].tabIndex=r.tabIndex,t[0].style.cssText=r.style.cssText,t.prop("placeholder",i.placeholder),a&&(t.attr("accesskey",a),r.accessKey=""),n._text=t.addClass(r.className).attr({role:"spinbutton","aria-valuemin":i.min!==H?i.min*i.factor:i.min,"aria-valuemax":i.max!==H?i.max*i.factor:i.max,autocomplete:"off"})},_keydown:function(e){var n=this,i=e.keyCode;return i===a.NUMPAD_DOT&&(n._numPadDot=!0),i==a.DOWN?(n._step(-1),t):i==a.UP?(n._step(1),t):i==a.ENTER?(n._change(n.element.val()),t):(i!=a.TAB&&(n._typing=!0),n._cachedCaret=r(n.element),t)},_keyup:function(){this._removeInvalidState()},_inputHandler:function(){var e=this.element,t=e.val(),n=this.options.min,i=this._format(this.options.format),o=i[F],a=null!==n&&n>=0&&"-"===t.charAt(0);this._numPadDot&&o!==F&&(t=t.replace(F,o),this.element.val(t),this._numPadDot=!1),this._numericRegex(i).test(t)&&!a?this._oldText=t:(this._blinkInvalidState(),this.element.val(this._oldText),this._cachedCaret&&(r(e,this._cachedCaret[0]),this._cachedCaret=null))},_blinkInvalidState:function(){var e=this;e._addInvalidState(),clearTimeout(e._invalidStateTimeout),e._invalidStateTimeout=setTimeout(P(e._removeInvalidState,e),100)},_addInvalidState:function(){var e=this;e._inputWrapper.addClass(A),e._validationIcon.show()},_removeInvalidState:function(){var e=this;e._inputWrapper.removeClass(A),e._validationIcon.hide(),e._invalidStateTimeout=null},_numericRegex:function(e){var t=this,n=e[F],i=t.options.decimals,o="*";return n===F&&(n="\\"+n),i===H&&(i=e.decimals),0===i&&t.options.restrictDecimals?R:(t.options.restrictDecimals&&(o="{0,"+i+"}"),t._separator!==n&&(t._separator=n,t._floatRegExp=RegExp("^(-)?(((\\d+("+n+"\\d"+o+")?)|("+n+"\\d"+o+")))?$")),t._floatRegExp)},_paste:function(e){var t=this,n=e.target,i=n.value,o=t._format(t.options.format);setTimeout(function(){var e=t._parse(n.value);e===H?t._update(i):(n.value=(""+e).replace(F,o[F]),t._adjust(e)===e&&t._numericRegex(o).test(n.value)||t._update(i))})},_option:function(e,n){var i=this,o=i.element,r=i.options;return n===t?r[e]:(n=i._parse(n),(n||"step"!==e)&&(r[e]=n,o.add(i._text).attr("aria-value"+e,n),o.attr(e,n)),t)},_spin:function(e,t){var n=this;t=t||500,clearTimeout(n._spinning),n._spinning=setTimeout(function(){n._spin(e,50)},t),n._step(e)},_step:function(e){var t=this,n=t.element,i=t._value,o=t._parse(n.val())||0,r=t.options.decimals||2;d()!=n[0]&&t._focusin(),t.options.factor&&o&&(o/=t.options.factor),o=+(o+t.options.step*e).toFixed(r),o=t._adjust(o),t._update(o),t._typing=!1,i!==o&&t.trigger(_)},_toggleHover:function(t){e(t.currentTarget).toggleClass(T,"mouseenter"===t.type)},_toggleText:function(e){var t=this;t._text.toggle(e),t.element.toggle(!e)},_parse:function(e,t){return c(e,this._culture(t),this.options.format)},_round:function(e,t){var n=this.options.round?o._round:i;return n(e,t)},_update:function(e){var t,n=this,i=n.options,r=i.factor,a=i.format,s=i.decimals,l=n._culture(),d=n._format(a,l);s===H&&(s=d.decimals),e=n._parse(e,l),t=e!==H,t&&(e=parseFloat(n._round(e,s),10)),n._value=e=n._adjust(e),n._placeholder(o.toString(e,a,l)),t?(r&&(e=parseFloat(n._round(e*r,s),10)),e=""+e,e.indexOf("e")!==-1&&(e=n._round(+e,s)),e=e.replace(F,d[F])):e=null,n.element.val(e),n._oldText=e,n.element.add(n._text).attr("aria-valuenow",e)},_placeholder:function(e){var t=this._text;t.val(e),p||e||t.val(this.options.placeholder),t.attr("title",this.element.attr("title")||t.val())},_label:function(){var n,i,r=this,a=r.element,s=r.options,l=a.attr("id");null!==s.label&&(n=!!M(s.label)&&s.label.floating,i=M(s.label)?s.label.content:s.label,n&&(r._floatingLabelContainer=r.wrapper.wrap("").parent(),r.floatingLabel=new o.ui.FloatingLabel(r._floatingLabelContainer,{widget:r})),o.isFunction(i)&&(i=i.call(r)),i||(i=""),l||(l=s.name+"_"+o.guid(),a.attr("id",l)),r._inputLabel=e("'").insertBefore(r.wrapper),r.element.attr("disabled")===t&&r.element.attr("readonly")===t&&r._inputLabel.on("click"+b,P(r.focus,r)))},_wrapper:function(){var t,n=this,i=n.element,o=i[0];t=i.parents(".k-numerictextbox"),t.is("span.k-numerictextbox")||(t=i.hide().wrap('').parent(),t=t.wrap("").parent()),t[0].style.cssText=o.style.cssText,o.style.width="",n.wrapper=t.addClass("k-widget k-numerictextbox").addClass(o.className).removeClass("input-validation-error").css("display",""),n._inputWrapper=e(t[0].firstChild)},_reset:function(){var t=this,n=t.element,i=n.attr("form"),o=i?e("#"+i):n.closest("form");o[0]&&(t._resetHandler=function(){setTimeout(function(){t.value(n[0].value),t.max(t._initialOptions.max),t.min(t._initialOptions.min)})},t._form=o.on("reset",t._resetHandler))}});s.plugin(B)}(window.kendo.jQuery),window.kendo},"function"==typeof define&&define.amd?define:function(e,t,n){(n||t)()}),function(e,define){define("kendo.validator.min",["kendo.core.min"],e)}(function(){return function(e,t){function n(t){var n,i=d.ui.validator.ruleResolvers||{},o={};for(n in i)e.extend(!0,o,i[n].resolve(t));return o}function i(e){return e.replace(/&/g,"&").replace(/"/g,'"').replace(/'/g,"'").replace(/</g,"<").replace(/>/g,">")}function o(e){return e=(e+"").split("."),e.length>1?e[1].length:0}function r(t){return e(e.parseHTML?e.parseHTML(t):t)}function a(t,n){var i,o,r,a,s=e();for(r=0,a=t.length;r#for(var i = 0; i < errors.length; i += 1){#
      • #= errors[i].message #
      • # } #',l=u.extend({init:function(t,i){var o=this,r=n(t),a="["+d.attr("validate")+"!=false]";i=i||{},i.rules=e.extend({},d.ui.validator.rules,r.rules,i.rules),i.messages=e.extend({},d.ui.validator.messages,r.messages,i.messages),u.fn.init.call(o,t,i),o._errorTemplate=d.template(o.options.errorTemplate),o._summaryTemplate=d.template(o.options.validationSummary.template||s),o.element.is(D)&&o.element.attr(I,I),o._inputSelector=x+a,o._checkboxSelector=C+a,o._errors={},o._attachEvents(),o._isValidated=!1,o._validateOnInit()&&o.validate()},events:[z,E,A],options:{name:"Validator",errorTemplate:'#= message #',messages:{required:"{0} is required",pattern:"{0} is not valid",min:"{0} should be greater than or equal to {1}",max:"{0} should be smaller than or equal to {1}",step:"{0} is not valid",email:"{0} is not valid email",url:"{0} is not valid URL",date:"{0} is not valid date",dateCompare:"End date should be greater than or equal to the start date"},rules:{required:function(e){var t=e.filter("[type=checkbox]").length&&!e.is(":checked"),n=e.val();return!(P(e,"required")&&(!n||""===n||0===n.length||t))},pattern:function(e){return!e.filter("[type=text],[type=email],[type=url],[type=tel],[type=search],[type=password]").filter("[pattern]").length||""===e.val()||R(e.val(),e.attr("pattern"))},min:function(e){if(e.filter(T+",["+d.attr("type")+"=number]").filter("[min]").length&&""!==e.val()){var t=parseFloat(e.attr("min"))||0,n=d.parseFloat(e.val());return t<=n}return!0},max:function(e){if(e.filter(T+",["+d.attr("type")+"=number]").filter("[max]").length&&""!==e.val()){var t=parseFloat(e.attr("max"))||0,n=d.parseFloat(e.val());return t>=n}return!0},step:function(e){if(e.filter(T+",["+d.attr("type")+"=number]").filter("[step]").length&&""!==e.val()){var t,n=parseFloat(e.attr("min"))||0,i=parseFloat(e.attr("step"))||1,r=parseFloat(e.val()),a=o(i);return a?(t=Math.pow(10,a),Math.floor((r-n)*t)%(i*t)/Math.pow(100,a)===0):(r-n)%i===0}return!0},email:function(e){return H(e,"[type=email],["+d.attr("type")+"=email]",w)},url:function(e){return H(e,"[type=url],["+d.attr("type")+"=url]",k)},date:function(e){return!e.filter("[type^=date],["+d.attr("type")+"=date]").length||""===e.val()||null!==d.parseDate(e.val(),e.attr(d.attr("format")))}},validateOnBlur:!0,validationSummary:!1},_allowSubmit:function(){return d.ui.validator.allowSubmit(this.element,this.errors())},_validateOnInit:function(){return d.ui.validator.validateOnInit(this.element)},destroy:function(){ +u.fn.destroy.call(this),this.element.off(c),this.validationSummary&&(this.validationSummary.off(c),this.validationSummary=null)},value:function(){return!!this._isValidated&&0===this.errors().length},_submit:function(e){return!(!this.validate()&&!this._allowSubmit())||(e.stopPropagation(),e.stopImmediatePropagation(),e.preventDefault(),!1)},_checkElement:function(e){var t=this.value();this.validateInput(e),this.value()!==t&&this.trigger(E)},_attachEvents:function(){var t=this;t.element.is(D)&&t.element.on("submit"+c,N(t._submit,t)),t.options.validateOnBlur&&(t.element.is(x)?(t.element.on(S+c,function(){t._checkElement(t.element)}),t.element.is(C)&&t.element.on("click"+c,function(){t._checkElement(t.element)})):(t.element.on(S+c,t._inputSelector,function(){t._checkElement(e(this))}),t.element.on("click"+c,t._checkboxSelector,function(){t._checkElement(e(this))})))},validate:function(){var e,t,n,i,o=!1,r=this.value();if(this._errors={},this.element.is(x))o=this.validateInput(this.element);else{for(i=!1,e=this.element.find(this._inputSelector),t=0,n=e.length;t").insertBefore(n.element),t.addClass([g,_].join(" ")),t.attr("role","alert"),t.on("click"+c,N(n._summaryClick,n)),t},_summaryClick:function(t){t.preventDefault();var n,i=this,o=e(t.target),r=i.element.find("[name='"+o.data("field")+"']");r.length&&(n=d.getWidgetFocusableElement(r),n&&n.focus())},showValidationSummary:function(){var e,t=this,n=t.validationSummary,i=t._errorsByName();n||(n=t.validationSummary=t._renderSummary()),e=r(t._summaryTemplate({errors:i})),n.html(e),n.toggleClass("k-hidden",!i.length)},hideValidationSummary:function(){var e=this,t=e.validationSummary;t&&t.addClass("k-hidden")}}),d.ui.plugin(l)}(window.kendo.jQuery),window.kendo},"function"==typeof define&&define.amd?define:function(e,t,n){(n||t)()}),function(e,define){define("kendo.binder.min",["kendo.core.min","kendo.data.min"],e)}(function(){return function(e,t){function n(t,n,i){return v.extend({init:function(e,t,n){var i=this;v.fn.init.call(i,e.element[0],t,n),i.widget=e,i._dataBinding=E(i.dataBinding,i),i._dataBound=E(i.dataBound,i),i._itemChange=E(i.itemChange,i)},itemChange:function(e){a(e.item[0],e.data,this._ns(e.ns),[e.data].concat(this.bindings[t]._parents()))},dataBinding:function(e){var t,n,i=this.widget,o=e.removedItems||i.items();for(t=0,n=o.length;t0&&(n=n.get(o.substring(0,i))),e.start(n),r=n!==e.source?r.call(n,e.source):r.call(n),e.stop(n)),n&&n!==e.source&&(e.currentSource=n,n.unbind(B,e._change).bind(B,e._change)),e.stop(e.source),r},set:function(e){var t=this.currentSource||this.source,n=C.getter(this.path)(t);"function"==typeof n?t!==this.source?n.call(t,this.source,e):n.call(t,e):t.set(this.path,e)},destroy:function(){this.observable&&(this.source.unbind(B,this._change),this.currentSource&&this.currentSource.unbind(B,this._change)),this.unbind()}}),m=h.extend({get:function(){var e,t=this.source,n=this.path,i=0;for(e=t.get(n);!e&&t;)t=this.parents[++i],t instanceof S&&(e=t.get(n));return E(e,t)}}),g=h.extend({init:function(e,t,n){var i=this;h.fn.init.call(i,e,t),i.template=n},render:function(e){var t;return this.start(this.source),t=C.render(this.template,e),this.stop(this.source),t}}),v=z.extend({init:function(e,t,n){this.element=e,this.bindings=t,this.options=n},bind:function(e,t){var n=this;e=t?e[t]:e,e.bind(B,function(e){n.refresh(t||e)}),n.refresh(t)},destroy:function(){}}),_=v.extend({dataType:function(){var e=this.element.getAttribute("data-type")||this.element.type||"text";return e.toLowerCase()},parsedValue:function(){return this._parseValue(this.element.value,this.dataType())},_parseValue:function(e,t){return"date"==t?e=C.parseDate(e,"yyyy-MM-dd"):"datetime-local"==t?e=C.parseDate(e,["yyyy-MM-ddTHH:mm:ss","yyyy-MM-ddTHH:mm"]):"number"==t?e=C.parseFloat(e):"boolean"==t&&(e=e.toLowerCase(),e=null!==C.parseFloat(e)?!!C.parseFloat(e):"true"===e.toLowerCase()),e}}),I.attr=v.extend({refresh:function(e){this.element.setAttribute(e,this.bindings.attr[e].get())}}),I.css=v.extend({init:function(e,t,n){v.fn.init.call(this,e,t,n),this.classes={}},refresh:function(t){var n=e(this.element),i=this.bindings.css[t],o=this.classes[t]=i.get();o?n.addClass(t):n.removeClass(t)}}),I.style=v.extend({refresh:function(e){this.element.style[e]=this.bindings.style[e].get()||""}}),I.enabled=v.extend({refresh:function(){this.bindings.enabled.get()?this.element.removeAttribute("disabled"):this.element.setAttribute("disabled","disabled")}}),I.readonly=v.extend({refresh:function(){this.bindings.readonly.get()?this.element.setAttribute("readonly","readonly"):this.element.removeAttribute("readonly")}}),I.disabled=v.extend({refresh:function(){this.bindings.disabled.get()?this.element.setAttribute("disabled","disabled"):this.element.removeAttribute("disabled")}}),I.events=v.extend({init:function(e,t,n){v.fn.init.call(this,e,t,n),this.handlers={}},refresh:function(t){var n=e(this.element),i=this.bindings.events[t],o=this.handlers[t];o&&n.off(t,o),o=this.handlers[t]=i.get(),n.on(t,i.source,o)},destroy:function(){var t,n=e(this.element);for(t in this.handlers)n.off(t,this.handlers[t])}}),I.text=v.extend({refresh:function(){var t=this.bindings.text.get(),n=this.element.getAttribute("data-format")||"";null==t&&(t=""),e(this.element).text(C.toString(t,n))}}),I.visible=v.extend({refresh:function(){this.element.style.display=this.bindings.visible.get()?"":"none"}}),I.invisible=v.extend({refresh:function(){this.element.style.display=this.bindings.invisible.get()?"none":""}}),I.html=v.extend({refresh:function(){this.element.innerHTML=this.bindings.html.get()}}),I.value=_.extend({init:function(t,n,i){_.fn.init.call(this,t,n,i),this._change=E(this.change,this),this.eventName=i.valueUpdate||B,e(this.element).on(this.eventName,this._change),this._initChange=!1},change:function(){this._initChange=this.eventName!=B,this.bindings[A].set(this.parsedValue()),this._initChange=!1},refresh:function(){var e,t;this._initChange||(e=this.bindings[A].get(),null==e&&(e=""),t=this.dataType(),"date"==t?e=C.toString(e,"yyyy-MM-dd"):"datetime-local"==t&&(e=C.toString(e,"yyyy-MM-ddTHH:mm:ss")),this.element.value=e),this._initChange=!1},destroy:function(){e(this.element).off(this.eventName,this._change)}}),I.source=v.extend({init:function(e,t,n){v.fn.init.call(this,e,t,n);var i=this.bindings.source.get();i instanceof C.data.DataSource&&n.autoBind!==!1&&i.fetch()},refresh:function(e){var t=this,n=t.bindings.source.get();n instanceof F||n instanceof C.data.DataSource?(e=e||{},"add"==e.action?t.add(e.index,e.items):"remove"==e.action?t.remove(e.index,e.items):"itemchange"!=e.action&&t.render()):t.render()},container:function(){var e=this.element;return"table"==e.nodeName.toLowerCase()&&(e.tBodies[0]||e.appendChild(document.createElement("tbody")),e=e.tBodies[0]),e},template:function(){var e=this.options,t=e.template,n=this.container().nodeName.toLowerCase();return t||(t="select"==n?e.valueField||e.textField?C.format('',e.valueField||e.textField,e.textField||e.valueField):"":"tbody"==n?"
        ":"ul"==n||"ol"==n?"
      • #:data#
      • ":"#:data#",t=C.template(t)),t},add:function(t,n){var i,o,r,s,l=this.container(),d=l.cloneNode(!1),u=l.children[t];if(e(d).html(C.render(this.template(),n)),d.children.length)for(i=this.bindings.source._parents(),o=0,r=n.length;o-1?e.splice(t,1):e.push(o)}else this.bindings[H].set(o)},refresh:function(){var e,n,i=this.bindings[H].get(),o=i,r=this.dataType(),a=this.element;if("checkbox"==a.type)if(o instanceof F){if(e=-1,i=this.parsedValue(),i instanceof Date){for(n=0;n=0}else a.checked=o;else"radio"==a.type&&("date"==r?i=C.toString(i,"yyyy-MM-dd"):"datetime-local"==r&&(i=C.toString(i,"yyyy-MM-ddTHH:mm:ss")),a.checked=null!==i&&t!==i&&a.value===""+i)},value:function(){var e=this.element,t=e.value;return"checkbox"==e.type&&(t=e.checked),t},destroy:function(){e(this.element).off(B,this._change)}})},I.select={source:I.source.extend({refresh:function(n){var i,o=this,r=o.bindings.source.get();r instanceof F||r instanceof C.data.DataSource?(n=n||{},"add"==n.action?o.add(n.index,n.items):"remove"==n.action?o.remove(n.index,n.items):"itemchange"!=n.action&&n.action!==t||(o.render(),o.bindings.value&&o.bindings.value&&(i=f(o.bindings.value.get(),e(o.element).data("valueField")),null===i?o.element.selectedIndex=-1:o.element.value=i))):o.render()}}),value:_.extend({init:function(t,n,i){_.fn.init.call(this,t,n,i),this._change=E(this.change,this),e(this.element).change(this._change)},parsedValue:function(){var e,t,n,i,o=this.dataType(),r=[];for(n=0,i=this.element.options.length;n=0?y[f]=t:h(i)||(o=d.getCulture(),"number"==typeof i&&o.name.length?(r=o.numberFormat,a=(""+i).replace(v,r[v]),y[t]=a):y[t]=m(i)?i.value||t:i),y[d.attr(t+"-msg")]=i.message,y.autocomplete=_;for(s in p)y[s]=p[s];return g(u,x)>=0&&(y[f]=u),y[b]="value:"+e.field,y}function r(e,t){var n=e.attr("id");return n&&(t.id=n,e.removeAttr("id")),t}function a(e){var t,n,i,o,r,a;if(e&&e.length)for(a=[],t=0,n=e.length;t":"Editor"===e?"
        ",indent:function(e){return e.replace(/<\/(p|li|ul|ol|h[1-6]|table|tr|td|th)>/gi,"\n").replace(/<(ul|ol)([^>]*)>
      • \n/gi,"
        \n").replace(/\n$/,"")}}),n.ui.editor.ViewHtmlCommand=u,o.EditorUtils.registerTool("viewHtml",new s({command:u,template:new l({template:r.buttonTemplate,title:"View HTML"})}))}(window.kendo.jQuery)},"function"==typeof define&&define.amd?define:function(e,t,n){(n||t)()}),function(e,define){define("editor/plugins/format.min",["editor/command.min"],e)}(function(){!function(e){var t=window.kendo,n=e.extend,i=t.ui.editor,o=i.Tool,r=i.Command,a=i.EditorUtils,s=r.extend({init:function(e){e.formatter=e.formatter();var t=e.formatter.finder;t&&a.formatByName("immutable",t.format)&&t._initOptions({immutables:e.immutables}),r.fn.init.call(this,e)}}),l=o.extend({init:function(e){o.fn.init.call(this,e)},command:function(e){var t=this;return new s(n(e,{formatter:t.options.formatter}))},update:function(e,t){var n=this.options.finder.isFormatted(t);e.toggleClass("k-state-selected",n),e.attr("aria-pressed",n)}});e.extend(i,{FormatCommand:s,FormatTool:l})}(window.kendo.jQuery)},"function"==typeof define&&define.amd?define:function(e,t,n){(n||t)()}),function(e,define){define("editor/plugins/inlineformat.min",["editor/plugins/format.min"],e)}(function(){!function(e){var t=window.kendo,n=t.Class,i=t.ui.editor,o=t.ui.Editor.fn.options.formats,r=i.EditorUtils,a=i.Tool,s=i.ToolTemplate,l=i.FormatTool,d=i.Dom,u=i.RangeUtils,c=e.extend,p=i.EditorUtils.registerTool,f=i.EditorUtils.registerFormat,h="mousedown.kendoEditor",m="keydown.kendoEditor",g="k-marker",v=n.extend({init:function(e){this.format=e},numberOfSiblings:function(e){var t,n=0,i=0,o=0,r=e.parentNode;for(t=r.firstChild;t;t=t.nextSibling)t!=e&&(t.className==g?o++:3==t.nodeType?n++:i++);return o>1&&r.firstChild.className==g&&r.lastChild.className==g?0:i+n},findSuitable:function(e,t){var n,i;if(!t&&this.numberOfSiblings(e)>0)return null;for(n=e.parentNode,i=this.format[0].tags;!d.ofType(n,i);){if(this.numberOfSiblings(n)>0)return null;n=n.parentNode}return n},findFormat:function(e){var t,n,i,o,r,a=this.format,s=d.attrEquals;for(t=0,n=a.length;t0&&this.activate(e,n)},immutables:function(){return this.editor&&this.editor.options.immutables},apply:function(e){var t,n,i,o,r=[];if(e.length>1)for(t=0,n=e.length;t0)for(t=0;t1;)if(t=e.pop(),n=e[e.length-1],t.previousSibling&&t.previousSibling.className==g&&n.appendChild(t.previousSibling),t.tagName==n.tagName&&t.previousSibling==n&&t.style.cssText==n.style.cssText&&t.className===n.className){for(;t.firstChild;)n.appendChild(t.firstChild);d.remove(t)}}}),b=v.extend({init:function(e,t){this.format=e,this.greedyProperty=t,v.fn.init.call(this,e)},getInlineCssValue:function(e){var n,i,o,r,a,s,l,u,c,p,f,h,m=e.attributes,g=t.trim;if(m)for(n=0,i=m.length;n=0?d.toHex(h):h}},getFormatInner:function(t){var n,i,o,r=e(d.isDataNode(t)?t.parentNode:t),a=r.parentsUntil("[contentEditable]").addBack().toArray().reverse();for(n=0,i=a.length;n
        ")({messages:this.editor.options.messages})},exec:function(){var t,n,i,o,r=this.editor.options.messages;this._initialText="",this._range=this.lockRange(!0),this.formatter.immutables=this.immutables(),t=v(this._range),n=t.length?this.formatter.finder.findSuitable(t[0]):null,i=t.length&&"img"==d.name(t[0]),o=this.createDialog(this._dialogTemplate(),{title:r.createLink,close:s(this._close,this),visible:!1}),n&&(this._range.selectNodeContents(n),t=v(this._range)),this._initialText=this.linkText(t),o.find(".k-dialog-insert").click(s(this._apply,this)).end().find(".k-dialog-close").click(s(this._close,this)).end().find(".k-edit-field input").keydown(s(this._keydown,this)).end().find("#k-editor-link-url").val(this.linkUrl(n)).end().find("#k-editor-link-text").val(this._initialText).end().find("#k-editor-link-title").val(n?n.title:"").end().find("#k-editor-link-target").attr("checked",!!n&&"_blank"==n.target).end().find(".k-editor-link-text-row").toggle(!i),this._dialog=o.data("kendoWindow").center().open(),e("#k-editor-link-url",o).focus().select()},_keydown:function(e){var t=o.keys;e.keyCode==t.ENTER?this._apply(e):e.keyCode==t.ESC&&this._close(e)},_apply:function(t){var n,i,o,r=this._dialog.element,a=e("#k-editor-link-url",r).val(),s=e("#k-editor-link-text",r);a&&a!=w&&(a.indexOf("@")>0&&!/^(\w+:)|(\/\/)/i.test(a)&&(a="mailto:"+a),this.attributes={href:a},n=e("#k-editor-link-title",r).val(),n&&(this.attributes.title=n),s.is(":visible")&&(i=s.val(),i||this._initialText?i&&i!==this._initialText&&(this.attributes.innerText=d.stripBom(i)):this.attributes.innerText=a),o=e("#k-editor-link-target",r).is(":checked"),this.attributes.target=o?"_blank":null,this.formatter.apply(this._range,this.attributes)),this._close(t),this.change&&this.change()},_close:function(e){e.preventDefault(),this._dialog.destroy(),d.windowFromDocument(u.documentFromRange(this._range)).focus(),this.releaseRange(this._range)},linkUrl:function(e){return e?e.getAttribute("href",2):w},linkText:function(e){var t,n="";for(t=0;t-1)return this.end.node=t,this.end.offset=i+1,!1},_detectStart:function(e,t){var i=n(e,/\s/),o=i+1;if(this.text=e.substring(o)+this.text,this.start.node=t,this.start.offset=o,i>-1)return!1},_skipStartPuntuation:function(e,t,n){var o=i(e,/\w/),r=o;if(o===-1&&(r=e.length),this.text=this.text.substring(r),this.start.node=t,this.start.offset=r+(0|n),o>-1)return!1}}),E=function(){return{node:null,offset:null,blank:function(){return null===this.node&&null===this.offset}}},A=r.extend({init:function(n){this.node=n.node,this.offset=n.offset===t?d.isDataNode(this.node)&&this.node.length||0:n.offset,this.cancelAtNode=n.cancelAtNode||this.cancelAtNode||e.noop},traverse:function(e){e&&(this.cancel=!1,this._traverse(e,this.node,this.offset))},_traverse:function(e,n,i){var o,r,a,s;if(n&&!this.cancel){if(3!==n.nodeType)return r=this.edgeNode(n),this.cancel=this.cancel||this.cancelAtNode(r),this._traverse(e,r);if(o=n.data,i!==t&&(o=this.subText(o,i)),this.cancel=e(o,n,i)===!1,a=this.next(n),!a)for(s=n.parentNode;!a&&d.isInline(s);)a=this.next(s),s=s.parentNode;this.cancel=this.cancel||this.cancelAtNode(a),this._traverse(e,a)}},extendOptions:function(t){return e.extend({node:this.node,offset:this.offset,cancelAtNode:this.cancelAtNode},t||{})},edgeNode:function(e){},next:function(e){},subText:function(e,t){}}),N=A.extend({subText:function(e,t){return e.substring(0,t)},next:function(e){return e.previousSibling},edgeNode:function(e){return e.lastChild},clone:function(e){var t=this.extendOptions(e);return new N(t)}}),R=A.extend({subText:function(e,t){return e.substring(t)},next:function(e){return e.nextSibling},edgeNode:function(e){return e.firstChild},clone:function(e){var t=this.extendOptions(e);return new R(t)}});a(o.ui.editor,{LinkFormatFinder:C,LinkFormatter:T,UnlinkCommand:S,LinkCommand:F,AutoLinkCommand:D,UnlinkTool:I,DomTextLinkDetection:z,LeftDomTextTraverser:N,RightDomTextTraverser:R}),b("createLink",new f({key:"K",ctrl:!0,command:F,template:new h({template:c.buttonTemplate,title:"Create Link"})})),b("unlink",new I({key:"K",ctrl:!0,shift:!0,template:new h({template:c.buttonTemplate,title:"Remove Link"})})),b("autoLink",new f({key:[y.ENTER,y.SPACEBAR],keyPressCommand:!0,command:D}))}(window.kendo.jQuery)},"function"==typeof define&&define.amd?define:function(e,t,n){(n||t)()}),function(e,define){define("editor/plugins/formatblock.min",["editor/plugins/format.min"],e)}(function(){!function(e){var t,n=window.kendo,i=n.Class,o=e.extend,r=n.ui.editor,a=n.ui.Editor.fn.options.formats,s=r.Dom,l=r.ToolTemplate,d=r.FormatTool,u=r.EditorUtils,c=u.registerTool,p=u.registerFormat,f=r.RangeUtils,h=i.extend({init:function(e){this.format=e},contains:function(e,t){var n,i,o;for(n=0,i=t.length;n=0&&!(o=s.ofType(t[n],a[r].tags)?t[n]:s.closestEditableOfType(t[n],a[r].tags));r--);if(!o||"true"===o.contentEditable)return[];e.inArray(o,l)<0&&l.push(o)}for(this._resolveListsItems(l),n=0,i=l.length;n=0;a--)l=i.immutableParent(e[a]),l&&(l!==e[a+1]&&(t?s.attr(l,n.attr):s.unstyle(l,n.attr.style)),e.splice(a,1))},immutables:function(){return this.editor&&this.editor.options.immutables},remove:function(e){var t,n,i,o,r;for(this._handleImmutables(e,!1),t=0,n=e.length;t=0?new i.GreedyInlineFormatter(a):new i.GreedyBlockFormatter(a),t.editor=n.editor,t}})},initialize:function(e,t){var i,r=t.editor,a=this.options,s=a.name,l=this;l.editor=r,e.width(a.width),i=e.kendoSelectBox({dataTextField:"text",dataValueField:"value",dataSource:a.items||r.options[s],title:r.options.messages[s],autoSize:!0,change:function(){var e=this.dataItem();e&&o.exec(r,s,e.toJSON())},dataBound:function(){var e,t=this.dataSource.data();for(e=0;e#:data.text#')}).data("kendoSelectBox"),e.attr("title",t.title),i.wrapper.attr("title",t.title),e.addClass("k-decorated").closest(".k-widget").removeClass("k-"+s).find("*").addBack().attr("unselectable","on")},getFormattingValue:function(t,n){var i,o,r,a,s,l,d;for(i=0;i=0;t--)n=e[t],this.immutableParent(n)||this.clean(n);this.releaseRange(i)},clean:function(n){var o,r,a,s,d;if(n&&!l.isMarker(n)){if(o=l.name(n),"ul"==o||"ol"==o)for(r=new i.ListFormatter(o),a=n.previousSibling,s=n.nextSibling,r.unwrap(n);a&&a!=s;a=a.nextSibling)this.clean(a);else if("blockquote"==o)l.changeTag(n,"p");else if(1!=n.nodeType||l.insignificant(n))t(n);else{for(d=n.childNodes.length-1;d>=0;d--)this.clean(n.childNodes[d]);n.removeAttribute("style"),n.removeAttribute("class")}e.inArray(o,this.tagsToClean)>-1&&l.unwrap(n)}},immutableParent:function(e){return this.immutables()&&i.Immutables.immutableParent(e)}});e.extend(i,{FormattingTool:p,CleanFormatCommand:f}),c("formatting",new p({template:new r({template:d.dropDownListTemplate,title:"Format"})})),c("cleanFormatting",new o({command:f,template:new r({template:d.buttonTemplate,title:"Clean formatting"})}))}(window.kendo.jQuery)},"function"==typeof define&&define.amd?define:function(e,t,n){(n||t)()}),function(e,define){define("editor/plugins/image.min",["kendo.imagebrowser.min","editor/command.min"],e)}(function(){!function(e,t){var n=window.kendo,i=e.extend,o=n.ui.editor,r=o.EditorUtils,a=o.Dom,s=r.registerTool,l=o.ToolTemplate,d=o.RangeUtils,u=o.Command,c=n.keys,p="#k-editor-image-url",f="#k-editor-image-title",h="#k-editor-image-width",m="#k-editor-image-height",g=u.extend({init:function(e){var t=this;u.fn.init.call(t,e),t.async=!0,t.attributes={}},insertImage:function(e,t){var n,i=this.attributes,o=d.documentFromRange(t);if(i.src&&"http://"!=i.src){if(n=function(){setTimeout(function(){i.width||e.removeAttribute("width"),i.height||e.removeAttribute("height"),e.removeAttribute("complete")})},!e)return e=a.create(o,"img",i),e.onload=e.onerror=n,t.deleteContents(),t.insertNode(e),e.nextSibling||a.insertAfter(o.createTextNode("\ufeff"),e),n(),t.setStartAfter(e),t.setEndAfter(e),d.selectRange(t),!0;e.onload=e.onerror=n,a.attr(e,i),n()}return!1},_dialogTemplate:function(e){return n.template('
        # if (showBrowser) { #
        # } #
        ')({messages:this.editor.options.messages,showBrowser:e})},redo:function(){var e=this,t=e.lockRange();e.insertImage(d.image(t),t)||e.releaseRange(t)},exec:function(){function e(e){var t=s.element,n=parseInt(t.find(h).val(),10),i=parseInt(t.find(m).val(),10);g.attributes={src:t.find(p).val().replace(/ /g,"%20"),alt:t.find(f).val()},g.attributes.width=null,g.attributes.height=null,!isNaN(n)&&n>0&&(g.attributes.width=n),!isNaN(i)&&i>0&&(g.attributes.height=i),_=g.insertImage(b,v),o(e),g.change&&g.change()}function o(e){e.preventDefault(),s.destroy(),a.windowFromDocument(d.documentFromRange(v)).focus(),_||g.releaseRange(v)}function r(t){t.keyCode==c.ENTER?e(t):t.keyCode==c.ESC&&o(t)}var s,l,u,g=this,v=g.lockRange(),_=!1,b=d.image(v),y=b&&b.getAttribute("width")||"",w=b&&b.getAttribute("height")||"",k=n.support.browser.msie,x=g.editor.options,C=x.messages,T=x.imageBrowser,S=!!(n.ui.ImageBrowser&&T&&T.transport&&T.transport.read!==t),F={title:C.insertImage,visible:!1,resizable:S};this.expandImmutablesIn(v),F.close=o,S&&(F.width=750),s=this.createDialog(g._dialogTemplate(S),F).toggleClass("k-filebrowser-dialog",S).find(".k-dialog-insert").click(e).end().find(".k-dialog-close").click(o).end().find(".k-edit-field input").keydown(r).end().find(p).val(b?b.getAttribute("src",2):"http://").end().find(f).val(b?b.alt:"").end().find(h).val(y).end().find(m).val(w).end().data("kendoWindow"),l=s.element,S&&(this._imageBrowser=new n.ui.ImageBrowser(l.find(".k-imagebrowser"),i({},T)),this._imageBrowser.bind("change",function(e){"f"===e.selected.get("type")&&l.find(p).val(this.value())}),this._imageBrowser.bind("apply",e)),k&&(u=l.closest(".k-window").height(),l.css("max-height",u)),s.center().open(),l.find(p).focus().select()}});n.ui.editor.ImageCommand=g,s("insertImage",new o.Tool({command:g,template:new l({template:r.buttonTemplate,title:"Insert Image"})}))}(window.kendo.jQuery)},"function"==typeof define&&define.amd?define:function(e,t,n){(n||t)()}),function(e,define){define("editor/plugins/import.min",["editor/main.min"],e)}(function(){!function(e,t){var n=window.kendo,i=e.extend,o=e.proxy,r=n.ui.editor,a=r.EditorUtils,s=r.Command,l=r.Tool,d=a.registerTool,u=r.ToolTemplate,c='
        ',p=s.extend({exec:function(){(this.editor._uploadWidget||this._initializeUploadWidget()).element.click()},_initializeUploadWidget:function(){var t=this,n=t.editor,i=n.options["import"],r=e('').kendoUpload({success:o(t._onUploadSuccess,t),progress:o(t._onUploadProgress,t),select:o(t._onUploadSelect,t),error:o(t._onUploadError,t),complete:o(t._onUploadComplete,t),showFileList:!1,multiple:!1,async:{saveUrl:i.proxyUrl,autoUpload:!0,saveField:"file"},validation:{allowedExtensions:i.allowedExtensions,maxFileSize:i.maxFileSize}}).getKendoUpload();return n._uploadWidget=r,r},_onUploadComplete:function(e){this._trigger("complete",e),e.sender.clearAllFiles(),this._removeLoadingOverlay()},_onUploadSuccess:function(e){this.editor.value(e.response.html.replace(/<\/?body>/gi,"")),this._trigger("success",e)},_onUploadProgress:function(e){this._trigger("progress",e)},_onUploadSelect:function(e){this._trigger("select",e),e.files[0].validationErrors||this._initLoadingOverlay()},_onUploadError:function(e){this._trigger("error",e)},_trigger:function(e,t){var n=this.editor,i=n.options["import"];"function"==typeof i[e]&&i[e].call(n,t)},_initLoadingOverlay:function(){var t=this.editor.body;r.Dom.is(t,"body")?this._iframeWrapper=this._container=this.editor.wrapper.find("iframe").parent().css({position:"relative"}).append(c):this._container=e(t).append(c),n.ui.progress(this._container,!0)},_removeLoadingOverlay:function(){n.ui.progress(this._container,!1),e(this._iframeWrapper).css({position:""}),delete this._container,delete this._iframeWrapper}});i(r,{ImportCommand:p}),d("import",new l({command:p,template:new u({template:a.buttonTemplate,title:"Import"})}))}(window.kendo.jQuery)},"function"==typeof define&&define.amd?define:function(e,t,n){(n||t)()}),function(e,define){define("editor/plugins/insert.min",["editor/command.min"],e)}(function(){!function(e){var t=window.kendo,n=t.ui.editor,i=n.Command,o=n.GenericCommand,r=n.EditorUtils,a=r.registerTool,s=n.Tool,l=n.ToolTemplate,d=n.RestorePoint,u=e.extend,c=i.extend({init:function(e){i.fn.init.call(this,e),this.managesUndoRedo=!0},exec:function(){var e,t=this.editor,n=this.options,i=n.range,r=t.body,a=new d(i,r),s=n.html||n.value||"";t.selectRange(i),t.clipboard.paste(s,n),n.postProcess&&n.postProcess(t,t.getRange()),e=new o(a,new d(t.getRange(),r)),e.editor=t,t.undoRedoStack.push(e),t.focus()}}),p=s.extend({initialize:function(e,t){var i=t.editor,o=this.options,r=o.items?o.items:i.options.insertHtml;this._selectBox=new n.SelectBox(e,{dataSource:r,dataTextField:"text",dataValueField:"value",change:function(){s.exec(i,"insertHtml",this.value())},title:i.options.messages.insertHtml,highlightFirst:!1}),e.attr("title",t.title),this._selectBox.wrapper.attr("title",t.title)},command:function(e){return new c(e)},update:function(e){var t=e.data("kendoSelectBox")||e.find("select").data("kendoSelectBox");t.close(),t.value(t.options.title)}});u(n,{InsertHtmlCommand:c,InsertHtmlTool:p}),a("insertHtml",new p({template:new l({template:r.dropDownListTemplate,title:"Insert HTML",initialValue:"Insert HTML"})}))}(window.kendo.jQuery)},"function"==typeof define&&define.amd?define:function(e,t,n){(n||t)()}),function(e,define){define("editor/plugins/export.min",["editor/main.min"],e)}(function(){!function(e,t){var n=window.kendo,i=e.extend,o=e.proxy,r=n.ui.editor,a=r.EditorUtils,s=r.Command,l=r.Tool,d=a.registerTool,u=r.ToolTemplate,c=[{text:"Docx",value:"docx"},{text:"Rtf",value:"rtf"},{text:"Pdf",value:"pdf"},{text:"Html",value:"html"},{text:"Plain Text",value:"txt"}],p=s.extend({init:function(e){var t=this;t.options=e,s.fn.init.call(t,e),t.attributes=null,t.exportType=e.exportType},exec:function(){var e=this,t=this.lockRange(!0);e.postToProxy(),e.releaseRange(t)},postToProxy:function(){this.generateForm().appendTo("body").submit().remove()},generateForm:function(){var t=this,n=t.editor.options.exportAs,i=e("").attr({action:n&&n.proxyURL||"",method:"POST"});return i.append([t.valueInput(),t.exportTypeInput(),t.fileNameInput()]),i},valueInput:function(){var t=this.editor;return e("").attr({value:t.encodedValue(),name:"value",type:"hidden"})},exportTypeInput:function(){var t=this;return e("").attr({value:t.exportType,name:"exportType",type:"hidden"})},fileNameInput:function(){var t=this.editor,n=t.options.exportAs,i=n&&n.fileName||t.element.attr("id")||"editor";return e("").attr({value:i,name:"fileName",type:"hidden"})}}),f=l.extend({init:function(e){var t=this;l.fn.init.call(t,n.deepExtend({},t.options,e)),t.type="kendoSelectBox"},options:{items:c,width:115},command:function(e){var t=e.value;return new r.ExportAsCommand({range:e.range,exportType:t.exportType})},initialize:function(e,t){var i,r=this,a=t.editor,s=r.options,l=s.name,d=o(r.changeHandler,r),u=s.items||a.options[l];u.unshift({text:a.options.messages[l],value:""}),r.editor=a,e.width(s.width),i=e.kendoSelectBox({dataTextField:"text",dataValueField:"value",dataSource:u,autoSize:!0,change:d,open:function(e){var t=e.sender;t.items()[0].style.display="none",t.unbind("open")},highlightFirst:!1,template:n.template('#:data.text#')}).data("kendoSelectBox"),e.attr("title",t.title),i.wrapper.attr("title",t.title),e.addClass("k-decorated").closest(".k-widget").removeClass("k-"+l).find("*").addBack().attr("unselectable","on")},changeHandler:function(e){var t=e.sender,n=t.dataItem(),i=n&&n.value;this._exec(i),t.value("")},_exec:function(e){e&&l.exec(this.editor,this.options.name,{exportType:e})},destroy:function(){this._ancestor=null}});i(r,{ExportAsTool:f,ExportAsCommand:p}),d("exportAs",new f({template:new u({template:a.dropDownListTemplate,title:"Export As"})}))}(window.kendo.jQuery)},"function"==typeof define&&define.amd?define:function(e,t,n){(n||t)()}),function(e,define){define("editor/plugins/indent.min",["editor/plugins/formatblock.min"],e)}(function(){!function(e,t){function n(n,i){var o="rtl"==e(n).css("direction"),r=o?"Right":"Left",a="td"!=s.name(n)?"margin"+r:"padding"+r;return i===t?n.style[a]||0:(i>0?n.style[a]=i+"px":(n.style[a]="",n.style.cssText||n.removeAttribute("style")),t)}var i=window.kendo,o=i.Class,r=e.extend,a=i.ui.editor,s=a.Dom,l=a.EditorUtils,d=l.registerTool,u=a.Command,c=a.Tool,p=a.ToolTemplate,f=a.RangeUtils,h=s.blockElements,m=a.BlockFormatFinder,g=a.BlockFormatter,v=o.extend({init:function(){this.finder=new m([{tags:s.blockElements}])},apply:function(t){var i,o,r,a,l,d,u,c,p,f,h,m;if(t=s.filterBy(t,s.htmlIndentSpace,!0),i=this.finder.findSuitable(t),o=[],i=this.mapImmutables(i),i.length){for(r=0,a=i.length;r1||n(c.parentNode))||s.ofType(c,["ul","ol"])&&l>0),r)return i.removeClass("k-state-disabled"),t;i.addClass("k-state-disabled").removeClass("k-state-hover")}});r(a,{IndentFormatter:v,IndentCommand:_,OutdentCommand:b,OutdentTool:y}),d("indent",new c({command:_,template:new p({template:l.buttonTemplate,title:"Indent"})})),d("outdent",new y({command:b,template:new p({template:l.buttonTemplate,title:"Outdent"})}))}(window.kendo.jQuery)},"function"==typeof define&&define.amd?define:function(e,t,n){(n||t)()}),function(e,define){define("editor/plugins/linebreak.min",["editor/plugins/formatblock.min"],e)}(function(){!function(e){var t=window.kendo,n=e.extend,i=t.ui.editor,o=i.Dom,r=i.Command,a=i.Tool,s=i.BlockFormatter,l=o.normalize,d=i.RangeUtils,u=i.EditorUtils.registerTool,c=r.extend({init:function(e){this.options=e,r.fn.init.call(this,e)},_insertMarker:function(e,t){var n,i=o.create(e,"a");return i.className="k-marker",t.insertNode(i),i.parentNode||(n=t.commonAncestorContainer,n.innerHTML="",n.appendChild(i)),l(i.parentNode),i},_moveFocus:function(e,t){var n,i;if(o.isEmpty(t))e.setStartBefore(t);else{if(e.selectNodeContents(t),n=d.textNodes(e)[0],!n){for(;t.childNodes.length&&!o.is(t.firstChild,"br");)t=t.firstChild;n=t}o.isEmpty(n)?e.setStartBefore(n):(o.emptyNode(n)&&(n.innerHTML="\ufeff"),i=n.firstChild||n,o.isDataNode(i)?e.setStart(i,0):e.setStartBefore(i))}},shouldTrim:function(e){var t="p,h1,h2,h3,h4,h5,h6".split(","),n=o.parentOfType(e.startContainer,t),i=o.parentOfType(e.endContainer,t);return n&&!i||!n&&i},_blankAfter:function(e){for(;e&&(o.isMarker(e)||""===o.stripBom(e.nodeValue));)e=e.nextSibling;return!e},exec:function(){var t,n,r,a,u,c,p,f,h,m,g,v,_,b,y=this.getRange(),w=d.documentFromRange(y),k=i.emptyElementContent;this.expandImmutablesIn(y),m=this.shouldTrim(y),y.deleteContents(),u=this._insertMarker(w,y),o.stripBomNode(u.previousSibling),o.stripBomNode(u.nextSibling),c=o.closestEditableOfType(u,["li"]),p=o.closestEditableOfType(u,"h1,h2,h3,h4,h5,h6".split(",")),f=o.is(u.parentNode,"table")&&u.parentNode,c?o.emptyNode(c)&&(a=o.create(w,"p"),o.next(c)&&(h=y.cloneRange(),h.selectNode(c),d.split(h,c.parentNode)),g=e("br",c),1==g.length&&g.remove(),v=c.parentNode,_=c.parentNode.children.length,b=_>1&&1==c.childNodes.length&&c.children[0],o.insertAfter(a,v),o.remove(1==_?c.parentNode:c),b&&b!==u?(a.appendChild(b),a.appendChild(u)):a.innerHTML=k,r=a):p&&this._blankAfter(u)?(a=this._insertParagraphAfter(p),o.remove(u),r=a):f&&(a=this._insertParagraphAfter(f),o.remove(u),r=a),r||(c||p||new s([{tags:["p"]}]).apply([u]),y.selectNode(u),t=o.parentOfType(u,[c?"li":p?o.name(p):"p"]),d.split(y,t,m),n=t.previousSibling,o.is(n,"li")&&n.firstChild&&!o.is(n.firstChild,"br")&&(n=n.firstChild),r=t.nextSibling,this.clean(n,{links:!0}),this.clean(r,{links:!0}),o.is(r,"li")&&r.firstChild&&!o.is(r.firstChild,"br")&&(r=r.firstChild),o.remove(t),l(n)),l(r),this._moveFocus(y,r),y.collapse(!0),o.scrollTo(r,!0),d.selectRange(y)},_insertParagraphAfter:function(e){var t=this.getRange(),n=d.documentFromRange(t),r=i.emptyElementContent,a=o.create(n,"p");return o.insertAfter(a,e),a.innerHTML=r,a},clean:function(t,n){var r,a=t;if(t.firstChild&&o.is(t.firstChild,"br")&&o.remove(t.firstChild),o.isDataNode(t)&&!t.nodeValue&&(t=t.parentNode),t){for(r=!1;t.firstChild&&1==t.firstChild.nodeType;)r=r||o.significantNodes(t.childNodes).length>1,t=t.firstChild;if(o.isEmpty(t)||!/^\s*$/.test(t.innerHTML)||r||(e(a).find(".k-br").remove(),t.innerHTML=i.emptyElementContent),n&&n.links)for(;t!=a;){if(o.is(t,"a")&&o.emptyNode(t)){o.unwrap(t);break}t=t.parentNode}}}}),p=r.extend({init:function(e){this.options=e,r.fn.init.call(this,e)},exec:function(){var e,n,i,r,a,s,u=this.getRange();this.expandImmutablesIn(u),e=o.create(d.documentFromRange(u),"br"),n=u.startContainer,r=t.support.browser,a=r.msie&&r.version<11,s=o.is(n,"table")&&n,u.deleteContents(),s?o.insertAfter(e,s):u.insertNode(e),l(e.parentNode),a||e.nextSibling&&!o.isWhitespace(e.nextSibling)||(i=e.cloneNode(!0),i.className="k-br",o.insertAfter(i,e)),u.setStartAfter(e),u.collapse(!0),o.scrollTo(e.nextSibling||e,!0),d.selectRange(u)}});n(i,{ParagraphCommand:c,NewLineCommand:p}),u("insertLineBreak",new a({key:13,shift:!0,command:p})),u("insertParagraph",new a({key:13,command:c}))}(window.kendo.jQuery)},"function"==typeof define&&define.amd?define:function(e,t,n){(n||t)()}),function(e,define){define("editor/plugins/file.min",["kendo.filebrowser.min","editor/plugins/link.min"],e)}(function(){!function(e,t){var n=window.kendo,i=e.extend,o=n.ui.editor,r=o.EditorUtils,a=o.Dom,s=r.registerTool,l=o.ToolTemplate,d=o.RangeUtils,u=o.Command,c=o.LinkFormatter,p=d.textNodes,f=n.keys,h="#k-editor-file-url",m="#k-editor-file-text",g="#k-editor-file-title",v=u.extend({ +init:function(e){var t=this;u.fn.init.call(t,e),t.formatter=new c,t.async=!0,t.attributes={}},insertFile:function(e,t){var n=this.attributes,i=d.documentFromRange(t);if(n.href&&"http://"!=n.href){if(!e)return e=a.create(i,"a",{href:n.href}),e.innerHTML=n.innerHTML,e.title=n.title,t.deleteContents(),t.insertNode(e),e.nextSibling||a.insertAfter(i.createTextNode("\ufeff"),e),t.setStartAfter(e),t.setEndAfter(e),d.selectRange(t),!0;a.attr(e,n)}return!1},_dialogTemplate:function(e){return n.template('
        # if (showBrowser) { #
        # } #
        ')({messages:this.editor.options.messages,showBrowser:e})},redo:function(){var e=this,t=e.lockRange();this.formatter.apply(t,this.attributes),e.releaseRange(t)},exec:function(){function e(e){var t=s.element,n=t.find(h).val().replace(/ /g,"%20"),i=t.find(m).val(),r=t.find(g).val();c.attributes={href:n,innerHTML:""!==i?i:n,title:r},b=c.insertFile(y,v),o(e),c.change&&c.change()}function o(e){e.preventDefault(),s.destroy(),a.windowFromDocument(d.documentFromRange(v)).focus(),b||c.releaseRange(v)}function r(t){t.keyCode==f.ENTER?e(t):t.keyCode==f.ESC&&o(t)}var s,l,u,c=this,v=c.lockRange(),_=p(v),b=!1,y=_.length?this.formatter.finder.findSuitable(_[0]):null,w=n.support.browser.msie,k=c.editor.options,x=k.messages,C=k.fileBrowser,T=!!(n.ui.FileBrowser&&C&&C.transport&&C.transport.read!==t),S={title:x.insertFile,visible:!1,resizable:T};this.expandImmutablesIn(v),S.close=o,T&&(S.width=750),s=this.createDialog(c._dialogTemplate(T),S).toggleClass("k-filebrowser-dialog",T).find(".k-dialog-insert").click(e).end().find(".k-dialog-close").click(o).end().find(".k-edit-field input").keydown(r).end().find(h).val(y?y.getAttribute("href",2):"http://").end().find(m).val(y?y.innerText:"").end().find(g).val(y?y.title:"").end().data("kendoWindow"),l=s.element,T&&(c._fileBrowser=new n.ui.FileBrowser(l.find(".k-filebrowser"),i({},C)),c._fileBrowser.bind("change",function(e){"f"===e.selected.get("type")&&l.find(h).val(this.value())}),c._fileBrowser.bind("apply",e)),w&&(u=l.closest(".k-window").height(),l.css("max-height",u)),s.center().open(),l.find(h).focus().select()}});n.ui.editor.FileCommand=v,s("insertFile",new o.Tool({command:v,template:new l({template:r.buttonTemplate,title:"Insert File"})}))}(window.kendo.jQuery)},"function"==typeof define&&define.amd?define:function(e,t,n){(n||t)()}),function(e,define){define("editor/plugins/tables.min",["editor/plugins/formatblock.min","editor/plugins/insert.min"],e)}(function(){!function(e,t){var n=window.kendo,i=e.extend,o=e.proxy,r=n.ui.editor,a=r.Dom,s=r.EditorUtils,l=r.RangeUtils,d=r.Command,u="kendoEditor",c="k-state-active",p="k-state-selected",f="scope",h="row",m="col",g="rowgroup",v="colgroup",_="colspan",b="rowspan",y="table",w="thead",k="tbody",x="tr",C="td",T="th",S=r.Tool,F=r.ToolTemplate,D=r.InsertHtmlCommand,I=r.BlockFormatFinder,z=r.EditorUtils.registerTool,E=n.getTouches,A=n.template,N="
      • ",R=new I([{tags:[y]}]),H=D.extend({init:function(t){var n=e.extend({postProcess:this.postProcess,skipCleaners:!0},t||{});D.fn.init.call(this,n)},_tableHtml:function(e,t){var n,i;return e=e||1,t=t||1,n=A(N)({width:100/t,content:r.emptyTableCellContent}),i=100/e,"
        ',l+=this.title(e.date,e.min,e.max),l+='
        #:data#
        #=content#
        "+Array(e+1).join(""+Array(t+1).join(n)+"")+"
        "},postProcess:function(t,n){var i=e("table[data-last]",t.document).removeAttr("data-last");n.setStart(i.find(C)[0],0),n.collapse(!0),t.selectRange(n)},exec:function(){var e=this.options;e.html=this._tableHtml(e.rows,e.columns),D.fn.exec.call(this)}}),P=S.extend({initialize:function(t,n){var i,a,l,d;S.fn.initialize.call(this,t,n),i=e(this.options.popupTemplate).appendTo("body").kendoPopup({anchor:t,copyAnchorStyles:!1,open:o(this._open,this),activate:o(this._activate,this),close:o(this._close,this)}).data("kendoPopup"),t.click(o(this._toggle,this)).keydown(o(this._keydown,this)),a=this._editor=n.editor,this._popup=i,l=new r.TableWizardTool({template:new F({template:s.tableWizardButtonTemplate,title:a.options.messages.tableWizard}),command:r.TableWizardCommand,insertNewTable:!0}),z("tableWizardInsert",l),d=e("
        "+l.options.template.getHtml()+"
        "),d.appendTo(i.element),a.toolbar&&a.toolbar.attachToolsEvents(d)},popup:function(){return this._popup},_activate:e.noop,_open:function(){this._popup.options.anchor.addClass(c)},_close:function(){this._popup.options.anchor.removeClass(c)},_keydown:function(e){var t=n.keys,i=e.keyCode;i==t.DOWN&&e.altKey?this._popup.open():i==t.ESC&&this._popup.close()},_toggle:function(t){var n=e(t.target).closest(".k-tool");n.hasClass("k-state-disabled")||this.popup().toggle()},update:function(e){var t=this.popup();t.wrapper&&"block"==t.wrapper.css("display")&&t.close(),e.removeClass("k-state-hover")},destroy:function(){this._popup.destroy()}}),M=P.extend({init:function(t){this.cols=8,this.rows=6,P.fn.init.call(this,e.extend(t,{command:H,popupTemplate:"
        "+Array(this.cols*this.rows+1).join("")+"
        "}))},_activate:function(){function t(t){var n=e(window);return{row:Math.floor((t.clientY+n.scrollTop()-c.top)/o)+1,col:Math.floor((t.clientX+n.scrollLeft()-c.left)/i)+1}}var i,o,r=this,a=r._popup.element,s=a.find(".k-ct-cell"),l=s.eq(0),d=s.eq(s.length-1),c=n.getOffset(l),p=n.getOffset(d),f=r.cols,h=r.rows;a.find("*").addBack().attr("unselectable","on"),p.left+=d[0].offsetWidth,p.top+=d[0].offsetHeight,i=(p.left-c.left)/f,o=(p.top-c.top)/h,a.autoApplyNS(u).on("mousemove",".k-ct-cell",function(e){r._setTableSize(t(e))}).on("mouseleave",".k-ct-cell",function(){r._setTableSize()}).on("down",".k-ct-cell",function(e){e.preventDefault();var n=E(e)[0];r._exec(t(n.location))})},_valid:function(e){return e&&e.row>0&&e.col>0&&e.row<=this.rows&&e.col<=this.cols},_exec:function(e){this._valid(e)&&(this._editor.exec("createTable",{rows:e.row,columns:e.col}),this._popup.close())},_setTableSize:function(t){var i=this._popup.element,o=i.find(".k-status"),r=i.find(".k-ct-cell"),a=this.cols,s=this._editor.options.messages;this._valid(t)?(o.text(n.format(s.createTableHint,t.row,t.col)),r.each(function(n){e(this).toggleClass(p,n%a=0;a--)if(o=t.rows[a],r=e(o).find("[col-index="+i+"]"),r.length)return r},_resetTableResizing:function(e){e._destroyResizings(),e._initializeColumnResizing(),e._initializeRowResizing(),e._initializeTableResizing()},_findNextTdInRow:function(e,t){var n,i,o=e.find("td:last-child"),r=parseInt(o.attr("col-index"),10)+o.prop("colSpan")-1;for(i=t;i<=r;i++)if(n=e.find("[col-index="+i+"]"),n.length)return n},_adjustColgroups:function(e,t){for(var n,i,o,r=t.getElementsByTagName(m),s=t.getElementsByTagName(v),l=e.cells,d=l.length;r.length>0;)r[0].remove();for(;s.length>0;)s[0].remove();for(n=d-1;n>=0;n--)o=l[n],o.getAttribute(f)===v?(i=a.createEmptyNode(this.editor.document,v),i.setAttribute("span",o.getAttribute(_)),t.prepend(i)):t.prepend(a.createEmptyNode(this.editor.document,m))},_associateHeaderIds:function(t){a.clearTableMappings(t,"col-index"),a.reMapTableColumns(t,"col-index"),e(t).find("th, td").removeAttr("id headers"),a.associateWithIds(t)},_getNumberOfColumns:function(e){return a._getNumberOfColumns(e,"td, th")}}),B=O.extend({exec:function(){var n,i,o,s,l,d,u,c,p=this.lockRange(!0),m=a.closest(p.endContainer,[C,T]),v=a.closest(m,y),_=this.options.position||"after";if(!v||this.immutables()&&r.Immutables.immutableParent(m))return this.releaseRange(p),t;for(this._mapColIndices(v),i=m.parentNode,l=a.findNodeIndex(i,!0),m.rowSpan>1&&"after"===_&&(i=v.rows[l+m.rowSpan-1]),n=this._getNumberOfColumns(v),s=i.cloneNode(!0),e(s).empty(),c=0;c1&&"after"===_&&o?o.attr(b,o.prop("rowSpan")+1):this._appendCell(s,o):(l=a.findNodeIndex(i,!0),o=this._findRowSpanCell(i.parentElement,l,c),d=o.closest(x).index(),d+o.prop("rowSpan")-1===l&&"after"===_?this._appendCell(s,o):o.attr(b,o.prop("rowSpan")+1)),u=e(s).find("[col-index="+c+"]"),u.attr(f)!==g||u.attr(b)||u.attr(f,h);"before"==_?a.insertBefore(s,i):a.insertAfter(s,i),e(v).find("[headers]").length>0&&this._associateHeaderIds(v),this._clearColIndexAttr(v),this.releaseRange(p),this._resetTableResizing(this.editor)},_appendCell:function(e,t){var n;n=t.clone(),n.html(r.emptyTableCellContent),n.removeAttr(b),n.appendTo(e)}}),L=O.extend({exec:function(){var n,i,o,s,l=this.lockRange(!0),d=a.closest(l.endContainer,[C,T]),u=a.closest(d,y),c=u.getElementsByTagName(m),p=u.getElementsByTagName(v),h=u&&u.rows,g=this.options.position||"after";if(!d||this.immutables()&&r.Immutables.immutableParent(d))return this.releaseRange(l),t;for(this._mapColIndices(u),n=parseInt(d.getAttribute("col-index"),10),d.colSpan>1&&"after"===g&&(d.setAttribute("col-index",n+d.colSpan-1),n=n+d.colSpan-1),i=0;i0||p.length>0)&&this._adjustColgroups(h[0],u),e(u).find("[headers]").length>0&&this._associateHeaderIds(u),this._clearColIndexAttr(u),this.releaseRange(l),this._resetTableResizing(this.editor)},_processForColSpan:function(n,i,o,r){var a,s,l=i-1;if(a=e(n).find("[col-index="+i+"]")[0],a&&a.colSpan>1&&"after"===o&&a!==r)return a.colSpan+=1,t;if(a)return a;for(l;l>=0&&(a=e(n).find("[col-index="+l+"]")[0],!(a&&a.colSpan>1));l--);return a?(s=parseInt(a.getAttribute("col-index"),10)+a.colSpan-1,s===i&&"after"===o?a:(i<=s&&a.setAttribute(_,a.colSpan+1),t)):t},_resizeCells:function(e,t){var n,i,o,r=e.style.width;r&&(n=parseFloat(r),i=r.slice((""+n).length),o=n/2+i,e.style.width=o,t.style.width=o)}}),V=O.extend({exec:function(){var n,i,o,s=this.lockRange(),d=l.mapAll(s,function(t){return e(t).closest(x)[0]}),u=a.closest(s.endContainer,[C,T]),c=d[0],p=u?u.rowSpan:1,f=e(d[0]).index(),h=a.closest(c,y),m=c.parentElement;if(!h||this.immutables()&&r.Immutables.immutableParent(c))return this.releaseRange(s),t;for(i=0;i0?this._associateHeaderIds(h):a.is(m,w)&&e(h).find("[scope]").length>0&&this._adjustColgroups(m.rows[0],h),n&&(s.setStart(n,0),s.collapse(!0),this.editor.selectRange(s)),this._resetTableResizing(this.editor)},_handleRowSpanCells:function(t,n){var i,o,r,s,l=a.findNodeIndex(n,!0),d=t.rows[0],u=d.cells[d.cells.length-1],c=parseInt(u.getAttribute("col-index"),10)+u.colSpan-1;for(i=0;i<=c;i+=o.prop("colSpan"))o=e(n).find("[col-index="+i+"]"),o.length&&o.prop("rowSpan")>1&&(s=t.rows[l+1],r=e(s).find("[col-index="+(i+1)+"]"),r.length?r.before(o):e(s).append(o),this._reduceRowSpan(o)),o.length||(o=this._findRowSpanCell(n.parentElement,l,i),this._reduceRowSpan(o))},_reduceRowSpan:function(e){var t=e.prop("rowSpan")-1;t<=1?(e.removeAttr(b),e.attr(f)===g&&e.attr(f,h)):e.attr(b,t)}}),U=O.extend({exec:function(){var n,i,o,s,l=this.lockRange(),d=a.closest(l.endContainer,[C,T]),u=a.closest(d,y),c=u&&u.rows,p=a.findNodeIndex(d,!0),f=c&&c[0].cells.length,h=u.getElementsByTagName(m),g=u.getElementsByTagName(v);if(!d||this.immutables()&&r.Immutables.immutableParent(d))return this.releaseRange(l),t;if(1==f||d.colSpan==f)n=a.next(u),n&&!a.insignificant(n)||(n=a.prev(u)),a.remove(u),this._resetTableResizing(this.editor);else{for(a.removeTextSiblings(d),n=a.next(d)||a.prev(d),this._mapColIndices(u),p=parseInt(d.getAttribute("col-index"),10),s=0;s0||g.length>0)&&this._adjustColgroups(c[0],u),e(u).find("[headers]").length>0&&this._associateHeaderIds(u),n&&(l.setStart(n,0),l.collapse(!0),this.editor.selectRange(l)),this._resetTableResizing(this.editor)},_handleColSpanCells:function(n,i){var o,r,a=e(n).find("[col-index="+i+"]");if(a.length&&a.prop("colSpan")>1)return o=a.clone(!0),a.after(o),this._reduceColSpan(o),o.attr("col-index",parseInt(a.attr("col-index"),10)+1),a.remove(),t;for(r=i;r>=0;r--)if(a=e(n).find("[col-index="+r+"]"),a.length)return this._reduceColSpan(a),a.attr("col-index",parseInt(a.attr("col-index"),10)+1),t},_reduceColSpan:function(e){var t=e.prop("colSpan")-1;t<=1?(e.removeAttr(_),e.attr(f)===v&&e.attr(f,m)):e.attr(_,t)}}),W=O.extend({exec:function(){var n,i,o,s,l,d=this.lockRange(),u=a.closest(d.endContainer,[C,T]);return u?(n=a.closest(u,y),i=u.parentNode,o=a.findNodeIndex(u,!0),s=i.children[o+1],this.immutables()&&r.Immutables.immutableParent(u)?(this.releaseRange(d),t):(this._mapColIndices(n),o=parseInt(e(u).attr("col-index"),10),s=e(i).find("[col-index="+(o+1+this._getColspan(u)-1)+"]").get(0),s&&s.rowSpan===u.rowSpan&&u.tagName===s.tagName?(l=this._getColspan(u)+this._getColspan(s),e(u).prop(_,l).append(a.emptyNode(s)?"":"
        "+s.innerHTML),e(u).width(u.offsetWidth),e(s).remove(),u.getAttribute(f)===m&&u.setAttribute(f,v),u.getAttribute(f)===v&&this._adjustColgroups(i,n),e(n).find("[headers]").length>0&&this._associateHeaderIds(n),this._clearColIndexAttr(n),this.releaseRange(d),this._resetTableResizing(this.editor),t):(this._clearColIndexAttr(n),this.releaseRange(d),t))):(this.releaseRange(d),t)},_getColspan:function(e){return parseInt(e.getAttribute(_),10)||1}}),j=O.extend({exec:function(){var n,i,o,s,l,d,u,c=this.lockRange(),p=a.closest(c.endContainer,[C,T]);return p?(n=a.closest(p,x),i=a.closest(p,[w,k]),o=a.closest(p,y),s=a.findNodeIndex(p,!0),l=a.findNodeIndex(n,!0),l+1===i.rows.length?(this.releaseRange(c),t):(d=i.rows[l+this._getRowspan(p)],u=d&&d.children[s],this.immutables()&&r.Immutables.immutableParent(p)?(this.releaseRange(c),t):(this._mapColIndices(o),s=e(p).attr("col-index"),u=e(d).find("[col-index="+s+"]").get(0),u&&u.colSpan===p.colSpan&&p.tagName===u.tagName?(e(p).prop(b,this._getRowspan(p)+this._getRowspan(u)).append(a.emptyNode(u)?"":"
        "+u.innerHTML),p.getAttribute(f)===h&&p.setAttribute(f,g),e(u).remove(),e(o).find("[headers]").length>0&&this._associateHeaderIds(o),this._clearColIndexAttr(o),this.releaseRange(c),t):(this._clearColIndexAttr(o),this.releaseRange(c),t)))):(this.releaseRange(c),t)},_getRowspan:function(e){return parseInt(e.getAttribute(b),10)||1}}),q=O.extend({exec:function(){var n=this.lockRange(),i=this.options.type,o="row"===i?_:b,s=a.closest(n.endContainer,[C,T]),l=a.closest(s,[w,k]),d=a.closest(s,y),u=a.createEmptyNode(this.editor.document,s.nodeName.toLowerCase());return!s||this.immutables()&&r.Immutables.immutableParent(s)?(this.releaseRange(n),t):(this._mapColIndices(d),"row"===i&&e(s).is("["+o+"]")?this._splitCellHorizontally(s,l,o,u):"column"===i&&e(s).is("["+o+"]")&&this._splitCellVertically(s,l,o,u),e(s).prop(o.toLowerCase())<=1&&e(s).removeAttr(o),e(d).find("[headers]").length>0&&this._associateHeaderIds(d),this._clearColIndexAttr(d),this.releaseRange(n),t)},_getRowspanValue:function(e){return parseInt(e.getAttribute(b),10)},_getColspanValue:function(e){return parseInt(e.getAttribute(_),10)},_splitCellHorizontally:function(t,n,i,o){var r=t.rowSpan,a=t.colSpan,s=e(o),l=Math.floor(a/2);l>1&&s.attr(_,l),r>1&&s.attr(b,r),e(t).prop(i,a-l).after(s),e(t).width(t.offsetWidth),s.width(s[0].offsetWidth),t.hasAttribute(f)&&(t.getAttribute(f)===v?(s.attr(f,m),t.getAttribute(_)&&"1"!==t.getAttribute(_)||t.setAttribute(f,m),this._adjustColgroups(t.parentNode,n.parentNode)):s.attr(f,t.getAttribute(f)))},_splitCellVertically:function(t,n,i,o){var r=a.closest(t,x),s=parseInt(e(t).attr("col-index"),10),l=a.findNodeIndex(r,!0),d=t.rowSpan,u=t.colSpan,c=Math.floor(d/2),p=e(n).find(x).eq(l+d-c),m=this._findNextTdInRow(p,s+u),v=e(o);c>1&&v.attr(b,c),u>1&&v.attr(_,u),m&&m.length?m.before(v):p.append(v),e(t).prop(i,d-c),t.hasAttribute(f)&&(t.getAttribute(f)===g?(v.attr(f,h),t.getAttribute(b)&&"1"!==t.getAttribute(b)||t.setAttribute(f,h)):v.attr(f,t.getAttribute(f)))}}),G=S.extend({command:function(e){var t={row:{insert:B,"delete":V,merge:W,split:q},column:{insert:L,"delete":U,merge:j,split:q}};return e=i(e,this.options),e.action=e.action||"insert",new t[e.type][e.action](e)},initialize:function(e,t){S.fn.initialize.call(this,e,t),e.addClass("k-state-disabled"),e.attr("disabled","disabled")},update:function(e,t){var n=!R.isFormatted(t);n===!0?(e.parent().addClass("k-hidden k-state-disabled"),e.attr("disabled","disabled"),e.addClass("k-state-disabled")):(e.parent().removeClass("k-hidden k-state-disabled"),e.removeAttr("disabled"),e.removeClass("k-state-disabled"))}});i(n.ui.editor,{PopupTool:P,TableCommand:H,InsertTableTool:M,TableModificationTool:G,InsertRowCommand:B,InsertColumnCommand:L,DeleteRowCommand:V,DeleteColumnCommand:U,MergeCellsHorizontallyCommand:W,MergeCellsVerticallyCommand:j,SplitCellCommand:q}),z("createTable",new M({template:new F({template:s.buttonTemplate,popup:!0,title:"Create table"})})),z("addColumnLeft",new G({type:"column",position:"before",template:new F({template:s.buttonTemplate,title:"Add column on the left"})})),z("addColumnRight",new G({type:"column",template:new F({template:s.buttonTemplate,title:"Add column on the right"})})),z("addRowAbove",new G({type:"row",position:"before",template:new F({template:s.buttonTemplate,title:"Add row above"})})),z("addRowBelow",new G({type:"row",template:new F({template:s.buttonTemplate,title:"Add row below"})})),z("deleteRow",new G({type:"row",action:"delete",template:new F({template:s.buttonTemplate,title:"Delete row"})})),z("deleteColumn",new G({type:"column",action:"delete",template:new F({template:s.buttonTemplate,title:"Delete column"})})),z("mergeCellsHorizontally",new G({type:"row",action:"merge",template:new F({template:s.buttonTemplate,title:"Merge Cell Right"})})),z("mergeCellsVertically",new G({type:"column",action:"merge",template:new F({template:s.buttonTemplate,title:"Merge Cell Down"})})),z("splitCellHorizontally",new G({type:"row",action:"split",template:new F({template:s.buttonTemplate,title:"Split Cell"})})),z("splitCellVertically",new G({type:"column",action:"split",template:new F({template:s.buttonTemplate,title:"Split Cell"})}))}(window.kendo.jQuery)},"function"==typeof define&&define.amd?define:function(e,t,n){(n||t)()}),function(e,define){define("editor/plugins/clipboard.min",["editor/command.min"],e)}(function(){!function(e){var t=window.kendo,n=t.Class,i=t.ui.editor,o=i.RangeUtils,r=i.Dom,a=i.RestorePoint,s=i.Marker,l=t.support.browser,d=e.extend,u=n.extend({init:function(e){this.editor=e;var t=e.options.pasteCleanup;this.cleaners=[new p(t),new f(t),new h(t),new m(t),new v(t),new _(t),new k(t),new x(t)]},htmlToFragment:function(e){var t=this.editor,n=t.document,i=r.create(n,"div"),o=n.createDocumentFragment();for(i.innerHTML=e;i.firstChild;)o.appendChild(i.firstChild);return o},isBlock:function(e){return/<(div|p|ul|ol|table|h[1-6])/i.test(e)},_startModification:function(){var e,t,n=this.editor;if(!this._inProgress)return this._inProgress=!0,e=n.getRange(),t=new a(e,n.body),r.persistScrollTop(n.document),{range:e,restorePoint:t}},_endModification:function(e){i._finishUpdate(this.editor,e.restorePoint),this.editor._selectionChange(),this._inProgress=!1},_contentModification:function(e,t){var n=this,i=n.editor,o=n._startModification();o&&(e.call(n,i,o.range),setTimeout(function(){t.call(n,i,o.range),n._endModification(o)}))},_removeBomNodes:function(e){var t,n=o.textNodes(e);for(t=0;t10))return t=e.clipboardData||e.originalEvent.clipboardData||window.clipboardData||{},n=t.items||t.files,this._insertImages(n)},_insertImages:function(t){var n,i,o;if(t&&(n=e.grep(t,function(e){return/^image\//i.test(e.type)}),i=e.grep(t,function(e){return/^text\/html/i.test(e.type)}),!i.length&&n.length&&(o=this._startModification())))return e.when.apply(e,e.map(n,this._fileToDataURL)).done(e.proxy(function(){var t=Array.prototype.slice.call(arguments),n=e.map(t,function(e){return''}).join("");this._triggerPaste(n),this._endModification(o)},this)),!0},onpaste:function(n){if("false"!==this.editor.body.contentEditable){if(this._handleImagePaste(n))return void n.preventDefault();this.expandImmutablesIn(),this._contentModification(function(i,o){var a,s,l,d=r.create(i.document,"div",{className:"k-paste-container",innerHTML:"\ufeff"}),u=t.support.browser,c=i.body;this._decoreateClipboardNode(d,c),c.appendChild(d),u.webkit&&this._moveToCaretPosition(d,o),u.msie&&u.version<11?(n.preventDefault(),a=i.createRange(),a.selectNodeContents(d),i.selectRange(a),s=i.document.body.createTextRange(),s.moveToElementText(d),e(c).unbind("paste"),s.execCommand("Paste"),e(c).bind("paste",e.proxy(this.onpaste,this))):(l=i.createRange(),l.selectNodeContents(d),i.selectRange(l)),o.deleteContents()},function(t,n){var i,o="";t.selectRange(n),i=e(t.body).children(".k-paste-container"),i.each(function(){var e=this.lastChild;e&&r.is(e,"br")&&r.remove(e),o+=this.innerHTML}),i.remove(),this._triggerPaste(o,{clean:!0})})}},ondragover:function(e){(l.msie||l.edge)&&(e.stopPropagation(),e.preventDefault())},ondrop:function(e){var t,n;"FileReader"in window&&(t=(e.originalEvent||e).dataTransfer||{},n=t.items||t.files,this._insertImages(n)&&e.preventDefault())},_decoreateClipboardNode:function(t,n){var i,o,r,a;(l.msie||l.webkit)&&(t=e(t),t.css({borderWidth:"0px",width:"0px",height:"0px",overflow:"hidden",margin:"0",padding:"0"}),l.msie&&(i=e(n.ownerDocument.documentElement),t.css({fontVariant:"normal",fontWeight:"normal",lineSpacing:"normal",lineHeight:"normal",textDecoration:"none"}),o=i.css("color"),o&&t.css("color",o),r=i.css("fontFamily"),r&&t.css("fontFamily",r),a=i.css("fontSize"),a&&t.css("fontSize",a)))},_moveToCaretPosition:function(t,n){var i=this,o=i.editor.body,a=r.offset(t,o),s=i._caretOffset(n,o),l=s.left-a.left,d=s.top-a.top,u="translate("+l+"px,"+d+"px)";e(t).css({"-webkit-transform":u,transform:u})},_caretOffset:function(e,t){var n,i,o,a,s,l,d=this.editor,u=r.create(d.document,"span",{innerHTML:"\ufeff"}),c=e.startContainer;return e.collapsed?(i=r.isDataNode(c),i&&(r.isBom(c)||0===e.startOffset)?r.insertBefore(u,c):i&&e.startOffset===c.length?r.insertAfter(u,c):(e.insertNode(u),n=!0)):(c=c===t?c.childNodes[e.startOffset]:c,r.insertBefore(u,c)),o=r.offset(u,t),a=u.previousSibling,s=u.nextSibling,r.remove(u),n&&r.isDataNode(a)&&r.isDataNode(s)&&!r.isBom(a)&&!r.isBom(s)&&(l=a.length,s.data=a.data+s.data,e.setStart(s,l),r.remove(a),e.collapse(!0),d.selectRange(e)),o},expandImmutablesIn:function(e){var n,i,o,r=this.editor;r&&r.options.immutables&&(n=r.body,e=e||r.getRange(),t.ui.editor.Immutables.expandImmutablesIn(e),e.startContainer===n&&0===e.startOffset&&(i=n.ownerDocument,o=i.createTextNode("\ufeff"),n.insertBefore(o,n.childNodes[0]),e.setStartBefore(o)),r.selectRange(e))},splittableParent:function(e,t){var n,i;if(e)return r.closestEditableOfType(t,["p","ul","ol"])||t.parentNode;if(n=t.parentNode,i=t.ownerDocument.body,r.isInline(n))for(;n.parentNode!=i&&!r.isBlock(n.parentNode);)n=n.parentNode;return n},paste:function(t,n){var i,a,l,u,c,p,f,h,m,g,v,_,b,y,w,k,x,C=this.editor;if(this.expandImmutablesIn(),n=d({clean:!1,split:!0},n),!n.skipCleaners)for(i=0,a=this.cleaners.length;i(\s| )*)+(<\/?(div|p|li|col|t))/gi,"$3"),t=t.replace(/<(a|span)[^>]*><\/\1>/gi,"")),t=t.replace(/<(a|span|font)([^>]*)> <\/\1>/gi,"<$1$2> "),t=t.replace(/^
      • $/g,"li>"),u=this.isBlock(t),C.focus(),c=C.getRange(),c.deleteContents(),c.startContainer==C.document&&c.selectNodeContents(C.body),p=new s,f=p.addCaret(c),h=this.splittableParent(u,f),m=!1,g=h!=C.body&&!r.is(h,"td"),n.split&&g&&(u||r.isInline(h))&&(c.selectNode(f),o.split(c,h,!0),m=!0),v=this.htmlToFragment(t),v.firstChild&&"k-paste-container"===v.firstChild.className){for(_=[],i=0,a=v.childNodes.length;i"))}if(l=v.childNodes,e(l).filter("table").addClass("k-table").end().find("table").addClass("k-table"),e(l).each(function(e,t){r.isBlock(t)&&!r.isSelfClosing(t)&&""===t.innerHTML&&t.appendChild(C.document.createTextNode("\ufeff"))}),c.insertNode(v),h=this.splittableParent(u,f),m){for(;f.parentNode!=h;)r.unwrap(f.parentNode);r.unwrap(f.parentNode)}if(r.normalize(c.commonAncestorContainer),f.style.display="inline",r.restoreScrollTop(C.document),r.scrollTo(f),p.removeCaret(c),b=c.commonAncestorContainer.parentNode,(c.collapsed&&"tbody"==r.name(b)||c.collapsed&&"thead"==r.name(b))&&(c.setStartAfter(e(b).closest("table")[0]),c.collapse(!0)),y=e(c.commonAncestorContainer.parentNode).closest("table"),y.get(0)){for(w=y.parent().contents(),k=w.length-1,x=w.get(k);null!==x.nodeValue&&(" "===x.nodeValue||""===x.nodeValue);)k-=1,x=w.get(k);x!==y.get(0)||y.parents("table").length||r.insertAfter(r.createEmptyNode(C.document,"p"),y[0])}C.selectRange(c)}}),c=n.extend({init:function(e){this.options=e||{},this.replacements=[]},clean:function(e,t){var n,i,o=this,r=t||o.replacements;for(n=0,i=r.length;n]*)>/i,"<$1telerik:script$2>"]},applicable:function(e){return!this.options.none&&/]*>/i.test(e)}}),f=c.extend({init:function(e){c.fn.init.call(this,e);var t=" ";this.replacements=[/]*>\s*<\/span>/gi,t,/\t/gi,t,/    /gi,t]},applicable:function(e){return/    |class="?Apple-tab-span/i.test(e)}}),h=c.extend({init:function(e){c.fn.init.call(this,e),this.junkReplacements=[/<\?xml[^>]*>/gi,"",//g,"",/"/g,"'",/ <\/o:p>/gi," ",/<\/?(meta|link|style|o:|v:|x:)[^>]*>((?:.|\n)*?<\/(meta|link|style|o:|v:|x:)[^>]*>)?/gi,"",/<\/o>/g,""],this.replacements=this.junkReplacements.concat([/(?:
         [\s\r\n]+|
        )*(<\/?(h[1-6]|hr|p|div|table|tbody|thead|tfoot|th|tr|td|li|ol|ul|caption|address|pre|form|blockquote|dl|dt|dd|dir|fieldset)[^>]*>)(?:
         [\s\r\n]+|
        )*/g,"$1",/

        /g,"

        ",/
        (?!\n)/g," ",/]*)>(\s| )+]*>(\s| )*<\/tr>/gi,"",/]*>(\s| )*<\/tbody>/gi,"",/]*>(\s| )*<\/table>/gi,"",/

        /g,"
        ",/^\s*( )+/gi,"",/( |]*>)+\s*$/gi,"",/mso-[^;"]*;?/gi,"",/<(\/?)b(\s[^>]*)?>/gi,"<$1strong$2>",/<(\/?)font(\s[^>]*)?>/gi,this.convertFontMatch,/<(\/?)i(\s[^>]*)?>/gi,"<$1em$2>",/style=(["|'])\s*\1/g,"",/(]*>)?\n/g,function(e,t){return t?e:" "}])},convertFontMatch:function(e,t,n){var i=/face=['"]([^'"]+)['"]/i,o=i.exec(n),r=n&&o&&o[1];return t?"":r?'':""},applicable:function(e){return/class="?Mso/i.test(e)||/style="[^"]*mso-/i.test(e)||/urn:schemas-microsoft-com:office/.test(e)},stripEmptyAnchors:function(e){return e.replace(/]*)>\s*<\/a>/gi,function(e,t){return!t||t.indexOf("href")<0?"":e})},listType:function(e,t){var n,i=e.innerHTML,o=r.innerText(e),a=i.match(/^(?:]*texhtml[^>]*>)?]*(?:Symbol|Wingdings)[^>]*>([^<]+)/i),s=a&&a[1],l=/^[a-z\d]/i.test(s),d=function(e){return e.replace(/^(?: |[\u00a0\n\r\s])+/,"")};return a&&(n=!0),i=i.replace(/<\/?\w+[^>]*>/g,"").replace(/ /g," "),!n&&/^[\u2022\u00b7\u00a7\u00d8o]\u00a0+/.test(i)||n&&/^.\u00a0+/.test(i)||s&&!l&&t?{tag:"ul",style:this._guessUnorderedListStyle(d(o))}:/^\s*\w+[\.\)][\u00a0 ]{2,}/.test(i)?{tag:"ol",style:this._guessOrderedListStyle(d(o))}:void 0},_convertToLi:function(e){var t,n=r.name(e);return 1==e.childNodes.length?t=e.firstChild.nodeType===r.nodeTypes.TEXT_NODE?r.innerText(e):e.firstChild.innerHTML.replace(/^\w+[\.\)]( )+ /,""):(r.remove(e.firstChild),3==e.firstChild.nodeType&&/^[ivxlcdm]+\.$/i.test(e.firstChild.nodeValue)&&r.remove(e.firstChild),/^( |\s)+$/i.test(e.firstChild.innerHTML)&&r.remove(e.firstChild),t="p"!=n?"<"+n+">"+e.innerHTML+"":e.innerHTML),r.remove(e),r.create(document,"li",{innerHTML:t})},_guessUnorderedListStyle:function(e){return/^[\u2022\u00b7\u00FC\u00D8\u002dv-]/.test(e)?null:/^o/.test(e)?"circle":"square"},_guessOrderedListStyle:function(e){var t=null;return/^\d/.test(e)||(t=(/^[a-z]/.test(e)?"lower-":"upper-")+(/^[ivxlcdm]/i.test(e)?"roman":"alpha")),t},extractListLevels:function(e){var n=/style=['"]?[^'"]*?mso-list:\s?[a-zA-Z]+(\d+)\s[a-zA-Z]+(\d+)\s(\w+)/gi;return e=e.replace(n,function(e,n,i){return t.format('data-list="{0}" data-level="{1}" {2}',n,i,e)})},_createList:function(e,t){return r.create(document,e,{style:{listStyleType:t}})},lists:function(t){var n,i,o,a,s,d,u,c,p,f,h,m,g,v,_,b,y=e(t).find(r.blockElements.join(",")),w=-1,k={},x=["p","h1","h2","h3","h4","h5","h6"],C=!1;for(c=0;cw||!m)&&(m=this._createList(f,_.style),k[h][b]=m,i.appendChild(m)),i=this._convertToLi(p),m.appendChild(i),d?o=w=-1:w=h))},removeAttributes:function(e){for(var t=e.attributes,n=t.length;n--;)"colspan"!=r.name(t[n])&&e.removeAttributeNode(t[n])},createColGroup:function(n){var i=n.cells,o=e(n).closest("table"),r=o.children("colgroup");i.length<2||(r.length&&(i=r.children(),r[0].parentNode.removeChild(r[0])),r=e(e.map(i,function(e){var n=e.width;return n&&0!==parseInt(n,10)?t.format('',n):""}).join("")),r.is("colgroup")||(r=e("").append(r)),r.prependTo(o))},convertHeaders:function(t){var n,i=t.cells,o=e.map(i,function(t){var n=e(t).children("p").children("strong")[0];if(n&&"strong"==r.name(n))return n});if(o.length==i.length){for(n=0;n").end().find("thead").append(t),n=0;no.cells.length&&(o=n[a]);l.createColGroup(o),l.convertHeaders(i),l.removeAttributes(s[r]),l.removeParagraphs(s.eq(r).find("td,th")),l.removeDefaultColors(s.eq(r).find("span"))}},headers:function(t){var n,i=e(t).find("p.MsoTitle");for(n=0;n]*)\s+class="?[^"\s>]*"?/gi,"$1")),e}}),m=c.extend({init:function(e){c.fn.init.call(this,e),this.replacements=[/\s+class="Apple-style-span[^"]*"/gi,"",/<(div|p|h[1-6])\s+style="[^"]*"/gi,"<$1",/^
        (.*)<\/div>$/,"$1"]},applicable:function(e){return/class="?Apple-style-span|style="[^"]*-webkit-nbsp-mode/i.test(e)}}),g=c.extend({clean:function(e){var t=r.create(document,"div",{innerHTML:e});return t=this.cleanDom(t),t.innerHTML},cleanDom:function(e){return e}}),v=g.extend({cleanDom:function(t){var n=this.collectTags();return e(t).find(n).each(function(){r.unwrap(this)}),t},collectTags:function(){if(this.options.span)return"span"},applicable:function(){return this.options.span}}),_=g.extend({cleanDom:function(t){var n=this.collectAttr(),i=e(t).find("["+n.join("],[")+"]");return i.removeAttr(n.join(" ")),t},collectAttr:function(){return this.options.css?["class","style"]:[]},applicable:function(){return this.options.css}}),b=function(){this.text="",this.add=function(e){this.text+=e}},y=n.extend({init:function(e){this.separators=e||{text:" ",line:"
        "},this.lines=[],this.inlineBlockText=[],this.resetLine()},appendText:function(e){3===e.nodeType&&(e=e.nodeValue),this.textContainer.add(e)},appendInlineBlockText:function(e){this.inlineBlockText.push(e)},flashInlineBlockText:function(){this.inlineBlockText.length&&(this.appendText(this.inlineBlockText.join(" ")),this.inlineBlockText=[])},endLine:function(){this.flashInlineBlockText(),this.resetLine()},html:function(){var e,t,n,i,o,r,a,s,l=this.separators,d="",u=this.lines;for(this.flashInlineBlockText(),e=0,t=u.length,n=t-1;e"}},actions:{ul:e.noop,ol:e.noop,table:e.noop,thead:e.noop,tbody:e.noop,td:function(e,t){var n=new k({all:!0}),i=n.cleanDom(t);return e.htmlLines.appendInlineBlockText(i),!0},block:function(e){e.htmlLines.endLine()}}}),x=c.extend({clean:function(e){return this.options.custom(e)},applicable:function(){return"function"==typeof this.options.custom}});d(i,{Clipboard:u,Cleaner:c,ScriptCleaner:p,TabCleaner:f,MSWordFormatCleaner:h,WebkitFormatCleaner:m,HtmlTagsCleaner:v,HtmlAttrCleaner:_,HtmlContentCleaner:k,HtmlTextLines:y,CustomCleaner:x})}(window.kendo.jQuery)},"function"==typeof define&&define.amd?define:function(e,t,n){(n||t)()}),function(e,define){define("editor/plugins/keyboard.min",["editor/command.min"],e)}(function(){!function(e){function t(e,t){return t.startContainer===e&&t.endContainer===e&&0===t.startOffset&&t.endOffset==e.childNodes.length}function n(e,t,n){for(var i=e?e[t]:null;i&&!n(i);)i=i[t];return i}var i=window.kendo,o=i.Class,r=i.ui.editor,a=r.RangeUtils,s=r.Dom,l=r.RestorePoint,d=r.Marker,u=i.support.browser,c="\ufeff",p=e.extend,f=s.nodeTypes,h="previousSibling",m="td,th,caption",g="table,tbody,thead,tfoot,tr",v=g+","+m,_=function(t){return!t.collapsed&&e(t.commonAncestorContainer).is(g)},b=o.extend({remove:function(t){var n,i,o,r,l,u,c,p=this,f=new d;f.add(t,!1),n=a.getAll(t,function(t){return e(t).is(v)}),i=a.documentFromRange(t),o=f.start,r=f.end,l=m.split(","),u=s.parentOfType(o,l),c=s.parentOfType(r,l),p._removeContent(o,u,!0),p._removeContent(r,c,!1),e(n).each(function(t,n){n=e(n),(n.is(m)?n:n.find(m)).each(function(e,t){t.innerHTML=""})}),u&&!o.previousSibling&&s.insertBefore(i.createTextNode("\ufeff"),o),c&&!r.nextSibling&&s.insertAfter(i.createTextNode("\ufeff"),r),u?t.setStartBefore(o):n[0]&&(u=e(n[0]),u=u.is(m)?u:u.find(m).first(),u.length&&t.setStart(u.get(0),0)),t.collapse(!0),s.remove(o),s.remove(r)},_removeContent:function(t,n,i){if(n){var o,r=i?"nextSibling":"previousSibling",a=function(t){for(;t&&!t[r];)t=t.parentNode;return t&&e.contains(n,t)?t[r]:null};for(t=a(t);t;)o=a(t),s.remove(t),t=o}}}),y=o.extend({init:function(e){this.editor=e},keydown:function(n){var i,o,a,s,d=this,c=d.editor,f=c.keyboard,h=f.isTypingKey(n),m=p(e.Event(),n);return d.editor.trigger("keydown",m),m.isDefaultPrevented()?(n.preventDefault(),!0):!(m.isDefaultPrevented()||!h||f.isTypingInProgress())&&(i=c.getRange(),o=c.body,d.startRestorePoint=new l(i,o),_(i)&&(a=new b(c),a.remove(i),c.selectRange(i)),u.webkit&&!i.collapsed&&t(o,i)&&(o.innerHTML=""),c.immutables&&r.Immutables.immutablesContext(i)&&(s=new r.BackspaceHandler(c),s.deleteSelection(i)),f.startTyping(function(){d.endRestorePoint=r._finishUpdate(c,d.startRestorePoint)}),!0)},keyup:function(e){var t=this.editor.keyboard;return this.editor.trigger("keyup",e),!!t.isTypingInProgress()&&(t.endTyping(),!0)}}),w=o.extend({init:function(e){this.editor=e},_addCaret:function(e){var t=s.create(this.editor.document,"a");return!i.support.browser.chrome&&e.firstChild&&e.firstChild.nodeType===f.ELEMENT_NODE&&(e=e.firstChild),s.insertAt(e,t,0),s.stripBomNode(t.previousSibling),s.stripBomNode(t.nextSibling),t},_restoreCaret:function(e){var t=this.editor.createRange();!e.nextSibling&&s.isDataNode(e.previousSibling)?t.setStart(e.previousSibling,e.previousSibling.length):t.setStartAfter(e),t.collapse(!0),this.editor.selectRange(t),s.remove(e)},_handleDelete:function(e){var t,n,i=e.endContainer,o=s.closestEditableOfType(i,s.blockElements);return!(!o||!r.RangeUtils.isEndOf(e,o))&&(t=s.next(o),!(!t||"p"!=s.name(t))&&(n=this._addCaret(t),this._merge(o,t),this._restoreCaret(n),!0))},_cleanBomBefore:function(e){for(var t=e.startOffset,n=e.startContainer,i=n.nodeValue,o=0;t-o>=0&&"\ufeff"==i[t-o-1];)o++;o>0&&(n.deleteData(t-o,o),e.setStart(n,Math.max(0,t-o)),e.collapse(!0),this.editor.selectRange(e))},_handleBackspace:function(t){var i,o,a,l,d,u,c,p,f,m,g,v,_,b=t.startContainer,y=s.closestEditableOfType(b,["li"]),w=s.closestEditableOfType(b,"p,h1,h2,h3,h4,h5,h6".split(",")),k=this.editor;if(s.isDataNode(b)){if(t.collapsed&&/^\s[\ufeff]+$/.test(b.nodeValue))return t.setStart(b,0),t.setEnd(b,b.length),k.selectRange(t),!1;this._cleanBomBefore(t)}return i=n(w,h,function(e){return!s.htmlIndentSpace(e)}),t.collapsed&&t.startOffset!==t.endOffset&&t.startOffset<0&&(t.startOffset=0,t.endOffset=0,k.selectRange(t)),o=y&&r.RangeUtils.isStartOf(t,y),a=y&&e(y).index(),l=o&&a>0,l&&(w=y,i=s.prev(y)),w&&i&&s.is(i,"table")&&r.RangeUtils.isStartOf(t,w)?(""===w.innerText&&(w.innerHTML="\ufeff"),!0):r.RangeUtils.isStartOf(t,w)&&(parseInt(w.style.marginLeft,10)>0||parseInt(w.style.marginRight,10)>0)?(k.exec("outdent"),!0):w&&i&&r.RangeUtils.isStartOf(t,w)||l?(d=this._addCaret(w),this._merge(i,w),this._restoreCaret(d),!0):o&&0===a?(u=y.firstChild,u||(y.innerHTML=r.emptyElementContent,u=y.firstChild),c=new r.ListFormatter(s.name(y.parentNode),"p"),t.selectNodeContents(y),c.toggle(t),s.insignificant(u)?t.setStartBefore(u):t.setStart(u,0),k.selectRange(t),!0):(p=b.childNodes[t.startOffset-1],f=t,m=p&&s.closestEditableOfType(p,["a"]),g=n(p||b,h,function(e){return!s.isDataNode(e)||!s.isBom(e)&&e.length>0}),(m||(0===t.startOffset||p)&&s.is(g,"a"))&&(m=m||g,f=k.createRange(),f.setStart(m,m.childNodes.length),f.collapse(!0)),m=m||s.closestEditableOfType(p||f.startContainer,["a"]),v=m&&r.RangeUtils.isEndOf(f,m),v&&(_=new r.UnlinkCommand({range:f,body:k.body,immutables:!!k.immutables}),k.execCommand(_),k._selectionChange()),!1)},_handleSelection:function(t){var n,i,o,a,l,u=t.commonAncestorContainer,c=s.closest(u,"table"),p=r.emptyElementContent,f=this.editor;return _(t)?(i=new b(f),i.remove(t),f.selectRange(t),!0):(o=new d,o.add(t,!1),t.commonAncestorContainer===f.body&&this._surroundFullyContent(o,t),f.immutables&&this._handleImmutables(o),this._surroundFullySelectedAnchor(o,t),t.setStartAfter(o.start),t.setEndBefore(o.end),a=t.startContainer,l=t.endContainer,t.deleteContents(),"li"===l.tagName.toLocaleLowerCase()&&s.emptyNode(l)&&(t.selectNode(l),t.deleteContents()),c&&""===e(c).text()&&(t.selectNode(c),t.deleteContents()),u=t.commonAncestorContainer,"p"===s.name(u)&&""===u.innerHTML&&(u.innerHTML=p,t.setStart(u,0)),this._join(a,l),s.insertAfter(f.document.createTextNode("\ufeff"),o.start),o.remove(t),a=t.startContainer,"tr"==s.name(a)&&(a=a.childNodes[Math.max(0,t.startOffset-1)],t.setStart(a,s.getNodeLength(a))),t.collapse(!0),f.selectRange(t),n=a.parentElement||a.parentNode,s.isDataNode(a)&&!s.emptyNode(n)&&this._cleanBomBefore(t),!0)},_handleImmutables:function(e){var t=r.Immutables.immutableParent,n=t(e.start),i=t(e.start);n&&s.insertBefore(e.start,n),i&&s.insertAfter(e.end,i),n&&s.remove(n),i&&i.parentNode&&s.remove(i)},_surroundFullyContent:function(e,t){var n=t.commonAncestorContainer.children,i=n[0],o=n[n.length-1];this._moveMarker(e,t,i,o)},_surroundFullySelectedAnchor:function(t,n){var i=t.start,o=e(i).closest("a").get(0),r=t.end,a=e(r).closest("a").get(0);this._moveMarker(t,n,o,a)},_moveMarker:function(e,t,n,i){var o=e.start,r=e.end;n&&a.isStartOf(t,n)&&s.insertBefore(o,n),i&&a.isEndOf(t,i)&&s.insertAfter(r,i)},_root:function(e){for(;e&&"body"!=s.name(e)&&e.parentNode&&"body"!=s.name(e.parentNode);)e=e.parentNode;return e},_join:function(e,t){e=this._root(e),t=this._root(t),e!=t&&s.is(t,"p")&&this._merge(e,t)},_merge:function(e,t){for(s.removeTrailingBreak(e);e&&t.firstChild;)1==e.nodeType?(e=s.list(e)?e.children[e.children.length-1]:e,e&&e.appendChild(t.firstChild)):e.nodeType===f.TEXT_NODE?this._mergeWithTextNode(e,t.firstChild):e.parentNode.appendChild(t.firstChild);s.remove(t)},_mergeWithTextNode:function(e,t){e&&e.nodeType===f.TEXT_NODE&&(e.nextSibling&&this._isCaret(e.nextSibling)?s.insertAfter(t,e.nextSibling):s.insertAfter(t,e))},_isCaret:function(t){return e(t).is("a")},keydown:function(e){var t,n,o=this.editor,a=o.getRange(),s=e.keyCode,d=i.keys,u=s===d.BACKSPACE,c=s==d.DELETE;o.immutables&&o.immutables.keydown(e,a)||(!u&&!c||a.collapsed?u?t="_handleBackspace":c&&(t="_handleDelete"):t="_handleSelection",t&&(n=new l(a,o.body),this[t](a)&&(e.preventDefault(),r._finishUpdate(o,n))))},deleteSelection:function(e){this._handleSelection(e)},keyup:e.noop}),k=o.extend({init:function(e){this.editor=e,this.systemCommandIsInProgress=!1},createUndoCommand:function(){this.startRestorePoint=this.endRestorePoint=r._finishUpdate(this.editor,this.startRestorePoint)},changed:function(){return!!this.startRestorePoint&&this.startRestorePoint.html!=this.editor.body.innerHTML},keydown:function(e){var t=this,n=t.editor,i=n.keyboard;return i.isModifierKey(e)?(i.isTypingInProgress()&&i.endTyping(!0),t.startRestorePoint=new l(n.getRange(),n.body),!0):!!i.isSystem(e)&&(t.systemCommandIsInProgress=!0,t.changed()&&(t.systemCommandIsInProgress=!1,t.createUndoCommand()),!0)},keyup:function(){var e=this;return!(!e.systemCommandIsInProgress||!e.changed())&&(e.systemCommandIsInProgress=!1,e.createUndoCommand(),!0)}}),x=o.extend({init:function(e){this.editor=e},keydown:function(e){!u.webkit||e.isDefaultPrevented()||!e.ctrlKey||65!=e.keyCode||e.altKey||e.shiftKey||(this.editor.options.immutables&&this._toSelectableImmutables(),this._selectEditorBody())},_selectEditorBody:function(){var e=this.editor,t=e.getRange();t.selectNodeContents(e.body),e.selectRange(t)},_toSelectableImmutables:function(){for(var t=this.editor,n=t.body,i=r.Immutables.immutable,o=s.emptyTextNode,a=n.firstChild,l=n.lastChild;o(a);)a=a.nextSibling;for(;o(l);)l=l.previousSibling;a&&i(a)&&e(c).prependTo(n),l&&i(l)&&e(c).appendTo(n)},keyup:e.noop}),C=o.extend({init:function(e){this.handlers=e,this.typingInProgress=!1},isCharacter:function(e){return e>=48&&e<=90||e>=96&&e<=111||e>=186&&e<=192||e>=219&&e<=222||229==e},toolFromShortcut:function(t,n){var i,o,r=String.fromCharCode(n.keyCode),a=this._getShortcutModifier(n,navigator.platform);for(i in t)if(o=e.extend({ctrl:!1,alt:!1,shift:!1},t[i].options),(o.key==r||o.key==n.keyCode)&&o.ctrl==a&&o.alt==n.altKey&&o.shift==n.shiftKey)return i},_getShortcutModifier:function(e,t){var n=t.toUpperCase().indexOf("MAC")>=0;return n?e.metaKey:e.ctrlKey},toolsFromShortcut:function(t,n){var i,o,r,a=String.fromCharCode(n.keyCode),s=[],l=function(e){return e==a||e==n.keyCode||e==n.charCode};for(i in t)o=e.extend({ctrl:!1,alt:!1,shift:!1},t[i].options),r=e.isArray(o.key)?e.grep(o.key,l).length>0:l(o.key),r&&o.ctrl==n.ctrlKey&&o.alt==n.altKey&&o.shift==n.shiftKey&&s.push(t[i]);return s},isTypingKey:function(e){var t=e.keyCode;return this.isCharacter(t)&&!e.ctrlKey&&!e.altKey||32==t||13==t||8==t||46==t&&!e.shiftKey&&!e.ctrlKey&&!e.altKey},isModifierKey:function(e){var t=e.keyCode;return 17==t&&!e.shiftKey&&!e.altKey||16==t&&!e.ctrlKey&&!e.altKey||18==t&&!e.ctrlKey&&!e.shiftKey},isSystem:function(e){return 46==e.keyCode&&e.ctrlKey&&!e.altKey&&!e.shiftKey},startTyping:function(e){this.onEndTyping=e,this.typingInProgress=!0},stopTyping:function(){this.typingInProgress&&this.onEndTyping&&this.onEndTyping(),this.typingInProgress=!1},endTyping:function(t){var n=this;n.clearTimeout(),t?n.stopTyping():n.timeout=window.setTimeout(e.proxy(n.stopTyping,n),1e3)},isTypingInProgress:function(){return this.typingInProgress},clearTimeout:function(){window.clearTimeout(this.timeout)},notify:function(e,t){var n,i=this.handlers;for(n=0;n0)for(t=0;tt.clientHeight?e.support.scrollbar():0}function o(e,t){return r(e)?f(e):f(e)/t*100}function r(e){return typeof e===w&&b.test(e)}function a(e){return typeof e===w&&y.test(e)}function s(e){return f(e)+v}function l(e){return f(e)+_}var d=window,u=d.Math,c=u.min,p=u.max,f=d.parseFloat,h=e.jQuery,m=h.extend,g=e.ui.editor,v="%",_="px",b=/(\d+)(\.?)(\d*)%/,y=/(\d+)(\.?)(\d*)px/,w="string",k={constrain:n,getScrollBarWidth:i,calculatePercentageRatio:o,inPercentages:r,inPixels:a,toPercentages:s,toPixels:l};m(g,{ResizingUtils:k})}(window.kendo)},"function"==typeof define&&define.amd?define:function(e,t,n){(n||t)()}),function(e,define){define("editor/resizing/table-element-resizing.min",["editor/main.min","kendo.resizable.min","editor/resizing/resizing-utils.min"],e)}(function(){!function(e,t){var n=e.jQuery,i=n.extend,o=n.noop,r=n.proxy,a=e.ui.editor,s=e.Class,l="keydown",d="mousedown",u="mouseenter",c="mouseleave",p="mousemove",f="mouseup",h=",",m=".",g=":last-child",v="table",_=s.extend({init:function(e,t){var o=this;o.options=i({},o.options,t),o.options.tags=n.isArray(o.options.tags)?o.options.tags:[o.options.tags],n(e).is(v)&&(o.element=e,o._attachEventHandlers())},destroy:function(){var e=this,t=e.options.eventNamespace;e.element&&(n(e.element).off(t),e.element=null),n(e.options.rootElement).off(l+t),e._destroyResizeHandle()},options:{tags:[],min:0,rootElement:null,eventNamespace:"",rtl:!1,handle:{dataAttribute:"",height:0,width:0,classNames:{},template:""}},_attachEventHandlers:function(){var e=this,t=e.options;n(e.element).on(p+t.eventNamespace,t.tags.join(h),r(e.detectElementBorderHovering,e))},resizingInProgress:function(){var e=this,t=e._resizable;return!!t&&!!t.resizing},resize:o,detectElementBorderHovering:function(e){var t=this,i=t.options,o=i.handle,r=n(e.currentTarget),a=t.resizeHandle,s=o.dataAttribute;t.resizingInProgress()||(!r.is(g)&&t.elementBorderHovered(r,e)?a?a.data(s)&&a.data(s)!==r[0]&&t.showResizeHandle(r,e):t.showResizeHandle(r,e):a&&t._destroyResizeHandle())},elementBorderHovered:o,showResizeHandle:function(e,t){var n=this;0===t.buttons&&(n._initResizeHandle(),n.setResizeHandlePosition(e),n.setResizeHandleDimensions(),n.setResizeHandleDataAttributes(e[0]),n._attachResizeHandleEventHandlers(),n._initResizable(e),n._hideResizeMarker(),n.resizeHandle.show())},_initResizeHandle:function(){var e=this,t=e.options;e._destroyResizeHandle(),e.resizeHandle=n(t.handle.template).appendTo(t.rootElement)},setResizeHandlePosition:o,setResizeHandleDimensions:o,setResizeHandleDataAttributes:function(e){var t=this;t.resizeHandle.data(t.options.handle.dataAttribute,e)},_attachResizeHandleEventHandlers:function(){var e=this,t=e.options,n=t.eventNamespace,i=t.handle.classNames.marker,o=e.resizeHandle;e.resizeHandle.on(d+n,function(){o.find(m+i).show()}).on(f+n,function(){o.find(m+i).hide()})},_hideResizeMarker:function(){var e=this;e.resizeHandle.find(m+e.options.handle.classNames.marker).hide()},_destroyResizeHandle:function(){var e=this;e.resizeHandle&&(e._destroyResizable(),e.resizeHandle.off(e.options.eventNamespace).remove(),e.resizeHandle=null)},_initResizable:function(t){var n=this;n.resizeHandle&&(n._destroyResizable(),n._resizable=new e.ui.Resizable(t,{draggableElement:n.resizeHandle[0],start:r(n.onResizeStart,n),resize:r(n.onResize,n),resizeend:r(n.onResizeEnd,n)}))},_destroyResizable:function(){var e=this;e._resizable&&(e._resizable.destroy(),e._resizable=null)},onResizeStart:function(){this._disableKeyboard()},onResize:function(e){this.setResizeHandleDragPosition(e)},setResizeHandleDragPosition:o,onResizeEnd:function(e){var t=this;t.resize(e),t._destroyResizeHandle(),t._enableKeyboard()},_enableKeyboard:function(){var e=this.options;n(e.rootElement).off(l+e.eventNamespace)},_disableKeyboard:function(){var e=this.options;n(e.rootElement).on(l+e.eventNamespace,function(e){e.preventDefault()})},_forceResizing:function(e){var t=this._resizable;t&&t.userEvents&&t.userEvents._end(e)}}),b=s.extend({create:function(e,t){var i=this,o=t.name,r=t.eventNamespace;n(e.body).on(u+r,v,function(n){var r=n.currentTarget,a=e[o];n.stopPropagation(),a?a.element===r||a.resizingInProgress()||(i._destroyResizing(e,t),i._initResizing(e,r,t)):i._initResizing(e,r,t)}).on(c+r,v,function(r){var a,s=e[o];r.stopPropagation(),!s||s.resizingInProgress()||s.resizeHandle||(a=n(s.element).parents(v)[0],a&&(i._destroyResizing(e,t),i._initResizing(e,a,t)))}).on(c+r,function(){var n=e[o];n&&!n.resizingInProgress()&&i._destroyResizing(e,t)}).on(f+r,function(r){var a,s=e[o];s&&s.resizingInProgress()&&(a=n(r.target).parents(v)[0],a&&(s._forceResizing(r),i._destroyResizing(e,t),i._initResizing(e,a,t)))})},dispose:function(e,t){n(e.body).off(t.eventNamespace)},_initResizing:function(t,n,i){var o=i.name,r=i.type;t[o]=new r(n,{rtl:e.support.isRtl(t.element),rootElement:t.body})},_destroyResizing:function(e,t){var n=t.name;e[n]&&(e[n].destroy(),e[n]=null)}});b.current=new b,_.create=function(e,t){b.current.create(e,t)},_.dispose=function(e,t){b.current.dispose(e,t)},i(a,{TableElementResizing:_})}(window.kendo)},"function"==typeof define&&define.amd?define:function(e,t,n){(n||t)()}),function(e,define){define("editor/resizing/column-resizing.min",["editor/main.min","editor/resizing/resizing-utils.min","editor/resizing/table-element-resizing.min","editor/dom.min"],e)}(function(){!function(e,t){var n=window,i=n.Math,o=i.abs,r=e.jQuery,a=r.extend,s=e.ui.editor,l=s.Dom,d=s.TableElementResizing,u=s.ResizingUtils,c=u.constrain,p=u.calculatePercentageRatio,f=u.getScrollBarWidth,h=u.inPercentages,m=u.toPercentages,g=u.toPixels,v=e._outerWidth,_=".kendoEditorColumnResizing",b="k-column-resize-handle",y="k-column-resize-marker",w="body",k="tbody",x="thead",C="td",T="th",S="tr",F="col-index",D=",",I="width",z=d.extend({options:{tags:[C,T],min:20,rootElement:null,eventNamespace:_,rtl:!1,handle:{dataAttribute:"column",width:10,height:0,classNames:{handle:b,marker:y},template:'
        '}},elementBorderHovered:function(e,t){var n=this,i=n.options,o=i.handle.width,a=e.offset().left+(i.rtl?0:v(e)),s=t.clientX+r(e[0].ownerDocument).scrollLeft();return s>a-o&&s0?t.height()+n.height():n.height();e.resizeHandle.css({width:e.options.handle.width,height:i})},setResizeHandleDragPosition:function(e){var t=this,n=r(r(e.currentTarget).data(t.options.handle.dataAttribute)),i=t.options,o=r(i.rootElement),a=i.handle?i.handle.width:0,s=i.min,l=i.rtl,d=v(n),u=n.offset().left-(o.offset().left+parseFloat(o.css("borderLeftWidth")))-parseFloat(n.css("marginLeft")),p=v(n.next()),h=r(t.resizeHandle),m=o.is(w)?0:o.scrollLeft(),g=l?f(o[0]):0,_=h.offset().left-(o.offset().left+parseFloat(o.css("borderLeftWidth")))-parseFloat(h.css("marginLeft")),b=c({value:_+(m-g)+e.x.delta,min:u+(m-g)-(l?p:0)+s,max:u+d+(m-g)+(l?0:p)-a-s});h.css({left:b})},resize:function(e){var t,n,i,o,a,s=this,d=r(r(e.currentTarget).data(s.options.handle.dataAttribute)),u=s.options,p=u.rtl?-1:1,f=u.min,h=p*e.x.initialDelta;l.reMapTableColumns(s.element,F),o=parseInt(d.attr(F),10),d.prop("colSpan")>1&&(d=r(s.element).find("["+F+"="+(o+d.prop("colSpan")-1)+"]").eq(0),o=parseInt(d.attr(F),10)),a=r(s.element).find("["+F+"="+(o+1)+"]:not([colspan])"),s._setTableComputedWidth(),s._setColumnsComputedWidth(),i=v(d),n=v(a),t=c({value:i+h,min:f,max:i+n-f}),s._resizeColumn(d[0],t),s._resizeTopAndBottomColumns(d[0],t),s._resizeAdjacentColumns(parseInt(d.attr(F),10),n,i,i-t),l.clearTableMappings(s.element,F)},_setTableComputedWidth:function(){var e=this.element;""===e.style[I]&&(e.style[I]=g(v(r(e))))},_setColumnsComputedWidth:function(){var e,t=this,n=r(t.element.tHead||t.element.tBodies[0]),i=v(n),o=n.children(S).children(C),a=o.length,s=o.map(function(){return v(r(this))});for(e=0;e
        '}},elementBorderHovered:function(e,t){var n=this,i=n.options.handle[T],r=e.offset().top+m(e),a=t.clientY+o(e[0].ownerDocument).scrollTop();return a>r-i&&a0?r:a,l=o(t.resizeHandle),d=o(e.currentTarget).data(n.handle.dataAttribute),c=o(d),p=o(n.rootElement),f=p.is(y)?0:p.scrollTop(),h=s.offset().top-(p.offset().top+parseFloat(p.css("borderTopWidth")))-parseFloat(s.css("marginTop")),g=c.offset().top-(p.offset().top+parseFloat(p.css("borderTopWidth")))-parseFloat(c.css("marginTop")),v=l.offset().top-(Math.max(0,p.offset().top)+parseFloat(p.css("borderTopWidth")))-parseFloat(l.css("marginTop")),_=u({value:v+f+e.y.delta,min:g+f+i,max:h+m(r)+m(a)+f-n.handle[T]-i});l.css({top:_})},resize:function(e){var t=this,n=t.options,r=o(e.currentTarget).data(n.handle.dataAttribute),a=m(o(r)),s=o(t.element),l=m(s),d=s.children(x),c=d.length>0?d.height():0,f=s.children(k),g=f.height(),v=r.style[T],_=u({value:a+e.y.initialDelta,min:n.min,max:i(c+g-n.min)});t._setRowsHeightInPixels(),r.style[T]=h(_),t._setTableHeight(l+(_-a)),p(v)&&t._setRowsHeightInPercentages()},_setRowsHeightInPixels:function(){var e,t=this,n=o(t.element).children(k+C+x).children(w),i=n.length,r=n.map(function(){return m(o(this))});for(e=0;e0?n.height():0,r=o(t.element).children(k),a=r.height(),s=o(t.element).children(x+C+k).children(w),l=s.length,d=s.map(function(){return m(o(this))});for(e=0;e
      • "},events:[M,O,B,V,U],show:function(){this._setPosition()},_setPosition:function(){var e=this,t=e._positioningStrategy.getPosition();C(e.element).css({top:t.top,left:t.left,position:"absolute"})},_attachEventHandlers:function(){var e=this;C(e.element).on(V+H,F(e._onMouseOver,e)).on(U+H,F(e._onMouseOut,e))},_onMouseOver:function(){this.trigger(V)},_onMouseOut:function(){this.trigger(U)},_addStyles:function(){var e=this;C(e.element).children(Z+P).addClass("k-resize-"+e.options.direction)},_initPositioningStrategy:function(){var e=this,t=e.options;e._positioningStrategy=n.create({name:t.direction,handle:e.element,resizableElement:t.resizableElement,rootElement:t.rootElement,rtl:t.rtl})},_initDraggable:function(){var e=this,t=e.element;!e._draggable&&t&&(e._draggable=new z(t,{dragstart:F(e._onDragStart,e),drag:F(e._onDrag,e),dragend:F(e._onDragEnd,e)}))},_onDragStart:function(){this.trigger(M)},_onDrag:function(e){var t=this;t.trigger(O,t._draggingStrategy.adjustDragDelta({deltaX:e.x.delta,deltaY:e.y.delta,initialDeltaX:e.x.initialDelta,initialDeltaY:e.y.initialDelta}))},_onDragEnd:function(){this.trigger(B)},_destroyDraggable:function(){var e=this;e._draggable&&(e._draggable.destroy(),e._draggable=null)},_initDraggingStrategy:function(){var e=this;e._draggingStrategy=p.create({name:e.options.direction})}}),te=I.extend({init:function(){this._items=[]},register:function(e,t){this._items.push({name:e,type:t})},create:function(e){var t,n,i,o=this._items,r=o.length,a=e.name?e.name.toLowerCase():"";for(i=0;ih?(o=a(d,h),l=r(d,h)):(o=r(d,h),l=a(d,h)),i=y(g(o,l))):i=w(d),u._setColumnsWidth(),c[0].style[V]=i)},_resizeHeight:function(e,t){var i,o,l,d,u=this,c=s(u.element),p=c[0].style[U],f=x(c),h=c.parent(),m=h.height(),b=u._getMaxDimensionValue(U),k=u.options.minHeight,C=u._hasRowsInPixels();0!==e&&(n(u._initialElementHeight)&&(u._initialElementHeight=f),d=v({value:u._initialElementHeight+t,min:k,max:b}),C&&e<0&&u._setRowsHeightInPercentages(),_(p)?(f+e>m?(o=a(d,m),l=r(d,m)):(o=r(d,m),l=a(d,m)),i=y(g(o,l))):i=w(d),c[0].style[U]=i,C&&e<0&&u._setRowsHeightInPixels())},_getMaxDimensionValue:function(e){var t=this,n=s(t.element),i=e.toLowerCase(),o=t.options.rtl?-1:1,r=s(t.element).parent(),a=r[0],l=r[i](),d=o*(e===V?r.scrollLeft():r.scrollTop());return a===n.closest(H)[0]?""!==a.style[i]||_(t.element.style[i])?l+d:1/0:l+d},_setColumnsWidth:function(){function e(e){var t=e.style.width;return""!==t?!!_(t):!!s(e).hasClass(S)}var t,n=this,i=s(n.element),o=i.parent()[0],r=i.closest(H),a=r.closest(P).children(),l=a.length;if(e(i[0])&&o===r[0]&&""===o.style[V])for(t=0;t0?n.height():0,o=s(t.element).children(M),r=o.height(),a=s(t.element).children(O+L+M).children(P),l=a.length,d=a.map(function(){return x(s(this))});for(e=0;e0)){for(e=0;e0;!n||i===o||l(i,o)||r||e._destroyTableResizing()})},dispose:function(e){s(e.body).off(C)},_initResizing:function(t,n){c.msie||c.mozilla||(t.tableResizing=new J(n,{appendHandlesTo:t.body,rtl:e.support.isRtl(t.element),rootElement:t.body}))}});Z.current=new Z,J.create=function(e){Z.current.create(e)},J.dispose=function(e){Z.current.dispose(e)},d(p,{TableResizing:J})}(window.kendo)},"function"==typeof define&&define.amd?define:function(e,t,n){(n||t)()}),function(e,define){define("editor/table-wizard/table-wizard-command.min",["editor/plugins/tables.min"],e)}(function(){!function(e,t){var n=window.kendo,i=n.ui.editor,o=i.EditorUtils,r=i.RangeUtils,a=i.Dom,s=o.registerTool,l=i.ToolTemplate,d=i.Command,u=new i.BlockFormatFinder([{tags:["table"]}]),c=new i.BlockFormatFinder([{tags:["td","th"]}]),p=/([a-z]+|%)$/i,f="col",h="row",m="colgroup",g="scope",v="col-index",_="th",b="td",y="thead",w="headers",k="table",x=d.extend({exec:function(){var o=this,r=o.editor,a=o.range=o.lockRange(),s=o._sourceTable=o.options.insertNewTable?t:o._selectedTable(a),l=o._selectedTableCells=s?o._selectedCells(a):t,d={visible:!1,messages:r.options.messages,closeCallback:e.proxy(o.onDialogClose,o),table:o.parseTable(s,l),dialogOptions:r.options.dialogOptions,isRtl:n.support.isRtl(r.wrapper)},u=new i.TableWizardDialog(d);u.open()},onDialogClose:function(e){var t=this;t.releaseRange(t.range),e&&(t.options.insertNewTable?t.insertTable(t.createNewTable(e)):t.updateTable(e,t._sourceTable,t._selectedTableCells))},releaseRange:function(e){var t=this,n=t.editor.document;a.windowFromDocument(n).focus(),d.fn.releaseRange.call(t,e)},insertTable:function(e){var t=this.range;t.insertNode(e),t.collapse(!0),this.editor.selectRange(t),this._ensureFocusableAfterTable(e)},_ensureFocusableAfterTable:function(t){for(var n=e(t).parent().contents(),i=n.length-1,o=n.get(i);null!==o.nodeValue&&(" "===o.nodeValue||""===o.nodeValue);)i-=1,o=n.get(i);o===t&&a.insertAfter(a.createEmptyNode(this.editor.document,"p"),t)},updateTable:function(t,n,i){for(var o,r,s,l,d,u,c,p,f=this,h=e(n.rows).toArray(),m=t.tableProperties,g=m.rows,_=m.columns,b=n.tHead,y=function(e){return e[e.length-1]};i.length>1;)i.pop();if(o=i.length?y(i).parentNode:y(h),f._deleteTableRows(h,h.length-g),h.length_&&e(h).each(function(e,t){for(;t.cells.length>_;)t.deleteCell(-1)}),h[0].cells.length<_&&(c=e(y(i)||y(o.cells)).index(),e(h).each(function(e,t){f._insertCells(_-t.cells.length,t,c+1)})),f._updateTableProperties(n,m),p=t.cellProperties,i[0]&&a.attr(i[0],{id:p.id||null}),(p.selectAllCells?e(h).children():e(i)).each(function(e,t){f._updateCellProperties(t,p)}),f._updateCaption(n,m),a.reMapTableColumns(n,v),b?f._updateHeadersWithThead(n,t):f._updateHeadersNoThead(n,t),f._updateHeaderAssociates(n,m),a.clearTableMappings(n,v)},_isHeadingRow:function(e){return a.is(e.cells[0],_)&&a.is(e.parentNode,y)},_isHeadingCell:function(e){return a.is(e,_)},cellsWithHeadersAssociated:function(t){var n,i=e(t.rows).children(),o=[],r=function(e){return o.indexOf(e)>-1};return i.each(function(e,t){t.id&&a.is(t,_)&&o.push(t.id)}),n=i.filter(function(e,t){var n,i=t.getAttribute(w);return!!(i&&!a.is(t,_)&&(n=i.split(" "),n&&n.length>0))&&n.some(r)}),!!n.length},_insertCells:function(e,t,n){n=isNaN(n)?-1:n;for(var i,o=0;o0&&(t=s.createTHead(),i._createTableRows(e,t,l,!0),l+=r.headerRows),n=s.createTBody(),i._createTableRows(e,n,l,!1),a.reMapTableColumns(s,v),"ids"===r.cellsWithHeaders?a.associateWithIds(s):"scope"===r.cellsWithHeaders&&i._addScopes(s,r.headerRows,r.headerColumns),a.clearTableMappings(s,v),s},_createTableRows:function(e,t,n,i){var o,r,a,s,l=this,d=e.tableProperties,u=e.cellProperties,c=d.columns,p=i?d.headerRows:d.rows,f=u.selectAllCells,h=d.headerColumns;for(o=n;oa?document.createElement(_):document.createElement(b),r.appendChild(s),s.innerHTML=" ",0===o&&0===a&&u.id&&(s.id=u.id),l._updateCellProperties(s,f||0===o&&0===a?u:{})},_updateTableProperties:function(t,n){var i=this._getStylesData(n);a.attr(t,{cellSpacing:n.cellSpacing||null,cellPadding:n.cellPadding||null,className:n.className||null,id:n.id||null,summary:n.summary||null,style:i||null}),e(t).addClass("k-table")},_updateCellProperties:function(e,t){var n=this._getStylesData(t);n.padding=t.cellPadding||null,n.margin=t.cellMargin||null,a.attr(e,{style:n||null,className:t.className||null})},_updateCaption:function(e,t){var n,i;e.caption&&!t.captionContent?e.deleteCaption():t.captionContent&&(n=e.createCaption(),n.innerHTML=t.captionContent,i=this._getAlignmentData(t.captionAlignment),a.attr(n,{style:{textAlign:i.textAlign,verticalAlign:i.verticalAlign}}))},_updateHeadersNoThead:function(e,t){var n,i,o,r,s,l=this,d=t.tableProperties,u=e.rows;for(r=0;ro.getAttribute(v))?a.changeTag(o,_,!1):l._isHeadingCell(o)&&r>=d.headerRows&&d.headerColumns<=o.getAttribute(v)&&a.changeTag(o,b,!1)},_updateHeadersWithThead:function(e,t){var n,i,o,r=this,s=t.tableProperties,l=e.tHead,d=0,u=e.tBodies[0];if(u||(u=e.createTBody()),s.headerRows&&s.headerRows>0){for(l||(l=e.createTHead());l.rows.lengths.headerRows;)u.appendChild(l.rows[0]);r._swapToHeaderCells(l)}else if(l){for(;l.rows.length>0;)u.appendChild(l.rows[l.rows.length-1]);e.deleteTHead()}for(;u.rows.length>d;){for(n=u.rows[d],o=0;oi.getAttribute(v)&&a.changeTag(i,_,!1);d+=1}},_updateHeaderAssociates:function(e,t){var n=this;"ids"===t.cellsWithHeaders?(n.cellsWithHeadersAssociated(e)||n._removeScopes(e),a.associateWithIds(e)):"scope"===t.cellsWithHeaders?(n.cellsWithHeadersAssociated(e)&&n._removeAssociates(e),n._addScopes(e,t.headerRows,t.headerColumns)):n.cellsWithHeadersAssociated(e)?n._removeAssociates(e):n._removeScopes(e)},_addScopes:function(e,t,n){var i,o,r,a,s=e.rows;for(i=0;i0?"scope":"none",a.reMapTableColumns(n,v),m=a._getNumberOfColumns(n),g=a._getNumberOfHeaderColumns(n,f),a.clearTableMappings(n,v),_={tableProperties:{width:r.width||n.width?parseFloat(r.width||n.width):null,height:r.height||n.height?parseFloat(r.height||n.height):null,columns:m,rows:s.length,widthUnit:o._getUnit(r.width),heightUnit:o._getUnit(r.height),cellSpacing:n.cellSpacing,cellPadding:n.cellPadding,alignment:c.textAlign,bgColor:r.backgroundColor||n.bgColor,className:u,id:n.id,borderWidth:r.borderWidth||n.border,borderColor:r.borderColor,borderStyle:r.borderStyle||"",collapseBorders:!!r.borderCollapse,summary:n.summary,captionContent:l?d.html():"",captionAlignment:l&&p.textAlign?p.textAlign+" "+p.verticalAlign:"",headerRows:f,headerColumns:g,cellsWithHeaders:h},selectedCells:[]},_.rows=o.parseTableRows(s,i,_),_):{tableProperties:{},selectedCells:[]}},parseTableRows:function(t,n,i){var o,r,a,s,l,d,u,c=this,p=[];for(d=0;d",valueTemplate:""},l={dataSource:[{className:"k-icon k-i-table-align-top-left",value:"left top"},{className:"k-icon k-i-table-align-top-center",value:"center top"},{className:"k-icon k-i-table-align-top-right",value:"right top"},{className:"k-icon k-i-table-align-middle-left",value:"left middle"},{className:"k-icon k-i-table-align-middle-center",value:"center middle"},{className:"k-icon k-i-table-align-middle-right",value:"right middle"},{className:"k-icon k-i-table-align-bottom-left",value:"left bottom"},{className:"k-icon k-i-table-align-bottom-center",value:"center bottom"},{className:"k-icon k-i-table-align-bottom-right",value:"right bottom"},{className:"k-icon k-i-align-remove",value:""}],dataTextField:"className",dataValueField:"value",template:"",valueTemplate:""},d={dataSource:[{className:"k-icon k-i-table-align-top-left",value:"left top"},{className:"k-icon k-i-table-align-top-center",value:"center top"},{className:"k-icon k-i-table-align-top-right",value:"right top"},{className:"k-icon k-i-table-align-bottom-left",value:"left bottom"},{className:"k-icon k-i-table-align-bottom-center",value:"center bottom"},{className:"k-icon k-i-table-align-bottom-right",value:"right bottom"},{className:"k-icon k-i-align-remove",value:""}],dataTextField:"className",dataValueField:"value",template:"",valueTemplate:""},u='
        • #= messages.tableTab #
        • #= messages.cellTab #
        • #= messages.accessibilityTab #
         
         
        ',c=n.Class.extend({ +init:function(e){this.options=e},open:function(){function t(e){e.preventDefault(),l.destroy(),r.destroy()}function i(e){l.collectDialogValues(c),t(e),l.change&&l.change(),d.closeCallback(c)}function o(e){t(e),d.closeCallback()}var r,a,s,l=this,d=l.options,u=d.dialogOptions,c=d.table,p=d.messages,f=n.support.browser.msie;u.close=o,u.title=p.tableWizard,u.visible=d.visible,r=e(l._dialogTemplate(p)).appendTo(document.body).kendoWindow(u).closest(".k-window").toggleClass("k-rtl",d.isRtl).end().find(".k-dialog-ok").click(i).end().find(".k-dialog-close").click(o).end().data("kendoWindow"),a=r.element,l._initTabStripComponent(a),l._initTableViewComponents(a,c),l._initCellViewComponents(a,c),l._initAccessibilityViewComponents(a,c),r.center(),r.open(),f&&(s=a.closest(".k-window").height(),a.css("max-height",s))},_initTabStripComponent:function(e){var t=this.components={};t.tabStrip=e.find("#k-table-wizard-tabs").kendoTabStrip({animation:!1}).data("kendoTabStrip")},collectDialogValues:function(){var e=this,t=e.options.table;e._collectTableViewValues(t),e._collectCellViewValues(t),e._collectAccessibilityViewValues(t)},_collectTableViewValues:function(e){var t=this.components.tableView,n=e.tableProperties;n.width=t.width.value(),n.widthUnit=t.widthUnit.value(),n.height=t.height.value(),n.columns=t.columns.value(),n.rows=t.rows.value(),n.heightUnit=t.heightUnit.value(),n.cellSpacing=t.cellSpacing.value(),n.cellPadding=t.cellPadding.value(),n.alignment=t.alignment.value(),n.bgColor=t.bgColor.value(),n.className=t.className.value,n.id=t.id.value,n.borderWidth=t.borderWidth.value(),n.borderColor=t.borderColor.value(),n.borderStyle=t.borderStyle.value(),n.collapseBorders=t.collapseBorders.checked},_collectCellViewValues:function(e){var t=e.cellProperties={},n=this.components.cellView;t.selectAllCells=n.selectAllCells.checked,t.width=n.width.value(),t.widthUnit=n.widthUnit.value(),t.height=n.height.value(),t.heightUnit=n.heightUnit.value(),t.cellMargin=n.cellMargin.value(),t.cellPadding=n.cellPadding.value(),t.alignment=n.alignment.value(),t.bgColor=n.bgColor.value(),t.className=n.className.value,t.id=n.id.value,t.borderWidth=n.borderWidth.value(),t.borderColor=n.borderColor.value(),t.borderStyle=n.borderStyle.value(),t.wrapText=n.wrapText.checked,t.width||(t.selectAllCells=!0,t.width=100/e.tableProperties.columns,t.widthUnit="%")},_collectAccessibilityViewValues:function(e){var t=e.tableProperties,n=this.components.accessibilityView;t.captionContent=n.captionContent.value,t.captionAlignment=n.captionAlignment.value(),t.summary=n.summary.value,t.cellsWithHeaders=n.cellsWithHeaders.value(),t.headerRows=n.headerRows.value(),t.headerColumns=n.headerColumns.value()},_addUnit:function(t,n){n&&e.inArray(n,t)==-1&&t.push(n)},_initTableViewComponents:function(e,t){var n,i,s=this,l=s.components,d=l.tableView={},u=t.tableProperties=t.tableProperties||{};u.borderStyle=u.borderStyle||"",n=function(e){var t=s.components.accessibilityView,n=t.headerColumns,i=n.value(),o=e.sender.value();o","isgreaterthan","greaterthan","greater",">=","isgreaterthanorequalto","greaterthanequal","ge","notsubstringof","toArray","range","inPlace","orderBy","orderByDescending","compiled","predicate","allData","groupPaging","groupAllData","itemCount","subgroupCount","groupBy","groupValue","currentValue","_sortForGrouping","_sortGroups","sum","average","process","customGroupSort","query","groupDescriptorsWithoutCompare","normalizedSort","groupDescriptorsWithoutSort","filterCallback","groupDescriptor","setup","parameters","operation","_store","clear","store","inmemory","schema","dataFunction","groupsFunction","serializeFunction","serializeGetters","_dataAccessFunction","fromName","_wrapDataAccessBase","_map","_prefetch","_pristineData","_ranges","_view","_pristineTotal","_destroyed","_pageSize","_page","_sort","_filter","_group","_aggregate","_total","_groupPaging","_groupsState","_shouldDetachObservableParents","pushCreate","_pushCreate","pushUpdate","_pushUpdate","pushDestroy","_pushDestroy","offlineStorage","_storage","getItem","localStorage","setItem","reader","_detachObservableParents","_observe","_online","serverSorting","serverPaging","serverFiltering","serverAggregates","inPlaceSort","online","sync","Deferred","resolve","offlineData","_isServerGrouped","_isServerGroupPaged","_isGroupPaged","_push","_readData","_flatData","useRanges","getByUid","_getByUid","_storeData","_addRange","_process","_observeView","insert","_createNewModel","_wrapInEmptyGroup","_insertModelInRange","pushInsert","pushed","autoSync","pristine","rangeSpan","_getCurrentRangeSpan","pristineData","_updatePristineForModel","_removeItems","removePristine","shouldRemovePristine","found","_eachItem","_removePristineForModel","hasGroups","_removeModelFromRanges","promises","_sendSubmit","_send","when","then","_accept","_syncEnd","_change","cancelChanges","_cancelModel","_changesCanceled","_markOfflineUpdatesAsDirty","__state__","hasChanges","serverGroup","_handleCustomErrors","_executeOnPristineForModel","_eachPristineItem","_pristineForModel","_modelCanceled","_submit","reject","deferred","_promise","converted","_params","_queueRequest","isPrevented","_dequeueRequest","_readAggregates","replaceSubset","itemIds","j","_serverGroupsTotal","_aggregateResult","_skip","endless","_changeHandler","updatePristine","timestamp","_timeStamp","outerStart","outerEnd","_sortRanges","_groupsFlat","_appendToGroupsFlat","_updateOuterRangesLength","_getGroupByUid","xhr","errorThrown","_requestInProgress","_pending","_shouldWrap","arrayType","_updateTotalForAction","_calculateAggregates","_take","currentRangeStart","_clearEmptyGroups","_queryProcess","dataToAggregate","_setView","_setFilterTotal","_mergeState","_currentRangeStart","_sortFields","moreItemsCount","remote","_hasExpandedSubGroups","_findGroupedRange","itemsLength","hasNotRequestedItems","groupCount","itemsToSkip","taken","getGroupSubGroupCount","_fetchingGroupItems","skipped","getGroupItems","includeParents","excludeHeader","currentItems","subgroups","_composeItemsFilter","findSubgroups","_timeout","_groupItemsSuccessHandler","includeSubGroupCount","_subGroupCountSuccessHandler","totalField","temp","_updateRangePristineData","_currentRequestTimeStamp","_skipRequestsInProgress","indexOfCurrentGroup","currentGroup","dataLength","indexes","rangesLength","_containsSubGroup","_cloneGroup","subgroup","currentSubGroup","filterTotal","setDefaultValue","fetch","_query","done","next","totalPages","prev","_pageableQueryOptions","getGroupsFlat","groupsTotal","includeExpanded","_calculateGroupsTotal","itemsField","ignoreState","_groupsTotal","countGroupRange","_emptyAggregates","ceil","inRange","_findRange","lastRange","firstItemUid","enableRequestsInProgress","pageSkip","_originalPageSkip","_originalSize","_adjustPageSkip","_groupRangeExists","_rangeExists","prefetch","_processRangeData","skipIdx","takeIdx","startIndex","endIndex","rangeData","rangeEnd","processed","flatData","prevRangeEnd","currentDataLength","groupMapOptions","isGroupPaged","startField","endField","_mergeGroups","_getRangesMismatch","mismatch","prevGroup","eventData","paging","sorting","filtering","_omitPrefetch","_prefetchSuccessHandler","_multiplePrefetch","prevRange","_getPrevRange","_getNextRange","availableItemsCount","_removeModelFromRange","_updateRangesLength","rangeLength","mismatchFound","mismatchLength","lengthDifference","transportOptions","hasChildrenObject","childrenField","childrenOptions","_childrenOptions","_initChildren","_updateChildrenField","append","loaded","level","_childrenLoaded","load","_matchFilter","_hierarchicalFilter","_markHierarchicalQuery","_updateHierarchicalFilter","_find","_dataSource","viewSize","disablePrefetch","_prefetching","_reset","_syncWithDataSource","setViewSize","_recalculate","itemPresent","dataOffset","prefetchThreshold","midPageThreshold","nextMidRange","nextPageThreshold","nextFullRange","pullBackThreshold","previousMidRange","previousFullRange","_goToRange","nextRange","syncDataSource","prefetchOffset","expanding","_expanding","_syncPending","_firstItemUid","batchSize","batchBuffer","endreached","prefetching","prefetched","reset","tabKeyTrapNS","focusableNodesSelector","TabKeyTrap","OPEN","CLOSE","DEACTIVATE","ACTIVATE","CENTER","TOP","BOTTOM","ABSOLUTE","HIDDEN","BODY","LOCATION","POSITION","VISIBLE","EFFECTS","ACTIVE","ACTIVEBORDER","ACTIVEBORDERREGEXP","ACTIVECHILDREN","MOUSEDOWN","DOCUMENT_ELEMENT","WINDOW","SCROLL","cssPrefix","TRANSFORM","NS","Popup","parentPopup","origin","collisions","collision","downEvent","anchor","_hovered","scrollArea","animation","open","_activated","_trigger","_animationClose","_mousedownProxy","_mousedown","_resizeProxy","toggleTarget","toggleEvent","viewport","copyAnchorStyles","modal","adjustSize","transition","_hideDirClass","_closing","_toggleResize","fixed","isFixed","flipped","_position","_openAnimation","_showDirClass","show","_location","direction","dirClass","slideIn","skipEffects","openEffects","closeEffects","popup","ev","_resizeTimeout","_scrollableParents","_fit","viewPortSize","output","_flip","anchorSize","boxSize","siblingContainer","parentZIndex","viewportOffset","viewportWidth","viewportHeight","pos","anchorParent","offsets","flipPos","elementHeight","wrapperHeight","isWindow","origins","positions","zIndex","siblings","_align","offsetParent","appendToOffset","verticalOrigin","horizontalOrigin","verticalPosition","horizontalPosition","anchorOffset","anchorWidth","anchorHeight","trap","_keepInTrap","removeTrap","shouldTrap","sortedElements","which","_focusableElements","_sortFocusableElements","_nextFocusable","_focus","tabIndex","attrName","contentWindow","_haveSelectionRange","elementType","unifyType","getSelectedOption","selectedIndex","mapChangedItems","selected","itemsToMatch","selectedLength","changed","unchanged","isValidFilterExpr","removeFiltersForField","STATIC_LIST_NS","StaticList","percentageUnitsRegex","ID","FOCUSED","HOVER","LOADING","GROUPHEADER","ITEMSELECTOR","LABELIDPART","CASCADE","SELECT","SELECTED","BLUR","FOCUS","FOCUSOUT","HIDDENCLASS","WIDTH","isIE","isIE8","quotRegExp","alternativeNames","ComboBox","DropDownList","MultiColumnComboBox","List","_isSelect","dataTextField","dataValueField","ul","aria-hidden","_listMousedown","columns","_columnsHeader","_header","_noData","_footer","_accessors","_initValue","valuePrimitive","footerTemplate","headerTemplate","noDataTemplate","noData","_renderFooter","_renderNoData","_focused","readonly","_editable","_angularElement","prepend","colGroup","row","currentColumn","title","columnsHeaderTemplate","currentWidth","currentWidthInt","widthStyle","columnsHeader","footer","_listOptions","currentOptions","virtual","changeEventOption","_listChange","listBoundHandler","_listBound","autoBind","selectable","_click","activate","_activateItem","deactivate","_deactivateItem","dataBinding","dataBound","groupTemplate","fixedGroupTemplate","$angular","_initList","listOptions","selectedItemChange","listView","VirtualList","_setListValue","_updateSelectionState","filterInput","_isFilterEnabled","_hideClear","_clear","_showClear","_clearValue","_clearText","_accessor","_customOption","enforceMinLength","word","highlightFirst","_clearFilter","bound","_filterSource","newExpression","dataSourceState","isMultiColumnFiltering","filterFields","resetPageSettings","removed","_clearFilterExpressions","_pushFilterExpression","_cascading","setDSFilter","filtersToRemove","_toggleNoData","_toggleHeader","groupHeader","_allowOpening","_old","_ignoreCase","candidate","widgetOptions","fromFilter","_buildExpression","_open","_clearButton","clearTitle","clearButton","_inputValue","_typingTimeout","minLength","_state","_emptySearch","_searchByWord","_unbindDataSource","_form","_resetHandler","selectedDataItems","valueField","_text","_value","_aria","suggest","_ariaLabel","labelId","focusedElm","inputElm","inputId","labelElm","ariaLabel","ariaLabelledBy","_generateLabelId","_blur","_userTriggered","optionValue","_oldText","_valueBeforeCascade","_oldIndex","isFiltered","_typing","typing","_enable","_dataValue","_offsetHeight","prevAll","_height","offsetTop","popups","footerHeight","_openHandler","_adjustListWidth","computedWidth","paddingLeft","paddingRight","borderLeftWidth","borderRightWidth","fontFamily","autoWidth","minWidth","whiteSpace","_closeHandler","_focusItem","noFocusedItem","scrollToIndex","_calculateGroupPadding","li","padding","_calculatePopupHeight","_calculateColumnsHeaderPadding","_refreshScroll","enableYScroll","overflowX","overflowY","_resizePopup","_popup","_makeUnselectable","not","_toggleHover","currentTarget","_toggle","preventFocus","touchEnabled","MSPointers","_prevent","_triggerCascade","_cascadeTriggered","_cascadedValue","userTriggered","_triggerChange","_requestStartHandler","_requestEndHandler","_errorHandler","requireValueMapper","hasValue","valueMapper","Select","_initial","setDataSource","_initialIndex","_current","_parentWidget","_cascadeSelect","_select","_cascadeValue","_accessorInput","_accessorSelect","_custom","_syncValueAndText","custom","_hideBusy","_busy","_arrowIcon","_showBusy","_request","_requestEnd","_firstItem","focusFirst","_lastItem","focusLast","_nextItem","focusNext","_prevItem","focusPrev","_getNormalizedDataItem","isIndex","hasOptionLabel","optionLabel","getElementIndex","dataItemByIndex","_getNormalizedSelectCandidate","normalizedCandidate","_move","pressed","moveIndex","selectCandidate","activeFilter","shouldTrigger","isVirtual","altKey","_fetch","_get","_focusElement","focusout","scrollWith","_fetchData","hasItems","cascadeFrom","_options","dataText","dataValue","htmlElement","formId","parentElement","_cascade","cascade","_cascadeHandlerProxy","_cascadeHandler","_cascadeFilterRequests","_selectedValue","_toggleCascadeOnFocus","valueBeforeCascade","_clearSelection","_cascadeChange","filterValue","cascadeFromParentField","cascadeFromField","currentHandler","_touchHandlers","before","_optionID","_selectedIndices","_dataItems","_values","_getter","_templates","_onScroll","_scrollId","_renderHeader","_refreshHandler","_fixedHeader","startY","endY","tapPosition","pageY","_touchTriggered","_triggerClick","_render","scroll","itemOffsetTop","itemOffsetHeight","contentScrollTop","contentOffsetHeight","bottomDistance","_getValues","_valueGetter","hasCandidate","focusIndex","skipUpdate","_skipUpdate","indices","filtered","singleSelection","selectedIndices","uiSelectedIndices","added","_deselectFiltered","_deselect","_valueComparer","removeAt","setValue","_valueDeferred","_valueIndices","_valueExpr","normalized","_valueType","_dataItemPosition","valueExpr","removedIndices","_template","templateText","templates","_normalizeIndices","newIndices","_firstVisibleItem","itemHeight","lastChild","forward","previousSibling","isGrouped","visibleItem","_renderItem","notFirstItem","hasColumns","isLastGroupedItem","_renderColumns","dataContext","_selected","_lastDSFilter","skipUpdateOnBind","isItemChange","_bound","parseInteger","parseCSS","propertyName","acc","strip3DTransforms","transformProps","transform2d","normalizeCSS","lowerKey","isTransformed","transformation","cssValues","animationProperty","transform","computed","NONE","matrix3dRegExp","translateXRegExp","atan2","capitalize","createEffect","definition","effectClass","Effect","opt1","opt2","opt3","theDirection","createToggleEffect","defaultStart","defaultEnd","IN_OUT","startValue","_startValue","endValue","_endValue","shouldHide","_shouldHide","prepare","_direction","startDataValue","startDataValueIsSet","_reverse","clipInHalf","vertical","HEIGHT","CLIPS","curProxy","EffectSet","FOUR_DIRECTIONS","TRANSFER_START_STATE","ROTATIONS","RESTORE_OVERFLOW","IGNORE_TRANSITION_EVENT_SELECTOR","Animation","Transition","scaleProperties","scale","scalex","scaley","scale3d","translateProperties","translate","translatex","translatey","translate3d","hasZoom","cssParamsRegExp","oldEffectsRegExp","singleEffectRegExp","unitRegExp","transform2units","rotate","skew","BLANK","PX","AUTO","ORIGIN","ABORT_ID","OVERFLOW","TRANSLATE","COMPLETE_CALLBACK","TRANSITION","BACKFACE","PERSPECTIVE","DEFAULT_PERSPECTIVE","TRANSFORM_PERSPECTIVE","modifier","horizontal","stopQueue","transformValue","step","elem","now","cur","exclusive","ease","mirror","redirectedEffect","resolved","$1","$2","effect","effectBody","timeoutID","stopTransitionCalled","stopTransition","oldKeys","speeds","merge","uniqueSort","unique","taskKeys","retainPosition","restore","run","jdx","childrenLength","effectName","setReverse","addRestoreProperties","restoreCallback","effectSet","parsedEffects","useTransition","multiple","single","originalPosition","dX","dY","marginLeft","marginTop","_additionalEffects","play","additional","_duration","compositeRun","_complete","divisor","tmp","previous","previousDivisor","margin","setLength","oldLength","realLength","outerBox","box","innerBox","currentScale","fillScale","transformOrigin","_container","rotation","_clipInHalf","clip","face","_face","temporary","back","reverseDirection","faceClone","backClone","staticPage","turningPage","transformStyle","_before","_after","transitionClass","_previous","_transitionClass","beforeTransition","afterTransition","_both","_element","_containerClass","containerClass","completeProxy","isAbsolute","originalOverflow","both","_tickProxy","_tick","_started","tick","onEnd","onCancel","timePassed","startDate","moveTo","movable","initial","_easeProxy","moveAxis","easeOutExpo","easeOutBack","inner","outer","fitScale","touchDelta","touch1","touch2","x1","y1","x2","y2","dx","dy","center","distance","sqrt","getTouches","api","identifier","pointerId","withEachUpEvent","downEvents","OS","invalidZeroEvents","DEFAULT_MIN_HOLD","CLICK_DELAY","DEFAULT_THRESHOLD","PRESS","HOLD","START","MOVE","CANCEL","TAP","DOUBLETAP","RELEASE","GESTURESTART","GESTURECHANGE","GESTUREEND","GESTURETAP","THRESHOLD","mouse","pointer","ENABLE_GLOBAL_SURFACE","TouchAxis","_updateLocationData","startLocation","velocity","timeStamp","timeDelta","initialDelta","Touch","userEvents","touchInfo","useClickAsTap","initialTouch","pressEvent","_clicks","supportDoubleTap","_moved","_finished","press","_holdTimeout","minHold","_tap","_clickTimeout","_hold","preventMove","_shouldNotMove","_withinIgnoreThreshold","UserEvents","dispose","_start","endTime","activeTouches","isMoved","startTime","xDelta","yDelta","defaultAction","surfaceElement","preventIfMovingProxy","_maxTouches","multiTouch","allowSelection","captureUpIfMoved","fastTap","eventNS","surface","global","ownerDocument","touchAction","preventDragEvent","root","preventIfMoving","_isMoved","removeEventListener","_disposeAll","capture","_isMultiTouch","_apiCall","_maxTouchesReached","_eachTouch","_end","pageX","methodName","matchingTouch","dict","defaultThreshold","numericCssPropery","within","containerBoundaries","minX","minY","maxX","maxY","checkTarget","targets","areas","theTarget","theFilter","targetLen","areaLen","targetElement","destroyDroppable","groupName","droppables","scrollableViewPort","scrollableRoot","$window","findScrollableParent","autoScrollVelocity","mouseX","mouseY","rect","AUTO_SCROLL_AREA","lastDropTarget","Movable","DropTarget","DropTargetArea","Draggable","draggables","dropTargets","dropAreas","KEYUP","DRAGSTART","DRAG","DRAGEND","DRAGCANCEL","HINTDESTROYED","DRAGENTER","DRAGLEAVE","DROP","TapCapture","_press","_release","attachEvent","captureNext","cancelCapture","PaneDimension","forcedEnabled","measure","scrollSize","makeVirtual","_virtualMin","_virtualMax","virtualSize","outOfBounds","forceEnabled","getTotal","rescale","silent","scaledTotal","minScale","centerOffset","PaneDimensions","forcedMinScale","maxScale","newScale","centerCoordinates","PaneAxis","dimension","dragMove","resistance","translateAxis","Pane","elastic","gesturestart","gesture","gesturechange","coordinates","offsetX","offsetY","previousGesture","previousCenter","scaleDelta","scaleWith","TRANSFORM_STYLE","webkitTransformOrigin","_saveCoordinates","by","scaleTo","newCoordinates","draggable","dropTarget","_over","_out","_drop","dropped","destroyGroup","_cache","hold","_drag","_cancel","_afterEndHandler","_afterEnd","_captureEscape","cursorOffset","holdToDrag","autoScroll","cancelHold","_updateHint","boundaries","hintOffset","hint","_shouldIgnoreTarget","ignoreSelector","currentTargetOffset","scopeTarget","scopeFrom","cursorElement","_elementUnderCursor","_cursorElement","_scrollableParent","_lastEvent","_processMovement","_scrollCompenstation","_scrollVelocity","clearInterval","_scrollInterval","setInterval","_withDropTarget","_autoScroll","yIsScrollable","xIsScrollable","isRootNode","yInBounds","xInBounds","compensation","initialTarget","utils","SNAPBACK_DURATION","SCROLLBAR_OPACITY","FRICTION","VELOCITY_MULTIPLIER","MAX_VELOCITY","OUT_OF_BOUNDS_FRICTION","ANIMATED_SCROLLER_PRECISION","RELEASECLASS","REFRESHCLASS","PULL","RESIZE","MOUSE_WHEEL_ID","ZoomSnapBack","tapCapture","DragInertia","freeze","_moveTo","paneAxis","_snapBack","velocityMultiplier","friction","snapBack","AnimatedScroller","_updateCoordinates","setCoordinates","setCallback","ScrollBar","elementSize","scrollMovable","alwaysVisible","paneSize","sizeRatio","visibility","avoidScrolling","pane","zoomSnapBack","animatedScroller","_native","scrollElement","fixedContainer","wrapInner","velocityX","velocityY","horizontalSwipe","originatedFromFixedContainer","verticalSwipe","scrollTo","mousewheelScrolling","pulled","_initAxis","_wheelEnd","_wheel","_wheelY","pullToRefresh","_initPullToRefresh","_wheelScroll","ctrlKey","_wheelTimeout","pullOffset","visibleScrollHints","pullTemplate","releaseTemplate","refreshTemplate","contentResized","_scale","zoomOut","animatedScrollTo","pullHandled","refreshHint","hintContainer","yinertia","xinertia","_paneChange","_dragEnd","scrollBar","lastFrom","isPrimitive","getItemCount","listScreens","getDefaultItemHeight","lineHeight","mockList","bufferSizes","opposite","listValidator","downThreshold","upThreshold","lastScrollTop","scrollCallback","syncList","reorder","webkitTransform","map2","arr1","arr2","ITEMCHANGE","reshift","itemTemplate","placeholderTemplate","renderColumns","GROUPITEM","isActivePromise","WRAPPER","VIRTUALLIST","CONTENT","LIST","HEADER","VIRTUALITEM","ITEM","HEIGHTCONTAINER","CLICK","LISTBOUND","VIRTUAL_LIST_NS","_fetching","_selectedDataItems","_selectedIndexes","_rangesList","_promisesList","_renderItems","_triggerListBound","_selectable","oppositeBuffer","mapValueTo","_selectProxy","_items","_clean","_deferValueSet","mute","_selectingValue","_highlightSelectedItems","_getElementByDataItem","_mute","_createList","_forcePrefetch","shouldClear","_prefetchByValue","_checkValuesOrder","_removedAddedIndexes","newValue","dataView","_dataView","valueGetter","forSelection","mapValueToIndex","mapValueToDataItem","_getIndecies","deferredRange","defs","low","high","pages","existingRange","isEmptyList","_activeDeferred","_getSkip","_findDataItem","_getRange","triggerEvent","_getElementByIndex","_focusedIndex","_getElementLocation","_screenHeight","heightContainer","initialIndices","isAlreadySelected","prefetchStarted","_selectDeferred","_deselectCurrentValues","_listCreated","_lastScrollTop","hasData","setScreenHeight","yPosition","yDownPostion","screenEnd","_generateItems","minHeight","_saveInitialRanges","_buildValueGetter","_setHeight","getList","_listItems","_whenChanged","_reorderList","currentHeight","padHeight","lastRequestedRange","lastRangeStart","rangeStart","flatGroup","groupLength","_getterDeferred","firstItemIndex","_indexConstraint","firstVisibleGroup","fixedGroupText","currentVisibleGroup","firstVisibleDataItemIndex","firstVisibleDataItem","_itemMapper","listType","currentIndex","_currentGroup","_range","_getDataItemsCollection","_listIndex","theValidator","theNew","currentOffset","Infinity","list2","range2","_bufferSizes","buffers","elementIndex","selectedIndexes","removedindexesCounter","_deselectSingleItem","oldSkip","_clickHandler","firstItem","placeholderSupported","nsFocusEvent","DISABLED","READONLY","DEFAULT","STATEDISABLED","ARIA_DISABLED","AUTOCOMPLETEVALUE","STATE_FILTER","STATE_ACCEPT","STATE_REBIND","HOVEREVENTS","newLineRegEx","_focusHandler","_wrapper","_input","_attachFocusEvents","_setText","_placeholder","_toggleCloseVisibility","syncValueAndText","_inputWrapper","_pasteTimeout","_arrow","hasText","isCustom","_inputFocus","_inputFocusout","_arrowClick","_inputPaste","arrow","_keydown","_search","reinitialized","_openPopup","_scrollToFocusedItem","_buildOptions","_updateSelection","initialIndex","hasInitialIndex","_selectValue","_updateItemFocus","isActive","isFirstPage","_presetValue","keepState","_setDomInputValue","caretStart","currentCaret","_prev","preventShow","caretIdx","_last","loweredText","maxLength","accessKey","SELECTOR","aria-expanded","insertAfter","_preselect","assign","normalizeIndex","sameCharsOnly","character","CLICKEVENTS","MSG_INVALID_OPTION_LABEL","_focusInputHandler","_focusInput","_optionLabel","_inputTemplate","_word","_span","_mobile","_filterHeader","_attachFocusHandlers","_textAccessor","_optionLabelText","valueTemplate","optionLabelTemplate","_focusFilter","_resizeFilterInput","isInputActive","originalPrevent","_optionLabelDataItem","_valueSetter","_assignInstance","optionLabelValue","_filterPaste","_focusinHandler","_focusoutHandler","isIFrame","self","_wrapperMousedown","_wrapperClick","dropDownWrapper","_keypress","handled","isPopupVisible","_getElementDataItem","_matchText","_shuffleData","splitIndex","optionDataItem","_selectNext","oldFocusedItem","isInLoop","charCode","_popupOpen","active","compareElement","jQueryCandidate","_resetOptionLabel","focusedItem","additionalClass","icon","aria-haspopup","span","DOMelement","accesskey","unselectable","getElements","optionLabelText","HORIZONTAL","VERTICAL","RESIZEEND","Resizable","orientation","_positionMouse","_sizingDom","draggableElement","drag","dragcancel","dragstart","dragend","_stop","_max","hintSize","_initialElementPosition","_min","_initialMousePosition","_maxPosition","_minPosition","maxPosition","minPosition","currentPosition","invalidClass","resizing","targetPosition","defined","toInt","constrain","normalizedValue","executableScript","getPosition","parentOverflowX","parentOverflowY","offsetLeft","WindowResizing","wnd","owner","_preventDragging","_draggable","KWINDOWRESIZEHANDLES","addOverlay","removeOverlay","WindowDragging","dragHandle","MODAL_NS","KWINDOW","KWINDOWTITLE","KWINDOWTITLEBAR","KWINDOWCONTENT","KDIALOGCONTENT","KOVERLAY","KCONTENTFRAME","KHOVERSTATE","KFOCUSEDSTATE","MAXIMIZEDSTATE","CURSOR","REFRESH","MINIMIZE","MAXIMIZE","RESIZESTART","DATADOCOVERFLOWRULE","ZINDEX","MINIMIZE_MAXIMIZE","KPIN","KUNPIN","PIN_UNPIN","TITLEBAR_BUTTONS","REFRESHICON","WINDOWEVENTSHANDLED","zero","SIZE","small","medium","large","Window","windowContent","windowFrame","globalWindow","isVisible","suppressActions","actions","containment","_createWindow","_dimensions","minTop","minLeft","maxTop","maxLeft","toFront","_overlay","_buttonEnter","_buttonLeave","_windowActionHandler","windowInstance","_resizable","pinned","pin","aria-labelledby","_resizeHandler","_onDocumentResize","_marker","_tabKeyTrap","maxHeight","sizeClass","contentBoxSizing","lrBorderWidth","tbBorderWidth","paddingTop","_isPinned","_updateBoundaries","maxWidth","_animationOptions","basicAnimation","resizable","toggleMaximization","resizeHandle","dragging","_actions","titlebar","windowSpecificCommands","scrollable","cachedOptions","_enableDocumentScrolling","fade","autoFocus","isMaximized","isMinimized","_closable","newWidth","newHeight","w","h","_close","unpin","maximize","minimize","overlay","insertBefore","preventScroll","_stopDocumentScrolling","_actionForIcon","iconClass","k-i-close","k-i-window-maximize","k-i-window-minimize","k-i-window-restore","k-i-refresh","k-i-pin","k-i-unpin","_modals","zStack","dom","_object","newTop","newLeft","documentWindow","_scrollIsAppended","titleBarHeight","encoded","titleBar","titleElement","scrollContainer","otherModalsVisible","overlayFx","showOptions","contentElement","containmentContext","doc","Fade","fadeIn","_activate","_containerScrollTop","_containerScrollLeft","_removeOverlay","suppressAnimation","modals","hideOverlay","hideOptions","fadeOut","systemTriggered","defaultPrevented","_deactivate","lastModal","_actionable","_shouldFocus","windowTop","currentWindow","originalZIndex","windowObject","zIndexNew","shouldRestrictTop","restoreOptions","_sizingAction","actionId","$body","$html","_storeOverflowRule","_restoreOverflowRule","$element","_isOverflowStored","overflowRule","win","iframe","showIframe","initOptions","contentFrame","_triggerRefresh","_ajaxRequest","_ajaxComplete","_loadingIconTimeout","_ajaxError","_ajaxSuccess","contentTemplate","_showLoading","iframeSrcAttributes","contentHtml","editor","hasMargin","wrapperPosition","relativeElMarginLeft","relativeElMarginTop","elementPadding","initialPosition","resizeDirection","initialSize","containerOffset","_relativeElMarginLeft","_relativeElMarginTop","rtl","leftRtlOffset","scrollOffset","windowBottom","windowRight","newWindowTop","initialWindowPosition","initialPointerPosition","startPosition","_finishDrag","hex","hue2rgb","p","q","parseColor","color","BaseColor","matchNamedColor","RGB","namedColors","Bytes","HSV","HSL","Color","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgrey","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgrey","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","regexp","colorNames","toHSV","toRGB","toHex","toBytes","toCss","toCssRgba","rgb","r","toDisplay","other","c1","c2","NaN","ref","toHSL","l","resolvedColor","formatRegex","processor","channels","this$1","resolveColor","re","normalizeByte","padDigit","brightness","percBrightness","fromBytes","fromRGB","fromHSV","fromHSL","createWrapper","isHorizontal","orientationCssClass","cssClasses","tickPlacementCssClass","tickPlacement","showButtons","createButton","buttonCssClass","createSliderItems","smallStep","createTrack","dragHandleCount","firstDragHandleTitle","leftDragHandleTitle","dragHandleTitle","rightDragHandleTitle","stepValue","formatValue","calculatePrecision","power","parseAttr","removeFraction","RangeSlider","SLIDE","MOUSE_DOWN","TRACK_MOUSE_DOWN","MOUSE_UP","TRACK_MOUSE_UP","MOVE_SELECTION","KEY_DOWN","MOUSE_OVER","DRAG_HANDLE","TRACK_SELECTOR","TICK_SELECTOR","STATE_SELECTED","STATE_FOCUSED","STATE_DEFAULT","STATE_DISABLED","SliderBase","rtlDirectionSign","_isHorizontal","_isRtl","_sizeFn","_outerSize","tooltip","_createHtml","_trackDiv","_setTrackDivWidth","_maxSelection","_sliderItemsInit","_keyMap","37","40","39","38","35","36","33","largeStep","34","_distance","_refresh","sizeBetweenTicks","pixelWidths","_calculateItemsWidth","_setItemsWidth","_setItemsTitle","_calculateSteps","_setItemsLargeTick","trackDivPosition","bordersWidth","titleNumber","limit","increment","valueWithoutFraction","itemsCount","itemWidth","trackDivSize","preciseItemsCount","pixelStep","_roundWidths","pixelWidthsArray","balance","_addAdditionalSize","additionalSize","lastItem","_pixelSteps","_getValueFromPosition","mousePosition","dragableArea","halfStep","startPoint","_getFormattedValue","tooltipTemplate","_getDraggableArea","endPoint","inputs","_firstHandleDrag","_activeHandle","_lastHandleDrag","_activeHandleDrag","_updateTooltip","_focusWithMouse","_setTooltipTimeout","_removeTooltip","_tooltipTimeout","_clearTooltipTimeout","tooltipDiv","_formResetHandler","Slider","_selection","Selection","Drag","increaseButtonTitle","decreaseButtonTitle","clickHandler","mouseDownHandler","_update","newVal","_nextValueByIndex","_valueIndex","_setValueInRange","timer","_clearTimer","_refreshAriaAttr","formattedValue","_tooltipDiv","moveSelection","selectionValue","selectionDiv","halfDragHanndle","rtlCorrection","_dragstart","_activeDragHandle","_setZIndex","oldVal","_createTooltip","colloutCssClass","tooltipInnerDiv","_scrollOffset","moveTooltip","slideParams","constrainValue","noAnimation","dragHandles","sdhOffset","callout","viewPortEnd","maxOverflow","firstInput","secondInput","warn","dragSelectionStart","dragSelectionEnd","activeHandleDrag","selectionStartValue","selectionEndValue","selectionStartIndex","selectionEndIndex","halfHandle","makeSelection","selectionPosition","iconTemplate","svgIconTemplate","Badge","_deprecated","_content","_appearance","badgeStyle","cutoutBorder","placement","shape","_classNames","appearance","look","_color","_shape","_sizes","_badgeStyle","_cutoutBorder","_placement","_visible","_updateClassNames","classNames","keepClassNames","sizeAbbr","sizeSuffix","badgeStyleInfix","placementInfix","iconTemplateFunction","_icon","Button","MOUSEUP","MOUSEOUT","KBUTTON","KBUTTONICON","KBUTTONICONTEXT","DISABLEDSTATE","FOCUSEDSTATE","SELECTEDSTATE","BUTTON_DEFAULTS","spriteCssClass","imageUrl","badge","_badge","iconElement","_removeActive","_addActive","_isNativeButton","img","isEmpty","contents","err","badgeEelement","badgeOptions","button","relative","KEYS","BACKGROUNDCOLOR","ITEMSELECTEDCLASS","SIMPLEPALETTE","WEBPALETTE","WHITE","MESSAGES","noColor","clearColor","previewInput","CLICK_NS","KEYDOWN_NS","ColorSelector","ariaId","_tabIndex","_ariaId","_standalone","_triggerSelect","_updateUI","_onEnable","nohooks","_selectOnHide","ColorPalette","colors","tileSize","palette","_selectedID","ex","FlatColorPicker","_hueElements","_selectedColor","_colorAsText","_sliders","_hsvArea","autoupdate","_clearedColor","_getHSV","_applyIEFilter","_hsvEvents","_hueSlider","_opacitySlider","_hsvRect","_hsvHandle","buttons","preview","track","backgroundImage","hueChange","opacityChange","hueSlider","opacitySlider","kendoSlider","slide","rw","rh","_svChange","hsvRect","hsvHandle","hue","handlePosition","dontChangeInput","ColorPicker","after","_selector","innerWrapper","toolIcon","ARIATemplate","_getPopup","selOptions","_noColorIcon","_isInputTypeColor","_ariaTemplate","selectorType","kendoPopup","kendoButton","selectorColor","elementPosition","Selectable","ARIASELECTED","SELECTABLE","UNSELECT","UNSELECTING","INPUTSELECTOR","supportEventDelegation","_marquee","_lastActive","aria","tap","inputSelectors","_isElement","metaKey","whichCode","buttonCode","_allowSelection","selectRange","_firstSelectee","_unselect","_notify","_downTarget","currentElement","useAllItems","_selectElement","_invalidateSelectables","toSelect","selectElement","preventNotify","resetTouchEvents","continuousItems","asLowerString","modular","minYear","maxYear","build","weekNumberBuild","isWeekColumnVisible","cellsPerRow","perRow","otherMonth","weekNumberTemplate","cellTemplate","emptyCellTemplate","otherMonthTemplate","otherMonthCellTemplate","createDate","disableDates","OTHERMONTH","isInRange","date1","date2","year1","getToday","DATE","restrictValue","shiftArray","multiplier","daysBetweenTwoDates","endDate","fromDateUTC","endDateUTC","addDaysToArray","numberOfDays","fromDate","mousetoggle","MOUSEENTER","prevent","dateObject","getCalendarInfo","normalize","depth","extractFormat","MONTH","dates","makeUnselectable","addClassToViewContainer","currentView","isEqualDatePart","value1","value2","isEqualMonth","getDisabledExpr","createDisabledExpr","convertDatesArray","disabledDates","searchExpression","isEqualDate","oldValue","toDateObject","link","VALUE","transitionOrigin","MIN","CENTURY","NAVIGATE","OTHERMONTHCLASS","OUTOFRANGE","TODAY","CELLSELECTOR","CELLSELECTORVALID","WEEKCOLUMNSELECTOR","FOCUS_WITH_NS","MOUSEENTER_WITH_NS","MOUSELEAVE","PREVARROW","NEXTARROW","ARIA_SELECTED","ARIA_LABEL","decade","century","HEADERSELECTOR","CLASSIC_HEADER_TEMPLATE","MODERN_HEADER_TEMPLATE","Calendar","_viewWrapper","hasFooter","_focusView","focusOnNav","_cellID","_isMultipleSelection","_class","_selectDates","_index","_addClassProxy","_active","_cell","todayString","toDateString","_cellByDate","_removeClassProxy","selectDates","weekColumnHeader","classic","linksSelector","contentClasses","modern","_destroySelectable","navigate","_today","_title","_table","_bindTable","_option","navigateToPast","_navigate","navigateToFuture","navigateUp","navigateDown","old","future","viewWrapper","_oldTable","_changeView","_animate","_visualizeSelectedDatesInView","validSelectedDates","datesUnique","_validateValue","selectedDates","selectableOptions","_onSelect","_onRelatedTarget","eventArgs","_toggleSelection","_cellsBySelector","_addSelectedCellsToArray","_rangeSelection","currentCell","toDateCell","daysDifference","toDate","currentDateIndex","_dateInView","firstDateInView","lastDateInView","_isNavigatable","cellIndex","isDisabled","focusedDate","_keyboardToggleSelection","_nextNavigatable","_keyboardRangeSelection","navigatableDate","_horizontal","viewWidth","float","margin-left","unwrap","_vertical","disabledDate","_todayClick","firstDayCurrentMonth","has","isBigger","isTodayDisabled","firstVisibleDay","calendarInfo","tzOffsetBefore","resultDATE","tzOffsetDiff","navigateUrl","showHeader","hasUrl","currentCalendar","firstDayIdx","shortNames","linkClass","dateString","currentDate","month1","month2","year2","setMonth","viewsEnum","approximateStringMatching","oldText","oldFormat","newText","deletedSymbol","oldTextSeparator","knownSymbols","customDateTime","INPUT_EVENT_NAME","STATEDEFAULT","STATEINVALID","DateInput","insidePicker","weekday","hour","minute","second","dayperiod","_unbindInput","_bindInput","_updateElementValue","_formElement","_dateTime","getDateObject","_oldValue","stringAndFromat","toPair","_format","_paste","_mouseUp","_scroll","navigationOnly","valid","difSym","newEvent","stateInvalid","blinkInvalid","parsePart","_selectSegment","_blinkInvalidTimeout","_selectNearestSegment","returnValue","initialValue","interval","keycode","modifyPart","begin","initDate","initFormat","initCulture","initMessages","generateMatcher","retFormat","returnsFormat","matcher","setExisting","typedMonthPart","typedDayPeriodPart","sampleFormat","placeholders","mins","formatResult","getValue","newMonth","setMinutes","setSeconds","currentChar","newHours","monthNames","newYear","newMinutes","newSeconds","parseFormats","DatePicker","DIV","SPAN","MAX","ARIA_EXPANDED","ARIA_HIDDEN","DateView","omitPopup","dateDiv","_dateViewID","_calendar","_setOptions","popupHovered","selectIsClicked","_initialOptions","dateView","_updateARIA","aria-owns","autocomplete","_createDateInput","dateInput","_dateInput","_dateIcon","eventType","dateChanged","valueUpdated","textFormatted","stopImmediatePropagation","aria-controls","isSameType","optionsValue","FLOATINGLABELCONTAINER","NOCLICKCLASS","FloatingLabel","buttonHtml","CLASS_ICON","truncate","INPUT","SPIN","TOUCHEND","LABELCLASSES","STATE_INVALID","INTEGER_REGEXP","NumericTextBox","inputType","isStep","_focusout","_arrows","_validation","_toggleText","factor","_label","restrictDecimals","spinners","upArrowText","downArrowText","_upArrowEventHandler","_downArrowEventHandler","_inputLabel","_spin","_upArrow","_downArrow","_keyup","_inputHandler","floatingLabel","_arrowsWrap","aria-valuemin","aria-valuemax","adjusted","_adjust","_focusin","arrows","_spinning","release","_validationIcon","_focusing","groupRegExp","extractRegExp","caretPosition","_culture","_removeInvalidState","CLASSNAME","_numPadDot","_step","_cachedCaret","decimalSeparator","minInvalid","_numericRegex","_blinkInvalidState","_addInvalidState","_invalidStateTimeout","separator","fractionRule","_separator","_floatRegExp","originalValue","rounder","isNotNull","floating","labelText","_floatingLabelContainer","DOMElement","resolveRules","resolvers","validator","ruleResolvers","decode","numberOfDecimalDigits","parseHtml","parseHTML","searchForMessageContainer","containers","invalidMsgRegExp","SUMMARYTEMPLATE","Validator","INVALIDMSG","INVALIDINPUT","VALIDINPUT","VALIDATIONSUMMARY","INVALIDLABEL","MESSAGEBOX","ARIAINVALID","ARIADESCRIBEDBY","emailRegExp","urlRegExp","CHECKBOXSELECTOR","NUMBERINPUTSELECTOR","NAME","FORM","NOVALIDATE","VALIDATE","VALIDATE_INPUT","patternMatcher","hasAttribute","allowSubmit","validateOnInit","validateAttributeSelector","_errorTemplate","errorTemplate","_summaryTemplate","validationSummary","_inputSelector","_checkboxSelector","_errors","_attachEvents","_isValidated","_validateOnInit","validate","required","email","dateCompare","checkbox","raise","validateOnBlur","_allowSubmit","_checkElement","validateInput","invalid","isValid","showValidationSummary","lbl","messageText","messageLabel","wasValid","lblId","inputWrap","inputLabel","errorId","_checkValidity","_findMessageContainer","_extractMessage","_decorateMessageContainer","replaceWith","_associateMessageContainer","hideMessages","_disassociateMessageContainers","hideValidationSummary","locators","messageLocators","getElementsByTagName","locate","decorate","ruleKey","nonDefaultMessage","customMessage","_getInputNames","_errorsByName","inputNames","_renderSummary","prevElement","_summaryClick","errorsList","summary","dataSourceBinding","bindingName","Binder","bindings","_dataBinding","_dataBound","_itemChange","itemChange","bindElement","_ns","_parents","removedItems","unbindElementTree","all","addedItems","hds","addedDataItems","multiselect","dropdowntree","MultiSelect","DropDownTree","treeview","retrievePrimitiveValues","bindingTargetForRole","WidgetBindingTarget","parseBindings","token","colonIndex","keyValueRegExp","createBindings","binding","childrenCopy","unbindElement","whiteSpaceRegExp","valueUpdate","BindingTarget","Binding","TemplateBinding","EventBinding","destroyWidget","bindingTarget","deleteExpando","destroyWidgets","unbindElementChildren","namespace","TypedBinder","arraySplice","binders","SOURCE","EVENTS","CHECKED","CSS","dependencies","_access","dependency","currentSource","parsedValue","_parseValue","dataFormat","invisible","_initChange","cloneNode","reference","checked","valueIndex","sourceValue","optionIndex","check","_valueIsObservableObject","_valueIsObservableArray","_source","valueLength","sourceItem","isObservableObject","newLength","same","removeIndex","oldValues","selectedNode","nonPrimitiveValues","_getAllChecked","newValues","selectedValue","gantt","_isBound","scheduler","grid","arr","addLength","shifted","shiftedLength","toDestroy","hasSource","hasEvents","hasChecked","hasCss","widgetBinding","specificBinders","applyBinding","binder","observableHierarchy","recursiveRead","fieldType","convertToValueBinding","bindAttr","createAttributes","ruleName","stringRule","attributeName","validation","DATATYPE","BINDING","specialRules","addIdAttribute","convertItems","getEditorTag","tag","checkboxes","addValidationRules","modelField","oldIE","nameSpecialCharRegExp","ERRORTEMPLATE","EQUAL_SET","kendoEditors","editors","kendoNumericTextBox","kendoDatePicker","kendoEditor","editorOptions","mobileEditors","Editable","_isMobile","_validateProxy","_validate","clearContainer","skipFocus","isObject","isValuesEditor","isCustomEditor","isKendoEditor","preventChangeTrigger","_validationEventInProgress","bindAttribute","bindingRegex","validatable","modelFields","KENDO_KEYDOWN","DATABOUND","DATABINDING","EMPTY_STRING","FOCUSSELECTOR","KEDITITEM","EDIT","REMOVE","SAVE","TOUCHSTART","ListView","_itemId","_layout","_navigatable","_pageable","_crudHandlers","_scrollable","navigatable","altTemplate","editTemplate","bordered","borders","layout","flex","_item","_progressHandler","_progress","_error","elementClassNames","contentClassNames","contentPadding","cols","rowHeight","gutter","endlessAppend","_endlessFetchInProgress","_skipRerenderItemsCount","_destroyEditable","_focusNext","pagerId","pageable","pager","Pager","multi","originalPageSize","overflow-y","-webkit-overflow-scrolling","_endlessPageSize","_scrollTo","scrollDirectionFunc","UseJQueryoffset","elementOffset","elementDimension","containerScrollAmount","containerDimension","clickCallback","focusAgain","canHandle","isTextBox","editItem","edit","clearSelection","_modelFromElement","_closeEditable","kendoEditable","mousedownNs","touchstartNs","clickNs","getFileName","inputFiles","file","$input","files","getAllFileInfo","stripPath","getFileExtension","rawFiles","getFileInfo","rawFile","fileSize","rFileExtension","slashIndex","assignGuidToFiles","validateFiles","validationInfo","allowedExtensions","parseAllowedExtensions","maxFileSize","minFileSize","validateFileExtension","validateFileSize","ext","parsedExt","validationErrors","INVALIDFILEEXTENSION","INVALIDMINFILESIZE","INVALIDMAXFILESIZE","getTotalFilesSizeMessage","totalSize","shouldRemoveFileEntry","upload","removeUploadedFile","fileEntry","shouldSendRemoveRequest","fileNames","_supportsRemove","_removeFileEntry","_submitRemove","textStatus","prevented","SUCCESS","XMLHttpRequest","tryParseJSON","onSuccess","onError","parseJSON","normalizeJSON","stopEvent","bindDragEventWrappers","onDragEnter","onDragLeave","hideInterval","lastDrag","sinceLastDrag","isFileUploadStarted","getFileEntry","iframeUploadModule","formDataUploadModule","UPLOAD","COMPLETE","CLEAR","PAUSE","RESUME","VALIDATIONERRORS","PROGRESSHIDEDELAY","PROGRESSHIDEDURATION","headerStatusIcon","warning","Upload","activeInput","initialFiles","directory","localization","_wrapInput","_activeInput","_onParentFormSubmit","_onParentFormReset","async","saveUrl","_module","_supportsFormData","_async","_renderInitialFiles","syncUploadModule","_toggleDropZone","_onFileAction","_onClearSelected","_onUploadSelected","_onInputChange","showFileList","autoRetryAfter","bufferChunkSize","maxAutoRetries","removeVerb","autoUpload","withCredentials","useArrayBuffer","retry","pause","resume","clearSelectedFiles","uploadSelectedFiles","dropFilesHere","invalidFiles","statusUploading","statusUploaded","statusWarning","statusFailed","headerStatusUploading","headerStatusPaused","headerStatusUploaded","uploadSuccess","uploadFail","invalidMaxFileSize","invalidMinFileSize","invalidFileExtension","dropZone","_supportsMultiple","customDropZone","onPause","pauseIcon","onResume","playIcon","onSaveSelected","getFiles","filesData","allFiles","listItems","clearAllFiles","_removeFileByDomElement","removeAllFiles","removeFileByUid","_removeFileByUid","clearFileByUid","clearFile","_removeFile","removeFile","fileData","onRemove","_hideHeaderUploadstatus","_updateHeaderUploadStatus","_addInput","sourceInput","_onInputKeyDown","firstButton","_inputFiles","_isAsyncNonBatch","onSelect","_readDirectory","dirReader","createReader","allFolderFiles","readEntries","entries","_readFile","fullpath","relativePath","droppedFolderFiles","droppedFolderCounter","_proceedDroppedItems","_traverseFileTree","skipCounter","isFile","isDirectory","_onDrop","entry","dt","dataTransfer","droppedFiles","directoryDrop","webkitGetAsEntry","_filesContainValidationErrors","hasErrors","currentFile","_enqueueFile","_fileAction","_prepareTemplateData","templateData","_prepareDefaultSingleFileEntryTemplate","fileGroup","_prepareDefaultMultipleFileEntriesTemplate","filesHaveValidationErrors","totalFileSize","existingFileEntries","removeEventArgs","fileUid","fileList","allCompletedFiles","allInvalidFiles","_hideActionButtons","fileElement","actionKey","skipClear","firstActionButton","classDictionary","iconsClassDictionary","_clearFileAction","_renderAction","_fileState","stateKey","states","uploading","uploaded","failed","currentState","actionClass","actionText","hasValidationErrors","_retryClicked","_checkAllComplete","finish","onRetry","clearEventArgs","_onFileProgress","percentComplete","progressPct","_onUploadSuccess","fileInfo","_setUploadErrorState","_hideUploadProgress","_onUploadError","module","chunkSize","_decreasePosition","_autoRetryAfter","retries","performUpload","uploadPercentage","_updateUploadProgress","fileMetaData","metaData","totalChunks","chunkIndex","_showActionButtons","actionsWrapper","uploadButton","_showHeaderUploadStatus","isUploading","headerUploadStatus","failedUploads","headerUploadStatusIcon","currentlyUploading","currentlyInvalid","currentlyFailed","currentlyPaused","concurrent","onAbort","FormData","_userAgent","_supportsDrop","isChrome","isSafari","isWindowsSafari","_setupDropZone","_bindDocumentDragEventWrappers","_setupCustomDropZone","removeUrl","removeField","dataFilter","traditional","xhrFields","filesContainErrors","relatedInput","iframes","_frameId","prepareUpload","saveField","createFrame","registerFrame","createForm","frame","dataInput","fileValidation","cleanupFrame","unregisterFrame","onIframeLoad","started","processResponse","fakeXHR","jsonResult","statusText","stopFrameSubmit","execCommand","cancelled","paused","sourceElement","fileEntries","prepareChunk","enqueueFiles","filesLength","webkitRelativePath","formData","createFormData","createXHR","removeFileEntry","populateFormData","FileReader","postFormData","onload","fileArrayBuffer","_appendBuffer","onerror","readAsArrayBuffer","_getCurrentChunk","buffer1","buffer2","byteLength","prevEntry","stopUploadRequest","_increaseChunkIndex","onRequestSuccess","onRequestError","onRequestProgress","setRequestHeader","send","chunk","serializedMetaData","raiseError","parseSuccess","cleanupFileEntry","_resetChunkIndex","uploadComplete","isUploadButtonVisible","abort","uploadUid","_decreaseChunkIndex","methodToInvoke","oldPosition","_getChunker","mozSlice","webkitSlice","BREADCRUMB","KEYDOWN","DOT","breadcrumbStyles","textbox","delimiter","rootItem","rootLink","overflowIcon","focused","hidden","inputWrapper","Breadcrumb","bindToLocation","navigational","rootIcon","delimiterIcon","rootTitle","_segments","_generateSegments","segments","_split","_path","previousDomItems","previousItems","_getItems","segment","isRoot","innerText","_edit","shouldRestoreValue","isEnter","isEsc","isNavigational","canNavigate","_wrapperKeydown","_wrapperFocus","_wrapperBlur","elementIsInput","isLastSegment","isOnlyRoot","showIcon","showText","itemClass","renderDelimiter","lastSegment","_displayOverflowIcons","_shrinkItems","availableWidth","_showItem","overlayWidth","_stretchItems","trail","concatPaths","sizeFormatter","suffix","FileBrowser","SearchBox","trimSlashesRegExp","APPLY","SEARCHBOXNS","NAMEFIELD","SIZEFIELD","TYPEFIELD","DEFAULTSORTORDER","EMPTYTILE","TOOLBARTMPL","filebrowser","_call","_deleteClick","_addClick","_directoryKeyDown","_directoryBlur","uploadFile","orderByName","orderBySize","directoryNotFound","emptyFolder","deleteFile","invalidFileType","overwriteFile","fileTypes","toolbar","_selectedItem","fileUrl","encodeURIComponent","_toolbar","arrangeBy","showUpload","uploadUrl","showCreate","showDelete","kendoUpload","_fileUpload","kendoDropDownList","searchBox","kendoSearchBox","_attachDropzoneEvents","_dropEnter","_dropLeave","_scrollHandler","_positionDropzone","_removeDropzone","_showMessage","createDirectory","_getFieldName","filterRegExp","fileNameField","sizeField","_createFile","_insertFileToList","_override","_tiles","_findFile","typeField","nameField","lastDirectoryIdx","_nameDirectory","_nameExists","directoryNames","_dblClick","_itemTmpl","_editTmpl","_listViewChange","folder","breadcrumbs","typeSortOrder","nameSortOrder","_navigation","navigation","kendoBreadcrumb","_updateValue","_toggleLabel","ImageBrowser","imagebrowser","_uploading","_loadImage","thumbnailUrl","alt","urlJoin","viewTop","viewBottom","updateTabClasses","tabs","IMG","IMAGE","LINK","DEFAULTSTATE","ACTIVESTATE","TABONTOP","excludedNodesRegExp","updateFirstLast","tabGroup","FIRST","LAST","scrollButtonHtml","buttonClass","HREF","PREV","NEXT","SHOW","CONTENTURL","CONTENTLOAD","HOVERSTATE","NAVIGATABLEITEMS","KEYBOARDNAVIGATABLEITEMS","HOVERABLEITEMS","DEFAULTDISTANCE","itemWrapper","sprite","rendering","wrapperCssClass","textAttributes","contentAttributes","contentUrl","TabStrip","selectedItems","_animations","_contentUrls","contentUrls","_updateClasses","_tabPosition","_keyDownProxy","wr","contentHolder","activateTab","_endItem","_getItem","endItem","tabPosition","tab","dataEncodedField","dataContentField","dataContentUrlField","dataImageUrlField","dataUrlField","dataSpriteCssClass","collapsible","scrollWrap","_scrollableModeActive","_scrollPrevButton","_scrollNextButton","_toggleDisabled","reload","ajaxRequest","inserted","_create","_updateContentElements","_appendUrlItem","_moveUrlItem","_removeUrlItem","referenceTab","referenceContent","fromIndex","newTabsCreated","renderItem","renderContent","activeItem","activeTab","contentElements","_elementId","tabStripID","elementId","wrapperId","isInitialUpdate","currentContent","contentAnimators","tabsHeight","_setContentElementsDimensions","contentDivs","activeDiv","marginStyleProperty","_sizeScrollWrap","isAnchor","neighbours","oldFocusedTab","_scrollTabsToItem","deactivateTab","wrapperOffsetWidth","tabGroupScrollWidth","scrollPrevButton","scrollNextButton","mouseDown","mouseUp","isRtlScrollDirection","_scrollableAllowed","_nowScrollingTabs","marginRight","_scrollTabsByDelta","_toggleScrollButtons","itemPosition","currentScrollOffset","itemOffset","tabGroupWidth","tabGroupPadding","scrLeft","animationSettings","hasCloseAnimation","oldTab","isAnimationEnabled","visibleContents","isAjaxContent","showContentElement","showContent","inRequest","halfWidth","fakeProgress","statusIcon","endState","oldProgressAnimation","ajaxOptions","ajaxSettings","request","progressUpload","evt","noProgress","lengthComputable","stopProgress","tabStrip","UndoRedoStack","stack","currentCommandIndex","undo","canUndo","redo","canRedo","util","Tool","bomFill","emptyElementContent","emptyTableCellContent","SELECT_OVERLAY_SELECTOR","PLACEHOLDER_CLASS","PLACEHOLDER_TAG_ID","REFRESH_INTERVAL","DEFAULT_LANGUAGE","ToolTemplate","getHtml","EditorUtils","editorWrapperTemplate","buttonTemplate","tableWizardButtonTemplate","colorPickerTemplate","comboBoxTemplate","dropDownListTemplate","separatorTemplate","overflowAnchorTemplate","formatByName","tags","getToolCssClass","toolCssClassNames","superscript","subscript","justifyLeft","justifyCenter","justifyRight","justifyFull","insertUnorderedList","insertOrderedList","import","outdent","createLink","unlink","insertImage","insertFile","viewHtml","foreColor","backColor","createTable","addColumnLeft","addColumnRight","addRowAbove","addRowBelow","deleteRow","deleteColumn","mergeCellsHorizontally","mergeCellsVertically","splitCellHorizontally","splitCellVertically","tableWizard","tableWizardInsert","cleanFormatting","copyFormat","applyFormat","registerTool","toolName","tool","toolOptions","Editor","defaultTools","registerFormat","formatName","cacheComments","comments","retrieveComments","bold","italic","underline","strikethrough","insertHtml","fontName","fontNameInherit","fontSize","fontSizeInherit","formatBlock","formatting","editAreaTitle","overflowAnchor","imageWebAddress","imageAltText","imageWidth","imageHeight","fileWebAddress","fileTitle","fileText","linkWebAddress","linkText","linkToolTip","linkOpenInNewWindow","dialogUpdate","dialogInsert","dialogOk","dialogCancel","createTableHint","tableTab","cellTab","accessibilityTab","caption","units","cellSpacing","cellPadding","cellMargin","alignment","background","border","borderStyle","collapseBorders","wrapText","associateCellsWithHeaders","alignLeft","alignCenter","alignRight","alignLeftTop","alignCenterTop","alignRightTop","alignLeftMiddle","alignCenterMiddle","alignRightMiddle","alignLeftBottom","alignCenterBottom","alignRightBottom","alignRemove","selectAllCells","exportAs","print","headerRows","headerColumns","tableSummaryPlaceholder","associateNone","associateScope","associateIds","supportedBrowser","contentEditable","toolGroups","basic","lists","indenting","formatPainter","links","tables","toolbarContainer","toolbarOptions","editorNS","Dom","tools","_registerHandler","_wrapTextarea","Toolbar","bindTo","heightStyle","expectedHeight","actualHeight","_initializeContentElement","keyboard","Keyboard","BackspaceHandler","TypingHandler","SystemHandler","SelectAllHandler","Clipboard","undoRedoStack","textarea","getAllComments","_endTyping","_mouseup","_initializeImmutables","_initializePlaceholder","_togglePlaceholder","isTypingInProgress","endTyping","saveSelection","_selectionChange","_selectionStarted","isResizable","kendoResizable","newSize","resizeend","getKendoResizable","_initializeTableResizing","TableResizing","_showTableResizeHandlesProxy","_showTableResizeHandles","_destroyTableResizing","tableResizing","showResizeHandles","_initializeColumnResizing","ColumnResizing","_destroyColumnResizing","columnResizing","_initializeRowResizing","RowResizing","_destroyRowResizing","rowResizing","editorWrap","editArea","_createContentElement","stylesheets","specifiedDomain","domain","domainScript","lang","frameBorder","hostname","contentDocument","decorateFrom","write","encodedValue","_spellCorrect","beforeCorrection","falseTrigger","contextmenu","_spellCorrectTimeout","RestorePoint","getRange","_finishUpdate","_deregisterHandlers","blurTrigger","mousedownTrigger","keydown","mouseover dragenter","htmlHeight","_cachedHeight","mouseout dragleave drop contextmenu","restoreHeight","nextChar","preventPopupHide","setStart","toolFromShortcut","keyPressCommand","_runPostContentKeyCommands","keypress","keyup","selectionCodes","_refreshInterval","selectNode","cut copy paste drop dragover","focusin","toolbarContainerElement","$head","head","immutables","Immutables","gecko","toolsFromShortcut","changesContent","_destroyResizings","deserialization","serialization","entities","semantic","scripts","pasteCleanup","keepNewLines","msAllFormatting","msConvertLists","msTags","none","dialogOptions","imageBrowser","fileBrowser","_focusOutside","_destroyUploadWidget","tempInput","_uploadWidget","textNodes","finder","RangeUtils","collapsed","startContainer","getFormat","isFormatted","currentHtml","Serializer","domToXhtml","htmlToDom","selectionRestorePoint","refreshTools","commonAncestorContainer","_focusBody","restoreSelection","toRange","encode","getSelection","SelectionUtils","selectionFromDocument","removeAllRanges","addRange","rangeCount","getRangeAt","endContainer","startOffset","endOffset","_containsRange","isAncestorOrSelf","_deleteSavedRange","selectedHtml","cloneContents","InsertHtmlCommand","toolById","managesUndoRedo","ctrl","initialize","aria-label","commandArguments","_bomFill","PDFMixin","_drawPDF","drawDOM","saveAsPDF","exportPDF","fail","makeMap","whitespace","emptyspace","bom","whitespaceOrBom","persistedScrollTop","cssAttributes","htmlRe","entityRe","entityTable","STYLE","FLOAT","CSSFLOAT","STYLEFLOAT","CLASS","KMARKER","nonListBlockElements","blockElements","block","selfClosing","inlineElements","inline","fillAttrs","60","62","160","161","162","163","164","165","166","167","168","169","170","171","172","173","174","175","176","177","178","179","180","181","182","183","184","185","186","187","188","189","190","191","192","193","194","195","196","197","198","199","200","201","202","203","204","205","206","207","208","209","210","211","212","213","214","215","216","217","218","219","220","221","222","223","224","225","226","227","228","229","230","231","232","233","234","235","236","237","238","239","240","241","242","243","244","245","246","247","248","249","250","251","252","253","254","255","402","913","914","915","916","917","918","919","920","921","922","923","924","925","926","927","928","929","931","932","933","934","935","936","937","945","946","947","948","949","950","951","952","953","954","955","956","957","958","959","960","961","962","963","964","965","966","967","968","969","977","978","982","8226","8230","8242","8243","8254","8260","8472","8465","8476","8482","8501","8592","8593","8594","8595","8596","8629","8656","8657","8658","8659","8660","8704","8706","8707","8709","8711","8712","8713","8715","8719","8721","8722","8727","8730","8733","8734","8736","8743","8744","8745","8746","8747","8756","8764","8773","8776","8800","8801","8804","8805","8834","8835","8836","8838","8839","8853","8855","8869","8901","8968","8969","8970","8971","9001","9002","9674","9824","9827","9829","9830","338","339","352","353","376","710","732","8194","8195","8201","8204","8205","8206","8207","8211","8212","8216","8217","8218","8220","8221","8222","8224","8225","8240","8249","8250","8364","findNodeIndex","skipText","isDataNode","isAncestorOf","findClosestAncestor","rootElem","SHOW_COMMENT","curNode","getNodeLength","splitDataNode","newNode","denormalizedText","deleteData","attrEquals","blockParentOrBody","parentOfType","blockParents","nodes","blocks","windowFromDocument","parentWindow","nodeTypes","ELEMENT_NODE","ATTRIBUTE_NODE","TEXT_NODE","CDATA_SECTION_NODE","ENTITY_REFERENCE_NODE","ENTITY_NODE","PROCESSING_INSTRUCTION_NODE","COMMENT_NODE","DOCUMENT_NODE","DOCUMENT_TYPE_NODE","DOCUMENT_FRAGMENT_NODE","NOTATION_NODE","encodableChars","entity","isBom","stripBom","stripBomNode","insignificant","_moz_dirty","_moz_editor_bogus_node","tableCell","significantNodes","emptyTextNode","emptyNode","significantChildNodes","isWhitespace","lastTextNode","isMarker","allWhitespaceContent","isEmptyspace","htmlIndentSpace","sibling","isPrevBlock","isNextBlock","isBlock","isSelfClosing","isInline","isBr","compatMode","scrollingElement","toStart","elementTop","windowHeight","persistScrollTop","restoreScrollTop","insertAt","newElement","referenceElement","removeChildren","removeTextSiblings","closestBy","condition","rootCondition","ofType","changeTag","skipAttributes","editableParent","createEmptyNode","mergeAttributes","unstyle","inlineStyle","getEffectiveBackground","backgroundStyle","commonAncestor","ancestors","minPathLength","closestSplittableParent","editableParents","editableAncestor","closestEditable","closestEditableOfType","invert","filterFn","filterBy","ensureTrailingBreaks","ensureTrailingBreak","removeTrailingBreak","br","reMapTableColumns","colAttr","_mapColIndices","clearTableMappings","rowIndex","colIndex","registeredColumns","rowSpan","_mapColspan","colSpan","ci","ri","associateWithIds","theadRows","numberOfTheadRows","tableRows","numberOfTableRows","theadMatrix","tbodyMatrix","tHead","_getNumberOfHeaderRows","_generateIdsForColumns","_generateIdsForRows","_assignIds","col","colspan","rowspan","pushHeaderId","_onlyUnique","_getNumberOfColumns","numberOfCols","_getNumberOfHeaderColumns","numberOfHeaderRows","thead","supportsLeadingWhitespace","TD","fontSizeMappings","quoteRe","brRe","pixelRe","emptyPRe","cssDeclaration","sizzleAttr","scriptAttr","onerrorRe","bomSpan","toEditableHtml","_toEditableImmutables","immutable","_fillEmptyElements","_removeSystemElements","_resetOrderedLists","ol","originalStart","ols","_preventScriptExecution","attributesToRemove","legacyIE","originalSrc","originalHref","deserialize","semanticFilter","mapStart","cssProperties","styleAttr","specifiedAttributes","$node","skipEncoding","childNode","isEmptyBomNode","mapper","jqNode","tagMap","textOnly","childrenCount","runCustom","k:script","font","semanticAttributes","textDecoration","strong","em","styleObj","script","SelectBox","_initSelectOverlay","autoSize","listWidth","_listWidth","selectBox","compareBoundaries","startAncestor","endAncestor","fixIvalidRange","isInvalidRange","updateRangeProperties","textRangeContainer","textRange","adoptContainer","cursorNode","textOffset","isData","anchorNode","cursor","moveToElementText","adoptEndPoint","comparison","appended","compareEndPoints","RangeIterator","W3CSelection","RangeEnumerator","ImmutablesRangeIterator","ImmutablesRangeEnumerator","Marker","selectionFromWindow","selectionFromRange","rangeDocument","documentFromRange","W3CRange","setEnd","setStartBefore","setStartAfter","setEndBefore","setEndAfter","selectNodeContents","deleteContents","cloneRange","deleteSubtree","hasPartialSubtree","getSubtreeIterator","cloneSubtree","frag","createDocumentFragment","extractContents","extractSubtree","originalRange","insertNode","startNodeName","endNodeName","fromNode","_next","hasNext","traverse","nodeIndex","inStartContainer","inEndContainer","getSubRange","subRange","movedStart","movedEnd","enumerate","visit","rootNode","getEditable","nodeToPath","serializedImmutables","removeImmutables","restoreImmutables","lastType","restoreHtml","toRangePoint","denormalizedOffset","addCaret","removeCaret","containerIndex","textNode","expand","rangeBoundary","isExpandable","_removeDeadMarkers","createTextNode","_normalizedIndex","shouldNormalizeStart","shouldNormalizeEnd","shouldNormalize","isBomSelected","collapsedToStart","startParent","endParent","editableTextNodes","immutableParent","partition","partitionRange","mapAll","mapped","getAll","getMarkers","isStartOf","isEndOf","wrapSelectedElements","isEnd","startEditable","endEditable","beforeCaret","afterCaret","complexBlocks","toolsToBeUpdated","IMMUTABALE","IMMUTABALE_MARKER_SELECTOR","IMMUTABLE_SELECTOR","expandImmutablesIn","startImmutableParent","endImmutableParent","immutablesContext","editableNodes","randomId","chars","serialized","deletingKey","updateToolOptions","_toHtml","serializationType","isDeleting","shouldCancelEvent","_cancelDeleting","_cancelTyping","typingInProgress","isTypingKey","cancelDeleting","closestSelectionLi","closestImmutableLi","backspace","del","nextImmutable","_removeImmutable","forwards","commonContainer","_nextNode","startRestorePoint","finishUpdate","endRestorePoint","GenericCommand","Command","restorePoint","formatter","lockRange","releaseRange","point","createDialog","kendoWindow","OVERFLOWANCHOR","toolNamesByCssClass","k-i-sup-script","k-i-sub-script","k-i-align-left","k-i-align-center","k-i-align-right","k-i-align-justify","k-i-list-unordered","k-i-list-ordered","k-i-login","k-i-indent-increase","k-i-indent-decrease","k-i-link-horizontal","k-i-unlink-horizontal","k-i-image","k-i-file-add","k-i-html","k-i-foreground-color","k-i-paint","k-i-table-insert","k-i-table-column-insert-left","k-i-table-column-insert-right","k-i-table-row-insert-above","k-i-table-row-insert-below","k-i-table-row-delete","k-i-table-column-delete","k-i-table-properties","k-i-table-wizard","k-i-clear-css","k-i-cells-merge-horizontally","k-i-cells-merge-vertically","k-i-cell-split-horizontally","k-i-cell-split-vertically","k-i-copy-format","k-i-apply-format","OverflowAnchorTool","overflowPopup","_initPopup","tablesInsert","tablesAddDelete","tablesMerge","advanced","fonts","overflowFlaseTools","_toggleOverflowStyles","_initOverflowPopup","popupTemplate","focusOverflowPopup","toolGroupFor","isCustomTool","_editor","expandTools","combobox","dropDown","isOpened","inheritText","_toolName","description","_appendShortcutSequence","editorElement","editorOffset","_getWindowWidth","_overlaps","toolbarWrapper","toolbarWrapperOffset","toolbarWrapperLeft","toolbarWrapperTop","boxOffset","boxOffsetLeft","boxOffsetTop","localizedText","res","_nativeTools","currentTool","nativeTools","endGroup","groupPosition","startGroup","toolElement","newGroupName","toolConfig","updateGroups","popupElement","attachToolsEvents","enabledButtons","disabledButtons","dropdown","colorpicker","editorTools","focusableItems","currentContainer","_executeToolCommand","toolname","_immutablesContext","_updateImmutablesState","uiData","groupUi","uiElement","trackImmutables","containerWidth","toolbarWindow","_refreshWidths","_shrink","_stretch","visibleGroups","_groupsWidth","_visibleGroups","_hideGroup","hiddenGroups","_hiddenGroups","_showGroup","detach","groupWidth","ViewHtmlCommand","dialog","FormatCommand","FormatTool","MOUSEDOWN_NS","InlineFormatFinder","numberOfSiblings","textNodesCount","elementNodesCount","markerCount","findSuitable","sourceNode","findFormat","InlineFormatter","formatNode","formatNodes","consolidate","outerMostInline","GreedyInlineFormatFinder","greedyProperty","getInlineCssValue","attributeValue","pair","cssIndex","propertyAndValue","getFormatInner","GreedyInlineFormatter","InlineFormatTool","DelayedExecutionTool","FontTool","cssAttr","domAttr","newRange","ColorTool","_widget","storedRange","_inputFocused","picker","fontWeight","fontStyle","lastIndexOfRegExp","indexOfRegExp","HTTP_PROTOCOL","protocolRegExp","endLinkCharsRegExp","LinkFormatFinder","LinkFormatter","markers","UnlinkCommand","LinkCommand","_dialogTemplate","_initialText","_apply","linkUrl","_dialog","textInput","AutoLinkCommand","linkMarker","linkRange","detectedLink","detectLink","_ensureWebProtocol","traverser","detection","startNode","LeftDomTextTraverser","cancelAtNode","DomTextLinkDetection","hasProtocol","_hasProtocolPrefix","_prefixWithWebProtocol","UnlinkTool","DomPos","puntuationOptions","puntuationTraverser","_detectEnd","blank","_detectStart","_isLinkDetected","extendOptions","RightDomTextTraverser","_skipStartPuntuation","ii","DomTextTraverser","_traverse","edgeNode","subText","listElements","BlockFormatFinder","suitable","_resolveListsItems","ImmutablesNS","BlockFormatter","ancestor","images","imageFormat","imageAttributes","nonImages","_handleImmutables","applyFormatting","immutableFormat","namedFormat","GreedyBlockFormatter","immutalbeParent","blockFormatter","formatTag","ListFormatter","BlockFormatTool","textAlign","listStylePosition","ListFormatFinder","unwrapTag","isList","isImmutable","containsAny","_parentLists","breakable","applyOnSection","section","pushAncestor","addLastSection","lastSection","sections","lastNodes","fragment","ListCommand","ListTool","unwrapListItem","listFormatter","FormattingTool","toFormattingItem","dot","kendoSelectBox","getFormattingValue","_ancestor","CleanFormatCommand","tagsToClean","clean","KEDITORIMAGEURL","KEDITORIMAGETITLE","KEDITORIMAGEWIDTH","KEDITORIMAGEHEIGHT","ImageCommand","removeIEAttributes","showBrowser","applied","keyDown","dialogHeight","_imageBrowser","loadingOverlay","ImportCommand","_initializeUploadWidget","importOptions","_onUploadProgress","_onUploadSelect","_onUploadComplete","proxyUrl","getKendoUpload","_removeLoadingOverlay","_initLoadingOverlay","uploadEvent","_iframeWrapper","genericCommand","postProcess","InsertHtmlTool","_selectBox","selectbox","defaultExportAsItems","ExportAsCommand","exportType","generateForm","exportAsOptions","valueInput","exportTypeInput","fileNameInput","ExportAsTool","changeHandler","_exec","indentDirection","IndentFormatter","parentList","siblingList","nestedList","targetIndex","mapImmutables","targetNode","listParent","nextAll","IndentCommand","indentFormatter","OutdentCommand","OutdentTool","isOutdentable","listParentsCount","suitableNodes","ParagraphCommand","_insertMarker","_moveFocus","focusNode","shouldTrim","startInBlock","endInBlock","_blankAfter","paragraph","heading","tableNode","rng","parentChildrenLength","emptyParagraphContent","_insertParagraphAfter","NewLineCommand","filler","KEDITORFILEURL","KEDITORFILETEXT","KEDITORFILETITLE","FileCommand","_fileBrowser","SCOPE","ROW","COL","ROWGROUP","COLGROUP","COLSPAN","ROWSPAN","TABLE","THEAD","TBODY","TR","TH","columnTemplate","tableFormatFinder","TableCommand","skipCleaners","_tableHtml","columnHtml","insertedTable","PopupTool","twTool","TableWizardTool","TableWizardCommand","insertNewTable","InsertTableTool","tableFromLocation","cellHeight","cellWidth","firstCell","lastCell","_setTableSize","_valid","selectedRows","selectedColumns","tableSize","TableModificationCommand","_clearColIndexAttr","_findRowSpanCell","_resetTableResizing","_findNextTdInRow","td","lastTd","_adjustColgroups","colgroup","colElements","colgroupElements","numberOfCells","_associateHeaderIds","InsertRowCommand","cellCount","newRow","rowSpanIndex","createdCell","_appendCell","newCell","InsertColumnCommand","columnIndex","_processForColSpan","_resizeCells","selectedCell","colSpanEffect","parsedWidth","unit","calculatedWidth","DeleteRowCommand","rowParent","_handleRowSpanCells","adjacentCell","nextRow","firstRow","_reduceRowSpan","rowSpanValue","DeleteColumnCommand","columnCount","_handleColSpanCells","_reduceColSpan","colSpanValue","MergeCellsHorizontallyCommand","nextTd","_getColspan","MergeCellsVerticallyCommand","tr","targetRow","bottomTd","_getRowspan","SplitCellCommand","emptyTd","_splitCellHorizontally","_splitCellVertically","_getRowspanValue","_getColspanValue","tdToAdd","colSpanResult","rowSpanResult","TableModificationTool","commandsMap","delete","column","cleaners","ScriptCleaner","TabCleaner","MSWordFormatCleaner","WebkitFormatCleaner","HtmlTagsCleaner","HtmlAttrCleaner","HtmlContentCleaner","CustomCleaner","htmlToFragment","_startModification","_inProgress","_endModification","modificationInfo","_contentModification","_removeBomNodes","_onBeforeCopy","oncopy","oncut","_fileToDataURL","File","getAsFile","readAsDataURL","_triggerPaste","_handleImagePaste","clipboardData","_insertImages","onpaste","clipboardRange","clipboardNode","_decoreateClipboardNode","_moveToCaretPosition","ondragover","ondrop","borderWidth","fontVariant","lineSpacing","nodeOffset","caretOffset","_caretOffset","translateX","translateY","-webkit-transform","rangeChanged","isStartTextNode","prevLength","bomNode","splittableParent","splittable","fragmentsHtml","focusedTable","siblingNodes","lastSiblingIndex","lastSibling","applicable","elm","Cleaner","replacements","customReplacements","junkReplacements","convertFontMatch","$0","closing","faceRe","family","stripEmptyAnchors","listData","startingSymbol","matchSymbol","trimStartText","_guessUnorderedListStyle","_guessOrderedListStyle","_convertToLi","extractListLevels","msoListRegExp","styleType","listStyleType","rootMargin","rootIndex","lastRootLi","isLastRootLi","rootList","listIndex","levelType","blockChildren","lastMargin","levels","acceptedNameTags","isParentTable","removeAttributes","removeAttributeNode","createColGroup","convertHeaders","boldedCells","removeParagraphs","paragraphs","removeDefaultColors","spans","longestRow","titles","removeFormatting","DomCleaner","cleanDom","collectTags","collectAttr","TextContainer","HtmlTextLines","separators","line","lines","inlineBlockText","resetLine","appendText","textContainer","appendInlineBlockText","flashInlineBlockText","endLine","il","il1","jl","jl1","DomEnumerator","preventDown","enumerator","buildText","getDefaultSeparators","htmlLines","cleaner","tdCleaner","cellText","getSibling","PREVIOUS_SIBLING","tableCells","tableCellsWrappers","tableElements","inTable","RemoveTableContent","cellsTypes","startCell","endCell","_removeContent","getNext","removeTableContent","backspaceHandler","Event","deleteSelection","startTyping","_addCaret","_restoreCaret","_handleDelete","_merge","_cleanBomBefore","_handleBackspace","startAtLi","liIndex","startAtNonFirstLi","rangeStartNode","previousNode","isEndOfLink","_handleSelection","parentElementOrNode","_surroundFullyContent","_surroundFullySelectedAnchor","_join","startImmutable","endImmutable","_moveMarker","_root","_mergeWithTextNode","appendedNode","_isCaret","systemCommandIsInProgress","createUndoCommand","isModifierKey","isSystem","_toSelectableImmutables","_selectEditorBody","isCharacter","_getShortcutModifier","platform","mac","matchesKey","matchKey","toolKey","onEndTyping","stopTyping","what","ExportPdfCommand","PrintCommand","CopyFormatCommand","inlineStyles","blockStyles","collectStyles","rangeNodes","populateStyles","styleValue","styleKey","attributeKey","nodeStyles","ApplyFormatCommand","removeEmptyElementsFromRange","cleanInlineParents","applyBlockStyles","applyInlineStyles","isEmptyInline","emptyElements","blockParent","outerWrapper","previousNodes","nextNodes","prevWrapper","nextWrapper","createdNode","topNode","CopyFormatTool","ApplyFormatTool","lowerBound","upperBound","getScrollBarWidth","calculatePercentageRatio","inPercentages","REGEX_NUMBER_IN_PERCENTAGES","inPixels","REGEX_NUMBER_IN_PIXELS","toPercentages","PERCENTAGE","toPixels","PIXEL","ResizingUtils","MOUSE_ENTER","MOUSE_LEAVE","MOUSE_MOVE","LAST_CHILD","TableElementResizing","_attachEventHandlers","eventNamespace","rootElement","_destroyResizeHandle","dataAttribute","detectElementBorderHovering","resizingInProgress","handleOptions","tableElement","elementBorderHovered","showResizeHandle","_initResizeHandle","setResizeHandlePosition","setResizeHandleDimensions","setResizeHandleDataAttributes","_attachResizeHandleEventHandlers","_initResizable","_hideResizeMarker","markerClass","_destroyResizable","onResizeStart","onResizeEnd","_disableKeyboard","setResizeHandleDragPosition","_enableKeyboard","_forceResizing","ResizingFactory","resizingName","_destroyResizing","_initResizing","parentTable","resizingType","RESIZE_HANDLE_CLASS","RESIZE_MARKER_CLASS","COLATTR","handleWidth","borderOffset","tableInnerElement","scrollTopOffset","scrollLeftOffset","columnWidthOffset","scrollBarWidth","columnOffsetLeft","innerElementOffsetTop","tableHead","tableBody","fullHeight","columnWidth","columnLeftOffset","adjacentColumnWidth","resizeHandleOffsetLeft","handleOffset","initialAdjacentColumnWidth","initialColumnWidth","nextColumn","rtlModifier","initialDeltaX","_setTableComputedWidth","_setColumnsComputedWidth","_resizeColumn","_resizeTopAndBottomColumns","_resizeAdjacentColumns","innerElementWidth","currentColumnsWidths","topAndBottomColumns","innerTableElement","deltaWidth","adjacentColumns","_resizeAdjacentColumn","adjacentColumn","RESIZE_HANDLE_MARKER_WRAPPER_CLASS","handleHeight","rowOffsetLeft","rowOffsetTop","topInnerTableElement","$row","tableTopOffset","resizeHandleOffsetTop","currentRowHeight","initialTableHeight","tableHeadHeight","tableBodyHeight","initialStyleHeight","newRowHeight","_setRowsHeightInPixels","_setTableHeight","_setRowsHeightInPercentages","currentRowsHeights","HandlePositioningStrategy","EastPositioningStrategy","NorthPositioningStrategy","NortheastPositioningStrategy","NorthwestPositioningStrategy","SouthPositioningStrategy","SoutheastPositioningStrategy","SouthwestPositioningStrategy","WestPositioningStrategy","DraggingStrategyFactory","HandleDraggingStrategy","HorizontalDraggingStrategy","EastDraggingStrategy","WestDraggingStrategy","VerticalDraggingStrategy","NorthDraggingStrategy","SouthDraggingStrategy","HorizontalAndVerticalDraggingStrategy","NorthEastDraggingStrategy","NorthWestDraggingStrategy","SouthEastDraggingStrategy","SouthWestDraggingStrategy","DRAG_START","DRAG_END","HALF_INSIDE","MOUSE_OUT","EAST","NORTH","NORTHEAST","NORTHWEST","SOUTH","SOUTHEAST","SOUTHWEST","WEST","TableResizeHandle","_addStyles","_initDraggable","_initPositioningStrategy","_initDraggingStrategy","resizableElement","_destroyDraggable","_setPosition","_positioningStrategy","_onMouseOver","_onMouseOut","_onDragStart","_onDrag","_onDragEnd","_draggingStrategy","adjustDragDelta","deltaX","initialDeltaY","StrategyFactory","PositioningStrategyFactory","calculatePosition","handleOffsetPosition","applyHandleOffset","scrollOffsetPosition","applyScrollOffset","adjustment","deltas","xAxisAdjustment","yAxisAdjustment","isUndefined","RESIZE_HANDLE_WRAPPER_CLASS","TABLE_CLASS","TABLE_RESIZING_CLASS","COLUMN","handles","_destroyResizeHandles","appendHandlesTo","_resizeWidth","_resizeHeight","ratioValue","ratioTotalValue","constrainedWidth","styleWidth","parentWidth","_getMaxDimensionValue","_initialElementWidth","_setColumnsWidth","constrainedHeight","styleHeight","parentHeight","hasRowsInPixels","_hasRowsInPixels","_initialElementHeight","dimensionLowercase","parentDimension","parentScrollOffset","isWidthInPercentages","parentColumn","columnsLength","_initResizeHandles","_showResizeHandles","_bindToResizeHandlesEvents","_onResizeHandleDragStart","_onResizeHandleDrag","_onResizeHandleDragEnd","_onResizeHandleMouseOver","_onResizeHandleMouseOut","TableResizingFactory","factory","eventCurrentTarget","isResizeHandleOrChild","cellsFormatFinder","reUnit","COL_INDEX","HEADERS","selectedTable","_sourceTable","_selectedTable","selectedCells","_selectedTableCells","_selectedCells","closeCallback","onDialogClose","parseTable","TableWizardDialog","insertTable","createNewTable","updateTable","_ensureFocusableAfterTable","lastSelectedRow","cellsLength","newRowsCount","cellProp","tableProp","tableProperties","_deleteTableRows","insertRow","_insertCells","deleteCell","_updateTableProperties","cellProperties","_updateCellProperties","_updateCaption","_updateHeadersWithThead","_updateHeadersNoThead","_updateHeaderAssociates","_isHeadingRow","_isHeadingCell","cellsWithHeadersAssociated","associatedCells","headingIds","checkHeader","headersArray","headersAttr","insertCell","createTHead","_createTableRows","createTBody","cellsWithHeaders","_addScopes","cellPropToAll","_getStylesData","captionContent","deleteCaption","createCaption","_getAlignmentData","captionAlignment","verticalAlign","_swapToHeaderCells","deleteTHead","_removeScopes","_removeAssociates","headerCols","tds","swapCell","widthUnit","heightUnit","backgroundColor","bgColor","borderColor","borderCollapse","align","tStyle","captionClone","tableAlignment","numberOfColumns","numberOfHeaderColumns","tableJson","_getAlignment","_getUnit","parseTableRows","rowData","cellData","parseCell","cStyle","horizontalOnly","vAlign","hAlign","TableWizardEditTool","numericTextBoxSettings","borderStyles","DEFAULT_NUMBER_OF_COLS_AND_ROWS","tableAlignmentDropDownSettings","cellAlignmentDropDownSettings","accessibilityAlignmentDropDownSettings","dialogTemplate","okHandler","collectDialogValues","tableData","closeHandler","_initTabStripComponent","_initTableViewComponents","_initCellViewComponents","_initAccessibilityViewComponents","components","kendoTabStrip","_collectTableViewValues","_collectCellViewValues","_collectAccessibilityViewValues","tableView","cellView","accessibilityView","_addUnit","onColumnsNumberChange","onRowsNumberChange","headerColumnsNumeric","currentNumberOfColumnsHeaders","headerRowsNumeric","currentNumberOfRowHeaders","numberOfRows","_initNumericTextbox","_initDropDownList","_initTableAlignmentDropDown","_initColorPicker","_initInput","_initCheckbox","_initCellAlignmentDropDown","_initAccessibilityAlignmentDropDown","_initAssociationDropDown","storage","component","_setComponentValue","_initAlignmentDropDown","kendoColorPicker","_destroyComponents"],"mappings":"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,OACA,OACA,OACA,QAEJC,OACI,OACA,OACA,OACA,OACA,OACA,OACA,MACA,QACA,OACA,OACA,OACA,OACA,OACA,MACA,OACA,OACA,QAEJC,OACI,MACA,OACA,QACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,QACA,OACA,OACA,MACA,OACA,OACA,QACA,OACA,SAEJC,KACI,OACA,QACA,OACA,SACA,OACA,OACA,OACA,OACA,OACA,QACA,OACA,QAEJC,cACI,OACA,OACA,OACA,OACA,SAEJ1+B,MACI,OACA,OACA,SAEJ2+B,aACI,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,QACA,OACA,QACA,OACA,OACA,OACA,OACA,QACA,OACA,OACA,OACA,OACA,OACA,QACA,MACA,OACA,OACA,UAEJC,KAAM,QACNC,QACI,OACA,OACA,OACA,OACA,OACA,OACA,UACA,OACA,QAEJC,KACI,MACA,OACA,MACA,QACA,OACA,OACA,OACA,OACA,OACA,UACA,KACA,OACA,SAEJC,cACI,OACA,OACA,SACA,OACA,OACA,OACA,SAGR1iC,GAAM2iC,aAAe,SAAUC,EAAWC,GAArB,GAOR5/B,GACD6/B,EAPJC,EAAc/iC,GAAMgiC,aACpBgB,EAASzyB,OAAO6a,KAAK2X,GACrBz7B,EAAO,MACX,IAAIs7B,IAAclkC,IAAckkC,EAAUljC,OACtC,MAAO4H,EAEX,KAASrE,EAAI,EAAGA,EAAI+/B,EAAOtjC,OAAQuD,GAAK,EAEpC,GADI6/B,EAAaC,EAAYC,EAAO//B,IAChC6/B,EAAWx8B,QAAQs8B,EAAU19B,kBAC7B,MAAO29B,GAAa,QAAUG,EAAO//B,GAAK+/B,EAAO//B,EAGzD,OAAOqE,IAEXtH,GAAMijC,mBAAqB,SAAU98B,GAAV,GAWnBlD,GAVAigC,GACA,QACA,KACA,KACA,KACA,KAEJ,OAAa,KAAT/8B,EACO,UAEPlD,EAAIyH,SAAS1D,KAAKzE,MAAMyE,KAAKknB,IAAI/nB,GAAQa,KAAKknB,IAAI,OAAQ,IACvDlnB,KAAKgS,MAAM7S,E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","file":"kendo.custom.min.js","sourcesContent":["(function (f, define) {\n define('kendo.core', ['jquery'], f);\n}(function () {\n var __meta__ = {\n id: 'core',\n name: 'Core',\n category: 'framework',\n description: 'The core of the Kendo framework.'\n };\n (function ($, window, undefined) {\n var kendo = window.kendo = window.kendo || { cultures: {} }, extend = $.extend, each = $.each, isArray = $.isArray, proxy = $.proxy, noop = $.noop, math = Math, Template, JSON = window.JSON || {}, support = {}, percentRegExp = /%/, formatRegExp = /\\{(\\d+)(:[^\\}]+)?\\}/g, boxShadowRegExp = /(\\d+(?:\\.?)\\d*)px\\s*(\\d+(?:\\.?)\\d*)px\\s*(\\d+(?:\\.?)\\d*)px\\s*(\\d+)?/i, numberRegExp = /^(\\+|-?)\\d+(\\.?)\\d*$/, FUNCTION = 'function', STRING = 'string', NUMBER = 'number', OBJECT = 'object', NULL = 'null', BOOLEAN = 'boolean', UNDEFINED = 'undefined', getterCache = {}, setterCache = {}, slice = [].slice, noDepricateExtend = function () {\n var src, copyIsArray, copy, name, options, clone, target = arguments[0] || {}, i = 1, length = arguments.length, deep = false;\n if (typeof target === 'boolean') {\n deep = target;\n target = arguments[i] || {};\n i++;\n }\n if (typeof target !== 'object' && !jQuery.isFunction(target)) {\n target = {};\n }\n if (i === length) {\n target = this;\n i--;\n }\n for (; i < length; i++) {\n if ((options = arguments[i]) != null) {\n for (name in options) {\n if (name == 'filters' || name == 'concat' || name == ':') {\n continue;\n }\n src = target[name];\n copy = options[name];\n if (target === copy) {\n continue;\n }\n if (deep && copy && (jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)))) {\n if (copyIsArray) {\n copyIsArray = false;\n clone = src && jQuery.isArray(src) ? src : [];\n } else {\n clone = src && jQuery.isPlainObject(src) ? src : {};\n }\n target[name] = noDepricateExtend(deep, clone, copy);\n } else if (copy !== undefined) {\n target[name] = copy;\n }\n }\n }\n }\n return target;\n };\n kendo.version = '2020.2.617'.replace(/^\\s+|\\s+$/g, '');\n function Class() {\n }\n Class.extend = function (proto) {\n var base = function () {\n }, member, that = this, subclass = proto && proto.init ? proto.init : function () {\n that.apply(this, arguments);\n }, fn;\n base.prototype = that.prototype;\n fn = subclass.fn = subclass.prototype = new base();\n for (member in proto) {\n if (proto[member] != null && proto[member].constructor === Object) {\n fn[member] = extend(true, {}, base.prototype[member], proto[member]);\n } else {\n fn[member] = proto[member];\n }\n }\n fn.constructor = subclass;\n subclass.extend = that.extend;\n return subclass;\n };\n Class.prototype._initOptions = function (options) {\n this.options = deepExtend({}, this.options, options);\n };\n var isFunction = kendo.isFunction = function (fn) {\n return typeof fn === 'function';\n };\n var preventDefault = function () {\n this._defaultPrevented = true;\n };\n var isDefaultPrevented = function () {\n return this._defaultPrevented === true;\n };\n var Observable = Class.extend({\n init: function () {\n this._events = {};\n },\n bind: function (eventName, handlers, one) {\n var that = this, idx, eventNames = typeof eventName === STRING ? [eventName] : eventName, length, original, handler, handlersIsFunction = typeof handlers === FUNCTION, events;\n if (handlers === undefined) {\n for (idx in eventName) {\n that.bind(idx, eventName[idx]);\n }\n return that;\n }\n for (idx = 0, length = eventNames.length; idx < length; idx++) {\n eventName = eventNames[idx];\n handler = handlersIsFunction ? handlers : handlers[eventName];\n if (handler) {\n if (one) {\n original = handler;\n handler = function () {\n that.unbind(eventName, handler);\n original.apply(that, arguments);\n };\n handler.original = original;\n }\n events = that._events[eventName] = that._events[eventName] || [];\n events.push(handler);\n }\n }\n return that;\n },\n one: function (eventNames, handlers) {\n return this.bind(eventNames, handlers, true);\n },\n first: function (eventName, handlers) {\n var that = this, idx, eventNames = typeof eventName === STRING ? [eventName] : eventName, length, handler, handlersIsFunction = typeof handlers === FUNCTION, events;\n for (idx = 0, length = eventNames.length; idx < length; idx++) {\n eventName = eventNames[idx];\n handler = handlersIsFunction ? handlers : handlers[eventName];\n if (handler) {\n events = that._events[eventName] = that._events[eventName] || [];\n events.unshift(handler);\n }\n }\n return that;\n },\n trigger: function (eventName, e) {\n var that = this, events = that._events[eventName], idx, length;\n if (events) {\n e = e || {};\n e.sender = that;\n e._defaultPrevented = false;\n e.preventDefault = preventDefault;\n e.isDefaultPrevented = isDefaultPrevented;\n events = events.slice();\n for (idx = 0, length = events.length; idx < length; idx++) {\n events[idx].call(that, e);\n }\n return e._defaultPrevented === true;\n }\n return false;\n },\n unbind: function (eventName, handler) {\n var that = this, events = that._events[eventName], idx;\n if (eventName === undefined) {\n that._events = {};\n } else if (events) {\n if (handler) {\n for (idx = events.length - 1; idx >= 0; idx--) {\n if (events[idx] === handler || events[idx].original === handler) {\n events.splice(idx, 1);\n }\n }\n } else {\n that._events[eventName] = [];\n }\n }\n return that;\n }\n });\n function compilePart(part, stringPart) {\n if (stringPart) {\n return '\\'' + part.split('\\'').join('\\\\\\'').split('\\\\\"').join('\\\\\\\\\\\\\"').replace(/\\n/g, '\\\\n').replace(/\\r/g, '\\\\r').replace(/\\t/g, '\\\\t') + '\\'';\n } else {\n var first = part.charAt(0), rest = part.substring(1);\n if (first === '=') {\n return '+(' + rest + ')+';\n } else if (first === ':') {\n return '+$kendoHtmlEncode(' + rest + ')+';\n } else {\n return ';' + part + ';$kendoOutput+=';\n }\n }\n }\n var argumentNameRegExp = /^\\w+/, encodeRegExp = /\\$\\{([^}]*)\\}/g, escapedCurlyRegExp = /\\\\\\}/g, curlyRegExp = /__CURLY__/g, escapedSharpRegExp = /\\\\#/g, sharpRegExp = /__SHARP__/g, zeros = [\n '',\n '0',\n '00',\n '000',\n '0000'\n ];\n Template = {\n paramName: 'data',\n useWithBlock: true,\n render: function (template, data) {\n var idx, length, html = '';\n for (idx = 0, length = data.length; idx < length; idx++) {\n html += template(data[idx]);\n }\n return html;\n },\n compile: function (template, options) {\n var settings = extend({}, this, options), paramName = settings.paramName, argumentName = paramName.match(argumentNameRegExp)[0], useWithBlock = settings.useWithBlock, functionBody = 'var $kendoOutput, $kendoHtmlEncode = kendo.htmlEncode;', fn, parts, idx;\n if (isFunction(template)) {\n return template;\n }\n functionBody += useWithBlock ? 'with(' + paramName + '){' : '';\n functionBody += '$kendoOutput=';\n parts = template.replace(escapedCurlyRegExp, '__CURLY__').replace(encodeRegExp, '#=$kendoHtmlEncode($1)#').replace(curlyRegExp, '}').replace(escapedSharpRegExp, '__SHARP__').split('#');\n for (idx = 0; idx < parts.length; idx++) {\n functionBody += compilePart(parts[idx], idx % 2 === 0);\n }\n functionBody += useWithBlock ? ';}' : ';';\n functionBody += 'return $kendoOutput;';\n functionBody = functionBody.replace(sharpRegExp, '#');\n try {\n fn = new Function(argumentName, functionBody);\n fn._slotCount = Math.floor(parts.length / 2);\n return fn;\n } catch (e) {\n throw new Error(kendo.format('Invalid template:\\'{0}\\' Generated code:\\'{1}\\'', template, functionBody));\n }\n }\n };\n function pad(number, digits, end) {\n number = number + '';\n digits = digits || 2;\n end = digits - number.length;\n if (end) {\n return zeros[digits].substring(0, end) + number;\n }\n return number;\n }\n (function () {\n var escapable = /[\\\\\\\"\\x00-\\x1f\\x7f-\\x9f\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/g, gap, indent, meta = {\n '\\b': '\\\\b',\n '\\t': '\\\\t',\n '\\n': '\\\\n',\n '\\f': '\\\\f',\n '\\r': '\\\\r',\n '\"': '\\\\\"',\n '\\\\': '\\\\\\\\'\n }, rep, toString = {}.toString;\n if (typeof Date.prototype.toJSON !== FUNCTION) {\n Date.prototype.toJSON = function () {\n var that = this;\n return isFinite(that.valueOf()) ? pad(that.getUTCFullYear(), 4) + '-' + pad(that.getUTCMonth() + 1) + '-' + pad(that.getUTCDate()) + 'T' + pad(that.getUTCHours()) + ':' + pad(that.getUTCMinutes()) + ':' + pad(that.getUTCSeconds()) + 'Z' : null;\n };\n String.prototype.toJSON = Number.prototype.toJSON = Boolean.prototype.toJSON = function () {\n return this.valueOf();\n };\n }\n function quote(string) {\n escapable.lastIndex = 0;\n return escapable.test(string) ? '\"' + string.replace(escapable, function (a) {\n var c = meta[a];\n return typeof c === STRING ? c : '\\\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4);\n }) + '\"' : '\"' + string + '\"';\n }\n function str(key, holder) {\n var i, k, v, length, mind = gap, partial, value = holder[key], type;\n if (value && typeof value === OBJECT && typeof value.toJSON === FUNCTION) {\n value = value.toJSON(key);\n }\n if (typeof rep === FUNCTION) {\n value = rep.call(holder, key, value);\n }\n type = typeof value;\n if (type === STRING) {\n return quote(value);\n } else if (type === NUMBER) {\n return isFinite(value) ? String(value) : NULL;\n } else if (type === BOOLEAN || type === NULL) {\n return String(value);\n } else if (type === OBJECT) {\n if (!value) {\n return NULL;\n }\n gap += indent;\n partial = [];\n if (toString.apply(value) === '[object Array]') {\n length = value.length;\n for (i = 0; i < length; i++) {\n partial[i] = str(i, value) || NULL;\n }\n v = partial.length === 0 ? '[]' : gap ? '[\\n' + gap + partial.join(',\\n' + gap) + '\\n' + mind + ']' : '[' + partial.join(',') + ']';\n gap = mind;\n return v;\n }\n if (rep && typeof rep === OBJECT) {\n length = rep.length;\n for (i = 0; i < length; i++) {\n if (typeof rep[i] === STRING) {\n k = rep[i];\n v = str(k, value);\n if (v) {\n partial.push(quote(k) + (gap ? ': ' : ':') + v);\n }\n }\n }\n } else {\n for (k in value) {\n if (Object.hasOwnProperty.call(value, k)) {\n v = str(k, value);\n if (v) {\n partial.push(quote(k) + (gap ? ': ' : ':') + v);\n }\n }\n }\n }\n v = partial.length === 0 ? '{}' : gap ? '{\\n' + gap + partial.join(',\\n' + gap) + '\\n' + mind + '}' : '{' + partial.join(',') + '}';\n gap = mind;\n return v;\n }\n }\n if (typeof JSON.stringify !== FUNCTION) {\n JSON.stringify = function (value, replacer, space) {\n var i;\n gap = '';\n indent = '';\n if (typeof space === NUMBER) {\n for (i = 0; i < space; i += 1) {\n indent += ' ';\n }\n } else if (typeof space === STRING) {\n indent = space;\n }\n rep = replacer;\n if (replacer && typeof replacer !== FUNCTION && (typeof replacer !== OBJECT || typeof replacer.length !== NUMBER)) {\n throw new Error('JSON.stringify');\n }\n return str('', { '': value });\n };\n }\n }());\n (function () {\n var dateFormatRegExp = /dddd|ddd|dd|d|MMMM|MMM|MM|M|yyyy|yy|HH|H|hh|h|mm|m|fff|ff|f|tt|ss|s|zzz|zz|z|\"[^\"]*\"|'[^']*'/g, standardFormatRegExp = /^(n|c|p|e)(\\d*)$/i, literalRegExp = /(\\\\.)|(['][^']*[']?)|([\"][^\"]*[\"]?)/g, commaRegExp = /\\,/g, EMPTY = '', POINT = '.', COMMA = ',', SHARP = '#', ZERO = '0', PLACEHOLDER = '??', EN = 'en-US', objectToString = {}.toString;\n kendo.cultures['en-US'] = {\n name: EN,\n numberFormat: {\n pattern: ['-n'],\n decimals: 2,\n ',': ',',\n '.': '.',\n groupSize: [3],\n percent: {\n pattern: [\n '-n %',\n 'n %'\n ],\n decimals: 2,\n ',': ',',\n '.': '.',\n groupSize: [3],\n symbol: '%'\n },\n currency: {\n name: 'US Dollar',\n abbr: 'USD',\n pattern: [\n '($n)',\n '$n'\n ],\n decimals: 2,\n ',': ',',\n '.': '.',\n groupSize: [3],\n symbol: '$'\n }\n },\n calendars: {\n standard: {\n days: {\n names: [\n 'Sunday',\n 'Monday',\n 'Tuesday',\n 'Wednesday',\n 'Thursday',\n 'Friday',\n 'Saturday'\n ],\n namesAbbr: [\n 'Sun',\n 'Mon',\n 'Tue',\n 'Wed',\n 'Thu',\n 'Fri',\n 'Sat'\n ],\n namesShort: [\n 'Su',\n 'Mo',\n 'Tu',\n 'We',\n 'Th',\n 'Fr',\n 'Sa'\n ]\n },\n months: {\n names: [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December'\n ],\n namesAbbr: [\n 'Jan',\n 'Feb',\n 'Mar',\n 'Apr',\n 'May',\n 'Jun',\n 'Jul',\n 'Aug',\n 'Sep',\n 'Oct',\n 'Nov',\n 'Dec'\n ]\n },\n AM: [\n 'AM',\n 'am',\n 'AM'\n ],\n PM: [\n 'PM',\n 'pm',\n 'PM'\n ],\n patterns: {\n d: 'M/d/yyyy',\n D: 'dddd, MMMM dd, yyyy',\n F: 'dddd, MMMM dd, yyyy h:mm:ss tt',\n g: 'M/d/yyyy h:mm tt',\n G: 'M/d/yyyy h:mm:ss tt',\n m: 'MMMM dd',\n M: 'MMMM dd',\n s: 'yyyy\\'-\\'MM\\'-\\'ddTHH\\':\\'mm\\':\\'ss',\n t: 'h:mm tt',\n T: 'h:mm:ss tt',\n u: 'yyyy\\'-\\'MM\\'-\\'dd HH\\':\\'mm\\':\\'ss\\'Z\\'',\n y: 'MMMM, yyyy',\n Y: 'MMMM, yyyy'\n },\n '/': '/',\n ':': ':',\n firstDay: 0,\n twoDigitYearMax: 2029\n }\n }\n };\n function findCulture(culture) {\n if (culture) {\n if (culture.numberFormat) {\n return culture;\n }\n if (typeof culture === STRING) {\n var cultures = kendo.cultures;\n return cultures[culture] || cultures[culture.split('-')[0]] || null;\n }\n return null;\n }\n return null;\n }\n function getCulture(culture) {\n if (culture) {\n culture = findCulture(culture);\n }\n return culture || kendo.cultures.current;\n }\n kendo.culture = function (cultureName) {\n var cultures = kendo.cultures, culture;\n if (cultureName !== undefined) {\n culture = findCulture(cultureName) || cultures[EN];\n culture.calendar = culture.calendars.standard;\n cultures.current = culture;\n } else {\n return cultures.current;\n }\n };\n kendo.findCulture = findCulture;\n kendo.getCulture = getCulture;\n kendo.culture(EN);\n function formatDate(date, format, culture) {\n culture = getCulture(culture);\n var calendar = culture.calendars.standard, days = calendar.days, months = calendar.months;\n format = calendar.patterns[format] || format;\n return format.replace(dateFormatRegExp, function (match) {\n var minutes;\n var result;\n var sign;\n if (match === 'd') {\n result = date.getDate();\n } else if (match === 'dd') {\n result = pad(date.getDate());\n } else if (match === 'ddd') {\n result = days.namesAbbr[date.getDay()];\n } else if (match === 'dddd') {\n result = days.names[date.getDay()];\n } else if (match === 'M') {\n result = date.getMonth() + 1;\n } else if (match === 'MM') {\n result = pad(date.getMonth() + 1);\n } else if (match === 'MMM') {\n result = months.namesAbbr[date.getMonth()];\n } else if (match === 'MMMM') {\n result = months.names[date.getMonth()];\n } else if (match === 'yy') {\n result = pad(date.getFullYear() % 100);\n } else if (match === 'yyyy') {\n result = pad(date.getFullYear(), 4);\n } else if (match === 'h') {\n result = date.getHours() % 12 || 12;\n } else if (match === 'hh') {\n result = pad(date.getHours() % 12 || 12);\n } else if (match === 'H') {\n result = date.getHours();\n } else if (match === 'HH') {\n result = pad(date.getHours());\n } else if (match === 'm') {\n result = date.getMinutes();\n } else if (match === 'mm') {\n result = pad(date.getMinutes());\n } else if (match === 's') {\n result = date.getSeconds();\n } else if (match === 'ss') {\n result = pad(date.getSeconds());\n } else if (match === 'f') {\n result = math.floor(date.getMilliseconds() / 100);\n } else if (match === 'ff') {\n result = date.getMilliseconds();\n if (result > 99) {\n result = math.floor(result / 10);\n }\n result = pad(result);\n } else if (match === 'fff') {\n result = pad(date.getMilliseconds(), 3);\n } else if (match === 'tt') {\n result = date.getHours() < 12 ? calendar.AM[0] : calendar.PM[0];\n } else if (match === 'zzz') {\n minutes = date.getTimezoneOffset();\n sign = minutes < 0;\n result = math.abs(minutes / 60).toString().split('.')[0];\n minutes = math.abs(minutes) - result * 60;\n result = (sign ? '+' : '-') + pad(result);\n result += ':' + pad(minutes);\n } else if (match === 'zz' || match === 'z') {\n result = date.getTimezoneOffset() / 60;\n sign = result < 0;\n result = math.abs(result).toString().split('.')[0];\n result = (sign ? '+' : '-') + (match === 'zz' ? pad(result) : result);\n }\n return result !== undefined ? result : match.slice(1, match.length - 1);\n });\n }\n function formatNumber(number, format, culture) {\n culture = getCulture(culture);\n var numberFormat = culture.numberFormat, decimal = numberFormat[POINT], precision = numberFormat.decimals, pattern = numberFormat.pattern[0], literals = [], symbol, isCurrency, isPercent, customPrecision, formatAndPrecision, negative = number < 0, integer, fraction, integerLength, fractionLength, replacement = EMPTY, value = EMPTY, idx, length, ch, hasGroup, hasNegativeFormat, decimalIndex, sharpIndex, zeroIndex, hasZero, hasSharp, percentIndex, currencyIndex, startZeroIndex, start = -1, end;\n if (number === undefined) {\n return EMPTY;\n }\n if (!isFinite(number)) {\n return number;\n }\n if (!format) {\n return culture.name.length ? number.toLocaleString() : number.toString();\n }\n formatAndPrecision = standardFormatRegExp.exec(format);\n if (formatAndPrecision) {\n format = formatAndPrecision[1].toLowerCase();\n isCurrency = format === 'c';\n isPercent = format === 'p';\n if (isCurrency || isPercent) {\n numberFormat = isCurrency ? numberFormat.currency : numberFormat.percent;\n decimal = numberFormat[POINT];\n precision = numberFormat.decimals;\n symbol = numberFormat.symbol;\n pattern = numberFormat.pattern[negative ? 0 : 1];\n }\n customPrecision = formatAndPrecision[2];\n if (customPrecision) {\n precision = +customPrecision;\n }\n if (format === 'e') {\n var exp = customPrecision ? number.toExponential(precision) : number.toExponential();\n return exp.replace(POINT, numberFormat[POINT]);\n }\n if (isPercent) {\n number *= 100;\n }\n number = round(number, precision);\n negative = number < 0;\n number = number.split(POINT);\n integer = number[0];\n fraction = number[1];\n if (negative) {\n integer = integer.substring(1);\n }\n value = groupInteger(integer, 0, integer.length, numberFormat);\n if (fraction) {\n value += decimal + fraction;\n }\n if (format === 'n' && !negative) {\n return value;\n }\n number = EMPTY;\n for (idx = 0, length = pattern.length; idx < length; idx++) {\n ch = pattern.charAt(idx);\n if (ch === 'n') {\n number += value;\n } else if (ch === '$' || ch === '%') {\n number += symbol;\n } else {\n number += ch;\n }\n }\n return number;\n }\n if (format.indexOf('\\'') > -1 || format.indexOf('\"') > -1 || format.indexOf('\\\\') > -1) {\n format = format.replace(literalRegExp, function (match) {\n var quoteChar = match.charAt(0).replace('\\\\', ''), literal = match.slice(1).replace(quoteChar, '');\n literals.push(literal);\n return PLACEHOLDER;\n });\n }\n format = format.split(';');\n if (negative && format[1]) {\n format = format[1];\n hasNegativeFormat = true;\n } else if (number === 0 && format[2]) {\n format = format[2];\n if (format.indexOf(SHARP) == -1 && format.indexOf(ZERO) == -1) {\n return format;\n }\n } else {\n format = format[0];\n }\n percentIndex = format.indexOf('%');\n currencyIndex = format.indexOf('$');\n isPercent = percentIndex != -1;\n isCurrency = currencyIndex != -1;\n if (isPercent) {\n number *= 100;\n }\n if (isCurrency && format[currencyIndex - 1] === '\\\\') {\n format = format.split('\\\\').join('');\n isCurrency = false;\n }\n if (isCurrency || isPercent) {\n numberFormat = isCurrency ? numberFormat.currency : numberFormat.percent;\n decimal = numberFormat[POINT];\n precision = numberFormat.decimals;\n symbol = numberFormat.symbol;\n }\n hasGroup = format.indexOf(COMMA) > -1;\n if (hasGroup) {\n format = format.replace(commaRegExp, EMPTY);\n }\n decimalIndex = format.indexOf(POINT);\n length = format.length;\n if (decimalIndex != -1) {\n fraction = number.toString().split('e');\n if (fraction[1]) {\n fraction = round(number, Math.abs(fraction[1]));\n } else {\n fraction = fraction[0];\n }\n fraction = fraction.split(POINT)[1] || EMPTY;\n zeroIndex = format.lastIndexOf(ZERO) - decimalIndex;\n sharpIndex = format.lastIndexOf(SHARP) - decimalIndex;\n hasZero = zeroIndex > -1;\n hasSharp = sharpIndex > -1;\n idx = fraction.length;\n if (!hasZero && !hasSharp) {\n format = format.substring(0, decimalIndex) + format.substring(decimalIndex + 1);\n length = format.length;\n decimalIndex = -1;\n idx = 0;\n }\n if (hasZero && zeroIndex > sharpIndex) {\n idx = zeroIndex;\n } else if (sharpIndex > zeroIndex) {\n if (hasSharp && idx > sharpIndex) {\n var rounded = round(number, sharpIndex, negative);\n while (rounded.charAt(rounded.length - 1) === ZERO && sharpIndex > 0 && sharpIndex > zeroIndex) {\n sharpIndex--;\n rounded = round(number, sharpIndex, negative);\n }\n idx = sharpIndex;\n } else if (hasZero && idx < zeroIndex) {\n idx = zeroIndex;\n }\n }\n }\n number = round(number, idx, negative);\n sharpIndex = format.indexOf(SHARP);\n startZeroIndex = zeroIndex = format.indexOf(ZERO);\n if (sharpIndex == -1 && zeroIndex != -1) {\n start = zeroIndex;\n } else if (sharpIndex != -1 && zeroIndex == -1) {\n start = sharpIndex;\n } else {\n start = sharpIndex > zeroIndex ? zeroIndex : sharpIndex;\n }\n sharpIndex = format.lastIndexOf(SHARP);\n zeroIndex = format.lastIndexOf(ZERO);\n if (sharpIndex == -1 && zeroIndex != -1) {\n end = zeroIndex;\n } else if (sharpIndex != -1 && zeroIndex == -1) {\n end = sharpIndex;\n } else {\n end = sharpIndex > zeroIndex ? sharpIndex : zeroIndex;\n }\n if (start == length) {\n end = start;\n }\n if (start != -1) {\n value = number.toString().split(POINT);\n integer = value[0];\n fraction = value[1] || EMPTY;\n integerLength = integer.length;\n fractionLength = fraction.length;\n if (negative && number * -1 >= 0) {\n negative = false;\n }\n number = format.substring(0, start);\n if (negative && !hasNegativeFormat) {\n number += '-';\n }\n for (idx = start; idx < length; idx++) {\n ch = format.charAt(idx);\n if (decimalIndex == -1) {\n if (end - idx < integerLength) {\n number += integer;\n break;\n }\n } else {\n if (zeroIndex != -1 && zeroIndex < idx) {\n replacement = EMPTY;\n }\n if (decimalIndex - idx <= integerLength && decimalIndex - idx > -1) {\n number += integer;\n idx = decimalIndex;\n }\n if (decimalIndex === idx) {\n number += (fraction ? decimal : EMPTY) + fraction;\n idx += end - decimalIndex + 1;\n continue;\n }\n }\n if (ch === ZERO) {\n number += ch;\n replacement = ch;\n } else if (ch === SHARP) {\n number += replacement;\n }\n }\n if (hasGroup) {\n number = groupInteger(number, start + (negative && !hasNegativeFormat ? 1 : 0), Math.max(end, integerLength + start), numberFormat);\n }\n if (end >= start) {\n number += format.substring(end + 1);\n }\n if (isCurrency || isPercent) {\n value = EMPTY;\n for (idx = 0, length = number.length; idx < length; idx++) {\n ch = number.charAt(idx);\n value += ch === '$' || ch === '%' ? symbol : ch;\n }\n number = value;\n }\n length = literals.length;\n if (length) {\n for (idx = 0; idx < length; idx++) {\n number = number.replace(PLACEHOLDER, literals[idx]);\n }\n }\n }\n return number;\n }\n var groupInteger = function (number, start, end, numberFormat) {\n var decimalIndex = number.indexOf(numberFormat[POINT]);\n var groupSizes = numberFormat.groupSize.slice();\n var groupSize = groupSizes.shift();\n var integer, integerLength;\n var idx, parts, value;\n var newGroupSize;\n end = decimalIndex !== -1 ? decimalIndex : end + 1;\n integer = number.substring(start, end);\n integerLength = integer.length;\n if (integerLength >= groupSize) {\n idx = integerLength;\n parts = [];\n while (idx > -1) {\n value = integer.substring(idx - groupSize, idx);\n if (value) {\n parts.push(value);\n }\n idx -= groupSize;\n newGroupSize = groupSizes.shift();\n groupSize = newGroupSize !== undefined ? newGroupSize : groupSize;\n if (groupSize === 0) {\n if (idx > 0) {\n parts.push(integer.substring(0, idx));\n }\n break;\n }\n }\n integer = parts.reverse().join(numberFormat[COMMA]);\n number = number.substring(0, start) + integer + number.substring(end);\n }\n return number;\n };\n var round = function (value, precision, negative) {\n precision = precision || 0;\n value = value.toString().split('e');\n value = Math.round(+(value[0] + 'e' + (value[1] ? +value[1] + precision : precision)));\n if (negative) {\n value = -value;\n }\n value = value.toString().split('e');\n value = +(value[0] + 'e' + (value[1] ? +value[1] - precision : -precision));\n return value.toFixed(Math.min(precision, 20));\n };\n var toString = function (value, fmt, culture) {\n if (fmt) {\n if (objectToString.call(value) === '[object Date]') {\n return formatDate(value, fmt, culture);\n } else if (typeof value === NUMBER) {\n return formatNumber(value, fmt, culture);\n }\n }\n return value !== undefined ? value : '';\n };\n kendo.format = function (fmt) {\n var values = arguments;\n return fmt.replace(formatRegExp, function (match, index, placeholderFormat) {\n var value = values[parseInt(index, 10) + 1];\n return toString(value, placeholderFormat ? placeholderFormat.substring(1) : '');\n });\n };\n kendo._extractFormat = function (format) {\n if (format.slice(0, 3) === '{0:') {\n format = format.slice(3, format.length - 1);\n }\n return format;\n };\n kendo._activeElement = function () {\n try {\n return document.activeElement;\n } catch (e) {\n return document.documentElement.activeElement;\n }\n };\n kendo._round = round;\n kendo._outerWidth = function (element, includeMargin) {\n return $(element).outerWidth(includeMargin || false) || 0;\n };\n kendo._outerHeight = function (element, includeMargin) {\n return $(element).outerHeight(includeMargin || false) || 0;\n };\n kendo.toString = toString;\n }());\n (function () {\n var nonBreakingSpaceRegExp = /\\u00A0/g, exponentRegExp = /[eE][\\-+]?[0-9]+/, shortTimeZoneRegExp = /[+|\\-]\\d{1,2}/, longTimeZoneRegExp = /[+|\\-]\\d{1,2}:?\\d{2}/, dateRegExp = /^\\/Date\\((.*?)\\)\\/$/, offsetRegExp = /[+-]\\d*/, FORMATS_SEQUENCE = [\n [],\n [\n 'G',\n 'g',\n 'F'\n ],\n [\n 'D',\n 'd',\n 'y',\n 'm',\n 'T',\n 't'\n ]\n ], STANDARD_FORMATS = [\n [\n 'yyyy-MM-ddTHH:mm:ss.fffffffzzz',\n 'yyyy-MM-ddTHH:mm:ss.fffffff',\n 'yyyy-MM-ddTHH:mm:ss.fffzzz',\n 'yyyy-MM-ddTHH:mm:ss.fff',\n 'ddd MMM dd yyyy HH:mm:ss',\n 'yyyy-MM-ddTHH:mm:sszzz',\n 'yyyy-MM-ddTHH:mmzzz',\n 'yyyy-MM-ddTHH:mmzz',\n 'yyyy-MM-ddTHH:mm:ss',\n 'yyyy-MM-dd HH:mm:ss',\n 'yyyy/MM/dd HH:mm:ss'\n ],\n [\n 'yyyy-MM-ddTHH:mm',\n 'yyyy-MM-dd HH:mm',\n 'yyyy/MM/dd HH:mm'\n ],\n [\n 'yyyy/MM/dd',\n 'yyyy-MM-dd',\n 'HH:mm:ss',\n 'HH:mm'\n ]\n ], numberRegExp = {\n 2: /^\\d{1,2}/,\n 3: /^\\d{1,3}/,\n 4: /^\\d{4}/\n }, objectToString = {}.toString;\n function outOfRange(value, start, end) {\n return !(value >= start && value <= end);\n }\n function designatorPredicate(designator) {\n return designator.charAt(0);\n }\n function mapDesignators(designators) {\n return $.map(designators, designatorPredicate);\n }\n function adjustDST(date, hours) {\n if (!hours && date.getHours() === 23) {\n date.setHours(date.getHours() + 2);\n }\n }\n function lowerArray(data) {\n var idx = 0, length = data.length, array = [];\n for (; idx < length; idx++) {\n array[idx] = (data[idx] + '').toLowerCase();\n }\n return array;\n }\n function lowerLocalInfo(localInfo) {\n var newLocalInfo = {}, property;\n for (property in localInfo) {\n newLocalInfo[property] = lowerArray(localInfo[property]);\n }\n return newLocalInfo;\n }\n function parseExact(value, format, culture, strict) {\n if (!value) {\n return null;\n }\n var lookAhead = function (match) {\n var i = 0;\n while (format[idx] === match) {\n i++;\n idx++;\n }\n if (i > 0) {\n idx -= 1;\n }\n return i;\n }, getNumber = function (size) {\n var rg = numberRegExp[size] || new RegExp('^\\\\d{1,' + size + '}'), match = value.substr(valueIdx, size).match(rg);\n if (match) {\n match = match[0];\n valueIdx += match.length;\n return parseInt(match, 10);\n }\n return null;\n }, getIndexByName = function (names, lower) {\n var i = 0, length = names.length, name, nameLength, matchLength = 0, matchIdx = 0, subValue;\n for (; i < length; i++) {\n name = names[i];\n nameLength = name.length;\n subValue = value.substr(valueIdx, nameLength);\n if (lower) {\n subValue = subValue.toLowerCase();\n }\n if (subValue == name && nameLength > matchLength) {\n matchLength = nameLength;\n matchIdx = i;\n }\n }\n if (matchLength) {\n valueIdx += matchLength;\n return matchIdx + 1;\n }\n return null;\n }, checkLiteral = function () {\n var result = false;\n if (value.charAt(valueIdx) === format[idx]) {\n valueIdx++;\n result = true;\n }\n return result;\n }, calendar = culture.calendars.standard, year = null, month = null, day = null, hours = null, minutes = null, seconds = null, milliseconds = null, idx = 0, valueIdx = 0, literal = false, date = new Date(), twoDigitYearMax = calendar.twoDigitYearMax || 2029, defaultYear = date.getFullYear(), ch, count, length, pattern, pmHour, UTC, matches, amDesignators, pmDesignators, hoursOffset, minutesOffset, hasTime, match;\n if (!format) {\n format = 'd';\n }\n pattern = calendar.patterns[format];\n if (pattern) {\n format = pattern;\n }\n format = format.split('');\n length = format.length;\n for (; idx < length; idx++) {\n ch = format[idx];\n if (literal) {\n if (ch === '\\'') {\n literal = false;\n } else {\n checkLiteral();\n }\n } else {\n if (ch === 'd') {\n count = lookAhead('d');\n if (!calendar._lowerDays) {\n calendar._lowerDays = lowerLocalInfo(calendar.days);\n }\n if (day !== null && count > 2) {\n continue;\n }\n day = count < 3 ? getNumber(2) : getIndexByName(calendar._lowerDays[count == 3 ? 'namesAbbr' : 'names'], true);\n if (day === null || outOfRange(day, 1, 31)) {\n return null;\n }\n } else if (ch === 'M') {\n count = lookAhead('M');\n if (!calendar._lowerMonths) {\n calendar._lowerMonths = lowerLocalInfo(calendar.months);\n }\n month = count < 3 ? getNumber(2) : getIndexByName(calendar._lowerMonths[count == 3 ? 'namesAbbr' : 'names'], true);\n if (month === null || outOfRange(month, 1, 12)) {\n return null;\n }\n month -= 1;\n } else if (ch === 'y') {\n count = lookAhead('y');\n year = getNumber(count);\n if (year === null) {\n return null;\n }\n if (count == 2) {\n if (typeof twoDigitYearMax === 'string') {\n twoDigitYearMax = defaultYear + parseInt(twoDigitYearMax, 10);\n }\n year = defaultYear - defaultYear % 100 + year;\n if (year > twoDigitYearMax) {\n year -= 100;\n }\n }\n } else if (ch === 'h') {\n lookAhead('h');\n hours = getNumber(2);\n if (hours == 12) {\n hours = 0;\n }\n if (hours === null || outOfRange(hours, 0, 11)) {\n return null;\n }\n } else if (ch === 'H') {\n lookAhead('H');\n hours = getNumber(2);\n if (hours === null || outOfRange(hours, 0, 23)) {\n return null;\n }\n } else if (ch === 'm') {\n lookAhead('m');\n minutes = getNumber(2);\n if (minutes === null || outOfRange(minutes, 0, 59)) {\n return null;\n }\n } else if (ch === 's') {\n lookAhead('s');\n seconds = getNumber(2);\n if (seconds === null || outOfRange(seconds, 0, 59)) {\n return null;\n }\n } else if (ch === 'f') {\n count = lookAhead('f');\n match = value.substr(valueIdx, count).match(numberRegExp[3]);\n milliseconds = getNumber(count);\n if (milliseconds !== null) {\n milliseconds = parseFloat('0.' + match[0], 10);\n milliseconds = kendo._round(milliseconds, 3);\n milliseconds *= 1000;\n }\n if (milliseconds === null || outOfRange(milliseconds, 0, 999)) {\n return null;\n }\n } else if (ch === 't') {\n count = lookAhead('t');\n amDesignators = calendar.AM;\n pmDesignators = calendar.PM;\n if (count === 1) {\n amDesignators = mapDesignators(amDesignators);\n pmDesignators = mapDesignators(pmDesignators);\n }\n pmHour = getIndexByName(pmDesignators);\n if (!pmHour && !getIndexByName(amDesignators)) {\n return null;\n }\n } else if (ch === 'z') {\n UTC = true;\n count = lookAhead('z');\n if (value.substr(valueIdx, 1) === 'Z') {\n checkLiteral();\n continue;\n }\n matches = value.substr(valueIdx, 6).match(count > 2 ? longTimeZoneRegExp : shortTimeZoneRegExp);\n if (!matches) {\n return null;\n }\n matches = matches[0].split(':');\n hoursOffset = matches[0];\n minutesOffset = matches[1];\n if (!minutesOffset && hoursOffset.length > 3) {\n valueIdx = hoursOffset.length - 2;\n minutesOffset = hoursOffset.substring(valueIdx);\n hoursOffset = hoursOffset.substring(0, valueIdx);\n }\n hoursOffset = parseInt(hoursOffset, 10);\n if (outOfRange(hoursOffset, -12, 13)) {\n return null;\n }\n if (count > 2) {\n minutesOffset = matches[0][0] + minutesOffset;\n minutesOffset = parseInt(minutesOffset, 10);\n if (isNaN(minutesOffset) || outOfRange(minutesOffset, -59, 59)) {\n return null;\n }\n }\n } else if (ch === '\\'') {\n literal = true;\n checkLiteral();\n } else if (!checkLiteral()) {\n return null;\n }\n }\n }\n if (strict && !/^\\s*$/.test(value.substr(valueIdx))) {\n return null;\n }\n hasTime = hours !== null || minutes !== null || seconds || null;\n if (year === null && month === null && day === null && hasTime) {\n year = defaultYear;\n month = date.getMonth();\n day = date.getDate();\n } else {\n if (year === null) {\n year = defaultYear;\n }\n if (day === null) {\n day = 1;\n }\n }\n if (pmHour && hours < 12) {\n hours += 12;\n }\n if (UTC) {\n if (hoursOffset) {\n hours += -hoursOffset;\n }\n if (minutesOffset) {\n minutes += -minutesOffset;\n }\n value = new Date(Date.UTC(year, month, day, hours, minutes, seconds, milliseconds));\n } else {\n value = new Date(year, month, day, hours, minutes, seconds, milliseconds);\n adjustDST(value, hours);\n }\n if (year < 100) {\n value.setFullYear(year);\n }\n if (value.getDate() !== day && UTC === undefined) {\n return null;\n }\n return value;\n }\n function parseMicrosoftFormatOffset(offset) {\n var sign = offset.substr(0, 1) === '-' ? -1 : 1;\n offset = offset.substring(1);\n offset = parseInt(offset.substr(0, 2), 10) * 60 + parseInt(offset.substring(2), 10);\n return sign * offset;\n }\n function getDefaultFormats(culture) {\n var length = math.max(FORMATS_SEQUENCE.length, STANDARD_FORMATS.length);\n var calendar = culture.calendar || culture.calendars.standard;\n var patterns = calendar.patterns;\n var cultureFormats, formatIdx, idx;\n var formats = [];\n for (idx = 0; idx < length; idx++) {\n cultureFormats = FORMATS_SEQUENCE[idx];\n for (formatIdx = 0; formatIdx < cultureFormats.length; formatIdx++) {\n formats.push(patterns[cultureFormats[formatIdx]]);\n }\n formats = formats.concat(STANDARD_FORMATS[idx]);\n }\n return formats;\n }\n function internalParseDate(value, formats, culture, strict) {\n if (objectToString.call(value) === '[object Date]') {\n return value;\n }\n var idx = 0;\n var date = null;\n var length;\n var tzoffset;\n if (value && value.indexOf('/D') === 0) {\n date = dateRegExp.exec(value);\n if (date) {\n date = date[1];\n tzoffset = offsetRegExp.exec(date.substring(1));\n date = new Date(parseInt(date, 10));\n if (tzoffset) {\n tzoffset = parseMicrosoftFormatOffset(tzoffset[0]);\n date = kendo.timezone.apply(date, 0);\n date = kendo.timezone.convert(date, 0, -1 * tzoffset);\n }\n return date;\n }\n }\n culture = kendo.getCulture(culture);\n if (!formats) {\n formats = getDefaultFormats(culture);\n }\n formats = isArray(formats) ? formats : [formats];\n length = formats.length;\n for (; idx < length; idx++) {\n date = parseExact(value, formats[idx], culture, strict);\n if (date) {\n return date;\n }\n }\n return date;\n }\n kendo.parseDate = function (value, formats, culture) {\n return internalParseDate(value, formats, culture, false);\n };\n kendo.parseExactDate = function (value, formats, culture) {\n return internalParseDate(value, formats, culture, true);\n };\n kendo.parseInt = function (value, culture) {\n var result = kendo.parseFloat(value, culture);\n if (result) {\n result = result | 0;\n }\n return result;\n };\n kendo.parseFloat = function (value, culture, format) {\n if (!value && value !== 0) {\n return null;\n }\n if (typeof value === NUMBER) {\n return value;\n }\n value = value.toString();\n culture = kendo.getCulture(culture);\n var number = culture.numberFormat, percent = number.percent, currency = number.currency, symbol = currency.symbol, percentSymbol = percent.symbol, negative = value.indexOf('-'), parts, isPercent;\n if (exponentRegExp.test(value)) {\n value = parseFloat(value.replace(number['.'], '.'));\n if (isNaN(value)) {\n value = null;\n }\n return value;\n }\n if (negative > 0) {\n return null;\n } else {\n negative = negative > -1;\n }\n if (value.indexOf(symbol) > -1 || format && format.toLowerCase().indexOf('c') > -1) {\n number = currency;\n parts = number.pattern[0].replace('$', symbol).split('n');\n if (value.indexOf(parts[0]) > -1 && value.indexOf(parts[1]) > -1) {\n value = value.replace(parts[0], '').replace(parts[1], '');\n negative = true;\n }\n } else if (value.indexOf(percentSymbol) > -1) {\n isPercent = true;\n number = percent;\n symbol = percentSymbol;\n }\n value = value.replace('-', '').replace(symbol, '').replace(nonBreakingSpaceRegExp, ' ').split(number[','].replace(nonBreakingSpaceRegExp, ' ')).join('').replace(number['.'], '.');\n value = parseFloat(value);\n if (isNaN(value)) {\n value = null;\n } else if (negative) {\n value *= -1;\n }\n if (value && isPercent) {\n value /= 100;\n }\n return value;\n };\n }());\n function getShadows(element) {\n var shadow = element.css(kendo.support.transitions.css + 'box-shadow') || element.css('box-shadow'), radius = shadow ? shadow.match(boxShadowRegExp) || [\n 0,\n 0,\n 0,\n 0,\n 0\n ] : [\n 0,\n 0,\n 0,\n 0,\n 0\n ], blur = math.max(+radius[3], +(radius[4] || 0));\n return {\n left: -radius[1] + blur,\n right: +radius[1] + blur,\n bottom: +radius[2] + blur\n };\n }\n function wrap(element, autosize) {\n var browser = support.browser, percentage, outerWidth = kendo._outerWidth, outerHeight = kendo._outerHeight, parent = element.parent(), windowOuterWidth = outerWidth(window);\n parent.removeClass('k-animation-container-sm');\n if (!parent.hasClass('k-animation-container')) {\n var width = element[0].style.width, height = element[0].style.height, percentWidth = percentRegExp.test(width), percentHeight = percentRegExp.test(height), forceWidth = element.hasClass('k-tooltip') || element.is('.k-menu-horizontal.k-context-menu');\n percentage = percentWidth || percentHeight;\n if (!percentWidth && (!autosize || autosize && width || forceWidth)) {\n width = autosize ? outerWidth(element) + 1 : outerWidth(element);\n }\n if (!percentHeight && (!autosize || autosize && height) || element.is('.k-menu-horizontal.k-context-menu')) {\n height = outerHeight(element);\n }\n element.wrap($('
        ').addClass('k-animation-container').css({\n width: width,\n height: height\n }));\n parent = element.parent();\n if (percentage) {\n element.css({\n width: '100%',\n height: '100%',\n boxSizing: 'border-box',\n mozBoxSizing: 'border-box',\n webkitBoxSizing: 'border-box'\n });\n }\n } else {\n wrapResize(element, autosize);\n }\n if (windowOuterWidth < outerWidth(parent)) {\n parent.addClass('k-animation-container-sm');\n wrapResize(element, autosize);\n }\n if (browser.msie && math.floor(browser.version) <= 7) {\n element.css({ zoom: 1 });\n element.children('.k-menu').width(element.width());\n }\n return parent;\n }\n function wrapResize(element, autosize) {\n var percentage, outerWidth = kendo._outerWidth, outerHeight = kendo._outerHeight, wrapper = element.parent('.k-animation-container'), wrapperStyle = wrapper[0].style;\n if (wrapper.is(':hidden')) {\n wrapper.css({\n display: '',\n position: ''\n });\n }\n percentage = percentRegExp.test(wrapperStyle.width) || percentRegExp.test(wrapperStyle.height);\n if (!percentage) {\n wrapper.css({\n width: autosize ? outerWidth(element) + 1 : outerWidth(element),\n height: outerHeight(element),\n boxSizing: 'content-box',\n mozBoxSizing: 'content-box',\n webkitBoxSizing: 'content-box'\n });\n }\n }\n function deepExtend(destination) {\n var i = 1, length = arguments.length;\n for (i = 1; i < length; i++) {\n deepExtendOne(destination, arguments[i]);\n }\n return destination;\n }\n function deepExtendOne(destination, source) {\n var ObservableArray = kendo.data.ObservableArray, LazyObservableArray = kendo.data.LazyObservableArray, DataSource = kendo.data.DataSource, HierarchicalDataSource = kendo.data.HierarchicalDataSource, property, propValue, propType, propInit, destProp;\n for (property in source) {\n propValue = source[property];\n propType = typeof propValue;\n if (propType === OBJECT && propValue !== null) {\n propInit = propValue.constructor;\n } else {\n propInit = null;\n }\n if (propInit && propInit !== Array && propInit !== ObservableArray && propInit !== LazyObservableArray && propInit !== DataSource && propInit !== HierarchicalDataSource && propInit !== RegExp && (!kendo.isFunction(window.ArrayBuffer) || propInit !== ArrayBuffer)) {\n if (propValue instanceof Date) {\n destination[property] = new Date(propValue.getTime());\n } else if (isFunction(propValue.clone)) {\n destination[property] = propValue.clone();\n } else {\n destProp = destination[property];\n if (typeof destProp === OBJECT) {\n destination[property] = destProp || {};\n } else {\n destination[property] = {};\n }\n deepExtendOne(destination[property], propValue);\n }\n } else if (propType !== UNDEFINED) {\n destination[property] = propValue;\n }\n }\n return destination;\n }\n function testRx(agent, rxs, dflt) {\n for (var rx in rxs) {\n if (rxs.hasOwnProperty(rx) && rxs[rx].test(agent)) {\n return rx;\n }\n }\n return dflt !== undefined ? dflt : agent;\n }\n function toHyphens(str) {\n return str.replace(/([a-z][A-Z])/g, function (g) {\n return g.charAt(0) + '-' + g.charAt(1).toLowerCase();\n });\n }\n function toCamelCase(str) {\n return str.replace(/\\-(\\w)/g, function (strMatch, g1) {\n return g1.toUpperCase();\n });\n }\n function getComputedStyles(element, properties) {\n var styles = {}, computedStyle;\n if (document.defaultView && document.defaultView.getComputedStyle) {\n computedStyle = document.defaultView.getComputedStyle(element, '');\n if (properties) {\n $.each(properties, function (idx, value) {\n styles[value] = computedStyle.getPropertyValue(value);\n });\n }\n } else {\n computedStyle = element.currentStyle;\n if (properties) {\n $.each(properties, function (idx, value) {\n styles[value] = computedStyle[toCamelCase(value)];\n });\n }\n }\n if (!kendo.size(styles)) {\n styles = computedStyle;\n }\n return styles;\n }\n function isScrollable(element) {\n if (element && element.className && typeof element.className === 'string' && element.className.indexOf('k-auto-scrollable') > -1) {\n return true;\n }\n var overflow = getComputedStyles(element, ['overflow']).overflow;\n return overflow == 'auto' || overflow == 'scroll';\n }\n function scrollLeft(element, value) {\n var webkit = support.browser.webkit;\n var mozila = support.browser.mozilla;\n var el = element instanceof $ ? element[0] : element;\n var isRtl;\n if (!element) {\n return;\n }\n isRtl = support.isRtl(element);\n if (value !== undefined) {\n if (isRtl && webkit) {\n el.scrollLeft = el.scrollWidth - el.clientWidth - value;\n } else if (isRtl && mozila) {\n el.scrollLeft = -value;\n } else {\n el.scrollLeft = value;\n }\n } else {\n if (isRtl && webkit) {\n return el.scrollWidth - el.clientWidth - el.scrollLeft;\n } else {\n return Math.abs(el.scrollLeft);\n }\n }\n }\n (function () {\n support._scrollbar = undefined;\n support.scrollbar = function (refresh) {\n if (!isNaN(support._scrollbar) && !refresh) {\n return support._scrollbar;\n } else {\n var div = document.createElement('div'), result;\n div.style.cssText = 'overflow:scroll;overflow-x:hidden;zoom:1;clear:both;display:block';\n div.innerHTML = ' ';\n document.body.appendChild(div);\n support._scrollbar = result = div.offsetWidth - div.scrollWidth;\n document.body.removeChild(div);\n return result;\n }\n };\n support.isRtl = function (element) {\n return $(element).closest('.k-rtl').length > 0;\n };\n var table = document.createElement('table');\n try {\n table.innerHTML = '';\n support.tbodyInnerHtml = true;\n } catch (e) {\n support.tbodyInnerHtml = false;\n }\n support.touch = 'ontouchstart' in window;\n var docStyle = document.documentElement.style;\n var transitions = support.transitions = false, transforms = support.transforms = false, elementProto = 'HTMLElement' in window ? HTMLElement.prototype : [];\n support.hasHW3D = 'WebKitCSSMatrix' in window && 'm11' in new window.WebKitCSSMatrix() || 'MozPerspective' in docStyle || 'msPerspective' in docStyle;\n support.cssFlexbox = 'flexWrap' in docStyle || 'WebkitFlexWrap' in docStyle || 'msFlexWrap' in docStyle;\n each([\n 'Moz',\n 'webkit',\n 'O',\n 'ms'\n ], function () {\n var prefix = this.toString(), hasTransitions = typeof table.style[prefix + 'Transition'] === STRING;\n if (hasTransitions || typeof table.style[prefix + 'Transform'] === STRING) {\n var lowPrefix = prefix.toLowerCase();\n transforms = {\n css: lowPrefix != 'ms' ? '-' + lowPrefix + '-' : '',\n prefix: prefix,\n event: lowPrefix === 'o' || lowPrefix === 'webkit' ? lowPrefix : ''\n };\n if (hasTransitions) {\n transitions = transforms;\n transitions.event = transitions.event ? transitions.event + 'TransitionEnd' : 'transitionend';\n }\n return false;\n }\n });\n table = null;\n support.transforms = transforms;\n support.transitions = transitions;\n support.devicePixelRatio = window.devicePixelRatio === undefined ? 1 : window.devicePixelRatio;\n try {\n support.screenWidth = window.outerWidth || window.screen ? window.screen.availWidth : window.innerWidth;\n support.screenHeight = window.outerHeight || window.screen ? window.screen.availHeight : window.innerHeight;\n } catch (e) {\n support.screenWidth = window.screen.availWidth;\n support.screenHeight = window.screen.availHeight;\n }\n support.detectOS = function (ua) {\n var os = false, minorVersion, match = [], notAndroidPhone = !/mobile safari/i.test(ua), agentRxs = {\n wp: /(Windows Phone(?: OS)?)\\s(\\d+)\\.(\\d+(\\.\\d+)?)/,\n fire: /(Silk)\\/(\\d+)\\.(\\d+(\\.\\d+)?)/,\n android: /(Android|Android.*(?:Opera|Firefox).*?\\/)\\s*(\\d+)\\.?(\\d+(\\.\\d+)?)?/,\n iphone: /(iPhone|iPod).*OS\\s+(\\d+)[\\._]([\\d\\._]+)/,\n ipad: /(iPad).*OS\\s+(\\d+)[\\._]([\\d_]+)/,\n meego: /(MeeGo).+NokiaBrowser\\/(\\d+)\\.([\\d\\._]+)/,\n webos: /(webOS)\\/(\\d+)\\.(\\d+(\\.\\d+)?)/,\n blackberry: /(BlackBerry|BB10).*?Version\\/(\\d+)\\.(\\d+(\\.\\d+)?)/,\n playbook: /(PlayBook).*?Tablet\\s*OS\\s*(\\d+)\\.(\\d+(\\.\\d+)?)/,\n windows: /(MSIE)\\s+(\\d+)\\.(\\d+(\\.\\d+)?)/,\n tizen: /(tizen).*?Version\\/(\\d+)\\.(\\d+(\\.\\d+)?)/i,\n sailfish: /(sailfish).*rv:(\\d+)\\.(\\d+(\\.\\d+)?).*firefox/i,\n ffos: /(Mobile).*rv:(\\d+)\\.(\\d+(\\.\\d+)?).*Firefox/\n }, osRxs = {\n ios: /^i(phone|pad|pod)$/i,\n android: /^android|fire$/i,\n blackberry: /^blackberry|playbook/i,\n windows: /windows/,\n wp: /wp/,\n flat: /sailfish|ffos|tizen/i,\n meego: /meego/\n }, formFactorRxs = { tablet: /playbook|ipad|fire/i }, browserRxs = {\n omini: /Opera\\sMini/i,\n omobile: /Opera\\sMobi/i,\n firefox: /Firefox|Fennec/i,\n mobilesafari: /version\\/.*safari/i,\n ie: /MSIE|Windows\\sPhone/i,\n chrome: /chrome|crios/i,\n webkit: /webkit/i\n };\n for (var agent in agentRxs) {\n if (agentRxs.hasOwnProperty(agent)) {\n match = ua.match(agentRxs[agent]);\n if (match) {\n if (agent == 'windows' && 'plugins' in navigator) {\n return false;\n }\n os = {};\n os.device = agent;\n os.tablet = testRx(agent, formFactorRxs, false);\n os.browser = testRx(ua, browserRxs, 'default');\n os.name = testRx(agent, osRxs);\n os[os.name] = true;\n os.majorVersion = match[2];\n os.minorVersion = (match[3] || '0').replace('_', '.');\n minorVersion = os.minorVersion.replace('.', '').substr(0, 2);\n os.flatVersion = os.majorVersion + minorVersion + new Array(3 - (minorVersion.length < 3 ? minorVersion.length : 2)).join('0');\n os.cordova = typeof window.PhoneGap !== UNDEFINED || typeof window.cordova !== UNDEFINED;\n os.appMode = window.navigator.standalone || /file|local|wmapp/.test(window.location.protocol) || os.cordova;\n if (os.android && (support.devicePixelRatio < 1.5 && os.flatVersion < 400 || notAndroidPhone) && (support.screenWidth > 800 || support.screenHeight > 800)) {\n os.tablet = agent;\n }\n break;\n }\n }\n }\n return os;\n };\n var mobileOS = support.mobileOS = support.detectOS(navigator.userAgent);\n support.wpDevicePixelRatio = mobileOS.wp ? screen.width / 320 : 0;\n support.hasNativeScrolling = false;\n if (mobileOS.ios || mobileOS.android && mobileOS.majorVersion > 2 || mobileOS.wp) {\n support.hasNativeScrolling = mobileOS;\n }\n support.delayedClick = function () {\n if (support.touch) {\n if (mobileOS.ios) {\n return true;\n }\n if (mobileOS.android) {\n if (!support.browser.chrome) {\n return true;\n }\n if (support.browser.version < 32) {\n return false;\n }\n return !($('meta[name=viewport]').attr('content') || '').match(/user-scalable=no/i);\n }\n }\n return false;\n };\n support.mouseAndTouchPresent = support.touch && !(support.mobileOS.ios || support.mobileOS.android);\n support.detectBrowser = function (ua) {\n var browser = false, match = [], browserRxs = {\n edge: /(edge)[ \\/]([\\w.]+)/i,\n webkit: /(chrome|crios)[ \\/]([\\w.]+)/i,\n safari: /(webkit)[ \\/]([\\w.]+)/i,\n opera: /(opera)(?:.*version|)[ \\/]([\\w.]+)/i,\n msie: /(msie\\s|trident.*? rv:)([\\w.]+)/i,\n mozilla: /(mozilla)(?:.*? rv:([\\w.]+)|)/i\n };\n for (var agent in browserRxs) {\n if (browserRxs.hasOwnProperty(agent)) {\n match = ua.match(browserRxs[agent]);\n if (match) {\n browser = {};\n browser[agent] = true;\n browser[match[1].toLowerCase().split(' ')[0].split('/')[0]] = true;\n browser.version = parseInt(document.documentMode || match[2], 10);\n break;\n }\n }\n }\n return browser;\n };\n support.browser = support.detectBrowser(navigator.userAgent);\n support.detectClipboardAccess = function () {\n var commands = {\n copy: document.queryCommandSupported ? document.queryCommandSupported('copy') : false,\n cut: document.queryCommandSupported ? document.queryCommandSupported('cut') : false,\n paste: document.queryCommandSupported ? document.queryCommandSupported('paste') : false\n };\n if (support.browser.chrome) {\n commands.paste = false;\n if (support.browser.version >= 43) {\n commands.copy = true;\n commands.cut = true;\n }\n }\n return commands;\n };\n support.clipboard = support.detectClipboardAccess();\n support.zoomLevel = function () {\n try {\n var browser = support.browser;\n var ie11WidthCorrection = 0;\n var docEl = document.documentElement;\n if (browser.msie && browser.version == 11 && docEl.scrollHeight > docEl.clientHeight && !support.touch) {\n ie11WidthCorrection = support.scrollbar();\n }\n return support.touch ? docEl.clientWidth / window.innerWidth : browser.msie && browser.version >= 10 ? ((top || window).document.documentElement.offsetWidth + ie11WidthCorrection) / (top || window).innerWidth : 1;\n } catch (e) {\n return 1;\n }\n };\n support.cssBorderSpacing = typeof docStyle.borderSpacing != 'undefined' && !(support.browser.msie && support.browser.version < 8);\n (function (browser) {\n var cssClass = '', docElement = $(document.documentElement), majorVersion = parseInt(browser.version, 10);\n if (browser.msie) {\n cssClass = 'ie';\n } else if (browser.mozilla) {\n cssClass = 'ff';\n } else if (browser.safari) {\n cssClass = 'safari';\n } else if (browser.webkit) {\n cssClass = 'webkit';\n } else if (browser.opera) {\n cssClass = 'opera';\n } else if (browser.edge) {\n cssClass = 'edge';\n }\n if (cssClass) {\n cssClass = 'k-' + cssClass + ' k-' + cssClass + majorVersion;\n }\n if (support.mobileOS) {\n cssClass += ' k-mobile';\n }\n if (!support.cssFlexbox) {\n cssClass += ' k-no-flexbox';\n }\n docElement.addClass(cssClass);\n }(support.browser));\n support.eventCapture = document.documentElement.addEventListener;\n var input = document.createElement('input');\n support.placeholder = 'placeholder' in input;\n support.propertyChangeEvent = 'onpropertychange' in input;\n support.input = function () {\n var types = [\n 'number',\n 'date',\n 'time',\n 'month',\n 'week',\n 'datetime',\n 'datetime-local'\n ];\n var length = types.length;\n var value = 'test';\n var result = {};\n var idx = 0;\n var type;\n for (; idx < length; idx++) {\n type = types[idx];\n input.setAttribute('type', type);\n input.value = value;\n result[type.replace('-', '')] = input.type !== 'text' && input.value !== value;\n }\n return result;\n }();\n input.style.cssText = 'float:left;';\n support.cssFloat = !!input.style.cssFloat;\n input = null;\n support.stableSort = function () {\n var threshold = 513;\n var sorted = [{\n index: 0,\n field: 'b'\n }];\n for (var i = 1; i < threshold; i++) {\n sorted.push({\n index: i,\n field: 'a'\n });\n }\n sorted.sort(function (a, b) {\n return a.field > b.field ? 1 : a.field < b.field ? -1 : 0;\n });\n return sorted[0].index === 1;\n }();\n support.matchesSelector = elementProto.webkitMatchesSelector || elementProto.mozMatchesSelector || elementProto.msMatchesSelector || elementProto.oMatchesSelector || elementProto.matchesSelector || elementProto.matches || function (selector) {\n var nodeList = document.querySelectorAll ? (this.parentNode || document).querySelectorAll(selector) || [] : $(selector), i = nodeList.length;\n while (i--) {\n if (nodeList[i] == this) {\n return true;\n }\n }\n return false;\n };\n support.matchMedia = 'matchMedia' in window;\n support.pushState = window.history && window.history.pushState;\n var documentMode = document.documentMode;\n support.hashChange = 'onhashchange' in window && !(support.browser.msie && (!documentMode || documentMode <= 8));\n support.customElements = 'registerElement' in window.document;\n var chrome = support.browser.chrome, mobileChrome = support.browser.crios, mozilla = support.browser.mozilla, safari = support.browser.safari;\n support.msPointers = !chrome && window.MSPointerEvent;\n support.pointers = !chrome && !mobileChrome && !mozilla && !safari && window.PointerEvent;\n support.kineticScrollNeeded = mobileOS && (support.touch || support.msPointers || support.pointers);\n }());\n function size(obj) {\n var result = 0, key;\n for (key in obj) {\n if (obj.hasOwnProperty(key) && key != 'toJSON') {\n result++;\n }\n }\n return result;\n }\n function getOffset(element, type, positioned) {\n if (!type) {\n type = 'offset';\n }\n var offset = element[type]();\n var result = {\n top: offset.top,\n right: offset.right,\n bottom: offset.bottom,\n left: offset.left\n };\n if (support.browser.msie && (support.pointers || support.msPointers) && !positioned) {\n var sign = support.isRtl(element) ? 1 : -1;\n result.top -= window.pageYOffset - document.documentElement.scrollTop;\n result.left -= window.pageXOffset + sign * document.documentElement.scrollLeft;\n }\n return result;\n }\n var directions = {\n left: { reverse: 'right' },\n right: { reverse: 'left' },\n down: { reverse: 'up' },\n up: { reverse: 'down' },\n top: { reverse: 'bottom' },\n bottom: { reverse: 'top' },\n 'in': { reverse: 'out' },\n out: { reverse: 'in' }\n };\n function parseEffects(input) {\n var effects = {};\n each(typeof input === 'string' ? input.split(' ') : input, function (idx) {\n effects[idx] = this;\n });\n return effects;\n }\n function fx(element) {\n return new kendo.effects.Element(element);\n }\n var effects = {};\n $.extend(effects, {\n enabled: true,\n Element: function (element) {\n this.element = $(element);\n },\n promise: function (element, options) {\n if (!element.is(':visible')) {\n element.css({ display: element.data('olddisplay') || 'block' }).css('display');\n }\n if (options.hide) {\n element.data('olddisplay', element.css('display')).hide();\n }\n if (options.init) {\n options.init();\n }\n if (options.completeCallback) {\n options.completeCallback(element);\n }\n element.dequeue();\n },\n disable: function () {\n this.enabled = false;\n this.promise = this.promiseShim;\n },\n enable: function () {\n this.enabled = true;\n this.promise = this.animatedPromise;\n }\n });\n effects.promiseShim = effects.promise;\n function prepareAnimationOptions(options, duration, reverse, complete) {\n if (typeof options === STRING) {\n if (isFunction(duration)) {\n complete = duration;\n duration = 400;\n reverse = false;\n }\n if (isFunction(reverse)) {\n complete = reverse;\n reverse = false;\n }\n if (typeof duration === BOOLEAN) {\n reverse = duration;\n duration = 400;\n }\n options = {\n effects: options,\n duration: duration,\n reverse: reverse,\n complete: complete\n };\n }\n return extend({\n effects: {},\n duration: 400,\n reverse: false,\n init: noop,\n teardown: noop,\n hide: false\n }, options, {\n completeCallback: options.complete,\n complete: noop\n });\n }\n function animate(element, options, duration, reverse, complete) {\n var idx = 0, length = element.length, instance;\n for (; idx < length; idx++) {\n instance = $(element[idx]);\n instance.queue(function () {\n effects.promise(instance, prepareAnimationOptions(options, duration, reverse, complete));\n });\n }\n return element;\n }\n function toggleClass(element, classes, options, add) {\n if (classes) {\n classes = classes.split(' ');\n each(classes, function (idx, value) {\n element.toggleClass(value, add);\n });\n }\n return element;\n }\n if (!('kendoAnimate' in $.fn)) {\n extend($.fn, {\n kendoStop: function (clearQueue, gotoEnd) {\n return this.stop(clearQueue, gotoEnd);\n },\n kendoAnimate: function (options, duration, reverse, complete) {\n return animate(this, options, duration, reverse, complete);\n },\n kendoAddClass: function (classes, options) {\n return kendo.toggleClass(this, classes, options, true);\n },\n kendoRemoveClass: function (classes, options) {\n return kendo.toggleClass(this, classes, options, false);\n },\n kendoToggleClass: function (classes, options, toggle) {\n return kendo.toggleClass(this, classes, options, toggle);\n }\n });\n }\n var ampRegExp = /&/g, ltRegExp = //g;\n function htmlEncode(value) {\n return ('' + value).replace(ampRegExp, '&').replace(ltRegExp, '<').replace(gtRegExp, '>').replace(quoteRegExp, '"').replace(aposRegExp, ''');\n }\n function unescape(value) {\n var template;\n try {\n template = window.decodeURIComponent(value);\n } catch (error) {\n template = value.replace(/%u([\\dA-F]{4})|%([\\dA-F]{2})/gi, function (_, m1, m2) {\n return String.fromCharCode(parseInt('0x' + (m1 || m2), 16));\n });\n }\n return template;\n }\n var eventTarget = function (e) {\n return e.target;\n };\n if (support.touch) {\n eventTarget = function (e) {\n var touches = 'originalEvent' in e ? e.originalEvent.changedTouches : 'changedTouches' in e ? e.changedTouches : null;\n return touches ? document.elementFromPoint(touches[0].clientX, touches[0].clientY) : e.target;\n };\n each([\n 'swipe',\n 'swipeLeft',\n 'swipeRight',\n 'swipeUp',\n 'swipeDown',\n 'doubleTap',\n 'tap'\n ], function (m, value) {\n $.fn[value] = function (callback) {\n return this.bind(value, callback);\n };\n });\n }\n if (support.touch) {\n if (!support.mobileOS) {\n support.mousedown = 'mousedown touchstart';\n support.mouseup = 'mouseup touchend';\n support.mousemove = 'mousemove touchmove';\n support.mousecancel = 'mouseleave touchcancel';\n support.click = 'click';\n support.resize = 'resize';\n } else {\n support.mousedown = 'touchstart';\n support.mouseup = 'touchend';\n support.mousemove = 'touchmove';\n support.mousecancel = 'touchcancel';\n support.click = 'touchend';\n support.resize = 'orientationchange';\n }\n } else if (support.pointers) {\n support.mousemove = 'pointermove';\n support.mousedown = 'pointerdown';\n support.mouseup = 'pointerup';\n support.mousecancel = 'pointercancel';\n support.click = 'pointerup';\n support.resize = 'orientationchange resize';\n } else if (support.msPointers) {\n support.mousemove = 'MSPointerMove';\n support.mousedown = 'MSPointerDown';\n support.mouseup = 'MSPointerUp';\n support.mousecancel = 'MSPointerCancel';\n support.click = 'MSPointerUp';\n support.resize = 'orientationchange resize';\n } else {\n support.mousemove = 'mousemove';\n support.mousedown = 'mousedown';\n support.mouseup = 'mouseup';\n support.mousecancel = 'mouseleave';\n support.click = 'click';\n support.resize = 'resize';\n }\n var wrapExpression = function (members, paramName) {\n var result = paramName || 'd', index, idx, length, member, count = 1;\n for (idx = 0, length = members.length; idx < length; idx++) {\n member = members[idx];\n if (member !== '') {\n index = member.indexOf('[');\n if (index !== 0) {\n if (index == -1) {\n member = '.' + member;\n } else {\n count++;\n member = '.' + member.substring(0, index) + ' || {})' + member.substring(index);\n }\n }\n count++;\n result += member + (idx < length - 1 ? ' || {})' : ')');\n }\n }\n return new Array(count).join('(') + result;\n }, localUrlRe = /^([a-z]+:)?\\/\\//i;\n extend(kendo, {\n widgets: [],\n _widgetRegisteredCallbacks: [],\n ui: kendo.ui || {},\n fx: kendo.fx || fx,\n effects: kendo.effects || effects,\n mobile: kendo.mobile || {},\n data: kendo.data || {},\n dataviz: kendo.dataviz || {},\n drawing: kendo.drawing || {},\n spreadsheet: { messages: {} },\n keys: {\n INSERT: 45,\n DELETE: 46,\n BACKSPACE: 8,\n TAB: 9,\n ENTER: 13,\n ESC: 27,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n END: 35,\n HOME: 36,\n SPACEBAR: 32,\n PAGEUP: 33,\n PAGEDOWN: 34,\n F2: 113,\n F10: 121,\n F12: 123,\n NUMPAD_PLUS: 107,\n NUMPAD_MINUS: 109,\n NUMPAD_DOT: 110\n },\n support: kendo.support || support,\n animate: kendo.animate || animate,\n ns: '',\n attr: function (value) {\n return 'data-' + kendo.ns + value;\n },\n getShadows: getShadows,\n wrap: wrap,\n deepExtend: deepExtend,\n getComputedStyles: getComputedStyles,\n isScrollable: isScrollable,\n scrollLeft: scrollLeft,\n size: size,\n toCamelCase: toCamelCase,\n toHyphens: toHyphens,\n getOffset: kendo.getOffset || getOffset,\n parseEffects: kendo.parseEffects || parseEffects,\n toggleClass: kendo.toggleClass || toggleClass,\n directions: kendo.directions || directions,\n Observable: Observable,\n Class: Class,\n Template: Template,\n template: proxy(Template.compile, Template),\n render: proxy(Template.render, Template),\n stringify: proxy(JSON.stringify, JSON),\n eventTarget: eventTarget,\n htmlEncode: htmlEncode,\n unescape: unescape,\n isLocalUrl: function (url) {\n return url && !localUrlRe.test(url);\n },\n expr: function (expression, safe, paramName) {\n expression = expression || '';\n if (typeof safe == STRING) {\n paramName = safe;\n safe = false;\n }\n paramName = paramName || 'd';\n if (expression && expression.charAt(0) !== '[') {\n expression = '.' + expression;\n }\n if (safe) {\n expression = expression.replace(/\"([^.]*)\\.([^\"]*)\"/g, '\"$1_$DOT$_$2\"');\n expression = expression.replace(/'([^.]*)\\.([^']*)'/g, '\\'$1_$DOT$_$2\\'');\n expression = wrapExpression(expression.split('.'), paramName);\n expression = expression.replace(/_\\$DOT\\$_/g, '.');\n } else {\n expression = paramName + expression;\n }\n return expression;\n },\n getter: function (expression, safe) {\n var key = expression + safe;\n return getterCache[key] = getterCache[key] || new Function('d', 'return ' + kendo.expr(expression, safe));\n },\n setter: function (expression) {\n return setterCache[expression] = setterCache[expression] || new Function('d,value', kendo.expr(expression) + '=value');\n },\n accessor: function (expression) {\n return {\n get: kendo.getter(expression),\n set: kendo.setter(expression)\n };\n },\n guid: function () {\n var id = '', i, random;\n for (i = 0; i < 32; i++) {\n random = math.random() * 16 | 0;\n if (i == 8 || i == 12 || i == 16 || i == 20) {\n id += '-';\n }\n id += (i == 12 ? 4 : i == 16 ? random & 3 | 8 : random).toString(16);\n }\n return id;\n },\n roleSelector: function (role) {\n return role.replace(/(\\S+)/g, '[' + kendo.attr('role') + '=$1],').slice(0, -1);\n },\n directiveSelector: function (directives) {\n var selectors = directives.split(' ');\n if (selectors) {\n for (var i = 0; i < selectors.length; i++) {\n if (selectors[i] != 'view') {\n selectors[i] = selectors[i].replace(/(\\w*)(view|bar|strip|over)$/, '$1-$2');\n }\n }\n }\n return selectors.join(' ').replace(/(\\S+)/g, 'kendo-mobile-$1,').slice(0, -1);\n },\n triggeredByInput: function (e) {\n return /^(label|input|textarea|select)$/i.test(e.target.tagName);\n },\n onWidgetRegistered: function (callback) {\n for (var i = 0, len = kendo.widgets.length; i < len; i++) {\n callback(kendo.widgets[i]);\n }\n kendo._widgetRegisteredCallbacks.push(callback);\n },\n logToConsole: function (message, type) {\n var console = window.console;\n if (!kendo.suppressLog && typeof console != 'undefined' && console.log) {\n console[type || 'log'](message);\n }\n }\n });\n var Widget = Observable.extend({\n init: function (element, options) {\n var that = this;\n that.element = kendo.jQuery(element).handler(that);\n that.angular('init', options);\n Observable.fn.init.call(that);\n var dataSource = options ? options.dataSource : null;\n var props;\n if (options) {\n props = (that.componentTypes || {})[(options || {}).componentType];\n }\n if (dataSource) {\n options = extend({}, options, { dataSource: {} });\n }\n options = that.options = extend(true, {}, that.options, that.defaults, props || {}, options);\n if (dataSource) {\n options.dataSource = dataSource;\n }\n if (!that.element.attr(kendo.attr('role'))) {\n that.element.attr(kendo.attr('role'), (options.name || '').toLowerCase());\n }\n that.element.data('kendo' + options.prefix + options.name, that);\n that.bind(that.events, options);\n },\n events: [],\n options: { prefix: '' },\n _hasBindingTarget: function () {\n return !!this.element[0].kendoBindingTarget;\n },\n _tabindex: function (target) {\n target = target || this.wrapper;\n var element = this.element, TABINDEX = 'tabindex', tabindex = target.attr(TABINDEX) || element.attr(TABINDEX);\n element.removeAttr(TABINDEX);\n target.attr(TABINDEX, !isNaN(tabindex) ? tabindex : 0);\n },\n setOptions: function (options) {\n this._setEvents(options);\n $.extend(this.options, options);\n },\n _setEvents: function (options) {\n var that = this, idx = 0, length = that.events.length, e;\n for (; idx < length; idx++) {\n e = that.events[idx];\n if (that.options[e] && options[e]) {\n that.unbind(e, that.options[e]);\n if (that._events && that._events[e]) {\n delete that._events[e];\n }\n }\n }\n that.bind(that.events, options);\n },\n resize: function (force) {\n var size = this.getSize(), currentSize = this._size;\n if (force || (size.width > 0 || size.height > 0) && (!currentSize || size.width !== currentSize.width || size.height !== currentSize.height)) {\n this._size = size;\n this._resize(size, force);\n this.trigger('resize', size);\n }\n },\n getSize: function () {\n return kendo.dimensions(this.element);\n },\n size: function (size) {\n if (!size) {\n return this.getSize();\n } else {\n this.setSize(size);\n }\n },\n setSize: $.noop,\n _resize: $.noop,\n destroy: function () {\n var that = this;\n that.element.removeData('kendo' + that.options.prefix + that.options.name);\n that.element.removeData('handler');\n that.unbind();\n },\n _destroy: function () {\n this.destroy();\n },\n angular: function () {\n },\n _muteAngularRebind: function (callback) {\n this._muteRebind = true;\n callback.call(this);\n this._muteRebind = false;\n }\n });\n var DataBoundWidget = Widget.extend({\n dataItems: function () {\n return this.dataSource.flatView();\n },\n _angularItems: function (cmd) {\n var that = this;\n that.angular(cmd, function () {\n return {\n elements: that.items(),\n data: $.map(that.dataItems(), function (dataItem) {\n return { dataItem: dataItem };\n })\n };\n });\n }\n });\n kendo.dimensions = function (element, dimensions) {\n var domElement = element[0];\n if (dimensions) {\n element.css(dimensions);\n }\n return {\n width: domElement.offsetWidth,\n height: domElement.offsetHeight\n };\n };\n kendo.notify = noop;\n var templateRegExp = /template$/i, jsonRegExp = /^\\s*(?:\\{(?:.|\\r\\n|\\n)*\\}|\\[(?:.|\\r\\n|\\n)*\\])\\s*$/, jsonFormatRegExp = /^\\{(\\d+)(:[^\\}]+)?\\}|^\\[[A-Za-z_]+\\]$/, dashRegExp = /([A-Z])/g;\n function parseOption(element, option) {\n var value;\n if (option.indexOf('data') === 0) {\n option = option.substring(4);\n option = option.charAt(0).toLowerCase() + option.substring(1);\n }\n option = option.replace(dashRegExp, '-$1');\n value = element.getAttribute('data-' + kendo.ns + option);\n if (value === null) {\n value = undefined;\n } else if (value === 'null') {\n value = null;\n } else if (value === 'true') {\n value = true;\n } else if (value === 'false') {\n value = false;\n } else if (numberRegExp.test(value) && option != 'mask') {\n value = parseFloat(value);\n } else if (jsonRegExp.test(value) && !jsonFormatRegExp.test(value)) {\n value = new Function('return (' + value + ')')();\n }\n return value;\n }\n function parseOptions(element, options, source) {\n var result = {}, option, value, role = element.getAttribute('data-' + kendo.ns + 'role');\n for (option in options) {\n value = parseOption(element, option);\n if (value !== undefined) {\n if (templateRegExp.test(option) && role != 'drawer') {\n if (typeof value === 'string') {\n if ($('#' + value).length) {\n value = kendo.template($('#' + value).html());\n } else if (source) {\n value = kendo.template(source[value]);\n }\n } else {\n value = element.getAttribute(option);\n }\n }\n result[option] = value;\n }\n }\n return result;\n }\n kendo.initWidget = function (element, options, roles) {\n var result, option, widget, idx, length, role, value, dataSource, fullPath, widgetKeyRegExp;\n if (!roles) {\n roles = kendo.ui.roles;\n } else if (roles.roles) {\n roles = roles.roles;\n }\n element = element.nodeType ? element : element[0];\n role = element.getAttribute('data-' + kendo.ns + 'role');\n if (!role) {\n return;\n }\n fullPath = role.indexOf('.') === -1;\n if (fullPath) {\n widget = roles[role];\n } else {\n widget = kendo.getter(role)(window);\n }\n var data = $(element).data(), widgetKey = widget ? 'kendo' + widget.fn.options.prefix + widget.fn.options.name : '';\n if (fullPath) {\n widgetKeyRegExp = new RegExp('^kendo.*' + role + '$', 'i');\n } else {\n widgetKeyRegExp = new RegExp('^' + widgetKey + '$', 'i');\n }\n for (var key in data) {\n if (key.match(widgetKeyRegExp)) {\n if (key === widgetKey) {\n result = data[key];\n } else {\n return data[key];\n }\n }\n }\n if (!widget) {\n return;\n }\n dataSource = parseOption(element, 'dataSource');\n options = $.extend({}, parseOptions(element, $.extend({}, widget.fn.options, widget.fn.defaults)), options);\n if (dataSource) {\n if (typeof dataSource === STRING) {\n options.dataSource = kendo.getter(dataSource)(window);\n } else {\n options.dataSource = dataSource;\n }\n }\n for (idx = 0, length = widget.fn.events.length; idx < length; idx++) {\n option = widget.fn.events[idx];\n value = parseOption(element, option);\n if (value !== undefined) {\n options[option] = kendo.getter(value)(window);\n }\n }\n if (!result) {\n result = new widget(element, options);\n } else if (!$.isEmptyObject(options)) {\n result.setOptions(options);\n }\n return result;\n };\n kendo.rolesFromNamespaces = function (namespaces) {\n var roles = [], idx, length;\n if (!namespaces[0]) {\n namespaces = [\n kendo.ui,\n kendo.dataviz.ui\n ];\n }\n for (idx = 0, length = namespaces.length; idx < length; idx++) {\n roles[idx] = namespaces[idx].roles;\n }\n return extend.apply(null, [{}].concat(roles.reverse()));\n };\n kendo.init = function (element) {\n var roles = kendo.rolesFromNamespaces(slice.call(arguments, 1));\n $(element).find('[data-' + kendo.ns + 'role]').addBack().each(function () {\n kendo.initWidget(this, {}, roles);\n });\n };\n kendo.destroy = function (element) {\n $(element).find('[data-' + kendo.ns + 'role]').addBack().each(function () {\n var data = $(this).data();\n for (var key in data) {\n if (key.indexOf('kendo') === 0 && typeof data[key].destroy === FUNCTION) {\n data[key].destroy();\n }\n }\n });\n };\n function containmentComparer(a, b) {\n return $.contains(a, b) ? -1 : 1;\n }\n function resizableWidget() {\n var widget = $(this);\n return $.inArray(widget.attr('data-' + kendo.ns + 'role'), [\n 'slider',\n 'rangeslider',\n 'breadcrumb'\n ]) > -1 || widget.is(':visible');\n }\n kendo.resize = function (element, force) {\n var widgets = $(element).find('[data-' + kendo.ns + 'role]').addBack().filter(resizableWidget);\n if (!widgets.length) {\n return;\n }\n var widgetsArray = $.makeArray(widgets);\n widgetsArray.sort(containmentComparer);\n $.each(widgetsArray, function () {\n var widget = kendo.widgetInstance($(this));\n if (widget) {\n widget.resize(force);\n }\n });\n };\n kendo.parseOptions = parseOptions;\n extend(kendo.ui, {\n Widget: Widget,\n DataBoundWidget: DataBoundWidget,\n roles: {},\n progress: function (container, toggle, options) {\n var mask = container.find('.k-loading-mask'), support = kendo.support, browser = support.browser, isRtl, leftRight, webkitCorrection, containerScrollLeft, cssClass;\n options = $.extend({}, {\n width: '100%',\n height: '100%',\n top: container.scrollTop(),\n opacity: false\n }, options);\n cssClass = options.opacity ? 'k-loading-mask k-opaque' : 'k-loading-mask';\n if (toggle) {\n if (!mask.length) {\n isRtl = support.isRtl(container);\n leftRight = isRtl ? 'right' : 'left';\n containerScrollLeft = container.scrollLeft();\n webkitCorrection = browser.webkit ? !isRtl ? 0 : container[0].scrollWidth - container.width() - 2 * containerScrollLeft : 0;\n mask = $(kendo.format('
        {1}
        ', cssClass, kendo.ui.progress.messages.loading)).width(options.width).height(options.height).css('top', options.top).css(leftRight, Math.abs(containerScrollLeft) + webkitCorrection).prependTo(container);\n }\n } else if (mask) {\n mask.remove();\n }\n },\n plugin: function (widget, register, prefix) {\n var name = widget.fn.options.name, getter;\n register = register || kendo.ui;\n prefix = prefix || '';\n register[name] = widget;\n register.roles[name.toLowerCase()] = widget;\n getter = 'getKendo' + prefix + name;\n name = 'kendo' + prefix + name;\n var widgetEntry = {\n name: name,\n widget: widget,\n prefix: prefix || ''\n };\n kendo.widgets.push(widgetEntry);\n for (var i = 0, len = kendo._widgetRegisteredCallbacks.length; i < len; i++) {\n kendo._widgetRegisteredCallbacks[i](widgetEntry);\n }\n $.fn[name] = function (options) {\n var value = this, args;\n if (typeof options === STRING) {\n args = slice.call(arguments, 1);\n this.each(function () {\n var widget = $.data(this, name), method, result;\n if (!widget) {\n throw new Error(kendo.format('Cannot call method \\'{0}\\' of {1} before it is initialized', options, name));\n }\n method = widget[options];\n if (typeof method !== FUNCTION) {\n throw new Error(kendo.format('Cannot find method \\'{0}\\' of {1}', options, name));\n }\n result = method.apply(widget, args);\n if (result !== undefined) {\n value = result;\n return false;\n }\n });\n } else {\n this.each(function () {\n return new widget(this, options);\n });\n }\n return value;\n };\n $.fn[name].widget = widget;\n $.fn[getter] = function () {\n return this.data(name);\n };\n }\n });\n kendo.ui.progress.messages = { loading: 'Loading...' };\n var ContainerNullObject = {\n bind: function () {\n return this;\n },\n nullObject: true,\n options: {}\n };\n var MobileWidget = Widget.extend({\n init: function (element, options) {\n Widget.fn.init.call(this, element, options);\n this.element.autoApplyNS();\n this.wrapper = this.element;\n this.element.addClass('km-widget');\n },\n destroy: function () {\n Widget.fn.destroy.call(this);\n this.element.kendoDestroy();\n },\n options: { prefix: 'Mobile' },\n events: [],\n view: function () {\n var viewElement = this.element.closest(kendo.roleSelector('view splitview modalview drawer'));\n return kendo.widgetInstance(viewElement, kendo.mobile.ui) || ContainerNullObject;\n },\n viewHasNativeScrolling: function () {\n var view = this.view();\n return view && view.options.useNativeScrolling;\n },\n container: function () {\n var element = this.element.closest(kendo.roleSelector('view layout modalview drawer splitview'));\n return kendo.widgetInstance(element.eq(0), kendo.mobile.ui) || ContainerNullObject;\n }\n });\n extend(kendo.mobile, {\n init: function (element) {\n kendo.init(element, kendo.mobile.ui, kendo.ui, kendo.dataviz.ui);\n },\n appLevelNativeScrolling: function () {\n return kendo.mobile.application && kendo.mobile.application.options && kendo.mobile.application.options.useNativeScrolling;\n },\n roles: {},\n ui: {\n Widget: MobileWidget,\n DataBoundWidget: DataBoundWidget.extend(MobileWidget.prototype),\n roles: {},\n plugin: function (widget) {\n kendo.ui.plugin(widget, kendo.mobile.ui, 'Mobile');\n }\n }\n });\n deepExtend(kendo.dataviz, {\n init: function (element) {\n kendo.init(element, kendo.dataviz.ui);\n },\n ui: {\n roles: {},\n themes: {},\n views: [],\n plugin: function (widget) {\n kendo.ui.plugin(widget, kendo.dataviz.ui);\n }\n },\n roles: {}\n });\n kendo.touchScroller = function (elements, options) {\n if (!options) {\n options = {};\n }\n options.useNative = true;\n return $(elements).map(function (idx, element) {\n element = $(element);\n if (support.kineticScrollNeeded && kendo.mobile.ui.Scroller && !element.data('kendoMobileScroller')) {\n element.kendoMobileScroller(options);\n return element.data('kendoMobileScroller');\n } else {\n return false;\n }\n })[0];\n };\n kendo.preventDefault = function (e) {\n e.preventDefault();\n };\n kendo.widgetInstance = function (element, suites) {\n var role = element.data(kendo.ns + 'role'), widgets = [], i, length, elementData = element.data('kendoView');\n if (role) {\n if (role === 'content') {\n role = 'scroller';\n }\n if (role === 'editortoolbar') {\n var editorToolbar = element.data('kendoEditorToolbar');\n if (editorToolbar) {\n return editorToolbar;\n }\n }\n if (role === 'view' && elementData) {\n return elementData;\n }\n if (suites) {\n if (suites[0]) {\n for (i = 0, length = suites.length; i < length; i++) {\n widgets.push(suites[i].roles[role]);\n }\n } else {\n widgets.push(suites.roles[role]);\n }\n } else {\n widgets = [\n kendo.ui.roles[role],\n kendo.dataviz.ui.roles[role],\n kendo.mobile.ui.roles[role]\n ];\n }\n if (role.indexOf('.') >= 0) {\n widgets = [kendo.getter(role)(window)];\n }\n for (i = 0, length = widgets.length; i < length; i++) {\n var widget = widgets[i];\n if (widget) {\n var instance = element.data('kendo' + widget.fn.options.prefix + widget.fn.options.name);\n if (instance) {\n return instance;\n }\n }\n }\n }\n };\n kendo.onResize = function (callback) {\n var handler = callback;\n if (support.mobileOS.android) {\n handler = function () {\n setTimeout(callback, 600);\n };\n }\n $(window).on(support.resize, handler);\n return handler;\n };\n kendo.unbindResize = function (callback) {\n $(window).off(support.resize, callback);\n };\n kendo.attrValue = function (element, key) {\n return element.data(kendo.ns + key);\n };\n kendo.days = {\n Sunday: 0,\n Monday: 1,\n Tuesday: 2,\n Wednesday: 3,\n Thursday: 4,\n Friday: 5,\n Saturday: 6\n };\n function focusable(element, isTabIndexNotNaN) {\n var nodeName = element.nodeName.toLowerCase();\n return (/input|select|textarea|button|object/.test(nodeName) ? !element.disabled : 'a' === nodeName ? element.href || isTabIndexNotNaN : isTabIndexNotNaN) && visible(element);\n }\n function visible(element) {\n return $.expr.pseudos.visible(element) && !$(element).parents().addBack().filter(function () {\n return $.css(this, 'visibility') === 'hidden';\n }).length;\n }\n $.extend($.expr.pseudos, {\n kendoFocusable: function (element) {\n var idx = $.attr(element, 'tabindex');\n return focusable(element, !isNaN(idx) && idx > -1);\n }\n });\n var MOUSE_EVENTS = [\n 'mousedown',\n 'mousemove',\n 'mouseenter',\n 'mouseleave',\n 'mouseover',\n 'mouseout',\n 'mouseup',\n 'click'\n ];\n var EXCLUDE_BUST_CLICK_SELECTOR = 'label, input, [data-rel=external]';\n var MouseEventNormalizer = {\n setupMouseMute: function () {\n var idx = 0, length = MOUSE_EVENTS.length, element = document.documentElement;\n if (MouseEventNormalizer.mouseTrap || !support.eventCapture) {\n return;\n }\n MouseEventNormalizer.mouseTrap = true;\n MouseEventNormalizer.bustClick = false;\n MouseEventNormalizer.captureMouse = false;\n var handler = function (e) {\n if (MouseEventNormalizer.captureMouse) {\n if (e.type === 'click') {\n if (MouseEventNormalizer.bustClick && !$(e.target).is(EXCLUDE_BUST_CLICK_SELECTOR)) {\n e.preventDefault();\n e.stopPropagation();\n }\n } else {\n e.stopPropagation();\n }\n }\n };\n for (; idx < length; idx++) {\n element.addEventListener(MOUSE_EVENTS[idx], handler, true);\n }\n },\n muteMouse: function (e) {\n MouseEventNormalizer.captureMouse = true;\n if (e.data.bustClick) {\n MouseEventNormalizer.bustClick = true;\n }\n clearTimeout(MouseEventNormalizer.mouseTrapTimeoutID);\n },\n unMuteMouse: function () {\n clearTimeout(MouseEventNormalizer.mouseTrapTimeoutID);\n MouseEventNormalizer.mouseTrapTimeoutID = setTimeout(function () {\n MouseEventNormalizer.captureMouse = false;\n MouseEventNormalizer.bustClick = false;\n }, 400);\n }\n };\n var eventMap = {\n down: 'touchstart mousedown',\n move: 'mousemove touchmove',\n up: 'mouseup touchend touchcancel',\n cancel: 'mouseleave touchcancel'\n };\n if (support.touch && (support.mobileOS.ios || support.mobileOS.android)) {\n eventMap = {\n down: 'touchstart',\n move: 'touchmove',\n up: 'touchend touchcancel',\n cancel: 'touchcancel'\n };\n } else if (support.pointers) {\n eventMap = {\n down: 'pointerdown',\n move: 'pointermove',\n up: 'pointerup',\n cancel: 'pointercancel pointerleave'\n };\n } else if (support.msPointers) {\n eventMap = {\n down: 'MSPointerDown',\n move: 'MSPointerMove',\n up: 'MSPointerUp',\n cancel: 'MSPointerCancel MSPointerLeave'\n };\n }\n if (support.msPointers && !('onmspointerenter' in window)) {\n $.each({\n MSPointerEnter: 'MSPointerOver',\n MSPointerLeave: 'MSPointerOut'\n }, function (orig, fix) {\n $.event.special[orig] = {\n delegateType: fix,\n bindType: fix,\n handle: function (event) {\n var ret, target = this, related = event.relatedTarget, handleObj = event.handleObj;\n if (!related || related !== target && !$.contains(target, related)) {\n event.type = handleObj.origType;\n ret = handleObj.handler.apply(this, arguments);\n event.type = fix;\n }\n return ret;\n }\n };\n });\n }\n var getEventMap = function (e) {\n return eventMap[e] || e;\n }, eventRegEx = /([^ ]+)/g;\n kendo.applyEventMap = function (events, ns) {\n events = events.replace(eventRegEx, getEventMap);\n if (ns) {\n events = events.replace(eventRegEx, '$1.' + ns);\n }\n return events;\n };\n kendo.keyDownHandler = function (e, widget) {\n var events = widget._events.kendoKeydown;\n if (!events) {\n return true;\n }\n events = events.slice();\n e.sender = widget;\n e.preventKendoKeydown = false;\n for (var idx = 0, length = events.length; idx < length; idx++) {\n events[idx].call(widget, e);\n }\n return !e.preventKendoKeydown;\n };\n var on = $.fn.on;\n function kendoJQuery(selector, context) {\n return new kendoJQuery.fn.init(selector, context);\n }\n noDepricateExtend(true, kendoJQuery, $);\n kendoJQuery.fn = kendoJQuery.prototype = new $();\n kendoJQuery.fn.constructor = kendoJQuery;\n kendoJQuery.fn.init = function (selector, context) {\n if (context && context instanceof $ && !(context instanceof kendoJQuery)) {\n context = kendoJQuery(context);\n }\n return $.fn.init.call(this, selector, context, rootjQuery);\n };\n kendoJQuery.fn.init.prototype = kendoJQuery.fn;\n var rootjQuery = kendoJQuery(document);\n extend(kendoJQuery.fn, {\n handler: function (handler) {\n this.data('handler', handler);\n return this;\n },\n autoApplyNS: function (ns) {\n this.data('kendoNS', ns || kendo.guid());\n return this;\n },\n on: function () {\n var that = this, ns = that.data('kendoNS');\n if (arguments.length === 1) {\n return on.call(that, arguments[0]);\n }\n var context = that, args = slice.call(arguments);\n if (typeof args[args.length - 1] === UNDEFINED) {\n args.pop();\n }\n var callback = args[args.length - 1], events = kendo.applyEventMap(args[0], ns);\n if (support.mouseAndTouchPresent && events.search(/mouse|click/) > -1 && this[0] !== document.documentElement) {\n MouseEventNormalizer.setupMouseMute();\n var selector = args.length === 2 ? null : args[1], bustClick = events.indexOf('click') > -1 && events.indexOf('touchend') > -1;\n on.call(this, {\n touchstart: MouseEventNormalizer.muteMouse,\n touchend: MouseEventNormalizer.unMuteMouse\n }, selector, { bustClick: bustClick });\n }\n if (arguments[0].indexOf('keydown') !== -1 && args[1] && args[1].options) {\n args[0] = events;\n var widget = args[1];\n var keyDownCallBack = args[args.length - 1];\n args[args.length - 1] = function (e) {\n if (kendo.keyDownHandler(e, widget)) {\n return keyDownCallBack.apply(this, [e]);\n }\n };\n on.apply(that, args);\n return that;\n }\n if (typeof callback === STRING) {\n context = that.data('handler');\n callback = context[callback];\n args[args.length - 1] = function (e) {\n callback.call(context, e);\n };\n }\n args[0] = events;\n on.apply(that, args);\n return that;\n },\n kendoDestroy: function (ns) {\n ns = ns || this.data('kendoNS');\n if (ns) {\n this.off('.' + ns);\n }\n return this;\n }\n });\n kendo.jQuery = kendoJQuery;\n kendo.eventMap = eventMap;\n kendo.timezone = function () {\n var months = {\n Jan: 0,\n Feb: 1,\n Mar: 2,\n Apr: 3,\n May: 4,\n Jun: 5,\n Jul: 6,\n Aug: 7,\n Sep: 8,\n Oct: 9,\n Nov: 10,\n Dec: 11\n };\n var days = {\n Sun: 0,\n Mon: 1,\n Tue: 2,\n Wed: 3,\n Thu: 4,\n Fri: 5,\n Sat: 6\n };\n function ruleToDate(year, rule) {\n var date;\n var targetDay;\n var ourDay;\n var month = rule[3];\n var on = rule[4];\n var time = rule[5];\n var cache = rule[8];\n if (!cache) {\n rule[8] = cache = {};\n }\n if (cache[year]) {\n return cache[year];\n }\n if (!isNaN(on)) {\n date = new Date(Date.UTC(year, months[month], on, time[0], time[1], time[2], 0));\n } else if (on.indexOf('last') === 0) {\n date = new Date(Date.UTC(year, months[month] + 1, 1, time[0] - 24, time[1], time[2], 0));\n targetDay = days[on.substr(4, 3)];\n ourDay = date.getUTCDay();\n date.setUTCDate(date.getUTCDate() + targetDay - ourDay - (targetDay > ourDay ? 7 : 0));\n } else if (on.indexOf('>=') >= 0) {\n date = new Date(Date.UTC(year, months[month], on.substr(5), time[0], time[1], time[2], 0));\n targetDay = days[on.substr(0, 3)];\n ourDay = date.getUTCDay();\n date.setUTCDate(date.getUTCDate() + targetDay - ourDay + (targetDay < ourDay ? 7 : 0));\n } else if (on.indexOf('<=') >= 0) {\n date = new Date(Date.UTC(year, months[month], on.substr(5), time[0], time[1], time[2], 0));\n targetDay = days[on.substr(0, 3)];\n ourDay = date.getUTCDay();\n date.setUTCDate(date.getUTCDate() + targetDay - ourDay - (targetDay > ourDay ? 7 : 0));\n }\n return cache[year] = date;\n }\n function findRule(utcTime, rules, zone) {\n rules = rules[zone];\n if (!rules) {\n var time = zone.split(':');\n var offset = 0;\n if (time.length > 1) {\n offset = time[0] * 60 + Number(time[1]);\n }\n return [\n -1000000,\n 'max',\n '-',\n 'Jan',\n 1,\n [\n 0,\n 0,\n 0\n ],\n offset,\n '-'\n ];\n }\n var year = new Date(utcTime).getUTCFullYear();\n rules = jQuery.grep(rules, function (rule) {\n var from = rule[0];\n var to = rule[1];\n return from <= year && (to >= year || from == year && to == 'only' || to == 'max');\n });\n rules.push(utcTime);\n rules.sort(function (a, b) {\n if (typeof a != 'number') {\n a = Number(ruleToDate(year, a));\n }\n if (typeof b != 'number') {\n b = Number(ruleToDate(year, b));\n }\n return a - b;\n });\n var rule = rules[jQuery.inArray(utcTime, rules) - 1] || rules[rules.length - 1];\n return isNaN(rule) ? rule : null;\n }\n function findZone(utcTime, zones, timezone) {\n var zoneRules = zones[timezone];\n if (typeof zoneRules === 'string') {\n zoneRules = zones[zoneRules];\n }\n if (!zoneRules) {\n throw new Error('Timezone \"' + timezone + '\" is either incorrect, or kendo.timezones.min.js is not included.');\n }\n for (var idx = zoneRules.length - 1; idx >= 0; idx--) {\n var until = zoneRules[idx][3];\n if (until && utcTime > until) {\n break;\n }\n }\n var zone = zoneRules[idx + 1];\n if (!zone) {\n throw new Error('Timezone \"' + timezone + '\" not found on ' + utcTime + '.');\n }\n return zone;\n }\n function zoneAndRule(utcTime, zones, rules, timezone) {\n if (typeof utcTime != NUMBER) {\n utcTime = Date.UTC(utcTime.getFullYear(), utcTime.getMonth(), utcTime.getDate(), utcTime.getHours(), utcTime.getMinutes(), utcTime.getSeconds(), utcTime.getMilliseconds());\n }\n var zone = findZone(utcTime, zones, timezone);\n return {\n zone: zone,\n rule: findRule(utcTime, rules, zone[1])\n };\n }\n function offset(utcTime, timezone) {\n if (timezone == 'Etc/UTC' || timezone == 'Etc/GMT') {\n return 0;\n }\n var info = zoneAndRule(utcTime, this.zones, this.rules, timezone);\n var zone = info.zone;\n var rule = info.rule;\n return kendo.parseFloat(rule ? zone[0] - rule[6] : zone[0]);\n }\n function abbr(utcTime, timezone) {\n var info = zoneAndRule(utcTime, this.zones, this.rules, timezone);\n var zone = info.zone;\n var rule = info.rule;\n var base = zone[2];\n if (base.indexOf('/') >= 0) {\n return base.split('/')[rule && +rule[6] ? 1 : 0];\n } else if (base.indexOf('%s') >= 0) {\n return base.replace('%s', !rule || rule[7] == '-' ? '' : rule[7]);\n }\n return base;\n }\n function convert(date, fromOffset, toOffset) {\n var tempToOffset = toOffset;\n var diff;\n if (typeof fromOffset == STRING) {\n fromOffset = this.offset(date, fromOffset);\n }\n if (typeof toOffset == STRING) {\n toOffset = this.offset(date, toOffset);\n }\n var fromLocalOffset = date.getTimezoneOffset();\n date = new Date(date.getTime() + (fromOffset - toOffset) * 60000);\n var toLocalOffset = date.getTimezoneOffset();\n if (typeof tempToOffset == STRING) {\n tempToOffset = this.offset(date, tempToOffset);\n }\n diff = toLocalOffset - fromLocalOffset + (toOffset - tempToOffset);\n return new Date(date.getTime() + diff * 60000);\n }\n function apply(date, timezone) {\n return this.convert(date, date.getTimezoneOffset(), timezone);\n }\n function remove(date, timezone) {\n return this.convert(date, timezone, date.getTimezoneOffset());\n }\n function toLocalDate(time) {\n return this.apply(new Date(time), 'Etc/UTC');\n }\n return {\n zones: {},\n rules: {},\n offset: offset,\n convert: convert,\n apply: apply,\n remove: remove,\n abbr: abbr,\n toLocalDate: toLocalDate\n };\n }();\n kendo.date = function () {\n var MS_PER_MINUTE = 60000, MS_PER_DAY = 86400000;\n function adjustDST(date, hours) {\n if (hours === 0 && date.getHours() === 23) {\n date.setHours(date.getHours() + 2);\n return true;\n }\n return false;\n }\n function setDayOfWeek(date, day, dir) {\n var hours = date.getHours();\n dir = dir || 1;\n day = (day - date.getDay() + 7 * dir) % 7;\n date.setDate(date.getDate() + day);\n adjustDST(date, hours);\n }\n function dayOfWeek(date, day, dir) {\n date = new Date(date);\n setDayOfWeek(date, day, dir);\n return date;\n }\n function firstDayOfMonth(date) {\n return new Date(date.getFullYear(), date.getMonth(), 1);\n }\n function lastDayOfMonth(date) {\n var last = new Date(date.getFullYear(), date.getMonth() + 1, 0), first = firstDayOfMonth(date), timeOffset = Math.abs(last.getTimezoneOffset() - first.getTimezoneOffset());\n if (timeOffset) {\n last.setHours(first.getHours() + timeOffset / 60);\n }\n return last;\n }\n function moveDateToWeekStart(date, weekStartDay) {\n if (weekStartDay !== 1) {\n return addDays(dayOfWeek(date, weekStartDay, -1), 4);\n }\n return addDays(date, 4 - (date.getDay() || 7));\n }\n function calcWeekInYear(date, weekStartDay) {\n var firstWeekInYear = new Date(date.getFullYear(), 0, 1, -6);\n var newDate = moveDateToWeekStart(date, weekStartDay);\n var diffInMS = newDate.getTime() - firstWeekInYear.getTime();\n var days = Math.floor(diffInMS / MS_PER_DAY);\n return 1 + Math.floor(days / 7);\n }\n function weekInYear(date, weekStartDay) {\n if (weekStartDay === undefined) {\n weekStartDay = kendo.culture().calendar.firstDay;\n }\n var prevWeekDate = addDays(date, -7);\n var nextWeekDate = addDays(date, 7);\n var weekNumber = calcWeekInYear(date, weekStartDay);\n if (weekNumber === 0) {\n return calcWeekInYear(prevWeekDate, weekStartDay) + 1;\n }\n if (weekNumber === 53 && calcWeekInYear(nextWeekDate, weekStartDay) > 1) {\n return 1;\n }\n return weekNumber;\n }\n function getDate(date) {\n date = new Date(date.getFullYear(), date.getMonth(), date.getDate(), 0, 0, 0);\n adjustDST(date, 0);\n return date;\n }\n function toUtcTime(date) {\n return Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds());\n }\n function getMilliseconds(date) {\n return toInvariantTime(date).getTime() - getDate(toInvariantTime(date));\n }\n function isInTimeRange(value, min, max) {\n var msMin = getMilliseconds(min), msMax = getMilliseconds(max), msValue;\n if (!value || msMin == msMax) {\n return true;\n }\n if (min >= max) {\n max += MS_PER_DAY;\n }\n msValue = getMilliseconds(value);\n if (msMin > msValue) {\n msValue += MS_PER_DAY;\n }\n if (msMax < msMin) {\n msMax += MS_PER_DAY;\n }\n return msValue >= msMin && msValue <= msMax;\n }\n function isInDateRange(value, min, max) {\n var msMin = min.getTime(), msMax = max.getTime(), msValue;\n if (msMin >= msMax) {\n msMax += MS_PER_DAY;\n }\n msValue = value.getTime();\n return msValue >= msMin && msValue <= msMax;\n }\n function addDays(date, offset) {\n var hours = date.getHours();\n date = new Date(date);\n setTime(date, offset * MS_PER_DAY);\n adjustDST(date, hours);\n return date;\n }\n function setTime(date, milliseconds, ignoreDST) {\n var offset = date.getTimezoneOffset();\n var difference;\n date.setTime(date.getTime() + milliseconds);\n if (!ignoreDST) {\n difference = date.getTimezoneOffset() - offset;\n date.setTime(date.getTime() + difference * MS_PER_MINUTE);\n }\n }\n function setHours(date, time) {\n date = new Date(date.getFullYear(), date.getMonth(), date.getDate(), time.getHours(), time.getMinutes(), time.getSeconds(), time.getMilliseconds());\n adjustDST(date, time.getHours());\n return date;\n }\n function today() {\n return getDate(new Date());\n }\n function isToday(date) {\n return getDate(date).getTime() == today().getTime();\n }\n function toInvariantTime(date) {\n var staticDate = new Date(1980, 1, 1, 0, 0, 0);\n if (date) {\n staticDate.setHours(date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds());\n }\n return staticDate;\n }\n return {\n adjustDST: adjustDST,\n dayOfWeek: dayOfWeek,\n setDayOfWeek: setDayOfWeek,\n getDate: getDate,\n isInDateRange: isInDateRange,\n isInTimeRange: isInTimeRange,\n isToday: isToday,\n nextDay: function (date) {\n return addDays(date, 1);\n },\n previousDay: function (date) {\n return addDays(date, -1);\n },\n toUtcTime: toUtcTime,\n MS_PER_DAY: MS_PER_DAY,\n MS_PER_HOUR: 60 * MS_PER_MINUTE,\n MS_PER_MINUTE: MS_PER_MINUTE,\n setTime: setTime,\n setHours: setHours,\n addDays: addDays,\n today: today,\n toInvariantTime: toInvariantTime,\n firstDayOfMonth: firstDayOfMonth,\n lastDayOfMonth: lastDayOfMonth,\n weekInYear: weekInYear,\n getMilliseconds: getMilliseconds\n };\n }();\n kendo.stripWhitespace = function (element) {\n if (document.createNodeIterator) {\n var iterator = document.createNodeIterator(element, NodeFilter.SHOW_TEXT, function (node) {\n return node.parentNode == element ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_REJECT;\n }, false);\n while (iterator.nextNode()) {\n if (iterator.referenceNode && !iterator.referenceNode.textContent.trim()) {\n iterator.referenceNode.parentNode.removeChild(iterator.referenceNode);\n }\n }\n } else {\n for (var i = 0; i < element.childNodes.length; i++) {\n var child = element.childNodes[i];\n if (child.nodeType == 3 && !/\\S/.test(child.nodeValue)) {\n element.removeChild(child);\n i--;\n }\n if (child.nodeType == 1) {\n kendo.stripWhitespace(child);\n }\n }\n }\n };\n var animationFrame = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || function (callback) {\n setTimeout(callback, 1000 / 60);\n };\n kendo.animationFrame = function (callback) {\n animationFrame.call(window, callback);\n };\n var animationQueue = [];\n kendo.queueAnimation = function (callback) {\n animationQueue[animationQueue.length] = callback;\n if (animationQueue.length === 1) {\n kendo.runNextAnimation();\n }\n };\n kendo.runNextAnimation = function () {\n kendo.animationFrame(function () {\n if (animationQueue[0]) {\n animationQueue.shift()();\n if (animationQueue[0]) {\n kendo.runNextAnimation();\n }\n }\n });\n };\n kendo.parseQueryStringParams = function (url) {\n var queryString = url.split('?')[1] || '', params = {}, paramParts = queryString.split(/&|=/), length = paramParts.length, idx = 0;\n for (; idx < length; idx += 2) {\n if (paramParts[idx] !== '') {\n params[decodeURIComponent(paramParts[idx])] = decodeURIComponent(paramParts[idx + 1]);\n }\n }\n return params;\n };\n kendo.elementUnderCursor = function (e) {\n if (typeof e.x.client != 'undefined') {\n return document.elementFromPoint(e.x.client, e.y.client);\n }\n };\n kendo.wheelDeltaY = function (jQueryEvent) {\n var e = jQueryEvent.originalEvent, deltaY = e.wheelDeltaY, delta;\n if (e.wheelDelta) {\n if (deltaY === undefined || deltaY) {\n delta = e.wheelDelta;\n }\n } else if (e.detail && e.axis === e.VERTICAL_AXIS) {\n delta = -e.detail * 10;\n }\n return delta;\n };\n kendo.throttle = function (fn, delay) {\n var timeout;\n var lastExecTime = 0;\n if (!delay || delay <= 0) {\n return fn;\n }\n var throttled = function () {\n var that = this;\n var elapsed = +new Date() - lastExecTime;\n var args = arguments;\n function exec() {\n fn.apply(that, args);\n lastExecTime = +new Date();\n }\n if (!lastExecTime) {\n return exec();\n }\n if (timeout) {\n clearTimeout(timeout);\n }\n if (elapsed > delay) {\n exec();\n } else {\n timeout = setTimeout(exec, delay - elapsed);\n }\n };\n throttled.cancel = function () {\n clearTimeout(timeout);\n };\n return throttled;\n };\n kendo.caret = function (element, start, end) {\n var rangeElement;\n var isPosition = start !== undefined;\n if (end === undefined) {\n end = start;\n }\n if (element[0]) {\n element = element[0];\n }\n if (isPosition && element.disabled) {\n return;\n }\n try {\n if (element.selectionStart !== undefined) {\n if (isPosition) {\n element.focus();\n var mobile = support.mobileOS;\n if (mobile.wp || mobile.android) {\n setTimeout(function () {\n element.setSelectionRange(start, end);\n }, 0);\n } else {\n element.setSelectionRange(start, end);\n }\n } else {\n start = [\n element.selectionStart,\n element.selectionEnd\n ];\n }\n } else if (document.selection) {\n if ($(element).is(':visible')) {\n element.focus();\n }\n rangeElement = element.createTextRange();\n if (isPosition) {\n rangeElement.collapse(true);\n rangeElement.moveStart('character', start);\n rangeElement.moveEnd('character', end - start);\n rangeElement.select();\n } else {\n var rangeDuplicated = rangeElement.duplicate(), selectionStart, selectionEnd;\n rangeElement.moveToBookmark(document.selection.createRange().getBookmark());\n rangeDuplicated.setEndPoint('EndToStart', rangeElement);\n selectionStart = rangeDuplicated.text.length;\n selectionEnd = selectionStart + rangeElement.text.length;\n start = [\n selectionStart,\n selectionEnd\n ];\n }\n }\n } catch (e) {\n start = [];\n }\n return start;\n };\n kendo.compileMobileDirective = function (element, scope) {\n var angular = window.angular;\n element.attr('data-' + kendo.ns + 'role', element[0].tagName.toLowerCase().replace('kendo-mobile-', '').replace('-', ''));\n angular.element(element).injector().invoke([\n '$compile',\n function ($compile) {\n $compile(element)(scope);\n if (!/^\\$(digest|apply)$/.test(scope.$$phase)) {\n scope.$digest();\n }\n }\n ]);\n return kendo.widgetInstance(element, kendo.mobile.ui);\n };\n kendo.antiForgeryTokens = function () {\n var tokens = {}, csrf_token = $('meta[name=csrf-token],meta[name=_csrf]').attr('content'), csrf_param = $('meta[name=csrf-param],meta[name=_csrf_header]').attr('content');\n $('input[name^=\\'__RequestVerificationToken\\']').each(function () {\n tokens[this.name] = this.value;\n });\n if (csrf_param !== undefined && csrf_token !== undefined) {\n tokens[csrf_param] = csrf_token;\n }\n return tokens;\n };\n kendo.cycleForm = function (form) {\n var firstElement = form.find('input, .k-widget').first();\n var lastElement = form.find('button, .k-button').last();\n function focus(el) {\n var widget = kendo.widgetInstance(el);\n if (widget && widget.focus) {\n widget.focus();\n } else {\n el.focus();\n }\n }\n lastElement.on('keydown', function (e) {\n if (e.keyCode == kendo.keys.TAB && !e.shiftKey) {\n e.preventDefault();\n focus(firstElement);\n }\n });\n firstElement.on('keydown', function (e) {\n if (e.keyCode == kendo.keys.TAB && e.shiftKey) {\n e.preventDefault();\n focus(lastElement);\n }\n });\n };\n kendo.focusElement = function (element) {\n var scrollTopPositions = [];\n var scrollableParents = element.parentsUntil('body').filter(function (index, element) {\n var computedStyle = kendo.getComputedStyles(element, ['overflow']);\n return computedStyle.overflow !== 'visible';\n }).add(window);\n scrollableParents.each(function (index, parent) {\n scrollTopPositions[index] = $(parent).scrollTop();\n });\n try {\n element[0].setActive();\n } catch (e) {\n element[0].focus();\n }\n scrollableParents.each(function (index, parent) {\n $(parent).scrollTop(scrollTopPositions[index]);\n });\n };\n kendo.focusNextElement = function () {\n if (document.activeElement) {\n var focussable = $(':kendoFocusable');\n var index = focussable.index(document.activeElement);\n if (index > -1) {\n var nextElement = focussable[index + 1] || focussable[0];\n nextElement.focus();\n }\n }\n };\n kendo.trim = function (value) {\n if (!!value) {\n return value.toString().trim();\n } else {\n return '';\n }\n };\n kendo.getWidgetFocusableElement = function (element) {\n var nextFocusable = element.closest(':kendoFocusable'), widgetInstance = kendo.widgetInstance(element), target;\n if (nextFocusable.length) {\n target = nextFocusable;\n } else if (widgetInstance) {\n target = widgetInstance.options.name === 'Editor' ? $(widgetInstance.body) : widgetInstance.wrapper.find(':kendoFocusable').first();\n } else {\n target = element;\n }\n return target;\n };\n kendo.addAttribute = function (element, attribute, value) {\n var current = element.attr(attribute) || '';\n if (current.indexOf(value) < 0) {\n element.attr(attribute, (current + ' ' + value).trim());\n }\n };\n kendo.removeAttribute = function (element, attribute, value) {\n var current = element.attr(attribute) || '';\n element.attr(attribute, current.replace(value, '').trim());\n };\n kendo.toggleAttribute = function (element, attribute, value) {\n var current = element.attr(attribute) || '';\n if (current.indexOf(value) < 0) {\n kendo.addAttribute(element, attribute, value);\n } else {\n kendo.removeAttribute(element, attribute, value);\n }\n };\n kendo.matchesMedia = function (mediaQuery) {\n var media = kendo._bootstrapToMedia(mediaQuery) || mediaQuery;\n return support.matchMedia && window.matchMedia(media).matches;\n };\n kendo._bootstrapToMedia = function (bootstrapMedia) {\n return {\n 'xs': '(max-width: 576px)',\n 'sm': '(min-width: 576px)',\n 'md': '(min-width: 768px)',\n 'lg': '(min-width: 992px)',\n 'xl': '(min-width: 1200px)'\n }[bootstrapMedia];\n };\n kendo.fileGroupMap = {\n audio: [\n '.aif',\n '.iff',\n '.m3u',\n '.m4a',\n '.mid',\n '.mp3',\n '.mpa',\n '.wav',\n '.wma',\n '.ogg',\n '.wav',\n '.wma',\n '.wpl'\n ],\n video: [\n '.3g2',\n '.3gp',\n '.avi',\n '.asf',\n '.flv',\n '.m4u',\n '.rm',\n '.h264',\n '.m4v',\n '.mkv',\n '.mov',\n '.mp4',\n '.mpg',\n '.rm',\n '.swf',\n '.vob',\n '.wmv'\n ],\n image: [\n '.ai',\n '.dds',\n '.heic',\n '.jpe',\n 'jfif',\n '.jif',\n '.jp2',\n '.jps',\n '.eps',\n '.bmp',\n '.gif',\n '.jpeg',\n '.jpg',\n '.png',\n '.ps',\n '.psd',\n '.svg',\n '.svgz',\n '.tif',\n '.tiff'\n ],\n txt: [\n '.doc',\n '.docx',\n '.log',\n '.pages',\n '.tex',\n '.wpd',\n '.wps',\n '.odt',\n '.rtf',\n '.text',\n '.txt',\n '.wks'\n ],\n presentation: [\n '.key',\n '.odp',\n '.pps',\n '.ppt',\n '.pptx'\n ],\n data: [\n '.xlr',\n '.xls',\n '.xlsx'\n ],\n programming: [\n '.tmp',\n '.bak',\n '.msi',\n '.cab',\n '.cpl',\n '.cur',\n '.dll',\n '.dmp',\n '.drv',\n '.icns',\n '.ico',\n '.link',\n '.sys',\n '.cfg',\n '.ini',\n '.asp',\n '.aspx',\n '.cer',\n '.csr',\n '.css',\n '.dcr',\n '.htm',\n '.html',\n '.js',\n '.php',\n '.rss',\n '.xhtml'\n ],\n pdf: ['.pdf'],\n config: [\n '.apk',\n '.app',\n '.bat',\n '.cgi',\n '.com',\n '.exe',\n '.gadget',\n '.jar',\n '.wsf'\n ],\n zip: [\n '.7z',\n '.cbr',\n '.gz',\n '.sitx',\n '.arj',\n '.deb',\n '.pkg',\n '.rar',\n '.rpm',\n '.tar.gz',\n '.z',\n '.zip',\n '.zipx'\n ],\n 'disc-image': [\n '.dmg',\n '.iso',\n '.toast',\n '.vcd',\n '.bin',\n '.cue',\n '.mdf'\n ]\n };\n kendo.getFileGroup = function (extension, withPrefix) {\n var fileTypeMap = kendo.fileGroupMap;\n var groups = Object.keys(fileTypeMap);\n var type = 'file';\n if (extension === undefined || !extension.length) {\n return type;\n }\n for (var i = 0; i < groups.length; i += 1) {\n var extensions = fileTypeMap[groups[i]];\n if (extensions.indexOf(extension.toLowerCase()) > -1) {\n return withPrefix ? 'file-' + groups[i] : groups[i];\n }\n }\n return type;\n };\n kendo.getFileSizeMessage = function (size) {\n var sizes = [\n 'Bytes',\n 'KB',\n 'MB',\n 'GB',\n 'TB'\n ];\n if (size === 0) {\n return '0 Byte';\n }\n var i = parseInt(Math.floor(Math.log(size) / Math.log(1024)), 10);\n return Math.round(size / Math.pow(1024, i), 2) + ' ' + sizes[i];\n };\n kendo.selectorFromClasses = function (classes) {\n return '.' + classes.split(' ').join('.');\n };\n (function () {\n function postToProxy(dataURI, fileName, proxyURL, proxyTarget) {\n var form = $('').attr({\n action: proxyURL,\n method: 'POST',\n target: proxyTarget\n });\n var data = kendo.antiForgeryTokens();\n data.fileName = fileName;\n var parts = dataURI.split(';base64,');\n data.contentType = parts[0].replace('data:', '');\n data.base64 = parts[1];\n for (var name in data) {\n if (data.hasOwnProperty(name)) {\n $('').attr({\n value: data[name],\n name: name,\n type: 'hidden'\n }).appendTo(form);\n }\n }\n form.appendTo('body').submit().remove();\n }\n var fileSaver = document.createElement('a');\n var downloadAttribute = 'download' in fileSaver && !kendo.support.browser.edge;\n function saveAsBlob(dataURI, fileName) {\n var blob = dataURI;\n if (typeof dataURI == 'string') {\n var parts = dataURI.split(';base64,');\n var contentType = parts[0];\n var base64 = atob(parts[1]);\n var array = new Uint8Array(base64.length);\n for (var idx = 0; idx < base64.length; idx++) {\n array[idx] = base64.charCodeAt(idx);\n }\n blob = new Blob([array.buffer], { type: contentType });\n }\n navigator.msSaveBlob(blob, fileName);\n }\n function saveAsDataURI(dataURI, fileName) {\n if (window.Blob && dataURI instanceof Blob) {\n dataURI = URL.createObjectURL(dataURI);\n }\n fileSaver.download = fileName;\n fileSaver.href = dataURI;\n var e = document.createEvent('MouseEvents');\n e.initMouseEvent('click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n fileSaver.dispatchEvent(e);\n setTimeout(function () {\n URL.revokeObjectURL(dataURI);\n });\n }\n kendo.saveAs = function (options) {\n var save = postToProxy;\n if (!options.forceProxy) {\n if (downloadAttribute) {\n save = saveAsDataURI;\n } else if (navigator.msSaveBlob) {\n save = saveAsBlob;\n }\n }\n save(options.dataURI, options.fileName, options.proxyURL, options.proxyTarget);\n };\n }());\n kendo.proxyModelSetters = function proxyModelSetters(data) {\n var observable = {};\n Object.keys(data || {}).forEach(function (property) {\n Object.defineProperty(observable, property, {\n get: function () {\n return data[property];\n },\n set: function (value) {\n data[property] = value;\n data.dirty = true;\n }\n });\n });\n return observable;\n };\n (function () {\n kendo.defaults = kendo.defaults || {};\n kendo.setDefaults = function (key, value) {\n var path = key.split('.');\n var curr = kendo.defaults;\n key = path.pop();\n path.forEach(function (part) {\n if (curr[part] === undefined) {\n curr[part] = {};\n }\n curr = curr[part];\n });\n if (value.constructor === Object) {\n curr[key] = deepExtend({}, curr[key], value);\n } else {\n curr[key] = value;\n }\n };\n }());\n }(jQuery, window));\n return window.kendo;\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('kendo.data.odata', ['kendo.core'], f);\n}(function () {\n var __meta__ = {\n id: 'data.odata',\n name: 'OData',\n category: 'framework',\n depends: ['core'],\n hidden: true\n };\n (function ($, undefined) {\n var kendo = window.kendo, extend = $.extend, NEWLINE = '\\r\\n', DOUBLELINE = '\\r\\n\\r\\n', isFunction = kendo.isFunction, odataFilters = {\n eq: 'eq',\n neq: 'ne',\n gt: 'gt',\n gte: 'ge',\n lt: 'lt',\n lte: 'le',\n contains: 'substringof',\n doesnotcontain: 'substringof',\n endswith: 'endswith',\n startswith: 'startswith',\n isnull: 'eq',\n isnotnull: 'ne',\n isnullorempty: 'eq',\n isnotnullorempty: 'ne',\n isempty: 'eq',\n isnotempty: 'ne'\n }, odataFiltersVersionFour = extend({}, odataFilters, { contains: 'contains' }), mappers = {\n pageSize: $.noop,\n page: $.noop,\n filter: function (params, filter, useVersionFour) {\n if (filter) {\n filter = toOdataFilter(filter, useVersionFour);\n if (filter) {\n params.$filter = filter;\n }\n }\n },\n sort: function (params, orderby) {\n var expr = $.map(orderby, function (value) {\n var order = value.field.replace(/\\./g, '/');\n if (value.dir === 'desc') {\n order += ' desc';\n }\n return order;\n }).join(',');\n if (expr) {\n params.$orderby = expr;\n }\n },\n skip: function (params, skip) {\n if (skip) {\n params.$skip = skip;\n }\n },\n take: function (params, take) {\n if (take) {\n params.$top = take;\n }\n }\n }, defaultDataType = { read: { dataType: 'jsonp' } };\n function toOdataFilter(filter, useOdataFour) {\n var result = [], logic = filter.logic || 'and', idx, length, field, type, format, operator, value, ignoreCase, filters = filter.filters;\n for (idx = 0, length = filters.length; idx < length; idx++) {\n filter = filters[idx];\n field = filter.field;\n value = filter.value;\n operator = filter.operator;\n if (filter.filters) {\n filter = toOdataFilter(filter, useOdataFour);\n } else {\n ignoreCase = filter.ignoreCase;\n field = field.replace(/\\./g, '/');\n filter = odataFilters[operator];\n if (useOdataFour) {\n filter = odataFiltersVersionFour[operator];\n }\n if (operator === 'isnullorempty') {\n filter = kendo.format('{0} {1} null or {0} {1} \\'\\'', field, filter);\n } else if (operator === 'isnotnullorempty') {\n filter = kendo.format('{0} {1} null and {0} {1} \\'\\'', field, filter);\n } else if (operator === 'isnull' || operator === 'isnotnull') {\n filter = kendo.format('{0} {1} null', field, filter);\n } else if (operator === 'isempty' || operator === 'isnotempty') {\n filter = kendo.format('{0} {1} \\'\\'', field, filter);\n } else if (filter && value !== undefined) {\n type = $.type(value);\n if (type === 'string') {\n format = '\\'{1}\\'';\n value = value.replace(/'/g, '\\'\\'');\n if (ignoreCase === true) {\n field = 'tolower(' + field + ')';\n }\n } else if (type === 'date') {\n if (useOdataFour) {\n format = '{1:yyyy-MM-ddTHH:mm:ss+00:00}';\n value = kendo.timezone.apply(value, 'Etc/UTC');\n } else {\n format = 'datetime\\'{1:yyyy-MM-ddTHH:mm:ss}\\'';\n }\n } else {\n format = '{1}';\n }\n if (filter.length > 3) {\n if (filter !== 'substringof') {\n format = '{0}({2},' + format + ')';\n } else {\n format = '{0}(' + format + ',{2})';\n if (operator === 'doesnotcontain') {\n if (useOdataFour) {\n format = '{0}({2},\\'{1}\\') eq -1';\n filter = 'indexof';\n } else {\n format += ' eq false';\n }\n }\n }\n } else {\n format = '{2} {0} ' + format;\n }\n filter = kendo.format(format, filter, value, field);\n }\n }\n result.push(filter);\n }\n filter = result.join(' ' + logic + ' ');\n if (result.length > 1) {\n filter = '(' + filter + ')';\n }\n return filter;\n }\n function stripMetadata(obj) {\n for (var name in obj) {\n if (name.indexOf('@odata') === 0) {\n delete obj[name];\n }\n }\n }\n function hex16() {\n return Math.floor((1 + Math.random()) * 65536).toString(16).substr(1);\n }\n function createBoundary(prefix) {\n return prefix + hex16() + '-' + hex16() + '-' + hex16();\n }\n function createDelimeter(boundary, close) {\n var result = NEWLINE + '--' + boundary;\n if (close) {\n result += '--';\n }\n return result;\n }\n function createCommand(transport, item, httpVerb, command) {\n var transportUrl = transport.options[command].url;\n var commandPrefix = kendo.format('{0} ', httpVerb);\n if (isFunction(transportUrl)) {\n return commandPrefix + transportUrl(item);\n } else {\n return commandPrefix + transportUrl;\n }\n }\n function getOperationHeader(changeset, changeId) {\n var header = '';\n header += createDelimeter(changeset, false);\n header += NEWLINE + 'Content-Type: application/http';\n header += NEWLINE + 'Content-Transfer-Encoding: binary';\n header += NEWLINE + 'Content-ID: ' + changeId;\n return header;\n }\n function getOperationContent(item) {\n var content = '';\n content += NEWLINE + 'Content-Type: application/json;odata=minimalmetadata';\n content += NEWLINE + 'Prefer: return=representation';\n content += DOUBLELINE + kendo.stringify(item);\n return content;\n }\n function getOperations(collection, changeset, changeId, command, transport, skipContent) {\n var requestBody = '';\n for (var i = 0; i < collection.length; i++) {\n requestBody += getOperationHeader(changeset, changeId);\n requestBody += DOUBLELINE + createCommand(transport, collection[i], transport.options[command].type, command) + ' HTTP/1.1';\n if (!skipContent) {\n requestBody += getOperationContent(collection[i]);\n }\n requestBody += NEWLINE;\n changeId++;\n }\n return requestBody;\n }\n function processCollection(colection, boundary, changeset, changeId, transport, command, skipContent) {\n var requestBody = '';\n requestBody += getBoundary(boundary, changeset);\n requestBody += getOperations(colection, changeset, changeId, command, transport, skipContent);\n requestBody += createDelimeter(changeset, true);\n requestBody += NEWLINE;\n return requestBody;\n }\n function getBoundary(boundary, changeset) {\n var requestBody = '';\n requestBody += '--' + boundary + NEWLINE;\n requestBody += 'Content-Type: multipart/mixed; boundary=' + changeset + NEWLINE;\n return requestBody;\n }\n function createBatchRequest(transport, colections) {\n var options = {};\n var boundary = createBoundary('sf_batch_');\n var requestBody = '';\n var changeId = 0;\n var batchURL = transport.options.batch.url;\n var changeset = createBoundary('sf_changeset_');\n options.type = transport.options.batch.type;\n options.url = isFunction(batchURL) ? batchURL() : batchURL;\n options.headers = { 'Content-Type': 'multipart/mixed; boundary=' + boundary };\n if (colections.updated.length) {\n requestBody += processCollection(colections.updated, boundary, changeset, changeId, transport, 'update', false);\n changeId += colections.updated.length;\n changeset = createBoundary('sf_changeset_');\n }\n if (colections.destroyed.length) {\n requestBody += processCollection(colections.destroyed, boundary, changeset, changeId, transport, 'destroy', true);\n changeId += colections.destroyed.length;\n changeset = createBoundary('sf_changeset_');\n }\n if (colections.created.length) {\n requestBody += processCollection(colections.created, boundary, changeset, changeId, transport, 'create', false);\n }\n requestBody += createDelimeter(boundary, true);\n options.data = requestBody;\n return options;\n }\n function parseBatchResponse(responseText) {\n var responseMarkers = responseText.match(/--changesetresponse_[a-z0-9-]+$/gm);\n var markerIndex = 0;\n var collections = [];\n var changeBody;\n var status;\n var code;\n var marker;\n var jsonModel;\n collections.push({\n models: [],\n passed: true\n });\n for (var i = 0; i < responseMarkers.length; i++) {\n marker = responseMarkers[i];\n if (marker.lastIndexOf('--', marker.length - 1)) {\n if (i < responseMarkers.length - 1) {\n collections.push({\n models: [],\n passed: true\n });\n }\n continue;\n }\n if (!markerIndex) {\n markerIndex = responseText.indexOf(marker);\n } else {\n markerIndex = responseText.indexOf(marker, markerIndex + marker.length);\n }\n changeBody = responseText.substring(markerIndex, responseText.indexOf('--', markerIndex + 1));\n status = changeBody.match(/^HTTP\\/1\\.\\d (\\d{3}) (.*)$/gm).pop();\n code = kendo.parseFloat(status.match(/\\d{3}/g).pop());\n if (code >= 200 && code <= 299) {\n jsonModel = changeBody.match(/\\{.*\\}/gm);\n if (jsonModel) {\n collections[collections.length - 1].models.push(JSON.parse(jsonModel[0]));\n }\n } else {\n collections[collections.length - 1].passed = false;\n }\n }\n return collections;\n }\n extend(true, kendo.data, {\n schemas: {\n odata: {\n type: 'json',\n data: function (data) {\n return data.d.results || [data.d];\n },\n total: 'd.__count'\n }\n },\n transports: {\n odata: {\n read: {\n cache: true,\n dataType: 'jsonp',\n jsonp: '$callback'\n },\n update: {\n cache: true,\n dataType: 'json',\n contentType: 'application/json',\n type: 'PUT'\n },\n create: {\n cache: true,\n dataType: 'json',\n contentType: 'application/json',\n type: 'POST'\n },\n destroy: {\n cache: true,\n dataType: 'json',\n type: 'DELETE'\n },\n parameterMap: function (options, type, useVersionFour) {\n var params, value, option, dataType;\n options = options || {};\n type = type || 'read';\n dataType = (this.options || defaultDataType)[type];\n dataType = dataType ? dataType.dataType : 'json';\n if (type === 'read') {\n params = { $inlinecount: 'allpages' };\n if (dataType != 'json') {\n params.$format = 'json';\n }\n for (option in options) {\n if (mappers[option]) {\n mappers[option](params, options[option], useVersionFour);\n } else {\n params[option] = options[option];\n }\n }\n } else {\n if (dataType !== 'json') {\n throw new Error('Only json dataType can be used for ' + type + ' operation.');\n }\n if (type !== 'destroy') {\n for (option in options) {\n value = options[option];\n if (typeof value === 'number') {\n options[option] = value + '';\n }\n }\n params = kendo.stringify(options);\n }\n }\n return params;\n }\n }\n }\n });\n extend(true, kendo.data, {\n schemas: {\n 'odata-v4': {\n type: 'json',\n data: function (data) {\n if ($.isArray(data)) {\n for (var i = 0; i < data.length; i++) {\n stripMetadata(data[i]);\n }\n return data;\n } else {\n data = $.extend({}, data);\n stripMetadata(data);\n if (data.value) {\n return data.value;\n }\n return [data];\n }\n },\n total: function (data) {\n return data['@odata.count'];\n }\n }\n },\n transports: {\n 'odata-v4': {\n batch: { type: 'POST' },\n read: {\n cache: true,\n dataType: 'json'\n },\n update: {\n cache: true,\n dataType: 'json',\n contentType: 'application/json;IEEE754Compatible=true',\n type: 'PUT'\n },\n create: {\n cache: true,\n dataType: 'json',\n contentType: 'application/json;IEEE754Compatible=true',\n type: 'POST'\n },\n destroy: {\n cache: true,\n dataType: 'json',\n type: 'DELETE'\n },\n parameterMap: function (options, type) {\n var result = kendo.data.transports.odata.parameterMap(options, type, true);\n if (type == 'read') {\n result.$count = true;\n delete result.$inlinecount;\n }\n return result;\n },\n submit: function (e) {\n var that = this;\n var options = createBatchRequest(that, e.data);\n var collections = e.data;\n if (!collections.updated.length && !collections.destroyed.length && !collections.created.length) {\n return;\n }\n $.ajax(extend(true, {}, {\n success: function (response) {\n var responses = parseBatchResponse(response);\n var index = 0;\n var current;\n if (collections.updated.length) {\n current = responses[index];\n if (current.passed) {\n e.success(current.models.length ? current.models : [], 'update');\n }\n index++;\n }\n if (collections.destroyed.length) {\n current = responses[index];\n if (current.passed) {\n e.success([], 'destroy');\n }\n index++;\n }\n if (collections.created.length) {\n current = responses[index];\n if (current.passed) {\n e.success(current.models, 'create');\n }\n }\n },\n error: function (response, status, error) {\n e.error(response, status, error);\n }\n }, options));\n }\n }\n }\n });\n }(window.kendo.jQuery));\n return window.kendo;\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('kendo.data.xml', ['kendo.core'], f);\n}(function () {\n var __meta__ = {\n id: 'data.xml',\n name: 'XML',\n category: 'framework',\n depends: ['core'],\n hidden: true\n };\n (function ($, undefined) {\n var kendo = window.kendo, isArray = $.isArray, isPlainObject = $.isPlainObject, map = $.map, each = $.each, extend = $.extend, getter = kendo.getter, Class = kendo.Class;\n var XmlDataReader = Class.extend({\n init: function (options) {\n var that = this, total = options.total, model = options.model, parse = options.parse, errors = options.errors, serialize = options.serialize, data = options.data;\n if (model) {\n if (isPlainObject(model)) {\n var base = options.modelBase || kendo.data.Model;\n if (model.fields) {\n each(model.fields, function (field, value) {\n if (isPlainObject(value) && value.field) {\n if (!$.isFunction(value.field)) {\n value = extend(value, { field: that.getter(value.field) });\n }\n } else {\n value = { field: that.getter(value) };\n }\n model.fields[field] = value;\n });\n }\n var id = model.id;\n if (id) {\n var idField = {};\n idField[that.xpathToMember(id, true)] = { field: that.getter(id) };\n model.fields = extend(idField, model.fields);\n model.id = that.xpathToMember(id);\n }\n model = base.define(model);\n }\n that.model = model;\n }\n if (total) {\n if (typeof total == 'string') {\n total = that.getter(total);\n that.total = function (data) {\n return parseInt(total(data), 10);\n };\n } else if (typeof total == 'function') {\n that.total = total;\n }\n }\n if (errors) {\n if (typeof errors == 'string') {\n errors = that.getter(errors);\n that.errors = function (data) {\n return errors(data) || null;\n };\n } else if (typeof errors == 'function') {\n that.errors = errors;\n }\n }\n if (data) {\n if (typeof data == 'string') {\n data = that.xpathToMember(data);\n that.data = function (value) {\n var result = that.evaluate(value, data), modelInstance;\n result = isArray(result) ? result : [result];\n if (that.model && model.fields) {\n modelInstance = new that.model();\n return map(result, function (value) {\n if (value) {\n var record = {}, field;\n for (field in model.fields) {\n record[field] = modelInstance._parse(field, model.fields[field].field(value));\n }\n return record;\n }\n });\n }\n return result;\n };\n } else if (typeof data == 'function') {\n that.data = data;\n }\n }\n if (typeof parse == 'function') {\n var xmlParse = that.parse;\n that.parse = function (data) {\n var xml = parse.call(that, data);\n return xmlParse.call(that, xml);\n };\n }\n if (typeof serialize == 'function') {\n that.serialize = serialize;\n }\n },\n total: function (result) {\n return this.data(result).length;\n },\n errors: function (data) {\n return data ? data.errors : null;\n },\n serialize: function (data) {\n return data;\n },\n parseDOM: function (element) {\n var result = {}, parsedNode, node, nodeType, nodeName, member, attribute, attributes = element.attributes, attributeCount = attributes.length, idx;\n for (idx = 0; idx < attributeCount; idx++) {\n attribute = attributes[idx];\n result['@' + attribute.nodeName] = attribute.nodeValue;\n }\n for (node = element.firstChild; node; node = node.nextSibling) {\n nodeType = node.nodeType;\n if (nodeType === 3 || nodeType === 4) {\n result['#text'] = node.nodeValue;\n } else if (nodeType === 1) {\n parsedNode = this.parseDOM(node);\n nodeName = node.nodeName;\n member = result[nodeName];\n if (isArray(member)) {\n member.push(parsedNode);\n } else if (member !== undefined) {\n member = [\n member,\n parsedNode\n ];\n } else {\n member = parsedNode;\n }\n result[nodeName] = member;\n }\n }\n return result;\n },\n evaluate: function (value, expression) {\n var members = expression.split('.'), member, result, length, intermediateResult, idx;\n while (member = members.shift()) {\n value = value[member];\n if (isArray(value)) {\n result = [];\n expression = members.join('.');\n for (idx = 0, length = value.length; idx < length; idx++) {\n intermediateResult = this.evaluate(value[idx], expression);\n intermediateResult = isArray(intermediateResult) ? intermediateResult : [intermediateResult];\n result.push.apply(result, intermediateResult);\n }\n return result;\n }\n }\n return value;\n },\n parse: function (xml) {\n var documentElement, tree, result = {};\n documentElement = xml.documentElement || $.parseXML(xml).documentElement;\n tree = this.parseDOM(documentElement);\n result[documentElement.nodeName] = tree;\n return result;\n },\n xpathToMember: function (member, raw) {\n if (!member) {\n return '';\n }\n member = member.replace(/^\\//, '').replace(/\\//g, '.');\n if (member.indexOf('@') >= 0) {\n return member.replace(/\\.?(@.*)/, raw ? '$1' : '[\"$1\"]');\n }\n if (member.indexOf('text()') >= 0) {\n return member.replace(/(\\.?text\\(\\))/, raw ? '#text' : '[\"#text\"]');\n }\n return member;\n },\n getter: function (member) {\n return getter(this.xpathToMember(member), true);\n }\n });\n $.extend(true, kendo.data, {\n XmlDataReader: XmlDataReader,\n readers: { xml: XmlDataReader }\n });\n }(window.kendo.jQuery));\n return window.kendo;\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('kendo.data', [\n 'kendo.core',\n 'kendo.data.odata',\n 'kendo.data.xml'\n ], f);\n}(function () {\n var __meta__ = {\n id: 'data',\n name: 'Data source',\n category: 'framework',\n description: 'Powerful component for using local and remote data.Fully supports CRUD, Sorting, Paging, Filtering, Grouping, and Aggregates.',\n depends: ['core'],\n features: [\n {\n id: 'data-odata',\n name: 'OData',\n description: 'Support for accessing Open Data Protocol (OData) services.',\n depends: ['data.odata']\n },\n {\n id: 'data-signalr',\n name: 'SignalR',\n description: 'Support for binding to SignalR hubs.',\n depends: ['data.signalr']\n },\n {\n id: 'data-XML',\n name: 'XML',\n description: 'Support for binding to XML.',\n depends: ['data.xml']\n }\n ]\n };\n (function ($, undefined) {\n var extend = $.extend, proxy = $.proxy, isPlainObject = $.isPlainObject, isEmptyObject = $.isEmptyObject, isArray = $.isArray, grep = $.grep, ajax = $.ajax, map, each = $.each, noop = $.noop, kendo = window.kendo, isFunction = kendo.isFunction, Observable = kendo.Observable, Class = kendo.Class, STRING = 'string', FUNCTION = 'function', ASCENDING = 'asc', CREATE = 'create', READ = 'read', UPDATE = 'update', DESTROY = 'destroy', CHANGE = 'change', SYNC = 'sync', GET = 'get', ERROR = 'error', REQUESTSTART = 'requestStart', PROGRESS = 'progress', REQUESTEND = 'requestEnd', crud = [\n CREATE,\n READ,\n UPDATE,\n DESTROY\n ], identity = function (o) {\n return o;\n }, getter = kendo.getter, stringify = kendo.stringify, math = Math, push = [].push, join = [].join, pop = [].pop, splice = [].splice, shift = [].shift, slice = [].slice, unshift = [].unshift, toString = {}.toString, stableSort = kendo.support.stableSort, dateRegExp = /^\\/Date\\((.*?)\\)\\/$/;\n var ObservableArray = Observable.extend({\n init: function (array, type) {\n var that = this;\n that.type = type || ObservableObject;\n Observable.fn.init.call(that);\n that.length = array.length;\n that.wrapAll(array, that);\n },\n at: function (index) {\n return this[index];\n },\n toJSON: function (serializeFunctions) {\n var idx, length = this.length, value, json = new Array(length);\n for (idx = 0; idx < length; idx++) {\n value = this[idx];\n if (value instanceof ObservableObject) {\n value = value.toJSON(serializeFunctions);\n }\n json[idx] = value;\n }\n return json;\n },\n parent: noop,\n wrapAll: function (source, target) {\n var that = this, idx, length, parent = function () {\n return that;\n };\n target = target || [];\n for (idx = 0, length = source.length; idx < length; idx++) {\n target[idx] = that.wrap(source[idx], parent);\n }\n return target;\n },\n wrap: function (object, parent) {\n var that = this, observable;\n if (object !== null && toString.call(object) === '[object Object]') {\n observable = object instanceof that.type || object instanceof Model;\n if (!observable) {\n object = object instanceof ObservableObject ? object.toJSON() : object;\n object = new that.type(object);\n }\n object.parent = parent;\n object.bind(CHANGE, function (e) {\n that.trigger(CHANGE, {\n field: e.field,\n node: e.node,\n index: e.index,\n items: e.items || [this],\n action: e.node ? e.action || 'itemloaded' : 'itemchange'\n });\n });\n }\n return object;\n },\n push: function () {\n var index = this.length, items = this.wrapAll(arguments), result;\n result = push.apply(this, items);\n if (!this.omitChangeEvent) {\n this.trigger(CHANGE, {\n action: 'add',\n index: index,\n items: items\n });\n }\n return result;\n },\n slice: slice,\n sort: [].sort,\n join: join,\n pop: function () {\n var length = this.length, result = pop.apply(this);\n if (length) {\n this.trigger(CHANGE, {\n action: 'remove',\n index: length - 1,\n items: [result]\n });\n }\n return result;\n },\n splice: function (index, howMany, item) {\n var items = this.wrapAll(slice.call(arguments, 2)), result, i, len;\n result = splice.apply(this, [\n index,\n howMany\n ].concat(items));\n if (result.length) {\n this.trigger(CHANGE, {\n action: 'remove',\n index: index,\n items: result\n });\n for (i = 0, len = result.length; i < len; i++) {\n if (result[i] && result[i].children) {\n result[i].unbind(CHANGE);\n }\n }\n }\n if (item) {\n this.trigger(CHANGE, {\n action: 'add',\n index: index,\n items: items\n });\n }\n return result;\n },\n shift: function () {\n var length = this.length, result = shift.apply(this);\n if (length) {\n this.trigger(CHANGE, {\n action: 'remove',\n index: 0,\n items: [result]\n });\n }\n return result;\n },\n unshift: function () {\n var items = this.wrapAll(arguments), result;\n result = unshift.apply(this, items);\n this.trigger(CHANGE, {\n action: 'add',\n index: 0,\n items: items\n });\n return result;\n },\n indexOf: function (item) {\n var that = this, idx, length;\n for (idx = 0, length = that.length; idx < length; idx++) {\n if (that[idx] === item) {\n return idx;\n }\n }\n return -1;\n },\n forEach: function (callback, thisArg) {\n var idx = 0;\n var length = this.length;\n var context = thisArg || window;\n for (; idx < length; idx++) {\n callback.call(context, this[idx], idx, this);\n }\n },\n map: function (callback, thisArg) {\n var idx = 0;\n var result = [];\n var length = this.length;\n var context = thisArg || window;\n for (; idx < length; idx++) {\n result[idx] = callback.call(context, this[idx], idx, this);\n }\n return result;\n },\n reduce: function (callback) {\n var idx = 0, result, length = this.length;\n if (arguments.length == 2) {\n result = arguments[1];\n } else if (idx < length) {\n result = this[idx++];\n }\n for (; idx < length; idx++) {\n result = callback(result, this[idx], idx, this);\n }\n return result;\n },\n reduceRight: function (callback) {\n var idx = this.length - 1, result;\n if (arguments.length == 2) {\n result = arguments[1];\n } else if (idx > 0) {\n result = this[idx--];\n }\n for (; idx >= 0; idx--) {\n result = callback(result, this[idx], idx, this);\n }\n return result;\n },\n filter: function (callback, thisArg) {\n var idx = 0;\n var result = [];\n var item;\n var length = this.length;\n var context = thisArg || window;\n for (; idx < length; idx++) {\n item = this[idx];\n if (callback.call(context, item, idx, this)) {\n result[result.length] = item;\n }\n }\n return result;\n },\n find: function (callback, thisArg) {\n var idx = 0;\n var item;\n var length = this.length;\n var context = thisArg || window;\n for (; idx < length; idx++) {\n item = this[idx];\n if (callback.call(context, item, idx, this)) {\n return item;\n }\n }\n },\n every: function (callback, thisArg) {\n var idx = 0;\n var item;\n var length = this.length;\n var context = thisArg || window;\n for (; idx < length; idx++) {\n item = this[idx];\n if (!callback.call(context, item, idx, this)) {\n return false;\n }\n }\n return true;\n },\n some: function (callback, thisArg) {\n var idx = 0;\n var item;\n var length = this.length;\n var context = thisArg || window;\n for (; idx < length; idx++) {\n item = this[idx];\n if (callback.call(context, item, idx, this)) {\n return true;\n }\n }\n return false;\n },\n remove: function (item) {\n var idx = this.indexOf(item);\n if (idx !== -1) {\n this.splice(idx, 1);\n }\n },\n empty: function () {\n this.splice(0, this.length);\n }\n });\n if (typeof Symbol !== 'undefined' && Symbol.iterator && !ObservableArray.prototype[Symbol.iterator]) {\n ObservableArray.prototype[Symbol.iterator] = [][Symbol.iterator];\n }\n var LazyObservableArray = ObservableArray.extend({\n init: function (data, type, events) {\n Observable.fn.init.call(this);\n this.type = type || ObservableObject;\n if (events) {\n this._events = events;\n }\n for (var idx = 0; idx < data.length; idx++) {\n this[idx] = data[idx];\n }\n this.length = idx;\n this._parent = proxy(function () {\n return this;\n }, this);\n },\n at: function (index) {\n var item = this[index];\n if (!(item instanceof this.type)) {\n item = this[index] = this.wrap(item, this._parent);\n } else {\n item.parent = this._parent;\n }\n return item;\n }\n });\n function eventHandler(context, type, field, prefix) {\n return function (e) {\n var event = {}, key;\n for (key in e) {\n event[key] = e[key];\n }\n if (prefix) {\n event.field = field + '.' + e.field;\n } else {\n event.field = field;\n }\n if (type == CHANGE && context._notifyChange) {\n context._notifyChange(event);\n }\n context.trigger(type, event);\n };\n }\n var ObservableObject = Observable.extend({\n init: function (value) {\n var that = this, member, field, parent = function () {\n return that;\n };\n Observable.fn.init.call(this);\n this._handlers = {};\n for (field in value) {\n member = value[field];\n if (typeof member === 'object' && member && !member.getTime && field.charAt(0) != '_') {\n member = that.wrap(member, field, parent);\n }\n that[field] = member;\n }\n that.uid = kendo.guid();\n },\n shouldSerialize: function (field, serializeFunctions) {\n return this.hasOwnProperty(field) && field !== '_handlers' && field !== '_events' && (serializeFunctions && serializeFunctions[field] || typeof this[field] !== FUNCTION) && field !== 'uid';\n },\n forEach: function (f) {\n for (var i in this) {\n if (this.shouldSerialize(i)) {\n f(this[i], i);\n }\n }\n },\n toJSON: function (serializeFunctions) {\n var result = {}, value, field;\n for (field in this) {\n if (this.shouldSerialize(field, serializeFunctions)) {\n value = this[field];\n if (value instanceof ObservableObject || value instanceof ObservableArray) {\n value = value.toJSON(serializeFunctions);\n }\n result[field] = value;\n }\n }\n return result;\n },\n get: function (field) {\n var that = this, result;\n that.trigger(GET, { field: field });\n if (field === 'this') {\n result = that;\n } else {\n result = kendo.getter(field, true)(that);\n }\n return result;\n },\n _set: function (field, value) {\n var that = this;\n var composite = field.indexOf('.') >= 0;\n if (composite) {\n var paths = field.split('.'), path = '';\n while (paths.length > 1) {\n path += paths.shift();\n var obj = kendo.getter(path, true)(that);\n if (obj instanceof ObservableObject) {\n obj.set(paths.join('.'), value);\n return composite;\n }\n path += '.';\n }\n }\n kendo.setter(field)(that, value);\n return composite;\n },\n set: function (field, value) {\n var that = this, isSetPrevented = false, composite = field.indexOf('.') >= 0, current = kendo.getter(field, true)(that);\n if (current !== value) {\n if (current instanceof Observable && this._handlers[field]) {\n if (this._handlers[field].get) {\n current.unbind(GET, this._handlers[field].get);\n }\n current.unbind(CHANGE, this._handlers[field].change);\n }\n isSetPrevented = that.trigger('set', {\n field: field,\n value: value\n });\n if (!isSetPrevented) {\n if (!composite) {\n value = that.wrap(value, field, function () {\n return that;\n });\n }\n if (!that._set(field, value) || field.indexOf('(') >= 0 || field.indexOf('[') >= 0) {\n that.trigger(CHANGE, { field: field });\n }\n }\n }\n return isSetPrevented;\n },\n parent: noop,\n wrap: function (object, field, parent) {\n var that = this;\n var get;\n var change;\n var type = toString.call(object);\n if (object != null && (type === '[object Object]' || type === '[object Array]')) {\n var isObservableArray = object instanceof ObservableArray;\n var isDataSource = object instanceof DataSource;\n if (type === '[object Object]' && !isDataSource && !isObservableArray) {\n if (!(object instanceof ObservableObject)) {\n object = new ObservableObject(object);\n }\n get = eventHandler(that, GET, field, true);\n object.bind(GET, get);\n change = eventHandler(that, CHANGE, field, true);\n object.bind(CHANGE, change);\n that._handlers[field] = {\n get: get,\n change: change\n };\n } else if (type === '[object Array]' || isObservableArray || isDataSource) {\n if (!isObservableArray && !isDataSource) {\n object = new ObservableArray(object);\n }\n change = eventHandler(that, CHANGE, field, false);\n object.bind(CHANGE, change);\n that._handlers[field] = { change: change };\n }\n object.parent = parent;\n }\n return object;\n }\n });\n function equal(x, y) {\n if (x === y) {\n return true;\n }\n var xtype = $.type(x), ytype = $.type(y), field;\n if (xtype !== ytype) {\n return false;\n }\n if (xtype === 'date') {\n return x.getTime() === y.getTime();\n }\n if (xtype !== 'object' && xtype !== 'array') {\n return false;\n }\n for (field in x) {\n if (!equal(x[field], y[field])) {\n return false;\n }\n }\n return true;\n }\n var parsers = {\n 'number': function (value) {\n if (typeof value === STRING && value.toLowerCase() === 'null') {\n return null;\n }\n return kendo.parseFloat(value);\n },\n 'date': function (value) {\n if (typeof value === STRING && value.toLowerCase() === 'null') {\n return null;\n }\n return kendo.parseDate(value);\n },\n 'boolean': function (value) {\n if (typeof value === STRING) {\n if (value.toLowerCase() === 'null') {\n return null;\n } else {\n return value.toLowerCase() === 'true';\n }\n }\n return value != null ? !!value : value;\n },\n 'string': function (value) {\n if (typeof value === STRING && value.toLowerCase() === 'null') {\n return null;\n }\n return value != null ? value + '' : value;\n },\n 'default': function (value) {\n return value;\n }\n };\n var defaultValues = {\n 'string': '',\n 'number': 0,\n 'date': new Date(),\n 'boolean': false,\n 'default': ''\n };\n function getFieldByName(obj, name) {\n var field, fieldName;\n for (fieldName in obj) {\n field = obj[fieldName];\n if (isPlainObject(field) && field.field && field.field === name) {\n return field;\n } else if (field === name) {\n return field;\n }\n }\n return null;\n }\n var Model = ObservableObject.extend({\n init: function (data) {\n var that = this;\n if (!data || $.isEmptyObject(data)) {\n data = $.extend({}, that.defaults, data);\n if (that._initializers) {\n for (var idx = 0; idx < that._initializers.length; idx++) {\n var name = that._initializers[idx];\n data[name] = that.defaults[name]();\n }\n }\n }\n ObservableObject.fn.init.call(that, data);\n that.dirty = false;\n that.dirtyFields = {};\n if (that.idField) {\n that.id = that.get(that.idField);\n if (that.id === undefined) {\n that.id = that._defaultId;\n }\n }\n },\n shouldSerialize: function (field) {\n return ObservableObject.fn.shouldSerialize.call(this, field) && field !== 'uid' && !(this.idField !== 'id' && field === 'id') && field !== 'dirty' && field !== 'dirtyFields' && field !== '_accessors';\n },\n _parse: function (field, value) {\n var that = this, fieldName = field, fields = that.fields || {}, parse;\n field = fields[field];\n if (!field) {\n field = getFieldByName(fields, fieldName);\n }\n if (field) {\n parse = field.parse;\n if (!parse && field.type) {\n parse = parsers[field.type.toLowerCase()];\n }\n }\n return parse ? parse(value) : value;\n },\n _notifyChange: function (e) {\n var action = e.action;\n if (action == 'add' || action == 'remove') {\n this.dirty = true;\n this.dirtyFields[e.field] = true;\n }\n },\n editable: function (field) {\n field = (this.fields || {})[field];\n return field ? field.editable !== false : true;\n },\n set: function (field, value) {\n var that = this;\n var dirty = that.dirty;\n if (that.editable(field)) {\n value = that._parse(field, value);\n if (!equal(value, that.get(field))) {\n that.dirty = true;\n that.dirtyFields[field] = true;\n if (ObservableObject.fn.set.call(that, field, value) && !dirty) {\n that.dirty = dirty;\n if (!that.dirty) {\n that.dirtyFields[field] = false;\n }\n }\n } else {\n that.trigger('equalSet', {\n field: field,\n value: value\n });\n }\n }\n },\n accept: function (data) {\n var that = this, parent = function () {\n return that;\n }, field;\n for (field in data) {\n var value = data[field];\n if (field.charAt(0) != '_') {\n value = that.wrap(data[field], field, parent);\n }\n that._set(field, value);\n }\n if (that.idField) {\n that.id = that.get(that.idField);\n }\n that.dirty = false;\n that.dirtyFields = {};\n },\n isNew: function () {\n return this.id === this._defaultId;\n }\n });\n Model.define = function (base, options) {\n if (options === undefined) {\n options = base;\n base = Model;\n }\n var model, proto = extend({ defaults: {} }, options), name, field, type, value, idx, length, fields = {}, originalName, id = proto.id, functionFields = [];\n if (id) {\n proto.idField = id;\n }\n if (proto.id) {\n delete proto.id;\n }\n if (id) {\n proto.defaults[id] = proto._defaultId = '';\n }\n if (toString.call(proto.fields) === '[object Array]') {\n for (idx = 0, length = proto.fields.length; idx < length; idx++) {\n field = proto.fields[idx];\n if (typeof field === STRING) {\n fields[field] = {};\n } else if (field.field) {\n fields[field.field] = field;\n }\n }\n proto.fields = fields;\n }\n for (name in proto.fields) {\n field = proto.fields[name];\n type = field.type || 'default';\n value = null;\n originalName = name;\n name = typeof field.field === STRING ? field.field : name;\n if (!field.nullable) {\n value = proto.defaults[originalName !== name ? originalName : name] = field.defaultValue !== undefined ? field.defaultValue : defaultValues[type.toLowerCase()];\n if (typeof value === 'function') {\n functionFields.push(name);\n }\n }\n if (options.id === name) {\n proto._defaultId = value;\n }\n proto.defaults[originalName !== name ? originalName : name] = value;\n field.parse = field.parse || parsers[type];\n }\n if (functionFields.length > 0) {\n proto._initializers = functionFields;\n }\n model = base.extend(proto);\n model.define = function (options) {\n return Model.define(model, options);\n };\n if (proto.fields) {\n model.fields = proto.fields;\n model.idField = proto.idField;\n }\n return model;\n };\n var Comparer = {\n selector: function (field) {\n return isFunction(field) ? field : getter(field);\n },\n compare: function (field) {\n var selector = this.selector(field);\n return function (a, b) {\n a = selector(a);\n b = selector(b);\n if (a == null && b == null) {\n return 0;\n }\n if (a == null) {\n return -1;\n }\n if (b == null) {\n return 1;\n }\n if (a.localeCompare) {\n return a.localeCompare(b);\n }\n return a > b ? 1 : a < b ? -1 : 0;\n };\n },\n create: function (sort) {\n var compare = sort.compare || this.compare(sort.field);\n if (sort.dir == 'desc') {\n return function (a, b) {\n return compare(b, a, true);\n };\n }\n return compare;\n },\n combine: function (comparers) {\n return function (a, b) {\n var result = comparers[0](a, b), idx, length;\n for (idx = 1, length = comparers.length; idx < length; idx++) {\n result = result || comparers[idx](a, b);\n }\n return result;\n };\n }\n };\n var StableComparer = extend({}, Comparer, {\n asc: function (field) {\n var selector = this.selector(field);\n return function (a, b) {\n var valueA = selector(a);\n var valueB = selector(b);\n if (valueA && valueA.getTime && valueB && valueB.getTime) {\n valueA = valueA.getTime();\n valueB = valueB.getTime();\n }\n if (valueA === valueB) {\n return a.__position - b.__position;\n }\n if (valueA == null) {\n return -1;\n }\n if (valueB == null) {\n return 1;\n }\n if (valueA.localeCompare) {\n return valueA.localeCompare(valueB);\n }\n return valueA > valueB ? 1 : -1;\n };\n },\n desc: function (field) {\n var selector = this.selector(field);\n return function (a, b) {\n var valueA = selector(a);\n var valueB = selector(b);\n if (valueA && valueA.getTime && valueB && valueB.getTime) {\n valueA = valueA.getTime();\n valueB = valueB.getTime();\n }\n if (valueA === valueB) {\n return a.__position - b.__position;\n }\n if (valueA == null) {\n return 1;\n }\n if (valueB == null) {\n return -1;\n }\n if (valueB.localeCompare) {\n return valueB.localeCompare(valueA);\n }\n return valueA < valueB ? 1 : -1;\n };\n },\n create: function (sort) {\n return this[sort.dir](sort.field);\n }\n });\n map = function (array, callback) {\n var idx, length = array.length, result = new Array(length);\n for (idx = 0; idx < length; idx++) {\n result[idx] = callback(array[idx], idx, array);\n }\n return result;\n };\n var operators = function () {\n function quote(str) {\n if (typeof str == 'string') {\n str = str.replace(/[\\r\\n]+/g, '');\n }\n return JSON.stringify(str);\n }\n function textOp(impl) {\n return function (a, b, ignore, accentFoldingFiltering) {\n b += '';\n if (ignore) {\n a = '(' + a + ' + \\'\\').toString()' + (accentFoldingFiltering ? '.toLocaleLowerCase(\\'' + accentFoldingFiltering + '\\')' : '.toLowerCase()');\n b = accentFoldingFiltering ? b.toLocaleLowerCase(accentFoldingFiltering) : b.toLowerCase();\n }\n return impl(a, quote(b), ignore);\n };\n }\n function operator(op, a, b, ignore, accentFoldingFiltering) {\n if (b != null) {\n if (typeof b === STRING) {\n var date = dateRegExp.exec(b);\n if (date) {\n b = new Date(+date[1]);\n } else if (ignore) {\n b = quote(accentFoldingFiltering ? b.toLocaleLowerCase(accentFoldingFiltering) : b.toLowerCase());\n a = '((' + a + ' || \\'\\')+\\'\\')' + (accentFoldingFiltering ? '.toLocaleLowerCase(\\'' + accentFoldingFiltering + '\\')' : '.toLowerCase()');\n } else {\n b = quote(b);\n }\n }\n if (b.getTime) {\n a = '(' + a + '&&' + a + '.getTime?' + a + '.getTime():' + a + ')';\n b = b.getTime();\n }\n }\n return a + ' ' + op + ' ' + b;\n }\n function getMatchRegexp(pattern) {\n for (var rx = '/^', esc = false, i = 0; i < pattern.length; ++i) {\n var ch = pattern.charAt(i);\n if (esc) {\n rx += '\\\\' + ch;\n } else if (ch == '~') {\n esc = true;\n continue;\n } else if (ch == '*') {\n rx += '.*';\n } else if (ch == '?') {\n rx += '.';\n } else if ('.+^$()[]{}|\\\\/\\n\\r\\u2028\\u2029\\xA0'.indexOf(ch) >= 0) {\n rx += '\\\\' + ch;\n } else {\n rx += ch;\n }\n esc = false;\n }\n return rx + '$/';\n }\n return {\n quote: function (value) {\n if (value && value.getTime) {\n return 'new Date(' + value.getTime() + ')';\n }\n return quote(value);\n },\n eq: function (a, b, ignore, accentFoldingFiltering) {\n return operator('==', a, b, ignore, accentFoldingFiltering);\n },\n neq: function (a, b, ignore, accentFoldingFiltering) {\n return operator('!=', a, b, ignore, accentFoldingFiltering);\n },\n gt: function (a, b, ignore) {\n return operator('>', a, b, ignore);\n },\n gte: function (a, b, ignore) {\n return operator('>=', a, b, ignore);\n },\n lt: function (a, b, ignore) {\n return operator('<', a, b, ignore);\n },\n lte: function (a, b, ignore) {\n return operator('<=', a, b, ignore);\n },\n startswith: textOp(function (a, b) {\n return a + '.lastIndexOf(' + b + ', 0) == 0';\n }),\n doesnotstartwith: textOp(function (a, b) {\n return a + '.lastIndexOf(' + b + ', 0) == -1';\n }),\n endswith: textOp(function (a, b) {\n var n = b ? b.length - 2 : 0;\n return a + '.indexOf(' + b + ', ' + a + '.length - ' + n + ') >= 0';\n }),\n doesnotendwith: textOp(function (a, b) {\n var n = b ? b.length - 2 : 0;\n return a + '.indexOf(' + b + ', ' + a + '.length - ' + n + ') < 0';\n }),\n contains: textOp(function (a, b) {\n return a + '.indexOf(' + b + ') >= 0';\n }),\n doesnotcontain: textOp(function (a, b) {\n return a + '.indexOf(' + b + ') == -1';\n }),\n matches: textOp(function (a, b) {\n b = b.substring(1, b.length - 1);\n return getMatchRegexp(b) + '.test(' + a + ')';\n }),\n doesnotmatch: textOp(function (a, b) {\n b = b.substring(1, b.length - 1);\n return '!' + getMatchRegexp(b) + '.test(' + a + ')';\n }),\n isempty: function (a) {\n return a + ' === \\'\\'';\n },\n isnotempty: function (a) {\n return a + ' !== \\'\\'';\n },\n isnull: function (a) {\n return '(' + a + ' == null)';\n },\n isnotnull: function (a) {\n return '(' + a + ' != null)';\n },\n isnullorempty: function (a) {\n return '(' + a + ' === null) || (' + a + ' === \\'\\')';\n },\n isnotnullorempty: function (a) {\n return '(' + a + ' !== null) && (' + a + ' !== \\'\\')';\n }\n };\n }();\n function Query(data) {\n this.data = data || [];\n }\n Query.filterExpr = function (expression) {\n var expressions = [], logic = {\n and: ' && ',\n or: ' || '\n }, idx, length, filter, expr, fieldFunctions = [], operatorFunctions = [], field, operator, filters = expression.filters;\n for (idx = 0, length = filters.length; idx < length; idx++) {\n filter = filters[idx];\n field = filter.field;\n operator = filter.operator;\n if (filter.filters) {\n expr = Query.filterExpr(filter);\n filter = expr.expression.replace(/__o\\[(\\d+)\\]/g, function (match, index) {\n index = +index;\n return '__o[' + (operatorFunctions.length + index) + ']';\n }).replace(/__f\\[(\\d+)\\]/g, function (match, index) {\n index = +index;\n return '__f[' + (fieldFunctions.length + index) + ']';\n });\n operatorFunctions.push.apply(operatorFunctions, expr.operators);\n fieldFunctions.push.apply(fieldFunctions, expr.fields);\n } else {\n if (typeof field === FUNCTION) {\n expr = '__f[' + fieldFunctions.length + '](d)';\n fieldFunctions.push(field);\n } else {\n expr = kendo.expr(field);\n }\n if (typeof operator === FUNCTION) {\n filter = '__o[' + operatorFunctions.length + '](' + expr + ', ' + operators.quote(filter.value) + ')';\n operatorFunctions.push(operator);\n } else {\n filter = operators[(operator || 'eq').toLowerCase()](expr, filter.value, filter.ignoreCase !== undefined ? filter.ignoreCase : true, expression.accentFoldingFiltering);\n }\n }\n expressions.push(filter);\n }\n return {\n expression: '(' + expressions.join(logic[expression.logic]) + ')',\n fields: fieldFunctions,\n operators: operatorFunctions\n };\n };\n function normalizeSort(field, dir) {\n if (field) {\n var descriptor = typeof field === STRING ? {\n field: field,\n dir: dir\n } : field, descriptors = isArray(descriptor) ? descriptor : descriptor !== undefined ? [descriptor] : [];\n return grep(descriptors, function (d) {\n return !!d.dir;\n });\n }\n }\n function sortFields(sorts, dir) {\n var sortObject = {};\n if (sorts) {\n var descriptor = typeof sorts === STRING ? {\n field: sorts,\n dir: dir\n } : sorts, descriptors = isArray(descriptor) ? descriptor : descriptor !== undefined ? [descriptor] : [];\n for (var i = 0; i < descriptors.length; i++) {\n sortObject[descriptors[i].field] = {\n dir: descriptors[i].dir,\n index: i + 1\n };\n }\n }\n return sortObject;\n }\n var operatorMap = {\n '==': 'eq',\n equals: 'eq',\n isequalto: 'eq',\n equalto: 'eq',\n equal: 'eq',\n '!=': 'neq',\n ne: 'neq',\n notequals: 'neq',\n isnotequalto: 'neq',\n notequalto: 'neq',\n notequal: 'neq',\n '<': 'lt',\n islessthan: 'lt',\n lessthan: 'lt',\n less: 'lt',\n '<=': 'lte',\n le: 'lte',\n islessthanorequalto: 'lte',\n lessthanequal: 'lte',\n '>': 'gt',\n isgreaterthan: 'gt',\n greaterthan: 'gt',\n greater: 'gt',\n '>=': 'gte',\n isgreaterthanorequalto: 'gte',\n greaterthanequal: 'gte',\n ge: 'gte',\n notsubstringof: 'doesnotcontain',\n isnull: 'isnull',\n isempty: 'isempty',\n isnotempty: 'isnotempty'\n };\n function normalizeOperator(expression) {\n var idx, length, filter, operator, filters = expression.filters;\n if (filters) {\n for (idx = 0, length = filters.length; idx < length; idx++) {\n filter = filters[idx];\n operator = filter.operator;\n if (operator && typeof operator === STRING) {\n filter.operator = operatorMap[operator.toLowerCase()] || operator;\n }\n normalizeOperator(filter);\n }\n }\n }\n function normalizeFilter(expression) {\n if (expression && !isEmptyObject(expression)) {\n if (isArray(expression) || !expression.filters) {\n expression = {\n logic: 'and',\n filters: isArray(expression) ? expression : [expression]\n };\n }\n normalizeOperator(expression);\n return expression;\n }\n }\n Query.normalizeFilter = normalizeFilter;\n function compareDescriptor(f1, f2) {\n if (f1.logic || f2.logic) {\n return false;\n }\n return f1.field === f2.field && f1.value === f2.value && f1.operator === f2.operator;\n }\n function normalizeDescriptor(filter) {\n filter = filter || {};\n if (isEmptyObject(filter)) {\n return {\n logic: 'and',\n filters: []\n };\n }\n return normalizeFilter(filter);\n }\n function fieldComparer(a, b) {\n if (b.logic || a.field > b.field) {\n return 1;\n } else if (a.field < b.field) {\n return -1;\n } else {\n return 0;\n }\n }\n function compareFilters(expr1, expr2) {\n expr1 = normalizeDescriptor(expr1);\n expr2 = normalizeDescriptor(expr2);\n if (expr1.logic !== expr2.logic) {\n return false;\n }\n var f1, f2;\n var filters1 = (expr1.filters || []).slice();\n var filters2 = (expr2.filters || []).slice();\n if (filters1.length !== filters2.length) {\n return false;\n }\n filters1 = filters1.sort(fieldComparer);\n filters2 = filters2.sort(fieldComparer);\n for (var idx = 0; idx < filters1.length; idx++) {\n f1 = filters1[idx];\n f2 = filters2[idx];\n if (f1.logic && f2.logic) {\n if (!compareFilters(f1, f2)) {\n return false;\n }\n } else if (!compareDescriptor(f1, f2)) {\n return false;\n }\n }\n return true;\n }\n Query.compareFilters = compareFilters;\n function normalizeAggregate(expressions) {\n return isArray(expressions) ? expressions : [expressions];\n }\n function normalizeGroup(field, dir, compare, skipItemSorting) {\n var descriptor = typeof field === STRING ? {\n field: field,\n dir: dir,\n compare: compare,\n skipItemSorting: skipItemSorting\n } : field, descriptors = isArray(descriptor) ? descriptor : descriptor !== undefined ? [descriptor] : [];\n return map(descriptors, function (d) {\n return {\n field: d.field,\n dir: d.dir || 'asc',\n aggregates: d.aggregates,\n compare: d.compare,\n skipItemSorting: d.skipItemSorting\n };\n });\n }\n function normalizeGroupWithoutCompare(field, dir, compare) {\n var descriptors = normalizeGroup(field, dir, compare);\n for (var i = 0; i < descriptors.length; i++) {\n delete descriptors[i].compare;\n }\n return descriptors;\n }\n function anyGroupDescriptorHasCompare(groupDescriptors) {\n var descriptors = isArray(groupDescriptors) ? groupDescriptors : [groupDescriptors];\n for (var i = 0; i < descriptors.length; i++) {\n if (descriptors[i] && isFunction(descriptors[i].compare)) {\n return true;\n }\n }\n return false;\n }\n Query.prototype = {\n toArray: function () {\n return this.data;\n },\n range: function (index, count) {\n return new Query(this.data.slice(index, index + count));\n },\n skip: function (count) {\n return new Query(this.data.slice(count));\n },\n take: function (count) {\n return new Query(this.data.slice(0, count));\n },\n select: function (selector) {\n return new Query(map(this.data, selector));\n },\n order: function (selector, dir, inPlace) {\n var sort = { dir: dir };\n if (selector) {\n if (selector.compare) {\n sort.compare = selector.compare;\n } else {\n sort.field = selector;\n }\n }\n if (inPlace) {\n return new Query(this.data.sort(Comparer.create(sort)));\n }\n return new Query(this.data.slice(0).sort(Comparer.create(sort)));\n },\n orderBy: function (selector, inPlace) {\n return this.order(selector, 'asc', inPlace);\n },\n orderByDescending: function (selector, inPlace) {\n return this.order(selector, 'desc', inPlace);\n },\n sort: function (field, dir, comparer, inPlace) {\n var idx, length, descriptors = normalizeSort(field, dir), comparers = [];\n comparer = comparer || Comparer;\n if (descriptors.length) {\n for (idx = 0, length = descriptors.length; idx < length; idx++) {\n comparers.push(comparer.create(descriptors[idx]));\n }\n return this.orderBy({ compare: comparer.combine(comparers) }, inPlace);\n }\n return this;\n },\n filter: function (expressions) {\n var idx, current, length, compiled, predicate, data = this.data, fields, operators, result = [], filter;\n expressions = normalizeFilter(expressions);\n if (!expressions || expressions.filters.length === 0) {\n return this;\n }\n compiled = Query.filterExpr(expressions);\n fields = compiled.fields;\n operators = compiled.operators;\n predicate = filter = new Function('d, __f, __o', 'return ' + compiled.expression);\n if (fields.length || operators.length) {\n filter = function (d) {\n return predicate(d, fields, operators);\n };\n }\n for (idx = 0, length = data.length; idx < length; idx++) {\n current = data[idx];\n if (filter(current)) {\n result.push(current);\n }\n }\n return new Query(result);\n },\n group: function (descriptors, allData, options) {\n descriptors = normalizeGroup(descriptors || []);\n allData = allData || this.data;\n var that = this, result = new Query(that.data), descriptor;\n if (descriptors.length > 0) {\n descriptor = descriptors[0];\n if (options && options.groupPaging) {\n result = new Query(allData).groupAllData(descriptor, allData).select(function (group) {\n var data = new Query(allData).filter([{\n field: group.field,\n operator: 'eq',\n value: group.value,\n ignoreCase: false\n }]);\n var items = descriptors.length > 1 ? new Query(group.items).group(descriptors.slice(1), data.toArray(), options).toArray() : group.items;\n return {\n field: group.field,\n value: group.value,\n hasSubgroups: descriptors.length > 1,\n items: items,\n aggregates: data.aggregate(descriptor.aggregates),\n uid: kendo.guid(),\n itemCount: items.length,\n subgroupCount: items.length\n };\n });\n } else {\n result = result.groupBy(descriptor).select(function (group) {\n var data = new Query(allData).filter([{\n field: group.field,\n operator: 'eq',\n value: group.value,\n ignoreCase: false\n }]);\n return {\n field: group.field,\n value: group.value,\n items: descriptors.length > 1 ? new Query(group.items).group(descriptors.slice(1), data.toArray()).toArray() : group.items,\n hasSubgroups: descriptors.length > 1,\n aggregates: data.aggregate(descriptor.aggregates)\n };\n });\n }\n }\n return result;\n },\n groupBy: function (descriptor) {\n var that = this;\n if (isEmptyObject(descriptor) || !this.data.length) {\n return new Query([]);\n }\n var field = descriptor.field, sorted = descriptor.skipItemSorting ? this.data : this._sortForGrouping(field, descriptor.dir || 'asc'), accessor = kendo.accessor(field), item, groupValue = accessor.get(sorted[0], field), group = {\n field: field,\n value: groupValue,\n items: []\n }, currentValue, idx, len, result = [group];\n for (idx = 0, len = sorted.length; idx < len; idx++) {\n item = sorted[idx];\n currentValue = accessor.get(item, field);\n if (!groupValueComparer(groupValue, currentValue)) {\n groupValue = currentValue;\n group = {\n field: field,\n value: groupValue,\n items: []\n };\n result.push(group);\n }\n group.items.push(item);\n }\n result = that._sortGroups(result, descriptor);\n return new Query(result);\n },\n groupAllData: function (descriptor, allData) {\n if (isEmptyObject(descriptor) || this.data && !this.data.length) {\n return new Query([]);\n }\n var field = descriptor.field, sorted = descriptor.skipItemSorting ? allData : new Query(allData).sort(field, descriptor.dir || 'asc', StableComparer).toArray(), accessor = kendo.accessor(field), item, groupValue = accessor.get(sorted[0], field), group = {\n field: field,\n value: groupValue,\n items: []\n }, currentValue, idx, len, result = [group];\n for (idx = 0, len = sorted.length; idx < len; idx++) {\n item = sorted[idx];\n currentValue = accessor.get(item, field);\n if (!groupValueComparer(groupValue, currentValue)) {\n groupValue = currentValue;\n group = {\n field: field,\n value: groupValue,\n items: []\n };\n result.push(group);\n }\n group.items.push(item);\n }\n result = this._sortGroups(result, descriptor);\n return new Query(result);\n },\n _sortForGrouping: function (field, dir) {\n var idx, length, data = this.data;\n if (!stableSort) {\n for (idx = 0, length = data.length; idx < length; idx++) {\n data[idx].__position = idx;\n }\n data = new Query(data).sort(field, dir, StableComparer).toArray();\n for (idx = 0, length = data.length; idx < length; idx++) {\n delete data[idx].__position;\n }\n return data;\n }\n return this.sort(field, dir).toArray();\n },\n _sortGroups: function (groups, descriptor) {\n var result = groups;\n if (descriptor && isFunction(descriptor.compare)) {\n result = new Query(result).order({ compare: descriptor.compare }, descriptor.dir || ASCENDING).toArray();\n }\n return result;\n },\n aggregate: function (aggregates) {\n var idx, len, result = {}, state = {};\n if (aggregates && aggregates.length) {\n for (idx = 0, len = this.data.length; idx < len; idx++) {\n calculateAggregate(result, aggregates, this.data[idx], idx, len, state);\n }\n }\n return result;\n }\n };\n function groupValueComparer(a, b) {\n if (a && a.getTime && b && b.getTime) {\n return a.getTime() === b.getTime();\n }\n return a === b;\n }\n function calculateAggregate(accumulator, aggregates, item, index, length, state) {\n aggregates = aggregates || [];\n var idx, aggr, functionName, len = aggregates.length;\n for (idx = 0; idx < len; idx++) {\n aggr = aggregates[idx];\n functionName = aggr.aggregate;\n var field = aggr.field;\n accumulator[field] = accumulator[field] || {};\n state[field] = state[field] || {};\n state[field][functionName] = state[field][functionName] || {};\n accumulator[field][functionName] = functions[functionName.toLowerCase()](accumulator[field][functionName], item, kendo.accessor(field), index, length, state[field][functionName]);\n }\n }\n var functions = {\n sum: function (accumulator, item, accessor) {\n var value = accessor.get(item);\n if (!isNumber(accumulator)) {\n accumulator = value;\n } else if (isNumber(value)) {\n accumulator += value;\n }\n return accumulator;\n },\n count: function (accumulator) {\n return (accumulator || 0) + 1;\n },\n average: function (accumulator, item, accessor, index, length, state) {\n var value = accessor.get(item);\n if (state.count === undefined) {\n state.count = 0;\n }\n if (!isNumber(accumulator)) {\n accumulator = value;\n } else if (isNumber(value)) {\n accumulator += value;\n }\n if (isNumber(value)) {\n state.count++;\n }\n if (index == length - 1 && isNumber(accumulator)) {\n accumulator = accumulator / state.count;\n }\n return accumulator;\n },\n max: function (accumulator, item, accessor) {\n var value = accessor.get(item);\n if (!isNumber(accumulator) && !isDate(accumulator)) {\n accumulator = value;\n }\n if (accumulator < value && (isNumber(value) || isDate(value))) {\n accumulator = value;\n }\n return accumulator;\n },\n min: function (accumulator, item, accessor) {\n var value = accessor.get(item);\n if (!isNumber(accumulator) && !isDate(accumulator)) {\n accumulator = value;\n }\n if (accumulator > value && (isNumber(value) || isDate(value))) {\n accumulator = value;\n }\n return accumulator;\n }\n };\n function isNumber(val) {\n return typeof val === 'number' && !isNaN(val);\n }\n function isDate(val) {\n return val && val.getTime;\n }\n function toJSON(array) {\n var idx, length = array.length, result = new Array(length);\n for (idx = 0; idx < length; idx++) {\n result[idx] = array[idx].toJSON();\n }\n return result;\n }\n Query.normalizeGroup = normalizeGroup;\n Query.normalizeSort = normalizeSort;\n Query.process = function (data, options, inPlace) {\n options = options || {};\n var group = options.group;\n var customGroupSort = anyGroupDescriptorHasCompare(normalizeGroup(group || []));\n var query = new Query(data), groupDescriptorsWithoutCompare = normalizeGroupWithoutCompare(group || []), normalizedSort = normalizeSort(options.sort || []), sort = customGroupSort ? normalizedSort : groupDescriptorsWithoutCompare.concat(normalizedSort), groupDescriptorsWithoutSort, total, filterCallback = options.filterCallback, filter = options.filter, skip = options.skip, take = options.take;\n if (sort && inPlace) {\n query = query.sort(sort, undefined, undefined, inPlace);\n }\n if (filter) {\n query = query.filter(filter);\n if (filterCallback) {\n query = filterCallback(query);\n }\n total = query.toArray().length;\n }\n if (sort) {\n if (!inPlace) {\n query = query.sort(sort);\n }\n if (group) {\n data = query.toArray();\n }\n }\n if (customGroupSort) {\n query = query.group(group, data);\n if (skip !== undefined && take !== undefined) {\n query = new Query(flatGroups(query.toArray())).range(skip, take);\n groupDescriptorsWithoutSort = map(groupDescriptorsWithoutCompare, function (groupDescriptor) {\n return extend({}, groupDescriptor, { skipItemSorting: true });\n });\n query = query.group(groupDescriptorsWithoutSort, data);\n }\n } else {\n if (skip !== undefined && take !== undefined) {\n query = query.range(skip, take);\n }\n if (group) {\n query = query.group(group, data, options);\n }\n }\n return {\n total: total,\n data: query.toArray()\n };\n };\n var LocalTransport = Class.extend({\n init: function (options) {\n this.data = options.data;\n },\n read: function (options) {\n options.success(this.data);\n },\n update: function (options) {\n options.success(options.data);\n },\n create: function (options) {\n options.success(options.data);\n },\n destroy: function (options) {\n options.success(options.data);\n }\n });\n var RemoteTransport = Class.extend({\n init: function (options) {\n var that = this, parameterMap;\n options = that.options = extend({}, that.options, options);\n each(crud, function (index, type) {\n if (typeof options[type] === STRING) {\n options[type] = { url: options[type] };\n }\n });\n that.cache = options.cache ? Cache.create(options.cache) : {\n find: noop,\n add: noop\n };\n parameterMap = options.parameterMap;\n if (options.submit) {\n that.submit = options.submit;\n }\n if (isFunction(options.push)) {\n that.push = options.push;\n }\n if (!that.push) {\n that.push = identity;\n }\n that.parameterMap = isFunction(parameterMap) ? parameterMap : function (options) {\n var result = {};\n each(options, function (option, value) {\n if (option in parameterMap) {\n option = parameterMap[option];\n if (isPlainObject(option)) {\n value = option.value(value);\n option = option.key;\n }\n }\n result[option] = value;\n });\n return result;\n };\n },\n options: { parameterMap: identity },\n create: function (options) {\n return ajax(this.setup(options, CREATE));\n },\n read: function (options) {\n var that = this, success, error, result, cache = that.cache;\n options = that.setup(options, READ);\n success = options.success || noop;\n error = options.error || noop;\n result = cache.find(options.data);\n if (result !== undefined) {\n success(result);\n } else {\n options.success = function (result) {\n cache.add(options.data, result);\n success(result);\n };\n $.ajax(options);\n }\n },\n update: function (options) {\n return ajax(this.setup(options, UPDATE));\n },\n destroy: function (options) {\n return ajax(this.setup(options, DESTROY));\n },\n setup: function (options, type) {\n options = options || {};\n var that = this, parameters, operation = that.options[type], data = isFunction(operation.data) ? operation.data(options.data) : operation.data;\n options = extend(true, {}, operation, options);\n parameters = extend(true, {}, data, options.data);\n options.data = that.parameterMap(parameters, type);\n if (isFunction(options.url)) {\n options.url = options.url(parameters);\n }\n return options;\n }\n });\n var Cache = Class.extend({\n init: function () {\n this._store = {};\n },\n add: function (key, data) {\n if (key !== undefined) {\n this._store[stringify(key)] = data;\n }\n },\n find: function (key) {\n return this._store[stringify(key)];\n },\n clear: function () {\n this._store = {};\n },\n remove: function (key) {\n delete this._store[stringify(key)];\n }\n });\n Cache.create = function (options) {\n var store = {\n 'inmemory': function () {\n return new Cache();\n }\n };\n if (isPlainObject(options) && isFunction(options.find)) {\n return options;\n }\n if (options === true) {\n return new Cache();\n }\n return store[options]();\n };\n function serializeRecords(data, getters, modelInstance, originalFieldNames, fieldNames) {\n var record, getter, originalName, idx, setters = {}, length;\n for (idx = 0, length = data.length; idx < length; idx++) {\n record = data[idx];\n for (getter in getters) {\n originalName = fieldNames[getter];\n if (originalName && originalName !== getter) {\n if (!setters[originalName]) {\n setters[originalName] = kendo.setter(originalName);\n }\n setters[originalName](record, getters[getter](record));\n delete record[getter];\n }\n }\n }\n }\n function convertRecords(data, getters, modelInstance, originalFieldNames, fieldNames) {\n var record, getter, originalName, idx, length;\n for (idx = 0, length = data.length; idx < length; idx++) {\n record = data[idx];\n for (getter in getters) {\n record[getter] = modelInstance._parse(getter, getters[getter](record));\n originalName = fieldNames[getter];\n if (originalName && originalName !== getter) {\n delete record[originalName];\n }\n }\n }\n }\n function convertGroup(data, getters, modelInstance, originalFieldNames, fieldNames) {\n var record, idx, fieldName, length;\n for (idx = 0, length = data.length; idx < length; idx++) {\n record = data[idx];\n fieldName = originalFieldNames[record.field];\n if (fieldName && fieldName != record.field) {\n record.field = fieldName;\n }\n record.value = modelInstance._parse(record.field, record.value);\n if (record.items) {\n if (record.hasSubgroups) {\n convertGroup(record.items, getters, modelInstance, originalFieldNames, fieldNames);\n } else {\n convertRecords(record.items, getters, modelInstance, originalFieldNames, fieldNames);\n }\n }\n }\n }\n function wrapDataAccess(originalFunction, model, converter, getters, originalFieldNames, fieldNames) {\n return function (data) {\n data = originalFunction(data);\n return wrapDataAccessBase(model, converter, getters, originalFieldNames, fieldNames)(data);\n };\n }\n function wrapDataAccessBase(model, converter, getters, originalFieldNames, fieldNames) {\n return function (data) {\n if (data && !isEmptyObject(getters)) {\n if (toString.call(data) !== '[object Array]' && !(data instanceof ObservableArray)) {\n data = [data];\n }\n converter(data, getters, new model(), originalFieldNames, fieldNames);\n }\n return data || [];\n };\n }\n var DataReader = Class.extend({\n init: function (schema) {\n var that = this, member, get, model, base;\n schema = schema || {};\n for (member in schema) {\n get = schema[member];\n that[member] = typeof get === STRING ? getter(get) : get;\n }\n base = schema.modelBase || Model;\n if (isPlainObject(that.model)) {\n that.model = model = base.define(that.model);\n }\n var dataFunction = proxy(that.data, that);\n that._dataAccessFunction = dataFunction;\n if (that.model) {\n var groupsFunction = proxy(that.groups, that), serializeFunction = proxy(that.serialize, that), originalFieldNames = {}, getters = {}, serializeGetters = {}, fieldNames = {}, shouldSerialize = false, fieldName, name;\n model = that.model;\n if (model.fields) {\n each(model.fields, function (field, value) {\n var fromName;\n fieldName = field;\n if (isPlainObject(value) && value.field) {\n fieldName = value.field;\n } else if (typeof value === STRING) {\n fieldName = value;\n }\n if (isPlainObject(value) && value.from) {\n fromName = value.from;\n }\n shouldSerialize = shouldSerialize || fromName && fromName !== field || fieldName !== field;\n name = fromName || fieldName;\n getters[field] = name.indexOf('.') !== -1 ? getter(name, true) : getter(name);\n serializeGetters[field] = getter(field);\n originalFieldNames[fromName || fieldName] = field;\n fieldNames[field] = fromName || fieldName;\n });\n if (!schema.serialize && shouldSerialize) {\n that.serialize = wrapDataAccess(serializeFunction, model, serializeRecords, serializeGetters, originalFieldNames, fieldNames);\n }\n }\n that._dataAccessFunction = dataFunction;\n that._wrapDataAccessBase = wrapDataAccessBase(model, convertRecords, getters, originalFieldNames, fieldNames);\n that.data = wrapDataAccess(dataFunction, model, convertRecords, getters, originalFieldNames, fieldNames);\n that.groups = wrapDataAccess(groupsFunction, model, convertGroup, getters, originalFieldNames, fieldNames);\n }\n },\n errors: function (data) {\n return data ? data.errors : null;\n },\n parse: identity,\n data: identity,\n total: function (data) {\n return data.length;\n },\n groups: identity,\n aggregates: function () {\n return {};\n },\n serialize: function (data) {\n return data;\n }\n });\n function fillLastGroup(originalGroup, newGroup) {\n var currOriginal;\n var currentNew;\n if (newGroup.items && newGroup.items.length) {\n for (var i = 0; i < newGroup.items.length; i++) {\n currOriginal = originalGroup.items[i];\n currentNew = newGroup.items[i];\n if (currOriginal && currentNew) {\n if (currOriginal.hasSubgroups) {\n fillLastGroup(currOriginal, currentNew);\n } else if (currOriginal.field && currOriginal.value == currentNew.value) {\n currOriginal.items.push.apply(currOriginal.items, currentNew.items);\n } else {\n originalGroup.items.push.apply(originalGroup.items, [currentNew]);\n }\n } else if (currentNew) {\n originalGroup.items.push.apply(originalGroup.items, [currentNew]);\n }\n }\n }\n }\n function mergeGroups(target, dest, skip, take) {\n var group, idx = 0, items;\n while (dest.length && take) {\n group = dest[idx];\n items = group.items;\n var length = items.length;\n if (target && target.field === group.field && target.value === group.value) {\n if (target.hasSubgroups && target.items.length) {\n mergeGroups(target.items[target.items.length - 1], group.items, skip, take);\n } else {\n items = items.slice(skip, skip + take);\n target.items = target.items.concat(items);\n }\n dest.splice(idx--, 1);\n } else if (group.hasSubgroups && items.length) {\n mergeGroups(group, items, skip, take);\n if (!group.items.length) {\n dest.splice(idx--, 1);\n }\n } else {\n items = items.slice(skip, skip + take);\n group.items = items;\n if (!group.items.length) {\n dest.splice(idx--, 1);\n }\n }\n if (items.length === 0) {\n skip -= length;\n } else {\n skip = 0;\n take -= items.length;\n }\n if (++idx >= dest.length) {\n break;\n }\n }\n if (idx < dest.length) {\n dest.splice(idx, dest.length - idx);\n }\n }\n function flatGroups(groups, indexFunction) {\n var result = [];\n var groupsLength = (groups || []).length;\n var group;\n var items;\n var indexFn = isFunction(indexFunction) ? indexFunction : function (array, index) {\n return array[index];\n };\n for (var groupIndex = 0; groupIndex < groupsLength; groupIndex++) {\n group = indexFn(groups, groupIndex);\n if (group.hasSubgroups) {\n result = result.concat(flatGroups(group.items));\n } else {\n items = group.items;\n for (var itemIndex = 0; itemIndex < items.length; itemIndex++) {\n result.push(indexFn(items, itemIndex));\n }\n }\n }\n return result;\n }\n function flattenGroups(data) {\n var idx, result = [], length, items, itemIndex;\n for (idx = 0, length = data.length; idx < length; idx++) {\n var group = data.at(idx);\n if (group.items) {\n if (group.hasSubgroups) {\n result = result.concat(flattenGroups(group.items));\n } else {\n items = group.items;\n for (itemIndex = 0; itemIndex < items.length; itemIndex++) {\n result.push(items.at(itemIndex));\n }\n }\n }\n }\n return result;\n }\n function wrapGroupItems(data, model) {\n var idx, length, group;\n if (model) {\n for (idx = 0, length = data.length; idx < length; idx++) {\n group = data.at(idx);\n if (group.items) {\n if (group.hasSubgroups) {\n wrapGroupItems(group.items, model);\n } else {\n group.items = new LazyObservableArray(group.items, model, group.items._events);\n }\n }\n }\n }\n }\n function eachGroupItems(data, func) {\n for (var idx = 0; idx < data.length; idx++) {\n if (data[idx].hasSubgroups) {\n if (eachGroupItems(data[idx].items, func)) {\n return true;\n }\n } else if (func(data[idx].items, data[idx])) {\n return true;\n }\n }\n }\n function replaceInRanges(ranges, data, item, observable) {\n for (var idx = 0; idx < ranges.length; idx++) {\n if (ranges[idx].data === data) {\n break;\n }\n if (replaceInRange(ranges[idx].data, item, observable)) {\n break;\n }\n }\n }\n function replaceInRange(items, item, observable) {\n for (var idx = 0, length = items.length; idx < length; idx++) {\n if (items[idx] && items[idx].hasSubgroups) {\n return replaceInRange(items[idx].items, item, observable);\n } else if (items[idx] === item || items[idx] === observable) {\n items[idx] = observable;\n return true;\n }\n }\n }\n function replaceWithObservable(view, data, ranges, type, serverGrouping) {\n for (var viewIndex = 0, length = view.length; viewIndex < length; viewIndex++) {\n var item = view[viewIndex];\n if (!item || item instanceof type) {\n continue;\n }\n if (item.hasSubgroups !== undefined && !serverGrouping) {\n replaceWithObservable(item.items, data, ranges, type, serverGrouping);\n } else {\n for (var idx = 0; idx < data.length; idx++) {\n if (data[idx] === item) {\n view[viewIndex] = data.at(idx);\n replaceInRanges(ranges, data, item, view[viewIndex]);\n break;\n }\n }\n }\n }\n }\n function removeModel(data, model) {\n if (!data) {\n return;\n }\n var length = data.length;\n var dataItem;\n var idx;\n for (idx = 0; idx < length; idx++) {\n dataItem = data[idx];\n if (dataItem.uid && dataItem.uid == model.uid) {\n data.splice(idx, 1);\n return dataItem;\n }\n }\n }\n function indexOfPristineModel(data, model) {\n if (model) {\n return indexOf(data, function (item) {\n return item.uid && item.uid == model.uid || item[model.idField] === model.id && model.id !== model._defaultId;\n });\n }\n return -1;\n }\n function indexOfModel(data, model) {\n if (model) {\n return indexOf(data, function (item) {\n return item.uid == model.uid;\n });\n }\n return -1;\n }\n function indexOf(data, comparer) {\n var idx, length;\n if (!data) {\n return;\n }\n for (idx = 0, length = data.length; idx < length; idx++) {\n if (comparer(data[idx])) {\n return idx;\n }\n }\n return -1;\n }\n function fieldNameFromModel(fields, name) {\n if (fields && !isEmptyObject(fields)) {\n var descriptor = fields[name];\n var fieldName;\n if (isPlainObject(descriptor)) {\n fieldName = descriptor.from || descriptor.field || name;\n } else {\n fieldName = fields[name] || name;\n }\n if (isFunction(fieldName)) {\n return name;\n }\n return fieldName;\n }\n return name;\n }\n function convertFilterDescriptorsField(descriptor, model) {\n var idx, length, target = {};\n for (var field in descriptor) {\n if (field !== 'filters') {\n target[field] = descriptor[field];\n }\n }\n if (descriptor.filters) {\n target.filters = [];\n for (idx = 0, length = descriptor.filters.length; idx < length; idx++) {\n target.filters[idx] = convertFilterDescriptorsField(descriptor.filters[idx], model);\n }\n } else {\n target.field = fieldNameFromModel(model.fields, target.field);\n }\n return target;\n }\n function convertDescriptorsField(descriptors, model) {\n var idx, length, result = [], target, descriptor;\n for (idx = 0, length = descriptors.length; idx < length; idx++) {\n target = {};\n descriptor = descriptors[idx];\n for (var field in descriptor) {\n target[field] = descriptor[field];\n }\n target.field = fieldNameFromModel(model.fields, target.field);\n if (target.aggregates && isArray(target.aggregates)) {\n target.aggregates = convertDescriptorsField(target.aggregates, model);\n }\n result.push(target);\n }\n return result;\n }\n var DataSource = Observable.extend({\n init: function (options) {\n var that = this, model, data;\n if (options) {\n data = options.data;\n }\n options = that.options = extend({}, that.options, options);\n that._map = {};\n that._prefetch = {};\n that._data = [];\n that._pristineData = [];\n that._ranges = [];\n that._view = [];\n that._pristineTotal = 0;\n that._destroyed = [];\n that._pageSize = options.pageSize;\n that._page = options.page || (options.pageSize ? 1 : undefined);\n that._sort = normalizeSort(options.sort);\n that._filter = normalizeFilter(options.filter);\n that._group = normalizeGroup(options.group);\n that._aggregate = options.aggregate;\n that._total = options.total;\n that._groupPaging = options.groupPaging;\n if (that._groupPaging) {\n that._groupsState = {};\n }\n that._shouldDetachObservableParents = true;\n Observable.fn.init.call(that);\n that.transport = Transport.create(options, data, that);\n if (isFunction(that.transport.push)) {\n that.transport.push({\n pushCreate: proxy(that._pushCreate, that),\n pushUpdate: proxy(that._pushUpdate, that),\n pushDestroy: proxy(that._pushDestroy, that)\n });\n }\n if (options.offlineStorage != null) {\n if (typeof options.offlineStorage == 'string') {\n var key = options.offlineStorage;\n that._storage = {\n getItem: function () {\n return JSON.parse(localStorage.getItem(key));\n },\n setItem: function (item) {\n localStorage.setItem(key, stringify(that.reader.serialize(item)));\n }\n };\n } else {\n that._storage = options.offlineStorage;\n }\n }\n that.reader = new kendo.data.readers[options.schema.type || 'json'](options.schema);\n model = that.reader.model || {};\n that._detachObservableParents();\n that._data = that._observe(that._data);\n that._online = true;\n that.bind([\n 'push',\n ERROR,\n CHANGE,\n REQUESTSTART,\n SYNC,\n REQUESTEND,\n PROGRESS\n ], options);\n },\n options: {\n data: null,\n schema: { modelBase: Model },\n offlineStorage: null,\n serverSorting: false,\n serverPaging: false,\n serverFiltering: false,\n serverGrouping: false,\n serverAggregates: false,\n batch: false,\n inPlaceSort: false\n },\n clone: function () {\n return this;\n },\n online: function (value) {\n if (value !== undefined) {\n if (this._online != value) {\n this._online = value;\n if (value) {\n return this.sync();\n }\n }\n return $.Deferred().resolve().promise();\n } else {\n return this._online;\n }\n },\n offlineData: function (state) {\n if (this.options.offlineStorage == null) {\n return null;\n }\n if (state !== undefined) {\n return this._storage.setItem(state);\n }\n return this._storage.getItem() || [];\n },\n _isServerGrouped: function () {\n var group = this.group() || [];\n return this.options.serverGrouping && group.length;\n },\n _isServerGroupPaged: function () {\n return this._isServerGrouped() && this._groupPaging;\n },\n _isGroupPaged: function () {\n var group = this.group() || [];\n return this._groupPaging && group.length;\n },\n _pushCreate: function (result) {\n this._push(result, 'pushCreate');\n },\n _pushUpdate: function (result) {\n this._push(result, 'pushUpdate');\n },\n _pushDestroy: function (result) {\n this._push(result, 'pushDestroy');\n },\n _push: function (result, operation) {\n var data = this._readData(result);\n if (!data) {\n data = result;\n }\n this[operation](data);\n },\n _flatData: function (data, skip) {\n if (data) {\n if (this._isServerGrouped()) {\n return flattenGroups(data);\n }\n if (!skip) {\n for (var idx = 0; idx < data.length; idx++) {\n data.at(idx);\n }\n }\n }\n return data;\n },\n parent: noop,\n get: function (id) {\n var idx, length, data = this._flatData(this._data, this.options.useRanges);\n for (idx = 0, length = data.length; idx < length; idx++) {\n if (data[idx].id == id) {\n return data[idx];\n }\n }\n },\n getByUid: function (id) {\n return this._getByUid(id, this._data);\n },\n _getByUid: function (id, dataItems) {\n var idx, length, data = this._flatData(dataItems, this.options.useRanges);\n if (!data) {\n return;\n }\n for (idx = 0, length = data.length; idx < length; idx++) {\n if (data[idx].uid == id) {\n return data[idx];\n }\n }\n },\n indexOf: function (model) {\n return indexOfModel(this._data, model);\n },\n at: function (index) {\n return this._data.at(index);\n },\n data: function (value) {\n var that = this;\n if (value !== undefined) {\n that._detachObservableParents();\n that._data = this._observe(value);\n that._pristineData = value.slice(0);\n that._storeData();\n that._ranges = [];\n that.trigger('reset');\n that._addRange(that._data);\n that._total = that._data.length;\n that._pristineTotal = that._total;\n that._process(that._data);\n } else {\n if (that._data) {\n for (var idx = 0; idx < that._data.length; idx++) {\n that._data.at(idx);\n }\n }\n return that._data;\n }\n },\n view: function (value) {\n if (value === undefined) {\n return this._view;\n } else {\n this._view = this._observeView(value);\n }\n },\n _observeView: function (data) {\n var that = this;\n replaceWithObservable(data, that._data, that._ranges, that.reader.model || ObservableObject, that._isServerGrouped());\n var view = new LazyObservableArray(data, that.reader.model);\n view.parent = function () {\n return that.parent();\n };\n return view;\n },\n flatView: function () {\n var groups = this.group() || [];\n if (groups.length) {\n return flattenGroups(this._view);\n } else {\n return this._view;\n }\n },\n add: function (model) {\n return this.insert(this._data.length, model);\n },\n _createNewModel: function (model) {\n if (this.reader.model) {\n return new this.reader.model(model);\n }\n if (model instanceof ObservableObject) {\n return model;\n }\n return new ObservableObject(model);\n },\n insert: function (index, model) {\n if (!model) {\n model = index;\n index = 0;\n }\n if (!(model instanceof Model)) {\n model = this._createNewModel(model);\n }\n if (this._isServerGrouped()) {\n this._data.splice(index, 0, this._wrapInEmptyGroup(model));\n } else {\n this._data.splice(index, 0, model);\n }\n this._insertModelInRange(index, model);\n return model;\n },\n pushInsert: function (index, items) {\n var that = this;\n var rangeSpan = that._getCurrentRangeSpan();\n if (!items) {\n items = index;\n index = 0;\n }\n if (!isArray(items)) {\n items = [items];\n }\n var pushed = [];\n var autoSync = this.options.autoSync;\n this.options.autoSync = false;\n try {\n for (var idx = 0; idx < items.length; idx++) {\n var item = items[idx];\n var result = this.insert(index, item);\n pushed.push(result);\n var pristine = result.toJSON();\n if (this._isServerGrouped()) {\n pristine = this._wrapInEmptyGroup(pristine);\n }\n this._pristineData.push(pristine);\n if (rangeSpan && rangeSpan.length) {\n $(rangeSpan).last()[0].pristineData.push(pristine);\n }\n index++;\n }\n } finally {\n this.options.autoSync = autoSync;\n }\n if (pushed.length) {\n this.trigger('push', {\n type: 'create',\n items: pushed\n });\n }\n },\n pushCreate: function (items) {\n this.pushInsert(this._data.length, items);\n },\n pushUpdate: function (items) {\n if (!isArray(items)) {\n items = [items];\n }\n var pushed = [];\n for (var idx = 0; idx < items.length; idx++) {\n var item = items[idx];\n var model = this._createNewModel(item);\n var target = this.get(model.id);\n if (target) {\n pushed.push(target);\n target.accept(item);\n target.trigger(CHANGE);\n this._updatePristineForModel(target, item);\n } else {\n this.pushCreate(item);\n }\n }\n if (pushed.length) {\n this.trigger('push', {\n type: 'update',\n items: pushed\n });\n }\n },\n pushDestroy: function (items) {\n var pushed = this._removeItems(items);\n if (pushed.length) {\n this.trigger('push', {\n type: 'destroy',\n items: pushed\n });\n }\n },\n _removeItems: function (items, removePristine) {\n if (!isArray(items)) {\n items = [items];\n }\n var shouldRemovePristine = typeof removePristine !== 'undefined' ? removePristine : true;\n var destroyed = [];\n var autoSync = this.options.autoSync;\n this.options.autoSync = false;\n try {\n for (var idx = 0; idx < items.length; idx++) {\n var item = items[idx];\n var model = this._createNewModel(item);\n var found = false;\n this._eachItem(this._data, function (items) {\n for (var idx = 0; idx < items.length; idx++) {\n var item = items.at(idx);\n if (item.id === model.id) {\n destroyed.push(item);\n items.splice(idx, 1);\n found = true;\n break;\n }\n }\n });\n if (found && shouldRemovePristine) {\n this._removePristineForModel(model);\n this._destroyed.pop();\n }\n }\n } finally {\n this.options.autoSync = autoSync;\n }\n return destroyed;\n },\n remove: function (model) {\n var result, that = this, hasGroups = that._isServerGrouped();\n this._eachItem(that._data, function (items) {\n result = removeModel(items, model);\n if (result && hasGroups) {\n if (!result.isNew || !result.isNew()) {\n that._destroyed.push(result);\n }\n return true;\n }\n });\n this._removeModelFromRanges(model);\n return model;\n },\n destroyed: function () {\n return this._destroyed;\n },\n created: function () {\n var idx, length, result = [], data = this._flatData(this._data, this.options.useRanges);\n for (idx = 0, length = data.length; idx < length; idx++) {\n if (data[idx].isNew && data[idx].isNew()) {\n result.push(data[idx]);\n }\n }\n return result;\n },\n updated: function () {\n var idx, length, result = [], data = this._flatData(this._data, this.options.useRanges);\n for (idx = 0, length = data.length; idx < length; idx++) {\n if (data[idx].isNew && !data[idx].isNew() && data[idx].dirty) {\n result.push(data[idx]);\n }\n }\n return result;\n },\n sync: function () {\n var that = this, created = [], updated = [], destroyed = that._destroyed;\n var promise = $.Deferred().resolve().promise();\n if (that.online()) {\n if (!that.reader.model) {\n return promise;\n }\n created = that.created();\n updated = that.updated();\n var promises = [];\n if (that.options.batch && that.transport.submit) {\n promises = that._sendSubmit(created, updated, destroyed);\n } else {\n promises.push.apply(promises, that._send('create', created));\n promises.push.apply(promises, that._send('update', updated));\n promises.push.apply(promises, that._send('destroy', destroyed));\n }\n promise = $.when.apply(null, promises).then(function () {\n var idx, length;\n for (idx = 0, length = arguments.length; idx < length; idx++) {\n if (arguments[idx]) {\n that._accept(arguments[idx]);\n }\n }\n that._storeData(true);\n that._syncEnd();\n that._change({ action: 'sync' });\n that.trigger(SYNC);\n if (that._isServerGroupPaged()) {\n that.read();\n }\n });\n } else {\n that._storeData(true);\n that._syncEnd();\n that._change({ action: 'sync' });\n }\n return promise;\n },\n _syncEnd: noop,\n cancelChanges: function (model) {\n var that = this;\n if (model instanceof kendo.data.Model) {\n that._cancelModel(model);\n } else {\n that._destroyed = [];\n that._detachObservableParents();\n that._data = that._observe(that._pristineData);\n if (that.options.serverPaging) {\n that._total = that._pristineTotal;\n }\n that._ranges = [];\n that._addRange(that._data, 0);\n that._changesCanceled();\n that._change();\n that._markOfflineUpdatesAsDirty();\n if (that._isServerGrouped()) {\n that.read();\n }\n }\n },\n _changesCanceled: noop,\n _markOfflineUpdatesAsDirty: function () {\n var that = this;\n if (that.options.offlineStorage != null) {\n that._eachItem(that._data, function (items) {\n for (var idx = 0; idx < items.length; idx++) {\n var item = items.at(idx);\n if (item.__state__ == 'update' || item.__state__ == 'create') {\n item.dirty = true;\n }\n }\n });\n }\n },\n hasChanges: function () {\n var idx, length, data = this._flatData(this._data, this.options.useRanges);\n if (this._destroyed.length) {\n return true;\n }\n for (idx = 0, length = data.length; idx < length; idx++) {\n if (data[idx].isNew && data[idx].isNew() || data[idx].dirty) {\n return true;\n }\n }\n return false;\n },\n _accept: function (result) {\n var that = this, models = result.models, response = result.response, idx = 0, serverGroup = that._isServerGrouped(), pristine = that._pristineData, type = result.type, length;\n that.trigger(REQUESTEND, {\n response: response,\n type: type\n });\n if (response && !isEmptyObject(response)) {\n response = that.reader.parse(response);\n if (that._handleCustomErrors(response)) {\n return;\n }\n response = that.reader.data(response);\n if (!isArray(response)) {\n response = [response];\n }\n } else {\n response = $.map(models, function (model) {\n return model.toJSON();\n });\n }\n if (type === 'destroy') {\n that._destroyed = [];\n }\n for (idx = 0, length = models.length; idx < length; idx++) {\n if (type !== 'destroy') {\n models[idx].accept(response[idx]);\n if (type === 'create') {\n pristine.push(serverGroup ? that._wrapInEmptyGroup(models[idx].toJSON()) : response[idx]);\n } else if (type === 'update') {\n that._updatePristineForModel(models[idx], response[idx]);\n }\n } else {\n that._removePristineForModel(models[idx]);\n }\n }\n },\n _updatePristineForModel: function (model, values) {\n this._executeOnPristineForModel(model, function (index, items) {\n kendo.deepExtend(items[index], values);\n });\n },\n _executeOnPristineForModel: function (model, callback) {\n this._eachPristineItem(function (items) {\n var index = indexOfPristineModel(items, model);\n if (index > -1) {\n callback(index, items);\n return true;\n }\n });\n },\n _removePristineForModel: function (model) {\n this._executeOnPristineForModel(model, function (index, items) {\n items.splice(index, 1);\n });\n },\n _readData: function (data) {\n var read = !this._isServerGrouped() ? this.reader.data : this.reader.groups;\n return read.call(this.reader, data);\n },\n _eachPristineItem: function (callback) {\n var that = this;\n var options = that.options;\n var rangeSpan = that._getCurrentRangeSpan();\n that._eachItem(that._pristineData, callback);\n if (options.serverPaging && options.useRanges) {\n each(rangeSpan, function (i, range) {\n that._eachItem(range.pristineData, callback);\n });\n }\n },\n _eachItem: function (data, callback) {\n if (data && data.length) {\n if (this._isServerGrouped()) {\n eachGroupItems(data, callback);\n } else {\n callback(data);\n }\n }\n },\n _pristineForModel: function (model) {\n var pristine, idx, callback = function (items) {\n idx = indexOfPristineModel(items, model);\n if (idx > -1) {\n pristine = items[idx];\n return true;\n }\n };\n this._eachPristineItem(callback);\n return pristine;\n },\n _cancelModel: function (model) {\n var that = this;\n var pristine = this._pristineForModel(model);\n this._eachItem(this._data, function (items) {\n var idx = indexOfModel(items, model);\n if (idx >= 0) {\n if (pristine && (!model.isNew() || pristine.__state__)) {\n items[idx].accept(pristine);\n if (pristine.__state__ == 'update') {\n items[idx].dirty = true;\n }\n } else {\n that._modelCanceled(model);\n items.splice(idx, 1);\n that._removeModelFromRanges(model);\n }\n }\n });\n },\n _modelCanceled: noop,\n _submit: function (promises, data) {\n var that = this;\n that.trigger(REQUESTSTART, { type: 'submit' });\n that.trigger(PROGRESS);\n that.transport.submit(extend({\n success: function (response, type) {\n var promise = $.grep(promises, function (x) {\n return x.type == type;\n })[0];\n if (promise) {\n promise.resolve({\n response: response,\n models: promise.models,\n type: type\n });\n }\n },\n error: function (response, status, error) {\n for (var idx = 0; idx < promises.length; idx++) {\n promises[idx].reject(response);\n }\n that.error(response, status, error);\n }\n }, data));\n },\n _sendSubmit: function (created, updated, destroyed) {\n var that = this, promises = [];\n if (that.options.batch) {\n if (created.length) {\n promises.push($.Deferred(function (deferred) {\n deferred.type = 'create';\n deferred.models = created;\n }));\n }\n if (updated.length) {\n promises.push($.Deferred(function (deferred) {\n deferred.type = 'update';\n deferred.models = updated;\n }));\n }\n if (destroyed.length) {\n promises.push($.Deferred(function (deferred) {\n deferred.type = 'destroy';\n deferred.models = destroyed;\n }));\n }\n that._submit(promises, {\n data: {\n created: that.reader.serialize(toJSON(created)),\n updated: that.reader.serialize(toJSON(updated)),\n destroyed: that.reader.serialize(toJSON(destroyed))\n }\n });\n }\n return promises;\n },\n _promise: function (data, models, type) {\n var that = this;\n return $.Deferred(function (deferred) {\n that.trigger(REQUESTSTART, { type: type });\n that.trigger(PROGRESS);\n that.transport[type].call(that.transport, extend({\n success: function (response) {\n deferred.resolve({\n response: response,\n models: models,\n type: type\n });\n },\n error: function (response, status, error) {\n deferred.reject(response);\n that.error(response, status, error);\n }\n }, data));\n }).promise();\n },\n _send: function (method, data) {\n var that = this, idx, length, promises = [], converted = that.reader.serialize(toJSON(data));\n if (that.options.batch) {\n if (data.length) {\n promises.push(that._promise({ data: { models: converted } }, data, method));\n }\n } else {\n for (idx = 0, length = data.length; idx < length; idx++) {\n promises.push(that._promise({ data: converted[idx] }, [data[idx]], method));\n }\n }\n return promises;\n },\n read: function (data) {\n var that = this, params = that._params(data);\n var deferred = $.Deferred();\n that._queueRequest(params, function () {\n var isPrevented = that.trigger(REQUESTSTART, { type: 'read' });\n if (!isPrevented) {\n that.trigger(PROGRESS);\n that._ranges = [];\n that.trigger('reset');\n if (that.online()) {\n that.transport.read({\n data: params,\n success: function (data) {\n that._ranges = [];\n that.success(data, params);\n deferred.resolve();\n },\n error: function () {\n var args = slice.call(arguments);\n that.error.apply(that, args);\n deferred.reject.apply(deferred, args);\n }\n });\n } else if (that.options.offlineStorage != null) {\n that.success(that.offlineData(), params);\n deferred.resolve();\n }\n } else {\n that._dequeueRequest();\n deferred.resolve(isPrevented);\n }\n });\n return deferred.promise();\n },\n _readAggregates: function (data) {\n return this.reader.aggregates(data);\n },\n success: function (data) {\n var that = this, options = that.options, items, replaceSubset;\n that.trigger(REQUESTEND, {\n response: data,\n type: 'read'\n });\n if (that.online()) {\n data = that.reader.parse(data);\n if (that._handleCustomErrors(data)) {\n that._dequeueRequest();\n return;\n }\n that._total = that.reader.total(data);\n if (that._isServerGroupPaged()) {\n that._serverGroupsTotal = that._total;\n }\n if (that._pageSize > that._total) {\n that._pageSize = that._total;\n if (that.options.pageSize && that.options.pageSize > that._pageSize) {\n that._pageSize = that.options.pageSize;\n }\n }\n if (that._aggregate && options.serverAggregates) {\n that._aggregateResult = that._readAggregates(data);\n }\n data = that._readData(data);\n that._destroyed = [];\n } else {\n data = that._readData(data);\n items = [];\n var itemIds = {};\n var model = that.reader.model;\n var idField = model ? model.idField : 'id';\n var idx;\n for (idx = 0; idx < this._destroyed.length; idx++) {\n var id = this._destroyed[idx][idField];\n itemIds[id] = id;\n }\n for (idx = 0; idx < data.length; idx++) {\n var item = data[idx];\n var state = item.__state__;\n if (state == 'destroy') {\n if (!itemIds[item[idField]]) {\n this._destroyed.push(this._createNewModel(item));\n }\n } else {\n items.push(item);\n }\n }\n data = items;\n that._total = data.length;\n }\n that._pristineTotal = that._total;\n replaceSubset = that._skip && that._data.length && that._skip < that._data.length;\n if (that.options.endless) {\n if (replaceSubset) {\n that._pristineData.splice(that._skip, that._pristineData.length);\n }\n items = data.slice(0);\n for (var j = 0; j < items.length; j++) {\n that._pristineData.push(items[j]);\n }\n } else {\n that._pristineData = data.slice(0);\n }\n that._detachObservableParents();\n if (that.options.endless) {\n that._data.unbind(CHANGE, that._changeHandler);\n if (that._isServerGrouped() && that._data[that._data.length - 1].value === data[0].value) {\n fillLastGroup(that._data[that._data.length - 1], data[0]);\n data.shift();\n }\n data = that._observe(data);\n if (replaceSubset) {\n that._data.splice(that._skip, that._data.length);\n }\n for (var i = 0; i < data.length; i++) {\n that._data.push(data[i]);\n }\n that._data.bind(CHANGE, that._changeHandler);\n } else {\n that._data = that._observe(data);\n }\n that._markOfflineUpdatesAsDirty();\n that._storeData();\n that._addRange(that._data);\n that._process(that._data);\n that._dequeueRequest();\n },\n _detachObservableParents: function () {\n if (this._data && this._shouldDetachObservableParents) {\n for (var idx = 0; idx < this._data.length; idx++) {\n if (this._data[idx].parent) {\n this._data[idx].parent = noop;\n }\n }\n }\n },\n _storeData: function (updatePristine) {\n var serverGrouping = this._isServerGrouped();\n var model = this.reader.model;\n function items(data) {\n var state = [];\n for (var idx = 0; idx < data.length; idx++) {\n var dataItem = data.at(idx);\n var item = dataItem.toJSON();\n if (serverGrouping && dataItem.items) {\n item.items = items(dataItem.items);\n } else {\n item.uid = dataItem.uid;\n if (model) {\n if (dataItem.isNew()) {\n item.__state__ = 'create';\n } else if (dataItem.dirty) {\n item.__state__ = 'update';\n }\n }\n }\n state.push(item);\n }\n return state;\n }\n if (this.options.offlineStorage != null) {\n var state = items(this._data);\n var destroyed = [];\n for (var idx = 0; idx < this._destroyed.length; idx++) {\n var item = this._destroyed[idx].toJSON();\n item.__state__ = 'destroy';\n destroyed.push(item);\n }\n this.offlineData(state.concat(destroyed));\n if (updatePristine) {\n this._pristineData = this.reader.reader ? this.reader.reader._wrapDataAccessBase(state) : this.reader._wrapDataAccessBase(state);\n }\n }\n },\n _addRange: function (data, skip) {\n var that = this, start = typeof skip !== 'undefined' ? skip : that._skip || 0, end, range = {\n data: data,\n pristineData: data.toJSON(),\n timestamp: that._timeStamp()\n };\n if (this._isGroupPaged()) {\n end = start + data.length;\n range.outerStart = start;\n range.outerEnd = end;\n } else {\n end = start + that._flatData(data, true).length;\n }\n range.start = start;\n range.end = end;\n that._ranges.push(range);\n that._sortRanges();\n if (that._isGroupPaged()) {\n if (!that._groupsFlat) {\n that._groupsFlat = [];\n }\n that._appendToGroupsFlat(range.data);\n that._updateOuterRangesLength();\n }\n },\n _appendToGroupsFlat: function (data) {\n var length = data.length;\n for (var i = 0; i < length; i++) {\n this._groupsFlat.push(data[i]);\n }\n },\n _getGroupByUid: function (uid) {\n var length = this._groupsFlat.length;\n var group;\n for (var i = 0; i < length; i++) {\n group = this._groupsFlat[i];\n if (group.uid === uid) {\n return group;\n }\n }\n },\n _sortRanges: function () {\n this._ranges.sort(function (x, y) {\n return x.start - y.start;\n });\n },\n error: function (xhr, status, errorThrown) {\n this._dequeueRequest();\n this.trigger(REQUESTEND, {});\n this.trigger(ERROR, {\n xhr: xhr,\n status: status,\n errorThrown: errorThrown\n });\n },\n _params: function (data) {\n var that = this, options = extend({\n take: that.take(),\n skip: that.skip(),\n page: that.page(),\n pageSize: that.pageSize(),\n sort: that._sort,\n filter: that._filter,\n group: that._group,\n aggregate: that._aggregate,\n groupPaging: !!that._groupPaging\n }, data);\n if (!that.options.serverPaging) {\n delete options.take;\n delete options.skip;\n delete options.page;\n delete options.pageSize;\n }\n if (!that.options.serverGrouping) {\n delete options.group;\n } else if (that.reader.model && options.group) {\n options.group = convertDescriptorsField(options.group, that.reader.model);\n }\n if (!that.options.serverFiltering) {\n delete options.filter;\n } else if (that.reader.model && options.filter) {\n options.filter = convertFilterDescriptorsField(options.filter, that.reader.model);\n }\n if (!that.options.serverSorting) {\n delete options.sort;\n } else if (that.reader.model && options.sort) {\n options.sort = convertDescriptorsField(options.sort, that.reader.model);\n }\n if (!that.options.serverAggregates) {\n delete options.aggregate;\n } else if (that.reader.model && options.aggregate) {\n options.aggregate = convertDescriptorsField(options.aggregate, that.reader.model);\n }\n if (!that.options.groupPaging) {\n delete options.groupPaging;\n }\n return options;\n },\n _queueRequest: function (options, callback) {\n var that = this;\n if (!that._requestInProgress) {\n that._requestInProgress = true;\n that._pending = undefined;\n callback();\n } else {\n that._pending = {\n callback: proxy(callback, that),\n options: options\n };\n }\n },\n _dequeueRequest: function () {\n var that = this;\n that._requestInProgress = false;\n if (that._pending) {\n that._queueRequest(that._pending.options, that._pending.callback);\n }\n },\n _handleCustomErrors: function (response) {\n if (this.reader.errors) {\n var errors = this.reader.errors(response);\n if (errors) {\n this.trigger(ERROR, {\n xhr: null,\n status: 'customerror',\n errorThrown: 'custom error',\n errors: errors\n });\n return true;\n }\n }\n return false;\n },\n _shouldWrap: function (data) {\n var model = this.reader.model;\n if (model && data.length) {\n return !(data[0] instanceof model);\n }\n return false;\n },\n _observe: function (data) {\n var that = this, model = that.reader.model;\n that._shouldDetachObservableParents = true;\n if (data instanceof ObservableArray) {\n that._shouldDetachObservableParents = false;\n if (that._shouldWrap(data)) {\n data.type = that.reader.model;\n data.wrapAll(data, data);\n }\n } else {\n var arrayType = that.pageSize() && !that.options.serverPaging ? LazyObservableArray : ObservableArray;\n data = new arrayType(data, that.reader.model);\n data.parent = function () {\n return that.parent();\n };\n }\n if (that._isServerGrouped()) {\n wrapGroupItems(data, model);\n }\n if (that._changeHandler && that._data && that._data instanceof ObservableArray && !(that.options.useRanges && that.options.serverPaging)) {\n that._data.unbind(CHANGE, that._changeHandler);\n } else {\n that._changeHandler = proxy(that._change, that);\n }\n return data.bind(CHANGE, that._changeHandler);\n },\n _updateTotalForAction: function (action, items) {\n var that = this;\n var total = parseInt(that._total, 10);\n if (!isNumber(that._total)) {\n total = parseInt(that._pristineTotal, 10);\n }\n if (action === 'add') {\n total += items.length;\n } else if (action === 'remove') {\n total -= items.length;\n } else if (action !== 'itemchange' && action !== 'sync' && !that.options.serverPaging) {\n total = that._pristineTotal;\n } else if (action === 'sync') {\n total = that._pristineTotal = parseInt(that._total, 10);\n }\n that._total = total;\n },\n _change: function (e) {\n var that = this, idx, length, action = e ? e.action : '';\n if (action === 'remove') {\n for (idx = 0, length = e.items.length; idx < length; idx++) {\n if (!e.items[idx].isNew || !e.items[idx].isNew()) {\n that._destroyed.push(e.items[idx]);\n }\n }\n }\n if (that.options.autoSync && (action === 'add' || action === 'remove' || action === 'itemchange')) {\n var handler = function (args) {\n if (args.action === 'sync') {\n that.unbind('change', handler);\n that._updateTotalForAction(action, e.items);\n }\n };\n that.first('change', handler);\n that.sync();\n } else {\n that._updateTotalForAction(action, e ? e.items : []);\n that._process(that._data, e);\n }\n },\n _calculateAggregates: function (data, options) {\n options = options || {};\n var query = new Query(data), aggregates = options.aggregate, filter = options.filter;\n if (filter) {\n query = query.filter(filter);\n }\n return query.aggregate(aggregates);\n },\n _process: function (data, e) {\n var that = this, options = {}, result;\n if (that.options.serverPaging !== true) {\n options.skip = that._skip;\n options.take = that._take || that._pageSize;\n if (options.skip === undefined && that._page !== undefined && that._pageSize !== undefined) {\n options.skip = (that._page - 1) * that._pageSize;\n }\n if (that.options.useRanges) {\n options.skip = that.currentRangeStart();\n }\n }\n if (that.options.serverSorting !== true) {\n options.sort = that._sort;\n }\n if (that.options.serverFiltering !== true) {\n options.filter = that._filter;\n }\n if (that.options.serverGrouping !== true) {\n options.group = that._group;\n }\n if (that.options.serverAggregates !== true) {\n options.aggregate = that._aggregate;\n }\n if (that.options.serverGrouping) {\n that._clearEmptyGroups(data);\n }\n options.groupPaging = that._groupPaging;\n if (that._isGroupPaged() && e && (e.action === 'page' || e.action === 'expandGroup' || e.action === 'collapseGroup')) {\n result = that._queryProcess(data, { aggregate: that._aggregate });\n } else {\n result = that._queryProcess(data, options);\n }\n if (that.options.serverAggregates !== true) {\n that._aggregateResult = that._calculateAggregates(result.dataToAggregate || data, options);\n }\n that._setView(result, options, e);\n that._setFilterTotal(result.total, false);\n e = e || {};\n e.items = e.items || that._view;\n that.trigger(CHANGE, e);\n },\n _setView: function (result, options, e) {\n var that = this;\n if (that._isGroupPaged() && !that._isServerGrouped()) {\n if (e && (e.action === 'page' || e.action === 'expandGroup' || e.action === 'collapseGroup')) {\n that.view(result.data);\n that._updateOuterRangesLength();\n } else {\n that._ranges = [];\n var query = new Query(result.data);\n that._addRange(that._observe(result.data));\n if (options.skip > result.data.length / options.take + 1) {\n options.skip = 0;\n }\n that.view(query.range(options.skip, options.take).toArray());\n }\n } else {\n that.view(result.data);\n }\n },\n _clearEmptyGroups: function (data) {\n for (var idx = data.length - 1; idx >= 0; idx--) {\n var group = data[idx];\n if (group.hasSubgroups) {\n this._clearEmptyGroups(group.items);\n } else {\n if (group.items && !group.items.length) {\n splice.apply(group.parent(), [\n idx,\n 1\n ]);\n }\n }\n }\n },\n _queryProcess: function (data, options) {\n if (this.options.inPlaceSort) {\n return Query.process(data, options, this.options.inPlaceSort);\n } else {\n return Query.process(data, options);\n }\n },\n _mergeState: function (options) {\n var that = this;\n if (options !== undefined) {\n that._pageSize = options.pageSize;\n that._page = options.page;\n that._sort = options.sort;\n that._filter = options.filter;\n that._group = options.group;\n that._aggregate = options.aggregate;\n that._skip = that._currentRangeStart = options.skip;\n that._take = options.take;\n if (that._skip === undefined) {\n that._skip = that._currentRangeStart = that.skip();\n options.skip = that.skip();\n }\n if (that._take === undefined && that._pageSize !== undefined) {\n that._take = that._pageSize;\n options.take = that._take;\n }\n if (options.sort) {\n that._sort = options.sort = normalizeSort(options.sort);\n that._sortFields = sortFields(options.sort);\n }\n if (options.filter) {\n that._filter = options.filter = that.options.accentFoldingFiltering && !$.isEmptyObject(options.filter) ? $.extend({}, normalizeFilter(options.filter), { accentFoldingFiltering: that.options.accentFoldingFiltering }) : normalizeFilter(options.filter);\n }\n if (options.group) {\n that._group = options.group = normalizeGroup(options.group);\n }\n if (options.aggregate) {\n that._aggregate = options.aggregate = normalizeAggregate(options.aggregate);\n }\n }\n return options;\n },\n query: function (options) {\n var result;\n var remote = this.options.serverSorting || this.options.serverPaging || this.options.serverFiltering || this.options.serverGrouping || this.options.serverAggregates;\n if (remote || (this._data === undefined || this._data.length === 0) && !this._destroyed.length) {\n if (this.options.endless) {\n var moreItemsCount = options.pageSize - this.pageSize();\n if (moreItemsCount > 0) {\n moreItemsCount = this.pageSize();\n options.page = options.pageSize / moreItemsCount;\n options.pageSize = moreItemsCount;\n } else {\n options.page = 1;\n this.options.endless = false;\n }\n }\n return this.read(this._mergeState(options));\n }\n var isPrevented = this.trigger(REQUESTSTART, { type: 'read' });\n if (!isPrevented) {\n this.trigger(PROGRESS);\n if (options) {\n options.groupPaging = this._groupPaging;\n }\n result = this._queryProcess(this._data, this._mergeState(options));\n this._setFilterTotal(result.total, true);\n this._aggregateResult = this._calculateAggregates(result.dataToAggregate || this._data, options);\n this._setView(result, options);\n this.trigger(REQUESTEND, { type: 'read' });\n this.trigger(CHANGE, {\n items: result.data,\n action: options ? options.action : ''\n });\n }\n return $.Deferred().resolve(isPrevented).promise();\n },\n _hasExpandedSubGroups: function (group) {\n var result = false;\n var length = group.items ? group.items.length : 0;\n if (!group.hasSubgroups) {\n return false;\n }\n for (var i = 0; i < length; i++) {\n if (this._groupsState[group.items[i].uid]) {\n result = true;\n break;\n }\n }\n return result;\n },\n _findGroupedRange: function (data, result, options, parents, callback) {\n var that = this;\n var length = data.length;\n var group;\n var current;\n var itemsLength;\n var hasNotRequestedItems;\n var groupCount;\n var itemsToSkip;\n for (var i = 0; i < length; i++) {\n group = data[i];\n if (options.taken >= options.take) {\n break;\n }\n if (!that._getGroupByUid(group.uid)) {\n that._groupsFlat.push(group);\n }\n if (that._groupsState[group.uid]) {\n if (that._isServerGroupPaged()) {\n if (group.hasSubgroups && !group.subgroupCount) {\n that.getGroupSubGroupCount(group, options, parents, callback);\n that._fetchingGroupItems = true;\n return;\n }\n groupCount = (group.subgroupCount || group.itemCount) + 1;\n itemsToSkip = options.skip - options.skipped;\n hasNotRequestedItems = !group.items || group.items.length - itemsToSkip < options.take - options.taken;\n if (!that._hasExpandedSubGroups(group) && itemsToSkip > groupCount) {\n options.skipped += groupCount;\n continue;\n }\n if (group.hasSubgroups && (!group.items || hasNotRequestedItems && group.items.length < group.subgroupCount) || !group.hasSubgroups && (!group.items || hasNotRequestedItems && group.items.length < group.itemCount)) {\n that.getGroupItems(group, options, parents, callback);\n that._fetchingGroupItems = true;\n return;\n }\n }\n if (options.includeParents && options.skipped < options.skip) {\n options.skipped++;\n group.excludeHeader = true;\n } else if (options.includeParents) {\n options.taken++;\n }\n if (group.hasSubgroups && group.items && group.items.length) {\n group.currentItems = [];\n if (!parents) {\n parents = [];\n }\n parents.push(group);\n that._findGroupedRange(group.items, group.currentItems, options, parents, callback);\n parents.pop();\n if (group.currentItems.length || options.taken > 0) {\n result.push(group);\n } else {\n group.excludeHeader = false;\n }\n } else {\n current = [];\n itemsLength = group.items.length;\n for (var j = 0; j < itemsLength; j++) {\n if (options.skipped < options.skip) {\n options.skipped++;\n continue;\n }\n if (options.taken >= options.take) {\n break;\n }\n current.push(group.items[j]);\n options.taken++;\n }\n if (current.length || options.taken > 0) {\n group.currentItems = current;\n result.push(group);\n } else {\n group.excludeHeader = false;\n }\n }\n } else {\n if (options.skipped < options.skip) {\n options.skipped++;\n continue;\n }\n result.push(group);\n options.taken++;\n }\n }\n },\n getGroupItems: function (group, options, parents, callback) {\n var that = this;\n var skip;\n var take;\n var filter;\n var data;\n var subgroups;\n if (!group.items) {\n group.items = [];\n }\n skip = group.items.length;\n take = that.take();\n filter = this._composeItemsFilter(group, parents);\n data = {\n page: math.floor((skip || 0) / (take || 1)) || 1,\n pageSize: take,\n skip: skip,\n take: take,\n filter: filter,\n aggregate: that._aggregate,\n sort: that._sort\n };\n subgroups = that.findSubgroups(group);\n if (subgroups && subgroups.length) {\n data.group = subgroups;\n data.groupPaging = true;\n }\n clearTimeout(that._timeout);\n that._timeout = setTimeout(function () {\n that._queueRequest(data, function () {\n if (!that.trigger(REQUESTSTART, { type: 'read' })) {\n that.transport.read({\n data: data,\n success: that._groupItemsSuccessHandler(group, options.skip, that.take(), callback),\n error: function () {\n var args = slice.call(arguments);\n that.error.apply(that, args);\n }\n });\n } else {\n that._dequeueRequest();\n }\n });\n }, 100);\n },\n getGroupSubGroupCount: function (group, options, parents, callback) {\n var that = this;\n var filter;\n var groupIndex;\n var data;\n if (!group.items) {\n group.items = [];\n }\n filter = this._composeItemsFilter(group, parents);\n groupIndex = this._group.map(function (g) {\n return g.field;\n }).indexOf(group.field);\n data = {\n filter: filter,\n group: [that._group[groupIndex + 1]],\n groupPaging: true,\n includeSubGroupCount: true\n };\n clearTimeout(that._timeout);\n that._timeout = setTimeout(function () {\n that._queueRequest(data, function () {\n if (!that.trigger(REQUESTSTART, { type: 'read' })) {\n that.transport.read({\n data: data,\n success: that._subGroupCountSuccessHandler(group, options.skip, that.take(), callback),\n error: function () {\n var args = slice.call(arguments);\n that.error.apply(that, args);\n }\n });\n } else {\n that._dequeueRequest();\n }\n });\n }, 100);\n },\n _subGroupCountSuccessHandler: function (group, skip, take, callback) {\n var that = this;\n callback = isFunction(callback) ? callback : noop;\n var totalField = that.options.schema && that.options.schema.total ? that.options.schema.total : 'Total';\n return function (data) {\n that._dequeueRequest();\n that.trigger(REQUESTEND, {\n response: data,\n type: 'read'\n });\n that._fetchingGroupItems = false;\n group.subgroupCount = data[totalField];\n that.range(skip, take, callback, 'expandGroup');\n };\n },\n _groupItemsSuccessHandler: function (group, skip, take, callback) {\n var that = this;\n var timestamp = that._timeStamp();\n callback = isFunction(callback) ? callback : noop;\n return function (data) {\n var temp;\n var model = Model.define(that.options.schema.model);\n that._dequeueRequest();\n that.trigger(REQUESTEND, {\n response: data,\n type: 'read'\n });\n data = that.reader.parse(data);\n if (group.hasSubgroups) {\n temp = that.reader.groups(data);\n } else {\n temp = that.reader.data(data);\n temp = temp.map(function (item) {\n return new model(item);\n });\n }\n group.items.omitChangeEvent = true;\n for (var i = 0; i < temp.length; i++) {\n group.items.push(temp[i]);\n }\n group.items.omitChangeEvent = false;\n that._updateRangePristineData(group);\n that._fetchingGroupItems = false;\n that._serverGroupsTotal += temp.length;\n that.range(skip, take, callback, 'expandGroup');\n if (timestamp >= that._currentRequestTimeStamp || !that._skipRequestsInProgress) {\n that.trigger(CHANGE, {});\n }\n };\n },\n findSubgroups: function (group) {\n var indexOfCurrentGroup = this._group.map(function (g) {\n return g.field;\n }).indexOf(group.field);\n return this._group.slice(indexOfCurrentGroup + 1, this._group.length);\n },\n _composeItemsFilter: function (group, parents) {\n var filter = this.filter() || {\n logic: 'and',\n filters: []\n };\n filter = extend(true, {}, filter);\n filter.filters.push({\n field: group.field,\n operator: 'eq',\n value: group.value\n });\n if (parents) {\n for (var i = 0; i < parents.length; i++) {\n filter.filters.push({\n field: parents[i].field,\n operator: 'eq',\n value: parents[i].value\n });\n }\n }\n return filter;\n },\n _updateRangePristineData: function (group) {\n var that = this;\n var ranges = that._ranges;\n var rangesLength = ranges.length;\n var temp;\n var currentGroup;\n var range;\n var dataLength;\n var indexes;\n for (var i = 0; i < rangesLength; i++) {\n range = ranges[i];\n dataLength = range.data.length;\n indexes = [];\n for (var j = 0; j < dataLength; j++) {\n currentGroup = range.data[j];\n indexes.push(j);\n if (currentGroup.uid === group.uid || currentGroup.hasSubgroups && currentGroup.items.length && that._containsSubGroup(currentGroup, group, indexes)) {\n break;\n }\n indexes.pop();\n }\n if (indexes.length) {\n temp = ranges[i].pristineData;\n while (indexes.length > 1) {\n temp = temp[indexes.splice(0, 1)[0]].items;\n }\n temp[indexes[0]] = that._cloneGroup(group);\n break;\n }\n }\n },\n _containsSubGroup: function (group, subgroup, indexes) {\n var that = this;\n var length = group.items.length;\n var currentSubGroup;\n if (group.hasSubgroups && length) {\n for (var i = 0; i < length; i++) {\n currentSubGroup = group.items[i];\n indexes.push(i);\n if (currentSubGroup.uid === subgroup.uid) {\n return true;\n } else if (currentSubGroup.hasSubgroups && currentSubGroup.items.length) {\n return that._containsSubGroup(currentSubGroup, subgroup, indexes);\n }\n indexes.pop();\n }\n }\n },\n _cloneGroup: function (group) {\n var that = this;\n group = typeof group.toJSON == 'function' ? group.toJSON() : group;\n if (group.items && group.items.length) {\n group.items = group.items.map(function (item) {\n return that._cloneGroup(item);\n });\n }\n return group;\n },\n _setFilterTotal: function (filterTotal, setDefaultValue) {\n var that = this;\n if (!that.options.serverFiltering) {\n if (filterTotal !== undefined) {\n that._total = filterTotal;\n } else if (setDefaultValue) {\n that._total = that._data.length;\n }\n }\n },\n fetch: function (callback) {\n var that = this;\n var fn = function (isPrevented) {\n if (isPrevented !== true && isFunction(callback)) {\n callback.call(that);\n }\n };\n return this._query().done(fn);\n },\n _query: function (options) {\n var that = this;\n return that.query(extend({}, {\n page: that.page(),\n pageSize: that.pageSize(),\n sort: that.sort(),\n filter: that.filter(),\n group: that.group(),\n aggregate: that.aggregate()\n }, options));\n },\n next: function (options) {\n var that = this, page = that.page(), total = that.total();\n options = options || {};\n if (!page || total && page + 1 > that.totalPages()) {\n return;\n }\n that._skip = that._currentRangeStart = page * that.take();\n page += 1;\n options.page = page;\n that._query(options);\n return page;\n },\n prev: function (options) {\n var that = this, page = that.page();\n options = options || {};\n if (!page || page === 1) {\n return;\n }\n that._skip = that._currentRangeStart = that._skip - that.take();\n page -= 1;\n options.page = page;\n that._query(options);\n return page;\n },\n page: function (val) {\n var that = this, skip;\n if (val !== undefined) {\n val = math.max(math.min(math.max(val, 1), that.totalPages()), 1);\n var take = that.take();\n if (that._isGroupPaged()) {\n val -= 1;\n that.range(val * take, take, null, 'page');\n return;\n }\n that._query(that._pageableQueryOptions({ page: val }));\n return;\n }\n skip = that.skip();\n return skip !== undefined ? math.round((skip || 0) / (that.take() || 1)) + 1 : undefined;\n },\n pageSize: function (val) {\n var that = this;\n if (val !== undefined) {\n that._query(that._pageableQueryOptions({\n pageSize: val,\n page: 1\n }));\n return;\n }\n return that.take();\n },\n sort: function (val) {\n var that = this;\n if (val !== undefined) {\n that.trigger('sort');\n that._query({ sort: val });\n return;\n }\n return that._sort;\n },\n filter: function (val) {\n var that = this;\n if (val === undefined) {\n return that._filter;\n }\n that.trigger('reset');\n that._query({\n filter: val,\n page: 1\n });\n },\n group: function (val) {\n var that = this;\n if (val !== undefined) {\n that._query({ group: val });\n return;\n }\n return that._group;\n },\n getGroupsFlat: function (data) {\n var idx, result = [], length;\n for (idx = 0, length = data.length; idx < length; idx++) {\n var group = data[idx];\n if (group.hasSubgroups) {\n result = result.concat(this.getGroupsFlat(group.items));\n }\n result.push(group);\n }\n return result;\n },\n total: function () {\n return parseInt(this._total || 0, 10);\n },\n groupsTotal: function (includeExpanded) {\n var that = this;\n if (!that._group.length) {\n return that.total();\n }\n if (that._isServerGrouped()) {\n if (that._serverGroupsTotal) {\n return that._serverGroupsTotal;\n }\n that._serverGroupsTotal = that.total();\n return that._serverGroupsTotal;\n }\n return that._calculateGroupsTotal(that._ranges.length ? that._ranges[0].data : [], includeExpanded);\n },\n _calculateGroupsTotal: function (groups, includeExpanded, itemsField, ignoreState) {\n var that = this;\n itemsField = itemsField || 'items';\n var total;\n var length;\n if (that._group.length && groups) {\n total = 0;\n length = groups.length;\n for (var i = 0; i < length; i++) {\n total += that.groupCount(groups[i], includeExpanded, itemsField, ignoreState);\n }\n that._groupsTotal = total;\n return total;\n }\n that._groupsTotal = that._data.length;\n return that._groupsTotal;\n },\n groupCount: function (group, includeExpanded, itemsField, ignoreState) {\n var that = this;\n var total = 0;\n if (group.hasSubgroups && that._groupsState[group.uid]) {\n if (includeExpanded && !group.excludeHeader || ignoreState) {\n total += 1;\n }\n group[itemsField].forEach(function (subgroup) {\n total += that.groupCount(subgroup, includeExpanded, itemsField, ignoreState);\n });\n } else {\n if (that._groupsState[group.uid]) {\n if (includeExpanded && !group.excludeHeader || ignoreState) {\n total++;\n }\n total += group[itemsField] ? group[itemsField].length : 0;\n } else {\n total++;\n }\n }\n return total;\n },\n countGroupRange: function (range) {\n var total = 0;\n var length = range.length;\n for (var i = 0; i < length; i++) {\n total += this.groupCount(range[i], true);\n }\n return total;\n },\n aggregate: function (val) {\n var that = this;\n if (val !== undefined) {\n that._query({ aggregate: val });\n return;\n }\n return that._aggregate;\n },\n aggregates: function () {\n var result = this._aggregateResult;\n if (isEmptyObject(result)) {\n result = this._emptyAggregates(this.aggregate());\n }\n return result;\n },\n _emptyAggregates: function (aggregates) {\n var result = {};\n if (!isEmptyObject(aggregates)) {\n var aggregate = {};\n if (!isArray(aggregates)) {\n aggregates = [aggregates];\n }\n for (var idx = 0; idx < aggregates.length; idx++) {\n aggregate[aggregates[idx].aggregate] = 0;\n result[aggregates[idx].field] = aggregate;\n }\n }\n return result;\n },\n _pageableQueryOptions: function (options) {\n return options;\n },\n _wrapInEmptyGroup: function (model) {\n var groups = this.group(), parent, group, idx, length;\n for (idx = groups.length - 1, length = 0; idx >= length; idx--) {\n group = groups[idx];\n parent = {\n value: model.get ? model.get(group.field) : model[group.field],\n field: group.field,\n items: parent ? [parent] : [model],\n hasSubgroups: !!parent,\n aggregates: this._emptyAggregates(group.aggregates)\n };\n }\n return parent;\n },\n totalPages: function () {\n var that = this, pageSize = that.pageSize() || that.total(), total = that._isGroupPaged() ? that.groupsTotal(true) : that.total();\n return math.ceil((total || 0) / pageSize);\n },\n inRange: function (skip, take) {\n var that = this, end = math.min(skip + take, that.total());\n if (!that.options.serverPaging && that._data.length > 0) {\n return true;\n }\n return that._findRange(skip, end).length > 0;\n },\n lastRange: function () {\n var ranges = this._ranges;\n return ranges[ranges.length - 1] || {\n start: 0,\n end: 0,\n data: []\n };\n },\n firstItemUid: function () {\n var ranges = this._ranges;\n return ranges.length && ranges[0].data.length && ranges[0].data[0].uid;\n },\n enableRequestsInProgress: function () {\n this._skipRequestsInProgress = false;\n },\n _timeStamp: function () {\n return new Date().getTime();\n },\n range: function (skip, take, callback, action) {\n this._currentRequestTimeStamp = this._timeStamp();\n this._skipRequestsInProgress = true;\n var total = this._isGroupPaged() ? this.groupsTotal(true) : this.total();\n if (action === 'expandGroup' || action === 'collapseGroup') {\n this._updateOuterRangesLength();\n }\n skip = math.min(skip || 0, total);\n callback = isFunction(callback) ? callback : noop;\n var that = this, pageSkip = math.max(math.floor(skip / take), 0) * take, size = math.min(pageSkip + take, total), data;\n data = that._findRange(skip, math.min(skip + take, total), callback);\n if ((data.length || total === 0) && !that._fetchingGroupItems) {\n that._processRangeData(data, skip, take, that._originalPageSkip || pageSkip, that._originalSize || size, { action: action });\n that._originalPageSkip = null;\n that._originalSize = null;\n callback();\n return;\n }\n if (that._isGroupPaged()) {\n that._originalPageSkip = pageSkip;\n that._originalSize = size;\n pageSkip = math.max(math.floor(that._adjustPageSkip(skip, take) / take), 0) * take;\n size = math.min(pageSkip + take, total);\n }\n if (take !== undefined && !that._fetchingGroupItems) {\n if (that._isGroupPaged() && !that._groupRangeExists(pageSkip, take) || !that._rangeExists(pageSkip, size)) {\n that.prefetch(pageSkip, take, function () {\n if (skip > pageSkip && size < that.total() && !that._rangeExists(size, math.min(size + take, that.total()))) {\n that.prefetch(size, take, function () {\n that.range(skip, take, callback);\n });\n } else {\n that.range(skip, take, callback);\n }\n });\n } else if (pageSkip < skip) {\n that.prefetch(size, take, function () {\n that.range(skip, take, callback);\n });\n }\n }\n },\n _findRange: function (start, end, callback) {\n var that = this, ranges = that._ranges, range, data = [], skipIdx, takeIdx, startIndex, endIndex, rangeData, rangeEnd, processed, options = that.options, remote = options.serverSorting || options.serverPaging || options.serverFiltering || options.serverGrouping || options.serverAggregates, flatData, count, length, groupMapOptions = {\n take: end - start,\n skip: start,\n skipped: 0,\n taken: 0,\n includeParents: true\n }, prevRangeEnd, isGroupPaged = that._isGroupPaged(), startField = isGroupPaged ? 'outerStart' : 'start', endField = isGroupPaged ? 'outerEnd' : 'end', currentDataLength;\n for (skipIdx = 0, length = ranges.length; skipIdx < length; skipIdx++) {\n range = ranges[skipIdx];\n if (isGroupPaged) {\n if (range.outerStart >= end) {\n return [];\n }\n if (start > range.outerEnd) {\n groupMapOptions.skipped += range.outerEnd - (prevRangeEnd || 0);\n prevRangeEnd = range.outerEnd;\n continue;\n }\n if (typeof prevRangeEnd !== 'undefined' && prevRangeEnd != range.outerStart) {\n groupMapOptions.skipped += range.outerStart - prevRangeEnd;\n }\n if (groupMapOptions.skipped > groupMapOptions.skip) {\n return [];\n }\n if (typeof prevRangeEnd === 'undefined' && start > 0 && range.start > 0) {\n groupMapOptions.skipped = range.outerStart;\n }\n takeIdx = skipIdx;\n while (true) {\n this._findGroupedRange(range.data, data, groupMapOptions, null, callback);\n currentDataLength = that._calculateGroupsTotal(data, true, 'currentItems');\n if (currentDataLength >= groupMapOptions.take) {\n return data;\n }\n if (that._fetchingGroupItems) {\n return [];\n }\n takeIdx++;\n if (ranges[takeIdx] && ranges[takeIdx].outerStart === range.outerEnd) {\n range = ranges[takeIdx];\n } else {\n break;\n }\n }\n } else if (start >= range[startField] && start <= range[endField]) {\n count = 0;\n for (takeIdx = skipIdx; takeIdx < length; takeIdx++) {\n range = ranges[takeIdx];\n flatData = that._flatData(range.data, true);\n if (flatData.length && start + count >= range.start) {\n rangeData = range.data;\n rangeEnd = range.end;\n if (!remote) {\n if (options.inPlaceSort) {\n processed = that._queryProcess(range.data, { filter: that.filter() });\n } else {\n var sort = normalizeGroupWithoutCompare(that.group() || []).concat(normalizeSort(that.sort() || []));\n processed = that._queryProcess(range.data, {\n sort: sort,\n filter: that.filter()\n });\n }\n flatData = rangeData = processed.data;\n if (processed.total !== undefined) {\n rangeEnd = processed.total;\n }\n }\n startIndex = 0;\n if (start + count > range.start) {\n startIndex = start + count - range.start;\n }\n endIndex = flatData.length;\n if (rangeEnd > end) {\n endIndex = endIndex - (rangeEnd - end);\n }\n count += endIndex - startIndex;\n data = that._mergeGroups(data, rangeData, startIndex, endIndex);\n if (end <= range.end && count == end - start) {\n return data;\n }\n }\n }\n break;\n }\n prevRangeEnd = range.outerEnd;\n }\n return [];\n },\n _getRangesMismatch: function (pageSkip) {\n var that = this;\n var ranges = that._ranges;\n var mismatch = 0;\n var i = 0;\n while (true) {\n var range = ranges[i];\n if (!range || range.outerStart > pageSkip) {\n break;\n }\n if (range.outerEnd != range.end) {\n mismatch = range.outerEnd - range.end;\n }\n i++;\n }\n return mismatch;\n },\n _mergeGroups: function (data, range, skip, take) {\n if (this._isServerGrouped()) {\n var temp = range.toJSON(), prevGroup;\n if (data.length) {\n prevGroup = data[data.length - 1];\n }\n mergeGroups(prevGroup, temp, skip, take);\n return data.concat(temp);\n }\n return data.concat(range.slice(skip, take));\n },\n _processRangeData: function (data, skip, take, pageSkip, size, eventData) {\n var that = this;\n that._pending = undefined;\n that._skip = skip > that.skip() && !that._omitPrefetch ? math.min(size, (that.totalPages() - 1) * that.take()) : pageSkip;\n that._currentRangeStart = skip;\n that._take = take;\n var paging = that.options.serverPaging;\n var sorting = that.options.serverSorting;\n var filtering = that.options.serverFiltering;\n var aggregates = that.options.serverAggregates;\n try {\n that.options.serverPaging = true;\n if (!that._isServerGrouped() && !(that.group() && that.group().length)) {\n that.options.serverSorting = true;\n }\n that.options.serverFiltering = true;\n that.options.serverPaging = true;\n that.options.serverAggregates = true;\n if (paging) {\n that._detachObservableParents();\n that._data = data = that._observe(data);\n }\n that._process(data, eventData);\n } finally {\n that.options.serverPaging = paging;\n that.options.serverSorting = sorting;\n that.options.serverFiltering = filtering;\n that.options.serverAggregates = aggregates;\n }\n },\n skip: function () {\n var that = this;\n if (that._skip === undefined) {\n return that._page !== undefined ? (that._page - 1) * (that.take() || 1) : undefined;\n }\n return that._skip;\n },\n currentRangeStart: function () {\n return this._currentRangeStart || 0;\n },\n take: function () {\n return this._take || this._pageSize;\n },\n _prefetchSuccessHandler: function (skip, size, callback, force) {\n var that = this;\n var timestamp = that._timeStamp();\n return function (data) {\n var found = false, range = {\n start: skip,\n end: size,\n data: [],\n timestamp: that._timeStamp()\n }, idx, length, temp;\n that._dequeueRequest();\n that.trigger(REQUESTEND, {\n response: data,\n type: 'read'\n });\n data = that.reader.parse(data);\n temp = that._readData(data);\n if (temp.length) {\n for (idx = 0, length = that._ranges.length; idx < length; idx++) {\n if (that._ranges[idx].start === skip) {\n found = true;\n range = that._ranges[idx];\n if (!that._isGroupPaged()) {\n range.pristineData = temp;\n range.data = that._observe(temp);\n range.end = range.start + that._flatData(range.data, true).length;\n that._sortRanges();\n }\n break;\n }\n }\n if (!found) {\n that._addRange(that._observe(temp), skip);\n }\n }\n that._total = that.reader.total(data);\n if (force || (timestamp >= that._currentRequestTimeStamp || !that._skipRequestsInProgress)) {\n if (callback && temp.length) {\n callback();\n } else {\n that.trigger(CHANGE, {});\n }\n }\n };\n },\n prefetch: function (skip, take, callback) {\n var that = this, size = math.min(skip + take, that.total()), options = {\n take: take,\n skip: skip,\n page: skip / take + 1,\n pageSize: take,\n sort: that._sort,\n filter: that._filter,\n group: that._group,\n aggregate: that._aggregate\n };\n if (that._isGroupPaged() && !that._isServerGrouped() && that._groupRangeExists(skip, size)) {\n if (callback) {\n callback();\n }\n return;\n }\n if (that._isServerGroupPaged() && !that._groupRangeExists(skip, size) || !that._rangeExists(skip, size)) {\n clearTimeout(that._timeout);\n that._timeout = setTimeout(function () {\n that._queueRequest(options, function () {\n if (!that.trigger(REQUESTSTART, { type: 'read' })) {\n if (that._omitPrefetch) {\n that.trigger(PROGRESS);\n }\n that.transport.read({\n data: that._params(options),\n success: that._prefetchSuccessHandler(skip, size, callback),\n error: function () {\n var args = slice.call(arguments);\n that.error.apply(that, args);\n }\n });\n } else {\n that._dequeueRequest();\n }\n });\n }, 100);\n } else if (callback) {\n callback();\n }\n },\n _multiplePrefetch: function (skip, take, callback) {\n var that = this, size = math.min(skip + take, that.total()), options = {\n take: take,\n skip: skip,\n page: skip / take + 1,\n pageSize: take,\n sort: that._sort,\n filter: that._filter,\n group: that._group,\n aggregate: that._aggregate\n };\n if (!that._rangeExists(skip, size)) {\n if (!that.trigger(REQUESTSTART, { type: 'read' })) {\n that.transport.read({\n data: that._params(options),\n success: that._prefetchSuccessHandler(skip, size, callback, true)\n });\n }\n } else if (callback) {\n callback();\n }\n },\n _adjustPageSkip: function (start, take) {\n var that = this;\n var prevRange = that._getPrevRange(start);\n var result;\n var total = that.total();\n var mismatch;\n if (prevRange) {\n mismatch = that._getRangesMismatch(start);\n if (!mismatch) {\n return start;\n }\n start -= mismatch;\n }\n result = math.max(math.floor(start / take), 0) * take;\n if (result > total) {\n while (true) {\n result -= take;\n if (result < total) {\n break;\n }\n }\n }\n return result;\n },\n _getNextRange: function (end) {\n var that = this, ranges = that._ranges, idx, length;\n for (idx = 0, length = ranges.length; idx < length; idx++) {\n if (ranges[idx].start <= end && ranges[idx].end >= end) {\n return ranges[idx];\n }\n }\n },\n _getPrevRange: function (start) {\n var that = this, ranges = that._ranges, idx, range, length = ranges.length;\n for (idx = length - 1; idx >= 0; idx--) {\n if (ranges[idx].outerStart <= start) {\n range = ranges[idx];\n break;\n }\n }\n return range;\n },\n _rangeExists: function (start, end) {\n var that = this, ranges = that._ranges, idx, length;\n for (idx = 0, length = ranges.length; idx < length; idx++) {\n if (ranges[idx].start <= start && ranges[idx].end >= end) {\n return true;\n }\n }\n return false;\n },\n _groupRangeExists: function (start, end) {\n var that = this, ranges = that._ranges, idx, length, availableItemsCount = 0, total = that.groupsTotal(true);\n if (end > total && !that._isServerGrouped()) {\n end = total;\n }\n for (idx = 0, length = ranges.length; idx < length; idx++) {\n var range = ranges[idx];\n if (range.outerStart <= start && range.outerEnd >= start) {\n availableItemsCount += range.outerEnd - start;\n } else if (range.outerStart <= end && range.outerEnd >= end) {\n availableItemsCount += end - range.outerStart;\n }\n }\n return availableItemsCount >= end - start;\n },\n _getCurrentRangeSpan: function () {\n var that = this;\n var ranges = that._ranges;\n var start = that.currentRangeStart();\n var end = start + (that.take() || 0);\n var rangeSpan = [];\n var range;\n var idx;\n var length = ranges.length;\n for (idx = 0; idx < length; idx++) {\n range = ranges[idx];\n if (range.start <= start && range.end >= start || range.start >= start && range.start <= end) {\n rangeSpan.push(range);\n }\n }\n return rangeSpan;\n },\n _removeModelFromRanges: function (model) {\n var that = this;\n var range;\n for (var idx = 0, length = this._ranges.length; idx < length; idx++) {\n range = this._ranges[idx];\n that._removeModelFromRange(range, model);\n }\n that._updateRangesLength();\n },\n _removeModelFromRange: function (range, model) {\n this._eachItem(range.data, function (data) {\n if (!data) {\n return;\n }\n for (var idx = 0; idx < data.length; idx++) {\n var dataItem = data[idx];\n if (dataItem.uid && dataItem.uid == model.uid) {\n [].splice.call(data, idx, 1);\n break;\n }\n }\n });\n },\n _insertModelInRange: function (index, model) {\n var that = this;\n var ranges = that._ranges || [];\n var rangesLength = ranges.length;\n var range;\n var i;\n for (i = 0; i < rangesLength; i++) {\n range = ranges[i];\n if (range.start <= index && range.end >= index) {\n if (!that._getByUid(model.uid, range.data)) {\n if (that._isServerGrouped()) {\n range.data.splice(index, 0, that._wrapInEmptyGroup(model));\n } else {\n range.data.splice(index, 0, model);\n }\n }\n break;\n }\n }\n that._updateRangesLength();\n },\n _updateRangesLength: function () {\n var that = this;\n var ranges = that._ranges || [];\n var rangesLength = ranges.length;\n var mismatchFound = false;\n var mismatchLength = 0;\n var lengthDifference = 0;\n var rangeLength;\n var range;\n var i;\n for (i = 0; i < rangesLength; i++) {\n range = ranges[i];\n rangeLength = that._isGroupPaged() ? range.data.length : that._flatData(range.data, true).length;\n lengthDifference = rangeLength - math.abs(range.end - range.start);\n if (!mismatchFound && lengthDifference !== 0) {\n mismatchFound = true;\n mismatchLength = lengthDifference;\n range.end += mismatchLength;\n continue;\n }\n if (mismatchFound) {\n range.start += mismatchLength;\n range.end += mismatchLength;\n }\n }\n },\n _updateOuterRangesLength: function () {\n var that = this;\n var ranges = that._ranges || [];\n var rangesLength = ranges.length;\n var mismatchLength = 0;\n var range;\n var i;\n var prevRange;\n var rangeLength;\n for (i = 0; i < rangesLength; i++) {\n range = ranges[i];\n rangeLength = that._isGroupPaged() ? that._calculateGroupsTotal(range.data, true, 'items', true) : that._flatData(range.data, true).length;\n if (prevRange) {\n if (prevRange.end != range.start) {\n mismatchLength = range.start - prevRange.end;\n }\n range.outerStart = prevRange.outerEnd + mismatchLength;\n mismatchLength = 0;\n } else {\n range.outerStart = range.start;\n }\n range.outerEnd = range.outerStart + rangeLength;\n prevRange = range;\n }\n }\n });\n var Transport = {};\n Transport.create = function (options, data, dataSource) {\n var transport, transportOptions = options.transport ? $.extend({}, options.transport) : null;\n if (transportOptions) {\n transportOptions.read = typeof transportOptions.read === STRING ? { url: transportOptions.read } : transportOptions.read;\n if (options.type === 'jsdo') {\n transportOptions.dataSource = dataSource;\n }\n if (options.type) {\n kendo.data.transports = kendo.data.transports || {};\n kendo.data.schemas = kendo.data.schemas || {};\n if (!kendo.data.transports[options.type]) {\n kendo.logToConsole('Unknown DataSource transport type \\'' + options.type + '\\'.\\nVerify that registration scripts for this type are included after Kendo UI on the page.', 'warn');\n } else if (!isPlainObject(kendo.data.transports[options.type])) {\n transport = new kendo.data.transports[options.type](extend(transportOptions, { data: data }));\n } else {\n transportOptions = extend(true, {}, kendo.data.transports[options.type], transportOptions);\n }\n options.schema = extend(true, {}, kendo.data.schemas[options.type], options.schema);\n }\n if (!transport) {\n transport = isFunction(transportOptions.read) ? transportOptions : new RemoteTransport(transportOptions);\n }\n } else {\n transport = new LocalTransport({ data: options.data || [] });\n }\n return transport;\n };\n DataSource.create = function (options) {\n if (isArray(options) || options instanceof ObservableArray) {\n options = { data: options };\n }\n var dataSource = options || {}, data = dataSource.data, fields = dataSource.fields, table = dataSource.table, select = dataSource.select, idx, length, model = {}, field;\n if (!data && fields && !dataSource.transport) {\n if (table) {\n data = inferTable(table, fields);\n } else if (select) {\n data = inferSelect(select, fields);\n if (dataSource.group === undefined && data[0] && data[0].optgroup !== undefined) {\n dataSource.group = 'optgroup';\n }\n }\n }\n if (kendo.data.Model && fields && (!dataSource.schema || !dataSource.schema.model)) {\n for (idx = 0, length = fields.length; idx < length; idx++) {\n field = fields[idx];\n if (field.type) {\n model[field.field] = field;\n }\n }\n if (!isEmptyObject(model)) {\n dataSource.schema = extend(true, dataSource.schema, { model: { fields: model } });\n }\n }\n dataSource.data = data;\n select = null;\n dataSource.select = null;\n table = null;\n dataSource.table = null;\n return dataSource instanceof DataSource ? dataSource : new DataSource(dataSource);\n };\n function inferSelect(select, fields) {\n select = $(select)[0];\n var options = select.options;\n var firstField = fields[0];\n var secondField = fields[1];\n var data = [];\n var idx, length;\n var optgroup;\n var option;\n var record;\n var value;\n for (idx = 0, length = options.length; idx < length; idx++) {\n record = {};\n option = options[idx];\n optgroup = option.parentNode;\n if (optgroup === select) {\n optgroup = null;\n }\n if (option.disabled || optgroup && optgroup.disabled) {\n continue;\n }\n if (optgroup) {\n record.optgroup = optgroup.label;\n }\n record[firstField.field] = option.text;\n value = option.attributes.value;\n if (value && value.specified) {\n value = option.value;\n } else {\n value = option.text;\n }\n record[secondField.field] = value;\n data.push(record);\n }\n return data;\n }\n function inferTable(table, fields) {\n var tbody = $(table)[0].tBodies[0], rows = tbody ? tbody.rows : [], idx, length, fieldIndex, fieldCount = fields.length, data = [], cells, record, cell, empty;\n for (idx = 0, length = rows.length; idx < length; idx++) {\n record = {};\n empty = true;\n cells = rows[idx].cells;\n for (fieldIndex = 0; fieldIndex < fieldCount; fieldIndex++) {\n cell = cells[fieldIndex];\n if (cell.nodeName.toLowerCase() !== 'th') {\n empty = false;\n record[fields[fieldIndex].field] = cell.innerHTML;\n }\n }\n if (!empty) {\n data.push(record);\n }\n }\n return data;\n }\n var Node = Model.define({\n idField: 'id',\n init: function (value) {\n var that = this, hasChildren = that.hasChildren || value && value.hasChildren, childrenField = 'items', childrenOptions = {};\n kendo.data.Model.fn.init.call(that, value);\n if (typeof that.children === STRING) {\n childrenField = that.children;\n }\n childrenOptions = {\n schema: {\n data: childrenField,\n model: {\n hasChildren: hasChildren,\n id: that.idField,\n fields: that.fields\n }\n }\n };\n if (typeof that.children !== STRING) {\n extend(childrenOptions, that.children);\n }\n childrenOptions.data = value;\n if (!hasChildren) {\n hasChildren = childrenOptions.schema.data;\n }\n if (typeof hasChildren === STRING) {\n hasChildren = kendo.getter(hasChildren);\n }\n if (isFunction(hasChildren)) {\n var hasChildrenObject = hasChildren.call(that, that);\n if (hasChildrenObject && hasChildrenObject.length === 0) {\n that.hasChildren = false;\n } else {\n that.hasChildren = !!hasChildrenObject;\n }\n }\n that._childrenOptions = childrenOptions;\n if (that.hasChildren) {\n that._initChildren();\n }\n that._loaded = !!(value && value._loaded);\n },\n _initChildren: function () {\n var that = this;\n var children, transport, parameterMap;\n if (!(that.children instanceof HierarchicalDataSource)) {\n children = that.children = new HierarchicalDataSource(that._childrenOptions);\n transport = children.transport;\n parameterMap = transport.parameterMap;\n transport.parameterMap = function (data, type) {\n data[that.idField || 'id'] = that.id;\n if (parameterMap) {\n data = parameterMap.call(that, data, type);\n }\n return data;\n };\n children.parent = function () {\n return that;\n };\n children.bind(CHANGE, function (e) {\n e.node = e.node || that;\n that.trigger(CHANGE, e);\n });\n children.bind(ERROR, function (e) {\n var collection = that.parent();\n if (collection) {\n e.node = e.node || that;\n collection.trigger(ERROR, e);\n }\n });\n that._updateChildrenField();\n }\n },\n append: function (model) {\n this._initChildren();\n this.loaded(true);\n this.children.add(model);\n },\n hasChildren: false,\n level: function () {\n var parentNode = this.parentNode(), level = 0;\n while (parentNode && parentNode.parentNode) {\n level++;\n parentNode = parentNode.parentNode ? parentNode.parentNode() : null;\n }\n return level;\n },\n _updateChildrenField: function () {\n var fieldName = this._childrenOptions.schema.data;\n this[fieldName || 'items'] = this.children.data();\n },\n _childrenLoaded: function () {\n this._loaded = true;\n this._updateChildrenField();\n },\n load: function () {\n var options = {};\n var method = '_query';\n var children, promise;\n if (this.hasChildren) {\n this._initChildren();\n children = this.children;\n options[this.idField || 'id'] = this.id;\n if (!this._loaded) {\n children._data = undefined;\n method = 'read';\n }\n children.one(CHANGE, proxy(this._childrenLoaded, this));\n if (this._matchFilter) {\n options.filter = {\n field: '_matchFilter',\n operator: 'eq',\n value: true\n };\n }\n promise = children[method](options);\n } else {\n this.loaded(true);\n }\n return promise || $.Deferred().resolve().promise();\n },\n parentNode: function () {\n var array = this.parent();\n return array.parent();\n },\n loaded: function (value) {\n if (value !== undefined) {\n this._loaded = value;\n } else {\n return this._loaded;\n }\n },\n shouldSerialize: function (field) {\n return Model.fn.shouldSerialize.call(this, field) && field !== 'children' && field !== '_loaded' && field !== 'hasChildren' && field !== '_childrenOptions';\n }\n });\n function dataMethod(name) {\n return function () {\n var data = this._data, result = DataSource.fn[name].apply(this, slice.call(arguments));\n if (this._data != data) {\n this._attachBubbleHandlers();\n }\n return result;\n };\n }\n var HierarchicalDataSource = DataSource.extend({\n init: function (options) {\n var node = Node.define({ children: options });\n if (options.filter && !options.serverFiltering) {\n this._hierarchicalFilter = options.filter;\n options.filter = null;\n }\n DataSource.fn.init.call(this, extend(true, {}, {\n schema: {\n modelBase: node,\n model: node\n }\n }, options));\n this._attachBubbleHandlers();\n },\n _attachBubbleHandlers: function () {\n var that = this;\n that._data.bind(ERROR, function (e) {\n that.trigger(ERROR, e);\n });\n },\n read: function (data) {\n var result = DataSource.fn.read.call(this, data);\n if (this._hierarchicalFilter) {\n if (this._data && this._data.length > 0) {\n this.filter(this._hierarchicalFilter);\n } else {\n this.options.filter = this._hierarchicalFilter;\n this._filter = normalizeFilter(this.options.filter);\n this._hierarchicalFilter = null;\n }\n }\n return result;\n },\n remove: function (node) {\n var parentNode = node.parentNode(), dataSource = this, result;\n if (parentNode && parentNode._initChildren) {\n dataSource = parentNode.children;\n }\n result = DataSource.fn.remove.call(dataSource, node);\n if (parentNode && !dataSource.data().length) {\n parentNode.hasChildren = false;\n }\n return result;\n },\n success: dataMethod('success'),\n data: dataMethod('data'),\n insert: function (index, model) {\n var parentNode = this.parent();\n if (parentNode && parentNode._initChildren) {\n parentNode.hasChildren = true;\n parentNode._initChildren();\n }\n return DataSource.fn.insert.call(this, index, model);\n },\n filter: function (val) {\n if (val === undefined) {\n return this._filter;\n }\n if (!this.options.serverFiltering && this._markHierarchicalQuery(val)) {\n val = {\n logic: 'or',\n filters: [\n val,\n {\n field: '_matchFilter',\n operator: 'equals',\n value: true\n }\n ]\n };\n }\n this.trigger('reset');\n this._query({\n filter: val,\n page: 1\n });\n },\n _markHierarchicalQuery: function (expressions) {\n var compiled;\n var predicate;\n var fields;\n var operators;\n var filter;\n var accentFoldingFiltering = this.options.accentFoldingFiltering;\n expressions = accentFoldingFiltering ? $.extend({}, normalizeFilter(expressions), { accentFoldingFiltering: accentFoldingFiltering }) : normalizeFilter(expressions);\n if (!expressions || expressions.filters.length === 0) {\n this._updateHierarchicalFilter(function () {\n return true;\n });\n return false;\n }\n compiled = Query.filterExpr(expressions);\n fields = compiled.fields;\n operators = compiled.operators;\n predicate = filter = new Function('d, __f, __o', 'return ' + compiled.expression);\n if (fields.length || operators.length) {\n filter = function (d) {\n return predicate(d, fields, operators);\n };\n }\n this._updateHierarchicalFilter(filter);\n return true;\n },\n _updateHierarchicalFilter: function (filter) {\n var current;\n var data = this._data;\n var result = false;\n for (var idx = 0; idx < data.length; idx++) {\n current = data[idx];\n if (current.hasChildren) {\n current._matchFilter = current.children._updateHierarchicalFilter(filter);\n if (!current._matchFilter) {\n current._matchFilter = filter(current);\n }\n } else {\n current._matchFilter = filter(current);\n }\n if (current._matchFilter) {\n result = true;\n }\n }\n return result;\n },\n _find: function (method, value) {\n var idx, length, node, children;\n var data = this._data;\n if (!data) {\n return;\n }\n node = DataSource.fn[method].call(this, value);\n if (node) {\n return node;\n }\n data = this._flatData(this._data);\n for (idx = 0, length = data.length; idx < length; idx++) {\n children = data[idx].children;\n if (!(children instanceof HierarchicalDataSource)) {\n continue;\n }\n node = children[method](value);\n if (node) {\n return node;\n }\n }\n },\n get: function (id) {\n return this._find('get', id);\n },\n getByUid: function (uid) {\n return this._find('getByUid', uid);\n }\n });\n function inferList(list, fields) {\n var items = $(list).children(), idx, length, data = [], record, textField = fields[0].field, urlField = fields[1] && fields[1].field, spriteCssClassField = fields[2] && fields[2].field, imageUrlField = fields[3] && fields[3].field, item, id, textChild, className, children;\n function elements(collection, tagName) {\n return collection.filter(tagName).add(collection.find(tagName));\n }\n for (idx = 0, length = items.length; idx < length; idx++) {\n record = { _loaded: true };\n item = items.eq(idx);\n textChild = item[0].firstChild;\n children = item.children();\n list = children.filter('ul');\n children = children.filter(':not(ul)');\n id = item.attr('data-id');\n if (id) {\n record.id = id;\n }\n if (textChild) {\n record[textField] = textChild.nodeType == 3 ? textChild.nodeValue : children.text();\n }\n if (urlField) {\n record[urlField] = elements(children, 'a').attr('href');\n }\n if (imageUrlField) {\n record[imageUrlField] = elements(children, 'img').attr('src');\n }\n if (spriteCssClassField) {\n className = elements(children, '.k-sprite').prop('className');\n record[spriteCssClassField] = className && kendo.trim(className.replace('k-sprite', ''));\n }\n if (list.length) {\n record.items = inferList(list.eq(0), fields);\n }\n if (item.attr('data-hasChildren') == 'true') {\n record.hasChildren = true;\n }\n data.push(record);\n }\n return data;\n }\n HierarchicalDataSource.create = function (options) {\n options = options && options.push ? { data: options } : options;\n var dataSource = options || {}, data = dataSource.data, fields = dataSource.fields, list = dataSource.list;\n if (data && data._dataSource) {\n return data._dataSource;\n }\n if (!data && fields && !dataSource.transport) {\n if (list) {\n data = inferList(list, fields);\n }\n }\n dataSource.data = data;\n return dataSource instanceof HierarchicalDataSource ? dataSource : new HierarchicalDataSource(dataSource);\n };\n var Buffer = kendo.Observable.extend({\n init: function (dataSource, viewSize, disablePrefetch) {\n kendo.Observable.fn.init.call(this);\n this._prefetching = false;\n this.dataSource = dataSource;\n this.prefetch = !disablePrefetch;\n var buffer = this;\n dataSource.bind('change', function () {\n buffer._change();\n });\n dataSource.bind('reset', function () {\n buffer._reset();\n });\n this._syncWithDataSource();\n this.setViewSize(viewSize);\n },\n setViewSize: function (viewSize) {\n this.viewSize = viewSize;\n this._recalculate();\n },\n at: function (index) {\n var pageSize = this.pageSize, itemPresent = true;\n if (index >= this.total()) {\n this.trigger('endreached', { index: index });\n return null;\n }\n if (!this.useRanges) {\n return this.dataSource.view()[index];\n }\n if (this.useRanges) {\n if (index < this.dataOffset || index >= this.skip + pageSize) {\n itemPresent = this.range(Math.floor(index / pageSize) * pageSize);\n }\n if (index === this.prefetchThreshold) {\n this._prefetch();\n }\n if (index === this.midPageThreshold) {\n this.range(this.nextMidRange, true);\n } else if (index === this.nextPageThreshold) {\n this.range(this.nextFullRange);\n } else if (index === this.pullBackThreshold) {\n if (this.offset === this.skip) {\n this.range(this.previousMidRange);\n } else {\n this.range(this.previousFullRange);\n }\n }\n if (itemPresent) {\n return this.dataSource.at(index - this.dataOffset);\n } else {\n this.trigger('endreached', { index: index });\n return null;\n }\n }\n },\n indexOf: function (item) {\n return this.dataSource.data().indexOf(item) + this.dataOffset;\n },\n total: function () {\n return parseInt(this.dataSource.total(), 10);\n },\n next: function () {\n var buffer = this, pageSize = buffer.pageSize, offset = buffer.skip - buffer.viewSize + pageSize, pageSkip = math.max(math.floor(offset / pageSize), 0) * pageSize;\n this.offset = offset;\n this.dataSource.prefetch(pageSkip, pageSize, function () {\n buffer._goToRange(offset, true);\n });\n },\n range: function (offset, nextRange) {\n if (this.offset === offset) {\n return true;\n }\n var buffer = this, pageSize = this.pageSize, pageSkip = math.max(math.floor(offset / pageSize), 0) * pageSize, dataSource = this.dataSource;\n if (nextRange) {\n pageSkip += pageSize;\n }\n if (dataSource.inRange(offset, pageSize)) {\n this.offset = offset;\n this._recalculate();\n this._goToRange(offset);\n return true;\n } else if (this.prefetch) {\n dataSource.prefetch(pageSkip, pageSize, function () {\n buffer.offset = offset;\n buffer._recalculate();\n buffer._goToRange(offset, true);\n });\n return false;\n }\n return true;\n },\n syncDataSource: function () {\n var offset = this.offset;\n this.offset = null;\n this.range(offset);\n },\n destroy: function () {\n this.unbind();\n },\n _prefetch: function () {\n var buffer = this, pageSize = this.pageSize, prefetchOffset = this.skip + pageSize, dataSource = this.dataSource;\n if (!dataSource.inRange(prefetchOffset, pageSize) && !this._prefetching && this.prefetch) {\n this._prefetching = true;\n this.trigger('prefetching', {\n skip: prefetchOffset,\n take: pageSize\n });\n dataSource.prefetch(prefetchOffset, pageSize, function () {\n buffer._prefetching = false;\n buffer.trigger('prefetched', {\n skip: prefetchOffset,\n take: pageSize\n });\n });\n }\n },\n _goToRange: function (offset, expanding) {\n if (this.offset !== offset) {\n return;\n }\n this.dataOffset = offset;\n this._expanding = expanding;\n this.dataSource.range(offset, this.pageSize);\n this.dataSource.enableRequestsInProgress();\n },\n _reset: function () {\n this._syncPending = true;\n },\n _change: function () {\n var dataSource = this.dataSource;\n this.length = this.useRanges ? dataSource.lastRange().end : dataSource.view().length;\n if (this._syncPending) {\n this._syncWithDataSource();\n this._recalculate();\n this._syncPending = false;\n this.trigger('reset', { offset: this.offset });\n }\n this.trigger('resize');\n if (this._expanding) {\n this.trigger('expand');\n }\n delete this._expanding;\n },\n _syncWithDataSource: function () {\n var dataSource = this.dataSource;\n this._firstItemUid = dataSource.firstItemUid();\n this.dataOffset = this.offset = dataSource.skip() || 0;\n this.pageSize = dataSource.pageSize();\n this.useRanges = dataSource.options.serverPaging;\n },\n _recalculate: function () {\n var pageSize = this.pageSize, offset = this.offset, viewSize = this.viewSize, skip = Math.ceil(offset / pageSize) * pageSize;\n this.skip = skip;\n this.midPageThreshold = skip + pageSize - 1;\n this.nextPageThreshold = skip + viewSize - 1;\n this.prefetchThreshold = skip + Math.floor(pageSize / 3 * 2);\n this.pullBackThreshold = this.offset - 1;\n this.nextMidRange = skip + pageSize - viewSize;\n this.nextFullRange = skip;\n this.previousMidRange = offset - viewSize;\n this.previousFullRange = skip - pageSize;\n }\n });\n var BatchBuffer = kendo.Observable.extend({\n init: function (dataSource, batchSize) {\n var batchBuffer = this;\n kendo.Observable.fn.init.call(batchBuffer);\n this.dataSource = dataSource;\n this.batchSize = batchSize;\n this._total = 0;\n this.buffer = new Buffer(dataSource, batchSize * 3);\n this.buffer.bind({\n 'endreached': function (e) {\n batchBuffer.trigger('endreached', { index: e.index });\n },\n 'prefetching': function (e) {\n batchBuffer.trigger('prefetching', {\n skip: e.skip,\n take: e.take\n });\n },\n 'prefetched': function (e) {\n batchBuffer.trigger('prefetched', {\n skip: e.skip,\n take: e.take\n });\n },\n 'reset': function () {\n batchBuffer._total = 0;\n batchBuffer.trigger('reset');\n },\n 'resize': function () {\n batchBuffer._total = Math.ceil(this.length / batchBuffer.batchSize);\n batchBuffer.trigger('resize', {\n total: batchBuffer.total(),\n offset: this.offset\n });\n }\n });\n },\n syncDataSource: function () {\n this.buffer.syncDataSource();\n },\n at: function (index) {\n var buffer = this.buffer, skip = index * this.batchSize, take = this.batchSize, view = [], item;\n if (buffer.offset > skip) {\n buffer.at(buffer.offset - 1);\n }\n for (var i = 0; i < take; i++) {\n item = buffer.at(skip + i);\n if (item === null) {\n break;\n }\n view.push(item);\n }\n return view;\n },\n total: function () {\n return this._total;\n },\n destroy: function () {\n this.buffer.destroy();\n this.unbind();\n }\n });\n extend(true, kendo.data, {\n readers: { json: DataReader },\n Query: Query,\n DataSource: DataSource,\n HierarchicalDataSource: HierarchicalDataSource,\n Node: Node,\n ObservableObject: ObservableObject,\n ObservableArray: ObservableArray,\n LazyObservableArray: LazyObservableArray,\n LocalTransport: LocalTransport,\n RemoteTransport: RemoteTransport,\n Cache: Cache,\n DataReader: DataReader,\n Model: Model,\n Buffer: Buffer,\n BatchBuffer: BatchBuffer\n });\n }(window.kendo.jQuery));\n return window.kendo;\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('kendo.popup', ['kendo.core'], f);\n}(function () {\n var __meta__ = {\n id: 'popup',\n name: 'Pop-up',\n category: 'framework',\n depends: ['core'],\n advanced: true\n };\n (function ($, undefined) {\n var kendo = window.kendo, ui = kendo.ui, Widget = ui.Widget, Class = kendo.Class, support = kendo.support, getOffset = kendo.getOffset, outerWidth = kendo._outerWidth, outerHeight = kendo._outerHeight, OPEN = 'open', CLOSE = 'close', DEACTIVATE = 'deactivate', ACTIVATE = 'activate', CENTER = 'center', LEFT = 'left', RIGHT = 'right', TOP = 'top', BOTTOM = 'bottom', ABSOLUTE = 'absolute', HIDDEN = 'hidden', BODY = 'body', LOCATION = 'location', POSITION = 'position', VISIBLE = 'visible', EFFECTS = 'effects', ACTIVE = 'k-state-active', ACTIVEBORDER = 'k-state-border', ACTIVEBORDERREGEXP = /k-state-border-(\\w+)/, ACTIVECHILDREN = '.k-picker-wrap, .k-dropdown-wrap, .k-link', MOUSEDOWN = 'down', DOCUMENT_ELEMENT = $(document.documentElement), proxy = $.proxy, WINDOW = $(window), SCROLL = 'scroll', cssPrefix = support.transitions.css, TRANSFORM = cssPrefix + 'transform', extend = $.extend, NS = '.kendoPopup', styles = [\n 'font-size',\n 'font-family',\n 'font-stretch',\n 'font-style',\n 'font-weight',\n 'line-height'\n ];\n function contains(container, target) {\n if (!container || !target) {\n return false;\n }\n return container === target || $.contains(container, target);\n }\n var Popup = Widget.extend({\n init: function (element, options) {\n var that = this, parentPopup;\n options = options || {};\n if (options.isRtl) {\n options.origin = options.origin || BOTTOM + ' ' + RIGHT;\n options.position = options.position || TOP + ' ' + RIGHT;\n }\n Widget.fn.init.call(that, element, options);\n element = that.element;\n options = that.options;\n that.collisions = options.collision ? options.collision.split(' ') : [];\n that.downEvent = kendo.applyEventMap(MOUSEDOWN, kendo.guid());\n if (that.collisions.length === 1) {\n that.collisions.push(that.collisions[0]);\n }\n parentPopup = $(that.options.anchor).closest('.k-popup,.k-group').filter(':not([class^=km-])');\n options.appendTo = $($(options.appendTo)[0] || parentPopup[0] || document.body);\n that.element.hide().addClass('k-popup k-group k-reset').toggleClass('k-rtl', !!options.isRtl).css({ position: ABSOLUTE }).appendTo(options.appendTo).attr('aria-hidden', true).on('mouseenter' + NS, function () {\n that._hovered = true;\n }).on('wheel' + NS, function (e) {\n var list = $(e.target).find('.k-list');\n var scrollArea = list.parent();\n if (list.length && list.is(':visible') && (scrollArea.scrollTop() === 0 && e.originalEvent.deltaY < 0 || scrollArea.scrollTop() === scrollArea.prop('scrollHeight') - scrollArea.prop('offsetHeight') && e.originalEvent.deltaY > 0)) {\n e.preventDefault();\n }\n }).on('mouseleave' + NS, function () {\n that._hovered = false;\n });\n that.wrapper = $();\n if (options.animation === false) {\n options.animation = {\n open: { effects: {} },\n close: {\n hide: true,\n effects: {}\n }\n };\n }\n extend(options.animation.open, {\n complete: function () {\n that.wrapper.css({ overflow: VISIBLE });\n that._activated = true;\n that._trigger(ACTIVATE);\n }\n });\n extend(options.animation.close, {\n complete: function () {\n that._animationClose();\n }\n });\n that._mousedownProxy = function (e) {\n that._mousedown(e);\n };\n if (support.mobileOS.android) {\n that._resizeProxy = function (e) {\n setTimeout(function () {\n that._resize(e);\n }, 600);\n };\n } else {\n that._resizeProxy = function (e) {\n that._resize(e);\n };\n }\n if (options.toggleTarget) {\n $(options.toggleTarget).on(options.toggleEvent + NS, $.proxy(that.toggle, that));\n }\n },\n events: [\n OPEN,\n ACTIVATE,\n CLOSE,\n DEACTIVATE\n ],\n options: {\n name: 'Popup',\n toggleEvent: 'click',\n origin: BOTTOM + ' ' + LEFT,\n position: TOP + ' ' + LEFT,\n anchor: BODY,\n appendTo: null,\n collision: 'flip fit',\n viewport: window,\n copyAnchorStyles: true,\n autosize: false,\n modal: false,\n adjustSize: {\n width: 0,\n height: 0\n },\n animation: {\n open: {\n effects: 'slideIn:down',\n transition: true,\n duration: 200\n },\n close: {\n duration: 100,\n hide: true\n }\n }\n },\n _animationClose: function () {\n var that = this;\n var location = that.wrapper.data(LOCATION);\n that.wrapper.hide();\n if (location) {\n that.wrapper.css(location);\n }\n if (that.options.anchor != BODY) {\n that._hideDirClass();\n }\n that._closing = false;\n that._trigger(DEACTIVATE);\n },\n destroy: function () {\n var that = this, options = that.options, element = that.element.off(NS), parent;\n Widget.fn.destroy.call(that);\n if (options.toggleTarget) {\n $(options.toggleTarget).off(NS);\n }\n if (!options.modal) {\n DOCUMENT_ELEMENT.off(that.downEvent, that._mousedownProxy);\n that._toggleResize(false);\n }\n kendo.destroy(that.element.children());\n element.removeData();\n if (options.appendTo[0] === document.body) {\n parent = element.parent('.k-animation-container');\n if (parent[0]) {\n parent.remove();\n } else {\n element.remove();\n }\n }\n },\n open: function (x, y) {\n var that = this, fixed = {\n isFixed: !isNaN(parseInt(y, 10)),\n x: x,\n y: y\n }, element = that.element, options = that.options, animation, wrapper, anchor = $(options.anchor), mobile = element[0] && element.hasClass('km-widget');\n if (!that.visible()) {\n if (options.copyAnchorStyles) {\n if (mobile && styles[0] == 'font-size') {\n styles.shift();\n }\n element.css(kendo.getComputedStyles(anchor[0], styles));\n }\n if (element.data('animating') || that._trigger(OPEN)) {\n return;\n }\n that._activated = false;\n if (!options.modal) {\n DOCUMENT_ELEMENT.off(that.downEvent, that._mousedownProxy).on(that.downEvent, that._mousedownProxy);\n that._toggleResize(false);\n that._toggleResize(true);\n }\n that.wrapper = wrapper = kendo.wrap(element, options.autosize).css({\n overflow: HIDDEN,\n display: 'block',\n position: ABSOLUTE\n }).attr('aria-hidden', false);\n if (support.mobileOS.android) {\n wrapper.css(TRANSFORM, 'translatez(0)');\n }\n wrapper.css(POSITION);\n if ($(options.appendTo)[0] == document.body) {\n wrapper.css(TOP, '-10000px');\n }\n that.flipped = that._position(fixed);\n animation = that._openAnimation();\n if (options.anchor != BODY) {\n that._showDirClass(animation);\n }\n if (!element.is(':visible') && element.data('olddisplay') === undefined) {\n element.show();\n element.data('olddisplay', element.css('display'));\n element.hide();\n }\n element.data(EFFECTS, animation.effects).kendoStop(true).kendoAnimate(animation).attr('aria-hidden', false);\n }\n },\n _location: function (isFixed) {\n var that = this, element = that.element, options = that.options, wrapper, anchor = $(options.anchor), mobile = element[0] && element.hasClass('km-widget');\n if (options.copyAnchorStyles) {\n if (mobile && styles[0] == 'font-size') {\n styles.shift();\n }\n element.css(kendo.getComputedStyles(anchor[0], styles));\n }\n that.wrapper = wrapper = kendo.wrap(element, options.autosize).css({\n overflow: HIDDEN,\n display: 'block',\n position: ABSOLUTE\n });\n if (support.mobileOS.android) {\n wrapper.css(TRANSFORM, 'translatez(0)');\n }\n wrapper.css(POSITION);\n if ($(options.appendTo)[0] == document.body) {\n wrapper.css(TOP, '-10000px');\n }\n that._position(isFixed || {});\n var offset = wrapper.offset();\n return {\n width: kendo._outerWidth(wrapper),\n height: kendo._outerHeight(wrapper),\n left: offset.left,\n top: offset.top\n };\n },\n _openAnimation: function () {\n var animation = extend(true, {}, this.options.animation.open);\n animation.effects = kendo.parseEffects(animation.effects, this.flipped);\n return animation;\n },\n _hideDirClass: function () {\n var anchor = $(this.options.anchor);\n var direction = ((anchor.attr('class') || '').match(ACTIVEBORDERREGEXP) || [\n '',\n 'down'\n ])[1];\n var dirClass = ACTIVEBORDER + '-' + direction;\n anchor.removeClass(dirClass).children(ACTIVECHILDREN).removeClass(ACTIVE).removeClass(dirClass);\n this.element.removeClass(ACTIVEBORDER + '-' + kendo.directions[direction].reverse);\n },\n _showDirClass: function (animation) {\n var direction = animation.effects.slideIn ? animation.effects.slideIn.direction : 'down';\n var dirClass = ACTIVEBORDER + '-' + direction;\n $(this.options.anchor).addClass(dirClass).children(ACTIVECHILDREN).addClass(ACTIVE).addClass(dirClass);\n this.element.addClass(ACTIVEBORDER + '-' + kendo.directions[direction].reverse);\n },\n position: function () {\n if (this.visible()) {\n this.flipped = this._position();\n }\n },\n toggle: function () {\n var that = this;\n that[that.visible() ? CLOSE : OPEN]();\n },\n visible: function () {\n return this.element.is(':' + VISIBLE);\n },\n close: function (skipEffects) {\n var that = this, options = that.options, wrap, animation, openEffects, closeEffects;\n if (that.visible()) {\n wrap = that.wrapper[0] ? that.wrapper : kendo.wrap(that.element).hide();\n that._toggleResize(false);\n if (that._closing || that._trigger(CLOSE)) {\n that._toggleResize(true);\n return;\n }\n that.element.find('.k-popup').each(function () {\n var that = $(this), popup = that.data('kendoPopup');\n if (popup) {\n popup.close(skipEffects);\n }\n });\n DOCUMENT_ELEMENT.off(that.downEvent, that._mousedownProxy);\n if (skipEffects) {\n animation = {\n hide: true,\n effects: {}\n };\n } else {\n animation = extend(true, {}, options.animation.close);\n openEffects = that.element.data(EFFECTS);\n closeEffects = animation.effects;\n if (!closeEffects && !kendo.size(closeEffects) && openEffects && kendo.size(openEffects)) {\n animation.effects = openEffects;\n animation.reverse = true;\n }\n that._closing = true;\n }\n that.element.kendoStop(true).attr('aria-hidden', true);\n wrap.css({ overflow: HIDDEN }).attr('aria-hidden', true);\n that.element.kendoAnimate(animation);\n if (skipEffects) {\n that._animationClose();\n }\n }\n },\n _trigger: function (ev) {\n return this.trigger(ev, { type: ev });\n },\n _resize: function (e) {\n var that = this;\n if (support.resize.indexOf(e.type) !== -1) {\n clearTimeout(that._resizeTimeout);\n that._resizeTimeout = setTimeout(function () {\n that._position();\n that._resizeTimeout = null;\n }, 50);\n } else {\n if (!that._hovered || that._activated && that.element.hasClass('k-list-container')) {\n that.close();\n }\n }\n },\n _toggleResize: function (toggle) {\n var method = toggle ? 'on' : 'off';\n var eventNames = support.resize;\n if (!(support.mobileOS.ios || support.mobileOS.android || support.browser.safari)) {\n eventNames += ' ' + SCROLL;\n }\n if (toggle && !this.scrollableParents) {\n this.scrollableParents = this._scrollableParents();\n }\n if (this.scrollableParents && this.scrollableParents.length) {\n this.scrollableParents[method](SCROLL, this._resizeProxy);\n }\n WINDOW[method](eventNames, this._resizeProxy);\n },\n _mousedown: function (e) {\n var that = this, container = that.element[0], options = that.options, anchor = $(options.anchor)[0], toggleTarget = options.toggleTarget, target = kendo.eventTarget(e), popup = $(target).closest('.k-popup'), mobile = popup.parent().parent('.km-shim').length;\n popup = popup[0];\n if (!mobile && popup && popup !== that.element[0]) {\n return;\n }\n if ($(e.target).closest('a').data('rel') === 'popover') {\n return;\n }\n if (!contains(container, target) && !contains(anchor, target) && !(toggleTarget && contains($(toggleTarget)[0], target))) {\n that.close();\n }\n },\n _fit: function (position, size, viewPortSize) {\n var output = 0;\n if (position + size > viewPortSize) {\n output = viewPortSize - (position + size);\n }\n if (position < 0) {\n output = -position;\n }\n return output;\n },\n _flip: function (offset, size, anchorSize, viewPortSize, origin, position, boxSize) {\n var output = 0;\n boxSize = boxSize || size;\n if (position !== origin && position !== CENTER && origin !== CENTER) {\n if (offset + boxSize > viewPortSize) {\n output += -(anchorSize + size);\n }\n if (offset + output < 0) {\n output += anchorSize + size;\n }\n }\n return output;\n },\n _scrollableParents: function () {\n return $(this.options.anchor).parentsUntil('body').filter(function (index, element) {\n return kendo.isScrollable(element);\n });\n },\n _position: function (fixed) {\n var that = this, element = that.element, wrapper = that.wrapper, options = that.options, viewport = $(options.viewport), zoomLevel = support.zoomLevel(), isWindow = !!(viewport[0] == window && window.innerWidth && zoomLevel <= 1.02), anchor = $(options.anchor), origins = options.origin.toLowerCase().split(' '), positions = options.position.toLowerCase().split(' '), collisions = that.collisions, siblingContainer, parents, parentZIndex, zIndex = 10002, idx = 0, docEl = document.documentElement, length, viewportOffset, viewportWidth, viewportHeight;\n if (options.viewport === window) {\n viewportOffset = {\n top: window.pageYOffset || document.documentElement.scrollTop || 0,\n left: window.pageXOffset || document.documentElement.scrollLeft || 0\n };\n } else {\n viewportOffset = viewport.offset();\n }\n if (isWindow) {\n viewportWidth = window.innerWidth;\n viewportHeight = window.innerHeight;\n } else {\n viewportWidth = viewport.width();\n viewportHeight = viewport.height();\n }\n if (isWindow && docEl.scrollHeight - docEl.clientHeight > 0) {\n var sign = options.isRtl ? -1 : 1;\n viewportWidth -= sign * kendo.support.scrollbar();\n }\n siblingContainer = anchor.parents().filter(wrapper.siblings());\n if (siblingContainer[0]) {\n parentZIndex = Math.max(Number(siblingContainer.css('zIndex')), 0);\n if (parentZIndex) {\n zIndex = parentZIndex + 10;\n } else {\n parents = anchor.parentsUntil(siblingContainer);\n for (length = parents.length; idx < length; idx++) {\n parentZIndex = Number($(parents[idx]).css('zIndex'));\n if (parentZIndex && zIndex < parentZIndex) {\n zIndex = parentZIndex + 10;\n }\n }\n }\n }\n wrapper.css('zIndex', zIndex);\n if (fixed && fixed.isFixed) {\n wrapper.css({\n left: fixed.x,\n top: fixed.y\n });\n } else {\n wrapper.css(that._align(origins, positions));\n }\n var pos = getOffset(wrapper, POSITION, anchor[0] === wrapper.offsetParent()[0]), offset = getOffset(wrapper), anchorParent = anchor.offsetParent().parent('.k-animation-container,.k-popup,.k-group');\n if (anchorParent.length) {\n pos = getOffset(wrapper, POSITION, true);\n offset = getOffset(wrapper);\n }\n offset.top -= viewportOffset.top;\n offset.left -= viewportOffset.left;\n if (!that.wrapper.data(LOCATION)) {\n wrapper.data(LOCATION, extend({}, pos));\n }\n var offsets = extend({}, offset), location = extend({}, pos), adjustSize = options.adjustSize;\n if (collisions[0] === 'fit') {\n location.top += that._fit(offsets.top, outerHeight(wrapper) + adjustSize.height, viewportHeight / zoomLevel);\n }\n if (collisions[1] === 'fit') {\n location.left += that._fit(offsets.left, outerWidth(wrapper) + adjustSize.width, viewportWidth / zoomLevel);\n }\n var flipPos = extend({}, location);\n var elementHeight = outerHeight(element);\n var wrapperHeight = outerHeight(wrapper);\n if (!wrapper.height() && elementHeight) {\n wrapperHeight = wrapperHeight + elementHeight;\n }\n if (collisions[0] === 'flip') {\n location.top += that._flip(offsets.top, elementHeight, outerHeight(anchor), viewportHeight / zoomLevel, origins[0], positions[0], wrapperHeight);\n }\n if (collisions[1] === 'flip') {\n location.left += that._flip(offsets.left, outerWidth(element), outerWidth(anchor), viewportWidth / zoomLevel, origins[1], positions[1], outerWidth(wrapper));\n }\n element.css(POSITION, ABSOLUTE);\n wrapper.css(location);\n return location.left != flipPos.left || location.top != flipPos.top;\n },\n _align: function (origin, position) {\n var that = this, element = that.wrapper, anchor = $(that.options.anchor), verticalOrigin = origin[0], horizontalOrigin = origin[1], verticalPosition = position[0], horizontalPosition = position[1], anchorOffset = getOffset(anchor), appendTo = $(that.options.appendTo), appendToOffset, width = outerWidth(element), height = outerHeight(element) || outerHeight(element.children().first()), anchorWidth = outerWidth(anchor), anchorHeight = outerHeight(anchor), top = anchorOffset.top, left = anchorOffset.left, round = Math.round;\n if (appendTo[0] != document.body) {\n appendToOffset = getOffset(appendTo);\n top -= appendToOffset.top;\n left -= appendToOffset.left;\n }\n if (verticalOrigin === BOTTOM) {\n top += anchorHeight;\n }\n if (verticalOrigin === CENTER) {\n top += round(anchorHeight / 2);\n }\n if (verticalPosition === BOTTOM) {\n top -= height;\n }\n if (verticalPosition === CENTER) {\n top -= round(height / 2);\n }\n if (horizontalOrigin === RIGHT) {\n left += anchorWidth;\n }\n if (horizontalOrigin === CENTER) {\n left += round(anchorWidth / 2);\n }\n if (horizontalPosition === RIGHT) {\n left -= width;\n }\n if (horizontalPosition === CENTER) {\n left -= round(width / 2);\n }\n return {\n top: top,\n left: left\n };\n }\n });\n ui.plugin(Popup);\n var stableSort = kendo.support.stableSort;\n var tabKeyTrapNS = 'kendoTabKeyTrap';\n var focusableNodesSelector = 'a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, [tabindex], *[contenteditable]';\n var TabKeyTrap = Class.extend({\n init: function (element) {\n this.element = $(element);\n this.element.autoApplyNS(tabKeyTrapNS);\n },\n trap: function () {\n this.element.on('keydown', proxy(this._keepInTrap, this));\n },\n removeTrap: function () {\n this.element.kendoDestroy(tabKeyTrapNS);\n },\n destroy: function () {\n this.element.kendoDestroy(tabKeyTrapNS);\n this.element = undefined;\n },\n shouldTrap: function () {\n return true;\n },\n _keepInTrap: function (e) {\n if (e.which !== 9 || !this.shouldTrap() || e.isDefaultPrevented()) {\n return;\n }\n var elements = this._focusableElements();\n var sortedElements = this._sortFocusableElements(elements);\n var next = this._nextFocusable(e, sortedElements);\n this._focus(next);\n e.preventDefault();\n },\n _focusableElements: function () {\n var elements = this.element.find(focusableNodesSelector).filter(function (i, item) {\n return item.tabIndex >= 0 && $(item).is(':visible') && !$(item).is('[disabled]');\n });\n if (this.element.is('[tabindex]')) {\n elements.push(this.element[0]);\n }\n return elements;\n },\n _sortFocusableElements: function (elements) {\n var sortedElements;\n if (stableSort) {\n sortedElements = elements.sort(function (prev, next) {\n return prev.tabIndex - next.tabIndex;\n });\n } else {\n var attrName = '__k_index';\n elements.each(function (i, item) {\n item.setAttribute(attrName, i);\n });\n sortedElements = elements.sort(function (prev, next) {\n return prev.tabIndex === next.tabIndex ? parseInt(prev.getAttribute(attrName), 10) - parseInt(next.getAttribute(attrName), 10) : prev.tabIndex - next.tabIndex;\n });\n elements.removeAttr(attrName);\n }\n return sortedElements;\n },\n _nextFocusable: function (e, elements) {\n var count = elements.length;\n var current = elements.index(e.target);\n return elements.get((current + (e.shiftKey ? -1 : 1)) % count);\n },\n _focus: function (element) {\n if (element.nodeName == 'IFRAME') {\n element.contentWindow.document.body.focus();\n return;\n }\n element.focus();\n if (element.nodeName == 'INPUT' && element.setSelectionRange && this._haveSelectionRange(element)) {\n element.setSelectionRange(0, element.value.length);\n }\n },\n _haveSelectionRange: function (element) {\n var elementType = element.type.toLowerCase();\n return elementType === 'text' || elementType === 'search' || elementType === 'url' || elementType === 'tel' || elementType === 'password';\n }\n });\n ui.Popup.TabKeyTrap = TabKeyTrap;\n }(window.kendo.jQuery));\n return window.kendo;\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('kendo.list', [\n 'kendo.data',\n 'kendo.popup'\n ], f);\n}(function () {\n var __meta__ = {\n id: 'list',\n name: 'List',\n category: 'framework',\n depends: [\n 'data',\n 'popup'\n ],\n hidden: true\n };\n (function ($, undefined) {\n var kendo = window.kendo, ui = kendo.ui, outerHeight = kendo._outerHeight, percentageUnitsRegex = /^\\d+(\\.\\d+)?%$/i, Widget = ui.Widget, keys = kendo.keys, support = kendo.support, htmlEncode = kendo.htmlEncode, activeElement = kendo._activeElement, outerWidth = kendo._outerWidth, ObservableArray = kendo.data.ObservableArray, ID = 'id', CHANGE = 'change', FOCUSED = 'k-state-focused', HOVER = 'k-state-hover', LOADING = 'k-i-loading', GROUPHEADER = '.k-group-header', ITEMSELECTOR = '.k-item', LABELIDPART = '_label', OPEN = 'open', CLOSE = 'close', CASCADE = 'cascade', SELECT = 'select', SELECTED = 'selected', REQUESTSTART = 'requestStart', REQUESTEND = 'requestEnd', BLUR = 'blur', FOCUS = 'focus', FOCUSOUT = 'focusout', extend = $.extend, proxy = $.proxy, isArray = $.isArray, browser = support.browser, HIDDENCLASS = 'k-hidden', WIDTH = 'width', isIE = browser.msie, isIE8 = isIE && browser.version < 9, quotRegExp = /\"/g, alternativeNames = {\n 'ComboBox': [\n 'DropDownList',\n 'MultiColumnComboBox'\n ],\n 'DropDownList': [\n 'ComboBox',\n 'MultiColumnComboBox'\n ],\n 'MultiColumnComboBox': [\n 'ComboBox',\n 'DropDownList'\n ]\n };\n var List = kendo.ui.DataBoundWidget.extend({\n init: function (element, options) {\n var that = this, ns = that.ns, id;\n Widget.fn.init.call(that, element, options);\n element = that.element;\n options = that.options;\n that._isSelect = element.is(SELECT);\n if (that._isSelect && that.element[0].length) {\n if (!options.dataSource) {\n options.dataTextField = options.dataTextField || 'text';\n options.dataValueField = options.dataValueField || 'value';\n }\n }\n that.ul = $('
          ').attr({\n tabIndex: -1,\n 'aria-hidden': true\n });\n that.list = $('
          ').append(that.ul).on('mousedown' + ns, proxy(that._listMousedown, that));\n id = element.attr(ID);\n if (!id) {\n id = kendo.guid();\n }\n that.list.attr(ID, id + '-list');\n that.ul.attr(ID, id + '_listbox');\n if (options.columns && options.columns.length) {\n that.ul.removeClass('k-list').addClass('k-grid-list');\n that._columnsHeader();\n }\n that._header();\n that._noData();\n that._footer();\n that._accessors();\n that._initValue();\n },\n options: {\n valuePrimitive: false,\n footerTemplate: '',\n headerTemplate: '',\n noDataTemplate: true,\n messages: {\n 'noData': 'No data found.',\n 'clear': 'clear'\n }\n },\n setOptions: function (options) {\n Widget.fn.setOptions.call(this, options);\n if (options && options.enable !== undefined) {\n options.enabled = options.enable;\n }\n if (options.columns && options.columns.length) {\n this._columnsHeader();\n }\n this._header();\n this._noData();\n this._footer();\n this._renderFooter();\n this._renderNoData();\n },\n focus: function () {\n this._focused.focus();\n },\n readonly: function (readonly) {\n this._editable({\n readonly: readonly === undefined ? true : readonly,\n disable: false\n });\n },\n enable: function (enable) {\n this._editable({\n readonly: false,\n disable: !(enable = enable === undefined ? true : enable)\n });\n },\n _header: function () {\n var list = this;\n var header = $(list.header);\n var template = list.options.headerTemplate;\n this._angularElement(header, 'cleanup');\n kendo.destroy(header);\n header.remove();\n if (!template) {\n list.header = null;\n return;\n }\n var headerTemplate = typeof template !== 'function' ? kendo.template(template) : template;\n header = $(headerTemplate({}));\n list.header = header[0] ? header : null;\n list.list.prepend(header);\n this._angularElement(list.header, 'compile');\n },\n _columnsHeader: function () {\n var list = this;\n var columnsHeader = $(list.columnsHeader);\n this._angularElement(columnsHeader, 'cleanup');\n kendo.destroy(columnsHeader);\n columnsHeader.remove();\n var header = '
          ';\n var colGroup = '';\n var row = '';\n for (var idx = 0; idx < this.options.columns.length; idx++) {\n var currentColumn = this.options.columns[idx];\n var title = currentColumn.title || currentColumn.field || '';\n var template = currentColumn.headerTemplate || title;\n var columnsHeaderTemplate = typeof template !== 'function' ? kendo.template(template) : template;\n var currentWidth = currentColumn.width;\n var currentWidthInt = parseInt(currentWidth, 10);\n var widthStyle = '';\n if (currentWidth && !isNaN(currentWidthInt)) {\n widthStyle += 'style=\\'width:';\n widthStyle += currentWidthInt;\n widthStyle += percentageUnitsRegex.test(currentWidth) ? '%' : 'px';\n widthStyle += ';\\'';\n }\n colGroup += '';\n row += '';\n }\n colGroup += '';\n row += '';\n header += colGroup;\n header += row;\n header += '
          ';\n row += columnsHeaderTemplate(currentColumn);\n row += '
          ';\n list.columnsHeader = columnsHeader = $(header);\n list.list.prepend(columnsHeader);\n this._angularElement(list.columnsHeader, 'compile');\n },\n _noData: function () {\n var list = this;\n var noData = $(list.noData);\n var template = list.options.noDataTemplate === true ? list.options.messages.noData : list.options.noDataTemplate;\n list.angular('cleanup', function () {\n return { elements: noData };\n });\n kendo.destroy(noData);\n noData.remove();\n if (!template) {\n list.noData = null;\n return;\n }\n list.noData = $('
          ').appendTo(list.list);\n list.noDataTemplate = typeof template !== 'function' ? kendo.template(template) : template;\n },\n _footer: function () {\n var list = this;\n var footer = $(list.footer);\n var template = list.options.footerTemplate;\n this._angularElement(footer, 'cleanup');\n kendo.destroy(footer);\n footer.remove();\n if (!template) {\n list.footer = null;\n return;\n }\n list.footer = $('
          ').appendTo(list.list);\n list.footerTemplate = typeof template !== 'function' ? kendo.template(template) : template;\n },\n _listOptions: function (options) {\n var that = this;\n var currentOptions = that.options;\n var virtual = currentOptions.virtual;\n var changeEventOption = { change: proxy(that._listChange, that) };\n var listBoundHandler = proxy(that._listBound, that);\n virtual = typeof virtual === 'object' ? virtual : {};\n options = $.extend({\n autoBind: false,\n selectable: true,\n dataSource: that.dataSource,\n click: proxy(that._click, that),\n activate: proxy(that._activateItem, that),\n columns: currentOptions.columns,\n deactivate: proxy(that._deactivateItem, that),\n dataBinding: function () {\n that.trigger('dataBinding');\n },\n dataBound: listBoundHandler,\n height: currentOptions.height,\n dataValueField: currentOptions.dataValueField,\n dataTextField: currentOptions.dataTextField,\n groupTemplate: currentOptions.groupTemplate,\n fixedGroupTemplate: currentOptions.fixedGroupTemplate,\n template: currentOptions.template\n }, options, virtual, changeEventOption);\n if (!options.template) {\n options.template = '#:' + kendo.expr(options.dataTextField, 'data') + '#';\n }\n if (currentOptions.$angular) {\n options.$angular = currentOptions.$angular;\n }\n return options;\n },\n _initList: function () {\n var that = this;\n var listOptions = that._listOptions({ selectedItemChange: proxy(that._listChange, that) });\n if (!that.options.virtual) {\n that.listView = new kendo.ui.StaticList(that.ul, listOptions);\n } else {\n that.listView = new kendo.ui.VirtualList(that.ul, listOptions);\n }\n that.listView.bind('listBound', proxy(that._listBound, that));\n that._setListValue();\n },\n _setListValue: function (value) {\n value = value || this.options.value;\n if (value !== undefined) {\n this.listView.value(value).done(proxy(this._updateSelectionState, this));\n }\n },\n _updateSelectionState: $.noop,\n _listMousedown: function (e) {\n if (!this.filterInput || this.filterInput[0] !== e.target) {\n e.preventDefault();\n }\n },\n _isFilterEnabled: function () {\n var filter = this.options.filter;\n return filter && filter !== 'none';\n },\n _hideClear: function () {\n var list = this;\n if (list._clear) {\n list._clear.addClass(HIDDENCLASS);\n }\n },\n _showClear: function () {\n if (this._clear) {\n this._clear.removeClass(HIDDENCLASS);\n }\n },\n _clearValue: function () {\n this._clearText();\n this._accessor('');\n this.listView.value([]);\n if (this._isSelect) {\n this._customOption = undefined;\n }\n if (this._isFilterEnabled() && !this.options.enforceMinLength) {\n this._filter({\n word: '',\n open: false\n });\n if (this.options.highlightFirst) {\n this.listView.focus(0);\n }\n }\n this._change();\n },\n _clearText: function () {\n this.text('');\n },\n _clearFilter: function () {\n if (!this.options.virtual) {\n this.listView.bound(false);\n }\n this._filterSource();\n },\n _filterSource: function (filter, force) {\n var that = this;\n var options = that.options;\n var isMultiColumnFiltering = options.filterFields && filter && filter.logic && filter.filters && filter.filters.length;\n var dataSource = that.dataSource;\n var expression = extend({}, dataSource.filter() || {});\n var resetPageSettings = filter || expression.filters && expression.filters.length && !filter;\n var removed = removeFiltersForField(expression, options.dataTextField);\n this._clearFilterExpressions(expression);\n if ((filter || removed) && that.trigger('filtering', { filter: filter })) {\n return;\n }\n var newExpression = {\n filters: [],\n logic: 'and'\n };\n if (isMultiColumnFiltering) {\n newExpression.filters.push(filter);\n } else {\n this._pushFilterExpression(newExpression, filter);\n }\n if (isValidFilterExpr(expression)) {\n if (newExpression.logic === expression.logic) {\n newExpression.filters = newExpression.filters.concat(expression.filters);\n } else {\n newExpression.filters.push(expression);\n }\n }\n if (that._cascading) {\n this.listView.setDSFilter(newExpression);\n }\n var dataSourceState = extend({}, {\n page: resetPageSettings ? 1 : dataSource.page(),\n pageSize: resetPageSettings ? dataSource.options.pageSize : dataSource.pageSize(),\n sort: dataSource.sort(),\n filter: dataSource.filter(),\n group: dataSource.group(),\n aggregate: dataSource.aggregate()\n }, { filter: newExpression });\n return dataSource[force ? 'read' : 'query'](dataSource._mergeState(dataSourceState));\n },\n _pushFilterExpression: function (newExpression, filter) {\n if (isValidFilterExpr(filter) && filter.value !== '') {\n newExpression.filters.push(filter);\n }\n },\n _clearFilterExpressions: function (expression) {\n if (!expression.filters) {\n return;\n }\n var filtersToRemove;\n for (var i = 0; i < expression.filters.length; i++) {\n if ('fromFilter' in expression.filters[i]) {\n filtersToRemove = i;\n }\n }\n if (!isNaN(filtersToRemove)) {\n expression.filters.splice(filtersToRemove, 1);\n }\n },\n _angularElement: function (element, action) {\n if (!element) {\n return;\n }\n this.angular(action, function () {\n return { elements: element };\n });\n },\n _renderNoData: function () {\n var list = this;\n var noData = list.noData;\n if (!noData) {\n return;\n }\n this._angularElement(noData, 'cleanup');\n noData.children(':first').html(list.noDataTemplate({ instance: list }));\n this._angularElement(noData, 'compile');\n },\n _toggleNoData: function (show) {\n $(this.noData).toggle(show);\n },\n _toggleHeader: function (show) {\n var groupHeader = this.listView.content.prev(GROUPHEADER);\n groupHeader.toggle(show);\n },\n _renderFooter: function () {\n var list = this;\n var footer = list.footer;\n if (!footer) {\n return;\n }\n this._angularElement(footer, 'cleanup');\n footer.html(list.footerTemplate({ instance: list }));\n this._angularElement(footer, 'compile');\n },\n _allowOpening: function () {\n return this.options.noDataTemplate || this.dataSource.flatView().length;\n },\n _initValue: function () {\n var that = this, value = that.options.value;\n if (value !== null) {\n that.element.val(value);\n } else {\n value = that._accessor();\n that.options.value = value;\n }\n that._old = value;\n },\n _ignoreCase: function () {\n var that = this, model = that.dataSource.reader.model, field;\n if (model && model.fields) {\n field = model.fields[that.options.dataTextField];\n if (field && field.type && field.type !== 'string') {\n that.options.ignoreCase = false;\n }\n }\n },\n _focus: function (candidate) {\n return this.listView.focus(candidate);\n },\n _filter: function (options) {\n var that = this;\n var widgetOptions = that.options;\n var word = options.word;\n var filterFields = widgetOptions.filterFields;\n var field = widgetOptions.dataTextField;\n var expression;\n if (filterFields && filterFields.length) {\n expression = {\n logic: 'or',\n filters: [],\n fromFilter: true\n };\n for (var i = 0; i < filterFields.length; i++) {\n this._pushFilterExpression(expression, that._buildExpression(word, filterFields[i]));\n }\n } else {\n expression = that._buildExpression(word, field);\n }\n that._open = options.open;\n that._filterSource(expression);\n },\n _buildExpression: function (value, field) {\n var that = this;\n var widgetOptions = that.options;\n var ignoreCase = widgetOptions.ignoreCase;\n var accentFoldingFiltering = that.dataSource.options.accentFoldingFiltering;\n return {\n value: ignoreCase ? accentFoldingFiltering ? value.toLocaleLowerCase(accentFoldingFiltering) : value.toLowerCase() : value,\n field: field,\n operator: widgetOptions.filter,\n ignoreCase: ignoreCase\n };\n },\n _clearButton: function () {\n var list = this;\n var clearTitle = list.options.messages.clear;\n if (!list._clear) {\n list._clear = $('').attr({\n 'role': 'button',\n 'tabIndex': -1\n });\n }\n if (!list.options.clearButton) {\n list._clear.remove();\n }\n this._hideClear();\n },\n search: function (word) {\n var options = this.options;\n word = typeof word === 'string' ? word : this._inputValue();\n clearTimeout(this._typingTimeout);\n if (!options.enforceMinLength && !word.length || word.length >= options.minLength) {\n this._state = 'filter';\n if (this.listView) {\n this.listView._emptySearch = !kendo.trim(word).length;\n }\n if (!this._isFilterEnabled()) {\n this._searchByWord(word);\n } else {\n this._filter({\n word: word,\n open: true\n });\n }\n }\n },\n current: function (candidate) {\n return this._focus(candidate);\n },\n items: function () {\n return this.ul[0].children;\n },\n destroy: function () {\n var that = this;\n var ns = that.ns;\n Widget.fn.destroy.call(that);\n that._unbindDataSource();\n that.listView.destroy();\n that.list.off(ns);\n that.popup.destroy();\n if (that._form) {\n that._form.off('reset', that._resetHandler);\n }\n },\n dataItem: function (index) {\n var that = this;\n if (index === undefined) {\n return that.listView.selectedDataItems()[0];\n }\n if (typeof index !== 'number') {\n if (that.options.virtual) {\n return that.dataSource.getByUid($(index).data('uid'));\n }\n index = $(that.items()).index(index);\n }\n return that.dataSource.flatView()[index];\n },\n _activateItem: function () {\n var current = this.listView.focus();\n if (current) {\n this._focused.add(this.filterInput).attr('aria-activedescendant', current.attr('id'));\n }\n },\n _deactivateItem: function () {\n this._focused.add(this.filterInput).removeAttr('aria-activedescendant');\n },\n _accessors: function () {\n var that = this;\n var element = that.element;\n var options = that.options;\n var getter = kendo.getter;\n var textField = element.attr(kendo.attr('text-field'));\n var valueField = element.attr(kendo.attr('value-field'));\n if (!options.dataTextField && textField) {\n options.dataTextField = textField;\n }\n if (!options.dataValueField && valueField) {\n options.dataValueField = valueField;\n }\n that._text = getter(options.dataTextField);\n that._value = getter(options.dataValueField);\n },\n _aria: function (id) {\n var that = this, options = that.options, element = that._focused.add(that.filterInput);\n if (options.suggest !== undefined) {\n element.attr('aria-autocomplete', options.suggest ? 'both' : 'list');\n }\n id = id ? id + ' ' + that.ul[0].id : that.ul[0].id;\n element.attr('aria-owns', id);\n that.ul.attr('aria-live', !that._isFilterEnabled() ? 'off' : 'polite');\n that._ariaLabel();\n },\n _ariaLabel: function () {\n var that = this;\n var focusedElm = that._focused;\n var inputElm = that.element;\n var inputId = inputElm.attr('id');\n var labelElm = $('label[for=\"' + inputId + '\"]');\n var ariaLabel = inputElm.attr('aria-label');\n var ariaLabelledBy = inputElm.attr('aria-labelledby');\n if (focusedElm === inputElm) {\n return;\n }\n if (ariaLabel) {\n focusedElm.attr('aria-label', ariaLabel);\n } else if (ariaLabelledBy) {\n focusedElm.attr('aria-labelledby', ariaLabelledBy);\n } else if (labelElm.length) {\n var labelId = labelElm.attr('id') || that._generateLabelId(labelElm, inputId || kendo.guid());\n focusedElm.attr('aria-labelledby', labelId);\n }\n },\n _generateLabelId: function (label, inputId) {\n var labelId = inputId + LABELIDPART;\n label.attr('id', labelId);\n return labelId;\n },\n _blur: function () {\n var that = this;\n that._change();\n that.close();\n that._userTriggered = false;\n },\n _change: function () {\n var that = this;\n var index = that.selectedIndex;\n var optionValue = that.options.value;\n var value = that.value();\n var trigger;\n if (that._isSelect && !that.listView.bound() && optionValue) {\n value = optionValue;\n }\n if (value !== unifyType(that._old, typeof value) && value !== unifyType(that._oldText, typeof value)) {\n trigger = true;\n } else if (that._valueBeforeCascade !== undefined && that._valueBeforeCascade !== unifyType(that._old, typeof that._valueBeforeCascade) && that._userTriggered) {\n trigger = true;\n } else if (index !== undefined && index !== that._oldIndex && !that.listView.isFiltered()) {\n trigger = true;\n }\n if (trigger) {\n if (that._old === null || that._old === '' || value === '') {\n that._valueBeforeCascade = that._old = value;\n } else {\n if (that.dataItem()) {\n that._valueBeforeCascade = that._old = that.options.dataValueField ? that.dataItem()[that.options.dataValueField] : that.dataItem();\n } else {\n that._valueBeforeCascade = that._old = null;\n }\n }\n that._oldIndex = index;\n that._oldText = that.text && that.text();\n if (!that._typing) {\n that.element.trigger(CHANGE);\n }\n that.trigger(CHANGE);\n }\n that.typing = false;\n },\n _data: function () {\n return this.dataSource.view();\n },\n _enable: function () {\n var that = this, options = that.options, disabled = that.element.is('[disabled]');\n if (options.enable !== undefined) {\n options.enabled = options.enable;\n }\n if (!options.enabled || disabled) {\n that.enable(false);\n } else {\n that.readonly(that.element.is('[readonly]'));\n }\n },\n _dataValue: function (dataItem) {\n var value = this._value(dataItem);\n if (value === undefined) {\n value = this._text(dataItem);\n }\n return value;\n },\n _offsetHeight: function () {\n var offsetHeight = 0;\n var siblings = this.listView.content.prevAll(':visible');\n siblings.each(function () {\n var element = $(this);\n offsetHeight += outerHeight(element, true);\n });\n return offsetHeight;\n },\n _height: function (length) {\n var that = this;\n var list = that.list;\n var height = that.options.height;\n var visible = that.popup.visible();\n var offsetTop;\n var popups;\n var footerHeight;\n if (length || that.options.noDataTemplate) {\n popups = list.add(list.parent('.k-animation-container')).show();\n if (!list.is(':visible')) {\n popups.hide();\n return;\n }\n height = that.listView.content[0].scrollHeight > height ? height : 'auto';\n popups.height(height);\n if (height !== 'auto') {\n offsetTop = that._offsetHeight();\n footerHeight = outerHeight($(that.footer)) || 0;\n height = height - offsetTop - footerHeight;\n }\n that.listView.content.height(height);\n if (!visible) {\n popups.hide();\n }\n }\n return height;\n },\n _openHandler: function (e) {\n this._adjustListWidth();\n if (this.trigger(OPEN)) {\n e.preventDefault();\n } else {\n this._focused.attr('aria-expanded', true);\n this.ul.attr('aria-hidden', false);\n }\n },\n _adjustListWidth: function () {\n var that = this, list = that.list, width = list[0].style.width, wrapper = that.wrapper, computedStyle, computedWidth;\n if (!list.data(WIDTH) && width) {\n return;\n }\n computedStyle = window.getComputedStyle ? window.getComputedStyle(wrapper[0], null) : 0;\n computedWidth = parseFloat(computedStyle && computedStyle.width) || outerWidth(wrapper);\n if (computedStyle && browser.msie) {\n computedWidth += parseFloat(computedStyle.paddingLeft) + parseFloat(computedStyle.paddingRight) + parseFloat(computedStyle.borderLeftWidth) + parseFloat(computedStyle.borderRightWidth);\n }\n if (list.css('box-sizing') !== 'border-box') {\n width = computedWidth - (outerWidth(list) - list.width());\n } else {\n width = computedWidth;\n }\n list.css({\n fontFamily: wrapper.css('font-family'),\n width: that.options.autoWidth ? 'auto' : width,\n minWidth: width,\n whiteSpace: that.options.autoWidth ? 'nowrap' : 'normal'\n }).data(WIDTH, width);\n return true;\n },\n _closeHandler: function (e) {\n if (this.trigger(CLOSE)) {\n e.preventDefault();\n } else {\n this._focused.attr('aria-expanded', false);\n this.ul.attr('aria-hidden', true);\n }\n },\n _focusItem: function () {\n var listView = this.listView;\n var noFocusedItem = !listView.focus();\n var index = last(listView.select());\n if (index === undefined && this.options.highlightFirst && noFocusedItem) {\n index = 0;\n }\n if (index !== undefined) {\n listView.focus(index);\n } else if (noFocusedItem) {\n listView.scrollToIndex(0);\n }\n },\n _calculateGroupPadding: function (height) {\n var li = this.ul.children('.k-first:first');\n var groupHeader = this.listView.content.prev(GROUPHEADER);\n var padding = 0;\n var direction = 'right';\n if (groupHeader[0] && groupHeader[0].style.display !== 'none') {\n if (height !== 'auto') {\n padding = kendo.support.scrollbar();\n }\n if (this.element.parents('.k-rtl').length) {\n direction = 'left';\n }\n padding += parseFloat(li.css('border-' + direction + '-width'), 10) + parseFloat(li.children('.k-group').css('padding-' + direction), 10);\n groupHeader.css('padding-' + direction, padding);\n }\n },\n _calculatePopupHeight: function (force) {\n var height = this._height(this.dataSource.flatView().length || force);\n this._calculateGroupPadding(height);\n this._calculateColumnsHeaderPadding(height);\n },\n _calculateColumnsHeaderPadding: function (height) {\n if (this.options.columns && this.options.columns.length) {\n var list = this;\n var isRtl = support.isRtl(list.wrapper);\n var scrollbar = kendo.support.scrollbar();\n list.columnsHeader.css(isRtl ? 'padding-left' : 'padding-right', height !== 'auto' ? scrollbar : 0);\n }\n },\n _refreshScroll: function () {\n var listView = this.listView;\n var enableYScroll = listView.element.height() > listView.content.height();\n if (this.options.autoWidth) {\n listView.content.css({\n overflowX: 'hidden',\n overflowY: enableYScroll ? 'scroll' : 'auto'\n });\n }\n },\n _resizePopup: function (force) {\n if (this.options.virtual) {\n return;\n }\n if (!this.popup.element.is(':visible')) {\n this.popup.one('open', function (force) {\n return proxy(function () {\n this._calculatePopupHeight(force);\n }, this);\n }.call(this, force));\n this.popup.one('activate', proxy(this._refreshScroll, this));\n } else {\n this._calculatePopupHeight(force);\n }\n },\n _popup: function () {\n var list = this;\n list.popup = new ui.Popup(list.list, extend({}, list.options.popup, {\n anchor: list.wrapper,\n open: proxy(list._openHandler, list),\n close: proxy(list._closeHandler, list),\n animation: list.options.animation,\n isRtl: support.isRtl(list.wrapper),\n autosize: list.options.autoWidth\n }));\n },\n _makeUnselectable: function () {\n if (isIE8) {\n this.list.find('*').not('.k-textbox').attr('unselectable', 'on');\n }\n },\n _toggleHover: function (e) {\n $(e.currentTarget).toggleClass(HOVER, e.type === 'mouseenter');\n },\n _toggle: function (open, preventFocus) {\n var that = this;\n var touchEnabled = support.mobileOS && (support.touch || support.MSPointers || support.pointers);\n open = open !== undefined ? open : !that.popup.visible();\n if (!preventFocus && !touchEnabled && that._focused[0] !== activeElement()) {\n that._prevent = true;\n that._focused.focus();\n that._prevent = false;\n }\n that[open ? OPEN : CLOSE]();\n },\n _triggerCascade: function () {\n var that = this;\n if (!that._cascadeTriggered || that.value() !== unifyType(that._cascadedValue, typeof that.value())) {\n that._cascadedValue = that.value();\n that._cascadeTriggered = true;\n that.trigger(CASCADE, { userTriggered: that._userTriggered });\n }\n },\n _triggerChange: function () {\n if (this._valueBeforeCascade !== this.value()) {\n this.trigger(CHANGE);\n }\n },\n _unbindDataSource: function () {\n var that = this;\n that.dataSource.unbind(REQUESTSTART, that._requestStartHandler).unbind(REQUESTEND, that._requestEndHandler).unbind('error', that._errorHandler);\n },\n requireValueMapper: function (options, value) {\n var hasValue = (options.value instanceof Array ? options.value.length : options.value) || (value instanceof Array ? value.length : value);\n if (hasValue && options.virtual && typeof options.virtual.valueMapper !== 'function') {\n throw new Error('ValueMapper is not provided while the value is being set. See http://docs.telerik.com/kendo-ui/controls/editors/combobox/virtualization#the-valuemapper-function');\n }\n }\n });\n function unifyType(value, type) {\n if (value !== undefined && value !== '' && value !== null) {\n if (type === 'boolean') {\n if (typeof value !== 'boolean') {\n value = value.toLowerCase() === 'true';\n }\n value = Boolean(value);\n } else if (type === 'number') {\n value = Number(value);\n } else if (type === 'string') {\n value = value.toString();\n }\n }\n return value;\n }\n extend(List, {\n inArray: function (node, parentNode) {\n var idx, length, siblings = parentNode.children;\n if (!node || node.parentNode !== parentNode) {\n return -1;\n }\n for (idx = 0, length = siblings.length; idx < length; idx++) {\n if (node === siblings[idx]) {\n return idx;\n }\n }\n return -1;\n },\n unifyType: unifyType\n });\n kendo.ui.List = List;\n ui.Select = List.extend({\n init: function (element, options) {\n List.fn.init.call(this, element, options);\n this._initial = this.element.val();\n },\n setDataSource: function (dataSource) {\n var that = this;\n var parent;\n that.options.dataSource = dataSource;\n that._dataSource();\n if (that.listView.bound()) {\n that._initialIndex = null;\n that.listView._current = null;\n }\n that.listView.setDataSource(that.dataSource);\n if (that.options.autoBind) {\n that.dataSource.fetch();\n }\n parent = that._parentWidget();\n if (parent) {\n that._cascadeSelect(parent);\n }\n },\n close: function () {\n this.popup.close();\n },\n select: function (candidate) {\n var that = this;\n if (candidate === undefined) {\n return that.selectedIndex;\n } else {\n return that._select(candidate).done(function () {\n that._cascadeValue = that._old = that._accessor();\n that._oldIndex = that.selectedIndex;\n });\n }\n },\n _accessor: function (value, idx) {\n return this[this._isSelect ? '_accessorSelect' : '_accessorInput'](value, idx);\n },\n _accessorInput: function (value) {\n var element = this.element[0];\n if (value === undefined) {\n return element.value;\n } else {\n if (value === null) {\n value = '';\n }\n element.value = value;\n }\n },\n _accessorSelect: function (value, idx) {\n var element = this.element[0];\n var hasValue;\n if (value === undefined) {\n return getSelectedOption(element).value || '';\n }\n getSelectedOption(element).selected = false;\n if (idx === undefined) {\n idx = -1;\n }\n hasValue = value !== null && value !== '';\n if (hasValue && idx == -1) {\n this._custom(value);\n } else {\n if (value) {\n element.value = value;\n } else {\n element.selectedIndex = idx;\n }\n }\n },\n _syncValueAndText: function () {\n return true;\n },\n _custom: function (value) {\n var that = this;\n var element = that.element;\n var custom = that._customOption;\n if (!custom) {\n custom = $('
          ').parent();\n this.header = this.content.before('
          ').prev();\n this.bound(false);\n this._optionID = kendo.guid();\n this._selectedIndices = [];\n this._view = [];\n this._dataItems = [];\n this._values = [];\n var value = this.options.value;\n if (value) {\n this._values = $.isArray(value) ? value.slice(0) : [value];\n }\n this._getter();\n this._templates();\n this.setDataSource(this.options.dataSource);\n this._onScroll = proxy(function () {\n var that = this;\n clearTimeout(that._scrollId);\n that._scrollId = setTimeout(function () {\n that._renderHeader();\n }, 50);\n }, this);\n },\n options: {\n name: 'StaticList',\n dataValueField: null,\n valuePrimitive: false,\n selectable: true,\n template: null,\n groupTemplate: null,\n fixedGroupTemplate: null\n },\n events: [\n 'click',\n CHANGE,\n 'activate',\n 'deactivate',\n 'dataBinding',\n 'dataBound',\n 'selectedItemChange'\n ],\n setDataSource: function (source) {\n var that = this;\n var dataSource = source || {};\n var value;\n dataSource = $.isArray(dataSource) ? { data: dataSource } : dataSource;\n dataSource = kendo.data.DataSource.create(dataSource);\n if (that.dataSource) {\n that.dataSource.unbind(CHANGE, that._refreshHandler);\n value = that.value();\n that.value([]);\n that.bound(false);\n that.value(value);\n } else {\n that._refreshHandler = proxy(that.refresh, that);\n }\n that.setDSFilter(dataSource.filter());\n that.dataSource = dataSource.bind(CHANGE, that._refreshHandler);\n that._fixedHeader();\n },\n _touchHandlers: function () {\n var that = this;\n var startY;\n var endY;\n var tapPosition = function (event) {\n return (event.originalEvent || event).changedTouches[0].pageY;\n };\n that.element.on('touchstart' + STATIC_LIST_NS, function (e) {\n startY = tapPosition(e);\n });\n that.element.on('touchend' + STATIC_LIST_NS, function (e) {\n if (e.isDefaultPrevented()) {\n return;\n }\n endY = tapPosition(e);\n if (Math.abs(endY - startY) < 10) {\n that._touchTriggered = true;\n that._triggerClick($(e.target).closest(ITEMSELECTOR).get(0));\n }\n });\n },\n skip: function () {\n return this.dataSource.skip();\n },\n setOptions: function (options) {\n Widget.fn.setOptions.call(this, options);\n this._getter();\n this._templates();\n this._render();\n },\n destroy: function () {\n this.element.off(STATIC_LIST_NS);\n if (this._refreshHandler) {\n this.dataSource.unbind(CHANGE, this._refreshHandler);\n }\n clearTimeout(this._scrollId);\n Widget.fn.destroy.call(this);\n },\n dataItemByIndex: function (index) {\n return this.dataSource.flatView()[index];\n },\n screenHeight: function () {\n return this.content[0].clientHeight;\n },\n scrollToIndex: function (index) {\n var item = this.element[0].children[index];\n if (item) {\n this.scroll(item);\n }\n },\n scrollWith: function (value) {\n this.content.scrollTop(this.content.scrollTop() + value);\n },\n scroll: function (item) {\n if (!item) {\n return;\n }\n if (item[0]) {\n item = item[0];\n }\n var content = this.content[0], itemOffsetTop = item.offsetTop, itemOffsetHeight = item.offsetHeight, contentScrollTop = content.scrollTop, contentOffsetHeight = content.clientHeight, bottomDistance = itemOffsetTop + itemOffsetHeight;\n if (contentScrollTop > itemOffsetTop) {\n contentScrollTop = itemOffsetTop;\n } else if (bottomDistance > contentScrollTop + contentOffsetHeight) {\n contentScrollTop = bottomDistance - contentOffsetHeight;\n }\n content.scrollTop = contentScrollTop;\n },\n selectedDataItems: function (dataItems) {\n if (dataItems === undefined) {\n return this._dataItems.slice();\n }\n this._dataItems = dataItems;\n this._values = this._getValues(dataItems);\n },\n _getValues: function (dataItems) {\n var getter = this._valueGetter;\n return $.map(dataItems, function (dataItem) {\n return getter(dataItem);\n });\n },\n focusNext: function () {\n var current = this.focus();\n if (!current) {\n current = 0;\n } else {\n current = current.next();\n }\n this.focus(current);\n },\n focusPrev: function () {\n var current = this.focus();\n if (!current) {\n current = this.element[0].children.length - 1;\n } else {\n current = current.prev();\n }\n this.focus(current);\n },\n focusFirst: function () {\n this.focus(this.element[0].children[0]);\n },\n focusLast: function () {\n this.focus(last(this.element[0].children));\n },\n focus: function (candidate) {\n var that = this;\n var id = that._optionID;\n var hasCandidate;\n if (candidate === undefined) {\n return that._current;\n }\n candidate = last(that._get(candidate));\n candidate = $(this.element[0].children[candidate]);\n if (that._current) {\n that._current.removeClass(FOCUSED).removeAttr(ID);\n that.trigger('deactivate');\n }\n hasCandidate = !!candidate[0];\n if (hasCandidate) {\n candidate.addClass(FOCUSED);\n that.scroll(candidate);\n candidate.attr('id', id);\n }\n that._current = hasCandidate ? candidate : null;\n that.trigger('activate');\n },\n focusIndex: function () {\n return this.focus() ? this.focus().index() : undefined;\n },\n skipUpdate: function (skipUpdate) {\n this._skipUpdate = skipUpdate;\n },\n select: function (indices) {\n var that = this;\n var selectable = that.options.selectable;\n var singleSelection = selectable !== 'multiple' && selectable !== false;\n var selectedIndices = that._selectedIndices;\n var uiSelectedIndices = [this.element.find('.k-state-selected').index()];\n var added = [];\n var removed = [];\n var result;\n if (indices === undefined) {\n return selectedIndices.slice();\n }\n indices = that._get(indices);\n if (indices.length === 1 && indices[0] === -1) {\n indices = [];\n }\n var deferred = $.Deferred().resolve();\n var filtered = that.isFiltered();\n if (filtered && !singleSelection && that._deselectFiltered(indices)) {\n return deferred;\n }\n if (singleSelection && !filtered && $.inArray(last(indices), selectedIndices) !== -1 && $.inArray(last(indices), uiSelectedIndices) !== -1) {\n if (that._dataItems.length && that._view.length) {\n that._dataItems = [that._view[selectedIndices[0]].item];\n }\n return deferred;\n }\n result = that._deselect(indices);\n removed = result.removed;\n indices = result.indices;\n if (indices.length) {\n if (singleSelection) {\n indices = [last(indices)];\n }\n added = that._select(indices);\n }\n if (added.length || removed.length) {\n that._valueComparer = null;\n that.trigger(CHANGE, {\n added: added,\n removed: removed\n });\n }\n return deferred;\n },\n removeAt: function (position) {\n this._selectedIndices.splice(position, 1);\n this._values.splice(position, 1);\n this._valueComparer = null;\n return {\n position: position,\n dataItem: this._dataItems.splice(position, 1)[0]\n };\n },\n setValue: function (value) {\n value = $.isArray(value) || value instanceof ObservableArray ? value.slice(0) : [value];\n this._values = value;\n this._valueComparer = null;\n },\n value: function (value) {\n var that = this;\n var deferred = that._valueDeferred;\n var indices;\n if (value === undefined) {\n return that._values.slice();\n }\n that.setValue(value);\n if (!deferred || deferred.state() === 'resolved') {\n that._valueDeferred = deferred = $.Deferred();\n }\n if (that.bound()) {\n indices = that._valueIndices(that._values);\n if (that.options.selectable === 'multiple') {\n that.select(-1);\n }\n that.select(indices);\n deferred.resolve();\n }\n that._skipUpdate = false;\n return deferred;\n },\n items: function () {\n return this.element.children(ITEMSELECTOR);\n },\n _click: function (e) {\n if (this._touchTriggered) {\n this._touchTriggered = false;\n return;\n }\n if (!e.isDefaultPrevented()) {\n this._triggerClick(e.currentTarget);\n }\n },\n _triggerClick: function (item) {\n if (!this.trigger('click', { item: $(item) })) {\n this.select(item);\n }\n },\n _valueExpr: function (type, values) {\n var that = this;\n var idx = 0;\n var body;\n var comparer;\n var normalized = [];\n if (!that._valueComparer || that._valueType !== type) {\n that._valueType = type;\n for (; idx < values.length; idx++) {\n normalized.push(unifyType(values[idx], type));\n }\n body = 'for (var idx = 0; idx < ' + normalized.length + '; idx++) {' + ' if (current === values[idx]) {' + ' return idx;' + ' }' + '} ' + 'return -1;';\n comparer = new Function('current', 'values', body);\n that._valueComparer = function (current) {\n return comparer(current, normalized);\n };\n }\n return that._valueComparer;\n },\n _dataItemPosition: function (dataItem, values) {\n var value = this._valueGetter(dataItem);\n var valueExpr = this._valueExpr(typeof value, values);\n return valueExpr(value);\n },\n _getter: function () {\n this._valueGetter = kendo.getter(this.options.dataValueField);\n },\n _deselect: function (indices) {\n var that = this;\n var children = that.element[0].children;\n var selectable = that.options.selectable;\n var selectedIndices = that._selectedIndices;\n var dataItems = that._dataItems;\n var values = that._values;\n var removed = [];\n var i = 0;\n var j;\n var index, selectedIndex;\n var removedIndices = 0;\n indices = indices.slice();\n if (selectable === true || !indices.length) {\n for (; i < selectedIndices.length; i++) {\n $(children[selectedIndices[i]]).removeClass('k-state-selected').attr('aria-selected', false);\n removed.push({\n position: i,\n dataItem: dataItems[i]\n });\n }\n that._values = [];\n that._dataItems = [];\n that._selectedIndices = [];\n } else if (selectable === 'multiple') {\n for (; i < indices.length; i++) {\n index = indices[i];\n if (!$(children[index]).hasClass('k-state-selected')) {\n continue;\n }\n for (j = 0; j < selectedIndices.length; j++) {\n selectedIndex = selectedIndices[j];\n if (selectedIndex === index) {\n $(children[selectedIndex]).removeClass('k-state-selected').attr('aria-selected', false);\n var dataItem = this._view[index].item;\n var position = this._dataItemPosition(dataItem, this._values);\n removed.push({\n position: position,\n dataItem: dataItem\n });\n dataItems.splice(j, 1);\n selectedIndices.splice(j, 1);\n indices.splice(i, 1);\n values.splice(j, 1);\n removedIndices += 1;\n i -= 1;\n j -= 1;\n break;\n }\n }\n }\n }\n return {\n indices: indices,\n removed: removed\n };\n },\n _deselectFiltered: function (indices) {\n var children = this.element[0].children;\n var dataItem, index, position;\n var removed = [];\n var idx = 0;\n for (; idx < indices.length; idx++) {\n index = indices[idx];\n dataItem = this._view[index].item;\n position = this._dataItemPosition(dataItem, this._values);\n if (position > -1) {\n removed.push(this.removeAt(position));\n $(children[index]).removeClass('k-state-selected');\n }\n }\n if (removed.length) {\n this.trigger(CHANGE, {\n added: [],\n removed: removed\n });\n return true;\n }\n return false;\n },\n _select: function (indices) {\n var that = this;\n var children = that.element[0].children;\n var data = that._view;\n var dataItem, index;\n var added = [];\n var idx = 0;\n if (last(indices) !== -1) {\n that.focus(indices);\n }\n for (; idx < indices.length; idx++) {\n index = indices[idx];\n dataItem = data[index];\n if (index === -1 || !dataItem) {\n continue;\n }\n dataItem = dataItem.item;\n that._selectedIndices.push(index);\n that._dataItems.push(dataItem);\n that._values.push(that._valueGetter(dataItem));\n $(children[index]).addClass('k-state-selected').attr('aria-selected', true);\n added.push({ dataItem: dataItem });\n }\n return added;\n },\n getElementIndex: function (element) {\n return $(element).data('offset-index');\n },\n _get: function (candidate) {\n if (typeof candidate === 'number') {\n candidate = [candidate];\n } else if (!isArray(candidate)) {\n candidate = this.getElementIndex(candidate);\n candidate = [candidate !== undefined ? candidate : -1];\n }\n return candidate;\n },\n _template: function () {\n var that = this;\n var options = that.options;\n var template = options.template;\n if (!template) {\n template = kendo.template('
        • ${' + kendo.expr(options.dataTextField, 'data') + '}
        • ', { useWithBlock: false });\n } else {\n template = kendo.template(template);\n template = function (data) {\n return '
        • ' + template(data) + '
        • ';\n };\n }\n return template;\n },\n _templates: function () {\n var template;\n var options = this.options;\n var templates = {\n template: options.template,\n groupTemplate: options.groupTemplate,\n fixedGroupTemplate: options.fixedGroupTemplate\n };\n if (options.columns) {\n for (var i = 0; i < options.columns.length; i++) {\n var currentColumn = options.columns[i];\n var templateText = currentColumn.field ? currentColumn.field.toString() : 'text';\n templates['column' + i] = currentColumn.template || '#: ' + templateText + '#';\n }\n }\n for (var key in templates) {\n template = templates[key];\n if (template && typeof template !== 'function') {\n templates[key] = kendo.template(template);\n }\n }\n this.templates = templates;\n },\n _normalizeIndices: function (indices) {\n var newIndices = [];\n var idx = 0;\n for (; idx < indices.length; idx++) {\n if (indices[idx] !== undefined) {\n newIndices.push(indices[idx]);\n }\n }\n return newIndices;\n },\n _valueIndices: function (values, indices) {\n var data = this._view;\n var idx = 0;\n var index;\n indices = indices ? indices.slice() : [];\n if (!values.length) {\n return [];\n }\n for (; idx < data.length; idx++) {\n index = this._dataItemPosition(data[idx].item, values);\n if (index !== -1) {\n indices[index] = idx;\n }\n }\n return this._normalizeIndices(indices);\n },\n _firstVisibleItem: function () {\n var element = this.element[0];\n var content = this.content[0];\n var scrollTop = content.scrollTop;\n var itemHeight = $(element.children[0]).height();\n var itemIndex = Math.floor(scrollTop / itemHeight) || 0;\n var item = element.children[itemIndex] || element.lastChild;\n var forward = item.offsetTop < scrollTop;\n while (item) {\n if (forward) {\n if (item.offsetTop + itemHeight > scrollTop || !item.nextSibling) {\n break;\n }\n item = item.nextSibling;\n } else {\n if (item.offsetTop <= scrollTop || !item.previousSibling) {\n break;\n }\n item = item.previousSibling;\n }\n }\n return this._view[$(item).data('offset-index')];\n },\n _fixedHeader: function () {\n if (this.isGrouped() && this.templates.fixedGroupTemplate) {\n this.header.show();\n this.content.scroll(this._onScroll);\n } else {\n this.header.hide();\n this.content.off('scroll', this._onScroll);\n }\n },\n _renderHeader: function () {\n var template = this.templates.fixedGroupTemplate;\n if (!template) {\n return;\n }\n var visibleItem = this._firstVisibleItem();\n if (visibleItem && visibleItem.group.toString().length) {\n this.header.html(template(visibleItem.group));\n }\n },\n _renderItem: function (context) {\n var item = '
        • ';\n if (hasColumns) {\n item += this._renderColumns(dataItem);\n } else {\n item += this.templates.template(dataItem);\n }\n if (notFirstItem && context.newGroup) {\n if (hasColumns) {\n item += '
          ' + this.templates.groupTemplate(context.group) + '
          ';\n } else {\n item += '
          ' + this.templates.groupTemplate(context.group) + '
          ';\n }\n } else if (isGrouped && hasColumns) {\n item += '
          ';\n }\n return item + '
        • ';\n },\n _renderColumns: function (dataItem) {\n var item = '';\n for (var i = 0; i < this.options.columns.length; i++) {\n var currentWidth = this.options.columns[i].width;\n var currentWidthInt = parseInt(currentWidth, 10);\n var widthStyle = '';\n if (currentWidth && !isNaN(currentWidthInt)) {\n widthStyle += 'style=\\'width:';\n widthStyle += currentWidthInt;\n widthStyle += percentageUnitsRegex.test(currentWidth) ? '%' : 'px';\n widthStyle += ';\\'';\n }\n item += '';\n item += this.templates['column' + i](dataItem);\n item += '';\n }\n return item;\n },\n _render: function () {\n var html = '';\n var i = 0;\n var idx = 0;\n var context;\n var dataContext = [];\n var view = this.dataSource.view();\n var values = this.value();\n var group, newGroup, j;\n var isGrouped = this.isGrouped();\n if (isGrouped) {\n for (i = 0; i < view.length; i++) {\n group = view[i];\n newGroup = true;\n for (j = 0; j < group.items.length; j++) {\n context = {\n selected: this._selected(group.items[j], values),\n item: group.items[j],\n group: group.value,\n newGroup: newGroup,\n isLastGroupedItem: j === group.items.length - 1,\n index: idx\n };\n dataContext[idx] = context;\n idx += 1;\n html += this._renderItem(context);\n newGroup = false;\n }\n }\n } else {\n for (i = 0; i < view.length; i++) {\n context = {\n selected: this._selected(view[i], values),\n item: view[i],\n index: i\n };\n dataContext[i] = context;\n html += this._renderItem(context);\n }\n }\n this._view = dataContext;\n this.element[0].innerHTML = html;\n if (isGrouped && dataContext.length) {\n this._renderHeader();\n }\n },\n _selected: function (dataItem, values) {\n var select = !this.isFiltered() || this.options.selectable === 'multiple';\n return select && this._dataItemPosition(dataItem, values) !== -1;\n },\n setDSFilter: function (filter) {\n this._lastDSFilter = extend({}, filter);\n },\n isFiltered: function () {\n if (!this._lastDSFilter) {\n this.setDSFilter(this.dataSource.filter());\n }\n return !kendo.data.Query.compareFilters(this.dataSource.filter(), this._lastDSFilter);\n },\n refresh: function (e) {\n var that = this;\n var action = e && e.action;\n var skipUpdateOnBind = that.options.skipUpdateOnBind;\n var isItemChange = action === 'itemchange';\n var result;\n that.trigger('dataBinding');\n that._angularItems('cleanup');\n that._fixedHeader();\n that._render();\n that.bound(true);\n if (isItemChange || action === 'remove') {\n result = mapChangedItems(that._dataItems, e.items);\n if (result.changed.length) {\n if (isItemChange) {\n that.trigger('selectedItemChange', { items: result.changed });\n } else {\n that.value(that._getValues(result.unchanged));\n }\n }\n } else if (that.isFiltered() || that._skipUpdate || that._emptySearch) {\n that.focus(0);\n if (that._skipUpdate) {\n that._skipUpdate = false;\n that._selectedIndices = that._valueIndices(that._values, that._selectedIndices);\n }\n } else if (!skipUpdateOnBind && (!action || action === 'add')) {\n that.value(that._values);\n }\n if (that._valueDeferred) {\n that._valueDeferred.resolve();\n }\n that._angularItems('compile');\n that.trigger('dataBound');\n },\n bound: function (bound) {\n if (bound === undefined) {\n return this._bound;\n }\n this._bound = bound;\n },\n isGrouped: function () {\n return (this.dataSource.group() || []).length;\n }\n });\n ui.plugin(StaticList);\n function last(list) {\n return list[list.length - 1];\n }\n function getSelectedOption(select) {\n var index = select.selectedIndex;\n return index > -1 ? select.options[index] : {};\n }\n function mapChangedItems(selected, itemsToMatch) {\n var itemsLength = itemsToMatch.length;\n var selectedLength = selected.length;\n var dataItem;\n var found;\n var i, j;\n var changed = [];\n var unchanged = [];\n if (selectedLength) {\n for (i = 0; i < selectedLength; i++) {\n dataItem = selected[i];\n found = false;\n for (j = 0; j < itemsLength; j++) {\n if (dataItem === itemsToMatch[j]) {\n found = true;\n changed.push({\n index: i,\n item: dataItem\n });\n break;\n }\n }\n if (!found) {\n unchanged.push(dataItem);\n }\n }\n }\n return {\n changed: changed,\n unchanged: unchanged\n };\n }\n function isValidFilterExpr(expression) {\n if (!expression || $.isEmptyObject(expression)) {\n return false;\n }\n if (expression.filters && !expression.filters.length) {\n return false;\n }\n return true;\n }\n function removeFiltersForField(expression, field) {\n var filters;\n var found = false;\n if (expression.filters) {\n filters = $.grep(expression.filters, function (filter) {\n found = removeFiltersForField(filter, field);\n if (filter.filters) {\n return filter.filters.length;\n } else {\n return filter.field != field;\n }\n });\n if (!found && expression.filters.length !== filters.length) {\n found = true;\n }\n expression.filters = filters;\n }\n return found;\n }\n }(window.kendo.jQuery));\n return window.kendo;\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('kendo.fx', ['kendo.core'], f);\n}(function () {\n var __meta__ = {\n id: 'fx',\n name: 'Effects',\n category: 'framework',\n description: 'Required for animation effects in all Kendo UI widgets.',\n depends: ['core']\n };\n (function ($, undefined) {\n var kendo = window.kendo, fx = kendo.effects, each = $.each, extend = $.extend, proxy = $.proxy, support = kendo.support, browser = support.browser, transforms = support.transforms, transitions = support.transitions, scaleProperties = {\n scale: 0,\n scalex: 0,\n scaley: 0,\n scale3d: 0\n }, translateProperties = {\n translate: 0,\n translatex: 0,\n translatey: 0,\n translate3d: 0\n }, hasZoom = typeof document.documentElement.style.zoom !== 'undefined' && !transforms, matrix3dRegExp = /matrix3?d?\\s*\\(.*,\\s*([\\d\\.\\-]+)\\w*?,\\s*([\\d\\.\\-]+)\\w*?,\\s*([\\d\\.\\-]+)\\w*?,\\s*([\\d\\.\\-]+)\\w*?/i, cssParamsRegExp = /^(-?[\\d\\.\\-]+)?[\\w\\s]*,?\\s*(-?[\\d\\.\\-]+)?[\\w\\s]*/i, translateXRegExp = /translatex?$/i, oldEffectsRegExp = /(zoom|fade|expand)(\\w+)/, singleEffectRegExp = /(zoom|fade|expand)/, unitRegExp = /[xy]$/i, transformProps = [\n 'perspective',\n 'rotate',\n 'rotatex',\n 'rotatey',\n 'rotatez',\n 'rotate3d',\n 'scale',\n 'scalex',\n 'scaley',\n 'scalez',\n 'scale3d',\n 'skew',\n 'skewx',\n 'skewy',\n 'translate',\n 'translatex',\n 'translatey',\n 'translatez',\n 'translate3d',\n 'matrix',\n 'matrix3d'\n ], transform2d = [\n 'rotate',\n 'scale',\n 'scalex',\n 'scaley',\n 'skew',\n 'skewx',\n 'skewy',\n 'translate',\n 'translatex',\n 'translatey',\n 'matrix'\n ], transform2units = {\n 'rotate': 'deg',\n scale: '',\n skew: 'px',\n translate: 'px'\n }, cssPrefix = transforms.css, round = Math.round, BLANK = '', PX = 'px', NONE = 'none', AUTO = 'auto', WIDTH = 'width', HEIGHT = 'height', HIDDEN = 'hidden', ORIGIN = 'origin', ABORT_ID = 'abortId', OVERFLOW = 'overflow', TRANSLATE = 'translate', POSITION = 'position', COMPLETE_CALLBACK = 'completeCallback', TRANSITION = cssPrefix + 'transition', TRANSFORM = cssPrefix + 'transform', BACKFACE = cssPrefix + 'backface-visibility', PERSPECTIVE = cssPrefix + 'perspective', DEFAULT_PERSPECTIVE = '1500px', TRANSFORM_PERSPECTIVE = 'perspective(' + DEFAULT_PERSPECTIVE + ')', directions = {\n left: {\n reverse: 'right',\n property: 'left',\n transition: 'translatex',\n vertical: false,\n modifier: -1\n },\n right: {\n reverse: 'left',\n property: 'left',\n transition: 'translatex',\n vertical: false,\n modifier: 1\n },\n down: {\n reverse: 'up',\n property: 'top',\n transition: 'translatey',\n vertical: true,\n modifier: 1\n },\n up: {\n reverse: 'down',\n property: 'top',\n transition: 'translatey',\n vertical: true,\n modifier: -1\n },\n top: { reverse: 'bottom' },\n bottom: { reverse: 'top' },\n 'in': {\n reverse: 'out',\n modifier: -1\n },\n out: {\n reverse: 'in',\n modifier: 1\n },\n vertical: { reverse: 'vertical' },\n horizontal: { reverse: 'horizontal' }\n };\n kendo.directions = directions;\n extend($.fn, {\n kendoStop: function (clearQueue, gotoEnd) {\n if (transitions) {\n return fx.stopQueue(this, clearQueue || false, gotoEnd || false);\n } else {\n return this.stop(clearQueue, gotoEnd);\n }\n }\n });\n if (transforms && !transitions) {\n each(transform2d, function (idx, value) {\n $.fn[value] = function (val) {\n if (typeof val == 'undefined') {\n return animationProperty(this, value);\n } else {\n var that = $(this)[0], transformValue = value + '(' + val + transform2units[value.replace(unitRegExp, '')] + ')';\n if (that.style.cssText.indexOf(TRANSFORM) == -1) {\n $(this).css(TRANSFORM, transformValue);\n } else {\n that.style.cssText = that.style.cssText.replace(new RegExp(value + '\\\\(.*?\\\\)', 'i'), transformValue);\n }\n }\n return this;\n };\n $.fx.step[value] = function (fx) {\n $(fx.elem)[value](fx.now);\n };\n });\n var curProxy = $.fx.prototype.cur;\n $.fx.prototype.cur = function () {\n if (transform2d.indexOf(this.prop) != -1) {\n return parseFloat($(this.elem)[this.prop]());\n }\n return curProxy.apply(this, arguments);\n };\n }\n kendo.toggleClass = function (element, classes, options, add) {\n if (classes) {\n classes = classes.split(' ');\n if (transitions) {\n options = extend({\n exclusive: 'all',\n duration: 400,\n ease: 'ease-out'\n }, options);\n element.css(TRANSITION, options.exclusive + ' ' + options.duration + 'ms ' + options.ease);\n setTimeout(function () {\n element.css(TRANSITION, '').css(HEIGHT);\n }, options.duration);\n }\n each(classes, function (idx, value) {\n element.toggleClass(value, add);\n });\n }\n return element;\n };\n kendo.parseEffects = function (input, mirror) {\n var effects = {};\n if (typeof input === 'string') {\n each(input.split(' '), function (idx, value) {\n var redirectedEffect = !singleEffectRegExp.test(value), resolved = value.replace(oldEffectsRegExp, function (match, $1, $2) {\n return $1 + ':' + $2.toLowerCase();\n }), effect = resolved.split(':'), direction = effect[1], effectBody = {};\n if (effect.length > 1) {\n effectBody.direction = mirror && redirectedEffect ? directions[direction].reverse : direction;\n }\n effects[effect[0]] = effectBody;\n });\n } else {\n each(input, function (idx) {\n var direction = this.direction;\n if (direction && mirror && !singleEffectRegExp.test(idx)) {\n this.direction = directions[direction].reverse;\n }\n effects[idx] = this;\n });\n }\n return effects;\n };\n function parseInteger(value) {\n return parseInt(value, 10);\n }\n function parseCSS(element, property) {\n return parseInteger(element.css(property));\n }\n function keys(obj) {\n var acc = [];\n for (var propertyName in obj) {\n acc.push(propertyName);\n }\n return acc;\n }\n function strip3DTransforms(properties) {\n for (var key in properties) {\n if (transformProps.indexOf(key) != -1 && transform2d.indexOf(key) == -1) {\n delete properties[key];\n }\n }\n return properties;\n }\n function normalizeCSS(element, properties) {\n var transformation = [], cssValues = {}, lowerKey, key, value, isTransformed;\n for (key in properties) {\n lowerKey = key.toLowerCase();\n isTransformed = transforms && transformProps.indexOf(lowerKey) != -1;\n if (!support.hasHW3D && isTransformed && transform2d.indexOf(lowerKey) == -1) {\n delete properties[key];\n } else {\n value = properties[key];\n if (isTransformed) {\n transformation.push(key + '(' + value + ')');\n } else {\n cssValues[key] = value;\n }\n }\n }\n if (transformation.length) {\n cssValues[TRANSFORM] = transformation.join(' ');\n }\n return cssValues;\n }\n if (transitions) {\n extend(fx, {\n transition: function (element, properties, options) {\n var css, delay = 0, oldKeys = element.data('keys') || [], timeoutID;\n options = extend({\n duration: 200,\n ease: 'ease-out',\n complete: null,\n exclusive: 'all'\n }, options);\n var stopTransitionCalled = false;\n var stopTransition = function () {\n if (!stopTransitionCalled) {\n stopTransitionCalled = true;\n if (timeoutID) {\n clearTimeout(timeoutID);\n timeoutID = null;\n }\n element.removeData(ABORT_ID).dequeue().css(TRANSITION, '').css(TRANSITION);\n options.complete.call(element);\n }\n };\n options.duration = $.fx ? $.fx.speeds[options.duration] || options.duration : options.duration;\n css = normalizeCSS(element, properties);\n $.merge(oldKeys, keys(css));\n if ($.hasOwnProperty('uniqueSort')) {\n element.data('keys', $.uniqueSort(oldKeys)).height();\n } else {\n element.data('keys', $.unique(oldKeys)).height();\n }\n element.css(TRANSITION, options.exclusive + ' ' + options.duration + 'ms ' + options.ease).css(TRANSITION);\n element.css(css).css(TRANSFORM);\n if (transitions.event) {\n element.one(transitions.event, stopTransition);\n if (options.duration !== 0) {\n delay = 500;\n }\n }\n timeoutID = setTimeout(stopTransition, options.duration + delay);\n element.data(ABORT_ID, timeoutID);\n element.data(COMPLETE_CALLBACK, stopTransition);\n },\n stopQueue: function (element, clearQueue, gotoEnd) {\n var cssValues, taskKeys = element.data('keys'), retainPosition = !gotoEnd && taskKeys, completeCallback = element.data(COMPLETE_CALLBACK);\n if (retainPosition) {\n cssValues = kendo.getComputedStyles(element[0], taskKeys);\n }\n if (completeCallback) {\n completeCallback();\n }\n if (retainPosition) {\n element.css(cssValues);\n }\n return element.removeData('keys').stop(clearQueue);\n }\n });\n }\n function animationProperty(element, property) {\n if (transforms) {\n var transform = element.css(TRANSFORM);\n if (transform == NONE) {\n return property == 'scale' ? 1 : 0;\n }\n var match = transform.match(new RegExp(property + '\\\\s*\\\\(([\\\\d\\\\w\\\\.]+)')), computed = 0;\n if (match) {\n computed = parseInteger(match[1]);\n } else {\n match = transform.match(matrix3dRegExp) || [\n 0,\n 0,\n 0,\n 0,\n 0\n ];\n property = property.toLowerCase();\n if (translateXRegExp.test(property)) {\n computed = parseFloat(match[3] / match[2]);\n } else if (property == 'translatey') {\n computed = parseFloat(match[4] / match[2]);\n } else if (property == 'scale') {\n computed = parseFloat(match[2]);\n } else if (property == 'rotate') {\n computed = parseFloat(Math.atan2(match[2], match[1]));\n }\n }\n return computed;\n } else {\n return parseFloat(element.css(property));\n }\n }\n var EffectSet = kendo.Class.extend({\n init: function (element, options) {\n var that = this;\n that.element = element;\n that.effects = [];\n that.options = options;\n that.restore = [];\n },\n run: function (effects) {\n var that = this, effect, idx, jdx, length = effects.length, element = that.element, options = that.options, deferred = $.Deferred(), start = {}, end = {}, target, children, childrenLength;\n that.effects = effects;\n deferred.done($.proxy(that, 'complete'));\n element.data('animating', true);\n for (idx = 0; idx < length; idx++) {\n effect = effects[idx];\n effect.setReverse(options.reverse);\n effect.setOptions(options);\n that.addRestoreProperties(effect.restore);\n effect.prepare(start, end);\n children = effect.children();\n for (jdx = 0, childrenLength = children.length; jdx < childrenLength; jdx++) {\n children[jdx].duration(options.duration).run();\n }\n }\n for (var effectName in options.effects) {\n extend(end, options.effects[effectName].properties);\n }\n if (!element.is(':visible')) {\n extend(start, { display: element.data('olddisplay') || 'block' });\n }\n if (transforms && !options.reset) {\n target = element.data('targetTransform');\n if (target) {\n start = extend(target, start);\n }\n }\n start = normalizeCSS(element, start);\n if (transforms && !transitions) {\n start = strip3DTransforms(start);\n }\n element.css(start).css(TRANSFORM);\n for (idx = 0; idx < length; idx++) {\n effects[idx].setup();\n }\n if (options.init) {\n options.init();\n }\n element.data('targetTransform', end);\n fx.animate(element, end, extend({}, options, { complete: deferred.resolve }));\n return deferred.promise();\n },\n stop: function () {\n $(this.element).kendoStop(true, true);\n },\n addRestoreProperties: function (restore) {\n var element = this.element, value, i = 0, length = restore.length;\n for (; i < length; i++) {\n value = restore[i];\n this.restore.push(value);\n if (!element.data(value)) {\n element.data(value, element.css(value));\n }\n }\n },\n restoreCallback: function () {\n var element = this.element;\n for (var i = 0, length = this.restore.length; i < length; i++) {\n var value = this.restore[i];\n element.css(value, element.data(value));\n }\n },\n complete: function () {\n var that = this, idx = 0, element = that.element, options = that.options, effects = that.effects, length = effects.length;\n element.removeData('animating').dequeue();\n if (options.hide) {\n element.data('olddisplay', element.css('display')).hide();\n }\n this.restoreCallback();\n if (hasZoom && !transforms) {\n setTimeout($.proxy(this, 'restoreCallback'), 0);\n }\n for (; idx < length; idx++) {\n effects[idx].teardown();\n }\n if (options.completeCallback) {\n options.completeCallback(element);\n }\n }\n });\n fx.promise = function (element, options) {\n var effects = [], effectClass, effectSet = new EffectSet(element, options), parsedEffects = kendo.parseEffects(options.effects), effect;\n options.effects = parsedEffects;\n for (var effectName in parsedEffects) {\n effectClass = fx[capitalize(effectName)];\n if (effectClass) {\n effect = new effectClass(element, parsedEffects[effectName].direction);\n effects.push(effect);\n }\n }\n if (effects[0]) {\n effectSet.run(effects);\n } else {\n if (!element.is(':visible')) {\n element.css({ display: element.data('olddisplay') || 'block' }).css('display');\n }\n if (options.init) {\n options.init();\n }\n element.dequeue();\n effectSet.complete();\n }\n };\n extend(fx, {\n animate: function (elements, properties, options) {\n var useTransition = options.transition !== false;\n delete options.transition;\n if (transitions && 'transition' in fx && useTransition) {\n fx.transition(elements, properties, options);\n } else {\n if (transforms) {\n elements.animate(strip3DTransforms(properties), {\n queue: false,\n show: false,\n hide: false,\n duration: options.duration,\n complete: options.complete\n });\n } else {\n elements.each(function () {\n var element = $(this), multiple = {};\n each(transformProps, function (idx, value) {\n var params, currentValue = properties ? properties[value] + ' ' : null;\n if (currentValue) {\n var single = properties;\n if (value in scaleProperties && properties[value] !== undefined) {\n params = currentValue.match(cssParamsRegExp);\n if (transforms) {\n extend(single, { scale: +params[0] });\n }\n } else {\n if (value in translateProperties && properties[value] !== undefined) {\n var position = element.css(POSITION), isFixed = position == 'absolute' || position == 'fixed';\n if (!element.data(TRANSLATE)) {\n if (isFixed) {\n element.data(TRANSLATE, {\n top: parseCSS(element, 'top') || 0,\n left: parseCSS(element, 'left') || 0,\n bottom: parseCSS(element, 'bottom'),\n right: parseCSS(element, 'right')\n });\n } else {\n element.data(TRANSLATE, {\n top: parseCSS(element, 'marginTop') || 0,\n left: parseCSS(element, 'marginLeft') || 0\n });\n }\n }\n var originalPosition = element.data(TRANSLATE);\n params = currentValue.match(cssParamsRegExp);\n if (params) {\n var dX = value == TRANSLATE + 'y' ? +null : +params[1], dY = value == TRANSLATE + 'y' ? +params[1] : +params[2];\n if (isFixed) {\n if (!isNaN(originalPosition.right)) {\n if (!isNaN(dX)) {\n extend(single, { right: originalPosition.right - dX });\n }\n } else {\n if (!isNaN(dX)) {\n extend(single, { left: originalPosition.left + dX });\n }\n }\n if (!isNaN(originalPosition.bottom)) {\n if (!isNaN(dY)) {\n extend(single, { bottom: originalPosition.bottom - dY });\n }\n } else {\n if (!isNaN(dY)) {\n extend(single, { top: originalPosition.top + dY });\n }\n }\n } else {\n if (!isNaN(dX)) {\n extend(single, { marginLeft: originalPosition.left + dX });\n }\n if (!isNaN(dY)) {\n extend(single, { marginTop: originalPosition.top + dY });\n }\n }\n }\n }\n }\n if (!transforms && value != 'scale' && value in single) {\n delete single[value];\n }\n if (single) {\n extend(multiple, single);\n }\n }\n });\n if (browser.msie) {\n delete multiple.scale;\n }\n element.animate(multiple, {\n queue: false,\n show: false,\n hide: false,\n duration: options.duration,\n complete: options.complete\n });\n });\n }\n }\n }\n });\n fx.animatedPromise = fx.promise;\n var Effect = kendo.Class.extend({\n init: function (element, direction) {\n var that = this;\n that.element = element;\n that._direction = direction;\n that.options = {};\n that._additionalEffects = [];\n if (!that.restore) {\n that.restore = [];\n }\n },\n reverse: function () {\n this._reverse = true;\n return this.run();\n },\n play: function () {\n this._reverse = false;\n return this.run();\n },\n add: function (additional) {\n this._additionalEffects.push(additional);\n return this;\n },\n direction: function (value) {\n this._direction = value;\n return this;\n },\n duration: function (duration) {\n this._duration = duration;\n return this;\n },\n compositeRun: function () {\n var that = this, effectSet = new EffectSet(that.element, {\n reverse: that._reverse,\n duration: that._duration\n }), effects = that._additionalEffects.concat([that]);\n return effectSet.run(effects);\n },\n run: function () {\n if (this._additionalEffects && this._additionalEffects[0]) {\n return this.compositeRun();\n }\n var that = this, element = that.element, idx = 0, restore = that.restore, length = restore.length, value, deferred = $.Deferred(), start = {}, end = {}, target, children = that.children(), childrenLength = children.length;\n deferred.done($.proxy(that, '_complete'));\n element.data('animating', true);\n for (idx = 0; idx < length; idx++) {\n value = restore[idx];\n if (!element.data(value)) {\n element.data(value, element.css(value));\n }\n }\n for (idx = 0; idx < childrenLength; idx++) {\n children[idx].duration(that._duration).run();\n }\n that.prepare(start, end);\n if (!element.is(':visible')) {\n extend(start, { display: element.data('olddisplay') || 'block' });\n }\n if (transforms) {\n target = element.data('targetTransform');\n if (target) {\n start = extend(target, start);\n }\n }\n start = normalizeCSS(element, start);\n if (transforms && !transitions) {\n start = strip3DTransforms(start);\n }\n element.css(start).css(TRANSFORM);\n that.setup();\n element.data('targetTransform', end);\n fx.animate(element, end, {\n duration: that._duration,\n complete: deferred.resolve\n });\n return deferred.promise();\n },\n stop: function () {\n var idx = 0, children = this.children(), childrenLength = children.length;\n for (idx = 0; idx < childrenLength; idx++) {\n children[idx].stop();\n }\n $(this.element).kendoStop(true, true);\n return this;\n },\n restoreCallback: function () {\n var element = this.element;\n for (var i = 0, length = this.restore.length; i < length; i++) {\n var value = this.restore[i];\n element.css(value, element.data(value));\n }\n },\n _complete: function () {\n var that = this, element = that.element;\n element.removeData('animating').dequeue();\n that.restoreCallback();\n if (that.shouldHide()) {\n element.data('olddisplay', element.css('display')).hide();\n }\n if (hasZoom && !transforms) {\n setTimeout($.proxy(that, 'restoreCallback'), 0);\n }\n that.teardown();\n },\n setOptions: function (options) {\n extend(true, this.options, options);\n },\n children: function () {\n return [];\n },\n shouldHide: $.noop,\n setup: $.noop,\n prepare: $.noop,\n teardown: $.noop,\n directions: [],\n setReverse: function (reverse) {\n this._reverse = reverse;\n return this;\n }\n });\n function capitalize(word) {\n return word.charAt(0).toUpperCase() + word.substring(1);\n }\n function createEffect(name, definition) {\n var effectClass = Effect.extend(definition), directions = effectClass.prototype.directions;\n fx[capitalize(name)] = effectClass;\n fx.Element.prototype[name] = function (direction, opt1, opt2, opt3) {\n return new effectClass(this.element, direction, opt1, opt2, opt3);\n };\n each(directions, function (idx, theDirection) {\n fx.Element.prototype[name + capitalize(theDirection)] = function (opt1, opt2, opt3) {\n return new effectClass(this.element, theDirection, opt1, opt2, opt3);\n };\n });\n }\n var FOUR_DIRECTIONS = [\n 'left',\n 'right',\n 'up',\n 'down'\n ], IN_OUT = [\n 'in',\n 'out'\n ];\n createEffect('slideIn', {\n directions: FOUR_DIRECTIONS,\n divisor: function (value) {\n this.options.divisor = value;\n return this;\n },\n prepare: function (start, end) {\n var that = this, tmp, element = that.element, outerWidth = kendo._outerWidth, outerHeight = kendo._outerHeight, direction = directions[that._direction], offset = -direction.modifier * (direction.vertical ? outerHeight(element) : outerWidth(element)), startValue = offset / (that.options && that.options.divisor || 1) + PX, endValue = '0px';\n if (that._reverse) {\n tmp = start;\n start = end;\n end = tmp;\n }\n if (transforms) {\n start[direction.transition] = startValue;\n end[direction.transition] = endValue;\n } else {\n start[direction.property] = startValue;\n end[direction.property] = endValue;\n }\n }\n });\n createEffect('tile', {\n directions: FOUR_DIRECTIONS,\n init: function (element, direction, previous) {\n Effect.prototype.init.call(this, element, direction);\n this.options = { previous: previous };\n },\n previousDivisor: function (value) {\n this.options.previousDivisor = value;\n return this;\n },\n children: function () {\n var that = this, reverse = that._reverse, previous = that.options.previous, divisor = that.options.previousDivisor || 1, dir = that._direction;\n var children = [kendo.fx(that.element).slideIn(dir).setReverse(reverse)];\n if (previous) {\n children.push(kendo.fx(previous).slideIn(directions[dir].reverse).divisor(divisor).setReverse(!reverse));\n }\n return children;\n }\n });\n function createToggleEffect(name, property, defaultStart, defaultEnd) {\n createEffect(name, {\n directions: IN_OUT,\n startValue: function (value) {\n this._startValue = value;\n return this;\n },\n endValue: function (value) {\n this._endValue = value;\n return this;\n },\n shouldHide: function () {\n return this._shouldHide;\n },\n prepare: function (start, end) {\n var that = this, startValue, endValue, out = this._direction === 'out', startDataValue = that.element.data(property), startDataValueIsSet = !(isNaN(startDataValue) || startDataValue == defaultStart);\n if (startDataValueIsSet) {\n startValue = startDataValue;\n } else if (typeof this._startValue !== 'undefined') {\n startValue = this._startValue;\n } else {\n startValue = out ? defaultStart : defaultEnd;\n }\n if (typeof this._endValue !== 'undefined') {\n endValue = this._endValue;\n } else {\n endValue = out ? defaultEnd : defaultStart;\n }\n if (this._reverse) {\n start[property] = endValue;\n end[property] = startValue;\n } else {\n start[property] = startValue;\n end[property] = endValue;\n }\n that._shouldHide = end[property] === defaultEnd;\n }\n });\n }\n createToggleEffect('fade', 'opacity', 1, 0);\n createToggleEffect('zoom', 'scale', 1, 0.01);\n createEffect('slideMargin', {\n prepare: function (start, end) {\n var that = this, element = that.element, options = that.options, origin = element.data(ORIGIN), offset = options.offset, margin, reverse = that._reverse;\n if (!reverse && origin === null) {\n element.data(ORIGIN, parseFloat(element.css('margin-' + options.axis)));\n }\n margin = element.data(ORIGIN) || 0;\n end['margin-' + options.axis] = !reverse ? margin + offset : margin;\n }\n });\n createEffect('slideTo', {\n prepare: function (start, end) {\n var that = this, element = that.element, options = that.options, offset = options.offset.split(','), reverse = that._reverse;\n if (transforms) {\n end.translatex = !reverse ? offset[0] : 0;\n end.translatey = !reverse ? offset[1] : 0;\n } else {\n end.left = !reverse ? offset[0] : 0;\n end.top = !reverse ? offset[1] : 0;\n }\n element.css('left');\n }\n });\n createEffect('expand', {\n directions: [\n 'horizontal',\n 'vertical'\n ],\n restore: [OVERFLOW],\n prepare: function (start, end) {\n var that = this, element = that.element, options = that.options, reverse = that._reverse, property = that._direction === 'vertical' ? HEIGHT : WIDTH, setLength = element[0].style[property], oldLength = element.data(property), length = parseFloat(oldLength || setLength), realLength = round(element.css(property, AUTO)[property]());\n start.overflow = HIDDEN;\n length = options && options.reset ? realLength || length : length || realLength;\n end[property] = (reverse ? 0 : length) + PX;\n start[property] = (reverse ? length : 0) + PX;\n if (oldLength === undefined) {\n element.data(property, setLength);\n }\n },\n shouldHide: function () {\n return this._reverse;\n },\n teardown: function () {\n var that = this, element = that.element, property = that._direction === 'vertical' ? HEIGHT : WIDTH, length = element.data(property);\n if (length == AUTO || length === BLANK) {\n setTimeout(function () {\n element.css(property, AUTO).css(property);\n }, 0);\n }\n }\n });\n var TRANSFER_START_STATE = {\n position: 'absolute',\n marginLeft: 0,\n marginTop: 0,\n scale: 1\n };\n createEffect('transfer', {\n init: function (element, target) {\n this.element = element;\n this.options = { target: target };\n this.restore = [];\n },\n setup: function () {\n this.element.appendTo(document.body);\n },\n prepare: function (start, end) {\n var that = this, element = that.element, outerBox = fx.box(element), innerBox = fx.box(that.options.target), currentScale = animationProperty(element, 'scale'), scale = fx.fillScale(innerBox, outerBox), transformOrigin = fx.transformOrigin(innerBox, outerBox);\n extend(start, TRANSFER_START_STATE);\n end.scale = 1;\n element.css(TRANSFORM, 'scale(1)').css(TRANSFORM);\n element.css(TRANSFORM, 'scale(' + currentScale + ')');\n start.top = outerBox.top;\n start.left = outerBox.left;\n start.transformOrigin = transformOrigin.x + PX + ' ' + transformOrigin.y + PX;\n if (that._reverse) {\n start.scale = scale;\n } else {\n end.scale = scale;\n }\n }\n });\n var CLIPS = {\n top: 'rect(auto auto $size auto)',\n bottom: 'rect($size auto auto auto)',\n left: 'rect(auto $size auto auto)',\n right: 'rect(auto auto auto $size)'\n };\n var ROTATIONS = {\n top: {\n start: 'rotatex(0deg)',\n end: 'rotatex(180deg)'\n },\n bottom: {\n start: 'rotatex(-180deg)',\n end: 'rotatex(0deg)'\n },\n left: {\n start: 'rotatey(0deg)',\n end: 'rotatey(-180deg)'\n },\n right: {\n start: 'rotatey(180deg)',\n end: 'rotatey(0deg)'\n }\n };\n function clipInHalf(container, direction) {\n var vertical = kendo.directions[direction].vertical, size = container[vertical ? HEIGHT : WIDTH]() / 2 + 'px';\n return CLIPS[direction].replace('$size', size);\n }\n createEffect('turningPage', {\n directions: FOUR_DIRECTIONS,\n init: function (element, direction, container) {\n Effect.prototype.init.call(this, element, direction);\n this._container = container;\n },\n prepare: function (start, end) {\n var that = this, reverse = that._reverse, direction = reverse ? directions[that._direction].reverse : that._direction, rotation = ROTATIONS[direction];\n start.zIndex = 1;\n if (that._clipInHalf) {\n start.clip = clipInHalf(that._container, kendo.directions[direction].reverse);\n }\n start[BACKFACE] = HIDDEN;\n end[TRANSFORM] = TRANSFORM_PERSPECTIVE + (reverse ? rotation.start : rotation.end);\n start[TRANSFORM] = TRANSFORM_PERSPECTIVE + (reverse ? rotation.end : rotation.start);\n },\n setup: function () {\n this._container.append(this.element);\n },\n face: function (value) {\n this._face = value;\n return this;\n },\n shouldHide: function () {\n var that = this, reverse = that._reverse, face = that._face;\n return reverse && !face || !reverse && face;\n },\n clipInHalf: function (value) {\n this._clipInHalf = value;\n return this;\n },\n temporary: function () {\n this.element.addClass('temp-page');\n return this;\n }\n });\n createEffect('staticPage', {\n directions: FOUR_DIRECTIONS,\n init: function (element, direction, container) {\n Effect.prototype.init.call(this, element, direction);\n this._container = container;\n },\n restore: ['clip'],\n prepare: function (start, end) {\n var that = this, direction = that._reverse ? directions[that._direction].reverse : that._direction;\n start.clip = clipInHalf(that._container, direction);\n start.opacity = 0.999;\n end.opacity = 1;\n },\n shouldHide: function () {\n var that = this, reverse = that._reverse, face = that._face;\n return reverse && !face || !reverse && face;\n },\n face: function (value) {\n this._face = value;\n return this;\n }\n });\n createEffect('pageturn', {\n directions: [\n 'horizontal',\n 'vertical'\n ],\n init: function (element, direction, face, back) {\n Effect.prototype.init.call(this, element, direction);\n this.options = {};\n this.options.face = face;\n this.options.back = back;\n },\n children: function () {\n var that = this, options = that.options, direction = that._direction === 'horizontal' ? 'left' : 'top', reverseDirection = kendo.directions[direction].reverse, reverse = that._reverse, temp, faceClone = options.face.clone(true).removeAttr('id'), backClone = options.back.clone(true).removeAttr('id'), element = that.element;\n if (reverse) {\n temp = direction;\n direction = reverseDirection;\n reverseDirection = temp;\n }\n return [\n kendo.fx(options.face).staticPage(direction, element).face(true).setReverse(reverse),\n kendo.fx(options.back).staticPage(reverseDirection, element).setReverse(reverse),\n kendo.fx(faceClone).turningPage(direction, element).face(true).clipInHalf(true).temporary().setReverse(reverse),\n kendo.fx(backClone).turningPage(reverseDirection, element).clipInHalf(true).temporary().setReverse(reverse)\n ];\n },\n prepare: function (start, end) {\n start[PERSPECTIVE] = DEFAULT_PERSPECTIVE;\n start.transformStyle = 'preserve-3d';\n start.opacity = 0.999;\n end.opacity = 1;\n },\n teardown: function () {\n this.element.find('.temp-page').remove();\n }\n });\n createEffect('flip', {\n directions: [\n 'horizontal',\n 'vertical'\n ],\n init: function (element, direction, face, back) {\n Effect.prototype.init.call(this, element, direction);\n this.options = {};\n this.options.face = face;\n this.options.back = back;\n },\n children: function () {\n var that = this, options = that.options, direction = that._direction === 'horizontal' ? 'left' : 'top', reverseDirection = kendo.directions[direction].reverse, reverse = that._reverse, temp, element = that.element;\n if (reverse) {\n temp = direction;\n direction = reverseDirection;\n reverseDirection = temp;\n }\n return [\n kendo.fx(options.face).turningPage(direction, element).face(true).setReverse(reverse),\n kendo.fx(options.back).turningPage(reverseDirection, element).setReverse(reverse)\n ];\n },\n prepare: function (start) {\n start[PERSPECTIVE] = DEFAULT_PERSPECTIVE;\n start.transformStyle = 'preserve-3d';\n }\n });\n var RESTORE_OVERFLOW = !support.mobileOS.android;\n var IGNORE_TRANSITION_EVENT_SELECTOR = '.km-touch-scrollbar, .km-actionsheet-wrapper';\n createEffect('replace', {\n _before: $.noop,\n _after: $.noop,\n init: function (element, previous, transitionClass) {\n Effect.prototype.init.call(this, element);\n this._previous = $(previous);\n this._transitionClass = transitionClass;\n },\n duration: function () {\n throw new Error('The replace effect does not support duration setting; the effect duration may be customized through the transition class rule');\n },\n beforeTransition: function (callback) {\n this._before = callback;\n return this;\n },\n afterTransition: function (callback) {\n this._after = callback;\n return this;\n },\n _both: function () {\n return $().add(this._element).add(this._previous);\n },\n _containerClass: function () {\n var direction = this._direction, containerClass = 'k-fx k-fx-start k-fx-' + this._transitionClass;\n if (direction) {\n containerClass += ' k-fx-' + direction;\n }\n if (this._reverse) {\n containerClass += ' k-fx-reverse';\n }\n return containerClass;\n },\n complete: function (e) {\n if (!this.deferred || e && $(e.target).is(IGNORE_TRANSITION_EVENT_SELECTOR)) {\n return;\n }\n var container = this.container;\n container.removeClass('k-fx-end').removeClass(this._containerClass()).off(transitions.event, this.completeProxy);\n this._previous.hide().removeClass('k-fx-current');\n this.element.removeClass('k-fx-next');\n if (RESTORE_OVERFLOW) {\n container.css(OVERFLOW, '');\n }\n if (!this.isAbsolute) {\n this._both().css(POSITION, '');\n }\n this.deferred.resolve();\n delete this.deferred;\n },\n run: function () {\n if (this._additionalEffects && this._additionalEffects[0]) {\n return this.compositeRun();\n }\n var that = this, element = that.element, previous = that._previous, container = element.parents().filter(previous.parents()).first(), both = that._both(), deferred = $.Deferred(), originalPosition = element.css(POSITION), originalOverflow;\n if (!container.length) {\n container = element.parent();\n }\n this.container = container;\n this.deferred = deferred;\n this.isAbsolute = originalPosition == 'absolute';\n if (!this.isAbsolute) {\n both.css(POSITION, 'absolute');\n }\n if (RESTORE_OVERFLOW) {\n originalOverflow = container.css(OVERFLOW);\n container.css(OVERFLOW, 'hidden');\n }\n if (!transitions) {\n this.complete();\n } else {\n element.addClass('k-fx-hidden');\n container.addClass(this._containerClass());\n this.completeProxy = $.proxy(this, 'complete');\n container.on(transitions.event, this.completeProxy);\n kendo.animationFrame(function () {\n element.removeClass('k-fx-hidden').addClass('k-fx-next');\n previous.css('display', '').addClass('k-fx-current');\n that._before(previous, element);\n kendo.animationFrame(function () {\n container.removeClass('k-fx-start').addClass('k-fx-end');\n that._after(previous, element);\n });\n });\n }\n return deferred.promise();\n },\n stop: function () {\n this.complete();\n }\n });\n var Animation = kendo.Class.extend({\n init: function () {\n var that = this;\n that._tickProxy = proxy(that._tick, that);\n that._started = false;\n },\n tick: $.noop,\n done: $.noop,\n onEnd: $.noop,\n onCancel: $.noop,\n start: function () {\n if (!this.enabled()) {\n return;\n }\n if (!this.done()) {\n this._started = true;\n kendo.animationFrame(this._tickProxy);\n } else {\n this.onEnd();\n }\n },\n enabled: function () {\n return true;\n },\n cancel: function () {\n this._started = false;\n this.onCancel();\n },\n _tick: function () {\n var that = this;\n if (!that._started) {\n return;\n }\n that.tick();\n if (!that.done()) {\n kendo.animationFrame(that._tickProxy);\n } else {\n that._started = false;\n that.onEnd();\n }\n }\n });\n var Transition = Animation.extend({\n init: function (options) {\n var that = this;\n extend(that, options);\n Animation.fn.init.call(that);\n },\n done: function () {\n return this.timePassed() >= this.duration;\n },\n timePassed: function () {\n return Math.min(this.duration, new Date() - this.startDate);\n },\n moveTo: function (options) {\n var that = this, movable = that.movable;\n that.initial = movable[that.axis];\n that.delta = options.location - that.initial;\n that.duration = typeof options.duration == 'number' ? options.duration : 300;\n that.tick = that._easeProxy(options.ease);\n that.startDate = new Date();\n that.start();\n },\n _easeProxy: function (ease) {\n var that = this;\n return function () {\n that.movable.moveAxis(that.axis, ease(that.timePassed(), that.initial, that.delta, that.duration));\n };\n }\n });\n extend(Transition, {\n easeOutExpo: function (t, b, c, d) {\n return t == d ? b + c : c * (-Math.pow(2, -10 * t / d) + 1) + b;\n },\n easeOutBack: function (t, b, c, d, s) {\n s = 1.70158;\n return c * ((t = t / d - 1) * t * ((s + 1) * t + s) + 1) + b;\n }\n });\n fx.Animation = Animation;\n fx.Transition = Transition;\n fx.createEffect = createEffect;\n fx.box = function (element) {\n element = $(element);\n var result = element.offset();\n result.width = kendo._outerWidth(element);\n result.height = kendo._outerHeight(element);\n return result;\n };\n fx.transformOrigin = function (inner, outer) {\n var x = (inner.left - outer.left) * outer.width / (outer.width - inner.width), y = (inner.top - outer.top) * outer.height / (outer.height - inner.height);\n return {\n x: isNaN(x) ? 0 : x,\n y: isNaN(y) ? 0 : y\n };\n };\n fx.fillScale = function (inner, outer) {\n return Math.min(inner.width / outer.width, inner.height / outer.height);\n };\n fx.fitScale = function (inner, outer) {\n return Math.max(inner.width / outer.width, inner.height / outer.height);\n };\n }(window.kendo.jQuery));\n return window.kendo;\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('kendo.userevents', ['kendo.core'], f);\n}(function () {\n var __meta__ = {\n id: 'userevents',\n name: 'User Events',\n category: 'framework',\n depends: ['core'],\n hidden: true\n };\n (function ($, undefined) {\n var kendo = window.kendo, support = kendo.support, Class = kendo.Class, Observable = kendo.Observable, now = $.now, extend = $.extend, OS = support.mobileOS, invalidZeroEvents = OS && OS.android, DEFAULT_MIN_HOLD = 800, CLICK_DELAY = 300, DEFAULT_THRESHOLD = support.browser.msie ? 5 : 0, PRESS = 'press', HOLD = 'hold', SELECT = 'select', START = 'start', MOVE = 'move', END = 'end', CANCEL = 'cancel', TAP = 'tap', DOUBLETAP = 'doubleTap', RELEASE = 'release', GESTURESTART = 'gesturestart', GESTURECHANGE = 'gesturechange', GESTUREEND = 'gestureend', GESTURETAP = 'gesturetap';\n var THRESHOLD = {\n 'api': 0,\n 'touch': 0,\n 'mouse': 9,\n 'pointer': 9\n };\n var ENABLE_GLOBAL_SURFACE = !support.touch || support.mouseAndTouchPresent;\n function touchDelta(touch1, touch2) {\n var x1 = touch1.x.location, y1 = touch1.y.location, x2 = touch2.x.location, y2 = touch2.y.location, dx = x1 - x2, dy = y1 - y2;\n return {\n center: {\n x: (x1 + x2) / 2,\n y: (y1 + y2) / 2\n },\n distance: Math.sqrt(dx * dx + dy * dy)\n };\n }\n function getTouches(e) {\n var touches = [], originalEvent = e.originalEvent, currentTarget = e.currentTarget, idx = 0, length, changedTouches, touch;\n if (e.api) {\n touches.push({\n id: 2,\n event: e,\n target: e.target,\n currentTarget: e.target,\n location: e,\n type: 'api'\n });\n } else if (e.type.match(/touch/)) {\n changedTouches = originalEvent ? originalEvent.changedTouches : [];\n for (length = changedTouches.length; idx < length; idx++) {\n touch = changedTouches[idx];\n touches.push({\n location: touch,\n event: e,\n target: touch.target,\n currentTarget: currentTarget,\n id: touch.identifier,\n type: 'touch'\n });\n }\n } else if (support.pointers || support.msPointers) {\n touches.push({\n location: originalEvent,\n event: e,\n target: e.target,\n currentTarget: currentTarget,\n id: originalEvent.pointerId,\n type: 'pointer'\n });\n } else {\n touches.push({\n id: 1,\n event: e,\n target: e.target,\n currentTarget: currentTarget,\n location: e,\n type: 'mouse'\n });\n }\n return touches;\n }\n var TouchAxis = Class.extend({\n init: function (axis, location) {\n var that = this;\n that.axis = axis;\n that._updateLocationData(location);\n that.startLocation = that.location;\n that.velocity = that.delta = 0;\n that.timeStamp = now();\n },\n move: function (location) {\n var that = this, offset = location['page' + that.axis], timeStamp = now(), timeDelta = timeStamp - that.timeStamp || 1;\n if (!offset && invalidZeroEvents) {\n return;\n }\n that.delta = offset - that.location;\n that._updateLocationData(location);\n that.initialDelta = offset - that.startLocation;\n that.velocity = that.delta / timeDelta;\n that.timeStamp = timeStamp;\n },\n _updateLocationData: function (location) {\n var that = this, axis = that.axis;\n that.location = location['page' + axis];\n that.client = location['client' + axis];\n that.screen = location['screen' + axis];\n }\n });\n var Touch = Class.extend({\n init: function (userEvents, target, touchInfo) {\n extend(this, {\n x: new TouchAxis('X', touchInfo.location),\n y: new TouchAxis('Y', touchInfo.location),\n type: touchInfo.type,\n useClickAsTap: userEvents.useClickAsTap,\n threshold: userEvents.threshold || THRESHOLD[touchInfo.type],\n userEvents: userEvents,\n target: target,\n currentTarget: touchInfo.currentTarget,\n initialTouch: touchInfo.target,\n id: touchInfo.id,\n pressEvent: touchInfo,\n _clicks: userEvents._clicks,\n supportDoubleTap: userEvents.supportDoubleTap,\n _moved: false,\n _finished: false\n });\n },\n press: function () {\n this._holdTimeout = setTimeout($.proxy(this, '_hold'), this.userEvents.minHold);\n this._trigger(PRESS, this.pressEvent);\n },\n _tap: function (touchInfo) {\n var that = this;\n that.userEvents._clicks++;\n if (that.userEvents._clicks == 1) {\n that._clickTimeout = setTimeout(function () {\n if (that.userEvents._clicks == 1) {\n that._trigger(TAP, touchInfo);\n } else {\n that._trigger(DOUBLETAP, touchInfo);\n }\n that.userEvents._clicks = 0;\n }, CLICK_DELAY);\n }\n },\n _hold: function () {\n this._trigger(HOLD, this.pressEvent);\n },\n move: function (touchInfo) {\n var that = this;\n var preventMove = touchInfo.type !== 'api' && that.userEvents._shouldNotMove;\n if (that._finished || preventMove) {\n return;\n }\n that.x.move(touchInfo.location);\n that.y.move(touchInfo.location);\n if (!that._moved) {\n if (that._withinIgnoreThreshold()) {\n return;\n }\n if (!UserEvents.current || UserEvents.current === that.userEvents) {\n that._start(touchInfo);\n } else {\n return that.dispose();\n }\n }\n if (!that._finished) {\n that._trigger(MOVE, touchInfo);\n }\n },\n end: function (touchInfo) {\n this.endTime = now();\n if (this._finished) {\n return;\n }\n this._finished = true;\n this._trigger(RELEASE, touchInfo);\n if (this._moved) {\n this._trigger(END, touchInfo);\n } else {\n if (!this.useClickAsTap) {\n if (this.supportDoubleTap) {\n this._tap(touchInfo);\n } else {\n this._trigger(TAP, touchInfo);\n }\n }\n }\n clearTimeout(this._holdTimeout);\n this.dispose();\n },\n dispose: function () {\n var userEvents = this.userEvents, activeTouches = userEvents.touches;\n this._finished = true;\n this.pressEvent = null;\n clearTimeout(this._holdTimeout);\n activeTouches.splice($.inArray(this, activeTouches), 1);\n },\n skip: function () {\n this.dispose();\n },\n cancel: function () {\n this.dispose();\n },\n isMoved: function () {\n return this._moved;\n },\n _start: function (touchInfo) {\n clearTimeout(this._holdTimeout);\n this.startTime = now();\n this._moved = true;\n this._trigger(START, touchInfo);\n },\n _trigger: function (name, touchInfo) {\n var that = this, jQueryEvent = touchInfo.event, data = {\n touch: that,\n x: that.x,\n y: that.y,\n target: that.target,\n event: jQueryEvent\n };\n if (that.userEvents.notify(name, data)) {\n jQueryEvent.preventDefault();\n }\n },\n _withinIgnoreThreshold: function () {\n var xDelta = this.x.initialDelta, yDelta = this.y.initialDelta;\n return Math.sqrt(xDelta * xDelta + yDelta * yDelta) <= this.threshold;\n }\n });\n function withEachUpEvent(callback) {\n var downEvents = kendo.eventMap.up.split(' '), idx = 0, length = downEvents.length;\n for (; idx < length; idx++) {\n callback(downEvents[idx]);\n }\n }\n var UserEvents = Observable.extend({\n init: function (element, options) {\n var that = this, filter, ns = kendo.guid();\n options = options || {};\n filter = that.filter = options.filter;\n that.threshold = options.threshold || DEFAULT_THRESHOLD;\n that.minHold = options.minHold || DEFAULT_MIN_HOLD;\n that.touches = [];\n that._maxTouches = options.multiTouch ? 2 : 1;\n that.allowSelection = options.allowSelection;\n that.captureUpIfMoved = options.captureUpIfMoved;\n that.useClickAsTap = !options.fastTap && !support.delayedClick();\n that.eventNS = ns;\n that._clicks = 0;\n that.supportDoubleTap = options.supportDoubleTap;\n element = $(element).handler(that);\n Observable.fn.init.call(that);\n extend(that, {\n element: element,\n surface: options.global && ENABLE_GLOBAL_SURFACE ? $(element[0].ownerDocument.documentElement) : $(options.surface || element),\n stopPropagation: options.stopPropagation,\n pressed: false\n });\n that.surface.handler(that).on(kendo.applyEventMap('move', ns), '_move').on(kendo.applyEventMap('up cancel', ns), '_end');\n element.on(kendo.applyEventMap('down', ns), filter, '_start');\n if (that.useClickAsTap) {\n element.on(kendo.applyEventMap('click', ns), filter, '_click');\n }\n if (support.pointers || support.msPointers) {\n if (support.browser.version < 11) {\n var defaultAction = 'pinch-zoom double-tap-zoom';\n element.css('-ms-touch-action', options.touchAction && options.touchAction != 'none' ? defaultAction + ' ' + options.touchAction : defaultAction);\n } else {\n element.css('touch-action', options.touchAction || 'none');\n }\n }\n if (options.preventDragEvent) {\n element.on(kendo.applyEventMap('dragstart', ns), kendo.preventDefault);\n }\n element.on(kendo.applyEventMap('mousedown', ns), filter, { root: element }, '_select');\n if (that.captureUpIfMoved && support.eventCapture) {\n var surfaceElement = that.surface[0], preventIfMovingProxy = $.proxy(that.preventIfMoving, that);\n withEachUpEvent(function (eventName) {\n surfaceElement.addEventListener(eventName, preventIfMovingProxy, true);\n });\n }\n that.bind([\n PRESS,\n HOLD,\n TAP,\n DOUBLETAP,\n START,\n MOVE,\n END,\n RELEASE,\n CANCEL,\n GESTURESTART,\n GESTURECHANGE,\n GESTUREEND,\n GESTURETAP,\n SELECT\n ], options);\n },\n preventIfMoving: function (e) {\n if (this._isMoved()) {\n e.preventDefault();\n }\n },\n destroy: function () {\n var that = this;\n if (that._destroyed) {\n return;\n }\n that._destroyed = true;\n if (that.captureUpIfMoved && support.eventCapture) {\n var surfaceElement = that.surface[0];\n withEachUpEvent(function (eventName) {\n surfaceElement.removeEventListener(eventName, that.preventIfMoving);\n });\n }\n that.element.kendoDestroy(that.eventNS);\n that.surface.kendoDestroy(that.eventNS);\n that.element.removeData('handler');\n that.surface.removeData('handler');\n that._disposeAll();\n that.unbind();\n delete that.surface;\n delete that.element;\n delete that.currentTarget;\n },\n capture: function () {\n UserEvents.current = this;\n },\n cancel: function () {\n this._disposeAll();\n this.trigger(CANCEL);\n },\n notify: function (eventName, data) {\n var that = this, touches = that.touches;\n if (this._isMultiTouch()) {\n switch (eventName) {\n case MOVE:\n eventName = GESTURECHANGE;\n break;\n case END:\n eventName = GESTUREEND;\n break;\n case TAP:\n eventName = GESTURETAP;\n break;\n }\n extend(data, { touches: touches }, touchDelta(touches[0], touches[1]));\n }\n return this.trigger(eventName, extend(data, { type: eventName }));\n },\n press: function (x, y, target) {\n this._apiCall('_start', x, y, target);\n },\n move: function (x, y) {\n this._apiCall('_move', x, y);\n },\n end: function (x, y) {\n this._apiCall('_end', x, y);\n },\n _isMultiTouch: function () {\n return this.touches.length > 1;\n },\n _maxTouchesReached: function () {\n return this.touches.length >= this._maxTouches;\n },\n _disposeAll: function () {\n var touches = this.touches;\n while (touches.length > 0) {\n touches.pop().dispose();\n }\n },\n _isMoved: function () {\n return $.grep(this.touches, function (touch) {\n return touch.isMoved();\n }).length;\n },\n _select: function (e) {\n if (!this.allowSelection || this.trigger(SELECT, { event: e })) {\n e.preventDefault();\n }\n },\n _start: function (e) {\n var that = this, idx = 0, filter = that.filter, target, touches = getTouches(e), length = touches.length, touch, which = e.which;\n if (which && which > 1 || that._maxTouchesReached()) {\n return;\n }\n UserEvents.current = null;\n that.currentTarget = e.currentTarget;\n if (that.stopPropagation) {\n e.stopPropagation();\n }\n for (; idx < length; idx++) {\n if (that._maxTouchesReached()) {\n break;\n }\n touch = touches[idx];\n if (filter) {\n target = $(touch.currentTarget);\n } else {\n target = that.element;\n }\n if (!target.length) {\n continue;\n }\n touch = new Touch(that, target, touch);\n that.touches.push(touch);\n touch.press();\n if (that._isMultiTouch()) {\n that.notify('gesturestart', {});\n }\n }\n },\n _move: function (e) {\n this._eachTouch('move', e);\n },\n _end: function (e) {\n this._eachTouch('end', e);\n },\n _click: function (e) {\n var data = {\n touch: {\n initialTouch: e.target,\n target: $(e.currentTarget),\n endTime: now(),\n x: {\n location: e.pageX,\n client: e.clientX\n },\n y: {\n location: e.pageY,\n client: e.clientY\n }\n },\n x: e.pageX,\n y: e.pageY,\n target: $(e.currentTarget),\n event: e,\n type: 'tap'\n };\n if (this.trigger('tap', data)) {\n e.preventDefault();\n }\n },\n _eachTouch: function (methodName, e) {\n var that = this, dict = {}, touches = getTouches(e), activeTouches = that.touches, idx, touch, touchInfo, matchingTouch;\n for (idx = 0; idx < activeTouches.length; idx++) {\n touch = activeTouches[idx];\n dict[touch.id] = touch;\n }\n for (idx = 0; idx < touches.length; idx++) {\n touchInfo = touches[idx];\n matchingTouch = dict[touchInfo.id];\n if (matchingTouch) {\n matchingTouch[methodName](touchInfo);\n }\n }\n },\n _apiCall: function (type, x, y, target) {\n this[type]({\n api: true,\n pageX: x,\n pageY: y,\n clientX: x,\n clientY: y,\n target: $(target || this.element)[0],\n stopPropagation: $.noop,\n preventDefault: $.noop\n });\n }\n });\n UserEvents.defaultThreshold = function (value) {\n DEFAULT_THRESHOLD = value;\n };\n UserEvents.minHold = function (value) {\n DEFAULT_MIN_HOLD = value;\n };\n kendo.getTouches = getTouches;\n kendo.touchDelta = touchDelta;\n kendo.UserEvents = UserEvents;\n }(window.kendo.jQuery));\n return window.kendo;\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('kendo.draganddrop', [\n 'kendo.core',\n 'kendo.userevents'\n ], f);\n}(function () {\n var __meta__ = {\n id: 'draganddrop',\n name: 'Drag & drop',\n category: 'framework',\n description: 'Drag & drop functionality for any DOM element.',\n depends: [\n 'core',\n 'userevents'\n ]\n };\n (function ($, undefined) {\n var kendo = window.kendo, support = kendo.support, document = window.document, $window = $(window), Class = kendo.Class, Widget = kendo.ui.Widget, Observable = kendo.Observable, UserEvents = kendo.UserEvents, proxy = $.proxy, extend = $.extend, getOffset = kendo.getOffset, draggables = {}, dropTargets = {}, dropAreas = {}, lastDropTarget, elementUnderCursor = kendo.elementUnderCursor, KEYUP = 'keyup', CHANGE = 'change', DRAGSTART = 'dragstart', HOLD = 'hold', DRAG = 'drag', DRAGEND = 'dragend', DRAGCANCEL = 'dragcancel', HINTDESTROYED = 'hintDestroyed', DRAGENTER = 'dragenter', DRAGLEAVE = 'dragleave', DROP = 'drop';\n function contains(parent, child) {\n try {\n return $.contains(parent, child) || parent == child;\n } catch (e) {\n return false;\n }\n }\n function numericCssPropery(element, property) {\n return parseInt(element.css(property), 10) || 0;\n }\n function within(value, range) {\n return Math.min(Math.max(value, range.min), range.max);\n }\n function containerBoundaries(container, element) {\n var offset = getOffset(container), outerWidth = kendo._outerWidth, outerHeight = kendo._outerHeight, minX = offset.left + numericCssPropery(container, 'borderLeftWidth') + numericCssPropery(container, 'paddingLeft'), minY = offset.top + numericCssPropery(container, 'borderTopWidth') + numericCssPropery(container, 'paddingTop'), maxX = minX + container.width() - outerWidth(element, true), maxY = minY + container.height() - outerHeight(element, true);\n return {\n x: {\n min: minX,\n max: maxX\n },\n y: {\n min: minY,\n max: maxY\n }\n };\n }\n function checkTarget(target, targets, areas) {\n var theTarget, theFilter, i = 0, targetLen = targets && targets.length, areaLen = areas && areas.length;\n while (target && target.parentNode) {\n for (i = 0; i < targetLen; i++) {\n theTarget = targets[i];\n if (theTarget.element[0] === target) {\n return {\n target: theTarget,\n targetElement: target\n };\n }\n }\n for (i = 0; i < areaLen; i++) {\n theFilter = areas[i];\n if ($.contains(theFilter.element[0], target) && support.matchesSelector.call(target, theFilter.options.filter)) {\n return {\n target: theFilter,\n targetElement: target\n };\n }\n }\n target = target.parentNode;\n }\n return undefined;\n }\n var TapCapture = Observable.extend({\n init: function (element, options) {\n var that = this, domElement = element[0];\n that.capture = false;\n if (domElement.addEventListener) {\n $.each(kendo.eventMap.down.split(' '), function () {\n domElement.addEventListener(this, proxy(that._press, that), true);\n });\n $.each(kendo.eventMap.up.split(' '), function () {\n domElement.addEventListener(this, proxy(that._release, that), true);\n });\n } else {\n $.each(kendo.eventMap.down.split(' '), function () {\n domElement.attachEvent(this, proxy(that._press, that));\n });\n $.each(kendo.eventMap.up.split(' '), function () {\n domElement.attachEvent(this, proxy(that._release, that));\n });\n }\n Observable.fn.init.call(that);\n that.bind([\n 'press',\n 'release'\n ], options || {});\n },\n captureNext: function () {\n this.capture = true;\n },\n cancelCapture: function () {\n this.capture = false;\n },\n _press: function (e) {\n var that = this;\n that.trigger('press');\n if (that.capture) {\n e.preventDefault();\n }\n },\n _release: function (e) {\n var that = this;\n that.trigger('release');\n if (that.capture) {\n e.preventDefault();\n that.cancelCapture();\n }\n }\n });\n var PaneDimension = Observable.extend({\n init: function (options) {\n var that = this;\n Observable.fn.init.call(that);\n that.forcedEnabled = false;\n $.extend(that, options);\n that.scale = 1;\n if (that.horizontal) {\n that.measure = 'offsetWidth';\n that.scrollSize = 'scrollWidth';\n that.axis = 'x';\n } else {\n that.measure = 'offsetHeight';\n that.scrollSize = 'scrollHeight';\n that.axis = 'y';\n }\n },\n makeVirtual: function () {\n $.extend(this, {\n virtual: true,\n forcedEnabled: true,\n _virtualMin: 0,\n _virtualMax: 0\n });\n },\n virtualSize: function (min, max) {\n if (this._virtualMin !== min || this._virtualMax !== max) {\n this._virtualMin = min;\n this._virtualMax = max;\n this.update();\n }\n },\n outOfBounds: function (offset) {\n return offset > this.max || offset < this.min;\n },\n forceEnabled: function () {\n this.forcedEnabled = true;\n },\n getSize: function () {\n return this.container[0][this.measure];\n },\n getTotal: function () {\n return this.element[0][this.scrollSize];\n },\n rescale: function (scale) {\n this.scale = scale;\n },\n update: function (silent) {\n var that = this, total = that.virtual ? that._virtualMax : that.getTotal(), scaledTotal = total * that.scale, size = that.getSize();\n if (total === 0 && !that.forcedEnabled) {\n return;\n }\n that.max = that.virtual ? -that._virtualMin : 0;\n that.size = size;\n that.total = scaledTotal;\n that.min = Math.min(that.max, size - scaledTotal);\n that.minScale = size / total;\n that.centerOffset = (scaledTotal - size) / 2;\n that.enabled = that.forcedEnabled || scaledTotal > size;\n if (!silent) {\n that.trigger(CHANGE, that);\n }\n }\n });\n var PaneDimensions = Observable.extend({\n init: function (options) {\n var that = this;\n Observable.fn.init.call(that);\n that.x = new PaneDimension(extend({ horizontal: true }, options));\n that.y = new PaneDimension(extend({ horizontal: false }, options));\n that.container = options.container;\n that.forcedMinScale = options.minScale;\n that.maxScale = options.maxScale || 100;\n that.bind(CHANGE, options);\n },\n rescale: function (newScale) {\n this.x.rescale(newScale);\n this.y.rescale(newScale);\n this.refresh();\n },\n centerCoordinates: function () {\n return {\n x: Math.min(0, -this.x.centerOffset),\n y: Math.min(0, -this.y.centerOffset)\n };\n },\n refresh: function () {\n var that = this;\n that.x.update();\n that.y.update();\n that.enabled = that.x.enabled || that.y.enabled;\n that.minScale = that.forcedMinScale || Math.min(that.x.minScale, that.y.minScale);\n that.fitScale = Math.max(that.x.minScale, that.y.minScale);\n that.trigger(CHANGE);\n }\n });\n var PaneAxis = Observable.extend({\n init: function (options) {\n var that = this;\n extend(that, options);\n Observable.fn.init.call(that);\n },\n outOfBounds: function () {\n return this.dimension.outOfBounds(this.movable[this.axis]);\n },\n dragMove: function (delta) {\n var that = this, dimension = that.dimension, axis = that.axis, movable = that.movable, position = movable[axis] + delta;\n if (!dimension.enabled) {\n return;\n }\n if (position < dimension.min && delta < 0 || position > dimension.max && delta > 0) {\n delta *= that.resistance;\n }\n movable.translateAxis(axis, delta);\n that.trigger(CHANGE, that);\n }\n });\n var Pane = Class.extend({\n init: function (options) {\n var that = this, x, y, resistance, movable;\n extend(that, { elastic: true }, options);\n resistance = that.elastic ? 0.5 : 0;\n movable = that.movable;\n that.x = x = new PaneAxis({\n axis: 'x',\n dimension: that.dimensions.x,\n resistance: resistance,\n movable: movable\n });\n that.y = y = new PaneAxis({\n axis: 'y',\n dimension: that.dimensions.y,\n resistance: resistance,\n movable: movable\n });\n that.userEvents.bind([\n 'press',\n 'move',\n 'end',\n 'gesturestart',\n 'gesturechange'\n ], {\n gesturestart: function (e) {\n that.gesture = e;\n that.offset = that.dimensions.container.offset();\n },\n press: function (e) {\n if ($(e.event.target).closest('a').is('[data-navigate-on-press=true]')) {\n e.sender.cancel();\n }\n },\n gesturechange: function (e) {\n var previousGesture = that.gesture, previousCenter = previousGesture.center, center = e.center, scaleDelta = e.distance / previousGesture.distance, minScale = that.dimensions.minScale, maxScale = that.dimensions.maxScale, coordinates;\n if (movable.scale <= minScale && scaleDelta < 1) {\n scaleDelta += (1 - scaleDelta) * 0.8;\n }\n if (movable.scale * scaleDelta >= maxScale) {\n scaleDelta = maxScale / movable.scale;\n }\n var offsetX = movable.x + that.offset.left, offsetY = movable.y + that.offset.top;\n coordinates = {\n x: (offsetX - previousCenter.x) * scaleDelta + center.x - offsetX,\n y: (offsetY - previousCenter.y) * scaleDelta + center.y - offsetY\n };\n movable.scaleWith(scaleDelta);\n x.dragMove(coordinates.x);\n y.dragMove(coordinates.y);\n that.dimensions.rescale(movable.scale);\n that.gesture = e;\n e.preventDefault();\n },\n move: function (e) {\n if (e.event.target.tagName.match(/textarea|input/i)) {\n return;\n }\n if (x.dimension.enabled || y.dimension.enabled) {\n x.dragMove(e.x.delta);\n y.dragMove(e.y.delta);\n e.preventDefault();\n } else {\n e.touch.skip();\n }\n },\n end: function (e) {\n e.preventDefault();\n }\n });\n }\n });\n var TRANSFORM_STYLE = support.transitions.prefix + 'Transform', translate;\n if (support.hasHW3D) {\n translate = function (x, y, scale) {\n return 'translate3d(' + x + 'px,' + y + 'px,0) scale(' + scale + ')';\n };\n } else {\n translate = function (x, y, scale) {\n return 'translate(' + x + 'px,' + y + 'px) scale(' + scale + ')';\n };\n }\n var Movable = Observable.extend({\n init: function (element) {\n var that = this;\n Observable.fn.init.call(that);\n that.element = $(element);\n that.element[0].style.webkitTransformOrigin = 'left top';\n that.x = 0;\n that.y = 0;\n that.scale = 1;\n that._saveCoordinates(translate(that.x, that.y, that.scale));\n },\n translateAxis: function (axis, by) {\n this[axis] += by;\n this.refresh();\n },\n scaleTo: function (scale) {\n this.scale = scale;\n this.refresh();\n },\n scaleWith: function (scaleDelta) {\n this.scale *= scaleDelta;\n this.refresh();\n },\n translate: function (coordinates) {\n this.x += coordinates.x;\n this.y += coordinates.y;\n this.refresh();\n },\n moveAxis: function (axis, value) {\n this[axis] = value;\n this.refresh();\n },\n moveTo: function (coordinates) {\n extend(this, coordinates);\n this.refresh();\n },\n refresh: function () {\n var that = this, x = that.x, y = that.y, newCoordinates;\n if (that.round) {\n x = Math.round(x);\n y = Math.round(y);\n }\n newCoordinates = translate(x, y, that.scale);\n if (newCoordinates != that.coordinates) {\n if (kendo.support.browser.msie && kendo.support.browser.version < 10) {\n that.element[0].style.position = 'absolute';\n that.element[0].style.left = that.x + 'px';\n that.element[0].style.top = that.y + 'px';\n } else {\n that.element[0].style[TRANSFORM_STYLE] = newCoordinates;\n }\n that._saveCoordinates(newCoordinates);\n that.trigger(CHANGE);\n }\n },\n _saveCoordinates: function (coordinates) {\n this.coordinates = coordinates;\n }\n });\n function destroyDroppable(collection, widget) {\n var groupName = widget.options.group, droppables = collection[groupName], i;\n Widget.fn.destroy.call(widget);\n if (droppables.length > 1) {\n for (i = 0; i < droppables.length; i++) {\n if (droppables[i] == widget) {\n droppables.splice(i, 1);\n break;\n }\n }\n } else {\n droppables.length = 0;\n delete collection[groupName];\n }\n }\n var DropTarget = Widget.extend({\n init: function (element, options) {\n var that = this;\n Widget.fn.init.call(that, element, options);\n var group = that.options.group;\n if (!(group in dropTargets)) {\n dropTargets[group] = [that];\n } else {\n dropTargets[group].push(that);\n }\n },\n events: [\n DRAGENTER,\n DRAGLEAVE,\n DROP\n ],\n options: {\n name: 'DropTarget',\n group: 'default'\n },\n destroy: function () {\n destroyDroppable(dropTargets, this);\n },\n _trigger: function (eventName, e) {\n var that = this, draggable = draggables[that.options.group];\n if (draggable) {\n return that.trigger(eventName, extend({}, e.event, {\n draggable: draggable,\n dropTarget: e.dropTarget\n }));\n }\n },\n _over: function (e) {\n this._trigger(DRAGENTER, e);\n },\n _out: function (e) {\n this._trigger(DRAGLEAVE, e);\n },\n _drop: function (e) {\n var that = this, draggable = draggables[that.options.group];\n if (draggable) {\n draggable.dropped = !that._trigger(DROP, e);\n }\n }\n });\n DropTarget.destroyGroup = function (groupName) {\n var group = dropTargets[groupName] || dropAreas[groupName], i;\n if (group) {\n for (i = 0; i < group.length; i++) {\n Widget.fn.destroy.call(group[i]);\n }\n group.length = 0;\n delete dropTargets[groupName];\n delete dropAreas[groupName];\n }\n };\n DropTarget._cache = dropTargets;\n var DropTargetArea = DropTarget.extend({\n init: function (element, options) {\n var that = this;\n Widget.fn.init.call(that, element, options);\n var group = that.options.group;\n if (!(group in dropAreas)) {\n dropAreas[group] = [that];\n } else {\n dropAreas[group].push(that);\n }\n },\n destroy: function () {\n destroyDroppable(dropAreas, this);\n },\n options: {\n name: 'DropTargetArea',\n group: 'default',\n filter: null\n }\n });\n var Draggable = Widget.extend({\n init: function (element, options) {\n var that = this;\n Widget.fn.init.call(that, element, options);\n that._activated = false;\n that.userEvents = new UserEvents(that.element, {\n global: true,\n allowSelection: true,\n filter: that.options.filter,\n threshold: that.options.distance,\n start: proxy(that._start, that),\n hold: proxy(that._hold, that),\n move: proxy(that._drag, that),\n end: proxy(that._end, that),\n cancel: proxy(that._cancel, that),\n select: proxy(that._select, that)\n });\n if (kendo.support.touch) {\n that.element.find(that.options.filter).css('touch-action', 'none');\n }\n that._afterEndHandler = proxy(that._afterEnd, that);\n that._captureEscape = proxy(that._captureEscape, that);\n },\n events: [\n HOLD,\n DRAGSTART,\n DRAG,\n DRAGEND,\n DRAGCANCEL,\n HINTDESTROYED\n ],\n options: {\n name: 'Draggable',\n distance: kendo.support.touch ? 0 : 5,\n group: 'default',\n cursorOffset: null,\n axis: null,\n container: null,\n filter: null,\n ignore: null,\n holdToDrag: false,\n autoScroll: false,\n dropped: false\n },\n cancelHold: function () {\n this._activated = false;\n },\n _captureEscape: function (e) {\n var that = this;\n if (e.keyCode === kendo.keys.ESC) {\n that._trigger(DRAGCANCEL, { event: e });\n that.userEvents.cancel();\n }\n },\n _updateHint: function (e) {\n var that = this, coordinates, options = that.options, boundaries = that.boundaries, axis = options.axis, cursorOffset = that.options.cursorOffset;\n if (cursorOffset) {\n coordinates = {\n left: e.x.location + cursorOffset.left,\n top: e.y.location + cursorOffset.top\n };\n } else {\n that.hintOffset.left += e.x.delta;\n that.hintOffset.top += e.y.delta;\n coordinates = $.extend({}, that.hintOffset);\n }\n if (boundaries) {\n coordinates.top = within(coordinates.top, boundaries.y);\n coordinates.left = within(coordinates.left, boundaries.x);\n }\n if (axis === 'x') {\n delete coordinates.top;\n } else if (axis === 'y') {\n delete coordinates.left;\n }\n that.hint.css(coordinates);\n },\n _shouldIgnoreTarget: function (target) {\n var ignoreSelector = this.options.ignore;\n return ignoreSelector && $(target).is(ignoreSelector);\n },\n _select: function (e) {\n if (!this._shouldIgnoreTarget(e.event.target)) {\n e.preventDefault();\n }\n },\n _start: function (e) {\n var that = this, options = that.options, container = options.container ? $(options.container) : null, hint = options.hint;\n if (this._shouldIgnoreTarget(e.touch.initialTouch) || options.holdToDrag && !that._activated) {\n that.userEvents.cancel();\n return;\n }\n that.currentTarget = e.target;\n that.currentTargetOffset = getOffset(that.currentTarget);\n if (hint) {\n if (that.hint) {\n that.hint.stop(true, true).remove();\n }\n that.hint = kendo.isFunction(hint) ? $(hint.call(that, that.currentTarget)) : hint;\n var offset = getOffset(that.currentTarget);\n that.hintOffset = offset;\n that.hint.css({\n position: 'absolute',\n zIndex: 20000,\n left: offset.left,\n top: offset.top\n }).appendTo(document.body);\n that.angular('compile', function () {\n that.hint.removeAttr('ng-repeat');\n var scopeTarget = $(e.target);\n while (!scopeTarget.data('$$kendoScope') && scopeTarget.length) {\n scopeTarget = scopeTarget.parent();\n }\n return {\n elements: that.hint.get(),\n scopeFrom: scopeTarget.data('$$kendoScope')\n };\n });\n }\n draggables[options.group] = that;\n that.dropped = false;\n if (container) {\n that.boundaries = containerBoundaries(container, that.hint);\n }\n $(document).on(KEYUP, that._captureEscape);\n if (that._trigger(DRAGSTART, e)) {\n that.userEvents.cancel();\n that._afterEnd();\n }\n that.userEvents.capture();\n },\n _hold: function (e) {\n this.currentTarget = e.target;\n if (this._trigger(HOLD, e)) {\n this.userEvents.cancel();\n } else {\n this._activated = true;\n }\n },\n _drag: function (e) {\n e.preventDefault();\n var cursorElement = this._elementUnderCursor(e);\n if (this.options.autoScroll && this._cursorElement !== cursorElement) {\n this._scrollableParent = findScrollableParent(cursorElement);\n this._cursorElement = cursorElement;\n }\n this._lastEvent = e;\n this._processMovement(e, cursorElement);\n if (this.options.autoScroll) {\n if (this._scrollableParent[0]) {\n var velocity = autoScrollVelocity(e.x.location, e.y.location, scrollableViewPort(this._scrollableParent));\n this._scrollCompenstation = $.extend({}, this.hintOffset);\n this._scrollVelocity = velocity;\n if (velocity.y === 0 && velocity.x === 0) {\n clearInterval(this._scrollInterval);\n this._scrollInterval = null;\n } else if (!this._scrollInterval) {\n this._scrollInterval = setInterval($.proxy(this, '_autoScroll'), 50);\n }\n }\n }\n if (this.hint) {\n this._updateHint(e);\n }\n },\n _processMovement: function (e, cursorElement) {\n this._withDropTarget(cursorElement, function (target, targetElement) {\n if (!target) {\n if (lastDropTarget) {\n lastDropTarget._trigger(DRAGLEAVE, extend(e, { dropTarget: $(lastDropTarget.targetElement) }));\n lastDropTarget = null;\n }\n return;\n }\n if (lastDropTarget) {\n if (targetElement === lastDropTarget.targetElement) {\n return;\n }\n lastDropTarget._trigger(DRAGLEAVE, extend(e, { dropTarget: $(lastDropTarget.targetElement) }));\n }\n target._trigger(DRAGENTER, extend(e, { dropTarget: $(targetElement) }));\n lastDropTarget = extend(target, { targetElement: targetElement });\n });\n this._trigger(DRAG, extend(e, {\n dropTarget: lastDropTarget,\n elementUnderCursor: cursorElement\n }));\n },\n _autoScroll: function () {\n var parent = this._scrollableParent[0], velocity = this._scrollVelocity, compensation = this._scrollCompenstation;\n if (!parent) {\n return;\n }\n var cursorElement = this._elementUnderCursor(this._lastEvent);\n this._processMovement(this._lastEvent, cursorElement);\n var yIsScrollable, xIsScrollable;\n var isRootNode = parent === scrollableRoot()[0];\n if (isRootNode) {\n yIsScrollable = document.body.scrollHeight > $window.height();\n xIsScrollable = document.body.scrollWidth > $window.width();\n } else {\n yIsScrollable = parent.offsetHeight <= parent.scrollHeight;\n xIsScrollable = parent.offsetWidth <= parent.scrollWidth;\n }\n var yDelta = parent.scrollTop + velocity.y;\n var yInBounds = yIsScrollable && yDelta > 0 && yDelta < parent.scrollHeight;\n var xDelta = parent.scrollLeft + velocity.x;\n var xInBounds = xIsScrollable && xDelta > 0 && xDelta < parent.scrollWidth;\n if (yInBounds) {\n parent.scrollTop += velocity.y;\n }\n if (xInBounds) {\n parent.scrollLeft += velocity.x;\n }\n if (this.hint && isRootNode && (xInBounds || yInBounds)) {\n if (yInBounds) {\n compensation.top += velocity.y;\n }\n if (xInBounds) {\n compensation.left += velocity.x;\n }\n this.hint.css(compensation);\n }\n },\n _end: function (e) {\n this._withDropTarget(this._elementUnderCursor(e), function (target, targetElement) {\n if (target) {\n target._drop(extend({}, e, { dropTarget: $(targetElement) }));\n lastDropTarget = null;\n }\n });\n this._cancel(this._trigger(DRAGEND, e));\n },\n _cancel: function (isDefaultPrevented) {\n var that = this;\n that._scrollableParent = null;\n this._cursorElement = null;\n clearInterval(this._scrollInterval);\n that._activated = false;\n if (that.hint && !that.dropped) {\n setTimeout(function () {\n that.hint.stop(true, true);\n if (isDefaultPrevented) {\n that._afterEndHandler();\n } else {\n that.hint.animate(that.currentTargetOffset, 'fast', that._afterEndHandler);\n }\n }, 0);\n } else {\n that._afterEnd();\n }\n },\n _trigger: function (eventName, e) {\n var that = this;\n return that.trigger(eventName, extend({}, e.event, {\n x: e.x,\n y: e.y,\n currentTarget: that.currentTarget,\n initialTarget: e.touch ? e.touch.initialTouch : null,\n dropTarget: e.dropTarget,\n elementUnderCursor: e.elementUnderCursor\n }));\n },\n _elementUnderCursor: function (e) {\n var target = elementUnderCursor(e), hint = this.hint;\n if (hint && contains(hint[0], target)) {\n hint.hide();\n target = elementUnderCursor(e);\n if (!target) {\n target = elementUnderCursor(e);\n }\n hint.show();\n }\n return target;\n },\n _withDropTarget: function (element, callback) {\n var result, group = this.options.group, targets = dropTargets[group], areas = dropAreas[group];\n if (targets && targets.length || areas && areas.length) {\n result = checkTarget(element, targets, areas);\n if (result) {\n callback(result.target, result.targetElement);\n } else {\n callback();\n }\n }\n },\n destroy: function () {\n var that = this;\n Widget.fn.destroy.call(that);\n that._afterEnd();\n that.userEvents.destroy();\n this._scrollableParent = null;\n this._cursorElement = null;\n clearInterval(this._scrollInterval);\n that.currentTarget = null;\n },\n _afterEnd: function () {\n var that = this;\n if (that.hint) {\n that.hint.remove();\n }\n delete draggables[that.options.group];\n that.trigger('destroy');\n that.trigger(HINTDESTROYED);\n $(document).off(KEYUP, that._captureEscape);\n }\n });\n kendo.ui.plugin(DropTarget);\n kendo.ui.plugin(DropTargetArea);\n kendo.ui.plugin(Draggable);\n kendo.TapCapture = TapCapture;\n kendo.containerBoundaries = containerBoundaries;\n extend(kendo.ui, {\n Pane: Pane,\n PaneDimensions: PaneDimensions,\n Movable: Movable\n });\n function scrollableViewPort(element) {\n var root = scrollableRoot()[0], offset, top, left;\n if (element[0] === root) {\n top = root.scrollTop;\n left = root.scrollLeft;\n return {\n top: top,\n left: left,\n bottom: top + $window.height(),\n right: left + $window.width()\n };\n } else {\n offset = element.offset();\n offset.bottom = offset.top + element.height();\n offset.right = offset.left + element.width();\n return offset;\n }\n }\n function scrollableRoot() {\n return $(kendo.support.browser.edge || kendo.support.browser.safari ? document.body : document.documentElement);\n }\n function findScrollableParent(element) {\n var root = scrollableRoot();\n if (!element || element === document.body || element === document.documentElement) {\n return root;\n }\n var parent = $(element)[0];\n while (parent && !kendo.isScrollable(parent) && parent !== document.body) {\n parent = parent.parentNode;\n }\n if (parent === document.body) {\n return root;\n }\n return $(parent);\n }\n function autoScrollVelocity(mouseX, mouseY, rect) {\n var velocity = {\n x: 0,\n y: 0\n };\n var AUTO_SCROLL_AREA = 50;\n if (mouseX - rect.left < AUTO_SCROLL_AREA) {\n velocity.x = -(AUTO_SCROLL_AREA - (mouseX - rect.left));\n } else if (rect.right - mouseX < AUTO_SCROLL_AREA) {\n velocity.x = AUTO_SCROLL_AREA - (rect.right - mouseX);\n }\n if (mouseY - rect.top < AUTO_SCROLL_AREA) {\n velocity.y = -(AUTO_SCROLL_AREA - (mouseY - rect.top));\n } else if (rect.bottom - mouseY < AUTO_SCROLL_AREA) {\n velocity.y = AUTO_SCROLL_AREA - (rect.bottom - mouseY);\n }\n return velocity;\n }\n kendo.ui.Draggable.utils = {\n autoScrollVelocity: autoScrollVelocity,\n scrollableViewPort: scrollableViewPort,\n findScrollableParent: findScrollableParent\n };\n }(window.kendo.jQuery));\n return window.kendo;\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('kendo.mobile.scroller', [\n 'kendo.fx',\n 'kendo.draganddrop'\n ], f);\n}(function () {\n var __meta__ = {\n id: 'mobile.scroller',\n name: 'Scroller',\n category: 'mobile',\n description: 'The Kendo Mobile Scroller widget enables touch friendly kinetic scrolling for the contents of a given DOM element.',\n depends: [\n 'fx',\n 'draganddrop'\n ]\n };\n (function ($, undefined) {\n var kendo = window.kendo, mobile = kendo.mobile, fx = kendo.effects, ui = mobile.ui, proxy = $.proxy, extend = $.extend, Widget = ui.Widget, Class = kendo.Class, Movable = kendo.ui.Movable, Pane = kendo.ui.Pane, PaneDimensions = kendo.ui.PaneDimensions, Transition = fx.Transition, Animation = fx.Animation, abs = Math.abs, SNAPBACK_DURATION = 500, SCROLLBAR_OPACITY = 0.7, FRICTION = 0.96, VELOCITY_MULTIPLIER = 10, MAX_VELOCITY = 55, OUT_OF_BOUNDS_FRICTION = 0.5, ANIMATED_SCROLLER_PRECISION = 5, RELEASECLASS = 'km-scroller-release', REFRESHCLASS = 'km-scroller-refresh', PULL = 'pull', CHANGE = 'change', RESIZE = 'resize', SCROLL = 'scroll', MOUSE_WHEEL_ID = 2;\n var ZoomSnapBack = Animation.extend({\n init: function (options) {\n var that = this;\n Animation.fn.init.call(that);\n extend(that, options);\n that.userEvents.bind('gestureend', proxy(that.start, that));\n that.tapCapture.bind('press', proxy(that.cancel, that));\n },\n enabled: function () {\n return this.movable.scale < this.dimensions.minScale;\n },\n done: function () {\n return this.dimensions.minScale - this.movable.scale < 0.01;\n },\n tick: function () {\n var movable = this.movable;\n movable.scaleWith(1.1);\n this.dimensions.rescale(movable.scale);\n },\n onEnd: function () {\n var movable = this.movable;\n movable.scaleTo(this.dimensions.minScale);\n this.dimensions.rescale(movable.scale);\n }\n });\n var DragInertia = Animation.extend({\n init: function (options) {\n var that = this;\n Animation.fn.init.call(that);\n extend(that, options, {\n transition: new Transition({\n axis: options.axis,\n movable: options.movable,\n onEnd: function () {\n that._end();\n }\n })\n });\n that.tapCapture.bind('press', function () {\n that.cancel();\n });\n that.userEvents.bind('end', proxy(that.start, that));\n that.userEvents.bind('gestureend', proxy(that.start, that));\n that.userEvents.bind('tap', proxy(that.onEnd, that));\n },\n onCancel: function () {\n this.transition.cancel();\n },\n freeze: function (location) {\n var that = this;\n that.cancel();\n that._moveTo(location);\n },\n onEnd: function () {\n var that = this;\n if (that.paneAxis.outOfBounds()) {\n that._snapBack();\n } else {\n that._end();\n }\n },\n done: function () {\n return abs(this.velocity) < 1;\n },\n start: function (e) {\n var that = this, velocity;\n if (!that.dimension.enabled) {\n return;\n }\n if (that.paneAxis.outOfBounds()) {\n if (that.transition._started) {\n that.transition.cancel();\n that.velocity = Math.min(e.touch[that.axis].velocity * that.velocityMultiplier, MAX_VELOCITY);\n Animation.fn.start.call(that);\n } else {\n that._snapBack();\n }\n } else {\n velocity = e.touch.id === MOUSE_WHEEL_ID ? 0 : e.touch[that.axis].velocity;\n that.velocity = Math.max(Math.min(velocity * that.velocityMultiplier, MAX_VELOCITY), -MAX_VELOCITY);\n that.tapCapture.captureNext();\n Animation.fn.start.call(that);\n }\n },\n tick: function () {\n var that = this, dimension = that.dimension, friction = that.paneAxis.outOfBounds() ? OUT_OF_BOUNDS_FRICTION : that.friction, delta = that.velocity *= friction, location = that.movable[that.axis] + delta;\n if (!that.elastic && dimension.outOfBounds(location)) {\n location = Math.max(Math.min(location, dimension.max), dimension.min);\n that.velocity = 0;\n }\n that.movable.moveAxis(that.axis, location);\n },\n _end: function () {\n this.tapCapture.cancelCapture();\n this.end();\n },\n _snapBack: function () {\n var that = this, dimension = that.dimension, snapBack = that.movable[that.axis] > dimension.max ? dimension.max : dimension.min;\n that._moveTo(snapBack);\n },\n _moveTo: function (location) {\n this.transition.moveTo({\n location: location,\n duration: SNAPBACK_DURATION,\n ease: Transition.easeOutExpo\n });\n }\n });\n var AnimatedScroller = Animation.extend({\n init: function (options) {\n var that = this;\n kendo.effects.Animation.fn.init.call(this);\n extend(that, options, {\n origin: {},\n destination: {},\n offset: {}\n });\n },\n tick: function () {\n this._updateCoordinates();\n this.moveTo(this.origin);\n },\n done: function () {\n return abs(this.offset.y) < ANIMATED_SCROLLER_PRECISION && abs(this.offset.x) < ANIMATED_SCROLLER_PRECISION;\n },\n onEnd: function () {\n this.moveTo(this.destination);\n if (this.callback) {\n this.callback.call();\n }\n },\n setCoordinates: function (from, to) {\n this.offset = {};\n this.origin = from;\n this.destination = to;\n },\n setCallback: function (callback) {\n if (callback && kendo.isFunction(callback)) {\n this.callback = callback;\n } else {\n callback = undefined;\n }\n },\n _updateCoordinates: function () {\n this.offset = {\n x: (this.destination.x - this.origin.x) / 4,\n y: (this.destination.y - this.origin.y) / 4\n };\n this.origin = {\n y: this.origin.y + this.offset.y,\n x: this.origin.x + this.offset.x\n };\n }\n });\n var ScrollBar = Class.extend({\n init: function (options) {\n var that = this, horizontal = options.axis === 'x', element = $('
          ');\n extend(that, options, {\n element: element,\n elementSize: 0,\n movable: new Movable(element),\n scrollMovable: options.movable,\n alwaysVisible: options.alwaysVisible,\n size: horizontal ? 'width' : 'height'\n });\n that.scrollMovable.bind(CHANGE, proxy(that.refresh, that));\n that.container.append(element);\n if (options.alwaysVisible) {\n that.show();\n }\n },\n refresh: function () {\n var that = this, axis = that.axis, dimension = that.dimension, paneSize = dimension.size, scrollMovable = that.scrollMovable, sizeRatio = paneSize / dimension.total, position = Math.round(-scrollMovable[axis] * sizeRatio), size = Math.round(paneSize * sizeRatio);\n if (sizeRatio >= 1) {\n this.element.css('display', 'none');\n } else {\n this.element.css('display', '');\n }\n if (position + size > paneSize) {\n size = paneSize - position;\n } else if (position < 0) {\n size += position;\n position = 0;\n }\n if (that.elementSize != size) {\n that.element.css(that.size, size + 'px');\n that.elementSize = size;\n }\n that.movable.moveAxis(axis, position);\n },\n show: function () {\n this.element.css({\n opacity: SCROLLBAR_OPACITY,\n visibility: 'visible'\n });\n },\n hide: function () {\n if (!this.alwaysVisible) {\n this.element.css({ opacity: 0 });\n }\n }\n });\n var Scroller = Widget.extend({\n init: function (element, options) {\n var that = this;\n Widget.fn.init.call(that, element, options);\n element = that.element;\n that._native = that.options.useNative && kendo.support.hasNativeScrolling;\n if (that._native) {\n element.addClass('km-native-scroller').prepend('
          ');\n extend(that, {\n scrollElement: element,\n fixedContainer: element.children().first()\n });\n return;\n }\n element.css('overflow', 'hidden').addClass('km-scroll-wrapper').wrapInner('
          ').prepend('
          ');\n var inner = element.children().eq(1), tapCapture = new kendo.TapCapture(element), movable = new Movable(inner), dimensions = new PaneDimensions({\n element: inner,\n container: element,\n forcedEnabled: that.options.zoom\n }), avoidScrolling = this.options.avoidScrolling, userEvents = new kendo.UserEvents(element, {\n touchAction: 'pan-y',\n fastTap: true,\n allowSelection: true,\n preventDragEvent: true,\n captureUpIfMoved: true,\n multiTouch: that.options.zoom,\n supportDoubleTap: that.options.supportDoubleTap,\n start: function (e) {\n dimensions.refresh();\n var velocityX = abs(e.x.velocity), velocityY = abs(e.y.velocity), horizontalSwipe = velocityX * 2 >= velocityY, originatedFromFixedContainer = $.contains(that.fixedContainer[0], e.event.target), verticalSwipe = velocityY * 2 >= velocityX;\n if (!originatedFromFixedContainer && !avoidScrolling(e) && that.enabled && (dimensions.x.enabled && horizontalSwipe || dimensions.y.enabled && verticalSwipe)) {\n userEvents.capture();\n } else {\n userEvents.cancel();\n }\n }\n }), pane = new Pane({\n movable: movable,\n dimensions: dimensions,\n userEvents: userEvents,\n elastic: that.options.elastic\n }), zoomSnapBack = new ZoomSnapBack({\n movable: movable,\n dimensions: dimensions,\n userEvents: userEvents,\n tapCapture: tapCapture\n }), animatedScroller = new AnimatedScroller({\n moveTo: function (coordinates) {\n that.scrollTo(coordinates.x, coordinates.y);\n }\n });\n movable.bind(CHANGE, function () {\n that.scrollTop = -movable.y;\n that.scrollLeft = -movable.x;\n that.trigger(SCROLL, {\n scrollTop: that.scrollTop,\n scrollLeft: that.scrollLeft\n });\n });\n if (that.options.mousewheelScrolling) {\n element.on('DOMMouseScroll mousewheel', proxy(this, '_wheelScroll'));\n }\n extend(that, {\n movable: movable,\n dimensions: dimensions,\n zoomSnapBack: zoomSnapBack,\n animatedScroller: animatedScroller,\n userEvents: userEvents,\n pane: pane,\n tapCapture: tapCapture,\n pulled: false,\n enabled: true,\n scrollElement: inner,\n scrollTop: 0,\n scrollLeft: 0,\n fixedContainer: element.children().first()\n });\n that._initAxis('x');\n that._initAxis('y');\n that._wheelEnd = function () {\n that._wheel = false;\n that.userEvents.end(0, that._wheelY);\n };\n dimensions.refresh();\n if (that.options.pullToRefresh) {\n that._initPullToRefresh();\n }\n },\n _wheelScroll: function (e) {\n if (e.ctrlKey) {\n return;\n }\n if (!this._wheel) {\n this._wheel = true;\n this._wheelY = 0;\n this.userEvents.press(0, this._wheelY);\n }\n clearTimeout(this._wheelTimeout);\n this._wheelTimeout = setTimeout(this._wheelEnd, 50);\n var delta = kendo.wheelDeltaY(e);\n if (delta) {\n this._wheelY += delta;\n this.userEvents.move(0, this._wheelY);\n }\n e.preventDefault();\n },\n makeVirtual: function () {\n this.dimensions.y.makeVirtual();\n },\n virtualSize: function (min, max) {\n this.dimensions.y.virtualSize(min, max);\n },\n height: function () {\n return this.dimensions.y.size;\n },\n scrollHeight: function () {\n return this.scrollElement[0].scrollHeight;\n },\n scrollWidth: function () {\n return this.scrollElement[0].scrollWidth;\n },\n options: {\n name: 'Scroller',\n zoom: false,\n pullOffset: 140,\n visibleScrollHints: false,\n elastic: true,\n useNative: false,\n mousewheelScrolling: true,\n avoidScrolling: function () {\n return false;\n },\n pullToRefresh: false,\n messages: {\n pullTemplate: 'Pull to refresh',\n releaseTemplate: 'Release to refresh',\n refreshTemplate: 'Refreshing'\n }\n },\n events: [\n PULL,\n SCROLL,\n RESIZE\n ],\n _resize: function () {\n if (!this._native) {\n this.contentResized();\n }\n },\n setOptions: function (options) {\n var that = this;\n Widget.fn.setOptions.call(that, options);\n if (options.pullToRefresh) {\n that._initPullToRefresh();\n }\n },\n reset: function () {\n if (this._native) {\n this.scrollElement.scrollTop(0);\n } else {\n this.movable.moveTo({\n x: 0,\n y: 0\n });\n this._scale(1);\n }\n },\n contentResized: function () {\n this.dimensions.refresh();\n if (this.pane.x.outOfBounds()) {\n this.movable.moveAxis('x', this.dimensions.x.min);\n }\n if (this.pane.y.outOfBounds()) {\n this.movable.moveAxis('y', this.dimensions.y.min);\n }\n },\n zoomOut: function () {\n var dimensions = this.dimensions;\n dimensions.refresh();\n this._scale(dimensions.fitScale);\n this.movable.moveTo(dimensions.centerCoordinates());\n },\n enable: function () {\n this.enabled = true;\n },\n disable: function () {\n this.enabled = false;\n },\n scrollTo: function (x, y) {\n if (this._native) {\n this.scrollElement.scrollLeft(abs(x));\n this.scrollElement.scrollTop(abs(y));\n } else {\n this.dimensions.refresh();\n this.movable.moveTo({\n x: x,\n y: y\n });\n }\n },\n animatedScrollTo: function (x, y, callback) {\n var from, to;\n if (this._native) {\n this.scrollTo(x, y);\n } else {\n from = {\n x: this.movable.x,\n y: this.movable.y\n };\n to = {\n x: x,\n y: y\n };\n this.animatedScroller.setCoordinates(from, to);\n this.animatedScroller.setCallback(callback);\n this.animatedScroller.start();\n }\n },\n pullHandled: function () {\n var that = this;\n that.refreshHint.removeClass(REFRESHCLASS);\n that.hintContainer.html(that.pullTemplate({}));\n that.yinertia.onEnd();\n that.xinertia.onEnd();\n that.userEvents.cancel();\n },\n destroy: function () {\n Widget.fn.destroy.call(this);\n if (this.userEvents) {\n this.userEvents.destroy();\n }\n },\n _scale: function (scale) {\n this.dimensions.rescale(scale);\n this.movable.scaleTo(scale);\n },\n _initPullToRefresh: function () {\n var that = this;\n that.dimensions.y.forceEnabled();\n that.pullTemplate = kendo.template(that.options.messages.pullTemplate);\n that.releaseTemplate = kendo.template(that.options.messages.releaseTemplate);\n that.refreshTemplate = kendo.template(that.options.messages.refreshTemplate);\n that.scrollElement.prepend('' + that.pullTemplate({}) + '');\n that.refreshHint = that.scrollElement.children().first();\n that.hintContainer = that.refreshHint.children('.km-template');\n that.pane.y.bind('change', proxy(that._paneChange, that));\n that.userEvents.bind('end', proxy(that._dragEnd, that));\n },\n _dragEnd: function () {\n var that = this;\n if (!that.pulled) {\n return;\n }\n that.pulled = false;\n that.refreshHint.removeClass(RELEASECLASS).addClass(REFRESHCLASS);\n that.hintContainer.html(that.refreshTemplate({}));\n that.yinertia.freeze(that.options.pullOffset / 2);\n that.trigger('pull');\n },\n _paneChange: function () {\n var that = this;\n if (that.movable.y / OUT_OF_BOUNDS_FRICTION > that.options.pullOffset) {\n if (!that.pulled) {\n that.pulled = true;\n that.refreshHint.removeClass(REFRESHCLASS).addClass(RELEASECLASS);\n that.hintContainer.html(that.releaseTemplate({}));\n }\n } else if (that.pulled) {\n that.pulled = false;\n that.refreshHint.removeClass(RELEASECLASS);\n that.hintContainer.html(that.pullTemplate({}));\n }\n },\n _initAxis: function (axis) {\n var that = this, movable = that.movable, dimension = that.dimensions[axis], tapCapture = that.tapCapture, paneAxis = that.pane[axis], scrollBar = new ScrollBar({\n axis: axis,\n movable: movable,\n dimension: dimension,\n container: that.element,\n alwaysVisible: that.options.visibleScrollHints\n });\n dimension.bind(CHANGE, function () {\n scrollBar.refresh();\n });\n paneAxis.bind(CHANGE, function () {\n scrollBar.show();\n });\n that[axis + 'inertia'] = new DragInertia({\n axis: axis,\n paneAxis: paneAxis,\n movable: movable,\n tapCapture: tapCapture,\n userEvents: that.userEvents,\n dimension: dimension,\n elastic: that.options.elastic,\n friction: that.options.friction || FRICTION,\n velocityMultiplier: that.options.velocityMultiplier || VELOCITY_MULTIPLIER,\n end: function () {\n scrollBar.hide();\n that.trigger('scrollEnd', {\n axis: axis,\n scrollTop: that.scrollTop,\n scrollLeft: that.scrollLeft\n });\n }\n });\n }\n });\n ui.plugin(Scroller);\n }(window.kendo.jQuery));\n return window.kendo;\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('kendo.virtuallist', ['kendo.data'], f);\n}(function () {\n var __meta__ = {\n id: 'virtuallist',\n name: 'VirtualList',\n category: 'framework',\n depends: ['data'],\n hidden: true\n };\n (function ($, undefined) {\n var kendo = window.kendo, ui = kendo.ui, Widget = ui.Widget, DataBoundWidget = ui.DataBoundWidget, proxy = $.proxy, percentageUnitsRegex = /^\\d+(\\.\\d+)?%$/i, WRAPPER = 'k-virtual-wrap', VIRTUALLIST = 'k-virtual-list', CONTENT = 'k-virtual-content', LIST = 'k-list', HEADER = 'k-group-header', VIRTUALITEM = 'k-virtual-item', ITEM = 'k-item', HEIGHTCONTAINER = 'k-height-container', GROUPITEM = 'k-group', SELECTED = 'k-state-selected', FOCUSED = 'k-state-focused', HOVER = 'k-state-hover', CHANGE = 'change', CLICK = 'click', LISTBOUND = 'listBound', ITEMCHANGE = 'itemChange', ACTIVATE = 'activate', DEACTIVATE = 'deactivate', VIRTUAL_LIST_NS = '.VirtualList';\n function lastFrom(array) {\n return array[array.length - 1];\n }\n function toArray(value) {\n return value instanceof Array ? value : [value];\n }\n function isPrimitive(dataItem) {\n return typeof dataItem === 'string' || typeof dataItem === 'number' || typeof dataItem === 'boolean';\n }\n function getItemCount(screenHeight, listScreens, itemHeight) {\n return Math.ceil(screenHeight * listScreens / itemHeight);\n }\n function appendChild(parent, className, tagName) {\n var element = document.createElement(tagName || 'div');\n if (className) {\n element.className = className;\n }\n parent.appendChild(element);\n return element;\n }\n function getDefaultItemHeight() {\n var mockList = $('
          '), lineHeight;\n mockList.css({\n position: 'absolute',\n left: '-200000px',\n visibility: 'hidden'\n });\n mockList.appendTo(document.body);\n lineHeight = parseFloat(kendo.getComputedStyles(mockList.find('.k-item')[0], ['line-height'])['line-height']);\n mockList.remove();\n return lineHeight;\n }\n function bufferSizes(screenHeight, listScreens, opposite) {\n return {\n down: screenHeight * opposite,\n up: screenHeight * (listScreens - 1 - opposite)\n };\n }\n function listValidator(options, screenHeight) {\n var downThreshold = (options.listScreens - 1 - options.threshold) * screenHeight;\n var upThreshold = options.threshold * screenHeight;\n return function (list, scrollTop, lastScrollTop) {\n if (scrollTop > lastScrollTop) {\n return scrollTop - list.top < downThreshold;\n } else {\n return list.top === 0 || scrollTop - list.top > upThreshold;\n }\n };\n }\n function scrollCallback(element, callback) {\n return function (force) {\n return callback(element.scrollTop, force);\n };\n }\n function syncList(reorder) {\n return function (list, force) {\n reorder(list.items, list.index, force);\n return list;\n };\n }\n function position(element, y) {\n if (kendo.support.browser.msie && kendo.support.browser.version < 10) {\n element.style.top = y + 'px';\n } else {\n element.style.webkitTransform = 'translateY(' + y + 'px)';\n element.style.transform = 'translateY(' + y + 'px)';\n }\n }\n function map2(callback, templates) {\n return function (arr1, arr2) {\n for (var i = 0, len = arr1.length; i < len; i++) {\n callback(arr1[i], arr2[i], templates);\n if (arr2[i].item) {\n this.trigger(ITEMCHANGE, {\n item: $(arr1[i]),\n data: arr2[i].item,\n ns: kendo.ui\n });\n }\n }\n };\n }\n function reshift(items, diff) {\n var range;\n if (diff > 0) {\n range = items.splice(0, diff);\n items.push.apply(items, range);\n } else {\n range = items.splice(diff, -diff);\n items.unshift.apply(items, range);\n }\n return range;\n }\n function render(element, data, templates) {\n var itemTemplate = templates.template;\n element = $(element);\n if (!data.item) {\n itemTemplate = templates.placeholderTemplate;\n }\n if (data.index === 0 && this.header && data.group) {\n this.header.html(templates.fixedGroupTemplate(data.group));\n }\n this.angular('cleanup', function () {\n return { elements: [element] };\n });\n element.attr('data-uid', data.item ? data.item.uid : '').attr('data-offset-index', data.index);\n if (this.options.columns && this.options.columns.length && data.item) {\n element.html(renderColumns(this.options, data.item, templates));\n } else {\n element.html(itemTemplate(data.item || {}));\n }\n element.toggleClass(FOCUSED, data.current);\n element.toggleClass(SELECTED, data.selected);\n element.toggleClass('k-first', data.newGroup);\n element.toggleClass('k-last', data.isLastGroupedItem);\n element.toggleClass('k-loading-item', !data.item);\n if (data.index !== 0 && data.newGroup) {\n $('
          ').appendTo(element).html(templates.groupTemplate(data.group));\n }\n if (data.top !== undefined) {\n position(element[0], data.top);\n }\n this.angular('compile', function () {\n return {\n elements: [element],\n data: [{\n dataItem: data.item,\n group: data.group,\n newGroup: data.newGroup\n }]\n };\n });\n }\n function renderColumns(options, dataItem, templates) {\n var item = '';\n for (var i = 0; i < options.columns.length; i++) {\n var currentWidth = options.columns[i].width;\n var currentWidthInt = parseInt(currentWidth, 10);\n var widthStyle = '';\n if (currentWidth) {\n widthStyle += 'style=\\'width:';\n widthStyle += currentWidthInt;\n widthStyle += percentageUnitsRegex.test(currentWidth) ? '%' : 'px';\n widthStyle += ';\\'';\n }\n item += '';\n item += templates['column' + i](dataItem);\n item += '';\n }\n return item;\n }\n function mapChangedItems(selected, itemsToMatch) {\n var itemsLength = itemsToMatch.length;\n var selectedLength = selected.length;\n var dataItem;\n var found;\n var i, j;\n var changed = [];\n var unchanged = [];\n if (selectedLength) {\n for (i = 0; i < selectedLength; i++) {\n dataItem = selected[i];\n found = false;\n for (j = 0; j < itemsLength; j++) {\n if (dataItem === itemsToMatch[j]) {\n found = true;\n changed.push({\n index: i,\n item: dataItem\n });\n break;\n }\n }\n if (!found) {\n unchanged.push(dataItem);\n }\n }\n }\n return {\n changed: changed,\n unchanged: unchanged\n };\n }\n function isActivePromise(promise) {\n return promise && promise.state() !== 'resolved';\n }\n var VirtualList = DataBoundWidget.extend({\n init: function (element, options) {\n var that = this;\n that.bound(false);\n that._fetching = false;\n Widget.fn.init.call(that, element, options);\n if (!that.options.itemHeight) {\n that.options.itemHeight = getDefaultItemHeight();\n }\n options = that.options;\n that.element.addClass(LIST + ' ' + VIRTUALLIST).attr('role', 'listbox');\n that.content = that.element.wrap('
          ').parent();\n that.wrapper = that.content.wrap('
          ').parent();\n that.header = that.content.before('
          ').prev();\n if (options.columns && options.columns.length) {\n that.element.removeClass(LIST);\n }\n that.element.on('mouseenter' + VIRTUAL_LIST_NS, 'li:not(.k-loading-item)', function () {\n $(this).addClass(HOVER);\n }).on('mouseleave' + VIRTUAL_LIST_NS, 'li', function () {\n $(this).removeClass(HOVER);\n });\n that._values = toArray(that.options.value);\n that._selectedDataItems = [];\n that._selectedIndexes = [];\n that._rangesList = {};\n that._promisesList = [];\n that._optionID = kendo.guid();\n that._templates();\n that.setDataSource(options.dataSource);\n that.content.on('scroll' + VIRTUAL_LIST_NS, kendo.throttle(function () {\n that._renderItems();\n that._triggerListBound();\n }, options.delay));\n that._selectable();\n },\n options: {\n name: 'VirtualList',\n autoBind: true,\n delay: 100,\n height: null,\n listScreens: 4,\n threshold: 0.5,\n itemHeight: null,\n oppositeBuffer: 1,\n type: 'flat',\n selectable: false,\n value: [],\n dataValueField: null,\n template: '#:data#',\n placeholderTemplate: 'loading...',\n groupTemplate: '#:data#',\n fixedGroupTemplate: '#:data#',\n mapValueTo: 'index',\n valueMapper: null\n },\n events: [\n CHANGE,\n CLICK,\n LISTBOUND,\n ITEMCHANGE,\n ACTIVATE,\n DEACTIVATE\n ],\n setOptions: function (options) {\n Widget.fn.setOptions.call(this, options);\n if (this._selectProxy && this.options.selectable === false) {\n this.element.off(CLICK, '.' + VIRTUALITEM, this._selectProxy);\n } else if (!this._selectProxy && this.options.selectable) {\n this._selectable();\n }\n this._templates();\n this.refresh();\n },\n items: function () {\n return $(this._items);\n },\n destroy: function () {\n this.wrapper.off(VIRTUAL_LIST_NS);\n this.dataSource.unbind(CHANGE, this._refreshHandler);\n Widget.fn.destroy.call(this);\n },\n setDataSource: function (source) {\n var that = this;\n var dataSource = source || {};\n var value;\n dataSource = $.isArray(dataSource) ? { data: dataSource } : dataSource;\n dataSource = kendo.data.DataSource.create(dataSource);\n if (that.dataSource) {\n that.dataSource.unbind(CHANGE, that._refreshHandler);\n that._clean();\n that.bound(false);\n that._deferValueSet = true;\n value = that.value();\n that.value([]);\n that.mute(function () {\n that.value(value);\n });\n } else {\n that._refreshHandler = $.proxy(that.refresh, that);\n }\n that.dataSource = dataSource.bind(CHANGE, that._refreshHandler);\n that.setDSFilter(dataSource.filter());\n if (dataSource.view().length !== 0) {\n that.refresh();\n } else if (that.options.autoBind) {\n dataSource.fetch();\n }\n },\n skip: function () {\n return this.dataSource.currentRangeStart();\n },\n _triggerListBound: function () {\n var that = this;\n var skip = that.skip();\n if (that.bound() && !that._selectingValue && that._skip !== skip) {\n that._skip = skip;\n that.trigger(LISTBOUND);\n }\n },\n _getValues: function (dataItems) {\n var getter = this._valueGetter;\n return $.map(dataItems, function (dataItem) {\n return getter(dataItem);\n });\n },\n _highlightSelectedItems: function () {\n for (var i = 0; i < this._selectedDataItems.length; i++) {\n var item = this._getElementByDataItem(this._selectedDataItems[i]);\n if (item.length) {\n item.addClass(SELECTED);\n }\n }\n },\n refresh: function (e) {\n var that = this;\n var action = e && e.action;\n var isItemChange = action === 'itemchange';\n var filtered = this.isFiltered();\n var result;\n if (that._mute) {\n return;\n }\n that._deferValueSet = false;\n if (!that._fetching) {\n if (filtered) {\n that.focus(0);\n }\n that._createList();\n if (!action && that._values.length && !filtered && !that.options.skipUpdateOnBind && !that._emptySearch) {\n that._selectingValue = true;\n that.bound(true);\n that.value(that._values, true).done(function () {\n that._selectingValue = false;\n that._triggerListBound();\n });\n } else {\n that.bound(true);\n that._highlightSelectedItems();\n that._triggerListBound();\n }\n } else {\n if (that._renderItems) {\n that._renderItems(true);\n }\n that._triggerListBound();\n }\n if (isItemChange || action === 'remove') {\n result = mapChangedItems(that._selectedDataItems, e.items);\n if (result.changed.length) {\n if (isItemChange) {\n that.trigger('selectedItemChange', { items: result.changed });\n } else {\n that.value(that._getValues(result.unchanged));\n }\n }\n }\n that._fetching = false;\n },\n removeAt: function (position) {\n this._selectedIndexes.splice(position, 1);\n this._values.splice(position, 1);\n return {\n position: position,\n dataItem: this._selectedDataItems.splice(position, 1)[0]\n };\n },\n setValue: function (value) {\n this._values = toArray(value);\n },\n value: function (value, _forcePrefetch) {\n var that = this;\n if (value === undefined) {\n return that._values.slice();\n }\n if (value === null) {\n value = [];\n }\n value = toArray(value);\n if (!that._valueDeferred || that._valueDeferred.state() === 'resolved') {\n that._valueDeferred = $.Deferred();\n }\n var shouldClear = that.options.selectable === 'multiple' && that.select().length && value.length;\n if (shouldClear || !value.length) {\n that.select(-1);\n }\n that._values = value;\n if (that.bound() && !that._mute && !that._deferValueSet || _forcePrefetch) {\n that._prefetchByValue(value);\n }\n return that._valueDeferred;\n },\n _checkValuesOrder: function (value) {\n if (this._removedAddedIndexes && this._removedAddedIndexes.length === value.length) {\n var newValue = this._removedAddedIndexes.slice();\n this._removedAddedIndexes = null;\n return newValue;\n }\n return value;\n },\n _prefetchByValue: function (value) {\n var that = this, dataView = that._dataView, valueGetter = that._valueGetter, mapValueTo = that.options.mapValueTo, item, match = false, forSelection = [];\n for (var i = 0; i < value.length; i++) {\n for (var idx = 0; idx < dataView.length; idx++) {\n item = dataView[idx].item;\n if (item) {\n match = isPrimitive(item) ? value[i] === item : value[i] === valueGetter(item);\n if (match) {\n forSelection.push(dataView[idx].index);\n }\n }\n }\n }\n if (forSelection.length === value.length) {\n that._values = [];\n that.select(forSelection);\n return;\n }\n if (typeof that.options.valueMapper === 'function') {\n that.options.valueMapper({\n value: this.options.selectable === 'multiple' ? value : value[0],\n success: function (response) {\n if (mapValueTo === 'index') {\n that.mapValueToIndex(response);\n } else if (mapValueTo === 'dataItem') {\n that.mapValueToDataItem(response);\n }\n }\n });\n } else {\n if (!that.value()[0]) {\n that.select([-1]);\n } else {\n that._selectingValue = false;\n that._triggerListBound();\n }\n }\n },\n mapValueToIndex: function (indexes) {\n if (indexes === undefined || indexes === -1 || indexes === null) {\n indexes = [];\n } else {\n indexes = toArray(indexes);\n }\n if (!indexes.length) {\n indexes = [-1];\n } else {\n var removed = this._deselect([]).removed;\n if (removed.length) {\n this._triggerChange(removed, []);\n }\n }\n this.select(indexes);\n },\n mapValueToDataItem: function (dataItems) {\n var removed, added;\n if (dataItems === undefined || dataItems === null) {\n dataItems = [];\n } else {\n dataItems = toArray(dataItems);\n }\n if (!dataItems.length) {\n this.select([-1]);\n } else {\n removed = $.map(this._selectedDataItems, function (item, index) {\n return {\n index: index,\n dataItem: item\n };\n });\n added = $.map(dataItems, function (item, index) {\n return {\n index: index,\n dataItem: item\n };\n });\n this._selectedDataItems = dataItems;\n this._selectedIndexes = [];\n for (var i = 0; i < this._selectedDataItems.length; i++) {\n var item = this._getElementByDataItem(this._selectedDataItems[i]);\n this._selectedIndexes.push(this._getIndecies(item)[0]);\n item.addClass(SELECTED);\n }\n this._triggerChange(removed, added);\n if (this._valueDeferred) {\n this._valueDeferred.resolve();\n }\n }\n },\n deferredRange: function (index) {\n var dataSource = this.dataSource;\n var take = this.itemCount;\n var ranges = this._rangesList;\n var result = $.Deferred();\n var defs = [];\n var low = Math.floor(index / take) * take;\n var high = Math.ceil(index / take) * take;\n var pages = high === low ? [high] : [\n low,\n high\n ];\n $.each(pages, function (_, skip) {\n var end = skip + take;\n var existingRange = ranges[skip];\n var deferred;\n if (!existingRange || existingRange.end !== end) {\n deferred = $.Deferred();\n ranges[skip] = {\n end: end,\n deferred: deferred\n };\n dataSource._multiplePrefetch(skip, take, function () {\n deferred.resolve();\n });\n } else {\n deferred = existingRange.deferred;\n }\n defs.push(deferred);\n });\n $.when.apply($, defs).then(function () {\n result.resolve();\n });\n return result;\n },\n prefetch: function (indexes) {\n var that = this, take = this.itemCount, isEmptyList = !that._promisesList.length;\n if (!isActivePromise(that._activeDeferred)) {\n that._activeDeferred = $.Deferred();\n that._promisesList = [];\n }\n $.each(indexes, function (_, index) {\n that._promisesList.push(that.deferredRange(that._getSkip(index, take)));\n });\n if (isEmptyList) {\n $.when.apply($, that._promisesList).done(function () {\n that._promisesList = [];\n that._activeDeferred.resolve();\n });\n }\n return that._activeDeferred;\n },\n _findDataItem: function (view, index) {\n var group;\n if (this.options.type === 'group') {\n for (var i = 0; i < view.length; i++) {\n group = view[i].items;\n if (group.length <= index) {\n index = index - group.length;\n } else {\n return group[index];\n }\n }\n }\n return view[index];\n },\n _getRange: function (skip, take) {\n return this.dataSource._findRange(skip, Math.min(skip + take, this.dataSource.total()));\n },\n dataItemByIndex: function (index) {\n var that = this;\n var take = that.itemCount;\n var skip = that._getSkip(index, take);\n var view = this._getRange(skip, take);\n if (!that._getRange(skip, take).length) {\n return null;\n }\n if (that.options.type === 'group') {\n kendo.ui.progress($(that.wrapper), true);\n that.mute(function () {\n that.dataSource.range(skip, take, function () {\n kendo.ui.progress($(that.wrapper), false);\n });\n view = that.dataSource.view();\n });\n }\n return that._findDataItem(view, [index - skip]);\n },\n selectedDataItems: function () {\n return this._selectedDataItems.slice();\n },\n scrollWith: function (value) {\n this.content.scrollTop(this.content.scrollTop() + value);\n },\n scrollTo: function (y) {\n this.content.scrollTop(y);\n },\n scrollToIndex: function (index) {\n this.scrollTo(index * this.options.itemHeight);\n },\n focus: function (candidate) {\n var element, index, data, current, itemHeight = this.options.itemHeight, id = this._optionID, triggerEvent = true;\n if (candidate === undefined) {\n current = this.element.find('.' + FOCUSED);\n return current.length ? current : null;\n }\n if (typeof candidate === 'function') {\n data = this.dataSource.flatView();\n for (var idx = 0; idx < data.length; idx++) {\n if (candidate(data[idx])) {\n candidate = idx;\n break;\n }\n }\n }\n if (candidate instanceof Array) {\n candidate = lastFrom(candidate);\n }\n if (isNaN(candidate)) {\n element = $(candidate);\n index = parseInt($(element).attr('data-offset-index'), 10);\n } else {\n index = candidate;\n element = this._getElementByIndex(index);\n }\n if (index === -1) {\n this.element.find('.' + FOCUSED).removeClass(FOCUSED);\n this._focusedIndex = undefined;\n return;\n }\n if (element.length) {\n if (element.hasClass(FOCUSED)) {\n triggerEvent = false;\n }\n if (this._focusedIndex !== undefined) {\n current = this._getElementByIndex(this._focusedIndex);\n current.removeClass(FOCUSED).removeAttr('id');\n if (triggerEvent) {\n this.trigger(DEACTIVATE);\n }\n }\n this._focusedIndex = index;\n element.addClass(FOCUSED).attr('id', id);\n var position = this._getElementLocation(index);\n if (position === 'top') {\n this.scrollTo(index * itemHeight);\n } else if (position === 'bottom') {\n this.scrollTo(index * itemHeight + itemHeight - this._screenHeight);\n } else if (position === 'outScreen') {\n this.scrollTo(index * itemHeight);\n }\n if (triggerEvent) {\n this.trigger(ACTIVATE);\n }\n } else {\n this._focusedIndex = index;\n this.items().removeClass(FOCUSED);\n this.scrollToIndex(index);\n }\n },\n focusIndex: function () {\n return this._focusedIndex;\n },\n focusFirst: function () {\n this.scrollTo(0);\n this.focus(0);\n },\n focusLast: function () {\n var lastIndex = this.dataSource.total();\n this.scrollTo(this.heightContainer.offsetHeight);\n this.focus(lastIndex - 1);\n },\n focusPrev: function () {\n var index = this._focusedIndex;\n var current;\n if (!isNaN(index) && index > 0) {\n index -= 1;\n this.focus(index);\n current = this.focus();\n if (current && current.hasClass('k-loading-item')) {\n index += 1;\n this.focus(index);\n }\n return index;\n } else {\n index = this.dataSource.total() - 1;\n this.focus(index);\n return index;\n }\n },\n focusNext: function () {\n var index = this._focusedIndex;\n var lastIndex = this.dataSource.total() - 1;\n var current;\n if (!isNaN(index) && index < lastIndex) {\n index += 1;\n this.focus(index);\n current = this.focus();\n if (current && current.hasClass('k-loading-item')) {\n index -= 1;\n this.focus(index);\n }\n return index;\n } else {\n index = 0;\n this.focus(index);\n return index;\n }\n },\n _triggerChange: function (removed, added) {\n removed = removed || [];\n added = added || [];\n if (removed.length || added.length) {\n this.trigger(CHANGE, {\n removed: removed,\n added: added\n });\n }\n },\n select: function (candidate) {\n var that = this, indices, initialIndices, singleSelection = that.options.selectable !== 'multiple', prefetchStarted = isActivePromise(that._activeDeferred), filtered = this.isFiltered(), isAlreadySelected, deferred, result, removed = [];\n if (candidate === undefined) {\n return that._selectedIndexes.slice();\n }\n if (!that._selectDeferred || that._selectDeferred.state() === 'resolved') {\n that._selectDeferred = $.Deferred();\n }\n indices = that._getIndecies(candidate);\n isAlreadySelected = singleSelection && !filtered && lastFrom(indices) === lastFrom(this._selectedIndexes);\n removed = that._deselectCurrentValues(indices);\n if (removed.length || !indices.length || isAlreadySelected) {\n that._triggerChange(removed);\n if (that._valueDeferred) {\n that._valueDeferred.resolve().promise();\n }\n return that._selectDeferred.resolve().promise();\n }\n if (indices.length === 1 && indices[0] === -1) {\n indices = [];\n }\n initialIndices = indices;\n result = that._deselect(indices);\n removed = result.removed;\n indices = result.indices;\n if (singleSelection) {\n prefetchStarted = false;\n if (indices.length) {\n indices = [lastFrom(indices)];\n }\n }\n var done = function () {\n var added = that._select(indices);\n if (initialIndices.length === indices.length || singleSelection) {\n that.focus(indices);\n }\n that._triggerChange(removed, added);\n if (that._valueDeferred) {\n that._valueDeferred.resolve();\n }\n that._selectDeferred.resolve();\n };\n deferred = that.prefetch(indices);\n if (!prefetchStarted) {\n if (deferred) {\n deferred.done(done);\n } else {\n done();\n }\n }\n return that._selectDeferred.promise();\n },\n bound: function (bound) {\n if (bound === undefined) {\n return this._listCreated;\n }\n this._listCreated = bound;\n },\n mute: function (callback) {\n this._mute = true;\n proxy(callback(), this);\n this._mute = false;\n },\n setDSFilter: function (filter) {\n this._lastDSFilter = $.extend({}, filter);\n },\n isFiltered: function () {\n if (!this._lastDSFilter) {\n this.setDSFilter(this.dataSource.filter());\n }\n return !kendo.data.Query.compareFilters(this.dataSource.filter(), this._lastDSFilter);\n },\n skipUpdate: $.noop,\n _getElementByIndex: function (index) {\n return this.items().filter(function (idx, element) {\n return index === parseInt($(element).attr('data-offset-index'), 10);\n });\n },\n _getElementByDataItem: function (dataItem) {\n var dataView = this._dataView, valueGetter = this._valueGetter, element, match;\n for (var i = 0; i < dataView.length; i++) {\n match = dataView[i].item && isPrimitive(dataView[i].item) ? dataView[i].item === dataItem : dataView[i].item && dataItem && valueGetter(dataView[i].item) == valueGetter(dataItem);\n if (match) {\n element = dataView[i];\n break;\n }\n }\n return element ? this._getElementByIndex(element.index) : $();\n },\n _clean: function () {\n this.result = undefined;\n this._lastScrollTop = undefined;\n this._skip = undefined;\n $(this.heightContainer).remove();\n this.heightContainer = undefined;\n this.element.empty();\n },\n _height: function () {\n var hasData = !!this.dataSource.view().length, height = this.options.height, itemHeight = this.options.itemHeight, total = this.dataSource.total();\n if (!hasData) {\n height = 0;\n } else if (height / itemHeight > total) {\n height = total * itemHeight;\n }\n return height;\n },\n setScreenHeight: function () {\n var height = this._height();\n this.content.height(height);\n this._screenHeight = height;\n },\n screenHeight: function () {\n return this._screenHeight;\n },\n _getElementLocation: function (index) {\n var scrollTop = this.content.scrollTop(), screenHeight = this._screenHeight, itemHeight = this.options.itemHeight, yPosition = index * itemHeight, yDownPostion = yPosition + itemHeight, screenEnd = scrollTop + screenHeight, position;\n if (yPosition === scrollTop - itemHeight || yDownPostion > scrollTop && yPosition < scrollTop) {\n position = 'top';\n } else if (yPosition === screenEnd || yPosition < screenEnd && screenEnd < yDownPostion) {\n position = 'bottom';\n } else if (yPosition >= scrollTop && yPosition <= scrollTop + (screenHeight - itemHeight)) {\n position = 'inScreen';\n } else {\n position = 'outScreen';\n }\n return position;\n },\n _templates: function () {\n var options = this.options;\n var templates = {\n template: options.template,\n placeholderTemplate: options.placeholderTemplate,\n groupTemplate: options.groupTemplate,\n fixedGroupTemplate: options.fixedGroupTemplate\n };\n if (options.columns) {\n for (var i = 0; i < options.columns.length; i++) {\n var currentColumn = options.columns[i];\n var templateText = currentColumn.field ? currentColumn.field.toString() : 'text';\n templates['column' + i] = currentColumn.template || '#: ' + templateText + '#';\n }\n }\n for (var key in templates) {\n if (typeof templates[key] !== 'function') {\n templates[key] = kendo.template(templates[key] || '');\n }\n }\n this.templates = templates;\n },\n _generateItems: function (element, count) {\n var items = [], item, itemHeight = this.options.itemHeight + 'px';\n while (count-- > 0) {\n item = document.createElement('li');\n item.tabIndex = -1;\n item.className = VIRTUALITEM + ' ' + ITEM;\n item.setAttribute('role', 'option');\n item.style.height = itemHeight;\n item.style.minHeight = itemHeight;\n element.appendChild(item);\n items.push(item);\n }\n return items;\n },\n _saveInitialRanges: function () {\n var ranges = this.dataSource._ranges;\n var deferred = $.Deferred();\n deferred.resolve();\n this._rangesList = {};\n for (var i = 0; i < ranges.length; i++) {\n this._rangesList[ranges[i].start] = {\n end: ranges[i].end,\n deferred: deferred\n };\n }\n },\n _createList: function () {\n var that = this, content = that.content.get(0), options = that.options, dataSource = that.dataSource;\n if (that.bound()) {\n that._clean();\n }\n that._saveInitialRanges();\n that._buildValueGetter();\n that.setScreenHeight();\n that.itemCount = getItemCount(that._screenHeight, options.listScreens, options.itemHeight);\n if (that.itemCount > dataSource.total()) {\n that.itemCount = dataSource.total();\n }\n that._items = that._generateItems(that.element[0], that.itemCount);\n that._setHeight(options.itemHeight * dataSource.total());\n that.options.type = (dataSource.group() || []).length ? 'group' : 'flat';\n if (that.options.type === 'flat') {\n that.header.hide();\n } else {\n that.header.show();\n }\n that.getter = that._getter(function () {\n that._renderItems(true);\n });\n that._onScroll = function (scrollTop, force) {\n var getList = that._listItems(that.getter);\n return that._fixedHeader(scrollTop, getList(scrollTop, force));\n };\n that._renderItems = that._whenChanged(scrollCallback(content, that._onScroll), syncList(that._reorderList(that._items, $.proxy(render, that))));\n that._renderItems();\n that._calculateGroupPadding(that._screenHeight);\n that._calculateColumnsHeaderPadding();\n },\n _setHeight: function (height) {\n var currentHeight, heightContainer = this.heightContainer;\n if (!heightContainer) {\n heightContainer = this.heightContainer = appendChild(this.content[0], HEIGHTCONTAINER);\n } else {\n currentHeight = heightContainer.offsetHeight;\n }\n if (height !== currentHeight) {\n heightContainer.innerHTML = '';\n while (height > 0) {\n var padHeight = Math.min(height, 250000);\n appendChild(heightContainer).style.height = padHeight + 'px';\n height -= padHeight;\n }\n }\n },\n _getter: function () {\n var lastRequestedRange = null, dataSource = this.dataSource, lastRangeStart = dataSource.skip(), type = this.options.type, pageSize = this.itemCount, flatGroups = {};\n if (dataSource.pageSize() < pageSize) {\n this.mute(function () {\n dataSource.pageSize(pageSize);\n });\n }\n return function (index, rangeStart) {\n var that = this;\n if (!dataSource.inRange(rangeStart, pageSize)) {\n if (lastRequestedRange !== rangeStart) {\n lastRequestedRange = rangeStart;\n lastRangeStart = rangeStart;\n if (that._getterDeferred) {\n that._getterDeferred.reject();\n }\n that._getterDeferred = that.deferredRange(rangeStart);\n that._getterDeferred.then(function () {\n var firstItemIndex = that._indexConstraint(that.content[0].scrollTop);\n that._getterDeferred = null;\n if (rangeStart <= firstItemIndex && firstItemIndex <= rangeStart + pageSize) {\n that._fetching = true;\n dataSource.range(rangeStart, pageSize);\n }\n });\n }\n return null;\n } else {\n if (lastRangeStart !== rangeStart) {\n this.mute(function () {\n dataSource.range(rangeStart, pageSize);\n lastRangeStart = rangeStart;\n });\n }\n var result;\n if (type === 'group') {\n if (!flatGroups[rangeStart]) {\n var flatGroup = flatGroups[rangeStart] = [];\n var groups = dataSource.view();\n for (var i = 0, len = groups.length; i < len; i++) {\n var group = groups[i];\n for (var j = 0, groupLength = group.items.length; j < groupLength; j++) {\n flatGroup.push({\n item: group.items[j],\n group: group.value\n });\n }\n }\n }\n result = flatGroups[rangeStart][index - rangeStart];\n } else {\n result = dataSource.view()[index - rangeStart];\n }\n return result;\n }\n };\n },\n _fixedHeader: function (scrollTop, list) {\n var group = this.currentVisibleGroup, itemHeight = this.options.itemHeight, firstVisibleDataItemIndex = Math.floor((scrollTop - list.top) / itemHeight), firstVisibleDataItem = list.items[firstVisibleDataItemIndex];\n if (firstVisibleDataItem && firstVisibleDataItem.item) {\n var firstVisibleGroup = firstVisibleDataItem.group;\n if (firstVisibleGroup !== group) {\n var fixedGroupText = firstVisibleGroup || '';\n this.header.html(this.templates.fixedGroupTemplate(fixedGroupText));\n this.currentVisibleGroup = firstVisibleGroup;\n }\n }\n return list;\n },\n _itemMapper: function (item, index, value) {\n var listType = this.options.type, itemHeight = this.options.itemHeight, currentIndex = this._focusedIndex, selected = false, current = false, newGroup = false, group = null, match = false, valueGetter = this._valueGetter;\n if (listType === 'group') {\n if (item) {\n newGroup = index === 0 || this._currentGroup !== false && this._currentGroup !== item.group;\n this._currentGroup = item.group;\n }\n group = item ? item.group : null;\n item = item ? item.item : null;\n }\n if (this.options.mapValueTo === 'dataItem' && this._selectedDataItems.length && item) {\n for (var i = 0; i < this._selectedDataItems.length; i++) {\n match = valueGetter(this._selectedDataItems[i]) === valueGetter(item);\n if (match) {\n selected = true;\n break;\n }\n }\n } else if (!this.isFiltered() && value.length && item) {\n for (var j = 0; j < value.length; j++) {\n match = isPrimitive(item) ? value[j] === item : value[j] === valueGetter(item);\n if (match) {\n value.splice(j, 1);\n selected = true;\n break;\n }\n }\n }\n if (currentIndex === index) {\n current = true;\n }\n return {\n item: item ? item : null,\n group: group,\n newGroup: newGroup,\n selected: selected,\n current: current,\n index: index,\n top: index * itemHeight\n };\n },\n _range: function (index) {\n var itemCount = this.itemCount, value = this._values.slice(), items = [], item;\n this._view = {};\n this._currentGroup = false;\n for (var i = index, length = index + itemCount; i < length; i++) {\n item = this._itemMapper(this.getter(i, index), i, value);\n if (items[items.length - 1]) {\n items[items.length - 1].isLastGroupedItem = item.newGroup;\n }\n items.push(item);\n this._view[item.index] = item;\n }\n this._dataView = items;\n return items;\n },\n _getDataItemsCollection: function (scrollTop, lastScrollTop) {\n var items = this._range(this._listIndex(scrollTop, lastScrollTop));\n return {\n index: items.length ? items[0].index : 0,\n top: items.length ? items[0].top : 0,\n items: items\n };\n },\n _listItems: function () {\n var screenHeight = this._screenHeight, options = this.options;\n var theValidator = listValidator(options, screenHeight);\n return $.proxy(function (value, force) {\n var result = this.result, lastScrollTop = this._lastScrollTop;\n if (force || !result || !theValidator(result, value, lastScrollTop)) {\n result = this._getDataItemsCollection(value, lastScrollTop);\n }\n this._lastScrollTop = value;\n this.result = result;\n return result;\n }, this);\n },\n _whenChanged: function (getter, callback) {\n var current;\n return function (force) {\n var theNew = getter(force);\n if (theNew !== current) {\n current = theNew;\n callback(theNew, force);\n }\n };\n },\n _reorderList: function (list, reorder) {\n var that = this;\n var length = list.length;\n var currentOffset = -Infinity;\n reorder = $.proxy(map2(reorder, this.templates), this);\n return function (list2, offset, force) {\n var diff = offset - currentOffset;\n var range, range2;\n if (force || Math.abs(diff) >= length) {\n range = list;\n range2 = list2;\n } else {\n range = reshift(list, diff);\n range2 = diff > 0 ? list2.slice(-diff) : list2.slice(0, -diff);\n }\n reorder(range, range2, that.bound());\n currentOffset = offset;\n };\n },\n _bufferSizes: function () {\n var options = this.options;\n return bufferSizes(this._screenHeight, options.listScreens, options.oppositeBuffer);\n },\n _indexConstraint: function (position) {\n var itemCount = this.itemCount, itemHeight = this.options.itemHeight, total = this.dataSource.total();\n return Math.min(Math.max(total - itemCount, 0), Math.max(0, Math.floor(position / itemHeight)));\n },\n _listIndex: function (scrollTop, lastScrollTop) {\n var buffers = this._bufferSizes(), position;\n position = scrollTop - (scrollTop > lastScrollTop ? buffers.down : buffers.up);\n return this._indexConstraint(position);\n },\n _selectable: function () {\n if (this.options.selectable) {\n this._selectProxy = $.proxy(this, '_clickHandler');\n this.element.on(CLICK + VIRTUAL_LIST_NS, '.' + VIRTUALITEM, this._selectProxy);\n }\n },\n getElementIndex: function (element) {\n if (!(element instanceof jQuery)) {\n return undefined;\n }\n return parseInt(element.attr('data-offset-index'), 10);\n },\n _getIndecies: function (candidate) {\n var result = [], data;\n if (typeof candidate === 'function') {\n data = this.dataSource.flatView();\n for (var idx = 0; idx < data.length; idx++) {\n if (candidate(data[idx])) {\n result.push(idx);\n break;\n }\n }\n }\n if (typeof candidate === 'number') {\n result.push(candidate);\n }\n var elementIndex = this.getElementIndex(candidate);\n if (!isNaN(elementIndex)) {\n result.push(elementIndex);\n }\n if (candidate instanceof Array) {\n result = candidate;\n }\n return result;\n },\n _deselect: function (indices) {\n var removed = [], selectedIndex, dataItem, selectedIndexes = this._selectedIndexes, selectedDataItems = this._selectedDataItems, position = 0, selectable = this.options.selectable, removedindexesCounter = 0, valueGetter = this._valueGetter, item, match, result = null;\n indices = indices.slice();\n if (selectable === true || !indices.length) {\n for (var idx = 0; idx < selectedIndexes.length; idx++) {\n if (selectedIndexes[idx] !== undefined) {\n this._getElementByIndex(selectedIndexes[idx]).removeClass(SELECTED);\n } else if (selectedDataItems[idx]) {\n this._getElementByDataItem(selectedDataItems[idx]).removeClass(SELECTED);\n }\n removed.push({\n index: selectedIndexes[idx],\n position: idx,\n dataItem: selectedDataItems[idx]\n });\n }\n this._values = [];\n this._selectedDataItems = [];\n this._selectedIndexes = [];\n } else if (selectable === 'multiple') {\n for (var i = 0; i < indices.length; i++) {\n result = null;\n position = $.inArray(indices[i], selectedIndexes);\n dataItem = this.dataItemByIndex(indices[i]);\n if (position === -1 && dataItem) {\n for (var j = 0; j < selectedDataItems.length; j++) {\n match = isPrimitive(dataItem) ? selectedDataItems[j] === dataItem : valueGetter(selectedDataItems[j]) === valueGetter(dataItem);\n if (match) {\n item = this._getElementByIndex(indices[i]);\n result = this._deselectSingleItem(item, j, indices[i], removedindexesCounter);\n }\n }\n } else {\n selectedIndex = selectedIndexes[position];\n if (selectedIndex !== undefined) {\n item = this._getElementByIndex(selectedIndex);\n result = this._deselectSingleItem(item, position, selectedIndex, removedindexesCounter);\n }\n }\n if (result) {\n indices.splice(i, 1);\n removed.push(result);\n removedindexesCounter++;\n i--;\n }\n }\n }\n return {\n indices: indices,\n removed: removed\n };\n },\n _deselectSingleItem: function (item, position, selectedIndex, removedindexesCounter) {\n var dataItem;\n if (!item.hasClass('k-state-selected')) {\n return;\n }\n item.removeClass(SELECTED);\n this._values.splice(position, 1);\n this._selectedIndexes.splice(position, 1);\n dataItem = this._selectedDataItems.splice(position, 1)[0];\n return {\n index: selectedIndex,\n position: position + removedindexesCounter,\n dataItem: dataItem\n };\n },\n _deselectCurrentValues: function (indices) {\n var children = this.element[0].children;\n var value, index, position;\n var values = this._values;\n var removed = [];\n var idx = 0;\n var j;\n if (this.options.selectable !== 'multiple' || !this.isFiltered()) {\n return [];\n }\n if (indices[0] === -1) {\n $(children).removeClass('k-state-selected');\n removed = $.map(this._selectedDataItems.slice(0), function (dataItem, idx) {\n return {\n dataItem: dataItem,\n position: idx\n };\n });\n this._selectedIndexes = [];\n this._selectedDataItems = [];\n this._values = [];\n return removed;\n }\n for (; idx < indices.length; idx++) {\n position = -1;\n index = indices[idx];\n if (this.dataItemByIndex(index)) {\n value = this._valueGetter(this.dataItemByIndex(index));\n }\n for (j = 0; j < values.length; j++) {\n if (value == values[j]) {\n position = j;\n break;\n }\n }\n if (position > -1) {\n removed.push(this.removeAt(position));\n $(children[index]).removeClass('k-state-selected');\n }\n }\n return removed;\n },\n _getSkip: function (index, take) {\n var page = index < take ? 1 : Math.floor(index / take) + 1;\n return (page - 1) * take;\n },\n _select: function (indexes) {\n var that = this, singleSelection = this.options.selectable !== 'multiple', dataSource = this.dataSource, dataItem, oldSkip, take = this.itemCount, valueGetter = this._valueGetter, added = [];\n if (singleSelection) {\n that._selectedIndexes = [];\n that._selectedDataItems = [];\n that._values = [];\n }\n oldSkip = dataSource.skip();\n $.each(indexes, function (_, index) {\n var skip = that._getSkip(index, take);\n that.mute(function () {\n dataSource.range(skip, take);\n dataItem = that._findDataItem(dataSource.view(), [index - skip]);\n that._selectedIndexes.push(index);\n that._selectedDataItems.push(dataItem);\n that._values.push(isPrimitive(dataItem) ? dataItem : valueGetter(dataItem));\n added.push({\n index: index,\n dataItem: dataItem\n });\n that._getElementByIndex(index).addClass(SELECTED);\n dataSource.range(oldSkip, take);\n });\n });\n that._values = that._checkValuesOrder(that._values);\n return added;\n },\n _clickHandler: function (e) {\n var item = $(e.currentTarget);\n if (!e.isDefaultPrevented() && item.attr('data-uid')) {\n this.trigger(CLICK, { item: item });\n }\n },\n _buildValueGetter: function () {\n this._valueGetter = kendo.getter(this.options.dataValueField);\n },\n _calculateGroupPadding: function (height) {\n var firstItem = this.items().first(), groupHeader = this.header, padding = 0;\n if (groupHeader[0] && groupHeader[0].style.display !== 'none') {\n if (height !== 'auto') {\n padding = kendo.support.scrollbar();\n }\n padding += parseFloat(firstItem.css('border-right-width'), 10) + parseFloat(firstItem.children('.k-group').css('right'), 10);\n groupHeader.css('padding-right', padding);\n }\n },\n _calculateColumnsHeaderPadding: function () {\n if (this.options.columns && this.options.columns.length) {\n var isRtl = kendo.support.isRtl(this.wrapper);\n var scrollbar = kendo.support.scrollbar();\n var columnsHeader = this.content.parent().parent().find('.k-grid-header');\n var total = this.dataSource.total();\n columnsHeader.css(isRtl ? 'padding-left' : 'padding-right', total ? scrollbar : 0);\n }\n }\n });\n kendo.ui.VirtualList = VirtualList;\n kendo.ui.plugin(VirtualList);\n }(window.kendo.jQuery));\n return window.kendo;\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('kendo.combobox', [\n 'kendo.list',\n 'kendo.mobile.scroller',\n 'kendo.virtuallist'\n ], f);\n}(function () {\n var __meta__ = {\n id: 'combobox',\n name: 'ComboBox',\n category: 'web',\n description: 'The ComboBox widget allows the selection from pre-defined values or entering a new value.',\n depends: ['list'],\n features: [\n {\n id: 'mobile-scroller',\n name: 'Mobile scroller',\n description: 'Support for kinetic scrolling in mobile device',\n depends: ['mobile.scroller']\n },\n {\n id: 'virtualization',\n name: 'VirtualList',\n description: 'Support for virtualization',\n depends: ['virtuallist']\n }\n ]\n };\n (function ($, undefined) {\n var kendo = window.kendo, ui = kendo.ui, List = ui.List, Select = ui.Select, caret = kendo.caret, support = kendo.support, placeholderSupported = support.placeholder, activeElement = kendo._activeElement, keys = kendo.keys, ns = '.kendoComboBox', nsFocusEvent = ns + 'FocusEvent', CLICK = 'click' + ns, MOUSEDOWN = 'mousedown' + ns, DISABLED = 'disabled', READONLY = 'readonly', CHANGE = 'change', LOADING = 'k-i-loading', DEFAULT = 'k-state-default', FOCUSED = 'k-state-focused', STATEDISABLED = 'k-state-disabled', ARIA_DISABLED = 'aria-disabled', AUTOCOMPLETEVALUE = 'off', STATE_FILTER = 'filter', STATE_ACCEPT = 'accept', STATE_REBIND = 'rebind', HOVEREVENTS = 'mouseenter' + ns + ' mouseleave' + ns, proxy = $.proxy, newLineRegEx = /(\\r\\n|\\n|\\r)/gm;\n var ComboBox = Select.extend({\n init: function (element, options) {\n var that = this, text, disabled;\n that.ns = ns;\n options = $.isArray(options) ? { dataSource: options } : options;\n Select.fn.init.call(that, element, options);\n options = that.options;\n element = that.element.on('focus' + ns, proxy(that._focusHandler, that));\n options.placeholder = options.placeholder || element.attr('placeholder');\n that._reset();\n that._wrapper();\n that._input();\n that._clearButton();\n that._tabindex(that.input);\n that._popup();\n that._dataSource();\n that._ignoreCase();\n that._enable();\n that._attachFocusEvents();\n that._oldIndex = that.selectedIndex = -1;\n that._aria();\n that._initialIndex = options.index;\n that.requireValueMapper(that.options);\n that._initList();\n that._cascade();\n if (options.autoBind) {\n that._filterSource();\n } else {\n text = options.text;\n if (!text && that._isSelect) {\n text = element.children(':selected').text();\n }\n if (text) {\n that._setText(text);\n }\n }\n if (!text) {\n that._placeholder();\n }\n disabled = $(that.element).parents('fieldset').is(':disabled');\n if (disabled) {\n that.enable(false);\n }\n kendo.notify(that);\n that._toggleCloseVisibility();\n },\n options: {\n name: 'ComboBox',\n enabled: true,\n index: -1,\n text: null,\n value: null,\n autoBind: true,\n delay: 200,\n dataTextField: '',\n dataValueField: '',\n minLength: 1,\n enforceMinLength: false,\n height: 200,\n highlightFirst: true,\n filter: 'none',\n placeholder: '',\n suggest: false,\n cascadeFrom: '',\n cascadeFromField: '',\n cascadeFromParentField: '',\n ignoreCase: true,\n animation: {},\n virtual: false,\n template: null,\n groupTemplate: '#:data#',\n fixedGroupTemplate: '#:data#',\n clearButton: true,\n syncValueAndText: true,\n autoWidth: false,\n popup: null\n },\n events: [\n 'open',\n 'close',\n CHANGE,\n 'select',\n 'filtering',\n 'dataBinding',\n 'dataBound',\n 'cascade',\n 'set'\n ],\n setOptions: function (options) {\n var listOptions = this._listOptions(options);\n Select.fn.setOptions.call(this, options);\n this.listView.setOptions(listOptions);\n this._accessors();\n this._aria();\n this._clearButton();\n },\n destroy: function () {\n var that = this;\n that.input.off(ns);\n that.input.off(nsFocusEvent);\n that.element.off(ns);\n that.wrapper.off(ns);\n that._inputWrapper.off(ns);\n clearTimeout(that._pasteTimeout);\n that._arrow.off(CLICK + ' ' + MOUSEDOWN);\n that._clear.off(CLICK + ' ' + MOUSEDOWN);\n Select.fn.destroy.call(that);\n },\n _change: function () {\n var that = this;\n var text = that.text();\n var hasText = text && text !== that._oldText && text !== that.options.placeholder;\n var index = that.selectedIndex;\n var isCustom = index === -1;\n if (!that.options.syncValueAndText && !that.value() && isCustom && hasText) {\n that._old = '';\n that._oldIndex = index;\n that._oldText = text;\n if (!that._typing) {\n that.element.trigger(CHANGE);\n }\n that.trigger(CHANGE);\n that._typing = false;\n return;\n }\n Select.fn._change.call(that);\n that._toggleCloseVisibility();\n },\n _attachFocusEvents: function () {\n var that = this;\n that.input.on('focus' + nsFocusEvent, proxy(that._inputFocus, that)).on('focusout' + nsFocusEvent, proxy(that._inputFocusout, that));\n },\n _focusHandler: function (e) {\n if (e.target === this.element[0]) {\n this.input.focus();\n }\n },\n _arrowClick: function () {\n this._toggle();\n },\n _inputFocus: function () {\n this._inputWrapper.addClass(FOCUSED);\n this._placeholder(false);\n },\n _inputFocusout: function () {\n var that = this;\n var value = that.value();\n that._userTriggered = true;\n that._inputWrapper.removeClass(FOCUSED);\n clearTimeout(that._typingTimeout);\n that._typingTimeout = null;\n that.text(that.text());\n var item = that._focus();\n var dataItem = this.listView.dataItemByIndex(this.listView.getElementIndex(item));\n if (value !== that.value() && that.trigger('select', {\n dataItem: dataItem,\n item: item\n })) {\n that.value(value);\n return;\n }\n that._placeholder();\n that._valueBeforeCascade = that._old;\n that._blur();\n that.element.blur();\n },\n _inputPaste: function () {\n var that = this;\n clearTimeout(that._pasteTimeout);\n that._pasteTimeout = null;\n that._pasteTimeout = setTimeout(function () {\n that.search();\n });\n },\n _editable: function (options) {\n var that = this, disable = options.disable, readonly = options.readonly, wrapper = that._inputWrapper.off(ns), input = that.element.add(that.input.off(ns)), arrow = that._arrow.off(CLICK + ' ' + MOUSEDOWN), clear = that._clear;\n if (!readonly && !disable) {\n wrapper.addClass(DEFAULT).removeClass(STATEDISABLED).on(HOVEREVENTS, that._toggleHover);\n input.removeAttr(DISABLED).removeAttr(READONLY).attr(ARIA_DISABLED, false);\n arrow.on(CLICK, proxy(that._arrowClick, that)).on(MOUSEDOWN, function (e) {\n e.preventDefault();\n });\n clear.on(CLICK + ' touchend' + ns, proxy(that._clearValue, that));\n that.input.on('keydown' + ns, proxy(that._keydown, that)).on('input' + ns, proxy(that._search, that)).on('paste' + ns, proxy(that._inputPaste, that));\n that.wrapper.on(CLICK + ns, proxy(that._focusHandler, that));\n } else {\n wrapper.addClass(disable ? STATEDISABLED : DEFAULT).removeClass(disable ? DEFAULT : STATEDISABLED);\n input.attr(DISABLED, disable).attr(READONLY, readonly).attr(ARIA_DISABLED, disable);\n }\n that._toggleCloseVisibility();\n },\n open: function () {\n var that = this;\n var state = that._state;\n var isFiltered = that.dataSource.filter() ? that.dataSource.filter().filters.length > 0 : false;\n var reinitialized = !that.ul.find(that.listView.focus()).length;\n if (that.popup.visible()) {\n return;\n }\n if (!that.listView.bound() && state !== STATE_FILTER || state === STATE_ACCEPT) {\n that._open = true;\n that._state = STATE_REBIND;\n if (that.options.minLength !== 1 && !isFiltered || isFiltered && that.value() && that.selectedIndex === -1) {\n that.refresh();\n that._openPopup();\n if (!this.options.virtual) {\n that.listView.bound(false);\n }\n } else {\n that._filterSource();\n }\n } else if (that._allowOpening()) {\n that.popup._hovered = true;\n that._openPopup();\n if (that.options.virtual) {\n that._focusItem();\n } else if (reinitialized && that.options.highlightFirst) {\n that.listView.focus(0);\n }\n }\n },\n _scrollToFocusedItem: function () {\n var listView = this.listView;\n listView.scrollToIndex(listView.getElementIndex(listView.focus()));\n },\n _openPopup: function () {\n this.popup.one('activate', proxy(this._scrollToFocusedItem, this));\n this.popup.open();\n },\n _updateSelectionState: function () {\n var that = this;\n var text = that.options.text;\n var value = that.options.value;\n if (that.listView.isFiltered()) {\n return;\n }\n if (that.selectedIndex === -1) {\n if (text === undefined || text === null) {\n text = value;\n }\n that._accessor(value);\n that.input.val(text || that.input.val());\n that._placeholder();\n } else if (that._oldIndex === -1) {\n that._oldIndex = that.selectedIndex;\n }\n },\n _buildOptions: function (data) {\n var that = this;\n if (!that._isSelect) {\n return;\n }\n var custom = that._customOption;\n if (that._state === STATE_REBIND) {\n that._state = '';\n }\n that._customOption = undefined;\n that._options(data, '', that.value());\n if (custom && custom[0].selected && !that.listView._emptySearch) {\n that._custom(custom.val());\n }\n },\n _updateSelection: function () {\n var that = this;\n var listView = that.listView;\n var initialIndex = that._initialIndex;\n var hasInitialIndex = initialIndex !== null && initialIndex > -1;\n var filtered = that._state === STATE_FILTER;\n if (filtered) {\n $(listView.focus()).removeClass('k-state-selected');\n return;\n }\n if (that._fetch) {\n return;\n }\n if (!listView.value().length) {\n if (hasInitialIndex) {\n that.select(initialIndex);\n } else if (that._accessor()) {\n listView.value(that._accessor());\n }\n }\n that._initialIndex = null;\n var dataItem = listView.selectedDataItems()[0];\n if (!dataItem) {\n return;\n }\n if (that._value(dataItem) !== that.value()) {\n that._custom(that._value(dataItem));\n } else if (that._value(dataItem) !== that.element[0].value) {\n that._accessor(that._value(dataItem));\n }\n if (that.text() && that.text() !== that._text(dataItem)) {\n that._selectValue(dataItem);\n }\n },\n _updateItemFocus: function () {\n var listView = this.listView;\n if (!this.options.highlightFirst) {\n listView.focus(-1);\n } else if (!listView.focus() && !listView.focusIndex()) {\n listView.focus(0);\n }\n },\n _listBound: function () {\n var that = this;\n var isActive = that.input[0] === activeElement();\n var data = that.dataSource.flatView();\n var skip = that.listView.skip();\n var length = data.length;\n var groupsLength = that.dataSource._group ? that.dataSource._group.length : 0;\n var isFirstPage = skip === undefined || skip === 0;\n that._presetValue = false;\n that._renderFooter();\n that._renderNoData();\n that._toggleNoData(!length);\n that._toggleHeader(!!groupsLength && !!length);\n that._resizePopup();\n that.popup.position();\n that._buildOptions(data);\n that._makeUnselectable();\n that._updateSelection();\n if (data.length && isFirstPage) {\n that._updateItemFocus();\n if (that.options.suggest && isActive && that.input.val()) {\n that.suggest(data[0]);\n }\n }\n if (that._open) {\n that._open = false;\n if (that._typingTimeout && !isActive) {\n that.popup.close();\n } else {\n that.toggle(that._allowOpening());\n }\n that._typingTimeout = null;\n }\n that._hideBusy();\n that.trigger('dataBound');\n },\n _listChange: function () {\n this._selectValue(this.listView.selectedDataItems()[0]);\n if (this._presetValue) {\n this._oldIndex = this.selectedIndex;\n }\n },\n _get: function (candidate) {\n var data, found, idx;\n if (typeof candidate === 'function') {\n data = this.dataSource.flatView();\n for (idx = 0; idx < data.length; idx++) {\n if (candidate(data[idx])) {\n candidate = idx;\n found = true;\n break;\n }\n }\n if (!found) {\n candidate = -1;\n }\n }\n return candidate;\n },\n _select: function (candidate, keepState) {\n var that = this;\n candidate = that._get(candidate);\n if (candidate === -1) {\n that.input[0].value = '';\n that._accessor('');\n }\n return that.listView.select(candidate).done(function () {\n if (!keepState && that._state === STATE_FILTER) {\n that._state = STATE_ACCEPT;\n }\n that._toggleCloseVisibility();\n });\n },\n _selectValue: function (dataItem) {\n var idx = this.listView.select();\n var value = '';\n var text = '';\n idx = idx[idx.length - 1];\n if (idx === undefined) {\n idx = -1;\n }\n this.selectedIndex = idx;\n if (this.listView.isFiltered() && idx !== -1) {\n this._valueBeforeCascade = this._old;\n }\n if (idx === -1 && !dataItem) {\n if (this.options.syncValueAndText) {\n if (this.options.dataTextField === this.options.dataValueField) {\n text = this._accessor();\n } else {\n text = this.input[0].value;\n }\n value = text;\n } else {\n text = this.text();\n }\n this.listView.focus(-1);\n } else {\n if (dataItem || dataItem === 0) {\n value = this._dataValue(dataItem);\n text = this._text(dataItem);\n }\n if (value === null) {\n value = '';\n }\n }\n this._setDomInputValue(text);\n this._accessor(value !== undefined ? value : text, idx);\n this._placeholder();\n this._triggerCascade();\n },\n _setDomInputValue: function (text) {\n var that = this;\n var currentCaret = caret(this.input);\n var caretStart;\n if (currentCaret && currentCaret.length) {\n caretStart = currentCaret[0];\n }\n this._prev = this.input[0].value = text;\n if (caretStart && this.selectedIndex === -1) {\n var mobile = support.mobileOS;\n if (mobile.wp || mobile.android) {\n setTimeout(function () {\n that.input[0].setSelectionRange(caretStart, caretStart);\n }, 0);\n } else {\n this.input[0].setSelectionRange(caretStart, caretStart);\n }\n }\n },\n refresh: function () {\n this.listView.refresh();\n },\n _toggleCloseVisibility: function () {\n var preventShow = this.element.is(':disabled') || this.element.is('[readonly]');\n if (this.text() && !preventShow) {\n this._showClear();\n } else {\n this._hideClear();\n }\n },\n suggest: function (word) {\n var that = this;\n var element = that.input[0];\n var value = that.text();\n var caretIdx = caret(element)[0];\n var key = that._last;\n var idx;\n var accentFoldingFiltering = that.dataSource.options.accentFoldingFiltering;\n if (key == keys.BACKSPACE || key == keys.DELETE) {\n that._last = undefined;\n return;\n }\n word = word || '';\n if (typeof word !== 'string') {\n if (word[0]) {\n word = that.dataSource.view()[List.inArray(word[0], that.ul[0])];\n }\n word = word ? that._text(word) : '';\n }\n if (caretIdx <= 0) {\n caretIdx = (accentFoldingFiltering ? value.toLocaleLowerCase(accentFoldingFiltering) : value.toLowerCase()).indexOf(accentFoldingFiltering ? word.toLocaleLowerCase(accentFoldingFiltering) : word.toLowerCase()) + 1;\n }\n if (word) {\n word = word.toString();\n idx = (accentFoldingFiltering ? word.toLocaleLowerCase(accentFoldingFiltering) : word.toLowerCase()).indexOf(accentFoldingFiltering ? value.toLocaleLowerCase(accentFoldingFiltering) : value.toLowerCase());\n if (idx > -1) {\n value += word.substring(idx + value.length);\n }\n } else {\n value = value.substring(0, caretIdx);\n }\n if (value.length !== caretIdx || !word) {\n element.value = value;\n if (element === activeElement()) {\n caret(element, caretIdx, value.length);\n }\n }\n },\n text: function (text) {\n text = text === null ? '' : text;\n var that = this;\n var input = that.input[0];\n var ignoreCase = that.options.ignoreCase;\n var loweredText = text;\n var dataItem;\n var value;\n if (text === undefined) {\n return input.value;\n }\n if (that.options.autoBind === false && !that.listView.bound()) {\n that._setText(text);\n return;\n }\n dataItem = that.dataItem();\n if (dataItem && that._text(dataItem).replace && that._text(dataItem).replace(newLineRegEx, '') === text) {\n value = that._value(dataItem);\n if (value === List.unifyType(that._old, typeof value)) {\n that._triggerCascade();\n return;\n }\n }\n if (ignoreCase) {\n loweredText = loweredText.toLowerCase();\n }\n if (that.dataItem() && that._text(that.dataItem()) === text) {\n return;\n }\n that._select(function (data) {\n data = that._text(data);\n if (ignoreCase) {\n data = (data + '').toLowerCase();\n }\n return data === loweredText;\n }).done(function () {\n if (that.selectedIndex < 0) {\n input.value = text;\n if (that.options.syncValueAndText) {\n that._accessor(text);\n }\n that._cascadeTriggered = true;\n that._triggerCascade();\n }\n that._prev = input.value;\n });\n that._toggleCloseVisibility();\n },\n toggle: function (toggle) {\n this._toggle(toggle, true);\n },\n value: function (value) {\n var that = this;\n var options = that.options;\n var listView = that.listView;\n if (value === undefined) {\n value = that._accessor() || that.listView.value()[0];\n return value === undefined || value === null ? '' : value;\n }\n that.requireValueMapper(that.options, value);\n that.trigger('set', { value: value });\n if (value === options.value && that.input.val() === options.text && !that.options.cascadeFrom) {\n return;\n }\n that._accessor(value);\n if (that._isFilterEnabled() && listView.bound() && listView.isFiltered()) {\n that._clearFilter();\n } else {\n that._fetchData();\n }\n listView.value(value).done(function () {\n if (that.selectedIndex === -1 && (!listView._selectedDataItems || !listView._selectedDataItems.length)) {\n that._accessor(value);\n that.input.val(value);\n that._placeholder(true);\n }\n if (that._userTriggered) {\n that._old = that._accessor();\n } else {\n that._old = that._valueBeforeCascade = that._accessor();\n }\n that._oldIndex = that.selectedIndex;\n that._prev = that._oldText = that.input.val();\n if (that._state === STATE_FILTER) {\n that._state = STATE_ACCEPT;\n }\n that._toggleCloseVisibility();\n });\n },\n _hideBusy: function () {\n var that = this;\n clearTimeout(that._busy);\n that._arrowIcon.removeClass(LOADING);\n that._focused.attr('aria-busy', false);\n that._busy = null;\n that._toggleCloseVisibility();\n },\n _click: function (e) {\n var that = this;\n var item = e.item;\n var dataItem = that.listView.dataItemByIndex(that.listView.getElementIndex(item));\n var shouldTrigger = true;\n e.preventDefault();\n if (dataItem) {\n shouldTrigger = that._value(dataItem) !== List.unifyType(that.value(), typeof that._value(dataItem));\n if (!shouldTrigger) {\n that.input.val(that._text(dataItem));\n }\n }\n if (shouldTrigger && that.trigger('select', {\n dataItem: dataItem,\n item: item\n })) {\n that.close();\n return;\n }\n that._userTriggered = true;\n that._select(item).done(function () {\n that._blur();\n });\n },\n _syncValueAndText: function () {\n return this.options.syncValueAndText;\n },\n _inputValue: function () {\n return this.text();\n },\n _searchByWord: function (word) {\n var that = this;\n var options = that.options;\n var dataSource = that.dataSource;\n var ignoreCase = options.ignoreCase;\n var predicate = function (dataItem) {\n var text = that._text(dataItem);\n if (text !== undefined) {\n text = text + '';\n if (text !== '' && word === '') {\n return false;\n }\n if (ignoreCase) {\n text = text.toLowerCase();\n }\n return text.indexOf(word) === 0;\n }\n };\n if (ignoreCase) {\n word = word.toLowerCase();\n }\n if (!that.ul[0].firstChild) {\n dataSource.one(CHANGE, function () {\n if (dataSource.view()[0]) {\n that.search(word);\n }\n }).fetch();\n return;\n }\n this.listView.focus(this._get(predicate));\n var current = this.listView.focus();\n if (current) {\n if (options.suggest) {\n that.suggest(current);\n }\n this.open();\n }\n if (this.options.highlightFirst && !word) {\n this.listView.focusFirst();\n }\n },\n _input: function () {\n var that = this, element = that.element.removeClass('k-input')[0], accessKey = element.accessKey, wrapper = that.wrapper, SELECTOR = 'input.k-input', name = element.name || '', input, maxLength;\n if (name) {\n name = 'name=\"' + name + '_input\" ';\n }\n input = wrapper.find(SELECTOR);\n if (!input[0]) {\n wrapper.append('').append(that.element);\n input = wrapper.find(SELECTOR);\n }\n input[0].style.cssText = element.style.cssText;\n input[0].title = element.title;\n maxLength = parseInt(this.element.prop('maxlength') || this.element.attr('maxlength'), 10);\n if (maxLength > -1) {\n input[0].maxLength = maxLength;\n }\n input.addClass(element.className).css({\n width: '',\n height: element.style.height\n }).attr({\n 'role': 'combobox',\n 'aria-expanded': false\n }).show();\n if (placeholderSupported) {\n input.attr('placeholder', that.options.placeholder);\n }\n if (accessKey) {\n element.accessKey = '';\n input[0].accessKey = accessKey;\n }\n that._focused = that.input = input;\n that._inputWrapper = $(wrapper[0].firstChild);\n that._arrow = wrapper.find('.k-select').attr({\n 'role': 'button',\n 'tabIndex': -1\n });\n that._arrowIcon = that._arrow.find('.k-icon');\n if (element.id) {\n that._arrow.attr('aria-controls', that.ul[0].id);\n }\n },\n _clearButton: function () {\n List.fn._clearButton.call(this);\n if (this.options.clearButton) {\n this._clear.insertAfter(this.input);\n this.wrapper.addClass('k-combobox-clearable');\n }\n },\n _keydown: function (e) {\n var that = this, key = e.keyCode;\n that._last = key;\n clearTimeout(that._typingTimeout);\n that._typingTimeout = null;\n if (key === keys.HOME) {\n that._firstItem();\n } else if (key === keys.END) {\n that._lastItem();\n } else if (key === keys.ENTER || key === keys.TAB && that.popup.visible()) {\n var current = that.listView.focus();\n var dataItem = that.dataItem();\n var shouldTrigger = true;\n if (!that.popup.visible() && (!dataItem || that.text() !== that._text(dataItem))) {\n current = null;\n }\n if (current) {\n if (that.popup.visible()) {\n e.preventDefault();\n }\n dataItem = that.listView.dataItemByIndex(that.listView.getElementIndex(current));\n if (dataItem) {\n shouldTrigger = that._value(dataItem) !== List.unifyType(that.value(), typeof that._value(dataItem));\n }\n if (shouldTrigger && that.trigger('select', {\n dataItem: dataItem,\n item: current\n })) {\n return;\n }\n that._userTriggered = true;\n that._select(current).done(function () {\n that._blur();\n that._valueBeforeCascade = that._old = that.value();\n });\n } else {\n if (that._syncValueAndText() || that._isSelect) {\n that._accessor(that.input.val());\n }\n if (that.options.highlightFirst) {\n that.listView.value(that.input.val());\n that._blur();\n } else {\n that._oldText = that.text();\n }\n }\n } else if (key != keys.TAB && !that._move(e)) {\n that._search();\n } else if (key === keys.ESC && !that.popup.visible() && that.text()) {\n that._clearValue();\n }\n },\n _placeholder: function (show) {\n if (placeholderSupported) {\n return;\n }\n var that = this, input = that.input, placeholder = that.options.placeholder, value;\n if (placeholder) {\n value = that.value();\n if (show === undefined) {\n show = !value;\n }\n input.toggleClass('k-readonly', show);\n if (!show) {\n if (!value) {\n placeholder = '';\n } else {\n return;\n }\n }\n input.val(placeholder);\n if (!placeholder && input[0] === activeElement()) {\n caret(input[0], 0, 0);\n }\n }\n },\n _search: function () {\n var that = this;\n clearTimeout(that._typingTimeout);\n that._typingTimeout = setTimeout(function () {\n var value = that.text();\n if (value !== '' && that._prev !== value) {\n that._prev = value;\n if (that.options.filter === 'none' && that.options.virtual) {\n that.listView.select(-1);\n }\n that.search(value);\n that._toggleCloseVisibility();\n } else if (value === '' && that._prev !== '') {\n that._clearValue();\n that.search('');\n }\n that._typingTimeout = null;\n }, that.options.delay);\n },\n _setText: function (text) {\n this.input.val(text);\n this._prev = text;\n },\n _wrapper: function () {\n var that = this, element = that.element, wrapper = element.parent();\n if (!wrapper.is('span.k-widget')) {\n wrapper = element.hide().wrap('').parent();\n wrapper[0].style.cssText = element[0].style.cssText;\n }\n that.wrapper = wrapper.addClass('k-widget k-combobox').addClass(element[0].className).removeClass('input-validation-error').css('display', '');\n },\n _clearSelection: function (parent, isFiltered) {\n var that = this;\n var hasValue = parent.value();\n var custom = hasValue && parent.selectedIndex === -1;\n if (this.selectedIndex == -1 && this.value()) {\n return;\n }\n if (isFiltered || !hasValue || custom) {\n that.options.value = '';\n that.value('');\n }\n },\n _preselect: function (value, text) {\n this.input.val(text);\n this._accessor(value);\n this._old = this._accessor();\n this._oldIndex = this.selectedIndex;\n this.listView.setValue(value);\n this._placeholder();\n this._initialIndex = null;\n this._presetValue = true;\n this._toggleCloseVisibility();\n },\n _clearText: function () {\n this._old = this.value();\n this.text('');\n },\n _clearValue: function () {\n Select.fn._clearValue.call(this);\n this.input.focus();\n }\n });\n ui.plugin(ComboBox);\n }(window.kendo.jQuery));\n return window.kendo;\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('kendo.dropdownlist', [\n 'kendo.list',\n 'kendo.mobile.scroller',\n 'kendo.virtuallist'\n ], f);\n}(function () {\n var __meta__ = {\n id: 'dropdownlist',\n name: 'DropDownList',\n category: 'web',\n description: 'The DropDownList widget displays a list of values and allows the selection of a single value from the list.',\n depends: ['list'],\n features: [\n {\n id: 'mobile-scroller',\n name: 'Mobile scroller',\n description: 'Support for kinetic scrolling in mobile device',\n depends: ['mobile.scroller']\n },\n {\n id: 'virtualization',\n name: 'VirtualList',\n description: 'Support for virtualization',\n depends: ['virtuallist']\n }\n ]\n };\n (function ($, undefined) {\n var kendo = window.kendo, ui = kendo.ui, List = ui.List, Select = ui.Select, support = kendo.support, activeElement = kendo._activeElement, ObservableObject = kendo.data.ObservableObject, keys = kendo.keys, ns = '.kendoDropDownList', nsFocusEvent = ns + 'FocusEvent', DISABLED = 'disabled', READONLY = 'readonly', CHANGE = 'change', FOCUSED = 'k-state-focused', DEFAULT = 'k-state-default', STATEDISABLED = 'k-state-disabled', ARIA_DISABLED = 'aria-disabled', CLICKEVENTS = 'click' + ns + ' touchend' + ns, HOVEREVENTS = 'mouseenter' + ns + ' mouseleave' + ns, TABINDEX = 'tabindex', STATE_FILTER = 'filter', STATE_ACCEPT = 'accept', MSG_INVALID_OPTION_LABEL = 'The `optionLabel` option is not valid due to missing fields. Define a custom optionLabel as shown here http://docs.telerik.com/kendo-ui/api/javascript/ui/dropdownlist#configuration-optionLabel', proxy = $.proxy;\n var DropDownList = Select.extend({\n init: function (element, options) {\n var that = this;\n var index = options && options.index;\n var optionLabel, text, disabled;\n that.ns = ns;\n options = $.isArray(options) ? { dataSource: options } : options;\n Select.fn.init.call(that, element, options);\n options = that.options;\n element = that.element.on('focus' + ns, proxy(that._focusHandler, that));\n that._focusInputHandler = $.proxy(that._focusInput, that);\n that.optionLabel = $();\n that._optionLabel();\n that._inputTemplate();\n that._reset();\n that._prev = '';\n that._word = '';\n that._wrapper();\n that._tabindex();\n that.wrapper.data(TABINDEX, that.wrapper.attr(TABINDEX));\n that._span();\n that._popup();\n that._mobile();\n that._dataSource();\n that._ignoreCase();\n that._filterHeader();\n that._aria();\n that.wrapper.attr('aria-live', 'polite');\n that._enable();\n that._attachFocusHandlers();\n that._oldIndex = that.selectedIndex = -1;\n if (index !== undefined) {\n options.index = index;\n }\n that._initialIndex = options.index;\n that.requireValueMapper(that.options);\n that._initList();\n that._cascade();\n that.one('set', function (e) {\n if (!e.sender.listView.bound() && that.hasOptionLabel()) {\n that._textAccessor(that._optionLabelText());\n }\n });\n if (options.autoBind) {\n that.dataSource.fetch();\n } else if (that.selectedIndex === -1) {\n text = options.text || '';\n if (!text) {\n optionLabel = options.optionLabel;\n if (optionLabel && options.index === 0) {\n text = optionLabel;\n } else if (that._isSelect) {\n text = element.children(':selected').text();\n }\n }\n that._textAccessor(text);\n }\n disabled = $(that.element).parents('fieldset').is(':disabled');\n if (disabled) {\n that.enable(false);\n }\n that.listView.bind('click', function (e) {\n e.preventDefault();\n });\n kendo.notify(that);\n },\n options: {\n name: 'DropDownList',\n enabled: true,\n autoBind: true,\n index: 0,\n text: null,\n value: null,\n delay: 500,\n height: 200,\n dataTextField: '',\n dataValueField: '',\n optionLabel: '',\n cascadeFrom: '',\n cascadeFromField: '',\n cascadeFromParentField: '',\n ignoreCase: true,\n animation: {},\n filter: 'none',\n minLength: 1,\n enforceMinLength: false,\n virtual: false,\n template: null,\n valueTemplate: null,\n optionLabelTemplate: null,\n groupTemplate: '#:data#',\n fixedGroupTemplate: '#:data#',\n autoWidth: false,\n popup: null\n },\n events: [\n 'open',\n 'close',\n CHANGE,\n 'select',\n 'filtering',\n 'dataBinding',\n 'dataBound',\n 'cascade',\n 'set',\n 'kendoKeydown'\n ],\n setOptions: function (options) {\n Select.fn.setOptions.call(this, options);\n this.listView.setOptions(this._listOptions(options));\n this._optionLabel();\n this._inputTemplate();\n this._accessors();\n this._filterHeader();\n this._enable();\n this._aria();\n if (!this.value() && this.hasOptionLabel()) {\n this.select(0);\n }\n },\n destroy: function () {\n var that = this;\n Select.fn.destroy.call(that);\n that.wrapper.off(ns);\n that.wrapper.off(nsFocusEvent);\n that.element.off(ns);\n that._inputWrapper.off(ns);\n that._arrow.off();\n that._arrow = null;\n that._arrowIcon = null;\n that.optionLabel.off();\n if (that.filterInput) {\n that.filterInput.off(nsFocusEvent);\n }\n },\n open: function () {\n var that = this;\n var isFiltered = that.dataSource.filter() ? that.dataSource.filter().filters.length > 0 : false;\n if (that.popup.visible()) {\n return;\n }\n if (!that.listView.bound() || that._state === STATE_ACCEPT) {\n that._open = true;\n that._state = 'rebind';\n if (that.filterInput) {\n that.filterInput.val('');\n that._prev = '';\n }\n if (that.filterInput && that.options.minLength !== 1 && !isFiltered) {\n that.refresh();\n that.popup.one('activate', that._focusInputHandler);\n that.popup.open();\n that._resizeFilterInput();\n } else {\n that._filterSource();\n }\n } else if (that._allowOpening()) {\n that._focusFilter = true;\n that.popup.one('activate', that._focusInputHandler);\n that.popup._hovered = true;\n that.popup.open();\n that._resizeFilterInput();\n that._focusItem();\n }\n },\n _focusInput: function () {\n this._focusElement(this.filterInput);\n },\n _resizeFilterInput: function () {\n var filterInput = this.filterInput;\n var originalPrevent = this._prevent;\n if (!filterInput) {\n return;\n }\n var isInputActive = this.filterInput[0] === activeElement();\n var caret = kendo.caret(this.filterInput[0])[0];\n this._prevent = true;\n filterInput.css('display', 'none').css('width', this.popup.element.css('width')).css('display', 'inline-block');\n if (isInputActive) {\n filterInput.focus();\n kendo.caret(filterInput[0], caret);\n }\n this._prevent = originalPrevent;\n },\n _allowOpening: function () {\n return this.hasOptionLabel() || this.filterInput || Select.fn._allowOpening.call(this);\n },\n toggle: function (toggle) {\n this._toggle(toggle, true);\n },\n current: function (candidate) {\n var current;\n if (candidate === undefined) {\n current = this.listView.focus();\n if (!current && this.selectedIndex === 0 && this.hasOptionLabel()) {\n return this.optionLabel;\n }\n return current;\n }\n this._focus(candidate);\n },\n dataItem: function (index) {\n var that = this;\n var dataItem = null;\n if (index === null) {\n return index;\n }\n if (index === undefined) {\n dataItem = that.listView.selectedDataItems()[0];\n } else {\n if (typeof index !== 'number') {\n if (that.options.virtual) {\n return that.dataSource.getByUid($(index).data('uid'));\n }\n if (index.hasClass('k-list-optionlabel')) {\n index = -1;\n } else {\n index = $(that.items()).index(index);\n }\n } else if (that.hasOptionLabel()) {\n index -= 1;\n }\n dataItem = that.dataSource.flatView()[index];\n }\n if (!dataItem) {\n dataItem = that._optionLabelDataItem();\n }\n return dataItem;\n },\n refresh: function () {\n this.listView.refresh();\n },\n text: function (text) {\n var that = this;\n var loweredText;\n var ignoreCase = that.options.ignoreCase;\n text = text === null ? '' : text;\n if (text !== undefined) {\n if (typeof text !== 'string') {\n that._textAccessor(text);\n return;\n }\n loweredText = ignoreCase ? text.toLowerCase() : text;\n that._select(function (data) {\n data = that._text(data);\n if (ignoreCase) {\n data = (data + '').toLowerCase();\n }\n return data === loweredText;\n }).done(function () {\n that._textAccessor(that.dataItem() || text);\n });\n } else {\n return that._textAccessor();\n }\n },\n _clearFilter: function () {\n $(this.filterInput).val('');\n Select.fn._clearFilter.call(this);\n },\n value: function (value) {\n var that = this;\n var listView = that.listView;\n var dataSource = that.dataSource;\n if (value === undefined) {\n value = that._accessor() || that.listView.value()[0];\n return value === undefined || value === null ? '' : value;\n }\n that.requireValueMapper(that.options, value);\n if (value || !that.hasOptionLabel()) {\n that._initialIndex = null;\n }\n this.trigger('set', { value: value });\n if (that._request && that.options.cascadeFrom && that.listView.bound()) {\n if (that._valueSetter) {\n dataSource.unbind(CHANGE, that._valueSetter);\n }\n that._valueSetter = proxy(function () {\n that.value(value);\n }, that);\n dataSource.one(CHANGE, that._valueSetter);\n return;\n }\n if (that._isFilterEnabled() && listView.bound() && listView.isFiltered()) {\n that._clearFilter();\n } else {\n that._fetchData();\n }\n listView.value(value).done(function () {\n that._old = that._valueBeforeCascade = that._accessor();\n that._oldIndex = that.selectedIndex;\n });\n },\n hasOptionLabel: function () {\n return this.optionLabel && !!this.optionLabel[0];\n },\n _optionLabel: function () {\n var that = this;\n var options = that.options;\n var optionLabel = options.optionLabel;\n var template = options.optionLabelTemplate;\n if (!optionLabel) {\n that.optionLabel.off().remove();\n that.optionLabel = $();\n return;\n }\n if (!template) {\n template = '#:';\n if (typeof optionLabel === 'string') {\n template += 'data';\n } else {\n template += kendo.expr(options.dataTextField, 'data');\n }\n template += '#';\n }\n if (typeof template !== 'function') {\n template = kendo.template(template);\n }\n that.optionLabelTemplate = template;\n if (!that.hasOptionLabel()) {\n that.optionLabel = $('
          ').prependTo(that.list);\n }\n that.optionLabel.html(template(optionLabel)).off().on(CLICKEVENTS, proxy(that._click, that)).on(HOVEREVENTS, that._toggleHover);\n that.angular('compile', function () {\n return {\n elements: that.optionLabel,\n data: [{ dataItem: that._optionLabelDataItem() }]\n };\n });\n },\n _optionLabelText: function () {\n var optionLabel = this.options.optionLabel;\n return typeof optionLabel === 'string' ? optionLabel : this._text(optionLabel);\n },\n _optionLabelDataItem: function () {\n var that = this;\n var optionLabel = that.options.optionLabel;\n if (that.hasOptionLabel()) {\n return $.isPlainObject(optionLabel) ? new ObservableObject(optionLabel) : that._assignInstance(that._optionLabelText(), '');\n }\n return undefined;\n },\n _buildOptions: function (data) {\n var that = this;\n if (!that._isSelect) {\n return;\n }\n var value = that.listView.value()[0];\n var optionLabel = that._optionLabelDataItem();\n var optionLabelValue = optionLabel && that._value(optionLabel);\n if (value === undefined || value === null) {\n value = '';\n }\n if (optionLabel) {\n if (optionLabelValue === undefined || optionLabelValue === null) {\n optionLabelValue = '';\n }\n optionLabel = '';\n }\n that._options(data, optionLabel, value);\n if (value !== List.unifyType(that._accessor(), typeof value)) {\n that._customOption = null;\n that._custom(value);\n }\n },\n _listBound: function () {\n var that = this;\n var initialIndex = that._initialIndex;\n var filtered = that._state === STATE_FILTER;\n var data = that.dataSource.flatView();\n var dataItem;\n that._presetValue = false;\n that._renderFooter();\n that._renderNoData();\n that._toggleNoData(!data.length);\n that._resizePopup(true);\n that.popup.position();\n that._buildOptions(data);\n that._makeUnselectable();\n if (!filtered) {\n if (that._open) {\n that.toggle(that._allowOpening());\n }\n that._open = false;\n if (!that._fetch) {\n if (data.length) {\n if (!that.listView.value().length && initialIndex > -1 && initialIndex !== null) {\n that.select(initialIndex);\n }\n that._initialIndex = null;\n dataItem = that.listView.selectedDataItems()[0];\n if (dataItem && that.text() !== that._text(dataItem)) {\n that._selectValue(dataItem);\n }\n } else if (that._textAccessor() !== that._optionLabelText()) {\n that.listView.value('');\n that._selectValue(null);\n that._oldIndex = that.selectedIndex;\n }\n }\n }\n that._hideBusy();\n that.trigger('dataBound');\n },\n _listChange: function () {\n this._selectValue(this.listView.selectedDataItems()[0]);\n if (this._presetValue || this._old && this._oldIndex === -1) {\n this._oldIndex = this.selectedIndex;\n }\n },\n _filterPaste: function () {\n this._search();\n },\n _attachFocusHandlers: function () {\n var that = this;\n var wrapper = that.wrapper;\n wrapper.on('focusin' + nsFocusEvent, proxy(that._focusinHandler, that)).on('focusout' + nsFocusEvent, proxy(that._focusoutHandler, that));\n if (that.filterInput) {\n that.filterInput.on('focusin' + nsFocusEvent, proxy(that._focusinHandler, that)).on('focusout' + nsFocusEvent, proxy(that._focusoutHandler, that));\n }\n },\n _focusHandler: function () {\n this.wrapper.focus();\n },\n _focusinHandler: function () {\n this._inputWrapper.addClass(FOCUSED);\n this._prevent = false;\n },\n _focusoutHandler: function () {\n var that = this;\n var isIFrame = window.self !== window.top;\n if (!that._prevent) {\n clearTimeout(that._typingTimeout);\n if (support.mobileOS.ios && isIFrame) {\n that._change();\n } else {\n that._blur();\n }\n that._inputWrapper.removeClass(FOCUSED);\n that._prevent = true;\n that._open = false;\n that.element.blur();\n }\n },\n _wrapperMousedown: function () {\n this._prevent = !!this.filterInput;\n },\n _wrapperClick: function (e) {\n e.preventDefault();\n this.popup.unbind('activate', this._focusInputHandler);\n this._focused = this.wrapper;\n this._prevent = false;\n this._toggle();\n },\n _editable: function (options) {\n var that = this;\n var element = that.element;\n var disable = options.disable;\n var readonly = options.readonly;\n var wrapper = that.wrapper.add(that.filterInput).off(ns);\n var dropDownWrapper = that._inputWrapper.off(HOVEREVENTS);\n if (!readonly && !disable) {\n element.removeAttr(DISABLED).removeAttr(READONLY);\n dropDownWrapper.addClass(DEFAULT).removeClass(STATEDISABLED).on(HOVEREVENTS, that._toggleHover);\n wrapper.attr(TABINDEX, wrapper.data(TABINDEX)).attr(ARIA_DISABLED, false).on('keydown' + ns, that, proxy(that._keydown, that)).on(kendo.support.mousedown + ns, proxy(that._wrapperMousedown, that)).on('paste' + ns, proxy(that._filterPaste, that));\n that.wrapper.on('click' + ns, proxy(that._wrapperClick, that));\n if (!that.filterInput) {\n wrapper.on('keypress' + ns, proxy(that._keypress, that));\n } else {\n wrapper.on('input' + ns, proxy(that._search, that));\n }\n } else if (disable) {\n wrapper.removeAttr(TABINDEX);\n dropDownWrapper.addClass(STATEDISABLED).removeClass(DEFAULT);\n } else {\n dropDownWrapper.addClass(DEFAULT).removeClass(STATEDISABLED);\n }\n element.attr(DISABLED, disable).attr(READONLY, readonly);\n wrapper.attr(ARIA_DISABLED, disable);\n },\n _keydown: function (e) {\n var that = this;\n var key = e.keyCode;\n var altKey = e.altKey;\n var isInputActive;\n var handled;\n var isPopupVisible = that.popup.visible();\n if (that.filterInput) {\n isInputActive = that.filterInput[0] === activeElement();\n }\n if (key === keys.LEFT) {\n key = keys.UP;\n handled = true;\n } else if (key === keys.RIGHT) {\n key = keys.DOWN;\n handled = true;\n }\n if (handled && isInputActive) {\n return;\n }\n e.keyCode = key;\n if (altKey && key === keys.UP || key === keys.ESC) {\n that._focusElement(that.wrapper);\n }\n if (that._state === STATE_FILTER && key === keys.ESC) {\n that._clearFilter();\n that._open = false;\n that._state = STATE_ACCEPT;\n }\n if (key === keys.ENTER && that._typingTimeout && that.filterInput && isPopupVisible) {\n e.preventDefault();\n return;\n }\n if (key === keys.SPACEBAR && !isInputActive) {\n that.toggle(!isPopupVisible);\n e.preventDefault();\n }\n handled = that._move(e);\n if (handled) {\n return;\n }\n if (!isPopupVisible || !that.filterInput) {\n var current = that._focus();\n if (key === keys.HOME) {\n handled = true;\n that._firstItem();\n } else if (key === keys.END) {\n handled = true;\n that._lastItem();\n }\n if (handled) {\n if (that.trigger('select', {\n dataItem: that._getElementDataItem(that._focus()),\n item: that._focus()\n })) {\n that._focus(current);\n return;\n }\n that._select(that._focus(), true).done(function () {\n if (!isPopupVisible) {\n that._blur();\n }\n });\n e.preventDefault();\n }\n }\n if (!altKey && !handled && that.filterInput) {\n that._search();\n }\n },\n _matchText: function (text, word) {\n var ignoreCase = this.options.ignoreCase;\n if (text === undefined || text === null) {\n return false;\n }\n text = text + '';\n if (ignoreCase) {\n text = text.toLowerCase();\n }\n return text.indexOf(word) === 0;\n },\n _shuffleData: function (data, splitIndex) {\n var optionDataItem = this._optionLabelDataItem();\n if (optionDataItem) {\n data = [optionDataItem].concat(data);\n }\n return data.slice(splitIndex).concat(data.slice(0, splitIndex));\n },\n _selectNext: function () {\n var that = this;\n var data = that.dataSource.flatView();\n var dataLength = data.length + (that.hasOptionLabel() ? 1 : 0);\n var isInLoop = sameCharsOnly(that._word, that._last);\n var startIndex = that.selectedIndex;\n var oldFocusedItem;\n var text;\n if (startIndex === -1) {\n startIndex = 0;\n } else {\n startIndex += isInLoop ? 1 : 0;\n startIndex = normalizeIndex(startIndex, dataLength);\n }\n data = data.toJSON ? data.toJSON() : data.slice();\n data = that._shuffleData(data, startIndex);\n for (var idx = 0; idx < dataLength; idx++) {\n text = that._text(data[idx]);\n if (isInLoop && that._matchText(text, that._last)) {\n break;\n } else if (that._matchText(text, that._word)) {\n break;\n }\n }\n if (idx !== dataLength) {\n oldFocusedItem = that._focus();\n that._select(normalizeIndex(startIndex + idx, dataLength)).done(function () {\n var done = function () {\n if (!that.popup.visible()) {\n that._change();\n }\n };\n if (that.trigger('select', {\n dataItem: that._getElementDataItem(that._focus()),\n item: that._focus()\n })) {\n that._select(oldFocusedItem).done(done);\n } else {\n done();\n }\n });\n }\n },\n _keypress: function (e) {\n var that = this;\n if (e.which === 0 || e.keyCode === kendo.keys.ENTER) {\n return;\n }\n var character = String.fromCharCode(e.charCode || e.keyCode);\n if (that.options.ignoreCase) {\n character = character.toLowerCase();\n }\n if (character === ' ') {\n e.preventDefault();\n }\n that._word += character;\n that._last = character;\n that._search();\n },\n _popupOpen: function () {\n var popup = this.popup;\n popup.wrapper = kendo.wrap(popup.element);\n if (popup.element.closest('.km-root')[0]) {\n popup.wrapper.addClass('km-popup km-widget');\n this.wrapper.addClass('km-widget');\n }\n },\n _popup: function () {\n Select.fn._popup.call(this);\n this.popup.one('open', proxy(this._popupOpen, this));\n },\n _getElementDataItem: function (element) {\n if (!element || !element[0]) {\n return null;\n }\n if (element[0] === this.optionLabel[0]) {\n return this._optionLabelDataItem();\n }\n return this.listView.dataItemByIndex(this.listView.getElementIndex(element));\n },\n _click: function (e) {\n var that = this;\n var item = e.item || $(e.currentTarget);\n e.preventDefault();\n if (that.trigger('select', {\n dataItem: that._getElementDataItem(item),\n item: item\n })) {\n that.close();\n return;\n }\n that._userTriggered = true;\n that._select(item).done(function () {\n that._blur();\n that._focusElement(that.wrapper);\n });\n },\n _focusElement: function (element) {\n var active = activeElement();\n var wrapper = this.wrapper;\n var filterInput = this.filterInput;\n var compareElement = element === filterInput ? wrapper : filterInput;\n var touchEnabled = support.mobileOS && (support.touch || support.MSPointers || support.pointers);\n if (filterInput && filterInput[0] === element[0] && touchEnabled) {\n return;\n }\n if (filterInput && (compareElement[0] === active || this._focusFilter)) {\n this._focusFilter = false;\n this._prevent = true;\n this._focused = element.focus();\n }\n },\n _searchByWord: function (word) {\n if (!word) {\n return;\n }\n var that = this;\n var ignoreCase = that.options.ignoreCase;\n if (ignoreCase) {\n word = word.toLowerCase();\n }\n that._select(function (dataItem) {\n return that._matchText(that._text(dataItem), word);\n });\n },\n _inputValue: function () {\n return this.text();\n },\n _search: function () {\n var that = this;\n var dataSource = that.dataSource;\n clearTimeout(that._typingTimeout);\n if (that._isFilterEnabled()) {\n that._typingTimeout = setTimeout(function () {\n var value = that.filterInput.val();\n if (that._prev !== value) {\n that._prev = value;\n that.search(value);\n that._resizeFilterInput();\n }\n that._typingTimeout = null;\n }, that.options.delay);\n } else {\n that._typingTimeout = setTimeout(function () {\n that._word = '';\n }, that.options.delay);\n if (!that.listView.bound()) {\n dataSource.fetch().done(function () {\n that._selectNext();\n });\n return;\n }\n that._selectNext();\n }\n },\n _get: function (candidate) {\n var data, found, idx;\n var isFunction = typeof candidate === 'function';\n var jQueryCandidate = !isFunction ? $(candidate) : $();\n if (this.hasOptionLabel()) {\n if (typeof candidate === 'number') {\n if (candidate > -1) {\n candidate -= 1;\n }\n } else if (jQueryCandidate.hasClass('k-list-optionlabel')) {\n candidate = -1;\n }\n }\n if (isFunction) {\n data = this.dataSource.flatView();\n for (idx = 0; idx < data.length; idx++) {\n if (candidate(data[idx])) {\n candidate = idx;\n found = true;\n break;\n }\n }\n if (!found) {\n candidate = -1;\n }\n }\n return candidate;\n },\n _firstItem: function () {\n if (this.hasOptionLabel()) {\n this._focus(this.optionLabel);\n } else {\n this.listView.focusFirst();\n }\n },\n _lastItem: function () {\n this._resetOptionLabel();\n this.listView.focusLast();\n },\n _nextItem: function () {\n var focusIndex;\n if (this.optionLabel.hasClass('k-state-focused')) {\n this._resetOptionLabel();\n this.listView.focusFirst();\n focusIndex = 1;\n } else {\n focusIndex = this.listView.focusNext();\n }\n return focusIndex;\n },\n _prevItem: function () {\n var focusIndex;\n if (this.optionLabel.hasClass('k-state-focused')) {\n return;\n }\n focusIndex = this.listView.focusPrev();\n if (!this.listView.focus() && !this.options.virtual) {\n this._focus(this.optionLabel);\n }\n return focusIndex;\n },\n _focusItem: function () {\n var options = this.options;\n var listView = this.listView;\n var focusedItem = listView.focus();\n var index = listView.select();\n index = index[index.length - 1];\n if (index === undefined && options.highlightFirst && !focusedItem) {\n index = 0;\n }\n if (index !== undefined) {\n listView.focus(index);\n } else {\n if (options.optionLabel && (!options.virtual || options.virtual.mapValueTo !== 'dataItem')) {\n this._focus(this.optionLabel);\n this._select(this.optionLabel);\n this.listView.content.scrollTop(0);\n } else {\n listView.scrollToIndex(0);\n }\n }\n },\n _resetOptionLabel: function (additionalClass) {\n this.optionLabel.removeClass('k-state-focused' + (additionalClass || '')).removeAttr('id');\n },\n _focus: function (candidate) {\n var listView = this.listView;\n var optionLabel = this.optionLabel;\n if (candidate === undefined) {\n candidate = listView.focus();\n if (!candidate && optionLabel.hasClass('k-state-focused')) {\n candidate = optionLabel;\n }\n return candidate;\n }\n this._resetOptionLabel();\n candidate = this._get(candidate);\n listView.focus(candidate);\n if (candidate === -1) {\n optionLabel.addClass('k-state-focused').attr('id', listView._optionID);\n this._focused.add(this.filterInput).removeAttr('aria-activedescendant').attr('aria-activedescendant', listView._optionID);\n }\n },\n _select: function (candidate, keepState) {\n var that = this;\n candidate = that._get(candidate);\n return that.listView.select(candidate).done(function () {\n if (!keepState && that._state === STATE_FILTER) {\n that._state = STATE_ACCEPT;\n }\n if (candidate === -1) {\n that._selectValue(null);\n }\n });\n },\n _selectValue: function (dataItem) {\n var that = this;\n var optionLabel = that.options.optionLabel;\n var idx = that.listView.select();\n var value = '';\n var text = '';\n idx = idx[idx.length - 1];\n if (idx === undefined) {\n idx = -1;\n }\n this._resetOptionLabel(' k-state-selected');\n if (dataItem || dataItem === 0) {\n text = dataItem;\n value = that._dataValue(dataItem);\n if (optionLabel) {\n idx += 1;\n }\n } else if (optionLabel) {\n that._focus(that.optionLabel.addClass('k-state-selected'));\n text = that._optionLabelText();\n if (typeof optionLabel === 'string') {\n value = '';\n } else {\n value = that._value(optionLabel);\n }\n idx = 0;\n }\n that.selectedIndex = idx;\n if (value === null) {\n value = '';\n }\n that._textAccessor(text);\n that._accessor(value, idx);\n that._triggerCascade();\n },\n _mobile: function () {\n var that = this, popup = that.popup, mobileOS = support.mobileOS, root = popup.element.parents('.km-root').eq(0);\n if (root.length && mobileOS) {\n popup.options.animation.open.effects = mobileOS.android || mobileOS.meego ? 'fadeIn' : mobileOS.ios || mobileOS.wp ? 'slideIn:up' : popup.options.animation.open.effects;\n }\n },\n _filterHeader: function () {\n var icon;\n if (this.filterInput) {\n this.filterInput.off(ns).parent().remove();\n this.filterInput = null;\n }\n if (this._isFilterEnabled()) {\n icon = '';\n this.filterInput = $('').attr({\n placeholder: this.element.attr('placeholder'),\n title: this.element.attr('title'),\n role: 'listbox',\n 'aria-haspopup': true,\n 'aria-expanded': false\n });\n this.list.prepend($('').append(this.filterInput.add(icon)));\n }\n },\n _span: function () {\n var that = this, wrapper = that.wrapper, SELECTOR = 'span.k-input', span;\n span = wrapper.find(SELECTOR);\n if (!span[0]) {\n wrapper.append(' ').append(that.element);\n span = wrapper.find(SELECTOR);\n }\n that.span = span;\n that._inputWrapper = $(wrapper[0].firstChild);\n that._arrow = wrapper.find('.k-select');\n that._arrowIcon = that._arrow.find('.k-icon');\n },\n _wrapper: function () {\n var that = this, element = that.element, DOMelement = element[0], wrapper;\n wrapper = element.parent();\n if (!wrapper.is('span.k-widget')) {\n wrapper = element.wrap('').parent();\n wrapper[0].style.cssText = DOMelement.style.cssText;\n wrapper[0].title = DOMelement.title;\n }\n that._focused = that.wrapper = wrapper.addClass('k-widget k-dropdown').addClass(DOMelement.className).removeClass('input-validation-error').css('display', '').attr({\n accesskey: element.attr('accesskey'),\n unselectable: 'on',\n role: 'listbox',\n 'aria-haspopup': true,\n 'aria-expanded': false\n });\n element.hide().removeAttr('accesskey');\n },\n _clearSelection: function (parent) {\n this.select(parent.value() ? 0 : -1);\n },\n _inputTemplate: function () {\n var that = this, template = that.options.valueTemplate;\n if (!template) {\n template = $.proxy(kendo.template('#:this._text(data)#', { useWithBlock: false }), that);\n } else {\n template = kendo.template(template);\n }\n that.valueTemplate = template;\n if (that.hasOptionLabel() && !that.options.optionLabelTemplate) {\n try {\n that.valueTemplate(that._optionLabelDataItem());\n } catch (e) {\n throw new Error(MSG_INVALID_OPTION_LABEL);\n }\n }\n },\n _textAccessor: function (text) {\n var dataItem = null;\n var template = this.valueTemplate;\n var optionLabelText = this._optionLabelText();\n var span = this.span;\n if (text === undefined) {\n return span.text();\n }\n if ($.isPlainObject(text) || text instanceof ObservableObject) {\n dataItem = text;\n } else if (optionLabelText && optionLabelText === text) {\n dataItem = this.options.optionLabel;\n }\n if (!dataItem) {\n dataItem = this._assignInstance(text, this._accessor());\n }\n if (this.hasOptionLabel()) {\n if (dataItem === optionLabelText || this._text(dataItem) === optionLabelText) {\n template = this.optionLabelTemplate;\n if (typeof this.options.optionLabel === 'string' && !this.options.optionLabelTemplate) {\n dataItem = optionLabelText;\n }\n }\n }\n var getElements = function () {\n return {\n elements: span.get(),\n data: [{ dataItem: dataItem }]\n };\n };\n this.angular('cleanup', getElements);\n try {\n span.html(template(dataItem));\n } catch (e) {\n span.html('');\n }\n this.angular('compile', getElements);\n },\n _preselect: function (value, text) {\n if (!value && !text) {\n text = this._optionLabelText();\n }\n this._accessor(value);\n this._textAccessor(text);\n this._old = this._accessor();\n this._oldIndex = this.selectedIndex;\n this.listView.setValue(value);\n this._initialIndex = null;\n this._presetValue = true;\n },\n _assignInstance: function (text, value) {\n var dataTextField = this.options.dataTextField;\n var dataItem = {};\n if (dataTextField) {\n assign(dataItem, dataTextField.split('.'), text);\n assign(dataItem, this.options.dataValueField.split('.'), value);\n dataItem = new ObservableObject(dataItem);\n } else {\n dataItem = text;\n }\n return dataItem;\n }\n });\n function assign(instance, fields, value) {\n var idx = 0, lastIndex = fields.length - 1, field;\n for (; idx < lastIndex; ++idx) {\n field = fields[idx];\n if (!(field in instance)) {\n instance[field] = {};\n }\n instance = instance[field];\n }\n instance[fields[lastIndex]] = value;\n }\n function normalizeIndex(index, length) {\n if (index >= length) {\n index -= length;\n }\n return index;\n }\n function sameCharsOnly(word, character) {\n for (var idx = 0; idx < word.length; idx++) {\n if (word.charAt(idx) !== character) {\n return false;\n }\n }\n return true;\n }\n ui.plugin(DropDownList);\n }(window.kendo.jQuery));\n return window.kendo;\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('kendo.resizable', [\n 'kendo.core',\n 'kendo.draganddrop'\n ], f);\n}(function () {\n var __meta__ = {\n id: 'resizable',\n name: 'Resizable',\n category: 'framework',\n depends: [\n 'core',\n 'draganddrop'\n ],\n advanced: true\n };\n (function ($, undefined) {\n var kendo = window.kendo, ui = kendo.ui, Widget = ui.Widget, proxy = $.proxy, isFunction = kendo.isFunction, extend = $.extend, HORIZONTAL = 'horizontal', VERTICAL = 'vertical', START = 'start', RESIZE = 'resize', RESIZEEND = 'resizeend';\n var Resizable = Widget.extend({\n init: function (element, options) {\n var that = this;\n Widget.fn.init.call(that, element, options);\n that.orientation = that.options.orientation.toLowerCase() != VERTICAL ? HORIZONTAL : VERTICAL;\n that._positionMouse = that.orientation == HORIZONTAL ? 'x' : 'y';\n that._position = that.orientation == HORIZONTAL ? 'left' : 'top';\n that._sizingDom = that.orientation == HORIZONTAL ? 'outerWidth' : 'outerHeight';\n that.draggable = new ui.Draggable(options.draggableElement || element, {\n distance: 1,\n filter: options.handle,\n drag: proxy(that._resize, that),\n dragcancel: proxy(that._cancel, that),\n dragstart: proxy(that._start, that),\n dragend: proxy(that._stop, that)\n });\n that.userEvents = that.draggable.userEvents;\n },\n events: [\n RESIZE,\n RESIZEEND,\n START\n ],\n options: {\n name: 'Resizable',\n orientation: HORIZONTAL\n },\n resize: function () {\n },\n _max: function (e) {\n var that = this, hintSize = that.hint ? that.hint[that._sizingDom]() : 0, size = that.options.max;\n return isFunction(size) ? size(e) : size !== undefined ? that._initialElementPosition + size - hintSize : size;\n },\n _min: function (e) {\n var that = this, size = that.options.min;\n return isFunction(size) ? size(e) : size !== undefined ? that._initialElementPosition + size : size;\n },\n _start: function (e) {\n var that = this, hint = that.options.hint, el = $(e.currentTarget);\n that._initialElementPosition = el.position()[that._position];\n that._initialMousePosition = e[that._positionMouse].startLocation;\n if (hint) {\n that.hint = isFunction(hint) ? $(hint(el)) : hint;\n that.hint.css({ position: 'absolute' }).css(that._position, that._initialElementPosition).appendTo(that.element);\n }\n that.trigger(START, e);\n that._maxPosition = that._max(e);\n that._minPosition = that._min(e);\n $(document.body).css('cursor', el.css('cursor'));\n },\n _resize: function (e) {\n var that = this, maxPosition = that._maxPosition, minPosition = that._minPosition, currentPosition = that._initialElementPosition + (e[that._positionMouse].location - that._initialMousePosition), position;\n position = minPosition !== undefined ? Math.max(minPosition, currentPosition) : currentPosition;\n that.position = position = maxPosition !== undefined ? Math.min(maxPosition, position) : position;\n if (that.hint) {\n that.hint.toggleClass(that.options.invalidClass || '', position == maxPosition || position == minPosition).css(that._position, position);\n }\n that.resizing = true;\n that.trigger(RESIZE, extend(e, { position: position }));\n },\n _stop: function (e) {\n var that = this;\n if (that.hint) {\n that.hint.remove();\n }\n that.resizing = false;\n that.trigger(RESIZEEND, extend(e, { position: that.position }));\n $(document.body).css('cursor', '');\n },\n _cancel: function (e) {\n var that = this;\n if (that.hint) {\n that.position = undefined;\n that.hint.css(that._position, that._initialElementPosition);\n that._stop(e);\n }\n },\n destroy: function () {\n var that = this;\n Widget.fn.destroy.call(that);\n if (that.draggable) {\n that.draggable.destroy();\n }\n },\n press: function (target) {\n if (!target) {\n return;\n }\n var position = target.position(), that = this;\n that.userEvents.press(position.left, position.top, target[0]);\n that.targetPosition = position;\n that.target = target;\n },\n move: function (delta) {\n var that = this, orientation = that._position, position = that.targetPosition, current = that.position;\n if (current === undefined) {\n current = position[orientation];\n }\n position[orientation] = current + delta;\n that.userEvents.move(position.left, position.top);\n },\n end: function () {\n this.userEvents.end();\n this.target = this.position = undefined;\n }\n });\n kendo.ui.plugin(Resizable);\n }(window.kendo.jQuery));\n return window.kendo;\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('kendo.window', [\n 'kendo.draganddrop',\n 'kendo.popup'\n ], f);\n}(function () {\n var __meta__ = {\n id: 'window',\n name: 'Window',\n category: 'web',\n description: 'The Window widget displays content in a modal or non-modal HTML window.',\n depends: [\n 'draganddrop',\n 'popup'\n ],\n features: [{\n id: 'window-fx',\n name: 'Animation',\n description: 'Support for animation',\n depends: ['fx']\n }]\n };\n (function ($, undefined) {\n var kendo = window.kendo, Widget = kendo.ui.Widget, TabKeyTrap = kendo.ui.Popup.TabKeyTrap, Draggable = kendo.ui.Draggable, isPlainObject = $.isPlainObject, activeElement = kendo._activeElement, outerWidth = kendo._outerWidth, outerHeight = kendo._outerHeight, proxy = $.proxy, extend = $.extend, each = $.each, template = kendo.template, BODY = 'body', templates, NS = '.kendoWindow', MODAL_NS = '.kendoWindowModal', KWINDOW = '.k-window', KWINDOWTITLE = '.k-window-title', KWINDOWTITLEBAR = KWINDOWTITLE + 'bar', KWINDOWCONTENT = '.k-window-content', KDIALOGCONTENT = '.k-dialog-content', KWINDOWRESIZEHANDLES = '.k-resize-handle', KOVERLAY = '.k-overlay', KCONTENTFRAME = 'k-content-frame', LOADING = 'k-i-loading', KHOVERSTATE = 'k-state-hover', KFOCUSEDSTATE = 'k-state-focused', MAXIMIZEDSTATE = 'k-window-maximized', VISIBLE = ':visible', HIDDEN = 'hidden', CURSOR = 'cursor', OPEN = 'open', ACTIVATE = 'activate', DEACTIVATE = 'deactivate', CLOSE = 'close', REFRESH = 'refresh', MINIMIZE = 'minimize', MAXIMIZE = 'maximize', RESIZESTART = 'resizeStart', RESIZE = 'resize', RESIZEEND = 'resizeEnd', DRAGSTART = 'dragstart', DRAGEND = 'dragend', ERROR = 'error', OVERFLOW = 'overflow', DATADOCOVERFLOWRULE = 'original-overflow-rule', ZINDEX = 'zIndex', MINIMIZE_MAXIMIZE = '.k-window-actions .k-i-window-minimize,.k-window-actions .k-i-window-maximize', KPIN = '.k-i-pin', KUNPIN = '.k-i-unpin', PIN_UNPIN = KPIN + ',' + KUNPIN, TITLEBAR_BUTTONS = '.k-window-titlebar .k-window-action', REFRESHICON = '.k-window-titlebar .k-i-refresh', WINDOWEVENTSHANDLED = 'WindowEventsHandled', zero = /^0[a-z]*$/i, isLocalUrl = kendo.isLocalUrl, SIZE = {\n small: 'k-window-sm',\n medium: 'k-window-md',\n large: 'k-window-lg'\n };\n function defined(x) {\n return typeof x != 'undefined';\n }\n function toInt(element, property) {\n return parseInt(element.css(property), 10) || 0;\n }\n function constrain(value, low, high) {\n var normalizedValue;\n if (value && isNaN(value) && value.toString().indexOf('px') < 0) {\n normalizedValue = value;\n } else {\n normalizedValue = Math.max(Math.min(parseInt(value, 10), high === Infinity ? high : parseInt(high, 10)), low === -Infinity ? low : parseInt(low, 10));\n }\n return normalizedValue;\n }\n function executableScript() {\n return !this.type || this.type.toLowerCase().indexOf('script') >= 0;\n }\n function getPosition(elem) {\n var result = {\n top: elem.offsetTop,\n left: elem.offsetLeft\n }, parent = elem.offsetParent;\n while (parent) {\n result.top += parent.offsetTop;\n result.left += parent.offsetLeft;\n var parentOverflowX = $(parent).css('overflowX');\n var parentOverflowY = $(parent).css('overflowY');\n if (parentOverflowY === 'auto' || parentOverflowY === 'scroll') {\n result.top -= parent.scrollTop;\n }\n if (parentOverflowX === 'auto' || parentOverflowX === 'scroll') {\n result.left -= parent.scrollLeft;\n }\n parent = parent.offsetParent;\n }\n return result;\n }\n var Window = Widget.extend({\n init: function (element, options) {\n var that = this, wrapper, offset = {}, visibility, display, position, isVisible = false, content, windowContent, windowFrame, globalWindow, suppressActions = options && options.actions && !options.actions.length, id;\n Widget.fn.init.call(that, element, options);\n options = that.options;\n position = options.position;\n element = that.element;\n content = options.content;\n globalWindow = $(window);\n if (suppressActions) {\n options.actions = [];\n }\n that.appendTo = $(options.appendTo);\n that.containment = options.draggable.containment ? $(options.draggable.containment).first() : null;\n if (content && !isPlainObject(content)) {\n content = options.content = { url: content };\n }\n element.find('script').filter(executableScript).remove();\n if (!element.parent().is(that.appendTo) && !that.containment && (position.top === undefined || position.left === undefined)) {\n if (element.is(VISIBLE)) {\n offset = element.offset();\n isVisible = true;\n } else {\n visibility = element.css('visibility');\n display = element.css('display');\n element.css({\n visibility: HIDDEN,\n display: ''\n });\n offset = element.offset();\n element.css({\n visibility: visibility,\n display: display\n });\n }\n if (position.top === undefined) {\n position.top = offset.top;\n }\n if (position.left === undefined) {\n position.left = offset.left;\n }\n }\n if (!defined(options.visible) || options.visible === null) {\n options.visible = element.is(VISIBLE);\n }\n wrapper = that.wrapper = element.closest(KWINDOW);\n if (!element.is('.k-window-content') || !wrapper[0]) {\n element.addClass('k-window-content');\n that._createWindow(element, options);\n wrapper = that.wrapper = element.closest(KWINDOW);\n that.title(that.options.title);\n that._dimensions();\n }\n that.minTop = that.minLeft = -Infinity;\n that.maxTop = that.maxLeft = Infinity;\n that._position();\n if (content) {\n that.refresh(content);\n }\n if (options.visible) {\n that.toFront();\n }\n windowContent = wrapper.children(KWINDOWCONTENT);\n that._tabindex(windowContent);\n if (options.visible && options.modal) {\n that._overlay(wrapper.is(VISIBLE)).css({ opacity: 0.5 });\n }\n wrapper.on('mouseenter' + NS, TITLEBAR_BUTTONS, proxy(that._buttonEnter, that)).on('mouseleave' + NS, TITLEBAR_BUTTONS, proxy(that._buttonLeave, that)).on('click' + NS, '> ' + TITLEBAR_BUTTONS, proxy(that._windowActionHandler, that)).on('keydown' + NS, proxy(that._keydown, that)).on('focus' + NS, proxy(that._focus, that)).on('blur' + NS, proxy(that._blur, that));\n windowContent.on('keydown' + NS, proxy(that._keydown, that)).on('focus' + NS, proxy(that._focus, that)).on('blur' + NS, proxy(that._blur, that));\n windowFrame = windowContent.find('.' + KCONTENTFRAME)[0];\n if (windowFrame && !globalWindow.data(WINDOWEVENTSHANDLED)) {\n globalWindow.on('blur' + NS, function () {\n var element = $(document.activeElement).parent(KWINDOWCONTENT);\n if (element.length) {\n var windowInstance = kendo.widgetInstance(element);\n windowInstance._focus();\n }\n });\n globalWindow.on('focus' + NS, function () {\n $(KWINDOWCONTENT).not(KDIALOGCONTENT).each(function (i, element) {\n kendo.widgetInstance($(element))._blur();\n });\n });\n globalWindow.data(WINDOWEVENTSHANDLED, true);\n }\n this._resizable();\n this._draggable();\n if (options.pinned && this.wrapper.is(':visible')) {\n that.pin();\n }\n id = element.attr('id');\n if (id) {\n id = id + '_wnd_title';\n wrapper.children(KWINDOWTITLEBAR).children(KWINDOWTITLE).attr('id', id);\n windowContent.attr({\n 'role': 'dialog',\n 'aria-labelledby': id\n });\n }\n wrapper.add(wrapper.children('.k-resize-handle,' + KWINDOWTITLEBAR)).on('mousedown' + NS, proxy(that.toFront, that));\n that.touchScroller = kendo.touchScroller(element);\n that._resizeHandler = proxy(that._onDocumentResize, that);\n that._marker = kendo.guid().substring(0, 8);\n $(window).on('resize' + NS + that._marker, that._resizeHandler);\n if (options.visible) {\n that.trigger(OPEN);\n that.trigger(ACTIVATE);\n }\n kendo.notify(that);\n if (this.options.modal) {\n this._tabKeyTrap = new TabKeyTrap(wrapper);\n this._tabKeyTrap.trap();\n this._tabKeyTrap.shouldTrap = function () {\n return windowContent.data('isFront');\n };\n }\n },\n _buttonEnter: function (e) {\n $(e.currentTarget).addClass(KHOVERSTATE);\n },\n _buttonLeave: function (e) {\n $(e.currentTarget).removeClass(KHOVERSTATE);\n },\n _focus: function () {\n this.wrapper.addClass(KFOCUSEDSTATE);\n },\n _blur: function () {\n this.wrapper.removeClass(KFOCUSEDSTATE);\n },\n _dimensions: function () {\n var wrapper = this.wrapper;\n var options = this.options;\n var width = options.width;\n var height = options.height;\n var maxHeight = options.maxHeight;\n var sizeClass = options.size;\n var dimensions = [\n 'minWidth',\n 'minHeight',\n 'maxWidth',\n 'maxHeight'\n ];\n var contentBoxSizing = wrapper.css('box-sizing') == 'content-box';\n var lrBorderWidth = contentBoxSizing ? toInt(wrapper, 'border-left-width') + toInt(wrapper, 'border-right-width') : 0;\n var tbBorderWidth = contentBoxSizing ? toInt(wrapper, 'border-top-width') + toInt(wrapper, 'border-bottom-width') : 0;\n var paddingTop = contentBoxSizing ? toInt(wrapper, 'padding-top') : 0;\n if (this.containment && !this._isPinned) {\n this._updateBoundaries();\n options.maxHeight = Math.min(this.containment.height - (tbBorderWidth + paddingTop), maxHeight);\n options.maxWidth = Math.min(this.containment.width - lrBorderWidth, options.maxWidth);\n }\n for (var i = 0; i < dimensions.length; i++) {\n var value = options[dimensions[i]] || '';\n if (value != Infinity) {\n wrapper.css(dimensions[i], value);\n }\n }\n if (maxHeight != Infinity) {\n this.element.css('maxHeight', maxHeight);\n }\n if (width) {\n wrapper.width(constrain(width, options.minWidth, options.maxWidth));\n } else {\n wrapper.width('');\n }\n if (height) {\n wrapper.height(constrain(height, options.minHeight, options.maxHeight));\n } else {\n wrapper.height('');\n }\n if (!options.visible) {\n wrapper.hide();\n }\n if (sizeClass && SIZE[sizeClass]) {\n wrapper.addClass(SIZE[sizeClass]);\n }\n },\n _position: function () {\n var wrapper = this.wrapper, position = this.options.position;\n this._updateBoundaries();\n if (this.containment) {\n position.top = Math.min(this.minTop + (position.top || 0), this.maxTop);\n position.left = Math.min(this.minLeft + (position.left || 0), this.maxLeft);\n }\n if (position.top === 0) {\n position.top = position.top.toString();\n }\n if (position.left === 0) {\n position.left = position.left.toString();\n }\n wrapper.css({\n top: position.top || '',\n left: position.left || ''\n });\n },\n _updateBoundaries: function () {\n var containment = this.containment;\n if (!containment) {\n return null;\n }\n containment.width = containment.innerWidth();\n containment.height = containment.innerHeight();\n if (parseInt(containment.width, 10) > containment[0].clientWidth) {\n containment.width -= kendo.support.scrollbar();\n }\n if (parseInt(containment.height, 10) > containment[0].clientHeight) {\n containment.height -= kendo.support.scrollbar();\n }\n containment.position = getPosition(containment[0]);\n if (this._isPinned) {\n this.minTop = this.minLeft = -Infinity;\n this.maxTop = this.maxLeft = Infinity;\n } else {\n this.minTop = containment.scrollTop();\n this.minLeft = containment.scrollLeft();\n this.maxLeft = this.minLeft + containment.width - outerWidth(this.wrapper, true);\n this.maxTop = this.minTop + containment.height - outerHeight(this.wrapper, true);\n }\n },\n _animationOptions: function (id) {\n var animation = this.options.animation;\n var basicAnimation = {\n open: { effects: {} },\n close: {\n hide: true,\n effects: {}\n }\n };\n return animation && animation[id] || basicAnimation[id];\n },\n _resize: function () {\n kendo.resize(this.element.children());\n },\n _resizable: function () {\n var resizable = this.options.resizable;\n var wrapper = this.wrapper;\n if (this.resizing) {\n wrapper.off('dblclick' + NS).children(KWINDOWRESIZEHANDLES).remove();\n this.resizing.destroy();\n this.resizing = null;\n }\n if (resizable) {\n wrapper.on('dblclick' + NS, KWINDOWTITLEBAR, proxy(function (e) {\n if (!$(e.target).closest('.k-window-action').length) {\n this.toggleMaximization();\n }\n }, this));\n each('n e s w se sw ne nw'.split(' '), function (index, handler) {\n wrapper.append(templates.resizeHandle(handler));\n });\n this.resizing = new WindowResizing(this);\n }\n wrapper = null;\n },\n _draggable: function () {\n var draggable = this.options.draggable;\n if (this.dragging) {\n this.dragging.destroy();\n this.dragging = null;\n }\n if (draggable) {\n this.dragging = new WindowDragging(this, draggable.dragHandle || KWINDOWTITLEBAR);\n }\n },\n _actions: function () {\n var options = this.options;\n var actions = options.actions;\n var pinned = options.pinned;\n var titlebar = this.wrapper.children(KWINDOWTITLEBAR);\n var container = titlebar.find('.k-window-actions');\n var windowSpecificCommands = [\n 'maximize',\n 'minimize'\n ];\n actions = $.map(actions, function (action) {\n action = pinned && action.toLowerCase() === 'pin' ? 'unpin' : action;\n return { name: windowSpecificCommands.indexOf(action.toLowerCase()) > -1 ? 'window-' + action : action };\n });\n container.html(kendo.render(templates.action, actions));\n },\n setOptions: function (options) {\n var that = this;\n var sizeClass = that.options.size;\n var cachedOptions = JSON.parse(JSON.stringify(options));\n extend(options.position, that.options.position);\n extend(options.position, cachedOptions.position);\n Widget.fn.setOptions.call(that, options);\n var scrollable = that.options.scrollable !== false;\n that.restore();\n if (typeof options.title !== 'undefined') {\n that.title(options.title);\n }\n that.wrapper.removeClass(SIZE[sizeClass]);\n that._dimensions();\n that._position();\n that._resizable();\n that._draggable();\n that._actions();\n if (typeof options.modal !== 'undefined') {\n var visible = that.options.visible !== false;\n that._enableDocumentScrolling();\n that._overlay(options.modal && visible);\n }\n that.element.css(OVERFLOW, scrollable ? '' : 'hidden');\n },\n events: [\n OPEN,\n ACTIVATE,\n DEACTIVATE,\n CLOSE,\n MINIMIZE,\n MAXIMIZE,\n REFRESH,\n RESIZESTART,\n RESIZE,\n RESIZEEND,\n DRAGSTART,\n DRAGEND,\n ERROR\n ],\n options: {\n name: 'Window',\n animation: {\n open: {\n effects: {\n zoom: { direction: 'in' },\n fade: { direction: 'in' }\n },\n duration: 350\n },\n close: {\n effects: {\n zoom: {\n direction: 'out',\n properties: { scale: 0.7 }\n },\n fade: { direction: 'out' }\n },\n duration: 350,\n hide: true\n }\n },\n title: '',\n actions: ['Close'],\n autoFocus: true,\n modal: false,\n size: 'auto',\n resizable: true,\n draggable: true,\n minWidth: 90,\n minHeight: 50,\n maxWidth: Infinity,\n maxHeight: Infinity,\n pinned: false,\n scrollable: true,\n position: {},\n content: null,\n visible: null,\n height: null,\n width: null,\n appendTo: 'body',\n isMaximized: false,\n isMinimized: false\n },\n _closable: function () {\n return $.inArray('close', $.map(this.options.actions, function (x) {\n return x.toLowerCase();\n })) > -1;\n },\n _keydown: function (e) {\n var that = this, options = that.options, keys = kendo.keys, keyCode = e.keyCode, wrapper = that.wrapper, offset, handled, distance = 10, isMaximized = options.isMaximized, isMinimized = options.isMinimized, newWidth, newHeight, w, h;\n if (keyCode == keys.ESC && that._closable()) {\n e.stopPropagation();\n that._close(false);\n }\n if (e.target != e.currentTarget || that._closing) {\n return;\n }\n if (e.altKey && keyCode == 82) {\n that.refresh();\n }\n if (e.altKey && keyCode == 80) {\n if (that.options.pinned) {\n that.unpin();\n } else {\n that.pin();\n }\n }\n if (e.altKey && keyCode == keys.UP) {\n if (isMinimized) {\n that.restore();\n that.element.focus();\n } else if (!isMaximized) {\n that.maximize();\n that.element.focus();\n }\n } else if (e.altKey && keyCode == keys.DOWN) {\n if (!isMinimized && !isMaximized) {\n that.minimize();\n that.wrapper.focus();\n } else if (isMaximized) {\n that.restore();\n that.element.focus();\n }\n }\n offset = kendo.getOffset(wrapper);\n if (that.containment && !that._isPinned) {\n offset = that.options.position;\n }\n if (options.draggable && !e.ctrlKey && !e.altKey && !isMaximized) {\n that._updateBoundaries();\n if (keyCode == keys.UP) {\n offset.top = constrain(offset.top - distance, that.minTop, that.maxTop);\n handled = wrapper.css('top', offset.top);\n } else if (keyCode == keys.DOWN) {\n offset.top = constrain(offset.top + distance, that.minTop, that.maxTop);\n handled = wrapper.css('top', offset.top);\n } else if (keyCode == keys.LEFT) {\n offset.left = constrain(offset.left - distance, that.minLeft, that.maxLeft);\n handled = wrapper.css('left', offset.left);\n } else if (keyCode == keys.RIGHT) {\n offset.left = constrain(offset.left + distance, that.minLeft, that.maxLeft);\n handled = wrapper.css('left', offset.left);\n }\n }\n if (options.resizable && e.ctrlKey && !isMaximized && !isMinimized) {\n if (keyCode == keys.UP) {\n handled = true;\n newHeight = wrapper.height() - distance;\n } else if (keyCode == keys.DOWN) {\n handled = true;\n if (that.containment && !that._isPinned) {\n newHeight = Math.min(wrapper.height() + distance, that.containment.height - offset.top - toInt(wrapper, 'padding-top') - toInt(wrapper, 'borderBottomWidth') - toInt(wrapper, 'borderTopWidth'));\n } else {\n newHeight = wrapper.height() + distance;\n }\n }\n if (keyCode == keys.LEFT) {\n handled = true;\n newWidth = wrapper.width() - distance;\n } else if (keyCode == keys.RIGHT) {\n handled = true;\n if (that.containment && !that._isPinned) {\n newWidth = Math.min(wrapper.width() + distance, that.containment.width - offset.left - toInt(wrapper, 'borderLeftWidth') - toInt(wrapper, 'borderRightWidth'));\n } else {\n newWidth = wrapper.width() + distance;\n }\n }\n if (handled) {\n w = constrain(newWidth, options.minWidth, options.maxWidth);\n h = constrain(newHeight, options.minHeight, options.maxHeight);\n if (!isNaN(w)) {\n wrapper.width(w);\n that.options.width = w + 'px';\n }\n if (!isNaN(h)) {\n wrapper.height(h);\n that.options.height = h + 'px';\n }\n that.resize();\n }\n }\n if (handled) {\n e.preventDefault();\n }\n },\n _overlay: function (visible) {\n var overlay = this.containment ? this.containment.children(KOVERLAY) : this.appendTo.children(KOVERLAY), wrapper = this.wrapper;\n if (!overlay.length) {\n overlay = $('
          ');\n }\n overlay.insertBefore(wrapper[0]).toggle(visible).css(ZINDEX, parseInt(wrapper.css(ZINDEX), 10) - 1);\n if (this.options.modal.preventScroll && !this.containment) {\n this._stopDocumentScrolling();\n }\n return overlay;\n },\n _actionForIcon: function (icon) {\n var iconClass = /\\bk-i(-\\w+)+\\b/.exec(icon[0].className)[0];\n return {\n 'k-i-close': '_close',\n 'k-i-window-maximize': 'maximize',\n 'k-i-window-minimize': 'minimize',\n 'k-i-window-restore': 'restore',\n 'k-i-refresh': 'refresh',\n 'k-i-pin': 'pin',\n 'k-i-unpin': 'unpin'\n }[iconClass];\n },\n _windowActionHandler: function (e) {\n if (this._closing) {\n return;\n }\n var icon = $(e.target).closest('.k-window-action').find('.k-icon');\n var action = this._actionForIcon(icon);\n if (action) {\n e.preventDefault();\n this[action]();\n return false;\n }\n },\n _modals: function () {\n var that = this;\n var zStack = $(KWINDOW).filter(function () {\n var dom = $(this);\n var object = that._object(dom);\n var options = object && object.options;\n return options && options.modal && options.visible && options.appendTo === that.options.appendTo && dom.is(VISIBLE);\n }).sort(function (a, b) {\n return +$(a).css('zIndex') - +$(b).css('zIndex');\n });\n that = null;\n return zStack;\n },\n _object: function (element) {\n var content = element.children(KWINDOWCONTENT);\n var widget = kendo.widgetInstance(content);\n if (widget) {\n return widget;\n }\n return undefined;\n },\n center: function () {\n var that = this, position = that.options.position, wrapper = that.wrapper, documentWindow = $(window), scrollTop = 0, scrollLeft = 0, newTop, newLeft;\n if (that.options.isMaximized) {\n return that;\n }\n if (that.options.pinned && !that._isPinned) {\n that.pin();\n }\n if (!that.options.pinned) {\n scrollTop = documentWindow.scrollTop();\n scrollLeft = documentWindow.scrollLeft();\n }\n if (this.containment && !that.options.pinned) {\n newTop = this.minTop + (this.maxTop - this.minTop) / 2;\n newLeft = this.minLeft + (this.maxLeft - this.minLeft) / 2;\n } else {\n that._scrollIsAppended = true;\n newLeft = scrollLeft + Math.max(0, (documentWindow.width() - wrapper.width()) / 2);\n newTop = scrollTop + Math.max(0, (documentWindow.height() - wrapper.height() - toInt(wrapper, 'paddingTop')) / 2);\n }\n wrapper.css({\n left: newLeft,\n top: newTop\n });\n position.top = newTop;\n position.left = newLeft;\n return that;\n },\n title: function (title) {\n var that = this, value, encoded = true, wrapper = that.wrapper, titleBar = wrapper.children(KWINDOWTITLEBAR), titleElement = titleBar.children(KWINDOWTITLE), titleBarHeight, display, visibility;\n if (!arguments.length) {\n return titleElement.html();\n }\n if ($.isPlainObject(title)) {\n value = typeof title.text !== 'undefined' ? title.text : '';\n encoded = title.encoded !== false;\n } else {\n value = title;\n }\n if (value === false) {\n wrapper.addClass('k-window-titleless');\n wrapper.css('padding-top', 0);\n titleBar.remove();\n } else {\n if (!titleBar.length) {\n wrapper.prepend(templates.titlebar({ title: encoded ? kendo.htmlEncode(value) : value }));\n that._actions();\n titleBar = wrapper.children(KWINDOWTITLEBAR);\n } else {\n titleElement.html(encoded ? kendo.htmlEncode(value) : value);\n }\n visibility = wrapper.css('visibility');\n display = wrapper.css('display');\n if (visibility === HIDDEN) {\n wrapper.css({ display: '' });\n titleBarHeight = parseInt(outerHeight(titleBar), 10);\n wrapper.css({ display: display });\n } else {\n wrapper.css({\n visibility: HIDDEN,\n display: ''\n });\n titleBarHeight = parseInt(outerHeight(titleBar), 10);\n wrapper.css({\n visibility: visibility,\n display: display\n });\n }\n wrapper.css('padding-top', titleBarHeight);\n titleBar.css('margin-top', -titleBarHeight);\n }\n that.options.title = value;\n return that;\n },\n content: function (html, data) {\n var content = this.wrapper.children(KWINDOWCONTENT), scrollContainer = content.children('.km-scroll-container');\n content = scrollContainer[0] ? scrollContainer : content;\n if (!defined(html)) {\n return content.html();\n }\n this.angular('cleanup', function () {\n return { elements: content.children() };\n });\n kendo.destroy(this.element.children());\n content.empty().html(html);\n this.angular('compile', function () {\n var a = [];\n for (var i = content.length; --i >= 0;) {\n a.push({ dataItem: data });\n }\n return {\n elements: content.children(),\n data: a\n };\n });\n return this;\n },\n open: function () {\n var that = this, wrapper = that.wrapper, options = that.options, showOptions = this._animationOptions('open'), contentElement = wrapper.children(KWINDOWCONTENT), overlay, otherModalsVisible, containmentContext = this.containment && !that._isPinned, doc = containmentContext ? this.containment : $(document);\n if (!that.trigger(OPEN)) {\n if (that._closing) {\n wrapper.kendoStop(true, true);\n }\n that._closing = false;\n that.toFront();\n if (options.autoFocus) {\n that.element.focus();\n }\n options.visible = true;\n if (options.modal) {\n otherModalsVisible = !!that._modals().length;\n overlay = that._overlay(otherModalsVisible);\n overlay.kendoStop(true, true);\n if (showOptions.duration && kendo.effects.Fade && !otherModalsVisible) {\n var overlayFx = kendo.fx(overlay).fadeIn();\n overlayFx.duration(showOptions.duration || 0);\n overlayFx.endValue(0.5);\n overlayFx.play();\n } else {\n overlay.css('opacity', 0.5);\n }\n overlay.show();\n $(window).on('focus' + MODAL_NS, function () {\n if (contentElement.data('isFront') && !$(document.activeElement).closest(contentElement).length) {\n that.element.focus();\n }\n });\n }\n if (!wrapper.is(VISIBLE)) {\n contentElement.css(OVERFLOW, HIDDEN);\n that.wrapper.find(TITLEBAR_BUTTONS).addClass('k-flat');\n wrapper.show().kendoStop().kendoAnimate({\n effects: showOptions.effects,\n duration: showOptions.duration,\n complete: proxy(this._activate, this)\n });\n }\n }\n if (options.isMaximized) {\n that._containerScrollTop = doc.scrollTop();\n that._containerScrollLeft = doc.scrollLeft();\n that._stopDocumentScrolling();\n }\n if (this.options.pinned && !this._isPinned) {\n this.pin();\n }\n return that;\n },\n _activate: function () {\n var scrollable = this.options.scrollable !== false;\n if (this.options.autoFocus) {\n this.element.focus();\n }\n this.element.css(OVERFLOW, scrollable ? '' : 'hidden');\n kendo.resize(this.element.children());\n this.trigger(ACTIVATE);\n },\n _removeOverlay: function (suppressAnimation) {\n var modals = this._modals();\n var options = this.options;\n var hideOverlay = options.modal && !modals.length;\n var overlay = options.modal ? this._overlay(true) : $(undefined);\n var hideOptions = this._animationOptions('close');\n if (hideOverlay) {\n if (!suppressAnimation && hideOptions.duration && kendo.effects.Fade) {\n var overlayFx = kendo.fx(overlay).fadeOut();\n overlayFx.duration(hideOptions.duration || 0);\n overlayFx.startValue(0.5);\n overlayFx.play();\n } else {\n this._overlay(false).remove();\n }\n if (options.modal.preventScroll) {\n this._enableDocumentScrolling();\n }\n } else if (modals.length) {\n this._object(modals.last())._overlay(true);\n if (options.modal.preventScroll) {\n this._stopDocumentScrolling();\n }\n }\n },\n _close: function (systemTriggered) {\n var that = this, wrapper = that.wrapper, options = that.options, showOptions = this._animationOptions('open'), hideOptions = this._animationOptions('close'), containmentContext = this.containment && !that._isPinned, doc = containmentContext ? this.containment : $(document), defaultPrevented;\n if (that._closing) {\n return;\n }\n defaultPrevented = that.trigger(CLOSE, { userTriggered: !systemTriggered });\n that._closing = !defaultPrevented;\n if (wrapper.is(VISIBLE) && !defaultPrevented) {\n options.visible = false;\n $(KWINDOW).each(function (i, element) {\n var contentElement = $(element).children(KWINDOWCONTENT);\n if (element != wrapper && contentElement.find('> .' + KCONTENTFRAME).length > 0) {\n contentElement.children(KOVERLAY).remove();\n }\n });\n this._removeOverlay();\n that.wrapper.find(TITLEBAR_BUTTONS).removeClass('k-flat');\n wrapper.kendoStop().kendoAnimate({\n effects: hideOptions.effects || showOptions.effects,\n reverse: hideOptions.reverse === true,\n duration: hideOptions.duration,\n complete: proxy(this._deactivate, this)\n });\n $(window).off(MODAL_NS);\n }\n if (that.options.isMaximized) {\n that._enableDocumentScrolling();\n if (that._containerScrollTop && that._containerScrollTop > 0) {\n doc.scrollTop(that._containerScrollTop);\n }\n if (that._containerScrollLeft && that._containerScrollLeft > 0) {\n doc.scrollLeft(that._containerScrollLeft);\n }\n }\n },\n _deactivate: function () {\n var that = this;\n that.wrapper.hide().css('opacity', '');\n that.trigger(DEACTIVATE);\n if (that.options.modal) {\n var lastModal = that._object(that._modals().last());\n if (lastModal) {\n lastModal.toFront();\n }\n }\n },\n close: function () {\n this._close(true);\n return this;\n },\n _actionable: function (element) {\n return $(element).is(TITLEBAR_BUTTONS + ',' + TITLEBAR_BUTTONS + ' .k-icon,:input,a');\n },\n _shouldFocus: function (target) {\n var active = activeElement(), element = this.element;\n return this.options.autoFocus && !$(active).is(element) && !this._actionable(target) && (!element.find(active).length || !element.find(target).length);\n },\n toFront: function (e) {\n var that = this, wrapper = that.wrapper, currentWindow = wrapper[0], containmentContext = that.containment && !that._isPinned, zIndex = +wrapper.css(ZINDEX), originalZIndex = zIndex, target = e && e.target || null;\n $(KWINDOW).each(function (i, element) {\n var windowObject = $(element), zIndexNew = windowObject.css(ZINDEX), contentElement = windowObject.children(KWINDOWCONTENT);\n if (!isNaN(zIndexNew)) {\n zIndex = Math.max(+zIndexNew, zIndex);\n }\n contentElement.data('isFront', element == currentWindow);\n if (element != currentWindow && contentElement.find('> .' + KCONTENTFRAME).length > 0) {\n contentElement.append(templates.overlay);\n }\n });\n if (!wrapper[0].style.zIndex || originalZIndex < zIndex) {\n wrapper.css(ZINDEX, zIndex + 2);\n }\n that.element.find('> .k-overlay').remove();\n if (that._shouldFocus(target)) {\n if (that.isMinimized()) {\n that.wrapper.focus();\n } else if ($(target).is(KOVERLAY)) {\n setTimeout(function () {\n that.element.focus();\n });\n } else {\n that.element.focus();\n }\n var scrollTop = containmentContext ? that.containment.scrollTop() : $(window).scrollTop(), windowTop = parseInt(wrapper.position().top, 10);\n if (!that.options.pinned && windowTop > 0 && windowTop < scrollTop) {\n if (scrollTop > 0) {\n $(window).scrollTop(windowTop);\n } else {\n wrapper.css('top', scrollTop);\n }\n }\n }\n wrapper = null;\n return that;\n },\n toggleMaximization: function () {\n if (this._closing) {\n return this;\n }\n return this[this.options.isMaximized ? 'restore' : 'maximize']();\n },\n restore: function () {\n var that = this;\n var options = that.options;\n var minHeight = options.minHeight;\n var restoreOptions = that.restoreOptions;\n var shouldRestrictTop;\n var container = that.containment && !that._isPinned ? that.containment : $(document);\n if (!options.isMaximized && !options.isMinimized) {\n return that;\n }\n if (minHeight && minHeight != Infinity) {\n that.wrapper.css('min-height', minHeight);\n }\n if (restoreOptions && !options.isMaximized) {\n restoreOptions.height = constrain(restoreOptions.height, that.options.minHeight, that.options.maxHeight);\n shouldRestrictTop = options.position.top + parseInt(restoreOptions.height, 10) > that.maxTop;\n if (shouldRestrictTop) {\n options.position.top = constrain(options.position.top, that.minTop, that.maxTop - parseInt(restoreOptions.height, 10));\n extend(restoreOptions, {\n left: options.position.left,\n top: options.position.top\n });\n }\n }\n that.wrapper.css({\n position: options.pinned ? 'fixed' : 'absolute',\n left: restoreOptions.left,\n top: restoreOptions.top,\n width: restoreOptions.width,\n height: restoreOptions.height\n }).removeClass(MAXIMIZEDSTATE).find('.k-window-content,.k-resize-handle').show().end().find('.k-window-titlebar .k-i-window-restore').parent().remove().end().end().find(MINIMIZE_MAXIMIZE).parent().show().end().end().find(PIN_UNPIN).parent().show();\n if (options.isMaximized) {\n that.wrapper.find('.k-i-window-maximize').parent().focus();\n } else if (options.isMinimized) {\n that.wrapper.find('.k-i-window-minimize').parent().focus();\n }\n that.options.width = restoreOptions.width;\n that.options.height = restoreOptions.height;\n if (!that.options.modal.preventScroll) {\n that._enableDocumentScrolling();\n }\n if (that._containerScrollTop && that._containerScrollTop > 0) {\n container.scrollTop(that._containerScrollTop);\n }\n if (that._containerScrollLeft && that._containerScrollLeft > 0) {\n container.scrollLeft(that._containerScrollLeft);\n }\n options.isMaximized = options.isMinimized = false;\n that.wrapper.removeAttr('tabindex');\n that.wrapper.removeAttr('aria-labelled-by');\n that.resize();\n return that;\n },\n _sizingAction: function (actionId, callback) {\n var that = this, wrapper = that.wrapper, style = wrapper[0].style, options = that.options;\n if (options.isMaximized || options.isMinimized) {\n return that;\n }\n that.restoreOptions = {\n width: style.width,\n height: style.height\n };\n wrapper.children(KWINDOWRESIZEHANDLES).hide().end().children(KWINDOWTITLEBAR).find(MINIMIZE_MAXIMIZE).parent().hide().eq(0).before(templates.action({ name: 'window-restore' }));\n callback.call(that);\n that.wrapper.children(KWINDOWTITLEBAR).find(PIN_UNPIN).parent().toggle(actionId !== 'maximize');\n that.trigger(actionId);\n wrapper.find('.k-i-window-restore').parent().focus();\n return that;\n },\n maximize: function () {\n this._sizingAction('maximize', function () {\n var that = this, wrapper = that.wrapper, containmentContext = this.containment && !that._isPinned, position = wrapper.position(), doc = $(document);\n extend(that.restoreOptions, {\n left: position.left + (containmentContext ? this.containment.scrollLeft() : 0),\n top: position.top + (containmentContext ? this.containment.scrollTop() : 0)\n });\n this._containerScrollTop = containmentContext ? this.containment.scrollTop() : doc.scrollTop();\n this._containerScrollLeft = containmentContext ? this.containment.scrollLeft() : doc.scrollLeft();\n that._stopDocumentScrolling();\n wrapper.css({\n top: containmentContext ? this.containment.scrollTop() : 0,\n left: containmentContext ? this.containment.scrollLeft() : 0,\n position: containmentContext ? 'absolute' : 'fixed'\n }).addClass(MAXIMIZEDSTATE);\n that.options.isMaximized = true;\n that._onDocumentResize();\n });\n return this;\n },\n _stopDocumentScrolling: function () {\n var that = this;\n var containment = that.containment;\n if (containment && !that._isPinned) {\n that._storeOverflowRule(containment);\n containment.css(OVERFLOW, HIDDEN);\n that.wrapper.css({\n maxWidth: containment.innerWidth(),\n maxHeight: containment.innerHeight()\n });\n return;\n }\n var $body = $('body');\n that._storeOverflowRule($body);\n $body.css(OVERFLOW, HIDDEN);\n var $html = $('html');\n that._storeOverflowRule($html);\n $html.css(OVERFLOW, HIDDEN);\n },\n _enableDocumentScrolling: function () {\n var that = this;\n var containment = that.containment;\n if (containment && !that._isPinned) {\n that._restoreOverflowRule(containment);\n that.wrapper.css({\n maxWidth: containment.width,\n maxHeight: containment.height\n });\n return;\n }\n that._restoreOverflowRule($(document.body));\n that._restoreOverflowRule($('html'));\n },\n _storeOverflowRule: function ($element) {\n if (this._isOverflowStored($element)) {\n return;\n }\n var overflowRule = $element.get(0).style.overflow;\n if (typeof overflowRule === 'string') {\n $element.data(DATADOCOVERFLOWRULE, overflowRule);\n }\n },\n _isOverflowStored: function ($element) {\n return typeof $element.data(DATADOCOVERFLOWRULE) === 'string';\n },\n _restoreOverflowRule: function ($element) {\n var overflowRule = $element.data(DATADOCOVERFLOWRULE);\n if (overflowRule !== null && overflowRule !== undefined) {\n $element.css(OVERFLOW, overflowRule);\n $element.removeData(DATADOCOVERFLOWRULE);\n } else {\n $element.css(OVERFLOW, '');\n }\n },\n isMaximized: function () {\n return this.options.isMaximized;\n },\n minimize: function () {\n this._sizingAction('minimize', function () {\n var that = this;\n that.wrapper.css({\n height: '',\n minHeight: ''\n });\n that.element.hide();\n that.options.isMinimized = true;\n });\n this.wrapper.attr('tabindex', 0);\n this.wrapper.attr('aria-labelled-by', this.element.attr('aria-labelled-by'));\n this._updateBoundaries();\n return this;\n },\n isMinimized: function () {\n return this.options.isMinimized;\n },\n pin: function () {\n var that = this, win = $(window), wrapper = that.wrapper, options = that.options, position = options.position, top = this.containment ? getPosition(wrapper[0]).top + toInt(this.containment, 'borderTopWidth') : toInt(wrapper, 'top'), left = this.containment ? getPosition(wrapper[0]).left + toInt(this.containment, 'borderLeftWidth') : toInt(wrapper, 'left');\n if (!that.options.isMaximized) {\n position.top = top;\n position.left = left;\n if (that._scrollIsAppended && (!this.containment || this.containment.css('position') !== 'fixed')) {\n position.top -= win.scrollTop();\n position.left -= win.scrollLeft();\n that._scrollIsAppended = false;\n }\n wrapper.css(extend(position, { position: 'fixed' }));\n wrapper.children(KWINDOWTITLEBAR).find(KPIN).addClass('k-i-unpin').removeClass('k-i-pin');\n that._isPinned = true;\n that.options.pinned = true;\n if (this.containment) {\n options.maxWidth = options.maxHeight = Infinity;\n wrapper.css({\n maxWidth: '',\n maxHeight: ''\n });\n }\n }\n },\n unpin: function () {\n var that = this, win = $(window), wrapper = that.wrapper, options = that.options, position = that.options.position, containment = that.containment, top = parseInt(wrapper.css('top'), 10) + win.scrollTop(), left = parseInt(wrapper.css('left'), 10) + win.scrollLeft();\n if (!that.options.isMaximized) {\n that._isPinned = false;\n that._scrollIsAppended = true;\n that.options.pinned = false;\n if (containment) {\n that._updateBoundaries();\n options.maxWidth = Math.min(containment.width, options.maxWidth);\n options.maxHeight = Math.min(containment.height - toInt(wrapper, 'padding-top'), options.maxHeight);\n wrapper.css({\n maxWidth: options.maxWidth,\n maxHeight: options.maxHeight\n });\n if (top < containment.position.top) {\n top = that.minTop;\n } else if (top > containment.position.top + containment.height) {\n top = that.maxTop;\n } else {\n top = top + containment.scrollTop() - (containment.position.top + toInt(containment, 'border-top-width'));\n }\n if (left < containment.position.left) {\n left = that.minLeft;\n } else if (left > containment.position.left + containment.width) {\n left = that.maxLeft;\n } else {\n left = left + containment.scrollLeft() - (containment.position.left + toInt(containment, 'border-left-width'));\n }\n }\n position.top = constrain(top, that.minTop, that.maxTop);\n position.left = constrain(left, that.minLeft, that.maxLeft);\n wrapper.css(extend(position, { position: '' }));\n wrapper.children(KWINDOWTITLEBAR).find(KUNPIN).addClass('k-i-pin').removeClass('k-i-unpin');\n }\n },\n _onDocumentResize: function () {\n var that = this, wrapper = that.wrapper, wnd = $(window), zoomLevel = kendo.support.zoomLevel(), contentBoxSizing = wrapper.css('box-sizing') == 'content-box', w, h;\n if (!that.options.isMaximized) {\n return;\n }\n var lrBorderWidth = contentBoxSizing ? toInt(wrapper, 'border-left-width') + toInt(wrapper, 'border-right-width') : 0;\n var tbBorderWidth = contentBoxSizing ? toInt(wrapper, 'border-top-width') + toInt(wrapper, 'border-bottom-width') : 0;\n var paddingTop = contentBoxSizing ? toInt(wrapper, 'padding-top') : 0;\n if (that.containment && !that._isPinned) {\n w = that.containment.innerWidth() - lrBorderWidth;\n h = that.containment.innerHeight() - (tbBorderWidth + paddingTop);\n } else {\n w = wnd.width() / zoomLevel - lrBorderWidth;\n h = wnd.height() / zoomLevel - (tbBorderWidth + paddingTop);\n }\n wrapper.css({\n width: w,\n height: h\n });\n that.options.width = w;\n that.options.height = h;\n that.resize();\n },\n refresh: function (options) {\n var that = this, initOptions = that.options, element = $(that.element), iframe, showIframe, url;\n if (!isPlainObject(options)) {\n options = { url: options };\n }\n options = extend({}, initOptions.content, options);\n showIframe = defined(initOptions.iframe) ? initOptions.iframe : options.iframe;\n url = options.url;\n if (url) {\n if (!defined(showIframe)) {\n showIframe = !isLocalUrl(url);\n }\n if (!showIframe) {\n that._ajaxRequest(options);\n } else {\n iframe = element.find('.' + KCONTENTFRAME)[0];\n if (iframe) {\n iframe.src = url || iframe.src;\n } else {\n element.html(templates.contentFrame(extend({}, initOptions, { content: options })));\n }\n element.find('.' + KCONTENTFRAME).unbind('load' + NS).on('load' + NS, proxy(this._triggerRefresh, this));\n }\n } else {\n if (options.template) {\n that.content(template(options.template)({}));\n }\n that.trigger(REFRESH);\n }\n element.toggleClass('k-window-iframecontent', !!showIframe);\n return that;\n },\n _triggerRefresh: function () {\n this.trigger(REFRESH);\n },\n _ajaxComplete: function () {\n clearTimeout(this._loadingIconTimeout);\n this.wrapper.find(REFRESHICON).removeClass(LOADING);\n },\n _ajaxError: function (xhr, status) {\n this.trigger(ERROR, {\n status: status,\n xhr: xhr\n });\n },\n _ajaxSuccess: function (contentTemplate) {\n return function (data) {\n var html = data;\n if (contentTemplate) {\n html = template(contentTemplate)(data || {});\n }\n this.content(html, data);\n this.element.prop('scrollTop', 0);\n this.trigger(REFRESH);\n };\n },\n _showLoading: function () {\n this.wrapper.find(REFRESHICON).addClass(LOADING);\n },\n _ajaxRequest: function (options) {\n this._loadingIconTimeout = setTimeout(proxy(this._showLoading, this), 100);\n $.ajax(extend({\n type: 'GET',\n dataType: 'html',\n cache: false,\n error: proxy(this._ajaxError, this),\n complete: proxy(this._ajaxComplete, this),\n success: proxy(this._ajaxSuccess(options.template), this)\n }, options));\n },\n _destroy: function () {\n if (this.resizing) {\n this.resizing.destroy();\n }\n if (this.dragging) {\n this.dragging.destroy();\n }\n this.wrapper.off(NS).children(KWINDOWCONTENT).off(NS).end().find('.k-resize-handle,.k-window-titlebar').off(NS);\n $(window).off('resize' + NS + this._marker);\n $(window).off(MODAL_NS);\n $(window).off(NS);\n clearTimeout(this._loadingIconTimeout);\n Widget.fn.destroy.call(this);\n this.unbind(undefined);\n kendo.destroy(this.wrapper);\n this._removeOverlay(true);\n },\n destroy: function () {\n this._destroy();\n this.wrapper.empty().remove();\n this.wrapper = this.appendTo = this.element = $();\n },\n _createWindow: function () {\n var contentHtml = this.element, options = this.options, iframeSrcAttributes, wrapper, isRtl = kendo.support.isRtl(contentHtml);\n if (options.scrollable === false) {\n contentHtml.css('overflow', 'hidden');\n }\n wrapper = $(templates.wrapper(options));\n iframeSrcAttributes = contentHtml.find('iframe:not(.k-content-frame)').map(function () {\n var src = this.getAttribute('src');\n this.src = '';\n return src;\n });\n wrapper.toggleClass('k-rtl', isRtl).append(contentHtml).find('iframe:not(.k-content-frame)').each(function (index) {\n this.src = iframeSrcAttributes[index];\n });\n if (this.containment) {\n this.containment.prepend(wrapper);\n } else if (this.appendTo) {\n wrapper.appendTo(this.appendTo);\n }\n wrapper.find('.k-window-title').css(isRtl ? 'left' : 'right', outerWidth(wrapper.find('.k-window-actions')) + 10);\n contentHtml.css('visibility', '').show();\n contentHtml.find('[data-role=editor]').each(function () {\n var editor = $(this).data('kendoEditor');\n if (editor) {\n editor.refresh();\n }\n });\n wrapper = contentHtml = null;\n }\n });\n templates = {\n wrapper: template('
          '),\n action: template('' + '' + ''),\n titlebar: template('
          ' + '#= title #' + '
          ' + '
          '),\n overlay: '
          ',\n contentFrame: template(''),\n resizeHandle: template('
          ')\n };\n function WindowResizing(wnd) {\n var that = this;\n that.owner = wnd;\n that._preventDragging = false;\n that._draggable = new Draggable(wnd.wrapper, {\n filter: '>' + KWINDOWRESIZEHANDLES,\n group: wnd.wrapper.id + '-resizing',\n dragstart: proxy(that.dragstart, that),\n drag: proxy(that.drag, that),\n dragend: proxy(that.dragend, that)\n });\n that._draggable.userEvents.bind('press', proxy(that.addOverlay, that));\n that._draggable.userEvents.bind('release', proxy(that.removeOverlay, that));\n }\n WindowResizing.prototype = {\n addOverlay: function () {\n this.owner.wrapper.append(templates.overlay);\n },\n removeOverlay: function () {\n this.owner.wrapper.find(KOVERLAY).remove();\n },\n dragstart: function (e) {\n var that = this;\n var wnd = that.owner;\n var wrapper = wnd.wrapper;\n that._preventDragging = wnd.trigger(RESIZESTART);\n if (that._preventDragging) {\n return;\n }\n that.elementPadding = parseInt(wrapper.css('padding-top'), 10);\n that.initialPosition = kendo.getOffset(wrapper, 'position');\n that.resizeDirection = e.currentTarget.prop('className').replace('k-resize-handle k-resize-', '');\n that.initialSize = {\n width: wrapper.width(),\n height: wrapper.height()\n };\n wnd._updateBoundaries();\n that.containerOffset = wnd.containment ? wnd.containment.position : kendo.getOffset(wnd.appendTo, 'position');\n var offsetParent = wrapper.offsetParent();\n if (offsetParent.is('html')) {\n that.containerOffset.top = that.containerOffset.left = 0;\n } else {\n var marginTop = offsetParent.css('margin-top');\n var marginLeft = offsetParent.css('margin-left');\n var hasMargin = !zero.test(marginTop) || !zero.test(marginLeft);\n if (hasMargin) {\n var wrapperPosition = getPosition(wrapper[0]);\n var relativeElMarginLeft = wrapperPosition.left - that.containerOffset.left - that.initialPosition.left;\n var relativeElMarginTop = wrapperPosition.top - that.containerOffset.top - that.initialPosition.top;\n that._relativeElMarginLeft = relativeElMarginLeft > 1 ? relativeElMarginLeft : 0;\n that._relativeElMarginTop = relativeElMarginTop > 1 ? relativeElMarginTop : 0;\n that.initialPosition.left += that._relativeElMarginLeft;\n that.initialPosition.top += that._relativeElMarginTop;\n }\n }\n wrapper.children(KWINDOWRESIZEHANDLES).not(e.currentTarget).hide();\n $(BODY).css(CURSOR, e.currentTarget.css(CURSOR));\n },\n drag: function (e) {\n if (this._preventDragging) {\n return;\n }\n var that = this, wnd = that.owner, wrapper = wnd.wrapper, options = wnd.options, position = options.position, direction = that.resizeDirection, containerOffset = that.containerOffset, initialPosition = that.initialPosition, initialSize = that.initialSize, containmentContext = wnd.containment && !wnd._isPinned, rtl = kendo.support.isRtl(wnd.containment), leftRtlOffset = containmentContext && rtl && wnd.containment.innerWidth() > wnd.containment.width ? kendo.support.scrollbar() : 0, scrollOffset = containmentContext ? {\n top: wnd.containment.scrollTop(),\n left: wnd.containment.scrollLeft()\n } : {\n top: 0,\n left: 0\n }, newWidth, newHeight, windowBottom, windowRight, x = Math.max(e.x.location, 0), y = Math.max(e.y.location, 0);\n if (direction.indexOf('e') >= 0) {\n if (wnd.containment && x - initialSize.width >= wnd.maxLeft - scrollOffset.left + containerOffset.left + leftRtlOffset) {\n newWidth = wnd.maxLeft + leftRtlOffset - initialPosition.left + initialSize.width - scrollOffset.left;\n } else {\n newWidth = x - initialPosition.left - containerOffset.left;\n }\n wrapper.width(constrain(newWidth, options.minWidth, options.maxWidth));\n } else if (direction.indexOf('w') >= 0) {\n windowRight = initialPosition.left + initialSize.width + containerOffset.left;\n newWidth = constrain(windowRight - x, options.minWidth, options.maxWidth);\n position.left = windowRight - newWidth - containerOffset.left - leftRtlOffset - (that._relativeElMarginLeft || 0) + scrollOffset.left;\n if (wnd.containment && position.left <= wnd.minLeft) {\n position.left = wnd.minLeft;\n newWidth = constrain(windowRight - leftRtlOffset - position.left - containerOffset.left + scrollOffset.left, options.minWidth, options.maxWidth);\n }\n wrapper.css({\n left: position.left,\n width: newWidth\n });\n }\n var newWindowTop = y;\n if (wnd.options.pinned) {\n newWindowTop -= $(window).scrollTop();\n }\n if (direction.indexOf('s') >= 0) {\n newHeight = newWindowTop - initialPosition.top - that.elementPadding - containerOffset.top;\n if (newWindowTop - initialSize.height - that.elementPadding >= wnd.maxTop + containerOffset.top - scrollOffset.top) {\n newHeight = wnd.maxTop - initialPosition.top + initialSize.height - scrollOffset.top;\n }\n wrapper.height(constrain(newHeight, options.minHeight, options.maxHeight));\n } else if (direction.indexOf('n') >= 0) {\n windowBottom = initialPosition.top + initialSize.height + containerOffset.top;\n newHeight = constrain(windowBottom - newWindowTop, options.minHeight, options.maxHeight);\n position.top = windowBottom - newHeight - containerOffset.top - (that._relativeElMarginTop || 0) + scrollOffset.top;\n if (position.top <= wnd.minTop && wnd.containment) {\n position.top = wnd.minTop;\n newHeight = constrain(windowBottom - position.top - containerOffset.top + scrollOffset.top, options.minHeight, options.maxHeight);\n }\n wrapper.css({\n top: position.top,\n height: newHeight\n });\n }\n if (newWidth) {\n wnd.options.width = newWidth + 'px';\n }\n if (newHeight) {\n wnd.options.height = newHeight + 'px';\n }\n wnd.resize();\n },\n dragend: function (e) {\n if (this._preventDragging) {\n return;\n }\n var that = this, wnd = that.owner, wrapper = wnd.wrapper;\n wrapper.children(KWINDOWRESIZEHANDLES).not(e.currentTarget).show();\n $(BODY).css(CURSOR, '');\n if (wnd.touchScroller) {\n wnd.touchScroller.reset();\n }\n if (e.keyCode == 27) {\n wrapper.css(that.initialPosition).css(that.initialSize);\n }\n wnd.trigger(RESIZEEND);\n return false;\n },\n destroy: function () {\n if (this._draggable) {\n this._draggable.destroy();\n }\n this._draggable = this.owner = null;\n }\n };\n function WindowDragging(wnd, dragHandle) {\n var that = this;\n that.owner = wnd;\n that._preventDragging = false;\n that._draggable = new Draggable(wnd.wrapper, {\n filter: dragHandle,\n group: wnd.wrapper.id + '-moving',\n dragstart: proxy(that.dragstart, that),\n drag: proxy(that.drag, that),\n dragend: proxy(that.dragend, that),\n dragcancel: proxy(that.dragcancel, that)\n });\n that._draggable.userEvents.stopPropagation = false;\n }\n WindowDragging.prototype = {\n dragstart: function (e) {\n var wnd = this.owner, draggable = wnd.options.draggable, element = wnd.element, actions = element.find('.k-window-actions'), containerOffset = kendo.getOffset(wnd.appendTo);\n this._preventDragging = wnd.trigger(DRAGSTART) || !draggable;\n if (this._preventDragging || wnd.isMaximized()) {\n return;\n }\n wnd.initialWindowPosition = kendo.getOffset(wnd.wrapper, 'position');\n wnd.initialPointerPosition = {\n left: wnd.options.position.left,\n top: wnd.options.position.top\n };\n wnd.startPosition = {\n left: e.x.client - wnd.initialWindowPosition.left,\n top: e.y.client - wnd.initialWindowPosition.top\n };\n wnd._updateBoundaries();\n if (!wnd.containment) {\n if (actions.length > 0) {\n wnd.minLeft = outerWidth(actions) + parseInt(actions.css('right'), 10) - outerWidth(element);\n } else {\n wnd.minLeft = 20 - outerWidth(element);\n }\n wnd.minLeft -= containerOffset.left;\n wnd.minTop = -containerOffset.top;\n }\n wnd.wrapper.append(templates.overlay).children(KWINDOWRESIZEHANDLES).hide();\n $(BODY).css(CURSOR, e.currentTarget.css(CURSOR));\n },\n drag: function (e) {\n var wnd = this.owner;\n var position = wnd.options.position;\n var axis = wnd.options.draggable.axis;\n var left;\n var top;\n if (this._preventDragging || wnd.isMaximized()) {\n return;\n }\n if (!axis || axis.toLowerCase() === 'x') {\n left = e.x.client - wnd.startPosition.left;\n if (wnd.containment && !wnd._isPinned) {\n left += wnd.containment.scrollLeft();\n }\n position.left = constrain(left, wnd.minLeft, wnd.maxLeft);\n }\n if (!axis || axis.toLowerCase() === 'y') {\n top = e.y.client - wnd.startPosition.top;\n if (wnd.containment && !wnd._isPinned) {\n top += wnd.containment.scrollTop();\n }\n position.top = constrain(top, wnd.minTop, wnd.maxTop);\n }\n if (kendo.support.transforms) {\n $(wnd.wrapper).css('transform', 'translate(' + (position.left - wnd.initialPointerPosition.left) + 'px, ' + (position.top - wnd.initialPointerPosition.top) + 'px)');\n } else {\n $(wnd.wrapper).css(position);\n }\n },\n _finishDrag: function () {\n var wnd = this.owner;\n wnd.wrapper.children(KWINDOWRESIZEHANDLES).toggle(!wnd.options.isMinimized).end().find(KOVERLAY).remove();\n $(BODY).css(CURSOR, '');\n },\n dragcancel: function (e) {\n if (this._preventDragging) {\n return;\n }\n this._finishDrag();\n e.currentTarget.closest(KWINDOW).css(this.owner.initialWindowPosition);\n },\n dragend: function () {\n var wnd = this.owner;\n if (this._preventDragging || wnd.isMaximized()) {\n return;\n }\n $(wnd.wrapper).css(wnd.options.position).css('transform', '');\n this._finishDrag();\n wnd.trigger(DRAGEND);\n return false;\n },\n destroy: function () {\n if (this._draggable) {\n this._draggable.destroy();\n }\n this._draggable = this.owner = null;\n }\n };\n kendo.ui.plugin(Window);\n }(window.kendo.jQuery));\n return window.kendo;\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('kendo.color', ['kendo.core'], f);\n}(function () {\n var __meta__ = {\n id: 'color',\n name: 'Color utils',\n category: 'framework',\n advanced: true,\n description: 'Color utilities used across components',\n depends: ['core']\n };\n window.kendo = window.kendo || {};\n var Class = kendo.Class;\n var support = kendo.support;\n var namedColors = {\n aliceblue: 'f0f8ff',\n antiquewhite: 'faebd7',\n aqua: '00ffff',\n aquamarine: '7fffd4',\n azure: 'f0ffff',\n beige: 'f5f5dc',\n bisque: 'ffe4c4',\n black: '000000',\n blanchedalmond: 'ffebcd',\n blue: '0000ff',\n blueviolet: '8a2be2',\n brown: 'a52a2a',\n burlywood: 'deb887',\n cadetblue: '5f9ea0',\n chartreuse: '7fff00',\n chocolate: 'd2691e',\n coral: 'ff7f50',\n cornflowerblue: '6495ed',\n cornsilk: 'fff8dc',\n crimson: 'dc143c',\n cyan: '00ffff',\n darkblue: '00008b',\n darkcyan: '008b8b',\n darkgoldenrod: 'b8860b',\n darkgray: 'a9a9a9',\n darkgrey: 'a9a9a9',\n darkgreen: '006400',\n darkkhaki: 'bdb76b',\n darkmagenta: '8b008b',\n darkolivegreen: '556b2f',\n darkorange: 'ff8c00',\n darkorchid: '9932cc',\n darkred: '8b0000',\n darksalmon: 'e9967a',\n darkseagreen: '8fbc8f',\n darkslateblue: '483d8b',\n darkslategray: '2f4f4f',\n darkslategrey: '2f4f4f',\n darkturquoise: '00ced1',\n darkviolet: '9400d3',\n deeppink: 'ff1493',\n deepskyblue: '00bfff',\n dimgray: '696969',\n dimgrey: '696969',\n dodgerblue: '1e90ff',\n firebrick: 'b22222',\n floralwhite: 'fffaf0',\n forestgreen: '228b22',\n fuchsia: 'ff00ff',\n gainsboro: 'dcdcdc',\n ghostwhite: 'f8f8ff',\n gold: 'ffd700',\n goldenrod: 'daa520',\n gray: '808080',\n grey: '808080',\n green: '008000',\n greenyellow: 'adff2f',\n honeydew: 'f0fff0',\n hotpink: 'ff69b4',\n indianred: 'cd5c5c',\n indigo: '4b0082',\n ivory: 'fffff0',\n khaki: 'f0e68c',\n lavender: 'e6e6fa',\n lavenderblush: 'fff0f5',\n lawngreen: '7cfc00',\n lemonchiffon: 'fffacd',\n lightblue: 'add8e6',\n lightcoral: 'f08080',\n lightcyan: 'e0ffff',\n lightgoldenrodyellow: 'fafad2',\n lightgray: 'd3d3d3',\n lightgrey: 'd3d3d3',\n lightgreen: '90ee90',\n lightpink: 'ffb6c1',\n lightsalmon: 'ffa07a',\n lightseagreen: '20b2aa',\n lightskyblue: '87cefa',\n lightslategray: '778899',\n lightslategrey: '778899',\n lightsteelblue: 'b0c4de',\n lightyellow: 'ffffe0',\n lime: '00ff00',\n limegreen: '32cd32',\n linen: 'faf0e6',\n magenta: 'ff00ff',\n maroon: '800000',\n mediumaquamarine: '66cdaa',\n mediumblue: '0000cd',\n mediumorchid: 'ba55d3',\n mediumpurple: '9370d8',\n mediumseagreen: '3cb371',\n mediumslateblue: '7b68ee',\n mediumspringgreen: '00fa9a',\n mediumturquoise: '48d1cc',\n mediumvioletred: 'c71585',\n midnightblue: '191970',\n mintcream: 'f5fffa',\n mistyrose: 'ffe4e1',\n moccasin: 'ffe4b5',\n navajowhite: 'ffdead',\n navy: '000080',\n oldlace: 'fdf5e6',\n olive: '808000',\n olivedrab: '6b8e23',\n orange: 'ffa500',\n orangered: 'ff4500',\n orchid: 'da70d6',\n palegoldenrod: 'eee8aa',\n palegreen: '98fb98',\n paleturquoise: 'afeeee',\n palevioletred: 'd87093',\n papayawhip: 'ffefd5',\n peachpuff: 'ffdab9',\n peru: 'cd853f',\n pink: 'ffc0cb',\n plum: 'dda0dd',\n powderblue: 'b0e0e6',\n purple: '800080',\n red: 'ff0000',\n rosybrown: 'bc8f8f',\n royalblue: '4169e1',\n saddlebrown: '8b4513',\n salmon: 'fa8072',\n sandybrown: 'f4a460',\n seagreen: '2e8b57',\n seashell: 'fff5ee',\n sienna: 'a0522d',\n silver: 'c0c0c0',\n skyblue: '87ceeb',\n slateblue: '6a5acd',\n slategray: '708090',\n slategrey: '708090',\n snow: 'fffafa',\n springgreen: '00ff7f',\n steelblue: '4682b4',\n tan: 'd2b48c',\n teal: '008080',\n thistle: 'd8bfd8',\n tomato: 'ff6347',\n turquoise: '40e0d0',\n violet: 'ee82ee',\n wheat: 'f5deb3',\n white: 'ffffff',\n whitesmoke: 'f5f5f5',\n yellow: 'ffff00',\n yellowgreen: '9acd32'\n };\n var browser = support.browser;\n var matchNamedColor = function (color) {\n var colorNames = Object.keys(namedColors);\n colorNames.push('transparent');\n var regexp = new RegExp('^(' + colorNames.join('|') + ')(\\\\W|$)', 'i');\n matchNamedColor = function (color) {\n return regexp.exec(color);\n };\n return regexp.exec(color);\n };\n var BaseColor = Class.extend({\n init: function () {\n },\n toHSV: function () {\n return this;\n },\n toRGB: function () {\n return this;\n },\n toHex: function () {\n return this.toBytes().toHex();\n },\n toBytes: function () {\n return this;\n },\n toCss: function () {\n return '#' + this.toHex();\n },\n toCssRgba: function () {\n var rgb = this.toBytes();\n return 'rgba(' + rgb.r + ', ' + rgb.g + ', ' + rgb.b + ', ' + parseFloat(Number(this.a).toFixed(3)) + ')';\n },\n toDisplay: function () {\n if (browser.msie && browser.version < 9) {\n return this.toCss();\n }\n return this.toCssRgba();\n },\n equals: function (c) {\n return c === this || c !== null && this.toCssRgba() === parseColor(c).toCssRgba();\n },\n diff: function (other) {\n if (other === null) {\n return NaN;\n }\n var c1 = this.toBytes();\n var c2 = other.toBytes();\n return Math.sqrt(Math.pow((c1.r - c2.r) * 0.3, 2) + Math.pow((c1.g - c2.g) * 0.59, 2) + Math.pow((c1.b - c2.b) * 0.11, 2));\n },\n clone: function () {\n var c = this.toBytes();\n if (c === this) {\n c = new Bytes(c.r, c.g, c.b, c.a);\n }\n return c;\n }\n });\n var RGB = BaseColor.extend({\n init: function (r, g, b, a) {\n BaseColor.fn.init.call(this);\n this.r = r;\n this.g = g;\n this.b = b;\n this.a = a;\n },\n toHSV: function () {\n var ref = this;\n var r = ref.r;\n var g = ref.g;\n var b = ref.b;\n var min = Math.min(r, g, b);\n var max = Math.max(r, g, b);\n var delta = max - min;\n var v = max;\n var h, s;\n if (delta === 0) {\n return new HSV(0, 0, v, this.a);\n }\n if (max !== 0) {\n s = delta / max;\n if (r === max) {\n h = (g - b) / delta;\n } else if (g === max) {\n h = 2 + (b - r) / delta;\n } else {\n h = 4 + (r - g) / delta;\n }\n h *= 60;\n if (h < 0) {\n h += 360;\n }\n } else {\n s = 0;\n h = -1;\n }\n return new HSV(h, s, v, this.a);\n },\n toHSL: function () {\n var ref = this;\n var r = ref.r;\n var g = ref.g;\n var b = ref.b;\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h, s, l = (max + min) / 2;\n if (max === min) {\n h = s = 0;\n } else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n default:\n break;\n }\n }\n return new HSL(h * 60, s * 100, l * 100, this.a);\n },\n toBytes: function () {\n return new Bytes(this.r * 255, this.g * 255, this.b * 255, this.a);\n }\n });\n var Bytes = RGB.extend({\n init: function (r, g, b, a) {\n RGB.fn.init.call(this, Math.round(r), Math.round(g), Math.round(b), a);\n },\n toRGB: function () {\n return new RGB(this.r / 255, this.g / 255, this.b / 255, this.a);\n },\n toHSV: function () {\n return this.toRGB().toHSV();\n },\n toHSL: function () {\n return this.toRGB().toHSL();\n },\n toHex: function () {\n return hex(this.r, 2) + hex(this.g, 2) + hex(this.b, 2);\n },\n toBytes: function () {\n return this;\n }\n });\n function hex(n, width, pad) {\n if (pad === void 0) {\n pad = '0';\n }\n var result = n.toString(16);\n while (width > result.length) {\n result = pad + result;\n }\n return result;\n }\n var HSV = BaseColor.extend({\n init: function (h, s, v, a) {\n BaseColor.fn.init.call(this);\n this.h = h;\n this.s = s;\n this.v = v;\n this.a = a;\n },\n toRGB: function () {\n var ref = this;\n var h = ref.h;\n var s = ref.s;\n var v = ref.v;\n var r, g, b;\n if (s === 0) {\n r = g = b = v;\n } else {\n h /= 60;\n var i = Math.floor(h);\n var f = h - i;\n var p = v * (1 - s);\n var q = v * (1 - s * f);\n var t = v * (1 - s * (1 - f));\n switch (i) {\n case 0:\n r = v;\n g = t;\n b = p;\n break;\n case 1:\n r = q;\n g = v;\n b = p;\n break;\n case 2:\n r = p;\n g = v;\n b = t;\n break;\n case 3:\n r = p;\n g = q;\n b = v;\n break;\n case 4:\n r = t;\n g = p;\n b = v;\n break;\n default:\n r = v;\n g = p;\n b = q;\n break;\n }\n }\n return new RGB(r, g, b, this.a);\n },\n toHSL: function () {\n return this.toRGB().toHSL();\n },\n toBytes: function () {\n return this.toRGB().toBytes();\n }\n });\n var HSL = BaseColor.extend({\n init: function (h, s, l, a) {\n BaseColor.fn.init.call(this);\n this.h = h;\n this.s = s;\n this.l = l;\n this.a = a;\n },\n toRGB: function () {\n var h = this.h / 360;\n var s = this.s / 100;\n var l = this.l / 100;\n var r, g, b;\n if (s === 0) {\n r = g = b = l;\n } else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n return new RGB(r, g, b, this.a);\n },\n toHSV: function () {\n return this.toRGB().toHSV();\n },\n toBytes: function () {\n return this.toRGB().toBytes();\n }\n });\n function hue2rgb(p, q, s) {\n var t = s;\n if (t < 0) {\n t += 1;\n }\n if (t > 1) {\n t -= 1;\n }\n if (t < 1 / 6) {\n return p + (q - p) * 6 * t;\n }\n if (t < 1 / 2) {\n return q;\n }\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n return p;\n }\n function parseColor(value, safe) {\n var m, ret;\n if (value == null || value === 'none') {\n return null;\n }\n if (value instanceof BaseColor) {\n return value;\n }\n var color = value.toLowerCase();\n if (m = matchNamedColor(color)) {\n if (m[1] === 'transparent') {\n color = new RGB(1, 1, 1, 0);\n } else {\n color = parseColor(namedColors[m[1]], safe);\n }\n color.match = [m[1]];\n return color;\n }\n if (m = /^#?([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})\\b/i.exec(color)) {\n ret = new Bytes(parseInt(m[1], 16), parseInt(m[2], 16), parseInt(m[3], 16), 1);\n } else if (m = /^#?([0-9a-f])([0-9a-f])([0-9a-f])\\b/i.exec(color)) {\n ret = new Bytes(parseInt(m[1] + m[1], 16), parseInt(m[2] + m[2], 16), parseInt(m[3] + m[3], 16), 1);\n } else if (m = /^rgb\\(\\s*([0-9]+)\\s*,\\s*([0-9]+)\\s*,\\s*([0-9]+)\\s*\\)/.exec(color)) {\n ret = new Bytes(parseInt(m[1], 10), parseInt(m[2], 10), parseInt(m[3], 10), 1);\n } else if (m = /^rgba\\(\\s*([0-9]+)\\s*,\\s*([0-9]+)\\s*,\\s*([0-9]+)\\s*,\\s*([0-9.]+)\\s*\\)/.exec(color)) {\n ret = new Bytes(parseInt(m[1], 10), parseInt(m[2], 10), parseInt(m[3], 10), parseFloat(m[4]));\n } else if (m = /^rgb\\(\\s*([0-9]*\\.?[0-9]+)%\\s*,\\s*([0-9]*\\.?[0-9]+)%\\s*,\\s*([0-9]*\\.?[0-9]+)%\\s*\\)/.exec(color)) {\n ret = new RGB(parseFloat(m[1]) / 100, parseFloat(m[2]) / 100, parseFloat(m[3]) / 100, 1);\n } else if (m = /^rgba\\(\\s*([0-9]*\\.?[0-9]+)%\\s*,\\s*([0-9]*\\.?[0-9]+)%\\s*,\\s*([0-9]*\\.?[0-9]+)%\\s*,\\s*([0-9.]+)\\s*\\)/.exec(color)) {\n ret = new RGB(parseFloat(m[1]) / 100, parseFloat(m[2]) / 100, parseFloat(m[3]) / 100, parseFloat(m[4]));\n }\n if (ret) {\n ret.match = m;\n } else if (!safe) {\n throw new Error('Cannot parse color: ' + color);\n }\n return ret;\n }\n var Color = Class.extend({\n init: function (value) {\n var this$1 = this;\n if (arguments.length === 1) {\n var formats = Color.formats;\n var resolvedColor = this.resolveColor(value);\n for (var idx = 0; idx < formats.length; idx++) {\n var formatRegex = formats[idx].re;\n var processor = formats[idx].process;\n var parts = formatRegex.exec(resolvedColor);\n if (parts) {\n var channels = processor(parts);\n this$1.r = channels[0];\n this$1.g = channels[1];\n this$1.b = channels[2];\n }\n }\n } else {\n this.r = arguments[0];\n this.g = arguments[1];\n this.b = arguments[2];\n }\n this.r = this.normalizeByte(this.r);\n this.g = this.normalizeByte(this.g);\n this.b = this.normalizeByte(this.b);\n },\n toHex: function () {\n var pad = this.padDigit;\n var r = this.r.toString(16);\n var g = this.g.toString(16);\n var b = this.b.toString(16);\n return '#' + pad(r) + pad(g) + pad(b);\n },\n resolveColor: function (value) {\n var color = value || 'black';\n if (color.charAt(0) === '#') {\n color = color.substr(1, 6);\n }\n color = color.replace(/ /g, '');\n color = color.toLowerCase();\n color = Color.namedColors[color] || color;\n return color;\n },\n normalizeByte: function (value) {\n if (value < 0 || isNaN(value)) {\n return 0;\n }\n return value > 255 ? 255 : value;\n },\n padDigit: function (value) {\n return value.length === 1 ? '0' + value : value;\n },\n brightness: function (value) {\n var round = Math.round;\n this.r = round(this.normalizeByte(this.r * value));\n this.g = round(this.normalizeByte(this.g * value));\n this.b = round(this.normalizeByte(this.b * value));\n return this;\n },\n percBrightness: function () {\n return Math.sqrt(0.241 * this.r * this.r + 0.691 * this.g * this.g + 0.068 * this.b * this.b);\n }\n });\n Color.fromBytes = function (r, g, b, a) {\n return new Bytes(r, g, b, a != null ? a : 1);\n };\n Color.fromRGB = function (r, g, b, a) {\n return new RGB(r, g, b, a != null ? a : 1);\n };\n Color.fromHSV = function (h, s, v, a) {\n return new HSV(h, s, v, a != null ? a : 1);\n };\n Color.fromHSL = function (h, s, l, a) {\n return new HSL(h, s, l, a != null ? a : 1);\n };\n Color.formats = [\n {\n re: /^rgb\\((\\d{1,3}),\\s*(\\d{1,3}),\\s*(\\d{1,3})\\)$/,\n process: function (parts) {\n return [\n parseInt(parts[1], 10),\n parseInt(parts[2], 10),\n parseInt(parts[3], 10)\n ];\n }\n },\n {\n re: /^(\\w{2})(\\w{2})(\\w{2})$/,\n process: function (parts) {\n return [\n parseInt(parts[1], 16),\n parseInt(parts[2], 16),\n parseInt(parts[3], 16)\n ];\n }\n },\n {\n re: /^(\\w{1})(\\w{1})(\\w{1})$/,\n process: function (parts) {\n return [\n parseInt(parts[1] + parts[1], 16),\n parseInt(parts[2] + parts[2], 16),\n parseInt(parts[3] + parts[3], 16)\n ];\n }\n }\n ];\n Color.namedColors = namedColors;\n kendo.deepExtend(kendo, {\n parseColor: parseColor,\n Color: Color\n });\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('kendo.slider', ['kendo.draganddrop'], f);\n}(function () {\n var __meta__ = {\n id: 'slider',\n name: 'Slider',\n category: 'web',\n description: 'The Slider widget provides a rich input for selecting values or ranges of values.',\n depends: ['draganddrop']\n };\n (function ($, undefined) {\n var kendo = window.kendo, Widget = kendo.ui.Widget, Draggable = kendo.ui.Draggable, outerWidth = kendo._outerWidth, outerHeight = kendo._outerHeight, extend = $.extend, format = kendo.format, parse = kendo.parseFloat, proxy = $.proxy, isArray = $.isArray, math = Math, support = kendo.support, pointers = support.pointers, msPointers = support.msPointers, CHANGE = 'change', SLIDE = 'slide', NS = '.slider', MOUSE_DOWN = 'touchstart' + NS + ' mousedown' + NS, TRACK_MOUSE_DOWN = pointers ? 'pointerdown' + NS : msPointers ? 'MSPointerDown' + NS : MOUSE_DOWN, MOUSE_UP = 'touchend' + NS + ' mouseup' + NS, TRACK_MOUSE_UP = pointers ? 'pointerup' : msPointers ? 'MSPointerUp' + NS : MOUSE_UP, MOVE_SELECTION = 'moveSelection', KEY_DOWN = 'keydown' + NS, CLICK = 'click' + NS, MOUSE_OVER = 'mouseover' + NS, FOCUS = 'focus' + NS, BLUR = 'blur' + NS, DRAG_HANDLE = '.k-draghandle', TRACK_SELECTOR = '.k-slider-track', TICK_SELECTOR = '.k-tick', STATE_SELECTED = 'k-state-selected', STATE_FOCUSED = 'k-state-focused', STATE_DEFAULT = 'k-state-default', STATE_DISABLED = 'k-state-disabled', DISABLED = 'disabled', UNDEFINED = 'undefined', TABINDEX = 'tabindex', getTouches = kendo.getTouches;\n var SliderBase = Widget.extend({\n init: function (element, options) {\n var that = this;\n Widget.fn.init.call(that, element, options);\n options = that.options;\n that._isHorizontal = options.orientation == 'horizontal';\n that._isRtl = that._isHorizontal && kendo.support.isRtl(element);\n that._position = that._isHorizontal ? 'left' : 'bottom';\n that._sizeFn = that._isHorizontal ? 'width' : 'height';\n that._outerSize = that._isHorizontal ? outerWidth : outerHeight;\n options.tooltip.format = options.tooltip.enabled ? options.tooltip.format || '{0}' : '{0}';\n if (options.smallStep <= 0) {\n throw new Error('Kendo UI Slider smallStep must be a positive number.');\n }\n that._createHtml();\n that.wrapper = that.element.closest('.k-slider');\n that._trackDiv = that.wrapper.find(TRACK_SELECTOR);\n that._setTrackDivWidth();\n that._maxSelection = that._trackDiv[that._sizeFn]();\n that._sliderItemsInit();\n that._reset();\n that._tabindex(that.wrapper.find(DRAG_HANDLE));\n that[options.enabled ? 'enable' : 'disable']();\n var rtlDirectionSign = kendo.support.isRtl(that.wrapper) ? -1 : 1;\n that._keyMap = {\n 37: step(-1 * rtlDirectionSign * options.smallStep),\n 40: step(-options.smallStep),\n 39: step(+1 * rtlDirectionSign * options.smallStep),\n 38: step(+options.smallStep),\n 35: setValue(options.max),\n 36: setValue(options.min),\n 33: step(+options.largeStep),\n 34: step(-options.largeStep)\n };\n kendo.notify(that);\n },\n events: [\n CHANGE,\n SLIDE\n ],\n options: {\n enabled: true,\n min: 0,\n max: 10,\n smallStep: 1,\n largeStep: 5,\n orientation: 'horizontal',\n tickPlacement: 'both',\n tooltip: {\n enabled: true,\n format: '{0}'\n }\n },\n _distance: function () {\n return round(this.options.max - this.options.min);\n },\n _resize: function () {\n this._setTrackDivWidth();\n this.wrapper.find('.k-slider-items').remove();\n this._maxSelection = this._trackDiv[this._sizeFn]();\n this._sliderItemsInit();\n this._refresh();\n if (this.options.enabled) {\n this.enable(true);\n }\n },\n _sliderItemsInit: function () {\n var that = this, options = that.options;\n var sizeBetweenTicks = that._maxSelection / ((options.max - options.min) / options.smallStep);\n var pixelWidths = that._calculateItemsWidth(math.floor(removeFraction(that._distance()) / removeFraction(options.smallStep)));\n if (options.tickPlacement != 'none' && sizeBetweenTicks >= 2) {\n $(this.element).parent().find('.k-slider-items').remove();\n that._trackDiv.before(createSliderItems(options, that._distance()));\n that._setItemsWidth(pixelWidths);\n that._setItemsTitle();\n }\n that._calculateSteps(pixelWidths);\n if (options.tickPlacement != 'none' && sizeBetweenTicks >= 2 && options.largeStep >= options.smallStep) {\n that._setItemsLargeTick();\n }\n },\n getSize: function () {\n return kendo.dimensions(this.wrapper);\n },\n _setTrackDivWidth: function () {\n var that = this, trackDivPosition = parseFloat(that._trackDiv.css(that._isRtl ? 'right' : that._position), 10) * 2;\n that._trackDiv[that._sizeFn](that.wrapper[that._sizeFn]() - 2 - trackDivPosition);\n },\n _setItemsWidth: function (pixelWidths) {\n var that = this, options = that.options, first = 0, last = pixelWidths.length - 1, items = that.wrapper.find(TICK_SELECTOR), i, paddingTop = 0, bordersWidth = 2, count = items.length, selection = 0;\n for (i = 0; i < count - 2; i++) {\n $(items[i + 1])[that._sizeFn](pixelWidths[i]);\n }\n if (that._isHorizontal) {\n $(items[first]).addClass('k-first')[that._sizeFn](pixelWidths[last - 1]);\n $(items[last]).addClass('k-last')[that._sizeFn](pixelWidths[last]);\n } else {\n $(items[last]).addClass('k-first')[that._sizeFn](pixelWidths[last]);\n $(items[first]).addClass('k-last')[that._sizeFn](pixelWidths[last - 1]);\n }\n if (that._distance() % options.smallStep !== 0 && !that._isHorizontal) {\n for (i = 0; i < pixelWidths.length; i++) {\n selection += pixelWidths[i];\n }\n paddingTop = that._maxSelection - selection;\n paddingTop += parseFloat(that._trackDiv.css(that._position), 10) + bordersWidth;\n that.wrapper.find('.k-slider-items').css('padding-top', paddingTop);\n }\n },\n _setItemsTitle: function () {\n var that = this, options = that.options, items = that.wrapper.find(TICK_SELECTOR), titleNumber = options.min, count = items.length, i = that._isHorizontal && !that._isRtl ? 0 : count - 1, limit = that._isHorizontal && !that._isRtl ? count : -1, increment = that._isHorizontal && !that._isRtl ? 1 : -1;\n for (; i - limit !== 0; i += increment) {\n $(items[i]).attr('title', format(options.tooltip.format, round(titleNumber)));\n titleNumber += options.smallStep;\n }\n },\n _setItemsLargeTick: function () {\n var that = this, options = that.options, items = that.wrapper.find(TICK_SELECTOR), i = 0, item, value;\n if (removeFraction(options.largeStep) % removeFraction(options.smallStep) === 0 || that._distance() / options.largeStep >= 3) {\n if (!that._isHorizontal && !that._isRtl) {\n items = $.makeArray(items).reverse();\n }\n for (i = 0; i < items.length; i++) {\n item = $(items[i]);\n value = that._values[i];\n var valueWithoutFraction = round(removeFraction(value - this.options.min));\n if (valueWithoutFraction % removeFraction(options.smallStep) === 0 && valueWithoutFraction % removeFraction(options.largeStep) === 0) {\n item.addClass('k-tick-large').html('' + item.attr('title') + '');\n if (i !== 0 && i !== items.length - 1) {\n item.css('line-height', item[that._sizeFn]() + 'px');\n }\n }\n }\n }\n },\n _calculateItemsWidth: function (itemsCount) {\n var that = this, options = that.options, trackDivSize = parseFloat(that._trackDiv.css(that._sizeFn)) + 1, distance = that._distance(), preciseItemsCount = removeFraction(distance) / removeFraction(options.smallStep), pixelStep = trackDivSize / removeFraction(distance), itemWidth, pixelWidths, i;\n if (preciseItemsCount - itemsCount > 0) {\n trackDivSize -= removeFraction(distance) % removeFraction(options.smallStep) * pixelStep;\n }\n itemWidth = trackDivSize / itemsCount;\n pixelWidths = [];\n for (i = 0; i < itemsCount - 1; i++) {\n pixelWidths[i] = itemWidth;\n }\n pixelWidths[itemsCount - 1] = pixelWidths[itemsCount] = itemWidth / 2;\n return that._roundWidths(pixelWidths);\n },\n _roundWidths: function (pixelWidthsArray) {\n var balance = 0, count = pixelWidthsArray.length, i;\n for (i = 0; i < count; i++) {\n balance += pixelWidthsArray[i] - math.floor(pixelWidthsArray[i]);\n pixelWidthsArray[i] = math.floor(pixelWidthsArray[i]);\n }\n balance = math.round(balance);\n return this._addAdditionalSize(balance, pixelWidthsArray);\n },\n _addAdditionalSize: function (additionalSize, pixelWidthsArray) {\n if (additionalSize === 0) {\n return pixelWidthsArray;\n }\n var step = parseFloat(pixelWidthsArray.length - 1) / parseFloat(additionalSize == 1 ? additionalSize : additionalSize - 1), i;\n for (i = 0; i < additionalSize; i++) {\n pixelWidthsArray[parseInt(math.round(step * i), 10)] += 1;\n }\n return pixelWidthsArray;\n },\n _calculateSteps: function (pixelWidths) {\n var that = this, options = that.options, val = options.min, selection = 0, distance = that._distance(), itemsCount = math.ceil(removeFraction(distance) / removeFraction(options.smallStep)), i = 1, lastItem;\n itemsCount += removeFraction(distance) / removeFraction(options.smallStep) % 1 === 0 ? 1 : 0;\n pixelWidths.splice(0, 0, pixelWidths[itemsCount - 2] * 2);\n pixelWidths.splice(itemsCount - 1, 1, pixelWidths.pop() * 2);\n that._pixelSteps = [selection];\n that._values = [val];\n if (itemsCount === 0) {\n return;\n }\n while (i < itemsCount) {\n selection += (pixelWidths[i - 1] + pixelWidths[i]) / 2;\n that._pixelSteps[i] = selection;\n val += options.smallStep;\n that._values[i] = round(val);\n i++;\n }\n lastItem = removeFraction(distance) % removeFraction(options.smallStep) === 0 ? itemsCount - 1 : itemsCount;\n that._pixelSteps[lastItem] = that._maxSelection;\n that._values[lastItem] = options.max;\n if (that._isRtl) {\n that._pixelSteps.reverse();\n that._values.reverse();\n }\n },\n _getValueFromPosition: function (mousePosition, dragableArea) {\n var that = this, options = that.options, step = math.max(options.smallStep * (that._maxSelection / that._distance()), 0), position = 0, halfStep = step / 2, i;\n if (that._isHorizontal) {\n position = mousePosition - dragableArea.startPoint;\n if (that._isRtl) {\n position = that._maxSelection - position;\n }\n } else {\n position = dragableArea.startPoint - mousePosition;\n }\n if (that._maxSelection - (parseInt(that._maxSelection % step, 10) - 3) / 2 < position) {\n return options.max;\n }\n for (i = 0; i < that._pixelSteps.length; i++) {\n if (math.abs(that._pixelSteps[i] - position) - 1 <= halfStep) {\n return round(that._values[i]);\n }\n }\n },\n _getFormattedValue: function (val, drag) {\n var that = this, html = '', tooltip = that.options.tooltip, tooltipTemplate, selectionStart, selectionEnd;\n if (isArray(val)) {\n selectionStart = val[0];\n selectionEnd = val[1];\n } else if (drag && drag.type) {\n selectionStart = drag.selectionStart;\n selectionEnd = drag.selectionEnd;\n }\n if (drag) {\n tooltipTemplate = drag.tooltipTemplate;\n }\n if (!tooltipTemplate && tooltip.template) {\n tooltipTemplate = kendo.template(tooltip.template);\n }\n if (isArray(val) || drag && drag.type) {\n if (tooltipTemplate) {\n html = tooltipTemplate({\n selectionStart: selectionStart,\n selectionEnd: selectionEnd\n });\n } else {\n selectionStart = format(tooltip.format, selectionStart);\n selectionEnd = format(tooltip.format, selectionEnd);\n html = selectionStart + ' - ' + selectionEnd;\n }\n } else {\n if (drag) {\n drag.val = val;\n }\n if (tooltipTemplate) {\n html = tooltipTemplate({ value: val });\n } else {\n html = format(tooltip.format, val);\n }\n }\n return html;\n },\n _getDraggableArea: function () {\n var that = this, offset = kendo.getOffset(that._trackDiv);\n return {\n startPoint: that._isHorizontal ? offset.left : offset.top + that._maxSelection,\n endPoint: that._isHorizontal ? offset.left + that._maxSelection : offset.top\n };\n },\n _createHtml: function () {\n var that = this, element = that.element, options = that.options, inputs = element.find('input');\n if (inputs.length == 2) {\n inputs.eq(0).prop('value', formatValue(options.selectionStart));\n inputs.eq(1).prop('value', formatValue(options.selectionEnd));\n } else {\n element.prop('value', formatValue(options.value));\n }\n element.wrap(createWrapper(options, element, that._isHorizontal)).hide();\n if (options.showButtons) {\n element.before(createButton(options, 'increase', that._isHorizontal, that._isRtl)).before(createButton(options, 'decrease', that._isHorizontal, that._isRtl));\n }\n element.before(createTrack(options, element));\n },\n _focus: function (e) {\n var that = this, target = e.target, val = that.value(), drag = that._drag;\n if (!drag) {\n if (target == that.wrapper.find(DRAG_HANDLE).eq(0)[0]) {\n drag = that._firstHandleDrag;\n that._activeHandle = 0;\n } else {\n drag = that._lastHandleDrag;\n that._activeHandle = 1;\n }\n val = val[that._activeHandle];\n }\n $(target).addClass(STATE_FOCUSED + ' ' + STATE_SELECTED);\n if (drag) {\n that._activeHandleDrag = drag;\n drag.selectionStart = that.options.selectionStart;\n drag.selectionEnd = that.options.selectionEnd;\n drag._updateTooltip(val);\n }\n },\n _focusWithMouse: function (target) {\n target = $(target);\n var that = this, idx = target.is(DRAG_HANDLE) ? target.index() : 0;\n window.setTimeout(function () {\n that.wrapper.find(DRAG_HANDLE)[idx == 2 ? 1 : 0].focus();\n }, 1);\n that._setTooltipTimeout();\n },\n _blur: function (e) {\n var that = this, drag = that._activeHandleDrag;\n $(e.target).removeClass(STATE_FOCUSED + ' ' + STATE_SELECTED);\n if (drag) {\n drag._removeTooltip();\n delete that._activeHandleDrag;\n delete that._activeHandle;\n }\n },\n _setTooltipTimeout: function () {\n var that = this;\n that._tooltipTimeout = window.setTimeout(function () {\n var drag = that._drag || that._activeHandleDrag;\n if (drag) {\n drag._removeTooltip();\n }\n }, 300);\n },\n _clearTooltipTimeout: function () {\n var that = this;\n window.clearTimeout(this._tooltipTimeout);\n var drag = that._drag || that._activeHandleDrag;\n if (drag && drag.tooltipDiv) {\n drag.tooltipDiv.stop(true, false).css('opacity', 1);\n }\n },\n _reset: function () {\n var that = this, element = that.element, formId = element.attr('form'), form = formId ? $('#' + formId) : element.closest('form');\n if (form[0]) {\n that._form = form.on('reset', proxy(that._formResetHandler, that));\n }\n },\n min: function (value) {\n if (!value) {\n return this.options.min;\n }\n this.setOptions({ 'min': value });\n },\n max: function (value) {\n if (!value) {\n return this.options.max;\n }\n this.setOptions({ 'max': value });\n },\n setOptions: function (options) {\n Widget.fn.setOptions.call(this, options);\n this._sliderItemsInit();\n this._refresh();\n },\n destroy: function () {\n if (this._form) {\n this._form.off('reset', this._formResetHandler);\n }\n Widget.fn.destroy.call(this);\n }\n });\n function createWrapper(options, element, isHorizontal) {\n var orientationCssClass = isHorizontal ? ' k-slider-horizontal' : ' k-slider-vertical', style = options.style ? options.style : element.attr('style'), cssClasses = element.attr('class') ? ' ' + element.attr('class') : '', tickPlacementCssClass = '';\n if (options.tickPlacement == 'bottomRight') {\n tickPlacementCssClass = ' k-slider-bottomright';\n } else if (options.tickPlacement == 'topLeft') {\n tickPlacementCssClass = ' k-slider-topleft';\n }\n style = style ? ' style=\\'' + style + '\\'' : '';\n return '
          ' + '
          ';\n }\n function createButton(options, type, isHorizontal, isRtl) {\n var buttonCssClass = '';\n if (isHorizontal) {\n if (!isRtl && type == 'increase' || isRtl && type != 'increase') {\n buttonCssClass = 'k-i-arrow-60-right';\n } else {\n buttonCssClass = 'k-i-arrow-60-left';\n }\n } else {\n if (type == 'increase') {\n buttonCssClass = 'k-i-arrow-60-up';\n } else {\n buttonCssClass = 'k-i-arrow-60-down';\n }\n }\n return '' + '';\n }\n function createSliderItems(options, distance) {\n var result = '
            ', count = math.floor(round(distance / options.smallStep)) + 1, i;\n for (i = 0; i < count; i++) {\n result += '
          •  
          • ';\n }\n result += '
          ';\n return result;\n }\n function createTrack(options, element) {\n var dragHandleCount = element.is('input') ? 1 : 2, firstDragHandleTitle = dragHandleCount == 2 ? options.leftDragHandleTitle : options.dragHandleTitle;\n return '';\n }\n function step(stepValue) {\n return function (value) {\n return value + stepValue;\n };\n }\n function setValue(value) {\n return function () {\n return value;\n };\n }\n function formatValue(value) {\n return (value + '').replace('.', kendo.cultures.current.numberFormat['.']);\n }\n function calculatePrecision(value) {\n var number = value.toString();\n var precision = 0;\n number = number.split('.');\n if (number[1]) {\n precision = number[1].length;\n }\n precision = precision > 10 ? 10 : precision;\n return precision;\n }\n function round(value) {\n var precision, power;\n value = parseFloat(value, 10);\n precision = calculatePrecision(value);\n power = math.pow(10, precision || 0);\n return math.round(value * power) / power;\n }\n function parseAttr(element, name) {\n var value = parse(element.getAttribute(name));\n if (value === null) {\n value = undefined;\n }\n return value;\n }\n function defined(value) {\n return typeof value !== UNDEFINED;\n }\n function removeFraction(value) {\n return value * 10000;\n }\n var Slider = SliderBase.extend({\n init: function (element, options) {\n var that = this, dragHandle;\n element.type = 'text';\n options = extend({}, {\n value: parseAttr(element, 'value'),\n min: parseAttr(element, 'min'),\n max: parseAttr(element, 'max'),\n smallStep: parseAttr(element, 'step')\n }, options);\n element = $(element);\n if (options && options.enabled === undefined) {\n options.enabled = !element.is('[disabled]');\n }\n SliderBase.fn.init.call(that, element, options);\n options = that.options;\n if (!defined(options.value) || options.value === null) {\n options.value = options.min;\n element.prop('value', formatValue(options.min));\n }\n options.value = math.max(math.min(options.value, options.max), options.min);\n dragHandle = that.wrapper.find(DRAG_HANDLE);\n this._selection = new Slider.Selection(dragHandle, that, options);\n that._drag = new Slider.Drag(dragHandle, '', that, options);\n },\n options: {\n name: 'Slider',\n showButtons: true,\n increaseButtonTitle: 'Increase',\n decreaseButtonTitle: 'Decrease',\n dragHandleTitle: 'drag',\n tooltip: { format: '{0:#,#.##}' },\n value: null\n },\n enable: function (enable) {\n var that = this, options = that.options, clickHandler, move;\n that.disable();\n if (enable === false) {\n return;\n }\n that.wrapper.removeClass(STATE_DISABLED).addClass(STATE_DEFAULT);\n that.wrapper.find('input').removeAttr(DISABLED);\n clickHandler = function (e) {\n var touch = getTouches(e)[0];\n if (!touch) {\n return;\n }\n var mousePosition = that._isHorizontal ? touch.location.pageX : touch.location.pageY, dragableArea = that._getDraggableArea(), target = $(e.target);\n if (target.hasClass('k-draghandle')) {\n target.addClass(STATE_FOCUSED + ' ' + STATE_SELECTED);\n return;\n }\n that._update(that._getValueFromPosition(mousePosition, dragableArea));\n that._focusWithMouse(e.target);\n that._drag.dragstart(e);\n e.preventDefault();\n };\n that.wrapper.find(TICK_SELECTOR + ', ' + TRACK_SELECTOR).on(TRACK_MOUSE_DOWN, clickHandler).end().on(TRACK_MOUSE_DOWN, function () {\n $(document.documentElement).one('selectstart', kendo.preventDefault);\n }).on(TRACK_MOUSE_UP, function () {\n that._drag._end();\n });\n that.wrapper.find(DRAG_HANDLE).attr(TABINDEX, 0).on(MOUSE_UP, function () {\n that._setTooltipTimeout();\n }).on(CLICK, function (e) {\n that._focusWithMouse(e.target);\n e.preventDefault();\n }).on(FOCUS, proxy(that._focus, that)).on(BLUR, proxy(that._blur, that));\n move = proxy(function (sign) {\n var newVal = that._nextValueByIndex(that._valueIndex + sign * 1);\n that._setValueInRange(newVal);\n that._drag._updateTooltip(newVal);\n }, that);\n if (options.showButtons) {\n var mouseDownHandler = proxy(function (e, sign) {\n this._clearTooltipTimeout();\n if (e.which === 1 || support.touch && e.which === 0) {\n move(sign);\n this.timeout = setTimeout(proxy(function () {\n this.timer = setInterval(function () {\n move(sign);\n }, 60);\n }, this), 200);\n }\n }, that);\n that.wrapper.find('.k-button').on(MOUSE_UP, proxy(function (e) {\n this._clearTimer();\n that._focusWithMouse(e.target);\n }, that)).on(MOUSE_OVER, function (e) {\n $(e.currentTarget).addClass('k-state-hover');\n }).on('mouseout' + NS, proxy(function (e) {\n $(e.currentTarget).removeClass('k-state-hover');\n this._clearTimer();\n }, that)).eq(0).on(MOUSE_DOWN, proxy(function (e) {\n mouseDownHandler(e, 1);\n }, that)).click(false).end().eq(1).on(MOUSE_DOWN, proxy(function (e) {\n mouseDownHandler(e, -1);\n }, that)).click(kendo.preventDefault);\n }\n that.wrapper.find(DRAG_HANDLE).off(KEY_DOWN, false).on(KEY_DOWN, proxy(this._keydown, that));\n options.enabled = true;\n },\n disable: function () {\n var that = this;\n that.wrapper.removeClass(STATE_DEFAULT).addClass(STATE_DISABLED);\n $(that.element).prop(DISABLED, DISABLED);\n that.wrapper.find('.k-button').off(MOUSE_DOWN).on(MOUSE_DOWN, function (e) {\n e.preventDefault();\n $(this).addClass('k-state-active');\n }).off(MOUSE_UP).on(MOUSE_UP, function (e) {\n e.preventDefault();\n $(this).removeClass('k-state-active');\n }).off('mouseleave' + NS).on('mouseleave' + NS, kendo.preventDefault).off(MOUSE_OVER).on(MOUSE_OVER, kendo.preventDefault);\n that.wrapper.find(TICK_SELECTOR + ', ' + TRACK_SELECTOR).off(TRACK_MOUSE_DOWN).off(TRACK_MOUSE_UP);\n that.wrapper.find(DRAG_HANDLE).attr(TABINDEX, -1).off(MOUSE_UP).off(KEY_DOWN).off(CLICK).off(FOCUS).off(BLUR);\n that.options.enabled = false;\n },\n _update: function (val) {\n var that = this, change = that.value() != val;\n that.value(val);\n if (change) {\n that.trigger(CHANGE, { value: that.options.value });\n }\n },\n value: function (value) {\n var that = this, options = that.options;\n value = round(value);\n if (isNaN(value)) {\n return options.value;\n }\n if (value >= options.min && value <= options.max) {\n if (options.value != value) {\n that.element.prop('value', formatValue(value));\n options.value = value;\n that._refreshAriaAttr(value);\n that._refresh();\n }\n }\n },\n _refresh: function () {\n this.trigger(MOVE_SELECTION, { value: this.options.value });\n },\n _refreshAriaAttr: function (value) {\n var that = this, drag = that._drag, formattedValue;\n if (drag && drag._tooltipDiv) {\n formattedValue = drag._tooltipDiv.text();\n } else {\n formattedValue = that._getFormattedValue(value, null);\n }\n this.wrapper.find(DRAG_HANDLE).attr('aria-valuenow', value).attr('aria-valuetext', formattedValue);\n },\n _clearTimer: function () {\n clearTimeout(this.timeout);\n clearInterval(this.timer);\n },\n _keydown: function (e) {\n var that = this;\n if (e.keyCode in that._keyMap) {\n that._clearTooltipTimeout();\n that._setValueInRange(that._keyMap[e.keyCode](that.options.value));\n that._drag._updateTooltip(that.value());\n e.preventDefault();\n }\n },\n _setValueInRange: function (val) {\n var that = this, options = that.options;\n val = round(val);\n if (isNaN(val)) {\n that._update(options.min);\n return;\n }\n val = math.max(math.min(val, options.max), options.min);\n that._update(val);\n },\n _nextValueByIndex: function (index) {\n var count = this._values.length;\n if (this._isRtl) {\n index = count - 1 - index;\n }\n return this._values[math.max(0, math.min(index, count - 1))];\n },\n _formResetHandler: function () {\n var that = this, min = that.options.min;\n setTimeout(function () {\n var value = that.element[0].value;\n that.value(value === '' || isNaN(value) ? min : value);\n });\n },\n destroy: function () {\n var that = this;\n SliderBase.fn.destroy.call(that);\n that.wrapper.off(NS).find('.k-button').off(NS).end().find(DRAG_HANDLE).off(NS).end().find(TICK_SELECTOR + ', ' + TRACK_SELECTOR).off(NS).end();\n that._drag.draggable.destroy();\n that._drag._removeTooltip(true);\n }\n });\n Slider.Selection = function (dragHandle, that, options) {\n function moveSelection(val) {\n var selectionValue = val - options.min, index = that._valueIndex = math.ceil(round(selectionValue / options.smallStep)), selection = parseInt(that._pixelSteps[index], 10), selectionDiv = that._trackDiv.find('.k-slider-selection'), halfDragHanndle = parseInt(that._outerSize(dragHandle) / 2, 10), rtlCorrection = that._isRtl ? 2 : 0;\n selectionDiv[that._sizeFn](that._isRtl ? that._maxSelection - selection : selection);\n dragHandle.css(that._position, selection - halfDragHanndle - rtlCorrection);\n }\n moveSelection(options.value);\n that.bind([\n SLIDE,\n MOVE_SELECTION\n ], function (e) {\n moveSelection(parseFloat(e.value, 10));\n });\n that.bind(CHANGE, function (e) {\n moveSelection(parseFloat(e.sender.value(), 10));\n });\n };\n Slider.Drag = function (element, type, owner, options) {\n var that = this;\n that.owner = owner;\n that.options = options;\n that.element = element;\n that.type = type;\n that.draggable = new Draggable(element, {\n distance: 0,\n dragstart: proxy(that._dragstart, that),\n drag: proxy(that.drag, that),\n dragend: proxy(that.dragend, that),\n dragcancel: proxy(that.dragcancel, that)\n });\n element.click(false);\n element.on('dragstart', function (e) {\n e.preventDefault();\n });\n };\n Slider.Drag.prototype = {\n dragstart: function (e) {\n this.owner._activeDragHandle = this;\n this.draggable.userEvents.cancel();\n this._dragstart(e);\n this.dragend();\n },\n _dragstart: function (e) {\n var that = this, owner = that.owner, options = that.options;\n if (!options.enabled) {\n e.preventDefault();\n return;\n }\n this.owner._activeDragHandle = this;\n owner.element.off(MOUSE_OVER);\n owner.wrapper.find('.' + STATE_FOCUSED).removeClass(STATE_FOCUSED + ' ' + STATE_SELECTED);\n that.element.addClass(STATE_FOCUSED + ' ' + STATE_SELECTED);\n $(document.documentElement).css('cursor', 'pointer');\n that.dragableArea = owner._getDraggableArea();\n that.step = math.max(options.smallStep * (owner._maxSelection / owner._distance()), 0);\n if (that.type) {\n that.selectionStart = options.selectionStart;\n that.selectionEnd = options.selectionEnd;\n owner._setZIndex(that.type);\n } else {\n that.oldVal = that.val = options.value;\n }\n that._removeTooltip(true);\n that._createTooltip();\n },\n _createTooltip: function () {\n var that = this, owner = that.owner, tooltip = that.options.tooltip, html = '', wnd = $(window), tooltipTemplate, colloutCssClass;\n if (!tooltip.enabled) {\n return;\n }\n if (tooltip.template) {\n tooltipTemplate = that.tooltipTemplate = kendo.template(tooltip.template);\n }\n $('.k-slider-tooltip').remove();\n that.tooltipDiv = $('
          ').appendTo(document.body);\n html = owner._getFormattedValue(that.val || owner.value(), that);\n if (!that.type) {\n colloutCssClass = 'k-callout-' + (owner._isHorizontal ? 's' : 'e');\n that.tooltipInnerDiv = '
          ';\n html += that.tooltipInnerDiv;\n }\n that.tooltipDiv.html(html);\n that._scrollOffset = {\n top: wnd.scrollTop(),\n left: wnd.scrollLeft()\n };\n that.moveTooltip();\n },\n drag: function (e) {\n var that = this, owner = that.owner, x = e.x.location, y = e.y.location, startPoint = that.dragableArea.startPoint, endPoint = that.dragableArea.endPoint, slideParams;\n e.preventDefault();\n if (owner._isHorizontal) {\n if (owner._isRtl) {\n that.val = that.constrainValue(x, startPoint, endPoint, x < endPoint);\n } else {\n that.val = that.constrainValue(x, startPoint, endPoint, x >= endPoint);\n }\n } else {\n that.val = that.constrainValue(y, endPoint, startPoint, y <= endPoint);\n }\n if (that.oldVal != that.val) {\n that.oldVal = that.val;\n if (that.type) {\n if (that.type == 'firstHandle') {\n if (that.val < that.selectionEnd) {\n that.selectionStart = that.val;\n } else {\n that.selectionStart = that.selectionEnd = that.val;\n }\n } else {\n if (that.val > that.selectionStart) {\n that.selectionEnd = that.val;\n } else {\n that.selectionStart = that.selectionEnd = that.val;\n }\n }\n slideParams = {\n values: [\n that.selectionStart,\n that.selectionEnd\n ],\n value: [\n that.selectionStart,\n that.selectionEnd\n ]\n };\n } else {\n slideParams = { value: that.val };\n }\n owner.trigger(SLIDE, slideParams);\n }\n that._updateTooltip(that.val);\n },\n _updateTooltip: function (val) {\n var that = this, options = that.options, tooltip = options.tooltip, html = '';\n if (!tooltip.enabled) {\n return;\n }\n if (!that.tooltipDiv) {\n that._createTooltip();\n }\n html = that.owner._getFormattedValue(round(val), that);\n if (!that.type) {\n html += that.tooltipInnerDiv;\n }\n that.tooltipDiv.html(html);\n that.moveTooltip();\n },\n dragcancel: function () {\n this.owner._refresh();\n $(document.documentElement).css('cursor', '');\n return this._end();\n },\n dragend: function () {\n var that = this, owner = that.owner;\n $(document.documentElement).css('cursor', '');\n if (that.type) {\n owner._update(that.selectionStart, that.selectionEnd);\n } else {\n owner._update(that.val);\n that.draggable.userEvents._disposeAll();\n }\n that.draggable.userEvents.cancel();\n return that._end();\n },\n _end: function () {\n var that = this, owner = that.owner;\n owner._focusWithMouse(that.element);\n owner.element.on(MOUSE_OVER);\n return false;\n },\n _removeTooltip: function (noAnimation) {\n var that = this, owner = that.owner;\n if (that.tooltipDiv && owner.options.tooltip.enabled && owner.options.enabled) {\n if (noAnimation) {\n that.tooltipDiv.remove();\n that.tooltipDiv = null;\n } else {\n that.tooltipDiv.fadeOut('slow', function () {\n $(this).remove();\n that.tooltipDiv = null;\n });\n }\n }\n },\n moveTooltip: function () {\n var that = this, owner = that.owner, top = 0, left = 0, element = that.element, offset = kendo.getOffset(element), margin = 8, viewport = $(window), callout = that.tooltipDiv.find('.k-callout'), width = outerWidth(that.tooltipDiv), height = outerHeight(that.tooltipDiv), dragHandles, sdhOffset, diff, anchorSize;\n if (that.type) {\n dragHandles = owner.wrapper.find(DRAG_HANDLE);\n offset = kendo.getOffset(dragHandles.eq(0));\n sdhOffset = kendo.getOffset(dragHandles.eq(1));\n if (owner._isHorizontal) {\n top = sdhOffset.top;\n left = offset.left + (sdhOffset.left - offset.left) / 2;\n } else {\n top = offset.top + (sdhOffset.top - offset.top) / 2;\n left = sdhOffset.left;\n }\n anchorSize = outerWidth(dragHandles.eq(0)) + 2 * margin;\n } else {\n top = offset.top;\n left = offset.left;\n anchorSize = outerWidth(element) + 2 * margin;\n }\n if (owner._isHorizontal) {\n left -= parseInt((width - owner._outerSize(element)) / 2, 10);\n top -= height + margin + (callout.length ? callout.height() : 0);\n } else {\n top -= parseInt((height - owner._outerSize(element)) / 2, 10);\n left -= width + margin + (callout.length ? callout.width() : 0);\n }\n if (owner._isHorizontal) {\n diff = that._flip(top, height, anchorSize, outerHeight(viewport) + that._scrollOffset.top);\n top += diff;\n left += that._fit(left, width, outerWidth(viewport) + that._scrollOffset.left);\n } else {\n diff = that._flip(left, width, anchorSize, outerWidth(viewport) + that._scrollOffset.left);\n top += that._fit(top, height, outerHeight(viewport) + that._scrollOffset.top);\n left += diff;\n }\n if (diff > 0 && callout) {\n callout.removeClass();\n callout.addClass('k-callout k-callout-' + (owner._isHorizontal ? 'n' : 'w'));\n }\n that.tooltipDiv.css({\n top: top,\n left: left\n });\n },\n _fit: function (position, size, viewPortEnd) {\n var output = 0;\n if (position + size > viewPortEnd) {\n output = viewPortEnd - (position + size);\n }\n if (position < 0) {\n output = -position;\n }\n return output;\n },\n _flip: function (offset, size, anchorSize, viewPortEnd) {\n var output = 0;\n if (offset + size > viewPortEnd) {\n output += -(anchorSize + size);\n }\n if (offset + output < 0) {\n output += anchorSize + size;\n }\n return output;\n },\n constrainValue: function (position, min, max, maxOverflow) {\n var that = this, val = 0;\n if (min < position && position < max) {\n val = that.owner._getValueFromPosition(position, that.dragableArea);\n } else {\n if (maxOverflow) {\n val = that.options.max;\n } else {\n val = that.options.min;\n }\n }\n return val;\n }\n };\n kendo.ui.plugin(Slider);\n var RangeSlider = SliderBase.extend({\n init: function (element, options) {\n var that = this, inputs = $(element).find('input'), firstInput = inputs.eq(0)[0], secondInput = inputs.eq(1)[0];\n firstInput.type = 'text';\n secondInput.type = 'text';\n if (options && options.showButtons) {\n if (window.console) {\n window.console.warn('showbuttons option is not supported for the range slider, ignoring');\n }\n options.showButtons = false;\n }\n options = extend({}, {\n selectionStart: parseAttr(firstInput, 'value'),\n min: parseAttr(firstInput, 'min'),\n max: parseAttr(firstInput, 'max'),\n smallStep: parseAttr(firstInput, 'step')\n }, {\n selectionEnd: parseAttr(secondInput, 'value'),\n min: parseAttr(secondInput, 'min'),\n max: parseAttr(secondInput, 'max'),\n smallStep: parseAttr(secondInput, 'step')\n }, options);\n if (options && options.enabled === undefined) {\n options.enabled = !inputs.is('[disabled]');\n }\n SliderBase.fn.init.call(that, element, options);\n options = that.options;\n if (!defined(options.selectionStart) || options.selectionStart === null) {\n options.selectionStart = options.min;\n inputs.eq(0).prop('value', formatValue(options.min));\n }\n if (!defined(options.selectionEnd) || options.selectionEnd === null) {\n options.selectionEnd = options.max;\n inputs.eq(1).prop('value', formatValue(options.max));\n }\n var dragHandles = that.wrapper.find(DRAG_HANDLE);\n this._selection = new RangeSlider.Selection(dragHandles, that, options);\n that._firstHandleDrag = new Slider.Drag(dragHandles.eq(0), 'firstHandle', that, options);\n that._lastHandleDrag = new Slider.Drag(dragHandles.eq(1), 'lastHandle', that, options);\n },\n options: {\n name: 'RangeSlider',\n leftDragHandleTitle: 'drag',\n rightDragHandleTitle: 'drag',\n tooltip: { format: '{0:#,#.##}' },\n selectionStart: null,\n selectionEnd: null\n },\n enable: function (enable) {\n var that = this, options = that.options, clickHandler;\n that.disable();\n if (enable === false) {\n return;\n }\n that.wrapper.removeClass(STATE_DISABLED).addClass(STATE_DEFAULT);\n that.wrapper.find('input').removeAttr(DISABLED);\n clickHandler = function (e) {\n var touch = getTouches(e)[0];\n if (!touch) {\n return;\n }\n var mousePosition = that._isHorizontal ? touch.location.pageX : touch.location.pageY, dragableArea = that._getDraggableArea(), val = that._getValueFromPosition(mousePosition, dragableArea), target = $(e.target), from, to, drag;\n if (target.hasClass('k-draghandle')) {\n that.wrapper.find('.' + STATE_FOCUSED).removeClass(STATE_FOCUSED + ' ' + STATE_SELECTED);\n target.addClass(STATE_FOCUSED + ' ' + STATE_SELECTED);\n return;\n }\n if (val < options.selectionStart) {\n from = val;\n to = options.selectionEnd;\n drag = that._firstHandleDrag;\n } else if (val > that.selectionEnd) {\n from = options.selectionStart;\n to = val;\n drag = that._lastHandleDrag;\n } else {\n if (val - options.selectionStart <= options.selectionEnd - val) {\n from = val;\n to = options.selectionEnd;\n drag = that._firstHandleDrag;\n } else {\n from = options.selectionStart;\n to = val;\n drag = that._lastHandleDrag;\n }\n }\n drag.dragstart(e);\n that._setValueInRange(from, to);\n that._focusWithMouse(drag.element);\n };\n that.wrapper.find(TICK_SELECTOR + ', ' + TRACK_SELECTOR).on(TRACK_MOUSE_DOWN, clickHandler).end().on(TRACK_MOUSE_DOWN, function () {\n $(document.documentElement).one('selectstart', kendo.preventDefault);\n }).on(TRACK_MOUSE_UP, function () {\n if (that._activeDragHandle) {\n that._activeDragHandle._end();\n }\n });\n that.wrapper.find(DRAG_HANDLE).attr(TABINDEX, 0).on(MOUSE_UP, function () {\n that._setTooltipTimeout();\n }).on(CLICK, function (e) {\n that._focusWithMouse(e.target);\n e.preventDefault();\n }).on(FOCUS, proxy(that._focus, that)).on(BLUR, proxy(that._blur, that));\n that.wrapper.find(DRAG_HANDLE).off(KEY_DOWN, kendo.preventDefault).eq(0).on(KEY_DOWN, proxy(function (e) {\n this._keydown(e, 'firstHandle');\n }, that)).end().eq(1).on(KEY_DOWN, proxy(function (e) {\n this._keydown(e, 'lastHandle');\n }, that));\n that.options.enabled = true;\n },\n disable: function () {\n var that = this;\n that.wrapper.removeClass(STATE_DEFAULT).addClass(STATE_DISABLED);\n that.wrapper.find('input').prop(DISABLED, DISABLED);\n that.wrapper.find(TICK_SELECTOR + ', ' + TRACK_SELECTOR).off(TRACK_MOUSE_DOWN).off(TRACK_MOUSE_UP);\n that.wrapper.find(DRAG_HANDLE).attr(TABINDEX, -1).off(MOUSE_UP).off(KEY_DOWN).off(CLICK).off(FOCUS).off(BLUR);\n that.options.enabled = false;\n },\n _keydown: function (e, handle) {\n var that = this, selectionStartValue = that.options.selectionStart, selectionEndValue = that.options.selectionEnd, dragSelectionStart, dragSelectionEnd, activeHandleDrag;\n if (e.keyCode in that._keyMap) {\n that._clearTooltipTimeout();\n if (handle == 'firstHandle') {\n activeHandleDrag = that._activeHandleDrag = that._firstHandleDrag;\n selectionStartValue = that._keyMap[e.keyCode](selectionStartValue);\n if (selectionStartValue > selectionEndValue) {\n selectionEndValue = selectionStartValue;\n }\n } else {\n activeHandleDrag = that._activeHandleDrag = that._lastHandleDrag;\n selectionEndValue = that._keyMap[e.keyCode](selectionEndValue);\n if (selectionStartValue > selectionEndValue) {\n selectionStartValue = selectionEndValue;\n }\n }\n that._setValueInRange(round(selectionStartValue), round(selectionEndValue));\n dragSelectionStart = Math.max(selectionStartValue, that.options.selectionStart);\n dragSelectionEnd = Math.min(selectionEndValue, that.options.selectionEnd);\n activeHandleDrag.selectionEnd = Math.max(dragSelectionEnd, that.options.selectionStart);\n activeHandleDrag.selectionStart = Math.min(dragSelectionStart, that.options.selectionEnd);\n activeHandleDrag._updateTooltip(that.value()[that._activeHandle]);\n e.preventDefault();\n }\n },\n _update: function (selectionStart, selectionEnd) {\n var that = this, values = that.value();\n var change = values[0] != selectionStart || values[1] != selectionEnd;\n that.value([\n selectionStart,\n selectionEnd\n ]);\n if (change) {\n that.trigger(CHANGE, {\n values: [\n selectionStart,\n selectionEnd\n ],\n value: [\n selectionStart,\n selectionEnd\n ]\n });\n }\n },\n value: function (value) {\n if (value && value.length) {\n return this._value(value[0], value[1]);\n } else {\n return this._value();\n }\n },\n _value: function (start, end) {\n var that = this, options = that.options, selectionStart = options.selectionStart, selectionEnd = options.selectionEnd;\n if (isNaN(start) && isNaN(end)) {\n return [\n selectionStart,\n selectionEnd\n ];\n } else {\n start = round(start);\n end = round(end);\n }\n if (start >= options.min && start <= options.max && end >= options.min && end <= options.max && start <= end) {\n if (selectionStart != start || selectionEnd != end) {\n that.element.find('input').eq(0).prop('value', formatValue(start)).end().eq(1).prop('value', formatValue(end));\n options.selectionStart = start;\n options.selectionEnd = end;\n that._refresh();\n that._refreshAriaAttr(start, end);\n }\n }\n },\n values: function (start, end) {\n if (isArray(start)) {\n return this._value(start[0], start[1]);\n } else {\n return this._value(start, end);\n }\n },\n _refresh: function () {\n var that = this, options = that.options;\n that.trigger(MOVE_SELECTION, {\n values: [\n options.selectionStart,\n options.selectionEnd\n ],\n value: [\n options.selectionStart,\n options.selectionEnd\n ]\n });\n if (options.selectionStart == options.max && options.selectionEnd == options.max) {\n that._setZIndex('firstHandle');\n }\n },\n _refreshAriaAttr: function (start, end) {\n var that = this, dragHandles = that.wrapper.find(DRAG_HANDLE), drag = that._activeHandleDrag, formattedValue;\n formattedValue = that._getFormattedValue([\n start,\n end\n ], drag);\n dragHandles.eq(0).attr('aria-valuenow', start);\n dragHandles.eq(1).attr('aria-valuenow', end);\n dragHandles.attr('aria-valuetext', formattedValue);\n },\n _setValueInRange: function (selectionStart, selectionEnd) {\n var options = this.options;\n selectionStart = math.max(math.min(selectionStart, options.max), options.min);\n selectionEnd = math.max(math.min(selectionEnd, options.max), options.min);\n if (selectionStart == options.max && selectionEnd == options.max) {\n this._setZIndex('firstHandle');\n }\n this._update(math.min(selectionStart, selectionEnd), math.max(selectionStart, selectionEnd));\n },\n _setZIndex: function (type) {\n this.wrapper.find(DRAG_HANDLE).each(function (index) {\n $(this).css('z-index', type == 'firstHandle' ? 1 - index : index);\n });\n },\n _formResetHandler: function () {\n var that = this, options = that.options;\n setTimeout(function () {\n var inputs = that.element.find('input');\n var start = inputs[0].value;\n var end = inputs[1].value;\n that.values(start === '' || isNaN(start) ? options.min : start, end === '' || isNaN(end) ? options.max : end);\n });\n },\n destroy: function () {\n var that = this;\n SliderBase.fn.destroy.call(that);\n that.wrapper.off(NS).find(TICK_SELECTOR + ', ' + TRACK_SELECTOR).off(NS).end().find(DRAG_HANDLE).off(NS);\n that._firstHandleDrag.draggable.destroy();\n that._lastHandleDrag.draggable.destroy();\n }\n });\n RangeSlider.Selection = function (dragHandles, that, options) {\n function moveSelection(value) {\n value = value || [];\n var selectionStartValue = value[0] - options.min, selectionEndValue = value[1] - options.min, selectionStartIndex = math.ceil(round(selectionStartValue / options.smallStep)), selectionEndIndex = math.ceil(round(selectionEndValue / options.smallStep)), selectionStart = that._pixelSteps[selectionStartIndex], selectionEnd = that._pixelSteps[selectionEndIndex], halfHandle = parseInt(that._outerSize(dragHandles.eq(0)) / 2, 10), rtlCorrection = that._isRtl ? 2 : 0;\n dragHandles.eq(0).css(that._position, selectionStart - halfHandle - rtlCorrection).end().eq(1).css(that._position, selectionEnd - halfHandle - rtlCorrection);\n makeSelection(selectionStart, selectionEnd);\n }\n function makeSelection(selectionStart, selectionEnd) {\n var selection, selectionPosition, selectionDiv = that._trackDiv.find('.k-slider-selection');\n selection = math.abs(selectionStart - selectionEnd);\n selectionDiv[that._sizeFn](selection);\n if (that._isRtl) {\n selectionPosition = math.max(selectionStart, selectionEnd);\n selectionDiv.css('right', that._maxSelection - selectionPosition - 1);\n } else {\n selectionPosition = math.min(selectionStart, selectionEnd);\n selectionDiv.css(that._position, selectionPosition - 1);\n }\n }\n moveSelection(that.value());\n that.bind([\n CHANGE,\n SLIDE,\n MOVE_SELECTION\n ], function (e) {\n moveSelection(e.values);\n });\n };\n kendo.ui.plugin(RangeSlider);\n }(window.kendo.jQuery));\n return window.kendo;\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('kendo.badge', ['kendo.core'], f);\n}(function () {\n var __meta__ = {\n id: 'badge',\n name: 'Badge',\n category: 'web',\n description: 'The Badge decorates avatars, navigation menus, or other components in the application when visual notification is needed',\n depends: ['core']\n };\n (function ($, undefined) {\n var kendo = window.kendo;\n var Widget = kendo.ui.Widget;\n var ui = kendo.ui;\n var HIDDEN = 'k-hidden';\n var iconTemplate = '';\n var svgIconTemplate = '#= icon #';\n var Badge = Widget.extend({\n init: function (element, options) {\n var that = this;\n Widget.fn.init.call(that, element, options);\n that._deprecated();\n that._content();\n that._appearance();\n kendo.notify(that);\n },\n destroy: function () {\n var that = this;\n Widget.fn.destroy.call(that);\n },\n options: {\n name: 'Badge',\n badgeStyle: 'solid',\n color: 'secondary',\n cutoutBorder: false,\n data: {},\n icon: '',\n max: Infinity,\n placement: 'edge',\n position: 'inline',\n sizes: {\n 'small': 'sm',\n 'medium': '',\n 'large': 'lg'\n },\n size: 'medium',\n shape: 'rounded',\n template: null,\n text: '',\n visible: true,\n _classNames: []\n },\n _deprecated: function () {\n var that = this;\n var options = that.options;\n if (options.text === '' && options.value !== '' && options.value !== undefined) {\n options.text = options.value;\n }\n if (options.color === 'secondary' && typeof options.type === 'string' && options.type !== '') {\n options.color = options.type;\n }\n if (options.shape === 'rounded' && typeof options.appearance === 'string' && options.appearance !== '') {\n options.shape = options.appearance;\n }\n if (options.badgeStyle === 'solid' && typeof options.look === 'string' && options.look !== '') {\n options.badgeStyle = options.look;\n }\n if (options.position === 'inline' && typeof options.overlay === 'boolean' && options.overlay === true) {\n options.position = 'top end';\n }\n },\n _content: function () {\n var that = this;\n var text = that.options.text;\n var template = that.options.template;\n var data = that.options.data;\n var icon = that.options.icon;\n if (template !== null) {\n that._text = text;\n that._template = kendo.template(template).bind(that);\n that.element.html(that._template(data));\n return;\n }\n if (icon !== '') {\n that.icon(icon);\n return;\n }\n if (text !== '') {\n that.text(text);\n return;\n }\n that.text(that.element.html());\n },\n _appearance: function () {\n var that = this;\n that._color = that.options.color;\n that._shape = that.options.shape;\n that._sizes = that.options.sizes;\n that._size = that.options.size;\n that._badgeStyle = that.options.badgeStyle;\n that._cutoutBorder = that.options.cutoutBorder;\n that._placement = that.options.placement;\n that._position = that.options.position;\n that._visible = that.options.visible;\n that._updateClassNames();\n },\n _updateClassNames: function () {\n var that = this;\n var classNames = ['k-badge'];\n var keepClassNames = that.options._classNames;\n var color = that._color;\n var shape = that._shape;\n var sizes = that._sizes;\n var size = that._size;\n var sizeAbbr = sizes[size] === undefined ? size : sizes[size];\n var sizeSuffix = '';\n var badgeStyle = that._badgeStyle;\n var badgeStyleInfix = '';\n var cutoutBorder = this._cutoutBorder;\n var placement = that._placement;\n var placementInfix = '';\n var position = this._position.toLowerCase();\n var positions;\n var visible = that._visible;\n that.element.removeClass(function (index, className) {\n if (className.indexOf('k-') === 0 && keepClassNames.indexOf(className) === -1) {\n that.element.removeClass(className);\n }\n });\n if (typeof badgeStyle === 'string' && badgeStyle !== '' && badgeStyle !== 'solid') {\n classNames.push('k-badge-' + badgeStyle);\n badgeStyleInfix = badgeStyle + '-';\n }\n if (typeof color === 'string' && color !== '' && color !== 'inherit') {\n classNames.push('k-badge-' + badgeStyleInfix + color);\n }\n if (typeof size === 'string' && size !== '' && size !== 'medium' && sizeAbbr !== '') {\n classNames.push('k-badge-' + sizeAbbr);\n sizeSuffix = '-' + sizeAbbr;\n }\n if (typeof shape === 'string' && shape !== '' && shape !== 'rectangle') {\n classNames.push('k-badge-' + shape);\n if (sizeSuffix !== '') {\n classNames.push('k-badge-' + shape + sizeSuffix);\n }\n }\n if (typeof cutoutBorder === 'boolean' && cutoutBorder === true) {\n classNames.push('k-badge-border-cutout');\n }\n if (typeof placement === 'string' && placement !== '' && placement !== 'edge') {\n placementInfix = placement + '-';\n }\n if (typeof position === 'string' && position.split(' ').length == 2) {\n positions = position.split(' ');\n classNames.push('k-badge-' + placementInfix + positions[0] + '-' + positions[1]);\n }\n if (visible === false) {\n classNames.push(HIDDEN);\n }\n that.element.addClass(classNames.join(' '));\n },\n setOptions: function (options) {\n var that = this;\n that.element.removeClass(function (index, className) {\n if (className.indexOf('k-') >= 0) {\n that.element.removeClass(className);\n }\n });\n Widget.fn.setOptions.call(that, options);\n that._deprecated();\n that._content();\n that._appearance();\n },\n text: function (text) {\n var that = this;\n var max = that.options.max;\n if (arguments.length === 0 || text === undefined) {\n return that._text;\n }\n that._text = text;\n if (text === true || text === false || text === null) {\n that.element.html('');\n return;\n }\n if (typeof text === 'string') {\n that.element.html(text);\n return;\n }\n if (typeof text === 'number') {\n if (text > max) {\n that.element.html(max + '+');\n } else {\n that.element.html(text);\n }\n return;\n }\n if (typeof text === 'object' && 'toString' in text) {\n that.element.html(text.toString());\n return;\n }\n },\n icon: function (icon) {\n var that = this;\n var iconTemplateFunction;\n if (arguments.length === 0 || icon === undefined) {\n return that._icon;\n }\n that._icon = icon;\n if (icon.indexOf(' 0) {\n isEmpty = false;\n }\n });\n if (isEmpty) {\n element.addClass(KBUTTONICON);\n } else {\n element.addClass(KBUTTONICONTEXT);\n }\n }\n if (imageUrl) {\n img = element.children('img.k-image').first();\n if (!img[0]) {\n img = $('\"icon\"').prependTo(element);\n }\n img.attr('src', imageUrl);\n } else if (icon || iconClass) {\n span = element.children('span.k-icon').first();\n if (!span[0]) {\n span = $('').prependTo(element);\n }\n span.attr('class', icon ? 'k-icon k-i-' + icon : iconClass);\n } else if (spriteCssClass) {\n span = element.children('span.k-sprite').first();\n if (!span[0]) {\n span = $('').prependTo(element);\n }\n span.addClass(spriteCssClass);\n }\n },\n enable: function (enable) {\n var that = this, element = that.element;\n if (enable === undefined) {\n enable = true;\n }\n enable = !!enable;\n that.options.enable = enable;\n element.toggleClass(DISABLEDSTATE, !enable).attr('aria-disabled', !enable).attr(DISABLED, !enable);\n if (enable) {\n that._tabindex();\n }\n try {\n element.blur();\n } catch (err) {\n }\n },\n _badge: function () {\n var that = this;\n var badgeOptions = that.options.badge;\n var badgeEelement;\n if (badgeOptions === null || badgeOptions === undefined) {\n return;\n }\n if (badgeOptions.constructor !== Object) {\n badgeOptions = { text: badgeOptions };\n }\n if (badgeOptions.position === undefined || badgeOptions.position === '') {\n badgeOptions.position = 'top end';\n }\n badgeOptions._classNames = ['k-button-badge'];\n that.element.addClass('k-badge-container');\n badgeEelement = $('').appendTo(that.element);\n that.badge = new ui.Badge(badgeEelement, badgeOptions);\n }\n });\n if (Button.fn.hasOwnProperty('defaults') === false) {\n Object.defineProperty(Button.fn, 'defaults', {\n get: function () {\n return kendo.defaults.button;\n }\n });\n }\n kendo.ui.plugin(Button);\n }(window.kendo.jQuery));\n return window.kendo;\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('kendo.colorpicker', [\n 'kendo.core',\n 'kendo.color',\n 'kendo.popup',\n 'kendo.slider',\n 'kendo.userevents',\n 'kendo.button'\n ], f);\n}(function () {\n var __meta__ = {\n id: 'colorpicker',\n name: 'Color tools',\n category: 'web',\n description: 'Color selection widgets',\n depends: [\n 'core',\n 'color',\n 'popup',\n 'slider',\n 'userevents',\n 'button'\n ]\n };\n (function ($, parseInt, undefined) {\n var kendo = window.kendo, ui = kendo.ui, Widget = ui.Widget, parseColor = kendo.parseColor, Color = kendo.Color, KEYS = kendo.keys, BACKGROUNDCOLOR = 'background-color', ITEMSELECTEDCLASS = 'k-state-selected', SIMPLEPALETTE = '000000,7f7f7f,880015,ed1c24,ff7f27,fff200,22b14c,00a2e8,3f48cc,a349a4,ffffff,c3c3c3,b97a57,ffaec9,ffc90e,efe4b0,b5e61d,99d9ea,7092be,c8bfe7', WEBPALETTE = 'FFFFFF,FFCCFF,FF99FF,FF66FF,FF33FF,FF00FF,CCFFFF,CCCCFF,CC99FF,CC66FF,CC33FF,CC00FF,99FFFF,99CCFF,9999FF,9966FF,9933FF,9900FF,FFFFCC,FFCCCC,FF99CC,FF66CC,FF33CC,FF00CC,CCFFCC,CCCCCC,CC99CC,CC66CC,CC33CC,CC00CC,99FFCC,99CCCC,9999CC,9966CC,9933CC,9900CC,FFFF99,FFCC99,FF9999,FF6699,FF3399,FF0099,CCFF99,CCCC99,CC9999,CC6699,CC3399,CC0099,99FF99,99CC99,999999,996699,993399,990099,FFFF66,FFCC66,FF9966,FF6666,FF3366,FF0066,CCFF66,CCCC66,CC9966,CC6666,CC3366,CC0066,99FF66,99CC66,999966,996666,993366,990066,FFFF33,FFCC33,FF9933,FF6633,FF3333,FF0033,CCFF33,CCCC33,CC9933,CC6633,CC3333,CC0033,99FF33,99CC33,999933,996633,993333,990033,FFFF00,FFCC00,FF9900,FF6600,FF3300,FF0000,CCFF00,CCCC00,CC9900,CC6600,CC3300,CC0000,99FF00,99CC00,999900,996600,993300,990000,66FFFF,66CCFF,6699FF,6666FF,6633FF,6600FF,33FFFF,33CCFF,3399FF,3366FF,3333FF,3300FF,00FFFF,00CCFF,0099FF,0066FF,0033FF,0000FF,66FFCC,66CCCC,6699CC,6666CC,6633CC,6600CC,33FFCC,33CCCC,3399CC,3366CC,3333CC,3300CC,00FFCC,00CCCC,0099CC,0066CC,0033CC,0000CC,66FF99,66CC99,669999,666699,663399,660099,33FF99,33CC99,339999,336699,333399,330099,00FF99,00CC99,009999,006699,003399,000099,66FF66,66CC66,669966,666666,663366,660066,33FF66,33CC66,339966,336666,333366,330066,00FF66,00CC66,009966,006666,003366,000066,66FF33,66CC33,669933,666633,663333,660033,33FF33,33CC33,339933,336633,333333,330033,00FF33,00CC33,009933,006633,003333,000033,66FF00,66CC00,669900,666600,663300,660000,33FF00,33CC00,339900,336600,333300,330000,00FF00,00CC00,009900,006600,003300,000000', WHITE = '#ffffff', MESSAGES = {\n apply: 'Apply',\n cancel: 'Cancel',\n noColor: 'no color',\n clearColor: 'Clear color',\n previewInput: 'Color Hexadecimal Code'\n }, NS = '.kendoColorTools', CLICK_NS = 'click' + NS, KEYDOWN_NS = 'keydown' + NS, DISABLED = 'k-state-disabled', browser = kendo.support.browser, isIE8 = browser.msie && browser.version < 9;\n var ColorSelector = Widget.extend({\n init: function (element, options) {\n var that = this, ariaId;\n Widget.fn.init.call(that, element, options);\n element = that.element;\n options = that.options;\n that._value = options.value = parseColor(options.value);\n that._tabIndex = element.attr('tabIndex') || 0;\n ariaId = that._ariaId = options.ariaId;\n if (ariaId) {\n element.attr('aria-labelledby', ariaId);\n }\n if (options._standalone) {\n that._triggerSelect = that._triggerChange;\n }\n },\n options: {\n name: 'ColorSelector',\n value: null,\n _standalone: true\n },\n events: [\n 'change',\n 'select',\n 'cancel'\n ],\n color: function (value) {\n if (value !== undefined) {\n this._value = parseColor(value);\n this._updateUI(this._value);\n }\n return this._value;\n },\n value: function (color) {\n color = this.color(color);\n if (color) {\n if (this.options.opacity) {\n color = color.toCssRgba();\n } else {\n color = color.toCss();\n }\n }\n return color || null;\n },\n enable: function (enable) {\n if (arguments.length === 0) {\n enable = true;\n }\n this.wrapper.toggleClass(DISABLED, !enable);\n this._onEnable(enable);\n },\n _select: function (color, nohooks) {\n var prev = this._value;\n color = this.color(color);\n if (!nohooks) {\n this.element.trigger('change');\n if (!color.equals(prev)) {\n this.trigger('change', { value: this.value() });\n } else if (!this._standalone) {\n this.trigger('cancel');\n }\n }\n },\n _triggerSelect: function (color) {\n triggerEvent(this, 'select', color);\n },\n _triggerChange: function (color) {\n triggerEvent(this, 'change', color);\n },\n destroy: function () {\n if (this.element) {\n this.element.off(NS);\n }\n if (this.wrapper) {\n this.wrapper.off(NS).find('*').off(NS);\n }\n this.wrapper = null;\n Widget.fn.destroy.call(this);\n },\n _updateUI: $.noop,\n _selectOnHide: function () {\n return null;\n },\n _cancel: function () {\n this.trigger('cancel');\n }\n });\n function triggerEvent(self, type, color) {\n color = parseColor(color);\n if (color && !color.equals(self.color())) {\n if (type == 'change') {\n self._value = color;\n }\n if (color.a != 1) {\n color = color.toCssRgba();\n } else {\n color = color.toCss();\n }\n self.trigger(type, { value: color });\n }\n }\n var ColorPalette = ColorSelector.extend({\n init: function (element, options) {\n var that = this;\n ColorSelector.fn.init.call(that, element, options);\n element = that.wrapper = that.element;\n options = that.options;\n var colors = options.palette;\n if (colors == 'websafe') {\n colors = WEBPALETTE;\n options.columns = 18;\n } else if (colors == 'basic') {\n colors = SIMPLEPALETTE;\n }\n if (typeof colors == 'string') {\n colors = colors.split(',');\n }\n if ($.isArray(colors)) {\n colors = $.map(colors, function (x) {\n return parseColor(x);\n });\n }\n that._selectedID = (options.ariaId || kendo.guid()) + '_selected';\n element.addClass('k-widget k-colorpalette').attr('role', 'grid').attr('aria-readonly', 'true').append($(that._template({\n colors: colors,\n columns: options.columns,\n tileSize: options.tileSize,\n value: that._value,\n id: options.ariaId\n }))).on(CLICK_NS, '.k-item', function (ev) {\n that._select($(ev.currentTarget).css(BACKGROUNDCOLOR));\n }).attr('tabIndex', that._tabIndex).on(KEYDOWN_NS, bind(that._keydown, that));\n var tileSize = options.tileSize, width, height;\n if (tileSize) {\n if (/number|string/.test(typeof tileSize)) {\n width = height = parseFloat(tileSize);\n } else if (typeof tileSize == 'object') {\n width = parseFloat(tileSize.width);\n height = parseFloat(tileSize.height);\n } else {\n throw new Error('Unsupported value for the \\'tileSize\\' argument');\n }\n element.find('.k-item').css({\n width: width,\n height: height\n });\n }\n },\n focus: function () {\n if (this.wrapper && !this.wrapper.is('[unselectable=\\'on\\']')) {\n this.wrapper.focus();\n }\n },\n options: {\n name: 'ColorPalette',\n columns: 10,\n tileSize: null,\n palette: 'basic'\n },\n _onEnable: function (enable) {\n if (enable) {\n this.wrapper.attr('tabIndex', this._tabIndex);\n } else {\n this.wrapper.removeAttr('tabIndex');\n }\n },\n _keydown: function (e) {\n var selected, wrapper = this.wrapper, items = wrapper.find('.k-item'), current = items.filter('.' + ITEMSELECTEDCLASS).get(0), keyCode = e.keyCode;\n if (keyCode == KEYS.LEFT) {\n selected = relative(items, current, -1);\n } else if (keyCode == KEYS.RIGHT) {\n selected = relative(items, current, 1);\n } else if (keyCode == KEYS.DOWN) {\n selected = relative(items, current, this.options.columns);\n } else if (keyCode == KEYS.UP) {\n selected = relative(items, current, -this.options.columns);\n } else if (keyCode == KEYS.ENTER) {\n preventDefault(e);\n if (current) {\n this._select($(current).css(BACKGROUNDCOLOR));\n }\n } else if (keyCode == KEYS.ESC) {\n this._cancel();\n }\n if (selected) {\n preventDefault(e);\n this._current(selected);\n try {\n var color = parseColor(selected.css(BACKGROUNDCOLOR));\n this._triggerSelect(color);\n } catch (ex) {\n }\n }\n },\n _current: function (item) {\n this.wrapper.find('.' + ITEMSELECTEDCLASS).removeClass(ITEMSELECTEDCLASS).attr('aria-selected', false).removeAttr('id');\n $(item).addClass(ITEMSELECTEDCLASS).attr('aria-selected', true).attr('id', this._selectedID);\n this.element.removeAttr('aria-activedescendant').attr('aria-activedescendant', this._selectedID);\n },\n _updateUI: function (color) {\n var item = null;\n this.wrapper.find('.k-item').each(function () {\n var c = parseColor($(this).css(BACKGROUNDCOLOR));\n if (c && c.equals(color)) {\n item = this;\n return false;\n }\n });\n this._current(item);\n },\n _template: kendo.template('' + '# for (var i = 0; i < colors.length; ++i) { #' + '# var selected = colors[i].equals(value); #' + '# if (i && i % columns == 0) { # # } #' + '' + '# } #' + '
          ')\n });\n var FlatColorPicker = ColorSelector.extend({\n init: function (element, options) {\n var that = this;\n ColorSelector.fn.init.call(that, element, options);\n options = that.options;\n options.messages = options.options ? $.extend(that.options.messages, options.options.messages) : that.options.messages;\n element = that.element;\n that.wrapper = element.addClass('k-widget k-flatcolorpicker').append(that._template(options));\n that._hueElements = $('.k-hsv-rectangle, .k-alpha-slider .k-slider-track', element);\n that._selectedColor = $('.k-selected-color-display', element);\n that._colorAsText = $('input.k-color-value', element);\n that._sliders();\n that._hsvArea();\n that._updateUI(that._value || parseColor('#f00'));\n element.find('input.k-color-value').on(KEYDOWN_NS, function (ev) {\n var input = this;\n if (ev.keyCode == KEYS.ENTER) {\n try {\n var color = parseColor(input.value);\n var val = that.color();\n that._select(color, color.equals(val));\n } catch (ex) {\n $(input).addClass('k-state-error');\n }\n } else if (that.options.autoupdate) {\n setTimeout(function () {\n var color = parseColor(input.value, true);\n if (color) {\n that._updateUI(color, true);\n }\n }, 10);\n }\n }).end().on(CLICK_NS, '.k-controls button.apply', function () {\n if (that.options._clearedColor) {\n that.trigger('change');\n } else {\n that._select(that._getHSV());\n }\n }).on(CLICK_NS, '.k-controls button.cancel', function () {\n that._updateUI(that.color());\n that._cancel();\n });\n if (isIE8) {\n that._applyIEFilter();\n }\n },\n destroy: function () {\n this._hsvEvents.destroy();\n this._hueSlider.destroy();\n if (this._opacitySlider) {\n this._opacitySlider.destroy();\n }\n this._hueSlider = this._opacitySlider = this._hsvRect = this._hsvHandle = this._hueElements = this._selectedColor = this._colorAsText = null;\n ColorSelector.fn.destroy.call(this);\n },\n options: {\n name: 'FlatColorPicker',\n opacity: false,\n buttons: false,\n input: true,\n preview: true,\n clearButton: false,\n autoupdate: true,\n messages: MESSAGES\n },\n _applyIEFilter: function () {\n var track = this.element.find('.k-hue-slider .k-slider-track')[0], url = track.currentStyle.backgroundImage;\n url = url.replace(/^url\\([\\'\\\"]?|[\\'\\\"]?\\)$/g, '');\n track.style.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\\'' + url + '\\', sizingMethod=\\'scale\\')';\n },\n _sliders: function () {\n var that = this, element = that.element, hueSlider = element.find('.k-hue-slider'), opacitySlider = element.find('.k-alpha-slider');\n function hueChange(e) {\n that._updateUI(that._getHSV(e.value, null, null, null));\n }\n hueSlider.attr('aria-label', 'hue saturation');\n that._hueSlider = hueSlider.kendoSlider({\n min: 0,\n max: 360,\n tickPlacement: 'none',\n showButtons: false,\n slide: hueChange,\n change: hueChange\n }).data('kendoSlider');\n function opacityChange(e) {\n that._updateUI(that._getHSV(null, null, null, e.value / 100));\n }\n opacitySlider.attr('aria-label', 'opacity');\n that._opacitySlider = opacitySlider.kendoSlider({\n min: 0,\n max: 100,\n tickPlacement: 'none',\n showButtons: false,\n slide: opacityChange,\n change: opacityChange\n }).data('kendoSlider');\n },\n _hsvArea: function () {\n var that = this, element = that.element, hsvRect = element.find('.k-hsv-rectangle'), hsvHandle = hsvRect.find('.k-draghandle').attr('tabIndex', 0).on(KEYDOWN_NS, bind(that._keydown, that));\n function update(x, y) {\n var offset = this.offset, dx = x - offset.left, dy = y - offset.top, rw = this.width, rh = this.height;\n dx = dx < 0 ? 0 : dx > rw ? rw : dx;\n dy = dy < 0 ? 0 : dy > rh ? rh : dy;\n that._svChange(dx / rw, 1 - dy / rh);\n }\n that._hsvEvents = new kendo.UserEvents(hsvRect, {\n global: true,\n press: function (e) {\n this.offset = kendo.getOffset(hsvRect);\n this.width = hsvRect.width();\n this.height = hsvRect.height();\n hsvHandle.focus();\n update.call(this, e.x.location, e.y.location);\n },\n start: function () {\n hsvRect.addClass('k-dragging');\n hsvHandle.focus();\n },\n move: function (e) {\n e.preventDefault();\n update.call(this, e.x.location, e.y.location);\n },\n end: function () {\n hsvRect.removeClass('k-dragging');\n }\n });\n that._hsvRect = hsvRect;\n that._hsvHandle = hsvHandle;\n },\n _onEnable: function (enable) {\n this._hueSlider.enable(enable);\n if (this._opacitySlider) {\n this._opacitySlider.enable(enable);\n }\n this.wrapper.find('input').attr('disabled', !enable);\n var handle = this._hsvRect.find('.k-draghandle');\n if (enable) {\n handle.attr('tabIndex', this._tabIndex);\n } else {\n handle.removeAttr('tabIndex');\n }\n },\n _keydown: function (ev) {\n var that = this;\n function move(prop, d) {\n var c = that._getHSV();\n c[prop] += d * (ev.shiftKey ? 0.01 : 0.05);\n if (c[prop] < 0) {\n c[prop] = 0;\n }\n if (c[prop] > 1) {\n c[prop] = 1;\n }\n that._updateUI(c);\n preventDefault(ev);\n }\n function hue(d) {\n var c = that._getHSV();\n c.h += d * (ev.shiftKey ? 1 : 5);\n if (c.h < 0) {\n c.h = 0;\n }\n if (c.h > 359) {\n c.h = 359;\n }\n that._updateUI(c);\n preventDefault(ev);\n }\n switch (ev.keyCode) {\n case KEYS.LEFT:\n if (ev.ctrlKey) {\n hue(-1);\n } else {\n move('s', -1);\n }\n break;\n case KEYS.RIGHT:\n if (ev.ctrlKey) {\n hue(1);\n } else {\n move('s', 1);\n }\n break;\n case KEYS.UP:\n move(ev.ctrlKey && that._opacitySlider ? 'a' : 'v', 1);\n break;\n case KEYS.DOWN:\n move(ev.ctrlKey && that._opacitySlider ? 'a' : 'v', -1);\n break;\n case KEYS.ENTER:\n that._select(that._getHSV());\n break;\n case KEYS.F2:\n that.wrapper.find('input.k-color-value').focus().select();\n break;\n case KEYS.ESC:\n that._cancel();\n break;\n }\n },\n focus: function () {\n this._hsvHandle.focus();\n },\n _getHSV: function (h, s, v, a) {\n var rect = this._hsvRect, width = rect.width(), height = rect.height(), handlePosition = this._hsvHandle.position();\n if (h == null) {\n h = this._hueSlider.value();\n }\n if (s == null) {\n s = handlePosition.left / width;\n }\n if (v == null) {\n v = 1 - handlePosition.top / height;\n }\n if (a == null) {\n a = this._opacitySlider ? this._opacitySlider.value() / 100 : 1;\n }\n return Color.fromHSV(h, s, v, a);\n },\n _svChange: function (s, v) {\n var color = this._getHSV(null, s, v, null);\n this._updateUI(color);\n },\n _updateUI: function (color, dontChangeInput) {\n var that = this, rect = that._hsvRect;\n if (!color) {\n return;\n }\n this._colorAsText.attr('title', that.options.messages.previewInput);\n this._colorAsText.removeClass('k-state-error');\n that._selectedColor.css(BACKGROUNDCOLOR, color.toDisplay());\n if (!dontChangeInput) {\n that._colorAsText.val(that._opacitySlider ? color.toCssRgba() : color.toCss());\n }\n that._triggerSelect(color);\n color = color.toHSV();\n that._hsvHandle.css({\n left: color.s * rect.width() + 'px',\n top: (1 - color.v) * rect.height() + 'px'\n });\n that._hueElements.css(BACKGROUNDCOLOR, Color.fromHSV(color.h, 1, 1, 1).toCss());\n that._hueSlider.value(color.h);\n if (that._opacitySlider) {\n that._opacitySlider.value(100 * color.a);\n }\n },\n _selectOnHide: function () {\n return this.options.buttons ? null : this._getHSV();\n },\n _template: kendo.template('# if (preview) { #' + '
          ' + '# if (clearButton && !_standalone) { #' + '' + '# } #' + '
          ' + '# } #' + '# if (clearButton && !_standalone && !preview) { #' + '
          #: messages.clearColor #
          ' + '# } #' + '
          ' + '
          ' + '' + '# if (opacity) { #' + '' + '# } #' + '
          ' + '# if (buttons) { #' + '
          ' + '# } #')\n });\n function relative(array, element, delta) {\n array = Array.prototype.slice.call(array);\n var n = array.length;\n var pos = array.indexOf(element);\n if (pos < 0) {\n return delta < 0 ? array[n - 1] : array[0];\n }\n pos += delta;\n if (pos < 0) {\n pos += n;\n } else {\n pos %= n;\n }\n return array[pos];\n }\n var ColorPicker = Widget.extend({\n init: function (element, options) {\n var that = this;\n Widget.fn.init.call(that, element, options);\n options = that.options;\n element = that.element;\n var value = element.attr('value') || element.val();\n if (value) {\n value = parseColor(value, true);\n } else {\n value = parseColor(options.value, true);\n }\n that._value = options.value = value;\n var content = that.wrapper = $(that._template(options));\n element.hide().after(content);\n that._inputWrapper = $(that.wrapper[0].firstChild);\n if (element.is('input')) {\n element.appendTo(content);\n var label = element.closest('label');\n var id = element.attr('id');\n if (id) {\n label = label.add('label[for=\"' + id + '\"]');\n }\n label.click(function (ev) {\n that.open();\n ev.preventDefault();\n });\n }\n that._tabIndex = element.attr('tabIndex') || 0;\n that.enable(!element.attr('disabled'));\n var accesskey = element.attr('accesskey');\n if (accesskey) {\n element.attr('accesskey', null);\n content.attr('accesskey', accesskey);\n }\n that.bind('activate', function (ev) {\n if (!ev.isDefaultPrevented()) {\n that.toggle();\n }\n });\n that._updateUI(value);\n },\n destroy: function () {\n this.wrapper.off(NS).find('*').off(NS);\n if (this._popup) {\n this._selector.destroy();\n this._popup.destroy();\n }\n this._selector = this._popup = this.wrapper = null;\n Widget.fn.destroy.call(this);\n },\n enable: function (enable) {\n var that = this, wrapper = that.wrapper, innerWrapper = wrapper.children('.k-picker-wrap'), arrow = innerWrapper.find('.k-select');\n if (arguments.length === 0) {\n enable = true;\n }\n that.element.attr('disabled', !enable);\n wrapper.attr('aria-disabled', !enable);\n arrow.off(NS).on('mousedown' + NS, preventDefault);\n wrapper.addClass('k-state-disabled').removeAttr('tabIndex').add('*', wrapper).off(NS);\n if (enable) {\n wrapper.removeClass('k-state-disabled').attr('tabIndex', that._tabIndex).on('mouseenter' + NS, function () {\n innerWrapper.addClass('k-state-hover');\n }).on('mouseleave' + NS, function () {\n innerWrapper.removeClass('k-state-hover');\n }).on('focus' + NS, function () {\n innerWrapper.addClass('k-state-focused');\n }).on('blur' + NS, function () {\n innerWrapper.removeClass('k-state-focused');\n }).on(KEYDOWN_NS, bind(that._keydown, that)).on(CLICK_NS, '.k-select', bind(that.toggle, that)).on(CLICK_NS, that.options.toolIcon ? '.k-tool-icon' : '.k-selected-color', function () {\n that.trigger('activate');\n });\n } else {\n that.close();\n }\n },\n _template: kendo.template('' + '' + '# if (toolIcon) { #' + '' + '' + '' + '# } else { #' + '' + '# } #' + '' + '' + '' + '' + ''),\n options: {\n name: 'ColorPicker',\n palette: null,\n columns: 10,\n toolIcon: null,\n value: null,\n messages: MESSAGES,\n opacity: false,\n buttons: true,\n preview: true,\n clearButton: false,\n ARIATemplate: 'Current selected color is #=data || \"\"#'\n },\n events: [\n 'activate',\n 'change',\n 'select',\n 'open',\n 'close'\n ],\n open: function () {\n if (!this.element.prop('disabled')) {\n this._getPopup().open();\n }\n },\n close: function () {\n var selOptions = this._selector && this._selector.options || {};\n selOptions._closing = true;\n this._getPopup().close();\n delete selOptions._closing;\n },\n toggle: function () {\n if (!this.element.prop('disabled')) {\n this._getPopup().toggle();\n }\n },\n _noColorIcon: function () {\n return this.wrapper.find('.k-picker-wrap > .k-selected-color > .k-icon.k-i-line');\n },\n color: ColorSelector.fn.color,\n value: ColorSelector.fn.value,\n _select: ColorSelector.fn._select,\n _triggerSelect: ColorSelector.fn._triggerSelect,\n _isInputTypeColor: function () {\n var el = this.element[0];\n return /^input$/i.test(el.tagName) && /^color$/i.test(el.type);\n },\n _updateUI: function (value) {\n var formattedValue = '';\n if (value) {\n if (this._isInputTypeColor() || value.a == 1) {\n formattedValue = value.toCss();\n } else {\n formattedValue = value.toCssRgba();\n }\n this.element.val(formattedValue);\n }\n if (!this._ariaTemplate) {\n this._ariaTemplate = kendo.template(this.options.ARIATemplate);\n }\n this.wrapper.attr('aria-label', this._ariaTemplate(formattedValue));\n this._triggerSelect(value);\n this.wrapper.find('.k-selected-color').css(BACKGROUNDCOLOR, value ? value.toDisplay() : WHITE);\n this._noColorIcon()[formattedValue ? 'hide' : 'show']();\n },\n _keydown: function (ev) {\n var key = ev.keyCode;\n if (this._getPopup().visible()) {\n if (key == KEYS.ESC) {\n this._selector._cancel();\n } else {\n this._selector._keydown(ev);\n }\n preventDefault(ev);\n } else if (key == KEYS.ENTER || key == KEYS.DOWN) {\n this.open();\n preventDefault(ev);\n }\n },\n _getPopup: function () {\n var that = this, popup = that._popup;\n if (!popup) {\n var options = that.options;\n var selectorType;\n if (options.palette) {\n selectorType = ColorPalette;\n } else {\n selectorType = FlatColorPicker;\n }\n options._standalone = false;\n delete options.select;\n delete options.change;\n delete options.cancel;\n var id = kendo.guid();\n var selector = that._selector = new selectorType($('
          ').appendTo(document.body), options);\n that.wrapper.attr('aria-owns', id);\n that._popup = popup = selector.wrapper.kendoPopup({\n anchor: that.wrapper,\n adjustSize: {\n width: 5,\n height: 0\n }\n }).data('kendoPopup');\n selector.element.find('.k-clear-color').kendoButton({\n icon: 'reset-color',\n click: function (e) {\n selector.options._clearedColor = true;\n that.value(null);\n that.element.val(null);\n that._updateUI(null);\n selector._colorAsText.val('');\n selector._hsvHandle.css({\n top: '0px',\n left: '0px'\n });\n selector._selectedColor.css(BACKGROUNDCOLOR, WHITE);\n that.trigger('change', { value: that.value() });\n e.preventDefault();\n }\n });\n selector.bind({\n select: function (ev) {\n that._updateUI(parseColor(ev.value));\n delete selector.options._clearedColor;\n },\n change: function () {\n if (!selector.options._clearedColor) {\n that._select(selector.color());\n }\n that.close();\n },\n cancel: function () {\n if (selector.options._clearedColor && !that.value() && selector.value()) {\n that._select(selector.color(), true);\n }\n that.close();\n }\n });\n popup.bind({\n close: function (ev) {\n if (that.trigger('close')) {\n ev.preventDefault();\n return;\n }\n that.wrapper.children('.k-picker-wrap').removeClass('k-state-focused');\n var color = selector._selectOnHide();\n var selectorColor = selector.value();\n var value = that.value();\n var options = selector.options;\n if (!color) {\n setTimeout(function () {\n if (that.wrapper && !that.wrapper.is('[unselectable=\\'on\\']')) {\n that.wrapper.focus();\n }\n });\n if (!options._closing && options._clearedColor && !value && selectorColor) {\n that._select(selectorColor, true);\n } else {\n that._updateUI(that.color());\n }\n } else if (!(options._clearedColor && !value)) {\n that._select(color);\n }\n },\n open: function (ev) {\n if (that.trigger('open')) {\n ev.preventDefault();\n } else {\n that.wrapper.children('.k-picker-wrap').addClass('k-state-focused');\n }\n },\n activate: function () {\n selector._select(that.color(), true);\n selector.focus();\n that.wrapper.children('.k-picker-wrap').addClass('k-state-focused');\n }\n });\n }\n return popup;\n }\n });\n function preventDefault(ev) {\n ev.preventDefault();\n }\n function bind(callback, obj) {\n return function () {\n return callback.apply(obj, arguments);\n };\n }\n ui.plugin(ColorPalette);\n ui.plugin(FlatColorPicker);\n ui.plugin(ColorPicker);\n }(jQuery, parseInt));\n return window.kendo;\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('kendo.selectable', [\n 'kendo.core',\n 'kendo.userevents'\n ], f);\n}(function () {\n var __meta__ = {\n id: 'selectable',\n name: 'Selectable',\n category: 'framework',\n depends: [\n 'core',\n 'userevents'\n ],\n advanced: true\n };\n (function ($, undefined) {\n var kendo = window.kendo, Widget = kendo.ui.Widget, proxy = $.proxy, abs = Math.abs, ARIASELECTED = 'aria-selected', SELECTED = 'k-state-selected', ACTIVE = 'k-state-selecting', SELECTABLE = 'k-selectable', CHANGE = 'change', NS = '.kendoSelectable', UNSELECT = 'unselect', UNSELECTING = 'k-state-unselecting', INPUTSELECTOR = 'input,a,textarea,.k-multiselect-wrap,select,button,.k-button>span,.k-button>img,span.k-icon.k-i-arrow-60-down,span.k-icon.k-i-arrow-60-up,label.k-checkbox-label.k-no-text,.k-icon.k-i-collapse,.k-icon.k-i-expand,span.k-numeric-wrap,.k-focusable', msie = kendo.support.browser.msie, supportEventDelegation = false;\n (function ($) {\n (function () {\n $('
          ').on('click', '>*', function () {\n supportEventDelegation = true;\n }).find('span').trigger('click').end().off();\n }());\n }($));\n var Selectable = Widget.extend({\n init: function (element, options) {\n var that = this, multiple;\n Widget.fn.init.call(that, element, options);\n that._marquee = $('
          ');\n that._lastActive = null;\n that.element.addClass(SELECTABLE);\n that.relatedTarget = that.options.relatedTarget;\n multiple = that.options.multiple;\n if (this.options.aria && multiple) {\n that.element.attr('aria-multiselectable', true);\n }\n that.userEvents = new kendo.UserEvents(that.element, {\n global: true,\n allowSelection: true,\n filter: (!supportEventDelegation ? '.' + SELECTABLE + ' ' : '') + that.options.filter,\n tap: proxy(that._tap, that),\n touchAction: multiple ? 'none' : 'pan-x pan-y'\n });\n if (multiple) {\n that.userEvents.bind('start', proxy(that._start, that)).bind('move', proxy(that._move, that)).bind('end', proxy(that._end, that)).bind('select', proxy(that._select, that));\n }\n },\n events: [\n CHANGE,\n UNSELECT\n ],\n options: {\n name: 'Selectable',\n filter: '>*',\n inputSelectors: INPUTSELECTOR,\n multiple: false,\n relatedTarget: $.noop\n },\n _isElement: function (target) {\n var elements = this.element;\n var idx, length = elements.length, result = false;\n target = target[0];\n for (idx = 0; idx < length; idx++) {\n if (elements[idx] === target) {\n result = true;\n break;\n }\n }\n return result;\n },\n _tap: function (e) {\n var target = $(e.target), that = this, ctrlKey = e.event.ctrlKey || e.event.metaKey, multiple = that.options.multiple, shiftKey = multiple && e.event.shiftKey, selected, whichCode = e.event.which, buttonCode = e.event.button;\n if (!that._isElement(target.closest('.' + SELECTABLE)) || whichCode && whichCode == 3 || buttonCode && buttonCode == 2) {\n return;\n }\n if (!this._allowSelection(e.event.target)) {\n return;\n }\n selected = target.hasClass(SELECTED);\n if (!multiple || !ctrlKey) {\n that.clear();\n }\n target = target.add(that.relatedTarget(target));\n if (shiftKey) {\n that.selectRange(that._firstSelectee(), target, e);\n } else {\n if (selected && ctrlKey) {\n that._unselect(target);\n that._notify(CHANGE, e);\n } else {\n that.value(target, e);\n }\n that._lastActive = that._downTarget = target;\n }\n },\n _start: function (e) {\n var that = this, target = $(e.target), selected = target.hasClass(SELECTED), currentElement, ctrlKey = e.event.ctrlKey || e.event.metaKey;\n if (!this._allowSelection(e.event.target)) {\n return;\n }\n that._downTarget = target;\n if (!that._isElement(target.closest('.' + SELECTABLE))) {\n that.userEvents.cancel();\n return;\n }\n if (that.options.useAllItems) {\n that._items = that.element.find(that.options.filter);\n } else {\n currentElement = target.closest(that.element);\n that._items = currentElement.find(that.options.filter);\n }\n e.sender.capture();\n that._marquee.appendTo(document.body).css({\n left: e.x.client + 1,\n top: e.y.client + 1,\n width: 0,\n height: 0\n });\n if (!ctrlKey) {\n that.clear();\n }\n target = target.add(that.relatedTarget(target));\n if (selected) {\n that._selectElement(target, true);\n if (ctrlKey) {\n target.addClass(UNSELECTING);\n }\n }\n },\n _move: function (e) {\n var that = this, position = {\n left: e.x.startLocation > e.x.location ? e.x.location : e.x.startLocation,\n top: e.y.startLocation > e.y.location ? e.y.location : e.y.startLocation,\n width: abs(e.x.initialDelta),\n height: abs(e.y.initialDelta)\n };\n that._marquee.css(position);\n that._invalidateSelectables(position, e.event.ctrlKey || e.event.metaKey);\n e.preventDefault();\n },\n _end: function (e) {\n var that = this;\n that._marquee.remove();\n that._unselect(that.element.find(that.options.filter + '.' + UNSELECTING)).removeClass(UNSELECTING);\n var target = that.element.find(that.options.filter + '.' + ACTIVE);\n target = target.add(that.relatedTarget(target));\n that.value(target, e);\n that._lastActive = that._downTarget;\n that._items = null;\n },\n _invalidateSelectables: function (position, ctrlKey) {\n var idx, length, target = this._downTarget[0], items = this._items, related, toSelect;\n for (idx = 0, length = items.length; idx < length; idx++) {\n toSelect = items.eq(idx);\n related = toSelect.add(this.relatedTarget(toSelect));\n if (collision(toSelect, position)) {\n if (toSelect.hasClass(SELECTED)) {\n if (ctrlKey && target !== toSelect[0]) {\n related.removeClass(SELECTED).addClass(UNSELECTING);\n }\n } else if (!toSelect.hasClass(ACTIVE) && !toSelect.hasClass(UNSELECTING)) {\n related.addClass(ACTIVE);\n }\n } else {\n if (toSelect.hasClass(ACTIVE)) {\n related.removeClass(ACTIVE);\n } else if (ctrlKey && toSelect.hasClass(UNSELECTING)) {\n related.removeClass(UNSELECTING).addClass(SELECTED);\n }\n }\n }\n },\n value: function (val, e) {\n var that = this, selectElement = proxy(that._selectElement, that);\n if (val) {\n val.each(function () {\n selectElement(this);\n });\n that._notify(CHANGE, e);\n return;\n }\n return that.element.find(that.options.filter + '.' + SELECTED);\n },\n _firstSelectee: function () {\n var that = this, selected;\n if (that._lastActive !== null) {\n return that._lastActive;\n }\n selected = that.value();\n return selected.length > 0 ? selected[0] : that.element.find(that.options.filter)[0];\n },\n _selectElement: function (element, preventNotify) {\n var toSelect = $(element), isPrevented = !preventNotify && this._notify('select', { element: element });\n toSelect.removeClass(ACTIVE);\n if (!isPrevented) {\n toSelect.addClass(SELECTED);\n if (this.options.aria) {\n toSelect.attr(ARIASELECTED, true);\n }\n }\n },\n _notify: function (name, args) {\n args = args || {};\n return this.trigger(name, args);\n },\n _unselect: function (element) {\n if (this.trigger(UNSELECT, { element: element })) {\n return;\n }\n element.removeClass(SELECTED);\n if (this.options.aria) {\n element.attr(ARIASELECTED, false);\n }\n return element;\n },\n _select: function (e) {\n if (this._allowSelection(e.event.target)) {\n if (!msie || msie && !$(kendo._activeElement()).is(this.options.inputSelectors)) {\n e.preventDefault();\n }\n }\n },\n _allowSelection: function (target) {\n if ($(target).is(this.options.inputSelectors)) {\n this.userEvents.cancel();\n this._downTarget = null;\n return false;\n }\n return true;\n },\n resetTouchEvents: function () {\n this.userEvents.cancel();\n },\n clear: function () {\n var items = this.element.find(this.options.filter + '.' + SELECTED);\n this._unselect(items);\n },\n selectRange: function (start, end, e) {\n var that = this, idx, tmp, items;\n that.clear();\n if (that.element.length > 1) {\n items = that.options.continuousItems();\n }\n if (!items || !items.length) {\n items = that.element.find(that.options.filter);\n }\n start = $.inArray($(start)[0], items);\n end = $.inArray($(end)[0], items);\n if (start > end) {\n tmp = start;\n start = end;\n end = tmp;\n }\n if (!that.options.useAllItems) {\n end += that.element.length - 1;\n }\n for (idx = start; idx <= end; idx++) {\n that._selectElement(items[idx]);\n }\n that._notify(CHANGE, e);\n },\n destroy: function () {\n var that = this;\n Widget.fn.destroy.call(that);\n that.element.off(NS);\n that.userEvents.destroy();\n that._marquee = that._lastActive = that.element = that.userEvents = null;\n }\n });\n Selectable.parseOptions = function (selectable) {\n var asLowerString = typeof selectable === 'string' && selectable.toLowerCase();\n return {\n multiple: asLowerString && asLowerString.indexOf('multiple') > -1,\n cell: asLowerString && asLowerString.indexOf('cell') > -1\n };\n };\n function collision(element, position) {\n if (!element.is(':visible')) {\n return false;\n }\n var elementPosition = kendo.getOffset(element), right = position.left + position.width, bottom = position.top + position.height;\n elementPosition.right = elementPosition.left + kendo._outerWidth(element);\n elementPosition.bottom = elementPosition.top + kendo._outerHeight(element);\n return !(elementPosition.left > right || elementPosition.right < position.left || elementPosition.top > bottom || elementPosition.bottom < position.top);\n }\n kendo.ui.plugin(Selectable);\n }(window.kendo.jQuery));\n return window.kendo;\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('kendo.calendar', [\n 'kendo.core',\n 'kendo.selectable'\n ], f);\n}(function () {\n var __meta__ = {\n id: 'calendar',\n name: 'Calendar',\n category: 'web',\n description: 'The Calendar widget renders a graphical calendar that supports navigation and selection.',\n depends: [\n 'core',\n 'selectable'\n ]\n };\n (function ($, undefined) {\n var kendo = window.kendo, support = kendo.support, ui = kendo.ui, Widget = ui.Widget, keys = kendo.keys, parse = kendo.parseDate, adjustDST = kendo.date.adjustDST, weekInYear = kendo.date.weekInYear, Selectable = kendo.ui.Selectable, extractFormat = kendo._extractFormat, template = kendo.template, getCulture = kendo.getCulture, transitions = kendo.support.transitions, transitionOrigin = transitions ? transitions.css + 'transform-origin' : '', cellTemplate = template('#=data.value#', { useWithBlock: false }), emptyCellTemplate = template('', { useWithBlock: false }), otherMonthCellTemplate = template(' ', { useWithBlock: false }), weekNumberTemplate = template('#= data.weekNumber #', { useWithBlock: false }), browser = kendo.support.browser, isIE8 = browser.msie && browser.version < 9, outerWidth = kendo._outerWidth, ns = '.kendoCalendar', CLICK = 'click' + ns, KEYDOWN_NS = 'keydown' + ns, ID = 'id', MIN = 'min', LEFT = 'left', SLIDE = 'slideIn', MONTH = 'month', CENTURY = 'century', CHANGE = 'change', NAVIGATE = 'navigate', VALUE = 'value', HOVER = 'k-state-hover', DISABLED = 'k-state-disabled', FOCUSED = 'k-state-focused', OTHERMONTH = 'k-other-month', OTHERMONTHCLASS = ' class=\"' + OTHERMONTH + '\"', OUTOFRANGE = 'k-out-of-range', TODAY = 'k-nav-today', CELLSELECTOR = 'td:has(.k-link)', CELLSELECTORVALID = 'td:has(.k-link):not(.' + DISABLED + '):not(.' + OUTOFRANGE + ')', WEEKCOLUMNSELECTOR = 'td:not(:has(.k-link))', SELECTED = 'k-state-selected', BLUR = 'blur' + ns, FOCUS = 'focus', FOCUS_WITH_NS = FOCUS + ns, MOUSEENTER = support.touch ? 'touchstart' : 'mouseenter', MOUSEENTER_WITH_NS = support.touch ? 'touchstart' + ns : 'mouseenter' + ns, MOUSELEAVE = support.touch ? 'touchend' + ns + ' touchmove' + ns : 'mouseleave' + ns, MS_PER_MINUTE = 60000, MS_PER_DAY = 86400000, PREVARROW = '_prevArrow', NEXTARROW = '_nextArrow', ARIA_DISABLED = 'aria-disabled', ARIA_SELECTED = 'aria-selected', ARIA_LABEL = 'aria-label', proxy = $.proxy, extend = $.extend, DATE = Date, views = {\n month: 0,\n year: 1,\n decade: 2,\n century: 3\n }, HEADERSELECTOR = '.k-header, .k-calendar-header', CLASSIC_HEADER_TEMPLATE = '
          ' + '' + '' + '' + '
          ', MODERN_HEADER_TEMPLATE = '
          ' + '' + '' + '' + '' + '' + '#=messages.today#' + '' + '' + '' + '' + '
          ';\n var Calendar = Widget.extend({\n init: function (element, options) {\n var that = this, value, id;\n options = options || {};\n options.componentType = options.componentType || 'classic';\n Widget.fn.init.call(that, element, options);\n element = that.wrapper = that.element;\n options = that.options;\n options.url = kendo.unescape(options.url);\n that.options.disableDates = getDisabledExpr(that.options.disableDates);\n that._templates();\n that._selectable();\n that._header();\n that._viewWrapper();\n if (that.options.hasFooter) {\n that._footer(that.footer);\n }\n id = element.addClass('k-widget k-calendar ' + (options.weekNumber ? ' k-week-number' : '')).on(MOUSEENTER_WITH_NS + ' ' + MOUSELEAVE, CELLSELECTOR, mousetoggle).on(KEYDOWN_NS, 'table.k-content', proxy(that._move, that)).on(CLICK + ' touchend', CELLSELECTOR, function (e) {\n var link = e.currentTarget.firstChild, value = toDateObject(link);\n if (link.href.indexOf('#') != -1) {\n e.preventDefault();\n }\n if (that._view.name == 'month' && that.options.disableDates(value)) {\n return;\n }\n if (that._view.name != 'month' || options.selectable == 'single') {\n that._click($(link));\n }\n }).on('mouseup' + ns, 'table.k-content, .k-footer', function () {\n that._focusView(that.options.focusOnNav !== false);\n }).attr(ID);\n if (id) {\n that._cellID = id + '_cell_selected';\n }\n if (that._isMultipleSelection() && that.options.weekNumber) {\n element.on(CLICK, WEEKCOLUMNSELECTOR, function (e) {\n var first = $(e.currentTarget).closest('tr').find(CELLSELECTORVALID).first(), last = that.selectable._lastActive = $(e.currentTarget).closest('tr').find(CELLSELECTORVALID).last();\n that.selectable.selectRange(first, last, { event: e });\n that._current = that._value = toDateObject(last.find('a'));\n that._class(FOCUSED, that._current);\n });\n }\n normalize(options);\n value = parse(options.value, options.format, options.culture);\n that._selectDates = [];\n that._index = views[options.start];\n that._current = new DATE(+restrictValue(value, options.min, options.max));\n that._addClassProxy = function () {\n that._active = true;\n if (that._cell.hasClass(DISABLED)) {\n var todayString = that._view.toDateString(getToday());\n that._cell = that._cellByDate(todayString);\n }\n that._cell.addClass(FOCUSED);\n };\n that._removeClassProxy = function () {\n that._active = false;\n that._cell.removeClass(FOCUSED);\n };\n that.value(value);\n if (that._isMultipleSelection() && options.selectDates.length > 0) {\n that.selectDates(options.selectDates);\n }\n kendo.notify(that);\n },\n options: {\n name: 'Calendar',\n value: null,\n min: new DATE(1900, 0, 1),\n max: new DATE(2099, 11, 31),\n dates: [],\n disableDates: null,\n url: '',\n culture: '',\n footer: '',\n format: '',\n month: {},\n weekNumber: false,\n selectable: 'single',\n selectDates: [],\n start: MONTH,\n depth: MONTH,\n animation: {\n horizontal: {\n effects: SLIDE,\n reverse: true,\n duration: 500,\n divisor: 2\n },\n vertical: {\n effects: 'zoomIn',\n duration: 400\n }\n },\n messages: {\n weekColumnHeader: '',\n today: 'Today'\n }\n },\n events: [\n CHANGE,\n NAVIGATE\n ],\n componentTypes: {\n 'classic': {\n header: { template: CLASSIC_HEADER_TEMPLATE },\n hasFooter: true,\n linksSelector: '.k-link',\n contentClasses: 'k-content'\n },\n 'modern': {\n header: { template: MODERN_HEADER_TEMPLATE },\n hasFooter: false,\n linksSelector: '.k-button',\n contentClasses: 'k-content k-calendar-content'\n }\n },\n setOptions: function (options) {\n var that = this;\n normalize(options);\n options.disableDates = getDisabledExpr(options.disableDates);\n that._destroySelectable();\n Widget.fn.setOptions.call(that, options);\n that._templates();\n that._selectable();\n that._viewWrapper();\n if (that.options.hasFooter) {\n that._footer(that.footer);\n } else {\n that.element.find('.k-footer').hide();\n }\n that._index = views[that.options.start];\n that.navigate();\n if (options.weekNumber) {\n that.element.addClass('k-week-number');\n }\n },\n destroy: function () {\n var that = this, today = that._today;\n that.element.off(ns);\n that._title.off(ns);\n that[PREVARROW].off(ns);\n that[NEXTARROW].off(ns);\n that._destroySelectable();\n kendo.destroy(that._table);\n if (today) {\n kendo.destroy(today.off(ns));\n }\n Widget.fn.destroy.call(that);\n },\n current: function () {\n return this._current;\n },\n view: function () {\n return this._view;\n },\n focus: function (table) {\n table = table || this._table;\n this._bindTable(table);\n table.trigger('focus');\n },\n min: function (value) {\n return this._option(MIN, value);\n },\n max: function (value) {\n return this._option('max', value);\n },\n navigateToPast: function () {\n this._navigate(PREVARROW, -1);\n },\n navigateToFuture: function () {\n this._navigate(NEXTARROW, 1);\n },\n navigateUp: function () {\n var that = this, index = that._index;\n if (that._title.hasClass(DISABLED)) {\n return;\n }\n that.navigate(that._current, ++index);\n },\n navigateDown: function (value) {\n var that = this, index = that._index, depth = that.options.depth;\n if (!value) {\n return;\n }\n if (index === views[depth]) {\n if (!isEqualDate(that._value, that._current) || !isEqualDate(that._value, value)) {\n that.value(value);\n that.trigger(CHANGE);\n }\n return;\n }\n that.navigate(value, --index);\n },\n navigate: function (value, view) {\n view = isNaN(view) ? views[view] : view;\n var that = this, options = that.options, culture = options.culture, min = options.min, max = options.max, title = that._title, from = that._table, old = that._oldTable, currentValue = that._current, future = value && +value > +currentValue, vertical = view !== undefined && view !== that._index, to, currentView, compare, disabled, viewWrapper = that.element.children('.k-calendar-view');\n if (!value) {\n value = currentValue;\n }\n that._current = value = new DATE(+restrictValue(value, min, max));\n if (view === undefined) {\n view = that._index;\n } else {\n that._index = view;\n }\n that._view = currentView = calendar.views[view];\n compare = currentView.compare;\n disabled = view === views[CENTURY];\n title.toggleClass(DISABLED, disabled).attr(ARIA_DISABLED, disabled);\n disabled = compare(value, min) < 1;\n that[PREVARROW].toggleClass(DISABLED, disabled).attr(ARIA_DISABLED, disabled);\n if (that[PREVARROW].hasClass(DISABLED)) {\n that[PREVARROW].removeClass(HOVER);\n }\n disabled = compare(value, max) > -1;\n that[NEXTARROW].toggleClass(DISABLED, disabled).attr(ARIA_DISABLED, disabled);\n if (that[NEXTARROW].hasClass(DISABLED)) {\n that[NEXTARROW].removeClass(HOVER);\n }\n if (from && old && old.data('animating')) {\n old.kendoStop(true, true);\n from.kendoStop(true, true);\n }\n that._oldTable = from;\n if (!from || that._changeView) {\n title.html(currentView.title(value, min, max, culture));\n that._table = to = $(currentView.content(extend({\n min: min,\n max: max,\n date: value,\n url: options.url,\n dates: options.dates,\n format: options.format,\n otherMonth: true,\n culture: culture,\n disableDates: options.disableDates,\n isWeekColumnVisible: options.weekNumber,\n messages: options.messages,\n contentClasses: that.options.contentClasses\n }, that[currentView.name])));\n addClassToViewContainer(to, currentView.name);\n makeUnselectable(to);\n var replace = from && from.data('start') === to.data('start');\n that._animate({\n from: from,\n to: to,\n vertical: vertical,\n future: future,\n replace: replace\n });\n if (that.options.componentType === 'modern') {\n viewWrapper.removeClass('k-calendar-monthview k-calendar-yearview k-calendar-decadeview k-calendar-centuryview');\n viewWrapper.addClass('k-calendar-' + currentView.name + 'view');\n }\n that.trigger(NAVIGATE);\n that._focus(value);\n }\n if (view === views[options.depth] && that._selectDates.length > 0) {\n that._visualizeSelectedDatesInView();\n }\n if (that.options.selectable === 'single') {\n if (view === views[options.depth] && that._value && !that.options.disableDates(that._value)) {\n that._class('k-state-selected', that._value);\n }\n }\n that._class(FOCUSED, value);\n if (!from && that._cell) {\n that._cell.removeClass(FOCUSED);\n }\n that._changeView = true;\n },\n selectDates: function (dates) {\n var that = this, validSelectedDates, datesUnique;\n if (dates === undefined) {\n return that._selectDates;\n }\n datesUnique = dates.map(function (date) {\n return date.getTime();\n }).filter(function (date, position, array) {\n return array.indexOf(date) === position;\n }).map(function (time) {\n return new Date(time);\n });\n validSelectedDates = $.grep(datesUnique, function (value) {\n if (value) {\n return +that._validateValue(new Date(value.setHours(0, 0, 0, 0))) === +value;\n }\n });\n that._selectDates = validSelectedDates.length > 0 ? validSelectedDates : datesUnique.length === 0 ? datesUnique : that._selectDates;\n that._visualizeSelectedDatesInView();\n },\n value: function (value) {\n var that = this, old = that._view, view = that._view;\n if (value === undefined) {\n return that._value;\n }\n value = that._validateValue(value);\n if (value && that._isMultipleSelection()) {\n var date = new Date(+value);\n date.setHours(0, 0, 0, 0);\n that._selectDates = [date];\n that.selectable._lastActive = null;\n }\n if (old && value === null && that._cell) {\n that._cell.removeClass(SELECTED);\n } else {\n that._changeView = !value || view && view.compare(value, that._current) !== 0;\n that.navigate(value);\n }\n },\n _validateValue: function (value) {\n var that = this, options = that.options, min = options.min, max = options.max;\n if (value === null) {\n that._current = createDate(that._current.getFullYear(), that._current.getMonth(), that._current.getDate());\n }\n value = parse(value, options.format, options.culture);\n if (value !== null) {\n value = new DATE(+value);\n if (!isInRange(value, min, max)) {\n value = null;\n }\n }\n if (value === null || !that.options.disableDates(new Date(+value))) {\n that._value = value;\n } else if (that._value === undefined) {\n that._value = null;\n }\n return that._value;\n },\n _visualizeSelectedDatesInView: function () {\n var that = this;\n var selectedDates = {};\n $.each(that._selectDates, function (index, value) {\n selectedDates[kendo.calendar.views[0].toDateString(value)] = value;\n });\n that.selectable.clear();\n var cells = that._table.find(CELLSELECTOR).filter(function (index, element) {\n return selectedDates[$(element.firstChild).attr(kendo.attr(VALUE))];\n });\n if (cells.length > 0) {\n that.selectable._selectElement(cells, true);\n }\n },\n _isMultipleSelection: function () {\n var that = this;\n return that.options.selectable === 'multiple';\n },\n _selectable: function () {\n var that = this;\n if (!that._isMultipleSelection()) {\n return;\n }\n var selectable = that.options.selectable, selectableOptions = Selectable.parseOptions(selectable);\n if (selectableOptions.multiple) {\n that.element.attr('aria-multiselectable', 'true');\n }\n that.selectable = new Selectable(that.wrapper, {\n aria: true,\n inputSelectors: 'input,textarea,.k-multiselect-wrap,select,button,.k-button>span,.k-button>img,span.k-icon.k-i-arrow-60-down,span.k-icon.k-i-arrow-60-up',\n multiple: selectableOptions.multiple,\n filter: 'table.k-month:eq(0) ' + CELLSELECTORVALID,\n change: proxy(that._onSelect, that),\n relatedTarget: proxy(that._onRelatedTarget, that)\n });\n },\n _onRelatedTarget: function (target) {\n var that = this;\n if (that.selectable.options.multiple && target.is(CELLSELECTORVALID)) {\n that._current = toDateObject(target.find('a'));\n that._class(FOCUSED, toDateObject(target.find('a')));\n }\n },\n _onSelect: function (e) {\n var that = this, eventArgs = e, selectableOptions = Selectable.parseOptions(that.options.selectable);\n if (!selectableOptions.multiple) {\n if ($(eventArgs.event.currentTarget).is('td') && !$(eventArgs.event.currentTarget).hasClass('k-state-selected')) {\n $(eventArgs.event.currentTarget).addClass('k-state-selected');\n } else {\n that._click($(eventArgs.event.currentTarget).find('a'));\n }\n return;\n }\n if (eventArgs.event.ctrlKey || eventArgs.event.metaKey) {\n if ($(eventArgs.event.currentTarget).is(CELLSELECTORVALID)) {\n that._toggleSelection($(eventArgs.event.currentTarget));\n } else {\n that._cellsBySelector(CELLSELECTORVALID).each(function (index, element) {\n var value = toDateObject($(element).find('a'));\n that._deselect(value);\n });\n that._addSelectedCellsToArray();\n }\n } else if (eventArgs.event.shiftKey) {\n that._rangeSelection(that._cell);\n } else if ($(eventArgs.event.currentTarget).is(CELLSELECTOR)) {\n that.value(toDateObject($(eventArgs.event.currentTarget).find('a')));\n } else {\n that._selectDates = [];\n that._addSelectedCellsToArray();\n }\n that.trigger(CHANGE);\n },\n _destroySelectable: function () {\n var that = this;\n if (that.selectable) {\n that.selectable.destroy();\n that.selectable = null;\n }\n },\n _toggleSelection: function (currentCell) {\n var that = this, date = toDateObject(currentCell.find('a'));\n if (currentCell.hasClass('k-state-selected')) {\n that._selectDates.push(date);\n } else {\n that._deselect(date);\n }\n },\n _rangeSelection: function (toDateCell, startDate) {\n var that = this, fromDate = startDate || toDateObject(that.selectable.value().first().find('a')), toDate = toDateObject(toDateCell.find('a')), daysDifference;\n if (that.selectable._lastActive || that._value) {\n fromDate = that.selectable._lastActive ? toDateObject(that.selectable._lastActive.find('a')) : new Date(+that._value);\n } else {\n that.selectable._lastActive = startDate ? that._cellByDate(that._view.toDateString(startDate), CELLSELECTORVALID) : that.selectable.value().first();\n }\n that._selectDates = [];\n daysDifference = daysBetweenTwoDates(fromDate, toDate);\n addDaysToArray(that._selectDates, daysDifference, fromDate, that.options.disableDates);\n that._visualizeSelectedDatesInView();\n },\n _cellsBySelector: function (selector) {\n var that = this;\n return that._table.find(selector);\n },\n _addSelectedCellsToArray: function () {\n var that = this;\n that.selectable.value().each(function (index, item) {\n var date = toDateObject($(item.firstChild));\n if (!that.options.disableDates(date)) {\n that._selectDates.push(date);\n }\n });\n },\n _deselect: function (date) {\n var that = this;\n var currentDateIndex = that._selectDates.map(Number).indexOf(+date);\n if (currentDateIndex != -1) {\n that._selectDates.splice(currentDateIndex, 1);\n }\n },\n _dateInView: function (date) {\n var that = this, firstDateInView = toDateObject(that._cellsBySelector(CELLSELECTORVALID + ':first').find('a')), lastDateInView = toDateObject(that._cellsBySelector(CELLSELECTORVALID + ':last').find('a'));\n return +date <= +lastDateInView && +date >= +firstDateInView;\n },\n _isNavigatable: function (currentValue, cellIndex) {\n var that = this;\n var isDisabled = that.options.disableDates;\n var cell;\n var index;\n if (that._view.name == 'month') {\n return !isDisabled(currentValue);\n } else {\n index = that.wrapper.find('.' + FOCUSED).index();\n cell = that.wrapper.find('.k-content td:eq(' + (index + cellIndex) + ')');\n return cell.is(CELLSELECTORVALID) || !isDisabled(currentValue);\n }\n },\n _move: function (e) {\n var that = this, options = that.options, key = e.keyCode, view = that._view, index = that._index, min = that.options.min, max = that.options.max, currentValue = new DATE(+that._current), isRtl = kendo.support.isRtl(that.wrapper), isDisabled = that.options.disableDates, value, prevent, method, temp;\n if (e.target === that._table[0]) {\n that._active = true;\n }\n if (key == keys.RIGHT && !isRtl || key == keys.LEFT && isRtl) {\n value = 1;\n prevent = true;\n } else if (key == keys.LEFT && !isRtl || key == keys.RIGHT && isRtl) {\n value = -1;\n prevent = true;\n } else if (key == keys.UP) {\n value = index === 0 ? -7 : -4;\n prevent = true;\n } else if (key == keys.DOWN) {\n value = index === 0 ? 7 : 4;\n prevent = true;\n } else if (key == keys.SPACEBAR) {\n value = 0;\n prevent = true;\n } else if (key == keys.HOME || key == keys.END) {\n method = key == keys.HOME ? 'first' : 'last';\n temp = view[method](currentValue);\n currentValue = new DATE(temp.getFullYear(), temp.getMonth(), temp.getDate(), currentValue.getHours(), currentValue.getMinutes(), currentValue.getSeconds(), currentValue.getMilliseconds());\n currentValue.setFullYear(temp.getFullYear());\n prevent = true;\n }\n if (e.ctrlKey || e.metaKey) {\n if (key == keys.RIGHT && !isRtl || key == keys.LEFT && isRtl) {\n that.navigateToFuture();\n prevent = true;\n } else if (key == keys.LEFT && !isRtl || key == keys.RIGHT && isRtl) {\n that.navigateToPast();\n prevent = true;\n } else if (key == keys.UP) {\n that.navigateUp();\n prevent = true;\n } else if (key == keys.DOWN) {\n that._click($(that._cell[0].firstChild));\n prevent = true;\n } else if ((key == keys.ENTER || key == keys.SPACEBAR) && that._isMultipleSelection()) {\n that._keyboardToggleSelection(e);\n var focusedDate = toDateObject($(that._cell[0]).find('a'));\n that._class(FOCUSED, focusedDate);\n }\n } else if (e.shiftKey) {\n if (value !== undefined || method) {\n if (!method) {\n view.setDate(currentValue, value);\n }\n if (!isInRange(currentValue, min, max)) {\n currentValue = restrictValue(currentValue, options.min, options.max);\n }\n if (isDisabled(currentValue)) {\n currentValue = that._nextNavigatable(currentValue, value);\n }\n min = createDate(min.getFullYear(), min.getMonth(), min.getDate());\n if (that._isMultipleSelection()) {\n that._keyboardRangeSelection(e, currentValue);\n } else {\n that._focus(currentValue);\n }\n }\n } else {\n if (key == keys.ENTER || key == keys.SPACEBAR) {\n if (view.name == 'month' && that._isMultipleSelection()) {\n that.value(toDateObject($(that._cell.find('a'))));\n that.selectable._lastActive = $(that._cell[0]);\n that.trigger(CHANGE);\n } else {\n that._click($(that._cell[0].firstChild));\n }\n prevent = true;\n } else if (key == keys.PAGEUP) {\n prevent = true;\n that.navigateToPast();\n } else if (key == keys.PAGEDOWN) {\n prevent = true;\n that.navigateToFuture();\n }\n if (value || method) {\n if (!method) {\n view.setDate(currentValue, value);\n }\n min = createDate(min.getFullYear(), min.getMonth(), min.getDate());\n if (!isInRange(currentValue, min, max)) {\n currentValue = restrictValue(currentValue, options.min, options.max);\n }\n if (!that._isNavigatable(currentValue, value)) {\n currentValue = that._nextNavigatable(currentValue, value);\n }\n if (that._isMultipleSelection()) {\n if (!that._dateInView(currentValue)) {\n that.navigate(currentValue);\n } else {\n that._current = currentValue;\n that._class(FOCUSED, currentValue);\n }\n } else {\n that._focus(currentValue);\n }\n }\n }\n if (prevent) {\n e.preventDefault();\n }\n return that._current;\n },\n _keyboardRangeSelection: function (event, currentValue) {\n var that = this, fromDate, daysDifference;\n if (!that._dateInView(currentValue)) {\n that._selectDates = [];\n fromDate = that.selectable._lastActive ? toDateObject(that.selectable._lastActive.find('a')) : currentValue;\n daysDifference = daysBetweenTwoDates(fromDate, new Date(+currentValue));\n addDaysToArray(that._selectDates, daysDifference, fromDate, that.options.disableDates);\n that.navigate(currentValue);\n that._current = currentValue;\n that.selectable._lastActive = that.selectable._lastActive || that._cellByDate(that._view.toDateString(currentValue), CELLSELECTORVALID);\n that.trigger(CHANGE);\n return;\n }\n that.selectable.options.filter = that.wrapper.find('table').length > 1 && +currentValue > +that._current ? 'table.k-month:eq(1) ' + CELLSELECTORVALID : 'table.k-month:eq(0) ' + CELLSELECTORVALID;\n that._class(FOCUSED, currentValue);\n that._current = currentValue;\n that._rangeSelection(that._cellByDate(that._view.toDateString(currentValue), CELLSELECTORVALID), currentValue);\n that.trigger(CHANGE);\n that.selectable.options.filter = 'table.k-month:eq(0) ' + CELLSELECTORVALID;\n },\n _keyboardToggleSelection: function (event) {\n var that = this;\n event.currentTarget = that._cell[0];\n that.selectable._lastActive = $(that._cell[0]);\n if ($(that._cell[0]).hasClass(SELECTED)) {\n that.selectable._unselect($(that._cell[0]));\n that.selectable.trigger(CHANGE, { event: event });\n } else {\n that.selectable.value($(that._cell[0]), { event: event });\n }\n },\n _nextNavigatable: function (currentValue, value) {\n var that = this, disabled = true, view = that._view, min = that.options.min, max = that.options.max, isDisabled = that.options.disableDates, navigatableDate = new Date(currentValue.getTime());\n view.setDate(navigatableDate, -value);\n while (disabled) {\n view.setDate(currentValue, value);\n if (!isInRange(currentValue, min, max)) {\n currentValue = navigatableDate;\n break;\n }\n disabled = isDisabled(currentValue);\n }\n return currentValue;\n },\n _animate: function (options) {\n var that = this;\n var from = options.from;\n var to = options.to;\n var active = that._active;\n var viewWrapper = that.element.children('.k-calendar-view');\n if (!from) {\n viewWrapper.append(to);\n that._bindTable(to);\n } else if (from.parent().data('animating')) {\n from.off(ns);\n from.parent().kendoStop(true, true).remove();\n from.remove();\n viewWrapper.append(to);\n that._focusView(active);\n } else if (!from.is(':visible') || that.options.animation === false || options.replace) {\n to.insertAfter(from);\n from.off(ns).remove();\n that._focusView(active);\n } else {\n that[options.vertical ? '_vertical' : '_horizontal'](from, to, options.future);\n }\n },\n _horizontal: function (from, to, future) {\n var that = this, active = that._active, horizontal = that.options.animation.horizontal, effects = horizontal.effects, viewWidth = outerWidth(from);\n if (effects && effects.indexOf(SLIDE) != -1) {\n from.add(to).css({ width: viewWidth });\n from.wrap('
          ');\n that._focusView(active, from);\n from.parent().css({\n position: 'relative',\n width: viewWidth * 2,\n 'float': LEFT,\n 'margin-left': future ? 0 : -viewWidth\n });\n to[future ? 'insertAfter' : 'insertBefore'](from);\n extend(horizontal, {\n effects: SLIDE + ':' + (future ? 'right' : LEFT),\n complete: function () {\n from.off(ns).remove();\n that._oldTable = null;\n to.unwrap();\n that._focusView(active);\n }\n });\n from.parent().kendoStop(true, true).kendoAnimate(horizontal);\n }\n },\n _vertical: function (from, to) {\n var that = this, vertical = that.options.animation.vertical, effects = vertical.effects, active = that._active, cell, position;\n if (effects && effects.indexOf('zoom') != -1) {\n to.insertBefore(from);\n from.css({\n position: 'absolute',\n width: to.width()\n });\n if (transitionOrigin) {\n cell = that._cellByDate(that._view.toDateString(that._current));\n position = cell.position();\n position = position.left + parseInt(cell.width() / 2, 10) + 'px' + ' ' + (position.top + parseInt(cell.height() / 2, 10) + 'px');\n to.css(transitionOrigin, position);\n }\n from.kendoStop(true, true).kendoAnimate({\n effects: 'fadeOut',\n duration: 600,\n complete: function () {\n from.off(ns).remove();\n that._oldTable = null;\n that._focusView(active);\n }\n });\n to.kendoStop(true, true).kendoAnimate(vertical);\n }\n },\n _cellByDate: function (value, selector) {\n return this._table.find(selector ? selector : 'td:not(.' + OTHERMONTH + ')').filter(function () {\n return $(this.firstChild).attr(kendo.attr(VALUE)) === value;\n });\n },\n _class: function (className, date) {\n var that = this, id = that._cellID, cell = that._cell, value = that._view.toDateString(date), disabledDate;\n if (cell && cell.length) {\n cell[0].removeAttribute(ARIA_SELECTED);\n cell[0].removeAttribute(ARIA_LABEL);\n cell[0].removeAttribute(ID);\n }\n if (date && that._view.name == 'month') {\n disabledDate = that.options.disableDates(date);\n }\n that._cellsBySelector(that._isMultipleSelection() ? CELLSELECTOR : 'td:not(.' + OTHERMONTH + ')').removeClass(className);\n cell = that._cellByDate(value, that.options.selectable == 'multiple' ? CELLSELECTOR : 'td:not(.' + OTHERMONTH + ')').attr(ARIA_SELECTED, true);\n if (className === FOCUSED && !that._active && that.options.focusOnNav !== false || disabledDate) {\n className = '';\n }\n cell.addClass(className);\n if (cell[0]) {\n that._cell = cell;\n }\n if (id) {\n cell.attr(ID, id);\n that._table[0].removeAttribute('aria-activedescendant');\n that._table.attr('aria-activedescendant', id);\n }\n },\n _bindTable: function (table) {\n table.on(FOCUS_WITH_NS, this._addClassProxy).on(BLUR, this._removeClassProxy);\n },\n _click: function (link) {\n var that = this, options = that.options, currentValue = new Date(+that._current), value = toDateObject(link);\n adjustDST(value, 0);\n if (that._view.name == 'month' && that.options.disableDates(value)) {\n value = that._value;\n }\n that._view.setDate(currentValue, value);\n that.navigateDown(restrictValue(currentValue, options.min, options.max));\n },\n _focus: function (value) {\n var that = this, view = that._view;\n if (view.compare(value, that._current) !== 0) {\n that.navigate(value);\n } else {\n that._current = value;\n that._class(FOCUSED, value);\n }\n },\n _focusView: function (active, table) {\n if (active) {\n this.focus(table);\n }\n },\n _viewWrapper: function () {\n var that = this;\n var element = that.element;\n var viewWrapper = element.children('.k-calendar-view');\n if (!viewWrapper[0]) {\n viewWrapper = $('
          ').insertAfter(element.find(HEADERSELECTOR));\n }\n },\n _footer: function (template) {\n var that = this, today = getToday(), element = that.element, footer = element.find('.k-footer');\n if (!template) {\n that._toggle(false);\n footer.hide();\n return;\n }\n if (!footer[0]) {\n footer = $('
          ').appendTo(element);\n }\n that._today = footer.show().find('.k-link').html(template(today)).attr('title', kendo.toString(today, 'D', that.options.culture));\n that._toggle();\n },\n _header: function () {\n var that = this, element = that.element, linksSelector = that.options.linksSelector;\n if (!element.find(HEADERSELECTOR)[0]) {\n element.html(kendo.template(that.options.header.template)(that.options));\n }\n element.find(linksSelector).on(MOUSEENTER_WITH_NS + ' ' + MOUSELEAVE + ' ' + FOCUS_WITH_NS + ' ' + BLUR, mousetoggle).on(CLICK + ' touchend' + ns, function () {\n return false;\n });\n that._title = element.find('[' + kendo.attr('action') + '=\"nav-up\"]').on(CLICK + ' touchend' + ns, function () {\n that._active = that.options.focusOnNav !== false;\n that.navigateUp();\n });\n that[PREVARROW] = element.find('[' + kendo.attr('action') + '=\"prev\"]').on(CLICK + ' touchend' + ns, function () {\n that._active = that.options.focusOnNav !== false;\n that.navigateToPast();\n });\n that[NEXTARROW] = element.find('[' + kendo.attr('action') + '=\"next\"]').on(CLICK + ' touchend' + ns, function () {\n that._active = that.options.focusOnNav !== false;\n that.navigateToFuture();\n });\n element.find('[' + kendo.attr('action') + '=\"today\"]').on(CLICK + ' touchend' + ns, proxy(that._todayClick, that));\n },\n _navigate: function (arrow, modifier) {\n var that = this, index = that._index + 1, currentValue = new DATE(+that._current);\n if (that._isMultipleSelection()) {\n var firstDayCurrentMonth = that._table.find('td:not(.k-other-month):not(.k-out-of-range)').has('.k-link').first();\n currentValue = toDateObject(firstDayCurrentMonth.find('a'));\n that._current = new Date(+currentValue);\n }\n arrow = that[arrow];\n if (!arrow.hasClass(DISABLED)) {\n if (index > 3) {\n currentValue.setFullYear(currentValue.getFullYear() + 100 * modifier);\n } else {\n calendar.views[index].setDate(currentValue, modifier);\n }\n that.navigate(currentValue);\n }\n },\n _option: function (option, value) {\n var that = this, options = that.options, currentValue = that._value || that._current, isBigger;\n if (value === undefined) {\n return options[option];\n }\n value = parse(value, options.format, options.culture);\n if (!value) {\n return;\n }\n options[option] = new DATE(+value);\n if (option === MIN) {\n isBigger = value > currentValue;\n } else {\n isBigger = currentValue > value;\n }\n if (isBigger || isEqualMonth(currentValue, value)) {\n if (isBigger) {\n that._value = null;\n }\n that._changeView = true;\n }\n if (!that._changeView) {\n that._changeView = !!(options.month.content || options.month.empty);\n }\n that.navigate(that._value);\n that._toggle();\n },\n _toggle: function (toggle) {\n var that = this, options = that.options, isTodayDisabled = that.options.disableDates(getToday()), link = that._today;\n if (toggle === undefined) {\n toggle = isInRange(getToday(), options.min, options.max);\n }\n if (link) {\n link.off(CLICK);\n if (toggle && !isTodayDisabled) {\n link.addClass(TODAY).removeClass(DISABLED).on(CLICK, proxy(that._todayClick, that));\n } else {\n link.removeClass(TODAY).addClass(DISABLED).on(CLICK, prevent);\n }\n }\n },\n _todayClick: function (e) {\n var that = this, depth = views[that.options.depth], disabled = that.options.disableDates, today = getToday();\n e.preventDefault();\n if (disabled(today)) {\n return;\n }\n if (that._view.compare(that._current, today) === 0 && that._index == depth) {\n that._changeView = false;\n }\n if (that._isMultipleSelection()) {\n that._selectDates = [today];\n that.selectable._lastActive = null;\n }\n that._value = today;\n that.navigate(today, depth);\n that.trigger(CHANGE);\n },\n _templates: function () {\n var that = this, options = that.options, footer = options.footer, month = options.month, content = month.content, weekNumber = month.weekNumber, empty = month.empty, footerTemplate = '#= kendo.toString(data,\"D\",\"' + options.culture + '\") #';\n that.month = {\n content: template('' + (content || '#=data.value#') + '', { useWithBlock: !!content }),\n empty: template('' + (empty || ' ') + '', { useWithBlock: !!empty }),\n weekNumber: template('' + (weekNumber || '#= data.weekNumber #') + '', { useWithBlock: !!weekNumber })\n };\n if (footer && footer !== true) {\n footerTemplate = footer;\n }\n that.footer = footer !== false ? template(footerTemplate, { useWithBlock: false }) : null;\n }\n });\n ui.plugin(Calendar);\n var calendar = {\n firstDayOfMonth: function (date) {\n return createDate(date.getFullYear(), date.getMonth(), 1);\n },\n firstVisibleDay: function (date, calendarInfo) {\n calendarInfo = calendarInfo || kendo.culture().calendar;\n var firstDay = calendarInfo.firstDay, firstVisibleDay = new DATE(date.getFullYear(), date.getMonth(), 1, date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds());\n firstVisibleDay.setFullYear(date.getFullYear());\n while (firstVisibleDay.getDay() != firstDay) {\n calendar.setTime(firstVisibleDay, -1 * MS_PER_DAY);\n }\n return firstVisibleDay;\n },\n setTime: function (date, time) {\n var tzOffsetBefore = date.getTimezoneOffset(), resultDATE = new DATE(date.getTime() + time), tzOffsetDiff = resultDATE.getTimezoneOffset() - tzOffsetBefore;\n date.setTime(resultDATE.getTime() + tzOffsetDiff * MS_PER_MINUTE);\n },\n views: [\n {\n name: MONTH,\n title: function (date, min, max, culture) {\n return getCalendarInfo(culture).months.names[date.getMonth()] + ' ' + date.getFullYear();\n },\n content: function (options) {\n var that = this, idx = 0, min = options.min, max = options.max, date = options.date, dates = options.dates, format = options.format, culture = options.culture, navigateUrl = options.url, showHeader = options.showHeader, otherMonth = options.otherMonth, isWeekColumnVisible = options.isWeekColumnVisible, hasUrl = navigateUrl && dates[0], currentCalendar = getCalendarInfo(culture), firstDayIdx = currentCalendar.firstDay, days = currentCalendar.days, names = shiftArray(days.names, firstDayIdx), shortNames = shiftArray(days.namesShort, firstDayIdx), start = calendar.firstVisibleDay(date, currentCalendar), firstDayOfMonth = that.first(date), lastDayOfMonth = that.last(date), toDateString = that.toDateString, today = getToday(), contentClasses = options.contentClasses, html = '';\n if (showHeader) {\n html += '';\n } else {\n html += '';\n }\n if (isWeekColumnVisible) {\n html += '';\n }\n for (; idx < 7; idx++) {\n html += '';\n }\n adjustDST(today, 0);\n today = +today;\n return view({\n cells: 42,\n perRow: 7,\n html: html += '',\n start: start,\n isWeekColumnVisible: isWeekColumnVisible,\n weekNumber: options.weekNumber,\n min: createDate(min.getFullYear(), min.getMonth(), min.getDate()),\n max: createDate(max.getFullYear(), max.getMonth(), max.getDate()),\n otherMonth: otherMonth,\n content: options.content,\n lastDayOfMonth: lastDayOfMonth,\n empty: options.empty,\n setter: that.setDate,\n disableDates: options.disableDates,\n build: function (date, idx, disableDates) {\n var cssClass = [], day = date.getDay(), linkClass = '', url = '#';\n if (date < firstDayOfMonth || date > lastDayOfMonth) {\n cssClass.push(OTHERMONTH);\n }\n if (disableDates(date)) {\n cssClass.push(DISABLED);\n }\n if (+date === today) {\n cssClass.push('k-today');\n }\n if (day === 0 || day === 6) {\n cssClass.push('k-weekend');\n }\n if (hasUrl && inArray(+date, dates)) {\n url = navigateUrl.replace('{0}', kendo.toString(date, format, culture));\n linkClass = ' k-action-link';\n }\n return {\n date: date,\n dates: dates,\n ns: kendo.ns,\n title: kendo.toString(date, 'D', culture),\n value: date.getDate(),\n dateString: toDateString(date),\n cssClass: cssClass[0] ? ' class=\"' + cssClass.join(' ') + '\"' : '',\n linkClass: linkClass,\n url: url\n };\n },\n weekNumberBuild: function (date) {\n return {\n weekNumber: weekInYear(date, kendo.culture().calendar.firstDay),\n currentDate: date\n };\n }\n });\n },\n first: function (date) {\n return calendar.firstDayOfMonth(date);\n },\n last: function (date) {\n var last = createDate(date.getFullYear(), date.getMonth() + 1, 0), first = calendar.firstDayOfMonth(date), timeOffset = Math.abs(last.getTimezoneOffset() - first.getTimezoneOffset());\n if (timeOffset) {\n last.setHours(first.getHours() + timeOffset / 60);\n }\n return last;\n },\n compare: function (date1, date2) {\n var result, month1 = date1.getMonth(), year1 = date1.getFullYear(), month2 = date2.getMonth(), year2 = date2.getFullYear();\n if (year1 > year2) {\n result = 1;\n } else if (year1 < year2) {\n result = -1;\n } else {\n result = month1 == month2 ? 0 : month1 > month2 ? 1 : -1;\n }\n return result;\n },\n setDate: function (date, value) {\n var hours = date.getHours();\n if (value instanceof DATE) {\n date.setFullYear(value.getFullYear(), value.getMonth(), value.getDate());\n } else {\n calendar.setTime(date, value * MS_PER_DAY);\n }\n adjustDST(date, hours);\n },\n toDateString: function (date) {\n return date.getFullYear() + '/' + date.getMonth() + '/' + date.getDate();\n }\n },\n {\n name: 'year',\n title: function (date) {\n return date.getFullYear();\n },\n content: function (options) {\n var namesAbbr = getCalendarInfo(options.culture).months.namesAbbr, toDateString = this.toDateString, min = options.min, max = options.max, html = '';\n if (options.showHeader) {\n html += '
          ' + this.title(date, min, max, culture) + '
          ' + options.messages.weekColumnHeader + '' + shortNames[idx] + '
          ';\n }\n return view({\n min: createDate(min.getFullYear(), min.getMonth(), 1),\n max: createDate(max.getFullYear(), max.getMonth(), 1),\n start: createDate(options.date.getFullYear(), 0, 1),\n html: html,\n setter: this.setDate,\n build: function (date) {\n return {\n value: namesAbbr[date.getMonth()],\n ns: kendo.ns,\n dateString: toDateString(date),\n cssClass: ''\n };\n }\n });\n },\n first: function (date) {\n return createDate(date.getFullYear(), 0, date.getDate());\n },\n last: function (date) {\n return createDate(date.getFullYear(), 11, date.getDate());\n },\n compare: function (date1, date2) {\n return compare(date1, date2);\n },\n setDate: function (date, value) {\n var month, hours = date.getHours();\n if (value instanceof DATE) {\n month = value.getMonth();\n date.setFullYear(value.getFullYear(), month, date.getDate());\n if (month !== date.getMonth()) {\n date.setDate(0);\n }\n } else {\n month = date.getMonth() + value;\n date.setMonth(month);\n if (month > 11) {\n month -= 12;\n }\n if (month > 0 && date.getMonth() != month) {\n date.setDate(0);\n }\n }\n adjustDST(date, hours);\n },\n toDateString: function (date) {\n return date.getFullYear() + '/' + date.getMonth() + '/1';\n }\n },\n {\n name: 'decade',\n title: function (date, min, max) {\n return title(date, min, max, 10);\n },\n content: function (options) {\n var year = options.date.getFullYear(), toDateString = this.toDateString, html = '';\n if (options.showHeader) {\n html += '
          ';\n html += this.title(options.date);\n html += '
          ';\n }\n return view({\n start: createDate(year - year % 10 - 1, 0, 1),\n min: createDate(options.min.getFullYear(), 0, 1),\n max: createDate(options.max.getFullYear(), 0, 1),\n otherMonth: options.otherMonth,\n html: html,\n setter: this.setDate,\n build: function (date, idx) {\n return {\n value: date.getFullYear(),\n ns: kendo.ns,\n dateString: toDateString(date),\n cssClass: idx === 0 || idx == 11 ? OTHERMONTHCLASS : ''\n };\n }\n });\n },\n first: function (date) {\n var year = date.getFullYear();\n return createDate(year - year % 10, date.getMonth(), date.getDate());\n },\n last: function (date) {\n var year = date.getFullYear();\n return createDate(year - year % 10 + 9, date.getMonth(), date.getDate());\n },\n compare: function (date1, date2) {\n return compare(date1, date2, 10);\n },\n setDate: function (date, value) {\n setDate(date, value, 1);\n },\n toDateString: function (date) {\n return date.getFullYear() + '/0/1';\n }\n },\n {\n name: CENTURY,\n title: function (date, min, max) {\n return title(date, min, max, 100);\n },\n content: function (options) {\n var year = options.date.getFullYear(), min = options.min.getFullYear(), max = options.max.getFullYear(), toDateString = this.toDateString, minYear = min, maxYear = max, html = '';\n minYear = minYear - minYear % 10;\n maxYear = maxYear - maxYear % 10;\n if (maxYear - minYear < 10) {\n maxYear = minYear + 9;\n }\n if (options.showHeader) {\n html += '
          ';\n html += this.title(options.date, options.min, options.max);\n html += '
          ';\n }\n return view({\n start: createDate(year - year % 100 - 10, 0, 1),\n min: createDate(minYear, 0, 1),\n max: createDate(maxYear, 0, 1),\n otherMonth: options.otherMonth,\n html: html,\n setter: this.setDate,\n build: function (date, idx) {\n var start = date.getFullYear(), end = start + 9;\n if (start < min) {\n start = min;\n }\n if (end > max) {\n end = max;\n }\n return {\n ns: kendo.ns,\n value: start + ' - ' + end,\n dateString: toDateString(date),\n cssClass: idx === 0 || idx == 11 ? OTHERMONTHCLASS : ''\n };\n }\n });\n },\n first: function (date) {\n var year = date.getFullYear();\n return createDate(year - year % 100, date.getMonth(), date.getDate());\n },\n last: function (date) {\n var year = date.getFullYear();\n return createDate(year - year % 100 + 99, date.getMonth(), date.getDate());\n },\n compare: function (date1, date2) {\n return compare(date1, date2, 100);\n },\n setDate: function (date, value) {\n setDate(date, value, 10);\n },\n toDateString: function (date) {\n var year = date.getFullYear();\n return year - year % 10 + '/0/1';\n }\n }\n ]\n };\n function title(date, min, max, modular) {\n var start = date.getFullYear(), minYear = min.getFullYear(), maxYear = max.getFullYear(), end;\n start = start - start % modular;\n end = start + (modular - 1);\n if (start < minYear) {\n start = minYear;\n }\n if (end > maxYear) {\n end = maxYear;\n }\n return start + '-' + end;\n }\n function view(options) {\n var idx = 0, data, min = options.min, max = options.max, start = options.start, setter = options.setter, build = options.build, weekNumberBuild = options.weekNumberBuild, length = options.cells || 12, isWeekColumnVisible = options.isWeekColumnVisible, cellsPerRow = options.perRow || 4, otherMonth = options.otherMonth, lastDayOfMonth = options.lastDayOfMonth, weekNumber = options.weekNumber || weekNumberTemplate, content = options.content || cellTemplate, empty = options.empty || emptyCellTemplate, otherMonthTemplate = options.otherMonthCellTemplate || otherMonthCellTemplate, html = options.html || '
          ';\n html += this.title(options.date, options.min, options.max);\n html += '
          ';\n if (isWeekColumnVisible) {\n html += weekNumber(weekNumberBuild(start));\n }\n for (; idx < length; idx++) {\n if (idx > 0 && idx % cellsPerRow === 0) {\n html += '';\n if (isWeekColumnVisible) {\n html += otherMonth || +start <= +lastDayOfMonth ? weekNumber(weekNumberBuild(start)) : weekNumber({ weekNumber: ' ' });\n }\n }\n start = createDate(start.getFullYear(), start.getMonth(), start.getDate());\n adjustDST(start, 0);\n data = build(start, idx, options.disableDates);\n html += data.cssClass.indexOf(OTHERMONTH) !== -1 && !otherMonth ? otherMonthTemplate(data) : isInRange(start, min, max) ? content(data) : empty(data);\n setter(start, 1);\n }\n return html + '
          ';\n }\n function compare(date1, date2, modifier) {\n var year1 = date1.getFullYear(), start = date2.getFullYear(), end = start, result = 0;\n if (modifier) {\n start = start - start % modifier;\n end = start - start % modifier + modifier - 1;\n }\n if (year1 > end) {\n result = 1;\n } else if (year1 < start) {\n result = -1;\n }\n return result;\n }\n function getToday() {\n var today = new DATE();\n return new DATE(today.getFullYear(), today.getMonth(), today.getDate());\n }\n function restrictValue(value, min, max) {\n var today = getToday();\n if (value) {\n today = new DATE(+value);\n }\n if (min > today) {\n today = new DATE(+min);\n } else if (max < today) {\n today = new DATE(+max);\n }\n return today;\n }\n function isInRange(date, min, max) {\n return +date >= +min && +date <= +max;\n }\n function shiftArray(array, idx) {\n return array.slice(idx).concat(array.slice(0, idx));\n }\n function setDate(date, value, multiplier) {\n value = value instanceof DATE ? value.getFullYear() : date.getFullYear() + multiplier * value;\n date.setFullYear(value);\n }\n function daysBetweenTwoDates(startDate, endDate) {\n if (+endDate < +startDate) {\n var temp = +startDate;\n calendar.views[0].setDate(startDate, endDate);\n calendar.views[0].setDate(endDate, new Date(temp));\n }\n var fromDateUTC = Date.UTC(startDate.getFullYear(), startDate.getMonth(), startDate.getDate());\n var endDateUTC = Date.UTC(endDate.getFullYear(), endDate.getMonth(), endDate.getDate());\n return Math.ceil((+endDateUTC - +fromDateUTC) / kendo.date.MS_PER_DAY);\n }\n function addDaysToArray(array, numberOfDays, fromDate, disableDates) {\n for (var i = 0; i <= numberOfDays; i++) {\n var nextDay = new Date(fromDate.getTime());\n nextDay = new Date(nextDay.setDate(nextDay.getDate() + i));\n if (!disableDates(nextDay)) {\n array.push(nextDay);\n }\n }\n }\n function mousetoggle(e) {\n var disabled = $(this).hasClass('k-state-disabled');\n if (!disabled) {\n $(this).toggleClass(HOVER, MOUSEENTER.indexOf(e.type) > -1 || e.type == FOCUS);\n }\n }\n function prevent(e) {\n e.preventDefault();\n }\n function createDate(year, month, date) {\n var dateObject = new DATE(year, month, date);\n dateObject.setFullYear(year, month, date);\n return dateObject;\n }\n function getCalendarInfo(culture) {\n return getCulture(culture).calendars.standard;\n }\n function normalize(options) {\n var start = views[options.start], depth = views[options.depth], culture = getCulture(options.culture);\n options.format = extractFormat(options.format || culture.calendars.standard.patterns.d);\n if (isNaN(start)) {\n start = 0;\n options.start = MONTH;\n }\n if (depth === undefined || depth > start) {\n options.depth = MONTH;\n }\n if (options.dates === null) {\n options.dates = [];\n }\n }\n function makeUnselectable(element) {\n if (isIE8) {\n element.find('*').attr('unselectable', 'on');\n }\n }\n function addClassToViewContainer(element, currentView) {\n element.addClass('k-' + currentView);\n }\n function inArray(date, dates) {\n for (var i = 0, length = dates.length; i < length; i++) {\n if (date === +dates[i]) {\n return true;\n }\n }\n return false;\n }\n function isEqualDatePart(value1, value2) {\n if (value1) {\n return value1.getFullYear() === value2.getFullYear() && value1.getMonth() === value2.getMonth() && value1.getDate() === value2.getDate();\n }\n return false;\n }\n function isEqualMonth(value1, value2) {\n if (value1) {\n return value1.getFullYear() === value2.getFullYear() && value1.getMonth() === value2.getMonth();\n }\n return false;\n }\n function getDisabledExpr(option) {\n if (kendo.isFunction(option)) {\n return option;\n }\n if ($.isArray(option)) {\n return createDisabledExpr(option);\n }\n return $.noop;\n }\n function convertDatesArray(dates) {\n var result = [];\n for (var i = 0; i < dates.length; i++) {\n result.push(dates[i].setHours(0, 0, 0, 0));\n }\n return result;\n }\n function createDisabledExpr(dates) {\n var body, callback, disabledDates = [], days = [\n 'su',\n 'mo',\n 'tu',\n 'we',\n 'th',\n 'fr',\n 'sa'\n ], searchExpression = 'if (found) {' + ' return true ' + '} else {' + 'return false' + '}';\n if (dates[0] instanceof DATE) {\n disabledDates = convertDatesArray(dates);\n body = 'var found = date && window.kendo.jQuery.inArray(date.setHours(0, 0, 0, 0),[' + disabledDates + ']) > -1;' + searchExpression;\n } else {\n for (var i = 0; i < dates.length; i++) {\n var day = dates[i].slice(0, 2).toLowerCase();\n var index = $.inArray(day, days);\n if (index > -1) {\n disabledDates.push(index);\n }\n }\n body = 'var found = date && window.kendo.jQuery.inArray(date.getDay(),[' + disabledDates + ']) > -1;' + searchExpression;\n }\n callback = new Function('date', body);\n return callback;\n }\n function isEqualDate(oldValue, newValue) {\n if (oldValue instanceof Date && newValue instanceof Date) {\n oldValue = oldValue.getTime();\n newValue = newValue.getTime();\n }\n return oldValue === newValue;\n }\n function toDateObject(link) {\n var value = $(link).attr(kendo.attr(VALUE)).split('/');\n value = createDate(value[0], value[1], value[2]);\n return value;\n }\n calendar.isEqualDatePart = isEqualDatePart;\n calendar.isEqualDate = isEqualDate;\n calendar.makeUnselectable = makeUnselectable;\n calendar.restrictValue = restrictValue;\n calendar.isInRange = isInRange;\n calendar.addClassToViewContainer = addClassToViewContainer;\n calendar.normalize = normalize;\n calendar.viewsEnum = views;\n calendar.disabled = getDisabledExpr;\n calendar.toDateObject = toDateObject;\n calendar.getToday = getToday;\n calendar.createDate = createDate;\n kendo.calendar = calendar;\n }(window.kendo.jQuery));\n return window.kendo;\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('kendo.dateinput', ['kendo.core'], f);\n}(function () {\n var __meta__ = {\n id: 'dateinput',\n name: 'DateInput',\n category: 'web',\n description: 'The DateInput widget allows to edit date by typing.',\n depends: ['core']\n };\n (function ($, undefined) {\n var global = window;\n var kendo = global.kendo;\n var caret = kendo.caret;\n var ui = kendo.ui;\n var Widget = ui.Widget;\n var keys = kendo.keys;\n var ns = '.kendoDateInput';\n var proxy = $.proxy;\n var objectToString = {}.toString;\n var INPUT_EVENT_NAME = (kendo.support.propertyChangeEvent ? 'propertychange.kendoDateInput input' : 'input') + ns;\n var STATEDISABLED = 'k-state-disabled';\n var STATEDEFAULT = 'k-state-default';\n var STATEINVALID = 'k-state-invalid';\n var DISABLED = 'disabled';\n var READONLY = 'readonly';\n var CHANGE = 'change';\n var knownSymbols = 'dMyHhmftsz';\n var DateInput = Widget.extend({\n init: function (element, options) {\n var that = this;\n Widget.fn.init.call(that, element, options);\n element = that.element;\n options = that.options;\n options.format = kendo._extractFormat(options.format || kendo.getCulture(options.culture).calendars.standard.patterns.d);\n options.min = kendo.parseDate(element.attr('min')) || kendo.parseDate(options.min);\n options.max = kendo.parseDate(element.attr('max')) || kendo.parseDate(options.max);\n var insidePicker = (element.parent().attr('class') || '').indexOf('k-picker-wrap') >= 0;\n if (insidePicker) {\n that.wrapper = element.parent();\n } else {\n that.wrapper = element.wrap('').parent();\n that.wrapper.addClass(element[0].className).removeClass('input-validation-error');\n that.wrapper[0].style.cssText = element[0].style.cssText;\n element.css({\n width: '100%',\n height: element[0].style.height\n });\n }\n that._inputWrapper = $(that.wrapper[0]);\n $('').insertAfter(element);\n that._form();\n that.element.addClass(insidePicker ? ' ' : 'k-textbox').attr('autocomplete', 'off').on('focusout' + ns, function () {\n that._change();\n });\n try {\n element[0].setAttribute('type', 'text');\n } catch (e) {\n element[0].type = 'text';\n }\n var disabled = element.is('[disabled]') || $(that.element).parents('fieldset').is(':disabled');\n if (disabled) {\n that.enable(false);\n } else {\n that.readonly(element.is('[readonly]'));\n }\n that.value(that.options.value || element.val());\n kendo.notify(that);\n },\n options: {\n name: 'DateInput',\n culture: '',\n value: '',\n format: '',\n min: new Date(1900, 0, 1),\n max: new Date(2099, 11, 31),\n messages: {\n 'year': 'year',\n 'month': 'month',\n 'day': 'day',\n 'weekday': 'day of the week',\n 'hour': 'hours',\n 'minute': 'minutes',\n 'second': 'seconds',\n 'dayperiod': 'AM/PM'\n }\n },\n events: [CHANGE],\n min: function (value) {\n if (value !== undefined) {\n this.options.min = value;\n } else {\n return this.options.min;\n }\n },\n max: function (value) {\n if (value !== undefined) {\n this.options.max = value;\n } else {\n return this.options.max;\n }\n },\n setOptions: function (options) {\n var that = this;\n Widget.fn.setOptions.call(that, options);\n this._unbindInput();\n this._bindInput();\n this._updateElementValue();\n },\n destroy: function () {\n var that = this;\n that.element.off(ns);\n if (that._formElement) {\n that._formElement.off('reset', that._resetHandler);\n }\n Widget.fn.destroy.call(that);\n },\n value: function (value) {\n if (value === undefined) {\n return this._dateTime.getDateObject();\n }\n if (value === null) {\n value = '';\n }\n if (objectToString.call(value) !== '[object Date]') {\n value = kendo.parseDate(value, this.options.format, this.options.culture);\n }\n if (value && !value.getTime()) {\n value = null;\n }\n this._dateTime = new customDateTime(value, this.options.format, this.options.culture, this.options.messages);\n this._updateElementValue();\n this._oldValue = value;\n },\n _updateElementValue: function () {\n var stringAndFromat = this._dateTime.toPair(this.options.format, this.options.culture, this.options.messages);\n this.element.val(stringAndFromat[0]);\n this._oldText = stringAndFromat[0];\n this._format = stringAndFromat[1];\n },\n readonly: function (readonly) {\n this._editable({\n readonly: readonly === undefined ? true : readonly,\n disable: false\n });\n },\n enable: function (enable) {\n this._editable({\n readonly: false,\n disable: !(enable = enable === undefined ? true : enable)\n });\n },\n _bindInput: function () {\n var that = this;\n that.element.on('focusout' + ns, function () {\n that._change();\n }).on('paste' + ns, proxy(that._paste, that)).on('keydown' + ns, proxy(that._keydown, that)).on(INPUT_EVENT_NAME, proxy(that._input, that)).on('mouseup' + ns, proxy(that._mouseUp, that)).on('DOMMouseScroll' + ns + ' mousewheel' + ns, proxy(that._scroll, that));\n },\n _unbindInput: function () {\n this.element.off('keydown' + ns).off('paste' + ns).off('focusout' + ns).off(INPUT_EVENT_NAME).off('mouseup' + ns).off('DOMMouseScroll' + ns + ' mousewheel' + ns);\n },\n _editable: function (options) {\n var that = this;\n var element = that.element;\n var disable = options.disable;\n var readonly = options.readonly;\n var wrapper = that.wrapper;\n that._unbindInput();\n if (!readonly && !disable) {\n wrapper.addClass(STATEDEFAULT).removeClass(STATEDISABLED);\n if (element && element.length) {\n element[0].removeAttribute(DISABLED);\n element[0].removeAttribute(READONLY);\n }\n that._bindInput();\n } else {\n if (disable) {\n wrapper.addClass(STATEDISABLED).removeClass(STATEDEFAULT);\n element.attr(DISABLED, disable);\n if (element && element.length) {\n element[0].removeAttribute(READONLY);\n }\n }\n if (readonly) {\n element.attr(READONLY, readonly);\n }\n }\n },\n _change: function () {\n var that = this;\n var oldValue = that._oldValue;\n var value = that.value();\n if (value && that.min() && value < that.min()) {\n that.value(that.min());\n value = that.value();\n }\n if (value && that.max() && value > that.max()) {\n that.value(that.max());\n value = that.value();\n }\n if (oldValue && value && value.getTime() !== oldValue.getTime() || oldValue && !value || !oldValue && value) {\n that._oldValue = value;\n that.trigger(CHANGE);\n that.element.trigger(CHANGE);\n }\n },\n _input: function () {\n var that = this;\n var element = that.element[0];\n var blinkInvalid = false;\n if (kendo._activeElement() !== element) {\n return;\n }\n var diff = approximateStringMatching(this._oldText, this._format, this.element[0].value, caret(this.element[0])[0]);\n var navigationOnly = diff.length === 1 && diff[0][1] === ' ';\n if (!navigationOnly) {\n for (var i = 0; i < diff.length; i++) {\n var valid = this._dateTime.parsePart(diff[i][0], diff[i][1]);\n blinkInvalid = blinkInvalid || !valid;\n }\n }\n this._updateElementValue();\n if (diff.length && diff[0][0] !== ' ') {\n this._selectSegment(diff[0][0]);\n if (!navigationOnly) {\n var difSym = diff[0][0];\n setTimeout(function () {\n that._selectSegment(difSym);\n });\n }\n }\n if (navigationOnly) {\n var newEvent = {\n keyCode: 39,\n preventDefault: function () {\n }\n };\n this._keydown(newEvent);\n }\n if (blinkInvalid) {\n clearTimeout(that._blinkInvalidTimeout);\n var stateInvalid = STATEINVALID;\n that.wrapper.addClass(STATEINVALID);\n that._blinkInvalidTimeout = setTimeout(function () {\n that.wrapper.removeClass(stateInvalid);\n }, 100);\n }\n },\n _mouseUp: function () {\n var selection = caret(this.element[0]);\n if (selection[0] === selection[1]) {\n this._selectNearestSegment();\n }\n },\n _scroll: function (e) {\n if (kendo._activeElement() !== this.element[0] || this.element.is('[readonly]')) {\n return;\n }\n e = window.event || e;\n var newEvent = {\n keyCode: 37,\n preventDefault: function () {\n }\n };\n if (e.shiftKey) {\n newEvent.keyCode = (e.wheelDelta || -e.detail) > 0 ? 37 : 39;\n } else {\n newEvent.keyCode = (e.wheelDelta || -e.detail) > 0 ? 38 : 40;\n }\n this._keydown(newEvent);\n e.returnValue = false;\n if (e.preventDefault) {\n e.preventDefault();\n }\n if (e.stopPropagation) {\n e.stopPropagation();\n }\n },\n _form: function () {\n var that = this;\n var element = that.element;\n var formId = element.attr('form');\n var form = formId ? $('#' + formId) : element.closest('form');\n var initialValue = element[0].value;\n if (!initialValue && that.options.value) {\n initialValue = that.options.value;\n }\n if (form[0]) {\n that._resetHandler = function () {\n setTimeout(function () {\n that.value(initialValue);\n });\n };\n that._formElement = form.on('reset', that._resetHandler);\n }\n },\n _paste: function (e) {\n e.preventDefault();\n },\n _keydown: function (e) {\n var key = e.keyCode;\n var selection;\n if (key == 37 || key == 39) {\n e.preventDefault();\n selection = caret(this.element[0]);\n if (selection[0] != selection[1]) {\n this._selectNearestSegment();\n }\n var dir = key == 37 ? -1 : 1;\n var index = dir == -1 ? caret(this.element[0])[0] - 1 : caret(this.element[0])[1] + 1;\n while (index >= 0 && index < this._format.length) {\n if (knownSymbols.indexOf(this._format[index]) >= 0) {\n this._selectSegment(this._format[index]);\n break;\n }\n index += dir;\n }\n }\n if (key == 38 || key == 40) {\n e.preventDefault();\n selection = caret(this.element[0]);\n var symbol = this._format[selection[0]];\n if (knownSymbols.indexOf(symbol) >= 0) {\n var interval = 1;\n if (symbol == 'm') {\n interval = this.options.interval || 1;\n }\n this._dateTime.modifyPart(symbol, key == 38 ? interval * 1 : interval * -1);\n this._updateElementValue();\n this._selectSegment(symbol);\n this.element.trigger(CHANGE);\n }\n }\n if (kendo.support.browser.msie && kendo.support.browser.version < 10) {\n var keycode = e.keyCode ? e.keyCode : e.which;\n if (keycode === 8 || keycode === 46) {\n var that = this;\n setTimeout(function () {\n that._input();\n }, 0);\n }\n }\n if (key === keys.ENTER) {\n this._change();\n }\n },\n _selectNearestSegment: function () {\n var selection = caret(this.element[0]);\n var start = selection[0];\n for (var i = start, j = start - 1; i < this._format.length || j >= 0; i++, j--) {\n if (i < this._format.length && knownSymbols.indexOf(this._format[i]) !== -1) {\n this._selectSegment(this._format[i]);\n return;\n }\n if (j >= 0 && knownSymbols.indexOf(this._format[j]) !== -1) {\n this._selectSegment(this._format[j]);\n return;\n }\n }\n },\n _selectSegment: function (symbol) {\n var begin = -1, end = 0;\n for (var i = 0; i < this._format.length; i++) {\n if (this._format[i] === symbol) {\n end = i + 1;\n if (begin === -1) {\n begin = i;\n }\n }\n }\n if (begin < 0) {\n begin = 0;\n }\n caret(this.element, begin, end);\n }\n });\n ui.plugin(DateInput);\n var customDateTime = function (initDate, initFormat, initCulture, initMessages) {\n var value = null;\n var year = true, month = true, date = true, hours = true, minutes = true, seconds = true, milliseconds = true;\n var typedMonthPart = '';\n var typedDayPeriodPart = '';\n var placeholders = {};\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000'\n ];\n function pad(number, digits, end) {\n number = number + '';\n digits = digits || 2;\n end = digits - number.length;\n if (end) {\n return zeros[digits].substring(0, end) + number;\n }\n return number;\n }\n var dateFormatRegExp = /dddd|ddd|dd|d|MMMM|MMM|MM|M|yyyy|yy|HH|H|hh|h|mm|m|fff|ff|f|tt|ss|s|zzz|zz|z|\"[^\"]*\"|'[^']*'/g;\n var months = null, calendar = null, days = null, returnsFormat = false;\n var matcher = function (match) {\n var mins, sign;\n var result;\n switch (match) {\n case 'd':\n result = date ? value.getDate() : placeholders.day;\n break;\n case 'dd':\n result = date ? pad(value.getDate()) : placeholders.day;\n break;\n case 'ddd':\n result = date && month && year ? days.namesAbbr[value.getDay()] : placeholders.weekday;\n break;\n case 'dddd':\n result = date && month && year ? days.names[value.getDay()] : placeholders.weekday;\n break;\n case 'M':\n result = month ? value.getMonth() + 1 : placeholders.month;\n break;\n case 'MM':\n result = month ? pad(value.getMonth() + 1) : placeholders.month;\n break;\n case 'MMM':\n result = month ? months.namesAbbr[value.getMonth()] : placeholders.month;\n break;\n case 'MMMM':\n result = month ? months.names[value.getMonth()] : placeholders.month;\n break;\n case 'yy':\n result = year ? pad(value.getFullYear() % 100) : placeholders.year;\n break;\n case 'yyyy':\n result = year ? pad(value.getFullYear(), 4) : placeholders.year;\n break;\n case 'h':\n result = hours ? value.getHours() % 12 || 12 : placeholders.hour;\n break;\n case 'hh':\n result = hours ? pad(value.getHours() % 12 || 12) : placeholders.hour;\n break;\n case 'H':\n result = hours ? value.getHours() : placeholders.hour;\n break;\n case 'HH':\n result = hours ? pad(value.getHours()) : placeholders.hour;\n break;\n case 'm':\n result = minutes ? value.getMinutes() : placeholders.minute;\n break;\n case 'mm':\n result = minutes ? pad(value.getMinutes()) : placeholders.minute;\n break;\n case 's':\n result = seconds ? value.getSeconds() : placeholders.second;\n break;\n case 'ss':\n result = seconds ? pad(value.getSeconds()) : placeholders.second;\n break;\n case 'f':\n result = milliseconds ? Math.floor(value.getMilliseconds() / 100) : milliseconds;\n break;\n case 'ff':\n result = value.getMilliseconds();\n if (result > 99) {\n result = Math.floor(result / 10);\n }\n result = milliseconds ? pad(result) : match;\n break;\n case 'fff':\n result = milliseconds ? pad(value.getMilliseconds(), 3) : match;\n break;\n case 'tt':\n result = hours ? value.getHours() < 12 ? calendar.AM[0] : calendar.PM[0] : placeholders.dayperiod;\n break;\n case 'zzz':\n mins = value.getTimezoneOffset();\n sign = mins < 0;\n result = Math.abs(mins / 60).toString().split('.')[0];\n mins = Math.abs(mins) - result * 60;\n result = (sign ? '+' : '-') + pad(result);\n result += ':' + pad(mins);\n break;\n case 'z':\n case 'zz':\n result = value.getTimezoneOffset() / 60;\n sign = result < 0;\n result = Math.abs(result).toString().split('.')[0];\n result = (sign ? '+' : '-') + (match === 'zz' ? pad(result) : result);\n break;\n }\n result = result !== undefined ? result : match.slice(1, match.length - 1);\n if (returnsFormat) {\n result = '' + result;\n var formatResult = '';\n if (match == 'ddd') {\n match = 'EEE';\n }\n if (match == 'dddd') {\n match = 'EEEE';\n }\n for (var i = 0; i < result.length; i++) {\n formatResult += match[0];\n }\n return formatResult;\n } else {\n return result;\n }\n };\n function generateMatcher(retFormat) {\n returnsFormat = retFormat;\n return matcher;\n }\n function setExisting(symbol, val) {\n switch (symbol) {\n case 'y':\n year = val;\n break;\n case 'M':\n month = val;\n if (!val) {\n value.setMonth(0);\n typedMonthPart = '';\n }\n break;\n case 'd':\n date = val;\n break;\n case 'H':\n case 'h':\n hours = val;\n if (!val) {\n typedDayPeriodPart = '';\n }\n break;\n case 'm':\n minutes = val;\n break;\n case 's':\n seconds = val;\n break;\n default:\n return;\n }\n }\n this.setValue = function (val) {\n date = val;\n };\n this.getValue = function () {\n return date;\n };\n this.modifyPart = function (symbol, offset) {\n var newValue = new Date(value && value.getTime ? value.getTime() : value);\n switch (symbol) {\n case 'y':\n newValue.setFullYear(newValue.getFullYear() + offset);\n break;\n case 'M':\n var newMonth = newValue.getMonth() + offset;\n newValue.setMonth(newMonth);\n if (newValue.getMonth() % 12 !== (newMonth + 12) % 12) {\n newValue.setDate(1);\n newValue.setMonth(newMonth);\n }\n break;\n case 'd':\n case 'E':\n newValue.setDate(newValue.getDate() + offset);\n break;\n case 'H':\n case 'h':\n newValue.setHours(newValue.getHours() + offset);\n break;\n case 'm':\n newValue.setMinutes(newValue.getMinutes() + offset);\n break;\n case 's':\n newValue.setSeconds(newValue.getSeconds() + offset);\n break;\n case 't':\n newValue.setHours((newValue.getHours() + 12) % 24);\n break;\n default:\n break;\n }\n if (newValue.getFullYear() > 0) {\n setExisting(symbol, true);\n value = newValue;\n }\n };\n this.parsePart = function (symbol, currentChar) {\n if (!currentChar) {\n setExisting(symbol, false);\n return true;\n }\n var newValue = new Date(value && value.getTime ? value.getTime() : value);\n var newHours;\n switch (symbol) {\n case 'd':\n var newDate = (date ? newValue.getDate() * 10 : 0) + parseInt(currentChar, 10);\n if (isNaN(newDate)) {\n return;\n }\n while (newDate > 31) {\n newDate = parseInt(newDate.toString().slice(1), 10);\n }\n if (newDate < 1) {\n date = false;\n } else {\n newValue.setDate(newDate);\n if (newValue.getMonth() !== value.getMonth()) {\n return;\n }\n date = true;\n }\n break;\n case 'M':\n var newMonth = (month ? (newValue.getMonth() + 1) * 10 : 0) + parseInt(currentChar, 10);\n if (!isNaN(newMonth)) {\n while (newMonth > 12) {\n newMonth = parseInt(newMonth.toString().slice(1), 10);\n }\n if (newMonth < 1) {\n month = false;\n } else {\n newValue.setMonth(newMonth - 1);\n if (newValue.getMonth() !== newMonth - 1) {\n newValue.setDate(1);\n newValue.setMonth(newMonth - 1);\n }\n month = true;\n }\n } else {\n var monthNames = calendar.months.names;\n typedMonthPart += currentChar.toLowerCase();\n while (typedMonthPart.length > 0) {\n for (var i = 0; i < monthNames.length; i++) {\n if (monthNames[i].toLowerCase().indexOf(typedMonthPart) === 0) {\n newValue.setMonth(i);\n month = true;\n value = newValue;\n return true;\n }\n }\n typedMonthPart = typedMonthPart.substring(1, typedMonthPart.length);\n }\n return false;\n }\n break;\n case 'y':\n var newYear = (year ? newValue.getFullYear() * 10 : 0) + parseInt(currentChar, 10);\n if (isNaN(newYear)) {\n return;\n }\n while (newYear > 9999) {\n newYear = parseInt(newYear.toString().slice(1), 10);\n }\n if (newYear < 1) {\n year = false;\n } else {\n newValue.setFullYear(newYear);\n year = true;\n }\n break;\n case 'h':\n newHours = (hours ? (newValue.getHours() % 12 || 12) * 10 : 0) + parseInt(currentChar, 10);\n if (isNaN(newHours)) {\n return;\n }\n while (newHours > 12) {\n newHours = parseInt(newHours.toString().slice(1), 10);\n }\n newValue.setHours(Math.floor(newValue.getHours() / 12) * 12 + newHours % 12);\n hours = true;\n break;\n case 'H':\n newHours = (hours ? newValue.getHours() * 10 : 0) + parseInt(currentChar, 10);\n if (isNaN(newHours)) {\n return;\n }\n while (newHours > 23) {\n newHours = parseInt(newHours.toString().slice(1), 10);\n }\n newValue.setHours(newHours);\n hours = true;\n break;\n case 'm':\n var newMinutes = (minutes ? newValue.getMinutes() * 10 : 0) + parseInt(currentChar, 10);\n if (isNaN(newMinutes)) {\n return;\n }\n while (newMinutes > 59) {\n newMinutes = parseInt(newMinutes.toString().slice(1), 10);\n }\n newValue.setMinutes(newMinutes);\n minutes = true;\n break;\n case 's':\n var newSeconds = (seconds ? newValue.getSeconds() * 10 : 0) + parseInt(currentChar, 10);\n if (isNaN(newSeconds)) {\n return;\n }\n while (newSeconds > 59) {\n newSeconds = parseInt(newSeconds.toString().slice(1), 10);\n }\n newValue.setSeconds(newSeconds);\n seconds = true;\n break;\n case 't':\n if (hours) {\n typedDayPeriodPart += currentChar.toLowerCase();\n while (typedDayPeriodPart.length > 0) {\n if (calendar.AM[0].toLowerCase().indexOf(typedDayPeriodPart) === 0 && newValue.getHours() >= 12 || calendar.PM[0].toLowerCase().indexOf(typedDayPeriodPart) === 0 && newValue.getHours() < 12) {\n newValue.setHours((newValue.getHours() + 12) % 24);\n value = newValue;\n return true;\n }\n typedDayPeriodPart = typedDayPeriodPart.substring(1, typedDayPeriodPart.length);\n }\n return false;\n }\n break;\n default:\n break;\n }\n value = newValue;\n return true;\n };\n this.toPair = function (format, culture, messages) {\n if (!format) {\n return [\n '',\n ''\n ];\n }\n culture = kendo.getCulture(culture);\n calendar = culture.calendars.standard;\n format = calendar.patterns[format] || format;\n days = calendar.days;\n months = calendar.months;\n placeholders = messages;\n return [\n format.replace(dateFormatRegExp, generateMatcher(false)),\n format.replace(dateFormatRegExp, generateMatcher(true))\n ];\n };\n this.getDateObject = function () {\n return year && month && date && hours && minutes && seconds && milliseconds ? new Date(value.getTime()) : null;\n };\n if (!initDate) {\n value = new Date();\n var sampleFormat = this.toPair(initFormat, initCulture, initMessages)[1];\n for (var i = 0; i < sampleFormat.length; i++) {\n setExisting(sampleFormat[i], false);\n }\n } else {\n value = new Date(initDate.getTime());\n }\n };\n function approximateStringMatching(oldText, oldFormat, newText, caret) {\n var oldTextSeparator = oldText[caret + oldText.length - newText.length];\n oldText = oldText.substring(0, caret + oldText.length - newText.length);\n newText = newText.substring(0, caret);\n var diff = [];\n var i;\n if (oldText === newText && caret > 0) {\n diff.push([\n oldFormat[caret - 1],\n newText[caret - 1]\n ]);\n return diff;\n }\n if (oldText.indexOf(newText) === 0 && (newText.length === 0 || oldFormat[newText.length - 1] !== oldFormat[newText.length])) {\n var deletedSymbol = '';\n for (i = newText.length; i < oldText.length; i++) {\n if (oldFormat[i] !== deletedSymbol && knownSymbols.indexOf(oldFormat[i]) >= 0) {\n deletedSymbol = oldFormat[i];\n diff.push([\n deletedSymbol,\n ''\n ]);\n }\n }\n return diff;\n }\n if (newText[newText.length - 1] === ' ' || newText[newText.length - 1] === oldTextSeparator) {\n return [[\n oldFormat[caret - 1],\n ' '\n ]];\n }\n if (newText.indexOf(oldText) === 0 || knownSymbols.indexOf(oldFormat[caret - 1]) === -1) {\n var symbol = oldFormat[0];\n for (i = Math.max(0, oldText.length - 1); i < oldFormat.length; i++) {\n if (knownSymbols.indexOf(oldFormat[i]) >= 0) {\n symbol = oldFormat[i];\n break;\n }\n }\n return [[\n symbol,\n newText[caret - 1]\n ]];\n }\n return [[\n oldFormat[caret - 1],\n newText[caret - 1]\n ]];\n }\n }(window.kendo.jQuery));\n return window.kendo;\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('kendo.datepicker', [\n 'kendo.calendar',\n 'kendo.popup',\n 'kendo.dateinput'\n ], f);\n}(function () {\n var __meta__ = {\n id: 'datepicker',\n name: 'DatePicker',\n category: 'web',\n description: 'The DatePicker widget allows the user to select a date from a calendar or by direct input.',\n depends: [\n 'calendar',\n 'popup'\n ]\n };\n (function ($, undefined) {\n var kendo = window.kendo, ui = kendo.ui, Widget = ui.Widget, parse = kendo.parseDate, keys = kendo.keys, support = kendo.support, template = kendo.template, activeElement = kendo._activeElement, DIV = '
          ', SPAN = '', ns = '.kendoDatePicker', CLICK = 'click' + ns, UP = support.mouseAndTouchPresent ? kendo.applyEventMap('up', ns.slice(1)) : CLICK, OPEN = 'open', CLOSE = 'close', CHANGE = 'change', DISABLED = 'disabled', READONLY = 'readonly', DEFAULT = 'k-state-default', FOCUSED = 'k-state-focused', SELECTED = 'k-state-selected', STATEDISABLED = 'k-state-disabled', HOVER = 'k-state-hover', HOVEREVENTS = 'mouseenter' + ns + ' mouseleave' + ns, MOUSEDOWN = 'mousedown' + ns, ID = 'id', MIN = 'min', MAX = 'max', MONTH = 'month', ARIA_DISABLED = 'aria-disabled', ARIA_EXPANDED = 'aria-expanded', ARIA_HIDDEN = 'aria-hidden', calendar = kendo.calendar, isInRange = calendar.isInRange, restrictValue = calendar.restrictValue, isEqualDatePart = calendar.isEqualDatePart, extend = $.extend, proxy = $.proxy, DATE = Date;\n function normalize(options) {\n var parseFormats = options.parseFormats, format = options.format;\n calendar.normalize(options);\n parseFormats = $.isArray(parseFormats) ? parseFormats : [parseFormats];\n if (!parseFormats.length) {\n parseFormats.push('yyyy-MM-dd');\n }\n if ($.inArray(format, parseFormats) === -1) {\n parseFormats.splice(0, 0, options.format);\n }\n options.parseFormats = parseFormats;\n }\n function preventDefault(e) {\n e.preventDefault();\n }\n var DateView = function (options) {\n var that = this, id, body = document.body, div = $(DIV).attr(ARIA_HIDDEN, 'true').addClass('k-calendar-container');\n that.options = options = options || {};\n id = options.id;\n if (!options.omitPopup) {\n div.appendTo(body);\n that.popup = new ui.Popup(div, extend(options.popup, options, {\n name: 'Popup',\n isRtl: kendo.support.isRtl(options.anchor)\n }));\n } else {\n div = options.dateDiv;\n }\n if (id) {\n id += '_dateview';\n div.attr(ID, id);\n that._dateViewID = id;\n }\n that.div = div;\n that.value(options.value);\n };\n DateView.prototype = {\n _calendar: function () {\n var that = this;\n var calendar = that.calendar;\n var options = that.options;\n var div;\n if (!calendar) {\n div = $(DIV).attr(ID, kendo.guid()).appendTo(options.omitPopup ? options.dateDiv : that.popup.element).on(MOUSEDOWN, preventDefault).on(CLICK, 'td:has(.k-link)', proxy(that._click, that));\n that.calendar = calendar = new ui.Calendar(div, { componentType: options.componentType });\n that._setOptions(options);\n kendo.calendar.makeUnselectable(calendar.element);\n calendar.navigate(that._value || that._current, options.start);\n that.value(that._value);\n }\n },\n _setOptions: function (options) {\n this.calendar.setOptions({\n focusOnNav: false,\n change: options.change,\n culture: options.culture,\n dates: options.dates,\n depth: options.depth,\n footer: options.footer,\n format: options.format,\n max: options.max,\n min: options.min,\n month: options.month,\n weekNumber: options.weekNumber,\n start: options.start,\n disableDates: options.disableDates\n });\n },\n setOptions: function (options) {\n var old = this.options;\n var disableDates = options.disableDates;\n if (disableDates) {\n options.disableDates = calendar.disabled(disableDates);\n }\n this.options = extend(old, options, {\n change: old.change,\n close: old.close,\n open: old.open\n });\n if (this.calendar) {\n this._setOptions(this.options);\n }\n },\n destroy: function () {\n if (this.popup) {\n this.popup.destroy();\n }\n },\n open: function () {\n var that = this;\n var popupHovered;\n that._calendar();\n popupHovered = that.popup._hovered;\n that.popup._hovered = true;\n that.popup.open();\n setTimeout(function () {\n that.popup._hovered = popupHovered;\n }, 1);\n },\n close: function () {\n this.popup.close();\n },\n min: function (value) {\n this._option(MIN, value);\n },\n max: function (value) {\n this._option(MAX, value);\n },\n toggle: function () {\n var that = this;\n that[that.popup.visible() ? CLOSE : OPEN]();\n },\n move: function (e) {\n var that = this, key = e.keyCode, calendar = that.calendar, selectIsClicked = e.ctrlKey && key == keys.DOWN || key == keys.ENTER, handled = false;\n if (e.altKey) {\n if (key == keys.DOWN) {\n that.open();\n e.preventDefault();\n handled = true;\n } else if (key == keys.UP) {\n that.close();\n e.preventDefault();\n handled = true;\n }\n } else if (that.popup && that.popup.visible()) {\n if (key == keys.ESC || selectIsClicked && calendar._cell.hasClass(SELECTED)) {\n that.close();\n e.preventDefault();\n return true;\n }\n if (key != keys.SPACEBAR) {\n that._current = calendar._move(e);\n }\n handled = true;\n }\n return handled;\n },\n current: function (date) {\n this._current = date;\n if (this.calendar) {\n this.calendar._focus(date);\n }\n },\n value: function (value) {\n var that = this, calendar = that.calendar, options = that.options, disabledDate = options.disableDates;\n if (disabledDate && disabledDate(value)) {\n value = null;\n }\n that._value = value;\n that._current = new DATE(+restrictValue(value, options.min, options.max));\n if (calendar) {\n calendar.value(value);\n }\n },\n _click: function (e) {\n if (e.currentTarget.className.indexOf(SELECTED) !== -1) {\n this.calendar.trigger('change');\n this.close();\n }\n },\n _option: function (option, value) {\n var that = this;\n var calendar = that.calendar;\n that.options[option] = value;\n if (calendar) {\n calendar[option](value);\n }\n }\n };\n DateView.normalize = normalize;\n kendo.DateView = DateView;\n var DatePicker = Widget.extend({\n init: function (element, options) {\n var that = this, disabled, div;\n Widget.fn.init.call(that, element, options);\n element = that.element;\n options = that.options;\n options.disableDates = kendo.calendar.disabled(options.disableDates);\n options.min = parse(element.attr('min')) || parse(options.min);\n options.max = parse(element.attr('max')) || parse(options.max);\n normalize(options);\n that._initialOptions = extend({}, options);\n that._wrapper();\n that.dateView = new DateView(extend({}, options, {\n id: element.attr(ID),\n anchor: that.wrapper,\n change: function () {\n that._change(this.value());\n that.close();\n },\n close: function (e) {\n if (that.trigger(CLOSE)) {\n e.preventDefault();\n } else {\n element.attr(ARIA_EXPANDED, false);\n div.attr(ARIA_HIDDEN, true);\n }\n },\n open: function (e) {\n var options = that.options, date;\n if (that.trigger(OPEN)) {\n e.preventDefault();\n } else {\n if (that.element.val() !== that._oldText) {\n date = parse(element.val(), options.parseFormats, options.culture);\n that.dateView[date ? 'current' : 'value'](date);\n }\n element.attr(ARIA_EXPANDED, true);\n div.attr(ARIA_HIDDEN, false);\n that._updateARIA(date);\n }\n }\n }));\n div = that.dateView.div;\n that._icon();\n try {\n element[0].setAttribute('type', 'text');\n } catch (e) {\n element[0].type = 'text';\n }\n element.addClass('k-input').attr({\n role: 'combobox',\n 'aria-expanded': false,\n 'aria-owns': that.dateView._dateViewID,\n 'autocomplete': 'off'\n });\n that._reset();\n that._template();\n disabled = element.is('[disabled]') || $(that.element).parents('fieldset').is(':disabled');\n if (disabled) {\n that.enable(false);\n } else {\n that.readonly(element.is('[readonly]'));\n }\n that._createDateInput(options);\n that._old = that._update(options.value || that.element.val());\n that._oldText = element.val();\n kendo.notify(that);\n },\n events: [\n OPEN,\n CLOSE,\n CHANGE\n ],\n options: {\n name: 'DatePicker',\n value: null,\n footer: '',\n format: '',\n culture: '',\n parseFormats: [],\n min: new Date(1900, 0, 1),\n max: new Date(2099, 11, 31),\n start: MONTH,\n depth: MONTH,\n animation: {},\n month: {},\n dates: [],\n disableDates: null,\n ARIATemplate: 'Current focused date is #=kendo.toString(data.current, \"D\")#',\n dateInput: false,\n weekNumber: false\n },\n setOptions: function (options) {\n var that = this;\n var value = that._value;\n Widget.fn.setOptions.call(that, options);\n options = that.options;\n options.min = parse(options.min);\n options.max = parse(options.max);\n normalize(options);\n that.dateView.setOptions(options);\n that._createDateInput(options);\n if (!that._dateInput) {\n that.element.val(kendo.toString(value, options.format, options.culture));\n }\n if (value) {\n that._updateARIA(value);\n }\n },\n _editable: function (options) {\n var that = this, icon = that._dateIcon.off(ns), element = that.element.off(ns), wrapper = that._inputWrapper.off(ns), readonly = options.readonly, disable = options.disable;\n if (!readonly && !disable) {\n wrapper.addClass(DEFAULT).removeClass(STATEDISABLED).on(HOVEREVENTS, that._toggleHover);\n if (element && element.length) {\n element[0].removeAttribute(DISABLED);\n element[0].removeAttribute(READONLY);\n }\n element.attr(ARIA_DISABLED, false).on('keydown' + ns, proxy(that._keydown, that)).on('focusout' + ns, proxy(that._blur, that)).on('focus' + ns, function () {\n that._inputWrapper.addClass(FOCUSED);\n });\n icon.on(UP, proxy(that._click, that)).on(MOUSEDOWN, preventDefault);\n } else {\n wrapper.addClass(disable ? STATEDISABLED : DEFAULT).removeClass(disable ? DEFAULT : STATEDISABLED);\n element.attr(DISABLED, disable).attr(READONLY, readonly).attr(ARIA_DISABLED, disable);\n }\n },\n readonly: function (readonly) {\n this._editable({\n readonly: readonly === undefined ? true : readonly,\n disable: false\n });\n if (this._dateInput) {\n this._dateInput._editable({\n readonly: readonly === undefined ? true : readonly,\n disable: false\n });\n }\n },\n enable: function (enable) {\n this._editable({\n readonly: false,\n disable: !(enable = enable === undefined ? true : enable)\n });\n if (this._dateInput) {\n this._dateInput._editable({\n readonly: false,\n disable: !(enable = enable === undefined ? true : enable)\n });\n }\n },\n destroy: function () {\n var that = this;\n Widget.fn.destroy.call(that);\n that.dateView.destroy();\n that.element.off(ns);\n that._dateIcon.off(ns);\n that._inputWrapper.off(ns);\n if (that._form) {\n that._form.off('reset', that._resetHandler);\n }\n },\n open: function () {\n this.dateView.open();\n },\n close: function () {\n this.dateView.close();\n },\n min: function (value) {\n return this._option(MIN, value);\n },\n max: function (value) {\n return this._option(MAX, value);\n },\n value: function (value) {\n var that = this;\n if (value === undefined) {\n return that._value;\n }\n that._old = that._update(value);\n if (that._old === null) {\n that.element.val('');\n }\n that._oldText = that.element.val();\n },\n _toggleHover: function (e) {\n $(e.currentTarget).toggleClass(HOVER, e.type === 'mouseenter');\n },\n _blur: function () {\n var that = this, value = that.element.val();\n that.close();\n if (value !== that._oldText) {\n that._change(value);\n if (!value) {\n that.dateView.current(kendo.calendar.getToday());\n }\n }\n that._inputWrapper.removeClass(FOCUSED);\n },\n _click: function (e) {\n var that = this;\n that.dateView.toggle();\n that._focusElement(e.type);\n },\n _focusElement: function (eventType) {\n var element = this.element;\n if ((!support.touch || support.mouseAndTouchPresent && !(eventType || '').match(/touch/i)) && element[0] !== activeElement()) {\n element.trigger('focus');\n }\n },\n _change: function (value) {\n var that = this, oldValue = that.element.val(), dateChanged;\n value = that._update(value);\n dateChanged = !kendo.calendar.isEqualDate(that._old, value);\n var valueUpdated = dateChanged && !that._typing;\n var textFormatted = oldValue !== that.element.val();\n if (valueUpdated || textFormatted) {\n that.element.trigger(CHANGE);\n }\n if (dateChanged) {\n that._old = value;\n that._oldText = that.element.val();\n that.trigger(CHANGE);\n }\n that._typing = false;\n },\n _keydown: function (e) {\n var that = this, dateView = that.dateView, value = that.element.val(), handled = false;\n if (!dateView.popup.visible() && e.keyCode == keys.ENTER && value !== that._oldText) {\n that._change(value);\n } else {\n handled = dateView.move(e);\n that._updateARIA(dateView._current);\n if (!handled) {\n that._typing = true;\n } else if (that._dateInput && e.stopImmediatePropagation) {\n e.stopImmediatePropagation();\n }\n }\n },\n _icon: function () {\n var that = this, element = that.element, icon;\n icon = element.next('span.k-select');\n if (!icon[0]) {\n icon = $('').insertAfter(element);\n }\n that._dateIcon = icon.attr({\n 'role': 'button',\n 'aria-controls': that.dateView._dateViewID\n });\n },\n _option: function (option, value) {\n var that = this, options = that.options;\n if (value === undefined) {\n return options[option];\n }\n value = parse(value, options.parseFormats, options.culture);\n if (!value) {\n return;\n }\n options[option] = new DATE(+value);\n that.dateView[option](value);\n },\n _update: function (value) {\n var that = this, options = that.options, min = options.min, max = options.max, current = that._value, date = parse(value, options.parseFormats, options.culture), isSameType = date === null && current === null || date instanceof Date && current instanceof Date, formattedValue;\n if (options.disableDates(date)) {\n date = null;\n if (!that._old && !that.element.val()) {\n value = null;\n }\n }\n if (+date === +current && isSameType) {\n formattedValue = kendo.toString(date, options.format, options.culture);\n if (formattedValue !== value) {\n that.element.val(date === null ? value : formattedValue);\n }\n return date;\n }\n if (date !== null && isEqualDatePart(date, min)) {\n date = restrictValue(date, min, max);\n } else if (!isInRange(date, min, max)) {\n date = null;\n }\n that._value = date;\n that.dateView.value(date);\n if (that._dateInput && date) {\n that._dateInput.value(date || value);\n } else {\n that.element.val(kendo.toString(date || value, options.format, options.culture));\n }\n that._updateARIA(date);\n return date;\n },\n _wrapper: function () {\n var that = this, element = that.element, wrapper;\n wrapper = element.parents('.k-datepicker');\n if (!wrapper[0]) {\n wrapper = element.wrap(SPAN).parent().addClass('k-picker-wrap k-state-default');\n wrapper = wrapper.wrap(SPAN).parent();\n }\n wrapper[0].style.cssText = element[0].style.cssText;\n element.css({\n width: '100%',\n height: element[0].style.height\n });\n that.wrapper = wrapper.addClass('k-widget k-datepicker').addClass(element[0].className).removeClass('input-validation-error');\n that._inputWrapper = $(wrapper[0].firstChild);\n },\n _reset: function () {\n var that = this, element = that.element, formId = element.attr('form'), options = that.options, disabledDate = options.disableDates, parseFormats = options.parseFormats.length ? options.parseFormats : null, optionsValue = that._initialOptions.value, form = formId ? $('#' + formId) : element.closest('form'), initialValue = element[0].defaultValue;\n if (optionsValue && (disabledDate && disabledDate(optionsValue))) {\n optionsValue = null;\n }\n if ((!initialValue || !kendo.parseDate(initialValue, parseFormats, options.culture)) && optionsValue) {\n element.attr('value', kendo.toString(optionsValue, options.format, options.culture));\n }\n if (form[0]) {\n that._resetHandler = function () {\n that.value(optionsValue || element[0].defaultValue);\n that.max(that._initialOptions.max);\n that.min(that._initialOptions.min);\n };\n that._form = form.on('reset', that._resetHandler);\n }\n },\n _template: function () {\n this._ariaTemplate = template(this.options.ARIATemplate);\n },\n _createDateInput: function (options) {\n if (this._dateInput) {\n this._dateInput.destroy();\n this._dateInput = null;\n }\n if (options.dateInput) {\n this._dateInput = new ui.DateInput(this.element, {\n culture: options.culture,\n format: options.format,\n min: options.min,\n max: options.max\n });\n }\n },\n _updateARIA: function (date) {\n var cell;\n var that = this;\n var calendar = that.dateView.calendar;\n if (that.element && that.element.length) {\n that.element[0].removeAttribute('aria-activedescendant');\n }\n if (calendar) {\n cell = calendar._cell;\n cell.attr('aria-label', that._ariaTemplate({ current: date || calendar.current() }));\n that.element.attr('aria-activedescendant', cell.attr('id'));\n }\n }\n });\n ui.plugin(DatePicker);\n }(window.kendo.jQuery));\n return window.kendo;\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('kendo.floatinglabel', ['kendo.core'], f);\n}(function () {\n var __meta__ = {\n id: 'floatinglabel',\n name: 'FloatingLabel',\n category: 'framework',\n depends: ['core'],\n hidden: true\n };\n (function ($, undefined) {\n var kendo = window.kendo, Widget = kendo.ui.Widget, ui = kendo.ui, NS = '.kendoFloatingLabel', FLOATINGLABELCONTAINER = 'k-floating-label-container', EMPTY = 'k-state-empty', FOCUSED = 'k-state-focused', STATEDISABLED = 'k-state-disabled', NOCLICKCLASS = 'k-no-click', proxy = $.proxy;\n var FloatingLabel = Widget.extend({\n init: function (element, options) {\n var that = this;\n Widget.fn.init.call(that, element, options);\n options = $.extend(true, {}, options);\n that.refresh();\n that._editable({\n readonly: that.options.widget.options.readonly !== undefined ? that.options.widget.options.readonly : false,\n disable: that.options.widget.options.enable !== undefined ? !that.options.widget.options.enable : false\n });\n that.element.addClass(FLOATINGLABELCONTAINER);\n kendo.notify(that);\n },\n options: {\n name: 'FloatingLabel',\n widget: null\n },\n readonly: function (readonly) {\n this._editable({\n readonly: readonly === undefined ? true : readonly,\n disable: false\n });\n },\n enable: function (enable) {\n this._editable({\n readonly: false,\n disable: !(enable = enable === undefined ? true : enable)\n });\n },\n refresh: function () {\n var that = this;\n var element = that.element;\n element.removeClass(EMPTY).removeClass(FOCUSED);\n if (!that.options.widget.element.val()) {\n element.addClass(EMPTY);\n }\n if (document.activeElement === that.options.widget.element[0]) {\n element.addClass(FOCUSED);\n }\n },\n destroy: function () {\n var that = this;\n that.element.off(NS);\n Widget.fn.destroy.call(that);\n },\n _editable: function (options) {\n var that = this;\n var element = that.element;\n var disable = options.disable;\n var readonly = options.readonly;\n element.off(NS);\n if (!readonly && !disable) {\n element.removeClass(STATEDISABLED).removeClass(NOCLICKCLASS);\n element.on('focusin' + NS, proxy(that.refresh, that));\n element.on('focusout' + NS, proxy(that.refresh, that));\n } else {\n element.toggleClass(STATEDISABLED, disable).toggleClass(NOCLICKCLASS, readonly);\n }\n }\n });\n ui.plugin(FloatingLabel);\n }(window.kendo.jQuery));\n return window.kendo;\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('kendo.numerictextbox', [\n 'kendo.core',\n 'kendo.userevents',\n 'kendo.floatinglabel'\n ], f);\n}(function () {\n var __meta__ = {\n id: 'numerictextbox',\n name: 'NumericTextBox',\n category: 'web',\n description: 'The NumericTextBox widget can format and display numeric, percentage or currency textbox.',\n depends: [\n 'core',\n 'userevents',\n 'floatinglabel'\n ]\n };\n (function ($, undefined) {\n var kendo = window.kendo, caret = kendo.caret, keys = kendo.keys, ui = kendo.ui, Widget = ui.Widget, activeElement = kendo._activeElement, extractFormat = kendo._extractFormat, parse = kendo.parseFloat, placeholderSupported = kendo.support.placeholder, getCulture = kendo.getCulture, CHANGE = 'change', DISABLED = 'disabled', READONLY = 'readonly', INPUT = 'k-input', SPIN = 'spin', ns = '.kendoNumericTextBox', TOUCHEND = 'touchend', MOUSELEAVE = 'mouseleave' + ns, HOVEREVENTS = 'mouseenter' + ns + ' ' + MOUSELEAVE, DEFAULT = 'k-state-default', FOCUSED = 'k-state-focused', HOVER = 'k-state-hover', FOCUS = 'focus', POINT = '.', CLASS_ICON = 'k-icon', LABELCLASSES = 'k-label k-input-label', SELECTED = 'k-state-selected', STATEDISABLED = 'k-state-disabled', STATE_INVALID = 'k-state-invalid', ARIA_DISABLED = 'aria-disabled', INTEGER_REGEXP = /^(-)?(\\d*)$/, NULL = null, proxy = $.proxy, isPlainObject = $.isPlainObject, extend = $.extend;\n var NumericTextBox = Widget.extend({\n init: function (element, options) {\n var that = this, isStep = options && options.step !== undefined, min, max, step, value, disabled;\n var inputType;\n Widget.fn.init.call(that, element, options);\n options = that.options;\n element = that.element.on('focusout' + ns, proxy(that._focusout, that)).attr('role', 'spinbutton');\n options.placeholder = options.placeholder || element.attr('placeholder');\n min = that.min(element.attr('min'));\n max = that.max(element.attr('max'));\n step = that._parse(element.attr('step'));\n if (options.min === NULL && min !== NULL) {\n options.min = min;\n }\n if (options.max === NULL && max !== NULL) {\n options.max = max;\n }\n if (!isStep && step !== NULL) {\n options.step = step;\n }\n that._initialOptions = extend({}, options);\n inputType = element.attr('type');\n that._reset();\n that._wrapper();\n that._arrows();\n that._validation();\n that._input();\n if (!kendo.support.mobileOS) {\n that._text.on(FOCUS + ns, proxy(that._click, that));\n } else {\n that._text.on(TOUCHEND + ns + ' ' + FOCUS + ns, function () {\n if (kendo.support.browser.edge) {\n that._text.one(FOCUS + ns, function () {\n that._toggleText(false);\n element.focus();\n });\n } else {\n that._toggleText(false);\n element.focus();\n }\n });\n }\n element.attr('aria-valuemin', options.min !== NULL ? options.min * options.factor : options.min).attr('aria-valuemax', options.max !== NULL ? options.max * options.factor : options.max);\n options.format = extractFormat(options.format);\n value = options.value;\n if (value == NULL) {\n if (inputType == 'number') {\n value = parseFloat(element.val());\n } else {\n value = element.val();\n }\n }\n that.value(value);\n disabled = element.is('[disabled]') || $(that.element).parents('fieldset').is(':disabled');\n if (disabled) {\n that.enable(false);\n } else {\n that.readonly(element.is('[readonly]'));\n }\n that.angular('compile', function () {\n return { elements: that._text.get() };\n });\n that._label();\n kendo.notify(that);\n },\n options: {\n name: 'NumericTextBox',\n decimals: NULL,\n restrictDecimals: false,\n min: NULL,\n max: NULL,\n value: NULL,\n step: 1,\n round: true,\n culture: '',\n format: 'n',\n spinners: true,\n placeholder: '',\n factor: 1,\n upArrowText: 'Increase value',\n downArrowText: 'Decrease value',\n label: null\n },\n events: [\n CHANGE,\n SPIN\n ],\n _editable: function (options) {\n var that = this, element = that.element, disable = options.disable, readonly = options.readonly, text = that._text.add(element), wrapper = that._inputWrapper.off(HOVEREVENTS);\n that._toggleText(true);\n that._upArrowEventHandler.unbind('press');\n that._downArrowEventHandler.unbind('press');\n element.off('keydown' + ns).off('keyup' + ns).off('input' + ns).off('paste' + ns);\n if (that._inputLabel) {\n that._inputLabel.off(ns);\n }\n if (!readonly && !disable) {\n wrapper.addClass(DEFAULT).removeClass(STATEDISABLED).on(HOVEREVENTS, that._toggleHover);\n text.removeAttr(DISABLED).removeAttr(READONLY).attr(ARIA_DISABLED, false);\n that._upArrowEventHandler.bind('press', function (e) {\n e.preventDefault();\n that._spin(1);\n that._upArrow.addClass(SELECTED);\n });\n that._downArrowEventHandler.bind('press', function (e) {\n e.preventDefault();\n that._spin(-1);\n that._downArrow.addClass(SELECTED);\n });\n that.element.on('keydown' + ns, proxy(that._keydown, that)).on('keyup' + ns, proxy(that._keyup, that)).on('paste' + ns, proxy(that._paste, that)).on('input' + ns, proxy(that._inputHandler, that));\n if (that._inputLabel) {\n that._inputLabel.on('click' + ns, proxy(that.focus, that));\n }\n } else {\n wrapper.addClass(disable ? STATEDISABLED : DEFAULT).removeClass(disable ? DEFAULT : STATEDISABLED);\n text.attr(DISABLED, disable).attr(READONLY, readonly).attr(ARIA_DISABLED, disable);\n }\n },\n readonly: function (readonly) {\n var that = this;\n this._editable({\n readonly: readonly === undefined ? true : readonly,\n disable: false\n });\n if (that.floatingLabel) {\n that.floatingLabel.readonly(readonly === undefined ? true : readonly);\n }\n },\n enable: function (enable) {\n var that = this;\n this._editable({\n readonly: false,\n disable: !(enable = enable === undefined ? true : enable)\n });\n if (that.floatingLabel) {\n that.floatingLabel.enable(enable = enable === undefined ? true : enable);\n }\n },\n setOptions: function (options) {\n var that = this;\n Widget.fn.setOptions.call(that, options);\n that._arrowsWrap.toggle(that.options.spinners);\n that._inputWrapper.toggleClass('k-expand-padding', !that.options.spinners);\n that._text.prop('placeholder', that.options.placeholder);\n that._placeholder(that.options.placeholder);\n that.element.attr({\n 'aria-valuemin': that.options.min !== NULL ? that.options.min * that.options.factor : that.options.min,\n 'aria-valuemax': that.options.max !== NULL ? that.options.max * that.options.factor : that.options.max\n });\n that.options.format = extractFormat(that.options.format);\n if (options.value !== undefined) {\n that.value(options.value);\n }\n },\n destroy: function () {\n var that = this;\n if (that._inputLabel) {\n that._inputLabel.off(ns);\n if (that.floatingLabel) {\n that.floatingLabel.destroy();\n }\n }\n that.element.add(that._text).add(that._upArrow).add(that._downArrow).add(that._inputWrapper).off(ns);\n that._upArrowEventHandler.destroy();\n that._downArrowEventHandler.destroy();\n if (that._form) {\n that._form.off('reset', that._resetHandler);\n }\n Widget.fn.destroy.call(that);\n },\n min: function (value) {\n return this._option('min', value);\n },\n max: function (value) {\n return this._option('max', value);\n },\n step: function (value) {\n return this._option('step', value);\n },\n value: function (value) {\n var that = this, adjusted;\n if (value === undefined) {\n return that._value;\n }\n value = that._parse(value);\n adjusted = that._adjust(value);\n if (value !== adjusted) {\n return;\n }\n that._update(value);\n that._old = that._value;\n },\n focus: function () {\n this._focusin();\n },\n _adjust: function (value) {\n var that = this, options = that.options, min = options.min, max = options.max;\n if (value === NULL) {\n return value;\n }\n if (min !== NULL && value < min) {\n value = min;\n } else if (max !== NULL && value > max) {\n value = max;\n }\n return value;\n },\n _arrows: function () {\n var that = this, arrows, _release = function () {\n clearTimeout(that._spinning);\n arrows.removeClass(SELECTED);\n }, options = that.options, spinners = options.spinners, element = that.element;\n arrows = element.siblings('.' + CLASS_ICON);\n if (!arrows[0]) {\n arrows = $(buttonHtml('increase', options.upArrowText) + buttonHtml('decrease', options.downArrowText)).insertAfter(element);\n that._arrowsWrap = arrows.wrapAll('').parent();\n }\n if (!spinners) {\n arrows.parent().toggle(spinners);\n that._inputWrapper.addClass('k-expand-padding');\n }\n that._upArrow = arrows.eq(0);\n that._upArrowEventHandler = new kendo.UserEvents(that._upArrow, { release: _release });\n that._downArrow = arrows.eq(1);\n that._downArrowEventHandler = new kendo.UserEvents(that._downArrow, { release: _release });\n },\n _validation: function () {\n var that = this;\n var element = that.element;\n that._validationIcon = $('').hide().insertAfter(element);\n },\n _blur: function () {\n var that = this;\n that._toggleText(true);\n that._change(that.element.val());\n },\n _click: function (e) {\n var that = this;\n clearTimeout(that._focusing);\n that._focusing = setTimeout(function () {\n var input = e.target, idx = caret(input)[0], value = input.value.substring(0, idx), format = that._format(that.options.format), group = format[','], result, groupRegExp, extractRegExp, caretPosition = 0;\n if (group) {\n groupRegExp = new RegExp('\\\\' + group, 'g');\n extractRegExp = new RegExp('(^(-)$)|(^(-)?([\\\\d\\\\' + group + ']+)(\\\\' + format[POINT] + ')?(\\\\d+)?)');\n }\n if (extractRegExp) {\n result = extractRegExp.exec(value);\n }\n if (result) {\n caretPosition = result[0].replace(groupRegExp, '').length;\n if (value.indexOf('(') != -1 && that._value < 0) {\n caretPosition++;\n }\n }\n that._focusin();\n caret(that.element[0], caretPosition);\n });\n },\n _change: function (value) {\n var that = this, factor = that.options.factor;\n if (factor && factor !== 1) {\n value = kendo.parseFloat(value);\n if (value !== null) {\n value = value / factor;\n }\n }\n that._update(value);\n value = that._value;\n if (that._old != value) {\n that._old = value;\n if (!that._typing) {\n that.element.trigger(CHANGE);\n }\n that.trigger(CHANGE);\n }\n that._typing = false;\n },\n _culture: function (culture) {\n return culture || getCulture(this.options.culture);\n },\n _focusin: function () {\n var that = this;\n that._inputWrapper.addClass(FOCUSED);\n that._toggleText(false);\n that.element[0].focus();\n },\n _focusout: function () {\n var that = this;\n clearTimeout(that._focusing);\n that._inputWrapper.removeClass(FOCUSED).removeClass(HOVER);\n that._blur();\n that._removeInvalidState();\n },\n _format: function (format, culture) {\n var numberFormat = this._culture(culture).numberFormat;\n format = format.toLowerCase();\n if (format.indexOf('c') > -1) {\n numberFormat = numberFormat.currency;\n } else if (format.indexOf('p') > -1) {\n numberFormat = numberFormat.percent;\n }\n return numberFormat;\n },\n _input: function () {\n var that = this, options = that.options, CLASSNAME = 'k-formatted-value', element = that.element.addClass(INPUT).show()[0], accessKey = element.accessKey, wrapper = that.wrapper, text;\n text = wrapper.find(POINT + CLASSNAME);\n if (!text[0]) {\n text = $('').insertBefore(element).addClass(CLASSNAME).attr('aria-hidden', 'true');\n }\n try {\n element.setAttribute('type', 'text');\n } catch (e) {\n element.type = 'text';\n }\n text[0].title = element.title;\n text[0].tabIndex = element.tabIndex;\n text[0].style.cssText = element.style.cssText;\n text.prop('placeholder', options.placeholder);\n if (accessKey) {\n text.attr('accesskey', accessKey);\n element.accessKey = '';\n }\n that._text = text.addClass(element.className).attr({\n 'role': 'spinbutton',\n 'aria-valuemin': options.min !== NULL ? options.min * options.factor : options.min,\n 'aria-valuemax': options.max !== NULL ? options.max * options.factor : options.max,\n 'autocomplete': 'off'\n });\n },\n _keydown: function (e) {\n var that = this, key = e.keyCode;\n if (key === keys.NUMPAD_DOT) {\n that._numPadDot = true;\n }\n if (key == keys.DOWN) {\n that._step(-1);\n return;\n } else if (key == keys.UP) {\n that._step(1);\n return;\n } else if (key == keys.ENTER) {\n that._change(that.element.val());\n return;\n }\n if (key != keys.TAB) {\n that._typing = true;\n }\n that._cachedCaret = caret(that.element);\n },\n _keyup: function () {\n this._removeInvalidState();\n },\n _inputHandler: function () {\n var element = this.element;\n var value = element.val();\n var min = this.options.min;\n var numberFormat = this._format(this.options.format);\n var decimalSeparator = numberFormat[POINT];\n var minInvalid = min !== null && min >= 0 && value.charAt(0) === '-';\n if (this._numPadDot && decimalSeparator !== POINT) {\n value = value.replace(POINT, decimalSeparator);\n this.element.val(value);\n this._numPadDot = false;\n }\n if (this._numericRegex(numberFormat).test(value) && !minInvalid) {\n this._oldText = value;\n } else {\n this._blinkInvalidState();\n this.element.val(this._oldText);\n if (this._cachedCaret) {\n caret(element, this._cachedCaret[0]);\n this._cachedCaret = null;\n }\n }\n },\n _blinkInvalidState: function () {\n var that = this;\n that._addInvalidState();\n clearTimeout(that._invalidStateTimeout);\n that._invalidStateTimeout = setTimeout(proxy(that._removeInvalidState, that), 100);\n },\n _addInvalidState: function () {\n var that = this;\n that._inputWrapper.addClass(STATE_INVALID);\n that._validationIcon.show();\n },\n _removeInvalidState: function () {\n var that = this;\n that._inputWrapper.removeClass(STATE_INVALID);\n that._validationIcon.hide();\n that._invalidStateTimeout = null;\n },\n _numericRegex: function (numberFormat) {\n var that = this;\n var separator = numberFormat[POINT];\n var precision = that.options.decimals;\n var fractionRule = '*';\n if (separator === POINT) {\n separator = '\\\\' + separator;\n }\n if (precision === NULL) {\n precision = numberFormat.decimals;\n }\n if (precision === 0 && that.options.restrictDecimals) {\n return INTEGER_REGEXP;\n }\n if (that.options.restrictDecimals) {\n fractionRule = '{0,' + precision + '}';\n }\n if (that._separator !== separator) {\n that._separator = separator;\n that._floatRegExp = new RegExp('^(-)?(((\\\\d+(' + separator + '\\\\d' + fractionRule + ')?)|(' + separator + '\\\\d' + fractionRule + ')))?$');\n }\n return that._floatRegExp;\n },\n _paste: function (e) {\n var that = this;\n var element = e.target;\n var value = element.value;\n var numberFormat = that._format(that.options.format);\n setTimeout(function () {\n var result = that._parse(element.value);\n if (result === NULL) {\n that._update(value);\n } else {\n element.value = result.toString().replace(POINT, numberFormat[POINT]);\n if (that._adjust(result) !== result || !that._numericRegex(numberFormat).test(element.value)) {\n that._update(value);\n }\n }\n });\n },\n _option: function (option, value) {\n var that = this, element = that.element, options = that.options;\n if (value === undefined) {\n return options[option];\n }\n value = that._parse(value);\n if (!value && option === 'step') {\n return;\n }\n options[option] = value;\n element.add(that._text).attr('aria-value' + option, value);\n element.attr(option, value);\n },\n _spin: function (step, timeout) {\n var that = this;\n timeout = timeout || 500;\n clearTimeout(that._spinning);\n that._spinning = setTimeout(function () {\n that._spin(step, 50);\n }, timeout);\n that._step(step);\n },\n _step: function (step) {\n var that = this, element = that.element, originalValue = that._value, value = that._parse(element.val()) || 0, precision = that.options.decimals || 2;\n if (activeElement() != element[0]) {\n that._focusin();\n }\n if (that.options.factor && value) {\n value = value / that.options.factor;\n }\n value = +(value + that.options.step * step).toFixed(precision);\n value = that._adjust(value);\n that._update(value);\n that._typing = false;\n if (originalValue !== value) {\n that.trigger(SPIN);\n }\n },\n _toggleHover: function (e) {\n $(e.currentTarget).toggleClass(HOVER, e.type === 'mouseenter');\n },\n _toggleText: function (toggle) {\n var that = this;\n that._text.toggle(toggle);\n that.element.toggle(!toggle);\n },\n _parse: function (value, culture) {\n return parse(value, this._culture(culture), this.options.format);\n },\n _round: function (value, precision) {\n var rounder = this.options.round ? kendo._round : truncate;\n return rounder(value, precision);\n },\n _update: function (value) {\n var that = this, options = that.options, factor = options.factor, format = options.format, decimals = options.decimals, culture = that._culture(), numberFormat = that._format(format, culture), isNotNull;\n if (decimals === NULL) {\n decimals = numberFormat.decimals;\n }\n value = that._parse(value, culture);\n isNotNull = value !== NULL;\n if (isNotNull) {\n value = parseFloat(that._round(value, decimals), 10);\n }\n that._value = value = that._adjust(value);\n that._placeholder(kendo.toString(value, format, culture));\n if (isNotNull) {\n if (factor) {\n value = parseFloat(that._round(value * factor, decimals), 10);\n }\n value = value.toString();\n if (value.indexOf('e') !== -1) {\n value = that._round(+value, decimals);\n }\n value = value.replace(POINT, numberFormat[POINT]);\n } else {\n value = null;\n }\n that.element.val(value);\n that._oldText = value;\n that.element.add(that._text).attr('aria-valuenow', value);\n },\n _placeholder: function (value) {\n var input = this._text;\n input.val(value);\n if (!placeholderSupported && !value) {\n input.val(this.options.placeholder);\n }\n input.attr('title', this.element.attr('title') || input.val());\n },\n _label: function () {\n var that = this;\n var element = that.element;\n var options = that.options;\n var id = element.attr('id');\n var floating;\n var labelText;\n if (options.label !== null) {\n floating = isPlainObject(options.label) ? options.label.floating : false;\n labelText = isPlainObject(options.label) ? options.label.content : options.label;\n if (floating) {\n that._floatingLabelContainer = that.wrapper.wrap('').parent();\n that.floatingLabel = new kendo.ui.FloatingLabel(that._floatingLabelContainer, { widget: that });\n }\n if (kendo.isFunction(labelText)) {\n labelText = labelText.call(that);\n }\n if (!labelText) {\n labelText = '';\n }\n if (!id) {\n id = options.name + '_' + kendo.guid();\n element.attr('id', id);\n }\n that._inputLabel = $('\\'').insertBefore(that.wrapper);\n if (that.element.attr('disabled') === undefined && that.element.attr('readonly') === undefined) {\n that._inputLabel.on('click' + ns, proxy(that.focus, that));\n }\n }\n },\n _wrapper: function () {\n var that = this, element = that.element, DOMElement = element[0], wrapper;\n wrapper = element.parents('.k-numerictextbox');\n if (!wrapper.is('span.k-numerictextbox')) {\n wrapper = element.hide().wrap('').parent();\n wrapper = wrapper.wrap('').parent();\n }\n wrapper[0].style.cssText = DOMElement.style.cssText;\n DOMElement.style.width = '';\n that.wrapper = wrapper.addClass('k-widget k-numerictextbox').addClass(DOMElement.className).removeClass('input-validation-error').css('display', '');\n that._inputWrapper = $(wrapper[0].firstChild);\n },\n _reset: function () {\n var that = this, element = that.element, formId = element.attr('form'), form = formId ? $('#' + formId) : element.closest('form');\n if (form[0]) {\n that._resetHandler = function () {\n setTimeout(function () {\n that.value(element[0].value);\n that.max(that._initialOptions.max);\n that.min(that._initialOptions.min);\n });\n };\n that._form = form.on('reset', that._resetHandler);\n }\n }\n });\n function buttonHtml(direction, text) {\n var className = 'k-i-arrow-' + (direction === 'increase' ? '60-up' : '60-down');\n return '' + '' + '';\n }\n function truncate(value, precision) {\n var parts = parseFloat(value, 10).toString().split(POINT);\n if (parts[1]) {\n parts[1] = parts[1].substring(0, precision);\n }\n return parts.join(POINT);\n }\n ui.plugin(NumericTextBox);\n }(window.kendo.jQuery));\n return window.kendo;\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('kendo.validator', ['kendo.core'], f);\n}(function () {\n var __meta__ = {\n id: 'validator',\n name: 'Validator',\n category: 'web',\n description: 'The Validator offers an easy way to do a client-side form validation.',\n depends: ['core']\n };\n (function ($, undefined) {\n var kendo = window.kendo, Widget = kendo.ui.Widget, NS = '.kendoValidator', INVALIDMSG = 'k-invalid-msg', invalidMsgRegExp = new RegExp(INVALIDMSG, 'i'), INVALIDINPUT = 'k-invalid', VALIDINPUT = 'k-valid', VALIDATIONSUMMARY = 'k-validation-summary', INVALIDLABEL = 'k-text-error', MESSAGEBOX = 'k-messagebox k-messagebox-error', ARIAINVALID = 'aria-invalid', ARIADESCRIBEDBY = 'aria-describedby', emailRegExp = /^[a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/i, urlRegExp = /^(https?|ftp):\\/\\/(((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:)*@)?(((\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5]))|((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.?)(:\\d*)?)(\\/((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)+(\\/(([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)*)*)?)?(\\?((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)|[\\uE000-\\uF8FF]|\\/|\\?)*)?(\\#((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)|\\/|\\?)*)?$/i, INPUTSELECTOR = ':input:not(:button,[type=submit],[type=reset],[disabled],[readonly])', CHECKBOXSELECTOR = ':checkbox:not([disabled],[readonly])', NUMBERINPUTSELECTOR = '[type=number],[type=range]', BLUR = 'blur', NAME = 'name', FORM = 'form', NOVALIDATE = 'novalidate', VALIDATE = 'validate', CHANGE = 'change', VALIDATE_INPUT = 'validateInput', proxy = $.proxy, patternMatcher = function (value, pattern) {\n if (typeof pattern === 'string') {\n pattern = new RegExp('^(?:' + pattern + ')$');\n }\n return pattern.test(value);\n }, matcher = function (input, selector, pattern) {\n var value = input.val();\n if (input.filter(selector).length && value !== '') {\n return patternMatcher(value, pattern);\n }\n return true;\n }, hasAttribute = function (input, name) {\n if (input.length) {\n return input[0].attributes[name] != null;\n }\n return false;\n };\n if (!kendo.ui.validator) {\n kendo.ui.validator = {\n rules: {},\n messages: {},\n allowSubmit: $.noop,\n validateOnInit: $.noop\n };\n }\n function resolveRules(element) {\n var resolvers = kendo.ui.validator.ruleResolvers || {}, rules = {}, name;\n for (name in resolvers) {\n $.extend(true, rules, resolvers[name].resolve(element));\n }\n return rules;\n }\n function decode(value) {\n return value.replace(/&/g, '&').replace(/"/g, '\"').replace(/'/g, '\\'').replace(/</g, '<').replace(/>/g, '>');\n }\n function numberOfDecimalDigits(value) {\n value = (value + '').split('.');\n if (value.length > 1) {\n return value[1].length;\n }\n return 0;\n }\n function parseHtml(text) {\n if ($.parseHTML) {\n return $($.parseHTML(text));\n }\n return $(text);\n }\n function searchForMessageContainer(elements, fieldName) {\n var containers = $(), element, attr;\n for (var idx = 0, length = elements.length; idx < length; idx++) {\n element = elements[idx];\n if (invalidMsgRegExp.test(element.className)) {\n attr = element.getAttribute(kendo.attr('for'));\n if (attr === fieldName) {\n containers = containers.add(element);\n }\n }\n }\n return containers;\n }\n var SUMMARYTEMPLATE = '';\n var Validator = Widget.extend({\n init: function (element, options) {\n var that = this, resolved = resolveRules(element), validateAttributeSelector = '[' + kendo.attr('validate') + '!=false]';\n options = options || {};\n options.rules = $.extend({}, kendo.ui.validator.rules, resolved.rules, options.rules);\n options.messages = $.extend({}, kendo.ui.validator.messages, resolved.messages, options.messages);\n Widget.fn.init.call(that, element, options);\n that._errorTemplate = kendo.template(that.options.errorTemplate);\n that._summaryTemplate = kendo.template(that.options.validationSummary.template || SUMMARYTEMPLATE);\n if (that.element.is(FORM)) {\n that.element.attr(NOVALIDATE, NOVALIDATE);\n }\n that._inputSelector = INPUTSELECTOR + validateAttributeSelector;\n that._checkboxSelector = CHECKBOXSELECTOR + validateAttributeSelector;\n that._errors = {};\n that._attachEvents();\n that._isValidated = false;\n if (that._validateOnInit()) {\n that.validate();\n }\n },\n events: [\n VALIDATE,\n CHANGE,\n VALIDATE_INPUT\n ],\n options: {\n name: 'Validator',\n errorTemplate: '#= message #',\n messages: {\n required: '{0} is required',\n pattern: '{0} is not valid',\n min: '{0} should be greater than or equal to {1}',\n max: '{0} should be smaller than or equal to {1}',\n step: '{0} is not valid',\n email: '{0} is not valid email',\n url: '{0} is not valid URL',\n date: '{0} is not valid date',\n dateCompare: 'End date should be greater than or equal to the start date'\n },\n rules: {\n required: function (input) {\n var checkbox = input.filter('[type=checkbox]').length && !input.is(':checked'), value = input.val();\n return !(hasAttribute(input, 'required') && (!value || value === '' || value.length === 0 || checkbox));\n },\n pattern: function (input) {\n if (input.filter('[type=text],[type=email],[type=url],[type=tel],[type=search],[type=password]').filter('[pattern]').length && input.val() !== '') {\n return patternMatcher(input.val(), input.attr('pattern'));\n }\n return true;\n },\n min: function (input) {\n if (input.filter(NUMBERINPUTSELECTOR + ',[' + kendo.attr('type') + '=number]').filter('[min]').length && input.val() !== '') {\n var min = parseFloat(input.attr('min')) || 0, val = kendo.parseFloat(input.val());\n return min <= val;\n }\n return true;\n },\n max: function (input) {\n if (input.filter(NUMBERINPUTSELECTOR + ',[' + kendo.attr('type') + '=number]').filter('[max]').length && input.val() !== '') {\n var max = parseFloat(input.attr('max')) || 0, val = kendo.parseFloat(input.val());\n return max >= val;\n }\n return true;\n },\n step: function (input) {\n if (input.filter(NUMBERINPUTSELECTOR + ',[' + kendo.attr('type') + '=number]').filter('[step]').length && input.val() !== '') {\n var min = parseFloat(input.attr('min')) || 0, step = parseFloat(input.attr('step')) || 1, val = parseFloat(input.val()), decimals = numberOfDecimalDigits(step), raise;\n if (decimals) {\n raise = Math.pow(10, decimals);\n return Math.floor((val - min) * raise) % (step * raise) / Math.pow(100, decimals) === 0;\n }\n return (val - min) % step === 0;\n }\n return true;\n },\n email: function (input) {\n return matcher(input, '[type=email],[' + kendo.attr('type') + '=email]', emailRegExp);\n },\n url: function (input) {\n return matcher(input, '[type=url],[' + kendo.attr('type') + '=url]', urlRegExp);\n },\n date: function (input) {\n if (input.filter('[type^=date],[' + kendo.attr('type') + '=date]').length && input.val() !== '') {\n return kendo.parseDate(input.val(), input.attr(kendo.attr('format'))) !== null;\n }\n return true;\n }\n },\n validateOnBlur: true,\n validationSummary: false\n },\n _allowSubmit: function () {\n return kendo.ui.validator.allowSubmit(this.element, this.errors());\n },\n _validateOnInit: function () {\n return kendo.ui.validator.validateOnInit(this.element);\n },\n destroy: function () {\n Widget.fn.destroy.call(this);\n this.element.off(NS);\n if (this.validationSummary) {\n this.validationSummary.off(NS);\n this.validationSummary = null;\n }\n },\n value: function () {\n if (!this._isValidated) {\n return false;\n }\n return this.errors().length === 0;\n },\n _submit: function (e) {\n if (!this.validate() && !this._allowSubmit()) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n e.preventDefault();\n return false;\n }\n return true;\n },\n _checkElement: function (element) {\n var state = this.value();\n this.validateInput(element);\n if (this.value() !== state) {\n this.trigger(CHANGE);\n }\n },\n _attachEvents: function () {\n var that = this;\n if (that.element.is(FORM)) {\n that.element.on('submit' + NS, proxy(that._submit, that));\n }\n if (that.options.validateOnBlur) {\n if (!that.element.is(INPUTSELECTOR)) {\n that.element.on(BLUR + NS, that._inputSelector, function () {\n that._checkElement($(this));\n });\n that.element.on('click' + NS, that._checkboxSelector, function () {\n that._checkElement($(this));\n });\n } else {\n that.element.on(BLUR + NS, function () {\n that._checkElement(that.element);\n });\n if (that.element.is(CHECKBOXSELECTOR)) {\n that.element.on('click' + NS, function () {\n that._checkElement(that.element);\n });\n }\n }\n }\n },\n validate: function () {\n var inputs;\n var idx;\n var result = false;\n var length;\n var isValid = this.value();\n this._errors = {};\n if (!this.element.is(INPUTSELECTOR)) {\n var invalid = false;\n inputs = this.element.find(this._inputSelector);\n for (idx = 0, length = inputs.length; idx < length; idx++) {\n if (!this.validateInput(inputs.eq(idx))) {\n invalid = true;\n }\n }\n result = !invalid;\n } else {\n result = this.validateInput(this.element);\n }\n if (this.options.validationSummary && !isValid) {\n this.showValidationSummary();\n }\n this.trigger(VALIDATE, {\n valid: result,\n errors: this.errors()\n });\n if (isValid !== result) {\n this.trigger(CHANGE);\n }\n return result;\n },\n validateInput: function (input) {\n input = $(input);\n this._isValidated = true;\n var that = this, template = that._errorTemplate, result = that._checkValidity(input), valid = result.valid, className = '.' + INVALIDMSG, fieldName = input.attr(NAME) || '', lbl = that._findMessageContainer(fieldName).add(input.next(className).filter(function () {\n var element = $(this);\n if (element.filter('[' + kendo.attr('for') + ']').length) {\n return element.attr(kendo.attr('for')) === fieldName;\n }\n return true;\n })).addClass('k-hidden'), messageText = !valid ? that._extractMessage(input, result.key) : '', messageLabel = !valid ? parseHtml(template({\n message: decode(messageText),\n field: fieldName\n })) : '', wasValid = !input.attr(ARIAINVALID);\n input.removeAttr(ARIAINVALID);\n if (!valid) {\n that._errors[fieldName] = messageText;\n var lblId = lbl.attr('id');\n that._decorateMessageContainer(messageLabel, fieldName);\n if (lblId) {\n messageLabel.attr('id', lblId);\n }\n if (lbl.length !== 0) {\n lbl.replaceWith(messageLabel);\n } else {\n var widgetInstance = kendo.widgetInstance(input);\n var parentElement = input.parent().get(0);\n var nextElement = input.next().get(0);\n if (parentElement && parentElement.nodeName === 'LABEL') {\n messageLabel.insertAfter(parentElement);\n } else if (nextElement && nextElement.nodeName === 'LABEL') {\n messageLabel.insertAfter(nextElement);\n } else if (widgetInstance && widgetInstance.wrapper) {\n messageLabel.insertAfter(widgetInstance.wrapper);\n } else {\n messageLabel.insertAfter(input);\n }\n }\n messageLabel.removeClass('k-hidden');\n input.attr(ARIAINVALID, true);\n } else {\n delete that._errors[fieldName];\n }\n if (wasValid !== valid) {\n this.trigger(VALIDATE_INPUT, {\n valid: valid,\n input: input,\n error: messageText,\n field: fieldName\n });\n }\n input.toggleClass(INVALIDINPUT, !valid);\n input.toggleClass(VALIDINPUT, valid);\n if (kendo.widgetInstance(input)) {\n var inputWrap = kendo.widgetInstance(input)._inputWrapper;\n var inputLabel = kendo.widgetInstance(input)._inputLabel;\n if (inputWrap) {\n inputWrap.toggleClass(INVALIDINPUT, !valid);\n inputWrap.toggleClass(VALIDINPUT, valid);\n }\n if (inputLabel) {\n inputLabel.toggleClass(INVALIDLABEL, !valid);\n }\n }\n if (wasValid !== valid) {\n var errorId = messageLabel ? messageLabel.attr('id') : lbl.attr('id');\n that._associateMessageContainer(input, errorId);\n if (this.options.validationSummary && this.options.validateOnBlur) {\n this.showValidationSummary();\n }\n }\n return valid;\n },\n hideMessages: function () {\n var that = this, className = '.' + INVALIDMSG, element = that.element;\n that._disassociateMessageContainers();\n if (!element.is(INPUTSELECTOR)) {\n element.find(className).addClass('k-hidden');\n } else {\n element.next(className).addClass('k-hidden');\n }\n },\n reset: function () {\n var that = this, inputs = that.element.find('.' + INVALIDINPUT);\n that._errors = [];\n that.hideMessages();\n that.hideValidationSummary();\n inputs.removeAttr(ARIAINVALID);\n inputs.removeClass(INVALIDINPUT);\n },\n _findMessageContainer: function (fieldName) {\n var locators = kendo.ui.validator.messageLocators, name, containers = $();\n for (var idx = 0, length = this.element.length; idx < length; idx++) {\n containers = containers.add(searchForMessageContainer(this.element[idx].getElementsByTagName('*'), fieldName));\n }\n for (name in locators) {\n containers = containers.add(locators[name].locate(this.element, fieldName));\n }\n return containers;\n },\n _decorateMessageContainer: function (container, fieldName) {\n var locators = kendo.ui.validator.messageLocators, name;\n container.addClass(INVALIDMSG).attr(kendo.attr('for'), fieldName || '');\n if (!container.attr('id')) {\n container.attr('id', fieldName + '-error');\n }\n for (name in locators) {\n locators[name].decorate(container, fieldName);\n }\n },\n _extractMessage: function (input, ruleKey) {\n var that = this, customMessage = that.options.messages[ruleKey], fieldName = input.attr(NAME), nonDefaultMessage;\n if (!kendo.ui.Validator.prototype.options.messages[ruleKey]) {\n nonDefaultMessage = kendo.isFunction(customMessage) ? customMessage(input) : customMessage;\n }\n customMessage = kendo.isFunction(customMessage) ? customMessage(input) : customMessage;\n return kendo.format(input.attr(kendo.attr(ruleKey + '-msg')) || input.attr('validationMessage') || nonDefaultMessage || customMessage || input.attr('title') || '', fieldName, input.attr(ruleKey) || input.attr(kendo.attr(ruleKey)));\n },\n _checkValidity: function (input) {\n var rules = this.options.rules, rule;\n for (rule in rules) {\n if (!rules[rule].call(this, input)) {\n return {\n valid: false,\n key: rule\n };\n }\n }\n return { valid: true };\n },\n errors: function () {\n var results = [], errors = this._errors, error;\n for (error in errors) {\n results.push(errors[error]);\n }\n return results;\n },\n setOptions: function (options) {\n if (options.validationSummary) {\n this.hideValidationSummary();\n }\n kendo.deepExtend(this.options, options);\n this.destroy();\n this.init(this.element, this.options);\n this._setEvents(this.options);\n },\n _getInputNames: function () {\n var that = this, inputs = that.element.find(that._inputSelector), sorted = [];\n for (var idx = 0, length = inputs.length; idx < length; idx++) {\n var input = $(inputs[idx]);\n if (hasAttribute(input, NAME)) {\n sorted.push(input.attr(NAME));\n }\n }\n return sorted;\n },\n _associateMessageContainer: function (input, errorId) {\n var nextFocusable = kendo.getWidgetFocusableElement(input);\n if (!nextFocusable || !errorId) {\n return;\n }\n kendo.toggleAttribute(nextFocusable, ARIADESCRIBEDBY, errorId);\n },\n _disassociateMessageContainers: function () {\n var that = this, inputs = that.element.find('.' + INVALIDINPUT).addBack(), input, errorId;\n for (var i = 0; i < inputs.length; i += 1) {\n input = $(inputs[i]);\n if (input.is('input')) {\n errorId = that._findMessageContainer(input.attr(NAME)).add(input.next('.' + INVALIDMSG)).attr('id');\n that._associateMessageContainer(input, errorId);\n }\n }\n },\n _errorsByName: function () {\n var that = this, inputNames = that._getInputNames(), sorted = [];\n for (var i = 0; i < inputNames.length; i += 1) {\n var name = inputNames[i];\n if (that._errors[name]) {\n sorted.push({\n field: name,\n message: that._errors[name]\n });\n }\n }\n return sorted;\n },\n _renderSummary: function () {\n var that = this, options = this.options.validationSummary, element = this.element, prevElement = element.prev(), container;\n if (options.container) {\n container = $(options.container);\n } else if (prevElement && prevElement.hasClass(VALIDATIONSUMMARY)) {\n container = prevElement;\n } else {\n container = $('
          ').insertBefore(that.element);\n }\n container.addClass([\n VALIDATIONSUMMARY,\n MESSAGEBOX\n ].join(' '));\n container.attr('role', 'alert');\n container.on('click' + NS, proxy(that._summaryClick, that));\n return container;\n },\n _summaryClick: function (e) {\n e.preventDefault();\n var that = this, link = $(e.target), target = that.element.find('[name=\\'' + link.data('field') + '\\']'), nextFocusable;\n if (!target.length) {\n return;\n }\n nextFocusable = kendo.getWidgetFocusableElement(target);\n if (nextFocusable) {\n nextFocusable.focus();\n }\n },\n showValidationSummary: function () {\n var that = this, summary = that.validationSummary, errors = that._errorsByName(), errorsList;\n if (!summary) {\n summary = that.validationSummary = that._renderSummary();\n }\n errorsList = parseHtml(that._summaryTemplate({ errors: errors }));\n summary.html(errorsList);\n summary.toggleClass('k-hidden', !errors.length);\n },\n hideValidationSummary: function () {\n var that = this, summary = that.validationSummary;\n if (!summary) {\n return;\n }\n summary.addClass('k-hidden');\n }\n });\n kendo.ui.plugin(Validator);\n }(window.kendo.jQuery));\n return window.kendo;\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('kendo.binder', [\n 'kendo.core',\n 'kendo.data'\n ], f);\n}(function () {\n var __meta__ = {\n id: 'binder',\n name: 'MVVM',\n category: 'framework',\n description: 'Model View ViewModel (MVVM) is a design pattern which helps developers separate the Model (the data) from the View (the UI).',\n depends: [\n 'core',\n 'data'\n ]\n };\n (function ($, undefined) {\n var kendo = window.kendo, Observable = kendo.Observable, ObservableObject = kendo.data.ObservableObject, ObservableArray = kendo.data.ObservableArray, toString = {}.toString, binders = {}, Class = kendo.Class, proxy = $.proxy, VALUE = 'value', SOURCE = 'source', EVENTS = 'events', CHECKED = 'checked', CSS = 'css', deleteExpando = true, FUNCTION = 'function', CHANGE = 'change';\n (function () {\n var a = document.createElement('a');\n try {\n delete a.test;\n } catch (e) {\n deleteExpando = false;\n }\n }());\n var Binding = Observable.extend({\n init: function (parents, path) {\n var that = this;\n Observable.fn.init.call(that);\n that.source = parents[0];\n that.parents = parents;\n that.path = path;\n that.dependencies = {};\n that.dependencies[path] = true;\n that.observable = that.source instanceof Observable;\n that._access = function (e) {\n that.dependencies[e.field] = true;\n };\n if (that.observable) {\n that._change = function (e) {\n that.change(e);\n };\n that.source.bind(CHANGE, that._change);\n }\n },\n _parents: function () {\n var parents = this.parents;\n var value = this.get();\n if (value && typeof value.parent == 'function') {\n var parent = value.parent();\n if ($.inArray(parent, parents) < 0) {\n parents = [parent].concat(parents);\n }\n }\n return parents;\n },\n change: function (e) {\n var dependency, ch, field = e.field, that = this;\n if (that.path === 'this') {\n that.trigger(CHANGE, e);\n } else {\n for (dependency in that.dependencies) {\n if (dependency.indexOf(field) === 0) {\n ch = dependency.charAt(field.length);\n if (!ch || ch === '.' || ch === '[') {\n that.trigger(CHANGE, e);\n break;\n }\n }\n }\n }\n },\n start: function (source) {\n source.bind('get', this._access);\n },\n stop: function (source) {\n source.unbind('get', this._access);\n },\n get: function () {\n var that = this, source = that.source, index = 0, path = that.path, result = source;\n if (!that.observable) {\n return result;\n }\n that.start(that.source);\n result = source.get(path);\n while (result === undefined && source) {\n source = that.parents[++index];\n if (source instanceof ObservableObject) {\n result = source.get(path);\n }\n }\n if (result === undefined) {\n source = that.source;\n while (result === undefined && source) {\n source = source.parent();\n if (source instanceof ObservableObject) {\n result = source.get(path);\n }\n }\n }\n if (typeof result === 'function') {\n index = path.lastIndexOf('.');\n if (index > 0) {\n source = source.get(path.substring(0, index));\n }\n that.start(source);\n if (source !== that.source) {\n result = result.call(source, that.source);\n } else {\n result = result.call(source);\n }\n that.stop(source);\n }\n if (source && source !== that.source) {\n that.currentSource = source;\n source.unbind(CHANGE, that._change).bind(CHANGE, that._change);\n }\n that.stop(that.source);\n return result;\n },\n set: function (value) {\n var source = this.currentSource || this.source;\n var field = kendo.getter(this.path)(source);\n if (typeof field === 'function') {\n if (source !== this.source) {\n field.call(source, this.source, value);\n } else {\n field.call(source, value);\n }\n } else {\n source.set(this.path, value);\n }\n },\n destroy: function () {\n if (this.observable) {\n this.source.unbind(CHANGE, this._change);\n if (this.currentSource) {\n this.currentSource.unbind(CHANGE, this._change);\n }\n }\n this.unbind();\n }\n });\n var EventBinding = Binding.extend({\n get: function () {\n var source = this.source, path = this.path, index = 0, handler;\n handler = source.get(path);\n while (!handler && source) {\n source = this.parents[++index];\n if (source instanceof ObservableObject) {\n handler = source.get(path);\n }\n }\n return proxy(handler, source);\n }\n });\n var TemplateBinding = Binding.extend({\n init: function (source, path, template) {\n var that = this;\n Binding.fn.init.call(that, source, path);\n that.template = template;\n },\n render: function (value) {\n var html;\n this.start(this.source);\n html = kendo.render(this.template, value);\n this.stop(this.source);\n return html;\n }\n });\n var Binder = Class.extend({\n init: function (element, bindings, options) {\n this.element = element;\n this.bindings = bindings;\n this.options = options;\n },\n bind: function (binding, attribute) {\n var that = this;\n binding = attribute ? binding[attribute] : binding;\n binding.bind(CHANGE, function (e) {\n that.refresh(attribute || e);\n });\n that.refresh(attribute);\n },\n destroy: function () {\n }\n });\n var TypedBinder = Binder.extend({\n dataType: function () {\n var dataType = this.element.getAttribute('data-type') || this.element.type || 'text';\n return dataType.toLowerCase();\n },\n parsedValue: function () {\n return this._parseValue(this.element.value, this.dataType());\n },\n _parseValue: function (value, dataType) {\n if (dataType == 'date') {\n value = kendo.parseDate(value, 'yyyy-MM-dd');\n } else if (dataType == 'datetime-local') {\n value = kendo.parseDate(value, [\n 'yyyy-MM-ddTHH:mm:ss',\n 'yyyy-MM-ddTHH:mm'\n ]);\n } else if (dataType == 'number') {\n value = kendo.parseFloat(value);\n } else if (dataType == 'boolean') {\n value = value.toLowerCase();\n if (kendo.parseFloat(value) !== null) {\n value = Boolean(kendo.parseFloat(value));\n } else {\n value = value.toLowerCase() === 'true';\n }\n }\n return value;\n }\n });\n binders.attr = Binder.extend({\n refresh: function (key) {\n this.element.setAttribute(key, this.bindings.attr[key].get());\n }\n });\n binders.css = Binder.extend({\n init: function (element, bindings, options) {\n Binder.fn.init.call(this, element, bindings, options);\n this.classes = {};\n },\n refresh: function (className) {\n var element = $(this.element), binding = this.bindings.css[className], hasClass = this.classes[className] = binding.get();\n if (hasClass) {\n element.addClass(className);\n } else {\n element.removeClass(className);\n }\n }\n });\n binders.style = Binder.extend({\n refresh: function (key) {\n this.element.style[key] = this.bindings.style[key].get() || '';\n }\n });\n binders.enabled = Binder.extend({\n refresh: function () {\n if (this.bindings.enabled.get()) {\n this.element.removeAttribute('disabled');\n } else {\n this.element.setAttribute('disabled', 'disabled');\n }\n }\n });\n binders.readonly = Binder.extend({\n refresh: function () {\n if (this.bindings.readonly.get()) {\n this.element.setAttribute('readonly', 'readonly');\n } else {\n this.element.removeAttribute('readonly');\n }\n }\n });\n binders.disabled = Binder.extend({\n refresh: function () {\n if (this.bindings.disabled.get()) {\n this.element.setAttribute('disabled', 'disabled');\n } else {\n this.element.removeAttribute('disabled');\n }\n }\n });\n binders.events = Binder.extend({\n init: function (element, bindings, options) {\n Binder.fn.init.call(this, element, bindings, options);\n this.handlers = {};\n },\n refresh: function (key) {\n var element = $(this.element), binding = this.bindings.events[key], handler = this.handlers[key];\n if (handler) {\n element.off(key, handler);\n }\n handler = this.handlers[key] = binding.get();\n element.on(key, binding.source, handler);\n },\n destroy: function () {\n var element = $(this.element), handler;\n for (handler in this.handlers) {\n element.off(handler, this.handlers[handler]);\n }\n }\n });\n binders.text = Binder.extend({\n refresh: function () {\n var text = this.bindings.text.get();\n var dataFormat = this.element.getAttribute('data-format') || '';\n if (text == null) {\n text = '';\n }\n $(this.element).text(kendo.toString(text, dataFormat));\n }\n });\n binders.visible = Binder.extend({\n refresh: function () {\n if (this.bindings.visible.get()) {\n this.element.style.display = '';\n } else {\n this.element.style.display = 'none';\n }\n }\n });\n binders.invisible = Binder.extend({\n refresh: function () {\n if (!this.bindings.invisible.get()) {\n this.element.style.display = '';\n } else {\n this.element.style.display = 'none';\n }\n }\n });\n binders.html = Binder.extend({\n refresh: function () {\n this.element.innerHTML = this.bindings.html.get();\n }\n });\n binders.value = TypedBinder.extend({\n init: function (element, bindings, options) {\n TypedBinder.fn.init.call(this, element, bindings, options);\n this._change = proxy(this.change, this);\n this.eventName = options.valueUpdate || CHANGE;\n $(this.element).on(this.eventName, this._change);\n this._initChange = false;\n },\n change: function () {\n this._initChange = this.eventName != CHANGE;\n this.bindings[VALUE].set(this.parsedValue());\n this._initChange = false;\n },\n refresh: function () {\n if (!this._initChange) {\n var value = this.bindings[VALUE].get();\n if (value == null) {\n value = '';\n }\n var type = this.dataType();\n if (type == 'date') {\n value = kendo.toString(value, 'yyyy-MM-dd');\n } else if (type == 'datetime-local') {\n value = kendo.toString(value, 'yyyy-MM-ddTHH:mm:ss');\n }\n this.element.value = value;\n }\n this._initChange = false;\n },\n destroy: function () {\n $(this.element).off(this.eventName, this._change);\n }\n });\n binders.source = Binder.extend({\n init: function (element, bindings, options) {\n Binder.fn.init.call(this, element, bindings, options);\n var source = this.bindings.source.get();\n if (source instanceof kendo.data.DataSource && options.autoBind !== false) {\n source.fetch();\n }\n },\n refresh: function (e) {\n var that = this, source = that.bindings.source.get();\n if (source instanceof ObservableArray || source instanceof kendo.data.DataSource) {\n e = e || {};\n if (e.action == 'add') {\n that.add(e.index, e.items);\n } else if (e.action == 'remove') {\n that.remove(e.index, e.items);\n } else if (e.action != 'itemchange') {\n that.render();\n }\n } else {\n that.render();\n }\n },\n container: function () {\n var element = this.element;\n if (element.nodeName.toLowerCase() == 'table') {\n if (!element.tBodies[0]) {\n element.appendChild(document.createElement('tbody'));\n }\n element = element.tBodies[0];\n }\n return element;\n },\n template: function () {\n var options = this.options, template = options.template, nodeName = this.container().nodeName.toLowerCase();\n if (!template) {\n if (nodeName == 'select') {\n if (options.valueField || options.textField) {\n template = kendo.format('', options.valueField || options.textField, options.textField || options.valueField);\n } else {\n template = '';\n }\n } else if (nodeName == 'tbody') {\n template = '#:data#';\n } else if (nodeName == 'ul' || nodeName == 'ol') {\n template = '
        • #:data#
        • ';\n } else {\n template = '#:data#';\n }\n template = kendo.template(template);\n }\n return template;\n },\n add: function (index, items) {\n var element = this.container(), parents, idx, length, child, clone = element.cloneNode(false), reference = element.children[index];\n $(clone).html(kendo.render(this.template(), items));\n if (clone.children.length) {\n parents = this.bindings.source._parents();\n for (idx = 0, length = items.length; idx < length; idx++) {\n child = clone.children[0];\n element.insertBefore(child, reference || null);\n bindElement(child, items[idx], this.options.roles, [items[idx]].concat(parents));\n }\n }\n },\n remove: function (index, items) {\n var idx, element = this.container();\n for (idx = 0; idx < items.length; idx++) {\n var child = element.children[index];\n unbindElementTree(child, true);\n if (child.parentNode == element) {\n element.removeChild(child);\n }\n }\n },\n render: function () {\n var source = this.bindings.source.get(), parents, idx, length, element = this.container(), template = this.template();\n if (source == null) {\n return;\n }\n if (source instanceof kendo.data.DataSource) {\n source = source.view();\n }\n if (!(source instanceof ObservableArray) && toString.call(source) !== '[object Array]') {\n source = [source];\n }\n if (this.bindings.template) {\n unbindElementChildren(element, true);\n $(element).html(this.bindings.template.render(source));\n if (element.children.length) {\n parents = this.bindings.source._parents();\n for (idx = 0, length = source.length; idx < length; idx++) {\n bindElement(element.children[idx], source[idx], this.options.roles, [source[idx]].concat(parents));\n }\n }\n } else {\n $(element).html(kendo.render(template, source));\n }\n }\n });\n binders.input = {\n checked: TypedBinder.extend({\n init: function (element, bindings, options) {\n TypedBinder.fn.init.call(this, element, bindings, options);\n this._change = proxy(this.change, this);\n $(this.element).change(this._change);\n },\n change: function () {\n var element = this.element;\n var value = this.value();\n if (element.type == 'radio') {\n value = this.parsedValue();\n this.bindings[CHECKED].set(value);\n } else if (element.type == 'checkbox') {\n var source = this.bindings[CHECKED].get();\n var index;\n if (source instanceof ObservableArray) {\n value = this.parsedValue();\n if (value instanceof Date) {\n for (var i = 0; i < source.length; i++) {\n if (source[i] instanceof Date && +source[i] === +value) {\n index = i;\n break;\n }\n }\n } else {\n index = source.indexOf(value);\n }\n if (index > -1) {\n source.splice(index, 1);\n } else {\n source.push(value);\n }\n } else {\n this.bindings[CHECKED].set(value);\n }\n }\n },\n refresh: function () {\n var value = this.bindings[CHECKED].get(), source = value, type = this.dataType(), element = this.element;\n if (element.type == 'checkbox') {\n if (source instanceof ObservableArray) {\n var index = -1;\n value = this.parsedValue();\n if (value instanceof Date) {\n for (var i = 0; i < source.length; i++) {\n if (source[i] instanceof Date && +source[i] === +value) {\n index = i;\n break;\n }\n }\n } else {\n index = source.indexOf(value);\n }\n element.checked = index >= 0;\n } else {\n element.checked = source;\n }\n } else if (element.type == 'radio') {\n if (type == 'date') {\n value = kendo.toString(value, 'yyyy-MM-dd');\n } else if (type == 'datetime-local') {\n value = kendo.toString(value, 'yyyy-MM-ddTHH:mm:ss');\n }\n if (value !== null && typeof value !== 'undefined' && element.value === value.toString()) {\n element.checked = true;\n } else {\n element.checked = false;\n }\n }\n },\n value: function () {\n var element = this.element, value = element.value;\n if (element.type == 'checkbox') {\n value = element.checked;\n }\n return value;\n },\n destroy: function () {\n $(this.element).off(CHANGE, this._change);\n }\n })\n };\n binders.select = {\n source: binders.source.extend({\n refresh: function (e) {\n var that = this, source = that.bindings.source.get();\n if (source instanceof ObservableArray || source instanceof kendo.data.DataSource) {\n e = e || {};\n if (e.action == 'add') {\n that.add(e.index, e.items);\n } else if (e.action == 'remove') {\n that.remove(e.index, e.items);\n } else if (e.action == 'itemchange' || e.action === undefined) {\n that.render();\n if (that.bindings.value) {\n if (that.bindings.value) {\n var val = retrievePrimitiveValues(that.bindings.value.get(), $(that.element).data('valueField'));\n if (val === null) {\n that.element.selectedIndex = -1;\n } else {\n that.element.value = val;\n }\n }\n }\n }\n } else {\n that.render();\n }\n }\n }),\n value: TypedBinder.extend({\n init: function (target, bindings, options) {\n TypedBinder.fn.init.call(this, target, bindings, options);\n this._change = proxy(this.change, this);\n $(this.element).change(this._change);\n },\n parsedValue: function () {\n var dataType = this.dataType();\n var values = [];\n var value, option, idx, length;\n for (idx = 0, length = this.element.options.length; idx < length; idx++) {\n option = this.element.options[idx];\n if (option.selected) {\n value = option.attributes.value;\n if (value && value.specified) {\n value = option.value;\n } else {\n value = option.text;\n }\n values.push(this._parseValue(value, dataType));\n }\n }\n return values;\n },\n change: function () {\n var values = [], element = this.element, source, field = this.options.valueField || this.options.textField, valuePrimitive = this.options.valuePrimitive, option, valueIndex, value, idx, length;\n for (idx = 0, length = element.options.length; idx < length; idx++) {\n option = element.options[idx];\n if (option.selected) {\n value = option.attributes.value;\n if (value && value.specified) {\n value = option.value;\n } else {\n value = option.text;\n }\n if (field) {\n values.push(value);\n } else {\n values.push(this._parseValue(value, this.dataType()));\n }\n }\n }\n if (field) {\n source = this.bindings.source.get();\n if (source instanceof kendo.data.DataSource) {\n source = source.view();\n }\n for (valueIndex = 0; valueIndex < values.length; valueIndex++) {\n for (idx = 0, length = source.length; idx < length; idx++) {\n var sourceValue = source[idx].get(field);\n var match = String(sourceValue) === values[valueIndex];\n if (match) {\n values[valueIndex] = source[idx];\n break;\n }\n }\n }\n }\n value = this.bindings[VALUE].get();\n if (value instanceof ObservableArray) {\n value.splice.apply(value, [\n 0,\n value.length\n ].concat(values));\n } else if (!valuePrimitive && (value instanceof ObservableObject || value === null || value === undefined || !field)) {\n this.bindings[VALUE].set(values[0]);\n } else {\n this.bindings[VALUE].set(values[0].get(field));\n }\n },\n refresh: function () {\n var optionIndex, element = this.element, options = element.options, value = this.bindings[VALUE].get(), values = value, field = this.options.valueField || this.options.textField, found = false, type = this.dataType(), optionValue;\n if (!(values instanceof ObservableArray)) {\n values = new ObservableArray([value]);\n }\n element.selectedIndex = -1;\n for (var valueIndex = 0; valueIndex < values.length; valueIndex++) {\n value = values[valueIndex];\n if (field && value instanceof ObservableObject) {\n value = value.get(field);\n }\n if (type == 'date') {\n value = kendo.toString(values[valueIndex], 'yyyy-MM-dd');\n } else if (type == 'datetime-local') {\n value = kendo.toString(values[valueIndex], 'yyyy-MM-ddTHH:mm:ss');\n }\n for (optionIndex = 0; optionIndex < options.length; optionIndex++) {\n optionValue = options[optionIndex].value;\n if (optionValue === '' && value !== '') {\n optionValue = options[optionIndex].text;\n }\n if (value != null && optionValue == value.toString()) {\n options[optionIndex].selected = true;\n found = true;\n }\n }\n }\n },\n destroy: function () {\n $(this.element).off(CHANGE, this._change);\n }\n })\n };\n function dataSourceBinding(bindingName, fieldName, setter) {\n return Binder.extend({\n init: function (widget, bindings, options) {\n var that = this;\n Binder.fn.init.call(that, widget.element[0], bindings, options);\n that.widget = widget;\n that._dataBinding = proxy(that.dataBinding, that);\n that._dataBound = proxy(that.dataBound, that);\n that._itemChange = proxy(that.itemChange, that);\n },\n itemChange: function (e) {\n bindElement(e.item[0], e.data, this._ns(e.ns), [e.data].concat(this.bindings[bindingName]._parents()));\n },\n dataBinding: function (e) {\n var idx, length, widget = this.widget, items = e.removedItems || widget.items();\n for (idx = 0, length = items.length; idx < length; idx++) {\n unbindElementTree(items[idx], false);\n }\n },\n _ns: function (ns) {\n ns = ns || kendo.ui;\n var all = [\n kendo.ui,\n kendo.dataviz.ui,\n kendo.mobile.ui\n ];\n all.splice($.inArray(ns, all), 1);\n all.unshift(ns);\n return kendo.rolesFromNamespaces(all);\n },\n dataBound: function (e) {\n var idx, length, widget = this.widget, items = e.addedItems || widget.items(), dataSource = widget[fieldName], view, parents, hds = kendo.data.HierarchicalDataSource;\n if (hds && dataSource instanceof hds) {\n return;\n }\n if (items.length) {\n view = e.addedDataItems || dataSource.flatView();\n parents = this.bindings[bindingName]._parents();\n for (idx = 0, length = view.length; idx < length; idx++) {\n if (items[idx]) {\n bindElement(items[idx], view[idx], this._ns(e.ns), [view[idx]].concat(parents));\n }\n }\n }\n },\n refresh: function (e) {\n var that = this, source, widget = that.widget, select, multiselect, dropdowntree;\n e = e || {};\n if (!e.action) {\n that.destroy();\n widget.bind('dataBinding', that._dataBinding);\n widget.bind('dataBound', that._dataBound);\n widget.bind('itemChange', that._itemChange);\n source = that.bindings[bindingName].get();\n if (widget[fieldName] instanceof kendo.data.DataSource && widget[fieldName] != source) {\n if (source instanceof kendo.data.DataSource) {\n widget[setter](source);\n } else if (source && source._dataSource) {\n widget[setter](source._dataSource);\n } else {\n select = kendo.ui.Select && widget instanceof kendo.ui.Select;\n multiselect = kendo.ui.MultiSelect && widget instanceof kendo.ui.MultiSelect;\n dropdowntree = kendo.ui.DropDownTree && widget instanceof kendo.ui.DropDownTree;\n if (!dropdowntree) {\n widget[fieldName].data(source);\n } else {\n widget.treeview[fieldName].data(source);\n }\n if (that.bindings.value && (select || multiselect)) {\n widget.value(retrievePrimitiveValues(that.bindings.value.get(), widget.options.dataValueField));\n }\n }\n }\n }\n },\n destroy: function () {\n var widget = this.widget;\n widget.unbind('dataBinding', this._dataBinding);\n widget.unbind('dataBound', this._dataBound);\n widget.unbind('itemChange', this._itemChange);\n }\n });\n }\n binders.widget = {\n events: Binder.extend({\n init: function (widget, bindings, options) {\n Binder.fn.init.call(this, widget.element[0], bindings, options);\n this.widget = widget;\n this.handlers = {};\n },\n refresh: function (key) {\n var binding = this.bindings.events[key], handler = this.handlers[key];\n if (handler) {\n this.widget.unbind(key, handler);\n }\n handler = binding.get();\n this.handlers[key] = function (e) {\n e.data = binding.source;\n handler(e);\n if (e.data === binding.source) {\n delete e.data;\n }\n };\n this.widget.bind(key, this.handlers[key]);\n },\n destroy: function () {\n var handler;\n for (handler in this.handlers) {\n this.widget.unbind(handler, this.handlers[handler]);\n }\n }\n }),\n checked: Binder.extend({\n init: function (widget, bindings, options) {\n Binder.fn.init.call(this, widget.element[0], bindings, options);\n this.widget = widget;\n this._change = proxy(this.change, this);\n this.widget.bind(CHANGE, this._change);\n },\n change: function () {\n this.bindings[CHECKED].set(this.value());\n },\n refresh: function () {\n this.widget.check(this.bindings[CHECKED].get() === true);\n },\n value: function () {\n var element = this.element, value = element.value;\n if (value == 'on' || value == 'off' || this.element.type == 'checkbox') {\n value = element.checked;\n }\n return value;\n },\n destroy: function () {\n this.widget.unbind(CHANGE, this._change);\n }\n }),\n start: Binder.extend({\n init: function (widget, bindings, options) {\n Binder.fn.init.call(this, widget.element[0], bindings, options);\n this._change = proxy(this.change, this);\n this.widget = widget;\n this.widget.bind(CHANGE, this._change);\n },\n change: function () {\n this.bindings.start.set(this.widget.range().start);\n },\n refresh: function () {\n var that = this;\n var start = this.bindings.start.get();\n var end = that.widget._range ? that.widget._range.end : null;\n this.widget.range({\n start: start,\n end: end\n });\n },\n destroy: function () {\n this.widget.unbind(CHANGE, this._change);\n }\n }),\n end: Binder.extend({\n init: function (widget, bindings, options) {\n Binder.fn.init.call(this, widget.element[0], bindings, options);\n this._change = proxy(this.change, this);\n this.widget = widget;\n this.widget.bind(CHANGE, this._change);\n },\n change: function () {\n this.bindings.end.set(this.widget.range().end);\n },\n refresh: function () {\n var that = this;\n var end = this.bindings.end.get();\n var start = that.widget._range ? that.widget._range.start : null;\n this.widget.range({\n start: start,\n end: end\n });\n },\n destroy: function () {\n this.widget.unbind(CHANGE, this._change);\n }\n }),\n visible: Binder.extend({\n init: function (widget, bindings, options) {\n Binder.fn.init.call(this, widget.element[0], bindings, options);\n this.widget = widget;\n },\n refresh: function () {\n var visible = this.bindings.visible.get();\n this.widget.wrapper[0].style.display = visible ? '' : 'none';\n }\n }),\n invisible: Binder.extend({\n init: function (widget, bindings, options) {\n Binder.fn.init.call(this, widget.element[0], bindings, options);\n this.widget = widget;\n },\n refresh: function () {\n var invisible = this.bindings.invisible.get();\n this.widget.wrapper[0].style.display = invisible ? 'none' : '';\n }\n }),\n enabled: Binder.extend({\n init: function (widget, bindings, options) {\n Binder.fn.init.call(this, widget.element[0], bindings, options);\n this.widget = widget;\n },\n refresh: function () {\n if (this.widget.enable) {\n this.widget.enable(this.bindings.enabled.get());\n }\n }\n }),\n disabled: Binder.extend({\n init: function (widget, bindings, options) {\n Binder.fn.init.call(this, widget.element[0], bindings, options);\n this.widget = widget;\n },\n refresh: function () {\n if (this.widget.enable) {\n this.widget.enable(!this.bindings.disabled.get());\n }\n }\n }),\n source: dataSourceBinding('source', 'dataSource', 'setDataSource'),\n value: Binder.extend({\n init: function (widget, bindings, options) {\n Binder.fn.init.call(this, widget.element[0], bindings, options);\n this.widget = widget;\n this._change = $.proxy(this.change, this);\n this.widget.first(CHANGE, this._change);\n var value = this.bindings.value.get();\n this._valueIsObservableObject = !options.valuePrimitive && (value == null || value instanceof ObservableObject);\n this._valueIsObservableArray = value instanceof ObservableArray;\n this._initChange = false;\n },\n _source: function () {\n var source;\n if (this.widget.dataItem) {\n source = this.widget.dataItem();\n if (source && source instanceof ObservableObject) {\n return [source];\n }\n }\n if (this.bindings.source) {\n source = this.bindings.source.get();\n }\n if (!source || source instanceof kendo.data.DataSource) {\n source = this.widget.dataSource.flatView();\n }\n return source;\n },\n change: function () {\n var value = this.widget.value(), field = this.options.dataValueField || this.options.dataTextField, isArray = toString.call(value) === '[object Array]', isObservableObject = this._valueIsObservableObject, valueIndex, valueLength, values = [], sourceItem, sourceValue, idx, length, source;\n this._initChange = true;\n if (field) {\n if (value === '' && (isObservableObject || this.options.valuePrimitive)) {\n value = null;\n } else {\n source = this._source();\n if (isArray) {\n valueLength = value.length;\n values = value.slice(0);\n }\n for (idx = 0, length = source.length; idx < length; idx++) {\n sourceItem = source[idx];\n sourceValue = sourceItem.get(field);\n if (isArray) {\n for (valueIndex = 0; valueIndex < valueLength; valueIndex++) {\n if (sourceValue == values[valueIndex]) {\n values[valueIndex] = sourceItem;\n break;\n }\n }\n } else if (sourceValue == value) {\n value = isObservableObject ? sourceItem : sourceValue;\n break;\n }\n }\n if (values[0]) {\n if (this._valueIsObservableArray) {\n value = values;\n } else if (isObservableObject || !field) {\n value = values[0];\n } else {\n value = values[0].get(field);\n }\n }\n }\n }\n this.bindings.value.set(value);\n this._initChange = false;\n },\n refresh: function () {\n if (!this._initChange) {\n var widget = this.widget;\n var options = widget.options;\n var textField = options.dataTextField;\n var valueField = options.dataValueField || textField;\n var value = this.bindings.value.get();\n var text = options.text || '';\n var idx = 0, length;\n var values = [];\n if (value === undefined) {\n value = null;\n }\n if (valueField) {\n if (value instanceof ObservableArray) {\n for (length = value.length; idx < length; idx++) {\n values[idx] = value[idx].get(valueField);\n }\n value = values;\n } else if (value instanceof ObservableObject) {\n text = value.get(textField);\n value = value.get(valueField);\n }\n }\n if (options.autoBind === false && !options.cascadeFrom && widget.listView && !widget.listView.bound()) {\n if (textField === valueField && !text) {\n text = value;\n }\n if (!text && (value || value === 0) && options.valuePrimitive) {\n widget.value(value);\n } else {\n widget._preselect(value, text);\n }\n } else {\n widget.value(value);\n }\n }\n this._initChange = false;\n },\n destroy: function () {\n this.widget.unbind(CHANGE, this._change);\n }\n }),\n dropdowntree: {\n value: Binder.extend({\n init: function (widget, bindings, options) {\n Binder.fn.init.call(this, widget.element[0], bindings, options);\n this.widget = widget;\n this._change = $.proxy(this.change, this);\n this.widget.first(CHANGE, this._change);\n this._initChange = false;\n },\n change: function () {\n var that = this, oldValues = that.bindings[VALUE].get(), valuePrimitive = that.options.valuePrimitive, selectedNode = that.widget.treeview.select(), nonPrimitiveValues = that.widget._isMultipleSelection() ? that.widget._getAllChecked() : that.widget.treeview.dataItem(selectedNode) || that.widget.value(), newValues = valuePrimitive || that.widget.options.autoBind === false ? that.widget.value() : nonPrimitiveValues;\n var field = this.options.dataValueField || this.options.dataTextField;\n newValues = newValues.slice ? newValues.slice(0) : newValues;\n that._initChange = true;\n if (oldValues instanceof ObservableArray) {\n var remove = [];\n var newLength = newValues.length;\n var i = 0, j = 0;\n var old = oldValues[i];\n var same = false;\n var removeIndex;\n var newValue;\n var found;\n while (old !== undefined) {\n found = false;\n for (j = 0; j < newLength; j++) {\n if (valuePrimitive) {\n same = newValues[j] == old;\n } else {\n newValue = newValues[j];\n newValue = newValue.get ? newValue.get(field) : newValue;\n same = newValue == (old.get ? old.get(field) : old);\n }\n if (same) {\n newValues.splice(j, 1);\n newLength -= 1;\n found = true;\n break;\n }\n }\n if (!found) {\n remove.push(old);\n arraySplice(oldValues, i, 1);\n removeIndex = i;\n } else {\n i += 1;\n }\n old = oldValues[i];\n }\n arraySplice(oldValues, oldValues.length, 0, newValues);\n if (remove.length) {\n oldValues.trigger('change', {\n action: 'remove',\n items: remove,\n index: removeIndex\n });\n }\n if (newValues.length) {\n oldValues.trigger('change', {\n action: 'add',\n items: newValues,\n index: oldValues.length - 1\n });\n }\n } else {\n that.bindings[VALUE].set(newValues);\n }\n that._initChange = false;\n },\n refresh: function () {\n if (!this._initChange) {\n var options = this.options, widget = this.widget, field = options.dataValueField || options.dataTextField, value = this.bindings.value.get(), data = value, idx = 0, length, values = [], selectedValue;\n if (field) {\n if (value instanceof ObservableArray) {\n for (length = value.length; idx < length; idx++) {\n selectedValue = value[idx];\n values[idx] = selectedValue.get ? selectedValue.get(field) : selectedValue;\n }\n value = values;\n } else if (value instanceof ObservableObject) {\n value = value.get(field);\n }\n }\n if (options.autoBind === false && options.valuePrimitive !== true) {\n widget._preselect(data, value);\n } else {\n widget.value(value);\n }\n }\n },\n destroy: function () {\n this.widget.unbind(CHANGE, this._change);\n }\n })\n },\n gantt: { dependencies: dataSourceBinding('dependencies', 'dependencies', 'setDependenciesDataSource') },\n multiselect: {\n value: Binder.extend({\n init: function (widget, bindings, options) {\n Binder.fn.init.call(this, widget.element[0], bindings, options);\n this.widget = widget;\n this._change = $.proxy(this.change, this);\n this.widget.first(CHANGE, this._change);\n this._initChange = false;\n },\n change: function () {\n var that = this, oldValues = that.bindings[VALUE].get(), valuePrimitive = that.options.valuePrimitive, newValues = valuePrimitive ? that.widget.value() : that.widget.dataItems();\n var field = this.options.dataValueField || this.options.dataTextField;\n newValues = newValues.slice(0);\n that._initChange = true;\n if (oldValues instanceof ObservableArray) {\n var remove = [];\n var newLength = newValues.length;\n var i = 0, j = 0;\n var old = oldValues[i];\n var same = false;\n var removeIndex;\n var newValue;\n var found;\n while (old !== undefined) {\n found = false;\n for (j = 0; j < newLength; j++) {\n if (valuePrimitive) {\n same = newValues[j] == old;\n } else {\n newValue = newValues[j];\n newValue = newValue.get ? newValue.get(field) : newValue;\n same = newValue == (old.get ? old.get(field) : old);\n }\n if (same) {\n newValues.splice(j, 1);\n newLength -= 1;\n found = true;\n break;\n }\n }\n if (!found) {\n remove.push(old);\n arraySplice(oldValues, i, 1);\n removeIndex = i;\n } else {\n i += 1;\n }\n old = oldValues[i];\n }\n arraySplice(oldValues, oldValues.length, 0, newValues);\n if (remove.length) {\n oldValues.trigger('change', {\n action: 'remove',\n items: remove,\n index: removeIndex\n });\n }\n if (newValues.length) {\n oldValues.trigger('change', {\n action: 'add',\n items: newValues,\n index: oldValues.length - 1\n });\n }\n } else {\n that.bindings[VALUE].set(newValues);\n }\n that._initChange = false;\n },\n refresh: function () {\n if (!this._initChange) {\n var options = this.options, widget = this.widget, field = options.dataValueField || options.dataTextField, value = this.bindings.value.get(), data = value, idx = 0, length, values = [], selectedValue;\n if (value === undefined) {\n value = null;\n }\n if (field) {\n if (value instanceof ObservableArray) {\n for (length = value.length; idx < length; idx++) {\n selectedValue = value[idx];\n values[idx] = selectedValue.get ? selectedValue.get(field) : selectedValue;\n }\n value = values;\n } else if (value instanceof ObservableObject) {\n value = value.get(field);\n }\n }\n if (options.autoBind === false && options.valuePrimitive !== true && !widget._isBound()) {\n widget._preselect(data, value);\n } else {\n widget.value(value);\n }\n }\n },\n destroy: function () {\n this.widget.unbind(CHANGE, this._change);\n }\n })\n },\n scheduler: {\n source: dataSourceBinding('source', 'dataSource', 'setDataSource').extend({\n dataBound: function (e) {\n var idx;\n var length;\n var widget = this.widget;\n var elements = e.addedItems || widget.items();\n var data, parents;\n if (elements.length) {\n data = e.addedDataItems || widget.dataItems();\n parents = this.bindings.source._parents();\n for (idx = 0, length = data.length; idx < length; idx++) {\n bindElement(elements[idx], data[idx], this._ns(e.ns), [data[idx]].concat(parents));\n }\n }\n }\n })\n },\n grid: {\n source: dataSourceBinding('source', 'dataSource', 'setDataSource').extend({\n dataBound: function (e) {\n var idx, length, widget = this.widget, elements = e.addedItems || widget.items(), parents, data;\n if (elements.length) {\n data = e.addedDataItems || widget.dataItems();\n parents = this.bindings.source._parents();\n for (idx = 0, length = data.length; idx < length; idx++) {\n bindElement(elements[idx], data[idx], this._ns(e.ns), [data[idx]].concat(parents));\n }\n }\n }\n })\n }\n };\n var arraySplice = function (arr, idx, remove, add) {\n add = add || [];\n remove = remove || 0;\n var addLength = add.length;\n var oldLength = arr.length;\n var shifted = [].slice.call(arr, idx + remove);\n var shiftedLength = shifted.length;\n var index;\n if (addLength) {\n addLength = idx + addLength;\n index = 0;\n for (; idx < addLength; idx++) {\n arr[idx] = add[index];\n index++;\n }\n arr.length = addLength;\n } else if (remove) {\n arr.length = idx;\n remove += idx;\n while (idx < remove) {\n delete arr[--remove];\n }\n }\n if (shiftedLength) {\n shiftedLength = idx + shiftedLength;\n index = 0;\n for (; idx < shiftedLength; idx++) {\n arr[idx] = shifted[index];\n index++;\n }\n arr.length = shiftedLength;\n }\n idx = arr.length;\n while (idx < oldLength) {\n delete arr[idx];\n idx++;\n }\n };\n var BindingTarget = Class.extend({\n init: function (target, options) {\n this.target = target;\n this.options = options;\n this.toDestroy = [];\n },\n bind: function (bindings) {\n var key, hasValue, hasSource, hasEvents, hasChecked, hasCss, widgetBinding = this instanceof WidgetBindingTarget, specificBinders = this.binders();\n for (key in bindings) {\n if (key == VALUE) {\n hasValue = true;\n } else if (key == SOURCE) {\n hasSource = true;\n } else if (key == EVENTS && !widgetBinding) {\n hasEvents = true;\n } else if (key == CHECKED) {\n hasChecked = true;\n } else if (key == CSS) {\n hasCss = true;\n } else {\n this.applyBinding(key, bindings, specificBinders);\n }\n }\n if (hasSource) {\n this.applyBinding(SOURCE, bindings, specificBinders);\n }\n if (hasValue) {\n this.applyBinding(VALUE, bindings, specificBinders);\n }\n if (hasChecked) {\n this.applyBinding(CHECKED, bindings, specificBinders);\n }\n if (hasEvents && !widgetBinding) {\n this.applyBinding(EVENTS, bindings, specificBinders);\n }\n if (hasCss && !widgetBinding) {\n this.applyBinding(CSS, bindings, specificBinders);\n }\n },\n binders: function () {\n return binders[this.target.nodeName.toLowerCase()] || {};\n },\n applyBinding: function (name, bindings, specificBinders) {\n var binder = specificBinders[name] || binders[name], toDestroy = this.toDestroy, attribute, binding = bindings[name];\n if (binder) {\n binder = new binder(this.target, bindings, this.options);\n toDestroy.push(binder);\n if (binding instanceof Binding) {\n binder.bind(binding);\n toDestroy.push(binding);\n } else {\n for (attribute in binding) {\n binder.bind(binding, attribute);\n toDestroy.push(binding[attribute]);\n }\n }\n } else if (name !== 'template') {\n throw new Error('The ' + name + ' binding is not supported by the ' + this.target.nodeName.toLowerCase() + ' element');\n }\n },\n destroy: function () {\n var idx, length, toDestroy = this.toDestroy;\n for (idx = 0, length = toDestroy.length; idx < length; idx++) {\n toDestroy[idx].destroy();\n }\n }\n });\n var WidgetBindingTarget = BindingTarget.extend({\n binders: function () {\n return binders.widget[this.target.options.name.toLowerCase()] || {};\n },\n applyBinding: function (name, bindings, specificBinders) {\n var binder = specificBinders[name] || binders.widget[name], toDestroy = this.toDestroy, attribute, binding = bindings[name];\n if (binder) {\n binder = new binder(this.target, bindings, this.target.options);\n toDestroy.push(binder);\n if (binding instanceof Binding) {\n binder.bind(binding);\n toDestroy.push(binding);\n } else {\n for (attribute in binding) {\n binder.bind(binding, attribute);\n toDestroy.push(binding[attribute]);\n }\n }\n } else {\n throw new Error('The ' + name + ' binding is not supported by the ' + this.target.options.name + ' widget');\n }\n }\n });\n function bindingTargetForRole(element, roles) {\n var widget = kendo.initWidget(element, {}, roles);\n if (widget) {\n return new WidgetBindingTarget(widget);\n }\n }\n var keyValueRegExp = /[A-Za-z0-9_\\-]+:(\\{([^}]*)\\}|[^,}]+)/g, whiteSpaceRegExp = /\\s/g;\n function parseBindings(bind) {\n var result = {}, idx, length, token, colonIndex, key, value, tokens;\n tokens = bind.match(keyValueRegExp);\n for (idx = 0, length = tokens.length; idx < length; idx++) {\n token = tokens[idx];\n colonIndex = token.indexOf(':');\n key = token.substring(0, colonIndex);\n value = token.substring(colonIndex + 1);\n if (value.charAt(0) == '{') {\n value = parseBindings(value);\n }\n result[key] = value;\n }\n return result;\n }\n function createBindings(bindings, source, type) {\n var binding, result = {};\n for (binding in bindings) {\n result[binding] = new type(source, bindings[binding]);\n }\n return result;\n }\n function bindElement(element, source, roles, parents) {\n if (!element || element.getAttribute('data-' + kendo.ns + 'stop')) {\n return;\n }\n var role = element.getAttribute('data-' + kendo.ns + 'role'), idx, bind = element.getAttribute('data-' + kendo.ns + 'bind'), childrenCopy = [], deep = true, bindings, options = {}, target;\n parents = parents || [source];\n if (role || bind) {\n unbindElement(element, false);\n }\n if (role) {\n target = bindingTargetForRole(element, roles);\n }\n if (bind) {\n bind = parseBindings(bind.replace(whiteSpaceRegExp, ''));\n if (!target) {\n options = kendo.parseOptions(element, {\n textField: '',\n valueField: '',\n template: '',\n valueUpdate: CHANGE,\n valuePrimitive: false,\n autoBind: true\n }, source);\n options.roles = roles;\n target = new BindingTarget(element, options);\n }\n target.source = source;\n bindings = createBindings(bind, parents, Binding);\n if (options.template) {\n bindings.template = new TemplateBinding(parents, '', options.template);\n }\n if (bindings.click) {\n bind.events = bind.events || {};\n bind.events.click = bind.click;\n bindings.click.destroy();\n delete bindings.click;\n }\n if (bindings.source) {\n deep = false;\n }\n if (bind.attr) {\n bindings.attr = createBindings(bind.attr, parents, Binding);\n }\n if (bind.style) {\n bindings.style = createBindings(bind.style, parents, Binding);\n }\n if (bind.events) {\n bindings.events = createBindings(bind.events, parents, EventBinding);\n }\n if (bind.css) {\n bindings.css = createBindings(bind.css, parents, Binding);\n }\n target.bind(bindings);\n }\n if (target) {\n element.kendoBindingTarget = target;\n }\n var children = element.children;\n if (deep && children && !element.getAttribute('data-' + kendo.ns + 'stop')) {\n for (idx = 0; idx < children.length; idx++) {\n childrenCopy[idx] = children[idx];\n }\n for (idx = 0; idx < childrenCopy.length; idx++) {\n bindElement(childrenCopy[idx], source, roles, parents);\n }\n }\n }\n function bind(dom, object) {\n var idx, length, node, roles = kendo.rolesFromNamespaces([].slice.call(arguments, 2));\n object = kendo.observable(object);\n dom = $(dom);\n for (idx = 0, length = dom.length; idx < length; idx++) {\n node = dom[idx];\n if (node.nodeType === 1) {\n bindElement(node, object, roles);\n }\n }\n }\n function unbindElement(element, destroyWidget) {\n var bindingTarget = element.kendoBindingTarget;\n if (bindingTarget) {\n bindingTarget.destroy();\n if (deleteExpando) {\n delete element.kendoBindingTarget;\n } else if (element.removeAttribute) {\n element.removeAttribute('kendoBindingTarget');\n } else {\n element.kendoBindingTarget = null;\n }\n }\n if (destroyWidget) {\n var widget = kendo.widgetInstance($(element));\n if (widget && typeof widget.destroy === FUNCTION) {\n widget.destroy();\n }\n }\n }\n function unbindElementTree(element, destroyWidgets) {\n unbindElement(element, destroyWidgets);\n unbindElementChildren(element, destroyWidgets);\n }\n function unbindElementChildren(element, destroyWidgets) {\n var children = element.children;\n if (children) {\n for (var idx = 0, length = children.length; idx < length; idx++) {\n unbindElementTree(children[idx], destroyWidgets);\n }\n }\n }\n function unbind(dom) {\n var idx, length;\n dom = $(dom);\n for (idx = 0, length = dom.length; idx < length; idx++) {\n unbindElementTree(dom[idx], false);\n }\n }\n function notify(widget, namespace) {\n var element = widget.element, bindingTarget = element[0].kendoBindingTarget;\n if (bindingTarget) {\n bind(element, bindingTarget.source, namespace);\n }\n }\n function retrievePrimitiveValues(value, valueField) {\n var values = [];\n var idx = 0;\n var length;\n var item;\n if (!valueField) {\n return value;\n }\n if (value instanceof ObservableArray) {\n for (length = value.length; idx < length; idx++) {\n item = value[idx];\n values[idx] = item.get ? item.get(valueField) : item[valueField];\n }\n value = values;\n } else if (value instanceof ObservableObject) {\n value = value.get(valueField);\n }\n return value;\n }\n kendo.unbind = unbind;\n kendo.bind = bind;\n kendo.data.binders = binders;\n kendo.data.Binder = Binder;\n kendo.notify = notify;\n kendo.observable = function (object) {\n if (!(object instanceof ObservableObject)) {\n object = new ObservableObject(object);\n }\n return object;\n };\n kendo.observableHierarchy = function (array) {\n var dataSource = kendo.data.HierarchicalDataSource.create(array);\n function recursiveRead(data) {\n var i, children;\n for (i = 0; i < data.length; i++) {\n data[i]._initChildren();\n children = data[i].children;\n children.fetch();\n data[i].items = children.data();\n recursiveRead(data[i].items);\n }\n }\n dataSource.fetch();\n recursiveRead(dataSource.data());\n dataSource._data._dataSource = dataSource;\n return dataSource._data;\n };\n }(window.kendo.jQuery));\n return window.kendo;\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('kendo.editable', [\n 'kendo.dropdownlist',\n 'kendo.datepicker',\n 'kendo.numerictextbox',\n 'kendo.validator',\n 'kendo.binder'\n ], f);\n}(function () {\n var __meta__ = {\n id: 'editable',\n name: 'Editable',\n category: 'framework',\n depends: [\n 'dropdownlist',\n 'datepicker',\n 'numerictextbox',\n 'validator',\n 'binder'\n ],\n hidden: true\n };\n (function ($, undefined) {\n var kendo = window.kendo, ui = kendo.ui, Widget = ui.Widget, extend = $.extend, oldIE = kendo.support.browser.msie && kendo.support.browser.version < 9, isFunction = kendo.isFunction, isPlainObject = $.isPlainObject, inArray = $.inArray, POINT = '.', AUTOCOMPLETEVALUE = 'off', nameSpecialCharRegExp = /(\"|\\%|'|\\[|\\]|\\$|\\.|\\,|\\:|\\;|\\+|\\*|\\&|\\!|\\#|\\(|\\)|<|>|\\=|\\?|\\@|\\^|\\{|\\}|\\~|\\/|\\||`)/g, ERRORTEMPLATE = '
          ' + '' + '#= message #' + '' + '
          ', CHANGE = 'change';\n var EQUAL_SET = 'equalSet';\n var specialRules = [\n 'url',\n 'email',\n 'number',\n 'date',\n 'boolean'\n ];\n function fieldType(field) {\n field = field != null ? field : '';\n return field.type || $.type(field) || 'string';\n }\n function convertToValueBinding(container) {\n container.find(':input:not(:button, .k-combobox .k-input, [' + kendo.attr('role') + '=listbox], [' + kendo.attr('role') + '=upload], [' + kendo.attr('skip') + '], [type=file])').each(function () {\n var bindAttr = kendo.attr('bind'), binding = this.getAttribute(bindAttr) || '', bindingName = this.type === 'checkbox' || this.type === 'radio' ? 'checked:' : 'value:', fieldName = this.name;\n if (binding.indexOf(bindingName) === -1 && fieldName) {\n binding += (binding.length ? ',' : '') + bindingName + fieldName;\n $(this).attr(bindAttr, binding);\n }\n });\n }\n function createAttributes(options) {\n var field = (options.model.fields || options.model)[options.field], type = fieldType(field), validation = field ? field.validation : {}, attributes = field ? field.attributes : {}, ruleName, DATATYPE = kendo.attr('type'), BINDING = kendo.attr('bind'), rule, attr = {\n id: options.id || options.field,\n name: options.field,\n title: options.title ? options.title : options.field\n };\n for (ruleName in validation) {\n rule = validation[ruleName];\n if (inArray(ruleName, specialRules) >= 0) {\n attr[DATATYPE] = ruleName;\n } else if (!isFunction(rule)) {\n var culture = kendo.getCulture();\n if (typeof rule === 'number' && culture.name.length) {\n var numberFormat = culture.numberFormat;\n var stringRule = rule.toString().replace(POINT, numberFormat[POINT]);\n attr[ruleName] = stringRule;\n } else {\n attr[ruleName] = isPlainObject(rule) ? rule.value || ruleName : rule;\n }\n }\n attr[kendo.attr(ruleName + '-msg')] = rule.message;\n attr.autocomplete = AUTOCOMPLETEVALUE;\n }\n for (var attributeName in attributes) {\n attr[attributeName] = attributes[attributeName];\n }\n if (inArray(type, specialRules) >= 0) {\n attr[DATATYPE] = type;\n }\n attr[BINDING] = 'value:' + options.field;\n return attr;\n }\n function addIdAttribute(container, attr) {\n var id = container.attr('id');\n if (id) {\n attr.id = id;\n container.removeAttr('id');\n }\n return attr;\n }\n function convertItems(items) {\n var idx, length, item, value, text, result;\n if (items && items.length) {\n result = [];\n for (idx = 0, length = items.length; idx < length; idx++) {\n item = items[idx];\n text = item.text || item.value || item;\n value = item.value == null ? item.text || item : item.value;\n result[idx] = {\n text: text,\n value: value\n };\n }\n }\n return result;\n }\n function getEditorTag(type, options) {\n var tag;\n if (!type.length) {\n return;\n }\n if (type === 'DropDownTree' && options && options.checkboxes || type === 'MultiSelect') {\n tag = '' + '
          ' + '' + '' + '
          ' + '
          ',\n indent: function (content) {\n return content.replace(/<\\/(p|li|ul|ol|h[1-6]|table|tr|td|th)>/gi, '\\n').replace(/<(ul|ol)([^>]*)>
        • \\n/gi, '
          \\n').replace(/\\n$/, '');\n }\n });\n kendo.ui.editor.ViewHtmlCommand = ViewHtmlCommand;\n Editor.EditorUtils.registerTool('viewHtml', new Tool({\n command: ViewHtmlCommand,\n template: new ToolTemplate({\n template: EditorUtils.buttonTemplate,\n title: 'View HTML'\n })\n }));\n }(window.kendo.jQuery));\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('editor/plugins/format', ['editor/command'], f);\n}(function () {\n (function ($) {\n var kendo = window.kendo, extend = $.extend, Editor = kendo.ui.editor, Tool = Editor.Tool, Command = Editor.Command, EditorUtils = Editor.EditorUtils;\n var FormatCommand = Command.extend({\n init: function (options) {\n options.formatter = options.formatter();\n var finder = options.formatter.finder;\n if (finder && EditorUtils.formatByName('immutable', finder.format)) {\n finder._initOptions({ immutables: options.immutables });\n }\n Command.fn.init.call(this, options);\n }\n });\n var FormatTool = Tool.extend({\n init: function (options) {\n Tool.fn.init.call(this, options);\n },\n command: function (commandArguments) {\n var that = this;\n return new FormatCommand(extend(commandArguments, { formatter: that.options.formatter }));\n },\n update: function (ui, nodes) {\n var isFormatted = this.options.finder.isFormatted(nodes);\n ui.toggleClass('k-state-selected', isFormatted);\n ui.attr('aria-pressed', isFormatted);\n }\n });\n $.extend(Editor, {\n FormatCommand: FormatCommand,\n FormatTool: FormatTool\n });\n }(window.kendo.jQuery));\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('editor/plugins/inlineformat', ['editor/plugins/format'], f);\n}(function () {\n (function ($) {\n var kendo = window.kendo, Class = kendo.Class, Editor = kendo.ui.editor, formats = kendo.ui.Editor.fn.options.formats, EditorUtils = Editor.EditorUtils, Tool = Editor.Tool, ToolTemplate = Editor.ToolTemplate, FormatTool = Editor.FormatTool, dom = Editor.Dom, RangeUtils = Editor.RangeUtils, extend = $.extend, registerTool = Editor.EditorUtils.registerTool, registerFormat = Editor.EditorUtils.registerFormat, MOUSEDOWN_NS = 'mousedown.kendoEditor', KEYDOWN_NS = 'keydown.kendoEditor', KMARKER = 'k-marker';\n var InlineFormatFinder = Class.extend({\n init: function (format) {\n this.format = format;\n },\n numberOfSiblings: function (referenceNode) {\n var textNodesCount = 0, elementNodesCount = 0, markerCount = 0, parentNode = referenceNode.parentNode, node;\n for (node = parentNode.firstChild; node; node = node.nextSibling) {\n if (node != referenceNode) {\n if (node.className == KMARKER) {\n markerCount++;\n } else if (node.nodeType == 3) {\n textNodesCount++;\n } else {\n elementNodesCount++;\n }\n }\n }\n if (markerCount > 1 && parentNode.firstChild.className == KMARKER && parentNode.lastChild.className == KMARKER) {\n return 0;\n } else {\n return elementNodesCount + textNodesCount;\n }\n },\n findSuitable: function (sourceNode, skip) {\n if (!skip && this.numberOfSiblings(sourceNode) > 0) {\n return null;\n }\n var node = sourceNode.parentNode;\n var tags = this.format[0].tags;\n while (!dom.ofType(node, tags)) {\n if (this.numberOfSiblings(node) > 0) {\n return null;\n }\n node = node.parentNode;\n }\n return node;\n },\n findFormat: function (sourceNode) {\n var format = this.format, attrEquals = dom.attrEquals, i, len, node, tags, attributes;\n for (i = 0, len = format.length; i < len; i++) {\n node = sourceNode;\n tags = format[i].tags;\n attributes = format[i].attr;\n if (node && dom.ofType(node, tags) && attrEquals(node, attributes)) {\n return node;\n }\n while (node) {\n node = dom.parentOfType(node, tags);\n if (node && attrEquals(node, attributes)) {\n return node;\n }\n }\n }\n return null;\n },\n isFormatted: function (nodes) {\n var i, len;\n for (i = 0, len = nodes.length; i < len; i++) {\n if (this.findFormat(nodes[i])) {\n return true;\n }\n }\n return false;\n }\n });\n var InlineFormatter = Class.extend({\n init: function (format, values) {\n this.finder = new InlineFormatFinder(format);\n this.attributes = extend({}, format[0].attr, values);\n this.tag = format[0].tags[0];\n },\n wrap: function (node) {\n return dom.wrap(node, dom.create(node.ownerDocument, this.tag, this.attributes));\n },\n activate: function (range, nodes) {\n if (this.finder.isFormatted(nodes)) {\n this.split(range);\n this.remove(nodes);\n } else {\n this.apply(nodes);\n }\n },\n toggle: function (range) {\n var textNodes = this.immutables() ? RangeUtils.editableTextNodes : RangeUtils.textNodes;\n var nodes = textNodes(range);\n if (nodes.length > 0) {\n this.activate(range, nodes);\n }\n },\n immutables: function () {\n return this.editor && this.editor.options.immutables;\n },\n apply: function (nodes) {\n var formatNodes = [];\n var i, l, node, formatNode;\n if (nodes.length > 1) {\n for (i = 0, l = nodes.length; i < l; i++) {\n node = nodes[i];\n formatNode = this.format(node, true);\n formatNodes.push(formatNode);\n }\n } else {\n node = nodes[0];\n formatNode = this.format(node, false);\n }\n this.consolidate(formatNodes);\n },\n format: function (node, outerMostInline) {\n var formatNode = this.finder.findSuitable(node);\n var attributes = this.attributes;\n var styleAttr = attributes ? attributes.style || {} : {};\n if (formatNode) {\n if (dom.is(formatNode, 'font')) {\n if (styleAttr.color) {\n formatNode.removeAttribute('color');\n }\n if (styleAttr.fontName) {\n formatNode.removeAttribute('face');\n }\n if (styleAttr.fontSize) {\n formatNode.removeAttribute('size');\n }\n }\n dom.attr(formatNode, attributes);\n } else {\n while (!dom.isBlock(node.parentNode) && node.parentNode.childNodes.length == 1 && node.parentNode.contentEditable !== 'true' && outerMostInline) {\n node = node.parentNode;\n }\n formatNode = this.wrap(node);\n }\n return formatNode;\n },\n remove: function (nodes) {\n var i, l, formatNode;\n for (i = 0, l = nodes.length; i < l; i++) {\n formatNode = this.finder.findFormat(nodes[i]);\n if (formatNode) {\n if (this.attributes && this.attributes.style) {\n dom.unstyle(formatNode, this.attributes.style);\n if (!formatNode.style.cssText && !formatNode.attributes['class']) {\n dom.unwrap(formatNode);\n }\n } else {\n dom.unwrap(formatNode);\n }\n }\n }\n },\n split: function (range) {\n var nodes = RangeUtils.textNodes(range);\n var l = nodes.length;\n var i, formatNode;\n if (l > 0) {\n for (i = 0; i < l; i++) {\n formatNode = this.finder.findFormat(nodes[i]);\n if (formatNode) {\n RangeUtils.split(range, formatNode, true);\n }\n }\n }\n },\n consolidate: function (nodes) {\n var node, last;\n while (nodes.length > 1) {\n node = nodes.pop();\n last = nodes[nodes.length - 1];\n if (node.previousSibling && node.previousSibling.className == KMARKER) {\n last.appendChild(node.previousSibling);\n }\n if (node.tagName == last.tagName && node.previousSibling == last && node.style.cssText == last.style.cssText && node.className === last.className) {\n while (node.firstChild) {\n last.appendChild(node.firstChild);\n }\n dom.remove(node);\n }\n }\n }\n });\n var GreedyInlineFormatFinder = InlineFormatFinder.extend({\n init: function (format, greedyProperty) {\n this.format = format;\n this.greedyProperty = greedyProperty;\n InlineFormatFinder.fn.init.call(this, format);\n },\n getInlineCssValue: function (node) {\n var attributes = node.attributes;\n var trim = kendo.trim;\n var i, l, attribute, name, attributeValue, css, pair, cssIndex, len;\n var propertyAndValue, property, value;\n if (!attributes) {\n return;\n }\n for (i = 0, l = attributes.length; i < l; i++) {\n attribute = attributes[i];\n name = attribute.nodeName;\n attributeValue = attribute.nodeValue;\n if (attribute.specified && name == 'style') {\n css = trim(attributeValue || node.style.cssText).split(';');\n for (cssIndex = 0, len = css.length; cssIndex < len; cssIndex++) {\n pair = css[cssIndex];\n if (pair.length) {\n propertyAndValue = pair.split(':');\n property = trim(propertyAndValue[0].toLowerCase());\n value = trim(propertyAndValue[1]);\n if (property != this.greedyProperty) {\n continue;\n }\n return property.indexOf('color') >= 0 ? dom.toHex(value) : value;\n }\n }\n }\n }\n },\n getFormatInner: function (node) {\n var $node = $(dom.isDataNode(node) ? node.parentNode : node);\n var parents = $node.parentsUntil('[contentEditable]').addBack().toArray().reverse();\n var i, len, value;\n for (i = 0, len = parents.length; i < len; i++) {\n value = this.greedyProperty == 'className' ? parents[i].className : this.getInlineCssValue(parents[i]);\n if (value) {\n return value;\n }\n }\n return 'inherit';\n },\n getFormat: function (nodes) {\n var result = this.getFormatInner(nodes[0]), i, len;\n for (i = 1, len = nodes.length; i < len; i++) {\n if (result != this.getFormatInner(nodes[i])) {\n return '';\n }\n }\n return result;\n },\n isFormatted: function (nodes) {\n return this.getFormat(nodes) !== '';\n }\n });\n var GreedyInlineFormatter = InlineFormatter.extend({\n init: function (format, values, greedyProperty) {\n InlineFormatter.fn.init.call(this, format, values);\n this.values = values;\n this.finder = new GreedyInlineFormatFinder(format, greedyProperty);\n if (greedyProperty) {\n this.greedyProperty = kendo.toCamelCase(greedyProperty);\n }\n },\n activate: function (range, nodes) {\n var greedyProperty = this.greedyProperty;\n var action = 'apply';\n this.split(range);\n if (greedyProperty && this.values.style[greedyProperty] == 'inherit') {\n action = 'remove';\n }\n this[action](nodes);\n }\n });\n var InlineFormatTool = FormatTool.extend({\n init: function (options) {\n FormatTool.fn.init.call(this, extend(options, {\n finder: new InlineFormatFinder(options.format),\n formatter: function () {\n return new InlineFormatter(options.format);\n }\n }));\n }\n });\n var DelayedExecutionTool = Tool.extend({\n update: function (ui, nodes) {\n var list = ui.data(this.type);\n list.close();\n list.value(this.finder.getFormat(nodes));\n }\n });\n var FontTool = DelayedExecutionTool.extend({\n init: function (options) {\n Tool.fn.init.call(this, options);\n this.type = kendo.support.browser.msie || kendo.support.touch ? 'kendoDropDownList' : 'kendoComboBox';\n this.format = [{\n tags: [\n 'span',\n 'font'\n ]\n }];\n this.finder = new GreedyInlineFormatFinder(this.format, options.cssAttr);\n },\n command: function (commandArguments) {\n var options = this.options, format = this.format, style = {};\n return new Editor.FormatCommand(extend(commandArguments, {\n formatter: function () {\n style[options.domAttr] = commandArguments.value;\n return new GreedyInlineFormatter(format, { style: style }, options.cssAttr);\n }\n }));\n },\n initialize: function (ui, initOptions) {\n var editor = initOptions.editor, options = this.options, toolName = options.name, dataSource, range, defaultValue = [];\n if (options.defaultValue) {\n defaultValue = [{\n text: editor.options.messages[options.defaultValue[0].text],\n value: options.defaultValue[0].value\n }];\n }\n dataSource = defaultValue.concat(options.items ? options.items : editor.options[toolName] || []);\n ui.attr({ title: initOptions.title });\n ui[this.type]({\n dataTextField: 'text',\n dataValueField: 'value',\n dataSource: dataSource,\n change: function () {\n editor._range = range;\n Tool.exec(editor, toolName, this.value());\n },\n close: function () {\n setTimeout(function () {\n editor._deleteSavedRange();\n }, 0);\n },\n highlightFirst: false\n });\n ui.closest('.k-widget').removeClass('k-' + toolName).find('*').addBack().attr('unselectable', 'on');\n var widget = ui.data(this.type);\n widget.value('inherit');\n widget.wrapper.on(MOUSEDOWN_NS, '.k-select,.k-input', function () {\n var newRange = editor.getRange();\n range = editor._containsRange(newRange) ? newRange : range;\n }).on(KEYDOWN_NS, function (e) {\n if (e.keyCode === kendo.keys.ENTER) {\n editor._deleteSavedRange();\n e.preventDefault();\n }\n });\n }\n });\n var ColorTool = Tool.extend({\n init: function (options) {\n Tool.fn.init.call(this, options);\n this.format = [{\n tags: [\n 'span',\n 'font'\n ]\n }];\n this.finder = new GreedyInlineFormatFinder(this.format, options.cssAttr);\n },\n options: { palette: 'websafe' },\n update: function () {\n this._widget.close();\n },\n command: function (commandArguments) {\n var options = this.options, format = this.format, style = {};\n return new Editor.FormatCommand(extend(commandArguments, {\n formatter: function () {\n style[options.domAttr] = commandArguments.value;\n return new GreedyInlineFormatter(format, { style: style }, options.cssAttr);\n }\n }));\n },\n initialize: function (ui, initOptions) {\n var that = this, editor = initOptions.editor, toolName = this.name, options = extend({}, ColorTool.fn.options, this.options), palette = options.palette, columns = options.columns;\n ui = this._widget = new kendo.ui.ColorPicker(ui, {\n toolIcon: 'k-icon k-i-' + EditorUtils.getToolCssClass(options.name),\n palette: palette,\n columns: columns,\n change: function () {\n var color = ui.value();\n if (kendo.support.browser.msie && that.storedRange && that._inputFocused) {\n editor.selectRange(that.storedRange);\n }\n if (color) {\n Tool.exec(editor, toolName, color);\n }\n delete that.storedRange;\n delete that._inputFocused;\n editor.focus();\n },\n open: function (e) {\n var picker = e.sender;\n that.storedRange = editor.getRange();\n picker._popup.element.on(MOUSEDOWN_NS, function (e) {\n if (!$(e.target).is('input.k-color-value')) {\n e.preventDefault();\n }\n });\n if (!picker._popup.element.is('[unselectable=\\'on\\']')) {\n picker._popup.element.attr({ unselectable: 'on' }).find('*:not(input)').attr('unselectable', 'on').end().find('input').on('focus', function () {\n that._inputFocused = true;\n });\n }\n },\n close: function (e) {\n e.sender._popup.element.off(MOUSEDOWN_NS);\n if (kendo.support.browser.msie && that.storedRange && that._inputFocused) {\n editor.selectRange(that.storedRange);\n }\n },\n activate: function (e) {\n e.preventDefault();\n if (e.sender._value.toCssRgba() === 'rgba(255, 255, 255, 0)') {\n return;\n }\n ui.trigger('change');\n }\n });\n ui.wrapper.attr({\n title: initOptions.title,\n unselectable: 'on'\n }).find('*:not(input)').attr('unselectable', 'on');\n ui.value('transparent');\n }\n });\n extend(Editor, {\n InlineFormatFinder: InlineFormatFinder,\n InlineFormatter: InlineFormatter,\n DelayedExecutionTool: DelayedExecutionTool,\n GreedyInlineFormatFinder: GreedyInlineFormatFinder,\n GreedyInlineFormatter: GreedyInlineFormatter,\n InlineFormatTool: InlineFormatTool,\n FontTool: FontTool,\n ColorTool: ColorTool\n });\n registerFormat('bold', [\n {\n tags: [\n 'strong',\n 'b'\n ]\n },\n {\n tags: ['span'],\n attr: { style: { fontWeight: 'bold' } }\n }\n ]);\n registerTool('bold', new InlineFormatTool({\n key: 'B',\n ctrl: true,\n format: formats.bold,\n template: new ToolTemplate({\n template: EditorUtils.buttonTemplate,\n title: 'Bold'\n })\n }));\n registerFormat('italic', [\n {\n tags: [\n 'em',\n 'i'\n ]\n },\n {\n tags: ['span'],\n attr: { style: { fontStyle: 'italic' } }\n }\n ]);\n registerTool('italic', new InlineFormatTool({\n key: 'I',\n ctrl: true,\n format: formats.italic,\n template: new ToolTemplate({\n template: EditorUtils.buttonTemplate,\n title: 'Italic'\n })\n }));\n registerFormat('underline', [\n {\n tags: ['span'],\n attr: { style: { textDecoration: 'underline' } }\n },\n { tags: ['u'] }\n ]);\n registerTool('underline', new InlineFormatTool({\n key: 'U',\n ctrl: true,\n format: formats.underline,\n template: new ToolTemplate({\n template: EditorUtils.buttonTemplate,\n title: 'Underline'\n })\n }));\n registerFormat('strikethrough', [\n {\n tags: [\n 'del',\n 'strike'\n ]\n },\n {\n tags: ['span'],\n attr: { style: { textDecoration: 'line-through' } }\n }\n ]);\n registerTool('strikethrough', new InlineFormatTool({\n format: formats.strikethrough,\n template: new ToolTemplate({\n template: EditorUtils.buttonTemplate,\n title: 'Strikethrough'\n })\n }));\n registerFormat('superscript', [{ tags: ['sup'] }]);\n registerTool('superscript', new InlineFormatTool({\n format: formats.superscript,\n template: new ToolTemplate({\n template: EditorUtils.buttonTemplate,\n title: 'Superscript'\n })\n }));\n registerFormat('subscript', [{ tags: ['sub'] }]);\n registerTool('subscript', new InlineFormatTool({\n format: formats.subscript,\n template: new ToolTemplate({\n template: EditorUtils.buttonTemplate,\n title: 'Subscript'\n })\n }));\n registerTool('foreColor', new ColorTool({\n cssAttr: 'color',\n domAttr: 'color',\n name: 'foreColor',\n template: new ToolTemplate({\n template: EditorUtils.colorPickerTemplate,\n title: 'Color'\n })\n }));\n registerTool('backColor', new ColorTool({\n cssAttr: 'background-color',\n domAttr: 'backgroundColor',\n name: 'backColor',\n template: new ToolTemplate({\n template: EditorUtils.colorPickerTemplate,\n title: 'Background Color'\n })\n }));\n registerTool('fontName', new FontTool({\n cssAttr: 'font-family',\n domAttr: 'fontFamily',\n name: 'fontName',\n defaultValue: [{\n text: 'fontNameInherit',\n value: 'inherit'\n }],\n template: new ToolTemplate({\n template: EditorUtils.comboBoxTemplate,\n title: 'Font Name'\n })\n }));\n registerTool('fontSize', new FontTool({\n cssAttr: 'font-size',\n domAttr: 'fontSize',\n name: 'fontSize',\n defaultValue: [{\n text: 'fontSizeInherit',\n value: 'inherit'\n }],\n template: new ToolTemplate({\n template: EditorUtils.comboBoxTemplate,\n title: 'Font Size'\n })\n }));\n }(window.kendo.jQuery));\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('editor/plugins/link', ['editor/plugins/inlineformat'], f);\n}(function () {\n (function ($, undefined) {\n var kendo = window.kendo, Class = kendo.Class, extend = $.extend, proxy = $.proxy, Editor = kendo.ui.editor, dom = Editor.Dom, RangeUtils = Editor.RangeUtils, EditorUtils = Editor.EditorUtils, Command = Editor.Command, Tool = Editor.Tool, ToolTemplate = Editor.ToolTemplate, InlineFormatter = Editor.InlineFormatter, InlineFormatFinder = Editor.InlineFormatFinder, textNodes = RangeUtils.textNodes, editableTextNodes = RangeUtils.editableTextNodes, registerTool = Editor.EditorUtils.registerTool, keys = kendo.keys;\n var HTTP_PROTOCOL = 'http://';\n var protocolRegExp = /^\\w*:\\/\\//;\n var endLinkCharsRegExp = /[\\w\\/\\$\\-_\\*\\?]/i;\n var LinkFormatFinder = Class.extend({\n findSuitable: function (sourceNode) {\n return dom.parentOfType(sourceNode, ['a']);\n }\n });\n var LinkFormatter = Class.extend({\n init: function () {\n this.finder = new LinkFormatFinder();\n },\n apply: function (range, attributes) {\n var nodes = this.immutables ? editableTextNodes(range) : textNodes(range);\n var markers, doc, formatter, a, parent;\n if (attributes.innerText) {\n doc = RangeUtils.documentFromRange(range);\n markers = RangeUtils.getMarkers(range);\n range.deleteContents();\n a = dom.create(doc, 'a', attributes);\n range.insertNode(a);\n parent = a.parentNode;\n if (dom.name(parent) == 'a') {\n dom.insertAfter(a, parent);\n }\n if (dom.emptyNode(parent)) {\n dom.remove(parent);\n }\n var ref = a;\n for (var i = 0; i < markers.length; i++) {\n dom.insertAfter(markers[i], ref);\n ref = markers[i];\n }\n if (markers.length) {\n dom.insertBefore(doc.createTextNode('\\uFEFF'), markers[1] || markers[0]);\n dom.insertAfter(doc.createTextNode('\\uFEFF'), markers[1] || markers[0]);\n range.setStartBefore(markers[0]);\n range.setEndAfter(markers[markers.length - 1]);\n }\n } else {\n formatter = new InlineFormatter([{ tags: ['a'] }], attributes);\n formatter.finder = this.finder;\n formatter.apply(nodes);\n }\n }\n });\n var UnlinkCommand = Command.extend({\n init: function (options) {\n var that = this;\n options.formatter = {\n toggle: function (range) {\n var nodes = that.immutables() ? editableTextNodes(range) : textNodes(range);\n new InlineFormatter([{ tags: ['a'] }]).remove(nodes);\n }\n };\n this.options = options;\n Command.fn.init.call(this, options);\n }\n });\n var LinkCommand = Command.extend({\n init: function (options) {\n var that;\n this.options = options;\n Command.fn.init.call(this, options);\n this.formatter = new LinkFormatter();\n if (!options.url) {\n this.attributes = null;\n this.async = true;\n } else {\n this.exec = function () {\n this.formatter.immutables = that && that.immutables();\n this.formatter.apply(options.range, {\n href: options.url,\n innerText: options.text || options.url,\n target: options.target\n });\n };\n }\n },\n _dialogTemplate: function () {\n return kendo.template('
          ' + '
          ' + '
          ' + '' + '
          ' + '
          ' + '' + '
          ' + '
          ' + '' + '
          ' + '
          ' + '' + '
          ' + '
          ' + '' + '
          ' + '
          ' + '' + '
          ' + '
          ' + '
          ' + '' + '' + '
          ' + '
          ' + '' + '' + '
          ' + '
          ' + '
          ')({ messages: this.editor.options.messages });\n },\n exec: function () {\n var messages = this.editor.options.messages;\n this._initialText = '';\n this._range = this.lockRange(true);\n this.formatter.immutables = this.immutables();\n var nodes = textNodes(this._range);\n var a = nodes.length ? this.formatter.finder.findSuitable(nodes[0]) : null;\n var img = nodes.length && dom.name(nodes[0]) == 'img';\n var dialog = this.createDialog(this._dialogTemplate(), {\n title: messages.createLink,\n close: proxy(this._close, this),\n visible: false\n });\n if (a) {\n this._range.selectNodeContents(a);\n nodes = textNodes(this._range);\n }\n this._initialText = this.linkText(nodes);\n dialog.find('.k-dialog-insert').click(proxy(this._apply, this)).end().find('.k-dialog-close').click(proxy(this._close, this)).end().find('.k-edit-field input').keydown(proxy(this._keydown, this)).end().find('#k-editor-link-url').val(this.linkUrl(a)).end().find('#k-editor-link-text').val(this._initialText).end().find('#k-editor-link-title').val(a ? a.title : '').end().find('#k-editor-link-target').attr('checked', a ? a.target == '_blank' : false).end().find('.k-editor-link-text-row').toggle(!img);\n this._dialog = dialog.data('kendoWindow').center().open();\n $('#k-editor-link-url', dialog).focus().select();\n },\n _keydown: function (e) {\n var keys = kendo.keys;\n if (e.keyCode == keys.ENTER) {\n this._apply(e);\n } else if (e.keyCode == keys.ESC) {\n this._close(e);\n }\n },\n _apply: function (e) {\n var element = this._dialog.element;\n var href = $('#k-editor-link-url', element).val();\n var title, text, target;\n var textInput = $('#k-editor-link-text', element);\n if (href && href != HTTP_PROTOCOL) {\n if (href.indexOf('@') > 0 && !/^(\\w+:)|(\\/\\/)/i.test(href)) {\n href = 'mailto:' + href;\n }\n this.attributes = { href: href };\n title = $('#k-editor-link-title', element).val();\n if (title) {\n this.attributes.title = title;\n }\n if (textInput.is(':visible')) {\n text = textInput.val();\n if (!text && !this._initialText) {\n this.attributes.innerText = href;\n } else if (text && text !== this._initialText) {\n this.attributes.innerText = dom.stripBom(text);\n }\n }\n target = $('#k-editor-link-target', element).is(':checked');\n this.attributes.target = target ? '_blank' : null;\n this.formatter.apply(this._range, this.attributes);\n }\n this._close(e);\n if (this.change) {\n this.change();\n }\n },\n _close: function (e) {\n e.preventDefault();\n this._dialog.destroy();\n dom.windowFromDocument(RangeUtils.documentFromRange(this._range)).focus();\n this.releaseRange(this._range);\n },\n linkUrl: function (anchor) {\n if (anchor) {\n return anchor.getAttribute('href', 2);\n }\n return HTTP_PROTOCOL;\n },\n linkText: function (nodes) {\n var text = '';\n var i;\n for (i = 0; i < nodes.length; i++) {\n text += nodes[i].nodeValue;\n }\n return dom.stripBom(text || '');\n },\n redo: function () {\n var range = this.lockRange(true);\n this.formatter.apply(range, this.attributes);\n this.releaseRange(range);\n }\n });\n var AutoLinkCommand = Command.extend({\n init: function (options) {\n Command.fn.init.call(this, options);\n this.formatter = new LinkFormatter();\n },\n exec: function () {\n var detectedLink = this.detectLink();\n if (!detectedLink) {\n return;\n }\n var range = this.getRange();\n var linkMarker = new kendo.ui.editor.Marker();\n var linkRange = range.cloneRange();\n linkRange.setStart(detectedLink.start.node, detectedLink.start.offset);\n linkRange.setEnd(detectedLink.end.node, detectedLink.end.offset);\n range = this.lockRange();\n linkMarker.add(linkRange);\n this.formatter.apply(linkRange, { href: this._ensureWebProtocol(detectedLink.text) });\n linkMarker.remove(linkRange);\n this.releaseRange(range);\n },\n detectLink: function () {\n var range = this.getRange();\n var startNode = range.startContainer;\n var startOffset = range.startOffset;\n var prev = startNode.previousSibling;\n if (!prev && (dom.isBom(startNode) && !startNode.nextSibling || !startOffset && dom.isDataNode(startNode))) {\n startNode = startNode.parentNode;\n startOffset = 0;\n }\n var traverser = new LeftDomTextTraverser({\n node: startNode,\n offset: startOffset,\n cancelAtNode: function (node) {\n return node && dom.name(node) === 'a';\n }\n });\n var detection = new DomTextLinkDetection(traverser);\n return detection.detectLink();\n },\n changesContent: function () {\n return !!this.detectLink();\n },\n _ensureWebProtocol: function (linkText) {\n var hasProtocol = this._hasProtocolPrefix(linkText);\n return hasProtocol ? linkText : this._prefixWithWebProtocol(linkText);\n },\n _hasProtocolPrefix: function (linkText) {\n return protocolRegExp.test(linkText);\n },\n _prefixWithWebProtocol: function (linkText) {\n return HTTP_PROTOCOL + linkText;\n }\n });\n var UnlinkTool = Tool.extend({\n init: function (options) {\n this.options = options;\n this.finder = new InlineFormatFinder([{ tags: ['a'] }]);\n Tool.fn.init.call(this, $.extend(options, { command: UnlinkCommand }));\n },\n initialize: function (ui, options) {\n Tool.fn.initialize.call(this, ui, options);\n ui.addClass('k-state-disabled');\n },\n update: function (ui, nodes) {\n ui.toggleClass('k-state-disabled', !this.finder.isFormatted(nodes)).removeClass('k-state-hover');\n }\n });\n var DomTextLinkDetection = Class.extend({\n init: function (traverser) {\n this.traverser = traverser;\n this.start = DomPos();\n this.end = DomPos();\n this.text = '';\n },\n detectLink: function () {\n var node = this.traverser.node;\n var offset = this.traverser.offset;\n if (dom.isDataNode(node)) {\n var text = node.data.substring(0, offset);\n if (/\\s{2}$/.test(dom.stripBom(text))) {\n return;\n }\n } else if (offset === 0) {\n var p = dom.closestEditableOfType(node, dom.blockElements);\n if (p && p.previousSibling) {\n this.traverser.init({ node: p.previousSibling });\n }\n }\n this.traverser.traverse($.proxy(this._detectEnd, this));\n if (!this.end.blank()) {\n this.traverser = this.traverser.clone(this.end);\n this.traverser.traverse($.proxy(this._detectStart, this));\n if (!this._isLinkDetected()) {\n var puntuationOptions = this.traverser.extendOptions(this.start);\n var puntuationTraverser = new RightDomTextTraverser(puntuationOptions);\n puntuationTraverser.traverse($.proxy(this._skipStartPuntuation, this));\n if (!this._isLinkDetected()) {\n this.start = DomPos();\n }\n }\n }\n if (this.start.blank()) {\n return null;\n } else {\n return {\n start: this.start,\n end: this.end,\n text: this.text\n };\n }\n },\n _isLinkDetected: function () {\n return protocolRegExp.test(this.text) || /^w{3}\\./i.test(this.text);\n },\n _detectEnd: function (text, node) {\n var i = lastIndexOfRegExp(text, endLinkCharsRegExp);\n if (i > -1) {\n this.end.node = node;\n this.end.offset = i + 1;\n return false;\n }\n },\n _detectStart: function (text, node) {\n var i = lastIndexOfRegExp(text, /\\s/);\n var ii = i + 1;\n this.text = text.substring(ii) + this.text;\n this.start.node = node;\n this.start.offset = ii;\n if (i > -1) {\n return false;\n }\n },\n _skipStartPuntuation: function (text, node, offset) {\n var i = indexOfRegExp(text, /\\w/);\n var ii = i;\n if (i === -1) {\n ii = text.length;\n }\n this.text = this.text.substring(ii);\n this.start.node = node;\n this.start.offset = ii + (offset | 0);\n if (i > -1) {\n return false;\n }\n }\n });\n function lastIndexOfRegExp(str, search) {\n var i = str.length;\n while (i-- && !search.test(str[i])) {\n }\n return i;\n }\n function indexOfRegExp(str, search) {\n var r = search.exec(str);\n return r ? r.index : -1;\n }\n var DomPos = function () {\n return {\n node: null,\n offset: null,\n blank: function () {\n return this.node === null && this.offset === null;\n }\n };\n };\n var DomTextTraverser = Class.extend({\n init: function (options) {\n this.node = options.node;\n this.offset = options.offset === undefined ? dom.isDataNode(this.node) && this.node.length || 0 : options.offset;\n this.cancelAtNode = options.cancelAtNode || this.cancelAtNode || $.noop;\n },\n traverse: function (callback) {\n if (!callback) {\n return;\n }\n this.cancel = false;\n this._traverse(callback, this.node, this.offset);\n },\n _traverse: function (callback, node, offset) {\n if (!node || this.cancel) {\n return;\n }\n if (node.nodeType === 3) {\n var text = node.data;\n if (offset !== undefined) {\n text = this.subText(text, offset);\n }\n this.cancel = callback(text, node, offset) === false;\n } else {\n var edgeNode = this.edgeNode(node);\n this.cancel = this.cancel || this.cancelAtNode(edgeNode);\n return this._traverse(callback, edgeNode);\n }\n var next = this.next(node);\n if (!next) {\n var parent = node.parentNode;\n while (!next && dom.isInline(parent)) {\n next = this.next(parent);\n parent = parent.parentNode;\n }\n }\n this.cancel = this.cancel || this.cancelAtNode(next);\n this._traverse(callback, next);\n },\n extendOptions: function (o) {\n return $.extend({\n node: this.node,\n offset: this.offset,\n cancelAtNode: this.cancelAtNode\n }, o || {});\n },\n edgeNode: function (node) {\n },\n next: function (node) {\n },\n subText: function (text, offset) {\n }\n });\n var LeftDomTextTraverser = DomTextTraverser.extend({\n subText: function (text, splitIndex) {\n return text.substring(0, splitIndex);\n },\n next: function (node) {\n return node.previousSibling;\n },\n edgeNode: function (node) {\n return node.lastChild;\n },\n clone: function (options) {\n var o = this.extendOptions(options);\n return new LeftDomTextTraverser(o);\n }\n });\n var RightDomTextTraverser = DomTextTraverser.extend({\n subText: function (text, splitIndex) {\n return text.substring(splitIndex);\n },\n next: function (node) {\n return node.nextSibling;\n },\n edgeNode: function (node) {\n return node.firstChild;\n },\n clone: function (options) {\n var o = this.extendOptions(options);\n return new RightDomTextTraverser(o);\n }\n });\n extend(kendo.ui.editor, {\n LinkFormatFinder: LinkFormatFinder,\n LinkFormatter: LinkFormatter,\n UnlinkCommand: UnlinkCommand,\n LinkCommand: LinkCommand,\n AutoLinkCommand: AutoLinkCommand,\n UnlinkTool: UnlinkTool,\n DomTextLinkDetection: DomTextLinkDetection,\n LeftDomTextTraverser: LeftDomTextTraverser,\n RightDomTextTraverser: RightDomTextTraverser\n });\n registerTool('createLink', new Tool({\n key: 'K',\n ctrl: true,\n command: LinkCommand,\n template: new ToolTemplate({\n template: EditorUtils.buttonTemplate,\n title: 'Create Link'\n })\n }));\n registerTool('unlink', new UnlinkTool({\n key: 'K',\n ctrl: true,\n shift: true,\n template: new ToolTemplate({\n template: EditorUtils.buttonTemplate,\n title: 'Remove Link'\n })\n }));\n registerTool('autoLink', new Tool({\n key: [\n keys.ENTER,\n keys.SPACEBAR\n ],\n keyPressCommand: true,\n command: AutoLinkCommand\n }));\n }(window.kendo.jQuery));\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('editor/plugins/formatblock', ['editor/plugins/format'], f);\n}(function () {\n (function ($) {\n var kendo = window.kendo, Class = kendo.Class, extend = $.extend, Editor = kendo.ui.editor, formats = kendo.ui.Editor.fn.options.formats, dom = Editor.Dom, ToolTemplate = Editor.ToolTemplate, FormatTool = Editor.FormatTool, EditorUtils = Editor.EditorUtils, registerTool = EditorUtils.registerTool, registerFormat = EditorUtils.registerFormat, RangeUtils = Editor.RangeUtils;\n var BlockFormatFinder = Class.extend({\n init: function (format) {\n this.format = format;\n },\n contains: function (node, children) {\n var i, len, child;\n for (i = 0, len = children.length; i < len; i++) {\n child = children[i];\n if (!child || !dom.isAncestorOrSelf(node, child)) {\n return false;\n }\n }\n return true;\n },\n findSuitable: function (nodes) {\n var format = this.format, suitable = [], i, len, candidate;\n for (i = 0, len = nodes.length; i < len; i++) {\n for (var f = format.length - 1; f >= 0; f--) {\n candidate = dom.ofType(nodes[i], format[f].tags) ? nodes[i] : dom.closestEditableOfType(nodes[i], format[f].tags);\n if (candidate) {\n break;\n }\n }\n if (!candidate || candidate.contentEditable === 'true') {\n return [];\n }\n if ($.inArray(candidate, suitable) < 0) {\n suitable.push(candidate);\n }\n }\n this._resolveListsItems(suitable);\n for (i = 0, len = suitable.length; i < len; i++) {\n if (this.contains(suitable[i], suitable)) {\n return [suitable[i]];\n }\n }\n return suitable;\n },\n _resolveListsItems: function (nodes) {\n var i, node, wrapper;\n for (i = 0; i < nodes.length; i++) {\n node = nodes[i];\n wrapper = dom.is(node, 'li') ? node : dom.wrapper(node);\n wrapper = wrapper && dom.list(wrapper) ? wrapper.children[0] : wrapper;\n if (dom.is(wrapper, 'li')) {\n node = nodes[i] = wrapper;\n }\n }\n },\n findFormat: function (sourceNode) {\n var format = this.format, i, len, node, tags, attributes;\n var editableParent = dom.editableParent(sourceNode);\n var immutables = this.options && this.options.immutables;\n var ImmutablesNS = Editor.Immutables;\n for (i = 0, len = format.length; i < len; i++) {\n node = sourceNode;\n tags = format[i].tags;\n attributes = format[i].attr;\n if (immutables && tags && tags[0] == 'immutable') {\n var immutable = ImmutablesNS.immutableParent(node);\n if (immutable && dom.attrEquals(immutable, attributes)) {\n return node;\n }\n }\n while (node && dom.isAncestorOf(editableParent, node)) {\n if (dom.ofType(node, tags) && dom.attrEquals(node, attributes)) {\n return node;\n }\n node = node.parentNode;\n }\n }\n return null;\n },\n getFormat: function (nodes) {\n var that = this, findFormat = function (node) {\n return that.findFormat(dom.isDataNode(node) ? node.parentNode : node);\n }, result = findFormat(nodes[0]), i, len;\n if (!result) {\n return '';\n }\n for (i = 1, len = nodes.length; i < len; i++) {\n if (result != findFormat(nodes[i])) {\n return '';\n }\n }\n return result.nodeName.toLowerCase();\n },\n isFormatted: function (nodes) {\n for (var i = 0, len = nodes.length; i < len; i++) {\n if (!this.findFormat(nodes[i])) {\n return false;\n }\n }\n return true;\n }\n });\n var BlockFormatter = Class.extend({\n init: function (format, values) {\n this.format = format;\n this.values = values;\n this.finder = new BlockFormatFinder(format);\n },\n wrap: function (tag, attributes, nodes) {\n var commonAncestor = nodes.length == 1 ? dom.blockParentOrBody(nodes[0]) : dom.commonAncestor.apply(null, nodes);\n if (dom.isInline(commonAncestor)) {\n commonAncestor = dom.blockParentOrBody(commonAncestor);\n }\n var ancestors = dom.significantChildNodes(commonAncestor), position = dom.findNodeIndex(ancestors[0]), wrapper = dom.create(commonAncestor.ownerDocument, tag, attributes), i, ancestor;\n for (i = 0; i < ancestors.length; i++) {\n ancestor = ancestors[i];\n if (dom.isBlock(ancestor)) {\n dom.attr(ancestor, attributes);\n if (wrapper.childNodes.length) {\n dom.insertBefore(wrapper, ancestor);\n wrapper = wrapper.cloneNode(false);\n }\n position = dom.findNodeIndex(ancestor) + 1;\n continue;\n }\n wrapper.appendChild(ancestor);\n }\n if (wrapper.firstChild) {\n dom.insertAt(commonAncestor, wrapper, position);\n }\n },\n apply: function (nodes) {\n var format, values = this.values;\n function attributes(format) {\n return extend({}, format && format.attr, values);\n }\n this._handleImmutables(nodes, true);\n var images = dom.filter('img', nodes);\n var imageFormat = EditorUtils.formatByName('img', this.format);\n var imageAttributes = attributes(imageFormat);\n $.each(images, function () {\n dom.attr(this, imageAttributes);\n });\n if (images.length == nodes.length) {\n return;\n }\n var nonImages = dom.filter('img', nodes, true);\n var formatNodes = this.finder.findSuitable(nonImages);\n if (formatNodes.length) {\n for (var i = 0, len = formatNodes.length; i < len; i++) {\n format = EditorUtils.formatByName(dom.name(formatNodes[i]), this.format);\n dom.attr(formatNodes[i], attributes(format));\n }\n } else {\n format = this.format[0];\n this.wrap(format.tags[0], attributes(format), nonImages);\n }\n },\n _handleImmutables: function (nodes, applyFormatting) {\n if (!this.immutables()) {\n return;\n }\n var immutableFormat = EditorUtils.formatByName('immutable', this.format);\n if (!immutableFormat) {\n return;\n }\n var ImmutablesNS = Editor.Immutables;\n var l = nodes.length - 1;\n for (var i = l; i >= 0; i--) {\n var immutableParent = ImmutablesNS.immutableParent(nodes[i]);\n if (!immutableParent) {\n continue;\n }\n if (immutableParent !== nodes[i + 1]) {\n if (applyFormatting) {\n dom.attr(immutableParent, immutableFormat.attr);\n } else {\n dom.unstyle(immutableParent, immutableFormat.attr.style);\n }\n }\n nodes.splice(i, 1);\n }\n },\n immutables: function () {\n return this.editor && this.editor.options.immutables;\n },\n remove: function (nodes) {\n var i, l, formatNode, namedFormat, name;\n this._handleImmutables(nodes, false);\n for (i = 0, l = nodes.length; i < l; i++) {\n formatNode = this.finder.findFormat(nodes[i]);\n if (formatNode) {\n name = dom.name(formatNode);\n namedFormat = EditorUtils.formatByName(name, this.format);\n if (namedFormat.attr.style) {\n dom.unstyle(formatNode, namedFormat.attr.style);\n }\n if (namedFormat.attr.className) {\n dom.removeClass(formatNode, namedFormat.attr.className);\n }\n }\n }\n },\n toggle: function (range) {\n var that = this, nodes = dom.filterBy(RangeUtils.nodes(range), dom.htmlIndentSpace, true);\n if (that.finder.isFormatted(nodes)) {\n that.remove(nodes);\n } else {\n that.apply(nodes);\n }\n }\n });\n var GreedyBlockFormatter = Class.extend({\n init: function (format, values) {\n var that = this;\n that.format = format;\n that.values = values;\n that.finder = new BlockFormatFinder(format);\n },\n apply: function (nodes) {\n var format = this.format;\n var blocks = dom.blockParents(nodes);\n var formatTag = format[0].tags[0];\n var i, len, list, formatter, range;\n var element;\n var tagName;\n var block;\n var immutalbeParent;\n if (blocks.length) {\n for (i = 0, len = blocks.length; i < len; i++) {\n block = blocks[i];\n immutalbeParent = this.immutables() && Editor.Immutables.immutableParent(block);\n if (!immutalbeParent) {\n tagName = dom.name(block);\n if (tagName == 'li') {\n list = block.parentNode;\n formatter = new Editor.ListFormatter(list.nodeName.toLowerCase(), formatTag);\n range = this.editor.createRange();\n range.selectNode(blocks[i]);\n formatter.toggle(range);\n } else if (formatTag && (tagName == 'td' || block.attributes.contentEditable)) {\n new BlockFormatter(format, this.values).apply(block.childNodes);\n } else {\n element = dom.changeTag(block, formatTag);\n dom.attr(element, format[0].attr);\n }\n }\n }\n } else {\n var blockFormatter = new BlockFormatter(format, this.values);\n blockFormatter.editor = this.editor;\n blockFormatter.apply(nodes);\n }\n },\n toggle: function (range) {\n var nodes = RangeUtils.textNodes(range);\n if (!nodes.length) {\n range.selectNodeContents(range.commonAncestorContainer);\n nodes = RangeUtils.textNodes(range);\n if (!nodes.length) {\n nodes = dom.significantChildNodes(range.commonAncestorContainer);\n }\n }\n this.apply(nodes);\n },\n immutables: function () {\n return this.editor && this.editor.options.immutables;\n }\n });\n var BlockFormatTool = FormatTool.extend({\n init: function (options) {\n FormatTool.fn.init.call(this, extend(options, {\n finder: new BlockFormatFinder(options.format),\n formatter: function () {\n return new BlockFormatter(options.format);\n }\n }));\n }\n });\n extend(Editor, {\n BlockFormatFinder: BlockFormatFinder,\n BlockFormatter: BlockFormatter,\n GreedyBlockFormatter: GreedyBlockFormatter,\n BlockFormatTool: BlockFormatTool\n });\n var listElements = [\n 'ul',\n 'ol',\n 'li'\n ];\n registerFormat('justifyLeft', [\n {\n tags: dom.nonListBlockElements,\n attr: { style: { textAlign: 'left' } }\n },\n {\n tags: ['img'],\n attr: {\n style: {\n 'float': 'left',\n display: '',\n marginLeft: '',\n marginRight: ''\n }\n }\n },\n {\n tags: ['immutable'],\n attr: {\n style: {\n 'float': 'left',\n display: '',\n marginLeft: '',\n marginRight: ''\n }\n }\n },\n {\n tags: listElements,\n attr: {\n style: {\n textAlign: 'left',\n listStylePosition: ''\n }\n }\n }\n ]);\n registerTool('justifyLeft', new BlockFormatTool({\n format: formats.justifyLeft,\n template: new ToolTemplate({\n template: EditorUtils.buttonTemplate,\n title: 'Justify Left'\n })\n }));\n registerFormat('justifyCenter', [\n {\n tags: dom.nonListBlockElements,\n attr: { style: { textAlign: 'center' } }\n },\n {\n tags: ['img'],\n attr: {\n style: {\n display: 'block',\n marginLeft: 'auto',\n marginRight: 'auto',\n 'float': ''\n }\n }\n },\n {\n tags: ['immutable'],\n attr: {\n style: {\n display: 'block',\n marginLeft: 'auto',\n marginRight: 'auto',\n 'float': ''\n }\n }\n },\n {\n tags: listElements,\n attr: {\n style: {\n textAlign: 'center',\n listStylePosition: 'inside'\n }\n }\n }\n ]);\n registerTool('justifyCenter', new BlockFormatTool({\n format: formats.justifyCenter,\n template: new ToolTemplate({\n template: EditorUtils.buttonTemplate,\n title: 'Justify Center'\n })\n }));\n registerFormat('justifyRight', [\n {\n tags: dom.nonListBlockElements,\n attr: { style: { textAlign: 'right' } }\n },\n {\n tags: ['img'],\n attr: {\n style: {\n 'float': 'right',\n display: '',\n marginLeft: '',\n marginRight: ''\n }\n }\n },\n {\n tags: ['immutable'],\n attr: {\n style: {\n 'float': 'right',\n display: '',\n marginLeft: '',\n marginRight: ''\n }\n }\n },\n {\n tags: listElements,\n attr: {\n style: {\n textAlign: 'right',\n listStylePosition: 'inside'\n }\n }\n }\n ]);\n registerTool('justifyRight', new BlockFormatTool({\n format: formats.justifyRight,\n template: new ToolTemplate({\n template: EditorUtils.buttonTemplate,\n title: 'Justify Right'\n })\n }));\n registerFormat('justifyFull', [\n {\n tags: dom.nonListBlockElements,\n attr: { style: { textAlign: 'justify' } }\n },\n {\n tags: ['img'],\n attr: {\n style: {\n display: 'block',\n marginLeft: 'auto',\n marginRight: 'auto',\n 'float': ''\n }\n }\n },\n {\n tags: ['immutable'],\n attr: {\n style: {\n display: 'block',\n marginLeft: 'auto',\n marginRight: 'auto',\n 'float': ''\n }\n }\n },\n {\n tags: listElements,\n attr: {\n style: {\n textAlign: 'justify',\n listStylePosition: ''\n }\n }\n }\n ]);\n registerTool('justifyFull', new BlockFormatTool({\n format: formats.justifyFull,\n template: new ToolTemplate({\n template: EditorUtils.buttonTemplate,\n title: 'Justify Full'\n })\n }));\n }(window.kendo.jQuery));\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('editor/plugins/lists', ['editor/plugins/formatblock'], f);\n}(function () {\n (function ($) {\n var kendo = window.kendo, Class = kendo.Class, extend = $.extend, Editor = kendo.ui.editor, dom = Editor.Dom, RangeUtils = Editor.RangeUtils, EditorUtils = Editor.EditorUtils, Command = Editor.Command, ToolTemplate = Editor.ToolTemplate, FormatTool = Editor.FormatTool, BlockFormatFinder = Editor.BlockFormatFinder, textNodes = RangeUtils.textNodes, registerTool = Editor.EditorUtils.registerTool;\n var ListFormatFinder = BlockFormatFinder.extend({\n init: function (tag) {\n this.tag = tag;\n var tags = this.tags = [\n tag == 'ul' ? 'ol' : 'ul',\n tag\n ];\n BlockFormatFinder.fn.init.call(this, [{ tags: tags }]);\n },\n isFormatted: function (nodes) {\n var formatNodes = [];\n var formatNode, i;\n for (i = 0; i < nodes.length; i++) {\n formatNode = this.findFormat(nodes[i]);\n if (formatNode && dom.name(formatNode) == this.tag) {\n formatNodes.push(formatNode);\n }\n }\n if (formatNodes.length < 1) {\n return false;\n }\n if (formatNodes.length != nodes.length) {\n return false;\n }\n for (i = 0; i < formatNodes.length; i++) {\n if (formatNodes[i].parentNode != formatNode.parentNode) {\n break;\n }\n if (formatNodes[i] != formatNode) {\n return false;\n }\n }\n return true;\n },\n findSuitable: function (nodes) {\n var candidate = this.findFormat(nodes[0]);\n if (candidate && dom.name(candidate) == this.tag) {\n return candidate;\n }\n return null;\n }\n });\n var ListFormatter = Class.extend({\n init: function (tag, unwrapTag) {\n var that = this;\n that.finder = new ListFormatFinder(tag);\n that.tag = tag;\n that.unwrapTag = unwrapTag;\n },\n isList: function (node) {\n return dom.list(node);\n },\n immutables: function () {\n return this.editor && !!this.editor.options.immutables;\n },\n wrap: function (list, nodes) {\n var li = dom.create(list.ownerDocument, 'li'), i, node, isImmutable = this.immutables() ? Editor.Immutables.immutable : $.noop;\n for (i = 0; i < nodes.length; i++) {\n node = nodes[i];\n if (dom.is(node, 'li')) {\n list.appendChild(node);\n continue;\n }\n if (this.isList(node)) {\n while (node.firstChild) {\n list.appendChild(node.firstChild);\n }\n continue;\n }\n if (dom.is(node, 'td')) {\n while (node.firstChild) {\n li.appendChild(node.firstChild);\n }\n list.appendChild(li);\n node.appendChild(list);\n list = list.cloneNode(false);\n li = li.cloneNode(false);\n continue;\n }\n li.appendChild(node);\n if (dom.isBlock(node)) {\n list.appendChild(li);\n if (!isImmutable(node)) {\n dom.unwrap(node);\n }\n li = li.cloneNode(false);\n }\n }\n if (li.firstChild) {\n list.appendChild(li);\n }\n },\n containsAny: function (parent, nodes) {\n for (var i = 0; i < nodes.length; i++) {\n if (dom.isAncestorOrSelf(parent, nodes[i])) {\n return true;\n }\n }\n return false;\n },\n suitable: function (candidate, nodes) {\n if (candidate.className == 'k-marker') {\n var sibling = candidate.nextSibling;\n if (sibling && dom.isBlock(sibling)) {\n return false;\n }\n sibling = candidate.previousSibling;\n if (sibling && dom.isBlock(sibling)) {\n return false;\n }\n }\n return this.containsAny(candidate, nodes) || dom.isInline(candidate) || candidate.nodeType == 3;\n },\n _parentLists: function (node) {\n var editable = dom.closestEditable(node);\n return $(node).parentsUntil(editable, 'ul,ol');\n },\n split: function (range) {\n var nodes = textNodes(range);\n var start, end, parents;\n if (nodes.length) {\n start = dom.parentOfType(nodes[0], ['li']);\n end = dom.parentOfType(nodes[nodes.length - 1], ['li']);\n range.setStartBefore(start);\n range.setEndAfter(end);\n for (var i = 0, l = nodes.length; i < l; i++) {\n var formatNode = this.finder.findFormat(nodes[i]);\n if (formatNode) {\n parents = this._parentLists(formatNode);\n if (parents.length) {\n RangeUtils.split(range, parents.last()[0], true);\n } else {\n RangeUtils.split(range, formatNode, true);\n }\n }\n }\n }\n },\n merge: function (tag, formatNode) {\n var prev = formatNode.previousSibling, next;\n while (prev && (prev.className == 'k-marker' || prev.nodeType == 3 && dom.isWhitespace(prev))) {\n prev = prev.previousSibling;\n }\n if (prev && dom.name(prev) == tag) {\n while (formatNode.firstChild) {\n prev.appendChild(formatNode.firstChild);\n }\n dom.remove(formatNode);\n formatNode = prev;\n }\n next = formatNode.nextSibling;\n while (next && (next.className == 'k-marker' || next.nodeType == 3 && dom.isWhitespace(next))) {\n next = next.nextSibling;\n }\n if (next && dom.name(next) == tag) {\n while (formatNode.lastChild) {\n next.insertBefore(formatNode.lastChild, next.firstChild);\n }\n dom.remove(formatNode);\n }\n },\n breakable: function (node) {\n return node != node.ownerDocument.body && !/table|tbody|thead|tr|td/.test(dom.name(node)) && !node.attributes.contentEditable;\n },\n applyOnSection: function (section, nodes) {\n var tag = this.tag;\n var commonAncestor = dom.closestSplittableParent(nodes);\n var ancestors = [];\n var formatNode = this.finder.findSuitable(nodes);\n if (!formatNode) {\n formatNode = new ListFormatFinder(tag == 'ul' ? 'ol' : 'ul').findSuitable(nodes);\n }\n var childNodes;\n if (/table|tbody|thead/.test(dom.name(commonAncestor))) {\n childNodes = $.map(nodes, function (node) {\n return dom.parentOfType(node, ['td']);\n });\n } else {\n childNodes = dom.significantChildNodes(commonAncestor);\n if ($.grep(childNodes, dom.isBlock).length) {\n childNodes = $.grep(childNodes, $.proxy(function (node) {\n return this.containsAny(node, nodes);\n }, this));\n }\n if (!childNodes.length) {\n childNodes = nodes;\n }\n }\n function pushAncestor() {\n ancestors.push(this);\n }\n for (var i = 0; i < childNodes.length; i++) {\n var child = childNodes[i];\n var suitable = (!formatNode || !dom.isAncestorOrSelf(formatNode, child)) && this.suitable(child, nodes);\n if (!suitable) {\n continue;\n }\n if (formatNode && this.isList(child)) {\n $.each(child.children, pushAncestor);\n dom.remove(child);\n } else {\n ancestors.push(child);\n }\n }\n if (ancestors.length == childNodes.length && this.breakable(commonAncestor)) {\n ancestors = [commonAncestor];\n }\n if (!formatNode) {\n formatNode = dom.create(commonAncestor.ownerDocument, tag);\n if (dom.isBlock(ancestors[0])) {\n dom.mergeAttributes(ancestors[0], formatNode);\n }\n dom.insertBefore(formatNode, ancestors[0]);\n }\n this.wrap(formatNode, ancestors);\n while (dom.isBom(formatNode.nextSibling)) {\n dom.remove(formatNode.nextSibling);\n }\n if (!dom.is(formatNode, tag)) {\n dom.changeTag(formatNode, tag);\n }\n this.merge(tag, formatNode);\n },\n apply: function (nodes) {\n var i = 0, sections = [], lastSection, lastNodes, section, node, l = nodes.length, immutableParent = this.immutables() ? Editor.Immutables.immutableParent : $.noop;\n function addLastSection() {\n if (lastSection) {\n sections.push({\n section: lastSection,\n nodes: lastNodes\n });\n }\n }\n for (i = 0; i < l; i++) {\n node = immutableParent(nodes[i]) || nodes[i];\n section = dom.closestEditable(node, [\n 'td',\n 'th',\n 'body'\n ]);\n if (!lastSection || section != lastSection) {\n addLastSection();\n lastNodes = [node];\n lastSection = section;\n } else {\n lastNodes.push(node);\n }\n }\n addLastSection();\n for (i = 0; i < sections.length; i++) {\n this.applyOnSection(sections[i].section, sections[i].nodes);\n }\n },\n unwrap: function (ul) {\n var fragment = ul.ownerDocument.createDocumentFragment(), unwrapTag = this.unwrapTag, parents, li, p, child;\n for (li = ul.firstChild; li; li = li.nextSibling) {\n p = dom.create(ul.ownerDocument, unwrapTag || 'p');\n while (li.firstChild) {\n child = li.firstChild;\n if (dom.isBlock(child)) {\n if (p.firstChild) {\n fragment.appendChild(p);\n p = dom.create(ul.ownerDocument, unwrapTag || 'p');\n }\n fragment.appendChild(child);\n } else {\n p.appendChild(child);\n }\n }\n if (p.firstChild) {\n fragment.appendChild(p);\n }\n }\n parents = this._parentLists(ul);\n if (parents[0]) {\n dom.insertAfter(fragment, parents.last()[0]);\n parents.last().remove();\n } else {\n dom.insertAfter(fragment, ul);\n }\n dom.remove(ul);\n },\n remove: function (nodes) {\n var formatNode;\n for (var i = 0, l = nodes.length; i < l; i++) {\n formatNode = this.finder.findFormat(nodes[i]);\n if (formatNode) {\n this.unwrap(formatNode);\n }\n }\n },\n toggle: function (range) {\n var that = this, nodes = textNodes(range), ancestor = range.commonAncestorContainer;\n if (!nodes.length) {\n range.selectNodeContents(ancestor);\n nodes = textNodes(range);\n if (!nodes.length) {\n var text = ancestor.ownerDocument.createTextNode('');\n range.startContainer.appendChild(text);\n nodes = [text];\n range.selectNode(text.parentNode);\n }\n }\n nodes = dom.filterBy(nodes, dom.htmlIndentSpace, true);\n if (that.finder.isFormatted(nodes)) {\n that.split(range);\n that.remove(nodes);\n } else {\n that.apply(nodes);\n }\n }\n });\n var ListCommand = Command.extend({\n init: function (options) {\n options.formatter = new ListFormatter(options.tag);\n Command.fn.init.call(this, options);\n }\n });\n var ListTool = FormatTool.extend({\n init: function (options) {\n this.options = options;\n FormatTool.fn.init.call(this, extend(options, { finder: new ListFormatFinder(options.tag) }));\n },\n command: function (commandArguments) {\n return new ListCommand(extend(commandArguments, { tag: this.options.tag }));\n }\n });\n extend(Editor, {\n ListFormatFinder: ListFormatFinder,\n ListFormatter: ListFormatter,\n ListCommand: ListCommand,\n ListTool: ListTool\n });\n registerTool('insertUnorderedList', new ListTool({\n tag: 'ul',\n template: new ToolTemplate({\n template: EditorUtils.buttonTemplate,\n title: 'Insert unordered list'\n })\n }));\n registerTool('insertOrderedList', new ListTool({\n tag: 'ol',\n template: new ToolTemplate({\n template: EditorUtils.buttonTemplate,\n title: 'Insert ordered list'\n })\n }));\n }(window.kendo.jQuery));\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('editor/plugins/formatting', ['editor/plugins/inlineformat'], f);\n}(function () {\n (function ($) {\n var kendo = window.kendo, Editor = kendo.ui.editor, Tool = Editor.Tool, ToolTemplate = Editor.ToolTemplate, DelayedExecutionTool = Editor.DelayedExecutionTool, Command = Editor.Command, dom = Editor.Dom, EditorUtils = Editor.EditorUtils, RangeUtils = Editor.RangeUtils, registerTool = EditorUtils.registerTool;\n var FormattingTool = DelayedExecutionTool.extend({\n init: function (options) {\n var that = this;\n Tool.fn.init.call(that, kendo.deepExtend({}, that.options, options));\n that.type = 'kendoSelectBox';\n that.finder = {\n getFormat: function () {\n return '';\n }\n };\n },\n options: {\n items: [\n {\n text: 'Paragraph',\n value: 'p'\n },\n {\n text: 'Quotation',\n value: 'blockquote'\n },\n {\n text: 'Heading 1',\n value: 'h1'\n },\n {\n text: 'Heading 2',\n value: 'h2'\n },\n {\n text: 'Heading 3',\n value: 'h3'\n },\n {\n text: 'Heading 4',\n value: 'h4'\n },\n {\n text: 'Heading 5',\n value: 'h5'\n },\n {\n text: 'Heading 6',\n value: 'h6'\n }\n ],\n width: 110\n },\n toFormattingItem: function (item) {\n var value = item.value;\n if (!value) {\n return item;\n }\n if (item.tag || item.className) {\n return item;\n }\n var dot = value.indexOf('.');\n if (dot === 0) {\n item.className = value.substring(1);\n } else if (dot == -1) {\n item.tag = value;\n } else {\n item.tag = value.substring(0, dot);\n item.className = value.substring(dot + 1);\n }\n return item;\n },\n command: function (args) {\n var that = this;\n var item = args.value;\n item = this.toFormattingItem(item);\n return new Editor.FormatCommand({\n range: args.range,\n formatter: function () {\n var formatter, tags = (item.tag || item.context || 'span').split(','), format = [{\n tags: tags,\n attr: { className: item.className || '' }\n }];\n if ($.inArray(tags[0], dom.inlineElements) >= 0) {\n formatter = new Editor.GreedyInlineFormatter(format);\n } else {\n formatter = new Editor.GreedyBlockFormatter(format);\n }\n formatter.editor = that.editor;\n return formatter;\n }\n });\n },\n initialize: function (ui, initOptions) {\n var editor = initOptions.editor;\n var options = this.options;\n var toolName = options.name;\n var that = this;\n var selectBox;\n that.editor = editor;\n ui.width(options.width);\n selectBox = ui.kendoSelectBox({\n dataTextField: 'text',\n dataValueField: 'value',\n dataSource: options.items || editor.options[toolName],\n title: editor.options.messages[toolName],\n autoSize: true,\n change: function () {\n var dataItem = this.dataItem();\n if (dataItem) {\n Tool.exec(editor, toolName, dataItem.toJSON());\n }\n },\n dataBound: function () {\n var i, items = this.dataSource.data();\n for (i = 0; i < items.length; i++) {\n items[i] = that.toFormattingItem(items[i]);\n }\n },\n highlightFirst: false,\n template: kendo.template('#:data.text#')\n }).data('kendoSelectBox');\n ui.attr('title', initOptions.title);\n selectBox.wrapper.attr('title', initOptions.title);\n ui.addClass('k-decorated').closest('.k-widget').removeClass('k-' + toolName).find('*').addBack().attr('unselectable', 'on');\n },\n getFormattingValue: function (items, nodes) {\n for (var i = 0; i < items.length; i++) {\n var item = items[i];\n var tag = item.tag || item.context || '';\n var className = item.className ? '.' + item.className : '';\n var selector = tag + className;\n var element = $(nodes[0]).closest(selector)[0];\n if (!element) {\n continue;\n }\n if (nodes.length == 1) {\n return item.value;\n }\n for (var n = 1; n < nodes.length; n++) {\n if (!$(nodes[n]).closest(selector)[0]) {\n break;\n } else if (n == nodes.length - 1) {\n return item.value;\n }\n }\n }\n return '';\n },\n update: function (ui, nodes) {\n var selectBox = $(ui).data(this.type);\n if (!selectBox) {\n return;\n }\n var dataSource = selectBox.dataSource, items = dataSource.data(), i, context, ancestor = dom.commonAncestor.apply(null, nodes);\n if (ancestor != dom.closestEditable(ancestor) && this._ancestor == ancestor) {\n return;\n } else {\n this._ancestor = ancestor;\n }\n for (i = 0; i < items.length; i++) {\n context = items[i].context;\n items[i].visible = !context || !!$(ancestor).closest(context).length;\n }\n dataSource.filter([{\n field: 'visible',\n operator: 'eq',\n value: true\n }]);\n DelayedExecutionTool.fn.update.call(this, ui, nodes);\n selectBox.value(this.getFormattingValue(dataSource.view(), nodes));\n selectBox.wrapper.toggleClass('k-state-disabled', !dataSource.view().length);\n },\n destroy: function () {\n this._ancestor = null;\n }\n });\n var CleanFormatCommand = Command.extend({\n exec: function () {\n var range = this.lockRange(true);\n this.tagsToClean = this.options.remove || 'strong,em,span,sup,sub,del,b,i,u,font'.split(',');\n RangeUtils.wrapSelectedElements(range);\n var nodes = RangeUtils.mapAll(range, function (node) {\n return node;\n });\n for (var c = nodes.length - 1; c >= 0; c--) {\n var node = nodes[c];\n if (!this.immutableParent(node)) {\n this.clean(node);\n }\n }\n this.releaseRange(range);\n },\n clean: function (node) {\n if (!node || dom.isMarker(node)) {\n return;\n }\n var name = dom.name(node);\n if (name == 'ul' || name == 'ol') {\n var listFormatter = new Editor.ListFormatter(name);\n var prev = node.previousSibling;\n var next = node.nextSibling;\n listFormatter.unwrap(node);\n for (; prev && prev != next; prev = prev.nextSibling) {\n this.clean(prev);\n }\n } else if (name == 'blockquote') {\n dom.changeTag(node, 'p');\n } else if (node.nodeType == 1 && !dom.insignificant(node)) {\n for (var i = node.childNodes.length - 1; i >= 0; i--) {\n this.clean(node.childNodes[i]);\n }\n node.removeAttribute('style');\n node.removeAttribute('class');\n } else {\n unwrapListItem(node);\n }\n if ($.inArray(name, this.tagsToClean) > -1) {\n dom.unwrap(node);\n }\n },\n immutableParent: function (node) {\n return this.immutables() && Editor.Immutables.immutableParent(node);\n }\n });\n function unwrapListItem(node) {\n var li = dom.closestEditableOfType(node, ['li']);\n if (li) {\n var listFormatter = new Editor.ListFormatter(dom.name(li.parentNode));\n var range = kendo.ui.editor.W3CRange.fromNode(node);\n range.selectNode(li);\n listFormatter.toggle(range);\n }\n }\n $.extend(Editor, {\n FormattingTool: FormattingTool,\n CleanFormatCommand: CleanFormatCommand\n });\n registerTool('formatting', new FormattingTool({\n template: new ToolTemplate({\n template: EditorUtils.dropDownListTemplate,\n title: 'Format'\n })\n }));\n registerTool('cleanFormatting', new Tool({\n command: CleanFormatCommand,\n template: new ToolTemplate({\n template: EditorUtils.buttonTemplate,\n title: 'Clean formatting'\n })\n }));\n }(window.kendo.jQuery));\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('editor/plugins/image', [\n 'kendo.imagebrowser',\n 'editor/command'\n ], f);\n}(function () {\n (function ($, undefined) {\n var kendo = window.kendo, extend = $.extend, Editor = kendo.ui.editor, EditorUtils = Editor.EditorUtils, dom = Editor.Dom, registerTool = EditorUtils.registerTool, ToolTemplate = Editor.ToolTemplate, RangeUtils = Editor.RangeUtils, Command = Editor.Command, keys = kendo.keys, KEDITORIMAGEURL = '#k-editor-image-url', KEDITORIMAGETITLE = '#k-editor-image-title', KEDITORIMAGEWIDTH = '#k-editor-image-width', KEDITORIMAGEHEIGHT = '#k-editor-image-height';\n var ImageCommand = Command.extend({\n init: function (options) {\n var that = this;\n Command.fn.init.call(that, options);\n that.async = true;\n that.attributes = {};\n },\n insertImage: function (img, range) {\n var attributes = this.attributes;\n var doc = RangeUtils.documentFromRange(range);\n if (attributes.src && attributes.src != 'http://') {\n var removeIEAttributes = function () {\n setTimeout(function () {\n if (!attributes.width) {\n img.removeAttribute('width');\n }\n if (!attributes.height) {\n img.removeAttribute('height');\n }\n img.removeAttribute('complete');\n });\n };\n if (!img) {\n img = dom.create(doc, 'img', attributes);\n img.onload = img.onerror = removeIEAttributes;\n range.deleteContents();\n range.insertNode(img);\n if (!img.nextSibling) {\n dom.insertAfter(doc.createTextNode('\\uFEFF'), img);\n }\n removeIEAttributes();\n range.setStartAfter(img);\n range.setEndAfter(img);\n RangeUtils.selectRange(range);\n return true;\n } else {\n img.onload = img.onerror = removeIEAttributes;\n dom.attr(img, attributes);\n removeIEAttributes();\n }\n }\n return false;\n },\n _dialogTemplate: function (showBrowser) {\n return kendo.template('
          ' + '
          ' + '
          ' + '# if (showBrowser) { #' + '
          ' + '# } #' + '
          ' + '' + '
          ' + '
          ' + '' + '
          ' + '
          ' + '' + '
          ' + '
          ' + '' + '
          ' + '
          ' + '' + '
          ' + '
          ' + '' + '
          ' + '
          ' + '' + '
          ' + '
          ' + '' + '
          ' + '
          ' + '
          ' + '' + '' + '
          ' + '
          ' + '
          ')({\n messages: this.editor.options.messages,\n showBrowser: showBrowser\n });\n },\n redo: function () {\n var that = this, range = that.lockRange();\n if (!that.insertImage(RangeUtils.image(range), range)) {\n that.releaseRange(range);\n }\n },\n exec: function () {\n var that = this, range = that.lockRange(), applied = false, img = RangeUtils.image(range), imageWidth = img && img.getAttribute('width') || '', imageHeight = img && img.getAttribute('height') || '', dialog, isIE = kendo.support.browser.msie, options = that.editor.options, messages = options.messages, imageBrowser = options.imageBrowser, showBrowser = !!(kendo.ui.ImageBrowser && imageBrowser && imageBrowser.transport && imageBrowser.transport.read !== undefined), dialogOptions = {\n title: messages.insertImage,\n visible: false,\n resizable: showBrowser\n };\n this.expandImmutablesIn(range);\n function apply(e) {\n var element = dialog.element, w = parseInt(element.find(KEDITORIMAGEWIDTH).val(), 10), h = parseInt(element.find(KEDITORIMAGEHEIGHT).val(), 10);\n that.attributes = {\n src: element.find(KEDITORIMAGEURL).val().replace(/ /g, '%20'),\n alt: element.find(KEDITORIMAGETITLE).val()\n };\n that.attributes.width = null;\n that.attributes.height = null;\n if (!isNaN(w) && w > 0) {\n that.attributes.width = w;\n }\n if (!isNaN(h) && h > 0) {\n that.attributes.height = h;\n }\n applied = that.insertImage(img, range);\n close(e);\n if (that.change) {\n that.change();\n }\n }\n function close(e) {\n e.preventDefault();\n dialog.destroy();\n dom.windowFromDocument(RangeUtils.documentFromRange(range)).focus();\n if (!applied) {\n that.releaseRange(range);\n }\n }\n function keyDown(e) {\n if (e.keyCode == keys.ENTER) {\n apply(e);\n } else if (e.keyCode == keys.ESC) {\n close(e);\n }\n }\n dialogOptions.close = close;\n if (showBrowser) {\n dialogOptions.width = 750;\n }\n dialog = this.createDialog(that._dialogTemplate(showBrowser), dialogOptions).toggleClass('k-filebrowser-dialog', showBrowser).find('.k-dialog-insert').click(apply).end().find('.k-dialog-close').click(close).end().find('.k-edit-field input').keydown(keyDown).end().find(KEDITORIMAGEURL).val(img ? img.getAttribute('src', 2) : 'http://').end().find(KEDITORIMAGETITLE).val(img ? img.alt : '').end().find(KEDITORIMAGEWIDTH).val(imageWidth).end().find(KEDITORIMAGEHEIGHT).val(imageHeight).end().data('kendoWindow');\n var element = dialog.element;\n if (showBrowser) {\n this._imageBrowser = new kendo.ui.ImageBrowser(element.find('.k-imagebrowser'), extend({}, imageBrowser));\n this._imageBrowser.bind('change', function (ev) {\n if (ev.selected.get('type') === 'f') {\n element.find(KEDITORIMAGEURL).val(this.value());\n }\n });\n this._imageBrowser.bind('apply', apply);\n }\n if (isIE) {\n var dialogHeight = element.closest('.k-window').height();\n element.css('max-height', dialogHeight);\n }\n dialog.center().open();\n element.find(KEDITORIMAGEURL).focus().select();\n }\n });\n kendo.ui.editor.ImageCommand = ImageCommand;\n registerTool('insertImage', new Editor.Tool({\n command: ImageCommand,\n template: new ToolTemplate({\n template: EditorUtils.buttonTemplate,\n title: 'Insert Image'\n })\n }));\n }(window.kendo.jQuery));\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('editor/plugins/import', ['editor/main'], f);\n}(function () {\n (function ($, undefined) {\n var kendo = window.kendo, extend = $.extend, proxy = $.proxy, Editor = kendo.ui.editor, EditorUtils = Editor.EditorUtils, Command = Editor.Command, Tool = Editor.Tool, registerTool = EditorUtils.registerTool, ToolTemplate = Editor.ToolTemplate, loadingOverlay = '
          ';\n var ImportCommand = Command.extend({\n exec: function () {\n (this.editor._uploadWidget || this._initializeUploadWidget()).element.click();\n },\n _initializeUploadWidget: function () {\n var cmd = this;\n var editor = cmd.editor;\n var importOptions = editor.options['import'];\n var upload = $('').kendoUpload({\n success: proxy(cmd._onUploadSuccess, cmd),\n progress: proxy(cmd._onUploadProgress, cmd),\n select: proxy(cmd._onUploadSelect, cmd),\n error: proxy(cmd._onUploadError, cmd),\n complete: proxy(cmd._onUploadComplete, cmd),\n showFileList: false,\n multiple: false,\n async: {\n saveUrl: importOptions.proxyUrl,\n autoUpload: true,\n saveField: 'file'\n },\n validation: {\n allowedExtensions: importOptions.allowedExtensions,\n maxFileSize: importOptions.maxFileSize\n }\n }).getKendoUpload();\n editor._uploadWidget = upload;\n return upload;\n },\n _onUploadComplete: function (ev) {\n this._trigger('complete', ev);\n ev.sender.clearAllFiles();\n this._removeLoadingOverlay();\n },\n _onUploadSuccess: function (ev) {\n this.editor.value(ev.response.html.replace(/<\\/?body>/gi, ''));\n this._trigger('success', ev);\n },\n _onUploadProgress: function (ev) {\n this._trigger('progress', ev);\n },\n _onUploadSelect: function (ev) {\n this._trigger('select', ev);\n if (!ev.files[0].validationErrors) {\n this._initLoadingOverlay();\n }\n },\n _onUploadError: function (ev) {\n this._trigger('error', ev);\n },\n _trigger: function (eventType, uploadEvent) {\n var editor = this.editor;\n var importOptions = editor.options['import'];\n if (typeof importOptions[eventType] === 'function') {\n importOptions[eventType].call(editor, uploadEvent);\n }\n },\n _initLoadingOverlay: function () {\n var editable = this.editor.body;\n if (Editor.Dom.is(editable, 'body')) {\n this._iframeWrapper = this._container = this.editor.wrapper.find('iframe').parent().css({ position: 'relative' }).append(loadingOverlay);\n } else {\n this._container = $(editable).append(loadingOverlay);\n }\n kendo.ui.progress(this._container, true);\n },\n _removeLoadingOverlay: function () {\n kendo.ui.progress(this._container, false);\n $(this._iframeWrapper).css({ position: '' });\n delete this._container;\n delete this._iframeWrapper;\n }\n });\n extend(Editor, { ImportCommand: ImportCommand });\n registerTool('import', new Tool({\n command: ImportCommand,\n template: new ToolTemplate({\n template: EditorUtils.buttonTemplate,\n title: 'Import'\n })\n }));\n }(window.kendo.jQuery));\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('editor/plugins/insert', ['editor/command'], f);\n}(function () {\n (function ($) {\n var kendo = window.kendo, editorNS = kendo.ui.editor, Command = editorNS.Command, GenericCommand = editorNS.GenericCommand, EditorUtils = editorNS.EditorUtils, registerTool = EditorUtils.registerTool, Tool = editorNS.Tool, ToolTemplate = editorNS.ToolTemplate, RestorePoint = editorNS.RestorePoint, extend = $.extend;\n var InsertHtmlCommand = Command.extend({\n init: function (options) {\n Command.fn.init.call(this, options);\n this.managesUndoRedo = true;\n },\n exec: function () {\n var editor = this.editor;\n var options = this.options;\n var range = options.range;\n var body = editor.body;\n var startRestorePoint = new RestorePoint(range, body);\n var html = options.html || options.value || '';\n editor.selectRange(range);\n editor.clipboard.paste(html, options);\n if (options.postProcess) {\n options.postProcess(editor, editor.getRange());\n }\n var genericCommand = new GenericCommand(startRestorePoint, new RestorePoint(editor.getRange(), body));\n genericCommand.editor = editor;\n editor.undoRedoStack.push(genericCommand);\n editor.focus();\n }\n });\n var InsertHtmlTool = Tool.extend({\n initialize: function (ui, initOptions) {\n var editor = initOptions.editor, options = this.options, dataSource = options.items ? options.items : editor.options.insertHtml;\n this._selectBox = new editorNS.SelectBox(ui, {\n dataSource: dataSource,\n dataTextField: 'text',\n dataValueField: 'value',\n change: function () {\n Tool.exec(editor, 'insertHtml', this.value());\n },\n title: editor.options.messages.insertHtml,\n highlightFirst: false\n });\n ui.attr('title', initOptions.title);\n this._selectBox.wrapper.attr('title', initOptions.title);\n },\n command: function (commandArguments) {\n return new InsertHtmlCommand(commandArguments);\n },\n update: function (ui) {\n var selectbox = ui.data('kendoSelectBox') || ui.find('select').data('kendoSelectBox');\n selectbox.close();\n selectbox.value(selectbox.options.title);\n }\n });\n extend(editorNS, {\n InsertHtmlCommand: InsertHtmlCommand,\n InsertHtmlTool: InsertHtmlTool\n });\n registerTool('insertHtml', new InsertHtmlTool({\n template: new ToolTemplate({\n template: EditorUtils.dropDownListTemplate,\n title: 'Insert HTML',\n initialValue: 'Insert HTML'\n })\n }));\n }(window.kendo.jQuery));\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('editor/plugins/export', ['editor/main'], f);\n}(function () {\n (function ($, undefined) {\n var kendo = window.kendo, extend = $.extend, proxy = $.proxy, Editor = kendo.ui.editor, EditorUtils = Editor.EditorUtils, Command = Editor.Command, Tool = Editor.Tool, registerTool = EditorUtils.registerTool, ToolTemplate = Editor.ToolTemplate, defaultExportAsItems = [\n {\n text: 'Docx',\n value: 'docx'\n },\n {\n text: 'Rtf',\n value: 'rtf'\n },\n {\n text: 'Pdf',\n value: 'pdf'\n },\n {\n text: 'Html',\n value: 'html'\n },\n {\n text: 'Plain Text',\n value: 'txt'\n }\n ];\n var ExportAsCommand = Command.extend({\n init: function (options) {\n var cmd = this;\n cmd.options = options;\n Command.fn.init.call(cmd, options);\n cmd.attributes = null;\n cmd.exportType = options.exportType;\n },\n exec: function () {\n var cmd = this;\n var range = this.lockRange(true);\n cmd.postToProxy();\n cmd.releaseRange(range);\n },\n postToProxy: function () {\n this.generateForm().appendTo('body').submit().remove();\n },\n generateForm: function () {\n var cmd = this;\n var exportAsOptions = cmd.editor.options.exportAs;\n var form = $('').attr({\n action: exportAsOptions && exportAsOptions.proxyURL || '',\n method: 'POST'\n });\n form.append([\n cmd.valueInput(),\n cmd.exportTypeInput(),\n cmd.fileNameInput()\n ]);\n return form;\n },\n valueInput: function () {\n var editor = this.editor;\n return $('').attr({\n value: editor.encodedValue(),\n name: 'value',\n type: 'hidden'\n });\n },\n exportTypeInput: function () {\n var cmd = this;\n return $('').attr({\n value: cmd.exportType,\n name: 'exportType',\n type: 'hidden'\n });\n },\n fileNameInput: function () {\n var editor = this.editor;\n var exportAsOptions = editor.options.exportAs;\n var fileName = exportAsOptions && exportAsOptions.fileName || editor.element.attr('id') || 'editor';\n return $('').attr({\n value: fileName,\n name: 'fileName',\n type: 'hidden'\n });\n }\n });\n var ExportAsTool = Tool.extend({\n init: function (options) {\n var tool = this;\n Tool.fn.init.call(tool, kendo.deepExtend({}, tool.options, options));\n tool.type = 'kendoSelectBox';\n },\n options: {\n items: defaultExportAsItems,\n width: 115\n },\n command: function (args) {\n var value = args.value;\n return new Editor.ExportAsCommand({\n range: args.range,\n exportType: value.exportType\n });\n },\n initialize: function (ui, initOptions) {\n var tool = this;\n var editor = initOptions.editor;\n var options = tool.options;\n var toolName = options.name;\n var changeHandler = proxy(tool.changeHandler, tool);\n var dataSource = options.items || editor.options[toolName];\n var selectBox;\n dataSource.unshift({\n text: editor.options.messages[toolName],\n value: ''\n });\n tool.editor = editor;\n ui.width(options.width);\n selectBox = ui.kendoSelectBox({\n dataTextField: 'text',\n dataValueField: 'value',\n dataSource: dataSource,\n autoSize: true,\n change: changeHandler,\n open: function (e) {\n var sender = e.sender;\n sender.items()[0].style.display = 'none';\n sender.unbind('open');\n },\n highlightFirst: false,\n template: kendo.template('#:data.text#')\n }).data('kendoSelectBox');\n ui.attr('title', initOptions.title);\n selectBox.wrapper.attr('title', initOptions.title);\n ui.addClass('k-decorated').closest('.k-widget').removeClass('k-' + toolName).find('*').addBack().attr('unselectable', 'on');\n },\n changeHandler: function (e) {\n var sender = e.sender;\n var dataItem = sender.dataItem();\n var value = dataItem && dataItem.value;\n this._exec(value);\n sender.value('');\n },\n _exec: function (value) {\n if (value) {\n Tool.exec(this.editor, this.options.name, { exportType: value });\n }\n },\n destroy: function () {\n this._ancestor = null;\n }\n });\n extend(Editor, {\n ExportAsTool: ExportAsTool,\n ExportAsCommand: ExportAsCommand\n });\n registerTool('exportAs', new ExportAsTool({\n template: new ToolTemplate({\n template: EditorUtils.dropDownListTemplate,\n title: 'Export As'\n })\n }));\n }(window.kendo.jQuery));\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('editor/plugins/indent', ['editor/plugins/formatblock'], f);\n}(function () {\n (function ($, undefined) {\n var kendo = window.kendo, Class = kendo.Class, extend = $.extend, Editor = kendo.ui.editor, dom = Editor.Dom, EditorUtils = Editor.EditorUtils, registerTool = EditorUtils.registerTool, Command = Editor.Command, Tool = Editor.Tool, ToolTemplate = Editor.ToolTemplate, RangeUtils = Editor.RangeUtils, blockElements = dom.blockElements, BlockFormatFinder = Editor.BlockFormatFinder, BlockFormatter = Editor.BlockFormatter;\n function indent(node, value) {\n var isRtl = $(node).css('direction') == 'rtl', indentDirection = isRtl ? 'Right' : 'Left', property = dom.name(node) != 'td' ? 'margin' + indentDirection : 'padding' + indentDirection;\n if (value === undefined) {\n return node.style[property] || 0;\n } else {\n if (value > 0) {\n node.style[property] = value + 'px';\n } else {\n node.style[property] = '';\n if (!node.style.cssText) {\n node.removeAttribute('style');\n }\n }\n }\n }\n var IndentFormatter = Class.extend({\n init: function () {\n this.finder = new BlockFormatFinder([{ tags: dom.blockElements }]);\n },\n apply: function (nodes) {\n nodes = dom.filterBy(nodes, dom.htmlIndentSpace, true);\n var formatNodes = this.finder.findSuitable(nodes), targets = [], i, len, formatNode, parentList, sibling;\n formatNodes = this.mapImmutables(formatNodes);\n if (formatNodes.length) {\n for (i = 0, len = formatNodes.length; i < len; i++) {\n if (dom.is(formatNodes[i], 'li')) {\n if (!$(formatNodes[i]).index()) {\n targets.push(formatNodes[i].parentNode);\n } else if ($.inArray(formatNodes[i].parentNode, targets) < 0) {\n targets.push(formatNodes[i]);\n }\n } else {\n targets.push(formatNodes[i]);\n }\n }\n while (targets.length) {\n formatNode = targets.shift();\n if (dom.is(formatNode, 'li')) {\n parentList = formatNode.parentNode;\n sibling = $(formatNode).prev('li');\n var siblingList = sibling.find('ul,ol').last();\n var nestedList = $(formatNode).children('ul,ol')[0];\n if (nestedList && sibling[0]) {\n if (siblingList[0]) {\n siblingList.append(formatNode);\n siblingList.append($(nestedList).children());\n dom.remove(nestedList);\n } else {\n sibling.append(nestedList);\n nestedList.insertBefore(formatNode, nestedList.firstChild);\n }\n } else {\n nestedList = sibling.children('ul,ol')[0];\n if (!nestedList) {\n nestedList = dom.create(formatNode.ownerDocument, dom.name(parentList));\n sibling.append(nestedList);\n }\n while (formatNode && formatNode.parentNode == parentList) {\n nestedList.appendChild(formatNode);\n formatNode = targets.shift();\n }\n }\n } else {\n var marginLeft = parseInt(indent(formatNode), 10) + 30;\n indent(formatNode, marginLeft);\n for (var targetIndex = 0; targetIndex < targets.length; targetIndex++) {\n if ($.contains(formatNode, targets[targetIndex])) {\n targets.splice(targetIndex, 1);\n }\n }\n }\n }\n } else {\n var formatter = new BlockFormatter([{ tags: ['p'] }], { style: { marginLeft: 30 } });\n formatter.apply(nodes);\n }\n },\n mapImmutables: function (nodes) {\n if (!this.immutables) {\n return nodes;\n } else {\n var immutables = [];\n return $.map(nodes, function (node) {\n var immutable = Editor.Immutables.immutableParent(node);\n if (immutable) {\n if ($.inArray(immutable, immutables) === -1) {\n immutables.push(immutable);\n } else {\n return null;\n }\n }\n return immutable || node;\n });\n }\n },\n remove: function (nodes) {\n nodes = dom.filterBy(nodes, dom.htmlIndentSpace, true);\n var formatNodes = this.finder.findSuitable(nodes), targetNode, i, len, list, listParent, siblings, formatNode, marginLeft;\n formatNodes = this.mapImmutables(formatNodes);\n for (i = 0, len = formatNodes.length; i < len; i++) {\n formatNode = $(formatNodes[i]);\n if (formatNode.is('li')) {\n list = formatNode.parent();\n listParent = list.parent();\n if (listParent.is('li,ul,ol') && !indent(list[0])) {\n if (targetNode && $.contains(targetNode, listParent[0])) {\n continue;\n }\n siblings = formatNode.nextAll('li');\n if (siblings.length) {\n $(list[0].cloneNode(false)).appendTo(formatNode).append(siblings);\n }\n if (listParent.is('li')) {\n formatNode.insertAfter(listParent);\n } else {\n formatNode.appendTo(listParent);\n }\n if (!list.children('li').length) {\n list.remove();\n }\n continue;\n } else {\n if (targetNode == list[0]) {\n continue;\n }\n targetNode = list[0];\n }\n } else {\n targetNode = formatNodes[i];\n }\n marginLeft = parseInt(indent(targetNode), 10) - 30;\n indent(targetNode, marginLeft);\n }\n }\n });\n var IndentCommand = Command.extend({\n init: function (options) {\n var that = this;\n options.formatter = {\n toggle: $.proxy(function (range) {\n var indentFormatter = new IndentFormatter();\n indentFormatter.immutables = this.editor && this.editor.options.immutables;\n indentFormatter.apply(RangeUtils.nodes(range));\n }, that)\n };\n Command.fn.init.call(this, options);\n }\n });\n var OutdentCommand = Command.extend({\n init: function (options) {\n var that = this;\n options.formatter = {\n toggle: $.proxy(function (range) {\n var indentFormatter = new IndentFormatter();\n indentFormatter.immutables = this.editor && this.editor.options.immutables;\n indentFormatter.remove(RangeUtils.nodes(range));\n }, that)\n };\n Command.fn.init.call(this, options);\n }\n });\n var OutdentTool = Tool.extend({\n init: function (options) {\n Tool.fn.init.call(this, options);\n this.finder = new BlockFormatFinder([{ tags: blockElements }]);\n },\n initialize: function (ui, options) {\n Tool.fn.initialize.call(this, ui, options);\n $.extend(this.options, { immutables: options.editor && options.editor.options.immutables });\n ui.addClass('k-state-disabled');\n },\n update: function (ui, nodes) {\n var suitableNodes = this.finder.findSuitable(nodes), isOutdentable, listParentsCount, i, len, suitable, immutableParent;\n for (i = 0, len = suitableNodes.length; i < len; i++) {\n suitable = suitableNodes[i];\n if (this.options.immutables) {\n immutableParent = Editor.Immutables.immutableParent(suitable);\n if (immutableParent) {\n suitable = immutableParent;\n }\n }\n isOutdentable = indent(suitable);\n if (!isOutdentable) {\n listParentsCount = $(suitable).parents('ul,ol').length;\n isOutdentable = dom.is(suitable, 'li') && (listParentsCount > 1 || indent(suitable.parentNode)) || dom.ofType(suitable, [\n 'ul',\n 'ol'\n ]) && listParentsCount > 0;\n }\n if (isOutdentable) {\n ui.removeClass('k-state-disabled');\n return;\n }\n }\n ui.addClass('k-state-disabled').removeClass('k-state-hover');\n }\n });\n extend(Editor, {\n IndentFormatter: IndentFormatter,\n IndentCommand: IndentCommand,\n OutdentCommand: OutdentCommand,\n OutdentTool: OutdentTool\n });\n registerTool('indent', new Tool({\n command: IndentCommand,\n template: new ToolTemplate({\n template: EditorUtils.buttonTemplate,\n title: 'Indent'\n })\n }));\n registerTool('outdent', new OutdentTool({\n command: OutdentCommand,\n template: new ToolTemplate({\n template: EditorUtils.buttonTemplate,\n title: 'Outdent'\n })\n }));\n }(window.kendo.jQuery));\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('editor/plugins/linebreak', ['editor/plugins/formatblock'], f);\n}(function () {\n (function ($) {\n var kendo = window.kendo, extend = $.extend, editorNS = kendo.ui.editor, dom = editorNS.Dom, Command = editorNS.Command, Tool = editorNS.Tool, BlockFormatter = editorNS.BlockFormatter, normalize = dom.normalize, RangeUtils = editorNS.RangeUtils, registerTool = editorNS.EditorUtils.registerTool;\n var ParagraphCommand = Command.extend({\n init: function (options) {\n this.options = options;\n Command.fn.init.call(this, options);\n },\n _insertMarker: function (doc, range) {\n var marker = dom.create(doc, 'a'), container;\n marker.className = 'k-marker';\n range.insertNode(marker);\n if (!marker.parentNode) {\n container = range.commonAncestorContainer;\n container.innerHTML = '';\n container.appendChild(marker);\n }\n normalize(marker.parentNode);\n return marker;\n },\n _moveFocus: function (range, candidate) {\n if (dom.isEmpty(candidate)) {\n range.setStartBefore(candidate);\n } else {\n range.selectNodeContents(candidate);\n var focusNode = RangeUtils.textNodes(range)[0];\n if (!focusNode) {\n while (candidate.childNodes.length && !dom.is(candidate.firstChild, 'br')) {\n candidate = candidate.firstChild;\n }\n focusNode = candidate;\n }\n if (dom.isEmpty(focusNode)) {\n range.setStartBefore(focusNode);\n } else {\n if (dom.emptyNode(focusNode)) {\n focusNode.innerHTML = '\\uFEFF';\n }\n var startNode = focusNode.firstChild || focusNode;\n if (dom.isDataNode(startNode)) {\n range.setStart(startNode, 0);\n } else {\n range.setStartBefore(startNode);\n }\n }\n }\n },\n shouldTrim: function (range) {\n var blocks = 'p,h1,h2,h3,h4,h5,h6'.split(','), startInBlock = dom.parentOfType(range.startContainer, blocks), endInBlock = dom.parentOfType(range.endContainer, blocks);\n return startInBlock && !endInBlock || !startInBlock && endInBlock;\n },\n _blankAfter: function (node) {\n while (node && (dom.isMarker(node) || dom.stripBom(node.nodeValue) === '')) {\n node = node.nextSibling;\n }\n return !node;\n },\n exec: function () {\n var range = this.getRange(), doc = RangeUtils.documentFromRange(range), parent, previous, next, emptyParagraphContent = editorNS.emptyElementContent, paragraph, marker, li, heading, tableNode, rng, shouldTrim;\n this.expandImmutablesIn(range);\n shouldTrim = this.shouldTrim(range);\n range.deleteContents();\n marker = this._insertMarker(doc, range);\n dom.stripBomNode(marker.previousSibling);\n dom.stripBomNode(marker.nextSibling);\n li = dom.closestEditableOfType(marker, ['li']);\n heading = dom.closestEditableOfType(marker, 'h1,h2,h3,h4,h5,h6'.split(','));\n tableNode = dom.is(marker.parentNode, 'table') && marker.parentNode;\n if (li) {\n if (dom.emptyNode(li)) {\n paragraph = dom.create(doc, 'p');\n if (dom.next(li)) {\n rng = range.cloneRange();\n rng.selectNode(li);\n RangeUtils.split(rng, li.parentNode);\n }\n var br = $('br', li);\n if (br.length == 1) {\n br.remove();\n }\n var parentNode = li.parentNode;\n var parentChildrenLength = li.parentNode.children.length;\n var firstChild = parentChildrenLength > 1 && li.childNodes.length == 1 && li.children[0];\n dom.insertAfter(paragraph, parentNode);\n dom.remove(parentChildrenLength == 1 ? li.parentNode : li);\n if (firstChild && firstChild !== marker) {\n paragraph.appendChild(firstChild);\n paragraph.appendChild(marker);\n } else {\n paragraph.innerHTML = emptyParagraphContent;\n }\n next = paragraph;\n }\n } else if (heading && this._blankAfter(marker)) {\n paragraph = this._insertParagraphAfter(heading);\n dom.remove(marker);\n next = paragraph;\n } else if (tableNode) {\n paragraph = this._insertParagraphAfter(tableNode);\n dom.remove(marker);\n next = paragraph;\n }\n if (!next) {\n if (!(li || heading)) {\n new BlockFormatter([{ tags: ['p'] }]).apply([marker]);\n }\n range.selectNode(marker);\n parent = dom.parentOfType(marker, [li ? 'li' : heading ? dom.name(heading) : 'p']);\n RangeUtils.split(range, parent, shouldTrim);\n previous = parent.previousSibling;\n if (dom.is(previous, 'li') && previous.firstChild && !dom.is(previous.firstChild, 'br')) {\n previous = previous.firstChild;\n }\n next = parent.nextSibling;\n this.clean(previous, { links: true });\n this.clean(next, { links: true });\n if (dom.is(next, 'li') && next.firstChild && !dom.is(next.firstChild, 'br')) {\n next = next.firstChild;\n }\n dom.remove(parent);\n normalize(previous);\n }\n normalize(next);\n this._moveFocus(range, next);\n range.collapse(true);\n dom.scrollTo(next, true);\n RangeUtils.selectRange(range);\n },\n _insertParagraphAfter: function (node) {\n var range = this.getRange();\n var doc = RangeUtils.documentFromRange(range);\n var emptyElementContent = editorNS.emptyElementContent;\n var paragraph = dom.create(doc, 'p');\n dom.insertAfter(paragraph, node);\n paragraph.innerHTML = emptyElementContent;\n return paragraph;\n },\n clean: function (node, options) {\n var root = node;\n if (node.firstChild && dom.is(node.firstChild, 'br')) {\n dom.remove(node.firstChild);\n }\n if (dom.isDataNode(node) && !node.nodeValue) {\n node = node.parentNode;\n }\n if (node) {\n var siblings = false;\n while (node.firstChild && node.firstChild.nodeType == 1) {\n siblings = siblings || dom.significantNodes(node.childNodes).length > 1;\n node = node.firstChild;\n }\n if (!dom.isEmpty(node) && /^\\s*$/.test(node.innerHTML) && !siblings) {\n $(root).find('.k-br').remove();\n node.innerHTML = editorNS.emptyElementContent;\n }\n if (options && options.links) {\n while (node != root) {\n if (dom.is(node, 'a') && dom.emptyNode(node)) {\n dom.unwrap(node);\n break;\n }\n node = node.parentNode;\n }\n }\n }\n }\n });\n var NewLineCommand = Command.extend({\n init: function (options) {\n this.options = options;\n Command.fn.init.call(this, options);\n },\n exec: function () {\n var range = this.getRange();\n this.expandImmutablesIn(range);\n var br = dom.create(RangeUtils.documentFromRange(range), 'br');\n var node = range.startContainer;\n var filler;\n var browser = kendo.support.browser;\n var oldIE = browser.msie && browser.version < 11;\n var tableNode = dom.is(node, 'table') && node;\n range.deleteContents();\n if (tableNode) {\n dom.insertAfter(br, tableNode);\n } else {\n range.insertNode(br);\n }\n normalize(br.parentNode);\n if (!oldIE && (!br.nextSibling || dom.isWhitespace(br.nextSibling))) {\n filler = br.cloneNode(true);\n filler.className = 'k-br';\n dom.insertAfter(filler, br);\n }\n range.setStartAfter(br);\n range.collapse(true);\n dom.scrollTo(br.nextSibling || br, true);\n RangeUtils.selectRange(range);\n }\n });\n extend(editorNS, {\n ParagraphCommand: ParagraphCommand,\n NewLineCommand: NewLineCommand\n });\n registerTool('insertLineBreak', new Tool({\n key: 13,\n shift: true,\n command: NewLineCommand\n }));\n registerTool('insertParagraph', new Tool({\n key: 13,\n command: ParagraphCommand\n }));\n }(window.kendo.jQuery));\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('editor/plugins/file', [\n 'kendo.filebrowser',\n 'editor/plugins/link'\n ], f);\n}(function () {\n (function ($, undefined) {\n var kendo = window.kendo, extend = $.extend, Editor = kendo.ui.editor, EditorUtils = Editor.EditorUtils, dom = Editor.Dom, registerTool = EditorUtils.registerTool, ToolTemplate = Editor.ToolTemplate, RangeUtils = Editor.RangeUtils, Command = Editor.Command, LinkFormatter = Editor.LinkFormatter, textNodes = RangeUtils.textNodes, keys = kendo.keys, KEDITORFILEURL = '#k-editor-file-url', KEDITORFILETEXT = '#k-editor-file-text', KEDITORFILETITLE = '#k-editor-file-title';\n var FileCommand = Command.extend({\n init: function (options) {\n var that = this;\n Command.fn.init.call(that, options);\n that.formatter = new LinkFormatter();\n that.async = true;\n that.attributes = {};\n },\n insertFile: function (file, range) {\n var attributes = this.attributes;\n var doc = RangeUtils.documentFromRange(range);\n if (attributes.href && attributes.href != 'http://') {\n if (!file) {\n file = dom.create(doc, 'a', { href: attributes.href });\n file.innerHTML = attributes.innerHTML;\n file.title = attributes.title;\n range.deleteContents();\n range.insertNode(file);\n if (!file.nextSibling) {\n dom.insertAfter(doc.createTextNode('\\uFEFF'), file);\n }\n range.setStartAfter(file);\n range.setEndAfter(file);\n RangeUtils.selectRange(range);\n return true;\n } else {\n dom.attr(file, attributes);\n }\n }\n return false;\n },\n _dialogTemplate: function (showBrowser) {\n return kendo.template('
          ' + '
          ' + '
          ' + '# if (showBrowser) { #' + '
          ' + '# } #' + '
          ' + '' + '
          ' + '
          ' + '' + '
          ' + '
          ' + '' + '
          ' + '
          ' + '' + '
          ' + '
          ' + '' + '
          ' + '
          ' + '' + '
          ' + '
          ' + '
          ' + '' + '' + '
          ' + '
          ' + '
          ')({\n messages: this.editor.options.messages,\n showBrowser: showBrowser\n });\n },\n redo: function () {\n var that = this, range = that.lockRange();\n this.formatter.apply(range, this.attributes);\n that.releaseRange(range);\n },\n exec: function () {\n var that = this, range = that.lockRange(), nodes = textNodes(range), applied = false, file = nodes.length ? this.formatter.finder.findSuitable(nodes[0]) : null, dialog, isIE = kendo.support.browser.msie, options = that.editor.options, messages = options.messages, fileBrowser = options.fileBrowser, showBrowser = !!(kendo.ui.FileBrowser && fileBrowser && fileBrowser.transport && fileBrowser.transport.read !== undefined), dialogOptions = {\n title: messages.insertFile,\n visible: false,\n resizable: showBrowser\n };\n this.expandImmutablesIn(range);\n function apply(e) {\n var element = dialog.element, href = element.find(KEDITORFILEURL).val().replace(/ /g, '%20'), innerHTML = element.find(KEDITORFILETEXT).val(), title = element.find(KEDITORFILETITLE).val();\n that.attributes = {\n href: href,\n innerHTML: innerHTML !== '' ? innerHTML : href,\n title: title\n };\n applied = that.insertFile(file, range);\n close(e);\n if (that.change) {\n that.change();\n }\n }\n function close(e) {\n e.preventDefault();\n dialog.destroy();\n dom.windowFromDocument(RangeUtils.documentFromRange(range)).focus();\n if (!applied) {\n that.releaseRange(range);\n }\n }\n function keyDown(e) {\n if (e.keyCode == keys.ENTER) {\n apply(e);\n } else if (e.keyCode == keys.ESC) {\n close(e);\n }\n }\n dialogOptions.close = close;\n if (showBrowser) {\n dialogOptions.width = 750;\n }\n dialog = this.createDialog(that._dialogTemplate(showBrowser), dialogOptions).toggleClass('k-filebrowser-dialog', showBrowser).find('.k-dialog-insert').click(apply).end().find('.k-dialog-close').click(close).end().find('.k-edit-field input').keydown(keyDown).end().find(KEDITORFILEURL).val(file ? file.getAttribute('href', 2) : 'http://').end().find(KEDITORFILETEXT).val(file ? file.innerText : '').end().find(KEDITORFILETITLE).val(file ? file.title : '').end().data('kendoWindow');\n var element = dialog.element;\n if (showBrowser) {\n that._fileBrowser = new kendo.ui.FileBrowser(element.find('.k-filebrowser'), extend({}, fileBrowser));\n that._fileBrowser.bind('change', function (ev) {\n if (ev.selected.get('type') === 'f') {\n element.find(KEDITORFILEURL).val(this.value());\n }\n });\n that._fileBrowser.bind('apply', apply);\n }\n if (isIE) {\n var dialogHeight = element.closest('.k-window').height();\n element.css('max-height', dialogHeight);\n }\n dialog.center().open();\n element.find(KEDITORFILEURL).focus().select();\n }\n });\n kendo.ui.editor.FileCommand = FileCommand;\n registerTool('insertFile', new Editor.Tool({\n command: FileCommand,\n template: new ToolTemplate({\n template: EditorUtils.buttonTemplate,\n title: 'Insert File'\n })\n }));\n }(window.kendo.jQuery));\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('editor/plugins/tables', [\n 'editor/plugins/formatblock',\n 'editor/plugins/insert'\n ], f);\n}(function () {\n (function ($, undefined) {\n var kendo = window.kendo, extend = $.extend, proxy = $.proxy, Editor = kendo.ui.editor, dom = Editor.Dom, EditorUtils = Editor.EditorUtils, RangeUtils = Editor.RangeUtils, Command = Editor.Command, NS = 'kendoEditor', ACTIVESTATE = 'k-state-active', SELECTEDSTATE = 'k-state-selected', SCOPE = 'scope', ROW = 'row', COL = 'col', ROWGROUP = 'rowgroup', COLGROUP = 'colgroup', COLSPAN = 'colspan', ROWSPAN = 'rowspan', TABLE = 'table', THEAD = 'thead', TBODY = 'tbody', TR = 'tr', TD = 'td', TH = 'th', Tool = Editor.Tool, ToolTemplate = Editor.ToolTemplate, InsertHtmlCommand = Editor.InsertHtmlCommand, BlockFormatFinder = Editor.BlockFormatFinder, registerTool = Editor.EditorUtils.registerTool, getTouches = kendo.getTouches;\n var template = kendo.template;\n var columnTemplate = '#=content#';\n var tableFormatFinder = new BlockFormatFinder([{ tags: [TABLE] }]);\n var TableCommand = InsertHtmlCommand.extend({\n init: function (options) {\n var o = $.extend({\n postProcess: this.postProcess,\n skipCleaners: true\n }, options || {});\n InsertHtmlCommand.fn.init.call(this, o);\n },\n _tableHtml: function (rows, columns) {\n rows = rows || 1;\n columns = columns || 1;\n var columnHtml = template(columnTemplate)({\n width: 100 / columns,\n content: Editor.emptyTableCellContent\n });\n var rowHeight = 100 / rows;\n return '' + new Array(rows + 1).join('' + new Array(columns + 1).join(columnHtml) + '') + '
          ';\n },\n postProcess: function (editor, range) {\n var insertedTable = $('table[data-last]', editor.document).removeAttr('data-last');\n range.setStart(insertedTable.find(TD)[0], 0);\n range.collapse(true);\n editor.selectRange(range);\n },\n exec: function () {\n var options = this.options;\n options.html = this._tableHtml(options.rows, options.columns);\n InsertHtmlCommand.fn.exec.call(this);\n }\n });\n var PopupTool = Tool.extend({\n initialize: function (ui, options) {\n Tool.fn.initialize.call(this, ui, options);\n var popup = $(this.options.popupTemplate).appendTo('body').kendoPopup({\n anchor: ui,\n copyAnchorStyles: false,\n open: proxy(this._open, this),\n activate: proxy(this._activate, this),\n close: proxy(this._close, this)\n }).data('kendoPopup');\n ui.click(proxy(this._toggle, this)).keydown(proxy(this._keydown, this));\n var editor = this._editor = options.editor;\n this._popup = popup;\n var tableWizard = new Editor.TableWizardTool({\n template: new ToolTemplate({\n template: EditorUtils.tableWizardButtonTemplate,\n title: editor.options.messages.tableWizard\n }),\n command: Editor.TableWizardCommand,\n insertNewTable: true\n });\n registerTool('tableWizardInsert', tableWizard);\n var twTool = $('
          ' + tableWizard.options.template.getHtml() + '
          ');\n twTool.appendTo(popup.element);\n if (editor.toolbar) {\n editor.toolbar.attachToolsEvents(twTool);\n }\n },\n popup: function () {\n return this._popup;\n },\n _activate: $.noop,\n _open: function () {\n this._popup.options.anchor.addClass(ACTIVESTATE);\n },\n _close: function () {\n this._popup.options.anchor.removeClass(ACTIVESTATE);\n },\n _keydown: function (e) {\n var keys = kendo.keys;\n var key = e.keyCode;\n if (key == keys.DOWN && e.altKey) {\n this._popup.open();\n } else if (key == keys.ESC) {\n this._popup.close();\n }\n },\n _toggle: function (e) {\n var button = $(e.target).closest('.k-tool');\n if (!button.hasClass('k-state-disabled')) {\n this.popup().toggle();\n }\n },\n update: function (ui) {\n var popup = this.popup();\n if (popup.wrapper && popup.wrapper.css('display') == 'block') {\n popup.close();\n }\n ui.removeClass('k-state-hover');\n },\n destroy: function () {\n this._popup.destroy();\n }\n });\n var InsertTableTool = PopupTool.extend({\n init: function (options) {\n this.cols = 8;\n this.rows = 6;\n PopupTool.fn.init.call(this, $.extend(options, {\n command: TableCommand,\n popupTemplate: '
          ' + '
          ' + new Array(this.cols * this.rows + 1).join('') + '
          ' + '
          ' + '
          '\n }));\n },\n _activate: function () {\n var that = this, element = that._popup.element, cells = element.find('.k-ct-cell'), firstCell = cells.eq(0), lastCell = cells.eq(cells.length - 1), start = kendo.getOffset(firstCell), end = kendo.getOffset(lastCell), cols = that.cols, rows = that.rows, cellWidth, cellHeight;\n element.find('*').addBack().attr('unselectable', 'on');\n end.left += lastCell[0].offsetWidth;\n end.top += lastCell[0].offsetHeight;\n cellWidth = (end.left - start.left) / cols;\n cellHeight = (end.top - start.top) / rows;\n function tableFromLocation(e) {\n var w = $(window);\n return {\n row: Math.floor((e.clientY + w.scrollTop() - start.top) / cellHeight) + 1,\n col: Math.floor((e.clientX + w.scrollLeft() - start.left) / cellWidth) + 1\n };\n }\n element.autoApplyNS(NS).on('mousemove', '.k-ct-cell', function (e) {\n that._setTableSize(tableFromLocation(e));\n }).on('mouseleave', '.k-ct-cell', function () {\n that._setTableSize();\n }).on('down', '.k-ct-cell', function (e) {\n e.preventDefault();\n var touch = getTouches(e)[0];\n that._exec(tableFromLocation(touch.location));\n });\n },\n _valid: function (size) {\n return size && size.row > 0 && size.col > 0 && size.row <= this.rows && size.col <= this.cols;\n },\n _exec: function (size) {\n if (this._valid(size)) {\n this._editor.exec('createTable', {\n rows: size.row,\n columns: size.col\n });\n this._popup.close();\n }\n },\n _setTableSize: function (size) {\n var element = this._popup.element;\n var status = element.find('.k-status');\n var cells = element.find('.k-ct-cell');\n var cols = this.cols;\n var messages = this._editor.options.messages;\n if (this._valid(size)) {\n status.text(kendo.format(messages.createTableHint, size.row, size.col));\n cells.each(function (i) {\n $(this).toggleClass(SELECTEDSTATE, i % cols < size.col && i / cols < size.row);\n });\n } else {\n status.text(messages.createTable);\n cells.removeClass(SELECTEDSTATE);\n }\n },\n _keydown: function (e) {\n PopupTool.fn._keydown.call(this, e);\n if (!this._popup.visible()) {\n return;\n }\n var keys = kendo.keys;\n var key = e.keyCode;\n var cells = this._popup.element.find('.k-ct-cell');\n var focus = Math.max(cells.filter('.k-state-selected').last().index(), 0);\n var selectedRows = Math.floor(focus / this.cols);\n var selectedColumns = focus % this.cols;\n var changed = false;\n if (key == keys.DOWN && !e.altKey) {\n changed = true;\n selectedRows++;\n } else if (key == keys.UP) {\n changed = true;\n selectedRows--;\n } else if (key == keys.RIGHT) {\n changed = true;\n selectedColumns++;\n } else if (key == keys.LEFT) {\n changed = true;\n selectedColumns--;\n }\n var tableSize = {\n row: Math.max(1, Math.min(this.rows, selectedRows + 1)),\n col: Math.max(1, Math.min(this.cols, selectedColumns + 1))\n };\n if (key == keys.ENTER) {\n this._exec(tableSize);\n } else {\n this._setTableSize(tableSize);\n }\n if (changed) {\n e.preventDefault();\n e.stopImmediatePropagation();\n }\n },\n _open: function () {\n var messages = this._editor.options.messages;\n PopupTool.fn._open.call(this);\n this.popup().element.find('.k-status').text(messages.createTable).end().find('.k-ct-cell').removeClass(SELECTEDSTATE);\n },\n _close: function () {\n PopupTool.fn._close.call(this);\n this.popup().element.off('.' + NS);\n }\n });\n var TableModificationCommand = Command.extend({\n _clearColIndexAttr: function (table) {\n dom.clearTableMappings(table, 'col-index');\n },\n _mapColIndices: function (table) {\n dom.reMapTableColumns(table, 'col-index');\n },\n _findRowSpanCell: function (parent, rowIndex, colIndex) {\n var row, cell;\n for (var i = rowIndex; i >= 0; i--) {\n row = parent.rows[i];\n cell = $(row).find('[col-index=' + colIndex + ']');\n if (cell.length) {\n return cell;\n }\n }\n },\n _resetTableResizing: function (editor) {\n editor._destroyResizings();\n editor._initializeColumnResizing();\n editor._initializeRowResizing();\n editor._initializeTableResizing();\n },\n _findNextTdInRow: function (row, colIndex) {\n var lastTd = row.find('td:last-child'), lastIndex = parseInt(lastTd.attr('col-index'), 10) + lastTd.prop('colSpan') - 1, td;\n for (var i = colIndex; i <= lastIndex; i++) {\n td = row.find('[col-index=' + i + ']');\n if (td.length) {\n return td;\n }\n }\n },\n _adjustColgroups: function (row, table) {\n var colElements = table.getElementsByTagName(COL), colgroupElements = table.getElementsByTagName(COLGROUP), cells = row.cells, numberOfCells = cells.length, i, colgroup, cell;\n while (colElements.length > 0) {\n colElements[0].remove();\n }\n while (colgroupElements.length > 0) {\n colgroupElements[0].remove();\n }\n for (i = numberOfCells - 1; i >= 0; i--) {\n cell = cells[i];\n if (cell.getAttribute(SCOPE) === COLGROUP) {\n colgroup = dom.createEmptyNode(this.editor.document, COLGROUP);\n colgroup.setAttribute('span', cell.getAttribute(COLSPAN));\n table.prepend(colgroup);\n } else {\n table.prepend(dom.createEmptyNode(this.editor.document, COL));\n }\n }\n },\n _associateHeaderIds: function (table) {\n dom.clearTableMappings(table, 'col-index');\n dom.reMapTableColumns(table, 'col-index');\n $(table).find('th, td').removeAttr('id headers');\n dom.associateWithIds(table);\n },\n _getNumberOfColumns: function (table) {\n return dom._getNumberOfColumns(table, 'td, th');\n }\n });\n var InsertRowCommand = TableModificationCommand.extend({\n exec: function () {\n var range = this.lockRange(true), td = dom.closest(range.endContainer, [\n TD,\n TH\n ]), table = dom.closest(td, TABLE), position = this.options.position || 'after', cellCount, row, cell, newRow, rowIndex, rowSpanIndex, createdCell;\n if (!table || this.immutables() && Editor.Immutables.immutableParent(td)) {\n this.releaseRange(range);\n return;\n }\n this._mapColIndices(table);\n row = td.parentNode;\n rowIndex = dom.findNodeIndex(row, true);\n if (td.rowSpan > 1 && position === 'after') {\n row = table.rows[rowIndex + td.rowSpan - 1];\n }\n cellCount = this._getNumberOfColumns(table);\n newRow = row.cloneNode(true);\n $(newRow).empty();\n for (var i = 0; i < cellCount; i = i + cell.prop('colSpan')) {\n cell = $(row).find('[col-index=' + i + ']');\n if (cell.length) {\n if (cell.prop('rowSpan') > 1 && position === 'after' && cell) {\n cell.attr(ROWSPAN, cell.prop('rowSpan') + 1);\n } else {\n this._appendCell(newRow, cell);\n }\n } else {\n rowIndex = dom.findNodeIndex(row, true);\n cell = this._findRowSpanCell(row.parentElement, rowIndex, i);\n rowSpanIndex = cell.closest(TR).index();\n if (rowSpanIndex + cell.prop('rowSpan') - 1 === rowIndex && position === 'after') {\n this._appendCell(newRow, cell);\n } else {\n cell.attr(ROWSPAN, cell.prop('rowSpan') + 1);\n }\n }\n createdCell = $(newRow).find('[col-index=' + i + ']');\n if (createdCell.attr(SCOPE) === ROWGROUP && !createdCell.attr(ROWSPAN)) {\n createdCell.attr(SCOPE, ROW);\n }\n }\n if (position == 'before') {\n dom.insertBefore(newRow, row);\n } else {\n dom.insertAfter(newRow, row);\n }\n if ($(table).find('[headers]').length > 0) {\n this._associateHeaderIds(table);\n }\n this._clearColIndexAttr(table);\n this.releaseRange(range);\n this._resetTableResizing(this.editor);\n },\n _appendCell: function (row, cell) {\n var newCell;\n newCell = cell.clone();\n newCell.html(Editor.emptyTableCellContent);\n newCell.removeAttr(ROWSPAN);\n newCell.appendTo(row);\n }\n });\n var InsertColumnCommand = TableModificationCommand.extend({\n exec: function () {\n var range = this.lockRange(true), td = dom.closest(range.endContainer, [\n TD,\n TH\n ]), table = dom.closest(td, TABLE), colElements = table.getElementsByTagName(COL), colgroupElements = table.getElementsByTagName(COLGROUP), columnIndex, i, rows = table && table.rows, cell, newCell, position = this.options.position || 'after';\n if (!td || this.immutables() && Editor.Immutables.immutableParent(td)) {\n this.releaseRange(range);\n return;\n }\n this._mapColIndices(table);\n columnIndex = parseInt(td.getAttribute('col-index'), 10);\n if (td.colSpan > 1 && position === 'after') {\n td.setAttribute('col-index', columnIndex + td.colSpan - 1);\n columnIndex = columnIndex + td.colSpan - 1;\n }\n for (i = 0; i < rows.length; i++) {\n cell = this._processForColSpan(rows[i], columnIndex, position, td);\n if (!cell) {\n continue;\n }\n newCell = cell.cloneNode();\n newCell.innerHTML = Editor.emptyTableCellContent;\n newCell.removeAttribute(COLSPAN);\n if (newCell.getAttribute(SCOPE) && newCell.getAttribute(SCOPE) === COLGROUP) {\n newCell.setAttribute(SCOPE, COL);\n }\n if (position == 'before') {\n dom.insertBefore(newCell, cell);\n } else {\n dom.insertAfter(newCell, cell);\n }\n this._resizeCells(newCell, cell);\n }\n if (colElements.length > 0 || colgroupElements.length > 0) {\n this._adjustColgroups(rows[0], table);\n }\n if ($(table).find('[headers]').length > 0) {\n this._associateHeaderIds(table);\n }\n this._clearColIndexAttr(table);\n this.releaseRange(range);\n this._resetTableResizing(this.editor);\n },\n _processForColSpan: function (row, columnIndex, position, selectedCell) {\n var cell, colSpanEffect, index = columnIndex - 1;\n cell = $(row).find('[col-index=' + columnIndex + ']')[0];\n if (cell && cell.colSpan > 1 && position === 'after' && cell !== selectedCell) {\n cell.colSpan += 1;\n return;\n }\n if (cell) {\n return cell;\n }\n for (index; index >= 0; index--) {\n cell = $(row).find('[col-index=' + index + ']')[0];\n if (cell && cell.colSpan > 1) {\n break;\n }\n }\n if (!cell) {\n return;\n }\n colSpanEffect = parseInt(cell.getAttribute('col-index'), 10) + cell.colSpan - 1;\n if (colSpanEffect === columnIndex && position === 'after') {\n return cell;\n } else if (columnIndex <= colSpanEffect) {\n cell.setAttribute(COLSPAN, cell.colSpan + 1);\n }\n },\n _resizeCells: function (newCell, cell) {\n var width = newCell.style.width, parsedWidth, unit, calculatedWidth;\n if (!width) {\n return;\n }\n parsedWidth = parseFloat(width);\n unit = width.slice(parsedWidth.toString().length);\n calculatedWidth = parsedWidth / 2 + unit;\n newCell.style.width = calculatedWidth;\n cell.style.width = calculatedWidth;\n }\n });\n var DeleteRowCommand = TableModificationCommand.extend({\n exec: function () {\n var range = this.lockRange();\n var rows = RangeUtils.mapAll(range, function (node) {\n return $(node).closest(TR)[0];\n });\n var td = dom.closest(range.endContainer, [\n TD,\n TH\n ]);\n var row = rows[0];\n var rowSpan = td ? td.rowSpan : 1;\n var rowIndex = $(rows[0]).index();\n var table = dom.closest(row, TABLE);\n var rowParent = row.parentElement;\n var focusElement;\n if (!table || this.immutables() && Editor.Immutables.immutableParent(row)) {\n this.releaseRange(range);\n return;\n }\n for (var x = 0; x < rowSpan; x++) {\n if (rows.indexOf(rowParent.rows[rowIndex + x]) < 0) {\n rows.push(rowParent.rows[rowIndex + x]);\n }\n }\n if (table.rows.length <= rows.length) {\n focusElement = dom.next(table);\n if (!focusElement || dom.insignificant(focusElement)) {\n focusElement = dom.prev(table);\n }\n dom.remove(table);\n this._resetTableResizing(this.editor);\n } else if (rowParent.rows.length <= rows.length) {\n focusElement = rowParent.nextSibling;\n if (!focusElement) {\n focusElement = rowParent.previousSibling;\n }\n dom.remove(rowParent);\n } else {\n this._mapColIndices(table);\n for (var i = 0; i < rows.length; i++) {\n row = rows[i];\n dom.removeTextSiblings(row);\n focusElement = dom.next(row) || dom.prev(row);\n focusElement = focusElement.cells[0];\n this._handleRowSpanCells(table, row);\n dom.remove(row);\n }\n this._clearColIndexAttr(table);\n }\n if ($(table).find('[headers]').length > 0) {\n this._associateHeaderIds(table);\n } else if (dom.is(rowParent, THEAD) && $(table).find('[scope]').length > 0) {\n this._adjustColgroups(rowParent.rows[0], table);\n }\n if (focusElement) {\n range.setStart(focusElement, 0);\n range.collapse(true);\n this.editor.selectRange(range);\n }\n this._resetTableResizing(this.editor);\n },\n _handleRowSpanCells: function (table, row) {\n var index, cell, adjacentCell, nextRow, rowIndex = dom.findNodeIndex(row, true), firstRow = table.rows[0], lastCell = firstRow.cells[firstRow.cells.length - 1], lastIndex = parseInt(lastCell.getAttribute('col-index'), 10) + lastCell.colSpan - 1;\n for (index = 0; index <= lastIndex; index = index + cell.prop('colSpan')) {\n cell = $(row).find('[col-index=' + index + ']');\n if (cell.length && cell.prop('rowSpan') > 1) {\n nextRow = table.rows[rowIndex + 1];\n adjacentCell = $(nextRow).find('[col-index=' + (index + 1) + ']');\n if (adjacentCell.length) {\n adjacentCell.before(cell);\n } else {\n $(nextRow).append(cell);\n }\n this._reduceRowSpan(cell);\n }\n if (!cell.length) {\n cell = this._findRowSpanCell(row.parentElement, rowIndex, index);\n this._reduceRowSpan(cell);\n }\n }\n },\n _reduceRowSpan: function (td) {\n var rowSpanValue = td.prop('rowSpan') - 1;\n if (rowSpanValue <= 1) {\n td.removeAttr(ROWSPAN);\n if (td.attr(SCOPE) === ROWGROUP) {\n td.attr(SCOPE, ROW);\n }\n } else {\n td.attr(ROWSPAN, rowSpanValue);\n }\n }\n });\n var DeleteColumnCommand = TableModificationCommand.extend({\n exec: function () {\n var range = this.lockRange(), td = dom.closest(range.endContainer, [\n TD,\n TH\n ]), table = dom.closest(td, TABLE), rows = table && table.rows, columnIndex = dom.findNodeIndex(td, true), columnCount = rows && rows[0].cells.length, colElements = table.getElementsByTagName(COL), colgroupElements = table.getElementsByTagName(COLGROUP), focusElement, i, cell, x;\n if (!td || this.immutables() && Editor.Immutables.immutableParent(td)) {\n this.releaseRange(range);\n return;\n }\n if (columnCount == 1 || td.colSpan == columnCount) {\n focusElement = dom.next(table);\n if (!focusElement || dom.insignificant(focusElement)) {\n focusElement = dom.prev(table);\n }\n dom.remove(table);\n this._resetTableResizing(this.editor);\n } else {\n dom.removeTextSiblings(td);\n focusElement = dom.next(td) || dom.prev(td);\n this._mapColIndices(table);\n columnIndex = parseInt(td.getAttribute('col-index'), 10);\n for (x = 0; x < td.colSpan; x++) {\n for (i = 0; i < rows.length; i = i + (cell.prop('rowSpan') || 1)) {\n cell = $(rows[i]).find('[col-index=' + (columnIndex + x) + ']');\n if (cell.length && cell.prop('colSpan') <= 1) {\n cell.remove();\n } else {\n this._handleColSpanCells(rows[i], columnIndex + x);\n }\n }\n }\n this._clearColIndexAttr(table);\n }\n if (colElements.length > 0 || colgroupElements.length > 0) {\n this._adjustColgroups(rows[0], table);\n }\n if ($(table).find('[headers]').length > 0) {\n this._associateHeaderIds(table);\n }\n if (focusElement) {\n range.setStart(focusElement, 0);\n range.collapse(true);\n this.editor.selectRange(range);\n }\n this._resetTableResizing(this.editor);\n },\n _handleColSpanCells: function (row, colIndex) {\n var cell = $(row).find('[col-index=' + colIndex + ']');\n if (cell.length && cell.prop('colSpan') > 1) {\n var clone = cell.clone(true);\n cell.after(clone);\n this._reduceColSpan(clone);\n clone.attr('col-index', parseInt(cell.attr('col-index'), 10) + 1);\n cell.remove();\n return;\n }\n for (var i = colIndex; i >= 0; i--) {\n cell = $(row).find('[col-index=' + i + ']');\n if (cell.length) {\n this._reduceColSpan(cell);\n cell.attr('col-index', parseInt(cell.attr('col-index'), 10) + 1);\n return;\n }\n }\n },\n _reduceColSpan: function (td) {\n var colSpanValue = td.prop('colSpan') - 1;\n if (colSpanValue <= 1) {\n td.removeAttr(COLSPAN);\n if (td.attr(SCOPE) === COLGROUP) {\n td.attr(SCOPE, COL);\n }\n } else {\n td.attr(COLSPAN, colSpanValue);\n }\n }\n });\n var MergeCellsHorizontallyCommand = TableModificationCommand.extend({\n exec: function () {\n var range = this.lockRange(), td = dom.closest(range.endContainer, [\n TD,\n TH\n ]), table, row, columnIndex, nextTd, colspan;\n if (!td) {\n this.releaseRange(range);\n return;\n }\n table = dom.closest(td, TABLE);\n row = td.parentNode;\n columnIndex = dom.findNodeIndex(td, true);\n nextTd = row.children[columnIndex + 1];\n if (this.immutables() && Editor.Immutables.immutableParent(td)) {\n this.releaseRange(range);\n return;\n }\n this._mapColIndices(table);\n columnIndex = parseInt($(td).attr('col-index'), 10);\n nextTd = $(row).find('[col-index=' + (columnIndex + 1 + this._getColspan(td) - 1) + ']').get(0);\n if (!nextTd || nextTd.rowSpan !== td.rowSpan || td.tagName !== nextTd.tagName) {\n this._clearColIndexAttr(table);\n this.releaseRange(range);\n return;\n }\n colspan = this._getColspan(td) + this._getColspan(nextTd);\n $(td).prop(COLSPAN, colspan).append(dom.emptyNode(nextTd) ? '' : '
          ' + nextTd.innerHTML);\n $(td).width(td.offsetWidth);\n $(nextTd).remove();\n if (td.getAttribute(SCOPE) === COL) {\n td.setAttribute(SCOPE, COLGROUP);\n }\n if (td.getAttribute(SCOPE) === COLGROUP) {\n this._adjustColgroups(row, table);\n }\n if ($(table).find('[headers]').length > 0) {\n this._associateHeaderIds(table);\n }\n this._clearColIndexAttr(table);\n this.releaseRange(range);\n this._resetTableResizing(this.editor);\n },\n _getColspan: function (td) {\n return parseInt(td.getAttribute(COLSPAN), 10) || 1;\n }\n });\n var MergeCellsVerticallyCommand = TableModificationCommand.extend({\n exec: function () {\n var range = this.lockRange(), td = dom.closest(range.endContainer, [\n TD,\n TH\n ]), tr, parent, table, columnIndex, rowIndex, targetRow, bottomTd;\n if (!td) {\n this.releaseRange(range);\n return;\n }\n tr = dom.closest(td, TR);\n parent = dom.closest(td, [\n THEAD,\n TBODY\n ]);\n table = dom.closest(td, TABLE);\n columnIndex = dom.findNodeIndex(td, true);\n rowIndex = dom.findNodeIndex(tr, true);\n if (rowIndex + 1 === parent.rows.length) {\n this.releaseRange(range);\n return;\n }\n targetRow = parent.rows[rowIndex + this._getRowspan(td)];\n bottomTd = targetRow && targetRow.children[columnIndex];\n if (this.immutables() && Editor.Immutables.immutableParent(td)) {\n this.releaseRange(range);\n return;\n }\n this._mapColIndices(table);\n columnIndex = $(td).attr('col-index');\n bottomTd = $(targetRow).find('[col-index=' + columnIndex + ']').get(0);\n if (!bottomTd || bottomTd.colSpan !== td.colSpan || td.tagName !== bottomTd.tagName) {\n this._clearColIndexAttr(table);\n this.releaseRange(range);\n return;\n }\n $(td).prop(ROWSPAN, this._getRowspan(td) + this._getRowspan(bottomTd)).append(dom.emptyNode(bottomTd) ? '' : '
          ' + bottomTd.innerHTML);\n if (td.getAttribute(SCOPE) === ROW) {\n td.setAttribute(SCOPE, ROWGROUP);\n }\n $(bottomTd).remove();\n if ($(table).find('[headers]').length > 0) {\n this._associateHeaderIds(table);\n }\n this._clearColIndexAttr(table);\n this.releaseRange(range);\n },\n _getRowspan: function (td) {\n return parseInt(td.getAttribute(ROWSPAN), 10) || 1;\n }\n });\n var SplitCellCommand = TableModificationCommand.extend({\n exec: function () {\n var range = this.lockRange(), type = this.options.type, attr = type === 'row' ? COLSPAN : ROWSPAN, td = dom.closest(range.endContainer, [\n TD,\n TH\n ]), parent = dom.closest(td, [\n THEAD,\n TBODY\n ]), table = dom.closest(td, TABLE), emptyTd = dom.createEmptyNode(this.editor.document, td.nodeName.toLowerCase());\n if (!td || this.immutables() && Editor.Immutables.immutableParent(td)) {\n this.releaseRange(range);\n return;\n }\n this._mapColIndices(table);\n if (type === 'row' && $(td).is('[' + attr + ']')) {\n this._splitCellHorizontally(td, parent, attr, emptyTd);\n } else if (type === 'column' && $(td).is('[' + attr + ']')) {\n this._splitCellVertically(td, parent, attr, emptyTd);\n }\n if ($(td).prop(attr.toLowerCase()) <= 1) {\n $(td).removeAttr(attr);\n }\n if ($(table).find('[headers]').length > 0) {\n this._associateHeaderIds(table);\n }\n this._clearColIndexAttr(table);\n this.releaseRange(range);\n },\n _getRowspanValue: function (td) {\n return parseInt(td.getAttribute(ROWSPAN), 10);\n },\n _getColspanValue: function (td) {\n return parseInt(td.getAttribute(COLSPAN), 10);\n },\n _splitCellHorizontally: function (td, parent, attr, emptyTd) {\n var rowSpan = td.rowSpan, colSpan = td.colSpan, tdToAdd = $(emptyTd), colSpanResult = Math.floor(colSpan / 2);\n if (colSpanResult > 1) {\n tdToAdd.attr(COLSPAN, colSpanResult);\n }\n if (rowSpan > 1) {\n tdToAdd.attr(ROWSPAN, rowSpan);\n }\n $(td).prop(attr, colSpan - colSpanResult).after(tdToAdd);\n $(td).width(td.offsetWidth);\n tdToAdd.width(tdToAdd[0].offsetWidth);\n if (td.hasAttribute(SCOPE)) {\n if (td.getAttribute(SCOPE) === COLGROUP) {\n tdToAdd.attr(SCOPE, COL);\n if (!td.getAttribute(COLSPAN) || td.getAttribute(COLSPAN) === '1') {\n td.setAttribute(SCOPE, COL);\n }\n this._adjustColgroups(td.parentNode, parent.parentNode);\n } else {\n tdToAdd.attr(SCOPE, td.getAttribute(SCOPE));\n }\n }\n },\n _splitCellVertically: function (td, parent, attr, emptyTd) {\n var tr = dom.closest(td, TR), columnIndex = parseInt($(td).attr('col-index'), 10), rowIndex = dom.findNodeIndex(tr, true), rowSpan = td.rowSpan, colSpan = td.colSpan, rowSpanResult = Math.floor(rowSpan / 2), targetRow = $(parent).find(TR).eq(rowIndex + rowSpan - rowSpanResult), nextTd = this._findNextTdInRow(targetRow, columnIndex + colSpan), tdToAdd = $(emptyTd);\n if (rowSpanResult > 1) {\n tdToAdd.attr(ROWSPAN, rowSpanResult);\n }\n if (colSpan > 1) {\n tdToAdd.attr(COLSPAN, colSpan);\n }\n if (nextTd && nextTd.length) {\n nextTd.before(tdToAdd);\n } else {\n targetRow.append(tdToAdd);\n }\n $(td).prop(attr, rowSpan - rowSpanResult);\n if (td.hasAttribute(SCOPE)) {\n if (td.getAttribute(SCOPE) === ROWGROUP) {\n tdToAdd.attr(SCOPE, ROW);\n if (!td.getAttribute(ROWSPAN) || td.getAttribute(ROWSPAN) === '1') {\n td.setAttribute(SCOPE, ROW);\n }\n } else {\n tdToAdd.attr(SCOPE, td.getAttribute(SCOPE));\n }\n }\n }\n });\n var TableModificationTool = Tool.extend({\n command: function (options) {\n var commandsMap = {\n row: {\n insert: InsertRowCommand,\n 'delete': DeleteRowCommand,\n merge: MergeCellsHorizontallyCommand,\n split: SplitCellCommand\n },\n column: {\n insert: InsertColumnCommand,\n 'delete': DeleteColumnCommand,\n merge: MergeCellsVerticallyCommand,\n split: SplitCellCommand\n }\n };\n options = extend(options, this.options);\n options.action = options.action || 'insert';\n return new commandsMap[options.type][options.action](options);\n },\n initialize: function (ui, options) {\n Tool.fn.initialize.call(this, ui, options);\n ui.addClass('k-state-disabled');\n ui.attr('disabled', 'disabled');\n },\n update: function (ui, nodes) {\n var isFormatted = !tableFormatFinder.isFormatted(nodes);\n if (isFormatted === true) {\n ui.parent().addClass('k-hidden k-state-disabled');\n ui.attr('disabled', 'disabled');\n ui.addClass('k-state-disabled');\n } else {\n ui.parent().removeClass('k-hidden k-state-disabled');\n ui.removeAttr('disabled');\n ui.removeClass('k-state-disabled');\n }\n }\n });\n extend(kendo.ui.editor, {\n PopupTool: PopupTool,\n TableCommand: TableCommand,\n InsertTableTool: InsertTableTool,\n TableModificationTool: TableModificationTool,\n InsertRowCommand: InsertRowCommand,\n InsertColumnCommand: InsertColumnCommand,\n DeleteRowCommand: DeleteRowCommand,\n DeleteColumnCommand: DeleteColumnCommand,\n MergeCellsHorizontallyCommand: MergeCellsHorizontallyCommand,\n MergeCellsVerticallyCommand: MergeCellsVerticallyCommand,\n SplitCellCommand: SplitCellCommand\n });\n registerTool('createTable', new InsertTableTool({\n template: new ToolTemplate({\n template: EditorUtils.buttonTemplate,\n popup: true,\n title: 'Create table'\n })\n }));\n registerTool('addColumnLeft', new TableModificationTool({\n type: 'column',\n position: 'before',\n template: new ToolTemplate({\n template: EditorUtils.buttonTemplate,\n title: 'Add column on the left'\n })\n }));\n registerTool('addColumnRight', new TableModificationTool({\n type: 'column',\n template: new ToolTemplate({\n template: EditorUtils.buttonTemplate,\n title: 'Add column on the right'\n })\n }));\n registerTool('addRowAbove', new TableModificationTool({\n type: 'row',\n position: 'before',\n template: new ToolTemplate({\n template: EditorUtils.buttonTemplate,\n title: 'Add row above'\n })\n }));\n registerTool('addRowBelow', new TableModificationTool({\n type: 'row',\n template: new ToolTemplate({\n template: EditorUtils.buttonTemplate,\n title: 'Add row below'\n })\n }));\n registerTool('deleteRow', new TableModificationTool({\n type: 'row',\n action: 'delete',\n template: new ToolTemplate({\n template: EditorUtils.buttonTemplate,\n title: 'Delete row'\n })\n }));\n registerTool('deleteColumn', new TableModificationTool({\n type: 'column',\n action: 'delete',\n template: new ToolTemplate({\n template: EditorUtils.buttonTemplate,\n title: 'Delete column'\n })\n }));\n registerTool('mergeCellsHorizontally', new TableModificationTool({\n type: 'row',\n action: 'merge',\n template: new ToolTemplate({\n template: EditorUtils.buttonTemplate,\n title: 'Merge Cell Right'\n })\n }));\n registerTool('mergeCellsVertically', new TableModificationTool({\n type: 'column',\n action: 'merge',\n template: new ToolTemplate({\n template: EditorUtils.buttonTemplate,\n title: 'Merge Cell Down'\n })\n }));\n registerTool('splitCellHorizontally', new TableModificationTool({\n type: 'row',\n action: 'split',\n template: new ToolTemplate({\n template: EditorUtils.buttonTemplate,\n title: 'Split Cell'\n })\n }));\n registerTool('splitCellVertically', new TableModificationTool({\n type: 'column',\n action: 'split',\n template: new ToolTemplate({\n template: EditorUtils.buttonTemplate,\n title: 'Split Cell'\n })\n }));\n }(window.kendo.jQuery));\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('editor/plugins/clipboard', ['editor/command'], f);\n}(function () {\n (function ($) {\n var kendo = window.kendo, Class = kendo.Class, editorNS = kendo.ui.editor, RangeUtils = editorNS.RangeUtils, dom = editorNS.Dom, RestorePoint = editorNS.RestorePoint, Marker = editorNS.Marker, browser = kendo.support.browser, extend = $.extend;\n var Clipboard = Class.extend({\n init: function (editor) {\n this.editor = editor;\n var pasteCleanup = editor.options.pasteCleanup;\n this.cleaners = [\n new ScriptCleaner(pasteCleanup),\n new TabCleaner(pasteCleanup),\n new MSWordFormatCleaner(pasteCleanup),\n new WebkitFormatCleaner(pasteCleanup),\n new HtmlTagsCleaner(pasteCleanup),\n new HtmlAttrCleaner(pasteCleanup),\n new HtmlContentCleaner(pasteCleanup),\n new CustomCleaner(pasteCleanup)\n ];\n },\n htmlToFragment: function (html) {\n var editor = this.editor, doc = editor.document, container = dom.create(doc, 'div'), fragment = doc.createDocumentFragment();\n container.innerHTML = html;\n while (container.firstChild) {\n fragment.appendChild(container.firstChild);\n }\n return fragment;\n },\n isBlock: function (html) {\n return /<(div|p|ul|ol|table|h[1-6])/i.test(html);\n },\n _startModification: function () {\n var range;\n var restorePoint;\n var editor = this.editor;\n if (this._inProgress) {\n return;\n }\n this._inProgress = true;\n range = editor.getRange();\n restorePoint = new RestorePoint(range, editor.body);\n dom.persistScrollTop(editor.document);\n return {\n range: range,\n restorePoint: restorePoint\n };\n },\n _endModification: function (modificationInfo) {\n editorNS._finishUpdate(this.editor, modificationInfo.restorePoint);\n this.editor._selectionChange();\n this._inProgress = false;\n },\n _contentModification: function (before, after) {\n var that = this;\n var editor = that.editor;\n var modificationInfo = that._startModification();\n if (!modificationInfo) {\n return;\n }\n before.call(that, editor, modificationInfo.range);\n setTimeout(function () {\n after.call(that, editor, modificationInfo.range);\n that._endModification(modificationInfo);\n });\n },\n _removeBomNodes: function (range) {\n var nodes = RangeUtils.textNodes(range);\n for (var i = 0; i < nodes.length; i++) {\n nodes[i].nodeValue = dom.stripBom(nodes[i].nodeValue) || nodes[i].nodeValue;\n }\n },\n _onBeforeCopy: function (range) {\n var marker = new Marker();\n marker.add(range);\n this._removeBomNodes(range);\n marker.remove(range);\n this.editor.selectRange(range);\n },\n oncopy: function () {\n this._onBeforeCopy(this.editor.getRange());\n },\n oncut: function () {\n this._onBeforeCopy(this.editor.getRange());\n this._contentModification($.noop, $.noop);\n },\n _fileToDataURL: function (blob) {\n var deferred = $.Deferred();\n var reader = new FileReader();\n if (!(blob instanceof window.File) && blob.getAsFile) {\n blob = blob.getAsFile();\n }\n reader.onload = $.proxy(deferred.resolve, deferred);\n reader.readAsDataURL(blob);\n return deferred.promise();\n },\n _triggerPaste: function (html, options) {\n var args = { html: html || '' };\n args.html = args.html.replace(/\\ufeff/g, '');\n this.editor.trigger('paste', args);\n this.paste(args.html, options || {});\n },\n _handleImagePaste: function (e) {\n if (!('FileReader' in window) || browser.msie && browser.version > 10) {\n return;\n }\n var clipboardData = e.clipboardData || e.originalEvent.clipboardData || window.clipboardData || {};\n var items = clipboardData.items || clipboardData.files;\n return this._insertImages(items);\n },\n _insertImages: function (items) {\n if (!items) {\n return;\n }\n var images = $.grep(items, function (item) {\n return /^image\\//i.test(item.type);\n });\n var html = $.grep(items, function (item) {\n return /^text\\/html/i.test(item.type);\n });\n if (html.length || !images.length) {\n return;\n }\n var modificationInfo = this._startModification();\n if (!modificationInfo) {\n return;\n }\n $.when.apply($, $.map(images, this._fileToDataURL)).done($.proxy(function () {\n var results = Array.prototype.slice.call(arguments);\n var html = $.map(results, function (e) {\n return '';\n }).join('');\n this._triggerPaste(html);\n this._endModification(modificationInfo);\n }, this));\n return true;\n },\n onpaste: function (e) {\n if (this.editor.body.contentEditable === 'false') {\n return;\n }\n if (this._handleImagePaste(e)) {\n e.preventDefault();\n return;\n }\n this.expandImmutablesIn();\n this._contentModification(function beforePaste(editor, range) {\n var clipboardNode = dom.create(editor.document, 'div', {\n className: 'k-paste-container',\n innerHTML: '\\uFEFF'\n });\n var browser = kendo.support.browser;\n var body = editor.body;\n this._decoreateClipboardNode(clipboardNode, body);\n body.appendChild(clipboardNode);\n if (browser.webkit) {\n this._moveToCaretPosition(clipboardNode, range);\n }\n if (browser.msie && browser.version < 11) {\n e.preventDefault();\n var r = editor.createRange();\n r.selectNodeContents(clipboardNode);\n editor.selectRange(r);\n var textRange = editor.document.body.createTextRange();\n textRange.moveToElementText(clipboardNode);\n $(body).unbind('paste');\n textRange.execCommand('Paste');\n $(body).bind('paste', $.proxy(this.onpaste, this));\n } else {\n var clipboardRange = editor.createRange();\n clipboardRange.selectNodeContents(clipboardNode);\n editor.selectRange(clipboardRange);\n }\n range.deleteContents();\n }, function afterPaste(editor, range) {\n var html = '', containers;\n editor.selectRange(range);\n containers = $(editor.body).children('.k-paste-container');\n containers.each(function () {\n var lastChild = this.lastChild;\n if (lastChild && dom.is(lastChild, 'br')) {\n dom.remove(lastChild);\n }\n html += this.innerHTML;\n });\n containers.remove();\n this._triggerPaste(html, { clean: true });\n });\n },\n ondragover: function (e) {\n if (browser.msie || browser.edge) {\n e.stopPropagation();\n e.preventDefault();\n }\n },\n ondrop: function (e) {\n if (!('FileReader' in window)) {\n return;\n }\n var dataTransfer = (e.originalEvent || e).dataTransfer || {};\n var items = dataTransfer.items || dataTransfer.files;\n if (this._insertImages(items)) {\n e.preventDefault();\n }\n },\n _decoreateClipboardNode: function (node, body) {\n if (!browser.msie && !browser.webkit) {\n return;\n }\n node = $(node);\n node.css({\n borderWidth: '0px',\n width: '0px',\n height: '0px',\n overflow: 'hidden',\n margin: '0',\n padding: '0'\n });\n if (browser.msie) {\n var documentElement = $(body.ownerDocument.documentElement);\n node.css({\n fontVariant: 'normal',\n fontWeight: 'normal',\n lineSpacing: 'normal',\n lineHeight: 'normal',\n textDecoration: 'none'\n });\n var color = documentElement.css('color');\n if (color) {\n node.css('color', color);\n }\n var fontFamily = documentElement.css('fontFamily');\n if (fontFamily) {\n node.css('fontFamily', fontFamily);\n }\n var fontSize = documentElement.css('fontSize');\n if (fontSize) {\n node.css('fontSize', fontSize);\n }\n }\n },\n _moveToCaretPosition: function (node, range) {\n var that = this;\n var body = that.editor.body;\n var nodeOffset = dom.offset(node, body);\n var caretOffset = that._caretOffset(range, body);\n var translateX = caretOffset.left - nodeOffset.left;\n var translateY = caretOffset.top - nodeOffset.top;\n var translate = 'translate(' + translateX + 'px,' + translateY + 'px)';\n $(node).css({\n '-webkit-transform': translate,\n 'transform': translate\n });\n },\n _caretOffset: function (range, body) {\n var editor = this.editor;\n var caret = dom.create(editor.document, 'span', { innerHTML: '\\uFEFF' });\n var startContainer = range.startContainer;\n var rangeChanged;\n if (range.collapsed) {\n var isStartTextNode = dom.isDataNode(startContainer);\n if (isStartTextNode && (dom.isBom(startContainer) || range.startOffset === 0)) {\n dom.insertBefore(caret, startContainer);\n } else if (isStartTextNode && range.startOffset === startContainer.length) {\n dom.insertAfter(caret, startContainer);\n } else {\n range.insertNode(caret);\n rangeChanged = true;\n }\n } else {\n startContainer = startContainer === body ? startContainer.childNodes[range.startOffset] : startContainer;\n dom.insertBefore(caret, startContainer);\n }\n var offset = dom.offset(caret, body);\n var prev = caret.previousSibling;\n var next = caret.nextSibling;\n dom.remove(caret);\n if (rangeChanged && dom.isDataNode(prev) && dom.isDataNode(next) && !dom.isBom(prev) && !dom.isBom(next)) {\n var prevLength = prev.length;\n next.data = prev.data + next.data;\n range.setStart(next, prevLength);\n dom.remove(prev);\n range.collapse(true);\n editor.selectRange(range);\n }\n return offset;\n },\n expandImmutablesIn: function (range) {\n var editor = this.editor;\n if (editor && editor.options.immutables) {\n var body = editor.body;\n range = range || editor.getRange();\n kendo.ui.editor.Immutables.expandImmutablesIn(range);\n if (range.startContainer === body && range.startOffset === 0) {\n var doc = body.ownerDocument;\n var bomNode = doc.createTextNode('\\uFEFF');\n body.insertBefore(bomNode, body.childNodes[0]);\n range.setStartBefore(bomNode);\n }\n editor.selectRange(range);\n }\n },\n splittableParent: function (block, node) {\n var parentNode, body;\n if (block) {\n return dom.closestEditableOfType(node, [\n 'p',\n 'ul',\n 'ol'\n ]) || node.parentNode;\n }\n parentNode = node.parentNode;\n body = node.ownerDocument.body;\n if (dom.isInline(parentNode)) {\n while (parentNode.parentNode != body && !dom.isBlock(parentNode.parentNode)) {\n parentNode = parentNode.parentNode;\n }\n }\n return parentNode;\n },\n paste: function (html, options) {\n var editor = this.editor, i, l, childNodes;\n this.expandImmutablesIn();\n options = extend({\n clean: false,\n split: true\n }, options);\n if (!options.skipCleaners) {\n for (i = 0, l = this.cleaners.length; i < l; i++) {\n if (this.cleaners[i].applicable(html)) {\n html = this.cleaners[i].clean(html);\n }\n }\n }\n if (options.clean) {\n html = html.replace(/(
          (\\s| )*)+(<\\/?(div|p|li|col|t))/gi, '$3');\n html = html.replace(/<(a|span)[^>]*><\\/\\1>/gi, '');\n }\n html = html.replace(/<(a|span|font)([^>]*)> <\\/\\1>/gi, '<$1$2> ');\n html = html.replace(/^
        • $/g, 'li>
        ');\n var block = this.isBlock(html);\n editor.focus();\n var range = editor.getRange();\n range.deleteContents();\n if (range.startContainer == editor.document) {\n range.selectNodeContents(editor.body);\n }\n var marker = new Marker();\n var caret = marker.addCaret(range);\n var parent = this.splittableParent(block, caret);\n var unwrap = false;\n var splittable = parent != editor.body && !dom.is(parent, 'td');\n if (options.split && splittable && (block || dom.isInline(parent))) {\n range.selectNode(caret);\n RangeUtils.split(range, parent, true);\n unwrap = true;\n }\n var fragment = this.htmlToFragment(html);\n if (fragment.firstChild && fragment.firstChild.className === 'k-paste-container') {\n var fragmentsHtml = [];\n for (i = 0, l = fragment.childNodes.length; i < l; i++) {\n fragmentsHtml.push(fragment.childNodes[i].innerHTML);\n }\n fragment = this.htmlToFragment(fragmentsHtml.join('
        '));\n }\n childNodes = fragment.childNodes;\n $(childNodes).filter('table').addClass('k-table').end().find('table').addClass('k-table');\n $(childNodes).each(function (index, elm) {\n if (dom.isBlock(elm) && !dom.isSelfClosing(elm) && elm.innerHTML === '') {\n elm.appendChild(editor.document.createTextNode('\\uFEFF'));\n }\n });\n range.insertNode(fragment);\n parent = this.splittableParent(block, caret);\n if (unwrap) {\n while (caret.parentNode != parent) {\n dom.unwrap(caret.parentNode);\n }\n dom.unwrap(caret.parentNode);\n }\n dom.normalize(range.commonAncestorContainer);\n caret.style.display = 'inline';\n dom.restoreScrollTop(editor.document);\n dom.scrollTo(caret);\n marker.removeCaret(range);\n var rangeEnd = range.commonAncestorContainer.parentNode;\n if (range.collapsed && dom.name(rangeEnd) == 'tbody' || range.collapsed && dom.name(rangeEnd) == 'thead') {\n range.setStartAfter($(rangeEnd).closest('table')[0]);\n range.collapse(true);\n }\n var focusedTable = $(range.commonAncestorContainer.parentNode).closest('table');\n if (focusedTable.get(0)) {\n var siblingNodes = focusedTable.parent().contents();\n var lastSiblingIndex = siblingNodes.length - 1;\n var lastSibling = siblingNodes.get(lastSiblingIndex);\n while (lastSibling.nodeValue !== null && (lastSibling.nodeValue === ' ' || lastSibling.nodeValue === '')) {\n lastSiblingIndex -= 1;\n lastSibling = siblingNodes.get(lastSiblingIndex);\n }\n if (lastSibling === focusedTable.get(0) && !focusedTable.parents('table').length) {\n dom.insertAfter(dom.createEmptyNode(editor.document, 'p'), focusedTable[0]);\n }\n }\n editor.selectRange(range);\n }\n });\n var Cleaner = Class.extend({\n init: function (options) {\n this.options = options || {};\n this.replacements = [];\n },\n clean: function (html, customReplacements) {\n var that = this, replacements = customReplacements || that.replacements, i, l;\n for (i = 0, l = replacements.length; i < l; i += 2) {\n html = html.replace(replacements[i], replacements[i + 1]);\n }\n return html;\n }\n });\n var ScriptCleaner = Cleaner.extend({\n init: function (options) {\n Cleaner.fn.init.call(this, options);\n this.replacements = [\n /<(\\/?)script([^>]*)>/i,\n '<$1telerik:script$2>'\n ];\n },\n applicable: function (html) {\n return !this.options.none && /]*>/i.test(html);\n }\n });\n var TabCleaner = Cleaner.extend({\n init: function (options) {\n Cleaner.fn.init.call(this, options);\n var replacement = ' ';\n this.replacements = [\n /]*>\\s*<\\/span>/gi,\n replacement,\n /\\t/gi,\n replacement,\n /    /gi,\n replacement\n ];\n },\n applicable: function (html) {\n return /    |class=\"?Apple-tab-span/i.test(html);\n }\n });\n var MSWordFormatCleaner = Cleaner.extend({\n init: function (options) {\n Cleaner.fn.init.call(this, options);\n this.junkReplacements = [\n /<\\?xml[^>]*>/gi,\n '',\n //g,\n '',\n /"/g,\n '\\'',\n / <\\/o:p>/gi,\n ' ',\n /<\\/?(meta|link|style|o:|v:|x:)[^>]*>((?:.|\\n)*?<\\/(meta|link|style|o:|v:|x:)[^>]*>)?/gi,\n '',\n /<\\/o>/g,\n ''\n ];\n this.replacements = this.junkReplacements.concat([\n /(?:
         [\\s\\r\\n]+|
        )*(<\\/?(h[1-6]|hr|p|div|table|tbody|thead|tfoot|th|tr|td|li|ol|ul|caption|address|pre|form|blockquote|dl|dt|dd|dir|fieldset)[^>]*>)(?:
         [\\s\\r\\n]+|
        )*/g,\n '$1',\n /

        /g,\n '

        ',\n /
        (?!\\n)/g,\n ' ',\n /]*)>(\\s| )+]*>(\\s| )*<\\/tr>/gi,\n '',\n /]*>(\\s| )*<\\/tbody>/gi,\n '',\n /]*>(\\s| )*<\\/table>/gi,\n '',\n /

        /g,\n '
        ',\n /^\\s*( )+/gi,\n '',\n /( |]*>)+\\s*$/gi,\n '',\n /mso-[^;\"]*;?/gi,\n '',\n /<(\\/?)b(\\s[^>]*)?>/gi,\n '<$1strong$2>',\n /<(\\/?)font(\\s[^>]*)?>/gi,\n this.convertFontMatch,\n /<(\\/?)i(\\s[^>]*)?>/gi,\n '<$1em$2>',\n /style=([\"|'])\\s*\\1/g,\n '',\n /(]*>)?\\n/g,\n function ($0, $1) {\n return $1 ? $0 : ' ';\n }\n ]);\n },\n convertFontMatch: function (match, closing, args) {\n var faceRe = /face=['\"]([^'\"]+)['\"]/i;\n var face = faceRe.exec(args);\n var family = args && face && face[1];\n if (closing) {\n return '';\n } else if (family) {\n return '';\n } else {\n return '';\n }\n },\n applicable: function (html) {\n return /class=\"?Mso/i.test(html) || /style=\"[^\"]*mso-/i.test(html) || /urn:schemas-microsoft-com:office/.test(html);\n },\n stripEmptyAnchors: function (html) {\n return html.replace(/]*)>\\s*<\\/a>/gi, function (a, attributes) {\n if (!attributes || attributes.indexOf('href') < 0) {\n return '';\n }\n return a;\n });\n },\n listType: function (p, listData) {\n var html = p.innerHTML;\n var text = dom.innerText(p);\n var startingSymbol;\n var matchSymbol = html.match(/^(?:]*texhtml[^>]*>)?]*(?:Symbol|Wingdings)[^>]*>([^<]+)/i);\n var symbol = matchSymbol && matchSymbol[1];\n var isNumber = /^[a-z\\d]/i.test(symbol);\n var trimStartText = function (text) {\n return text.replace(/^(?: |[\\u00a0\\n\\r\\s])+/, '');\n };\n if (matchSymbol) {\n startingSymbol = true;\n }\n html = html.replace(/<\\/?\\w+[^>]*>/g, '').replace(/ /g, '\\xA0');\n if (!startingSymbol && /^[\\u2022\\u00b7\\u00a7\\u00d8o]\\u00a0+/.test(html) || startingSymbol && /^.\\u00a0+/.test(html) || symbol && !isNumber && listData) {\n return {\n tag: 'ul',\n style: this._guessUnorderedListStyle(trimStartText(text))\n };\n }\n if (/^\\s*\\w+[\\.\\)][\\u00a0 ]{2,}/.test(html)) {\n return {\n tag: 'ol',\n style: this._guessOrderedListStyle(trimStartText(text))\n };\n }\n },\n _convertToLi: function (p) {\n var content, name = dom.name(p);\n if (p.childNodes.length == 1) {\n content = p.firstChild.nodeType === dom.nodeTypes.TEXT_NODE ? dom.innerText(p) : p.firstChild.innerHTML.replace(/^\\w+[\\.\\)]( )+ /, '');\n } else {\n dom.remove(p.firstChild);\n if (p.firstChild.nodeType == 3) {\n if (/^[ivxlcdm]+\\.$/i.test(p.firstChild.nodeValue)) {\n dom.remove(p.firstChild);\n }\n }\n if (/^( |\\s)+$/i.test(p.firstChild.innerHTML)) {\n dom.remove(p.firstChild);\n }\n if (name != 'p') {\n content = '<' + name + '>' + p.innerHTML + '';\n } else {\n content = p.innerHTML;\n }\n }\n dom.remove(p);\n return dom.create(document, 'li', { innerHTML: content });\n },\n _guessUnorderedListStyle: function (symbol) {\n if (/^[\\u2022\\u00b7\\u00FC\\u00D8\\u002dv-]/.test(symbol)) {\n return null;\n } else if (/^o/.test(symbol)) {\n return 'circle';\n } else {\n return 'square';\n }\n },\n _guessOrderedListStyle: function (symbol) {\n var listType = null;\n if (!/^\\d/.test(symbol)) {\n listType = (/^[a-z]/.test(symbol) ? 'lower-' : 'upper-') + (/^[ivxlcdm]/i.test(symbol) ? 'roman' : 'alpha');\n }\n return listType;\n },\n extractListLevels: function (html) {\n var msoListRegExp = /style=['\"]?[^'\"]*?mso-list:\\s?[a-zA-Z]+(\\d+)\\s[a-zA-Z]+(\\d+)\\s(\\w+)/gi;\n html = html.replace(msoListRegExp, function (match, list, level) {\n return kendo.format('data-list=\"{0}\" data-level=\"{1}\" {2}', list, level, match);\n });\n return html;\n },\n _createList: function (type, styleType) {\n return dom.create(document, type, { style: { listStyleType: styleType } });\n },\n lists: function (placeholder) {\n var blockChildren = $(placeholder).find(dom.blockElements.join(',')), lastMargin = -1, name, levels = {}, li, rootMargin, rootIndex, lastRootLi, isLastRootLi, rootList, i, p, type, margin, list, listData, acceptedNameTags = [\n 'p',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6'\n ], isParentTable = false;\n for (i = 0; i < blockChildren.length; i++) {\n p = blockChildren[i];\n listData = $(p).data();\n var listIndex = listData.list;\n name = dom.name(p);\n isParentTable = !!$(p).parents('table').length;\n if (isParentTable) {\n continue;\n }\n var listType = this.listType(p, listData);\n type = listType && listType.tag;\n if (!type || acceptedNameTags.indexOf(name) < 0) {\n if (!p.innerHTML) {\n dom.remove(p);\n } else if (li && !isLastRootLi) {\n li.appendChild(p);\n }\n continue;\n }\n if (browser.msie) {\n continue;\n }\n margin = listData.level || parseFloat(p.style.marginLeft || 0);\n var levelType = type + listIndex;\n if (!levels[margin]) {\n levels[margin] = {};\n }\n if (!rootMargin || rootMargin < 0) {\n rootMargin = margin;\n rootIndex = listIndex;\n lastRootLi = $(placeholder).find('[data-list=\\'' + rootIndex + '\\']:last')[0];\n rootList = this._createList(type, listType.style);\n dom.insertBefore(rootList, p);\n lastMargin = margin;\n levels[margin][levelType] = rootList;\n }\n isLastRootLi = lastRootLi === p;\n list = levels[margin][levelType];\n if (margin > lastMargin || !list) {\n list = this._createList(type, listType.style);\n levels[margin][levelType] = list;\n li.appendChild(list);\n }\n li = this._convertToLi(p);\n list.appendChild(li);\n if (isLastRootLi) {\n rootMargin = lastMargin = -1;\n } else {\n lastMargin = margin;\n }\n }\n },\n removeAttributes: function (element) {\n var attributes = element.attributes, i = attributes.length;\n while (i--) {\n if (dom.name(attributes[i]) != 'colspan') {\n element.removeAttributeNode(attributes[i]);\n }\n }\n },\n createColGroup: function (row) {\n var cells = row.cells;\n var table = $(row).closest('table');\n var colgroup = table.children('colgroup');\n if (cells.length < 2) {\n return;\n } else if (colgroup.length) {\n cells = colgroup.children();\n colgroup[0].parentNode.removeChild(colgroup[0]);\n }\n colgroup = $($.map(cells, function (cell) {\n var width = cell.width;\n if (width && parseInt(width, 10) !== 0) {\n return kendo.format('', width);\n }\n return '';\n }).join(''));\n if (!colgroup.is('colgroup')) {\n colgroup = $('').append(colgroup);\n }\n colgroup.prependTo(table);\n },\n convertHeaders: function (row) {\n var cells = row.cells, i, boldedCells = $.map(cells, function (cell) {\n var child = $(cell).children('p').children('strong')[0];\n if (child && dom.name(child) == 'strong') {\n return child;\n }\n });\n if (boldedCells.length == cells.length) {\n for (i = 0; i < boldedCells.length; i++) {\n dom.unwrap(boldedCells[i]);\n }\n $(row).closest('table').find('colgroup').after('').end().find('thead').append(row);\n for (i = 0; i < cells.length; i++) {\n dom.changeTag(cells[i], 'th');\n }\n }\n },\n removeParagraphs: function (cells) {\n var i, j, len, cell, paragraphs;\n for (i = 0; i < cells.length; i++) {\n this.removeAttributes(cells[i]);\n cell = $(cells[i]);\n paragraphs = cell.children('p');\n for (j = 0, len = paragraphs.length; j < len; j++) {\n if (j < len - 1) {\n dom.insertAfter(dom.create(document, 'br'), paragraphs[j]);\n }\n dom.unwrap(paragraphs[j]);\n }\n }\n },\n removeDefaultColors: function (spans) {\n for (var i = 0; i < spans.length; i++) {\n if (/^\\s*color:\\s*[^;]*;?$/i.test(spans[i].style.cssText)) {\n dom.unwrap(spans[i]);\n }\n }\n },\n tables: function (placeholder) {\n var tables = $(placeholder).find('table'), that = this, rows, firstRow, longestRow, i, j;\n for (i = 0; i < tables.length; i++) {\n rows = tables[i].rows;\n longestRow = firstRow = rows[0];\n for (j = 1; j < rows.length; j++) {\n if (rows[j].cells.length > longestRow.cells.length) {\n longestRow = rows[j];\n }\n }\n that.createColGroup(longestRow);\n that.convertHeaders(firstRow);\n that.removeAttributes(tables[i]);\n that.removeParagraphs(tables.eq(i).find('td,th'));\n that.removeDefaultColors(tables.eq(i).find('span'));\n }\n },\n headers: function (placeholder) {\n var titles = $(placeholder).find('p.MsoTitle');\n for (var i = 0; i < titles.length; i++) {\n dom.changeTag(titles[i], 'h1');\n }\n },\n removeFormatting: function (placeholder) {\n $(placeholder).find('*').each(function () {\n $(this).css({\n fontSize: '',\n fontFamily: ''\n });\n if (!this.getAttribute('style') && !this.style.cssText) {\n this.removeAttribute('style');\n }\n });\n },\n clean: function (html) {\n var that = this, placeholder;\n var filters = this.options;\n if (filters.none) {\n html = Cleaner.fn.clean.call(that, html, this.junkReplacements);\n html = that.stripEmptyAnchors(html);\n } else {\n html = filters.msConvertLists ? this.extractListLevels(html) : html;\n html = Cleaner.fn.clean.call(that, html);\n html = that.stripEmptyAnchors(html);\n placeholder = dom.create(document, 'div', { innerHTML: html });\n that.headers(placeholder);\n if (filters.msConvertLists) {\n that.lists(placeholder);\n }\n that.tables(placeholder);\n if (filters.msAllFormatting) {\n that.removeFormatting(placeholder);\n }\n html = placeholder.innerHTML.replace(/(<[^>]*)\\s+class=\"?[^\"\\s>]*\"?/gi, '$1');\n }\n return html;\n }\n });\n var WebkitFormatCleaner = Cleaner.extend({\n init: function (options) {\n Cleaner.fn.init.call(this, options);\n this.replacements = [\n /\\s+class=\"Apple-style-span[^\"]*\"/gi,\n '',\n /<(div|p|h[1-6])\\s+style=\"[^\"]*\"/gi,\n '<$1',\n /^
        (.*)<\\/div>$/,\n '$1'\n ];\n },\n applicable: function (html) {\n return /class=\"?Apple-style-span|style=\"[^\"]*-webkit-nbsp-mode/i.test(html);\n }\n });\n var DomCleaner = Cleaner.extend({\n clean: function (html) {\n var container = dom.create(document, 'div', { innerHTML: html });\n container = this.cleanDom(container);\n return container.innerHTML;\n },\n cleanDom: function (container) {\n return container;\n }\n });\n var HtmlTagsCleaner = DomCleaner.extend({\n cleanDom: function (container) {\n var tags = this.collectTags();\n $(container).find(tags).each(function () {\n dom.unwrap(this);\n });\n return container;\n },\n collectTags: function () {\n if (this.options.span) {\n return 'span';\n }\n },\n applicable: function () {\n return this.options.span;\n }\n });\n var HtmlAttrCleaner = DomCleaner.extend({\n cleanDom: function (container) {\n var attributes = this.collectAttr();\n var nodes = $(container).find('[' + attributes.join('],[') + ']');\n nodes.removeAttr(attributes.join(' '));\n return container;\n },\n collectAttr: function () {\n if (this.options.css) {\n return [\n 'class',\n 'style'\n ];\n }\n return [];\n },\n applicable: function () {\n return this.options.css;\n }\n });\n var TextContainer = function () {\n this.text = '';\n this.add = function (text) {\n this.text += text;\n };\n };\n var HtmlTextLines = Class.extend({\n init: function (separators) {\n this.separators = separators || {\n text: ' ',\n line: '
        '\n };\n this.lines = [];\n this.inlineBlockText = [];\n this.resetLine();\n },\n appendText: function (text) {\n if (text.nodeType === 3) {\n text = text.nodeValue;\n }\n this.textContainer.add(text);\n },\n appendInlineBlockText: function (text) {\n this.inlineBlockText.push(text);\n },\n flashInlineBlockText: function () {\n if (this.inlineBlockText.length) {\n this.appendText(this.inlineBlockText.join(' '));\n this.inlineBlockText = [];\n }\n },\n endLine: function () {\n this.flashInlineBlockText();\n this.resetLine();\n },\n html: function () {\n var separators = this.separators;\n var result = '';\n var lines = this.lines;\n this.flashInlineBlockText();\n for (var i = 0, il = lines.length, il1 = il - 1; i < il; i++) {\n var line = lines[i];\n for (var j = 0, jl = line.length, jl1 = jl - 1; j < jl; j++) {\n var text = line[j].text;\n result += text;\n if (j !== jl1) {\n result += separators.text;\n }\n }\n if (i !== il1) {\n result += separators.line;\n }\n }\n return result;\n },\n resetLine: function () {\n this.textContainer = new TextContainer();\n this.line = [];\n this.line.push(this.textContainer);\n this.lines.push(this.line);\n }\n });\n var DomEnumerator = Class.extend({\n init: function (callback) {\n this.callback = callback;\n },\n enumerate: function (node) {\n if (!node) {\n return;\n }\n var preventDown = this.callback(node);\n var child = node.firstChild;\n if (!preventDown && child) {\n this.enumerate(child);\n }\n this.enumerate(node.nextSibling);\n }\n });\n var HtmlContentCleaner = Cleaner.extend({\n init: function (options) {\n Cleaner.fn.init.call(this, options);\n this.hasText = false;\n this.enumerator = new DomEnumerator($.proxy(this.buildText, this));\n },\n clean: function (html) {\n var container = dom.create(document, 'div', { innerHTML: html });\n return this.cleanDom(container);\n },\n cleanDom: function (container) {\n this.separators = this.getDefaultSeparators();\n this.htmlLines = new HtmlTextLines(this.separators);\n this.enumerator.enumerate(container.firstChild);\n this.hasText = false;\n return this.htmlLines.html();\n },\n buildText: function (node) {\n if (dom.isDataNode(node)) {\n if (dom.isEmptyspace(node)) {\n return;\n }\n this.htmlLines.appendText(node.nodeValue.replace('\\n', this.separators.line));\n this.hasText = true;\n } else if (dom.isBlock(node) && this.hasText) {\n var action = this.actions[dom.name(node)] || this.actions.block;\n return action(this, node);\n } else if (dom.isBr(node)) {\n this.htmlLines.appendText(this.separators.line);\n }\n },\n applicable: function () {\n var o = this.options;\n return o.all || o.keepNewLines;\n },\n getDefaultSeparators: function () {\n if (this.options.all) {\n return {\n text: ' ',\n line: ' '\n };\n } else {\n return {\n text: ' ',\n line: '
        '\n };\n }\n },\n actions: {\n ul: $.noop,\n ol: $.noop,\n table: $.noop,\n thead: $.noop,\n tbody: $.noop,\n td: function (cleaner, node) {\n var tdCleaner = new HtmlContentCleaner({ all: true });\n var cellText = tdCleaner.cleanDom(node);\n cleaner.htmlLines.appendInlineBlockText(cellText);\n return true;\n },\n block: function (cleaner) {\n cleaner.htmlLines.endLine();\n }\n }\n });\n var CustomCleaner = Cleaner.extend({\n clean: function (html) {\n return this.options.custom(html);\n },\n applicable: function () {\n return typeof this.options.custom === 'function';\n }\n });\n extend(editorNS, {\n Clipboard: Clipboard,\n Cleaner: Cleaner,\n ScriptCleaner: ScriptCleaner,\n TabCleaner: TabCleaner,\n MSWordFormatCleaner: MSWordFormatCleaner,\n WebkitFormatCleaner: WebkitFormatCleaner,\n HtmlTagsCleaner: HtmlTagsCleaner,\n HtmlAttrCleaner: HtmlAttrCleaner,\n HtmlContentCleaner: HtmlContentCleaner,\n HtmlTextLines: HtmlTextLines,\n CustomCleaner: CustomCleaner\n });\n }(window.kendo.jQuery));\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('editor/plugins/keyboard', ['editor/command'], f);\n}(function () {\n (function ($) {\n var kendo = window.kendo, Class = kendo.Class, editorNS = kendo.ui.editor, RangeUtils = editorNS.RangeUtils, dom = editorNS.Dom, RestorePoint = editorNS.RestorePoint, Marker = editorNS.Marker, browser = kendo.support.browser, bomSpan = '\\uFEFF', extend = $.extend;\n var nodeTypes = dom.nodeTypes;\n var PREVIOUS_SIBLING = 'previousSibling';\n function selected(node, range) {\n return range.startContainer === node && range.endContainer === node && range.startOffset === 0 && range.endOffset == node.childNodes.length;\n }\n function getSibling(node, direction, condition) {\n var sibling = node ? node[direction] : null;\n while (sibling && !condition(sibling)) {\n sibling = sibling[direction];\n }\n return sibling;\n }\n var tableCells = 'td,th,caption';\n var tableCellsWrappers = 'table,tbody,thead,tfoot,tr';\n var tableElements = tableCellsWrappers + ',' + tableCells;\n var inTable = function (range) {\n return !range.collapsed && $(range.commonAncestorContainer).is(tableCellsWrappers);\n };\n var RemoveTableContent = Class.extend({\n remove: function (range) {\n var that = this;\n var marker = new Marker();\n marker.add(range, false);\n var nodes = RangeUtils.getAll(range, function (node) {\n return $(node).is(tableElements);\n });\n var doc = RangeUtils.documentFromRange(range);\n var start = marker.start;\n var end = marker.end;\n var cellsTypes = tableCells.split(',');\n var startCell = dom.parentOfType(start, cellsTypes);\n var endCell = dom.parentOfType(end, cellsTypes);\n that._removeContent(start, startCell, true);\n that._removeContent(end, endCell, false);\n $(nodes).each(function (i, node) {\n node = $(node);\n (node.is(tableCells) ? node : node.find(tableCells)).each(function (j, cell) {\n cell.innerHTML = '';\n });\n });\n if (startCell && !start.previousSibling) {\n dom.insertBefore(doc.createTextNode('\\uFEFF'), start);\n }\n if (endCell && !end.nextSibling) {\n dom.insertAfter(doc.createTextNode('\\uFEFF'), end);\n }\n if (startCell) {\n range.setStartBefore(start);\n } else if (nodes[0]) {\n startCell = $(nodes[0]);\n startCell = startCell.is(tableCells) ? startCell : startCell.find(tableCells).first();\n if (startCell.length) {\n range.setStart(startCell.get(0), 0);\n }\n }\n range.collapse(true);\n dom.remove(start);\n dom.remove(end);\n },\n _removeContent: function (start, top, forwards) {\n if (top) {\n var sibling = forwards ? 'nextSibling' : 'previousSibling', next, getNext = function (node) {\n while (node && !node[sibling]) {\n node = node.parentNode;\n }\n return node && $.contains(top, node) ? node[sibling] : null;\n };\n start = getNext(start);\n while (start) {\n next = getNext(start);\n dom.remove(start);\n start = next;\n }\n }\n }\n });\n var TypingHandler = Class.extend({\n init: function (editor) {\n this.editor = editor;\n },\n keydown: function (e) {\n var that = this, editor = that.editor, keyboard = editor.keyboard, isTypingKey = keyboard.isTypingKey(e), evt = extend($.Event(), e);\n that.editor.trigger('keydown', evt);\n if (evt.isDefaultPrevented()) {\n e.preventDefault();\n return true;\n }\n if (!evt.isDefaultPrevented() && isTypingKey && !keyboard.isTypingInProgress()) {\n var range = editor.getRange();\n var body = editor.body;\n that.startRestorePoint = new RestorePoint(range, body);\n if (inTable(range)) {\n var removeTableContent = new RemoveTableContent(editor);\n removeTableContent.remove(range);\n editor.selectRange(range);\n }\n if (browser.webkit && !range.collapsed && selected(body, range)) {\n body.innerHTML = '';\n }\n if (editor.immutables && editorNS.Immutables.immutablesContext(range)) {\n var backspaceHandler = new editorNS.BackspaceHandler(editor);\n backspaceHandler.deleteSelection(range);\n }\n keyboard.startTyping(function () {\n that.endRestorePoint = editorNS._finishUpdate(editor, that.startRestorePoint);\n });\n return true;\n }\n return false;\n },\n keyup: function (e) {\n var keyboard = this.editor.keyboard;\n this.editor.trigger('keyup', e);\n if (keyboard.isTypingInProgress()) {\n keyboard.endTyping();\n return true;\n }\n return false;\n }\n });\n var BackspaceHandler = Class.extend({\n init: function (editor) {\n this.editor = editor;\n },\n _addCaret: function (container) {\n var caret = dom.create(this.editor.document, 'a');\n if (!kendo.support.browser.chrome && container.firstChild && container.firstChild.nodeType === nodeTypes.ELEMENT_NODE) {\n container = container.firstChild;\n }\n dom.insertAt(container, caret, 0);\n dom.stripBomNode(caret.previousSibling);\n dom.stripBomNode(caret.nextSibling);\n return caret;\n },\n _restoreCaret: function (caret) {\n var range = this.editor.createRange();\n if (!caret.nextSibling && dom.isDataNode(caret.previousSibling)) {\n range.setStart(caret.previousSibling, caret.previousSibling.length);\n } else {\n range.setStartAfter(caret);\n }\n range.collapse(true);\n this.editor.selectRange(range);\n dom.remove(caret);\n },\n _handleDelete: function (range) {\n var node = range.endContainer;\n var block = dom.closestEditableOfType(node, dom.blockElements);\n if (block && editorNS.RangeUtils.isEndOf(range, block)) {\n var next = dom.next(block);\n if (!next || dom.name(next) != 'p') {\n return false;\n }\n var caret = this._addCaret(next);\n this._merge(block, next);\n this._restoreCaret(caret);\n return true;\n }\n return false;\n },\n _cleanBomBefore: function (range) {\n var offset = range.startOffset;\n var node = range.startContainer;\n var text = node.nodeValue;\n var count = 0;\n while (offset - count >= 0 && text[offset - count - 1] == '\\uFEFF') {\n count++;\n }\n if (count > 0) {\n node.deleteData(offset - count, count);\n range.setStart(node, Math.max(0, offset - count));\n range.collapse(true);\n this.editor.selectRange(range);\n }\n },\n _handleBackspace: function (range) {\n var node = range.startContainer;\n var li = dom.closestEditableOfType(node, ['li']);\n var block = dom.closestEditableOfType(node, 'p,h1,h2,h3,h4,h5,h6'.split(','));\n var editor = this.editor;\n var previousSibling;\n if (dom.isDataNode(node)) {\n if (range.collapsed && /^\\s[\\ufeff]+$/.test(node.nodeValue)) {\n range.setStart(node, 0);\n range.setEnd(node, node.length);\n editor.selectRange(range);\n return false;\n }\n this._cleanBomBefore(range);\n }\n previousSibling = getSibling(block, PREVIOUS_SIBLING, function (sibling) {\n return !dom.htmlIndentSpace(sibling);\n });\n if (range.collapsed && range.startOffset !== range.endOffset && range.startOffset < 0) {\n range.startOffset = 0;\n range.endOffset = 0;\n editor.selectRange(range);\n }\n var startAtLi = li && editorNS.RangeUtils.isStartOf(range, li);\n var liIndex = li && $(li).index();\n var startAtNonFirstLi = startAtLi && liIndex > 0;\n if (startAtNonFirstLi) {\n block = li;\n previousSibling = dom.prev(li);\n }\n if (block && previousSibling && dom.is(previousSibling, 'table') && editorNS.RangeUtils.isStartOf(range, block)) {\n if (block.innerText === '') {\n block.innerHTML = '\\uFEFF';\n }\n return true;\n }\n if (editorNS.RangeUtils.isStartOf(range, block) && (parseInt(block.style.marginLeft, 10) > 0 || parseInt(block.style.marginRight, 10) > 0)) {\n editor.exec('outdent');\n return true;\n }\n if (block && previousSibling && editorNS.RangeUtils.isStartOf(range, block) || startAtNonFirstLi) {\n var caret = this._addCaret(block);\n this._merge(previousSibling, block);\n this._restoreCaret(caret);\n return true;\n }\n if (startAtLi && liIndex === 0) {\n var child = li.firstChild;\n if (!child) {\n li.innerHTML = editorNS.emptyElementContent;\n child = li.firstChild;\n }\n var formatter = new editorNS.ListFormatter(dom.name(li.parentNode), 'p');\n range.selectNodeContents(li);\n formatter.toggle(range);\n if (dom.insignificant(child)) {\n range.setStartBefore(child);\n } else {\n range.setStart(child, 0);\n }\n editor.selectRange(range);\n return true;\n }\n var rangeStartNode = node.childNodes[range.startOffset - 1];\n var linkRange = range;\n var anchor = rangeStartNode && dom.closestEditableOfType(rangeStartNode, ['a']);\n var previousNode = getSibling(rangeStartNode || node, PREVIOUS_SIBLING, function (sibling) {\n return !dom.isDataNode(sibling) || !dom.isBom(sibling) && sibling.length > 0;\n });\n if (anchor || (range.startOffset === 0 || rangeStartNode) && dom.is(previousNode, 'a')) {\n anchor = anchor || previousNode;\n linkRange = editor.createRange();\n linkRange.setStart(anchor, anchor.childNodes.length);\n linkRange.collapse(true);\n }\n anchor = anchor || dom.closestEditableOfType(rangeStartNode || linkRange.startContainer, ['a']);\n var isEndOfLink = anchor && editorNS.RangeUtils.isEndOf(linkRange, anchor);\n if (isEndOfLink) {\n var command = new editorNS.UnlinkCommand({\n range: linkRange,\n body: editor.body,\n immutables: !!editor.immutables\n });\n editor.execCommand(command);\n editor._selectionChange();\n }\n return false;\n },\n _handleSelection: function (range) {\n var ancestor = range.commonAncestorContainer;\n var table = dom.closest(ancestor, 'table');\n var emptyParagraphContent = editorNS.emptyElementContent;\n var editor = this.editor;\n var parentElementOrNode;\n if (inTable(range)) {\n var removeTableContent = new RemoveTableContent(editor);\n removeTableContent.remove(range);\n editor.selectRange(range);\n return true;\n }\n var marker = new Marker();\n marker.add(range, false);\n if (range.commonAncestorContainer === editor.body) {\n this._surroundFullyContent(marker, range);\n }\n if (editor.immutables) {\n this._handleImmutables(marker);\n }\n this._surroundFullySelectedAnchor(marker, range);\n range.setStartAfter(marker.start);\n range.setEndBefore(marker.end);\n var start = range.startContainer;\n var end = range.endContainer;\n range.deleteContents();\n if (end.tagName.toLocaleLowerCase() === 'li' && dom.emptyNode(end)) {\n range.selectNode(end);\n range.deleteContents();\n }\n if (table && $(table).text() === '') {\n range.selectNode(table);\n range.deleteContents();\n }\n ancestor = range.commonAncestorContainer;\n if (dom.name(ancestor) === 'p' && ancestor.innerHTML === '') {\n ancestor.innerHTML = emptyParagraphContent;\n range.setStart(ancestor, 0);\n }\n this._join(start, end);\n dom.insertAfter(editor.document.createTextNode('\\uFEFF'), marker.start);\n marker.remove(range);\n start = range.startContainer;\n if (dom.name(start) == 'tr') {\n start = start.childNodes[Math.max(0, range.startOffset - 1)];\n range.setStart(start, dom.getNodeLength(start));\n }\n range.collapse(true);\n editor.selectRange(range);\n parentElementOrNode = start.parentElement || start.parentNode;\n if (dom.isDataNode(start) && !dom.emptyNode(parentElementOrNode)) {\n this._cleanBomBefore(range);\n }\n return true;\n },\n _handleImmutables: function (marker) {\n var immutableParent = editorNS.Immutables.immutableParent;\n var startImmutable = immutableParent(marker.start);\n var endImmutable = immutableParent(marker.start);\n if (startImmutable) {\n dom.insertBefore(marker.start, startImmutable);\n }\n if (endImmutable) {\n dom.insertAfter(marker.end, endImmutable);\n }\n if (startImmutable) {\n dom.remove(startImmutable);\n }\n if (endImmutable && endImmutable.parentNode) {\n dom.remove(endImmutable);\n }\n },\n _surroundFullyContent: function (marker, range) {\n var children = range.commonAncestorContainer.children, startParent = children[0], endParent = children[children.length - 1];\n this._moveMarker(marker, range, startParent, endParent);\n },\n _surroundFullySelectedAnchor: function (marker, range) {\n var start = marker.start, startParent = $(start).closest('a').get(0), end = marker.end, endParent = $(end).closest('a').get(0);\n this._moveMarker(marker, range, startParent, endParent);\n },\n _moveMarker: function (marker, range, startParent, endParent) {\n var start = marker.start, end = marker.end;\n if (startParent && RangeUtils.isStartOf(range, startParent)) {\n dom.insertBefore(start, startParent);\n }\n if (endParent && RangeUtils.isEndOf(range, endParent)) {\n dom.insertAfter(end, endParent);\n }\n },\n _root: function (node) {\n while (node && dom.name(node) != 'body' && node.parentNode && dom.name(node.parentNode) != 'body') {\n node = node.parentNode;\n }\n return node;\n },\n _join: function (start, end) {\n start = this._root(start);\n end = this._root(end);\n if (start != end && dom.is(end, 'p')) {\n this._merge(start, end);\n }\n },\n _merge: function (dest, src) {\n dom.removeTrailingBreak(dest);\n while (dest && src.firstChild) {\n if (dest.nodeType == 1) {\n dest = dom.list(dest) ? dest.children[dest.children.length - 1] : dest;\n if (dest) {\n dest.appendChild(src.firstChild);\n }\n } else if (dest.nodeType === nodeTypes.TEXT_NODE) {\n this._mergeWithTextNode(dest, src.firstChild);\n } else {\n dest.parentNode.appendChild(src.firstChild);\n }\n }\n dom.remove(src);\n },\n _mergeWithTextNode: function (textNode, appendedNode) {\n if (textNode && textNode.nodeType === nodeTypes.TEXT_NODE) {\n if (textNode.nextSibling && this._isCaret(textNode.nextSibling)) {\n dom.insertAfter(appendedNode, textNode.nextSibling);\n } else {\n dom.insertAfter(appendedNode, textNode);\n }\n }\n },\n _isCaret: function (element) {\n return $(element).is('a');\n },\n keydown: function (e) {\n var method, startRestorePoint;\n var editor = this.editor;\n var range = editor.getRange();\n var keyCode = e.keyCode;\n var keys = kendo.keys;\n var backspace = keyCode === keys.BACKSPACE;\n var del = keyCode == keys.DELETE;\n if (editor.immutables && editor.immutables.keydown(e, range)) {\n return;\n }\n if ((backspace || del) && !range.collapsed) {\n method = '_handleSelection';\n } else if (backspace) {\n method = '_handleBackspace';\n } else if (del) {\n method = '_handleDelete';\n }\n if (!method) {\n return;\n }\n startRestorePoint = new RestorePoint(range, editor.body);\n if (this[method](range)) {\n e.preventDefault();\n editorNS._finishUpdate(editor, startRestorePoint);\n }\n },\n deleteSelection: function (range) {\n this._handleSelection(range);\n },\n keyup: $.noop\n });\n var SystemHandler = Class.extend({\n init: function (editor) {\n this.editor = editor;\n this.systemCommandIsInProgress = false;\n },\n createUndoCommand: function () {\n this.startRestorePoint = this.endRestorePoint = editorNS._finishUpdate(this.editor, this.startRestorePoint);\n },\n changed: function () {\n if (this.startRestorePoint) {\n return this.startRestorePoint.html != this.editor.body.innerHTML;\n }\n return false;\n },\n keydown: function (e) {\n var that = this, editor = that.editor, keyboard = editor.keyboard;\n if (keyboard.isModifierKey(e)) {\n if (keyboard.isTypingInProgress()) {\n keyboard.endTyping(true);\n }\n that.startRestorePoint = new RestorePoint(editor.getRange(), editor.body);\n return true;\n }\n if (keyboard.isSystem(e)) {\n that.systemCommandIsInProgress = true;\n if (that.changed()) {\n that.systemCommandIsInProgress = false;\n that.createUndoCommand();\n }\n return true;\n }\n return false;\n },\n keyup: function () {\n var that = this;\n if (that.systemCommandIsInProgress && that.changed()) {\n that.systemCommandIsInProgress = false;\n that.createUndoCommand();\n return true;\n }\n return false;\n }\n });\n var SelectAllHandler = Class.extend({\n init: function (editor) {\n this.editor = editor;\n },\n keydown: function (e) {\n if (!browser.webkit || e.isDefaultPrevented() || !(e.ctrlKey && e.keyCode == 65 && !e.altKey && !e.shiftKey)) {\n return;\n }\n if (this.editor.options.immutables) {\n this._toSelectableImmutables();\n }\n this._selectEditorBody();\n },\n _selectEditorBody: function () {\n var editor = this.editor;\n var range = editor.getRange();\n range.selectNodeContents(editor.body);\n editor.selectRange(range);\n },\n _toSelectableImmutables: function () {\n var editor = this.editor, body = editor.body, immutable = editorNS.Immutables.immutable, emptyTextNode = dom.emptyTextNode, first = body.firstChild, last = body.lastChild;\n while (emptyTextNode(first)) {\n first = first.nextSibling;\n }\n while (emptyTextNode(last)) {\n last = last.previousSibling;\n }\n if (first && immutable(first)) {\n $(bomSpan).prependTo(body);\n }\n if (last && immutable(last)) {\n $(bomSpan).appendTo(body);\n }\n },\n keyup: $.noop\n });\n var Keyboard = Class.extend({\n init: function (handlers) {\n this.handlers = handlers;\n this.typingInProgress = false;\n },\n isCharacter: function (keyCode) {\n return keyCode >= 48 && keyCode <= 90 || keyCode >= 96 && keyCode <= 111 || keyCode >= 186 && keyCode <= 192 || keyCode >= 219 && keyCode <= 222 || keyCode == 229;\n },\n toolFromShortcut: function (tools, e) {\n var key = String.fromCharCode(e.keyCode), toolName, toolOptions, modifier = this._getShortcutModifier(e, navigator.platform);\n for (toolName in tools) {\n toolOptions = $.extend({\n ctrl: false,\n alt: false,\n shift: false\n }, tools[toolName].options);\n if ((toolOptions.key == key || toolOptions.key == e.keyCode) && toolOptions.ctrl == modifier && toolOptions.alt == e.altKey && toolOptions.shift == e.shiftKey) {\n return toolName;\n }\n }\n },\n _getShortcutModifier: function (e, platform) {\n var mac = platform.toUpperCase().indexOf('MAC') >= 0;\n return mac ? e.metaKey : e.ctrlKey;\n },\n toolsFromShortcut: function (tools, e) {\n var key = String.fromCharCode(e.keyCode), toolName, o, matchesKey, found = [];\n var matchKey = function (toolKey) {\n return toolKey == key || toolKey == e.keyCode || toolKey == e.charCode;\n };\n for (toolName in tools) {\n o = $.extend({\n ctrl: false,\n alt: false,\n shift: false\n }, tools[toolName].options);\n matchesKey = $.isArray(o.key) ? $.grep(o.key, matchKey).length > 0 : matchKey(o.key);\n if (matchesKey && o.ctrl == e.ctrlKey && o.alt == e.altKey && o.shift == e.shiftKey) {\n found.push(tools[toolName]);\n }\n }\n return found;\n },\n isTypingKey: function (e) {\n var keyCode = e.keyCode;\n return this.isCharacter(keyCode) && !e.ctrlKey && !e.altKey || keyCode == 32 || keyCode == 13 || keyCode == 8 || keyCode == 46 && !e.shiftKey && !e.ctrlKey && !e.altKey;\n },\n isModifierKey: function (e) {\n var keyCode = e.keyCode;\n return keyCode == 17 && !e.shiftKey && !e.altKey || keyCode == 16 && !e.ctrlKey && !e.altKey || keyCode == 18 && !e.ctrlKey && !e.shiftKey;\n },\n isSystem: function (e) {\n return e.keyCode == 46 && e.ctrlKey && !e.altKey && !e.shiftKey;\n },\n startTyping: function (callback) {\n this.onEndTyping = callback;\n this.typingInProgress = true;\n },\n stopTyping: function () {\n if (this.typingInProgress && this.onEndTyping) {\n this.onEndTyping();\n }\n this.typingInProgress = false;\n },\n endTyping: function (force) {\n var that = this;\n that.clearTimeout();\n if (force) {\n that.stopTyping();\n } else {\n that.timeout = window.setTimeout($.proxy(that.stopTyping, that), 1000);\n }\n },\n isTypingInProgress: function () {\n return this.typingInProgress;\n },\n clearTimeout: function () {\n window.clearTimeout(this.timeout);\n },\n notify: function (e, what) {\n var i, handlers = this.handlers;\n for (i = 0; i < handlers.length; i++) {\n if (handlers[i][what](e)) {\n break;\n }\n }\n },\n keydown: function (e) {\n this.notify(e, 'keydown');\n },\n keyup: function (e) {\n this.notify(e, 'keyup');\n }\n });\n extend(editorNS, {\n TypingHandler: TypingHandler,\n SystemHandler: SystemHandler,\n BackspaceHandler: BackspaceHandler,\n SelectAllHandler: SelectAllHandler,\n Keyboard: Keyboard\n });\n }(window.kendo.jQuery));\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('editor/plugins/exportpdf', ['editor/command'], f);\n}(function () {\n (function ($) {\n var kendo = window.kendo, editorNS = kendo.ui.editor, Command = editorNS.Command, EditorUtils = editorNS.EditorUtils, registerTool = EditorUtils.registerTool, Tool = editorNS.Tool, ToolTemplate = editorNS.ToolTemplate, extend = $.extend;\n var ExportPdfCommand = Command.extend({\n init: function (options) {\n this.async = true;\n Command.fn.init.call(this, options);\n },\n exec: function () {\n var that = this;\n var range = that.lockRange(true);\n var editor = that.editor;\n editor._destroyResizings();\n editor.saveAsPDF().then(function () {\n that.releaseRange(range);\n editor._initializeColumnResizing();\n editor._initializeRowResizing();\n editor._initializeTableResizing();\n });\n }\n });\n extend(editorNS, { ExportPdfCommand: ExportPdfCommand });\n registerTool('pdf', new Tool({\n command: ExportPdfCommand,\n template: new ToolTemplate({\n template: EditorUtils.buttonTemplate,\n title: 'Export PDF'\n })\n }));\n }(window.kendo.jQuery));\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('editor/plugins/print', ['editor/command'], f);\n}(function () {\n (function ($) {\n var kendo = window.kendo, editorNS = kendo.ui.editor, Command = editorNS.Command, EditorUtils = editorNS.EditorUtils, registerTool = EditorUtils.registerTool, Tool = editorNS.Tool, ToolTemplate = editorNS.ToolTemplate, extend = $.extend;\n var PrintCommand = Command.extend({\n init: function (options) {\n Command.fn.init.call(this, options);\n this.managesUndoRedo = true;\n },\n exec: function () {\n var editor = this.editor;\n if (kendo.support.browser.msie) {\n editor.document.execCommand('print', false, null);\n } else if (editor.window.print) {\n editor.window.print();\n }\n }\n });\n extend(editorNS, { PrintCommand: PrintCommand });\n registerTool('print', new Tool({\n command: PrintCommand,\n template: new ToolTemplate({\n template: EditorUtils.buttonTemplate,\n title: 'Print'\n })\n }));\n }(window.kendo.jQuery));\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('editor/plugins/formatpainter', ['editor/command'], f);\n}(function () {\n (function ($) {\n var kendo = window.kendo, Editor = kendo.ui.editor, Tool = Editor.Tool, Command = Editor.Command, ToolTemplate = Editor.ToolTemplate, EditorUtils = Editor.EditorUtils, dom = Editor.Dom, RangeUtils = Editor.RangeUtils, registerTool = EditorUtils.registerTool;\n var CopyFormatCommand = Command.extend({\n init: function (options) {\n Command.fn.init.call(this, options);\n },\n exec: function () {\n var range = this.lockRange(true);\n this.inlineStyles = [];\n this.blockStyles = [];\n this.collectStyles(range);\n this.editor.inlineStyles = this.inlineStyles;\n this.editor.blockStyles = this.blockStyles;\n this.releaseRange(range);\n },\n collectStyles: function (range) {\n var rangeNodes = RangeUtils.nodes(range);\n var node;\n if (rangeNodes.length === 1) {\n node = rangeNodes[0].parentNode;\n } else {\n node = range.startContainer;\n }\n while (node && !dom.is(node, 'body') && node.getAttribute('data-role') !== 'editor') {\n if (dom.isBlock(node)) {\n this.populateStyles(node, 'blockStyles');\n if (dom.is(node, 'li')) {\n node = node.parentNode;\n } else {\n node = null;\n }\n } else {\n this.populateStyles(node, 'inlineStyles');\n node = node.parentNode;\n }\n }\n },\n populateStyles: function (node, destination) {\n var styles = node.style;\n var attributes = node.attributes;\n var nodeStyles = {\n tags: [node.tagName],\n attr: { style: {} }\n };\n var styleValue, styleKey, attributeKey, attributeValue, i;\n for (i = 0; styles && i < styles.length; i++) {\n styleKey = styles[i];\n styleValue = styles[styleKey];\n nodeStyles.attr.style[styleKey] = styleValue;\n }\n for (i = 0; attributes && i < attributes.length; i++) {\n attributeKey = attributes[i].nodeName;\n attributeValue = attributes[i].nodeValue;\n if (attributeKey === 'style') {\n continue;\n } else if (attributeKey === 'class') {\n nodeStyles.attr.className = attributeValue;\n } else {\n nodeStyles.attr[attributeKey] = attributeValue;\n }\n }\n this[destination].push(nodeStyles);\n }\n });\n var ApplyFormatCommand = Command.extend({\n init: function (options) {\n Command.fn.init.call(this, options);\n },\n exec: function () {\n var range = this.lockRange(true);\n var markers = RangeUtils.getMarkers(range);\n var editor = this.editor;\n var inlineStyles = editor.inlineStyles;\n var blockStyles = editor.blockStyles;\n var nodes;\n if ((!inlineStyles || inlineStyles.length === 0) && (!blockStyles || blockStyles.length === 0)) {\n return;\n }\n if (markers.length === 3) {\n this.marker.removeCaret(range);\n this.marker.caret = null;\n }\n this.removeEmptyElementsFromRange(range);\n nodes = RangeUtils.nodes(range);\n this.cleanInlineParents(nodes);\n dom.normalize(range.commonAncestorContainer);\n if (markers.length === 2) {\n range.setStartAfter(markers[0]);\n range.setEndBefore(markers[1]);\n } else {\n range.setStartBefore(nodes[0]);\n range.setEndAfter(nodes[0]);\n }\n nodes = RangeUtils.nodes(range);\n if (nodes && blockStyles && blockStyles.length) {\n this.applyBlockStyles(nodes, blockStyles);\n }\n if (nodes && inlineStyles && inlineStyles.length) {\n this.applyInlineStyles(nodes, inlineStyles);\n }\n this.releaseRange(range);\n },\n removeEmptyElementsFromRange: function (range) {\n var isEmptyInline = function (node) {\n return dom.isInline(node) && !node.firstChild && !dom.isMarker(node);\n };\n var emptyElements, i;\n emptyElements = RangeUtils.getAll(range, isEmptyInline);\n if (emptyElements && emptyElements.length > 0) {\n for (i = 0; i < emptyElements.length; i++) {\n emptyElements[i].parentNode.removeChild(emptyElements[i]);\n }\n }\n },\n cleanInlineParents: function (nodes) {\n var i, node, parent, children, j, child, newNode;\n for (i = 0; i < nodes.length; i++) {\n node = nodes[i];\n parent = node.parentNode;\n if (this.immutableParent(node)) {\n continue;\n }\n while (parent && dom.isInline(parent)) {\n children = parent.childNodes;\n for (j = 0; j < children.length; j++) {\n child = children[j];\n if (!dom.isMarker(child) && child !== node) {\n newNode = parent.cloneNode(true);\n newNode.innerHTML = '';\n dom.wrap(child, newNode);\n }\n }\n dom.unwrap(parent);\n parent = node.parentNode;\n }\n }\n },\n applyBlockStyles: function (nodes, blockStyles) {\n var formatTag = blockStyles[0].tags[0];\n var attr = blockStyles[0].attr;\n var document = this.editor.document;\n var i, len, node, wrapper, blockParent, outerWrapper;\n var previousNodes, nextNodes, previous, next, prevWrapper, nextWrapper, child, j, listItems;\n for (i = 0, len = nodes.length; i < len; i++) {\n node = nodes[i];\n if (dom.isWhitespace(node) || this.immutableParent(node)) {\n continue;\n }\n blockParent = dom.blockParentOrBody(node);\n if (blockParent.tagName !== 'BODY' && blockParent.tagName !== formatTag) {\n if (blockParent.tagName !== 'LI' && blockParent.tagName !== 'TD' && blockParent.tagName !== 'TH') {\n previousNodes = [];\n nextNodes = [];\n previous = node.previousSibling;\n next = node.nextSibling;\n while (previous) {\n if (!dom.isMarker(previous)) {\n previousNodes.push(previous);\n }\n previous = previous.previousSibling;\n }\n if (previousNodes.length) {\n prevWrapper = blockParent.cloneNode(true);\n prevWrapper.innerHTML = '';\n dom.insertBefore(prevWrapper, previousNodes[0]);\n for (j = 0; j < previousNodes.length; j++) {\n child = previousNodes[j];\n dom.insertAt(prevWrapper, child, 0);\n }\n }\n while (next) {\n if (!dom.isMarker(next)) {\n nextNodes.push(next);\n }\n next = next.nextSibling;\n }\n if (nextNodes.length) {\n nextWrapper = blockParent.cloneNode(true);\n nextWrapper.innerHTML = '';\n dom.insertBefore(nextWrapper, nextNodes[0]);\n for (j = 0; j < nextNodes.length; j++) {\n child = nextNodes[j];\n nextWrapper.appendChild(child);\n }\n }\n dom.unwrap(blockParent);\n }\n wrapper = dom.create(document, formatTag, attr);\n dom.wrap(node, wrapper);\n } else if (blockParent.tagName === formatTag) {\n dom.attr(blockParent, attr);\n }\n }\n if (blockStyles.length === 2 && blockParent.tagName !== 'LI' && formatTag === 'LI') {\n listItems = [];\n while (dom.is(wrapper, 'li')) {\n listItems.push(wrapper);\n wrapper = dom.prev(wrapper);\n }\n outerWrapper = dom.create(document, blockStyles[1].tags[0], blockStyles[1].attr);\n dom.insertBefore(outerWrapper, listItems[listItems.length - 1]);\n outerWrapper.appendChild(listItems[0]);\n for (i = 1, len = listItems.length; i < len; i++) {\n dom.insertBefore(listItems[i], outerWrapper.firstChild);\n }\n } else if (blockStyles.length === 2 && blockParent.tagName !== 'LI') {\n outerWrapper = dom.create(document, blockStyles[1].tags[0], blockStyles[1].attr);\n dom.wrap(wrapper, outerWrapper);\n }\n },\n applyInlineStyles: function (nodes, inlineStyles) {\n var document = this.editor.document;\n var currentStyle, createdNode, topNode, i, newNode, node;\n for (i = 0; i < inlineStyles.length; i++) {\n currentStyle = inlineStyles[i];\n createdNode = dom.create(document, currentStyle.tags[0], currentStyle.attr);\n if (topNode) {\n createdNode.appendChild(topNode);\n }\n topNode = createdNode;\n }\n if (topNode) {\n for (i = 0; i < nodes.length; i++) {\n node = nodes[i];\n if (dom.isWhitespace(node) || this.immutableParent(node)) {\n continue;\n }\n newNode = topNode.cloneNode(true);\n dom.insertBefore(newNode, node);\n while (newNode.children && newNode.children.length) {\n newNode = newNode.children[0];\n }\n newNode.appendChild(node);\n }\n }\n },\n immutables: function () {\n return this.editor && this.editor.options.immutables;\n },\n immutableParent: function (node) {\n return this.immutables() && Editor.Immutables.immutableParent(node);\n }\n });\n var CopyFormatTool = Tool.extend({\n init: function (options) {\n Tool.fn.init.call(this, options);\n },\n command: function (commandArguments) {\n return new CopyFormatCommand(commandArguments);\n }\n });\n var ApplyFormatTool = Tool.extend({\n init: function (options) {\n Tool.fn.init.call(this, options);\n },\n command: function (commandArguments) {\n return new ApplyFormatCommand(commandArguments);\n }\n });\n $.extend(Editor, {\n CopyFormatCommand: CopyFormatCommand,\n ApplyFormatCommand: ApplyFormatCommand,\n CopyFormatTool: CopyFormatTool,\n ApplyFormatTool: ApplyFormatTool\n });\n registerTool('copyFormat', new CopyFormatTool({\n template: new ToolTemplate({\n template: EditorUtils.buttonTemplate,\n title: 'Copy format'\n })\n }));\n registerTool('applyFormat', new ApplyFormatTool({\n template: new ToolTemplate({\n template: EditorUtils.buttonTemplate,\n title: 'Apply format'\n })\n }));\n }(window.kendo.jQuery));\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('editor/resizing/resizing-utils', ['editor/main'], f);\n}(function () {\n (function (kendo, undefined) {\n var global = window;\n var math = global.Math;\n var min = math.min;\n var max = math.max;\n var parseFloat = global.parseFloat;\n var $ = kendo.jQuery;\n var extend = $.extend;\n var Editor = kendo.ui.editor;\n var PERCENTAGE = '%';\n var PIXEL = 'px';\n var REGEX_NUMBER_IN_PERCENTAGES = /(\\d+)(\\.?)(\\d*)%/;\n var REGEX_NUMBER_IN_PIXELS = /(\\d+)(\\.?)(\\d*)px/;\n var STRING = 'string';\n function constrain(options) {\n var value = options.value;\n var lowerBound = options.min;\n var upperBound = options.max;\n return max(min(parseFloat(value), parseFloat(upperBound)), parseFloat(lowerBound));\n }\n function getScrollBarWidth(element) {\n if (element && !$(element).is('body') && element.scrollHeight > element.clientHeight) {\n return kendo.support.scrollbar();\n }\n return 0;\n }\n function calculatePercentageRatio(value, total) {\n if (inPercentages(value)) {\n return parseFloat(value);\n } else {\n return parseFloat(value) / total * 100;\n }\n }\n function inPercentages(value) {\n return typeof value === STRING && REGEX_NUMBER_IN_PERCENTAGES.test(value);\n }\n function inPixels(value) {\n return typeof value === STRING && REGEX_NUMBER_IN_PIXELS.test(value);\n }\n function toPercentages(value) {\n return parseFloat(value) + PERCENTAGE;\n }\n function toPixels(value) {\n return parseFloat(value) + PIXEL;\n }\n var ResizingUtils = {\n constrain: constrain,\n getScrollBarWidth: getScrollBarWidth,\n calculatePercentageRatio: calculatePercentageRatio,\n inPercentages: inPercentages,\n inPixels: inPixels,\n toPercentages: toPercentages,\n toPixels: toPixels\n };\n extend(Editor, { ResizingUtils: ResizingUtils });\n }(window.kendo));\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('editor/resizing/table-element-resizing', [\n 'editor/main',\n 'kendo.resizable',\n 'editor/resizing/resizing-utils'\n ], f);\n}(function () {\n (function (kendo, undefined) {\n var $ = kendo.jQuery;\n var extend = $.extend;\n var noop = $.noop;\n var proxy = $.proxy;\n var Editor = kendo.ui.editor;\n var Class = kendo.Class;\n var KEY_DOWN = 'keydown';\n var MOUSE_DOWN = 'mousedown';\n var MOUSE_ENTER = 'mouseenter';\n var MOUSE_LEAVE = 'mouseleave';\n var MOUSE_MOVE = 'mousemove';\n var MOUSE_UP = 'mouseup';\n var COMMA = ',';\n var DOT = '.';\n var LAST_CHILD = ':last-child';\n var TABLE = 'table';\n var TableElementResizing = Class.extend({\n init: function (element, options) {\n var that = this;\n that.options = extend({}, that.options, options);\n that.options.tags = $.isArray(that.options.tags) ? that.options.tags : [that.options.tags];\n if ($(element).is(TABLE)) {\n that.element = element;\n that._attachEventHandlers();\n }\n },\n destroy: function () {\n var that = this;\n var eventNamespace = that.options.eventNamespace;\n if (that.element) {\n $(that.element).off(eventNamespace);\n that.element = null;\n }\n $(that.options.rootElement).off(KEY_DOWN + eventNamespace);\n that._destroyResizeHandle();\n },\n options: {\n tags: [],\n min: 0,\n rootElement: null,\n eventNamespace: '',\n rtl: false,\n handle: {\n dataAttribute: '',\n height: 0,\n width: 0,\n classNames: {},\n template: ''\n }\n },\n _attachEventHandlers: function () {\n var that = this;\n var options = that.options;\n $(that.element).on(MOUSE_MOVE + options.eventNamespace, options.tags.join(COMMA), proxy(that.detectElementBorderHovering, that));\n },\n resizingInProgress: function () {\n var that = this;\n var resizable = that._resizable;\n if (resizable) {\n return !!resizable.resizing;\n }\n return false;\n },\n resize: noop,\n detectElementBorderHovering: function (e) {\n var that = this;\n var options = that.options;\n var handleOptions = options.handle;\n var tableElement = $(e.currentTarget);\n var resizeHandle = that.resizeHandle;\n var dataAttribute = handleOptions.dataAttribute;\n if (!that.resizingInProgress()) {\n if (!tableElement.is(LAST_CHILD) && that.elementBorderHovered(tableElement, e)) {\n if (resizeHandle) {\n if (resizeHandle.data(dataAttribute) && resizeHandle.data(dataAttribute) !== tableElement[0]) {\n that.showResizeHandle(tableElement, e);\n }\n } else {\n that.showResizeHandle(tableElement, e);\n }\n } else {\n if (resizeHandle) {\n that._destroyResizeHandle();\n }\n }\n }\n },\n elementBorderHovered: noop,\n showResizeHandle: function (tableElement, e) {\n var that = this;\n if (e.buttons !== 0) {\n return;\n }\n that._initResizeHandle();\n that.setResizeHandlePosition(tableElement);\n that.setResizeHandleDimensions();\n that.setResizeHandleDataAttributes(tableElement[0]);\n that._attachResizeHandleEventHandlers();\n that._initResizable(tableElement);\n that._hideResizeMarker();\n that.resizeHandle.show();\n },\n _initResizeHandle: function () {\n var that = this;\n var options = that.options;\n that._destroyResizeHandle();\n that.resizeHandle = $(options.handle.template).appendTo(options.rootElement);\n },\n setResizeHandlePosition: noop,\n setResizeHandleDimensions: noop,\n setResizeHandleDataAttributes: function (tableElement) {\n var that = this;\n that.resizeHandle.data(that.options.handle.dataAttribute, tableElement);\n },\n _attachResizeHandleEventHandlers: function () {\n var that = this;\n var options = that.options;\n var eventNamespace = options.eventNamespace;\n var markerClass = options.handle.classNames.marker;\n var resizeHandle = that.resizeHandle;\n that.resizeHandle.on(MOUSE_DOWN + eventNamespace, function () {\n resizeHandle.find(DOT + markerClass).show();\n }).on(MOUSE_UP + eventNamespace, function () {\n resizeHandle.find(DOT + markerClass).hide();\n });\n },\n _hideResizeMarker: function () {\n var that = this;\n that.resizeHandle.find(DOT + that.options.handle.classNames.marker).hide();\n },\n _destroyResizeHandle: function () {\n var that = this;\n if (that.resizeHandle) {\n that._destroyResizable();\n that.resizeHandle.off(that.options.eventNamespace).remove();\n that.resizeHandle = null;\n }\n },\n _initResizable: function (tableElement) {\n var that = this;\n if (!that.resizeHandle) {\n return;\n }\n that._destroyResizable();\n that._resizable = new kendo.ui.Resizable(tableElement, {\n draggableElement: that.resizeHandle[0],\n start: proxy(that.onResizeStart, that),\n resize: proxy(that.onResize, that),\n resizeend: proxy(that.onResizeEnd, that)\n });\n },\n _destroyResizable: function () {\n var that = this;\n if (that._resizable) {\n that._resizable.destroy();\n that._resizable = null;\n }\n },\n onResizeStart: function () {\n this._disableKeyboard();\n },\n onResize: function (e) {\n this.setResizeHandleDragPosition(e);\n },\n setResizeHandleDragPosition: noop,\n onResizeEnd: function (e) {\n var that = this;\n that.resize(e);\n that._destroyResizeHandle();\n that._enableKeyboard();\n },\n _enableKeyboard: function () {\n var options = this.options;\n $(options.rootElement).off(KEY_DOWN + options.eventNamespace);\n },\n _disableKeyboard: function () {\n var options = this.options;\n $(options.rootElement).on(KEY_DOWN + options.eventNamespace, function (e) {\n e.preventDefault();\n });\n },\n _forceResizing: function (e) {\n var resizable = this._resizable;\n if (resizable && resizable.userEvents) {\n resizable.userEvents._end(e);\n }\n }\n });\n var ResizingFactory = Class.extend({\n create: function (editor, options) {\n var that = this;\n var resizingName = options.name;\n var NS = options.eventNamespace;\n $(editor.body).on(MOUSE_ENTER + NS, TABLE, function (e) {\n var table = e.currentTarget;\n var resizing = editor[resizingName];\n e.stopPropagation();\n if (resizing) {\n if (resizing.element !== table && !resizing.resizingInProgress()) {\n that._destroyResizing(editor, options);\n that._initResizing(editor, table, options);\n }\n } else {\n that._initResizing(editor, table, options);\n }\n }).on(MOUSE_LEAVE + NS, TABLE, function (e) {\n var parentTable;\n var resizing = editor[resizingName];\n e.stopPropagation();\n if (resizing && !resizing.resizingInProgress() && !resizing.resizeHandle) {\n parentTable = $(resizing.element).parents(TABLE)[0];\n if (parentTable) {\n that._destroyResizing(editor, options);\n that._initResizing(editor, parentTable, options);\n }\n }\n }).on(MOUSE_LEAVE + NS, function () {\n var resizing = editor[resizingName];\n if (resizing && !resizing.resizingInProgress()) {\n that._destroyResizing(editor, options);\n }\n }).on(MOUSE_UP + NS, function (e) {\n var resizing = editor[resizingName];\n var parentTable;\n if (resizing && resizing.resizingInProgress()) {\n parentTable = $(e.target).parents(TABLE)[0];\n if (parentTable) {\n resizing._forceResizing(e);\n that._destroyResizing(editor, options);\n that._initResizing(editor, parentTable, options);\n }\n }\n });\n },\n dispose: function (editor, options) {\n $(editor.body).off(options.eventNamespace);\n },\n _initResizing: function (editor, tableElement, options) {\n var resizingName = options.name;\n var resizingType = options.type;\n editor[resizingName] = new resizingType(tableElement, {\n rtl: kendo.support.isRtl(editor.element),\n rootElement: editor.body\n });\n },\n _destroyResizing: function (editor, options) {\n var resizingName = options.name;\n if (editor[resizingName]) {\n editor[resizingName].destroy();\n editor[resizingName] = null;\n }\n }\n });\n ResizingFactory.current = new ResizingFactory();\n TableElementResizing.create = function (editor, options) {\n ResizingFactory.current.create(editor, options);\n };\n TableElementResizing.dispose = function (editor, options) {\n ResizingFactory.current.dispose(editor, options);\n };\n extend(Editor, { TableElementResizing: TableElementResizing });\n }(window.kendo));\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('editor/resizing/column-resizing', [\n 'editor/main',\n 'editor/resizing/resizing-utils',\n 'editor/resizing/table-element-resizing',\n 'editor/dom'\n ], f);\n}(function () {\n (function (kendo, undefined) {\n var global = window;\n var math = global.Math;\n var abs = math.abs;\n var $ = kendo.jQuery;\n var extend = $.extend;\n var Editor = kendo.ui.editor;\n var dom = Editor.Dom;\n var TableElementResizing = Editor.TableElementResizing;\n var ResizingUtils = Editor.ResizingUtils;\n var constrain = ResizingUtils.constrain;\n var calculatePercentageRatio = ResizingUtils.calculatePercentageRatio;\n var getScrollBarWidth = ResizingUtils.getScrollBarWidth;\n var inPercentages = ResizingUtils.inPercentages;\n var toPercentages = ResizingUtils.toPercentages;\n var toPixels = ResizingUtils.toPixels;\n var outerWidth = kendo._outerWidth;\n var NS = '.kendoEditorColumnResizing';\n var RESIZE_HANDLE_CLASS = 'k-column-resize-handle';\n var RESIZE_MARKER_CLASS = 'k-column-resize-marker';\n var BODY = 'body';\n var TBODY = 'tbody';\n var THEAD = 'thead';\n var TD = 'td';\n var TH = 'th';\n var TR = 'tr';\n var COLATTR = 'col-index';\n var COMMA = ',';\n var WIDTH = 'width';\n var ColumnResizing = TableElementResizing.extend({\n options: {\n tags: [\n TD,\n TH\n ],\n min: 20,\n rootElement: null,\n eventNamespace: NS,\n rtl: false,\n handle: {\n dataAttribute: 'column',\n width: 10,\n height: 0,\n classNames: {\n handle: RESIZE_HANDLE_CLASS,\n marker: RESIZE_MARKER_CLASS\n },\n template: '
        ' + '
        ' + '
        ' + '
        ' + '
        '\n }\n },\n elementBorderHovered: function (column, e) {\n var that = this;\n var options = that.options;\n var handleWidth = options.handle.width;\n var borderOffset = column.offset().left + (options.rtl ? 0 : outerWidth(column));\n var mousePosition = e.clientX + $(column[0].ownerDocument).scrollLeft();\n if (mousePosition > borderOffset - handleWidth && mousePosition < borderOffset + handleWidth) {\n return true;\n } else {\n return false;\n }\n },\n setResizeHandlePosition: function (column) {\n var that = this;\n var tableInnerElement = $(that.element.tHead || that.element.tBodies[0]);\n var options = that.options;\n var rtl = options.rtl;\n var handleWidth = options.handle.width;\n var rootElement = $(options.rootElement);\n var scrollTopOffset = rootElement.is(BODY) ? 0 : rootElement.scrollTop();\n var scrollLeftOffset = rootElement.is(BODY) ? 0 : rootElement.scrollLeft();\n var columnWidthOffset = rtl ? 0 : outerWidth(column);\n var scrollBarWidth = rtl ? getScrollBarWidth(rootElement[0]) : 0;\n var columnOffsetLeft = column.offset().left - (rootElement.offset().left + parseFloat(rootElement.css('borderLeftWidth'))) - parseFloat(column.css('marginLeft'));\n var innerElementOffsetTop = tableInnerElement.offset().top - (rootElement.offset().top + parseFloat(rootElement.css('borderTopWidth'))) - parseFloat(tableInnerElement.css('marginTop'));\n that.resizeHandle.css({\n top: innerElementOffsetTop + scrollTopOffset,\n left: columnOffsetLeft + columnWidthOffset + (scrollLeftOffset - scrollBarWidth) - handleWidth / 2,\n position: 'absolute'\n });\n },\n setResizeHandleDimensions: function () {\n var that = this;\n var tableHead = $(that.element).children(THEAD);\n var tableBody = $(that.element).children(TBODY);\n var fullHeight = tableHead.length > 0 ? tableHead.height() + tableBody.height() : tableBody.height();\n that.resizeHandle.css({\n width: that.options.handle.width,\n height: fullHeight\n });\n },\n setResizeHandleDragPosition: function (e) {\n var that = this;\n var column = $($(e.currentTarget).data(that.options.handle.dataAttribute));\n var options = that.options;\n var rootElement = $(options.rootElement);\n var handleWidth = options.handle ? options.handle.width : 0;\n var min = options.min;\n var rtl = options.rtl;\n var columnWidth = outerWidth(column);\n var columnLeftOffset = column.offset().left - (rootElement.offset().left + parseFloat(rootElement.css('borderLeftWidth'))) - parseFloat(column.css('marginLeft'));\n var adjacentColumnWidth = outerWidth(column.next());\n var resizeHandle = $(that.resizeHandle);\n var scrollLeftOffset = rootElement.is(BODY) ? 0 : rootElement.scrollLeft();\n var scrollBarWidth = rtl ? getScrollBarWidth(rootElement[0]) : 0;\n var resizeHandleOffsetLeft = resizeHandle.offset().left - (rootElement.offset().left + parseFloat(rootElement.css('borderLeftWidth'))) - parseFloat(resizeHandle.css('marginLeft'));\n var handleOffset = constrain({\n value: resizeHandleOffsetLeft + (scrollLeftOffset - scrollBarWidth) + e.x.delta,\n min: columnLeftOffset + (scrollLeftOffset - scrollBarWidth) - (rtl ? adjacentColumnWidth : 0) + min,\n max: columnLeftOffset + columnWidth + (scrollLeftOffset - scrollBarWidth) + (rtl ? 0 : adjacentColumnWidth) - handleWidth - min\n });\n resizeHandle.css({ left: handleOffset });\n },\n resize: function (e) {\n var that = this;\n var column = $($(e.currentTarget).data(that.options.handle.dataAttribute));\n var options = that.options;\n var rtlModifier = options.rtl ? -1 : 1;\n var min = options.min;\n var initialDeltaX = rtlModifier * e.x.initialDelta;\n var newWidth;\n var initialAdjacentColumnWidth;\n var initialColumnWidth;\n var colIndex;\n var nextColumn;\n dom.reMapTableColumns(that.element, COLATTR);\n colIndex = parseInt(column.attr(COLATTR), 10);\n if (column.prop('colSpan') > 1) {\n column = $(that.element).find('[' + COLATTR + '=' + (colIndex + column.prop('colSpan') - 1) + ']').eq(0);\n colIndex = parseInt(column.attr(COLATTR), 10);\n }\n nextColumn = $(that.element).find('[' + COLATTR + '=' + (colIndex + 1) + ']:not([colspan])');\n that._setTableComputedWidth();\n that._setColumnsComputedWidth();\n initialColumnWidth = outerWidth(column);\n initialAdjacentColumnWidth = outerWidth(nextColumn);\n newWidth = constrain({\n value: initialColumnWidth + initialDeltaX,\n min: min,\n max: initialColumnWidth + initialAdjacentColumnWidth - min\n });\n that._resizeColumn(column[0], newWidth);\n that._resizeTopAndBottomColumns(column[0], newWidth);\n that._resizeAdjacentColumns(parseInt(column.attr(COLATTR), 10), initialAdjacentColumnWidth, initialColumnWidth, initialColumnWidth - newWidth);\n dom.clearTableMappings(that.element, COLATTR);\n },\n _setTableComputedWidth: function () {\n var element = this.element;\n if (element.style[WIDTH] === '') {\n element.style[WIDTH] = toPixels(outerWidth($(element)));\n }\n },\n _setColumnsComputedWidth: function () {\n var that = this;\n var tableInnerElement = $(that.element.tHead || that.element.tBodies[0]);\n var innerElementWidth = outerWidth(tableInnerElement);\n var columns = tableInnerElement.children(TR).children(TD);\n var length = columns.length;\n var currentColumnsWidths = columns.map(function () {\n return outerWidth($(this));\n });\n var i;\n for (i = 0; i < length; i++) {\n if (inPercentages(columns[i].style[WIDTH])) {\n columns[i].style[WIDTH] = toPercentages(calculatePercentageRatio(currentColumnsWidths[i], innerElementWidth));\n } else {\n columns[i].style[WIDTH] = toPixels(currentColumnsWidths[i]);\n }\n }\n },\n _resizeTopAndBottomColumns: function (column, newWidth) {\n var that = this;\n var columnIndex = $(column).attr(COLATTR);\n var topAndBottomColumns = $(that.element).children(TBODY + COMMA + THEAD).children(TR).children(that.options.tags.join(COMMA)).filter(function () {\n var cell = this;\n return $(cell).attr(COLATTR) === columnIndex && cell !== column;\n });\n var length = topAndBottomColumns.length;\n var i;\n for (i = 0; i < length; i++) {\n that._resizeColumn(topAndBottomColumns[i], newWidth);\n }\n },\n _resizeColumn: function (column, newWidth) {\n var innerTableElement = $(this.element.tHead || this.element.tBodies[0]);\n if (inPercentages(column.style[WIDTH])) {\n column.style[WIDTH] = toPercentages(calculatePercentageRatio(newWidth, outerWidth(innerTableElement)));\n } else {\n column.style[WIDTH] = toPixels(newWidth);\n }\n },\n _resizeAdjacentColumns: function (columnIndex, initialAdjacentColumnWidth, initialColumnWidth, deltaWidth) {\n var that = this;\n var adjacentColumns = $(that.element).children(TBODY + COMMA + THEAD).children(TR).children(that.options.tags.join(COMMA)).filter(function () {\n return parseInt($(this).attr(COLATTR), 10) === columnIndex + 1;\n });\n var length = adjacentColumns.length;\n var i;\n for (i = 0; i < length; i++) {\n that._resizeAdjacentColumn(adjacentColumns[i], initialAdjacentColumnWidth, initialColumnWidth, deltaWidth);\n }\n },\n _resizeAdjacentColumn: function (adjacentColumn, initialAdjacentColumnWidth, initialColumnWidth, deltaWidth) {\n var that = this;\n var min = that.options.min;\n var newWidth;\n newWidth = constrain({\n value: initialAdjacentColumnWidth + deltaWidth,\n min: min,\n max: abs(initialColumnWidth + initialAdjacentColumnWidth - min)\n });\n that._resizeColumn(adjacentColumn, newWidth);\n }\n });\n ColumnResizing.create = function (editor) {\n TableElementResizing.create(editor, {\n name: 'columnResizing',\n type: ColumnResizing,\n eventNamespace: NS\n });\n };\n ColumnResizing.dispose = function (editor) {\n TableElementResizing.dispose(editor, { eventNamespace: NS });\n };\n extend(Editor, { ColumnResizing: ColumnResizing });\n }(window.kendo));\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('editor/resizing/row-resizing', [\n 'editor/main',\n 'editor/resizing/resizing-utils',\n 'editor/resizing/table-element-resizing'\n ], f);\n}(function () {\n (function (kendo, undefined) {\n var math = window.Math;\n var abs = math.abs;\n var $ = kendo.jQuery;\n var extend = $.extend;\n var Editor = kendo.ui.editor;\n var TableElementResizing = Editor.TableElementResizing;\n var ResizingUtils = Editor.ResizingUtils;\n var getScrollBarWidth = ResizingUtils.getScrollBarWidth;\n var constrain = ResizingUtils.constrain;\n var calculatePercentageRatio = ResizingUtils.calculatePercentageRatio;\n var inPercentages = ResizingUtils.inPercentages;\n var toPercentages = ResizingUtils.toPercentages;\n var toPixels = ResizingUtils.toPixels;\n var outerHeight = kendo._outerHeight;\n var NS = '.kendoEditorRowResizing';\n var RESIZE_HANDLE_CLASS = 'k-row-resize-handle';\n var RESIZE_HANDLE_MARKER_WRAPPER_CLASS = 'k-row-resize-marker-wrapper';\n var RESIZE_MARKER_CLASS = 'k-row-resize-marker';\n var BODY = 'body';\n var TR = 'tr';\n var TBODY = 'tbody';\n var THEAD = 'thead';\n var COMMA = ',';\n var HEIGHT = 'height';\n var RowResizing = TableElementResizing.extend({\n options: {\n tags: [TR],\n min: 20,\n rootElement: null,\n eventNamespace: NS,\n rtl: false,\n handle: {\n dataAttribute: 'row',\n width: 0,\n height: 10,\n classNames: {\n handle: RESIZE_HANDLE_CLASS,\n marker: RESIZE_MARKER_CLASS\n },\n template: '
        ' + '
        ' + '
        ' + '
        ' + '
        ' + '
        ' + '
        '\n }\n },\n elementBorderHovered: function (tableElement, e) {\n var that = this;\n var handleHeight = that.options.handle[HEIGHT];\n var borderOffset = tableElement.offset().top + outerHeight(tableElement);\n var mousePosition = e.clientY + $(tableElement[0].ownerDocument).scrollTop();\n if (mousePosition > borderOffset - handleHeight && mousePosition < borderOffset + handleHeight) {\n return true;\n } else {\n return false;\n }\n },\n setResizeHandlePosition: function (row) {\n var that = this;\n var options = that.options;\n var handleHeight = options.handle[HEIGHT];\n var rootElement = $(options.rootElement);\n var scrollTopOffset = rootElement.is(BODY) ? 0 : rootElement.scrollTop();\n var scrollLeftOffset = rootElement.is(BODY) ? 0 : rootElement.scrollLeft();\n var scrollBarWidth = options.rtl ? getScrollBarWidth(rootElement[0]) : 0;\n var rowOffsetLeft = row.offset().left - (rootElement.offset().left + parseFloat(rootElement.css('borderLeftWidth'))) - parseFloat(row.css('marginLeft'));\n var rowOffsetTop = row.offset().top - (rootElement.offset().top + parseFloat(rootElement.css('borderTopWidth'))) - parseFloat(row.css('marginTop'));\n that.resizeHandle.css({\n top: rowOffsetTop + outerHeight(row) + scrollTopOffset - handleHeight / 2,\n left: rowOffsetLeft + (scrollLeftOffset - scrollBarWidth),\n position: 'absolute'\n });\n },\n setResizeHandleDimensions: function () {\n var that = this;\n var innerTableElement = $(that.element.tHead || that.element.tBodies[0]);\n that.resizeHandle.css({\n width: innerTableElement.width(),\n height: that.options.handle[HEIGHT]\n });\n },\n setResizeHandleDragPosition: function (e) {\n var that = this;\n var options = that.options;\n var min = options.min;\n var tableHead = $(that.element).children(THEAD);\n var tableBody = $(that.element).children(TBODY);\n var topInnerTableElement = tableHead.length > 0 ? tableHead : tableBody;\n var resizeHandle = $(that.resizeHandle);\n var row = $(e.currentTarget).data(options.handle.dataAttribute);\n var $row = $(row);\n var rootElement = $(options.rootElement);\n var scrollTopOffset = rootElement.is(BODY) ? 0 : rootElement.scrollTop();\n var tableTopOffset = topInnerTableElement.offset().top - (rootElement.offset().top + parseFloat(rootElement.css('borderTopWidth'))) - parseFloat(topInnerTableElement.css('marginTop'));\n var rowOffsetTop = $row.offset().top - (rootElement.offset().top + parseFloat(rootElement.css('borderTopWidth'))) - parseFloat($row.css('marginTop'));\n var resizeHandleOffsetTop = resizeHandle.offset().top - (Math.max(0, rootElement.offset().top) + parseFloat(rootElement.css('borderTopWidth'))) - parseFloat(resizeHandle.css('marginTop'));\n var handleOffset = constrain({\n value: resizeHandleOffsetTop + scrollTopOffset + e.y.delta,\n min: rowOffsetTop + scrollTopOffset + min,\n max: tableTopOffset + outerHeight(tableHead) + outerHeight(tableBody) + scrollTopOffset - options.handle[HEIGHT] - min\n });\n resizeHandle.css({ top: handleOffset });\n },\n resize: function (e) {\n var that = this;\n var options = that.options;\n var row = $(e.currentTarget).data(options.handle.dataAttribute);\n var currentRowHeight = outerHeight($(row));\n var element = $(that.element);\n var initialTableHeight = outerHeight(element);\n var tableHead = element.children(THEAD);\n var tableHeadHeight = tableHead.length > 0 ? tableHead.height() : 0;\n var tableBody = element.children(TBODY);\n var tableBodyHeight = tableBody.height();\n var initialStyleHeight = row.style[HEIGHT];\n var newRowHeight = constrain({\n value: currentRowHeight + e.y.initialDelta,\n min: options.min,\n max: abs(tableHeadHeight + tableBodyHeight - options.min)\n });\n that._setRowsHeightInPixels();\n row.style[HEIGHT] = toPixels(newRowHeight);\n that._setTableHeight(initialTableHeight + (newRowHeight - currentRowHeight));\n if (inPercentages(initialStyleHeight)) {\n that._setRowsHeightInPercentages();\n }\n },\n _setRowsHeightInPixels: function () {\n var that = this;\n var rows = $(that.element).children(TBODY + COMMA + THEAD).children(TR);\n var length = rows.length;\n var currentRowsHeights = rows.map(function () {\n return outerHeight($(this));\n });\n var i;\n for (i = 0; i < length; i++) {\n rows[i].style[HEIGHT] = toPixels(currentRowsHeights[i]);\n }\n },\n _setRowsHeightInPercentages: function () {\n var that = this;\n var tableHead = $(that.element).children(THEAD);\n var tableHeadHeight = tableHead.length > 0 ? tableHead.height() : 0;\n var tableBody = $(that.element).children(TBODY);\n var tableBodyHeight = tableBody.height();\n var rows = $(that.element).children(THEAD + COMMA + TBODY).children(TR);\n var length = rows.length;\n var currentRowsHeights = rows.map(function () {\n return outerHeight($(this));\n });\n var i;\n for (i = 0; i < length; i++) {\n rows[i].style[HEIGHT] = toPercentages(calculatePercentageRatio(currentRowsHeights[i], tableHeadHeight + tableBodyHeight));\n }\n },\n _setTableHeight: function (newHeight) {\n var element = this.element;\n if (inPercentages(element.style[HEIGHT])) {\n element.style[HEIGHT] = toPercentages(calculatePercentageRatio(newHeight, $(element).parent().height()));\n } else {\n element.style[HEIGHT] = toPixels(newHeight);\n }\n }\n });\n RowResizing.create = function (editor) {\n TableElementResizing.create(editor, {\n name: 'rowResizing',\n type: RowResizing,\n eventNamespace: NS\n });\n };\n RowResizing.dispose = function (editor) {\n TableElementResizing.dispose(editor, { eventNamespace: NS });\n };\n extend(Editor, { RowResizing: RowResizing });\n }(window.kendo));\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('editor/resizing/table-resize-handle', [\n 'editor/main',\n 'kendo.draganddrop',\n 'editor/resizing/resizing-utils'\n ], f);\n}(function () {\n (function (kendo, undefined) {\n var $ = kendo.jQuery;\n var extend = $.extend;\n var noop = $.noop;\n var proxy = $.proxy;\n var Editor = kendo.ui.editor;\n var Class = kendo.Class;\n var Draggable = kendo.ui.Draggable;\n var Observable = kendo.Observable;\n var getScrollBarWidth = Editor.ResizingUtils.getScrollBarWidth;\n var outerWidth = kendo._outerWidth;\n var outerHeight = kendo._outerHeight;\n var NS = '.kendoEditorTableResizeHandle';\n var RESIZE_HANDLE_CLASS = 'k-table-resize-handle';\n var DRAG_START = 'dragStart';\n var DRAG = 'drag';\n var DRAG_END = 'dragEnd';\n var HALF_INSIDE = 'halfInside';\n var MOUSE_OVER = 'mouseover';\n var MOUSE_OUT = 'mouseout';\n var BODY = 'body';\n var TABLE = 'table';\n var EAST = 'east';\n var NORTH = 'north';\n var NORTHEAST = 'northeast';\n var NORTHWEST = 'northwest';\n var SOUTH = 'south';\n var SOUTHEAST = 'southeast';\n var SOUTHWEST = 'southwest';\n var WEST = 'west';\n var DOT = '.';\n var TableResizeHandle = Observable.extend({\n init: function (options) {\n var that = this;\n Observable.fn.init.call(that);\n that.options = extend({}, that.options, options);\n that.element = $(that.options.template).appendTo(that.options.appendTo)[0];\n that._attachEventHandlers();\n that._addStyles();\n that._initDraggable();\n that._initPositioningStrategy();\n that._initDraggingStrategy();\n $(that.element).data(TABLE, that.options.resizableElement);\n },\n destroy: function () {\n var that = this;\n $(that.element).off(NS).remove();\n that.element = null;\n that._destroyDraggable();\n that.unbind();\n },\n options: {\n appendTo: null,\n direction: SOUTHEAST,\n resizableElement: null,\n rtl: false,\n template: '
        ' + '
        ' + '
        '\n },\n events: [\n DRAG_START,\n DRAG,\n DRAG_END,\n MOUSE_OVER,\n MOUSE_OUT\n ],\n show: function () {\n this._setPosition();\n },\n _setPosition: function () {\n var that = this;\n var position = that._positioningStrategy.getPosition();\n $(that.element).css({\n top: position.top,\n left: position.left,\n position: 'absolute'\n });\n },\n _attachEventHandlers: function () {\n var that = this;\n $(that.element).on(MOUSE_OVER + NS, proxy(that._onMouseOver, that)).on(MOUSE_OUT + NS, proxy(that._onMouseOut, that));\n },\n _onMouseOver: function () {\n this.trigger(MOUSE_OVER);\n },\n _onMouseOut: function () {\n this.trigger(MOUSE_OUT);\n },\n _addStyles: function () {\n var that = this;\n $(that.element).children(DOT + RESIZE_HANDLE_CLASS).addClass('k-resize-' + that.options.direction);\n },\n _initPositioningStrategy: function () {\n var that = this;\n var options = that.options;\n that._positioningStrategy = HandlePositioningStrategy.create({\n name: options.direction,\n handle: that.element,\n resizableElement: options.resizableElement,\n rootElement: options.rootElement,\n rtl: options.rtl\n });\n },\n _initDraggable: function () {\n var that = this;\n var element = that.element;\n if (that._draggable || !element) {\n return;\n }\n that._draggable = new Draggable(element, {\n dragstart: proxy(that._onDragStart, that),\n drag: proxy(that._onDrag, that),\n dragend: proxy(that._onDragEnd, that)\n });\n },\n _onDragStart: function () {\n this.trigger(DRAG_START);\n },\n _onDrag: function (e) {\n var that = this;\n that.trigger(DRAG, that._draggingStrategy.adjustDragDelta({\n deltaX: e.x.delta,\n deltaY: e.y.delta,\n initialDeltaX: e.x.initialDelta,\n initialDeltaY: e.y.initialDelta\n }));\n },\n _onDragEnd: function () {\n this.trigger(DRAG_END);\n },\n _destroyDraggable: function () {\n var that = this;\n if (that._draggable) {\n that._draggable.destroy();\n that._draggable = null;\n }\n },\n _initDraggingStrategy: function () {\n var that = this;\n that._draggingStrategy = HandleDraggingStrategy.create({ name: that.options.direction });\n }\n });\n var StrategyFactory = Class.extend({\n init: function () {\n this._items = [];\n },\n register: function (name, type) {\n this._items.push({\n name: name,\n type: type\n });\n },\n create: function (options) {\n var items = this._items;\n var itemsLength = items.length;\n var name = options.name ? options.name.toLowerCase() : '';\n var match;\n var item;\n var i;\n for (i = 0; i < itemsLength; i++) {\n item = items[i];\n if (item.name.toLowerCase() === name) {\n match = item;\n break;\n }\n }\n if (match) {\n return new match.type(options);\n }\n }\n });\n var PositioningStrategyFactory = StrategyFactory.extend({});\n PositioningStrategyFactory.current = new PositioningStrategyFactory();\n var HandlePositioningStrategy = Class.extend({\n init: function (options) {\n var that = this;\n that.options = extend({}, that.options, options);\n },\n options: {\n handle: null,\n offset: HALF_INSIDE,\n resizableElement: null,\n rootElement: null,\n rtl: false\n },\n getPosition: function () {\n var that = this;\n var position = that.calculatePosition();\n var handleOffsetPosition = that.applyHandleOffset(position);\n var scrollOffsetPosition = that.applyScrollOffset(handleOffsetPosition);\n return scrollOffsetPosition;\n },\n calculatePosition: noop,\n applyHandleOffset: function (position) {\n var options = this.options;\n var handle = $(options.handle);\n if (options.offset === HALF_INSIDE) {\n return {\n top: position.top - outerHeight(handle) / 2,\n left: position.left - outerWidth(handle) / 2\n };\n }\n return position;\n },\n applyScrollOffset: function (position) {\n var options = this.options;\n var rootElement = $(options.rootElement);\n var scrollBarWidth = options.rtl ? getScrollBarWidth(rootElement[0]) : 0;\n if (!rootElement.is(BODY)) {\n return {\n top: position.top + (rootElement.scrollTop() || 0),\n left: position.left + (rootElement.scrollLeft() || 0) - scrollBarWidth\n };\n }\n return position;\n }\n });\n HandlePositioningStrategy.create = function (options) {\n return PositioningStrategyFactory.current.create(options);\n };\n var EastPositioningStrategy = HandlePositioningStrategy.extend({\n calculatePosition: function () {\n var resizableElement = $(this.options.resizableElement);\n var offset = resizableElement.position();\n return {\n top: offset.top + outerHeight(resizableElement) / 2,\n left: offset.left + outerWidth(resizableElement)\n };\n }\n });\n PositioningStrategyFactory.current.register(EAST, EastPositioningStrategy);\n var NorthPositioningStrategy = HandlePositioningStrategy.extend({\n calculatePosition: function () {\n var resizableElement = $(this.options.resizableElement);\n var offset = resizableElement.position();\n return {\n top: offset.top,\n left: offset.left + outerWidth(resizableElement) / 2\n };\n }\n });\n PositioningStrategyFactory.current.register(NORTH, NorthPositioningStrategy);\n var NortheastPositioningStrategy = HandlePositioningStrategy.extend({\n calculatePosition: function () {\n var resizableElement = $(this.options.resizableElement);\n var offset = resizableElement.position();\n return {\n top: offset.top,\n left: offset.left + outerWidth(resizableElement)\n };\n }\n });\n PositioningStrategyFactory.current.register(NORTHEAST, NortheastPositioningStrategy);\n var NorthwestPositioningStrategy = HandlePositioningStrategy.extend({\n calculatePosition: function () {\n var resizableElement = $(this.options.resizableElement);\n var offset = resizableElement.position();\n return {\n top: offset.top,\n left: offset.left\n };\n }\n });\n PositioningStrategyFactory.current.register(NORTHWEST, NorthwestPositioningStrategy);\n var SouthPositioningStrategy = HandlePositioningStrategy.extend({\n calculatePosition: function () {\n var resizableElement = $(this.options.resizableElement);\n var offset = resizableElement.position();\n return {\n top: offset.top + outerHeight(resizableElement),\n left: offset.left + outerWidth(resizableElement) / 2\n };\n }\n });\n PositioningStrategyFactory.current.register(SOUTH, SouthPositioningStrategy);\n var SoutheastPositioningStrategy = HandlePositioningStrategy.extend({\n calculatePosition: function () {\n var resizableElement = $(this.options.resizableElement);\n var offset = resizableElement.position();\n return {\n top: offset.top + outerHeight(resizableElement),\n left: offset.left + outerWidth(resizableElement)\n };\n }\n });\n PositioningStrategyFactory.current.register(SOUTHEAST, SoutheastPositioningStrategy);\n var SouthwestPositioningStrategy = HandlePositioningStrategy.extend({\n calculatePosition: function () {\n var resizableElement = $(this.options.resizableElement);\n var offset = resizableElement.position();\n return {\n top: offset.top + outerHeight(resizableElement),\n left: offset.left\n };\n }\n });\n PositioningStrategyFactory.current.register(SOUTHWEST, SouthwestPositioningStrategy);\n var WestPositioningStrategy = HandlePositioningStrategy.extend({\n calculatePosition: function () {\n var resizableElement = $(this.options.resizableElement);\n var offset = resizableElement.position();\n return {\n top: offset.top + outerHeight(resizableElement) / 2,\n left: offset.left\n };\n }\n });\n PositioningStrategyFactory.current.register(WEST, WestPositioningStrategy);\n var DraggingStrategyFactory = StrategyFactory.extend({});\n DraggingStrategyFactory.current = new DraggingStrategyFactory();\n var HandleDraggingStrategy = Class.extend({\n init: function (options) {\n var that = this;\n that.options = extend({}, that.options, options);\n },\n options: {\n deltaX: {\n adjustment: null,\n modifier: null\n },\n deltaY: {\n adjustment: null,\n modifier: null\n }\n },\n adjustDragDelta: function (deltas) {\n var options = this.options;\n var xAxisAdjustment = options.deltaX.adjustment * options.deltaX.modifier;\n var yAxisAdjustment = options.deltaY.adjustment * options.deltaY.modifier;\n return {\n deltaX: deltas.deltaX * xAxisAdjustment,\n deltaY: deltas.deltaY * yAxisAdjustment,\n initialDeltaX: deltas.initialDeltaX * xAxisAdjustment,\n initialDeltaY: deltas.initialDeltaY * yAxisAdjustment\n };\n }\n });\n HandleDraggingStrategy.create = function (options) {\n return DraggingStrategyFactory.current.create(options);\n };\n var HorizontalDraggingStrategy = HandleDraggingStrategy.extend({\n options: {\n deltaX: {\n adjustment: 1,\n modifier: 1\n },\n deltaY: {\n adjustment: 0,\n modifier: 0\n }\n }\n });\n var EastDraggingStrategy = HorizontalDraggingStrategy.extend({ options: { deltaX: { modifier: 1 } } });\n DraggingStrategyFactory.current.register(EAST, EastDraggingStrategy);\n var WestDraggingStrategy = HorizontalDraggingStrategy.extend({ options: { deltaX: { modifier: -1 } } });\n DraggingStrategyFactory.current.register(WEST, WestDraggingStrategy);\n var VerticalDraggingStrategy = HandleDraggingStrategy.extend({\n options: {\n deltaX: {\n adjustment: 0,\n modifier: 0\n },\n deltaY: {\n adjustment: 1,\n modifier: 1\n }\n }\n });\n var NorthDraggingStrategy = VerticalDraggingStrategy.extend({ options: { deltaY: { modifier: -1 } } });\n DraggingStrategyFactory.current.register(NORTH, NorthDraggingStrategy);\n var SouthDraggingStrategy = VerticalDraggingStrategy.extend({ options: { deltaY: { modifier: 1 } } });\n DraggingStrategyFactory.current.register(SOUTH, SouthDraggingStrategy);\n var HorizontalAndVerticalDraggingStrategy = HandleDraggingStrategy.extend({\n options: {\n deltaX: {\n adjustment: 1,\n modifier: 1\n },\n deltaY: {\n adjustment: 1,\n modifier: 1\n }\n }\n });\n var NorthEastDraggingStrategy = HorizontalAndVerticalDraggingStrategy.extend({\n options: {\n deltaX: { modifier: 1 },\n deltaY: { modifier: -1 }\n }\n });\n DraggingStrategyFactory.current.register(NORTHEAST, NorthEastDraggingStrategy);\n var NorthWestDraggingStrategy = HorizontalAndVerticalDraggingStrategy.extend({\n options: {\n deltaX: { modifier: -1 },\n deltaY: { modifier: -1 }\n }\n });\n DraggingStrategyFactory.current.register(NORTHWEST, NorthWestDraggingStrategy);\n var SouthEastDraggingStrategy = HorizontalAndVerticalDraggingStrategy.extend({\n options: {\n deltaX: { modifier: 1 },\n deltaY: { modifier: 1 }\n }\n });\n DraggingStrategyFactory.current.register(SOUTHEAST, SouthEastDraggingStrategy);\n var SouthWestDraggingStrategy = HorizontalAndVerticalDraggingStrategy.extend({\n options: {\n deltaX: { modifier: -1 },\n deltaY: { modifier: 1 }\n }\n });\n DraggingStrategyFactory.current.register(SOUTHWEST, SouthWestDraggingStrategy);\n extend(Editor, { TableResizeHandle: TableResizeHandle });\n }(window.kendo));\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('editor/resizing/table-resizing', [\n 'editor/main',\n 'editor/resizing/table-resize-handle',\n 'editor/resizing/resizing-utils'\n ], f);\n}(function () {\n (function (kendo, undefined) {\n var global = window;\n var math = global.Math;\n var min = math.min;\n var max = math.max;\n var $ = kendo.jQuery;\n var contains = $.contains;\n var extend = $.extend;\n var proxy = $.proxy;\n var browser = kendo.support.browser;\n var Editor = kendo.ui.editor;\n var Class = kendo.Class;\n var TableResizeHandle = Editor.TableResizeHandle;\n var ResizingUtils = Editor.ResizingUtils;\n var calculatePercentageRatio = ResizingUtils.calculatePercentageRatio;\n var constrain = ResizingUtils.constrain;\n var inPercentages = ResizingUtils.inPercentages;\n var inPixels = ResizingUtils.inPixels;\n var toPercentages = ResizingUtils.toPercentages;\n var toPixels = ResizingUtils.toPixels;\n var outerWidth = kendo._outerWidth;\n var outerHeight = kendo._outerHeight;\n var NS = '.kendoEditorTableResizing';\n var RESIZE_HANDLE_WRAPPER_CLASS = 'k-table-resize-handle-wrapper';\n var TABLE_CLASS = 'k-table';\n var TABLE_RESIZING_CLASS = 'k-table-resizing';\n var DRAG_START = 'dragStart';\n var DRAG = 'drag';\n var DRAG_END = 'dragEnd';\n var KEY_DOWN = 'keydown';\n var MOUSE_DOWN = 'mousedown';\n var MOUSE_OVER = 'mouseover';\n var MOUSE_OUT = 'mouseout';\n var COLUMN = 'td';\n var ROW = 'tr';\n var TBODY = 'tbody';\n var THEAD = 'thead';\n var TABLE = 'table';\n var COMMA = ',';\n var WIDTH = 'width';\n var HEIGHT = 'height';\n var EAST = 'east';\n var NORTH = 'north';\n var NORTHEAST = 'northeast';\n var NORTHWEST = 'northwest';\n var SOUTH = 'south';\n var SOUTHEAST = 'southeast';\n var SOUTHWEST = 'southwest';\n var WEST = 'west';\n var DOT = '.';\n function isUndefined(value) {\n return typeof value === 'undefined';\n }\n var TableResizing = Class.extend({\n init: function (element, options) {\n var that = this;\n that.options = extend({}, that.options, options);\n that.handles = [];\n if ($(element).is(TABLE)) {\n that.element = element;\n }\n },\n destroy: function () {\n var that = this;\n $(that.element).off(NS);\n that.element = null;\n $(that.options.rootElement).off(KEY_DOWN + NS);\n that._destroyResizeHandles();\n },\n options: {\n appendHandlesTo: null,\n rtl: false,\n rootElement: null,\n minWidth: 10,\n minHeight: 10,\n handles: [\n { direction: NORTHWEST },\n { direction: NORTH },\n { direction: NORTHEAST },\n { direction: EAST },\n { direction: SOUTHEAST },\n { direction: SOUTH },\n { direction: SOUTHWEST },\n { direction: WEST }\n ]\n },\n resize: function (args) {\n var that = this;\n var deltas = extend({}, {\n deltaX: 0,\n deltaY: 0,\n initialDeltaX: 0,\n initialDeltaY: 0\n }, args);\n that._resizeWidth(deltas.deltaX, deltas.initialDeltaX);\n that._resizeHeight(deltas.deltaY, deltas.initialDeltaY);\n that.showResizeHandles();\n },\n _resizeWidth: function (delta, initialDelta) {\n var that = this;\n var element = $(that.element);\n var styleWidth = element[0].style[WIDTH];\n var currentWidth = outerWidth(element);\n var parentWidth = element.parent().width();\n var maxWidth = that._getMaxDimensionValue(WIDTH);\n var newWidth;\n var ratioValue;\n var ratioTotalValue;\n var constrainedWidth;\n if (delta === 0) {\n return;\n }\n if (isUndefined(that._initialElementWidth)) {\n that._initialElementWidth = currentWidth;\n }\n constrainedWidth = constrain({\n value: that._initialElementWidth + initialDelta,\n min: that.options.minWidth,\n max: maxWidth\n });\n if (inPercentages(styleWidth)) {\n if (currentWidth + delta > parentWidth) {\n ratioValue = max(constrainedWidth, parentWidth);\n ratioTotalValue = min(constrainedWidth, parentWidth);\n } else {\n ratioValue = min(constrainedWidth, parentWidth);\n ratioTotalValue = max(constrainedWidth, parentWidth);\n }\n newWidth = toPercentages(calculatePercentageRatio(ratioValue, ratioTotalValue));\n } else {\n newWidth = toPixels(constrainedWidth);\n }\n that._setColumnsWidth();\n element[0].style[WIDTH] = newWidth;\n },\n _resizeHeight: function (delta, initialDelta) {\n var that = this;\n var element = $(that.element);\n var styleHeight = element[0].style[HEIGHT];\n var currentHeight = outerHeight(element);\n var parent = element.parent();\n var parentHeight = parent.height();\n var maxHeight = that._getMaxDimensionValue(HEIGHT);\n var newHeight;\n var ratioValue;\n var ratioTotalValue;\n var constrainedHeight;\n var minHeight = that.options.minHeight;\n var hasRowsInPixels = that._hasRowsInPixels();\n if (delta === 0) {\n return;\n }\n if (isUndefined(that._initialElementHeight)) {\n that._initialElementHeight = currentHeight;\n }\n constrainedHeight = constrain({\n value: that._initialElementHeight + initialDelta,\n min: minHeight,\n max: maxHeight\n });\n if (hasRowsInPixels && delta < 0) {\n that._setRowsHeightInPercentages();\n }\n if (inPercentages(styleHeight)) {\n if (currentHeight + delta > parentHeight) {\n ratioValue = max(constrainedHeight, parentHeight);\n ratioTotalValue = min(constrainedHeight, parentHeight);\n } else {\n ratioValue = min(constrainedHeight, parentHeight);\n ratioTotalValue = max(constrainedHeight, parentHeight);\n }\n newHeight = toPercentages(calculatePercentageRatio(ratioValue, ratioTotalValue));\n } else {\n newHeight = toPixels(constrainedHeight);\n }\n element[0].style[HEIGHT] = newHeight;\n if (hasRowsInPixels && delta < 0) {\n that._setRowsHeightInPixels();\n }\n },\n _getMaxDimensionValue: function (dimension) {\n var that = this;\n var element = $(that.element);\n var dimensionLowercase = dimension.toLowerCase();\n var rtlModifier = that.options.rtl ? -1 : 1;\n var parent = $(that.element).parent();\n var parentElement = parent[0];\n var parentDimension = parent[dimensionLowercase]();\n var parentScrollOffset = rtlModifier * (dimension === WIDTH ? parent.scrollLeft() : parent.scrollTop());\n if (parentElement === element.closest(COLUMN)[0]) {\n if (parentElement.style[dimensionLowercase] === '' && !inPercentages(that.element.style[dimensionLowercase])) {\n return Infinity;\n } else {\n return parentDimension + parentScrollOffset;\n }\n } else {\n return parentDimension + parentScrollOffset;\n }\n },\n _setColumnsWidth: function () {\n var that = this;\n var element = $(that.element);\n var parentElement = element.parent()[0];\n var parentColumn = element.closest(COLUMN);\n var columns = parentColumn.closest(ROW).children();\n var columnsLength = columns.length;\n var i;\n function isWidthInPercentages(element) {\n var styleWidth = element.style.width;\n if (styleWidth !== '') {\n return inPercentages(styleWidth) ? true : false;\n } else {\n return $(element).hasClass(TABLE_CLASS) ? true : false;\n }\n }\n if (isWidthInPercentages(element[0]) && parentElement === parentColumn[0] && parentElement.style[WIDTH] === '') {\n for (i = 0; i < columnsLength; i++) {\n columns[i].style[WIDTH] = toPixels($(columns[i]).width());\n }\n }\n },\n _hasRowsInPixels: function () {\n var that = this;\n var rows = $(that.element).children(THEAD + COMMA + TBODY).children(ROW);\n for (var i = 0; i < rows.length; i++) {\n if (rows[i].style.height === '' || inPixels(rows[i].style.height)) {\n return true;\n }\n }\n return false;\n },\n _setRowsHeightInPercentages: function () {\n var that = this;\n var tableHead = $(that.element).children(THEAD);\n var tableHeadHeight = tableHead.length > 0 ? tableHead.height() : 0;\n var tableBody = $(that.element).children(TBODY);\n var tableBodyHeight = tableBody.height();\n var rows = $(that.element).children(THEAD + COMMA + TBODY).children(ROW);\n var length = rows.length;\n var currentRowsHeights = rows.map(function () {\n return outerHeight($(this));\n });\n var i;\n for (i = 0; i < length; i++) {\n rows[i].style[HEIGHT] = toPercentages(calculatePercentageRatio(currentRowsHeights[i], tableHeadHeight + tableBodyHeight));\n }\n },\n _setRowsHeightInPixels: function () {\n var that = this;\n var rows = $(that.element).children(THEAD + COMMA + TBODY).children(ROW);\n var length = rows.length;\n var currentRowsHeights = rows.map(function () {\n return outerHeight($(this));\n });\n var i;\n for (i = 0; i < length; i++) {\n rows[i].style[HEIGHT] = toPixels(currentRowsHeights[i]);\n }\n },\n showResizeHandles: function () {\n var that = this;\n that._initResizeHandles();\n that._showResizeHandles();\n },\n _initResizeHandles: function () {\n var that = this;\n var handles = that.handles;\n var options = that.options;\n var handleOptions = that.options.handles;\n var length = handleOptions.length;\n var i;\n if (handles && handles.length > 0) {\n return;\n }\n for (i = 0; i < length; i++) {\n that.handles.push(new TableResizeHandle(extend({\n appendTo: options.appendHandlesTo,\n resizableElement: that.element,\n rootElement: options.rootElement,\n rtl: options.rtl\n }, handleOptions[i])));\n }\n that._bindToResizeHandlesEvents();\n },\n _destroyResizeHandles: function () {\n var that = this;\n var length = that.handles ? that.handles.length : 0;\n for (var i = 0; i < length; i++) {\n that.handles[i].destroy();\n }\n },\n _showResizeHandles: function () {\n var that = this;\n var handles = that.handles || [];\n var length = handles.length;\n var i;\n for (i = 0; i < length; i++) {\n that.handles[i].show();\n }\n },\n _bindToResizeHandlesEvents: function () {\n var that = this;\n var handles = that.handles || [];\n var length = handles.length;\n var i;\n var handle;\n for (i = 0; i < length; i++) {\n handle = handles[i];\n handle.bind(DRAG_START, proxy(that._onResizeHandleDragStart, that));\n handle.bind(DRAG, proxy(that._onResizeHandleDrag, that));\n handle.bind(DRAG_END, proxy(that._onResizeHandleDragEnd, that));\n handle.bind(MOUSE_OVER, proxy(that._onResizeHandleMouseOver, that));\n handle.bind(MOUSE_OUT, proxy(that._onResizeHandleMouseOut, that));\n }\n },\n _onResizeHandleDragStart: function () {\n var that = this;\n var element = $(that.element);\n element.addClass(TABLE_RESIZING_CLASS);\n that._initialElementHeight = outerHeight(element);\n that._initialElementWidth = outerWidth(element);\n that._disableKeyboard();\n },\n _onResizeHandleDrag: function (e) {\n this.resize(e);\n },\n _onResizeHandleDragEnd: function () {\n var that = this;\n $(that.element).removeClass(TABLE_RESIZING_CLASS);\n that._enableKeyboard();\n },\n _enableKeyboard: function () {\n $(this.options.rootElement).off(KEY_DOWN + NS);\n },\n _disableKeyboard: function () {\n $(this.options.rootElement).on(KEY_DOWN + NS, function (e) {\n e.preventDefault();\n });\n }\n });\n var TableResizingFactory = Class.extend({\n create: function (editor) {\n var factory = this;\n $(editor.body).on(MOUSE_DOWN + NS, TABLE, function (e) {\n var eventTarget = e.target;\n var eventCurrentTarget = e.currentTarget;\n var tableResizing = editor.tableResizing;\n var element = tableResizing ? tableResizing.element : null;\n if (tableResizing) {\n if (element && eventCurrentTarget !== element) {\n if (contains(eventCurrentTarget, element) && element !== eventTarget && contains(element, eventTarget)) {\n return;\n } else {\n if (element !== eventTarget) {\n editor._destroyTableResizing();\n factory._initResizing(editor, eventCurrentTarget);\n }\n }\n }\n } else {\n factory._initResizing(editor, eventCurrentTarget);\n }\n editor._showTableResizeHandles();\n }).on(MOUSE_DOWN + NS, function (e) {\n var tableResizing = editor.tableResizing;\n var element = tableResizing ? tableResizing.element : null;\n var target = e.target;\n var isResizeHandleOrChild = $(target).hasClass(RESIZE_HANDLE_WRAPPER_CLASS) || $(target).parents(DOT + RESIZE_HANDLE_WRAPPER_CLASS).length > 0;\n if (tableResizing && element !== target && !contains(element, target) && !isResizeHandleOrChild) {\n editor._destroyTableResizing();\n }\n });\n },\n dispose: function (editor) {\n $(editor.body).off(NS);\n },\n _initResizing: function (editor, table) {\n if (!browser.msie && !browser.mozilla) {\n editor.tableResizing = new TableResizing(table, {\n appendHandlesTo: editor.body,\n rtl: kendo.support.isRtl(editor.element),\n rootElement: editor.body\n });\n }\n }\n });\n TableResizingFactory.current = new TableResizingFactory();\n TableResizing.create = function (editor) {\n TableResizingFactory.current.create(editor);\n };\n TableResizing.dispose = function (editor) {\n TableResizingFactory.current.dispose(editor);\n };\n extend(Editor, { TableResizing: TableResizing });\n }(window.kendo));\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('editor/table-wizard/table-wizard-command', ['editor/plugins/tables'], f);\n}(function () {\n (function ($, undefined) {\n var kendo = window.kendo, Editor = kendo.ui.editor, EditorUtils = Editor.EditorUtils, RangeUtils = Editor.RangeUtils, dom = Editor.Dom, registerTool = EditorUtils.registerTool, ToolTemplate = Editor.ToolTemplate, Command = Editor.Command;\n var tableFormatFinder = new Editor.BlockFormatFinder([{ tags: ['table'] }]);\n var cellsFormatFinder = new Editor.BlockFormatFinder([{\n tags: [\n 'td',\n 'th'\n ]\n }]);\n var reUnit = /([a-z]+|%)$/i;\n var COL = 'col';\n var ROW = 'row';\n var COLGROUP = 'colgroup';\n var SCOPE = 'scope';\n var COL_INDEX = 'col-index';\n var TH = 'th';\n var TD = 'td';\n var THEAD = 'thead';\n var HEADERS = 'headers';\n var TABLE = 'table';\n var TableWizardCommand = Command.extend({\n exec: function () {\n var cmd = this;\n var editor = cmd.editor;\n var range = cmd.range = cmd.lockRange();\n var selectedTable = cmd._sourceTable = !cmd.options.insertNewTable ? cmd._selectedTable(range) : undefined;\n var selectedCells = cmd._selectedTableCells = selectedTable ? cmd._selectedCells(range) : undefined;\n var options = {\n visible: false,\n messages: editor.options.messages,\n closeCallback: $.proxy(cmd.onDialogClose, cmd),\n table: cmd.parseTable(selectedTable, selectedCells),\n dialogOptions: editor.options.dialogOptions,\n isRtl: kendo.support.isRtl(editor.wrapper)\n };\n var dialog = new Editor.TableWizardDialog(options);\n dialog.open();\n },\n onDialogClose: function (data) {\n var cmd = this;\n cmd.releaseRange(cmd.range);\n if (data) {\n if (cmd.options.insertNewTable) {\n cmd.insertTable(cmd.createNewTable(data));\n } else {\n cmd.updateTable(data, cmd._sourceTable, cmd._selectedTableCells);\n }\n }\n },\n releaseRange: function (range) {\n var cmd = this;\n var doc = cmd.editor.document;\n dom.windowFromDocument(doc).focus();\n Command.fn.releaseRange.call(cmd, range);\n },\n insertTable: function (table) {\n var range = this.range;\n range.insertNode(table);\n range.collapse(true);\n this.editor.selectRange(range);\n this._ensureFocusableAfterTable(table);\n },\n _ensureFocusableAfterTable: function (table) {\n var siblingNodes = $(table).parent().contents();\n var lastSiblingIndex = siblingNodes.length - 1;\n var lastSibling = siblingNodes.get(lastSiblingIndex);\n while (lastSibling.nodeValue !== null && (lastSibling.nodeValue === ' ' || lastSibling.nodeValue === '')) {\n lastSiblingIndex -= 1;\n lastSibling = siblingNodes.get(lastSiblingIndex);\n }\n if (lastSibling === table) {\n dom.insertAfter(dom.createEmptyNode(this.editor.document, 'p'), table);\n }\n },\n updateTable: function (data, table, selectedCells) {\n var cmd = this;\n var tableRows = $(table.rows).toArray();\n var tableProp = data.tableProperties;\n var rows = tableProp.rows;\n var columns = tableProp.columns;\n var tHead = table.tHead;\n var last = function (collection) {\n return collection[collection.length - 1];\n };\n while (selectedCells.length > 1) {\n selectedCells.pop();\n }\n var lastSelectedRow = selectedCells.length ? last(selectedCells).parentNode : last(tableRows);\n var row, parent;\n cmd._deleteTableRows(tableRows, tableRows.length - rows);\n if (tableRows.length < rows) {\n var rowIndex = $(lastSelectedRow).index();\n var cellsLength = lastSelectedRow.cells.length;\n var newRowsCount = rows - tableRows.length;\n parent = lastSelectedRow.parentNode;\n while (newRowsCount) {\n row = parent.insertRow(rowIndex + 1);\n cmd._insertCells(cellsLength - row.cells.length, row);\n newRowsCount--;\n }\n }\n if (tableRows[0].cells.length > columns) {\n $(tableRows).each(function (i, row) {\n while (row.cells.length > columns) {\n row.deleteCell(-1);\n }\n });\n }\n if (tableRows[0].cells.length < columns) {\n var cellIndex = $(last(selectedCells) || last(lastSelectedRow.cells)).index();\n $(tableRows).each(function (i, row) {\n cmd._insertCells(columns - row.cells.length, row, cellIndex + 1);\n });\n }\n cmd._updateTableProperties(table, tableProp);\n var cellProp = data.cellProperties;\n if (selectedCells[0]) {\n dom.attr(selectedCells[0], { id: cellProp.id || null });\n }\n (cellProp.selectAllCells ? $(tableRows).children() : $(selectedCells)).each(function (i, cell) {\n cmd._updateCellProperties(cell, cellProp);\n });\n cmd._updateCaption(table, tableProp);\n dom.reMapTableColumns(table, COL_INDEX);\n if (tHead) {\n cmd._updateHeadersWithThead(table, data);\n } else {\n cmd._updateHeadersNoThead(table, data);\n }\n cmd._updateHeaderAssociates(table, tableProp);\n dom.clearTableMappings(table, COL_INDEX);\n },\n _isHeadingRow: function (row) {\n return dom.is(row.cells[0], TH) && dom.is(row.parentNode, THEAD);\n },\n _isHeadingCell: function (cell) {\n return dom.is(cell, TH);\n },\n cellsWithHeadersAssociated: function (table) {\n var cells = $(table.rows).children();\n var headingIds = [];\n var checkHeader = function (header) {\n return headingIds.indexOf(header) > -1;\n };\n cells.each(function (c, cell) {\n if (cell.id && dom.is(cell, TH)) {\n headingIds.push(cell.id);\n }\n });\n var associatedCells = cells.filter(function (c, cell) {\n var headersAttr = cell.getAttribute(HEADERS);\n var headersArray;\n if (headersAttr && !dom.is(cell, TH)) {\n headersArray = headersAttr.split(' ');\n if (headersArray && headersArray.length > 0) {\n return headersArray.some(checkHeader);\n }\n }\n return false;\n });\n return !!associatedCells.length;\n },\n _insertCells: function (count, row, index) {\n index = isNaN(index) ? -1 : index;\n for (var i = 0, cell; i < count; i++) {\n cell = row.insertCell(index);\n cell.innerHTML = ' ';\n }\n },\n _deleteTableRows: function (rows, count) {\n for (var i = 0, row, rowParent; i < count; i++) {\n row = rows.pop();\n rowParent = row.parentNode;\n rowParent.removeChild(row);\n if (!rowParent.rows.length) {\n dom.remove(rowParent);\n }\n }\n },\n createNewTable: function (data) {\n var cmd = this;\n var doc = cmd.editor.document;\n var tableProp = data.tableProperties;\n var table = dom.create(doc, TABLE);\n var rowIndex = 0;\n var thead;\n cmd._updateTableProperties(table, tableProp);\n cmd._updateCaption(table, tableProp);\n if (tableProp.headerRows && tableProp.headerRows > 0) {\n thead = table.createTHead();\n cmd._createTableRows(data, thead, rowIndex, true);\n rowIndex += tableProp.headerRows;\n }\n var tbody = table.createTBody();\n cmd._createTableRows(data, tbody, rowIndex, false);\n dom.reMapTableColumns(table, COL_INDEX);\n if (tableProp.cellsWithHeaders === 'ids') {\n dom.associateWithIds(table);\n } else if (tableProp.cellsWithHeaders === 'scope') {\n cmd._addScopes(table, tableProp.headerRows, tableProp.headerColumns);\n }\n dom.clearTableMappings(table, COL_INDEX);\n return table;\n },\n _createTableRows: function (data, container, initialIndex, headerRows) {\n var cmd = this;\n var tableProp = data.tableProperties;\n var cellProp = data.cellProperties;\n var columns = tableProp.columns;\n var rows = headerRows ? tableProp.headerRows : tableProp.rows;\n var cellPropToAll = cellProp.selectAllCells;\n var headerColumns = tableProp.headerColumns;\n for (var r = initialIndex, row; r < rows; r++) {\n row = container.insertRow();\n for (var c = 0, cell; c < columns; c++) {\n if (headerRows || headerColumns > c) {\n cell = document.createElement(TH);\n } else {\n cell = document.createElement(TD);\n }\n row.appendChild(cell);\n cell.innerHTML = ' ';\n if (r === 0 && c === 0 && cellProp.id) {\n cell.id = cellProp.id;\n }\n cmd._updateCellProperties(cell, cellPropToAll || r === 0 && c === 0 ? cellProp : {});\n }\n }\n },\n _updateTableProperties: function (table, data) {\n var style = this._getStylesData(data);\n dom.attr(table, {\n cellSpacing: data.cellSpacing || null,\n cellPadding: data.cellPadding || null,\n className: data.className || null,\n id: data.id || null,\n summary: data.summary || null,\n style: style || null\n });\n $(table).addClass('k-table');\n },\n _updateCellProperties: function (cell, data) {\n var style = this._getStylesData(data);\n style.padding = data.cellPadding || null;\n style.margin = data.cellMargin || null;\n dom.attr(cell, {\n style: style || null,\n className: data.className || null\n });\n },\n _updateCaption: function (table, data) {\n if (table.caption && !data.captionContent) {\n table.deleteCaption();\n } else if (data.captionContent) {\n var caption = table.createCaption();\n caption.innerHTML = data.captionContent;\n var alignment = this._getAlignmentData(data.captionAlignment);\n dom.attr(caption, {\n style: {\n textAlign: alignment.textAlign,\n verticalAlign: alignment.verticalAlign\n }\n });\n }\n },\n _updateHeadersNoThead: function (table, data) {\n var cmd = this;\n var tableProp = data.tableProperties;\n var rows = table.rows;\n var row, cells, cell, i, j;\n for (i = 0; i < rows.length; i++) {\n row = rows[i];\n cells = row.cells;\n for (j = 0; j < cells.length; j++) {\n cell = cells[j];\n if (!cmd._isHeadingCell(cell) && (i < tableProp.headerRows || tableProp.headerColumns > cell.getAttribute(COL_INDEX))) {\n dom.changeTag(cell, TH, false);\n } else if (cmd._isHeadingCell(cell) && i >= tableProp.headerRows && tableProp.headerColumns <= cell.getAttribute(COL_INDEX)) {\n dom.changeTag(cell, TD, false);\n }\n }\n }\n },\n _updateHeadersWithThead: function (table, data) {\n var cmd = this;\n var tableProp = data.tableProperties;\n var thead = table.tHead;\n var rowIndex = 0;\n var tbody = table.tBodies[0];\n var row, cell, i;\n if (!tbody) {\n tbody = table.createTBody();\n }\n if (tableProp.headerRows && tableProp.headerRows > 0) {\n if (!thead) {\n thead = table.createTHead();\n }\n while (thead.rows.length < tableProp.headerRows) {\n thead.appendChild(tbody.rows[0]);\n }\n while (thead.rows.length > tableProp.headerRows) {\n tbody.appendChild(thead.rows[0]);\n }\n cmd._swapToHeaderCells(thead);\n } else if (thead) {\n while (thead.rows.length > 0) {\n tbody.appendChild(thead.rows[thead.rows.length - 1]);\n }\n table.deleteTHead();\n }\n while (tbody.rows.length > rowIndex) {\n row = tbody.rows[rowIndex];\n for (i = 0; i < row.cells.length; i++) {\n cell = row.cells[i];\n if (cmd._isHeadingCell(cell) && tableProp.headerColumns <= cell.getAttribute(COL_INDEX)) {\n dom.changeTag(cell, TD, false);\n } else if (!cmd._isHeadingCell(cell) && tableProp.headerColumns > cell.getAttribute(COL_INDEX)) {\n dom.changeTag(cell, TH, false);\n }\n }\n rowIndex += 1;\n }\n },\n _updateHeaderAssociates: function (table, tableProp) {\n var cmd = this;\n if (tableProp.cellsWithHeaders === 'ids') {\n if (!cmd.cellsWithHeadersAssociated(table)) {\n cmd._removeScopes(table);\n }\n dom.associateWithIds(table);\n } else if (tableProp.cellsWithHeaders === 'scope') {\n if (cmd.cellsWithHeadersAssociated(table)) {\n cmd._removeAssociates(table);\n }\n cmd._addScopes(table, tableProp.headerRows, tableProp.headerColumns);\n } else {\n if (cmd.cellsWithHeadersAssociated(table)) {\n cmd._removeAssociates(table);\n } else {\n cmd._removeScopes(table);\n }\n }\n },\n _addScopes: function (table, headerRows, headerCols) {\n var rows = table.rows;\n var i, j, row, cell;\n for (i = 0; i < rows.length; i++) {\n row = rows[i];\n for (j = 0; j < row.cells.length; j++) {\n cell = row.cells[j];\n if (i < headerRows) {\n cell.setAttribute(SCOPE, COL);\n } else if (cell.getAttribute(COL_INDEX) < headerCols) {\n cell.setAttribute(SCOPE, ROW);\n }\n }\n }\n },\n _removeScopes: function (table) {\n $(table).find(TH).removeAttr(SCOPE);\n $(table).find(COL).remove();\n $(table).find(COLGROUP).remove();\n },\n _removeAssociates: function (table) {\n $(table).find('th, td').removeAttr('id headers');\n },\n _swapToHeaderCells: function (thead) {\n var tds = $(thead).find('td');\n var swapCell = function (index, cell) {\n dom.changeTag(cell, TH, false);\n };\n tds.each(swapCell);\n },\n _getStylesData: function (data) {\n var alignment = this._getAlignmentData(data.alignment);\n var whiteSpace = 'wrapText' in data ? data.wrapText ? '' : 'nowrap' : null;\n return {\n width: data.width ? data.width + data.widthUnit : null,\n height: data.height ? data.height + data.heightUnit : null,\n textAlign: alignment.textAlign,\n verticalAlign: alignment.verticalAlign,\n backgroundColor: data.bgColor || '',\n borderWidth: data.borderWidth,\n borderStyle: data.borderStyle,\n borderColor: data.borderColor || '',\n borderCollapse: data.collapseBorders ? 'collapse' : null,\n whiteSpace: whiteSpace\n };\n },\n _getAlignmentData: function (alignment) {\n var textAlign = '';\n var verticalAlign = textAlign;\n if (alignment) {\n if (alignment.indexOf(' ') != -1) {\n var align = alignment.split(' ');\n textAlign = align[0];\n verticalAlign = align[1];\n } else {\n textAlign = alignment;\n }\n }\n return {\n textAlign: textAlign,\n verticalAlign: verticalAlign\n };\n },\n parseTable: function (table, selectedCells) {\n if (!table) {\n return {\n tableProperties: {},\n selectedCells: []\n };\n }\n var cmd = this;\n var tStyle = table.style;\n var rows = table.rows;\n var caption = table.caption;\n var captionClone = $(caption ? caption.cloneNode(true) : undefined);\n captionClone.find('.k-marker').remove();\n var cssClass = table.className;\n cssClass = cssClass.replace(/^k-table\\s|\\sk-table$/, '');\n cssClass = cssClass.replace(/\\sk-table\\s/, ' ');\n cssClass = cssClass.replace(/^k-table$/, '');\n var tableAlignment = cmd._getAlignment(table, true);\n var captionAlignment = caption ? cmd._getAlignment(caption) : undefined;\n var numberOfHeaderRows = dom._getNumberOfHeaderRows(table);\n var cellsWithHeaders;\n if (cmd.cellsWithHeadersAssociated(table)) {\n cellsWithHeaders = 'ids';\n } else if ($(table).find('th[scope]').length > 0) {\n cellsWithHeaders = 'scope';\n } else {\n cellsWithHeaders = 'none';\n }\n dom.reMapTableColumns(table, COL_INDEX);\n var numberOfColumns = dom._getNumberOfColumns(table);\n var numberOfHeaderColumns = dom._getNumberOfHeaderColumns(table, numberOfHeaderRows);\n dom.clearTableMappings(table, COL_INDEX);\n var tableJson = {\n tableProperties: {\n width: tStyle.width || table.width ? parseFloat(tStyle.width || table.width) : null,\n height: tStyle.height || table.height ? parseFloat(tStyle.height || table.height) : null,\n columns: numberOfColumns,\n rows: rows.length,\n widthUnit: cmd._getUnit(tStyle.width),\n heightUnit: cmd._getUnit(tStyle.height),\n cellSpacing: table.cellSpacing,\n cellPadding: table.cellPadding,\n alignment: tableAlignment.textAlign,\n bgColor: tStyle.backgroundColor || table.bgColor,\n className: cssClass,\n id: table.id,\n borderWidth: tStyle.borderWidth || table.border,\n borderColor: tStyle.borderColor,\n borderStyle: tStyle.borderStyle || '',\n collapseBorders: !!tStyle.borderCollapse,\n summary: table.summary,\n captionContent: caption ? captionClone.html() : '',\n captionAlignment: caption && captionAlignment.textAlign ? captionAlignment.textAlign + ' ' + captionAlignment.verticalAlign : '',\n headerRows: numberOfHeaderRows,\n headerColumns: numberOfHeaderColumns,\n cellsWithHeaders: cellsWithHeaders\n },\n selectedCells: []\n };\n tableJson.rows = cmd.parseTableRows(rows, selectedCells, tableJson);\n return tableJson;\n },\n parseTableRows: function (rows, selectedCells, tableJson) {\n var cmd = this;\n var data = [], row, rowData, cells, cell, cellData;\n for (var i = 0; i < rows.length; i++) {\n row = rows[i];\n rowData = { cells: [] };\n cells = row.cells;\n data.push(rowData);\n for (var j = 0; j < cells.length; j++) {\n cell = cells[j];\n cellData = cmd.parseCell(cell);\n if ($.inArray(cell, selectedCells) != -1) {\n tableJson.selectedCells.push(cellData);\n }\n rowData.cells.push(cellData);\n }\n }\n return data;\n },\n parseCell: function (cell) {\n var cmd = this;\n var cStyle = cell.style;\n var alignment = cmd._getAlignment(cell);\n alignment = alignment.textAlign ? alignment.textAlign + ' ' + alignment.verticalAlign : '';\n var data = {\n width: cStyle.width || cell.width ? parseFloat(cStyle.width || cell.width) : null,\n height: cStyle.height || cell.height ? parseFloat(cStyle.height || cell.height) : null,\n widthUnit: cmd._getUnit(cStyle.width),\n heightUnit: cmd._getUnit(cStyle.height),\n cellMargin: cStyle.margin,\n cellPadding: cStyle.padding,\n alignment: alignment,\n bgColor: cStyle.backgroundColor || cell.bgColor,\n className: cell.className,\n id: cell.id,\n borderWidth: cStyle.borderWidth || cell.border,\n borderColor: cStyle.borderColor,\n borderStyle: cStyle.borderStyle,\n wrapText: cStyle.whiteSpace != 'nowrap'\n };\n return data;\n },\n _getAlignment: function (element, horizontalOnly) {\n var style = element.style;\n var hAlign = style.textAlign || element.align || '';\n if (horizontalOnly) {\n return { textAlign: hAlign };\n }\n var vAlign = style.verticalAlign || element.vAlign || '';\n if (hAlign && vAlign) {\n return {\n textAlign: hAlign,\n verticalAlign: vAlign\n };\n }\n if (!hAlign && vAlign) {\n return {\n textAlign: 'left',\n verticalAlign: vAlign\n };\n }\n if (hAlign && !vAlign) {\n return {\n textAlign: hAlign,\n verticalAlign: 'top'\n };\n }\n return {\n textAlign: '',\n verticalAlign: ''\n };\n },\n _getUnit: function (value) {\n var unit = (value || '').match(reUnit);\n return unit ? unit[0] : 'px';\n },\n _selectedTable: function (range) {\n var nodes = dom.filterBy(RangeUtils.nodes(range), dom.htmlIndentSpace, true);\n return tableFormatFinder.findSuitable(nodes)[0];\n },\n _selectedCells: function (range) {\n var nodes = dom.filterBy(RangeUtils.nodes(range), dom.htmlIndentSpace, true);\n return cellsFormatFinder.findSuitable(nodes);\n }\n });\n var TableWizardTool = Editor.Tool.extend({\n command: function (options) {\n options.insertNewTable = this.options.insertNewTable;\n return new TableWizardCommand(options);\n }\n });\n var TableWizardEditTool = TableWizardTool.extend({\n update: function (ui, nodes) {\n var isFormatted = !tableFormatFinder.isFormatted(nodes);\n if (isFormatted === true) {\n ui.parent().addClass('k-hidden k-state-disabled');\n ui.attr('disabled', 'disabled');\n ui.addClass('k-state-disabled');\n } else {\n ui.parent().removeClass('k-hidden k-state-disabled');\n ui.removeAttr('disabled');\n ui.removeClass('k-state-disabled');\n }\n }\n });\n kendo.ui.editor.TableWizardTool = TableWizardTool;\n kendo.ui.editor.TableWizardCommand = TableWizardCommand;\n registerTool('tableWizard', new TableWizardEditTool({\n command: TableWizardCommand,\n insertNewTable: false,\n template: new ToolTemplate({\n template: EditorUtils.buttonTemplate,\n title: 'Table Wizard'\n })\n }));\n }(window.kendo.jQuery));\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('editor/table-wizard/table-wizard-dialog', [\n 'editor/table-wizard/table-wizard-command',\n 'kendo.tabstrip'\n ], f);\n}(function () {\n (function ($, undefined) {\n var kendo = window.kendo, numericTextBoxSettings = {\n format: '0',\n min: 0\n }, units = [\n 'px',\n 'em'\n ], borderStyles = [\n 'solid',\n 'dotted',\n 'dashed',\n 'double',\n 'groove',\n 'ridge',\n 'inset',\n 'outset',\n 'initial',\n 'inherit',\n 'none',\n 'hidden'\n ];\n var DEFAULT_NUMBER_OF_COLS_AND_ROWS = 4;\n var tableAlignmentDropDownSettings = {\n dataSource: [\n {\n className: 'k-icon k-i-table-align-middle-left',\n value: 'left'\n },\n {\n className: 'k-icon k-i-table-align-middle-center',\n value: 'center'\n },\n {\n className: 'k-icon k-i-table-align-middle-right',\n value: 'right'\n },\n {\n className: 'k-icon k-i-align-remove',\n value: ''\n }\n ],\n dataTextField: 'className',\n dataValueField: 'value',\n template: '',\n valueTemplate: ''\n };\n var cellAlignmentDropDownSettings = {\n dataSource: [\n {\n className: 'k-icon k-i-table-align-top-left',\n value: 'left top'\n },\n {\n className: 'k-icon k-i-table-align-top-center',\n value: 'center top'\n },\n {\n className: 'k-icon k-i-table-align-top-right',\n value: 'right top'\n },\n {\n className: 'k-icon k-i-table-align-middle-left',\n value: 'left middle'\n },\n {\n className: 'k-icon k-i-table-align-middle-center',\n value: 'center middle'\n },\n {\n className: 'k-icon k-i-table-align-middle-right',\n value: 'right middle'\n },\n {\n className: 'k-icon k-i-table-align-bottom-left',\n value: 'left bottom'\n },\n {\n className: 'k-icon k-i-table-align-bottom-center',\n value: 'center bottom'\n },\n {\n className: 'k-icon k-i-table-align-bottom-right',\n value: 'right bottom'\n },\n {\n className: 'k-icon k-i-align-remove',\n value: ''\n }\n ],\n dataTextField: 'className',\n dataValueField: 'value',\n template: '',\n valueTemplate: ''\n };\n var accessibilityAlignmentDropDownSettings = {\n dataSource: [\n {\n className: 'k-icon k-i-table-align-top-left',\n value: 'left top'\n },\n {\n className: 'k-icon k-i-table-align-top-center',\n value: 'center top'\n },\n {\n className: 'k-icon k-i-table-align-top-right',\n value: 'right top'\n },\n {\n className: 'k-icon k-i-table-align-bottom-left',\n value: 'left bottom'\n },\n {\n className: 'k-icon k-i-table-align-bottom-center',\n value: 'center bottom'\n },\n {\n className: 'k-icon k-i-table-align-bottom-right',\n value: 'right bottom'\n },\n {\n className: 'k-icon k-i-align-remove',\n value: ''\n }\n ],\n dataTextField: 'className',\n dataValueField: 'value',\n template: '',\n valueTemplate: ''\n };\n var dialogTemplate = '
        ' + '
        ' + '
        ' + '
          ' + '
        • #= messages.tableTab #
        • ' + '
        • #= messages.cellTab #
        • ' + '
        • #= messages.accessibilityTab #
        • ' + '
        ' + '
        ' + '
        ' + '' + '
        ' + '
        ' + '' + '' + '
        ' + '
        ' + '' + '
        ' + '
        ' + '' + '' + '
        ' + '
        ' + '' + '
        ' + '
        ' + '' + '
        ' + '
        ' + '' + '
        ' + '
        ' + '' + '
        ' + '
        ' + '' + '
        ' + '
        ' + '' + '
        ' + '
        ' + '' + '
        ' + '
        ' + '' + '
        ' + '
        ' + '' + '
        ' + '
        ' + '' + '
        ' + '
        ' + '' + '
        ' + '
        ' + '' + '
        ' + '
        ' + '' + '
        ' + '
        ' + '' + '
        ' + '
        ' + '' + '
        ' + '
        ' + '' + '
        ' + '
        ' + '' + '
        ' + '
        ' + '' + '' + '
        ' + '
        ' + '' + '
        ' + '
        ' + '' + '
        ' + '
         
        ' + '
        ' + '' + '' + '
        ' + '
        ' + '
        ' + '
        ' + '' + '' + '
        ' + '
        ' + '' + '
        ' + '
        ' + '' + '' + '
        ' + '
        ' + '' + '
        ' + '
        ' + '' + '' + '
        ' + '
        ' + '' + '
        ' + '
        ' + '' + '
        ' + '
        ' + '' + '
        ' + '
        ' + '' + '
        ' + '
        ' + '' + '
        ' + '
        ' + '' + '
        ' + '
        ' + '' + '
        ' + '
        ' + '' + '
        ' + '
        ' + '' + '
        ' + '
        ' + '' + '
        ' + '
        ' + '' + '
        ' + '
        ' + '' + '
        ' + '
        ' + '' + '
        ' + '
        ' + '' + '' + '
        ' + '
        ' + '' + '
        ' + '
        ' + '' + '
        ' + '
         
        ' + '
        ' + '' + '' + '
        ' + '
        ' + '
        ' + '
        ' + '' + '
        ' + '
        ' + '' + '
        ' + '
        ' + '' + '
        ' + '
        ' + '' + '
        ' + '
        ' + '' + '
        ' + '
        ' + '' + '
        ' + '
        ' + '' + '
        ' + '
        ' + '' + '
        ' + '
        ' + '' + '
        ' + '
        ' + '' + '
        ' + '
        ' + '' + '
        ' + '
        ' + '' + '
        ' + '
        ' + '
        ' + '
        ' + '' + '' + '
        ' + '
        ' + '
        ';\n var TableWizardDialog = kendo.Class.extend({\n init: function (options) {\n this.options = options;\n },\n open: function () {\n var that = this, options = that.options, dialogOptions = options.dialogOptions, tableData = options.table, dialog, messages = options.messages, isIE = kendo.support.browser.msie;\n function close(e) {\n e.preventDefault();\n that.destroy();\n dialog.destroy();\n }\n function okHandler(e) {\n that.collectDialogValues(tableData);\n close(e);\n if (that.change) {\n that.change();\n }\n options.closeCallback(tableData);\n }\n function closeHandler(e) {\n close(e);\n options.closeCallback();\n }\n dialogOptions.close = closeHandler;\n dialogOptions.title = messages.tableWizard;\n dialogOptions.visible = options.visible;\n dialog = $(that._dialogTemplate(messages)).appendTo(document.body).kendoWindow(dialogOptions).closest('.k-window').toggleClass('k-rtl', options.isRtl).end().find('.k-dialog-ok').click(okHandler).end().find('.k-dialog-close').click(closeHandler).end().data('kendoWindow');\n var element = dialog.element;\n that._initTabStripComponent(element);\n that._initTableViewComponents(element, tableData);\n that._initCellViewComponents(element, tableData);\n that._initAccessibilityViewComponents(element, tableData);\n dialog.center();\n dialog.open();\n if (isIE) {\n var dialogHeight = element.closest('.k-window').height();\n element.css('max-height', dialogHeight);\n }\n },\n _initTabStripComponent: function (element) {\n var components = this.components = {};\n components.tabStrip = element.find('#k-table-wizard-tabs').kendoTabStrip({ animation: false }).data('kendoTabStrip');\n },\n collectDialogValues: function () {\n var that = this;\n var data = that.options.table;\n that._collectTableViewValues(data);\n that._collectCellViewValues(data);\n that._collectAccessibilityViewValues(data);\n },\n _collectTableViewValues: function (tableData) {\n var tableView = this.components.tableView;\n var tableProperties = tableData.tableProperties;\n tableProperties.width = tableView.width.value();\n tableProperties.widthUnit = tableView.widthUnit.value();\n tableProperties.height = tableView.height.value();\n tableProperties.columns = tableView.columns.value();\n tableProperties.rows = tableView.rows.value();\n tableProperties.heightUnit = tableView.heightUnit.value();\n tableProperties.cellSpacing = tableView.cellSpacing.value();\n tableProperties.cellPadding = tableView.cellPadding.value();\n tableProperties.alignment = tableView.alignment.value();\n tableProperties.bgColor = tableView.bgColor.value();\n tableProperties.className = tableView.className.value;\n tableProperties.id = tableView.id.value;\n tableProperties.borderWidth = tableView.borderWidth.value();\n tableProperties.borderColor = tableView.borderColor.value();\n tableProperties.borderStyle = tableView.borderStyle.value();\n tableProperties.collapseBorders = tableView.collapseBorders.checked;\n },\n _collectCellViewValues: function (table) {\n var cellData = table.cellProperties = {};\n var cellView = this.components.cellView;\n cellData.selectAllCells = cellView.selectAllCells.checked;\n cellData.width = cellView.width.value();\n cellData.widthUnit = cellView.widthUnit.value();\n cellData.height = cellView.height.value();\n cellData.heightUnit = cellView.heightUnit.value();\n cellData.cellMargin = cellView.cellMargin.value();\n cellData.cellPadding = cellView.cellPadding.value();\n cellData.alignment = cellView.alignment.value();\n cellData.bgColor = cellView.bgColor.value();\n cellData.className = cellView.className.value;\n cellData.id = cellView.id.value;\n cellData.borderWidth = cellView.borderWidth.value();\n cellData.borderColor = cellView.borderColor.value();\n cellData.borderStyle = cellView.borderStyle.value();\n cellData.wrapText = cellView.wrapText.checked;\n if (!cellData.width) {\n cellData.selectAllCells = true;\n cellData.width = 100 / table.tableProperties.columns;\n cellData.widthUnit = '%';\n }\n },\n _collectAccessibilityViewValues: function (table) {\n var tableProperties = table.tableProperties;\n var accessibilityView = this.components.accessibilityView;\n tableProperties.captionContent = accessibilityView.captionContent.value;\n tableProperties.captionAlignment = accessibilityView.captionAlignment.value();\n tableProperties.summary = accessibilityView.summary.value;\n tableProperties.cellsWithHeaders = accessibilityView.cellsWithHeaders.value();\n tableProperties.headerRows = accessibilityView.headerRows.value();\n tableProperties.headerColumns = accessibilityView.headerColumns.value();\n },\n _addUnit: function (units, value) {\n if (value && $.inArray(value, units) == -1) {\n units.push(value);\n }\n },\n _initTableViewComponents: function (element, table) {\n var that = this;\n var components = that.components;\n var tableView = components.tableView = {};\n var tableProperties = table.tableProperties = table.tableProperties || {};\n tableProperties.borderStyle = tableProperties.borderStyle || '';\n var onColumnsNumberChange = function (args) {\n var accessibilityView = that.components.accessibilityView;\n var headerColumnsNumeric = accessibilityView.headerColumns;\n var currentNumberOfColumnsHeaders = headerColumnsNumeric.value();\n var numberOfColumns = args.sender.value();\n if (numberOfColumns < currentNumberOfColumnsHeaders) {\n headerColumnsNumeric.value(numberOfColumns);\n }\n headerColumnsNumeric.max(numberOfColumns);\n };\n var onRowsNumberChange = function (args) {\n var accessibilityView = that.components.accessibilityView;\n var headerRowsNumeric = accessibilityView.headerRows;\n var currentNumberOfRowHeaders = headerRowsNumeric.value();\n var numberOfRows = args.sender.value();\n if (numberOfRows < currentNumberOfRowHeaders) {\n headerRowsNumeric.value(numberOfRows);\n }\n headerRowsNumeric.max(numberOfRows);\n };\n that._addUnit(units, tableProperties.widthUnit);\n that._addUnit(units, tableProperties.heightUnit);\n that._initNumericTextbox(element.find('#k-editor-table-width'), 'width', tableProperties, tableView);\n that._initNumericTextbox(element.find('#k-editor-table-height'), 'height', tableProperties, tableView);\n that._initNumericTextbox(element.find('#k-editor-table-columns'), 'columns', tableProperties, tableView, {\n min: 1,\n value: DEFAULT_NUMBER_OF_COLS_AND_ROWS,\n change: onColumnsNumberChange\n });\n that._initNumericTextbox(element.find('#k-editor-table-rows'), 'rows', tableProperties, tableView, {\n min: 1,\n value: DEFAULT_NUMBER_OF_COLS_AND_ROWS,\n change: onRowsNumberChange\n });\n that._initDropDownList(element.find('#k-editor-table-width-type'), 'widthUnit', tableProperties, tableView, units);\n that._initDropDownList(element.find('#k-editor-table-height-type'), 'heightUnit', tableProperties, tableView, units);\n that._initNumericTextbox(element.find('#k-editor-table-cell-spacing'), 'cellSpacing', tableProperties, tableView);\n that._initNumericTextbox(element.find('#k-editor-table-cell-padding'), 'cellPadding', tableProperties, tableView);\n that._initTableAlignmentDropDown(element.find('#k-editor-table-alignment'), tableProperties);\n that._initColorPicker(element.find('#k-editor-table-bg'), 'bgColor', tableProperties, tableView);\n that._initInput(element.find('#k-editor-css-class'), 'className', tableProperties, tableView);\n that._initInput(element.find('#k-editor-id'), 'id', tableProperties, tableView);\n that._initNumericTextbox(element.find('#k-editor-border-width'), 'borderWidth', tableProperties, tableView);\n that._initColorPicker(element.find('#k-editor-border-color'), 'borderColor', tableProperties, tableView);\n that._initDropDownList(element.find('#k-editor-border-style'), 'borderStyle', tableProperties, tableView, borderStyles);\n that._initCheckbox(element.find('#k-editor-collapse-borders'), 'collapseBorders', tableProperties, tableView);\n },\n _initCellViewComponents: function (element, table) {\n var components = this.components;\n var cellView = components.cellView = {};\n table.selectedCells = table.selectedCells = table.selectedCells || [];\n var cellProperties = table.selectedCells[0] || {\n borderStyle: '',\n wrapText: true\n };\n this._addUnit(units, cellProperties.widthUnit);\n this._addUnit(units, cellProperties.heightUnit);\n this._initCheckbox(element.find('#k-editor-selectAllCells'), 'selectAllCells', table.tableProperties, cellView);\n this._initNumericTextbox(element.find('#k-editor-cell-width'), 'width', cellProperties, cellView);\n this._initNumericTextbox(element.find('#k-editor-cell-height'), 'height', cellProperties, cellView);\n this._initDropDownList(element.find('#k-editor-cell-width-type'), 'widthUnit', cellProperties, cellView, units);\n this._initDropDownList(element.find('#k-editor-cell-height-type'), 'heightUnit', cellProperties, cellView, units);\n this._initNumericTextbox(element.find('#k-editor-table-cell-margin'), 'cellMargin', cellProperties, cellView);\n this._initNumericTextbox(element.find('#k-editor-table-cells-padding'), 'cellPadding', cellProperties, cellView);\n this._initCellAlignmentDropDown(element.find('#k-editor-cell-alignment'), cellProperties);\n this._initColorPicker(element.find('#k-editor-cell-bg'), 'bgColor', cellProperties, cellView);\n this._initInput(element.find('#k-editor-cell-css-class'), 'className', cellProperties, cellView);\n this._initInput(element.find('#k-editor-cell-id'), 'id', cellProperties, cellView);\n this._initNumericTextbox(element.find('#k-editor-cell-border-width'), 'borderWidth', cellProperties, cellView);\n this._initColorPicker(element.find('#k-editor-cell-border-color'), 'borderColor', cellProperties, cellView);\n this._initDropDownList(element.find('#k-editor-cell-border-style'), 'borderStyle', cellProperties, cellView, borderStyles);\n this._initCheckbox(element.find('#k-editor-wrap-text'), 'wrapText', cellProperties, cellView);\n },\n _initAccessibilityViewComponents: function (element, table) {\n var components = this.components;\n var accessibilityView = components.accessibilityView = {};\n var tableProperties = table.tableProperties;\n this._initInput(element.find('#k-editor-table-caption'), 'captionContent', tableProperties, accessibilityView);\n this._initAccessibilityAlignmentDropDown(element.find('#k-editor-accessibility-alignment'), tableProperties);\n this._initInput(element.find('#k-editor-accessibility-summary'), 'summary', tableProperties, accessibilityView);\n this._initAssociationDropDown(element.find('#k-editor-cells-headers'), 'cellsWithHeaders', { valuePrimitive: true }, tableProperties, accessibilityView);\n this._initNumericTextbox(element.find('#k-editor-table-header-rows'), 'headerRows', tableProperties, accessibilityView, { max: tableProperties.rows || DEFAULT_NUMBER_OF_COLS_AND_ROWS });\n this._initNumericTextbox(element.find('#k-editor-table-header-columns'), 'headerColumns', tableProperties, accessibilityView, { max: tableProperties.columns || DEFAULT_NUMBER_OF_COLS_AND_ROWS });\n },\n _initNumericTextbox: function (element, property, data, storage, settings) {\n var component = storage[property] = element.kendoNumericTextBox(settings ? $.extend({}, numericTextBoxSettings, settings) : numericTextBoxSettings).data('kendoNumericTextBox');\n if (property in data) {\n component.value(parseInt(data[property], 10));\n }\n },\n _initDropDownList: function (element, property, data, storage, dataSource) {\n var component = storage[property] = element.kendoDropDownList({ dataSource: dataSource }).data('kendoDropDownList');\n this._setComponentValue(component, data, property);\n },\n _initTableAlignmentDropDown: function (element, data) {\n var messages = this.options.messages;\n var tableView = this.components.tableView;\n var dataSource = tableAlignmentDropDownSettings.dataSource;\n dataSource[0].tooltip = messages.alignLeft;\n dataSource[1].tooltip = messages.alignCenter;\n dataSource[2].tooltip = messages.alignRight;\n dataSource[3].tooltip = messages.alignRemove;\n this._initAlignmentDropDown(element, tableAlignmentDropDownSettings, 'alignment', data, tableView);\n },\n _initCellAlignmentDropDown: function (element, data) {\n var messages = this.options.messages;\n var cellView = this.components.cellView;\n var dataSource = cellAlignmentDropDownSettings.dataSource;\n dataSource[0].tooltip = messages.alignLeftTop;\n dataSource[1].tooltip = messages.alignCenterTop;\n dataSource[2].tooltip = messages.alignRightTop;\n dataSource[3].tooltip = messages.alignLeftMiddle;\n dataSource[4].tooltip = messages.alignCenterMiddle;\n dataSource[5].tooltip = messages.alignRightMiddle;\n dataSource[6].tooltip = messages.alignLeftBottom;\n dataSource[7].tooltip = messages.alignCenterBottom;\n dataSource[8].tooltip = messages.alignRightBottom;\n dataSource[9].tooltip = messages.alignRemove;\n this._initAlignmentDropDown(element, cellAlignmentDropDownSettings, 'alignment', data, cellView);\n },\n _initAccessibilityAlignmentDropDown: function (element, data) {\n var messages = this.options.messages;\n var accessibilityView = this.components.accessibilityView;\n var dataSource = accessibilityAlignmentDropDownSettings.dataSource;\n dataSource[0].tooltip = messages.alignLeftTop;\n dataSource[1].tooltip = messages.alignCenterTop;\n dataSource[2].tooltip = messages.alignRightTop;\n dataSource[3].tooltip = messages.alignLeftBottom;\n dataSource[4].tooltip = messages.alignCenterBottom;\n dataSource[5].tooltip = messages.alignRightBottom;\n dataSource[6].tooltip = messages.alignRemove;\n this._initAlignmentDropDown(element, accessibilityAlignmentDropDownSettings, 'captionAlignment', data, accessibilityView);\n },\n _initAlignmentDropDown: function (element, settings, name, data, storage) {\n var component = storage[name] = element.kendoDropDownList(settings).data('kendoDropDownList');\n component.list.addClass('k-align').css('width', '110px');\n this._setComponentValue(component, data, name);\n },\n _initAssociationDropDown: function (element, name, settings, data, storage) {\n var component = storage[name] = element.kendoDropDownList(settings).data('kendoDropDownList');\n this._setComponentValue(component, data, name);\n },\n _setComponentValue: function (component, data, property) {\n if (property in data) {\n component.value(data[property]);\n }\n },\n _initColorPicker: function (element, property, data, storage) {\n var component = storage[property] = element.kendoColorPicker({\n buttons: false,\n clearButton: true\n }).data('kendoColorPicker');\n if (data[property]) {\n component.value(data[property]);\n }\n },\n _initInput: function (element, property, data, storage) {\n var component = storage[property] = element.get(0);\n if (property in data) {\n component.value = data[property];\n }\n },\n _initCheckbox: function (element, property, data, storage) {\n var component = storage[property] = element.get(0);\n if (property in data) {\n component.checked = data[property];\n }\n },\n destroy: function () {\n this._destroyComponents(this.components.tableView);\n this._destroyComponents(this.components.cellView);\n this._destroyComponents(this.components.accessibilityView);\n this._destroyComponents(this.components);\n delete this.components;\n },\n _destroyComponents: function (components) {\n for (var widget in components) {\n if (components[widget].destroy) {\n components[widget].destroy();\n }\n delete components[widget];\n }\n },\n _dialogTemplate: function (messages) {\n return kendo.template(dialogTemplate)({ messages: messages });\n }\n });\n kendo.ui.editor.TableWizardDialog = TableWizardDialog;\n }(window.kendo.jQuery));\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('kendo.editor', [\n 'kendo.combobox',\n 'kendo.dropdownlist',\n 'kendo.resizable',\n 'kendo.window',\n 'kendo.colorpicker',\n 'kendo.imagebrowser',\n 'kendo.numerictextbox',\n 'util/undoredostack',\n 'editor/main',\n 'editor/dom',\n 'editor/serializer',\n 'editor/range',\n 'editor/command',\n 'editor/components',\n 'editor/toolbar',\n 'editor/immutables',\n 'editor/plugins/viewhtml',\n 'editor/plugins/link',\n 'editor/plugins/lists',\n 'editor/plugins/formatting',\n 'editor/plugins/image',\n 'editor/plugins/import',\n 'editor/plugins/insert',\n 'editor/plugins/export',\n 'editor/plugins/indent',\n 'editor/plugins/linebreak',\n 'editor/plugins/format',\n 'editor/plugins/inlineformat',\n 'editor/plugins/formatblock',\n 'editor/plugins/file',\n 'editor/plugins/tables',\n 'editor/plugins/clipboard',\n 'editor/plugins/keyboard',\n 'editor/plugins/exportpdf',\n 'editor/plugins/print',\n 'editor/plugins/formatpainter',\n 'editor/resizing/column-resizing',\n 'editor/resizing/row-resizing',\n 'editor/resizing/table-resizing',\n 'editor/resizing/table-resize-handle',\n 'editor/table-wizard/table-wizard-command',\n 'editor/table-wizard/table-wizard-dialog'\n ], f);\n}(function () {\n var __meta__ = {\n id: 'editor',\n name: 'Editor',\n category: 'web',\n description: 'Rich text editor component',\n depends: [\n 'combobox',\n 'dropdownlist',\n 'window',\n 'colorpicker'\n ],\n features: [\n {\n id: 'editor-imagebrowser',\n name: 'Image Browser',\n description: 'Support for uploading and inserting images',\n depends: ['imagebrowser']\n },\n {\n id: 'editor-resizable',\n name: 'Resize handle',\n description: 'Support for resizing the content area via a resize handle',\n depends: ['resizable']\n },\n {\n id: 'editor-tablewizard',\n name: 'Table wizard dialog',\n description: 'Support for table properties configuration',\n depends: [\n 'tabstrip',\n 'button',\n 'numerictextbox'\n ]\n },\n {\n id: 'editor-pdf-export',\n name: 'PDF export',\n description: 'Export Editor content as PDF',\n depends: [\n 'pdf',\n 'drawing'\n ]\n }\n ]\n };\n return window.kendo;\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));"]} \ No newline at end of file diff --git a/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/base/browser/ui/codicons/codicon/codicon.ttf b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/base/browser/ui/codicons/codicon/codicon.ttf new file mode 100644 index 0000000..82acc89 Binary files /dev/null and b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/base/browser/ui/codicons/codicon/codicon.ttf differ diff --git a/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/base/worker/workerMain.js b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/base/worker/workerMain.js index eb2e6c4..0ac3ec6 100644 --- a/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/base/worker/workerMain.js +++ b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/base/worker/workerMain.js @@ -1,8 +1,160 @@ /*!----------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. - * Version: 0.9.0(630109944f54bcdfc2dbaaff5f090c0843af6c66) + * Version: 0.21.2(67b5a8116f3c0bace36b180e524e05bb750a16d8) * Released under the MIT license * https://github.com/Microsoft/vscode/blob/master/LICENSE.txt *-----------------------------------------------------------*/ -(function(){var e=["exports","require","vs/base/common/winjs.base","vs/editor/common/core/position","vs/base/common/platform","vs/editor/common/core/range","vs/base/common/uri","vs/editor/common/core/uint","vs/base/common/errors","vs/base/common/event","vs/base/common/lifecycle","vs/base/common/functional","vs/base/common/diff/diff","vs/base/common/cancellation","vs/base/common/types","vs/base/common/callbackList","vs/base/common/diff/diffChange","vs/base/common/map","vs/base/common/async","vs/editor/common/viewModel/prefixSumComputer","vs/base/common/strings","vs/base/common/keyCodes","vs/editor/common/core/selection","vs/editor/common/core/token","vs/editor/common/model/mirrorModel","vs/editor/common/core/characterClassifier","vs/editor/common/diff/diffComputer","vs/editor/common/model/wordHelper","vs/editor/common/modes/linkComputer","vs/editor/common/modes/supports/inplaceReplaceSupport","vs/editor/common/standalone/standaloneBase","vs/base/common/worker/simpleWorker","vs/base/common/winjs.base.raw","vs/editor/common/services/editorSimpleWorker"],t=function(t){for(var n=[],r=0,i=t.length;r=0)||"undefined"!=typeof process&&"win32"===process.platform},t}();e.Environment=t}(i||(i={}));!function(e){var t;!function(e){e[e.LoaderAvailable=1]="LoaderAvailable",e[e.BeginLoadingScript=10]="BeginLoadingScript",e[e.EndLoadingScriptOK=11]="EndLoadingScriptOK",e[e.EndLoadingScriptError=12]="EndLoadingScriptError",e[e.BeginInvokeFactory=21]="BeginInvokeFactory",e[e.EndInvokeFactory=22]="EndInvokeFactory",e[e.NodeBeginEvaluatingScript=31]="NodeBeginEvaluatingScript",e[e.NodeEndEvaluatingScript=32]="NodeEndEvaluatingScript",e[e.NodeBeginNativeRequire=33]="NodeBeginNativeRequire",e[e.NodeEndNativeRequire=34]="NodeEndNativeRequire"}(t=e.LoaderEventType||(e.LoaderEventType={}));var n=function(){return function(e,t,n){this.type=e,this.detail=t,this.timestamp=n}}();e.LoaderEvent=n;var r=function(){function r(e){this._events=[new n(t.LoaderAvailable,"",e)]}return r.prototype.record=function(t,r){this._events.push(new n(t,r,e.Utilities.getHighPerformanceTimestamp()))},r.prototype.getEvents=function(){return this._events},r}();e.LoaderEventRecorder=r;var i=function(){function e(){}return e.prototype.record=function(e,t){},e.prototype.getEvents=function(){return[]},e}();i.INSTANCE=new i,e.NullLoaderEventRecorder=i}(i||(i={}));!function(e){var t=function(){function t(){}return t.fileUriToFilePath=function(e,t){if(t=decodeURI(t),e){if(/^file:\/\/\//.test(t))return t.substr(8);if(/^file:\/\//.test(t))return t.substr(5)}else if(/^file:\/\//.test(t))return t.substr(7);return t},t.startsWith=function(e,t){return e.length>=t.length&&e.substr(0,t.length)===t},t.endsWith=function(e,t){return e.length>=t.length&&e.substr(e.length-t.length)===t},t.containsQueryString=function(e){return/^[^\#]*\?/gi.test(e)},t.isAbsolutePath=function(e){return/^((http:\/\/)|(https:\/\/)|(file:\/\/)|(\/))/.test(e)},t.forEachProperty=function(e,t){if(e){var n=void 0;for(n in e)e.hasOwnProperty(n)&&t(n,e[n])}},t.isEmpty=function(e){var n=!0;return t.forEachProperty(e,function(){n=!1}),n},t.recursiveClone=function(e){if(!e||"object"!=typeof e)return e;var n=Array.isArray(e)?[]:{};return t.forEachProperty(e,function(e,r){n[e]=r&&"object"==typeof r?t.recursiveClone(r):r}),n},t.generateAnonymousModule=function(){return"===anonymous"+t.NEXT_ANONYMOUS_ID+++"==="},t.isAnonymousModule=function(e){return/^===anonymous/.test(e)},t.getHighPerformanceTimestamp=function(){return this.PERFORMANCE_NOW_PROBED||(this.PERFORMANCE_NOW_PROBED=!0,this.HAS_PERFORMANCE_NOW=e.global.performance&&"function"==typeof e.global.performance.now),this.HAS_PERFORMANCE_NOW?e.global.performance.now():Date.now()},t}();t.NEXT_ANONYMOUS_ID=1,t.PERFORMANCE_NOW_PROBED=!1,t.HAS_PERFORMANCE_NOW=!1,e.Utilities=t}(i||(i={}));!function(e){var t=function(){function t(){}return t.validateConfigurationOptions=function(t,n){return"string"!=typeof(n=n||{}).baseUrl&&(n.baseUrl=""),"boolean"!=typeof n.isBuild&&(n.isBuild=!1),"object"!=typeof n.paths&&(n.paths={}),"object"!=typeof n.config&&(n.config={}),void 0===n.catchError&&(n.catchError=t),"string"!=typeof n.urlArgs&&(n.urlArgs=""),"function"!=typeof n.onError&&(n.onError=function(e){return"load"===e.errorCode?(console.error('Loading "'+e.moduleId+'" failed'),console.error("Detail: ",e.detail),e.detail&&e.detail.stack&&console.error(e.detail.stack),console.error("Here are the modules that depend on it:"),void console.error(e.neededBy)):"factory"===e.errorCode?(console.error('The factory method of "'+e.moduleId+'" has thrown an exception'),console.error(e.detail),void(e.detail&&e.detail.stack&&console.error(e.detail.stack))):void 0}),"object"==typeof n.ignoreDuplicateModules&&Array.isArray(n.ignoreDuplicateModules)||(n.ignoreDuplicateModules=[]),n.baseUrl.length>0&&(e.Utilities.endsWith(n.baseUrl,"/")||(n.baseUrl+="/")),Array.isArray(n.nodeModules)||(n.nodeModules=[]),("number"!=typeof n.nodeCachedDataWriteDelay||n.nodeCachedDataWriteDelay<0)&&(n.nodeCachedDataWriteDelay=7e3),"function"!=typeof n.onNodeCachedData&&(n.onNodeCachedData=function(e,t){e&&("cachedDataRejected"===e.errorCode?console.warn("Rejected cached data from file: "+e.path):"unlink"===e.errorCode||"writeFile"===e.errorCode?(console.error("Problems writing cached data file: "+e.path),console.error(e.detail)):console.error(e))}),n},t.mergeConfigurationOptions=function(n,r,i){void 0===r&&(r=null),void 0===i&&(i=null);var o=e.Utilities.recursiveClone(i||{});return e.Utilities.forEachProperty(r,function(t,n){"ignoreDuplicateModules"===t&&void 0!==o.ignoreDuplicateModules?o.ignoreDuplicateModules=o.ignoreDuplicateModules.concat(n):"paths"===t&&void 0!==o.paths?e.Utilities.forEachProperty(n,function(e,t){return o.paths[e]=t}):"config"===t&&void 0!==o.config?e.Utilities.forEachProperty(n,function(e,t){return o.config[e]=t}):o[t]=e.Utilities.recursiveClone(n)}),t.validateConfigurationOptions(n,o)},t}();e.ConfigurationOptionsUtil=t;var n=function(){function n(e,n){if(this._env=e,this.options=t.mergeConfigurationOptions(this._env.isWebWorker,n),this._createIgnoreDuplicateModulesMap(),this._createNodeModulesMap(),this._createSortedPathsRules(),""===this.options.baseUrl){if(this._env.isNode&&this.options.nodeRequire&&this.options.nodeRequire.main&&this.options.nodeRequire.main.filename){var r=this.options.nodeRequire.main.filename,i=Math.max(r.lastIndexOf("/"),r.lastIndexOf("\\"));this.options.baseUrl=r.substring(0,i+1)}if(this._env.isNode&&this.options.nodeMain){var r=this.options.nodeMain,i=Math.max(r.lastIndexOf("/"),r.lastIndexOf("\\"));this.options.baseUrl=r.substring(0,i+1)}}}return n.prototype._createIgnoreDuplicateModulesMap=function(){this.ignoreDuplicateModulesMap={};for(var e=0;e=0){var r=t.resolveModule(e.substr(0,n)),s=t.resolveModule(e.substr(n+1)),u=this._moduleIdProvider.getModuleId(r+"!"+s),a=this._moduleIdProvider.getModuleId(r);return new o(u,a,s)}return new i(this._moduleIdProvider.getModuleId(t.resolveModule(e)))},s.prototype._normalizeDependencies=function(e,t){for(var n=[],r=0,i=0,o=e.length;i0;){var a=u.shift(),l=this._modules2[a];l&&(s=l.onDependencyError(n)||s);var c=this._inverseDependencies2[a];if(c)for(var i=0,o=c.length;i0;){var u=s.shift().dependencies;if(u)for(var i=0,o=u.length;i=i.length)n._onLoadError(t,r);else{var u=i[o],a=n.getRecorder();if(n._config.isBuild()&&"empty:"===u)return n._buildInfoPath[t]=u,n.defineModule(n._moduleIdProvider.getStrModuleId(t),[],null,null,null),void n._onLoad(t);a.record(e.LoaderEventType.BeginLoadingScript,u),n._scriptLoader.load(n,u,function(){n._config.isBuild()&&(n._buildInfoPath[t]=u),a.record(e.LoaderEventType.EndLoadingScriptOK,u),n._onLoad(t)},function(t){a.record(e.LoaderEventType.EndLoadingScriptError,u),s(t)})}};s(null)}},s.prototype._loadPluginDependency=function(e,n){var r=this;if(!this._modules2[n.id]&&!this._knownModules2[n.id]){this._knownModules2[n.id]=!0;var i=function(e){r.defineModule(r._moduleIdProvider.getStrModuleId(n.id),[],e,null,null)};i.error=function(e){r._config.onError(r._createLoadError(n.id,e))},e.load(n.pluginParam,this._createRequire(t.ROOT),i,this._config.getOptionsLiteral())}},s.prototype._resolve=function(e){for(var t=this,n=e.dependencies,r=0,s=n.length;r \n")),e.unresolvedDependenciesCount--}else if(this._inverseDependencies2[u.id]=this._inverseDependencies2[u.id]||[],this._inverseDependencies2[u.id].push(e.id),u instanceof o){var c=this._modules2[u.pluginId];if(c&&c.isComplete()){this._loadPluginDependency(c.exports,u);continue}var f=this._inversePluginDependencies2.get(u.pluginId);f||(f=[],this._inversePluginDependencies2.set(u.pluginId,f)),f.push(u),this._loadModule(u.pluginId)}else this._loadModule(u.id)}else e.unresolvedDependenciesCount--;else e.unresolvedDependenciesCount--;else e.exportsPassedIn=!0,e.unresolvedDependenciesCount--}0===e.unresolvedDependenciesCount&&this._onModuleComplete(e)},s.prototype._onModuleComplete=function(e){var t=this,n=this.getRecorder();if(!e.isComplete()){for(var r=e.dependencies,o=[],s=0,u=r.length;s0||this.m_modifiedCount>0)&&this.m_changes.push(new n.DiffChange(this.m_originalStart,this.m_originalCount,this.m_modifiedStart,this.m_modifiedCount)),this.m_originalCount=0,this.m_modifiedCount=0,this.m_originalStart=Number.MAX_VALUE,this.m_modifiedStart=Number.MAX_VALUE},e.prototype.AddOriginalElement=function(e,t){this.m_originalStart=Math.min(this.m_originalStart,e),this.m_modifiedStart=Math.min(this.m_modifiedStart,t),this.m_originalCount++},e.prototype.AddModifiedElement=function(e,t){this.m_originalStart=Math.min(this.m_originalStart,e),this.m_modifiedStart=Math.min(this.m_modifiedStart,t),this.m_modifiedCount++},e.prototype.getChanges=function(){return(this.m_originalCount>0||this.m_modifiedCount>0)&&this.MarkNextChange(),this.m_changes},e.prototype.getReverseChanges=function(){return(this.m_originalCount>0||this.m_modifiedCount>0)&&this.MarkNextChange(),this.m_changes.reverse(),this.m_changes},e}(),u=Object.prototype.hasOwnProperty,a=function(){function e(e,t,n){void 0===n&&(n=null),this.OriginalSequence=e,this.ModifiedSequence=t,this.ContinueProcessingPredicate=n,this.m_originalIds=[],this.m_modifiedIds=[],this.m_forwardHistory=[],this.m_reverseHistory=[],this.ComputeUniqueIdentifiers()}return e.prototype.ComputeUniqueIdentifiers=function(){var e=this.OriginalSequence.getLength(),t=this.ModifiedSequence.getLength();this.m_originalIds=new Array(e),this.m_modifiedIds=new Array(t);var n,r={},i=1;for(n=0;n=e&&o>=r&&this.ElementsAreEqual(t,o);)t--,o--;if(e>t||r>o){var u=void 0;return r<=o?(i.Assert(e===t+1,"originalStart should only be one more than originalEnd"),u=[new n.DiffChange(e,0,r,o-r+1)]):e<=t?(i.Assert(r===o+1,"modifiedStart should only be one more than modifiedEnd"),u=[new n.DiffChange(e,t-e+1,r,0)]):(i.Assert(e===t+1,"originalStart should only be one more than originalEnd"),i.Assert(r===o+1,"modifiedStart should only be one more than modifiedEnd"),u=[]),u}var a=[0],l=[0],c=this.ComputeRecursionPoint(e,t,r,o,a,l,s),f=a[0],h=l[0];if(null!==c)return c;if(!s[0]){var d=this.ComputeDiffRecursive(e,f,r,h,s),p=[];return p=s[0]?[new n.DiffChange(f+1,t-(f+1)+1,h+1,o-(h+1)+1)]:this.ComputeDiffRecursive(f+1,t,h+1,o,s),this.ConcatenateChanges(d,p)}return[new n.DiffChange(e,t-e+1,r,o-r+1)]},e.prototype.WALKTRACE=function(e,t,r,i,o,u,a,l,c,f,h,d,p,m,_,g,v,y){var b,C=null,E=null,S=new s,N=t,L=r,P=p[0]-g[0]-i,A=Number.MIN_VALUE,M=this.m_forwardHistory.length-1;do{(b=P+e)===N||b=0&&(e=(c=this.m_forwardHistory[M])[0],N=1,L=c.length-1)}while(--M>=-1);if(C=S.getReverseChanges(),y[0]){var w=p[0]+1,D=g[0]+1;if(null!==C&&C.length>0){var I=C[C.length-1];w=Math.max(w,I.getOriginalEnd()),D=Math.max(D,I.getModifiedEnd())}E=[new n.DiffChange(w,d-w+1,D,_-D+1)]}else{S=new s,N=u,L=a,P=p[0]-g[0]-l,A=Number.MAX_VALUE,M=v?this.m_reverseHistory.length-1:this.m_reverseHistory.length-2;do{(b=P+o)===N||b=f[b+1]?(m=(h=f[b+1]-1)-P-l,h>A&&S.MarkNextChange(),A=h+1,S.AddOriginalElement(h+1,m+1),P=b+1-o):(m=(h=f[b-1])-P-l,h>A&&S.MarkNextChange(),A=h,S.AddModifiedElement(h+1,m+1),P=b-1-o),M>=0&&(o=(f=this.m_reverseHistory[M])[0],N=1,L=f.length-1)}while(--M>=-1);E=S.getChanges()}return this.ConcatenateChanges(C,E)},e.prototype.ComputeRecursionPoint=function(e,t,r,i,s,u,a){var l,c,f,h=0,d=0,p=0,m=0;e--,r--,s[0]=0,u[0]=0,this.m_forwardHistory=[],this.m_reverseHistory=[];var _=t-e+(i-r),g=_+1,v=new Array(g),y=new Array(g),b=i-r,C=t-e,E=e-r,S=t-i,N=(C-b)%2==0;v[b]=e,y[C]=t,a[0]=!1;var L,P;for(f=1;f<=_/2+1;f++){var A=0,M=0;for(h=this.ClipDiagonalBound(b-f,f,b,g),d=this.ClipDiagonalBound(b+f,f,b,g),L=h;L<=d;L+=2){for(c=(l=L===h||LA+M&&(A=l,M=c),!N&&Math.abs(L-C)<=f-1&&l>=y[L])return s[0]=l,u[0]=c,P<=y[L]&&f<=1448?this.WALKTRACE(b,h,d,E,C,p,m,S,v,y,l,t,s,c,i,u,N,a):null}var w=(A-e+(M-r)-f)/2;if(null!==this.ContinueProcessingPredicate&&!this.ContinueProcessingPredicate(A,this.OriginalSequence,w))return a[0]=!0,s[0]=A,u[0]=M,w>0&&f<=1448?this.WALKTRACE(b,h,d,E,C,p,m,S,v,y,l,t,s,c,i,u,N,a):(e++,r++,[new n.DiffChange(e,t-e+1,r,i-r+1)]);for(p=this.ClipDiagonalBound(C-f,f,C,g),m=this.ClipDiagonalBound(C+f,f,C,g),L=p;L<=m;L+=2){for(c=(l=L===p||L=y[L+1]?y[L+1]-1:y[L-1])-(L-C)-S,P=l;l>e&&c>r&&this.ElementsAreEqual(l,c);)l--,c--;if(y[L]=l,N&&Math.abs(L-b)<=f&&l<=v[L])return s[0]=l,u[0]=c,P>=v[L]&&f<=1448?this.WALKTRACE(b,h,d,E,C,p,m,S,v,y,l,t,s,c,i,u,N,a):null}if(f<=1447){var D=new Array(d-h+2);D[0]=b-h+1,o.Copy(v,h,D,1,d-h+1),this.m_forwardHistory.push(D),(D=new Array(m-p+2))[0]=C-p+1,o.Copy(y,p,D,1,m-p+1),this.m_reverseHistory.push(D)}}return this.WALKTRACE(b,h,d,E,C,p,m,S,v,y,l,t,s,c,i,u,N,a)},e.prototype.ConcatenateChanges=function(e,t){var n=[],r=null;return 0===e.length||0===t.length?t.length>0?t:e:this.ChangesOverlap(e[e.length-1],t[0],n)?(r=new Array(e.length+t.length-1),o.Copy(e,0,r,0,e.length-1),r[e.length-1]=n[0],o.Copy(t,1,r,e.length,t.length-1),r):(r=new Array(e.length+t.length),o.Copy(e,0,r,0,e.length),o.Copy(t,0,r,e.length,t.length),r)},e.prototype.ChangesOverlap=function(e,t,r){if(i.Assert(e.originalStart<=t.originalStart,"Left change is not less than or equal to right change"),i.Assert(e.modifiedStart<=t.modifiedStart,"Left change is not less than or equal to right change"),e.originalStart+e.originalLength>=t.originalStart||e.modifiedStart+e.modifiedLength>=t.modifiedStart){var o=e.originalStart,s=e.originalLength,u=e.modifiedStart,a=e.modifiedLength;return e.originalStart+e.originalLength>=t.originalStart&&(s=t.originalStart+t.originalLength-e.originalStart),e.modifiedStart+e.modifiedLength>=t.modifiedStart&&(a=t.modifiedStart+t.modifiedLength-e.modifiedStart),r[0]=new n.DiffChange(o,s,u,a),!0}return r[0]=null,!1},e.prototype.ClipDiagonalBound=function(e,t,n,r){if(e>=0&&e>>0)>>>0},t.createKeybinding=function(e,t){if(0===e)return null;var r=(65535&e)>>>0,i=(4294901760&e)>>>16;return 0!==i?new l(n(r,t),n(i,t)):n(r,t)},t.createSimpleKeybinding=n;!function(e){e[e.Simple=1]="Simple",e[e.Chord=2]="Chord"}(t.KeybindingType||(t.KeybindingType={}));var a=function(){function e(e,t,n,r,i){this.type=1,this.ctrlKey=e,this.shiftKey=t,this.altKey=n,this.metaKey=r,this.keyCode=i}return e.prototype.equals=function(e){return 1===e.type&&(this.ctrlKey===e.ctrlKey&&this.shiftKey===e.shiftKey&&this.altKey===e.altKey&&this.metaKey===e.metaKey&&this.keyCode===e.keyCode)},e.prototype.isModifierKey=function(){return 0===this.keyCode||5===this.keyCode||57===this.keyCode||6===this.keyCode||4===this.keyCode},e.prototype.isDuplicateModifierCase=function(){return this.ctrlKey&&5===this.keyCode||this.shiftKey&&4===this.keyCode||this.altKey&&6===this.keyCode||this.metaKey&&57===this.keyCode},e}();t.SimpleKeybinding=a;var l=function(){return function(e,t){this.type=2,this.firstPart=e,this.chordPart=t}}();t.ChordKeybinding=l;var c=function(){return function(e,t,n,r,i,o){this.ctrlKey=e,this.shiftKey=t,this.altKey=n,this.metaKey=r,this.keyLabel=i,this.keyAriaLabel=o}}();t.ResolvedKeybindingPart=c;var f=function(){return function(){}}();t.ResolvedKeybinding=f}),r(e[10],t([1,0,11]),function(e,t,n){"use strict";function r(e){for(var t=[],n=1;n=0,r=d.indexOf("Macintosh")>=0,i=d.indexOf("Linux")>=0,u=!0,l=a=navigator.language}var p;!function(e){e[e.Web=0]="Web",e[e.Mac=1]="Mac",e[e.Linux=2]="Linux",e[e.Windows=3]="Windows"}(p=t.Platform||(t.Platform={}));var m=p.Web;s&&(r?m=p.Mac:n?m=p.Windows:i&&(m=p.Linux)),t.isWindows=n,t.isMacintosh=r,t.isLinux=i,t.isRootUser=o,t.isNative=s,t.isWeb=u,t.platform=m,t.language=l,t.locale=a;var _="object"==typeof self?self:global;t.globals=_,t.hasWebWorkerSupport=function(){return void 0!==_.Worker},t.setTimeout=_.setTimeout.bind(_),t.clearTimeout=_.clearTimeout.bind(_),t.setInterval=_.setInterval.bind(_),t.clearInterval=_.clearInterval.bind(_);!function(e){e[e.Windows=1]="Windows",e[e.Macintosh=2]="Macintosh",e[e.Linux=3]="Linux"}(t.OperatingSystem||(t.OperatingSystem={})),t.OS=r?2:n?1:3;!function(e){e[e.Unknown=0]="Unknown",e[e.Disabled=1]="Disabled",e[e.Enabled=2]="Enabled"}(t.AccessibilitySupport||(t.AccessibilitySupport={}))}),r(e[14],t([1,0]),function(e,t){"use strict";function n(e){return Array.isArray?Array.isArray(e):!(!e||typeof e.length!==a.number||e.constructor!==Array)}function r(e){return typeof e===a.string||e instanceof String}function i(e){return!(typeof e!==a.object||null===e||Array.isArray(e)||e instanceof RegExp||e instanceof Date)}function o(e){return typeof e===a.undefined}function s(e){return typeof e===a.function}function u(e,t){if(r(t)){if(typeof e!==t)throw new Error("argument does not match constraint: typeof "+t)}else if(s(t)){if(e instanceof t)return;if(e&&e.constructor===t)return;if(1===t.length&&!0===t.call(void 0,e))return;throw new Error("argument does not match one of these constraints: arg instanceof constraint, arg.constructor === constraint, nor constraint(arg) === true")}}Object.defineProperty(t,"__esModule",{value:!0});var a={number:"number",string:"string",undefined:"undefined",object:"object",function:"function"};t.isArray=n,t.isString=r,t.isStringArray=function(e){return n(e)&&e.every(function(e){return r(e)})},t.isObject=i,t.isNumber=function(e){return(typeof e===a.number||e instanceof Number)&&!isNaN(e)},t.isBoolean=function(e){return!0===e||!1===e},t.isUndefined=o,t.isUndefinedOrNull=function(e){return o(e)||null===e};var l=Object.prototype.hasOwnProperty;t.isEmptyObject=function(e){if(!i(e))return!1;for(var t in e)if(l.call(e,t))return!1;return!0},t.isFunction=s,t.areFunctions=function(){for(var e=[],t=0;t0&&e.every(s)},t.validateConstraints=function(e,t){for(var n=Math.min(e.length,t.length),r=0;rthis.limit;)this.trim()},e.prototype.serialize=function(){var e={entries:[]};return this.map.forEach(function(t){e.entries.push({key:t.key,value:t.value})}),e},Object.defineProperty(e.prototype,"size",{get:function(){return this.map.size},enumerable:!0,configurable:!0}),e.prototype.set=function(e,t){if(this.map.has(e))return!1;var n={key:e,value:t};return this.push(n),this.size>this.limit&&this.trim(),!0},e.prototype.get=function(e){var t=this.map.get(e);return t?t.value:null},e.prototype.getOrSet=function(e,t){var n=this.get(e);return n||(this.set(e,t),t)},e.prototype.delete=function(e){var t=this.map.get(e);return t?(this.map.delete(e),t.next?t.next.prev=t.prev:this.head=t.prev,t.prev?t.prev.next=t.next:this.tail=t.next,t.value):null},e.prototype.has=function(e){return this.map.has(e)},e.prototype.clear=function(){this.map.clear(),this.head=null,this.tail=null},e.prototype.push=function(e){this.head&&(e.prev=this.head,this.head.next=e),this.tail||(this.tail=e),this.head=e,this.map.set(e.key,e)},e.prototype.trim=function(){if(this.tail)if(this.ratiot?1:0}function u(e){return e>=97&&e<=122}function a(e){return e>=65&&e<=90}function l(e){return u(e)||a(e)}function c(e,t,n){if(void 0===n&&(n=e.length),"string"!=typeof e||"string"!=typeof t)return!1;for(var r=0;r=11904&&e<=55215||e>=63744&&e<=64255||e>=65281&&e<=65374}Object.defineProperty(t,"__esModule",{value:!0}),t.empty="",t.isFalsyOrWhitespace=function(e){return!e||"string"!=typeof e||0===e.trim().length},t.pad=function(e,t,n){void 0===n&&(n="0");for(var r=""+e,i=[r],o=r.length;o=t.length?e:t[r]})},t.escape=function(e){return e.replace(/[<|>|&]/g,function(e){switch(e){case"<":return"<";case">":return">";case"&":return"&";default:return e}})},t.escapeRegExpCharacters=r,t.trim=function(e,t){return void 0===t&&(t=" "),o(i(e,t),t)},t.ltrim=i,t.rtrim=o,t.convertSimple2RegExpPattern=function(e){return e.replace(/[\-\\\{\}\+\?\|\^\$\.\,\[\]\(\)\#\s]/g,"\\$&").replace(/[\*]/g,".*")},t.stripWildcards=function(e){return e.replace(/\*/g,"")},t.startsWith=function(e,t){if(e.length0?e.indexOf(t,n)===n:0===n&&e===t},t.indexOfIgnoreCase=function(e,t,n){void 0===n&&(n=0);var i=e.indexOf(t,n);return i<0&&(n>0&&(e=e.substr(n)),t=r(t),i=e.search(new RegExp(t,"i"))),i},t.createRegExp=function(e,t,n){if(void 0===n&&(n={}),!e)throw new Error("Cannot create regex from empty string");t||(e=r(e)),n.wholeWord&&(/\B/.test(e.charAt(0))||(e="\\b"+e),/\B/.test(e.charAt(e.length-1))||(e+="\\b"));var i="";return n.global&&(i+="g"),n.matchCase||(i+="i"),n.multiline&&(i+="m"),new RegExp(e,i)},t.regExpLeadsToEndlessLoop=function(e){return"^"!==e.source&&"^$"!==e.source&&"$"!==e.source&&e.exec("")&&0===e.lastIndex},t.canNormalize="function"==typeof"".normalize;var p=/[^\u0000-\u0080]/,m=new n.BoundedMap(1e4);t.normalizeNFC=function(e){if(!t.canNormalize||!e)return e;var n=m.get(e);if(n)return n;var r;return r=p.test(e)?e.normalize("NFC"):e,m.set(e,r),r},t.firstNonWhitespaceIndex=function(e){for(var t=0,n=e.length;t=0;n--){var r=e.charCodeAt(n);if(32!==r&&9!==r)return n}return-1},t.compare=s,t.compareIgnoreCase=function(e,t){for(var n=Math.min(e.length,t.length),r=0;rt.length?1:0},t.equalsIgnoreCase=function(e,t){return(e?e.length:0)===(t?t.length:0)&&c(e,t)},t.beginsWithIgnoreCase=function(e,t){var n=t.length;return!(t.length>e.length)&&c(e,t,n)},t.commonPrefixLength=function(e,t){var n,r=Math.min(e.length,t.length);for(n=0;n0;){if(f(e,i,n,t,0,r))return r;r-=1,i+=1}return 0},t.isHighSurrogate=function(e){return 55296<=e&&e<=56319},t.isLowSurrogate=function(e){return 56320<=e&&e<=57343};var _=/(?:[\u05BE\u05C0\u05C3\u05C6\u05D0-\u05F4\u0608\u060B\u060D\u061B-\u064A\u066D-\u066F\u0671-\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u0710\u0712-\u072F\u074D-\u07A5\u07B1-\u07EA\u07F4\u07F5\u07FA-\u0815\u081A\u0824\u0828\u0830-\u0858\u085E-\u08BD\u200F\uFB1D\uFB1F-\uFB28\uFB2A-\uFD3D\uFD50-\uFDFC\uFE70-\uFEFC]|\uD802[\uDC00-\uDD1B\uDD20-\uDE00\uDE10-\uDE33\uDE40-\uDEE4\uDEEB-\uDF35\uDF40-\uDFFF]|\uD803[\uDC00-\uDCFF]|\uD83A[\uDC00-\uDCCF\uDD00-\uDD43\uDD50-\uDFFF]|\uD83B[\uDC00-\uDEBB])/;t.containsRTL=function(e){return _.test(e)};var g=/(?:[\u231A\u231B\u23F0\u23F3\u2600-\u27BF\u2B50\u2B55]|\uD83C[\uDDE6-\uDDFF\uDF00-\uDFFF]|\uD83D[\uDC00-\uDE4F\uDE80-\uDEF8]|\uD83E[\uDD00-\uDDE6])/;t.containsEmoji=function(e){return g.test(e)};var v=/^[\t\n\r\x20-\x7E]*$/;t.isBasicASCII=function(e){return v.test(e)},t.containsFullWidthCharacter=function(e){for(var t=0,n=e.length;tn)return 0;var i,o,s=[],u=[];for(i=0;i=0;o--)if((i+=r[o].length)>n){r.splice(0,o);break}return r.join(t.empty).replace(/^\s/,t.empty)};var y=/\x1B\x5B[12]?K/g,b=/\x1b\[\d+m/g,C=/\x1b\[0?m/g;t.removeAnsiEscapeCodes=function(e){return e&&(e=(e=(e=e.replace(y,"")).replace(b,"")).replace(C,"")),e},t.UTF8_BOM_CHARACTER=String.fromCharCode(65279),t.startsWithUTF8BOM=function(e){return e&&e.length>0&&65279===e.charCodeAt(0)},t.appendWithLimit=function(e,t,n){var r=e.length+t.length;return r>n&&(e="..."+e.substr(r-n)),t.length>n?e+=t.substr(t.length-n):e+=t,e},t.safeBtoa=function(e){return btoa(encodeURIComponent(e))},t.repeat=function(e,t){for(var n="",r=0;r"),o}var s=e;s.Namespace||(s.Namespace=Object.create(Object.prototype));var u={uninitialized:1,working:2,initialized:3};Object.defineProperties(s.Namespace,{defineWithParent:{value:o,writable:!0,enumerable:!0,configurable:!0},define:{value:function(e,n){return o(t,e,n)},writable:!0,enumerable:!0,configurable:!0},_lazy:{value:function(e){var t,n,i=u.uninitialized;return{setName:function(e){t=e},get:function(){switch(i){case u.initialized:return n;case u.uninitialized:i=u.working;try{r("WinJS.Namespace._lazy:"+t+",StartTM"),n=e()}finally{r("WinJS.Namespace._lazy:"+t+",StopTM"),i=u.uninitialized}return e=null,i=u.initialized,n;case u.working:throw"Illegal: reentrancy on initialization";default:throw"Illegal"}},set:function(e){switch(i){case u.working:throw"Illegal: reentrancy on initialization";default:i=u.initialized,n=e}},enumerable:!0,configurable:!0}},writable:!0,enumerable:!0,configurable:!0},_moduleDefine:{value:function(e,r,o){var s=[e],u=null;return r&&(u=n(t,r),s.push(u)),i(s,o,r||""),u},writable:!0,enumerable:!0,configurable:!0}})}(),function(){function t(e,t,r){return e=e||function(){},n.markSupportedForProcessing(e),t&&i(e.prototype,t),r&&i(e,r),e}e.Namespace.define("WinJS.Class",{define:t,derive:function(e,r,o,s){if(e){r=r||function(){};var u=e.prototype;return r.prototype=Object.create(u),n.markSupportedForProcessing(r),Object.defineProperty(r.prototype,"constructor",{value:r,writable:!0,configurable:!0,enumerable:!0}),o&&i(r.prototype,o),s&&i(r,s),r}return t(r,o,s)},mix:function(e){e=e||function(){};var t,n;for(t=1,n=arguments.length;t0?this.consume():this._onFinished.fire()},e.prototype.dispose=function(){this._onFinished.dispose()},e}();t.Limiter=v;var y=function(e){function t(){return e.call(this,1)||this}return o(t,e),t}(v);t.Queue=y,t.setDisposableTimeout=function(e,t){for(var n=[],r=2;rn||e===n&&t>r?(this.startLineNumber=n,this.startColumn=r,this.endLineNumber=e,this.endColumn=t):(this.startLineNumber=e,this.startColumn=t,this.endLineNumber=n,this.endColumn=r)}return e.prototype.isEmpty=function(){return e.isEmpty(this)},e.isEmpty=function(e){return e.startLineNumber===e.endLineNumber&&e.startColumn===e.endColumn},e.prototype.containsPosition=function(t){return e.containsPosition(this,t)},e.containsPosition=function(e,t){return!(t.lineNumbere.endLineNumber)&&(!(t.lineNumber===e.startLineNumber&&t.columne.endColumn))},e.prototype.containsRange=function(t){return e.containsRange(this,t)},e.containsRange=function(e,t){return!(t.startLineNumbere.endLineNumber||t.endLineNumber>e.endLineNumber)&&(!(t.startLineNumber===e.startLineNumber&&t.startColumne.endColumn)))},e.prototype.plusRange=function(t){return e.plusRange(this,t)},e.plusRange=function(t,n){var r,i,o,s;return n.startLineNumbert.endLineNumber?(o=n.endLineNumber,s=n.endColumn):n.endLineNumber===t.endLineNumber?(o=n.endLineNumber,s=Math.max(n.endColumn,t.endColumn)):(o=t.endLineNumber,s=t.endColumn),new e(r,i,o,s)},e.prototype.intersectRanges=function(t){return e.intersectRanges(this,t)},e.intersectRanges=function(t,n){var r=t.startLineNumber,i=t.startColumn,o=t.endLineNumber,s=t.endColumn,u=n.startLineNumber,a=n.startColumn,l=n.endLineNumber,c=n.endColumn;return rl?(o=l,s=c):o===l&&(s=Math.min(s,c)),r>o?null:r===o&&i>s?null:new e(r,i,o,s)},e.prototype.equalsRange=function(t){return e.equalsRange(this,t)},e.equalsRange=function(e,t){return!!e&&!!t&&e.startLineNumber===t.startLineNumber&&e.startColumn===t.startColumn&&e.endLineNumber===t.endLineNumber&&e.endColumn===t.endColumn},e.prototype.getEndPosition=function(){return new n.Position(this.endLineNumber,this.endColumn)},e.prototype.getStartPosition=function(){return new n.Position(this.startLineNumber,this.startColumn)},e.prototype.cloneRange=function(){return new e(this.startLineNumber,this.startColumn,this.endLineNumber,this.endColumn)},e.prototype.toString=function(){return"["+this.startLineNumber+","+this.startColumn+" -> "+this.endLineNumber+","+this.endColumn+"]"},e.prototype.setEndPosition=function(t,n){return new e(this.startLineNumber,this.startColumn,t,n)},e.prototype.setStartPosition=function(t,n){return new e(t,n,this.endLineNumber,this.endColumn)},e.prototype.collapseToStart=function(){return e.collapseToStart(this)},e.collapseToStart=function(t){return new e(t.startLineNumber,t.startColumn,t.startLineNumber,t.startColumn)},e.fromPositions=function(t,n){return void 0===n&&(n=t),new e(t.lineNumber,t.column,n.lineNumber,n.column)},e.lift=function(t){return t?new e(t.startLineNumber,t.startColumn,t.endLineNumber,t.endColumn):null},e.isIRange=function(e){return e&&"number"==typeof e.startLineNumber&&"number"==typeof e.startColumn&&"number"==typeof e.endLineNumber&&"number"==typeof e.endColumn},e.areIntersectingOrTouching=function(e,t){return!(e.endLineNumbere.startLineNumber},e}();t.Range=r}),r(e[22],t([1,0,5,3]),function(e,t,n,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i;!function(e){e[e.LTR=0]="LTR",e[e.RTL=1]="RTL"}(i=t.SelectionDirection||(t.SelectionDirection={}));var s=function(e){function t(t,n,r,i){var o=e.call(this,t,n,r,i)||this;return o.selectionStartLineNumber=t,o.selectionStartColumn=n,o.positionLineNumber=r,o.positionColumn=i,o}return o(t,e),t.prototype.clone=function(){return new t(this.selectionStartLineNumber,this.selectionStartColumn,this.positionLineNumber,this.positionColumn)},t.prototype.toString=function(){return"["+this.selectionStartLineNumber+","+this.selectionStartColumn+" -> "+this.positionLineNumber+","+this.positionColumn+"]"},t.prototype.equalsSelection=function(e){return t.selectionsEqual(this,e)},t.selectionsEqual=function(e,t){return e.selectionStartLineNumber===t.selectionStartLineNumber&&e.selectionStartColumn===t.selectionStartColumn&&e.positionLineNumber===t.positionLineNumber&&e.positionColumn===t.positionColumn},t.prototype.getDirection=function(){return this.selectionStartLineNumber===this.startLineNumber&&this.selectionStartColumn===this.startColumn?i.LTR:i.RTL},t.prototype.setEndPosition=function(e,n){return this.getDirection()===i.LTR?new t(this.startLineNumber,this.startColumn,e,n):new t(e,n,this.startLineNumber,this.startColumn)},t.prototype.getPosition=function(){return new r.Position(this.positionLineNumber,this.positionColumn)},t.prototype.setStartPosition=function(e,n){return this.getDirection()===i.LTR?new t(e,n,this.endLineNumber,this.endColumn):new t(this.endLineNumber,this.endColumn,e,n)},t.fromPositions=function(e,n){return void 0===n&&(n=e),new t(e.lineNumber,e.column,n.lineNumber,n.column)},t.liftSelection=function(e){return new t(e.selectionStartLineNumber,e.selectionStartColumn,e.positionLineNumber,e.positionColumn)},t.selectionsArrEqual=function(e,t){if(e&&!t||!e&&t)return!1;if(!e&&!t)return!0;if(e.length!==t.length)return!1;for(var n=0,r=e.length;n4294967295?4294967295:0|e}Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t,n){for(var r=new Uint8Array(e*t),i=0,o=e*t;i255?255:0|e},t.toUint32=n,t.toUint32Array=function(e){for(var t=e.length,r=new Uint32Array(t),i=0;i=0&&e<256?this._asciiMap[e]=r:this._map.set(e,r)},e.prototype.get=function(e){return e>=0&&e<256?this._asciiMap[e]:this._map.get(e)||this._defaultValue},e}();t.CharacterClassifier=r;var i;!function(e){e[e.False=0]="False",e[e.True=1]="True"}(i||(i={}));var o=function(){function e(){this._actual=new r(0)}return e.prototype.add=function(e){this._actual.set(e,1)},e.prototype.has=function(e){return 1===this._actual.get(e)},e}();t.CharacterSet=o}),r(e[26],t([1,0,12,20]),function(e,t,n,r){"use strict";function i(e,t,r){return new n.LcsDiff(e,t,r).ComputeDiff()}function s(e){if(e.length<=1)return e;var t,n,r,i,o,s=[e[0]],u=s[0];for(t=1,n=e.length;t=o)return{word:a[0],startColumn:i+1+a.index,endColumn:i+1+t.lastIndex};return null}function r(e,t,n,r){var i=e-1-r;t.lastIndex=0;for(var o;o=t.exec(n);){if(o.index>i)return null;if(t.lastIndex>=i)return{word:o[0],startColumn:r+1+o.index,endColumn:r+1+t.lastIndex}}return null}Object.defineProperty(t,"__esModule",{value:!0}),t.USUAL_WORD_SEPARATORS="`~!@#$%^&*()-=+[{]}\\|;:'\",.<>/?",t.DEFAULT_WORD_REGEXP=function(e){void 0===e&&(e="");for(var n=t.USUAL_WORD_SEPARATORS,r="(-?\\d*\\.\\d\\w*)|([^",i=0;i=0||(r+="\\"+n[i]);return r+="\\s]+)",new RegExp(r,"g")}(),t.ensureValidWordDefinition=function(e){var n=t.DEFAULT_WORD_REGEXP;if(e&&e instanceof RegExp)if(e.global)n=e;else{var r="g";e.ignoreCase&&(r+="i"),e.multiline&&(r+="m"),n=new RegExp(e.source,r)}return n.lastIndex=0,n},t.getWordAtText=function(e,t,r,i){var o=n(e,t,r,i);return t.lastIndex=0,o}}),r(e[28],t([1,0,25,7]),function(e,t,n,r){"use strict";function i(){return null===l&&(l=new a([[1,104,2],[1,72,2],[1,102,6],[1,70,6],[2,116,3],[2,84,3],[3,116,4],[3,84,4],[4,112,5],[4,80,5],[5,115,9],[5,83,9],[5,58,10],[6,105,7],[6,73,7],[7,108,8],[7,76,8],[8,101,9],[8,69,9],[9,58,10],[10,47,11],[11,47,12]])),l}function o(){if(null===c){c=new n.CharacterClassifier(0);for(e=0;e<" \t<>'\"、。。、,.:;?!@#$%&*‘“〈《「『【〔([{「」}])〕】』」》〉”’`~…".length;e++)c.set(" \t<>'\"、。。、,.:;?!@#$%&*‘“〈《「『【〔([{「」}])〕】』」》〉”’`~…".charCodeAt(e),1);for(var e=0;e<".,;".length;e++)c.set(".,;".charCodeAt(e),2)}return c}Object.defineProperty(t,"__esModule",{value:!0});var s;!function(e){e[e.Invalid=0]="Invalid",e[e.Start=1]="Start",e[e.H=2]="H",e[e.HT=3]="HT",e[e.HTT=4]="HTT",e[e.HTTP=5]="HTTP",e[e.F=6]="F",e[e.FI=7]="FI",e[e.FIL=8]="FIL",e[e.BeforeColon=9]="BeforeColon",e[e.AfterColon=10]="AfterColon",e[e.AlmostThere=11]="AlmostThere",e[e.End=12]="End",e[e.Accept=13]="Accept"}(s||(s={}));var u,a=function(){function e(e){for(var t=0,n=0,i=0,o=e.length;it&&(t=a),u>n&&(n=u),l>n&&(n=l)}t++,n++;for(var c=new r.Uint8Matrix(n,t,0),i=0,o=e.length;i=this._maxCharCode?0:this._states.get(e,t)},e}(),l=null;!function(e){e[e.None=0]="None",e[e.ForceTermination=1]="ForceTermination",e[e.CannotEndIn=2]="CannotEndIn"}(u||(u={}));var c=null,f=function(){function e(){}return e._createLink=function(e,t,n,r,i){var o=i-1;do{var s=t.charCodeAt(o);if(2!==e.get(s))break;o--}while(o>r);return{range:{startLineNumber:n,startColumn:r+1,endLineNumber:n,endColumn:o+2},url:t.substring(r,o+1)}},e.computeLinks=function(t){for(var n=i(),r=o(),s=[],u=1,a=t.getLineCount();u<=a;u++){for(var l=t.getLineContent(u),c=l.length,f=0,h=0,d=0,p=1,m=!1,_=!1,g=!1;f=0?(r+=n?1:-1,r<0?r=e.length-1:r%=e.length,e[r]):null},e}();n.INSTANCE=new n,t.BasicInplaceReplace=n}),r(e[30],t([1,0,9,21,3,5,22,2,13,23,6]),function(e,t,n,r,i,o,s,u,a,l,c){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var f;!function(e){e[e.Ignore=0]="Ignore",e[e.Info=1]="Info",e[e.Warning=2]="Warning",e[e.Error=3]="Error"}(f=t.Severity||(t.Severity={}));var h=function(){function e(){}return e.chord=function(e,t){return r.KeyChord(e,t)},e}();h.CtrlCmd=2048,h.Shift=1024,h.Alt=512,h.WinCtrl=256,t.KeyMod=h;var d;!function(e){e[e.Unknown=0]="Unknown",e[e.Backspace=1]="Backspace",e[e.Tab=2]="Tab",e[e.Enter=3]="Enter",e[e.Shift=4]="Shift",e[e.Ctrl=5]="Ctrl",e[e.Alt=6]="Alt",e[e.PauseBreak=7]="PauseBreak",e[e.CapsLock=8]="CapsLock",e[e.Escape=9]="Escape",e[e.Space=10]="Space",e[e.PageUp=11]="PageUp",e[e.PageDown=12]="PageDown",e[e.End=13]="End",e[e.Home=14]="Home",e[e.LeftArrow=15]="LeftArrow",e[e.UpArrow=16]="UpArrow",e[e.RightArrow=17]="RightArrow",e[e.DownArrow=18]="DownArrow",e[e.Insert=19]="Insert",e[e.Delete=20]="Delete",e[e.KEY_0=21]="KEY_0",e[e.KEY_1=22]="KEY_1",e[e.KEY_2=23]="KEY_2",e[e.KEY_3=24]="KEY_3",e[e.KEY_4=25]="KEY_4",e[e.KEY_5=26]="KEY_5",e[e.KEY_6=27]="KEY_6",e[e.KEY_7=28]="KEY_7",e[e.KEY_8=29]="KEY_8",e[e.KEY_9=30]="KEY_9",e[e.KEY_A=31]="KEY_A",e[e.KEY_B=32]="KEY_B",e[e.KEY_C=33]="KEY_C",e[e.KEY_D=34]="KEY_D",e[e.KEY_E=35]="KEY_E",e[e.KEY_F=36]="KEY_F",e[e.KEY_G=37]="KEY_G",e[e.KEY_H=38]="KEY_H",e[e.KEY_I=39]="KEY_I",e[e.KEY_J=40]="KEY_J",e[e.KEY_K=41]="KEY_K",e[e.KEY_L=42]="KEY_L",e[e.KEY_M=43]="KEY_M",e[e.KEY_N=44]="KEY_N",e[e.KEY_O=45]="KEY_O",e[e.KEY_P=46]="KEY_P",e[e.KEY_Q=47]="KEY_Q",e[e.KEY_R=48]="KEY_R",e[e.KEY_S=49]="KEY_S",e[e.KEY_T=50]="KEY_T",e[e.KEY_U=51]="KEY_U",e[e.KEY_V=52]="KEY_V",e[e.KEY_W=53]="KEY_W",e[e.KEY_X=54]="KEY_X",e[e.KEY_Y=55]="KEY_Y",e[e.KEY_Z=56]="KEY_Z",e[e.Meta=57]="Meta",e[e.ContextMenu=58]="ContextMenu",e[e.F1=59]="F1",e[e.F2=60]="F2",e[e.F3=61]="F3",e[e.F4=62]="F4",e[e.F5=63]="F5",e[e.F6=64]="F6",e[e.F7=65]="F7",e[e.F8=66]="F8",e[e.F9=67]="F9",e[e.F10=68]="F10",e[e.F11=69]="F11",e[e.F12=70]="F12",e[e.F13=71]="F13",e[e.F14=72]="F14",e[e.F15=73]="F15",e[e.F16=74]="F16",e[e.F17=75]="F17",e[e.F18=76]="F18",e[e.F19=77]="F19",e[e.NumLock=78]="NumLock",e[e.ScrollLock=79]="ScrollLock",e[e.US_SEMICOLON=80]="US_SEMICOLON",e[e.US_EQUAL=81]="US_EQUAL",e[e.US_COMMA=82]="US_COMMA",e[e.US_MINUS=83]="US_MINUS",e[e.US_DOT=84]="US_DOT",e[e.US_SLASH=85]="US_SLASH",e[e.US_BACKTICK=86]="US_BACKTICK",e[e.US_OPEN_SQUARE_BRACKET=87]="US_OPEN_SQUARE_BRACKET",e[e.US_BACKSLASH=88]="US_BACKSLASH",e[e.US_CLOSE_SQUARE_BRACKET=89]="US_CLOSE_SQUARE_BRACKET",e[e.US_QUOTE=90]="US_QUOTE",e[e.OEM_8=91]="OEM_8",e[e.OEM_102=92]="OEM_102",e[e.NUMPAD_0=93]="NUMPAD_0",e[e.NUMPAD_1=94]="NUMPAD_1",e[e.NUMPAD_2=95]="NUMPAD_2",e[e.NUMPAD_3=96]="NUMPAD_3",e[e.NUMPAD_4=97]="NUMPAD_4",e[e.NUMPAD_5=98]="NUMPAD_5",e[e.NUMPAD_6=99]="NUMPAD_6",e[e.NUMPAD_7=100]="NUMPAD_7",e[e.NUMPAD_8=101]="NUMPAD_8",e[e.NUMPAD_9=102]="NUMPAD_9",e[e.NUMPAD_MULTIPLY=103]="NUMPAD_MULTIPLY",e[e.NUMPAD_ADD=104]="NUMPAD_ADD",e[e.NUMPAD_SEPARATOR=105]="NUMPAD_SEPARATOR",e[e.NUMPAD_SUBTRACT=106]="NUMPAD_SUBTRACT",e[e.NUMPAD_DECIMAL=107]="NUMPAD_DECIMAL",e[e.NUMPAD_DIVIDE=108]="NUMPAD_DIVIDE",e[e.KEY_IN_COMPOSITION=109]="KEY_IN_COMPOSITION",e[e.ABNT_C1=110]="ABNT_C1",e[e.ABNT_C2=111]="ABNT_C2",e[e.MAX_VALUE=112]="MAX_VALUE"}(d=t.KeyCode||(t.KeyCode={})),t.createMonacoBaseAPI=function(){return{editor:void 0,languages:void 0,CancellationTokenSource:a.CancellationTokenSource,Emitter:n.Emitter,KeyCode:d,KeyMod:h,Position:i.Position,Range:o.Range,Selection:s.Selection,SelectionDirection:s.SelectionDirection,Severity:f,Promise:u.TPromise,Uri:c.default,Token:l.Token}}}),r(e[19],t([1,0,7]),function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(e,t){this.index=e,this.remainder=t}}();t.PrefixSumIndexOfResult=r;var i=function(){function e(e){this.values=e,this.prefixSum=new Uint32Array(e.length),this.prefixSumValidIndex=new Int32Array(1),this.prefixSumValidIndex[0]=-1}return e.prototype.getCount=function(){return this.values.length},e.prototype.insertValues=function(e,t){e=n.toUint32(e);var r=this.values,i=this.prefixSum,o=t.length;return 0!==o&&(this.values=new Uint32Array(r.length+o),this.values.set(r.subarray(0,e),0),this.values.set(r.subarray(e),e+o),this.values.set(t,e),e-1=0&&this.prefixSum.set(i.subarray(0,this.prefixSumValidIndex[0]+1)),!0)},e.prototype.changeValue=function(e,t){return e=n.toUint32(e),t=n.toUint32(t),this.values[e]!==t&&(this.values[e]=t,e-1=r.length)return!1;var o=r.length-e;return t>=o&&(t=o),0!==t&&(this.values=new Uint32Array(r.length-t),this.values.set(r.subarray(0,e),0),this.values.set(r.subarray(e+t),e),this.prefixSum=new Uint32Array(this.values.length),e-1=0&&this.prefixSum.set(i.subarray(0,this.prefixSumValidIndex[0]+1)),!0)},e.prototype.getTotalValue=function(){return 0===this.values.length?0:this._getAccumulatedValue(this.values.length-1)},e.prototype.getAccumulatedValue=function(e){return e<0?0:(e=n.toUint32(e),this._getAccumulatedValue(e))},e.prototype._getAccumulatedValue=function(e){if(e<=this.prefixSumValidIndex[0])return this.prefixSum[e];var t=this.prefixSumValidIndex[0]+1;0===t&&(this.prefixSum[0]=this.values[0],t++),e>=this.values.length&&(e=this.values.length-1);for(var n=t;n<=e;n++)this.prefixSum[n]=this.prefixSum[n-1]+this.values[n];return this.prefixSumValidIndex[0]=Math.max(this.prefixSumValidIndex[0],e),this.prefixSum[e]},e.prototype.getIndexOf=function(e){e=Math.floor(e),this.getTotalValue();for(var t,n,i,o=0,s=this.values.length-1;o<=s;)if(t=o+(s-o)/2|0,n=this.prefixSum[t],i=n-this.values[t],e=n))break;o=t+1}return new r(t,e-i)},e}();t.PrefixSumComputer=i;var o=function(){function e(e){this._cacheAccumulatedValueStart=0,this._cache=null,this._actual=new i(e),this._bustCache()}return e.prototype._bustCache=function(){this._cacheAccumulatedValueStart=0,this._cache=null},e.prototype.getCount=function(){return this._actual.getCount()},e.prototype.insertValues=function(e,t){this._actual.insertValues(e,t)&&this._bustCache()},e.prototype.changeValue=function(e,t){this._actual.changeValue(e,t)&&this._bustCache()},e.prototype.removeValues=function(e,t){this._actual.removeValues(e,t)&&this._bustCache()},e.prototype.getTotalValue=function(){return this._actual.getTotalValue()},e.prototype.getAccumulatedValue=function(e){return this._actual.getAccumulatedValue(e)},e.prototype.getIndexOf=function(e){if(e=Math.floor(e),null!==this._cache){var t=e-this._cacheAccumulatedValueStart;if(t>=0&&tthis._lines.length)t=this._lines.length,n=this._lines[t-1].length+1,r=!0;else{var i=this._lines[t-1].length+1;n<1?(n=1,r=!0):n>i&&(n=i,r=!0)}return r?{lineNumber:t,column:n}:e},t}(l.MirrorModel),m=function(){function e(){this._foreignModule=null}return e.prototype.computeDiff=function(e,t,n){var i=this._getModel(e),o=this._getModel(t);if(!i||!o)return null;var u=i.getLinesContent(),a=o.getLinesContent(),l=new s.DiffComputer(u,a,{shouldPostProcessCharChanges:!0,shouldIgnoreTrimWhitespace:n,shouldConsiderTrimWhitespaceInEmptyCase:!0});return r.TPromise.as(l.computeDiff())},e.prototype.computeDirtyDiff=function(e,t,n){var i=this._getModel(e),o=this._getModel(t);if(!i||!o)return null;var u=i.getLinesContent(),a=o.getLinesContent(),l=new s.DiffComputer(u,a,{shouldPostProcessCharChanges:!1,shouldIgnoreTrimWhitespace:n,shouldConsiderTrimWhitespaceInEmptyCase:!1});return r.TPromise.as(l.computeDiff())},e.prototype.computeMoreMinimalEdits=function(t,n,o){var s=this._getModel(t);if(!s)return r.TPromise.as(n);for(var a,l=[],c=0,f=n;ce._diffLimit)l.push({range:d,text:p});else for(var g=u.stringDiff(_,p),v=s.offsetAt(i.Range.lift(d).getStartPosition()),y=0,b=g;y0;)self.onmessage(i.shift())},0)})},r=!0,i=[];self.onmessage=function(e){r?(r=!1,n(e.data)):i.push(e)}}()}).call(this); +(function(){ +var e,t,n=["require","exports","vs/editor/common/core/position","vs/base/common/platform","vs/base/common/errors","vs/editor/common/core/range","vs/base/common/lifecycle","vs/base/common/event","vs/base/common/strings","vs/base/common/diff/diff","vs/base/common/types","vs/base/common/uint","vs/base/common/uri","vs/base/common/arrays","vs/base/common/diff/diffChange","vs/base/common/iterator","vs/base/common/keyCodes","vs/base/common/linkedList","vs/base/common/cancellation","vs/base/common/process","vs/base/common/path","vs/base/common/hash","vs/editor/common/core/characterClassifier","vs/editor/common/core/selection","vs/editor/common/core/token","vs/editor/common/diff/diffComputer","vs/editor/common/model/wordHelper","vs/editor/common/modes/linkComputer","vs/editor/common/modes/supports/inplaceReplaceSupport","vs/editor/common/standalone/standaloneEnums","vs/editor/common/standalone/standaloneBase","vs/editor/common/viewModel/prefixSumComputer","vs/editor/common/model/mirrorTextModel","vs/base/common/worker/simpleWorker","vs/editor/common/services/editorSimpleWorker"],r=function(e){ +for(var t=[],r=0,i=e.length;r=0)||"undefined"!=typeof process&&"win32"===process.platform},t}();e.Environment=t}(t||(t={})),function(e){var t=function(e,t,n){this.type=e,this.detail=t,this.timestamp=n};e.LoaderEvent=t;var n=function(){function n(e){this._events=[new t(1,"",e)]}return n.prototype.record=function(n,r){this._events.push(new t(n,r,e.Utilities.getHighPerformanceTimestamp()))},n.prototype.getEvents=function(){return this._events},n}();e.LoaderEventRecorder=n;var r=function(){function e(){}return e.prototype.record=function(e,t){},e.prototype.getEvents=function(){return[]},e.INSTANCE=new e,e}();e.NullLoaderEventRecorder=r}(t||(t={})),function(e){var t=function(){function t(){} +return t.fileUriToFilePath=function(e,t){if(t=decodeURI(t).replace(/%23/g,"#"),e){if(/^file:\/\/\//.test(t))return t.substr(8);if(/^file:\/\//.test(t))return t.substr(5)}else if(/^file:\/\//.test(t))return t.substr(7);return t},t.startsWith=function(e,t){return e.length>=t.length&&e.substr(0,t.length)===t},t.endsWith=function(e,t){return e.length>=t.length&&e.substr(e.length-t.length)===t},t.containsQueryString=function(e){return/^[^\#]*\?/gi.test(e)},t.isAbsolutePath=function(e){return/^((http:\/\/)|(https:\/\/)|(file:\/\/)|(\/))/.test(e)},t.forEachProperty=function(e,t){if(e){var n=void 0;for(n in e)e.hasOwnProperty(n)&&t(n,e[n])}},t.isEmpty=function(e){var n=!0;return t.forEachProperty(e,(function(){n=!1})),n},t.recursiveClone=function(e){if(!e||"object"!=typeof e||e instanceof RegExp)return e;var n=Array.isArray(e)?[]:{};return t.forEachProperty(e,(function(e,r){n[e]=r&&"object"==typeof r?t.recursiveClone(r):r})),n},t.generateAnonymousModule=function(){return"===anonymous"+t.NEXT_ANONYMOUS_ID+++"==="}, +t.isAnonymousModule=function(e){return t.startsWith(e,"===anonymous")},t.getHighPerformanceTimestamp=function(){return this.PERFORMANCE_NOW_PROBED||(this.PERFORMANCE_NOW_PROBED=!0,this.HAS_PERFORMANCE_NOW=e.global.performance&&"function"==typeof e.global.performance.now),this.HAS_PERFORMANCE_NOW?e.global.performance.now():Date.now()},t.NEXT_ANONYMOUS_ID=1,t.PERFORMANCE_NOW_PROBED=!1,t.HAS_PERFORMANCE_NOW=!1,t}();e.Utilities=t}(t||(t={})),function(e){function t(e){if(e instanceof Error)return e;var t=new Error(e.message||String(e)||"Unknown Error");return e.stack&&(t.stack=e.stack),t}e.ensureError=t;var n=function(){function n(){}return n.validateConfigurationOptions=function(n){if("string"!=typeof(n=n||{}).baseUrl&&(n.baseUrl=""),"boolean"!=typeof n.isBuild&&(n.isBuild=!1),"object"!=typeof n.paths&&(n.paths={}),"object"!=typeof n.config&&(n.config={}),void 0===n.catchError&&(n.catchError=!1),void 0===n.recordStats&&(n.recordStats=!1),"string"!=typeof n.urlArgs&&(n.urlArgs=""), +"function"!=typeof n.onError&&(n.onError=function(e){return"loading"===e.phase?(console.error('Loading "'+e.moduleId+'" failed'),console.error(e),console.error("Here are the modules that depend on it:"),void console.error(e.neededBy)):"factory"===e.phase?(console.error('The factory method of "'+e.moduleId+'" has thrown an exception'),void console.error(e)):void 0}),Array.isArray(n.ignoreDuplicateModules)||(n.ignoreDuplicateModules=[]),n.baseUrl.length>0&&(e.Utilities.endsWith(n.baseUrl,"/")||(n.baseUrl+="/")),"string"!=typeof n.cspNonce&&(n.cspNonce=""),void 0===n.preferScriptTags&&(n.preferScriptTags=!1),Array.isArray(n.nodeModules)||(n.nodeModules=[]),n.nodeCachedData&&"object"==typeof n.nodeCachedData&&("string"!=typeof n.nodeCachedData.seed&&(n.nodeCachedData.seed="seed"),("number"!=typeof n.nodeCachedData.writeDelay||n.nodeCachedData.writeDelay<0)&&(n.nodeCachedData.writeDelay=7e3),!n.nodeCachedData.path||"string"!=typeof n.nodeCachedData.path)){ +var r=t(new Error("INVALID cached data configuration, 'path' MUST be set"));r.phase="configuration",n.onError(r),n.nodeCachedData=void 0}return n},n.mergeConfigurationOptions=function(t,r){void 0===t&&(t=null),void 0===r&&(r=null);var i=e.Utilities.recursiveClone(r||{});return e.Utilities.forEachProperty(t,(function(t,n){"ignoreDuplicateModules"===t&&void 0!==i.ignoreDuplicateModules?i.ignoreDuplicateModules=i.ignoreDuplicateModules.concat(n):"paths"===t&&void 0!==i.paths?e.Utilities.forEachProperty(n,(function(e,t){return i.paths[e]=t})):"config"===t&&void 0!==i.config?e.Utilities.forEachProperty(n,(function(e,t){return i.config[e]=t})):i[t]=e.Utilities.recursiveClone(n)})),n.validateConfigurationOptions(i)},n}();e.ConfigurationOptionsUtil=n;var r=function(){function t(e,t){if(this._env=e,this.options=n.mergeConfigurationOptions(t),this._createIgnoreDuplicateModulesMap(),this._createNodeModulesMap(),this._createSortedPathsRules(),""===this.options.baseUrl){ +if(this.options.nodeRequire&&this.options.nodeRequire.main&&this.options.nodeRequire.main.filename&&this._env.isNode){var r=this.options.nodeRequire.main.filename,i=Math.max(r.lastIndexOf("/"),r.lastIndexOf("\\"));this.options.baseUrl=r.substring(0,i+1)}if(this.options.nodeMain&&this._env.isNode){r=this.options.nodeMain,i=Math.max(r.lastIndexOf("/"),r.lastIndexOf("\\"));this.options.baseUrl=r.substring(0,i+1)}}}return t.prototype._createIgnoreDuplicateModulesMap=function(){this.ignoreDuplicateModulesMap={};for(var e=0;e=5||(o.length0?(s=r.slice(0,16),o=r.slice(16),n.record(60,t)):n.record(61,t),l()}))}else this._fs.readFile(e,{encoding:"utf8"},r)},t.prototype._verifyCachedData=function(e,t,n,r,i){var o=this;r&&(e.cachedDataRejected||setTimeout((function(){var e=o._crypto.createHash("md5").update(t,"utf8").digest();r.equals(e)||(i.getConfig().onError(new Error("FAILED TO VERIFY CACHED DATA, deleting stale '"+n+"' now, but a RESTART IS REQUIRED")),o._fs.unlink(n,(function(e){e&&i.getConfig().onError(e)})))}),Math.ceil(5e3*(1+Math.random()))))},t._BOM=65279,t._PREFIX="(function (require, define, __filename, __dirname) { ",t._SUFFIX="\n});",t}();e.createScriptLoader=function(e){return new t(e)} +}(t||(t={})),function(e){var t=function(){function t(e){var t=e.lastIndexOf("/");this.fromModulePath=-1!==t?e.substr(0,t+1):""}return t._normalizeModuleId=function(e){var t,n=e;for(t=/\/\.\//;t.test(n);)n=n.replace(t,"/");for(n=n.replace(/^\.\//g,""),t=/\/(([^\/])|([^\/][^\/\.])|([^\/\.][^\/])|([^\/][^\/][^\/]+))\/\.\.\//;t.test(n);)n=n.replace(t,"/");return n=n.replace(/^(([^\/])|([^\/][^\/\.])|([^\/\.][^\/])|([^\/][^\/][^\/]+))\/\.\.\//,"")},t.prototype.resolveModule=function(n){var r=n;return e.Utilities.isAbsolutePath(r)||(e.Utilities.startsWith(r,"./")||e.Utilities.startsWith(r,"../"))&&(r=t._normalizeModuleId(this.fromModulePath+r)),r},t.ROOT=new t(""),t}();e.ModuleIdResolver=t;var n=function(){function t(e,t,n,r,i,o){this.id=e,this.strId=t,this.dependencies=n,this._callback=r,this._errorback=i,this.moduleIdResolver=o,this.exports={},this.error=null,this.exportsPassedIn=!1,this.unresolvedDependenciesCount=this.dependencies.length,this._isComplete=!1}return t._safeInvokeFunction=function(t,n){try{return{ +returnedValue:t.apply(e.global,n),producedError:null}}catch(e){return{returnedValue:null,producedError:e}}},t._invokeFactory=function(t,n,r,i){return t.isBuild()&&!e.Utilities.isAnonymousModule(n)?{returnedValue:null,producedError:null}:t.shouldCatchError()?this._safeInvokeFunction(r,i):{returnedValue:r.apply(e.global,i),producedError:null}},t.prototype.complete=function(n,r,i){this._isComplete=!0;var o=null;if(this._callback)if("function"==typeof this._callback){n.record(21,this.strId);var s=t._invokeFactory(r,this.strId,this._callback,i);o=s.producedError,n.record(22,this.strId),o||void 0===s.returnedValue||this.exportsPassedIn&&!e.Utilities.isEmpty(this.exports)||(this.exports=s.returnedValue)}else this.exports=this._callback;if(o){var a=e.ensureError(o);a.phase="factory",a.moduleId=this.strId,this.error=a,r.onError(a)}this.dependencies=null,this._callback=null,this._errorback=null,this.moduleIdResolver=null},t.prototype.onDependencyError=function(e){return this._isComplete=!0,this.error=e, +!!this._errorback&&(this._errorback(e),!0)},t.prototype.isComplete=function(){return this._isComplete},t}();e.Module=n;var r=function(){function e(){this._nextId=0,this._strModuleIdToIntModuleId=new Map,this._intModuleIdToStrModuleId=[],this.getModuleId("exports"),this.getModuleId("module"),this.getModuleId("require")}return e.prototype.getMaxModuleId=function(){return this._nextId},e.prototype.getModuleId=function(e){var t=this._strModuleIdToIntModuleId.get(e);return void 0===t&&(t=this._nextId++,this._strModuleIdToIntModuleId.set(e,t),this._intModuleIdToStrModuleId[t]=e),t},e.prototype.getStrModuleId=function(e){return this._intModuleIdToStrModuleId[e]},e}(),i=function(){function e(e){this.id=e}return e.EXPORTS=new e(0),e.MODULE=new e(1),e.REQUIRE=new e(2),e}();e.RegularDependency=i;var o=function(e,t,n){this.id=e,this.pluginId=t,this.pluginParam=n};e.PluginDependency=o;var s=function(){function s(t,n,i,o,s){void 0===s&&(s=0),this._env=t,this._scriptLoader=n,this._loaderAvailableTimestamp=s, +this._defineFunc=i,this._requireFunc=o,this._moduleIdProvider=new r,this._config=new e.Configuration(this._env),this._modules2=[],this._knownModules2=[],this._inverseDependencies2=[],this._inversePluginDependencies2=new Map,this._currentAnnonymousDefineCall=null,this._recorder=null,this._buildInfoPath=[],this._buildInfoDefineStack=[],this._buildInfoDependencies=[]}return s.prototype.reset=function(){return new s(this._env,this._scriptLoader,this._defineFunc,this._requireFunc,this._loaderAvailableTimestamp)},s.prototype.getGlobalAMDDefineFunc=function(){return this._defineFunc},s.prototype.getGlobalAMDRequireFunc=function(){return this._requireFunc},s._findRelevantLocationInStack=function(e,t){for(var n=function(e){return e.replace(/\\/g,"/")},r=n(e),i=t.split(/\n/),o=0;o=0){ +var r=t.resolveModule(e.substr(0,n)),s=t.resolveModule(e.substr(n+1)),a=this._moduleIdProvider.getModuleId(r+"!"+s),l=this._moduleIdProvider.getModuleId(r);return new o(a,l,s)}return new i(this._moduleIdProvider.getModuleId(t.resolveModule(e)))},s.prototype._normalizeDependencies=function(e,t){for(var n=[],r=0,i=0,o=e.length;i0;){var u=l.shift(),c=this._modules2[u];c&&(a=c.onDependencyError(r)||a);var d=this._inverseDependencies2[u];if(d)for(o=0,s=d.length;o0;){var a=s.shift().dependencies;if(a)for(i=0,o=a.length;i=r.length)t._onLoadError(e,n);else{var s=r[i],a=t.getRecorder();if(t._config.isBuild()&&"empty:"===s)return t._buildInfoPath[e]=s,t.defineModule(t._moduleIdProvider.getStrModuleId(e),[],null,null,null),void t._onLoad(e);a.record(10,s),t._scriptLoader.load(t,s,(function(){t._config.isBuild()&&(t._buildInfoPath[e]=s),a.record(11,s),t._onLoad(e)}),(function(e){a.record(12,s),o(e)}))}};o(null)}}, +s.prototype._loadPluginDependency=function(e,n){var r=this;if(!this._modules2[n.id]&&!this._knownModules2[n.id]){this._knownModules2[n.id]=!0;var i=function(e){r.defineModule(r._moduleIdProvider.getStrModuleId(n.id),[],e,null,null)};i.error=function(e){r._config.onError(r._createLoadError(n.id,e))},e.load(n.pluginParam,this._createRequire(t.ROOT),i,this._config.getOptionsLiteral())}},s.prototype._resolve=function(e){var t=this,n=e.dependencies;if(n)for(var r=0,s=n.length;r \n")),e.unresolvedDependenciesCount--}else if(this._inverseDependencies2[a.id]=this._inverseDependencies2[a.id]||[],this._inverseDependencies2[a.id].push(e.id),a instanceof o){var c=this._modules2[a.pluginId];if(c&&c.isComplete()){this._loadPluginDependency(c.exports,a);continue}var d=this._inversePluginDependencies2.get(a.pluginId);d||(d=[],this._inversePluginDependencies2.set(a.pluginId,d)),d.push(a),this._loadModule(a.pluginId)}else this._loadModule(a.id)}else e.unresolvedDependenciesCount--;else e.unresolvedDependenciesCount--;else e.exportsPassedIn=!0,e.unresolvedDependenciesCount--}0===e.unresolvedDependenciesCount&&this._onModuleComplete(e)},s.prototype._onModuleComplete=function(e){var t=this,n=this.getRecorder();if(!e.isComplete()){var r=e.dependencies,o=[];if(r)for(var s=0,a=r.length;sr?e[l]=o[a++]:a>i?e[l]=o[s++]:t(o[a],o[s])<0?e[l]=o[a++]:e[l]=o[s++]}(t,n,r,s,i,o)}(e,t,0,e.length-1,[]),e}function r(e,t){for(let n=0;ne===t)){if(e===t)return!0;if(!e||!t)return!1;if(e.length!==t.length)return!1;for(let r=0,i=e.length;r0))return o;i=o-1}}return-(r+1)},t.findFirstInSorted=function(e,t){let n=0,r=e.length;if(0===r)return 0;for(;n!!e)},t.isFalsyOrEmpty=function(e){return!Array.isArray(e)||0===e.length},t.isNonEmptyArray=function(e){return Array.isArray(e)&&e.length>0},t.distinct=function(e,t){if(!t)return e.filter((t,n)=>e.indexOf(t)===n);const n=Object.create(null);return e.filter(e=>{const r=t(e);return!n[r]&&(n[r]=!0,!0)})},t.distinctES6=function(e){const t=new Set;return e.filter(e=>!t.has(e)&&(t.add(e),!0))},t.firstIndex=r,t.first=function(e,t,n){const i=r(e,t);return i<0?n:e[i]},t.firstOrDefault=function(e,t){return e.length>0?e[0]:t},t.flatten=function(e){return[].concat(...e)},t.range=function(e,t){let n="number"==typeof t?e:0;"number"==typeof t?n=e:(n=0,t=e);const r=[];if(n<=t)for(let e=n;et;e--)r.push(e);return r},t.arrayInsert=function(e,t,n){const r=e.slice(0,t),i=e.slice(t);return r.concat(n,i)},t.pushToStart=function(e,t){const n=e.indexOf(t) +;n>-1&&(e.splice(n,1),e.unshift(t))},t.pushToEnd=function(e,t){const n=e.indexOf(t);n>-1&&(e.splice(n,1),e.push(t))},t.asArray=function(e){return Array.isArray(e)?e:[e]}})),e(n[14],r([0,1]),(function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DiffChange=void 0;t.DiffChange=class{constructor(e,t,n,r){this.originalStart=e,this.originalLength=t,this.modifiedStart=n,this.modifiedLength=r}getOriginalEnd(){return this.originalStart+this.originalLength}getModifiedEnd(){return this.modifiedStart+this.modifiedLength}}})),e(n[4],r([0,1]),(function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.illegalState=t.illegalArgument=t.canceled=t.isPromiseCanceledError=t.transformErrorForSerialization=t.onUnexpectedExternalError=t.onUnexpectedError=t.errorHandler=t.ErrorHandler=void 0;class n{constructor(){this.listeners=[],this.unexpectedErrorHandler=function(e){setTimeout(()=>{if(e.stack)throw new Error(e.message+"\n\n"+e.stack);throw e},0)}}emit(e){this.listeners.forEach(t=>{ +t(e)})}onUnexpectedError(e){this.unexpectedErrorHandler(e),this.emit(e)}onUnexpectedExternalError(e){this.unexpectedErrorHandler(e)}}t.ErrorHandler=n,t.errorHandler=new n,t.onUnexpectedError=function(e){i(e)||t.errorHandler.onUnexpectedError(e)},t.onUnexpectedExternalError=function(e){i(e)||t.errorHandler.onUnexpectedExternalError(e)},t.transformErrorForSerialization=function(e){if(e instanceof Error){let{name:t,message:n}=e;return{$isError:!0,name:t,message:n,stack:e.stacktrace||e.stack}}return e};const r="Canceled";function i(e){return e instanceof Error&&e.name===r&&e.message===r}t.isPromiseCanceledError=i,t.canceled=function(){const e=new Error(r);return e.name=e.message,e},t.illegalArgument=function(e){return e?new Error(`Illegal argument: ${e}`):new Error("Illegal argument")},t.illegalState=function(e){return e?new Error(`Illegal state: ${e}`):new Error("Illegal state")}})),e(n[15],r([0,1]),(function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Iterable=void 0,function(e){ +e.is=function(e){return e&&"object"==typeof e&&"function"==typeof e[Symbol.iterator]};const t=Object.freeze([]);e.empty=function(){return t},e.single=function*(e){yield e},e.from=function(e){return e||t},e.first=function(e){return e[Symbol.iterator]().next().value},e.some=function(e,t){for(const n of e)if(t(n))return!0;return!1},e.filter=function*(e,t){for(const n of e)t(n)&&(yield n)},e.map=function*(e,t){for(const n of e)yield t(n)},e.concat=function*(...e){for(const t of e)for(const e of t)yield e},e.consume=function(t,n=Number.POSITIVE_INFINITY){const r=[];if(0===n)return[r,t];const i=t[Symbol.iterator]();for(let t=0;ti}]}}(t.Iterable||(t.Iterable={}))})),e(n[16],r([0,1,4]),(function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}), +t.ResolvedKeybinding=t.ResolvedKeybindingPart=t.ChordKeybinding=t.SimpleKeybinding=t.createSimpleKeybinding=t.createKeybinding=t.KeyChord=t.KeyCodeUtils=void 0;class r{constructor(){this._keyCodeToStr=[],this._strToKeyCode=Object.create(null)}define(e,t){this._keyCodeToStr[e]=t,this._strToKeyCode[t.toLowerCase()]=e}keyCodeToStr(e){return this._keyCodeToStr[e]}strToKeyCode(e){return this._strToKeyCode[e.toLowerCase()]||0}}const i=new r,o=new r,s=new r;function a(e,t){const n=!!(2048&e),r=!!(256&e);return new l(2===t?r:n,!!(1024&e),!!(512&e),2===t?n:r,255&e)}!function(){function e(e,t,n=t,r=n){i.define(e,t),o.define(e,n),s.define(e,r)}e(0,"unknown"),e(1,"Backspace"),e(2,"Tab"),e(3,"Enter"),e(4,"Shift"),e(5,"Ctrl"),e(6,"Alt"),e(7,"PauseBreak"),e(8,"CapsLock"),e(9,"Escape"),e(10,"Space"),e(11,"PageUp"),e(12,"PageDown"),e(13,"End"),e(14,"Home"),e(15,"LeftArrow","Left"),e(16,"UpArrow","Up"),e(17,"RightArrow","Right"),e(18,"DownArrow","Down"),e(19,"Insert"),e(20,"Delete"),e(21,"0"),e(22,"1"),e(23,"2"),e(24,"3"), +e(25,"4"),e(26,"5"),e(27,"6"),e(28,"7"),e(29,"8"),e(30,"9"),e(31,"A"),e(32,"B"),e(33,"C"),e(34,"D"),e(35,"E"),e(36,"F"),e(37,"G"),e(38,"H"),e(39,"I"),e(40,"J"),e(41,"K"),e(42,"L"),e(43,"M"),e(44,"N"),e(45,"O"),e(46,"P"),e(47,"Q"),e(48,"R"),e(49,"S"),e(50,"T"),e(51,"U"),e(52,"V"),e(53,"W"),e(54,"X"),e(55,"Y"),e(56,"Z"),e(57,"Meta"),e(58,"ContextMenu"),e(59,"F1"),e(60,"F2"),e(61,"F3"),e(62,"F4"),e(63,"F5"),e(64,"F6"),e(65,"F7"),e(66,"F8"),e(67,"F9"),e(68,"F10"),e(69,"F11"),e(70,"F12"),e(71,"F13"),e(72,"F14"),e(73,"F15"),e(74,"F16"),e(75,"F17"),e(76,"F18"),e(77,"F19"),e(78,"NumLock"),e(79,"ScrollLock"),e(80,";",";","OEM_1"),e(81,"=","=","OEM_PLUS"),e(82,",",",","OEM_COMMA"),e(83,"-","-","OEM_MINUS"),e(84,".",".","OEM_PERIOD"),e(85,"/","/","OEM_2"),e(86,"`","`","OEM_3"),e(110,"ABNT_C1"),e(111,"ABNT_C2"),e(87,"[","[","OEM_4"),e(88,"\\","\\","OEM_5"),e(89,"]","]","OEM_6"),e(90,"'","'","OEM_7"),e(91,"OEM_8"),e(92,"OEM_102"),e(93,"NumPad0"),e(94,"NumPad1"),e(95,"NumPad2"),e(96,"NumPad3"),e(97,"NumPad4"), +e(98,"NumPad5"),e(99,"NumPad6"),e(100,"NumPad7"),e(101,"NumPad8"),e(102,"NumPad9"),e(103,"NumPad_Multiply"),e(104,"NumPad_Add"),e(105,"NumPad_Separator"),e(106,"NumPad_Subtract"),e(107,"NumPad_Decimal"),e(108,"NumPad_Divide")}(),function(e){e.toString=function(e){return i.keyCodeToStr(e)},e.fromString=function(e){return i.strToKeyCode(e)},e.toUserSettingsUS=function(e){return o.keyCodeToStr(e)},e.toUserSettingsGeneral=function(e){return s.keyCodeToStr(e)},e.fromUserSettings=function(e){return o.strToKeyCode(e)||s.strToKeyCode(e)}}(t.KeyCodeUtils||(t.KeyCodeUtils={})),t.KeyChord=function(e,t){return(e|(65535&t)<<16>>>0)>>>0},t.createKeybinding=function(e,t){if(0===e)return null;const n=(65535&e)>>>0,r=(4294901760&e)>>>16;return new u(0!==r?[a(n,t),a(r,t)]:[a(n,t)])},t.createSimpleKeybinding=a;class l{constructor(e,t,n,r,i){this.ctrlKey=e,this.shiftKey=t,this.altKey=n,this.metaKey=r,this.keyCode=i}equals(e){ +return this.ctrlKey===e.ctrlKey&&this.shiftKey===e.shiftKey&&this.altKey===e.altKey&&this.metaKey===e.metaKey&&this.keyCode===e.keyCode}isModifierKey(){return 0===this.keyCode||5===this.keyCode||57===this.keyCode||6===this.keyCode||4===this.keyCode}toChord(){return new u([this])}isDuplicateModifierCase(){return this.ctrlKey&&5===this.keyCode||this.shiftKey&&4===this.keyCode||this.altKey&&6===this.keyCode||this.metaKey&&57===this.keyCode}}t.SimpleKeybinding=l;class u{constructor(e){if(0===e.length)throw n.illegalArgument("parts");this.parts=e}}t.ChordKeybinding=u;t.ResolvedKeybindingPart=class{constructor(e,t,n,r,i,o){this.ctrlKey=e,this.shiftKey=t,this.altKey=n,this.metaKey=r,this.keyLabel=i,this.keyAriaLabel=o}};t.ResolvedKeybinding=class{}})),e(n[6],r([0,1,15]),(function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ImmortalReference=t.MutableDisposable=t.Disposable=t.DisposableStore=t.toDisposable=t.combinedDisposable=t.dispose=t.isDisposable=t.MultiDisposeError=void 0 +;const r=!1,i="__is_disposable_tracked__";function o(e){if(r&&e&&e!==c.None)try{e[i]=!0}catch(e){}}function s(e){if(!r)return e;const t=new Error("Potentially leaked disposable").stack;return setTimeout(()=>{e[i]||console.log(t)},3e3),e}class a extends Error{constructor(e){super(`Encounter errors while disposing of store. Errors: [${e.join(", ")}]`),this.errors=e}}function l(e){if(n.Iterable.is(e)){let t=[];for(const n of e)if(n){o(n);try{n.dispose()}catch(e){t.push(e)}}if(1===t.length)throw t[0];if(t.length>1)throw new a(t);return Array.isArray(e)?[]:e}if(e)return o(e),e.dispose(),e}t.MultiDisposeError=a,t.isDisposable=function(e){return"function"==typeof e.dispose&&0===e.dispose.length},t.dispose=l,t.combinedDisposable=function(...e){return e.forEach(o),s({dispose:()=>l(e)})},t.toDisposable=function(e){const t=s({dispose:()=>{o(t),e()}});return t};class u{constructor(){this._toDispose=new Set,this._isDisposed=!1}dispose(){this._isDisposed||(o(this),this._isDisposed=!0,this.clear())}clear(){try{ +l(this._toDispose.values())}finally{this._toDispose.clear()}}add(e){if(!e)return e;if(e===this)throw new Error("Cannot register a disposable on itself!");return o(e),this._isDisposed?u.DISABLE_DISPOSED_WARNING||console.warn(new Error("Trying to add a disposable to a DisposableStore that has already been disposed of. The added object will be leaked!").stack):this._toDispose.add(e),e}}t.DisposableStore=u,u.DISABLE_DISPOSED_WARNING=!1;class c{constructor(){this._store=new u,s(this)}dispose(){o(this),this._store.dispose()}_register(e){if(e===this)throw new Error("Cannot register a disposable on itself!");return this._store.add(e)}}t.Disposable=c,c.None=Object.freeze({dispose(){}});t.MutableDisposable=class{constructor(){this._isDisposed=!1,s(this)}get value(){return this._isDisposed?void 0:this._value}set value(e){this._isDisposed||e===this._value||(this._value&&this._value.dispose(),e&&o(e),this._value=e)}clear(){this.value=void 0}dispose(){this._isDisposed=!0,o(this),this._value&&this._value.dispose(), +this._value=void 0}};t.ImmortalReference=class{constructor(e){this.object=e}dispose(){}}})),e(n[17],r([0,1]),(function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LinkedList=void 0;class n{constructor(e){this.element=e,this.next=n.Undefined,this.prev=n.Undefined}}n.Undefined=new n(void 0);t.LinkedList=class{constructor(){this._first=n.Undefined,this._last=n.Undefined,this._size=0}get size(){return this._size}isEmpty(){return this._first===n.Undefined}clear(){this._first=n.Undefined,this._last=n.Undefined,this._size=0}unshift(e){return this._insert(e,!1)}push(e){return this._insert(e,!0)}_insert(e,t){const r=new n(e);if(this._first===n.Undefined)this._first=r,this._last=r;else if(t){const e=this._last;this._last=r,r.prev=e,e.next=r}else{const e=this._first;this._first=r,r.next=e,e.prev=r}this._size+=1;let i=!1;return()=>{i||(i=!0,this._remove(r))}}shift(){if(this._first!==n.Undefined){const e=this._first.element;return this._remove(this._first),e}}pop(){if(this._last!==n.Undefined){ +const e=this._last.element;return this._remove(this._last),e}}_remove(e){if(e.prev!==n.Undefined&&e.next!==n.Undefined){const t=e.prev;t.next=e.next,e.next.prev=t}else e.prev===n.Undefined&&e.next===n.Undefined?(this._first=n.Undefined,this._last=n.Undefined):e.next===n.Undefined?(this._last=this._last.prev,this._last.next=n.Undefined):e.prev===n.Undefined&&(this._first=this._first.next,this._first.prev=n.Undefined);this._size-=1}*[Symbol.iterator](){let e=this._first;for(;e!==n.Undefined;)yield e.element,e=e.next}toArray(){const e=[];for(let t=this._first;t!==n.Undefined;t=t.next)e.push(t.element);return e}}})),e(n[7],r([0,1,4,6,17]),(function(e,t,n,r,i){"use strict";var o;Object.defineProperty(t,"__esModule",{value:!0}),t.Relay=t.EventBufferer=t.PauseableEmitter=t.Emitter=t.Event=void 0,function(e){function t(e){return(t,n=null,r)=>{let i,o=!1;return i=e(e=>{if(!o)return i?i.dispose():o=!0,t.call(n,e)},null,r),o&&i.dispose(),i}}function n(e,t){return a((n,r=null,i)=>e(e=>n.call(r,t(e)),null,i))} +function i(e,t){return a((n,r=null,i)=>e(e=>{t(e),n.call(r,e)},null,i))}function o(e,t){return a((n,r=null,i)=>e(e=>t(e)&&n.call(r,e),null,i))}function s(e,t,r){let i=r;return n(e,e=>i=t(i,e))}function a(e){let t;const n=new l({onFirstListenerAdd(){t=e(n.fire,n)},onLastListenerRemove(){t.dispose()}});return n.event}function u(e,t,n=100,r=!1,i){let o,s=void 0,a=void 0,u=0;const c=new l({leakWarningThreshold:i,onFirstListenerAdd(){o=e(e=>{u++,s=t(s,e),r&&!a&&(c.fire(s),s=void 0),clearTimeout(a),a=setTimeout(()=>{const e=s;s=void 0,a=void 0,(!r||u>1)&&c.fire(e),u=0},n)})},onLastListenerRemove(){o.dispose()}});return c.event}function c(e){let t,n=!0;return o(e,e=>{const r=n||e!==t;return n=!1,t=e,r})}e.None=()=>r.Disposable.None,e.once=t,e.map=n,e.forEach=i,e.filter=o,e.signal=function(e){return e},e.any=function(...e){return(t,n=null,i)=>r.combinedDisposable(...e.map(e=>e(e=>t.call(n,e),null,i)))},e.reduce=s,e.snapshot=a,e.debounce=u,e.stopwatch=function(e){const r=(new Date).getTime() +;return n(t(e),e=>(new Date).getTime()-r)},e.latch=c,e.buffer=function(e,t=!1,n=[]){let r=n.slice(),i=e(e=>{r?r.push(e):s.fire(e)});const o=()=>{r&&r.forEach(e=>s.fire(e)),r=null},s=new l({onFirstListenerAdd(){i||(i=e(e=>s.fire(e)))},onFirstListenerDidAdd(){r&&(t?setTimeout(o):o())},onLastListenerRemove(){i&&i.dispose(),i=null}});return s.event};class d{constructor(e){this.event=e}map(e){return new d(n(this.event,e))}forEach(e){return new d(i(this.event,e))}filter(e){return new d(o(this.event,e))}reduce(e,t){return new d(s(this.event,e,t))}latch(){return new d(c(this.event))}debounce(e,t=100,n=!1,r){return new d(u(this.event,e,t,n,r))}on(e,t,n){return this.event(e,t,n)}once(e,n,r){return t(this.event)(e,n,r)}}e.chain=function(e){return new d(e)},e.fromNodeEventEmitter=function(e,t,n=(e=>e)){const r=(...e)=>i.fire(n(...e)),i=new l({onFirstListenerAdd:()=>e.on(t,r),onLastListenerRemove:()=>e.removeListener(t,r)});return i.event},e.fromDOMEventEmitter=function(e,t,n=(e=>e)){ +const r=(...e)=>i.fire(n(...e)),i=new l({onFirstListenerAdd:()=>e.addEventListener(t,r),onLastListenerRemove:()=>e.removeEventListener(t,r)});return i.event},e.fromPromise=function(e){const t=new l;let n=!1;return e.then(void 0,()=>null).then(()=>{n?t.fire(void 0):setTimeout(()=>t.fire(void 0),0)}),n=!0,t.event},e.toPromise=function(e){return new Promise(n=>t(e)(n))}}(o=t.Event||(t.Event={}));let s=-1;class a{constructor(e,t=Math.random().toString(18).slice(2,5)){this.customThreshold=e,this.name=t,this._warnCountdown=0}dispose(){this._stacks&&this._stacks.clear()}check(e){let t=s;if("number"==typeof this.customThreshold&&(t=this.customThreshold),t<=0||e{const e=this._stacks.get(n)||0;this._stacks.set(n,e-1)}}}class l{constructor(e){this._disposed=!1,this._options=e,this._leakageMon=s>0?new a(this._options&&this._options.leakWarningThreshold):void 0}get event(){return this._event||(this._event=(e,t,n)=>{this._listeners||(this._listeners=new i.LinkedList);const o=this._listeners.isEmpty();o&&this._options&&this._options.onFirstListenerAdd&&this._options.onFirstListenerAdd(this);const s=this._listeners.push(t?[e,t]:e);let a,u;return o&&this._options&&this._options.onFirstListenerDidAdd&&this._options.onFirstListenerDidAdd(this),this._options&&this._options.onListenerDidAdd&&this._options.onListenerDidAdd(this,e,t),this._leakageMon&&(a=this._leakageMon.check(this._listeners.size)),u={dispose:()=>{if(a&&a(),u.dispose=l._noop,!this._disposed&&(s(),this._options&&this._options.onLastListenerRemove)){ +this._listeners&&!this._listeners.isEmpty()||this._options.onLastListenerRemove(this)}}},n instanceof r.DisposableStore?n.add(u):Array.isArray(n)&&n.push(u),u}),this._event}fire(e){if(this._listeners){this._deliveryQueue||(this._deliveryQueue=new i.LinkedList);for(let t of this._listeners)this._deliveryQueue.push([t,e]);for(;this._deliveryQueue.size>0;){const[e,t]=this._deliveryQueue.shift();try{"function"==typeof e?e.call(void 0,t):e[0].call(e[1],t)}catch(e){n.onUnexpectedError(e)}}}}dispose(){this._listeners&&this._listeners.clear(),this._deliveryQueue&&this._deliveryQueue.clear(),this._leakageMon&&this._leakageMon.dispose(),this._disposed=!0}}t.Emitter=l,l._noop=function(){};t.PauseableEmitter=class extends l{constructor(e){super(e),this._isPaused=0,this._eventQueue=new i.LinkedList,this._mergeFn=e&&e.merge}pause(){this._isPaused++}resume(){if(0!==this._isPaused&&0==--this._isPaused)if(this._mergeFn){const e=this._eventQueue.toArray();this._eventQueue.clear(),super.fire(this._mergeFn(e)) +}else for(;!this._isPaused&&0!==this._eventQueue.size;)super.fire(this._eventQueue.shift())}fire(e){this._listeners&&(0!==this._isPaused?this._eventQueue.push(e):super.fire(e))}};t.EventBufferer=class{constructor(){this.buffers=[]}wrapEvent(e){return(t,n,r)=>e(e=>{const r=this.buffers[this.buffers.length-1];r?r.push(()=>t.call(n,e)):t.call(n,e)},void 0,r)}bufferEvents(e){const t=[];this.buffers.push(t);const n=e();return this.buffers.pop(),t.forEach(e=>e()),n}};t.Relay=class{constructor(){this.listening=!1,this.inputEvent=o.None,this.inputEventListener=r.Disposable.None,this.emitter=new l({onFirstListenerDidAdd:()=>{this.listening=!0,this.inputEventListener=this.inputEvent(this.emitter.fire,this.emitter)},onLastListenerRemove:()=>{this.listening=!1,this.inputEventListener.dispose()}}),this.event=this.emitter.event}set input(e){this.inputEvent=e,this.listening&&(this.inputEventListener.dispose(),this.inputEventListener=e(this.emitter.fire,this.emitter))}dispose(){this.inputEventListener.dispose(), +this.emitter.dispose()}}})),e(n[18],r([0,1,7]),(function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CancellationTokenSource=t.CancellationToken=void 0;const r=Object.freeze((function(e,t){const n=setTimeout(e.bind(t),0);return{dispose(){clearTimeout(n)}}}));var i;!function(e){e.isCancellationToken=function(t){return t===e.None||t===e.Cancelled||(t instanceof o||!(!t||"object"!=typeof t)&&("boolean"==typeof t.isCancellationRequested&&"function"==typeof t.onCancellationRequested))},e.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:n.Event.None}),e.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:r})}(i=t.CancellationToken||(t.CancellationToken={}));class o{constructor(){this._isCancelled=!1,this._emitter=null}cancel(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){ +return this._isCancelled?r:(this._emitter||(this._emitter=new n.Emitter),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=null)}}t.CancellationTokenSource=class{constructor(e){this._token=void 0,this._parentListener=void 0,this._parentListener=e&&e.onCancellationRequested(this.cancel,this)}get token(){return this._token||(this._token=new o),this._token}cancel(){this._token?this._token instanceof o&&this._token.cancel():this._token=i.Cancelled}dispose(e=!1){e&&this.cancel(),this._parentListener&&this._parentListener.dispose(),this._token?this._token instanceof o&&this._token.dispose():this._token=i.None}}})),e(n[3],r([0,1]),(function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isLittleEndian=t.OS=t.setImmediate=t.globals=t.isIOS=t.isWeb=t.isNative=t.isLinux=t.isMacintosh=t.isWindows=void 0;let n=!1,r=!1,i=!1,o=!1,s=!1,a=!1,l=void 0,u="en",c=void 0,d=void 0 +;const h="undefined"!=typeof process&&void 0!==process.versions&&void 0!==process.versions.electron&&"renderer"===process.type;if("object"!=typeof navigator||h){if("object"==typeof process){n="win32"===process.platform,r="darwin"===process.platform,i="linux"===process.platform,l="en",u="en";const e=process.env.VSCODE_NLS_CONFIG;if(e)try{const t=JSON.parse(e),n=t.availableLanguages["*"];l=t.locale,u=n||"en",c=t._translationsConfigFile}catch(e){}o=!0}}else n=(d=navigator.userAgent).indexOf("Windows")>=0,r=d.indexOf("Macintosh")>=0,a=(d.indexOf("Macintosh")>=0||d.indexOf("iPad")>=0||d.indexOf("iPhone")>=0)&&!!navigator.maxTouchPoints&&navigator.maxTouchPoints>0,i=d.indexOf("Linux")>=0,s=!0,u=l=navigator.language;let f=0;r?f=1:n?f=3:i&&(f=2),t.isWindows=n,t.isMacintosh=r,t.isLinux=i,t.isNative=o,t.isWeb=s,t.isIOS=a;const g="object"==typeof self?self:"object"==typeof global?global:{};t.globals=g,t.setImmediate=function(){if(t.globals.setImmediate)return t.globals.setImmediate.bind(t.globals) +;if("function"==typeof t.globals.postMessage&&!t.globals.importScripts){let e=[];t.globals.addEventListener("message",t=>{if(t.data&&t.data.vscodeSetImmediateId)for(let n=0,r=e.length;n{const i=++n;e.push({id:i,callback:r}),t.globals.postMessage({vscodeSetImmediateId:i},"*")}}if("undefined"!=typeof process&&"function"==typeof process.nextTick)return process.nextTick.bind(process);const e=Promise.resolve();return t=>e.then(t)}(),t.OS=r||a?2:n?1:3;let m=!0,p=!1;t.isLittleEndian=function(){if(!p){p=!0;const e=new Uint8Array(2);e[0]=1,e[1]=2;const t=new Uint16Array(e.buffer);m=513===t[0]}return m}})),e(n[19],r([0,1,3]),(function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.platform=t.env=t.cwd=void 0;const r="undefined"==typeof process?{cwd:()=>"/",env:Object.create(null),get platform(){return n.isWindows?"win32":n.isMacintosh?"darwin":"linux"}, +nextTick:e=>n.setImmediate(e)}:process;t.cwd=r.cwd,t.env=r.env,t.platform=r.platform})),e(n[20],r([0,1,19]),(function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.sep=t.extname=t.basename=t.dirname=t.relative=t.resolve=t.normalize=t.posix=t.win32=void 0;const r=65,i=97,o=90,s=122,a=46,l=47,u=92;class c extends Error{constructor(e,t,n){let r;"string"==typeof t&&0===t.indexOf("not ")?(r="must not be",t=t.replace(/^not /,"")):r="must be";const i=-1!==e.indexOf(".")?"property":"argument";let o=`The "${e}" ${i} ${r} of type ${t}`;super(o+=`. Received type ${typeof n}`),this.code="ERR_INVALID_ARG_TYPE"}}function d(e,t){if("string"!=typeof e)throw new c(t,"string",e)}function h(e){return e===l||e===u}function f(e){return e===l}function g(e){return e>=r&&e<=o||e>=i&&e<=s}function m(e,t,n,r){let i="",o=0,s=-1,u=0,c=0;for(let d=0;d<=e.length;++d){if(d2){const e=i.lastIndexOf(n);-1===e?(i="",o=0):o=(i=i.slice(0,e)).length-1-i.lastIndexOf(n),s=d,u=0;continue}if(0!==i.length){i="",o=0,s=d,u=0;continue}}t&&(i+=i.length>0?`${n}..`:"..",o=2)}else i.length>0?i+=`${n}${e.slice(s+1,d)}`:i=e.slice(s+1,d),o=d-s-1;s=d,u=0}else c===a&&-1!==u?++u:u=-1}return i}function p(e,t){if(null===t||"object"!=typeof t)throw new c("pathObject","Object",t);const n=t.dir||t.root,r=t.base||`${t.name||""}${t.ext||""}`;return n?n===t.root?`${n}${r}`:`${n}${e}${r}`:r}t.win32={resolve(...e){let t="",r="",i=!1;for(let o=e.length-1;o>=-1;o--){let s;if(o>=0){if(d(s=e[o],"path"),0===s.length)continue}else 0===t.length?s=n.cwd():(void 0===(s=n.env[`=${t}`]||n.cwd())||s.slice(0,2).toLowerCase()!==t.toLowerCase()&&s.charCodeAt(2)===u)&&(s=`${t}\\`);const a=s.length;let l=0,c="",f=!1;const m=s.charCodeAt(0);if(1===a)h(m)&&(l=1,f=!0);else if(h(m))if(f=!0,h(s.charCodeAt(1))){let e=2,t=e +;for(;e2&&h(s.charCodeAt(2))&&(f=!0,l=3));if(c.length>0)if(t.length>0){if(c.toLowerCase()!==t.toLowerCase())continue}else t=c;if(i){if(t.length>0)break}else if(r=`${s.slice(l)}\\${r}`,i=f,f&&t.length>0)break}return r=m(r,!i,"\\",h),i?`${t}\\${r}`:`${t}${r}`||"."},normalize(e){d(e,"path");const t=e.length;if(0===t)return".";let n,r=0,i=!1;const o=e.charCodeAt(0);if(1===t)return f(o)?"\\":e;if(h(o))if(i=!0,h(e.charCodeAt(1))){let i=2,o=i;for(;i2&&h(e.charCodeAt(2))&&(i=!0,r=3));let s=r0&&h(e.charCodeAt(t-1))&&(s+="\\"),void 0===n?i?`\\${s}`:s:i?`${n}\\${s}`:`${n}${s}`},isAbsolute(e){d(e,"path");const t=e.length;if(0===t)return!1;const n=e.charCodeAt(0);return h(n)||t>2&&g(n)&&58===e.charCodeAt(1)&&h(e.charCodeAt(2))},join(...e){if(0===e.length)return".";let n,r;for(let t=0;t0&&(void 0===n?n=r=i:n+=`\\${i}`)}if(void 0===n)return".";let i=!0,o=0;if("string"==typeof r&&h(r.charCodeAt(0))){++o;const e=r.length;e>1&&h(r.charCodeAt(1))&&(++o,e>2&&(h(r.charCodeAt(2))?++o:i=!1))}if(i){for(;o=2&&(n=`\\${n.slice(o)}`)}return t.win32.normalize(n)},relative(e,n){if(d(e,"from"),d(n,"to"),e===n)return"";const r=t.win32.resolve(e),i=t.win32.resolve(n);if(r===i)return"";if((e=r.toLowerCase())===(n=i.toLowerCase()))return"";let o=0;for(;oo&&e.charCodeAt(s-1)===u;)s--;const a=s-o;let l=0;for(;ll&&n.charCodeAt(c-1)===u;)c--;const h=c-l,f=af){if(n.charCodeAt(l+m)===u)return i.slice(l+m+1);if(2===m)return i.slice(l+m)}a>f&&(e.charCodeAt(o+m)===u?g=m:2===m&&(g=3)),-1===g&&(g=0)}let p="";for(m=o+g+1;m<=s;++m)m!==s&&e.charCodeAt(m)!==u||(p+=0===p.length?"..":"\\..");return l+=g,p.length>0?`${p}${i.slice(l,c)}`:(i.charCodeAt(l)===u&&++l,i.slice(l,c))},toNamespacedPath(e){if("string"!=typeof e)return e;if(0===e.length)return"";const n=t.win32.resolve(e);if(n.length<=2)return e;if(n.charCodeAt(0)===u){if(n.charCodeAt(1)===u){const e=n.charCodeAt(2);if(63!==e&&e!==a)return`\\\\?\\UNC\\${n.slice(2)}`}}else if(g(n.charCodeAt(0))&&58===n.charCodeAt(1)&&n.charCodeAt(2)===u)return`\\\\?\\${n}`;return e},dirname(e){d(e,"path");const t=e.length +;if(0===t)return".";let n=-1,r=0;const i=e.charCodeAt(0);if(1===t)return h(i)?e:".";if(h(i)){if(n=r=1,h(e.charCodeAt(1))){let i=2,o=i;for(;i2&&h(e.charCodeAt(2))?3:2);let o=-1,s=!0;for(let n=t-1;n>=r;--n)if(h(e.charCodeAt(n))){if(!s){o=n;break}}else s=!1;if(-1===o){if(-1===n)return".";o=n}return e.slice(0,o)},basename(e,t){void 0!==t&&d(t,"ext"),d(e,"path");let n,r=0,i=-1,o=!0;if(e.length>=2&&g(e.charCodeAt(0))&&58===e.charCodeAt(1)&&(r=2),void 0!==t&&t.length>0&&t.length<=e.length){if(t===e)return"";let s=t.length-1,a=-1;for(n=e.length-1;n>=r;--n){const l=e.charCodeAt(n);if(h(l)){if(!o){r=n+1;break}}else-1===a&&(o=!1,a=n+1),s>=0&&(l===t.charCodeAt(s)?-1==--s&&(i=n):(s=-1,i=a))}return r===i?i=a:-1===i&&(i=e.length),e.slice(r,i)}for(n=e.length-1;n>=r;--n)if(h(e.charCodeAt(n))){if(!o){r=n+1;break} +}else-1===i&&(o=!1,i=n+1);return-1===i?"":e.slice(r,i)},extname(e){d(e,"path");let t=0,n=-1,r=0,i=-1,o=!0,s=0;e.length>=2&&58===e.charCodeAt(1)&&g(e.charCodeAt(0))&&(t=r=2);for(let l=e.length-1;l>=t;--l){const t=e.charCodeAt(l);if(h(t)){if(!o){r=l+1;break}}else-1===i&&(o=!1,i=l+1),t===a?-1===n?n=l:1!==s&&(s=1):-1!==n&&(s=-1)}return-1===n||-1===i||0===s||1===s&&n===i-1&&n===r+1?"":e.slice(n,i)},format:p.bind(null,"\\"),parse(e){d(e,"path");const t={root:"",dir:"",base:"",ext:"",name:""};if(0===e.length)return t;const n=e.length;let r=0,i=e.charCodeAt(0);if(1===n)return h(i)?(t.root=t.dir=e,t):(t.base=t.name=e,t);if(h(i)){if(r=1,h(e.charCodeAt(1))){let t=2,i=t;for(;t0&&(t.root=e.slice(0,r)) +;let o=-1,s=r,l=-1,u=!0,c=e.length-1,f=0;for(;c>=r;--c)if(h(i=e.charCodeAt(c))){if(!u){s=c+1;break}}else-1===l&&(u=!1,l=c+1),i===a?-1===o?o=c:1!==f&&(f=1):-1!==o&&(f=-1);return-1!==l&&(-1===o||0===f||1===f&&o===l-1&&o===s+1?t.base=t.name=e.slice(s,l):(t.name=e.slice(s,o),t.base=e.slice(s,l),t.ext=e.slice(o,l))),t.dir=s>0&&s!==r?e.slice(0,s-1):t.root,t},sep:"\\",delimiter:";",win32:null,posix:null},t.posix={resolve(...e){let t="",r=!1;for(let i=e.length-1;i>=-1&&!r;i--){const o=i>=0?e[i]:n.cwd();d(o,"path"),0!==o.length&&(t=`${o}/${t}`,r=o.charCodeAt(0)===l)}return t=m(t,!r,"/",f),r?`/${t}`:t.length>0?t:"."},normalize(e){if(d(e,"path"),0===e.length)return".";const t=e.charCodeAt(0)===l,n=e.charCodeAt(e.length-1)===l;return 0===(e=m(e,!t,"/",f)).length?t?"/":n?"./":".":(n&&(e+="/"),t?`/${e}`:e)},isAbsolute:e=>(d(e,"path"),e.length>0&&e.charCodeAt(0)===l),join(...e){if(0===e.length)return".";let n;for(let t=0;t0&&(void 0===n?n=r:n+=`/${r}`)} +return void 0===n?".":t.posix.normalize(n)},relative(e,n){if(d(e,"from"),d(n,"to"),e===n)return"";if((e=t.posix.resolve(e))===(n=t.posix.resolve(n)))return"";const r=e.length,i=r-1,o=n.length-1,s=is){if(n.charCodeAt(1+u)===l)return n.slice(1+u+1);if(0===u)return n.slice(1+u)}else i>s&&(e.charCodeAt(1+u)===l?a=u:0===u&&(a=0));let c="";for(u=1+a+1;u<=r;++u)u!==r&&e.charCodeAt(u)!==l||(c+=0===c.length?"..":"/..");return`${c}${n.slice(1+a)}`},toNamespacedPath:e=>e,dirname(e){if(d(e,"path"),0===e.length)return".";const t=e.charCodeAt(0)===l;let n=-1,r=!0;for(let t=e.length-1;t>=1;--t)if(e.charCodeAt(t)===l){if(!r){n=t;break}}else r=!1;return-1===n?t?"/":".":t&&1===n?"//":e.slice(0,n)},basename(e,t){void 0!==t&&d(t,"ext"),d(e,"path");let n,r=0,i=-1,o=!0;if(void 0!==t&&t.length>0&&t.length<=e.length){if(t===e)return"";let s=t.length-1,a=-1;for(n=e.length-1;n>=0;--n){const u=e.charCodeAt(n);if(u===l){ +if(!o){r=n+1;break}}else-1===a&&(o=!1,a=n+1),s>=0&&(u===t.charCodeAt(s)?-1==--s&&(i=n):(s=-1,i=a))}return r===i?i=a:-1===i&&(i=e.length),e.slice(r,i)}for(n=e.length-1;n>=0;--n)if(e.charCodeAt(n)===l){if(!o){r=n+1;break}}else-1===i&&(o=!1,i=n+1);return-1===i?"":e.slice(r,i)},extname(e){d(e,"path");let t=-1,n=0,r=-1,i=!0,o=0;for(let s=e.length-1;s>=0;--s){const u=e.charCodeAt(s);if(u!==l)-1===r&&(i=!1,r=s+1),u===a?-1===t?t=s:1!==o&&(o=1):-1!==t&&(o=-1);else if(!i){n=s+1;break}}return-1===t||-1===r||0===o||1===o&&t===r-1&&t===n+1?"":e.slice(t,r)},format:p.bind(null,"/"),parse(e){d(e,"path");const t={root:"",dir:"",base:"",ext:"",name:""};if(0===e.length)return t;const n=e.charCodeAt(0)===l;let r;n?(t.root="/",r=1):r=0;let i=-1,o=0,s=-1,u=!0,c=e.length-1,h=0;for(;c>=r;--c){const t=e.charCodeAt(c);if(t!==l)-1===s&&(u=!1,s=c+1),t===a?-1===i?i=c:1!==h&&(h=1):-1!==i&&(h=-1);else if(!u){o=c+1;break}}if(-1!==s){const r=0===o&&n?1:o;-1===i||0===h||1===h&&i===s-1&&i===o+1?t.base=t.name=e.slice(r,s):(t.name=e.slice(r,i), +t.base=e.slice(r,s),t.ext=e.slice(i,s))}return o>0?t.dir=e.slice(0,o-1):n&&(t.dir="/"),t},sep:"/",delimiter:":",win32:null,posix:null},t.posix.win32=t.win32.win32=t.win32,t.posix.posix=t.win32.posix=t.posix,t.normalize="win32"===n.platform?t.win32.normalize:t.posix.normalize,t.resolve="win32"===n.platform?t.win32.resolve:t.posix.resolve,t.relative="win32"===n.platform?t.win32.relative:t.posix.relative,t.dirname="win32"===n.platform?t.win32.dirname:t.posix.dirname,t.basename="win32"===n.platform?t.win32.basename:t.posix.basename,t.extname="win32"===n.platform?t.win32.extname:t.posix.extname,t.sep="win32"===n.platform?t.win32.sep:t.posix.sep})),e(n[8],r([0,1]),(function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}), +t.breakBetweenGraphemeBreakType=t.getGraphemeBreakType=t.singleLetterHash=t.containsUppercaseCharacter=t.startsWithUTF8BOM=t.UTF8_BOM_CHARACTER=t.isEmojiImprecise=t.isFullWidthCharacter=t.containsFullWidthCharacter=t.containsUnusualLineTerminators=t.UNUSUAL_LINE_TERMINATORS=t.isBasicASCII=t.containsEmoji=t.containsRTL=t.decodeUTF8=t.prevCharLength=t.nextCharLength=t.getNextCodePoint=t.computeCodePoint=t.isLowSurrogate=t.isHighSurrogate=t.commonSuffixLength=t.commonPrefixLength=t.startsWithIgnoreCase=t.equalsIgnoreCase=t.isUpperAsciiLetter=t.isLowerAsciiLetter=t.compareSubstringIgnoreCase=t.compareIgnoreCase=t.compareSubstring=t.compare=t.lastNonWhitespaceIndex=t.getLeadingWhitespace=t.firstNonWhitespaceIndex=t.regExpFlags=t.regExpLeadsToEndlessLoop=t.createRegExp=t.endsWith=t.startsWith=t.stripWildcards=t.convertSimple2RegExpPattern=t.rtrim=t.ltrim=t.trim=t.escapeRegExpCharacters=t.escape=t.format=t.pad=t.isFalsyOrWhitespace=void 0,t.isFalsyOrWhitespace=function(e){ +return!e||"string"!=typeof e||0===e.trim().length},t.pad=function(e,t,n="0"){const r=""+e,i=[r];for(let e=r.length;eo)return 1}const s=r-n,a=o-i;return sa?1:0}function a(e,t,n=0,r=e.length,i=0,o=t.length){for(;nc?1:0}function l(e){return e>=97&&e<=122}function u(e){return e>=65&&e<=90}function c(e){return l(e)||u(e)}function d(e,t,n=e.length){for(let r=0;r1){const r=e.charCodeAt(t-2);if(h(r))return g(r,n)}return n}t.format=function(e,...t){return 0===t.length?e:e.replace(n,(function(e,n){const r=parseInt(n,10);return isNaN(r)||r<0||r>=t.length?e:t[r]}))},t.escape=function(e){return e.replace(/[<>&]/g,(function(e){switch(e){case"<":return"<";case">":return">" +;case"&":return"&";default:return e}}))},t.escapeRegExpCharacters=r,t.trim=function(e,t=" "){return o(i(e,t),t)},t.ltrim=i,t.rtrim=o,t.convertSimple2RegExpPattern=function(e){return e.replace(/[\-\\\{\}\+\?\|\^\$\.\,\[\]\(\)\#\s]/g,"\\$&").replace(/[\*]/g,".*")},t.stripWildcards=function(e){return e.replace(/\*/g,"")},t.startsWith=function(e,t){if(e.length0?e.indexOf(t,n)===n:0===n&&e===t},t.createRegExp=function(e,t,n={}){if(!e)throw new Error("Cannot create regex from empty string");t||(e=r(e)),n.wholeWord&&(/\B/.test(e.charAt(0))||(e="\\b"+e),/\B/.test(e.charAt(e.length-1))||(e+="\\b"));let i="";return n.global&&(i+="g"),n.matchCase||(i+="i"),n.multiline&&(i+="m"),n.unicode&&(i+="u"),new RegExp(e,i)},t.regExpLeadsToEndlessLoop=function(e){return"^"!==e.source&&"^$"!==e.source&&"$"!==e.source&&"^\\s*$"!==e.source&&!(!e.exec("")||0!==e.lastIndex)}, +t.regExpFlags=function(e){return(e.global?"g":"")+(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.unicode?"u":"")},t.firstNonWhitespaceIndex=function(e){for(let t=0,n=e.length;t=0;n--){const t=e.charCodeAt(n);if(32!==t&&9!==t)return n}return-1},t.compare=function(e,t){return et?1:0},t.compareSubstring=s,t.compareIgnoreCase=function(e,t){return a(e,t,0,e.length,0,t.length)},t.compareSubstringIgnoreCase=a,t.isLowerAsciiLetter=l,t.isUpperAsciiLetter=u,t.equalsIgnoreCase=function(e,t){return e.length===t.length&&d(e,t)},t.startsWithIgnoreCase=function(e,t){const n=t.length;return!(t.length>e.length)&&d(e,t,n)},t.commonPrefixLength=function(e,t){let n,r=Math.min(e.length,t.length) +;for(n=0;n=65536?2:1;let s=n.getGraphemeBreakType(o);for(;t=65536?2:1,s=o}return t-r},t.prevCharLength=function(e,t){const n=E.getInstance(),r=t,i=p(e,t);t-=i>=65536?2:1;let o=n.getGraphemeBreakType(i);for(;t>0;){const r=p(e,t),i=n.getGraphemeBreakType(r);if(v(i,o))break;t-=r>=65536?2:1,o=i}return r-t},t.decodeUTF8=function(e){const t=e.byteLength,n=[];let r=0;for(;r=240&&r+3>>0|(63&e[r++])<<12>>>0|(63&e[r++])<<6>>>0|(63&e[r++])<<0>>>0:i>=224&&r+2>>0|(63&e[r++])<<6>>>0|(63&e[r++])<<0>>>0:i>=192&&r+1>>0|(63&e[r++])<<0>>>0:e[r++])>=0&&o<=55295||o>=57344&&o<=65535)n.push(String.fromCharCode(o));else if(o>=65536&&o<=1114111){const e=o-65536,t=55296+((1047552&e)>>>10),r=56320+((1023&e)>>>0);n.push(String.fromCharCode(t)),n.push(String.fromCharCode(r))}else n.push(String.fromCharCode(65533))}return n.join("")};const _=/(?:[\u05BE\u05C0\u05C3\u05C6\u05D0-\u05F4\u0608\u060B\u060D\u061B-\u064A\u066D-\u066F\u0671-\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u0710\u0712-\u072F\u074D-\u07A5\u07B1-\u07EA\u07F4\u07F5\u07FA-\u0815\u081A\u0824\u0828\u0830-\u0858\u085E-\u08BD\u200F\uFB1D\uFB1F-\uFB28\uFB2A-\uFD3D\uFD50-\uFDFC\uFE70-\uFEFC]|\uD802[\uDC00-\uDD1B\uDD20-\uDE00\uDE10-\uDE33\uDE40-\uDEE4\uDEEB-\uDF35\uDF40-\uDFFF]|\uD803[\uDC00-\uDCFF]|\uD83A[\uDC00-\uDCCF\uDD00-\uDD43\uDD50-\uDFFF]|\uD83B[\uDC00-\uDEBB])/ +;t.containsRTL=function(e){return _.test(e)};const C=/(?:[\u231A\u231B\u23F0\u23F3\u2600-\u27BF\u2B50\u2B55]|\uD83C[\uDDE6-\uDDFF\uDF00-\uDFFF]|\uD83D[\uDC00-\uDE4F\uDE80-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD00-\uDDFF\uDE70-\uDE73\uDE78-\uDE82\uDE90-\uDE95])/;t.containsEmoji=function(e){return C.test(e)};const b=/^[\t\n\r\x20-\x7E]*$/;function y(e){return(e=+e)>=11904&&e<=55215||e>=63744&&e<=64255||e>=65281&&e<=65374}function v(e,t){return 0===e?5!==t&&7!==t:(2!==e||3!==t)&&(4===e||2===e||3===e||(4===t||2===t||3===t||(8!==e||8!==t&&9!==t&&11!==t&&12!==t)&&((11!==e&&9!==e||9!==t&&10!==t)&&((12!==e&&10!==e||10!==t)&&(5!==t&&13!==t&&(7!==t&&(1!==e&&((13!==e||14!==t)&&(6!==e||6!==t)))))))))}t.isBasicASCII=function(e){return b.test(e)},t.UNUSUAL_LINE_TERMINATORS=/[\u2028\u2029]/,t.containsUnusualLineTerminators=function(e){return t.UNUSUAL_LINE_TERMINATORS.test(e)},t.containsFullWidthCharacter=function(e){for(let t=0,n=e.length;t=127462&&e<=127487||e>=9728&&e<=10175||e>=127744&&e<=128591||e>=128640&&e<=128764||e>=128992&&e<=129003||e>=129280&&e<=129535||e>=129648&&e<=129651||e>=129656&&e<=129666||e>=129680&&e<=129685},t.UTF8_BOM_CHARACTER=String.fromCharCode(65279),t.startsWithUTF8BOM=function(e){return!!(e&&e.length>0&&65279===e.charCodeAt(0))},t.containsUppercaseCharacter=function(e,t=!1){return!!e&&(t&&(e=e.replace(/\\./g,"")),e.toLowerCase()!==e)},t.singleLetterHash=function(e){return(e%=52)<26?String.fromCharCode(97+e):String.fromCharCode(65+e-26)},t.getGraphemeBreakType=function(e){return E.getInstance().getGraphemeBreakType(e)},t.breakBetweenGraphemeBreakType=v;class E{constructor(){ +this._data=JSON.parse("[0,0,0,51592,51592,11,44424,44424,11,72251,72254,5,7150,7150,7,48008,48008,11,55176,55176,11,128420,128420,14,3276,3277,5,9979,9980,14,46216,46216,11,49800,49800,11,53384,53384,11,70726,70726,5,122915,122916,5,129320,129327,14,2558,2558,5,5906,5908,5,9762,9763,14,43360,43388,8,45320,45320,11,47112,47112,11,48904,48904,11,50696,50696,11,52488,52488,11,54280,54280,11,70082,70083,1,71350,71350,7,73111,73111,5,127892,127893,14,128726,128727,14,129473,129474,14,2027,2035,5,2901,2902,5,3784,3789,5,6754,6754,5,8418,8420,5,9877,9877,14,11088,11088,14,44008,44008,5,44872,44872,11,45768,45768,11,46664,46664,11,47560,47560,11,48456,48456,11,49352,49352,11,50248,50248,11,51144,51144,11,52040,52040,11,52936,52936,11,53832,53832,11,54728,54728,11,69811,69814,5,70459,70460,5,71096,71099,7,71998,71998,5,72874,72880,5,119149,119149,7,127374,127374,14,128335,128335,14,128482,128482,14,128765,128767,14,129399,129400,14,129680,129685,14,1476,1477,5,2377,2380,7,2759,2760,5,3137,3140,7,3458,3459,7,4153,4154,5,6432,6434,5,6978,6978,5,7675,7679,5,9723,9726,14,9823,9823,14,9919,9923,14,10035,10036,14,42736,42737,5,43596,43596,5,44200,44200,11,44648,44648,11,45096,45096,11,45544,45544,11,45992,45992,11,46440,46440,11,46888,46888,11,47336,47336,11,47784,47784,11,48232,48232,11,48680,48680,11,49128,49128,11,49576,49576,11,50024,50024,11,50472,50472,11,50920,50920,11,51368,51368,11,51816,51816,11,52264,52264,11,52712,52712,11,53160,53160,11,53608,53608,11,54056,54056,11,54504,54504,11,54952,54952,11,68108,68111,5,69933,69940,5,70197,70197,7,70498,70499,7,70845,70845,5,71229,71229,5,71727,71735,5,72154,72155,5,72344,72345,5,73023,73029,5,94095,94098,5,121403,121452,5,126981,127182,14,127538,127546,14,127990,127990,14,128391,128391,14,128445,128449,14,128500,128505,14,128752,128752,14,129160,129167,14,129356,129356,14,129432,129442,14,129648,129651,14,129751,131069,14,173,173,4,1757,1757,1,2274,2274,1,2494,2494,5,2641,2641,5,2876,2876,5,3014,3016,7,3262,3262,7,3393,3396,5,3570,3571,7,3968,3972,5,4228,4228,7,6086,6086,5,6679,6680,5,6912,6915,5,7080,7081,5,7380,7392,5,8252,8252,14,9096,9096,14,9748,9749,14,9784,9786,14,9833,9850,14,9890,9894,14,9938,9938,14,9999,9999,14,10085,10087,14,12349,12349,14,43136,43137,7,43454,43456,7,43755,43755,7,44088,44088,11,44312,44312,11,44536,44536,11,44760,44760,11,44984,44984,11,45208,45208,11,45432,45432,11,45656,45656,11,45880,45880,11,46104,46104,11,46328,46328,11,46552,46552,11,46776,46776,11,47000,47000,11,47224,47224,11,47448,47448,11,47672,47672,11,47896,47896,11,48120,48120,11,48344,48344,11,48568,48568,11,48792,48792,11,49016,49016,11,49240,49240,11,49464,49464,11,49688,49688,11,49912,49912,11,50136,50136,11,50360,50360,11,50584,50584,11,50808,50808,11,51032,51032,11,51256,51256,11,51480,51480,11,51704,51704,11,51928,51928,11,52152,52152,11,52376,52376,11,52600,52600,11,52824,52824,11,53048,53048,11,53272,53272,11,53496,53496,11,53720,53720,11,53944,53944,11,54168,54168,11,54392,54392,11,54616,54616,11,54840,54840,11,55064,55064,11,65438,65439,5,69633,69633,5,69837,69837,1,70018,70018,7,70188,70190,7,70368,70370,7,70465,70468,7,70712,70719,5,70835,70840,5,70850,70851,5,71132,71133,5,71340,71340,7,71458,71461,5,71985,71989,7,72002,72002,7,72193,72202,5,72281,72283,5,72766,72766,7,72885,72886,5,73104,73105,5,92912,92916,5,113824,113827,4,119173,119179,5,121505,121519,5,125136,125142,5,127279,127279,14,127489,127490,14,127570,127743,14,127900,127901,14,128254,128254,14,128369,128370,14,128400,128400,14,128425,128432,14,128468,128475,14,128489,128494,14,128715,128720,14,128745,128745,14,128759,128760,14,129004,129023,14,129296,129304,14,129340,129342,14,129388,129392,14,129404,129407,14,129454,129455,14,129485,129487,14,129659,129663,14,129719,129727,14,917536,917631,5,13,13,2,1160,1161,5,1564,1564,4,1807,1807,1,2085,2087,5,2363,2363,7,2402,2403,5,2507,2508,7,2622,2624,7,2691,2691,7,2786,2787,5,2881,2884,5,3006,3006,5,3072,3072,5,3170,3171,5,3267,3268,7,3330,3331,7,3406,3406,1,3538,3540,5,3655,3662,5,3897,3897,5,4038,4038,5,4184,4185,5,4352,4447,8,6068,6069,5,6155,6157,5,6448,6449,7,6742,6742,5,6783,6783,5,6966,6970,5,7042,7042,7,7143,7143,7,7212,7219,5,7412,7412,5,8206,8207,4,8294,8303,4,8596,8601,14,9410,9410,14,9742,9742,14,9757,9757,14,9770,9770,14,9794,9794,14,9828,9828,14,9855,9855,14,9882,9882,14,9900,9903,14,9929,9933,14,9963,9967,14,9987,9988,14,10006,10006,14,10062,10062,14,10175,10175,14,11744,11775,5,42607,42607,5,43043,43044,7,43263,43263,5,43444,43445,7,43569,43570,5,43698,43700,5,43766,43766,5,44032,44032,11,44144,44144,11,44256,44256,11,44368,44368,11,44480,44480,11,44592,44592,11,44704,44704,11,44816,44816,11,44928,44928,11,45040,45040,11,45152,45152,11,45264,45264,11,45376,45376,11,45488,45488,11,45600,45600,11,45712,45712,11,45824,45824,11,45936,45936,11,46048,46048,11,46160,46160,11,46272,46272,11,46384,46384,11,46496,46496,11,46608,46608,11,46720,46720,11,46832,46832,11,46944,46944,11,47056,47056,11,47168,47168,11,47280,47280,11,47392,47392,11,47504,47504,11,47616,47616,11,47728,47728,11,47840,47840,11,47952,47952,11,48064,48064,11,48176,48176,11,48288,48288,11,48400,48400,11,48512,48512,11,48624,48624,11,48736,48736,11,48848,48848,11,48960,48960,11,49072,49072,11,49184,49184,11,49296,49296,11,49408,49408,11,49520,49520,11,49632,49632,11,49744,49744,11,49856,49856,11,49968,49968,11,50080,50080,11,50192,50192,11,50304,50304,11,50416,50416,11,50528,50528,11,50640,50640,11,50752,50752,11,50864,50864,11,50976,50976,11,51088,51088,11,51200,51200,11,51312,51312,11,51424,51424,11,51536,51536,11,51648,51648,11,51760,51760,11,51872,51872,11,51984,51984,11,52096,52096,11,52208,52208,11,52320,52320,11,52432,52432,11,52544,52544,11,52656,52656,11,52768,52768,11,52880,52880,11,52992,52992,11,53104,53104,11,53216,53216,11,53328,53328,11,53440,53440,11,53552,53552,11,53664,53664,11,53776,53776,11,53888,53888,11,54000,54000,11,54112,54112,11,54224,54224,11,54336,54336,11,54448,54448,11,54560,54560,11,54672,54672,11,54784,54784,11,54896,54896,11,55008,55008,11,55120,55120,11,64286,64286,5,66272,66272,5,68900,68903,5,69762,69762,7,69817,69818,5,69927,69931,5,70003,70003,5,70070,70078,5,70094,70094,7,70194,70195,7,70206,70206,5,70400,70401,5,70463,70463,7,70475,70477,7,70512,70516,5,70722,70724,5,70832,70832,5,70842,70842,5,70847,70848,5,71088,71089,7,71102,71102,7,71219,71226,5,71231,71232,5,71342,71343,7,71453,71455,5,71463,71467,5,71737,71738,5,71995,71996,5,72000,72000,7,72145,72147,7,72160,72160,5,72249,72249,7,72273,72278,5,72330,72342,5,72752,72758,5,72850,72871,5,72882,72883,5,73018,73018,5,73031,73031,5,73109,73109,5,73461,73462,7,94031,94031,5,94192,94193,7,119142,119142,7,119155,119162,4,119362,119364,5,121476,121476,5,122888,122904,5,123184,123190,5,126976,126979,14,127184,127231,14,127344,127345,14,127405,127461,14,127514,127514,14,127561,127567,14,127778,127779,14,127896,127896,14,127985,127986,14,127995,127999,5,128326,128328,14,128360,128366,14,128378,128378,14,128394,128397,14,128405,128406,14,128422,128423,14,128435,128443,14,128453,128464,14,128479,128480,14,128484,128487,14,128496,128498,14,128640,128709,14,128723,128724,14,128736,128741,14,128747,128748,14,128755,128755,14,128762,128762,14,128981,128991,14,129096,129103,14,129292,129292,14,129311,129311,14,129329,129330,14,129344,129349,14,129360,129374,14,129394,129394,14,129402,129402,14,129413,129425,14,129445,129450,14,129466,129471,14,129483,129483,14,129511,129535,14,129653,129655,14,129667,129670,14,129705,129711,14,129731,129743,14,917505,917505,4,917760,917999,5,10,10,3,127,159,4,768,879,5,1471,1471,5,1536,1541,1,1648,1648,5,1767,1768,5,1840,1866,5,2070,2073,5,2137,2139,5,2307,2307,7,2366,2368,7,2382,2383,7,2434,2435,7,2497,2500,5,2519,2519,5,2563,2563,7,2631,2632,5,2677,2677,5,2750,2752,7,2763,2764,7,2817,2817,5,2879,2879,5,2891,2892,7,2914,2915,5,3008,3008,5,3021,3021,5,3076,3076,5,3146,3149,5,3202,3203,7,3264,3265,7,3271,3272,7,3298,3299,5,3390,3390,5,3402,3404,7,3426,3427,5,3535,3535,5,3544,3550,7,3635,3635,7,3763,3763,7,3893,3893,5,3953,3966,5,3981,3991,5,4145,4145,7,4157,4158,5,4209,4212,5,4237,4237,5,4520,4607,10,5970,5971,5,6071,6077,5,6089,6099,5,6277,6278,5,6439,6440,5,6451,6456,7,6683,6683,5,6744,6750,5,6765,6770,7,6846,6846,5,6964,6964,5,6972,6972,5,7019,7027,5,7074,7077,5,7083,7085,5,7146,7148,7,7154,7155,7,7222,7223,5,7394,7400,5,7416,7417,5,8204,8204,5,8233,8233,4,8288,8292,4,8413,8416,5,8482,8482,14,8986,8987,14,9193,9203,14,9654,9654,14,9733,9733,14,9745,9745,14,9752,9752,14,9760,9760,14,9766,9766,14,9774,9775,14,9792,9792,14,9800,9811,14,9825,9826,14,9831,9831,14,9852,9853,14,9872,9873,14,9880,9880,14,9885,9887,14,9896,9897,14,9906,9916,14,9926,9927,14,9936,9936,14,9941,9960,14,9974,9974,14,9982,9985,14,9992,9997,14,10002,10002,14,10017,10017,14,10055,10055,14,10071,10071,14,10145,10145,14,11013,11015,14,11503,11505,5,12334,12335,5,12951,12951,14,42612,42621,5,43014,43014,5,43047,43047,7,43204,43205,5,43335,43345,5,43395,43395,7,43450,43451,7,43561,43566,5,43573,43574,5,43644,43644,5,43710,43711,5,43758,43759,7,44005,44005,5,44012,44012,7,44060,44060,11,44116,44116,11,44172,44172,11,44228,44228,11,44284,44284,11,44340,44340,11,44396,44396,11,44452,44452,11,44508,44508,11,44564,44564,11,44620,44620,11,44676,44676,11,44732,44732,11,44788,44788,11,44844,44844,11,44900,44900,11,44956,44956,11,45012,45012,11,45068,45068,11,45124,45124,11,45180,45180,11,45236,45236,11,45292,45292,11,45348,45348,11,45404,45404,11,45460,45460,11,45516,45516,11,45572,45572,11,45628,45628,11,45684,45684,11,45740,45740,11,45796,45796,11,45852,45852,11,45908,45908,11,45964,45964,11,46020,46020,11,46076,46076,11,46132,46132,11,46188,46188,11,46244,46244,11,46300,46300,11,46356,46356,11,46412,46412,11,46468,46468,11,46524,46524,11,46580,46580,11,46636,46636,11,46692,46692,11,46748,46748,11,46804,46804,11,46860,46860,11,46916,46916,11,46972,46972,11,47028,47028,11,47084,47084,11,47140,47140,11,47196,47196,11,47252,47252,11,47308,47308,11,47364,47364,11,47420,47420,11,47476,47476,11,47532,47532,11,47588,47588,11,47644,47644,11,47700,47700,11,47756,47756,11,47812,47812,11,47868,47868,11,47924,47924,11,47980,47980,11,48036,48036,11,48092,48092,11,48148,48148,11,48204,48204,11,48260,48260,11,48316,48316,11,48372,48372,11,48428,48428,11,48484,48484,11,48540,48540,11,48596,48596,11,48652,48652,11,48708,48708,11,48764,48764,11,48820,48820,11,48876,48876,11,48932,48932,11,48988,48988,11,49044,49044,11,49100,49100,11,49156,49156,11,49212,49212,11,49268,49268,11,49324,49324,11,49380,49380,11,49436,49436,11,49492,49492,11,49548,49548,11,49604,49604,11,49660,49660,11,49716,49716,11,49772,49772,11,49828,49828,11,49884,49884,11,49940,49940,11,49996,49996,11,50052,50052,11,50108,50108,11,50164,50164,11,50220,50220,11,50276,50276,11,50332,50332,11,50388,50388,11,50444,50444,11,50500,50500,11,50556,50556,11,50612,50612,11,50668,50668,11,50724,50724,11,50780,50780,11,50836,50836,11,50892,50892,11,50948,50948,11,51004,51004,11,51060,51060,11,51116,51116,11,51172,51172,11,51228,51228,11,51284,51284,11,51340,51340,11,51396,51396,11,51452,51452,11,51508,51508,11,51564,51564,11,51620,51620,11,51676,51676,11,51732,51732,11,51788,51788,11,51844,51844,11,51900,51900,11,51956,51956,11,52012,52012,11,52068,52068,11,52124,52124,11,52180,52180,11,52236,52236,11,52292,52292,11,52348,52348,11,52404,52404,11,52460,52460,11,52516,52516,11,52572,52572,11,52628,52628,11,52684,52684,11,52740,52740,11,52796,52796,11,52852,52852,11,52908,52908,11,52964,52964,11,53020,53020,11,53076,53076,11,53132,53132,11,53188,53188,11,53244,53244,11,53300,53300,11,53356,53356,11,53412,53412,11,53468,53468,11,53524,53524,11,53580,53580,11,53636,53636,11,53692,53692,11,53748,53748,11,53804,53804,11,53860,53860,11,53916,53916,11,53972,53972,11,54028,54028,11,54084,54084,11,54140,54140,11,54196,54196,11,54252,54252,11,54308,54308,11,54364,54364,11,54420,54420,11,54476,54476,11,54532,54532,11,54588,54588,11,54644,54644,11,54700,54700,11,54756,54756,11,54812,54812,11,54868,54868,11,54924,54924,11,54980,54980,11,55036,55036,11,55092,55092,11,55148,55148,11,55216,55238,9,65056,65071,5,65529,65531,4,68097,68099,5,68159,68159,5,69446,69456,5,69688,69702,5,69808,69810,7,69815,69816,7,69821,69821,1,69888,69890,5,69932,69932,7,69957,69958,7,70016,70017,5,70067,70069,7,70079,70080,7,70089,70092,5,70095,70095,5,70191,70193,5,70196,70196,5,70198,70199,5,70367,70367,5,70371,70378,5,70402,70403,7,70462,70462,5,70464,70464,5,70471,70472,7,70487,70487,5,70502,70508,5,70709,70711,7,70720,70721,7,70725,70725,7,70750,70750,5,70833,70834,7,70841,70841,7,70843,70844,7,70846,70846,7,70849,70849,7,71087,71087,5,71090,71093,5,71100,71101,5,71103,71104,5,71216,71218,7,71227,71228,7,71230,71230,7,71339,71339,5,71341,71341,5,71344,71349,5,71351,71351,5,71456,71457,7,71462,71462,7,71724,71726,7,71736,71736,7,71984,71984,5,71991,71992,7,71997,71997,7,71999,71999,1,72001,72001,1,72003,72003,5,72148,72151,5,72156,72159,7,72164,72164,7,72243,72248,5,72250,72250,1,72263,72263,5,72279,72280,7,72324,72329,1,72343,72343,7,72751,72751,7,72760,72765,5,72767,72767,5,72873,72873,7,72881,72881,7,72884,72884,7,73009,73014,5,73020,73021,5,73030,73030,1,73098,73102,7,73107,73108,7,73110,73110,7,73459,73460,5,78896,78904,4,92976,92982,5,94033,94087,7,94180,94180,5,113821,113822,5,119141,119141,5,119143,119145,5,119150,119154,5,119163,119170,5,119210,119213,5,121344,121398,5,121461,121461,5,121499,121503,5,122880,122886,5,122907,122913,5,122918,122922,5,123628,123631,5,125252,125258,5,126980,126980,14,127183,127183,14,127245,127247,14,127340,127343,14,127358,127359,14,127377,127386,14,127462,127487,6,127491,127503,14,127535,127535,14,127548,127551,14,127568,127569,14,127744,127777,14,127780,127891,14,127894,127895,14,127897,127899,14,127902,127984,14,127987,127989,14,127991,127994,14,128000,128253,14,128255,128317,14,128329,128334,14,128336,128359,14,128367,128368,14,128371,128377,14,128379,128390,14,128392,128393,14,128398,128399,14,128401,128404,14,128407,128419,14,128421,128421,14,128424,128424,14,128433,128434,14,128444,128444,14,128450,128452,14,128465,128467,14,128476,128478,14,128481,128481,14,128483,128483,14,128488,128488,14,128495,128495,14,128499,128499,14,128506,128591,14,128710,128714,14,128721,128722,14,128725,128725,14,128728,128735,14,128742,128744,14,128746,128746,14,128749,128751,14,128753,128754,14,128756,128758,14,128761,128761,14,128763,128764,14,128884,128895,14,128992,129003,14,129036,129039,14,129114,129119,14,129198,129279,14,129293,129295,14,129305,129310,14,129312,129319,14,129328,129328,14,129331,129338,14,129343,129343,14,129351,129355,14,129357,129359,14,129375,129387,14,129393,129393,14,129395,129398,14,129401,129401,14,129403,129403,14,129408,129412,14,129426,129431,14,129443,129444,14,129451,129453,14,129456,129465,14,129472,129472,14,129475,129482,14,129484,129484,14,129488,129510,14,129536,129647,14,129652,129652,14,129656,129658,14,129664,129666,14,129671,129679,14,129686,129704,14,129712,129718,14,129728,129730,14,129744,129750,14,917504,917504,4,917506,917535,4,917632,917759,4,918000,921599,4,0,9,4,11,12,4,14,31,4,169,169,14,174,174,14,1155,1159,5,1425,1469,5,1473,1474,5,1479,1479,5,1552,1562,5,1611,1631,5,1750,1756,5,1759,1764,5,1770,1773,5,1809,1809,5,1958,1968,5,2045,2045,5,2075,2083,5,2089,2093,5,2259,2273,5,2275,2306,5,2362,2362,5,2364,2364,5,2369,2376,5,2381,2381,5,2385,2391,5,2433,2433,5,2492,2492,5,2495,2496,7,2503,2504,7,2509,2509,5,2530,2531,5,2561,2562,5,2620,2620,5,2625,2626,5,2635,2637,5,2672,2673,5,2689,2690,5,2748,2748,5,2753,2757,5,2761,2761,7,2765,2765,5,2810,2815,5,2818,2819,7,2878,2878,5,2880,2880,7,2887,2888,7,2893,2893,5,2903,2903,5,2946,2946,5,3007,3007,7,3009,3010,7,3018,3020,7,3031,3031,5,3073,3075,7,3134,3136,5,3142,3144,5,3157,3158,5,3201,3201,5,3260,3260,5,3263,3263,5,3266,3266,5,3270,3270,5,3274,3275,7,3285,3286,5,3328,3329,5,3387,3388,5,3391,3392,7,3398,3400,7,3405,3405,5,3415,3415,5,3457,3457,5,3530,3530,5,3536,3537,7,3542,3542,5,3551,3551,5,3633,3633,5,3636,3642,5,3761,3761,5,3764,3772,5,3864,3865,5,3895,3895,5,3902,3903,7,3967,3967,7,3974,3975,5,3993,4028,5,4141,4144,5,4146,4151,5,4155,4156,7,4182,4183,7,4190,4192,5,4226,4226,5,4229,4230,5,4253,4253,5,4448,4519,9,4957,4959,5,5938,5940,5,6002,6003,5,6070,6070,7,6078,6085,7,6087,6088,7,6109,6109,5,6158,6158,4,6313,6313,5,6435,6438,7,6441,6443,7,6450,6450,5,6457,6459,5,6681,6682,7,6741,6741,7,6743,6743,7,6752,6752,5,6757,6764,5,6771,6780,5,6832,6845,5,6847,6848,5,6916,6916,7,6965,6965,5,6971,6971,7,6973,6977,7,6979,6980,7,7040,7041,5,7073,7073,7,7078,7079,7,7082,7082,7,7142,7142,5,7144,7145,5,7149,7149,5,7151,7153,5,7204,7211,7,7220,7221,7,7376,7378,5,7393,7393,7,7405,7405,5,7415,7415,7,7616,7673,5,8203,8203,4,8205,8205,13,8232,8232,4,8234,8238,4,8265,8265,14,8293,8293,4,8400,8412,5,8417,8417,5,8421,8432,5,8505,8505,14,8617,8618,14,9000,9000,14,9167,9167,14,9208,9210,14,9642,9643,14,9664,9664,14,9728,9732,14,9735,9741,14,9743,9744,14,9746,9746,14,9750,9751,14,9753,9756,14,9758,9759,14,9761,9761,14,9764,9765,14,9767,9769,14,9771,9773,14,9776,9783,14,9787,9791,14,9793,9793,14,9795,9799,14,9812,9822,14,9824,9824,14,9827,9827,14,9829,9830,14,9832,9832,14,9851,9851,14,9854,9854,14,9856,9861,14,9874,9876,14,9878,9879,14,9881,9881,14,9883,9884,14,9888,9889,14,9895,9895,14,9898,9899,14,9904,9905,14,9917,9918,14,9924,9925,14,9928,9928,14,9934,9935,14,9937,9937,14,9939,9940,14,9961,9962,14,9968,9973,14,9975,9978,14,9981,9981,14,9986,9986,14,9989,9989,14,9998,9998,14,10000,10001,14,10004,10004,14,10013,10013,14,10024,10024,14,10052,10052,14,10060,10060,14,10067,10069,14,10083,10084,14,10133,10135,14,10160,10160,14,10548,10549,14,11035,11036,14,11093,11093,14,11647,11647,5,12330,12333,5,12336,12336,14,12441,12442,5,12953,12953,14,42608,42610,5,42654,42655,5,43010,43010,5,43019,43019,5,43045,43046,5,43052,43052,5,43188,43203,7,43232,43249,5,43302,43309,5,43346,43347,7,43392,43394,5,43443,43443,5,43446,43449,5,43452,43453,5,43493,43493,5,43567,43568,7,43571,43572,7,43587,43587,5,43597,43597,7,43696,43696,5,43703,43704,5,43713,43713,5,43756,43757,5,43765,43765,7,44003,44004,7,44006,44007,7,44009,44010,7,44013,44013,5,44033,44059,12,44061,44087,12,44089,44115,12,44117,44143,12,44145,44171,12,44173,44199,12,44201,44227,12,44229,44255,12,44257,44283,12,44285,44311,12,44313,44339,12,44341,44367,12,44369,44395,12,44397,44423,12,44425,44451,12,44453,44479,12,44481,44507,12,44509,44535,12,44537,44563,12,44565,44591,12,44593,44619,12,44621,44647,12,44649,44675,12,44677,44703,12,44705,44731,12,44733,44759,12,44761,44787,12,44789,44815,12,44817,44843,12,44845,44871,12,44873,44899,12,44901,44927,12,44929,44955,12,44957,44983,12,44985,45011,12,45013,45039,12,45041,45067,12,45069,45095,12,45097,45123,12,45125,45151,12,45153,45179,12,45181,45207,12,45209,45235,12,45237,45263,12,45265,45291,12,45293,45319,12,45321,45347,12,45349,45375,12,45377,45403,12,45405,45431,12,45433,45459,12,45461,45487,12,45489,45515,12,45517,45543,12,45545,45571,12,45573,45599,12,45601,45627,12,45629,45655,12,45657,45683,12,45685,45711,12,45713,45739,12,45741,45767,12,45769,45795,12,45797,45823,12,45825,45851,12,45853,45879,12,45881,45907,12,45909,45935,12,45937,45963,12,45965,45991,12,45993,46019,12,46021,46047,12,46049,46075,12,46077,46103,12,46105,46131,12,46133,46159,12,46161,46187,12,46189,46215,12,46217,46243,12,46245,46271,12,46273,46299,12,46301,46327,12,46329,46355,12,46357,46383,12,46385,46411,12,46413,46439,12,46441,46467,12,46469,46495,12,46497,46523,12,46525,46551,12,46553,46579,12,46581,46607,12,46609,46635,12,46637,46663,12,46665,46691,12,46693,46719,12,46721,46747,12,46749,46775,12,46777,46803,12,46805,46831,12,46833,46859,12,46861,46887,12,46889,46915,12,46917,46943,12,46945,46971,12,46973,46999,12,47001,47027,12,47029,47055,12,47057,47083,12,47085,47111,12,47113,47139,12,47141,47167,12,47169,47195,12,47197,47223,12,47225,47251,12,47253,47279,12,47281,47307,12,47309,47335,12,47337,47363,12,47365,47391,12,47393,47419,12,47421,47447,12,47449,47475,12,47477,47503,12,47505,47531,12,47533,47559,12,47561,47587,12,47589,47615,12,47617,47643,12,47645,47671,12,47673,47699,12,47701,47727,12,47729,47755,12,47757,47783,12,47785,47811,12,47813,47839,12,47841,47867,12,47869,47895,12,47897,47923,12,47925,47951,12,47953,47979,12,47981,48007,12,48009,48035,12,48037,48063,12,48065,48091,12,48093,48119,12,48121,48147,12,48149,48175,12,48177,48203,12,48205,48231,12,48233,48259,12,48261,48287,12,48289,48315,12,48317,48343,12,48345,48371,12,48373,48399,12,48401,48427,12,48429,48455,12,48457,48483,12,48485,48511,12,48513,48539,12,48541,48567,12,48569,48595,12,48597,48623,12,48625,48651,12,48653,48679,12,48681,48707,12,48709,48735,12,48737,48763,12,48765,48791,12,48793,48819,12,48821,48847,12,48849,48875,12,48877,48903,12,48905,48931,12,48933,48959,12,48961,48987,12,48989,49015,12,49017,49043,12,49045,49071,12,49073,49099,12,49101,49127,12,49129,49155,12,49157,49183,12,49185,49211,12,49213,49239,12,49241,49267,12,49269,49295,12,49297,49323,12,49325,49351,12,49353,49379,12,49381,49407,12,49409,49435,12,49437,49463,12,49465,49491,12,49493,49519,12,49521,49547,12,49549,49575,12,49577,49603,12,49605,49631,12,49633,49659,12,49661,49687,12,49689,49715,12,49717,49743,12,49745,49771,12,49773,49799,12,49801,49827,12,49829,49855,12,49857,49883,12,49885,49911,12,49913,49939,12,49941,49967,12,49969,49995,12,49997,50023,12,50025,50051,12,50053,50079,12,50081,50107,12,50109,50135,12,50137,50163,12,50165,50191,12,50193,50219,12,50221,50247,12,50249,50275,12,50277,50303,12,50305,50331,12,50333,50359,12,50361,50387,12,50389,50415,12,50417,50443,12,50445,50471,12,50473,50499,12,50501,50527,12,50529,50555,12,50557,50583,12,50585,50611,12,50613,50639,12,50641,50667,12,50669,50695,12,50697,50723,12,50725,50751,12,50753,50779,12,50781,50807,12,50809,50835,12,50837,50863,12,50865,50891,12,50893,50919,12,50921,50947,12,50949,50975,12,50977,51003,12,51005,51031,12,51033,51059,12,51061,51087,12,51089,51115,12,51117,51143,12,51145,51171,12,51173,51199,12,51201,51227,12,51229,51255,12,51257,51283,12,51285,51311,12,51313,51339,12,51341,51367,12,51369,51395,12,51397,51423,12,51425,51451,12,51453,51479,12,51481,51507,12,51509,51535,12,51537,51563,12,51565,51591,12,51593,51619,12,51621,51647,12,51649,51675,12,51677,51703,12,51705,51731,12,51733,51759,12,51761,51787,12,51789,51815,12,51817,51843,12,51845,51871,12,51873,51899,12,51901,51927,12,51929,51955,12,51957,51983,12,51985,52011,12,52013,52039,12,52041,52067,12,52069,52095,12,52097,52123,12,52125,52151,12,52153,52179,12,52181,52207,12,52209,52235,12,52237,52263,12,52265,52291,12,52293,52319,12,52321,52347,12,52349,52375,12,52377,52403,12,52405,52431,12,52433,52459,12,52461,52487,12,52489,52515,12,52517,52543,12,52545,52571,12,52573,52599,12,52601,52627,12,52629,52655,12,52657,52683,12,52685,52711,12,52713,52739,12,52741,52767,12,52769,52795,12,52797,52823,12,52825,52851,12,52853,52879,12,52881,52907,12,52909,52935,12,52937,52963,12,52965,52991,12,52993,53019,12,53021,53047,12,53049,53075,12,53077,53103,12,53105,53131,12,53133,53159,12,53161,53187,12,53189,53215,12,53217,53243,12,53245,53271,12,53273,53299,12,53301,53327,12,53329,53355,12,53357,53383,12,53385,53411,12,53413,53439,12,53441,53467,12,53469,53495,12,53497,53523,12,53525,53551,12,53553,53579,12,53581,53607,12,53609,53635,12,53637,53663,12,53665,53691,12,53693,53719,12,53721,53747,12,53749,53775,12,53777,53803,12,53805,53831,12,53833,53859,12,53861,53887,12,53889,53915,12,53917,53943,12,53945,53971,12,53973,53999,12,54001,54027,12,54029,54055,12,54057,54083,12,54085,54111,12,54113,54139,12,54141,54167,12,54169,54195,12,54197,54223,12,54225,54251,12,54253,54279,12,54281,54307,12,54309,54335,12,54337,54363,12,54365,54391,12,54393,54419,12,54421,54447,12,54449,54475,12,54477,54503,12,54505,54531,12,54533,54559,12,54561,54587,12,54589,54615,12,54617,54643,12,54645,54671,12,54673,54699,12,54701,54727,12,54729,54755,12,54757,54783,12,54785,54811,12,54813,54839,12,54841,54867,12,54869,54895,12,54897,54923,12,54925,54951,12,54953,54979,12,54981,55007,12,55009,55035,12,55037,55063,12,55065,55091,12,55093,55119,12,55121,55147,12,55149,55175,12,55177,55203,12,55243,55291,10,65024,65039,5,65279,65279,4,65520,65528,4,66045,66045,5,66422,66426,5,68101,68102,5,68152,68154,5,68325,68326,5,69291,69292,5,69632,69632,7,69634,69634,7,69759,69761,5]") +}static getInstance(){return E._INSTANCE||(E._INSTANCE=new E),E._INSTANCE}getGraphemeBreakType(e){if(e<32)return 10===e?3:13===e?2:4;if(e<127)return 0;const t=this._data,n=t.length/3;let r=1;for(;r<=n;)if(et[3*r+1]))return t[3*r+2];r=2*r+1}return 0}}E._INSTANCE=null})),e(n[21],r([0,1,8]),(function(e,t,n){"use strict";function r(e,t){switch(typeof e){case"object":return null===e?i(349,t):Array.isArray(e)?(n=e,s=i(104579,s=t),n.reduce((e,t)=>r(t,e),s)):function(e,t){return t=i(181387,t),Object.keys(e).sort().reduce((t,n)=>(t=o(n,t),r(e[n],t)),t)}(e,t);case"string":return o(e,t);case"boolean":return function(e,t){return i(e?433:863,t)}(e,t);case"number":return i(e,t);case"undefined":return i(937,t);default:return i(617,t)}var n,s}function i(e,t){return(t<<5)-t+e|0}function o(e,t){t=i(149417,t);for(let n=0,r=e.length;n>>r)>>>0}function a(e,t=0,n=e.byteLength,r=0){ +for(let i=0;i>>0).toString(16),t/4)}Object.defineProperty(t,"__esModule",{value:!0}),t.StringSHA1=t.stringHash=t.doHash=t.hash=void 0,t.hash=function(e){return r(e,0)},t.doHash=r,t.stringHash=o;class u{constructor(){this._h0=1732584193,this._h1=4023233417,this._h2=2562383102,this._h3=271733878,this._h4=3285377520,this._buff=new Uint8Array(67),this._buffDV=new DataView(this._buff.buffer),this._buffLen=0,this._totalLen=0,this._leftoverHighSurrogate=0,this._finished=!1}update(e){const t=e.length;if(0===t)return;const r=this._buff;let i,o,s=this._buffLen,a=this._leftoverHighSurrogate;for(0!==a?(i=a,o=-1,a=0):(i=e.charCodeAt(0),o=0);;){let l=i;if(n.isHighSurrogate(i)){if(!(o+1>>6,e[t++]=128|(63&n)>>>0):n<65536?(e[t++]=224|(61440&n)>>>12,e[t++]=128|(4032&n)>>>6,e[t++]=128|(63&n)>>>0):(e[t++]=240|(1835008&n)>>>18,e[t++]=128|(258048&n)>>>12,e[t++]=128|(4032&n)>>>6,e[t++]=128|(63&n)>>>0),t>=64&&(this._step(),t-=64,this._totalLen+=64,e[0]=e[64],e[1]=e[65],e[2]=e[66]),t}digest(){return this._finished||(this._finished=!0,this._leftoverHighSurrogate&&(this._leftoverHighSurrogate=0,this._buffLen=this._push(this._buff,this._buffLen,65533)),this._totalLen+=this._buffLen,this._wrapUp()),l(this._h0)+l(this._h1)+l(this._h2)+l(this._h3)+l(this._h4)}_wrapUp(){this._buff[this._buffLen++]=128,a(this._buff,this._buffLen),this._buffLen>56&&(this._step(),a(this._buff));const e=8*this._totalLen;this._buffDV.setUint32(56,Math.floor(e/4294967296),!1),this._buffDV.setUint32(60,e%4294967296,!1),this._step()}_step(){const e=u._bigBlock32,t=this._buffDV;for(let n=0;n<64;n+=4)e.setUint32(n,t.getUint32(n,!1),!1) +;for(let t=64;t<320;t+=4)e.setUint32(t,s(e.getUint32(t-12,!1)^e.getUint32(t-32,!1)^e.getUint32(t-56,!1)^e.getUint32(t-64,!1),1),!1);let n,r,i,o=this._h0,a=this._h1,l=this._h2,c=this._h3,d=this._h4;for(let t=0;t<80;t++)t<20?(n=a&l|~a&c,r=1518500249):t<40?(n=a^l^c,r=1859775393):t<60?(n=a&l|a&c|l&c,r=2400959708):(n=a^l^c,r=3395469782),i=s(o,5)+n+d+r+e.getUint32(4*t,!1)&4294967295,d=c,c=l,l=s(a,30),a=o,o=i;this._h0=this._h0+o&4294967295,this._h1=this._h1+a&4294967295,this._h2=this._h2+l&4294967295,this._h3=this._h3+c&4294967295,this._h4=this._h4+d&4294967295}}t.StringSHA1=u,u._bigBlock32=new DataView(new ArrayBuffer(320))})),e(n[9],r([0,1,14,21]),(function(e,t,n,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LcsDiff=t.MyArray=t.Debug=t.stringDiff=t.StringDiffSequence=void 0;class i{constructor(e){this.source=e}getElements(){const e=this.source,t=new Int32Array(e.length);for(let n=0,r=e.length;n0||this.m_modifiedCount>0)&&this.m_changes.push(new n.DiffChange(this.m_originalStart,this.m_originalCount,this.m_modifiedStart,this.m_modifiedCount)),this.m_originalCount=0,this.m_modifiedCount=0,this.m_originalStart=1073741824,this.m_modifiedStart=1073741824}AddOriginalElement(e,t){this.m_originalStart=Math.min(this.m_originalStart,e),this.m_modifiedStart=Math.min(this.m_modifiedStart,t),this.m_originalCount++}AddModifiedElement(e,t){this.m_originalStart=Math.min(this.m_originalStart,e),this.m_modifiedStart=Math.min(this.m_modifiedStart,t),this.m_modifiedCount++} +getChanges(){return(this.m_originalCount>0||this.m_modifiedCount>0)&&this.MarkNextChange(),this.m_changes}getReverseChanges(){return(this.m_originalCount>0||this.m_modifiedCount>0)&&this.MarkNextChange(),this.m_changes.reverse(),this.m_changes}}class l{constructor(e,t,n=null){this.ContinueProcessingPredicate=n;const[r,i,o]=l._getElements(e),[s,a,u]=l._getElements(t);this._hasStrings=o&&u,this._originalStringElements=r,this._originalElementsOrHash=i,this._modifiedStringElements=s,this._modifiedElementsOrHash=a,this.m_forwardHistory=[],this.m_reverseHistory=[]}static _isStringArray(e){return e.length>0&&"string"==typeof e[0]}static _getElements(e){const t=e.getElements();if(l._isStringArray(t)){const e=new Int32Array(t.length);for(let n=0,i=t.length;n=e&&i>=r&&this.ElementsAreEqual(t,i);)t--,i--;if(e>t||r>i){let s +;return r<=i?(o.Assert(e===t+1,"originalStart should only be one more than originalEnd"),s=[new n.DiffChange(e,0,r,i-r+1)]):e<=t?(o.Assert(r===i+1,"modifiedStart should only be one more than modifiedEnd"),s=[new n.DiffChange(e,t-e+1,r,0)]):(o.Assert(e===t+1,"originalStart should only be one more than originalEnd"),o.Assert(r===i+1,"modifiedStart should only be one more than modifiedEnd"),s=[]),s}const a=[0],l=[0],u=this.ComputeRecursionPoint(e,t,r,i,a,l,s),c=a[0],d=l[0];if(null!==u)return u;if(!s[0]){const o=this.ComputeDiffRecursive(e,c,r,d,s);let a=[];return a=s[0]?[new n.DiffChange(c+1,t-(c+1)+1,d+1,i-(d+1)+1)]:this.ComputeDiffRecursive(c+1,t,d+1,i,s),this.ConcatenateChanges(o,a)}return[new n.DiffChange(e,t-e+1,r,i-r+1)]}WALKTRACE(e,t,r,i,o,s,l,u,c,d,h,f,g,m,p,_,C,b){let y=null,v=null,E=new a,S=t,L=r,A=g[0]-_[0]-i,N=-1073741824,w=this.m_forwardHistory.length-1;do{const t=A+e;t===S||t=0&&(e=(c=this.m_forwardHistory[w])[0],S=1,L=c.length-1)}while(--w>=-1);if(y=E.getReverseChanges(),b[0]){let e=g[0]+1,t=_[0]+1;if(null!==y&&y.length>0){const n=y[y.length-1];e=Math.max(e,n.getOriginalEnd()),t=Math.max(t,n.getModifiedEnd())}v=[new n.DiffChange(e,f-e+1,t,p-t+1)]}else{E=new a,S=s,L=l,A=g[0]-_[0]-u,N=1073741824,w=C?this.m_reverseHistory.length-1:this.m_reverseHistory.length-2;do{const e=A+o;e===S||e=d[e+1]?(m=(h=d[e+1]-1)-A-u,h>N&&E.MarkNextChange(),N=h+1,E.AddOriginalElement(h+1,m+1),A=e+1-o):(m=(h=d[e-1])-A-u,h>N&&E.MarkNextChange(),N=h,E.AddModifiedElement(h+1,m+1),A=e-1-o),w>=0&&(o=(d=this.m_reverseHistory[w])[0],S=1,L=d.length-1)}while(--w>=-1);v=E.getChanges()}return this.ConcatenateChanges(y,v)}ComputeRecursionPoint(e,t,r,i,o,a,l){let u=0,c=0,d=0,h=0,f=0,g=0;e--,r--,o[0]=0,a[0]=0,this.m_forwardHistory=[],this.m_reverseHistory=[] +;const m=t-e+(i-r),p=m+1,_=new Int32Array(p),C=new Int32Array(p),b=i-r,y=t-e,v=e-r,E=t-i,S=(y-b)%2==0;_[b]=e,C[y]=t,l[0]=!1;for(let L=1;L<=m/2+1;L++){let m=0,A=0;d=this.ClipDiagonalBound(b-L,L,b,p),h=this.ClipDiagonalBound(b+L,L,b,p);for(let e=d;e<=h;e+=2){c=(u=e===d||em+A&&(m=u,A=c),!S&&Math.abs(e-y)<=L-1&&u>=C[e])return o[0]=u,a[0]=c,n<=C[e]&&L<=1448?this.WALKTRACE(b,d,h,v,y,f,g,E,_,C,u,t,o,c,i,a,S,l):null}const N=(m-e+(A-r)-L)/2;if(null!==this.ContinueProcessingPredicate&&!this.ContinueProcessingPredicate(m,N))return l[0]=!0,o[0]=m,a[0]=A,N>0&&L<=1448?this.WALKTRACE(b,d,h,v,y,f,g,E,_,C,u,t,o,c,i,a,S,l):(e++,r++,[new n.DiffChange(e,t-e+1,r,i-r+1)]);f=this.ClipDiagonalBound(y-L,L,y,p),g=this.ClipDiagonalBound(y+L,L,y,p);for(let n=f;n<=g;n+=2){c=(u=n===f||n=C[n+1]?C[n+1]-1:C[n-1])-(n-y)-E;const s=u;for(;u>e&&c>r&&this.ElementsAreEqual(u,c);)u--,c--;if(C[n]=u, +S&&Math.abs(n-b)<=L&&u<=_[n])return o[0]=u,a[0]=c,s>=_[n]&&L<=1448?this.WALKTRACE(b,d,h,v,y,f,g,E,_,C,u,t,o,c,i,a,S,l):null}if(L<=1447){let e=new Int32Array(h-d+2);e[0]=b-d+1,s.Copy2(_,d,e,1,h-d+1),this.m_forwardHistory.push(e),(e=new Int32Array(g-f+2))[0]=y-f+1,s.Copy2(C,f,e,1,g-f+1),this.m_reverseHistory.push(e)}}return this.WALKTRACE(b,d,h,v,y,f,g,E,_,C,u,t,o,c,i,a,S,l)}PrettifyChanges(e){for(let t=0;t0,s=n.modifiedLength>0;for(;n.originalStart+n.originalLength=0;t--){const n=e[t];let r=0,i=0;if(t>0){const n=e[t-1];n.originalLength>0&&(r=n.originalStart+n.originalLength),n.modifiedLength>0&&(i=n.modifiedStart+n.modifiedLength)}const o=n.originalLength>0,s=n.modifiedLength>0;let a=0,l=this._boundaryScore(n.originalStart,n.originalLength,n.modifiedStart,n.modifiedLength);for(let e=1;;e++){const t=n.originalStart-e,u=n.modifiedStart-e;if(tl&&(l=c,a=e)}n.originalStart-=a,n.modifiedStart-=a}return e}_OriginalIsBoundary(e){return e<=0||e>=this._originalElementsOrHash.length-1||this._hasStrings&&/^\s*$/.test(this._originalStringElements[e])}_OriginalRegionIsBoundary(e,t){if(this._OriginalIsBoundary(e)||this._OriginalIsBoundary(e-1))return!0;if(t>0){const n=e+t;if(this._OriginalIsBoundary(n-1)||this._OriginalIsBoundary(n))return!0}return!1} +_ModifiedIsBoundary(e){return e<=0||e>=this._modifiedElementsOrHash.length-1||this._hasStrings&&/^\s*$/.test(this._modifiedStringElements[e])}_ModifiedRegionIsBoundary(e,t){if(this._ModifiedIsBoundary(e)||this._ModifiedIsBoundary(e-1))return!0;if(t>0){const n=e+t;if(this._ModifiedIsBoundary(n-1)||this._ModifiedIsBoundary(n))return!0}return!1}_boundaryScore(e,t,n,r){return(this._OriginalRegionIsBoundary(e,t)?1:0)+(this._ModifiedRegionIsBoundary(n,r)?1:0)}ConcatenateChanges(e,t){let n=[];if(0===e.length||0===t.length)return t.length>0?t:e;if(this.ChangesOverlap(e[e.length-1],t[0],n)){const r=new Array(e.length+t.length-1);return s.Copy(e,0,r,0,e.length-1),r[e.length-1]=n[0],s.Copy(t,1,r,e.length,t.length-1),r}{const n=new Array(e.length+t.length);return s.Copy(e,0,n,0,e.length),s.Copy(t,0,n,e.length,t.length),n}}ChangesOverlap(e,t,r){if(o.Assert(e.originalStart<=t.originalStart,"Left change is not less than or equal to right change"), +o.Assert(e.modifiedStart<=t.modifiedStart,"Left change is not less than or equal to right change"),e.originalStart+e.originalLength>=t.originalStart||e.modifiedStart+e.modifiedLength>=t.modifiedStart){const i=e.originalStart;let o=e.originalLength;const s=e.modifiedStart;let a=e.modifiedLength;return e.originalStart+e.originalLength>=t.originalStart&&(o=t.originalStart+t.originalLength-e.originalStart),e.modifiedStart+e.modifiedLength>=t.modifiedStart&&(a=t.modifiedStart+t.modifiedLength-e.modifiedStart),r[0]=new n.DiffChange(i,o,s,a),!0}return r[0]=null,!1}ClipDiagonalBound(e,t,n,r){if(e>=0&&e(function(){const n=Array.prototype.slice.call(arguments,0);return t(e,n)});let r={};for(const t of e)r[t]=n(t);return r},t.withNullAsUndefined=function(e){return null===e?void 0:e}})),e(n[11],r([0,1]),(function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.toUint32=t.toUint8=void 0,t.toUint8=function(e){return e<0?0:e>255?255:0|e},t.toUint32=function(e){ +return e<0?0:e>4294967295?4294967295:0|e}})),e(n[12],r([0,1,3,20]),(function(e,t,n,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.uriToFsPath=t.URI=void 0;const i=/^\w[\w\d+.-]*$/,o=/^\//,s=/^\/\//;const a="",l="/",u=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class c{constructor(e,t,n,r,u,c=!1){"object"==typeof e?(this.scheme=e.scheme||a,this.authority=e.authority||a,this.path=e.path||a,this.query=e.query||a,this.fragment=e.fragment||a):(this.scheme=function(e,t){return e||t?e:"file"}(e,c),this.authority=t||a,this.path=function(e,t){switch(e){case"https":case"http":case"file":t?t[0]!==l&&(t=l+t):t=l}return t}(this.scheme,n||a),this.query=r||a,this.fragment=u||a,function(e,t){if(!e.scheme&&t)throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${e.authority}", path: "${e.path}", query: "${e.query}", fragment: "${e.fragment}"}`);if(e.scheme&&!i.test(e.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(e.path)if(e.authority){ +if(!o.test(e.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(s.test(e.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}(this,c))}static isUri(e){return e instanceof c||!!e&&("string"==typeof e.authority&&"string"==typeof e.fragment&&"string"==typeof e.path&&"string"==typeof e.query&&"string"==typeof e.scheme&&"function"==typeof e.fsPath&&"function"==typeof e.with&&"function"==typeof e.toString)}get fsPath(){return p(this,!1)}with(e){if(!e)return this;let{scheme:t,authority:n,path:r,query:i,fragment:o}=e;return void 0===t?t=this.scheme:null===t&&(t=a),void 0===n?n=this.authority:null===n&&(n=a),void 0===r?r=this.path:null===r&&(r=a),void 0===i?i=this.query:null===i&&(i=a),void 0===o?o=this.fragment:null===o&&(o=a), +t===this.scheme&&n===this.authority&&r===this.path&&i===this.query&&o===this.fragment?this:new h(t,n,r,i,o)}static parse(e,t=!1){const n=u.exec(e);return n?new h(n[2]||a,b(n[4]||a),b(n[5]||a),b(n[7]||a),b(n[9]||a),t):new h(a,a,a,a,a)}static file(e){let t=a;if(n.isWindows&&(e=e.replace(/\\/g,l)),e[0]===l&&e[1]===l){const n=e.indexOf(l,2);-1===n?(t=e.substring(2),e=l):(t=e.substring(2,n),e=e.substring(n)||l)}return new h("file",t,e,a,a)}static from(e){return new h(e.scheme,e.authority,e.path,e.query,e.fragment)}static joinPath(e,...t){if(!e.path)throw new Error("[UriError]: cannot call joinPaths on URI without path");let i;return i=n.isWindows&&"file"===e.scheme?c.file(r.win32.join(p(e,!0),...t)).path:r.posix.join(e.path,...t),e.with({path:i})}toString(e=!1){return _(this,e)}toJSON(){return this}static revive(e){if(e){if(e instanceof c)return e;{const t=new h(e);return t._formatted=e.external,t._fsPath=e._sep===d?e.fsPath:null,t}}return e}}t.URI=c;const d=n.isWindows?1:void 0;class h extends c{constructor(){ +super(...arguments),this._formatted=null,this._fsPath=null}get fsPath(){return this._fsPath||(this._fsPath=p(this,!1)),this._fsPath}toString(e=!1){return e?_(this,!0):(this._formatted||(this._formatted=_(this,!1)),this._formatted)}toJSON(){const e={$mid:1};return this._fsPath&&(e.fsPath=this._fsPath,e._sep=d),this._formatted&&(e.external=this._formatted),this.path&&(e.path=this.path),this.scheme&&(e.scheme=this.scheme),this.authority&&(e.authority=this.authority),this.query&&(e.query=this.query),this.fragment&&(e.fragment=this.fragment),e}}const f={58:"%3A",47:"%2F",63:"%3F",35:"%23",91:"%5B",93:"%5D",64:"%40",33:"%21",36:"%24",38:"%26",39:"%27",40:"%28",41:"%29",42:"%2A",43:"%2B",44:"%2C",59:"%3B",61:"%3D",32:"%20"};function g(e,t){let n=void 0,r=-1;for(let i=0;i=97&&o<=122||o>=65&&o<=90||o>=48&&o<=57||45===o||46===o||95===o||126===o||t&&47===o)-1!==r&&(n+=encodeURIComponent(e.substring(r,i)),r=-1),void 0!==n&&(n+=e.charAt(i));else{void 0===n&&(n=e.substr(0,i)) +;const t=f[o];void 0!==t?(-1!==r&&(n+=encodeURIComponent(e.substring(r,i)),r=-1),n+=t):-1===r&&(r=i)}}return-1!==r&&(n+=encodeURIComponent(e.substring(r))),void 0!==n?n:e}function m(e){let t=void 0;for(let n=0;n1&&"file"===e.scheme?`//${e.authority}${e.path}`:47===e.path.charCodeAt(0)&&(e.path.charCodeAt(1)>=65&&e.path.charCodeAt(1)<=90||e.path.charCodeAt(1)>=97&&e.path.charCodeAt(1)<=122)&&58===e.path.charCodeAt(2)?t?e.path.substr(1):e.path[1].toLowerCase()+e.path.substr(2):e.path,n.isWindows&&(r=r.replace(/\//g,"\\")),r}function _(e,t){const n=t?m:g;let r="",{scheme:i,authority:o,path:s,query:a,fragment:u}=e;if(i&&(r+=i,r+=":"),(o||"file"===i)&&(r+=l,r+=l),o){let e=o.indexOf("@");if(-1!==e){const t=o.substr(0,e);o=o.substr(e+1),-1===(e=t.indexOf(":"))?r+=n(t,!1):(r+=n(t.substr(0,e),!1),r+=":", +r+=n(t.substr(e+1),!1)),r+="@"}-1===(e=(o=o.toLowerCase()).indexOf(":"))?r+=n(o,!1):(r+=n(o.substr(0,e),!1),r+=o.substr(e))}if(s){if(s.length>=3&&47===s.charCodeAt(0)&&58===s.charCodeAt(2)){const e=s.charCodeAt(1);e>=65&&e<=90&&(s=`/${String.fromCharCode(e+32)}:${s.substr(3)}`)}else if(s.length>=2&&58===s.charCodeAt(1)){const e=s.charCodeAt(0);e>=65&&e<=90&&(s=`${String.fromCharCode(e+32)}:${s.substr(2)}`)}r+=n(s,!0)}return a&&(r+="?",r+=n(a,!1)),u&&(r+="#",r+=t?u:g(u,!1)),r}t.uriToFsPath=p;const C=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function b(e){return e.match(C)?e.replace(C,e=>(function e(t){try{return decodeURIComponent(t)}catch(n){return t.length>3?t.substr(0,3)+e(t.substr(3)):t}})(e)):e}})),e(n[33],r([0,1,4,6,3,10]),(function(e,t,n,r,i,o){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.create=t.SimpleWorkerServer=t.SimpleWorkerClient=t.logOnceWebWorkerWarning=void 0;const s="$initialize";let a=!1;t.logOnceWebWorkerWarning=function(e){i.isWeb&&(a||(a=!0, +console.warn("Could not create web worker(s). Falling back to loading web worker code in main thread, which might cause UI freezes. Please see https://github.com/Microsoft/monaco-editor#faq")),console.warn(e.message))};class l{constructor(e){this._workerId=-1,this._handler=e,this._lastSentReq=0,this._pendingReplies=Object.create(null)}setWorkerId(e){this._workerId=e}sendMessage(e,t){let n=String(++this._lastSentReq);return new Promise((r,i)=>{this._pendingReplies[n]={resolve:r,reject:i},this._send({vsWorker:this._workerId,req:n,method:e,args:t})})}handleMessage(e){e&&e.vsWorker&&(-1!==this._workerId&&e.vsWorker!==this._workerId||this._handleMessage(e))}_handleMessage(e){if(e.seq){let t=e;if(!this._pendingReplies[t.seq])return void console.warn("Got reply to unknown seq");let n=this._pendingReplies[t.seq];if(delete this._pendingReplies[t.seq],t.err){let e=t.err;return t.err.$isError&&((e=new Error).name=t.err.name,e.message=t.err.message,e.stack=t.err.stack),void n.reject(e)}return void n.resolve(t.res)} +let t=e,r=t.req;this._handler.handleMessage(t.method,t.args).then(e=>{this._send({vsWorker:this._workerId,seq:r,res:e,err:void 0})},e=>{e.detail instanceof Error&&(e.detail=n.transformErrorForSerialization(e.detail)),this._send({vsWorker:this._workerId,seq:r,res:void 0,err:n.transformErrorForSerialization(e)})})}_send(e){let t=[];if(e.req){const n=e;for(let e=0;e{this._protocol.handleMessage(e)},e=>{r&&r(e)})),this._protocol=new l({sendMessage:(e,t)=>{this._worker.postMessage(e,t)},handleMessage:(e,t)=>{if("function"!=typeof n[e])return Promise.reject(new Error("Missing method "+e+" on main thread host."));try{return Promise.resolve(n[e].apply(n,t))}catch(e){return Promise.reject(e)}}}), +this._protocol.setWorkerId(this._worker.getId());let i=null;void 0!==self.require&&"function"==typeof self.require.getConfig?i=self.require.getConfig():void 0!==self.requirejs&&(i=self.requirejs.s.contexts._.config);const a=o.getAllMethodNames(n);this._onModuleLoaded=this._protocol.sendMessage(s,[this._worker.getId(),JSON.parse(JSON.stringify(i)),t,a]);const u=(e,t)=>this._request(e,t);this._lazyProxy=new Promise((e,n)=>{r=n,this._onModuleLoaded.then(t=>{e(o.createProxyObject(t,u))},e=>{n(e),this._onError("Worker failed to load "+t,e)})})}getProxyObject(){return this._lazyProxy}_request(e,t){return new Promise((n,r)=>{this._onModuleLoaded.then(()=>{this._protocol.sendMessage(e,t).then(n,r)},r)})}_onError(e,t){console.error(e),console.info(t)}}t.SimpleWorkerClient=u;class c{constructor(e,t){this._requestHandlerFactory=t,this._requestHandler=null,this._protocol=new l({sendMessage:(t,n)=>{e(t,n)},handleMessage:(e,t)=>this._handleMessage(e,t)})}onmessage(e){this._protocol.handleMessage(e)}_handleMessage(e,t){ +if(e===s)return this.initialize(t[0],t[1],t[2],t[3]);if(!this._requestHandler||"function"!=typeof this._requestHandler[e])return Promise.reject(new Error("Missing requestHandler or method: "+e));try{return Promise.resolve(this._requestHandler[e].apply(this._requestHandler,t))}catch(e){return Promise.reject(e)}}initialize(e,t,n,r){this._protocol.setWorkerId(e);const i=o.createProxyObject(r,(e,t)=>this._protocol.sendMessage(e,t));return this._requestHandlerFactory?(this._requestHandler=this._requestHandlerFactory(i),Promise.resolve(o.getAllMethodNames(this._requestHandler))):(t&&(void 0!==t.baseUrl&&delete t.baseUrl,void 0!==t.paths&&void 0!==t.paths.vs&&delete t.paths.vs,t.catchError=!0,self.require.config(t)),new Promise((e,t)=>{self.require([n],n=>{this._requestHandler=n.create(i),this._requestHandler?e(o.getAllMethodNames(this._requestHandler)):t(new Error("No RequestHandler!"))},t)}))}}t.SimpleWorkerServer=c,t.create=function(e){return new c(e,null)}})),e(n[22],r([0,1,11]),(function(e,t,n){"use strict" +;Object.defineProperty(t,"__esModule",{value:!0}),t.CharacterSet=t.CharacterClassifier=void 0;class r{constructor(e){let t=n.toUint8(e);this._defaultValue=t,this._asciiMap=r._createAsciiMap(t),this._map=new Map}static _createAsciiMap(e){let t=new Uint8Array(256);for(let n=0;n<256;n++)t[n]=e;return t}set(e,t){let r=n.toUint8(t);e>=0&&e<256?this._asciiMap[e]=r:this._map.set(e,r)}get(e){return e>=0&&e<256?this._asciiMap[e]:this._map.get(e)||this._defaultValue}}t.CharacterClassifier=r;t.CharacterSet=class{constructor(){this._actual=new r(0)}add(e){this._actual.set(e,1)}has(e){return 1===this._actual.get(e)}}})),e(n[2],r([0,1]),(function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Position=void 0;class n{constructor(e,t){this.lineNumber=e,this.column=t}with(e=this.lineNumber,t=this.column){return e===this.lineNumber&&t===this.column?this:new n(e,t)}delta(e=0,t=0){return this.with(this.lineNumber+e,this.column+t)}equals(e){return n.equals(this,e)}static equals(e,t){ +return!e&&!t||!!e&&!!t&&e.lineNumber===t.lineNumber&&e.column===t.column}isBefore(e){return n.isBefore(this,e)}static isBefore(e,t){return e.lineNumbern||e===n&&t>r?(this.startLineNumber=n,this.startColumn=r,this.endLineNumber=e,this.endColumn=t):(this.startLineNumber=e, +this.startColumn=t,this.endLineNumber=n,this.endColumn=r)}isEmpty(){return r.isEmpty(this)}static isEmpty(e){return e.startLineNumber===e.endLineNumber&&e.startColumn===e.endColumn}containsPosition(e){return r.containsPosition(this,e)}static containsPosition(e,t){return!(t.lineNumbere.endLineNumber)&&(!(t.lineNumber===e.startLineNumber&&t.columne.endColumn))}containsRange(e){return r.containsRange(this,e)}static containsRange(e,t){return!(t.startLineNumbere.endLineNumber||t.endLineNumber>e.endLineNumber)&&(!(t.startLineNumber===e.startLineNumber&&t.startColumne.endColumn)))}strictContainsRange(e){return r.strictContainsRange(this,e)}static strictContainsRange(e,t){ +return!(t.startLineNumbere.endLineNumber||t.endLineNumber>e.endLineNumber)&&(!(t.startLineNumber===e.startLineNumber&&t.startColumn<=e.startColumn)&&!(t.endLineNumber===e.endLineNumber&&t.endColumn>=e.endColumn)))}plusRange(e){return r.plusRange(this,e)}static plusRange(e,t){let n,i,o,s;return t.startLineNumbere.endLineNumber?(o=t.endLineNumber,s=t.endColumn):t.endLineNumber===e.endLineNumber?(o=t.endLineNumber,s=Math.max(t.endColumn,e.endColumn)):(o=e.endLineNumber,s=e.endColumn),new r(n,i,o,s)}intersectRanges(e){return r.intersectRanges(this,e)}static intersectRanges(e,t){let n=e.startLineNumber,i=e.startColumn,o=e.endLineNumber,s=e.endColumn,a=t.startLineNumber,l=t.startColumn,u=t.endLineNumber,c=t.endColumn +;return nu?(o=u,s=c):o===u&&(s=Math.min(s,c)),n>o?null:n===o&&i>s?null:new r(n,i,o,s)}equalsRange(e){return r.equalsRange(this,e)}static equalsRange(e,t){return!!e&&!!t&&e.startLineNumber===t.startLineNumber&&e.startColumn===t.startColumn&&e.endLineNumber===t.endLineNumber&&e.endColumn===t.endColumn}getEndPosition(){return r.getEndPosition(this)}static getEndPosition(e){return new n.Position(e.endLineNumber,e.endColumn)}getStartPosition(){return r.getStartPosition(this)}static getStartPosition(e){return new n.Position(e.startLineNumber,e.startColumn)}toString(){return"["+this.startLineNumber+","+this.startColumn+" -> "+this.endLineNumber+","+this.endColumn+"]"}setEndPosition(e,t){return new r(this.startLineNumber,this.startColumn,e,t)}setStartPosition(e,t){return new r(e,t,this.endLineNumber,this.endColumn)}collapseToStart(){return r.collapseToStart(this)}static collapseToStart(e){return new r(e.startLineNumber,e.startColumn,e.startLineNumber,e.startColumn)} +static fromPositions(e,t=e){return new r(e.lineNumber,e.column,t.lineNumber,t.column)}static lift(e){return e?new r(e.startLineNumber,e.startColumn,e.endLineNumber,e.endColumn):null}static isIRange(e){return e&&"number"==typeof e.startLineNumber&&"number"==typeof e.startColumn&&"number"==typeof e.endLineNumber&&"number"==typeof e.endColumn}static areIntersectingOrTouching(e,t){return!(e.endLineNumbere.startLineNumber}}t.Range=r})),e(n[23],r([0,1,2,5]),(function(e,t,n,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Selection=void 0;class i extends r.Range{constructor(e,t,n,r){super(e,t,n,r),this.selectionStartLineNumber=e,this.selectionStartColumn=t,this.positionLineNumber=n,this.positionColumn=r}toString(){return"["+this.selectionStartLineNumber+","+this.selectionStartColumn+" -> "+this.positionLineNumber+","+this.positionColumn+"]"}equalsSelection(e){return i.selectionsEqual(this,e)}static selectionsEqual(e,t){ +return e.selectionStartLineNumber===t.selectionStartLineNumber&&e.selectionStartColumn===t.selectionStartColumn&&e.positionLineNumber===t.positionLineNumber&&e.positionColumn===t.positionColumn}getDirection(){return this.selectionStartLineNumber===this.startLineNumber&&this.selectionStartColumn===this.startColumn?0:1}setEndPosition(e,t){return 0===this.getDirection()?new i(this.startLineNumber,this.startColumn,e,t):new i(e,t,this.startLineNumber,this.startColumn)}getPosition(){return new n.Position(this.positionLineNumber,this.positionColumn)}setStartPosition(e,t){return 0===this.getDirection()?new i(e,t,this.endLineNumber,this.endColumn):new i(this.endLineNumber,this.endColumn,e,t)}static fromPositions(e,t=e){return new i(e.lineNumber,e.column,t.lineNumber,t.column)}static liftSelection(e){return new i(e.selectionStartLineNumber,e.selectionStartColumn,e.positionLineNumber,e.positionColumn)}static selectionsArrEqual(e,t){if(e&&!t||!e&&t)return!1;if(!e&&!t)return!0;if(e.length!==t.length)return!1 +;for(let n=0,r=e.length;n0&&t.originalLength<20&&t.modifiedLength>0&&t.modifiedLength<20&&s()){const a=n.createCharSequence(e,t.originalStart,t.originalStart+t.originalLength-1),u=r.createCharSequence(e,t.modifiedStart,t.modifiedStart+t.modifiedLength-1);let d=o(a,u,s,!0).changes;c&&(d=function(e){if(e.length<=1)return e;const t=[e[0]];let n=t[0];for(let r=1,o=e.length;r!0;const t=Date.now();return()=>Date.now()-t1&&o>1;){if(e.charCodeAt(n-2)!==t.charCodeAt(o-2))break;n--,o--}(n>1||o>1)&&this._pushTrimWhitespaceCharChange(r,i+1,1,n,s+1,1,o)}{let n=d(e,1),o=d(t,1);const a=e.length+1,l=t.length+1;for(;n/?",t.DEFAULT_WORD_REGEXP=function(e=""){let n="(-?\\d*\\.\\d\\w*)|([^";for(const r of t.USUAL_WORD_SEPARATORS)e.indexOf(r)>=0||(n+="\\"+r);return n+="\\s]+)",new RegExp(n,"g")}(),t.ensureValidWordDefinition=function(e){let n=t.DEFAULT_WORD_REGEXP;if(e&&e instanceof RegExp)if(e.global)n=e;else{let t="g" +;e.ignoreCase&&(t+="i"),e.multiline&&(t+="m"),e.unicode&&(t+="u"),n=new RegExp(e.source,t)}return n.lastIndex=0,n};const n={maxLen:1e3,windowSize:15,timeBudget:150};function r(e,t,n,r){let i;for(;i=e.exec(t);){const t=i.index||0;if(t<=n&&e.lastIndex>=n)return i;if(r>0&&t>r)return null}return null}t.getWordAtText=function e(t,i,o,s,a=n){if(o.length>a.maxLen){let n=t-a.maxLen/2;return n<0?(s+=t,n=0):s+=n,e(t,i,o=o.substring(n,t+a.maxLen/2),s,a)}Date.now();const l=t-1-s;let u=-1,c=null;for(let e=1;;e++){Date.now(),a.timeBudget;const t=l-a.windowSize*e;i.lastIndex=Math.max(0,t);const n=r(i,o,l,u);if(!n&&c)break;if(c=n,t<=0)break;u=t}if(c){let e={word:c[0],startColumn:s+1+c.index,endColumn:s+1+c.index+c[0].length};return i.lastIndex=0,e}return null}})),e(n[27],r([0,1,22]),(function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.computeLinks=t.LinkComputer=t.StateMachine=t.Uint8Matrix=void 0;class r{constructor(e,t,n){const r=new Uint8Array(e*t);for(let i=0,o=e*t;it&&(t=o),i>n&&(n=i),s>n&&(n=s)}let i=new r(++n,++t,0);for(let t=0,n=e.length;t=this._maxCharCode?0:this._states.get(e,t)}}t.StateMachine=i;let o=null;let s=null;class a{static _createLink(e,t,n,r,i){let o=i-1;do{const n=t.charCodeAt(o);if(2!==e.get(n))break;o--}while(o>r);if(r>0){const e=t.charCodeAt(r-1),n=t.charCodeAt(o);(40===e&&41===n||91===e&&93===n||123===e&&125===n)&&o--}return{range:{startLineNumber:n,startColumn:r+1,endLineNumber:n,endColumn:o+2},url:t.substring(r,o+1)}} +static computeLinks(e,t=(null===o&&(o=new i([[1,104,2],[1,72,2],[1,102,6],[1,70,6],[2,116,3],[2,84,3],[3,116,4],[3,84,4],[4,112,5],[4,80,5],[5,115,9],[5,83,9],[5,58,10],[6,105,7],[6,73,7],[7,108,8],[7,76,8],[8,101,9],[8,69,9],[9,58,10],[10,47,11],[11,47,12]])),o)){const r=function(){if(null===s){s=new n.CharacterClassifier(0);const e=" \t<>'\"、。。、,.:;‘“〈《「『【〔([{「」}])〕】』」》〉”’`~…";for(let t=0;t=0?((r+=n?1:-1)<0?r=e.length-1:r%=e.length,e[r]):null}}t.BasicInplaceReplace=n,n.INSTANCE=new n})),e(n[29],r([0,1]),(function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}), +t.WrappingIndent=t.TrackedRangeStickiness=t.TextEditorCursorStyle=t.TextEditorCursorBlinkingStyle=t.SymbolTag=t.SymbolKind=t.SignatureHelpTriggerKind=t.SelectionDirection=t.ScrollbarVisibility=t.ScrollType=t.RenderMinimap=t.RenderLineNumbersType=t.OverviewRulerLane=t.OverlayWidgetPositionPreference=t.MouseTargetType=t.MinimapPosition=t.MarkerTag=t.MarkerSeverity=t.KeyCode=t.IndentAction=t.EndOfLineSequence=t.EndOfLinePreference=t.EditorOption=t.EditorAutoIndentStrategy=t.DocumentHighlightKind=t.DefaultEndOfLine=t.CursorChangeReason=t.ContentWidgetPositionPreference=t.CompletionTriggerKind=t.CompletionItemTag=t.CompletionItemKind=t.CompletionItemInsertTextRule=t.AccessibilitySupport=void 0,function(e){e[e.Unknown=0]="Unknown",e[e.Disabled=1]="Disabled",e[e.Enabled=2]="Enabled"}(t.AccessibilitySupport||(t.AccessibilitySupport={})),function(e){e[e.KeepWhitespace=1]="KeepWhitespace",e[e.InsertAsSnippet=4]="InsertAsSnippet"}(t.CompletionItemInsertTextRule||(t.CompletionItemInsertTextRule={})),function(e){ +e[e.Method=0]="Method",e[e.Function=1]="Function",e[e.Constructor=2]="Constructor",e[e.Field=3]="Field",e[e.Variable=4]="Variable",e[e.Class=5]="Class",e[e.Struct=6]="Struct",e[e.Interface=7]="Interface",e[e.Module=8]="Module",e[e.Property=9]="Property",e[e.Event=10]="Event",e[e.Operator=11]="Operator",e[e.Unit=12]="Unit",e[e.Value=13]="Value",e[e.Constant=14]="Constant",e[e.Enum=15]="Enum",e[e.EnumMember=16]="EnumMember",e[e.Keyword=17]="Keyword",e[e.Text=18]="Text",e[e.Color=19]="Color",e[e.File=20]="File",e[e.Reference=21]="Reference",e[e.Customcolor=22]="Customcolor",e[e.Folder=23]="Folder",e[e.TypeParameter=24]="TypeParameter",e[e.User=25]="User",e[e.Issue=26]="Issue",e[e.Snippet=27]="Snippet"}(t.CompletionItemKind||(t.CompletionItemKind={})),function(e){e[e.Deprecated=1]="Deprecated"}(t.CompletionItemTag||(t.CompletionItemTag={})),function(e){e[e.Invoke=0]="Invoke",e[e.TriggerCharacter=1]="TriggerCharacter",e[e.TriggerForIncompleteCompletions=2]="TriggerForIncompleteCompletions" +}(t.CompletionTriggerKind||(t.CompletionTriggerKind={})),function(e){e[e.EXACT=0]="EXACT",e[e.ABOVE=1]="ABOVE",e[e.BELOW=2]="BELOW"}(t.ContentWidgetPositionPreference||(t.ContentWidgetPositionPreference={})),function(e){e[e.NotSet=0]="NotSet",e[e.ContentFlush=1]="ContentFlush",e[e.RecoverFromMarkers=2]="RecoverFromMarkers",e[e.Explicit=3]="Explicit",e[e.Paste=4]="Paste",e[e.Undo=5]="Undo",e[e.Redo=6]="Redo"}(t.CursorChangeReason||(t.CursorChangeReason={})),function(e){e[e.LF=1]="LF",e[e.CRLF=2]="CRLF"}(t.DefaultEndOfLine||(t.DefaultEndOfLine={})),function(e){e[e.Text=0]="Text",e[e.Read=1]="Read",e[e.Write=2]="Write"}(t.DocumentHighlightKind||(t.DocumentHighlightKind={})),function(e){e[e.None=0]="None",e[e.Keep=1]="Keep",e[e.Brackets=2]="Brackets",e[e.Advanced=3]="Advanced",e[e.Full=4]="Full"}(t.EditorAutoIndentStrategy||(t.EditorAutoIndentStrategy={})),function(e){e[e.acceptSuggestionOnCommitCharacter=0]="acceptSuggestionOnCommitCharacter",e[e.acceptSuggestionOnEnter=1]="acceptSuggestionOnEnter", +e[e.accessibilitySupport=2]="accessibilitySupport",e[e.accessibilityPageSize=3]="accessibilityPageSize",e[e.ariaLabel=4]="ariaLabel",e[e.autoClosingBrackets=5]="autoClosingBrackets",e[e.autoClosingOvertype=6]="autoClosingOvertype",e[e.autoClosingQuotes=7]="autoClosingQuotes",e[e.autoIndent=8]="autoIndent",e[e.automaticLayout=9]="automaticLayout",e[e.autoSurround=10]="autoSurround",e[e.codeLens=11]="codeLens",e[e.colorDecorators=12]="colorDecorators",e[e.columnSelection=13]="columnSelection",e[e.comments=14]="comments",e[e.contextmenu=15]="contextmenu",e[e.copyWithSyntaxHighlighting=16]="copyWithSyntaxHighlighting",e[e.cursorBlinking=17]="cursorBlinking",e[e.cursorSmoothCaretAnimation=18]="cursorSmoothCaretAnimation",e[e.cursorStyle=19]="cursorStyle",e[e.cursorSurroundingLines=20]="cursorSurroundingLines",e[e.cursorSurroundingLinesStyle=21]="cursorSurroundingLinesStyle",e[e.cursorWidth=22]="cursorWidth",e[e.disableLayerHinting=23]="disableLayerHinting", +e[e.disableMonospaceOptimizations=24]="disableMonospaceOptimizations",e[e.dragAndDrop=25]="dragAndDrop",e[e.emptySelectionClipboard=26]="emptySelectionClipboard",e[e.extraEditorClassName=27]="extraEditorClassName",e[e.fastScrollSensitivity=28]="fastScrollSensitivity",e[e.find=29]="find",e[e.fixedOverflowWidgets=30]="fixedOverflowWidgets",e[e.folding=31]="folding",e[e.foldingStrategy=32]="foldingStrategy",e[e.foldingHighlight=33]="foldingHighlight",e[e.unfoldOnClickAfterEndOfLine=34]="unfoldOnClickAfterEndOfLine",e[e.fontFamily=35]="fontFamily",e[e.fontInfo=36]="fontInfo",e[e.fontLigatures=37]="fontLigatures",e[e.fontSize=38]="fontSize",e[e.fontWeight=39]="fontWeight",e[e.formatOnPaste=40]="formatOnPaste",e[e.formatOnType=41]="formatOnType",e[e.glyphMargin=42]="glyphMargin",e[e.gotoLocation=43]="gotoLocation",e[e.hideCursorInOverviewRuler=44]="hideCursorInOverviewRuler",e[e.highlightActiveIndentGuide=45]="highlightActiveIndentGuide",e[e.hover=46]="hover",e[e.inDiffEditor=47]="inDiffEditor", +e[e.letterSpacing=48]="letterSpacing",e[e.lightbulb=49]="lightbulb",e[e.lineDecorationsWidth=50]="lineDecorationsWidth",e[e.lineHeight=51]="lineHeight",e[e.lineNumbers=52]="lineNumbers",e[e.lineNumbersMinChars=53]="lineNumbersMinChars",e[e.links=54]="links",e[e.matchBrackets=55]="matchBrackets",e[e.minimap=56]="minimap",e[e.mouseStyle=57]="mouseStyle",e[e.mouseWheelScrollSensitivity=58]="mouseWheelScrollSensitivity",e[e.mouseWheelZoom=59]="mouseWheelZoom",e[e.multiCursorMergeOverlapping=60]="multiCursorMergeOverlapping",e[e.multiCursorModifier=61]="multiCursorModifier",e[e.multiCursorPaste=62]="multiCursorPaste",e[e.occurrencesHighlight=63]="occurrencesHighlight",e[e.overviewRulerBorder=64]="overviewRulerBorder",e[e.overviewRulerLanes=65]="overviewRulerLanes",e[e.padding=66]="padding",e[e.parameterHints=67]="parameterHints",e[e.peekWidgetDefaultFocus=68]="peekWidgetDefaultFocus",e[e.definitionLinkOpensInPeek=69]="definitionLinkOpensInPeek",e[e.quickSuggestions=70]="quickSuggestions", +e[e.quickSuggestionsDelay=71]="quickSuggestionsDelay",e[e.readOnly=72]="readOnly",e[e.renameOnType=73]="renameOnType",e[e.renderControlCharacters=74]="renderControlCharacters",e[e.renderIndentGuides=75]="renderIndentGuides",e[e.renderFinalNewline=76]="renderFinalNewline",e[e.renderLineHighlight=77]="renderLineHighlight",e[e.renderLineHighlightOnlyWhenFocus=78]="renderLineHighlightOnlyWhenFocus",e[e.renderValidationDecorations=79]="renderValidationDecorations",e[e.renderWhitespace=80]="renderWhitespace",e[e.revealHorizontalRightPadding=81]="revealHorizontalRightPadding",e[e.roundedSelection=82]="roundedSelection",e[e.rulers=83]="rulers",e[e.scrollbar=84]="scrollbar",e[e.scrollBeyondLastColumn=85]="scrollBeyondLastColumn",e[e.scrollBeyondLastLine=86]="scrollBeyondLastLine",e[e.scrollPredominantAxis=87]="scrollPredominantAxis",e[e.selectionClipboard=88]="selectionClipboard",e[e.selectionHighlight=89]="selectionHighlight",e[e.selectOnLineNumbers=90]="selectOnLineNumbers", +e[e.showFoldingControls=91]="showFoldingControls",e[e.showUnused=92]="showUnused",e[e.snippetSuggestions=93]="snippetSuggestions",e[e.smoothScrolling=94]="smoothScrolling",e[e.stopRenderingLineAfter=95]="stopRenderingLineAfter",e[e.suggest=96]="suggest",e[e.suggestFontSize=97]="suggestFontSize",e[e.suggestLineHeight=98]="suggestLineHeight",e[e.suggestOnTriggerCharacters=99]="suggestOnTriggerCharacters",e[e.suggestSelection=100]="suggestSelection",e[e.tabCompletion=101]="tabCompletion",e[e.tabIndex=102]="tabIndex",e[e.unusualLineTerminators=103]="unusualLineTerminators",e[e.useTabStops=104]="useTabStops",e[e.wordSeparators=105]="wordSeparators",e[e.wordWrap=106]="wordWrap",e[e.wordWrapBreakAfterCharacters=107]="wordWrapBreakAfterCharacters",e[e.wordWrapBreakBeforeCharacters=108]="wordWrapBreakBeforeCharacters",e[e.wordWrapColumn=109]="wordWrapColumn",e[e.wordWrapMinified=110]="wordWrapMinified",e[e.wrappingIndent=111]="wrappingIndent",e[e.wrappingStrategy=112]="wrappingStrategy", +e[e.showDeprecated=113]="showDeprecated",e[e.editorClassName=114]="editorClassName",e[e.pixelRatio=115]="pixelRatio",e[e.tabFocusMode=116]="tabFocusMode",e[e.layoutInfo=117]="layoutInfo",e[e.wrappingInfo=118]="wrappingInfo"}(t.EditorOption||(t.EditorOption={})),function(e){e[e.TextDefined=0]="TextDefined",e[e.LF=1]="LF",e[e.CRLF=2]="CRLF"}(t.EndOfLinePreference||(t.EndOfLinePreference={})),function(e){e[e.LF=0]="LF",e[e.CRLF=1]="CRLF"}(t.EndOfLineSequence||(t.EndOfLineSequence={})),function(e){e[e.None=0]="None",e[e.Indent=1]="Indent",e[e.IndentOutdent=2]="IndentOutdent",e[e.Outdent=3]="Outdent"}(t.IndentAction||(t.IndentAction={})),function(e){e[e.Unknown=0]="Unknown",e[e.Backspace=1]="Backspace",e[e.Tab=2]="Tab",e[e.Enter=3]="Enter",e[e.Shift=4]="Shift",e[e.Ctrl=5]="Ctrl",e[e.Alt=6]="Alt",e[e.PauseBreak=7]="PauseBreak",e[e.CapsLock=8]="CapsLock",e[e.Escape=9]="Escape",e[e.Space=10]="Space",e[e.PageUp=11]="PageUp",e[e.PageDown=12]="PageDown",e[e.End=13]="End",e[e.Home=14]="Home", +e[e.LeftArrow=15]="LeftArrow",e[e.UpArrow=16]="UpArrow",e[e.RightArrow=17]="RightArrow",e[e.DownArrow=18]="DownArrow",e[e.Insert=19]="Insert",e[e.Delete=20]="Delete",e[e.KEY_0=21]="KEY_0",e[e.KEY_1=22]="KEY_1",e[e.KEY_2=23]="KEY_2",e[e.KEY_3=24]="KEY_3",e[e.KEY_4=25]="KEY_4",e[e.KEY_5=26]="KEY_5",e[e.KEY_6=27]="KEY_6",e[e.KEY_7=28]="KEY_7",e[e.KEY_8=29]="KEY_8",e[e.KEY_9=30]="KEY_9",e[e.KEY_A=31]="KEY_A",e[e.KEY_B=32]="KEY_B",e[e.KEY_C=33]="KEY_C",e[e.KEY_D=34]="KEY_D",e[e.KEY_E=35]="KEY_E",e[e.KEY_F=36]="KEY_F",e[e.KEY_G=37]="KEY_G",e[e.KEY_H=38]="KEY_H",e[e.KEY_I=39]="KEY_I",e[e.KEY_J=40]="KEY_J",e[e.KEY_K=41]="KEY_K",e[e.KEY_L=42]="KEY_L",e[e.KEY_M=43]="KEY_M",e[e.KEY_N=44]="KEY_N",e[e.KEY_O=45]="KEY_O",e[e.KEY_P=46]="KEY_P",e[e.KEY_Q=47]="KEY_Q",e[e.KEY_R=48]="KEY_R",e[e.KEY_S=49]="KEY_S",e[e.KEY_T=50]="KEY_T",e[e.KEY_U=51]="KEY_U",e[e.KEY_V=52]="KEY_V",e[e.KEY_W=53]="KEY_W",e[e.KEY_X=54]="KEY_X",e[e.KEY_Y=55]="KEY_Y",e[e.KEY_Z=56]="KEY_Z",e[e.Meta=57]="Meta",e[e.ContextMenu=58]="ContextMenu", +e[e.F1=59]="F1",e[e.F2=60]="F2",e[e.F3=61]="F3",e[e.F4=62]="F4",e[e.F5=63]="F5",e[e.F6=64]="F6",e[e.F7=65]="F7",e[e.F8=66]="F8",e[e.F9=67]="F9",e[e.F10=68]="F10",e[e.F11=69]="F11",e[e.F12=70]="F12",e[e.F13=71]="F13",e[e.F14=72]="F14",e[e.F15=73]="F15",e[e.F16=74]="F16",e[e.F17=75]="F17",e[e.F18=76]="F18",e[e.F19=77]="F19",e[e.NumLock=78]="NumLock",e[e.ScrollLock=79]="ScrollLock",e[e.US_SEMICOLON=80]="US_SEMICOLON",e[e.US_EQUAL=81]="US_EQUAL",e[e.US_COMMA=82]="US_COMMA",e[e.US_MINUS=83]="US_MINUS",e[e.US_DOT=84]="US_DOT",e[e.US_SLASH=85]="US_SLASH",e[e.US_BACKTICK=86]="US_BACKTICK",e[e.US_OPEN_SQUARE_BRACKET=87]="US_OPEN_SQUARE_BRACKET",e[e.US_BACKSLASH=88]="US_BACKSLASH",e[e.US_CLOSE_SQUARE_BRACKET=89]="US_CLOSE_SQUARE_BRACKET",e[e.US_QUOTE=90]="US_QUOTE",e[e.OEM_8=91]="OEM_8",e[e.OEM_102=92]="OEM_102",e[e.NUMPAD_0=93]="NUMPAD_0",e[e.NUMPAD_1=94]="NUMPAD_1",e[e.NUMPAD_2=95]="NUMPAD_2",e[e.NUMPAD_3=96]="NUMPAD_3",e[e.NUMPAD_4=97]="NUMPAD_4",e[e.NUMPAD_5=98]="NUMPAD_5",e[e.NUMPAD_6=99]="NUMPAD_6", +e[e.NUMPAD_7=100]="NUMPAD_7",e[e.NUMPAD_8=101]="NUMPAD_8",e[e.NUMPAD_9=102]="NUMPAD_9",e[e.NUMPAD_MULTIPLY=103]="NUMPAD_MULTIPLY",e[e.NUMPAD_ADD=104]="NUMPAD_ADD",e[e.NUMPAD_SEPARATOR=105]="NUMPAD_SEPARATOR",e[e.NUMPAD_SUBTRACT=106]="NUMPAD_SUBTRACT",e[e.NUMPAD_DECIMAL=107]="NUMPAD_DECIMAL",e[e.NUMPAD_DIVIDE=108]="NUMPAD_DIVIDE",e[e.KEY_IN_COMPOSITION=109]="KEY_IN_COMPOSITION",e[e.ABNT_C1=110]="ABNT_C1",e[e.ABNT_C2=111]="ABNT_C2",e[e.MAX_VALUE=112]="MAX_VALUE"}(t.KeyCode||(t.KeyCode={})),function(e){e[e.Hint=1]="Hint",e[e.Info=2]="Info",e[e.Warning=4]="Warning",e[e.Error=8]="Error"}(t.MarkerSeverity||(t.MarkerSeverity={})),function(e){e[e.Unnecessary=1]="Unnecessary",e[e.Deprecated=2]="Deprecated"}(t.MarkerTag||(t.MarkerTag={})),function(e){e[e.Inline=1]="Inline",e[e.Gutter=2]="Gutter"}(t.MinimapPosition||(t.MinimapPosition={})),function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.TEXTAREA=1]="TEXTAREA",e[e.GUTTER_GLYPH_MARGIN=2]="GUTTER_GLYPH_MARGIN",e[e.GUTTER_LINE_NUMBERS=3]="GUTTER_LINE_NUMBERS", +e[e.GUTTER_LINE_DECORATIONS=4]="GUTTER_LINE_DECORATIONS",e[e.GUTTER_VIEW_ZONE=5]="GUTTER_VIEW_ZONE",e[e.CONTENT_TEXT=6]="CONTENT_TEXT",e[e.CONTENT_EMPTY=7]="CONTENT_EMPTY",e[e.CONTENT_VIEW_ZONE=8]="CONTENT_VIEW_ZONE",e[e.CONTENT_WIDGET=9]="CONTENT_WIDGET",e[e.OVERVIEW_RULER=10]="OVERVIEW_RULER",e[e.SCROLLBAR=11]="SCROLLBAR",e[e.OVERLAY_WIDGET=12]="OVERLAY_WIDGET",e[e.OUTSIDE_EDITOR=13]="OUTSIDE_EDITOR"}(t.MouseTargetType||(t.MouseTargetType={})),function(e){e[e.TOP_RIGHT_CORNER=0]="TOP_RIGHT_CORNER",e[e.BOTTOM_RIGHT_CORNER=1]="BOTTOM_RIGHT_CORNER",e[e.TOP_CENTER=2]="TOP_CENTER"}(t.OverlayWidgetPositionPreference||(t.OverlayWidgetPositionPreference={})),function(e){e[e.Left=1]="Left",e[e.Center=2]="Center",e[e.Right=4]="Right",e[e.Full=7]="Full"}(t.OverviewRulerLane||(t.OverviewRulerLane={})),function(e){e[e.Off=0]="Off",e[e.On=1]="On",e[e.Relative=2]="Relative",e[e.Interval=3]="Interval",e[e.Custom=4]="Custom"}(t.RenderLineNumbersType||(t.RenderLineNumbersType={})),function(e){e[e.None=0]="None", +e[e.Text=1]="Text",e[e.Blocks=2]="Blocks"}(t.RenderMinimap||(t.RenderMinimap={})),function(e){e[e.Smooth=0]="Smooth",e[e.Immediate=1]="Immediate"}(t.ScrollType||(t.ScrollType={})),function(e){e[e.Auto=1]="Auto",e[e.Hidden=2]="Hidden",e[e.Visible=3]="Visible"}(t.ScrollbarVisibility||(t.ScrollbarVisibility={})),function(e){e[e.LTR=0]="LTR",e[e.RTL=1]="RTL"}(t.SelectionDirection||(t.SelectionDirection={})),function(e){e[e.Invoke=1]="Invoke",e[e.TriggerCharacter=2]="TriggerCharacter",e[e.ContentChange=3]="ContentChange"}(t.SignatureHelpTriggerKind||(t.SignatureHelpTriggerKind={})),function(e){e[e.File=0]="File",e[e.Module=1]="Module",e[e.Namespace=2]="Namespace",e[e.Package=3]="Package",e[e.Class=4]="Class",e[e.Method=5]="Method",e[e.Property=6]="Property",e[e.Field=7]="Field",e[e.Constructor=8]="Constructor",e[e.Enum=9]="Enum",e[e.Interface=10]="Interface",e[e.Function=11]="Function",e[e.Variable=12]="Variable",e[e.Constant=13]="Constant",e[e.String=14]="String",e[e.Number=15]="Number",e[e.Boolean=16]="Boolean", +e[e.Array=17]="Array",e[e.Object=18]="Object",e[e.Key=19]="Key",e[e.Null=20]="Null",e[e.EnumMember=21]="EnumMember",e[e.Struct=22]="Struct",e[e.Event=23]="Event",e[e.Operator=24]="Operator",e[e.TypeParameter=25]="TypeParameter"}(t.SymbolKind||(t.SymbolKind={})),function(e){e[e.Deprecated=1]="Deprecated"}(t.SymbolTag||(t.SymbolTag={})),function(e){e[e.Hidden=0]="Hidden",e[e.Blink=1]="Blink",e[e.Smooth=2]="Smooth",e[e.Phase=3]="Phase",e[e.Expand=4]="Expand",e[e.Solid=5]="Solid"}(t.TextEditorCursorBlinkingStyle||(t.TextEditorCursorBlinkingStyle={})),function(e){e[e.Line=1]="Line",e[e.Block=2]="Block",e[e.Underline=3]="Underline",e[e.LineThin=4]="LineThin",e[e.BlockOutline=5]="BlockOutline",e[e.UnderlineThin=6]="UnderlineThin"}(t.TextEditorCursorStyle||(t.TextEditorCursorStyle={})),function(e){e[e.AlwaysGrowsWhenTypingAtEdges=0]="AlwaysGrowsWhenTypingAtEdges",e[e.NeverGrowsWhenTypingAtEdges=1]="NeverGrowsWhenTypingAtEdges",e[e.GrowsOnlyWhenTypingBefore=2]="GrowsOnlyWhenTypingBefore", +e[e.GrowsOnlyWhenTypingAfter=3]="GrowsOnlyWhenTypingAfter"}(t.TrackedRangeStickiness||(t.TrackedRangeStickiness={})),function(e){e[e.None=0]="None",e[e.Same=1]="Same",e[e.Indent=2]="Indent",e[e.DeepIndent=3]="DeepIndent"}(t.WrappingIndent||(t.WrappingIndent={}))})),e(n[30],r([0,1,18,7,16,12,2,5,23,24,29]),(function(e,t,n,r,i,o,s,a,l,u,c){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.createMonacoBaseAPI=t.KeyMod=void 0;class d{static chord(e,t){return i.KeyChord(e,t)}}t.KeyMod=d,d.CtrlCmd=2048,d.Shift=1024,d.Alt=512,d.WinCtrl=256,t.createMonacoBaseAPI=function(){return{editor:void 0,languages:void 0,CancellationTokenSource:n.CancellationTokenSource,Emitter:r.Emitter,KeyCode:c.KeyCode,KeyMod:d,Position:s.Position,Range:a.Range,Selection:l.Selection,SelectionDirection:c.SelectionDirection,MarkerSeverity:c.MarkerSeverity,MarkerTag:c.MarkerTag,Uri:o.URI,Token:u.Token}}})),e(n[31],r([0,1,11]),(function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}), +t.PrefixSumComputer=t.PrefixSumIndexOfResult=void 0;class r{constructor(e,t){this.index=e,this.remainder=t}}t.PrefixSumIndexOfResult=r;t.PrefixSumComputer=class{constructor(e){this.values=e,this.prefixSum=new Uint32Array(e.length),this.prefixSumValidIndex=new Int32Array(1),this.prefixSumValidIndex[0]=-1}insertValues(e,t){e=n.toUint32(e);const r=this.values,i=this.prefixSum,o=t.length;return 0!==o&&(this.values=new Uint32Array(r.length+o),this.values.set(r.subarray(0,e),0),this.values.set(r.subarray(e),e+o),this.values.set(t,e),e-1=0&&this.prefixSum.set(i.subarray(0,this.prefixSumValidIndex[0]+1)),!0)}changeValue(e,t){return e=n.toUint32(e),t=n.toUint32(t),this.values[e]!==t&&(this.values[e]=t,e-1=r.length)return!1;let o=r.length-e;return t>=o&&(t=o),0!==t&&(this.values=new Uint32Array(r.length-t),this.values.set(r.subarray(0,e),0),this.values.set(r.subarray(e+t),e),this.prefixSum=new Uint32Array(this.values.length),e-1=0&&this.prefixSum.set(i.subarray(0,this.prefixSumValidIndex[0]+1)),!0)}getTotalValue(){return 0===this.values.length?0:this._getAccumulatedValue(this.values.length-1)}getAccumulatedValue(e){return e<0?0:(e=n.toUint32(e),this._getAccumulatedValue(e))}_getAccumulatedValue(e){if(e<=this.prefixSumValidIndex[0])return this.prefixSum[e];let t=this.prefixSumValidIndex[0]+1;0===t&&(this.prefixSum[0]=this.values[0],t++),e>=this.values.length&&(e=this.values.length-1);for(let n=t;n<=e;n++)this.prefixSum[n]=this.prefixSum[n-1]+this.values[n];return this.prefixSumValidIndex[0]=Math.max(this.prefixSumValidIndex[0],e),this.prefixSum[e]}getIndexOf(e){e=Math.floor(e),this.getTotalValue() +;let t=0,n=this.values.length-1,i=0,o=0,s=0;for(;t<=n;)if(i=t+(n-t)/2|0,e<(s=(o=this.prefixSum[i])-this.values[i]))n=i-1;else{if(!(e>=o))break;t=i+1}return new r(i,e-s)}}})),e(n[32],r([0,1,2,31]),(function(e,t,n,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MirrorTextModel=void 0;t.MirrorTextModel=class{constructor(e,t,n,r){this._uri=e,this._lines=t,this._eol=n,this._versionId=r,this._lineStarts=null,this._cachedTextValue=null}dispose(){this._lines.length=0}getText(){return null===this._cachedTextValue&&(this._cachedTextValue=this._lines.join(this._eol)),this._cachedTextValue}onEvents(e){e.eol&&e.eol!==this._eol&&(this._eol=e.eol,this._lineStarts=null);const t=e.changes;for(const e of t)this._acceptDeleteRange(e.range),this._acceptInsertText(new n.Position(e.range.startLineNumber,e.range.startColumn),e.text);this._versionId=e.versionId,this._cachedTextValue=null}_ensureLineStarts(){if(!this._lineStarts){const e=this._eol.length,t=this._lines.length,n=new Uint32Array(t) +;for(let r=0;rthis._lines.length)t=this._lines.length,n=this._lines[t-1].length+1,r=!0;else{let e=this._lines[t-1].length+1;n<1?(n=1,r=!0):n>e&&(n=e,r=!0)}return r?{lineNumber:t,column:n}:e}}class _{constructor(e,t){this._host=e,this._models=Object.create(null),this._foreignModuleFactory=t,this._foreignModule=null}dispose(){this._models=Object.create(null)}_getModel(e){return this._models[e]}_getModels(){let e=[];return Object.keys(this._models).forEach(t=>e.push(this._models[t])),e}acceptNewModel(e){this._models[e.url]=new p(o.URI.parse(e.url),e.lines,e.EOL,e.versionId)}acceptModelChanged(e,t){if(!this._models[e])return;this._models[e].onEvents(t)} +acceptRemovedModel(e){this._models[e]&&delete this._models[e]}computeDiff(e,t,n,r){return s(this,void 0,void 0,(function*(){const i=this._getModel(e),o=this._getModel(t);if(!i||!o)return null;const s=i.getLinesContent(),a=o.getLinesContent(),l=new u.DiffComputer(s,a,{shouldComputeCharChanges:!0,shouldPostProcessCharChanges:!0,shouldIgnoreTrimWhitespace:n,shouldMakePrettyDiff:!0,maxComputationTime:r}).computeDiff(),c=!(l.changes.length>0)&&this._modelsAreIdentical(i,o);return{quitEarly:l.quitEarly,identical:c,changes:l.changes}}))}_modelsAreIdentical(e,t){const n=e.getLineCount();if(n!==t.getLineCount())return!1;for(let r=1;r<=n;r++){if(e.getLineContent(r)!==t.getLineContent(r))return!1}return!0}computeMoreMinimalEdits(e,t){return s(this,void 0,void 0,(function*(){const i=this._getModel(e);if(!i)return t;const o=[];let s=void 0;t=n.mergeSort(t,(e,t)=>{if(e.range&&t.range)return l.Range.compareRangesUsingStarts(e.range,t.range);return(e.range?0:1)-(t.range?0:1)});for(let{range:e,text:n,eol:a}of t){ +if("number"==typeof a&&(s=a),l.Range.isEmpty(e)&&!n)continue;const t=i.getValueInRange(e);if(t===(n=n.replace(/\r\n|\n|\r/g,i.eol)))continue;if(Math.max(n.length,t.length)>_._diffLimit){o.push({range:e,text:n});continue}const u=r.stringDiff(t,n,!1),c=i.offsetAt(l.Range.lift(e).getStartPosition());for(const e of u){const t=i.positionAt(c+e.originalStart),r=i.positionAt(c+e.originalStart+e.originalLength),s={text:n.substr(e.modifiedStart,e.modifiedLength),range:{startLineNumber:t.lineNumber,startColumn:t.column,endLineNumber:r.lineNumber,endColumn:r.column}};i.getValueInRange(s.range)!==s.text&&o.push(s)}}return"number"==typeof s&&o.push({eol:s,text:"",range:{startLineNumber:0,startColumn:0,endLineNumber:0,endColumn:0}}),o}))}computeLinks(e){return s(this,void 0,void 0,(function*(){let t=this._getModel(e);return t?h.computeLinks(t):null}))}textualSuggest(e,t,n,r){return s(this,void 0,void 0,(function*(){const i=this._getModel(e);if(!i)return null;const o=[],s=new Set,a=new RegExp(n,r),l=i.getWordAtPosition(t,a) +;l&&s.add(i.getValueInRange(l));for(let e of i.words(a))if(!s.has(e)&&(s.add(e),isNaN(Number(e))&&(o.push(e),s.size>_._suggestionsLimit)))break;return o}))}computeWordRanges(e,t,n,r){return s(this,void 0,void 0,(function*(){let i=this._getModel(e);if(!i)return Object.create(null);const o=new RegExp(n,r),s=Object.create(null);for(let e=t.startLineNumber;ethis._host.fhr(e,t)),getMirrorModels:()=>this._getModels()};return this._foreignModuleFactory?(this._foreignModule=this._foreignModuleFactory(i,n),Promise.resolve(m.getAllMethodNames(this._foreignModule))):new Promise((r,o)=>{e([t],e=>{this._foreignModule=e.create(i,n),r(m.getAllMethodNames(this._foreignModule))},o)})}fmr(e,t){if(!this._foreignModule||"function"!=typeof this._foreignModule[e])return Promise.reject(new Error("Missing requestHandler or method: "+e));try{return Promise.resolve(this._foreignModule[e].apply(this._foreignModule,t))}catch(e){return Promise.reject(e)}}}t.EditorSimpleWorker=_,_._diffLimit=1e5,_._suggestionsLimit=1e4,t.create=function(e){return new _(e,null)},"function"==typeof importScripts&&(i.globals.monaco=g.createMonacoBaseAPI())})),function(){let e=self.MonacoEnvironment,t=e&&e.baseUrl?e.baseUrl:"../../../" +;"function"==typeof self.define&&self.define.amd||importScripts(t+"vs/loader.js"),require.config({baseUrl:t,catchError:!0});let n=!0,r=[];self.onmessage=e=>{n?(n=!1,function(e){require([e],(function(e){setTimeout((function(){let t=e.create((e,t)=>{self.postMessage(e,t)},null);for(self.onmessage=e=>t.onmessage(e.data);r.length>0;)self.onmessage(r.shift())}),0)}))}(e.data)):r.push(e)}}()}).call(this); //# sourceMappingURL=../../../../min-maps/vs/base/worker/workerMain.js.map \ No newline at end of file diff --git a/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/abap/abap.js b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/abap/abap.js new file mode 100644 index 0000000..6dee81b --- /dev/null +++ b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/abap/abap.js @@ -0,0 +1,7 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * monaco-languages version: 2.1.1(425b0e3c9ea2067410b8f90e0f30de383188c418) + * Released under the MIT license + * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/abap/abap",["require","exports"],(function(e,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.language=n.conf=void 0,n.conf={comments:{lineComment:"*"},brackets:[["[","]"],["(",")"]]};n.language={defaultToken:"invalid",ignoreCase:!0,tokenPostfix:".abap",keywords:["abap-source","abbreviated","abstract","accept","accepting","according","activation","actual","add","add-corresponding","adjacent","after","alias","aliases","align","all","allocate","alpha","analysis","analyzer","append","appendage","appending","application","archive","area","arithmetic","as","ascending","aspect","assert","assign","assigned","assigning","association","asynchronous","at","attributes","authority","authority-check","avg","back","background","backup","backward","badi","base","before","begin","big","binary","bintohex","bit","black","blank","blanks","blob","block","blocks","blue","bound","boundaries","bounds","boxed","break-point","buffer","by","bypassing","byte","byte-order","call","calling","case","cast","casting","catch","center","centered","chain","chain-input","chain-request","change","changing","channels","character","char-to-hex","check","checkbox","ci_","circular","class","class-coding","class-data","class-events","class-methods","class-pool","cleanup","clear","client","clob","clock","close","coalesce","code","coding","col_background","col_group","col_heading","col_key","col_negative","col_normal","col_positive","col_total","collect","color","column","columns","comment","comments","commit","common","communication","comparing","component","components","compression","compute","concat","concat_with_space","concatenate","cond","condition","connect","connection","constants","context","contexts","continue","control","controls","conv","conversion","convert","copies","copy","corresponding","country","cover","cpi","create","creating","critical","currency","currency_conversion","current","cursor","cursor-selection","customer","customer-function","dangerous","data","database","datainfo","dataset","date","dats_add_days","dats_add_months","dats_days_between","dats_is_valid","daylight","dd/mm/yy","dd/mm/yyyy","ddmmyy","deallocate","decimal_shift","decimals","declarations","deep","default","deferred","define","defining","definition","delete","deleting","demand","department","descending","describe","destination","detail","dialog","directory","disconnect","display","display-mode","distinct","divide","divide-corresponding","division","do","dummy","duplicate","duplicates","duration","during","dynamic","dynpro","edit","editor-call","else","elseif","empty","enabled","enabling","encoding","end","endat","endcase","endcatch","endchain","endclass","enddo","endenhancement","end-enhancement-section","endexec","endform","endfunction","endian","endif","ending","endinterface","end-lines","endloop","endmethod","endmodule","end-of-definition","end-of-editing","end-of-file","end-of-page","end-of-selection","endon","endprovide","endselect","end-test-injection","end-test-seam","endtry","endwhile","endwith","engineering","enhancement","enhancement-point","enhancements","enhancement-section","entries","entry","enum","environment","errormessage","errors","escaping","event","events","exact","except","exception","exceptions","exception-table","exclude","excluding","exec","execute","exists","exit","exit-command","expand","expanding","expiration","explicit","exponent","export","exporting","extend","extended","extension","extract","fail","fetch","field","field-groups","fields","field-symbol","field-symbols","file","filter","filters","filter-table","final","first","first-line","fixed-point","fkeq","fkge","flush","font","for","form","format","forward","found","frame","frames","free","friends","from","function","functionality","function-pool","further","gaps","generate","get","giving","gkeq","gkge","global","grant","green","group","groups","handle","handler","harmless","hashed","having","hdb","header","headers","heading","head-lines","help-id","help-request","hextobin","hide","high","hint","hold","hotspot","icon","id","identification","identifier","ids","if","ignore","ignoring","immediately","implementation","implementations","implemented","implicit","import","importing","inactive","incl","include","includes","including","increment","index","index-line","infotypes","inheriting","init","initial","initialization","inner","inout","input","instance","instances","instr","intensified","interface","interface-pool","interfaces","internal","intervals","into","inverse","inverted-date","is","iso","job","join","keep","keeping","kernel","key","keys","keywords","kind","language","last","late","layout","leading","leave","left","left-justified","leftplus","leftspace","legacy","length","let","level","levels","like","line","line-count","linefeed","line-selection","line-size","list","listbox","list-processing","little","llang","load","load-of-program","lob","local","locale","locator","logfile","logical","log-point","long","loop","low","lower","lpad","lpi","ltrim","mail","main","major-id","mapping","margin","mark","mask","matchcode","max","maximum","medium","members","memory","mesh","message","message-id","messages","messaging","method","methods","min","minimum","minor-id","mm/dd/yy","mm/dd/yyyy","mmddyy","mode","modif","modifier","modify","module","move","move-corresponding","multiply","multiply-corresponding","name","nametab","native","nested","nesting","new","new-line","new-page","new-section","next","no","node","nodes","no-display","no-extension","no-gap","no-gaps","no-grouping","no-heading","non-unicode","non-unique","no-scrolling","no-sign","no-title","no-topofpage","no-zero","null","number","object","objects","obligatory","occurrence","occurrences","occurs","of","off","offset","ole","on","only","open","option","optional","options","order","other","others","out","outer","output","output-length","overflow","overlay","pack","package","pad","padding","page","pages","parameter","parameters","parameter-table","part","partially","pattern","percentage","perform","performing","person","pf1","pf10","pf11","pf12","pf13","pf14","pf15","pf2","pf3","pf4","pf5","pf6","pf7","pf8","pf9","pf-status","pink","places","pool","pos_high","pos_low","position","pragmas","precompiled","preferred","preserving","primary","print","print-control","priority","private","procedure","process","program","property","protected","provide","public","push","pushbutton","put","queue-only","quickinfo","radiobutton","raise","raising","range","ranges","read","reader","read-only","receive","received","receiver","receiving","red","redefinition","reduce","reduced","ref","reference","refresh","regex","reject","remote","renaming","replacement","replacing","report","request","requested","reserve","reset","resolution","respecting","responsible","result","results","resumable","resume","retry","return","returncode","returning","returns","right","right-justified","rightplus","rightspace","risk","rmc_communication_failure","rmc_invalid_status","rmc_system_failure","role","rollback","rows","rpad","rtrim","run","sap","sap-spool","saving","scale_preserving","scale_preserving_scientific","scan","scientific","scientific_with_leading_zero","scroll","scroll-boundary","scrolling","search","secondary","seconds","section","select","selection","selections","selection-screen","selection-set","selection-sets","selection-table","select-options","send","separate","separated","set","shared","shift","short","shortdump-id","sign_as_postfix","single","size","skip","skipping","smart","some","sort","sortable","sorted","source","specified","split","spool","spots","sql","sqlscript","stable","stamp","standard","starting","start-of-editing","start-of-selection","state","statement","statements","static","statics","statusinfo","step-loop","stop","structure","structures","style","subkey","submatches","submit","subroutine","subscreen","subtract","subtract-corresponding","suffix","sum","summary","summing","supplied","supply","suppress","switch","switchstates","symbol","syncpoints","syntax","syntax-check","syntax-trace","system-call","system-exceptions","system-exit","tab","tabbed","tables","tableview","tabstrip","target","task","tasks","test","testing","test-injection","test-seam","text","textpool","then","throw","time","times","timestamp","timezone","tims_is_valid","title","titlebar","title-lines","to","tokenization","tokens","top-lines","top-of-page","trace-file","trace-table","trailing","transaction","transfer","transformation","transporting","trmac","truncate","truncation","try","tstmp_add_seconds","tstmp_current_utctimestamp","tstmp_is_valid","tstmp_seconds_between","type","type-pool","type-pools","types","uline","unassign","under","unicode","union","unique","unit_conversion","unix","unpack","until","unwind","up","update","upper","user","user-command","using","utf-8","valid","value","value-request","values","vary","varying","verification-message","version","via","view","visible","wait","warning","when","whenever","where","while","width","window","windows","with","with-heading","without","with-title","word","work","write","writer","xml","xsd","yellow","yes","yymmdd","zero","zone","abs","acos","asin","atan","bit-set","boolc","boolx","ceil","char_off","charlen","cmax","cmin","concat_lines_of","condense","contains","contains_any_not_of","contains_any_of","cos","cosh","count","count_any_not_of","count_any_of","dbmaxlen","distance","escape","exp","find","find_any_not_of","find_any_of","find_end","floor","frac","from_mixed","insert","ipow","line_exists","line_index","lines","log","log10","match","matches","nmax","nmin","numofchar","repeat","replace","rescale","reverse","round","segment","shift_left","shift_right","sign","sin","sinh","sqrt","strlen","substring","substring_after","substring_before","substring_from","substring_to","tan","tanh","to_lower","to_mixed","to_upper","translate","trunc","utclong_add","utclong_current","utclong_diff","xsdbool","xstrlen"],typeKeywords:["b","c","d","decfloat16","decfloat34","f","i","int8","n","p","s","string","t","utclong","x","xstring","any","clike","csequence","decfloat","numeric","simple","xsequence","table","hashed","index","sorted","standard","accp","char","clnt","cuky","curr","dats","dec","df16_dec","df16_raw","df34_dec","df34_raw","fltp","int1","int2","int4","lang","lchr","lraw","numc","quan","raw","rawstring","sstring","tims","unit","df16_scl","df34_scl","prec","varc","abap_bool","space","me","syst","sy","screen"],operators:[" +"," -","/","*","**","div","mod","=","#","@","&","&&","bit-and","bit-not","bit-or","bit-xor","m","o","z","and","equiv","not","or"," < "," > ","<=",">=","<>","><","=<","=>","between","bt","byte-ca","byte-cn","byte-co","byte-cs","byte-na","byte-ns","ca","cn","co","cp","cs","eq","ge","gt","in","le","lt","na","nb","ne","np","ns"],symbols:/[=>/,"identifier"],{include:"@whitespace"},[/[:,.]/,"delimiter"],[/[{}()\[\]]/,"@brackets"],[/@symbols/,{cases:{"@operators":"operator","@default":""}}],[/'/,{token:"string",bracket:"@open",next:"@stringquote"}],[/`/,{token:"string",bracket:"@open",next:"@stringping"}],[/\|/,{token:"string",bracket:"@open",next:"@stringtemplate"}],[/\d+/,"number"]],stringtemplate:[[/[^\\\|]+/,"string"],[/\\\|/,"string"],[/\|/,{token:"string",bracket:"@close",next:"@pop"}]],stringping:[[/[^\\`]+/,"string"],[/`/,{token:"string",bracket:"@close",next:"@pop"}]],stringquote:[[/[^\\']+/,"string"],[/'/,{token:"string",bracket:"@close",next:"@pop"}]],whitespace:[[/[ \t\r\n]+/,""],[/^\*.*$/,"comment"],[/\".*$/,"comment"]]}}})); \ No newline at end of file diff --git a/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/apex/apex.js b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/apex/apex.js new file mode 100644 index 0000000..4bfac9d --- /dev/null +++ b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/apex/apex.js @@ -0,0 +1,7 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * monaco-languages version: 2.1.1(425b0e3c9ea2067410b8f90e0f30de383188c418) + * Released under the MIT license + * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/apex/apex",["require","exports"],(function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.language=t.conf=void 0,t.conf={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"<",close:">"}],folding:{markers:{start:new RegExp("^\\s*//\\s*(?:(?:#?region\\b)|(?:))")}}};var s=[];["abstract","activate","and","any","array","as","asc","assert","autonomous","begin","bigdecimal","blob","boolean","break","bulk","by","case","cast","catch","char","class","collect","commit","const","continue","convertcurrency","decimal","default","delete","desc","do","double","else","end","enum","exception","exit","export","extends","false","final","finally","float","for","from","future","get","global","goto","group","having","hint","if","implements","import","in","inner","insert","instanceof","int","interface","into","join","last_90_days","last_month","last_n_days","last_week","like","limit","list","long","loop","map","merge","native","new","next_90_days","next_month","next_n_days","next_week","not","null","nulls","number","object","of","on","or","outer","override","package","parallel","pragma","private","protected","public","retrieve","return","returning","rollback","savepoint","search","select","set","short","sort","stat","static","strictfp","super","switch","synchronized","system","testmethod","then","this","this_month","this_week","throw","throws","today","tolabel","tomorrow","transaction","transient","trigger","true","try","type","undelete","update","upsert","using","virtual","void","volatile","webservice","when","where","while","yesterday"].forEach((function(e){s.push(e),s.push(e.toUpperCase()),s.push(function(e){return e.charAt(0).toUpperCase()+e.substr(1)}(e))})),t.language={defaultToken:"",tokenPostfix:".apex",keywords:s,operators:["=",">","<","!","~","?",":","==","<=",">=","!=","&&","||","++","--","+","-","*","/","&","|","^","%","<<",">>",">>>","+=","-=","*=","/=","&=","|=","^=","%=","<<=",">>=",">>>="],symbols:/[=>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/@\s*[a-zA-Z_\$][\w\$]*/,"annotation"],[/(@digits)[eE]([\-+]?(@digits))?[fFdD]?/,"number.float"],[/(@digits)\.(@digits)([eE][\-+]?(@digits))?[fFdD]?/,"number.float"],[/(@digits)[fFdD]/,"number.float"],[/(@digits)[lL]?/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/"/,"string",'@string."'],[/'/,"string","@string.'"],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@apexdoc"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],apexdoc:[[/[^\/*]+/,"comment.doc"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],string:[[/[^\\"']+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/["']/,{cases:{"$#==$S2":{token:"string",next:"@pop"},"@default":"string"}}]]}}})); \ No newline at end of file diff --git a/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/azcli/azcli.js b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/azcli/azcli.js new file mode 100644 index 0000000..81fe406 --- /dev/null +++ b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/azcli/azcli.js @@ -0,0 +1,7 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * monaco-languages version: 2.1.1(425b0e3c9ea2067410b8f90e0f30de383188c418) + * Released under the MIT license + * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/azcli/azcli",["require","exports"],(function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.language=t.conf=void 0,t.conf={comments:{lineComment:"#"}},t.language={defaultToken:"keyword",ignoreCase:!0,tokenPostfix:".azcli",str:/[^#\s]/,tokenizer:{root:[{include:"@comment"},[/\s-+@str*\s*/,{cases:{"@eos":{token:"key.identifier",next:"@popall"},"@default":{token:"key.identifier",next:"@type"}}}],[/^-+@str*\s*/,{cases:{"@eos":{token:"key.identifier",next:"@popall"},"@default":{token:"key.identifier",next:"@type"}}}]],type:[{include:"@comment"},[/-+@str*\s*/,{cases:{"@eos":{token:"key.identifier",next:"@popall"},"@default":"key.identifier"}}],[/@str+\s*/,{cases:{"@eos":{token:"string",next:"@popall"},"@default":"string"}}]],comment:[[/#.*$/,{cases:{"@eos":{token:"comment",next:"@popall"}}}]]}}})); \ No newline at end of file diff --git a/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/bat/bat.js b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/bat/bat.js new file mode 100644 index 0000000..3092ee4 --- /dev/null +++ b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/bat/bat.js @@ -0,0 +1,7 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * monaco-languages version: 2.1.1(425b0e3c9ea2067410b8f90e0f30de383188c418) + * Released under the MIT license + * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/bat/bat",["require","exports"],(function(e,s){"use strict";Object.defineProperty(s,"__esModule",{value:!0}),s.language=s.conf=void 0,s.conf={comments:{lineComment:"REM"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'}],surroundingPairs:[{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'}],folding:{markers:{start:new RegExp("^\\s*(::\\s*|REM\\s+)#region"),end:new RegExp("^\\s*(::\\s*|REM\\s+)#endregion")}}},s.language={defaultToken:"",ignoreCase:!0,tokenPostfix:".bat",brackets:[{token:"delimiter.bracket",open:"{",close:"}"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.square",open:"[",close:"]"}],keywords:/call|defined|echo|errorlevel|exist|for|goto|if|pause|set|shift|start|title|not|pushd|popd/,symbols:/[=>"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:"'",close:"'"}]},o.language={defaultToken:"",tokenPostfix:".cameligo",ignoreCase:!0,brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],keywords:["abs","begin","Bytes","Crypto","Current","else","end","failwith","false","fun","if","in","let","let%entry","let%init","List","list","Map","map","match","match%nat","mod","not","operation","Operation","of","Set","set","sender","source","String","then","true","type","with"],typeKeywords:["int","unit","string","tz"],operators:["=",">","<","<=",">=","<>",":",":=","and","mod","or","+","-","*","/","@","&","^","%","->","<-"],symbols:/[=><:@\^&|+\-*\/\^%]+/,tokenizer:{root:[[/[a-zA-Z_][\w]*/,{cases:{"@keywords":{token:"keyword.$0"},"@default":"identifier"}}],{include:"@whitespace"},[/[{}()\[\]]/,"@brackets"],[/[<>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/\$[0-9a-fA-F]{1,16}/,"number.hex"],[/\d+/,"number"],[/[;,.]/,"delimiter"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/'/,"string","@string"],[/'[^\\']'/,"string"],[/'/,"string.invalid"],[/\#\d+/,"string"]],comment:[[/[^\(\*]+/,"comment"],[/\*\)/,"comment","@pop"],[/\(\*/,"comment"]],string:[[/[^\\']+/,"string"],[/\\./,"string.escape.invalid"],[/'/,{token:"string.quote",bracket:"@close",next:"@pop"}]],whitespace:[[/[ \t\r\n]+/,"white"],[/\(\*/,"comment","@comment"],[/\/\/.*$/,"comment"]]}}})); \ No newline at end of file diff --git a/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/clojure/clojure.js b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/clojure/clojure.js new file mode 100644 index 0000000..3b66c81 --- /dev/null +++ b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/clojure/clojure.js @@ -0,0 +1,7 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * monaco-languages version: 2.1.1(425b0e3c9ea2067410b8f90e0f30de383188c418) + * Released under the MIT license + * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/clojure/clojure",["require","exports"],(function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.language=t.conf=void 0,t.conf={comments:{lineComment:";;"},brackets:[["[","]"],["(",")"],["{","}"]],autoClosingPairs:[{open:"[",close:"]"},{open:'"',close:'"'},{open:"(",close:")"},{open:"{",close:"}"}],surroundingPairs:[{open:"[",close:"]"},{open:'"',close:'"'},{open:"(",close:")"},{open:"{",close:"}"}]},t.language={defaultToken:"",ignoreCase:!0,tokenPostfix:".clj",brackets:[{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"{",close:"}",token:"delimiter.curly"}],constants:["true","false","nil"],numbers:/^(?:[+\-]?\d+(?:(?:N|(?:[eE][+\-]?\d+))|(?:\.?\d*(?:M|(?:[eE][+\-]?\d+))?)|\/\d+|[xX][0-9a-fA-F]+|r[0-9a-zA-Z]+)?(?=[\\\[\]\s"#'(),;@^`{}~]|$))/,characters:/^(?:\\(?:backspace|formfeed|newline|return|space|tab|o[0-7]{3}|u[0-9A-Fa-f]{4}|x[0-9A-Fa-f]{4}|.)?(?=[\\\[\]\s"(),;@^`{}~]|$))/,escapes:/^\\(?:["'\\bfnrt]|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,qualifiedSymbols:/^(?:(?:[^\\\/\[\]\d\s"#'(),;@^`{}~][^\\\[\]\s"(),;@^`{}~]*(?:\.[^\\\/\[\]\d\s"#'(),;@^`{}~][^\\\[\]\s"(),;@^`{}~]*)*\/)?(?:\/|[^\\\/\[\]\d\s"#'(),;@^`{}~][^\\\[\]\s"(),;@^`{}~]*)*(?=[\\\[\]\s"(),;@^`{}~]|$))/,specialForms:[".","catch","def","do","if","monitor-enter","monitor-exit","new","quote","recur","set!","throw","try","var"],coreSymbols:["*","*'","*1","*2","*3","*agent*","*allow-unresolved-vars*","*assert*","*clojure-version*","*command-line-args*","*compile-files*","*compile-path*","*compiler-options*","*data-readers*","*default-data-reader-fn*","*e","*err*","*file*","*flush-on-newline*","*fn-loader*","*in*","*math-context*","*ns*","*out*","*print-dup*","*print-length*","*print-level*","*print-meta*","*print-namespace-maps*","*print-readably*","*read-eval*","*reader-resolver*","*source-path*","*suppress-read*","*unchecked-math*","*use-context-classloader*","*verbose-defrecords*","*warn-on-reflection*","+","+'","-","-'","->","->>","->ArrayChunk","->Eduction","->Vec","->VecNode","->VecSeq","-cache-protocol-fn","-reset-methods","..","/","<","<=","=","==",">",">=","EMPTY-NODE","Inst","StackTraceElement->vec","Throwable->map","accessor","aclone","add-classpath","add-watch","agent","agent-error","agent-errors","aget","alength","alias","all-ns","alter","alter-meta!","alter-var-root","amap","ancestors","and","any?","apply","areduce","array-map","as->","aset","aset-boolean","aset-byte","aset-char","aset-double","aset-float","aset-int","aset-long","aset-short","assert","assoc","assoc!","assoc-in","associative?","atom","await","await-for","await1","bases","bean","bigdec","bigint","biginteger","binding","bit-and","bit-and-not","bit-clear","bit-flip","bit-not","bit-or","bit-set","bit-shift-left","bit-shift-right","bit-test","bit-xor","boolean","boolean-array","boolean?","booleans","bound-fn","bound-fn*","bound?","bounded-count","butlast","byte","byte-array","bytes","bytes?","case","cast","cat","char","char-array","char-escape-string","char-name-string","char?","chars","chunk","chunk-append","chunk-buffer","chunk-cons","chunk-first","chunk-next","chunk-rest","chunked-seq?","class","class?","clear-agent-errors","clojure-version","coll?","comment","commute","comp","comparator","compare","compare-and-set!","compile","complement","completing","concat","cond","cond->","cond->>","condp","conj","conj!","cons","constantly","construct-proxy","contains?","count","counted?","create-ns","create-struct","cycle","dec","dec'","decimal?","declare","dedupe","default-data-readers","definline","definterface","defmacro","defmethod","defmulti","defn","defn-","defonce","defprotocol","defrecord","defstruct","deftype","delay","delay?","deliver","denominator","deref","derive","descendants","destructure","disj","disj!","dissoc","dissoc!","distinct","distinct?","doall","dorun","doseq","dosync","dotimes","doto","double","double-array","double?","doubles","drop","drop-last","drop-while","eduction","empty","empty?","ensure","ensure-reduced","enumeration-seq","error-handler","error-mode","eval","even?","every-pred","every?","ex-data","ex-info","extend","extend-protocol","extend-type","extenders","extends?","false?","ffirst","file-seq","filter","filterv","find","find-keyword","find-ns","find-protocol-impl","find-protocol-method","find-var","first","flatten","float","float-array","float?","floats","flush","fn","fn?","fnext","fnil","for","force","format","frequencies","future","future-call","future-cancel","future-cancelled?","future-done?","future?","gen-class","gen-interface","gensym","get","get-in","get-method","get-proxy-class","get-thread-bindings","get-validator","group-by","halt-when","hash","hash-combine","hash-map","hash-ordered-coll","hash-set","hash-unordered-coll","ident?","identical?","identity","if-let","if-not","if-some","ifn?","import","in-ns","inc","inc'","indexed?","init-proxy","inst-ms","inst-ms*","inst?","instance?","int","int-array","int?","integer?","interleave","intern","interpose","into","into-array","ints","io!","isa?","iterate","iterator-seq","juxt","keep","keep-indexed","key","keys","keyword","keyword?","last","lazy-cat","lazy-seq","let","letfn","line-seq","list","list*","list?","load","load-file","load-reader","load-string","loaded-libs","locking","long","long-array","longs","loop","macroexpand","macroexpand-1","make-array","make-hierarchy","map","map-entry?","map-indexed","map?","mapcat","mapv","max","max-key","memfn","memoize","merge","merge-with","meta","method-sig","methods","min","min-key","mix-collection-hash","mod","munge","name","namespace","namespace-munge","nat-int?","neg-int?","neg?","newline","next","nfirst","nil?","nnext","not","not-any?","not-empty","not-every?","not=","ns","ns-aliases","ns-imports","ns-interns","ns-map","ns-name","ns-publics","ns-refers","ns-resolve","ns-unalias","ns-unmap","nth","nthnext","nthrest","num","number?","numerator","object-array","odd?","or","parents","partial","partition","partition-all","partition-by","pcalls","peek","persistent!","pmap","pop","pop!","pop-thread-bindings","pos-int?","pos?","pr","pr-str","prefer-method","prefers","primitives-classnames","print","print-ctor","print-dup","print-method","print-simple","print-str","printf","println","println-str","prn","prn-str","promise","proxy","proxy-call-with-super","proxy-mappings","proxy-name","proxy-super","push-thread-bindings","pvalues","qualified-ident?","qualified-keyword?","qualified-symbol?","quot","rand","rand-int","rand-nth","random-sample","range","ratio?","rational?","rationalize","re-find","re-groups","re-matcher","re-matches","re-pattern","re-seq","read","read-line","read-string","reader-conditional","reader-conditional?","realized?","record?","reduce","reduce-kv","reduced","reduced?","reductions","ref","ref-history-count","ref-max-history","ref-min-history","ref-set","refer","refer-clojure","reify","release-pending-sends","rem","remove","remove-all-methods","remove-method","remove-ns","remove-watch","repeat","repeatedly","replace","replicate","require","reset!","reset-meta!","reset-vals!","resolve","rest","restart-agent","resultset-seq","reverse","reversible?","rseq","rsubseq","run!","satisfies?","second","select-keys","send","send-off","send-via","seq","seq?","seqable?","seque","sequence","sequential?","set","set-agent-send-executor!","set-agent-send-off-executor!","set-error-handler!","set-error-mode!","set-validator!","set?","short","short-array","shorts","shuffle","shutdown-agents","simple-ident?","simple-keyword?","simple-symbol?","slurp","some","some->","some->>","some-fn","some?","sort","sort-by","sorted-map","sorted-map-by","sorted-set","sorted-set-by","sorted?","special-symbol?","spit","split-at","split-with","str","string?","struct","struct-map","subs","subseq","subvec","supers","swap!","swap-vals!","symbol","symbol?","sync","tagged-literal","tagged-literal?","take","take-last","take-nth","take-while","test","the-ns","thread-bound?","time","to-array","to-array-2d","trampoline","transduce","transient","tree-seq","true?","type","unchecked-add","unchecked-add-int","unchecked-byte","unchecked-char","unchecked-dec","unchecked-dec-int","unchecked-divide-int","unchecked-double","unchecked-float","unchecked-inc","unchecked-inc-int","unchecked-int","unchecked-long","unchecked-multiply","unchecked-multiply-int","unchecked-negate","unchecked-negate-int","unchecked-remainder-int","unchecked-short","unchecked-subtract","unchecked-subtract-int","underive","unquote","unquote-splicing","unreduced","unsigned-bit-shift-right","update","update-in","update-proxy","uri?","use","uuid?","val","vals","var-get","var-set","var?","vary-meta","vec","vector","vector-of","vector?","volatile!","volatile?","vreset!","vswap!","when","when-first","when-let","when-not","when-some","while","with-bindings","with-bindings*","with-in-str","with-loading-context","with-local-vars","with-meta","with-open","with-out-str","with-precision","with-redefs","with-redefs-fn","xml-seq","zero?","zipmap"],tokenizer:{root:[{include:"@whitespace"},[/@numbers/,"number"],[/@characters/,"string"],{include:"@string"},[/[()\[\]{}]/,"@brackets"],[/\/#"(?:\.|(?:")|[^"\n])*"\/g/,"regexp"],[/[#'@^`~]/,"meta"],[/@qualifiedSymbols/,{cases:{"^:.+$":"constant","@specialForms":"keyword","@coreSymbols":"keyword","@constants":"constant","@default":"identifier"}}]],whitespace:[[/[\s,]+/,"white"],[/;.*$/,"comment"],[/\(comment\b/,"comment","@comment"]],comment:[[/\(/,"comment","@push"],[/\)/,"comment","@pop"],[/[^()]/,"comment"]],string:[[/"/,"string","@multiLineString"]],multiLineString:[[/"/,"string","@popall"],[/@escapes/,"string.escape"],[/./,"string"]]}}})); \ No newline at end of file diff --git a/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/coffee/coffee.js b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/coffee/coffee.js new file mode 100644 index 0000000..a161e8d --- /dev/null +++ b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/coffee/coffee.js @@ -0,0 +1,7 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * monaco-languages version: 2.1.1(425b0e3c9ea2067410b8f90e0f30de383188c418) + * Released under the MIT license + * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/coffee/coffee",["require","exports"],(function(e,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.language=n.conf=void 0,n.conf={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\#%\^\&\*\(\)\=\$\-\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{blockComment:["###","###"],lineComment:"#"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{markers:{start:new RegExp("^\\s*#region\\b"),end:new RegExp("^\\s*#endregion\\b")}}},n.language={defaultToken:"",ignoreCase:!0,tokenPostfix:".coffee",brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"}],regEx:/\/(?!\/\/)(?:[^\/\\]|\\.)*\/[igm]*/,keywords:["and","or","is","isnt","not","on","yes","@","no","off","true","false","null","this","new","delete","typeof","in","instanceof","return","throw","break","continue","debugger","if","else","switch","for","while","do","try","catch","finally","class","extends","super","undefined","then","unless","until","loop","of","by","when"],symbols:/[=>"}],keywords:["abstract","amp","array","auto","bool","break","case","catch","char","class","const","constexpr","const_cast","continue","cpu","decltype","default","delegate","delete","do","double","dynamic_cast","each","else","enum","event","explicit","export","extern","false","final","finally","float","for","friend","gcnew","generic","goto","if","in","initonly","inline","int","interface","interior_ptr","internal","literal","long","mutable","namespace","new","noexcept","nullptr","__nullptr","operator","override","partial","pascal","pin_ptr","private","property","protected","public","ref","register","reinterpret_cast","restrict","return","safe_cast","sealed","short","signed","sizeof","static","static_assert","static_cast","struct","switch","template","this","thread_local","throw","tile_static","true","try","typedef","typeid","typename","union","unsigned","using","virtual","void","volatile","wchar_t","where","while","_asm","_based","_cdecl","_declspec","_fastcall","_if_exists","_if_not_exists","_inline","_multiple_inheritance","_pascal","_single_inheritance","_stdcall","_virtual_inheritance","_w64","__abstract","__alignof","__asm","__assume","__based","__box","__builtin_alignof","__cdecl","__clrcall","__declspec","__delegate","__event","__except","__fastcall","__finally","__forceinline","__gc","__hook","__identifier","__if_exists","__if_not_exists","__inline","__int128","__int16","__int32","__int64","__int8","__interface","__leave","__m128","__m128d","__m128i","__m256","__m256d","__m256i","__m64","__multiple_inheritance","__newslot","__nogc","__noop","__nounwind","__novtordisp","__pascal","__pin","__pragma","__property","__ptr32","__ptr64","__raise","__restrict","__resume","__sealed","__single_inheritance","__stdcall","__super","__thiscall","__try","__try_cast","__typeof","__unaligned","__unhook","__uuidof","__value","__virtual_inheritance","__w64","__wchar_t"],operators:["=",">","<","!","~","?",":","==","<=",">=","!=","&&","||","++","--","+","-","*","/","&","|","^","%","<<",">>",">>>","+=","-=","*=","/=","&=","|=","^=","%=","<<=",">>=",">>>="],symbols:/[=>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/\d*\d+[eE]([\-+]?\d+)?(@floatsuffix)/,"number.float"],[/\d*\.\d+([eE][\-+]?\d+)?(@floatsuffix)/,"number.float"],[/0[xX][0-9a-fA-F']*[0-9a-fA-F](@integersuffix)/,"number.hex"],[/0[0-7']*[0-7](@integersuffix)/,"number.octal"],[/0[bB][0-1']*[0-1](@integersuffix)/,"number.binary"],[/\d[\d']*\d(@integersuffix)/,"number"],[/\d(@integersuffix)/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string"],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@doccomment"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],doccomment:[[/[^\/*]+/,"comment.doc"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],raw:[[/(.*)(\))(?:([^ ()\\\t"]*))(\")/,{cases:{"$3==$S2":["string.raw","string.raw.end","string.raw.end",{token:"string.raw.end",next:"@pop"}],"@default":["string.raw","string.raw","string.raw","string.raw"]}}],[/.*/,"string.raw"]],include:[[/(\s*)(<)([^<>]*)(>)/,["","keyword.directive.include.begin","string.include.identifier",{token:"keyword.directive.include.end",next:"@pop"}]],[/(\s*)(")([^"]*)(")/,["","keyword.directive.include.begin","string.include.identifier",{token:"keyword.directive.include.end",next:"@pop"}]]]}}})); \ No newline at end of file diff --git a/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/csharp/csharp.js b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/csharp/csharp.js new file mode 100644 index 0000000..7de9c41 --- /dev/null +++ b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/csharp/csharp.js @@ -0,0 +1,7 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * monaco-languages version: 2.1.1(425b0e3c9ea2067410b8f90e0f30de383188c418) + * Released under the MIT license + * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/csharp/csharp",["require","exports"],(function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.language=t.conf=void 0,t.conf={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\#\$\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"'",close:"'",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:"'",close:"'"},{open:'"',close:'"'}],folding:{markers:{start:new RegExp("^\\s*#region\\b"),end:new RegExp("^\\s*#endregion\\b")}}},t.language={defaultToken:"",tokenPostfix:".cs",brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],keywords:["extern","alias","using","bool","decimal","sbyte","byte","short","ushort","int","uint","long","ulong","char","float","double","object","dynamic","string","assembly","is","as","ref","out","this","base","new","typeof","void","checked","unchecked","default","delegate","var","const","if","else","switch","case","while","do","for","foreach","in","break","continue","goto","return","throw","try","catch","finally","lock","yield","from","let","where","join","on","equals","into","orderby","ascending","descending","select","group","by","namespace","partial","class","field","event","method","param","property","public","protected","internal","private","abstract","sealed","static","struct","readonly","volatile","virtual","override","params","get","set","add","remove","operator","true","false","implicit","explicit","interface","enum","null","async","await","fixed","sizeof","stackalloc","unsafe","nameof","when"],namespaceFollows:["namespace","using"],parenFollows:["if","for","while","switch","foreach","using","catch","when"],operators:["=","??","||","&&","|","^","&","==","!=","<=",">=","<<","+","-","*","/","%","!","~","++","--","+=","-=","*=","/=","%=","&=","|=","^=","<<=",">>=",">>","=>"],symbols:/[=>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/[0-9_]*\.[0-9_]+([eE][\-+]?\d+)?[fFdD]?/,"number.float"],[/0[xX][0-9a-fA-F_]+/,"number.hex"],[/0[bB][01_]+/,"number.hex"],[/[0-9_]+/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,{token:"string.quote",next:"@string"}],[/\$\@"/,{token:"string.quote",next:"@litinterpstring"}],[/\@"/,{token:"string.quote",next:"@litstring"}],[/\$"/,{token:"string.quote",next:"@interpolatedstring"}],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],qualified:[[/[a-zA-Z_][\w]*/,{cases:{"@keywords":{token:"keyword.$0"},"@default":"identifier"}}],[/\./,"delimiter"],["","","@pop"]],namespace:[{include:"@whitespace"},[/[A-Z]\w*/,"namespace"],[/[\.=]/,"delimiter"],["","","@pop"]],comment:[[/[^\/*]+/,"comment"],["\\*/","comment","@pop"],[/[\/*]/,"comment"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,{token:"string.quote",next:"@pop"}]],litstring:[[/[^"]+/,"string"],[/""/,"string.escape"],[/"/,{token:"string.quote",next:"@pop"}]],litinterpstring:[[/[^"{]+/,"string"],[/""/,"string.escape"],[/{{/,"string.escape"],[/}}/,"string.escape"],[/{/,{token:"string.quote",next:"root.litinterpstring"}],[/"/,{token:"string.quote",next:"@pop"}]],interpolatedstring:[[/[^\\"{]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/{{/,"string.escape"],[/}}/,"string.escape"],[/{/,{token:"string.quote",next:"root.interpolatedstring"}],[/"/,{token:"string.quote",next:"@pop"}]],whitespace:[[/^[ \t\v\f]*#((r)|(load))(?=\s)/,"directive.csx"],[/^[ \t\v\f]*#\w.*$/,"namespace.cpp"],[/[ \t\v\f\r\n]+/,""],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]]}}})); \ No newline at end of file diff --git a/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/csp/csp.js b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/csp/csp.js new file mode 100644 index 0000000..0f4d3db --- /dev/null +++ b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/csp/csp.js @@ -0,0 +1,7 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * monaco-languages version: 2.1.1(425b0e3c9ea2067410b8f90e0f30de383188c418) + * Released under the MIT license + * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/csp/csp",["require","exports"],(function(t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.language=e.conf=void 0,e.conf={brackets:[],autoClosingPairs:[],surroundingPairs:[]},e.language={keywords:[],typeKeywords:[],tokenPostfix:".csp",operators:[],symbols:/[=>",token:"delimiter.angle"}],tokenizer:{root:[{include:"@selector"}],selector:[{include:"@comments"},{include:"@import"},{include:"@strings"},["[@](keyframes|-webkit-keyframes|-moz-keyframes|-o-keyframes)",{token:"keyword",next:"@keyframedeclaration"}],["[@](page|content|font-face|-moz-document)",{token:"keyword"}],["[@](charset|namespace)",{token:"keyword",next:"@declarationbody"}],["(url-prefix)(\\()",["attribute.value",{token:"delimiter.parenthesis",next:"@urldeclaration"}]],["(url)(\\()",["attribute.value",{token:"delimiter.parenthesis",next:"@urldeclaration"}]],{include:"@selectorname"},["[\\*]","tag"],["[>\\+,]","delimiter"],["\\[",{token:"delimiter.bracket",next:"@selectorattribute"}],["{",{token:"delimiter.bracket",next:"@selectorbody"}]],selectorbody:[{include:"@comments"},["[*_]?@identifier@ws:(?=(\\s|\\d|[^{;}]*[;}]))","attribute.name","@rulevalue"],["}",{token:"delimiter.bracket",next:"@pop"}]],selectorname:[["(\\.|#(?=[^{])|%|(@identifier)|:)+","tag"]],selectorattribute:[{include:"@term"},["]",{token:"delimiter.bracket",next:"@pop"}]],term:[{include:"@comments"},["(url-prefix)(\\()",["attribute.value",{token:"delimiter.parenthesis",next:"@urldeclaration"}]],["(url)(\\()",["attribute.value",{token:"delimiter.parenthesis",next:"@urldeclaration"}]],{include:"@functioninvocation"},{include:"@numbers"},{include:"@name"},["([<>=\\+\\-\\*\\/\\^\\|\\~,])","delimiter"],[",","delimiter"]],rulevalue:[{include:"@comments"},{include:"@strings"},{include:"@term"},["!important","keyword"],[";","delimiter","@pop"],["(?=})",{token:"",next:"@pop"}]],warndebug:[["[@](warn|debug)",{token:"keyword",next:"@declarationbody"}]],import:[["[@](import)",{token:"keyword",next:"@declarationbody"}]],urldeclaration:[{include:"@strings"},["[^)\r\n]+","string"],["\\)",{token:"delimiter.parenthesis",next:"@pop"}]],parenthizedterm:[{include:"@term"},["\\)",{token:"delimiter.parenthesis",next:"@pop"}]],declarationbody:[{include:"@term"},[";","delimiter","@pop"],["(?=})",{token:"",next:"@pop"}]],comments:[["\\/\\*","comment","@comment"],["\\/\\/+.*","comment"]],comment:[["\\*\\/","comment","@pop"],[/[^*/]+/,"comment"],[/./,"comment"]],name:[["@identifier","attribute.value"]],numbers:[["-?(\\d*\\.)?\\d+([eE][\\-+]?\\d+)?",{token:"attribute.value.number",next:"@units"}],["#[0-9a-fA-F_]+(?!\\w)","attribute.value.hex"]],units:[["(em|ex|ch|rem|vmin|vmax|vw|vh|vm|cm|mm|in|px|pt|pc|deg|grad|rad|turn|s|ms|Hz|kHz|%)?","attribute.value.unit","@pop"]],keyframedeclaration:[["@identifier","attribute.value"],["{",{token:"delimiter.bracket",switchTo:"@keyframebody"}]],keyframebody:[{include:"@term"},["{",{token:"delimiter.bracket",next:"@selectorbody"}],["}",{token:"delimiter.bracket",next:"@pop"}]],functioninvocation:[["@identifier\\(",{token:"attribute.value",next:"@functionarguments"}]],functionarguments:[["\\$@identifier@ws:","attribute.name"],["[,]","delimiter"],{include:"@term"},["\\)",{token:"attribute.value",next:"@pop"}]],strings:[['~?"',{token:"string",next:"@stringenddoublequote"}],["~?'",{token:"string",next:"@stringendquote"}]],stringenddoublequote:[["\\\\.","string"],['"',{token:"string",next:"@pop"}],[/[^\\"]+/,"string"],[".","string"]],stringendquote:[["\\\\.","string"],["'",{token:"string",next:"@pop"}],[/[^\\']+/,"string"],[".","string"]]}}})); \ No newline at end of file diff --git a/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/dart/dart.js b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/dart/dart.js new file mode 100644 index 0000000..3dc6c28 --- /dev/null +++ b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/dart/dart.js @@ -0,0 +1,7 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * monaco-languages version: 2.1.1(425b0e3c9ea2067410b8f90e0f30de383188c418) + * Released under the MIT license + * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/dart/dart",["require","exports"],(function(e,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.language=n.conf=void 0,n.conf={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"'",close:"'",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string"]},{open:"`",close:"`",notIn:["string","comment"]},{open:"/**",close:" */",notIn:["string"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:"'",close:"'"},{open:"(",close:")"},{open:'"',close:'"'},{open:"`",close:"`"}],folding:{markers:{start:/^\s*\s*#?region\b/,end:/^\s*\s*#?endregion\b/}}},n.language={defaultToken:"invalid",tokenPostfix:".dart",keywords:["abstract","dynamic","implements","show","as","else","import","static","assert","enum","in","super","async","export","interface","switch","await","extends","is","sync","break","external","library","this","case","factory","mixin","throw","catch","false","new","true","class","final","null","try","const","finally","on","typedef","continue","for","operator","var","covariant","Function","part","void","default","get","rethrow","while","deferred","hide","return","with","do","if","set","yield"],typeKeywords:["int","double","String","bool"],operators:["+","-","*","/","~/","%","++","--","==","!=",">","<",">=","<=","=","-=","/=","%=",">>=","^=","+=","*=","~/=","<<=","&=","!=","||","&&","&","|","^","~","<<",">>","!",">>>","??","?",":","|="],symbols:/[=>](?!@symbols)/,"@brackets"],[/!(?=([^=]|$))/,"delimiter"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/(@digits)[eE]([\-+]?(@digits))?/,"number.float"],[/(@digits)\.(@digits)([eE][\-+]?(@digits))?/,"number.float"],[/0[xX](@hexdigits)n?/,"number.hex"],[/0[oO]?(@octaldigits)n?/,"number.octal"],[/0[bB](@binarydigits)n?/,"number.binary"],[/(@digits)n?/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string_double"],[/'/,"string","@string_single"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@jsdoc"],[/\/\*/,"comment","@comment"],[/\/\/\/.*$/,"comment.doc"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],jsdoc:[[/[^\/*]+/,"comment.doc"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],regexp:[[/(\{)(\d+(?:,\d*)?)(\})/,["regexp.escape.control","regexp.escape.control","regexp.escape.control"]],[/(\[)(\^?)(?=(?:[^\]\\\/]|\\.)+)/,["regexp.escape.control",{token:"regexp.escape.control",next:"@regexrange"}]],[/(\()(\?:|\?=|\?!)/,["regexp.escape.control","regexp.escape.control"]],[/[()]/,"regexp.escape.control"],[/@regexpctl/,"regexp.escape.control"],[/[^\\\/]/,"regexp"],[/@regexpesc/,"regexp.escape"],[/\\\./,"regexp.invalid"],[/(\/)([gimsuy]*)/,[{token:"regexp",bracket:"@close",next:"@pop"},"keyword.other"]]],regexrange:[[/-/,"regexp.escape.control"],[/\^/,"regexp.invalid"],[/@regexpesc/,"regexp.escape"],[/[^\]]/,"regexp"],[/\]/,{token:"regexp.escape.control",next:"@pop",bracket:"@close"}]],string_double:[[/[^\\"\$]+/,"string"],[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"],[/\$\w+/,"identifier"]],string_single:[[/[^\\'\$]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/'/,"string","@pop"],[/\$\w+/,"identifier"]]}}})); \ No newline at end of file diff --git a/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/dockerfile/dockerfile.js b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/dockerfile/dockerfile.js new file mode 100644 index 0000000..c5827f2 --- /dev/null +++ b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/dockerfile/dockerfile.js @@ -0,0 +1,7 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * monaco-languages version: 2.1.1(425b0e3c9ea2067410b8f90e0f30de383188c418) + * Released under the MIT license + * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/dockerfile/dockerfile",["require","exports"],(function(e,o){"use strict";Object.defineProperty(o,"__esModule",{value:!0}),o.language=o.conf=void 0,o.conf={brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}]},o.language={defaultToken:"",tokenPostfix:".dockerfile",variable:/\${?[\w]+}?/,tokenizer:{root:[{include:"@whitespace"},{include:"@comment"},[/(ONBUILD)(\s+)/,["keyword",""]],[/(ENV)(\s+)([\w]+)/,["keyword","",{token:"variable",next:"@arguments"}]],[/(FROM|MAINTAINER|RUN|EXPOSE|ENV|ADD|ARG|VOLUME|LABEL|USER|WORKDIR|COPY|CMD|STOPSIGNAL|SHELL|HEALTHCHECK|ENTRYPOINT)/,{token:"keyword",next:"@arguments"}]],arguments:[{include:"@whitespace"},{include:"@strings"},[/(@variable)/,{cases:{"@eos":{token:"variable",next:"@popall"},"@default":"variable"}}],[/\\/,{cases:{"@eos":"","@default":""}}],[/./,{cases:{"@eos":{token:"",next:"@popall"},"@default":""}}]],whitespace:[[/\s+/,{cases:{"@eos":{token:"",next:"@popall"},"@default":""}}]],comment:[[/(^#.*$)/,"comment","@popall"]],strings:[[/\\'$/,"","@popall"],[/\\'/,""],[/'$/,"string","@popall"],[/'/,"string","@stringBody"],[/"$/,"string","@popall"],[/"/,"string","@dblStringBody"]],stringBody:[[/[^\\\$']/,{cases:{"@eos":{token:"string",next:"@popall"},"@default":"string"}}],[/\\./,"string.escape"],[/'$/,"string","@popall"],[/'/,"string","@pop"],[/(@variable)/,"variable"],[/\\$/,"string"],[/$/,"string","@popall"]],dblStringBody:[[/[^\\\$"]/,{cases:{"@eos":{token:"string",next:"@popall"},"@default":"string"}}],[/\\./,"string.escape"],[/"$/,"string","@popall"],[/"/,"string","@pop"],[/(@variable)/,"variable"],[/\\$/,"string"],[/$/,"string","@popall"]]}}})); \ No newline at end of file diff --git a/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/fsharp/fsharp.js b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/fsharp/fsharp.js new file mode 100644 index 0000000..f6f5696 --- /dev/null +++ b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/fsharp/fsharp.js @@ -0,0 +1,7 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * monaco-languages version: 2.1.1(425b0e3c9ea2067410b8f90e0f30de383188c418) + * Released under the MIT license + * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/fsharp/fsharp",["require","exports"],(function(e,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.language=n.conf=void 0,n.conf={comments:{lineComment:"//",blockComment:["(*","*)"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{markers:{start:new RegExp("^\\s*//\\s*#region\\b|^\\s*\\(\\*\\s*#region(.*)\\*\\)"),end:new RegExp("^\\s*//\\s*#endregion\\b|^\\s*\\(\\*\\s*#endregion\\s*\\*\\)")}}},n.language={defaultToken:"",tokenPostfix:".fs",keywords:["abstract","and","atomic","as","assert","asr","base","begin","break","checked","component","const","constraint","constructor","continue","class","default","delegate","do","done","downcast","downto","elif","else","end","exception","eager","event","external","extern","false","finally","for","fun","function","fixed","functor","global","if","in","include","inherit","inline","interface","internal","land","lor","lsl","lsr","lxor","lazy","let","match","member","mod","module","mutable","namespace","method","mixin","new","not","null","of","open","or","object","override","private","parallel","process","protected","pure","public","rec","return","static","sealed","struct","sig","then","to","true","tailcall","trait","try","type","upcast","use","val","void","virtual","volatile","when","while","with","yield"],symbols:/[=>\]/,"annotation"],[/^#(if|else|endif)/,"keyword"],[/[{}()\[\]]/,"@brackets"],[/[<>](?!@symbols)/,"@brackets"],[/@symbols/,"delimiter"],[/\d*\d+[eE]([\-+]?\d+)?(@floatsuffix)/,"number.float"],[/\d*\.\d+([eE][\-+]?\d+)?(@floatsuffix)/,"number.float"],[/0x[0-9a-fA-F]+LF/,"number.float"],[/0x[0-9a-fA-F]+(@integersuffix)/,"number.hex"],[/0b[0-1]+(@integersuffix)/,"number.bin"],[/\d+(@integersuffix)/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"""/,"string",'@string."""'],[/"/,"string",'@string."'],[/\@"/,{token:"string.quote",next:"@litstring"}],[/'[^\\']'B?/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],whitespace:[[/[ \t\r\n]+/,""],[/\(\*(?!\))/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^*(]+/,"comment"],[/\*\)/,"comment","@pop"],[/\*/,"comment"],[/\(\*\)/,"comment"],[/\(/,"comment"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/("""|"B?)/,{cases:{"$#==$S2":{token:"string",next:"@pop"},"@default":"string"}}]],litstring:[[/[^"]+/,"string"],[/""/,"string.escape"],[/"/,{token:"string.quote",next:"@pop"}]]}}})); \ No newline at end of file diff --git a/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/go/go.js b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/go/go.js new file mode 100644 index 0000000..4d58596 --- /dev/null +++ b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/go/go.js @@ -0,0 +1,7 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * monaco-languages version: 2.1.1(425b0e3c9ea2067410b8f90e0f30de383188c418) + * Released under the MIT license + * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/go/go",["require","exports"],(function(e,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.language=n.conf=void 0,n.conf={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"`",close:"`",notIn:["string"]},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"`",close:"`"},{open:'"',close:'"'},{open:"'",close:"'"}]},n.language={defaultToken:"",tokenPostfix:".go",keywords:["break","case","chan","const","continue","default","defer","else","fallthrough","for","func","go","goto","if","import","interface","map","package","range","return","select","struct","switch","type","var","bool","true","false","uint8","uint16","uint32","uint64","int8","int16","int32","int64","float32","float64","complex64","complex128","byte","rune","uint","int","uintptr","string","nil"],operators:["+","-","*","/","%","&","|","^","<<",">>","&^","+=","-=","*=","/=","%=","&=","|=","^=","<<=",">>=","&^=","&&","||","<-","++","--","==","<",">","=","!","!=","<=",">=",":=","...","(",")","","]","{","}",",",";",".",":"],symbols:/[=>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/\d*\d+[eE]([\-+]?\d+)?/,"number.float"],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/0[xX][0-9a-fA-F']*[0-9a-fA-F]/,"number.hex"],[/0[0-7']*[0-7]/,"number.octal"],[/0[bB][0-1']*[0-1]/,"number.binary"],[/\d[\d']*/,"number"],[/\d/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string"],[/`/,"string","@rawstring"],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@doccomment"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],doccomment:[[/[^\/*]+/,"comment.doc"],[/\/\*/,"comment.doc.invalid"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],rawstring:[[/[^\`]/,"string"],[/`/,"string","@pop"]]}}})); \ No newline at end of file diff --git a/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/graphql/graphql.js b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/graphql/graphql.js new file mode 100644 index 0000000..5d36db3 --- /dev/null +++ b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/graphql/graphql.js @@ -0,0 +1,7 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * monaco-languages version: 2.1.1(425b0e3c9ea2067410b8f90e0f30de383188c418) + * Released under the MIT license + * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/graphql/graphql",["require","exports"],(function(e,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.language=n.conf=void 0,n.conf={comments:{lineComment:"#"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"""',close:'"""',notIn:["string","comment"]},{open:'"',close:'"',notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"""',close:'"""'},{open:'"',close:'"'}],folding:{offSide:!0}},n.language={defaultToken:"invalid",tokenPostfix:".gql",keywords:["null","true","false","query","mutation","subscription","extend","schema","directive","scalar","type","interface","union","enum","input","implements","fragment","on"],typeKeywords:["Int","Float","String","Boolean","ID"],directiveLocations:["SCHEMA","SCALAR","OBJECT","FIELD_DEFINITION","ARGUMENT_DEFINITION","INTERFACE","UNION","ENUM","ENUM_VALUE","INPUT_OBJECT","INPUT_FIELD_DEFINITION","QUERY","MUTATION","SUBSCRIPTION","FIELD","FRAGMENT_DEFINITION","FRAGMENT_SPREAD","INLINE_FRAGMENT","VARIABLE_DEFINITION"],operators:["=","!","?",":","&","|"],symbols:/[=!?:&|]+/,escapes:/\\(?:["\\\/bfnrt]|u[0-9A-Fa-f]{4})/,tokenizer:{root:[[/[a-z_][\w$]*/,{cases:{"@keywords":"keyword","@default":"key.identifier"}}],[/[$][\w$]*/,{cases:{"@keywords":"keyword","@default":"argument.identifier"}}],[/[A-Z][\w\$]*/,{cases:{"@typeKeywords":"keyword","@default":"type.identifier"}}],{include:"@whitespace"},[/[{}()\[\]]/,"@brackets"],[/@symbols/,{cases:{"@operators":"operator","@default":""}}],[/@\s*[a-zA-Z_\$][\w\$]*/,{token:"annotation",log:"annotation token: $0"}],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/0[xX][0-9a-fA-F]+/,"number.hex"],[/\d+/,"number"],[/[;,.]/,"delimiter"],[/"""/,{token:"string",next:"@mlstring",nextEmbedded:"markdown"}],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,{token:"string.quote",bracket:"@open",next:"@string"}]],mlstring:[[/[^"]+/,"string"],['"""',{token:"string",next:"@pop",nextEmbedded:"@pop"}]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,{token:"string.quote",bracket:"@close",next:"@pop"}]],whitespace:[[/[ \t\r\n]+/,""],[/#.*$/,"comment"]]}}})); \ No newline at end of file diff --git a/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/handlebars/handlebars.js b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/handlebars/handlebars.js new file mode 100644 index 0000000..4c6b148 --- /dev/null +++ b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/handlebars/handlebars.js @@ -0,0 +1,7 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * monaco-languages version: 2.1.1(425b0e3c9ea2067410b8f90e0f30de383188c418) + * Released under the MIT license + * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/handlebars/handlebars",["require","exports","../fillers/monaco-editor-core"],(function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.language=t.conf=void 0;var a=["area","base","br","col","embed","hr","img","input","keygen","link","menuitem","meta","param","source","track","wbr"];t.conf={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\$\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g,comments:{blockComment:["{{!--","--}}"]},brackets:[["\x3c!--","--\x3e"],["<",">"],["{{","}}"],["{","}"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"<",close:">"},{open:'"',close:'"'},{open:"'",close:"'"}],onEnterRules:[{beforeText:new RegExp("<(?!(?:"+a.join("|")+"))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$","i"),afterText:/^<\/(\w[\w\d]*)\s*>$/i,action:{indentAction:n.languages.IndentAction.IndentOutdent}},{beforeText:new RegExp("<(?!(?:"+a.join("|")+"))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$","i"),action:{indentAction:n.languages.IndentAction.Indent}}]},t.language={defaultToken:"",tokenPostfix:"",tokenizer:{root:[[/\{\{!--/,"comment.block.start.handlebars","@commentBlock"],[/\{\{!/,"comment.start.handlebars","@comment"],[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.root"}],[/)/,["delimiter.html","tag.html","delimiter.html"]],[/(<)(script)/,["delimiter.html",{token:"tag.html",next:"@script"}]],[/(<)(style)/,["delimiter.html",{token:"tag.html",next:"@style"}]],[/(<)([:\w]+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[/(<\/)(\w+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[/]+/,"metatag.content.html"],[/>/,"metatag.html","@pop"]],comment:[[/\}\}/,"comment.end.handlebars","@pop"],[/./,"comment.content.handlebars"]],commentBlock:[[/--\}\}/,"comment.block.end.handlebars","@pop"],[/./,"comment.content.handlebars"]],commentHtml:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.comment"}],[/-->/,"comment.html","@pop"],[/[^-]+/,"comment.content.html"],[/./,"comment.content.html"]],otherTag:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.otherTag"}],[/\/?>/,"delimiter.html","@pop"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/]],script:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.script"}],[/type/,"attribute.name","@scriptAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/(<\/)(script\s*)(>)/,["delimiter.html","tag.html",{token:"delimiter.html",next:"@pop"}]]],scriptAfterType:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.scriptAfterType"}],[/=/,"delimiter","@scriptAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptAfterTypeEquals:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.scriptAfterTypeEquals"}],[/"([^"]*)"/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptWithCustomType:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.scriptWithCustomType.$S2"}],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptEmbedded:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInEmbeddedState.scriptEmbedded.$S2",nextEmbedded:"@pop"}],[/<\/script/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}]],style:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.style"}],[/type/,"attribute.name","@styleAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/(<\/)(style\s*)(>)/,["delimiter.html","tag.html",{token:"delimiter.html",next:"@pop"}]]],styleAfterType:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.styleAfterType"}],[/=/,"delimiter","@styleAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleAfterTypeEquals:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.styleAfterTypeEquals"}],[/"([^"]*)"/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleWithCustomType:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.styleWithCustomType.$S2"}],[/>/,{token:"delimiter.html",next:"@styleEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleEmbedded:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInEmbeddedState.styleEmbedded.$S2",nextEmbedded:"@pop"}],[/<\/style/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}]],handlebarsInSimpleState:[[/\{\{\{?/,"delimiter.handlebars"],[/\}\}\}?/,{token:"delimiter.handlebars",switchTo:"@$S2.$S3"}],{include:"handlebarsRoot"}],handlebarsInEmbeddedState:[[/\{\{\{?/,"delimiter.handlebars"],[/\}\}\}?/,{token:"delimiter.handlebars",switchTo:"@$S2.$S3",nextEmbedded:"$S3"}],{include:"handlebarsRoot"}],handlebarsRoot:[[/"[^"]*"/,"string.handlebars"],[/[#/][^\s}]+/,"keyword.helper.handlebars"],[/else\b/,"keyword.helper.handlebars"],[/[\s]+/],[/[^}]/,"variable.parameter.handlebars"]]}}})); \ No newline at end of file diff --git a/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/hcl/hcl.js b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/hcl/hcl.js new file mode 100644 index 0000000..73b42dc --- /dev/null +++ b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/hcl/hcl.js @@ -0,0 +1,7 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * monaco-languages version: 2.1.1(425b0e3c9ea2067410b8f90e0f30de383188c418) + * Released under the MIT license + * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/hcl/hcl",["require","exports"],(function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.language=t.conf=void 0,t.conf={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"',notIn:["string"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'}]},t.language={defaultToken:"",tokenPostfix:".hcl",keywords:["var","local","path","for_each","any","string","number","bool","true","false","null","if ","else ","endif ","for ","in","endfor"],operators:["=",">=","<=","==","!=","+","-","*","/","%","&&","||","!","<",">","?","...",":"],symbols:/[=>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"operator","@default":""}}],[/\d*\d+[eE]([\-+]?\d+)?/,"number.float"],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/\d[\d']*/,"number"],[/\d/,"number"],[/[;,.]/,"delimiter"],[/"/,"string","@string"],[/'/,"invalid"]],heredoc:[[/<<[-]*\s*["]?([\w\-]+)["]?/,{token:"string.heredoc.delimiter",next:"@heredocBody.$1"}]],heredocBody:[[/^([\w\-]+)$/,{cases:{"$1==$S2":[{token:"string.heredoc.delimiter",next:"@popall"}],"@default":"string.heredoc"}}],[/./,"string.heredoc"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"],[/#.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],string:[[/\$\{/,{token:"delimiter",next:"@stringExpression"}],[/[^\\"\$]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@popall"]],stringInsideExpression:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],stringExpression:[[/\}/,{token:"delimiter",next:"@pop"}],[/"/,"string","@stringInsideExpression"],{include:"@terraform"}]}}})); \ No newline at end of file diff --git a/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/html/html.js b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/html/html.js new file mode 100644 index 0000000..c33003d --- /dev/null +++ b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/html/html.js @@ -0,0 +1,7 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * monaco-languages version: 2.1.1(425b0e3c9ea2067410b8f90e0f30de383188c418) + * Released under the MIT license + * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/html/html",["require","exports","../fillers/monaco-editor-core"],(function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.language=t.conf=void 0;var i=["area","base","br","col","embed","hr","img","input","keygen","link","menuitem","meta","param","source","track","wbr"];t.conf={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\$\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g,comments:{blockComment:["\x3c!--","--\x3e"]},brackets:[["\x3c!--","--\x3e"],["<",">"],["{","}"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:'"',close:'"'},{open:"'",close:"'"},{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"}],onEnterRules:[{beforeText:new RegExp("<(?!(?:"+i.join("|")+"))([_:\\w][_:\\w-.\\d]*)([^/>]*(?!/)>)[^<]*$","i"),afterText:/^<\/([_:\w][_:\w-.\d]*)\s*>$/i,action:{indentAction:n.languages.IndentAction.IndentOutdent}},{beforeText:new RegExp("<(?!(?:"+i.join("|")+"))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$","i"),action:{indentAction:n.languages.IndentAction.Indent}}],folding:{markers:{start:new RegExp("^\\s*\x3c!--\\s*#region\\b.*--\x3e"),end:new RegExp("^\\s*\x3c!--\\s*#endregion\\b.*--\x3e")}}},t.language={defaultToken:"",tokenPostfix:".html",ignoreCase:!0,tokenizer:{root:[[/)/,["delimiter","tag","","delimiter"]],[/(<)(script)/,["delimiter",{token:"tag",next:"@script"}]],[/(<)(style)/,["delimiter",{token:"tag",next:"@style"}]],[/(<)((?:[\w\-]+:)?[\w\-]+)/,["delimiter",{token:"tag",next:"@otherTag"}]],[/(<\/)((?:[\w\-]+:)?[\w\-]+)/,["delimiter",{token:"tag",next:"@otherTag"}]],[/]+/,"metatag.content"],[/>/,"metatag","@pop"]],comment:[[/-->/,"comment","@pop"],[/[^-]+/,"comment.content"],[/./,"comment.content"]],otherTag:[[/\/?>/,"delimiter","@pop"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/]],script:[[/type/,"attribute.name","@scriptAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter",next:"@scriptEmbedded",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/(<\/)(script\s*)(>)/,["delimiter","tag",{token:"delimiter",next:"@pop"}]]],scriptAfterType:[[/=/,"delimiter","@scriptAfterTypeEquals"],[/>/,{token:"delimiter",next:"@scriptEmbedded",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptAfterTypeEquals:[[/"([^"]*)"/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/>/,{token:"delimiter",next:"@scriptEmbedded",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptWithCustomType:[[/>/,{token:"delimiter",next:"@scriptEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptEmbedded:[[/<\/script/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}],[/[^<]+/,""]],style:[[/type/,"attribute.name","@styleAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter",next:"@styleEmbedded",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/(<\/)(style\s*)(>)/,["delimiter","tag",{token:"delimiter",next:"@pop"}]]],styleAfterType:[[/=/,"delimiter","@styleAfterTypeEquals"],[/>/,{token:"delimiter",next:"@styleEmbedded",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleAfterTypeEquals:[[/"([^"]*)"/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/>/,{token:"delimiter",next:"@styleEmbedded",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleWithCustomType:[[/>/,{token:"delimiter",next:"@styleEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleEmbedded:[[/<\/style/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}],[/[^<]+/,""]]}}})); \ No newline at end of file diff --git a/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/ini/ini.js b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/ini/ini.js new file mode 100644 index 0000000..ff3c856 --- /dev/null +++ b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/ini/ini.js @@ -0,0 +1,7 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * monaco-languages version: 2.1.1(425b0e3c9ea2067410b8f90e0f30de383188c418) + * Released under the MIT license + * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/ini/ini",["require","exports"],(function(e,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.language=n.conf=void 0,n.conf={comments:{lineComment:"#"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}]},n.language={defaultToken:"",tokenPostfix:".ini",escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/^\[[^\]]*\]/,"metatag"],[/(^\w+)(\s*)(\=)/,["key","","delimiter"]],{include:"@whitespace"},[/\d+/,"number"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/"/,"string",'@string."'],[/'/,"string","@string.'"]],whitespace:[[/[ \t\r\n]+/,""],[/^\s*[#;].*$/,"comment"]],string:[[/[^\\"']+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/["']/,{cases:{"$#==$S2":{token:"string",next:"@pop"},"@default":"string"}}]]}}})); \ No newline at end of file diff --git a/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/java/java.js b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/java/java.js new file mode 100644 index 0000000..7d8e49d --- /dev/null +++ b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/java/java.js @@ -0,0 +1,7 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * monaco-languages version: 2.1.1(425b0e3c9ea2067410b8f90e0f30de383188c418) + * Released under the MIT license + * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/java/java",["require","exports"],(function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.language=t.conf=void 0,t.conf={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"<",close:">"}],folding:{markers:{start:new RegExp("^\\s*//\\s*(?:(?:#?region\\b)|(?:))")}}},t.language={defaultToken:"",tokenPostfix:".java",keywords:["abstract","continue","for","new","switch","assert","default","goto","package","synchronized","boolean","do","if","private","this","break","double","implements","protected","throw","byte","else","import","public","throws","case","enum","instanceof","return","transient","catch","extends","int","short","try","char","final","interface","static","void","class","finally","long","strictfp","volatile","const","float","native","super","while","true","false"],operators:["=",">","<","!","~","?",":","==","<=",">=","!=","&&","||","++","--","+","-","*","/","&","|","^","%","<<",">>",">>>","+=","-=","*=","/=","&=","|=","^=","%=","<<=",">>=",">>>="],symbols:/[=>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/@\s*[a-zA-Z_\$][\w\$]*/,"annotation"],[/(@digits)[eE]([\-+]?(@digits))?[fFdD]?/,"number.float"],[/(@digits)\.(@digits)([eE][\-+]?(@digits))?[fFdD]?/,"number.float"],[/0[xX](@hexdigits)[Ll]?/,"number.hex"],[/0(@octaldigits)[Ll]?/,"number.octal"],[/0[bB](@binarydigits)[Ll]?/,"number.binary"],[/(@digits)[fFdD]/,"number.float"],[/(@digits)[lL]?/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string"],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@javadoc"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],javadoc:[[/[^\/*]+/,"comment.doc"],[/\/\*/,"comment.doc.invalid"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]]}}})); \ No newline at end of file diff --git a/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/javascript/javascript.js b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/javascript/javascript.js new file mode 100644 index 0000000..a5b72d5 --- /dev/null +++ b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/javascript/javascript.js @@ -0,0 +1,7 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * monaco-languages version: 2.1.1(425b0e3c9ea2067410b8f90e0f30de383188c418) + * Released under the MIT license + * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/typescript/typescript",["require","exports","../fillers/monaco-editor-core"],(function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.language=t.conf=void 0,t.conf={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],onEnterRules:[{beforeText:/^\s*\/\*\*(?!\/)([^\*]|\*(?!\/))*$/,afterText:/^\s*\*\/$/,action:{indentAction:n.languages.IndentAction.IndentOutdent,appendText:" * "}},{beforeText:/^\s*\/\*\*(?!\/)([^\*]|\*(?!\/))*$/,action:{indentAction:n.languages.IndentAction.None,appendText:" * "}},{beforeText:/^(\t|(\ \ ))*\ \*(\ ([^\*]|\*(?!\/))*)?$/,action:{indentAction:n.languages.IndentAction.None,appendText:"* "}},{beforeText:/^(\t|(\ \ ))*\ \*\/\s*$/,action:{indentAction:n.languages.IndentAction.None,removeText:1}}],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string","comment"]},{open:"`",close:"`",notIn:["string","comment"]},{open:"/**",close:" */",notIn:["string"]}],folding:{markers:{start:new RegExp("^\\s*//\\s*#?region\\b"),end:new RegExp("^\\s*//\\s*#?endregion\\b")}}},t.language={defaultToken:"invalid",tokenPostfix:".ts",keywords:["abstract","any","as","asserts","bigint","boolean","break","case","catch","class","continue","const","constructor","debugger","declare","default","delete","do","else","enum","export","extends","false","finally","for","from","function","get","if","implements","import","in","infer","instanceof","interface","is","keyof","let","module","namespace","never","new","null","number","object","package","private","protected","public","readonly","require","global","return","set","static","string","super","switch","symbol","this","throw","true","try","type","typeof","undefined","unique","unknown","var","void","while","with","yield","async","await","of"],operators:["<=",">=","==","!=","===","!==","=>","+","-","**","*","/","%","++","--","<<",">",">>>","&","|","^","!","~","&&","||","??","?",":","=","+=","-=","*=","**=","/=","%=","<<=",">>=",">>>=","&=","|=","^=","@"],symbols:/[=>](?!@symbols)/,"@brackets"],[/!(?=([^=]|$))/,"delimiter"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/(@digits)[eE]([\-+]?(@digits))?/,"number.float"],[/(@digits)\.(@digits)([eE][\-+]?(@digits))?/,"number.float"],[/0[xX](@hexdigits)n?/,"number.hex"],[/0[oO]?(@octaldigits)n?/,"number.octal"],[/0[bB](@binarydigits)n?/,"number.binary"],[/(@digits)n?/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string_double"],[/'/,"string","@string_single"],[/`/,"string","@string_backtick"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@jsdoc"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],jsdoc:[[/[^\/*]+/,"comment.doc"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],regexp:[[/(\{)(\d+(?:,\d*)?)(\})/,["regexp.escape.control","regexp.escape.control","regexp.escape.control"]],[/(\[)(\^?)(?=(?:[^\]\\\/]|\\.)+)/,["regexp.escape.control",{token:"regexp.escape.control",next:"@regexrange"}]],[/(\()(\?:|\?=|\?!)/,["regexp.escape.control","regexp.escape.control"]],[/[()]/,"regexp.escape.control"],[/@regexpctl/,"regexp.escape.control"],[/[^\\\/]/,"regexp"],[/@regexpesc/,"regexp.escape"],[/\\\./,"regexp.invalid"],[/(\/)([gimsuy]*)/,[{token:"regexp",bracket:"@close",next:"@pop"},"keyword.other"]]],regexrange:[[/-/,"regexp.escape.control"],[/\^/,"regexp.invalid"],[/@regexpesc/,"regexp.escape"],[/[^\]]/,"regexp"],[/\]/,{token:"regexp.escape.control",next:"@pop",bracket:"@close"}]],string_double:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],string_single:[[/[^\\']+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/'/,"string","@pop"]],string_backtick:[[/\$\{/,{token:"delimiter.bracket",next:"@bracketCounting"}],[/[^\\`$]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/`/,"string","@pop"]],bracketCounting:[[/\{/,"delimiter.bracket","@bracketCounting"],[/\}/,"delimiter.bracket","@pop"],{include:"common"}]}}})),define("vs/basic-languages/javascript/javascript",["require","exports","../typescript/typescript"],(function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.language=t.conf=void 0,t.conf=n.conf,t.language={defaultToken:"invalid",tokenPostfix:".js",keywords:["break","case","catch","class","continue","const","constructor","debugger","default","delete","do","else","export","extends","false","finally","for","from","function","get","if","import","in","instanceof","let","new","null","return","set","super","switch","symbol","this","throw","true","try","typeof","undefined","var","void","while","with","yield","async","await","of"],typeKeywords:[],operators:n.language.operators,symbols:n.language.symbols,escapes:n.language.escapes,digits:n.language.digits,octaldigits:n.language.octaldigits,binarydigits:n.language.binarydigits,hexdigits:n.language.hexdigits,regexpctl:n.language.regexpctl,regexpesc:n.language.regexpesc,tokenizer:n.language.tokenizer}})); \ No newline at end of file diff --git a/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/julia/julia.js b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/julia/julia.js new file mode 100644 index 0000000..f94dfc0 --- /dev/null +++ b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/julia/julia.js @@ -0,0 +1,7 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * monaco-languages version: 2.1.1(425b0e3c9ea2067410b8f90e0f30de383188c418) + * Released under the MIT license + * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/julia/julia",["require","exports"],(function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.language=t.conf=void 0,t.conf={brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}]},t.language={tokenPostfix:".julia",keywords:["begin","while","if","for","try","return","break","continue","function","macro","quote","let","local","global","const","do","struct","module","baremodule","using","import","export","end","else","elseif","catch","finally","mutable","primitive","abstract","type","in","isa","where","new"],types:["LinRange","LineNumberNode","LinearIndices","LoadError","MIME","Matrix","Method","MethodError","Missing","MissingException","Module","NTuple","NamedTuple","Nothing","Number","OrdinalRange","OutOfMemoryError","OverflowError","Pair","PartialQuickSort","PermutedDimsArray","Pipe","Ptr","QuoteNode","Rational","RawFD","ReadOnlyMemoryError","Real","ReentrantLock","Ref","Regex","RegexMatch","RoundingMode","SegmentationFault","Set","Signed","Some","StackOverflowError","StepRange","StepRangeLen","StridedArray","StridedMatrix","StridedVecOrMat","StridedVector","String","StringIndexError","SubArray","SubString","SubstitutionString","Symbol","SystemError","Task","Text","TextDisplay","Timer","Tuple","Type","TypeError","TypeVar","UInt","UInt128","UInt16","UInt32","UInt64","UInt8","UndefInitializer","AbstractArray","UndefKeywordError","AbstractChannel","UndefRefError","AbstractChar","UndefVarError","AbstractDict","Union","AbstractDisplay","UnionAll","AbstractFloat","UnitRange","AbstractIrrational","Unsigned","AbstractMatrix","AbstractRange","Val","AbstractSet","Vararg","AbstractString","VecElement","AbstractUnitRange","VecOrMat","AbstractVecOrMat","Vector","AbstractVector","VersionNumber","Any","WeakKeyDict","ArgumentError","WeakRef","Array","AssertionError","BigFloat","BigInt","BitArray","BitMatrix","BitSet","BitVector","Bool","BoundsError","CapturedException","CartesianIndex","CartesianIndices","Cchar","Cdouble","Cfloat","Channel","Char","Cint","Cintmax_t","Clong","Clonglong","Cmd","Colon","Complex","ComplexF16","ComplexF32","ComplexF64","CompositeException","Condition","Cptrdiff_t","Cshort","Csize_t","Cssize_t","Cstring","Cuchar","Cuint","Cuintmax_t","Culong","Culonglong","Cushort","Cvoid","Cwchar_t","Cwstring","DataType","DenseArray","DenseMatrix","DenseVecOrMat","DenseVector","Dict","DimensionMismatch","Dims","DivideError","DomainError","EOFError","Enum","ErrorException","Exception","ExponentialBackOff","Expr","Float16","Float32","Float64","Function","GlobalRef","HTML","IO","IOBuffer","IOContext","IOStream","IdDict","IndexCartesian","IndexLinear","IndexStyle","InexactError","InitError","Int","Int128","Int16","Int32","Int64","Int8","Integer","InterruptException","InvalidStateException","Irrational","KeyError"],keywordops:["<:",">:",":","=>","...",".","->","?"],allops:/[^\w\d\s()\[\]{}"'#]+/,constants:["true","false","nothing","missing","undef","Inf","pi","NaN","π","ℯ","ans","PROGRAM_FILE","ARGS","C_NULL","VERSION","DEPOT_PATH","LOAD_PATH"],operators:["!","!=","!==","%","&","*","+","-","/","//","<","<<","<=","==","===","=>",">",">=",">>",">>>","\\","^","|","|>","~","÷","∈","∉","∋","∌","∘","√","∛","∩","∪","≈","≉","≠","≡","≢","≤","≥","⊆","⊇","⊈","⊉","⊊","⊋","⊻"],brackets:[{open:"(",close:")",token:"delimiter.parenthesis"},{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"}],ident:/π|ℯ|\b(?!\d)\w+\b/,escape:/(?:[abefnrstv\\"'\n\r]|[0-7]{1,3}|x[0-9A-Fa-f]{1,2}|u[0-9A-Fa-f]{4})/,escapes:/\\(?:C\-(@escape|.)|c(@escape|.)|@escape)/,tokenizer:{root:[[/(::)\s*|\b(isa)\s+/,"keyword","@typeanno"],[/\b(isa)(\s*\(@ident\s*,\s*)/,["keyword",{token:"",next:"@typeanno"}]],[/\b(type|struct)[ \t]+/,"keyword","@typeanno"],[/^\s*:@ident[!?]?/,"metatag"],[/(return)(\s*:@ident[!?]?)/,["keyword","metatag"]],[/(\(|\[|\{|@allops)(\s*:@ident[!?]?)/,["","metatag"]],[/:\(/,"metatag","@quote"],[/r"""/,"regexp.delim","@tregexp"],[/r"/,"regexp.delim","@sregexp"],[/raw"""/,"string.delim","@rtstring"],[/[bv]?"""/,"string.delim","@dtstring"],[/raw"/,"string.delim","@rsstring"],[/[bv]?"/,"string.delim","@dsstring"],[/(@ident)\{/,{cases:{"$1@types":{token:"type",next:"@gen"},"@default":{token:"type",next:"@gen"}}}],[/@ident[!?'']?(?=\.?\()/,{cases:{"@types":"type","@keywords":"keyword","@constants":"variable","@default":"keyword.flow"}}],[/@ident[!?']?/,{cases:{"@types":"type","@keywords":"keyword","@constants":"variable","@default":"identifier"}}],[/\$\w+/,"key"],[/\$\(/,"key","@paste"],[/@@ident/,"annotation"],{include:"@whitespace"},[/'(?:@escapes|.)'/,"string.character"],[/[()\[\]{}]/,"@brackets"],[/@allops/,{cases:{"@keywordops":"keyword","@operators":"operator"}}],[/[;,]/,"delimiter"],[/0[xX][0-9a-fA-F](_?[0-9a-fA-F])*/,"number.hex"],[/0[_oO][0-7](_?[0-7])*/,"number.octal"],[/0[bB][01](_?[01])*/,"number.binary"],[/[+\-]?\d+(\.\d+)?(im?|[eE][+\-]?\d+(\.\d+)?)?/,"number"]],typeanno:[[/[a-zA-Z_]\w*(?:\.[a-zA-Z_]\w*)*\{/,"type","@gen"],[/([a-zA-Z_]\w*(?:\.[a-zA-Z_]\w*)*)(\s*<:\s*)/,["type","keyword"]],[/[a-zA-Z_]\w*(?:\.[a-zA-Z_]\w*)*/,"type","@pop"],["","","@pop"]],gen:[[/[a-zA-Z_]\w*(?:\.[a-zA-Z_]\w*)*\{/,"type","@push"],[/[a-zA-Z_]\w*(?:\.[a-zA-Z_]\w*)*/,"type"],[/<:/,"keyword"],[/(\})(\s*<:\s*)/,["type",{token:"keyword",next:"@pop"}]],[/\}/,"type","@pop"],{include:"@root"}],quote:[[/\$\(/,"key","@paste"],[/\(/,"@brackets","@paren"],[/\)/,"metatag","@pop"],{include:"@root"}],paste:[[/:\(/,"metatag","@quote"],[/\(/,"@brackets","@paren"],[/\)/,"key","@pop"],{include:"@root"}],paren:[[/\$\(/,"key","@paste"],[/:\(/,"metatag","@quote"],[/\(/,"@brackets","@push"],[/\)/,"@brackets","@pop"],{include:"@root"}],sregexp:[[/^.*/,"invalid"],[/[^\\"()\[\]{}]/,"regexp"],[/[()\[\]{}]/,"@brackets"],[/\\./,"operator.scss"],[/"[imsx]*/,"regexp.delim","@pop"]],tregexp:[[/[^\\"()\[\]{}]/,"regexp"],[/[()\[\]{}]/,"@brackets"],[/\\./,"operator.scss"],[/"(?!"")/,"string"],[/"""[imsx]*/,"regexp.delim","@pop"]],rsstring:[[/^.*/,"invalid"],[/[^\\"]/,"string"],[/\\./,"string.escape"],[/"/,"string.delim","@pop"]],rtstring:[[/[^\\"]/,"string"],[/\\./,"string.escape"],[/"(?!"")/,"string"],[/"""/,"string.delim","@pop"]],dsstring:[[/^.*/,"invalid"],[/[^\\"\$]/,"string"],[/\$/,"","@interpolated"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string.delim","@pop"]],dtstring:[[/[^\\"\$]/,"string"],[/\$/,"","@interpolated"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"(?!"")/,"string"],[/"""/,"string.delim","@pop"]],interpolated:[[/\(/,{token:"",switchTo:"@interpolated_compound"}],[/[a-zA-Z_]\w*/,"identifier"],["","","@pop"]],interpolated_compound:[[/\)/,"","@pop"],{include:"@root"}],whitespace:[[/[ \t\r\n]+/,""],[/#=/,"comment","@multi_comment"],[/#.*$/,"comment"]],multi_comment:[[/#=/,"comment","@push"],[/=#/,"comment","@pop"],[/=(?!#)|#(?!=)/,"comment"],[/[^#=]+/,"comment"]]}}})); \ No newline at end of file diff --git a/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/kotlin/kotlin.js b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/kotlin/kotlin.js new file mode 100644 index 0000000..fd2312b --- /dev/null +++ b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/kotlin/kotlin.js @@ -0,0 +1,7 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * monaco-languages version: 2.1.1(425b0e3c9ea2067410b8f90e0f30de383188c418) + * Released under the MIT license + * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/kotlin/kotlin",["require","exports"],(function(e,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.language=i.conf=void 0,i.conf={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"<",close:">"}],folding:{markers:{start:new RegExp("^\\s*//\\s*(?:(?:#?region\\b)|(?:))")}}},i.language={defaultToken:"",tokenPostfix:".kt",keywords:["as","as?","break","class","continue","do","else","false","for","fun","if","in","!in","interface","is","!is","null","object","package","return","super","this","throw","true","try","typealias","val","var","when","while","by","catch","constructor","delegate","dynamic","field","file","finally","get","import","init","param","property","receiver","set","setparam","where","actual","abstract","annotation","companion","const","crossinline","data","enum","expect","external","final","infix","inline","inner","internal","lateinit","noinline","open","operator","out","override","private","protected","public","reified","sealed","suspend","tailrec","vararg","field","it"],operators:["+","-","*","/","%","=","+=","-=","*=","/=","%=","++","--","&&","||","!","==","!=","===","!==",">","<","<=",">=","[","]","!!","?.","?:","::","..",":","?","->","@",";","$","_"],symbols:/[=>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/@\s*[a-zA-Z_\$][\w\$]*/,"annotation"],[/(@digits)[eE]([\-+]?(@digits))?[fFdD]?/,"number.float"],[/(@digits)\.(@digits)([eE][\-+]?(@digits))?[fFdD]?/,"number.float"],[/0[xX](@hexdigits)[Ll]?/,"number.hex"],[/0(@octaldigits)[Ll]?/,"number.octal"],[/0[bB](@binarydigits)[Ll]?/,"number.binary"],[/(@digits)[fFdD]/,"number.float"],[/(@digits)[lL]?/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"""/,"string","@multistring"],[/"/,"string","@string"],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@javadoc"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\/\*/,"comment","@comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],javadoc:[[/[^\/*]+/,"comment.doc"],[/\/\*/,"comment.doc","@push"],[/\/\*/,"comment.doc.invalid"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],multistring:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"""/,"string","@pop"],[/./,"string"]]}}})); \ No newline at end of file diff --git a/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/less/less.js b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/less/less.js new file mode 100644 index 0000000..0453902 --- /dev/null +++ b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/less/less.js @@ -0,0 +1,7 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * monaco-languages version: 2.1.1(425b0e3c9ea2067410b8f90e0f30de383188c418) + * Released under the MIT license + * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/less/less",["require","exports"],(function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.language=t.conf=void 0,t.conf={wordPattern:/(#?-?\d*\.\d\w*%?)|([@#!.:]?[\w-?]+%?)|[@#!.]/g,comments:{blockComment:["/*","*/"],lineComment:"//"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}",notIn:["string","comment"]},{open:"[",close:"]",notIn:["string","comment"]},{open:"(",close:")",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string","comment"]},{open:"'",close:"'",notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{markers:{start:new RegExp("^\\s*\\/\\*\\s*#region\\b\\s*(.*?)\\s*\\*\\/"),end:new RegExp("^\\s*\\/\\*\\s*#endregion\\b.*\\*\\/")}}},t.language={defaultToken:"",tokenPostfix:".less",identifier:"-?-?([a-zA-Z]|(\\\\(([0-9a-fA-F]{1,6}\\s?)|[^[0-9a-fA-F])))([\\w\\-]|(\\\\(([0-9a-fA-F]{1,6}\\s?)|[^[0-9a-fA-F])))*",identifierPlus:"-?-?([a-zA-Z:.]|(\\\\(([0-9a-fA-F]{1,6}\\s?)|[^[0-9a-fA-F])))([\\w\\-:.]|(\\\\(([0-9a-fA-F]{1,6}\\s?)|[^[0-9a-fA-F])))*",brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.bracket"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],tokenizer:{root:[{include:"@nestedJSBegin"},["[ \\t\\r\\n]+",""],{include:"@comments"},{include:"@keyword"},{include:"@strings"},{include:"@numbers"},["[*_]?[a-zA-Z\\-\\s]+(?=:.*(;|(\\\\$)))","attribute.name","@attribute"],["url(\\-prefix)?\\(",{token:"tag",next:"@urldeclaration"}],["[{}()\\[\\]]","@brackets"],["[,:;]","delimiter"],["#@identifierPlus","tag.id"],["&","tag"],["\\.@identifierPlus(?=\\()","tag.class","@attribute"],["\\.@identifierPlus","tag.class"],["@identifierPlus","tag"],{include:"@operators"},["@(@identifier(?=[:,\\)]))","variable","@attribute"],["@(@identifier)","variable"],["@","key","@atRules"]],nestedJSBegin:[["``","delimiter.backtick"],["`",{token:"delimiter.backtick",next:"@nestedJSEnd",nextEmbedded:"text/javascript"}]],nestedJSEnd:[["`",{token:"delimiter.backtick",next:"@pop",nextEmbedded:"@pop"}]],operators:[["[<>=\\+\\-\\*\\/\\^\\|\\~]","operator"]],keyword:[["(@[\\s]*import|![\\s]*important|true|false|when|iscolor|isnumber|isstring|iskeyword|isurl|ispixel|ispercentage|isem|hue|saturation|lightness|alpha|lighten|darken|saturate|desaturate|fadein|fadeout|fade|spin|mix|round|ceil|floor|percentage)\\b","keyword"]],urldeclaration:[{include:"@strings"},["[^)\r\n]+","string"],["\\)",{token:"tag",next:"@pop"}]],attribute:[{include:"@nestedJSBegin"},{include:"@comments"},{include:"@strings"},{include:"@numbers"},{include:"@keyword"},["[a-zA-Z\\-]+(?=\\()","attribute.value","@attribute"],[">","operator","@pop"],["@identifier","attribute.value"],{include:"@operators"},["@(@identifier)","variable"],["[)\\}]","@brackets","@pop"],["[{}()\\[\\]>]","@brackets"],["[;]","delimiter","@pop"],["[,=:]","delimiter"],["\\s",""],[".","attribute.value"]],comments:[["\\/\\*","comment","@comment"],["\\/\\/+.*","comment"]],comment:[["\\*\\/","comment","@pop"],[".","comment"]],numbers:[["(\\d*\\.)?\\d+([eE][\\-+]?\\d+)?",{token:"attribute.value.number",next:"@units"}],["#[0-9a-fA-F_]+(?!\\w)","attribute.value.hex"]],units:[["(em|ex|ch|rem|vmin|vmax|vw|vh|vm|cm|mm|in|px|pt|pc|deg|grad|rad|turn|s|ms|Hz|kHz|%)?","attribute.value.unit","@pop"]],strings:[['~?"',{token:"string.delimiter",next:"@stringsEndDoubleQuote"}],["~?'",{token:"string.delimiter",next:"@stringsEndQuote"}]],stringsEndDoubleQuote:[['\\\\"',"string"],['"',{token:"string.delimiter",next:"@popall"}],[".","string"]],stringsEndQuote:[["\\\\'","string"],["'",{token:"string.delimiter",next:"@popall"}],[".","string"]],atRules:[{include:"@comments"},{include:"@strings"},["[()]","delimiter"],["[\\{;]","delimiter","@pop"],[".","key"]]}}})); \ No newline at end of file diff --git a/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/lexon/lexon.js b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/lexon/lexon.js new file mode 100644 index 0000000..d6c3550 --- /dev/null +++ b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/lexon/lexon.js @@ -0,0 +1,7 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * monaco-languages version: 2.1.1(425b0e3c9ea2067410b8f90e0f30de383188c418) + * Released under the MIT license + * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/lexon/lexon",["require","exports"],(function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.language=t.conf=void 0,t.conf={comments:{lineComment:"COMMENT"},brackets:[["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:":",close:"."}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"`",close:"`"},{open:'"',close:'"'},{open:"'",close:"'"},{open:":",close:"."}],folding:{markers:{start:new RegExp("^\\s*(::\\s*|COMMENT\\s+)#region"),end:new RegExp("^\\s*(::\\s*|COMMENT\\s+)#endregion")}}},t.language={tokenPostfix:".lexon",ignoreCase:!0,keywords:["lexon","lex","clause","terms","contracts","may","pay","pays","appoints","into","to"],typeKeywords:["amount","person","key","time","date","asset","text"],operators:["less","greater","equal","le","gt","or","and","add","added","subtract","subtracted","multiply","multiplied","times","divide","divided","is","be","certified"],symbols:/[=>](?!@symbols)/,"@brackets"],[/@symbols/,"delimiter"],[/\d*\.\d*\.\d*/,"number.semver"],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/0[xX][0-9a-fA-F]+/,"number.hex"],[/\d+/,"number"],[/[;,.]/,"delimiter"]],quoted_identifier:[[/[^\\"]+/,"identifier"],[/"/,{token:"identifier.quote",bracket:"@close",next:"@pop"}]],space_identifier_until_period:[[":","delimiter"],[" ",{token:"white",next:"@identifier_rest"}]],identifier_until_period:[{include:"@whitespace"},[":",{token:"delimiter",next:"@identifier_rest"}],[/[^\\.]+/,"identifier"],[/\./,{token:"delimiter",bracket:"@close",next:"@pop"}]],identifier_rest:[[/[^\\.]+/,"identifier"],[/\./,{token:"delimiter",bracket:"@close",next:"@pop"}]],semver:[{include:"@whitespace"},[":","delimiter"],[/\d*\.\d*\.\d*/,{token:"number.semver",bracket:"@close",next:"@pop"}]],whitespace:[[/[ \t\r\n]+/,"white"]]}}})); \ No newline at end of file diff --git a/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/lua/lua.js b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/lua/lua.js new file mode 100644 index 0000000..fccc448 --- /dev/null +++ b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/lua/lua.js @@ -0,0 +1,7 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * monaco-languages version: 2.1.1(425b0e3c9ea2067410b8f90e0f30de383188c418) + * Released under the MIT license + * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/lua/lua",["require","exports"],(function(e,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.language=n.conf=void 0,n.conf={comments:{lineComment:"--",blockComment:["--[[","]]"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}]},n.language={defaultToken:"",tokenPostfix:".lua",keywords:["and","break","do","else","elseif","end","false","for","function","goto","if","in","local","nil","not","or","repeat","return","then","true","until","while"],brackets:[{token:"delimiter.bracket",open:"{",close:"}"},{token:"delimiter.array",open:"[",close:"]"},{token:"delimiter.parenthesis",open:"(",close:")"}],operators:["+","-","*","/","%","^","#","==","~=","<=",">=","<",">","=",";",":",",",".","..","..."],symbols:/[=>",notIn:["string"]}],surroundingPairs:[{open:"(",close:")"},{open:"[",close:"]"},{open:"`",close:"`"}],folding:{markers:{start:new RegExp("^\\s*\x3c!--\\s*#?region\\b.*--\x3e"),end:new RegExp("^\\s*\x3c!--\\s*#?endregion\\b.*--\x3e")}}},t.language={defaultToken:"",tokenPostfix:".md",control:/[\\`*_\[\]{}()#+\-\.!]/,noncontrol:/[^\\`*_\[\]{}()#+\-\.!]/,escapes:/\\(?:@control)/,jsescapes:/\\(?:[btnfr\\"']|[0-7][0-7]?|[0-3][0-7]{2})/,empty:["area","base","basefont","br","col","frame","hr","img","input","isindex","link","meta","param"],tokenizer:{root:[[/^\s*\|/,"@rematch","@table_header"],[/^(\s{0,3})(#+)((?:[^\\#]|@escapes)+)((?:#+)?)/,["white","keyword","keyword","keyword"]],[/^\s*(=+|\-+)\s*$/,"keyword"],[/^\s*((\*[ ]?)+)\s*$/,"meta.separator"],[/^\s*>+/,"comment"],[/^\s*([\*\-+:]|\d+\.)\s/,"keyword"],[/^(\t|[ ]{4})[^ ].*$/,"string"],[/^\s*~~~\s*((?:\w|[\/\-#])+)?\s*$/,{token:"string",next:"@codeblock"}],[/^\s*```\s*((?:\w|[\/\-#])+).*$/,{token:"string",next:"@codeblockgh",nextEmbedded:"$1"}],[/^\s*```\s*$/,{token:"string",next:"@codeblock"}],{include:"@linecontent"}],table_header:[{include:"@table_common"},[/[^\|]+/,"keyword.table.header"]],table_body:[{include:"@table_common"},{include:"@linecontent"}],table_common:[[/\s*[\-:]+\s*/,{token:"keyword",switchTo:"table_body"}],[/^\s*\|/,"keyword.table.left"],[/^\s*[^\|]/,"@rematch","@pop"],[/^\s*$/,"@rematch","@pop"],[/\|/,{cases:{"@eos":"keyword.table.right","@default":"keyword.table.middle"}}]],codeblock:[[/^\s*~~~\s*$/,{token:"string",next:"@pop"}],[/^\s*```\s*$/,{token:"string",next:"@pop"}],[/.*$/,"variable.source"]],codeblockgh:[[/```\s*$/,{token:"variable.source",next:"@pop",nextEmbedded:"@pop"}],[/[^`]+/,"variable.source"]],linecontent:[[/&\w+;/,"string.escape"],[/@escapes/,"escape"],[/\b__([^\\_]|@escapes|_(?!_))+__\b/,"strong"],[/\*\*([^\\*]|@escapes|\*(?!\*))+\*\*/,"strong"],[/\b_[^_]+_\b/,"emphasis"],[/\*([^\\*]|@escapes)+\*/,"emphasis"],[/`([^\\`]|@escapes)+`/,"variable"],[/\{+[^}]+\}+/,"string.target"],[/(!?\[)((?:[^\]\\]|@escapes)*)(\]\([^\)]+\))/,["string.link","","string.link"]],[/(!?\[)((?:[^\]\\]|@escapes)*)(\])/,"string.link"],{include:"html"}],html:[[/<(\w+)\/>/,"tag"],[/<(\w+)/,{cases:{"@empty":{token:"tag",next:"@tag.$1"},"@default":{token:"tag",next:"@tag.$1"}}}],[/<\/(\w+)\s*>/,{token:"tag"}],[//,"comment","@pop"],[//,"comment.html","@pop"],[/[^-]+/,"comment.content.html"],[/./,"comment.content.html"]],otherTag:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.otherTag"}],[/\/?>/,"delimiter.html","@pop"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/]],script:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.script"}],[/type/,"attribute.name","@scriptAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/(<\/)(script\s*)(>)/,["delimiter.html","tag.html",{token:"delimiter.html",next:"@pop"}]]],scriptAfterType:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.scriptAfterType"}],[/=/,"delimiter","@scriptAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptAfterTypeEquals:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.scriptAfterTypeEquals"}],[/"([^"]*)"/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptWithCustomType:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.scriptWithCustomType.$S2"}],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptEmbedded:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInEmbeddedState.scriptEmbedded.$S2",nextEmbedded:"@pop"}],[/<\/script/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}]],style:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.style"}],[/type/,"attribute.name","@styleAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/(<\/)(style\s*)(>)/,["delimiter.html","tag.html",{token:"delimiter.html",next:"@pop"}]]],styleAfterType:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.styleAfterType"}],[/=/,"delimiter","@styleAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleAfterTypeEquals:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.styleAfterTypeEquals"}],[/"([^"]*)"/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleWithCustomType:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.styleWithCustomType.$S2"}],[/>/,{token:"delimiter.html",next:"@styleEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleEmbedded:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInEmbeddedState.styleEmbedded.$S2",nextEmbedded:"@pop"}],[/<\/style/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}]],phpInSimpleState:[[/<\?((php)|=)?/,"metatag.php"],[/\?>/,{token:"metatag.php",switchTo:"@$S2.$S3"}],{include:"phpRoot"}],phpInEmbeddedState:[[/<\?((php)|=)?/,"metatag.php"],[/\?>/,{token:"metatag.php",switchTo:"@$S2.$S3",nextEmbedded:"$S3"}],{include:"phpRoot"}],phpRoot:[[/[a-zA-Z_]\w*/,{cases:{"@phpKeywords":{token:"keyword.php"},"@phpCompileTimeConstants":{token:"constant.php"},"@default":"identifier.php"}}],[/[$a-zA-Z_]\w*/,{cases:{"@phpPreDefinedVariables":{token:"variable.predefined.php"},"@default":"variable.php"}}],[/[{}]/,"delimiter.bracket.php"],[/[\[\]]/,"delimiter.array.php"],[/[()]/,"delimiter.parenthesis.php"],[/[ \t\r\n]+/],[/(#|\/\/)$/,"comment.php"],[/(#|\/\/)/,"comment.php","@phpLineComment"],[/\/\*/,"comment.php","@phpComment"],[/"/,"string.php","@phpDoubleQuoteString"],[/'/,"string.php","@phpSingleQuoteString"],[/[\+\-\*\%\&\|\^\~\!\=\<\>\/\?\;\:\.\,\@]/,"delimiter.php"],[/\d*\d+[eE]([\-+]?\d+)?/,"number.float.php"],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float.php"],[/0[xX][0-9a-fA-F']*[0-9a-fA-F]/,"number.hex.php"],[/0[0-7']*[0-7]/,"number.octal.php"],[/0[bB][0-1']*[0-1]/,"number.binary.php"],[/\d[\d']*/,"number.php"],[/\d/,"number.php"]],phpComment:[[/\*\//,"comment.php","@pop"],[/[^*]+/,"comment.php"],[/./,"comment.php"]],phpLineComment:[[/\?>/,{token:"@rematch",next:"@pop"}],[/.$/,"comment.php","@pop"],[/[^?]+$/,"comment.php","@pop"],[/[^?]+/,"comment.php"],[/./,"comment.php"]],phpDoubleQuoteString:[[/[^\\"]+/,"string.php"],[/@escapes/,"string.escape.php"],[/\\./,"string.escape.invalid.php"],[/"/,"string.php","@pop"]],phpSingleQuoteString:[[/[^\\']+/,"string.php"],[/@escapes/,"string.escape.php"],[/\\./,"string.escape.invalid.php"],[/'/,"string.php","@pop"]]},phpKeywords:["abstract","and","array","as","break","callable","case","catch","cfunction","class","clone","const","continue","declare","default","do","else","elseif","enddeclare","endfor","endforeach","endif","endswitch","endwhile","extends","false","final","for","foreach","function","global","goto","if","implements","interface","instanceof","insteadof","namespace","new","null","object","old_function","or","private","protected","public","resource","static","switch","throw","trait","try","true","use","var","while","xor","die","echo","empty","exit","eval","include","include_once","isset","list","require","require_once","return","print","unset","yield","__construct"],phpCompileTimeConstants:["__CLASS__","__DIR__","__FILE__","__LINE__","__NAMESPACE__","__METHOD__","__FUNCTION__","__TRAIT__"],phpPreDefinedVariables:["$GLOBALS","$_SERVER","$_GET","$_POST","$_FILES","$_REQUEST","$_SESSION","$_ENV","$_COOKIE","$php_errormsg","$HTTP_RAW_POST_DATA","$http_response_header","$argc","$argv"],escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/}})); \ No newline at end of file diff --git a/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/postiats/postiats.js b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/postiats/postiats.js new file mode 100644 index 0000000..b8fe268 --- /dev/null +++ b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/postiats/postiats.js @@ -0,0 +1,7 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * monaco-languages version: 2.1.1(425b0e3c9ea2067410b8f90e0f30de383188c418) + * Released under the MIT license + * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/postiats/postiats",["require","exports"],(function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.language=t.conf=void 0,t.conf={comments:{lineComment:"//",blockComment:["(*","*)"]},brackets:[["{","}"],["[","]"],["(",")"],["<",">"]],autoClosingPairs:[{open:'"',close:'"',notIn:["string","comment"]},{open:"{",close:"}",notIn:["string","comment"]},{open:"[",close:"]",notIn:["string","comment"]},{open:"(",close:")",notIn:["string","comment"]}]},t.language={tokenPostfix:".pats",defaultToken:"invalid",keywords:["abstype","abst0ype","absprop","absview","absvtype","absviewtype","absvt0ype","absviewt0ype","as","and","assume","begin","classdec","datasort","datatype","dataprop","dataview","datavtype","dataviewtype","do","end","extern","extype","extvar","exception","fn","fnx","fun","prfn","prfun","praxi","castfn","if","then","else","ifcase","in","infix","infixl","infixr","prefix","postfix","implmnt","implement","primplmnt","primplement","import","let","local","macdef","macrodef","nonfix","symelim","symintr","overload","of","op","rec","sif","scase","sortdef","sta","stacst","stadef","static","staload","dynload","try","tkindef","typedef","propdef","viewdef","vtypedef","viewtypedef","prval","var","prvar","when","where","with","withtype","withprop","withview","withvtype","withviewtype"],keywords_dlr:["$delay","$ldelay","$arrpsz","$arrptrsize","$d2ctype","$effmask","$effmask_ntm","$effmask_exn","$effmask_ref","$effmask_wrt","$effmask_all","$extern","$extkind","$extype","$extype_struct","$extval","$extfcall","$extmcall","$literal","$myfilename","$mylocation","$myfunction","$lst","$lst_t","$lst_vt","$list","$list_t","$list_vt","$rec","$rec_t","$rec_vt","$record","$record_t","$record_vt","$tup","$tup_t","$tup_vt","$tuple","$tuple_t","$tuple_vt","$break","$continue","$raise","$showtype","$vcopyenv_v","$vcopyenv_vt","$tempenver","$solver_assert","$solver_verify"],keywords_srp:["#if","#ifdef","#ifndef","#then","#elif","#elifdef","#elifndef","#else","#endif","#error","#prerr","#print","#assert","#undef","#define","#include","#require","#pragma","#codegen2","#codegen3"],irregular_keyword_list:["val+","val-","val","case+","case-","case","addr@","addr","fold@","free@","fix@","fix","lam@","lam","llam@","llam","viewt@ype+","viewt@ype-","viewt@ype","viewtype+","viewtype-","viewtype","view+","view-","view@","view","type+","type-","type","vtype+","vtype-","vtype","vt@ype+","vt@ype-","vt@ype","viewt@ype+","viewt@ype-","viewt@ype","viewtype+","viewtype-","viewtype","prop+","prop-","prop","type+","type-","type","t@ype","t@ype+","t@ype-","abst@ype","abstype","absviewt@ype","absvt@ype","for*","for","while*","while"],keywords_types:["bool","double","byte","int","short","char","void","unit","long","float","string","strptr"],keywords_effects:["0","fun","clo","prf","funclo","cloptr","cloref","ref","ntm","1"],operators:["@","!","|","`",":","$",".","=","#","~","..","...","=>","=<>","=/=>","=>>","=/=>>","<",">","><",".<",">.",".<>.","->","-<>"],brackets:[{open:",(",close:")",token:"delimiter.parenthesis"},{open:"`(",close:")",token:"delimiter.parenthesis"},{open:"%(",close:")",token:"delimiter.parenthesis"},{open:"'(",close:")",token:"delimiter.parenthesis"},{open:"'{",close:"}",token:"delimiter.parenthesis"},{open:"@(",close:")",token:"delimiter.parenthesis"},{open:"@{",close:"}",token:"delimiter.brace"},{open:"@[",close:"]",token:"delimiter.square"},{open:"#[",close:"]",token:"delimiter.square"},{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],symbols:/[=>]/,digit:/[0-9]/,digitseq0:/@digit*/,xdigit:/[0-9A-Za-z]/,xdigitseq0:/@xdigit*/,INTSP:/[lLuU]/,FLOATSP:/[fFlL]/,fexponent:/[eE][+-]?[0-9]+/,fexponent_bin:/[pP][+-]?[0-9]+/,deciexp:/\.[0-9]*@fexponent?/,hexiexp:/\.[0-9a-zA-Z]*@fexponent_bin?/,irregular_keywords:/val[+-]?|case[+-]?|addr\@?|fold\@|free\@|fix\@?|lam\@?|llam\@?|prop[+-]?|type[+-]?|view[+-@]?|viewt@?ype[+-]?|t@?ype[+-]?|v(iew)?t@?ype[+-]?|abst@?ype|absv(iew)?t@?ype|for\*?|while\*?/,ESCHAR:/[ntvbrfa\\\?'"\(\[\{]/,start:"root",tokenizer:{root:[{regex:/[ \t\r\n]+/,action:{token:""}},{regex:/\(\*\)/,action:{token:"invalid"}},{regex:/\(\*/,action:{token:"comment",next:"lexing_COMMENT_block_ml"}},{regex:/\(/,action:"@brackets"},{regex:/\)/,action:"@brackets"},{regex:/\[/,action:"@brackets"},{regex:/\]/,action:"@brackets"},{regex:/\{/,action:"@brackets"},{regex:/\}/,action:"@brackets"},{regex:/,\(/,action:"@brackets"},{regex:/,/,action:{token:"delimiter.comma"}},{regex:/;/,action:{token:"delimiter.semicolon"}},{regex:/@\(/,action:"@brackets"},{regex:/@\[/,action:"@brackets"},{regex:/@\{/,action:"@brackets"},{regex:/:/,action:{token:"@rematch",next:"@pop"}}],lexing_EXTCODE:[{regex:/^%}/,action:{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}},{regex:/[^%]+/,action:""}],lexing_DQUOTE:[{regex:/"/,action:{token:"string.quote",next:"@pop"}},{regex:/(\{\$)(@IDENTFST@IDENTRST*)(\})/,action:[{token:"string.escape"},{token:"identifier"},{token:"string.escape"}]},{regex:/\\$/,action:{token:"string.escape"}},{regex:/\\(@ESCHAR|[xX]@xdigit+|@digit+)/,action:{token:"string.escape"}},{regex:/[^\\"]+/,action:{token:"string"}}]}}})); \ No newline at end of file diff --git a/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/powerquery/powerquery.js b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/powerquery/powerquery.js new file mode 100644 index 0000000..faa8996 --- /dev/null +++ b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/powerquery/powerquery.js @@ -0,0 +1,7 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * monaco-languages version: 2.1.1(425b0e3c9ea2067410b8f90e0f30de383188c418) + * Released under the MIT license + * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/powerquery/powerquery",["require","exports"],(function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.language=t.conf=void 0,t.conf={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["[","]"],["(",")"],["{","}"]],autoClosingPairs:[{open:'"',close:'"',notIn:["string","comment","identifier"]},{open:"[",close:"]",notIn:["string","comment","identifier"]},{open:"(",close:")",notIn:["string","comment","identifier"]},{open:"{",close:"}",notIn:["string","comment","identifier"]}]},t.language={defaultToken:"",tokenPostfix:".pq",ignoreCase:!1,brackets:[{open:"[",close:"]",token:"delimiter.square"},{open:"{",close:"}",token:"delimiter.brackets"},{open:"(",close:")",token:"delimiter.parenthesis"}],operatorKeywords:["and","not","or"],keywords:["as","each","else","error","false","if","in","is","let","meta","otherwise","section","shared","then","true","try","type"],constructors:["#binary","#date","#datetime","#datetimezone","#duration","#table","#time"],constants:["#infinity","#nan","#sections","#shared"],typeKeywords:["action","any","anynonnull","none","null","logical","number","time","date","datetime","datetimezone","duration","text","binary","list","record","table","function"],builtinFunctions:["Access.Database","Action.Return","Action.Sequence","Action.Try","ActiveDirectory.Domains","AdoDotNet.DataSource","AdoDotNet.Query","AdobeAnalytics.Cubes","AnalysisServices.Database","AnalysisServices.Databases","AzureStorage.BlobContents","AzureStorage.Blobs","AzureStorage.Tables","Binary.Buffer","Binary.Combine","Binary.Compress","Binary.Decompress","Binary.End","Binary.From","Binary.FromList","Binary.FromText","Binary.InferContentType","Binary.Length","Binary.ToList","Binary.ToText","BinaryFormat.7BitEncodedSignedInteger","BinaryFormat.7BitEncodedUnsignedInteger","BinaryFormat.Binary","BinaryFormat.Byte","BinaryFormat.ByteOrder","BinaryFormat.Choice","BinaryFormat.Decimal","BinaryFormat.Double","BinaryFormat.Group","BinaryFormat.Length","BinaryFormat.List","BinaryFormat.Null","BinaryFormat.Record","BinaryFormat.SignedInteger16","BinaryFormat.SignedInteger32","BinaryFormat.SignedInteger64","BinaryFormat.Single","BinaryFormat.Text","BinaryFormat.Transform","BinaryFormat.UnsignedInteger16","BinaryFormat.UnsignedInteger32","BinaryFormat.UnsignedInteger64","Byte.From","Character.FromNumber","Character.ToNumber","Combiner.CombineTextByDelimiter","Combiner.CombineTextByEachDelimiter","Combiner.CombineTextByLengths","Combiner.CombineTextByPositions","Combiner.CombineTextByRanges","Comparer.Equals","Comparer.FromCulture","Comparer.Ordinal","Comparer.OrdinalIgnoreCase","Csv.Document","Cube.AddAndExpandDimensionColumn","Cube.AddMeasureColumn","Cube.ApplyParameter","Cube.AttributeMemberId","Cube.AttributeMemberProperty","Cube.CollapseAndRemoveColumns","Cube.Dimensions","Cube.DisplayFolders","Cube.Measures","Cube.Parameters","Cube.Properties","Cube.PropertyKey","Cube.ReplaceDimensions","Cube.Transform","Currency.From","DB2.Database","Date.AddDays","Date.AddMonths","Date.AddQuarters","Date.AddWeeks","Date.AddYears","Date.Day","Date.DayOfWeek","Date.DayOfWeekName","Date.DayOfYear","Date.DaysInMonth","Date.EndOfDay","Date.EndOfMonth","Date.EndOfQuarter","Date.EndOfWeek","Date.EndOfYear","Date.From","Date.FromText","Date.IsInCurrentDay","Date.IsInCurrentMonth","Date.IsInCurrentQuarter","Date.IsInCurrentWeek","Date.IsInCurrentYear","Date.IsInNextDay","Date.IsInNextMonth","Date.IsInNextNDays","Date.IsInNextNMonths","Date.IsInNextNQuarters","Date.IsInNextNWeeks","Date.IsInNextNYears","Date.IsInNextQuarter","Date.IsInNextWeek","Date.IsInNextYear","Date.IsInPreviousDay","Date.IsInPreviousMonth","Date.IsInPreviousNDays","Date.IsInPreviousNMonths","Date.IsInPreviousNQuarters","Date.IsInPreviousNWeeks","Date.IsInPreviousNYears","Date.IsInPreviousQuarter","Date.IsInPreviousWeek","Date.IsInPreviousYear","Date.IsInYearToDate","Date.IsLeapYear","Date.Month","Date.MonthName","Date.QuarterOfYear","Date.StartOfDay","Date.StartOfMonth","Date.StartOfQuarter","Date.StartOfWeek","Date.StartOfYear","Date.ToRecord","Date.ToText","Date.WeekOfMonth","Date.WeekOfYear","Date.Year","DateTime.AddZone","DateTime.Date","DateTime.FixedLocalNow","DateTime.From","DateTime.FromFileTime","DateTime.FromText","DateTime.IsInCurrentHour","DateTime.IsInCurrentMinute","DateTime.IsInCurrentSecond","DateTime.IsInNextHour","DateTime.IsInNextMinute","DateTime.IsInNextNHours","DateTime.IsInNextNMinutes","DateTime.IsInNextNSeconds","DateTime.IsInNextSecond","DateTime.IsInPreviousHour","DateTime.IsInPreviousMinute","DateTime.IsInPreviousNHours","DateTime.IsInPreviousNMinutes","DateTime.IsInPreviousNSeconds","DateTime.IsInPreviousSecond","DateTime.LocalNow","DateTime.Time","DateTime.ToRecord","DateTime.ToText","DateTimeZone.FixedLocalNow","DateTimeZone.FixedUtcNow","DateTimeZone.From","DateTimeZone.FromFileTime","DateTimeZone.FromText","DateTimeZone.LocalNow","DateTimeZone.RemoveZone","DateTimeZone.SwitchZone","DateTimeZone.ToLocal","DateTimeZone.ToRecord","DateTimeZone.ToText","DateTimeZone.ToUtc","DateTimeZone.UtcNow","DateTimeZone.ZoneHours","DateTimeZone.ZoneMinutes","Decimal.From","Diagnostics.ActivityId","Diagnostics.Trace","DirectQueryCapabilities.From","Double.From","Duration.Days","Duration.From","Duration.FromText","Duration.Hours","Duration.Minutes","Duration.Seconds","Duration.ToRecord","Duration.ToText","Duration.TotalDays","Duration.TotalHours","Duration.TotalMinutes","Duration.TotalSeconds","Embedded.Value","Error.Record","Excel.CurrentWorkbook","Excel.Workbook","Exchange.Contents","Expression.Constant","Expression.Evaluate","Expression.Identifier","Facebook.Graph","File.Contents","Folder.Contents","Folder.Files","Function.From","Function.Invoke","Function.InvokeAfter","Function.IsDataSource","GoogleAnalytics.Accounts","Guid.From","HdInsight.Containers","HdInsight.Contents","HdInsight.Files","Hdfs.Contents","Hdfs.Files","Informix.Database","Int16.From","Int32.From","Int64.From","Int8.From","ItemExpression.From","Json.Document","Json.FromValue","Lines.FromBinary","Lines.FromText","Lines.ToBinary","Lines.ToText","List.Accumulate","List.AllTrue","List.Alternate","List.AnyTrue","List.Average","List.Buffer","List.Combine","List.Contains","List.ContainsAll","List.ContainsAny","List.Count","List.Covariance","List.DateTimeZones","List.DateTimes","List.Dates","List.Difference","List.Distinct","List.Durations","List.FindText","List.First","List.FirstN","List.Generate","List.InsertRange","List.Intersect","List.IsDistinct","List.IsEmpty","List.Last","List.LastN","List.MatchesAll","List.MatchesAny","List.Max","List.MaxN","List.Median","List.Min","List.MinN","List.Mode","List.Modes","List.NonNullCount","List.Numbers","List.PositionOf","List.PositionOfAny","List.Positions","List.Product","List.Random","List.Range","List.RemoveFirstN","List.RemoveItems","List.RemoveLastN","List.RemoveMatchingItems","List.RemoveNulls","List.RemoveRange","List.Repeat","List.ReplaceMatchingItems","List.ReplaceRange","List.ReplaceValue","List.Reverse","List.Select","List.Single","List.SingleOrDefault","List.Skip","List.Sort","List.StandardDeviation","List.Sum","List.Times","List.Transform","List.TransformMany","List.Union","List.Zip","Logical.From","Logical.FromText","Logical.ToText","MQ.Queue","MySQL.Database","Number.Abs","Number.Acos","Number.Asin","Number.Atan","Number.Atan2","Number.BitwiseAnd","Number.BitwiseNot","Number.BitwiseOr","Number.BitwiseShiftLeft","Number.BitwiseShiftRight","Number.BitwiseXor","Number.Combinations","Number.Cos","Number.Cosh","Number.Exp","Number.Factorial","Number.From","Number.FromText","Number.IntegerDivide","Number.IsEven","Number.IsNaN","Number.IsOdd","Number.Ln","Number.Log","Number.Log10","Number.Mod","Number.Permutations","Number.Power","Number.Random","Number.RandomBetween","Number.Round","Number.RoundAwayFromZero","Number.RoundDown","Number.RoundTowardZero","Number.RoundUp","Number.Sign","Number.Sin","Number.Sinh","Number.Sqrt","Number.Tan","Number.Tanh","Number.ToText","OData.Feed","Odbc.DataSource","Odbc.Query","OleDb.DataSource","OleDb.Query","Oracle.Database","Percentage.From","PostgreSQL.Database","RData.FromBinary","Record.AddField","Record.Combine","Record.Field","Record.FieldCount","Record.FieldNames","Record.FieldOrDefault","Record.FieldValues","Record.FromList","Record.FromTable","Record.HasFields","Record.RemoveFields","Record.RenameFields","Record.ReorderFields","Record.SelectFields","Record.ToList","Record.ToTable","Record.TransformFields","Replacer.ReplaceText","Replacer.ReplaceValue","RowExpression.Column","RowExpression.From","Salesforce.Data","Salesforce.Reports","SapBusinessWarehouse.Cubes","SapHana.Database","SharePoint.Contents","SharePoint.Files","SharePoint.Tables","Single.From","Soda.Feed","Splitter.SplitByNothing","Splitter.SplitTextByAnyDelimiter","Splitter.SplitTextByDelimiter","Splitter.SplitTextByEachDelimiter","Splitter.SplitTextByLengths","Splitter.SplitTextByPositions","Splitter.SplitTextByRanges","Splitter.SplitTextByRepeatedLengths","Splitter.SplitTextByWhitespace","Sql.Database","Sql.Databases","SqlExpression.SchemaFrom","SqlExpression.ToExpression","Sybase.Database","Table.AddColumn","Table.AddIndexColumn","Table.AddJoinColumn","Table.AddKey","Table.AggregateTableColumn","Table.AlternateRows","Table.Buffer","Table.Column","Table.ColumnCount","Table.ColumnNames","Table.ColumnsOfType","Table.Combine","Table.CombineColumns","Table.Contains","Table.ContainsAll","Table.ContainsAny","Table.DemoteHeaders","Table.Distinct","Table.DuplicateColumn","Table.ExpandListColumn","Table.ExpandRecordColumn","Table.ExpandTableColumn","Table.FillDown","Table.FillUp","Table.FilterWithDataTable","Table.FindText","Table.First","Table.FirstN","Table.FirstValue","Table.FromColumns","Table.FromList","Table.FromPartitions","Table.FromRecords","Table.FromRows","Table.FromValue","Table.Group","Table.HasColumns","Table.InsertRows","Table.IsDistinct","Table.IsEmpty","Table.Join","Table.Keys","Table.Last","Table.LastN","Table.MatchesAllRows","Table.MatchesAnyRows","Table.Max","Table.MaxN","Table.Min","Table.MinN","Table.NestedJoin","Table.Partition","Table.PartitionValues","Table.Pivot","Table.PositionOf","Table.PositionOfAny","Table.PrefixColumns","Table.Profile","Table.PromoteHeaders","Table.Range","Table.RemoveColumns","Table.RemoveFirstN","Table.RemoveLastN","Table.RemoveMatchingRows","Table.RemoveRows","Table.RemoveRowsWithErrors","Table.RenameColumns","Table.ReorderColumns","Table.Repeat","Table.ReplaceErrorValues","Table.ReplaceKeys","Table.ReplaceMatchingRows","Table.ReplaceRelationshipIdentity","Table.ReplaceRows","Table.ReplaceValue","Table.ReverseRows","Table.RowCount","Table.Schema","Table.SelectColumns","Table.SelectRows","Table.SelectRowsWithErrors","Table.SingleRow","Table.Skip","Table.Sort","Table.SplitColumn","Table.ToColumns","Table.ToList","Table.ToRecords","Table.ToRows","Table.TransformColumnNames","Table.TransformColumnTypes","Table.TransformColumns","Table.TransformRows","Table.Transpose","Table.Unpivot","Table.UnpivotOtherColumns","Table.View","Table.ViewFunction","TableAction.DeleteRows","TableAction.InsertRows","TableAction.UpdateRows","Tables.GetRelationships","Teradata.Database","Text.AfterDelimiter","Text.At","Text.BeforeDelimiter","Text.BetweenDelimiters","Text.Clean","Text.Combine","Text.Contains","Text.End","Text.EndsWith","Text.Format","Text.From","Text.FromBinary","Text.Insert","Text.Length","Text.Lower","Text.Middle","Text.NewGuid","Text.PadEnd","Text.PadStart","Text.PositionOf","Text.PositionOfAny","Text.Proper","Text.Range","Text.Remove","Text.RemoveRange","Text.Repeat","Text.Replace","Text.ReplaceRange","Text.Select","Text.Split","Text.SplitAny","Text.Start","Text.StartsWith","Text.ToBinary","Text.ToList","Text.Trim","Text.TrimEnd","Text.TrimStart","Text.Upper","Time.EndOfHour","Time.From","Time.FromText","Time.Hour","Time.Minute","Time.Second","Time.StartOfHour","Time.ToRecord","Time.ToText","Type.AddTableKey","Type.ClosedRecord","Type.Facets","Type.ForFunction","Type.ForRecord","Type.FunctionParameters","Type.FunctionRequiredParameters","Type.FunctionReturn","Type.Is","Type.IsNullable","Type.IsOpenRecord","Type.ListItem","Type.NonNullable","Type.OpenRecord","Type.RecordFields","Type.ReplaceFacets","Type.ReplaceTableKeys","Type.TableColumn","Type.TableKeys","Type.TableRow","Type.TableSchema","Type.Union","Uri.BuildQueryString","Uri.Combine","Uri.EscapeDataString","Uri.Parts","Value.Add","Value.As","Value.Compare","Value.Divide","Value.Equals","Value.Firewall","Value.FromText","Value.Is","Value.Metadata","Value.Multiply","Value.NativeQuery","Value.NullableEquals","Value.RemoveMetadata","Value.ReplaceMetadata","Value.ReplaceType","Value.Subtract","Value.Type","ValueAction.NativeStatement","ValueAction.Replace","Variable.Value","Web.Contents","Web.Page","WebAction.Request","Xml.Document","Xml.Tables"],builtinConstants:["BinaryEncoding.Base64","BinaryEncoding.Hex","BinaryOccurrence.Optional","BinaryOccurrence.Repeating","BinaryOccurrence.Required","ByteOrder.BigEndian","ByteOrder.LittleEndian","Compression.Deflate","Compression.GZip","CsvStyle.QuoteAfterDelimiter","CsvStyle.QuoteAlways","Culture.Current","Day.Friday","Day.Monday","Day.Saturday","Day.Sunday","Day.Thursday","Day.Tuesday","Day.Wednesday","ExtraValues.Error","ExtraValues.Ignore","ExtraValues.List","GroupKind.Global","GroupKind.Local","JoinAlgorithm.Dynamic","JoinAlgorithm.LeftHash","JoinAlgorithm.LeftIndex","JoinAlgorithm.PairwiseHash","JoinAlgorithm.RightHash","JoinAlgorithm.RightIndex","JoinAlgorithm.SortMerge","JoinKind.FullOuter","JoinKind.Inner","JoinKind.LeftAnti","JoinKind.LeftOuter","JoinKind.RightAnti","JoinKind.RightOuter","JoinSide.Left","JoinSide.Right","MissingField.Error","MissingField.Ignore","MissingField.UseNull","Number.E","Number.Epsilon","Number.NaN","Number.NegativeInfinity","Number.PI","Number.PositiveInfinity","Occurrence.All","Occurrence.First","Occurrence.Last","Occurrence.Optional","Occurrence.Repeating","Occurrence.Required","Order.Ascending","Order.Descending","Precision.Decimal","Precision.Double","QuoteStyle.Csv","QuoteStyle.None","RelativePosition.FromEnd","RelativePosition.FromStart","RoundingMode.AwayFromZero","RoundingMode.Down","RoundingMode.ToEven","RoundingMode.TowardZero","RoundingMode.Up","SapHanaDistribution.All","SapHanaDistribution.Connection","SapHanaDistribution.Off","SapHanaDistribution.Statement","SapHanaRangeOperator.Equals","SapHanaRangeOperator.GreaterThan","SapHanaRangeOperator.GreaterThanOrEquals","SapHanaRangeOperator.LessThan","SapHanaRangeOperator.LessThanOrEquals","SapHanaRangeOperator.NotEquals","TextEncoding.Ascii","TextEncoding.BigEndianUnicode","TextEncoding.Unicode","TextEncoding.Utf16","TextEncoding.Utf8","TextEncoding.Windows","TraceLevel.Critical","TraceLevel.Error","TraceLevel.Information","TraceLevel.Verbose","TraceLevel.Warning","WebMethod.Delete","WebMethod.Get","WebMethod.Head","WebMethod.Patch","WebMethod.Post","WebMethod.Put"],builtinTypes:["Action.Type","Any.Type","Binary.Type","BinaryEncoding.Type","BinaryOccurrence.Type","Byte.Type","ByteOrder.Type","Character.Type","Compression.Type","CsvStyle.Type","Currency.Type","Date.Type","DateTime.Type","DateTimeZone.Type","Day.Type","Decimal.Type","Double.Type","Duration.Type","ExtraValues.Type","Function.Type","GroupKind.Type","Guid.Type","Int16.Type","Int32.Type","Int64.Type","Int8.Type","JoinAlgorithm.Type","JoinKind.Type","JoinSide.Type","List.Type","Logical.Type","MissingField.Type","None.Type","Null.Type","Number.Type","Occurrence.Type","Order.Type","Password.Type","Percentage.Type","Precision.Type","QuoteStyle.Type","Record.Type","RelativePosition.Type","RoundingMode.Type","SapHanaDistribution.Type","SapHanaRangeOperator.Type","Single.Type","Table.Type","Text.Type","TextEncoding.Type","Time.Type","TraceLevel.Type","Type.Type","Uri.Type","WebMethod.Type"],tokenizer:{root:[[/#"[\w \.]+"/,"identifier.quote"],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/0[xX][0-9a-fA-F]+/,"number.hex"],[/\d+([eE][\-+]?\d+)?/,"number"],[/(#?[a-z]+)\b/,{cases:{"@typeKeywords":"type","@keywords":"keyword","@constants":"constant","@constructors":"constructor","@operatorKeywords":"operators","@default":"identifier"}}],[/\b([A-Z][a-zA-Z0-9]+\.Type)\b/,{cases:{"@builtinTypes":"type","@default":"identifier"}}],[/\b([A-Z][a-zA-Z0-9]+\.[A-Z][a-zA-Z0-9]+)\b/,{cases:{"@builtinFunctions":"keyword.function","@builtinConstants":"constant","@default":"identifier"}}],[/\b([a-zA-Z_][\w\.]*)\b/,"identifier"],{include:"@whitespace"},{include:"@comments"},{include:"@strings"},[/[{}()\[\]]/,"@brackets"],[/([=\+<>\-\*&@\?\/!])|([<>]=)|(<>)|(=>)|(\.\.\.)|(\.\.)/,"operators"],[/[,;]/,"delimiter"]],whitespace:[[/\s+/,"white"]],comments:[["\\/\\*","comment","@comment"],["\\/\\/+.*","comment"]],comment:[["\\*\\/","comment","@pop"],[".","comment"]],strings:[['"',"string","@string"]],string:[['""',"string.escape"],['"',"string","@pop"],[".","string"]]}}})); \ No newline at end of file diff --git a/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/powershell/powershell.js b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/powershell/powershell.js new file mode 100644 index 0000000..a18ffd6 --- /dev/null +++ b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/powershell/powershell.js @@ -0,0 +1,7 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * monaco-languages version: 2.1.1(425b0e3c9ea2067410b8f90e0f30de383188c418) + * Released under the MIT license + * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/powershell/powershell",["require","exports"],(function(e,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.language=n.conf=void 0,n.conf={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\#%\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:"#",blockComment:["<#","#>"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{markers:{start:new RegExp("^\\s*#region\\b"),end:new RegExp("^\\s*#endregion\\b")}}},n.language={defaultToken:"",ignoreCase:!0,tokenPostfix:".ps1",brackets:[{token:"delimiter.curly",open:"{",close:"}"},{token:"delimiter.square",open:"[",close:"]"},{token:"delimiter.parenthesis",open:"(",close:")"}],keywords:["begin","break","catch","class","continue","data","define","do","dynamicparam","else","elseif","end","exit","filter","finally","for","foreach","from","function","if","in","param","process","return","switch","throw","trap","try","until","using","var","while","workflow","parallel","sequence","inlinescript","configuration"],helpKeywords:/SYNOPSIS|DESCRIPTION|PARAMETER|EXAMPLE|INPUTS|OUTPUTS|NOTES|LINK|COMPONENT|ROLE|FUNCTIONALITY|FORWARDHELPTARGETNAME|FORWARDHELPCATEGORY|REMOTEHELPRUNSPACE|EXTERNALHELP/,symbols:/[=>/,"comment","@pop"],[/(\.)(@helpKeywords)(?!\w)/,{token:"comment.keyword.$2"}],[/[\.#]/,"comment"]]}}})); \ No newline at end of file diff --git a/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/pug/pug.js b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/pug/pug.js new file mode 100644 index 0000000..eac3767 --- /dev/null +++ b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/pug/pug.js @@ -0,0 +1,7 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * monaco-languages version: 2.1.1(425b0e3c9ea2067410b8f90e0f30de383188c418) + * Released under the MIT license + * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/pug/pug",["require","exports"],(function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.language=t.conf=void 0,t.conf={comments:{lineComment:"//"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:'"',close:'"',notIn:["string","comment"]},{open:"'",close:"'",notIn:["string","comment"]},{open:"{",close:"}",notIn:["string","comment"]},{open:"[",close:"]",notIn:["string","comment"]},{open:"(",close:")",notIn:["string","comment"]}],folding:{offSide:!0}},t.language={defaultToken:"",tokenPostfix:".pug",ignoreCase:!0,brackets:[{token:"delimiter.curly",open:"{",close:"}"},{token:"delimiter.array",open:"[",close:"]"},{token:"delimiter.parenthesis",open:"(",close:")"}],keywords:["append","block","case","default","doctype","each","else","extends","for","if","in","include","mixin","typeof","unless","var","when"],tags:["a","abbr","acronym","address","area","article","aside","audio","b","base","basefont","bdi","bdo","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","command","datalist","dd","del","details","dfn","div","dl","dt","em","embed","fieldset","figcaption","figure","font","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","keygen","kbd","label","li","link","map","mark","menu","meta","meter","nav","noframes","noscript","object","ol","optgroup","option","output","p","param","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strike","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","title","tr","tracks","tt","u","ul","video","wbr"],symbols:/[\+\-\*\%\&\|\!\=\/\.\,\:]+/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/^(\s*)([a-zA-Z_-][\w-]*)/,{cases:{"$2@tags":{cases:{"@eos":["","tag"],"@default":["",{token:"tag",next:"@tag.$1"}]}},"$2@keywords":["",{token:"keyword.$2"}],"@default":["",""]}}],[/^(\s*)(#[a-zA-Z_-][\w-]*)/,{cases:{"@eos":["","tag.id"],"@default":["",{token:"tag.id",next:"@tag.$1"}]}}],[/^(\s*)(\.[a-zA-Z_-][\w-]*)/,{cases:{"@eos":["","tag.class"],"@default":["",{token:"tag.class",next:"@tag.$1"}]}}],[/^(\s*)(\|.*)$/,""],{include:"@whitespace"},[/[a-zA-Z_$][\w$]*/,{cases:{"@keywords":{token:"keyword.$0"},"@default":""}}],[/[{}()\[\]]/,"@brackets"],[/@symbols/,"delimiter"],[/\d+\.\d+([eE][\-+]?\d+)?/,"number.float"],[/\d+/,"number"],[/"/,"string",'@string."'],[/'/,"string","@string.'"]],tag:[[/(\.)(\s*$)/,[{token:"delimiter",next:"@blockText.$S2."},""]],[/\s+/,{token:"",next:"@simpleText"}],[/#[a-zA-Z_-][\w-]*/,{cases:{"@eos":{token:"tag.id",next:"@pop"},"@default":"tag.id"}}],[/\.[a-zA-Z_-][\w-]*/,{cases:{"@eos":{token:"tag.class",next:"@pop"},"@default":"tag.class"}}],[/\(/,{token:"delimiter.parenthesis",next:"@attributeList"}]],simpleText:[[/[^#]+$/,{token:"",next:"@popall"}],[/[^#]+/,{token:""}],[/(#{)([^}]*)(})/,{cases:{"@eos":["interpolation.delimiter","interpolation",{token:"interpolation.delimiter",next:"@popall"}],"@default":["interpolation.delimiter","interpolation","interpolation.delimiter"]}}],[/#$/,{token:"",next:"@popall"}],[/#/,""]],attributeList:[[/\s+/,""],[/(\w+)(\s*=\s*)("|')/,["attribute.name","delimiter",{token:"attribute.value",next:"@value.$3"}]],[/\w+/,"attribute.name"],[/,/,{cases:{"@eos":{token:"attribute.delimiter",next:"@popall"},"@default":"attribute.delimiter"}}],[/\)$/,{token:"delimiter.parenthesis",next:"@popall"}],[/\)/,{token:"delimiter.parenthesis",next:"@pop"}]],whitespace:[[/^(\s*)(\/\/.*)$/,{token:"comment",next:"@blockText.$1.comment"}],[/[ \t\r\n]+/,""],[//,{token:"comment",next:"@pop"}],[//,"comment.html","@pop"],[/[^-]+/,"comment.content.html"],[/./,"comment.content.html"]],otherTag:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.otherTag"}],[/\/?>/,"delimiter.html","@pop"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/]],script:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.script"}],[/type/,"attribute.name","@scriptAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/(<\/)(script\s*)(>)/,["delimiter.html","tag.html",{token:"delimiter.html",next:"@pop"}]]],scriptAfterType:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.scriptAfterType"}],[/=/,"delimiter","@scriptAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptAfterTypeEquals:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.scriptAfterTypeEquals"}],[/"([^"]*)"/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptWithCustomType:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.scriptWithCustomType.$S2"}],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptEmbedded:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInEmbeddedState.scriptEmbedded.$S2",nextEmbedded:"@pop"}],[/<\/script/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}]],style:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.style"}],[/type/,"attribute.name","@styleAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/(<\/)(style\s*)(>)/,["delimiter.html","tag.html",{token:"delimiter.html",next:"@pop"}]]],styleAfterType:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.styleAfterType"}],[/=/,"delimiter","@styleAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleAfterTypeEquals:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.styleAfterTypeEquals"}],[/"([^"]*)"/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleWithCustomType:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.styleWithCustomType.$S2"}],[/>/,{token:"delimiter.html",next:"@styleEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleEmbedded:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInEmbeddedState.styleEmbedded.$S2",nextEmbedded:"@pop"}],[/<\/style/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}]],razorInSimpleState:[[/@\*/,"comment.cs","@razorBlockCommentTopLevel"],[/@[{(]/,"metatag.cs","@razorRootTopLevel"],[/(@)(\s*[\w]+)/,["metatag.cs",{token:"identifier.cs",switchTo:"@$S2.$S3"}]],[/[})]/,{token:"metatag.cs",switchTo:"@$S2.$S3"}],[/\*@/,{token:"comment.cs",switchTo:"@$S2.$S3"}]],razorInEmbeddedState:[[/@\*/,"comment.cs","@razorBlockCommentTopLevel"],[/@[{(]/,"metatag.cs","@razorRootTopLevel"],[/(@)(\s*[\w]+)/,["metatag.cs",{token:"identifier.cs",switchTo:"@$S2.$S3",nextEmbedded:"$S3"}]],[/[})]/,{token:"metatag.cs",switchTo:"@$S2.$S3",nextEmbedded:"$S3"}],[/\*@/,{token:"comment.cs",switchTo:"@$S2.$S3",nextEmbedded:"$S3"}]],razorBlockCommentTopLevel:[[/\*@/,"@rematch","@pop"],[/[^*]+/,"comment.cs"],[/./,"comment.cs"]],razorBlockComment:[[/\*@/,"comment.cs","@pop"],[/[^*]+/,"comment.cs"],[/./,"comment.cs"]],razorRootTopLevel:[[/\{/,"delimiter.bracket.cs","@razorRoot"],[/\(/,"delimiter.parenthesis.cs","@razorRoot"],[/[})]/,"@rematch","@pop"],{include:"razorCommon"}],razorRoot:[[/\{/,"delimiter.bracket.cs","@razorRoot"],[/\(/,"delimiter.parenthesis.cs","@razorRoot"],[/\}/,"delimiter.bracket.cs","@pop"],[/\)/,"delimiter.parenthesis.cs","@pop"],{include:"razorCommon"}],razorCommon:[[/[a-zA-Z_]\w*/,{cases:{"@razorKeywords":{token:"keyword.cs"},"@default":"identifier.cs"}}],[/[\[\]]/,"delimiter.array.cs"],[/[ \t\r\n]+/],[/\/\/.*$/,"comment.cs"],[/@\*/,"comment.cs","@razorBlockComment"],[/"([^"]*)"/,"string.cs"],[/'([^']*)'/,"string.cs"],[/(<)(\w+)(\/>)/,["delimiter.html","tag.html","delimiter.html"]],[/(<)(\w+)(>)/,["delimiter.html","tag.html","delimiter.html"]],[/(<\/)(\w+)(>)/,["delimiter.html","tag.html","delimiter.html"]],[/[\+\-\*\%\&\|\^\~\!\=\<\>\/\?\;\:\.\,]/,"delimiter.cs"],[/\d*\d+[eE]([\-+]?\d+)?/,"number.float.cs"],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float.cs"],[/0[xX][0-9a-fA-F']*[0-9a-fA-F]/,"number.hex.cs"],[/0[0-7']*[0-7]/,"number.octal.cs"],[/0[bB][0-1']*[0-1]/,"number.binary.cs"],[/\d[\d']*/,"number.cs"],[/\d/,"number.cs"]]},razorKeywords:["abstract","as","async","await","base","bool","break","by","byte","case","catch","char","checked","class","const","continue","decimal","default","delegate","do","double","descending","explicit","event","extern","else","enum","false","finally","fixed","float","for","foreach","from","goto","group","if","implicit","in","int","interface","internal","into","is","lock","long","nameof","new","null","namespace","object","operator","out","override","orderby","params","private","protected","public","readonly","ref","return","switch","struct","sbyte","sealed","short","sizeof","stackalloc","static","string","select","this","throw","true","try","typeof","uint","ulong","unchecked","unsafe","ushort","using","var","virtual","volatile","void","when","while","where","yield","model","inject"],escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/}})); \ No newline at end of file diff --git a/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/redis/redis.js b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/redis/redis.js new file mode 100644 index 0000000..281c212 --- /dev/null +++ b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/redis/redis.js @@ -0,0 +1,7 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * monaco-languages version: 2.1.1(425b0e3c9ea2067410b8f90e0f30de383188c418) + * Released under the MIT license + * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/redis/redis",["require","exports"],(function(E,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.language=e.conf=void 0,e.conf={brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}]},e.language={defaultToken:"",tokenPostfix:".redis",ignoreCase:!0,brackets:[{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"}],keywords:["APPEND","AUTH","BGREWRITEAOF","BGSAVE","BITCOUNT","BITFIELD","BITOP","BITPOS","BLPOP","BRPOP","BRPOPLPUSH","CLIENT","KILL","LIST","GETNAME","PAUSE","REPLY","SETNAME","CLUSTER","ADDSLOTS","COUNT-FAILURE-REPORTS","COUNTKEYSINSLOT","DELSLOTS","FAILOVER","FORGET","GETKEYSINSLOT","INFO","KEYSLOT","MEET","NODES","REPLICATE","RESET","SAVECONFIG","SET-CONFIG-EPOCH","SETSLOT","SLAVES","SLOTS","COMMAND","COUNT","GETKEYS","CONFIG","GET","REWRITE","SET","RESETSTAT","DBSIZE","DEBUG","OBJECT","SEGFAULT","DECR","DECRBY","DEL","DISCARD","DUMP","ECHO","EVAL","EVALSHA","EXEC","EXISTS","EXPIRE","EXPIREAT","FLUSHALL","FLUSHDB","GEOADD","GEOHASH","GEOPOS","GEODIST","GEORADIUS","GEORADIUSBYMEMBER","GETBIT","GETRANGE","GETSET","HDEL","HEXISTS","HGET","HGETALL","HINCRBY","HINCRBYFLOAT","HKEYS","HLEN","HMGET","HMSET","HSET","HSETNX","HSTRLEN","HVALS","INCR","INCRBY","INCRBYFLOAT","KEYS","LASTSAVE","LINDEX","LINSERT","LLEN","LPOP","LPUSH","LPUSHX","LRANGE","LREM","LSET","LTRIM","MGET","MIGRATE","MONITOR","MOVE","MSET","MSETNX","MULTI","PERSIST","PEXPIRE","PEXPIREAT","PFADD","PFCOUNT","PFMERGE","PING","PSETEX","PSUBSCRIBE","PUBSUB","PTTL","PUBLISH","PUNSUBSCRIBE","QUIT","RANDOMKEY","READONLY","READWRITE","RENAME","RENAMENX","RESTORE","ROLE","RPOP","RPOPLPUSH","RPUSH","RPUSHX","SADD","SAVE","SCARD","SCRIPT","FLUSH","LOAD","SDIFF","SDIFFSTORE","SELECT","SETBIT","SETEX","SETNX","SETRANGE","SHUTDOWN","SINTER","SINTERSTORE","SISMEMBER","SLAVEOF","SLOWLOG","SMEMBERS","SMOVE","SORT","SPOP","SRANDMEMBER","SREM","STRLEN","SUBSCRIBE","SUNION","SUNIONSTORE","SWAPDB","SYNC","TIME","TOUCH","TTL","TYPE","UNSUBSCRIBE","UNLINK","UNWATCH","WAIT","WATCH","ZADD","ZCARD","ZCOUNT","ZINCRBY","ZINTERSTORE","ZLEXCOUNT","ZRANGE","ZRANGEBYLEX","ZREVRANGEBYLEX","ZRANGEBYSCORE","ZRANK","ZREM","ZREMRANGEBYLEX","ZREMRANGEBYRANK","ZREMRANGEBYSCORE","ZREVRANGE","ZREVRANGEBYSCORE","ZREVRANK","ZSCORE","ZUNIONSTORE","SCAN","SSCAN","HSCAN","ZSCAN"],operators:[],builtinFunctions:[],builtinVariables:[],pseudoColumns:[],tokenizer:{root:[{include:"@whitespace"},{include:"@pseudoColumns"},{include:"@numbers"},{include:"@strings"},{include:"@scopes"},[/[;,.]/,"delimiter"],[/[()]/,"@brackets"],[/[\w@#$]+/,{cases:{"@keywords":"keyword","@operators":"operator","@builtinVariables":"predefined","@builtinFunctions":"predefined","@default":"identifier"}}],[/[<>=!%&+\-*/|~^]/,"operator"]],whitespace:[[/\s+/,"white"]],pseudoColumns:[[/[$][A-Za-z_][\w@#$]*/,{cases:{"@pseudoColumns":"predefined","@default":"identifier"}}]],numbers:[[/0[xX][0-9a-fA-F]*/,"number"],[/[$][+-]*\d*(\.\d*)?/,"number"],[/((\d+(\.\d*)?)|(\.\d+))([eE][\-+]?\d+)?/,"number"]],strings:[[/'/,{token:"string",next:"@string"}],[/"/,{token:"string.double",next:"@stringDouble"}]],string:[[/[^']+/,"string"],[/''/,"string"],[/'/,{token:"string",next:"@pop"}]],stringDouble:[[/[^"]+/,"string.double"],[/""/,"string.double"],[/"/,{token:"string.double",next:"@pop"}]],scopes:[]}}})); \ No newline at end of file diff --git a/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/redshift/redshift.js b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/redshift/redshift.js new file mode 100644 index 0000000..7014a4c --- /dev/null +++ b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/redshift/redshift.js @@ -0,0 +1,7 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * monaco-languages version: 2.1.1(425b0e3c9ea2067410b8f90e0f30de383188c418) + * Released under the MIT license + * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/redshift/redshift",["require","exports"],(function(e,_){"use strict";Object.defineProperty(_,"__esModule",{value:!0}),_.language=_.conf=void 0,_.conf={comments:{lineComment:"--",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}]},_.language={defaultToken:"",tokenPostfix:".sql",ignoreCase:!0,brackets:[{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"}],keywords:["AES128","AES256","ALL","ALLOWOVERWRITE","ANALYSE","ANALYZE","AND","ANY","ARRAY","AS","ASC","AUTHORIZATION","BACKUP","BETWEEN","BINARY","BLANKSASNULL","BOTH","BYTEDICT","BZIP2","CASE","CAST","CHECK","COLLATE","COLUMN","CONSTRAINT","CREATE","CREDENTIALS","CROSS","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","CURRENT_USER_ID","DEFAULT","DEFERRABLE","DEFLATE","DEFRAG","DELTA","DELTA32K","DESC","DISABLE","DISTINCT","DO","ELSE","EMPTYASNULL","ENABLE","ENCODE","ENCRYPT","ENCRYPTION","END","EXCEPT","EXPLICIT","FALSE","FOR","FOREIGN","FREEZE","FROM","FULL","GLOBALDICT256","GLOBALDICT64K","GRANT","GROUP","GZIP","HAVING","IDENTITY","IGNORE","ILIKE","IN","INITIALLY","INNER","INTERSECT","INTO","IS","ISNULL","JOIN","LEADING","LEFT","LIKE","LIMIT","LOCALTIME","LOCALTIMESTAMP","LUN","LUNS","LZO","LZOP","MINUS","MOSTLY13","MOSTLY32","MOSTLY8","NATURAL","NEW","NOT","NOTNULL","NULL","NULLS","OFF","OFFLINE","OFFSET","OID","OLD","ON","ONLY","OPEN","OR","ORDER","OUTER","OVERLAPS","PARALLEL","PARTITION","PERCENT","PERMISSIONS","PLACING","PRIMARY","RAW","READRATIO","RECOVER","REFERENCES","RESPECT","REJECTLOG","RESORT","RESTORE","RIGHT","SELECT","SESSION_USER","SIMILAR","SNAPSHOT","SOME","SYSDATE","SYSTEM","TABLE","TAG","TDES","TEXT255","TEXT32K","THEN","TIMESTAMP","TO","TOP","TRAILING","TRUE","TRUNCATECOLUMNS","UNION","UNIQUE","USER","USING","VERBOSE","WALLET","WHEN","WHERE","WITH","WITHOUT"],operators:["AND","BETWEEN","IN","LIKE","NOT","OR","IS","NULL","INTERSECT","UNION","INNER","JOIN","LEFT","OUTER","RIGHT"],builtinFunctions:["current_schema","current_schemas","has_database_privilege","has_schema_privilege","has_table_privilege","age","current_time","current_timestamp","localtime","isfinite","now","ascii","get_bit","get_byte","set_bit","set_byte","to_ascii","approximate percentile_disc","avg","count","listagg","max","median","min","percentile_cont","stddev_samp","stddev_pop","sum","var_samp","var_pop","bit_and","bit_or","bool_and","bool_or","cume_dist","first_value","lag","last_value","lead","nth_value","ratio_to_report","dense_rank","ntile","percent_rank","rank","row_number","case","coalesce","decode","greatest","least","nvl","nvl2","nullif","add_months","at time zone","convert_timezone","current_date","date_cmp","date_cmp_timestamp","date_cmp_timestamptz","date_part_year","dateadd","datediff","date_part","date_trunc","extract","getdate","interval_cmp","last_day","months_between","next_day","sysdate","timeofday","timestamp_cmp","timestamp_cmp_date","timestamp_cmp_timestamptz","timestamptz_cmp","timestamptz_cmp_date","timestamptz_cmp_timestamp","timezone","to_timestamp","trunc","abs","acos","asin","atan","atan2","cbrt","ceil","ceiling","checksum","cos","cot","degrees","dexp","dlog1","dlog10","exp","floor","ln","log","mod","pi","power","radians","random","round","sin","sign","sqrt","tan","to_hex","bpcharcmp","btrim","bttext_pattern_cmp","char_length","character_length","charindex","chr","concat","crc32","func_sha1","initcap","left and rights","len","length","lower","lpad and rpads","ltrim","md5","octet_length","position","quote_ident","quote_literal","regexp_count","regexp_instr","regexp_replace","regexp_substr","repeat","replace","replicate","reverse","rtrim","split_part","strpos","strtol","substring","textlen","translate","trim","upper","cast","convert","to_char","to_date","to_number","json_array_length","json_extract_array_element_text","json_extract_path_text","current_setting","pg_cancel_backend","pg_terminate_backend","set_config","current_database","current_user","current_user_id","pg_backend_pid","pg_last_copy_count","pg_last_copy_id","pg_last_query_id","pg_last_unload_count","session_user","slice_num","user","version","abbrev","acosd","any","area","array_agg","array_append","array_cat","array_dims","array_fill","array_length","array_lower","array_ndims","array_position","array_positions","array_prepend","array_remove","array_replace","array_to_json","array_to_string","array_to_tsvector","array_upper","asind","atan2d","atand","bit","bit_length","bound_box","box","brin_summarize_new_values","broadcast","cardinality","center","circle","clock_timestamp","col_description","concat_ws","convert_from","convert_to","corr","cosd","cotd","covar_pop","covar_samp","current_catalog","current_query","current_role","currval","cursor_to_xml","diameter","div","encode","enum_first","enum_last","enum_range","every","family","format","format_type","generate_series","generate_subscripts","get_current_ts_config","gin_clean_pending_list","grouping","has_any_column_privilege","has_column_privilege","has_foreign_data_wrapper_privilege","has_function_privilege","has_language_privilege","has_sequence_privilege","has_server_privilege","has_tablespace_privilege","has_type_privilege","height","host","hostmask","inet_client_addr","inet_client_port","inet_merge","inet_same_family","inet_server_addr","inet_server_port","isclosed","isempty","isopen","json_agg","json_object","json_object_agg","json_populate_record","json_populate_recordset","json_to_record","json_to_recordset","jsonb_agg","jsonb_object_agg","justify_days","justify_hours","justify_interval","lastval","left","line","localtimestamp","lower_inc","lower_inf","lpad","lseg","make_date","make_interval","make_time","make_timestamp","make_timestamptz","masklen","mode","netmask","network","nextval","npoints","num_nonnulls","num_nulls","numnode","obj_description","overlay","parse_ident","path","pclose","percentile_disc","pg_advisory_lock","pg_advisory_lock_shared","pg_advisory_unlock","pg_advisory_unlock_all","pg_advisory_unlock_shared","pg_advisory_xact_lock","pg_advisory_xact_lock_shared","pg_backup_start_time","pg_blocking_pids","pg_client_encoding","pg_collation_is_visible","pg_column_size","pg_conf_load_time","pg_control_checkpoint","pg_control_init","pg_control_recovery","pg_control_system","pg_conversion_is_visible","pg_create_logical_replication_slot","pg_create_physical_replication_slot","pg_create_restore_point","pg_current_xlog_flush_location","pg_current_xlog_insert_location","pg_current_xlog_location","pg_database_size","pg_describe_object","pg_drop_replication_slot","pg_export_snapshot","pg_filenode_relation","pg_function_is_visible","pg_get_constraintdef","pg_get_expr","pg_get_function_arguments","pg_get_function_identity_arguments","pg_get_function_result","pg_get_functiondef","pg_get_indexdef","pg_get_keywords","pg_get_object_address","pg_get_owned_sequence","pg_get_ruledef","pg_get_serial_sequence","pg_get_triggerdef","pg_get_userbyid","pg_get_viewdef","pg_has_role","pg_identify_object","pg_identify_object_as_address","pg_index_column_has_property","pg_index_has_property","pg_indexam_has_property","pg_indexes_size","pg_is_in_backup","pg_is_in_recovery","pg_is_other_temp_schema","pg_is_xlog_replay_paused","pg_last_committed_xact","pg_last_xact_replay_timestamp","pg_last_xlog_receive_location","pg_last_xlog_replay_location","pg_listening_channels","pg_logical_emit_message","pg_logical_slot_get_binary_changes","pg_logical_slot_get_changes","pg_logical_slot_peek_binary_changes","pg_logical_slot_peek_changes","pg_ls_dir","pg_my_temp_schema","pg_notification_queue_usage","pg_opclass_is_visible","pg_operator_is_visible","pg_opfamily_is_visible","pg_options_to_table","pg_postmaster_start_time","pg_read_binary_file","pg_read_file","pg_relation_filenode","pg_relation_filepath","pg_relation_size","pg_reload_conf","pg_replication_origin_create","pg_replication_origin_drop","pg_replication_origin_oid","pg_replication_origin_progress","pg_replication_origin_session_is_setup","pg_replication_origin_session_progress","pg_replication_origin_session_reset","pg_replication_origin_session_setup","pg_replication_origin_xact_reset","pg_replication_origin_xact_setup","pg_rotate_logfile","pg_size_bytes","pg_size_pretty","pg_sleep","pg_sleep_for","pg_sleep_until","pg_start_backup","pg_stat_file","pg_stop_backup","pg_switch_xlog","pg_table_is_visible","pg_table_size","pg_tablespace_databases","pg_tablespace_location","pg_tablespace_size","pg_total_relation_size","pg_trigger_depth","pg_try_advisory_lock","pg_try_advisory_lock_shared","pg_try_advisory_xact_lock","pg_try_advisory_xact_lock_shared","pg_ts_config_is_visible","pg_ts_dict_is_visible","pg_ts_parser_is_visible","pg_ts_template_is_visible","pg_type_is_visible","pg_typeof","pg_xact_commit_timestamp","pg_xlog_location_diff","pg_xlog_replay_pause","pg_xlog_replay_resume","pg_xlogfile_name","pg_xlogfile_name_offset","phraseto_tsquery","plainto_tsquery","point","polygon","popen","pqserverversion","query_to_xml","querytree","quote_nullable","radius","range_merge","regexp_matches","regexp_split_to_array","regexp_split_to_table","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","right","row_security_active","row_to_json","rpad","scale","set_masklen","setseed","setval","setweight","shobj_description","sind","sprintf","statement_timestamp","stddev","string_agg","string_to_array","strip","substr","table_to_xml","table_to_xml_and_xmlschema","tand","text","to_json","to_regclass","to_regnamespace","to_regoper","to_regoperator","to_regproc","to_regprocedure","to_regrole","to_regtype","to_tsquery","to_tsvector","transaction_timestamp","ts_debug","ts_delete","ts_filter","ts_headline","ts_lexize","ts_parse","ts_rank","ts_rank_cd","ts_rewrite","ts_stat","ts_token_type","tsquery_phrase","tsvector_to_array","tsvector_update_trigger","tsvector_update_trigger_column","txid_current","txid_current_snapshot","txid_snapshot_xip","txid_snapshot_xmax","txid_snapshot_xmin","txid_visible_in_snapshot","unnest","upper_inc","upper_inf","variance","width","width_bucket","xml_is_well_formed","xml_is_well_formed_content","xml_is_well_formed_document","xmlagg","xmlcomment","xmlconcat","xmlelement","xmlexists","xmlforest","xmlparse","xmlpi","xmlroot","xmlserialize","xpath","xpath_exists"],builtinVariables:[],pseudoColumns:[],tokenizer:{root:[{include:"@comments"},{include:"@whitespace"},{include:"@pseudoColumns"},{include:"@numbers"},{include:"@strings"},{include:"@complexIdentifiers"},{include:"@scopes"},[/[;,.]/,"delimiter"],[/[()]/,"@brackets"],[/[\w@#$]+/,{cases:{"@keywords":"keyword","@operators":"operator","@builtinVariables":"predefined","@builtinFunctions":"predefined","@default":"identifier"}}],[/[<>=!%&+\-*/|~^]/,"operator"]],whitespace:[[/\s+/,"white"]],comments:[[/--+.*/,"comment"],[/\/\*/,{token:"comment.quote",next:"@comment"}]],comment:[[/[^*/]+/,"comment"],[/\*\//,{token:"comment.quote",next:"@pop"}],[/./,"comment"]],pseudoColumns:[[/[$][A-Za-z_][\w@#$]*/,{cases:{"@pseudoColumns":"predefined","@default":"identifier"}}]],numbers:[[/0[xX][0-9a-fA-F]*/,"number"],[/[$][+-]*\d*(\.\d*)?/,"number"],[/((\d+(\.\d*)?)|(\.\d+))([eE][\-+]?\d+)?/,"number"]],strings:[[/'/,{token:"string",next:"@string"}]],string:[[/[^']+/,"string"],[/''/,"string"],[/'/,{token:"string",next:"@pop"}]],complexIdentifiers:[[/"/,{token:"identifier.quote",next:"@quotedIdentifier"}]],quotedIdentifier:[[/[^"]+/,"identifier"],[/""/,"identifier"],[/"/,{token:"identifier.quote",next:"@pop"}]],scopes:[]}}})); \ No newline at end of file diff --git a/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/restructuredtext/restructuredtext.js b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/restructuredtext/restructuredtext.js new file mode 100644 index 0000000..7d1a068 --- /dev/null +++ b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/restructuredtext/restructuredtext.js @@ -0,0 +1,7 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * monaco-languages version: 2.1.1(425b0e3c9ea2067410b8f90e0f30de383188c418) + * Released under the MIT license + * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/restructuredtext/restructuredtext",["require","exports"],(function(e,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.language=n.conf=void 0,n.conf={brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">",notIn:["string"]}],surroundingPairs:[{open:"(",close:")"},{open:"[",close:"]"},{open:"`",close:"`"}],folding:{markers:{start:new RegExp("^\\s*\x3c!--\\s*#?region\\b.*--\x3e"),end:new RegExp("^\\s*\x3c!--\\s*#?endregion\\b.*--\x3e")}}},n.language={defaultToken:"",tokenPostfix:".rst",control:/[\\`*_\[\]{}()#+\-\.!]/,escapes:/\\(?:@control)/,empty:["area","base","basefont","br","col","frame","hr","img","input","isindex","link","meta","param"],alphanumerics:/[A-Za-z0-9]/,alphanumericsplus:/[A-Za-z0-9-_+:.]/,simpleRefNameWithoutBq:/(?:@alphanumerics@alphanumericsplus*@alphanumerics)+|(?:@alphanumerics+)/,simpleRefName:/(?:`@simpleRefNameWithoutBq`|@simpleRefNameWithoutBq)/,phrase:/@simpleRefName(?:\s@simpleRefName)*/,citationName:/[A-Za-z][A-Za-z0-9-_.]*/,blockLiteralStart:/(?:[!"#$%&'()*+,-./:;<=>?@\[\]^_`{|}~]|[\s])/,precedingChars:/(?:[ -:/'"<([{])/,followingChars:/(?:[ -.,:;!?/'")\]}>]|$)/,punctuation:/(=|-|~|`|#|"|\^|\+|\*|:|\.|'|_|\+)/,tokenizer:{root:[[/^(@punctuation{3,}$){1,1}?/,"keyword"],[/^\s*([\*\-+‣•]|[a-zA-Z0-9]+\.|\([a-zA-Z0-9]+\)|[a-zA-Z0-9]+\))\s/,"keyword"],[/([ ]::)\s*$/,"keyword","@blankLineOfLiteralBlocks"],[/(::)\s*$/,"keyword","@blankLineOfLiteralBlocks"],{include:"@tables"},{include:"@explicitMarkupBlocks"},{include:"@inlineMarkup"}],explicitMarkupBlocks:[{include:"@citations"},{include:"@footnotes"},[/^(\.\.\s)(@simpleRefName)(::\s)(.*)$/,[{token:"",next:"subsequentLines"},"keyword","",""]],[/^(\.\.)(\s+)(_)(@simpleRefName)(:)(\s+)(.*)/,[{token:"",next:"hyperlinks"},"","","string.link","","","string.link"]],[/^((?:(?:\.\.)(?:\s+))?)(__)(:)(\s+)(.*)/,[{token:"",next:"subsequentLines"},"","","","string.link"]],[/^(__\s+)(.+)/,["","string.link"]],[/^(\.\.)( \|)([^| ]+[^|]*[^| ]*)(\| )(@simpleRefName)(:: .*)/,[{token:"",next:"subsequentLines"},"","string.link","","keyword",""],"@rawBlocks"],[/(\|)([^| ]+[^|]*[^| ]*)(\|_{0,2})/,["","string.link",""]],[/^(\.\.)([ ].*)$/,[{token:"",next:"@comments"},"comment"]]],inlineMarkup:[{include:"@citationsReference"},{include:"@footnotesReference"},[/(@simpleRefName)(_{1,2})/,["string.link",""]],[/(`)([^<`]+\s+)(<)(.*)(>)(`)(_)/,["","string.link","","string.link","","",""]],[/\*\*([^\\*]|\*(?!\*))+\*\*/,"strong"],[/\*[^*]+\*/,"emphasis"],[/(``)((?:[^`]|\`(?!`))+)(``)/,["","keyword",""]],[/(__\s+)(.+)/,["","keyword"]],[/(:)((?:@simpleRefNameWithoutBq)?)(:`)([^`]+)(`)/,["","keyword","","",""]],[/(`)([^`]+)(`:)((?:@simpleRefNameWithoutBq)?)(:)/,["","","","keyword",""]],[/(`)([^`]+)(`)/,""],[/(_`)(@phrase)(`)/,["","string.link",""]]],citations:[[/^(\.\.\s+\[)((?:@citationName))(\]\s+)(.*)/,[{token:"",next:"@subsequentLines"},"string.link","",""]]],citationsReference:[[/(\[)(@citationName)(\]_)/,["","string.link",""]]],footnotes:[[/^(\.\.\s+\[)((?:[0-9]+))(\]\s+.*)/,[{token:"",next:"@subsequentLines"},"string.link",""]],[/^(\.\.\s+\[)((?:#@simpleRefName?))(\]\s+)(.*)/,[{token:"",next:"@subsequentLines"},"string.link","",""]],[/^(\.\.\s+\[)((?:\*))(\]\s+)(.*)/,[{token:"",next:"@subsequentLines"},"string.link","",""]]],footnotesReference:[[/(\[)([0-9]+)(\])(_)/,["","string.link","",""]],[/(\[)(#@simpleRefName?)(\])(_)/,["","string.link","",""]],[/(\[)(\*)(\])(_)/,["","string.link","",""]]],blankLineOfLiteralBlocks:[[/^$/,"","@subsequentLinesOfLiteralBlocks"],[/^.*$/,"","@pop"]],subsequentLinesOfLiteralBlocks:[[/(@blockLiteralStart+)(.*)/,["keyword",""]],[/^(?!blockLiteralStart)/,"","@popall"]],subsequentLines:[[/^[\s]+.*/,""],[/^(?!\s)/,"","@pop"]],hyperlinks:[[/^[\s]+.*/,"string.link"],[/^(?!\s)/,"","@pop"]],comments:[[/^[\s]+.*/,"comment"],[/^(?!\s)/,"","@pop"]],tables:[[/\+-[+-]+/,"keyword"],[/\+=[+=]+/,"keyword"]]}}})); \ No newline at end of file diff --git a/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/ruby/ruby.js b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/ruby/ruby.js new file mode 100644 index 0000000..9bea1c3 --- /dev/null +++ b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/ruby/ruby.js @@ -0,0 +1,7 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * monaco-languages version: 2.1.1(425b0e3c9ea2067410b8f90e0f30de383188c418) + * Released under the MIT license + * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/ruby/ruby",["require","exports"],(function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.language=t.conf=void 0,t.conf={comments:{lineComment:"#",blockComment:["=begin","=end"]},brackets:[["(",")"],["{","}"],["[","]"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],indentationRules:{increaseIndentPattern:new RegExp("^\\s*((begin|class|(private|protected)\\s+def|def|else|elsif|ensure|for|if|module|rescue|unless|until|when|while|case)|([^#]*\\sdo\\b)|([^#]*=\\s*(case|if|unless)))\\b([^#\\{;]|(\"|'|/).*\\4)*(#.*)?$"),decreaseIndentPattern:new RegExp("^\\s*([}\\]]([,)]?\\s*(#|$)|\\.[a-zA-Z_]\\w*\\b)|(end|rescue|ensure|else|elsif|when)\\b)")}},t.language={tokenPostfix:".ruby",keywords:["__LINE__","__ENCODING__","__FILE__","BEGIN","END","alias","and","begin","break","case","class","def","defined?","do","else","elsif","end","ensure","for","false","if","in","module","next","nil","not","or","redo","rescue","retry","return","self","super","then","true","undef","unless","until","when","while","yield"],keywordops:["::","..","...","?",":","=>"],builtins:["require","public","private","include","extend","attr_reader","protected","private_class_method","protected_class_method","new"],declarations:["module","class","def","case","do","begin","for","if","while","until","unless"],linedecls:["def","case","do","begin","for","if","while","until","unless"],operators:["^","&","|","<=>","==","===","!~","=~",">",">=","<","<=","<<",">>","+","-","*","/","%","**","~","+@","-@","[]","[]=","`","+=","-=","*=","**=","/=","^=","%=","<<=",">>=","&=","&&=","||=","|="],brackets:[{open:"(",close:")",token:"delimiter.parenthesis"},{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"}],symbols:/[=>"}],[/%([qws])(@delim)/,{token:"string.$1.delim",switchTo:"@qstring.$1.$2.$2"}],[/%r\(/,{token:"regexp.delim",switchTo:"@pregexp.(.)"}],[/%r\[/,{token:"regexp.delim",switchTo:"@pregexp.[.]"}],[/%r\{/,{token:"regexp.delim",switchTo:"@pregexp.{.}"}],[/%r"}],[/%r(@delim)/,{token:"regexp.delim",switchTo:"@pregexp.$1.$1"}],[/%(x|W|Q?)\(/,{token:"string.$1.delim",switchTo:"@qqstring.$1.(.)"}],[/%(x|W|Q?)\[/,{token:"string.$1.delim",switchTo:"@qqstring.$1.[.]"}],[/%(x|W|Q?)\{/,{token:"string.$1.delim",switchTo:"@qqstring.$1.{.}"}],[/%(x|W|Q?)"}],[/%(x|W|Q?)(@delim)/,{token:"string.$1.delim",switchTo:"@qqstring.$1.$2.$2"}],[/%([rqwsxW]|Q?)./,{token:"invalid",next:"@pop"}],[/./,{token:"invalid",next:"@pop"}]],qstring:[[/\\$/,"string.$S2.escape"],[/\\./,"string.$S2.escape"],[/./,{cases:{"$#==$S4":{token:"string.$S2.delim",next:"@pop"},"$#==$S3":{token:"string.$S2.delim",next:"@push"},"@default":"string.$S2"}}]],qqstring:[[/#/,"string.$S2.escape","@interpolated"],{include:"@qstring"}],whitespace:[[/[ \t\r\n]+/,""],[/^\s*=begin\b/,"comment","@comment"],[/#.*$/,"comment"]],comment:[[/[^=]+/,"comment"],[/^\s*=begin\b/,"comment.invalid"],[/^\s*=end\b.*/,"comment","@pop"],[/[=]/,"comment"]]}}})); \ No newline at end of file diff --git a/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/rust/rust.js b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/rust/rust.js new file mode 100644 index 0000000..6fb3866 --- /dev/null +++ b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/rust/rust.js @@ -0,0 +1,7 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * monaco-languages version: 2.1.1(425b0e3c9ea2067410b8f90e0f30de383188c418) + * Released under the MIT license + * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/rust/rust",["require","exports"],(function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.language=t.conf=void 0,t.conf={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"[",close:"]"},{open:"{",close:"}"},{open:"(",close:")"},{open:"'",close:"'",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{markers:{start:new RegExp("^\\s*#pragma\\s+region\\b"),end:new RegExp("^\\s*#pragma\\s+endregion\\b")}}},t.language={tokenPostfix:".rust",defaultToken:"invalid",keywords:["as","box","break","const","continue","crate","else","enum","extern","false","fn","for","if","impl","in","let","loop","match","mod","move","mut","pub","ref","return","self","static","struct","super","trait","true","type","unsafe","use","where","while","catch","default","union","static","abstract","alignof","become","do","final","macro","offsetof","override","priv","proc","pure","sizeof","typeof","unsized","virtual","yield"],typeKeywords:["Self","m32","m64","m128","f80","f16","f128","int","uint","float","char","bool","u8","u16","u32","u64","f32","f64","i8","i16","i32","i64","str","Option","Either","c_float","c_double","c_void","FILE","fpos_t","DIR","dirent","c_char","c_schar","c_uchar","c_short","c_ushort","c_int","c_uint","c_long","c_ulong","size_t","ptrdiff_t","clock_t","time_t","c_longlong","c_ulonglong","intptr_t","uintptr_t","off_t","dev_t","ino_t","pid_t","mode_t","ssize_t"],constants:["true","false","Some","None","Left","Right","Ok","Err"],supportConstants:["EXIT_FAILURE","EXIT_SUCCESS","RAND_MAX","EOF","SEEK_SET","SEEK_CUR","SEEK_END","_IOFBF","_IONBF","_IOLBF","BUFSIZ","FOPEN_MAX","FILENAME_MAX","L_tmpnam","TMP_MAX","O_RDONLY","O_WRONLY","O_RDWR","O_APPEND","O_CREAT","O_EXCL","O_TRUNC","S_IFIFO","S_IFCHR","S_IFBLK","S_IFDIR","S_IFREG","S_IFMT","S_IEXEC","S_IWRITE","S_IREAD","S_IRWXU","S_IXUSR","S_IWUSR","S_IRUSR","F_OK","R_OK","W_OK","X_OK","STDIN_FILENO","STDOUT_FILENO","STDERR_FILENO"],supportMacros:["format!","print!","println!","panic!","format_args!","unreachable!","write!","writeln!"],operators:["!","!=","%","%=","&","&=","&&","*","*=","+","+=","-","-=","->",".","..","...","/","/=",":",";","<<","<<=","<","<=","=","==","=>",">",">=",">>",">>=","@","^","^=","|","|=","||","_","?","#"],escapes:/\\([nrt0\"''\\]|x\h{2}|u\{\h{1,6}\})/,delimiters:/[,]/,symbols:/[\#\!\%\&\*\+\-\.\/\:\;\<\=\>\@\^\|_\?]+/,intSuffixes:/[iu](8|16|32|64|128|size)/,floatSuffixes:/f(32|64)/,tokenizer:{root:[[/[a-zA-Z][a-zA-Z0-9_]*!?|_[a-zA-Z0-9_]+/,{cases:{"@typeKeywords":"keyword.type","@keywords":"keyword","@supportConstants":"keyword","@supportMacros":"keyword","@constants":"keyword","@default":"identifier"}}],[/\$/,"identifier"],[/'[a-zA-Z_][a-zA-Z0-9_]*(?=[^\'])/,"identifier"],[/'\S'/,"string.byteliteral"],[/"/,{token:"string.quote",bracket:"@open",next:"@string"}],{include:"@numbers"},{include:"@whitespace"},[/@delimiters/,{cases:{"@keywords":"keyword","@default":"delimiter"}}],[/[{}()\[\]<>]/,"@brackets"],[/@symbols/,{cases:{"@operators":"operator","@default":""}}]],whitespace:[[/[ \t\r\n]+/,"white"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\/\*/,"comment","@push"],["\\*/","comment","@pop"],[/[\/*]/,"comment"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,{token:"string.quote",bracket:"@close",next:"@pop"}]],numbers:[[/(0o[0-7_]+)(@intSuffixes)?/,{token:"number"}],[/(0b[0-1_]+)(@intSuffixes)?/,{token:"number"}],[/[\d][\d_]*(\.[\d][\d_]*)?[eE][+-][\d_]+(@floatSuffixes)?/,{token:"number"}],[/\b(\d\.?[\d_]*)(@floatSuffixes)?\b/,{token:"number"}],[/(0x[\da-fA-F]+)_?(@intSuffixes)?/,{token:"number"}],[/[\d][\d_]*(@intSuffixes?)?/,{token:"number"}]]}}})); \ No newline at end of file diff --git a/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/sb/sb.js b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/sb/sb.js new file mode 100644 index 0000000..1efdfcb --- /dev/null +++ b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/sb/sb.js @@ -0,0 +1,7 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * monaco-languages version: 2.1.1(425b0e3c9ea2067410b8f90e0f30de383188c418) + * Released under the MIT license + * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/sb/sb",["require","exports"],(function(e,o){"use strict";Object.defineProperty(o,"__esModule",{value:!0}),o.language=o.conf=void 0,o.conf={comments:{lineComment:"'"},brackets:[["(",")"],["[","]"],["If","EndIf"],["While","EndWhile"],["For","EndFor"],["Sub","EndSub"]],autoClosingPairs:[{open:'"',close:'"',notIn:["string","comment"]},{open:"(",close:")",notIn:["string","comment"]},{open:"[",close:"]",notIn:["string","comment"]}]},o.language={defaultToken:"",tokenPostfix:".sb",ignoreCase:!0,brackets:[{token:"delimiter.array",open:"[",close:"]"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"keyword.tag-if",open:"If",close:"EndIf"},{token:"keyword.tag-while",open:"While",close:"EndWhile"},{token:"keyword.tag-for",open:"For",close:"EndFor"},{token:"keyword.tag-sub",open:"Sub",close:"EndSub"}],keywords:["Else","ElseIf","EndFor","EndIf","EndSub","EndWhile","For","Goto","If","Step","Sub","Then","To","While"],tagwords:["If","Sub","While","For"],operators:[">","<","<>","<=",">=","And","Or","+","-","*","/","="],identifier:/[a-zA-Z_][\w]*/,symbols:/[=><:+\-*\/%\.,]+/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[{include:"@whitespace"},[/(@identifier)(?=[.])/,"type"],[/@identifier/,{cases:{"@keywords":{token:"keyword.$0"},"@operators":"operator","@default":"variable.name"}}],[/([.])(@identifier)/,{cases:{$2:["delimiter","type.member"],"@default":""}}],[/\d*\.\d+/,"number.float"],[/\d+/,"number"],[/[()\[\]]/,"@brackets"],[/@symbols/,{cases:{"@operators":"operator","@default":"delimiter"}}],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string"]],whitespace:[[/[ \t\r\n]+/,""],[/(\').*$/,"comment"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"C?/,"string","@pop"]]}}})); \ No newline at end of file diff --git a/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/scala/scala.js b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/scala/scala.js new file mode 100644 index 0000000..5566b66 --- /dev/null +++ b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/scala/scala.js @@ -0,0 +1,7 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * monaco-languages version: 2.1.1(425b0e3c9ea2067410b8f90e0f30de383188c418) + * Released under the MIT license + * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/scala/scala",["require","exports"],(function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.language=t.conf=void 0,t.conf={wordPattern:/(unary_[@~!#%^&*()\-=+\\|:<>\/?]+)|([a-zA-Z_$][\w$]*?_=)|(`[^`]+`)|([a-zA-Z_$][\w$]*)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{markers:{start:new RegExp("^\\s*//\\s*(?:(?:#?region\\b)|(?:))")}}},t.language={tokenPostfix:".scala",keywords:["asInstanceOf","catch","class","classOf","def","do","else","extends","finally","for","foreach","forSome","if","import","isInstanceOf","macro","match","new","object","package","return","throw","trait","try","type","until","val","var","while","with","yield","given","enum","then"],softKeywords:["as","export","extension","end","derives","on"],constants:["true","false","null","this","super"],modifiers:["abstract","final","implicit","lazy","override","private","protected","sealed"],softModifiers:["inline","opaque","open","transparent","using"],name:/(?:[a-z_$][\w$]*|`[^`]+`)/,type:/(?:[A-Z][\w$]*)/,symbols:/[=>))/,["@brackets","white","variable"]],[/@name/,{cases:{"@keywords":"keyword","@softKeywords":"keyword","@modifiers":"keyword.modifier","@softModifiers":"keyword.modifier","@constants":{token:"constant",next:"@allowMethod"},"@default":{token:"identifier",next:"@allowMethod"}}}],[/@type/,"type","@allowMethod"],{include:"@whitespace"},[/@[a-zA-Z_$][\w$]*(?:\.[a-zA-Z_$][\w$]*)*/,"annotation"],[/[{(]/,"@brackets"],[/[})]/,"@brackets","@allowMethod"],[/\[/,"operator.square"],[/](?!\s*(?:va[rl]|def|type)\b)/,"operator.square","@allowMethod"],[/]/,"operator.square"],[/([=-]>|<-|>:|<:|:>|<%)(?=[\s\w()[\]{},\."'`])/,"keyword"],[/@symbols/,"operator"],[/[;,\.]/,"delimiter"],[/'[a-zA-Z$][\w$]*(?!')/,"attribute.name"],[/'[^\\']'/,"string","@allowMethod"],[/(')(@escapes)(')/,["string","string.escape",{token:"string",next:"@allowMethod"}]],[/'/,"string.invalid"]],import:[[/;/,"delimiter","@pop"],[/^|$/,"","@pop"],[/[ \t]+/,"white"],[/[\n\r]+/,"white","@pop"],[/\/\*/,"comment","@comment"],[/@name|@type/,"type"],[/[(){}]/,"@brackets"],[/[[\]]/,"operator.square"],[/[\.,]/,"delimiter"]],allowMethod:[[/^|$/,"","@pop"],[/[ \t]+/,"white"],[/[\n\r]+/,"white","@pop"],[/\/\*/,"comment","@comment"],[/(?==>[\s\w([{])/,"keyword","@pop"],[/(@name|@symbols)(?=[ \t]*[[({"'`]|[ \t]+(?:[+-]?\.?\d|\w))/,{cases:{"@keywords":{token:"keyword",next:"@pop"},"->|<-|>:|<:|<%":{token:"keyword",next:"@pop"},"@default":{token:"@rematch",next:"@pop"}}}],["","","@pop"]],comment:[[/[^\/*]+/,"comment"],[/\/\*/,"comment","@push"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],case:[[/\b_\*/,"key"],[/\b(_|true|false|null|this|super)\b/,"keyword","@allowMethod"],[/\bif\b|=>/,"keyword","@pop"],[/`[^`]+`/,"identifier","@allowMethod"],[/@name/,"variable","@allowMethod"],[/:::?|\||@(?![a-z_$])/,"keyword"],{include:"@root"}],vardef:[[/\b_\*/,"key"],[/\b(_|true|false|null|this|super)\b/,"keyword"],[/@name/,"variable"],[/:::?|\||@(?![a-z_$])/,"keyword"],[/=|:(?!:)/,"operator","@pop"],[/$/,"white","@pop"],{include:"@root"}],string:[[/[^\\"\n\r]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,{token:"string.quote",bracket:"@close",switchTo:"@allowMethod"}]],stringt:[[/[^\\"\n\r]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"(?=""")/,"string"],[/"""/,{token:"string.quote",bracket:"@close",switchTo:"@allowMethod"}],[/"/,"string"]],fstring:[[/@escapes/,"string.escape"],[/"/,{token:"string.quote",bracket:"@close",switchTo:"@allowMethod"}],[/\$\$/,"string"],[/(\$)([a-z_]\w*)/,["operator","identifier"]],[/\$\{/,"operator","@interp"],[/%%/,"string"],[/(%)([\-#+ 0,(])(\d+|\.\d+|\d+\.\d+)(@fstring_conv)/,["metatag","keyword.modifier","number","metatag"]],[/(%)(\d+|\.\d+|\d+\.\d+)(@fstring_conv)/,["metatag","number","metatag"]],[/(%)([\-#+ 0,(])(@fstring_conv)/,["metatag","keyword.modifier","metatag"]],[/(%)(@fstring_conv)/,["metatag","metatag"]],[/./,"string"]],fstringt:[[/@escapes/,"string.escape"],[/"(?=""")/,"string"],[/"""/,{token:"string.quote",bracket:"@close",switchTo:"@allowMethod"}],[/\$\$/,"string"],[/(\$)([a-z_]\w*)/,["operator","identifier"]],[/\$\{/,"operator","@interp"],[/%%/,"string"],[/(%)([\-#+ 0,(])(\d+|\.\d+|\d+\.\d+)(@fstring_conv)/,["metatag","keyword.modifier","number","metatag"]],[/(%)(\d+|\.\d+|\d+\.\d+)(@fstring_conv)/,["metatag","number","metatag"]],[/(%)([\-#+ 0,(])(@fstring_conv)/,["metatag","keyword.modifier","metatag"]],[/(%)(@fstring_conv)/,["metatag","metatag"]],[/./,"string"]],sstring:[[/@escapes/,"string.escape"],[/"/,{token:"string.quote",bracket:"@close",switchTo:"@allowMethod"}],[/\$\$/,"string"],[/(\$)([a-z_]\w*)/,["operator","identifier"]],[/\$\{/,"operator","@interp"],[/./,"string"]],sstringt:[[/@escapes/,"string.escape"],[/"(?=""")/,"string"],[/"""/,{token:"string.quote",bracket:"@close",switchTo:"@allowMethod"}],[/\$\$/,"string"],[/(\$)([a-z_]\w*)/,["operator","identifier"]],[/\$\{/,"operator","@interp"],[/./,"string"]],interp:[[/{/,"operator","@push"],[/}/,"operator","@pop"],{include:"@root"}],rawstring:[[/[^"]/,"string"],[/"/,{token:"string.quote",bracket:"@close",switchTo:"@allowMethod"}]],rawstringt:[[/[^"]/,"string"],[/"(?=""")/,"string"],[/"""/,{token:"string.quote",bracket:"@close",switchTo:"@allowMethod"}],[/"/,"string"]],whitespace:[[/[ \t\r\n]+/,"white"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]]}}})); \ No newline at end of file diff --git a/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/scheme/scheme.js b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/scheme/scheme.js new file mode 100644 index 0000000..d40f413 --- /dev/null +++ b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/scheme/scheme.js @@ -0,0 +1,7 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * monaco-languages version: 2.1.1(425b0e3c9ea2067410b8f90e0f30de383188c418) + * Released under the MIT license + * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/scheme/scheme",["require","exports"],(function(e,o){"use strict";Object.defineProperty(o,"__esModule",{value:!0}),o.language=o.conf=void 0,o.conf={comments:{lineComment:";",blockComment:["#|","|#"]},brackets:[["(",")"],["{","}"],["[","]"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'}]},o.language={defaultToken:"",ignoreCase:!0,tokenPostfix:".scheme",brackets:[{open:"(",close:")",token:"delimiter.parenthesis"},{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"}],keywords:["case","do","let","loop","if","else","when","cons","car","cdr","cond","lambda","lambda*","syntax-rules","format","set!","quote","eval","append","list","list?","member?","load"],constants:["#t","#f"],operators:["eq?","eqv?","equal?","and","or","not","null?"],tokenizer:{root:[[/#[xXoObB][0-9a-fA-F]+/,"number.hex"],[/[+-]?\d+(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?/,"number.float"],[/(?:\b(?:(define|define-syntax|define-macro))\b)(\s+)((?:\w|\-|\!|\?)*)/,["keyword","white","variable"]],{include:"@whitespace"},{include:"@strings"},[/[a-zA-Z_#][a-zA-Z0-9_\-\?\!\*]*/,{cases:{"@keywords":"keyword","@constants":"constant","@operators":"operators","@default":"identifier"}}]],comment:[[/[^\|#]+/,"comment"],[/#\|/,"comment","@push"],[/\|#/,"comment","@pop"],[/[\|#]/,"comment"]],whitespace:[[/[ \t\r\n]+/,"white"],[/#\|/,"comment","@comment"],[/;.*$/,"comment"]],strings:[[/"$/,"string","@popall"],[/"(?=.)/,"string","@multiLineString"]],multiLineString:[[/[^\\"]+$/,"string","@popall"],[/[^\\"]+/,"string"],[/\\./,"string.escape"],[/"/,"string","@popall"],[/\\$/,"string"]]}}})); \ No newline at end of file diff --git a/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/scss/scss.js b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/scss/scss.js new file mode 100644 index 0000000..c06d4d7 --- /dev/null +++ b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/scss/scss.js @@ -0,0 +1,7 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * monaco-languages version: 2.1.1(425b0e3c9ea2067410b8f90e0f30de383188c418) + * Released under the MIT license + * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/scss/scss",["require","exports"],(function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.language=t.conf=void 0,t.conf={wordPattern:/(#?-?\d*\.\d\w*%?)|([@$#!.:]?[\w-?]+%?)|[@#!.]/g,comments:{blockComment:["/*","*/"],lineComment:"//"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}",notIn:["string","comment"]},{open:"[",close:"]",notIn:["string","comment"]},{open:"(",close:")",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string","comment"]},{open:"'",close:"'",notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{markers:{start:new RegExp("^\\s*\\/\\*\\s*#region\\b\\s*(.*?)\\s*\\*\\/"),end:new RegExp("^\\s*\\/\\*\\s*#endregion\\b.*\\*\\/")}}},t.language={defaultToken:"",tokenPostfix:".scss",ws:"[ \t\n\r\f]*",identifier:"-?-?([a-zA-Z]|(\\\\(([0-9a-fA-F]{1,6}\\s?)|[^[0-9a-fA-F])))([\\w\\-]|(\\\\(([0-9a-fA-F]{1,6}\\s?)|[^[0-9a-fA-F])))*",brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.bracket"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],tokenizer:{root:[{include:"@selector"}],selector:[{include:"@comments"},{include:"@import"},{include:"@variabledeclaration"},{include:"@warndebug"},["[@](include)",{token:"keyword",next:"@includedeclaration"}],["[@](keyframes|-webkit-keyframes|-moz-keyframes|-o-keyframes)",{token:"keyword",next:"@keyframedeclaration"}],["[@](page|content|font-face|-moz-document)",{token:"keyword"}],["[@](charset|namespace)",{token:"keyword",next:"@declarationbody"}],["[@](function)",{token:"keyword",next:"@functiondeclaration"}],["[@](mixin)",{token:"keyword",next:"@mixindeclaration"}],["url(\\-prefix)?\\(",{token:"meta",next:"@urldeclaration"}],{include:"@controlstatement"},{include:"@selectorname"},["[&\\*]","tag"],["[>\\+,]","delimiter"],["\\[",{token:"delimiter.bracket",next:"@selectorattribute"}],["{",{token:"delimiter.curly",next:"@selectorbody"}]],selectorbody:[["[*_]?@identifier@ws:(?=(\\s|\\d|[^{;}]*[;}]))","attribute.name","@rulevalue"],{include:"@selector"},["[@](extend)",{token:"keyword",next:"@extendbody"}],["[@](return)",{token:"keyword",next:"@declarationbody"}],["}",{token:"delimiter.curly",next:"@pop"}]],selectorname:[["#{",{token:"meta",next:"@variableinterpolation"}],["(\\.|#(?=[^{])|%|(@identifier)|:)+","tag"]],selectorattribute:[{include:"@term"},["]",{token:"delimiter.bracket",next:"@pop"}]],term:[{include:"@comments"},["url(\\-prefix)?\\(",{token:"meta",next:"@urldeclaration"}],{include:"@functioninvocation"},{include:"@numbers"},{include:"@strings"},{include:"@variablereference"},["(and\\b|or\\b|not\\b)","operator"],{include:"@name"},["([<>=\\+\\-\\*\\/\\^\\|\\~,])","operator"],[",","delimiter"],["!default","literal"],["\\(",{token:"delimiter.parenthesis",next:"@parenthizedterm"}]],rulevalue:[{include:"@term"},["!important","literal"],[";","delimiter","@pop"],["{",{token:"delimiter.curly",switchTo:"@nestedproperty"}],["(?=})",{token:"",next:"@pop"}]],nestedproperty:[["[*_]?@identifier@ws:","attribute.name","@rulevalue"],{include:"@comments"},["}",{token:"delimiter.curly",next:"@pop"}]],warndebug:[["[@](warn|debug)",{token:"keyword",next:"@declarationbody"}]],import:[["[@](import)",{token:"keyword",next:"@declarationbody"}]],variabledeclaration:[["\\$@identifier@ws:","variable.decl","@declarationbody"]],urldeclaration:[{include:"@strings"},["[^)\r\n]+","string"],["\\)",{token:"meta",next:"@pop"}]],parenthizedterm:[{include:"@term"},["\\)",{token:"delimiter.parenthesis",next:"@pop"}]],declarationbody:[{include:"@term"},[";","delimiter","@pop"],["(?=})",{token:"",next:"@pop"}]],extendbody:[{include:"@selectorname"},["!optional","literal"],[";","delimiter","@pop"],["(?=})",{token:"",next:"@pop"}]],variablereference:[["\\$@identifier","variable.ref"],["\\.\\.\\.","operator"],["#{",{token:"meta",next:"@variableinterpolation"}]],variableinterpolation:[{include:"@variablereference"},["}",{token:"meta",next:"@pop"}]],comments:[["\\/\\*","comment","@comment"],["\\/\\/+.*","comment"]],comment:[["\\*\\/","comment","@pop"],[".","comment"]],name:[["@identifier","attribute.value"]],numbers:[["(\\d*\\.)?\\d+([eE][\\-+]?\\d+)?",{token:"number",next:"@units"}],["#[0-9a-fA-F_]+(?!\\w)","number.hex"]],units:[["(em|ex|ch|rem|vmin|vmax|vw|vh|vm|cm|mm|in|px|pt|pc|deg|grad|rad|turn|s|ms|Hz|kHz|%)?","number","@pop"]],functiondeclaration:[["@identifier@ws\\(",{token:"meta",next:"@parameterdeclaration"}],["{",{token:"delimiter.curly",switchTo:"@functionbody"}]],mixindeclaration:[["@identifier@ws\\(",{token:"meta",next:"@parameterdeclaration"}],["@identifier","meta"],["{",{token:"delimiter.curly",switchTo:"@selectorbody"}]],parameterdeclaration:[["\\$@identifier@ws:","variable.decl"],["\\.\\.\\.","operator"],[",","delimiter"],{include:"@term"},["\\)",{token:"meta",next:"@pop"}]],includedeclaration:[{include:"@functioninvocation"},["@identifier","meta"],[";","delimiter","@pop"],["(?=})",{token:"",next:"@pop"}],["{",{token:"delimiter.curly",switchTo:"@selectorbody"}]],keyframedeclaration:[["@identifier","meta"],["{",{token:"delimiter.curly",switchTo:"@keyframebody"}]],keyframebody:[{include:"@term"},["{",{token:"delimiter.curly",next:"@selectorbody"}],["}",{token:"delimiter.curly",next:"@pop"}]],controlstatement:[["[@](if|else|for|while|each|media)",{token:"keyword.flow",next:"@controlstatementdeclaration"}]],controlstatementdeclaration:[["(in|from|through|if|to)\\b",{token:"keyword.flow"}],{include:"@term"},["{",{token:"delimiter.curly",switchTo:"@selectorbody"}]],functionbody:[["[@](return)",{token:"keyword"}],{include:"@variabledeclaration"},{include:"@term"},{include:"@controlstatement"},[";","delimiter"],["}",{token:"delimiter.curly",next:"@pop"}]],functioninvocation:[["@identifier\\(",{token:"meta",next:"@functionarguments"}]],functionarguments:[["\\$@identifier@ws:","attribute.name"],["[,]","delimiter"],{include:"@term"},["\\)",{token:"meta",next:"@pop"}]],strings:[['~?"',{token:"string.delimiter",next:"@stringenddoublequote"}],["~?'",{token:"string.delimiter",next:"@stringendquote"}]],stringenddoublequote:[["\\\\.","string"],['"',{token:"string.delimiter",next:"@pop"}],[".","string"]],stringendquote:[["\\\\.","string"],["'",{token:"string.delimiter",next:"@pop"}],[".","string"]]}}})); \ No newline at end of file diff --git a/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/shell/shell.js b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/shell/shell.js new file mode 100644 index 0000000..6d13467 --- /dev/null +++ b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/shell/shell.js @@ -0,0 +1,7 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * monaco-languages version: 2.1.1(425b0e3c9ea2067410b8f90e0f30de383188c418) + * Released under the MIT license + * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/shell/shell",["require","exports"],(function(e,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.language=r.conf=void 0,r.conf={comments:{lineComment:"#"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"`",close:"`"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"`",close:"`"}]},r.language={defaultToken:"",ignoreCase:!0,tokenPostfix:".shell",brackets:[{token:"delimiter.bracket",open:"{",close:"}"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.square",open:"[",close:"]"}],keywords:["if","then","do","else","elif","while","until","for","in","esac","fi","fin","fil","done","exit","set","unset","export","function"],builtins:["ab","awk","bash","beep","cat","cc","cd","chown","chmod","chroot","clear","cp","curl","cut","diff","echo","find","gawk","gcc","get","git","grep","hg","kill","killall","ln","ls","make","mkdir","openssl","mv","nc","node","npm","ping","ps","restart","rm","rmdir","sed","service","sh","shopt","shred","source","sort","sleep","ssh","start","stop","su","sudo","svn","tee","telnet","top","touch","vi","vim","wall","wc","wget","who","write","yes","zsh"],symbols:/[=>"]],autoClosingPairs:[{open:'"',close:'"',notIn:["string","comment"]},{open:"{",close:"}",notIn:["string","comment"]},{open:"[",close:"]",notIn:["string","comment"]},{open:"(",close:")",notIn:["string","comment"]}]},e.language={defaultToken:"",tokenPostfix:".sol",brackets:[{token:"delimiter.curly",open:"{",close:"}"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.square",open:"[",close:"]"},{token:"delimiter.angle",open:"<",close:">"}],keywords:["pragma","solidity","contract","library","using","struct","function","modifier","constructor","address","string","bool","Int","Uint","Byte","Fixed","Ufixed","int","int8","int16","int24","int32","int40","int48","int56","int64","int72","int80","int88","int96","int104","int112","int120","int128","int136","int144","int152","int160","int168","int176","int184","int192","int200","int208","int216","int224","int232","int240","int248","int256","uint","uint8","uint16","uint24","uint32","uint40","uint48","uint56","uint64","uint72","uint80","uint88","uint96","uint104","uint112","uint120","uint128","uint136","uint144","uint152","uint160","uint168","uint176","uint184","uint192","uint200","uint208","uint216","uint224","uint232","uint240","uint248","uint256","byte","bytes","bytes1","bytes2","bytes3","bytes4","bytes5","bytes6","bytes7","bytes8","bytes9","bytes10","bytes11","bytes12","bytes13","bytes14","bytes15","bytes16","bytes17","bytes18","bytes19","bytes20","bytes21","bytes22","bytes23","bytes24","bytes25","bytes26","bytes27","bytes28","bytes29","bytes30","bytes31","bytes32","fixed","fixed0x8","fixed0x16","fixed0x24","fixed0x32","fixed0x40","fixed0x48","fixed0x56","fixed0x64","fixed0x72","fixed0x80","fixed0x88","fixed0x96","fixed0x104","fixed0x112","fixed0x120","fixed0x128","fixed0x136","fixed0x144","fixed0x152","fixed0x160","fixed0x168","fixed0x176","fixed0x184","fixed0x192","fixed0x200","fixed0x208","fixed0x216","fixed0x224","fixed0x232","fixed0x240","fixed0x248","fixed0x256","fixed8x8","fixed8x16","fixed8x24","fixed8x32","fixed8x40","fixed8x48","fixed8x56","fixed8x64","fixed8x72","fixed8x80","fixed8x88","fixed8x96","fixed8x104","fixed8x112","fixed8x120","fixed8x128","fixed8x136","fixed8x144","fixed8x152","fixed8x160","fixed8x168","fixed8x176","fixed8x184","fixed8x192","fixed8x200","fixed8x208","fixed8x216","fixed8x224","fixed8x232","fixed8x240","fixed8x248","fixed16x8","fixed16x16","fixed16x24","fixed16x32","fixed16x40","fixed16x48","fixed16x56","fixed16x64","fixed16x72","fixed16x80","fixed16x88","fixed16x96","fixed16x104","fixed16x112","fixed16x120","fixed16x128","fixed16x136","fixed16x144","fixed16x152","fixed16x160","fixed16x168","fixed16x176","fixed16x184","fixed16x192","fixed16x200","fixed16x208","fixed16x216","fixed16x224","fixed16x232","fixed16x240","fixed24x8","fixed24x16","fixed24x24","fixed24x32","fixed24x40","fixed24x48","fixed24x56","fixed24x64","fixed24x72","fixed24x80","fixed24x88","fixed24x96","fixed24x104","fixed24x112","fixed24x120","fixed24x128","fixed24x136","fixed24x144","fixed24x152","fixed24x160","fixed24x168","fixed24x176","fixed24x184","fixed24x192","fixed24x200","fixed24x208","fixed24x216","fixed24x224","fixed24x232","fixed32x8","fixed32x16","fixed32x24","fixed32x32","fixed32x40","fixed32x48","fixed32x56","fixed32x64","fixed32x72","fixed32x80","fixed32x88","fixed32x96","fixed32x104","fixed32x112","fixed32x120","fixed32x128","fixed32x136","fixed32x144","fixed32x152","fixed32x160","fixed32x168","fixed32x176","fixed32x184","fixed32x192","fixed32x200","fixed32x208","fixed32x216","fixed32x224","fixed40x8","fixed40x16","fixed40x24","fixed40x32","fixed40x40","fixed40x48","fixed40x56","fixed40x64","fixed40x72","fixed40x80","fixed40x88","fixed40x96","fixed40x104","fixed40x112","fixed40x120","fixed40x128","fixed40x136","fixed40x144","fixed40x152","fixed40x160","fixed40x168","fixed40x176","fixed40x184","fixed40x192","fixed40x200","fixed40x208","fixed40x216","fixed48x8","fixed48x16","fixed48x24","fixed48x32","fixed48x40","fixed48x48","fixed48x56","fixed48x64","fixed48x72","fixed48x80","fixed48x88","fixed48x96","fixed48x104","fixed48x112","fixed48x120","fixed48x128","fixed48x136","fixed48x144","fixed48x152","fixed48x160","fixed48x168","fixed48x176","fixed48x184","fixed48x192","fixed48x200","fixed48x208","fixed56x8","fixed56x16","fixed56x24","fixed56x32","fixed56x40","fixed56x48","fixed56x56","fixed56x64","fixed56x72","fixed56x80","fixed56x88","fixed56x96","fixed56x104","fixed56x112","fixed56x120","fixed56x128","fixed56x136","fixed56x144","fixed56x152","fixed56x160","fixed56x168","fixed56x176","fixed56x184","fixed56x192","fixed56x200","fixed64x8","fixed64x16","fixed64x24","fixed64x32","fixed64x40","fixed64x48","fixed64x56","fixed64x64","fixed64x72","fixed64x80","fixed64x88","fixed64x96","fixed64x104","fixed64x112","fixed64x120","fixed64x128","fixed64x136","fixed64x144","fixed64x152","fixed64x160","fixed64x168","fixed64x176","fixed64x184","fixed64x192","fixed72x8","fixed72x16","fixed72x24","fixed72x32","fixed72x40","fixed72x48","fixed72x56","fixed72x64","fixed72x72","fixed72x80","fixed72x88","fixed72x96","fixed72x104","fixed72x112","fixed72x120","fixed72x128","fixed72x136","fixed72x144","fixed72x152","fixed72x160","fixed72x168","fixed72x176","fixed72x184","fixed80x8","fixed80x16","fixed80x24","fixed80x32","fixed80x40","fixed80x48","fixed80x56","fixed80x64","fixed80x72","fixed80x80","fixed80x88","fixed80x96","fixed80x104","fixed80x112","fixed80x120","fixed80x128","fixed80x136","fixed80x144","fixed80x152","fixed80x160","fixed80x168","fixed80x176","fixed88x8","fixed88x16","fixed88x24","fixed88x32","fixed88x40","fixed88x48","fixed88x56","fixed88x64","fixed88x72","fixed88x80","fixed88x88","fixed88x96","fixed88x104","fixed88x112","fixed88x120","fixed88x128","fixed88x136","fixed88x144","fixed88x152","fixed88x160","fixed88x168","fixed96x8","fixed96x16","fixed96x24","fixed96x32","fixed96x40","fixed96x48","fixed96x56","fixed96x64","fixed96x72","fixed96x80","fixed96x88","fixed96x96","fixed96x104","fixed96x112","fixed96x120","fixed96x128","fixed96x136","fixed96x144","fixed96x152","fixed96x160","fixed104x8","fixed104x16","fixed104x24","fixed104x32","fixed104x40","fixed104x48","fixed104x56","fixed104x64","fixed104x72","fixed104x80","fixed104x88","fixed104x96","fixed104x104","fixed104x112","fixed104x120","fixed104x128","fixed104x136","fixed104x144","fixed104x152","fixed112x8","fixed112x16","fixed112x24","fixed112x32","fixed112x40","fixed112x48","fixed112x56","fixed112x64","fixed112x72","fixed112x80","fixed112x88","fixed112x96","fixed112x104","fixed112x112","fixed112x120","fixed112x128","fixed112x136","fixed112x144","fixed120x8","fixed120x16","fixed120x24","fixed120x32","fixed120x40","fixed120x48","fixed120x56","fixed120x64","fixed120x72","fixed120x80","fixed120x88","fixed120x96","fixed120x104","fixed120x112","fixed120x120","fixed120x128","fixed120x136","fixed128x8","fixed128x16","fixed128x24","fixed128x32","fixed128x40","fixed128x48","fixed128x56","fixed128x64","fixed128x72","fixed128x80","fixed128x88","fixed128x96","fixed128x104","fixed128x112","fixed128x120","fixed128x128","fixed136x8","fixed136x16","fixed136x24","fixed136x32","fixed136x40","fixed136x48","fixed136x56","fixed136x64","fixed136x72","fixed136x80","fixed136x88","fixed136x96","fixed136x104","fixed136x112","fixed136x120","fixed144x8","fixed144x16","fixed144x24","fixed144x32","fixed144x40","fixed144x48","fixed144x56","fixed144x64","fixed144x72","fixed144x80","fixed144x88","fixed144x96","fixed144x104","fixed144x112","fixed152x8","fixed152x16","fixed152x24","fixed152x32","fixed152x40","fixed152x48","fixed152x56","fixed152x64","fixed152x72","fixed152x80","fixed152x88","fixed152x96","fixed152x104","fixed160x8","fixed160x16","fixed160x24","fixed160x32","fixed160x40","fixed160x48","fixed160x56","fixed160x64","fixed160x72","fixed160x80","fixed160x88","fixed160x96","fixed168x8","fixed168x16","fixed168x24","fixed168x32","fixed168x40","fixed168x48","fixed168x56","fixed168x64","fixed168x72","fixed168x80","fixed168x88","fixed176x8","fixed176x16","fixed176x24","fixed176x32","fixed176x40","fixed176x48","fixed176x56","fixed176x64","fixed176x72","fixed176x80","fixed184x8","fixed184x16","fixed184x24","fixed184x32","fixed184x40","fixed184x48","fixed184x56","fixed184x64","fixed184x72","fixed192x8","fixed192x16","fixed192x24","fixed192x32","fixed192x40","fixed192x48","fixed192x56","fixed192x64","fixed200x8","fixed200x16","fixed200x24","fixed200x32","fixed200x40","fixed200x48","fixed200x56","fixed208x8","fixed208x16","fixed208x24","fixed208x32","fixed208x40","fixed208x48","fixed216x8","fixed216x16","fixed216x24","fixed216x32","fixed216x40","fixed224x8","fixed224x16","fixed224x24","fixed224x32","fixed232x8","fixed232x16","fixed232x24","fixed240x8","fixed240x16","fixed248x8","ufixed","ufixed0x8","ufixed0x16","ufixed0x24","ufixed0x32","ufixed0x40","ufixed0x48","ufixed0x56","ufixed0x64","ufixed0x72","ufixed0x80","ufixed0x88","ufixed0x96","ufixed0x104","ufixed0x112","ufixed0x120","ufixed0x128","ufixed0x136","ufixed0x144","ufixed0x152","ufixed0x160","ufixed0x168","ufixed0x176","ufixed0x184","ufixed0x192","ufixed0x200","ufixed0x208","ufixed0x216","ufixed0x224","ufixed0x232","ufixed0x240","ufixed0x248","ufixed0x256","ufixed8x8","ufixed8x16","ufixed8x24","ufixed8x32","ufixed8x40","ufixed8x48","ufixed8x56","ufixed8x64","ufixed8x72","ufixed8x80","ufixed8x88","ufixed8x96","ufixed8x104","ufixed8x112","ufixed8x120","ufixed8x128","ufixed8x136","ufixed8x144","ufixed8x152","ufixed8x160","ufixed8x168","ufixed8x176","ufixed8x184","ufixed8x192","ufixed8x200","ufixed8x208","ufixed8x216","ufixed8x224","ufixed8x232","ufixed8x240","ufixed8x248","ufixed16x8","ufixed16x16","ufixed16x24","ufixed16x32","ufixed16x40","ufixed16x48","ufixed16x56","ufixed16x64","ufixed16x72","ufixed16x80","ufixed16x88","ufixed16x96","ufixed16x104","ufixed16x112","ufixed16x120","ufixed16x128","ufixed16x136","ufixed16x144","ufixed16x152","ufixed16x160","ufixed16x168","ufixed16x176","ufixed16x184","ufixed16x192","ufixed16x200","ufixed16x208","ufixed16x216","ufixed16x224","ufixed16x232","ufixed16x240","ufixed24x8","ufixed24x16","ufixed24x24","ufixed24x32","ufixed24x40","ufixed24x48","ufixed24x56","ufixed24x64","ufixed24x72","ufixed24x80","ufixed24x88","ufixed24x96","ufixed24x104","ufixed24x112","ufixed24x120","ufixed24x128","ufixed24x136","ufixed24x144","ufixed24x152","ufixed24x160","ufixed24x168","ufixed24x176","ufixed24x184","ufixed24x192","ufixed24x200","ufixed24x208","ufixed24x216","ufixed24x224","ufixed24x232","ufixed32x8","ufixed32x16","ufixed32x24","ufixed32x32","ufixed32x40","ufixed32x48","ufixed32x56","ufixed32x64","ufixed32x72","ufixed32x80","ufixed32x88","ufixed32x96","ufixed32x104","ufixed32x112","ufixed32x120","ufixed32x128","ufixed32x136","ufixed32x144","ufixed32x152","ufixed32x160","ufixed32x168","ufixed32x176","ufixed32x184","ufixed32x192","ufixed32x200","ufixed32x208","ufixed32x216","ufixed32x224","ufixed40x8","ufixed40x16","ufixed40x24","ufixed40x32","ufixed40x40","ufixed40x48","ufixed40x56","ufixed40x64","ufixed40x72","ufixed40x80","ufixed40x88","ufixed40x96","ufixed40x104","ufixed40x112","ufixed40x120","ufixed40x128","ufixed40x136","ufixed40x144","ufixed40x152","ufixed40x160","ufixed40x168","ufixed40x176","ufixed40x184","ufixed40x192","ufixed40x200","ufixed40x208","ufixed40x216","ufixed48x8","ufixed48x16","ufixed48x24","ufixed48x32","ufixed48x40","ufixed48x48","ufixed48x56","ufixed48x64","ufixed48x72","ufixed48x80","ufixed48x88","ufixed48x96","ufixed48x104","ufixed48x112","ufixed48x120","ufixed48x128","ufixed48x136","ufixed48x144","ufixed48x152","ufixed48x160","ufixed48x168","ufixed48x176","ufixed48x184","ufixed48x192","ufixed48x200","ufixed48x208","ufixed56x8","ufixed56x16","ufixed56x24","ufixed56x32","ufixed56x40","ufixed56x48","ufixed56x56","ufixed56x64","ufixed56x72","ufixed56x80","ufixed56x88","ufixed56x96","ufixed56x104","ufixed56x112","ufixed56x120","ufixed56x128","ufixed56x136","ufixed56x144","ufixed56x152","ufixed56x160","ufixed56x168","ufixed56x176","ufixed56x184","ufixed56x192","ufixed56x200","ufixed64x8","ufixed64x16","ufixed64x24","ufixed64x32","ufixed64x40","ufixed64x48","ufixed64x56","ufixed64x64","ufixed64x72","ufixed64x80","ufixed64x88","ufixed64x96","ufixed64x104","ufixed64x112","ufixed64x120","ufixed64x128","ufixed64x136","ufixed64x144","ufixed64x152","ufixed64x160","ufixed64x168","ufixed64x176","ufixed64x184","ufixed64x192","ufixed72x8","ufixed72x16","ufixed72x24","ufixed72x32","ufixed72x40","ufixed72x48","ufixed72x56","ufixed72x64","ufixed72x72","ufixed72x80","ufixed72x88","ufixed72x96","ufixed72x104","ufixed72x112","ufixed72x120","ufixed72x128","ufixed72x136","ufixed72x144","ufixed72x152","ufixed72x160","ufixed72x168","ufixed72x176","ufixed72x184","ufixed80x8","ufixed80x16","ufixed80x24","ufixed80x32","ufixed80x40","ufixed80x48","ufixed80x56","ufixed80x64","ufixed80x72","ufixed80x80","ufixed80x88","ufixed80x96","ufixed80x104","ufixed80x112","ufixed80x120","ufixed80x128","ufixed80x136","ufixed80x144","ufixed80x152","ufixed80x160","ufixed80x168","ufixed80x176","ufixed88x8","ufixed88x16","ufixed88x24","ufixed88x32","ufixed88x40","ufixed88x48","ufixed88x56","ufixed88x64","ufixed88x72","ufixed88x80","ufixed88x88","ufixed88x96","ufixed88x104","ufixed88x112","ufixed88x120","ufixed88x128","ufixed88x136","ufixed88x144","ufixed88x152","ufixed88x160","ufixed88x168","ufixed96x8","ufixed96x16","ufixed96x24","ufixed96x32","ufixed96x40","ufixed96x48","ufixed96x56","ufixed96x64","ufixed96x72","ufixed96x80","ufixed96x88","ufixed96x96","ufixed96x104","ufixed96x112","ufixed96x120","ufixed96x128","ufixed96x136","ufixed96x144","ufixed96x152","ufixed96x160","ufixed104x8","ufixed104x16","ufixed104x24","ufixed104x32","ufixed104x40","ufixed104x48","ufixed104x56","ufixed104x64","ufixed104x72","ufixed104x80","ufixed104x88","ufixed104x96","ufixed104x104","ufixed104x112","ufixed104x120","ufixed104x128","ufixed104x136","ufixed104x144","ufixed104x152","ufixed112x8","ufixed112x16","ufixed112x24","ufixed112x32","ufixed112x40","ufixed112x48","ufixed112x56","ufixed112x64","ufixed112x72","ufixed112x80","ufixed112x88","ufixed112x96","ufixed112x104","ufixed112x112","ufixed112x120","ufixed112x128","ufixed112x136","ufixed112x144","ufixed120x8","ufixed120x16","ufixed120x24","ufixed120x32","ufixed120x40","ufixed120x48","ufixed120x56","ufixed120x64","ufixed120x72","ufixed120x80","ufixed120x88","ufixed120x96","ufixed120x104","ufixed120x112","ufixed120x120","ufixed120x128","ufixed120x136","ufixed128x8","ufixed128x16","ufixed128x24","ufixed128x32","ufixed128x40","ufixed128x48","ufixed128x56","ufixed128x64","ufixed128x72","ufixed128x80","ufixed128x88","ufixed128x96","ufixed128x104","ufixed128x112","ufixed128x120","ufixed128x128","ufixed136x8","ufixed136x16","ufixed136x24","ufixed136x32","ufixed136x40","ufixed136x48","ufixed136x56","ufixed136x64","ufixed136x72","ufixed136x80","ufixed136x88","ufixed136x96","ufixed136x104","ufixed136x112","ufixed136x120","ufixed144x8","ufixed144x16","ufixed144x24","ufixed144x32","ufixed144x40","ufixed144x48","ufixed144x56","ufixed144x64","ufixed144x72","ufixed144x80","ufixed144x88","ufixed144x96","ufixed144x104","ufixed144x112","ufixed152x8","ufixed152x16","ufixed152x24","ufixed152x32","ufixed152x40","ufixed152x48","ufixed152x56","ufixed152x64","ufixed152x72","ufixed152x80","ufixed152x88","ufixed152x96","ufixed152x104","ufixed160x8","ufixed160x16","ufixed160x24","ufixed160x32","ufixed160x40","ufixed160x48","ufixed160x56","ufixed160x64","ufixed160x72","ufixed160x80","ufixed160x88","ufixed160x96","ufixed168x8","ufixed168x16","ufixed168x24","ufixed168x32","ufixed168x40","ufixed168x48","ufixed168x56","ufixed168x64","ufixed168x72","ufixed168x80","ufixed168x88","ufixed176x8","ufixed176x16","ufixed176x24","ufixed176x32","ufixed176x40","ufixed176x48","ufixed176x56","ufixed176x64","ufixed176x72","ufixed176x80","ufixed184x8","ufixed184x16","ufixed184x24","ufixed184x32","ufixed184x40","ufixed184x48","ufixed184x56","ufixed184x64","ufixed184x72","ufixed192x8","ufixed192x16","ufixed192x24","ufixed192x32","ufixed192x40","ufixed192x48","ufixed192x56","ufixed192x64","ufixed200x8","ufixed200x16","ufixed200x24","ufixed200x32","ufixed200x40","ufixed200x48","ufixed200x56","ufixed208x8","ufixed208x16","ufixed208x24","ufixed208x32","ufixed208x40","ufixed208x48","ufixed216x8","ufixed216x16","ufixed216x24","ufixed216x32","ufixed216x40","ufixed224x8","ufixed224x16","ufixed224x24","ufixed224x32","ufixed232x8","ufixed232x16","ufixed232x24","ufixed240x8","ufixed240x16","ufixed248x8","event","enum","let","mapping","private","public","external","inherited","payable","true","false","var","import","constant","if","else","for","else","for","while","do","break","continue","throw","returns","return","suicide","new","is","this","super"],operators:["=",">","<","!","~","?",":","==","<=",">=","!=","&&","||","++","--","+","-","*","/","&","|","^","%","<<",">>",">>>","+=","-=","*=","/=","&=","|=","^=","%=","<<=",">>=",">>>="],symbols:/[=>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/\d*\d+[eE]([\-+]?\d+)?(@floatsuffix)/,"number.float"],[/\d*\.\d+([eE][\-+]?\d+)?(@floatsuffix)/,"number.float"],[/0[xX][0-9a-fA-F']*[0-9a-fA-F](@integersuffix)/,"number.hex"],[/0[0-7']*[0-7](@integersuffix)/,"number.octal"],[/0[bB][0-1']*[0-1](@integersuffix)/,"number.binary"],[/\d[\d']*\d(@integersuffix)/,"number"],[/\d(@integersuffix)/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string"],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@doccomment"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],doccomment:[[/[^\/*]+/,"comment.doc"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]]}}})); \ No newline at end of file diff --git a/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/sophia/sophia.js b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/sophia/sophia.js new file mode 100644 index 0000000..ffaa88a --- /dev/null +++ b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/sophia/sophia.js @@ -0,0 +1,7 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * monaco-languages version: 2.1.1(425b0e3c9ea2067410b8f90e0f30de383188c418) + * Released under the MIT license + * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/sophia/sophia",["require","exports"],(function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.language=t.conf=void 0,t.conf={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"],["<",">"]],autoClosingPairs:[{open:'"',close:'"',notIn:["string","comment"]},{open:"{",close:"}",notIn:["string","comment"]},{open:"[",close:"]",notIn:["string","comment"]},{open:"(",close:")",notIn:["string","comment"]}]},t.language={defaultToken:"",tokenPostfix:".aes",brackets:[{token:"delimiter.curly",open:"{",close:"}"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.square",open:"[",close:"]"},{token:"delimiter.angle",open:"<",close:">"}],keywords:["contract","library","entrypoint","function","stateful","state","hash","signature","tuple","list","address","string","bool","int","record","datatype","type","option","oracle","oracle_query","Call","Bits","Bytes","Oracle","String","Crypto","Address","Auth","Chain","None","Some","bits","bytes","event","let","map","private","public","true","false","var","if","else","throw"],operators:["=",">","<","!","~","?","::",":","==","<=",">=","!=","&&","||","++","--","+","-","*","/","&","|","^","%","<<",">>",">>>","+=","-=","*=","/=","&=","|=","^=","%=","<<=",">>=",">>>="],symbols:/[=>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/\d*\d+[eE]([\-+]?\d+)?(@floatsuffix)/,"number.float"],[/\d*\.\d+([eE][\-+]?\d+)?(@floatsuffix)/,"number.float"],[/0[xX][0-9a-fA-F']*[0-9a-fA-F](@integersuffix)/,"number.hex"],[/0[0-7']*[0-7](@integersuffix)/,"number.octal"],[/0[bB][0-1']*[0-1](@integersuffix)/,"number.binary"],[/\d[\d']*\d(@integersuffix)/,"number"],[/\d(@integersuffix)/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string"],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@doccomment"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],doccomment:[[/[^\/*]+/,"comment.doc"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]]}}})); \ No newline at end of file diff --git a/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/sql/sql.js b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/sql/sql.js new file mode 100644 index 0000000..c386679 --- /dev/null +++ b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/sql/sql.js @@ -0,0 +1,7 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * monaco-languages version: 2.1.1(425b0e3c9ea2067410b8f90e0f30de383188c418) + * Released under the MIT license + * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/sql/sql",["require","exports"],(function(E,T){"use strict";Object.defineProperty(T,"__esModule",{value:!0}),T.language=T.conf=void 0,T.conf={comments:{lineComment:"--",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}]},T.language={defaultToken:"",tokenPostfix:".sql",ignoreCase:!0,brackets:[{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"}],keywords:["ABORT_AFTER_WAIT","ABSENT","ABSOLUTE","ACCENT_SENSITIVITY","ACTION","ACTIVATION","ACTIVE","ADD","ADDRESS","ADMIN","AES","AES_128","AES_192","AES_256","AFFINITY","AFTER","AGGREGATE","ALGORITHM","ALL_CONSTRAINTS","ALL_ERRORMSGS","ALL_INDEXES","ALL_LEVELS","ALL_SPARSE_COLUMNS","ALLOW_CONNECTIONS","ALLOW_MULTIPLE_EVENT_LOSS","ALLOW_PAGE_LOCKS","ALLOW_ROW_LOCKS","ALLOW_SINGLE_EVENT_LOSS","ALLOW_SNAPSHOT_ISOLATION","ALLOWED","ALTER","ANONYMOUS","ANSI_DEFAULTS","ANSI_NULL_DEFAULT","ANSI_NULL_DFLT_OFF","ANSI_NULL_DFLT_ON","ANSI_NULLS","ANSI_PADDING","ANSI_WARNINGS","APPEND","APPLICATION","APPLICATION_LOG","ARITHABORT","ARITHIGNORE","AS","ASC","ASSEMBLY","ASYMMETRIC","ASYNCHRONOUS_COMMIT","AT","ATOMIC","ATTACH","ATTACH_REBUILD_LOG","AUDIT","AUDIT_GUID","AUTHENTICATION","AUTHORIZATION","AUTO","AUTO_CLEANUP","AUTO_CLOSE","AUTO_CREATE_STATISTICS","AUTO_SHRINK","AUTO_UPDATE_STATISTICS","AUTO_UPDATE_STATISTICS_ASYNC","AUTOMATED_BACKUP_PREFERENCE","AUTOMATIC","AVAILABILITY","AVAILABILITY_MODE","BACKUP","BACKUP_PRIORITY","BASE64","BATCHSIZE","BEGIN","BEGIN_DIALOG","BIGINT","BINARY","BINDING","BIT","BLOCKERS","BLOCKSIZE","BOUNDING_BOX","BREAK","BROKER","BROKER_INSTANCE","BROWSE","BUCKET_COUNT","BUFFER","BUFFERCOUNT","BULK","BULK_LOGGED","BY","CACHE","CALL","CALLED","CALLER","CAP_CPU_PERCENT","CASCADE","CASE","CATALOG","CATCH","CELLS_PER_OBJECT","CERTIFICATE","CHANGE_RETENTION","CHANGE_TRACKING","CHANGES","CHAR","CHARACTER","CHECK","CHECK_CONSTRAINTS","CHECK_EXPIRATION","CHECK_POLICY","CHECKALLOC","CHECKCATALOG","CHECKCONSTRAINTS","CHECKDB","CHECKFILEGROUP","CHECKIDENT","CHECKPOINT","CHECKTABLE","CLASSIFIER_FUNCTION","CLEANTABLE","CLEANUP","CLEAR","CLOSE","CLUSTER","CLUSTERED","CODEPAGE","COLLATE","COLLECTION","COLUMN","COLUMN_SET","COLUMNS","COLUMNSTORE","COLUMNSTORE_ARCHIVE","COMMIT","COMMITTED","COMPATIBILITY_LEVEL","COMPRESSION","COMPUTE","CONCAT","CONCAT_NULL_YIELDS_NULL","CONFIGURATION","CONNECT","CONSTRAINT","CONTAINMENT","CONTENT","CONTEXT","CONTINUE","CONTINUE_AFTER_ERROR","CONTRACT","CONTRACT_NAME","CONTROL","CONVERSATION","COOKIE","COPY_ONLY","COUNTER","CPU","CREATE","CREATE_NEW","CREATION_DISPOSITION","CREDENTIAL","CRYPTOGRAPHIC","CUBE","CURRENT","CURRENT_DATE","CURSOR","CURSOR_CLOSE_ON_COMMIT","CURSOR_DEFAULT","CYCLE","DATA","DATA_COMPRESSION","DATA_PURITY","DATABASE","DATABASE_DEFAULT","DATABASE_MIRRORING","DATABASE_SNAPSHOT","DATAFILETYPE","DATE","DATE_CORRELATION_OPTIMIZATION","DATEFIRST","DATEFORMAT","DATETIME","DATETIME2","DATETIMEOFFSET","DAY","DAYOFYEAR","DAYS","DB_CHAINING","DBCC","DBREINDEX","DDL_DATABASE_LEVEL_EVENTS","DEADLOCK_PRIORITY","DEALLOCATE","DEC","DECIMAL","DECLARE","DECRYPTION","DEFAULT","DEFAULT_DATABASE","DEFAULT_FULLTEXT_LANGUAGE","DEFAULT_LANGUAGE","DEFAULT_SCHEMA","DEFINITION","DELAY","DELAYED_DURABILITY","DELETE","DELETED","DENSITY_VECTOR","DENY","DEPENDENTS","DES","DESC","DESCRIPTION","DESX","DHCP","DIAGNOSTICS","DIALOG","DIFFERENTIAL","DIRECTORY_NAME","DISABLE","DISABLE_BROKER","DISABLED","DISK","DISTINCT","DISTRIBUTED","DOCUMENT","DOUBLE","DROP","DROP_EXISTING","DROPCLEANBUFFERS","DUMP","DURABILITY","DYNAMIC","EDITION","ELEMENTS","ELSE","EMERGENCY","EMPTY","EMPTYFILE","ENABLE","ENABLE_BROKER","ENABLED","ENCRYPTION","END","ENDPOINT","ENDPOINT_URL","ERRLVL","ERROR","ERROR_BROKER_CONVERSATIONS","ERRORFILE","ESCAPE","ESTIMATEONLY","EVENT","EVENT_RETENTION_MODE","EXEC","EXECUTABLE","EXECUTE","EXIT","EXPAND","EXPIREDATE","EXPIRY_DATE","EXPLICIT","EXTENDED_LOGICAL_CHECKS","EXTENSION","EXTERNAL","EXTERNAL_ACCESS","FAIL_OPERATION","FAILOVER","FAILOVER_MODE","FAILURE_CONDITION_LEVEL","FALSE","FAN_IN","FAST","FAST_FORWARD","FETCH","FIELDTERMINATOR","FILE","FILEGROUP","FILEGROWTH","FILELISTONLY","FILENAME","FILEPATH","FILESTREAM","FILESTREAM_ON","FILETABLE_COLLATE_FILENAME","FILETABLE_DIRECTORY","FILETABLE_FULLPATH_UNIQUE_CONSTRAINT_NAME","FILETABLE_NAMESPACE","FILETABLE_PRIMARY_KEY_CONSTRAINT_NAME","FILETABLE_STREAMID_UNIQUE_CONSTRAINT_NAME","FILLFACTOR","FILTERING","FIRE_TRIGGERS","FIRST","FIRSTROW","FLOAT","FMTONLY","FOLLOWING","FOR","FORCE","FORCE_FAILOVER_ALLOW_DATA_LOSS","FORCE_SERVICE_ALLOW_DATA_LOSS","FORCED","FORCEPLAN","FORCESCAN","FORCESEEK","FOREIGN","FORMATFILE","FORMSOF","FORWARD_ONLY","FREE","FREEPROCCACHE","FREESESSIONCACHE","FREESYSTEMCACHE","FROM","FULL","FULLSCAN","FULLTEXT","FUNCTION","GB","GEOGRAPHY_AUTO_GRID","GEOGRAPHY_GRID","GEOMETRY_AUTO_GRID","GEOMETRY_GRID","GET","GLOBAL","GO","GOTO","GOVERNOR","GRANT","GRIDS","GROUP","GROUP_MAX_REQUESTS","HADR","HASH","HASHED","HAVING","HEADERONLY","HEALTH_CHECK_TIMEOUT","HELP","HIERARCHYID","HIGH","HINT","HISTOGRAM","HOLDLOCK","HONOR_BROKER_PRIORITY","HOUR","HOURS","IDENTITY","IDENTITY_INSERT","IDENTITY_VALUE","IDENTITYCOL","IF","IGNORE_CONSTRAINTS","IGNORE_DUP_KEY","IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX","IGNORE_TRIGGERS","IMAGE","IMMEDIATE","IMPERSONATE","IMPLICIT_TRANSACTIONS","IMPORTANCE","INCLUDE","INCREMENT","INCREMENTAL","INDEX","INDEXDEFRAG","INFINITE","INFLECTIONAL","INIT","INITIATOR","INPUT","INPUTBUFFER","INSENSITIVE","INSERT","INSERTED","INSTEAD","INT","INTEGER","INTO","IO","IP","ISABOUT","ISOLATION","JOB","KB","KEEP","KEEP_CDC","KEEP_NULLS","KEEP_REPLICATION","KEEPDEFAULTS","KEEPFIXED","KEEPIDENTITY","KEEPNULLS","KERBEROS","KEY","KEY_SOURCE","KEYS","KEYSET","KILL","KILOBYTES_PER_BATCH","LABELONLY","LANGUAGE","LAST","LASTROW","LEVEL","LEVEL_1","LEVEL_2","LEVEL_3","LEVEL_4","LIFETIME","LIMIT","LINENO","LIST","LISTENER","LISTENER_IP","LISTENER_PORT","LOAD","LOADHISTORY","LOB_COMPACTION","LOCAL","LOCAL_SERVICE_NAME","LOCK_ESCALATION","LOCK_TIMEOUT","LOGIN","LOGSPACE","LOOP","LOW","MANUAL","MARK","MARK_IN_USE_FOR_REMOVAL","MASTER","MAX_CPU_PERCENT","MAX_DISPATCH_LATENCY","MAX_DOP","MAX_DURATION","MAX_EVENT_SIZE","MAX_FILES","MAX_IOPS_PER_VOLUME","MAX_MEMORY","MAX_MEMORY_PERCENT","MAX_QUEUE_READERS","MAX_ROLLOVER_FILES","MAX_SIZE","MAXDOP","MAXERRORS","MAXLENGTH","MAXRECURSION","MAXSIZE","MAXTRANSFERSIZE","MAXVALUE","MB","MEDIADESCRIPTION","MEDIANAME","MEDIAPASSWORD","MEDIUM","MEMBER","MEMORY_OPTIMIZED","MEMORY_OPTIMIZED_DATA","MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT","MEMORY_PARTITION_MODE","MERGE","MESSAGE","MESSAGE_FORWARD_SIZE","MESSAGE_FORWARDING","MICROSECOND","MILLISECOND","MIN_CPU_PERCENT","MIN_IOPS_PER_VOLUME","MIN_MEMORY_PERCENT","MINUTE","MINUTES","MINVALUE","MIRROR","MIRROR_ADDRESS","MODIFY","MONEY","MONTH","MOVE","MULTI_USER","MUST_CHANGE","NAME","NANOSECOND","NATIONAL","NATIVE_COMPILATION","NCHAR","NEGOTIATE","NESTED_TRIGGERS","NEW_ACCOUNT","NEW_BROKER","NEW_PASSWORD","NEWNAME","NEXT","NO","NO_BROWSETABLE","NO_CHECKSUM","NO_COMPRESSION","NO_EVENT_LOSS","NO_INFOMSGS","NO_TRUNCATE","NO_WAIT","NOCHECK","NOCOUNT","NOEXEC","NOEXPAND","NOFORMAT","NOINDEX","NOINIT","NOLOCK","NON","NON_TRANSACTED_ACCESS","NONCLUSTERED","NONE","NORECOMPUTE","NORECOVERY","NORESEED","NORESET","NOREWIND","NORMAL","NOSKIP","NOTIFICATION","NOTRUNCATE","NOUNLOAD","NOWAIT","NTEXT","NTLM","NUMANODE","NUMERIC","NUMERIC_ROUNDABORT","NVARCHAR","OBJECT","OF","OFF","OFFLINE","OFFSET","OFFSETS","OLD_ACCOUNT","OLD_PASSWORD","ON","ON_FAILURE","ONLINE","ONLY","OPEN","OPEN_EXISTING","OPENTRAN","OPTIMISTIC","OPTIMIZE","OPTION","ORDER","OUT","OUTPUT","OUTPUTBUFFER","OVER","OVERRIDE","OWNER","OWNERSHIP","PAD_INDEX","PAGE","PAGE_VERIFY","PAGECOUNT","PAGLOCK","PARAMETERIZATION","PARSEONLY","PARTIAL","PARTITION","PARTITIONS","PARTNER","PASSWORD","PATH","PER_CPU","PER_NODE","PERCENT","PERMISSION_SET","PERSISTED","PHYSICAL_ONLY","PLAN","POISON_MESSAGE_HANDLING","POOL","POPULATION","PORT","PRECEDING","PRECISION","PRIMARY","PRIMARY_ROLE","PRINT","PRIOR","PRIORITY","PRIORITY_LEVEL","PRIVATE","PRIVILEGES","PROC","PROCCACHE","PROCEDURE","PROCEDURE_NAME","PROCESS","PROFILE","PROPERTY","PROPERTY_DESCRIPTION","PROPERTY_INT_ID","PROPERTY_SET_GUID","PROVIDER","PROVIDER_KEY_NAME","PUBLIC","PUT","QUARTER","QUERY","QUERY_GOVERNOR_COST_LIMIT","QUEUE","QUEUE_DELAY","QUOTED_IDENTIFIER","RAISERROR","RANGE","RAW","RC2","RC4","RC4_128","READ","READ_COMMITTED_SNAPSHOT","READ_ONLY","READ_ONLY_ROUTING_LIST","READ_ONLY_ROUTING_URL","READ_WRITE","READ_WRITE_FILEGROUPS","READCOMMITTED","READCOMMITTEDLOCK","READONLY","READPAST","READTEXT","READUNCOMMITTED","READWRITE","REAL","REBUILD","RECEIVE","RECOMPILE","RECONFIGURE","RECOVERY","RECURSIVE","RECURSIVE_TRIGGERS","REFERENCES","REGENERATE","RELATED_CONVERSATION","RELATED_CONVERSATION_GROUP","RELATIVE","REMOTE","REMOTE_PROC_TRANSACTIONS","REMOTE_SERVICE_NAME","REMOVE","REORGANIZE","REPAIR_ALLOW_DATA_LOSS","REPAIR_FAST","REPAIR_REBUILD","REPEATABLE","REPEATABLEREAD","REPLICA","REPLICATION","REQUEST_MAX_CPU_TIME_SEC","REQUEST_MAX_MEMORY_GRANT_PERCENT","REQUEST_MEMORY_GRANT_TIMEOUT_SEC","REQUIRED","RESAMPLE","RESEED","RESERVE_DISK_SPACE","RESET","RESOURCE","RESTART","RESTORE","RESTRICT","RESTRICTED_USER","RESULT","RESUME","RETAINDAYS","RETENTION","RETURN","RETURNS","REVERT","REVOKE","REWIND","REWINDONLY","ROBUST","ROLE","ROLLBACK","ROLLUP","ROOT","ROUTE","ROW","ROWCOUNT","ROWGUIDCOL","ROWLOCK","ROWS","ROWS_PER_BATCH","ROWTERMINATOR","ROWVERSION","RSA_1024","RSA_2048","RSA_512","RULE","SAFE","SAFETY","SAMPLE","SAVE","SCHEDULER","SCHEMA","SCHEMA_AND_DATA","SCHEMA_ONLY","SCHEMABINDING","SCHEME","SCROLL","SCROLL_LOCKS","SEARCH","SECOND","SECONDARY","SECONDARY_ONLY","SECONDARY_ROLE","SECONDS","SECRET","SECURITY_LOG","SECURITYAUDIT","SELECT","SELECTIVE","SELF","SEND","SENT","SEQUENCE","SERIALIZABLE","SERVER","SERVICE","SERVICE_BROKER","SERVICE_NAME","SESSION","SESSION_TIMEOUT","SET","SETS","SETUSER","SHOW_STATISTICS","SHOWCONTIG","SHOWPLAN","SHOWPLAN_ALL","SHOWPLAN_TEXT","SHOWPLAN_XML","SHRINKDATABASE","SHRINKFILE","SHUTDOWN","SID","SIGNATURE","SIMPLE","SINGLE_BLOB","SINGLE_CLOB","SINGLE_NCLOB","SINGLE_USER","SINGLETON","SIZE","SKIP","SMALLDATETIME","SMALLINT","SMALLMONEY","SNAPSHOT","SORT_IN_TEMPDB","SOURCE","SPARSE","SPATIAL","SPATIAL_WINDOW_MAX_CELLS","SPECIFICATION","SPLIT","SQL","SQL_VARIANT","SQLPERF","STANDBY","START","START_DATE","STARTED","STARTUP_STATE","STAT_HEADER","STATE","STATEMENT","STATIC","STATISTICAL_SEMANTICS","STATISTICS","STATISTICS_INCREMENTAL","STATISTICS_NORECOMPUTE","STATS","STATS_STREAM","STATUS","STATUSONLY","STOP","STOP_ON_ERROR","STOPAT","STOPATMARK","STOPBEFOREMARK","STOPLIST","STOPPED","SUBJECT","SUBSCRIPTION","SUPPORTED","SUSPEND","SWITCH","SYMMETRIC","SYNCHRONOUS_COMMIT","SYNONYM","SYSNAME","SYSTEM","TABLE","TABLERESULTS","TABLESAMPLE","TABLOCK","TABLOCKX","TAKE","TAPE","TARGET","TARGET_RECOVERY_TIME","TB","TCP","TEXT","TEXTIMAGE_ON","TEXTSIZE","THEN","THESAURUS","THROW","TIES","TIME","TIMEOUT","TIMER","TIMESTAMP","TINYINT","TO","TOP","TORN_PAGE_DETECTION","TRACEOFF","TRACEON","TRACESTATUS","TRACK_CAUSALITY","TRACK_COLUMNS_UPDATED","TRAN","TRANSACTION","TRANSFER","TRANSFORM_NOISE_WORDS","TRIGGER","TRIPLE_DES","TRIPLE_DES_3KEY","TRUE","TRUNCATE","TRUNCATEONLY","TRUSTWORTHY","TRY","TSQL","TWO_DIGIT_YEAR_CUTOFF","TYPE","TYPE_WARNING","UNBOUNDED","UNCHECKED","UNCOMMITTED","UNDEFINED","UNIQUE","UNIQUEIDENTIFIER","UNKNOWN","UNLIMITED","UNLOAD","UNSAFE","UPDATE","UPDATETEXT","UPDATEUSAGE","UPDLOCK","URL","USE","USED","USER","USEROPTIONS","USING","VALID_XML","VALIDATION","VALUE","VALUES","VARBINARY","VARCHAR","VARYING","VERIFYONLY","VERSION","VIEW","VIEW_METADATA","VIEWS","VISIBILITY","WAIT_AT_LOW_PRIORITY","WAITFOR","WEEK","WEIGHT","WELL_FORMED_XML","WHEN","WHERE","WHILE","WINDOWS","WITH","WITHIN","WITHOUT","WITNESS","WORK","WORKLOAD","WRITETEXT","XACT_ABORT","XLOCK","XMAX","XMIN","XML","XMLDATA","XMLNAMESPACES","XMLSCHEMA","XQUERY","XSINIL","YEAR","YMAX","YMIN"],operators:["ALL","AND","ANY","BETWEEN","EXISTS","IN","LIKE","NOT","OR","SOME","EXCEPT","INTERSECT","UNION","APPLY","CROSS","FULL","INNER","JOIN","LEFT","OUTER","RIGHT","CONTAINS","FREETEXT","IS","NULL","PIVOT","UNPIVOT","MATCHED"],builtinFunctions:["AVG","CHECKSUM_AGG","COUNT","COUNT_BIG","GROUPING","GROUPING_ID","MAX","MIN","SUM","STDEV","STDEVP","VAR","VARP","CUME_DIST","FIRST_VALUE","LAG","LAST_VALUE","LEAD","PERCENTILE_CONT","PERCENTILE_DISC","PERCENT_RANK","COLLATE","COLLATIONPROPERTY","TERTIARY_WEIGHTS","FEDERATION_FILTERING_VALUE","CAST","CONVERT","PARSE","TRY_CAST","TRY_CONVERT","TRY_PARSE","ASYMKEY_ID","ASYMKEYPROPERTY","CERTPROPERTY","CERT_ID","CRYPT_GEN_RANDOM","DECRYPTBYASYMKEY","DECRYPTBYCERT","DECRYPTBYKEY","DECRYPTBYKEYAUTOASYMKEY","DECRYPTBYKEYAUTOCERT","DECRYPTBYPASSPHRASE","ENCRYPTBYASYMKEY","ENCRYPTBYCERT","ENCRYPTBYKEY","ENCRYPTBYPASSPHRASE","HASHBYTES","IS_OBJECTSIGNED","KEY_GUID","KEY_ID","KEY_NAME","SIGNBYASYMKEY","SIGNBYCERT","SYMKEYPROPERTY","VERIFYSIGNEDBYCERT","VERIFYSIGNEDBYASYMKEY","CURSOR_STATUS","DATALENGTH","IDENT_CURRENT","IDENT_INCR","IDENT_SEED","IDENTITY","SQL_VARIANT_PROPERTY","CURRENT_TIMESTAMP","DATEADD","DATEDIFF","DATEFROMPARTS","DATENAME","DATEPART","DATETIME2FROMPARTS","DATETIMEFROMPARTS","DATETIMEOFFSETFROMPARTS","DAY","EOMONTH","GETDATE","GETUTCDATE","ISDATE","MONTH","SMALLDATETIMEFROMPARTS","SWITCHOFFSET","SYSDATETIME","SYSDATETIMEOFFSET","SYSUTCDATETIME","TIMEFROMPARTS","TODATETIMEOFFSET","YEAR","CHOOSE","COALESCE","IIF","NULLIF","ABS","ACOS","ASIN","ATAN","ATN2","CEILING","COS","COT","DEGREES","EXP","FLOOR","LOG","LOG10","PI","POWER","RADIANS","RAND","ROUND","SIGN","SIN","SQRT","SQUARE","TAN","APP_NAME","APPLOCK_MODE","APPLOCK_TEST","ASSEMBLYPROPERTY","COL_LENGTH","COL_NAME","COLUMNPROPERTY","DATABASE_PRINCIPAL_ID","DATABASEPROPERTYEX","DB_ID","DB_NAME","FILE_ID","FILE_IDEX","FILE_NAME","FILEGROUP_ID","FILEGROUP_NAME","FILEGROUPPROPERTY","FILEPROPERTY","FULLTEXTCATALOGPROPERTY","FULLTEXTSERVICEPROPERTY","INDEX_COL","INDEXKEY_PROPERTY","INDEXPROPERTY","OBJECT_DEFINITION","OBJECT_ID","OBJECT_NAME","OBJECT_SCHEMA_NAME","OBJECTPROPERTY","OBJECTPROPERTYEX","ORIGINAL_DB_NAME","PARSENAME","SCHEMA_ID","SCHEMA_NAME","SCOPE_IDENTITY","SERVERPROPERTY","STATS_DATE","TYPE_ID","TYPE_NAME","TYPEPROPERTY","DENSE_RANK","NTILE","RANK","ROW_NUMBER","PUBLISHINGSERVERNAME","OPENDATASOURCE","OPENQUERY","OPENROWSET","OPENXML","CERTENCODED","CERTPRIVATEKEY","CURRENT_USER","HAS_DBACCESS","HAS_PERMS_BY_NAME","IS_MEMBER","IS_ROLEMEMBER","IS_SRVROLEMEMBER","LOGINPROPERTY","ORIGINAL_LOGIN","PERMISSIONS","PWDENCRYPT","PWDCOMPARE","SESSION_USER","SESSIONPROPERTY","SUSER_ID","SUSER_NAME","SUSER_SID","SUSER_SNAME","SYSTEM_USER","USER","USER_ID","USER_NAME","ASCII","CHAR","CHARINDEX","CONCAT","DIFFERENCE","FORMAT","LEFT","LEN","LOWER","LTRIM","NCHAR","PATINDEX","QUOTENAME","REPLACE","REPLICATE","REVERSE","RIGHT","RTRIM","SOUNDEX","SPACE","STR","STUFF","SUBSTRING","UNICODE","UPPER","BINARY_CHECKSUM","CHECKSUM","CONNECTIONPROPERTY","CONTEXT_INFO","CURRENT_REQUEST_ID","ERROR_LINE","ERROR_NUMBER","ERROR_MESSAGE","ERROR_PROCEDURE","ERROR_SEVERITY","ERROR_STATE","FORMATMESSAGE","GETANSINULL","GET_FILESTREAM_TRANSACTION_CONTEXT","HOST_ID","HOST_NAME","ISNULL","ISNUMERIC","MIN_ACTIVE_ROWVERSION","NEWID","NEWSEQUENTIALID","ROWCOUNT_BIG","XACT_STATE","TEXTPTR","TEXTVALID","COLUMNS_UPDATED","EVENTDATA","TRIGGER_NESTLEVEL","UPDATE","CHANGETABLE","CHANGE_TRACKING_CONTEXT","CHANGE_TRACKING_CURRENT_VERSION","CHANGE_TRACKING_IS_COLUMN_IN_MASK","CHANGE_TRACKING_MIN_VALID_VERSION","CONTAINSTABLE","FREETEXTTABLE","SEMANTICKEYPHRASETABLE","SEMANTICSIMILARITYDETAILSTABLE","SEMANTICSIMILARITYTABLE","FILETABLEROOTPATH","GETFILENAMESPACEPATH","GETPATHLOCATOR","PATHNAME","GET_TRANSMISSION_STATUS"],builtinVariables:["@@DATEFIRST","@@DBTS","@@LANGID","@@LANGUAGE","@@LOCK_TIMEOUT","@@MAX_CONNECTIONS","@@MAX_PRECISION","@@NESTLEVEL","@@OPTIONS","@@REMSERVER","@@SERVERNAME","@@SERVICENAME","@@SPID","@@TEXTSIZE","@@VERSION","@@CURSOR_ROWS","@@FETCH_STATUS","@@DATEFIRST","@@PROCID","@@ERROR","@@IDENTITY","@@ROWCOUNT","@@TRANCOUNT","@@CONNECTIONS","@@CPU_BUSY","@@IDLE","@@IO_BUSY","@@PACKET_ERRORS","@@PACK_RECEIVED","@@PACK_SENT","@@TIMETICKS","@@TOTAL_ERRORS","@@TOTAL_READ","@@TOTAL_WRITE"],pseudoColumns:["$ACTION","$IDENTITY","$ROWGUID","$PARTITION"],tokenizer:{root:[{include:"@comments"},{include:"@whitespace"},{include:"@pseudoColumns"},{include:"@numbers"},{include:"@strings"},{include:"@complexIdentifiers"},{include:"@scopes"},[/[;,.]/,"delimiter"],[/[()]/,"@brackets"],[/[\w@#$]+/,{cases:{"@keywords":"keyword","@operators":"operator","@builtinVariables":"predefined","@builtinFunctions":"predefined","@default":"identifier"}}],[/[<>=!%&+\-*/|~^]/,"operator"]],whitespace:[[/\s+/,"white"]],comments:[[/--+.*/,"comment"],[/\/\*/,{token:"comment.quote",next:"@comment"}]],comment:[[/[^*/]+/,"comment"],[/\*\//,{token:"comment.quote",next:"@pop"}],[/./,"comment"]],pseudoColumns:[[/[$][A-Za-z_][\w@#$]*/,{cases:{"@pseudoColumns":"predefined","@default":"identifier"}}]],numbers:[[/0[xX][0-9a-fA-F]*/,"number"],[/[$][+-]*\d*(\.\d*)?/,"number"],[/((\d+(\.\d*)?)|(\.\d+))([eE][\-+]?\d+)?/,"number"]],strings:[[/N'/,{token:"string",next:"@string"}],[/'/,{token:"string",next:"@string"}]],string:[[/[^']+/,"string"],[/''/,"string"],[/'/,{token:"string",next:"@pop"}]],complexIdentifiers:[[/\[/,{token:"identifier.quote",next:"@bracketedIdentifier"}],[/"/,{token:"identifier.quote",next:"@quotedIdentifier"}]],bracketedIdentifier:[[/[^\]]+/,"identifier"],[/]]/,"identifier"],[/]/,{token:"identifier.quote",next:"@pop"}]],quotedIdentifier:[[/[^"]+/,"identifier"],[/""/,"identifier"],[/"/,{token:"identifier.quote",next:"@pop"}]],scopes:[[/BEGIN\s+(DISTRIBUTED\s+)?TRAN(SACTION)?\b/i,"keyword"],[/BEGIN\s+TRY\b/i,{token:"keyword.try"}],[/END\s+TRY\b/i,{token:"keyword.try"}],[/BEGIN\s+CATCH\b/i,{token:"keyword.catch"}],[/END\s+CATCH\b/i,{token:"keyword.catch"}],[/(BEGIN|CASE)\b/i,{token:"keyword.block"}],[/END\b/i,{token:"keyword.block"}],[/WHEN\b/i,{token:"keyword.choice"}],[/THEN\b/i,{token:"keyword.choice"}]]}}})); \ No newline at end of file diff --git a/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/st/st.js b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/st/st.js new file mode 100644 index 0000000..b90dddf --- /dev/null +++ b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/st/st.js @@ -0,0 +1,7 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * monaco-languages version: 2.1.1(425b0e3c9ea2067410b8f90e0f30de383188c418) + * Released under the MIT license + * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/st/st",["require","exports"],(function(e,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.language=n.conf=void 0,n.conf={comments:{lineComment:"//",blockComment:["(*","*)"]},brackets:[["{","}"],["[","]"],["(",")"],["var","end_var"],["var_input","end_var"],["var_output","end_var"],["var_in_out","end_var"],["var_temp","end_var"],["var_global","end_var"],["var_access","end_var"],["var_external","end_var"],["type","end_type"],["struct","end_struct"],["program","end_program"],["function","end_function"],["function_block","end_function_block"],["action","end_action"],["step","end_step"],["initial_step","end_step"],["transaction","end_transaction"],["configuration","end_configuration"],["tcp","end_tcp"],["recource","end_recource"],["channel","end_channel"],["library","end_library"],["folder","end_folder"],["binaries","end_binaries"],["includes","end_includes"],["sources","end_sources"]],autoClosingPairs:[{open:"[",close:"]"},{open:"{",close:"}"},{open:"(",close:")"},{open:"/*",close:"*/"},{open:"'",close:"'",notIn:["string_sq"]},{open:'"',close:'"',notIn:["string_dq"]},{open:"var_input",close:"end_var"},{open:"var_output",close:"end_var"},{open:"var_in_out",close:"end_var"},{open:"var_temp",close:"end_var"},{open:"var_global",close:"end_var"},{open:"var_access",close:"end_var"},{open:"var_external",close:"end_var"},{open:"type",close:"end_type"},{open:"struct",close:"end_struct"},{open:"program",close:"end_program"},{open:"function",close:"end_function"},{open:"function_block",close:"end_function_block"},{open:"action",close:"end_action"},{open:"step",close:"end_step"},{open:"initial_step",close:"end_step"},{open:"transaction",close:"end_transaction"},{open:"configuration",close:"end_configuration"},{open:"tcp",close:"end_tcp"},{open:"recource",close:"end_recource"},{open:"channel",close:"end_channel"},{open:"library",close:"end_library"},{open:"folder",close:"end_folder"},{open:"binaries",close:"end_binaries"},{open:"includes",close:"end_includes"},{open:"sources",close:"end_sources"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"var",close:"end_var"},{open:"var_input",close:"end_var"},{open:"var_output",close:"end_var"},{open:"var_in_out",close:"end_var"},{open:"var_temp",close:"end_var"},{open:"var_global",close:"end_var"},{open:"var_access",close:"end_var"},{open:"var_external",close:"end_var"},{open:"type",close:"end_type"},{open:"struct",close:"end_struct"},{open:"program",close:"end_program"},{open:"function",close:"end_function"},{open:"function_block",close:"end_function_block"},{open:"action",close:"end_action"},{open:"step",close:"end_step"},{open:"initial_step",close:"end_step"},{open:"transaction",close:"end_transaction"},{open:"configuration",close:"end_configuration"},{open:"tcp",close:"end_tcp"},{open:"recource",close:"end_recource"},{open:"channel",close:"end_channel"},{open:"library",close:"end_library"},{open:"folder",close:"end_folder"},{open:"binaries",close:"end_binaries"},{open:"includes",close:"end_includes"},{open:"sources",close:"end_sources"}],folding:{markers:{start:new RegExp("^\\s*#pragma\\s+region\\b"),end:new RegExp("^\\s*#pragma\\s+endregion\\b")}}},n.language={defaultToken:"",tokenPostfix:".st",ignoreCase:!0,brackets:[{token:"delimiter.curly",open:"{",close:"}"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.square",open:"[",close:"]"}],keywords:["if","end_if","elsif","else","case","of","to","__try","__catch","__finally","do","with","by","while","repeat","end_while","end_repeat","end_case","for","end_for","task","retain","non_retain","constant","with","at","exit","return","interval","priority","address","port","on_channel","then","iec","file","uses","version","packagetype","displayname","copyright","summary","vendor","common_source","from","extends"],constant:["false","true","null"],defineKeywords:["var","var_input","var_output","var_in_out","var_temp","var_global","var_access","var_external","end_var","type","end_type","struct","end_struct","program","end_program","function","end_function","function_block","end_function_block","interface","end_interface","method","end_method","property","end_property","namespace","end_namespace","configuration","end_configuration","tcp","end_tcp","resource","end_resource","channel","end_channel","library","end_library","folder","end_folder","binaries","end_binaries","includes","end_includes","sources","end_sources","action","end_action","step","initial_step","end_step","transaction","end_transaction"],typeKeywords:["int","sint","dint","lint","usint","uint","udint","ulint","real","lreal","time","date","time_of_day","date_and_time","string","bool","byte","word","dword","array","pointer","lword"],operators:["=",">","<",":",":=","<=",">=","<>","&","+","-","*","**","MOD","^","or","and","not","xor","abs","acos","asin","atan","cos","exp","expt","ln","log","sin","sqrt","tan","sel","max","min","limit","mux","shl","shr","rol","ror","indexof","sizeof","adr","adrinst","bitadr","is_valid","ref","ref_to"],builtinVariables:[],builtinFunctions:["sr","rs","tp","ton","tof","eq","ge","le","lt","ne","round","trunc","ctd","сtu","ctud","r_trig","f_trig","move","concat","delete","find","insert","left","len","replace","right","rtc"],symbols:/[=>`?!+*\\\/]/,operatorstart:/[\/=\-+!*%<>&|^~?\u00A1-\u00A7\u00A9\u00AB\u00AC\u00AE\u00B0-\u00B1\u00B6\u00BB\u00BF\u00D7\u00F7\u2016-\u2017\u2020-\u2027\u2030-\u203E\u2041-\u2053\u2055-\u205E\u2190-\u23FF\u2500-\u2775\u2794-\u2BFF\u2E00-\u2E7F\u3001-\u3003\u3008-\u3030]/,operatorend:/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE00-\uFE0F\uFE20-\uFE2F\uE0100-\uE01EF]/,operators:/(@operatorstart)((@operatorstart)|(@operatorend))*/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[{include:"@whitespace"},{include:"@comment"},{include:"@attribute"},{include:"@literal"},{include:"@keyword"},{include:"@invokedmethod"},{include:"@symbol"}],whitespace:[[/\s+/,"white"],[/"""/,"string.quote","@endDblDocString"]],endDblDocString:[[/[^"]+/,"string"],[/\\"/,"string"],[/"""/,"string.quote","@popall"],[/"/,"string"]],symbol:[[/[{}()\[\]]/,"@brackets"],[/[<>](?!@symbols)/,"@brackets"],[/[.]/,"delimiter"],[/@operators/,"operator"],[/@symbols/,"operator"]],comment:[[/\/\/\/.*$/,"comment.doc"],[/\/\*\*/,"comment.doc","@commentdocbody"],[/\/\/.*$/,"comment"],[/\/\*/,"comment","@commentbody"]],commentdocbody:[[/\/\*/,"comment","@commentbody"],[/\*\//,"comment.doc","@pop"],[/\:[a-zA-Z]+\:/,"comment.doc.param"],[/./,"comment.doc"]],commentbody:[[/\/\*/,"comment","@commentbody"],[/\*\//,"comment","@pop"],[/./,"comment"]],attribute:[[/\@@identifier/,{cases:{"@attributes":"keyword.control","@default":""}}]],literal:[[/"/,{token:"string.quote",next:"@stringlit"}],[/0[b]([01]_?)+/,"number.binary"],[/0[o]([0-7]_?)+/,"number.octal"],[/0[x]([0-9a-fA-F]_?)+([pP][\-+](\d_?)+)?/,"number.hex"],[/(\d_?)*\.(\d_?)+([eE][\-+]?(\d_?)+)?/,"number.float"],[/(\d_?)+/,"number"]],stringlit:[[/\\\(/,{token:"operator",next:"@interpolatedexpression"}],[/@escapes/,"string"],[/\\./,"string.escape.invalid"],[/"/,{token:"string.quote",next:"@pop"}],[/./,"string"]],interpolatedexpression:[[/\(/,{token:"operator",next:"@interpolatedexpression"}],[/\)/,{token:"operator",next:"@pop"}],{include:"@literal"},{include:"@keyword"},{include:"@symbol"}],keyword:[[/`/,{token:"operator",next:"@escapedkeyword"}],[/@identifier/,{cases:{"@keywords":"keyword","[A-Z][a-zA-Z0-9$]*":"type.identifier","@default":"identifier"}}]],escapedkeyword:[[/`/,{token:"operator",next:"@pop"}],[/./,"identifier"]],invokedmethod:[[/([.])(@identifier)/,{cases:{$2:["delimeter","type.identifier"],"@default":""}}]]}}})); \ No newline at end of file diff --git a/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/systemverilog/systemverilog.js b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/systemverilog/systemverilog.js new file mode 100644 index 0000000..f2e11d7 --- /dev/null +++ b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/systemverilog/systemverilog.js @@ -0,0 +1,7 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * monaco-languages version: 2.1.1(425b0e3c9ea2067410b8f90e0f30de383188c418) + * Released under the MIT license + * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/systemverilog/systemverilog",["require","exports"],(function(e,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.language=n.conf=void 0,n.conf={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"],["begin","end"],["case","endcase"],["casex","endcase"],["casez","endcase"],["checker","endchecker"],["class","endclass"],["clocking","endclocking"],["config","endconfig"],["function","endfunction"],["generate","endgenerate"],["group","endgroup"],["interface","endinterface"],["module","endmodule"],["package","endpackage"],["primitive","endprimitive"],["program","endprogram"],["property","endproperty"],["specify","endspecify"],["sequence","endsequence"],["table","endtable"],["task","endtask"]],autoClosingPairs:[{open:"[",close:"]"},{open:"{",close:"}"},{open:"(",close:")"},{open:"'",close:"'",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{offSide:!1,markers:{start:new RegExp("^(?:\\s*|.*(?!\\/[\\/\\*])[^\\w])(?:begin|case(x|z)?|class|clocking|config|covergroup|function|generate|interface|module|package|primitive|property|program|sequence|specify|table|task)\\b"),end:new RegExp("^(?:\\s*|.*(?!\\/[\\/\\*])[^\\w])(?:end|endcase|endclass|endclocking|endconfig|endgroup|endfunction|endgenerate|endinterface|endmodule|endpackage|endprimitive|endproperty|endprogram|endsequence|endspecify|endtable|endtask)\\b")}}},n.language={defaultToken:"",tokenPostfix:".sv",brackets:[{token:"delimiter.curly",open:"{",close:"}"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.square",open:"[",close:"]"},{token:"delimiter.angle",open:"<",close:">"}],keywords:["accept_on","alias","always","always_comb","always_ff","always_latch","and","assert","assign","assume","automatic","before","begin","bind","bins","binsof","bit","break","buf","bufif0","bufif1","byte","case","casex","casez","cell","chandle","checker","class","clocking","cmos","config","const","constraint","context","continue","cover","covergroup","coverpoint","cross","deassign","default","defparam","design","disable","dist","do","edge","else","end","endcase","endchecker","endclass","endclocking","endconfig","endfunction","endgenerate","endgroup","endinterface","endmodule","endpackage","endprimitive","endprogram","endproperty","endspecify","endsequence","endtable","endtask","enum","event","eventually","expect","export","extends","extern","final","first_match","for","force","foreach","forever","fork","forkjoin","function","generate","genvar","global","highz0","highz1","if","iff","ifnone","ignore_bins","illegal_bins","implements","implies","import","incdir","include","initial","inout","input","inside","instance","int","integer","interconnect","interface","intersect","join","join_any","join_none","large","let","liblist","library","local","localparam","logic","longint","macromodule","matches","medium","modport","module","nand","negedge","nettype","new","nexttime","nmos","nor","noshowcancelled","not","notif0","notif1","null","or","output","package","packed","parameter","pmos","posedge","primitive","priority","program","property","protected","pull0","pull1","pulldown","pullup","pulsestyle_ondetect","pulsestyle_onevent","pure","rand","randc","randcase","randsequence","rcmos","real","realtime","ref","reg","reject_on","release","repeat","restrict","return","rnmos","rpmos","rtran","rtranif0","rtranif1","s_always","s_eventually","s_nexttime","s_until","s_until_with","scalared","sequence","shortint","shortreal","showcancelled","signed","small","soft","solve","specify","specparam","static","string","strong","strong0","strong1","struct","super","supply0","supply1","sync_accept_on","sync_reject_on","table","tagged","task","this","throughout","time","timeprecision","timeunit","tran","tranif0","tranif1","tri","tri0","tri1","triand","trior","trireg","type","typedef","union","unique","unique0","unsigned","until","until_with","untyped","use","uwire","var","vectored","virtual","void","wait","wait_order","wand","weak","weak0","weak1","while","wildcard","wire","with","within","wor","xnor","xor"],builtin_gates:["and","nand","nor","or","xor","xnor","buf","not","bufif0","bufif1","notif1","notif0","cmos","nmos","pmos","rcmos","rnmos","rpmos","tran","tranif1","tranif0","rtran","rtranif1","rtranif0"],operators:["=","+=","-=","*=","/=","%=","&=","|=","^=","<<=",">>+","<<<=",">>>=","?",":","+","-","!","~","&","~&","|","~|","^","~^","^~","+","-","*","/","%","==","!=","===","!==","==?","!=?","&&","||","**","<","<=",">",">=","&","|","^",">>","<<",">>>","<<<","++","--","->","<->","inside","dist","::","+:","-:","*>","&&&","|->","|=>","#=#"],symbols:/[=>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],{include:"@numbers"},[/[;,.]/,"delimiter"],{include:"@strings"}],identifier_or_keyword:[[/@identifier/,{cases:{"@keywords":{token:"keyword.$0"},"@default":"identifier"}}]],numbers:[[/\d+?[\d_]*(?:\.[\d_]+)?[eE][\-+]?\d+/,"number.float"],[/\d+?[\d_]*\.[\d_]+(?:\s*@timeunits)?/,"number.float"],[/(?:\d+?[\d_]*\s*)?'[sS]?[dD]\s*[0-9xXzZ?]+?[0-9xXzZ?_]*/,"number"],[/(?:\d+?[\d_]*\s*)?'[sS]?[bB]\s*[0-1xXzZ?]+?[0-1xXzZ?_]*/,"number.binary"],[/(?:\d+?[\d_]*\s*)?'[sS]?[oO]\s*[0-7xXzZ?]+?[0-7xXzZ?_]*/,"number.octal"],[/(?:\d+?[\d_]*\s*)?'[sS]?[hH]\s*[0-9a-fA-FxXzZ?]+?[0-9a-fA-FxXzZ?_]*/,"number.hex"],[/1step/,"number"],[/[\dxXzZ]+?[\dxXzZ_]*(?:\s*@timeunits)?/,"number"],[/'[01xXzZ]+/,"number"]],module_instance:[{include:"@whitespace"},[/(#?)(\()/,["",{token:"@brackets",next:"@port_connection"}]],[/@identifier\s*[;={}\[\],]/,{token:"@rematch",next:"@pop"}],[/@symbols|[;={}\[\],]/,{token:"@rematch",next:"@pop"}],[/@identifier/,"type"],[/;/,"delimiter","@pop"]],port_connection:[{include:"@identifier_or_keyword"},{include:"@whitespace"},[/@systemcall/,"variable.predefined"],{include:"@numbers"},{include:"@strings"},[/[,]/,"delimiter"],[/\(/,"@brackets","@port_connection"],[/\)/,"@brackets","@pop"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],strings:[[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],include:[[/(\s*)(")([\w*\/*]*)(.\w*)(")/,["","string.include.identifier","string.include.identifier","string.include.identifier",{token:"string.include.identifier",next:"@pop"}]],[/(\s*)(<)([\w*\/*]*)(.\w*)(>)/,["","string.include.identifier","string.include.identifier","string.include.identifier",{token:"string.include.identifier",next:"@pop"}]]]}}})); \ No newline at end of file diff --git a/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/tcl/tcl.js b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/tcl/tcl.js new file mode 100644 index 0000000..5f8322f --- /dev/null +++ b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/tcl/tcl.js @@ -0,0 +1,7 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * monaco-languages version: 2.1.1(425b0e3c9ea2067410b8f90e0f30de383188c418) + * Released under the MIT license + * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/tcl/tcl",["require","exports"],(function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.language=t.conf=void 0,t.conf={brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}]},t.language={tokenPostfix:".tcl",specialFunctions:["set","unset","rename","variable","proc","coroutine","foreach","incr","append","lappend","linsert","lreplace"],mainFunctions:["if","then","elseif","else","case","switch","while","for","break","continue","return","package","namespace","catch","exit","eval","expr","uplevel","upvar"],builtinFunctions:["file","info","concat","join","lindex","list","llength","lrange","lsearch","lsort","split","array","parray","binary","format","regexp","regsub","scan","string","subst","dict","cd","clock","exec","glob","pid","pwd","close","eof","fblocked","fconfigure","fcopy","fileevent","flush","gets","open","puts","read","seek","socket","tell","interp","after","auto_execok","auto_load","auto_mkindex","auto_reset","bgerror","error","global","history","load","source","time","trace","unknown","unset","update","vwait","winfo","wm","bind","event","pack","place","grid","font","bell","clipboard","destroy","focus","grab","lower","option","raise","selection","send","tk","tkwait","tk_bisque","tk_focusNext","tk_focusPrev","tk_focusFollowsMouse","tk_popup","tk_setPalette"],symbols:/[=>\/\s]+)/g,comments:{blockComment:["{#","#}"]},brackets:[["{#","#}"],["{%","%}"],["{{","}}"],["(",")"],["[","]"],["\x3c!--","--\x3e"],["<",">"]],autoClosingPairs:[{open:"{# ",close:" #}"},{open:"{% ",close:" %}"},{open:"{{ ",close:" }}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:'"',close:'"'},{open:"'",close:"'"},{open:"<",close:">"}]},e.language={defaultToken:"",tokenPostfix:"",ignoreCase:!0,keywords:["apply","autoescape","block","deprecated","do","embed","extends","flush","for","from","if","import","include","macro","sandbox","set","use","verbatim","with","endapply","endautoescape","endblock","endembed","endfor","endif","endmacro","endsandbox","endset","endwith","true","false"],tokenizer:{root:[[/\s+/],[/{#/,"comment.twig","@commentState"],[/{%[-~]?/,"delimiter.twig","@blockState"],[/{{[-~]?/,"delimiter.twig","@variableState"],[/)/,["delimiter.html","tag.html","","delimiter.html"]],[/(<)(script)/,["delimiter.html",{token:"tag.html",next:"@script"}]],[/(<)(style)/,["delimiter.html",{token:"tag.html",next:"@style"}]],[/(<)((?:[\w\-]+:)?[\w\-]+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[/(<\/)((?:[\w\-]+:)?[\w\-]+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[/|>=|<=/,"operators.twig"],[/(starts with|ends with|matches)(\s+)/,["operators.twig",""]],[/(in)(\s+)/,["operators.twig",""]],[/(is)(\s+)/,["operators.twig",""]],[/\||~|:|\.{1,2}|\?{1,2}/,"operators.twig"],[/[^\W\d][\w]*/,{cases:{"@keywords":"keyword.twig","@default":"variable.twig"}}],[/\d+(\.\d+)?/,"number.twig"],[/\(|\)|\[|\]|{|}|,/,"delimiter.twig"],[/"([^#"\\]*(?:\\.[^#"\\]*)*)"|\'([^\'\\]*(?:\\.[^\'\\]*)*)\'/,"string.twig"],[/"/,"string.twig","@stringState"],[/=>/,"operators.twig"],[/=/,"operators.twig"]],doctype:[[/[^>]+/,"metatag.content.html"],[/>/,"metatag.html","@pop"]],comment:[[/-->/,"comment.html","@pop"],[/[^-]+/,"comment.content.html"],[/./,"comment.content.html"]],otherTag:[[/\/?>/,"delimiter.html","@pop"],[/"([^"]*)"/,"attribute.value.html"],[/'([^']*)'/,"attribute.value.html"],[/[\w\-]+/,"attribute.name.html"],[/=/,"delimiter.html"],[/[ \t\r\n]+/]],script:[[/type/,"attribute.name.html","@scriptAfterType"],[/"([^"]*)"/,"attribute.value.html"],[/'([^']*)'/,"attribute.value.html"],[/[\w\-]+/,"attribute.name.html"],[/=/,"delimiter.html"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/(<\/)(script\s*)(>)/,["delimiter.html","tag.html",{token:"delimiter.html",next:"@pop"}]]],scriptAfterType:[[/=/,"delimiter.html","@scriptAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptAfterTypeEquals:[[/"([^"]*)"/,{token:"attribute.value.html",switchTo:"@scriptWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value.html",switchTo:"@scriptWithCustomType.$1"}],[/>/,{token:"delimiter.html",next:"@scriptEmbedded",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptWithCustomType:[[/>/,{token:"delimiter.html",next:"@scriptEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value.html"],[/'([^']*)'/,"attribute.value.html"],[/[\w\-]+/,"attribute.name.html"],[/=/,"delimiter.html"],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptEmbedded:[[/<\/script/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}],[/[^<]+/,""]],style:[[/type/,"attribute.name.html","@styleAfterType"],[/"([^"]*)"/,"attribute.value.html"],[/'([^']*)'/,"attribute.value.html"],[/[\w\-]+/,"attribute.name.html"],[/=/,"delimiter.html"],[/>/,{token:"delimiter.html",next:"@styleEmbedded",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/(<\/)(style\s*)(>)/,["delimiter.html","tag.html",{token:"delimiter.html",next:"@pop"}]]],styleAfterType:[[/=/,"delimiter.html","@styleAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@styleEmbedded",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleAfterTypeEquals:[[/"([^"]*)"/,{token:"attribute.value.html",switchTo:"@styleWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value.html",switchTo:"@styleWithCustomType.$1"}],[/>/,{token:"delimiter.html",next:"@styleEmbedded",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleWithCustomType:[[/>/,{token:"delimiter.html",next:"@styleEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value.html"],[/'([^']*)'/,"attribute.value.html"],[/[\w\-]+/,"attribute.name.html"],[/=/,"delimiter.html"],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleEmbedded:[[/<\/style/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}],[/[^<]+/,""]]}}})); \ No newline at end of file diff --git a/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/typescript/typescript.js b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/typescript/typescript.js new file mode 100644 index 0000000..5104e74 --- /dev/null +++ b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/typescript/typescript.js @@ -0,0 +1,7 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * monaco-languages version: 2.1.1(425b0e3c9ea2067410b8f90e0f30de383188c418) + * Released under the MIT license + * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/typescript/typescript",["require","exports","../fillers/monaco-editor-core"],(function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.language=t.conf=void 0,t.conf={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],onEnterRules:[{beforeText:/^\s*\/\*\*(?!\/)([^\*]|\*(?!\/))*$/,afterText:/^\s*\*\/$/,action:{indentAction:n.languages.IndentAction.IndentOutdent,appendText:" * "}},{beforeText:/^\s*\/\*\*(?!\/)([^\*]|\*(?!\/))*$/,action:{indentAction:n.languages.IndentAction.None,appendText:" * "}},{beforeText:/^(\t|(\ \ ))*\ \*(\ ([^\*]|\*(?!\/))*)?$/,action:{indentAction:n.languages.IndentAction.None,appendText:"* "}},{beforeText:/^(\t|(\ \ ))*\ \*\/\s*$/,action:{indentAction:n.languages.IndentAction.None,removeText:1}}],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string","comment"]},{open:"`",close:"`",notIn:["string","comment"]},{open:"/**",close:" */",notIn:["string"]}],folding:{markers:{start:new RegExp("^\\s*//\\s*#?region\\b"),end:new RegExp("^\\s*//\\s*#?endregion\\b")}}},t.language={defaultToken:"invalid",tokenPostfix:".ts",keywords:["abstract","any","as","asserts","bigint","boolean","break","case","catch","class","continue","const","constructor","debugger","declare","default","delete","do","else","enum","export","extends","false","finally","for","from","function","get","if","implements","import","in","infer","instanceof","interface","is","keyof","let","module","namespace","never","new","null","number","object","package","private","protected","public","readonly","require","global","return","set","static","string","super","switch","symbol","this","throw","true","try","type","typeof","undefined","unique","unknown","var","void","while","with","yield","async","await","of"],operators:["<=",">=","==","!=","===","!==","=>","+","-","**","*","/","%","++","--","<<",">",">>>","&","|","^","!","~","&&","||","??","?",":","=","+=","-=","*=","**=","/=","%=","<<=",">>=",">>>=","&=","|=","^=","@"],symbols:/[=>](?!@symbols)/,"@brackets"],[/!(?=([^=]|$))/,"delimiter"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/(@digits)[eE]([\-+]?(@digits))?/,"number.float"],[/(@digits)\.(@digits)([eE][\-+]?(@digits))?/,"number.float"],[/0[xX](@hexdigits)n?/,"number.hex"],[/0[oO]?(@octaldigits)n?/,"number.octal"],[/0[bB](@binarydigits)n?/,"number.binary"],[/(@digits)n?/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string_double"],[/'/,"string","@string_single"],[/`/,"string","@string_backtick"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@jsdoc"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],jsdoc:[[/[^\/*]+/,"comment.doc"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],regexp:[[/(\{)(\d+(?:,\d*)?)(\})/,["regexp.escape.control","regexp.escape.control","regexp.escape.control"]],[/(\[)(\^?)(?=(?:[^\]\\\/]|\\.)+)/,["regexp.escape.control",{token:"regexp.escape.control",next:"@regexrange"}]],[/(\()(\?:|\?=|\?!)/,["regexp.escape.control","regexp.escape.control"]],[/[()]/,"regexp.escape.control"],[/@regexpctl/,"regexp.escape.control"],[/[^\\\/]/,"regexp"],[/@regexpesc/,"regexp.escape"],[/\\\./,"regexp.invalid"],[/(\/)([gimsuy]*)/,[{token:"regexp",bracket:"@close",next:"@pop"},"keyword.other"]]],regexrange:[[/-/,"regexp.escape.control"],[/\^/,"regexp.invalid"],[/@regexpesc/,"regexp.escape"],[/[^\]]/,"regexp"],[/\]/,{token:"regexp.escape.control",next:"@pop",bracket:"@close"}]],string_double:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],string_single:[[/[^\\']+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/'/,"string","@pop"]],string_backtick:[[/\$\{/,{token:"delimiter.bracket",next:"@bracketCounting"}],[/[^\\`$]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/`/,"string","@pop"]],bracketCounting:[[/\{/,"delimiter.bracket","@bracketCounting"],[/\}/,"delimiter.bracket","@pop"],{include:"common"}]}}})); \ No newline at end of file diff --git a/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/vb/vb.js b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/vb/vb.js new file mode 100644 index 0000000..25363d6 --- /dev/null +++ b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/basic-languages/vb/vb.js @@ -0,0 +1,7 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * monaco-languages version: 2.1.1(425b0e3c9ea2067410b8f90e0f30de383188c418) + * Released under the MIT license + * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/vb/vb",["require","exports"],(function(e,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.language=n.conf=void 0,n.conf={comments:{lineComment:"'",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"],["<",">"],["addhandler","end addhandler"],["class","end class"],["enum","end enum"],["event","end event"],["function","end function"],["get","end get"],["if","end if"],["interface","end interface"],["module","end module"],["namespace","end namespace"],["operator","end operator"],["property","end property"],["raiseevent","end raiseevent"],["removehandler","end removehandler"],["select","end select"],["set","end set"],["structure","end structure"],["sub","end sub"],["synclock","end synclock"],["try","end try"],["while","end while"],["with","end with"],["using","end using"],["do","loop"],["for","next"]],autoClosingPairs:[{open:"{",close:"}",notIn:["string","comment"]},{open:"[",close:"]",notIn:["string","comment"]},{open:"(",close:")",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string","comment"]},{open:"<",close:">",notIn:["string","comment"]}],folding:{markers:{start:new RegExp("^\\s*#Region\\b"),end:new RegExp("^\\s*#End Region\\b")}}},n.language={defaultToken:"",tokenPostfix:".vb",ignoreCase:!0,brackets:[{token:"delimiter.bracket",open:"{",close:"}"},{token:"delimiter.array",open:"[",close:"]"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.angle",open:"<",close:">"},{token:"keyword.tag-addhandler",open:"addhandler",close:"end addhandler"},{token:"keyword.tag-class",open:"class",close:"end class"},{token:"keyword.tag-enum",open:"enum",close:"end enum"},{token:"keyword.tag-event",open:"event",close:"end event"},{token:"keyword.tag-function",open:"function",close:"end function"},{token:"keyword.tag-get",open:"get",close:"end get"},{token:"keyword.tag-if",open:"if",close:"end if"},{token:"keyword.tag-interface",open:"interface",close:"end interface"},{token:"keyword.tag-module",open:"module",close:"end module"},{token:"keyword.tag-namespace",open:"namespace",close:"end namespace"},{token:"keyword.tag-operator",open:"operator",close:"end operator"},{token:"keyword.tag-property",open:"property",close:"end property"},{token:"keyword.tag-raiseevent",open:"raiseevent",close:"end raiseevent"},{token:"keyword.tag-removehandler",open:"removehandler",close:"end removehandler"},{token:"keyword.tag-select",open:"select",close:"end select"},{token:"keyword.tag-set",open:"set",close:"end set"},{token:"keyword.tag-structure",open:"structure",close:"end structure"},{token:"keyword.tag-sub",open:"sub",close:"end sub"},{token:"keyword.tag-synclock",open:"synclock",close:"end synclock"},{token:"keyword.tag-try",open:"try",close:"end try"},{token:"keyword.tag-while",open:"while",close:"end while"},{token:"keyword.tag-with",open:"with",close:"end with"},{token:"keyword.tag-using",open:"using",close:"end using"},{token:"keyword.tag-do",open:"do",close:"loop"},{token:"keyword.tag-for",open:"for",close:"next"}],keywords:["AddHandler","AddressOf","Alias","And","AndAlso","As","Async","Boolean","ByRef","Byte","ByVal","Call","Case","Catch","CBool","CByte","CChar","CDate","CDbl","CDec","Char","CInt","Class","CLng","CObj","Const","Continue","CSByte","CShort","CSng","CStr","CType","CUInt","CULng","CUShort","Date","Decimal","Declare","Default","Delegate","Dim","DirectCast","Do","Double","Each","Else","ElseIf","End","EndIf","Enum","Erase","Error","Event","Exit","False","Finally","For","Friend","Function","Get","GetType","GetXMLNamespace","Global","GoSub","GoTo","Handles","If","Implements","Imports","In","Inherits","Integer","Interface","Is","IsNot","Let","Lib","Like","Long","Loop","Me","Mod","Module","MustInherit","MustOverride","MyBase","MyClass","NameOf","Namespace","Narrowing","New","Next","Not","Nothing","NotInheritable","NotOverridable","Object","Of","On","Operator","Option","Optional","Or","OrElse","Out","Overloads","Overridable","Overrides","ParamArray","Partial","Private","Property","Protected","Public","RaiseEvent","ReadOnly","ReDim","RemoveHandler","Resume","Return","SByte","Select","Set","Shadows","Shared","Short","Single","Static","Step","Stop","String","Structure","Sub","SyncLock","Then","Throw","To","True","Try","TryCast","TypeOf","UInteger","ULong","UShort","Using","Variant","Wend","When","While","Widening","With","WithEvents","WriteOnly","Xor"],tagwords:["If","Sub","Select","Try","Class","Enum","Function","Get","Interface","Module","Namespace","Operator","Set","Structure","Using","While","With","Do","Loop","For","Next","Property","Continue","AddHandler","RemoveHandler","Event","RaiseEvent","SyncLock"],symbols:/[=>"]],autoClosingPairs:[{open:"<",close:">"},{open:"'",close:"'"},{open:'"',close:'"'}],surroundingPairs:[{open:"<",close:">"},{open:"'",close:"'"},{open:'"',close:'"'}]},t.language={defaultToken:"",tokenPostfix:".xml",ignoreCase:!0,qualifiedName:/(?:[\w\.\-]+:)?[\w\.\-]+/,tokenizer:{root:[[/[^<&]+/,""],{include:"@whitespace"},[/(<)(@qualifiedName)/,[{token:"delimiter"},{token:"tag",next:"@tag"}]],[/(<\/)(@qualifiedName)(\s*)(>)/,[{token:"delimiter"},{token:"tag"},"",{token:"delimiter"}]],[/(<\?)(@qualifiedName)/,[{token:"delimiter"},{token:"metatag",next:"@tag"}]],[/(<\!)(@qualifiedName)/,[{token:"delimiter"},{token:"metatag",next:"@tag"}]],[/<\!\[CDATA\[/,{token:"delimiter.cdata",next:"@cdata"}],[/&\w+;/,"string.escape"]],cdata:[[/[^\]]+/,""],[/\]\]>/,{token:"delimiter.cdata",next:"@pop"}],[/\]/,""]],tag:[[/[ \t\r\n]+/,""],[/(@qualifiedName)(\s*=\s*)("[^"]*"|'[^']*')/,["attribute.name","","attribute.value"]],[/(@qualifiedName)(\s*=\s*)("[^">?\/]*|'[^'>?\/]*)(?=[\?\/]\>)/,["attribute.name","","attribute.value"]],[/(@qualifiedName)(\s*=\s*)("[^">]*|'[^'>]*)/,["attribute.name","","attribute.value"]],[/@qualifiedName/,"attribute.name"],[/\?>/,{token:"delimiter",next:"@pop"}],[/(\/)(>)/,[{token:"tag"},{token:"delimiter",next:"@pop"}]],[/>/,{token:"delimiter",next:"@pop"}]],whitespace:[[/[ \t\r\n]+/,""],[//,{token:"comment",next:"@pop"}],[//)("closed",/<(tag)[\s\S]+?<\/\1>/)("closing",/])*?>/)(/tag/g,g._tag)(),g.paragraph=s(g.paragraph)("hr",g.hr)("heading",g.heading)("lheading",g.lheading)("blockquote",g.blockquote)("tag","<"+g._tag)("def",g.def)(),g.normal=u({},g),g.gfm=u({},g.normal,{fences:/^ *(`{3,}|~{3,})[ \.]*(\S+)? *\n([\s\S]*?)\s*\1 *(?:\n+|$)/,paragraph:/^/,heading:/^ *(#{1,6}) +([^\n]+?) *#* *(?:\n+|$)/}),g.gfm.paragraph=s(g.paragraph)("(?!","(?!"+g.gfm.fences.source.replace("\\1","\\2")+"|"+g.list.source.replace("\\1","\\3")+"|")(),g.tables=u({},g.gfm,{nptable:/^ *(\S.*\|.*)\n *([-:]+ *\|[-| :]*)\n((?:.*\|.*(?:\n|$))*)\n*/,table:/^ *\|(.+)\n *\|( *[-:]+[-| :]*)\n((?: *\|.*(?:\n|$))*)\n*/}),e.rules=g,e.lex=function(t,n){return new e(n).lex(t)},e.prototype.lex=function(e){return e=e.replace(/\r\n|\r/g,"\n").replace(/\t/g," ").replace(/\u00a0/g," ").replace(/\u2424/g,"\n"),this.token(e,!0)},e.prototype.token=function(e,t,n){for(var i,o,r,s,a,u,l,c,d,e=e.replace(/^ +$/gm,"");e;)if((r=this.rules.newline.exec(e))&&(e=e.substring(r[0].length),r[0].length>1&&this.tokens.push({type:"space"})),r=this.rules.code.exec(e))e=e.substring(r[0].length),r=r[0].replace(/^ {4}/gm,""),this.tokens.push({type:"code",text:this.options.pedantic?r:r.replace(/\n+$/,"")});else if(r=this.rules.fences.exec(e))e=e.substring(r[0].length),this.tokens.push({type:"code",lang:r[2],text:r[3]||""});else if(r=this.rules.heading.exec(e))e=e.substring(r[0].length),this.tokens.push({type:"heading",depth:r[1].length,text:r[2]});else if(t&&(r=this.rules.nptable.exec(e))){for(e=e.substring(r[0].length),u={type:"table",header:r[1].replace(/^ *| *\| *$/g,"").split(/ *\| */),align:r[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:r[3].replace(/\n$/,"").split("\n")},c=0;c ?/gm,""),this.token(r,t,!0),this.tokens.push({type:"blockquote_end"});else if(r=this.rules.list.exec(e)){for(e=e.substring(r[0].length),s=r[2],this.tokens.push({type:"list_start",ordered:s.length>1}),i=!1,d=(r=r[0].match(this.rules.item)).length,c=0;c1&&a.length>1||(e=r.slice(c+1).join("\n")+e,c=d-1)),o=i||/\n\n(?!\s*$)/.test(u),c!==d-1&&(i="\n"===u.charAt(u.length-1),o||(o=i)),this.tokens.push({type:o?"loose_item_start":"list_item_start"}),this.token(u,!1,n),this.tokens.push({type:"list_item_end"});this.tokens.push({type:"list_end"})}else if(r=this.rules.html.exec(e))e=e.substring(r[0].length),this.tokens.push({type:this.options.sanitize?"paragraph":"html",pre:!this.options.sanitizer&&("pre"===r[1]||"script"===r[1]||"style"===r[1]),text:r[0]});else if(!n&&t&&(r=this.rules.def.exec(e)))e=e.substring(r[0].length),this.tokens.links[r[1].toLowerCase()]={href:r[2],title:r[3]};else if(t&&(r=this.rules.table.exec(e))){for(e=e.substring(r[0].length),u={type:"table",header:r[1].replace(/^ *| *\| *$/g,"").split(/ *\| */),align:r[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:r[3].replace(/(?: *\| *)?\n$/,"").split("\n")},c=0;c])/,autolink:/^<([^ >]+(@|:\/)[^ >]+)>/,url:a,tag:/^|^<\/?\w+(?:"[^"]*"|'[^']*'|[^'">])*?>/,link:/^!?\[(inside)\]\(href\)/,reflink:/^!?\[(inside)\]\s*\[([^\]]*)\]/,nolink:/^!?\[((?:\[[^\]]*\]|[^\[\]])*)\]/,strong:/^__([\s\S]+?)__(?!_)|^\*\*([\s\S]+?)\*\*(?!\*)/,em:/^\b_((?:[^_]|__)+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,code:/^(`+)\s*([\s\S]*?[^`])\s*\1(?!`)/,br:/^ {2,}\n(?!\s*$)/,del:a,text:/^[\s\S]+?(?=[\\?(?:\s+['"]([\s\S]*?)['"])?\s*/,m.link=s(m.link)("inside",m._inside)("href",m._href)(),m.reflink=s(m.reflink)("inside",m._inside)(),m.normal=u({},m),m.pedantic=u({},m.normal,{strong:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,em:/^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/}),m.gfm=u({},m.normal,{escape:s(m.escape)("])","~|])")(),url:/^(https?:\/\/[^\s<]+[^<.,:;"')\]\s])/,del:/^~~(?=\S)([\s\S]*?\S)~~/,text:s(m.text)("]|","~]|")("|","|https?://|")()}),m.breaks=u({},m.gfm,{br:s(m.br)("{2,}","*")(),text:s(m.gfm.text)("{2,}","*")()}),t.rules=m,t.output=function(e,n,i){return new t(n,i).output(e)},t.prototype.output=function(e){for(var t,n,i,r,s="";e;)if(r=this.rules.escape.exec(e))e=e.substring(r[0].length),s+=r[1];else if(r=this.rules.autolink.exec(e))e=e.substring(r[0].length),"@"===r[2]?(n=":"===r[1].charAt(6)?this.mangle(r[1].substring(7)):this.mangle(r[1]),i=this.mangle("mailto:")+n):i=n=o(r[1]),s+=this.renderer.link(i,null,n);else if(this.inLink||!(r=this.rules.url.exec(e))){if(r=this.rules.tag.exec(e))!this.inLink&&/^/i.test(r[0])&&(this.inLink=!1),e=e.substring(r[0].length),s+=this.options.sanitize?this.options.sanitizer?this.options.sanitizer(r[0]):o(r[0]):r[0];else if(r=this.rules.link.exec(e))e=e.substring(r[0].length),this.inLink=!0,s+=this.outputLink(r,{href:r[2],title:r[3]}),this.inLink=!1;else if((r=this.rules.reflink.exec(e))||(r=this.rules.nolink.exec(e))){if(e=e.substring(r[0].length),t=(r[2]||r[1]).replace(/\s+/g," "),!(t=this.links[t.toLowerCase()])||!t.href){s+=r[0].charAt(0),e=r[0].substring(1)+e;continue}this.inLink=!0,s+=this.outputLink(r,t),this.inLink=!1}else if(r=this.rules.strong.exec(e))e=e.substring(r[0].length),s+=this.renderer.strong(this.output(r[2]||r[1]));else if(r=this.rules.em.exec(e))e=e.substring(r[0].length),s+=this.renderer.em(this.output(r[2]||r[1]));else if(r=this.rules.code.exec(e))e=e.substring(r[0].length),s+=this.renderer.codespan(o(r[2],!0));else if(r=this.rules.br.exec(e))e=e.substring(r[0].length),s+=this.renderer.br();else if(r=this.rules.del.exec(e))e=e.substring(r[0].length),s+=this.renderer.del(this.output(r[1]));else if(r=this.rules.text.exec(e))e=e.substring(r[0].length),s+=this.renderer.text(o(this.smartypants(r[0])));else if(e)throw new Error("Infinite loop on byte: "+e.charCodeAt(0))}else e=e.substring(r[0].length),i=n=o(r[1]),s+=this.renderer.link(i,null,n);return s},t.prototype.outputLink=function(e,t){var n=o(t.href),i=t.title?o(t.title):null;return"!"!==e[0].charAt(0)?this.renderer.link(n,i,this.output(e[1])):this.renderer.image(n,i,o(e[1]))},t.prototype.smartypants=function(e){return this.options.smartypants?e.replace(/---/g,"—").replace(/--/g,"–").replace(/(^|[-\u2014/(\[{"\s])'/g,"$1‘").replace(/'/g,"’").replace(/(^|[-\u2014/(\[{\u2018\s])"/g,"$1“").replace(/"/g,"”").replace(/\.{3}/g,"…"):e},t.prototype.mangle=function(e){if(!this.options.mangle)return e;for(var t,n="",i=e.length,o=0;o.5&&(t="x"+t.toString(16)),n+="&#"+t+";";return n},n.prototype.code=function(e,t,n){if(this.options.highlight){var i=this.options.highlight(e,t);null!=i&&i!==e&&(n=!0,e=i)}return t?'
        '+(n?e:o(e,!0))+"\n
        \n":"
        "+(n?e:o(e,!0))+"\n
        "},n.prototype.blockquote=function(e){return"
        \n"+e+"
        \n"},n.prototype.html=function(e){return e},n.prototype.heading=function(e,t,n){return"'+e+"\n"},n.prototype.hr=function(){return this.options.xhtml?"
        \n":"
        \n"},n.prototype.list=function(e,t){var n=t?"ol":"ul";return"<"+n+">\n"+e+"\n"},n.prototype.listitem=function(e){return"
      • "+e+"
      • \n"},n.prototype.paragraph=function(e){return"

        "+e+"

        \n"},n.prototype.table=function(e,t){return"\n\n"+e+"\n\n"+t+"\n
        \n"},n.prototype.tablerow=function(e){return"\n"+e+"\n"},n.prototype.tablecell=function(e,t){var n=t.header?"th":"td";return(t.align?"<"+n+' style="text-align:'+t.align+'">':"<"+n+">")+e+"\n"},n.prototype.strong=function(e){return""+e+""},n.prototype.em=function(e){return""+e+""},n.prototype.codespan=function(e){return""+e+""},n.prototype.br=function(){return this.options.xhtml?"
        ":"
        "},n.prototype.del=function(e){return""+e+""},n.prototype.link=function(e,t,n){if(this.options.sanitize){try{var i=decodeURIComponent(r(e)).replace(/[^\w:]/g,"").toLowerCase()}catch(e){return""}if(0===i.indexOf("javascript:")||0===i.indexOf("vbscript:")||0===i.indexOf("data:"))return""}var o='
        "},n.prototype.image=function(e,t,n){var i=''+n+'":">"},n.prototype.text=function(e){return e},i.parse=function(e,t,n){return new i(t,n).parse(e)},i.prototype.parse=function(e){this.inline=new t(e.links,this.options,this.renderer),this.tokens=e.reverse();for(var n="";this.next();)n+=this.tok();return n},i.prototype.next=function(){return this.token=this.tokens.pop()},i.prototype.peek=function(){return this.tokens[this.tokens.length-1]||0},i.prototype.parseText=function(){for(var e=this.token.text;"text"===this.peek().type;)e+="\n"+this.next().text;return this.inline.output(e)},i.prototype.tok=function(){switch(this.token.type){case"space":return"";case"hr":return this.renderer.hr();case"heading":return this.renderer.heading(this.inline.output(this.token.text),this.token.depth,this.token.text);case"code":return this.renderer.code(this.token.text,this.token.lang,this.token.escaped);case"table":var e,t,n,i,o="",r="";for(n="",e=0;e=0,i=p.indexOf("Macintosh")>=0,o=p.indexOf("Linux")>=0,a=!0,l=u=navigator.language}var f;!function(e){e[e.Web=0]="Web",e[e.Mac=1]="Mac",e[e.Linux=2]="Linux",e[e.Windows=3]="Windows"}(f=t.Platform||(t.Platform={}));var g=f.Web;s&&(i?g=f.Mac:n?g=f.Windows:o&&(g=f.Linux)),t.isWindows=n,t.isMacintosh=i,t.isLinux=o,t.isRootUser=r,t.isNative=s,t.isWeb=a,t.platform=g,t.language=l,t.locale=u;var m="object"==typeof self?self:global;t.globals=m,t.hasWebWorkerSupport=function(){return void 0!==m.Worker},t.setTimeout=m.setTimeout.bind(m),t.clearTimeout=m.clearTimeout.bind(m),t.setInterval=m.setInterval.bind(m),t.clearInterval=m.clearInterval.bind(m);!function(e){e[e.Windows=1]="Windows",e[e.Macintosh=2]="Macintosh",e[e.Linux=3]="Linux"}(t.OperatingSystem||(t.OperatingSystem={})),t.OS=i?2:n?1:3;!function(e){e[e.Unknown=0]="Unknown",e[e.Disabled=1]="Disabled",e[e.Enabled=2]="Enabled"}(t.AccessibilitySupport||(t.AccessibilitySupport={}))}),define(d[499],h([0,1]),function(e,t){"use strict";function n(e){return 65<=e&&e<=90}Object.defineProperty(t,"__esModule",{value:!0});/*! - BEGIN THIRD PARTY - */ -/*! - * string_score.js: String Scoring Algorithm 0.1.22 - * - * http://joshaven.com/string_score - * https://github.com/joshaven/string_score - * - * Copyright (C) 2009-2014 Joshaven Potter - * Special thanks to all of the contributors listed here https://github.com/joshaven/string_score - * MIT License: http://opensource.org/licenses/MIT - * - * Date: Tue Mar 1 2011 - * Updated: Tue Mar 10 2015 - */ -var i=["-","_"," ","/","\\","."];t.score=function(e,t,o){if(!e||!t)return 0;var r=e+t,s=o&&o[r];if("number"==typeof s)return s;for(var a=t.length,u=e.toLowerCase(),l=t.toLowerCase(),c=0,d=0,h=0;c0&&e.every(s)},t.validateConstraints=function(e,t){for(var n=Math.min(e.length,t.length),i=0;i=0)throw new Error("Cannot clone recursive data-structure");i.push(e);var u={};for(var l in e)c.call(e,l)&&(u[l]=r(e[l],t,i));return i.pop(),u}return e}function s(e,t,i){return void 0===i&&(i=!0),n.isObject(e)?(n.isObject(t)&&Object.keys(t).forEach(function(o){o in e?i&&(n.isObject(e[o])&&n.isObject(t[o])?s(e[o],t[o],i):e[o]=t[o]):e[o]=t[o]}),e):t}function a(e){for(var t=[],n=1;nthis.limit;)this.trim()},e.prototype.serialize=function(){var e={entries:[]};return this.map.forEach(function(t){e.entries.push({key:t.key,value:t.value})}),e},Object.defineProperty(e.prototype,"size",{get:function(){return this.map.size},enumerable:!0,configurable:!0}),e.prototype.set=function(e,t){if(this.map.has(e))return!1;var n={key:e,value:t};return this.push(n),this.size>this.limit&&this.trim(),!0},e.prototype.get=function(e){var t=this.map.get(e);return t?t.value:null},e.prototype.getOrSet=function(e,t){var n=this.get(e);return n||(this.set(e,t),t)},e.prototype.delete=function(e){var t=this.map.get(e);return t?(this.map.delete(e),t.next?t.next.prev=t.prev:this.head=t.prev,t.prev?t.prev.next=t.next:this.tail=t.next,t.value):null},e.prototype.has=function(e){return this.map.has(e)},e.prototype.clear=function(){this.map.clear(),this.head=null,this.tail=null},e.prototype.push=function(e){this.head&&(e.prev=this.head,this.head.next=e),this.tail||(this.tail=e),this.head=e,this.map.set(e.key,e)},e.prototype.trim=function(){if(this.tail)if(this.ratiot?1:0}function a(e){return e>=97&&e<=122}function u(e){return e>=65&&e<=90}function l(e){return a(e)||u(e)}function c(e,t,n){if(void 0===n&&(n=e.length),"string"!=typeof e||"string"!=typeof t)return!1;for(var i=0;i=11904&&e<=55215||e>=63744&&e<=64255||e>=65281&&e<=65374}Object.defineProperty(t,"__esModule",{value:!0}),t.empty="",t.isFalsyOrWhitespace=function(e){return!e||"string"!=typeof e||0===e.trim().length},t.pad=function(e,t,n){void 0===n&&(n="0");for(var i=""+e,o=[i],r=i.length;r=t.length?e:t[i]})},t.escape=function(e){return e.replace(/[<|>|&]/g,function(e){switch(e){case"<":return"<";case">":return">";case"&":return"&";default:return e}})},t.escapeRegExpCharacters=i,t.trim=function(e,t){return void 0===t&&(t=" "),r(o(e,t),t)},t.ltrim=o,t.rtrim=r,t.convertSimple2RegExpPattern=function(e){return e.replace(/[\-\\\{\}\+\?\|\^\$\.\,\[\]\(\)\#\s]/g,"\\$&").replace(/[\*]/g,".*")},t.stripWildcards=function(e){return e.replace(/\*/g,"")},t.startsWith=function(e,t){if(e.length0?e.indexOf(t,n)===n:0===n&&e===t},t.indexOfIgnoreCase=function(e,t,n){void 0===n&&(n=0);var o=e.indexOf(t,n);return o<0&&(n>0&&(e=e.substr(n)),t=i(t),o=e.search(new RegExp(t,"i"))),o},t.createRegExp=function(e,t,n){if(void 0===n&&(n={}),!e)throw new Error("Cannot create regex from empty string");t||(e=i(e)),n.wholeWord&&(/\B/.test(e.charAt(0))||(e="\\b"+e),/\B/.test(e.charAt(e.length-1))||(e+="\\b"));var o="";return n.global&&(o+="g"),n.matchCase||(o+="i"),n.multiline&&(o+="m"),new RegExp(e,o)},t.regExpLeadsToEndlessLoop=function(e){return"^"!==e.source&&"^$"!==e.source&&"$"!==e.source&&e.exec("")&&0===e.lastIndex},t.canNormalize="function"==typeof"".normalize;var f=/[^\u0000-\u0080]/,g=new n.BoundedMap(1e4);t.normalizeNFC=function(e){if(!t.canNormalize||!e)return e;var n=g.get(e);if(n)return n;var i;return i=f.test(e)?e.normalize("NFC"):e,g.set(e,i),i},t.firstNonWhitespaceIndex=function(e){for(var t=0,n=e.length;t=0;n--){var i=e.charCodeAt(n);if(32!==i&&9!==i)return n}return-1},t.compare=s,t.compareIgnoreCase=function(e,t){for(var n=Math.min(e.length,t.length),i=0;it.length?1:0},t.equalsIgnoreCase=function(e,t){return(e?e.length:0)===(t?t.length:0)&&c(e,t)},t.beginsWithIgnoreCase=function(e,t){var n=t.length;return!(t.length>e.length)&&c(e,t,n)},t.commonPrefixLength=function(e,t){var n,i=Math.min(e.length,t.length);for(n=0;n0;){if(d(e,o,n,t,0,i))return i;i-=1,o+=1}return 0},t.isHighSurrogate=function(e){return 55296<=e&&e<=56319},t.isLowSurrogate=function(e){return 56320<=e&&e<=57343};var m=/(?:[\u05BE\u05C0\u05C3\u05C6\u05D0-\u05F4\u0608\u060B\u060D\u061B-\u064A\u066D-\u066F\u0671-\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u0710\u0712-\u072F\u074D-\u07A5\u07B1-\u07EA\u07F4\u07F5\u07FA-\u0815\u081A\u0824\u0828\u0830-\u0858\u085E-\u08BD\u200F\uFB1D\uFB1F-\uFB28\uFB2A-\uFD3D\uFD50-\uFDFC\uFE70-\uFEFC]|\uD802[\uDC00-\uDD1B\uDD20-\uDE00\uDE10-\uDE33\uDE40-\uDEE4\uDEEB-\uDF35\uDF40-\uDFFF]|\uD803[\uDC00-\uDCFF]|\uD83A[\uDC00-\uDCCF\uDD00-\uDD43\uDD50-\uDFFF]|\uD83B[\uDC00-\uDEBB])/;t.containsRTL=function(e){return m.test(e)};var v=/(?:[\u231A\u231B\u23F0\u23F3\u2600-\u27BF\u2B50\u2B55]|\uD83C[\uDDE6-\uDDFF\uDF00-\uDFFF]|\uD83D[\uDC00-\uDE4F\uDE80-\uDEF8]|\uD83E[\uDD00-\uDDE6])/;t.containsEmoji=function(e){return v.test(e)};var _=/^[\t\n\r\x20-\x7E]*$/;t.isBasicASCII=function(e){return _.test(e)},t.containsFullWidthCharacter=function(e){for(var t=0,n=e.length;tn)return 0;var o,r,s=[],a=[];for(o=0;o=0;r--)if((o+=i[r].length)>n){i.splice(0,r);break}return i.join(t.empty).replace(/^\s/,t.empty)};var y=/\x1B\x5B[12]?K/g,b=/\x1b\[\d+m/g,C=/\x1b\[0?m/g;t.removeAnsiEscapeCodes=function(e){return e&&(e=(e=(e=e.replace(y,"")).replace(b,"")).replace(C,"")),e},t.UTF8_BOM_CHARACTER=String.fromCharCode(65279),t.startsWithUTF8BOM=function(e){return e&&e.length>0&&65279===e.charCodeAt(0)},t.appendWithLimit=function(e,t,n){var i=e.length+t.length;return i>n&&(e="..."+e.substr(i-n)),t.length>n?e+=t.substr(t.length-n):e+=t,e},t.safeBtoa=function(e){return btoa(encodeURIComponent(e))},t.repeat=function(e,t){for(var n="",i=0;i0?[{start:0,end:t.length}]:[]:null}function s(e,t){var n=t.toLowerCase().indexOf(e.toLowerCase());return-1===n?null:[{start:n,end:n+e.length}]}function a(e,t){return u(e.toLowerCase(),t.toLowerCase(),0,0)}function u(e,t,n,i){if(n===e.length)return[];if(i===t.length)return null;if(e[n]===t[i]){var o=null;if(o=u(e,t,n+1,i+1))return f({start:i,end:i+1},o)}return u(e,t,n,i+1)}function l(e){return 97<=e&&e<=122}function c(e){return 65<=e&&e<=90}function d(e){return 48<=e&&e<=57}function h(e){return 32===e||9===e||10===e||13===e}function p(e){return l(e)||c(e)||d(e)}function f(e,t){return 0===t.length?t=[e]:e.end===t[0].start?t[0].start=e.start:t.unshift(e),t}function g(e,t){for(var n=t;n0&&!p(e.charCodeAt(n-1)))return n}return e.length}function m(e,t,n,i){if(n===e.length)return[];if(i===t.length)return null;if(e[n]!==t[i].toLowerCase())return null;var o=null,r=i+1;for(o=m(e,t,n+1,i+1);!o&&(r=g(t,r)).6}function y(e){var t=e.upperPercent,n=e.lowerPercent,i=e.alphaPercent,o=e.numericPercent;return n>.2&&t<.8&&i>.6&&o<.2}function b(e){for(var t=0,n=0,i=0,o=0,r=0;r60)return null;var n=v(t);if(!y(n)){if(!_(n))return null;t=t.toLowerCase()}for(var i=null,o=0;o0&&h(e.charCodeAt(n-1)))return n;return e.length}function E(){for(var e=[],t=[0],n=1;n<=100;n++)t.push(-n);for(n=0;n<100;n++){var i=t.slice(0);i[0]=-n,e.push(i)}return e}function L(e,t,n,i,o){function r(e,t,n){for(void 0===n&&(n=" ");e.length100?100:e.length,o=t.length>100?100:t.length,r=0;for(void 0===n&&(n=i);ro)){for(var s=e.toLowerCase(),a=t.toLowerCase(),u=r,l=0;u1?1:d),f=I[u-1][l]+-1,g=I[u][l-1]+-1;g>=f?g>p?(I[u][l]=g,O[u][l]=4):g===p?(I[u][l]=g,O[u][l]=6):(I[u][l]=p,O[u][l]=2):f>p?(I[u][l]=f,O[u][l]=1):f===p?(I[u][l]=f,O[u][l]=3):(I[u][l]=p,O[u][l]=2),c=h}}if(R&&(console.log(L(I,e,i,t,o)),console.log(L(O,e,i,t,o)),console.log(L(D,e,i,t,o))),W.length=0,B=-100,V=r,N(i,o,0,new H,!1),0!==W.length)return[B,W[0].toArray()]}}}function N(e,t,n,i,o){if(!(W.length>=10||n<-25)){for(var r=0;e>V&&t>0;){var s=D[e][t],a=O[e][t];if(4===a)t-=1,o?n-=5:i.isEmpty()||(n-=1),o=!1,r=0;else{if(!(2&a))return;if(4&a&&N(e,t-1,i.isEmpty()?n:n-1,i.slice(),o),n+=s,e-=1,t-=1,i.unshift(t),o=!0,1===s){if(r+=1,e===V)return}else n+=1+r*(s-1),r=0}}(n-=t>=3?9:3*t)>B?(B=n,W.unshift(i)):W.push(i)}}function M(e,t){if(!(t+1>=e.length))return e.slice(0,t)+e[t+1]+e[t]+e.slice(t+2)}Object.defineProperty(t,"__esModule",{value:!0}),t.or=o,t.and=function(){for(var e=[],t=0;t0)&&".."!==g&&(h=-1===f?"":h.slice(0,f),d=!0)}else u(e,c,p,".")&&(a||h||p=65&&i<=90||i>=97&&i<=122)&&58===e.charCodeAt(1))return i=e.charCodeAt(2),47===i||92===i?e.slice(0,2)+t:e.slice(0,2);var s=e.indexOf("://");if(-1!==s)for(s+=3;s=65&&t<=90||t>=97&&t<=122)&&e.length>2&&58===e.charCodeAt(1)){var n=e.charCodeAt(2);if(47===n||92===n)return!0}return!1}function d(e){return e&&47===e.charCodeAt(0)}Object.defineProperty(t,"__esModule",{value:!0}),t.sep="/",t.nativeSep=n.isWindows?"\\":"/",t.relative=function(e,r){for(var s=o.rtrim(a(e),t.sep),u=o.rtrim(a(r),t.sep),l=n.isLinux?s:s.toLowerCase(),c=n.isLinux?u:u.toLowerCase(),d=l.split(t.sep),h=c.split(t.sep),p=0,f=Math.min(d.length,h.length);p0){var o=e.charCodeAt(e.length-1);if(47!==o&&92!==o){var r=i.charCodeAt(0);47!==r&&92!==r&&(e+=t.sep)}}e+=i}return a(e)},t.isUNC=function(e){if(!n.isWindows)return!1;if(!e||e.length<5)return!1;var t=e.charCodeAt(0);if(92!==t)return!1;if(92!==(t=e.charCodeAt(1)))return!1;for(var i=2,o=i;i\|]/g:/[\\/]/g,g=/^(con|prn|aux|clock\$|nul|lpt[0-9]|com[0-9])$/i;t.isValidBasename=function(e){return!(!e||0===e.length||/^\s+$/.test(e)||(f.lastIndex=0,f.test(e)||n.isWindows&&g.test(e)||"."===e||".."===e||n.isWindows&&"."===e[e.length-1]||n.isWindows&&e.length!==e.trim().length))},t.isEqual=function(e,t,n){var i=e===t;return!n||i?i:!(!e||!t)&&o.equalsIgnoreCase(e,t)},t.isEqualOrParent=function(e,n,i){if(e===n)return!0;if(!e||!n)return!1;if(n.length>e.length)return!1;if(i){if(!o.beginsWithIgnoreCase(e,n))return!1;if(n.length===e.length)return!0;var r=n.length;return n.charAt(n.length-1)===t.nativeSep&&r--,e.charAt(r)===t.nativeSep}return n.charAt(n.length-1)!==t.nativeSep&&(n+=t.nativeSep),0===e.indexOf(n)},t.isAbsolute=function(e){return n.isWindows?c(e):d(e)},t.isAbsolute_win32=c,t.isAbsolute_posix=d}),define(d[484],h([0,1,499,9,46]),function(e,t,n,i,o){"use strict";function r(e,t){if(l){var n=e||"",i=t||"",o=l.compare(n,i);return c&&0===o&&n!==i?nr.length)return 1}return 0}Object.defineProperty(t,"__esModule",{value:!0});var l,c;t.setFileNameComparer=function(e){l=e,c=e.resolvedOptions().numeric},t.compareFileNames=r;var d=/^([^.]*)(\.(.*))?$/;t.noIntlCompareFileNames=s,t.comparePaths=function(e,t){for(var n,i,s,a,u=e.split(o.nativeSep),l=t.split(o.nativeSep),c=u.length-1,d=l.length-1,h=0;;h++){if(n=c===h,i=d===h,n&&i)return r(u[h],l[h]);if(n)return-1;if(i)return 1;if((s=u[h].toLowerCase())!==(a=l[h].toLowerCase()))return sp?-1:1;var f=i.getResourcePath(e),g=i.getResourcePath(t);if(f&&g){var m=n.score(f,o,s),v=n.score(g,o,s);if(m!==v)return m>v?-1:1}return l.length!==c.length?l.length1,c=void 0;if(c=o.isEqual(u.fsPath,e.fsPath,!i.isLinux)?"":o.normalize(r.ltrim(e.fsPath.substr(u.fsPath.length),o.nativeSep),!0),l){var d=o.basename(u.fsPath);c=c?o.join(d,c):d}return c}if(i.isWindows&&e.fsPath&&":"===e.fsPath[1])return o.normalize(e.fsPath.charAt(0).toUpperCase()+e.fsPath.slice(1),!0);var h=o.normalize(e.fsPath,!0);return!i.isWindows&&a&&(h=s(h,a.userHome)),h},t.tildify=s;var a="…",u="\\\\";t.shorten=function(e){for(var t=new Array(e.length),n=!1,i=0;i=0;h--){n=!1;for(var p=c.slice(h,h+d).join(o.nativeSep),f=0;!n&&f-1){var g=h+d===c.length,m=h>0&&e[f].indexOf(o.nativeSep)>-1?o.nativeSep+p:p,v=r.endsWith(e[f],m);n=!g||v}if(!n){var _="";(r.endsWith(c[0],":")||""!==l)&&(1===h&&(h=0,d++,p=c[0]+o.nativeSep+p),h>0&&(_=c[0]+o.nativeSep),_=l+_),h>0&&(_=_+a+o.nativeSep),_+=p,h+d0})}).map(function(e){return e.value}).join("")}}),function(){var e={};e["WinJS/Core/_WinJS"]={};var t=function(t,n,i){var o={},r=!1,s=n.map(function(t){return"exports"===t?(r=!0,o):e[t]}),a=i.apply({},s);e[t]=r?o:a};t("WinJS/Core/_Global",[],function(){"use strict";return"undefined"!=typeof window?window:"undefined"!=typeof self?self:"undefined"!=typeof global?global:{}}),t("WinJS/Core/_BaseCoreUtils",["WinJS/Core/_Global"],function(e){"use strict";return{hasWinRT:!!e.Windows,markSupportedForProcessing:function(e){return e.supportedForProcessing=!0,e},_setImmediate:e.setImmediate?e.setImmediate.bind(e):function(t){e.setTimeout(t,0)}}}),t("WinJS/Core/_WriteProfilerMark",["WinJS/Core/_Global"],function(e){"use strict";return e.msWriteProfilerMark||function(){}}),t("WinJS/Core/_Base",["WinJS/Core/_WinJS","WinJS/Core/_Global","WinJS/Core/_BaseCoreUtils","WinJS/Core/_WriteProfilerMark"],function(e,t,n,i){"use strict";function o(e,t,n){var i,o,r,s=Object.keys(t),a=Array.isArray(e);for(o=0,r=s.length;o"),r}var s=e;s.Namespace||(s.Namespace=Object.create(Object.prototype));var a={uninitialized:1,working:2,initialized:3};Object.defineProperties(s.Namespace,{defineWithParent:{value:r,writable:!0,enumerable:!0,configurable:!0},define:{value:function(e,n){return r(t,e,n)},writable:!0,enumerable:!0,configurable:!0},_lazy:{value:function(e){var t,n,o=a.uninitialized;return{setName:function(e){t=e},get:function(){switch(o){case a.initialized:return n;case a.uninitialized:o=a.working;try{i("WinJS.Namespace._lazy:"+t+",StartTM"),n=e()}finally{i("WinJS.Namespace._lazy:"+t+",StopTM"),o=a.uninitialized}return e=null,o=a.initialized,n;case a.working:throw"Illegal: reentrancy on initialization";default:throw"Illegal"}},set:function(e){switch(o){case a.working:throw"Illegal: reentrancy on initialization";default:o=a.initialized,n=e}},enumerable:!0,configurable:!0}},writable:!0,enumerable:!0,configurable:!0},_moduleDefine:{value:function(e,i,r){var s=[e],a=null;return i&&(a=n(t,i),s.push(a)),o(s,r,i||""),a},writable:!0,enumerable:!0,configurable:!0}})}(),function(){function t(e,t,i){return e=e||function(){},n.markSupportedForProcessing(e),t&&o(e.prototype,t),i&&o(e,i),e}e.Namespace.define("WinJS.Class",{define:t,derive:function(e,i,r,s){if(e){i=i||function(){};var a=e.prototype;return i.prototype=Object.create(a),n.markSupportedForProcessing(i),Object.defineProperty(i.prototype,"constructor",{value:i,writable:!0,configurable:!0,enumerable:!0}),r&&o(i.prototype,r),s&&o(i,s),i}return t(i,r,s)},mix:function(e){e=e||function(){};var t,n;for(t=1,n=arguments.length;t=0,t.isEdge=a.indexOf("Edge/")>=0,t.isEdgeOrIE=t.isIE||t.isEdge,t.isOpera=a.indexOf("Opera")>=0,t.isFirefox=a.indexOf("Firefox")>=0,t.isWebKit=a.indexOf("AppleWebKit")>=0,t.isChrome=a.indexOf("Chrome")>=0,t.isSafari=-1===a.indexOf("Chrome")&&a.indexOf("Safari")>=0,t.isIPad=a.indexOf("iPad")>=0,t.isChromev56=a.indexOf("Chrome/56.")>=0&&-1===a.indexOf("Edge/"),t.supportsTranslate3d=!t.isFirefox,t.canUseTranslate3d=function(){if(!t.supportsTranslate3d)return!1;if(0!==o())return!1;if(t.isChromev56){var e=r();if(Math.floor(e)!==e)return!1}return!0}}),define(d[117],h([0,1,11]),function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.domEvent=function(e,t,i){var o=function(e){return r.fire(e)},r=new n.Emitter({onFirstListenerAdd:function(){e.addEventListener(t,o,i)},onLastListenerRemove:function(){e.removeEventListener(t,o,i)}});return r.event},t.stop=function(e){return n.mapEvent(e,function(e){return e.preventDefault(),e.stopPropagation(),e})}}),define(d[64],h([0,1,39,15,30]),function(e,t,n,i,o){"use strict";function r(e){if(e.charCode){var t=String.fromCharCode(e.charCode).toUpperCase();return n.KeyCodeUtils.fromString(t)}return s[e.keyCode]||0}Object.defineProperty(t,"__esModule",{value:!0});var s={};s[3]=7,s[8]=1,s[9]=2,s[13]=3,s[16]=4,s[17]=5,s[18]=6,s[19]=7,s[20]=8,s[27]=9,s[32]=10,s[33]=11,s[34]=12,s[35]=13,s[36]=14,s[37]=15,s[38]=16,s[39]=17,s[40]=18,s[45]=19,s[46]=20,s[48]=21,s[49]=22,s[50]=23,s[51]=24,s[52]=25,s[53]=26,s[54]=27,s[55]=28,s[56]=29,s[57]=30,s[65]=31,s[66]=32,s[67]=33,s[68]=34,s[69]=35,s[70]=36,s[71]=37,s[72]=38,s[73]=39,s[74]=40,s[75]=41,s[76]=42,s[77]=43,s[78]=44,s[79]=45,s[80]=46,s[81]=47,s[82]=48,s[83]=49,s[84]=50,s[85]=51,s[86]=52,s[87]=53,s[88]=54,s[89]=55,s[90]=56,s[93]=58,s[96]=93,s[97]=94,s[98]=95,s[99]=96,s[100]=97,s[101]=98,s[102]=99,s[103]=100,s[104]=101,s[105]=102,s[106]=103,s[107]=104,s[108]=105,s[109]=106,s[110]=107,s[111]=108,s[112]=59,s[113]=60,s[114]=61,s[115]=62,s[116]=63,s[117]=64,s[118]=65,s[119]=66,s[120]=67,s[121]=68,s[122]=69,s[123]=70,s[124]=71,s[125]=72,s[126]=73,s[127]=74,s[128]=75,s[129]=76,s[130]=77,s[144]=78,s[145]=79,s[186]=80,s[187]=81,s[188]=82,s[189]=83,s[190]=84,s[191]=85,s[192]=86,s[193]=110,s[194]=111,s[219]=87,s[220]=88,s[221]=89,s[222]=90,s[223]=91,s[226]=92,s[229]=109,o.isIE?s[91]=57:o.isFirefox?(s[59]=80,s[107]=81,s[109]=83,i.isMacintosh&&(s[224]=57)):o.isWebKit&&(s[91]=57,i.isMacintosh?s[93]=57:s[92]=57);var a=i.isMacintosh?256:2048,u=i.isMacintosh?2048:256,l=function(){function e(e){var t=e;this.browserEvent=t,this.target=t.target,this.ctrlKey=t.ctrlKey,this.shiftKey=t.shiftKey,this.altKey=t.altKey,this.metaKey=t.metaKey,this.keyCode=r(t),this.code=t.code,this.ctrlKey=this.ctrlKey||5===this.keyCode,this.altKey=this.altKey||6===this.keyCode,this.shiftKey=this.shiftKey||4===this.keyCode,this.metaKey=this.metaKey||57===this.keyCode,this._asKeybinding=this._computeKeybinding(),this._asRuntimeKeybinding=this._computeRuntimeKeybinding()}return e.prototype.preventDefault=function(){this.browserEvent&&this.browserEvent.preventDefault&&this.browserEvent.preventDefault()},e.prototype.stopPropagation=function(){this.browserEvent&&this.browserEvent.stopPropagation&&this.browserEvent.stopPropagation()},e.prototype.toKeybinding=function(){return this._asRuntimeKeybinding},e.prototype.equals=function(e){return this._asKeybinding===e},e.prototype._computeKeybinding=function(){var e=0;5!==this.keyCode&&4!==this.keyCode&&6!==this.keyCode&&57!==this.keyCode&&(e=this.keyCode);var t=0;return this.ctrlKey&&(t|=a),this.altKey&&(t|=512),this.shiftKey&&(t|=1024),this.metaKey&&(t|=u),t|=e},e.prototype._computeRuntimeKeybinding=function(){var e=0;return 5!==this.keyCode&&4!==this.keyCode&&6!==this.keyCode&&57!==this.keyCode&&(e=this.keyCode),new n.SimpleKeybinding(this.ctrlKey,this.shiftKey,this.altKey,this.metaKey,e)},e}();t.StandardKeyboardEvent=l}),define(d[45],h([0,1,15,30,174]),function(e,t,n,i,o){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e){this.timestamp=Date.now(),this.browserEvent=e,this.leftButton=0===e.button,this.middleButton=1===e.button,this.rightButton=2===e.button,this.target=e.target,this.detail=e.detail||1,"dblclick"===e.type&&(this.detail=2),this.ctrlKey=e.ctrlKey,this.shiftKey=e.shiftKey,this.altKey=e.altKey,this.metaKey=e.metaKey,"number"==typeof e.pageX?(this.posx=e.pageX,this.posy=e.pageY):(this.posx=e.clientX+document.body.scrollLeft+document.documentElement.scrollLeft,this.posy=e.clientY+document.body.scrollTop+document.documentElement.scrollTop);var t=o.IframeUtils.getPositionOfChildWindowRelativeToAncestorWindow(self,e.view);this.posx-=t.left,this.posy-=t.top}return e.prototype.preventDefault=function(){this.browserEvent.preventDefault&&this.browserEvent.preventDefault()},e.prototype.stopPropagation=function(){this.browserEvent.stopPropagation&&this.browserEvent.stopPropagation()},e}();t.StandardMouseEvent=r;var s=function(e){function t(t){var n=e.call(this,t)||this;return n.dataTransfer=t.dataTransfer,n}return f(t,e),t}(r);t.DragMouseEvent=s;var a=function(e){function t(t){return e.call(this,t)||this}return f(t,e),t}(s);t.DropMouseEvent=a;var u=function(){function e(e,t,o){if(void 0===t&&(t=0),void 0===o&&(o=0),this.browserEvent=e||null,this.target=e?e.target||e.targetNode||e.srcElement:null,this.deltaY=o,this.deltaX=t,e){var r=e,s=e;void 0!==r.wheelDeltaY?this.deltaY=r.wheelDeltaY/120:void 0!==s.VERTICAL_AXIS&&s.axis===s.VERTICAL_AXIS&&(this.deltaY=-s.detail/3),void 0!==r.wheelDeltaX?i.isSafari&&n.isWindows?this.deltaX=-r.wheelDeltaX/120:this.deltaX=r.wheelDeltaX/120:void 0!==s.HORIZONTAL_AXIS&&s.axis===s.HORIZONTAL_AXIS&&(this.deltaX=-e.detail/3),0===this.deltaY&&0===this.deltaX&&e.wheelDelta&&(this.deltaY=e.wheelDelta/120)}}return e.prototype.preventDefault=function(){this.browserEvent&&this.browserEvent.preventDefault&&this.browserEvent.preventDefault()},e.prototype.stopPropagation=function(){this.browserEvent&&this.browserEvent.stopPropagation&&this.browserEvent.stopPropagation()},e}();t.StandardMouseWheelEvent=u}),define(d[118],h([0,1,11]),function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i,o=Object.freeze(function(e,t){var n=setTimeout(e.bind(t),0);return{dispose:function(){clearTimeout(n)}}});!function(e){e.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:n.default.None}),e.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:o})}(i=t.CancellationToken||(t.CancellationToken={}));var r=function(){function e(){this._isCancelled=!1}return e.prototype.cancel=function(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this._emitter=void 0))},Object.defineProperty(e.prototype,"isCancellationRequested",{get:function(){return this._isCancelled},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"onCancellationRequested",{get:function(){return this._isCancelled?o:(this._emitter||(this._emitter=new n.Emitter),this._emitter.event)},enumerable:!0,configurable:!0}),e}(),s=function(){function e(){}return Object.defineProperty(e.prototype,"token",{get:function(){return this._token||(this._token=new r),this._token},enumerable:!0,configurable:!0}),e.prototype.cancel=function(){this._token?this._token.cancel():this._token=i.Cancelled},e.prototype.dispose=function(){this.cancel()},e}();t.CancellationTokenSource=s}),define(d[18],h([0,1,10,15,8,118,3,11]),function(e,t,n,i,o,r,s,a){"use strict";function u(e){return e&&"function"==typeof e.then}function l(e,t){return new o.TPromise(function(i,o,r){e.done(function(e){try{t(e)}catch(e){n.onUnexpectedError(e)}i(e)},function(e){try{t(e)}catch(e){n.onUnexpectedError(e)}o(e)},function(e){r(e)})},function(){e.cancel()})}Object.defineProperty(t,"__esModule",{value:!0}),t.toThenable=function(e){return u(e)?e:o.TPromise.as(e)},t.asWinJsPromise=function(e){var t=new r.CancellationTokenSource;return new o.TPromise(function(n,i,r){var s=e(t.token);s instanceof o.TPromise?s.then(n,i,r):u(s)?s.then(n,i):n(s)},function(){t.cancel()})},t.wireCancellationToken=function(e,t,i){var r=e.onCancellationRequested(function(){return t.cancel()});return i&&(t=t.then(void 0,function(e){if(!n.isPromiseCanceledError(e))return o.TPromise.wrapError(e)})),l(t,function(){return r.dispose()})};var c=function(){function e(){this.activePromise=null,this.queuedPromise=null,this.queuedPromiseFactory=null}return e.prototype.queue=function(e){var t=this;if(this.activePromise){if(this.queuedPromiseFactory=e,!this.queuedPromise){var n=function(){t.queuedPromise=null;var e=t.queue(t.queuedPromiseFactory);return t.queuedPromiseFactory=null,e};this.queuedPromise=new o.Promise(function(e,i,o){t.activePromise.then(n,n,o).done(e)},function(){t.activePromise.cancel()})}return new o.Promise(function(e,n,i){t.queuedPromise.then(e,n,i)},function(){})}return this.activePromise=e(),new o.Promise(function(e,n,i){t.activePromise.done(function(n){t.activePromise=null,e(n)},function(e){t.activePromise=null,n(e)},i)},function(){t.activePromise.cancel()})},e}();t.Throttler=c;var d=function(){function e(){this.current=o.TPromise.as(null)}return e.prototype.queue=function(e){return this.current=this.current.then(function(){return e()})},e}();t.SimpleThrottler=d;var h=function(){function e(e){this.defaultDelay=e,this.timeout=null,this.completionPromise=null,this.onSuccess=null,this.task=null}return e.prototype.trigger=function(e,t){var n=this;return void 0===t&&(t=this.defaultDelay),this.task=e,this.cancelTimeout(),this.completionPromise||(this.completionPromise=new o.Promise(function(e){n.onSuccess=e},function(){}).then(function(){n.completionPromise=null,n.onSuccess=null;var e=n.task;return n.task=null,e()})),this.timeout=setTimeout(function(){n.timeout=null,n.onSuccess(null)},t),this.completionPromise},e.prototype.isTriggered=function(){return null!==this.timeout},e.prototype.cancel=function(){this.cancelTimeout(),this.completionPromise&&(this.completionPromise.cancel(),this.completionPromise=null)},e.prototype.cancelTimeout=function(){null!==this.timeout&&(clearTimeout(this.timeout),this.timeout=null)},e}();t.Delayer=h;var p=function(e){function t(t){var n=e.call(this,t)||this;return n.throttler=new c,n}return f(t,e),t.prototype.trigger=function(t,n){var i=this;return e.prototype.trigger.call(this,function(){return i.throttler.queue(t)},n)},t}(h);t.ThrottledDelayer=p;var g=function(e){function t(t,n){void 0===n&&(n=0);var i=e.call(this,t)||this;return i.minimumPeriod=n,i.periodThrottler=new c,i}return f(t,e),t.prototype.trigger=function(t,n){var i=this;return e.prototype.trigger.call(this,function(){return i.periodThrottler.queue(function(){return o.Promise.join([o.TPromise.timeout(i.minimumPeriod),t()]).then(function(e){return e[1]})})},n)},t}(p);t.PeriodThrottledDelayer=g;var m=function(){function e(){var e=this;this._value=new o.TPromise(function(t,n){e._completeCallback=t,e._errorCallback=n})}return Object.defineProperty(e.prototype,"value",{get:function(){return this._value},enumerable:!0,configurable:!0}),e.prototype.complete=function(e){this._completeCallback(e)},e.prototype.error=function(e){this._errorCallback(e)},e}();t.PromiseSource=m;var v=function(e){function t(t){var i,o,r,s=this;return s=e.call(this,function(e,t,n){i=e,o=t,r=n},function(){o(n.canceled())})||this,t.then(i,o,r),s}return f(t,e),t}(o.TPromise);t.ShallowCancelThenPromise=v,t.always=l,t.sequence=function(e){function t(){return e.length?e.pop()():null}function n(e){void 0!==e&&null!==e&&i.push(e);var r=t();return r?r.then(n):o.TPromise.as(i)}var i=[];return e=e.reverse(),o.TPromise.as(null).then(n)},t.first=function(e,t){void 0===t&&(t=function(e){return!!e}),e=e.reverse().slice();var n=function(){return 0===e.length?o.TPromise.as(null):e.pop()().then(function(e){return t(e)?o.TPromise.as(e):n()})};return n()};var _=function(){function e(e){this.maxDegreeOfParalellism=e,this.outstandingPromises=[],this.runningPromises=0,this._onFinished=new a.Emitter}return Object.defineProperty(e.prototype,"onFinished",{get:function(){return this._onFinished.event},enumerable:!0,configurable:!0}),e.prototype.queue=function(e){var t=this;return new o.TPromise(function(n,i,o){t.outstandingPromises.push({factory:e,c:n,e:i,p:o}),t.consume()})},e.prototype.consume=function(){for(var e=this;this.outstandingPromises.length&&this.runningPromises0?this.consume():this._onFinished.fire()},e.prototype.dispose=function(){this._onFinished.dispose()},e}();t.Limiter=_;var y=function(e){function t(){return e.call(this,1)||this}return f(t,e),t}(_);t.Queue=y,t.setDisposableTimeout=function(e,t){for(var n=[],i=2;i0&&this._emitToBulkListeners(e);for(var t=0,n=e.length;t0;){var n=this._emitQueue.shift();o(n.target,n.arg)}},t}(s);t.OrderGuaranteeEventEmitter=u}),define(d[6],h([0,1,8,18,10,38,3,29,30,64,45]),function(e,t,n,i,o,r,s,a,u,l,c){"use strict";function d(e,t,n,i){return new N(e,t,n,i)}function h(e){return function(t){return e(new c.StandardMouseEvent(t))}}function p(e){return function(t){return e(new l.StandardKeyboardEvent(t))}}function g(e){return document.defaultView.getComputedStyle(e,null)}function m(e,t,n){var i=g(e),o="0";return i&&(o=i.getPropertyValue?i.getPropertyValue(t):i.getAttribute(n)),O(e,o)}function v(e){for(var t=e.offsetParent,n=e.offsetTop,i=e.offsetLeft;null!==(e=e.parentNode)&&e!==document.body&&e!==document.documentElement;){n-=e.scrollTop;var o=g(e);o&&(i-="rtl"!==o.direction?e.scrollLeft:-e.scrollLeft),e===t&&(i+=R.getBorderLeftWidth(e),n+=R.getBorderTopWidth(e),n+=e.offsetTop,i+=e.offsetLeft,t=e.offsetParent)}return{left:i,top:n}}function _(e){var t=R.getMarginLeft(e)+R.getMarginRight(e);return e.offsetWidth+t}function y(e){var t=R.getMarginLeft(e)+R.getMarginRight(e);return e.scrollWidth+t}function b(e,t){if(null===e)return 0;var n=v(e),i=v(t);return n.left-i.left}function C(e){void 0===e&&(e=document.getElementsByTagName("head")[0]);var t=document.createElement("style");return t.type="text/css",t.media="screen",e.appendChild(t),t}function w(e){return e&&e.sheet&&e.sheet.rules?e.sheet.rules:e&&e.sheet&&e.sheet.cssRules?e.sheet.cssRules:[]}function S(e,t){for(;e;){if(e instanceof HTMLElement&&e.hasAttribute(t))return e;e=e.parentNode}return null}Object.defineProperty(t,"__esModule",{value:!0}),t.clearNode=function(e){for(;e.firstChild;)e.removeChild(e.firstChild)},t.safeStringifyDOMAware=function(e){var t=[];return JSON.stringify(e,function(e,n){if(n instanceof Element)return"[Element]";if(a.isObject(n)||Array.isArray(n)){if(-1!==t.indexOf(n))return"[Circular]";t.push(n)}return n})},t.isInDOM=function(e){for(;e;){if(e===document.body)return!0;e=e.parentNode}return!1};var E=new(function(){function e(){}return e.prototype._findClassName=function(e,t){var n=e.className;if(n){t=t.trim();var i=n.length,o=t.length;if(0!==o)if(i=0;){if(r=s+o,(0===s||32===n.charCodeAt(s-1))&&32===n.charCodeAt(r))return this._lastStart=s,void(this._lastEnd=r+1);if(s>0&&32===n.charCodeAt(s-1)&&r===i)return this._lastStart=s-1,void(this._lastEnd=r);if(0===s&&r===i)return this._lastStart=0,void(this._lastEnd=r)}this._lastStart=-1}else this._lastStart=-1}else this._lastStart=-1},e.prototype.hasClass=function(e,t){return this._findClassName(e,t),-1!==this._lastStart},e.prototype.addClass=function(e,t){e.className?(this._findClassName(e,t),-1===this._lastStart&&(e.className=e.className+" "+t)):e.className=t},e.prototype.removeClass=function(e,t){this._findClassName(e,t),-1!==this._lastStart&&(e.className=e.className.substring(0,this._lastStart)+e.className.substring(this._lastEnd))},e.prototype.toggleClass=function(e,t,n){this._findClassName(e,t),-1===this._lastStart||void 0!==n&&n||this.removeClass(e,t),-1!==this._lastStart||void 0!==n&&!n||this.addClass(e,t)},e}()),L=new(function(){function e(){}return e.prototype.hasClass=function(e,t){return t&&e.classList&&e.classList.contains(t)},e.prototype.addClass=function(e,t){t&&e.classList&&e.classList.add(t)},e.prototype.removeClass=function(e,t){t&&e.classList&&e.classList.remove(t)},e.prototype.toggleClass=function(e,t,n){e.classList&&e.classList.toggle(t,n)},e}()),x=u.isIE?E:L;t.hasClass=x.hasClass.bind(x),t.addClass=x.addClass.bind(x),t.removeClass=x.removeClass.bind(x),t.toggleClass=x.toggleClass.bind(x);var N=function(){function e(e,t,n,i){this._node=e,this._type=t,this._handler=n,this._useCapture=i||!1,this._node.addEventListener(this._type,this._handler,this._useCapture)}return e.prototype.dispose=function(){this._handler&&(this._node.removeEventListener(this._type,this._handler,this._useCapture),this._node=null,this._handler=null)},e}();t.addDisposableListener=d,t.addStandardDisposableListener=function(e,t,n,i){var o=n;return"click"===t||"mousedown"===t?o=h(n):"keydown"!==t&&"keypress"!==t&&"keyup"!==t||(o=p(n)),d(e,t,o,i)},t.addDisposableNonBubblingMouseOutListener=function(e,t){return d(e,"mouseout",function(n){for(var i=n.relatedTarget||n.toElement;i&&i!==e;)i=i.parentNode;i!==e&&t(n)})};var M=function(){var e=self.requestAnimationFrame||self.msRequestAnimationFrame||self.webkitRequestAnimationFrame||self.mozRequestAnimationFrame||self.oRequestAnimationFrame,t=self.cancelAnimationFrame||self.cancelRequestAnimationFrame||self.msCancelAnimationFrame||self.msCancelRequestAnimationFrame||self.webkitCancelAnimationFrame||self.webkitCancelRequestAnimationFrame||self.mozCancelAnimationFrame||self.mozCancelRequestAnimationFrame||self.oCancelAnimationFrame||self.oCancelRequestAnimationFrame,n=!!e,i=e||function(e){return setTimeout(function(){return e((new Date).getTime())},0)},o=t||function(e){};return{isNative:n,request:function(e){return i(e)},cancel:function(e){return o(e)}}}(),T=function(){function e(e,t){this._runner=e,this.priority=t,this._canceled=!1}return e.prototype.dispose=function(){this._canceled=!0},e.prototype.execute=function(){if(!this._canceled)try{this._runner()}catch(e){o.onUnexpectedError(e)}},e.sort=function(e,t){return t.priority-e.priority},e}();!function(){var e=[],n=null,i=!1,o=!1,r=function(){for(i=!1,n=e,e=[],o=!0;n.length>0;)n.sort(T.sort),n.shift().execute();o=!1};t.scheduleAtNextAnimationFrame=function(t,n){void 0===n&&(n=0);var o=new T(t,n);return e.push(o),i||(i=!0,M.request(r)),o},t.runAtThisOrScheduleAtNextAnimationFrame=function(e,i){if(o){var r=new T(e,i);return n.push(r),r}return t.scheduleAtNextAnimationFrame(e,i)}}();var k=16,I=function(e,t){return t},D=function(e){function t(t,n,o,r,s){void 0===r&&(r=I),void 0===s&&(s=k);var a=e.call(this)||this,u=null,l=0,c=a._register(new i.TimeoutTimer),h=function(){l=(new Date).getTime(),o(u),u=null};return a._register(d(t,n,function(e){u=r(u,e);var t=(new Date).getTime()-l;t>=s?(c.cancel(),h()):c.setIfNotSet(h,s-t)})),a}return f(t,e),t}(s.Disposable);t.addDisposableThrottledListener=function(e,t,n,i,o){return new D(e,t,n,i,o)},t.getComputedStyle=g;var O=function(e,t){return parseFloat(t)||0},R={getBorderLeftWidth:function(e){return m(e,"border-left-width","borderLeftWidth")},getBorderTopWidth:function(e){return m(e,"border-top-width","borderTopWidth")},getBorderRightWidth:function(e){return m(e,"border-right-width","borderRightWidth")},getBorderBottomWidth:function(e){return m(e,"border-bottom-width","borderBottomWidth")},getPaddingLeft:function(e){return m(e,"padding-left","paddingLeft")},getPaddingTop:function(e){return m(e,"padding-top","paddingTop")},getPaddingRight:function(e){return m(e,"padding-right","paddingRight")},getPaddingBottom:function(e){return m(e,"padding-bottom","paddingBottom")},getMarginLeft:function(e){return m(e,"margin-left","marginLeft")},getMarginTop:function(e){return m(e,"margin-top","marginTop")},getMarginRight:function(e){return m(e,"margin-right","marginRight")},getMarginBottom:function(e){return m(e,"margin-bottom","marginBottom")},__commaSentinel:!1};t.getTopLeftOffset=v,t.getDomNodePagePosition=function(e){var n=e.getBoundingClientRect();return{left:n.left+t.StandardWindow.scrollX,top:n.top+t.StandardWindow.scrollY,width:n.width,height:n.height}},t.StandardWindow=new(function(){function e(){}return Object.defineProperty(e.prototype,"scrollX",{get:function(){return"number"==typeof window.scrollX?window.scrollX:document.body.scrollLeft+document.documentElement.scrollLeft},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"scrollY",{get:function(){return"number"==typeof window.scrollY?window.scrollY:document.body.scrollTop+document.documentElement.scrollTop},enumerable:!0,configurable:!0}),e}()),t.getContentWidth=function(e){var t=R.getBorderLeftWidth(e)+R.getBorderRightWidth(e),n=R.getPaddingLeft(e)+R.getPaddingRight(e);return e.offsetWidth-t-n},t.getTotalWidth=_,t.getTotalScrollWidth=y,t.getContentHeight=function(e){var t=R.getBorderTopWidth(e)+R.getBorderBottomWidth(e),n=R.getPaddingTop(e)+R.getPaddingBottom(e);return e.offsetHeight-t-n},t.getTotalHeight=function(e){var t=R.getMarginTop(e)+R.getMarginBottom(e);return e.offsetHeight+t},t.getLargestChildWidth=function(e,t){var n=t.map(function(t){return Math.max(y(t),_(t))+b(t,e)||0});return Math.max.apply(Math,n)},t.isAncestor=function(e,t){for(;e;){if(e===t)return!0;e=e.parentNode}return!1},t.findParentWithClass=function(e,n,i){for(;e;){if(t.hasClass(e,n))return e;if(i&&t.hasClass(e,i))return null;e=e.parentNode}return null},t.createStyleSheet=C;var P=C();t.createCSSRule=function(e,t,n){void 0===n&&(n=P),n&&t&&n.sheet.insertRule(e+"{"+t+"}",0)},t.getCSSRule=function(e,t){if(void 0===t&&(t=P),!t)return null;for(var n=w(t),i=0;i=0;o--)t.sheet.deleteRule(i[o])}},t.isHTMLElement=function(e){return"object"==typeof HTMLElement?e instanceof HTMLElement:e&&"object"==typeof e&&1===e.nodeType&&"string"==typeof e.nodeName},t.EventType={CLICK:"click",AUXCLICK:"auxclick",DBLCLICK:"dblclick",MOUSE_UP:"mouseup",MOUSE_DOWN:"mousedown",MOUSE_OVER:"mouseover",MOUSE_MOVE:"mousemove",MOUSE_OUT:"mouseout",CONTEXT_MENU:"contextmenu",WHEEL:"wheel",KEY_DOWN:"keydown",KEY_PRESS:"keypress",KEY_UP:"keyup",LOAD:"load",UNLOAD:"unload",ABORT:"abort",ERROR:"error",RESIZE:"resize",SCROLL:"scroll",SELECT:"select",CHANGE:"change",SUBMIT:"submit",RESET:"reset",FOCUS:"focus",BLUR:"blur",INPUT:"input",STORAGE:"storage",DRAG_START:"dragstart",DRAG:"drag",DRAG_ENTER:"dragenter",DRAG_LEAVE:"dragleave",DRAG_OVER:"dragover",DROP:"drop",DRAG_END:"dragend",ANIMATION_START:u.isWebKit?"webkitAnimationStart":"animationstart",ANIMATION_END:u.isWebKit?"webkitAnimationEnd":"animationend",ANIMATION_ITERATION:u.isWebKit?"webkitAnimationIteration":"animationiteration"},t.EventHelper={stop:function(e,t){e.preventDefault?e.preventDefault():e.returnValue=!1,t&&(e.stopPropagation?e.stopPropagation():e.cancelBubble=!0)}},t.saveParentsScrollTop=function(e){for(var t=[],n=0;e&&e.nodeType===e.ELEMENT_NODE;n++)t[n]=e.scrollTop,e=e.parentNode;return t},t.restoreParentsScrollTop=function(e,t){for(var n=0;e&&e.nodeType===e.ELEMENT_NODE;n++)e.scrollTop!==t[n]&&(e.scrollTop=t[n]),e=e.parentNode};var A=function(e){function n(n){var i=e.call(this)||this,o=!1,s=!1;i._eventEmitter=i._register(new r.EventEmitter);return i._register(d(n,t.EventType.FOCUS,function(e){s=!1,o||(o=!0,i._eventEmitter.emit("focus",{}))},!0)),i._register(d(n,t.EventType.BLUR,function(e){o&&(s=!0,window.setTimeout(function(){s&&(s=!1,o=!1,i._eventEmitter.emit("blur",{}))},0))},!0)),i}return f(n,e),n.prototype.addFocusListener=function(e){return this._eventEmitter.addListener("focus",e)},n.prototype.addBlurListener=function(e){return this._eventEmitter.addListener("blur",e)},n}(s.Disposable);t.trackFocus=function(e){return new A(e)},t.append=function(e){for(var t=[],n=1;n0&&(t instanceof Node?n.push(t.cloneNode()):n.push(document.createTextNode(t))),n.push(e)}),n},t.show=function(){for(var e=[],t=0;t0},t.prototype.startMonitoring=function(e,t,n){var s=this;if(!this.isMonitoring()){this.mouseMoveEventMerger=e,this.mouseMoveCallback=t,this.onStopCallback=n;for(var a=o.IframeUtils.getSameOriginWindowChain(),u=0;u"},h.link=function(e,t,n){return e===n&&(n=s.removeMarkdownEscapes(n)),t=s.removeMarkdownEscapes(t),e=s.removeMarkdownEscapes(e),!e||e.match(/^data:|javascript:/i)?n:''+n+""},h.paragraph=function(e){return"

        "+e+"

        "},t.codeBlockRenderer&&(h.code=function(e,n){var s=t.codeBlockRenderer(n,e);if("string"==typeof s)return s;if(r.TPromise.is(s)){var a=i.defaultGenerator.nextId();return r.TPromise.join([s,d]).done(function(e){var t=e[0],n=c.querySelector('span[data-code="'+a+'"]');n&&(n.innerHTML=t)},function(e){}),''+o.escape(e)+""}return e}),t.actionCallback&&n.addStandardDisposableListener(c,"click",function(e){if("A"===e.target.tagName){var n=e.target.dataset.href;n&&t.actionCallback(n,e)}}),c.innerHTML=a.marked(e,{sanitize:!0,renderer:h}),l(),c}function c(e,t,i){var o;if(2===t.type)o=document.createTextNode(t.content);else if(3===t.type)o=document.createElement("b");else if(4===t.type)o=document.createElement("i");else if(5===t.type){var r=document.createElement("a");r.href="#",n.addStandardDisposableListener(r,"click",function(e){i(String(t.index),e)}),o=r}else 7===t.type?o=document.createElement("br"):1===t.type&&(o=e);e!==o&&e.appendChild(o),Array.isArray(t.children)&&t.children.forEach(function(e){c(o,e,i)})}function d(e){for(var t={type:1,children:[]},n=0,i=t,o=[],r=new g(e);!r.eos();){var s=r.next(),a="\\"===s&&0!==p(r.peek());if(a&&(s=r.next()),!a&&h(s)&&s===r.peek()){r.advance(),2===i.type&&(i=o.pop());var u=p(s);if(i.type===u||5===i.type&&6===u)i=o.pop();else{var l={type:u,children:[]};5===u&&(l.index=n,n++),i.children.push(l),o.push(i),i=l}}else if("\n"===s)2===i.type&&(i=o.pop()),i.children.push({type:7});else if(2!==i.type){var c={type:2,content:s};i.children.push(c),o.push(i),i=c}else i.content+=s}return 2===i.type&&(i=o.pop()),o.length,t}function h(e){return 0!==p(e)}function p(e){switch(e){case"*":return 3;case"_":return 4;case"[":return 5;case"]":return 6;default:return 0}}Object.defineProperty(t,"__esModule",{value:!0}),t.renderMarkedString=function(e,t){void 0===t&&(t={});var n;return n="string"==typeof e?e:"```"+e.language+"\n"+e.value+"\n```",l(n,t)},t.renderText=function(e,t){void 0===t&&(t={});var n=u(t);return n.textContent=e,n},t.renderFormattedText=function(e,t){void 0===t&&(t={});var n=u(t);return c(n,d(e),t.actionCallback),n},t.renderMarkdown=l;var f,g=function(){function e(e){this.source=e,this.index=0}return e.prototype.eos=function(){return this.index>=this.source.length},e.prototype.next=function(){var e=this.peek();return this.advance(),e},e.prototype.peek=function(){return this.source[this.index]},e.prototype.advance=function(){this.index++},e}();!function(e){e[e.Invalid=0]="Invalid",e[e.Root=1]="Root",e[e.Text=2]="Text",e[e.Bold=3]="Bold",e[e.Italics=4]="Italics",e[e.Action=5]="Action",e[e.ActionClose=6]="ActionClose",e[e.NewLine=7]="NewLine"}(f||(f={}))}),define(d[75],h([0,1,27,3,6]),function(e,t,n,i,o){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r;!function(e){e.Tap="-monaco-gesturetap",e.Change="-monaco-gesturechange",e.Start="-monaco-gesturestart",e.End="-monaco-gesturesend",e.Contextmenu="-monaco-gesturecontextmenu"}(r=t.EventType||(t.EventType={}));var s=function(){function e(e){this.callOnTarget=[],this.activeTouches={},this.target=e,this.handle=null}return e.prototype.dispose=function(){this.target=null,this.handle&&(this.handle.dispose(),this.handle=null)},Object.defineProperty(e.prototype,"target",{set:function(e){var t=this;this.callOnTarget=i.dispose(this.callOnTarget),this.activeTouches={},this.targetElement=e,this.targetElement&&(this.callOnTarget.push(o.addDisposableListener(this.targetElement,"touchstart",function(e){return t.onTouchStart(e)})),this.callOnTarget.push(o.addDisposableListener(this.targetElement,"touchend",function(e){return t.onTouchEnd(e)})),this.callOnTarget.push(o.addDisposableListener(this.targetElement,"touchmove",function(e){return t.onTouchMove(e)})))},enumerable:!0,configurable:!0}),e.newGestureEvent=function(e){var t=document.createEvent("CustomEvent");return t.initEvent(e,!1,!0),t},e.prototype.onTouchStart=function(t){var n=Date.now();t.preventDefault(),this.handle&&(this.handle.dispose(),this.handle=null);for(var i=0,o=t.targetTouches.length;i=e.HOLD_DELAY&&Math.abs(l.initialPageX-n.tail(l.rollingPageX))<30&&Math.abs(l.initialPageY-n.tail(l.rollingPageY))<30){var d=e.newGestureEvent(r.Contextmenu);d.initialTarget=l.initialTarget,d.pageX=n.tail(l.rollingPageX),d.pageY=n.tail(l.rollingPageY),this.targetElement.dispatchEvent(d)}else if(1===o){var h=n.tail(l.rollingPageX),p=n.tail(l.rollingPageY),f=n.tail(l.rollingTimestamps)-l.rollingTimestamps[0],g=h-l.rollingPageX[0],m=p-l.rollingPageY[0];this.inertia(i,Math.abs(g)/f,g>0?1:-1,h,Math.abs(m)/f,m>0?1:-1,p)}delete this.activeTouches[u.identifier]}else console.warn("move of an UNKNOWN touch",u)}},e.prototype.inertia=function(t,n,i,s,a,u,l){var c=this;this.handle=o.scheduleAtNextAnimationFrame(function(){var o=Date.now(),d=o-t,h=0,p=0,f=!0;n+=e.SCROLL_FRICTION*d,a+=e.SCROLL_FRICTION*d,n>0&&(f=!1,h=i*n*d),a>0&&(f=!1,p=u*a*d);var g=e.newGestureEvent(r.Change);g.translationX=h,g.translationY=p,c.targetElement.dispatchEvent(g),f||c.inertia(o,n,i,s+h,a,u,l+p)})},e.prototype.onTouchMove=function(t){var i=Date.now();t.preventDefault(),t.stopPropagation();for(var o=0,s=t.changedTouches.length;o3&&(u.rollingPageX.shift(),u.rollingPageY.shift(),u.rollingTimestamps.shift()),u.rollingPageX.push(a.pageX),u.rollingPageY.push(a.pageY),u.rollingTimestamps.push(i)}else console.warn("end of an UNKNOWN touch",a)}},e}();s.HOLD_DELAY=700,s.SCROLL_FRICTION=-.005,t.Gesture=s}),define(d[124],h([0,1,9,6,28,488]),function(e,t,n,i,o,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var s=function(){function e(e){this.domNode=document.createElement("span"),this.domNode.className="monaco-highlighted-label",this.didEverRender=!1,e.appendChild(this.domNode)}return Object.defineProperty(e.prototype,"element",{get:function(){return this.domNode},enumerable:!0,configurable:!0}),e.prototype.set=function(e,t){void 0===t&&(t=[]),e||(e=""),this.didEverRender&&this.text===e&&o.equals(this.highlights,t)||(Array.isArray(t)||(t=[]),this.text=e,this.highlights=t,this.render())},e.prototype.render=function(){i.clearNode(this.domNode);for(var e,t=[],o=0,s=0;s"),t.push(r.expand(n.escape(this.text.substring(o,e.start)))),t.push(""),o=e.end),t.push(''),t.push(r.expand(n.escape(this.text.substring(e.start,e.end)))),t.push(""),o=e.end);o"),t.push(r.expand(n.escape(this.text.substring(o)))),t.push("")),this.domNode.innerHTML=t.join(""),this.didEverRender=!0},e.prototype.dispose=function(){this.text=null,this.highlights=null},e}();t.HighlightedLabel=s}),define(d[472],h([0,1,6]),function(e,t,n){"use strict";function i(e){try{e.parentElement.removeChild(e)}catch(e){}}Object.defineProperty(t,"__esModule",{value:!0});var o=function(){function e(e){this.renderers=e,this.cache=Object.create(null)}return e.prototype.alloc=function(e){var t=this.getTemplateCache(e).pop();if(!t){var i=n.$(".monaco-list-row");t={domNode:i,templateId:e,templateData:this.renderers[e].renderTemplate(i)}}return t},e.prototype.release=function(e){e&&this.releaseRow(e)},e.prototype.releaseRow=function(e){var t=e.domNode,o=e.templateId;n.removeClass(t,"scrolling"),i(t),this.getTemplateCache(o).push(e)},e.prototype.getTemplateCache=function(e){return this.cache[e]||(this.cache[e]=[])},e.prototype.garbageCollect=function(){var e=this;this.cache&&Object.keys(this.cache).forEach(function(t){e.cache[t].forEach(function(n){e.renderers[t].disposeTemplate(n.templateData),n.domNode=null,n.templateData=null}),delete e.cache[t]})},e.prototype.dispose=function(){this.garbageCollect(),this.cache=null,this.renderers=null},e}();t.RowCache=o}),define(d[44],h([0,1,3,45,64,6]),function(e,t,n,i,o,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return f(t,e),t.prototype.onclick=function(e,t){this._register(r.addDisposableListener(e,r.EventType.CLICK,function(e){return t(new i.StandardMouseEvent(e))}))},t.prototype.onmousedown=function(e,t){this._register(r.addDisposableListener(e,r.EventType.MOUSE_DOWN,function(e){return t(new i.StandardMouseEvent(e))}))},t.prototype.onmouseover=function(e,t){this._register(r.addDisposableListener(e,r.EventType.MOUSE_OVER,function(e){return t(new i.StandardMouseEvent(e))}))},t.prototype.onnonbubblingmouseout=function(e,t){this._register(r.addDisposableNonBubblingMouseOutListener(e,function(e){return t(new i.StandardMouseEvent(e))}))},t.prototype.onkeydown=function(e,t){this._register(r.addDisposableListener(e,r.EventType.KEY_DOWN,function(e){return t(new o.StandardKeyboardEvent(e))}))},t.prototype.onkeyup=function(e,t){this._register(r.addDisposableListener(e,r.EventType.KEY_UP,function(e){return t(new o.StandardKeyboardEvent(e))}))},t.prototype.oninput=function(e,t){this._register(r.addDisposableListener(e,r.EventType.INPUT,t))},t.prototype.onblur=function(e,t){this._register(r.addDisposableListener(e,r.EventType.BLUR,t))},t.prototype.onfocus=function(e,t){this._register(r.addDisposableListener(e,r.EventType.FOCUS,t))},t.prototype.onchange=function(e,t){this._register(r.addDisposableListener(e,r.EventType.CHANGE,t))},t}(n.Disposable);t.Widget=s}),define(d[132],h([0,1,97,44,18]),function(e,t,n,i,o){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ARROW_IMG_SIZE=11;var r=function(e){function i(i){var r=e.call(this)||this;return r._onActivate=i.onActivate,r.bgDomNode=document.createElement("div"),r.bgDomNode.className="arrow-background",r.bgDomNode.style.position="absolute",r.bgDomNode.style.width=i.bgWidth+"px",r.bgDomNode.style.height=i.bgHeight+"px",void 0!==i.top&&(r.bgDomNode.style.top="0px"),void 0!==i.left&&(r.bgDomNode.style.left="0px"),void 0!==i.bottom&&(r.bgDomNode.style.bottom="0px"),void 0!==i.right&&(r.bgDomNode.style.right="0px"),r.domNode=document.createElement("div"),r.domNode.className=i.className,r.domNode.style.position="absolute",r.domNode.style.width=t.ARROW_IMG_SIZE+"px",r.domNode.style.height=t.ARROW_IMG_SIZE+"px",void 0!==i.top&&(r.domNode.style.top=i.top+"px"),void 0!==i.left&&(r.domNode.style.left=i.left+"px"),void 0!==i.bottom&&(r.domNode.style.bottom=i.bottom+"px"),void 0!==i.right&&(r.domNode.style.right=i.right+"px"),r._mouseMoveMonitor=r._register(new n.GlobalMouseMoveMonitor),r.onmousedown(r.bgDomNode,function(e){return r._arrowMouseDown(e)}),r.onmousedown(r.domNode,function(e){return r._arrowMouseDown(e)}),r._mousedownRepeatTimer=r._register(new o.IntervalTimer),r._mousedownScheduleRepeatTimer=r._register(new o.TimeoutTimer),r}return f(i,e),i.prototype._arrowMouseDown=function(e){var t=this;this._onActivate(),this._mousedownRepeatTimer.cancel(),this._mousedownScheduleRepeatTimer.cancelAndSet(function(){t._mousedownRepeatTimer.cancelAndSet(function(){return t._onActivate()},1e3/24)},200),this._mouseMoveMonitor.startMonitoring(n.standardMouseMoveMerger,function(e){},function(){t._mousedownRepeatTimer.cancel(),t._mousedownScheduleRepeatTimer.cancel()}),e.preventDefault()},i}(i.Widget);t.ScrollbarArrow=r}),define(d[55],h([0,1,8,38,81,11]),function(e,t,n,i,o,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isAction=function(e){return!!e&&(e instanceof s||"string"==typeof e.id&&"string"==typeof e.label&&"string"==typeof e.class&&"boolean"==typeof e.enabled&&"boolean"==typeof e.checked&&"function"==typeof e.run)};var s=function(){function e(e,t,n,i,o){void 0===t&&(t=""),void 0===n&&(n=""),void 0===i&&(i=!0),this._onDidChange=new r.Emitter,this._id=e,this._label=t,this._cssClass=n,this._enabled=i,this._actionCallback=o}return e.prototype.dispose=function(){this._onDidChange.dispose()},Object.defineProperty(e.prototype,"onDidChange",{get:function(){return this._onDidChange.event},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"id",{get:function(){return this._id},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"label",{get:function(){return this._label},set:function(e){this._setLabel(e)},enumerable:!0,configurable:!0}),e.prototype._setLabel=function(e){this._label!==e&&(this._label=e,this._onDidChange.fire({label:e}))},Object.defineProperty(e.prototype,"tooltip",{get:function(){return this._tooltip},set:function(e){this._setTooltip(e)},enumerable:!0,configurable:!0}),e.prototype._setTooltip=function(e){this._tooltip!==e&&(this._tooltip=e,this._onDidChange.fire({tooltip:e}))},Object.defineProperty(e.prototype,"class",{get:function(){return this._cssClass},set:function(e){this._setClass(e)},enumerable:!0,configurable:!0}),e.prototype._setClass=function(e){this._cssClass!==e&&(this._cssClass=e,this._onDidChange.fire({class:e}))},Object.defineProperty(e.prototype,"enabled",{get:function(){return this._enabled},set:function(e){this._setEnabled(e)},enumerable:!0,configurable:!0}),e.prototype._setEnabled=function(e){this._enabled!==e&&(this._enabled=e,this._onDidChange.fire({enabled:e}))},Object.defineProperty(e.prototype,"checked",{get:function(){return this._checked},set:function(e){this._setChecked(e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"radio",{get:function(){return this._radio},set:function(e){this._setRadio(e)},enumerable:!0,configurable:!0}),e.prototype._setChecked=function(e){this._checked!==e&&(this._checked=e,this._onDidChange.fire({checked:e}))},e.prototype._setRadio=function(e){this._radio!==e&&(this._radio=e,this._onDidChange.fire({radio:e}))},Object.defineProperty(e.prototype,"order",{get:function(){return this._order},set:function(e){this._order=e},enumerable:!0,configurable:!0}),e.prototype.run=function(e,t){return void 0!==this._actionCallback?this._actionCallback(e):n.TPromise.as(!0)},e}();t.Action=s;var a=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return f(t,e),t.prototype.run=function(e,t){var i=this;return e.enabled?(this.emit(o.EventType.BEFORE_RUN,{action:e}),this.runAction(e,t).then(function(t){i.emit(o.EventType.RUN,{action:e,result:t})},function(t){i.emit(o.EventType.RUN,{action:e,error:t})})):n.TPromise.as(null)},t.prototype.runAction=function(e,t){return n.TPromise.as(t?e.run(t):e.run())},t}(i.EventEmitter);t.ActionRunner=a}),define(d[167],h([0,1,27,9,46,88,8]),function(e,t,n,i,o,r,s){"use strict";function a(e){switch(e){case 0:return"";case 1:return C+"*?";default:return"(?:"+b+"|"+C+"+"+b+"|"+b+C+"+)*?"}}function u(e,t){if(!e)return[];for(var n,i=[],o=!1,r=!1,s="",a=0;a0;n--){var r=e.charCodeAt(n-1);if(47===r||92===r)break}t=e.substr(n)}var s=o.indexOf(t);return-1!==s?i[s]:null};a.basenames=o,a.patterns=i,a.allBasenames=o;var u=e.filter(function(e){return!e.basenames});return u.push(a),u}Object.defineProperty(t,"__esModule",{value:!0});var b="[/\\\\]",C="[^/\\\\]",w=/\//g;t.splitGlobAware=u;var S=/^\*\*\/\*\.[\w\.-]+$/,E=/^\*\*\/([\w\.-]+)\/?$/,L=/^{\*\*\/[\*\.]?[\w\.-]+\/?(,\*\*\/[\*\.]?[\w\.-]+\/?)*}$/,x=/^{\*\*\/[\*\.]?[\w\.-]+(\/(\*\*)?)?(,\*\*\/[\*\.]?[\w\.-]+(\/(\*\*)?)?)*}$/,N=/^\*\*((\/[\w\.-]+)+)\/?$/,M=/^([\w\.-]+(\/[\w\.-]+)*)\/?$/,T=new r.BoundedMap(1e4),k=function(){return!1},I=function(){return null};t.match=function(e,t,n){return!(!e||!t)&&m(e)(t,void 0,n)},t.parse=m,t.parseToAsync=function(e,t){var n=m(e,t);return function(e,t,i){var o=n(e,t,i);return o instanceof s.TPromise?o:s.TPromise.as(o)}},t.getBasenameTerms=function(e){return e.allBasenames||[]},t.getPathTerms=function(e){return e.allPaths||[]}}),define(d[470],h([0,1,46,29,9,167]),function(e,t,n,i,o,r){"use strict";function s(e){return{id:e.id,mime:e.mime,filename:e.filename,extension:e.extension,filepattern:e.filepattern,firstline:e.firstline,userConfigured:e.userConfigured,filenameLowercase:e.filename?e.filename.toLowerCase():void 0,extensionLowercase:e.extension?e.extension.toLowerCase():void 0,filepatternLowercase:e.filepattern?e.filepattern.toLowerCase():void 0,filepatternOnPath:!!e.filepattern&&e.filepattern.indexOf(n.sep)>=0}}function a(e,t,n){for(var i,s,a,u=n.length-1;u>=0;u--){var l=n[u];if(t===l.filenameLowercase){i=l;break}if(l.filepattern&&(!s||l.filepattern.length>s.filepattern.length)){var c=l.filepatternOnPath?e:t;r.match(l.filepatternLowercase,c)&&(s=l)}l.extension&&(!a||l.extension.length>a.extension.length)&&o.endsWith(t,l.extensionLowercase)&&(a=l)}return i?i.mime:s?s.mime:a?a.mime:null}function u(e){if(o.startsWithUTF8BOM(e)&&(e=e.substr(1)),e.length>0)for(var t=0;t0)return n.mime}}return null}function l(e){return!e||("string"==typeof e?e===t.MIME_BINARY||e===t.MIME_TEXT||e===t.MIME_UNKNOWN:1===e.length&&l(e[0]))}Object.defineProperty(t,"__esModule",{value:!0}),t.MIME_TEXT="text/plain",t.MIME_BINARY="application/octet-stream",t.MIME_UNKNOWN="application/unknown";var c=[],d=[],h=[];t.registerTextMime=function(e){var t=s(e);c.push(t),t.userConfigured?h.push(t):d.push(t),t.userConfigured||c.forEach(function(e){e.mime===t.mime||e.userConfigured||(t.extension&&e.extension===t.extension&&console.warn("Overwriting extension <<"+t.extension+">> to now point to mime <<"+t.mime+">>"),t.filename&&e.filename===t.filename&&console.warn("Overwriting filename <<"+t.filename+">> to now point to mime <<"+t.mime+">>"),t.filepattern&&e.filepattern===t.filepattern&&console.warn("Overwriting filepattern <<"+t.filepattern+">> to now point to mime <<"+t.mime+">>"),t.firstline&&e.firstline===t.firstline&&console.warn("Overwriting firstline <<"+t.firstline+">> to now point to mime <<"+t.mime+">>"))})},t.clearTextMimes=function(e){e?(c=c.filter(function(e){return!e.userConfigured}),h=[]):(c=[],d=[],h=[])},t.guessMimeTypes=function(e,i){if(!e)return[t.MIME_UNKNOWN];e=e.toLowerCase();var o=n.basename(e),r=a(e,o,h);if(r)return[r,t.MIME_TEXT];var s=a(e,o,d);if(s)return[s,t.MIME_TEXT];if(i){var l=u(i);if(l)return[l,t.MIME_TEXT]}return[t.MIME_UNKNOWN]},t.isBinaryMime=function(e){if(!e)return!1;return(i.isArray(e)?e:e.split(",").map(function(e){return e.trim()})).indexOf(t.MIME_BINARY)>=0},t.isUnspecific=l,t.suggestFilename=function(e,t){for(var n=0;nt&&(n=t-e),n<0&&(n=0),i<0&&(i=0),r+i>o&&(r=o-i),r<0&&(r=0),this.width=e,this.scrollWidth=t,this.scrollLeft=n,this.height=i,this.scrollHeight=o,this.scrollTop=r}return e.prototype.equals=function(e){return this.width===e.width&&this.scrollWidth===e.scrollWidth&&this.scrollLeft===e.scrollLeft&&this.height===e.height&&this.scrollHeight===e.scrollHeight&&this.scrollTop===e.scrollTop},e.prototype.createScrollEvent=function(e){var t=this.width!==e.width,n=this.scrollWidth!==e.scrollWidth,i=this.scrollLeft!==e.scrollLeft,o=this.height!==e.height,r=this.scrollHeight!==e.scrollHeight,s=this.scrollTop!==e.scrollTop;return{width:this.width,scrollWidth:this.scrollWidth,scrollLeft:this.scrollLeft,height:this.height,scrollHeight:this.scrollHeight,scrollTop:this.scrollTop,widthChanged:t,scrollWidthChanged:n,scrollLeftChanged:i,heightChanged:o,scrollHeightChanged:r,scrollTopChanged:s}},e}();t.ScrollState=o;var r=function(e){function t(){var t=e.call(this)||this;return t._onScroll=t._register(new i.Emitter),t.onScroll=t._onScroll.event,t._state=new o(0,0,0,0,0,0),t}return f(t,e),t.prototype.getState=function(){return this._state},t.prototype.validateScrollTop=function(e){return e=Math.round(e),e=Math.max(e,0),e=Math.min(e,this._state.scrollHeight-this._state.height)},t.prototype.validateScrollLeft=function(e){return e=Math.round(e),e=Math.max(e,0),e=Math.min(e,this._state.scrollWidth-this._state.width)},t.prototype.updateState=function(e){var t=this._state,n=new o(void 0!==e.width?e.width:t.width,void 0!==e.scrollWidth?e.scrollWidth:t.scrollWidth,void 0!==e.scrollLeft?e.scrollLeft:t.scrollLeft,void 0!==e.height?e.height:t.height,void 0!==e.scrollHeight?e.scrollHeight:t.scrollHeight,void 0!==e.scrollTop?e.scrollTop:t.scrollTop);t.equals(n)||(this._state=n,this._onScroll.fire(this._state.createScrollEvent(t)))},t}(n.Disposable);t.Scrollable=r}),define(d[469],h([0,1,3,18,51]),function(e,t,n,i,o){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){function t(t,n,o){var r=e.call(this)||this;return r._visibility=t,r._visibleClassName=n,r._invisibleClassName=o,r._domNode=null,r._isVisible=!1,r._isNeeded=!1,r._shouldBeVisible=!1,r._revealTimer=r._register(new i.TimeoutTimer),r}return f(t,e),t.prototype.applyVisibilitySetting=function(e){return this._visibility!==o.ScrollbarVisibility.Hidden&&(this._visibility===o.ScrollbarVisibility.Visible||e)},t.prototype.setShouldBeVisible=function(e){var t=this.applyVisibilitySetting(e);this._shouldBeVisible!==t&&(this._shouldBeVisible=t,this.ensureVisibility())},t.prototype.setIsNeeded=function(e){this._isNeeded!==e&&(this._isNeeded=e,this.ensureVisibility())},t.prototype.setDomNode=function(e){this._domNode=e,this._domNode.setClassName(this._invisibleClassName),this.setShouldBeVisible(!1)},t.prototype.ensureVisibility=function(){this._isNeeded?this._shouldBeVisible?this._reveal():this._hide(!0):this._hide(!1)},t.prototype._reveal=function(){var e=this;this._isVisible||(this._isVisible=!0,this._revealTimer.setIfNotSet(function(){e._domNode.setClassName(e._visibleClassName)},0))},t.prototype._hide=function(e){this._revealTimer.cancel(),this._isVisible&&(this._isVisible=!1,this._domNode.setClassName(this._invisibleClassName+(e?" fade":"")))},t}(n.Disposable);t.ScrollbarVisibilityController=r}),define(d[186],h([0,1,15,6,97,44,26,132,469]),function(e,t,n,i,o,r,s,a,u){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var l=function(e){function t(t){var n=e.call(this)||this;return n._lazyRender=t.lazyRender,n._host=t.host,n._scrollable=t.scrollable,n._scrollbarState=t.scrollbarState,n._visibilityController=n._register(new u.ScrollbarVisibilityController(t.visibility,"visible scrollbar "+t.extraScrollbarClassName,"invisible scrollbar "+t.extraScrollbarClassName)),n._mouseMoveMonitor=n._register(new o.GlobalMouseMoveMonitor),n._shouldRender=!0,n.domNode=s.createFastDomNode(document.createElement("div")),n.domNode.setAttribute("role","presentation"),n.domNode.setAttribute("aria-hidden","true"),n._visibilityController.setDomNode(n.domNode),n.domNode.setPosition("absolute"),n.onmousedown(n.domNode.domNode,function(e){return n._domNodeMouseDown(e)}),n}return f(t,e),t.prototype._createArrow=function(e){var t=this._register(new a.ScrollbarArrow(e));this.domNode.domNode.appendChild(t.bgDomNode),this.domNode.domNode.appendChild(t.domNode)},t.prototype._createSlider=function(e,t,n,i){var o=this;this.slider=s.createFastDomNode(document.createElement("div")),this.slider.setClassName("slider"),this.slider.setPosition("absolute"),this.slider.setTop(e),this.slider.setLeft(t),this.slider.setWidth(n),this.slider.setHeight(i),this.slider.setLayerHinting(!0),this.domNode.domNode.appendChild(this.slider.domNode),this.onmousedown(this.slider.domNode,function(e){e.leftButton&&(e.preventDefault(),o._sliderMouseDown(e,function(){}))})},t.prototype._onElementSize=function(e){return this._scrollbarState.setVisibleSize(e)&&(this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._shouldRender=!0,this._lazyRender||this.render()),this._shouldRender},t.prototype._onElementScrollSize=function(e){return this._scrollbarState.setScrollSize(e)&&(this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._shouldRender=!0,this._lazyRender||this.render()),this._shouldRender},t.prototype._onElementScrollPosition=function(e){return this._scrollbarState.setScrollPosition(e)&&(this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._shouldRender=!0,this._lazyRender||this.render()),this._shouldRender},t.prototype.beginReveal=function(){this._visibilityController.setShouldBeVisible(!0)},t.prototype.beginHide=function(){this._visibilityController.setShouldBeVisible(!1)},t.prototype.render=function(){this._shouldRender&&(this._shouldRender=!1,this._renderDomNode(this._scrollbarState.getRectangleLargeSize(),this._scrollbarState.getRectangleSmallSize()),this._updateSlider(this._scrollbarState.getSliderSize(),this._scrollbarState.getArrowSize()+this._scrollbarState.getSliderPosition()))},t.prototype._domNodeMouseDown=function(e){e.target===this.domNode.domNode&&this._onMouseDown(e)},t.prototype.delegateMouseDown=function(e){var t=this.domNode.domNode.getClientRects()[0].top,n=t+this._scrollbarState.getSliderPosition(),i=t+this._scrollbarState.getSliderPosition()+this._scrollbarState.getSliderSize(),o=this._sliderMousePosition(e);n<=o&&o<=i?e.leftButton&&(e.preventDefault(),this._sliderMouseDown(e,function(){})):this._onMouseDown(e)},t.prototype.delegateSliderMouseDown=function(e,t){this._sliderMouseDown(e,t)},t.prototype._onMouseDown=function(e){var t=i.getDomNodePagePosition(this.domNode.domNode);this.setDesiredScrollPosition(this._scrollbarState.getDesiredScrollPositionFromOffset(this._mouseDownRelativePosition(e,t))),e.leftButton&&(e.preventDefault(),this._sliderMouseDown(e,function(){}))},t.prototype._sliderMouseDown=function(e,t){var i=this,r=this._sliderMousePosition(e),s=this._sliderOrthogonalMousePosition(e),a=this._scrollbarState.clone();this.slider.toggleClassName("active",!0),this._mouseMoveMonitor.startMonitoring(o.standardMouseMoveMerger,function(e){var t=i._sliderOrthogonalMousePosition(e),o=Math.abs(t-s);if(n.isWindows&&o>140)i.setDesiredScrollPosition(a.getScrollPosition());else{var u=i._sliderMousePosition(e)-r;i.setDesiredScrollPosition(a.getDesiredScrollPositionFromDelta(u))}},function(){i.slider.toggleClassName("active",!1),i._host.onDragEnd(),t()}),this._host.onDragStart()},t.prototype.setDesiredScrollPosition=function(e){e=this.validateScrollPosition(e);var t=this._getScrollPosition();return this._setScrollPosition(e),t!==this._getScrollPosition()&&(this._onElementScrollPosition(this._getScrollPosition()),!0)},t}(r.Widget);t.AbstractScrollbar=l}),define(d[465],h([0,1,186,45,51,158,132]),function(e,t,n,i,o,r,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var a=function(e){function t(t,n,a){var u=e.call(this,{lazyRender:n.lazyRender,host:a,scrollbarState:new r.ScrollbarState(n.horizontalHasArrows?n.arrowSize:0,n.horizontal===o.ScrollbarVisibility.Hidden?0:n.horizontalScrollbarSize,n.vertical===o.ScrollbarVisibility.Hidden?0:n.verticalScrollbarSize),visibility:n.horizontal,extraScrollbarClassName:"horizontal",scrollable:t})||this;if(n.horizontalHasArrows){var l=(n.arrowSize-s.ARROW_IMG_SIZE)/2,c=(n.horizontalScrollbarSize-s.ARROW_IMG_SIZE)/2;u._createArrow({className:"left-arrow",top:c,left:l,bottom:void 0,right:void 0,bgWidth:n.arrowSize,bgHeight:n.horizontalScrollbarSize,onActivate:function(){return u._host.onMouseWheel(new i.StandardMouseWheelEvent(null,1,0))}}),u._createArrow({className:"right-arrow",top:c,left:void 0,bottom:void 0,right:l,bgWidth:n.arrowSize,bgHeight:n.horizontalScrollbarSize,onActivate:function(){return u._host.onMouseWheel(new i.StandardMouseWheelEvent(null,-1,0))}})}return u._createSlider(Math.floor((n.horizontalScrollbarSize-n.horizontalSliderSize)/2),0,null,n.horizontalSliderSize),u}return f(t,e),t.prototype._updateSlider=function(e,t){this.slider.setWidth(e),this.slider.setLeft(t)},t.prototype._renderDomNode=function(e,t){this.domNode.setWidth(e),this.domNode.setHeight(t),this.domNode.setLeft(0),this.domNode.setBottom(0)},t.prototype.onDidScroll=function(e){return this._shouldRender=this._onElementScrollSize(e.scrollWidth)||this._shouldRender,this._shouldRender=this._onElementScrollPosition(e.scrollLeft)||this._shouldRender,this._shouldRender=this._onElementSize(e.width)||this._shouldRender,this._shouldRender},t.prototype._mouseDownRelativePosition=function(e,t){return e.posx-t.left},t.prototype._sliderMousePosition=function(e){return e.posx},t.prototype._sliderOrthogonalMousePosition=function(e){return e.posy},t.prototype._getScrollPosition=function(){return this._scrollable.getState().scrollLeft},t.prototype._setScrollPosition=function(e){this._scrollable.updateState({scrollLeft:e})},t.prototype.validateScrollPosition=function(e){return this._scrollable.validateScrollLeft(e)},t}(n.AbstractScrollbar);t.HorizontalScrollbar=a}),define(d[463],h([0,1,186,45,51,158,132]),function(e,t,n,i,o,r,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var a=function(e){function t(t,n,a){var u=e.call(this,{lazyRender:n.lazyRender,host:a,scrollbarState:new r.ScrollbarState(n.verticalHasArrows?n.arrowSize:0,n.vertical===o.ScrollbarVisibility.Hidden?0:n.verticalScrollbarSize,0),visibility:n.vertical,extraScrollbarClassName:"vertical",scrollable:t})||this;if(n.verticalHasArrows){var l=(n.arrowSize-s.ARROW_IMG_SIZE)/2,c=(n.verticalScrollbarSize-s.ARROW_IMG_SIZE)/2;u._createArrow({className:"up-arrow",top:l,left:c,bottom:void 0,right:void 0,bgWidth:n.verticalScrollbarSize,bgHeight:n.arrowSize,onActivate:function(){return u._host.onMouseWheel(new i.StandardMouseWheelEvent(null,0,1))}}),u._createArrow({className:"down-arrow",top:void 0,left:c,bottom:l,right:void 0,bgWidth:n.verticalScrollbarSize,bgHeight:n.arrowSize,onActivate:function(){return u._host.onMouseWheel(new i.StandardMouseWheelEvent(null,0,-1))}})}return u._createSlider(0,Math.floor((n.verticalScrollbarSize-n.verticalSliderSize)/2),n.verticalSliderSize,null),u}return f(t,e),t.prototype._updateSlider=function(e,t){this.slider.setHeight(e),this.slider.setTop(t)},t.prototype._renderDomNode=function(e,t){this.domNode.setWidth(t),this.domNode.setHeight(e),this.domNode.setRight(0),this.domNode.setTop(0)},t.prototype.onDidScroll=function(e){return this._shouldRender=this._onElementScrollSize(e.scrollHeight)||this._shouldRender,this._shouldRender=this._onElementScrollPosition(e.scrollTop)||this._shouldRender,this._shouldRender=this._onElementSize(e.height)||this._shouldRender,this._shouldRender},t.prototype._mouseDownRelativePosition=function(e,t){return e.posy-t.top},t.prototype._sliderMousePosition=function(e){return e.posy},t.prototype._sliderOrthogonalMousePosition=function(e){return e.posx},t.prototype._getScrollPosition=function(){return this._scrollable.getState().scrollTop},t.prototype._setScrollPosition=function(e){this._scrollable.updateState({scrollTop:e})},t.prototype.validateScrollPosition=function(e){return this._scrollable.validateScrollTop(e)},t}(n.AbstractScrollbar);t.VerticalScrollbar=a}),define(d[192],h([0,1,10,3,8,18,15]),function(e,t,n,i,o,r,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var a="$initialize",u=!1;t.logOnceWebWorkerWarning=function(e){s.isWeb&&(u||(u=!0,console.warn("Could not create web worker(s). Falling back to loading web worker code in main thread, which might cause UI freezes. Please see https://github.com/Microsoft/monaco-editor#faq")),console.warn(e.message))};var l=function(){function e(e){this._workerId=-1,this._handler=e,this._lastSentReq=0,this._pendingReplies=Object.create(null)}return e.prototype.setWorkerId=function(e){this._workerId=e},e.prototype.sendMessage=function(e,t){var n=String(++this._lastSentReq),i={c:null,e:null},r=new o.TPromise(function(e,t,n){i.c=e,i.e=t},function(){});return this._pendingReplies[n]=i,this._send({vsWorker:this._workerId,req:n,method:e,args:t}),r},e.prototype.handleMessage=function(e){var t;try{t=JSON.parse(e)}catch(e){}t.vsWorker&&(-1!==this._workerId&&t.vsWorker!==this._workerId||this._handleMessage(t))},e.prototype._handleMessage=function(e){var t=this;if(e.seq){var i=e;if(!this._pendingReplies[i.seq])return void console.warn("Got reply to unknown seq");var o=this._pendingReplies[i.seq];if(delete this._pendingReplies[i.seq],i.err){var r=i.err;return i.err.$isError&&((r=new Error).name=i.err.name,r.message=i.err.message,r.stack=i.err.stack),void o.e(r)}o.c(i.res)}else{var s=e,a=s.req;this._handler.handleMessage(s.method,s.args).then(function(e){t._send({vsWorker:t._workerId,seq:a,res:e,err:void 0})},function(e){t._send({vsWorker:t._workerId,seq:a,res:void 0,err:n.transformErrorForSerialization(e)})})}},e.prototype._send=function(e){var t=JSON.stringify(e);this._handler.sendMessage(t)},e}(),c=function(e){function t(t,n){var i=e.call(this)||this;i._lastRequestTimestamp=-1;var r=null,s=null;i._worker=i._register(t.create("vs/base/common/worker/simpleWorker",function(e){i._protocol.handleMessage(e)},function(e){s(e)})),i._protocol=new l({sendMessage:function(e){i._worker.postMessage(e)},handleMessage:function(e,t){return o.TPromise.as(null)}}),i._protocol.setWorkerId(i._worker.getId());var u=null,c=self.require;"function"==typeof c.getConfig?u=c.getConfig():void 0!==self.requirejs&&(u=self.requirejs.s.contexts._.config),i._lazyProxy=new o.TPromise(function(e,t,n){r=e,s=t},function(){}),i._onModuleLoaded=i._protocol.sendMessage(a,[i._worker.getId(),n,u]),i._onModuleLoaded.then(function(e){for(var t={},n=0;n0},e.prototype.getChildren=function(e,t){var i=this.modelProvider.getModel();return n.TPromise.as(i===t?i.entries:[])},e.prototype.getParent=function(e,t){return n.TPromise.as(null)},e}();t.DataSource=o;var r=function(){function e(e){this.modelProvider=e}return e.prototype.getAriaLabel=function(e,t){var n=this.modelProvider.getModel();return n.accessibilityProvider&&n.accessibilityProvider.getAriaLabel(t)},e.prototype.getPosInSet=function(e,t){var n=this.modelProvider.getModel();return String(n.entries.indexOf(t)+1)},e.prototype.getSetSize=function(){var e=this.modelProvider.getModel();return String(e.entries.length)},e}();t.AccessibilityProvider=r;var s=function(){function e(e){this.modelProvider=e}return e.prototype.isVisible=function(e,t){var n=this.modelProvider.getModel();return!n.filter||n.filter.isVisible(t)},e}();t.Filter=s;var a=function(){function e(e,t){this.modelProvider=e,this.styles=t}return e.prototype.updateStyles=function(e){this.styles=e},e.prototype.getHeight=function(e,t){return this.modelProvider.getModel().renderer.getHeight(t)},e.prototype.getTemplateId=function(e,t){return this.modelProvider.getModel().renderer.getTemplateId(t)},e.prototype.renderTemplate=function(e,t,n){return this.modelProvider.getModel().renderer.renderTemplate(t,n,this.styles)},e.prototype.renderElement=function(e,t,n,i){this.modelProvider.getModel().renderer.renderElement(t,n,i,this.styles)},e.prototype.disposeTemplate=function(e,t,n){this.modelProvider.getModel().renderer.disposeTemplate(t,n)},e}();t.Renderer=a}),define(d[93],h([0,1]),function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});!function(e){e[e.PREVIEW=0]="PREVIEW",e[e.OPEN=1]="OPEN",e[e.OPEN_IN_BACKGROUND=2]="OPEN_IN_BACKGROUND"}(t.Mode||(t.Mode={}))}),define(d[456],h([0,1]),function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=function(){function e(e,t,n){this._posx=e,this._posy=t,this._target=n}return e.prototype.preventDefault=function(){},e.prototype.stopPropagation=function(){},Object.defineProperty(e.prototype,"posx",{get:function(){return this._posx},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"posy",{get:function(){return this._posy},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"target",{get:function(){return this._target},enumerable:!0,configurable:!0}),e}();t.ContextMenuEvent=n;var i=function(e){function t(t){var n=e.call(this,t.posx,t.posy,t.target)||this;return n.originalEvent=t,n}return f(t,e),t.prototype.preventDefault=function(){this.originalEvent.preventDefault()},t.prototype.stopPropagation=function(){this.originalEvent.stopPropagation()},t}(n);t.MouseContextMenuEvent=i;var o=function(e){function t(t,n,i){var o=e.call(this,t,n,i.target)||this;return o.originalEvent=i,o}return f(t,e),t.prototype.preventDefault=function(){this.originalEvent.preventDefault()},t.prototype.stopPropagation=function(){this.originalEvent.stopPropagation()},t}(n);t.KeyboardContextMenuEvent=o;var r;!function(e){e[e.COPY=0]="COPY",e[e.MOVE=1]="MOVE"}(r=t.DragOverEffect||(t.DragOverEffect={}));var s;!function(e){e[e.BUBBLE_DOWN=0]="BUBBLE_DOWN",e[e.BUBBLE_UP=1]="BUBBLE_UP"}(s=t.DragOverBubble||(t.DragOverBubble={})),t.DRAG_OVER_REJECT={accept:!1},t.DRAG_OVER_ACCEPT={accept:!0},t.DRAG_OVER_ACCEPT_BUBBLE_UP={accept:!0,bubble:s.BUBBLE_UP},t.DRAG_OVER_ACCEPT_BUBBLE_DOWN=function(e){return void 0===e&&(e=!1),{accept:!0,bubble:s.BUBBLE_DOWN,autoExpand:e}},t.DRAG_OVER_ACCEPT_BUBBLE_UP_COPY={accept:!0,bubble:s.BUBBLE_UP,effect:r.COPY},t.DRAG_OVER_ACCEPT_BUBBLE_DOWN_COPY=function(e){return void 0===e&&(e=!1),{accept:!0,bubble:s.BUBBLE_DOWN,effect:r.COPY,autoExpand:e}}}),define(d[451],h([0,1]),function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=function(){function e(e){this.elements=e}return e.prototype.update=function(e){},e.prototype.getData=function(){return this.elements},e}();t.ElementsDragAndDropData=n;var i=function(){function e(e){this.elements=e}return e.prototype.update=function(e){},e.prototype.getData=function(){return this.elements},e}();t.ExternalElementsDragAndDropData=i;var o=function(){function e(){this.types=[],this.files=[]}return e.prototype.update=function(e){e.dataTransfer.types&&(this.types=[],Array.prototype.push.apply(this.types,e.dataTransfer.types)),e.dataTransfer.files&&(this.files=[],Array.prototype.push.apply(this.files,e.dataTransfer.files),this.files=this.files.filter(function(e){return e.size||e.type}))},e.prototype.getData=function(){return{types:this.types,files:this.files}},e}();t.DesktopDragAndDropData=o}),define(d[447],h([0,1,76,10,3,27,38,8]),function(e,t,n,i,o,r,s,a){"use strict";function u(e,t){for(var n=e.getHierarchy(),i=t.getHierarchy(),o=n[r.commonPrefixLength(n,i)-1],s=o.getNavigator(),a=null,u=null,l=0,c=[];o&&(null===a||null===u);)c.push(o),o===e&&(a=l),o===t&&(u=l),l++,o=s.next();if(null===a||null===u)return[];var d=Math.min(a,u),h=Math.max(a,u);return c.slice(d,h+1)}Object.defineProperty(t,"__esModule",{value:!0});var l=function(e){function t(t){var n=e.call(this)||this;return n._item=t,n}return f(t,e),Object.defineProperty(t.prototype,"item",{get:function(){return this._item},enumerable:!0,configurable:!0}),t.prototype.dispose=function(){this.emit("unlock"),e.prototype.dispose.call(this)},t}(s.EventEmitter);t.LockData=l;var c=function(){function e(){this.locks=Object.create({})}return e.prototype.isLocked=function(e){return!!this.locks[e.id]},e.prototype.run=function(e,t){var n=this,i=this.getLock(e);if(i){var o;return new a.Promise(function(r,s){o=i.addOneTimeListener("unlock",function(){return n.run(e,t).then(r,s)})},function(){o.dispose()})}var r;return new a.Promise(function(i,o){if(e.isDisposed())return o(new Error("Item is disposed."));var s=n.locks[e.id]=new l(e);return r=t().then(function(t){return delete n.locks[e.id],s.dispose(),t}).then(i,o)},function(){return r.cancel()})},e.prototype.getLock=function(e){var t;for(t in this.locks){var n=this.locks[t];if(e.intersects(n.item))return n}return null},e}();t.Lock=c;var d=function(e){function t(){var t=e.call(this)||this;return t._isDisposed=!1,t.items={},t}return f(t,e),t.prototype.register=function(e){n.ok(!this.isRegistered(e.id),"item already registered: "+e.id),this.items[e.id]={item:e,disposable:this.addEmitter(e)}},t.prototype.deregister=function(e){n.ok(this.isRegistered(e.id),"item not registered: "+e.id),this.items[e.id].disposable.dispose(),delete this.items[e.id]},t.prototype.isRegistered=function(e){return this.items.hasOwnProperty(e)},t.prototype.getItem=function(e){var t=this.items[e];return t?t.item:null},t.prototype.dispose=function(){e.prototype.dispose.call(this),this.items=null,this._isDisposed=!0},t.prototype.isDisposed=function(){return this._isDisposed},t}(s.EventEmitter);t.ItemRegistry=d;var h=function(e){function t(t,n,i,o,r){var s=e.call(this)||this;return s.registry=n,s.context=i,s.lock=o,s.element=r,s.id=t,s.registry.register(s),s.doesHaveChildren=s.context.dataSource.hasChildren(s.context.tree,s.element),s.needsChildrenRefresh=!0,s.parent=null,s.previous=null,s.next=null,s.firstChild=null,s.lastChild=null,s.userContent=null,s.traits={},s.depth=0,s.expanded=s.context.dataSource.shouldAutoexpand&&s.context.dataSource.shouldAutoexpand(s.context.tree,r),s.emit("item:create",{item:s}),s.visible=s._isVisible(),s.height=s._getHeight(),s._isDisposed=!1,s}return f(t,e),t.prototype.getElement=function(){return this.element},t.prototype.hasChildren=function(){return this.doesHaveChildren},t.prototype.getDepth=function(){return this.depth},t.prototype.isVisible=function(){return this.visible},t.prototype.setVisible=function(e){this.visible=e},t.prototype.isExpanded=function(){return this.expanded},t.prototype._setExpanded=function(e){this.expanded=e},t.prototype.reveal=function(e){void 0===e&&(e=null);var t={item:this,relativeTop:e};this.emit("item:reveal",t)},t.prototype.expand=function(){var e=this;return this.isExpanded()||!this.doesHaveChildren||this.lock.isLocked(this)?a.TPromise.as(!1):this.lock.run(this,function(){var t={item:e};return e.emit("item:expanding",t),(e.needsChildrenRefresh?e.refreshChildren(!1,!0,!0):a.TPromise.as(null)).then(function(){return e._setExpanded(!0),e.emit("item:expanded",t),!0})}).then(function(t){return!e.isDisposed()&&(e.context.options.autoExpandSingleChildren&&t&&null!==e.firstChild&&e.firstChild===e.lastChild&&e.firstChild.isVisible()?e.firstChild.expand().then(function(){return!0}):t)})},t.prototype.collapse=function(e){var t=this;if(void 0===e&&(e=!1),e){var n=a.TPromise.as(null);return this.forEachChild(function(e){n=n.then(function(){return e.collapse(!0)})}),n.then(function(){return t.collapse(!1)})}return!this.isExpanded()||this.lock.isLocked(this)?a.TPromise.as(!1):this.lock.run(this,function(){var e={item:t};return t.emit("item:collapsing",e),t._setExpanded(!1),t.emit("item:collapsed",e),a.TPromise.as(!0)})},t.prototype.addTrait=function(e){var t={item:this,trait:e};this.traits[e]=!0,this.emit("item:addTrait",t)},t.prototype.removeTrait=function(e){var t={item:this,trait:e};delete this.traits[e],this.emit("item:removeTrait",t)},t.prototype.hasTrait=function(e){return this.traits[e]||!1},t.prototype.getAllTraits=function(){var e,t=[];for(e in this.traits)this.traits.hasOwnProperty(e)&&this.traits[e]&&t.push(e);return t},t.prototype.getHeight=function(){return this.height},t.prototype.refreshChildren=function(e,n,o){var r=this;if(void 0===n&&(n=!1),void 0===o&&(o=!1),!o&&!this.isExpanded())return this.needsChildrenRefresh=!0,a.TPromise.as(this);this.needsChildrenRefresh=!1;var s=function(){var o={item:r,isNested:n};r.emit("item:childrenRefreshing",o);return(r.doesHaveChildren?r.context.dataSource.getChildren(r.context.tree,r.element):a.TPromise.as([])).then(function(n){if(r.isDisposed()||r.registry.isDisposed())return a.TPromise.as(null);n=n?n.slice(0):[],n=r.sort(n);for(var i={};null!==r.firstChild;)i[r.firstChild.id]=r.firstChild,r.removeChild(r.firstChild);for(var o=0,s=n.length;o0?o[0]:this.input,s=this.getNavigator(r,!1),a=0;a0?n[0]:this.input,o=this.getNavigator(i,!1).parent();o&&(t?this.setSelection([o],e):this.select(o,e))},t.prototype.setFocus=function(e,t){this.setTraits("focused",e?[e]:[]);var n={focus:this.getFocus(),payload:t};this.emit("focus",n)},t.prototype.isFocused=function(e){var t=this.getItem(e);return!!t&&t.hasTrait("focused")},t.prototype.getFocus=function(e){var t=this.getElementsWithTrait("focused",e);return 0===t.length?null:t[0]},t.prototype.focusNext=function(e,t){void 0===e&&(e=1);for(var n,i=this.getFocus()||this.input,o=this.getNavigator(i,!1),r=0;r=0;r--)this.onInsertItem(l[r]);for(r=this.heightMap.length-1;r>=o;r--)this.onRefreshItem(this.heightMap[r]);return a},t.prototype.onInsertItem=function(e){},t.prototype.onRemoveItems=function(e){for(var t,n,i,o=null,r=0;t=e.next();){if(i=this.indexes[t],!(n=this.heightMap[i]))return void console.error("view item doesnt exist");r-=n.height,delete this.indexes[t],this.onRemoveItem(n),null===o&&(o=i)}if(0!==r)for(this.heightMap.splice(o,i-o+1),i=o;i=n.top+n.height))return t;if(i===t)break;i=t}return this.heightMap.length},t.prototype.indexAfter=function(e){return Math.min(this.indexAt(e)+1,this.heightMap.length)},t.prototype.itemAtIndex=function(e){return this.heightMap[e]},t.prototype.itemAfter=function(e){return this.heightMap[this.indexes[e.model.id]+1]||null},t.prototype.createViewItem=function(e){throw new Error("not implemented")},t.prototype.dispose=function(){this.heightMap=null,this.indexes=null},t}(n.EventEmitter);t.HeightMap=o}),define(d[436],h([0,1,15,192]),function(e,t,n,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=function(e,t){return void 0===t&&(t=!1),n.globals.MonacoEnvironment&&n.globals.MonacoEnvironment.hasOwnProperty(e)?n.globals.MonacoEnvironment[e]:t}("getWorkerUrl",null)||function(t,n){return e.toUrl("./"+t)+"#"+n},r=function(){function e(e,t,n,i,r){this.id=t,this.worker=new Worker(o("workerMain.js",n)),this.postMessage(e),this.worker.onmessage=function(e){i(e.data)},"function"==typeof this.worker.addEventListener&&this.worker.addEventListener("error",r)}return e.prototype.getId=function(){return this.id},e.prototype.postMessage=function(e){this.worker&&this.worker.postMessage(e)},e.prototype.dispose=function(){this.worker.terminate(),this.worker=null},e}(),s=function(){function e(e){this._label=e,this._webWorkerFailedBeforeError=!1}return e.prototype.create=function(t,n,o){var s=this,a=++e.LAST_WORKER_ID;if(this._webWorkerFailedBeforeError)throw this._webWorkerFailedBeforeError;return new r(t,a,this._label||"anonymous"+a,n,function(e){i.logOnceWebWorkerWarning(e),s._webWorkerFailedBeforeError=e,o(e)})},e}();s.LAST_WORKER_ID=0,t.DefaultWorkerFactory=s}),define(d[435],h([4]),{}),define(d[50],h([0,1,8,29,3,9,76,6,435]),function(e,t,n,i,o,r,s,a){"use strict";function u(e,t){s.ok(i.isString(e),"Expected String as parameter");var n=document.getElementById(e);return n?new x(n,t):null}function l(e){return e[C]||(e[C]={}),e[C]}function c(e){return!!e[C]}function d(e,t){return e instanceof N?new N(e):new x(e.getHTMLElement(),t)}function h(e,t){return new x(e,t)}function p(){return new x(null,!0)}function g(e,t,n){l(e)[t]=n}function m(e,t,n){if(c(e)){var o=l(e)[t];if(!i.isUndefined(o))return o}return n}function v(e,t){c(e)&&delete l(e)[t]}function _(e,t){g(e,w,t)}function y(e){v(e,w)}function b(e){return m(e,w)}Object.defineProperty(t,"__esModule",{value:!0}),t.withElementById=u,t.Build={withElementById:u};var C="_msDataKey",w="__$binding",S=function(){return function(e,t){this.x=e,this.y=t}}();t.Position=S;var E=function(){return function(e,t,n,i){this.top=e,this.right=t,this.bottom=n,this.left=i}}();t.Box=E;var L=function(){function e(e,t){this.width=e,this.height=t}return e.prototype.substract=function(t){return new e(this.width-t.left-t.right,this.height-t.top-t.bottom)},e}();t.Dimension=L;var x=function(){function e(e,t){this.offdom=t,this.container=e,this.currentElement=e,this.createdElements=[],this.toUnbind={},this.captureToUnbind={}}return e.prototype.asContainer=function(){return d(this,this.offdom)},e.prototype.clone=function(){var t=new e(this.container,this.offdom);return t.currentElement=this.currentElement,t.createdElements=this.createdElements,t.captureToUnbind=this.captureToUnbind,t.toUnbind=this.toUnbind,t},e.prototype.and=function(t){t instanceof e||t instanceof N||(t=new e(t,this.offdom));var n=[this];if(t instanceof N)for(var i=0;i=0){var n=e.split("-");e=n[0];for(var i=1;i=0){var t=e.split("-");e=t[0];for(var n=1;n=0?this.padding.apply(this,e.split(" ")):(i.isUndefinedOrNull(e)||(this.currentElement.style.paddingTop=this.toPixel(e)),i.isUndefinedOrNull(t)||(this.currentElement.style.paddingRight=this.toPixel(t)),i.isUndefinedOrNull(n)||(this.currentElement.style.paddingBottom=this.toPixel(n)),i.isUndefinedOrNull(o)||(this.currentElement.style.paddingLeft=this.toPixel(o)),this)},e.prototype.margin=function(e,t,n,o){return i.isString(e)&&e.indexOf(" ")>=0?this.margin.apply(this,e.split(" ")):(i.isUndefinedOrNull(e)||(this.currentElement.style.marginTop=this.toPixel(e)),i.isUndefinedOrNull(t)||(this.currentElement.style.marginRight=this.toPixel(t)),i.isUndefinedOrNull(n)||(this.currentElement.style.marginBottom=this.toPixel(n)),i.isUndefinedOrNull(o)||(this.currentElement.style.marginLeft=this.toPixel(o)),this)},e.prototype.position=function(e,t,n,o,r){return i.isString(e)&&e.indexOf(" ")>=0?this.position.apply(this,e.split(" ")):(i.isUndefinedOrNull(e)||(this.currentElement.style.top=this.toPixel(e)),i.isUndefinedOrNull(t)||(this.currentElement.style.right=this.toPixel(t)),i.isUndefinedOrNull(n)||(this.currentElement.style.bottom=this.toPixel(n)),i.isUndefinedOrNull(o)||(this.currentElement.style.left=this.toPixel(o)),r||(r="absolute"),this.currentElement.style.position=r,this)},e.prototype.size=function(e,t){return i.isString(e)&&e.indexOf(" ")>=0?this.size.apply(this,e.split(" ")):(i.isUndefinedOrNull(e)||(this.currentElement.style.width=this.toPixel(e)),i.isUndefinedOrNull(t)||(this.currentElement.style.height=this.toPixel(t)),this)},e.prototype.minSize=function(e,t){return i.isString(e)&&e.indexOf(" ")>=0?this.minSize.apply(this,e.split(" ")):(i.isUndefinedOrNull(e)||(this.currentElement.style.minWidth=this.toPixel(e)),i.isUndefinedOrNull(t)||(this.currentElement.style.minHeight=this.toPixel(t)),this)},e.prototype.maxSize=function(e,t){return i.isString(e)&&e.indexOf(" ")>=0?this.maxSize.apply(this,e.split(" ")):(i.isUndefinedOrNull(e)||(this.currentElement.style.maxWidth=this.toPixel(e)),i.isUndefinedOrNull(t)||(this.currentElement.style.maxHeight=this.toPixel(t)),this)},e.prototype.float=function(e){return this.currentElement.style.cssFloat=e,this},e.prototype.clear=function(e){return this.currentElement.style.clear=e,this},e.prototype.normal=function(){return this.currentElement.style.fontStyle="normal",this.currentElement.style.fontWeight="normal",this.currentElement.style.textDecoration="none",this},e.prototype.italic=function(){return this.currentElement.style.fontStyle="italic",this},e.prototype.bold=function(){return this.currentElement.style.fontWeight="bold",this},e.prototype.underline=function(){return this.currentElement.style.textDecoration="underline",this},e.prototype.overflow=function(e){return this.currentElement.style.overflow=e,this},e.prototype.display=function(e){return this.currentElement.style.display=e,this},e.prototype.disable=function(){return this.currentElement.setAttribute("disabled","disabled"),this},e.prototype.enable=function(){return this.currentElement.removeAttribute("disabled"),this},e.prototype.show=function(){return this.hasClass("builder-hidden")&&this.removeClass("builder-hidden"),this.attr("aria-hidden","false"),this.cancelVisibilityPromise(),this},e.prototype.showDelayed=function(e){var t=this;this.cancelVisibilityPromise();var i=n.TPromise.timeout(e);return this.setProperty("__$visibility",i),i.done(function(){t.removeProperty("__$visibility"),t.show()}),this},e.prototype.hide=function(){return this.hasClass("builder-hidden")||this.addClass("builder-hidden"),this.attr("aria-hidden","true"),this.cancelVisibilityPromise(),this},e.prototype.isHidden=function(){return this.hasClass("builder-hidden")||"none"===this.currentElement.style.display},e.prototype.toggleVisibility=function(){return this.cancelVisibilityPromise(),this.swapClass("builder-visible","builder-hidden"),this.isHidden()?this.attr("aria-hidden","true"):this.attr("aria-hidden","false"),this},e.prototype.cancelVisibilityPromise=function(){var e=this.getProperty("__$visibility");e&&(e.cancel(),this.removeProperty("__$visibility"))},e.prototype.border=function(e,t,n){return i.isString(e)&&e.indexOf(" ")>=0?this.border.apply(this,e.split(" ")):(this.currentElement.style.borderWidth=this.toPixel(e),n&&(this.currentElement.style.borderColor=n),t&&(this.currentElement.style.borderStyle=t),this)},e.prototype.borderTop=function(e,t,n){return i.isString(e)&&e.indexOf(" ")>=0?this.borderTop.apply(this,e.split(" ")):(this.currentElement.style.borderTopWidth=this.toPixel(e),n&&(this.currentElement.style.borderTopColor=n),t&&(this.currentElement.style.borderTopStyle=t),this)},e.prototype.borderBottom=function(e,t,n){return i.isString(e)&&e.indexOf(" ")>=0?this.borderBottom.apply(this,e.split(" ")):(this.currentElement.style.borderBottomWidth=this.toPixel(e),n&&(this.currentElement.style.borderBottomColor=n),t&&(this.currentElement.style.borderBottomStyle=t),this)},e.prototype.borderLeft=function(e,t,n){return i.isString(e)&&e.indexOf(" ")>=0?this.borderLeft.apply(this,e.split(" ")):(this.currentElement.style.borderLeftWidth=this.toPixel(e),n&&(this.currentElement.style.borderLeftColor=n),t&&(this.currentElement.style.borderLeftStyle=t),this)},e.prototype.borderRight=function(e,t,n){return i.isString(e)&&e.indexOf(" ")>=0?this.borderRight.apply(this,e.split(" ")):(this.currentElement.style.borderRightWidth=this.toPixel(e),n&&(this.currentElement.style.borderRightColor=n),t&&(this.currentElement.style.borderRightStyle=t),this)},e.prototype.textAlign=function(e){return this.currentElement.style.textAlign=e,this},e.prototype.verticalAlign=function(e){return this.currentElement.style.verticalAlign=e,this},e.prototype.toPixel=function(e){return-1===e.toString().indexOf("px")?e.toString()+"px":e},e.prototype.innerHtml=function(e,t){return t?this.currentElement.innerHTML+=e:this.currentElement.innerHTML=e,this},e.prototype.text=function(e,t){return t?0===this.currentElement.children.length?this.currentElement.textContent+=e:this.currentElement.appendChild(document.createTextNode(e)):this.currentElement.textContent=e,this},e.prototype.safeInnerHtml=function(e,t){return this.innerHtml(r.escape(e),t)},e.prototype.bind=function(e){return _(this.currentElement,e),this},e.prototype.unbind=function(){return y(this.currentElement),this},e.prototype.getBinding=function(){return b(this.currentElement)},e.prototype.setProperty=function(e,t){return g(this.currentElement,e,t),this},e.prototype.getProperty=function(e,t){return m(this.currentElement,e,t)},e.prototype.removeProperty=function(e){return c(this.currentElement)&&delete l(this.currentElement)[e],this},e.prototype.parent=function(e){return s.ok(!this.offdom,"Builder was created with offdom = true and thus has no parent set"),h(this.currentElement.parentNode,e)},e.prototype.children=function(e){for(var t=this.currentElement.children,n=[],i=0;i=n.top&&o+e.height<=n.top+n.height,l=r>=n.top&&r+e.height<=n.top+n.height;return s(o,a,r,l,i===u.ABOVE)}(),left:function(){var i=t.left,r=t.left+t.width-e.width,u=i>=n.left&&i+e.width<=n.left+n.width,l=r>=n.left&&r+e.width<=n.left+n.width;return s(i,u,r,l,o===a.LEFT)}()}}Object.defineProperty(t,"__esModule",{value:!0});var a;!function(e){e[e.LEFT=0]="LEFT",e[e.RIGHT=1]="RIGHT"}(a=t.AnchorAlignment||(t.AnchorAlignment={}));var u;!function(e){e[e.BELOW=0]="BELOW",e[e.ABOVE=1]="ABOVE"}(u=t.AnchorPosition||(t.AnchorPosition={}));var l=function(e){function t(t){var i=e.call(this)||this;return i.$view=n.$(".context-view").hide(),i.setContainer(t),i.toDispose=[{dispose:function(){i.setContainer(null)}}],i.toDisposeOnClean=null,i}return f(t,e),t.prototype.setContainer=function(e){var i=this;this.$container&&(this.$container.off(t.BUBBLE_UP_EVENTS),this.$container.off(t.BUBBLE_DOWN_EVENTS,!0),this.$container=null),e&&(this.$container=n.$(e),this.$view.appendTo(this.$container),this.$container.on(t.BUBBLE_UP_EVENTS,function(e){i.onDOMEvent(e,document.activeElement,!1)}),this.$container.on(t.BUBBLE_DOWN_EVENTS,function(e){i.onDOMEvent(e,document.activeElement,!0)},null,!0))},t.prototype.show=function(e){this.isVisible()&&this.hide(),this.$view.setClass("context-view").empty().style({top:"0px",left:"0px"}).show(),this.toDisposeOnClean=e.render(this.$view.getHTMLElement()),this.delegate=e,this.doLayout()},t.prototype.layout=function(){this.isVisible()&&(!1!==this.delegate.canRelayout?(this.delegate.layout&&this.delegate.layout(),this.doLayout()):this.hide())},t.prototype.doLayout=function(){var e,t=this.delegate.getAnchor();if(i.isHTMLElement(t)){var n=i.getDomNodePagePosition(t);e={top:n.top,left:n.left,width:n.width,height:n.height}}else{var o=t;e={top:o.y,left:o.x,width:o.width||0,height:o.height||0}}var r={top:i.StandardWindow.scrollY,left:i.StandardWindow.scrollX,height:window.innerHeight,width:window.innerWidth},l=this.$view.getTotalSize(),c={width:l.width,height:l.height},d=this.delegate.anchorPosition||u.BELOW,h=this.delegate.anchorAlignment||a.LEFT,p=s(c,e,r,d,h),f=i.getDomNodePagePosition(this.$container.getHTMLElement());p.top-=f.top,p.left-=f.left,this.$view.removeClass("top","bottom","left","right"),this.$view.addClass(d===u.BELOW?"bottom":"top"),this.$view.addClass(h===a.LEFT?"left":"right"),this.$view.style({top:p.top+"px",left:p.left+"px",width:"initial"})},t.prototype.hide=function(e){this.delegate&&this.delegate.onHide&&this.delegate.onHide(e),this.delegate=null,this.toDisposeOnClean&&(this.toDisposeOnClean.dispose(),this.toDisposeOnClean=null),this.$view.hide()},t.prototype.isVisible=function(){return!!this.delegate},t.prototype.onDOMEvent=function(e,t,n){this.delegate&&(this.delegate.onDOMEvent?this.delegate.onDOMEvent(e,document.activeElement):n&&!i.isAncestor(e.target,this.$container.getHTMLElement())&&this.hide())},t.prototype.dispose=function(){e.prototype.dispose.call(this),this.hide(),this.toDispose=o.dispose(this.toDispose)},t}(r.EventEmitter);l.BUBBLE_UP_EVENTS=["click","keydown","focus","blur"],l.BUBBLE_DOWN_EVENTS=["click"],t.ContextView=l}),define(d[424],h([4]),{}),define(d[419],h([0,1,6,9,34,28,424]),function(e,t,n,i,o,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var s={badgeBackground:o.Color.fromHex("#4D4D4D"),badgeForeground:o.Color.fromHex("#FFFFFF")},a=function(){function e(e,t){this.options=t||Object.create(null),r.mixin(this.options,s,!1),this.badgeBackground=this.options.badgeBackground,this.badgeForeground=this.options.badgeForeground,this.badgeBorder=this.options.badgeBorder,this.element=n.append(e,n.$(".monaco-count-badge")),this.titleFormat=this.options.titleFormat||"",this.setCount(this.options.count||0)}return e.prototype.setCount=function(e){this.count=e,this.render()},e.prototype.setTitleFormat=function(e){this.titleFormat=e,this.render()},e.prototype.render=function(){this.element.textContent=""+this.count,this.element.title=i.format(this.titleFormat,this.count),this.applyStyles()},e.prototype.style=function(e){this.badgeBackground=e.badgeBackground,this.badgeForeground=e.badgeForeground,this.badgeBorder=e.badgeBorder,this.applyStyles()},e.prototype.applyStyles=function(){if(this.element){var e=this.badgeBackground?this.badgeBackground.toString():null,t=this.badgeForeground?this.badgeForeground.toString():null,n=this.badgeBorder?this.badgeBorder.toString():null;this.element.style.backgroundColor=e,this.element.style.color=t,this.element.style.borderWidth=n?"1px":null,this.element.style.borderStyle=n?"solid":null,this.element.style.borderColor=n}},e}();t.CountBadge=a}),define(d[418],h([4]),{}),define(d[417],h([4]),{}),define(d[416],h([4]),{}),define(d[185],h([0,1,6,124,46,152,416]),function(e,t,n,i,o,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var s=function(){function e(e,t){this.domNode=n.append(e,n.$(".monaco-icon-label")),t&&t.supportHighlights?this.labelNode=new i.HighlightedLabel(n.append(this.domNode,n.$("a.label-name"))):this.labelNode=n.append(this.domNode,n.$("a.label-name")),this.descriptionNode=n.append(this.domNode,n.$("span.label-description"))}return Object.defineProperty(e.prototype,"element",{get:function(){return this.domNode},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"labelElement",{get:function(){var e=this.labelNode;return e instanceof i.HighlightedLabel?e.element:e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"descriptionElement",{get:function(){return this.descriptionNode},enumerable:!0,configurable:!0}),e.prototype.setValue=function(e,t,o){var r=this.labelNode;r instanceof i.HighlightedLabel?r.set(e||"",o?o.matches:void 0):r.textContent=e||"",this.descriptionNode.textContent=t||"",t?n.removeClass(this.descriptionNode,"empty"):n.addClass(this.descriptionNode,"empty"),this.domNode.title=o&&o.title?o.title:"";var s=["monaco-icon-label"];o&&(o.extraClasses&&s.push.apply(s,o.extraClasses),o.italic&&s.push("italic")),this.domNode.className=s.join(" ")},e.prototype.dispose=function(){var e=this.labelNode;e instanceof i.HighlightedLabel&&e.dispose()},e}();t.IconLabel=s;var a=function(e){function t(t,n,i,o){var r=e.call(this,t)||this;return r.setFile(n,i,o),r}return f(t,e),t.prototype.setFile=function(e,t,n){var i=o.dirname(e.fsPath);this.setValue(o.basename(e.fsPath),i&&"."!==i?r.getPathLabel(i,t,n):"",{title:e.fsPath})},t}(s);t.FileLabel=a}),define(d[414],h([4]),{}),define(d[412],h([4]),{}),define(d[411],h([4]),{}),define(d[406],h([4]),{}),define(d[405],h([4]),{}),define(d[402],h([0,1,8,76,50,6,3,34,28,405]),function(e,t,n,i,o,r,s,a,u){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var l={progressBarBackground:a.Color.fromHex("#0E70C0")},c=function(){function e(e,t){this.options=t||Object.create(null),u.mixin(this.options,l,!1),this.toUnbind=[],this.workedVal=0,this.progressBarBackground=this.options.progressBarBackground,this.create(e)}return e.prototype.create=function(e){var t=this;e.div({class:"progress-container"},function(e){t.element=e.clone(),e.div({class:"progress-bit"}).on([r.EventType.ANIMATION_START,r.EventType.ANIMATION_END,r.EventType.ANIMATION_ITERATION],function(e){switch(e.type){case r.EventType.ANIMATION_START:case r.EventType.ANIMATION_END:t.animationRunning=e.type===r.EventType.ANIMATION_START;break;case r.EventType.ANIMATION_ITERATION:t.animationStopToken&&t.animationStopToken(null)}},t.toUnbind),t.bit=e.getHTMLElement()}),this.applyStyles()},e.prototype.off=function(){this.bit.style.width="inherit",this.bit.style.opacity="1",this.element.removeClass("active"),this.element.removeClass("infinite"),this.element.removeClass("discrete"),this.workedVal=0,this.totalWork=void 0},e.prototype.done=function(){return this.doDone(!0)},e.prototype.stop=function(){return this.doDone(!1)},e.prototype.doDone=function(e){var t=this;return this.element.addClass("done"),this.element.hasClass("infinite")?(this.bit.style.opacity="0",e?n.TPromise.timeout(200).then(function(){return t.off()}):this.off()):(this.bit.style.width="inherit",e?n.TPromise.timeout(200).then(function(){return t.off()}):this.off()),this},e.prototype.infinite=function(){return this.bit.style.width="2%",this.bit.style.opacity="1",this.element.removeClass("discrete"),this.element.removeClass("done"),this.element.addClass("active"),this.element.addClass("infinite"),this},e.prototype.total=function(e){return this.workedVal=0,this.totalWork=e,this},e.prototype.hasTotal=function(){return!isNaN(this.totalWork)},e.prototype.worked=function(e){return i.ok(!isNaN(this.totalWork),"Total work not set"),e=Number(e),i.ok(!isNaN(e),"Value is not a number"),e=Math.max(1,e),this.workedVal+=e,this.workedVal=Math.min(this.totalWork,this.workedVal),this.element.hasClass("infinite")&&this.element.removeClass("infinite"),this.element.hasClass("done")&&this.element.removeClass("done"),this.element.hasClass("active")||this.element.addClass("active"),this.element.hasClass("discrete")||this.element.addClass("discrete"),this.bit.style.width=this.workedVal/this.totalWork*100+"%",this},e.prototype.getContainer=function(){return o.$(this.element)},e.prototype.style=function(e){this.progressBarBackground=e.progressBarBackground,this.applyStyles()},e.prototype.applyStyles=function(){if(this.bit){var e=this.progressBarBackground?this.progressBarBackground.toString():null;this.bit.style.backgroundColor=e}},e.prototype.dispose=function(){this.toUnbind=s.dispose(this.toUnbind)},e}();t.ProgressBar=c}),define(d[400],h([4]),{}),define(d[99],h([0,1,3,50,30,15,29,6,75,38,45,11,400]),function(e,t,n,i,o,r,s,a,u,l,c,d){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var h;!function(e){e[e.VERTICAL=0]="VERTICAL",e[e.HORIZONTAL=1]="HORIZONTAL"}(h=t.Orientation||(t.Orientation={}));var p=function(e){function t(t,n,s){void 0===s&&(s={});var l=e.call(this)||this;return l.$e=i.$(".monaco-sash").appendTo(t),r.isMacintosh&&l.$e.addClass("mac"),l.gesture=new u.Gesture(l.$e.getHTMLElement()),l.$e.on(a.EventType.MOUSE_DOWN,function(e){l.onMouseDown(e)}),l.$e.on(a.EventType.DBLCLICK,function(e){l.emit("reset",e)}),l.$e.on(u.EventType.Start,function(e){l.onTouchStart(e)}),l.size=s.baseSize||5,o.isIPad&&(l.size*=4,l.$e.addClass("touch")),l.setOrientation(s.orientation||h.VERTICAL),l.isDisabled=!1,l.hidden=!1,l.layoutProvider=n,l}return f(t,e),t.prototype.getHTMLElement=function(){return this.$e.getHTMLElement()},t.prototype.setOrientation=function(e){this.orientation=e,this.$e.removeClass("horizontal","vertical"),this.$e.addClass(this.getOrientation()),this.orientation===h.HORIZONTAL?this.$e.size(null,this.size):this.$e.size(this.size),this.layoutProvider&&this.layout()},t.prototype.getOrientation=function(){return this.orientation===h.HORIZONTAL?"horizontal":"vertical"},t.prototype.onMouseDown=function(e){var t=this;if(a.EventHelper.stop(e,!1),!this.isDisabled){var n=i.$(a.getElementsByTagName("iframe"));n&&n.style("pointer-events","none");var o=new c.StandardMouseEvent(e),s=o.posx,u=o.posy,l={startX:s,currentX:s,startY:u,currentY:u};this.$e.addClass("active"),this.emit("start",l);var d=i.$(window),h=this.getOrientation()+"-cursor-container"+(r.isMacintosh?"-mac":""),p=s,f=u;d.on("mousemove",function(e){a.EventHelper.stop(e,!1);var n=new c.StandardMouseEvent(e),i={startX:s,currentX:n.posx,startY:u,currentY:n.posy};p=n.posx,f=n.posy,t.emit("change",i)}).once("mouseup",function(e){a.EventHelper.stop(e,!1),t.$e.removeClass("active"),t.emit("end"),d.off("mousemove"),document.body.classList.remove(h);var n=i.$(a.getElementsByTagName("iframe"));n&&n.style("pointer-events","auto")}),document.body.classList.add(h)}},t.prototype.onTouchStart=function(e){var t=this;a.EventHelper.stop(e);var i=[],o=e.pageX,r=e.pageY;this.emit("start",{startX:o,currentX:o,startY:r,currentY:r});var l=o,c=r;i.push(a.addDisposableListener(this.$e.getHTMLElement(),u.EventType.Change,function(e){s.isNumber(e.pageX)&&s.isNumber(e.pageY)&&(t.emit("change",{startX:o,currentX:e.pageX,startY:r,currentY:e.pageY}),l=e.pageX,c=e.pageY)})),i.push(a.addDisposableListener(this.$e.getHTMLElement(),u.EventType.End,function(e){t.emit("end"),n.dispose(i)}))},t.prototype.layout=function(){var e;if(this.orientation===h.VERTICAL){var t=this.layoutProvider;e={left:t.getVerticalSashLeft(this)-this.size/2+"px"},t.getVerticalSashTop&&(e.top=t.getVerticalSashTop(this)+"px"),t.getVerticalSashHeight&&(e.height=t.getVerticalSashHeight(this)+"px")}else{var n=this.layoutProvider;e={top:n.getHorizontalSashTop(this)-this.size/2+"px"},n.getHorizontalSashLeft&&(e.left=n.getHorizontalSashLeft(this)+"px"),n.getHorizontalSashWidth&&(e.width=n.getHorizontalSashWidth(this)+"px")}this.$e.style(e)},t.prototype.show=function(){this.hidden=!1,this.$e.show()},t.prototype.hide=function(){this.hidden=!0,this.$e.hide()},t.prototype.isHidden=function(){return this.hidden},t.prototype.enable=function(){this.$e.removeClass("disabled"),this.isDisabled=!1},t.prototype.disable=function(){this.$e.addClass("disabled"),this.isDisabled=!0},t.prototype.dispose=function(){this.$e&&(this.$e.destroy(),this.$e=null),e.prototype.dispose.call(this)},t}(l.EventEmitter);t.Sash=p;var g=function(e){function t(t,n){var i=e.call(this)||this;return i.minWidth=n,i._onPositionChange=new d.Emitter,i.ratio=.5,i.sash=new p(t,i),i._register(i.sash.addListener("start",function(){return i.onSashDragStart()})),i._register(i.sash.addListener("change",function(e){return i.onSashDrag(e)})),i._register(i.sash.addListener("end",function(){return i.onSashDragEnd()})),i._register(i.sash.addListener("reset",function(){return i.onSashReset()})),i}return f(t,e),Object.defineProperty(t.prototype,"onPositionChange",{get:function(){return this._onPositionChange.event},enumerable:!0,configurable:!0}),t.prototype.getVerticalSashTop=function(){return 0},t.prototype.getVerticalSashLeft=function(){return this.position},t.prototype.getVerticalSashHeight=function(){return this.dimension.height},t.prototype.setDimenesion=function(e){this.dimension=e,this.compute(this.ratio)},t.prototype.onSashDragStart=function(){this.startPosition=this.position},t.prototype.onSashDrag=function(e){this.compute((this.startPosition+(e.currentX-e.startX))/this.dimension.width)},t.prototype.compute=function(e){this.computeSashPosition(e),this.ratio=this.position/this.dimension.width,this._onPositionChange.fire(this.position)},t.prototype.onSashDragEnd=function(){this.sash.layout()},t.prototype.onSashReset=function(){this.ratio=.5,this._onPositionChange.fire(this.position),this.sash.layout()},t.prototype.computeSashPosition=function(e){void 0===e&&(e=this.ratio);var t=this.dimension.width,n=Math.floor((e||.5)*t),i=Math.floor(.5*t);t>2*this.minWidth?(nt-this.minWidth&&(n=t-this.minWidth)):n=i,this.position!==n&&(this.position=n,this.sash.layout())},t}(n.Disposable);t.VSash=g}),define(d[399],h([4]),{}),define(d[61],h([0,1,6,15,45,465,463,3,51,44,18,26,11,399]),function(e,t,n,i,o,r,s,a,u,l,c,d,h){"use strict";function p(e){var t={lazyRender:void 0!==e.lazyRender&&e.lazyRender,className:void 0!==e.className?e.className:"",useShadows:void 0===e.useShadows||e.useShadows,handleMouseWheel:void 0===e.handleMouseWheel||e.handleMouseWheel,flipAxes:void 0!==e.flipAxes&&e.flipAxes,alwaysConsumeMouseWheel:void 0!==e.alwaysConsumeMouseWheel&&e.alwaysConsumeMouseWheel,scrollYToX:void 0!==e.scrollYToX&&e.scrollYToX,mouseWheelScrollSensitivity:void 0!==e.mouseWheelScrollSensitivity?e.mouseWheelScrollSensitivity:1,arrowSize:void 0!==e.arrowSize?e.arrowSize:11,listenOnDomNode:void 0!==e.listenOnDomNode?e.listenOnDomNode:null,horizontal:void 0!==e.horizontal?e.horizontal:u.ScrollbarVisibility.Auto,horizontalScrollbarSize:void 0!==e.horizontalScrollbarSize?e.horizontalScrollbarSize:10,horizontalSliderSize:void 0!==e.horizontalSliderSize?e.horizontalSliderSize:0,horizontalHasArrows:void 0!==e.horizontalHasArrows&&e.horizontalHasArrows,vertical:void 0!==e.vertical?e.vertical:u.ScrollbarVisibility.Auto,verticalScrollbarSize:void 0!==e.verticalScrollbarSize?e.verticalScrollbarSize:10,verticalHasArrows:void 0!==e.verticalHasArrows&&e.verticalHasArrows,verticalSliderSize:void 0!==e.verticalSliderSize?e.verticalSliderSize:0};return t.horizontalSliderSize=void 0!==e.horizontalSliderSize?e.horizontalSliderSize:t.horizontalScrollbarSize,t.verticalSliderSize=void 0!==e.verticalSliderSize?e.verticalSliderSize:t.verticalScrollbarSize,i.isMacintosh&&(t.className+=" mac"),t}Object.defineProperty(t,"__esModule",{value:!0});var g=function(e){function t(t,n,i){var o=e.call(this)||this;o._onScroll=o._register(new h.Emitter),o.onScroll=o._onScroll.event,t.style.overflow="hidden",o._options=p(n),o._scrollable=void 0===i?o._register(new u.Scrollable):i,o._register(o._scrollable.onScroll(function(e){o._onDidScroll(e),o._onScroll.fire(e)}));var a={onMouseWheel:function(e){return o._onMouseWheel(e)},onDragStart:function(){return o._onDragStart()},onDragEnd:function(){return o._onDragEnd()}};return o._verticalScrollbar=o._register(new s.VerticalScrollbar(o._scrollable,o._options,a)),o._horizontalScrollbar=o._register(new r.HorizontalScrollbar(o._scrollable,o._options,a)),o._domNode=document.createElement("div"),o._domNode.className="monaco-scrollable-element "+o._options.className,o._domNode.setAttribute("role","presentation"),o._domNode.style.position="relative",o._domNode.style.overflow="hidden",o._domNode.appendChild(t),o._domNode.appendChild(o._horizontalScrollbar.domNode.domNode),o._domNode.appendChild(o._verticalScrollbar.domNode.domNode),o._options.useShadows&&(o._leftShadowDomNode=d.createFastDomNode(document.createElement("div")),o._leftShadowDomNode.setClassName("shadow"),o._domNode.appendChild(o._leftShadowDomNode.domNode),o._topShadowDomNode=d.createFastDomNode(document.createElement("div")),o._topShadowDomNode.setClassName("shadow"),o._domNode.appendChild(o._topShadowDomNode.domNode),o._topLeftShadowDomNode=d.createFastDomNode(document.createElement("div")),o._topLeftShadowDomNode.setClassName("shadow top-left-corner"),o._domNode.appendChild(o._topLeftShadowDomNode.domNode)),o._listenOnDomNode=o._options.listenOnDomNode||o._domNode,o._mouseWheelToDispose=[],o._setListeningToMouseWheel(o._options.handleMouseWheel),o.onmouseover(o._listenOnDomNode,function(e){return o._onMouseOver(e)}),o.onnonbubblingmouseout(o._listenOnDomNode,function(e){return o._onMouseOut(e)}),o._hideTimeout=o._register(new c.TimeoutTimer),o._isDragging=!1,o._mouseIsOver=!1,o._shouldRender=!0,o}return f(t,e),t.prototype.dispose=function(){this._mouseWheelToDispose=a.dispose(this._mouseWheelToDispose),e.prototype.dispose.call(this)},t.prototype.getDomNode=function(){return this._domNode},t.prototype.getOverviewRulerLayoutInfo=function(){return{parent:this._domNode,insertBefore:this._verticalScrollbar.domNode.domNode}},t.prototype.delegateVerticalScrollbarMouseDown=function(e){this._verticalScrollbar.delegateMouseDown(e)},t.prototype.delegateSliderMouseDown=function(e,t){this._verticalScrollbar.delegateSliderMouseDown(e,t)},t.prototype.updateState=function(e){this._scrollable.updateState(e)},t.prototype.getScrollState=function(){return this._scrollable.getState()},t.prototype.updateClassName=function(e){this._options.className=e,i.isMacintosh&&(this._options.className+=" mac"),this._domNode.className="monaco-scrollable-element "+this._options.className},t.prototype.updateOptions=function(e){var t=p(e);this._options.handleMouseWheel=t.handleMouseWheel,this._options.mouseWheelScrollSensitivity=t.mouseWheelScrollSensitivity,this._setListeningToMouseWheel(this._options.handleMouseWheel),this._options.lazyRender||this._render()},t.prototype._setListeningToMouseWheel=function(e){var t=this;if(this._mouseWheelToDispose.length>0!==e&&(this._mouseWheelToDispose=a.dispose(this._mouseWheelToDispose),e)){var i=function(e){var n=new o.StandardMouseWheelEvent(e);t._onMouseWheel(n)};this._mouseWheelToDispose.push(n.addDisposableListener(this._listenOnDomNode,"mousewheel",i)),this._mouseWheelToDispose.push(n.addDisposableListener(this._listenOnDomNode,"DOMMouseScroll",i))}},t.prototype._onMouseWheel=function(e){var t=-1,n=-1;if(e.deltaY||e.deltaX){var o=e.deltaY*this._options.mouseWheelScrollSensitivity,r=e.deltaX*this._options.mouseWheelScrollSensitivity;this._options.flipAxes&&(o=(c=[r,o])[0],r=c[1]);var s=!i.isMacintosh&&e.browserEvent.shiftKey;!this._options.scrollYToX&&!s||r||(r=o,o=0),i.isMacintosh&&(o&&Math.abs(r)<.2&&(r=0),Math.abs(o)>.5*Math.abs(r)&&(r=0));var a=this._scrollable.getState();if(o){var u=a.scrollTop;(t=this._verticalScrollbar.validateScrollPosition((-1!==t?t:u)-50*o))===u&&(t=-1)}if(r){var l=a.scrollLeft;(n=this._horizontalScrollbar.validateScrollPosition((-1!==n?n:l)-50*r))===l&&(n=-1)}-1===t&&-1===n||(-1!==t&&(this._shouldRender=this._verticalScrollbar.setDesiredScrollPosition(t)||this._shouldRender,t=-1),-1!==n&&(this._shouldRender=this._horizontalScrollbar.setDesiredScrollPosition(n)||this._shouldRender,n=-1))}(this._options.alwaysConsumeMouseWheel||this._shouldRender)&&(e.preventDefault(),e.stopPropagation());var c},t.prototype._onDidScroll=function(e){this._shouldRender=this._horizontalScrollbar.onDidScroll(e)||this._shouldRender,this._shouldRender=this._verticalScrollbar.onDidScroll(e)||this._shouldRender,this._options.useShadows&&(this._shouldRender=!0),this._reveal(),this._options.lazyRender||this._render()},t.prototype.renderNow=function(){if(!this._options.lazyRender)throw new Error("Please use `lazyRender` together with `renderNow`!");this._render()},t.prototype._render=function(){if(this._shouldRender&&(this._shouldRender=!1,this._horizontalScrollbar.render(),this._verticalScrollbar.render(),this._options.useShadows)){var e=this._scrollable.getState(),t=e.scrollTop>0,n=e.scrollLeft>0;this._leftShadowDomNode.setClassName("shadow"+(n?" left":"")),this._topShadowDomNode.setClassName("shadow"+(t?" top":"")),this._topLeftShadowDomNode.setClassName("shadow top-left-corner"+(t?" top":"")+(n?" left":""))}},t.prototype._onDragStart=function(){this._isDragging=!0,this._reveal()},t.prototype._onDragEnd=function(){this._isDragging=!1,this._hide()},t.prototype._onMouseOut=function(e){this._mouseIsOver=!1,this._hide()},t.prototype._onMouseOver=function(e){this._mouseIsOver=!0,this._reveal()},t.prototype._reveal=function(){this._verticalScrollbar.beginReveal(),this._horizontalScrollbar.beginReveal(),this._scheduleHide()},t.prototype._hide=function(){this._mouseIsOver||this._isDragging||(this._verticalScrollbar.beginHide(),this._horizontalScrollbar.beginHide())},t.prototype._scheduleHide=function(){var e=this;this._mouseIsOver||this._isDragging||this._hideTimeout.cancelAndSet(function(){return e._hide()},500)},t}(l.Widget);t.ScrollableElement=g;var m=function(e){function t(t,n){var i=e.call(this,t,n)||this;return i._element=t,i.onScroll(function(e){e.scrollTopChanged&&(i._element.scrollTop=e.scrollTop),e.scrollLeftChanged&&(i._element.scrollLeft=e.scrollLeft)}),i.scanDomNode(),i}return f(t,e),t.prototype.scanDomNode=function(){this.updateState({width:this._element.clientWidth,scrollWidth:this._element.scrollWidth,scrollLeft:this._element.scrollLeft,height:this._element.clientHeight,scrollHeight:this._element.scrollHeight,scrollTop:this._element.scrollTop})},t}(g);t.DomScrollableElement=m}),define(d[398],h([0,1,28,3,75,6,117,61,51,537,472,15,30]),function(e,t,n,i,o,r,s,a,u,l,c,d,h){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var p=["click","dblclick","mouseup","mousedown","mouseover","mousemove","mouseout","contextmenu","touchstart"],f={useShadows:!0},g=function(){function e(e,t,i,r){void 0===r&&(r=f),this.delegate=t,this.items=[],this.itemId=0,this.rangeMap=new l.RangeMap,this.renderers=n.toObject(i,function(e){return e.templateId}),this.cache=new c.RowCache(this.renderers),this.lastRenderTop=0,this.lastRenderHeight=0,this._domNode=document.createElement("div"),this._domNode.className="monaco-list",this.rowsContainer=document.createElement("div"),this.rowsContainer.className="monaco-list-rows",this.gesture=new o.Gesture(this.rowsContainer),this.scrollableElement=new a.ScrollableElement(this.rowsContainer,{alwaysConsumeMouseWheel:!0,horizontal:u.ScrollbarVisibility.Hidden,vertical:u.ScrollbarVisibility.Auto,useShadows:n.getOrDefault(r,function(e){return e.useShadows},f.useShadows)}),this._domNode.appendChild(this.scrollableElement.getDomNode()),e.appendChild(this._domNode),this.disposables=[this.rangeMap,this.gesture,this.scrollableElement],this.scrollableElement.onScroll(this.onScroll,this,this.disposables),s.domEvent(this.rowsContainer,o.EventType.Change)(this.onTouchChange,this,this.disposables),this.layout()}return Object.defineProperty(e.prototype,"domNode",{get:function(){return this._domNode},enumerable:!0,configurable:!0}),e.prototype.splice=function(e,t,n){var i=this;void 0===n&&(n=[]);var o=this.getRenderRange(this.lastRenderTop,this.lastRenderHeight);l.each(o,function(e){return i.removeItemFromDOM(i.items[e])});var r=n.map(function(e){return{id:String(i.itemId++),element:e,size:i.delegate.getHeight(e),templateId:i.delegate.getTemplateId(e),row:null}});(c=this.rangeMap).splice.apply(c,[e,t].concat(r));var s=(d=this.items).splice.apply(d,[e,t].concat(r)),a=this.getRenderRange(this.lastRenderTop,this.lastRenderHeight);l.each(a,function(e){return i.insertItemInDOM(i.items[e],e)});var u=this.getContentHeight();return this.rowsContainer.style.height=u+"px",this.scrollableElement.updateState({scrollHeight:u}),s.map(function(e){return e.element});var c,d},Object.defineProperty(e.prototype,"length",{get:function(){return this.items.length},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"renderHeight",{get:function(){return this.scrollableElement.getScrollState().height},enumerable:!0,configurable:!0}),e.prototype.element=function(e){return this.items[e].element},e.prototype.domElement=function(e){var t=this.items[e].row;return t&&t.domNode},e.prototype.elementHeight=function(e){return this.items[e].size},e.prototype.elementTop=function(e){return this.rangeMap.positionAt(e)},e.prototype.indexAt=function(e){return this.rangeMap.indexAt(e)},e.prototype.indexAfter=function(e){return this.rangeMap.indexAfter(e)},e.prototype.layout=function(e){this.scrollableElement.updateState({height:e||r.getContentHeight(this._domNode)})},e.prototype.render=function(e,t){var n=this,i=this.getRenderRange(this.lastRenderTop,this.lastRenderHeight),o=this.getRenderRange(e,t),r=l.relativeComplement(o,i),s=l.relativeComplement(i,o);if(r.forEach(function(e){return l.each(e,function(e){return n.insertItemInDOM(n.items[e],e)})}),s.forEach(function(e){return l.each(e,function(e){return n.removeItemFromDOM(n.items[e])})}),h.canUseTranslate3d()&&!d.isWindows){var a="translate3d(0px, -"+e+"px, 0px)";this.rowsContainer.style.transform=a,this.rowsContainer.style.webkitTransform=a}else this.rowsContainer.style.top="-"+e+"px";this.lastRenderTop=e,this.lastRenderHeight=t},e.prototype.insertItemInDOM=function(e,t){e.row||(e.row=this.cache.alloc(e.templateId)),e.row.domNode.parentElement||this.rowsContainer.appendChild(e.row.domNode);var n=this.renderers[e.templateId];e.row.domNode.style.top=this.elementTop(t)+"px",e.row.domNode.style.height=e.size+"px",e.row.domNode.setAttribute("data-index",""+t),n.renderElement(e.element,t,e.row.templateData)},e.prototype.removeItemFromDOM=function(e){this.cache.release(e.row),e.row=null},e.prototype.getContentHeight=function(){return this.rangeMap.size},e.prototype.getScrollTop=function(){return this.scrollableElement.getScrollState().scrollTop},e.prototype.setScrollTop=function(e){this.scrollableElement.updateState({scrollTop:e})},Object.defineProperty(e.prototype,"scrollTop",{get:function(){return this.getScrollTop()},set:function(e){this.setScrollTop(e)},enumerable:!0,configurable:!0}),e.prototype.addListener=function(e,t,n){var i=this,s=t,a=this.domNode;return p.indexOf(e)>-1?t=function(e){return i.fireScopedEvent(e,s,i.getItemIndexFromMouseEvent(e))}:e===o.EventType.Tap&&(a=this.rowsContainer,t=function(e){return i.fireScopedEvent(e,s,i.getItemIndexFromGestureEvent(e))}),r.addDisposableListener(a,e,t,n)},e.prototype.fireScopedEvent=function(e,t,i){if(!(i<0)){var o=this.items[i].element;t(n.assign(e,{element:o,index:i}))}},e.prototype.onScroll=function(e){this.render(e.scrollTop,e.height)},e.prototype.onTouchChange=function(e){e.preventDefault(),e.stopPropagation(),this.scrollTop-=e.translationY},e.prototype.getItemIndexFromMouseEvent=function(e){return this.getItemIndexFromEventTarget(e.target)},e.prototype.getItemIndexFromGestureEvent=function(e){return this.getItemIndexFromEventTarget(e.initialTarget)},e.prototype.getItemIndexFromEventTarget=function(e){for(;e instanceof HTMLElement&&e!==this.rowsContainer;){var t=e,n=t.getAttribute("data-index");if(n){var i=Number(n);if(!isNaN(i))return i}e=t.parentElement}return-1},e.prototype.getRenderRange=function(e,t){return{start:this.rangeMap.indexAt(e),end:this.rangeMap.indexAfter(e+t-1)}},e.prototype.dispose=function(){this.items=null,this._domNode&&this._domNode.parentElement&&(this._domNode.parentNode.removeChild(this._domNode),this._domNode=null),this.disposables=i.dispose(this.disposables)},e}();t.ListView=g});var v=this&&this.__decorate||function(e,t,n,i){var o,r=arguments.length,s=r<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,i);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(r<3?o(s):r>3?o(t,n,s):o(t,n))||s);return r>3&&s&&Object.defineProperty(t,n,s),s};define(d[395],h([0,1,3,29,27,129,533,6,15,75,64,11,117,398,34,28,411]),function(e,t,n,i,o,r,s,a,u,l,c,d,h,p,g,m){"use strict";function _(e){return u.isMacintosh?e.metaKey:e.ctrlKey}function y(e){return e.shiftKey}function b(e){return _(e)||y(e)}function C(e,t){var n=e.indexOf(t);if(-1===n)return[];for(var i=[],o=n-1;o>=0&&e[o]===t-(n-o);)i.push(e[o--]);for(i.reverse(),o=n;o=e.length)n.push(t[o++]);else if(o>=t.length)n.push(e[i++]);else{if(e[i]===t[o]){n.push(e[i]),i++,o++;continue}e[i]=e.length)n.push(t[o++]);else if(o>=t.length)n.push(e[i++]);else{if(e[i]===t[o]){i++,o++;continue}e[i]-1}).forEach(function(e){var n=e.index,i=e.templateData;return t.trait.renderIndex(n,i.container)})},e.prototype.splice=function(e,t){for(var n=0;n=o}).map(function(e){return e+i}));this.renderer.splice(e,t),this.set(r)},e.prototype.renderIndex=function(e,t){a.toggleClass(t,this._trait,this.contains(e))},e.prototype.set=function(e){var t=this.indexes;this.indexes=e;var n=w(t,e);return this.renderer.renderIndexes(n),this._onChange.fire({indexes:e}),t},e.prototype.get=function(){return this.indexes},e.prototype.contains=function(e){return this.indexes.some(function(t){return t===e})},e.prototype.dispose=function(){this.indexes=null,this._onChange=n.dispose(this._onChange)},e}();v([s.memoize],x.prototype,"renderer",null);var N=function(e){function t(t){var n=e.call(this,"focused")||this;return n.getDomId=t,n}return f(t,e),t.prototype.renderIndex=function(t,n){e.prototype.renderIndex.call(this,t,n),n.setAttribute("role","treeitem"),n.setAttribute("id",this.getDomId(t))},t}(x),M=function(){function e(){this.length=0}return Object.defineProperty(e.prototype,"templateId",{get:function(){return"aria"},enumerable:!0,configurable:!0}),e.prototype.splice=function(e,t,n){this.length+=n.length-t},e.prototype.renderTemplate=function(e){return e},e.prototype.renderElement=function(e,t,n){n.setAttribute("aria-setsize",""+this.length),n.setAttribute("aria-posinset",""+(t+1))},e.prototype.disposeTemplate=function(e){},e}(),T=function(){function e(e,t,n){this.trait=e,this.view=t,this.getId=n}return e.prototype.splice=function(e,t,n){var i=this;if(!this.getId)return this.trait.splice(e,t,n.map(function(e){return!1}));var o=this.trait.get().map(function(e){return i.getId(i.view.element(e))}),r=n.map(function(e){return o.indexOf(i.getId(e))>-1});this.trait.splice(e,t,r)},e}(),k=function(){function e(e,t){this.list=e,this.view=t,this.disposables=[];var n=d.chain(h.domEvent(t.domNode,"keydown")).map(function(e){return new c.StandardKeyboardEvent(e)});n.filter(function(e){return 3===e.keyCode}).on(this.onEnter,this,this.disposables),n.filter(function(e){return 16===e.keyCode}).on(this.onUpArrow,this,this.disposables),n.filter(function(e){return 18===e.keyCode}).on(this.onDownArrow,this,this.disposables),n.filter(function(e){return 11===e.keyCode}).on(this.onPageUpArrow,this,this.disposables),n.filter(function(e){return 12===e.keyCode}).on(this.onPageDownArrow,this,this.disposables)}return e.prototype.onEnter=function(e){e.preventDefault(),e.stopPropagation(),this.list.setSelection(this.list.getFocus()),this.list.open(this.list.getFocus())},e.prototype.onUpArrow=function(e){e.preventDefault(),e.stopPropagation(),this.list.focusPrevious(),this.list.reveal(this.list.getFocus()[0]),this.view.domNode.focus()},e.prototype.onDownArrow=function(e){e.preventDefault(),e.stopPropagation(),this.list.focusNext(),this.list.reveal(this.list.getFocus()[0]),this.view.domNode.focus()},e.prototype.onPageUpArrow=function(e){e.preventDefault(),e.stopPropagation(),this.list.focusPreviousPage(),this.list.reveal(this.list.getFocus()[0]),this.view.domNode.focus()},e.prototype.onPageDownArrow=function(e){e.preventDefault(),e.stopPropagation(),this.list.focusNextPage(),this.list.reveal(this.list.getFocus()[0]),this.view.domNode.focus()},e.prototype.dispose=function(){this.disposables=n.dispose(this.disposables)},e}(),I=function(){function e(e,t,n){void 0===n&&(n={});var i=this;this.list=e,this.view=t,this.options=n,this.disposables=[],this.disposables.push(t.addListener("mousedown",function(e){return i.onMouseDown(e)})),this.disposables.push(t.addListener("click",function(e){return i.onPointer(e)})),this.disposables.push(t.addListener("dblclick",function(e){return i.onDoubleClick(e)})),this.disposables.push(t.addListener("touchstart",function(e){return i.onMouseDown(e)})),this.disposables.push(t.addListener(l.EventType.Tap,function(e){return i.onPointer(e)}))}return Object.defineProperty(e.prototype,"onContextMenu",{get:function(){var e=this,t=d.chain(h.domEvent(this.view.domNode,"keydown")).map(function(e){return new c.StandardKeyboardEvent(e)}).filter(function(t){return e.list.getFocus().length>0}).filter(function(e){return 58===e.keyCode||e.shiftKey&&68===e.keyCode}).map(function(t){var n=e.list.getFocus()[0];return{index:n,element:e.view.element(n),anchor:e.view.domElement(n)}}).filter(function(e){return!!e.anchor}).event,n=d.chain(d.fromCallback(function(t){return e.view.addListener("contextmenu",t)})).map(function(e){return{element:e.element,index:e.index,anchor:{x:e.clientX+1,y:e.clientY}}}).event;return d.any(t,n)},enumerable:!0,configurable:!0}),e.prototype.onMouseDown=function(e){e.preventDefault(),e.stopPropagation(),this.view.domNode.focus();var t=this.list.getFocus()[0];if(t=void 0===t?this.list.getSelection()[0]:t,y(e))return this.changeSelection(e,t);var n=e.index;if(this.list.setFocus([n]),b(e))return this.changeSelection(e,t);this.options.selectOnMouseDown&&(this.list.setSelection([n]),this.list.open([n]))},e.prototype.onPointer=function(e){if(e.preventDefault(),e.stopPropagation(),!b(e)){var t=this.list.getFocus();this.list.setSelection(t),this.list.open(t)}},e.prototype.onDoubleClick=function(e){if(e.preventDefault(),e.stopPropagation(),!b(e)){var t=this.list.getFocus();this.list.setSelection(t),this.list.pin(t)}},e.prototype.changeSelection=function(e,t){var n=e.index;if(y(e)&&void 0!==t){var i=Math.min(t,n),r=Math.max(t,n),s=o.range(r+1,i),a=C(w(u=this.list.getSelection(),[t]),t);if(0===a.length)return;l=w(s,S(u,a));this.list.setSelection(l)}else if(_(e)){var u=this.list.getSelection(),l=u.filter(function(e){return e!==n});u.length===l.length?this.list.setSelection(l.concat([n])):this.list.setSelection(l)}},e.prototype.dispose=function(){this.disposables=n.dispose(this.disposables)},e}();v([s.memoize],I.prototype,"onContextMenu",null);var D={listFocusBackground:g.Color.fromHex("#073655"),listActiveSelectionBackground:g.Color.fromHex("#0E639C"),listActiveSelectionForeground:g.Color.fromHex("#FFFFFF"),listFocusAndSelectionBackground:g.Color.fromHex("#094771"),listFocusAndSelectionForeground:g.Color.fromHex("#FFFFFF"),listInactiveSelectionBackground:g.Color.fromHex("#3F3F46"),listHoverBackground:g.Color.fromHex("#2A2D2E"),listDropBackground:g.Color.fromHex("#383B3D")},O={keyboardSupport:!0,mouseSupport:!0},R=function(e,t){return e-t},P=function(){function e(e,t){this._templateId=e,this.renderers=t}return Object.defineProperty(e.prototype,"templateId",{get:function(){return this._templateId},enumerable:!0,configurable:!0}),e.prototype.renderTemplate=function(e){return this.renderers.map(function(t){return t.renderTemplate(e)})},e.prototype.renderElement=function(e,t,n){this.renderers.forEach(function(i,o){return i.renderElement(e,t,n[o])})},e.prototype.disposeTemplate=function(e){this.renderers.forEach(function(t,n){return t.disposeTemplate(e[n])})},e}(),A=function(){function e(t,n,i,o){void 0===o&&(o=O);var r=this;this.idPrefix="list_id_"+ ++e.InstanceCount,this._onContextMenu=d.default.None,this._onOpen=new d.Emitter,this._onPin=new d.Emitter,this._onDOMFocus=new d.Emitter,this._onDOMBlur=new d.Emitter,this._onDispose=new d.Emitter;var s=new M;this.focus=new N(function(e){return r.getElementDomId(e)}),this.selection=new x("selected"),this.eventBufferer=new d.EventBufferer,m.mixin(o,D,!1),i=i.map(function(e){return new P(e.templateId,[s,r.focus.renderer,r.selection.renderer,e])}),this.view=new p.ListView(t,n,i,o),this.view.domNode.setAttribute("role","tree"),a.addClass(this.view.domNode,this.idPrefix),this.view.domNode.tabIndex=0,this.styleElement=a.createStyleSheet(this.view.domNode),this.spliceable=new E([s,new T(this.focus,this.view,o.identityProvider),new T(this.selection,this.view,o.identityProvider),this.view]),this.disposables=[this.focus,this.selection,this.view,this._onDispose];var u=a.trackFocus(this.view.domNode);if(this.disposables.push(u.addFocusListener(function(){return r._onDOMFocus.fire()})),this.disposables.push(u.addBlurListener(function(){return r._onDOMBlur.fire()})),"boolean"!=typeof o.keyboardSupport||o.keyboardSupport){l=new k(this,this.view);this.disposables.push(l)}if("boolean"!=typeof o.mouseSupport||o.mouseSupport){var l=new I(this,this.view,o);this.disposables.push(l),this._onContextMenu=l.onContextMenu}this.onFocusChange(this._onFocusChange,this,this.disposables),this.onSelectionChange(this._onSelectionChange,this,this.disposables),o.ariaLabel&&this.view.domNode.setAttribute("aria-label",o.ariaLabel),this.style(o)}return Object.defineProperty(e.prototype,"onFocusChange",{get:function(){var e=this;return d.mapEvent(this.eventBufferer.wrapEvent(this.focus.onChange),function(t){return e.toListEvent(t)})},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"onSelectionChange",{get:function(){var e=this;return d.mapEvent(this.eventBufferer.wrapEvent(this.selection.onChange),function(t){return e.toListEvent(t)})},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"onContextMenu",{get:function(){return this._onContextMenu},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"onOpen",{get:function(){var e=this;return d.mapEvent(this._onOpen.event,function(t){return e.toListEvent({indexes:t})})},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"onPin",{get:function(){var e=this;return d.mapEvent(this._onPin.event,function(t){return e.toListEvent({indexes:t})})},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"onDOMFocus",{get:function(){return this._onDOMFocus.event},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"onDOMBlur",{get:function(){return this._onDOMBlur.event},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"onDispose",{get:function(){return this._onDispose.event},enumerable:!0,configurable:!0}),e.prototype.splice=function(e,t,n){var i=this;void 0===n&&(n=[]),this.eventBufferer.bufferEvents(function(){return i.spliceable.splice(e,t,n)})},Object.defineProperty(e.prototype,"length",{get:function(){return this.view.length},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"contentHeight",{get:function(){return this.view.getContentHeight()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"scrollTop",{get:function(){return this.view.getScrollTop()},set:function(e){this.view.setScrollTop(e)},enumerable:!0,configurable:!0}),e.prototype.layout=function(e){this.view.layout(e)},e.prototype.setSelection=function(e){e=e.sort(R),this.selection.set(e)},e.prototype.selectNext=function(e,t){if(void 0===e&&(e=1),void 0===t&&(t=!1),0!==this.length){var n=this.selection.get(),i=n.length>0?n[0]+e:0;this.setSelection(t?[i%this.length]:[Math.min(i,this.length-1)])}},e.prototype.selectPrevious=function(e,t){if(void 0===e&&(e=1),void 0===t&&(t=!1),0!==this.length){var n=this.selection.get(),i=n.length>0?n[0]-e:0;t&&i<0&&(i=this.length+i%this.length),this.setSelection([Math.max(i,0)])}},e.prototype.getSelection=function(){return this.selection.get()},e.prototype.getSelectedElements=function(){var e=this;return this.getSelection().map(function(t){return e.view.element(t)})},e.prototype.setFocus=function(e){e=e.sort(R),this.focus.set(e)},e.prototype.focusNext=function(e,t){if(void 0===e&&(e=1),void 0===t&&(t=!1),0!==this.length){var n=this.focus.get(),i=n.length>0?n[0]+e:0;this.setFocus(t?[i%this.length]:[Math.min(i,this.length-1)])}},e.prototype.focusPrevious=function(e,t){if(void 0===e&&(e=1),void 0===t&&(t=!1),0!==this.length){var n=this.focus.get(),i=n.length>0?n[0]-e:0;t&&i<0&&(i=(this.length+i%this.length)%this.length),this.setFocus([Math.max(i,0)])}},e.prototype.focusNextPage=function(){var e=this,t=this.view.indexAt(this.view.getScrollTop()+this.view.renderHeight);t=0===t?0:t-1;var n=this.view.element(t);if(this.getFocusedElements()[0]!==n)this.setFocus([t]);else{var i=this.view.getScrollTop();this.view.setScrollTop(i+this.view.renderHeight-this.view.elementHeight(t)),this.view.getScrollTop()!==i&&setTimeout(function(){return e.focusNextPage()},0)}},e.prototype.focusPreviousPage=function(){var e,t=this,n=this.view.getScrollTop();e=0===n?this.view.indexAt(n):this.view.indexAfter(n-1);var i=this.view.element(e);if(this.getFocusedElements()[0]!==i)this.setFocus([e]);else{var o=n;this.view.setScrollTop(n-this.view.renderHeight),this.view.getScrollTop()!==o&&setTimeout(function(){return t.focusPreviousPage()},0)}},e.prototype.focusLast=function(){0!==this.length&&this.setFocus([this.length-1])},e.prototype.focusFirst=function(){0!==this.length&&this.setFocus([0])},e.prototype.getFocus=function(){return this.focus.get()},e.prototype.getFocusedElements=function(){var e=this;return this.getFocus().map(function(t){return e.view.element(t)})},e.prototype.reveal=function(e,t){var n=this.view.getScrollTop(),o=this.view.elementTop(e),r=this.view.elementHeight(e);if(i.isNumber(t)){t=(t=t<0?0:t)>1?1:t;var s=r-this.view.renderHeight;this.view.setScrollTop(s*t+o)}else{var a=o+r,u=n+this.view.renderHeight;o=u&&this.view.setScrollTop(a-this.view.renderHeight)}},e.prototype.getElementDomId=function(e){return this.idPrefix+"_"+e},e.prototype.isDOMFocused=function(){return this.view.domNode===document.activeElement},e.prototype.getHTMLElement=function(){return this.view.domNode},e.prototype.open=function(e){this._onOpen.fire(e)},e.prototype.pin=function(e){this._onPin.fire(e)},e.prototype.style=function(e){var t=[];e.listFocusBackground&&t.push(".monaco-list."+this.idPrefix+":focus .monaco-list-row.focused { background-color: "+e.listFocusBackground+"; }"),e.listFocusForeground&&t.push(".monaco-list."+this.idPrefix+":focus .monaco-list-row.focused { color: "+e.listFocusForeground+"; }"),e.listActiveSelectionBackground&&(t.push(".monaco-list."+this.idPrefix+":focus .monaco-list-row.selected { background-color: "+e.listActiveSelectionBackground+"; }"),t.push(".monaco-list."+this.idPrefix+":focus .monaco-list-row.selected:hover { background-color: "+e.listActiveSelectionBackground+"; }")),e.listActiveSelectionForeground&&t.push(".monaco-list."+this.idPrefix+":focus .monaco-list-row.selected { color: "+e.listActiveSelectionForeground+"; }"),e.listFocusAndSelectionBackground&&t.push(".monaco-list."+this.idPrefix+":focus .monaco-list-row.selected.focused { background-color: "+e.listFocusAndSelectionBackground+"; }"),e.listFocusAndSelectionForeground&&t.push(".monaco-list."+this.idPrefix+":focus .monaco-list-row.selected.focused { color: "+e.listFocusAndSelectionForeground+"; }"),e.listInactiveFocusBackground&&(t.push(".monaco-list."+this.idPrefix+" .monaco-list-row.focused { background-color: "+e.listInactiveFocusBackground+"; }"),t.push(".monaco-list."+this.idPrefix+" .monaco-list-row.focused:hover { background-color: "+e.listInactiveFocusBackground+"; }")),e.listInactiveSelectionBackground&&(t.push(".monaco-list."+this.idPrefix+" .monaco-list-row.selected { background-color: "+e.listInactiveSelectionBackground+"; }"),t.push(".monaco-list."+this.idPrefix+" .monaco-list-row.selected:hover { background-color: "+e.listInactiveSelectionBackground+"; }")),e.listInactiveSelectionForeground&&t.push(".monaco-list."+this.idPrefix+" .monaco-list-row.selected { color: "+e.listInactiveSelectionForeground+"; }"),e.listHoverBackground&&t.push(".monaco-list."+this.idPrefix+" .monaco-list-row:hover { background-color: "+e.listHoverBackground+"; }"),e.listHoverForeground&&t.push(".monaco-list."+this.idPrefix+" .monaco-list-row:hover { color: "+e.listHoverForeground+"; }"),e.listSelectionOutline&&t.push(".monaco-list."+this.idPrefix+" .monaco-list-row.selected { outline: 1px dotted "+e.listSelectionOutline+"; outline-offset: -1px; }"),e.listFocusOutline&&t.push(".monaco-list."+this.idPrefix+":focus .monaco-list-row.focused { outline: 1px solid "+e.listFocusOutline+"; outline-offset: -1px; }"),e.listInactiveFocusOutline&&t.push(".monaco-list."+this.idPrefix+" .monaco-list-row.focused { outline: 1px dotted "+e.listInactiveFocusOutline+"; outline-offset: -1px; }"),e.listHoverOutline&&t.push(".monaco-list."+this.idPrefix+" .monaco-list-row:hover { outline: 1px dashed "+e.listHoverOutline+"; outline-offset: -1px; }"),this.styleElement.innerHTML=t.join("\n")},e.prototype.toListEvent=function(e){var t=this,n=e.indexes;return{indexes:n,elements:n.map(function(e){return t.view.element(e)})}},e.prototype._onFocusChange=function(){var e=this.focus.get();e.length>0?this.view.domNode.setAttribute("aria-activedescendant",this.getElementDomId(e[0])):this.view.domNode.removeAttribute("aria-activedescendant"),this.view.domNode.setAttribute("role","tree"),a.toggleClass(this.view.domNode,"element-focused",e.length>0)},e.prototype._onSelectionChange=function(){var e=this.selection.get();a.toggleClass(this.view.domNode,"selection-none",0===e.length),a.toggleClass(this.view.domNode,"selection-single",1===e.length),a.toggleClass(this.view.domNode,"selection-multiple",e.length>1)},e.prototype.dispose=function(){this._onDispose.fire(),this.disposables=n.dispose(this.disposables)},e}();A.InstanceCount=0,v([s.memoize],A.prototype,"onFocusChange",null),v([s.memoize],A.prototype,"onSelectionChange",null),v([s.memoize],A.prototype,"onOpen",null),v([s.memoize],A.prototype,"onPin",null),t.List=A}),define(d[394],h([0,1,15,30,8,3,6,139,75,9,45,64,451,107,61,51,438,456,11]),function(e,t,n,i,o,r,s,a,u,l,c,d,h,p,g,m,v,_,y){"use strict";function b(e){try{e.parentElement.removeChild(e)}catch(e){}}function C(e,t){return!e&&!t||!(!e||!t)&&(e.accept===t.accept&&(e.bubble===t.bubble&&e.effect===t.effect))}Object.defineProperty(t,"__esModule",{value:!0});var w=function(){function e(e){this.context=e,this._cache={"":[]}}return e.prototype.alloc=function(e){var t=this.cache(e).pop();if(!t){var n=document.createElement("div");n.className="content";var i=document.createElement("div");i.appendChild(n),t={element:i,templateId:e,templateData:this.context.renderer.renderTemplate(this.context.tree,e,n)}}return t},e.prototype.release=function(e,t){b(t.element),this.cache(e).push(t)},e.prototype.cache=function(e){return this._cache[e]||(this._cache[e]=[])},e.prototype.garbageCollect=function(){var e=this;this._cache&&Object.keys(this._cache).forEach(function(t){e._cache[t].forEach(function(n){e.context.renderer.disposeTemplate(e.context.tree,t,n.templateData),n.element=null,n.templateData=null}),delete e._cache[t]})},e.prototype.dispose=function(){this.garbageCollect(),this._cache=null,this.context=null},e}();t.RowCache=w;var S=function(){function e(e,t){var n=this;this.context=e,this.model=t,this.id=this.model.id,this.row=null,this.top=0,this.height=t.getHeight(),this._styles={},t.getAllTraits().forEach(function(e){return n._styles[e]=!0}),t.isExpanded()&&this.addClass("expanded")}return Object.defineProperty(e.prototype,"expanded",{set:function(e){e?this.addClass("expanded"):this.removeClass("expanded")},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"loading",{set:function(e){e?this.addClass("loading"):this.removeClass("loading")},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"draggable",{get:function(){return this._draggable},set:function(e){this._draggable=e,this.render(!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"dropTarget",{set:function(e){e?this.addClass("drop-target"):this.removeClass("drop-target")},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"element",{get:function(){return this.row&&this.row.element},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"templateId",{get:function(){return this._templateId||(this._templateId=this.context.renderer.getTemplateId&&this.context.renderer.getTemplateId(this.context.tree,this.model.getElement()))},enumerable:!0,configurable:!0}),e.prototype.addClass=function(e){this._styles[e]=!0,this.render(!0)},e.prototype.removeClass=function(e){delete this._styles[e],this.render(!0)},e.prototype.render=function(e){var t=this;if(void 0===e&&(e=!1),this.model&&this.element){var n=["monaco-tree-row"];n.push.apply(n,Object.keys(this._styles)),this.model.hasChildren()&&n.push("has-children"),this.element.className=n.join(" "),this.element.draggable=this.draggable,this.element.style.height=this.height+"px",this.element.setAttribute("role","treeitem");var i=this.context.accessibilityProvider,o=i.getAriaLabel(this.context.tree,this.model.getElement());if(o&&this.element.setAttribute("aria-label",o),i.getPosInSet&&i.getSetSize&&(this.element.setAttribute("aria-setsize",i.getSetSize()),this.element.setAttribute("aria-posinset",i.getPosInSet(this.context.tree,this.model.getElement()))),this.model.hasTrait("focused")){var r=l.safeBtoa(this.model.id);this.element.setAttribute("aria-selected","true"),this.element.setAttribute("id",r)}else this.element.setAttribute("aria-selected","false"),this.element.removeAttribute("id");this.model.hasChildren()?this.element.setAttribute("aria-expanded",String(!!this.model.isExpanded())):this.element.removeAttribute("aria-expanded"),this.element.setAttribute("aria-level",String(this.model.getDepth())),this.context.options.paddingOnRow?this.element.style.paddingLeft=this.context.options.twistiePixels+(this.model.getDepth()-1)*this.context.options.indentPixels+"px":(this.element.style.paddingLeft=(this.model.getDepth()-1)*this.context.options.indentPixels+"px",this.row.element.firstElementChild.style.paddingLeft=this.context.options.twistiePixels+"px");var a=this.context.dnd.getDragURI(this.context.tree,this.model.getElement());a!==this.uri&&(this.unbindDragStart&&(this.unbindDragStart.dispose(),this.unbindDragStart=null),a?(this.uri=a,this.draggable=!0,this.unbindDragStart=s.addDisposableListener(this.element,"dragstart",function(e){t.onDragStart(e)})):this.uri=null),e||this.context.renderer.renderElement(this.context.tree,this.model.getElement(),this.templateId,this.row.templateData)}},e.prototype.insertInDOM=function(e,t){if(this.row||(this.row=this.context.cache.alloc(this.templateId),this.element[L.BINDING]=this),!this.element.parentElement){if(null===t)e.appendChild(this.element);else try{e.insertBefore(this.element,t)}catch(t){console.warn("Failed to locate previous tree element"),e.appendChild(this.element)}this.render()}},e.prototype.removeFromDOM=function(){this.row&&(this.unbindDragStart&&(this.unbindDragStart.dispose(),this.unbindDragStart=null),this.uri=null,this.element[L.BINDING]=null,this.context.cache.release(this.templateId,this.row),this.row=null)},e.prototype.dispose=function(){this.row=null,this.model=null},e}();t.ViewItem=S;var E=function(e){function t(t,n,i){var o=e.call(this,t,n)||this;return o.row={element:i,templateData:null,templateId:null},o}return f(t,e),t.prototype.render=function(){if(this.model&&this.element){var e=["monaco-tree-wrapper"];e.push.apply(e,Object.keys(this._styles)),this.model.hasChildren()&&e.push("has-children"),this.element.className=e.join(" ")}},t.prototype.insertInDOM=function(e,t){},t.prototype.removeFromDOM=function(){},t}(S),L=function(e){function t(n,o){var r=e.call(this)||this;r.lastClickTimeStamp=0,r.isRefreshing=!1,r.refreshingPreviousChildrenIds={},r._onDOMFocus=new y.Emitter,r._onDOMBlur=new y.Emitter,t.counter++,r.instance=t.counter,r.context={dataSource:n.dataSource,renderer:n.renderer,controller:n.controller,dnd:n.dnd,filter:n.filter,sorter:n.sorter,tree:n.tree,accessibilityProvider:n.accessibilityProvider,options:n.options,cache:new w(n)},r.modelListeners=[],r.viewListeners=[],r.dragAndDropListeners=[],r.model=null,r.items={},r.domNode=document.createElement("div"),r.domNode.className="monaco-tree no-focused-item monaco-tree-instance-"+r.instance,r.domNode.tabIndex=0,r.styleElement=s.createStyleSheet(r.domNode),r.domNode.setAttribute("role","tree"),r.context.options.ariaLabel&&r.domNode.setAttribute("aria-label",r.context.options.ariaLabel),r.context.options.alwaysFocused&&s.addClass(r.domNode,"focused"),r.context.options.paddingOnRow||s.addClass(r.domNode,"no-row-padding"),r.wrapper=document.createElement("div"),r.wrapper.className="monaco-tree-wrapper",r.scrollableElement=new g.ScrollableElement(r.wrapper,{alwaysConsumeMouseWheel:!0,horizontal:m.ScrollbarVisibility.Hidden,vertical:void 0!==n.options.verticalScrollMode?n.options.verticalScrollMode:m.ScrollbarVisibility.Auto,useShadows:n.options.useShadows}),r.scrollableElement.onScroll(function(e){r.render(e.scrollTop,e.height),r.emit("scroll",e)}),i.isIE?(r.wrapper.style.msTouchAction="none",r.wrapper.style.msContentZooming="none"):r.wrapperGesture=new u.Gesture(r.wrapper),r.rowsContainer=document.createElement("div"),r.rowsContainer.className="monaco-tree-rows",n.options.showTwistie&&(r.rowsContainer.className+=" show-twisties");var a=s.trackFocus(r.domNode);return a.addFocusListener(function(){return r.onFocus()}),a.addBlurListener(function(){return r.onBlur()}),r.viewListeners.push(a),r.viewListeners.push(s.addDisposableListener(r.domNode,"keydown",function(e){return r.onKeyDown(e)})),r.viewListeners.push(s.addDisposableListener(r.domNode,"keyup",function(e){return r.onKeyUp(e)})),r.viewListeners.push(s.addDisposableListener(r.domNode,"mousedown",function(e){return r.onMouseDown(e)})),r.viewListeners.push(s.addDisposableListener(r.domNode,"mouseup",function(e){return r.onMouseUp(e)})),r.viewListeners.push(s.addDisposableListener(r.wrapper,"click",function(e){return r.onClick(e)})),r.viewListeners.push(s.addDisposableListener(r.wrapper,"auxclick",function(e){return r.onClick(e)})),r.viewListeners.push(s.addDisposableListener(r.domNode,"contextmenu",function(e){return r.onContextMenu(e)})),r.viewListeners.push(s.addDisposableListener(r.wrapper,u.EventType.Tap,function(e){return r.onTap(e)})),r.viewListeners.push(s.addDisposableListener(r.wrapper,u.EventType.Change,function(e){return r.onTouchChange(e)})),i.isIE&&(r.viewListeners.push(s.addDisposableListener(r.wrapper,"MSPointerDown",function(e){return r.onMsPointerDown(e)})),r.viewListeners.push(s.addDisposableListener(r.wrapper,"MSGestureTap",function(e){return r.onMsGestureTap(e)})),r.viewListeners.push(s.addDisposableThrottledListener(r.wrapper,"MSGestureChange",function(e){return r.onThrottledMsGestureChange(e)},function(e,t){t.stopPropagation(),t.preventDefault();var n={translationY:t.translationY,translationX:t.translationX};return e&&(n.translationY+=e.translationY,n.translationX+=e.translationX),n}))),r.viewListeners.push(s.addDisposableListener(window,"dragover",function(e){return r.onDragOver(e)})),r.viewListeners.push(s.addDisposableListener(window,"drop",function(e){return r.onDrop(e)})),r.viewListeners.push(s.addDisposableListener(window,"dragend",function(e){return r.onDragEnd(e)})),r.viewListeners.push(s.addDisposableListener(window,"dragleave",function(e){return r.onDragOver(e)})),r.wrapper.appendChild(r.rowsContainer),r.domNode.appendChild(r.scrollableElement.getDomNode()),o.appendChild(r.domNode),r.lastRenderTop=0,r.lastRenderHeight=0,r.didJustPressContextMenuKey=!1,r.currentDropTarget=null,r.currentDropTargets=[],r.shouldInvalidateDropReaction=!1,r.dragAndDropScrollInterval=null,r.dragAndDropScrollTimeout=null,r.onHiddenScrollTop=null,r.onRowsChanged(),r.layout(),r.setupMSGesture(),r.applyStyles(n.options),r}return f(t,e),Object.defineProperty(t.prototype,"onDOMFocus",{get:function(){return this._onDOMFocus.event},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"onDOMBlur",{get:function(){return this._onDOMBlur.event},enumerable:!0,configurable:!0}),t.prototype.applyStyles=function(e){var t=[];e.listFocusBackground&&t.push(".monaco-tree.monaco-tree-instance-"+this.instance+".focused .monaco-tree-rows > .monaco-tree-row.focused:not(.highlighted) { background-color: "+e.listFocusBackground+"; }"),e.listFocusForeground&&t.push(".monaco-tree.monaco-tree-instance-"+this.instance+".focused .monaco-tree-rows > .monaco-tree-row.focused:not(.highlighted) { color: "+e.listFocusForeground+"; }"),e.listActiveSelectionBackground&&t.push(".monaco-tree.monaco-tree-instance-"+this.instance+".focused .monaco-tree-rows > .monaco-tree-row.selected:not(.highlighted) { background-color: "+e.listActiveSelectionBackground+"; }"),e.listActiveSelectionForeground&&t.push(".monaco-tree.monaco-tree-instance-"+this.instance+".focused .monaco-tree-rows > .monaco-tree-row.selected:not(.highlighted) { color: "+e.listActiveSelectionForeground+"; }"),e.listFocusAndSelectionBackground&&t.push("\n\t\t\t\t.monaco-tree-drag-image,\n\t\t\t\t.monaco-tree.monaco-tree-instance-"+this.instance+".focused .monaco-tree-rows > .monaco-tree-row.focused.selected:not(.highlighted) { background-color: "+e.listFocusAndSelectionBackground+"; }\n\t\t\t"),e.listFocusAndSelectionForeground&&t.push("\n\t\t\t\t.monaco-tree-drag-image,\n\t\t\t\t.monaco-tree.monaco-tree-instance-"+this.instance+".focused .monaco-tree-rows > .monaco-tree-row.focused.selected:not(.highlighted) { color: "+e.listFocusAndSelectionForeground+"; }\n\t\t\t"),e.listInactiveSelectionBackground&&t.push(".monaco-tree.monaco-tree-instance-"+this.instance+" .monaco-tree-rows > .monaco-tree-row.selected:not(.highlighted) { background-color: "+e.listInactiveSelectionBackground+"; }"),e.listInactiveSelectionForeground&&t.push(".monaco-tree.monaco-tree-instance-"+this.instance+" .monaco-tree-rows > .monaco-tree-row.selected:not(.highlighted) { color: "+e.listInactiveSelectionForeground+"; }"),e.listHoverBackground&&t.push(".monaco-tree.monaco-tree-instance-"+this.instance+" .monaco-tree-rows > .monaco-tree-row:hover:not(.highlighted):not(.selected):not(.focused) { background-color: "+e.listHoverBackground+"; }"),e.listHoverForeground&&t.push(".monaco-tree.monaco-tree-instance-"+this.instance+" .monaco-tree-rows > .monaco-tree-row:hover:not(.highlighted):not(.selected):not(.focused) { color: "+e.listHoverForeground+"; }"),e.listDropBackground&&t.push("\n\t\t\t\t.monaco-tree.monaco-tree-instance-"+this.instance+" .monaco-tree-wrapper.drop-target,\n\t\t\t\t.monaco-tree.monaco-tree-instance-"+this.instance+" .monaco-tree-rows > .monaco-tree-row.drop-target { background-color: "+e.listDropBackground+" !important; color: inherit !important; }\n\t\t\t"),e.listFocusOutline&&t.push("\n\t\t\t\t.monaco-tree-drag-image\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ border: 1px solid "+e.listFocusOutline+"; background: #000; }\n\t\t\t\t.monaco-tree.monaco-tree-instance-"+this.instance+" .monaco-tree-rows > .monaco-tree-row \t\t\t\t\t\t\t\t\t\t\t\t\t\t{ border: 1px solid transparent; }\n\t\t\t\t.monaco-tree.monaco-tree-instance-"+this.instance+".focused .monaco-tree-rows > .monaco-tree-row.focused:not(.highlighted) \t\t\t\t\t\t{ border: 1px dotted "+e.listFocusOutline+"; }\n\t\t\t\t.monaco-tree.monaco-tree-instance-"+this.instance+".focused .monaco-tree-rows > .monaco-tree-row.selected:not(.highlighted) \t\t\t\t\t\t{ border: 1px solid "+e.listFocusOutline+"; }\n\t\t\t\t.monaco-tree.monaco-tree-instance-"+this.instance+" .monaco-tree-rows > .monaco-tree-row.selected:not(.highlighted) \t\t\t\t\t\t\t{ border: 1px solid "+e.listFocusOutline+"; }\n\t\t\t\t.monaco-tree.monaco-tree-instance-"+this.instance+" .monaco-tree-rows > .monaco-tree-row:hover:not(.highlighted):not(.selected):not(.focused) \t{ border: 1px dashed "+e.listFocusOutline+"; }\n\t\t\t\t.monaco-tree.monaco-tree-instance-"+this.instance+" .monaco-tree-wrapper.drop-target,\n\t\t\t\t.monaco-tree.monaco-tree-instance-"+this.instance+" .monaco-tree-rows > .monaco-tree-row.drop-target\t\t\t\t\t\t\t\t\t\t\t\t{ border: 1px dashed "+e.listFocusOutline+"; }\n\t\t\t"),this.styleElement.innerHTML=t.join("\n")},t.prototype.createViewItem=function(e){return new S(this.context,e)},t.prototype.getHTMLElement=function(){return this.domNode},t.prototype.focus=function(){this.domNode.focus()},t.prototype.isFocused=function(){return document.activeElement===this.domNode},t.prototype.blur=function(){this.domNode.blur()},t.prototype.onVisible=function(){this.scrollTop=this.onHiddenScrollTop,this.onHiddenScrollTop=null,this.setupMSGesture()},t.prototype.setupMSGesture=function(){var e=this;window.MSGesture&&(this.msGesture=new MSGesture,setTimeout(function(){return e.msGesture.target=e.wrapper},100))},t.prototype.onHidden=function(){this.onHiddenScrollTop=this.scrollTop},t.prototype.isTreeVisible=function(){return null===this.onHiddenScrollTop},t.prototype.layout=function(e){this.isTreeVisible()&&(this.viewHeight=e||s.getContentHeight(this.wrapper))},t.prototype.render=function(e,t){var n,i,o=e,r=e+t,s=this.lastRenderTop+this.lastRenderHeight;for(n=this.indexAfter(r)-1,i=this.indexAt(Math.max(s,o));n>=i;n--)this.insertItemInDOM(this.itemAtIndex(n));for(n=Math.min(this.indexAt(this.lastRenderTop),this.indexAfter(r))-1,i=this.indexAt(o);n>=i;n--)this.insertItemInDOM(this.itemAtIndex(n));for(n=this.indexAt(this.lastRenderTop),i=Math.min(this.indexAt(o),this.indexAfter(s));n0&&this.onItemsRefresh(t)},t.prototype.onRefreshing=function(){this.isRefreshing=!0},t.prototype.onRefreshed=function(){this.isRefreshing=!1,this.onRowsChanged()},t.prototype.onRowsChanged=function(e){void 0===e&&(e=this.scrollTop),this.isRefreshing||(this.scrollTop=e)},t.prototype.focusNextPage=function(e){var t=this,n=this.indexAt(this.scrollTop+this.viewHeight);n=0===n?0:n-1;var i=this.itemAtIndex(n).model.getElement();if(this.model.getFocus()!==i)this.model.setFocus(i,e);else{var o=this.scrollTop;this.scrollTop+=this.viewHeight,this.scrollTop!==o&&setTimeout(function(){t.focusNextPage(e)},0)}},t.prototype.focusPreviousPage=function(e){var t,n=this;t=0===this.scrollTop?this.indexAt(this.scrollTop):this.indexAfter(this.scrollTop-1);var i=this.itemAtIndex(t).model.getElement();if(this.model.getFocus()!==i)this.model.setFocus(i,e);else{var o=this.scrollTop;this.scrollTop-=this.viewHeight,this.scrollTop!==o&&setTimeout(function(){n.focusPreviousPage(e)},0)}},Object.defineProperty(t.prototype,"viewHeight",{get:function(){return this.scrollableElement.getScrollState().height},set:function(e){this.scrollableElement.updateState({height:e,scrollHeight:this.getTotalHeight()})},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"scrollTop",{get:function(){return this.scrollableElement.getScrollState().scrollTop},set:function(e){this.scrollableElement.updateState({scrollTop:e,scrollHeight:this.getTotalHeight()})},enumerable:!0,configurable:!0}),t.prototype.getScrollPosition=function(){var e=this.getTotalHeight()-this.viewHeight;return e<=0?0:this.scrollTop/e},t.prototype.setScrollPosition=function(e){var t=this.getTotalHeight()-this.viewHeight;this.scrollTop=t*e},t.prototype.onClearingInput=function(e){var t=e.item;t&&(this.onRemoveItems(new p.MappedIterator(t.getNavigator(),function(e){return e&&e.id})),this.onRowsChanged())},t.prototype.onSetInput=function(e){this.context.cache.garbageCollect(),this.inputItem=new E(this.context,e.item,this.wrapper),this.emit("viewItem:create",{item:this.inputItem.model})},t.prototype.onItemChildrenRefreshing=function(e){var n=e.item,i=this.items[n.id];if(i&&(i.loadingTimer=setTimeout(function(){i.loadingTimer=0,i.loading=!0},t.LOADING_DECORATION_DELAY)),!e.isNested){for(var o,r=[],s=n.getNavigator();o=s.next();)r.push(o.id);this.refreshingPreviousChildrenIds[n.id]=r}},t.prototype.onItemChildrenRefreshed=function(e){var t=this,n=e.item,i=this.items[n.id];if(i&&(i.loadingTimer&&(clearTimeout(i.loadingTimer),i.loadingTimer=0),i.loading=!1),!e.isNested){for(var o,r=this.refreshingPreviousChildrenIds[n.id],s=[],u=n.getNavigator();o=u.next();)s.push(o);var l=Math.abs(r.length-s.length)>1e3,c=void 0,d=void 0;if(l||(d=(c=new a.LcsDiff({getLength:function(){return r.length},getElementHash:function(e){return r[e]}},{getLength:function(){return s.length},getElementHash:function(e){return s[e].id}},null).ComputeDiff()).some(function(e){if(e.modifiedLength>0)for(var n=e.modifiedStart,i=e.modifiedStart+e.modifiedLength;n0&&this.onRemoveItems(new p.ArrayIterator(r,g.originalStart,g.originalStart+g.originalLength)),g.modifiedLength>0){var m=s[g.modifiedStart-1]||n;m=m.getDepth()>0?m:null,this.onInsertItems(new p.ArrayIterator(s,g.modifiedStart,g.modifiedStart+g.modifiedLength),m?m.id:null)}}else(l||c.length)&&(this.onRemoveItems(new p.ArrayIterator(r)),this.onInsertItems(new p.ArrayIterator(s),n.getDepth()>0?n.id:null));(l||c.length)&&this.onRowsChanged()}},t.prototype.onItemsRefresh=function(e){var t=this;this.onRefreshItemSet(e.filter(function(e){return t.items.hasOwnProperty(e.id)})),this.onRowsChanged()},t.prototype.onItemExpanding=function(e){var t=this.items[e.item.id];t&&(t.expanded=!0)},t.prototype.onItemExpanded=function(e){var t=e.item,n=this.items[t.id];if(n){n.expanded=!0;var i=this.onInsertItems(t.getNavigator(),t.id),o=this.scrollTop;n.top+n.height<=this.scrollTop&&(o+=i),this.onRowsChanged(o)}},t.prototype.onItemCollapsing=function(e){var t=e.item,n=this.items[t.id];n&&(n.expanded=!1,this.onRemoveItems(new p.MappedIterator(t.getNavigator(),function(e){return e&&e.id})),this.onRowsChanged())},t.prototype.getRelativeTop=function(e){if(e&&e.isVisible()){var t=this.items[e.id];if(t)return(t.top-this.scrollTop)/(this.viewHeight-t.height)}return-1},t.prototype.onItemReveal=function(e){var t=e.item,n=e.relativeTop,i=this.items[t.id];if(i)if(null!==n){n=(n=n<0?0:n)>1?1:n;var o=i.height-this.viewHeight;this.scrollTop=o*n+i.top}else{var r=i.top+i.height,s=this.scrollTop+this.viewHeight;i.top=s&&(this.scrollTop=r-this.viewHeight)}},t.prototype.onItemAddTrait=function(e){var t=e.item,n=e.trait,i=this.items[t.id];i&&i.addClass(n),"highlighted"===n&&(s.addClass(this.domNode,n),i&&(this.highlightedItemWasDraggable=!!i.draggable,i.draggable&&(i.draggable=!1)))},t.prototype.onItemRemoveTrait=function(e){var t=e.item,n=e.trait,i=this.items[t.id];i&&i.removeClass(n),"highlighted"===n&&(s.removeClass(this.domNode,n),this.highlightedItemWasDraggable&&(i.draggable=!0),this.highlightedItemWasDraggable=!1)},t.prototype.onModelFocusChange=function(){var e=this.model&&this.model.getFocus();s.toggleClass(this.domNode,"no-focused-item",!e),e?this.domNode.setAttribute("aria-activedescendant",l.safeBtoa(this.context.dataSource.getId(this.context.tree,e))):this.domNode.removeAttribute("aria-activedescendant")},t.prototype.onInsertItem=function(e){var t=this;e.onDragStart=function(n){t.onDragStart(e,n)},e.needsRender=!0,this.refreshViewItem(e),this.items[e.id]=e},t.prototype.onRefreshItem=function(e,t){void 0===t&&(t=!1),e.needsRender=e.needsRender||t,this.refreshViewItem(e)},t.prototype.onRemoveItem=function(e){this.removeItemFromDOM(e),e.dispose(),this.emit("viewItem:dispose",{item:this.inputItem.model}),delete this.items[e.id]},t.prototype.refreshViewItem=function(e){e.render(),this.shouldBeRendered(e)?this.insertItemInDOM(e):this.removeItemFromDOM(e)},t.prototype.onClick=function(e){if(!this.lastPointerType||"mouse"===this.lastPointerType){var t=new c.StandardMouseEvent(e),n=this.getItemAround(t.target);n&&(i.isIE&&Date.now()-this.lastClickTimeStamp<300&&(t.detail=2),this.lastClickTimeStamp=Date.now(),this.context.controller.onClick(this.context.tree,n.model.getElement(),t))}},t.prototype.onMouseDown=function(e){if(this.didJustPressContextMenuKey=!1,this.context.controller.onMouseDown&&(!this.lastPointerType||"mouse"===this.lastPointerType)){var t=new c.StandardMouseEvent(e);if(!(t.ctrlKey&&n.isNative&&n.isMacintosh)){var i=this.getItemAround(t.target);i&&this.context.controller.onMouseDown(this.context.tree,i.model.getElement(),t)}}},t.prototype.onMouseUp=function(e){if(this.context.controller.onMouseUp&&(!this.lastPointerType||"mouse"===this.lastPointerType)){var t=new c.StandardMouseEvent(e);if(!(t.ctrlKey&&n.isNative&&n.isMacintosh)){var i=this.getItemAround(t.target);i&&this.context.controller.onMouseUp(this.context.tree,i.model.getElement(),t)}}},t.prototype.onTap=function(e){var t=this.getItemAround(e.initialTarget);t&&this.context.controller.onTap(this.context.tree,t.model.getElement(),e)},t.prototype.onTouchChange=function(e){e.preventDefault(),e.stopPropagation(),this.scrollTop-=e.translationY},t.prototype.onContextMenu=function(e){var t,n;if(e instanceof KeyboardEvent||this.didJustPressContextMenuKey){this.didJustPressContextMenuKey=!1;var i=new d.StandardKeyboardEvent(e);if(!(n=this.model.getFocus()))return;var o=this.context.dataSource.getId(this.context.tree,n),r=this.items[o],a=s.getDomNodePagePosition(r.element);t=new _.KeyboardContextMenuEvent(a.left+a.width,a.top,i)}else{var u=new c.StandardMouseEvent(e),l=this.getItemAround(u.target);if(!l)return;n=l.model.getElement(),t=new _.MouseContextMenuEvent(u)}this.context.controller.onContextMenu(this.context.tree,n,t)},t.prototype.onKeyDown=function(e){var t=new d.StandardKeyboardEvent(e);this.didJustPressContextMenuKey=58===t.keyCode||t.shiftKey&&68===t.keyCode,this.didJustPressContextMenuKey&&(t.preventDefault(),t.stopPropagation()),t.target&&t.target.tagName&&"input"===t.target.tagName.toLowerCase()||this.context.controller.onKeyDown(this.context.tree,t)},t.prototype.onKeyUp=function(e){this.didJustPressContextMenuKey&&this.onContextMenu(e),this.didJustPressContextMenuKey=!1,this.context.controller.onKeyUp(this.context.tree,new d.StandardKeyboardEvent(e))},t.prototype.onDragStart=function(e,n){if(!this.model.getHighlight()){var i,o=e.model.getElement(),r=this.model.getSelection();if(i=r.indexOf(o)>-1?r:[o],n.dataTransfer.effectAllowed="copyMove",n.dataTransfer.setData("URL",e.uri),n.dataTransfer.setDragImage){var s=void 0;s=this.context.dnd.getDragLabel?this.context.dnd.getDragLabel(this.context.tree,i):String(i.length);var a=document.createElement("div");a.className="monaco-tree-drag-image",a.textContent=s,document.body.appendChild(a),n.dataTransfer.setDragImage(a,-10,-10),setTimeout(function(){return document.body.removeChild(a)},0)}this.currentDragAndDropData=new h.ElementsDragAndDropData(i),t.currentExternalDragAndDropData=new h.ExternalElementsDragAndDropData(i),this.context.dnd.onDragStart(this.context.tree,this.currentDragAndDropData,new c.DragMouseEvent(n))}},t.prototype.setupDragAndDropScrollInterval=function(){var e=this,t=s.getTopLeftOffset(this.wrapper).top;this.dragAndDropScrollInterval||(this.dragAndDropScrollInterval=window.setInterval(function(){if(void 0!==e.dragAndDropMouseY){var n=e.dragAndDropMouseY-t,i=0,o=e.viewHeight-35;n<35?i=Math.max(-14,.2*(n-35)):n>o&&(i=Math.min(14,.2*(n-o))),e.scrollTop+=i}},10),this.cancelDragAndDropScrollTimeout(),this.dragAndDropScrollTimeout=window.setTimeout(function(){e.cancelDragAndDropScrollInterval(),e.dragAndDropScrollTimeout=null},1e3))},t.prototype.cancelDragAndDropScrollInterval=function(){this.dragAndDropScrollInterval&&(window.clearInterval(this.dragAndDropScrollInterval),this.dragAndDropScrollInterval=null),this.cancelDragAndDropScrollTimeout()},t.prototype.cancelDragAndDropScrollTimeout=function(){this.dragAndDropScrollTimeout&&(window.clearTimeout(this.dragAndDropScrollTimeout),this.dragAndDropScrollTimeout=null)},t.prototype.onDragOver=function(e){var n=this,i=new c.DragMouseEvent(e),r=this.getItemAround(i.target);if(!r||0===i.posx&&0===i.posy&&i.browserEvent.type===s.EventType.DRAG_LEAVE)return this.currentDropTarget&&(this.currentDropTargets.forEach(function(e){return e.dropTarget=!1}),this.currentDropTargets=[],this.currentDropPromise&&(this.currentDropPromise.cancel(),this.currentDropPromise=null)),this.cancelDragAndDropScrollInterval(),this.currentDropTarget=null,this.currentDropElement=null,this.dragAndDropMouseY=null,!1;if(this.setupDragAndDropScrollInterval(),this.dragAndDropMouseY=i.posy,!this.currentDragAndDropData)if(t.currentExternalDragAndDropData)this.currentDragAndDropData=t.currentExternalDragAndDropData;else{if(!i.dataTransfer.types)return!1;this.currentDragAndDropData=new h.DesktopDragAndDropData}this.currentDragAndDropData.update(i);var a,u,l=r.model;do{if(a=l?l.getElement():this.model.getInput(),!(u=this.context.dnd.onDragOver(this.context.tree,this.currentDragAndDropData,a,i))||u.bubble!==_.DragOverBubble.BUBBLE_UP)break;l=l&&l.parent}while(l);if(!l)return this.currentDropElement=null,!1;var d=u&&u.accept;d?(this.currentDropElement=l.getElement(),i.preventDefault(),i.dataTransfer.dropEffect=u.effect===_.DragOverEffect.COPY?"copy":"move"):this.currentDropElement=null;var p=l.id===this.inputItem.id?this.inputItem:this.items[l.id];if((this.shouldInvalidateDropReaction||this.currentDropTarget!==p||!C(this.currentDropElementReaction,u))&&(this.shouldInvalidateDropReaction=!1,this.currentDropTarget&&(this.currentDropTargets.forEach(function(e){return e.dropTarget=!1}),this.currentDropTargets=[],this.currentDropPromise&&(this.currentDropPromise.cancel(),this.currentDropPromise=null)),this.currentDropTarget=p,this.currentDropElementReaction=u,d)){if(this.currentDropTarget&&(this.currentDropTarget.dropTarget=!0,this.currentDropTargets.push(this.currentDropTarget)),u.bubble===_.DragOverBubble.BUBBLE_DOWN)for(var f,g=l.getNavigator();f=g.next();)(r=this.items[f.id])&&(r.dropTarget=!0,this.currentDropTargets.push(r));u.autoExpand&&(this.currentDropPromise=o.TPromise.timeout(500).then(function(){return n.context.tree.expand(n.currentDropElement)}).then(function(){return n.shouldInvalidateDropReaction=!0}))}return!0},t.prototype.onDrop=function(e){if(this.currentDropElement){var t=new c.DragMouseEvent(e);t.preventDefault(),this.currentDragAndDropData.update(t),this.context.dnd.drop(this.context.tree,this.currentDragAndDropData,this.currentDropElement,t),this.onDragEnd(e)}this.cancelDragAndDropScrollInterval()},t.prototype.onDragEnd=function(e){this.currentDropTarget&&(this.currentDropTargets.forEach(function(e){return e.dropTarget=!1}),this.currentDropTargets=[]),this.currentDropPromise&&(this.currentDropPromise.cancel(),this.currentDropPromise=null),this.cancelDragAndDropScrollInterval(),this.currentDragAndDropData=null,t.currentExternalDragAndDropData=null,this.currentDropElement=null,this.currentDropTarget=null,this.dragAndDropMouseY=null},t.prototype.onFocus=function(){this.context.options.alwaysFocused||s.addClass(this.domNode,"focused"),this._onDOMFocus.fire()},t.prototype.onBlur=function(){this.context.options.alwaysFocused||s.removeClass(this.domNode,"focused"),this.domNode.removeAttribute("aria-activedescendant"),this._onDOMBlur.fire()},t.prototype.onMsPointerDown=function(e){if(this.msGesture){var t=e.pointerType;t!==(e.MSPOINTER_TYPE_MOUSE||"mouse")?t===(e.MSPOINTER_TYPE_TOUCH||"touch")&&(this.lastPointerType="touch",e.stopPropagation(),e.preventDefault(),this.msGesture.addPointer(e.pointerId)):this.lastPointerType="mouse"}},t.prototype.onThrottledMsGestureChange=function(e){this.scrollTop-=e.translationY},t.prototype.onMsGestureTap=function(e){e.initialTarget=document.elementFromPoint(e.clientX,e.clientY),this.onTap(e)},t.prototype.insertItemInDOM=function(e){var t=null,n=this.itemAfter(e);n&&n.element&&(t=n.element),e.insertInDOM(this.rowsContainer,t)},t.prototype.removeItemFromDOM=function(e){e&&e.removeFromDOM()},t.prototype.shouldBeRendered=function(e){return e.topthis.lastRenderTop},t.prototype.getItemAround=function(e){var n=this.inputItem;do{if(e[t.BINDING]&&(n=e[t.BINDING]),e===this.wrapper||e===this.domNode)return n;if(e===document.body)return null}while(e=e.parentElement)},t.prototype.releaseModel=function(){this.model&&(this.modelListeners=r.dispose(this.modelListeners),this.model=null)},t.prototype.dispose=function(){this.scrollableElement.dispose(),this.releaseModel(),this.modelListeners=null,this.viewListeners=r.dispose(this.viewListeners),this._onDOMFocus.dispose(),this._onDOMBlur.dispose(),this.domNode.parentNode&&this.domNode.parentNode.removeChild(this.domNode),this.domNode=null,this.wrapperGesture&&(this.wrapperGesture.dispose(),this.wrapperGesture=null),this.context.cache&&(this.context.cache.dispose(),this.context.cache=null),e.prototype.dispose.call(this)},t}(v.HeightMap);L.BINDING="monaco-tree-row",L.LOADING_DECORATION_DELAY=800,L.counter=0,L.currentExternalDragAndDropData=null,t.TreeView=L}),define(d[393],h([4]),{}),define(d[392],h([0,1,3,11,44,6,27,34,28,393]),function(e,t,n,i,o,r,s,a,u){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var l={selectBackground:a.Color.fromHex("#3C3C3C"),selectForeground:a.Color.fromHex("#F0F0F0"),selectBorder:a.Color.fromHex("#3C3C3C")},c=function(e){function t(t,n,o){void 0===o&&(o=u.clone(l));var s=e.call(this)||this;return s.selectElement=document.createElement("select"),s.selectElement.className="select-box",s.setOptions(t,n),s.toDispose=[],s._onDidSelect=new i.Emitter,s.selectBackground=o.selectBackground,s.selectForeground=o.selectForeground,s.selectBorder=o.selectBorder,s.toDispose.push(r.addStandardDisposableListener(s.selectElement,"change",function(e){s.selectElement.title=e.target.value,s._onDidSelect.fire(e.target.value)})),s}return f(t,e),Object.defineProperty(t.prototype,"onDidSelect",{get:function(){return this._onDidSelect.event},enumerable:!0,configurable:!0}),t.prototype.setOptions=function(e,t,n){var i=this;if(!this.options||!s.equals(this.options,e)){this.options=e,this.selectElement.options.length=0;var o=0;this.options.forEach(function(e){i.selectElement.add(i.createOption(e,n===o++))})}this.select(t)},t.prototype.select=function(e){e>=0&&e=this._lines.length)throw new Error("Illegal value for lineNumber: "+e);return this._lines[t]},e.prototype.onLinesDeleted=function(e,t){if(0===this.getCount())return null;var n=this.getStartLineNumber(),i=this.getEndLineNumber();if(ti)return null;for(var r=0,s=0,a=n;a<=i;a++){var u=a-this._rendLineNumberStart;e<=a&&a<=t&&(0===s?(r=u,s=1):s++)}if(e=n&&r<=i&&(this._lines[r-this._rendLineNumberStart].onContentChanged(),o=!0);return o},e.prototype.onLinesInserted=function(e,t){if(0===this.getCount())return null;var n=t-e+1,i=this.getStartLineNumber(),o=this.getEndLineNumber();if(e<=i)return this._rendLineNumberStart+=n,null;if(e>o)return null;if(n+e>o)return this._lines.splice(e-this._rendLineNumberStart,o-e+1);for(var r=[],s=0;sn))for(var a=Math.max(t,s.fromLineNumber),u=Math.min(n,s.toLineNumber),l=a;l<=u;l++){var c=l-this._rendLineNumberStart;this._lines[c].onTokensChanged(),i=!0}}return i},e}();t.RenderedLinesCollection=i;var o=function(){function e(e){var t=this;this._host=e,this.domNode=this._createDomNode(),this._linesCollection=new i(function(){return t._host.createVisibleLine()})}return e.prototype._createDomNode=function(){var e=n.createFastDomNode(document.createElement("div"));return e.setClassName("view-layer"),e.setPosition("absolute"),e.domNode.setAttribute("role","presentation"),e.domNode.setAttribute("aria-hidden","true"),e},e.prototype.onConfigurationChanged=function(e){return e.layoutInfo},e.prototype.onFlushed=function(e){return this._linesCollection.flush(),!0},e.prototype.onLinesChanged=function(e){return this._linesCollection.onLinesChanged(e.fromLineNumber,e.toLineNumber)},e.prototype.onLinesDeleted=function(e){var t=this._linesCollection.onLinesDeleted(e.fromLineNumber,e.toLineNumber);if(t)for(var n=0,i=t.length;nt?(s=t)<=(a=Math.min(n,o.rendLineNumberStart-1))&&(this._insertLinesBefore(o,s,a,i,t),o.linesLength+=a-s+1):o.rendLineNumberStart0&&(this._removeLinesBefore(o,u),o.linesLength-=u),o.rendLineNumberStart=t,o.rendLineNumberStart+o.linesLength-1n){var s=Math.max(0,n-o.rendLineNumberStart+1),a=o.linesLength-1,u=a-s+1;u>0&&(this._removeLinesAfter(o,u),o.linesLength-=u)}return this._finishRendering(o,!1,i),o},e.prototype._renderUntouchedLines=function(e,t,n,i,o){for(var r=e.rendLineNumberStart,s=e.lines,a=t;a<=n;a++){var u=r+a;s[a].layoutLine(u,i[u-o])}},e.prototype._insertLinesBefore=function(e,t,n,i,o){for(var r=[],s=0,a=t;a<=n;a++)r[s++]=this.host.createVisibleLine();e.lines=r.concat(e.lines)},e.prototype._removeLinesBefore=function(e,t){for(var n=0;n=0;s--){var a=e.lines[s];i[s]&&(a.setDomNode(r),r=r.previousSibling)}},e.prototype._finishRenderingInvalidLines=function(e,t,n){var i=document.createElement("div");i.innerHTML=t.join("");for(var o=0;on||e===n&&t>i?(this.startLineNumber=n,this.startColumn=i,this.endLineNumber=e,this.endColumn=t):(this.startLineNumber=e,this.startColumn=t,this.endLineNumber=n,this.endColumn=i)}return e.prototype.isEmpty=function(){return e.isEmpty(this)},e.isEmpty=function(e){return e.startLineNumber===e.endLineNumber&&e.startColumn===e.endColumn},e.prototype.containsPosition=function(t){return e.containsPosition(this,t)},e.containsPosition=function(e,t){return!(t.lineNumbere.endLineNumber)&&(!(t.lineNumber===e.startLineNumber&&t.columne.endColumn))},e.prototype.containsRange=function(t){return e.containsRange(this,t)},e.containsRange=function(e,t){return!(t.startLineNumbere.endLineNumber||t.endLineNumber>e.endLineNumber)&&(!(t.startLineNumber===e.startLineNumber&&t.startColumne.endColumn)))},e.prototype.plusRange=function(t){return e.plusRange(this,t)},e.plusRange=function(t,n){var i,o,r,s;return n.startLineNumbert.endLineNumber?(r=n.endLineNumber,s=n.endColumn):n.endLineNumber===t.endLineNumber?(r=n.endLineNumber,s=Math.max(n.endColumn,t.endColumn)):(r=t.endLineNumber,s=t.endColumn),new e(i,o,r,s)},e.prototype.intersectRanges=function(t){return e.intersectRanges(this,t)},e.intersectRanges=function(t,n){var i=t.startLineNumber,o=t.startColumn,r=t.endLineNumber,s=t.endColumn,a=n.startLineNumber,u=n.startColumn,l=n.endLineNumber,c=n.endColumn;return il?(r=l,s=c):r===l&&(s=Math.min(s,c)),i>r?null:i===r&&o>s?null:new e(i,o,r,s)},e.prototype.equalsRange=function(t){return e.equalsRange(this,t)},e.equalsRange=function(e,t){return!!e&&!!t&&e.startLineNumber===t.startLineNumber&&e.startColumn===t.startColumn&&e.endLineNumber===t.endLineNumber&&e.endColumn===t.endColumn},e.prototype.getEndPosition=function(){return new n.Position(this.endLineNumber,this.endColumn)},e.prototype.getStartPosition=function(){return new n.Position(this.startLineNumber,this.startColumn)},e.prototype.cloneRange=function(){return new e(this.startLineNumber,this.startColumn,this.endLineNumber,this.endColumn)},e.prototype.toString=function(){return"["+this.startLineNumber+","+this.startColumn+" -> "+this.endLineNumber+","+this.endColumn+"]"},e.prototype.setEndPosition=function(t,n){return new e(this.startLineNumber,this.startColumn,t,n)},e.prototype.setStartPosition=function(t,n){return new e(t,n,this.endLineNumber,this.endColumn)},e.prototype.collapseToStart=function(){return e.collapseToStart(this)},e.collapseToStart=function(t){return new e(t.startLineNumber,t.startColumn,t.startLineNumber,t.startColumn)},e.fromPositions=function(t,n){return void 0===n&&(n=t),new e(t.lineNumber,t.column,n.lineNumber,n.column)},e.lift=function(t){return t?new e(t.startLineNumber,t.startColumn,t.endLineNumber,t.endColumn):null},e.isIRange=function(e){return e&&"number"==typeof e.startLineNumber&&"number"==typeof e.startColumn&&"number"==typeof e.endLineNumber&&"number"==typeof e.endColumn},e.areIntersectingOrTouching=function(e,t){return!(e.endLineNumbere.startLineNumber},e}();t.Range=i}),define(d[165],h([0,1,76,38,28,2,3]),function(e,t,n,i,o,r,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var a={followsCaret:!0,ignoreCharChanges:!0,alwaysRevealFirst:!0},u=function(e){function t(n,i){void 0===i&&(i={});var r=e.call(this,[t.Events.UPDATED])||this;return r.editor=n,r.options=o.mixin(i,a,!1),r.disposed=!1,r.toUnbind=[],r.nextIdx=-1,r.ranges=[],r.ignoreSelectionChange=!1,r.revealFirst=r.options.alwaysRevealFirst,r.toUnbind.push(r.editor.onDidDispose(function(){return r.dispose()})),r.toUnbind.push(r.editor.onDidUpdateDiff(function(){return r.onDiffUpdated()})),r.options.followsCaret&&r.toUnbind.push(r.editor.getModifiedEditor().onDidChangeCursorPosition(function(e){r.ignoreSelectionChange||(r.nextIdx=-1)})),r.options.alwaysRevealFirst&&r.toUnbind.push(r.editor.getModifiedEditor().onDidChangeModel(function(e){r.revealFirst=!0})),r.init(),r}return f(t,e),t.prototype.init=function(){this.editor.getLineChanges()},t.prototype.onDiffUpdated=function(){this.init(),this.compute(this.editor.getLineChanges()),this.revealFirst&&null!==this.editor.getLineChanges()&&(this.revealFirst=!1,this.nextIdx=-1,this.next())},t.prototype.compute=function(e){var n=this;this.ranges=[],e&&e.forEach(function(e){!n.options.ignoreCharChanges&&e.charChanges?e.charChanges.forEach(function(e){n.ranges.push({rhs:!0,range:new r.Range(e.modifiedStartLineNumber,e.modifiedStartColumn,e.modifiedEndLineNumber,e.modifiedEndColumn)})}):n.ranges.push({rhs:!0,range:new r.Range(e.modifiedStartLineNumber,1,e.modifiedStartLineNumber,1)})}),this.ranges.sort(function(e,t){return e.range.getStartPosition().isBeforeOrEqual(t.range.getStartPosition())?-1:t.range.getStartPosition().isBeforeOrEqual(e.range.getStartPosition())?1:0}),this.emit(t.Events.UPDATED,{})},t.prototype.initIdx=function(e){for(var t=!1,n=this.editor.getPosition(),i=0,o=this.ranges.length;i=this.ranges.length&&(this.nextIdx=0)):(this.nextIdx-=1,this.nextIdx<0&&(this.nextIdx=this.ranges.length-1));var t=this.ranges[this.nextIdx];this.ignoreSelectionChange=!0;try{var i=t.range.getStartPosition();this.editor.setPosition(i),this.editor.revealPositionInCenter(i)}finally{this.ignoreSelectionChange=!1}}},t.prototype.canNavigate=function(){return this.ranges&&this.ranges.length>0},t.prototype.next=function(){this.move(!0)},t.prototype.previous=function(){this.move(!1)},t.prototype.dispose=function(){this.toUnbind=s.dispose(this.toUnbind),this.ranges=null,this.disposed=!0,e.prototype.dispose.call(this)},t}(i.EventEmitter);u.Events={UPDATED:"navigation.updated"},t.DiffNavigator=u}),define(d[57],h([0,1,2]),function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(){}return e.insert=function(e,t){return{identifier:null,range:new n.Range(e.lineNumber,e.column,e.lineNumber,e.column),text:t,forceMoveMarkers:!0}},e.delete=function(e){return{identifier:null,range:e,text:null,forceMoveMarkers:!0}},e.replace=function(e,t){return{identifier:null,range:e,text:t,forceMoveMarkers:!1}},e.replaceMove=function(e,t){return{identifier:null,range:e,text:t,forceMoveMarkers:!0}},e}();t.EditOperation=i}),define(d[226],h([0,1,9,57,2]),function(e,t,n,i,o){"use strict";function r(e,t){t.sort(function(e,t){return e.lineNumber===t.lineNumber?e.column-t.column:e.lineNumber-t.lineNumber});for(var r=t.length-2;r>=0;r--)t[r].lineNumber===t[r+1].lineNumber&&t.splice(r,1);for(var s=[],a=0,u=0,l=t.length,c=1,d=e.getLineCount();c<=d;c++){var h=e.getLineContent(c),p=h.length+1,f=0;if(!(u "+this.positionLineNumber+","+this.positionColumn+"]"},t.prototype.equalsSelection=function(e){return t.selectionsEqual(this,e)},t.selectionsEqual=function(e,t){return e.selectionStartLineNumber===t.selectionStartLineNumber&&e.selectionStartColumn===t.selectionStartColumn&&e.positionLineNumber===t.positionLineNumber&&e.positionColumn===t.positionColumn},t.prototype.getDirection=function(){return this.selectionStartLineNumber===this.startLineNumber&&this.selectionStartColumn===this.startColumn?o.LTR:o.RTL},t.prototype.setEndPosition=function(e,n){return this.getDirection()===o.LTR?new t(this.startLineNumber,this.startColumn,e,n):new t(e,n,this.startLineNumber,this.startColumn)},t.prototype.getPosition=function(){return new i.Position(this.positionLineNumber,this.positionColumn)},t.prototype.setStartPosition=function(e,n){return this.getDirection()===o.LTR?new t(e,n,this.endLineNumber,this.endColumn):new t(this.endLineNumber,this.endColumn,e,n)},t.fromPositions=function(e,n){return void 0===n&&(n=e),new t(e.lineNumber,e.column,n.lineNumber,n.column)},t.liftSelection=function(e){return new t(e.selectionStartLineNumber,e.selectionStartColumn,e.positionLineNumber,e.positionColumn)},t.selectionsArrEqual=function(e,t){if(e&&!t||!e&&t)return!1;if(!e&&!t)return!0;if(e.length!==t.length)return!1;for(var n=0,i=e.length;n4294967295?4294967295:0|e}Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t,n){for(var i=new Uint8Array(e*t),o=0,r=e*t;o255?255:0|e},t.toUint32=n,t.toUint32Array=function(e){for(var t=e.length,i=new Uint32Array(t),o=0;o=0&&e<256?this._asciiMap[e]=i:this._map.set(e,i)},e.prototype.get=function(e){return e>=0&&e<256?this._asciiMap[e]:this._map.get(e)||this._defaultValue},e}();t.CharacterClassifier=i;var o;!function(e){e[e.False=0]="False",e[e.True=1]="True"}(o||(o={}));var r=function(){function e(){this._actual=new i(0)}return e.prototype.add=function(e){this._actual.set(e,1)},e.prototype.has=function(e){return 1===this._actual.get(e)},e}();t.CharacterSet=r}),define(d[90],h([0,1,82]),function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});!function(e){e[e.Regular=0]="Regular",e[e.Whitespace=1]="Whitespace",e[e.WordSeparator=2]="WordSeparator"}(t.WordCharacterClass||(t.WordCharacterClass={}));var i=function(e){function t(t){for(var n=e.call(this,0)||this,i=0,o=t.length;i, selectionStart: "+this.selectionStart+", selectionEnd: "+this.selectionEnd+"]"},e.prototype.readFromTextArea=function(t){return new e(t.getValue(),t.getSelectionStart(),t.getSelectionEnd())},e.prototype.collapseSelection=function(){return new e(this.value,this.value.length,this.value.length)},e.prototype.writeToTextArea=function(e,t,n){t.setValue(e,this.value),n&&t.setSelectionRange(e,this.selectionStart,this.selectionEnd)},e.selectedText=function(t){return new e(t,0,t.length)},e.deduceInput=function(e,t,n){if(!e)return{text:"",replaceCharCnt:0};var i=e.value,r=e.selectionStart,s=e.selectionEnd,a=t.value,u=t.selectionStart,l=t.selectionEnd,c=i.substring(s),d=a.substring(l),h=o.commonSuffixLength(c,d);a=a.substring(0,a.length-h);var p=(i=i.substring(0,i.length-h)).substring(0,r),f=a.substring(0,u),g=o.commonPrefixLength(p,f);if(a=a.substring(g),i=i.substring(g),u-=g,r-=g,l-=g,s-=g,n&&u===l&&i.length>0){var m=null;if(u===a.length?o.startsWith(a,i)&&(m=a.substring(i.length)):o.endsWith(a,i)&&(m=a.substring(0,a.length-i.length)),null!==m&&m.length>0&&(/\uFE0F/.test(m)||o.containsEmoji(m)))return{text:m,replaceCharCnt:0}}return u===l?i===a&&0===r&&s===i.length&&u===a.length&&-1===a.indexOf("\n")&&o.containsFullWidthCharacter(a)?{text:"",replaceCharCnt:0}:{text:a,replaceCharCnt:p.length-g}:{text:a,replaceCharCnt:s-r}},e}();r.EMPTY=new r("",0,0),t.TextAreaState=r;var s=function(){function e(){}return e._getPageOfLine=function(t){return Math.floor((t-1)/e._LINES_PER_PAGE)},e._getRangeForPage=function(t){var i=t*e._LINES_PER_PAGE,o=i+1,r=i+e._LINES_PER_PAGE;return new n.Range(o,1,r+1,1)},e.fromEditorSelection=function(t,o,s){var a=e._getPageOfLine(s.startLineNumber),u=e._getRangeForPage(a),l=e._getPageOfLine(s.endLineNumber),c=e._getRangeForPage(l),d=u.intersectRanges(new n.Range(1,1,s.startLineNumber,s.startColumn)),h=o.getValueInRange(d,i.EndOfLinePreference.LF),p=o.getLineCount(),f=o.getLineMaxColumn(p),g=c.intersectRanges(new n.Range(s.endLineNumber,s.endColumn,p,f)),m=o.getValueInRange(g,i.EndOfLinePreference.LF),v=null;if(a===l||a+1===l)v=o.getValueInRange(s,i.EndOfLinePreference.LF);else{var _=u.intersectRanges(s),y=c.intersectRanges(s);v=o.getValueInRange(_,i.EndOfLinePreference.LF)+String.fromCharCode(8230)+o.getValueInRange(y,i.EndOfLinePreference.LF)}return h.length>500&&(h=h.substring(h.length-500,h.length)),m.length>500&&(m=m.substring(0,500)),v.length>1e3&&(v=v.substring(0,500)+String.fromCharCode(8230)+v.substring(v.length-500,v.length)),new r(h+v+m,h.length,h.length+v.length)},e}();s._LINES_PER_PAGE=10,t.PagedScreenReaderStrategy=s}),define(d[179],h([0,1,18,9,11,3,178,30,15,6]),function(e,t,n,i,o,r,s,a,u,l){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CopyOptions={forceCopyWithSyntaxHighlighting:!1};var c;!function(e){e[e.Type=0]="Type",e[e.Paste=1]="Paste"}(c||(c={}));var d=function(e){function r(t,r){var c=e.call(this)||this;c._onFocus=c._register(new o.Emitter),c.onFocus=c._onFocus.event,c._onBlur=c._register(new o.Emitter),c.onBlur=c._onBlur.event,c._onKeyDown=c._register(new o.Emitter),c.onKeyDown=c._onKeyDown.event,c._onKeyUp=c._register(new o.Emitter),c.onKeyUp=c._onKeyUp.event,c._onCut=c._register(new o.Emitter),c.onCut=c._onCut.event,c._onPaste=c._register(new o.Emitter),c.onPaste=c._onPaste.event,c._onType=c._register(new o.Emitter),c.onType=c._onType.event,c._onCompositionStart=c._register(new o.Emitter),c.onCompositionStart=c._onCompositionStart.event,c._onCompositionUpdate=c._register(new o.Emitter),c.onCompositionUpdate=c._onCompositionUpdate.event,c._onCompositionEnd=c._register(new o.Emitter),c.onCompositionEnd=c._onCompositionEnd.event,c._host=t,c._textArea=c._register(new p(r)),c._asyncTriggerCut=c._register(new n.RunOnceScheduler(function(){return c._onCut.fire()},0)),c._textAreaState=s.TextAreaState.EMPTY,c.writeScreenReaderContent("ctor"),c._hasFocus=!1,c._isDoingComposition=!1,c._nextCommand=0,c._register(l.addStandardDisposableListener(r.domNode,"keydown",function(e){c._isDoingComposition&&e.equals(109)&&e.stopPropagation(),e.equals(9)&&e.preventDefault(),c._onKeyDown.fire(e)})),c._register(l.addStandardDisposableListener(r.domNode,"keyup",function(e){c._onKeyUp.fire(e)})),c._register(l.addDisposableListener(r.domNode,"compositionstart",function(e){c._isDoingComposition||(c._isDoingComposition=!0,a.isEdgeOrIE||c._setAndWriteTextAreaState("compositionstart",s.TextAreaState.EMPTY),c._onCompositionStart.fire())}));var d=function(e){var t=c._textAreaState,n=c._textAreaState.readFromTextArea(c._textArea);return[n,s.TextAreaState.deduceInput(t,n,e)]},f=function(e){var t=c._textAreaState,n=s.TextAreaState.selectedText(e);return[n,{text:n.value,replaceCharCnt:t.selectionEnd-t.selectionStart}]};return c._register(l.addDisposableListener(r.domNode,"compositionupdate",function(e){if(!a.isChromev56){if(a.isEdgeOrIE&&"ja"===e.locale){var t=d(!1),n=t[0],i=t[1];return c._textAreaState=n,c._onType.fire(i),void c._onCompositionUpdate.fire(e)}var o=f(e.data),r=o[0],s=o[1];c._textAreaState=r,c._onType.fire(s),c._onCompositionUpdate.fire(e)}})),c._register(l.addDisposableListener(r.domNode,"compositionend",function(e){if(a.isEdgeOrIE&&"ja"===e.locale){var t=d(!1),n=t[0],i=t[1];c._textAreaState=n,c._onType.fire(i)}else{var o=f(e.data),n=o[0],i=o[1];c._textAreaState=n,c._onType.fire(i)}(a.isEdgeOrIE||a.isChrome)&&(c._textAreaState=c._textAreaState.readFromTextArea(c._textArea)),c._isDoingComposition&&(c._isDoingComposition=!1,c._onCompositionEnd.fire())})),c._register(l.addDisposableListener(r.domNode,"input",function(){if(c._isDoingComposition){if(a.isChromev56){var e=f(c._textArea.getValue()),t=e[0],n=e[1];c._textAreaState=t,c._onType.fire(n);var o={data:n.text};c._onCompositionUpdate.fire(o)}}else{var r=d(u.isMacintosh),s=r[0],l=r[1];0===l.replaceCharCnt&&1===l.text.length&&i.isHighSurrogate(l.text.charCodeAt(0))||(c._textAreaState=s,0===c._nextCommand?""!==l.text&&c._onType.fire(l):(""!==l.text&&c._onPaste.fire({text:l.text}),c._nextCommand=0))}})),c._register(l.addDisposableListener(r.domNode,"cut",function(e){c._ensureClipboardGetsEditorSelection(e),c._asyncTriggerCut.schedule()})),c._register(l.addDisposableListener(r.domNode,"copy",function(e){c._ensureClipboardGetsEditorSelection(e)})),c._register(l.addDisposableListener(r.domNode,"paste",function(e){if(h.canUseTextData(e)){var t=h.getTextData(e);""!==t&&c._onPaste.fire({text:t})}else c._textArea.getSelectionStart()!==c._textArea.getSelectionEnd()&&c._setAndWriteTextAreaState("paste",s.TextAreaState.EMPTY),c._nextCommand=1})),c._register(l.addDisposableListener(r.domNode,"focus",function(){return c._setHasFocus(!0)})),c._register(l.addDisposableListener(r.domNode,"blur",function(){return c._setHasFocus(!1)})),c}return f(r,e),r.prototype.dispose=function(){e.prototype.dispose.call(this)},r.prototype.focusTextArea=function(){this._setHasFocus(!0)},r.prototype.isFocused=function(){return this._hasFocus},r.prototype._setHasFocus=function(e){this._hasFocus!==e&&(this._hasFocus=e,this._hasFocus&&(a.isEdge?this._setAndWriteTextAreaState("focusgain",s.TextAreaState.EMPTY):this.writeScreenReaderContent("focusgain")),this._hasFocus?this._onFocus.fire():this._onBlur.fire())},r.prototype._setAndWriteTextAreaState=function(e,t){this._hasFocus||(t=t.collapseSelection()),t.writeToTextArea(e,this._textArea,this._hasFocus),this._textAreaState=t},r.prototype.writeScreenReaderContent=function(e){this._isDoingComposition||this._setAndWriteTextAreaState(e,this._host.getScreenReaderContent(this._textAreaState))},r.prototype._ensureClipboardGetsEditorSelection=function(e){var n=this._host.getPlainTextToCopy();if(h.canUseTextData(e)){var i=null;!a.isEdgeOrIE&&(n.length<65536||t.CopyOptions.forceCopyWithSyntaxHighlighting)&&(i=this._host.getHTMLToCopy()),h.setTextData(e,n,i)}else this._setAndWriteTextAreaState("copy or cut",s.TextAreaState.selectedText(n))},r}(r.Disposable);t.TextAreaInput=d;var h=function(){function e(){}return e.canUseTextData=function(e){return!!e.clipboardData||!!window.clipboardData},e.getTextData=function(e){if(e.clipboardData)return e.preventDefault(),e.clipboardData.getData("text/plain");if(window.clipboardData)return e.preventDefault(),window.clipboardData.getData("Text");throw new Error("ClipboardEventUtils.getTextData: Cannot use text data!")},e.setTextData=function(e,t,n){if(e.clipboardData)return e.clipboardData.setData("text/plain",t),null!==n&&e.clipboardData.setData("text/html",n),void e.preventDefault();if(window.clipboardData)return window.clipboardData.setData("Text",t),void e.preventDefault();throw new Error("ClipboardEventUtils.setTextData: Cannot use text data!")},e}(),p=function(e){function t(t){var n=e.call(this)||this;return n._actual=t,n}return f(t,e),t.prototype.getValue=function(){return this._actual.domNode.value},t.prototype.setValue=function(e,t){var n=this._actual.domNode;n.value!==t&&(n.value=t)},t.prototype.getSelectionStart=function(){return this._actual.domNode.selectionStart},t.prototype.getSelectionEnd=function(){return this._actual.domNode.selectionEnd},t.prototype.setSelectionRange=function(e,t,n){var i=this._actual.domNode,o=document.activeElement===i,r=i.selectionStart,s=i.selectionEnd;if(!o||r!==t||s!==n)if(o)i.setSelectionRange(t,n);else try{var a=l.saveParentsScrollTop(i);i.focus(),i.setSelectionRange(t,n),l.restoreParentsScrollTop(i,a)}catch(e){}},t}(r.Disposable)}),define(d[218],h([0,1,10]),function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e){this.model=e,this.currentOpenStackElement=null,this.past=[],this.future=[]}return e.prototype.pushStackElement=function(){null!==this.currentOpenStackElement&&(this.past.push(this.currentOpenStackElement),this.currentOpenStackElement=null)},e.prototype.clear=function(){this.currentOpenStackElement=null,this.past=[],this.future=[]},e.prototype.pushEditOperation=function(e,t,i){this.future=[],this.currentOpenStackElement||(this.currentOpenStackElement={beforeVersionId:this.model.getAlternativeVersionId(),beforeCursorState:e,editOperations:[],afterCursorState:null,afterVersionId:-1});var o={operations:this.model.applyEdits(t)};this.currentOpenStackElement.editOperations.push(o);try{this.currentOpenStackElement.afterCursorState=i?i(o.operations):null}catch(e){n.onUnexpectedError(e),this.currentOpenStackElement.afterCursorState=null}return this.currentOpenStackElement.afterVersionId=this.model.getVersionId(),this.currentOpenStackElement.afterCursorState},e.prototype.undo=function(){if(this.pushStackElement(),this.past.length>0){var e=this.past.pop();try{for(var t=e.editOperations.length-1;t>=0;t--)e.editOperations[t]={operations:this.model.applyEdits(e.editOperations[t].operations)}}catch(e){return this.clear(),null}return this.future.push(e),{selections:e.beforeCursorState,recordedVersionId:e.beforeVersionId}}return null},e.prototype.redo=function(){if(this.future.length>0){if(this.currentOpenStackElement)throw new Error("How is this possible?");var e=this.future.pop();try{for(var t=0;t0;r--){var s=e.getIndentLevel(r);if(-1!==s){var a=o[o.length-1];if(a.indent>s){do{o.pop(),a=o[o.length-1]}while(a.indent>s);var u=a.line-1;u-r>=t&&i.push(new n(r,u,s))}a.indent===s?a.line=r:o.push({indent:s,line:r})}}return i.reverse()}}),define(d[212],h([0,1]),function(e,t){"use strict";function n(e,t,n,i){var o;for(o=0;o0&&s>0)return 0;if(l>0&&c>0)return 0;var h=Math.abs(s-c),p=Math.abs(r-l);return 0===h?p:p%h==0?p/h:0}Object.defineProperty(t,"__esModule",{value:!0}),t.guessIndentation=function(e,t,i){for(var o=0,r=0,s="",a=0,u=[2,4,6,8],l=[0,0,0,0,0,0,0,0,0],c=0,d=e.length;c0?o++:g>1&&r++;var b=n(s,a,h,f);b<=8&&l[b]++,s=h,a=f}}var C=n(s,a,"",0);C<=8&&l[C]++;var w=i;o!==r&&(w=oE&&(E=t,S=e)}),{insertSpaces:w,tabSize:S}}}),define(d[52],h([0,1]),function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TextModelEventType={ModelDispose:"modelDispose",ModelTokensChanged:"modelTokensChanged",ModelLanguageChanged:"modelLanguageChanged",ModelOptionsChanged:"modelOptionsChanged",ModelContentChanged:"contentChanged",ModelRawContentChanged2:"rawContentChanged2",ModelDecorationsChanged:"decorationsChanged"};!function(e){e[e.Flush=1]="Flush",e[e.LineChanged=2]="LineChanged",e[e.LinesDeleted=3]="LinesDeleted",e[e.LinesInserted=4]="LinesInserted",e[e.EOLChanged=5]="EOLChanged"}(t.RawContentChangedType||(t.RawContentChangedType={}));var n=function(){return function(){this.changeType=1}}();t.ModelRawFlush=n;var i=function(){return function(e,t){this.changeType=2,this.lineNumber=e,this.detail=t}}();t.ModelRawLineChanged=i;var o=function(){return function(e,t){this.changeType=3,this.fromLineNumber=e,this.toLineNumber=t}}();t.ModelRawLinesDeleted=o;var r=function(){return function(e,t,n){this.changeType=4,this.fromLineNumber=e,this.toLineNumber=t,this.detail=n}}();t.ModelRawLinesInserted=r;var s=function(){return function(){this.changeType=5}}();t.ModelRawEOLChanged=s;var a=function(){function e(e,t,n,i){this.changes=e,this.versionId=t,this.isUndoing=n,this.isRedoing=i}return e.prototype.containsEvent=function(e){for(var t=0,n=this.changes.length;t0){var s=t.charCodeAt(i);if(0!==e.get(s))return!0}return!1}function l(e,t,n,i,o){if(i+o===n)return!0;var r=t.charCodeAt(i+o);if(0!==e.get(r))return!0;if(o>0){var s=t.charCodeAt(i+o-1);if(0!==e.get(s))return!0}return!1}function c(e,t,n,i,o){return u(e,t,n,i,o)&&l(e,t,n,i,o)}Object.defineProperty(t,"__esModule",{value:!0});var d=function(){function e(e,t,n,i){this.searchString=e,this.isRegex=t,this.matchCase=n,this.wordSeparators=i}return e._isMultilineRegexSource=function(e){if(!e||0===e.length)return!1;for(var t=0,n=e.length;t=n)break;var i=e.charCodeAt(t);if(110===i||114===i)return!0}return!1},e.prototype.parseSearchRequest=function(){if(""===this.searchString)return null;var t;t=this.isRegex?e._isMultilineRegexSource(this.searchString):this.searchString.indexOf("\n")>=0;var i=null;try{i=n.createRegExp(this.searchString,this.isRegex,{matchCase:this.matchCase,wholeWord:!1,multiline:t,global:!0})}catch(e){return null}if(!i)return null;var o=!this.isRegex&&!t;return o&&this.searchString.toLowerCase()!==this.searchString.toUpperCase()&&(o=this.matchCase),new h(i,this.wordSeparators?s.getMapForWordSeparators(this.wordSeparators):null,o?this.searchString:null)},e}();t.SearchParams=d;var h=function(){return function(e,t,n){this.regex=e,this.wordSeparators=t,this.simpleSearch=n}}();t.SearchData=h;var p=function(){function e(){}return e.findMatches=function(e,t,n,i,o){var r=t.parseSearchRequest();return r?r.regex.multiline?this._doFindMatchesMultiline(e,n,new f(r.wordSeparators,r.regex),i,o):this._doFindMatchesLineByLine(e,n,r,i,o):[]},e._getMultilineMatchRange=function(e,t,n,i,r){var s;if("\r\n"===e.getEOL()){for(var a=0,u=0;u=o)return c;return c},e._doFindMatchesLineByLine=function(e,t,n,i,o){var r=[],s=0;if(t.startLineNumber===t.endLineNumber){var a=e.getLineContent(t.startLineNumber).substring(t.startColumn-1,t.endColumn-1);return s=this._findMatchesInLine(n,a,t.startLineNumber,t.startColumn-1,s,r,i,o),r}var u=e.getLineContent(t.startLineNumber).substring(t.startColumn-1);s=this._findMatchesInLine(n,u,t.startLineNumber,t.startColumn-1,s,r,i,o);for(var l=t.startLineNumber+1;l=d))return s;return s}var _,y=new f(e.wordSeparators,e.regex);y.reset(0);do{if((_=y.next(t))&&(u[s++]=a(new o.Range(n,_.index+1+i,n,_.index+1+_[0].length+i),_,l),s>=d))return s}while(_);return s},e.findNextMatch=function(e,t,n,i){var o=t.parseSearchRequest();if(!o)return null;var r=new f(o.wordSeparators,o.regex);return o.regex.multiline?this._doFindNextMatchMultiline(e,n,r,i):this._doFindNextMatchLineByLine(e,n,r,i)},e._doFindNextMatchMultiline=function(e,t,n,s){var u=new i.Position(t.lineNumber,1),l=e.getOffsetAt(u),c=e.getLineCount(),d=e.getValueInRange(new o.Range(u.lineNumber,u.column,c,e.getLineMaxColumn(c)),r.EndOfLinePreference.LF);n.reset(t.column-1);var h=n.next(d);return h?a(this._getMultilineMatchRange(e,l,d,h.index,h[0]),h,s):1!==t.lineNumber||1!==t.column?this._doFindNextMatchMultiline(e,new i.Position(1,1),n,s):null},e._doFindNextMatchLineByLine=function(e,t,n,i){var o=e.getLineCount(),r=t.lineNumber,s=e.getLineContent(r),a=this._findFirstMatchInLine(n,s,r,t.column,i);if(a)return a;for(var u=1;u<=o;u++){var l=(r+u-1)%o,c=e.getLineContent(l+1),d=this._findFirstMatchInLine(n,c,l+1,1,i);if(d)return d}return null},e._findFirstMatchInLine=function(e,t,n,i,r){e.reset(i-1);var s=e.next(t);return s?a(new o.Range(n,s.index+1,n,s.index+1+s[0].length),s,r):null},e.findPreviousMatch=function(e,t,n,i){var o=t.parseSearchRequest();if(!o)return null;var r=new f(o.wordSeparators,o.regex);return o.regex.multiline?this._doFindPreviousMatchMultiline(e,n,r,i):this._doFindPreviousMatchLineByLine(e,n,r,i)},e._doFindPreviousMatchMultiline=function(e,t,n,r){var s=this._doFindMatchesMultiline(e,new o.Range(1,1,t.lineNumber,t.column),n,r,9990);if(s.length>0)return s[s.length-1];var a=e.getLineCount();return t.lineNumber!==a||t.column!==e.getLineMaxColumn(a)?this._doFindPreviousMatchMultiline(e,new i.Position(a,e.getLineMaxColumn(a)),n,r):null},e._doFindPreviousMatchLineByLine=function(e,t,n,i){var o=e.getLineCount(),r=t.lineNumber,s=e.getLineContent(r).substring(0,t.column-1),a=this._findLastMatchInLine(n,s,r,i);if(a)return a;for(var u=1;u<=o;u++){var l=(o+r-u-1)%o,c=e.getLineContent(l+1),d=this._findLastMatchInLine(n,c,l+1,i);if(d)return d}return null},e._findLastMatchInLine=function(e,t,n,i){var r,s=null;for(e.reset(0);r=e.next(t);)s=a(new o.Range(n,r.index+1,n,r.index+1+r[0].length),r,i);return s},e}();t.TextModelSearch=p;var f=function(){function e(e,t){this._wordSeparators=e,this._searchRegex=t,this._prevMatchStartIndex=-1,this._prevMatchLength=0}return e.prototype.reset=function(e){this._searchRegex.lastIndex=e,this._prevMatchStartIndex=-1,this._prevMatchLength=0},e.prototype.next=function(e){var t,n=e.length;do{if(this._prevMatchStartIndex+this._prevMatchLength===n)return null;if(!(t=this._searchRegex.exec(e)))return null;var i=t.index,o=t[0].length;if(i===this._prevMatchStartIndex&&o===this._prevMatchLength)return null;if(this._prevMatchStartIndex=i,this._prevMatchLength=o,!this._wordSeparators||c(this._wordSeparators,e,n,i,o))return t}while(t);return null},e}()}),define(d[104],h([0,1,9,21]),function(e,t,n,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=function(){function e(){}return e.fromString=function(e){for(var t=0,i=-1;-1!==(i=e.indexOf("\r",i+1));)t++;var o=n.containsRTL(e),r=!o&&n.isBasicASCII(e),s=e.split(/\r\n|\r|\n/),a="";return n.startsWithUTF8BOM(s[0])&&(a=n.UTF8_BOM_CHARACTER,s[0]=s[0].substr(1)),{BOM:a,lines:s,length:e.length,containsRTL:o,isBasicASCII:r,totalCRCount:t}},e}();t.RawTextSource=o;var r=function(){function e(){}return e._getEOL=function(e,t){var n=e.lines.length-1;return 0===n?t===i.DefaultEndOfLine.LF?"\n":"\r\n":e.totalCRCount>n/2?"\r\n":"\n"},e.fromRawTextSource=function(e,t){return{length:e.length,lines:e.lines,BOM:e.BOM,EOL:this._getEOL(e,t),containsRTL:e.containsRTL,isBasicASCII:e.isBasicASCII}},e.fromString=function(e,t){return this.fromRawTextSource(o.fromString(e),t)},e.create=function(e,t){return"string"==typeof e?this.fromString(e,t):this.fromRawTextSource(e,t)},e}();t.TextSource=r}),define(d[131],h([0,1]),function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=function(){function e(){}return e.getLanguageId=function(e){return(255&e)>>>0},e.getTokenType=function(e){return(1792&e)>>>8},e.getFontStyle=function(e){return(14336&e)>>>11},e.getForeground=function(e){return(8372224&e)>>>14},e.getBackground=function(e){return(4286578688&e)>>>23},e.getClassNameFromMetadata=function(e){var t="mtk"+this.getForeground(e),n=this.getFontStyle(e);return 1&n&&(t+=" mtki"),2&n&&(t+=" mtkb"),4&n&&(t+=" mtku"),t},e.getInlineStyleFromMetadata=function(e,t){var n=this.getForeground(e),i=this.getFontStyle(e),o="color: "+t[n]+";";return 1&i&&(o+="font-style: italic;"),2&i&&(o+="font-weight: bold;"),4&i&&(o+="text-decoration: underline;"),o},e}();t.TokenMetadata=n}),define(d[79],h([0,1,131]),function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){this.endIndex=e,this._metadata=t}return e.prototype.getForeground=function(){return n.TokenMetadata.getForeground(this._metadata)},e.prototype.getType=function(){return n.TokenMetadata.getClassNameFromMetadata(this._metadata)},e.prototype.getInlineStyle=function(e){return n.TokenMetadata.getInlineStyleFromMetadata(this._metadata,e)},e._equals=function(e,t){return e.endIndex===t.endIndex&&e._metadata===t._metadata},e.equalsArr=function(e,t){var n=e.length;if(n!==t.length)return!1;for(var i=0;i>>1;o>>1;l=n);l++){var d=l+1>>1)-1;nt?i=o-1:n=o}return n},e}();t.ViewLineTokenFactory=o}),define(d[133],h([0,1,131,79]),function(e,t,n,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=function(){function e(e,t,n,i,o,r){this._source=e,this._tokenIndex=t,this._metadata=r,this.startOffset=i,this.endOffset=o,this.hasPrev=this._tokenIndex>0,this.hasNext=this._tokenIndex+1>>1,this._text=t,this._textLength=this._text.length}return e.prototype.getTokenCount=function(){return this._tokensCount},e.prototype.getLineContent=function(){return this._text},e.prototype.getLineLength=function(){return this._textLength},e.prototype.getTokenStartOffset=function(e){return this._tokens[e<<1]},e.prototype.getLanguageId=function(e){var t=this._tokens[1+(e<<1)];return n.TokenMetadata.getLanguageId(t)},e.prototype.getStandardTokenType=function(e){var t=this._tokens[1+(e<<1)];return n.TokenMetadata.getTokenType(t)},e.prototype.getTokenEndOffset=function(e){return e+1>1)-1},e.prototype._setPlusOneIndentLevel=function(e){this._metadata=1&this._metadata|(4026531839&e)<<1},e.prototype.updateTabSize=function(e){0===e?this._metadata=1&this._metadata:this._setPlusOneIndentLevel(o(this._text,e))},e.prototype.resetTokenizationState=function(){this._state=null,this._lineTokens=null},e.prototype.setState=function(e){this._state=e},e.prototype.getState=function(){return this._state||null},e._getDefaultMetadata=function(e){return(16384|e<<0|2<<23)>>>0},e.prototype.setTokens=function(t,n){n&&0!==n.length&&(2!==n.length||0!==n[0]||n[1]!==e._getDefaultMetadata(t))?this._lineTokens=n.buffer:this._lineTokens=null},e.prototype.getTokens=function(t){var i=this._lineTokens;if(i)return new n.LineTokens(new Uint32Array(i),this._text);var o=new Uint32Array(2);return o[0]=0,o[1]=e._getDefaultMetadata(t),new n.LineTokens(o,this._text)},e.prototype._createTokensAdjuster=function(){var e=this;if(!this._lineTokens)return u;var t=new Uint32Array(this._lineTokens),n=t.length>>>1,i=0,o=0,r=0,s=function(e,s,a){for(var u=a-1;o0&&0!==s){var l=Math.max(u,o+s);if(t[i<<1]=l,s<0)for(var c=i;c>0;){var d=t[c-1<<1];if(!(d>=l))break;4294967295!==d&&(t[c-1<<1]=4294967295,r++),c--}}++i>>1;if(e+1===i)return e;for(var o=i-1;o>0;o--){var r=n[o<<1];if(r>>1,i=new Uint32Array(n-e<<1),o=0,r=0;re)&&(1!==t&&(2===t||o.stickToPreviousCharacter))},a=function(r,a,u,l){for(;i0?2:0);var f=Math.min(h,p);f>0&&(r.adjust(l.startColumn-1+f,i,c),l.forceMoveMarkers||s.adjustDelta(l.startColumn+f,i,c,l.forceMoveMarkers?1:h>p?2:0)),o=o.substring(0,c-1)+l.text+o.substring(d-1),i+=p-h,r.adjust(l.endColumn,i,c),s.adjustSet(l.endColumn,c+p,l.forceMoveMarkers?1:0)}return r.finish(i,o.length),s.finish(i,o.length),this._setText(o,n),i},e.prototype.split=function(t,n,i,o){var s=this._text.substring(0,n-1),a=this._text.substring(n-1),u=null;if(this._markers){this._markers.sort(r.compareMarkers);for(var l=0,c=this._markers.length;ln||h.position.column===n&&(i||!h.stickToPreviousCharacter)){var d=this._markers.slice(0,l);u=this._markers.slice(l),this._markers=d;break}if(u)for(var l=0,c=u.length;l0)for(var a=0,u=s.length>>>1;a=r)return{word:u[0],startColumn:o+1+u.index,endColumn:o+1+t.lastIndex};return null}function i(e,t,n,i){var o=e-1-i;t.lastIndex=0;for(var r;r=t.exec(n);){if(r.index>o)return null;if(t.lastIndex>=o)return{word:r[0],startColumn:i+1+r.index,endColumn:i+1+t.lastIndex}}return null}Object.defineProperty(t,"__esModule",{value:!0}),t.USUAL_WORD_SEPARATORS="`~!@#$%^&*()-=+[{]}\\|;:'\",.<>/?",t.DEFAULT_WORD_REGEXP=function(e){void 0===e&&(e="");for(var n=t.USUAL_WORD_SEPARATORS,i="(-?\\d*\\.\\d\\w*)|([^",o=0;o=0||(i+="\\"+n[o]);return i+="\\s]+)",new RegExp(i,"g")}(),t.ensureValidWordDefinition=function(e){var n=t.DEFAULT_WORD_REGEXP;if(e&&e instanceof RegExp)if(e.global)n=e;else{var i="g";e.ignoreCase&&(i+="i"),e.multiline&&(i+="m"),n=new RegExp(e.source,i)}return n.lastIndex=0,n},t.getWordAtText=function(e,t,i,o){var r=n(e,t,i,o);return t.lastIndex=0,r}}),define(d[211],h([0,1]),function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=function(){function e(e){this._languageIdentifier=e}return e.prototype.getId=function(){return this._languageIdentifier.language},e.prototype.getLanguageIdentifier=function(){return this._languageIdentifier},e}();t.FrankensteinMode=n}),define(d[58],h([0,1]),function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});!function(e){e[e.None=0]="None",e[e.Indent=1]="Indent",e[e.IndentOutdent=2]="IndentOutdent",e[e.Outdent=3]="Outdent"}(t.IndentAction||(t.IndentAction={}));var n=function(){function e(e){if(this.open=e.open,this.close=e.close,this._standardTokenMask=0,Array.isArray(e.notIn))for(var t=0,n=e.notIn.length;tr&&(r=u)}return r}if("string"==typeof e)return"*"===e?5:e===o?10:0;if(e){var l=e.language,c=e.pattern,d=e.scheme,r=0;if(d)if(d===t.scheme)r=10;else{if("*"!==d)return 0;r=5}if(l)if(l===o)r=10;else{if("*"!==l)return 0;r=Math.max(r,5)}if(c){if(c!==t.fsPath&&!n.match(c,t.fsPath))return 0;r=10}return r}return 0}Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,n){return i(e,t,n)>0},t.score=i}),define(d[208],h([0,1,11,210]),function(e,t,n,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=function(){function e(){this._clock=0,this._entries=[],this._onDidChange=new n.Emitter}return Object.defineProperty(e.prototype,"onDidChange",{get:function(){return this._onDidChange.event},enumerable:!0,configurable:!0}),e.prototype.register=function(e,t){var n=this,i={selector:e,provider:t,_score:-1,_time:this._clock++};return this._entries.push(i),this._lastCandidate=void 0,this._onDidChange.fire(this._entries.length),{dispose:function(){if(i){var e=n._entries.indexOf(i);e>=0&&(n._entries.splice(e,1),n._lastCandidate=void 0,n._onDidChange.fire(n._entries.length),i=void 0)}}}},e.prototype.has=function(e){return this.all(e).length>0},e.prototype.all=function(e){if(!e||e.isTooLargeForHavingARichMode())return[];this._updateScores(e);for(var t=[],n=0,i=this._entries;n0&&t.push(o.provider)}return t},e.prototype.ordered=function(e){var t=[];return this._orderedForEach(e,function(e){return t.push(e.provider)}),t},e.prototype.orderedGroups=function(e){var t,n,i=[];return this._orderedForEach(e,function(e){t&&n===e._score?t.push(e.provider):(n=e._score,t=[e.provider],i.push(t))}),i},e.prototype._orderedForEach=function(e,t){if(e&&!e.isTooLargeForHavingARichMode()){this._updateScores(e);for(var n=0;n0&&t(i)}}},e.prototype._updateScores=function(t){var n={uri:t.uri.toString(),language:t.getLanguageIdentifier().language};if(!this._lastCandidate||this._lastCandidate.language!==n.language||this._lastCandidate.uri!==n.uri){this._lastCandidate=n;for(var o=0,r=this._entries;ot._score?-1:e._timet._time?-1:0},e}();t.default=o}),define(d[207],h([0,1,82,95]),function(e,t,n,i){"use strict";function o(){return null===l&&(l=new u([[1,104,2],[1,72,2],[1,102,6],[1,70,6],[2,116,3],[2,84,3],[3,116,4],[3,84,4],[4,112,5],[4,80,5],[5,115,9],[5,83,9],[5,58,10],[6,105,7],[6,73,7],[7,108,8],[7,76,8],[8,101,9],[8,69,9],[9,58,10],[10,47,11],[11,47,12]])),l}function r(){if(null===c){c=new n.CharacterClassifier(0);for(e=0;e<" \t<>'\"、。。、,.:;?!@#$%&*‘“〈《「『【〔([{「」}])〕】』」》〉”’`~…".length;e++)c.set(" \t<>'\"、。。、,.:;?!@#$%&*‘“〈《「『【〔([{「」}])〕】』」》〉”’`~…".charCodeAt(e),1);for(var e=0;e<".,;".length;e++)c.set(".,;".charCodeAt(e),2)}return c}Object.defineProperty(t,"__esModule",{value:!0});var s;!function(e){e[e.Invalid=0]="Invalid",e[e.Start=1]="Start",e[e.H=2]="H",e[e.HT=3]="HT",e[e.HTT=4]="HTT",e[e.HTTP=5]="HTTP",e[e.F=6]="F",e[e.FI=7]="FI",e[e.FIL=8]="FIL",e[e.BeforeColon=9]="BeforeColon",e[e.AfterColon=10]="AfterColon",e[e.AlmostThere=11]="AlmostThere",e[e.End=12]="End",e[e.Accept=13]="Accept"}(s||(s={}));var a,u=function(){function e(e){for(var t=0,n=0,o=0,r=e.length;ot&&(t=u),a>n&&(n=a),l>n&&(n=l)}t++,n++;for(var c=new i.Uint8Matrix(n,t,0),o=0,r=e.length;o=this._maxCharCode?0:this._states.get(e,t)},e}(),l=null;!function(e){e[e.None=0]="None",e[e.ForceTermination=1]="ForceTermination",e[e.CannotEndIn=2]="CannotEndIn"}(a||(a={}));var c=null,d=function(){function e(){}return e._createLink=function(e,t,n,i,o){var r=o-1;do{var s=t.charCodeAt(r);if(2!==e.get(s))break;r--}while(r>i);return{range:{startLineNumber:n,startColumn:i+1,endLineNumber:n,endColumn:r+2},url:t.substring(i,r+1)}},e.computeLinks=function(t){for(var n=o(),i=r(),s=[],a=1,u=t.getLineCount();a<=u;a++){for(var l=t.getLineContent(a),c=l.length,d=0,h=0,p=0,f=1,g=!1,m=!1,v=!1;d=0},e.prototype.shouldIncrease=function(e){return!!(this._indentationRules&&this._indentationRules.increaseIndentPattern&&this._indentationRules.increaseIndentPattern.test(e))},e.prototype.shouldDecrease=function(e){return!!(this._indentationRules&&this._indentationRules.decreaseIndentPattern&&this._indentationRules.decreaseIndentPattern.test(e))},e.prototype.shouldIndentNextLine=function(e){return!!(this._indentationRules&&this._indentationRules.indentNextLinePattern&&this._indentationRules.indentNextLinePattern.test(e))},e.prototype.shouldIgnore=function(e){return!!(this._indentationRules&&this._indentationRules.unIndentedLinePattern&&this._indentationRules.unIndentedLinePattern.test(e))},e.prototype.getIndentMetadata=function(e){var t=0;return this.shouldIncrease(e)&&(t+=1),this.shouldDecrease(e)&&(t+=2),this.shouldIndentNextLine(e)&&(t+=4),this.shouldIgnore(e)&&(t+=8),t},e}();t.IndentRulesSupport=o}),define(d[203],h([0,1]),function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=function(){function e(){this._defaultValueSet=[["true","false"],["True","False"],["Private","Public","Friend","ReadOnly","Partial","Protected","WriteOnly"],["public","protected","private"]]}return e.prototype.navigateValueSet=function(e,t,n,i,o){if(e&&t&&(r=this.doNavigateValueSet(t,o)))return{range:e,value:r};if(n&&i){var r=this.doNavigateValueSet(i,o);if(r)return{range:n,value:r}}return null},e.prototype.doNavigateValueSet=function(e,t){var n=this.numberReplace(e,t);return null!==n?n:this.textReplace(e,t)},e.prototype.numberReplace=function(e,t){var n=Math.pow(10,e.length-(e.lastIndexOf(".")+1)),i=Number(e),o=parseFloat(e);return isNaN(i)||isNaN(o)||i!==o?null:0!==i||t?(i=Math.floor(i*n),i+=t?n:-n,String(i/n)):null},e.prototype.textReplace=function(e,t){return this.valueSetsReplace(this._defaultValueSet,e,t)},e.prototype.valueSetsReplace=function(e,t,n){for(var i=null,o=0,r=e.length;null===i&&o=0?(i+=n?1:-1,i<0?i=e.length-1:i%=e.length,e[i]):null},e}();n.INSTANCE=new n,t.BasicInplaceReplace=n}),define(d[201],h([0,1,10,9,58]),function(e,t,n,i,o){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(t){(t=t||{}).brackets=t.brackets||[["(",")"],["{","}"],["[","]"]],this._brackets=t.brackets.map(function(t){return{open:t[0],openRegExp:e._createOpenBracketRegExp(t[0]),close:t[1],closeRegExp:e._createCloseBracketRegExp(t[1])}}),this._regExpRules=t.regExpRules||[],this._indentationRules=t.indentationRules}return e.prototype.onEnter=function(e,t,n){for(var i=0,r=this._regExpRules.length;i0&&n.length>0)for(var i=0,r=this._brackets.length;i0)for(var i=0,r=this._brackets.length;i=0;n--)t+=e.charAt(n);return t}var t=null,n=null;return function(i){return t!==i&&(n=e(t=i)),n}}(),p=function(){function e(){}return e._findPrevBracketInText=function(e,t,n,o){var r=n.match(e);if(!r)return null;var s=n.length-r.index,a=r[0].length,u=o+s;return new i.Range(t,u-a+1,t,u+1)},e.findPrevBracketInToken=function(e,t,n,i,o){var r=h(n).substring(n.length-o,n.length-i);return this._findPrevBracketInText(e,t,r,i)},e.findNextBracketInText=function(e,t,n,o){var r=n.match(e);if(!r)return null;var s=r.index,a=r[0].length,u=o+s;return new i.Range(t,u+1,t,u+1+a)},e.findNextBracketInToken=function(e,t,n,i,o){var r=n.substring(i,o);return this.findNextBracketInText(e,t,r,i)},e}();t.BracketsUtils=p}),define(d[370],h([0,1,34]),function(e,t,n){"use strict";function i(e){if(!e||!Array.isArray(e))return[];for(var t=[],n=0,i=0,o=e.length;i=1&&""===e[0].token;){var o=e.shift();-1!==o.fontStyle&&(t=o.fontStyle),null!==o.foreground&&(n=o.foreground),null!==o.background&&(i=o.background)}for(var r=new u,a=new d(t,r.getId(n),r.getId(i)),c=new p(a),h=0,f=e.length;ht?1:0}Object.defineProperty(t,"__esModule",{value:!0});var a=function(){return function(e,t,n,i,o){this.token=e,this.index=t,this.fontStyle=n,this.foreground=i,this.background=o}}();t.ParsedTokenThemeRule=a,t.parseTokenTheme=i;var u=function(){function e(){this._lastColorId=0,this._id2color=[],this._color2id=new Map}return e.prototype.getId=function(e){if(null===e)return 0;if(e=e.toUpperCase(),!/^[0-9A-F]{6}$/.test(e))throw new Error("Illegal color name: "+e);var t=this._color2id.get(e);return t||(t=++this._lastColorId,this._color2id.set(e,t),this._id2color[t]=n.Color.fromHex("#"+e),t)},e.prototype.getColorMap=function(){return this._id2color.slice(0)},e}();t.ColorMap=u;var l=function(){function e(e,t){this._colorMap=e,this._root=t,this._cache=new Map}return e.createFromRawTokenTheme=function(e){return this.createFromParsedTokenTheme(i(e))},e.createFromParsedTokenTheme=function(e){return o(e)},e.prototype.getColorMap=function(){return this._colorMap.getColorMap()},e.prototype.getThemeTrieElement=function(){return this._root.toExternalThemeTrieElement()},e.prototype._match=function(e){return this._root.match(e)},e.prototype.match=function(e,t){var n=this._cache.get(t);if(void 0===n){var i=this._match(t),o=r(t);n=(i.metadata|o<<8)>>>0,this._cache.set(t,n)}return(n|e<<0)>>>0},e}();t.TokenTheme=l;var c=/\b(comment|string|regex)\b/;t.toStandardTokenType=r,t.strcmp=s;var d=function(){function e(e,t,n){this._fontStyle=e,this._foreground=t,this._background=n,this.metadata=(this._fontStyle<<11|this._foreground<<14|this._background<<23)>>>0}return e.prototype.clone=function(){return new e(this._fontStyle,this._foreground,this._background)},e.cloneArr=function(e){for(var t=[],n=0,i=e.length;n>>0},e}();t.ThemeTrieElementRule=d;var h=function(){return function(e,t){this.mainRule=e,this.children=t||Object.create(null)}}();t.ExternalThemeTrieElement=h;var p=function(){function e(e){this._mainRule=e,this._children=new Map}return e.prototype.toExternalThemeTrieElement=function(){var e=Object.create(null);return this._children.forEach(function(t,n){e[n]=t.toExternalThemeTrieElement()}),new h(this._mainRule,e)},e.prototype.match=function(e){if(""===e)return this._mainRule;var t,n,i=e.indexOf(".");-1===i?(t=e,n=""):(t=e.substring(0,i),n=e.substring(i+1));var o=this._children.get(t);return void 0!==o?o.match(n):this._mainRule},e.prototype.insert=function(t,n,i,o){if(""!==t){var r,s,a=t.indexOf(".");-1===a?(r=t,s=""):(r=t.substring(0,a),s=t.substring(a+1));var u=this._children.get(r);void 0===u&&(u=new e(this._mainRule.clone()),this._children.set(r,u)),u.insert(s,n,i,o)}else this._mainRule.acceptOverwrite(n,i,o)},e}();t.ThemeTrieElement=p,t.generateTokensCSSForColorMap=function(e){for(var t=[],n=1,i=e.length;n>>0,new i.TokenizationResult2(r,n)}}),define(d[103],h([0,1,17]),function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.createScopedLineTokens=function(e,t){for(var n=e.getTokenCount(),o=e.findTokenIndexAtOffset(t),r=e.getLanguageId(o),s=o;s+10&&e.getLanguageId(a-1)===r;)a--;return new i(e,r,a,s+1,e.getTokenStartOffset(a),e.getTokenEndOffset(s))};var i=function(){function e(e,t,n,i,o,r){this._actual=e,this.languageId=t,this._firstTokenIndex=n,this._lastTokenIndex=i,this.firstCharOffset=o,this._lastCharOffset=r}return e.prototype.getLineContent=function(){return this._actual.getLineContent().substring(this.firstCharOffset,this._lastCharOffset)},e.prototype.getTokenCount=function(){return this._lastTokenIndex-this._firstTokenIndex},e.prototype.findTokenIndexAtOffset=function(e){return this._actual.findTokenIndexAtOffset(e+this.firstCharOffset)-this._firstTokenIndex},e.prototype.getTokenStartOffset=function(e){return this._actual.getTokenStartOffset(e+this._firstTokenIndex)-this.firstCharOffset},e.prototype.getStandardTokenType=function(e){return this._actual.getStandardTokenType(e+this._firstTokenIndex)},e}();t.ScopedLineTokens=i;var o;!function(e){e[e.value=7]="value"}(o||(o={})),t.ignoreBracketsInToken=function(e){return 0!=(7&e)}}),define(d[206],h([0,1,103,106,58]),function(e,t,n,i,o){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t,n){n=n||{},this._richEditBrackets=e,this._complexAutoClosePairs=t.filter(function(e){return e.open.length>1&&!!e.close}).map(function(e){return new o.StandardAutoClosingPairConditional(e)}),n.docComment&&this._complexAutoClosePairs.push(new o.StandardAutoClosingPairConditional({open:n.docComment.open,close:n.docComment.close}))}return e.prototype.getElectricCharacters=function(){var e=[];if(this._richEditBrackets)for(var t=0,n=this._richEditBrackets.brackets.length;t=0))return{appendText:s.close}}}return null},e}();t.BracketElectricCharacterSupport=r}),define(d[43],h([0,1,205,206,201,204,106,11,10,9,100,103,2,58]),function(e,t,n,i,o,r,s,a,u,l,c,d,h,p){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var f=function(){function e(t,o,a){var u=null;o&&(u=o._conf),this._conf=e._mergeConf(u,a),this._conf.brackets&&(this.brackets=new s.RichEditBrackets(t,this._conf.brackets)),this.onEnter=e._handleOnEnter(this._conf),this.comments=e._handleComments(this._conf),this.characterPair=new n.CharacterPairSupport(this._conf),this.electricCharacter=new i.BracketElectricCharacterSupport(this.brackets,this.characterPair.getAutoClosingPairs(),this._conf.__electricCharacterSupport),this.wordDefinition=this._conf.wordPattern||c.DEFAULT_WORD_REGEXP,this.indentationRules=this._conf.indentationRules,this._conf.indentationRules&&(this.indentRulesSupport=new r.IndentRulesSupport(this._conf.indentationRules))}return e._mergeConf=function(e,t){return{comments:e?t.comments||e.comments:t.comments,brackets:e?t.brackets||e.brackets:t.brackets,wordPattern:e?t.wordPattern||e.wordPattern:t.wordPattern,indentationRules:e?t.indentationRules||e.indentationRules:t.indentationRules,onEnterRules:e?t.onEnterRules||e.onEnterRules:t.onEnterRules,autoClosingPairs:e?t.autoClosingPairs||e.autoClosingPairs:t.autoClosingPairs,surroundingPairs:e?t.surroundingPairs||e.surroundingPairs:t.surroundingPairs,__electricCharacterSupport:e?t.__electricCharacterSupport||e.__electricCharacterSupport:t.__electricCharacterSupport}},e._handleOnEnter=function(e){var t={},n=!0;return e.brackets&&(n=!1,t.brackets=e.brackets),e.indentationRules&&(n=!1,t.indentationRules=e.indentationRules),e.onEnterRules&&(n=!1,t.regExpRules=e.onEnterRules),n?null:new o.OnEnterSupport(t)},e._handleComments=function(e){var t=e.comments;if(!t)return null;var n={};if(t.lineComment&&(n.lineCommentToken=t.lineComment),t.blockComment){var i=t.blockComment,o=i[0],r=i[1];n.blockCommentStartToken=o,n.blockCommentEndToken=r}return n},e}();t.RichEditSupport=f;var g=function(){function e(){this._onDidChange=new a.Emitter,this.onDidChange=this._onDidChange.event,this._entries=[]}return e.prototype.register=function(e,t){var n=this,i=this._getRichEditSupport(e.id),o=new f(e,i,t);return this._entries[e.id]=o,this._onDidChange.fire(void 0),{dispose:function(){n._entries[e.id]===o&&(n._entries[e.id]=i,n._onDidChange.fire(void 0))}}},e.prototype._getRichEditSupport=function(e){return this._entries[e]||null},e.prototype.getIndentationRules=function(e){var t=this._entries[e];return t?t.indentationRules||null:null},e.prototype._getElectricCharacterSupport=function(e){var t=this._getRichEditSupport(e);return t?t.electricCharacter||null:null},e.prototype.getElectricCharacters=function(e){var t=this._getElectricCharacterSupport(e);return t?t.getElectricCharacters():[]},e.prototype.onElectricCharacter=function(e,t,n){var i=d.createScopedLineTokens(t,n-1),o=this._getElectricCharacterSupport(i.languageId);return o?o.onElectricCharacter(e,i,n-i.firstCharOffset):null},e.prototype.getComments=function(e){var t=this._getRichEditSupport(e);return t?t.comments||null:null},e.prototype._getCharacterPairSupport=function(e){var t=this._getRichEditSupport(e);return t?t.characterPair||null:null},e.prototype.getAutoClosingPairs=function(e){var t=this._getCharacterPairSupport(e);return t?t.getAutoClosingPairs():[]},e.prototype.getSurroundingPairs=function(e){var t=this._getCharacterPairSupport(e);return t?t.getSurroundingPairs():[]},e.prototype.shouldAutoClosePair=function(e,t,n){var i=d.createScopedLineTokens(t,n-1),o=this._getCharacterPairSupport(i.languageId);return!!o&&o.shouldAutoClosePair(e,i,n-i.firstCharOffset)},e.prototype.getWordDefinition=function(e){var t=this._getRichEditSupport(e);return t?c.ensureValidWordDefinition(t.wordDefinition||null):c.ensureValidWordDefinition(null)},e.prototype.getIndentRulesSupport=function(e){var t=this._getRichEditSupport(e);return t?t.indentRulesSupport||null:null},e.prototype.getPrecedingValidLine=function(e,t,n){var i=e.getLanguageIdAtPosition(t,0);if(t>1){var o=t-1,r=-1;for(o=t-1;o>=1;o--){if(e.getLanguageIdAtPosition(o,0)!==i)return r;var s=e.getLineContent(o);if(!n.shouldIgnore(s)&&!/^\s+$/.test(s)&&""!==s)return o;r=o}}return-1},e.prototype.getInheritIndentForLine=function(e,t,n){void 0===n&&(n=!0);var i=this.getIndentRulesSupport(e.getLanguageIdentifier().id);if(!i)return null;if(t<=1)return{indentation:"",action:null};var o=this.getPrecedingValidLine(e,t,i);if(o<1)return{indentation:"",action:null};var r=e.getLineContent(o);if(i.shouldIncrease(r)||i.shouldIndentNextLine(r))return{indentation:l.getLeadingWhitespace(r),action:p.IndentAction.Indent,line:o};if(i.shouldDecrease(r))return{indentation:l.getLeadingWhitespace(r),action:null,line:o};if(1===o)return{indentation:l.getLeadingWhitespace(e.getLineContent(o)),action:null,line:o};var s=o-1,a=i.getIndentMetadata(e.getLineContent(s));if(!(3&a)&&4&a){for(var u=0,c=s-1;c>0;c--)if(!i.shouldIndentNextLine(e.getLineContent(c))){u=c;break}return{indentation:l.getLeadingWhitespace(e.getLineContent(u+1)),action:null,line:u+1}}if(n)return{indentation:l.getLeadingWhitespace(e.getLineContent(o)),action:null,line:o};for(c=o;c>0;c--){var d=e.getLineContent(c);if(i.shouldIncrease(d))return{indentation:l.getLeadingWhitespace(d),action:p.IndentAction.Indent,line:c};if(i.shouldIndentNextLine(d)){for(var u=0,h=c-1;h>0;h--)if(!i.shouldIndentNextLine(e.getLineContent(c))){u=h;break}return{indentation:l.getLeadingWhitespace(e.getLineContent(u+1)),action:null,line:u+1}}if(i.shouldDecrease(d))return{indentation:l.getLeadingWhitespace(d),action:null,line:c}}return{indentation:l.getLeadingWhitespace(e.getLineContent(1)),action:null,line:1}},e.prototype.getGoodIndentForLine=function(e,t,n,i){var o=this.getIndentRulesSupport(t);if(!o)return null;var r=this.getInheritIndentForLine(e,n),s=e.getLineContent(n);if(r){var a=r.line;if(void 0!==a){var c=this._getOnEnterSupport(t),d=null;try{d=c.onEnter("",e.getLineContent(a),"")}catch(e){u.onUnexpectedError(e)}if(d){var h=l.getLeadingWhitespace(e.getLineContent(a));return d.removeText&&(h=h.substring(0,h.length-d.removeText)),d.indentAction===p.IndentAction.Indent||d.indentAction===p.IndentAction.IndentOutdent?h=i.shiftIndent(h):d.indentAction===p.IndentAction.Outdent&&(h=i.unshiftIndent(h)),o.shouldDecrease(s)&&(h=i.unshiftIndent(h)),d.appendText&&(h+=d.appendText),l.getLeadingWhitespace(h)}}return o.shouldDecrease(s)?r.action===p.IndentAction.Indent?r.indentation:i.unshiftIndent(r.indentation):r.action===p.IndentAction.Indent?i.shiftIndent(r.indentation):r.indentation}return null},e.prototype.getIndentForEnter=function(e,t,n,i){e.forceTokenization(t.startLineNumber);var o,r=e.getLineTokens(t.startLineNumber),s=r.findTokenIndexAtOffset(t.startColumn),a=r.findTokenIndexAtOffset(0),u=d.createScopedLineTokens(r,t.startColumn),c=u.getLineContent();o=r.getLanguageId(a)===r.getLanguageId(s)?r.getLineContent().substring(0,t.startColumn-1):c.substr(0,t.startColumn-1-u.firstCharOffset);var h;h=t.isEmpty()?c.substr(t.startColumn-1-u.firstCharOffset):this.getScopedLineTokens(e,t.endLineNumber,t.endColumn).getLineContent().substr(t.endColumn-1-u.firstCharOffset);var f=this.getIndentRulesSupport(u.languageId);if(!f)return null;var g=o,m=l.getLeadingWhitespace(o);if(!i){var v=this.getInheritIndentForLine(e,t.startLineNumber),_=l.getLeadingWhitespace(o);f.shouldDecrease(o)&&v&&(_=v.indentation,v.action!==p.IndentAction.Indent&&(_=n.unshiftIndent(_))),g=_+l.ltrim(l.ltrim(o," "),"\t")}var y={getLineTokens:function(t){return e.getLineTokens(t)},getLanguageIdentifier:function(){return e.getLanguageIdentifier()},getLanguageIdAtPosition:function(t,n){return e.getLanguageIdAtPosition(t,n)},getLineContent:function(n){return n===t.startLineNumber?g:e.getLineContent(n)}},b=this.getInheritIndentForLine(y,t.startLineNumber+1);if(!b)return{beforeEnter:m,afterEnter:m};var C=b.indentation;return b.action===p.IndentAction.Indent&&(C=n.shiftIndent(C)),f.shouldDecrease(h)&&(C=n.unshiftIndent(C)),{beforeEnter:m,afterEnter:C}},e.prototype.getIndentActionForType=function(e,t,n,i){var o=this.getScopedLineTokens(e,t.startLineNumber,t.startColumn),r=this.getIndentRulesSupport(o.languageId);if(!r)return null;var s,a=o.getLineContent(),u=a.substr(0,t.startColumn-1-o.firstCharOffset);if(s=t.isEmpty()?a.substr(t.startColumn-1-o.firstCharOffset):this.getScopedLineTokens(e,t.endLineNumber,t.endColumn).getLineContent().substr(t.endColumn-1-o.firstCharOffset),r.shouldDecrease(u+n+s)){var l=this.getInheritIndentForLine(e,t.startLineNumber,!1);if(!l)return null;var c=l.indentation;return l.action!==p.IndentAction.Indent&&(c=i.unshiftIndent(c)),c}return null},e.prototype.getIndentMetadata=function(e,t){var n=this.getIndentRulesSupport(e.getLanguageIdentifier().id);return n?t<1||t>e.getLineCount()?null:n.getIndentMetadata(e.getLineContent(t)):null},e.prototype._getOnEnterSupport=function(e){var t=this._getRichEditSupport(e);return t?t.onEnter||null:null},e.prototype.getRawEnterActionAtPosition=function(e,t,n){var i=this.getEnterAction(e,new h.Range(t,n,t,n));return i?i.enterAction:null},e.prototype.getEnterAction=function(e,t){var n=this.getIndentationAtPosition(e,t.startLineNumber,t.startColumn),i=this.getScopedLineTokens(e,t.startLineNumber,t.startColumn),o=this._getOnEnterSupport(i.languageId);if(!o)return null;var r,s=i.getLineContent(),a=s.substr(0,t.startColumn-1-i.firstCharOffset);r=t.isEmpty()?s.substr(t.startColumn-1-i.firstCharOffset):this.getScopedLineTokens(e,t.endLineNumber,t.endColumn).getLineContent().substr(t.endColumn-1-i.firstCharOffset);var l=t.startLineNumber,c="";if(l>1&&0===i.firstCharOffset){var d=this.getScopedLineTokens(e,l-1);d.languageId===i.languageId&&(c=d.getLineContent())}var h=null;try{h=o.onEnter(c,a,r)}catch(e){u.onUnexpectedError(e)}return h?(h.appendText||(h.indentAction===p.IndentAction.Indent||h.indentAction===p.IndentAction.IndentOutdent?h.appendText="\t":h.appendText=""),h.removeText&&(n=n.substring(0,n.length-h.removeText)),{enterAction:h,indentation:n}):null},e.prototype.getIndentationAtPosition=function(e,t,n){var i=e.getLineContent(t),o=l.getLeadingWhitespace(i);return o.length>n-1&&(o=o.substring(0,n-1)),o},e.prototype.getScopedLineTokens=function(e,t,n){e.forceTokenization(t);var i=e.getLineTokens(t),o=isNaN(n)?e.getLineMaxColumn(t)-1:n;return d.createScopedLineTokens(i,o)},e.prototype.getBracketsSupport=function(e){var t=this._getRichEditSupport(e);return t?t.brackets||null:null},e}();t.LanguageConfigurationRegistryImpl=g,t.LanguageConfigurationRegistry=new g}),define(d[138],h([0,1,9,17,70,133]),function(e,t,n,i,o,r){"use strict";function s(e){var t=i.TokenizationRegistry.get(e);return t||{getInitialState:function(){return o.NULL_STATE},tokenize:void 0,tokenize2:function(e,t,n){return o.nullTokenize2(0,e,t,n)}}}function a(e,t){for(var i='
        ',o=e.split(/\r\n|\r|\n/),s=t.getInitialState(),a=0,u=o.length;a0&&(i+="
        ");for(var c=t.tokenize2(l,s,0),d=new r.LineTokens(c.tokens,l).inflate(),h=0,p=0,f=d.length;p'+n.escape(l.substring(h,g.endIndex))+"",h=g.endIndex}s=c.endState}return i+="
        "}Object.defineProperty(t,"__esModule",{value:!0}),t.tokenizeToString=function(e,t){return a(e,s(t))},t.tokenizeLineToHTML=function(e,t,n,i,o,r){for(var s="
        ",a=i,u=0,l=0,c=t.length;l0;)p+=" ",g--;break;case 60:p+="<";break;case 62:p+=">";break;case 38:p+="&";break;case 0:p+="�";break;case 65279:case 8232:p+="�";break;case 13:p+="​";break;default:p+=String.fromCharCode(f)}}if(s+=''+p+"",d.endIndex>o||a>=o)break}}return s+="
        "}}),define(d[209],h([0,1,11]),function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(){this._transientWatchers={},this._codeEditors=Object.create(null),this._diffEditors=Object.create(null),this._onCodeEditorAdd=new n.Emitter,this._onCodeEditorRemove=new n.Emitter,this._onDiffEditorAdd=new n.Emitter,this._onDiffEditorRemove=new n.Emitter}return e.prototype.addCodeEditor=function(e){this._codeEditors[e.getId()]=e,this._onCodeEditorAdd.fire(e)},Object.defineProperty(e.prototype,"onCodeEditorAdd",{get:function(){return this._onCodeEditorAdd.event},enumerable:!0,configurable:!0}),e.prototype.removeCodeEditor=function(e){delete this._codeEditors[e.getId()]&&this._onCodeEditorRemove.fire(e)},Object.defineProperty(e.prototype,"onCodeEditorRemove",{get:function(){return this._onCodeEditorRemove.event},enumerable:!0,configurable:!0}),e.prototype.getCodeEditor=function(e){return this._codeEditors[e]||null},e.prototype.listCodeEditors=function(){var e=this;return Object.keys(this._codeEditors).map(function(t){return e._codeEditors[t]})},e.prototype.addDiffEditor=function(e){this._diffEditors[e.getId()]=e,this._onDiffEditorAdd.fire(e)},Object.defineProperty(e.prototype,"onDiffEditorAdd",{get:function(){return this._onDiffEditorAdd.event},enumerable:!0,configurable:!0}),e.prototype.removeDiffEditor=function(e){delete this._diffEditors[e.getId()]&&this._onDiffEditorRemove.fire(e)},Object.defineProperty(e.prototype,"onDiffEditorRemove",{get:function(){return this._onDiffEditorRemove.event},enumerable:!0,configurable:!0}),e.prototype.getDiffEditor=function(e){return this._diffEditors[e]||null},e.prototype.listDiffEditors=function(){var e=this;return Object.keys(this._diffEditors).map(function(t){return e._diffEditors[t]})},e.prototype.getFocusedCodeEditor=function(){for(var e=null,t=this.listCodeEditors(),n=0;n=.5,this._onDidChange.fire(void 0)},e.prototype.getColor=function(e){return(e<1||e>=this._colors.length)&&(e=2),this._colors[e]},e.prototype.backgroundIsLight=function(){return this._backgroundIsLight},e}();o._INSTANCE=null,t.MinimapTokensColorTracker=o;!function(e){e[e.START_CH_CODE=32]="START_CH_CODE",e[e.END_CH_CODE=126]="END_CH_CODE",e[e.CHAR_COUNT=95]="CHAR_COUNT",e[e.SAMPLED_CHAR_HEIGHT=16]="SAMPLED_CHAR_HEIGHT",e[e.SAMPLED_CHAR_WIDTH=10]="SAMPLED_CHAR_WIDTH",e[e.SAMPLED_HALF_CHAR_WIDTH=5]="SAMPLED_HALF_CHAR_WIDTH",e[e.x2_CHAR_HEIGHT=4]="x2_CHAR_HEIGHT",e[e.x2_CHAR_WIDTH=2]="x2_CHAR_WIDTH",e[e.x1_CHAR_HEIGHT=2]="x1_CHAR_HEIGHT",e[e.x1_CHAR_WIDTH=1]="x1_CHAR_WIDTH",e[e.RGBA_CHANNELS_CNT=4]="RGBA_CHANNELS_CNT"}(t.Constants||(t.Constants={}));var r=function(){function e(t,n){if(760!==t.length)throw new Error("Invalid x2CharData");if(190!==n.length)throw new Error("Invalid x1CharData");this.x2charData=t,this.x1charData=n,this.x2charDataLight=e.soften(t,.8),this.x1charDataLight=e.soften(n,50/60)}return e.soften=function(e,t){for(var n=new Uint8ClampedArray(e.length),i=0,o=e.length;it.width||i+4>t.height)console.warn("bad render request outside image data");else{var u=a?this.x2charDataLight:this.x2charData,l=e._getChIndex(o),c=4*t.width,d=s.r,h=s.g,p=s.b,f=r.r-d,g=r.g-h,m=r.b-p,v=t.data,_=4*l*2,y=i*c+4*n,b=u[_]/255;v[y+0]=d+f*b,v[y+1]=h+g*b,v[y+2]=p+m*b;b=u[_+1]/255;v[y+4]=d+f*b,v[y+5]=h+g*b,v[y+6]=p+m*b,y+=c;b=u[_+2]/255;v[y+0]=d+f*b,v[y+1]=h+g*b,v[y+2]=p+m*b;b=u[_+3]/255;v[y+4]=d+f*b,v[y+5]=h+g*b,v[y+6]=p+m*b,y+=c;b=u[_+4]/255;v[y+0]=d+f*b,v[y+1]=h+g*b,v[y+2]=p+m*b;b=u[_+5]/255;v[y+4]=d+f*b,v[y+5]=h+g*b,v[y+6]=p+m*b,y+=c;b=u[_+6]/255;v[y+0]=d+f*b,v[y+1]=h+g*b,v[y+2]=p+m*b;b=u[_+7]/255;v[y+4]=d+f*b,v[y+5]=h+g*b,v[y+6]=p+m*b}},e.prototype.x1RenderChar=function(t,n,i,o,r,s,a){if(n+1>t.width||i+2>t.height)console.warn("bad render request outside image data");else{var u=a?this.x1charDataLight:this.x1charData,l=e._getChIndex(o),c=4*t.width,d=s.r,h=s.g,p=s.b,f=r.r-d,g=r.g-h,m=r.b-p,v=t.data,_=2*l*1,y=i*c+4*n,b=u[_]/255;v[y+0]=d+f*b,v[y+1]=h+g*b,v[y+2]=p+m*b,y+=c;b=u[_+1]/255;v[y+0]=d+f*b,v[y+1]=h+g*b,v[y+2]=p+m*b}},e.prototype.x2BlockRenderChar=function(e,t,n,i,o,r){if(t+2>e.width||n+4>e.height)console.warn("bad render request outside image data");else{var s=4*e.width,a=o.r,u=o.g,l=o.b,c=a+.5*(i.r-a),d=u+.5*(i.g-u),h=l+.5*(i.b-l),p=e.data,f=n*s+4*t;p[f+0]=c,p[f+1]=d,p[f+2]=h,p[f+4]=c,p[f+5]=d,p[f+6]=h,p[(f+=s)+0]=c,p[f+1]=d,p[f+2]=h,p[f+4]=c,p[f+5]=d,p[f+6]=h,p[(f+=s)+0]=c,p[f+1]=d,p[f+2]=h,p[f+4]=c,p[f+5]=d,p[f+6]=h,p[(f+=s)+0]=c,p[f+1]=d,p[f+2]=h,p[f+4]=c,p[f+5]=d,p[f+6]=h}},e.prototype.x1BlockRenderChar=function(e,t,n,i,o,r){if(t+1>e.width||n+2>e.height)console.warn("bad render request outside image data");else{var s=4*e.width,a=o.r,u=o.g,l=o.b,c=a+.5*(i.r-a),d=u+.5*(i.g-u),h=l+.5*(i.b-l),p=e.data,f=n*s+4*t;p[f+0]=c,p[f+1]=d,p[f+2]=h,p[(f+=s)+0]=c,p[f+1]=d,p[f+2]=h}},e}();t.MinimapCharRenderer=r}),define(d[80],h([0,1,2]),function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){this._viewLayout=e,this.viewportData=t,this.scrollWidth=this._viewLayout.getScrollWidth(),this.scrollHeight=this._viewLayout.getScrollHeight(),this.visibleRange=this.viewportData.visibleRange,this.bigNumbersDelta=this.viewportData.bigNumbersDelta;var n=this._viewLayout.getCurrentViewport();this.scrollTop=n.top,this.scrollLeft=n.left,this.viewportWidth=n.width,this.viewportHeight=n.height}return e.prototype.getScrolledTopFromAbsoluteTop=function(e){return e-this.scrollTop},e.prototype.getVerticalOffsetForLineNumber=function(e){return this._viewLayout.getVerticalOffsetForLineNumber(e)},e.prototype.lineIsVisible=function(e){return this.visibleRange.startLineNumber<=e&&e<=this.visibleRange.endLineNumber},e.prototype.getDecorationsInViewport=function(){return this.viewportData.getDecorationsInViewport()},e}();t.RestrictedRenderingContext=i;var o=function(e){function t(t,n,i){var o=e.call(this,t,n)||this;return o._viewLines=i,o}return f(t,e),t.prototype.linesVisibleRangesForRange=function(e,t){return this._viewLines.linesVisibleRangesForRange(e,t)},t.prototype.visibleRangeForPosition=function(e){var t=this._viewLines.visibleRangesForRange2(new n.Range(e.lineNumber,e.column,e.lineNumber,e.column));return t?t[0]:null},t}(i);t.RenderingContext=o;var r=function(){return function(e,t){this.lineNumber=e,this.ranges=t}}();t.LineVisibleRanges=r;var s=function(){function e(e,t){this.left=Math.round(e),this.width=Math.round(t)}return e.prototype.toString=function(){return"["+this.left+","+this.width+"]"},e}();t.HorizontalRange=s}),define(d[213],h([0,1,80]),function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){this.left=e,this.width=t}return e.prototype.toString=function(){return"["+this.left+","+this.width+"]"},e.compare=function(e,t){return e.left-t.left},e}(),o=function(){function e(){}return e._createRange=function(){return this._handyReadyRange||(this._handyReadyRange=document.createRange()),this._handyReadyRange},e._detachRange=function(e,t){e.selectNodeContents(t)},e._readClientRects=function(e,t,n,i,o){var r=this._createRange();try{return r.setStart(e,t),r.setEnd(n,i),r.getClientRects()}catch(e){return null}finally{this._detachRange(r,o)}},e._mergeAdjacentRanges=function(e){if(1===e.length)return[new n.HorizontalRange(e[0].left,e[0].width)];e.sort(i.compare);for(var t=[],o=0,r=e[0].left,s=e[0].width,a=1,u=e.length;a=c?s=Math.max(s,c+d-r):(t[o++]=new n.HorizontalRange(r,s),r=c,s=d)}return t[o++]=new n.HorizontalRange(r,s),t},e._createHorizontalRangesFromClientRects=function(e,t){if(!e||0===e.length)return null;for(var n=[],o=0,r=e.length;oa)return null;(t=Math.min(a,Math.max(0,t)))!==(i=Math.min(a,Math.max(0,i)))&&i>0&&0===o&&(i--,o=Number.MAX_VALUE);var u=e.children[t].firstChild,l=e.children[i].firstChild;if(!u||!l)return null;n=Math.min(u.textContent.length,Math.max(0,n)),o=Math.min(l.textContent.length,Math.max(0,o));var c=this._readClientRects(u,n,l,o,s);return this._createHorizontalRangesFromClientRects(c,r)},e}();t.RangeUtil=o}),define(d[214],h([0,1,136]),function(e,t,n){"use strict";function i(e){for(var t=new Uint8ClampedArray(e.length),n=0,i=e.length;nn)&&!c.isEmpty()){var d=c.startLineNumber===n?c.startColumn:i,h=c.endLineNumber===n?c.endColumn:o;h<=1||(r[s++]=new e(d,h,l.inlineClassName,l.insertsBeforeOrAfter))}}return r},e.compare=function(e,t){return e.startColumn===t.startColumn?e.endColumn===t.endColumn?e.classNamet.className?1:0:e.endColumn-t.endColumn:e.startColumn-t.startColumn},e}();t.LineDecoration=n;var i=function(){return function(e,t,n){this.startOffset=e,this.endOffset=t,this.className=n}}();t.DecorationSegment=i;var o=function(){function e(){this.stopOffsets=[],this.classNames=[],this.count=0}return e.prototype.consumeLowerThan=function(e,t,n){for(;this.count>0&&this.stopOffsets[0]0&&t=e){this.stopOffsets.splice(n,0,e),this.classNames.splice(n,0,t);break}this.count++},e}(),r=function(){function e(){}return e.normalize=function(e){if(0===e.length)return[];for(var t=[],n=new o,i=0,r=0,s=e.length;r0){for(var h=0,p=e.lineDecorations.length;h0&&(i[o++]=new d(t,""));for(var r=0,s=e.length;r=n){i[o++]=new d(n,l);break}i[o++]=new d(u,l)}}return i}function a(e,t){for(var n=0,i=[],r=0,s=0,a=t.length;s50){for(var h=u.type,p=Math.ceil(c/50),f=1;fu)b=!0;else if(9===y)b=!0;else if(32===y)if(a)if(_)b=!0;else{var C=v+1=r)&&(l[c++]=new d(v,"vs-whitespace"),m%=r):(v===f||b&&v>i)&&(l[c++]=new d(v,p),m%=r),9===y?m=r:m++,_=b,v===f&&(p=n[++h].type,f=n[h].endIndex)}return l[c++]=_?new d(t,"vs-whitespace"):new d(t,p),l}function l(e,t,n,o){o.sort(i.LineDecoration.compare);for(var r=i.LineDecorationsNormalizer.normalize(o),s=r.length,a=0,u=[],l=0,c=0,h=0,p=n.length;hc&&(c=v.startOffset,u[l++]=new d(c,m)),!(v.endOffset+1<=g)){c=g,u[l++]=new d(c,m+" "+v.className);break}c=v.endOffset+1,u[l++]=new d(c,m+" "+v.className),a++}g>c&&(c=g,u[l++]=new d(c,m))}return u}function c(e){for(var t=e.fontIsMonospace,n=e.containsForeignElements,i=e.lineContent,o=e.len,r=e.isOverflowing,s=e.parts,a=e.tabSize,u=e.containsRTL,l=e.spaceWidth,c=e.renderWhitespace,d=e.renderControlCharacters,h=new p(o+1,s.length),g=0,m=0,v=0,_="",y=0,b=s.length;y=0){for(var E=0,L="";g0&&(L+="→",E++,N--);N>0;)L+=" ",E++,N--;else L+="·",E++;v++}h.setPartLength(y,E),_+=t?''+L+"":''+L+""}else{for(var E=0,L="";g0;)L+=" ",E++,N--;break;case 32:L+=" ",E++;break;case 60:L+="<",E++;break;case 62:L+=">",E++;break;case 38:L+="&",E++;break;case 0:L+="�",E++;break;case 65279:case 8232:L+="�",E++;break;case 13:L+="​",E++;break;default:d&&x<32?(L+=String.fromCharCode(9216+x),E++):(L+=String.fromCharCode(x),E++)}v++}h.setPartLength(y,E),_+=u?''+L+"":''+L+""}}return h.setPartData(o,s.length-1,v),r&&(_+=""),_+="",new f(h,_,u,n)}Object.defineProperty(t,"__esModule",{value:!0});!function(e){e[e.None=0]="None",e[e.Boundary=1]="Boundary",e[e.All=2]="All"}(t.RenderWhitespace||(t.RenderWhitespace={}));var d=function(){return function(e,t){this.endIndex=e,this.type=t}}(),h=function(){function e(e,t,n,i,o,r,s,a,u,l,c,d){this.useMonospaceOptimizations=e,this.lineContent=t,this.mightContainRTL=n,this.fauxIndentLength=i,this.lineTokens=o,this.lineDecorations=r,this.tabSize=s,this.spaceWidth=a,this.stopRenderingLineAfter=u,this.renderWhitespace="all"===l?2:"boundary"===l?1:0,this.renderControlCharacters=c,this.fontLigatures=d}return e.prototype.equals=function(e){return this.useMonospaceOptimizations===e.useMonospaceOptimizations&&this.lineContent===e.lineContent&&this.mightContainRTL===e.mightContainRTL&&this.fauxIndentLength===e.fauxIndentLength&&this.tabSize===e.tabSize&&this.spaceWidth===e.spaceWidth&&this.stopRenderingLineAfter===e.stopRenderingLineAfter&&this.renderWhitespace===e.renderWhitespace&&this.renderControlCharacters===e.renderControlCharacters&&this.fontLigatures===e.fontLigatures&&i.LineDecoration.equalsArr(this.lineDecorations,e.lineDecorations)&&n.ViewLineToken.equalsArr(this.lineTokens,e.lineTokens)},e}();t.RenderLineInput=h;!function(e){e[e.PART_INDEX_MASK=4294901760]="PART_INDEX_MASK",e[e.CHAR_INDEX_MASK=65535]="CHAR_INDEX_MASK",e[e.CHAR_INDEX_OFFSET=0]="CHAR_INDEX_OFFSET",e[e.PART_INDEX_OFFSET=16]="PART_INDEX_OFFSET"}(t.CharacterMappingConstants||(t.CharacterMappingConstants={}));var p=function(){function e(e,t){this.length=e,this._data=new Uint32Array(this.length),this._partLengths=new Uint16Array(t)}return e.getPartIndex=function(e){return(4294901760&e)>>>16},e.getCharIndex=function(e){return(65535&e)>>>0},e.prototype.setPartData=function(e,t,n){var i=(t<<16|n<<0)>>>0;this._data[e]=i},e.prototype.setPartLength=function(e,t){this._partLengths[e]=t},e.prototype.getPartLengths=function(){return this._partLengths},e.prototype.charOffsetToPartData=function(e){return 0===this.length?0:e<0?this._data[0]:e>=this.length?this._data[this.length-1]:this._data[e]},e.prototype.partDataToCharOffset=function(t,n,i){if(0===this.length)return 0;for(var o=(t<<16|i<<0)>>>0,r=0,s=this.length-1;r+1>>1,u=this._data[a];if(u===o)return a;u>o?s=a:r=a}if(r===s)return r;var l=this._data[r],c=this._data[s];if(l===o)return r;if(c===o)return s;var d=e.getPartIndex(l);return i-e.getCharIndex(l)<=(d!==e.getPartIndex(c)?n:e.getCharIndex(c))-i?r:s},e}();t.CharacterMapping=p;var f=function(){return function(e,t,n,i){this.characterMapping=e,this.html=t,this.containsRTL=n,this.containsForeignElements=i}}();t.RenderLineOutput=f,t.renderViewLine=function(e){return 0===e.lineContent.length?new f(new p(0,0)," ",!1,!1):c(r(e))};var g,m=function(){return function(e,t,n,i,o,r,s,a,u,l,c){this.fontIsMonospace=e,this.lineContent=t,this.len=n,this.isOverflowing=i,this.parts=o,this.containsForeignElements=r,this.tabSize=s,this.containsRTL=a,this.spaceWidth=u,this.renderWhitespace=l,this.renderControlCharacters=c}}();!function(e){e[e.LongToken=50]="LongToken"}(g||(g={}))}),define(d[220],h([0,1,2]),function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t,i,o){this.selections=e,this.startLineNumber=0|t.startLineNumber,this.endLineNumber=0|t.endLineNumber,this.relativeVerticalOffset=t.relativeVerticalOffset,this.bigNumbersDelta=0|t.bigNumbersDelta,this.whitespaceViewportData=i,this._model=o,this.visibleRange=new n.Range(t.startLineNumber,this._model.getLineMinColumn(t.startLineNumber),t.endLineNumber,this._model.getLineMaxColumn(t.endLineNumber))}return e.prototype.getViewLineRenderingData=function(e){return this._model.getViewLineRenderingData(this.visibleRange,e)},e.prototype.getDecorationsInViewport=function(){return this._model.getDecorationsInViewport(this.visibleRange)},e}();t.ViewportData=i}),define(d[221],h([0,1]),function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=function(){function e(){this._heights=[],this._ids=[],this._afterLineNumbers=[],this._ordinals=[],this._prefixSum=[],this._prefixSumValidIndex=-1,this._whitespaceId2Index={},this._lastWhitespaceId=0}return e.findInsertionIndex=function(e,t,n,i){for(var o=0,r=e.length;o>>1;t===e[s]?i=t&&(this._whitespaceId2Index[u]=l+1)}this._whitespaceId2Index[e.toString()]=t,this._prefixSumValidIndex=Math.min(this._prefixSumValidIndex,t-1)},e.prototype.changeWhitespace=function(e,t,n){e|=0,t|=0,n|=0;var i=!1;return i=this.changeWhitespaceHeight(e,n)||i,i=this.changeWhitespaceAfterLineNumber(e,t)||i},e.prototype.changeWhitespaceHeight=function(e,t){t|=0;var n=(e|=0).toString();if(this._whitespaceId2Index.hasOwnProperty(n)){var i=this._whitespaceId2Index[n];if(this._heights[i]!==t)return this._heights[i]=t,this._prefixSumValidIndex=Math.min(this._prefixSumValidIndex,i-1),!0}return!1},e.prototype.changeWhitespaceAfterLineNumber=function(t,n){n|=0;var i=(t|=0).toString();if(this._whitespaceId2Index.hasOwnProperty(i)){var o=this._whitespaceId2Index[i];if(this._afterLineNumbers[o]!==n){var r=this._ordinals[o],s=this._heights[o];this.removeWhitespace(t);var a=e.findInsertionIndex(this._afterLineNumbers,n,this._ordinals,r);return this._insertWhitespaceAtIndex(t,a,n,r,s),!0}}return!1},e.prototype.removeWhitespace=function(e){var t=(e|=0).toString();if(this._whitespaceId2Index.hasOwnProperty(t)){var n=this._whitespaceId2Index[t];return delete this._whitespaceId2Index[t],this._removeWhitespaceAtIndex(n),!0}return!1},e.prototype._removeWhitespaceAtIndex=function(e){e|=0,this._heights.splice(e,1),this._ids.splice(e,1),this._afterLineNumbers.splice(e,1),this._ordinals.splice(e,1),this._prefixSum.splice(e,1),this._prefixSumValidIndex=Math.min(this._prefixSumValidIndex,e-1);for(var t=Object.keys(this._whitespaceId2Index),n=0,i=t.length;n=e&&(this._whitespaceId2Index[o]=r-1)}},e.prototype.onLinesDeleted=function(e,t){e|=0,t|=0;for(var n=0,i=this._afterLineNumbers.length;nt&&(this._afterLineNumbers[n]-=t-e+1)}},e.prototype.onLinesInserted=function(e,t){e|=0,t|=0;for(var n=0,i=this._afterLineNumbers.length;n=t.length||t[o+1]>=e)return o;n=o+1|0}else i=o-1|0}return-1},e.prototype._findFirstWhitespaceAfterLineNumber=function(e){e|=0;var t=this._findLastWhitespaceBeforeLineNumber(e)+1;return t1?this._lineHeight*(e-1):0)+this._whitespaces.getAccumulatedHeightBeforeLineNumber(e)},e.prototype.getWhitespaceAccumulatedHeightBeforeLineNumber=function(e){return this._whitespaces.getAccumulatedHeightBeforeLineNumber(e)},e.prototype.hasWhitespace=function(){return this._whitespaces.getCount()>0},e.prototype.isAfterLines=function(e){return e>this.getLinesTotalHeight()},e.prototype.getLineNumberAtOrAfterVerticalOffset=function(e){if((e|=0)<0)return 1;for(var t=0|this._lineCount,n=this._lineHeight,i=1,o=t;i=s+n)i=r+1;else{if(e>=s)return r;o=r}}return i>t?t:i},e.prototype.getLinesViewportData=function(e,t){e|=0,t|=0;var n,i,o=this._lineHeight,r=0|this.getLineNumberAtOrAfterVerticalOffset(e),s=0|this.getVerticalOffsetForLineNumber(r),a=0|this._lineCount,u=0|this._whitespaces.getFirstWhitespaceIndexAfterLineNumber(r),l=0|this._whitespaces.getCount();-1===u?(u=l,i=a+1,n=0):(i=0|this._whitespaces.getAfterLineNumberForWhitespaceIndex(u),n=0|this._whitespaces.getHeightForWhitespaceIndex(u));var c=s,d=c,h=0;s>=5e5&&(h=5e5*Math.floor(s/5e5),d-=h=Math.floor(h/o)*o);for(var p=[],f=e+(t-e)/2,g=-1,m=r;m<=a;m++){if(-1===g){var v=c,_=c+o;(v<=f&&f<_||v>f)&&(g=m)}for(c+=o,p[m-r]=d,d+=o;i===m;)d+=n,c+=n,++u>=l?i=a+1:(i=0|this._whitespaces.getAfterLineNumberForWhitespaceIndex(u),n=0|this._whitespaces.getHeightForWhitespaceIndex(u));if(c>=t){a=m;break}}-1===g&&(g=a);var y=0|this.getVerticalOffsetForLineNumber(a),b=r,C=a;return bt&&C--,{bigNumbersDelta:h,startLineNumber:r,endLineNumber:a,relativeVerticalOffset:p,centeredLineNumber:g,completelyVisibleStartLineNumber:b,completelyVisibleEndLineNumber:C}},e.prototype.getVerticalOffsetForWhitespaceIndex=function(e){e|=0;var t,n=this._whitespaces.getAfterLineNumberForWhitespaceIndex(e);t=n>=1?this._lineHeight*n:0;var i;return i=e>0?this._whitespaces.getAccumulatedHeight(e-1):0,t+i},e.prototype.getWhitespaceIndexAtOrAfterVerticallOffset=function(e){e|=0;var t,n,i,o=0,r=this._whitespaces.getCount()-1;if(r<0)return-1;if(e>=this.getVerticalOffsetForWhitespaceIndex(r)+this._whitespaces.getHeightForWhitespaceIndex(r))return-1;for(;o=n+i)o=t+1;else{if(e>=n)return t;r=t}return o},e.prototype.getWhitespaceAtVerticalOffset=function(e){e|=0;var t=this.getWhitespaceIndexAtOrAfterVerticallOffset(e);if(t<0)return null;if(t>=this._whitespaces.getCount())return null;var n=this.getVerticalOffsetForWhitespaceIndex(t);if(n>e)return null;var i=this._whitespaces.getHeightForWhitespaceIndex(t);return{id:this._whitespaces.getIdForWhitespaceIndex(t),afterLineNumber:this._whitespaces.getAfterLineNumberForWhitespaceIndex(t),verticalOffset:n,height:i}},e.prototype.getWhitespaceViewportData=function(e,t){e|=0,t|=0;var n=this.getWhitespaceIndexAtOrAfterVerticallOffset(e),i=this._whitespaces.getCount()-1;if(n<0)return[];for(var o=[],r=n;r<=i;r++){var s=this.getVerticalOffsetForWhitespaceIndex(r),a=this._whitespaces.getHeightForWhitespaceIndex(r);if(s>=t)break;o.push({id:this._whitespaces.getIdForWhitespaceIndex(r),afterLineNumber:this._whitespaces.getAfterLineNumberForWhitespaceIndex(r),verticalOffset:s,height:a})}return o},e.prototype.getWhitespaces=function(){return this._whitespaces.getWhitespaces(this._lineHeight)},e}();t.LinesLayout=i}),define(d[98],h([0,1,95]),function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){return function(e,t){this.index=e,this.remainder=t}}();t.PrefixSumIndexOfResult=i;var o=function(){function e(e){this.values=e,this.prefixSum=new Uint32Array(e.length),this.prefixSumValidIndex=new Int32Array(1),this.prefixSumValidIndex[0]=-1}return e.prototype.getCount=function(){return this.values.length},e.prototype.insertValues=function(e,t){e=n.toUint32(e);var i=this.values,o=this.prefixSum,r=t.length;return 0!==r&&(this.values=new Uint32Array(i.length+r),this.values.set(i.subarray(0,e),0),this.values.set(i.subarray(e),e+r),this.values.set(t,e),e-1=0&&this.prefixSum.set(o.subarray(0,this.prefixSumValidIndex[0]+1)),!0)},e.prototype.changeValue=function(e,t){return e=n.toUint32(e),t=n.toUint32(t),this.values[e]!==t&&(this.values[e]=t,e-1=i.length)return!1;var r=i.length-e;return t>=r&&(t=r),0!==t&&(this.values=new Uint32Array(i.length-t),this.values.set(i.subarray(0,e),0),this.values.set(i.subarray(e+t),e),this.prefixSum=new Uint32Array(this.values.length),e-1=0&&this.prefixSum.set(o.subarray(0,this.prefixSumValidIndex[0]+1)),!0)},e.prototype.getTotalValue=function(){return 0===this.values.length?0:this._getAccumulatedValue(this.values.length-1)},e.prototype.getAccumulatedValue=function(e){return e<0?0:(e=n.toUint32(e),this._getAccumulatedValue(e))},e.prototype._getAccumulatedValue=function(e){if(e<=this.prefixSumValidIndex[0])return this.prefixSum[e];var t=this.prefixSumValidIndex[0]+1;0===t&&(this.prefixSum[0]=this.values[0],t++),e>=this.values.length&&(e=this.values.length-1);for(var n=t;n<=e;n++)this.prefixSum[n]=this.prefixSum[n-1]+this.values[n];return this.prefixSumValidIndex[0]=Math.max(this.prefixSumValidIndex[0],e),this.prefixSum[e]},e.prototype.getIndexOf=function(e){e=Math.floor(e),this.getTotalValue();for(var t,n,o,r=0,s=this.values.length-1;r<=s;)if(t=r+(s-r)/2|0,n=this.prefixSum[t],o=n-this.values[t],e=n))break;r=t+1}return new i(t,e-o)},e}();t.PrefixSumComputer=o;var r=function(){function e(e){this._cacheAccumulatedValueStart=0,this._cache=null,this._actual=new o(e),this._bustCache()}return e.prototype._bustCache=function(){this._cacheAccumulatedValueStart=0,this._cache=null},e.prototype.getCount=function(){return this._actual.getCount()},e.prototype.insertValues=function(e,t){this._actual.insertValues(e,t)&&this._bustCache()},e.prototype.changeValue=function(e,t){this._actual.changeValue(e,t)&&this._bustCache()},e.prototype.removeValues=function(e,t){this._actual.removeValues(e,t)&&this._bustCache()},e.prototype.getTotalValue=function(){return this._actual.getTotalValue()},e.prototype.getAccumulatedValue=function(e){return this._actual.getAccumulatedValue(e)},e.prototype.getIndexOf=function(e){if(e=Math.floor(e),null!==this._cache){var t=e-this._cacheAccumulatedValueStart;if(t>=0&&tthis._lines.length)t=this._lines.length,n=this._lines[t-1].length+1,i=!0;else{var o=this._lines[t-1].length+1;n<1?(n=1,i=!0):n>o&&(n=o,i=!0)}return i?{lineNumber:t,column:n}:e},t}(u.MirrorModel),g=function(){function e(){this._foreignModule=null}return e.prototype.computeDiff=function(e,t,n){var o=this._getModel(e),s=this._getModel(t);if(!o||!s)return null;var a=o.getLinesContent(),u=s.getLinesContent(),l=new r.DiffComputer(a,u,{shouldPostProcessCharChanges:!0,shouldIgnoreTrimWhitespace:n,shouldConsiderTrimWhitespaceInEmptyCase:!0});return i.TPromise.as(l.computeDiff())},e.prototype.computeDirtyDiff=function(e,t,n){var o=this._getModel(e),s=this._getModel(t);if(!o||!s)return null;var a=o.getLinesContent(),u=s.getLinesContent(),l=new r.DiffComputer(a,u,{shouldPostProcessCharChanges:!1,shouldIgnoreTrimWhitespace:n,shouldConsiderTrimWhitespaceInEmptyCase:!1});return i.TPromise.as(l.computeDiff())},e.prototype.computeMoreMinimalEdits=function(t,n,r){var a=this._getModel(t);if(!a)return i.TPromise.as(n);for(var u,l=[],c=0,d=n;ce._diffLimit)l.push({range:p,text:f});else for(var v=s.stringDiff(m,f),_=a.offsetAt(o.Range.lift(p).getStartPosition()),y=0,b=v;y=n,l=s,c=i.viewportHeight-s>=n,d=e.left;return d+t>i.scrollLeft+i.viewportWidth&&(d=i.scrollLeft+i.viewportWidth-t),dthis._contentWidth)return null;var s=e.top-i,a=e.top+this._lineHeight,u=r+this._contentLeft,l=n.getDomNodePagePosition(this._viewDomNode.domNode),c=l.top+s-n.StandardWindow.scrollY,d=l.top+a-n.StandardWindow.scrollY,h=l.left+u-n.StandardWindow.scrollX,p=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth,f=c>=22,g=d+i<=(window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight)-22;if(h+t+20>p&&(h-=m=h-(p-t-20),u-=m),h<0){var m=h;h-=m,u-=m}return this._fixedOverflowWidgets&&(s=c,a=d,u=h),{aboveTop:s,fitsAbove:f,belowTop:a,fitsBelow:g,left:u}},e.prototype._prepareRenderWidgetAtExactPositionOverflowing=function(e){return new s(e.top,e.left+this._contentLeft)},e.prototype._getTopLeft=function(e,t){var n=e.visibleRangeForPosition(t);if(!n)return null;var i=e.getVerticalOffsetForLineNumber(t.lineNumber)-e.scrollTop;return new s(i,n.left)},e.prototype._prepareRenderWidget=function(e){var t=this;if(!this._position||!this._preference)return null;var n=this._context.model.validateModelPosition(this._position);if(!this._context.model.coordinatesConverter.modelPositionIsVisible(n))return null;for(var i=this._context.model.coordinatesConverter.convertModelPositionToViewPosition(n),r=null,a=function(){if(!r){var n=t._getTopLeft(e,i);if(n){var o=t.domNode.domNode,s=o.clientWidth,a=o.clientHeight;r=t.allowEditorOverflow?t._layoutBoxInPage(n,s,a,e):t._layoutBoxInViewport(n,s,a,e)}}},u=1;u<=2;u++)for(var l=0;lo?1:i.Range.compareRangesUsingStarts(e.range,t.range)});for(var u=e.visibleRange.startLineNumber,l=e.visibleRange.endLineNumber,c=[],d=u;d<=l;d++)c[d-u]="";this._renderWholeLineDecorations(e,n,c),this._renderNormalDecorations(e,n,c),this._renderResult=c},t.prototype._renderWholeLineDecorations=function(e,t,n){for(var i=String(this._lineHeight),o=e.visibleRange.startLineNumber,r=e.visibleRange.endLineNumber,s=0,a=t.length;s
        ',c=Math.max(u.range.startLineNumber,o),d=Math.min(u.range.endLineNumber,r),h=c;h<=d;h++)n[h-o]+=l}},t.prototype._renderNormalDecorations=function(e,t,n){for(var r=String(this._lineHeight),s=e.visibleRange.startLineNumber,a=0,u=t.length;a
        ';n[v]+=w}}}}},t.prototype.render=function(e,t){if(!this._renderResult)return"";var n=t-e;if(n<0||n>=this._renderResult.length)throw new Error("Unexpected render request");return this._renderResult[n]},t}(n.DynamicViewOverlay);t.DecorationsOverlay=r}),define(d[116],h([0,1,60,382]),function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){return function(e,t,n){this.startLineNumber=+e,this.endLineNumber=+t,this.className=String(n)}}();t.DecorationToRender=i;var o=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return f(t,e),t.prototype._render=function(e,t,n){for(var i=[],o=e;o<=t;o++)i[o-e]=[];if(0===n.length)return i;n.sort(function(e,t){return e.className===t.className?e.startLineNumber===t.startLineNumber?e.endLineNumber-t.endLineNumber:e.startLineNumber-t.startLineNumber:e.className
        ',s=[],a=t;a<=n;a++){var u=a-t,l=i[u];0===l.length?s[u]="":s[u]='
        =this._renderResult.length)throw new Error("Unexpected render request");return this._renderResult[n]},t}(o);t.GlyphMarginOverlay=r}),define(d[232],h([0,1,116,378]),function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(e){function t(t){var n=e.call(this)||this;return n._context=t,n._decorationsLeft=n._context.configuration.editor.layoutInfo.decorationsLeft,n._decorationsWidth=n._context.configuration.editor.layoutInfo.decorationsWidth,n._renderResult=null,n._context.addEventHandler(n),n}return f(t,e),t.prototype.dispose=function(){this._context.removeEventHandler(this),this._context=null,this._renderResult=null,e.prototype.dispose.call(this)},t.prototype.onConfigurationChanged=function(e){return e.layoutInfo&&(this._decorationsLeft=this._context.configuration.editor.layoutInfo.decorationsLeft,this._decorationsWidth=this._context.configuration.editor.layoutInfo.decorationsWidth),!0},t.prototype.onDecorationsChanged=function(e){return!0},t.prototype.onFlushed=function(e){return!0},t.prototype.onLinesChanged=function(e){return!0},t.prototype.onLinesDeleted=function(e){return!0},t.prototype.onLinesInserted=function(e){return!0},t.prototype.onScrollChanged=function(e){return e.scrollTopChanged},t.prototype.onZonesChanged=function(e){return!0},t.prototype._getDecorations=function(e){for(var t=e.getDecorationsInViewport(),i=[],o=0,r=t.length;o
        ',r=[],s=t;s<=n;s++){for(var a=s-t,u=i[a],l="",c=0,d=u.length;c
        ';o[s]=u}this._renderResult=o},t.prototype.render=function(e,t){return this._renderResult?this._renderResult[t-e]:""},t}(n.DedupOverlay);t.MarginViewLineDecorationsOverlay=i}),define(d[235],h([0,1,26,25,35,322]),function(e,t,n,i,o){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){function t(t){var i=e.call(this,t)||this;return i._widgets={},i._verticalScrollbarWidth=i._context.configuration.editor.layoutInfo.verticalScrollbarWidth,i._minimapWidth=i._context.configuration.editor.layoutInfo.minimapWidth,i._horizontalScrollbarHeight=i._context.configuration.editor.layoutInfo.horizontalScrollbarHeight,i._editorHeight=i._context.configuration.editor.layoutInfo.height,i._editorWidth=i._context.configuration.editor.layoutInfo.width,i._domNode=n.createFastDomNode(document.createElement("div")),o.PartFingerprints.write(i._domNode,4),i._domNode.setClassName("overlayWidgets"),i}return f(t,e),t.prototype.dispose=function(){e.prototype.dispose.call(this),this._widgets=null},t.prototype.getDomNode=function(){return this._domNode},t.prototype.onConfigurationChanged=function(e){return!!e.layoutInfo&&(this._verticalScrollbarWidth=this._context.configuration.editor.layoutInfo.verticalScrollbarWidth,this._minimapWidth=this._context.configuration.editor.layoutInfo.minimapWidth,this._horizontalScrollbarHeight=this._context.configuration.editor.layoutInfo.horizontalScrollbarHeight,this._editorHeight=this._context.configuration.editor.layoutInfo.height,this._editorWidth=this._context.configuration.editor.layoutInfo.width,!0)},t.prototype.addWidget=function(e){var t=n.createFastDomNode(e.getDomNode());this._widgets[e.getId()]={widget:e,preference:null,domNode:t},t.setPosition("absolute"),t.setAttribute("widgetId",e.getId()),this._domNode.appendChild(t),this.setShouldRender()},t.prototype.setWidgetPosition=function(e,t){var n=this._widgets[e.getId()];return n.preference!==t&&(n.preference=t,this.setShouldRender(),!0)},t.prototype.removeWidget=function(e){var t=e.getId();if(this._widgets.hasOwnProperty(t)){var n=this._widgets[t].domNode.domNode;delete this._widgets[t],n.parentNode.removeChild(n),this.setShouldRender()}},t.prototype._renderWidget=function(e){var t=e.domNode;if(null!==e.preference)if(e.preference===i.OverlayWidgetPositionPreference.TOP_RIGHT_CORNER)t.setTop(0),t.setRight(2*this._verticalScrollbarWidth+this._minimapWidth);else if(e.preference===i.OverlayWidgetPositionPreference.BOTTOM_RIGHT_CORNER){var n=t.domNode.clientHeight;t.setTop(this._editorHeight-n-2*this._horizontalScrollbarHeight),t.setRight(2*this._verticalScrollbarWidth+this._minimapWidth)}else e.preference===i.OverlayWidgetPositionPreference.TOP_CENTER&&(t.setTop(0),t.domNode.style.right="50%");else t.unsetTop()},t.prototype.prepareRender=function(e){},t.prototype.render=function(e){this._domNode.setWidth(this._editorWidth);for(var t=Object.keys(this._widgets),n=0,i=t.length;n=e.scrollWidth?0:this._configuration.editor.viewInfo.scrollbar.horizontalScrollbarSize},t.prototype._getTotalHeight=function(){var e=this.scrollable.getState(),t=this._linesLayout.getLinesTotalHeight();return this._configuration.editor.viewInfo.scrollBeyondLastLine?t+=e.height-this._configuration.editor.lineHeight:t+=this._getHorizontalScrollbarHeight(e),Math.max(e.height,t)},t.prototype._updateHeight=function(){this.scrollable.updateState({scrollHeight:this._getTotalHeight()})},t.prototype.getCurrentViewport=function(){var e=this.scrollable.getState();return new r.Viewport(e.scrollTop,e.scrollLeft,e.width,e.height)},t.prototype._computeScrollWidth=function(e,n){return this._configuration.editor.wrappingInfo.isViewportWrapping?Math.max(e,n):Math.max(e+t.LINES_HORIZONTAL_EXTRA_PX,n)},t.prototype.onMaxLineWidthChanged=function(e){var t=this._computeScrollWidth(e,this.getCurrentViewport().width);this.scrollable.updateState({scrollWidth:t}),this._updateHeight()},t.prototype.saveState=function(){var e=this.scrollable.getState(),t=e.scrollTop,n=this._linesLayout.getLineNumberAtOrAfterVerticalOffset(t);return{scrollTop:t,scrollTopWithoutViewZones:t-this._linesLayout.getWhitespaceAccumulatedHeightBeforeLineNumber(n),scrollLeft:e.scrollLeft}},t.prototype.restoreState=function(e){var t=e.scrollTop;"number"!=typeof e.scrollTopWithoutViewZones||this._linesLayout.hasWhitespace()||(t=e.scrollTopWithoutViewZones),this.scrollable.updateState({scrollLeft:e.scrollLeft,scrollTop:t})},t.prototype.addWhitespace=function(e,t,n){return this._linesLayout.insertWhitespace(e,t,n)},t.prototype.changeWhitespace=function(e,t,n){return this._linesLayout.changeWhitespace(e,t,n)},t.prototype.removeWhitespace=function(e){return this._linesLayout.removeWhitespace(e)},t.prototype.getVerticalOffsetForLineNumber=function(e){return this._linesLayout.getVerticalOffsetForLineNumber(e)},t.prototype.isAfterLines=function(e){return this._linesLayout.isAfterLines(e)},t.prototype.getLineNumberAtVerticalOffset=function(e){return this._linesLayout.getLineNumberAtOrAfterVerticalOffset(e)},t.prototype.getWhitespaceAtVerticalOffset=function(e){return this._linesLayout.getWhitespaceAtVerticalOffset(e)},t.prototype.getLinesViewportData=function(){var e=this.getCurrentViewport();return this._linesLayout.getLinesViewportData(e.top,e.top+e.height)},t.prototype.getLinesViewportDataAtScrollTop=function(e){var t=this.scrollable.getState();return e+t.height>t.scrollHeight&&(e=t.scrollHeight-t.height),e<0&&(e=0),this._linesLayout.getLinesViewportData(e,e+t.height)},t.prototype.getWhitespaceViewportData=function(){var e=this.getCurrentViewport();return this._linesLayout.getWhitespaceViewportData(e.top,e.top+e.height)},t.prototype.getWhitespaces=function(){return this._linesLayout.getWhitespaces()},t.prototype.getScrollWidth=function(){return this.scrollable.getState().scrollWidth},t.prototype.getScrollLeft=function(){return this.scrollable.getState().scrollLeft},t.prototype.getScrollHeight=function(){return this.scrollable.getState().scrollHeight},t.prototype.getScrollTop=function(){return this.scrollable.getState().scrollTop},t.prototype.setScrollPosition=function(e){this.scrollable.updateState(e)},t}(n.Disposable);s.LINES_HORIZONTAL_EXTRA_PX=30,t.ViewLayout=s}),define(d[239],h([0,1,2,12,86]),function(e,t,n,i,o){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t,n,i){this.editorId=e,this.model=t,this.configuration=n,this._coordinatesConverter=i,this._decorationsCache=Object.create(null),this._clearCachedModelDecorationsResolver()}return e.prototype._clearCachedModelDecorationsResolver=function(){this._cachedModelDecorationsResolver=null,this._cachedModelDecorationsResolverViewRange=null},e.prototype.dispose=function(){this._decorationsCache=null,this._clearCachedModelDecorationsResolver()},e.prototype.reset=function(){this._decorationsCache=Object.create(null),this._clearCachedModelDecorationsResolver()},e.prototype.onModelDecorationsChanged=function(e){for(var t=e.changedDecorations,n=0,i=t.length;n1){v=new o.InlineDecoration(new n.Range(m.endLineNumber,m.endColumn-1,m.endLineNumber,m.endColumn),f.afterContentClassName,!0);l[m.endLineNumber-i].push(v)}}return{decorations:a,inlineDecorations:l}},e}();t.ViewModelDecorations=r}),define(d[240],h([0,1,2]),function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){this._selection=e,this._isMovingLeft=t}return e.prototype.getEditOperations=function(e,t){var i=this._selection;if(this._selectionId=t.trackSelection(i),i.startLineNumber===i.endLineNumber&&(!this._isMovingLeft||0!==i.startColumn)&&(this._isMovingLeft||i.endColumn!==e.getLineMaxColumn(i.startLineNumber))){var o,r,s,a=i.selectionStartLineNumber,u=e.getLineContent(a);this._isMovingLeft?(o=u.substring(0,i.startColumn-2),r=u.substring(i.startColumn-1,i.endColumn-1),s=u.substring(i.startColumn-2,i.startColumn-1)+u.substring(i.endColumn-1)):(o=u.substring(0,i.startColumn-1)+u.substring(i.endColumn-1,i.endColumn),r=u.substring(i.startColumn-1,i.endColumn-1),s=u.substring(i.endColumn));var l=o+r+s;t.addEditOperation(new n.Range(a,1,a,e.getLineMaxColumn(a)),null),t.addEditOperation(new n.Range(a,1,a,1),l),this._cutStartIndex=i.startColumn+(this._isMovingLeft?-1:1),this._cutEndIndex=this._cutStartIndex+i.endColumn-i.startColumn,this._moved=!0}},e.prototype.computeCursorState=function(e,t){var n=t.getTrackedSelection(this._selectionId);return this._moved&&(n=(n=n.setStartPosition(n.startLineNumber,this._cutStartIndex)).setEndPosition(n.startLineNumber,this._cutEndIndex)),n},e}();t.MoveCaretCommand=i}),define(d[151],h([0,1,57,12,2,22,43]),function(e,t,n,i,o,r,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var a=function(){function e(e){this._selection=e,this._usedEndToken=null}return e._haystackHasNeedleAtOffset=function(e,t,n){if(n<0)return!1;var i=t.length;if(n+i>e.length)return!1;for(var o=0;od?u-1:u}},e}();t.LineCommentCommand=l}),define(d[243],h([0,1,22,2]),function(e,t,n,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=function(){function e(e,t,n){this.selection=e,this.targetPosition=t,this.copy=n}return e.prototype.getEditOperations=function(e,t){var o=e.getValueInRange(this.selection);this.copy||t.addEditOperation(this.selection,null),t.addEditOperation(new i.Range(this.targetPosition.lineNumber,this.targetPosition.column,this.targetPosition.lineNumber,this.targetPosition.column),o),!this.selection.containsPosition(this.targetPosition)||this.copy&&(this.selection.getEndPosition().equals(this.targetPosition)||this.selection.getStartPosition().equals(this.targetPosition))?this.copy?this.targetSelection=new n.Selection(this.targetPosition.lineNumber,this.targetPosition.column,this.selection.endLineNumber-this.selection.startLineNumber+this.targetPosition.lineNumber,this.selection.startLineNumber===this.selection.endLineNumber?this.targetPosition.column+this.selection.endColumn-this.selection.startColumn:this.selection.endColumn):this.targetPosition.lineNumber>this.selection.endLineNumber?this.targetSelection=new n.Selection(this.targetPosition.lineNumber-this.selection.endLineNumber+this.selection.startLineNumber,this.targetPosition.column,this.targetPosition.lineNumber,this.selection.startLineNumber===this.selection.endLineNumber?this.targetPosition.column+this.selection.endColumn-this.selection.startColumn:this.selection.endColumn):this.targetPosition.lineNumbern&&(t=n),this._matchesPosition!==t&&(this._matchesPosition=t,r.matchesPosition=!0,s=!0),this._matchesCount!==n&&(this._matchesCount=n,r.matchesCount=!0,s=!0),void 0!==o&&(i.Range.equalsRange(this._currentMatch,o)||(this._currentMatch=o,r.currentMatch=!0,s=!0)),s&&this._eventEmitter.emit(e._CHANGED_EVENT,r)},e.prototype.change=function(t,n,o){void 0===o&&(o=!0);var r={moveCursor:n,updateHistory:o,searchString:!1,replaceString:!1,isRevealed:!1,isReplaceRevealed:!1,isRegex:!1,wholeWord:!1,matchCase:!1,searchScope:!1,matchesPosition:!1,matchesCount:!1,currentMatch:!1},s=!1;void 0!==t.searchString&&this._searchString!==t.searchString&&(this._searchString=t.searchString,r.searchString=!0,s=!0),void 0!==t.replaceString&&this._replaceString!==t.replaceString&&(this._replaceString=t.replaceString,r.replaceString=!0,s=!0),void 0!==t.isRevealed&&this._isRevealed!==t.isRevealed&&(this._isRevealed=t.isRevealed,r.isRevealed=!0,s=!0),void 0!==t.isReplaceRevealed&&this._isReplaceRevealed!==t.isReplaceRevealed&&(this._isReplaceRevealed=t.isReplaceRevealed,r.isReplaceRevealed=!0,s=!0),void 0!==t.isRegex&&this._isRegex!==t.isRegex&&(this._isRegex=t.isRegex,r.isRegex=!0,s=!0),void 0!==t.wholeWord&&this._wholeWord!==t.wholeWord&&(this._wholeWord=t.wholeWord,r.wholeWord=!0,s=!0),void 0!==t.matchCase&&this._matchCase!==t.matchCase&&(this._matchCase=t.matchCase,r.matchCase=!0,s=!0),void 0!==t.searchScope&&(i.Range.equalsRange(this._searchScope,t.searchScope)||(this._searchScope=t.searchScope,r.searchScope=!0,s=!0)),s&&this._eventEmitter.emit(e._CHANGED_EVENT,r)},e}();o._CHANGED_EVENT="changed",t.FindReplaceState=o}),define(d[245],h([0,1,2]),function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t,n){this._editorSelection=e,this._ranges=t,this._replaceStrings=n}return e.prototype.getEditOperations=function(e,t){if(this._ranges.length>0){for(var i=[],o=0;o0;){if(e=r)break;var a=e.charCodeAt(i);if(36===a){t.emitUnchanged(i-1),t.emitStatic("$",i+1);continue}if(48===a||38===a){t.emitUnchanged(i-1),t.emitMatchIndex(0,i+1);continue}if(49<=a&&a<=57){var u=a-48;if(i+1=r)break;switch(a=e.charCodeAt(i)){case 92:t.emitUnchanged(i-1),t.emitStatic("\\",i+1);break;case 110:t.emitUnchanged(i-1),t.emitStatic("\n",i+1);break;case 116:t.emitUnchanged(i-1),t.emitStatic("\t",i+1)}}}return t.finalize()}}),define(d[247],h([0,1]),function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ID="editor.contrib.folding"}),define(d[248],h([0,1]),function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.computeRanges=function(e){return e.getIndentRanges()},t.limitByIndent=function(e,t){if(e.length<=t)return e;var n=[];e.forEach(function(e){e.indent<1e3&&(n[e.indent]=(n[e.indent]||0)+1)});for(var i=n.length,o=0;o0){var u=r.modifyPosition(e.getStartPosition(),a);e=new i.Range(u.lineNumber,u.column,e.endLineNumber,e.endColumn),t=t.substring(a),s=s.substr(a)}var l=n.commonSuffixLength(t,s);if(l>0){var c=r.modifyPosition(e.getEndPosition(),-l);e=new i.Range(e.startLineNumber,e.startColumn,c.lineNumber,c.column),t=t.substring(0,t.length-l),s=s.substring(0,s.length-l)}return{text:t,range:e,forceMoveMarkers:o}},e}();t.EditOperationsCommand=o}),define(d[150],h([0,1,30,3,11,15,190]),function(e,t,n,i,o,r){"use strict";function s(e,t){return!!e[t]}function a(e){return"altKey"===e?r.isMacintosh?new c(57,"metaKey",6,"altKey"):new c(5,"ctrlKey",6,"altKey"):r.isMacintosh?new c(6,"altKey",57,"metaKey"):new c(6,"altKey",5,"ctrlKey")}Object.defineProperty(t,"__esModule",{value:!0});var u=function(){return function(e,t){this.target=e.target,this.hasTriggerModifier=s(e.event,t.triggerModifier),this.hasSideBySideModifier=s(e.event,t.triggerSideBySideModifier),this.isNoneOrSingleMouseDown=n.isIE||e.event.detail<=1}}();t.ClickLinkMouseEvent=u;var l=function(){return function(e,t){this.keyCodeIsTriggerKey=e.keyCode===t.triggerKey,this.keyCodeIsSideBySideKey=e.keyCode===t.triggerSideBySideKey,this.hasTriggerModifier=s(e,t.triggerModifier)}}();t.ClickLinkKeyboardEvent=l;var c=function(){function e(e,t,n,i){this.triggerKey=e,this.triggerModifier=t,this.triggerSideBySideKey=n,this.triggerSideBySideModifier=i}return e.prototype.equals=function(e){return this.triggerKey===e.triggerKey&&this.triggerModifier===e.triggerModifier&&this.triggerSideBySideKey===e.triggerSideBySideKey&&this.triggerSideBySideModifier===e.triggerSideBySideModifier},e}();t.ClickLinkOptions=c;var d=function(e){function t(t){var n=e.call(this)||this;return n._onMouseMoveOrRelevantKeyDown=n._register(new o.Emitter),n.onMouseMoveOrRelevantKeyDown=n._onMouseMoveOrRelevantKeyDown.event,n._onExecute=n._register(new o.Emitter),n.onExecute=n._onExecute.event,n._onCancel=n._register(new o.Emitter),n.onCancel=n._onCancel.event,n._editor=t,n._opts=a(n._editor.getConfiguration().multiCursorModifier),n.lastMouseMoveEvent=null,n.hasTriggerKeyOnMouseDown=!1,n._register(n._editor.onDidChangeConfiguration(function(e){if(e.multiCursorModifier){var t=a(n._editor.getConfiguration().multiCursorModifier);if(n._opts.equals(t))return;n._opts=t,n.lastMouseMoveEvent=null,n.hasTriggerKeyOnMouseDown=!1,n._onCancel.fire()}})),n._register(n._editor.onMouseMove(function(e){return n.onEditorMouseMove(new u(e,n._opts))})),n._register(n._editor.onMouseDown(function(e){return n.onEditorMouseDown(new u(e,n._opts))})),n._register(n._editor.onMouseUp(function(e){return n.onEditorMouseUp(new u(e,n._opts))})),n._register(n._editor.onKeyDown(function(e){return n.onEditorKeyDown(new l(e,n._opts))})),n._register(n._editor.onKeyUp(function(e){return n.onEditorKeyUp(new l(e,n._opts))})),n._register(n._editor.onMouseDrag(function(){return n.resetHandler()})),n._register(n._editor.onDidChangeCursorSelection(function(e){return n.onDidChangeCursorSelection(e)})),n._register(n._editor.onDidChangeModel(function(e){return n.resetHandler()})),n._register(n._editor.onDidChangeModelContent(function(){return n.resetHandler()})),n._register(n._editor.onDidScrollChange(function(e){(e.scrollTopChanged||e.scrollLeftChanged)&&n.resetHandler()})),n}return f(t,e),t.prototype.onDidChangeCursorSelection=function(e){e.selection&&e.selection.startColumn!==e.selection.endColumn&&this.resetHandler()},t.prototype.onEditorMouseMove=function(e){this.lastMouseMoveEvent=e,this._onMouseMoveOrRelevantKeyDown.fire([e,null])},t.prototype.onEditorMouseDown=function(e){this.hasTriggerKeyOnMouseDown=e.hasTriggerModifier},t.prototype.onEditorMouseUp=function(e){this.hasTriggerKeyOnMouseDown&&this._onExecute.fire(e)},t.prototype.onEditorKeyDown=function(e){this.lastMouseMoveEvent&&(e.keyCodeIsTriggerKey||e.keyCodeIsSideBySideKey&&e.hasTriggerModifier)?this._onMouseMoveOrRelevantKeyDown.fire([this.lastMouseMoveEvent,e]):e.hasTriggerModifier&&this._onCancel.fire()},t.prototype.onEditorKeyUp=function(e){e.keyCodeIsTriggerKey&&this._onCancel.fire()},t.prototype.resetHandler=function(){this.lastMouseMoveEvent=null,this.hasTriggerKeyOnMouseDown=!1,this._onCancel.fire()},t}(i.Disposable);t.ClickLinkGesture=d}),define(d[149],h([0,1,18,10]),function(e,t,n,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o;!function(e){e[e.IDLE=0]="IDLE",e[e.FIRST_WAIT=1]="FIRST_WAIT",e[e.SECOND_WAIT=2]="SECOND_WAIT",e[e.WAITING_FOR_ASYNC_COMPUTATION=3]="WAITING_FOR_ASYNC_COMPUTATION"}(o||(o={}));var r=function(){function e(e,t,i,o){var r=this;this._computer=e,this._state=0,this._firstWaitScheduler=new n.RunOnceScheduler(function(){return r._triggerAsyncComputation()},this._getHoverTimeMillis()/2),this._secondWaitScheduler=new n.RunOnceScheduler(function(){return r._triggerSyncComputation()},this._getHoverTimeMillis()/2),this._loadingMessageScheduler=new n.RunOnceScheduler(function(){return r._showLoadingMessage()},3*this._getHoverTimeMillis()),this._asyncComputationPromise=null,this._asyncComputationPromiseDone=!1,this._completeCallback=t,this._errorCallback=i,this._progressCallback=o}return e.prototype.getComputer=function(){return this._computer},e.prototype._getHoverTimeMillis=function(){return this._computer.getHoverTimeMillis?this._computer.getHoverTimeMillis():e.HOVER_TIME},e.prototype._triggerAsyncComputation=function(){var e=this;this._state=2,this._secondWaitScheduler.schedule(),this._computer.computeAsync?(this._asyncComputationPromiseDone=!1,this._asyncComputationPromise=this._computer.computeAsync().then(function(t){e._asyncComputationPromiseDone=!0,e._withAsyncResult(t)},function(){return e._onError})):this._asyncComputationPromiseDone=!0},e.prototype._triggerSyncComputation=function(){this._computer.computeSync&&this._computer.onResult(this._computer.computeSync(),!0),this._asyncComputationPromiseDone?(this._state=0,this._onComplete(this._computer.getResult())):(this._state=3,this._onProgress(this._computer.getResult()))},e.prototype._showLoadingMessage=function(){3===this._state&&this._onProgress(this._computer.getResultWithLoadingMessage())},e.prototype._withAsyncResult=function(e){e&&this._computer.onResult(e,!1),3===this._state&&(this._state=0,this._onComplete(this._computer.getResult()))},e.prototype._onComplete=function(e){this._completeCallback&&this._completeCallback(e)},e.prototype._onError=function(e){this._errorCallback?this._errorCallback(e):i.onUnexpectedError(e)},e.prototype._onProgress=function(e){this._progressCallback&&this._progressCallback(e)},e.prototype.start=function(){0===this._state&&(this._state=1,this._firstWaitScheduler.schedule(),this._loadingMessageScheduler.schedule())},e.prototype.cancel=function(){this._loadingMessageScheduler.cancel(),1===this._state&&this._firstWaitScheduler.cancel(),2===this._state&&(this._secondWaitScheduler.cancel(),this._asyncComputationPromise&&(this._asyncComputationPromise.cancel(),this._asyncComputationPromise=null)),3===this._state&&this._asyncComputationPromise&&(this._asyncComputationPromise.cancel(),this._asyncComputationPromise=null),this._state=0},e}();r.HOVER_TIME=300,t.HoverOperation=r}),define(d[148],h([0,1,6,12,25,44,61,3]),function(e,t,n,i,o,r,s,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var u=function(e){function t(t,n){var i=e.call(this)||this;return i.disposables=[],i.allowEditorOverflow=!0,i._id=t,i._editor=n,i._isVisible=!1,i._containerDomNode=document.createElement("div"),i._containerDomNode.className="monaco-editor-hover hidden",i._containerDomNode.tabIndex=0,i._domNode=document.createElement("div"),i._domNode.className="monaco-editor-hover-content",i.scrollbar=new s.DomScrollableElement(i._domNode,{}),i.disposables.push(i.scrollbar),i._containerDomNode.appendChild(i.scrollbar.getDomNode()),i.onkeydown(i._containerDomNode,function(e){e.equals(9)&&i.hide()}),i._register(i._editor.onDidChangeConfiguration(function(e){e.fontInfo&&i.updateFont()})),i._editor.onDidLayoutChange(function(e){return i.updateMaxHeight()}),i.updateMaxHeight(),i._editor.addContentWidget(i),i._showAtPosition=null,i}return f(t,e),Object.defineProperty(t.prototype,"isVisible",{get:function(){return this._isVisible},set:function(e){this._isVisible=e,n.toggleClass(this._containerDomNode,"hidden",!this._isVisible)},enumerable:!0,configurable:!0}),t.prototype.getId=function(){return this._id},t.prototype.getDomNode=function(){return this._containerDomNode},t.prototype.showAt=function(e,t){this._showAtPosition=new i.Position(e.lineNumber,e.column),this.isVisible=!0,this._editor.layoutContentWidget(this),this._editor.render(),this._stoleFocus=t,t&&this._containerDomNode.focus()},t.prototype.hide=function(){this.isVisible&&(this.isVisible=!1,this._editor.layoutContentWidget(this),this._stoleFocus&&this._editor.focus())},t.prototype.getPosition=function(){return this.isVisible?{position:this._showAtPosition,preference:[o.ContentWidgetPositionPreference.ABOVE,o.ContentWidgetPositionPreference.BELOW]}:null},t.prototype.dispose=function(){this._editor.removeContentWidget(this),this.disposables=a.dispose(this.disposables),e.prototype.dispose.call(this)},t.prototype.updateFont=function(){var e=this,t=Array.prototype.slice.call(this._domNode.getElementsByTagName("code")),n=Array.prototype.slice.call(this._domNode.getElementsByClassName("code"));t.concat(n).forEach(function(t){return e._editor.applyFontInfo(t)})},t.prototype.updateContents=function(e){this._domNode.textContent="",this._domNode.appendChild(e),this.updateFont(),this._editor.layoutContentWidget(this),this.scrollbar.scanDomNode()},t.prototype.updateMaxHeight=function(){var e=Math.max(this._editor.getLayoutInfo().height/4,250),t=this._editor.getConfiguration().fontInfo,n=t.fontSize,i=t.lineHeight;this._domNode.style.fontSize=n+"px",this._domNode.style.lineHeight=i+"px",this._domNode.style.maxHeight=e+"px"},t}(r.Widget);t.ContentHoverWidget=u;var l=function(e){function t(t,n){var i=e.call(this)||this;return i._id=t,i._editor=n,i._isVisible=!1,i._domNode=document.createElement("div"),i._domNode.className="monaco-editor-hover hidden",i._domNode.setAttribute("aria-hidden","true"),i._domNode.setAttribute("role","presentation"),i._showAtLineNumber=-1,i._register(i._editor.onDidChangeConfiguration(function(e){e.fontInfo&&i.updateFont()})),i._editor.addOverlayWidget(i),i}return f(t,e),Object.defineProperty(t.prototype,"isVisible",{get:function(){return this._isVisible},set:function(e){this._isVisible=e,n.toggleClass(this._domNode,"hidden",!this._isVisible)},enumerable:!0,configurable:!0}),t.prototype.getId=function(){return this._id},t.prototype.getDomNode=function(){return this._domNode},t.prototype.showAt=function(e){this._showAtLineNumber=e,this.isVisible||(this.isVisible=!0);var t=this._editor.getLayoutInfo(),n=this._editor.getTopForLineNumber(this._showAtLineNumber),i=this._editor.getScrollTop(),o=this._editor.getConfiguration().lineHeight,r=n-i-(this._domNode.clientHeight-o)/2;this._domNode.style.left=t.glyphMarginLeft+t.glyphMarginWidth+"px",this._domNode.style.top=Math.max(Math.round(r),0)+"px"},t.prototype.hide=function(){this.isVisible&&(this.isVisible=!1)},t.prototype.getPosition=function(){return null},t.prototype.dispose=function(){this._editor.removeOverlayWidget(this),e.prototype.dispose.call(this)},t.prototype.updateFont=function(){var e=this,t=Array.prototype.slice.call(this._domNode.getElementsByTagName("code")),n=Array.prototype.slice.call(this._domNode.getElementsByClassName("code"));t.concat(n).forEach(function(t){return e._editor.applyFontInfo(t)})},t.prototype.updateContents=function(e){this._domNode.textContent="",this._domNode.appendChild(e),this.updateFont()},t}(r.Widget);t.GlyphHoverWidget=l}),define(d[253],h([0,1,22]),function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t,n){this._editRange=e,this._originalSelection=t,this._text=n}return e.prototype.getEditOperations=function(e,t){t.addTrackedEditOperation(this._editRange,this._text)},e.prototype.computeCursorState=function(e,t){var i=t.getInverseEditOperations()[0].range;return this._originalSelection.isEmpty()?new n.Selection(i.endLineNumber,Math.min(this._originalSelection.positionColumn,i.endColumn),i.endLineNumber,Math.min(this._originalSelection.positionColumn,i.endColumn)):new n.Selection(i.endLineNumber,i.endColumn-this._text.length,i.endLineNumber,i.endColumn)},e}();t.InPlaceReplaceCommand=i}),define(d[254],h([0,1]),function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getSpaceCnt=function(e,t){for(var n=0,i=0;i1&&(i-=1,r=e.getLineMaxColumn(i)),t.addTrackedEditOperation(new n.Range(i,r,o,s),null)}},e.prototype.computeCursorState=function(e,t){var n=t.getInverseEditOperations()[0].range;return new i.Selection(n.endLineNumber,this.restoreCursorToColumn,n.endLineNumber,this.restoreCursorToColumn)},e}();t.DeleteLinesCommand=o}),define(d[257],h([0,1,57,2]),function(e,t,n,i){"use strict";function o(e,t,n){var i=t.startLineNumber,o=t.endLineNumber;if(1===t.endColumn&&o--,i>=o)return null;for(var r=[],s=i;s<=o;s++)r.push(e.getLineContent(s));var a=r.slice(0);return a.sort(function(e,t){return e.toLowerCase().localeCompare(t.toLowerCase())}),!0===n&&(a=a.reverse()),{startLineNumber:i,endLineNumber:o,before:r,after:a}}function r(e,t,r){var s=o(e,t,r);return s?n.EditOperation.replace(new i.Range(s.startLineNumber,1,s.endLineNumber,e.getLineMaxColumn(s.endLineNumber)),s.after.join("\n")):null}Object.defineProperty(t,"__esModule",{value:!0});var s=function(){function e(e,t){this.selection=e,this.descending=t}return e.prototype.getEditOperations=function(e,t){var n=r(e,this.selection,this.descending);n&&t.addEditOperation(n.range,n.text),this.selectionId=t.trackSelection(this.selection)},e.prototype.computeCursorState=function(e,t){return t.getTrackedSelection(this.selectionId)},e.canRun=function(e,t,n){var i=o(e,t,n);if(!i)return!1;for(var r=0,s=i.before.length;r0?t.show(e):t.hide()},function(e){t.hide()})},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"title",{get:function(){return this._options.glyphMarginHoverMessage},set:function(e){},enumerable:!0,configurable:!0}),e.prototype.show=function(e){this._currentLine=e.range.startLineNumber,this._decorationIds=this._editor.deltaDecorations(this._decorationIds,[{options:this._options,range:_({},e.range,{endLineNumber:e.range.startLineNumber})}])},e.prototype.hide=function(){this._decorationIds=this._editor.deltaDecorations(this._decorationIds,[]),this._futureFixes.cancel(),this._currentLine=void 0},e}();t.LightBulbWidget=a}),define(d[259],h([0,1,18,6,12,55,11]),function(e,t,n,i,o,r,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var a=function(){function e(e,t,n){this._onDidExecuteCodeAction=new s.Emitter,this.onDidExecuteCodeAction=this._onDidExecuteCodeAction.event,this._editor=e,this._contextMenuService=t,this._commandService=n}return e.prototype.show=function(e,t){var i=this,s=e.then(function(e){return e.map(function(e){var t=e.command;return new r.Action(t.id,t.title,void 0,!0,function(){return n.always((e=i._commandService).executeCommand.apply(e,[t.id].concat(t.arguments)),function(){return i._onDidExecuteCodeAction.fire(void 0)});var e})})});this._contextMenuService.showContextMenu({getAnchor:function(){return o.Position.isIPosition(t)&&(t=i._toCoords(t)),t},getActions:function(){return s},onHide:function(){i._visible=!1}})},Object.defineProperty(e.prototype,"isVisible",{get:function(){return this._visible},enumerable:!0,configurable:!0}),e.prototype._toCoords=function(e){this._editor.revealPosition(e),this._editor.render();var t=this._editor.getScrolledVisiblePosition(this._editor.getPosition()),n=i.getDomNodePagePosition(this._editor.getDomNode());return{x:n.left+t.left,y:n.top+t.top+t.height}},e}();t.QuickFixContextMenu=a}),define(d[260],h([0,1,2,103,106,43]),function(e,t,n,i,o,r){"use strict";function s(e){var t=new u;return t.start=e.range.getStartPosition(),t.end=e.range.getEndPosition(),t}function a(e,t){if(e instanceof l&&e.isEmpty)return null;if(!n.Range.containsPosition(e.range,t))return null;var i;if(e instanceof l){if(e.hasChildren)for(var o=0,r=e.children.length;o0},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isEmpty",{get:function(){return!this.hasChildren&&!this.parent},enumerable:!0,configurable:!0}),t.prototype.append=function(e){return!!e&&(e.parent=this,this.children||(this.children=[]),e instanceof t?e.children&&this.children.push.apply(this.children,e.children):this.children.push(e),!0)},t}(u);t.NodeList=l;var c=function(e){function t(){var t=e.call(this)||this;return t.elements=new l,t.elements.parent=t,t}return f(t,e),Object.defineProperty(t.prototype,"start",{get:function(){return this.open.start},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"end",{get:function(){return this.close.end},enumerable:!0,configurable:!0}),t}(u);t.Block=c;var d=function(){return function(e,t,n){this.range=e,this.bracket=t,this.bracketType=n}}(),h=function(){return function(e,t,n){this.lineNumber=t,this.lineText=n,this.startOffset=e.startOffset,this.endOffset=e.endOffset,this.type=e.tokenType,this.languageId=e.languageId}}(),p=function(){function e(e){this._model=e,this._lineCount=this._model.getLineCount(),this._versionId=this._model.getVersionId(),this._lineNumber=0,this._lineText=null,this._advance()}return e.prototype._advance=function(){for(this._next=this._next?this._next.next():null;!this._next&&this._lineNumber0)return this._nextBuff.shift();var e=this._rawTokenScanner.next();if(!e)return null;var t=e.lineNumber,s=e.lineText,a=e.type,u=e.startOffset,l=e.endOffset;this._cachedLanguageId!==e.languageId&&(this._cachedLanguageId=e.languageId,this._cachedLanguageBrackets=r.LanguageConfigurationRegistry.getBracketsSupport(this._cachedLanguageId));var c=this._cachedLanguageBrackets;if(!c||i.ignoreBracketsInToken(a))return new d(new n.Range(t,u+1,t,l+1),0,null);var h;do{if(h=o.BracketsUtils.findNextBracketInToken(c.forwardRegex,t,s,u,l)){var p=h.startColumn-1,f=h.endColumn-1;u0;){var i=n.shift();if(!t(i))break;n.unshift.apply(n,i.children)}}Object.defineProperty(t,"__esModule",{value:!0});var i;!function(e){e[e.Dollar=0]="Dollar",e[e.Colon=1]="Colon",e[e.CurlyOpen=2]="CurlyOpen",e[e.CurlyClose=3]="CurlyClose",e[e.Backslash=4]="Backslash",e[e.Int=5]="Int",e[e.VariableName=6]="VariableName",e[e.Format=7]="Format",e[e.EOF=8]="EOF"}(i=t.TokenType||(t.TokenType={}));var o=function(){function e(){this.text("")}return e.isDigitCharacter=function(e){return e>=48&&e<=57},e.isVariableCharacter=function(e){return 95===e||e>=97&&e<=122||e>=65&&e<=90},e.prototype.text=function(e){this.value=e,this.pos=0},e.prototype.tokenText=function(e){return this.value.substr(e.pos,e.len)},e.prototype.next=function(){if(this.pos>=this.value.length)return{type:i.EOF,pos:this.pos,len:0};var t,n=this.pos,o=0,r=this.value.charCodeAt(n);if("number"==typeof(t=e._table[r]))return this.pos+=1,{type:t,pos:n,len:1};if(e.isDigitCharacter(r)){t=i.Int;do{o+=1,r=this.value.charCodeAt(n+o)}while(e.isDigitCharacter(r));return this.pos+=o,{type:t,pos:n,len:o}}if(e.isVariableCharacter(r)){t=i.VariableName;do{r=this.value.charCodeAt(n+ ++o)}while(e.isVariableCharacter(r)||e.isDigitCharacter(r));return this.pos+=o,{type:t,pos:n,len:o}}t=i.Format;do{o+=1,r=this.value.charCodeAt(n+o)}while(!isNaN(r)&&void 0===e._table[r]&&!e.isDigitCharacter(r)&&!e.isVariableCharacter(r));return this.pos+=o,{type:t,pos:n,len:o}},e}();o._table=(d={},d[36]=i.Dollar,d[58]=i.Colon,d[123]=i.CurlyOpen,d[125]=i.CurlyClose,d[92]=i.Backslash,d),t.Scanner=o;var r=function(){function e(){this._children=[]}return e.toString=function(e){for(var t="",n=0,i=e;nt.index?1:0},Object.defineProperty(t.prototype,"isFinalTabstop",{get:function(){return 0===this.index},enumerable:!0,configurable:!0}),t.prototype.toString=function(){return r.toString(this.children)},t}(r);t.Placeholder=a;var u=function(e){function t(t,n){void 0===t&&(t="");var i=e.call(this)||this;return i.name=t,i.children=n,i}return f(t,e),Object.defineProperty(t.prototype,"isDefined",{get:function(){return void 0!==this.resolvedValue},enumerable:!0,configurable:!0}),t.prototype.len=function(){return this.isDefined?this.resolvedValue.length:e.prototype.len.call(this)},t.prototype.toString=function(){return this.isDefined?this.resolvedValue:r.toString(this.children)},t}(r);t.Variable=u,t.walk=n;var l=function(e){function t(t){var n=e.call(this)||this;return n.children=t,n}return f(t,e),Object.defineProperty(t.prototype,"placeholders",{get:function(){var e=this;return this._placeholders||(this._placeholders=[],n(this.children,function(t){return t instanceof a&&e.placeholders.push(t),!0})),this._placeholders},enumerable:!0,configurable:!0}),t.prototype.offset=function(e){var t=0,i=!1;return n(this.children,function(n){return n===e?(i=!0,!1):(t+=n.len(),!0)}),i?t:-1},t.prototype.fullLen=function(e){var t=0;return n([e],function(e){return t+=e.len(),!0}),t},t.prototype.enclosingPlaceholders=function(e){for(var t=[],n=e.parent;n;)n instanceof a&&t.push(n),n=n.parent;return t},Object.defineProperty(t.prototype,"text",{get:function(){return r.toString(this.children)},enumerable:!0,configurable:!0}),t.prototype.resolveVariables=function(e){return n(this.children,function(t){return t instanceof u&&(t.resolvedValue=e.resolve(t.name),t.isDefined&&(t.children=[])),!0}),this},t.prototype.replace=function(e,t){var n=e.parent,i=n.children.indexOf(e),o=n.children.slice(0);o.splice.apply(o,[i,1].concat(t)),n.children=o,this._placeholders=void 0},t}(r);t.TextmateSnippet=l;var c=function(){function e(){this._scanner=new o}return e.escape=function(e){return e.replace(/\$|}|\\/g,"\\$&")},e.parse=function(t,n){var i=(new e).parse(t,!0,n);return new l(i)},e.prototype.text=function(e){return r.toString(this.parse(e))},e.prototype.parse=function(e,t,n){function i(e,t){for(var n=0;n0&&o instanceof s&&e[n-1]instanceof s&&(e[n-1].string+=e[n].string,e.splice(n,1),n--)}}var o=[];for(this._scanner.text(e),this._token=this._scanner.next();this._parseAny(o)||this._parseText(o););var r=new Map;return i(o,r),!r.has(0)&&(t&&r.size>0||n)&&o.push(new a(0,[])),o},e.prototype._accept=function(e){return(void 0===e||this._token.type===e)&&(this._prevToken=this._token,this._token=this._scanner.next(),!0)},e.prototype._parseAny=function(e){return!!this._parseEscaped(e)||!!this._parseTM(e)},e.prototype._parseText=function(e){return this._token.type!==i.EOF&&(e.push(new s(this._scanner.tokenText(this._token))),this._accept(void 0),!0)},e.prototype._parseTM=function(e){if(this._accept(i.Dollar)){if(this._accept(i.VariableName)||this._accept(i.Int)){l=this._scanner.tokenText(this._prevToken);return e.push(/^\d+$/.test(l)?new a(Number(l),[]):new u(l,[])),!0}if(this._accept(i.CurlyOpen))for(var t=[],n=[],o=t;;)if(o!==n&&this._accept(i.Colon))o=n;else{if(this._accept(i.CurlyClose)){var l=r.toString(t);return e.push(/^\d+$/.test(l)?new a(Number(l),n):new u(l,n)),!0}if(!this._parseAny(o)&&!this._parseText(o))return n.length>0?(e.push(new s("${"+r.toString(t)+":")),e.push.apply(e,n)):(e.push(new s("${")),e.push.apply(e,t)),!0}return e.push(new s("$")),!0}return!1},e.prototype._parseEscaped=function(e){return!!this._accept(i.Backslash)&&(this._accept(i.Dollar)||this._accept(i.CurlyClose)||this._accept(i.Backslash),e.push(new s(this._scanner.tokenText(this._prevToken))),!0)},e}();t.SnippetParser=c;var d}),define(d[262],h([0,1,46]),function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){this._model=e,this._selection=t}return e.prototype.resolve=function(e){if("SELECTION"===e||"TM_SELECTED_TEXT"===e)return this._model.getValueInRange(this._selection)||void 0;if("TM_CURRENT_LINE"===e)return this._model.getLineContent(this._selection.positionLineNumber);if("TM_CURRENT_WORD"===e){var t=this._model.getWordAtPosition({lineNumber:this._selection.positionLineNumber,column:this._selection.positionColumn});return t&&t.word||void 0}if("TM_LINE_INDEX"===e)return String(this._selection.positionLineNumber-1);if("TM_LINE_NUMBER"===e)return String(this._selection.positionLineNumber);if("TM_FILENAME"===e)return n.basename(this._model.uri.fsPath);if("TM_DIRECTORY"===e){var i=n.dirname(this._model.uri.fsPath);return"."!==i?i:""}return"TM_FILEPATH"===e?this._model.uri.fsPath:void 0},e}();i.VariableNames=Object.freeze({SELECTION:!0,TM_SELECTED_TEXT:!0,TM_CURRENT_LINE:!0,TM_CURRENT_WORD:!0,TM_LINE_INDEX:!0,TM_LINE_NUMBER:!0,TM_FILENAME:!0,TM_DIRECTORY:!0,TM_FILEPATH:!0}),t.EditorSnippetVariableResolver=i}),define(d[263],h([0,1,85]),function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){return function(){}}();t.LineContext=i;var o=function(){function e(t,n,i,o){this._snippetCompareFn=e._compareCompletionItems,this._items=t,this._column=n,this._lineContext=i,"top"===o?this._snippetCompareFn=e._compareCompletionItemsSnippetsUp:"bottom"===o&&(this._snippetCompareFn=e._compareCompletionItemsSnippetsDown)}return Object.defineProperty(e.prototype,"lineContext",{get:function(){return this._lineContext},set:function(e){this._lineContext.leadingLineContent===e.leadingLineContent&&this._lineContext.characterCountDelta===e.characterCountDelta||(this._lineContext=e,this._filteredItems=void 0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"items",{get:function(){return this._ensureCachedState(),this._filteredItems},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"incomplete",{get:function(){return this._ensureCachedState(),this._isIncomplete},enumerable:!0,configurable:!0}),e.prototype.resolveIncompleteInfo=function(){for(var e=[],t=[],n=0,i=this._items;nt.score?-1:e.scoret.idx?1:0},e._compareCompletionItemsSnippetsDown=function(t,n){if(t.suggestion.type!==n.suggestion.type){if("snippet"===t.suggestion.type)return 1;if("snippet"===n.suggestion.type)return-1}return e._compareCompletionItems(t,n)},e._compareCompletionItemsSnippetsUp=function(t,n){if(t.suggestion.type!==n.suggestion.type){if("snippet"===t.suggestion.type)return-1;if("snippet"===n.suggestion.type)return 1}return e._compareCompletionItems(t,n)},e}();t.CompletionModel=o}),define(d[264],h([0,1,8,17,109,79,133,9]),function(e,t,n,i,o,r,s,a){"use strict";function u(e,t,n){return c(e,t,n)}function l(e,t){for(var n=[],i=0,s=e.length;i")}return n.join("")}function c(e,t,n){for(var i=[],r=n.getInitialState(),a=0,u=e.length;a"),r=c.endState}return i.join("")}Object.defineProperty(t,"__esModule",{value:!0});var d=function(){function e(){}return e.colorizeElement=function(e,t,n,i){var o=(i=i||{}).theme||"vs",r=i.mimeType||n.getAttribute("lang")||n.getAttribute("data-lang");if(r){e.setTheme(o);var s=n.firstChild.nodeValue;n.className+="monaco-editor "+o;var a=function(e){n.innerHTML=e};return this.colorize(t,s,r,i).then(a,function(e){return console.error(e)},a)}console.error("Mode not detected")},e._tokenizationSupportChangedPromise=function(e){var t=null,o=function(){t&&(t.dispose(),t=null)};return new n.TPromise(function(n,r,s){t=i.TokenizationRegistry.onDidChange(function(t){t.changedLanguages.indexOf(e)>=0&&(o(),n(void 0))})},o)},e.colorize=function(e,t,o,r){a.startsWithUTF8BOM(t)&&(t=t.substr(1));var s=t.split(/\r\n|\r|\n/),c=e.getModeId(o);void 0===(r=r||{}).tabSize&&(r.tabSize=4),e.getOrCreateMode(c);var d=i.TokenizationRegistry.get(c);return d?n.TPromise.as(u(s,r.tabSize,d)):n.TPromise.any([this._tokenizationSupportChangedPromise(c),n.TPromise.timeout(500)]).then(function(e){var t=i.TokenizationRegistry.get(c);return t?u(s,r.tabSize,t):l(s,r.tabSize)})},e.colorizeLine=function(e,t,n,i){return void 0===i&&(i=4),o.renderViewLine(new o.RenderLineInput(!1,e,t,0,n,[],i,0,-1,"none",!1,!1)).html},e.colorizeModelLine=function(e,t,n){void 0===n&&(n=4);var i=e.getLineContent(t);e.forceTokenization(t);var o=e.getLineTokens(t).inflate();return this.colorizeLine(i,e.mightContainRTL(),o,n)},e}();t.Colorizer=d}),define(d[146],h([0,1]),function(e,t){"use strict";function n(e){return Array.isArray(e)}function i(e){return"string"==typeof e}function o(e){return!e}function r(e,t){return e.ignoreCase&&t?t.toLowerCase():t}Object.defineProperty(t,"__esModule",{value:!0});!function(e){e[e.None=0]="None",e[e.Open=1]="Open",e[e.Close=-1]="Close"}(t.MonarchBracket||(t.MonarchBracket={})),t.isFuzzyActionArr=n,t.isFuzzyAction=function(e){return!n(e)},t.isString=i,t.isIAction=function(e){return!i(e)},t.empty=o,t.fixCase=r,t.sanitize=function(e){return e.replace(/[&<>'"_]/g,"-")},t.log=function(e,t){console.log(e.languageId+": "+t)},t.throwError=function(e,t){throw new Error(e.languageId+": "+t)},t.substituteMatches=function(e,t,n,i,s){var a=/\$((\$)|(#)|(\d\d?)|[sS](\d\d?)|@(\w+))/g,u=null;return t.replace(a,function(t,a,l,c,d,h,p,f,g){return o(l)?o(c)?!o(d)&&d0;){var n=e.tokenizer[t];if(n)return n;var i=t.lastIndexOf(".");t=i<0?null:t.substr(0,i)}return null},t.stateExists=function(e,t){for(;t&&t.length>0;){if(e.stateNames[t])return!0;var n=t.lastIndexOf(".");t=n<0?null:t.substr(0,n)}return!1}}),define(d[266],h([0,1,28,146]),function(e,t,n,i){"use strict";function o(e,t){if(!t)return!1;if(!Array.isArray(t))return!1;var n;for(n in t)if(t.hasOwnProperty(n)&&!e(t[n]))return!1;return!0}function r(e,t,n){return"boolean"==typeof e?e:(n&&(e||void 0===t)&&n(),void 0===t?null:t)}function s(e,t,n){return"string"==typeof e?e:(n&&(e||void 0===t)&&n(),void 0===t?null:t)}function a(e,t){if("string"!=typeof t)return null;for(var n=0;t.indexOf("@")>=0&&n<5;)n++,t=t.replace(/@(\w+)/g,function(n,o){var r="";return"string"==typeof e[o]?r=e[o]:e[o]&&e[o]instanceof RegExp?r=e[o].source:void 0===e[o]?i.throwError(e,"language definition does not contain attribute '"+o+"', used at: "+t):i.throwError(e,"attribute reference '"+o+"' must be a string, used at: "+t),i.empty(r)?"":"(?:"+r+")"});return new RegExp(t,e.ignoreCase?"i":"")}function u(e,t,n,i){if(i<0)return e;if(i=100){i-=100;var o=n.split(".");if(o.unshift(n),i=0&&(o.tokenSubst=!0),"string"==typeof n.bracket&&("@open"===n.bracket?o.bracket=1:"@close"===n.bracket?o.bracket=-1:i.throwError(e,"a 'bracket' attribute must be either '@open' or '@close', in rule: "+t)),n.next)if("string"!=typeof n.next)i.throwError(e,"the next state must be a string value in rule: "+t);else{var r=n.next;/^(@pop|@push|@popall)$/.test(r)||("@"===r[0]&&(r=r.substr(1)),r.indexOf("$")<0&&(i.stateExists(e,i.substituteMatches(e,r,"",[],""))||i.throwError(e,"the next state '"+n.next+"' is not defined in rule: "+t))),o.next=r}return"number"==typeof n.goBack&&(o.goBack=n.goBack),"string"==typeof n.switchTo&&(o.switchTo=n.switchTo),"string"==typeof n.log&&(o.log=n.log),"string"==typeof n.nextEmbedded&&(o.nextEmbedded=n.nextEmbedded,e.usesEmbedded=!0),o}if(Array.isArray(n)){var s,a=[];for(s in n)n.hasOwnProperty(s)&&(a[s]=c(e,t,n[s]));return{group:a}}if(n.cases){var u,d=[];for(u in n.cases)if(n.cases.hasOwnProperty(u)){var h=c(e,t,n.cases[u]);"@default"===u||"@"===u||""===u?d.push({test:null,value:h,name:u}):"@eos"===u?d.push({test:function(e,t,n,i){return i},value:h,name:u}):d.push(l(e,t,u,h))}var p=e.defaultToken;return{test:function(e,t,n,i){var o;for(o in d)if(d.hasOwnProperty(o)&&(!d[o].test||d[o].test(e,t,n,i)))return d[o].value;return p}}}return i.throwError(e,"an action must be a string, an object with a 'token' or 'cases' attribute, or an array of actions; in rule: "+t),""}return{token:""}}Object.defineProperty(t,"__esModule",{value:!0});var d=function(){function e(e){this.regex=new RegExp(""),this.action={token:""},this.matchOnlyAtLineStart=!1,this.name="",this.name=e}return e.prototype.setRegex=function(e,t){var n;"string"==typeof t?n=t:t instanceof RegExp?n=t.source:i.throwError(e,"rules must start with a match string or regular expression: "+this.name),this.matchOnlyAtLineStart=n.length>0&&"^"===n[0],this.name=this.name+": "+n,this.regex=a(e,"^(?:"+(this.matchOnlyAtLineStart?n.substr(1):n)+")")},e.prototype.setAction=function(e,t){this.action=c(e,this.name,t)},e}();t.compile=function(e,t){function n(e,u,l){var c;for(c in l)if(l.hasOwnProperty(c)){var h=l[c],p=h.include;if(p)"string"!=typeof p&&i.throwError(o,"an 'include' attribute must be a string at: "+e),"@"===p[0]&&(p=p.substr(1)),t.tokenizer[p]||i.throwError(o,"include target '"+p+"' is not defined at: "+e),n(e+"."+p,u,t.tokenizer[p]);else{var f=new d(e);if(Array.isArray(h)&&h.length>=1&&h.length<=3)if(f.setRegex(a,h[0]),h.length>=3)if("string"==typeof h[1])f.setAction(a,{token:h[1],next:h[2]});else if("object"==typeof h[1]){var g=h[1];g.next=h[2],f.setAction(a,g)}else i.throwError(o,"a next state as the last element of a rule can only be given if the action is either an object or a string, at: "+e);else f.setAction(a,h[1]);else h.regex||i.throwError(o,"a rule must either be an array, or an object with a 'regex' or 'include' field at: "+e),h.name&&(f.name=s(h.name)),h.matchOnlyAtStart&&(f.matchOnlyAtLineStart=r(h.matchOnlyAtLineStart)),f.setRegex(a,h.regex),f.setAction(a,h.action);u.push(f)}}}if(!t||"object"!=typeof t)throw new Error("Monarch: expecting a language definition object");var o={};o.languageId=e,o.noThrow=!1,o.maxStack=100,o.start=s(t.start),o.ignoreCase=r(t.ignoreCase,!1),o.tokenPostfix=s(t.tokenPostfix,"."+o.languageId),o.defaultToken=s(t.defaultToken,"source",function(){i.throwError(o,"the 'defaultToken' must be a string")}),o.usesEmbedded=!1;var a=t;a.languageId=e,a.ignoreCase=o.ignoreCase,a.noThrow=o.noThrow,a.usesEmbedded=o.usesEmbedded,a.stateNames=t.tokenizer,a.defaultToken=o.defaultToken,t.tokenizer&&"object"==typeof t.tokenizer||i.throwError(o,"a language definition must define the 'tokenizer' attribute as an object"),o.tokenizer=[];var u;for(u in t.tokenizer)if(t.tokenizer.hasOwnProperty(u)){o.start||(o.start=u);var l=t.tokenizer[u];o.tokenizer[u]=new Array,n("tokenizer."+u,o.tokenizer[u],l)}o.usesEmbedded=a.usesEmbedded,t.brackets?Array.isArray(t.brackets)||i.throwError(o,"the 'brackets' attribute must be defined as an array"):t.brackets=[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}];var c=[];for(var h in t.brackets)if(t.brackets.hasOwnProperty(h)){var p=t.brackets[h];p&&Array.isArray(p)&&3===p.length&&(p={token:p[2],open:p[0],close:p[1]}),p.open===p.close&&i.throwError(o,"open and close brackets in a 'brackets' attribute must be different: "+p.open+"\n hint: use the 'bracket' attribute if matching on equal brackets is required."),"string"==typeof p.open&&"string"==typeof p.token?c.push({token:s(p.token)+o.tokenPostfix,open:i.fixCase(o,s(p.open)),close:i.fixCase(o,s(p.close))}):i.throwError(o,"every element in the 'brackets' array must be a '{open,close,token}' object or array")}return o.brackets=c,o.noThrow=!0,o}}),define(d[267],h([0,1,17,146,96,70]),function(e,t,n,i,o,r){"use strict";function s(e,t){if(!t)return null;t=i.fixCase(e,t);for(var n=e.brackets,o=0;o=this._maxCacheDepth)return new u(e,t);var n=u.getStackElementId(e);n.length>0&&(n+="|"),n+=t;var i=this._entries[n];return i||(i=new u(e,t),this._entries[n]=i,i)},e}();a._INSTANCE=new a(5);var u=function(){function e(e,t){this.parent=e,this.state=t,this.depth=(this.parent?this.parent.depth:0)+1}return e.getStackElementId=function(e){for(var t="";null!==e;)t.length>0&&(t+="|"),t+=e.state,e=e.parent;return t},e._equals=function(e,t){for(;null!==e&&null!==t;){if(e===t)return!0;if(e.state!==t.state)return!1;e=e.parent,t=t.parent}return null===e&&null===t},e.prototype.equals=function(t){return e._equals(this,t)},e.prototype.push=function(e){return a.create(this,e)},e.prototype.pop=function(){return this.parent},e.prototype.popall=function(){for(var e=this;e.parent;)e=e.parent;return e},e.prototype.switchTo=function(e){return a.create(this.parent,e)},e}(),l=function(){function e(e,t){this.modeId=e,this.state=t}return e.prototype.equals=function(e){return this.modeId===e.modeId&&this.state.equals(e.state)},e.prototype.clone=function(){return this.state.clone()===this.state?this:new e(this.modeId,this.state)},e}(),c=function(){function e(e){this._maxCacheDepth=e,this._entries=Object.create(null)}return e.create=function(e,t){return this._INSTANCE.create(e,t)},e.prototype.create=function(e,t){if(null!==t)return new d(e,t);if(null!==e&&e.depth>=this._maxCacheDepth)return new d(e,t);var n=u.getStackElementId(e),i=this._entries[n];return i||(i=new d(e,null),this._entries[n]=i,i)},e}();c._INSTANCE=new c(5);var d=function(){function e(e,t){this.stack=e,this.embeddedModeData=t}return e.prototype.clone=function(){return(this.embeddedModeData?this.embeddedModeData.clone():null)===this.embeddedModeData?this:c.create(this.stack,this.embeddedModeData)},e.prototype.equals=function(t){return t instanceof e&&(!!this.stack.equals(t.stack)&&(null===this.embeddedModeData&&null===t.embeddedModeData||null!==this.embeddedModeData&&null!==t.embeddedModeData&&this.embeddedModeData.equals(t.embeddedModeData)))},e}(),h=Object.hasOwnProperty,p=function(){function e(){this._tokens=[],this._language=null,this._lastTokenType=null,this._lastTokenLanguage=null}return e.prototype.enterMode=function(e,t){this._language=t},e.prototype.emit=function(e,t){this._lastTokenType===t&&this._lastTokenLanguage===this._language||(this._lastTokenType=t,this._lastTokenLanguage=this._language,this._tokens.push(new o.Token(e,t,this._language)))},e.prototype.nestedModeTokenize=function(e,t,i){var o=t.modeId,r=t.state,s=n.TokenizationRegistry.get(o);if(!s)return this.enterMode(i,o),this.emit(i,""),r;var a=s.tokenize(e,r,i);return this._tokens=this._tokens.concat(a.tokens),this._lastTokenType=null,this._lastTokenLanguage=null,this._language=null,a.endState},e.prototype.finalize=function(e){return new o.TokenizationResult(this._tokens,e)},e}(),f=function(){function e(e,t){this._modeService=e,this._theme=t,this._prependTokens=null,this._tokens=[],this._currentLanguageId=0,this._lastTokenMetadata=0}return e.prototype.enterMode=function(e,t){this._currentLanguageId=this._modeService.getLanguageIdentifier(t).id},e.prototype.emit=function(e,t){var n=this._theme.match(this._currentLanguageId,t);this._lastTokenMetadata!==n&&(this._lastTokenMetadata=n,this._tokens.push(e),this._tokens.push(n))},e._merge=function(e,t,n){var i=null!==e?e.length:0,o=t.length,r=null!==n?n.length:0;if(0===i&&0===o&&0===r)return new Uint32Array(0);if(0===i&&0===o)return n;if(0===o&&0===r)return e;var s=new Uint32Array(i+o+r);null!==e&&s.set(e);for(var a=0;a0&&i.nestedModeTokenize(s,t.embeddedModeData,n);var a=e.substring(o);return this._myTokenize(a,t,n+o,i)},e.prototype._myTokenize=function(e,t,n,o){o.enterMode(n,this._modeId);for(var r=e.length,a=t.embeddedModeData,u=t.stack,l=0,d=null,p=null,f=null,g=null;l=r)break;var L=this._lexer.tokenizer[y];L||(L=i.findRules(this._lexer,y))||i.throwError(this._lexer,"tokenizer state is not defined: "+y);W=e.substr(l);for(var x in L)if(h.call(L,x)){var N=L[x];if((0===l||!N.matchOnlyAtLineStart)&&(b=W.match(N.regex))){C=b[0],w=N.action;break}}}for(b||(b=[""],C=""),w||(l=this._lexer.maxStack?i.throwError(this._lexer,"maximum tokenizer stack size reached: ["+u.state+","+u.parent.state+",...]"):u=u.push(y);else if("@pop"===w.next)u.depth<=1?i.throwError(this._lexer,"trying to pop an empty stack in rule: "+S.name):u=u.pop();else if("@popall"===w.next)u=u.popall();else{var T=i.substituteMatches(this._lexer,w.next,C,b,y);"@"===T[0]&&(T=T.substr(1)),i.findRules(this._lexer,T)?u=u.push(T):i.throwError(this._lexer,"trying to set a next state '"+T+"' that is undefined in rule: "+S.name)}w.log&&"string"==typeof w.log&&i.log(this._lexer,this._lexer.languageId+": "+i.substituteMatches(this._lexer,w.log,C,b,y))}if(null===M&&i.throwError(this._lexer,"lexer rule has no well-defined action in rule: "+S.name),Array.isArray(M)){d&&d.length>0&&i.throwError(this._lexer,"groups cannot be nested: "+S.name),b.length!==M.length+1&&i.throwError(this._lexer,"matched number of groups does not match the number of actions in rule: "+S.name);for(var k=0,I=1;I=n.actionsList.children.length?n.actionsList.appendChild(i):n.actionsList.insertBefore(i,n.actionsList.children[o++]),n.items.push(r)})},t.prototype.pull=function(e){e>=0&&e=0){var n=void 0;e.equals(17)?n=(t+1)%s.length:e.equals(15)&&(n=0===t?s.length-1:t-1),e.equals(9)?s[t].blur():n>=0&&s[n].focus(),i.EventHelper.stop(e,!0)}}}),this.setInputWidth();var u=document.createElement("div");u.className="controls",u.appendChild(this.caseSensitive.domNode),u.appendChild(this.wholeWords.domNode),u.appendChild(this.regex.domNode),this.domNode.appendChild(u)},t.prototype.validate=function(){this.inputBox.validate()},t.prototype.showMessage=function(e){this.inputBox.showMessage(e)},t.prototype.clearMessage=function(){this.inputBox.hideMessage()},t.prototype.clearValidation=function(){this.inputBox.hideMessage()},t.prototype.dispose=function(){e.prototype.dispose.call(this)},t}(r.Widget);l.OPTION_CHANGE="optionChange",t.FindInput=l}),define(d[281],h([5,7]),function(e,t){return e.create("vs/base/common/keybindingLabels",t)}),define(d[195],h([0,1,281]),function(e,t,n){"use strict";function i(e,t,n){if(null===t)return"";var i=[];return e.ctrlKey&&i.push(n.ctrlKey),e.shiftKey&&i.push(n.shiftKey),e.altKey&&i.push(n.altKey),e.metaKey&&i.push(n.metaKey),i.push(t),i.join(n.separator)}function o(e,t,n,o,r){var s=i(e,t,r);return null!==o&&(s+=" ",s+=i(n,o,r)),s}Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t,n){void 0===n&&(n=t),this.modifierLabels=[null],this.modifierLabels[2]=e,this.modifierLabels[1]=t,this.modifierLabels[3]=n}return e.prototype.toLabel=function(e,t,n,i,r){return null===t&&null===i?null:o(e,t,n,i,this.modifierLabels[r])},e}();t.ModifierLabelProvider=r,t.UILabelProvider=new r({ctrlKey:"⌃",shiftKey:"⇧",altKey:"⌥",metaKey:"⌘",separator:""},{ctrlKey:n.localize(0,null),shiftKey:n.localize(1,null),altKey:n.localize(2,null),metaKey:n.localize(3,null),separator:"+"}),t.AriaLabelProvider=new r({ctrlKey:n.localize(4,null),shiftKey:n.localize(5,null),altKey:n.localize(6,null),metaKey:n.localize(7,null),separator:"+"},{ctrlKey:n.localize(8,null),shiftKey:n.localize(9,null),altKey:n.localize(10,null),metaKey:n.localize(11,null),separator:"+"}),t.ElectronAcceleratorLabelProvider=new r({ctrlKey:"Ctrl",shiftKey:"Shift",altKey:"Alt",metaKey:"Cmd",separator:"+"},{ctrlKey:"Ctrl",shiftKey:"Shift",altKey:"Alt",metaKey:"Super",separator:"+"}),t.UserSettingsLabelProvider=new r({ctrlKey:"ctrl",shiftKey:"shift",altKey:"alt",metaKey:"cmd",separator:"+"},{ctrlKey:"ctrl",shiftKey:"shift",altKey:"alt",metaKey:"win",separator:"+"},{ctrlKey:"ctrl",shiftKey:"shift",altKey:"alt",metaKey:"meta",separator:"+"})}),define(d[283],h([0,1,28,195,6,412]),function(e,t,n,i,o){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=o.$,s=function(){function e(e,t){this.os=t,this.domNode=o.append(e,r(".htmlkb")),this.didEverRender=!1,e.appendChild(this.domNode)}return Object.defineProperty(e.prototype,"element",{get:function(){return this.domNode},enumerable:!0,configurable:!0}),e.prototype.set=function(t,n){this.didEverRender&&this.keybinding===t&&e.areSame(this.matches,n)||(this.keybinding=t,this.matches=n,this.render())},e.prototype.render=function(){if(o.clearNode(this.domNode),this.keybinding){var e=this.keybinding.getParts(),t=e[0],n=e[1];t&&this.renderPart(this.domNode,t,this.matches?this.matches.firstPart:null),n&&(o.append(this.domNode,r("span",null," ")),this.renderPart(this.domNode,n,this.matches?this.matches.chordPart:null)),this.domNode.title=this.keybinding.getAriaLabel()}this.didEverRender=!0},e.prototype.renderPart=function(e,t,n){var o=i.UILabelProvider.modifierLabels[this.os];t.ctrlKey&&this.renderKey(e,o.ctrlKey,n&&n.ctrlKey,o.separator),t.shiftKey&&this.renderKey(e,o.shiftKey,n&&n.shiftKey,o.separator),t.altKey&&this.renderKey(e,o.altKey,n&&n.altKey,o.separator),t.metaKey&&this.renderKey(e,o.metaKey,n&&n.metaKey,o.separator);var r=t.keyLabel;r&&this.renderKey(e,r,n&&n.keyCode,"")},e.prototype.renderKey=function(e,t,n,i){o.append(e,r("span.monaco-kbkey"+(n?".highlight":""),null,t)),i&&o.append(e,r("span",null,i))},e.prototype.dispose=function(){this.keybinding=null},e.areSame=function(e,t){return e===t||!e&&!t||!!e&&!!t&&n.equals(e.firstPart,t.firstPart)&&n.equals(e.chordPart,t.chordPart)},e}();t.KeybindingLabel=s}),define(d[284],h([5,7]),function(e,t){return e.create("vs/base/common/severity",t)}),define(d[40],h([0,1,284,9]),function(e,t,n,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o;!function(e){e[e.Ignore=0]="Ignore",e[e.Info=1]="Info",e[e.Warning=2]="Warning",e[e.Error=3]="Error"}(o||(o={})),function(e){var t="error",o="warning",r="warn",s="info",a=Object.create(null);a[e.Error]=n.localize(0,null),a[e.Warning]=n.localize(1,null),a[e.Info]=n.localize(2,null),e.fromValue=function(n){return n?i.equalsIgnoreCase(t,n)?e.Error:i.equalsIgnoreCase(o,n)||i.equalsIgnoreCase(r,n)?e.Warning:i.equalsIgnoreCase(s,n)?e.Info:e.Ignore:e.Ignore},e.toString=function(e){return a[e]||i.empty},e.compare=function(e,t){return t-e}}(o||(o={})),t.default=o}),define(d[286],h([5,7]),function(e,t){return e.create("vs/base/parts/quickopen/browser/quickOpenModel",t)}),define(d[120],h([0,1,286,8,29,85,9,46,185,484,69,124,6,283,15]),function(e,t,n,i,o,r,s,a,u,l,c,d,h,p,g){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var m=0,v=function(){function e(){}return e.getLabel=function(e){return e.getLabel()},e.getResourcePath=function(e){var t=e.getResource();return t&&t.fsPath},e}(),_=function(){function e(e){void 0===e&&(e=[]),this.id=(m++).toString(),this.labelHighlights=e,this.descriptionHighlights=[]}return e.prototype.getId=function(){return this.id},e.prototype.getLabel=function(){return null},e.prototype.getLabelOptions=function(){return null},e.prototype.getAriaLabel=function(){return this.getLabel()},e.prototype.getDetail=function(){return null},e.prototype.getIcon=function(){return null},e.prototype.getDescription=function(){return null},e.prototype.getKeybinding=function(){return null},e.prototype.getResource=function(){return null},e.prototype.isHidden=function(){return this.hidden},e.prototype.setHidden=function(e){this.hidden=e},e.prototype.setHighlights=function(e,t,n){this.labelHighlights=e,this.descriptionHighlights=t,this.detailHighlights=n},e.prototype.getHighlights=function(){return[this.labelHighlights,this.descriptionHighlights,this.detailHighlights]},e.prototype.run=function(e,t){return!1},e.compare=function(e,t,n){var i=e.getHighlights()[0]||[],o=t.getHighlights()[0]||[];if(i.length&&!o.length)return-1;if(!i.length&&o.length)return 1;var r=e.getLabel(),s=t.getLabel();if(r===s){var a=e.getResource(),u=t.getResource();a&&u&&(r=a.fsPath,s=u.fsPath)}return l.compareAnything(r,s,n)},e.compareByScore=function(e,t,n,i,o){return l.compareByScore(e,t,v,n,i,o)},e.highlight=function(e,t,n){void 0===n&&(n=!1);var i=[],o=[],u=s.stripWildcards(t),l=e.getLabel(),c=e.getDescription();if(e.getResource()){var d=e.getResource().fsPath;if(t.length===d.length&&t.toLowerCase()===d.toLowerCase())i.push({start:0,end:l.length}),o.push({start:0,end:c.length});else if(n||t.indexOf(a.nativeSep)>=0){var h=r.matchesFuzzy(t,l,n);if(h)i=h;else{var p=c?c+a.nativeSep:"",f=p.length,g=r.matchesFuzzy(t,p+l,n);g||t===u||(g=r.matchesFuzzy(u,p+l,n)),g&&g.forEach(function(e){e.startf?(i.push({start:0,end:e.end-f}),o.push({start:e.start,end:f})):e.start>=f?i.push({start:e.start-f,end:e.end-f}):o.push(e)})}}else i=r.matchesFuzzy(t,l)}else i=r.matchesFuzzy(t,l);return{labelHighlights:i,descriptionHighlights:o}},e.prototype.isFile=function(){return!1},e}();t.QuickOpenEntry=_;var y=function(e){function t(t,n,i){var o=e.call(this)||this;return o.entry=t,o.groupLabel=n,o.withBorder=i,o}return f(t,e),t.prototype.getGroupLabel=function(){return this.groupLabel},t.prototype.setGroupLabel=function(e){this.groupLabel=e},t.prototype.showBorder=function(){return this.withBorder},t.prototype.setShowBorder=function(e){this.withBorder=e},t.prototype.getLabel=function(){return this.entry?this.entry.getLabel():e.prototype.getLabel.call(this)},t.prototype.getLabelOptions=function(){return this.entry?this.entry.getLabelOptions():e.prototype.getLabelOptions.call(this)},t.prototype.getAriaLabel=function(){return this.entry?this.entry.getAriaLabel():e.prototype.getAriaLabel.call(this)},t.prototype.getDetail=function(){return this.entry?this.entry.getDetail():e.prototype.getDetail.call(this)},t.prototype.getResource=function(){return this.entry?this.entry.getResource():e.prototype.getResource.call(this)},t.prototype.getIcon=function(){return this.entry?this.entry.getIcon():e.prototype.getIcon.call(this)},t.prototype.getDescription=function(){return this.entry?this.entry.getDescription():e.prototype.getDescription.call(this)},t.prototype.getEntry=function(){return this.entry},t.prototype.getHighlights=function(){return this.entry?this.entry.getHighlights():e.prototype.getHighlights.call(this)},t.prototype.isHidden=function(){return this.entry?this.entry.isHidden():e.prototype.isHidden.call(this)},t.prototype.setHighlights=function(t,n,i){this.entry?this.entry.setHighlights(t,n,i):e.prototype.setHighlights.call(this,t,n,i)},t.prototype.setHidden=function(t){this.entry?this.entry.setHidden(t):e.prototype.setHidden.call(this,t)},t.prototype.run=function(t,n){return this.entry?this.entry.run(t,n):e.prototype.run.call(this,t,n)},t}(_);t.QuickOpenEntryGroup=y;var b=function(){function e(){}return e.prototype.hasActions=function(e,t){return!1},e.prototype.getActions=function(e,t){return i.TPromise.as(null)},e.prototype.hasSecondaryActions=function(e,t){return!1},e.prototype.getSecondaryActions=function(e,t){return i.TPromise.as(null)},e.prototype.getActionItem=function(e,t,n){return null},e}(),C=function(){function e(e,t){void 0===e&&(e=new b),void 0===t&&(t=null),this.actionProvider=e,this.actionRunner=t}return e.prototype.getHeight=function(e){return e.getDetail()?44:22},e.prototype.getTemplateId=function(e){return e instanceof y?"quickOpenEntryGroup":"quickOpenEntry"},e.prototype.renderTemplate=function(e,t,n){var i=document.createElement("div");h.addClass(i,"sub-content"),t.appendChild(i);var o=h.$(".row"),r=h.$(".row"),s=h.$(".quick-open-entry",null,o,r);i.appendChild(s);var a=document.createElement("span");o.appendChild(a);var l=new u.IconLabel(o,{supportHighlights:!0}),f=document.createElement("span");o.appendChild(f),h.addClass(f,"quick-open-entry-description");var m=new d.HighlightedLabel(f),v=document.createElement("span");o.appendChild(v),h.addClass(v,"quick-open-entry-keybinding");var _=new p.KeybindingLabel(v,g.OS),y=document.createElement("div");r.appendChild(y),h.addClass(y,"quick-open-entry-meta");var b,C=new d.HighlightedLabel(y);"quickOpenEntryGroup"===e&&(b=document.createElement("div"),h.addClass(b,"results-group"),t.appendChild(b)),h.addClass(t,"actions");var w=document.createElement("div");return h.addClass(w,"primary-action-bar"),t.appendChild(w),{container:t,entry:s,icon:a,label:l,detail:C,description:m,keybinding:_,group:b,actionBar:new c.ActionBar(w,{actionRunner:this.actionRunner})}},e.prototype.renderElement=function(e,t,n,i){var o=n;if(this.actionProvider.hasActions(null,e)?h.addClass(o.container,"has-actions"):h.removeClass(o.container,"has-actions"),o.actionBar.context=e,this.actionProvider.getActions(null,e).then(function(e){o.actionBar.isEmpty()&&e&&e.length>0?o.actionBar.push(e,{icon:!0,label:!1}):o.actionBar.isEmpty()||e&&0!==e.length||o.actionBar.clear()}),e instanceof y&&e.getGroupLabel()?h.addClass(o.container,"has-group-label"):h.removeClass(o.container,"has-group-label"),e instanceof y){var r=e,s=n;r.showBorder()?(h.addClass(s.container,"results-group-separator"),s.container.style.borderTopColor=i.pickerGroupBorder.toString()):(h.removeClass(s.container,"results-group-separator"),s.container.style.borderTopColor=null);var a=r.getGroupLabel()||"";s.group.textContent=a,s.group.style.color=i.pickerGroupForeground.toString()}if(e instanceof _){var u=e.getHighlights(),l=u[0],c=u[1],d=u[2],p=e.getIcon()?"quick-open-entry-icon "+e.getIcon():"";o.icon.className=p;var f=e.getLabelOptions()||Object.create(null);f.matches=l||[],o.label.setValue(e.getLabel(),null,f),o.detail.set(e.getDetail(),d),o.description.set(e.getDescription(),c||[]),o.description.element.title=e.getDescription(),o.keybinding.set(e.getKeybinding(),null)}},e.prototype.disposeTemplate=function(e,t){var n=t;n.actionBar.dispose(),n.actionBar=null,n.container=null,n.entry=null,n.description.dispose(),n.description=null,n.keybinding.dispose(),n.keybinding=null,n.detail.dispose(),n.detail=null,n.group=null,n.icon=null,n.label.dispose(),n.label=null},e}(),w=function(){function e(e,t){void 0===e&&(e=[]),void 0===t&&(t=new b),this._entries=e,this._dataSource=this,this._renderer=new C(t),this._filter=this,this._runner=this,this._accessibilityProvider=this}return Object.defineProperty(e.prototype,"entries",{get:function(){return this._entries},set:function(e){this._entries=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"dataSource",{get:function(){return this._dataSource},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"renderer",{get:function(){return this._renderer},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"filter",{get:function(){return this._filter},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"runner",{get:function(){return this._runner},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"accessibilityProvider",{get:function(){return this._accessibilityProvider},enumerable:!0,configurable:!0}),e.prototype.addEntries=function(e){o.isArray(e)&&(this._entries=this._entries.concat(e))},e.prototype.setEntries=function(e){o.isArray(e)&&(this._entries=e)},e.prototype.getEntries=function(e){return e?this._entries.filter(function(e){return!e.isHidden()}):this._entries},e.prototype.getId=function(e){return e.getId()},e.prototype.getLabel=function(e){return e.getLabel()},e.prototype.getAriaLabel=function(e){return e.getAriaLabel()?n.localize(0,null,e.getAriaLabel()):n.localize(1,null)},e.prototype.isVisible=function(e){return!e.isHidden()},e.prototype.run=function(e,t,n){return e.run(t,n)},e}();t.QuickOpenModel=w}),define(d[288],h([5,7]),function(e,t){return e.create("vs/base/parts/quickopen/browser/quickOpenWidget",t)}),define(d[289],h([5,7]),function(e,t){return e.create("vs/base/parts/tree/browser/treeDefaults",t)}),define(d[121],h([0,1,289,8,55,15,10,6,39]),function(e,t,n,i,o,r,s,a,u){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var l;!function(e){e[e.ON_MOUSE_DOWN=0]="ON_MOUSE_DOWN",e[e.ON_MOUSE_UP=1]="ON_MOUSE_UP"}(l=t.ClickBehavior||(t.ClickBehavior={}));var c=function(){function e(){this._arr=[]}return e.prototype.set=function(e,t){this._arr.push({keybinding:u.createKeybinding(e,r.OS),callback:t})},e.prototype.dispatch=function(e){for(var t=this._arr.length-1;t>=0;t--){var n=this._arr[t];if(e.equals(n.keybinding))return n.callback}return null},e}();t.KeybindingDispatcher=c;var d=function(){function e(e){void 0===e&&(e={clickBehavior:l.ON_MOUSE_UP,keyboardSupport:!0});var t=this;this.options=e,this.downKeyBindingDispatcher=new c,this.upKeyBindingDispatcher=new c,("boolean"!=typeof e.keyboardSupport||e.keyboardSupport)&&(this.downKeyBindingDispatcher.set(16,function(e,n){return t.onUp(e,n)}),this.downKeyBindingDispatcher.set(18,function(e,n){return t.onDown(e,n)}),this.downKeyBindingDispatcher.set(15,function(e,n){return t.onLeft(e,n)}),this.downKeyBindingDispatcher.set(17,function(e,n){return t.onRight(e,n)}),r.isMacintosh&&(this.downKeyBindingDispatcher.set(2064,function(e,n){return t.onLeft(e,n)}),this.downKeyBindingDispatcher.set(300,function(e,n){return t.onDown(e,n)}),this.downKeyBindingDispatcher.set(302,function(e,n){return t.onUp(e,n)})),this.downKeyBindingDispatcher.set(11,function(e,n){return t.onPageUp(e,n)}),this.downKeyBindingDispatcher.set(12,function(e,n){return t.onPageDown(e,n)}),this.downKeyBindingDispatcher.set(14,function(e,n){return t.onHome(e,n)}),this.downKeyBindingDispatcher.set(13,function(e,n){return t.onEnd(e,n)}),this.downKeyBindingDispatcher.set(10,function(e,n){return t.onSpace(e,n)}),this.downKeyBindingDispatcher.set(9,function(e,n){return t.onEscape(e,n)}),this.upKeyBindingDispatcher.set(3,this.onEnter.bind(this)),this.upKeyBindingDispatcher.set(2051,this.onEnter.bind(this)))}return e.prototype.onMouseDown=function(e,t,n,i){if(void 0===i&&(i="mouse"),this.options.clickBehavior===l.ON_MOUSE_DOWN&&(n.leftButton||n.middleButton)){if(n.target){if(n.target.tagName&&"input"===n.target.tagName.toLowerCase())return!1;if(a.findParentWithClass(n.target,"monaco-action-bar","row"))return!1}return this.onLeftClick(e,t,n,i)}return!1},e.prototype.onClick=function(e,t,n){return r.isMacintosh&&n.ctrlKey?(n.preventDefault(),n.stopPropagation(),!1):(!n.target||!n.target.tagName||"input"!==n.target.tagName.toLowerCase())&&((this.options.clickBehavior!==l.ON_MOUSE_DOWN||!n.leftButton&&!n.middleButton)&&this.onLeftClick(e,t,n))},e.prototype.onLeftClick=function(e,t,n,i){void 0===i&&(i="mouse");var o={origin:i,originalEvent:n};return e.getInput()===t?(e.clearFocus(o),e.clearSelection(o)):(n&&n.browserEvent&&"mousedown"===n.browserEvent.type||n.preventDefault(),n.stopPropagation(),e.DOMFocus(),e.setSelection([t],o),e.setFocus(t,o),e.isExpanded(t)?e.collapse(t).done(null,s.onUnexpectedError):e.expand(t).done(null,s.onUnexpectedError)),!0},e.prototype.onContextMenu=function(e,t,n){return(!n.target||!n.target.tagName||"input"!==n.target.tagName.toLowerCase())&&(n&&(n.preventDefault(),n.stopPropagation()),!1)},e.prototype.onTap=function(e,t,n){var i=n.initialTarget;return(!i||!i.tagName||"input"!==i.tagName.toLowerCase())&&this.onLeftClick(e,t,n,"touch")},e.prototype.onKeyDown=function(e,t){return this.onKey(this.downKeyBindingDispatcher,e,t)},e.prototype.onKeyUp=function(e,t){return this.onKey(this.upKeyBindingDispatcher,e,t)},e.prototype.onKey=function(e,t,n){var i=e.dispatch(n.toKeybinding());return!(!i||!i(t,n))&&(n.preventDefault(),n.stopPropagation(),!0)},e.prototype.onUp=function(e,t){var n={origin:"keyboard",originalEvent:t};return e.getHighlight()?e.clearHighlight(n):(e.focusPrevious(1,n),e.reveal(e.getFocus()).done(null,s.onUnexpectedError)),!0},e.prototype.onPageUp=function(e,t){var n={origin:"keyboard",originalEvent:t};return e.getHighlight()?e.clearHighlight(n):(e.focusPreviousPage(n),e.reveal(e.getFocus()).done(null,s.onUnexpectedError)),!0},e.prototype.onDown=function(e,t){var n={origin:"keyboard",originalEvent:t};return e.getHighlight()?e.clearHighlight(n):(e.focusNext(1,n),e.reveal(e.getFocus()).done(null,s.onUnexpectedError)),!0},e.prototype.onPageDown=function(e,t){var n={origin:"keyboard",originalEvent:t};return e.getHighlight()?e.clearHighlight(n):(e.focusNextPage(n),e.reveal(e.getFocus()).done(null,s.onUnexpectedError)),!0},e.prototype.onHome=function(e,t){var n={origin:"keyboard",originalEvent:t};return e.getHighlight()?e.clearHighlight(n):(e.focusFirst(n),e.reveal(e.getFocus()).done(null,s.onUnexpectedError)),!0},e.prototype.onEnd=function(e,t){var n={origin:"keyboard",originalEvent:t};return e.getHighlight()?e.clearHighlight(n):(e.focusLast(n),e.reveal(e.getFocus()).done(null,s.onUnexpectedError)),!0},e.prototype.onLeft=function(e,t){var n={origin:"keyboard",originalEvent:t};if(e.getHighlight())e.clearHighlight(n);else{var i=e.getFocus();e.collapse(i).then(function(t){if(i&&!t)return e.focusParent(n),e.reveal(e.getFocus())}).done(null,s.onUnexpectedError)}return!0},e.prototype.onRight=function(e,t){var n={origin:"keyboard",originalEvent:t};if(e.getHighlight())e.clearHighlight(n);else{var i=e.getFocus();e.expand(i).then(function(t){if(i&&!t)return e.focusFirstChild(n),e.reveal(e.getFocus())}).done(null,s.onUnexpectedError)}return!0},e.prototype.onEnter=function(e,t){var n={origin:"keyboard",originalEvent:t};if(e.getHighlight())return!1;var i=e.getFocus();return i&&e.setSelection([i],n),!0},e.prototype.onSpace=function(e,t){if(e.getHighlight())return!1;var n=e.getFocus();return n&&e.toggleExpansion(n),!0},e.prototype.onEscape=function(e,t){var n={origin:"keyboard",originalEvent:t};return e.getHighlight()?(e.clearHighlight(n),!0):e.getSelection().length?(e.clearSelection(n),!0):!!e.getFocus()&&(e.clearFocus(n),!0)},e}();t.DefaultController=d;var h=function(){function e(){}return e.prototype.getDragURI=function(e,t){return null},e.prototype.onDragStart=function(e,t,n){},e.prototype.onDragOver=function(e,t,n,i){return null},e.prototype.drop=function(e,t,n,i){},e}();t.DefaultDragAndDrop=h;var p=function(){function e(){}return e.prototype.isVisible=function(e,t){return!0},e}();t.DefaultFilter=p;var g=function(){function e(){}return e.prototype.compare=function(e,t,n){return 0},e}();t.DefaultSorter=g;var m=function(){function e(){}return e.prototype.getAriaLabel=function(e,t){return null},e}();t.DefaultAccessibilityProvider=m;var v=function(e){function t(t,i){var o=e.call(this,"vs.tree.collapse",n.localize(0,null),"monaco-tree-action collapse-all",i)||this;return o.viewer=t,o}return f(t,e),t.prototype.run=function(e){return this.viewer.getHighlight()?i.TPromise.as(null):(this.viewer.collapseAll(),this.viewer.clearSelection(),this.viewer.clearFocus(),this.viewer.DOMFocus(),this.viewer.focusFirst(),i.TPromise.as(null))},t}(o.Action);t.CollapseAllAction=v}),define(d[189],h([0,1,121,38,447,394,107,11,3,34,28,389]),function(e,t,n,i,o,r,s,a,u,l,c){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var d=function(){return function(e,t,i){if(void 0===i&&(i={}),this.tree=e,this.configuration=t,this.options=i,!t.dataSource)throw new Error("You must provide a Data Source to the tree.");this.dataSource=t.dataSource,this.renderer=t.renderer,this.controller=t.controller||new n.DefaultController({clickBehavior:n.ClickBehavior.ON_MOUSE_UP,keyboardSupport:"boolean"!=typeof i.keyboardSupport||i.keyboardSupport}),this.dnd=t.dnd||new n.DefaultDragAndDrop,this.filter=t.filter||new n.DefaultFilter,this.sorter=t.sorter||null,this.accessibilityProvider=t.accessibilityProvider||new n.DefaultAccessibilityProvider}}();t.TreeContext=d;var h={listFocusBackground:l.Color.fromHex("#073655"),listActiveSelectionBackground:l.Color.fromHex("#0E639C"),listActiveSelectionForeground:l.Color.fromHex("#FFFFFF"),listFocusAndSelectionBackground:l.Color.fromHex("#094771"),listFocusAndSelectionForeground:l.Color.fromHex("#FFFFFF"),listInactiveSelectionBackground:l.Color.fromHex("#3F3F46"),listHoverBackground:l.Color.fromHex("#2A2D2E"),listDropBackground:l.Color.fromHex("#383B3D")},p=function(e){function t(t,n,i){void 0===i&&(i={});var s=e.call(this)||this;return s.toDispose=[],s._onDispose=new a.Emitter,s._onHighlightChange=new a.Emitter,s.toDispose.push(s._onDispose,s._onHighlightChange),s.container=t,s.configuration=n,s.options=i,c.mixin(s.options,h,!1),s.options.twistiePixels="number"==typeof s.options.twistiePixels?s.options.twistiePixels:32,s.options.showTwistie=!1!==s.options.showTwistie,s.options.indentPixels="number"==typeof s.options.indentPixels?s.options.indentPixels:12,s.options.alwaysFocused=!0===s.options.alwaysFocused,s.options.useShadows=!1!==s.options.useShadows,s.options.paddingOnRow=!1!==s.options.paddingOnRow,s.context=new d(s,n,i),s.model=new o.TreeModel(s.context),s.view=new r.TreeView(s.context,s.container),s.view.setModel(s.model),s.addEmitter(s.model),s.addEmitter(s.view),s.toDispose.push(s.model.addListener("highlight",function(){return s._onHighlightChange.fire()})),s}return f(t,e),t.prototype.style=function(e){this.view.applyStyles(e)},Object.defineProperty(t.prototype,"onDOMFocus",{get:function(){return this.view&&this.view.onDOMFocus},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"onDOMBlur",{get:function(){return this.view&&this.view.onDOMBlur},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"onHighlightChange",{get:function(){return this._onHighlightChange&&this._onHighlightChange.event},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"onDispose",{get:function(){return this._onDispose&&this._onDispose.event},enumerable:!0,configurable:!0}),t.prototype.getHTMLElement=function(){return this.view.getHTMLElement()},t.prototype.layout=function(e){this.view.layout(e)},t.prototype.DOMFocus=function(){this.view.focus()},t.prototype.isDOMFocused=function(){return this.view.isFocused()},t.prototype.DOMBlur=function(){this.view.blur()},t.prototype.onVisible=function(){this.view.onVisible()},t.prototype.onHidden=function(){this.view.onHidden()},t.prototype.setInput=function(e){return this.model.setInput(e)},t.prototype.getInput=function(){return this.model.getInput()},t.prototype.refresh=function(e,t){return void 0===e&&(e=null),void 0===t&&(t=!0),this.model.refresh(e,t)},t.prototype.expand=function(e){return this.model.expand(e)},t.prototype.expandAll=function(e){return this.model.expandAll(e)},t.prototype.collapse=function(e,t){return void 0===t&&(t=!1),this.model.collapse(e,t)},t.prototype.collapseAll=function(e,t){return void 0===e&&(e=null),void 0===t&&(t=!1),this.model.collapseAll(e,t)},t.prototype.toggleExpansion=function(e){return this.model.toggleExpansion(e)},t.prototype.toggleExpansionAll=function(e){return this.model.toggleExpansionAll(e)},t.prototype.isExpanded=function(e){return this.model.isExpanded(e)},t.prototype.getExpandedElements=function(){return this.model.getExpandedElements()},t.prototype.reveal=function(e,t){return void 0===t&&(t=null),this.model.reveal(e,t)},t.prototype.getRelativeTop=function(e){var t=this.model.getItem(e);return this.view.getRelativeTop(t)},t.prototype.getScrollPosition=function(){return this.view.getScrollPosition()},t.prototype.setScrollPosition=function(e){this.view.setScrollPosition(e)},t.prototype.getContentHeight=function(){return this.view.getTotalHeight()},t.prototype.setHighlight=function(e,t){this.model.setHighlight(e,t)},t.prototype.getHighlight=function(){return this.model.getHighlight()},t.prototype.isHighlighted=function(e){return this.model.isFocused(e)},t.prototype.clearHighlight=function(e){this.model.setHighlight(null,e)},t.prototype.select=function(e,t){this.model.select(e,t)},t.prototype.selectRange=function(e,t,n){this.model.selectRange(e,t,n)},t.prototype.deselectRange=function(e,t,n){this.model.deselectRange(e,t,n)},t.prototype.selectAll=function(e,t){this.model.selectAll(e,t)},t.prototype.deselect=function(e,t){this.model.deselect(e,t)},t.prototype.deselectAll=function(e,t){this.model.deselectAll(e,t)},t.prototype.setSelection=function(e,t){this.model.setSelection(e,t)},t.prototype.toggleSelection=function(e,t){this.model.toggleSelection(e,t)},t.prototype.isSelected=function(e){return this.model.isSelected(e)},t.prototype.getSelection=function(){return this.model.getSelection()},t.prototype.clearSelection=function(e){this.model.setSelection([],e)},t.prototype.selectNext=function(e,t,n){this.model.selectNext(e,t,n)},t.prototype.selectPrevious=function(e,t,n){this.model.selectPrevious(e,t,n)},t.prototype.selectParent=function(e,t){this.model.selectParent(e,t)},t.prototype.setFocus=function(e,t){this.model.setFocus(e,t)},t.prototype.isFocused=function(e){return this.model.isFocused(e)},t.prototype.getFocus=function(){return this.model.getFocus()},t.prototype.focusNext=function(e,t){this.model.focusNext(e,t)},t.prototype.focusPrevious=function(e,t){this.model.focusPrevious(e,t)},t.prototype.focusParent=function(e){this.model.focusParent(e)},t.prototype.focusFirstChild=function(e){this.model.focusFirstChild(e)},t.prototype.focusFirst=function(e,t){this.model.focusFirst(e,t)},t.prototype.focusNth=function(e,t){this.model.focusNth(e,t)},t.prototype.focusLast=function(e,t){this.model.focusLast(e,t)},t.prototype.focusNextPage=function(e){this.view.focusNextPage(e)},t.prototype.focusPreviousPage=function(e){this.view.focusPreviousPage(e)},t.prototype.clearFocus=function(e){this.model.setFocus(null,e)},t.prototype.addTraits=function(e,t){this.model.addTraits(e,t)},t.prototype.removeTraits=function(e,t){this.model.removeTraits(e,t)},t.prototype.toggleTrait=function(e,t){this.model.hasTrait(e,t)?this.model.removeTraits(e,[t]):this.model.addTraits(e,[t])},t.prototype.hasTrait=function(e,t){return this.model.hasTrait(e,t)},t.prototype.getNavigator=function(e,t){return new s.MappedNavigator(this.model.getNavigator(e,t),function(e){return e&&e.getElement()})},t.prototype.dispose=function(){this._onDispose.fire(),null!==this.model&&(this.model.dispose(),this.model=null),null!==this.view&&(this.view.dispose(),this.view=null),this.toDispose=u.dispose(this.toDispose),e.prototype.dispose.call(this)},t}(i.EventEmitter);t.Tree=p}),define(d[292],h([0,1,288,8,15,81,29,10,93,462,50,119,40,189,402,64,121,6,3,51,34,28,390]),function(e,t,n,i,o,r,s,a,u,l,c,d,h,p,g,m,v,_,y,b,C,w){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var S=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return f(t,e),t.prototype.onContextMenu=function(t,n,i){return o.isMacintosh?this.onLeftClick(t,n,i):e.prototype.onContextMenu.call(this,t,n,i)},t}(v.DefaultController);t.QuickOpenController=S;var E;!function(e){e[e.ELEMENT_SELECTED=0]="ELEMENT_SELECTED",e[e.FOCUS_LOST=1]="FOCUS_LOST",e[e.CANCELED=2]="CANCELED"}(E=t.HideReason||(t.HideReason={}));var L={background:C.Color.fromHex("#1E1E1E"),foreground:C.Color.fromHex("#CCCCCC"),pickerGroupForeground:C.Color.fromHex("#0097FB"),pickerGroupBorder:C.Color.fromHex("#3F3F46"),widgetShadow:C.Color.fromHex("#000000"),progressBarBackground:C.Color.fromHex("#0E70C0")},x=n.localize(0,null),N=function(){function e(e,t,n,i){this.isDisposed=!1,this.toUnbind=[],this.container=e,this.callbacks=t,this.options=n,this.styles=n||Object.create(null),w.mixin(this.styles,L,!1),this.usageLogger=i,this.model=null}return e.prototype.getElement=function(){return c.$(this.builder)},e.prototype.getModel=function(){return this.model},e.prototype.setCallbacks=function(e){this.callbacks=e},e.prototype.create=function(){var e=this;return this.builder=c.$().div(function(t){t.on(_.EventType.KEY_DOWN,function(t){9===new m.StandardKeyboardEvent(t).keyCode&&(_.EventHelper.stop(t,!0),e.hide(E.CANCELED))}).on(_.EventType.CONTEXT_MENU,function(e){return _.EventHelper.stop(e,!0)}).on(_.EventType.FOCUS,function(t){return e.gainingFocus()},null,!0).on(_.EventType.BLUR,function(t){return e.loosingFocus(t)},null,!0),e.progressBar=new g.ProgressBar(t.clone(),{progressBarBackground:e.styles.progressBarBackground}),e.progressBar.getContainer().hide(),t.div({class:"quick-open-input"},function(t){e.inputContainer=t,e.inputBox=new d.InputBox(t.getHTMLElement(),null,{placeholder:e.options.inputPlaceHolder||"",ariaLabel:x,inputBackground:e.styles.inputBackground,inputForeground:e.styles.inputForeground,inputBorder:e.styles.inputBorder,inputValidationInfoBackground:e.styles.inputValidationInfoBackground,inputValidationInfoBorder:e.styles.inputValidationInfoBorder,inputValidationWarningBackground:e.styles.inputValidationWarningBackground,inputValidationWarningBorder:e.styles.inputValidationWarningBorder,inputValidationErrorBackground:e.styles.inputValidationErrorBackground,inputValidationErrorBorder:e.styles.inputValidationErrorBorder}),e.inputElement=e.inputBox.inputElement,e.inputElement.setAttribute("role","combobox"),e.inputElement.setAttribute("aria-haspopup","false"),e.inputElement.setAttribute("aria-autocomplete","list"),_.addDisposableListener(e.inputBox.inputElement,_.EventType.KEY_DOWN,function(t){var n=new m.StandardKeyboardEvent(t),i=e.shouldOpenInBackground(n);if(2!==n.keyCode)if(18===n.keyCode||16===n.keyCode||12===n.keyCode||11===n.keyCode)_.EventHelper.stop(t,!0),e.navigateInTree(n.keyCode,n.shiftKey),e.inputBox.inputElement.selectionStart===e.inputBox.inputElement.selectionEnd&&(e.inputBox.inputElement.selectionStart=e.inputBox.value.length);else if(3===n.keyCode||i){_.EventHelper.stop(t,!0);var o=e.tree.getFocus();o&&e.elementSelected(o,t,i?u.Mode.OPEN_IN_BACKGROUND:u.Mode.OPEN)}}),_.addDisposableListener(e.inputBox.inputElement,_.EventType.INPUT,function(t){e.onType()})}),e.treeContainer=t.div({class:"quick-open-tree"},function(t){e.tree=new p.Tree(t.getHTMLElement(),{dataSource:new l.DataSource(e),controller:new S({clickBehavior:v.ClickBehavior.ON_MOUSE_UP,keyboardSupport:e.options.keyboardSupport}),renderer:e.renderer=new l.Renderer(e,e.styles),filter:new l.Filter(e),accessibilityProvider:new l.AccessibilityProvider(e)},{twistiePixels:11,indentPixels:0,alwaysFocused:!0,verticalScrollMode:b.ScrollbarVisibility.Visible,ariaLabel:n.localize(1,null),keyboardSupport:e.options.keyboardSupport}),e.treeElement=e.tree.getHTMLElement(),e.toUnbind.push(e.tree.addListener(r.EventType.FOCUS,function(t){e.elementFocused(t.focus,t)})),e.toUnbind.push(e.tree.addListener(r.EventType.SELECTION,function(t){t.selection&&t.selection.length>0&&e.elementSelected(t.selection[0],t)}))}).on(_.EventType.KEY_DOWN,function(t){var n=new m.StandardKeyboardEvent(t);e.quickNavigateConfiguration&&(18!==n.keyCode&&16!==n.keyCode&&12!==n.keyCode&&11!==n.keyCode||(_.EventHelper.stop(t,!0),e.navigateInTree(n.keyCode)))}).on(_.EventType.KEY_UP,function(t){var n=new m.StandardKeyboardEvent(t),i=n.keyCode;if(e.quickNavigateConfiguration){var o=e.quickNavigateConfiguration.keybindings;if(3===i||o.some(function(e){var t=e.getParts(),o=t[0];return!t[1]&&(o.shiftKey&&4===i?!(n.ctrlKey||n.altKey||n.metaKey):!(!o.altKey||6!==i)||(!(!o.ctrlKey||5!==i)||!(!o.metaKey||57!==i)))})){var r=e.tree.getFocus();r&&e.elementSelected(r,t)}}}).clone()}).addClass("quick-open-widget").build(this.container),this.layoutDimensions&&this.layout(this.layoutDimensions),this.applyStyles(),this.builder.getHTMLElement()},e.prototype.style=function(e){this.styles=e,this.applyStyles()},e.prototype.applyStyles=function(){if(this.builder){var e=this.styles.foreground?this.styles.foreground.toString():null,t=this.styles.background?this.styles.background.toString():null,n=this.styles.borderColor?this.styles.borderColor.toString():null,i=this.styles.widgetShadow?this.styles.widgetShadow.toString():null;this.builder.style("color",e),this.builder.style("background-color",t),this.builder.style("border-color",n),this.builder.style("border-width",n?"1px":null),this.builder.style("border-style",n?"solid":null),this.builder.style("box-shadow",i?"0 5px 8px "+i:null)}this.progressBar&&this.progressBar.style({progressBarBackground:this.styles.progressBarBackground}),this.inputBox&&this.inputBox.style({inputBackground:this.styles.inputBackground,inputForeground:this.styles.inputForeground,inputBorder:this.styles.inputBorder,inputValidationInfoBackground:this.styles.inputValidationInfoBackground,inputValidationInfoBorder:this.styles.inputValidationInfoBorder,inputValidationWarningBackground:this.styles.inputValidationWarningBackground,inputValidationWarningBorder:this.styles.inputValidationWarningBorder,inputValidationErrorBackground:this.styles.inputValidationErrorBackground,inputValidationErrorBorder:this.styles.inputValidationErrorBorder}),this.tree&&this.tree.style(this.styles),this.renderer&&this.renderer.updateStyles(this.styles)},e.prototype.shouldOpenInBackground=function(e){return 17===e.keyCode&&(!(e.metaKey||e.ctrlKey||e.shiftKey||e.altKey)&&this.inputBox.inputElement.selectionEnd===this.inputBox.value.length)},e.prototype.onType=function(){var e=this.inputBox.value;this.helpText&&(e?this.helpText.hide():this.helpText.show()),this.callbacks.onType(e)},e.prototype.navigate=function(e,t){this.isVisible()&&(!this.quickNavigateConfiguration&&t&&(this.quickNavigateConfiguration=t,this.tree.DOMFocus()),this.navigateInTree(e?18:16))},e.prototype.navigateInTree=function(e,t){var n=this.tree.getInput(),i=n?n.entries:[],o=this.tree.getFocus();switch(e){case 18:this.tree.focusNext();break;case 16:this.tree.focusPrevious();break;case 12:this.tree.focusNextPage();break;case 11:this.tree.focusPreviousPage();break;case 2:t?this.tree.focusPrevious():this.tree.focusNext()}var r=this.tree.getFocus();i.length>1&&o===r&&(16===e||2===e&&t?this.tree.focusLast():(18===e||2===e&&!t)&&this.tree.focusFirst()),(r=this.tree.getFocus())&&this.tree.reveal(r).done(null,a.onUnexpectedError)},e.prototype.elementFocused=function(e,t){if(e&&this.isVisible()){this.inputElement.setAttribute("aria-activedescendant",this.treeElement.getAttribute("aria-activedescendant"));var n={event:t,keymods:this.extractKeyMods(t),quickNavigateConfiguration:this.quickNavigateConfiguration};this.model.runner.run(e,u.Mode.PREVIEW,n)}},e.prototype.elementSelected=function(e,t,n){var i=!0;if(this.isVisible()){var o=n||u.Mode.OPEN,r={event:t,keymods:this.extractKeyMods(t),quickNavigateConfiguration:this.quickNavigateConfiguration};i=this.model.runner.run(e,o,r)}if(this.usageLogger){var s=this.model.entries.indexOf(e),a=this.model.entries.length;this.usageLogger.publicLog("quickOpenWidgetItemAccepted",{index:s,count:a,isQuickNavigate:!!this.quickNavigateConfiguration})}i&&this.hide(E.ELEMENT_SELECTED)},e.prototype.extractKeyMods=function(e){return e&&(e.ctrlKey||e.metaKey||e.payload&&e.payload.originalEvent&&(e.payload.originalEvent.ctrlKey||e.payload.originalEvent.metaKey))?[2048]:[]},e.prototype.show=function(e,t){this.visible=!0,this.isLoosingFocus=!1,this.quickNavigateConfiguration=t?t.quickNavigateConfiguration:void 0,this.quickNavigateConfiguration?(this.inputContainer.hide(),this.builder.show(),this.tree.DOMFocus()):(this.inputContainer.show(),this.builder.show(),this.inputBox.focus()),this.helpText&&(this.quickNavigateConfiguration||s.isString(e)?this.helpText.hide():this.helpText.show()),s.isString(e)?this.doShowWithPrefix(e):this.doShowWithInput(e,t&&t.autoFocus?t.autoFocus:{}),t&&t.inputSelection&&!this.quickNavigateConfiguration&&this.inputBox.select(t.inputSelection),this.callbacks.onShow&&this.callbacks.onShow()},e.prototype.doShowWithPrefix=function(e){this.inputBox.value=e,this.callbacks.onType(e)},e.prototype.doShowWithInput=function(e,t){this.setInput(e,t)},e.prototype.setInputAndLayout=function(e,t){var n=this;this.treeContainer.style({height:this.getHeight(e)+"px"}),this.tree.setInput(null).then(function(){return n.model=e,n.inputElement.setAttribute("aria-haspopup",String(e&&e.entries&&e.entries.length>0)),n.tree.setInput(e)}).done(function(){n.tree.layout(),e&&e.entries.some(function(t){return n.isElementVisible(e,t)})&&n.autoFocus(e,t)},a.onUnexpectedError)},e.prototype.isElementVisible=function(e,t){return!e.filter||e.filter.isVisible(t)},e.prototype.autoFocus=function(e,t){var n=this;void 0===t&&(t={});var i=e.entries.filter(function(t){return n.isElementVisible(e,t)});if(t.autoFocusPrefixMatch){for(var o=void 0,r=void 0,s=t.autoFocusPrefixMatch,u=s.toLowerCase(),l=0;lt.autoFocusIndex&&(this.tree.focusNth(t.autoFocusIndex),this.tree.reveal(this.tree.getFocus()).done(null,a.onUnexpectedError)):t.autoFocusSecondEntry?i.length>1&&this.tree.focusNth(1):t.autoFocusLastEntry&&i.length>1&&this.tree.focusLast()},e.prototype.refresh=function(e,t){var n=this;this.isVisible()&&(this.treeContainer.style({height:this.getHeight(e)+"px"}),this.tree.refresh().done(function(){n.tree.layout(),t&&e&&e.entries.some(function(t){return n.isElementVisible(e,t)})&&n.autoFocus(e,t)},a.onUnexpectedError))},e.prototype.getHeight=function(t){var n=this,i=t.renderer;if(!t){var o=i.getHeight(null);return this.options.minItemsToShow?this.options.minItemsToShow*o:0}var r,s=0;this.layoutDimensions&&this.layoutDimensions.height&&(r=.4*(this.layoutDimensions.height-50)),(!r||r>e.MAX_ITEMS_HEIGHT)&&(r=e.MAX_ITEMS_HEIGHT);for(var a=t.entries.filter(function(e){return n.isElementVisible(t,e)}),u=this.options.maxItemsToShow||a.length,l=0;l=2?(S=v?g.Large:g.LargeBlocks,k=2/y):(S=v?g.Small:g.SmallBlocks,k=1/y),(E=Math.max(0,Math.floor((T-d)*k/(l+k))))/k>_&&(E=Math.floor(_*k)),L=T-E}else E=0,S=g.None,L=T;var I=Math.max(1,Math.floor((L-d)/l)),D=h?p:0;return{width:t,height:n,glyphMarginLeft:0,glyphMarginWidth:w,glyphMarginHeight:n,lineNumbersLeft:x,lineNumbersWidth:b,lineNumbersHeight:n,decorationsLeft:N,decorationsWidth:u,decorationsHeight:n,contentLeft:M,contentWidth:L,contentHeight:n,renderMinimap:S,minimapWidth:E,viewportColumn:I,verticalScrollbarWidth:d,horizontalScrollbarHeight:f,overviewRuler:{top:D,width:d,height:n-2*D,right:0}}},e}();t.EditorLayoutProvider=S;t.EDITOR_FONT_DEFAULTS={fontFamily:i.isMacintosh?"Menlo, Monaco, 'Courier New', monospace":i.isLinux?"'Droid Sans Mono', 'Courier New', monospace, 'Droid Sans Fallback'":"Consolas, 'Courier New', monospace",fontWeight:"normal",fontSize:i.isMacintosh?12:14,lineHeight:0,letterSpacing:0},t.EDITOR_MODEL_DEFAULTS={tabSize:4,insertSpaces:!0,detectIndentation:!0,trimAutoWhitespace:!0},t.EDITOR_DEFAULTS={inDiffEditor:!1,wordSeparators:r.USUAL_WORD_SEPARATORS,lineNumbersMinChars:5,lineDecorationsWidth:10,readOnly:!1,mouseStyle:"text",disableLayerHinting:!1,automaticLayout:!1,wordWrap:"off",wordWrapColumn:80,wordWrapMinified:!0,wrappingIndent:m.Same,wordWrapBreakBeforeCharacters:"([{‘“〈《「『【〔([{「£¥$£¥++",wordWrapBreakAfterCharacters:" \t})]?|&,;¢°′″‰℃、。。、¢,.:;?!%・・ゝゞヽヾーァィゥェォッャュョヮヵヶぁぃぅぇぉっゃゅょゎゕゖㇰㇱㇲㇳㇴㇵㇶㇷㇸㇹㇺㇻㇼㇽㇾㇿ々〻ァィゥェォャュョッー”〉》」』】〕)]}」",wordWrapBreakObtrusiveCharacters:".",autoClosingBrackets:!0,autoIndent:!0,dragAndDrop:!0,emptySelectionClipboard:!0,useTabStops:!0,multiCursorModifier:"altKey",accessibilitySupport:"auto",viewInfo:{extraEditorClassName:"",disableMonospaceOptimizations:!1,rulers:[],ariaLabel:n.localize(1,null),renderLineNumbers:!0,renderCustomLineNumbers:null,renderRelativeLineNumbers:!1,selectOnLineNumbers:!0,glyphMargin:!0,revealHorizontalRightPadding:30,roundedSelection:!0,overviewRulerLanes:2,overviewRulerBorder:!0,cursorBlinking:v.Blink,mouseWheelZoom:!1,cursorStyle:y.Line,hideCursorInOverviewRuler:!1,scrollBeyondLastLine:!0,stopRenderingLineAfter:1e4,renderWhitespace:"none",renderControlCharacters:!1,fontLigatures:!1,renderIndentGuides:!0,renderLineHighlight:"line",scrollbar:{vertical:o.ScrollbarVisibility.Auto,horizontal:o.ScrollbarVisibility.Auto,arrowSize:11,useShadows:!0,verticalHasArrows:!1,horizontalHasArrows:!1,horizontalScrollbarSize:10,horizontalSliderSize:10,verticalScrollbarSize:14,verticalSliderSize:14,handleMouseWheel:!0,mouseWheelScrollSensitivity:1},minimap:{enabled:!0,showSlider:"mouseover",renderCharacters:!0,maxColumn:120},fixedOverflowWidgets:!1},contribInfo:{selectionClipboard:!0,hover:!0,links:!0,contextmenu:!0,quickSuggestions:{other:!0,comments:!1,strings:!1},quickSuggestionsDelay:10,parameterHints:!0,iconsInSuggestions:!0,formatOnType:!1,formatOnPaste:!1,suggestOnTriggerCharacters:!0,acceptSuggestionOnEnter:"on",acceptSuggestionOnCommitCharacter:!0,snippetSuggestions:"inline",wordBasedSuggestions:!0,suggestFontSize:0,suggestLineHeight:0,selectionHighlight:!0,occurrencesHighlight:!0,codeLens:!0,folding:!0,showFoldingControls:"mouseover",matchBrackets:!0,find:{seedSearchStringFromSelection:!0,autoFindInSelection:!1}}}}),define(d[122],h([0,1,15,111,49]),function(e,t,n,i,o){"use strict";function r(e,t){if("number"==typeof e)return e;var n=parseFloat(e);return isNaN(n)?t:n}function s(e,t){if("number"==typeof e)return Math.round(e);var n=parseInt(e);return isNaN(n)?t:n}function a(e,t,n){return en?n:e}function u(e,t){return"string"!=typeof e?t:e}Object.defineProperty(t,"__esModule",{value:!0});var l=n.isMacintosh?1.5:1.35,c=function(){function e(e){this.zoomLevel=e.zoomLevel,this.fontFamily=String(e.fontFamily),this.fontWeight=String(e.fontWeight),this.fontSize=e.fontSize,this.lineHeight=0|e.lineHeight,this.letterSpacing=e.letterSpacing}return e.createFromRawSettings=function(t,n){var c=u(t.fontFamily,o.EDITOR_FONT_DEFAULTS.fontFamily),d=u(t.fontWeight,o.EDITOR_FONT_DEFAULTS.fontWeight),h=r(t.fontSize,o.EDITOR_FONT_DEFAULTS.fontSize);0===(h=a(h,0,100))?h=o.EDITOR_FONT_DEFAULTS.fontSize:h<8&&(h=8);var p=s(t.lineHeight,0);0===(p=a(p,0,150))?p=Math.round(l*h):p<8&&(p=8);var f=r(t.letterSpacing,0);f=a(f,-20,20);var g=1+.1*i.EditorZoom.getZoomLevel();return h*=g,p*=g,new e({zoomLevel:n,fontFamily:c,fontWeight:d,fontSize:h,lineHeight:p,letterSpacing:f})},e.prototype.getId=function(){return this.zoomLevel+"-"+this.fontFamily+"-"+this.fontWeight+"-"+this.fontSize+"-"+this.lineHeight+"-"+this.letterSpacing},e}();t.BareFontInfo=c;var d=function(e){function t(t,n){var i=e.call(this,t)||this;return i.isTrusted=n,i.isMonospace=t.isMonospace,i.typicalHalfwidthCharacterWidth=t.typicalHalfwidthCharacterWidth,i.typicalFullwidthCharacterWidth=t.typicalFullwidthCharacterWidth,i.spaceWidth=t.spaceWidth,i.maxDigitWidth=t.maxDigitWidth,i}return f(t,e),t.prototype.equals=function(e){return this.fontFamily===e.fontFamily&&this.fontWeight===e.fontWeight&&this.fontSize===e.fontSize&&this.lineHeight===e.lineHeight&&this.letterSpacing===e.letterSpacing&&this.typicalHalfwidthCharacterWidth===e.typicalHalfwidthCharacterWidth&&this.typicalFullwidthCharacterWidth===e.typicalFullwidthCharacterWidth&&this.spaceWidth===e.spaceWidth&&this.maxDigitWidth===e.maxDigitWidth},t}(c);t.FontInfo=d}),define(d[92],h([0,1,38,9,12,2,21,102,212,49,98,217,184,104,52]),function(e,t,n,i,o,r,s,a,u,l,c,d,h,p,f){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.LONG_LINE_BOUNDARY=1e4;var g=function(){function e(t,i){this._eventEmitter=new n.OrderGuaranteeEventEmitter;var o=e.resolveCreationData(t,i);this._shouldSimplifyMode=o.text.length>e.MODEL_SYNC_LIMIT,this._shouldDenyMode=o.text.length>e.MODEL_TOKENIZATION_LIMIT,this._options=new s.TextModelResolvedOptions(o.options),this._constructLines(o.text),this._setVersionId(1),this._isDisposed=!1,this._isDisposing=!1}return e.createFromString=function(t,n){return void 0===n&&(n=e.DEFAULT_CREATION_OPTIONS),new e(p.RawTextSource.fromString(t),n)},e.resolveCreationData=function(e,t){var n,i=p.TextSource.fromRawTextSource(e,t.defaultEOL);if(t.detectIndentation){var o=u.guessIndentation(i.lines,t.tabSize,t.insertSpaces);n=new s.TextModelResolvedOptions({tabSize:o.tabSize,insertSpaces:o.insertSpaces,trimAutoWhitespace:t.trimAutoWhitespace,defaultEOL:t.defaultEOL})}else n=new s.TextModelResolvedOptions({tabSize:t.tabSize,insertSpaces:t.insertSpaces,trimAutoWhitespace:t.trimAutoWhitespace,defaultEOL:t.defaultEOL});return{text:i,options:n}},e.prototype.addBulkListener=function(e){return this._eventEmitter.addBulkListener(e)},e.prototype._assertNotDisposed=function(){if(this._isDisposed)throw new Error("Model is disposed!")},e.prototype.isTooLargeForHavingAMode=function(){return this._assertNotDisposed(),this._shouldDenyMode},e.prototype.isTooLargeForHavingARichMode=function(){return this._assertNotDisposed(),this._shouldSimplifyMode},e.prototype.getOptions=function(){return this._assertNotDisposed(),this._options},e.prototype.updateOptions=function(e){this._assertNotDisposed();var t=void 0!==e.tabSize?e.tabSize:this._options.tabSize,n=void 0!==e.insertSpaces?e.insertSpaces:this._options.insertSpaces,i=void 0!==e.trimAutoWhitespace?e.trimAutoWhitespace:this._options.trimAutoWhitespace,o=new s.TextModelResolvedOptions({tabSize:t,insertSpaces:n,defaultEOL:this._options.defaultEOL,trimAutoWhitespace:i});if(!this._options.equals(o)){var r=this._options.createChangeEvent(o);if(this._options=o,r.tabSize)for(var a=this._options.tabSize,u=0,l=this._lines.length;u=t.LONG_LINE_BOUNDARY?r+=i:o+=i;return r>o},e.prototype.getLineCount=function(){return this._assertNotDisposed(),this._lines.length},e.prototype.getLineContent=function(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new Error("Illegal value "+e+" for `lineNumber`");return this._lines[e-1].text},e.prototype.getIndentLevel=function(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new Error("Illegal value "+e+" for `lineNumber`");return this._lines[e-1].getIndentLevel()},e.prototype._resetIndentRanges=function(){this._indentRanges=null},e.prototype._getIndentRanges=function(){return this._indentRanges||(this._indentRanges=d.computeRanges(this)),this._indentRanges},e.prototype.getIndentRanges=function(){this._assertNotDisposed();var e=this._getIndentRanges();return d.IndentRange.deepCloneArr(e)},e.prototype._toValidLineIndentGuide=function(e,t){var n=this._lines[e-1].getIndentLevel();if(-1===n)return t;var i=Math.ceil(n/this._options.tabSize);return Math.min(i,t)},e.prototype.getLineIndentGuide=function(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new Error("Illegal value "+e+" for `lineNumber`");for(var t=this._getIndentRanges(),n=t.length-1;n>=0;n--){var i=t[n];if(i.startLineNumber===e)return this._toValidLineIndentGuide(e,Math.ceil(i.indent/this._options.tabSize));if(i.startLineNumber0;)(i=t[--n]).endLineNumber+1===e&&(o=i.indent);return this._toValidLineIndentGuide(e,Math.ceil(o/this._options.tabSize))}}return 0},e.prototype.getLinesContent=function(){this._assertNotDisposed();for(var e=[],t=0,n=this._lines.length;tthis.getLineCount())throw new Error("Illegal value "+e+" for `lineNumber`");return this._lines[e-1].text.length+1},e.prototype.getLineFirstNonWhitespaceColumn=function(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new Error("Illegal value "+e+" for `lineNumber`");var t=i.firstNonWhitespaceIndex(this._lines[e-1].text);return-1===t?0:t+1},e.prototype.getLineLastNonWhitespaceColumn=function(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new Error("Illegal value "+e+" for `lineNumber`");var t=i.lastNonWhitespaceIndex(this._lines[e-1].text);return-1===t?0:t+2},e.prototype.validateLineNumber=function(e){return this._assertNotDisposed(),e<1&&(e=1),e>this._lines.length&&(e=this._lines.length),e},e.prototype._validatePosition=function(e,t,n){var r=Math.floor("number"==typeof e?e:1),s=Math.floor("number"==typeof t?t:1);if(r<1)return new o.Position(1,1);if(r>this._lines.length)return new o.Position(this._lines.length,this.getLineMaxColumn(this._lines.length));if(s<=1)return new o.Position(r,1);var a=this.getLineMaxColumn(r);if(s>=a)return new o.Position(r,a);if(n){var u=this._lines[r-1].text.charCodeAt(s-2);if(i.isHighSurrogate(u))return new o.Position(r,s-1)}return new o.Position(r,s)},e.prototype.validatePosition=function(e){return this._assertNotDisposed(),this._validatePosition(e.lineNumber,e.column,!0)},e.prototype.validateRange=function(e){this._assertNotDisposed();var t=this._validatePosition(e.startLineNumber,e.startColumn,!1),n=this._validatePosition(e.endLineNumber,e.endColumn,!1),o=t.lineNumber,s=t.column,a=n.lineNumber,u=n.column,l=this._lines[o-1].text,c=this._lines[a-1].text,d=s>1?l.charCodeAt(s-2):0,h=u>1&&u<=c.length?c.charCodeAt(u-2):0,p=i.isHighSurrogate(d),f=i.isHighSurrogate(h);return p||f?o===a&&s===u?new r.Range(o,s-1,a,u-1):p&&f?new r.Range(o,s-1,a,u+1):p?new r.Range(o,s-1,a,u):new r.Range(o,s,a,u+1):new r.Range(o,s,a,u)},e.prototype.modifyPosition=function(e,t){return this._assertNotDisposed(),this.getPositionAt(this.getOffsetAt(e)+t)},e.prototype.getFullModelRange=function(){this._assertNotDisposed();var e=this.getLineCount();return new r.Range(1,1,e,this.getLineMaxColumn(e))},e.prototype._emitModelRawContentChangedEvent=function(e){this._isDisposing||this._eventEmitter.emit(f.TextModelEventType.ModelRawContentChanged2,e)},e.prototype._constructLines=function(e){for(var t=this._options.tabSize,n=e.lines,i=[],o=0,r=n.length;ot.endLineNumber||i.lineNumber===t.endLineNumber&&i.column>t.endColumn?new c(e.selectionStart,e.selectionStartLeftoverVisibleColumns,new n.Position(t.endLineNumber,t.endColumn),0):null},e.prototype.equals=function(e){return this.viewState.equals(e.viewState)&&this.modelState.equals(e.viewState)},e}();t.CursorState=h;var p=function(){return function(e,t){this.commands=e,this.shouldPushStackElementBefore=t.shouldPushStackElementBefore,this.shouldPushStackElementAfter=t.shouldPushStackElementAfter}}();t.EditOperationResult=p;var f=function(){function e(){}return e.isLowSurrogate=function(e,t,n){var o=e.getLineContent(t);return!(n<0||n>=o.length)&&i.isLowSurrogate(o.charCodeAt(n))},e.isHighSurrogate=function(e,t,n){var o=e.getLineContent(t);return!(n<0||n>=o.length)&&i.isHighSurrogate(o.charCodeAt(n))},e.isInsideSurrogatePair=function(e,t,n){return this.isHighSurrogate(e,t,n-2)},e.visibleColumnFromColumn=function(e,t,n){var i=e.length;i>t-1&&(i=t-1);for(var o=0,r=0;r=t)return s-ts?s:o},e.nextTabStop=function(e,t){return e+t-e%t},e.prevTabStop=function(e,t){return e-1-(e-1)%t},e}();t.CursorColumns=f}),define(d[183],h([0,1,9,37,2,22,43]),function(e,t,n,i,o,r,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var a=function(){function e(e,t){this._opts=t,this._selection=e,this._useLastEditRangeForCursorEndPosition=!1,this._selectionStartColumnStaysPut=!1}return e.unshiftIndentCount=function(e,t,n){var o=i.CursorColumns.visibleColumnFromColumn(e,t,n);return i.CursorColumns.prevTabStop(o,n)/n},e.shiftIndentCount=function(e,t,n){var o=i.CursorColumns.visibleColumnFromColumn(e,t,n);return i.CursorColumns.nextTabStop(o,n)/n},e.prototype._addEditOperation=function(e,t,n){this._useLastEditRangeForCursorEndPosition?e.addTrackedEditOperation(t,n):e.addEditOperation(t,n)},e.prototype.getEditOperations=function(t,r){var a=this._selection.startLineNumber,u=this._selection.endLineNumber;1===this._selection.endColumn&&a!==u&&(u-=1);var l=this._opts.tabSize,c=this._opts.oneIndent,d=a===u;if(this._selection.isEmpty()&&/^\s*$/.test(t.getLineContent(a))&&(this._useLastEditRangeForCursorEndPosition=!0),this._opts.useTabStops)for(var h=["",c],p=0,f=0,g=a;g<=u;g++,p=f){f=0;var m=t.getLineContent(g),v=n.firstNonWhitespaceIndex(m);if((!this._opts.isUnshift||0!==m.length&&0!==v)&&(d||this._opts.isUnshift||0!==m.length)){if(-1===v&&(v=m.length),g>1&&i.CursorColumns.visibleColumnFromColumn(m,v+1,l)%l!=0){var _=s.LanguageConfigurationRegistry.getRawEnterActionAtPosition(t,g-1,t.getLineMaxColumn(g-1));if(_){if(f=p,_.appendText)for(var y=0,b=_.appendText.length;ya,d=s>u,h=su)continue;if(ys)continue;if(_1&&o--,this.columnSelect(e,t,n.selection,i,o)},e.columnSelectRight=function(e,t,i,r,s){for(var a=0,u=Math.min(i.position.lineNumber,r),l=Math.max(i.position.lineNumber,r),c=u;c<=l;c++){var d=t.getLineMaxColumn(c),h=o.CursorColumns.visibleColumnFromColumn2(e,t,new n.Position(c,d));a=Math.max(a,h)}return st.getLineCount()&&(o=t.getLineCount()),this.columnSelect(e,t,n.selection,o,r)},e}();t.ColumnSelection=r}),define(d[182],h([0,1,37,12,2]),function(e,t,n,i,o){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(e,t,n){this.lineNumber=e,this.column=t,this.leftoverVisibleColumns=n}}();t.CursorPosition=r;var s=function(){function e(){}return e.left=function(e,t,i,o){return o>t.getLineMinColumn(i)?n.CursorColumns.isLowSurrogate(t,i,o-2)?o-=2:o-=1:i>1&&(i-=1,o=t.getLineMaxColumn(i)),new r(i,o,0)},e.moveLeft=function(t,n,i,o,r){var s,a;if(i.hasSelection()&&!o)s=i.selection.startLineNumber,a=i.selection.startColumn;else{var u=e.left(t,n,i.position.lineNumber,i.position.column-(r-1));s=u.lineNumber,a=u.column}return i.move(o,s,a,0)},e.right=function(e,t,i,o){return oc?(i=c,u?o=t.getLineMaxColumn(i):(o=Math.min(t.getLineMaxColumn(i),o),n.CursorColumns.isInsideSurrogatePair(t,i,o)&&(o-=1))):(o=n.CursorColumns.columnFromVisibleColumn2(e,t,i,l),n.CursorColumns.isInsideSurrogatePair(t,i,o)&&(o-=1)),s=l-n.CursorColumns.visibleColumnFromColumn(t.getLineContent(i),o,e.tabSize),new r(i,o,s)},e.moveDown=function(t,n,i,o,r){var s,a;i.hasSelection()&&!o?(s=i.selection.endLineNumber,a=i.selection.endColumn):(s=i.position.lineNumber,a=i.position.column);var u=e.down(t,n,s,a,i.leftoverVisibleColumns,r,!0);return i.move(o,u.lineNumber,u.column,u.leftoverVisibleColumns)},e.translateDown=function(t,r,s){var a=s.selection,u=e.down(t,r,a.selectionStartLineNumber,a.selectionStartColumn,s.selectionStartLeftoverVisibleColumns,1,!1),l=e.down(t,r,a.positionLineNumber,a.positionColumn,s.leftoverVisibleColumns,1,!1);return new n.SingleCursorState(new o.Range(u.lineNumber,u.column,u.lineNumber,u.column),u.leftoverVisibleColumns,new i.Position(l.lineNumber,l.column),l.leftoverVisibleColumns)},e.up=function(e,t,i,o,s,a,u){var l=n.CursorColumns.visibleColumnFromColumn(t.getLineContent(i),o,e.tabSize)+s;return i-=a,i<1?(i=1,u?o=t.getLineMinColumn(i):(o=Math.min(t.getLineMaxColumn(i),o),n.CursorColumns.isInsideSurrogatePair(t,i,o)&&(o-=1))):(o=n.CursorColumns.columnFromVisibleColumn2(e,t,i,l),n.CursorColumns.isInsideSurrogatePair(t,i,o)&&(o-=1)),s=l-n.CursorColumns.visibleColumnFromColumn(t.getLineContent(i),o,e.tabSize),new r(i,o,s)},e.moveUp=function(t,n,i,o,r){var s,a;i.hasSelection()&&!o?(s=i.selection.startLineNumber,a=i.selection.startColumn):(s=i.position.lineNumber,a=i.position.column);var u=e.up(t,n,s,a,i.leftoverVisibleColumns,r,!0);return i.move(o,u.lineNumber,u.column,u.leftoverVisibleColumns)},e.translateUp=function(t,r,s){var a=s.selection,u=e.up(t,r,a.selectionStartLineNumber,a.selectionStartColumn,s.selectionStartLeftoverVisibleColumns,1,!1),l=e.up(t,r,a.positionLineNumber,a.positionColumn,s.leftoverVisibleColumns,1,!1);return new n.SingleCursorState(new o.Range(u.lineNumber,u.column,u.lineNumber,u.column),u.leftoverVisibleColumns,new i.Position(l.lineNumber,l.column),l.leftoverVisibleColumns)},e.moveToBeginningOfLine=function(e,t,n,i){var o,r=n.position.lineNumber,s=t.getLineMinColumn(r),a=t.getLineFirstNonWhitespaceColumn(r)||s;return o=n.position.column===a?s:a,n.move(i,r,o,0)},e.moveToEndOfLine=function(e,t,n,i){var o=n.position.lineNumber,r=t.getLineMaxColumn(o);return n.move(i,o,r,0)},e.moveToBeginningOfBuffer=function(e,t,n,i){return n.move(i,1,1,0)},e.moveToEndOfBuffer=function(e,t,n,i){var o=t.getLineCount(),r=t.getLineMaxColumn(o);return n.move(i,o,r,0)},e}();t.MoveOperations=s}),define(d[181],h([0,1,74,37,2,182,9]),function(e,t,n,i,o,r,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var a=function(){function e(){}return e.deleteRight=function(e,t,i){for(var s=[],a=!1,u=0,l=i.length;u1){var g=t.getLineContent(f.lineNumber),m=s.firstNonWhitespaceIndex(g),v=-1===m?g.length+1:m+1;if(f.column<=v){var _=i.CursorColumns.visibleColumnFromColumn2(e,t,f),y=i.CursorColumns.prevTabStop(_,e.tabSize),b=i.CursorColumns.columnFromVisibleColumn2(e,t,f.lineNumber,y);p=new o.Range(f.lineNumber,b,f.lineNumber,f.column)}else p=new o.Range(f.lineNumber,f.column-1,f.lineNumber,f.column)}else{var C=r.MoveOperations.left(e,t,f.lineNumber,f.column);p=new o.Range(C.lineNumber,C.column,f.lineNumber,f.column)}}p.isEmpty()?u[c]=null:(p.startLineNumber!==p.endLineNumber&&(l=!0),u[c]=new n.ReplaceCommand(p,""))}return[l,u]},e.cut=function(e,t,r){for(var s=[],a=0,u=r.length;a1?(d=c.lineNumber-1,h=t.getLineMaxColumn(c.lineNumber-1),p=c.lineNumber,f=t.getLineMaxColumn(c.lineNumber)):(d=c.lineNumber,h=1,p=c.lineNumber,f=t.getLineMaxColumn(c.lineNumber));var g=new o.Range(d,h,p,f);g.isEmpty()?s[a]=null:s[a]=new n.ReplaceCommand(g,"")}else s[a]=null;else s[a]=new n.ReplaceCommand(l,"")}return new i.EditOperationResult(s,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!0})},e}();t.DeleteOperations=a}),define(d[123],h([0,1,10,74,37,2,9,183,43,58,223,90]),function(e,t,n,i,o,r,s,a,u,l,c,d){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var h=function(){function e(){}return e.indent=function(e,t,n){for(var i=[],o=0,r=n.length;o=0?c.setEndPosition(c.endLineNumber,Math.max(c.endColumn,L+1)):c.setEndPosition(c.endLineNumber,n.getLineMaxColumn(c.endLineNumber)),a)return new i.ReplaceCommandWithoutChangingPosition(c,S+t.normalizeIndentation(_.afterEnter),!0);var x=0;return w<=L+1&&(t.insertSpaces||(C=Math.ceil(C/t.tabSize)),x=Math.min(C+1-t.normalizeIndentation(_.afterEnter).length-1,0)),new i.ReplaceCommandWithOffsetCursorState(c,S+t.normalizeIndentation(_.afterEnter),0,x,!0)}return e._typeCommand(c,"\n"+t.normalizeIndentation(b),a)},e._runAutoIndentType=function(t,n,i,o){var s=u.LanguageConfigurationRegistry.getIndentationAtPosition(n,i.startLineNumber,i.startColumn),a=u.LanguageConfigurationRegistry.getIndentActionForType(n,i,o,{shiftIndent:function(n){return e.shiftIndent(t,n)},unshiftIndent:function(n){return e.unshiftIndent(t,n)}});if(null===a)return null;if(a!==t.normalizeIndentation(s)){var l=n.getLineFirstNonWhitespaceColumn(i.startLineNumber);return 0===l?e._typeCommand(new r.Range(i.startLineNumber,0,i.endLineNumber,i.endColumn),t.normalizeIndentation(a)+o,!1):e._typeCommand(new r.Range(i.startLineNumber,0,i.endLineNumber,i.endColumn),t.normalizeIndentation(a)+n.getLineContent(i.startLineNumber).substring(l-1,i.startColumn-1)+o,!1)}return null},e._isAutoClosingCloseCharType=function(e,t,n,i){if(!e.autoClosingBrackets||!e.autoClosingPairsClose.hasOwnProperty(i))return!1;for(var o=0,r=n.length;o1){var h=d.getMapForWordSeparators(e.wordSeparators),p=c.charCodeAt(l.column-2);if(0===h.get(p))return!1}var f=c.charAt(l.column-1);if(f){var g=e.autoClosingPairsOpen[o]===o,m=!1;for(var v in e.autoClosingPairsClose){var _=e.autoClosingPairsOpen[v]===v;if((g||!_)&&f===v){m=!0;break}}if(!m&&!/\s/.test(f))return!1}t.forceTokenization(l.lineNumber);var y=t.getLineTokens(l.lineNumber),b=!1;try{b=u.LanguageConfigurationRegistry.shouldAutoClosePair(o,y,l.column)}catch(e){n.onUnexpectedError(e)}if(!b)return!1}return!0},e._runAutoClosingOpenCharType=function(e,t,n,r){for(var s=[],a=0,u=n.length;a=0;o--){var r=e.charCodeAt(o),s=t.get(r);if(0===s){if(2===i)return this._createWord(e,i,o+1,this._findEndOfWord(e,t,i,o+1));i=1}else if(2===s){if(1===i)return this._createWord(e,i,o+1,this._findEndOfWord(e,t,i,o+1));i=2}else if(1===s&&0!==i)return this._createWord(e,i,o+1,this._findEndOfWord(e,t,i,o+1))}return 0!==i?this._createWord(e,i,0,this._findEndOfWord(e,t,i,0)):null},e._findEndOfWord=function(e,t,n,i){for(var o=e.length,r=i;r=0;o--){var r=e.charCodeAt(o),s=t.get(r);if(1===s)return o+1;if(1===n&&2===s)return o+1;if(2===n&&0===s)return o+1}return 0},e.moveWordLeft=function(t,n,o,r){var s=o.lineNumber,a=o.column;1===a&&s>1&&(s-=1,a=n.getLineMaxColumn(s));var u=e._findPreviousWordOnLine(t,n,new i.Position(s,a));return 0===r?a=u?u.start+1:1:(u&&a<=u.end+1&&(u=e._findPreviousWordOnLine(t,n,new i.Position(s,u.start+1))),a=u?u.end+1:1),new i.Position(s,a)},e.moveWordRight=function(t,n,o,r){var s=o.lineNumber,a=o.column;a===n.getLineMaxColumn(s)&&s=u.start+1&&(u=e._findNextWordOnLine(t,n,new i.Position(s,u.end+1))),a=u?u.start+1:n.getLineMaxColumn(s)),new i.Position(s,a)},e._deleteWordLeftWhitespace=function(e,t){var n=e.getLineContent(t.lineNumber),i=t.column-2,o=r.lastNonWhitespaceIndex(n,i);return o+11?c=1:(l--,c=n.getLineMaxColumn(l)):(h&&c<=h.end+1&&(h=e._findPreviousWordOnLine(t,n,new i.Position(l,h.start+1))),h?c=h.end+1:c>1?c=1:(l--,c=n.getLineMaxColumn(l))),new s.Range(l,c,u.lineNumber,u.column)},e._findFirstNonWhitespaceChar=function(e,t){for(var n=e.length,i=t;i=f.start+1&&(f=e._findNextWordOnLine(t,n,new i.Position(l,f.end+1))),f?c=f.start+1:cc&&(d=c,h=e.model.getLineMaxColumn(d)),n.CursorState.fromModelState(new n.SingleCursorState(new o.Range(u.lineNumber,1,d,h),0,new i.Position(d,h),0))}var p=t.modelState.selectionStart.getStartPosition().lineNumber;if(u.lineNumberp){var c=e.viewModel.getLineCount(),f=l.lineNumber+1,g=1;return f>c&&(f=c,g=e.viewModel.getLineMaxColumn(f)),n.CursorState.fromViewState(t.viewState.move(t.modelState.hasSelection(),f,g,0))}var m=t.modelState.selectionStart.getEndPosition();return n.CursorState.fromModelState(t.modelState.move(t.modelState.hasSelection(),m.lineNumber,m.column,0))},e.word=function(e,t,i,o){var r=e.model.validatePosition(o);return n.CursorState.fromModelState(s.WordOperations.word(e.config,e.model,t.modelState,i,r))},e.cancelSelection=function(e,t){if(!t.modelState.hasSelection())return new n.CursorState(t.modelState,t.viewState);var r=t.viewState.position.lineNumber,s=t.viewState.position.column;return n.CursorState.fromViewState(new n.SingleCursorState(new o.Range(r,s,r,s),0,new i.Position(r,s),0))},e.moveTo=function(e,t,o,r,s){var a=e.model.validatePosition(r),u=s?e.validateViewPosition(new i.Position(s.lineNumber,s.column),a):e.convertModelPositionToViewPosition(a);return n.CursorState.fromViewState(t.viewState.move(o,u.lineNumber,u.column,0))},e.move=function(e,t,n){var i=n.select,o=n.value;switch(n.direction){case 0:return 4===n.unit?this._moveHalfLineLeft(e,t,i):this._moveLeft(e,t,i,o);case 1:return 4===n.unit?this._moveHalfLineRight(e,t,i):this._moveRight(e,t,i,o);case 2:return 2===n.unit?this._moveUpByViewLines(e,t,i,o):this._moveUpByModelLines(e,t,i,o);case 3:return 2===n.unit?this._moveDownByViewLines(e,t,i,o):this._moveDownByModelLines(e,t,i,o);case 4:return this._moveToViewMinColumn(e,t,i);case 5:return this._moveToViewFirstNonWhitespaceColumn(e,t,i);case 6:return this._moveToViewCenterColumn(e,t,i);case 7:return this._moveToViewMaxColumn(e,t,i);case 8:return this._moveToViewLastNonWhitespaceColumn(e,t,i);case 9:var r=t[0],s=e.getCompletelyVisibleModelRange(),a=this._firstLineNumberInRange(e.model,s,o),u=e.model.getLineFirstNonWhitespaceColumn(a);return[this._moveToModelPosition(e,r,i,a,u)];case 11:var r=t[0],s=e.getCompletelyVisibleModelRange(),a=this._lastLineNumberInRange(e.model,s,o),u=e.model.getLineFirstNonWhitespaceColumn(a);return[this._moveToModelPosition(e,r,i,a,u)];case 10:var r=t[0],s=e.getCompletelyVisibleModelRange(),a=Math.round((s.startLineNumber+s.endLineNumber)/2),u=e.model.getLineFirstNonWhitespaceColumn(a);return[this._moveToModelPosition(e,r,i,a,u)];case 12:for(var l=e.getCompletelyVisibleViewRange(),c=[],d=0,h=t.length;di.endLineNumber-1&&(r=i.endLineNumber-1),rn)for(var r=t-n,o=0;o=e+1&&this.lastAddedCursorIndex--,this.secondaryCursors[e].dispose(this.context),this.secondaryCursors.splice(e,1)},e.prototype._getAll=function(){var e=[];e[0]=this.primaryCursor;for(var t=0,n=this.secondaryCursors.length;tp&&t[S].index--;e.splice(p,1),t.splice(h,1),this._removeSecondaryCursor(p-1),s--}}}},e}();t.CursorCollection=r}),define(d[309],h([0,1,9,2,22,43,183,254,58]),function(e,t,n,i,o,r,s,a,u){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var l=function(){function e(e,t,n){this._selection=e,this._isMovingDown=t,this._autoIndent=n,this._moveEndLineSelectionShrink=!1}return e.prototype.getEditOperations=function(e,t){var s=e.getLineCount();if((!this._isMovingDown||this._selection.endLineNumber!==s)&&(this._isMovingDown||1!==this._selection.startLineNumber)){this._moveEndPositionDown=!1;var u=this._selection;u.startLineNumber=u.startLineNumber+1&&t<=u.endLineNumber+1?e.getLineContent(t-1):e.getLineContent(t)};var S=r.LanguageConfigurationRegistry.getGoodIndentForLine(h,e.getLanguageIdAtPosition(g,1),u.startLineNumber+1,d);if(null!==S){y=n.getLeadingWhitespace(e.getLineContent(u.startLineNumber));if((b=a.getSpaceCnt(S,l))!==(N=a.getSpaceCnt(y,l))){M=b-N;this.getIndentEditsOfMovingBlock(e,t,u,l,c,M)}}}}else t.addEditOperation(new i.Range(u.startLineNumber,1,u.startLineNumber,1),v+"\n")}else if(g=u.startLineNumber-1,m=e.getLineContent(g),t.addEditOperation(new i.Range(g,1,g+1,1),null),t.addEditOperation(new i.Range(u.endLineNumber,e.getLineMaxColumn(u.endLineNumber),u.endLineNumber,e.getLineMaxColumn(u.endLineNumber)),"\n"+m),this.isAutoIndent(e,u)){h.getLineContent=function(t){return t===g?e.getLineContent(u.startLineNumber):e.getLineContent(t)};var E=this.matchEnterRule(e,u.startLineNumber-2,u.startLineNumber,d,l);if(null!==E)0!==E&&this.getIndentEditsOfMovingBlock(e,t,u,l,c,E);else{var L=r.LanguageConfigurationRegistry.getGoodIndentForLine(h,e.getLanguageIdAtPosition(u.startLineNumber,1),g,d);if(null!==L){var x=n.getLeadingWhitespace(e.getLineContent(u.startLineNumber)),b=a.getSpaceCnt(L,l),N=a.getSpaceCnt(x,l);if(b!==N){var M=b-N;this.getIndentEditsOfMovingBlock(e,t,u,l,c,M)}}}}}this._selectionId=t.trackSelection(u)}},e.prototype.buildIndentConverter=function(e){return{shiftIndent:function(t){for(var n=s.ShiftCommand.shiftIndentCount(t,t.length+1,e),i="",o=0;o=1;){var c=e.getLineContent(t);if(n.lastNonWhitespaceIndex(c)>=0)break;t--}if(t<1||o>e.getLineCount())return null;var d=e.getLineMaxColumn(t),h=r.LanguageConfigurationRegistry.getEnterAction(e,new i.Range(t,d,t,d));if(h){var p=h.indentation,f=h.enterAction;f.indentAction===u.IndentAction.None?p=h.indentation+f.appendText:f.indentAction===u.IndentAction.Indent?p=h.indentation+f.appendText:f.indentAction===u.IndentAction.IndentOutdent?p=h.indentation:f.indentAction===u.IndentAction.Outdent&&(p=s.unshiftIndent(h.indentation)+f.appendText);var g=e.getLineContent(o);if(this.trimLeft(g).indexOf(this.trimLeft(p))>=0){var m=n.getLeadingWhitespace(e.getLineContent(o)),v=n.getLeadingWhitespace(p);return 2&r.LanguageConfigurationRegistry.getIndentMetadata(e,o)&&(v=s.unshiftIndent(v)),a.getSpaceCnt(v,l)-a.getSpaceCnt(m,l)}}return null},e.prototype.trimLeft=function(e){return e.replace(/^\s+/,"")},e.prototype.isAutoIndent=function(e,t){if(!this._autoIndent)return!1;var n=e.getLanguageIdAtPosition(t.startLineNumber,1);return n===e.getLanguageIdAtPosition(t.endLineNumber,1)&&null!==r.LanguageConfigurationRegistry.getIndentRulesSupport(n)},e.prototype.getIndentEditsOfMovingBlock=function(e,t,o,r,s,u){for(var l=o.startLineNumber;l<=o.endLineNumber;l++){var c=e.getLineContent(l),d=n.getLeadingWhitespace(c),h=a.getSpaceCnt(d,r)+u,p=a.generateIndent(h,r,s);p!==d&&(t.addEditOperation(new i.Range(l,1,l,d.length+1),p),l===o.endLineNumber&&o.endColumn<=d.length+1&&""===p&&(this._moveEndLineSelectionShrink=!0))}},e.prototype.computeCursorState=function(e,t){var n=t.getTrackedSelection(this._selectionId);return this._moveEndPositionDown&&(n=n.setEndPosition(n.endLineNumber+1,1)),this._moveEndLineSelectionShrink&&n.startLineNumber1)return;var a=new s.Range(o.lineNumber,o.column,o.lineNumber,o.column);this.emitCursorRevealRange(a,t,n)},t.prototype.emitCursorRevealRange=function(e,t,n){this._emit([new m.ViewRevealRangeRequestEvent(e,t,n)])},t.prototype.trigger=function(e,t,n){var i=u.Handler;if(t!==i.CompositionStart)if(t!==i.CompositionEnd){var r=new b(this._model,this),s=g.CursorChangeReason.NotSet;this._cursors.ensureValidState(),this._isHandling=!0;try{switch(t){case i.Type:this._type(e,n.text);break;case i.ReplacePreviousChar:this._replacePreviousChar(n.text,n.replaceCharCnt);break;case i.Paste:s=g.CursorChangeReason.Paste,this._paste(n.text,n.pasteOnNewLine);break;case i.Cut:this._cut();break;case i.Undo:s=g.CursorChangeReason.Undo,this._interpretCommandResult(this._model.undo());break;case i.Redo:s=g.CursorChangeReason.Redo,this._interpretCommandResult(this._model.redo());break;case i.ExecuteCommand:this._externalExecuteCommand(n);break;case i.ExecuteCommands:this._externalExecuteCommands(n)}}catch(e){o.onUnexpectedError(e)}this._isHandling=!1,this._emitStateChangedIfNecessary(e,s,r)&&this._revealRange(0,0,!0)}else this._isDoingComposition=!1;else this._isDoingComposition=!0},t.prototype._type=function(e,t){if(this._isDoingComposition||"keyboard"!==e)this._executeEditOperation(h.TypeOperations.typeWithoutInterceptors(this.context.config,this.context.model,this.getSelections(),t));else for(var n=0,o=t.length;n0&&(h[0]._isTracked=!0);var p=e.model.pushEditOperations(e.selectionsBefore,h,function(n){for(var i=[],o=0;o0?(i[n].sort(s),u[n]=t[n].computeCursorState(e.model,{getInverseEditOperations:function(){return i[n]},getTrackedSelection:function(t){var n=parseInt(t,10),i=e.model._getMarker(e.selectionStartMarkers[n]),o=e.model._getMarker(e.positionMarkers[n]);return new a.Selection(i.lineNumber,i.column,o.lineNumber,o.column)}})):u[n]=e.selectionsBefore[n]}(o);return u}),f=[];for(var g in d)d.hasOwnProperty(g)&&f.push(parseInt(g,10));f.sort(function(e,t){return t-e});for(u=0;uo.identifier.major?i.identifier.major:o.identifier.major).toString()]=!0;for(var a=0;a0&&n--}}return t},e}()}),define(d[312],h([5,7]),function(e,t){return e.create("vs/editor/common/model/textModelWithTokens",t)}),define(d[313],h([0,1,312,10,498,92,17,70,103,106,43,100,52]),function(e,t,n,i,o,r,s,a,u,l,c,d,h){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var p=function(){function e(){this._ranges=[]}return e.prototype.registerChangedTokens=function(e){var t=this._ranges,n=t.length,i=n>0?t[n-1]:null;i&&i.toLineNumber===e-1?i.toLineNumber++:t[n]={fromLineNumber:e,toLineNumber:e}},e.prototype.build=function(){return 0===this._ranges.length?null:{ranges:this._ranges}},e}(),g=function(e){function t(t,n,i){var o=e.call(this,t,n)||this;return o._languageIdentifier=i||a.NULL_LANGUAGE_IDENTIFIER,o._tokenizationListener=s.TokenizationRegistry.onDidChange(function(e){-1!==e.changedLanguages.indexOf(o._languageIdentifier.language)&&(o._resetTokenizationState(),o.emitModelTokensChangedEvent({ranges:[{fromLineNumber:1,toLineNumber:o.getLineCount()}]}))}),o._revalidateTokensTimeout=-1,o._resetTokenizationState(),o}return f(t,e),t.prototype.dispose=function(){this._tokenizationListener.dispose(),this._clearTimers(),this._lastState=null,e.prototype.dispose.call(this)},t.prototype._shouldAutoTokenize=function(){return!1},t.prototype._resetValue=function(t){e.prototype._resetValue.call(this,t),this._resetTokenizationState()},t.prototype._resetTokenizationState=function(){this._clearTimers();for(var e=0;ethis.getLineCount())throw new Error("Illegal value "+e+" for `lineNumber`");this._withModelTokensChangedEventBuilder(function(n){t._updateTokensUntilLine(n,e)})},t.prototype.getLineTokens=function(e){if(e<1||e>this.getLineCount())throw new Error("Illegal value "+e+" for `lineNumber`");return this._getLineTokens(e)},t.prototype._getLineTokens=function(e){return this._lines[e-1].getTokens(this._languageIdentifier.id)},t.prototype.getLanguageIdentifier=function(){return this._languageIdentifier},t.prototype.getModeId=function(){return this._languageIdentifier.language},t.prototype.setMode=function(e){if(this._languageIdentifier.id!==e.id){var t={oldLanguage:this._languageIdentifier.language,newLanguage:e.language};this._languageIdentifier=e,this._resetTokenizationState(),this.emitModelTokensChangedEvent({ranges:[{fromLineNumber:1,toLineNumber:this.getLineCount()}]}),this._emitModelModeChangedEvent(t)}},t.prototype.getLanguageIdAtPosition=function(e,t){if(!this._tokenizationSupport)return this._languageIdentifier.id;var n=this.validatePosition({lineNumber:e,column:t}),i=n.lineNumber,o=n.column;return this._getLineTokens(i).findTokenAtOffset(o-1).languageId},t.prototype._invalidateLine=function(e){this._lines[e].isInvalid=!0,e=200){t=n-1;break}this._revalidateTokensNow(t),this._invalidLineStartIndex20){e=c-1;break}if(a=t._lines[c-1].text.length,s>0&&(u=i/s*a,i+u>20)){e=c-1;break}t._updateTokensUntilLine(n,c),s+=a,c=Math.max(c,t._invalidLineStartIndex+1)}i=l.elapsed(),t._invalidLineStartIndex=1;r--){var s=this._getLineTokens(r),a=this._lines[r-1].text,c=void 0,d=void 0;for(r===t.lineNumber?(c=s.findTokenAtOffset(t.column-1),d=t.column-1):(c=s.lastToken())&&(d=c.endOffset);c;){if(c.languageId===n&&!u.ignoreBracketsInToken(c.tokenType))for(;;){var h=l.BracketsUtils.findPrevBracketInToken(i,r,a,c.startOffset,d);if(!h)break;var p=a.substring(h.startColumn-1,h.endColumn-1);if(p=p.toLowerCase(),p===e.open?o++:p===e.close&&o--,0===o)return h;d=h.startColumn-1}(c=c.prev())&&(d=c.endOffset)}}return null},t.prototype._findMatchingBracketDown=function(e,t){for(var n=e.languageIdentifier.id,i=e.forwardRegex,o=1,r=t.lineNumber,s=this.getLineCount();r<=s;r++){var a=this._getLineTokens(r),c=this._lines[r-1].text,d=void 0,h=void 0;for(r===t.lineNumber?(d=a.findTokenAtOffset(t.column-1),h=t.column-1):(d=a.firstToken())&&(h=d.startOffset);d;){if(d.languageId===n&&!u.ignoreBracketsInToken(d.tokenType))for(;;){var p=l.BracketsUtils.findNextBracketInToken(i,r,c,h,d.endOffset);if(!p)break;var f=c.substring(p.startColumn-1,p.endColumn-1);if(f=f.toLowerCase(),f===e.open?o++:f===e.close&&o--,0===o)return p;h=p.endColumn-1}(d=d.next())&&(h=d.startOffset)}}return null},t.prototype.findPrevBracket=function(e){for(var t=this.validatePosition(e),n=-1,i=null,o=t.lineNumber;o>=1;o--){var r=this._getLineTokens(o),s=this._lines[o-1].text,a=void 0,d=void 0;for(o===t.lineNumber?(a=r.findTokenAtOffset(t.column-1),d=t.column-1):(a=r.lastToken())&&(d=a.endOffset);a;){if(n!==a.languageId&&(n=a.languageId,i=c.LanguageConfigurationRegistry.getBracketsSupport(n)),i&&!u.ignoreBracketsInToken(a.tokenType)){var h=l.BracketsUtils.findPrevBracketInToken(i.reversedRegex,o,s,a.startOffset,d);if(h)return this._toFoundBracket(i,h)}(a=a.prev())&&(d=a.endOffset)}}return null},t.prototype.findNextBracket=function(e){for(var t=this.validatePosition(e),n=-1,i=null,o=t.lineNumber,r=this.getLineCount();o<=r;o++){var s=this._getLineTokens(o),a=this._lines[o-1].text,d=void 0,h=void 0;for(o===t.lineNumber?(d=s.findTokenAtOffset(t.column-1),h=t.column-1):(d=s.firstToken())&&(h=d.startOffset);d;){if(n!==d.languageId&&(n=d.languageId,i=c.LanguageConfigurationRegistry.getBracketsSupport(n)),i&&!u.ignoreBracketsInToken(d.tokenType)){var p=l.BracketsUtils.findNextBracketInToken(i.forwardRegex,o,a,h,d.endOffset);if(p)return this._toFoundBracket(i,p)}(d=d.next())&&(h=d.startOffset)}}return null},t.prototype._toFoundBracket=function(e,t){if(!t)return null;var n=this.getValueInRange(t);n=n.toLowerCase();var i=e.textIsBracket[n];return i?{range:t,open:i.open,close:i.close,isOpen:e.textIsOpenBracket[n]}:null},t}(r.TextModel);g.MODE_TOKENIZATION_FAILED_MSG=n.localize(0,null),t.TextModelWithTokens=g}),define(d[314],h([0,1,101,12,102,313]),function(e,t,n,i,o,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var s=0,a=function(e){function t(t,i,o){var r=e.call(this,t,i,o)||this;return r._markerIdGenerator=new n.IdGenerator(++s+";"),r._markerIdToMarker=Object.create(null),r}return f(t,e),t.prototype.dispose=function(){this._markerIdToMarker=null,e.prototype.dispose.call(this)},t.prototype._resetValue=function(t){e.prototype._resetValue.call(this,t),this._markerIdToMarker=Object.create(null)},t.prototype._addMarker=function(e,t,n,r){var s=this.validatePosition(new i.Position(t,n)),a=new o.LineMarker(this._markerIdGenerator.nextId(),e,s,r);return this._markerIdToMarker[a.id]=a,this._lines[s.lineNumber-1].addMarker(a),a.id},t.prototype._addMarkers=function(e){if(0===e.length)return[];for(var t=[],n=0,i=e.length;nthis.getLineCount()?[]:this.getLinesDecorations(e,e,t,n)},t.prototype._getMultiLineDecorations=function(e,t,n){var i=e.startLineNumber,o=e.startColumn,r=e.endLineNumber,s=e.endColumn,a=[];for(var u in this._multiLineDecorationsMap){var l=this._multiLineDecorationsMap[u];if((!t||!l.ownerId||l.ownerId===t)&&(!n||!l.isForValidation)){var c=l.range;c.startLineNumber>r||c.startLineNumber===r&&c.startColumn>s||c.endLineNumberr||g.startLineNumber===r&&g.startColumn>s||g.endLineNumber0){var p={addedDecorations:[],changedDecorations:i,removedDecorations:[]};this.emitModelDecorationsChangedEvent(p)}}},t._createRangeFromMarkers=function(e,t){return t.isBefore(e)?new r.Range(e.lineNumber,e.column,e.lineNumber,e.column):new r.Range(e.lineNumber,e.column,t.lineNumber,t.column)},t.prototype._acquireDecorationsTracker=function(){return 0===this._currentDecorationsTrackerCnt&&(this._currentDecorationsTracker=new g),this._currentDecorationsTrackerCnt++,this._currentDecorationsTracker},t.prototype._releaseDecorationsTracker=function(){if(0==--this._currentDecorationsTrackerCnt){var e=this._currentDecorationsTracker;this._currentDecorationsTracker=null,this._handleTrackedDecorations(e)}},t.prototype._handleTrackedDecorations=function(e){if(0!==e.addedDecorationsLen||0!==e.changedDecorationsLen||0!==e.removedDecorationsLen){var t={addedDecorations:e.addedDecorations,changedDecorations:e.changedDecorations,removedDecorations:e.removedDecorations};this.emitModelDecorationsChangedEvent(t)}},t.prototype.emitModelDecorationsChangedEvent=function(e){this._isDisposing||this._eventEmitter.emit(c.TextModelEventType.ModelDecorationsChanged,e)},t.prototype._normalizeDeltaDecorations=function(e){for(var t=[],n=0,i=e.length;n0&&this._removeMarkers(n)},t.prototype._resolveOldDecorations=function(e){for(var t=[],n=0,i=e.length;n0?(d.push(f),l++):p.options.equals(f.options)?(s[f.index]=p.id,a++,l++):(h.push(p.id),a++)}for(;a0&&this._removeDecorationsImpl(e,h),d.length>0)for(var m=this._addDecorationsImpl(e,t,d),v=0,_=d.length;v<_;v++)s[d[v].index]=m[v];return s},t}(l.TextModelWithMarkers);t.TextModelWithDecorations=_;var y=function(){function e(e){this.color=o.empty,this.darkColor=o.empty,this.hcColor=o.empty,this.position=s.OverviewRulerLane.Center,e&&e.color&&(this.color=e.color),e&&e.darkColor&&(this.darkColor=e.darkColor,this.hcColor=e.darkColor),e&&e.hcColor&&(this.hcColor=e.hcColor),e&&e.hasOwnProperty("position")&&(this.position=e.position)}return e.prototype.equals=function(e){return this.color===e.color&&this.darkColor===e.darkColor&&this.hcColor===e.hcColor&&this.position===e.position},e}();t.ModelDecorationOverviewRulerOptions=y;var b=0,C=function(){function e(e,t){this.staticId=e,this.stickiness=t.stickiness||s.TrackedRangeStickiness.AlwaysGrowsWhenTypingAtEdges,this.className=t.className?h(t.className):o.empty,this.hoverMessage=t.hoverMessage||[],this.glyphMarginHoverMessage=t.glyphMarginHoverMessage||o.empty,this.isWholeLine=t.isWholeLine||!1,this.showIfCollapsed=t.showIfCollapsed||!1,this.overviewRuler=new y(t.overviewRuler),this.glyphMarginClassName=t.glyphMarginClassName?h(t.glyphMarginClassName):o.empty,this.linesDecorationsClassName=t.linesDecorationsClassName?h(t.linesDecorationsClassName):o.empty,this.marginClassName=t.marginClassName?h(t.marginClassName):o.empty,this.inlineClassName=t.inlineClassName?h(t.inlineClassName):o.empty,this.beforeContentClassName=t.beforeContentClassName?h(t.beforeContentClassName):o.empty,this.afterContentClassName=t.afterContentClassName?h(t.afterContentClassName):o.empty}return e.register=function(t){return new e(++b,t)},e.createDynamic=function(t){return new e(0,t)},e.prototype.equals=function(e){return this.staticId>0||e.staticId>0?this.staticId===e.staticId:this.stickiness===e.stickiness&&this.className===e.className&&this.isWholeLine===e.isWholeLine&&this.showIfCollapsed===e.showIfCollapsed&&this.glyphMarginClassName===e.glyphMarginClassName&&this.linesDecorationsClassName===e.linesDecorationsClassName&&this.marginClassName===e.marginClassName&&this.inlineClassName===e.inlineClassName&&this.beforeContentClassName===e.beforeContentClassName&&this.afterContentClassName===e.afterContentClassName&&i.markedStringsEquals(this.hoverMessage,e.hoverMessage)&&i.markedStringsEquals(this.glyphMarginHoverMessage,e.glyphMarginHoverMessage)&&this.overviewRuler.equals(e.overviewRuler)},e}();t.ModelDecorationOptions=C,C.EMPTY=C.register({});var w=function(){return function(e,t,n){this.index=e,this.range=t,this.options=n}}()}),define(d[316],h([0,1,2,21,218,102,33,9,27,12,104,92,52]),function(e,t,n,i,o,r,s,a,u,l,c,d,h){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var p=function(e){function t(t,n,i){var r=e.call(this,t,n,i)||this;return r._commandManager=new o.EditStack(r),r._isUndoing=!1,r._isRedoing=!1,r._hasEditableRange=!1,r._editableRangeId=null,r._trimAutoWhitespaceLines=null,r}return f(t,e),t.createFromString=function(e,n,i){return void 0===n&&(n=d.TextModel.DEFAULT_CREATION_OPTIONS),void 0===i&&(i=null),new t(c.RawTextSource.fromString(e),n,i)},t.prototype.onDidChangeRawContent=function(e){return this._eventEmitter.addListener(h.TextModelEventType.ModelRawContentChanged2,e)},t.prototype.onDidChangeContent=function(e){return this._eventEmitter.addListener(h.TextModelEventType.ModelContentChanged,e)},t.prototype.dispose=function(){this._commandManager=null,e.prototype.dispose.call(this)},t.prototype._resetValue=function(t){e.prototype._resetValue.call(this,t),this._commandManager=new o.EditStack(this),this._hasEditableRange=!1,this._editableRangeId=null,this._trimAutoWhitespaceLines=null},t.prototype.pushStackElement=function(){this._commandManager.pushStackElement()},t.prototype.pushEditOperations=function(e,t,n){try{return this._eventEmitter.beginDeferredEmit(),this._pushEditOperations(e,t,n)}finally{this._eventEmitter.endDeferredEmit()}},t.prototype._pushEditOperations=function(e,t,i){var o=this;if(this._options.trimAutoWhitespace&&this._trimAutoWhitespaceLines){for(var r=t.map(function(e){return{range:o.validateRange(e.range),text:e.text}}),s=!0,a=0,u=e.length;al.endLineNumber,f=l.startLineNumber>_.endLineNumber;if(!p&&!f){c=!0;break}}if(!c){s=!1;break}}if(s)for(var a=0,u=this._trimAutoWhitespaceLines.length;a_.endLineNumber)&&!(g===_.startLineNumber&&_.startColumn===m&&_.isEmpty()&&y&&y.length>0&&"\n"===y.charAt(0))){v=!1;break}}v&&t.push({identifier:null,range:new n.Range(g,1,g,m),text:null,forceMoveMarkers:!1,isAutoWhitespaceEdit:!1})}this._trimAutoWhitespaceLines=null}return this._commandManager.pushEditOperation(e,t,i)},t.prototype._reduceOperations=function(e){return e.length<1e3?e:[this._toSingleEditOperation(e)]},t.prototype._toSingleEditOperation=function(e){for(var t=!1,i=e[0].range,o=e[e.length-1].range,r=new n.Range(i.startLineNumber,i.startColumn,o.endLineNumber,o.endColumn),s=i.startLineNumber,a=i.startColumn,u=[],l=0,c=e.length;l0){_.sort(function(e,t){return t.lineNumber-e.lineNumber}),this._trimAutoWhitespaceLines=[];for(var u=0,w=_.length;u0&&_[u-1].lineNumber===S)){var E=_[u].oldContent,L=this.getLineContent(S);0!==L.length&&L!==E&&-1===a.firstNonWhitespaceIndex(L)&&this._trimAutoWhitespaceLines.push(S)}}}return v},t._getInverseEditRanges=function(e){for(var t,i,o=[],r=null,s=0,a=e.length;s0){var h=u.lines.length,p=u.lines[0],f=u.lines[h-1];d=1===h?new n.Range(l,c,l,c+p.length):new n.Range(l,c,l+h-1,f.length+1)}else d=new n.Range(l,c,l,c);t=d.endLineNumber,i=d.endColumn,o.push(d),r=u}return o},t.prototype._doApplyEdits=function(e,i){var o=this,s=this._options.tabSize;i.sort(t._sortOpsDescending);for(var a=[],c=[],d=[],p=function(){if(0!==d.length){d.reverse();for(var t=d[0].lineNumber,n=0,i=1,r=d.length;i=0;O--){var N=b+O;!function(e){e.startColumn===e.endColumn&&0===e.text.length||d.push(e)}({lineNumber:N,startColumn:N===b?C:1,endColumn:N===w?S:this.getLineMaxColumn(N),text:y.lines?y.lines[O]:"",forceMoveMarkers:y.forceMoveMarkers})}if(x0},Object.defineProperty(t.prototype,"uri",{get:function(){return this._associatedResource},enumerable:!0,configurable:!0}),t}(i.EditableTextModel);t.Model=u}),define(d[172],h([0,1,12,2,98,86,56,33]),function(e,t,n,i,o,r,s,a){"use strict";function u(e,t,n,i,o,r,s){var a=e.createLineMapping(t,n,i,o,r);return null===a?s?d.INSTANCE:h.INSTANCE:new p(a,s)}Object.defineProperty(t,"__esModule",{value:!0});var l=function(){return function(e,t){this.outputLineIndex=e,this.outputOffset=t}}();t.OutputPosition=l;var c=function(){function e(e,t,n,i,o,r){this.model=e,this._validModelVersionId=-1,this.tabSize=n,this.wrappingColumn=i,this.columnsForFullWidthChar=o,this.wrappingIndent=r,this.linePositionMapperFactory=t,this._constructLines(!0)}return e.prototype.dispose=function(){this.hiddenAreasIds=this.model.deltaDecorations(this.hiddenAreasIds,[])},e.prototype._ensureValidState=function(){if(this.model.getVersionId()!==this._validModelVersionId)throw new Error("SplitLinesCollection: attempt to access a 'newer' model")},e.prototype._constructLines=function(e){var t=this;this.lines=[],e&&(this.hiddenAreasIds=[]);for(var n=this.model.getLinesContent(),r=n.length,s=new Uint32Array(r),a=this.hiddenAreasIds.map(function(e){return t.model.getDecorationRange(e)}).sort(i.Range.compareRangesUsingStarts),l=1,c=0,d=-1,h=d+1=l&&f<=c,m=u(this.linePositionMapperFactory,n[p],this.tabSize,this.wrappingColumn,this.columnsForFullWidthChar,this.wrappingIndent,!g);s[p]=m.getViewLineCount(),this.lines[p]=m}this._validModelVersionId=this.model.getVersionId(),this.prefixSumComputer=new o.PrefixSumComputerWithCache(s)},e.prototype.getHiddenAreas=function(){var e=this;return this.hiddenAreasIds.map(function(t){return e.model.getDecorationRange(t)}).sort(i.Range.compareRangesUsingStarts)},e.prototype._reduceRanges=function(e){var t=this;if(0===e.length)return[];for(var n=e.map(function(e){return t.model.validateRange(e)}).sort(i.Range.compareRangesUsingStarts),o=[],r=n[0].startLineNumber,s=n[0].endLineNumber,a=1,u=n.length;as+1?(o.push(new i.Range(r,1,s,1)),r=l.startLineNumber,s=l.endLineNumber):l.endLineNumber>s&&(s=l.endLineNumber)}return o.push(new i.Range(r,1,s,1)),o},e.prototype.setHiddenAreas=function(e){var t=this,n=this._reduceRanges(e),o=this.hiddenAreasIds.map(function(e){return t.model.getDecorationRange(e)}).sort(i.Range.compareRangesUsingStarts);if(n.length===o.length){for(var r=!1,s=0;s=c&&f<=d?this.lines[s].isVisible()&&(this.lines[s]=this.lines[s].setVisible(!1),g=!0):this.lines[s].isVisible()||(this.lines[s]=this.lines[s].setVisible(!0),g=!0),g){var m=this.lines[s].getViewLineCount();this.prefixSumComputer.changeValue(s,m)}}return!0},e.prototype.modelPositionIsVisible=function(e,t){return!(e<1||e>this.lines.length)&&this.lines[e-1].isVisible()},e.prototype.setTabSize=function(e){return this.tabSize!==e&&(this.tabSize=e,this._constructLines(!1),!0)},e.prototype.setWrappingSettings=function(e,t,n){return(this.wrappingIndent!==e||this.wrappingColumn!==t||this.columnsForFullWidthChar!==n)&&(this.wrappingIndent=e,this.wrappingColumn=t,this.columnsForFullWidthChar=n,this._constructLines(!1),!0)},e.prototype.onModelFlushed=function(){this._constructLines(!0)},e.prototype.onModelLinesDeleted=function(e,t,n){if(e<=this._validModelVersionId)return null;var i=1===t?1:this.prefixSumComputer.getAccumulatedValue(t-2)+1,o=this.prefixSumComputer.getAccumulatedValue(n-1);return this.lines.splice(t-1,n-t+1),this.prefixSumComputer.removeValues(t-1,n-t+1),new s.ViewLinesDeletedEvent(i,o)},e.prototype.onModelLinesInserted=function(e,t,i,o){if(e<=this._validModelVersionId)return null;for(var r=this.getHiddenAreas(),a=!1,l=new n.Position(t,1),c=0;cl?(m=(g=(h=(d=1===t?1:this.prefixSumComputer.getAccumulatedValue(t-2)+1)+l-1)+1)+(o-l)-1,c=!0):ot?t:e},e.prototype.warmUpLookupCache=function(e,t){this.prefixSumComputer.warmUpCache(e-1,t-1)},e.prototype.getViewLineIndentGuide=function(e){this._ensureValidState(),e=this._toValidViewLineNumber(e);var t=this.prefixSumComputer.getIndexOf(e-1);return this.model.getLineIndentGuide(t.index+1)},e.prototype.getViewLineContent=function(e){this._ensureValidState(),e=this._toValidViewLineNumber(e);var t=this.prefixSumComputer.getIndexOf(e-1),n=t.index,i=t.remainder;return this.lines[n].getViewLineContent(this.model,n+1,i)},e.prototype.getViewLineMinColumn=function(e){this._ensureValidState(),e=this._toValidViewLineNumber(e);var t=this.prefixSumComputer.getIndexOf(e-1),n=t.index,i=t.remainder;return this.lines[n].getViewLineMinColumn(this.model,n+1,i)},e.prototype.getViewLineMaxColumn=function(e){this._ensureValidState(),e=this._toValidViewLineNumber(e);var t=this.prefixSumComputer.getIndexOf(e-1),n=t.index,i=t.remainder;return this.lines[n].getViewLineMaxColumn(this.model,n+1,i)},e.prototype.getViewLineData=function(e){this._ensureValidState(),e=this._toValidViewLineNumber(e);var t=this.prefixSumComputer.getIndexOf(e-1),n=t.index,i=t.remainder;return this.lines[n].getViewLineData(this.model,n+1,i)},e.prototype.getViewLinesData=function(e,t,n){this._ensureValidState(),e=this._toValidViewLineNumber(e),t=this._toValidViewLineNumber(t);for(var i=this.prefixSumComputer.getIndexOf(e-1),o=e,r=i.index,s=i.remainder,a=[],u=r,l=this.model.getLineCount();ut&&(p=!0,h=t-o+1);var f=d+h;if(c.getViewLinesData(this.model,u+1,d,f,o-e,n,a),o+=h,p)break}}return a},e.prototype.validateViewPosition=function(e,t,i){this._ensureValidState(),e=this._toValidViewLineNumber(e);var o=this.prefixSumComputer.getIndexOf(e-1),r=o.index,s=o.remainder,a=this.lines[r],u=a.getViewLineMinColumn(this.model,r+1,s),l=a.getViewLineMaxColumn(this.model,r+1,s);tl&&(t=l);var c=a.getModelColumnOfViewPosition(s,t);return this.model.validatePosition(new n.Position(r+1,c)).equals(i)?new n.Position(e,t):this.convertModelPositionToViewPosition(i.lineNumber,i.column)},e.prototype.convertViewPositionToModelPosition=function(e,t){this._ensureValidState(),e=this._toValidViewLineNumber(e);var i=this.prefixSumComputer.getIndexOf(e-1),o=i.index,r=i.remainder,s=this.lines[o].getModelColumnOfViewPosition(r,t);return this.model.validatePosition(new n.Position(o+1,s))},e.prototype.convertModelPositionToViewPosition=function(e,t){this._ensureValidState();for(var i=this.model.validatePosition(new n.Position(e,t)),o=i.lineNumber,r=i.column,s=o-1,a=!1;s>0&&!this.lines[s].isVisible();)s--,a=!0;if(0===s&&!this.lines[s].isVisible())return new n.Position(1,1);var u=1+(0===s?0:this.prefixSumComputer.getAccumulatedValue(s-1));return a?this.lines[s].getViewPositionOfModelPosition(u,this.model.getLineMaxColumn(s+1)):this.lines[o-1].getViewPositionOfModelPosition(u,r)},e}();t.SplitLinesCollection=c;var d=function(){function e(){}return e.prototype.isVisible=function(){return!0},e.prototype.setVisible=function(e){return e?this:h.INSTANCE},e.prototype.getViewLineCount=function(){return 1},e.prototype.getViewLineContent=function(e,t,n){return e.getLineContent(t)},e.prototype.getViewLineMinColumn=function(e,t,n){return e.getLineMinColumn(t)},e.prototype.getViewLineMaxColumn=function(e,t,n){return e.getLineMaxColumn(t)},e.prototype.getViewLineData=function(e,t,n){var i=e.getLineTokens(t),o=i.getLineContent();return new r.ViewLineData(o,1,o.length+1,i.inflate())},e.prototype.getViewLinesData=function(e,t,n,i,o,r,s){r[o]?s[o]=this.getViewLineData(e,t,0):s[o]=null},e.prototype.getModelColumnOfViewPosition=function(e,t){return t},e.prototype.getViewPositionOfModelPosition=function(e,t){return new n.Position(e,t)},e}();d.INSTANCE=new d;var h=function(){function e(){}return e.prototype.isVisible=function(){return!1},e.prototype.setVisible=function(e){return e?d.INSTANCE:this},e.prototype.getViewLineCount=function(){return 0},e.prototype.getViewLineContent=function(e,t,n){throw new Error("Not supported")},e.prototype.getViewLineMinColumn=function(e,t,n){throw new Error("Not supported")},e.prototype.getViewLineMaxColumn=function(e,t,n){throw new Error("Not supported")},e.prototype.getViewLineData=function(e,t,n){throw new Error("Not supported")},e.prototype.getViewLinesData=function(e,t,n,i,o,r,s){throw new Error("Not supported")},e.prototype.getModelColumnOfViewPosition=function(e,t){throw new Error("Not supported")},e.prototype.getViewPositionOfModelPosition=function(e,t){throw new Error("Not supported")},e}();h.INSTANCE=new h;var p=function(){function e(e,t){this.positionMapper=e,this.wrappedIndent=this.positionMapper.getWrappedLinesIndent(),this.wrappedIndentLength=this.wrappedIndent.length,this.outputLineCount=this.positionMapper.getOutputLineCount(),this._isVisible=t}return e.prototype.isVisible=function(){return this._isVisible},e.prototype.setVisible=function(e){return this._isVisible=e,this},e.prototype.getViewLineCount=function(){return this._isVisible?this.outputLineCount:0},e.prototype.getInputStartOffsetOfOutputLineIndex=function(e){return this.positionMapper.getInputOffsetOfOutputPosition(e,0)},e.prototype.getInputEndOffsetOfOutputLineIndex=function(e,t,n){return n+1===this.outputLineCount?e.getLineMaxColumn(t)-1:this.positionMapper.getInputOffsetOfOutputPosition(n+1,0)},e.prototype.getViewLineContent=function(e,t,n){if(!this._isVisible)throw new Error("Not supported");var i=this.getInputStartOffsetOfOutputLineIndex(n),o=this.getInputEndOffsetOfOutputLineIndex(e,t,n),r=e.getLineContent(t).substring(i,o);return n>0&&(r=this.wrappedIndent+r),r},e.prototype.getViewLineMinColumn=function(e,t,n){if(!this._isVisible)throw new Error("Not supported");return n>0?this.wrappedIndentLength+1:1},e.prototype.getViewLineMaxColumn=function(e,t,n){if(!this._isVisible)throw new Error("Not supported");return this.getViewLineContent(e,t,n).length+1},e.prototype.getViewLineData=function(e,t,n){if(!this._isVisible)throw new Error("Not supported");var i=this.getInputStartOffsetOfOutputLineIndex(n),o=this.getInputEndOffsetOfOutputLineIndex(e,t,n),s=e.getLineContent(t).substring(i,o);n>0&&(s=this.wrappedIndent+s);var a=n>0?this.wrappedIndentLength+1:1,u=s.length+1,l=0;n>0&&(l=this.wrappedIndentLength);var c=e.getLineTokens(t);return new r.ViewLineData(s,a,u,c.sliceAndInflate(i,o,l))},e.prototype.getViewLinesData=function(e,t,n,i,o,r,s){if(!this._isVisible)throw new Error("Not supported");for(var a=n;a0&&(n0&&(r+=this.wrappedIndentLength),new n.Position(e+o,r)},e}();t.SplitLine=p}),define(d[319],h([0,1,9,98,172,82,95,49]),function(e,t,n,i,o,r,s,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var u;!function(e){e[e.NONE=0]="NONE",e[e.BREAK_BEFORE=1]="BREAK_BEFORE",e[e.BREAK_AFTER=2]="BREAK_AFTER",e[e.BREAK_OBTRUSIVE=3]="BREAK_OBTRUSIVE",e[e.BREAK_IDEOGRAPHIC=4]="BREAK_IDEOGRAPHIC"}(u||(u={}));var l=function(e){function t(t,n,i){for(var o=e.call(this,0)||this,r=0;r=12352&&t<=12543||t>=13312&&t<=19903||t>=19968&&t<=40959?4:e.prototype.get.call(this,t)},t}(r.CharacterClassifier),c=function(){function e(e,t,n){this.classifier=new l(e,t,n)}return e.nextVisibleColumn=function(e,t,n,i){return e=+e,t=+t,i=+i,n?e+(t-e%t):e+i},e.prototype.createLineMapping=function(t,o,r,u,l){if(-1===r)return null;o=+o,r=+r,u=+u;var c=0,h="",p=-1;if((l=+l)!==a.WrappingIndent.None&&-1!==(p=n.firstNonWhitespaceIndex(t))){h=t.substring(0,p);for(E=0;E.5*r&&(h="",c=0)}for(var f=this.classifier,g=0,m=[],v=0,_=0,y=-1,b=0,C=-1,w=0,S=t.length,E=0;E0){var M=t.charCodeAt(E-1);1!==f.get(M)&&(y=E,b=c)}var T=1;if(n.isFullWidthCharacter(L)&&(T=u),(_=e.nextVisibleColumn(_,o,x,T))>r&&0!==E){var k=void 0,I=void 0;-1!==y&&b<=r?(k=y,I=b):-1!==C&&w<=r?(k=C,I=w):(k=E,I=c),m[v++]=k-g,g=k,_=e.nextVisibleColumn(I,o,x,T),y=-1,b=0,C=-1,w=0}if(-1!==y&&(b=e.nextVisibleColumn(b,o,x,T)),-1!==C&&(w=e.nextVisibleColumn(w,o,x,T)),2===N&&(l===a.WrappingIndent.None||E>=p)&&(y=E+1,b=c),4===N&&E'+this._getHTMLToCopy(n,s)+"
        "},t.prototype._getHTMLToCopy=function(e,t){for(var n=e.startLineNumber,i=e.startColumn,o=e.endLineNumber,r=e.endColumn,s=this.getTabSize(),a="",l=n;l<=o;l++){var c=this.model.getLineTokens(l),d=c.getLineContent(),h=l===n?i-1:0,p=l===o?r-1:d.length;a+=""===d?"
        ":u.tokenizeLineToHTML(d,c.inflate(),t,h,p,s)}return a},t.prototype._getColorMap=function(){for(var e=a.TokenizationRegistry.getColorMap(),t=[null],n=1,i=e.length;n0},e.prototype._cannotFind=function(){if(!this._hasMatches()){var e=this._decorations.getFindScope();return e&&this._editor.revealRangeInCenterIfOutsideViewport(e),!0}return!1},e.prototype._setCurrentFindMatch=function(e){var t=this._decorations.setCurrentFindMatch(e);this._state.changeMatchInfo(t,this._decorations.getCount(),e),this._editor.setSelection(e),this._editor.revealRangeInCenterIfOutsideViewport(e)},e.prototype._moveToPrevMatch=function(t,n){if(void 0===n&&(n=!1),!this._cannotFind()){var i=this._decorations.getFindScope(),o=e._getSearchRange(this._editor.getModel(),this._state.isReplaceRevealed,i);o.getEndPosition().isBefore(t)&&(t=o.getEndPosition()),t.isBefore(o.getStartPosition())&&(t=o.getEndPosition());var r=t.lineNumber,a=t.column,u=this._editor.getModel(),l=new s.Position(r,a),c=u.findPreviousMatch(this._state.searchString,l,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getConfiguration().wordSeparators:null,!1);return c&&c.range.isEmpty()&&c.range.getStartPosition().equals(l)&&(this._state.isRegex&&(this._state.searchString.indexOf("^")>=0||this._state.searchString.indexOf("$")>=0)||1===a?(1===r?r=u.getLineCount():r--,a=u.getLineMaxColumn(r)):a--,l=new s.Position(r,a),c=u.findPreviousMatch(this._state.searchString,l,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getConfiguration().wordSeparators:null,!1)),c?n||o.containsRange(c.range)?void this._setCurrentFindMatch(c.range):this._moveToPrevMatch(c.range.getStartPosition(),!0):null}},e.prototype.moveToPrevMatch=function(){this._moveToPrevMatch(this._editor.getSelection().getStartPosition())},e.prototype._moveToNextMatch=function(e){var t=this._getNextMatch(e,!1,!0);t&&this._setCurrentFindMatch(t.range)},e.prototype._getNextMatch=function(t,n,i,o){if(void 0===o&&(o=!1),this._cannotFind())return null;var r=this._decorations.getFindScope(),a=e._getSearchRange(this._editor.getModel(),this._state.isReplaceRevealed,r);a.getEndPosition().isBefore(t)&&(t=a.getStartPosition()),t.isBefore(a.getStartPosition())&&(t=a.getStartPosition());var u=t.lineNumber,l=t.column,c=this._editor.getModel(),d=new s.Position(u,l),h=c.findNextMatch(this._state.searchString,d,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getConfiguration().wordSeparators:null,n);return i&&h&&h.range.isEmpty()&&h.range.getStartPosition().equals(d)&&(this._state.isRegex&&(this._state.searchString.indexOf("^")>=0||this._state.searchString.indexOf("$")>=0)||l===c.getLineMaxColumn(u)?(u===c.getLineCount()?u=1:u++,l=1):l++,d=new s.Position(u,l),h=c.findNextMatch(this._state.searchString,d,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getConfiguration().wordSeparators:null,n)),h?o||a.containsRange(h.range)?h:this._getNextMatch(h.range.getEndPosition(),n,i,!0):null},e.prototype.moveToNextMatch=function(){this._moveToNextMatch(this._editor.getSelection().getEndPosition())},e.prototype._getReplacePattern=function(){return this._state.isRegex?o.parseReplaceString(this._state.replaceString):o.ReplacePattern.fromStaticValue(this._state.replaceString)},e.prototype.replace=function(){if(this._hasMatches()){var e=this._getReplacePattern(),t=this._editor.getSelection(),n=this._getNextMatch(t.getStartPosition(),e.hasReplacementPatterns,!1);if(n)if(t.equalsRange(n.range)){var i=e.buildReplaceString(n.matches),o=new r.ReplaceCommand(t,i);this._executeEditorCommand("replace",o),this._decorations.setStartPosition(new s.Position(t.startLineNumber,t.startColumn+i.length)),this.research(!0)}else this._decorations.setStartPosition(this._editor.getPosition()),this._setCurrentFindMatch(n.range)}},e.prototype._findMatches=function(t,n,i){var o=e._getSearchRange(this._editor.getModel(),this._state.isReplaceRevealed,t);return this._editor.getModel().findMatches(this._state.searchString,o,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getConfiguration().wordSeparators:null,n,i)},e.prototype.replaceAll=function(){if(this._hasMatches()){var e=this._decorations.getFindScope();null===e&&this._state.matchesCount>=t.MATCHES_LIMIT?this._largeReplaceAll():this._regularReplaceAll(e),this.research(!1)}},e.prototype._largeReplaceAll=function(){var e=new h.SearchParams(this._state.searchString,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getConfiguration().wordSeparators:null).parseSearchRequest();if(e){var t,n=this._editor.getModel(),i=n.getValue(u.EndOfLinePreference.LF),o=n.getFullModelRange(),s=this._getReplacePattern();t=s.hasReplacementPatterns?i.replace(e.regex,function(){return s.buildReplaceString(arguments)}):i.replace(e.regex,s.buildReplaceString(null));var a=new r.ReplaceCommandThatPreservesSelection(o,t,this._editor.getSelection());this._executeEditorCommand("replaceAll",a)}},e.prototype._regularReplaceAll=function(e){for(var t=this._getReplacePattern(),n=this._findMatches(e,t.hasReplacementPatterns,1073741824),i=[],o=0,r=n.length;o=e.startLineNumber&&t<=e.endLineNumber}function u(e,t){return te.endLineNumber}function c(e,t){return e instanceof i.Range&&t instanceof i.Range?e.containsRange(t):e.startLineNumber<=t.startLineNumber&&e.endLineNumber>=t.endLineNumber}function d(e,t,n,i,o){return(o?new f(e,t,n):new p(e,t,n)).getRegionsTill(i)}Object.defineProperty(t,"__esModule",{value:!0}),t.toString=function(e){return(e?e.startLineNumber+"/"+e.endLineNumber:"null")+(e.isCollapsed?" (collapsed)":"")+" - "+e.indent};var h=function(){function e(e,t,n){this.decorationIds=[],this.update(e,t,n)}return Object.defineProperty(e.prototype,"isCollapsed",{get:function(){return this._isCollapsed},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isExpanded",{get:function(){return!this._isCollapsed},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"indent",{get:function(){return this._indent},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"foldingRange",{get:function(){return this._lastRange},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"startLineNumber",{get:function(){return this._lastRange?this._lastRange.startLineNumber:void 0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"endLineNumber",{get:function(){return this._lastRange?this._lastRange.endLineNumber:void 0},enumerable:!0,configurable:!0}),e.prototype.setCollapsed=function(e,t){this._isCollapsed=e,this.decorationIds.length>0&&t.changeDecorationOptions(this.decorationIds[0],this.getVisualDecorationOptions())},e.prototype.getDecorationRange=function(e){return this.decorationIds.length>0?e.getDecorationRange(this.decorationIds[1]):null},e.prototype.getVisualDecorationOptions=function(){return this._isCollapsed?e._COLLAPSED_VISUAL_DECORATION:e._EXPANDED_VISUAL_DECORATION},e.prototype.getRangeDecorationOptions=function(){return e._RANGE_DECORATION},e.prototype.update=function(e,t,n){this._lastRange=e,this._isCollapsed=!!e.isCollapsed,this._indent=e.indent;var i=[],o=t.getLineMaxColumn(e.startLineNumber),r={startLineNumber:e.startLineNumber,startColumn:o-1,endLineNumber:e.startLineNumber,endColumn:o};i.push({range:r,options:this.getVisualDecorationOptions()});var s={startLineNumber:e.startLineNumber,startColumn:1,endLineNumber:e.endLineNumber,endColumn:t.getLineMaxColumn(e.endLineNumber)};i.push({range:s,options:this.getRangeDecorationOptions()}),this.decorationIds=n.deltaDecorations(this.decorationIds,i)},e.prototype.dispose=function(e){this._lastRange=null,this.decorationIds=e.deltaDecorations(this.decorationIds,[])},e.prototype.toString=function(){var e=this.isCollapsed?"collapsed ":"expanded ";return this._lastRange?e+=this._lastRange.startLineNumber+"/"+this._lastRange.endLineNumber:e+="no range",e},e}();h._COLLAPSED_VISUAL_DECORATION=o.ModelDecorationOptions.register({stickiness:n.TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges,afterContentClassName:"inline-folded",linesDecorationsClassName:"folding collapsed"}),h._EXPANDED_VISUAL_DECORATION=o.ModelDecorationOptions.register({stickiness:n.TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges,linesDecorationsClassName:"folding"}),h._RANGE_DECORATION=o.ModelDecorationOptions.register({stickiness:n.TrackedRangeStickiness.GrowsOnlyWhenTypingBefore}),t.CollapsibleRegion=h,t.getCollapsibleRegionsToFoldAtLine=function(e,t,n,i,o){var s=r(e,t,n);return s?1===i?[s]:d(s,e,t,i,o).filter(function(e){return!e.isCollapsed}):[]},t.getCollapsibleRegionsToUnfoldAtLine=function(e,t,n,i){var o=r(e,t,n);if(!o)return[];if(1===i){var a=o.isCollapsed?o:s(e,t,o,n);return a?[a]:[]}return d(o,e,t,i,!1).filter(function(e){return e.isCollapsed})},t.doesLineBelongsToCollapsibleRegion=a;var p=function(){function e(e,t,n){this.region=e,this.children=[];for(var i=t.indexOf(e)+1;i0?r.lastChildIndex:o},e.prototype.getRegionsTill=function(e){var t=[this.region];return e>1&&this.children.forEach(function(n){return t=t.concat(n.getRegionsTill(e-1))}),t},e}(),f=function(){function e(t,n,i){this.region=t;for(var o=n.indexOf(t)-1;o>=0;o--){var r=n[o],s=r.getDecorationRange(i);if(s){if(c(s,t.foldingRange)){this.parent=new e(r,n,i);break}if(l(s,t.foldingRange.endLineNumber))break}}}return e.prototype.getRegionsTill=function(e){var t=[this.region];return this.parent&&e>1&&(t=t.concat(this.parent.getRegionsTill(e-1))),t},e}()}),define(d[324],h([0,1,9,21,57,147,22,2,27,3,262,33,270]),function(e,t,n,i,o,r,s,a,u,l,c,d){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var h=function(){function e(e,t,n){this._editor=e,this._snippet=t,this._offset=n,this._placeholderGroups=u.groupBy(t.placeholders,r.Placeholder.compareByIndex),this._placeholderGroupsIdx=-1}return e.prototype.dispose=function(){var e=this;this._placeholderDecorations&&this._editor.changeDecorations(function(t){return e._placeholderDecorations.forEach(function(e){return t.removeDecoration(e)})}),this._placeholderGroups.length=0},e.prototype._initDecorations=function(){var t=this;if(!this._placeholderDecorations){this._placeholderDecorations=new Map;var n=this._editor.getModel();this._editor.changeDecorations(function(i){for(var o=0,r=t._snippet.placeholders;o0&&(this._placeholderGroupsIdx-=1),this._editor.getModel().changeDecorations(function(t){for(var i=new Set,o=[],r=0,a=n._placeholderGroups[n._placeholderGroupsIdx];r0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"placeholderRanges",{get:function(){var e=this,t=[];return this._placeholderDecorations.forEach(function(n,i){if(!i.isFinalTabstop){var o=e._editor.getModel().getDecorationRange(n);o&&t.push(o)}}),t},enumerable:!0,configurable:!0}),e.prototype.merge=function(t){var n=this,i=this._editor.getModel();this._editor.changeDecorations(function(o){for(var s=0,l=n._placeholderGroups[n._placeholderGroupsIdx];st.length)return!1;e.sort(a.Range.compareRangesUsingStarts),t.sort(a.Range.compareRangesUsingStarts);e:for(var r=0,s=e;r=a&&(t=a);var u=0,l=0;if(this.options.showArrow&&(u=Math.round(s/3),this._arrow.height=u,this._arrow.show(i)),this.options.showFrame&&(l=Math.round(s/9)),this.editor.changeViewZones(function(e){n._viewZone&&e.removeZone(n._viewZone.id),n._overlayWidget&&(n.editor.removeOverlayWidget(n._overlayWidget),n._overlayWidget=null),n.domNode.style.top="-1000px",n._viewZone=new p(r,i.lineNumber,i.column,t,function(e){return n._onViewZoneTop(e)},function(e){return n._onViewZoneHeight(e)}),n._viewZone.id=e.addZone(n._viewZone),n._overlayWidget=new g("vs.editor.contrib.zoneWidget"+n._viewZone.id,n.domNode),n.editor.addOverlayWidget(n._overlayWidget)}),this.options.showFrame){var c=this.options.frameWidth?this.options.frameWidth:l;this.container.style.borderTopWidth=c+"px",this.container.style.borderBottomWidth=c+"px"}var d=t*s-this._decoratingElementsHeight();this.container.style.top=u+"px",this.container.style.height=d+"px",this.container.style.overflow="hidden",this._doLayout(d,o),this.editor.setSelection(e);var h=Math.min(this.editor.getModel().getLineCount(),Math.max(1,e.endLineNumber+1));this.editor.revealLine(h)},t.prototype.setCssClass=function(e,t){t&&this.container.classList.remove(t),r.addClass(this.container,e)},t.prototype._onWidth=function(e){},t.prototype._doLayout=function(e,t){},t.prototype._relayout=function(e){var t=this;this._viewZone.heightInLines!==e&&this.editor.changeViewZones(function(n){t._viewZone.heightInLines=e,n.layoutZone(t._viewZone.id)})},t.prototype._initSash=function(){var e=this;this._resizeSash=new s.Sash(this.domNode,this,{orientation:s.Orientation.HORIZONTAL}),this.options.isResizeable||(this._resizeSash.hide(),this._resizeSash.disable());var t;this._disposables.push(this._resizeSash.addListener("start",function(n){e._viewZone&&(t={startY:n.startY,heightInLines:e._viewZone.heightInLines})})),this._disposables.push(this._resizeSash.addListener("end",function(){t=void 0})),this._disposables.push(this._resizeSash.addListener("change",function(n){if(t){var i=(n.currentY-t.startY)/e.editor.getConfiguration().lineHeight,o=i<0?Math.ceil(i):Math.floor(i),r=t.heightInLines+o;r>5&&r<35&&e._relayout(r)}}))},t.prototype.getHorizontalSashLeft=function(){return 0},t.prototype.getHorizontalSashTop=function(){return parseInt(this.domNode.style.height)-this._decoratingElementsHeight()/2},t.prototype.getHorizontalSashWidth=function(){var e=this.editor.getLayoutInfo();return e.width-e.minimapWidth},t}(i.Widget);t.ZoneWidget=v}),define(d[326],h([5,7]),function(e,t){return e.create("vs/editor/common/modes/modesRegistry",t)}),define(d[327],h([5,7]),function(e,t){return e.create("vs/editor/common/services/bulkEdit",t)}),define(d[328],h([0,1,327,27,154,3,24,8,57,2,22]),function(e,t,n,i,o,r,s,a,u,l,c){"use strict";function d(e,t,i){function r(){for(var e,t=0,i=u;t1&&t>1?n.localize(2,null,e,t):n.localize(3,null,e,t)}}}Object.defineProperty(t,"__esModule",{value:!0});var h=function(){function e(e){this._fileService=e}return e.prototype.start=function(){var e,t=Object.create(null);return this._fileService&&(e=this._fileService.onFileChanges(function(e){e.changes.forEach(function(e){var n=String(e.resource),i=t[n];i||(t[n]=i=[]),i.push(e)})})),{stop:function(){return e&&e.dispose()},hasChanged:function(e){return!!t[e.toString()]},allChanges:function(){return i.flatten(o.values(t))}}},e}(),p=function(){function e(e){this._endCursorSelection=null,this._modelReference=e,this._edits=[]}return Object.defineProperty(e.prototype,"_model",{get:function(){return this._modelReference.object.textEditorModel},enumerable:!0,configurable:!0}),e.prototype.addEdit=function(e){if("number"==typeof e.newEol&&(this._newEol=e.newEol),e.range||e.newText){var t=void 0;t=e.range?l.Range.lift(e.range):this._model.getFullModelRange(),this._edits.push(u.EditOperation.replaceMove(t,e.newText))}},e.prototype.apply=function(){var e=this;this._edits.length>0&&(this._edits=this._edits.map(function(e,t){return{value:e,index:t}}).sort(function(e,t){var n=l.Range.compareRangesUsingStarts(e.value.range,t.value.range);return 0===n&&(n=e.index-t.index),n}).map(function(e){return e.value}),this._initialSelections=this._getInitialSelections(),this._model.pushEditOperations(this._initialSelections,this._edits,function(t){return e._getEndCursorSelections(t)})),void 0!==this._newEol&&this._model.setEOL(this._newEol)},e.prototype._getInitialSelections=function(){var e=this._edits[0].range;return[new c.Selection(e.startLineNumber,e.startColumn,e.endLineNumber,e.endColumn)]},e.prototype._getEndCursorSelections=function(e){for(var t=0,n=0;nt.prefixLen?-1:e.prefixLent.offsetDist?1:0})[0];if(n)return this._references[n.idx]},e.prototype.dispose=function(){this._groups=s.dispose(this._groups)},e._compareReferences=function(e,t){var n=e.uri.toString(),i=t.uri.toString();return ni?1:c.Range.compareRangesUsingStarts(e.range,t.range)},e}();t.ReferencesModel=f}),define(d[357],h([5,7]),function(e,t){return e.create("vs/editor/contrib/referenceSearch/browser/referencesWidget",t)}),define(d[358],h([5,7]),function(e,t){return e.create("vs/editor/contrib/rename/browser/rename",t)}),define(d[359],h([5,7]),function(e,t){return e.create("vs/editor/contrib/rename/browser/renameInputField",t)}),define(d[360],h([5,7]),function(e,t){return e.create("vs/editor/contrib/smartSelect/common/smartSelect",t)}),define(d[361],h([5,7]),function(e,t){return e.create("vs/editor/contrib/suggest/browser/suggestController",t)}),define(d[362],h([5,7]),function(e,t){return e.create("vs/editor/contrib/suggest/browser/suggestWidget",t)}),define(d[363],h([5,7]),function(e,t){return e.create("vs/editor/contrib/toggleTabFocusMode/common/toggleTabFocusMode",t)}),define(d[364],h([5,7]),function(e,t){return e.create("vs/editor/contrib/wordHighlighter/common/wordHighlighter",t)}),define(d[365],h([5,7]),function(e,t){return e.create("vs/editor/contrib/zoneWidget/browser/peekViewWidget",t)}),define(d[366],h([5,7]),function(e,t){return e.create("vs/editor/standalone/browser/inspectTokens/inspectTokens",t)}),define(d[367],h([5,7]),function(e,t){return e.create("vs/editor/standalone/browser/quickOpen/gotoLine",t)}),define(d[368],h([5,7]),function(e,t){return e.create("vs/editor/standalone/browser/quickOpen/quickCommand",t)}),define(d[369],h([5,7]),function(e,t){return e.create("vs/editor/standalone/browser/quickOpen/quickOutline",t)}),define(d[200],h([5,7]),function(e,t){return e.create("vs/editor/standalone/browser/standaloneCodeEditor",t)}),define(d[371],h([5,7]),function(e,t){return e.create("vs/editor/standalone/browser/toggleHighContrast/toggleHighContrast",t)}),define(d[372],h([5,7]),function(e,t){return e.create("vs/platform/configuration/common/configurationRegistry",t)}),define(d[373],h([5,7]),function(e,t){return e.create("vs/platform/keybinding/common/abstractKeybindingService",t)}),define(d[374],h([5,7]),function(e,t){return e.create("vs/platform/message/common/message",t)}),define(d[375],h([5,7]),function(e,t){return e.create("vs/platform/theme/common/colorRegistry",t)}),define(d[376],h([0,1,50,3,45,55,272,81,40,231]),function(e,t,n,i,o,r,s,a,u){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var l=function(){function e(e,t,n,i){var o=this;this.setContainer(e),this.contextViewService=t,this.telemetryService=n,this.messageService=i,this.actionRunner=new r.ActionRunner,this.menuContainerElement=null,this.toDispose=[];var s=!1;this.toDispose.push(this.actionRunner.addListener(a.EventType.BEFORE_RUN,function(e){o.telemetryService&&o.telemetryService.publicLog("workbenchActionExecuted",{id:e.action.id,from:"contextMenu"}),(s=!!e.retainActionItem)||o.contextViewService.hideContextView(!1)})),this.toDispose.push(this.actionRunner.addListener(a.EventType.RUN,function(e){s&&o.contextViewService.hideContextView(!1),s=!1,e.error&&o.messageService&&o.messageService.show(u.default.Error,e.error)}))}return e.prototype.setContainer=function(e){var t=this;this.$el&&(this.$el.off(["click","mousedown"]),this.$el=null),e&&(this.$el=n.$(e),this.$el.on("mousedown",function(e){return t.onMouseDown(e)}))},e.prototype.showContextMenu=function(e){var t=this;e.getActions().done(function(n){t.contextViewService.showContextView({getAnchor:function(){return e.getAnchor()},canRelayout:!1,render:function(o){t.menuContainerElement=o;var r=e.getMenuClassName?e.getMenuClassName():"";r&&(o.className+=" "+r);var u=new s.Menu(o,n,{actionItemProvider:e.getActionItem,context:e.getActionsContext?e.getActionsContext():null,actionRunner:t.actionRunner}),l=u.addListener(a.EventType.CANCEL,function(e){t.contextViewService.hideContextView(!0)}),c=u.addListener(a.EventType.BLUR,function(e){t.contextViewService.hideContextView(!0)});return u.focus(),i.combinedDisposable([l,c,u])},onHide:function(n){e.onHide&&e.onHide(n),t.menuContainerElement=null}})})},e.prototype.onMouseDown=function(e){if(this.menuContainerElement){for(var t=new o.StandardMouseEvent(e).target;t;){if(t===this.menuContainerElement)return;t=t.parentElement}this.contextViewService.hideContextView()}},e.prototype.dispose=function(){this.setContainer(null)},e}();t.ContextMenuHandler=l}),define(d[377],h([0,1,376]),function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t,i,o){this.contextMenuHandler=new n.ContextMenuHandler(e,o,t,i)}return e.prototype.dispose=function(){this.contextMenuHandler.dispose()},e.prototype.setContainer=function(e){this.contextMenuHandler.setContainer(e)},e.prototype.showContextMenu=function(e){this.contextMenuHandler.showContextMenu(e)},e}();t.ContextMenuService=i}),define(d[168],h([0,1,10]),function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e){this._staticArguments=e}return e.prototype.appendStaticArguments=function(e){this._staticArguments.push.apply(this._staticArguments,e)},e.prototype.staticArguments=function(e){return isNaN(e)?this._staticArguments.slice(0):this._staticArguments[e]},e.prototype._validate=function(e){if(!e)throw n.illegalArgument("can not be falsy")},e}();t.AbstractDescriptor=i;var o=function(e){function t(t){for(var n=[],i=1;ig&&(this._editorWorkerClient.dispose(),this._editorWorkerClient=null)},t.prototype.withWorker=function(){return this._lastWorkerUsedTime=(new Date).getTime(),this._editorWorkerClient||(this._editorWorkerClient=new S(this._modelService,"editorWorkerService")),o.TPromise.as(this._editorWorkerClient)},t}(i.Disposable),C=function(e){function t(t,i,o){var r=e.call(this)||this;if(r._syncedModels=Object.create(null),r._syncedModelsLastUsedTime=Object.create(null),r._proxy=t,r._modelService=i,!o){var s=new n.IntervalTimer;s.cancelAndSet(function(){return r._checkStopModelSync()},Math.round(p/2)),r._register(s)}return r}return f(t,e),t.prototype.dispose=function(){for(var t in this._syncedModels)i.dispose(this._syncedModels[t]);this._syncedModels=Object.create(null),this._syncedModelsLastUsedTime=Object.create(null),e.prototype.dispose.call(this)},t.prototype.esureSyncedResources=function(e){for(var t=0;tp&&t.push(n);for(var i=0;i=0&&(t.splice(i,1),0===t.length&&n._commands.delete(e))}else r(t)&&n._commands.delete(e)}}},e.prototype.getCommand=function(e){var t=this._commands.get(e);return Array.isArray(t)?t[0]:t},e.prototype.getCommands=function(){var e=this,t=Object.create(null);return this._commands.forEach(function(n,i){t[i]=e.getCommand(i)}),t},e}()),t.NullCommandService={_serviceBrand:void 0,onWillExecuteCommand:function(){return{dispose:function(){}}},executeCommand:function(){return n.TPromise.as(void 0)}}}),define(d[391],h([0,1,10,24,8,2,17,18,31,53]),function(e,t,n,i,o,r,s,a,u,l){"use strict";function c(e){var t=[],i=s.LinkProviderRegistry.ordered(e).reverse().map(function(i){return a.asWinJsPromise(function(t){return i.provideLinks(e,t)}).then(function(e){if(Array.isArray(e)){var n=e.map(function(e){return new h(e,i)});t=d(t,n)}},n.onUnexpectedExternalError)});return o.TPromise.join(i).then(function(){return t})}function d(e,t){var n,i,o,s,a,u,l=[];for(n=0,o=0,i=e.length,s=t.length;n=0&&i.splice(e,1)}}},e.prototype.getMenuItems=function(e){var t=e.id,n=this._menuItems[t]||[];return t===s.CommandPalette.id&&this._appendImplicitItems(n),n},e.prototype._appendImplicitItems=function(e){for(var t=new Set,n=0,i=e;n=0){t=e.split("!=");return new u(t[0].trim(),this._deserializeValue(t[1]))}if(e.indexOf("==")>=0){var t=e.split("==");return new a(t[0].trim(),this._deserializeValue(t[1]))}return/^\!\s*/.test(e)?new l(e.substr(1).trim()):new s(e)},e._deserializeValue=function(e){if("true"===(e=e.trim()))return!0;if("false"===e)return!1;var t=/^'([^']*)'$/.exec(e);return t?t[1].trim():e},e}();t.ContextKeyExpr=r;var s=function(){function e(e){this.key=e}return e.prototype.getType=function(){return o.Defined},e.prototype.cmp=function(e){return this.keye.key?1:0},e.prototype.equals=function(t){return t instanceof e&&this.key===t.key},e.prototype.evaluate=function(e){return!!e.getValue(this.key)},e.prototype.normalize=function(){return this},e.prototype.serialize=function(){return this.key},e.prototype.keys=function(){return[this.key]},e}();t.ContextKeyDefinedExpr=s;var a=function(){function e(e,t){this.key=e,this.value=t}return e.prototype.getType=function(){return o.Equals},e.prototype.cmp=function(e){return this.keye.key?1:this.valuee.value?1:0},e.prototype.equals=function(t){return t instanceof e&&(this.key===t.key&&this.value===t.value)},e.prototype.evaluate=function(e){return e.getValue(this.key)==this.value},e.prototype.normalize=function(){return"boolean"==typeof this.value?this.value?new s(this.key):new l(this.key):this},e.prototype.serialize=function(){return"boolean"==typeof this.value?this.normalize().serialize():this.key+" == '"+this.value+"'"},e.prototype.keys=function(){return[this.key]},e}();t.ContextKeyEqualsExpr=a;var u=function(){function e(e,t){this.key=e,this.value=t}return e.prototype.getType=function(){return o.NotEquals},e.prototype.cmp=function(e){return this.keye.key?1:this.valuee.value?1:0},e.prototype.equals=function(t){return t instanceof e&&(this.key===t.key&&this.value===t.value)},e.prototype.evaluate=function(e){return e.getValue(this.key)!=this.value},e.prototype.normalize=function(){return"boolean"==typeof this.value?this.value?new l(this.key):new s(this.key):this},e.prototype.serialize=function(){return"boolean"==typeof this.value?this.normalize().serialize():this.key+" != '"+this.value+"'"},e.prototype.keys=function(){return[this.key]},e}();t.ContextKeyNotEqualsExpr=u;var l=function(){function e(e){this.key=e}return e.prototype.getType=function(){return o.Not},e.prototype.cmp=function(e){return this.keye.key?1:0},e.prototype.equals=function(t){return t instanceof e&&this.key===t.key},e.prototype.evaluate=function(e){return!e.getValue(this.key)},e.prototype.normalize=function(){return this},e.prototype.serialize=function(){return"!"+this.key},e.prototype.keys=function(){return[this.key]},e}();t.ContextKeyNotExpr=l;var c=function(){function e(t){this.expr=e._normalizeArr(t)}return e.prototype.getType=function(){return o.And},e.prototype.equals=function(t){if(t instanceof e){if(this.expr.length!==t.expr.length)return!1;for(var n=0,i=this.expr.length;n0&&t.push([s,a])}return t},e._fillInKbExprKeys=function(e,t){if(e)for(var n=0,i=e.keys();ns)return 1;var a="string"==typeof e.command.title?e.command.title:e.command.title.value,u="string"==typeof t.command.title?t.command.title:t.command.title.value;return a.localeCompare(u)},e}();a=v([y(2,s.ICommandService),y(3,o.IContextKeyService)],a),t.Menu=a}),define(d[71],h([0,1,55,16]),function(e,t,n,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.IContextViewService=i.createDecorator("contextViewService"),t.IContextMenuService=i.createDecorator("contextMenuService");var o=function(e){function t(t,n){var i=e.call(this,"contextsubmenu",t,"",!0)||this;return i.entries=n,i}return f(t,e),t}(n.Action);t.ContextSubMenu=o}),define(d[59],h([0,1,16]),function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.IEditorService=n.createDecorator("editorService");var i;!function(e){e[e.ONE=0]="ONE",e[e.TWO=1]="TWO",e[e.THREE=2]="THREE"}(i=t.Position||(t.Position={})),t.POSITIONS=[i.ONE,i.TWO,i.THREE];!function(e){e[e.LEFT=0]="LEFT",e[e.RIGHT=1]="RIGHT"}(t.Direction||(t.Direction={}));!function(e){e[e.SHORT=0]="SHORT",e[e.MEDIUM=1]="MEDIUM",e[e.LONG=2]="LONG"}(t.Verbosity||(t.Verbosity={}))}),define(d[196],h([0,1,16]),function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.IEnvironmentService=n.createDecorator("environmentService")}),define(d[401],h([0,1,46,81,15,16,9]),function(e,t,n,i,o,r,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.IFileService=r.createDecorator("fileService");!function(e){e[e.CREATE=0]="CREATE",e[e.DELETE=1]="DELETE",e[e.MOVE=2]="MOVE",e[e.COPY=3]="COPY",e[e.IMPORT=4]="IMPORT"}(t.FileOperation||(t.FileOperation={}));var a=function(){function e(e,t,n){this._resource=e,this._operation=t,this._target=n}return Object.defineProperty(e.prototype,"resource",{get:function(){return this._resource},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"target",{get:function(){return this._target},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"operation",{get:function(){return this._operation},enumerable:!0,configurable:!0}),e}();t.FileOperationEvent=a;var u;!function(e){e[e.UPDATED=0]="UPDATED",e[e.ADDED=1]="ADDED",e[e.DELETED=2]="DELETED"}(u=t.FileChangeType||(t.FileChangeType={}));var l=function(e){function t(t){var n=e.call(this)||this;return n._changes=t,n}return f(t,e),Object.defineProperty(t.prototype,"changes",{get:function(){return this._changes},enumerable:!0,configurable:!0}),t.prototype.contains=function(e,t){return!!e&&this._changes.some(function(i){return i.type===t&&(t===u.DELETED?n.isEqualOrParent(e.fsPath,i.resource.fsPath,!o.isLinux):n.isEqual(e.fsPath,i.resource.fsPath,!o.isLinux))})},t.prototype.getAdded=function(){return this.getOfType(u.ADDED)},t.prototype.gotAdded=function(){return this.hasType(u.ADDED)},t.prototype.getDeleted=function(){return this.getOfType(u.DELETED)},t.prototype.gotDeleted=function(){return this.hasType(u.DELETED)},t.prototype.getUpdated=function(){return this.getOfType(u.UPDATED)},t.prototype.gotUpdated=function(){return this.hasType(u.UPDATED)},t.prototype.getOfType=function(e){return this._changes.filter(function(t){return t.type===e})},t.prototype.hasType=function(e){return this._changes.some(function(t){return t.type===e})},t}(i.Event);t.FileChangesEvent=l,t.isParent=function(e,t,i){return!(!e||!t||e===t)&&!(t.length>e.length)&&(t.charAt(t.length-1)!==n.nativeSep&&(t+=n.nativeSep),i?s.beginsWithIgnoreCase(e,t):0===e.indexOf(t))},t.indexOf=function(e,t,n){return t.length>e.length?-1:e===t?0:(n&&(e=e.toLowerCase(),t=t.toLowerCase()),e.indexOf(t))};var c=function(e){function t(t,n){var i=e.call(this,t)||this;return i.fileOperationResult=n,i}return f(t,e),t}(Error);t.FileOperationError=c;!function(e){e[e.FILE_IS_BINARY=0]="FILE_IS_BINARY",e[e.FILE_IS_DIRECTORY=1]="FILE_IS_DIRECTORY",e[e.FILE_NOT_FOUND=2]="FILE_NOT_FOUND",e[e.FILE_NOT_MODIFIED_SINCE=3]="FILE_NOT_MODIFIED_SINCE",e[e.FILE_MODIFIED_SINCE=4]="FILE_MODIFIED_SINCE",e[e.FILE_MOVE_CONFLICT=5]="FILE_MOVE_CONFLICT",e[e.FILE_READ_ONLY=6]="FILE_READ_ONLY",e[e.FILE_TOO_LARGE=7]="FILE_TOO_LARGE",e[e.FILE_INVALID_PATH=8]="FILE_INVALID_PATH"}(t.FileOperationResult||(t.FileOperationResult={})),t.MAX_FILE_SIZE=52428800,t.AutoSaveConfiguration={OFF:"off",AFTER_DELAY:"afterDelay",ON_FOCUS_CHANGE:"onFocusChange",ON_WINDOW_CHANGE:"onWindowChange"},t.HotExitConfiguration={OFF:"off",ON_EXIT:"onExit",ON_EXIT_AND_WINDOW_CLOSE:"onExitAndWindowClose"},t.CONTENT_CHANGE_EVENT_BUFFER_DELAY=1e3,t.SUPPORTED_ENCODINGS={utf8:{labelLong:"UTF-8",labelShort:"UTF-8",order:1,alias:"utf8bom"},utf8bom:{labelLong:"UTF-8 with BOM",labelShort:"UTF-8 with BOM",encodeOnly:!0,order:2,alias:"utf8"},utf16le:{labelLong:"UTF-16 LE",labelShort:"UTF-16 LE",order:3},utf16be:{labelLong:"UTF-16 BE",labelShort:"UTF-16 BE",order:4},windows1252:{labelLong:"Western (Windows 1252)",labelShort:"Windows 1252",order:5},iso88591:{labelLong:"Western (ISO 8859-1)",labelShort:"ISO 8859-1",order:6},iso88593:{labelLong:"Western (ISO 8859-3)",labelShort:"ISO 8859-3",order:7},iso885915:{labelLong:"Western (ISO 8859-15)",labelShort:"ISO 8859-15",order:8},macroman:{labelLong:"Western (Mac Roman)",labelShort:"Mac Roman",order:9},cp437:{labelLong:"DOS (CP 437)",labelShort:"CP437",order:10},windows1256:{labelLong:"Arabic (Windows 1256)",labelShort:"Windows 1256",order:11},iso88596:{labelLong:"Arabic (ISO 8859-6)",labelShort:"ISO 8859-6",order:12},windows1257:{labelLong:"Baltic (Windows 1257)",labelShort:"Windows 1257",order:13},iso88594:{labelLong:"Baltic (ISO 8859-4)",labelShort:"ISO 8859-4",order:14},iso885914:{labelLong:"Celtic (ISO 8859-14)",labelShort:"ISO 8859-14",order:15},windows1250:{labelLong:"Central European (Windows 1250)",labelShort:"Windows 1250",order:16},iso88592:{labelLong:"Central European (ISO 8859-2)",labelShort:"ISO 8859-2",order:17},cp852:{labelLong:"Central European (CP 852)",labelShort:"CP 852",order:18},windows1251:{labelLong:"Cyrillic (Windows 1251)",labelShort:"Windows 1251",order:19},cp866:{labelLong:"Cyrillic (CP 866)",labelShort:"CP 866",order:20},iso88595:{labelLong:"Cyrillic (ISO 8859-5)",labelShort:"ISO 8859-5",order:21},koi8r:{labelLong:"Cyrillic (KOI8-R)",labelShort:"KOI8-R",order:22},koi8u:{labelLong:"Cyrillic (KOI8-U)",labelShort:"KOI8-U",order:23},iso885913:{labelLong:"Estonian (ISO 8859-13)",labelShort:"ISO 8859-13",order:24},windows1253:{labelLong:"Greek (Windows 1253)",labelShort:"Windows 1253",order:25},iso88597:{labelLong:"Greek (ISO 8859-7)",labelShort:"ISO 8859-7",order:26},windows1255:{labelLong:"Hebrew (Windows 1255)",labelShort:"Windows 1255",order:27},iso88598:{labelLong:"Hebrew (ISO 8859-8)",labelShort:"ISO 8859-8",order:28},iso885910:{labelLong:"Nordic (ISO 8859-10)",labelShort:"ISO 8859-10",order:29},iso885916:{labelLong:"Romanian (ISO 8859-16)",labelShort:"ISO 8859-16",order:30},windows1254:{labelLong:"Turkish (Windows 1254)",labelShort:"Windows 1254",order:31},iso88599:{labelLong:"Turkish (ISO 8859-9)",labelShort:"ISO 8859-9",order:32},windows1258:{labelLong:"Vietnamese (Windows 1258)",labelShort:"Windows 1258",order:33},gbk:{labelLong:"Chinese (GBK)",labelShort:"GBK",order:34},gb18030:{labelLong:"Chinese (GB18030)",labelShort:"GB18030",order:35},cp950:{labelLong:"Traditional Chinese (Big5)",labelShort:"Big5",order:36},big5hkscs:{labelLong:"Traditional Chinese (Big5-HKSCS)",labelShort:"Big5-HKSCS",order:37},shiftjis:{labelLong:"Japanese (Shift JIS)",labelShort:"Shift JIS",order:38},eucjp:{labelLong:"Japanese (EUC-JP)",labelShort:"EUC-JP",order:39},euckr:{labelLong:"Korean (EUC-KR)",labelShort:"EUC-KR",order:40},windows874:{labelLong:"Thai (Windows 874)",labelShort:"Windows 874",order:41},iso885911:{labelLong:"Latin/Thai (ISO 8859-11)",labelShort:"ISO 8859-11",order:42},koi8ru:{labelLong:"Cyrillic (KOI8-RU)",labelShort:"KOI8-RU",order:43},koi8t:{labelLong:"Tajik (KOI8-T)",labelShort:"KOI8-T",order:44},gb2312:{labelLong:"Simplified Chinese (GB 2312)",labelShort:"GB 2312",order:45}}}),define(d[84],h([0,1]),function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=function(){function e(){for(var e=[],t=0;t0?i[0].index:n.length;if(n.length!==d){console.warn("[createInstance] First service dependency of "+e.ctor.name+" at position "+(d+1)+" conflicts with "+n.length+" static arguments");var h=d-n.length;n=h>0?n.concat(new Array(h)):n.slice(0,d)}var p=[e.ctor];p.push.apply(p,n),p.push.apply(p,r);var f=o.create.apply(null,p);return e._validate(f),f},t.prototype._getOrCreateServiceInstance=function(e){var t=this._services.get(e);return t instanceof a.SyncDescriptor?this._createAndCacheServiceInstance(e,t):t},t.prototype._createAndCacheServiceInstance=function(e,t){function n(){var e=new Error("[createInstance] cyclic dependency between services");throw e.message=i.toString(),e}r.ok(this._services.get(e)instanceof a.SyncDescriptor);for(var i=new s.Graph(function(e){return e.id.toString()}),o=0,l=[{id:e,desc:t}];l.length;){var c=l.pop();i.lookupOrInsertNode(c),o++>100&&n();for(var d=0,h=u._util.getServiceDependencies(c.desc.ctor);d=0;c--)this._isTargetedForRemoval(e[c],a,u,s,l)&&e.splice(c,1);else n.push(r)}return e.concat(n)},e.prototype._addKeyPress=function(t,n){var i=this._map.get(t);if(void 0===i)return this._map.set(t,[n]),void this._addToLookupMap(n);for(var o=i.length-1;o>=0;o--){var r=i[o];if(r.command!==n.command){var s=null!==r.keypressChordPart,a=null!==n.keypressChordPart;s&&a&&r.keypressChordPart!==n.keypressChordPart||e.whenIsEntirelyIncluded(!0,r.when,n.when)&&this._removeFromLookupMap(r)}}i.push(n),this._addToLookupMap(n)},e.prototype._addToLookupMap=function(e){if(e.command){var t=this._lookupMap.get(e.command);void 0===t?(t=[e],this._lookupMap.set(e.command,t)):t.push(e)}},e.prototype._removeFromLookupMap=function(e){var t=this._lookupMap.get(e.command);if(void 0!==t)for(var n=0,i=t.length;n=0;o--)n[i++]=t[o];return n},e.prototype.lookupPrimaryKeybinding=function(e){var t=this._lookupMap.get(e);return void 0===t||0===t.length?null:t[t.length-1]},e.prototype.resolve=function(e,t,n){var i=null;if(null!==t){if(void 0===(a=this._map.get(t)))return null;i=[];for(var o=0,r=a.length;o=0;i--){var o=n[i];if(e.contextMatchesRules(t,o.when))return o}return null},e.contextMatchesRules=function(e,t){return!t||t.evaluate(e)},e.getAllUnboundCommands=function(e){var t=i.CommandsRegistry.getCommands(),o=[];for(var r in t)"_"!==r[0]&&0!==r.indexOf("vscode.")&&("object"!=typeof t[r].description||n.isFalsyOrEmpty(t[r].description.args))&&!0!==e.get(r)&&o.push(r);return o},e}();t.KeybindingResolver=o}),define(d[407],h([0,1,3,31,191,19,73,11]),function(e,t,n,i,o,r,s,a){"use strict";function u(e){for(;e;){if(e.hasAttribute(l))return parseInt(e.getAttribute(l),10);e=e.parentElement}return 0}Object.defineProperty(t,"__esModule",{value:!0});var l="data-keybinding-context",c=function(){function e(e,t){this._id=e,this._parent=t,this._value=Object.create(null),this._value._contextId=e}return e.prototype.setValue=function(e,t){return this._value[e]!==t&&(this._value[e]=t,!0)},e.prototype.removeValue=function(e){return delete this._value[e]},e.prototype.getValue=function(e){var t=this._value[e];return void 0===t&&this._parent?this._parent.getValue(e):t},e}();t.Context=c;var d=function(e){function t(t,n,i){var o=e.call(this,t,null)||this;return o._emitter=i,o._subscription=n.onDidUpdateConfiguration(function(e){return o._updateConfigurationContext(n.getConfiguration())}),o._updateConfigurationContext(n.getConfiguration()),o}return f(t,e),t.prototype.dispose=function(){this._subscription.dispose()},t.prototype._updateConfigurationContext=function(e){var t=this;for(var n in this._value)0===n.indexOf("config.")&&delete this._value[n];var i=function(e,n){for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){n.push(o);var r=e[o];if("boolean"==typeof r){var s=n.join(".");t._value[s]=r,t._emitter.fire(s)}else"object"==typeof r&&i(r,n);n.pop()}};i(e,["config"])},t}(c),h=function(){function e(e,t,n){this._parent=e,this._key=t,this._defaultValue=n,this.reset()}return e.prototype.set=function(e){this._parent.setContext(this._key,e)},e.prototype.reset=function(){void 0===this._defaultValue?this._parent.removeContext(this._key):this._parent.setContext(this._key,this._defaultValue)},e.prototype.get=function(){return this._parent.getContextKeyValue(this._key)},e}(),p=function(){function e(e){this._myContextId=e,this._onDidChangeContextKey=new a.Emitter}return e.prototype.createKey=function(e,t){return new h(this,e,t)},Object.defineProperty(e.prototype,"onDidChangeContext",{get:function(){return this._onDidChangeContext||(this._onDidChangeContext=a.debounceEvent(this._onDidChangeContextKey.event,function(e,t){return e?e.indexOf(t)<0&&e.push(t):e=[t],e},25)),this._onDidChangeContext},enumerable:!0,configurable:!0}),e.prototype.createScoped=function(e){return new m(this,this._onDidChangeContextKey,e)},e.prototype.contextMatchesRules=function(e){var t=this.getContextValuesContainer(this._myContextId);return o.KeybindingResolver.contextMatchesRules(t,e)},e.prototype.getContextKeyValue=function(e){return this.getContextValuesContainer(this._myContextId).getValue(e)},e.prototype.setContext=function(e,t){this.getContextValuesContainer(this._myContextId).setValue(e,t)&&this._onDidChangeContextKey.fire(e)},e.prototype.removeContext=function(e){this.getContextValuesContainer(this._myContextId).removeValue(e)&&this._onDidChangeContextKey.fire(e)},e.prototype.getContext=function(e){return this.getContextValuesContainer(u(e))},e}();t.AbstractContextKeyService=p;var g=function(e){function t(t){var n=e.call(this,0)||this;n._toDispose=[],n._lastContextId=0,n._contexts=Object.create(null);var i=new d(n._myContextId,t,n._onDidChangeContextKey);return n._contexts[String(n._myContextId)]=i,n._toDispose.push(i),n}return f(t,e),t.prototype.dispose=function(){this._toDispose=n.dispose(this._toDispose)},t.prototype.getContextValuesContainer=function(e){return this._contexts[String(e)]},t.prototype.createChildContext=function(e){void 0===e&&(e=this._myContextId);var t=++this._lastContextId;return this._contexts[String(t)]=new c(t,this.getContextValuesContainer(e)),t},t.prototype.disposeContext=function(e){delete this._contexts[String(e)]},t}(p);g=v([y(0,s.IConfigurationService)],g),t.ContextKeyService=g;var m=function(e){function t(t,n,i){var o=e.call(this,t.createChildContext())||this;return o._parent=t,o._onDidChangeContextKey=n,i&&(o._domNode=i,o._domNode.setAttribute(l,String(o._myContextId))),o}return f(t,e),t.prototype.dispose=function(){this._parent.disposeContext(this._myContextId),this._domNode&&this._domNode.removeAttribute(l)},Object.defineProperty(t.prototype,"onDidChangeContext",{get:function(){return this._parent.onDidChangeContext},enumerable:!0,configurable:!0}),t.prototype.getContextValuesContainer=function(e){return this._parent.getContextValuesContainer(e)},t.prototype.createChildContext=function(e){return void 0===e&&(e=this._myContextId),this._parent.createChildContext(e)},t.prototype.disposeContext=function(e){this._parent.disposeContext(e)},t}(p);i.CommandsRegistry.registerCommand(r.SET_CONTEXT_COMMAND_ID,function(e,t,n){e.get(r.IContextKeyService).createKey(String(t),n)})}),define(d[408],h([0,1]),function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=function(){return function(e,t,n,i,o){if(this.resolvedKeybinding=e,e){var r=e.getDispatchParts(),s=r[0],a=r[1];this.keypressFirstPart=s,this.keypressChordPart=a}else this.keypressFirstPart=null,this.keypressChordPart=null;this.bubble=!!t&&94===t.charCodeAt(0),this.command=this.bubble?t.substr(1):t,this.commandArgs=n,this.when=i,this.isDefault=o}}();t.ResolvedKeybindingItem=n}),define(d[409],h([0,1,39,195]),function(e,t,n,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=function(e){function t(t,n){var i=e.call(this)||this;return i._os=n,null===t?(i._firstPart=null,i._chordPart=null):2===t.type?(i._firstPart=t.firstPart,i._chordPart=t.chordPart):(i._firstPart=t,i._chordPart=null),i}return f(t,e),t.prototype._keyCodeToUILabel=function(e){if(2===this._os)switch(e){case 15:return"←";case 16:return"↑";case 17:return"→";case 18:return"↓"}return n.KeyCodeUtils.toString(e)},t.prototype._getUILabelForKeybinding=function(e){return e?e.isDuplicateModifierCase()?"":this._keyCodeToUILabel(e.keyCode):null},t.prototype.getLabel=function(){var e=this._getUILabelForKeybinding(this._firstPart),t=this._getUILabelForKeybinding(this._chordPart);return i.UILabelProvider.toLabel(this._firstPart,e,this._chordPart,t,this._os)},t.prototype._getAriaLabelForKeybinding=function(e){return e?e.isDuplicateModifierCase()?"":n.KeyCodeUtils.toString(e.keyCode):null},t.prototype.getAriaLabel=function(){var e=this._getAriaLabelForKeybinding(this._firstPart),t=this._getAriaLabelForKeybinding(this._chordPart);return i.AriaLabelProvider.toLabel(this._firstPart,e,this._chordPart,t,this._os)},t.prototype._keyCodeToElectronAccelerator=function(e){if(e>=93&&e<=108)return null;switch(e){case 16:return"Up";case 18:return"Down";case 15:return"Left";case 17:return"Right"}return n.KeyCodeUtils.toString(e)},t.prototype._getElectronAcceleratorLabelForKeybinding=function(e){return e?e.isDuplicateModifierCase()?null:this._keyCodeToElectronAccelerator(e.keyCode):null},t.prototype.getElectronAccelerator=function(){if(null!==this._chordPart)return null;var e=this._getElectronAcceleratorLabelForKeybinding(this._firstPart);return i.ElectronAcceleratorLabelProvider.toLabel(this._firstPart,e,null,null,this._os)},t.prototype._getUserSettingsLabelForKeybinding=function(e){return e?e.isDuplicateModifierCase()?"":n.KeyCodeUtils.toUserSettingsUS(e.keyCode):null},t.prototype.getUserSettingsLabel=function(){var e=this._getUserSettingsLabelForKeybinding(this._firstPart),t=this._getUserSettingsLabelForKeybinding(this._chordPart),n=i.UserSettingsLabelProvider.toLabel(this._firstPart,e,this._chordPart,t,this._os);return n?n.toLowerCase():n},t.prototype.isWYSIWYG=function(){return!0},t.prototype.isChord=function(){return!!this._chordPart},t.prototype.getParts=function(){return[this._toResolvedKeybindingPart(this._firstPart),this._toResolvedKeybindingPart(this._chordPart)]},t.prototype._toResolvedKeybindingPart=function(e){return e?new n.ResolvedKeybindingPart(e.ctrlKey,e.shiftKey,e.altKey,e.metaKey,this._getUILabelForKeybinding(e),this._getAriaLabelForKeybinding(e)):null},t.prototype.getDispatchParts=function(){return[this._firstPart?t.getDispatchStr(this._firstPart):null,this._chordPart?t.getDispatchStr(this._chordPart):null]},t.getDispatchStr=function(e){if(e.isModifierKey())return null;var t="";return e.ctrlKey&&(t+="ctrl+"),e.shiftKey&&(t+="shift+"),e.altKey&&(t+="alt+"),e.metaKey&&(t+="meta+"),t+=n.KeyCodeUtils.toString(e.keyCode)},t}(n.ResolvedKeybinding);t.USLayoutResolvedKeybinding=o}),define(d[410],h([0,1,27,68,29,11,40]),function(e,t,n,i,o,r,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var a;!function(e){e.get=function(e,t,n){if(e[t])return e[t][n]},e.set=function(e,t,n,i){e[t]||(e[t]=Object.create(null)),e[t][n]=i},e.remove=function(e,t,n){return!(!e[t]||!e[t][n]||(delete e[t][n],o.isEmptyObject(e[t])&&delete e[t],0))}}(a||(a={}));var u=function(){function e(e){this.errors=0,this.infos=0,this.warnings=0,this.unknowns=0,this._data=Object.create(null),this._service=e,this._subscription=e.onMarkerChanged(this._update,this)}return e.prototype.dispose=function(){this._subscription.dispose(),this._data=void 0},e.prototype._update=function(e){for(var t=0,n=e;t0?a:1,u=u>0?u:1,l=l>=a?l:a,c=c>0?c:u,{resource:t,owner:e,code:i,severity:o,message:r,source:s,startLineNumber:a,startColumn:u,endLineNumber:l,endColumn:c}},e.prototype.changeAll=function(t,i){var o=[],r=this._byOwner[t];if(r){delete this._byOwner[t];for(var s in r){var u=a.get(this._byResource,s,t)[0];u&&o.push(u.resource),a.remove(this._byResource,s,t)}}if(!n.isFalsyOrEmpty(i)){for(var l=Object.create(null),c=0,d=i;c0&&this._onMarkerChanged.fire(o)},e.prototype.read=function(e){void 0===e&&(e=Object.create(null));var t=e.owner,n=e.resource,i=e.take;if((!i||i<0)&&(i=-1),t&&n)return(d=a.get(this._byResource,n.toString(),t))?d.slice(0,i>0?i:void 0):[];if(t||n){var o=t?this._byOwner[t]:this._byResource[n.toString()];if(!o)return[];d=[];for(var r in o)for(var s=0,u=o[r];s0&&c===i)return d}return d}var d=[];for(var h in this._byResource)for(var p in this._byResource[h])for(var f=0,g=this._byResource[h][p];f0&&c===i)return d}return d},e._debouncer=function(t,n){t||(e._dedupeMap=Object.create(null),t=[]);for(var i=0,o=n;i0)})(s)&&(Array.isArray(s)?n=n.concat(s.map(e)):n.push(e(s)))}}return n},e.prototype.onResult=function(e,t){this._result=this._result.concat(e)},e.prototype.getResult=function(){return this._result},e.prototype.getResultWithLoadingMessage=function(){return this.getResult()},e}(),d=function(e){function t(i,o,r){var a=e.call(this,t.ID,i)||this;return a.openerService=o,a.modeService=r,a.openerService=o||s.NullOpenerService,a._lastLineNumber=-1,a._computer=new c(a._editor),a._hoverOperation=new n.HoverOperation(a._computer,function(e){return a._withResult(e)},null,function(e){return a._withResult(e)}),a}return f(t,e),t.prototype.dispose=function(){this._hoverOperation.cancel(),e.prototype.dispose.call(this)},t.prototype.onModelDecorationsChanged=function(){this.isVisible&&(this._hoverOperation.cancel(),this._computer.clearResult(),this._hoverOperation.start())},t.prototype.startShowingAt=function(e){this._lastLineNumber!==e&&(this._hoverOperation.cancel(),this.hide(),this._lastLineNumber=e,this._computer.setLineNumber(e),this._hoverOperation.start())},t.prototype.hide=function(){this._lastLineNumber=-1,this._hoverOperation.cancel(),e.prototype.hide.call(this)},t.prototype._withResult=function(e){this._messages=e,this._messages.length>0?this._renderMessages(this._lastLineNumber,this._messages):this.hide()},t.prototype._renderMessages=function(e,t){var n=this,i=document.createDocumentFragment();t.forEach(function(e){var t=r.renderMarkedString(e.value,{actionCallback:function(e){return n.openerService.open(a.default.parse(e)).then(void 0,u.onUnexpectedError)},codeBlockRenderer:function(e,t){var i=n.modeService.getModeIdForLanguageName(e);return n.modeService.getOrCreateMode(i).then(function(e){return'
        '+l.tokenizeToString(t,i)+"
        "})}});i.appendChild(o.$("div.hover-row",null,t))}),this.updateContents(i),this.showAt(e)},t}(i.GlyphHoverWidget);d.ID="editor.contrib.modesGlyphHoverWidget",t.ModesGlyphHoverWidget=d}),define(d[180],h([0,1,16]),function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.IProgressService=n.createDecorator("progressService"),t.emptyProgress=Object.freeze({report:function(){}});var i=function(){function e(e){this._callback=e}return Object.defineProperty(e.prototype,"value",{get:function(){return this._value},enumerable:!0,configurable:!0}),e.prototype.report=function(e){this._value=e,this._callback()},e}();t.Progress=i;!function(e){e[e.Scm=1]="Scm",e[e.Window=10]="Window"}(t.ProgressLocation||(t.ProgressLocation={})),t.IProgressService2=n.createDecorator("progressService2")}),define(d[42],h([0,1,29,76]),function(e,t,n,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=function(){function e(){this.data={}}return e.prototype.add=function(e,t){i.ok(n.isString(e)),i.ok(n.isObject(t)),i.ok(!this.data.hasOwnProperty(e),"There is already an extension with this id"),this.data[e]=t},e.prototype.knows=function(e){return this.data.hasOwnProperty(e)},e.prototype.as=function(e){return this.data[e]||null},e}();t.Registry=new o;var r=function(){function e(){this.toBeInstantiated=[],this.instances=[]}return e.prototype.setInstantiationService=function(e){for(this.instantiationService=e;this.toBeInstantiated.length>0;){var t=this.toBeInstantiated.shift();this.instantiate(t)}},e.prototype.instantiate=function(e){var t=this.instantiationService.createInstance(e);this.instances.push(t)},e.prototype._register=function(e){this.instantiationService?this.instantiate(e):this.toBeInstantiated.push(e)},e.prototype._getInstances=function(){return this.instances.slice(0)},e.prototype._setInstances=function(e){this.instances=e},e}();t.BaseRegistry=r}),define(d[32],h([0,1,42]),function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.editorContribution=function(e){o.INSTANCE.registerEditorBrowserContribution(e)};!function(e){e.getEditorContributions=function(){return o.INSTANCE.getEditorBrowserContributions()}}(t.EditorBrowserRegistry||(t.EditorBrowserRegistry={}));var i={EditorContributions:"editor.contributions"},o=function(){function e(){this.editorContributions=[]}return e.prototype.registerEditorBrowserContribution=function(e){this.editorContributions.push(e)},e.prototype.getEditorBrowserContributions=function(){return this.editorContributions.slice(0)},e}();o.INSTANCE=new o,n.Registry.add(i.EditorContributions,o.INSTANCE)}),define(d[142],h([0,1,326,11,42,43,17]),function(e,t,n,i,o,r,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Extensions={ModesRegistry:"editor.modesRegistry"};var a=function(){function e(){this._onDidAddLanguages=new i.Emitter,this.onDidAddLanguages=this._onDidAddLanguages.event,this._languages=[]}return e.prototype.registerLanguage=function(e){this._languages.push(e),this._onDidAddLanguages.fire([e])},e.prototype.registerLanguages=function(e){this._languages=this._languages.concat(e),this._onDidAddLanguages.fire(e)},e.prototype.getLanguages=function(){return this._languages.slice(0)},e}();t.EditorModesRegistry=a,t.ModesRegistry=new a,o.Registry.add(t.Extensions.ModesRegistry,t.ModesRegistry),t.PLAINTEXT_MODE_ID="plaintext",t.PLAINTEXT_LANGUAGE_IDENTIFIER=new s.LanguageIdentifier(t.PLAINTEXT_MODE_ID,1),t.ModesRegistry.registerLanguage({id:t.PLAINTEXT_MODE_ID,extensions:[".txt",".gitignore"],aliases:[n.localize(0,null),"text"],mimetypes:["text/plain"]}),r.LanguageConfigurationRegistry.register(t.PLAINTEXT_LANGUAGE_IDENTIFIER,{brackets:[["(",")"],["[","]"],["{","}"]]})}),define(d[420],h([0,1,329,68,11,40,8,105,2,21,173,15,73,49,142,104,52,33]),function(e,t,n,i,o,r,s,a,u,l,c,d,h,p,f,g,m,_){"use strict";function b(e){return e.toString()}Object.defineProperty(t,"__esModule",{value:!0});var C=function(){function e(e,t){var n=this;this.model=e,this._markerDecorations=[],this._modelEventsListener=e.addBulkListener(function(e){return t(n,e)})}return e.prototype.dispose=function(){this._markerDecorations=this.model.deltaDecorations(this._markerDecorations,[]),this._modelEventsListener.dispose(),this._modelEventsListener=null,this.model=null},e.prototype.getModelId=function(){return b(this.model.uri)},e.prototype.acceptMarkerDecorations=function(e){this._markerDecorations=this.model.deltaDecorations(this._markerDecorations,e)},e}(),w=function(){function e(){}return e.setMarkers=function(e,t){var n=this,i=t.read({resource:e.model.uri,take:500}).map(function(t){return{range:n._createDecorationRange(e.model,t),options:n._createDecorationOption(t)}});e.acceptMarkerDecorations(i)},e._createDecorationRange=function(e,t){var n=e.validateRange(new u.Range(t.startLineNumber,t.startColumn,t.endLineNumber,t.endColumn)),i=new u.Range(n.startLineNumber,n.startColumn,n.endLineNumber,n.endColumn);if(i.isEmpty()){var o=e.getWordAtPosition(i.getStartPosition());if(o)i=new u.Range(i.startLineNumber,o.startColumn,i.endLineNumber,o.endColumn);else{var r=e.getLineLastNonWhitespaceColumn(n.startLineNumber)||e.getLineMaxColumn(n.startLineNumber);1===r||(i=i.endColumn>=r?new u.Range(i.startLineNumber,r-1,i.endLineNumber,r):new u.Range(i.startLineNumber,i.startColumn,i.endLineNumber,i.endColumn+1))}}else if(t.endColumn===Number.MAX_VALUE&&1===t.startColumn&&i.startLineNumber===i.endLineNumber){var s=e.getLineFirstNonWhitespaceColumn(t.startLineNumber);s0&&"#"===e.charAt(e.length-1)?e.substring(0,e.length-1):e}Object.defineProperty(t,"__esModule",{value:!0}),t.Extensions={JSONContribution:"base.contributions.json"};var r=new(function(){function e(){this.schemasById={},this.eventEmitter=new i.EventEmitter}return e.prototype.addRegistryChangedListener=function(e){return this.eventEmitter.addListener("registryChanged",e)},e.prototype.registerSchema=function(e,t){this.schemasById[o(e)]=t,this.eventEmitter.emit("registryChanged",{})},e.prototype.getSchemaContributions=function(){return{schemas:this.schemasById}},e}());n.Registry.add(t.Extensions.JSONContribution,r)}),define(d[141],h([0,1,372,11,42,29,9,423]),function(e,t,n,i,o,r,s,a){"use strict";function u(e){switch(Array.isArray(e)?e[0]:e){case"boolean":return!1;case"integer":case"number":return 0;case"string":return"";case"array":return[];case"object":return{};default:return null}}function l(e){return t.OVERRIDE_PROPERTY_PATTERN.test(e)?n.localize(3,null,e):void 0!==v.getConfigurationProperties()[e]?n.localize(4,null,e):null}Object.defineProperty(t,"__esModule",{value:!0}),t.Extensions={Configuration:"base.contributions.configuration"};var c;!function(e){e[e.WORKSPACE=1]="WORKSPACE",e[e.FOLDER=2]="FOLDER"}(c=t.ConfigurationScope||(t.ConfigurationScope={}));var d="vscode://schemas/settings";t.editorConfigurationSchemaId="vscode://schemas/settings/editor";var h=o.Registry.as(a.Extensions.JSONContribution),p=function(){function e(){this.overrideIdentifiers=[],this.configurationContributors=[],this.configurationSchema={properties:{},patternProperties:{},additionalProperties:!1,errorMessage:"Unknown configuration setting"},this.editorConfigurationSchema={properties:{},patternProperties:{},additionalProperties:!1,errorMessage:"Unknown editor configuration setting"},this._onDidRegisterConfiguration=new i.Emitter,this.configurationProperties={},this.computeOverridePropertyPattern(),h.registerSchema(d,this.configurationSchema),h.registerSchema(t.editorConfigurationSchemaId,this.editorConfigurationSchema)}return Object.defineProperty(e.prototype,"onDidRegisterConfiguration",{get:function(){return this._onDidRegisterConfiguration.event},enumerable:!0,configurable:!0}),e.prototype.registerConfiguration=function(e,t){void 0===t&&(t=!0),this.registerConfigurations([e],t)},e.prototype.registerConfigurations=function(e,t){var n=this;void 0===t&&(t=!0),e.forEach(function(e){n.validateAndRegisterProperties(e,t),n.configurationContributors.push(e),n.registerJSONConfiguration(e),n.updateSchemaForOverrideSettingsConfiguration(e)}),this._onDidRegisterConfiguration.fire(this)},e.prototype.registerOverrideIdentifiers=function(e){(t=this.overrideIdentifiers).push.apply(t,e),this.updateOverridePropertyPatternKey();var t},e.prototype.registerDefaultConfigurations=function(e){for(var i={id:"defaultOverrides",title:n.localize(0,null),properties:{}},o=0,r=e;o0){var m=t.firstLine;"^"!==m.charAt(0)&&(m="^"+m);try{var v=new RegExp(m);o.regExpLeadsToEndlessLoop(v)||i.registerTextMime({id:r,mime:s,firstline:v})}catch(e){n.onUnexpectedError(e)}}e.aliases.push(r);var _=null;if(void 0!==t.aliases&&Array.isArray(t.aliases)&&(_=0===t.aliases.length?[null]:t.aliases),null!==_)for(var y=0;y<_.length;y++)_[y]&&0!==_[y].length&&e.aliases.push(_[y]);var b=null!==_&&_.length>0;if(b&&null===_[0]);else{var C=(b?_[0]:null)||r;!b&&e.name||(e.name=C)}"string"==typeof t.configuration&&e.configurationFiles.push(t.configuration)},e.prototype.isRegisteredMode=function(e){return!!c.call(this._mimeTypesMap,e)||c.call(this._languages,e)},e.prototype.getRegisteredModes=function(){return Object.keys(this._languages)},e.prototype.getRegisteredLanguageNames=function(){return Object.keys(this._nameMap)},e.prototype.getLanguageName=function(e){return c.call(this._languages,e)?this._languages[e].name:null},e.prototype.getModeIdForLanguageNameLowercase=function(e){return c.call(this._lowercaseNameMap,e)?this._lowercaseNameMap[e].language:null},e.prototype.getConfigurationFiles=function(e){return c.call(this._languages,e)?this._languages[e].configurationFiles||[]:[]},e.prototype.getMimeForMode=function(e){return c.call(this._languages,e)?this._languages[e].mimetypes[0]||null:null},e.prototype.extractModeIds=function(e){var t=this;return e?e.split(",").map(function(e){return e.trim()}).map(function(e){return c.call(t._mimeTypesMap,e)?t._mimeTypesMap[e].language:e}).filter(function(e){return c.call(t._languages,e)}):[]},e.prototype.getLanguageIdentifier=function(e){if(e===u.NULL_MODE_ID||0===e)return u.NULL_LANGUAGE_IDENTIFIER;var t;if("string"==typeof e)t=e;else if(!(t=this._languageIds[e]))return null;return c.call(this._languages,t)?this._languages[t].identifier:null},e.prototype.getModeIdsFromLanguageName=function(e){return e&&c.call(this._nameMap,e)?[this._nameMap[e].language]:[]},e.prototype.getModeIdsFromFilenameOrFirstLine=function(e,t){if(!e&&!t)return[];var n=i.guessMimeTypes(e,t);return this.extractModeIds(n.join(","))},e.prototype.getExtensions=function(e){if(!c.call(this._nameMap,e))return[];var t=this._nameMap[e];return this._languages[t.language].extensions},e.prototype.getFilenames=function(e){if(!c.call(this._nameMap,e))return[];var t=this._nameMap[e];return this._languages[t.language].filenames},e}();t.LanguagesRegistry=d}),define(d[427],h([0,1,10,11,8,211,426]),function(e,t,n,i,o,r,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var a=function(){function e(){this._onDidCreateMode=new i.Emitter,this.onDidCreateMode=this._onDidCreateMode.event,this._instantiatedModes={},this._registry=new s.LanguagesRegistry}return e.prototype._onReady=function(){return o.TPromise.as(!0)},e.prototype.isRegisteredMode=function(e){return this._registry.isRegisteredMode(e)},e.prototype.getRegisteredModes=function(){return this._registry.getRegisteredModes()},e.prototype.getRegisteredLanguageNames=function(){return this._registry.getRegisteredLanguageNames()},e.prototype.getExtensions=function(e){return this._registry.getExtensions(e)},e.prototype.getFilenames=function(e){return this._registry.getFilenames(e)},e.prototype.getMimeForMode=function(e){return this._registry.getMimeForMode(e)},e.prototype.getLanguageName=function(e){return this._registry.getLanguageName(e)},e.prototype.getModeIdForLanguageName=function(e){return this._registry.getModeIdForLanguageNameLowercase(e)},e.prototype.getModeIdByFilenameOrFirstLine=function(e,t){var n=this._registry.getModeIdsFromFilenameOrFirstLine(e,t);return n.length>0?n[0]:null},e.prototype.getModeId=function(e){var t=this._registry.extractModeIds(e);return t.length>0?t[0]:null},e.prototype.getLanguageIdentifier=function(e){return this._registry.getLanguageIdentifier(e)},e.prototype.getConfigurationFiles=function(e){return this._registry.getConfigurationFiles(e)},e.prototype.lookup=function(e){for(var t=[],n=this._registry.extractModeIds(e),i=0;i0?t[0]:null},e.prototype.getOrCreateModeByFilenameOrFirstLine=function(e,t){var n=this;return this._onReady().then(function(){var i=n.getModeIdByFilenameOrFirstLine(e,t);return n._getOrCreateMode(i||"plaintext")})},e.prototype._getOrCreateMode=function(e){if(!this._instantiatedModes.hasOwnProperty(e)){var t=this.getLanguageIdentifier(e);this._instantiatedModes[e]=new r.FrankensteinMode(t),this._onDidCreateMode.fire(this._instantiatedModes[e])}return this._instantiatedModes[e]},e}();t.ModeServiceImpl=a}),define(d[428],h([0,1,42,520,141,73]),function(e,t,n,i,o,r){"use strict";function s(){var e=Object.create(null),t=n.Registry.as(o.Extensions.Configuration).getConfigurationProperties();for(var i in t)u(e,i,t[i].default,function(e){return console.error("Conflict in default settings: "+e)});return e}function a(e,t){var n=Object.create(null);for(var i in e)u(n,i,e[i],t);return n}function u(e,t,n,i){for(var o=t.split("."),r=o.pop(),s=e,a=0;at.command?1:e.weight2-t.weight2}Object.defineProperty(t,"__esModule",{value:!0});var a=function(){function e(){this.WEIGHT={editorCore:function(e){return void 0===e&&(e=0),0+e},editorContrib:function(e){return void 0===e&&(e=0),100+e},workbenchContrib:function(e){return void 0===e&&(e=0),200+e},builtinExtension:function(e){return void 0===e&&(e=0),300+e},externalExtension:function(e){return void 0===e&&(e=0),400+e}},this._keybindings=[]}return e.bindToCurrentPlatform=function(e){if(1===i.OS){if(e&&e.win)return e.win}else if(2===i.OS){if(e&&e.mac)return e.mac}else if(e&&e.linux)return e.linux;return e},e.bindToCurrentPlatform2=function(e){if(1===i.OS){if(e&&e.win)return e.win}else if(2===i.OS){if(e&&e.mac)return e.mac}else if(e&&e.linux)return e.linux;return e},e.prototype.registerKeybindingRule=function(t){var o=this,r=e.bindToCurrentPlatform(t);r&&r.primary&&this.registerDefaultKeybinding(n.createKeybinding(r.primary,i.OS),t.id,t.weight,0,t.when),r&&Array.isArray(r.secondary)&&r.secondary.forEach(function(e,r){return o.registerDefaultKeybinding(n.createKeybinding(e,i.OS),t.id,t.weight,-r-1,t.when)})},e.prototype.registerKeybindingRule2=function(t){var n=e.bindToCurrentPlatform2(t);n&&n.primary&&this.registerDefaultKeybinding(n.primary,t.id,t.weight,0,t.when)},e.prototype.registerCommandAndKeybindingRule=function(e){this.registerKeybindingRule(e),o.CommandsRegistry.registerCommand(e.id,e)},e._mightProduceChar=function(e){return e>=21&&e<=30||(e>=31&&e<=56||(80===e||81===e||82===e||83===e||84===e||85===e||86===e||110===e||111===e||87===e||88===e||89===e||90===e||91===e||92===e))},e.prototype._assertNoCtrlAlt=function(t,n){t.ctrlKey&&t.altKey&&!t.metaKey&&e._mightProduceChar(t.keyCode)&&console.warn("Ctrl+Alt+ keybindings should not be used by default under Windows. Offender: ",t," for ",n)},e.prototype.registerDefaultKeybinding=function(e,t,n,o,r){1===i.OS&&(2===e.type?this._assertNoCtrlAlt(e.firstPart,t):this._assertNoCtrlAlt(e,t)),this._keybindings.push({keybinding:e,command:t,commandArgs:null,when:r,weight1:n,weight2:o})},e.prototype.getDefaultKeybindings=function(){var e=this._keybindings.slice(0);return e.sort(s),e},e}();t.KeybindingsRegistry=new a,t.Extensions={EditorModes:"platform.keybindingsRegistry"},r.Registry.add(t.Extensions.EditorModes,t.KeybindingsRegistry)}),define(d[140],h([0,1,68,40,24,8,73,31,404,409,191,47,21,11,428,3,6,64,91,397,39,408,15]),function(e,t,n,i,o,r,s,a,u,l,c,d,h,p,g,m,v,_,y,b,C,w,S){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var E=function(){function e(e){this._widget=e}return e.prototype.getId=function(){return"editor"},e.prototype.getControl=function(){return this._widget},e.prototype.getSelection=function(){return this._widget.getSelection()},e.prototype.focus=function(){this._widget.focus()},e.prototype.isVisible=function(){return!0},e.prototype.withTypedEditor=function(e,t){return h.isCommonCodeEditor(this._widget)?e(this._widget):t(this._widget)},e}();t.SimpleEditor=E;var L=function(){function e(e){this.model=e,this._onDispose=new p.Emitter}return Object.defineProperty(e.prototype,"onDispose",{get:function(){return this._onDispose.event},enumerable:!0,configurable:!0}),e.prototype.load=function(){return r.TPromise.as(this)},Object.defineProperty(e.prototype,"textEditorModel",{get:function(){return this.model},enumerable:!0,configurable:!0}),e.prototype.dispose=function(){this._onDispose.fire()},e}();t.SimpleModel=L;var x=function(){function e(){this.openEditorDelegate=null}return e.prototype.setEditor=function(e){this.editor=new E(e)},e.prototype.setOpenEditorDelegate=function(e){this.openEditorDelegate=e},e.prototype.openEditor=function(e,t){var n=this;return r.TPromise.as(this.editor.withTypedEditor(function(t){return n.doOpenEditor(t,e)},function(t){return n.doOpenEditor(t.getOriginalEditor(),e)||n.doOpenEditor(t.getModifiedEditor(),e)}))},e.prototype.doOpenEditor=function(e,t){if(!this.findModel(e,t)){if(t.resource){if(this.openEditorDelegate)return this.openEditorDelegate(t.resource.toString()),null;var i=t.resource.scheme;if(i===n.Schemas.http||i===n.Schemas.https)return window.open(t.resource.toString()),this.editor}return null}var o=t.options.selection;if(o)if("number"==typeof o.endLineNumber&&"number"==typeof o.endColumn)e.setSelection(o),e.revealRangeInCenter(o);else{var r={lineNumber:o.startLineNumber,column:o.startColumn};e.setPosition(r),e.revealPositionInCenter(r)}return this.editor},e.prototype.findModel=function(e,t){var n=e.getModel();return n.uri.toString()!==t.resource.toString()?null:n},e}();t.SimpleEditorService=x;var N=function(){function e(){}return e.prototype.setEditor=function(e){this.editor=new E(e)},e.prototype.createModelReference=function(e){var t,n=this;return t=this.editor.withTypedEditor(function(t){return n.findModel(t,e)},function(t){return n.findModel(t.getOriginalEditor(),e)||n.findModel(t.getModifiedEditor(),e)}),t?r.TPromise.as(new m.ImmortalReference(new L(t))):r.TPromise.as(new m.ImmortalReference(null))},e.prototype.registerTextModelContentProvider=function(e,t){return{dispose:function(){}}},e.prototype.findModel=function(e,t){var n=e.getModel();return n.uri.toString()!==t.toString()?null:n},e}();t.SimpleEditorModelResolverService=N;var M=function(){function e(){}return e.prototype.show=function(){return e.NULL_PROGRESS_RUNNER},e.prototype.showWhile=function(e,t){return null},e}();M.NULL_PROGRESS_RUNNER={done:function(){},total:function(){},worked:function(){}},t.SimpleProgressService=M;var T=function(){function e(){}return e.prototype.show=function(t,n){switch(t){case i.default.Error:console.error(n);break;case i.default.Warning:console.warn(n);break;default:console.log(n)}return e.Empty},e.prototype.hideAll=function(){},e.prototype.confirm=function(e){var t=e.message;return e.detail&&(t=t+"\n\n"+e.detail),window.confirm(t)},e}();T.Empty=function(){},t.SimpleMessageService=T;var k=function(){function e(e){this._onWillExecuteCommand=new p.Emitter,this.onWillExecuteCommand=this._onWillExecuteCommand.event,this._instantiationService=e,this._dynamicCommands=Object.create(null)}return e.prototype.addCommand=function(e,t){var n=this;return this._dynamicCommands[e]=t,{dispose:function(){delete n._dynamicCommands[e]}}},e.prototype.executeCommand=function(e){for(var t=[],n=1;n.001){b=!1;break}}var L=r.getTimeSinceLastZoomLevelChanged()>2e3;return new a.FontInfo({zoomLevel:r.getZoomLevel(),fontFamily:e.fontFamily,fontWeight:e.fontWeight,fontSize:e.fontSize,lineHeight:e.lineHeight,letterSpacing:e.letterSpacing,isMonospace:b,typicalHalfwidthCharacterWidth:i.width,typicalFullwidthCharacterWidth:o.width,spaceWidth:s.width,maxDigitWidth:y},L)},t}(i.Disposable);h.INSTANCE=new h;var p=function(e){function t(t,n){void 0===n&&(n=null);var i=e.call(this,t)||this;return i._elementSizeObserver=i._register(new u.ElementSizeObserver(n,function(){return i._onReferenceDomElementSizeChanged()})),i._register(h.INSTANCE.onDidChange(function(){return i._onCSSBasedConfigurationChanged()})),i._validatedOptions.automaticLayout&&i._elementSizeObserver.startObserving(),i._register(r.onDidChangeZoomLevel(function(e){return i._recomputeOptions()})),i._register(r.onDidChangeAccessibilitySupport(function(){return i._recomputeOptions()})),i._recomputeOptions(),i}return f(t,e),t.applyFontInfoSlow=function(e,t){e.style.fontFamily=t.fontFamily,e.style.fontWeight=t.fontWeight,e.style.fontSize=t.fontSize+"px",e.style.lineHeight=t.lineHeight+"px",e.style.letterSpacing=t.letterSpacing+"px"},t.applyFontInfo=function(e,t){e.setFontFamily(t.fontFamily),e.setFontWeight(t.fontWeight),e.setFontSize(t.fontSize),e.setLineHeight(t.lineHeight),e.setLetterSpacing(t.letterSpacing)},t.prototype._onReferenceDomElementSizeChanged=function(){this._recomputeOptions()},t.prototype._onCSSBasedConfigurationChanged=function(){this._recomputeOptions()},t.prototype.observeReferenceElement=function(e){this._elementSizeObserver.observe(e)},t.prototype.dispose=function(){e.prototype.dispose.call(this)},t.prototype._getExtraEditorClassName=function(){var e="";return r.isIE?e+="ie ":r.isFirefox?e+="ff ":r.isEdge&&(e+="edge "),o.isMacintosh&&(e+="mac "),e},t.prototype._getEnvConfiguration=function(){return{extraEditorClassName:this._getExtraEditorClassName(),outerWidth:this._elementSizeObserver.getWidth(),outerHeight:this._elementSizeObserver.getHeight(),emptySelectionClipboard:r.isWebKit,pixelRatio:r.getPixelRatio(),zoomLevel:r.getZoomLevel(),accessibilitySupport:r.getAccessibilitySupport()}},t.prototype.readConfiguration=function(e){return h.INSTANCE.readConfiguration(e)},t}(s.CommonEditorConfiguration);t.Configuration=p}),define(d[433],h([0,1,26,127,65,35]),function(e,t,n,i,o,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var s=function(e){function t(t){var n=e.call(this,t)||this;return n._visibleLines=new i.VisibleLinesCollection(n),n.domNode=n._visibleLines.domNode,n._dynamicOverlays=[],n._isFocused=!1,n.domNode.setClassName("view-overlays"),n}return f(t,e),t.prototype.shouldRender=function(){if(e.prototype.shouldRender.call(this))return!0;for(var t=0,n=this._dynamicOverlays.length;t'+i+"
        ")},e.prototype.layoutLine=function(e,t){this._domNode&&(this._domNode.setTop(t),this._domNode.setHeight(this._lineHeight))},e}();t.ViewOverlayLine=a;var u=function(e){function t(t){var n=e.call(this,t)||this;return n._contentWidth=n._context.configuration.editor.layoutInfo.contentWidth,n.domNode.setHeight(0),n}return f(t,e),t.prototype.onConfigurationChanged=function(t){return t.layoutInfo&&(this._contentWidth=this._context.configuration.editor.layoutInfo.contentWidth),e.prototype.onConfigurationChanged.call(this,t)},t.prototype.onScrollChanged=function(t){return e.prototype.onScrollChanged.call(this,t)||t.scrollWidthChanged},t.prototype._viewOverlaysRender=function(t){e.prototype._viewOverlaysRender.call(this,t),this.domNode.setWidth(Math.max(t.scrollWidth,this._contentWidth))},t}(s);t.ContentViewOverlays=u;var l=function(e){function t(t){var n=e.call(this,t)||this;return n._contentLeft=n._context.configuration.editor.layoutInfo.contentLeft,n.domNode.setClassName("margin-view-overlays"),n.domNode.setWidth(1),o.Configuration.applyFontInfo(n.domNode,n._context.configuration.editor.fontInfo),n}return f(t,e),t.prototype.onConfigurationChanged=function(t){var n=!1;return t.fontInfo&&(o.Configuration.applyFontInfo(this.domNode,this._context.configuration.editor.fontInfo),n=!0),t.layoutInfo&&(this._contentLeft=this._context.configuration.editor.layoutInfo.contentLeft,n=!0),e.prototype.onConfigurationChanged.call(this,t)||n},t.prototype.onScrollChanged=function(t){return e.prototype.onScrollChanged.call(this,t)||t.scrollHeightChanged},t.prototype._viewOverlaysRender=function(t){e.prototype._viewOverlaysRender.call(this,t);var n=Math.min(t.scrollHeight,1e6);this.domNode.setHeight(n),this.domNode.setWidth(this._contentLeft)},t}(s);t.MarginViewOverlays=l}),define(d[434],h([0,1,26,12,2,49,65,6]),function(e,t,n,i,o,r,s,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var u=function(){return function(e,t,n,i){this.top=e,this.left=t,this.width=n,this.textContent=i}}(),l=function(){function e(e,t){this._context=e,this._isSecondary=t,this._cursorStyle=this._context.configuration.editor.viewInfo.cursorStyle,this._lineHeight=this._context.configuration.editor.lineHeight,this._typicalHalfwidthCharacterWidth=this._context.configuration.editor.fontInfo.typicalHalfwidthCharacterWidth,this._isVisible=!0,this._domNode=n.createFastDomNode(document.createElement("div")),this._isSecondary?this._domNode.setClassName("cursor secondary"):this._domNode.setClassName("cursor"),this._domNode.setHeight(this._lineHeight),this._domNode.setTop(0),this._domNode.setLeft(0),s.Configuration.applyFontInfo(this._domNode,this._context.configuration.editor.fontInfo),this._domNode.setDisplay("none"),this.updatePosition(new i.Position(1,1)),this._isInEditableRange=!0,this._lastRenderedContent="",this._renderData=null}return e.prototype.getDomNode=function(){return this._domNode},e.prototype.getIsInEditableRange=function(){return this._isInEditableRange},e.prototype.getPosition=function(){return this._position},e.prototype.show=function(){this._isVisible||(this._domNode.setVisibility("inherit"),this._isVisible=!0)},e.prototype.hide=function(){this._isVisible&&(this._domNode.setVisibility("hidden"),this._isVisible=!1)},e.prototype.onConfigurationChanged=function(e){return e.lineHeight&&(this._lineHeight=this._context.configuration.editor.lineHeight),e.viewInfo&&(this._cursorStyle=this._context.configuration.editor.viewInfo.cursorStyle),e.fontInfo&&(s.Configuration.applyFontInfo(this._domNode,this._context.configuration.editor.fontInfo),this._typicalHalfwidthCharacterWidth=this._context.configuration.editor.fontInfo.typicalHalfwidthCharacterWidth),!0},e.prototype.onCursorPositionChanged=function(e,t){return this.updatePosition(e),this._isInEditableRange=t,!0},e.prototype._prepareRender=function(e){if(this._cursorStyle===r.TextEditorCursorStyle.Line||this._cursorStyle===r.TextEditorCursorStyle.LineThin){var t=e.visibleRangeForPosition(this._position);if(!t)return null;var n;n=this._cursorStyle===r.TextEditorCursorStyle.Line?a.computeScreenAwareSize(2):a.computeScreenAwareSize(1);var i=e.getVerticalOffsetForLineNumber(this._position.lineNumber)-e.bigNumbersDelta;return new u(i,t.left,n,"")}var s=e.linesVisibleRangesForRange(new o.Range(this._position.lineNumber,this._position.column,this._position.lineNumber,this._position.column+1),!1);if(!s||0===s.length||0===s[0].ranges.length)return null;var l=s[0].ranges[0],c=l.width<1?this._typicalHalfwidthCharacterWidth:l.width,d="";this._cursorStyle===r.TextEditorCursorStyle.Block&&(d=this._context.model.getLineContent(this._position.lineNumber).charAt(this._position.column-1));var h=e.getVerticalOffsetForLineNumber(this._position.lineNumber)-e.bigNumbersDelta;return new u(h,l.left,c,d)},e.prototype.prepareRender=function(e){this._renderData=this._prepareRender(e)},e.prototype.render=function(e){return this._renderData?(this._lastRenderedContent!==this._renderData.textContent&&(this._lastRenderedContent=this._renderData.textContent,this._domNode.domNode.textContent=this._lastRenderedContent),this._domNode.setDisplay("block"),this._domNode.setTop(this._renderData.top),this._domNode.setLeft(this._renderData.left),this._domNode.setWidth(this._renderData.width),this._domNode.setLineHeight(this._lineHeight),this._domNode.setHeight(this._lineHeight),{domNode:this._domNode.domNode,position:this._position,contentLeft:this._renderData.left,height:this._lineHeight,width:2}):(this._domNode.setDisplay("none"),null)},e.prototype.updatePosition=function(e){this._position=e},e}();t.ViewCursor=l}),define(d[62],h([0,1,16]),function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ITelemetryService=n.createDecorator("telemetryService")}),define(d[13],h([0,1,10,24,31,91,42,62,12,53,77,59,19,41]),function(e,t,n,i,o,r,s,a,u,l,c,d,h,p){"use strict";function g(e){return e.get(p.ICodeEditorService).getFocusedCodeEditor()}function m(e){var t=e.get(d.IEditorService),n=t.getActiveEditor&&t.getActiveEditor();return p.getCodeEditor(n)}function v(e){return w.registerEditorCommand(e),e}Object.defineProperty(t,"__esModule",{value:!0});var y=function(){function e(e){this.id=e.id,this.precondition=e.precondition,this._kbOpts=e.kbOpts,this._description=e.description}return e.prototype.toCommandAndKeybindingRule=function(e){var t=this,n=this._kbOpts||{primary:0},i=n.kbExpr;this.precondition&&(i=i?h.ContextKeyExpr.and(i,this.precondition):this.precondition);var o="number"==typeof n.weight?n.weight:e;return{id:this.id,handler:function(e,n){return t.runCommand(e,n)},weight:o,when:i,primary:n.primary,secondary:n.secondary,win:n.win,linux:n.linux,mac:n.mac,description:this._description}},e}();t.Command=y;var b=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return f(t,e),t.bindToContribution=function(e){return function(t){function n(e){var n=t.call(this,e)||this;return n._callback=e.handler,n}return f(n,t),n.prototype.runEditorCommand=function(t,n,i){e(n)&&this._callback(e(n))},n}(t)},t.prototype.runCommand=function(e,t){var n=this,i=g(e);if(i||(i=m(e)),i)return i.invokeWithinContext(function(e){if(e.get(h.IContextKeyService).contextMatchesRules(n.precondition))return n.runEditorCommand(e,i,t)})},t}(y);t.EditorCommand=b;var C=function(e){function t(t){var n=e.call(this,t)||this;return n.label=t.label,n.alias=t.alias,n.menuOpts=t.menuOpts,n}return f(t,e),t.prototype.toMenuItem=function(){return this.menuOpts?{command:{id:this.id,title:this.label},when:this.precondition,group:this.menuOpts.group,order:this.menuOpts.order}:null},t.prototype.runEditorCommand=function(e,t,n){return this.reportTelemetry(e,t),this.run(e,t,n||{})},t.prototype.reportTelemetry=function(e,t){e.get(a.ITelemetryService).publicLog("editorActionInvoked",_({name:this.label,id:this.id},t.getTelemetryData()))},t}(b);t.EditorAction=C,t.editorAction=function(e){w.registerEditorAction(new e)},t.editorCommand=function(e){v(new e)},t.registerEditorCommand=v,t.commonEditorContribution=function(e){E.INSTANCE.registerEditorContribution(e)};var w;!function(e){function t(e,t){o.CommandsRegistry.registerCommand(e,function(e,n){return t(e,n||{})})}e.registerEditorAction=function(e){E.INSTANCE.registerEditorAction(e)},e.getEditorActions=function(){return E.INSTANCE.getEditorActions()},e.getEditorCommand=function(e){return E.INSTANCE.getEditorCommand(e)},e.getEditorContributions=function(){return E.INSTANCE.getEditorContributions()},e.commandWeight=function(e){return void 0===e&&(e=0),r.KeybindingsRegistry.WEIGHT.editorContrib(e)},e.registerEditorCommand=function(e){E.INSTANCE.registerEditorCommand(e)},e.registerLanguageCommand=t,e.registerDefaultLanguageCommand=function(e,o){t(e,function(e,t){var r=t.resource,s=t.position;if(!(r instanceof i.default))throw n.illegalArgument("resource");if(!u.Position.isIPosition(s))throw n.illegalArgument("position");var a=e.get(l.IModelService).getModel(r);if(!a)throw n.illegalArgument("Can not find open model for "+r);var c=u.Position.lift(s);return o(a,c,t)})}}(w=t.CommonEditorRegistry||(t.CommonEditorRegistry={}));var S={EditorCommonContributions:"editor.commonContributions"},E=function(){function e(){this.editorContributions=[],this.editorActions=[],this.editorCommands=Object.create(null)}return e.prototype.registerEditorContribution=function(e){this.editorContributions.push(e)},e.prototype.registerEditorAction=function(e){var t=e.toMenuItem();t&&c.MenuRegistry.appendMenuItem(c.MenuId.EditorContext,t),r.KeybindingsRegistry.registerCommandAndKeybindingRule(e.toCommandAndKeybindingRule(r.KeybindingsRegistry.WEIGHT.editorContrib())),this.editorActions.push(e)},e.prototype.getEditorContributions=function(){return this.editorContributions.slice(0)},e.prototype.getEditorActions=function(){return this.editorActions.slice(0)},e.prototype.registerEditorCommand=function(e){r.KeybindingsRegistry.registerCommandAndKeybindingRule(e.toCommandAndKeybindingRule(r.KeybindingsRegistry.WEIGHT.editorContrib())),this.editorCommands[e.id]=e},e.prototype.getEditorCommand=function(e){return this.editorCommands[e]||null},e}();E.INSTANCE=new E,s.Registry.add(S.EditorCommonContributions,E.INSTANCE)}),define(d[437],h([0,1,10,11,3,8,84,19,311,37,12,2,22,21,320,530,396,52,20,13]),function(e,t,n,i,o,r,s,a,u,l,c,d,h,p,g,m,v,_,y,b){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var C=0,w=function(e){function t(t,n,o,r){var u=e.call(this)||this;return u._onDidDispose=u._register(new i.Emitter),u.onDidDispose=u._onDidDispose.event,u._onDidChangeModelContent=u._register(new i.Emitter),u.onDidChangeModelContent=u._onDidChangeModelContent.event,u._onDidChangeModelLanguage=u._register(new i.Emitter),u.onDidChangeModelLanguage=u._onDidChangeModelLanguage.event,u._onDidChangeModelOptions=u._register(new i.Emitter),u.onDidChangeModelOptions=u._onDidChangeModelOptions.event,u._onDidChangeModelDecorations=u._register(new i.Emitter),u.onDidChangeModelDecorations=u._onDidChangeModelDecorations.event,u._onDidChangeConfiguration=u._register(new i.Emitter),u.onDidChangeConfiguration=u._onDidChangeConfiguration.event,u._onDidChangeModel=u._register(new i.Emitter),u.onDidChangeModel=u._onDidChangeModel.event,u._onDidChangeCursorPosition=u._register(new i.Emitter),u.onDidChangeCursorPosition=u._onDidChangeCursorPosition.event,u._onDidChangeCursorSelection=u._register(new i.Emitter),u.onDidChangeCursorSelection=u._onDidChangeCursorSelection.event,u._onDidLayoutChange=u._register(new i.Emitter),u.onDidLayoutChange=u._onDidLayoutChange.event,u._onDidFocusEditorText=u._register(new i.Emitter),u.onDidFocusEditorText=u._onDidFocusEditorText.event,u._onDidBlurEditorText=u._register(new i.Emitter),u.onDidBlurEditorText=u._onDidBlurEditorText.event,u._onDidFocusEditor=u._register(new i.Emitter),u.onDidFocusEditor=u._onDidFocusEditor.event,u._onDidBlurEditor=u._register(new i.Emitter),u.onDidBlurEditor=u._onDidBlurEditor.event,u._onWillType=u._register(new i.Emitter),u.onWillType=u._onWillType.event,u._onDidType=u._register(new i.Emitter),u.onDidType=u._onDidType.event,u._onDidPaste=u._register(new i.Emitter),u.onDidPaste=u._onDidPaste.event,u.domElement=t,u.id=++C,u._decorationTypeKeysToIds={},u._decorationTypeSubtypes={},n=n||{},u._configuration=u._register(u._createConfiguration(n)),u._register(u._configuration.onDidChange(function(e){u._onDidChangeConfiguration.fire(e),e.layoutInfo&&u._onDidLayoutChange.fire(u._configuration.editor.layoutInfo)})),u._contextKeyService=u._register(r.createScoped(u.domElement)),u._register(new S(u,u._contextKeyService)),u._register(new v.EditorModeContext(u,u._contextKeyService)),u._instantiationService=o.createChild(new s.ServiceCollection([a.IContextKeyService,u._contextKeyService])),u._attachModel(null),u._contributions={},u._actions={},u}return f(t,e),t.prototype.getId=function(){return this.getEditorType()+":"+this.id},t.prototype.getEditorType=function(){return p.EditorType.ICodeEditor},t.prototype.destroy=function(){this.dispose()},t.prototype.dispose=function(){for(var t=Object.keys(this._contributions),n=0,i=t.length;n1),this._hasNonEmptySelection.set(e.some(function(e){return!e.isEmpty()}))):(this._hasMultipleSelections.reset(),this._hasNonEmptySelection.reset())},t.prototype._updateFromFocus=function(){this._editorFocus.set(this._editor.hasWidgetFocus()),this._editorTextFocus.set(this._editor.isFocused())},t}(o.Disposable)}),define(d[137],h([0,1,12,2,21,37,54,175,13,301,20,91,41,19,29,59,123,181]),function(e,t,n,i,o,r,s,a,u,l,c,d,h,p,g,m,v,_){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var y=o.Handler,b=d.KeybindingsRegistry.WEIGHT.editorCore(),C=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return f(t,e),t.prototype.runEditorCommand=function(e,t,n){this.runCoreEditorCommand(t._getCursors(),n||{})},t}(u.EditorCommand);t.CoreEditorCommand=C;var w;!function(e){e.description={description:"Scroll editor in the given direction",args:[{name:"Editor scroll argument object",description:"Property-value pairs that can be passed through this argument:\n\t\t\t\t\t* 'to': A mandatory direction value.\n\t\t\t\t\t\t```\n\t\t\t\t\t\t'up', 'down'\n\t\t\t\t\t\t```\n\t\t\t\t\t* 'by': Unit to move. Default is computed based on 'to' value.\n\t\t\t\t\t\t```\n\t\t\t\t\t\t'line', 'wrappedLine', 'page', 'halfPage'\n\t\t\t\t\t\t```\n\t\t\t\t\t* 'value': Number of units to move. Default is '1'.\n\t\t\t\t\t* 'revealCursor': If 'true' reveals the cursor if it is outside view port.\n\t\t\t\t",constraint:function(e){if(!g.isObject(e))return!1;var t=e;return!!g.isString(t.to)&&(!(!g.isUndefined(t.by)&&!g.isString(t.by))&&(!(!g.isUndefined(t.value)&&!g.isNumber(t.value))&&!(!g.isUndefined(t.revealCursor)&&!g.isBoolean(t.revealCursor))))}}]},e.RawDirection={Up:"up",Down:"down"},e.RawUnit={Line:"line",WrappedLine:"wrappedLine",Page:"page",HalfPage:"halfPage"},e.parse=function(t){var n;switch(t.to){case e.RawDirection.Up:n=1;break;case e.RawDirection.Down:n=2;break;default:return null}var i;switch(t.by){case e.RawUnit.Line:i=1;break;case e.RawUnit.WrappedLine:i=2;break;case e.RawUnit.Page:i=3;break;case e.RawUnit.HalfPage:i=4;break;default:i=2}return{direction:n,unit:i,value:Math.floor(t.value||1),revealCursor:!!t.revealCursor,select:!!t.select}};!function(e){e[e.Up=1]="Up",e[e.Down=2]="Down"}(e.Direction||(e.Direction={}));!function(e){e[e.Line=1]="Line",e[e.WrappedLine=2]="WrappedLine",e[e.Page=3]="Page",e[e.HalfPage=4]="HalfPage"}(e.Unit||(e.Unit={}))}(w=t.EditorScroll_||(t.EditorScroll_={}));var S;!function(e){e.description={description:"Reveal the given line at the given logical position",args:[{name:"Reveal line argument object",description:"Property-value pairs that can be passed through this argument:\n\t\t\t\t\t* 'lineNumber': A mandatory line number value.\n\t\t\t\t\t* 'at': Logical position at which line has to be revealed .\n\t\t\t\t\t\t```\n\t\t\t\t\t\t'top', 'center', 'bottom'\n\t\t\t\t\t\t```\n\t\t\t\t",constraint:function(e){if(!g.isObject(e))return!1;var t=e;return!!g.isNumber(t.lineNumber)&&!(!g.isUndefined(t.at)&&!g.isString(t.at))}}]},e.RawAtArgument={Top:"top",Center:"center",Bottom:"bottom"}}(S=t.RevealLine_||(t.RevealLine_={}));var E;!function(e){var t=function(e){function t(t){var n=e.call(this,t)||this;return n._inSelectionMode=t.inSelectionMode,n}return f(t,e),t.prototype.runCoreEditorCommand=function(e,t){e.context.model.pushStackElement(),e.setStates(t.source,s.CursorChangeReason.Explicit,[a.CursorMoveCommands.moveTo(e.context,e.getPrimaryCursor(),this._inSelectionMode,t.position,t.viewPosition)]),e.reveal(!0,0)},t}(C);e.MoveTo=u.registerEditorCommand(new t({id:"_moveTo",inSelectionMode:!1,precondition:null})),e.MoveToSelect=u.registerEditorCommand(new t({id:"_moveToSelect",inSelectionMode:!0,precondition:null}));var o=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return f(t,e),t.prototype.runCoreEditorCommand=function(e,t){e.context.model.pushStackElement();var n=this._getColumnSelectResult(e.context,e.getPrimaryCursor(),e.getColumnSelectData(),t);e.setStates(t.source,s.CursorChangeReason.Explicit,n.viewStates.map(function(e){return r.CursorState.fromViewState(e)})),e.setColumnSelectData({toViewLineNumber:n.toLineNumber,toViewVisualColumn:n.toVisualColumn}),e.reveal(!0,n.reversed?1:2)},t}(C);e.ColumnSelect=u.registerEditorCommand(new(function(e){function t(){return e.call(this,{id:"columnSelect",precondition:null})||this}return f(t,e),t.prototype._getColumnSelectResult=function(e,t,i,o){var r,s=e.model.validatePosition(o.position);return r=o.viewPosition?e.validateViewPosition(new n.Position(o.viewPosition.lineNumber,o.viewPosition.column),s):e.convertModelPositionToViewPosition(s),l.ColumnSelection.columnSelect(e.config,e.viewModel,t.viewState.selection,r.lineNumber,o.mouseColumn-1)},t}(o))),e.CursorColumnSelectLeft=u.registerEditorCommand(new(function(e){function t(){return e.call(this,{id:"cursorColumnSelectLeft",precondition:null,kbOpts:{weight:b,kbExpr:c.EditorContextKeys.textFocus,primary:3599,linux:{primary:0}}})||this}return f(t,e),t.prototype._getColumnSelectResult=function(e,t,n,i){return l.ColumnSelection.columnSelectLeft(e.config,e.viewModel,t.viewState,n.toViewLineNumber,n.toViewVisualColumn)},t}(o))),e.CursorColumnSelectRight=u.registerEditorCommand(new(function(e){function t(){return e.call(this,{id:"cursorColumnSelectRight",precondition:null,kbOpts:{weight:b,kbExpr:c.EditorContextKeys.textFocus,primary:3601,linux:{primary:0}}})||this}return f(t,e),t.prototype._getColumnSelectResult=function(e,t,n,i){return l.ColumnSelection.columnSelectRight(e.config,e.viewModel,t.viewState,n.toViewLineNumber,n.toViewVisualColumn)},t}(o)));var d=function(e){function t(t){var n=e.call(this,t)||this;return n._isPaged=t.isPaged,n}return f(t,e),t.prototype._getColumnSelectResult=function(e,t,n,i){return l.ColumnSelection.columnSelectUp(e.config,e.viewModel,t.viewState,this._isPaged,n.toViewLineNumber,n.toViewVisualColumn)},t}(o);e.CursorColumnSelectUp=u.registerEditorCommand(new d({isPaged:!1,id:"cursorColumnSelectUp",precondition:null,kbOpts:{weight:b,kbExpr:c.EditorContextKeys.textFocus,primary:3600,linux:{primary:0}}})),e.CursorColumnSelectPageUp=u.registerEditorCommand(new d({isPaged:!0,id:"cursorColumnSelectPageUp",precondition:null,kbOpts:{weight:b,kbExpr:c.EditorContextKeys.textFocus,primary:3595,linux:{primary:0}}}));var h=function(e){function t(t){var n=e.call(this,t)||this;return n._isPaged=t.isPaged,n}return f(t,e),t.prototype._getColumnSelectResult=function(e,t,n,i){return l.ColumnSelection.columnSelectDown(e.config,e.viewModel,t.viewState,this._isPaged,n.toViewLineNumber,n.toViewVisualColumn)},t}(o);e.CursorColumnSelectDown=u.registerEditorCommand(new h({isPaged:!1,id:"cursorColumnSelectDown",precondition:null,kbOpts:{weight:b,kbExpr:c.EditorContextKeys.textFocus,primary:3602,linux:{primary:0}}})),e.CursorColumnSelectPageDown=u.registerEditorCommand(new h({isPaged:!0,id:"cursorColumnSelectPageDown",precondition:null,kbOpts:{weight:b,kbExpr:c.EditorContextKeys.textFocus,primary:3596,linux:{primary:0}}}));var p=function(e){function t(){return e.call(this,{id:"cursorMove",precondition:null,description:a.CursorMove.description})||this}return f(t,e),t.prototype.runCoreEditorCommand=function(e,t){var n=a.CursorMove.parse(t);n&&this._runCursorMove(e,t.source,n)},t.prototype._runCursorMove=function(e,t,n){e.context.model.pushStackElement(),e.setStates(t,s.CursorChangeReason.Explicit,r.CursorState.ensureInEditableRange(e.context,a.CursorMoveCommands.move(e.context,e.getAll(),n))),e.reveal(!0,0)},t}(C);e.CursorMoveImpl=p,e.CursorMove=u.registerEditorCommand(new p);var g;!function(e){e[e.PAGE_SIZE_MARKER=-1]="PAGE_SIZE_MARKER"}(g||(g={}));var m=function(t){function n(e){var n=t.call(this,e)||this;return n._staticArgs=e.args,n}return f(n,t),n.prototype.runCoreEditorCommand=function(t,n){var i=this._staticArgs;-1===this._staticArgs.value&&(i={direction:this._staticArgs.direction,unit:this._staticArgs.unit,select:this._staticArgs.select,value:t.context.config.pageSize}),e.CursorMove._runCursorMove(t,n.source,i)},n}(C);e.CursorLeft=u.registerEditorCommand(new m({args:{direction:0,unit:0,select:!1,value:1},id:"cursorLeft",precondition:null,kbOpts:{weight:b,kbExpr:c.EditorContextKeys.textFocus,primary:15,mac:{primary:15,secondary:[288]}}})),e.CursorLeftSelect=u.registerEditorCommand(new m({args:{direction:0,unit:0,select:!0,value:1},id:"cursorLeftSelect",precondition:null,kbOpts:{weight:b,kbExpr:c.EditorContextKeys.textFocus,primary:1039}})),e.CursorRight=u.registerEditorCommand(new m({args:{direction:1,unit:0,select:!1,value:1},id:"cursorRight",precondition:null,kbOpts:{weight:b,kbExpr:c.EditorContextKeys.textFocus,primary:17,mac:{primary:17,secondary:[292]}}})),e.CursorRightSelect=u.registerEditorCommand(new m({args:{direction:1,unit:0,select:!0,value:1},id:"cursorRightSelect",precondition:null,kbOpts:{weight:b,kbExpr:c.EditorContextKeys.textFocus,primary:1041}})),e.CursorUp=u.registerEditorCommand(new m({args:{direction:2,unit:2,select:!1,value:1},id:"cursorUp",precondition:null,kbOpts:{weight:b,kbExpr:c.EditorContextKeys.textFocus,primary:16,mac:{primary:16,secondary:[302]}}})),e.CursorUpSelect=u.registerEditorCommand(new m({args:{direction:2,unit:2,select:!0,value:1},id:"cursorUpSelect",precondition:null,kbOpts:{weight:b,kbExpr:c.EditorContextKeys.textFocus,primary:1040,secondary:[3088],mac:{primary:1040},linux:{primary:1040}}})),e.CursorPageUp=u.registerEditorCommand(new m({args:{direction:2,unit:2,select:!1,value:-1},id:"cursorPageUp",precondition:null,kbOpts:{weight:b,kbExpr:c.EditorContextKeys.textFocus,primary:11}})),e.CursorPageUpSelect=u.registerEditorCommand(new m({args:{direction:2,unit:2,select:!0,value:-1},id:"cursorPageUpSelect",precondition:null,kbOpts:{weight:b,kbExpr:c.EditorContextKeys.textFocus,primary:1035}})),e.CursorDown=u.registerEditorCommand(new m({args:{direction:3,unit:2,select:!1,value:1},id:"cursorDown",precondition:null,kbOpts:{weight:b,kbExpr:c.EditorContextKeys.textFocus,primary:18,mac:{primary:18,secondary:[300]}}})),e.CursorDownSelect=u.registerEditorCommand(new m({args:{direction:3,unit:2,select:!0,value:1},id:"cursorDownSelect",precondition:null,kbOpts:{weight:b,kbExpr:c.EditorContextKeys.textFocus,primary:1042,secondary:[3090],mac:{primary:1042},linux:{primary:1042}}})),e.CursorPageDown=u.registerEditorCommand(new m({args:{direction:3,unit:2,select:!1,value:-1},id:"cursorPageDown",precondition:null,kbOpts:{weight:b,kbExpr:c.EditorContextKeys.textFocus,primary:12}})),e.CursorPageDownSelect=u.registerEditorCommand(new m({args:{direction:3,unit:2,select:!0,value:-1},id:"cursorPageDownSelect",precondition:null,kbOpts:{weight:b,kbExpr:c.EditorContextKeys.textFocus,primary:1036}})),e.CreateCursor=u.registerEditorCommand(new(function(e){function t(){return e.call(this,{id:"createCursor",precondition:null})||this}return f(t,e),t.prototype.runCoreEditorCommand=function(e,t){var n=e.context;if(!n.config.readOnly&&!n.model.hasEditableRange()){var i;i=t.wholeLine?a.CursorMoveCommands.line(n,e.getPrimaryCursor(),!1,t.position,t.viewPosition):a.CursorMoveCommands.moveTo(n,e.getPrimaryCursor(),!1,t.position,t.viewPosition);var o=e.getAll();if(o.length>1)for(var r=i.modelState?i.modelState.position:null,u=i.viewState?i.viewState.position:null,l=0,c=o.length;lr&&(o=r);var s=new i.Range(o,1,o,e.context.model.getLineMaxColumn(o)),a=0;if(n.at)switch(n.at){case S.RawAtArgument.Top:a=3;break;case S.RawAtArgument.Center:a=1;break;case S.RawAtArgument.Bottom:a=4}var u=e.context.convertModelRangeToViewRange(s);e.revealRange(!1,u,a)},t}(C))),e.SelectAll=u.registerEditorCommand(new(function(e){function t(){return e.call(this,{id:"selectAll",precondition:null})||this}return f(t,e),t.prototype.runCoreEditorCommand=function(e,t){e.context.model.pushStackElement(),e.setStates(t.source,s.CursorChangeReason.Explicit,[a.CursorMoveCommands.selectAll(e.context,e.getPrimaryCursor())])},t}(C)))}(E=t.CoreNavigationCommands||(t.CoreNavigationCommands={}));!function(e){e.LineBreakInsert=u.registerEditorCommand(new(function(e){function t(){return e.call(this,{id:"lineBreakInsert",precondition:c.EditorContextKeys.writable,kbOpts:{weight:b,kbExpr:c.EditorContextKeys.textFocus,primary:null,mac:{primary:301}}})||this}return f(t,e),t.prototype.runEditorCommand=function(e,t,n){t.pushUndoStop(),t.executeCommands(this.id,v.TypeOperations.lineBreakInsert(t._getCursorConfiguration(),t.getModel(),t.getSelections()))},t}(u.EditorCommand))),e.Outdent=u.registerEditorCommand(new(function(e){function t(){return e.call(this,{id:"outdent",precondition:c.EditorContextKeys.writable,kbOpts:{weight:b,kbExpr:p.ContextKeyExpr.and(c.EditorContextKeys.textFocus,c.EditorContextKeys.tabDoesNotMoveFocus),primary:1026}})||this}return f(t,e),t.prototype.runEditorCommand=function(e,t,n){t.pushUndoStop(),t.executeCommands(this.id,v.TypeOperations.outdent(t._getCursorConfiguration(),t.getModel(),t.getSelections())),t.pushUndoStop()},t}(u.EditorCommand))),e.Tab=u.registerEditorCommand(new(function(e){function t(){return e.call(this,{id:"tab",precondition:c.EditorContextKeys.writable,kbOpts:{weight:b,kbExpr:p.ContextKeyExpr.and(c.EditorContextKeys.textFocus,c.EditorContextKeys.tabDoesNotMoveFocus),primary:2}})||this}return f(t,e),t.prototype.runEditorCommand=function(e,t,n){t.pushUndoStop(),t.executeCommands(this.id,v.TypeOperations.tab(t._getCursorConfiguration(),t.getModel(),t.getSelections())),t.pushUndoStop()},t}(u.EditorCommand))),e.DeleteLeft=u.registerEditorCommand(new(function(e){function t(){return e.call(this,{id:"deleteLeft",precondition:c.EditorContextKeys.writable,kbOpts:{weight:b,kbExpr:c.EditorContextKeys.textFocus,primary:1,secondary:[1025],mac:{primary:1,secondary:[1025,294,257]}}})||this}return f(t,e),t.prototype.runEditorCommand=function(e,t,n){var i=_.DeleteOperations.deleteLeft(t._getCursorConfiguration(),t.getModel(),t.getSelections()),o=i[0],r=i[1];o&&t.pushUndoStop(),t.executeCommands(this.id,r)},t}(u.EditorCommand))),e.DeleteRight=u.registerEditorCommand(new(function(e){function t(){return e.call(this,{id:"deleteRight",precondition:c.EditorContextKeys.writable,kbOpts:{weight:b,kbExpr:c.EditorContextKeys.textFocus,primary:20,mac:{primary:20,secondary:[290,276]}}})||this}return f(t,e),t.prototype.runEditorCommand=function(e,t,n){var i=_.DeleteOperations.deleteRight(t._getCursorConfiguration(),t.getModel(),t.getSelections()),o=i[0],r=i[1];o&&t.pushUndoStop(),t.executeCommands(this.id,r)},t}(u.EditorCommand)))}(t.CoreEditingCommands||(t.CoreEditingCommands={}));var L;!function(e){function t(e){return e.get(h.ICodeEditorService).getFocusedCodeEditor()}function n(e){var t=e.get(m.IEditorService),n=t.getActiveEditor&&t.getActiveEditor();return h.getCodeEditor(n)}function i(e){d.KeybindingsRegistry.registerCommandAndKeybindingRule(e.toCommandAndKeybindingRule(b))}function o(e){i(new s("default:"+e,e)),i(new s(e,e))}var r=function(e){function i(t){var n=e.call(this,t)||this;return n._editorHandler=t.editorHandler,n._inputHandler=t.inputHandler,n}return f(i,e),i.prototype.runCommand=function(e,i){var o=t(e);if(o&&o.isFocused())return this._runEditorHandler(o,i);var r=document.activeElement;if(!(r&&["input","textarea"].indexOf(r.tagName.toLowerCase())>=0)){var s=n(e);return s?(s.focus(),this._runEditorHandler(s,i)):void 0}document.execCommand(this._inputHandler)},i.prototype._runEditorHandler=function(e,t){var n=this._editorHandler;"string"==typeof n?e.trigger("keyboard",n,t):((t=t||{}).source="keyboard",n.runEditorCommand(null,e,t))},i}(u.Command);i(new r({editorHandler:E.SelectAll,inputHandler:"selectAll",id:"editor.action.selectAll",precondition:null,kbOpts:{weight:b,kbExpr:null,primary:2079}})),i(new r({editorHandler:y.Undo,inputHandler:"undo",id:y.Undo,precondition:c.EditorContextKeys.writable,kbOpts:{weight:b,kbExpr:c.EditorContextKeys.textFocus,primary:2104}})),i(new r({editorHandler:y.Redo,inputHandler:"redo",id:y.Redo,precondition:c.EditorContextKeys.writable,kbOpts:{weight:b,kbExpr:c.EditorContextKeys.textFocus,primary:2103,secondary:[3128],mac:{primary:3128}}}));var s=function(e){function n(t,n){var i=e.call(this,{id:t,precondition:null})||this;return i._handlerId=n,i}return f(n,e),n.prototype.runCommand=function(e,n){var i=t(e);i&&i.trigger("keyboard",this._handlerId,n)},n}(u.Command);o(y.Type),o(y.ReplacePreviousChar),o(y.CompositionStart),o(y.CompositionEnd),o(y.Paste),o(y.Cut)}(L||(L={}))}),define(d[439],h([0,1,12,21,137]),function(e,t,n,i,o){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t,n,i,o){this.configuration=e,this.viewModel=t,this._execCoreEditorCommandFunc=n,this.outgoingEvents=i,this.commandService=o}return e.prototype._execMouseCommand=function(e,t){t.source="mouse",this._execCoreEditorCommandFunc(e,t)},e.prototype.paste=function(e,t,n){this.commandService.executeCommand(i.Handler.Paste,{text:t,pasteOnNewLine:n})},e.prototype.type=function(e,t){this.commandService.executeCommand(i.Handler.Type,{text:t})},e.prototype.replacePreviousChar=function(e,t,n){this.commandService.executeCommand(i.Handler.ReplacePreviousChar,{text:t,replaceCharCnt:n})},e.prototype.compositionStart=function(e){this.commandService.executeCommand(i.Handler.CompositionStart,{})},e.prototype.compositionEnd=function(e){this.commandService.executeCommand(i.Handler.CompositionEnd,{})},e.prototype.cut=function(e){this.commandService.executeCommand(i.Handler.Cut,{})},e.prototype._validateViewColumn=function(e){var t=this.viewModel.getLineMinColumn(e.lineNumber);return e.column=4?this.selectAll():3===e.mouseDownCount?this._hasMulticursorModifier(e)?e.inSelectionMode?this.lastCursorLineSelectDrag(e.position):this.lastCursorLineSelect(e.position):e.inSelectionMode?this.lineSelectDrag(e.position):this.lineSelect(e.position):2===e.mouseDownCount?this._hasMulticursorModifier(e)?this.lastCursorWordSelect(e.position):e.inSelectionMode?this.wordSelectDrag(e.position):this.wordSelect(e.position):this._hasMulticursorModifier(e)?this._hasNonMulticursorModifier(e)||(e.shiftKey?this.columnSelect(e.position,e.mouseColumn):e.inSelectionMode?this.lastCursorMoveToSelect(e.position):this.createCursor(e.position,!1)):e.inSelectionMode?this.moveToSelect(e.position):this.moveTo(e.position)},e.prototype._usualArgs=function(e){return e=this._validateViewColumn(e),{position:this.convertViewToModelPosition(e),viewPosition:e}},e.prototype.moveTo=function(e){this._execMouseCommand(o.CoreNavigationCommands.MoveTo,this._usualArgs(e))},e.prototype.moveToSelect=function(e){this._execMouseCommand(o.CoreNavigationCommands.MoveToSelect,this._usualArgs(e))},e.prototype.columnSelect=function(e,t){e=this._validateViewColumn(e),this._execMouseCommand(o.CoreNavigationCommands.ColumnSelect,{position:this.convertViewToModelPosition(e),viewPosition:e,mouseColumn:t})},e.prototype.createCursor=function(e,t){e=this._validateViewColumn(e),this._execMouseCommand(o.CoreNavigationCommands.CreateCursor,{position:this.convertViewToModelPosition(e),viewPosition:e,wholeLine:t})},e.prototype.lastCursorMoveToSelect=function(e){this._execMouseCommand(o.CoreNavigationCommands.LastCursorMoveToSelect,this._usualArgs(e))},e.prototype.wordSelect=function(e){this._execMouseCommand(o.CoreNavigationCommands.WordSelect,this._usualArgs(e))},e.prototype.wordSelectDrag=function(e){this._execMouseCommand(o.CoreNavigationCommands.WordSelectDrag,this._usualArgs(e))},e.prototype.lastCursorWordSelect=function(e){this._execMouseCommand(o.CoreNavigationCommands.LastCursorWordSelect,this._usualArgs(e))},e.prototype.lineSelect=function(e){this._execMouseCommand(o.CoreNavigationCommands.LineSelect,this._usualArgs(e))},e.prototype.lineSelectDrag=function(e){this._execMouseCommand(o.CoreNavigationCommands.LineSelectDrag,this._usualArgs(e))},e.prototype.lastCursorLineSelect=function(e){this._execMouseCommand(o.CoreNavigationCommands.LastCursorLineSelect,this._usualArgs(e))},e.prototype.lastCursorLineSelectDrag=function(e){this._execMouseCommand(o.CoreNavigationCommands.LastCursorLineSelectDrag,this._usualArgs(e))},e.prototype.selectAll=function(){this._execMouseCommand(o.CoreNavigationCommands.SelectAll,{})},e.prototype.convertViewToModelPosition=function(e){return this.viewModel.coordinatesConverter.convertViewPositionToModelPosition(e)},e.prototype.emitKeyDown=function(e){this.outgoingEvents.emitKeyDown(e)},e.prototype.emitKeyUp=function(e){this.outgoingEvents.emitKeyUp(e)},e.prototype.emitContextMenu=function(e){this.outgoingEvents.emitContextMenu(e)},e.prototype.emitMouseMove=function(e){this.outgoingEvents.emitMouseMove(e)},e.prototype.emitMouseLeave=function(e){this.outgoingEvents.emitMouseLeave(e)},e.prototype.emitMouseUp=function(e){this.outgoingEvents.emitMouseUp(e)},e.prototype.emitMouseDown=function(e){this.outgoingEvents.emitMouseDown(e)},e.prototype.emitMouseDrag=function(e){this.outgoingEvents.emitMouseDrag(e)},e.prototype.emitMouseDrop=function(e){this.outgoingEvents.emitMouseDrop(e)},e}();t.ViewController=r}),define(d[440],h([0,1,332,20,13,240]),function(e,t,n,i,o,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var s=function(e){function t(t,n){var i=e.call(this,n)||this;return i.left=t,i}return f(t,e),t.prototype.run=function(e,t){for(var n=[],i=t.getSelections(),o=0;o0&&(t.pushUndoStop(),t.executeCommands(this.id,o),t.pushUndoStop())},t}(r.EditorAction);a=v([r.editorAction],a)}),define(d[442],h([0,1,334,30,15,41,13,179,20,299]),function(e,t,n,i,o,r,s,a,u){"use strict";function l(e){return e?s.editorAction:function(){}}Object.defineProperty(t,"__esModule",{value:!0});var c="9_cutcopypaste",d=o.isNative||document.queryCommandSupported("cut"),h=o.isNative||document.queryCommandSupported("copy"),p=h&&!i.isEdgeOrIE,g=o.isNative||!i.isChrome&&document.queryCommandSupported("paste"),m=function(e){function t(t,n){var i=e.call(this,n)||this;return i.browserCommand=t,i}return f(t,e),t.prototype.runCommand=function(e,t){var n=e.get(r.ICodeEditorService).getFocusedCodeEditor();n&&n.isFocused()?n.trigger("keyboard",this.id,t):document.execCommand(this.browserCommand)},t.prototype.run=function(e,t){t.focus(),document.execCommand(this.browserCommand)},t}(s.EditorAction),_=function(e){function t(){var t={kbExpr:u.EditorContextKeys.textFocus,primary:2102,win:{primary:2102,secondary:[1044]}};return o.isNative||(t=null),e.call(this,"cut",{id:"editor.action.clipboardCutAction",label:n.localize(0,null),alias:"Cut",precondition:u.EditorContextKeys.writable,kbOpts:t,menuOpts:{group:c,order:1}})||this}return f(t,e),t.prototype.run=function(t,n){!n.getConfiguration().emptySelectionClipboard&&n.getSelection().isEmpty()||e.prototype.run.call(this,t,n)},t}(m);_=v([l(d)],_);var y=function(e){function t(){var t={kbExpr:u.EditorContextKeys.textFocus,primary:2081,win:{primary:2081,secondary:[2067]}};return o.isNative||(t=null),e.call(this,"copy",{id:"editor.action.clipboardCopyAction",label:n.localize(1,null),alias:"Copy",precondition:null,kbOpts:t,menuOpts:{group:c,order:2}})||this}return f(t,e),t.prototype.run=function(t,n){!n.getConfiguration().emptySelectionClipboard&&n.getSelection().isEmpty()||e.prototype.run.call(this,t,n)},t}(m);y=v([l(h)],y);var b=function(e){function t(){var t={kbExpr:u.EditorContextKeys.textFocus,primary:2100,win:{primary:2100,secondary:[1043]}};return o.isNative||(t=null),e.call(this,"paste",{id:"editor.action.clipboardPasteAction",label:n.localize(2,null),alias:"Paste",precondition:u.EditorContextKeys.writable,kbOpts:t,menuOpts:{group:c,order:3}})||this}return f(t,e),t}(m);b=v([l(g)],b);var C=function(e){function t(){return e.call(this,"copy",{id:"editor.action.clipboardCopyWithSyntaxHighlightingAction",label:n.localize(3,null),alias:"Copy With Syntax Highlighting",precondition:null,kbOpts:{kbExpr:u.EditorContextKeys.textFocus,primary:null}})||this}return f(t,e),t.prototype.run=function(t,n){!n.getConfiguration().emptySelectionClipboard&&n.getSelection().isEmpty()||(a.CopyOptions.forceCopyWithSyntaxHighlighting=!0,e.prototype.run.call(this,t,n),a.CopyOptions.forceCopyWithSyntaxHighlighting=!1)},t}(m);C=v([l(p)],C)}),define(d[443],h([0,1,10,27,24,8,13,17,53,18]),function(e,t,n,i,o,r,s,a,u,l){"use strict";function c(e){var t=[],o=a.CodeLensProviderRegistry.ordered(e),s=o.map(function(i){return l.asWinJsPromise(function(t){return i.provideCodeLenses(e,t)}).then(function(e){if(Array.isArray(e))for(var n=0,o=e;nt.symbol.range.startLineNumber?1:o.indexOf(e.provider)o.indexOf(t.provider)?1:e.symbol.range.startColumnt.symbol.range.startColumn?1:0})})}Object.defineProperty(t,"__esModule",{value:!0}),t.getCodeLensData=c,s.CommonEditorRegistry.registerLanguageCommand("_executeCodeLensProvider",function(e,t){var i=t.resource;if(!(i instanceof o.default))throw n.illegalArgument();var r=e.get(u.IModelService).getModel(i);if(!r)throw n.illegalArgument();return c(r).then(function(e){return e.map(function(e){return e.symbol})})})}),define(d[444],h([0,1,335,39,20,13,151,242]),function(e,t,n,i,o,r,s,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var u=function(e){function t(t,n){var i=e.call(this,n)||this;return i._type=t,i}return f(t,e),t.prototype.run=function(e,t){var n=t.getModel();if(n){for(var i=[],o=t.getSelections(),r=n.getOptions(),s=0;s0&&s._contextViewService.hideContextView()})),this._toDispose.push(this._editor.onKeyDown(function(e){58===e.keyCode&&(e.preventDefault(),e.stopPropagation(),s.showContextMenu())}))}return e.get=function(e){return e.getContribution(b.ID)},e.prototype._onContextMenu=function(e){if(!this._editor.getConfiguration().contribInfo.contextmenu)return this._editor.focus(),void(e.target.position&&!this._editor.getSelection().containsPosition(e.target.position)&&this._editor.setPosition(e.target.position));if(e.target.type!==p.MouseTargetType.OVERLAY_WIDGET&&(e.event.preventDefault(),e.target.type===p.MouseTargetType.CONTENT_TEXT||e.target.type===p.MouseTargetType.CONTENT_EMPTY||e.target.type===p.MouseTargetType.TEXTAREA)){this._editor.focus(),e.target.position&&!this._editor.getSelection().containsPosition(e.target.position)&&this._editor.setPosition(e.target.position);var t;e.target.type!==p.MouseTargetType.TEXTAREA&&(t={x:e.event.posx,y:e.event.posy+1}),this.showContextMenu(t)}},e.prototype.showContextMenu=function(e){if(this._editor.getConfiguration().contribInfo.contextmenu)if(this._contextMenuService){var t=this._getMenuActions();t.length>0&&this._doShowContextMenu(t,e)}else this._editor.focus()},e.prototype._getMenuActions=function(){var e=[],t=this._menuService.createMenu(c.MenuId.EditorContext,this._contextKeyService),n=t.getActions({arg:this._editor.getModel().uri});t.dispose();for(var i=0,o=n;i0&&this._contextViewService.hideContextView(),this._toDispose=i.dispose(this._toDispose)},e}();m.ID="editor.contrib.contextmenu",m=b=v([g.editorContribution,y(1,a.IContextMenuService),y(2,a.IContextViewService),y(3,l.IContextKeyService),y(4,u.IKeybindingService),y(5,c.IMenuService)],m),t.ContextMenuController=m;var _=function(e){function t(){return e.call(this,{id:"editor.action.showContextMenu",label:n.localize(0,null),alias:"Show Editor Context Menu",precondition:null,kbOpts:{kbExpr:d.EditorContextKeys.textFocus,primary:1092}})||this}return f(t,e),t.prototype.run=function(e,t){m.get(t).showContextMenu()},t}(h.EditorAction);_=v([h.editorAction],_);var b}),define(d[446],h([0,1,13,3,20,32]),function(e,t,n,i,o,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var s=function(){function e(e){this.selections=e}return e.prototype.equals=function(e){var t=this.selections.length;if(t!==e.selections.length)return!1;for(var n=0;n50&&(n._undoStack=n._undoStack.splice(0,n._undoStack.length-50))),n._prevState=n._readState()})),n}return f(t,e),t.get=function(e){return e.getContribution(l.ID)},t.prototype._readState=function(){return this._editor.getModel()?new s(this._editor.getSelections()):null},t.prototype.getId=function(){return l.ID},t.prototype.cursorUndo=function(){for(var e=new s(this._editor.getSelections());this._undoStack.length>0;){var t=this._undoStack.pop();if(!t.equals(e))return this._isCursorUndo=!0,this._editor.setSelections(t.selections),void(this._isCursorUndo=!1)}},t}(i.Disposable);a.ID="editor.contrib.cursorUndoController",a=l=v([r.editorContribution],a),t.CursorUndoController=a;var u=function(e){function t(){return e.call(this,{id:"cursorUndo",precondition:null,kbOpts:{kbExpr:o.EditorContextKeys.textFocus,primary:2099}})||this}return f(t,e),t.prototype.runEditorCommand=function(e,t,n){a.get(t).cursorUndo()},t}(n.EditorCommand);u=v([n.editorCommand],u),t.CursorUndo=u;var l}),define(d[145],h([0,1,338,523,39,3,19,2,22,9,21,13,128,244,17,18,54,20,72,33]),function(e,t,n,i,o,r,s,a,u,l,c,d,h,p,g,m,_,b,C,w){"use strict";function S(e,t){var n=E.get(e);if(!n)return null;var i,o,r=n.getState(),s=r.wholeWord,a=r.matchCase;if(!e.isFocused()&&r.isRevealed&&r.searchString.length>0)i=r.searchString;else{var l=e.getSelection();if(l.startLineNumber!==l.endLineNumber&&!t.allowMultiline)return null;if(l.isEmpty()){var c=e.getModel().getWordAtPosition(l.getStartPosition());if(!c)return null;i=c.word,o=new u.Selection(l.startLineNumber,c.startColumn,l.startLineNumber,c.endColumn)}else i=e.getModel().getValueInRange(l).replace(/\r\n/g,"\n");t.changeFindSearchString&&n.setSearchString(i)}return t.highlightFindOptions&&n.highlightFindOptions(),{searchText:i,matchCase:a,wholeWord:s,currentMatch:o}}Object.defineProperty(t,"__esModule",{value:!0});!function(e){e[e.NoFocusChange=0]="NoFocusChange",e[e.FocusFindInput=1]="FocusFindInput",e[e.FocusReplaceInput=2]="FocusReplaceInput"}(t.FindStartFocusAction||(t.FindStartFocusAction={})),t.CONTEXT_FIND_WIDGET_VISIBLE=new s.RawContextKey("findWidgetVisible",!1),t.CONTEXT_FIND_WIDGET_NOT_VISIBLE=t.CONTEXT_FIND_WIDGET_VISIBLE.toNegated(),t.CONTEXT_FIND_INPUT_FOCUSSED=new s.RawContextKey("findInputFocussed",!1);var E=function(e){function n(n,o,r){var s=e.call(this)||this;return s._editor=n,s._findWidgetVisible=t.CONTEXT_FIND_WIDGET_VISIBLE.bindTo(o),s._storageService=r,s._updateHistoryDelayer=new m.Delayer(500),s._currentHistoryNavigator=new i.HistoryNavigator,s._state=s._register(new p.FindReplaceState),s.loadQueryState(),s._register(s._state.addChangeListener(function(e){return s._onStateChanged(e)})),s._model=null,s._register(s._editor.onDidChangeModel(function(){var e=s._editor.getModel()&&s._state.isRevealed;s.disposeModel(),s._state.change({searchScope:null,matchCase:s._storageService.getBoolean("editor.matchCase",C.StorageScope.WORKSPACE,!1),wholeWord:s._storageService.getBoolean("editor.wholeWord",C.StorageScope.WORKSPACE,!1),isRegex:s._storageService.getBoolean("editor.isRegex",C.StorageScope.WORKSPACE,!1)},!1),e&&s._start({forceRevealReplace:!1,seedSearchStringFromSelection:!1,shouldFocus:0,shouldAnimate:!1})})),s}return f(n,e),n.get=function(e){return e.getContribution(n.ID)},n.prototype.dispose=function(){this.disposeModel(),e.prototype.dispose.call(this)},n.prototype.disposeModel=function(){this._model&&(this._model.dispose(),this._model=null)},n.prototype.getId=function(){return n.ID},n.prototype._onStateChanged=function(e){this.saveQueryState(e),e.updateHistory&&e.searchString&&this._delayedUpdateHistory(),e.isRevealed&&(this._state.isRevealed?this._findWidgetVisible.set(!0):(this._findWidgetVisible.reset(),this.disposeModel()))},n.prototype.saveQueryState=function(e){e.isRegex&&void 0!==this._state.isRegex&&this._storageService.store("editor.isRegex",this._state.isRegex,C.StorageScope.WORKSPACE),e.wholeWord&&void 0!==this._state.wholeWord&&this._storageService.store("editor.wholeWord",this._state.wholeWord,C.StorageScope.WORKSPACE),e.matchCase&&void 0!==this._state.matchCase&&this._storageService.store("editor.matchCase",this._state.matchCase,C.StorageScope.WORKSPACE)},n.prototype.loadQueryState=function(){this._state.change({matchCase:this._storageService.getBoolean("editor.matchCase",C.StorageScope.WORKSPACE,this._state.matchCase),wholeWord:this._storageService.getBoolean("editor.wholeWord",C.StorageScope.WORKSPACE,this._state.wholeWord),isRegex:this._storageService.getBoolean("editor.isRegex",C.StorageScope.WORKSPACE,this._state.isRegex)},!1)},n.prototype._delayedUpdateHistory=function(){this._updateHistoryDelayer.trigger(this._updateHistory.bind(this))},n.prototype._updateHistory=function(){this._state.searchString&&this._currentHistoryNavigator.add(this._state.searchString)},n.prototype.getState=function(){return this._state},n.prototype.getHistory=function(){return this._currentHistoryNavigator},n.prototype.closeFindWidget=function(){this._state.change({isRevealed:!1,searchScope:null},!1),this._editor.focus()},n.prototype.toggleCaseSensitive=function(){this._state.change({matchCase:!this._state.matchCase},!1)},n.prototype.toggleWholeWords=function(){this._state.change({wholeWord:!this._state.wholeWord},!1)},n.prototype.toggleRegex=function(){this._state.change({isRegex:!this._state.isRegex},!1)},n.prototype.toggleSearchScope=function(){if(this._state.searchScope)this._state.change({searchScope:null},!0);else{var e=this._editor.getSelection();1===e.endColumn&&e.endLineNumber>e.startLineNumber&&(e=e.setEndPosition(e.endLineNumber-1,1)),e.isEmpty()||this._state.change({searchScope:e},!0)}},n.prototype.setSearchString=function(e){this._state.change({searchString:e},!1)},n.prototype.highlightFindOptions=function(){},n.prototype.getSelectionSearchString=function(){var e=this._editor.getSelection();if(e.startLineNumber===e.endLineNumber){if(!e.isEmpty())return this._editor.getModel().getValueInRange(e);var t=this._editor.getModel().getWordAtPosition(e.getStartPosition());if(t)return t.word}return null},n.prototype._start=function(e){if(this.disposeModel(),this._editor.getModel()){var t={isRevealed:!0};if(e.seedSearchStringFromSelection&&this._editor.getConfiguration().contribInfo.find.seedSearchStringFromSelection){var n=this.getSelectionSearchString();n&&(this._state.isRegex?t.searchString=l.escapeRegExpCharacters(n):t.searchString=n)}e.forceRevealReplace?t.isReplaceRevealed=!0:this._findWidgetVisible.get()||(t.isReplaceRevealed=!1),this._state.change(t,!1),this._model||(this._model=new h.FindModelBoundToEditorModel(this._editor,this._state))}},n.prototype.start=function(e){this._start(e)},n.prototype.moveToNextMatch=function(){return!!this._model&&(this._model.moveToNextMatch(),!0)},n.prototype.moveToPrevMatch=function(){return!!this._model&&(this._model.moveToPrevMatch(),!0)},n.prototype.replace=function(){return!!this._model&&(this._model.replace(),!0)},n.prototype.replaceAll=function(){return!!this._model&&(this._model.replaceAll(),!0)},n.prototype.selectAllMatches=function(){return!!this._model&&(this._model.selectAllMatches(),this._editor.focus(),!0)},n.prototype.showPreviousFindTerm=function(){var e=this._currentHistoryNavigator.previous();return e&&this._state.change({searchString:e},!1,!1),!0},n.prototype.showNextFindTerm=function(){var e=this._currentHistoryNavigator.next();return e&&this._state.change({searchString:e},!1,!1),!0},n}(r.Disposable);E.ID="editor.contrib.findController",E=v([y(1,s.IContextKeyService),y(2,C.IStorageService)],E),t.CommonFindController=E;var L=function(e){function t(){return e.call(this,{id:h.FIND_IDS.StartFindAction,label:n.localize(0,null),alias:"Find",precondition:null,kbOpts:{kbExpr:null,primary:2084,mac:{primary:2084,secondary:[2083]}}})||this}return f(t,e),t.prototype.run=function(e,t){var n=E.get(t);n&&n.start({forceRevealReplace:!1,seedSearchStringFromSelection:!0,shouldFocus:1,shouldAnimate:!0})},t}(d.EditorAction);L=v([d.editorAction],L),t.StartFindAction=L;var x=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return f(t,e),t.prototype.run=function(e,t){var n=E.get(t);n&&!this._run(n)&&(n.start({forceRevealReplace:!1,seedSearchStringFromSelection:0===n.getState().searchString.length,shouldFocus:0,shouldAnimate:!0}),this._run(n))},t}(d.EditorAction);t.MatchFindAction=x;var N=function(e){function t(){return e.call(this,{id:h.FIND_IDS.NextMatchFindAction,label:n.localize(1,null),alias:"Find Next",precondition:null,kbOpts:{kbExpr:b.EditorContextKeys.focus,primary:61,mac:{primary:2085,secondary:[61]}}})||this}return f(t,e),t.prototype._run=function(e){return e.moveToNextMatch()},t}(x);N=v([d.editorAction],N),t.NextMatchFindAction=N;var M=function(e){function t(){return e.call(this,{id:h.FIND_IDS.PreviousMatchFindAction,label:n.localize(2,null),alias:"Find Previous",precondition:null,kbOpts:{kbExpr:b.EditorContextKeys.focus,primary:1085,mac:{primary:3109,secondary:[1085]}}})||this}return f(t,e),t.prototype._run=function(e){return e.moveToPrevMatch()},t}(x);M=v([d.editorAction],M),t.PreviousMatchFindAction=M;var T=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return f(t,e),t.prototype.run=function(e,t){var n=E.get(t);if(n){var i=n.getSelectionSearchString();i&&n.setSearchString(i),this._run(n)||(n.start({forceRevealReplace:!1,seedSearchStringFromSelection:!1,shouldFocus:0,shouldAnimate:!0}),this._run(n))}},t}(d.EditorAction);t.SelectionMatchFindAction=T;var k=function(e){function t(){return e.call(this,{id:h.FIND_IDS.NextSelectionMatchFindAction,label:n.localize(3,null),alias:"Find Next Selection",precondition:null,kbOpts:{kbExpr:b.EditorContextKeys.focus,primary:2109}})||this}return f(t,e),t.prototype._run=function(e){return e.moveToNextMatch()},t}(T);k=v([d.editorAction],k),t.NextSelectionMatchFindAction=k;var I=function(e){function t(){return e.call(this,{id:h.FIND_IDS.PreviousSelectionMatchFindAction,label:n.localize(4,null),alias:"Find Previous Selection",precondition:null,kbOpts:{kbExpr:b.EditorContextKeys.focus,primary:3133}})||this}return f(t,e),t.prototype._run=function(e){return e.moveToPrevMatch()},t}(T);I=v([d.editorAction],I),t.PreviousSelectionMatchFindAction=I;var D=function(e){function t(){return e.call(this,{id:h.FIND_IDS.StartFindReplaceAction,label:n.localize(5,null),alias:"Replace",precondition:null,kbOpts:{kbExpr:null,primary:2086,mac:{primary:2596}}})||this}return f(t,e),t.prototype.run=function(e,t){if(!t.getConfiguration().readOnly){var n=E.get(t),i=t.getSelection(),o=!i.isEmpty()&&i.startLineNumber===i.endLineNumber,r=n.getState().searchString||o?2:1;n&&n.start({forceRevealReplace:!0,seedSearchStringFromSelection:o,shouldFocus:r,shouldAnimate:!0})}},t}(d.EditorAction);D=v([d.editorAction],D),t.StartFindReplaceAction=D;var O=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return f(t,e),t.prototype._getNextMatch=function(e){var t=S(e,{changeFindSearchString:!0,allowMultiline:!0,highlightFindOptions:!0});if(!t)return null;if(t.currentMatch)return t.currentMatch;var n=e.getSelections(),i=n[n.length-1],o=e.getModel().findNextMatch(t.searchText,i.getEndPosition(),!1,t.matchCase,t.wholeWord?e.getConfiguration().wordSeparators:null,!1);return o?new u.Selection(o.range.startLineNumber,o.range.startColumn,o.range.endLineNumber,o.range.endColumn):null},t}(d.EditorAction);t.SelectNextFindMatchAction=O;var R=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return f(t,e),t.prototype._getPreviousMatch=function(e){var t=S(e,{changeFindSearchString:!0,allowMultiline:!0,highlightFindOptions:!0});if(!t)return null;if(t.currentMatch)return t.currentMatch;var n=e.getSelections(),i=n[n.length-1],o=e.getModel().findPreviousMatch(t.searchText,i.getStartPosition(),!1,t.matchCase,t.wholeWord?e.getConfiguration().wordSeparators:null,!1);return o?new u.Selection(o.range.startLineNumber,o.range.startColumn,o.range.endLineNumber,o.range.endColumn):null},t}(d.EditorAction);t.SelectPreviousFindMatchAction=R;var P=function(e){function t(){return e.call(this,{id:h.FIND_IDS.AddSelectionToNextFindMatchAction,label:n.localize(6,null),alias:"Add Selection To Next Find Match",precondition:null,kbOpts:{kbExpr:b.EditorContextKeys.focus,primary:2082}})||this}return f(t,e),t.prototype.run=function(e,t){var n=t.getSelections();if(n.length>1){var i=t.getModel(),o=E.get(t);if(!o)return;var r=o.getState().matchCase,s=!0,a=i.getValueInRange(n[0]);r||(a=a.toLowerCase());for(var l=1,c=n.length;l0)i=t.getModel().findMatches(o.searchString,!0,o.isRegex,o.matchCase,o.wholeWord?t.getConfiguration().wordSeparators:null,!1).map(function(e){return e.range});else{var r=S(t,{changeFindSearchString:!0,allowMultiline:!0,highlightFindOptions:!0});if(!r)return;i=t.getModel().findMatches(r.searchText,!0,!1,r.matchCase,r.wholeWord?t.getConfiguration().wordSeparators:null,!1).map(function(e){return e.range})}if(i.length>0){for(var s=t.getSelection(),a=0,l=i.length;a200)return null;var a=E.get(t);if(!a)return null;var u=a.getState().matchCase,l=t.getSelections(),c=n.getValueInRange(l[0]);u||(c=c.toLowerCase());for(var d=1;d=c)r.push(d),s++;else{var h=a.Range.compareRangesUsingStarts(d,o[u]);h<0?(r.push(d),s++):h>0?u++:(s++,u++)}}var p=r.map(function(e){return{range:e,options:n?j._SELECTION_HIGHLIGHT:j._SELECTION_HIGHLIGHT_OVERVIEW}});this.decorations=this.editor.deltaDecorations(this.decorations,p)}else this.decorations.length>0&&(this.decorations=this.editor.deltaDecorations(this.decorations,[]))},t.prototype.dispose=function(){this._setState(null),e.prototype.dispose.call(this)},t}(r.Disposable);K.ID="editor.contrib.selectionHighlighter",K._SELECTION_HIGHLIGHT_OVERVIEW=w.ModelDecorationOptions.register({stickiness:c.TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges,className:"selectionHighlight",overviewRuler:{color:"#A0A0A0",darkColor:"#A0A0A0",position:c.OverviewRulerLane.Center}}),K._SELECTION_HIGHLIGHT=w.ModelDecorationOptions.register({stickiness:c.TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges,className:"selectionHighlight"}),K=j=v([d.commonEditorContribution],K),t.SelectionHighlighter=K;var U=d.EditorCommand.bindToContribution(E.get);d.CommonEditorRegistry.registerEditorCommand(new U({id:h.FIND_IDS.CloseFindWidgetCommand,precondition:t.CONTEXT_FIND_WIDGET_VISIBLE,handler:function(e){return e.closeFindWidget()},kbOpts:{weight:d.CommonEditorRegistry.commandWeight(5),kbExpr:b.EditorContextKeys.focus,primary:9,secondary:[1033]}})),d.CommonEditorRegistry.registerEditorCommand(new U({id:h.FIND_IDS.ToggleCaseSensitiveCommand,precondition:null,handler:function(e){return e.toggleCaseSensitive()},kbOpts:{weight:d.CommonEditorRegistry.commandWeight(5),kbExpr:b.EditorContextKeys.focus,primary:h.ToggleCaseSensitiveKeybinding.primary,mac:h.ToggleCaseSensitiveKeybinding.mac,win:h.ToggleCaseSensitiveKeybinding.win,linux:h.ToggleCaseSensitiveKeybinding.linux}})),d.CommonEditorRegistry.registerEditorCommand(new U({id:h.FIND_IDS.ToggleWholeWordCommand,precondition:null,handler:function(e){return e.toggleWholeWords()},kbOpts:{weight:d.CommonEditorRegistry.commandWeight(5),kbExpr:b.EditorContextKeys.focus,primary:h.ToggleWholeWordKeybinding.primary,mac:h.ToggleWholeWordKeybinding.mac,win:h.ToggleWholeWordKeybinding.win,linux:h.ToggleWholeWordKeybinding.linux}})),d.CommonEditorRegistry.registerEditorCommand(new U({id:h.FIND_IDS.ToggleRegexCommand,precondition:null,handler:function(e){return e.toggleRegex()},kbOpts:{weight:d.CommonEditorRegistry.commandWeight(5),kbExpr:b.EditorContextKeys.focus,primary:h.ToggleRegexKeybinding.primary,mac:h.ToggleRegexKeybinding.mac,win:h.ToggleRegexKeybinding.win,linux:h.ToggleRegexKeybinding.linux}})),d.CommonEditorRegistry.registerEditorCommand(new U({id:h.FIND_IDS.ToggleSearchScopeCommand,precondition:null,handler:function(e){return e.toggleSearchScope()},kbOpts:{weight:d.CommonEditorRegistry.commandWeight(5),kbExpr:b.EditorContextKeys.focus,primary:h.ToggleSearchScopeKeybinding.primary,mac:h.ToggleSearchScopeKeybinding.mac,win:h.ToggleSearchScopeKeybinding.win,linux:h.ToggleSearchScopeKeybinding.linux}})),d.CommonEditorRegistry.registerEditorCommand(new U({id:h.FIND_IDS.ReplaceOneAction,precondition:t.CONTEXT_FIND_WIDGET_VISIBLE,handler:function(e){return e.replace()},kbOpts:{weight:d.CommonEditorRegistry.commandWeight(5),kbExpr:b.EditorContextKeys.focus,primary:3094}})),d.CommonEditorRegistry.registerEditorCommand(new U({id:h.FIND_IDS.ReplaceAllAction,precondition:t.CONTEXT_FIND_WIDGET_VISIBLE,handler:function(e){return e.replaceAll()},kbOpts:{weight:d.CommonEditorRegistry.commandWeight(5),kbExpr:b.EditorContextKeys.focus,primary:2563}})),d.CommonEditorRegistry.registerEditorCommand(new U({id:h.FIND_IDS.SelectAllMatchesAction,precondition:t.CONTEXT_FIND_WIDGET_VISIBLE,handler:function(e){return e.selectAllMatches()},kbOpts:{weight:d.CommonEditorRegistry.commandWeight(5),kbExpr:b.EditorContextKeys.focus,primary:515}})),d.CommonEditorRegistry.registerEditorCommand(new U({id:h.FIND_IDS.ShowPreviousFindTermAction,precondition:t.CONTEXT_FIND_WIDGET_VISIBLE,handler:function(e){return e.showPreviousFindTerm()},kbOpts:{weight:d.CommonEditorRegistry.commandWeight(5),kbExpr:s.ContextKeyExpr.and(t.CONTEXT_FIND_INPUT_FOCUSSED,b.EditorContextKeys.focus),primary:h.ShowPreviousFindTermKeybinding.primary,mac:h.ShowPreviousFindTermKeybinding.mac,win:h.ShowPreviousFindTermKeybinding.win,linux:h.ShowPreviousFindTermKeybinding.linux}})),d.CommonEditorRegistry.registerEditorCommand(new U({id:h.FIND_IDS.ShowNextFindTermAction,precondition:t.CONTEXT_FIND_WIDGET_VISIBLE,handler:function(e){return e.showNextFindTerm()},kbOpts:{weight:d.CommonEditorRegistry.commandWeight(5),kbExpr:s.ContextKeyExpr.and(t.CONTEXT_FIND_INPUT_FOCUSSED,b.EditorContextKeys.focus),primary:h.ShowNextFindTermKeybinding.primary,mac:h.ShowNextFindTermKeybinding.mac,win:h.ShowNextFindTermKeybinding.win,linux:h.ShowNextFindTermKeybinding.linux}}));var j}),define(d[448],h([0,1,339,29,6,18,39,3,2,13,25,32,323,248,247,20,291]),function(e,t,n,i,o,r,s,a,u,l,c,d,h,p,g,m){"use strict";function _(e){if(!i.isUndefined(e)){if(!i.isObject(e))return!1;var t=e;if(!i.isUndefined(t.levels)&&!i.isNumber(t.levels))return!1;if(!i.isUndefined(t.direction)&&!i.isString(t.direction))return!1}return!0}Object.defineProperty(t,"__esModule",{value:!0});var y=T=function(){function e(e){var t=this;this.editor=e,this._isEnabled=this.editor.getConfiguration().contribInfo.folding,this._showFoldingControls=this.editor.getConfiguration().contribInfo.showFoldingControls,this.globalToDispose=[],this.localToDispose=[],this.decorations=[],this.computeToken=0,this.globalToDispose.push(this.editor.onDidChangeModel(function(){return t.onModelChanged()})),this.globalToDispose.push(this.editor.onDidChangeConfiguration(function(e){var n=t._isEnabled;t._isEnabled=t.editor.getConfiguration().contribInfo.folding,n!==t._isEnabled&&t.onModelChanged();var i=t._showFoldingControls;t._showFoldingControls=t.editor.getConfiguration().contribInfo.showFoldingControls,i!==t._showFoldingControls&&t.updateHideFoldIconClass()})),this.onModelChanged()}return e.get=function(e){return e.getContribution(g.ID)},e.prototype.getId=function(){return g.ID},e.prototype.dispose=function(){this.cleanState(),this.globalToDispose=a.dispose(this.globalToDispose)},e.prototype.updateHideFoldIconClass=function(){var e=this.editor.getDomNode();e&&o.toggleClass(e,"alwaysShowFoldIcons","always"===this._showFoldingControls)},e.prototype.saveViewState=function(){var e=this.editor.getModel();if(!e)return{};var t=[];return this.decorations.forEach(function(n){if(n.isCollapsed){var i=n.getDecorationRange(e);i&&t.push({startLineNumber:i.startLineNumber,endLineNumber:i.endLineNumber,indent:n.indent,isCollapsed:!0})}}),{collapsedRegions:t,lineCount:e.getLineCount()}},e.prototype.restoreViewState=function(e){var t=this.editor.getModel();t&&this._isEnabled&&e&&Array.isArray(e.collapsedRegions)&&0!==e.collapsedRegions.length&&e.lineCount===t.getLineCount()&&(this.cleanState(),this.applyRegions(e.collapsedRegions),this.onModelChanged())},e.prototype.cleanState=function(){this.localToDispose=a.dispose(this.localToDispose)},e.prototype.applyRegions=function(e){var t=this,n=this.editor.getModel();if(n){var i=!1;e=p.limitByIndent(e,T.MAX_FOLDING_REGIONS).sort(function(e,t){return e.startLineNumber-t.startLineNumber}),this.editor.changeDecorations(function(o){for(var r=[],s=0,a=0;ae[s].startLineNumber;){d=e[s];i=i||d.isCollapsed,r.push(new h.CollapsibleRegion(d,n,o)),s++}if(s0&&(u.forEach(function(e,n){t.editor.changeDecorations(function(t){e.setCollapsed(!1,t),i=!0})}),!h.doesLineBelongsToCollapsibleRegion(u[0].foldingRange,s.startLineNumber))){var l=u[0].startLineNumber,c=n.getLineMaxColumn(u[0].startLineNumber);o[a]=s.setEndPosition(l,c).setStartPosition(l,c),r=!0}}),r&&this.editor.setSelections(o),i&&this.updateHiddenAreas(o[0].startLineNumber)},e.prototype.fold=function(e,t){var n=this,i=!1,o=this.editor.getSelections();o.forEach(function(o){var r=o.startLineNumber;h.getCollapsibleRegionsToFoldAtLine(n.decorations,n.editor.getModel(),r,e,t).forEach(function(e){return n.editor.changeDecorations(function(t){e.setCollapsed(!0,t),i=!0})})}),i&&this.updateHiddenAreas(o[0].startLineNumber)},e.prototype.foldUnfoldRecursively=function(e){var t=this,n=!1,i=this.editor.getModel(),o=this.editor.getSelections();o.forEach(function(o){for(var r,s=o.startLineNumber,a=[],u=0,l=t.decorations.length;u=s&&(d.endLineNumber<=r||void 0===r))){if(d.startLineNumber!==s&&void 0===r)return;r=r||d.endLineNumber,a.push(c)}}a.length>0&&a.forEach(function(i){t.editor.changeDecorations(function(t){i.setCollapsed(e,t),n=!0})})}),n&&this.updateHiddenAreas(o[0].startLineNumber)},e.prototype.foldAll=function(){this.changeAll(!0)},e.prototype.unfoldAll=function(){this.changeAll(!1)},e.prototype.changeAll=function(e){var t=this;if(this.decorations.length>0){var n=!0;this.editor.changeDecorations(function(i){t.decorations.forEach(function(t){e!==t.isCollapsed&&(t.setCollapsed(e,i),n=!0)})}),n&&this.updateHiddenAreas(this.editor.getPosition().lineNumber)}},e.prototype.foldLevel=function(e,t){var n=this,i=this.editor.getModel(),o=[i.getFullModelRange()],r=!1;this.editor.changeDecorations(function(s){n.decorations.forEach(function(n){var a=n.getDecorationRange(i);if(a){for(;!u.Range.containsRange(o[o.length-1],a);)o.pop();o.push(a),o.length!==e+1||n.isCollapsed||t.some(function(e){return a.startLineNumber1)){var n=this.editor.getModel(),o=this.editor.getPosition(),r=!1,s=this.editor.onDidChangeModelContent(function(e){if(e.isFlush)return r=!0,void s.dispose();for(var t=0,n=e.changes.length;t1)){var n=this.editor.getModel(),o=n.getOptions(),r=o.tabSize,s=o.insertSpaces,a=new C.EditorState(this.editor,5);c.getDocumentRangeFormattingEdits(n,e,{tabSize:r,insertSpaces:s}).then(function(e){return t.workerService.computeMoreMinimalEdits(n.uri,e,[])}).then(function(e){a.validate(t.editor)&&!i.isFalsyOrEmpty(e)&&(d.EditOperationsCommand.execute(t.editor,e),S(e))})}},e.prototype.getId=function(){return k.ID},e.prototype.dispose=function(){this.callOnDispose=r.dispose(this.callOnDispose),this.callOnModel=r.dispose(this.callOnModel)},e}();L.ID="editor.contrib.formatOnPaste",L=k=v([u.commonEditorContribution,y(1,g.IEditorWorkerService)],L);var x=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return f(t,e),t.prototype.run=function(e,t){var n=e.get(g.IEditorWorkerService),o=this._getFormattingEdits(t);if(!o)return s.TPromise.as(void 0);var r=new C.EditorState(t,5);return o.then(function(e){return n.computeMoreMinimalEdits(t.getModel().uri,e,t.getSelections())}).then(function(e){r.validate(t)&&!i.isFalsyOrEmpty(e)&&(d.EditOperationsCommand.execute(t,e),S(e),t.focus())})},t}(u.EditorAction);t.AbstractFormatAction=x;var N=function(e){function t(){return e.call(this,{id:"editor.action.formatDocument",label:n.localize(4,null),alias:"Format Document",precondition:a.ContextKeyExpr.and(w.EditorContextKeys.writable,w.EditorContextKeys.hasDocumentFormattingProvider),kbOpts:{kbExpr:w.EditorContextKeys.textFocus,primary:1572,linux:{primary:3111}},menuOpts:{group:"1_modification",order:1.3}})||this}return f(t,e),t.prototype._getFormattingEdits=function(e){var t=e.getModel(),n=t.getOptions(),i=n.tabSize,o=n.insertSpaces;return c.getDocumentFormattingEdits(t,{tabSize:i,insertSpaces:o})},t}(x);N=v([u.editorAction],N),t.FormatDocumentAction=N;var M=function(e){function t(){return e.call(this,{id:"editor.action.formatSelection",label:n.localize(5,null),alias:"Format Code",precondition:a.ContextKeyExpr.and(w.EditorContextKeys.writable,w.EditorContextKeys.hasDocumentSelectionFormattingProvider,w.EditorContextKeys.hasNonEmptySelection),kbOpts:{kbExpr:w.EditorContextKeys.textFocus,primary:o.KeyChord(2089,2084)},menuOpts:{group:"1_modification",order:1.31}})||this}return f(t,e),t.prototype._getFormattingEdits=function(e){var t=e.getModel(),n=t.getOptions(),i=n.tabSize,o=n.insertSpaces;return c.getDocumentRangeFormattingEdits(t,e.getSelection(),{tabSize:i,insertSpaces:o})},t}(x);M=v([u.editorAction],M),t.FormatSelectionAction=M,h.CommandsRegistry.registerCommand("editor.action.format",function(e){var t=e.get(p.ICodeEditorService).getFocusedCodeEditor();if(t)return(new(function(e){function t(){return e.call(this,{})||this}return f(t,e),t.prototype._getFormattingEdits=function(e){var t=e.getModel(),n=e.getSelection(),i=t.getOptions(),o=i.tabSize,r=i.insertSpaces;return n.isEmpty()?c.getDocumentFormattingEdits(t,{tabSize:o,insertSpaces:r}):c.getDocumentRangeFormattingEdits(t,n,{tabSize:o,insertSpaces:r})},t}(x))).run(e,t)});var T,k}),define(d[144],h([0,1,10,8,13,17,18]),function(e,t,n,i,o,r,s){"use strict";function a(e){return i.TPromise.join(e).then(function(e){for(var t=[],n=0,i=e;n0;t&&n&&(r[o]=e)}},function(e){i.onUnexpectedExternalError(e)})});return o.TPromise.join(u).then(function(){return n.coalesce(r)})}Object.defineProperty(t,"__esModule",{value:!0}),t.getHover=u,r.CommonEditorRegistry.registerDefaultLanguageCommand("_executeHoverProvider",u)}),define(d[453],h([0,1,345,24,10,6,8,94,67,2,12,17,138,452,149,148,125,33]),function(e,t,n,i,o,r,s,a,u,l,c,d,h,p,g,m,v,_){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var y=function(){function e(e){this._editor=e,this._range=null}return e.prototype.setRange=function(e){this._range=e,this._result=[]},e.prototype.clearResult=function(){this._result=[]},e.prototype.computeAsync=function(){var e=this._editor.getModel();return d.HoverProviderRegistry.has(e)?p.getHover(e,new c.Position(this._range.startLineNumber,this._range.startColumn)):s.TPromise.as(null)},e.prototype.computeSync=function(){var e=this,t=this._range.startLineNumber;if(t>this._editor.getModel().getLineCount())return[];var n=function(e){return e&&(!Array.isArray(e)||e.length>0)},i=this._editor.getModel().getLineMaxColumn(t);return this._editor.getLineDecorations(t).map(function(o){var r=o.range.startLineNumber===t?o.range.startColumn:1,s=o.range.endLineNumber===t?o.range.endColumn:i;if(r>e._range.startColumn||e._range.endColumn>s||!n(o.options.hoverMessage))return null;var a,u=new l.Range(e._range.startLineNumber,r,e._range.startLineNumber,s);return o.options.hoverMessage&&(a=Array.isArray(o.options.hoverMessage)?o.options.hoverMessage.slice():[o.options.hoverMessage]),{contents:a,range:u}}).filter(function(e){return!!e})},e.prototype.onResult=function(e,t){this._result=t?e.concat(this._result):this._result.concat(e)},e.prototype.getResult=function(){return this._result.slice(0)},e.prototype.getResultWithLoadingMessage=function(){return this._result.slice(0).concat([this._getLoadingMessage()])},e.prototype._getLoadingMessage=function(){return{range:this._range,contents:[v.textToMarkedString(n.localize(0,null))]}},e}(),b=function(e){function t(n,i,o){var r=e.call(this,t.ID,n)||this;return r._computer=new y(r._editor),r._highlightDecorations=[],r._isChangingDecorations=!1,r._openerService=i||u.NullOpenerService,r._modeService=o,r._hoverOperation=new g.HoverOperation(r._computer,function(e){return r._withResult(e,!0)},null,function(e){return r._withResult(e,!1)}),r}return f(t,e),t.prototype.dispose=function(){this._hoverOperation.cancel(),e.prototype.dispose.call(this)},t.prototype.onModelDecorationsChanged=function(){this._isChangingDecorations||this.isVisible&&(this._hoverOperation.cancel(),this._computer.clearResult(),this._hoverOperation.start())},t.prototype.startShowingAt=function(e,t){if(!this._lastRange||!this._lastRange.equalsRange(e)){if(this._hoverOperation.cancel(),this.isVisible)if(this._showAtPosition.lineNumber!==e.startLineNumber)this.hide();else{for(var n=[],i=0,o=this._messages.length;i=e.endColumn&&n.push(r)}n.length>0?this._renderMessages(e,n):this.hide()}this._lastRange=e,this._computer.setRange(e),this._shouldFocus=t,this._hoverOperation.start()}},t.prototype.hide=function(){this._lastRange=null,this._hoverOperation.cancel(),e.prototype.hide.call(this),this._isChangingDecorations=!0,this._highlightDecorations=this._editor.deltaDecorations(this._highlightDecorations,[]),this._isChangingDecorations=!1},t.prototype._withResult=function(e,t){this._messages=e,this._lastRange&&this._messages.length>0?this._renderMessages(this._lastRange,this._messages):t&&this.hide()},t.prototype._renderMessages=function(e,n){var s=this,u=Number.MAX_VALUE,d=n[0].range,p=document.createDocumentFragment();n.forEach(function(e){e.range&&(u=Math.min(u,e.range.startColumn),d=l.Range.plusRange(d,e.range),e.contents.filter(function(e){return!!e}).forEach(function(e){var t=a.renderMarkedString(e,{actionCallback:function(e){s._openerService.open(i.default.parse(e)).then(void 0,o.onUnexpectedError)},codeBlockRenderer:function(e,t){var n=e?s._modeService.getModeIdForLanguageName(e):s._editor.getModel().getLanguageIdentifier().language;return s._modeService.getOrCreateMode(n).then(function(e){return'
        '+h.tokenizeToString(t,n)+"
        "})}});p.appendChild(r.$("div.hover-row",null,t))}))}),this.showAt(new c.Position(e.startLineNumber,u),this._shouldFocus),this.updateContents(p),this._isChangingDecorations=!0,this._highlightDecorations=this._editor.deltaDecorations(this._highlightDecorations,[{range:d,options:t._DECORATION_OPTIONS}]),this._isChangingDecorations=!1},t}(m.ContentHoverWidget);b.ID="editor.contrib.modesContentHoverWidget",b._DECORATION_OPTIONS=_.ModelDecorationOptions.register({className:"hoverHighlight"}),t.ModesContentHoverWidget=b}),define(d[454],h([0,1,347,39,257,57,226,20,74,2,22,13,255,256,309,123,137]),function(e,t,n,i,o,r,s,a,u,l,c,d,h,p,g,m,_){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var y=function(e){function t(t,n){var i=e.call(this,n)||this;return i.down=t,i}return f(t,e),t.prototype.run=function(e,t){for(var n=[],i=t.getSelections(),o=0;oe.endLineNumber+1?(o.push(e),t):new c.Selection(e.startLineNumber,e.startColumn,t.endLineNumber,t.endColumn):t.startLineNumber>e.endLineNumber?(o.push(e),t):new c.Selection(e.startLineNumber,e.startColumn,t.endLineNumber,t.endColumn)});o.push(s);for(var a=t.getModel(),u=[],d=[],h=i,p=0,f=0,g=o.length;f=1){var N=!0;""===S&&(N=!1),!N||" "!==S.charAt(S.length-1)&&"\t"!==S.charAt(S.length-1)||(N=!1,S=S.replace(/[\s\uFEFF\xA0]+$/g," "));var M=L.substr(x-1);S+=(N?" ":"")+M,b=N?M.length+1:M.length}else b=0}var T=new l.Range(v,1,_,y);if(!T.isEmpty()){var k=void 0;m.isEmpty()?(u.push(r.EditOperation.replace(T,S)),k=new c.Selection(T.startLineNumber-p,S.length-b+1,v-p,S.length-b+1)):m.startLineNumber===m.endLineNumber?(u.push(r.EditOperation.replace(T,S)),k=new c.Selection(m.startLineNumber-p,m.startColumn,m.endLineNumber-p,m.endColumn)):(u.push(r.EditOperation.replace(T,S)),k=new c.Selection(m.startLineNumber-p,m.startColumn,m.startLineNumber-p,S.length-C)),null!==l.Range.intersectRanges(T,i)?h=k:d.push(k)}p+=T.endLineNumber-T.startLineNumber}d.unshift(h),t.executeEdits(this.id,u,d)},t}(d.EditorAction);F=v([d.editorAction],F),t.JoinLinesAction=F;var W=function(e){function t(){return e.call(this,{id:"editor.action.transpose",label:n.localize(15,null),alias:"Transpose characters around the cursor",precondition:a.EditorContextKeys.writable})||this}return f(t,e),t.prototype.run=function(e,t){for(var n=t.getSelections(),i=t.getModel(),o=[],r=0,s=n.length;r=h){if(d.lineNumber===i.getLineCount())continue;var p=new l.Range(d.lineNumber,Math.max(1,d.column-1),d.lineNumber+1,1),f=i.getValueInRange(p).split("").reverse().join("");o.push(new u.ReplaceCommand(new c.Selection(d.lineNumber,Math.max(1,d.column-1),d.lineNumber+1,1),f))}else{var p=new l.Range(d.lineNumber,Math.max(1,d.column-1),d.lineNumber,d.column+1),f=i.getValueInRange(p).split("").reverse().join("");o.push(new u.ReplaceCommandThatPreservesSelection(p,f,new c.Selection(d.lineNumber,d.column+1,d.lineNumber,d.column+1)))}}}t.pushUndoStop(),t.executeCommands(this.id,o),t.pushUndoStop()},t}(d.EditorAction);W=v([d.editorAction],W),t.TransposeAction=W;var B=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return f(t,e),t.prototype.run=function(e,t){for(var n=t.getSelections(),i=t.getModel(),o=[],r=0,s=n.length;r1&&i.push(new r.Selection(e.endLineNumber,e.endColumn,e.endLineNumber,e.endColumn)),i},t.prototype.run=function(e,t){var n=this,i=t.getSelections().map(function(e){return n.getCursorsForSelection(e,t)}).reduce(function(e,t){return e.concat(t)});i.length>0&&t.setSelections(i)},t}(o.EditorAction);d=v([o.editorAction],d)}),define(d[199],h([0,1,10,13,17,18,19]),function(e,t,n,i,o,r,s){"use strict";function a(e,t){var i,s=o.SignatureHelpProviderRegistry.ordered(e);return r.sequence(s.map(function(o){return function(){if(!i)return r.asWinJsPromise(function(n){return o.provideSignatureHelp(e,t,n)}).then(function(e){i=e},n.onUnexpectedExternalError)}})).then(function(){return i})}Object.defineProperty(t,"__esModule",{value:!0}),t.Context={Visible:new s.RawContextKey("parameterHintsVisible",!1),MultipleSignatures:new s.RawContextKey("parameterHintsMultipleSignatures",!1)},t.provideSignatureHelp=a,i.CommonEditorRegistry.registerDefaultLanguageCommand("_executeSignatureHelpProvider",a)}),define(d[457],h([0,1,24,2,17,18,8,10,53,13]),function(e,t,n,i,o,r,s,a,u,l){"use strict";function c(e,t){var n=[],i=o.CodeActionProviderRegistry.all(e).map(function(i){return r.asWinJsPromise(function(n){return i.provideCodeActions(e,t,n)}).then(function(e){Array.isArray(e)&&n.push.apply(n,e)},function(e){a.onUnexpectedExternalError(e)})});return s.TPromise.join(i).then(function(){return n})}Object.defineProperty(t,"__esModule",{value:!0}),t.getCodeActions=c,l.CommonEditorRegistry.registerLanguageCommand("_executeCodeActionProvider",function(e,t){var o=t.resource,r=t.range;if(!(o instanceof n.default&&i.Range.isIRange(r)))throw a.illegalArgument();var s=e.get(u.IModelService).getModel(o);if(!s)throw a.illegalArgument();return c(s,s.validateRange(r))})}),define(d[458],h([0,1,27,11,3,2,17,457]),function(e,t,n,i,o,r,s,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var u=function(){function e(e,t,n,o){void 0===o&&(o=250);var r=this;this._editor=e,this._markerService=t,this._signalChange=n,this._disposables=[],this._disposables.push(i.debounceEvent(this._markerService.onMarkerChanged,function(e,t){return e?e.concat(t):t},o/2)(function(e){return r._onMarkerChanges(e)}),i.debounceEvent(this._editor.onDidChangeCursorPosition,function(e){return e},o)(function(e){return r._onCursorChange()}))}return e.prototype.dispose=function(){this._disposables=o.dispose(this._disposables)},e.prototype.trigger=function(e){var t=this._rangeAtPosition();t||(t=this._editor.getSelection()),this._signalChange({type:e,range:t,position:this._editor.getPosition(),fixes:t&&a.getCodeActions(this._editor.getModel(),this._editor.getModel().validateRange(t))})},e.prototype._onMarkerChanges=function(e){for(var t=this._editor.getModel().uri,n=0,i=e;n=e.lineNumber});o=e.lineNumber;){var s=i[o];if(r.Range.containsPosition(s,e))return s;o++}},e.prototype._wordAtPosition=function(){var e=this._editor.getPosition(),t=this._editor.getModel().getWordAtPosition(e);if(t)return new r.Range(e.lineNumber,t.startColumn,e.lineNumber,t.endColumn)},e}();t.QuickFixOracle=u;var l=function(){function e(e,t){var n=this;this._onDidChangeFixes=new i.Emitter,this._disposables=[],this._editor=e,this._markerService=t,this._disposables.push(this._editor.onDidChangeModel(function(){return n._update()})),this._disposables.push(this._editor.onDidChangeModelLanguage(function(){return n._update()})),this._disposables.push(s.CodeActionProviderRegistry.onDidChange(this._update,this)),this._update()}return e.prototype.dispose=function(){this._disposables=o.dispose(this._disposables),o.dispose(this._quickFixOracle)},Object.defineProperty(e.prototype,"onDidChangeFixes",{get:function(){return this._onDidChangeFixes.event},enumerable:!0,configurable:!0}),e.prototype._update=function(){var e=this;this._quickFixOracle&&(this._quickFixOracle.dispose(),this._quickFixOracle=void 0,this._onDidChangeFixes.fire(void 0)),this._editor.getModel()&&s.CodeActionProviderRegistry.has(this._editor.getModel())&&!this._editor.getConfiguration().readOnly&&(this._quickFixOracle=new u(this._editor,this._markerService,function(t){return e._onDidChangeFixes.fire(t)}),this._quickFixOracle.trigger("auto"))},e.prototype.trigger=function(e){this._quickFixOracle&&this._quickFixOracle.trigger(e)},e}();t.QuickFixModel=l}),define(d[459],h([0,1,352,3,31,71,19,47,105,20,13,32,17,18,8,10,259,258,458]),function(e,t,n,i,o,r,s,a,u,l,c,d,h,p,g,m,_,b,C){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var w=E=function(){function e(e,t,n,i,o,r){var s=this;this._keybindingService=r,this._disposables=[],this._editor=e,this._model=new C.QuickFixModel(this._editor,t),this._quickFixContextMenu=new _.QuickFixContextMenu(e,o,i),this._lightBulbWidget=new b.LightBulbWidget(e),this._updateLightBulbTitle(),this._disposables.push(this._quickFixContextMenu.onDidExecuteCodeAction(function(e){return s._model.trigger("auto")}),this._lightBulbWidget.onClick(this._handleLightBulbSelect,this),this._model.onDidChangeFixes(function(e){return s._onQuickFixEvent(e)}),this._keybindingService.onDidUpdateKeybindings(this._updateLightBulbTitle,this))}return e.get=function(e){return e.getContribution(E.ID)},e.prototype.dispose=function(){this._model.dispose(),i.dispose(this._disposables)},e.prototype._onQuickFixEvent=function(e){e&&"manual"===e.type?this._quickFixContextMenu.show(e.fixes,e.position):e&&e.fixes?this._quickFixContextMenu.isVisible?this._quickFixContextMenu.show(e.fixes,e.position):this._lightBulbWidget.model=e:this._lightBulbWidget.hide()},e.prototype.getId=function(){return E.ID},e.prototype._handleLightBulbSelect=function(e){this._quickFixContextMenu.show(this._lightBulbWidget.model.fixes,e)},e.prototype.triggerFromEditorSelection=function(){this._model.trigger("manual")},e.prototype._updateLightBulbTitle=function(){var e,t=this._keybindingService.lookupKeybinding(S.Id);e=t?n.localize(0,null,t.getLabel()):n.localize(1,null),this._lightBulbWidget.title=e},e}();w.ID="editor.contrib.quickFixController",w=E=v([d.editorContribution,y(1,u.IMarkerService),y(2,s.IContextKeyService),y(3,o.ICommandService),y(4,r.IContextMenuService),y(5,a.IKeybindingService)],w),t.QuickFixController=w;var S=L=function(e){function t(){return e.call(this,{id:L.Id,label:n.localize(2,null),alias:"Quick Fix",precondition:s.ContextKeyExpr.and(l.EditorContextKeys.writable,l.EditorContextKeys.hasCodeActionsProvider),kbOpts:{kbExpr:l.EditorContextKeys.textFocus,primary:2132}})||this}return f(t,e),t.prototype.run=function(e,t){var n=w.get(t);n&&n.triggerFromEditorSelection()},t}(c.EditorAction);S.Id="editor.action.quickFix",S=L=v([c.editorAction],S),t.QuickFixAction=S,t.getCodeActions=function(e,t){var n=[],i=h.CodeActionProviderRegistry.all(e).map(function(i){return p.asWinJsPromise(function(n){return i.provideCodeActions(e,t,n)}).then(function(e){Array.isArray(e)&&n.push.apply(n,e)},function(e){m.onUnexpectedExternalError(e)})});return g.TPromise.join(i).then(function(){return n})};var E,L}),define(d[460],h([0,1,10,24,8,2,13,17,53,18]),function(e,t,n,i,o,r,s,a,u,l){"use strict";function c(e){var t=[],i=a.DocumentSymbolProviderRegistry.all(e).map(function(i){return l.asWinJsPromise(function(t){return i.provideDocumentSymbols(e,t)}).then(function(e){Array.isArray(e)&&t.push.apply(t,e)},function(e){n.onUnexpectedExternalError(e)})});return o.TPromise.join(i).then(function(){var e=[];return h(e,t,""),e.sort(d),{entries:e}})}function d(e,t){return r.Range.compareRangesUsingStarts(r.Range.lift(e.location.range),r.Range.lift(t.location.range))}function h(e,t,n){for(var i=0,o=t;ithis.context.column&&this.completionModel.incomplete&&0!==e.leadingWord.word.length){var t=this.completionModel.resolveIncompleteInfo(),n=t.complete,i=t.incomplete;this.trigger(2===this._state,!0,i,n)}else{var o=this.completionModel.lineContext,r=!1;if(this.completionModel.lineContext={leadingLineContent:e.leadingLineContent,characterCountDelta:e.column-this.context.column},0===this.completionModel.items.length){if(p.shouldAutoTrigger(this.editor)&&this.context.leadingWord.endColumn0)&&0===e.leadingWord.word.length)return void this.cancel()}this._onDidSuggest.fire({completionModel:this.completionModel,auto:this.context.auto,isFrozen:r})}}else this.cancel()},e}();t.SuggestModel=f}),define(d[187],h([0,1,363,13,164]),function(e,t,n,i,o){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=s=function(e){function t(){return e.call(this,{id:s.ID,label:n.localize(0,null),alias:"Toggle Tab Key Moves Focus",precondition:null,kbOpts:{kbExpr:null,primary:2091,mac:{primary:1323}}})||this}return f(t,e),t.prototype.run=function(e,t){var n=o.TabFocus.getTabFocusMode();o.TabFocus.setTabFocusMode(!n)},t}(i.EditorAction);r.ID="editor.action.toggleTabFocusMode",r=s=v([i.editorAction],r),t.ToggleTabFocusModeAction=r;var s}),define(d[466],h([0,1,20,22,13,12,2,177,74,90,37,54]),function(e,t,n,i,o,r,s,a,u,l,c,d){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var h=function(e){function t(t){var n=e.call(this,t)||this;return n._inSelectionMode=t.inSelectionMode,n._wordNavigationType=t.wordNavigationType,n}return f(t,e),t.prototype.runEditorCommand=function(e,t,n){var i=this,o=t.getConfiguration(),s=l.getMapForWordSeparators(o.wordSeparators),a=t.getModel(),u=t.getSelections().map(function(e){var t=new r.Position(e.positionLineNumber,e.positionColumn),n=i._move(s,a,t,i._wordNavigationType);return i._moveTo(e,n,i._inSelectionMode)});if(t._getCursors().setStates("moveWordCommand",d.CursorChangeReason.NotSet,u.map(function(e){return c.CursorState.fromModelSelection(e)})),1===u.length){var h=new r.Position(u[0].positionLineNumber,u[0].positionColumn);t.revealPosition(h,!1,!0)}},t.prototype._moveTo=function(e,t,n){return n?new i.Selection(e.selectionStartLineNumber,e.selectionStartColumn,t.lineNumber,t.column):new i.Selection(t.lineNumber,t.column,t.lineNumber,t.column)},t}(o.EditorCommand);t.MoveWordCommand=h;var p=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return f(t,e),t.prototype._move=function(e,t,n,i){return a.WordOperations.moveWordLeft(e,t,n,i)},t}(h);t.WordLeftCommand=p;var g=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return f(t,e),t.prototype._move=function(e,t,n,i){return a.WordOperations.moveWordRight(e,t,n,i)},t}(h);t.WordRightCommand=g;var m=function(e){function t(){return e.call(this,{inSelectionMode:!1,wordNavigationType:0,id:"cursorWordStartLeft",precondition:null,kbOpts:{kbExpr:n.EditorContextKeys.textFocus,primary:2063,mac:{primary:527}}})||this}return f(t,e),t}(p);m=v([o.editorCommand],m),t.CursorWordStartLeft=m;var _=function(e){function t(){return e.call(this,{inSelectionMode:!1,wordNavigationType:1,id:"cursorWordEndLeft",precondition:null})||this}return f(t,e),t}(p);_=v([o.editorCommand],_),t.CursorWordEndLeft=_;var y=function(e){function t(){return e.call(this,{inSelectionMode:!1,wordNavigationType:0,id:"cursorWordLeft",precondition:null})||this}return f(t,e),t}(p);y=v([o.editorCommand],y),t.CursorWordLeft=y;var b=function(e){function t(){return e.call(this,{inSelectionMode:!0,wordNavigationType:0,id:"cursorWordStartLeftSelect",precondition:null,kbOpts:{kbExpr:n.EditorContextKeys.textFocus,primary:3087,mac:{primary:1551}}})||this}return f(t,e),t}(p);b=v([o.editorCommand],b),t.CursorWordStartLeftSelect=b;var C=function(e){function t(){return e.call(this,{inSelectionMode:!0,wordNavigationType:1,id:"cursorWordEndLeftSelect",precondition:null})||this}return f(t,e),t}(p);C=v([o.editorCommand],C),t.CursorWordEndLeftSelect=C;var w=function(e){function t(){return e.call(this,{inSelectionMode:!0,wordNavigationType:0,id:"cursorWordLeftSelect",precondition:null})||this}return f(t,e),t}(p);w=v([o.editorCommand],w),t.CursorWordLeftSelect=w;var S=function(e){function t(){return e.call(this,{inSelectionMode:!1,wordNavigationType:0,id:"cursorWordStartRight",precondition:null})||this}return f(t,e),t}(g);S=v([o.editorCommand],S),t.CursorWordStartRight=S;var E=function(e){function t(){return e.call(this,{inSelectionMode:!1,wordNavigationType:1,id:"cursorWordEndRight",precondition:null,kbOpts:{kbExpr:n.EditorContextKeys.textFocus,primary:2065,mac:{primary:529}}})||this}return f(t,e),t}(g);E=v([o.editorCommand],E),t.CursorWordEndRight=E;var L=function(e){function t(){return e.call(this,{inSelectionMode:!1,wordNavigationType:1,id:"cursorWordRight",precondition:null})||this}return f(t,e),t}(g);L=v([o.editorCommand],L),t.CursorWordRight=L;var x=function(e){function t(){return e.call(this,{inSelectionMode:!0,wordNavigationType:0,id:"cursorWordStartRightSelect",precondition:null})||this}return f(t,e),t}(g);x=v([o.editorCommand],x),t.CursorWordStartRightSelect=x;var N=function(e){function t(){return e.call(this,{inSelectionMode:!0,wordNavigationType:1,id:"cursorWordEndRightSelect",precondition:null,kbOpts:{kbExpr:n.EditorContextKeys.textFocus,primary:3089,mac:{primary:1553}}})||this}return f(t,e),t}(g);N=v([o.editorCommand],N),t.CursorWordEndRightSelect=N;var M=function(e){function t(){return e.call(this,{inSelectionMode:!0,wordNavigationType:1,id:"cursorWordRightSelect",precondition:null})||this}return f(t,e),t}(g);M=v([o.editorCommand],M),t.CursorWordRightSelect=M;var T=function(e){function t(t){var n=e.call(this,t)||this;return n._whitespaceHeuristics=t.whitespaceHeuristics,n._wordNavigationType=t.wordNavigationType,n}return f(t,e),t.prototype.runEditorCommand=function(e,t,n){var i=this,o=t.getConfiguration(),r=l.getMapForWordSeparators(o.wordSeparators),s=t.getModel(),a=t.getSelections().map(function(e){var t=i._delete(r,s,e,i._whitespaceHeuristics,i._wordNavigationType);return new u.ReplaceCommand(t,"")});t.pushUndoStop(),t.executeCommands(this.id,a),t.pushUndoStop()},t}(o.EditorCommand);t.DeleteWordCommand=T;var k=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return f(t,e),t.prototype._delete=function(e,t,n,i,o){var r=a.WordOperations.deleteWordLeft(e,t,n,i,o);return r||new s.Range(1,1,1,1)},t}(T);t.DeleteWordLeftCommand=k;var I=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return f(t,e),t.prototype._delete=function(e,t,n,i,o){var r=a.WordOperations.deleteWordRight(e,t,n,i,o);if(r)return r;var u=t.getLineCount(),l=t.getLineMaxColumn(u);return new s.Range(u,l,u,l)},t}(T);t.DeleteWordRightCommand=I;var D=function(e){function t(){return e.call(this,{whitespaceHeuristics:!1,wordNavigationType:0,id:"deleteWordStartLeft",precondition:n.EditorContextKeys.writable})||this}return f(t,e),t}(k);D=v([o.editorCommand],D),t.DeleteWordStartLeft=D;var O=function(e){function t(){return e.call(this,{whitespaceHeuristics:!1,wordNavigationType:1,id:"deleteWordEndLeft",precondition:n.EditorContextKeys.writable})||this}return f(t,e),t}(k);O=v([o.editorCommand],O),t.DeleteWordEndLeft=O;var R=function(e){function t(){return e.call(this,{whitespaceHeuristics:!0,wordNavigationType:0,id:"deleteWordLeft",precondition:n.EditorContextKeys.writable,kbOpts:{kbExpr:n.EditorContextKeys.textFocus,primary:2049,mac:{primary:513}}})||this}return f(t,e),t}(k);R=v([o.editorCommand],R),t.DeleteWordLeft=R;var P=function(e){function t(){return e.call(this,{whitespaceHeuristics:!1,wordNavigationType:0,id:"deleteWordStartRight",precondition:n.EditorContextKeys.writable})||this}return f(t,e),t}(I);P=v([o.editorCommand],P),t.DeleteWordStartRight=P;var A=function(e){function t(){return e.call(this,{whitespaceHeuristics:!1,wordNavigationType:1,id:"deleteWordEndRight",precondition:n.EditorContextKeys.writable})||this}return f(t,e),t}(I);A=v([o.editorCommand],A),t.DeleteWordEndRight=A;var F=function(e){function t(){return e.call(this,{whitespaceHeuristics:!0,wordNavigationType:1,id:"deleteWordRight",precondition:n.EditorContextKeys.writable,kbOpts:{kbExpr:n.EditorContextKeys.textFocus,primary:2068,mac:{primary:532}}})||this}return f(t,e),t}(I);F=v([o.editorCommand],F),t.DeleteWordRight=F}),define(d[467],h([0,1,371,13,83]),function(e,t,n,i,o){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){function t(){var t=e.call(this,{id:"editor.action.toggleHighContrast",label:n.localize(0,null),alias:"Toggle High Contrast Theme",precondition:null})||this;return t._originalThemeName=null,t}return f(t,e),t.prototype.run=function(e,t){var n=e.get(o.IStandaloneThemeService);this._originalThemeName?(n.setTheme(this._originalThemeName),this._originalThemeName=null):(this._originalThemeName=n.getTheme().themeName,n.setTheme("hc-black"))},t}(i.EditorAction);r=v([i.editorAction],r)}),define(d[468],h([0,1,166,62,66]),function(e,t,n,i,o){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t,i){this.contextView=new n.ContextView(e)}return e.prototype.dispose=function(){this.contextView.dispose()},e.prototype.setContainer=function(e){this.contextView.setContainer(e)},e.prototype.showContextView=function(e){this.contextView.show(e)},e.prototype.layout=function(){this.contextView.layout()},e.prototype.hideContextView=function(e){this.contextView.hide(e)},e}();r=v([y(1,i.ITelemetryService),y(2,o.IMessageService)],r),t.ContextViewService=r}),define(d[23],h([0,1,42,34,375]),function(e,t,n,i,o){"use strict";function r(e,t,n){return h.registerColor(e,t,n)}function s(e,t){return function(n){var i=c(e,n);return i?i.darken(t):null}}function a(e,t){return function(n){var i=c(e,n);return i?i.lighten(t):null}}function u(e,t){return function(n){var i=c(e,n);return i?i.transparent(t):null}}function l(e,t,n,o){return function(r){var s=c(e,r);if(s){var a=c(t,r);return a?s.isDarkerThan(a)?i.Color.getLighterColor(s,a,n).transparent(o):i.Color.getDarkerColor(s,a,n).transparent(o):s.transparent(n*o)}return null}}function c(e,t){return null===e?null:"string"==typeof e?"#"===e[0]?i.Color.fromHex(e):t.getColor(e):e instanceof i.Color?e:"function"==typeof e?e(t):null}Object.defineProperty(t,"__esModule",{value:!0}),t.Extensions={ColorContribution:"base.contributions.colors"};var d=o.localize(0,null),h=new(function(){function e(){this.colorSchema={type:"object",description:o.localize(1,null),properties:{},additionalProperties:!1},this.colorsById={}}return e.prototype.registerColor=function(e,t,n){var i={id:e,description:n,defaults:t};return this.colorsById[e]=i,this.colorSchema.properties[e]={type:"string",description:n,format:"color",pattern:"^#([0-9A-Fa-f]{3,4}|([0-9A-Fa-f]{2}){3,4})$",patternErrorMessage:d},e},e.prototype.getColors=function(){var e=this;return Object.keys(this.colorsById).map(function(t){return e.colorsById[t]})},e.prototype.resolveDefaultColor=function(e,t){var n=this.colorsById[e];return n&&n.defaults?c(n.defaults[t.type],t):null},e.prototype.getColorSchema=function(){return this.colorSchema},e.prototype.toString=function(){var e=this;return Object.keys(this.colorsById).sort(function(e,t){var n=-1===e.indexOf(".")?0:1,i=-1===t.indexOf(".")?0:1;return n!==i?n-i:e.localeCompare(t)}).map(function(t){return"- `"+t+"`: "+e.colorsById[t].description}).join("\n")},e}());n.Registry.add(t.Extensions.ColorContribution,h),t.registerColor=r,t.foreground=r("foreground",{dark:"#CCCCCC",light:"#6C6C6C",hc:"#FFFFFF"},o.localize(2,null)),t.errorForeground=r("errorForeground",{dark:"#F48771",light:"#A1260D",hc:"#F48771"},o.localize(3,null)),t.descriptionForeground=r("descriptionForeground",{light:u(t.foreground,.7),dark:u(t.foreground,.7),hc:u(t.foreground,.7)},o.localize(4,null)),t.focusBorder=r("focusBorder",{dark:i.Color.fromHex("#0E639C").transparent(.6),light:i.Color.fromHex("#007ACC").transparent(.4),hc:"#F38518"},o.localize(5,null)),t.contrastBorder=r("contrastBorder",{light:null,dark:null,hc:"#6FC3DF"},o.localize(6,null)),t.activeContrastBorder=r("contrastActiveBorder",{light:null,dark:null,hc:t.focusBorder},o.localize(7,null)),t.selectionBackground=r("selection.background",{light:null,dark:null,hc:null},o.localize(8,null)),t.textSeparatorForeground=r("textSeparator.foreground",{light:"#0000002e",dark:"#ffffff2e",hc:i.Color.black},o.localize(9,null)),t.textLinkForeground=r("textLink.foreground",{light:"#4080D0",dark:"#4080D0",hc:"#4080D0"},o.localize(10,null)),t.textLinkActiveForeground=r("textLink.activeForeground",{light:"#4080D0",dark:"#4080D0",hc:"#4080D0"},o.localize(11,null)),t.textPreformatForeground=r("textPreformat.foreground",{light:"#A31515",dark:"#D7BA7D",hc:"#D7BA7D"},o.localize(12,null)),t.textBlockQuoteBackground=r("textBlockQuote.background",{light:"#7f7f7f1a",dark:"#7f7f7f1a",hc:null},o.localize(13,null)),t.textBlockQuoteBorder=r("textBlockQuote.border",{light:"#007acc80",dark:"#007acc80",hc:i.Color.white},o.localize(14,null)),t.textCodeBlockBackground=r("textCodeBlock.background",{light:"#dcdcdc66",dark:"#0a0a0a66",hc:i.Color.black},o.localize(15,null)),t.widgetShadow=r("widget.shadow",{dark:"#000000",light:"#A8A8A8",hc:null},o.localize(16,null)),t.inputBackground=r("input.background",{dark:"#3C3C3C",light:i.Color.white,hc:i.Color.black},o.localize(17,null)),t.inputForeground=r("input.foreground",{dark:t.foreground,light:t.foreground,hc:t.foreground},o.localize(18,null)),t.inputBorder=r("input.border",{dark:null,light:null,hc:t.contrastBorder},o.localize(19,null)),t.inputActiveOptionBorder=r("inputOption.activeBorder",{dark:"#007ACC",light:"#007ACC",hc:t.activeContrastBorder},o.localize(20,null)),t.inputPlaceholderForeground=r("input.placeholderForeground",{dark:null,light:null,hc:null},o.localize(21,null)),t.inputValidationInfoBackground=r("inputValidation.infoBackground",{dark:"#063B49",light:"#D6ECF2",hc:i.Color.black},o.localize(22,null)),t.inputValidationInfoBorder=r("inputValidation.infoBorder",{dark:"#007acc",light:"#007acc",hc:t.contrastBorder},o.localize(23,null)),t.inputValidationWarningBackground=r("inputValidation.warningBackground",{dark:"#352A05",light:"#F6F5D2",hc:i.Color.black},o.localize(24,null)),t.inputValidationWarningBorder=r("inputValidation.warningBorder",{dark:"#B89500",light:"#B89500",hc:t.contrastBorder},o.localize(25,null)),t.inputValidationErrorBackground=r("inputValidation.errorBackground",{dark:"#5A1D1D",light:"#F2DEDE",hc:i.Color.black},o.localize(26,null)),t.inputValidationErrorBorder=r("inputValidation.errorBorder",{dark:"#BE1100",light:"#BE1100",hc:t.contrastBorder},o.localize(27,null)),t.selectBackground=r("dropdown.background",{dark:"#3C3C3C",light:i.Color.white,hc:i.Color.black},o.localize(28,null)),t.selectForeground=r("dropdown.foreground",{dark:"#F0F0F0",light:null,hc:i.Color.white},o.localize(29,null)),t.selectBorder=r("dropdown.border",{dark:t.selectBackground,light:"#CECECE",hc:t.contrastBorder},o.localize(30,null)),t.listFocusBackground=r("list.focusBackground",{dark:"#073655",light:"#DCEBFC",hc:null},o.localize(31,null)),t.listFocusForeground=r("list.focusForeground",{dark:null,light:null,hc:null},o.localize(32,null)),t.listActiveSelectionBackground=r("list.activeSelectionBackground",{dark:"#094771",light:"#3399FF",hc:null},o.localize(33,null)),t.listActiveSelectionForeground=r("list.activeSelectionForeground",{dark:i.Color.white,light:i.Color.white,hc:null},o.localize(34,null)),t.listInactiveSelectionBackground=r("list.inactiveSelectionBackground",{dark:"#3F3F46",light:"#CCCEDB",hc:null},o.localize(35,null)),t.listInactiveSelectionForeground=r("list.inactiveSelectionForeground",{dark:null,light:null,hc:null},o.localize(36,null)),t.listHoverBackground=r("list.hoverBackground",{dark:"#2A2D2E",light:"#F0F0F0",hc:null},o.localize(37,null)),t.listHoverForeground=r("list.hoverForeground",{dark:null,light:null,hc:null},o.localize(38,null)),t.listDropBackground=r("list.dropBackground",{dark:t.listFocusBackground,light:t.listFocusBackground,hc:null},o.localize(39,null)),t.listHighlightForeground=r("list.highlightForeground",{dark:"#0097fb",light:"#007acc",hc:t.focusBorder},o.localize(40,null)),t.pickerGroupForeground=r("pickerGroup.foreground",{dark:i.Color.fromHex("#0097FB").transparent(.6),light:i.Color.fromHex("#007ACC").transparent(.6),hc:i.Color.white},o.localize(41,null)),t.pickerGroupBorder=r("pickerGroup.border",{dark:"#3F3F46",light:"#CCCEDB",hc:i.Color.white},o.localize(42,null)),t.buttonForeground=r("button.foreground",{dark:i.Color.white,light:i.Color.white,hc:i.Color.white},o.localize(43,null)),t.buttonBackground=r("button.background",{dark:"#0E639C",light:"#007ACC",hc:null},o.localize(44,null)),t.buttonHoverBackground=r("button.hoverBackground",{dark:a(t.buttonBackground,.2),light:s(t.buttonBackground,.2),hc:null},o.localize(45,null)),t.badgeBackground=r("badge.background",{dark:"#4D4D4D",light:"#BEBEBE",hc:i.Color.black},o.localize(46,null)),t.badgeForeground=r("badge.foreground",{dark:i.Color.white,light:i.Color.white,hc:i.Color.white},o.localize(47,null)),t.scrollbarShadow=r("scrollbar.shadow",{dark:"#000000",light:"#DDDDDD",hc:null},o.localize(48,null)),t.scrollbarSliderBackground=r("scrollbarSlider.background",{dark:i.Color.fromHex("#797979").transparent(.4),light:i.Color.fromHex("#646464").transparent(.4),hc:u(t.contrastBorder,.6)},o.localize(49,null)),t.scrollbarSliderHoverBackground=r("scrollbarSlider.hoverBackground",{dark:i.Color.fromHex("#646464").transparent(.7),light:i.Color.fromHex("#646464").transparent(.7),hc:u(t.contrastBorder,.8)},o.localize(50,null)),t.scrollbarSliderActiveBackground=r("scrollbarSlider.activeBackground",{dark:i.Color.fromHex("#BFBFBF").transparent(.4),light:i.Color.fromHex("#000000").transparent(.6),hc:t.contrastBorder},o.localize(51,null)),t.progressBarBackground=r("progressBar.background",{dark:i.Color.fromHex("#0E70C0"),light:i.Color.fromHex("#0E70C0"),hc:t.contrastBorder},o.localize(52,null)),t.editorBackground=r("editor.background",{light:"#fffffe",dark:"#1E1E1E",hc:i.Color.black},o.localize(53,null)),t.editorForeground=r("editor.foreground",{light:"#333333",dark:"#BBBBBB",hc:i.Color.white},o.localize(54,null)),t.editorWidgetBackground=r("editorWidget.background",{dark:"#2D2D30",light:"#EFEFF2",hc:"#0C141F"},o.localize(55,null)),t.editorWidgetBorder=r("editorWidget.border",{dark:"#454545",light:"#C8C8C8",hc:t.contrastBorder},o.localize(56,null)),t.editorSelectionBackground=r("editor.selectionBackground",{light:"#ADD6FF",dark:"#264F78",hc:"#f3f518"},o.localize(57,null)),t.editorSelectionForeground=r("editor.selectionForeground",{light:null,dark:null,hc:"#000000"},o.localize(58,null)),t.editorInactiveSelection=r("editor.inactiveSelectionBackground",{light:u(t.editorSelectionBackground,.5),dark:u(t.editorSelectionBackground,.5),hc:u(t.editorSelectionBackground,.5)},o.localize(59,null)),t.editorSelectionHighlight=r("editor.selectionHighlightBackground",{light:l(t.editorSelectionBackground,t.editorBackground,.3,.6),dark:l(t.editorSelectionBackground,t.editorBackground,.3,.6),hc:null},o.localize(60,null)),t.editorFindMatch=r("editor.findMatchBackground",{light:"#A8AC94",dark:"#515C6A",hc:null},o.localize(61,null)),t.editorFindMatchHighlight=r("editor.findMatchHighlightBackground",{light:"#EA5C0055",dark:"#EA5C0055",hc:null},o.localize(62,null)),t.editorFindRangeHighlight=r("editor.findRangeHighlightBackground",{dark:"#3a3d4166",light:"#b4b4b44d",hc:null},o.localize(63,null)),t.editorHoverHighlight=r("editor.hoverHighlightBackground",{light:"#ADD6FF26",dark:"#264f7840",hc:"#ADD6FF26"},o.localize(64,null)),t.editorHoverBackground=r("editorHoverWidget.background",{light:t.editorWidgetBackground,dark:t.editorWidgetBackground,hc:t.editorWidgetBackground},o.localize(65,null)),t.editorHoverBorder=r("editorHoverWidget.border",{light:t.editorWidgetBorder,dark:t.editorWidgetBorder,hc:t.editorWidgetBorder},o.localize(66,null)),t.editorActiveLinkForeground=r("editorLink.activeForeground",{dark:"#4E94CE",light:i.Color.blue,hc:i.Color.cyan},o.localize(67,null)),t.defaultInsertColor=i.Color.fromRGBA(new i.RGBA(155,185,85,51)),t.defaultRemoveColor=i.Color.fromRGBA(new i.RGBA(255,0,0,51)),t.diffInserted=r("diffEditor.insertedTextBackground",{dark:t.defaultInsertColor,light:t.defaultInsertColor,hc:null},o.localize(68,null)),t.diffRemoved=r("diffEditor.removedTextBackground",{dark:t.defaultRemoveColor,light:t.defaultRemoveColor,hc:null},o.localize(69,null)),t.diffInsertedOutline=r("diffEditor.insertedTextBorder",{dark:null,light:null,hc:"#33ff2eff"},o.localize(70,null)),t.diffRemovedOutline=r("diffEditor.removedTextBorder",{dark:null,light:null,hc:"#FF008F"},o.localize(71,null));var p=i.Color.fromHex("#40C8AE").transparent(.5),f=i.Color.fromHex("#40A6FF").transparent(.5),g=i.Color.fromHex("#606060").transparent(.4);t.mergeCurrentHeaderBackground=r("merge.currentHeaderBackground",{dark:p,light:p,hc:null},o.localize(72,null)),t.mergeCurrentContentBackground=r("merge.currentContentBackground",{dark:u(t.mergeCurrentHeaderBackground,.4),light:u(t.mergeCurrentHeaderBackground,.4),hc:u(t.mergeCurrentHeaderBackground,.4)},o.localize(73,null)),t.mergeIncomingHeaderBackground=r("merge.incomingHeaderBackground",{dark:f,light:f,hc:null},o.localize(74,null)),t.mergeIncomingContentBackground=r("merge.incomingContentBackground",{dark:u(t.mergeIncomingHeaderBackground,.4),light:u(t.mergeIncomingHeaderBackground,.4),hc:u(t.mergeIncomingHeaderBackground,.4)},o.localize(75,null)),t.mergeCommonHeaderBackground=r("merge.commonHeaderBackground",{dark:g,light:g,hc:null},o.localize(76,null)),t.mergeCommonContentBackground=r("merge.commonContentBackground",{dark:u(t.mergeCommonHeaderBackground,.4),light:u(t.mergeCommonHeaderBackground,.4),hc:u(t.mergeCommonHeaderBackground,.4)},o.localize(77,null)),t.mergeBorder=r("merge.border",{dark:null,light:null,hc:"#C3DF6F"},o.localize(78,null)),t.overviewRulerCurrentContentForeground=r("editorOverviewRuler.currentContentForeground",{dark:u(t.mergeCurrentHeaderBackground,1),light:u(t.mergeCurrentHeaderBackground,1),hc:t.mergeBorder},o.localize(79,null)),t.overviewRulerIncomingContentForeground=r("editorOverviewRuler.incomingContentForeground",{dark:u(t.mergeIncomingHeaderBackground,1),light:u(t.mergeIncomingHeaderBackground,1),hc:t.mergeBorder},o.localize(80,null)),t.overviewRulerCommonContentForeground=r("editorOverviewRuler.commonContentForeground",{dark:u(t.mergeCommonHeaderBackground,1),light:u(t.mergeCommonHeaderBackground,1),hc:t.mergeBorder},o.localize(81,null)),t.darken=s,t.lighten=a,t.transparent=u,t.oneOf=function(){for(var e=[],t=0;t0&&(o.insertRule(this._unThemedSelector+" {"+e+"}",0),r=!0),t.length>0&&(o.insertRule(".vs"+this._unThemedSelector+" {"+t+"}",0),r=!0),n.length>0&&(o.insertRule(".vs-dark"+this._unThemedSelector+", .hc-black"+this._unThemedSelector+" {"+n+"}",0),r=!0),this._hasContent=r},e.prototype._removeCSS=function(){o.removeCSSRulesContainingSelector(this._unThemedSelector,this._providerArgs.styleSheet)},e.prototype.getCSSTextForModelDecorationClassName=function(e){if(!e)return"";var t=[];return this.collectCSSText(e,["backgroundColor"],t),this.collectCSSText(e,["outline","outlineColor","outlineStyle","outlineWidth"],t),this.collectBorderSettingsCSSText(e,t),t.join("")},e.prototype.getCSSTextForModelDecorationInlineClassName=function(e){if(!e)return"";var t=[];return this.collectCSSText(e,["textDecoration","cursor","color","letterSpacing"],t),t.join("")},e.prototype.getCSSTextForModelDecorationContentClassName=function(e){if(!e)return"";var t=[];if(void 0!==e){if(this.collectBorderSettingsCSSText(e,t),"string"==typeof e.contentIconPath?t.push(n.format(p.contentIconPath,i.default.file(e.contentIconPath).toString().replace(/'/g,"%27"))):e.contentIconPath instanceof i.default&&t.push(n.format(p.contentIconPath,e.contentIconPath.toString(!0).replace(/'/g,"%27"))),"string"==typeof e.contentText){var o=e.contentText.match(/^.*$/m)[0].replace(/['\\]/g,"\\$&");t.push(n.format(p.contentText,o))}this.collectCSSText(e,["textDecoration","color","backgroundColor","margin"],t),this.collectCSSText(e,["width","height"],t)&&t.push("display:inline-block;")}return t.join("")},e.prototype.getCSSTextForModelDecorationGlyphMarginClassName=function(e){if(!e)return"";var t=[];return void 0!==e.gutterIconPath&&("string"==typeof e.gutterIconPath?t.push(n.format(p.gutterIconPath,i.default.file(e.gutterIconPath).toString())):t.push(n.format(p.gutterIconPath,e.gutterIconPath.toString(!0).replace(/'/g,"%27"))),void 0!==e.gutterIconSize&&t.push(n.format(p.gutterIconSize,e.gutterIconSize))),t.join("")},e.prototype.collectBorderSettingsCSSText=function(e,t){return!!this.collectCSSText(e,["border","borderColor","borderRadius","borderSpacing","borderStyle","borderWidth"],t)&&(t.push(n.format("box-sizing: border-box;")),!0)},e.prototype.collectCSSText=function(e,t,i){for(var o=i.length,r=0,s=t;rt)){var v=m.startLineNumber===t?m.startColumn:r.minColumn,_=m.endLineNumber===t?m.endColumn:r.maxColumn;v<_&&l.push(new s.LineDecoration(v,_,"inline-selected-text",!1))}}var b=new a.RenderLineInput(u.useMonospaceOptimizations,r.content,r.mightContainRTL,r.minColumn-1,r.tokens,l,r.tabSize,u.spaceWidth,u.stopRenderingLineAfter,u.renderWhitespace,u.renderControlCharacters,u.fontLigatures);if(this._renderedViewLine&&this._renderedViewLine.input.equals(b))return null;var C=a.renderViewLine(b),S=null;if(p&&u.useMonospaceOptimizations&&!C.containsForeignElements){var E=!0;r.mightContainNonBasicASCII&&(E=o.isBasicASCII(r.content)),E&&r.content.length<1e3&&(S=new y(this._renderedViewLine?this._renderedViewLine.domNode:null,b,C.characterMapping))}return S||(S=w(this._renderedViewLine?this._renderedViewLine.domNode:null,b,C.characterMapping,C.containsRTL,C.containsForeignElements)),this._renderedViewLine=S,'
        '+C.html+"
        "},e.prototype.layoutLine=function(e,t){this._renderedViewLine&&this._renderedViewLine.domNode&&(this._renderedViewLine.domNode.setTop(t),this._renderedViewLine.domNode.setHeight(this._options.lineHeight))},e.prototype.getWidth=function(){return this._renderedViewLine?this._renderedViewLine.getWidth():0},e.prototype.getVisibleRangesForRange=function(e,t,n){return e=Math.min(this._renderedViewLine.input.lineContent.length+1,Math.max(1,e)),t=Math.min(this._renderedViewLine.input.lineContent.length+1,Math.max(1,t)),this._renderedViewLine.getVisibleRangesForRange(e,t,n)},e.prototype.getColumnOfNodeOffset=function(e,t,n){return this._renderedViewLine.getColumnOfNodeOffset(e,t,n)},e}();_.CLASS_NAME="view-line",t.ViewLine=_;var y=function(){function e(e,t,n){this.domNode=e,this.input=t,this._characterMapping=n,this._charWidth=t.spaceWidth,this._charOffset=null}return e._createCharOffset=function(e){for(var t=e.getPartLengths(),n=e.length,i=new Uint32Array(n),o=0,r=0,s=0;si&&t>i)return null;-1!==i&&e>i&&(e=i),-1!==i&&t>i&&(t=i);var o=this._getCharPosition(e),r=this._getCharPosition(t);return[new l.HorizontalRange(o,r-o)]},e.prototype._getCharPosition=function(e){var t=this._getOrCreateCharOffset();return 0===t.length?0:Math.round(this._charWidth*t[e-1])},e.prototype.getColumnOfNodeOffset=function(e,t,n){for(var i=t.textContent.length,o=-1;t;)t=t.previousSibling,o++;return this._characterMapping.partDataToCharOffset(o,i,n)+1},e}(),b=function(){function e(e,t,n,i,o){if(this.domNode=e,this.input=t,this._characterMapping=n,this._isWhitespaceOnly=/^\s*$/.test(t.lineContent),this._containsForeignElements=o,this._cachedWidth=-1,this._pixelOffsetCache=null,!i){this._pixelOffsetCache=new Int32Array(this._characterMapping.length+1);for(var r=0,s=this._characterMapping.length;r<=s;r++)this._pixelOffsetCache[r]=-1}}return e.prototype._getReadingTarget=function(){return this.domNode.domNode.firstChild},e.prototype.getWidth=function(){return-1===this._cachedWidth&&(this._cachedWidth=this._getReadingTarget().offsetWidth),this._cachedWidth},e.prototype.getVisibleRangesForRange=function(e,t,n){e|=0,t|=0;var i=0|this.input.stopRenderingLineAfter;if(-1!==i&&e>i&&t>i)return null;if(-1!==i&&e>i&&(e=i),-1!==i&&t>i&&(t=i),null!==this._pixelOffsetCache){var o=this._readPixelOffset(e,n);if(-1===o)return null;var r=this._readPixelOffset(t,n);return-1===r?null:[new l.HorizontalRange(o,r-o)]}return this._readVisibleRangesForRange(e,t,n)},e.prototype._readVisibleRangesForRange=function(e,t,n){if(e===t){var i=this._readPixelOffset(e,n);return-1===i?null:[new l.HorizontalRange(i,0)]}return this._readRawVisibleRangesForRange(e,t,n)},e.prototype._readPixelOffset=function(e,t){if(0===this._characterMapping.length)return 0;if(null!==this._pixelOffsetCache){var n=this._pixelOffsetCache[e];if(-1!==n)return n;var i=this._actualReadPixelOffset(e,t);return this._pixelOffsetCache[e]=i,i}return this._actualReadPixelOffset(e,t)},e.prototype._actualReadPixelOffset=function(e,t){if(e===this._characterMapping.length&&this._isWhitespaceOnly&&!this._containsForeignElements)return this.getWidth();var n=this._characterMapping.charOffsetToPartData(e-1),i=a.CharacterMapping.getPartIndex(n),o=a.CharacterMapping.getCharIndex(n),r=u.RangeUtil.readHorizontalRanges(this._getReadingTarget(),i,o,i,o,t.clientRectDeltaLeft,t.endNode);return r&&0!==r.length?r[0].left:-1},e.prototype._readRawVisibleRangesForRange=function(e,t,n){if(1===e&&t===this._characterMapping.length)return[new l.HorizontalRange(0,this.getWidth())];var i=this._characterMapping.charOffsetToPartData(e-1),o=a.CharacterMapping.getPartIndex(i),r=a.CharacterMapping.getCharIndex(i),s=this._characterMapping.charOffsetToPartData(t-1),c=a.CharacterMapping.getPartIndex(s),d=a.CharacterMapping.getCharIndex(s);return u.RangeUtil.readHorizontalRanges(this._getReadingTarget(),o,r,c,d,n.clientRectDeltaLeft,n.endNode)},e.prototype.getColumnOfNodeOffset=function(e,t,n){for(var i=t.textContent.length,o=-1;t;)t=t.previousSibling,o++;return this._characterMapping.partDataToCharOffset(o,i,n)+1},e}(),C=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return f(t,e),t.prototype._readVisibleRangesForRange=function(t,n,i){var o=e.prototype._readVisibleRangesForRange.call(this,t,n,i);if(!o||0===o.length||t===n||1===t&&n===this._characterMapping.length)return o;var r=this._readPixelOffset(n-1,i),s=this._readPixelOffset(n,i);if(-1!==r&&-1!==s){var a=r<=s,u=o[o.length-1];a&&u.left=4&&3===e[0]&&7===e[3]},e.isChildOfScrollableElement=function(e){return e.length>=2&&3===e[0]&&5===e[1]},e.isChildOfMinimap=function(e){return e.length>=2&&3===e[0]&&8===e[1]},e.isChildOfContentWidgets=function(e){return e.length>=4&&3===e[0]&&1===e[3]},e.isChildOfOverflowingContentWidgets=function(e){return e.length>=1&&2===e[0]},e.isChildOfOverlayWidgets=function(e){return e.length>=2&&3===e[0]&&4===e[1]},e}(),d=function(){function e(e,t,n){this.model=e.model,this.layoutInfo=e.configuration.editor.layoutInfo,this.viewDomNode=t.viewDomNode,this.lineHeight=e.configuration.editor.lineHeight,this.typicalHalfwidthCharacterWidth=e.configuration.editor.fontInfo.typicalHalfwidthCharacterWidth,this.lastViewCursorsRenderData=n,this._context=e,this._viewHelper=t}return e.prototype.getZoneAtCoord=function(e){var t=this._context.viewLayout.getWhitespaceAtVerticalOffset(e);if(t){var i=t.verticalOffset+t.height/2,o=this._context.model.getLineCount(),r=null,s=void 0,a=null;return t.afterLineNumber!==o&&(a=new n.Position(t.afterLineNumber+1,1)),t.afterLineNumber>0&&(r=new n.Position(t.afterLineNumber,this._context.model.getLineMaxColumn(t.afterLineNumber))),s=null===a?r:null===r?a:er.contentLeft+r.width)){var l=e.getVerticalOffsetForLineNumber(r.position.lineNumber);if(l<=u&&u<=l+r.height)return t.fulfill(o.MouseTargetType.CONTENT_TEXT,r.position)}return null},e._hitTestViewZone=function(e,t){var n=e.getZoneAtCoord(t.mouseVerticalOffset);if(n){var i=t.isInContentArea?o.MouseTargetType.CONTENT_VIEW_ZONE:o.MouseTargetType.GUTTER_VIEW_ZONE;return t.fulfill(i,n.position,null,n)}return null},e._hitTestTextArea=function(e,t){return c.isTextArea(t.targetPath)?t.fulfill(o.MouseTargetType.TEXTAREA):null},e._hitTestMargin=function(e,t){if(t.isInMarginArea){var n=e.getFullLineRangeAtCoord(t.mouseVerticalOffset),i=n.range.getStartPosition(),r=Math.abs(t.pos.x-t.editorPos.x);return r<=e.layoutInfo.glyphMarginWidth?t.fulfill(o.MouseTargetType.GUTTER_GLYPH_MARGIN,i,n.range,n.isAfterLines):(r-=e.layoutInfo.glyphMarginWidth)<=e.layoutInfo.lineNumbersWidth?t.fulfill(o.MouseTargetType.GUTTER_LINE_NUMBERS,i,n.range,n.isAfterLines):(r-=e.layoutInfo.lineNumbersWidth,t.fulfill(o.MouseTargetType.GUTTER_LINE_DECORATIONS,i,n.range,n.isAfterLines))}return null},e._hitTestViewLines=function(t,i,r){if(!c.isChildOfViewLines(i.targetPath))return null;if(t.isAfterLines(i.mouseVerticalOffset)){var s=t.model.getLineCount(),a=t.model.getLineMaxColumn(s);return i.fulfill(o.MouseTargetType.CONTENT_EMPTY,new n.Position(s,a))}if(r)return i.fulfill(o.MouseTargetType.UNKNOWN);var u=e._doHitTest(t,i);return u.position?e.createMouseTargetFromHitTestPosition(t,i,u.position.lineNumber,u.position.column):this._createMouseTarget(t,i.withTarget(u.hitTarget),!0)},e._hitTestMinimap=function(e,t){if(c.isChildOfMinimap(t.targetPath)){var i=e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset),r=e.model.getLineMaxColumn(i);return t.fulfill(o.MouseTargetType.SCROLLBAR,new n.Position(i,r))}return null},e._hitTestScrollbarSlider=function(e,t){if(c.isChildOfScrollableElement(t.targetPath)&&t.target&&1===t.target.nodeType){var i=t.target.className;if(i&&/\b(slider|scrollbar)\b/.test(i)){var r=e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset),s=e.model.getLineMaxColumn(r);return t.fulfill(o.MouseTargetType.SCROLLBAR,new n.Position(r,s))}}return null},e._hitTestScrollbar=function(e,t){if(c.isChildOfScrollableElement(t.targetPath)){var i=e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset),r=e.model.getLineMaxColumn(i);return t.fulfill(o.MouseTargetType.SCROLLBAR,new n.Position(i,r))}return null},e.prototype.getMouseColumn=function(t,n){var i=this._context.configuration.editor.layoutInfo,o=this._context.viewLayout.getScrollLeft()+n.x-t.x-i.contentLeft;return e._getMouseColumn(o,this._context.configuration.editor.fontInfo.typicalHalfwidthCharacterWidth)},e._getMouseColumn=function(e,t){return e<0?1:Math.round(e/t)+1},e.createMouseTargetFromHitTestPosition=function(e,t,r,a){var u=new n.Position(r,a),l=e.getLineWidth(r);if(t.mouseContentHorizontalOffset>l)return s.isEdge&&1===u.column?t.fulfill(o.MouseTargetType.CONTENT_EMPTY,new n.Position(r,e.model.getLineMaxColumn(r))):t.fulfill(o.MouseTargetType.CONTENT_EMPTY,u);var c=e.visibleRangeForPosition2(r,a);if(!c)return t.fulfill(o.MouseTargetType.UNKNOWN,u);var d=c.left;if(t.mouseContentHorizontalOffset===d)return t.fulfill(o.MouseTargetType.CONTENT_TEXT,u);var h;if(a>1){var p=c.left;if(h=!1,h=h||p=t.editorPos.y+e.layoutInfo.height&&(o=t.editorPos.y+e.layoutInfo.height-1);var s=new r.PageCoordinates(t.pos.x,o),a=this._actualDoHitTestWithCaretRangeFromPoint(e,s.toClientCoordinates());return a.position?a:this._actualDoHitTestWithCaretRangeFromPoint(e,t.pos.toClientCoordinates())},e._actualDoHitTestWithCaretRangeFromPoint=function(e,t){var n=document.caretRangeFromPoint(t.clientX,t.clientY);if(!n||!n.startContainer)return{position:null,hitTarget:null};var i,o=n.startContainer;if(o.nodeType===o.TEXT_NODE){var r=(a=(s=o.parentNode)?s.parentNode:null)?a.parentNode:null;if((r&&r.nodeType===r.ELEMENT_NODE?r.className:null)===u.ViewLine.CLASS_NAME)return{position:l=e.getPositionFromDOMInfo(s,n.startOffset),hitTarget:null};i=o.parentNode}else if(o.nodeType===o.ELEMENT_NODE){var s=o.parentNode,a=s?s.parentNode:null;if((a&&a.nodeType===a.ELEMENT_NODE?a.className:null)===u.ViewLine.CLASS_NAME){var l=e.getPositionFromDOMInfo(o,o.textContent.length);return{position:l,hitTarget:null}}i=o}return{position:null,hitTarget:i}},e._doHitTestWithCaretPositionFromPoint=function(e,t){var n=document.caretPositionFromPoint(t.clientX,t.clientY);if(n.offsetNode.nodeType===n.offsetNode.TEXT_NODE){var i=n.offsetNode.parentNode,o=i?i.parentNode:null,r=o?o.parentNode:null;return(r&&r.nodeType===r.ELEMENT_NODE?r.className:null)===u.ViewLine.CLASS_NAME?{position:e.getPositionFromDOMInfo(n.offsetNode.parentNode,n.offset),hitTarget:null}:{position:null,hitTarget:n.offsetNode.parentNode}}return{position:null,hitTarget:n.offsetNode}},e._doHitTestWithMoveToPoint=function(e,t){var n=null,i=null,o=document.body.createTextRange();try{o.moveToPoint(t.clientX,t.clientY)}catch(e){return{position:null,hitTarget:null}}o.collapse(!0);var r=o?o.parentElement():null,s=r?r.parentNode:null,a=s?s.parentNode:null;if((a&&a.nodeType===a.ELEMENT_NODE?a.className:"")===u.ViewLine.CLASS_NAME){var l=o.duplicate();l.moveToElementText(r),l.setEndPoint("EndToStart",o),n=e.getPositionFromDOMInfo(r,l.text.length),l.moveToElementText(e.viewDomNode)}else i=r;return o.moveToElementText(e.viewDomNode),{position:n,hitTarget:i}},e._doHitTest=function(e,t){return document.caretRangeFromPoint?this._doHitTestWithCaretRangeFromPoint(e,t):document.caretPositionFromPoint?this._doHitTestWithCaretPositionFromPoint(e,t.pos.toClientCoordinates()):document.body.createTextRange?this._doHitTestWithMoveToPoint(e,t.pos.toClientCoordinates()):{position:null,hitTarget:null}},e}();t.MouseTargetFactory=p}),define(d[477],h([0,1,3,15,30,6,12,22,87,155,25,18,113,45,111]),function(e,t,n,i,o,r,s,a,u,l,c,d,h,p,g){"use strict";function m(e){return function(t,n){var i=!1;return e&&(i=e.mouseTargetIsWidget(n)),i||n.preventDefault(),n}}Object.defineProperty(t,"__esModule",{value:!0});var v=function(e){function t(n,i,o){var s=e.call(this)||this;s._isFocused=!1,s._context=n,s.viewController=i,s.viewHelper=o,s.mouseTargetFactory=new l.MouseTargetFactory(s._context,o),s._mouseDownOperation=s._register(new _(s._context,s.viewController,s.viewHelper,function(e,t){return s._createMouseTarget(e,t)},function(e){return s._getMouseColumn(e)})),s._asyncFocus=s._register(new d.RunOnceScheduler(function(){return s.viewHelper.focusTextArea()},0)),s.lastMouseLeaveTime=-1;var a=new h.EditorMouseEventFactory(s.viewHelper.viewDomNode);s._register(a.onContextMenu(s.viewHelper.viewDomNode,function(e){return s._onContextMenu(e,!0)})),s._register(a.onMouseMoveThrottled(s.viewHelper.viewDomNode,function(e){return s._onMouseMove(e)},m(s.mouseTargetFactory),t.MOUSE_MOVE_MINIMUM_TIME)),s._register(a.onMouseUp(s.viewHelper.viewDomNode,function(e){return s._onMouseUp(e)})),s._register(a.onMouseLeave(s.viewHelper.viewDomNode,function(e){return s._onMouseLeave(e)})),s._register(a.onMouseDown(s.viewHelper.viewDomNode,function(e){return s._onMouseDown(e)}));var u=function(e){if(s._context.configuration.editor.viewInfo.mouseWheelZoom){var t=new p.StandardMouseWheelEvent(e);if(t.browserEvent.ctrlKey||t.browserEvent.metaKey){var n=g.EditorZoom.getZoomLevel(),i=t.deltaY>0?1:-1;g.EditorZoom.setZoomLevel(n+i),t.preventDefault(),t.stopPropagation()}}};return s._register(r.addDisposableListener(s.viewHelper.viewDomNode,"mousewheel",u,!0)),s._register(r.addDisposableListener(s.viewHelper.viewDomNode,"DOMMouseScroll",u,!0)),s._context.addEventHandler(s),s}return f(t,e),t.prototype.dispose=function(){this._context.removeEventHandler(this),e.prototype.dispose.call(this)},t.prototype.onCursorStateChanged=function(e){return this._mouseDownOperation.onCursorStateChanged(e),!1},t.prototype.onFocusChanged=function(e){return this._isFocused=e.isFocused,!1},t.prototype.onScrollChanged=function(e){return this._mouseDownOperation.onScrollChanged(),!1},t.prototype.getTargetAtClientPoint=function(e,t){var n=new h.ClientCoordinates(e,t).toPageCoordinates(),i=h.createEditorPagePosition(this.viewHelper.viewDomNode);if(n.yi.y+i.height||n.xi.x+i.width)return null;var o=this.viewHelper.getLastViewCursorsRenderData();return this.mouseTargetFactory.createMouseTarget(o,i,n,null)},t.prototype._createMouseTarget=function(e,t){var n=this.viewHelper.getLastViewCursorsRenderData();return this.mouseTargetFactory.createMouseTarget(n,e.editorPos,e.pos,t?e.target:null)},t.prototype._getMouseColumn=function(e){return this.mouseTargetFactory.getMouseColumn(e.editorPos,e.pos)},t.prototype._onContextMenu=function(e,t){this.viewController.emitContextMenu({event:e,target:this._createMouseTarget(e,t)})},t.prototype._onMouseMove=function(e){this._mouseDownOperation.isActive()||e.timestampt.y+t.height){var a=i.getLineNumberAtVerticalOffset(i.getScrollTop()+(e.posy-t.y));return new l.MouseTarget(null,c.MouseTargetType.OUTSIDE_EDITOR,o,new s.Position(a,n.getLineMaxColumn(a)))}var u=i.getLineNumberAtVerticalOffset(i.getScrollTop()+(e.posy-t.y));return e.posxt.x+t.width?new l.MouseTarget(null,c.MouseTargetType.OUTSIDE_EDITOR,o,new s.Position(u,n.getLineMaxColumn(u))):null},t.prototype._findMousePosition=function(e,t){var n=this._getPositionOutsideEditor(e);if(n)return n;var i=this._createMouseTarget(e,t);if(!i.position)return null;if(i.type===c.MouseTargetType.CONTENT_VIEW_ZONE||i.type===c.MouseTargetType.GUTTER_VIEW_ZONE){var o=new s.Position(this._currentSelection.selectionStartLineNumber,this._currentSelection.selectionStartColumn),r=i.detail,a=r.positionBefore,u=r.positionAfter;if(a&&u)return a.isBefore(o)?new l.MouseTarget(i.element,i.type,i.mouseColumn,a,null,i.detail):new l.MouseTarget(i.element,i.type,i.mouseColumn,u,null,i.detail)}return i},t.prototype._dispatchMouse=function(e,t){this._viewController.dispatchMouse({position:e.position,mouseColumn:e.mouseColumn,startedOnLineNumbers:this._mouseState.startedOnLineNumbers,inSelectionMode:t,mouseDownCount:this._mouseState.count,altKey:this._mouseState.altKey,ctrlKey:this._mouseState.ctrlKey,metaKey:this._mouseState.metaKey,shiftKey:this._mouseState.shiftKey})},t}(n.Disposable),y=function(){function e(){this._altKey=!1,this._ctrlKey=!1,this._metaKey=!1,this._shiftKey=!1,this._startedOnLineNumbers=!1,this._lastMouseDownPosition=null,this._lastMouseDownPositionEqualCount=0,this._lastMouseDownCount=0,this._lastSetMouseDownCountTime=0,this.isDragAndDrop=!1}return Object.defineProperty(e.prototype,"altKey",{get:function(){return this._altKey},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"ctrlKey",{get:function(){return this._ctrlKey},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"metaKey",{get:function(){return this._metaKey},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"shiftKey",{get:function(){return this._shiftKey},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"startedOnLineNumbers",{get:function(){return this._startedOnLineNumbers},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"count",{get:function(){return this._lastMouseDownCount},enumerable:!0,configurable:!0}),e.prototype.setModifiers=function(e){this._altKey=e.altKey,this._ctrlKey=e.ctrlKey,this._metaKey=e.metaKey,this._shiftKey=e.shiftKey},e.prototype.setStartedOnLineNumbers=function(e){this._startedOnLineNumbers=e},e.prototype.trySetCount=function(t,n){var i=(new Date).getTime();i-this._lastSetMouseDownCountTime>e.CLEAR_MOUSE_DOWN_COUNT_TIME&&(t=1),this._lastSetMouseDownCountTime=i,t>this._lastMouseDownCount+1&&(t=this._lastMouseDownCount+1),this._lastMouseDownPosition&&this._lastMouseDownPosition.equals(n)?this._lastMouseDownPositionEqualCount++:this._lastMouseDownPositionEqualCount=1,this._lastMouseDownPosition=n,this._lastMouseDownCount=Math.min(t,this._lastMouseDownPositionEqualCount)},e}();y.CLEAR_MOUSE_DOWN_COUNT_TIME=400}),define(d[478],h([0,1,6,75,477,113]),function(e,t,n,i,o,r){"use strict";function s(e,t){var n={translationY:t.translationY,translationX:t.translationX};return e&&(n.translationY+=e.translationY,n.translationX+=e.translationX),n}Object.defineProperty(t,"__esModule",{value:!0});var a=function(e){function t(t,i,o){var r=e.call(this,t,i,o)||this;return r.viewHelper.linesContentDomNode.style.msTouchAction="none",r.viewHelper.linesContentDomNode.style.msContentZooming="none",r._installGestureHandlerTimeout=window.setTimeout(function(){if(r._installGestureHandlerTimeout=-1,window.MSGesture){var e=new MSGesture,t=new MSGesture;e.target=r.viewHelper.linesContentDomNode,t.target=r.viewHelper.linesContentDomNode,r.viewHelper.linesContentDomNode.addEventListener("MSPointerDown",function(n){var i=n.pointerType;i!==(n.MSPOINTER_TYPE_MOUSE||"mouse")?i===(n.MSPOINTER_TYPE_TOUCH||"touch")?(r._lastPointerType="touch",e.addPointer(n.pointerId)):(r._lastPointerType="pen",t.addPointer(n.pointerId)):r._lastPointerType="mouse"}),r._register(n.addDisposableThrottledListener(r.viewHelper.linesContentDomNode,"MSGestureChange",function(e){return r._onGestureChange(e)},s)),r._register(n.addDisposableListener(r.viewHelper.linesContentDomNode,"MSGestureTap",function(e){return r._onCaptureGestureTap(e)},!0))}},100),r._lastPointerType="mouse",r}return f(t,e),t.prototype._onMouseDown=function(t){"mouse"===this._lastPointerType&&e.prototype._onMouseDown.call(this,t)},t.prototype._onCaptureGestureTap=function(e){var t=this,n=new r.EditorMouseEvent(e,this.viewHelper.viewDomNode),i=this._createMouseTarget(n,!1);i.position&&this.viewController.moveTo(i.position),n.browserEvent.fromElement?(n.preventDefault(),this.viewHelper.focusTextArea()):setTimeout(function(){t.viewHelper.focusTextArea()})},t.prototype._onGestureChange=function(e){var t=this._context.viewLayout;t.setScrollPosition({scrollLeft:t.getScrollLeft()-e.translationX,scrollTop:t.getScrollTop()-e.translationY})},t.prototype.dispose=function(){window.clearTimeout(this._installGestureHandlerTimeout),e.prototype.dispose.call(this)},t}(o.MouseHandler),u=function(e){function t(t,i,o){var r=e.call(this,t,i,o)||this;return r.viewHelper.linesContentDomNode.style.touchAction="none",r._installGestureHandlerTimeout=window.setTimeout(function(){if(r._installGestureHandlerTimeout=-1,window.MSGesture){var e=new MSGesture,t=new MSGesture;e.target=r.viewHelper.linesContentDomNode,t.target=r.viewHelper.linesContentDomNode,r.viewHelper.linesContentDomNode.addEventListener("pointerdown",function(n){var i=n.pointerType;"mouse"!==i?"touch"===i?(r._lastPointerType="touch",e.addPointer(n.pointerId)):(r._lastPointerType="pen",t.addPointer(n.pointerId)):r._lastPointerType="mouse"}),r._register(n.addDisposableThrottledListener(r.viewHelper.linesContentDomNode,"MSGestureChange",function(e){return r._onGestureChange(e)},s)),r._register(n.addDisposableListener(r.viewHelper.linesContentDomNode,"MSGestureTap",function(e){return r._onCaptureGestureTap(e)},!0))}},100),r._lastPointerType="mouse",r}return f(t,e),t.prototype._onMouseDown=function(t){"mouse"===this._lastPointerType&&e.prototype._onMouseDown.call(this,t)},t.prototype._onCaptureGestureTap=function(e){var t=this,n=new r.EditorMouseEvent(e,this.viewHelper.viewDomNode),i=this._createMouseTarget(n,!1);i.position&&this.viewController.moveTo(i.position),n.browserEvent.fromElement?(n.preventDefault(),this.viewHelper.focusTextArea()):setTimeout(function(){t.viewHelper.focusTextArea()})},t.prototype._onGestureChange=function(e){var t=this._context.viewLayout;t.setScrollPosition({scrollLeft:t.getScrollLeft()-e.translationX,scrollTop:t.getScrollTop()-e.translationY})},t.prototype.dispose=function(){window.clearTimeout(this._installGestureHandlerTimeout),e.prototype.dispose.call(this)},t}(o.MouseHandler),l=function(e){function t(t,o,s){var a=e.call(this,t,o,s)||this;return a.gesture=new i.Gesture(a.viewHelper.linesContentDomNode),a._register(n.addDisposableListener(a.viewHelper.linesContentDomNode,i.EventType.Tap,function(e){return a.onTap(e)})),a._register(n.addDisposableListener(a.viewHelper.linesContentDomNode,i.EventType.Change,function(e){return a.onChange(e)})),a._register(n.addDisposableListener(a.viewHelper.linesContentDomNode,i.EventType.Contextmenu,function(e){return a._onContextMenu(new r.EditorMouseEvent(e,a.viewHelper.viewDomNode),!1)})),a}return f(t,e),t.prototype.dispose=function(){this.gesture.dispose(),e.prototype.dispose.call(this)},t.prototype.onTap=function(e){e.preventDefault(),this.viewHelper.focusTextArea();var t=this._createMouseTarget(new r.EditorMouseEvent(e,this.viewHelper.viewDomNode),!1);t.position&&this.viewController.moveTo(t.position)},t.prototype.onChange=function(e){var t=this._context.viewLayout;t.setScrollPosition({scrollLeft:t.getScrollLeft()-e.translationX,scrollTop:t.getScrollTop()-e.translationY})},t}(o.MouseHandler),c=function(){function e(e,t,n){window.navigator.msPointerEnabled?this.handler=new a(e,t,n):window.TouchEvent?this.handler=new l(e,t,n):window.navigator.pointerEnabled?this.handler=new u(e,t,n):this.handler=new o.MouseHandler(e,t,n)}return e.prototype.getTargetAtClientPoint=function(e,t){return this.handler.getTargetAtClientPoint(e,t)},e.prototype.dispose=function(){this.handler.dispose()},e}();t.PointerHandler=c}),define(d[479],h([0,1,3,155,11]),function(e,t,n,i,o){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){function t(t){var n=e.call(this)||this;return n._onDidScroll=n._register(new o.Emitter),n.onDidScroll=n._onDidScroll.event,n._onDidGainFocus=n._register(new o.Emitter),n.onDidGainFocus=n._onDidGainFocus.event,n._onDidLoseFocus=n._register(new o.Emitter),n.onDidLoseFocus=n._onDidLoseFocus.event,n._onKeyDown=n._register(new o.Emitter),n.onKeyDown=n._onKeyDown.event,n._onKeyUp=n._register(new o.Emitter),n.onKeyUp=n._onKeyUp.event,n._onContextMenu=n._register(new o.Emitter),n.onContextMenu=n._onContextMenu.event,n._onMouseMove=n._register(new o.Emitter),n.onMouseMove=n._onMouseMove.event,n._onMouseLeave=n._register(new o.Emitter),n.onMouseLeave=n._onMouseLeave.event,n._onMouseUp=n._register(new o.Emitter),n.onMouseUp=n._onMouseUp.event,n._onMouseDown=n._register(new o.Emitter),n.onMouseDown=n._onMouseDown.event,n._onMouseDrag=n._register(new o.Emitter),n.onMouseDrag=n._onMouseDrag.event,n._onMouseDrop=n._register(new o.Emitter),n.onMouseDrop=n._onMouseDrop.event,n._viewModel=t,n}return f(t,e),t.prototype.emitScrollChanged=function(e){this._onDidScroll.fire(e)},t.prototype.emitViewFocusGained=function(){this._onDidGainFocus.fire()},t.prototype.emitViewFocusLost=function(){this._onDidLoseFocus.fire()},t.prototype.emitKeyDown=function(e){this._onKeyDown.fire(e)},t.prototype.emitKeyUp=function(e){this._onKeyUp.fire(e)},t.prototype.emitContextMenu=function(e){this._onContextMenu.fire(this._convertViewToModelMouseEvent(e))},t.prototype.emitMouseMove=function(e){this._onMouseMove.fire(this._convertViewToModelMouseEvent(e))},t.prototype.emitMouseLeave=function(e){this._onMouseLeave.fire(this._convertViewToModelMouseEvent(e))},t.prototype.emitMouseUp=function(e){this._onMouseUp.fire(this._convertViewToModelMouseEvent(e))},t.prototype.emitMouseDown=function(e){this._onMouseDown.fire(this._convertViewToModelMouseEvent(e))},t.prototype.emitMouseDrag=function(e){this._onMouseDrag.fire(this._convertViewToModelMouseEvent(e))},t.prototype.emitMouseDrop=function(e){this._onMouseDrop.fire(this._convertViewToModelMouseEvent(e))},t.prototype._convertViewToModelMouseEvent=function(e){return e.target?{event:e.event,target:this._convertViewToModelMouseTarget(e.target)}:e},t.prototype._convertViewToModelMouseTarget=function(e){return new s(e.element,e.type,e.mouseColumn,e.position?this._convertViewToModelPosition(e.position):null,e.range?this._convertViewToModelRange(e.range):null,e.detail)},t.prototype._convertViewToModelPosition=function(e){return this._viewModel.coordinatesConverter.convertViewPositionToModelPosition(e)},t.prototype._convertViewToModelRange=function(e){return this._viewModel.coordinatesConverter.convertViewRangeToModelRange(e)},t}(n.Disposable);t.ViewOutgoingEvents=r;var s=function(){function e(e,t,n,i,o,r){this.element=e,this.type=t,this.mouseColumn=n,this.position=i,this.range=o,this.detail=r}return e.prototype.toString=function(){return i.MouseTarget.toString(this)},e}()}),define(d[480],h([0,1,18,2,12,127,157,65,80,35,56,379]),function(e,t,n,i,o,r,s,a,u,l,c){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var d=function(){function e(){this._currentVisibleRange=new i.Range(1,1,1,1)}return e.prototype.getCurrentVisibleRange=function(){return this._currentVisibleRange},e.prototype.setCurrentVisibleRange=function(e){this._currentVisibleRange=e},e}(),h=function(e){function t(t,i){var o=e.call(this,t)||this;o._linesContent=i,o._textRangeRestingSpot=document.createElement("div"),o._visibleLines=new r.VisibleLinesCollection(o),o.domNode=o._visibleLines.domNode;var u=o._context.configuration;return o._lineHeight=u.editor.lineHeight,o._typicalHalfwidthCharacterWidth=u.editor.fontInfo.typicalHalfwidthCharacterWidth,o._isViewportWrapping=u.editor.wrappingInfo.isViewportWrapping,o._revealHorizontalRightPadding=u.editor.viewInfo.revealHorizontalRightPadding,o._canUseLayerHinting=u.editor.canUseLayerHinting,o._viewLineOptions=new s.ViewLineOptions(u,o._context.theme.type),l.PartFingerprints.write(o.domNode,7),o.domNode.setClassName("view-lines"),a.Configuration.applyFontInfo(o.domNode,u.editor.fontInfo),o._maxLineWidth=0,o._asyncUpdateLineWidths=new n.RunOnceScheduler(function(){o._updateLineWidths()},200),o._lastRenderedData=new d,o._lastCursorRevealRangeHorizontallyEvent=null,o}return f(t,e),t.prototype.dispose=function(){this._asyncUpdateLineWidths.dispose(),e.prototype.dispose.call(this)},t.prototype.getDomNode=function(){return this.domNode},t.prototype.createVisibleLine=function(){return new s.ViewLine(this._viewLineOptions)},t.prototype.onConfigurationChanged=function(e){this._visibleLines.onConfigurationChanged(e),e.wrappingInfo&&(this._maxLineWidth=0);var t=this._context.configuration;return e.lineHeight&&(this._lineHeight=t.editor.lineHeight),e.fontInfo&&(this._typicalHalfwidthCharacterWidth=t.editor.fontInfo.typicalHalfwidthCharacterWidth),e.wrappingInfo&&(this._isViewportWrapping=t.editor.wrappingInfo.isViewportWrapping),e.viewInfo&&(this._revealHorizontalRightPadding=t.editor.viewInfo.revealHorizontalRightPadding),e.canUseLayerHinting&&(this._canUseLayerHinting=t.editor.canUseLayerHinting),e.fontInfo&&a.Configuration.applyFontInfo(this.domNode,t.editor.fontInfo),this._onOptionsMaybeChanged(),e.layoutInfo&&(this._maxLineWidth=0),!0},t.prototype._onOptionsMaybeChanged=function(){var e=this._context.configuration,t=new s.ViewLineOptions(e,this._context.theme.type);if(!this._viewLineOptions.equals(t)){this._viewLineOptions=t;for(var n=this._visibleLines.getStartLineNumber(),i=this._visibleLines.getEndLineNumber(),o=n;o<=i;o++)this._visibleLines.getVisibleLine(o).onOptionsChanged(this._viewLineOptions);return!0}return!1},t.prototype.onCursorStateChanged=function(e){for(var t=this._visibleLines.getStartLineNumber(),n=this._visibleLines.getEndLineNumber(),i=!1,o=t;o<=n;o++)i=this._visibleLines.getVisibleLine(o).onSelectionChanged()||i;return i},t.prototype.onDecorationsChanged=function(e){for(var t=this._visibleLines.getStartLineNumber(),n=this._visibleLines.getEndLineNumber(),i=t;i<=n;i++)this._visibleLines.getVisibleLine(i).onDecorationsChanged();return!0},t.prototype.onFlushed=function(e){var t=this._visibleLines.onFlushed(e);return this._maxLineWidth=0,t},t.prototype.onLinesChanged=function(e){return this._visibleLines.onLinesChanged(e)},t.prototype.onLinesDeleted=function(e){return this._visibleLines.onLinesDeleted(e)},t.prototype.onLinesInserted=function(e){return this._visibleLines.onLinesInserted(e)},t.prototype.onRevealRangeRequest=function(e){var t=this._computeScrollTopToRevealRange(this._context.viewLayout.getCurrentViewport(),e.range,e.verticalType);return e.revealHorizontal&&(this._lastCursorRevealRangeHorizontallyEvent=e),this._context.viewLayout.setScrollPosition({scrollTop:t}),!0},t.prototype.onScrollChanged=function(e){return this.domNode.setWidth(e.scrollWidth),this._visibleLines.onScrollChanged(e)||!0},t.prototype.onTokensChanged=function(e){return this._visibleLines.onTokensChanged(e)},t.prototype.onZonesChanged=function(e){return this._visibleLines.onZonesChanged(e)},t.prototype.onThemeChanged=function(e){return this._onOptionsMaybeChanged()},t.prototype.getPositionFromDOMInfo=function(e,t){var n=this._getViewLineDomNode(e);if(null===n)return null;var i=this._getLineNumberFor(n);if(-1===i)return null;if(i<1||i>this._context.model.getLineCount())return null;if(1===this._context.model.getLineMaxColumn(i))return new o.Position(i,1);var r=this._visibleLines.getStartLineNumber(),s=this._visibleLines.getEndLineNumber();if(is)return null;var a=this._visibleLines.getVisibleLine(i).getColumnOfNodeOffset(i,e,t),u=this._context.model.getLineMinColumn(i);return an?-1:this._visibleLines.getVisibleLine(e).getWidth()},t.prototype.linesVisibleRangesForRange=function(e,t){if(this.shouldRender())return null;var n=e.endLineNumber;if(!(e=i.Range.intersectRanges(e,this._lastRenderedData.getCurrentVisibleRange())))return null;var r,a=[],l=new s.DomReadingContext(this.domNode.domNode,this._textRangeRestingSpot);t&&(r=this._context.model.coordinatesConverter.convertViewPositionToModelPosition(new o.Position(e.startLineNumber,1)).lineNumber);for(var c=this._visibleLines.getStartLineNumber(),d=this._visibleLines.getEndLineNumber(),h=e.startLineNumber;h<=e.endLineNumber;h++)if(!(hd)){var p=h===e.startLineNumber?e.startColumn:1,f=h===e.endLineNumber?e.endColumn:this._context.model.getLineMaxColumn(h),g=this._visibleLines.getVisibleLine(h).getVisibleRangesForRange(p,f,l);g&&0!==g.length&&(t&&hr)){var u=a===e.startLineNumber?e.startColumn:1,l=a===e.endLineNumber?e.endColumn:this._context.model.getLineMaxColumn(a),c=this._visibleLines.getVisibleLine(a).getVisibleRangesForRange(u,l,n);c&&0!==c.length&&(t=t.concat(c))}return 0===t.length?null:t},t.prototype._updateLineWidths=function(){for(var e=this._visibleLines.getStartLineNumber(),t=this._visibleLines.getEndLineNumber(),n=1,i=e;i<=t;i++){var o=this._visibleLines.getVisibleLine(i).getWidth();n=Math.max(n,o)}1===e&&t===this._context.model.getLineCount()&&(this._maxLineWidth=0),this._ensureMaxLineWidth(n)},t.prototype.prepareRender=function(){throw new Error("Not supported")},t.prototype.render=function(){throw new Error("Not supported")},t.prototype.renderText=function(e){if(this._visibleLines.renderLines(e),this._lastRenderedData.setCurrentVisibleRange(e.visibleRange),this.domNode.setWidth(this._context.viewLayout.getScrollWidth()),this.domNode.setHeight(Math.min(this._context.viewLayout.getScrollHeight(),1e6)),this._lastCursorRevealRangeHorizontallyEvent){var t=this._lastCursorRevealRangeHorizontallyEvent.range;this._lastCursorRevealRangeHorizontallyEvent=null,this.onDidRender();var n=this._computeScrollLeftToRevealRange(t);this._isViewportWrapping||this._ensureMaxLineWidth(n.maxHorizontalOffset),this._context.viewLayout.setScrollPosition({scrollLeft:n.scrollLeft})}this._linesContent.setLayerHinting(this._canUseLayerHinting);var i=this._context.viewLayout.getScrollTop()-e.bigNumbersDelta;this._linesContent.setTop(-i),this._linesContent.setLeft(-this._context.viewLayout.getScrollLeft()),this._asyncUpdateLineWidths.schedule()},t.prototype._ensureMaxLineWidth=function(e){var t=Math.ceil(e);this._maxLineWidthu&&(u=c.left+c.width)}return n=u,a=Math.max(0,a-t.HORIZONTAL_EXTRA_PX),u+=this._revealHorizontalRightPadding,{scrollLeft:this._computeMinimumScrolling(o,r,a,u),maxHorizontalOffset:n}},t.prototype._computeMinimumScrolling=function(e,t,n,i,o,r){o=!!o,r=!!r;var s=(t|=0)-(e|=0);return(i|=0)-(n|=0)t?Math.max(0,i-s):e:n},t}(l.ViewPart);h.HORIZONTAL_EXTRA_PX=30,t.ViewLines=h}),define(d[481],h([0,1,35,214,6,136,26,127,2,56,97,15,14,23,325]),function(e,t,n,i,o,r,s,a,u,l,c,d,h,p){"use strict";function g(e){return 2===e?4:4===e?6:1===e?2:3}function m(e){return 2===e?2:4===e?2:1}Object.defineProperty(t,"__esModule",{value:!0});var v;!function(e){e[e.None=0]="None",e[e.Small=1]="Small",e[e.Large=2]="Large",e[e.SmallBlocks=3]="SmallBlocks",e[e.LargeBlocks=4]="LargeBlocks"}(v||(v={}));var _=140,y=function(){function e(e){var t=e.editor.pixelRatio,n=e.editor.layoutInfo,i=e.editor.viewInfo,o=e.editor.fontInfo;this.renderMinimap=0|n.renderMinimap,this.scrollBeyondLastLine=i.scrollBeyondLastLine,this.showSlider=i.minimap.showSlider,this.pixelRatio=t,this.typicalHalfwidthCharacterWidth=o.typicalHalfwidthCharacterWidth,this.lineHeight=e.editor.lineHeight,this.minimapWidth=n.minimapWidth,this.minimapHeight=n.height,this.canvasInnerWidth=Math.max(1,Math.floor(t*this.minimapWidth)),this.canvasInnerHeight=Math.max(1,Math.floor(t*this.minimapHeight)),this.canvasOuterWidth=this.canvasInnerWidth/t,this.canvasOuterHeight=this.canvasInnerHeight/t}return e.prototype.equals=function(e){return this.renderMinimap===e.renderMinimap&&this.scrollBeyondLastLine===e.scrollBeyondLastLine&&this.showSlider===e.showSlider&&this.pixelRatio===e.pixelRatio&&this.typicalHalfwidthCharacterWidth===e.typicalHalfwidthCharacterWidth&&this.lineHeight===e.lineHeight&&this.minimapWidth===e.minimapWidth&&this.minimapHeight===e.minimapHeight&&this.canvasInnerWidth===e.canvasInnerWidth&&this.canvasInnerHeight===e.canvasInnerHeight&&this.canvasOuterWidth===e.canvasOuterWidth&&this.canvasOuterHeight===e.canvasOuterHeight},e}(),b=function(){function e(e,t,n,i,o,r,s){this.scrollTop=e,this.scrollHeight=t,this._computedSliderRatio=n,this.sliderTop=i,this.sliderHeight=o,this.startLineNumber=r,this.endLineNumber=s}return e.prototype.getDesiredScrollTopFromDelta=function(e){var t=this.sliderTop+e;return Math.round(t/this._computedSliderRatio)},e.create=function(t,n,i,o,r,s,a,u,l){var c,d=t.pixelRatio,h=g(t.renderMinimap),p=Math.floor(t.canvasInnerHeight/h),f=t.lineHeight;if(r&&i!==s){var m=i-n+1;c=Math.floor(m*h/d)}else{var v=o/f;c=Math.floor(v*h/d)}var _;_=t.scrollBeyondLastLine?(s-1)*h/d:Math.max(0,s*h/d-c);var y=(_=Math.min(t.minimapHeight-c,_))/(u-o),b=a*y;if(p>=s)return new e(a,u,y,b,c,C=1,w=s);var C=Math.max(1,Math.floor(n-b*d/h));l&&l.scrollHeight===u&&(l.scrollTop>a&&(C=Math.min(C,l.startLineNumber)),l.scrollTop_)a._context.viewLayout.setScrollPosition({scrollTop:i.scrollTop});else{var r=e.posy-t;a._context.viewLayout.setScrollPosition({scrollTop:i.getDesiredScrollTopFromDelta(r)})}},function(){a._slider.toggleClassName("active",!1)})}}),a}return f(t,e),t.prototype.dispose=function(){this._mouseDownListener.dispose(),this._sliderMouseMoveMonitor.dispose(),this._sliderMouseDownListener.dispose(),e.prototype.dispose.call(this)},t.prototype._getMinimapDomNodeClassName=function(){return"always"===this._options.showSlider?"minimap slider-always":"minimap slider-mouseover"},t.prototype.getDomNode=function(){return this._domNode},t.prototype._applyLayout=function(){this._domNode.setWidth(this._options.minimapWidth),this._domNode.setHeight(this._options.minimapHeight),this._shadow.setHeight(this._options.minimapHeight),this._canvas.setWidth(this._options.canvasOuterWidth),this._canvas.setHeight(this._options.canvasOuterHeight),this._canvas.domNode.width=this._options.canvasInnerWidth,this._canvas.domNode.height=this._options.canvasInnerHeight,this._slider.setWidth(this._options.minimapWidth)},t.prototype._getBuffer=function(){return this._buffers||(this._buffers=new S(this._canvas.domNode.getContext("2d"),this._options.canvasInnerWidth,this._options.canvasInnerHeight,this._tokensColorTracker.getColor(2))),this._buffers.getBuffer()},t.prototype._onOptionsMaybeChanged=function(){var e=new y(this._context.configuration);return!this._options.equals(e)&&(this._options=e,this._lastRenderData=null,this._buffers=null,this._applyLayout(),this._domNode.setClassName(this._getMinimapDomNodeClassName()),!0)},t.prototype.onConfigurationChanged=function(e){return this._onOptionsMaybeChanged()},t.prototype.onFlushed=function(e){return this._lastRenderData=null,!0},t.prototype.onLinesChanged=function(e){return!!this._lastRenderData&&this._lastRenderData.onLinesChanged(e)},t.prototype.onLinesDeleted=function(e){return this._lastRenderData&&this._lastRenderData.onLinesDeleted(e),!0},t.prototype.onLinesInserted=function(e){return this._lastRenderData&&this._lastRenderData.onLinesInserted(e),!0},t.prototype.onScrollChanged=function(e){return!0},t.prototype.onTokensChanged=function(e){return!!this._lastRenderData&&this._lastRenderData.onTokensChanged(e)},t.prototype.onTokensColorsChanged=function(e){return this._lastRenderData=null,this._buffers=null,!0},t.prototype.onZonesChanged=function(e){return this._lastRenderData=null,!0},t.prototype.prepareRender=function(e){},t.prototype.render=function(e){if(0!==this._options.renderMinimap){e.scrollLeft+e.viewportWidth>=e.scrollWidth?this._shadow.setClassName("minimap-shadow-hidden"):this._shadow.setClassName("minimap-shadow-visible");var t=b.create(this._options,e.visibleRange.startLineNumber,e.visibleRange.endLineNumber,e.viewportHeight,e.viewportData.whitespaceViewportData.length>0,this._context.model.getLineCount(),e.scrollTop,e.scrollHeight,this._lastRenderData?this._lastRenderData.renderedLayout:null);this._slider.setTop(t.sliderTop),this._slider.setHeight(t.sliderHeight);var n=e.scrollLeft/this._options.typicalHalfwidthCharacterWidth,i=Math.min(this._options.minimapWidth,Math.round(n*m(this._options.renderMinimap)/this._options.pixelRatio));this._sliderHorizontal.setLeft(i),this._sliderHorizontal.setWidth(this._options.minimapWidth-i),this._sliderHorizontal.setTop(0),this._sliderHorizontal.setHeight(t.sliderHeight),this._lastRenderData=this.renderLines(t)}else this._shadow.setClassName("minimap-shadow-hidden")},t.prototype.renderLines=function(e){var n=this._options.renderMinimap,i=e.startLineNumber,o=e.endLineNumber,r=g(n);if(this._lastRenderData&&this._lastRenderData.linesEquals(e)){var s=this._lastRenderData._get();return new w(e,s.imageData,s.lines)}for(var a=this._getBuffer(),u=t._renderUntouchedLines(a,i,o,r,this._lastRenderData),l=this._context.model.getMinimapLinesRenderingData(i,o,u),c=l.tabSize,d=this._tokensColorTracker.getColor(2),h=this._tokensColorTracker.backgroundIsLight(),p=0,f=[],m=0,v=o-i+1;m=0&&wh)return;var S=l.charCodeAt(f);if(9===S){var E=a-(f+g)%a;g+=E-1,p+=E*d}else 32===S?p+=d:(2===i?r.x2RenderChar(e,p,s,S,w,t,n):1===i?r.x1RenderChar(e,p,s,S,w,t,n):4===i?r.x2BlockRenderChar(e,p,s,w,t,n):r.x1BlockRenderChar(e,p,s,w,t,n),p+=d)}},t}(n.ViewPart);t.Minimap=E,h.registerThemingParticipant(function(e,t){var n=e.getColor(p.scrollbarSliderBackground);if(n){var i=n.transparent(.5);t.addRule(".monaco-editor .minimap-slider, .monaco-editor .minimap-slider .minimap-slider-horizontal { background: "+i+"; }")}var o=e.getColor(p.scrollbarSliderHoverBackground);if(o){var r=o.transparent(.5);t.addRule(".monaco-editor .minimap-slider:hover, .monaco-editor .minimap-slider:hover .minimap-slider-horizontal { background: "+r+"; }")}var s=e.getColor(p.scrollbarSliderActiveBackground);if(s){var a=s.transparent(.5);t.addRule(".monaco-editor .minimap-slider.active, .monaco-editor .minimap-slider.active .minimap-slider-horizontal { background: "+a+"; }")}var u=e.getColor(p.scrollbarShadow);u&&t.addRule(".monaco-editor .minimap-shadow-visible { box-shadow: "+u+" -6px 0 6px -6px inset; }")})}),define(d[482],h([0,1,26,35,14,23,317]),function(e,t,n,i,o,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var s=function(e){function t(t){var i=e.call(this,t)||this;return i._scrollTop=0,i._width=0,i._updateWidth(),i._shouldShow=!1,i._useShadows=i._context.configuration.editor.viewInfo.scrollbar.useShadows,i._domNode=n.createFastDomNode(document.createElement("div")),i._domNode.setAttribute("role","presentation"),i._domNode.setAttribute("aria-hidden","true"),i}return f(t,e),t.prototype.dispose=function(){e.prototype.dispose.call(this)},t.prototype._updateShouldShow=function(){var e=this._useShadows&&this._scrollTop>0;return this._shouldShow!==e&&(this._shouldShow=e,!0)},t.prototype.getDomNode=function(){return this._domNode},t.prototype._updateWidth=function(){var e=this._context.configuration.editor.layoutInfo,t=e.width-e.minimapWidth;return this._width!==t&&(this._width=t,!0)},t.prototype.onConfigurationChanged=function(e){var t=!1;return e.viewInfo&&(this._useShadows=this._context.configuration.editor.viewInfo.scrollbar.useShadows),e.layoutInfo&&(t=this._updateWidth()),this._updateShouldShow()||t},t.prototype.onScrollChanged=function(e){return this._scrollTop=e.scrollTop,this._updateShouldShow()},t.prototype.prepareRender=function(e){},t.prototype.render=function(e){this._domNode.setWidth(this._width),this._domNode.setClassName(this._shouldShow?"scroll-decoration":"")},t}(i.ViewPart);t.ScrollDecorationViewPart=s,o.registerThemingParticipant(function(e,t){var n=e.getColor(r.scrollbarShadow);n&&t.addRule(".monaco-editor .scroll-decoration { box-shadow: "+n+" 0 6px 6px -6px inset; }")})}),define(d[483],h([0,1,14,23,60,30,315]),function(e,t,n,i,o,r){"use strict";function s(e){return new l(e)}function a(e){return new c(e.lineNumber,e.ranges.map(s))}Object.defineProperty(t,"__esModule",{value:!0});var u;!function(e){e[e.EXTERN=0]="EXTERN",e[e.INTERN=1]="INTERN",e[e.FLAT=2]="FLAT"}(u||(u={}));var l=function(){return function(e){this.left=e.left,this.width=e.width,this.startStyle=null,this.endStyle=null}}(),c=function(){return function(e,t){this.lineNumber=e,this.ranges=t}}(),d=r.isEdgeOrIE,h=function(e){function t(t){var n=e.call(this)||this;return n._previousFrameVisibleRangesWithStyle=[],n._context=t,n._lineHeight=n._context.configuration.editor.lineHeight,n._roundedSelection=n._context.configuration.editor.viewInfo.roundedSelection,n._selections=[],n._renderResult=null,n._context.addEventHandler(n),n}return f(t,e),t.prototype.dispose=function(){this._context.removeEventHandler(this),this._context=null,this._selections=null,this._renderResult=null,e.prototype.dispose.call(this)},t.prototype.onConfigurationChanged=function(e){return e.lineHeight&&(this._lineHeight=this._context.configuration.editor.lineHeight),e.viewInfo&&(this._roundedSelection=this._context.configuration.editor.viewInfo.roundedSelection),!0},t.prototype.onCursorStateChanged=function(e){return this._selections=e.selections.slice(0),!0},t.prototype.onDecorationsChanged=function(e){return!0},t.prototype.onFlushed=function(e){return!0},t.prototype.onLinesChanged=function(e){return!0},t.prototype.onLinesDeleted=function(e){return!0},t.prototype.onLinesInserted=function(e){return!0},t.prototype.onScrollChanged=function(e){return e.scrollTopChanged},t.prototype.onZonesChanged=function(e){return!0},t.prototype._visibleRangesHaveGaps=function(e){for(var t=0,n=e.length;t1)return!0;return!1},t.prototype._enrichVisibleRangesWithStyle=function(e,t){var n=null,i=null;if(t&&t.length>0&&e.length>0){for(var o=e[0].lineNumber,r=0;!n&&r=0;r--)t[r].lineNumber===s&&(i=t[r].ranges[0]);n&&!n.startStyle&&(n=null),i&&!i.startStyle&&(i=null)}for(var r=0,a=e.length;r0){var p=e[r-1].ranges[0].left,f=e[r-1].ranges[0].left+e[r-1].ranges[0].width;l===p?d.top=2:l>p&&(d.top=1),c===f?h.top=2:p
        '},t.prototype._actualRenderOneSelection=function(e,n,i,o){for(var r=o.length>0&&o[0].ranges[0].startStyle,s=this._lineHeight.toString(),a=(this._lineHeight-1).toString(),u=o.length>0?o[0].lineNumber:0,l=o.length>0?o[o.length-1].lineNumber:0,c=0,d=o.length;c1,l)}}this._previousFrameVisibleRangesWithStyle=r,this._renderResult=t},t.prototype.render=function(e,t){if(!this._renderResult)return"";var n=t-e;if(n<0||n>=this._renderResult.length)throw new Error("Unexpected render request");return this._renderResult[n]},t}(o.DynamicViewOverlay);h.SELECTION_CLASS_NAME="selected-text",h.SELECTION_TOP_LEFT="top-left-radius",h.SELECTION_BOTTOM_LEFT="bottom-left-radius",h.SELECTION_TOP_RIGHT="top-right-radius",h.SELECTION_BOTTOM_RIGHT="bottom-right-radius",h.EDITOR_BACKGROUND_CLASS_NAME="monaco-editor-background",h.ROUNDED_PIECE_WIDTH=10,t.SelectionsOverlay=h,n.registerThemingParticipant(function(e,t){var n=e.getColor(i.editorSelectionBackground);n&&t.addRule(".monaco-editor .focused .selected-text { background-color: "+n+"; }");var o=e.getColor(i.editorInactiveSelection);o&&t.addRule(".monaco-editor .selected-text { background-color: "+o+"; }");var r=e.getColor(i.editorSelectionForeground);r&&t.addRule(".monaco-editor .view-line span.inline-selected-text { color: "+r+"; }")})}),define(d[36],h([0,1,330,23,14,34]),function(e,t,n,i,o,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.editorLineHighlight=i.registerColor("editor.lineHighlightBackground",{dark:null,light:null,hc:null},n.localize(0,null)),t.editorLineHighlightBorder=i.registerColor("editor.lineHighlightBorder",{dark:"#282828",light:"#eeeeee",hc:"#f38518"},n.localize(1,null)),t.editorRangeHighlight=i.registerColor("editor.rangeHighlightBackground",{dark:"#ffffff0b",light:"#fdff0033",hc:null},n.localize(2,null)),t.editorCursor=i.registerColor("editorCursor.foreground",{dark:"#AEAFAD",light:r.Color.black,hc:r.Color.white},n.localize(3,null)),t.editorWhitespaces=i.registerColor("editorWhitespace.foreground",{dark:"#e3e4e229",light:"#33333333",hc:"#e3e4e229"},n.localize(4,null)),t.editorIndentGuides=i.registerColor("editorIndentGuide.background",{dark:t.editorWhitespaces,light:t.editorWhitespaces,hc:t.editorWhitespaces},n.localize(5,null)),t.editorLineNumbers=i.registerColor("editorLineNumber.foreground",{dark:"#5A5A5A",light:"#2B91AF",hc:r.Color.white},n.localize(6,null)),t.editorRuler=i.registerColor("editorRuler.foreground",{dark:"#5A5A5A",light:r.Color.lightgrey,hc:r.Color.white},n.localize(7,null)),t.editorCodeLensForeground=i.registerColor("editorCodeLens.foreground",{dark:"#999999",light:"#999999",hc:"#999999"},n.localize(8,null)),t.editorBracketMatchBackground=i.registerColor("editorBracketMatch.background",{dark:"#0064001a",light:"#0064001a",hc:"#0064001a"},n.localize(9,null)),t.editorBracketMatchBorder=i.registerColor("editorBracketMatch.border",{dark:"#888",light:"#B9B9B9",hc:"#fff"},n.localize(10,null)),t.editorOverviewRulerBorder=i.registerColor("editorOverviewRuler.border",{dark:"#7f7f7f4d",light:"#7f7f7f4d",hc:"#7f7f7f4d"},n.localize(11,null)),t.editorGutter=i.registerColor("editorGutter.background",{dark:i.editorBackground,light:i.editorBackground,hc:i.editorBackground},n.localize(12,null)),t.editorErrorForeground=i.registerColor("editorError.foreground",{dark:"#FF0000",light:"#FF0000",hc:null},n.localize(13,null)),t.editorErrorBorder=i.registerColor("editorError.border",{dark:null,light:null,hc:r.Color.fromHex("#E47777").transparent(.8)},n.localize(14,null)),t.editorWarningForeground=i.registerColor("editorWarning.foreground",{dark:"#008000",light:"#008000",hc:null},n.localize(15,null)),t.editorWarningBorder=i.registerColor("editorWarning.border",{dark:null,light:null,hc:r.Color.fromHex("#71B771").transparent(.8)},n.localize(16,null)),o.registerThemingParticipant(function(e,n){var o=e.getColor(i.editorBackground);o&&n.addRule(".monaco-editor, .monaco-editor-background, .monaco-editor .inputarea.ime-input { background-color: "+o+"; }");var r=e.getColor(i.editorForeground);r&&n.addRule(".monaco-editor, .monaco-editor .inputarea.ime-input { color: "+r+"; }");var s=e.getColor(t.editorGutter);s&&n.addRule(".monaco-editor .margin { background-color: "+s+"; }");var a=e.getColor(t.editorRangeHighlight);a&&n.addRule(".monaco-editor .rangeHighlight { background-color: "+a+"; }");var u=e.getColor(i.activeContrastBorder);u&&n.addRule(".monaco-editor .rangeHighlight { border: 1px dotted "+u+"; }; }");var l=e.getColor(t.editorWhitespaces);l&&n.addRule(".vs-whitespace { color: "+l+" !important; }")})}),define(d[485],h([0,1,60,14,36,385]),function(e,t,n,i,o){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){function t(t){var n=e.call(this)||this;return n._context=t,n._lineHeight=n._context.configuration.editor.lineHeight,n._readOnly=n._context.configuration.editor.readOnly,n._renderLineHighlight=n._context.configuration.editor.viewInfo.renderLineHighlight,n._selectionIsEmpty=!0,n._primaryCursorIsInEditableRange=!0,n._primaryCursorLineNumber=1,n._scrollWidth=0,n._contentWidth=n._context.configuration.editor.layoutInfo.contentWidth,n._context.addEventHandler(n),n}return f(t,e),t.prototype.dispose=function(){this._context.removeEventHandler(this),this._context=null,e.prototype.dispose.call(this)},t.prototype.onConfigurationChanged=function(e){return e.lineHeight&&(this._lineHeight=this._context.configuration.editor.lineHeight),e.readOnly&&(this._readOnly=this._context.configuration.editor.readOnly),e.viewInfo&&(this._renderLineHighlight=this._context.configuration.editor.viewInfo.renderLineHighlight),e.layoutInfo&&(this._contentWidth=this._context.configuration.editor.layoutInfo.contentWidth),!0},t.prototype.onCursorStateChanged=function(e){var t=!1;this._primaryCursorIsInEditableRange!==e.isInEditableRange&&(this._primaryCursorIsInEditableRange=e.isInEditableRange,t=!0);var n=e.selections[0].positionLineNumber;this._primaryCursorLineNumber!==n&&(this._primaryCursorLineNumber=n,t=!0);var i=e.selections[0].isEmpty();return this._selectionIsEmpty!==i?(this._selectionIsEmpty=i,t=!0,!0):t},t.prototype.onFlushed=function(e){return!0},t.prototype.onLinesDeleted=function(e){return!0},t.prototype.onLinesInserted=function(e){return!0},t.prototype.onScrollChanged=function(e){return e.scrollWidthChanged},t.prototype.onZonesChanged=function(e){return!0},t.prototype.prepareRender=function(e){this._scrollWidth=e.scrollWidth},t.prototype.render=function(e,t){return t===this._primaryCursorLineNumber&&this._shouldShowCurrentLine()?'
        ':""},t.prototype._shouldShowCurrentLine=function(){return("line"===this._renderLineHighlight||"all"===this._renderLineHighlight)&&this._selectionIsEmpty&&this._primaryCursorIsInEditableRange},t}(n.DynamicViewOverlay);t.CurrentLineHighlightOverlay=r,i.registerThemingParticipant(function(e,t){var n=e.getColor(o.editorLineHighlight);if(n&&t.addRule(".monaco-editor .view-overlays .current-line { background-color: "+n+"; }"),!n||n.isTransparent()||e.defines(o.editorLineHighlightBorder)){var i=e.getColor(o.editorLineHighlightBorder);i&&(t.addRule(".monaco-editor .view-overlays .current-line { border: 2px solid "+i+"; }"),"hc"===e.type&&t.addRule(".monaco-editor .view-overlays .current-line { border-width: 1px; }"))}})}),define(d[486],h([0,1,60,14,36,384]),function(e,t,n,i,o){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){function t(t){var n=e.call(this)||this;return n._context=t,n._lineHeight=n._context.configuration.editor.lineHeight,n._renderLineHighlight=n._context.configuration.editor.viewInfo.renderLineHighlight,n._primaryCursorIsInEditableRange=!0,n._primaryCursorLineNumber=1,n._contentLeft=n._context.configuration.editor.layoutInfo.contentLeft,n._context.addEventHandler(n),n}return f(t,e),t.prototype.dispose=function(){this._context.removeEventHandler(this),this._context=null,e.prototype.dispose.call(this)},t.prototype.onConfigurationChanged=function(e){return e.lineHeight&&(this._lineHeight=this._context.configuration.editor.lineHeight),e.viewInfo&&(this._renderLineHighlight=this._context.configuration.editor.viewInfo.renderLineHighlight),e.layoutInfo&&(this._contentLeft=this._context.configuration.editor.layoutInfo.contentLeft),!0},t.prototype.onCursorStateChanged=function(e){var t=!1;this._primaryCursorIsInEditableRange!==e.isInEditableRange&&(this._primaryCursorIsInEditableRange=e.isInEditableRange,t=!0);var n=e.selections[0].positionLineNumber;return this._primaryCursorLineNumber!==n&&(this._primaryCursorLineNumber=n,t=!0),t},t.prototype.onFlushed=function(e){return!0},t.prototype.onLinesDeleted=function(e){return!0},t.prototype.onLinesInserted=function(e){return!0},t.prototype.onZonesChanged=function(e){return!0},t.prototype.prepareRender=function(e){},t.prototype.render=function(e,t){return t===this._primaryCursorLineNumber&&this._shouldShowCurrentLine()?'
        ':""},t.prototype._shouldShowCurrentLine=function(){return("gutter"===this._renderLineHighlight||"all"===this._renderLineHighlight)&&this._primaryCursorIsInEditableRange},t}(n.DynamicViewOverlay);t.CurrentLineMarginHighlightOverlay=r,i.registerThemingParticipant(function(e,t){var n=e.getColor(o.editorLineHighlight);if(n)t.addRule(".monaco-editor .margin-view-overlays .current-line-margin { background-color: "+n+"; border: none; }");else{var i=e.getColor(o.editorLineHighlightBorder);i&&t.addRule(".monaco-editor .margin-view-overlays .current-line-margin { border: 2px solid "+i+"; }"),"hc"===e.type&&t.addRule(".monaco-editor .margin-view-overlays .current-line-margin { border-width: 1px; }")}})}),define(d[487],h([0,1,60,14,36,6,381]),function(e,t,n,i,o,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var s=function(e){function t(t){var n=e.call(this)||this;return n._context=t,n._lineHeight=n._context.configuration.editor.lineHeight,n._spaceWidth=n._context.configuration.editor.fontInfo.spaceWidth,n._enabled=n._context.configuration.editor.viewInfo.renderIndentGuides,n._renderResult=null,n._context.addEventHandler(n),n}return f(t,e),t.prototype.dispose=function(){this._context.removeEventHandler(this),this._context=null,this._renderResult=null,e.prototype.dispose.call(this)},t.prototype.onConfigurationChanged=function(e){return e.lineHeight&&(this._lineHeight=this._context.configuration.editor.lineHeight),e.fontInfo&&(this._spaceWidth=this._context.configuration.editor.fontInfo.spaceWidth),e.viewInfo&&(this._enabled=this._context.configuration.editor.viewInfo.renderIndentGuides),!0},t.prototype.onFlushed=function(e){return!0},t.prototype.onLinesChanged=function(e){return!0},t.prototype.onLinesDeleted=function(e){return!0},t.prototype.onLinesInserted=function(e){return!0},t.prototype.onScrollChanged=function(e){return e.scrollTopChanged},t.prototype.onZonesChanged=function(e){return!0},t.prototype.prepareRender=function(e){if(this._enabled){for(var t=e.visibleRange.startLineNumber,n=e.visibleRange.endLineNumber,i=this._context.model.getTabSize()*this._spaceWidth,o=this._lineHeight,s=r.computeScreenAwareSize(1),a=[],u=t;u<=n;u++){for(var l=u-t,c=this._context.model.getLineIndentGuide(u),d="",h=0,p=0;p

        ",a+='
        ';var h=this._decodeMetadata(t.tokens2[1+(s<<1)]);a+='',a+='",a+='",a+='",a+='",a+='",a+="",a+='
        ',n'+o.escape(t.tokens1[n].type)+""),this._domNode.innerHTML=a,this._editor.layoutContentWidget(this)},t.prototype._decodeMetadata=function(e){var t=c.TokenizationRegistry.getColorMap(),n=l.TokenMetadata.getLanguageId(e),i=l.TokenMetadata.getTokenType(e),o=l.TokenMetadata.getFontStyle(e),r=l.TokenMetadata.getForeground(e),s=l.TokenMetadata.getBackground(e);return{languageIdentifier:this._modeService.getLanguageIdentifier(n),tokenType:i,fontStyle:o,foreground:t[r],background:t[s]}},t.prototype._tokenTypeToString=function(e){switch(e){case 0:return"Other";case 1:return"Comment";case 2:return"String";case 4:return"RegEx"}return"??"},t.prototype._fontStyleToString=function(e){var t="";return 1&e&&(t+="italic "),2&e&&(t+="bold "),4&e&&(t+="underline "),0===t.length&&(t="---"),t},t.prototype._getTokensAtLine=function(e){var t=this._getStateBeforeLine(e),n=this._tokenizationSupport.tokenize(this._model.getLineContent(e),t,0),i=this._tokenizationSupport.tokenize2(this._model.getLineContent(e),t,0);return{startState:t,tokens1:n.tokens,tokens2:i.tokens,endState:n.endState}},t.prototype._getStateBeforeLine=function(e){for(var t=this._tokenizationSupport.getInitialState(),n=1;n1?n.localize(0,null,t.lineNumber,t.column):n.localize(1,null,t.lineNumber,t.column):t.lineNumber<1||t.lineNumber>o.getLineCount()?n.localize(2,null,o.getLineCount()):n.localize(3,null,o.getLineMaxColumn(t.lineNumber)),{position:t,isValid:a,label:s}},t.prototype.getLabel=function(){return this._parseResult.label},t.prototype.getAriaLabel=function(){return n.localize(4,null,this._parseResult.label)},t.prototype.run=function(e,t){return e===o.Mode.OPEN?this.runOpen():this.runPreview()},t.prototype.runOpen=function(){if(!this._parseResult.isValid)return!1;var e=this.toSelection();return this.editor.setSelection(e),this.editor.revealRangeInCenter(e),this.editor.focus(),!0},t.prototype.runPreview=function(){if(!this._parseResult.isValid)return this.decorator.clearDecorations(),!1;var e=this.toSelection();return this.editor.revealRangeInCenter(e),this.decorator.decorateLine(e,this.editor),!1},t.prototype.toSelection=function(){return new c.Range(this._parseResult.position.lineNumber,this._parseResult.position.column,this._parseResult.position.lineNumber,this._parseResult.position.column)},t}(i.QuickOpenEntry);t.GotoLineEntry=d;var h=function(e){function t(){return e.call(this,n.localize(5,null),{id:"editor.action.gotoLine",label:n.localize(6,null),alias:"Go to Line...",precondition:null,kbOpts:{kbExpr:s.EditorContextKeys.focus,primary:2085,mac:{primary:293}}})||this}return f(t,e),t.prototype.run=function(e,t){var n=this;this._show(this.getController(t),{getModel:function(e){return new i.QuickOpenModel([new d(e,t,n.getController(t))])},getAutoFocus:function(e){return{autoFocusFirstEntry:e.length>0}}})},t}(a.BaseEditorQuickOpenAction);h=v([u.editorAction],h),t.GotoLineAction=h}),define(d[525],h([0,1,368,10,85,8,120,93,47,20,114,13,30]),function(e,t,n,i,o,r,s,a,u,l,c,d,h){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var p=function(e){function t(t,n,i,o){var r=e.call(this)||this;return r.key=t,r.setHighlights(n),r.action=i,r.editor=o,r}return f(t,e),t.prototype.getLabel=function(){return this.action.label},t.prototype.getAriaLabel=function(){return n.localize(0,null,this.getLabel())},t.prototype.getGroupLabel=function(){return this.key},t.prototype.run=function(e,t){var n=this;return e===a.Mode.OPEN&&(r.TPromise.timeout(50).done(function(){n.editor.focus();try{(n.action.run()||r.TPromise.as(null)).done(null,i.onUnexpectedError)}catch(e){i.onUnexpectedError(e)}},i.onUnexpectedError),!0)},t}(s.QuickOpenEntryGroup);t.EditorActionCommandEntry=p;var g=function(e){function t(){return e.call(this,n.localize(1,null),{id:"editor.action.quickCommand",label:n.localize(2,null),alias:"Command Palette",precondition:null,kbOpts:{kbExpr:l.EditorContextKeys.focus,primary:h.isIE?571:59},menuOpts:{}})||this}return f(t,e),t.prototype.run=function(e,t){var n=this,i=e.get(u.IKeybindingService);this._show(this.getController(t),{getModel:function(e){return new s.QuickOpenModel(n._editorActionsToEntries(i,t,e))},getAutoFocus:function(e){return{autoFocusFirstEntry:!0,autoFocusPrefixMatch:e}}})},t.prototype._sort=function(e,t){var n=e.getLabel().toLowerCase(),i=t.getLabel().toLowerCase();return n.localeCompare(i)},t.prototype._editorActionsToEntries=function(e,t,n){for(var i=t.getSupportedActions(),r=[],s=0;s0&&0===r.indexOf(":")){for(var m=null,v=null,_=0,y=0;y0)):_++}v&&v.setGroupLabel(this.typeToLabel(m,_))}else a.length>0&&a[0].setGroupLabel(n.localize(3,null,a.length));return a},t.prototype.typeToLabel=function(e,t){switch(e){case"module":return n.localize(4,null,t);case"class":return n.localize(5,null,t);case"interface":return n.localize(6,null,t);case"method":return n.localize(7,null,t);case"function":return n.localize(8,null,t);case"property":return n.localize(9,null,t);case"variable":return n.localize(10,null,t);case"var":return n.localize(11,null,t);case"constructor":return n.localize(12,null,t);case"call":return n.localize(13,null,t)}return e},t.prototype.sortNormal=function(e,t,n){var i=t.getLabel().toLowerCase(),o=n.getLabel().toLowerCase(),r=i.localeCompare(o);if(0!==r)return r;var s=t.getRange(),a=n.getRange();return s.startLineNumber-a.startLineNumber},t.prototype.sortScoped=function(e,t,n){e=e.substr(":".length);var i=t.getType(),o=n.getType(),r=i.localeCompare(o);if(0!==r)return r;if(e){var s=t.getLabel().toLowerCase(),a=n.getLabel().toLowerCase(),u=s.localeCompare(a);if(0!==u)return u}var l=t.getRange(),c=n.getRange();return l.startLineNumber-c.startLineNumber},t}(l.BaseEditorQuickOpenAction);g=v([d.editorAction],g),t.QuickOutlineAction=g}),define(d[527],h([0,1,3,8,71,16,31,47,19,41,63,140,115,163,83,176,77,14,48,200,30]),function(e,t,n,i,o,r,s,a,u,l,c,d,h,p,g,m,_,b,C,w,S){"use strict";function E(){x||(x=!0,C.setARIAContainer(document.body))}Object.defineProperty(t,"__esModule",{value:!0});var L=0,x=!1,N=function(e){function t(t,n,i,o,r,s,a,u){var l=this;return n=n||{},n.ariaLabel=n.ariaLabel||w.localize(0,null),n.ariaLabel=n.ariaLabel+";"+(S.isIE?w.localize(1,null):w.localize(2,null)),l=e.call(this,t,n,i,o,r,s,u)||this,a instanceof d.StandaloneKeybindingService&&(l._standaloneKeybindingService=a),E(),l}return f(t,e),t.prototype.addCommand=function(e,t,n){if(!this._standaloneKeybindingService)return console.warn("Cannot add command because the editor is configured with an unrecognized KeybindingService"),null;var i="DYNAMIC_"+ ++L,o=u.ContextKeyExpr.deserialize(n);return this._standaloneKeybindingService.addDynamicKeybinding(i,e,t,o),i},t.prototype.createContextKey=function(e,t){return this._contextKeyService.createKey(e,t)},t.prototype.addAction=function(e){var t=this;if("string"!=typeof e.id||"string"!=typeof e.label||"function"!=typeof e.run)throw new Error("Invalid action descriptor, `id`, `label` and `run` are required properties!");if(!this._standaloneKeybindingService)return console.warn("Cannot add keybinding because the editor is configured with an unrecognized KeybindingService"),n.empty;var o=e.id,r=e.label,a=u.ContextKeyExpr.and(u.ContextKeyExpr.equals("editorId",this.getId()),u.ContextKeyExpr.deserialize(e.precondition)),l=e.keybindings,c=u.ContextKeyExpr.and(a,u.ContextKeyExpr.deserialize(e.keybindingContext)),d=e.contextMenuGroupId||null,h=e.contextMenuOrder||0,p=function(){var n=e.run(t);return n||i.TPromise.as(void 0)},f=[],g=this.getId()+":"+o;if(f.push(s.CommandsRegistry.registerCommand(g,p)),d){var v={command:{id:g,title:r},when:a,group:d,order:h};f.push(_.MenuRegistry.appendMenuItem(_.MenuId.EditorContext,v))}Array.isArray(l)&&(f=f.concat(l.map(function(e){return t._standaloneKeybindingService.addDynamicKeybinding(g,e,p,c)})));var y=new m.InternalEditorAction(g,r,r,a,p,this._contextKeyService);return this._actions[o]=y,f.push({dispose:function(){delete t._actions[o]}}),n.combinedDisposable(f)},t}(h.CodeEditor);N=v([y(2,r.IInstantiationService),y(3,l.ICodeEditorService),y(4,s.ICommandService),y(5,u.IContextKeyService),y(6,a.IKeybindingService),y(7,b.IThemeService)],N),t.StandaloneCodeEditor=N;var M=function(e){function t(t,n,i,o,r,s,a,u,l,c){var d=this;"string"==typeof(n=n||{}).theme&&c.setTheme(n.theme);var h=n.model;if(delete n.model,d=e.call(this,t,n,o,r,s,a,u,c)||this,d._contextViewService=l,d._register(i),void 0===h?(h=self.monaco.editor.createModel(n.value||"",n.language||"text/plain"),d._ownsModel=!0):d._ownsModel=!1,d._attachModel(h),h){var p={oldModelUrl:null,newModelUrl:h.uri};d._onDidChangeModel.fire(p)}return d}return f(t,e),t.prototype.dispose=function(){e.prototype.dispose.call(this)},t.prototype.destroy=function(){this.dispose()},t.prototype._attachModel=function(t){e.prototype._attachModel.call(this,t),this._view&&this._contextViewService.setContainer(this._view.domNode.domNode)},t.prototype._postDetachModelCleanup=function(t){e.prototype._postDetachModelCleanup.call(this,t),t&&this._ownsModel&&(t.dispose(),this._ownsModel=!1)},t}(N);M=v([y(3,r.IInstantiationService),y(4,l.ICodeEditorService),y(5,s.ICommandService),y(6,u.IContextKeyService),y(7,a.IKeybindingService),y(8,o.IContextViewService),y(9,g.IStandaloneThemeService)],M),t.StandaloneEditor=M;var T=function(e){function t(t,n,i,o,r,s,a,u,l,c){var h=this;return"string"==typeof(n=n||{}).theme&&(n.theme=c.setTheme(n.theme)),h=e.call(this,t,n,u,r,o,l,c)||this,s instanceof d.StandaloneKeybindingService&&(h._standaloneKeybindingService=s),h._contextViewService=a,h._register(i),h._contextViewService.setContainer(h._containerDomElement),h}return f(t,e),t.prototype.dispose=function(){e.prototype.dispose.call(this)},t.prototype.destroy=function(){this.dispose()},t.prototype._createInnerEditor=function(e,t,n){return e.createInstance(N,t,n)},t.prototype.getOriginalEditor=function(){return e.prototype.getOriginalEditor.call(this)},t.prototype.getModifiedEditor=function(){return e.prototype.getModifiedEditor.call(this)},t.prototype.addCommand=function(e,t,n){return this.getModifiedEditor().addCommand(e,t,n)},t.prototype.createContextKey=function(e,t){return this.getModifiedEditor().createContextKey(e,t)},t.prototype.addAction=function(e){return this.getModifiedEditor().addAction(e)},t}(p.DiffEditorWidget);T=v([y(3,r.IInstantiationService),y(4,u.IContextKeyService),y(5,a.IKeybindingService),y(6,o.IContextViewService),y(7,c.IEditorWorkerService),y(8,l.ICodeEditorService),y(9,g.IStandaloneThemeService)],T),t.StandaloneDiffEditor=T}),define(d[528],h([0,1,23,36]),function(e,t,n,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.vs={base:"vs",inherit:!1,rules:[{token:"",foreground:"000000",background:"fffffe"},{token:"invalid",foreground:"cd3131"},{token:"emphasis",fontStyle:"italic"},{token:"strong",fontStyle:"bold"},{token:"variable",foreground:"001188"},{token:"variable.predefined",foreground:"4864AA"},{token:"constant",foreground:"dd0000"},{token:"comment",foreground:"008000"},{token:"number",foreground:"09885A"},{token:"number.hex",foreground:"3030c0"},{token:"regexp",foreground:"800000"},{token:"annotation",foreground:"808080"},{token:"type",foreground:"008080"},{token:"delimiter",foreground:"000000"},{token:"delimiter.html",foreground:"383838"},{token:"delimiter.xml",foreground:"0000FF"},{token:"tag",foreground:"800000"},{token:"tag.id.jade",foreground:"4F76AC"},{token:"tag.class.jade",foreground:"4F76AC"},{token:"meta.scss",foreground:"800000"},{token:"metatag",foreground:"e00000"},{token:"metatag.content.html",foreground:"FF0000"},{token:"metatag.html",foreground:"808080"},{token:"metatag.xml",foreground:"808080"},{token:"metatag.php",fontStyle:"bold"},{token:"key",foreground:"863B00"},{token:"string.key.json",foreground:"A31515"},{token:"string.value.json",foreground:"0451A5"},{token:"attribute.name",foreground:"FF0000"},{token:"attribute.value",foreground:"0451A5"},{token:"attribute.value.number",foreground:"09885A"},{token:"attribute.value.unit",foreground:"09885A"},{token:"attribute.value.html",foreground:"0000FF"},{token:"attribute.value.xml",foreground:"0000FF"},{token:"string",foreground:"A31515"},{token:"string.html",foreground:"0000FF"},{token:"string.sql",foreground:"FF0000"},{token:"string.yaml",foreground:"0451A5"},{token:"keyword",foreground:"0000FF"},{token:"keyword.json",foreground:"0451A5"},{token:"keyword.flow",foreground:"AF00DB"},{token:"keyword.flow.scss",foreground:"0000FF"},{token:"operator.scss",foreground:"666666"},{token:"operator.sql",foreground:"778899"},{token:"operator.swift",foreground:"666666"},{token:"predefined.sql",foreground:"FF00FF"}],colors:(o={},o[n.editorBackground]="#FFFFFE",o[n.editorForeground]="#000000",o[n.editorInactiveSelection]="#E5EBF1",o[i.editorIndentGuides]="#D3D3D3",o[n.editorSelectionHighlight]="#ADD6FF4D",o)},t.vs_dark={base:"vs-dark",inherit:!1,rules:[{token:"",foreground:"D4D4D4",background:"1E1E1E"},{token:"invalid",foreground:"f44747"},{token:"emphasis",fontStyle:"italic"},{token:"strong",fontStyle:"bold"},{token:"variable",foreground:"74B0DF"},{token:"variable.predefined",foreground:"4864AA"},{token:"variable.parameter",foreground:"9CDCFE"},{token:"constant",foreground:"569CD6"},{token:"comment",foreground:"608B4E"},{token:"number",foreground:"B5CEA8"},{token:"number.hex",foreground:"5BB498"},{token:"regexp",foreground:"B46695"},{token:"annotation",foreground:"cc6666"},{token:"type",foreground:"3DC9B0"},{token:"delimiter",foreground:"DCDCDC"},{token:"delimiter.html",foreground:"808080"},{token:"delimiter.xml",foreground:"808080"},{token:"tag",foreground:"569CD6"},{token:"tag.id.jade",foreground:"4F76AC"},{token:"tag.class.jade",foreground:"4F76AC"},{token:"meta.scss",foreground:"A79873"},{token:"meta.tag",foreground:"CE9178"},{token:"metatag",foreground:"DD6A6F"},{token:"metatag.content.html",foreground:"9CDCFE"},{token:"metatag.html",foreground:"569CD6"},{token:"metatag.xml",foreground:"569CD6"},{token:"metatag.php",fontStyle:"bold"},{token:"key",foreground:"9CDCFE"},{token:"string.key.json",foreground:"9CDCFE"},{token:"string.value.json",foreground:"CE9178"},{token:"attribute.name",foreground:"9CDCFE"},{token:"attribute.value",foreground:"CE9178"},{token:"attribute.value.number.css",foreground:"B5CEA8"},{token:"attribute.value.unit.css",foreground:"B5CEA8"},{token:"attribute.value.hex.css",foreground:"D4D4D4"},{token:"string",foreground:"CE9178"},{token:"string.sql",foreground:"FF0000"},{token:"keyword",foreground:"569CD6"},{token:"keyword.flow",foreground:"C586C0"},{token:"keyword.json",foreground:"CE9178"},{token:"keyword.flow.scss",foreground:"569CD6"},{token:"operator.scss",foreground:"909090"},{token:"operator.sql",foreground:"778899"},{token:"operator.swift",foreground:"909090"},{token:"predefined.sql",foreground:"FF00FF"}],colors:(r={},r[n.editorBackground]="#1E1E1E",r[n.editorForeground]="#D4D4D4",r[n.editorInactiveSelection]="#3A3D41",r[i.editorIndentGuides]="#404040",r[n.editorSelectionHighlight]="#ADD6FF26",r)},t.hc_black={base:"hc-black",inherit:!1,rules:[{token:"",foreground:"FFFFFF",background:"000000"},{token:"invalid",foreground:"f44747"},{token:"emphasis",fontStyle:"italic"},{token:"strong",fontStyle:"bold"},{token:"variable",foreground:"1AEBFF"},{token:"variable.parameter",foreground:"9CDCFE"},{token:"constant",foreground:"569CD6"},{token:"comment",foreground:"608B4E"},{token:"number",foreground:"FFFFFF"},{token:"regexp",foreground:"C0C0C0"},{token:"annotation",foreground:"569CD6"},{token:"type",foreground:"3DC9B0"},{token:"delimiter",foreground:"FFFF00"},{token:"delimiter.html",foreground:"FFFF00"},{token:"tag",foreground:"569CD6"},{token:"tag.id.jade",foreground:"4F76AC"},{token:"tag.class.jade",foreground:"4F76AC"},{token:"meta",foreground:"D4D4D4"},{token:"meta.tag",foreground:"CE9178"},{token:"metatag",foreground:"569CD6"},{token:"metatag.content.html",foreground:"1AEBFF"},{token:"metatag.html",foreground:"569CD6"},{token:"metatag.xml",foreground:"569CD6"},{token:"metatag.php",fontStyle:"bold"},{token:"key",foreground:"9CDCFE"},{token:"string.key",foreground:"9CDCFE"},{token:"string.value",foreground:"CE9178"},{token:"attribute.name",foreground:"569CD6"},{token:"attribute.value",foreground:"3FF23F"},{token:"string",foreground:"CE9178"},{token:"string.sql",foreground:"FF0000"},{token:"keyword",foreground:"569CD6"},{token:"keyword.flow",foreground:"C586C0"},{token:"operator.sql",foreground:"778899"},{token:"operator.swift",foreground:"909090"},{token:"predefined.sql",foreground:"FF00FF"}],colors:(s={},s[n.editorBackground]="#000000",s[n.editorForeground]="#FFFFFF",s[i.editorIndentGuides]="#FFFFFF",s)};var o,r,s}),define(d[529],h([0,1,370,528,6,17,34,23,14,42,11]),function(e,t,n,i,o,r,s,a,u,l,c){"use strict";function d(e){return e===f||e===g||e===m}function h(e){switch(e){case f:return i.vs;case g:return i.vs_dark;case m:return i.hc_black}}function p(e){var t=h(e);return new y(e,"",t.colors,t.rules)}Object.defineProperty(t,"__esModule",{value:!0});var f="vs",g="vs-dark",m="hc-black",v=l.Registry.as(a.Extensions.ColorContribution),_=l.Registry.as(u.Extensions.ThemingContribution),y=function(){function e(e,t,n,i){t.length>0?(this.id=e+" "+t,this.themeName=t):(this.id=e,this.themeName=e),this.base=e,this.rules=i,this.colors={};for(var o in n)this.colors[o]=s.Color.fromHex(n[o]);this.defaultColors={}}return e.prototype.getColor=function(e,t){return this.colors.hasOwnProperty(e)?this.colors[e]:!1!==t?this.getDefault(e):null},e.prototype.getDefault=function(e){if(this.defaultColors.hasOwnProperty(e))return this.defaultColors[e];var t=v.resolveDefaultColor(e,this);return this.defaultColors[e]=t,t},e.prototype.defines=function(e){return this.colors.hasOwnProperty(e)},Object.defineProperty(e.prototype,"type",{get:function(){switch(this.base){case f:return"light";case m:return"hc";default:return"dark"}},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"tokenTheme",{get:function(){return this._tokenTheme||(this._tokenTheme=n.TokenTheme.createFromRawTokenTheme(this.rules)),this._tokenTheme},enumerable:!0,configurable:!0}),e}(),b=function(){function e(){this._onThemeChange=new c.Emitter,this._knownThemes=new Map,this._knownThemes.set(f,p(f)),this._knownThemes.set(g,p(g)),this._knownThemes.set(m,p(m)),this._styleElement=o.createStyleSheet(),this._styleElement.className="monaco-colors",this.setTheme(f)}return Object.defineProperty(e.prototype,"onThemeChange",{get:function(){return this._onThemeChange.event},enumerable:!0,configurable:!0}),e.prototype.defineTheme=function(e,t){if(!/^[a-z0-9\-]+$/i.test(e)||d(e))throw new Error("Illegal theme name!");if(!d(t.base))throw new Error("Illegal theme base!");var n=[],i={};if(t.inherit){var o=h(t.base);n=n.concat(o.rules);for(var r in o.colors)i[r]=o.colors[r]}n=n.concat(t.rules);for(var r in t.colors)i[r]=t.colors[r];this._knownThemes.set(e,new y(t.base,e,i,n))},e.prototype.getTheme=function(){return this._theme},e.prototype.setTheme=function(e){var t;t=this._knownThemes.has(e)?this._knownThemes.get(e):this._knownThemes.get(f),this._theme=t;var i=[],o={},s={addRule:function(e){o[e]||(i.push(e),o[e]=!0)}};_.getThemingParticipants().forEach(function(e){return e(t,s)});var a=t.tokenTheme.getColorMap();return s.addRule(n.generateTokensCSSForColorMap(a)),this._styleElement.innerHTML=i.join("\n"),r.TokenizationRegistry.setColorMap(a),this._onThemeChange.fire(t),t.id},e}();t.StandaloneThemeServiceImpl=b}),define(d[110],h([0,1,24,16,46,88,15]),function(e,t,n,i,o,r,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.IWorkspaceContextService=i.createDecorator("contextService");var a=function(){function e(e,t){this._resource=e,this._ctime=t,this._name=o.basename(this._resource.fsPath)||this._resource.fsPath}return Object.defineProperty(e.prototype,"resource",{get:function(){return this._resource},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"name",{get:function(){return this._name},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"ctime",{get:function(){return this._ctime},enumerable:!0,configurable:!0}),e.prototype.toWorkspaceRelativePath=function(e,t){return this.contains(e)?o.normalize(o.relative(this._resource.fsPath,e.fsPath),t):null},e.prototype.contains=function(e){return!!e&&o.isEqualOrParent(e.fsPath,this._resource.fsPath,!s.isLinux)},e.prototype.toResource=function(e,t){return"string"==typeof e?n.default.file(o.join(t?t.fsPath:this._resource.fsPath,e)):null},e}();t.LegacyWorkspace=a;var u=function(){function e(e,t,n){this.id=e,this._name=t,this._roots=n,this._rootsMap=new r.TrieMap(r.TrieMap.PathSplitter),this.updateRootsMap()}return Object.defineProperty(e.prototype,"roots",{get:function(){return this._roots},set:function(e){this._roots=e,this.updateRootsMap()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"name",{get:function(){return this._name},set:function(e){this._name=e},enumerable:!0,configurable:!0}),e.prototype.getRoot=function(e){return e?this._rootsMap.findSubstr(e.fsPath):null},e.prototype.updateRootsMap=function(){this._rootsMap=new r.TrieMap(r.TrieMap.PathSplitter);for(var e=0,t=this.roots;e1?this.badge.setTitleFormat(n.localize(1,null,t)):this.badge.setTitleFormat(n.localize(2,null,t))},e}();V=v([y(1,S.IWorkspaceContextService),y(2,C.optional(R.IEnvironmentService)),y(3,D.IThemeService)],V);var H=function(){function e(e){var t=document.createElement("div");this.before=document.createElement("span"),this.inside=document.createElement("span"),this.after=document.createElement("span"),h.addClass(this.inside,"referenceMatch"),h.addClass(t,"reference"),t.appendChild(this.before),t.appendChild(this.inside),t.appendChild(this.after),e.appendChild(t)}return e.prototype.set=function(e){var t=e.parent.preview.preview(e.range),n=t.before,i=t.inside,o=t.after;this.before.innerHTML=u.escape(n),this.inside.innerHTML=u.escape(i),this.after.innerHTML=u.escape(o)},e}(),z=function(){function e(e,t,n){this._contextService=e,this._themeService=t,this._environmentService=n}return e.prototype.getHeight=function(e,t){return 22},e.prototype.getTemplateId=function(t,n){if(n instanceof T.FileReferences)return e._ids.FileReferences;if(n instanceof T.OneReference)return e._ids.OneReference;throw n},e.prototype.renderTemplate=function(t,n,i){if(n===e._ids.FileReferences)return new V(i,this._contextService,this._environmentService,this._themeService);if(n===e._ids.OneReference)return new H(i);throw n},e.prototype.renderElement=function(e,t,n,i){if(t instanceof T.FileReferences)i.set(t);else{if(!(t instanceof T.OneReference))throw n;i.set(t)}},e.prototype.disposeTemplate=function(e,t,n){n instanceof V&&n.dispose()},e}();z._ids={FileReferences:"FileReferences",OneReference:"OneReference"},z=v([y(0,S.IWorkspaceContextService),y(1,D.IThemeService),y(2,C.optional(R.IEnvironmentService))],z);var K=function(){function e(){}return e.prototype.getAriaLabel=function(e,t){return t instanceof T.FileReferences?t.getAriaMessage():t instanceof T.OneReference?t.getAriaMessage():void 0},e}(),U=function(){function e(e,t){var n=this;this._disposables=[],this._onDidChangePercentages=new r.Emitter,this._ratio=t,this._sash=new p.Sash(e,{getVerticalSashLeft:function(){return n._width*n._ratio},getVerticalSashHeight:function(){return n._height}});var i;this._disposables.push(this._sash.addListener("start",function(e){i=e.startX-n._width*n.ratio})),this._disposables.push(this._sash.addListener("change",function(e){var t=e.currentX-i;t>20&&t+200?e.children[0]:void 0},u.prototype._revealReference=function(e){var t=this;e.uri.scheme!==a.Schemas.inMemory?this.setTitle(e.name,o.getPathLabel(e.directory,this._contextService,this._environmentService)):this.setTitle(n.localize(6,null));var r=this._textModelResolverService.createModelReference(e.uri);return l.TPromise.join([r,this._tree.reveal(e)]).then(function(n){var i=n[0];if(t._model){s.dispose(t._previewModelReference);var o=i.object;if(o){t._previewModelReference=i,t._preview.setModel(o.textEditorModel);var r=E.Range.lift(e.range).collapseToStart();t._preview.setSelection(r),t._preview.revealRangeInCenter(r)}else t._preview.setModel(t._previewNotAvailableMessage),i.dispose();t._tree.setSelection([e]),t._tree.setFocus(e)}else i.dispose()},i.onUnexpectedError)},u}(M.PeekViewWidget);t.ReferenceWidget=j,t.peekViewTitleBackground=I.registerColor("peekViewTitle.background",{dark:"#1E1E1E",light:"#FFFFFF",hc:"#0C141F"},n.localize(7,null)),t.peekViewTitleForeground=I.registerColor("peekViewTitleLabel.foreground",{dark:"#FFFFFF",light:"#333333",hc:"#FFFFFF"},n.localize(8,null)),t.peekViewTitleInfoForeground=I.registerColor("peekViewTitleDescription.foreground",{dark:"#ccccccb3",light:"#6c6c6cb3",hc:"#FFFFFF99"},n.localize(9,null)),t.peekViewBorder=I.registerColor("peekView.border",{dark:"#007acc",light:"#007acc",hc:I.contrastBorder},n.localize(10,null)),t.peekViewResultsBackground=I.registerColor("peekViewResult.background",{dark:"#252526",light:"#F3F3F3",hc:c.Color.black},n.localize(11,null)),t.peekViewResultsMatchForeground=I.registerColor("peekViewResult.lineForeground",{dark:"#bbbbbb",light:"#646465",hc:c.Color.white},n.localize(12,null)),t.peekViewResultsFileForeground=I.registerColor("peekViewResult.fileForeground",{dark:c.Color.white,light:"#1E1E1E",hc:c.Color.white},n.localize(13,null)),t.peekViewResultsSelectionBackground=I.registerColor("peekViewResult.selectionBackground",{dark:"#3399ff33",light:"#3399ff33",hc:null},n.localize(14,null)),t.peekViewResultsSelectionForeground=I.registerColor("peekViewResult.selectionForeground",{dark:c.Color.white,light:"#6C6C6C",hc:c.Color.white},n.localize(15,null)),t.peekViewEditorBackground=I.registerColor("peekViewEditor.background",{dark:"#001F33",light:"#F2F8FC",hc:c.Color.black},n.localize(16,null)),t.peekViewEditorGutterBackground=I.registerColor("peekViewEditorGutter.background",{dark:t.peekViewEditorBackground,light:t.peekViewEditorBackground,hc:t.peekViewEditorBackground},n.localize(17,null)),t.peekViewResultsMatchHighlight=I.registerColor("peekViewResult.matchHighlightBackground",{dark:"#ea5c004d",light:"#ea5c004d",hc:null},n.localize(18,null)),t.peekViewEditorMatchHighlight=I.registerColor("peekViewEditor.matchHighlightBackground",{dark:"#ff8f0099",light:"#f5d802de",hc:null},n.localize(19,null)),D.registerThemingParticipant(function(e,n){var i=e.getColor(t.peekViewResultsMatchHighlight);i&&n.addRule(".monaco-editor .reference-zone-widget .ref-tree .referenceMatch { background-color: "+i+"; }");var o=e.getColor(t.peekViewEditorMatchHighlight);o&&n.addRule(".monaco-editor .reference-zone-widget .preview .reference-decoration { background-color: "+o+"; }");var r=e.getColor(I.activeContrastBorder);r&&(n.addRule(".monaco-editor .reference-zone-widget .ref-tree .referenceMatch { border: 1px dotted "+r+"; box-sizing: border-box; }"),n.addRule(".monaco-editor .reference-zone-widget .preview .reference-decoration { border: 2px solid "+r+"; box-sizing: border-box; }"));var s=e.getColor(t.peekViewResultsBackground);s&&n.addRule(".monaco-editor .reference-zone-widget .ref-tree { background-color: "+s+"; }");var a=e.getColor(t.peekViewResultsMatchForeground);a&&n.addRule(".monaco-editor .reference-zone-widget .ref-tree { color: "+a+"; }");var u=e.getColor(t.peekViewResultsFileForeground);u&&n.addRule(".monaco-editor .reference-zone-widget .ref-tree .reference-file { color: "+u+"; }");var l=e.getColor(t.peekViewResultsSelectionBackground);l&&n.addRule(".monaco-editor .reference-zone-widget .ref-tree .monaco-tree.focused .monaco-tree-rows > .monaco-tree-row.selected:not(.highlighted) { background-color: "+l+"; }");var c=e.getColor(t.peekViewResultsSelectionForeground);c&&n.addRule(".monaco-editor .reference-zone-widget .ref-tree .monaco-tree.focused .monaco-tree-rows > .monaco-tree-row.selected:not(.highlighted) { color: "+c+" !important; }");var d=e.getColor(t.peekViewEditorBackground);d&&n.addRule(".monaco-editor .reference-zone-widget .preview .monaco-editor .monaco-editor-background,.monaco-editor .reference-zone-widget .preview .monaco-editor .inputarea.ime-input {\tbackground-color: "+d+";}");var h=e.getColor(t.peekViewEditorGutterBackground);h&&n.addRule(".monaco-editor .reference-zone-widget .preview .monaco-editor .margin {\tbackground-color: "+h+";}")})}),define(d[169],h([0,1,354,10,3,40,59,11,16,19,66,62,73,110,72,32,108,531,78,14,12,196]),function(e,t,n,i,o,r,s,a,u,l,c,d,h,p,f,g,m,_,b,C,w,S){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ctxReferenceSearchVisible=new l.RawContextKey("referenceSearchVisible",!1);var E=L=function(){function e(e,n,i,o,r,s,a,u,l,c,d,h,p){this._editorService=i,this._textModelResolverService=o,this._telemetryService=r,this._messageService=s,this._instantiationService=a,this._contextService=u,this._storageService=l,this._themeService=c,this._configurationService=d,this._peekViewService=h,this._environmentService=p,this._requestIdPool=0,this._disposables=[],this._ignoreModelChangeEvent=!1,this._editor=e,this._referenceSearchVisible=t.ctxReferenceSearchVisible.bindTo(n)}return e.get=function(e){return e.getContribution(L.ID)},e.prototype.getId=function(){return L.ID},e.prototype.dispose=function(){this._widget&&(this._widget.dispose(),this._widget=null),this._editor=null},e.prototype.toggleWidget=function(e,t,i){var o,s=this;if(this._widget&&(o=this._widget.position),this.closeWidget(),o&&e.containsPosition(o))return null;this._referenceSearchVisible.set(!0),this._disposables.push(this._editor.onDidChangeModelLanguage(function(){s.closeWidget()})),this._disposables.push(this._editor.onDidChangeModel(function(){s._ignoreModelChangeEvent||s.closeWidget()}));var u=JSON.parse(this._storageService.get("peekViewLayout",void 0,"{}"));this._widget=new _.ReferenceWidget(this._editor,u,this._textModelResolverService,this._contextService,this._themeService,this._instantiationService,this._environmentService),this._widget.setTitle(n.localize(0,null)),this._widget.show(e),this._disposables.push(this._widget.onDidClose(function(){t.cancel(),s._storageService.store("peekViewLayout",JSON.stringify(s._widget.layoutData)),s._widget=null,s.closeWidget()})),this._disposables.push(this._widget.onDidSelectReference(function(e){var t=e.element,n=e.kind;switch(n){case"open":if("editor"===e.source&&s._configurationService.lookup("editor.stablePeek").value)break;case"side":s._openReference(t,"side"===n);break;case"goto":i.onGoto?i.onGoto(t):s._gotoReference(t)}}));var l=++this._requestIdPool,c=t.then(function(t){if(l===s._requestIdPool&&s._widget){s._model&&s._model.dispose(),s._model=t;var n=Date.now();return s._disposables.push({dispose:function(){s._telemetryService.publicLog("zoneWidgetShown",{mode:"reference search",elapsedTime:Date.now()-n})}}),s._widget.setModel(s._model).then(function(){s._widget.setMetaTitle(i.getMetaTitle(s._model));var t=s._editor.getModel().uri,n=new w.Position(e.startLineNumber,e.startColumn),o=s._model.nearestReference(t,n);if(o)return s._widget.setSelection(o)})}},function(e){s._messageService.show(r.default.Error,e)}),d=a.stopwatch(a.fromPromise(c)),h=this._editor.getModel().getLanguageIdentifier().language;d(function(e){return s._telemetryService.publicLog("findReferences",{duration:e,mode:h})})},e.prototype.closeWidget=function(){this._widget&&(this._widget.dispose(),this._widget=null),this._referenceSearchVisible.reset(),this._disposables=o.dispose(this._disposables),this._model&&(this._model.dispose(),this._model=null),this._editor.focus(),this._requestIdPool+=1},e.prototype._gotoReference=function(e){var t=this;this._widget.hide(),this._ignoreModelChangeEvent=!0;var n=e.uri,o=e.range;this._editorService.openEditor({resource:n,options:{selection:o}}).done(function(e){t._ignoreModelChangeEvent=!1,e&&e.getControl()===t._editor?(t._widget.show(o),t._widget.focus()):t.closeWidget()},function(e){t._ignoreModelChangeEvent=!1,i.onUnexpectedError(e)})},e.prototype._openReference=function(e,t){var n=e.uri,i=e.range;this._editorService.openEditor({resource:n,options:{selection:i}},t),t||this.closeWidget()},e}();E.ID="editor.contrib.referencesController",E=L=v([g.editorContribution,y(1,l.IContextKeyService),y(2,s.IEditorService),y(3,b.ITextModelService),y(4,d.ITelemetryService),y(5,c.IMessageService),y(6,u.IInstantiationService),y(7,p.IWorkspaceContextService),y(8,f.IStorageService),y(9,C.IThemeService),y(10,h.IConfigurationService),y(11,u.optional(m.IPeekViewService)),y(12,u.optional(S.IEnvironmentService))],E),t.ReferencesController=E;var L}),define(d[161],h([0,1,341,48,39,15,40,8,59,66,2,13,144,169,130,108,19,508,20]),function(e,t,n,i,o,r,s,a,u,l,c,d,h,p,g,m,_,y,b){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var C=function(){return function(e,t,n,i){void 0===e&&(e=!1),void 0===t&&(t=!1),void 0===n&&(n=!0),void 0===i&&(i=!0),this.openToSide=e,this.openInPeek=t,this.filterCurrent=n,this.showMessage=i}}();t.DefinitionActionConfig=C;var w=function(e){function t(t,n){var i=e.call(this,n)||this;return i._configuration=t,i}return f(t,e),t.prototype.run=function(e,t){var n=this,i=e.get(l.IMessageService),o=e.get(u.IEditorService),r=t.getModel(),a=t.getPosition();return this._getDeclarationsAtPosition(r,a).then(function(e){if(!r.isDisposed()&&t.getModel()===r){for(var i=-1,s=[],u=0;u1&&n.localize(2,null,e.references.length)},t.prototype._onResult=function(e,t,n){var o=this,r=n.getAriaMessage();if(i.alert(r),this._configuration.openInPeek)this._openInPeek(e,t,n);else{var s=n.nearestReference(t.getModel().uri,t.getPosition());this._openReference(e,s,this._configuration.openToSide).then(function(t){t&&n.references.length>1?o._openInPeek(e,t,n):n.dispose()})}},t.prototype._openReference=function(e,t,n){var i=t.uri,o=t.range;return e.openEditor({resource:i,options:{selection:c.Range.collapseToStart(o),revealIfVisible:!n}},n).then(function(e){return e&&e.getControl()})},t.prototype._openInPeek=function(e,t,n){var i=this,o=p.ReferencesController.get(t);o?o.toggleWidget(t.getSelection(),a.TPromise.as(n),{getMetaTitle:function(e){return i._getMetaTitle(e)},onGoto:function(t){return o.closeWidget(),i._openReference(e,t,!1)}}):n.dispose()},t}(d.EditorAction);t.DefinitionAction=w;var S=r.isWeb?2118:70,E=O=function(e){function t(){return e.call(this,new C,{id:O.ID,label:n.localize(3,null),alias:"Go to Definition",precondition:_.ContextKeyExpr.and(b.EditorContextKeys.hasDefinitionProvider,b.EditorContextKeys.isInEmbeddedEditor.toNegated()),kbOpts:{kbExpr:b.EditorContextKeys.textFocus,primary:S},menuOpts:{group:"navigation",order:1.1}})||this}return f(t,e),t}(w);E.ID="editor.action.goToDeclaration",E=O=v([d.editorAction],E),t.GoToDefinitionAction=E;var L=R=function(e){function t(){return e.call(this,new C(!0),{id:R.ID,label:n.localize(4,null),alias:"Open Definition to the Side",precondition:_.ContextKeyExpr.and(b.EditorContextKeys.hasDefinitionProvider,b.EditorContextKeys.isInEmbeddedEditor.toNegated()),kbOpts:{kbExpr:b.EditorContextKeys.textFocus,primary:o.KeyChord(2089,S)}})||this}return f(t,e),t}(w);L.ID="editor.action.openDeclarationToTheSide",L=R=v([d.editorAction],L),t.OpenDefinitionToSideAction=L;var x=function(e){function t(){return e.call(this,new C(void 0,!0,!1),{id:"editor.action.previewDeclaration",label:n.localize(5,null),alias:"Peek Definition",precondition:_.ContextKeyExpr.and(b.EditorContextKeys.hasDefinitionProvider,m.PeekContext.notInPeekEditor,b.EditorContextKeys.isInEmbeddedEditor.toNegated()),kbOpts:{kbExpr:b.EditorContextKeys.textFocus,primary:582,linux:{primary:3140}},menuOpts:{group:"navigation",order:1.2}})||this}return f(t,e),t}(w);x=v([d.editorAction],x),t.PeekDefinitionAction=x;var N=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return f(t,e),t.prototype._getDeclarationsAtPosition=function(e,t){return h.getImplementationsAtPosition(e,t)},t.prototype._getNoResultFoundMessage=function(e){return e&&e.word?n.localize(6,null,e.word):n.localize(7,null)},t.prototype._getMetaTitle=function(e){return e.references.length>1&&n.localize(8,null,e.references.length)},t}(w);t.ImplementationAction=N;var M=P=function(e){function t(){return e.call(this,new C,{id:P.ID,label:n.localize(9,null),alias:"Go to Implementation",precondition:_.ContextKeyExpr.and(b.EditorContextKeys.hasImplementationProvider,b.EditorContextKeys.isInEmbeddedEditor.toNegated()),kbOpts:{kbExpr:b.EditorContextKeys.textFocus,primary:2118}})||this}return f(t,e),t}(N);M.ID="editor.action.goToImplementation",M=P=v([d.editorAction],M),t.GoToImplementationAction=M;var T=A=function(e){function t(){return e.call(this,new C(!1,!0,!1),{id:A.ID,label:n.localize(10,null),alias:"Peek Implementation",precondition:_.ContextKeyExpr.and(b.EditorContextKeys.hasImplementationProvider,b.EditorContextKeys.isInEmbeddedEditor.toNegated()),kbOpts:{kbExpr:b.EditorContextKeys.textFocus,primary:3142}})||this}return f(t,e),t}(N);T.ID="editor.action.peekImplementation",T=A=v([d.editorAction],T),t.PeekImplementationAction=T;var k=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return f(t,e),t.prototype._getDeclarationsAtPosition=function(e,t){return h.getTypeDefinitionsAtPosition(e,t)},t.prototype._getNoResultFoundMessage=function(e){return e&&e.word?n.localize(11,null,e.word):n.localize(12,null)},t.prototype._getMetaTitle=function(e){return e.references.length>1&&n.localize(13,null,e.references.length)},t}(w);t.TypeDefinitionAction=k;var I=F=function(e){function t(){return e.call(this,new C,{id:F.ID,label:n.localize(14,null),alias:"Go to Type Definition",precondition:_.ContextKeyExpr.and(b.EditorContextKeys.hasTypeDefinitionProvider,b.EditorContextKeys.isInEmbeddedEditor.toNegated()),kbOpts:{kbExpr:b.EditorContextKeys.textFocus,primary:0},menuOpts:{group:"navigation",order:1.4}})||this}return f(t,e),t}(k);I.ID="editor.action.goToTypeDefinition",I=F=v([d.editorAction],I),t.GoToTypeDefintionAction=I;var D=W=function(e){function t(){return e.call(this,new C(!1,!0,!1),{id:W.ID,label:n.localize(15,null),alias:"Peek Type Definition",precondition:_.ContextKeyExpr.and(b.EditorContextKeys.hasTypeDefinitionProvider,b.EditorContextKeys.isInEmbeddedEditor.toNegated()),kbOpts:{kbExpr:b.EditorContextKeys.textFocus,primary:0}})||this}return f(t,e),t}(k);D.ID="editor.action.peekTypeDefinition",D=W=v([d.editorAction],D),t.PeekTypeDefinitionAction=D;var O,R,P,A,F,W}),define(d[534],h([0,1,342,18,10,8,89,2,17,25,32,144,3,78,14,23,112,161,150,190]),function(e,t,n,i,o,r,s,a,u,l,c,d,h,p,f,g,m,_,b){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var C=w=function(){function e(e,t,n){var r=this;this.textModelResolverService=t,this.modeService=n,this.toUnhook=[],this.decorations=[],this.editor=e,this.throttler=new i.Throttler;var s=new b.ClickLinkGesture(e);this.toUnhook.push(s),this.toUnhook.push(s.onMouseMoveOrRelevantKeyDown(function(e){var t=e[0],n=e[1];r.startFindDefinition(t,n)})),this.toUnhook.push(s.onExecute(function(e){r.isEnabled(e)&&r.gotoDefinition(e.target,e.hasSideBySideModifier).done(function(){r.removeDecorations()},function(e){r.removeDecorations(),o.onUnexpectedError(e)})})),this.toUnhook.push(s.onCancel(function(){r.removeDecorations(),r.currentWordUnderMouse=null}))}return e.prototype.startFindDefinition=function(e,t){var i=this;if(!this.isEnabled(e,t))return this.currentWordUnderMouse=null,void this.removeDecorations();var s=e.target.position,u=s?this.editor.getModel().getWordAtPosition(s):null;if(!u)return this.currentWordUnderMouse=null,void this.removeDecorations();if(!this.currentWordUnderMouse||this.currentWordUnderMouse.startColumn!==u.startColumn||this.currentWordUnderMouse.endColumn!==u.endColumn||this.currentWordUnderMouse.word!==u.word){this.currentWordUnderMouse=u;var l=new m.EditorState(this.editor,15);this.throttler.queue(function(){return l.validate(i.editor)?i.findDefinition(e.target):r.TPromise.as(null)}).then(function(e){if(e&&e.length&&l.validate(i.editor))if(e.length>1)i.addDecoration(new a.Range(s.lineNumber,u.startColumn,s.lineNumber,u.endColumn),n.localize(0,null,e.length));else{var t=e[0];if(!t.uri)return;i.textModelResolverService.createModelReference(t.uri).then(function(e){if(e.object&&e.object.textEditorModel){var n=e.object.textEditorModel,o=t.range.startLineNumber;if(0!==n.getLineMaxColumn(o)){for(var r=n.getLineFirstNonWhitespaceColumn(o),l=Math.min(n.getLineCount(),o+w.MAX_SOURCE_PREVIEW_LINES),c=o+1,d=r;c0&&(this.decorations=this.editor.deltaDecorations(this.decorations,[]))},e.prototype.isEnabled=function(e,t){return this.editor.getModel()&&e.isNoneOrSingleMouseDown&&e.target.type===l.MouseTargetType.CONTENT_TEXT&&(e.hasTriggerModifier||t&&t.keyCodeIsTriggerKey)&&u.DefinitionProviderRegistry.has(this.editor.getModel())},e.prototype.findDefinition=function(e){return this.editor.getModel()?d.getDefinitionsAtPosition(this.editor.getModel(),e.position):r.TPromise.as(null)},e.prototype.gotoDefinition=function(e,t){var n=this;this.editor.setPosition(e.position);var i=new _.DefinitionAction(new _.DefinitionActionConfig(t,!1,!0,!1),{alias:void 0,label:void 0,id:void 0,precondition:void 0});return this.editor.invokeWithinContext(function(e){return i.run(e,n.editor)})},e.prototype.getId=function(){return w.ID},e.prototype.dispose=function(){this.toUnhook=h.dispose(this.toUnhook)},e}();C.ID="editor.contrib.gotodefinitionwithmouse",C.MAX_SOURCE_PREVIEW_LINES=8,C=w=v([c.editorContribution,y(1,p.ITextModelService),y(2,s.IModeService)],C),f.registerThemingParticipant(function(e,t){var n=e.getColor(g.editorActiveLinkForeground);n&&t.addRule(".monaco-editor .goto-definition-link { color: "+n+" !important; }")});var w}),define(d[535],h([0,1,353,24,8,59,16,31,19,91,12,2,21,13,17,108,169,130,18,10,20]),function(e,t,n,i,o,r,s,a,u,l,c,d,h,p,g,m,_,b,C,w,S){"use strict";function E(e,t){var n=m.getOuterEditor(e);if(n){var i=_.ReferencesController.get(n);i&&i.closeWidget()}}function L(e,t){var n=g.ReferenceProviderRegistry.ordered(e).map(function(n){return C.asWinJsPromise(function(i){return n.provideReferences(e,t,{includeDeclaration:!0},i)}).then(function(e){if(Array.isArray(e))return e},function(e){w.onUnexpectedExternalError(e)})});return o.TPromise.join(n).then(function(e){for(var t=[],n=0,i=e;n1&&n.localize(0,null,e.references.length)}},N=T=function(){function e(e,t,n){n&&m.PeekContext.inPeekEditor.bindTo(t)}return e.prototype.dispose=function(){},e.prototype.getId=function(){return T.ID},e}();N.ID="editor.contrib.referenceController",N=T=v([p.commonEditorContribution,y(1,u.IContextKeyService),y(2,s.optional(m.IPeekViewService))],N),t.ReferenceController=N;var M=function(e){function t(){return e.call(this,{id:"editor.action.referenceSearch.trigger",label:n.localize(1,null),alias:"Find All References",precondition:u.ContextKeyExpr.and(S.EditorContextKeys.hasReferenceProvider,m.PeekContext.notInPeekEditor,S.EditorContextKeys.isInEmbeddedEditor.toNegated()),kbOpts:{kbExpr:S.EditorContextKeys.textFocus,primary:1094},menuOpts:{group:"navigation",order:1.5}})||this}return f(t,e),t.prototype.run=function(e,t){var n=_.ReferencesController.get(t);if(n){var i=t.getSelection(),o=L(t.getModel(),i.getStartPosition()).then(function(e){return new b.ReferencesModel(e)});n.toggleWidget(i,o,x)}},t}(p.EditorAction);M=v([p.editorAction],M),t.ReferenceAction=M;a.CommandsRegistry.registerCommand("editor.action.findReferences",function(e,t,n){if(!(t instanceof i.default))throw new Error("illegal argument, uri");if(!n)throw new Error("illegal argument, position");return e.get(r.IEditorService).openEditor({resource:t}).then(function(e){var t=e.getControl();if(h.isCommonCodeEditor(t)){var i=_.ReferencesController.get(t);if(i){var r=L(t.getModel(),c.Position.lift(n)).then(function(e){return new b.ReferencesModel(e)}),s=new d.Range(n.lineNumber,n.column,n.lineNumber,n.column);return o.TPromise.as(i.toggleWidget(s,r,x))}}})}),a.CommandsRegistry.registerCommand("editor.action.showReferences",{handler:function(e,t,n,s){if(!(t instanceof i.default))throw new Error("illegal argument, uri expected");return e.get(r.IEditorService).openEditor({resource:t}).then(function(e){var t=e.getControl();if(h.isCommonCodeEditor(t)){var i=_.ReferencesController.get(t);if(i)return o.TPromise.as(i.toggleWidget(new d.Range(n.lineNumber,n.column,n.lineNumber,n.column),o.TPromise.as(new b.ReferencesModel(s)),x)).then(function(){return!0})}})},description:{description:"Show references at a position in a file",args:[{name:"uri",description:"The text document in which to show references",constraint:i.default},{name:"position",description:"The position at which to show",constraint:c.Position.isIPosition},{name:"locations",description:"An array of locations.",constraint:Array}]}}),l.KeybindingsRegistry.registerCommandAndKeybindingRule({id:"closeReferenceSearch",weight:p.CommonEditorRegistry.commandWeight(50),primary:9,secondary:[1033],when:u.ContextKeyExpr.and(_.ctxReferenceSearchVisible,u.ContextKeyExpr.not("config.editor.stablePeek")),handler:E}),l.KeybindingsRegistry.registerCommandAndKeybindingRule({id:"closeReferenceSearchEditor",weight:p.CommonEditorRegistry.commandWeight(-101),primary:9,secondary:[1033],when:u.ContextKeyExpr.and(m.PeekContext.inPeekEditor,u.ContextKeyExpr.not("config.editor.stablePeek")),handler:E}),t.provideReferences=L,p.CommonEditorRegistry.registerDefaultLanguageCommand("_executeReferenceProvider",L);var T}),define(d[536],h([0,1,137,198,163,165,502,300,440,441,442,504,444,445,446,421,507,448,450,161,534,509,510,511,454,512,455,514,459,535,516,461,194,518,187,519,466]),function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0})}),define(d[188],h([0,1,3,73,377,71,468,16,403,84,31,47,19,410,105,66,180,72,62,110,41,63,159,160,89,427,53,420,473,140,407,77,83,529]),function(e,t,n,i,o,r,s,a,u,l,c,d,h,p,g,m,v,_,y,b,C,w,S,E,L,x,N,M,T,k,I,D,O,R){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var P;!function(e){function t(e,t){var n=new o(e,t);return r.push(n),n}var n=new l.ServiceCollection,o=function(){function e(e,t){this._serviceId=e,this._factory=t,this._value=null}return Object.defineProperty(e.prototype,"id",{get:function(){return this._serviceId},enumerable:!0,configurable:!0}),e.prototype.get=function(e){if(!this._value){if(e&&(this._value=e[this._serviceId.toString()]),this._value||(this._value=this._factory(e)),!this._value)throw new Error("Service "+this._serviceId+" is missing!");n.set(this._serviceId,this._value)}return this._value},e}();e.LazyStaticService=o;var r=[];e.init=function(e){var t=new l.ServiceCollection;for(var n in e)e.hasOwnProperty(n)&&t.set(a.createDecorator(n),e[n]);r.forEach(function(n){return t.set(n.id,n.get(e))});var i=new u.InstantiationService(t,!0);return t.set(a.IInstantiationService,i),[t,i]},e.instantiationService=t(a.IInstantiationService,function(){return new u.InstantiationService(n,!0)});var s=new k.SimpleConfigurationService;e.configurationService=t(i.IConfigurationService,function(){return s}),e.resourceConfigurationService=t(E.ITextResourceConfigurationService,function(){return new k.SimpleResourceConfigurationService(s)}),e.contextService=t(b.IWorkspaceContextService,function(){return new k.SimpleWorkspaceContextService}),e.telemetryService=t(y.ITelemetryService,function(){return new k.StandaloneTelemetryService}),e.messageService=t(m.IMessageService,function(){return new k.SimpleMessageService}),e.markerService=t(g.IMarkerService,function(){return new p.MarkerService}),e.modeService=t(L.IModeService,function(e){return new x.ModeServiceImpl}),e.modelService=t(N.IModelService,function(t){return new M.ModelServiceImpl(e.markerService.get(t),e.configurationService.get(t))}),e.editorWorkerService=t(w.IEditorWorkerService,function(t){return new S.EditorWorkerServiceImpl(e.modelService.get(t),e.resourceConfigurationService.get(t),e.modeService.get(t))}),e.standaloneThemeService=t(O.IStandaloneThemeService,function(){return new R.StandaloneThemeServiceImpl}),e.codeEditorService=t(C.ICodeEditorService,function(t){return new T.CodeEditorServiceImpl(e.standaloneThemeService.get(t))}),e.progressService=t(v.IProgressService,function(){return new k.SimpleProgressService}),e.storageService=t(_.IStorageService,function(){return _.NullStorageService})}(P=t.StaticServices||(t.StaticServices={}));var A=function(e){function t(t,n){var a=e.call(this)||this,u=P.init(n),l=u[0],p=u[1];a._serviceCollection=l,a._instantiationService=p;var f=a.get(i.IConfigurationService),g=a.get(m.IMessageService),v=a.get(y.ITelemetryService),_=function(e,t){var i=null;return n&&(i=n[e.toString()]),i||(i=t()),a._serviceCollection.set(e,i),i},b=_(h.IContextKeyService,function(){return a._register(new I.ContextKeyService(f))}),C=_(c.ICommandService,function(){return new k.StandaloneCommandService(a._instantiationService)});_(d.IKeybindingService,function(){return a._register(new k.StandaloneKeybindingService(b,C,g,t))});var w=_(r.IContextViewService,function(){return a._register(new s.ContextViewService(t,v,g))});return _(r.IContextMenuService,function(){return a._register(new o.ContextMenuService(t,v,g,w))}),_(D.IMenuService,function(){return new k.SimpleMenuService(C)}),a}return f(t,e),t.prototype.get=function(e){var t=this._serviceCollection.get(e);if(!t)throw new Error("Missing service "+e);return t},t.prototype.set=function(e,t){this._serviceCollection.set(e,t)},t.prototype.has=function(e){return this._serviceCollection.has(e)},t}(n.Disposable);t.DynamicStandaloneServices=A}),define(d[500],h([0,1,21,25,527,51,188,413,67,264,140,17,387,165,59,31,71,16,47,19,41,63,78,70,83,122,49,54,233]),function(e,t,n,i,o,r,s,a,u,l,c,d,h,p,f,g,m,v,_,y,b,C,w,S,E,L,x,N){"use strict";function M(e,t,n){var i=new s.DynamicStandaloneServices(e,t),o=null;i.has(f.IEditorService)||(o=new c.SimpleEditorService,i.set(f.IEditorService,o));var r=null;i.has(w.ITextModelService)||(r=new c.SimpleEditorModelResolverService,i.set(w.ITextModelService,r)),i.has(u.IOpenerService)||i.set(u.IOpenerService,new a.OpenerService(i.get(f.IEditorService),i.get(g.ICommandService)));var l=n(i);return o&&o.setEditor(l),r&&r.setEditor(l),l}function T(e,t,n){return M(e,n,function(n){return new o.StandaloneEditor(e,t,n,n.get(v.IInstantiationService),n.get(b.ICodeEditorService),n.get(g.ICommandService),n.get(y.IContextKeyService),n.get(_.IKeybindingService),n.get(m.IContextViewService),n.get(E.IStandaloneThemeService))})}function k(e){return s.StaticServices.codeEditorService.get().onCodeEditorAdd(function(t){e(t)})}function I(e,t,n){return M(e,n,function(n){return new o.StandaloneDiffEditor(e,t,n,n.get(v.IInstantiationService),n.get(y.IContextKeyService),n.get(_.IKeybindingService),n.get(m.IContextViewService),n.get(C.IEditorWorkerService),n.get(b.ICodeEditorService),n.get(E.IStandaloneThemeService))})}function D(e,t){return new p.DiffNavigator(e,t)}function O(e,t,n){return s.StaticServices.modelService.get().createModel(e,t,n)}function R(e,t,n){if(e=e||"",!t){var i=n?n.path:null,o=e.indexOf("\n"),r=e;return-1!==o&&(r=e.substring(0,o)),O(e,s.StaticServices.modeService.get().getOrCreateModeByFilenameOrFirstLine(i,r),n)}return O(e,s.StaticServices.modeService.get().getOrCreateMode(t),n)}function P(e,t){s.StaticServices.modelService.get().setMode(e,s.StaticServices.modeService.get().getOrCreateMode(t))}function A(e,t,n){e&&s.StaticServices.markerService.get().changeOne(t,e.uri,n)}function F(e){return s.StaticServices.modelService.get().getModel(e)}function W(){return s.StaticServices.modelService.get().getModels()}function B(e){return s.StaticServices.modelService.get().onModelAdded(e)}function V(e){return s.StaticServices.modelService.get().onModelRemoved(e)}function H(e){return s.StaticServices.modelService.get().onModelModeChanged(function(t){e({model:t.model,oldLanguage:t.oldModeId})})}function z(e){return h.createWebWorker(s.StaticServices.modelService.get(),e)}function K(e,t){return l.Colorizer.colorizeElement(s.StaticServices.standaloneThemeService.get(),s.StaticServices.modeService.get(),e,t)}function U(e,t,n){return l.Colorizer.colorize(s.StaticServices.modeService.get(),e,t,n)}function j(e,t,n){return void 0===n&&(n=4),l.Colorizer.colorizeModelLine(e,t,n)}function q(e){var t=d.TokenizationRegistry.get(e);return t||{getInitialState:function(){return S.NULL_STATE},tokenize:function(t,n,i){return S.nullTokenize(e,t,n,i)},tokenize2:void 0}}function G(e,t){s.StaticServices.modeService.get().getOrCreateMode(t);for(var n=q(t),i=e.split(/\r\n|\r|\n/),o=[],r=n.getInitialState(),a=0,u=i.length;a0&&o[r-1]===c)){var d=l.startIndex;0===a?d=0:de.length)&&(t=e.length);for(var i=0,n=new Array(t);i=e.length?{done:!0}:{done:!1,value:e[o++]}}} +throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(n=e[Symbol.iterator]()).next.bind(n)}var n=function(e,t){return e(t={exports:{}},t.exports),t.exports}((function(e){function t(){return{baseUrl:null,breaks:!1,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartLists:!1,smartypants:!1,tokenizer:null,walkTokens:null,xhtml:!1}}e.exports={defaults:{baseUrl:null,breaks:!1,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartLists:!1,smartypants:!1,tokenizer:null,walkTokens:null,xhtml:!1},getDefaults:t,changeDefaults:function(t){e.exports.defaults=t}}})),o=(n.defaults,n.getDefaults,n.changeDefaults,/[&<>"']/),s=/[&<>"']/g,r=/[<>"']|&(?!#?\w+;)/,a=/[<>"']|&(?!#?\w+;)/g,l={"&":"&","<":"<",">":">", +'"':""","'":"'"},d=function(e){return l[e]};var c=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi;function h(e){return e.replace(c,(function(e,t){return"colon"===(t=t.toLowerCase())?":":"#"===t.charAt(0)?"x"===t.charAt(1)?String.fromCharCode(parseInt(t.substring(2),16)):String.fromCharCode(+t.substring(1)):""}))}var u=/(^|[^\[])\^/g;var g=/[^\w:]/g,p=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;var m={},f=/^[^:]+:\/*[^/]*$/,_=/^([^:]+:)[\s\S]*$/,v=/^([^:]+:\/*[^/]*)[\s\S]*$/;function C(e,t){m[" "+e]||(f.test(e)?m[" "+e]=e+"/":m[" "+e]=b(e,"/",!0));var i=-1===(e=m[" "+e]).indexOf(":");return"//"===t.substring(0,2)?i?t:e.replace(_,"$1")+t:"/"===t.charAt(0)?i?t:e.replace(v,"$1")+t:e+t}function b(e,t,i){var n=e.length;if(0===n)return"";for(var o=0;o=0&&"\\"===i[o];)n=!n;return n?"|":" |"})).split(/ \|/),n=0;if(i.length>t)i.splice(t);else for(;i.length1?{type:"space",raw:t[0]}:{raw:"\n"}},t.code=function(e,t){var i=this.rules.block.code.exec(e);if(i){var n=t[t.length-1];if(n&&"paragraph"===n.type)return{raw:i[0],text:i[0].trimRight()};var o=i[0].replace(/^ {4}/gm,"");return{type:"code",raw:i[0],codeBlockStyle:"indented",text:this.options.pedantic?o:R(o,"\n")}}},t.fences=function(e){var t=this.rules.block.fences.exec(e);if(t){var i=t[0],n=function(e,t){var i=e.match(/^(\s+)(?:```)/);if(null===i)return t +;var n=i[1];return t.split("\n").map((function(e){var t=e.match(/^\s+/);return null===t?e:t[0].length>=n.length?e.slice(n.length):e})).join("\n")}(i,t[3]||"");return{type:"code",raw:i,lang:t[2]?t[2].trim():t[2],text:n}}},t.heading=function(e){var t=this.rules.block.heading.exec(e);if(t)return{type:"heading",raw:t[0],depth:t[1].length,text:t[2]}},t.nptable=function(e){var t=this.rules.block.nptable.exec(e);if(t){var i={type:"table",header:T(t[1].replace(/^ *| *\| *$/g,"")),align:t[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:t[3]?t[3].replace(/\n$/,"").split("\n"):[],raw:t[0]};if(i.header.length===i.align.length){var n,o=i.align.length;for(n=0;n ?/gm,"");return{type:"blockquote",raw:t[0],text:i}}},t.list=function(e){var t=this.rules.block.list.exec(e);if(t){for(var i,n,o,s,r,a,l,d=t[0],c=t[2],h=c.length>1,u=")"===c[c.length-1],g={type:"list",raw:d,ordered:h,start:h?+c.slice(0,-1):"",loose:!1,items:[]},p=t[0].match(this.rules.block.item),m=!1,f=p.length,_=0;_1||this.options.smartLists&&o!==c)&&(s=p.slice(_+1).join("\n"),g.raw=g.raw.substring(0,g.raw.length-s.length),_=f-1)),r=m||/\n\n(?!\s*$)/.test(i),_!==f-1&&(m="\n"===i.charAt(i.length-1),r||(r=m)),r&&(g.loose=!0),l=void 0,(a=/^\[[ xX]\] /.test(i))&&(l=" "!==i[1],i=i.replace(/^\[[ xX]\] +/,"")),g.items.push({type:"list_item",raw:d, +task:a,checked:l,loose:r,text:i});return g}},t.html=function(e){var t=this.rules.block.html.exec(e);if(t)return{type:this.options.sanitize?"paragraph":"html",raw:t[0],pre:!this.options.sanitizer&&("pre"===t[1]||"script"===t[1]||"style"===t[1]),text:this.options.sanitize?this.options.sanitizer?this.options.sanitizer(t[0]):O(t[0]):t[0]}},t.def=function(e){var t=this.rules.block.def.exec(e);if(t)return t[3]&&(t[3]=t[3].substring(1,t[3].length-1)),{tag:t[1].toLowerCase().replace(/\s+/g," "),raw:t[0],href:t[2],title:t[3]}},t.table=function(e){var t=this.rules.block.table.exec(e);if(t){var i={type:"table",header:T(t[1].replace(/^ *| *\| *$/g,"")),align:t[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:t[3]?t[3].replace(/\n$/,"").split("\n"):[]};if(i.header.length===i.align.length){i.raw=t[0];var n,o=i.align.length;for(n=0;n/i.test(n[0])&&(t=!1),!i&&/^<(pre|code|kbd|script)(\s|>)/i.test(n[0])?i=!0:i&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(n[0])&&(i=!1),{type:this.options.sanitize?"text":"html",raw:n[0],inLink:t,inRawBlock:i, +text:this.options.sanitize?this.options.sanitizer?this.options.sanitizer(n[0]):O(n[0]):n[0]}},t.link=function(e){var t=this.rules.inline.link.exec(e);if(t){var i=A(t[2],"()");if(i>-1){var n=(0===t[0].indexOf("!")?5:4)+t[1].length+i;t[2]=t[2].substring(0,i),t[0]=t[0].substring(0,n).trim(),t[3]=""}var o=t[2],s="";if(this.options.pedantic){var r=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(o);r?(o=r[1],s=r[3]):s=""}else s=t[3]?t[3].slice(1,-1):"";return P(t,{href:(o=o.trim().replace(/^<([\s\S]*)>$/,"$1"))?o.replace(this.rules.inline._escapes,"$1"):o,title:s?s.replace(this.rules.inline._escapes,"$1"):s},t[0])}},t.reflink=function(e,t){var i;if((i=this.rules.inline.reflink.exec(e))||(i=this.rules.inline.nolink.exec(e))){var n=(i[2]||i[1]).replace(/\s+/g," ");if(!(n=t[n.toLowerCase()])||!n.href){var o=i[0].charAt(0);return{type:"text",raw:o,text:o}}return P(i,n,i[0])}},t.strong=function(e,t,i){void 0===i&&(i="");var n=this.rules.inline.strong.start.exec(e) +;if(n&&(!n[1]||n[1]&&(""===i||this.rules.inline.punctuation.exec(i)))){t=t.slice(-1*e.length);var o,s="**"===n[0]?this.rules.inline.strong.endAst:this.rules.inline.strong.endUnd;for(s.lastIndex=0;null!=(n=s.exec(t));)if(o=this.rules.inline.strong.middle.exec(t.slice(0,n.index+3)))return{type:"strong",raw:e.slice(0,o[0].length),text:e.slice(2,o[0].length-2)}}},t.em=function(e,t,i){void 0===i&&(i="");var n=this.rules.inline.em.start.exec(e);if(n&&(!n[1]||n[1]&&(""===i||this.rules.inline.punctuation.exec(i)))){t=t.slice(-1*e.length);var o,s="*"===n[0]?this.rules.inline.em.endAst:this.rules.inline.em.endUnd;for(s.lastIndex=0;null!=(n=s.exec(t));)if(o=this.rules.inline.em.middle.exec(t.slice(0,n.index+2)))return{type:"em",raw:e.slice(0,o[0].length),text:e.slice(1,o[0].length-1)}}},t.codespan=function(e){var t=this.rules.inline.code.exec(e);if(t){var i=t[2].replace(/\n/g," "),n=/[^ ]/.test(i),o=i.startsWith(" ")&&i.endsWith(" ");return n&&o&&(i=i.substring(1,i.length-1)),i=O(i,!0),{type:"codespan",raw:t[0],text:i}} +},t.br=function(e){var t=this.rules.inline.br.exec(e);if(t)return{type:"br",raw:t[0]}},t.del=function(e){var t=this.rules.inline.del.exec(e);if(t)return{type:"del",raw:t[0],text:t[1]}},t.autolink=function(e,t){var i,n,o=this.rules.inline.autolink.exec(e);if(o)return n="@"===o[2]?"mailto:"+(i=O(this.options.mangle?t(o[1]):o[1])):i=O(o[1]),{type:"link",raw:o[0],text:i,href:n,tokens:[{type:"text",raw:i,text:i}]}},t.url=function(e,t){var i;if(i=this.rules.inline.url.exec(e)){var n,o;if("@"===i[2])o="mailto:"+(n=O(this.options.mangle?t(i[0]):i[0]));else{var s;do{s=i[0],i[0]=this.rules.inline._backpedal.exec(i[0])[0]}while(s!==i[0]);n=O(i[0]),o="www."===i[1]?"http://"+n:n}return{type:"link",raw:i[0],text:n,href:o,tokens:[{type:"text",raw:n,text:n}]}}},t.inlineText=function(e,t,i){var n,o=this.rules.inline.text.exec(e);if(o)return n=t?this.options.sanitize?this.options.sanitizer?this.options.sanitizer(o[0]):O(o[0]):o[0]:O(this.options.smartypants?i(o[0]):o[0]),{type:"text",raw:o[0],text:n}},e}(),W=L,B=y,V=x,z={ +newline:/^\n+/,code:/^( {4}[^\n]+\n*)+/,fences:/^ {0,3}(`{3,}(?=[^`\n]*\n)|~{3,})([^\n]*)\n(?:|([\s\S]*?)\n)(?: {0,3}\1[~`]* *(?:\n+|$)|$)/,hr:/^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\* *){3,})(?:\n+|$)/,heading:/^ {0,3}(#{1,6}) +([^\n]*?)(?: +#+)? *(?:\n+|$)/,blockquote:/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( {0,3})(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,html:"^ {0,3}(?:<(script|pre|style)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:\\n{2,}|$)|<(?!script|pre|style)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:\\n{2,}|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:\\n{2,}|$))",def:/^ {0,3}\[(label)\]: *\n? *]+)>?(?:(?: +\n? *| *\n *)(title))? *(?:\n+|$)/,nptable:W,table:W,lheading:/^([^\n]+)\n {0,3}(=+|-+) *(?:\n+|$)/, +_paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html)[^\n]+)*)/,text:/^[^\n]+/,_label:/(?!\s*\])(?:\\[\[\]]|[^\[\]])+/,_title:/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/};z.def=B(z.def).replace("label",z._label).replace("title",z._title).getRegex(),z.bullet=/(?:[*+-]|\d{1,9}[.)])/,z.item=/^( *)(bull) ?[^\n]*(?:\n(?!\1bull ?)[^\n]*)*/,z.item=B(z.item,"gm").replace(/bull/g,z.bullet).getRegex(),z.list=B(z.list).replace(/bull/g,z.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+z.def.source+")").getRegex(),z._tag="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",z._comment=/|$)/, +z.html=B(z.html,"i").replace("comment",z._comment).replace("tag",z._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),z.paragraph=B(z._paragraph).replace("hr",z.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|!--)").replace("tag",z._tag).getRegex(),z.blockquote=B(z.blockquote).replace("paragraph",z.paragraph).getRegex(),z.normal=V({},z),z.gfm=V({},z.normal,{nptable:"^ *([^|\\n ].*\\|.*)\\n *([-:]+ *\\|[-| :]*)(?:\\n((?:(?!\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)",table:"^ *\\|(.+)\\n *\\|?( *[-:]+[-| :]*)(?:\\n *((?:(?!\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)"}), +z.gfm.nptable=B(z.gfm.nptable).replace("hr",z.hr).replace("heading"," {0,3}#{1,6} ").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|!--)").replace("tag",z._tag).getRegex(),z.gfm.table=B(z.gfm.table).replace("hr",z.hr).replace("heading"," {0,3}#{1,6} ").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|!--)").replace("tag",z._tag).getRegex(),z.pedantic=V({},z.normal,{ +html:B("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",z._comment).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^ *(#{1,6}) *([^\n]+?) *(?:#+ *)?(?:\n+|$)/,fences:W,paragraph:B(z.normal._paragraph).replace("hr",z.hr).replace("heading"," *#{1,6} *[^\n]").replace("lheading",z.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()});var H={escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:W,tag:"^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^", +link:/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(?!\s*\])((?:\\[\[\]]?|[^\[\]\\])+)\]/,nolink:/^!?\[(?!\s*\])((?:\[[^\[\]]*\]|\\[\[\]]|[^\[\]])*)\](?:\[\])?/,reflinkSearch:"reflink|nolink(?!\\()",strong:{start:/^(?:(\*\*(?=[*punctuation]))|\*\*)(?![\s])|__/,middle:/^\*\*(?:(?:(?!overlapSkip)(?:[^*]|\\\*)|overlapSkip)|\*(?:(?!overlapSkip)(?:[^*]|\\\*)|overlapSkip)*?\*)+?\*\*$|^__(?![\s])((?:(?:(?!overlapSkip)(?:[^_]|\\_)|overlapSkip)|_(?:(?!overlapSkip)(?:[^_]|\\_)|overlapSkip)*?_)+?)__$/,endAst:/[^punctuation\s]\*\*(?!\*)|[punctuation]\*\*(?!\*)(?:(?=[punctuation\s]|$))/,endUnd:/[^\s]__(?!_)(?:(?=[punctuation\s])|$)/},em:{start:/^(?:(\*(?=[punctuation]))|\*)(?![*\s])|_/,middle:/^\*(?:(?:(?!overlapSkip)(?:[^*]|\\\*)|overlapSkip)|\*(?:(?!overlapSkip)(?:[^*]|\\\*)|overlapSkip)*?\*)+?\*$|^_(?![_\s])(?:(?:(?!overlapSkip)(?:[^_]|\\_)|overlapSkip)|_(?:(?!overlapSkip)(?:[^_]|\\_)|overlapSkip)*?_)+?_$/,endAst:/[^punctuation\s]\*(?!\*)|[punctuation]\*(?!\*)(?:(?=[punctuation\s]|$))/, +endUnd:/[^\s]_(?!_)(?:(?=[punctuation\s])|$)/},code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,br:/^( {2,}|\\)\n(?!\s*$)/,del:W,text:/^(`+|[^`])(?:[\s\S]*?(?:(?=[\\?@\\[\\]`^{|}~"};H.punctuation=B(H.punctuation).replace(/punctuation/g,H._punctuation).getRegex(),H._blockSkip="\\[[^\\]]*?\\]\\([^\\)]*?\\)|`[^`]*?`|<[^>]*?>",H._overlapSkip="__[^_]*?__|\\*\\*\\[^\\*\\]*?\\*\\*",H._comment=B(z._comment).replace("(?:--\x3e|$)","--\x3e").getRegex(),H.em.start=B(H.em.start).replace(/punctuation/g,H._punctuation).getRegex(),H.em.middle=B(H.em.middle).replace(/punctuation/g,H._punctuation).replace(/overlapSkip/g,H._overlapSkip).getRegex(),H.em.endAst=B(H.em.endAst,"g").replace(/punctuation/g,H._punctuation).getRegex(),H.em.endUnd=B(H.em.endUnd,"g").replace(/punctuation/g,H._punctuation).getRegex(),H.strong.start=B(H.strong.start).replace(/punctuation/g,H._punctuation).getRegex(), +H.strong.middle=B(H.strong.middle).replace(/punctuation/g,H._punctuation).replace(/blockSkip/g,H._blockSkip).getRegex(),H.strong.endAst=B(H.strong.endAst,"g").replace(/punctuation/g,H._punctuation).getRegex(),H.strong.endUnd=B(H.strong.endUnd,"g").replace(/punctuation/g,H._punctuation).getRegex(),H.blockSkip=B(H._blockSkip,"g").getRegex(),H.overlapSkip=B(H._overlapSkip,"g").getRegex(),H._escapes=/\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g,H._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,H._email=/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/,H.autolink=B(H.autolink).replace("scheme",H._scheme).replace("email",H._email).getRegex(),H._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/,H.tag=B(H.tag).replace("comment",H._comment).replace("attribute",H._attribute).getRegex(),H._label=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,H._href=/<(?:\\[<>]?|[^\s<>\\])*>|[^\s\x00-\x1f]*/, +H._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/,H.link=B(H.link).replace("label",H._label).replace("href",H._href).replace("title",H._title).getRegex(),H.reflink=B(H.reflink).replace("label",H._label).getRegex(),H.reflinkSearch=B(H.reflinkSearch,"g").replace("reflink",H.reflink).replace("nolink",H.nolink).getRegex(),H.normal=V({},H),H.pedantic=V({},H.normal,{strong:{start:/^__|\*\*/,middle:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,endAst:/\*\*(?!\*)/g,endUnd:/__(?!_)/g},em:{start:/^_|\*/,middle:/^()\*(?=\S)([\s\S]*?\S)\*(?!\*)|^_(?=\S)([\s\S]*?\S)_(?!_)/,endAst:/\*(?!\*)/g,endUnd:/_(?!_)/g},link:B(/^!?\[(label)\]\((.*?)\)/).replace("label",H._label).getRegex(),reflink:B(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",H._label).getRegex()}),H.gfm=V({},H.normal,{escape:B(H.escape).replace("])","~|])").getRegex(),_extended_email:/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/, +url:/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,_backpedal:/(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,del:/^~+(?=\S)([\s\S]*?\S)~+/,text:/^(`+|[^`])(?:[\s\S]*?(?:(?=[\\.5&&(i="x"+i.toString(16)),n+="&#"+i+";" +;return n}var Y=function(){function t(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||U,this.options.tokenizer=this.options.tokenizer||new F,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options;var t={block:$.normal,inline:j.normal};this.options.pedantic?(t.block=$.pedantic,t.inline=j.pedantic):this.options.gfm&&(t.block=$.gfm,this.options.breaks?t.inline=j.breaks:t.inline=j.gfm),this.tokenizer.rules=t}t.lex=function(e,i){return new t(i).lex(e)};var i,n,o,s=t.prototype;return s.lex=function(e){return e=e.replace(/\r\n|\r/g,"\n").replace(/\t/g," "),this.blockTokens(e,this.tokens,!0),this.inline(this.tokens),this.tokens},s.blockTokens=function(e,t,i){var n,o,s,r;for(void 0===t&&(t=[]),void 0===i&&(i=!0),e=e.replace(/^ +$/gm,"");e;)if(n=this.tokenizer.space(e))e=e.substring(n.raw.length),n.type&&t.push(n);else if(n=this.tokenizer.code(e,t))e=e.substring(n.raw.length),n.type?t.push(n):((r=t[t.length-1]).raw+="\n"+n.raw, +r.text+="\n"+n.text);else if(n=this.tokenizer.fences(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.heading(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.nptable(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.hr(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.blockquote(e))e=e.substring(n.raw.length),n.tokens=this.blockTokens(n.text,[],i),t.push(n);else if(n=this.tokenizer.list(e)){for(e=e.substring(n.raw.length),s=n.items.length,o=0;o0)for(;null!=(r=this.tokenizer.rules.inline.reflinkSearch.exec(a));)l.includes(r[0].slice(r[0].lastIndexOf("[")+1,-1))&&(a=a.slice(0,r.index)+"["+"a".repeat(r[0].length-2)+"]"+a.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;null!=(r=this.tokenizer.rules.inline.blockSkip.exec(a));)a=a.slice(0,r.index)+"["+"a".repeat(r[0].length-2)+"]"+a.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;e;)if(s=this.tokenizer.escape(e))e=e.substring(s.raw.length),t.push(s);else if(s=this.tokenizer.tag(e,i,n))e=e.substring(s.raw.length),i=s.inLink,n=s.inRawBlock,t.push(s);else if(s=this.tokenizer.link(e))e=e.substring(s.raw.length),"link"===s.type&&(s.tokens=this.inlineTokens(s.text,[],!0,n)),t.push(s);else if(s=this.tokenizer.reflink(e,this.tokens.links))e=e.substring(s.raw.length), +"link"===s.type&&(s.tokens=this.inlineTokens(s.text,[],!0,n)),t.push(s);else if(s=this.tokenizer.strong(e,a,o))e=e.substring(s.raw.length),s.tokens=this.inlineTokens(s.text,[],i,n),t.push(s);else if(s=this.tokenizer.em(e,a,o))e=e.substring(s.raw.length),s.tokens=this.inlineTokens(s.text,[],i,n),t.push(s);else if(s=this.tokenizer.codespan(e))e=e.substring(s.raw.length),t.push(s);else if(s=this.tokenizer.br(e))e=e.substring(s.raw.length),t.push(s);else if(s=this.tokenizer.del(e))e=e.substring(s.raw.length),s.tokens=this.inlineTokens(s.text,[],i,n),t.push(s);else if(s=this.tokenizer.autolink(e,G))e=e.substring(s.raw.length),t.push(s);else if(i||!(s=this.tokenizer.url(e,G))){if(s=this.tokenizer.inlineText(e,n,q))e=e.substring(s.raw.length),o=s.raw.slice(-1),t.push(s);else if(e){var d="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(d);break}throw new Error(d)}}else e=e.substring(s.raw.length),t.push(s);return t},i=t,o=[{key:"rules",get:function(){return{block:$,inline:j}}}], +(n=null)&&e(i.prototype,n),o&&e(i,o),t}(),Z=n.defaults,X=E,Q=S,J=function(){function e(e){this.options=e||Z}var t=e.prototype;return t.code=function(e,t,i){var n=(t||"").match(/\S*/)[0];if(this.options.highlight){var o=this.options.highlight(e,n);null!=o&&o!==e&&(i=!0,e=o)}return n?'
        '+(i?e:Q(e,!0))+"
        \n":"
        "+(i?e:Q(e,!0))+"
        \n"},t.blockquote=function(e){return"
        \n"+e+"
        \n"},t.html=function(e){return e},t.heading=function(e,t,i,n){return this.options.headerIds?"'+e+"\n":""+e+"\n"},t.hr=function(){return this.options.xhtml?"
        \n":"
        \n"},t.list=function(e,t,i){var n=t?"ol":"ul";return"<"+n+(t&&1!==i?' start="'+i+'"':"")+">\n"+e+"\n"},t.listitem=function(e){return"
      • "+e+"
      • \n"},t.checkbox=function(e){return" "}, +t.paragraph=function(e){return"

        "+e+"

        \n"},t.table=function(e,t){return t&&(t=""+t+""),"\n\n"+e+"\n"+t+"
        \n"},t.tablerow=function(e){return"\n"+e+"\n"},t.tablecell=function(e,t){var i=t.header?"th":"td";return(t.align?"<"+i+' align="'+t.align+'">':"<"+i+">")+e+"\n"},t.strong=function(e){return""+e+""},t.em=function(e){return""+e+""},t.codespan=function(e){return""+e+""},t.br=function(){return this.options.xhtml?"
        ":"
        "},t.del=function(e){return""+e+""},t.link=function(e,t,i){if(null===(e=X(this.options.sanitize,this.options.baseUrl,e)))return i;var n='"},t.image=function(e,t,i){if(null===(e=X(this.options.sanitize,this.options.baseUrl,e)))return i;var n=''+i+'":">"},t.text=function(e){return e},e}(),ee=function(){function e(){} +var t=e.prototype;return t.strong=function(e){return e},t.em=function(e){return e},t.codespan=function(e){return e},t.del=function(e){return e},t.html=function(e){return e},t.text=function(e){return e},t.link=function(e,t,i){return""+i},t.image=function(e,t,i){return""+i},t.br=function(){return""},e}(),te=function(){function e(){this.seen={}}var t=e.prototype;return t.serialize=function(e){return e.toLowerCase().trim().replace(/<[!\/a-z].*?>/gi,"").replace(/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g,"").replace(/\s/g,"-")},t.getNextSafeSlug=function(e,t){var i=e,n=0;if(this.seen.hasOwnProperty(i)){n=this.seen[e];do{i=e+"-"+ ++n}while(this.seen.hasOwnProperty(i))}return t||(this.seen[e]=n,this.seen[i]=0),i},t.slug=function(e,t){void 0===t&&(t={});var i=this.serialize(e);return this.getNextSafeSlug(i,t.dryrun)},e}(),ie=n.defaults,ne=w,oe=function(){function e(e){this.options=e||ie,this.options.renderer=this.options.renderer||new J,this.renderer=this.options.renderer, +this.renderer.options=this.options,this.textRenderer=new ee,this.slugger=new te}e.parse=function(t,i){return new e(i).parse(t)};var t=e.prototype;return t.parse=function(e,t){void 0===t&&(t=!0);var i,n,o,s,r,a,l,d,c,h,u,g,p,m,f,_,v,C,b="",S=e.length;for(i=0;i0&&"text"===f.tokens[0].type?(f.tokens[0].text=C+" "+f.tokens[0].text,f.tokens[0].tokens&&f.tokens[0].tokens.length>0&&"text"===f.tokens[0].tokens[0].type&&(f.tokens[0].tokens[0].text=C+" "+f.tokens[0].tokens[0].text)):f.tokens.unshift({type:"text",text:C}):m+=C),m+=this.parse(f.tokens,p),c+=this.renderer.listitem(m,v,_);b+=this.renderer.list(c,u,g);continue;case"html":b+=this.renderer.html(h.text);continue;case"paragraph":b+=this.renderer.paragraph(this.parseInline(h.tokens));continue;case"text":for(c=h.tokens?this.parseInline(h.tokens):h.text;i+1An error occurred:

        "+ae(e.message+"",!0)+"
        ";throw e}}return he.options=he.setOptions=function(e){return se(he.defaults,e),de(he.defaults),he}, +he.getDefaults=le,he.defaults=ce,he.use=function(e){var t=se({},e);if(e.renderer&&function(){var i=he.defaults.renderer||new J,n=function(t){var n=i[t];i[t]=function(){for(var o=arguments.length,s=new Array(o),r=0;rthis._limit&&this._initialize(e.slice(e.length-this._limit))}_currentPosition(){const e=this._navigator.current();return e?this._elements.indexOf(e):-1}_initialize(e){this._history=new Set;for(const t of e)this._history.add(t)}get _elements(){const e=[];return this._history.forEach(t=>e.push(t)),e}}})),define(t[109],i([0,1]),(function(e,t){"use strict" +;Object.defineProperty(t,"__esModule",{value:!0}),t.MovingAverage=t.clamp=void 0,t.clamp=function(e,t,i){return Math.min(Math.max(e,t),i)};t.MovingAverage=class{constructor(){this._n=1,this._val=0}update(e){return this._val=this._val+(e-this._val)/this._n,this._n+=1,this}}})),define(t[16],i([0,1]),(function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isLittleEndian=t.OS=t.setImmediate=t.globals=t.isIOS=t.isWeb=t.isNative=t.isLinux=t.isMacintosh=t.isWindows=void 0;let i=!1,n=!1,o=!1,s=!1,r=!1,a=!1,l=void 0,d="en",c=void 0,h=void 0;const u="undefined"!=typeof process&&void 0!==process.versions&&void 0!==process.versions.electron&&"renderer"===process.type;if("object"!=typeof navigator||u){if("object"==typeof process){i="win32"===process.platform,n="darwin"===process.platform,o="linux"===process.platform,l="en",d="en";const e=process.env.VSCODE_NLS_CONFIG;if(e)try{const t=JSON.parse(e),i=t.availableLanguages["*"];l=t.locale,d=i||"en",c=t._translationsConfigFile}catch(e){}s=!0} +}else i=(h=navigator.userAgent).indexOf("Windows")>=0,n=h.indexOf("Macintosh")>=0,a=(h.indexOf("Macintosh")>=0||h.indexOf("iPad")>=0||h.indexOf("iPhone")>=0)&&!!navigator.maxTouchPoints&&navigator.maxTouchPoints>0,o=h.indexOf("Linux")>=0,r=!0,d=l=navigator.language;let g=0;n?g=1:i?g=3:o&&(g=2),t.isWindows=i,t.isMacintosh=n,t.isLinux=o,t.isNative=s,t.isWeb=r,t.isIOS=a;const p="object"==typeof self?self:"object"==typeof global?global:{};t.globals=p,t.setImmediate=function(){if(t.globals.setImmediate)return t.globals.setImmediate.bind(t.globals);if("function"==typeof t.globals.postMessage&&!t.globals.importScripts){let e=[];t.globals.addEventListener("message",t=>{if(t.data&&t.data.vscodeSetImmediateId)for(let i=0,n=e.length;i{const o=++i;e.push({id:o,callback:n}),t.globals.postMessage({vscodeSetImmediateId:o},"*")}} +if("undefined"!=typeof process&&"function"==typeof process.nextTick)return process.nextTick.bind(process);const e=Promise.resolve();return t=>e.then(t)}(),t.OS=n||a?2:i?1:3;let m=!0,f=!1;t.isLittleEndian=function(){if(!f){f=!0;const e=new Uint8Array(2);e[0]=1,e[1]=2;const t=new Uint16Array(e.buffer);m=513===t[0]}return m}})),define(t[98],i([0,1,36,16]),(function(e,t,i,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BrowserFeatures=void 0,t.BrowserFeatures={clipboard:{writeText:n.isNative||document.queryCommandSupported&&document.queryCommandSupported("copy")||!!(navigator&&navigator.clipboard&&navigator.clipboard.writeText),readText:n.isNative||!!(navigator&&navigator.clipboard&&navigator.clipboard.readText),richText:(()=>{if(i.isEdge){let e=navigator.userAgent.indexOf("Edge/"),t=parseInt(navigator.userAgent.substring(e+5,navigator.userAgent.indexOf(".",e)),10);if(!t||t>=12&&t<=16)return!1}return!0})()},keyboard:(()=>n.isNative||i.isStandalone?0:navigator.keyboard||i.isSafari?1:2)(), +touch:"ontouchstart"in window||navigator.maxTouchPoints>0||window.navigator.msMaxTouchPoints>0,pointerEvents:window.PointerEvent&&("ontouchstart"in window||window.navigator.maxTouchPoints>0||navigator.maxTouchPoints>0||window.navigator.msMaxTouchPoints>0)}})),define(t[53],i([0,1,36,39,16]),(function(e,t,i,n,o){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StandardKeyboardEvent=void 0;let s=new Array(230),r=new Array(112);!function(){for(let e=0;e"/",env:Object.create(null),get platform(){return i.isWindows?"win32":i.isMacintosh?"darwin":"linux"},nextTick:e=>i.setImmediate(e)}:process;t.cwd=n.cwd,t.env=n.env,t.platform=n.platform})),define(t[63],i([0,1,271]),(function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.sep=t.extname=t.basename=t.dirname=t.relative=t.resolve=t.normalize=t.posix=t.win32=void 0;const n=65,o=97,s=90,r=122,a=46,l=47,d=92;class c extends Error{constructor(e,t,i){let n +;"string"==typeof t&&0===t.indexOf("not ")?(n="must not be",t=t.replace(/^not /,"")):n="must be";const o=-1!==e.indexOf(".")?"property":"argument";let s=`The "${e}" ${o} ${n} of type ${t}`;super(s+=`. Received type ${typeof i}`),this.code="ERR_INVALID_ARG_TYPE"}}function h(e,t){if("string"!=typeof e)throw new c(t,"string",e)}function u(e){return e===l||e===d}function g(e){return e===l}function p(e){return e>=n&&e<=s||e>=o&&e<=r}function m(e,t,i,n){let o="",s=0,r=-1,d=0,c=0;for(let h=0;h<=e.length;++h){if(h2){const e=o.lastIndexOf(i);-1===e?(o="",s=0):s=(o=o.slice(0,e)).length-1-o.lastIndexOf(i),r=h,d=0;continue}if(0!==o.length){o="",s=0,r=h,d=0;continue}}t&&(o+=o.length>0?`${i}..`:"..",s=2)}else o.length>0?o+=`${i}${e.slice(r+1,h)}`:o=e.slice(r+1,h),s=h-r-1;r=h,d=0}else c===a&&-1!==d?++d:d=-1}return o}function f(e,t){ +if(null===t||"object"!=typeof t)throw new c("pathObject","Object",t);const i=t.dir||t.root,n=t.base||`${t.name||""}${t.ext||""}`;return i?i===t.root?`${i}${n}`:`${i}${e}${n}`:n}t.win32={resolve(...e){let t="",n="",o=!1;for(let s=e.length-1;s>=-1;s--){let r;if(s>=0){if(h(r=e[s],"path"),0===r.length)continue}else 0===t.length?r=i.cwd():(void 0===(r=i.env[`=${t}`]||i.cwd())||r.slice(0,2).toLowerCase()!==t.toLowerCase()&&r.charCodeAt(2)===d)&&(r=`${t}\\`);const a=r.length;let l=0,c="",g=!1;const m=r.charCodeAt(0);if(1===a)u(m)&&(l=1,g=!0);else if(u(m))if(g=!0,u(r.charCodeAt(1))){let e=2,t=e;for(;e2&&u(r.charCodeAt(2))&&(g=!0,l=3));if(c.length>0)if(t.length>0){if(c.toLowerCase()!==t.toLowerCase())continue}else t=c;if(o){if(t.length>0)break +}else if(n=`${r.slice(l)}\\${n}`,o=g,g&&t.length>0)break}return n=m(n,!o,"\\",u),o?`${t}\\${n}`:`${t}${n}`||"."},normalize(e){h(e,"path");const t=e.length;if(0===t)return".";let i,n=0,o=!1;const s=e.charCodeAt(0);if(1===t)return g(s)?"\\":e;if(u(s))if(o=!0,u(e.charCodeAt(1))){let o=2,s=o;for(;o2&&u(e.charCodeAt(2))&&(o=!0,n=3));let r=n0&&u(e.charCodeAt(t-1))&&(r+="\\"),void 0===i?o?`\\${r}`:r:o?`${i}\\${r}`:`${i}${r}`},isAbsolute(e){h(e,"path");const t=e.length;if(0===t)return!1;const i=e.charCodeAt(0);return u(i)||t>2&&p(i)&&58===e.charCodeAt(1)&&u(e.charCodeAt(2))},join(...e){if(0===e.length)return".";let i,n +;for(let t=0;t0&&(void 0===i?i=n=o:i+=`\\${o}`)}if(void 0===i)return".";let o=!0,s=0;if("string"==typeof n&&u(n.charCodeAt(0))){++s;const e=n.length;e>1&&u(n.charCodeAt(1))&&(++s,e>2&&(u(n.charCodeAt(2))?++s:o=!1))}if(o){for(;s=2&&(i=`\\${i.slice(s)}`)}return t.win32.normalize(i)},relative(e,i){if(h(e,"from"),h(i,"to"),e===i)return"";const n=t.win32.resolve(e),o=t.win32.resolve(i);if(n===o)return"";if((e=n.toLowerCase())===(i=o.toLowerCase()))return"";let s=0;for(;ss&&e.charCodeAt(r-1)===d;)r--;const a=r-s;let l=0;for(;ll&&i.charCodeAt(c-1)===d;)c--;const u=c-l,g=ag){if(i.charCodeAt(l+m)===d)return o.slice(l+m+1);if(2===m)return o.slice(l+m)} +a>g&&(e.charCodeAt(s+m)===d?p=m:2===m&&(p=3)),-1===p&&(p=0)}let f="";for(m=s+p+1;m<=r;++m)m!==r&&e.charCodeAt(m)!==d||(f+=0===f.length?"..":"\\..");return l+=p,f.length>0?`${f}${o.slice(l,c)}`:(o.charCodeAt(l)===d&&++l,o.slice(l,c))},toNamespacedPath(e){if("string"!=typeof e)return e;if(0===e.length)return"";const i=t.win32.resolve(e);if(i.length<=2)return e;if(i.charCodeAt(0)===d){if(i.charCodeAt(1)===d){const e=i.charCodeAt(2);if(63!==e&&e!==a)return`\\\\?\\UNC\\${i.slice(2)}`}}else if(p(i.charCodeAt(0))&&58===i.charCodeAt(1)&&i.charCodeAt(2)===d)return`\\\\?\\${i}`;return e},dirname(e){h(e,"path");const t=e.length;if(0===t)return".";let i=-1,n=0;const o=e.charCodeAt(0);if(1===t)return u(o)?e:".";if(u(o)){if(i=n=1,u(e.charCodeAt(1))){let o=2,s=o;for(;o2&&u(e.charCodeAt(2))?3:2);let s=-1,r=!0 +;for(let i=t-1;i>=n;--i)if(u(e.charCodeAt(i))){if(!r){s=i;break}}else r=!1;if(-1===s){if(-1===i)return".";s=i}return e.slice(0,s)},basename(e,t){void 0!==t&&h(t,"ext"),h(e,"path");let i,n=0,o=-1,s=!0;if(e.length>=2&&p(e.charCodeAt(0))&&58===e.charCodeAt(1)&&(n=2),void 0!==t&&t.length>0&&t.length<=e.length){if(t===e)return"";let r=t.length-1,a=-1;for(i=e.length-1;i>=n;--i){const l=e.charCodeAt(i);if(u(l)){if(!s){n=i+1;break}}else-1===a&&(s=!1,a=i+1),r>=0&&(l===t.charCodeAt(r)?-1==--r&&(o=i):(r=-1,o=a))}return n===o?o=a:-1===o&&(o=e.length),e.slice(n,o)}for(i=e.length-1;i>=n;--i)if(u(e.charCodeAt(i))){if(!s){n=i+1;break}}else-1===o&&(s=!1,o=i+1);return-1===o?"":e.slice(n,o)},extname(e){h(e,"path");let t=0,i=-1,n=0,o=-1,s=!0,r=0;e.length>=2&&58===e.charCodeAt(1)&&p(e.charCodeAt(0))&&(t=n=2);for(let l=e.length-1;l>=t;--l){const t=e.charCodeAt(l);if(u(t)){if(!s){n=l+1;break}}else-1===o&&(s=!1,o=l+1),t===a?-1===i?i=l:1!==r&&(r=1):-1!==i&&(r=-1)}return-1===i||-1===o||0===r||1===r&&i===o-1&&i===n+1?"":e.slice(i,o)}, +format:f.bind(null,"\\"),parse(e){h(e,"path");const t={root:"",dir:"",base:"",ext:"",name:""};if(0===e.length)return t;const i=e.length;let n=0,o=e.charCodeAt(0);if(1===i)return u(o)?(t.root=t.dir=e,t):(t.base=t.name=e,t);if(u(o)){if(n=1,u(e.charCodeAt(1))){let t=2,o=t;for(;t0&&(t.root=e.slice(0,n));let s=-1,r=n,l=-1,d=!0,c=e.length-1,g=0;for(;c>=n;--c)if(u(o=e.charCodeAt(c))){if(!d){r=c+1;break}}else-1===l&&(d=!1,l=c+1),o===a?-1===s?s=c:1!==g&&(g=1):-1!==s&&(g=-1);return-1!==l&&(-1===s||0===g||1===g&&s===l-1&&s===r+1?t.base=t.name=e.slice(r,l):(t.name=e.slice(r,s),t.base=e.slice(r,l),t.ext=e.slice(s,l))),t.dir=r>0&&r!==n?e.slice(0,r-1):t.root,t},sep:"\\",delimiter:";",win32:null,posix:null},t.posix={resolve(...e){ +let t="",n=!1;for(let o=e.length-1;o>=-1&&!n;o--){const s=o>=0?e[o]:i.cwd();h(s,"path"),0!==s.length&&(t=`${s}/${t}`,n=s.charCodeAt(0)===l)}return t=m(t,!n,"/",g),n?`/${t}`:t.length>0?t:"."},normalize(e){if(h(e,"path"),0===e.length)return".";const t=e.charCodeAt(0)===l,i=e.charCodeAt(e.length-1)===l;return 0===(e=m(e,!t,"/",g)).length?t?"/":i?"./":".":(i&&(e+="/"),t?`/${e}`:e)},isAbsolute:e=>(h(e,"path"),e.length>0&&e.charCodeAt(0)===l),join(...e){if(0===e.length)return".";let i;for(let t=0;t0&&(void 0===i?i=n:i+=`/${n}`)}return void 0===i?".":t.posix.normalize(i)},relative(e,i){if(h(e,"from"),h(i,"to"),e===i)return"";if((e=t.posix.resolve(e))===(i=t.posix.resolve(i)))return"";const n=e.length,o=n-1,s=i.length-1,r=or){if(i.charCodeAt(1+d)===l)return i.slice(1+d+1);if(0===d)return i.slice(1+d)}else o>r&&(e.charCodeAt(1+d)===l?a=d:0===d&&(a=0)) +;let c="";for(d=1+a+1;d<=n;++d)d!==n&&e.charCodeAt(d)!==l||(c+=0===c.length?"..":"/..");return`${c}${i.slice(1+a)}`},toNamespacedPath:e=>e,dirname(e){if(h(e,"path"),0===e.length)return".";const t=e.charCodeAt(0)===l;let i=-1,n=!0;for(let t=e.length-1;t>=1;--t)if(e.charCodeAt(t)===l){if(!n){i=t;break}}else n=!1;return-1===i?t?"/":".":t&&1===i?"//":e.slice(0,i)},basename(e,t){void 0!==t&&h(t,"ext"),h(e,"path");let i,n=0,o=-1,s=!0;if(void 0!==t&&t.length>0&&t.length<=e.length){if(t===e)return"";let r=t.length-1,a=-1;for(i=e.length-1;i>=0;--i){const d=e.charCodeAt(i);if(d===l){if(!s){n=i+1;break}}else-1===a&&(s=!1,a=i+1),r>=0&&(d===t.charCodeAt(r)?-1==--r&&(o=i):(r=-1,o=a))}return n===o?o=a:-1===o&&(o=e.length),e.slice(n,o)}for(i=e.length-1;i>=0;--i)if(e.charCodeAt(i)===l){if(!s){n=i+1;break}}else-1===o&&(s=!1,o=i+1);return-1===o?"":e.slice(n,o)},extname(e){h(e,"path");let t=-1,i=0,n=-1,o=!0,s=0;for(let r=e.length-1;r>=0;--r){const d=e.charCodeAt(r);if(d!==l)-1===n&&(o=!1,n=r+1), +d===a?-1===t?t=r:1!==s&&(s=1):-1!==t&&(s=-1);else if(!o){i=r+1;break}}return-1===t||-1===n||0===s||1===s&&t===n-1&&t===i+1?"":e.slice(t,n)},format:f.bind(null,"/"),parse(e){h(e,"path");const t={root:"",dir:"",base:"",ext:"",name:""};if(0===e.length)return t;const i=e.charCodeAt(0)===l;let n;i?(t.root="/",n=1):n=0;let o=-1,s=0,r=-1,d=!0,c=e.length-1,u=0;for(;c>=n;--c){const t=e.charCodeAt(c);if(t!==l)-1===r&&(d=!1,r=c+1),t===a?-1===o?o=c:1!==u&&(u=1):-1!==o&&(u=-1);else if(!d){s=c+1;break}}if(-1!==r){const n=0===s&&i?1:s;-1===o||0===u||1===u&&o===r-1&&o===s+1?t.base=t.name=e.slice(n,r):(t.name=e.slice(n,o),t.base=e.slice(n,r),t.ext=e.slice(o,r))}return s>0?t.dir=e.slice(0,s-1):i&&(t.dir="/"),t},sep:"/",delimiter:":",win32:null,posix:null},t.posix.win32=t.win32.win32=t.win32,t.posix.posix=t.win32.posix=t.posix,t.normalize="win32"===i.platform?t.win32.normalize:t.posix.normalize,t.resolve="win32"===i.platform?t.win32.resolve:t.posix.resolve,t.relative="win32"===i.platform?t.win32.relative:t.posix.relative, +t.dirname="win32"===i.platform?t.win32.dirname:t.posix.dirname,t.basename="win32"===i.platform?t.win32.basename:t.posix.basename,t.extname="win32"===i.platform?t.win32.extname:t.posix.extname,t.sep="win32"===i.platform?t.win32.sep:t.posix.sep})),define(t[110],i([0,1]),(function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Range=void 0,function(e){function t(e,t){if(e.start>=t.end||t.start>=e.end)return{start:0,end:0};const i=Math.max(e.start,t.start),n=Math.min(e.end,t.end);return n-i<=0?{start:0,end:0}:{start:i,end:n}}function i(e){return e.end-e.start<=0}e.intersect=t,e.isEmpty=i,e.intersects=function(e,n){return!i(t(e,n))},e.relativeComplement=function(e,t){const n=[],o={start:e.start,end:Math.min(t.start,e.end)},s={start:Math.max(t.end,e.start),end:e.end};return i(o)||n.push(o),i(s)||n.push(s),n}}(t.Range||(t.Range={}))})),define(t[272],i([0,1,110]),(function(e,t,i){"use strict";function n(e,t){const n=[];for(let o of t){if(e.start>=o.range.end)continue;if(e.end({range:o(e.range,r),size:e.size})),d=i.map((t,i)=>({range:{start:e+i,end:e+i+1},size:t.size}));this.groups=function(...e){return s(e.reduce((e,t)=>e.concat(t),[]))}(a,d,l),this._size=this.groups.reduce((e,t)=>e+t.size*(t.range.end-t.range.start),0)}get count(){const e=this.groups.length;return e?this.groups[e-1].range.end:0}get size(){ +return this._size}indexAt(e){if(e<0)return-1;let t=0,i=0;for(let n of this.groups){const o=n.range.end-n.range.start,s=i+o*n.size;if(et&&(i=t-e),i<0&&(i=0),n<0&&(n=0),s+n>o&&(s=o-n),s<0&&(s=0),this.width=e,this.scrollWidth=t,this.scrollLeft=i,this.height=n,this.scrollHeight=o,this.scrollTop=s}equals(e){ +return this.rawScrollLeft===e.rawScrollLeft&&this.rawScrollTop===e.rawScrollTop&&this.width===e.width&&this.scrollWidth===e.scrollWidth&&this.scrollLeft===e.scrollLeft&&this.height===e.height&&this.scrollHeight===e.scrollHeight&&this.scrollTop===e.scrollTop}withScrollDimensions(e,t){return new o(void 0!==e.width?e.width:this.width,void 0!==e.scrollWidth?e.scrollWidth:this.scrollWidth,t?this.rawScrollLeft:this.scrollLeft,void 0!==e.height?e.height:this.height,void 0!==e.scrollHeight?e.scrollHeight:this.scrollHeight,t?this.rawScrollTop:this.scrollTop)}withScrollPosition(e){return new o(this.width,this.scrollWidth,void 0!==e.scrollLeft?e.scrollLeft:this.rawScrollLeft,this.height,this.scrollHeight,void 0!==e.scrollTop?e.scrollTop:this.rawScrollTop)}createScrollEvent(e){const t=this.width!==e.width,i=this.scrollWidth!==e.scrollWidth,n=this.scrollLeft!==e.scrollLeft,o=this.height!==e.height,s=this.scrollHeight!==e.scrollHeight,r=this.scrollTop!==e.scrollTop;return{oldWidth:e.width,oldScrollWidth:e.scrollWidth, +oldScrollLeft:e.scrollLeft,width:this.width,scrollWidth:this.scrollWidth,scrollLeft:this.scrollLeft,oldHeight:e.height,oldScrollHeight:e.scrollHeight,oldScrollTop:e.scrollTop,height:this.height,scrollHeight:this.scrollHeight,scrollTop:this.scrollTop,widthChanged:t,scrollWidthChanged:i,scrollLeftChanged:n,heightChanged:o,scrollHeightChanged:s,scrollTopChanged:r}}}t.ScrollState=o;class s extends n.Disposable{constructor(e,t){super(),this._onScroll=this._register(new i.Emitter),this.onScroll=this._onScroll.event,this._smoothScrollDuration=e,this._scheduleAtNextAnimationFrame=t,this._state=new o(0,0,0,0,0,0),this._smoothScrolling=null}dispose(){this._smoothScrolling&&(this._smoothScrolling.dispose(),this._smoothScrolling=null),super.dispose()}setSmoothScrollDuration(e){this._smoothScrollDuration=e}validateScrollPosition(e){return this._state.withScrollPosition(e)}getScrollDimensions(){return this._state}setScrollDimensions(e,t){const i=this._state.withScrollDimensions(e,t);this._setState(i), +this._smoothScrolling&&this._smoothScrolling.acceptScrollDimensions(this._state)}getFutureScrollPosition(){return this._smoothScrolling?this._smoothScrolling.to:this._state}getCurrentScrollPosition(){return this._state}setScrollPositionNow(e){const t=this._state.withScrollPosition(e);this._smoothScrolling&&(this._smoothScrolling.dispose(),this._smoothScrolling=null),this._setState(t)}setScrollPositionSmooth(e){if(0===this._smoothScrollDuration)return this.setScrollPositionNow(e);if(this._smoothScrolling){e={scrollLeft:void 0===e.scrollLeft?this._smoothScrolling.to.scrollLeft:e.scrollLeft,scrollTop:void 0===e.scrollTop?this._smoothScrolling.to.scrollTop:e.scrollTop};const t=this._state.withScrollPosition(e);if(this._smoothScrolling.to.scrollLeft===t.scrollLeft&&this._smoothScrolling.to.scrollTop===t.scrollTop)return;const i=this._smoothScrolling.combine(this._state,t,this._smoothScrollDuration);this._smoothScrolling.dispose(),this._smoothScrolling=i}else{const t=this._state.withScrollPosition(e) +;this._smoothScrolling=l.start(this._state,t,this._smoothScrollDuration)}this._smoothScrolling.animationFrameDisposable=this._scheduleAtNextAnimationFrame(()=>{this._smoothScrolling&&(this._smoothScrolling.animationFrameDisposable=null,this._performSmoothScrolling())})}_performSmoothScrolling(){if(!this._smoothScrolling)return;const e=this._smoothScrolling.tick(),t=this._state.withScrollPosition(e);return this._setState(t),this._smoothScrolling?e.isDone?(this._smoothScrolling.dispose(),void(this._smoothScrolling=null)):void(this._smoothScrolling.animationFrameDisposable=this._scheduleAtNextAnimationFrame(()=>{this._smoothScrolling&&(this._smoothScrolling.animationFrameDisposable=null,this._performSmoothScrolling())})):void 0}_setState(e){const t=this._state;t.equals(e)||(this._state=e,this._onScroll.fire(this._state.createScrollEvent(t)))}}t.Scrollable=s;class r{constructor(e,t,i){this.scrollLeft=e,this.scrollTop=t,this.isDone=i}}function a(e,t){const i=t-e;return function(t){return e+i*(1-function(e){ +return Math.pow(e,3)}(1-t))}}t.SmoothScrollingUpdate=r;class l{constructor(e,t,i,n){this.from=e,this.to=t,this.duration=n,this._startTime=i,this.animationFrameDisposable=null,this._initAnimations()}_initAnimations(){this.scrollLeft=this._initAnimation(this.from.scrollLeft,this.to.scrollLeft,this.to.width),this.scrollTop=this._initAnimation(this.from.scrollTop,this.to.scrollTop,this.to.height)}_initAnimation(e,t,i){if(Math.abs(e-t)>2.5*i){let r,l;return es)return 1}const r=n-i,a=s-o;return ra?1:0}function a(e,t,i=0,n=e.length,o=0,s=t.length){for(;ic?1:0}function l(e){return e>=97&&e<=122}function d(e){return e>=65&&e<=90}function c(e){return l(e)||d(e)}function h(e,t,i=e.length){for(let n=0;n1){const n=e.charCodeAt(t-2);if(u(n))return p(n,i)}return i}t.format=function(e,...t){return 0===t.length?e:e.replace(i,(function(e,i){const n=parseInt(i,10);return isNaN(n)||n<0||n>=t.length?e:t[n]}))},t.escape=function(e){return e.replace(/[<>&]/g,(function(e){switch(e){case"<":return"<";case">":return">" +;case"&":return"&";default:return e}}))},t.escapeRegExpCharacters=n,t.trim=function(e,t=" "){return s(o(e,t),t)},t.ltrim=o,t.rtrim=s,t.convertSimple2RegExpPattern=function(e){return e.replace(/[\-\\\{\}\+\?\|\^\$\.\,\[\]\(\)\#\s]/g,"\\$&").replace(/[\*]/g,".*")},t.stripWildcards=function(e){return e.replace(/\*/g,"")},t.startsWith=function(e,t){if(e.length0?e.indexOf(t,i)===i:0===i&&e===t},t.createRegExp=function(e,t,i={}){if(!e)throw new Error("Cannot create regex from empty string");t||(e=n(e)),i.wholeWord&&(/\B/.test(e.charAt(0))||(e="\\b"+e),/\B/.test(e.charAt(e.length-1))||(e+="\\b"));let o="";return i.global&&(o+="g"),i.matchCase||(o+="i"),i.multiline&&(o+="m"),i.unicode&&(o+="u"),new RegExp(e,o)},t.regExpLeadsToEndlessLoop=function(e){return"^"!==e.source&&"^$"!==e.source&&"$"!==e.source&&"^\\s*$"!==e.source&&!(!e.exec("")||0!==e.lastIndex)}, +t.regExpFlags=function(e){return(e.global?"g":"")+(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.unicode?"u":"")},t.firstNonWhitespaceIndex=function(e){for(let t=0,i=e.length;t=0;i--){const t=e.charCodeAt(i);if(32!==t&&9!==t)return i}return-1},t.compare=function(e,t){return et?1:0},t.compareSubstring=r,t.compareIgnoreCase=function(e,t){return a(e,t,0,e.length,0,t.length)},t.compareSubstringIgnoreCase=a,t.isLowerAsciiLetter=l,t.isUpperAsciiLetter=d,t.equalsIgnoreCase=function(e,t){return e.length===t.length&&h(e,t)},t.startsWithIgnoreCase=function(e,t){const i=t.length;return!(t.length>e.length)&&h(e,t,i)},t.commonPrefixLength=function(e,t){let i,n=Math.min(e.length,t.length) +;for(i=0;i=65536?2:1;let r=i.getGraphemeBreakType(s);for(;t=65536?2:1,r=s}return t-n},t.prevCharLength=function(e,t){const i=w.getInstance(),n=t,o=f(e,t);t-=o>=65536?2:1;let s=i.getGraphemeBreakType(o);for(;t>0;){const n=f(e,t),o=i.getGraphemeBreakType(n);if(S(o,s))break;t-=n>=65536?2:1,s=o}return n-t},t.decodeUTF8=function(e){const t=e.byteLength,i=[];let n=0;for(;n=240&&n+3>>0|(63&e[n++])<<12>>>0|(63&e[n++])<<6>>>0|(63&e[n++])<<0>>>0:o>=224&&n+2>>0|(63&e[n++])<<6>>>0|(63&e[n++])<<0>>>0:o>=192&&n+1>>0|(63&e[n++])<<0>>>0:e[n++])>=0&&s<=55295||s>=57344&&s<=65535)i.push(String.fromCharCode(s));else if(s>=65536&&s<=1114111){const e=s-65536,t=55296+((1047552&e)>>>10),n=56320+((1023&e)>>>0);i.push(String.fromCharCode(t)),i.push(String.fromCharCode(n))}else i.push(String.fromCharCode(65533))}return i.join("")};const _=/(?:[\u05BE\u05C0\u05C3\u05C6\u05D0-\u05F4\u0608\u060B\u060D\u061B-\u064A\u066D-\u066F\u0671-\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u0710\u0712-\u072F\u074D-\u07A5\u07B1-\u07EA\u07F4\u07F5\u07FA-\u0815\u081A\u0824\u0828\u0830-\u0858\u085E-\u08BD\u200F\uFB1D\uFB1F-\uFB28\uFB2A-\uFD3D\uFD50-\uFDFC\uFE70-\uFEFC]|\uD802[\uDC00-\uDD1B\uDD20-\uDE00\uDE10-\uDE33\uDE40-\uDEE4\uDEEB-\uDF35\uDF40-\uDFFF]|\uD803[\uDC00-\uDCFF]|\uD83A[\uDC00-\uDCCF\uDD00-\uDD43\uDD50-\uDFFF]|\uD83B[\uDC00-\uDEBB])/ +;t.containsRTL=function(e){return _.test(e)};const v=/(?:[\u231A\u231B\u23F0\u23F3\u2600-\u27BF\u2B50\u2B55]|\uD83C[\uDDE6-\uDDFF\uDF00-\uDFFF]|\uD83D[\uDC00-\uDE4F\uDE80-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD00-\uDDFF\uDE70-\uDE73\uDE78-\uDE82\uDE90-\uDE95])/;t.containsEmoji=function(e){return v.test(e)};const C=/^[\t\n\r\x20-\x7E]*$/;function b(e){return(e=+e)>=11904&&e<=55215||e>=63744&&e<=64255||e>=65281&&e<=65374}function S(e,t){return 0===e?5!==t&&7!==t:(2!==e||3!==t)&&(4===e||2===e||3===e||(4===t||2===t||3===t||(8!==e||8!==t&&9!==t&&11!==t&&12!==t)&&((11!==e&&9!==e||9!==t&&10!==t)&&((12!==e&&10!==e||10!==t)&&(5!==t&&13!==t&&(7!==t&&(1!==e&&((13!==e||14!==t)&&(6!==e||6!==t)))))))))}t.isBasicASCII=function(e){return C.test(e)},t.UNUSUAL_LINE_TERMINATORS=/[\u2028\u2029]/,t.containsUnusualLineTerminators=function(e){return t.UNUSUAL_LINE_TERMINATORS.test(e)},t.containsFullWidthCharacter=function(e){for(let t=0,i=e.length;t=127462&&e<=127487||e>=9728&&e<=10175||e>=127744&&e<=128591||e>=128640&&e<=128764||e>=128992&&e<=129003||e>=129280&&e<=129535||e>=129648&&e<=129651||e>=129656&&e<=129666||e>=129680&&e<=129685},t.UTF8_BOM_CHARACTER=String.fromCharCode(65279),t.startsWithUTF8BOM=function(e){return!!(e&&e.length>0&&65279===e.charCodeAt(0))},t.containsUppercaseCharacter=function(e,t=!1){return!!e&&(t&&(e=e.replace(/\\./g,"")),e.toLowerCase()!==e)},t.singleLetterHash=function(e){return(e%=52)<26?String.fromCharCode(97+e):String.fromCharCode(65+e-26)},t.getGraphemeBreakType=function(e){return w.getInstance().getGraphemeBreakType(e)},t.breakBetweenGraphemeBreakType=S;class w{constructor(){ +this._data=JSON.parse("[0,0,0,51592,51592,11,44424,44424,11,72251,72254,5,7150,7150,7,48008,48008,11,55176,55176,11,128420,128420,14,3276,3277,5,9979,9980,14,46216,46216,11,49800,49800,11,53384,53384,11,70726,70726,5,122915,122916,5,129320,129327,14,2558,2558,5,5906,5908,5,9762,9763,14,43360,43388,8,45320,45320,11,47112,47112,11,48904,48904,11,50696,50696,11,52488,52488,11,54280,54280,11,70082,70083,1,71350,71350,7,73111,73111,5,127892,127893,14,128726,128727,14,129473,129474,14,2027,2035,5,2901,2902,5,3784,3789,5,6754,6754,5,8418,8420,5,9877,9877,14,11088,11088,14,44008,44008,5,44872,44872,11,45768,45768,11,46664,46664,11,47560,47560,11,48456,48456,11,49352,49352,11,50248,50248,11,51144,51144,11,52040,52040,11,52936,52936,11,53832,53832,11,54728,54728,11,69811,69814,5,70459,70460,5,71096,71099,7,71998,71998,5,72874,72880,5,119149,119149,7,127374,127374,14,128335,128335,14,128482,128482,14,128765,128767,14,129399,129400,14,129680,129685,14,1476,1477,5,2377,2380,7,2759,2760,5,3137,3140,7,3458,3459,7,4153,4154,5,6432,6434,5,6978,6978,5,7675,7679,5,9723,9726,14,9823,9823,14,9919,9923,14,10035,10036,14,42736,42737,5,43596,43596,5,44200,44200,11,44648,44648,11,45096,45096,11,45544,45544,11,45992,45992,11,46440,46440,11,46888,46888,11,47336,47336,11,47784,47784,11,48232,48232,11,48680,48680,11,49128,49128,11,49576,49576,11,50024,50024,11,50472,50472,11,50920,50920,11,51368,51368,11,51816,51816,11,52264,52264,11,52712,52712,11,53160,53160,11,53608,53608,11,54056,54056,11,54504,54504,11,54952,54952,11,68108,68111,5,69933,69940,5,70197,70197,7,70498,70499,7,70845,70845,5,71229,71229,5,71727,71735,5,72154,72155,5,72344,72345,5,73023,73029,5,94095,94098,5,121403,121452,5,126981,127182,14,127538,127546,14,127990,127990,14,128391,128391,14,128445,128449,14,128500,128505,14,128752,128752,14,129160,129167,14,129356,129356,14,129432,129442,14,129648,129651,14,129751,131069,14,173,173,4,1757,1757,1,2274,2274,1,2494,2494,5,2641,2641,5,2876,2876,5,3014,3016,7,3262,3262,7,3393,3396,5,3570,3571,7,3968,3972,5,4228,4228,7,6086,6086,5,6679,6680,5,6912,6915,5,7080,7081,5,7380,7392,5,8252,8252,14,9096,9096,14,9748,9749,14,9784,9786,14,9833,9850,14,9890,9894,14,9938,9938,14,9999,9999,14,10085,10087,14,12349,12349,14,43136,43137,7,43454,43456,7,43755,43755,7,44088,44088,11,44312,44312,11,44536,44536,11,44760,44760,11,44984,44984,11,45208,45208,11,45432,45432,11,45656,45656,11,45880,45880,11,46104,46104,11,46328,46328,11,46552,46552,11,46776,46776,11,47000,47000,11,47224,47224,11,47448,47448,11,47672,47672,11,47896,47896,11,48120,48120,11,48344,48344,11,48568,48568,11,48792,48792,11,49016,49016,11,49240,49240,11,49464,49464,11,49688,49688,11,49912,49912,11,50136,50136,11,50360,50360,11,50584,50584,11,50808,50808,11,51032,51032,11,51256,51256,11,51480,51480,11,51704,51704,11,51928,51928,11,52152,52152,11,52376,52376,11,52600,52600,11,52824,52824,11,53048,53048,11,53272,53272,11,53496,53496,11,53720,53720,11,53944,53944,11,54168,54168,11,54392,54392,11,54616,54616,11,54840,54840,11,55064,55064,11,65438,65439,5,69633,69633,5,69837,69837,1,70018,70018,7,70188,70190,7,70368,70370,7,70465,70468,7,70712,70719,5,70835,70840,5,70850,70851,5,71132,71133,5,71340,71340,7,71458,71461,5,71985,71989,7,72002,72002,7,72193,72202,5,72281,72283,5,72766,72766,7,72885,72886,5,73104,73105,5,92912,92916,5,113824,113827,4,119173,119179,5,121505,121519,5,125136,125142,5,127279,127279,14,127489,127490,14,127570,127743,14,127900,127901,14,128254,128254,14,128369,128370,14,128400,128400,14,128425,128432,14,128468,128475,14,128489,128494,14,128715,128720,14,128745,128745,14,128759,128760,14,129004,129023,14,129296,129304,14,129340,129342,14,129388,129392,14,129404,129407,14,129454,129455,14,129485,129487,14,129659,129663,14,129719,129727,14,917536,917631,5,13,13,2,1160,1161,5,1564,1564,4,1807,1807,1,2085,2087,5,2363,2363,7,2402,2403,5,2507,2508,7,2622,2624,7,2691,2691,7,2786,2787,5,2881,2884,5,3006,3006,5,3072,3072,5,3170,3171,5,3267,3268,7,3330,3331,7,3406,3406,1,3538,3540,5,3655,3662,5,3897,3897,5,4038,4038,5,4184,4185,5,4352,4447,8,6068,6069,5,6155,6157,5,6448,6449,7,6742,6742,5,6783,6783,5,6966,6970,5,7042,7042,7,7143,7143,7,7212,7219,5,7412,7412,5,8206,8207,4,8294,8303,4,8596,8601,14,9410,9410,14,9742,9742,14,9757,9757,14,9770,9770,14,9794,9794,14,9828,9828,14,9855,9855,14,9882,9882,14,9900,9903,14,9929,9933,14,9963,9967,14,9987,9988,14,10006,10006,14,10062,10062,14,10175,10175,14,11744,11775,5,42607,42607,5,43043,43044,7,43263,43263,5,43444,43445,7,43569,43570,5,43698,43700,5,43766,43766,5,44032,44032,11,44144,44144,11,44256,44256,11,44368,44368,11,44480,44480,11,44592,44592,11,44704,44704,11,44816,44816,11,44928,44928,11,45040,45040,11,45152,45152,11,45264,45264,11,45376,45376,11,45488,45488,11,45600,45600,11,45712,45712,11,45824,45824,11,45936,45936,11,46048,46048,11,46160,46160,11,46272,46272,11,46384,46384,11,46496,46496,11,46608,46608,11,46720,46720,11,46832,46832,11,46944,46944,11,47056,47056,11,47168,47168,11,47280,47280,11,47392,47392,11,47504,47504,11,47616,47616,11,47728,47728,11,47840,47840,11,47952,47952,11,48064,48064,11,48176,48176,11,48288,48288,11,48400,48400,11,48512,48512,11,48624,48624,11,48736,48736,11,48848,48848,11,48960,48960,11,49072,49072,11,49184,49184,11,49296,49296,11,49408,49408,11,49520,49520,11,49632,49632,11,49744,49744,11,49856,49856,11,49968,49968,11,50080,50080,11,50192,50192,11,50304,50304,11,50416,50416,11,50528,50528,11,50640,50640,11,50752,50752,11,50864,50864,11,50976,50976,11,51088,51088,11,51200,51200,11,51312,51312,11,51424,51424,11,51536,51536,11,51648,51648,11,51760,51760,11,51872,51872,11,51984,51984,11,52096,52096,11,52208,52208,11,52320,52320,11,52432,52432,11,52544,52544,11,52656,52656,11,52768,52768,11,52880,52880,11,52992,52992,11,53104,53104,11,53216,53216,11,53328,53328,11,53440,53440,11,53552,53552,11,53664,53664,11,53776,53776,11,53888,53888,11,54000,54000,11,54112,54112,11,54224,54224,11,54336,54336,11,54448,54448,11,54560,54560,11,54672,54672,11,54784,54784,11,54896,54896,11,55008,55008,11,55120,55120,11,64286,64286,5,66272,66272,5,68900,68903,5,69762,69762,7,69817,69818,5,69927,69931,5,70003,70003,5,70070,70078,5,70094,70094,7,70194,70195,7,70206,70206,5,70400,70401,5,70463,70463,7,70475,70477,7,70512,70516,5,70722,70724,5,70832,70832,5,70842,70842,5,70847,70848,5,71088,71089,7,71102,71102,7,71219,71226,5,71231,71232,5,71342,71343,7,71453,71455,5,71463,71467,5,71737,71738,5,71995,71996,5,72000,72000,7,72145,72147,7,72160,72160,5,72249,72249,7,72273,72278,5,72330,72342,5,72752,72758,5,72850,72871,5,72882,72883,5,73018,73018,5,73031,73031,5,73109,73109,5,73461,73462,7,94031,94031,5,94192,94193,7,119142,119142,7,119155,119162,4,119362,119364,5,121476,121476,5,122888,122904,5,123184,123190,5,126976,126979,14,127184,127231,14,127344,127345,14,127405,127461,14,127514,127514,14,127561,127567,14,127778,127779,14,127896,127896,14,127985,127986,14,127995,127999,5,128326,128328,14,128360,128366,14,128378,128378,14,128394,128397,14,128405,128406,14,128422,128423,14,128435,128443,14,128453,128464,14,128479,128480,14,128484,128487,14,128496,128498,14,128640,128709,14,128723,128724,14,128736,128741,14,128747,128748,14,128755,128755,14,128762,128762,14,128981,128991,14,129096,129103,14,129292,129292,14,129311,129311,14,129329,129330,14,129344,129349,14,129360,129374,14,129394,129394,14,129402,129402,14,129413,129425,14,129445,129450,14,129466,129471,14,129483,129483,14,129511,129535,14,129653,129655,14,129667,129670,14,129705,129711,14,129731,129743,14,917505,917505,4,917760,917999,5,10,10,3,127,159,4,768,879,5,1471,1471,5,1536,1541,1,1648,1648,5,1767,1768,5,1840,1866,5,2070,2073,5,2137,2139,5,2307,2307,7,2366,2368,7,2382,2383,7,2434,2435,7,2497,2500,5,2519,2519,5,2563,2563,7,2631,2632,5,2677,2677,5,2750,2752,7,2763,2764,7,2817,2817,5,2879,2879,5,2891,2892,7,2914,2915,5,3008,3008,5,3021,3021,5,3076,3076,5,3146,3149,5,3202,3203,7,3264,3265,7,3271,3272,7,3298,3299,5,3390,3390,5,3402,3404,7,3426,3427,5,3535,3535,5,3544,3550,7,3635,3635,7,3763,3763,7,3893,3893,5,3953,3966,5,3981,3991,5,4145,4145,7,4157,4158,5,4209,4212,5,4237,4237,5,4520,4607,10,5970,5971,5,6071,6077,5,6089,6099,5,6277,6278,5,6439,6440,5,6451,6456,7,6683,6683,5,6744,6750,5,6765,6770,7,6846,6846,5,6964,6964,5,6972,6972,5,7019,7027,5,7074,7077,5,7083,7085,5,7146,7148,7,7154,7155,7,7222,7223,5,7394,7400,5,7416,7417,5,8204,8204,5,8233,8233,4,8288,8292,4,8413,8416,5,8482,8482,14,8986,8987,14,9193,9203,14,9654,9654,14,9733,9733,14,9745,9745,14,9752,9752,14,9760,9760,14,9766,9766,14,9774,9775,14,9792,9792,14,9800,9811,14,9825,9826,14,9831,9831,14,9852,9853,14,9872,9873,14,9880,9880,14,9885,9887,14,9896,9897,14,9906,9916,14,9926,9927,14,9936,9936,14,9941,9960,14,9974,9974,14,9982,9985,14,9992,9997,14,10002,10002,14,10017,10017,14,10055,10055,14,10071,10071,14,10145,10145,14,11013,11015,14,11503,11505,5,12334,12335,5,12951,12951,14,42612,42621,5,43014,43014,5,43047,43047,7,43204,43205,5,43335,43345,5,43395,43395,7,43450,43451,7,43561,43566,5,43573,43574,5,43644,43644,5,43710,43711,5,43758,43759,7,44005,44005,5,44012,44012,7,44060,44060,11,44116,44116,11,44172,44172,11,44228,44228,11,44284,44284,11,44340,44340,11,44396,44396,11,44452,44452,11,44508,44508,11,44564,44564,11,44620,44620,11,44676,44676,11,44732,44732,11,44788,44788,11,44844,44844,11,44900,44900,11,44956,44956,11,45012,45012,11,45068,45068,11,45124,45124,11,45180,45180,11,45236,45236,11,45292,45292,11,45348,45348,11,45404,45404,11,45460,45460,11,45516,45516,11,45572,45572,11,45628,45628,11,45684,45684,11,45740,45740,11,45796,45796,11,45852,45852,11,45908,45908,11,45964,45964,11,46020,46020,11,46076,46076,11,46132,46132,11,46188,46188,11,46244,46244,11,46300,46300,11,46356,46356,11,46412,46412,11,46468,46468,11,46524,46524,11,46580,46580,11,46636,46636,11,46692,46692,11,46748,46748,11,46804,46804,11,46860,46860,11,46916,46916,11,46972,46972,11,47028,47028,11,47084,47084,11,47140,47140,11,47196,47196,11,47252,47252,11,47308,47308,11,47364,47364,11,47420,47420,11,47476,47476,11,47532,47532,11,47588,47588,11,47644,47644,11,47700,47700,11,47756,47756,11,47812,47812,11,47868,47868,11,47924,47924,11,47980,47980,11,48036,48036,11,48092,48092,11,48148,48148,11,48204,48204,11,48260,48260,11,48316,48316,11,48372,48372,11,48428,48428,11,48484,48484,11,48540,48540,11,48596,48596,11,48652,48652,11,48708,48708,11,48764,48764,11,48820,48820,11,48876,48876,11,48932,48932,11,48988,48988,11,49044,49044,11,49100,49100,11,49156,49156,11,49212,49212,11,49268,49268,11,49324,49324,11,49380,49380,11,49436,49436,11,49492,49492,11,49548,49548,11,49604,49604,11,49660,49660,11,49716,49716,11,49772,49772,11,49828,49828,11,49884,49884,11,49940,49940,11,49996,49996,11,50052,50052,11,50108,50108,11,50164,50164,11,50220,50220,11,50276,50276,11,50332,50332,11,50388,50388,11,50444,50444,11,50500,50500,11,50556,50556,11,50612,50612,11,50668,50668,11,50724,50724,11,50780,50780,11,50836,50836,11,50892,50892,11,50948,50948,11,51004,51004,11,51060,51060,11,51116,51116,11,51172,51172,11,51228,51228,11,51284,51284,11,51340,51340,11,51396,51396,11,51452,51452,11,51508,51508,11,51564,51564,11,51620,51620,11,51676,51676,11,51732,51732,11,51788,51788,11,51844,51844,11,51900,51900,11,51956,51956,11,52012,52012,11,52068,52068,11,52124,52124,11,52180,52180,11,52236,52236,11,52292,52292,11,52348,52348,11,52404,52404,11,52460,52460,11,52516,52516,11,52572,52572,11,52628,52628,11,52684,52684,11,52740,52740,11,52796,52796,11,52852,52852,11,52908,52908,11,52964,52964,11,53020,53020,11,53076,53076,11,53132,53132,11,53188,53188,11,53244,53244,11,53300,53300,11,53356,53356,11,53412,53412,11,53468,53468,11,53524,53524,11,53580,53580,11,53636,53636,11,53692,53692,11,53748,53748,11,53804,53804,11,53860,53860,11,53916,53916,11,53972,53972,11,54028,54028,11,54084,54084,11,54140,54140,11,54196,54196,11,54252,54252,11,54308,54308,11,54364,54364,11,54420,54420,11,54476,54476,11,54532,54532,11,54588,54588,11,54644,54644,11,54700,54700,11,54756,54756,11,54812,54812,11,54868,54868,11,54924,54924,11,54980,54980,11,55036,55036,11,55092,55092,11,55148,55148,11,55216,55238,9,65056,65071,5,65529,65531,4,68097,68099,5,68159,68159,5,69446,69456,5,69688,69702,5,69808,69810,7,69815,69816,7,69821,69821,1,69888,69890,5,69932,69932,7,69957,69958,7,70016,70017,5,70067,70069,7,70079,70080,7,70089,70092,5,70095,70095,5,70191,70193,5,70196,70196,5,70198,70199,5,70367,70367,5,70371,70378,5,70402,70403,7,70462,70462,5,70464,70464,5,70471,70472,7,70487,70487,5,70502,70508,5,70709,70711,7,70720,70721,7,70725,70725,7,70750,70750,5,70833,70834,7,70841,70841,7,70843,70844,7,70846,70846,7,70849,70849,7,71087,71087,5,71090,71093,5,71100,71101,5,71103,71104,5,71216,71218,7,71227,71228,7,71230,71230,7,71339,71339,5,71341,71341,5,71344,71349,5,71351,71351,5,71456,71457,7,71462,71462,7,71724,71726,7,71736,71736,7,71984,71984,5,71991,71992,7,71997,71997,7,71999,71999,1,72001,72001,1,72003,72003,5,72148,72151,5,72156,72159,7,72164,72164,7,72243,72248,5,72250,72250,1,72263,72263,5,72279,72280,7,72324,72329,1,72343,72343,7,72751,72751,7,72760,72765,5,72767,72767,5,72873,72873,7,72881,72881,7,72884,72884,7,73009,73014,5,73020,73021,5,73030,73030,1,73098,73102,7,73107,73108,7,73110,73110,7,73459,73460,5,78896,78904,4,92976,92982,5,94033,94087,7,94180,94180,5,113821,113822,5,119141,119141,5,119143,119145,5,119150,119154,5,119163,119170,5,119210,119213,5,121344,121398,5,121461,121461,5,121499,121503,5,122880,122886,5,122907,122913,5,122918,122922,5,123628,123631,5,125252,125258,5,126980,126980,14,127183,127183,14,127245,127247,14,127340,127343,14,127358,127359,14,127377,127386,14,127462,127487,6,127491,127503,14,127535,127535,14,127548,127551,14,127568,127569,14,127744,127777,14,127780,127891,14,127894,127895,14,127897,127899,14,127902,127984,14,127987,127989,14,127991,127994,14,128000,128253,14,128255,128317,14,128329,128334,14,128336,128359,14,128367,128368,14,128371,128377,14,128379,128390,14,128392,128393,14,128398,128399,14,128401,128404,14,128407,128419,14,128421,128421,14,128424,128424,14,128433,128434,14,128444,128444,14,128450,128452,14,128465,128467,14,128476,128478,14,128481,128481,14,128483,128483,14,128488,128488,14,128495,128495,14,128499,128499,14,128506,128591,14,128710,128714,14,128721,128722,14,128725,128725,14,128728,128735,14,128742,128744,14,128746,128746,14,128749,128751,14,128753,128754,14,128756,128758,14,128761,128761,14,128763,128764,14,128884,128895,14,128992,129003,14,129036,129039,14,129114,129119,14,129198,129279,14,129293,129295,14,129305,129310,14,129312,129319,14,129328,129328,14,129331,129338,14,129343,129343,14,129351,129355,14,129357,129359,14,129375,129387,14,129393,129393,14,129395,129398,14,129401,129401,14,129403,129403,14,129408,129412,14,129426,129431,14,129443,129444,14,129451,129453,14,129456,129465,14,129472,129472,14,129475,129482,14,129484,129484,14,129488,129510,14,129536,129647,14,129652,129652,14,129656,129658,14,129664,129666,14,129671,129679,14,129686,129704,14,129712,129718,14,129728,129730,14,129744,129750,14,917504,917504,4,917506,917535,4,917632,917759,4,918000,921599,4,0,9,4,11,12,4,14,31,4,169,169,14,174,174,14,1155,1159,5,1425,1469,5,1473,1474,5,1479,1479,5,1552,1562,5,1611,1631,5,1750,1756,5,1759,1764,5,1770,1773,5,1809,1809,5,1958,1968,5,2045,2045,5,2075,2083,5,2089,2093,5,2259,2273,5,2275,2306,5,2362,2362,5,2364,2364,5,2369,2376,5,2381,2381,5,2385,2391,5,2433,2433,5,2492,2492,5,2495,2496,7,2503,2504,7,2509,2509,5,2530,2531,5,2561,2562,5,2620,2620,5,2625,2626,5,2635,2637,5,2672,2673,5,2689,2690,5,2748,2748,5,2753,2757,5,2761,2761,7,2765,2765,5,2810,2815,5,2818,2819,7,2878,2878,5,2880,2880,7,2887,2888,7,2893,2893,5,2903,2903,5,2946,2946,5,3007,3007,7,3009,3010,7,3018,3020,7,3031,3031,5,3073,3075,7,3134,3136,5,3142,3144,5,3157,3158,5,3201,3201,5,3260,3260,5,3263,3263,5,3266,3266,5,3270,3270,5,3274,3275,7,3285,3286,5,3328,3329,5,3387,3388,5,3391,3392,7,3398,3400,7,3405,3405,5,3415,3415,5,3457,3457,5,3530,3530,5,3536,3537,7,3542,3542,5,3551,3551,5,3633,3633,5,3636,3642,5,3761,3761,5,3764,3772,5,3864,3865,5,3895,3895,5,3902,3903,7,3967,3967,7,3974,3975,5,3993,4028,5,4141,4144,5,4146,4151,5,4155,4156,7,4182,4183,7,4190,4192,5,4226,4226,5,4229,4230,5,4253,4253,5,4448,4519,9,4957,4959,5,5938,5940,5,6002,6003,5,6070,6070,7,6078,6085,7,6087,6088,7,6109,6109,5,6158,6158,4,6313,6313,5,6435,6438,7,6441,6443,7,6450,6450,5,6457,6459,5,6681,6682,7,6741,6741,7,6743,6743,7,6752,6752,5,6757,6764,5,6771,6780,5,6832,6845,5,6847,6848,5,6916,6916,7,6965,6965,5,6971,6971,7,6973,6977,7,6979,6980,7,7040,7041,5,7073,7073,7,7078,7079,7,7082,7082,7,7142,7142,5,7144,7145,5,7149,7149,5,7151,7153,5,7204,7211,7,7220,7221,7,7376,7378,5,7393,7393,7,7405,7405,5,7415,7415,7,7616,7673,5,8203,8203,4,8205,8205,13,8232,8232,4,8234,8238,4,8265,8265,14,8293,8293,4,8400,8412,5,8417,8417,5,8421,8432,5,8505,8505,14,8617,8618,14,9000,9000,14,9167,9167,14,9208,9210,14,9642,9643,14,9664,9664,14,9728,9732,14,9735,9741,14,9743,9744,14,9746,9746,14,9750,9751,14,9753,9756,14,9758,9759,14,9761,9761,14,9764,9765,14,9767,9769,14,9771,9773,14,9776,9783,14,9787,9791,14,9793,9793,14,9795,9799,14,9812,9822,14,9824,9824,14,9827,9827,14,9829,9830,14,9832,9832,14,9851,9851,14,9854,9854,14,9856,9861,14,9874,9876,14,9878,9879,14,9881,9881,14,9883,9884,14,9888,9889,14,9895,9895,14,9898,9899,14,9904,9905,14,9917,9918,14,9924,9925,14,9928,9928,14,9934,9935,14,9937,9937,14,9939,9940,14,9961,9962,14,9968,9973,14,9975,9978,14,9981,9981,14,9986,9986,14,9989,9989,14,9998,9998,14,10000,10001,14,10004,10004,14,10013,10013,14,10024,10024,14,10052,10052,14,10060,10060,14,10067,10069,14,10083,10084,14,10133,10135,14,10160,10160,14,10548,10549,14,11035,11036,14,11093,11093,14,11647,11647,5,12330,12333,5,12336,12336,14,12441,12442,5,12953,12953,14,42608,42610,5,42654,42655,5,43010,43010,5,43019,43019,5,43045,43046,5,43052,43052,5,43188,43203,7,43232,43249,5,43302,43309,5,43346,43347,7,43392,43394,5,43443,43443,5,43446,43449,5,43452,43453,5,43493,43493,5,43567,43568,7,43571,43572,7,43587,43587,5,43597,43597,7,43696,43696,5,43703,43704,5,43713,43713,5,43756,43757,5,43765,43765,7,44003,44004,7,44006,44007,7,44009,44010,7,44013,44013,5,44033,44059,12,44061,44087,12,44089,44115,12,44117,44143,12,44145,44171,12,44173,44199,12,44201,44227,12,44229,44255,12,44257,44283,12,44285,44311,12,44313,44339,12,44341,44367,12,44369,44395,12,44397,44423,12,44425,44451,12,44453,44479,12,44481,44507,12,44509,44535,12,44537,44563,12,44565,44591,12,44593,44619,12,44621,44647,12,44649,44675,12,44677,44703,12,44705,44731,12,44733,44759,12,44761,44787,12,44789,44815,12,44817,44843,12,44845,44871,12,44873,44899,12,44901,44927,12,44929,44955,12,44957,44983,12,44985,45011,12,45013,45039,12,45041,45067,12,45069,45095,12,45097,45123,12,45125,45151,12,45153,45179,12,45181,45207,12,45209,45235,12,45237,45263,12,45265,45291,12,45293,45319,12,45321,45347,12,45349,45375,12,45377,45403,12,45405,45431,12,45433,45459,12,45461,45487,12,45489,45515,12,45517,45543,12,45545,45571,12,45573,45599,12,45601,45627,12,45629,45655,12,45657,45683,12,45685,45711,12,45713,45739,12,45741,45767,12,45769,45795,12,45797,45823,12,45825,45851,12,45853,45879,12,45881,45907,12,45909,45935,12,45937,45963,12,45965,45991,12,45993,46019,12,46021,46047,12,46049,46075,12,46077,46103,12,46105,46131,12,46133,46159,12,46161,46187,12,46189,46215,12,46217,46243,12,46245,46271,12,46273,46299,12,46301,46327,12,46329,46355,12,46357,46383,12,46385,46411,12,46413,46439,12,46441,46467,12,46469,46495,12,46497,46523,12,46525,46551,12,46553,46579,12,46581,46607,12,46609,46635,12,46637,46663,12,46665,46691,12,46693,46719,12,46721,46747,12,46749,46775,12,46777,46803,12,46805,46831,12,46833,46859,12,46861,46887,12,46889,46915,12,46917,46943,12,46945,46971,12,46973,46999,12,47001,47027,12,47029,47055,12,47057,47083,12,47085,47111,12,47113,47139,12,47141,47167,12,47169,47195,12,47197,47223,12,47225,47251,12,47253,47279,12,47281,47307,12,47309,47335,12,47337,47363,12,47365,47391,12,47393,47419,12,47421,47447,12,47449,47475,12,47477,47503,12,47505,47531,12,47533,47559,12,47561,47587,12,47589,47615,12,47617,47643,12,47645,47671,12,47673,47699,12,47701,47727,12,47729,47755,12,47757,47783,12,47785,47811,12,47813,47839,12,47841,47867,12,47869,47895,12,47897,47923,12,47925,47951,12,47953,47979,12,47981,48007,12,48009,48035,12,48037,48063,12,48065,48091,12,48093,48119,12,48121,48147,12,48149,48175,12,48177,48203,12,48205,48231,12,48233,48259,12,48261,48287,12,48289,48315,12,48317,48343,12,48345,48371,12,48373,48399,12,48401,48427,12,48429,48455,12,48457,48483,12,48485,48511,12,48513,48539,12,48541,48567,12,48569,48595,12,48597,48623,12,48625,48651,12,48653,48679,12,48681,48707,12,48709,48735,12,48737,48763,12,48765,48791,12,48793,48819,12,48821,48847,12,48849,48875,12,48877,48903,12,48905,48931,12,48933,48959,12,48961,48987,12,48989,49015,12,49017,49043,12,49045,49071,12,49073,49099,12,49101,49127,12,49129,49155,12,49157,49183,12,49185,49211,12,49213,49239,12,49241,49267,12,49269,49295,12,49297,49323,12,49325,49351,12,49353,49379,12,49381,49407,12,49409,49435,12,49437,49463,12,49465,49491,12,49493,49519,12,49521,49547,12,49549,49575,12,49577,49603,12,49605,49631,12,49633,49659,12,49661,49687,12,49689,49715,12,49717,49743,12,49745,49771,12,49773,49799,12,49801,49827,12,49829,49855,12,49857,49883,12,49885,49911,12,49913,49939,12,49941,49967,12,49969,49995,12,49997,50023,12,50025,50051,12,50053,50079,12,50081,50107,12,50109,50135,12,50137,50163,12,50165,50191,12,50193,50219,12,50221,50247,12,50249,50275,12,50277,50303,12,50305,50331,12,50333,50359,12,50361,50387,12,50389,50415,12,50417,50443,12,50445,50471,12,50473,50499,12,50501,50527,12,50529,50555,12,50557,50583,12,50585,50611,12,50613,50639,12,50641,50667,12,50669,50695,12,50697,50723,12,50725,50751,12,50753,50779,12,50781,50807,12,50809,50835,12,50837,50863,12,50865,50891,12,50893,50919,12,50921,50947,12,50949,50975,12,50977,51003,12,51005,51031,12,51033,51059,12,51061,51087,12,51089,51115,12,51117,51143,12,51145,51171,12,51173,51199,12,51201,51227,12,51229,51255,12,51257,51283,12,51285,51311,12,51313,51339,12,51341,51367,12,51369,51395,12,51397,51423,12,51425,51451,12,51453,51479,12,51481,51507,12,51509,51535,12,51537,51563,12,51565,51591,12,51593,51619,12,51621,51647,12,51649,51675,12,51677,51703,12,51705,51731,12,51733,51759,12,51761,51787,12,51789,51815,12,51817,51843,12,51845,51871,12,51873,51899,12,51901,51927,12,51929,51955,12,51957,51983,12,51985,52011,12,52013,52039,12,52041,52067,12,52069,52095,12,52097,52123,12,52125,52151,12,52153,52179,12,52181,52207,12,52209,52235,12,52237,52263,12,52265,52291,12,52293,52319,12,52321,52347,12,52349,52375,12,52377,52403,12,52405,52431,12,52433,52459,12,52461,52487,12,52489,52515,12,52517,52543,12,52545,52571,12,52573,52599,12,52601,52627,12,52629,52655,12,52657,52683,12,52685,52711,12,52713,52739,12,52741,52767,12,52769,52795,12,52797,52823,12,52825,52851,12,52853,52879,12,52881,52907,12,52909,52935,12,52937,52963,12,52965,52991,12,52993,53019,12,53021,53047,12,53049,53075,12,53077,53103,12,53105,53131,12,53133,53159,12,53161,53187,12,53189,53215,12,53217,53243,12,53245,53271,12,53273,53299,12,53301,53327,12,53329,53355,12,53357,53383,12,53385,53411,12,53413,53439,12,53441,53467,12,53469,53495,12,53497,53523,12,53525,53551,12,53553,53579,12,53581,53607,12,53609,53635,12,53637,53663,12,53665,53691,12,53693,53719,12,53721,53747,12,53749,53775,12,53777,53803,12,53805,53831,12,53833,53859,12,53861,53887,12,53889,53915,12,53917,53943,12,53945,53971,12,53973,53999,12,54001,54027,12,54029,54055,12,54057,54083,12,54085,54111,12,54113,54139,12,54141,54167,12,54169,54195,12,54197,54223,12,54225,54251,12,54253,54279,12,54281,54307,12,54309,54335,12,54337,54363,12,54365,54391,12,54393,54419,12,54421,54447,12,54449,54475,12,54477,54503,12,54505,54531,12,54533,54559,12,54561,54587,12,54589,54615,12,54617,54643,12,54645,54671,12,54673,54699,12,54701,54727,12,54729,54755,12,54757,54783,12,54785,54811,12,54813,54839,12,54841,54867,12,54869,54895,12,54897,54923,12,54925,54951,12,54953,54979,12,54981,55007,12,55009,55035,12,55037,55063,12,55065,55091,12,55093,55119,12,55121,55147,12,55149,55175,12,55177,55203,12,55243,55291,10,65024,65039,5,65279,65279,4,65520,65528,4,66045,66045,5,66422,66426,5,68101,68102,5,68152,68154,5,68325,68326,5,69291,69292,5,69632,69632,7,69634,69634,7,69759,69761,5]") +}static getInstance(){return w._INSTANCE||(w._INSTANCE=new w),w._INSTANCE}getGraphemeBreakType(e){if(e<32)return 10===e?3:13===e?2:4;if(e<127)return 0;const t=this._data,i=t.length/3;let n=1;for(;n<=i;)if(et[3*n+1]))return t[3*n+2];n=2*n+1}return 0}}w._INSTANCE=null})),define(t[112],i([0,1,8]),(function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.writeUInt8=t.readUInt8=t.writeUInt32BE=t.readUInt32BE=t.writeUInt16LE=t.readUInt16LE=t.VSBuffer=void 0;const n="undefined"!=typeof Buffer,o="undefined"!=typeof TextDecoder;let s;t.VSBuffer=class{constructor(e){this.buffer=e,this.byteLength=this.buffer.byteLength}toString(){return n?this.buffer.toString():o?(s||(s=new TextDecoder),s.decode(this.buffer)):i.decodeUTF8(this.buffer)}},t.readUInt16LE=function(e,t){return e[t+0]<<0>>>0|e[t+1]<<8>>>0},t.writeUInt16LE=function(e,t,i){e[i+0]=255&t,t>>>=8,e[i+1]=255&t},t.readUInt32BE=function(e,t){return e[t]*Math.pow(2,24)+e[t+1]*Math.pow(2,16)+e[t+2]*Math.pow(2,8)+e[t+3]}, +t.writeUInt32BE=function(e,t,i){e[i+3]=t,t>>>=8,e[i+2]=t,t>>>=8,e[i+1]=t,t>>>=8,e[i]=t},t.readUInt8=function(e,t){return e[t]},t.writeUInt8=function(e,t,i){e[i]=t}})),define(t[187],i([0,1,8,63]),(function(e,t,i,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isEqualOrParent=t.toSlashes=void 0,t.toSlashes=function(e){return e.replace(/[\\/]/g,n.posix.sep)},t.isEqualOrParent=function(e,t,o,s=n.sep){if(e===t)return!0;if(!e||!t)return!1;if(t.length>e.length)return!1;if(o){if(!i.startsWithIgnoreCase(e,t))return!1;if(t.length===e.length)return!0;let n=t.length;return t.charAt(t.length-1)===s&&n--,e.charAt(n)===s}return t.charAt(t.length-1)!==s&&(t+=s),0===e.indexOf(t)}})),define(t[113],i([0,1,8]),(function(e,t,i){"use strict";function n(e,t){switch(typeof e){case"object":return null===e?o(349,t):Array.isArray(e)?(i=e,r=o(104579,r=t),i.reduce((e,t)=>n(t,e),r)):function(e,t){return t=o(181387,t),Object.keys(e).sort().reduce((t,i)=>(t=s(i,t),n(e[i],t)),t)}(e,t);case"string":return s(e,t) +;case"boolean":return function(e,t){return o(e?433:863,t)}(e,t);case"number":return o(e,t);case"undefined":return o(937,t);default:return o(617,t)}var i,r}function o(e,t){return(t<<5)-t+e|0}function s(e,t){t=o(149417,t);for(let i=0,n=e.length;i>>n)>>>0}function a(e,t=0,i=e.byteLength,n=0){for(let o=0;o>>0).toString(16),t/4)}Object.defineProperty(t,"__esModule",{value:!0}),t.StringSHA1=t.stringHash=t.doHash=t.hash=void 0,t.hash=function(e){return n(e,0)},t.doHash=n,t.stringHash=s;class d{constructor(){this._h0=1732584193,this._h1=4023233417,this._h2=2562383102,this._h3=271733878,this._h4=3285377520,this._buff=new Uint8Array(67),this._buffDV=new DataView(this._buff.buffer),this._buffLen=0,this._totalLen=0,this._leftoverHighSurrogate=0,this._finished=!1}update(e){const t=e.length;if(0===t)return;const n=this._buff +;let o,s,r=this._buffLen,a=this._leftoverHighSurrogate;for(0!==a?(o=a,s=-1,a=0):(o=e.charCodeAt(0),s=0);;){let l=o;if(i.isHighSurrogate(o)){if(!(s+1>>6,e[t++]=128|(63&i)>>>0):i<65536?(e[t++]=224|(61440&i)>>>12,e[t++]=128|(4032&i)>>>6,e[t++]=128|(63&i)>>>0):(e[t++]=240|(1835008&i)>>>18,e[t++]=128|(258048&i)>>>12,e[t++]=128|(4032&i)>>>6,e[t++]=128|(63&i)>>>0),t>=64&&(this._step(),t-=64,this._totalLen+=64,e[0]=e[64],e[1]=e[65],e[2]=e[66]),t}digest(){return this._finished||(this._finished=!0,this._leftoverHighSurrogate&&(this._leftoverHighSurrogate=0,this._buffLen=this._push(this._buff,this._buffLen,65533)),this._totalLen+=this._buffLen,this._wrapUp()),l(this._h0)+l(this._h1)+l(this._h2)+l(this._h3)+l(this._h4)} +_wrapUp(){this._buff[this._buffLen++]=128,a(this._buff,this._buffLen),this._buffLen>56&&(this._step(),a(this._buff));const e=8*this._totalLen;this._buffDV.setUint32(56,Math.floor(e/4294967296),!1),this._buffDV.setUint32(60,e%4294967296,!1),this._step()}_step(){const e=d._bigBlock32,t=this._buffDV;for(let i=0;i<64;i+=4)e.setUint32(i,t.getUint32(i,!1),!1);for(let t=64;t<320;t+=4)e.setUint32(t,r(e.getUint32(t-12,!1)^e.getUint32(t-32,!1)^e.getUint32(t-56,!1)^e.getUint32(t-64,!1),1),!1);let i,n,o,s=this._h0,a=this._h1,l=this._h2,c=this._h3,h=this._h4;for(let t=0;t<80;t++)t<20?(i=a&l|~a&c,n=1518500249):t<40?(i=a^l^c,n=1859775393):t<60?(i=a&l|a&c|l&c,n=2400959708):(i=a^l^c,n=3395469782),o=r(s,5)+i+h+n+e.getUint32(4*t,!1)&4294967295,h=c,c=l,l=r(a,30),a=s,s=o;this._h0=this._h0+s&4294967295,this._h1=this._h1+a&4294967295,this._h2=this._h2+l&4294967295,this._h3=this._h3+c&4294967295,this._h4=this._h4+h&4294967295}}t.StringSHA1=d,d._bigBlock32=new DataView(new ArrayBuffer(320))})), +define(t[188],i([0,1,265,113]),(function(e,t,i,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LcsDiff=t.MyArray=t.Debug=t.stringDiff=t.StringDiffSequence=void 0;class o{constructor(e){this.source=e}getElements(){const e=this.source,t=new Int32Array(e.length);for(let i=0,n=e.length;i0||this.m_modifiedCount>0)&&this.m_changes.push(new i.DiffChange(this.m_originalStart,this.m_originalCount,this.m_modifiedStart,this.m_modifiedCount)),this.m_originalCount=0, +this.m_modifiedCount=0,this.m_originalStart=1073741824,this.m_modifiedStart=1073741824}AddOriginalElement(e,t){this.m_originalStart=Math.min(this.m_originalStart,e),this.m_modifiedStart=Math.min(this.m_modifiedStart,t),this.m_originalCount++}AddModifiedElement(e,t){this.m_originalStart=Math.min(this.m_originalStart,e),this.m_modifiedStart=Math.min(this.m_modifiedStart,t),this.m_modifiedCount++}getChanges(){return(this.m_originalCount>0||this.m_modifiedCount>0)&&this.MarkNextChange(),this.m_changes}getReverseChanges(){return(this.m_originalCount>0||this.m_modifiedCount>0)&&this.MarkNextChange(),this.m_changes.reverse(),this.m_changes}}class l{constructor(e,t,i=null){this.ContinueProcessingPredicate=i;const[n,o,s]=l._getElements(e),[r,a,d]=l._getElements(t);this._hasStrings=s&&d,this._originalStringElements=n,this._originalElementsOrHash=o,this._modifiedStringElements=r,this._modifiedElementsOrHash=a,this.m_forwardHistory=[],this.m_reverseHistory=[]}static _isStringArray(e){ +return e.length>0&&"string"==typeof e[0]}static _getElements(e){const t=e.getElements();if(l._isStringArray(t)){const e=new Int32Array(t.length);for(let i=0,o=t.length;i=e&&o>=n&&this.ElementsAreEqual(t,o);)t--,o--;if(e>t||n>o){let r;return n<=o?(s.Assert(e===t+1,"originalStart should only be one more than originalEnd"),r=[new i.DiffChange(e,0,n,o-n+1)]):e<=t?(s.Assert(n===o+1,"modifiedStart should only be one more than modifiedEnd"),r=[new i.DiffChange(e,t-e+1,n,0)]):(s.Assert(e===t+1,"originalStart should only be one more than originalEnd"),s.Assert(n===o+1,"modifiedStart should only be one more than modifiedEnd"),r=[]),r}const a=[0],l=[0],d=this.ComputeRecursionPoint(e,t,n,o,a,l,r),c=a[0],h=l[0];if(null!==d)return d;if(!r[0]){const s=this.ComputeDiffRecursive(e,c,n,h,r);let a=[];return a=r[0]?[new i.DiffChange(c+1,t-(c+1)+1,h+1,o-(h+1)+1)]:this.ComputeDiffRecursive(c+1,t,h+1,o,r),this.ConcatenateChanges(s,a)}return[new i.DiffChange(e,t-e+1,n,o-n+1)]} +WALKTRACE(e,t,n,o,s,r,l,d,c,h,u,g,p,m,f,_,v,C){let b=null,S=null,w=new a,y=t,E=n,L=p[0]-_[0]-o,x=-1073741824,D=this.m_forwardHistory.length-1;do{const t=L+e;t===y||t=0&&(e=(c=this.m_forwardHistory[D])[0],y=1,E=c.length-1)}while(--D>=-1);if(b=w.getReverseChanges(),C[0]){let e=p[0]+1,t=_[0]+1;if(null!==b&&b.length>0){const i=b[b.length-1];e=Math.max(e,i.getOriginalEnd()),t=Math.max(t,i.getModifiedEnd())}S=[new i.DiffChange(e,g-e+1,t,f-t+1)]}else{w=new a,y=r,E=l,L=p[0]-_[0]-d,x=1073741824,D=v?this.m_reverseHistory.length-1:this.m_reverseHistory.length-2;do{const e=L+s;e===y||e=h[e+1]?(m=(u=h[e+1]-1)-L-d,u>x&&w.MarkNextChange(),x=u+1,w.AddOriginalElement(u+1,m+1),L=e+1-s):(m=(u=h[e-1])-L-d,u>x&&w.MarkNextChange(),x=u,w.AddModifiedElement(u+1,m+1),L=e-1-s),D>=0&&(s=(h=this.m_reverseHistory[D])[0],y=1,E=h.length-1) +}while(--D>=-1);S=w.getChanges()}return this.ConcatenateChanges(b,S)}ComputeRecursionPoint(e,t,n,o,s,a,l){let d=0,c=0,h=0,u=0,g=0,p=0;e--,n--,s[0]=0,a[0]=0,this.m_forwardHistory=[],this.m_reverseHistory=[];const m=t-e+(o-n),f=m+1,_=new Int32Array(f),v=new Int32Array(f),C=o-n,b=t-e,S=e-n,w=t-o,y=(b-C)%2==0;_[C]=e,v[b]=t,l[0]=!1;for(let E=1;E<=m/2+1;E++){let m=0,L=0;h=this.ClipDiagonalBound(C-E,E,C,f),u=this.ClipDiagonalBound(C+E,E,C,f);for(let e=h;e<=u;e+=2){c=(d=e===h||em+L&&(m=d,L=c),!y&&Math.abs(e-b)<=E-1&&d>=v[e])return s[0]=d,a[0]=c,i<=v[e]&&E<=1448?this.WALKTRACE(C,h,u,S,b,g,p,w,_,v,d,t,s,c,o,a,y,l):null}const x=(m-e+(L-n)-E)/2;if(null!==this.ContinueProcessingPredicate&&!this.ContinueProcessingPredicate(m,x))return l[0]=!0,s[0]=m,a[0]=L,x>0&&E<=1448?this.WALKTRACE(C,h,u,S,b,g,p,w,_,v,d,t,s,c,o,a,y,l):(e++,n++,[new i.DiffChange(e,t-e+1,n,o-n+1)]);g=this.ClipDiagonalBound(b-E,E,b,f), +p=this.ClipDiagonalBound(b+E,E,b,f);for(let i=g;i<=p;i+=2){c=(d=i===g||i=v[i+1]?v[i+1]-1:v[i-1])-(i-b)-w;const r=d;for(;d>e&&c>n&&this.ElementsAreEqual(d,c);)d--,c--;if(v[i]=d,y&&Math.abs(i-C)<=E&&d<=_[i])return s[0]=d,a[0]=c,r>=_[i]&&E<=1448?this.WALKTRACE(C,h,u,S,b,g,p,w,_,v,d,t,s,c,o,a,y,l):null}if(E<=1447){let e=new Int32Array(u-h+2);e[0]=C-h+1,r.Copy2(_,h,e,1,u-h+1),this.m_forwardHistory.push(e),(e=new Int32Array(p-g+2))[0]=b-g+1,r.Copy2(v,g,e,1,p-g+1),this.m_reverseHistory.push(e)}}return this.WALKTRACE(C,h,u,S,b,g,p,w,_,v,d,t,s,c,o,a,y,l)}PrettifyChanges(e){for(let t=0;t0,r=i.modifiedLength>0 +;for(;i.originalStart+i.originalLength=0;t--){const i=e[t];let n=0,o=0;if(t>0){const i=e[t-1];i.originalLength>0&&(n=i.originalStart+i.originalLength),i.modifiedLength>0&&(o=i.modifiedStart+i.modifiedLength)}const s=i.originalLength>0,r=i.modifiedLength>0;let a=0,l=this._boundaryScore(i.originalStart,i.originalLength,i.modifiedStart,i.modifiedLength);for(let e=1;;e++){const t=i.originalStart-e,d=i.modifiedStart-e;if(tl&&(l=c,a=e)} +i.originalStart-=a,i.modifiedStart-=a}return e}_OriginalIsBoundary(e){return e<=0||e>=this._originalElementsOrHash.length-1||this._hasStrings&&/^\s*$/.test(this._originalStringElements[e])}_OriginalRegionIsBoundary(e,t){if(this._OriginalIsBoundary(e)||this._OriginalIsBoundary(e-1))return!0;if(t>0){const i=e+t;if(this._OriginalIsBoundary(i-1)||this._OriginalIsBoundary(i))return!0}return!1}_ModifiedIsBoundary(e){return e<=0||e>=this._modifiedElementsOrHash.length-1||this._hasStrings&&/^\s*$/.test(this._modifiedStringElements[e])}_ModifiedRegionIsBoundary(e,t){if(this._ModifiedIsBoundary(e)||this._ModifiedIsBoundary(e-1))return!0;if(t>0){const i=e+t;if(this._ModifiedIsBoundary(i-1)||this._ModifiedIsBoundary(i))return!0}return!1}_boundaryScore(e,t,i,n){return(this._OriginalRegionIsBoundary(e,t)?1:0)+(this._ModifiedRegionIsBoundary(i,n)?1:0)}ConcatenateChanges(e,t){let i=[];if(0===e.length||0===t.length)return t.length>0?t:e;if(this.ChangesOverlap(e[e.length-1],t[0],i)){const n=new Array(e.length+t.length-1) +;return r.Copy(e,0,n,0,e.length-1),n[e.length-1]=i[0],r.Copy(t,1,n,e.length,t.length-1),n}{const i=new Array(e.length+t.length);return r.Copy(e,0,i,0,e.length),r.Copy(t,0,i,e.length,t.length),i}}ChangesOverlap(e,t,n){if(s.Assert(e.originalStart<=t.originalStart,"Left change is not less than or equal to right change"),s.Assert(e.modifiedStart<=t.modifiedStart,"Left change is not less than or equal to right change"),e.originalStart+e.originalLength>=t.originalStart||e.modifiedStart+e.modifiedLength>=t.modifiedStart){const o=e.originalStart;let s=e.originalLength;const r=e.modifiedStart;let a=e.modifiedLength;return e.originalStart+e.originalLength>=t.originalStart&&(s=t.originalStart+t.originalLength-e.originalStart),e.modifiedStart+e.modifiedLength>=t.modifiedStart&&(a=t.modifiedStart+t.modifiedLength-e.modifiedStart),n[0]=new i.DiffChange(o,s,r,a),!0}return n[0]=null,!1}ClipDiagonalBound(e,t,i,n){if(e>=0&&e0?t[0].toUpperCase()+t.substr(1):t}return t}function o(e,t,i){return-1!==e[0].indexOf(i)&&-1!==t.indexOf(i)&&e[0].split(i).length===t.split(i).length}function s(e,t,i){const o=t.split(i),s=e[0].split(i);let r="";return o.forEach((e,t)=>{r+=n([s[t]],e)+i}),r.slice(0,-1)}Object.defineProperty(t,"__esModule",{value:!0}),t.buildReplaceStringWithCasePreserved=void 0,t.buildReplaceStringWithCasePreserved=n})),define(t[77],i([0,1,8]),(function(e,t,i){"use strict";var n;Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.Ignore=0]="Ignore",e[e.Info=1]="Info",e[e.Warning=2]="Warning",e[e.Error=3]="Error"}(n||(n={})),function(e){const t="error",n="warning",o="warn",s="info";e.fromValue=function(r){ +return r?i.equalsIgnoreCase(t,r)?e.Error:i.equalsIgnoreCase(n,r)||i.equalsIgnoreCase(o,r)?e.Warning:i.equalsIgnoreCase(s,r)?e.Info:e.Ignore:e.Ignore}}(n||(n={})),t.default=n})),define(t[23],i([0,1]),(function(e,t){"use strict";function i(e){return"string"==typeof e}function n(e){return void 0===e}function o(e){return n(e)||null===e}function s(e){return"function"==typeof e}function r(e,t){if(i(t)){if(typeof e!==t)throw new Error(`argument does not match constraint: typeof ${t}`)}else if(s(t)){try{if(e instanceof t)return}catch(e){}if(!o(e)&&e.constructor===t)return;if(1===t.length&&!0===t.call(void 0,e))return;throw new Error("argument does not match one of these constraints: arg instanceof constraint, arg.constructor === constraint, nor constraint(arg) === true")}}function a(e){let t=[],i=Object.getPrototypeOf(e);for(;Object.prototype!==i;)t=t.concat(Object.getOwnPropertyNames(i)),i=Object.getPrototypeOf(i);return t}Object.defineProperty(t,"__esModule",{value:!0}), +t.withNullAsUndefined=t.createProxyObject=t.getAllMethodNames=t.getAllPropertyNames=t.validateConstraint=t.validateConstraints=t.isFunction=t.assertIsDefined=t.assertType=t.isUndefinedOrNull=t.isUndefined=t.isBoolean=t.isNumber=t.isObject=t.isString=t.isArray=void 0,t.isArray=function(e){return Array.isArray(e)},t.isString=i,t.isObject=function(e){return!("object"!=typeof e||null===e||Array.isArray(e)||e instanceof RegExp||e instanceof Date)},t.isNumber=function(e){return"number"==typeof e&&!isNaN(e)},t.isBoolean=function(e){return!0===e||!1===e},t.isUndefined=n,t.isUndefinedOrNull=o,t.assertType=function(e,t){if(!e)throw new Error(t?`Unexpected type, expected '${t}'`:"Unexpected type")},t.assertIsDefined=function(e){if(o(e))throw new Error("Assertion Failed: argument is undefined or null");return e},t.isFunction=s,t.validateConstraints=function(e,t){const i=Math.min(e.length,t.length);for(let n=0;n(function(){const i=Array.prototype.slice.call(arguments,0);return t(e,i)});let n={};for(const t of e)n[t]=i(t);return n},t.withNullAsUndefined=function(e){return null===e?void 0:e}})),define(t[37],i([0,1,23]),(function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getOrDefault=t.equals=t.assign=t.mixin=t.cloneAndChange=t.deepFreeze=t.deepClone=void 0,t.deepClone=function e(t){if(!t||"object"!=typeof t)return t;if(t instanceof RegExp)return t;const i=Array.isArray(t)?[]:{};return Object.keys(t).forEach(n=>{t[n]&&"object"==typeof t[n]?i[n]=e(t[n]):i[n]=t[n]}),i},t.deepFreeze=function(e){if(!e||"object"!=typeof e)return e;const t=[e];for(;t.length>0;){const e=t.shift();Object.freeze(e);for(const i in e)if(n.call(e,i)){const n=e[i];"object"!=typeof n||Object.isFrozen(n)||t.push(n)}}return e};const n=Object.prototype.hasOwnProperty;t.cloneAndChange=function(e,t){ +return function e(t,o,s){if(i.isUndefinedOrNull(t))return t;const r=o(t);if(void 0!==r)return r;if(i.isArray(t)){const i=[];for(const n of t)i.push(e(n,o,s));return i}if(i.isObject(t)){if(s.has(t))throw new Error("Cannot clone recursive data-structure");s.add(t);const i={};for(let r in t)n.call(t,r)&&(i[r]=e(t[r],o,s));return s.delete(t),i}return t}(e,t,new Set)},t.mixin=function e(t,n,o=!0){return i.isObject(t)?(i.isObject(n)&&Object.keys(n).forEach(s=>{s in t?o&&(i.isObject(t[s])&&i.isObject(n[s])?e(t[s],n[s],o):t[s]=n[s]):t[s]=n[s]}),t):n},t.assign=function(e,...t){return t.forEach(t=>Object.keys(t).forEach(i=>e[i]=t[i])),e},t.equals=function e(t,i){if(t===i)return!0;if(null==t||null==i)return!1;if(typeof t!=typeof i)return!1;if("object"!=typeof t)return!1;if(Array.isArray(t)!==Array.isArray(i))return!1;let n,o;if(Array.isArray(t)){if(t.length!==i.length)return!1;for(n=0;n255?255:0|e},t.toUint32=function(e){return e<0?0:e>4294967295?4294967295:0|e}})),define(t[24],i([0,1,16,63]),(function(e,t,i,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.uriToFsPath=t.URI=void 0;const o=/^\w[\w\d+.-]*$/,s=/^\//,r=/^\/\//;const a="",l="/",d=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class c{constructor(e,t,i,n,d,c=!1){"object"==typeof e?(this.scheme=e.scheme||a,this.authority=e.authority||a,this.path=e.path||a,this.query=e.query||a,this.fragment=e.fragment||a):(this.scheme=function(e,t){return e||t?e:"file"}(e,c),this.authority=t||a,this.path=function(e,t){switch(e){case"https":case"http":case"file":t?t[0]!==l&&(t=l+t):t=l}return t +}(this.scheme,i||a),this.query=n||a,this.fragment=d||a,function(e,t){if(!e.scheme&&t)throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${e.authority}", path: "${e.path}", query: "${e.query}", fragment: "${e.fragment}"}`);if(e.scheme&&!o.test(e.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(e.path)if(e.authority){if(!s.test(e.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(r.test(e.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}(this,c))}static isUri(e){return e instanceof c||!!e&&("string"==typeof e.authority&&"string"==typeof e.fragment&&"string"==typeof e.path&&"string"==typeof e.query&&"string"==typeof e.scheme&&"function"==typeof e.fsPath&&"function"==typeof e.with&&"function"==typeof e.toString)}get fsPath(){return f(this,!1)} +with(e){if(!e)return this;let{scheme:t,authority:i,path:n,query:o,fragment:s}=e;return void 0===t?t=this.scheme:null===t&&(t=a),void 0===i?i=this.authority:null===i&&(i=a),void 0===n?n=this.path:null===n&&(n=a),void 0===o?o=this.query:null===o&&(o=a),void 0===s?s=this.fragment:null===s&&(s=a),t===this.scheme&&i===this.authority&&n===this.path&&o===this.query&&s===this.fragment?this:new u(t,i,n,o,s)}static parse(e,t=!1){const i=d.exec(e);return i?new u(i[2]||a,C(i[4]||a),C(i[5]||a),C(i[7]||a),C(i[9]||a),t):new u(a,a,a,a,a)}static file(e){let t=a;if(i.isWindows&&(e=e.replace(/\\/g,l)),e[0]===l&&e[1]===l){const i=e.indexOf(l,2);-1===i?(t=e.substring(2),e=l):(t=e.substring(2,i),e=e.substring(i)||l)}return new u("file",t,e,a,a)}static from(e){return new u(e.scheme,e.authority,e.path,e.query,e.fragment)}static joinPath(e,...t){if(!e.path)throw new Error("[UriError]: cannot call joinPaths on URI without path");let o +;return o=i.isWindows&&"file"===e.scheme?c.file(n.win32.join(f(e,!0),...t)).path:n.posix.join(e.path,...t),e.with({path:o})}toString(e=!1){return _(this,e)}toJSON(){return this}static revive(e){if(e){if(e instanceof c)return e;{const t=new u(e);return t._formatted=e.external,t._fsPath=e._sep===h?e.fsPath:null,t}}return e}}t.URI=c;const h=i.isWindows?1:void 0;class u extends c{constructor(){super(...arguments),this._formatted=null,this._fsPath=null}get fsPath(){return this._fsPath||(this._fsPath=f(this,!1)),this._fsPath}toString(e=!1){return e?_(this,!0):(this._formatted||(this._formatted=_(this,!1)),this._formatted)}toJSON(){const e={$mid:1};return this._fsPath&&(e.fsPath=this._fsPath,e._sep=h),this._formatted&&(e.external=this._formatted),this.path&&(e.path=this.path),this.scheme&&(e.scheme=this.scheme),this.authority&&(e.authority=this.authority),this.query&&(e.query=this.query),this.fragment&&(e.fragment=this.fragment),e}}const g={58:"%3A",47:"%2F",63:"%3F",35:"%23",91:"%5B",93:"%5D",64:"%40",33:"%21", +36:"%24",38:"%26",39:"%27",40:"%28",41:"%29",42:"%2A",43:"%2B",44:"%2C",59:"%3B",61:"%3D",32:"%20"};function p(e,t){let i=void 0,n=-1;for(let o=0;o=97&&s<=122||s>=65&&s<=90||s>=48&&s<=57||45===s||46===s||95===s||126===s||t&&47===s)-1!==n&&(i+=encodeURIComponent(e.substring(n,o)),n=-1),void 0!==i&&(i+=e.charAt(o));else{void 0===i&&(i=e.substr(0,o));const t=g[s];void 0!==t?(-1!==n&&(i+=encodeURIComponent(e.substring(n,o)),n=-1),i+=t):-1===n&&(n=o)}}return-1!==n&&(i+=encodeURIComponent(e.substring(n))),void 0!==i?i:e}function m(e){let t=void 0;for(let i=0;i1&&"file"===e.scheme?`//${e.authority}${e.path}`:47===e.path.charCodeAt(0)&&(e.path.charCodeAt(1)>=65&&e.path.charCodeAt(1)<=90||e.path.charCodeAt(1)>=97&&e.path.charCodeAt(1)<=122)&&58===e.path.charCodeAt(2)?t?e.path.substr(1):e.path[1].toLowerCase()+e.path.substr(2):e.path,i.isWindows&&(n=n.replace(/\//g,"\\")),n}function _(e,t){const i=t?m:p;let n="",{scheme:o,authority:s,path:r,query:a,fragment:d}=e;if(o&&(n+=o,n+=":"),(s||"file"===o)&&(n+=l,n+=l),s){let e=s.indexOf("@");if(-1!==e){const t=s.substr(0,e);s=s.substr(e+1),-1===(e=t.indexOf(":"))?n+=i(t,!1):(n+=i(t.substr(0,e),!1),n+=":",n+=i(t.substr(e+1),!1)),n+="@"}-1===(e=(s=s.toLowerCase()).indexOf(":"))?n+=i(s,!1):(n+=i(s.substr(0,e),!1),n+=s.substr(e))}if(r){if(r.length>=3&&47===r.charCodeAt(0)&&58===r.charCodeAt(2)){const e=r.charCodeAt(1);e>=65&&e<=90&&(r=`/${String.fromCharCode(e+32)}:${r.substr(3)}`)}else if(r.length>=2&&58===r.charCodeAt(1)){const e=r.charCodeAt(0) +;e>=65&&e<=90&&(r=`${String.fromCharCode(e+32)}:${r.substr(2)}`)}n+=i(r,!0)}return a&&(n+="?",n+=i(a,!1)),d&&(n+="#",n+=t?d:p(d,!1)),n}t.uriToFsPath=f;const v=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function C(e){return e.match(v)?e.replace(v,e=>(function e(t){try{return decodeURIComponent(t)}catch(i){return t.length>3?t.substr(0,3)+e(t.substr(3)):t}})(e)):e}})),define(t[189],i([0,1,112,24]),(function(e,t,i,n){"use strict";function o(e,t=0){if(!e||t>200)return e;if("object"==typeof e){switch(e.$mid){case 1:return n.URI.revive(e);case 2:return new RegExp(e.source,e.flags)}if(e instanceof i.VSBuffer||e instanceof Uint8Array)return e;if(Array.isArray(e))for(let i=0;it.split(" ").forEach(t=>this.addClass(e,t)))}addClass(e,t){t&&e.classList&&e.classList.add(t)}removeClass(e,t){t&&e.classList&&e.classList.remove(t)}removeClasses(e,...t){t.forEach(t=>t.split(" ").forEach(t=>this.removeClass(e,t)))}toggleClass(e,t,i){e.classList&&e.classList.toggle(t,i)}};t.hasClass=p.hasClass.bind(p),t.addClass=p.addClass.bind(p),t.addClasses=p.addClasses.bind(p),t.removeClass=p.removeClass.bind(p),t.removeClasses=p.removeClasses.bind(p),t.toggleClass=p.toggleClass.bind(p);class m{constructor(e,t,i,n){this._node=e,this._type=t,this._handler=i,this._options=n||!1,this._node.addEventListener(this._type,this._handler,this._options)}dispose(){ +this._handler&&(this._node.removeEventListener(this._type,this._handler,this._options),this._node=null,this._handler=null)}}function f(e,t,i,n){return new m(e,t,i,n)}function _(e){return function(t){return e(new s.StandardMouseEvent(t))}}t.addDisposableListener=f;t.addStandardDisposableListener=function(e,t,i,n){let s=i;return"click"===t||"mousedown"===t?s=_(i):"keydown"!==t&&"keypress"!==t&&"keyup"!==t||(s=function(e){return function(t){return e(new o.StandardKeyboardEvent(t))}}(i)),f(e,t,s,n)};function v(e,i,n){return f(e,c.isIOS&&g.BrowserFeatures.pointerEvents?t.EventType.POINTER_DOWN:t.EventType.MOUSE_DOWN,i,n)}t.addStandardDisposableGenericMouseDownListner=function(e,t,i){return v(e,_(t),i)},t.addDisposableGenericMouseDownListner=v,t.addDisposableGenericMouseUpListner=function(e,i,n){return f(e,c.isIOS&&g.BrowserFeatures.pointerEvents?t.EventType.POINTER_UP:t.EventType.MOUSE_UP,i,n)},t.addDisposableNonBubblingMouseOutListener=function(e,t){return f(e,"mouseout",i=>{let n=i.relatedTarget +;for(;n&&n!==e;)n=n.parentNode;n!==e&&t(i)})},t.addDisposableNonBubblingPointerOutListener=function(e,t){return f(e,"pointerout",i=>{let n=i.relatedTarget;for(;n&&n!==e;)n=n.parentNode;n!==e&&t(i)})};let C=null;class b{constructor(e,t=0){this._runner=e,this.priority=t,this._canceled=!1}dispose(){this._canceled=!0}execute(){if(!this._canceled)try{this._runner()}catch(e){a.onUnexpectedError(e)}}static sort(e,t){return t.priority-e.priority}}!function(){let e=[],i=null,n=!1,o=!1,s=()=>{for(n=!1,i=e,e=[],o=!0;i.length>0;){i.sort(b.sort),i.shift().execute()}o=!1};t.scheduleAtNextAnimationFrame=(t,i=0)=>{let o=new b(t,i);return e.push(o),n||(n=!0,function(e){if(!C){const e=e=>setTimeout(()=>e((new Date).getTime()),0);C=self.requestAnimationFrame||self.msRequestAnimationFrame||self.webkitRequestAnimationFrame||self.mozRequestAnimationFrame||self.oRequestAnimationFrame||e}C.call(self,e)}(s)),o},t.runAtThisOrScheduleAtNextAnimationFrame=(e,n)=>{if(o){let t=new b(e,n);return i.push(t),t} +return t.scheduleAtNextAnimationFrame(e,n)}}();const S=16,w=function(e,t){return t};class y extends d.Disposable{constructor(e,t,i,n=w,o=S){super();let s=null,a=0,l=this._register(new r.TimeoutTimer),d=()=>{a=(new Date).getTime(),i(s),s=null};this._register(f(e,t,e=>{s=n(s,e);let t=(new Date).getTime()-a;t>=o?(l.cancel(),d()):l.setIfNotSet(d,o-t)}))}}function E(e){return document.defaultView.getComputedStyle(e,null)}t.addDisposableThrottledListener=function(e,t,i,n,o){return new y(e,t,i,n,o)},t.getComputedStyle=E,t.getClientArea=function(e){if(e!==document.body)return new x(e.clientWidth,e.clientHeight);if(c.isIOS&&window.visualViewport){const e=window.visualViewport.width,t=window.visualViewport.height-(i.isStandalone?24:0);return new x(e,t)}if(window.innerWidth&&window.innerHeight)return new x(window.innerWidth,window.innerHeight);if(document.body&&document.body.clientWidth&&document.body.clientHeight)return new x(document.body.clientWidth,document.body.clientHeight) +;if(document.documentElement&&document.documentElement.clientWidth&&document.documentElement.clientHeight)return new x(document.documentElement.clientWidth,document.documentElement.clientHeight);throw new Error("Unable to figure out browser width and height")};class L{static convertToPixels(e,t){return parseFloat(t)||0}static getDimension(e,t,i){let n=E(e),o="0";return n&&(o=n.getPropertyValue?n.getPropertyValue(t):n.getAttribute(i)),L.convertToPixels(e,o)}static getBorderLeftWidth(e){return L.getDimension(e,"border-left-width","borderLeftWidth")}static getBorderRightWidth(e){return L.getDimension(e,"border-right-width","borderRightWidth")}static getBorderTopWidth(e){return L.getDimension(e,"border-top-width","borderTopWidth")}static getBorderBottomWidth(e){return L.getDimension(e,"border-bottom-width","borderBottomWidth")}static getPaddingLeft(e){return L.getDimension(e,"padding-left","paddingLeft")}static getPaddingRight(e){return L.getDimension(e,"padding-right","paddingRight")}static getPaddingTop(e){ +return L.getDimension(e,"padding-top","paddingTop")}static getPaddingBottom(e){return L.getDimension(e,"padding-bottom","paddingBottom")}static getMarginLeft(e){return L.getDimension(e,"margin-left","marginLeft")}static getMarginTop(e){return L.getDimension(e,"margin-top","marginTop")}static getMarginRight(e){return L.getDimension(e,"margin-right","marginRight")}static getMarginBottom(e){return L.getDimension(e,"margin-bottom","marginBottom")}}class x{constructor(e,t){this.width=e,this.height=t}}function D(e,t){for(;e;){if(e===t)return!0;e=e.parentNode}return!1}function k(e,i,n){for(;e&&e.nodeType===e.ELEMENT_NODE;){if(t.hasClass(e,i))return e;if(n)if("string"==typeof n){if(t.hasClass(e,n))return null}else if(e===n)return null;e=e.parentNode}return null}function N(e){return e&&!!e.host&&!!e.mode}function I(e){for(;e.parentNode;){if(e===document.body)return null;e=e.parentNode}return N(e)?e:null}function M(e=document.getElementsByTagName("head")[0]){let t=document.createElement("style") +;return t.type="text/css",t.media="screen",e.appendChild(t),t}t.Dimension=x,t.getTopLeftOffset=function(e){let t=e.offsetParent,i=e.offsetTop,n=e.offsetLeft;for(;null!==(e=e.parentNode)&&e!==document.body&&e!==document.documentElement;){i-=e.scrollTop;const o=N(e)?null:E(e);o&&(n-="rtl"!==o.direction?e.scrollLeft:-e.scrollLeft),e===t&&(n+=L.getBorderLeftWidth(e),i+=L.getBorderTopWidth(e),i+=e.offsetTop,n+=e.offsetLeft,t=e.offsetParent)}return{left:n,top:i}},t.getDomNodePagePosition=function(e){let i=e.getBoundingClientRect();return{left:i.left+t.StandardWindow.scrollX,top:i.top+t.StandardWindow.scrollY,width:i.width,height:i.height}},t.StandardWindow=new class{get scrollX(){return"number"==typeof window.scrollX?window.scrollX:document.body.scrollLeft+document.documentElement.scrollLeft}get scrollY(){return"number"==typeof window.scrollY?window.scrollY:document.body.scrollTop+document.documentElement.scrollTop}},t.getTotalWidth=function(e){let t=L.getMarginLeft(e)+L.getMarginRight(e);return e.offsetWidth+t}, +t.getContentWidth=function(e){let t=L.getBorderLeftWidth(e)+L.getBorderRightWidth(e),i=L.getPaddingLeft(e)+L.getPaddingRight(e);return e.offsetWidth-t-i},t.getContentHeight=function(e){let t=L.getBorderTopWidth(e)+L.getBorderBottomWidth(e),i=L.getPaddingTop(e)+L.getPaddingBottom(e);return e.offsetHeight-t-i},t.getTotalHeight=function(e){let t=L.getMarginTop(e)+L.getMarginBottom(e);return e.offsetHeight+t},t.isAncestor=D,t.findParentWithClass=k,t.hasParentWithClass=function(e,t,i){return!!k(e,t,i)},t.isShadowRoot=N,t.isInShadowDOM=function(e){return!!I(e)},t.getShadowRoot=I,t.getActiveElement=function(){let e=document.activeElement;for(;null==e?void 0:e.shadowRoot;)e=e.shadowRoot.activeElement;return e},t.createStyleSheet=M;let R=null;function T(){return R||(R=M()),R}t.createCSSRule=function(e,t,i=T()){i&&t&&i.sheet.insertRule(e+"{"+t+"}",0)},t.removeCSSRulesContainingSelector=function(e,t=T()){if(!t)return;let i=function(e){ +return e&&e.sheet&&e.sheet.rules?e.sheet.rules:e&&e.sheet&&e.sheet.cssRules?e.sheet.cssRules:[]}(t),n=[];for(let t=0;t=0;e--)t.sheet.deleteRule(n[e])},t.isHTMLElement=function(e){return"object"==typeof HTMLElement?e instanceof HTMLElement:e&&"object"==typeof e&&1===e.nodeType&&"string"==typeof e.nodeName},t.EventType={CLICK:"click",AUXCLICK:"auxclick",DBLCLICK:"dblclick",MOUSE_UP:"mouseup",MOUSE_DOWN:"mousedown",MOUSE_OVER:"mouseover",MOUSE_MOVE:"mousemove",MOUSE_OUT:"mouseout",MOUSE_ENTER:"mouseenter",MOUSE_LEAVE:"mouseleave",MOUSE_WHEEL:i.isEdge?"mousewheel":"wheel",POINTER_UP:"pointerup",POINTER_DOWN:"pointerdown",POINTER_MOVE:"pointermove",CONTEXT_MENU:"contextmenu",WHEEL:"wheel",KEY_DOWN:"keydown",KEY_PRESS:"keypress",KEY_UP:"keyup",LOAD:"load",BEFORE_UNLOAD:"beforeunload",UNLOAD:"unload",ABORT:"abort",ERROR:"error",RESIZE:"resize",SCROLL:"scroll",FULLSCREEN_CHANGE:"fullscreenchange", +WK_FULLSCREEN_CHANGE:"webkitfullscreenchange",SELECT:"select",CHANGE:"change",SUBMIT:"submit",RESET:"reset",FOCUS:"focus",FOCUS_IN:"focusin",FOCUS_OUT:"focusout",BLUR:"blur",INPUT:"input",STORAGE:"storage",DRAG_START:"dragstart",DRAG:"drag",DRAG_ENTER:"dragenter",DRAG_LEAVE:"dragleave",DRAG_OVER:"dragover",DROP:"drop",DRAG_END:"dragend",ANIMATION_START:i.isWebKit?"webkitAnimationStart":"animationstart",ANIMATION_END:i.isWebKit?"webkitAnimationEnd":"animationend",ANIMATION_ITERATION:i.isWebKit?"webkitAnimationIteration":"animationiteration"},t.EventHelper={stop:function(e,t){e.preventDefault?e.preventDefault():e.returnValue=!1,t&&(e.stopPropagation?e.stopPropagation():e.cancelBubble=!0)}},t.saveParentsScrollTop=function(e){let t=[];for(let i=0;e&&e.nodeType===e.ELEMENT_NODE;i++)t[i]=e.scrollTop,e=e.parentNode;return t},t.restoreParentsScrollTop=function(e,t){for(let i=0;e&&e.nodeType===e.ELEMENT_NODE;i++)e.scrollTop!==t[i]&&(e.scrollTop=t[i]),e=e.parentNode};class O extends d.Disposable{constructor(e){super(), +this._onDidFocus=this._register(new l.Emitter),this.onDidFocus=this._onDidFocus.event,this._onDidBlur=this._register(new l.Emitter),this.onDidBlur=this._onDidBlur.event;let i=D(document.activeElement,e),o=!1;const s=()=>{o=!1,i||(i=!0,this._onDidFocus.fire())},r=()=>{i&&(o=!0,window.setTimeout(()=>{o&&(o=!1,i=!1,this._onDidBlur.fire())},0))};this._refreshStateHandler=()=>{D(document.activeElement,e)!==i&&(i?r():s())},this._register(n.domEvent(e,t.EventType.FOCUS,!0)(s)),this._register(n.domEvent(e,t.EventType.BLUR,!0)(r))}}t.trackFocus=function(e){return new O(e)},t.append=function(e,...t){return t.forEach(t=>e.appendChild(t)),t[t.length-1]};const A=/([\w\-]+)?(#([\w\-]+))?((\.([\w\-]+))*)/;var P;function F(e,t,i,...n){let o=A.exec(t);if(!o)throw new Error("Bad use of emmet");i=Object.assign({},i||{});let s,r=o[1]||"div";return s=e!==P.HTML?document.createElementNS(e,r):document.createElement(r),o[3]&&(s.id=o[3]),o[4]&&(s.className=o[4].replace(/\./g," ").trim()),Object.keys(i).forEach(e=>{const t=i[e] +;void 0!==t&&(/^on\w+$/.test(e)?s[e]=t:"selected"===e?t&&s.setAttribute(e,"true"):s.setAttribute(e,t))}),h.coalesce(n).forEach(e=>{e instanceof Node?s.appendChild(e):s.appendChild(document.createTextNode(e))}),s}function W(e,t,...i){return F(P.HTML,e,t,...i)}function B(e){return e&&u.Schemas.vscodeRemote===e.scheme?u.RemoteAuthorities.rewrite(e):e}t.reset=function(e,...t){e.innerText="",h.coalesce(t).forEach(t=>{t instanceof Node?e.appendChild(t):e.appendChild(document.createTextNode(t))})},function(e){e.HTML="http://www.w3.org/1999/xhtml",e.SVG="http://www.w3.org/2000/svg"}(P=t.Namespace||(t.Namespace={})),t.$=W,W.SVG=function(e,t,...i){return F(P.SVG,e,t,...i)},t.show=function(...e){for(let t of e)t.style.display="",t.removeAttribute("aria-hidden")},t.hide=function(...e){for(let t of e)t.style.display="none",t.setAttribute("aria-hidden","true")},t.removeTabIndexAndUpdateFocus=function(e){if(e&&e.hasAttribute("tabIndex")){if(document.activeElement===e){let t=function(e,t){ +for(;e&&e.nodeType===e.ELEMENT_NODE;){if(e instanceof HTMLElement&&e.hasAttribute(t))return e;e=e.parentNode}return null}(e.parentElement,"tabIndex");t&&t.focus()}e.removeAttribute("tabindex")}},t.getElementsByTagName=function(e){return Array.prototype.slice.call(document.getElementsByTagName(e),0)},t.computeScreenAwareSize=function(e){const t=window.devicePixelRatio*e;return Math.max(1,Math.floor(t))/window.devicePixelRatio},t.windowOpenNoOpener=function(e){if(c.isNative||i.isEdgeWebView)window.open(e);else{let t=window.open();t&&(t.opener=null,t.location.href=e)}},t.animate=function(e){const i=()=>{e(),n=t.scheduleAtNextAnimationFrame(i)};let n=t.scheduleAtNextAnimationFrame(i);return d.toDisposable(()=>n.dispose())},u.RemoteAuthorities.setPreferredWebSchema(/^https:/.test(window.location.href)?"https":"http"),t.asDomUri=B,t.asCSSUrl=function(e){return e?`url('${B(e).toString(!0).replace(/'/g,"%27")}')`:"url('')"}})),define(t[30],i([0,1,7]),(function(e,t,i){"use strict" +;Object.defineProperty(t,"__esModule",{value:!0}),t.createFastDomNode=t.FastDomNode=void 0;class n{constructor(e){this.domNode=e,this._maxWidth=-1,this._width=-1,this._height=-1,this._top=-1,this._left=-1,this._bottom=-1,this._right=-1,this._fontFamily="",this._fontWeight="",this._fontSize=-1,this._fontFeatureSettings="",this._lineHeight=-1,this._letterSpacing=-100,this._className="",this._display="",this._position="",this._visibility="",this._backgroundColor="",this._layerHint=!1,this._contain="none",this._boxShadow=""}setMaxWidth(e){this._maxWidth!==e&&(this._maxWidth=e,this.domNode.style.maxWidth=this._maxWidth+"px")}setWidth(e){this._width!==e&&(this._width=e,this.domNode.style.width=this._width+"px")}setHeight(e){this._height!==e&&(this._height=e,this.domNode.style.height=this._height+"px")}setTop(e){this._top!==e&&(this._top=e,this.domNode.style.top=this._top+"px")}unsetTop(){-1!==this._top&&(this._top=-1,this.domNode.style.top="")}setLeft(e){this._left!==e&&(this._left=e, +this.domNode.style.left=this._left+"px")}setBottom(e){this._bottom!==e&&(this._bottom=e,this.domNode.style.bottom=this._bottom+"px")}setRight(e){this._right!==e&&(this._right=e,this.domNode.style.right=this._right+"px")}setFontFamily(e){this._fontFamily!==e&&(this._fontFamily=e,this.domNode.style.fontFamily=this._fontFamily)}setFontWeight(e){this._fontWeight!==e&&(this._fontWeight=e,this.domNode.style.fontWeight=this._fontWeight)}setFontSize(e){this._fontSize!==e&&(this._fontSize=e,this.domNode.style.fontSize=this._fontSize+"px")}setFontFeatureSettings(e){this._fontFeatureSettings!==e&&(this._fontFeatureSettings=e,this.domNode.style.fontFeatureSettings=this._fontFeatureSettings)}setLineHeight(e){this._lineHeight!==e&&(this._lineHeight=e,this.domNode.style.lineHeight=this._lineHeight+"px")}setLetterSpacing(e){this._letterSpacing!==e&&(this._letterSpacing=e,this.domNode.style.letterSpacing=this._letterSpacing+"px")}setClassName(e){this._className!==e&&(this._className=e,this.domNode.className=this._className)} +toggleClassName(e,t){i.toggleClass(this.domNode,e,t),this._className=this.domNode.className}setDisplay(e){this._display!==e&&(this._display=e,this.domNode.style.display=this._display)}setPosition(e){this._position!==e&&(this._position=e,this.domNode.style.position=this._position)}setVisibility(e){this._visibility!==e&&(this._visibility=e,this.domNode.style.visibility=this._visibility)}setBackgroundColor(e){this._backgroundColor!==e&&(this._backgroundColor=e,this.domNode.style.backgroundColor=this._backgroundColor)}setLayerHinting(e){this._layerHint!==e&&(this._layerHint=e,this.domNode.style.transform=this._layerHint?"translate3d(0px, 0px, 0px)":"")}setBoxShadow(e){this._boxShadow!==e&&(this._boxShadow=e,this.domNode.style.boxShadow=e)}setContain(e){this._contain!==e&&(this._contain=e,this.domNode.style.contain=this._contain)}setAttribute(e,t){this.domNode.setAttribute(e,t)}removeAttribute(e){this.domNode.removeAttribute(e)}appendChild(e){this.domNode.appendChild(e.domNode)}removeChild(e){ +this.domNode.removeChild(e.domNode)}}t.FastDomNode=n,t.createFastDomNode=function(e){return new n(e)}})),define(t[148],i([0,1,7]),(function(e,t,i){"use strict";function n(e){const t=e.inline?"span":"div",i=document.createElement(t);return e.className&&(i.className=e.className),i}Object.defineProperty(t,"__esModule",{value:!0}),t.createElement=t.renderFormattedText=t.renderText=void 0,t.renderText=function(e,t={}){const i=n(t);return i.textContent=e,i},t.renderFormattedText=function(e,t={}){const r=n(t);return function e(t,n,o){let s;if(2===n.type)s=document.createTextNode(n.content||"");else if(3===n.type)s=document.createElement("b");else if(4===n.type)s=document.createElement("i");else if(5===n.type&&o){const e=document.createElement("a");e.href="#",o.disposeables.add(i.addStandardDisposableListener(e,"click",e=>{o.callback(String(n.index),e)})),s=e}else 7===n.type?s=document.createElement("br"):1===n.type&&(s=t);s&&t!==s&&t.appendChild(s);s&&Array.isArray(n.children)&&n.children.forEach(t=>{e(s,t,o)}) +}(r,function(e){const t={type:1,children:[]};let i=0,n=t;const r=[],a=new o(e);for(;!a.eos();){let e=a.next();const t="\\"===e&&0!==s(a.peek());if(t&&(e=a.next()),t||0===s(e)||e!==a.peek())if("\n"===e)2===n.type&&(n=r.pop()),n.children.push({type:7});else if(2!==n.type){const t={type:2,content:e};n.children.push(t),r.push(n),n=t}else n.content+=e;else{a.advance(),2===n.type&&(n=r.pop());const t=s(e);if(n.type===t||5===n.type&&6===t)n=r.pop();else{const e={type:t,children:[]};5===t&&(e.index=i,i++),n.children.push(e),r.push(n),n=e}}}2===n.type&&(n=r.pop());r.length;return t}(e),t.actionHandler),r},t.createElement=n;class o{constructor(e){this.source=e,this.index=0}eos(){return this.index>=this.source.length}next(){const e=this.peek();return this.advance(),e}peek(){return this.source[this.index]}advance(){this.index++}}function s(e){switch(e){case"*":return 3;case"_":return 4;case"[":return 5;case"]":return 6;default:return 0}}})),define(t[86],i([0,1,7,16,183,51,2,98]),(function(e,t,i,n,o,s,r,a){"use strict" +;Object.defineProperty(t,"__esModule",{value:!0}),t.GlobalMouseMoveMonitor=t.standardMouseMoveMerger=void 0,t.standardMouseMoveMerger=function(e,t){let i=new s.StandardMouseEvent(t);return i.preventDefault(),{leftButton:i.leftButton,buttons:i.buttons,posx:i.posx,posy:i.posy}};t.GlobalMouseMoveMonitor=class{constructor(){this._hooks=new r.DisposableStore,this._mouseMoveEventMerger=null,this._mouseMoveCallback=null,this._onStopCallback=null}dispose(){this.stopMonitoring(!1),this._hooks.dispose()}stopMonitoring(e){if(!this.isMonitoring())return;this._hooks.clear(),this._mouseMoveEventMerger=null,this._mouseMoveCallback=null;const t=this._onStopCallback;this._onStopCallback=null,e&&t&&t()}isMonitoring(){return!!this._mouseMoveEventMerger}startMonitoring(e,t,r,l,d){if(this.isMonitoring())return;this._mouseMoveEventMerger=r,this._mouseMoveCallback=l,this._onStopCallback=d +;const c=o.IframeUtils.getSameOriginWindowChain(),h=n.isIOS&&a.BrowserFeatures.pointerEvents?"pointermove":"mousemove",u=n.isIOS&&a.BrowserFeatures.pointerEvents?"pointerup":"mouseup",g=c.map(e=>e.window.document),p=i.getShadowRoot(e);p&&g.unshift(p);for(const e of g)this._hooks.add(i.addDisposableThrottledListener(e,h,e=>{e.buttons===t?this._mouseMoveCallback(e):this.stopMonitoring(!0)},(e,t)=>this._mouseMoveEventMerger(e,t))),this._hooks.add(i.addDisposableListener(e,u,e=>this.stopMonitoring(!0)));if(o.IframeUtils.hasDifferentOriginAncestor()){let e=c[c.length-1];this._hooks.add(i.addDisposableListener(e.window.document,"mouseout",e=>{"html"===new s.StandardMouseEvent(e).target.tagName.toLowerCase()&&this.stopMonitoring(!0)})),this._hooks.add(i.addDisposableListener(e.window.document,"mouseover",e=>{"html"===new s.StandardMouseEvent(e).target.tagName.toLowerCase()&&this.stopMonitoring(!0)})),this._hooks.add(i.addDisposableListener(e.window.document.body,"mouseleave",e=>{this.stopMonitoring(!0)}))}}}})) +;var a=this&&this.__decorate||function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r};define(t[58],i([0,1,19,2,7,96]),(function(e,t,i,n,o,s){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.Gesture=t.EventType=void 0,function(e){e.Tap="-monaco-gesturetap",e.Change="-monaco-gesturechange",e.Start="-monaco-gesturestart",e.End="-monaco-gesturesend",e.Contextmenu="-monaco-gesturecontextmenu"}(r=t.EventType||(t.EventType={}));class l extends n.Disposable{constructor(){super(),this.dispatched=!1,this.activeTouches={},this.handle=null,this.targets=[],this.ignoreTargets=[],this._lastSetTapCountTime=0,this._register(o.addDisposableListener(document,"touchstart",e=>this.onTouchStart(e),{passive:!1})), +this._register(o.addDisposableListener(document,"touchend",e=>this.onTouchEnd(e))),this._register(o.addDisposableListener(document,"touchmove",e=>this.onTouchMove(e),{passive:!1}))}static addTarget(e){return l.isTouchDevice()?(l.INSTANCE||(l.INSTANCE=new l),l.INSTANCE.targets.push(e),{dispose:()=>{l.INSTANCE.targets=l.INSTANCE.targets.filter(t=>t!==e)}}):n.Disposable.None}static ignoreTarget(e){return l.isTouchDevice()?(l.INSTANCE||(l.INSTANCE=new l),l.INSTANCE.ignoreTargets.push(e),{dispose:()=>{l.INSTANCE.ignoreTargets=l.INSTANCE.ignoreTargets.filter(t=>t!==e)}}):n.Disposable.None}static isTouchDevice(){return"ontouchstart"in window||navigator.maxTouchPoints>0||window.navigator.msMaxTouchPoints>0}dispose(){this.handle&&(this.handle.dispose(),this.handle=null),super.dispose()}onTouchStart(e){let t=Date.now();this.handle&&(this.handle.dispose(),this.handle=null);for(let i=0,n=e.targetTouches.length;i=l.HOLD_DELAY&&Math.abs(a.initialPageX-i.tail(a.rollingPageX))<30&&Math.abs(a.initialPageY-i.tail(a.rollingPageY))<30){let e=this.newGestureEvent(r.Contextmenu,a.initialTarget);e.pageX=i.tail(a.rollingPageX),e.pageY=i.tail(a.rollingPageY),this.dispatchEvent(e)}else if(1===n){let e=i.tail(a.rollingPageX),n=i.tail(a.rollingPageY),o=i.tail(a.rollingTimestamps)-a.rollingTimestamps[0],s=e-a.rollingPageX[0],r=n-a.rollingPageY[0];const l=this.targets.filter(e=>a.initialTarget instanceof Node&&e.contains(a.initialTarget));this.inertia(l,t,Math.abs(s)/o,s>0?1:-1,e,Math.abs(r)/o,r>0?1:-1,n)}this.dispatchEvent(this.newGestureEvent(r.End,a.initialTarget)),delete this.activeTouches[s.identifier]}this.dispatched&&(e.preventDefault(),e.stopPropagation(),this.dispatched=!1)}newGestureEvent(e,t){let i=document.createEvent("CustomEvent");return i.initEvent(e,!1,!0),i.initialTarget=t,i.tapCount=0,i}dispatchEvent(e){if(e.type===r.Tap){const t=(new Date).getTime();let i=0 +;i=t-this._lastSetTapCountTime>l.CLEAR_TAP_COUNT_TIME?1:2,this._lastSetTapCountTime=t,e.tapCount=i}else e.type!==r.Change&&e.type!==r.Contextmenu||(this._lastSetTapCountTime=0);for(let t=0;t{e.initialTarget instanceof Node&&t.contains(e.initialTarget)&&(t.dispatchEvent(e),this.dispatched=!0)})}inertia(e,t,i,n,s,a,d,c){this.handle=o.scheduleAtNextAnimationFrame(()=>{let o=Date.now(),h=o-t,u=0,g=0,p=!0;i+=l.SCROLL_FRICTION*h,a+=l.SCROLL_FRICTION*h,i>0&&(p=!1,u=n*i*h),a>0&&(p=!1,g=d*a*h);let m=this.newGestureEvent(r.Change);m.translationX=u,m.translationY=g,e.forEach(e=>e.dispatchEvent(m)),p||this.inertia(e,o,i,n,s+u,a,d,c+g)})}onTouchMove(e){let t=Date.now();for(let n=0,o=e.changedTouches.length;n3&&(s.rollingPageX.shift(),s.rollingPageY.shift(),s.rollingTimestamps.shift()),s.rollingPageX.push(o.pageX),s.rollingPageY.push(o.pageY),s.rollingTimestamps.push(t)}this.dispatched&&(e.preventDefault(),e.stopPropagation(),this.dispatched=!1)}}l.SCROLL_FRICTION=-.005,l.HOLD_DELAY=700,l.CLEAR_TAP_COUNT_TIME=400,a([s.memoize],l,"isTouchDevice",null),t.Gesture=l})),define(t[274],i([0,1,7]),(function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RowCache=void 0;t.RowCache=class{constructor(e){this.renderers=e,this.cache=new Map}alloc(e){let t=this.getTemplateCache(e).pop();if(!t){const n=i.$(".monaco-list-row");t={domNode:n,templateId:e,templateData:this.getRenderer(e).renderTemplate(n)}}return t}release(e){e&&this.releaseRow(e)} +releaseRow(e){const{domNode:t,templateId:n}=e;t&&(i.removeClass(t,"scrolling"),function(e){try{e.parentElement&&e.parentElement.removeChild(e)}catch(e){}}(t)),this.getTemplateCache(n).push(e)}getTemplateCache(e){let t=this.cache.get(e);return t||(t=[],this.cache.set(e,t)),t}dispose(){this.cache.forEach((e,t)=>{for(const i of e){this.getRenderer(t).disposeTemplate(i.templateData),i.domNode=null,i.templateData=null}}),this.cache.clear()}getRenderer(e){const t=this.renderers.get(e);if(!t)throw new Error(`No renderer found for ${e}`);return t}}})),define(t[54],i([0,1,7,53,51,2,58]),(function(e,t,i,n,o,s,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Widget=void 0;class a extends s.Disposable{onclick(e,t){this._register(i.addDisposableListener(e,i.EventType.CLICK,e=>t(new o.StandardMouseEvent(e))))}onmousedown(e,t){this._register(i.addDisposableListener(e,i.EventType.MOUSE_DOWN,e=>t(new o.StandardMouseEvent(e))))}onmouseover(e,t){ +this._register(i.addDisposableListener(e,i.EventType.MOUSE_OVER,e=>t(new o.StandardMouseEvent(e))))}onnonbubblingmouseout(e,t){this._register(i.addDisposableNonBubblingMouseOutListener(e,e=>t(new o.StandardMouseEvent(e))))}onkeydown(e,t){this._register(i.addDisposableListener(e,i.EventType.KEY_DOWN,e=>t(new n.StandardKeyboardEvent(e))))}onkeyup(e,t){this._register(i.addDisposableListener(e,i.EventType.KEY_UP,e=>t(new n.StandardKeyboardEvent(e))))}oninput(e,t){this._register(i.addDisposableListener(e,i.EventType.INPUT,t))}onblur(e,t){this._register(i.addDisposableListener(e,i.EventType.BLUR,t))}onfocus(e,t){this._register(i.addDisposableListener(e,i.EventType.FOCUS,t))}ignoreGesture(e){r.Gesture.ignoreTarget(e)}}t.Widget=a})),define(t[149],i([0,1,86,54,15,7]),(function(e,t,i,n,o,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ScrollbarArrow=t.ARROW_IMG_SIZE=void 0,t.ARROW_IMG_SIZE=11;class r extends n.Widget{constructor(e){super(),this._onActivate=e.onActivate, +this.bgDomNode=document.createElement("div"),this.bgDomNode.className="arrow-background",this.bgDomNode.style.position="absolute",this.bgDomNode.style.width=e.bgWidth+"px",this.bgDomNode.style.height=e.bgHeight+"px",void 0!==e.top&&(this.bgDomNode.style.top="0px"),void 0!==e.left&&(this.bgDomNode.style.left="0px"),void 0!==e.bottom&&(this.bgDomNode.style.bottom="0px"),void 0!==e.right&&(this.bgDomNode.style.right="0px"),this.domNode=document.createElement("div"),this.domNode.className=e.className,s.addClasses(this.domNode,e.icon.classNames),this.domNode.style.position="absolute",this.domNode.style.width=t.ARROW_IMG_SIZE+"px",this.domNode.style.height=t.ARROW_IMG_SIZE+"px",void 0!==e.top&&(this.domNode.style.top=e.top+"px"),void 0!==e.left&&(this.domNode.style.left=e.left+"px"),void 0!==e.bottom&&(this.domNode.style.bottom=e.bottom+"px"),void 0!==e.right&&(this.domNode.style.right=e.right+"px"),this._mouseMoveMonitor=this._register(new i.GlobalMouseMoveMonitor), +this.onmousedown(this.bgDomNode,e=>this._arrowMouseDown(e)),this.onmousedown(this.domNode,e=>this._arrowMouseDown(e)),this._mousedownRepeatTimer=this._register(new o.IntervalTimer),this._mousedownScheduleRepeatTimer=this._register(new o.TimeoutTimer)}_arrowMouseDown(e){this._onActivate(),this._mousedownRepeatTimer.cancel(),this._mousedownScheduleRepeatTimer.cancelAndSet(()=>{this._mousedownRepeatTimer.cancelAndSet(()=>this._onActivate(),1e3/24)},200),this._mouseMoveMonitor.startMonitoring(e.target,e.buttons,i.standardMouseMoveMerger,e=>{},()=>{this._mousedownRepeatTimer.cancel(),this._mousedownScheduleRepeatTimer.cancel()}),e.preventDefault()}}t.ScrollbarArrow=r})),define(t[190],i([0,1,7,30,86,149,267,54,16]),(function(e,t,i,n,o,s,r,a,l){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractScrollbar=void 0;const d=140;class c extends a.Widget{constructor(e){super(),this._lazyRender=e.lazyRender,this._host=e.host,this._scrollable=e.scrollable,this._scrollbarState=e.scrollbarState, +this._visibilityController=this._register(new r.ScrollbarVisibilityController(e.visibility,"visible scrollbar "+e.extraScrollbarClassName,"invisible scrollbar "+e.extraScrollbarClassName)),this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._mouseMoveMonitor=this._register(new o.GlobalMouseMoveMonitor),this._shouldRender=!0,this.domNode=n.createFastDomNode(document.createElement("div")),this.domNode.setAttribute("role","presentation"),this.domNode.setAttribute("aria-hidden","true"),this._visibilityController.setDomNode(this.domNode),this.domNode.setPosition("absolute"),this.onmousedown(this.domNode.domNode,e=>this._domNodeMouseDown(e))}_createArrow(e){let t=this._register(new s.ScrollbarArrow(e));this.domNode.domNode.appendChild(t.bgDomNode),this.domNode.domNode.appendChild(t.domNode)}_createSlider(e,t,i,o){this.slider=n.createFastDomNode(document.createElement("div")),this.slider.setClassName("slider"),this.slider.setPosition("absolute"),this.slider.setTop(e),this.slider.setLeft(t), +"number"==typeof i&&this.slider.setWidth(i),"number"==typeof o&&this.slider.setHeight(o),this.slider.setLayerHinting(!0),this.slider.setContain("strict"),this.domNode.domNode.appendChild(this.slider.domNode),this.onmousedown(this.slider.domNode,e=>{e.leftButton&&(e.preventDefault(),this._sliderMouseDown(e,()=>{}))}),this.onclick(this.slider.domNode,e=>{e.leftButton&&e.stopPropagation()})}_onElementSize(e){return this._scrollbarState.setVisibleSize(e)&&(this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._shouldRender=!0,this._lazyRender||this.render()),this._shouldRender}_onElementScrollSize(e){return this._scrollbarState.setScrollSize(e)&&(this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._shouldRender=!0,this._lazyRender||this.render()),this._shouldRender}_onElementScrollPosition(e){return this._scrollbarState.setScrollPosition(e)&&(this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._shouldRender=!0, +this._lazyRender||this.render()),this._shouldRender}beginReveal(){this._visibilityController.setShouldBeVisible(!0)}beginHide(){this._visibilityController.setShouldBeVisible(!1)}render(){this._shouldRender&&(this._shouldRender=!1,this._renderDomNode(this._scrollbarState.getRectangleLargeSize(),this._scrollbarState.getRectangleSmallSize()),this._updateSlider(this._scrollbarState.getSliderSize(),this._scrollbarState.getArrowSize()+this._scrollbarState.getSliderPosition()))}_domNodeMouseDown(e){e.target===this.domNode.domNode&&this._onMouseDown(e)}delegateMouseDown(e){let t=this.domNode.domNode.getClientRects()[0].top,i=t+this._scrollbarState.getSliderPosition(),n=t+this._scrollbarState.getSliderPosition()+this._scrollbarState.getSliderSize(),o=this._sliderMousePosition(e);i<=o&&o<=n?e.leftButton&&(e.preventDefault(),this._sliderMouseDown(e,()=>{})):this._onMouseDown(e)}_onMouseDown(e){let t,n +;if(e.target===this.domNode.domNode&&"number"==typeof e.browserEvent.offsetX&&"number"==typeof e.browserEvent.offsetY)t=e.browserEvent.offsetX,n=e.browserEvent.offsetY;else{const o=i.getDomNodePagePosition(this.domNode.domNode);t=e.posx-o.left,n=e.posy-o.top}this._setDesiredScrollPositionNow(this._scrollbarState.getDesiredScrollPositionFromOffset(this._mouseDownRelativePosition(t,n))),e.leftButton&&(e.preventDefault(),this._sliderMouseDown(e,()=>{}))}_sliderMouseDown(e,t){const i=this._sliderMousePosition(e),n=this._sliderOrthogonalMousePosition(e),s=this._scrollbarState.clone();this.slider.toggleClassName("active",!0),this._mouseMoveMonitor.startMonitoring(e.target,e.buttons,o.standardMouseMoveMerger,e=>{const t=this._sliderOrthogonalMousePosition(e),o=Math.abs(t-n);if(l.isWindows&&o>d)return void this._setDesiredScrollPositionNow(s.getScrollPosition());const r=this._sliderMousePosition(e)-i;this._setDesiredScrollPositionNow(s.getDesiredScrollPositionFromDelta(r))},()=>{ +this.slider.toggleClassName("active",!1),this._host.onDragEnd(),t()}),this._host.onDragStart()}_setDesiredScrollPositionNow(e){let t={};this.writeScrollPosition(t,e),this._scrollable.setScrollPositionNow(t)}updateScrollbarSize(e){this._updateScrollbarSize(e),this._scrollbarState.setScrollbarSize(e),this._shouldRender=!0,this._lazyRender||this.render()}}t.AbstractScrollbar=c})),define(t[59],i([0,1,24,8,40,16]),(function(e,t,i,n,o,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LRUCache=t.LinkedMap=t.ResourceMap=t.TernarySearchTree=t.UriIterator=t.PathIterator=t.StringIterator=void 0;class r{constructor(){this._value="",this._pos=0}reset(e){return this._value=e,this._pos=0,this}next(){return this._pos+=1,this}hasNext(){return this._pos0)n.left||(n.left=new d,n.left.segment=i.value()),n=n.left;else if(e<0)n.right||(n.right=new d,n.right.segment=i.value()),n=n.right;else{if(!i.hasNext())break;i.next(),n.mid||(n.mid=new d,n.mid.segment=i.value()),n=n.mid}}const o=n.value;return n.value=t,n.key=e,o}get(e){const t=this._iter.reset(e);let i=this._root;for(;i;){const e=t.cmp(i.segment);if(e>0)i=i.left;else if(e<0)i=i.right;else{if(!t.hasNext())break;t.next(),i=i.mid}}return i?i.value:void 0}findSubstr(e){const t=this._iter.reset(e);let i=this._root,n=void 0;for(;i;){const e=t.cmp(i.segment);if(e>0)i=i.left;else if(e<0)i=i.right;else{if(!t.hasNext())break +;t.next(),n=i.value||n,i=i.mid}}return i&&i.value||n}forEach(e){this._forEach(this._root,e)}_forEach(e,t){e&&(this._forEach(e.left,t),e.value&&t(e.value,e.key),this._forEach(e.mid,t),this._forEach(e.right,t))}}t.TernarySearchTree=c;class h{constructor(e,t){this[Symbol.toStringTag]="ResourceMap",e instanceof h?(this.map=new Map(e.map),this.toKey=null!=t?t:h.defaultToKey):(this.map=new Map,this.toKey=null!=e?e:h.defaultToKey)}set(e,t){return this.map.set(this.toKey(e),t),this}get(e){return this.map.get(this.toKey(e))}has(e){return this.map.has(this.toKey(e))}get size(){return this.map.size}clear(){this.map.clear()}delete(e){return this.map.delete(this.toKey(e))}forEach(e,t){void 0!==t&&(e=e.bind(t));for(let[t,n]of this.map)e(n,i.URI.parse(t),this)}values(){return this.map.values()}*keys(){for(let e of this.map.keys())yield i.URI.parse(e)}*entries(){for(let e of this.map.entries())yield[i.URI.parse(e[0]),e[1]]}*[Symbol.iterator](){for(let e of this.map)yield[i.URI.parse(e[0]),e[1]]}}t.ResourceMap=h, +h.defaultToKey=e=>e.toString();class u{constructor(){this[Symbol.toStringTag]="LinkedMap",this._map=new Map,this._head=void 0,this._tail=void 0,this._size=0,this._state=0}clear(){this._map.clear(),this._head=void 0,this._tail=void 0,this._size=0,this._state++}isEmpty(){return!this._head&&!this._tail}get size(){return this._size}get first(){var e;return null===(e=this._head)||void 0===e?void 0:e.value}get last(){var e;return null===(e=this._tail)||void 0===e?void 0:e.value}has(e){return this._map.has(e)}get(e,t=0){const i=this._map.get(e);if(i)return 0!==t&&this.touch(i,t),i.value}set(e,t,i=0){let n=this._map.get(e);if(n)n.value=t,0!==i&&this.touch(n,i);else{switch(n={key:e,value:t,next:void 0,previous:void 0},i){case 0:this.addItemLast(n);break;case 1:this.addItemFirst(n);break;case 2:default:this.addItemLast(n)}this._map.set(e,n),this._size++}return this}delete(e){return!!this.remove(e)}remove(e){const t=this._map.get(e);if(t)return this._map.delete(e),this.removeItem(t),this._size--,t.value}shift(){ +if(!this._head&&!this._tail)return;if(!this._head||!this._tail)throw new Error("Invalid list");const e=this._head;return this._map.delete(e.key),this.removeItem(e),this._size--,e.value}forEach(e,t){const i=this._state;let n=this._head;for(;n;){if(t?e.bind(t)(n.value,n.key,this):e(n.value,n.key,this),this._state!==i)throw new Error("LinkedMap got modified during iteration.");n=n.next}}keys(){const e=this,t=this._state;let i=this._head;const n={[Symbol.iterator]:()=>n,next(){if(e._state!==t)throw new Error("LinkedMap got modified during iteration.");if(i){const e={value:i.key,done:!1};return i=i.next,e}return{value:void 0,done:!0}}};return n}values(){const e=this,t=this._state;let i=this._head;const n={[Symbol.iterator]:()=>n,next(){if(e._state!==t)throw new Error("LinkedMap got modified during iteration.");if(i){const e={value:i.value,done:!1};return i=i.next,e}return{value:void 0,done:!0}}};return n}entries(){const e=this,t=this._state;let i=this._head;const n={[Symbol.iterator]:()=>n,next(){ +if(e._state!==t)throw new Error("LinkedMap got modified during iteration.");if(i){const e={value:[i.key,i.value],done:!1};return i=i.next,e}return{value:void 0,done:!0}}};return n}[Symbol.iterator](){return this.entries()}trimOld(e){if(e>=this.size)return;if(0===e)return void this.clear();let t=this._head,i=this.size;for(;t&&i>e;)this._map.delete(t.key),t=t.next,i--;this._head=t,this._size=i,t&&(t.previous=void 0),this._state++}addItemFirst(e){if(this._head||this._tail){if(!this._head)throw new Error("Invalid list");e.next=this._head,this._head.previous=e}else this._tail=e;this._head=e,this._state++}addItemLast(e){if(this._head||this._tail){if(!this._tail)throw new Error("Invalid list");e.previous=this._tail,this._tail.next=e}else this._head=e;this._tail=e,this._state++}removeItem(e){if(e===this._head&&e===this._tail)this._head=void 0,this._tail=void 0;else if(e===this._head){if(!e.next)throw new Error("Invalid list");e.next.previous=void 0,this._head=e.next}else if(e===this._tail){ +if(!e.previous)throw new Error("Invalid list");e.previous.next=void 0,this._tail=e.previous}else{const t=e.next,i=e.previous;if(!t||!i)throw new Error("Invalid list");t.previous=i,i.next=t}e.next=void 0,e.previous=void 0,this._state++}touch(e,t){if(!this._head||!this._tail)throw new Error("Invalid list");if(1===t||2===t)if(1===t){if(e===this._head)return;const t=e.next,i=e.previous;e===this._tail?(i.next=void 0,this._tail=i):(t.previous=i,i.next=t),e.previous=void 0,e.next=this._head,this._head.previous=e,this._head=e,this._state++}else if(2===t){if(e===this._tail)return;const t=e.next,i=e.previous;e===this._head?(t.previous=void 0,this._head=t):(t.previous=i,i.next=t),e.next=void 0,e.previous=this._tail,this._tail.next=e,this._tail=e,this._state++}}toJSON(){const e=[];return this.forEach((t,i)=>{e.push([i,t])}),e}fromJSON(e){this.clear();for(const[t,i]of e)this.set(t,i)}}t.LinkedMap=u;t.LRUCache=class extends u{constructor(e,t=1){super(),this._limit=e,this._ratio=Math.min(Math.max(0,t),1)}get limit(){ +return this._limit}set limit(e){this._limit=e,this.checkTrim()}get(e,t=2){return super.get(e,t)}peek(e){return super.get(e,0)}set(e,t){return super.set(e,t,2),this.checkTrim(),this}checkTrim(){this.size>this._limit&&this.trimOld(Math.round(this._limit*this._ratio))}}})),define(t[64],i([0,1,59,8]),(function(e,t,i,n){"use strict";function o(...e){return function(t,i){for(let n=0,o=e.length;n0?[{start:0,end:t.length}]:[]}.bind(void 0,!0),t.matchesContiguousSubString=s,t.matchesSubString=r,t.isUpper=l;const h=new Set;function u(e){return c(e)||h.has(e)}function g(e){return a(e)||l(e)||d(e)}function p(e,t){return 0===t.length?t=[e]:e.end===t[0].start?t[0].start=e.start:t.unshift(e),t}function m(e,t){for(let i=t;i0&&!g(e.charCodeAt(i-1)))return i}return e.length}function f(e,t,i,n){if(i===e.length)return[];if(n===t.length)return null;if(e[i]!==t[n].toLowerCase())return null;{let o=null,s=n+1 +;for(o=f(e,t,i+1,n+1);!o&&(s=m(t,s))60)return null;const i=function(e){let t=0,i=0,n=0,o=0,s=0;for(let r=0;r.2&&t<.8&&n>.6&&o<.2}(i)){if(!function(e){const{upperPercent:t,lowerPercent:i}=e;return 0===i&&t>.6}(i))return null;t=t.toLowerCase()}let n=null,o=0;for(e=e.toLowerCase();o0&&u(e.charCodeAt(i-1)))return i;return e.length}"`~!@#$%^&*()-=+[{]}\\|;:'\",.<>/?".split("").forEach(e=>h.add(e.charCodeAt(0))),t.matchesCamelCase=_,t.matchesWords=function(e,t,i=!1){if(!t||0===t.length)return null;let n=null,o=0;for(e=e.toLowerCase(),t=t.toLowerCase();o=0)l+=1,a+=Math.pow(2,i),d=i+1;else if(0!==a)break}return[l,a,s]},t.createMatches=function(e){if(void 0===e)return[];const t=e[1].toString(2),i=[];for(let n=e[2];ns(e,3)).join("|")}\n`;for(let n=0;n<=i;n++)r+=0===n?" |":`${t[n-1]}|`,r+=e[n].slice(0,o+1).map(e=>s(e.toString(),3)).join("|")+"\n";return r}function I(e,t){if(t<0||t>=e.length)return!1;switch(e.charCodeAt(t)){case 95:case 45:case 46:case 32:case 47:case 92:case 39:case 34:case 58:case 36:return!0;default:return!1}}function M(e,t,i){return t[e]!==i[e]} +function R(e,t,i,n,o,s){for(;ty?y:e.length,l=n.length>y?y:n.length;if(i>=a||s>=l||a-i>l-s)return;if(!R(t,i,a,o,s,l))return;let d=1,c=1,h=i,u=s,g=!1;for(d=1,h=i;h1&&(g=!0),x[d][c]=s;const r=L[d-1][c-1]+(s>1?1:s),a=L[d-1][c]+-1,l=L[d][c-1]+-1;l>=a?l>r?(L[d][c]=l,D[d][c]=4):l===r?(L[d][c]=l,D[d][c]=6):(L[d][c]=r,D[d][c]=2):a>r?(L[d][c]=a,D[d][c]=1):a===r?(L[d][c]=a,D[d][c]=3):(L[d][c]=r,D[d][c]=2)}return k&&function(e,t,i,n){e=e.substr(t),i=i.substr(n),console.log(N(L,e,e.length,i,i.length)),console.log(N(D,e,e.length,i,i.length)),console.log(N(x,e,e.length,i,i.length))}(e,i,n,s),(g||r)&&(A=0,F=-100,W=s,B=r,function e(t,i,n,o,s){if(A>=10||n<-25)return;let r=0;for(;t>0&&i>0;){const a=x[t][i],l=D[t][i];if(4===l)i-=1,s?n-=5:0!==o&&(n-=1),s=!1,r=0;else{if(!(2&l))return;if(4&l&&e(t,i-1,0!==o?n-1:n,o,s),n+=a,t-=1,i-=1,s=!0,o+=Math.pow(2,i+W),1===a){if(r+=1, +0===t&&!B)return}else n+=1+r*(a-1),r=0}}n-=i>=3?9:3*i;A+=1;n>F&&(F=n,P=o)}(d-1,c-1,a===l?1:0,0,!1),0!==A)?[F,P,s]:void 0}function O(e,t,i,n,o,s,r){return t[i]!==s[r]?-1:r===i-n?e[i]===o[r]?7:5:!M(r,o,s)||0!==r&&M(r-1,o,s)?!I(s,r)||0!==r&&I(s,r-1)?I(s,r-1)||function(e,t){if(t<0||t>=e.length)return!1;switch(e.charCodeAt(t)){case 32:case 9:return!0;default:return!1}}(s,r-1)?5:1:5:e[i]===o[r]?7:5}t.isPatternInWord=R,function(e){e.Default=Object.freeze([-100,0,0]),e.isDefault=function(e){return!e||-100===e[0]&&0===e[1]&&0===e[2]}}(t.FuzzyScore||(t.FuzzyScore={})),t.fuzzyScore=T;let A=0,P=0,F=0,W=0,B=!1;function V(e,t){if(t+1>=e.length)return;const i=e[t],n=e[t+1];return i!==n?e.slice(0,t)+n+i+e.slice(t+2):void 0}t.fuzzyScoreGracefulAggressive=function(e,t,i,n,o,s,r){return function(e,t,i,n,o,s,r,a){let l=T(e,t,i,n,o,s,a);if(l&&!r)return l;if(e.length>=3){const t=Math.min(7,e.length-1);for(let r=i+1;rl[0])&&(l=e))}}}return l +}(e,t,i,n,o,s,!0,r)}})),define(t[191],i([0,1,64,8]),(function(e,t,i,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.matchesFuzzyCodiconAware=t.parseCodicons=t.codiconStartMarker=void 0,t.codiconStartMarker="$(",t.parseCodicons=function(e){const i=e.indexOf(t.codiconStartMarker);return-1===i?{text:e}:function(e,i){const n=[];let o="";function s(e){if(e){o+=e;for(const t of e)n.push(c)}}let r,a,l=-1,d="",c=0,h=i;const u=e.length;s(e.substr(0,i));for(;ht?e:`\\${e}`)};const a=/\\\$\([a-z0-9\-]+?(?:~[a-z0-9\-]*?)?\)/gi;t.markdownEscapeEscapedCodicons=function(e){return e.replace(a,e=>`\\${e}`)},t.renderCodiconsRegex=/(\\)?\$\((([a-z0-9\-]+?)(?:~([a-z0-9\-]*?))?)\)/gi,t.renderCodicons=function(e){return e.replace(t.renderCodiconsRegex,(e,t,i,n,o)=>t?`$(${i})`:``)};const l=/(\s)?(\\)?\$\([a-z0-9\-]+?(?:~[a-z0-9\-]*?)?\)(\s)?/gi;t.stripCodicons=function(e){return-1===e.indexOf(i.codiconStartMarker)?e:e.replace(l,(e,t,i,n)=>i?e:t||n||"")}})),define(t[275],i([0,1,7,26]),(function(e,t,i,n){"use strict" +;Object.defineProperty(t,"__esModule",{value:!0}),t.renderCodiconsAsElement=void 0,t.renderCodiconsAsElement=function(e){const t=new Array;let o,s=0,r=0;for(;null!==(o=n.renderCodiconsRegex.exec(e));){r=o.index||0,t.push(e.substring(s,r)),s=(o.index||0)+o[0].length;const[,n,a,l,d]=o;t.push(n?`$(${a})`:i.$(`span.codicon.codicon-${l}${d?`.codicon-animation-${d}`:""}`))}return s";const s=this.text.substring(t,i.start);e+=this.supportCodicons?n.renderCodicons(o.escape(s)):o.escape(s),e+="",t=i.end}i.extraClasses?e+=``:e+='';const s=this.text.substring(i.start,i.end);e+=this.supportCodicons?n.renderCodicons(o.escape(s)):o.escape(s),e+="",t=i.end}if(t";const i=this.text.substring(t);e+=this.supportCodicons?n.renderCodicons(o.escape(i)):o.escape(i),e+=""}this.domNode.innerHTML=e,this.title?this.domNode.title=this.title:this.domNode.removeAttribute("title"),this.didEverRender=!0}static escapeNewLines(e,t){let i=0,n=0;return e.replace(/\r\n|\r|\n/g,(e,o)=>{n="\r\n"===e?-1:0,o+=i;for(const e of t)e.end<=o||(e.start>=o&&(e.start+=n),e.end>=o&&(e.end+=n));return i+=n,"⏎"})}}t.HighlightedLabel=s})), +define(t[276],i([0,1,51,190,149,184,26]),(function(e,t,i,n,o,s,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.HorizontalScrollbar=void 0;const a=r.registerIcon("scrollbar-button-left",r.Codicon.triangleLeft),l=r.registerIcon("scrollbar-button-right",r.Codicon.triangleRight);class d extends n.AbstractScrollbar{constructor(e,t,n){const r=e.getScrollDimensions(),d=e.getCurrentScrollPosition();if(super({lazyRender:t.lazyRender,host:n,scrollbarState:new s.ScrollbarState(t.horizontalHasArrows?t.arrowSize:0,2===t.horizontal?0:t.horizontalScrollbarSize,2===t.vertical?0:t.verticalScrollbarSize,r.width,r.scrollWidth,d.scrollLeft),visibility:t.horizontal,extraScrollbarClassName:"horizontal",scrollable:e}),t.horizontalHasArrows){let e=(t.arrowSize-o.ARROW_IMG_SIZE)/2,n=(t.horizontalScrollbarSize-o.ARROW_IMG_SIZE)/2;this._createArrow({className:"scra",icon:a,top:n,left:e,bottom:void 0,right:void 0,bgWidth:t.arrowSize,bgHeight:t.horizontalScrollbarSize, +onActivate:()=>this._host.onMouseWheel(new i.StandardWheelEvent(null,1,0))}),this._createArrow({className:"scra",icon:l,top:n,left:void 0,bottom:void 0,right:e,bgWidth:t.arrowSize,bgHeight:t.horizontalScrollbarSize,onActivate:()=>this._host.onMouseWheel(new i.StandardWheelEvent(null,-1,0))})}this._createSlider(Math.floor((t.horizontalScrollbarSize-t.horizontalSliderSize)/2),0,void 0,t.horizontalSliderSize)}_updateSlider(e,t){this.slider.setWidth(e),this.slider.setLeft(t)}_renderDomNode(e,t){this.domNode.setWidth(e),this.domNode.setHeight(t),this.domNode.setLeft(0),this.domNode.setBottom(0)}onDidScroll(e){return this._shouldRender=this._onElementScrollSize(e.scrollWidth)||this._shouldRender,this._shouldRender=this._onElementScrollPosition(e.scrollLeft)||this._shouldRender,this._shouldRender=this._onElementSize(e.width)||this._shouldRender,this._shouldRender}_mouseDownRelativePosition(e,t){return e}_sliderMousePosition(e){return e.posx}_sliderOrthogonalMousePosition(e){return e.posy}_updateScrollbarSize(e){ +this.slider.setHeight(e)}writeScrollPosition(e,t){e.scrollLeft=t}}t.HorizontalScrollbar=d})),define(t[277],i([0,1,51,190,149,184,26]),(function(e,t,i,n,o,s,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.VerticalScrollbar=void 0;const a=r.registerIcon("scrollbar-button-up",r.Codicon.triangleUp),l=r.registerIcon("scrollbar-button-down",r.Codicon.triangleDown);class d extends n.AbstractScrollbar{constructor(e,t,n){const r=e.getScrollDimensions(),d=e.getCurrentScrollPosition();if(super({lazyRender:t.lazyRender,host:n,scrollbarState:new s.ScrollbarState(t.verticalHasArrows?t.arrowSize:0,2===t.vertical?0:t.verticalScrollbarSize,0,r.height,r.scrollHeight,d.scrollTop),visibility:t.vertical,extraScrollbarClassName:"vertical",scrollable:e}),t.verticalHasArrows){let e=(t.arrowSize-o.ARROW_IMG_SIZE)/2,n=(t.verticalScrollbarSize-o.ARROW_IMG_SIZE)/2;this._createArrow({className:"scra",icon:a,top:e,left:n,bottom:void 0,right:void 0,bgWidth:t.verticalScrollbarSize,bgHeight:t.arrowSize, +onActivate:()=>this._host.onMouseWheel(new i.StandardWheelEvent(null,0,1))}),this._createArrow({className:"scra",icon:l,top:void 0,left:n,bottom:e,right:void 0,bgWidth:t.verticalScrollbarSize,bgHeight:t.arrowSize,onActivate:()=>this._host.onMouseWheel(new i.StandardWheelEvent(null,0,-1))})}this._createSlider(0,Math.floor((t.verticalScrollbarSize-t.verticalSliderSize)/2),t.verticalSliderSize,void 0)}_updateSlider(e,t){this.slider.setHeight(e),this.slider.setTop(t)}_renderDomNode(e,t){this.domNode.setWidth(t),this.domNode.setHeight(e),this.domNode.setRight(0),this.domNode.setTop(0)}onDidScroll(e){return this._shouldRender=this._onElementScrollSize(e.scrollHeight)||this._shouldRender,this._shouldRender=this._onElementScrollPosition(e.scrollTop)||this._shouldRender,this._shouldRender=this._onElementSize(e.height)||this._shouldRender,this._shouldRender}_mouseDownRelativePosition(e,t){return t}_sliderMousePosition(e){return e.posy}_sliderOrthogonalMousePosition(e){return e.posx}_updateScrollbarSize(e){ +this.slider.setWidth(e)}writeScrollPosition(e,t){e.scrollTop=t}}t.VerticalScrollbar=d})),define(t[192],i([0,1,26]),(function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.treeItemLoadingIcon=t.treeFilterClearIcon=t.treeFilterOnTypeOffIcon=t.treeFilterOnTypeOnIcon=t.treeItemExpandedIcon=void 0,t.treeItemExpandedIcon=i.registerIcon("tree-item-expanded",i.Codicon.chevronDown),t.treeFilterOnTypeOnIcon=i.registerIcon("tree-filter-on-type-on",i.Codicon.listFilter),t.treeFilterOnTypeOffIcon=i.registerIcon("tree-filter-on-type-off",i.Codicon.listSelection),t.treeFilterClearIcon=i.registerIcon("tree-filter-clear",i.Codicon.close),t.treeItemLoadingIcon=i.registerIcon("tree-item-loading",i.Codicon.loading)})),define(t[278],i([0,1,64,63,16,8]),(function(e,t,i,n,o,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.pieceToQuery=t.prepareQuery=t.scoreFuzzy2=void 0;const r=[void 0,[]];function a(e,t,n,o){const s=i.fuzzyScore(t.original,t.originalLowercase,n,e,e.toLowerCase(),o,!0) +;return s?[s[0],i.createMatches(s)]:r}function l(e){const t=e.sort((e,t)=>e.start-t.start),i=[];let n=void 0;for(const e of t)n&&d(n,e)?(n.start=Math.min(n.start,e.start),n.end=Math.max(n.end,e.end)):(n=e,i.push(e));return i}function d(e,t){return!(e.end1?function(e,t,i,n){let o=0;const s=[];for(const l of t){const[t,d]=a(e,l,i,n);if("number"!=typeof t)return r;o+=t,s.push(...d)}return[o,l(s)]}(e,o.values,i,n):a(e,t,i,n)};const c=" ";function h(e){"string"!=typeof e&&(e="");const t=e.toLowerCase(),{pathNormalized:i,normalized:o,normalizedLowercase:s}=u(e),r=i.indexOf(n.sep)>=0;let a=void 0;const l=e.split(c);if(l.length>1)for(const e of l){const{pathNormalized:t,normalized:i,normalizedLowercase:n}=u(e);i&&(a||(a=[]),a.push({original:e,originalLowercase:e.toLowerCase(),pathNormalized:t,normalized:i,normalizedLowercase:n}))}return{original:e,originalLowercase:t,pathNormalized:i,normalized:o, +normalizedLowercase:s,values:a,containsPathSeparator:r}}function u(e){let t;t=o.isWindows?e.replace(/\//g,n.sep):e.replace(/\\/g,n.sep);const i=s.stripWildcards(t).replace(/\s/g,"");return{pathNormalized:t,normalized:i,normalizedLowercase:i.toLowerCase()}}t.prepareQuery=h,t.pieceToQuery=function(e){return Array.isArray(e)?h(e.map(e=>e.original).join(c)):h(e.original)}})),define(t[193],i([0,1,19,8,187,63,59,15]),(function(e,t,i,n,o,s,r,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isRelativePattern=t.parse=t.match=t.splitGlobAware=void 0;const l="**",d="/",c="[/\\\\]",h="[^/\\\\]",u=/\//g;function g(e){switch(e){case 0:return"";case 1:return`${h}*?`;default:return`(?:${c}|${h}+${c}|${c}${h}+)*?`}}function p(e,t){if(!e)return[];const i=[];let n=!1,o=!1,s="";for(const r of e){switch(r){case t:if(!n&&!o){i.push(s),s="";continue}break;case"{":n=!0;break;case"}":n=!1;break;case"[":o=!0;break;case"]":o=!1}s+=r}return s&&i.push(s),i}t.splitGlobAware=p +;const m=/^\*\*\/\*\.[\w\.-]+$/,f=/^\*\*\/([\w\.-]+)\/?$/,_=/^{\*\*\/[\*\.]?[\w\.-]+\/?(,\*\*\/[\*\.]?[\w\.-]+\/?)*}$/,v=/^{\*\*\/[\*\.]?[\w\.-]+(\/(\*\*)?)?(,\*\*\/[\*\.]?[\w\.-]+(\/(\*\*)?)?)*}$/,C=/^\*\*((\/[\w\.-]+)+)\/?$/,b=/^([\w\.-]+(\/[\w\.-]+)*)\/?$/,S=new r.LRUCache(1e4),w=function(){return!1},y=function(){return null};function E(e,t){if(!e)return y;let o;const s=`${o=(o="string"!=typeof e?e.pattern:e).trim()}_${!!t.trimForExclusions}`;let r,a=S.get(s);if(a)return L(a,e);if(m.test(o)){const e=o.substr(4);a=function(t,i){return"string"==typeof t&&t.endsWith(e)?o:null}}else a=(r=f.exec(x(o,t)))?function(e,t){const i=`/${e}`,n=`\\${e}`,o=function(o,s){return"string"!=typeof o?null:s?s===e?t:null:o===e||o.endsWith(i)||o.endsWith(n)?t:null},s=[e];return o.basenames=s,o.patterns=[t],o.allBasenames=s,o}(r[1],o):(t.trimForExclusions?v:_).test(o)?function(e,t){const n=I(e.slice(1,-1).split(",").map(e=>E(e,t)).filter(e=>e!==y),e),o=n.length;if(!o)return y;if(1===o)return n[0];const s=function(t,i){ +for(let o=0,s=n.length;o!!e.allBasenames);r&&(s.allBasenames=r.allBasenames);const a=n.reduce((e,t)=>t.allPaths?e.concat(t.allPaths):e,[]);a.length&&(s.allPaths=a);return s}(o,t):(r=C.exec(x(o,t)))?D(r[1].substr(1),o,!0):(r=b.exec(x(o,t)))?D(r[1],o,!1):function(e){try{const t=new RegExp(`^${function e(t){if(!t)return"";let i="";const o=p(t,d);if(o.every(e=>e===l))i=".*";else{let t=!1;o.forEach((s,r)=>{if(s===l)return void(t||(i+=g(2),t=!0));let a=!1,u="",m=!1,f="";for(const t of s)if("}"!==t&&a)u+=t;else if(!m||"]"===t&&f)switch(t){case"{":a=!0;continue;case"[":m=!0;continue;case"}":const o=`(?:${p(u,",").map(t=>e(t)).join("|")})`;i+=o,a=!1,u="";break;case"]":i+="["+f+"]",m=!1,f="";break;case"?":i+=h;continue;case"*":i+=g(1);continue;default:i+=n.escapeRegExpCharacters(t)}else{let e;f+=e="-"===t?t:"^"!==t&&"!"!==t||f?t===d?"":n.escapeRegExpCharacters(t):"^"}r(function(e,t,i){if(!1===t)return y;const n=E(e,i);if(n===y)return y;if("boolean"==typeof t)return n;if(t){const i=t.when;if("string"==typeof i){const t=(t,o,s,r)=>{ +if(!r||!n(t,o))return null;const l=r(i.replace("$(basename)",s));return a.isThenable(l)?l.then(t=>t?e:null):l?e:null};return t.requiresSiblings=!0,t}}return n})(i,e[i],t)).filter(e=>e!==y)),o=n.length;if(!o)return y;if(!n.some(e=>!!e.requiresSiblings)){if(1===o)return n[0];const e=function(e,t){for(let i=0,o=n.length;i!!e.allBasenames);t&&(e.allBasenames=t.allBasenames);const s=n.reduce((e,t)=>t.allPaths?e.concat(t.allPaths):e,[]);return s.length&&(e.allPaths=s),e}const r=function(e,t,i){let o=void 0;for(let r=0,a=n.length;r!!e.allBasenames);l&&(r.allBasenames=l.allBasenames);const d=n.reduce((e,t)=>t.allPaths?e.concat(t.allPaths):e,[]);d.length&&(r.allPaths=d);return r}(e,t)}function N(e){const t=e;return t&&"string"==typeof t.base&&"string"==typeof t.pattern} +function I(e,t){const i=e.filter(e=>!!e.basenames);if(i.length<2)return e;const n=i.reduce((e,t)=>{const i=t.basenames;return i?e.concat(i):e},[]);let o;if(t){o=[];for(let e=0,i=n.length;e{const i=t.patterns;return i?e.concat(i):e},[]);const s=function(e,t){if("string"!=typeof e)return null;if(!t){let i;for(i=e.length;i>0;i--){const t=e.charCodeAt(i-1);if(47===t||92===t)break}t=e.substr(i)}const i=n.indexOf(t);return-1!==i?o[i]:null};s.basenames=n,s.patterns=o,s.allBasenames=n;const r=e.filter(e=>!e.basenames);return r.push(s),r}t.match=function(e,t,i){return!(!e||"string"!=typeof t)&&k(e)(t,void 0,i)},t.parse=k,t.isRelativePattern=N})),define(t[78],i([0,1,19,26,12]),(function(e,t,i,n,o){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.parseHrefAndDimensions=t.removeMarkdownEscapes=t.markedStringsEquals=t.isMarkdownString=t.isEmptyMarkdownString=t.MarkdownString=void 0;class s{constructor(e="",t=!1){var i,n;if(this._value=e, +"string"!=typeof this._value)throw o.illegalArgument("value");"boolean"==typeof t?(this._isTrusted=t,this._supportThemeIcons=!1):(this._isTrusted=null!==(i=t.isTrusted)&&void 0!==i&&i,this._supportThemeIcons=null!==(n=t.supportThemeIcons)&&void 0!==n&&n)}get value(){return this._value}get isTrusted(){return this._isTrusted}get supportThemeIcons(){return this._supportThemeIcons}appendText(e){return this._value+=(this._supportThemeIcons?n.escapeCodicons(e):e).replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&").replace(/\n/g,"\n\n"),this}appendMarkdown(e){return this._value+=e,this}appendCodeblock(e,t){return this._value+="\n```",this._value+=e,this._value+="\n",this._value+=t,this._value+="\n```\n",this}}function r(e){return e instanceof s||!(!e||"object"!=typeof e)&&!("string"!=typeof e.value||"boolean"!=typeof e.isTrusted&&void 0!==e.isTrusted||"boolean"!=typeof e.supportThemeIcons&&void 0!==e.supportThemeIcons)}function a(e,t){ +return e===t||!(!e||!t)&&(e.value===t.value&&e.isTrusted===t.isTrusted&&e.supportThemeIcons===t.supportThemeIcons)}t.MarkdownString=s,t.isEmptyMarkdownString=function e(t){return r(t)?!t.value:!Array.isArray(t)||t.every(e)},t.isMarkdownString=r,t.markedStringsEquals=function(e,t){return!e&&!t||!(!e||!t)&&(Array.isArray(e)&&Array.isArray(t)?i.equals(e,t,a):!(!r(e)||!r(t))&&a(e,t))},t.removeMarkdownEscapes=function(e){return e?e.replace(/\\([\\`*_{}[\]()#+\-.!])/g,"$1"):e},t.parseHrefAndDimensions=function(e){const t=[],i=e.split("|").map(e=>e.trim());e=i[0];const n=i[1];if(n){const e=/height=(\d+)/.exec(n),i=/width=(\d+)/.exec(n),o=e?e[1]:"",s=i?i[1]:"",r=isFinite(parseInt(s)),a=isFinite(parseInt(o));r&&t.push(`width="${s}"`),a&&t.push(`height="${o}"`)}return{href:e,dimensions:t}}})),define(t[41],i([0,1,187,63,24,8,40,16]),(function(e,t,i,n,o,s,r,a){"use strict";function l(e){return o.uriToFsPath(e,!0)}Object.defineProperty(t,"__esModule",{value:!0}), +t.DataUri=t.isEqualAuthority=t.resolvePath=t.relativePath=t.normalizePath=t.joinPath=t.dirname=t.basename=t.basenameOrAuthority=t.isEqual=t.extUri=t.ExtUri=t.originalFSPath=void 0,t.originalFSPath=l;class d{constructor(e){this._ignorePathCasing=e}compare(e,t,i=!1){return e===t?0:s.compare(this.getComparisonKey(e,i),this.getComparisonKey(t,i))}isEqual(e,t,i=!1){return e===t||!(!e||!t)&&this.getComparisonKey(e,i)===this.getComparisonKey(t,i)}getComparisonKey(e,t=!1){return e.with({path:this._ignorePathCasing(e)?e.path.toLowerCase():void 0,fragment:t?null:void 0}).toString()}joinPath(e,...t){return o.URI.joinPath(e,...t)}basenameOrAuthority(e){return t.basename(e)||e.authority}basename(e){return n.posix.basename(e.path)}dirname(e){if(0===e.path.length)return e;let t;return e.scheme===r.Schemas.file?t=o.URI.file(n.dirname(l(e))).path:(t=n.posix.dirname(e.path),e.authority&&t.length&&47!==t.charCodeAt(0)&&(console.error(`dirname("${e.toString})) resulted in a relative path`),t="/")),e.with({path:t})} +normalizePath(e){if(!e.path.length)return e;let t;return t=e.scheme===r.Schemas.file?o.URI.file(n.normalize(l(e))).path:n.posix.normalize(e.path),e.with({path:t})}relativePath(e,o){if(e.scheme!==o.scheme||!t.isEqualAuthority(e.authority,o.authority))return;if(e.scheme===r.Schemas.file){const t=n.relative(l(e),l(o));return a.isWindows?i.toSlashes(t):t}let s=e.path||"/",d=o.path||"/";if(this._ignorePathCasing(e)){let e=0;for(const t=Math.min(s.length,d.length);e!1),t.isEqual=t.extUri.isEqual.bind(t.extUri), +t.basenameOrAuthority=t.extUri.basenameOrAuthority.bind(t.extUri),t.basename=t.extUri.basename.bind(t.extUri),t.dirname=t.extUri.dirname.bind(t.extUri),t.joinPath=t.extUri.joinPath.bind(t.extUri),t.normalizePath=t.extUri.normalizePath.bind(t.extUri),t.relativePath=t.extUri.relativePath.bind(t.extUri),t.resolvePath=t.extUri.resolvePath.bind(t.extUri),t.isEqualAuthority=t.extUri.isEqualAuthority.bind(t.extUri),function(e){e.META_DATA_LABEL="label",e.META_DATA_DESCRIPTION="description",e.META_DATA_SIZE="size",e.META_DATA_MIME="mime",e.parseMetaData=function(t){const i=new Map;t.path.substring(t.path.indexOf(";")+1,t.path.lastIndexOf(";")).split(";").forEach(e=>{const[t,n]=e.split(":");t&&n&&i.set(t,n)});const n=t.path.substring(0,t.path.indexOf(";"));return n&&i.set(e.META_DATA_MIME,n),i}}(t.DataUri||(t.DataUri={}))})),define(t[279],i([0,1,7,148,12,78,97,657,658,189,37,8,24,40,26,41,51]),(function(e,t,i,n,o,s,r,a,l,d,c,h,u,g,p,m,f){"use strict";Object.defineProperty(t,"__esModule",{value:!0}), +t.renderMarkdown=void 0,t.renderMarkdown=function(e,t={},_={}){var v;const C=n.createElement(t),b=function(t){let i;try{i=d.parse(decodeURIComponent(t))}catch(e){}return i?(i=c.cloneAndChange(i,t=>e.uris&&e.uris[t]?u.URI.revive(e.uris[t]):void 0),encodeURIComponent(JSON.stringify(i))):t},S=function(t,n){const o=e.uris&&e.uris[t];if(!o)return t;let s=u.URI.revive(o);return u.URI.parse(t).toString()===s.toString()?t:n?i.asDomUri(s).toString(!0):(s.query&&(s=s.with({query:b(s.query)})),s.toString())};let w;const y=new Promise(e=>w=e),E=new a.Renderer;E.image=(e,i,n)=>{let o=[],r=[];if(e){({href:e,dimensions:o}=s.parseHrefAndDimensions(e)),e=S(e,!0);try{const i=u.URI.parse(e);t.baseUrl&&i.scheme===g.Schemas.file&&(e=m.resolvePath(t.baseUrl,e).toString())}catch(e){}r.push(`src="${e}"`)}return n&&r.push(`alt="${n}"`),i&&r.push(`title="${i}"`),o.length&&(r=r.concat(o)),""},E.link=(i,n,o)=>{if(i===o&&(o=s.removeMarkdownEscapes(o)),i=S(i,!1),t.baseUrl){ +/^\w[\w\d+.-]*:/.test(i)||(i=m.resolvePath(t.baseUrl,i).toString())}return n=s.removeMarkdownEscapes(n),!(i=s.removeMarkdownEscapes(i))||i.match(/^data:|javascript:/i)||i.match(/^command:/i)&&!e.isTrusted||i.match(/^command:(\/\/\/)?_workbench\.downloadResource/i)?o:`
        /g,">").replace(/"/g,""").replace(/'/g,"'")}" title="${n||i}">${o}`},E.paragraph=t=>`

        ${e.supportThemeIcons?p.renderCodicons(t):t}

        `,t.codeBlockRenderer&&(E.code=(e,i)=>{const n=t.codeBlockRenderer(i,e),o=r.defaultGenerator.nextId(),s=Promise.all([n,y]).then(e=>{const t=e[0],i=C.querySelector(`div[data-code="${o}"]`);i&&(i.innerHTML=t)}).catch(e=>{});return t.codeBlockRenderCallback&&s.then(t.codeBlockRenderCallback),`
        ${h.escape(e)}
        `});const L=t.actionHandler;L&&[i.EventType.CLICK,i.EventType.AUXCLICK].forEach(e=>{L.disposeables.add(i.addDisposableListener(C,e,e=>{const t=new f.StandardMouseEvent(e) +;if(!t.leftButton&&!t.middleButton)return;let i=t.target;if("A"===i.tagName||(i=i.parentElement)&&"A"===i.tagName)try{const e=i.dataset.href;e&&L.callback(e,t)}catch(e){o.onUnexpectedError(e)}finally{t.preventDefault()}}))}),_.sanitizer=t=>{return(e.isTrusted?t.match(/^()|(<\/\s*span>)$/):void 0)?t:""},_.sanitize=!0,_.renderer=E;const x=[g.Schemas.http,g.Schemas.https,g.Schemas.mailto,g.Schemas.data,g.Schemas.file,g.Schemas.vscodeRemote,g.Schemas.vscodeRemoteResource];e.isTrusted&&x.push(g.Schemas.command);let D=null!==(v=e.value)&&void 0!==v?v:"";D.length>1e5&&(D=`${D.substr(0,1e5)}…`);const k=a.parse(e.supportThemeIcons?p.markdownEscapeEscapedCodicons(D):D,_);return C.innerHTML=l.insane(k,{allowedSchemes:x,allowedTags:["ul","li","p","code","blockquote","ol","h1","h2","h3","h4","h5","h6","hr","em","pre","table","thead","tbody","tr","th","td","div","del","a","strong","br","img","span"],allowedAttributes:{a:["href","name","target","data-href"],img:["src","title","alt","width","height"], +div:["class","data-code"],span:["class","style"],th:["align"],td:["align"]},filter:function(t){return"span"!==t.tag||!e.isTrusted||1!==Object.keys(t.attrs).length||(t.attrs.style?!!t.attrs.style.match(/^(color\:#[0-9a-fA-F]+;)?(background-color\:#[0-9a-fA-F]+;)?$/):!!t.attrs.class&&!!t.attrs.class.match(/^codicon codicon-[a-z\-]+( codicon-animation-[a-z\-]+)?$/))}}),w(),C}})),define(t[151],i([0,1,24,63,8,40,16,41]),(function(e,t,i,n,o,s,r,a){"use strict";function l(e){return!(!r.isWindows||!e||":"!==e[1])}function d(e){return l(e)?e.charAt(0).toUpperCase()+e.slice(1):e}Object.defineProperty(t,"__esModule",{value:!0}),t.tildify=t.normalizeDriveLetter=t.getBaseLabel=t.getPathLabel=void 0,t.getPathLabel=function(e,t,o){if("string"==typeof e&&(e=i.URI.file(e)),o){const t=o.getWorkspaceFolder(e);if(t){const i=o.getWorkspace().folders.length>1;let n;if(n=a.isEqual(t.uri,e)?"":a.relativePath(t.uri,e),i){const e=t.name?t.name:a.basename(t.uri);n=n?e+" • "+n:e}return n}} +if(e.scheme!==s.Schemas.file&&e.scheme!==s.Schemas.untitled)return e.with({query:null,fragment:null}).toString(!0);if(l(e.fsPath))return n.normalize(d(e.fsPath));let c=n.normalize(e.fsPath);return!r.isWindows&&(null==t?void 0:t.userHome)&&(c=h(c,t.userHome.fsPath)),c},t.getBaseLabel=function(e){if(!e)return;"string"==typeof e&&(e=i.URI.file(e));const t=a.basename(e)||(e.scheme===s.Schemas.file?e.fsPath:e.path);return l(t)?d(t):t},t.normalizeDriveLetter=d;let c=Object.create(null);function h(e,t){if(r.isWindows||!e||!t)return e;let i=c.original===t?c.normalized:void 0;return i||(i=`${o.rtrim(t,n.posix.sep)}${n.posix.sep}`,c={original:t,normalized:i}),(r.isLinux?e.startsWith(i):o.startsWithIgnoreCase(e,i))&&(e=`~/${e.substr(i.length)}`),e}t.tildify=h})),define(t[280],i([0,1,63,8,193,40,41]),(function(e,t,i,n,o,s,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.guessMimeTypes=t.registerTextMime=t.MIME_UNKNOWN=t.MIME_TEXT=void 0,t.MIME_TEXT="text/plain",t.MIME_UNKNOWN="application/unknown" +;let a=[],l=[],d=[];function c(e,t,i){let n=null,s=null,r=null;for(let a=i.length-1;a>=0;a--){const l=i[a];if(t===l.filenameLowercase){n=l;break}if(l.filepattern&&(!s||l.filepattern.length>s.filepattern.length)){const i=l.filepatternOnPath?e:t;o.match(l.filepatternLowercase,i)&&(s=l)}l.extension&&(!r||l.extension.length>r.extension.length)&&t.endsWith(l.extensionLowercase)&&(r=l)}return n?n.mime:s?s.mime:r?r.mime:null}t.registerTextMime=function(e,t=!1){const n=function(e){return{id:e.id,mime:e.mime,filename:e.filename,extension:e.extension,filepattern:e.filepattern,firstline:e.firstline,userConfigured:e.userConfigured,filenameLowercase:e.filename?e.filename.toLowerCase():void 0,extensionLowercase:e.extension?e.extension.toLowerCase():void 0,filepatternLowercase:e.filepattern?e.filepattern.toLowerCase():void 0,filepatternOnPath:!!e.filepattern&&e.filepattern.indexOf(i.posix.sep)>=0}}(e);a.push(n),n.userConfigured?d.push(n):l.push(n),t&&!n.userConfigured&&a.forEach(e=>{ +e.mime===n.mime||e.userConfigured||(n.extension&&e.extension===n.extension&&console.warn(`Overwriting extension <<${n.extension}>> to now point to mime <<${n.mime}>>`),n.filename&&e.filename===n.filename&&console.warn(`Overwriting filename <<${n.filename}>> to now point to mime <<${n.mime}>>`),n.filepattern&&e.filepattern===n.filepattern&&console.warn(`Overwriting filepattern <<${n.filepattern}>> to now point to mime <<${n.mime}>>`),n.firstline&&e.firstline===n.firstline&&console.warn(`Overwriting firstline <<${n.firstline}>> to now point to mime <<${n.mime}>>`))})},t.guessMimeTypes=function(e,o){let h;if(e)switch(e.scheme){case s.Schemas.file:h=e.fsPath;break;case s.Schemas.data:h=r.DataUri.parseMetaData(e).get(r.DataUri.META_DATA_LABEL);break;default:h=e.path}if(!h)return[t.MIME_UNKNOWN];h=h.toLowerCase();const u=i.basename(h),g=c(h,u,d);if(g)return[g,t.MIME_TEXT];const p=c(h,u,l);if(p)return[p,t.MIME_TEXT];if(o){const e=function(e){n.startsWithUTF8BOM(e)&&(e=e.substr(1)) +;if(e.length>0)for(let t=a.length-1;t>=0;t--){const i=a[t];if(!i.firstline)continue;const n=e.match(i.firstline);if(n&&n.length>0)return i.mime}return null}(o);if(e)return[e,t.MIME_TEXT]}return[t.MIME_UNKNOWN]}})),define(t[194],i([0,1,12,2,16,23]),(function(e,t,i,n,o,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.create=t.SimpleWorkerServer=t.SimpleWorkerClient=t.logOnceWebWorkerWarning=void 0;const r="$initialize";let a=!1;t.logOnceWebWorkerWarning=function(e){o.isWeb&&(a||(a=!0,console.warn("Could not create web worker(s). Falling back to loading web worker code in main thread, which might cause UI freezes. Please see https://github.com/Microsoft/monaco-editor#faq")),console.warn(e.message))};class l{constructor(e){this._workerId=-1,this._handler=e,this._lastSentReq=0,this._pendingReplies=Object.create(null)}setWorkerId(e){this._workerId=e}sendMessage(e,t){let i=String(++this._lastSentReq);return new Promise((n,o)=>{this._pendingReplies[i]={resolve:n,reject:o},this._send({ +vsWorker:this._workerId,req:i,method:e,args:t})})}handleMessage(e){e&&e.vsWorker&&(-1!==this._workerId&&e.vsWorker!==this._workerId||this._handleMessage(e))}_handleMessage(e){if(e.seq){let t=e;if(!this._pendingReplies[t.seq])return void console.warn("Got reply to unknown seq");let i=this._pendingReplies[t.seq];if(delete this._pendingReplies[t.seq],t.err){let e=t.err;return t.err.$isError&&((e=new Error).name=t.err.name,e.message=t.err.message,e.stack=t.err.stack),void i.reject(e)}return void i.resolve(t.res)}let t=e,n=t.req;this._handler.handleMessage(t.method,t.args).then(e=>{this._send({vsWorker:this._workerId,seq:n,res:e,err:void 0})},e=>{e.detail instanceof Error&&(e.detail=i.transformErrorForSerialization(e.detail)),this._send({vsWorker:this._workerId,seq:n,res:void 0,err:i.transformErrorForSerialization(e)})})}_send(e){let t=[];if(e.req){const i=e;for(let e=0;e{this._protocol.handleMessage(e)},e=>{n&&n(e)})),this._protocol=new l({sendMessage:(e,t)=>{this._worker.postMessage(e,t)},handleMessage:(e,t)=>{if("function"!=typeof i[e])return Promise.reject(new Error("Missing method "+e+" on main thread host."));try{return Promise.resolve(i[e].apply(i,t))}catch(e){return Promise.reject(e)}}}),this._protocol.setWorkerId(this._worker.getId());let o=null;void 0!==self.require&&"function"==typeof self.require.getConfig?o=self.require.getConfig():void 0!==self.requirejs&&(o=self.requirejs.s.contexts._.config);const a=s.getAllMethodNames(i);this._onModuleLoaded=this._protocol.sendMessage(r,[this._worker.getId(),JSON.parse(JSON.stringify(o)),t,a]);const d=(e,t)=>this._request(e,t);this._lazyProxy=new Promise((e,i)=>{n=i,this._onModuleLoaded.then(t=>{e(s.createProxyObject(t,d))},e=>{i(e), +this._onError("Worker failed to load "+t,e)})})}getProxyObject(){return this._lazyProxy}_request(e,t){return new Promise((i,n)=>{this._onModuleLoaded.then(()=>{this._protocol.sendMessage(e,t).then(i,n)},n)})}_onError(e,t){console.error(e),console.info(t)}}t.SimpleWorkerClient=d;class c{constructor(e,t){this._requestHandlerFactory=t,this._requestHandler=null,this._protocol=new l({sendMessage:(t,i)=>{e(t,i)},handleMessage:(e,t)=>this._handleMessage(e,t)})}onmessage(e){this._protocol.handleMessage(e)}_handleMessage(e,t){if(e===r)return this.initialize(t[0],t[1],t[2],t[3]);if(!this._requestHandler||"function"!=typeof this._requestHandler[e])return Promise.reject(new Error("Missing requestHandler or method: "+e));try{return Promise.resolve(this._requestHandler[e].apply(this._requestHandler,t))}catch(e){return Promise.reject(e)}}initialize(e,t,i,n){this._protocol.setWorkerId(e);const o=s.createProxyObject(n,(e,t)=>this._protocol.sendMessage(e,t)) +;return this._requestHandlerFactory?(this._requestHandler=this._requestHandlerFactory(o),Promise.resolve(s.getAllMethodNames(this._requestHandler))):(t&&(void 0!==t.baseUrl&&delete t.baseUrl,void 0!==t.paths&&void 0!==t.paths.vs&&delete t.paths.vs,t.catchError=!0,self.require.config(t)),new Promise((e,t)=>{self.require([i],i=>{this._requestHandler=i.create(o),this._requestHandler?e(s.getAllMethodNames(this._requestHandler)):t(new Error("No RequestHandler!"))},t)}))}}t.SimpleWorkerServer=c,t.create=function(e){return new c(e,null)}})),define(t[195],i([0,1]),(function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ItemActivation=t.NO_KEY_MODS=void 0,t.NO_KEY_MODS={ctrlCmd:!1,alt:!1},function(e){e[e.NONE=0]="NONE",e[e.FIRST=1]="FIRST",e[e.SECOND=2]="SECOND",e[e.LAST=3]="LAST"}(t.ItemActivation||(t.ItemActivation={}))})),define(t[281],i([0,1,16,194]),(function(e,t,i,n){"use strict";function o(t,i,n=!1){if(n||/^((http:)|(https:)|(file:))/.test(t)){ +const o=String(window.location),s=o.substr(0,o.length-window.location.hash.length-window.location.search.length-window.location.pathname.length);if(n||t.substring(0,s.length)!==s){const o="vs/base/worker/defaultWorkerFactory.js",s=`/*${i}*/self.MonacoEnvironment={baseUrl: '${e.toUrl(o).slice(0,-o.length)}'};importScripts('${t}');/*${i}*/`;if(n){return`data:text/javascript;charset=utf-8,${encodeURIComponent(s)}`}const r=new Blob([s],{type:"application/javascript"});return URL.createObjectURL(r)}}return t+"#"+i}Object.defineProperty(t,"__esModule",{value:!0}),t.DefaultWorkerFactory=t.getWorkerBootstrapUrl=void 0,t.getWorkerBootstrapUrl=o;class s{constructor(t,n,s,r,a){this.id=n;const l=function(t,n){if(i.globals.MonacoEnvironment){if("function"==typeof i.globals.MonacoEnvironment.getWorker)return i.globals.MonacoEnvironment.getWorker(t,n);if("function"==typeof i.globals.MonacoEnvironment.getWorkerUrl)return new Worker(i.globals.MonacoEnvironment.getWorkerUrl(t,n))}if("function"==typeof e){ +const i=o(e.toUrl("./"+t),n);return new Worker(i,{name:n})}throw new Error("You must define a function MonacoEnvironment.getWorkerUrl or MonacoEnvironment.getWorker")}("workerMain.js",s);"function"==typeof l.then?this.worker=l:this.worker=Promise.resolve(l),this.postMessage(t,[]),this.worker.then(e=>{e.onmessage=function(e){r(e.data)},e.onmessageerror=a,"function"==typeof e.addEventListener&&e.addEventListener("error",a)})}getId(){return this.id}postMessage(e,t){this.worker&&this.worker.then(i=>i.postMessage(e,t))}dispose(){this.worker&&this.worker.then(e=>e.terminate()),this.worker=null}}class r{constructor(e){this._label=e,this._webWorkerFailedBeforeError=!1}create(e,t,i){let o=++r.LAST_WORKER_ID;if(this._webWorkerFailedBeforeError)throw this._webWorkerFailedBeforeError;return new s(e,o,this._label||"anonymous"+o,t,e=>{n.logOnceWebWorkerWarning(e),this._webWorkerFailedBeforeError=e,i(e)})}}t.DefaultWorkerFactory=r,r.LAST_WORKER_ID=0})),define(t[196],i([9]),{}),define(t[282],i([9]),{}), +define(t[48],i([0,1,16,7,282]),(function(e,t,i,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.status=t.alert=t.setARIAContainer=void 0;const o=2e4;let s,r,a,l,d;function c(e){s&&(r.textContent!==e?(n.clearNode(a),h(r,e)):(n.clearNode(r),h(a,e)))}function h(e,t){n.clearNode(e),t.length>o&&(t=t.substr(0,o)),e.textContent=t,e.style.visibility="hidden",e.style.visibility="visible"}t.setARIAContainer=function(e){(s=document.createElement("div")).className="monaco-aria-container";const t=()=>{const e=document.createElement("div");return e.className="monaco-alert",e.setAttribute("role","alert"),e.setAttribute("aria-atomic","true"),s.appendChild(e),e};r=t(),a=t();const i=()=>{const e=document.createElement("div");return e.className="monaco-status",e.setAttribute("role","complementary"),e.setAttribute("aria-live","polite"),e.setAttribute("aria-atomic","true"),s.appendChild(e),e};l=i(),d=i(),e.appendChild(s)},t.alert=c,t.status=function(e){s&&(i.isMacintosh?c(e):l.textContent!==e?(n.clearNode(d), +h(l,e)):(n.clearNode(l),h(d,e)))}})),define(t[283],i([9]),{}),define(t[284],i([0,1,7,53,29,37,4,2,58,275,283]),(function(e,t,i,n,o,s,r,a,l,d){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Button=void 0;const c={buttonBackground:o.Color.fromHex("#0E639C"),buttonHoverBackground:o.Color.fromHex("#006BB3"),buttonForeground:o.Color.white};class h extends a.Disposable{constructor(e,t){super(),this._onDidClick=this._register(new r.Emitter),this.options=t||Object.create(null),s.mixin(this.options,c,!1),this.buttonForeground=this.options.buttonForeground,this.buttonBackground=this.options.buttonBackground,this.buttonHoverBackground=this.options.buttonHoverBackground,this.buttonSecondaryForeground=this.options.buttonSecondaryForeground,this.buttonSecondaryBackground=this.options.buttonSecondaryBackground,this.buttonSecondaryHoverBackground=this.options.buttonSecondaryHoverBackground,this.buttonBorder=this.options.buttonBorder,this._element=document.createElement("a"), +i.addClass(this._element,"monaco-button"),this._element.tabIndex=0,this._element.setAttribute("role","button"),e.appendChild(this._element),this._register(l.Gesture.addTarget(this._element)),[i.EventType.CLICK,l.EventType.Tap].forEach(e=>{this._register(i.addDisposableListener(this._element,e,e=>{this.enabled?this._onDidClick.fire(e):i.EventHelper.stop(e)}))}),this._register(i.addDisposableListener(this._element,i.EventType.KEY_DOWN,e=>{const t=new n.StandardKeyboardEvent(e);let o=!1;this.enabled&&(t.equals(3)||t.equals(10))?(this._onDidClick.fire(e),o=!0):t.equals(9)&&(this._element.blur(),o=!0),o&&i.EventHelper.stop(t,!0)})),this._register(i.addDisposableListener(this._element,i.EventType.MOUSE_OVER,e=>{i.hasClass(this._element,"disabled")||this.setHoverBackground()})),this._register(i.addDisposableListener(this._element,i.EventType.MOUSE_OUT,e=>{this.applyStyles()})),this.focusTracker=this._register(i.trackFocus(this._element)),this._register(this.focusTracker.onDidFocus(()=>this.setHoverBackground())), +this._register(this.focusTracker.onDidBlur(()=>this.applyStyles())),this.applyStyles()}get onDidClick(){return this._onDidClick.event}setHoverBackground(){let e;(e=this.options.secondary?this.buttonSecondaryHoverBackground?this.buttonSecondaryHoverBackground.toString():null:this.buttonHoverBackground?this.buttonHoverBackground.toString():null)&&(this._element.style.backgroundColor=e)}style(e){this.buttonForeground=e.buttonForeground,this.buttonBackground=e.buttonBackground,this.buttonHoverBackground=e.buttonHoverBackground,this.buttonSecondaryForeground=e.buttonSecondaryForeground,this.buttonSecondaryBackground=e.buttonSecondaryBackground,this.buttonSecondaryHoverBackground=e.buttonSecondaryHoverBackground,this.buttonBorder=e.buttonBorder,this.applyStyles()}applyStyles(){if(this._element){let e,t;this.options.secondary?(t=this.buttonSecondaryForeground?this.buttonSecondaryForeground.toString():"", +e=this.buttonSecondaryBackground?this.buttonSecondaryBackground.toString():""):(t=this.buttonForeground?this.buttonForeground.toString():"",e=this.buttonBackground?this.buttonBackground.toString():"");const i=this.buttonBorder?this.buttonBorder.toString():"";this._element.style.color=t,this._element.style.backgroundColor=e,this._element.style.borderWidth=i?"1px":"",this._element.style.borderStyle=i?"solid":"",this._element.style.borderColor=i}}get element(){return this._element}set label(e){i.hasClass(this._element,"monaco-text-button")||i.addClass(this._element,"monaco-text-button"),this.options.supportCodicons?i.reset(this._element,...d.renderCodiconsAsElement(e)):this._element.textContent=e,"string"==typeof this.options.title?this._element.title=this.options.title:this.options.title&&(this._element.title=e)}set enabled(e){e?(i.removeClass(this._element,"disabled"),this._element.setAttribute("aria-disabled",String(!1)),this._element.tabIndex=0):(i.addClass(this._element,"disabled"), +this._element.setAttribute("aria-disabled",String(!0)),i.removeTabIndexAndUpdateFocus(this._element))}get enabled(){return!i.hasClass(this._element,"disabled")}}t.Button=h})),define(t[285],i([9]),{}),define(t[152],i([0,1,7,54,29,4,285]),(function(e,t,i,n,o,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Checkbox=void 0;const r={inputActiveOptionBorder:o.Color.fromHex("#007ACC00"),inputActiveOptionForeground:o.Color.fromHex("#FFFFFF"),inputActiveOptionBackground:o.Color.fromHex("#0E639C50")};class a extends n.Widget{constructor(e){super(),this._onChange=this._register(new s.Emitter),this.onChange=this._onChange.event,this._onKeyDown=this._register(new s.Emitter),this.onKeyDown=this._onKeyDown.event,this._opts=Object.assign(Object.assign({},r),e),this._checked=this._opts.isChecked;const t=["monaco-custom-checkbox"];this._opts.icon?t.push(this._opts.icon.classNames):t.push("codicon"),this._opts.actionClassName&&t.push(this._opts.actionClassName),t.push(this._checked?"checked":"unchecked"), +this.domNode=document.createElement("div"),this.domNode.title=this._opts.title,this.domNode.className=t.join(" "),this.domNode.tabIndex=0,this.domNode.setAttribute("role","checkbox"),this.domNode.setAttribute("aria-checked",String(this._checked)),this.domNode.setAttribute("aria-label",this._opts.title),this.applyStyles(),this.onclick(this.domNode,e=>{this.checked=!this._checked,this._onChange.fire(!1),e.preventDefault()}),this.ignoreGesture(this.domNode),this.onkeydown(this.domNode,e=>{if(10===e.keyCode||3===e.keyCode)return this.checked=!this._checked,this._onChange.fire(!0),void e.preventDefault();this._onKeyDown.fire(e)})}get enabled(){return"true"!==this.domNode.getAttribute("aria-disabled")}focus(){this.domNode.focus()}get checked(){return this._checked}set checked(e){this._checked=e,this.domNode.setAttribute("aria-checked",String(this._checked)),this._checked?this.domNode.classList.add("checked"):this.domNode.classList.remove("checked"),this.applyStyles()}width(){return 22}style(e){ +e.inputActiveOptionBorder&&(this._opts.inputActiveOptionBorder=e.inputActiveOptionBorder),e.inputActiveOptionForeground&&(this._opts.inputActiveOptionForeground=e.inputActiveOptionForeground),e.inputActiveOptionBackground&&(this._opts.inputActiveOptionBackground=e.inputActiveOptionBackground),this.applyStyles()}applyStyles(){this.domNode&&(this.domNode.style.borderColor=this._checked&&this._opts.inputActiveOptionBorder?this._opts.inputActiveOptionBorder.toString():"transparent",this.domNode.style.color=this._checked&&this._opts.inputActiveOptionForeground?this._opts.inputActiveOptionForeground.toString():"inherit",this.domNode.style.backgroundColor=this._checked&&this._opts.inputActiveOptionBackground?this._opts.inputActiveOptionBackground.toString():"transparent")}enable(){this.domNode.tabIndex=0,this.domNode.setAttribute("aria-disabled",String(!1))}disable(){i.removeTabIndexAndUpdateFocus(this.domNode),this.domNode.setAttribute("aria-disabled",String(!0))}}t.Checkbox=a})),define(t[286],i([9]),{}), +define(t[287],i([9]),{}),define(t[288],i([9]),{}),define(t[115],i([0,1,26,286,288,287]),(function(e,t,i){"use strict";function n(e){let t=e.definition;for(;t instanceof i.Codicon;)t=t.definition;return`.codicon-${e.id}:before { content: '${t.character}'; }`}Object.defineProperty(t,"__esModule",{value:!0}),t.formatRule=t.CodiconStyles=void 0,t.CodiconStyles=new class{constructor(){this.onDidChange=i.iconRegistry.onDidRegister}getCSS(){const e=[];for(let t of i.iconRegistry.all)e.push(n(t));return e.join("\n")}},t.formatRule=n})),define(t[289],i([9]),{}),define(t[197],i([0,1,7,16,2,110,98,289]),(function(e,t,i,n,o,s,r){"use strict";function a(e,t,i){const n=i.offset+i.size;return 0===i.position?t<=e-n?n:t<=i.offset?i.offset-t:Math.max(e-t,0):t<=i.offset?i.offset-t:t<=e-n?n:0}Object.defineProperty(t,"__esModule",{value:!0}),t.ContextView=t.layout=void 0,t.layout=a;class l extends o.Disposable{constructor(e,t){super(),this.container=null,this.delegate=null,this.toDisposeOnClean=o.Disposable.None, +this.toDisposeOnSetContainer=o.Disposable.None,this.shadowRoot=null,this.shadowRootHostElement=null,this.view=i.$(".context-view"),this.useFixedPosition=!1,this.useShadowDOM=!1,i.hide(this.view),this.setContainer(e,t),this._register(o.toDisposable(()=>this.setContainer(null,1)))}setContainer(e,t){if(this.container&&(this.toDisposeOnSetContainer.dispose(),this.shadowRoot?(this.shadowRoot.removeChild(this.view),this.shadowRoot=null,i.removeNode(this.shadowRootHostElement),this.shadowRootHostElement=null):this.container.removeChild(this.view),this.container=null),e){this.container=e,this.useFixedPosition=1!==t,this.useShadowDOM=3===t,this.useShadowDOM?(this.shadowRootHostElement=i.$(".shadow-root-host"),this.container.appendChild(this.shadowRootHostElement),this.shadowRoot=this.shadowRootHostElement.attachShadow({mode:"open"}),this.shadowRoot.innerHTML=`\n\t\t\t\t\t\n\t\t\t\t`,this.shadowRoot.appendChild(this.view), +this.shadowRoot.appendChild(i.$("slot"))):this.container.appendChild(this.view);const n=new o.DisposableStore;l.BUBBLE_UP_EVENTS.forEach(e=>{n.add(i.addStandardDisposableListener(this.container,e,e=>{this.onDOMEvent(e,!1)}))}),l.BUBBLE_DOWN_EVENTS.forEach(e=>{n.add(i.addStandardDisposableListener(this.container,e,e=>{this.onDOMEvent(e,!0)},!0))}),this.toDisposeOnSetContainer=n}}show(e){this.isVisible()&&this.hide(),i.clearNode(this.view),this.view.className="context-view",this.view.style.top="0px",this.view.style.left="0px",this.view.style.zIndex="2500",this.view.style.position=this.useFixedPosition?"fixed":"absolute",i.show(this.view),this.toDisposeOnClean=e.render(this.view)||o.Disposable.None,this.delegate=e,this.doLayout(),this.delegate.focus&&this.delegate.focus()}getViewElement(){return this.view}layout(){this.isVisible()&&(!1!==this.delegate.canRelayout||n.isIOS&&r.BrowserFeatures.pointerEvents?(this.delegate.layout&&this.delegate.layout(),this.doLayout()):this.hide())}doLayout(){ +if(!this.isVisible())return;let e,t=this.delegate.getAnchor();if(i.isHTMLElement(t)){let n=i.getDomNodePagePosition(t);e={top:n.top,left:n.left,width:n.width,height:n.height}}else e={top:t.y,left:t.x,width:t.width||1,height:t.height||2};const n=i.getTotalWidth(this.view),o=i.getTotalHeight(this.view),r=this.delegate.anchorPosition||0,l=this.delegate.anchorAlignment||0,d={offset:e.top-window.pageYOffset,size:e.height,position:0===r?0:1};let c;c=0===l?{offset:e.left,size:0,position:0}:{offset:e.left+e.width,size:0,position:1};const h=a(window.innerHeight,o,d)+window.pageYOffset;s.Range.intersects({start:h,end:h+o},{start:d.offset,end:d.offset+d.size})&&(c.size=e.width,1===l&&(c.offset=e.left));const u=a(window.innerWidth,n,c);i.removeClasses(this.view,"top","bottom","left","right"),i.addClass(this.view,0===r?"bottom":"top"),i.addClass(this.view,0===l?"left":"right"),i.toggleClass(this.view,"fixed",this.useFixedPosition);const g=i.getDomNodePagePosition(this.container) +;this.view.style.top=`${h-(this.useFixedPosition?i.getDomNodePagePosition(this.view).top:g.top)}px`,this.view.style.left=`${u-(this.useFixedPosition?i.getDomNodePagePosition(this.view).left:g.left)}px`,this.view.style.width="initial"}hide(e){const t=this.delegate;this.delegate=null,(null==t?void 0:t.onHide)&&t.onHide(e),this.toDisposeOnClean.dispose(),i.hide(this.view)}isVisible(){return!!this.delegate}onDOMEvent(e,t){this.delegate&&(this.delegate.onDOMEvent?this.delegate.onDOMEvent(e,document.activeElement):t&&!i.isAncestor(e.target,this.container)&&this.hide())}dispose(){this.hide(),super.dispose()}}t.ContextView=l,l.BUBBLE_UP_EVENTS=["click","keydown","focus","blur"],l.BUBBLE_DOWN_EVENTS=["click"] +;let d='\n\t:host {\n\t\tall: initial; /* 1st rule so subsequent properties are reset. */\n\t}\n\n\t@font-face {\n\t\tfont-family: "codicon";\n\t\tsrc: url("./codicon.ttf?5d4d76ab2ce5108968ad644d591a16a6") format("truetype");\n\t}\n\n\t.codicon[class*=\'codicon-\'] {\n\t\tfont: normal normal normal 16px/1 codicon;\n\t\tdisplay: inline-block;\n\t\ttext-decoration: none;\n\t\ttext-rendering: auto;\n\t\ttext-align: center;\n\t\t-webkit-font-smoothing: antialiased;\n\t\t-moz-osx-font-smoothing: grayscale;\n\t\tuser-select: none;\n\t\t-webkit-user-select: none;\n\t\t-ms-user-select: none;\n\t}\n\n\t:host {\n\t\tfont-family: -apple-system, BlinkMacSystemFont, "Segoe WPC", "Segoe UI", "HelveticaNeue-Light", system-ui, "Ubuntu", "Droid Sans", sans-serif;\n\t}\n\n\t:host-context(.mac) { font-family: -apple-system, BlinkMacSystemFont, sans-serif; }\n\t:host-context(.mac:lang(zh-Hans)) { font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", sans-serif; }\n\t:host-context(.mac:lang(zh-Hant)) { font-family: -apple-system, BlinkMacSystemFont, "PingFang TC", sans-serif; }\n\t:host-context(.mac:lang(ja)) { font-family: -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic Pro", sans-serif; }\n\t:host-context(.mac:lang(ko)) { font-family: -apple-system, BlinkMacSystemFont, "Nanum Gothic", "Apple SD Gothic Neo", "AppleGothic", sans-serif; }\n\n\t:host-context(.windows) { font-family: "Segoe WPC", "Segoe UI", sans-serif; }\n\t:host-context(.windows:lang(zh-Hans)) { font-family: "Segoe WPC", "Segoe UI", "Microsoft YaHei", sans-serif; }\n\t:host-context(.windows:lang(zh-Hant)) { font-family: "Segoe WPC", "Segoe UI", "Microsoft Jhenghei", sans-serif; }\n\t:host-context(.windows:lang(ja)) { font-family: "Segoe WPC", "Segoe UI", "Yu Gothic UI", "Meiryo UI", sans-serif; }\n\t:host-context(.windows:lang(ko)) { font-family: "Segoe WPC", "Segoe UI", "Malgun Gothic", "Dotom", sans-serif; }\n\n\t:host-context(.linux) { font-family: system-ui, "Ubuntu", "Droid Sans", sans-serif; }\n\t:host-context(.linux:lang(zh-Hans)) { font-family: system-ui, "Ubuntu", "Droid Sans", "Source Han Sans SC", "Source Han Sans CN", "Source Han Sans", sans-serif; }\n\t:host-context(.linux:lang(zh-Hant)) { font-family: system-ui, "Ubuntu", "Droid Sans", "Source Han Sans TC", "Source Han Sans TW", "Source Han Sans", sans-serif; }\n\t:host-context(.linux:lang(ja)) { font-family: system-ui, "Ubuntu", "Droid Sans", "Source Han Sans J", "Source Han Sans JP", "Source Han Sans", sans-serif; }\n\t:host-context(.linux:lang(ko)) { font-family: system-ui, "Ubuntu", "Droid Sans", "Source Han Sans K", "Source Han Sans JR", "Source Han Sans", "UnDotum", "FBaekmuk Gulim", sans-serif; }\n' +})),define(t[290],i([9]),{}),define(t[198],i([0,1,7,8,29,37,290]),(function(e,t,i,n,o,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CountBadge=void 0;const r={badgeBackground:o.Color.fromHex("#4D4D4D"),badgeForeground:o.Color.fromHex("#FFFFFF")};t.CountBadge=class{constructor(e,t){this.count=0,this.options=t||Object.create(null),s.mixin(this.options,r,!1),this.badgeBackground=this.options.badgeBackground,this.badgeForeground=this.options.badgeForeground,this.badgeBorder=this.options.badgeBorder,this.element=i.append(e,i.$(".monaco-count-badge")),this.countFormat=this.options.countFormat||"{0}",this.titleFormat=this.options.titleFormat||"",this.setCount(this.options.count||0)}setCount(e){this.count=e,this.render()}setTitleFormat(e){this.titleFormat=e,this.render()}render(){this.element.textContent=n.format(this.countFormat,this.count),this.element.title=n.format(this.titleFormat,this.count),this.applyStyles()}style(e){this.badgeBackground=e.badgeBackground, +this.badgeForeground=e.badgeForeground,this.badgeBorder=e.badgeBorder,this.applyStyles()}applyStyles(){if(this.element){const e=this.badgeBackground?this.badgeBackground.toString():"",t=this.badgeForeground?this.badgeForeground.toString():"",i=this.badgeBorder?this.badgeBorder.toString():"";this.element.style.backgroundColor=e,this.element.style.color=t,this.element.style.borderWidth=i?"1px":"",this.element.style.borderStyle=i?"solid":"",this.element.style.borderColor=i}}}})),define(t[199],i([9]),{}),define(t[291],i([0,1,58,47,7,53,4,199]),(function(e,t,i,n,o,s,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DropdownMenu=t.BaseDropdown=void 0;class a extends n.ActionRunner{constructor(e,t){super(),this._onDidChangeVisibility=new r.Emitter,this.onDidChangeVisibility=this._onDidChangeVisibility.event,this._element=o.append(e,o.$(".monaco-dropdown")),this._label=o.append(this._element,o.$(".dropdown-label"));let n=t.labelRenderer;n||(n=e=>(e.textContent=t.label||"",null)) +;for(const e of[o.EventType.CLICK,o.EventType.MOUSE_DOWN,i.EventType.Tap])this._register(o.addDisposableListener(this.element,e,e=>o.EventHelper.stop(e,!0)));for(const e of[o.EventType.MOUSE_DOWN,i.EventType.Tap])this._register(o.addDisposableListener(this._label,e,e=>{e instanceof MouseEvent&&e.detail>1||(this.visible?this.hide():this.show())}));this._register(o.addDisposableListener(this._label,o.EventType.KEY_UP,e=>{const t=new s.StandardKeyboardEvent(e);(t.equals(3)||t.equals(10))&&(o.EventHelper.stop(e,!0),this.visible?this.hide():this.show())}));const a=n(this._label);a&&this._register(a),this._register(i.Gesture.addTarget(this._label))}get element(){return this._element}show(){this.visible||(this.visible=!0,this._onDidChangeVisibility.fire(!0))}hide(){this.visible&&(this.visible=!1,this._onDidChangeVisibility.fire(!1))}dispose(){super.dispose(),this.hide(),this.boxContainer&&(this.boxContainer.remove(),this.boxContainer=void 0),this.contents&&(this.contents.remove(),this.contents=void 0), +this._label&&(this._label.remove(),this._label=void 0)}}t.BaseDropdown=a;t.DropdownMenu=class extends a{constructor(e,t){super(e,t),this._actions=[],this._contextMenuProvider=t.contextMenuProvider,this.actions=t.actions||[],this.actionProvider=t.actionProvider,this.menuClassName=t.menuClassName||"",this.menuAsChild=!!t.menuAsChild}set menuOptions(e){this._menuOptions=e}get menuOptions(){return this._menuOptions}get actions(){return this.actionProvider?this.actionProvider.getActions():this._actions}set actions(e){this._actions=e}show(){super.show(),o.addClass(this.element,"active"),this._contextMenuProvider.showContextMenu({getAnchor:()=>this.element,getActions:()=>this.actions,getActionsContext:()=>this.menuOptions?this.menuOptions.context:null,getActionViewItem:e=>this.menuOptions&&this.menuOptions.actionViewItemProvider?this.menuOptions.actionViewItemProvider(e):void 0,getKeyBinding:e=>this.menuOptions&&this.menuOptions.getKeyBinding?this.menuOptions.getKeyBinding(e):void 0, +getMenuClassName:()=>this.menuClassName,onHide:()=>this.onHide(),actionRunner:this.menuOptions?this.menuOptions.actionRunner:void 0,anchorAlignment:this.menuOptions?this.menuOptions.anchorAlignment:0,domForShadowRoot:this.menuAsChild?this.element:void 0})}hide(){super.hide()}onHide(){this.hide(),o.removeClass(this.element,"active")}}})),define(t[200],i([9]),{}),define(t[292],i([9]),{}),define(t[293],i([9]),{}),define(t[153],i([0,1,7,150,2,110,37,293]),(function(e,t,i,n,o,s,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.IconLabel=void 0;class a{constructor(e){this._element=e}get element(){return this._element}set textContent(e){this.disposed||e===this._textContent||(this._textContent=e,this._element.textContent=e)}set className(e){this.disposed||e===this._className||(this._className=e,this._element.className=e)}set title(e){this.disposed||e===this._title||(this._title=e,this._title?this._element.title=e:this._element.removeAttribute("title"))}set empty(e){ +this.disposed||e===this._empty||(this._empty=e,this._element.style.marginLeft=e?"0":"")}dispose(){this.disposed=!0}}class l extends o.Disposable{constructor(e,t){super(),this.domNode=this._register(new a(i.append(e,i.$(".monaco-icon-label"))));const o=i.append(this.domNode.element,i.$(".monaco-icon-label-container")),s=i.append(o,i.$("span.monaco-icon-name-container"));this.descriptionContainer=this._register(new a(i.append(o,i.$("span.monaco-icon-description-container")))),(null==t?void 0:t.supportHighlights)?this.nameNode=new c(s,!!t.supportCodicons):this.nameNode=new d(s),(null==t?void 0:t.supportDescriptionHighlights)?this.descriptionNodeFactory=()=>new n.HighlightedLabel(i.append(this.descriptionContainer.element,i.$("span.label-description")),!!t.supportCodicons):this.descriptionNodeFactory=()=>this._register(new a(i.append(this.descriptionContainer.element,i.$("span.label-description"))))}setLabel(e,t,i){const o=["monaco-icon-label"];i&&(i.extraClasses&&o.push(...i.extraClasses), +i.italic&&o.push("italic"),i.strikethrough&&o.push("strikethrough")),this.domNode.className=o.join(" "),this.domNode.title=(null==i?void 0:i.title)||"",this.nameNode.setLabel(e,i),(t||this.descriptionNode)&&(this.descriptionNode||(this.descriptionNode=this.descriptionNodeFactory()),this.descriptionNode instanceof n.HighlightedLabel?(this.descriptionNode.set(t||"",i?i.descriptionMatches:void 0),(null==i?void 0:i.descriptionTitle)?this.descriptionNode.element.title=i.descriptionTitle:this.descriptionNode.element.removeAttribute("title")):(this.descriptionNode.textContent=t||"",this.descriptionNode.title=(null==i?void 0:i.descriptionTitle)||"",this.descriptionNode.empty=!t))}}t.IconLabel=l;class d{constructor(e){this.container=e,this.label=void 0,this.singleLabel=void 0}setLabel(e,t){if(this.label!==e||!r.equals(this.options,t))if(this.label=e,this.options=t,"string"==typeof e)this.singleLabel||(this.container.innerText="",i.removeClass(this.container,"multiple"), +this.singleLabel=i.append(this.container,i.$("a.label-name",{id:null==t?void 0:t.domId}))),this.singleLabel.textContent=e;else{this.container.innerText="",i.addClass(this.container,"multiple"),this.singleLabel=void 0;for(let n=0;n{const o={start:n,end:n+e.length},r=i.map(e=>s.Range.intersect(o,e)).filter(e=>!s.Range.isEmpty(e)).map(({start:e,end:t})=>({start:e-n,end:t-n}));return n=o.end+t.length,r})}(e,o,null==t?void 0:t.matches);for(let s=0;ss.show(this.element),0)),this.create(e)}create(e){this.element=document.createElement("div"),s.addClass(this.element,h),e.appendChild(this.element),this.bit=document.createElement("div"), +s.addClass(this.bit,u),this.element.appendChild(this.bit),this.applyStyles()}off(){this.bit.style.width="inherit",this.bit.style.opacity="1",s.removeClasses(this.element,l,d,c),this.workedVal=0,this.totalWork=void 0}stop(){return this.doDone(!1)}doDone(e){return s.addClass(this.element,a),s.hasClass(this.element,d)?(this.bit.style.opacity="0",e?setTimeout(()=>this.off(),200):this.off()):(this.bit.style.width="inherit",e?setTimeout(()=>this.off(),200):this.off()),this}infinite(){return this.bit.style.width="2%",this.bit.style.opacity="1",s.removeClasses(this.element,c,a),s.addClasses(this.element,l,d),this}getContainer(){return this.element}style(e){this.progressBarBackground=e.progressBarBackground,this.applyStyles()}applyStyles(){if(this.bit){const e=this.progressBarBackground?this.progressBarBackground.toString():"";this.bit.style.backgroundColor=e}}}t.ProgressBar=p})),define(t[299],i([9]),{}),define(t[117],i([0,1,2,16,23,58,51,4,7,57,299]),(function(e,t,i,n,o,s,r,a,l,d){"use strict" +;Object.defineProperty(t,"__esModule",{value:!0}),t.Sash=void 0;const c=!1;let h=4;const u=new a.Emitter;class g extends i.Disposable{constructor(e,t,o){super(),this._state=3,this._onDidEnablementChange=this._register(new a.Emitter),this.onDidEnablementChange=this._onDidEnablementChange.event,this._onDidStart=this._register(new a.Emitter),this.onDidStart=this._onDidStart.event,this._onDidChange=this._register(new a.Emitter),this.onDidChange=this._onDidChange.event,this._onDidReset=this._register(new a.Emitter),this.onDidReset=this._onDidReset.event,this._onDidEnd=this._register(new a.Emitter),this.onDidEnd=this._onDidEnd.event,this.linkedSash=void 0,this.orthogonalStartSashDisposables=this._register(new i.DisposableStore),this.orthogonalEndSashDisposables=this._register(new i.DisposableStore),this.el=l.append(e,l.$(".monaco-sash")),n.isMacintosh&&l.addClass(this.el,"mac"),this._register(d.domEvent(this.el,"mousedown")(this.onMouseDown,this)), +this._register(d.domEvent(this.el,"dblclick")(this.onMouseDoubleClick,this)),this._register(s.Gesture.addTarget(this.el)),this._register(d.domEvent(this.el,s.EventType.Start)(this.onTouchStart,this)),"number"==typeof o.size?(this.size=o.size,0===o.orientation?this.el.style.width=`${this.size}px`:this.el.style.height=`${this.size}px`):(this.size=h,this._register(u.event(e=>{this.size=e,this.layout()}))),this.hidden=!1,this.layoutProvider=t,this.orthogonalStartSash=o.orthogonalStartSash,this.orthogonalEndSash=o.orthogonalEndSash,this.orientation=o.orientation||0,1===this.orientation?(l.addClass(this.el,"horizontal"),l.removeClass(this.el,"vertical")):(l.removeClass(this.el,"horizontal"),l.addClass(this.el,"vertical")),l.toggleClass(this.el,"debug",c),this.layout()}get state(){return this._state}set state(e){this._state!==e&&(l.toggleClass(this.el,"disabled",0===e),l.toggleClass(this.el,"minimum",1===e),l.toggleClass(this.el,"maximum",2===e),this._state=e,this._onDidEnablementChange.fire(e))} +get orthogonalStartSash(){return this._orthogonalStartSash}set orthogonalStartSash(e){this.orthogonalStartSashDisposables.clear(),e?(this.orthogonalStartSashDisposables.add(e.onDidEnablementChange(this.onOrthogonalStartSashEnablementChange,this)),this.onOrthogonalStartSashEnablementChange(e.state)):this.onOrthogonalStartSashEnablementChange(0),this._orthogonalStartSash=e}get orthogonalEndSash(){return this._orthogonalEndSash}set orthogonalEndSash(e){this.orthogonalEndSashDisposables.clear(),e?(this.orthogonalEndSashDisposables.add(e.onDidEnablementChange(this.onOrthogonalEndSashEnablementChange,this)),this.onOrthogonalEndSashEnablementChange(e.state)):this.onOrthogonalEndSashEnablementChange(0),this._orthogonalEndSash=e}onMouseDown(e){l.EventHelper.stop(e,!1);let t=!1;if(!e.__orthogonalSashEvent){const i=this.getOrthogonalSash(e);i&&(t=!0,e.__orthogonalSashEvent=!0,i.onMouseDown(e))}if(this.linkedSash&&!e.__linkedSashEvent&&(e.__linkedSashEvent=!0,this.linkedSash.onMouseDown(e)),!this.state)return +;const o=[...l.getElementsByTagName("iframe"),...l.getElementsByTagName("webview")];for(const e of o)e.style.pointerEvents="none";const s=new r.StandardMouseEvent(e),a=s.posx,c=s.posy,h=s.altKey,u={startX:a,currentX:a,startY:c,currentY:c,altKey:h};l.addClass(this.el,"active"),this._onDidStart.fire(u);const g=l.createStyleSheet(this.el),p=()=>{let e="";e=t?"all-scroll":1===this.orientation?1===this.state?"s-resize":2===this.state?"n-resize":n.isMacintosh?"row-resize":"ns-resize":1===this.state?"e-resize":2===this.state?"w-resize":n.isMacintosh?"col-resize":"ew-resize",g.innerHTML=`* { cursor: ${e} !important; }`},m=new i.DisposableStore;p(),t||this.onDidEnablementChange(p,null,m);d.domEvent(window,"mousemove")(e=>{l.EventHelper.stop(e,!1);const t=new r.StandardMouseEvent(e),i={startX:a,currentX:t.posx,startY:c,currentY:t.posy,altKey:h};this._onDidChange.fire(i)},null,m),d.domEvent(window,"mouseup")(e=>{l.EventHelper.stop(e,!1),this.el.removeChild(g),l.removeClass(this.el,"active"),this._onDidEnd.fire(), +m.dispose();for(const e of o)e.style.pointerEvents="auto"},null,m)}onMouseDoubleClick(e){const t=this.getOrthogonalSash(e);t&&t._onDidReset.fire(),this.linkedSash&&this.linkedSash._onDidReset.fire(),this._onDidReset.fire()}onTouchStart(e){l.EventHelper.stop(e);const t=[],n=e.pageX,r=e.pageY,a=e.altKey;this._onDidStart.fire({startX:n,currentX:n,startY:r,currentY:r,altKey:a}),t.push(l.addDisposableListener(this.el,s.EventType.Change,e=>{o.isNumber(e.pageX)&&o.isNumber(e.pageY)&&this._onDidChange.fire({startX:n,currentX:e.pageX,startY:r,currentY:e.pageY,altKey:a})})),t.push(l.addDisposableListener(this.el,s.EventType.End,e=>{this._onDidEnd.fire(),i.dispose(t)}))}layout(){if(0===this.orientation){const e=this.layoutProvider;this.el.style.left=e.getVerticalSashLeft(this)-this.size/2+"px",e.getVerticalSashTop&&(this.el.style.top=e.getVerticalSashTop(this)+"px"),e.getVerticalSashHeight&&(this.el.style.height=e.getVerticalSashHeight(this)+"px")}else{const e=this.layoutProvider +;this.el.style.top=e.getHorizontalSashTop(this)-this.size/2+"px",e.getHorizontalSashLeft&&(this.el.style.left=e.getHorizontalSashLeft(this)+"px"),e.getHorizontalSashWidth&&(this.el.style.width=e.getHorizontalSashWidth(this)+"px")}}hide(){this.hidden=!0,this.el.style.display="none",this.el.setAttribute("aria-hidden","true")}onOrthogonalStartSashEnablementChange(e){l.toggleClass(this.el,"orthogonal-start",0!==e)}onOrthogonalEndSashEnablementChange(e){l.toggleClass(this.el,"orthogonal-end",0!==e)}getOrthogonalSash(e){if(0===this.orientation){if(e.offsetY<=this.size)return this.orthogonalStartSash;if(e.offsetY>=this.el.clientHeight-this.size)return this.orthogonalEndSash}else{if(e.offsetX<=this.size)return this.orthogonalStartSash;if(e.offsetX>=this.el.clientWidth-this.size)return this.orthogonalEndSash}}dispose(){super.dispose(),this.el.remove()}}t.Sash=g})),define(t[300],i([9]),{}),define(t[65],i([0,1,7,30,51,276,277,54,15,4,2,16,147,36,300]),(function(e,t,i,n,o,s,r,a,l,d,c,h,u,g){"use strict" +;Object.defineProperty(t,"__esModule",{value:!0}),t.DomScrollableElement=t.SmoothScrollableElement=t.ScrollableElement=t.AbstractScrollableElement=t.MouseWheelClassifier=void 0;const p=500,m=50,f=!0;class _{constructor(e,t,i){this.timestamp=e,this.deltaX=t,this.deltaY=i,this.score=0}}class v{constructor(){this._capacity=5,this._memory=[],this._front=-1,this._rear=-1}isPhysicalMouseWheel(){if(-1===this._front&&-1===this._rear)return!1;let e=1,t=0,i=1,n=this._rear;for(;;){const o=n===this._front?e:Math.pow(2,-i);if(e-=o,t+=this._memory[n].score*o,n===this._front)break;n=(this._capacity+n-1)%this._capacity,i++}return t<=.5}accept(e,t,i){const n=new _(e,t,i);n.score=this._computeScore(n),-1===this._front&&-1===this._rear?(this._memory[0]=n,this._front=0,this._rear=0):(this._rear=(this._rear+1)%this._capacity,this._rear===this._front&&(this._front=(this._front+1)%this._capacity),this._memory[this._rear]=n)}_computeScore(e){if(Math.abs(e.deltaX)>0&&Math.abs(e.deltaY)>0)return 1;let t=.5 +;-1===this._front&&-1===this._rear||this._memory[this._rear];return this._isAlmostInt(e.deltaX)&&this._isAlmostInt(e.deltaY)||(t+=.25),Math.min(Math.max(t,0),1)}_isAlmostInt(e){return Math.abs(Math.round(e)-e)<.01}}t.MouseWheelClassifier=v,v.INSTANCE=new v;class C extends a.Widget{constructor(e,t,i){super(),this._onScroll=this._register(new d.Emitter),this.onScroll=this._onScroll.event,this._onWillScroll=this._register(new d.Emitter),e.style.overflow="hidden",this._options=function(e){let t={lazyRender:void 0!==e.lazyRender&&e.lazyRender,className:void 0!==e.className?e.className:"",useShadows:void 0===e.useShadows||e.useShadows,handleMouseWheel:void 0===e.handleMouseWheel||e.handleMouseWheel,flipAxes:void 0!==e.flipAxes&&e.flipAxes,alwaysConsumeMouseWheel:void 0!==e.alwaysConsumeMouseWheel&&e.alwaysConsumeMouseWheel,scrollYToX:void 0!==e.scrollYToX&&e.scrollYToX,mouseWheelScrollSensitivity:void 0!==e.mouseWheelScrollSensitivity?e.mouseWheelScrollSensitivity:1, +fastScrollSensitivity:void 0!==e.fastScrollSensitivity?e.fastScrollSensitivity:5,scrollPredominantAxis:void 0===e.scrollPredominantAxis||e.scrollPredominantAxis,mouseWheelSmoothScroll:void 0===e.mouseWheelSmoothScroll||e.mouseWheelSmoothScroll,arrowSize:void 0!==e.arrowSize?e.arrowSize:11,listenOnDomNode:void 0!==e.listenOnDomNode?e.listenOnDomNode:null,horizontal:void 0!==e.horizontal?e.horizontal:1,horizontalScrollbarSize:void 0!==e.horizontalScrollbarSize?e.horizontalScrollbarSize:10,horizontalSliderSize:void 0!==e.horizontalSliderSize?e.horizontalSliderSize:0,horizontalHasArrows:void 0!==e.horizontalHasArrows&&e.horizontalHasArrows,vertical:void 0!==e.vertical?e.vertical:1,verticalScrollbarSize:void 0!==e.verticalScrollbarSize?e.verticalScrollbarSize:10,verticalHasArrows:void 0!==e.verticalHasArrows&&e.verticalHasArrows,verticalSliderSize:void 0!==e.verticalSliderSize?e.verticalSliderSize:0};t.horizontalSliderSize=void 0!==e.horizontalSliderSize?e.horizontalSliderSize:t.horizontalScrollbarSize, +t.verticalSliderSize=void 0!==e.verticalSliderSize?e.verticalSliderSize:t.verticalScrollbarSize,h.isMacintosh&&(t.className+=" mac");return t}(t),this._scrollable=i,this._register(this._scrollable.onScroll(e=>{this._onWillScroll.fire(e),this._onDidScroll(e),this._onScroll.fire(e)}));let o={onMouseWheel:e=>this._onMouseWheel(e),onDragStart:()=>this._onDragStart(),onDragEnd:()=>this._onDragEnd()};this._verticalScrollbar=this._register(new r.VerticalScrollbar(this._scrollable,this._options,o)),this._horizontalScrollbar=this._register(new s.HorizontalScrollbar(this._scrollable,this._options,o)),this._domNode=document.createElement("div"),this._domNode.className="monaco-scrollable-element "+this._options.className,this._domNode.setAttribute("role","presentation"),this._domNode.style.position="relative",this._domNode.style.overflow="hidden",this._domNode.appendChild(e),this._domNode.appendChild(this._horizontalScrollbar.domNode.domNode),this._domNode.appendChild(this._verticalScrollbar.domNode.domNode), +this._options.useShadows?(this._leftShadowDomNode=n.createFastDomNode(document.createElement("div")),this._leftShadowDomNode.setClassName("shadow"),this._domNode.appendChild(this._leftShadowDomNode.domNode),this._topShadowDomNode=n.createFastDomNode(document.createElement("div")),this._topShadowDomNode.setClassName("shadow"),this._domNode.appendChild(this._topShadowDomNode.domNode),this._topLeftShadowDomNode=n.createFastDomNode(document.createElement("div")),this._topLeftShadowDomNode.setClassName("shadow top-left-corner"),this._domNode.appendChild(this._topLeftShadowDomNode.domNode)):(this._leftShadowDomNode=null,this._topShadowDomNode=null,this._topLeftShadowDomNode=null),this._listenOnDomNode=this._options.listenOnDomNode||this._domNode,this._mouseWheelToDispose=[],this._setListeningToMouseWheel(this._options.handleMouseWheel),this.onmouseover(this._listenOnDomNode,e=>this._onMouseOver(e)),this.onnonbubblingmouseout(this._listenOnDomNode,e=>this._onMouseOut(e)), +this._hideTimeout=this._register(new l.TimeoutTimer),this._isDragging=!1,this._mouseIsOver=!1,this._shouldRender=!0,this._revealOnScroll=!0}dispose(){this._mouseWheelToDispose=c.dispose(this._mouseWheelToDispose),super.dispose()}getDomNode(){return this._domNode}getOverviewRulerLayoutInfo(){return{parent:this._domNode,insertBefore:this._verticalScrollbar.domNode.domNode}}delegateVerticalScrollbarMouseDown(e){this._verticalScrollbar.delegateMouseDown(e)}getScrollDimensions(){return this._scrollable.getScrollDimensions()}setScrollDimensions(e){this._scrollable.setScrollDimensions(e,!1)}updateClassName(e){this._options.className=e,h.isMacintosh&&(this._options.className+=" mac"),this._domNode.className="monaco-scrollable-element "+this._options.className}updateOptions(e){void 0!==e.handleMouseWheel&&(this._options.handleMouseWheel=e.handleMouseWheel,this._setListeningToMouseWheel(this._options.handleMouseWheel)), +void 0!==e.mouseWheelScrollSensitivity&&(this._options.mouseWheelScrollSensitivity=e.mouseWheelScrollSensitivity),void 0!==e.fastScrollSensitivity&&(this._options.fastScrollSensitivity=e.fastScrollSensitivity),void 0!==e.scrollPredominantAxis&&(this._options.scrollPredominantAxis=e.scrollPredominantAxis),void 0!==e.horizontalScrollbarSize&&this._horizontalScrollbar.updateScrollbarSize(e.horizontalScrollbarSize),this._options.lazyRender||this._render()}_setListeningToMouseWheel(e){if(this._mouseWheelToDispose.length>0!==e&&(this._mouseWheelToDispose=c.dispose(this._mouseWheelToDispose),e)){let e=e=>{this._onMouseWheel(new o.StandardWheelEvent(e))};this._mouseWheelToDispose.push(i.addDisposableListener(this._listenOnDomNode,i.EventType.MOUSE_WHEEL,e,{passive:!1}))}}_onMouseWheel(e){const t=v.INSTANCE;if(f){const i=window.devicePixelRatio/g.getZoomFactor();h.isWindows||h.isLinux?t.accept(Date.now(),e.deltaX/i,e.deltaY/i):t.accept(Date.now(),e.deltaX,e.deltaY)}if(e.deltaY||e.deltaX){ +let i=e.deltaY*this._options.mouseWheelScrollSensitivity,n=e.deltaX*this._options.mouseWheelScrollSensitivity;this._options.scrollPredominantAxis&&(Math.abs(i)>=Math.abs(n)?n=0:i=0),this._options.flipAxes&&([i,n]=[n,i]);const o=!h.isMacintosh&&e.browserEvent&&e.browserEvent.shiftKey;!this._options.scrollYToX&&!o||n||(n=i,i=0),e.browserEvent&&e.browserEvent.altKey&&(n*=this._options.fastScrollSensitivity,i*=this._options.fastScrollSensitivity);const s=this._scrollable.getFutureScrollPosition();let r={};if(i){const e=s.scrollTop-m*i;this._verticalScrollbar.writeScrollPosition(r,e)}if(n){const e=s.scrollLeft-m*n;this._horizontalScrollbar.writeScrollPosition(r,e)}if(r=this._scrollable.validateScrollPosition(r),s.scrollLeft!==r.scrollLeft||s.scrollTop!==r.scrollTop){f&&this._options.mouseWheelSmoothScroll&&t.isPhysicalMouseWheel()?this._scrollable.setScrollPositionSmooth(r):this._scrollable.setScrollPositionNow(r),this._shouldRender=!0}} +(this._options.alwaysConsumeMouseWheel||this._shouldRender)&&(e.preventDefault(),e.stopPropagation())}_onDidScroll(e){this._shouldRender=this._horizontalScrollbar.onDidScroll(e)||this._shouldRender,this._shouldRender=this._verticalScrollbar.onDidScroll(e)||this._shouldRender,this._options.useShadows&&(this._shouldRender=!0),this._revealOnScroll&&this._reveal(),this._options.lazyRender||this._render()}renderNow(){if(!this._options.lazyRender)throw new Error("Please use `lazyRender` together with `renderNow`!");this._render()}_render(){if(this._shouldRender&&(this._shouldRender=!1,this._horizontalScrollbar.render(),this._verticalScrollbar.render(),this._options.useShadows)){const e=this._scrollable.getCurrentScrollPosition();let t=e.scrollTop>0,i=e.scrollLeft>0;this._leftShadowDomNode.setClassName("shadow"+(i?" left":"")),this._topShadowDomNode.setClassName("shadow"+(t?" top":"")),this._topLeftShadowDomNode.setClassName("shadow top-left-corner"+(t?" top":"")+(i?" left":""))}}_onDragStart(){this._isDragging=!0, +this._reveal()}_onDragEnd(){this._isDragging=!1,this._hide()}_onMouseOut(e){this._mouseIsOver=!1,this._hide()}_onMouseOver(e){this._mouseIsOver=!0,this._reveal()}_reveal(){this._verticalScrollbar.beginReveal(),this._horizontalScrollbar.beginReveal(),this._scheduleHide()}_hide(){this._mouseIsOver||this._isDragging||(this._verticalScrollbar.beginHide(),this._horizontalScrollbar.beginHide())}_scheduleHide(){this._mouseIsOver||this._isDragging||this._hideTimeout.cancelAndSet(()=>this._hide(),p)}}t.AbstractScrollableElement=C;class b extends C{constructor(e,t){(t=t||{}).mouseWheelSmoothScroll=!1;const n=new u.Scrollable(0,e=>i.scheduleAtNextAnimationFrame(e));super(e,t,n),this._register(n)}setScrollPosition(e){this._scrollable.setScrollPositionNow(e)}}t.ScrollableElement=b;t.SmoothScrollableElement=class extends C{constructor(e,t,i){super(e,t,i)}setScrollPosition(e){this._scrollable.setScrollPositionNow(e)}getScrollPosition(){return this._scrollable.getCurrentScrollPosition()}} +;t.DomScrollableElement=class extends b{constructor(e,t){super(e,t),this._element=e,this.onScroll(e=>{e.scrollTopChanged&&(this._element.scrollTop=e.scrollTop),e.scrollLeftChanged&&(this._element.scrollLeft=e.scrollLeft)}),this.scanDomNode()}scanDomNode(){this.setScrollDimensions({width:this._element.clientWidth,scrollWidth:this._element.scrollWidth,height:this._element.clientHeight,scrollHeight:this._element.scrollHeight}),this.setScrollPosition({scrollLeft:this._element.scrollLeft,scrollTop:this._element.scrollTop})}}})),define(t[301],i([0,1,7,2,65,292]),(function(e,t,i,n,o){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.renderHoverAction=t.HoverWidget=void 0;const s=i.$;class r extends n.Disposable{constructor(){super(),this.containerDomNode=document.createElement("div"),this.containerDomNode.className="monaco-hover",this.containerDomNode.tabIndex=0,this.containerDomNode.setAttribute("role","tooltip"),this.contentsDomNode=document.createElement("div"), +this.contentsDomNode.className="monaco-hover-content",this._scrollbar=this._register(new o.DomScrollableElement(this.contentsDomNode,{})),this.containerDomNode.appendChild(this._scrollbar.getDomNode())}onContentsChanged(){this._scrollbar.scanDomNode()}}t.HoverWidget=r,t.renderHoverAction=function(e,t,n){const o=i.append(e,s("div.action-container")),r=i.append(o,s("a.action"));return r.setAttribute("href","#"),r.setAttribute("role","button"),t.iconClass&&i.append(r,s(`span.icon.${t.iconClass}`)),i.append(r,s("span")).textContent=n?`${t.label} (${n})`:t.label,i.addDisposableListener(o,i.EventType.CLICK,e=>{e.stopPropagation(),e.preventDefault(),t.run(o)})}})),define(t[154],i([0,1,37,2,58,7,4,57,65,147,272,274,96,110,19,143,15,36]),(function(e,t,i,n,o,s,r,l,d,c,h,u,g,p,m,f,_,v){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ListView=t.NativeDragAndDropData=t.ExternalElementsDragAndDropData=t.ElementsDragAndDropData=void 0;const C={useShadows:!0,verticalScrollMode:1,setRowLineHeight:!0, +setRowHeight:!0,supportDynamicHeights:!1,dnd:{getDragElements:e=>[e],getDragURI:()=>null,onDragStart(){},onDragOver:()=>!1,drop(){}},horizontalScrolling:!1,transformOptimization:!0};class b{constructor(e){this.elements=e}update(){}getData(){return this.elements}}t.ElementsDragAndDropData=b;class S{constructor(e){this.elements=e}update(){}getData(){return this.elements}}t.ExternalElementsDragAndDropData=S;class w{constructor(){this.types=[],this.files=[]}update(e){if(e.types&&this.types.splice(0,this.types.length,...e.types),e.files){this.files.splice(0,this.files.length);for(let t=0;ti,(null==e?void 0:e.getPosInSet)?this.getPosInSet=e.getPosInSet.bind(e):this.getPosInSet=(e,t)=>t+1, +(null==e?void 0:e.getRole)?this.getRole=e.getRole.bind(e):this.getRole=e=>"listitem",(null==e?void 0:e.isChecked)?this.isChecked=e.isChecked.bind(e):this.isChecked=e=>void 0}}class E{constructor(e,t,a,g=C){if(this.virtualDelegate=t,this.domId=`list_id_${++E.InstanceCount}`,this.renderers=new Map,this.renderWidth=0,this._scrollHeight=0,this.scrollableElementUpdateDisposable=null,this.scrollableElementWidthDelayer=new _.Delayer(50),this.splicing=!1,this.dragOverAnimationStopDisposable=n.Disposable.None,this.dragOverMouseY=0,this.canDrop=!1,this.currentDragFeedbackDisposable=n.Disposable.None,this.onDragLeaveTimeout=n.Disposable.None,this.disposables=new n.DisposableStore,this._onDidChangeContentHeight=new r.Emitter,this._horizontalScrolling=!1,g.horizontalScrolling&&g.supportDynamicHeights)throw new Error("Horizontal scrolling and dynamic heights not supported simultaneously");this.items=[],this.itemId=0,this.rangeMap=new h.RangeMap;for(const e of a)this.renderers.set(e.templateId,e) +;this.cache=this.disposables.add(new u.RowCache(this.renderers)),this.lastRenderTop=0,this.lastRenderHeight=0,this.domNode=document.createElement("div"),this.domNode.className="monaco-list",s.addClass(this.domNode,this.domId),this.domNode.tabIndex=0,s.toggleClass(this.domNode,"mouse-support","boolean"!=typeof g.mouseSupport||g.mouseSupport),this._horizontalScrolling=i.getOrDefault(g,e=>e.horizontalScrolling,C.horizontalScrolling),s.toggleClass(this.domNode,"horizontal-scrolling",this._horizontalScrolling),this.additionalScrollHeight=void 0===g.additionalScrollHeight?0:g.additionalScrollHeight,this.accessibilityProvider=new y(g.accessibilityProvider),this.rowsContainer=document.createElement("div"),this.rowsContainer.className="monaco-list-rows",i.getOrDefault(g,e=>e.transformOptimization,C.transformOptimization)&&(this.rowsContainer.style.transform="translate3d(0px, 0px, 0px)"),this.disposables.add(o.Gesture.addTarget(this.rowsContainer)), +this.scrollable=new c.Scrollable(i.getOrDefault(g,e=>e.smoothScrolling,!1)?125:0,e=>s.scheduleAtNextAnimationFrame(e)),this.scrollableElement=this.disposables.add(new d.SmoothScrollableElement(this.rowsContainer,{alwaysConsumeMouseWheel:!0,horizontal:1,vertical:i.getOrDefault(g,e=>e.verticalScrollMode,C.verticalScrollMode),useShadows:i.getOrDefault(g,e=>e.useShadows,C.useShadows)},this.scrollable)),this.domNode.appendChild(this.scrollableElement.getDomNode()),e.appendChild(this.domNode),this.scrollableElement.onScroll(this.onScroll,this,this.disposables),l.domEvent(this.rowsContainer,o.EventType.Change)(this.onTouchChange,this,this.disposables),l.domEvent(this.scrollableElement.getDomNode(),"scroll")(e=>e.target.scrollTop=0,null,this.disposables),r.Event.map(l.domEvent(this.domNode,"dragover"),e=>this.toDragEvent(e))(this.onDragOver,this,this.disposables),r.Event.map(l.domEvent(this.domNode,"drop"),e=>this.toDragEvent(e))(this.onDrop,this,this.disposables), +l.domEvent(this.domNode,"dragleave")(this.onDragLeave,this,this.disposables),l.domEvent(window,"dragend")(this.onDragEnd,this,this.disposables),this.setRowLineHeight=i.getOrDefault(g,e=>e.setRowLineHeight,C.setRowLineHeight),this.setRowHeight=i.getOrDefault(g,e=>e.setRowHeight,C.setRowHeight),this.supportDynamicHeights=i.getOrDefault(g,e=>e.supportDynamicHeights,C.supportDynamicHeights),this.dnd=i.getOrDefault(g,e=>e.dnd,C.dnd),this.layout()}get contentHeight(){return this.rangeMap.size}get horizontalScrolling(){return this._horizontalScrolling}set horizontalScrolling(e){if(e!==this._horizontalScrolling){if(e&&this.supportDynamicHeights)throw new Error("Horizontal scrolling and dynamic heights not supported simultaneously");if(this._horizontalScrolling=e,s.toggleClass(this.domNode,"horizontal-scrolling",this._horizontalScrolling),this._horizontalScrolling){for(const e of this.items)this.measureItemWidth(e);this.updateScrollWidth(),this.scrollableElement.setScrollDimensions({ +width:s.getContentWidth(this.domNode)}),this.rowsContainer.style.width=`${Math.max(this.scrollWidth||0,this.renderWidth)}px`}else this.scrollableElementWidthDelayer.cancel(),this.scrollableElement.setScrollDimensions({width:this.renderWidth,scrollWidth:this.renderWidth}),this.rowsContainer.style.width=""}}updateOptions(e){void 0!==e.additionalScrollHeight&&(this.additionalScrollHeight=e.additionalScrollHeight),void 0!==e.smoothScrolling&&this.scrollable.setSmoothScrollDuration(e.smoothScrolling?125:0),void 0!==e.horizontalScrolling&&(this.horizontalScrolling=e.horizontalScrolling)}splice(e,t,i=[]){if(this.splicing)throw new Error("Can't run recursive splices.");this.splicing=!0;try{return this._splice(e,t,i)}finally{this.splicing=!1,this._onDidChangeContentHeight.fire(this.contentHeight)}}_splice(e,t,i=[]){const o=this.getRenderRange(this.lastRenderTop,this.lastRenderHeight),s={start:e,end:e+t},r=p.Range.intersect(o,s);for(let e=r.start;e({id:String(this.itemId++),element:e,templateId:this.virtualDelegate.getTemplateId(e),size:this.virtualDelegate.getHeight(e),width:void 0,hasDynamicHeight:!!this.virtualDelegate.hasDynamicHeight&&this.virtualDelegate.hasDynamicHeight(e),lastDynamicHeightWidth:void 0,row:null,uri:void 0,dropTarget:!1,dragStartDisposable:n.Disposable.None}));let u;0===e&&t>=this.items.length?(this.rangeMap=new h.RangeMap,this.rangeMap.splice(0,0,c),this.items=c,u=[]):(this.rangeMap.splice(e,t,c),u=this.items.splice(e,t,...c));const g=i.length-t,m=this.getRenderRange(this.lastRenderTop,this.lastRenderHeight),f=h.shift(l,g),_=p.Range.intersect(m,f);for(let e=_.start;e<_.end;e++)this.updateItemInDOM(this.items[e],e);const v=p.Range.relativeComplement(f,m);for(const e of v)for(let t=e.start;th.shift(e,g)),b=[{start:e,end:e+i.length +},...C].map(e=>p.Range.intersect(m,e)),S=this.getNextToLastElement(b);for(const e of b)for(let t=e.start;te.element)}eventuallyUpdateScrollDimensions(){this._scrollHeight=this.contentHeight,this.rowsContainer.style.height=`${this._scrollHeight}px`,this.scrollableElementUpdateDisposable||(this.scrollableElementUpdateDisposable=s.scheduleAtNextAnimationFrame(()=>{this.scrollableElement.setScrollDimensions({scrollHeight:this.scrollHeight}),this.updateScrollWidth(),this.scrollableElementUpdateDisposable=null}))}eventuallyUpdateScrollWidth(){this.horizontalScrolling?this.scrollableElementWidthDelayer.trigger(()=>this.updateScrollWidth()):this.scrollableElementWidthDelayer.cancel()}updateScrollWidth(){if(!this.horizontalScrolling)return;let e=0;for(const t of this.items)void 0!==t.width&&(e=Math.max(e,t.width));this.scrollWidth=e, +this.scrollableElement.setScrollDimensions({scrollWidth:0===e?0:e+10})}rerender(){if(this.supportDynamicHeights){for(const e of this.items)e.lastDynamicHeightWidth=void 0;this._rerender(this.lastRenderTop,this.lastRenderHeight)}}get length(){return this.items.length}get renderHeight(){return this.scrollableElement.getScrollDimensions().height}element(e){return this.items[e].element}domElement(e){const t=this.items[e].row;return t&&t.domNode}elementHeight(e){return this.items[e].size}elementTop(e){return this.rangeMap.positionAt(e)}indexAt(e){return this.rangeMap.indexAt(e)}indexAfter(e){return this.rangeMap.indexAfter(e)}layout(e,t){let i={height:"number"==typeof e?e:s.getContentHeight(this.domNode)};this.scrollableElementUpdateDisposable&&(this.scrollableElementUpdateDisposable.dispose(),this.scrollableElementUpdateDisposable=null,i.scrollHeight=this.scrollHeight),this.scrollableElement.setScrollDimensions(i),void 0!==t&&(this.renderWidth=t, +this.supportDynamicHeights&&this._rerender(this.scrollTop,this.renderHeight),this.horizontalScrolling&&this.scrollableElement.setScrollDimensions({width:"number"==typeof t?t:s.getContentWidth(this.domNode)}))}render(e,t,i,n,o,s=!1){const r=this.getRenderRange(t,i),a=p.Range.relativeComplement(r,e),l=p.Range.relativeComplement(e,r),d=this.getNextToLastElement(a);if(s){const t=p.Range.intersect(e,r);for(let e=t.start;ethis.onDragStart(i.element,o,e))}this.horizontalScrolling&&(this.measureItemWidth(i),this.eventuallyUpdateScrollWidth())}measureItemWidth(e){if(!e.row||!e.row.domNode)return;e.row.domNode.style.width=v.isFirefox?"-moz-fit-content":"fit-content",e.width=s.getContentWidth(e.row.domNode);const t=window.getComputedStyle(e.row.domNode) +;t.paddingLeft&&(e.width+=parseFloat(t.paddingLeft)),t.paddingRight&&(e.width+=parseFloat(t.paddingRight)),e.row.domNode.style.width=""}updateItemInDOM(e,t){e.row.domNode.style.top=`${this.elementTop(t)}px`,this.setRowHeight&&(e.row.domNode.style.height=`${e.size}px`),this.setRowLineHeight&&(e.row.domNode.style.lineHeight=`${e.size}px`),e.row.domNode.setAttribute("data-index",`${t}`),e.row.domNode.setAttribute("data-last-element",t===this.length-1?"true":"false"),e.row.domNode.setAttribute("aria-setsize",String(this.accessibilityProvider.getSetSize(e.element,t,this.length))),e.row.domNode.setAttribute("aria-posinset",String(this.accessibilityProvider.getPosInSet(e.element,t))),e.row.domNode.setAttribute("id",this.getElementDomId(t)),s.toggleClass(e.row.domNode,"drop-target",e.dropTarget)}removeItemFromDOM(e){const t=this.items[e];t.dragStartDisposable.dispose();const i=this.renderers.get(t.templateId);t.row&&i&&i.disposeElement&&i.disposeElement(t.element,e,t.row.templateData,t.size), +this.cache.release(t.row),t.row=null,this.horizontalScrolling&&this.eventuallyUpdateScrollWidth()}getScrollTop(){return this.scrollableElement.getScrollPosition().scrollTop}setScrollTop(e){this.scrollableElementUpdateDisposable&&(this.scrollableElementUpdateDisposable.dispose(),this.scrollableElementUpdateDisposable=null,this.scrollableElement.setScrollDimensions({scrollHeight:this.scrollHeight})),this.scrollableElement.setScrollPosition({scrollTop:e})}get scrollTop(){return this.getScrollTop()}set scrollTop(e){this.setScrollTop(e)}get scrollHeight(){return this._scrollHeight+(this.horizontalScrolling?10:0)+this.additionalScrollHeight}get onMouseClick(){return r.Event.map(l.domEvent(this.domNode,"click"),e=>this.toMouseEvent(e))}get onMouseDblClick(){return r.Event.map(l.domEvent(this.domNode,"dblclick"),e=>this.toMouseEvent(e))}get onMouseMiddleClick(){return r.Event.filter(r.Event.map(l.domEvent(this.domNode,"auxclick"),e=>this.toMouseEvent(e)),e=>1===e.browserEvent.button)}get onMouseDown(){ +return r.Event.map(l.domEvent(this.domNode,"mousedown"),e=>this.toMouseEvent(e))}get onContextMenu(){return r.Event.map(l.domEvent(this.domNode,"contextmenu"),e=>this.toMouseEvent(e))}get onTouchStart(){return r.Event.map(l.domEvent(this.domNode,"touchstart"),e=>this.toTouchEvent(e))}get onTap(){return r.Event.map(l.domEvent(this.rowsContainer,o.EventType.Tap),e=>this.toGestureEvent(e))}toMouseEvent(e){const t=this.getItemIndexFromEventTarget(e.target||null),i=void 0===t?void 0:this.items[t];return{browserEvent:e,index:t,element:i&&i.element}}toTouchEvent(e){const t=this.getItemIndexFromEventTarget(e.target||null),i=void 0===t?void 0:this.items[t];return{browserEvent:e,index:t,element:i&&i.element}}toGestureEvent(e){const t=this.getItemIndexFromEventTarget(e.initialTarget||null),i=void 0===t?void 0:this.items[t];return{browserEvent:e,index:t,element:i&&i.element}}toDragEvent(e){const t=this.getItemIndexFromEventTarget(e.target||null),i=void 0===t?void 0:this.items[t];return{browserEvent:e,index:t, +element:i&&i.element}}onScroll(e){try{const t=this.getRenderRange(this.lastRenderTop,this.lastRenderHeight);this.render(t,e.scrollTop,e.height,e.scrollLeft,e.scrollWidth),this.supportDynamicHeights&&this._rerender(e.scrollTop,e.height)}catch(t){throw console.error("Got bad scroll event:",e),t}}onTouchChange(e){e.preventDefault(),e.stopPropagation(),this.scrollTop-=e.translationY}onDragStart(e,t,i){if(!i.dataTransfer)return;const n=this.dnd.getDragElements(e);if(i.dataTransfer.effectAllowed="copyMove",i.dataTransfer.setData(f.DataTransfers.RESOURCES,JSON.stringify([t])),i.dataTransfer.setDragImage){let e;this.dnd.getDragLabel&&(e=this.dnd.getDragLabel(n,i)),void 0===e&&(e=String(n.length));const t=s.$(".monaco-drag-image");t.textContent=e,document.body.appendChild(t),i.dataTransfer.setDragImage(t,-10,-10),setTimeout(()=>document.body.removeChild(t),0)}this.currentDragData=new b(n),f.StaticDND.CurrentDragAndDropData=new S(n),this.dnd.onDragStart&&this.dnd.onDragStart(this.currentDragData,i)}onDragOver(e){ +if(e.browserEvent.preventDefault(),this.onDragLeaveTimeout.dispose(),f.StaticDND.CurrentDragAndDropData&&"vscode-ui"===f.StaticDND.CurrentDragAndDropData.getData())return!1;if(this.setupDragAndDropScrollTopAnimation(e.browserEvent),!e.browserEvent.dataTransfer)return!1;if(!this.currentDragData)if(f.StaticDND.CurrentDragAndDropData)this.currentDragData=f.StaticDND.CurrentDragAndDropData;else{if(!e.browserEvent.dataTransfer.types)return!1;this.currentDragData=new w}const t=this.dnd.onDragOver(this.currentDragData,e.element,e.index,e.browserEvent);if(this.canDrop="boolean"==typeof t?t:t.accept,!this.canDrop)return this.currentDragFeedback=void 0,this.currentDragFeedbackDisposable.dispose(),!1;let i;if(e.browserEvent.dataTransfer.dropEffect="boolean"!=typeof t&&0===t.effect?"copy":"move",i="boolean"!=typeof t&&t.feedback?t.feedback:void 0===e.index?[-1]:[e.index],i=-1===(i=m.distinct(i).filter(e=>e>=-1&&ee-t))[0]?[-1]:i,o=this.currentDragFeedback,r=i, +Array.isArray(o)&&Array.isArray(r)?m.equals(o,r):o===r)return!0;var o,r;if(this.currentDragFeedback=i,this.currentDragFeedbackDisposable.dispose(),-1===i[0])s.addClass(this.domNode,"drop-target"),s.addClass(this.rowsContainer,"drop-target"),this.currentDragFeedbackDisposable=n.toDisposable(()=>{s.removeClass(this.domNode,"drop-target"),s.removeClass(this.rowsContainer,"drop-target")});else{for(const e of i){const t=this.items[e];t.dropTarget=!0,t.row&&t.row.domNode&&s.addClass(t.row.domNode,"drop-target")}this.currentDragFeedbackDisposable=n.toDisposable(()=>{for(const e of i){const t=this.items[e];t.dropTarget=!1,t.row&&t.row.domNode&&s.removeClass(t.row.domNode,"drop-target")}})}return!0}onDragLeave(){this.onDragLeaveTimeout.dispose(),this.onDragLeaveTimeout=_.disposableTimeout(()=>this.clearDragOverFeedback(),100)}onDrop(e){if(!this.canDrop)return;const t=this.currentDragData;this.teardownDragAndDropScrollTopAnimation(),this.clearDragOverFeedback(),this.currentDragData=void 0, +f.StaticDND.CurrentDragAndDropData=void 0,t&&e.browserEvent.dataTransfer&&(e.browserEvent.preventDefault(),t.update(e.browserEvent.dataTransfer),this.dnd.drop(t,e.element,e.index,e.browserEvent))}onDragEnd(e){this.canDrop=!1,this.teardownDragAndDropScrollTopAnimation(),this.clearDragOverFeedback(),this.currentDragData=void 0,f.StaticDND.CurrentDragAndDropData=void 0,this.dnd.onDragEnd&&this.dnd.onDragEnd(e)}clearDragOverFeedback(){this.currentDragFeedback=void 0,this.currentDragFeedbackDisposable.dispose(),this.currentDragFeedbackDisposable=n.Disposable.None}setupDragAndDropScrollTopAnimation(e){if(!this.dragOverAnimationDisposable){const e=s.getTopLeftOffset(this.domNode).top;this.dragOverAnimationDisposable=s.animate(this.animateDragAndDropScrollTop.bind(this,e))}this.dragOverAnimationStopDisposable.dispose(),this.dragOverAnimationStopDisposable=_.disposableTimeout(()=>{this.dragOverAnimationDisposable&&(this.dragOverAnimationDisposable.dispose(),this.dragOverAnimationDisposable=void 0)},1e3), +this.dragOverMouseY=e.pageY}animateDragAndDropScrollTop(e){if(void 0===this.dragOverMouseY)return;const t=this.dragOverMouseY-e,i=this.renderHeight-35;t<35?this.scrollTop+=Math.max(-14,Math.floor(.3*(t-35))):t>i&&(this.scrollTop+=Math.min(14,Math.floor(.3*(t-i))))}teardownDragAndDropScrollTopAnimation(){this.dragOverAnimationStopDisposable.dispose(),this.dragOverAnimationDisposable&&(this.dragOverAnimationDisposable.dispose(),this.dragOverAnimationDisposable=void 0)}getItemIndexFromEventTarget(e){const t=this.scrollableElement.getDomNode();let i=e;for(;i instanceof HTMLElement&&i!==this.rowsContainer&&t.contains(i);){const e=i.getAttribute("data-index");if(e){const t=Number(e);if(!isNaN(t))return t}i=i.parentElement}}getRenderRange(e,t){return{start:this.rangeMap.indexAt(e),end:this.rangeMap.indexAfter(e+t-1)}}_rerender(e,t){const i=this.getRenderRange(e,t);let n,o;e===this.elementTop(i.start)?(n=i.start,o=0):i.end-i.start>1&&(n=i.start+1,o=this.elementTop(n)-e);let s=0;for(;;){ +const r=this.getRenderRange(e,t);let a=!1;for(let e=r.start;ee.templateData===i);if(n>=0){const e=this.renderedElements[n];this.trait.unrender(i),e.index=t}else{const e={index:t,templateData:i};this.renderedElements.push(e)}this.trait.renderIndex(t,i)}splice(e,t,i){const n=[];for(const o of this.renderedElements)o.index=e+t&&n.push({index:o.index+i-t,templateData:o.templateData});this.renderedElements=n}renderIndexes(e){for(const{index:t,templateData:i}of this.renderedElements)e.indexOf(t)>-1&&this.trait.renderIndex(t,i)}disposeTemplate(e){const t=o.firstIndex(this.renderedElements,t=>t.templateData===e);t<0||this.renderedElements.splice(t,1)}}class w{constructor(e){this._trait=e,this.indexes=[],this.sortedIndexes=[],this._onChange=new h.Emitter,this.onChange=this._onChange.event}get trait(){return this._trait}get renderer(){return new S(this)}splice(e,t,i){ +const n=i.length-t,o=e+t,s=[...this.sortedIndexes.filter(t=>tt?i+e:-1).filter(e=>-1!==e),...this.sortedIndexes.filter(e=>e>=o).map(e=>e+n)];this.renderer.splice(e,t,i.length),this._set(s,s)}renderIndex(e,t){r.toggleClass(t,this._trait,this.contains(e))}unrender(e){r.removeClass(e,this._trait)}set(e,t){return this._set(e,[...e].sort(B),t)}_set(e,t,i){const n=this.indexes,o=this.sortedIndexes;this.indexes=e,this.sortedIndexes=t;const s=W(o,e);return this.renderer.renderIndexes(s),this._onChange.fire({indexes:e,browserEvent:i}),n}get(){return this.indexes}contains(e){return o.binarySearch(this.sortedIndexes,e,B)>=0}dispose(){i.dispose(this._onChange)}}a([s.memoize],w.prototype,"renderer",null);class y extends w{constructor(e){super("selected"),this.setAriaSelected=e}renderIndex(e,t){super.renderIndex(e,t),this.setAriaSelected&&(this.contains(e)?t.setAttribute("aria-selected","true"):t.setAttribute("aria-selected","false"))}}class E{constructor(e,t,i){this.trait=e,this.view=t, +this.identityProvider=i}splice(e,t,i){if(!this.identityProvider)return this.trait.splice(e,t,i.map(()=>!1));const n=this.trait.get().map(e=>this.identityProvider.getId(this.view.element(e)).toString()),o=i.map(e=>n.indexOf(this.identityProvider.getId(e).toString())>-1);this.trait.splice(e,t,o)}}function L(e){return"INPUT"===e.tagName||"TEXTAREA"===e.tagName}function x(e){return!!r.hasClass(e,"monaco-editor")||!r.hasClass(e,"monaco-list")&&(!!e.parentElement&&x(e.parentElement))}t.isInputElement=L,t.isMonacoEditor=x;class D{constructor(e,t,n){this.list=e,this.view=t,this.disposables=new i.DisposableStore;const o=!1!==n.multipleSelectionSupport,s=h.Event.chain(u.domEvent(t.domNode,"keydown")).filter(e=>!L(e.target)).map(e=>new c.StandardKeyboardEvent(e));s.filter(e=>3===e.keyCode).on(this.onEnter,this,this.disposables),s.filter(e=>16===e.keyCode).on(this.onUpArrow,this,this.disposables),s.filter(e=>18===e.keyCode).on(this.onDownArrow,this,this.disposables), +s.filter(e=>11===e.keyCode).on(this.onPageUpArrow,this,this.disposables),s.filter(e=>12===e.keyCode).on(this.onPageDownArrow,this,this.disposables),s.filter(e=>9===e.keyCode).on(this.onEscape,this,this.disposables),o&&s.filter(e=>(l.isMacintosh?e.metaKey:e.ctrlKey)&&31===e.keyCode).on(this.onCtrlA,this,this.disposables)}onEnter(e){e.preventDefault(),e.stopPropagation(),this.list.setSelection(this.list.getFocus(),e.browserEvent)}onUpArrow(e){e.preventDefault(),e.stopPropagation(),this.list.focusPrevious(1,!1,e.browserEvent),this.list.reveal(this.list.getFocus()[0]),this.view.domNode.focus()}onDownArrow(e){e.preventDefault(),e.stopPropagation(),this.list.focusNext(1,!1,e.browserEvent),this.list.reveal(this.list.getFocus()[0]),this.view.domNode.focus()}onPageUpArrow(e){e.preventDefault(),e.stopPropagation(),this.list.focusPreviousPage(e.browserEvent),this.list.reveal(this.list.getFocus()[0]),this.view.domNode.focus()}onPageDownArrow(e){e.preventDefault(),e.stopPropagation(), +this.list.focusNextPage(e.browserEvent),this.list.reveal(this.list.getFocus()[0]),this.view.domNode.focus()}onCtrlA(e){e.preventDefault(),e.stopPropagation(),this.list.setSelection(o.range(this.list.length),e.browserEvent),this.view.domNode.focus()}onEscape(e){e.preventDefault(),e.stopPropagation(),this.list.setSelection([],e.browserEvent),this.view.domNode.focus()}dispose(){this.disposables.dispose()}}var k;!function(e){e[e.Idle=0]="Idle",e[e.Typing=1]="Typing"}(k||(k={})),t.DefaultKeyboardNavigationDelegate=new class{mightProducePrintableCharacter(e){return!(e.ctrlKey||e.metaKey||e.altKey)&&(e.keyCode>=31&&e.keyCode<=56||e.keyCode>=21&&e.keyCode<=30||e.keyCode>=93&&e.keyCode<=102||e.keyCode>=80&&e.keyCode<=90)}};class N{constructor(e,t,n,o){this.list=e,this.view=t,this.keyboardNavigationLabelProvider=n,this.delegate=o,this.enabled=!1,this.state=k.Idle,this.automaticKeyboardNavigation=!0,this.triggered=!1,this.previouslyFocused=-1,this.enabledDisposables=new i.DisposableStore, +this.disposables=new i.DisposableStore,this.updateOptions(e.options)}updateOptions(e){void 0===e.enableKeyboardNavigation||!!e.enableKeyboardNavigation?this.enable():this.disable(),void 0!==e.automaticKeyboardNavigation&&(this.automaticKeyboardNavigation=e.automaticKeyboardNavigation)}enable(){if(this.enabled)return;const e=h.Event.chain(u.domEvent(this.view.domNode,"keydown")).filter(e=>!L(e.target)).filter(()=>this.automaticKeyboardNavigation||this.triggered).map(e=>new c.StandardKeyboardEvent(e)).filter(e=>this.delegate.mightProducePrintableCharacter(e)).forEach(e=>{e.stopPropagation(),e.preventDefault()}).map(e=>e.browserEvent.key).event,t=h.Event.debounce(e,()=>null,800);h.Event.reduce(h.Event.any(e,t),(e,t)=>null===t?null:(e||"")+t)(this.onInput,this,this.enabledDisposables),t(this.onClear,this,this.enabledDisposables),this.enabled=!0,this.triggered=!1}disable(){this.enabled&&(this.enabledDisposables.clear(),this.enabled=!1,this.triggered=!1)}onClear(){var e;const t=this.list.getFocus() +;if(t.length>0&&t[0]===this.previouslyFocused){const i=null===(e=this.list.options.accessibilityProvider)||void 0===e?void 0:e.getAriaLabel(this.list.element(t[0]));i&&b.alert(i)}this.previouslyFocused=-1}onInput(e){if(!e)return this.state=k.Idle,void(this.triggered=!1);const t=this.list.getFocus(),i=t.length>0?t[0]:0,n=this.state===k.Idle?1:0;this.state=k.Typing;for(let t=0;t!L(e.target)).map(e=>new c.StandardKeyboardEvent(e)).filter(e=>!(2!==e.keyCode||e.ctrlKey||e.metaKey||e.shiftKey||e.altKey)).on(this.onTab,this,this.disposables)}onTab(e){if(e.target!==this.view.domNode)return;const t=this.list.getFocus();if(0===t.length)return;const i=this.view.domElement(t[0]);if(!i)return;const n=i.querySelector("[tabIndex]");if(!(n&&n instanceof HTMLElement&&-1!==n.tabIndex))return;const o=window.getComputedStyle(n);"hidden"!==o.visibility&&"none"!==o.display&&(e.preventDefault(),e.stopPropagation(),n.focus())}dispose(){this.disposables.dispose()}}function M(e){return l.isMacintosh?e.browserEvent.metaKey:e.browserEvent.ctrlKey}function R(e){return e.browserEvent.shiftKey}t.isSelectionSingleChangeEvent=M,t.isSelectionRangeChangeEvent=R;const T={isSelectionSingleChangeEvent:M,isSelectionRangeChangeEvent:R};class O{constructor(e){this.list=e,this.disposables=new i.DisposableStore,this._onPointer=new h.Emitter, +this.onPointer=this._onPointer.event,this.multipleSelectionSupport=!(!1===e.options.multipleSelectionSupport),this.multipleSelectionSupport&&(this.multipleSelectionController=e.options.multipleSelectionController||T),this.mouseSupport=void 0===e.options.mouseSupport||!!e.options.mouseSupport,this.mouseSupport&&(e.onMouseDown(this.onMouseDown,this,this.disposables),e.onContextMenu(this.onContextMenu,this,this.disposables),e.onMouseDblClick(this.onDoubleClick,this,this.disposables),e.onTouchStart(this.onMouseDown,this,this.disposables),this.disposables.add(d.Gesture.addTarget(e.getHTMLElement()))),h.Event.any(e.onMouseClick,e.onMouseMiddleClick,e.onTap)(this.onViewPointer,this,this.disposables)}isSelectionSingleChangeEvent(e){return this.multipleSelectionController?this.multipleSelectionController.isSelectionSingleChangeEvent(e):l.isMacintosh?e.browserEvent.metaKey:e.browserEvent.ctrlKey}isSelectionRangeChangeEvent(e){ +return this.multipleSelectionController?this.multipleSelectionController.isSelectionRangeChangeEvent(e):e.browserEvent.shiftKey}isSelectionChangeEvent(e){return this.isSelectionSingleChangeEvent(e)||this.isSelectionRangeChangeEvent(e)}onMouseDown(e){x(e.browserEvent.target)||document.activeElement!==e.browserEvent.target&&this.list.domFocus()}onContextMenu(e){if(x(e.browserEvent.target))return;const t=void 0===e.index?[]:[e.index];this.list.setFocus(t,e.browserEvent)}onViewPointer(e){if(!this.mouseSupport)return;if(L(e.browserEvent.target)||x(e.browserEvent.target))return;let t=this.list.getFocus()[0];const i=this.list.getSelection();t=void 0===t?i[0]:t;const n=e.index;return void 0===n?(this.list.setFocus([],e.browserEvent),void this.list.setSelection([],e.browserEvent)):this.multipleSelectionSupport&&this.isSelectionRangeChangeEvent(e)?this.changeSelection(e,t):this.multipleSelectionSupport&&this.isSelectionChangeEvent(e)?this.changeSelection(e,t):(this.list.setFocus([n],e.browserEvent), +(o=e.browserEvent)instanceof MouseEvent&&2===o.button||this.list.setSelection([n],e.browserEvent),void this._onPointer.fire(e));var o}onDoubleClick(e){if(L(e.browserEvent.target)||x(e.browserEvent.target))return;if(this.multipleSelectionSupport&&this.isSelectionChangeEvent(e))return;const t=this.list.getFocus();this.list.setSelection(t,e.browserEvent)}changeSelection(e,t){const i=e.index;if(this.isSelectionRangeChangeEvent(e)&&void 0!==t){const n=Math.min(t,i),s=Math.max(t,i),r=o.range(n,s+1),a=this.list.getSelection(),l=function(e,t){const i=e.indexOf(t);if(-1===i)return[];const n=[];let o=i-1;for(;o>=0&&e[o]===t-(i-o);)n.push(e[o--]);n.reverse(),o=i;for(;o=e.length)i.push(t[o++]);else if(o>=t.length)i.push(e[n++]);else{if(e[n]===t[o]){n++,o++;continue}e[n]e!==i);this.list.setFocus([i]),t.length===n.length?this.list.setSelection([...n,i],e.browserEvent):this.list.setSelection(n,e.browserEvent)}}dispose(){this.disposables.dispose()}}t.MouseController=O;class A{constructor(e,t){this.styleElement=e,this.selectorSuffix=t}style(e){const t=this.selectorSuffix&&`.${this.selectorSuffix}`,i=[];e.listBackground&&(e.listBackground.isOpaque()?i.push(`.monaco-list${t} .monaco-list-rows { background: ${e.listBackground}; }`):l.isMacintosh||console.warn(`List with id '${this.selectorSuffix}' was styled with a non-opaque background color. This will break sub-pixel antialiasing.`)),e.listFocusBackground&&(i.push(`.monaco-list${t}:focus .monaco-list-row.focused { background-color: ${e.listFocusBackground}; }`),i.push(`.monaco-list${t}:focus .monaco-list-row.focused:hover { background-color: ${e.listFocusBackground}; }`)), +e.listFocusForeground&&i.push(`.monaco-list${t}:focus .monaco-list-row.focused { color: ${e.listFocusForeground}; }`),e.listActiveSelectionBackground&&(i.push(`.monaco-list${t}:focus .monaco-list-row.selected { background-color: ${e.listActiveSelectionBackground}; }`),i.push(`.monaco-list${t}:focus .monaco-list-row.selected:hover { background-color: ${e.listActiveSelectionBackground}; }`)),e.listActiveSelectionForeground&&i.push(`.monaco-list${t}:focus .monaco-list-row.selected { color: ${e.listActiveSelectionForeground}; }`),e.listFocusAndSelectionBackground&&i.push(`\n\t\t\t\t.monaco-drag-image,\n\t\t\t\t.monaco-list${t}:focus .monaco-list-row.selected.focused { background-color: ${e.listFocusAndSelectionBackground}; }\n\t\t\t`),e.listFocusAndSelectionForeground&&i.push(`\n\t\t\t\t.monaco-drag-image,\n\t\t\t\t.monaco-list${t}:focus .monaco-list-row.selected.focused { color: ${e.listFocusAndSelectionForeground}; }\n\t\t\t`), +e.listInactiveFocusBackground&&(i.push(`.monaco-list${t} .monaco-list-row.focused { background-color: ${e.listInactiveFocusBackground}; }`),i.push(`.monaco-list${t} .monaco-list-row.focused:hover { background-color: ${e.listInactiveFocusBackground}; }`)),e.listInactiveSelectionBackground&&(i.push(`.monaco-list${t} .monaco-list-row.selected { background-color: ${e.listInactiveSelectionBackground}; }`),i.push(`.monaco-list${t} .monaco-list-row.selected:hover { background-color: ${e.listInactiveSelectionBackground}; }`)),e.listInactiveSelectionForeground&&i.push(`.monaco-list${t} .monaco-list-row.selected { color: ${e.listInactiveSelectionForeground}; }`),e.listHoverBackground&&i.push(`.monaco-list${t}:not(.drop-target) .monaco-list-row:hover:not(.selected):not(.focused) { background-color: ${e.listHoverBackground}; }`),e.listHoverForeground&&i.push(`.monaco-list${t} .monaco-list-row:hover:not(.selected):not(.focused) { color: ${e.listHoverForeground}; }`), +e.listSelectionOutline&&i.push(`.monaco-list${t} .monaco-list-row.selected { outline: 1px dotted ${e.listSelectionOutline}; outline-offset: -1px; }`),e.listFocusOutline&&i.push(`\n\t\t\t\t.monaco-drag-image,\n\t\t\t\t.monaco-list${t}:focus .monaco-list-row.focused { outline: 1px solid ${e.listFocusOutline}; outline-offset: -1px; }\n\t\t\t`),e.listInactiveFocusOutline&&i.push(`.monaco-list${t} .monaco-list-row.focused { outline: 1px dotted ${e.listInactiveFocusOutline}; outline-offset: -1px; }`),e.listHoverOutline&&i.push(`.monaco-list${t} .monaco-list-row:hover { outline: 1px dashed ${e.listHoverOutline}; outline-offset: -1px; }`),e.listDropBackground&&i.push(`\n\t\t\t\t.monaco-list${t}.drop-target,\n\t\t\t\t.monaco-list${t} .monaco-list-rows.drop-target,\n\t\t\t\t.monaco-list${t} .monaco-list-row.drop-target { background-color: ${e.listDropBackground} !important; color: inherit !important; }\n\t\t\t`), +e.listFilterWidgetBackground&&i.push(`.monaco-list-type-filter { background-color: ${e.listFilterWidgetBackground} }`),e.listFilterWidgetOutline&&i.push(`.monaco-list-type-filter { border: 1px solid ${e.listFilterWidgetOutline}; }`),e.listFilterWidgetNoMatchesOutline&&i.push(`.monaco-list-type-filter.no-matches { border: 1px solid ${e.listFilterWidgetNoMatchesOutline}; }`),e.listMatchesShadow&&i.push(`.monaco-list-type-filter { box-shadow: 1px 1px 1px ${e.listMatchesShadow}; }`);const n=i.join("\n");n!==this.styleElement.innerHTML&&(this.styleElement.innerHTML=n)}}t.DefaultStyleController=A;const P={listFocusBackground:m.Color.fromHex("#7FB0D0"),listActiveSelectionBackground:m.Color.fromHex("#0E639C"),listActiveSelectionForeground:m.Color.fromHex("#FFFFFF"),listFocusAndSelectionBackground:m.Color.fromHex("#094771"),listFocusAndSelectionForeground:m.Color.fromHex("#FFFFFF"),listInactiveSelectionBackground:m.Color.fromHex("#3F3F46"),listHoverBackground:m.Color.fromHex("#2A2D2E"), +listDropBackground:m.Color.fromHex("#383B3D"),treeIndentGuidesStroke:m.Color.fromHex("#a9a9a9")},F={keyboardSupport:!0,mouseSupport:!0,multipleSelectionSupport:!0,dnd:{getDragURI:()=>null,onDragStart(){},onDragOver:()=>!1,drop(){}}};function W(e,t){const i=[];let n=0,o=0;for(;n=e.length)i.push(t[o++]);else if(o>=t.length)i.push(e[n++]);else{if(e[n]===t[o]){i.push(e[n]),n++,o++;continue}e[n]e-t;class V{constructor(e,t){this._templateId=e,this.renderers=t}get templateId(){return this._templateId}renderTemplate(e){return this.renderers.map(t=>t.renderTemplate(e))}renderElement(e,t,i,n){let o=0;for(const s of this.renderers)s.renderElement(e,t,i[o++],n)}disposeElement(e,t,i,n){let o=0;for(const s of this.renderers)s.disposeElement&&s.disposeElement(e,t,i[o],n),o+=1}disposeTemplate(e){let t=0;for(const i of this.renderers)i.disposeTemplate(e[t++])}}class z{constructor(e){this.accessibilityProvider=e,this.templateId="a18n"} +renderTemplate(e){return e}renderElement(e,t,i){const n=this.accessibilityProvider.getAriaLabel(e);n?i.setAttribute("aria-label",n):i.removeAttribute("aria-label");const o=this.accessibilityProvider.getAriaLevel&&this.accessibilityProvider.getAriaLevel(e);"number"==typeof o?i.setAttribute("aria-level",`${o}`):i.removeAttribute("aria-level")}disposeTemplate(e){}}class H{constructor(e,t){this.list=e,this.dnd=t}getDragElements(e){const t=this.list.getSelectedElements();return t.indexOf(e)>-1?t:[e]}getDragURI(e){return this.dnd.getDragURI(e)}getDragLabel(e,t){if(this.dnd.getDragLabel)return this.dnd.getDragLabel(e,t)}onDragStart(e,t){this.dnd.onDragStart&&this.dnd.onDragStart(e,t)}onDragOver(e,t,i,n){return this.dnd.onDragOver(e,t,i,n)}onDragEnd(e){this.dnd.onDragEnd&&this.dnd.onDragEnd(e)}drop(e,t,i,n){this.dnd.drop(e,t,i,n)}}class K{constructor(e,n,o,s,a=F){var l;this.user=e,this._options=a,this.eventBufferer=new h.EventBufferer,this._ariaLabel="",this.disposables=new i.DisposableStore, +this.didJustPressContextMenuKey=!1,this._onDidDispose=new h.Emitter,this.onDidDispose=this._onDidDispose.event;const d=this._options.accessibilityProvider&&this._options.accessibilityProvider.getWidgetRole?null===(l=this._options.accessibilityProvider)||void 0===l?void 0:l.getWidgetRole():"list";this.selection=new y("listbox"!==d),this.focus=new w("focused"),f.mixin(a,P,!1);const c=[this.focus.renderer,this.selection.renderer];this.accessibilityProvider=a.accessibilityProvider,this.accessibilityProvider&&(c.push(new z(this.accessibilityProvider)),this.accessibilityProvider.onDidChangeActiveDescendant&&this.accessibilityProvider.onDidChangeActiveDescendant(this.onDidChangeActiveDescendant,this,this.disposables)),s=s.map(e=>new V(e.templateId,[...c,e]));const g=Object.assign(Object.assign({},a),{dnd:a.dnd&&new H(this,a.dnd)});if(this.view=new p.ListView(n,o,s,g),this.view.domNode.setAttribute("role",d),a.styleController)this.styleController=a.styleController(this.view.domId);else{ +const e=r.createStyleSheet(this.view.domNode);this.styleController=new A(e,this.view.domId)}if(this.spliceable=new _.CombinedSpliceable([new E(this.focus,this.view,a.identityProvider),new E(this.selection,this.view,a.identityProvider),this.view]),this.disposables.add(this.focus),this.disposables.add(this.selection),this.disposables.add(this.view),this.disposables.add(this._onDidDispose),this.onDidFocus=h.Event.map(u.domEvent(this.view.domNode,"focus",!0),()=>null),this.onDidBlur=h.Event.map(u.domEvent(this.view.domNode,"blur",!0),()=>null),this.disposables.add(new I(this,this.view)),"boolean"!=typeof a.keyboardSupport||a.keyboardSupport){const e=new D(this,this.view,a);this.disposables.add(e)}if(a.keyboardNavigationLabelProvider){const e=a.keyboardNavigationDelegate||t.DefaultKeyboardNavigationDelegate;this.typeLabelController=new N(this,this.view,a.keyboardNavigationLabelProvider,e),this.disposables.add(this.typeLabelController)}this.mouseController=this.createMouseController(a), +this.disposables.add(this.mouseController),this.onDidChangeFocus(this._onFocusChange,this,this.disposables),this.onDidChangeSelection(this._onSelectionChange,this,this.disposables),this.accessibilityProvider&&(this.ariaLabel=this.accessibilityProvider.getWidgetAriaLabel()),a.multipleSelectionSupport&&this.view.domNode.setAttribute("aria-multiselectable","true")}get onDidChangeFocus(){return h.Event.map(this.eventBufferer.wrapEvent(this.focus.onChange),e=>this.toListEvent(e))}get onDidChangeSelection(){return h.Event.map(this.eventBufferer.wrapEvent(this.selection.onChange),e=>this.toListEvent(e))}get domId(){return this.view.domId}get onMouseClick(){return this.view.onMouseClick}get onMouseDblClick(){return this.view.onMouseDblClick}get onMouseMiddleClick(){return this.view.onMouseMiddleClick}get onPointer(){return this.mouseController.onPointer}get onMouseDown(){return this.view.onMouseDown}get onTouchStart(){return this.view.onTouchStart}get onTap(){return this.view.onTap}get onContextMenu(){ +const e=h.Event.chain(u.domEvent(this.view.domNode,"keydown")).map(e=>new c.StandardKeyboardEvent(e)).filter(e=>this.didJustPressContextMenuKey=58===e.keyCode||e.shiftKey&&68===e.keyCode).filter(e=>(e.preventDefault(),e.stopPropagation(),!1)).event,t=h.Event.chain(u.domEvent(this.view.domNode,"keyup")).filter(()=>{const e=this.didJustPressContextMenuKey;return this.didJustPressContextMenuKey=!1,e}).filter(()=>this.getFocus().length>0&&!!this.view.domElement(this.getFocus()[0])).map(e=>{const t=this.getFocus()[0];return{index:t,element:this.view.element(t),anchor:this.view.domElement(t),browserEvent:e}}).event,i=h.Event.chain(this.view.onContextMenu).filter(()=>!this.didJustPressContextMenuKey).map(({element:e,index:t,browserEvent:i})=>({element:e,index:t,anchor:{x:i.clientX+1,y:i.clientY},browserEvent:i})).event;return h.Event.any(e,t,i)}get onKeyDown(){return u.domEvent(this.view.domNode,"keydown")}createMouseController(e){return new O(this)}updateOptions(e={}){ +this._options=Object.assign(Object.assign({},this._options),e),this.typeLabelController&&this.typeLabelController.updateOptions(this._options),this.view.updateOptions(e)}get options(){return this._options}splice(e,t,i=[]){if(e<0||e>this.view.length)throw new g.ListError(this.user,`Invalid start index: ${e}`);if(t<0)throw new g.ListError(this.user,`Invalid delete count: ${t}`);0===t&&0===i.length||this.eventBufferer.bufferEvents(()=>this.spliceable.splice(e,t,i))}rerender(){this.view.rerender()}element(e){return this.view.element(e)}get length(){return this.view.length}get contentHeight(){return this.view.contentHeight}get scrollTop(){return this.view.getScrollTop()}set scrollTop(e){this.view.setScrollTop(e)}get ariaLabel(){return this._ariaLabel}set ariaLabel(e){this._ariaLabel=e,this.view.domNode.setAttribute("aria-label",e)}domFocus(){this.view.domNode.focus()}layout(e,t){this.view.layout(e,t)}setSelection(e,t){for(const t of e)if(t<0||t>=this.length)throw new g.ListError(this.user,`Invalid index ${t}`) +;this.selection.set(e,t)}getSelection(){return this.selection.get()}getSelectedElements(){return this.getSelection().map(e=>this.view.element(e))}setFocus(e,t){for(const t of e)if(t<0||t>=this.length)throw new g.ListError(this.user,`Invalid index ${t}`);this.focus.set(e,t)}focusNext(e=1,t=!1,i,n){if(0===this.length)return;const o=this.focus.get(),s=this.findNextIndex(o.length>0?o[0]+e:0,t,n);s>-1&&this.setFocus([s],i)}focusPrevious(e=1,t=!1,i,n){if(0===this.length)return;const o=this.focus.get(),s=this.findPreviousIndex(o.length>0?o[0]-e:0,t,n);s>-1&&this.setFocus([s],i)}focusNextPage(e,t){let i=this.view.indexAt(this.view.getScrollTop()+this.view.renderHeight);i=0===i?0:i-1;const n=this.view.element(i),o=this.getFocusedElements()[0];if(o!==n){const n=this.findPreviousIndex(i,!1,t);n>-1&&o!==this.view.element(n)?this.setFocus([n],e):this.setFocus([i],e)}else{const n=this.view.getScrollTop();this.view.setScrollTop(n+this.view.renderHeight-this.view.elementHeight(i)), +this.view.getScrollTop()!==n&&setTimeout(()=>this.focusNextPage(e,t),0)}}focusPreviousPage(e,t){let i;const n=this.view.getScrollTop();i=0===n?this.view.indexAt(n):this.view.indexAfter(n-1);const o=this.view.element(i),s=this.getFocusedElements()[0];if(s!==o){const n=this.findNextIndex(i,!1,t);n>-1&&s!==this.view.element(n)?this.setFocus([n],e):this.setFocus([i],e)}else{const i=n;this.view.setScrollTop(n-this.view.renderHeight),this.view.getScrollTop()!==i&&setTimeout(()=>this.focusPreviousPage(e,t),0)}}focusLast(e,t){if(0===this.length)return;const i=this.findPreviousIndex(this.length-1,!1,t);i>-1&&this.setFocus([i],e)}focusFirst(e,t){this.focusNth(0,e,t)}focusNth(e,t,i){if(0===this.length)return;const n=this.findNextIndex(e,!1,i);n>-1&&this.setFocus([n],t)}findNextIndex(e,t=!1,i){for(let n=0;n=this.length&&!t)return-1;if(e%=this.length,!i||i(this.element(e)))return e;e++}return-1}findPreviousIndex(e,t=!1,i){for(let n=0;nthis.view.element(e))}reveal(e,t){if(e<0||e>=this.length)throw new g.ListError(this.user,`Invalid index ${e}`);const i=this.view.getScrollTop(),o=this.view.elementTop(e),s=this.view.elementHeight(e);if(n.isNumber(t)){const e=s-this.view.renderHeight;this.view.setScrollTop(e*v.clamp(t,0,1)+o)}else{const e=o+s,t=i+this.view.renderHeight;o=t||(o=t&&this.view.setScrollTop(e-this.view.renderHeight))}}getRelativeTop(e){if(e<0||e>=this.length)throw new g.ListError(this.user,`Invalid index ${e}`);const t=this.view.getScrollTop(),i=this.view.elementTop(e),n=this.view.elementHeight(e);if(it+this.view.renderHeight)return null;const o=n-this.view.renderHeight;return Math.abs((t-i)/o)}getHTMLElement(){return this.view.domNode}style(e){this.styleController.style(e)}toListEvent({indexes:e,browserEvent:t}){ +return{indexes:e,elements:e.map(e=>this.view.element(e)),browserEvent:t}}_onFocusChange(){const e=this.focus.get();r.toggleClass(this.view.domNode,"element-focused",e.length>0),this.onDidChangeActiveDescendant()}onDidChangeActiveDescendant(){var e;const t=this.focus.get();if(t.length>0){let i;(null===(e=this.accessibilityProvider)||void 0===e?void 0:e.getActiveDescendantId)&&(i=this.accessibilityProvider.getActiveDescendantId(this.view.element(t[0]))),this.view.domNode.setAttribute("aria-activedescendant",i||this.view.getElementDomId(t[0]))}else this.view.domNode.removeAttribute("aria-activedescendant")}_onSelectionChange(){const e=this.selection.get();r.toggleClass(this.view.domNode,"selection-none",0===e.length),r.toggleClass(this.view.domNode,"selection-single",1===e.length),r.toggleClass(this.view.domNode,"selection-multiple",e.length>1)}dispose(){this._onDidDispose.fire(),this.disposables.dispose(),this._onDidDispose.dispose()}}a([s.memoize],K.prototype,"onDidChangeFocus",null), +a([s.memoize],K.prototype,"onDidChangeSelection",null),a([s.memoize],K.prototype,"onContextMenu",null),t.List=K})),define(t[302],i([0,1,2,19,118,4,25,201]),(function(e,t,i,n,o,s,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.PagedList=void 0;class a{constructor(e,t){this.renderer=e,this.modelProvider=t}get templateId(){return this.renderer.templateId}renderTemplate(e){return{data:this.renderer.renderTemplate(e),disposable:i.Disposable.None}}renderElement(e,t,i,n){if(i.disposable&&i.disposable.dispose(),!i.data)return;const o=this.modelProvider();if(o.isResolved(e))return this.renderer.renderElement(o.get(e),e,i.data,n);const s=new r.CancellationTokenSource,a=o.resolve(e,s.token);i.disposable={dispose:()=>s.cancel()},this.renderer.renderPlaceholder(e,i.data),a.then(t=>this.renderer.renderElement(t,e,i.data,n))}disposeTemplate(e){e.disposable&&(e.disposable.dispose(),e.disposable=void 0),e.data&&(this.renderer.disposeTemplate(e.data),e.data=void 0)}}class l{constructor(e,t){ +this.modelProvider=e,this.accessibilityProvider=t}getWidgetAriaLabel(){return this.accessibilityProvider.getWidgetAriaLabel()}getAriaLabel(e){const t=this.modelProvider();return t.isResolved(e)?this.accessibilityProvider.getAriaLabel(t.get(e)):null}}t.PagedList=class{constructor(e,t,i,n,s={}){const r=()=>this.model,d=n.map(e=>new a(e,r));this.list=new o.List(e,t,i,d,function(e,t){return Object.assign(Object.assign({},t),{accessibilityProvider:t.accessibilityProvider&&new l(e,t.accessibilityProvider)})}(r,s))}updateOptions(e){this.list.updateOptions(e)}getHTMLElement(){return this.list.getHTMLElement()}get onDidFocus(){return this.list.onDidFocus}get onDidDispose(){return this.list.onDidDispose}get onMouseDblClick(){return s.Event.map(this.list.onMouseDblClick,({element:e,index:t,browserEvent:i})=>({element:void 0===e?void 0:this._model.get(e),index:t,browserEvent:i}))}get onPointer(){return s.Event.map(this.list.onPointer,({element:e,index:t,browserEvent:i})=>({element:void 0===e?void 0:this._model.get(e), +index:t,browserEvent:i}))}get onDidChangeFocus(){return s.Event.map(this.list.onDidChangeFocus,({elements:e,indexes:t,browserEvent:i})=>({elements:e.map(e=>this._model.get(e)),indexes:t,browserEvent:i}))}get onDidChangeSelection(){return s.Event.map(this.list.onDidChangeSelection,({elements:e,indexes:t,browserEvent:i})=>({elements:e.map(e=>this._model.get(e)),indexes:t,browserEvent:i}))}get model(){return this._model}set model(e){this._model=e,this.list.splice(0,this.list.length,n.range(e.length))}getFocus(){return this.list.getFocus()}setSelection(e,t){this.list.setSelection(e,t)}getSelection(){return this.list.getSelection()}style(e){this.list.style(e)}dispose(){this.list.dispose()}}})),define(t[303],i([9]),{}),define(t[304],i([0,1,2,4,23,7,109,19,117,29,57,303]),(function(e,t,i,n,o,s,r,a,l,d,c){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SplitView=t.Sizing=void 0;const h={separatorBorder:d.Color.transparent};class u{constructor(e,t,i,n){this.container=e,this.view=t,this.disposable=n, +this._cachedVisibleSize=void 0,"number"==typeof i?(this._size=i,this._cachedVisibleSize=void 0,s.addClass(e,"visible")):(this._size=0,this._cachedVisibleSize=i.cachedVisibleSize)}set size(e){this._size=e}get size(){return this._size}get visible(){return void 0===this._cachedVisibleSize}setVisible(e,t){e!==this.visible&&(e?(this.size=r.clamp(this._cachedVisibleSize,this.viewMinimumSize,this.viewMaximumSize),this._cachedVisibleSize=void 0):(this._cachedVisibleSize="number"==typeof t?t:this.size,this.size=0),s.toggleClass(this.container,"visible",e),this.view.setVisible&&this.view.setVisible(e))}get minimumSize(){return this.visible?this.view.minimumSize:0}get viewMinimumSize(){return this.view.minimumSize}get maximumSize(){return this.visible?this.view.maximumSize:0}get viewMaximumSize(){return this.view.maximumSize}get priority(){return this.view.priority}get snap(){return!!this.view.snap}set enabled(e){this.container.style.pointerEvents=e?"":"none"}layout(e,t){this.layoutContainer(e), +this.view.layout(this.size,e,t)}dispose(){return this.disposable.dispose(),this.view}}class g extends u{layoutContainer(e){this.container.style.top=`${e}px`,this.container.style.height=`${this.size}px`}}class p extends u{layoutContainer(e){this.container.style.left=`${e}px`,this.container.style.width=`${this.size}px`}}var m;!function(e){e[e.Idle=0]="Idle",e[e.Busy=1]="Busy"}(m||(m={})),function(e){e.Distribute={type:"distribute"},e.Split=function(e){return{type:"split",index:e}},e.Invisible=function(e){return{type:"invisible",cachedVisibleSize:e}}}(t.Sizing||(t.Sizing={}));class f extends i.Disposable{constructor(e,t={}){super(),this.size=0,this.contentSize=0,this.proportions=void 0,this.viewItems=[],this.sashItems=[],this.state=m.Idle,this._onDidSashChange=this._register(new n.Emitter),this.onDidSashChange=this._onDidSashChange.event,this._onDidSashReset=this._register(new n.Emitter),this._startSnappingEnabled=!0,this._endSnappingEnabled=!0,this.orientation=o.isUndefined(t.orientation)?0:t.orientation, +this.inverseAltBehavior=!!t.inverseAltBehavior,this.proportionalLayout=!!o.isUndefined(t.proportionalLayout)||!!t.proportionalLayout,this.el=document.createElement("div"),s.addClass(this.el,"monaco-split-view2"),s.addClass(this.el,0===this.orientation?"vertical":"horizontal"),e.appendChild(this.el),this.sashContainer=s.append(this.el,s.$(".sash-container")),this.viewContainer=s.append(this.el,s.$(".split-view-container")),this.style(t.styles||h),t.descriptor&&(this.size=t.descriptor.size,t.descriptor.views.forEach((e,t)=>{const i=o.isUndefined(e.visible)||e.visible?e.size:{type:"invisible",cachedVisibleSize:e.size},n=e.view;this.doAddView(n,i,t,!0)}),this.contentSize=this.viewItems.reduce((e,t)=>e+t.size,0),this.saveProportions())}get orthogonalStartSash(){return this._orthogonalStartSash}set orthogonalStartSash(e){for(const t of this.sashItems)t.sash.orthogonalStartSash=e;this._orthogonalStartSash=e}get orthogonalEndSash(){return this._orthogonalEndSash}set orthogonalEndSash(e){ +for(const t of this.sashItems)t.sash.orthogonalEndSash=e;this._orthogonalEndSash=e}get startSnappingEnabled(){return this._startSnappingEnabled}set startSnappingEnabled(e){this._startSnappingEnabled!==e&&(this._startSnappingEnabled=e,this.updateSashEnablement())}get endSnappingEnabled(){return this._endSnappingEnabled}set endSnappingEnabled(e){this._endSnappingEnabled!==e&&(this._endSnappingEnabled=e,this.updateSashEnablement())}style(e){e.separatorBorder.isTransparent()?(s.removeClass(this.el,"separator-border"),this.el.style.removeProperty("--separator-border")):(s.addClass(this.el,"separator-border"),this.el.style.setProperty("--separator-border",e.separatorBorder.toString()))}addView(e,t,i=this.viewItems.length,n){this.doAddView(e,t,i,n)}layout(e,t){const i=Math.max(this.size,this.contentSize);if(this.size=e,this.layoutContext=t,this.proportions)for(let t=0;t1===this.viewItems[e].priority),o=t.filter(e=>2===this.viewItems[e].priority);this.resize(this.viewItems.length-1,e-i,void 0,n,o)}this.distributeEmptySpace(),this.layoutViews()}saveProportions(){this.proportionalLayout&&this.contentSize>0&&(this.proportions=this.viewItems.map(e=>e.size/this.contentSize))}onSashStart({sash:e,start:t,alt:n}){for(const e of this.viewItems)e.enabled=!1;const o=a.firstIndex(this.sashItems,t=>t.sash===e),s=i.combinedDisposable(c.domEvent(document.body,"keydown")(e=>r(this.sashDragState.current,e.altKey)),c.domEvent(document.body,"keyup")(()=>r(this.sashDragState.current,!1))),r=(e,t)=>{const i=this.viewItems.map(e=>e.size);let n,r,l=Number.NEGATIVE_INFINITY,d=Number.POSITIVE_INFINITY;if(this.inverseAltBehavior&&(t=!t),t){if(o===this.sashItems.length-1){const e=this.viewItems[o];l=(e.minimumSize-e.size)/2,d=(e.maximumSize-e.size)/2}else{const e=this.viewItems[o+1];l=(e.size-e.maximumSize)/2,d=(e.size-e.minimumSize)/2}}if(!t){ +const e=a.range(o,-1),t=a.range(o+1,this.viewItems.length),s=e.reduce((e,t)=>e+(this.viewItems[t].minimumSize-i[t]),0),l=e.reduce((e,t)=>e+(this.viewItems[t].viewMaximumSize-i[t]),0),d=0===t.length?Number.POSITIVE_INFINITY:t.reduce((e,t)=>e+(i[t]-this.viewItems[t].minimumSize),0),c=0===t.length?Number.NEGATIVE_INFINITY:t.reduce((e,t)=>e+(i[t]-this.viewItems[t].viewMaximumSize),0),h=Math.max(s,c),u=Math.min(d,l),g=this.findFirstSnapIndex(e),p=this.findFirstSnapIndex(t);if("number"==typeof g){const e=this.viewItems[g],t=Math.floor(e.viewMinimumSize/2);n={index:g,limitDelta:e.visible?h-t:h+t,size:e.size}}if("number"==typeof p){const e=this.viewItems[p],t=Math.floor(e.viewMinimumSize/2);r={index:p,limitDelta:e.visible?u+t:u-t,size:e.size}}}this.sashDragState={start:e,current:e,index:o,sizes:i,minDelta:l,maxDelta:d,alt:t,snapBefore:n,snapAfter:r,disposable:s}};r(t,n)}onSashChange({current:e}){const{index:t,start:i,sizes:n,alt:o,minDelta:s,maxDelta:r,snapBefore:a,snapAfter:l}=this.sashDragState +;this.sashDragState.current=e;const d=e-i,c=this.resize(t,d,n,void 0,void 0,s,r,a,l);if(o){const e=t===this.sashItems.length-1,i=this.viewItems.map(e=>e.size),n=e?t:t+1,o=this.viewItems[n],s=o.size-o.maximumSize,r=o.size-o.minimumSize,a=e?t-1:t+1;this.resize(a,-c,i,void 0,void 0,s,r)}this.distributeEmptySpace(),this.layoutViews()}onSashEnd(e){this._onDidSashChange.fire(e),this.sashDragState.disposable.dispose(),this.saveProportions();for(const e of this.viewItems)e.enabled=!0}onViewChange(e,t){const i=this.viewItems.indexOf(e);i<0||i>=this.viewItems.length||(t="number"==typeof t?t:e.size,t=r.clamp(t,e.minimumSize,e.maximumSize),this.inverseAltBehavior&&i>0?(this.resize(i-1,Math.floor((e.size-t)/2)),this.distributeEmptySpace(),this.layoutViews()):(e.size=t,this.relayout([i],void 0)))}resizeView(e,t){if(this.state!==m.Idle)throw new Error("Cant modify splitview");if(this.state=m.Busy,e<0||e>=this.viewItems.length)return +;const i=a.range(this.viewItems.length).filter(t=>t!==e),n=[...i.filter(e=>1===this.viewItems[e].priority),e],o=i.filter(e=>2===this.viewItems[e].priority),s=this.viewItems[e];t=Math.round(t),t=r.clamp(t,s.minimumSize,Math.min(s.maximumSize,this.size)),s.size=t,this.relayout(n,o),this.state=m.Idle}distributeViewSizes(){const e=[];let t=0;for(const i of this.viewItems)i.maximumSize-i.minimumSize>0&&(e.push(i),t+=i.size);const i=Math.floor(t/e.length);for(const t of e)t.size=r.clamp(i,t.minimumSize,t.maximumSize);const n=a.range(this.viewItems.length),o=n.filter(e=>1===this.viewItems[e].priority),s=n.filter(e=>2===this.viewItems[e].priority);this.relayout(o,s)}getViewSize(e){return e<0||e>=this.viewItems.length?-1:this.viewItems[e].size}doAddView(e,t,o=this.viewItems.length,r){if(this.state!==m.Idle)throw new Error("Cant modify splitview");this.state=m.Busy;const d=s.$(".split-view-view") +;o===this.viewItems.length?this.viewContainer.appendChild(d):this.viewContainer.insertBefore(d,this.viewContainer.children.item(o));const c=e.onDidChange(e=>this.onViewChange(_,e)),h=i.toDisposable(()=>this.viewContainer.removeChild(d)),u=i.combinedDisposable(c,h);let f;f="number"==typeof t?t:"split"===t.type?this.getViewSize(t.index)/2:"invisible"===t.type?{cachedVisibleSize:t.cachedVisibleSize}:e.minimumSize;const _=0===this.orientation?new g(d,e,f,u):new p(d,e,f,u);if(this.viewItems.splice(o,0,_),this.viewItems.length>1){const e=0===this.orientation?new l.Sash(this.sashContainer,{getHorizontalSashTop:e=>this.getSashPosition(e)},{orientation:1,orthogonalStartSash:this.orthogonalStartSash,orthogonalEndSash:this.orthogonalEndSash}):new l.Sash(this.sashContainer,{getVerticalSashLeft:e=>this.getSashPosition(e)},{orientation:0,orthogonalStartSash:this.orthogonalStartSash,orthogonalEndSash:this.orthogonalEndSash}),t=0===this.orientation?t=>({sash:e,start:t.startY,current:t.currentY,alt:t.altKey}):t=>({sash:e, +start:t.startX,current:t.currentX,alt:t.altKey}),s=n.Event.map(e.onDidStart,t)(this.onSashStart,this),r=n.Event.map(e.onDidChange,t)(this.onSashChange,this),d=n.Event.map(e.onDidEnd,()=>a.firstIndex(this.sashItems,t=>t.sash===e))(this.onSashEnd,this),c=e.onDidReset(()=>{const t=a.firstIndex(this.sashItems,t=>t.sash===e),i=a.range(t,-1),n=a.range(t+1,this.viewItems.length),o=this.findFirstSnapIndex(i),s=this.findFirstSnapIndex(n);("number"!=typeof o||this.viewItems[o].visible)&&("number"!=typeof s||this.viewItems[s].visible)&&this._onDidSashReset.fire(t)}),h=i.combinedDisposable(s,r,d,c,e),u={sash:e,disposable:h};this.sashItems.splice(o-1,0,u)}let v;d.appendChild(e.element),"number"!=typeof t&&"split"===t.type&&(v=[t.index]),r||this.relayout([o],v),this.state=m.Idle,r||"number"==typeof t||"distribute"!==t.type||this.distributeViewSizes()}relayout(e,t){const i=this.viewItems.reduce((e,t)=>e+t.size,0);this.resize(this.viewItems.length-1,this.size-i,void 0,e,t),this.distributeEmptySpace(),this.layoutViews(), +this.saveProportions()}resize(e,t,i=this.viewItems.map(e=>e.size),n,o,s=Number.NEGATIVE_INFINITY,l=Number.POSITIVE_INFINITY,d,c){if(e<0||e>=this.viewItems.length)return 0;const h=a.range(e,-1),u=a.range(e+1,this.viewItems.length);if(o)for(const e of o)a.pushToStart(h,e),a.pushToStart(u,e);if(n)for(const e of n)a.pushToEnd(h,e),a.pushToEnd(u,e);const g=h.map(e=>this.viewItems[e]),p=h.map(e=>i[e]),m=u.map(e=>this.viewItems[e]),f=u.map(e=>i[e]),_=h.reduce((e,t)=>e+(this.viewItems[t].minimumSize-i[t]),0),v=h.reduce((e,t)=>e+(this.viewItems[t].maximumSize-i[t]),0),C=0===u.length?Number.POSITIVE_INFINITY:u.reduce((e,t)=>e+(i[t]-this.viewItems[t].minimumSize),0),b=0===u.length?Number.NEGATIVE_INFINITY:u.reduce((e,t)=>e+(i[t]-this.viewItems[t].maximumSize),0),S=Math.max(_,b,s),w=Math.min(C,v,l);let y=!1;if(d){const e=this.viewItems[d.index],i=t>=d.limitDelta;y=i!==e.visible,e.setVisible(i,d.size)}if(!y&&c){const e=this.viewItems[c.index],i=te+t.size,0);let i=this.size-t;const n=a.range(this.viewItems.length-1,-1),o=n.filter(e=>1===this.viewItems[e].priority),s=n.filter(e=>2===this.viewItems[e].priority);for(const e of s)a.pushToStart(n,e);for(const e of o)a.pushToEnd(n,e);"number"==typeof e&&a.pushToEnd(n,e);for(let e=0;0!==i&&ee+t.size,0);let e=0;for(const t of this.viewItems)t.layout(e,this.layoutContext),e+=t.size;this.sashItems.forEach(e=>e.sash.layout()),this.updateSashEnablement()}updateSashEnablement(){let e=!1 +;const t=this.viewItems.map(t=>e=t.size-t.minimumSize>0||e);e=!1;const i=this.viewItems.map(t=>e=t.maximumSize-t.size>0||e),n=[...this.viewItems].reverse();e=!1;const o=n.map(t=>e=t.size-t.minimumSize>0||e).reverse();e=!1;const s=n.map(t=>e=t.maximumSize-t.size>0||e).reverse();let r=0;for(let e=0;e0||this.startSnappingEnabled)?n.state=1:h&&t[e]&&(r0)return;if(!e.visible&&e.snap)return t}}dispose(){super.dispose(),this.viewItems.forEach(e=>e.dispose()),this.viewItems=[],this.sashItems.forEach(e=>e.disposable.dispose()),this.sashItems=[]}}t.SplitView=f})),define(t[305],i([9]),{}),define(t[119],i([9]),{}),define(t[202],i([0,1,7,97,119]),(function(e,t,i,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getIconClass=void 0;const o={},s=new n.IdGenerator("quick-input-button-icon-");t.getIconClass=function(e){if(!e)return;let t;const n=e.dark.toString();return o[n]?t=o[n]:(t=s.nextId(),i.createCSSRule(`.${t}`,`background-image: ${i.asCSSUrl(e.light||e.dark)}`),i.createCSSRule(`.vs-dark .${t}, .hc-black .${t}`,`background-image: ${i.asCSSUrl(e.dark)}`),o[n]=t),t}})),define(t[306],i([9]),{}),define(t[307],i([9]),{}),define(t[308],i([9]),{}),define(t[309],i([9]),{}),define(t[310],i([9]),{}),define(t[311],i([9]),{}), +define(t[312],i([9]),{}),define(t[313],i([9]),{}),define(t[314],i([9]),{}),define(t[315],i([9]),{}),define(t[316],i([9]),{}),define(t[317],i([9]),{}),define(t[318],i([9]),{}),define(t[319],i([9]),{}),define(t[320],i([9]),{}),define(t[321],i([9]),{}),define(t[322],i([9]),{}),define(t[323],i([9]),{}),define(t[324],i([9]),{}),define(t[325],i([9]),{}),define(t[326],i([9]),{}),define(t[327],i([9]),{}),define(t[328],i([9]),{}),define(t[329],i([9]),{}),define(t[330],i([9]),{}),define(t[331],i([9]),{}),define(t[332],i([9]),{}),define(t[333],i([9]),{}),define(t[334],i([9]),{}),define(t[335],i([9]),{}),define(t[336],i([9]),{}),define(t[337],i([9]),{}),define(t[338],i([9]),{}),define(t[339],i([9]),{}),define(t[340],i([9]),{}),define(t[341],i([9]),{}),define(t[342],i([9]),{}),define(t[343],i([9]),{}),define(t[344],i([9]),{}),define(t[345],i([9]),{}),define(t[346],i([9]),{}),define(t[347],i([9]),{}),define(t[348],i([9]),{}),define(t[349],i([9]),{}),define(t[350],i([9]),{}),define(t[351],i([9]),{}), +define(t[352],i([9]),{}),define(t[353],i([0,1]),(function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.readCharWidths=t.CharWidthRequest=void 0;t.CharWidthRequest=class{constructor(e,t){this.chr=e,this.type=t,this.width=0}fulfill(e){this.width=e}};class i{constructor(e,t){this._bareFontInfo=e,this._requests=t,this._container=null,this._testElements=null}read(){this._createDomElements(),document.body.appendChild(this._container),this._readFromDomElements(),document.body.removeChild(this._container),this._container=null,this._testElements=null}_createDomElements(){const e=document.createElement("div");e.style.position="absolute",e.style.top="-50000px",e.style.width="50000px";const t=document.createElement("div");t.style.fontFamily=this._bareFontInfo.getMassagedFontFamily(),t.style.fontWeight=this._bareFontInfo.fontWeight,t.style.fontSize=this._bareFontInfo.fontSize+"px",t.style.fontFeatureSettings=this._bareFontInfo.fontFeatureSettings, +t.style.lineHeight=this._bareFontInfo.lineHeight+"px",t.style.letterSpacing=this._bareFontInfo.letterSpacing+"px",e.appendChild(t);const n=document.createElement("div");n.style.fontFamily=this._bareFontInfo.getMassagedFontFamily(),n.style.fontWeight="bold",n.style.fontSize=this._bareFontInfo.fontSize+"px",n.style.fontFeatureSettings=this._bareFontInfo.fontFeatureSettings,n.style.lineHeight=this._bareFontInfo.lineHeight+"px",n.style.letterSpacing=this._bareFontInfo.letterSpacing+"px",e.appendChild(n);const o=document.createElement("div");o.style.fontFamily=this._bareFontInfo.getMassagedFontFamily(),o.style.fontWeight=this._bareFontInfo.fontWeight,o.style.fontSize=this._bareFontInfo.fontSize+"px",o.style.fontFeatureSettings=this._bareFontInfo.fontFeatureSettings,o.style.lineHeight=this._bareFontInfo.lineHeight+"px",o.style.letterSpacing=this._bareFontInfo.letterSpacing+"px",o.style.fontStyle="italic",e.appendChild(o);const s=[];for(const e of this._requests){let r;0===e.type&&(r=t),2===e.type&&(r=n), +1===e.type&&(r=o),r.appendChild(document.createElement("br"));const a=document.createElement("span");i._render(a,e),r.appendChild(a),s.push(a)}this._container=e,this._testElements=s}static _render(e,t){if(" "===t.chr){let t=" ";for(let e=0;e<8;e++)t+=t;e.innerText=t}else{let i=t.chr;for(let e=0;e<8;e++)i+=i;e.textContent=i}}_readFromDomElements(){for(let e=0,t=this._requests.length;e{e&&e[0]&&e[0].contentRect?this.observe({width:e[0].contentRect.width,height:e[0].contentRect.height}):this.observe()}),this.resizeObserver.observe(this.referenceDomElement)):-1===this.measureReferenceDomElementToken&&(this.measureReferenceDomElementToken=setInterval(()=>this.observe(),100))}stopObserving(){this.resizeObserver&&(this.resizeObserver.disconnect(),this.resizeObserver=null),-1!==this.measureReferenceDomElementToken&&(clearInterval(this.measureReferenceDomElementToken),this.measureReferenceDomElementToken=-1)}observe(e){this.measureReferenceDomElement(!0,e)}measureReferenceDomElement(e,t){let i=0,n=0;t?(i=t.width,n=t.height):this.referenceDomElement&&(i=this.referenceDomElement.clientWidth,n=this.referenceDomElement.clientHeight),i=Math.max(5,i),n=Math.max(5,n),this.width===i&&this.height===n||(this.width=i,this.height=n,e&&this.changeCallback())}}t.ElementSizeObserver=n +})),define(t[155],i([0,1,7,86,51,2]),(function(e,t,i,n,o,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.GlobalEditorMouseMoveMonitor=t.EditorPointerEventFactory=t.EditorMouseEventFactory=t.EditorMouseEvent=t.createEditorPagePosition=t.EditorPagePosition=t.ClientCoordinates=t.PageCoordinates=void 0;class r{constructor(e,t){this.x=e,this.y=t}toClientCoordinates(){return new a(this.x-i.StandardWindow.scrollX,this.y-i.StandardWindow.scrollY)}}t.PageCoordinates=r;class a{constructor(e,t){this.clientX=e,this.clientY=t}toPageCoordinates(){return new r(this.clientX+i.StandardWindow.scrollX,this.clientY+i.StandardWindow.scrollY)}}t.ClientCoordinates=a;class l{constructor(e,t,i,n){this.x=e,this.y=t,this.width=i,this.height=n}}function d(e){const t=i.getDomNodePagePosition(e);return new l(t.left,t.top,t.width,t.height)}t.EditorPagePosition=l,t.createEditorPagePosition=d;class c extends o.StandardMouseEvent{constructor(e,t){super(e),this.pos=new r(this.posx,this.posy),this.editorPos=d(t)}} +t.EditorMouseEvent=c;t.EditorMouseEventFactory=class{constructor(e){this._editorViewDomNode=e}_create(e){return new c(e,this._editorViewDomNode)}onContextMenu(e,t){return i.addDisposableListener(e,"contextmenu",e=>{t(this._create(e))})}onMouseUp(e,t){return i.addDisposableListener(e,"mouseup",e=>{t(this._create(e))})}onMouseDown(e,t){return i.addDisposableListener(e,"mousedown",e=>{t(this._create(e))})}onMouseLeave(e,t){return i.addDisposableNonBubblingMouseOutListener(e,e=>{t(this._create(e))})}onMouseMoveThrottled(e,t,n,o){return i.addDisposableThrottledListener(e,"mousemove",t,(e,t)=>n(e,this._create(t)),o)}};t.EditorPointerEventFactory=class{constructor(e){this._editorViewDomNode=e}_create(e){return new c(e,this._editorViewDomNode)}onPointerUp(e,t){return i.addDisposableListener(e,"pointerup",e=>{t(this._create(e))})}onPointerDown(e,t){return i.addDisposableListener(e,"pointerdown",e=>{t(this._create(e))})}onPointerLeave(e,t){return i.addDisposableNonBubblingPointerOutListener(e,e=>{t(this._create(e))})} +onPointerMoveThrottled(e,t,n,o){return i.addDisposableThrottledListener(e,"pointermove",t,(e,t)=>n(e,this._create(t)),o)}};class h extends s.Disposable{constructor(e){super(),this._editorViewDomNode=e,this._globalMouseMoveMonitor=this._register(new n.GlobalMouseMoveMonitor),this._keydownListener=null}startMonitoring(e,t,n,o,s){this._keydownListener=i.addStandardDisposableListener(document,"keydown",e=>{e.toKeybinding().isModifierKey()||this._globalMouseMoveMonitor.stopMonitoring(!0)},!0);this._globalMouseMoveMonitor.startMonitoring(e,t,(e,t)=>n(e,new c(t,this._editorViewDomNode)),o,()=>{this._keydownListener.dispose(),s()})}}t.GlobalEditorMouseMoveMonitor=h})),define(t[354],i([0,1,4,2]),(function(e,t,i,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractCodeEditorService=void 0;class o extends n.Disposable{constructor(){super(),this._onCodeEditorAdd=this._register(new i.Emitter),this.onCodeEditorAdd=this._onCodeEditorAdd.event,this._onCodeEditorRemove=this._register(new i.Emitter), +this.onCodeEditorRemove=this._onCodeEditorRemove.event,this._onDiffEditorAdd=this._register(new i.Emitter),this._onDiffEditorRemove=this._register(new i.Emitter),this._modelProperties=new Map,this._codeEditors=Object.create(null),this._diffEditors=Object.create(null)}addCodeEditor(e){this._codeEditors[e.getId()]=e,this._onCodeEditorAdd.fire(e)}removeCodeEditor(e){delete this._codeEditors[e.getId()]&&this._onCodeEditorRemove.fire(e)}listCodeEditors(){return Object.keys(this._codeEditors).map(e=>this._codeEditors[e])}addDiffEditor(e){this._diffEditors[e.getId()]=e,this._onDiffEditorAdd.fire(e)}removeDiffEditor(e){delete this._diffEditors[e.getId()]&&this._onDiffEditorRemove.fire(e)}listDiffEditors(){return Object.keys(this._diffEditors).map(e=>this._diffEditors[e])}getFocusedCodeEditor(){let e=null;const t=this.listCodeEditors();for(const i of t){if(i.hasTextFocus())return i;i.hasWidgetFocus()&&(e=i)}return e}setModelProperty(e,t,i){const n=e.toString();let o +;this._modelProperties.has(n)?o=this._modelProperties.get(n):(o=new Map,this._modelProperties.set(n,o)),o.set(t,i)}getModelProperty(e,t){const i=e.toString();if(this._modelProperties.has(i)){return this._modelProperties.get(i).get(t)}}}t.AbstractCodeEditorService=o})),define(t[204],i([0,1]),(function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getCharIndex=t.allCharCodes=void 0,t.allCharCodes=(()=>{const e=[];for(let t=32;t<=126;t++)e.push(t);return e.push(65533),e})();t.getCharIndex=(e,t)=>(e-=32)<0||e>96?t<=2?(e+96)%96:95:e})),define(t[355],i([0,1,204,114]),(function(e,t,i,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MinimapCharRenderer=void 0;class o{constructor(e,t){this.scale=t,this.charDataNormal=o.soften(e,.8),this.charDataLight=o.soften(e,50/60)}static soften(e,t){let i=new Uint8ClampedArray(e.length);for(let o=0,s=e.length;oe.width||n+u>e.height)return void console.warn("bad render request outside image data");const g=l?this.charDataLight:this.charDataNormal,p=i.getCharIndex(o,a),m=4*e.width,f=r.r,_=r.g,v=r.b,C=s.r-f,b=s.g-_,S=s.b-v,w=e.data;let y=p*c*h,E=n*m+4*t;for(let e=0;ee.width||i+d>e.height)return void console.warn("bad render request outside image data");const c=4*e.width,h=o.r,u=o.g,g=o.b,p=h+.5*(n.r-h),m=u+.5*(n.g-u),f=g+.5*(n.b-g),_=e.data;let v=i*c+4*t;for(let e=0;e{const t=new Uint8ClampedArray(e.length/2) +;for(let i=0;i>1]=n[e[i]]<<4|15&n[e[i+1]];return t};t.prebakedMiniMaps={1:i.once(()=>o("0000511D6300CF609C709645A78432005642574171487021003C451900274D35D762755E8B629C5BA856AF57BA649530C167D1512A272A3F6038604460398526BCA2A968DB6F8957C768BE5FBE2FB467CF5D8D5B795DC7625B5DFF50DE64C466DB2FC47CD860A65E9A2EB96CB54CE06DA763AB2EA26860524D3763536601005116008177A8705E53AB738E6A982F88BAA35B5F5B626D9C636B449B737E5B7B678598869A662F6B5B8542706C704C80736A607578685B70594A49715A4522E792")), +2:i.once(()=>o("000000000000000055394F383D2800008B8B1F210002000081B1CBCBCC820000847AAF6B9AAF2119BE08B8881AD60000A44FD07DCCF107015338130C00000000385972265F390B406E2437634B4B48031B12B8A0847000001E15B29A402F0000000000004B33460B00007A752C2A0000000000004D3900000084394B82013400ABA5CFC7AD9C0302A45A3E5A98AB000089A43382D97900008BA54AA087A70A0248A6A7AE6DBE0000BF6F94987EA40A01A06DCFA7A7A9030496C32F77891D0000A99FB1A0AFA80603B29AB9CA75930D010C0948354D3900000C0948354F37460D0028BE673D8400000000AF9D7B6E00002B007AA8933400007AA642675C2700007984CFB9C3985B768772A8A6B7B20000CAAECAAFC4B700009F94A6009F840009D09F9BA4CA9C0000CC8FC76DC87F0000C991C472A2000000A894A48CA7B501079BA2C9C69BA20000B19A5D3FA89000005CA6009DA2960901B0A7F0669FB200009D009E00B7890000DAD0F5D092820000D294D4C48BD10000B5A7A4A3B1A50402CAB6CBA6A2000000B5A7A4A3B1A8044FCDADD19D9CB00000B7778F7B8AAE0803C9AB5D3F5D3F00009EA09EA0BAB006039EA0989A8C7900009B9EF4D6B7C00000A9A7816CACA80000ABAC84705D3F000096DA635CDC8C00006F486F266F263D4784006124097B00374F6D2D6D2D6D4A3A95872322000000030000000000008D8939130000000000002E22A5C9CBC70600AB25C0B5C9B400061A2DB04CA67001082AA6BEBEBFC606002321DACBC19E03087AA08B6768380000282FBAC0B8CA7A88AD25BBA5A29900004C396C5894A6000040485A6E356E9442A32CD17EADA70000B4237923628600003E2DE9C1D7B500002F25BBA5A2990000231DB6AFB4A804023025C0B5CAB588062B2CBDBEC0C706882435A75CA20000002326BD6A82A908048B4B9A5A668000002423A09CB4BB060025259C9D8A7900001C1FCAB2C7C700002A2A9387ABA200002626A4A47D6E9D14333163A0C87500004B6F9C2D643A257049364936493647358A34438355497F1A0000A24C1D590000D38DFFBDD4CD3126")) +}})),define(t[357],i([0,1,355,204,356,114]),(function(e,t,i,n,o,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MinimapCharRendererFactory=void 0;class r{static create(e,t){if(this.lastCreated&&e===this.lastCreated.scale&&t===this.lastFontFamily)return this.lastCreated;let n;return n=o.prebakedMiniMaps[e]?new i.MinimapCharRenderer(o.prebakedMiniMaps[e](),e):r.createFromSampleData(r.createSampleData(t).data,e),this.lastFontFamily=t,this.lastCreated=n,n}static createSampleData(e){const t=document.createElement("canvas"),i=t.getContext("2d");t.style.height="16px",t.height=16,t.width=960,t.style.width="960px",i.fillStyle="#ffffff",i.font=`bold 16px ${e}`,i.textBaseline="middle";let o=0;for(const e of n.allCharCodes)i.fillText(String.fromCharCode(e),o,8),o+=10;return i.getImageData(0,0,960,16)}static createFromSampleData(e,t){if(61440!==e.length)throw new Error("Unexpected source in MinimapCharRenderer");let n=r._downsample(e,t);return new i.MinimapCharRenderer(n,t)} +static _downsampleChar(e,t,i,n,o){const r=1*o,a=2*o;let l=n,d=0;for(let n=0;n0){const e=255/a;for(let t=0;t=0&&e<256?this._asciiMap[e]=n:this._map.set(e,n)}get(e){ +return e>=0&&e<256?this._asciiMap[e]:this._map.get(e)||this._defaultValue}}t.CharacterClassifier=n;t.CharacterSet=class{constructor(){this._actual=new n(0)}add(e){this._actual.set(e,1)}has(e){return 1===this._actual.get(e)}}})),define(t[99],i([0,1,87]),(function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getMapForWordSeparators=t.WordCharacterClassifier=void 0;class n extends i.CharacterClassifier{constructor(e){super(0);for(let t=0,i=e.length;t(t.hasOwnProperty(i)||(t[i]=e(i)),t[i])}(e=>new n(e))})),define(t[13],i([0,1]),(function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Position=void 0;class i{constructor(e,t){this.lineNumber=e,this.column=t}with(e=this.lineNumber,t=this.column){return e===this.lineNumber&&t===this.column?this:new i(e,t)}delta(e=0,t=0){return this.with(this.lineNumber+e,this.column+t)} +equals(e){return i.equals(this,e)}static equals(e,t){return!e&&!t||!!e&&!!t&&e.lineNumber===t.lineNumber&&e.column===t.column}isBefore(e){return i.isBefore(this,e)}static isBefore(e,t){return e.lineNumberi||e===i&&t>n?(this.startLineNumber=i,this.startColumn=n, +this.endLineNumber=e,this.endColumn=t):(this.startLineNumber=e,this.startColumn=t,this.endLineNumber=i,this.endColumn=n)}isEmpty(){return n.isEmpty(this)}static isEmpty(e){return e.startLineNumber===e.endLineNumber&&e.startColumn===e.endColumn}containsPosition(e){return n.containsPosition(this,e)}static containsPosition(e,t){return!(t.lineNumbere.endLineNumber)&&(!(t.lineNumber===e.startLineNumber&&t.columne.endColumn))}containsRange(e){return n.containsRange(this,e)}static containsRange(e,t){return!(t.startLineNumbere.endLineNumber||t.endLineNumber>e.endLineNumber)&&(!(t.startLineNumber===e.startLineNumber&&t.startColumne.endColumn)))}strictContainsRange(e){return n.strictContainsRange(this,e)}static strictContainsRange(e,t){ +return!(t.startLineNumbere.endLineNumber||t.endLineNumber>e.endLineNumber)&&(!(t.startLineNumber===e.startLineNumber&&t.startColumn<=e.startColumn)&&!(t.endLineNumber===e.endLineNumber&&t.endColumn>=e.endColumn)))}plusRange(e){return n.plusRange(this,e)}static plusRange(e,t){let i,o,s,r;return t.startLineNumbere.endLineNumber?(s=t.endLineNumber,r=t.endColumn):t.endLineNumber===e.endLineNumber?(s=t.endLineNumber,r=Math.max(t.endColumn,e.endColumn)):(s=e.endLineNumber,r=e.endColumn),new n(i,o,s,r)}intersectRanges(e){return n.intersectRanges(this,e)}static intersectRanges(e,t){let i=e.startLineNumber,o=e.startColumn,s=e.endLineNumber,r=e.endColumn,a=t.startLineNumber,l=t.startColumn,d=t.endLineNumber,c=t.endColumn +;return id?(s=d,r=c):s===d&&(r=Math.min(r,c)),i>s?null:i===s&&o>r?null:new n(i,o,s,r)}equalsRange(e){return n.equalsRange(this,e)}static equalsRange(e,t){return!!e&&!!t&&e.startLineNumber===t.startLineNumber&&e.startColumn===t.startColumn&&e.endLineNumber===t.endLineNumber&&e.endColumn===t.endColumn}getEndPosition(){return n.getEndPosition(this)}static getEndPosition(e){return new i.Position(e.endLineNumber,e.endColumn)}getStartPosition(){return n.getStartPosition(this)}static getStartPosition(e){return new i.Position(e.startLineNumber,e.startColumn)}toString(){return"["+this.startLineNumber+","+this.startColumn+" -> "+this.endLineNumber+","+this.endColumn+"]"}setEndPosition(e,t){return new n(this.startLineNumber,this.startColumn,e,t)}setStartPosition(e,t){return new n(e,t,this.endLineNumber,this.endColumn)}collapseToStart(){return n.collapseToStart(this)}static collapseToStart(e){return new n(e.startLineNumber,e.startColumn,e.startLineNumber,e.startColumn)} +static fromPositions(e,t=e){return new n(e.lineNumber,e.column,t.lineNumber,t.column)}static lift(e){return e?new n(e.startLineNumber,e.startColumn,e.endLineNumber,e.endColumn):null}static isIRange(e){return e&&"number"==typeof e.startLineNumber&&"number"==typeof e.startColumn&&"number"==typeof e.endLineNumber&&"number"==typeof e.endColumn}static areIntersectingOrTouching(e,t){return!(e.endLineNumbere.startLineNumber}}t.Range=n})),define(t[205],i([0,1,8,13,3]),(function(e,t,i,n,o){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.PagedScreenReaderStrategy=t.TextAreaState=void 0;class s{constructor(e,t,i,n,o){this.value=e,this.selectionStart=t,this.selectionEnd=i,this.selectionStartPosition=n,this.selectionEndPosition=o}toString(){return"[ <"+this.value+">, selectionStart: "+this.selectionStart+", selectionEnd: "+this.selectionEnd+"]"}static readFromTextArea(e){return new s(e.getValue(),e.getSelectionStart(),e.getSelectionEnd(),null,null)} +collapseSelection(){return new s(this.value,this.value.length,this.value.length,null,null)}writeToTextArea(e,t,i){t.setValue(e,this.value),i&&t.setSelectionRange(e,this.selectionStart,this.selectionEnd)}deduceEditorPosition(e){if(e<=this.selectionStart){const t=this.value.substring(e,this.selectionStart);return this._finishDeduceEditorPosition(this.selectionStartPosition,t,-1)}if(e>=this.selectionEnd){const t=this.value.substring(this.selectionEnd,e);return this._finishDeduceEditorPosition(this.selectionEndPosition,t,1)}const t=this.value.substring(this.selectionStart,e);if(-1===t.indexOf(String.fromCharCode(8230)))return this._finishDeduceEditorPosition(this.selectionStartPosition,t,1);const i=this.value.substring(e,this.selectionEnd);return this._finishDeduceEditorPosition(this.selectionEndPosition,i,-1)}_finishDeduceEditorPosition(e,t,i){let n=0,o=-1;for(;-1!==(o=t.indexOf("\n",o+1));)n++;return[e,i*t.length,n]}static selectedText(e){return new s(e,0,e.length,null,null)}static deduceInput(e,t,n){ +if(!e)return{text:"",replaceCharCnt:0};let o=e.value,s=e.selectionStart,r=e.selectionEnd,a=t.value,l=t.selectionStart,d=t.selectionEnd;const c=o.substring(r),h=a.substring(d),u=i.commonSuffixLength(c,h);a=a.substring(0,a.length-u);const g=(o=o.substring(0,o.length-u)).substring(0,s),p=a.substring(0,l),m=i.commonPrefixLength(g,p);if(a=a.substring(m),o=o.substring(m),l-=m,s-=m,d-=m,r-=m,n&&l===d&&o.length>0){let e=null;if(l===a.length?i.startsWith(a,o)&&(e=a.substring(o.length)):i.endsWith(a,o)&&(e=a.substring(0,a.length-o.length)),null!==e&&e.length>0&&(/\uFE0F/.test(e)||i.containsEmoji(e)))return{text:e,replaceCharCnt:0}}if(l===d){if(o===a&&0===s&&r===o.length&&l===a.length&&-1===a.indexOf("\n")&&i.containsFullWidthCharacter(a))return{text:"",replaceCharCnt:0};return{text:a,replaceCharCnt:g.length-m}}return{text:a,replaceCharCnt:r-s}}}t.TextAreaState=s,s.EMPTY=new s("",0,0,null,null);class r{static _getPageOfLine(e,t){return Math.floor((e-1)/t)}static _getRangeForPage(e,t){const i=e*t,n=i+1,s=i+t +;return new o.Range(n,1,s+1,1)}static fromEditorSelection(e,t,i,a,l){const d=r._getPageOfLine(i.startLineNumber,a),c=r._getRangeForPage(d,a),h=r._getPageOfLine(i.endLineNumber,a),u=r._getRangeForPage(h,a),g=c.intersectRanges(new o.Range(1,1,i.startLineNumber,i.startColumn));let p=t.getValueInRange(g,1);const m=t.getLineCount(),f=t.getLineMaxColumn(m),_=u.intersectRanges(new o.Range(i.endLineNumber,i.endColumn,m,f));let v,C=t.getValueInRange(_,1);if(d===h||d+1===h)v=t.getValueInRange(i,1);else{const e=c.intersectRanges(i),n=u.intersectRanges(i);v=t.getValueInRange(e,1)+String.fromCharCode(8230)+t.getValueInRange(n,1)}if(l){const e=500;p.length>e&&(p=p.substring(p.length-e,p.length)),C.length>e&&(C=C.substring(0,e)),v.length>2*e&&(v=v.substring(0,e)+String.fromCharCode(8230)+v.substring(v.length-e,v.length))}return new s(p+v+C,p.length,p.length+v.length,new n.Position(i.startLineNumber,i.startColumn),new n.Position(i.endLineNumber,i.endColumn))}}t.PagedScreenReaderStrategy=r})), +define(t[206],i([0,1,185,4,2,37,3]),(function(e,t,i,n,o,s,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DiffNavigator=void 0;const a={followsCaret:!0,ignoreCharChanges:!0,alwaysRevealFirst:!0};class l extends o.Disposable{constructor(e,t={}){super(),this._onDidUpdate=this._register(new n.Emitter),this._editor=e,this._options=s.mixin(t,a,!1),this.disposed=!1,this.nextIdx=-1,this.ranges=[],this.ignoreSelectionChange=!1,this.revealFirst=Boolean(this._options.alwaysRevealFirst),this._register(this._editor.onDidDispose(()=>this.dispose())),this._register(this._editor.onDidUpdateDiff(()=>this._onDiffUpdated())),this._options.followsCaret&&this._register(this._editor.getModifiedEditor().onDidChangeCursorPosition(e=>{this.ignoreSelectionChange||(this.nextIdx=-1)})),this._options.alwaysRevealFirst&&this._register(this._editor.getModifiedEditor().onDidChangeModel(e=>{this.revealFirst=!0})),this._init()}_init(){this._editor.getLineChanges()}_onDiffUpdated(){this._init(), +this._compute(this._editor.getLineChanges()),this.revealFirst&&null!==this._editor.getLineChanges()&&(this.revealFirst=!1,this.nextIdx=-1,this.next(1))}_compute(e){this.ranges=[],e&&e.forEach(e=>{!this._options.ignoreCharChanges&&e.charChanges?e.charChanges.forEach(e=>{this.ranges.push({rhs:!0,range:new r.Range(e.modifiedStartLineNumber,e.modifiedStartColumn,e.modifiedEndLineNumber,e.modifiedEndColumn)})}):this.ranges.push({rhs:!0,range:new r.Range(e.modifiedStartLineNumber,1,e.modifiedStartLineNumber,1)})}),this.ranges.sort((e,t)=>e.range.getStartPosition().isBeforeOrEqual(t.range.getStartPosition())?-1:t.range.getStartPosition().isBeforeOrEqual(e.range.getStartPosition())?1:0),this._onDidUpdate.fire(this)}_initIdx(e){let t=!1,i=this._editor.getPosition();if(i){for(let n=0,o=this.ranges.length;n=this.ranges.length&&(this.nextIdx=0)):(this.nextIdx-=1,this.nextIdx<0&&(this.nextIdx=this.ranges.length-1));let n=this.ranges[this.nextIdx];this.ignoreSelectionChange=!0;try{let e=n.range.getStartPosition();this._editor.setPosition(e),this._editor.revealPositionInCenter(e,t)}finally{this.ignoreSelectionChange=!1}}canNavigate(){return this.ranges&&this.ranges.length>0}next(e=0){this._move(!0,e)}previous(e=0){this._move(!1,e)}dispose(){super.dispose(),this.ranges=[],this.disposed=!0}}t.DiffNavigator=l})),define(t[60],i([0,1,3]),(function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EditOperation=void 0;t.EditOperation=class{static insert(e,t){return{range:new i.Range(e.lineNumber,e.column,e.lineNumber,e.column),text:t,forceMoveMarkers:!0}}static delete(e){return{range:e,text:null}} +static replace(e,t){return{range:e,text:t}}static replaceMove(e,t){return{range:e,text:t,forceMoveMarkers:!0}}}})),define(t[358],i([0,1,8,60,3]),(function(e,t,i,n,o){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.trimTrailingWhitespace=t.TrimTrailingWhitespaceCommand=void 0;function s(e,t){t.sort((e,t)=>e.lineNumber===t.lineNumber?e.column-t.column:e.lineNumber-t.lineNumber);for(let e=t.length-2;e>=0;e--)t[e].lineNumber===t[e+1].lineNumber&&t.splice(e,1);let s=[],r=0,a=0,l=t.length;for(let d=1,c=e.getLineCount();d<=c;d++){let c=e.getLineContent(d),h=c.length+1,u=0;if(a255?255:0|e}}t.RGBA8=i,i.Empty=new i(0,0,0,0)})),define(t[20],i([0,1,13,3]),(function(e,t,i,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Selection=void 0;class o extends n.Range{constructor(e,t,i,n){super(e,t,i,n),this.selectionStartLineNumber=e,this.selectionStartColumn=t,this.positionLineNumber=i,this.positionColumn=n}toString(){ +return"["+this.selectionStartLineNumber+","+this.selectionStartColumn+" -> "+this.positionLineNumber+","+this.positionColumn+"]"}equalsSelection(e){return o.selectionsEqual(this,e)}static selectionsEqual(e,t){return e.selectionStartLineNumber===t.selectionStartLineNumber&&e.selectionStartColumn===t.selectionStartColumn&&e.positionLineNumber===t.positionLineNumber&&e.positionColumn===t.positionColumn}getDirection(){return this.selectionStartLineNumber===this.startLineNumber&&this.selectionStartColumn===this.startColumn?0:1}setEndPosition(e,t){return 0===this.getDirection()?new o(this.startLineNumber,this.startColumn,e,t):new o(e,t,this.startLineNumber,this.startColumn)}getPosition(){return new i.Position(this.positionLineNumber,this.positionColumn)}setStartPosition(e,t){return 0===this.getDirection()?new o(e,t,this.endLineNumber,this.endColumn):new o(this.endLineNumber,this.endColumn,e,t)}static fromPositions(e,t=e){return new o(e.lineNumber,e.column,t.lineNumber,t.column)}static liftSelection(e){ +return new o(e.selectionStartLineNumber,e.selectionStartColumn,e.positionLineNumber,e.positionColumn)}static selectionsArrEqual(e,t){if(e&&!t||!e&&t)return!1;if(!e&&!t)return!0;if(e.length!==t.length)return!1;for(let i=0,n=e.length;ithis._onCut.fire(),0)),this._textAreaState=d.TextAreaState.EMPTY,this._selectionChangeListener=null,this.writeScreenReaderContent("ctor"),this._hasFocus=!1,this._isDoingComposition=!1,this._nextCommand=0;let r=null;this._register(n.addStandardDisposableListener(t.domNode,"keydown",e=>{(109===e.keyCode||this._isDoingComposition&&1===e.keyCode)&&e.stopPropagation(),e.equals(9)&&e.preventDefault(),r=e,this._onKeyDown.fire(e)})),this._register(n.addStandardDisposableListener(t.domNode,"keyup",e=>{this._onKeyUp.fire(e)})),this._register(n.addDisposableListener(t.domNode,"compositionstart",e=>{if(this._isDoingComposition)return;this._isDoingComposition=!0;let t=!1 +;a.isMacintosh&&r&&r.equals(109)&&this._textAreaState.selectionStart===this._textAreaState.selectionEnd&&this._textAreaState.selectionStart>0&&this._textAreaState.value.substr(this._textAreaState.selectionStart-1,1)===e.data&&("ArrowRight"!==r.code&&"ArrowLeft"!==r.code||(t=!0)),t?this._textAreaState=new d.TextAreaState(this._textAreaState.value,this._textAreaState.selectionStart-1,this._textAreaState.selectionEnd,this._textAreaState.selectionStartPosition?new c.Position(this._textAreaState.selectionStartPosition.lineNumber,this._textAreaState.selectionStartPosition.column-1):null,this._textAreaState.selectionEndPosition):i.isEdge||this._setAndWriteTextAreaState("compositionstart",d.TextAreaState.EMPTY),this._onCompositionStart.fire({moveOneCharacterLeft:t})}));const h=e=>{const t=this._textAreaState,i=d.TextAreaState.readFromTextArea(this._textArea);return[i,d.TextAreaState.deduceInput(t,i,e)]},u=e=>{const t=this._textAreaState,i=d.TextAreaState.selectedText(e);return[i,{text:i.value, +replaceCharCnt:t.selectionEnd-t.selectionStart}]},g=e=>!(!i.isEdge||"ja"!==e);this._register(n.addDisposableListener(t.domNode,"compositionupdate",e=>{if(g(e.locale)){const[t,i]=h(!1);return this._textAreaState=t,this._onType.fire(i),void this._onCompositionUpdate.fire(e)}const[t,i]=u(e.data||"");this._textAreaState=t,this._onType.fire(i),this._onCompositionUpdate.fire(e)})),this._register(n.addDisposableListener(t.domNode,"compositionend",e=>{if(this._isDoingComposition){if(g(e.locale)){const[e,t]=h(!1);this._textAreaState=e,this._onType.fire(t)}else{const[t,i]=u(e.data||"");this._textAreaState=t,this._onType.fire(i)}(i.isEdge||i.isChrome)&&(this._textAreaState=d.TextAreaState.readFromTextArea(this._textArea)),this._isDoingComposition&&(this._isDoingComposition=!1,this._onCompositionEnd.fire())}})),this._register(n.addDisposableListener(t.domNode,"input",()=>{if(this._textArea.setIgnoreSelectionChangeTime("received input event"),this._isDoingComposition)return;const[e,t]=h(a.isMacintosh) +;0===t.replaceCharCnt&&1===t.text.length&&l.isHighSurrogate(t.text.charCodeAt(0))||(this._textAreaState=e,0===this._nextCommand?""!==t.text&&this._onType.fire(t):(""===t.text&&0===t.replaceCharCnt||this._firePaste(t.text,null),this._nextCommand=0))})),this._register(n.addDisposableListener(t.domNode,"cut",e=>{this._textArea.setIgnoreSelectionChangeTime("received cut event"),this._ensureClipboardGetsEditorSelection(e),this._asyncTriggerCut.schedule()})),this._register(n.addDisposableListener(t.domNode,"copy",e=>{this._ensureClipboardGetsEditorSelection(e)})),this._register(n.addDisposableListener(t.domNode,"paste",e=>{if(this._textArea.setIgnoreSelectionChangeTime("received paste event"),m.canUseTextData(e)){const[t,i]=m.getTextData(e);""!==t&&this._firePaste(t,i)}else this._textArea.getSelectionStart()!==this._textArea.getSelectionEnd()&&this._setAndWriteTextAreaState("paste",d.TextAreaState.EMPTY),this._nextCommand=1})),this._register(n.addDisposableListener(t.domNode,"focus",()=>{this._setHasFocus(!0)})), +this._register(n.addDisposableListener(t.domNode,"blur",()=>{this._setHasFocus(!1)}))}_installSelectionChangeListener(){let e=0;return n.addDisposableListener(document,"selectionchange",t=>{if(!this._hasFocus)return;if(this._isDoingComposition)return;if(!i.isChrome)return;const n=Date.now(),o=n-e;if(e=n,o<5)return;const s=n-this._textArea.getIgnoreSelectionChangeTime();if(this._textArea.resetSelectionChangeTime(),s<100)return;if(!this._textAreaState.selectionStartPosition||!this._textAreaState.selectionEndPosition)return;const r=this._textArea.getValue();if(this._textAreaState.value!==r)return;const a=this._textArea.getSelectionStart(),l=this._textArea.getSelectionEnd();if(this._textAreaState.selectionStart===a&&this._textAreaState.selectionEnd===l)return;const d=this._textAreaState.deduceEditorPosition(a),c=this._host.deduceModelPosition(d[0],d[1],d[2]),u=this._textAreaState.deduceEditorPosition(l),g=this._host.deduceModelPosition(u[0],u[1],u[2]),p=new h.Selection(c.lineNumber,c.column,g.lineNumber,g.column) +;this._onSelectionChangeRequest.fire(p)})}dispose(){super.dispose(),this._selectionChangeListener&&(this._selectionChangeListener.dispose(),this._selectionChangeListener=null)}focusTextArea(){this._setHasFocus(!0),this.refreshFocusState()}isFocused(){return this._hasFocus}refreshFocusState(){const e=n.getShadowRoot(this.textArea.domNode);e?this._setHasFocus(e.activeElement===this.textArea.domNode):n.isInDOM(this.textArea.domNode)?this._setHasFocus(document.activeElement===this.textArea.domNode):this._setHasFocus(!1)}_setHasFocus(e){this._hasFocus!==e&&(this._hasFocus=e,this._selectionChangeListener&&(this._selectionChangeListener.dispose(),this._selectionChangeListener=null),this._hasFocus&&(this._selectionChangeListener=this._installSelectionChangeListener()),this._hasFocus&&(i.isEdge?this._setAndWriteTextAreaState("focusgain",d.TextAreaState.EMPTY):this.writeScreenReaderContent("focusgain")),this._hasFocus?this._onFocus.fire():this._onBlur.fire())}_setAndWriteTextAreaState(e,t){ +this._hasFocus||(t=t.collapseSelection()),t.writeToTextArea(e,this._textArea,this._hasFocus),this._textAreaState=t}writeScreenReaderContent(e){this._isDoingComposition||this._setAndWriteTextAreaState(e,this._host.getScreenReaderContent(this._textAreaState))}_ensureClipboardGetsEditorSelection(e){const t=this._host.getDataToCopy(m.canUseTextData(e)&&u.BrowserFeatures.clipboard.richText),n={version:1,isFromEmptySelection:t.isFromEmptySelection,multicursorText:t.multicursorText,mode:t.mode};g.INSTANCE.set(i.isFirefox?t.text.replace(/\r\n/g,"\n"):t.text,n),m.canUseTextData(e)?m.setTextData(e,t.text,t.html,n):this._setAndWriteTextAreaState("copy or cut",d.TextAreaState.selectedText(t.text))}_firePaste(e,t){t||(t=g.INSTANCE.get(e)),this._onPaste.fire({text:e,metadata:t})}}t.TextAreaInput=p;class m{static canUseTextData(e){return!!e.clipboardData||!!window.clipboardData}static getTextData(e){if(e.clipboardData){e.preventDefault();const t=e.clipboardData.getData("text/plain");let i=null +;const n=e.clipboardData.getData("vscode-editor-data");if("string"==typeof n)try{1!==(i=JSON.parse(n)).version&&(i=null)}catch(e){}return[t,i]}if(window.clipboardData){return e.preventDefault(),[window.clipboardData.getData("Text"),null]}throw new Error("ClipboardEventUtils.getTextData: Cannot use text data!")}static setTextData(e,t,i,n){if(e.clipboardData)return e.clipboardData.setData("text/plain",t),"string"==typeof i&&e.clipboardData.setData("text/html",i),e.clipboardData.setData("vscode-editor-data",JSON.stringify(n)),void e.preventDefault();if(window.clipboardData)return window.clipboardData.setData("Text",t),void e.preventDefault();throw new Error("ClipboardEventUtils.setTextData: Cannot use text data!")}}class f extends r.Disposable{constructor(e){super(),this._actual=e,this._ignoreSelectionChangeTime=0}setIgnoreSelectionChangeTime(e){this._ignoreSelectionChangeTime=Date.now()}getIgnoreSelectionChangeTime(){return this._ignoreSelectionChangeTime}resetSelectionChangeTime(){ +this._ignoreSelectionChangeTime=0}getValue(){return this._actual.domNode.value}setValue(e,t){const i=this._actual.domNode;i.value!==t&&(this.setIgnoreSelectionChangeTime("setValue"),i.value=t)}getSelectionStart(){return this._actual.domNode.selectionStart}getSelectionEnd(){return this._actual.domNode.selectionEnd}setSelectionRange(e,t,o){const s=this._actual.domNode;let r=null;const a=n.getShadowRoot(s),l=(r=a?a.activeElement:document.activeElement)===s,d=s.selectionStart,c=s.selectionEnd;if(l&&d===t&&c===o)i.isFirefox&&window.parent!==window&&s.focus();else{if(l)return this.setIgnoreSelectionChangeTime("setSelectionRange"),s.setSelectionRange(t,o),void(i.isFirefox&&window.parent!==window&&s.focus());try{const e=n.saveParentsScrollTop(s);this.setIgnoreSelectionChangeTime("setSelectionRange"),s.focus(),s.setSelectionRange(t,o),n.restoreParentsScrollTop(s,e)}catch(e){}}}}})),define(t[88],i([0,1,20]),(function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}), +t.ReplaceCommandThatPreservesSelection=t.ReplaceCommandWithOffsetCursorState=t.ReplaceCommandWithoutChangingPosition=t.ReplaceCommandThatSelectsText=t.ReplaceCommand=void 0;t.ReplaceCommand=class{constructor(e,t,i=!1){this._range=e,this._text=t,this.insertsAutoWhitespace=i}getEditOperations(e,t){t.addTrackedEditOperation(this._range,this._text)}computeCursorState(e,t){let n=t.getInverseEditOperations()[0].range;return new i.Selection(n.endLineNumber,n.endColumn,n.endLineNumber,n.endColumn)}};t.ReplaceCommandThatSelectsText=class{constructor(e,t){this._range=e,this._text=t}getEditOperations(e,t){t.addTrackedEditOperation(this._range,this._text)}computeCursorState(e,t){const n=t.getInverseEditOperations()[0].range;return new i.Selection(n.startLineNumber,n.startColumn,n.endLineNumber,n.endColumn)}};t.ReplaceCommandWithoutChangingPosition=class{constructor(e,t,i=!1){this._range=e,this._text=t,this.insertsAutoWhitespace=i}getEditOperations(e,t){t.addTrackedEditOperation(this._range,this._text)} +computeCursorState(e,t){let n=t.getInverseEditOperations()[0].range;return new i.Selection(n.startLineNumber,n.startColumn,n.startLineNumber,n.startColumn)}};t.ReplaceCommandWithOffsetCursorState=class{constructor(e,t,i,n,o=!1){this._range=e,this._text=t,this._columnDeltaOffset=n,this._lineNumberDeltaOffset=i,this.insertsAutoWhitespace=o}getEditOperations(e,t){t.addTrackedEditOperation(this._range,this._text)}computeCursorState(e,t){let n=t.getInverseEditOperations()[0].range;return new i.Selection(n.endLineNumber+this._lineNumberDeltaOffset,n.endColumn+this._columnDeltaOffset,n.endLineNumber+this._lineNumberDeltaOffset,n.endColumn+this._columnDeltaOffset)}};t.ReplaceCommandThatPreservesSelection=class{constructor(e,t,i,n=!1){this._range=e,this._text=t,this._initialSelection=i,this._forceMoveMarkers=n,this._selectionId=null}getEditOperations(e,t){t.addTrackedEditOperation(this._range,this._text,this._forceMoveMarkers),this._selectionId=t.trackSelection(this._initialSelection)}computeCursorState(e,t){ +return t.getTrackedSelection(this._selectionId)}}})),define(t[359],i([0,1,3,20]),(function(e,t,i,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SurroundSelectionCommand=void 0;t.SurroundSelectionCommand=class{constructor(e,t,i){this._range=e,this._charBeforeSelection=t,this._charAfterSelection=i}getEditOperations(e,t){t.addTrackedEditOperation(new i.Range(this._range.startLineNumber,this._range.startColumn,this._range.startLineNumber,this._range.startColumn),this._charBeforeSelection),t.addTrackedEditOperation(new i.Range(this._range.endLineNumber,this._range.endColumn,this._range.endLineNumber,this._range.endColumn),this._charAfterSelection)}computeCursorState(e,t){let i=t.getInverseEditOperations(),o=i[0].range,s=i[1].range;return new n.Selection(o.endLineNumber,o.endColumn,s.endLineNumber,s.endColumn-this._charAfterSelection.length)}}})),define(t[89],i([0,1,8,16,112]),(function(e,t,i,n,o){"use strict";let s;function r(){ +return s||(s=new TextDecoder(n.isLittleEndian()?"UTF-16LE":"UTF-16BE")),s}Object.defineProperty(t,"__esModule",{value:!0}),t.decodeUTF16LE=t.createStringBuilder=t.hasTextDecoder=t.getPlatformTextDecoder=void 0,t.getPlatformTextDecoder=r,t.hasTextDecoder="undefined"!=typeof TextDecoder,t.hasTextDecoder?(t.createStringBuilder=e=>new a(e),t.decodeUTF16LE=function(e,t,i){const n=new Uint16Array(e.buffer,t,i);return r().decode(n)}):(t.createStringBuilder=e=>new l,t.decodeUTF16LE=function(e,t,i){let n=[],s=0;for(let r=0;r=this._capacity)return this._flushBuffer(),void(this._completedStrings[this._completedStrings.length]=e);for(let i=0;i=this._lines.length)throw new Error("Illegal value for lineNumber");return this._lines[t]}onLinesDeleted(e,t){if(0===this.getCount())return null;const i=this.getStartLineNumber(),n=this.getEndLineNumber();if(tn)return null;let o=0,s=0 +;for(let r=i;r<=n;r++){const i=r-this._rendLineNumberStart;e<=r&&r<=t&&(0===s?(o=i,s=1):s++)}if(e=i&&s<=n&&(this._lines[s-this._rendLineNumberStart].onContentChanged(),o=!0);return o}onLinesInserted(e,t){if(0===this.getCount())return null;const i=t-e+1,n=this.getStartLineNumber(),o=this.getEndLineNumber();if(e<=n)return this._rendLineNumberStart+=i,null;if(e>o)return null;if(i+e>o){return this._lines.splice(e-this._rendLineNumberStart,o-e+1)}const s=[];for(let e=0;ei)continue;const r=Math.max(t,s.fromLineNumber),a=Math.min(i,s.toLineNumber);for(let e=r;e<=a;e++){const t=e-this._rendLineNumberStart;this._lines[t].onTokensChanged(),n=!0}}return n}}t.RenderedLinesCollection=o;t.VisibleLinesCollection=class{constructor(e){this._host=e,this.domNode=this._createDomNode(),this._linesCollection=new o(()=>this._host.createVisibleLine())}_createDomNode(){const e=i.createFastDomNode(document.createElement("div"));return e.setClassName("view-layer"),e.setPosition("absolute"),e.domNode.setAttribute("role","presentation"),e.domNode.setAttribute("aria-hidden","true"),e}onConfigurationChanged(e){return!!e.hasChanged(117)}onFlushed(e){return this._linesCollection.flush(),!0}onLinesChanged(e){return this._linesCollection.onLinesChanged(e.fromLineNumber,e.toLineNumber)}onLinesDeleted(e){ +const t=this._linesCollection.onLinesDeleted(e.fromLineNumber,e.toLineNumber);if(t)for(let e=0,i=t.length;et){const e=t,s=Math.min(i,o.rendLineNumberStart-1);e<=s&&(this._insertLinesBefore(o,e,s,n,t),o.linesLength+=s-e+1)}else if(o.rendLineNumberStart0&&(this._removeLinesBefore(o,e),o.linesLength-=e)}if(o.rendLineNumberStart=t,o.rendLineNumberStart+o.linesLength-1i){const e=Math.max(0,i-o.rendLineNumberStart+1),t=o.linesLength-1-e+1;t>0&&(this._removeLinesAfter(o,t),o.linesLength-=t)}return this._finishRendering(o,!1,n),o}_renderUntouchedLines(e,t,i,n,o){const s=e.rendLineNumberStart,r=e.lines;for(let e=t;e<=i;e++){const t=s+e;r[e].layoutLine(t,n[t-o])}}_insertLinesBefore(e,t,i,n,o){const s=[];let r=0;for(let e=t;e<=i;e++)s[r++]=this.host.createVisibleLine();e.lines=s.concat(e.lines)}_removeLinesBefore(e,t){for(let i=0;i=0;t--){const i=e.lines[t];n[t]&&(i.setDomNode(s),s=s.previousSibling)}}_finishRenderingInvalidLines(e,t,i){const n=document.createElement("div");n.innerHTML=t;for(let t=0;t0&&t.originalLength<20&&t.modifiedLength>0&&t.modifiedLength<20&&r()){ +const a=i.createCharSequence(e,t.originalStart,t.originalStart+t.originalLength-1),d=n.createCharSequence(e,t.modifiedStart,t.modifiedStart+t.modifiedLength-1);let h=s(a,d,r,!0).changes;c&&(h=function(e){if(e.length<=1)return e;const t=[e[0]];let i=t[0];for(let n=1,s=e.length;n!0;const t=Date.now();return()=>Date.now()-t1&&s>1;){if(e.charCodeAt(i-2)!==t.charCodeAt(s-2))break;i--,s--} +(i>1||s>1)&&this._pushTrimWhitespaceCharChange(n,o+1,1,i,r+1,1,s)}{let i=h(e,1),s=h(t,1);const a=e.length+1,l=t.length+1;for(;i0&&a>0)return;if(l>0&&d>0)return;let c=Math.abs(a-d),h=Math.abs(r-l);if(0===c)return o.spacesDiff=h,void(h>0&&0<=l-1&&l-10?r++:f>1&&a++,n(l,d,c,m,u),u.looksLikeAlignment&&(!o||t!==u.spacesDiff))continue;let v=u.spacesDiff;v<=8&&h[v]++,l=c,d=m}let g=o +;r!==a&&(g=r{let i=h[t];i>e&&(e=i,p=t)}),4===p&&h[4]>0&&h[2]>0&&h[2]>=h[4]/2&&(p=2)}return{insertSpaces:g,tabSize:p}}})),define(t[362],i([0,1]),(function(e,t){"use strict";function i(e){return(1&e.metadata)>>>0}function n(e,t){e.metadata=254&e.metadata|t<<0}function o(e){return(2&e.metadata)>>>1==1}function s(e,t){e.metadata=253&e.metadata|(t?1:0)<<1}function r(e){return(4&e.metadata)>>>2==1}function a(e,t){e.metadata=251&e.metadata|(t?1:0)<<2}function l(e,t){e.metadata=247&e.metadata|(t?1:0)<<3}function d(e,t){e.metadata=207&e.metadata|t<<4}function c(e,t){e.metadata=191&e.metadata|(t?1:0)<<6}Object.defineProperty(t,"__esModule",{value:!0}),t.intervalCompare=t.recomputeMaxEnd=t.nodeAcceptEdit=t.IntervalTree=t.SENTINEL=t.IntervalNode=t.getNodeIsInOverviewRuler=t.getNodeColor=void 0,t.getNodeColor=i,t.getNodeIsInOverviewRuler=function(e){return(8&e.metadata)>>>3==1};class h{constructor(e,t,i){this.metadata=0,this.parent=this,this.left=this,this.right=this, +n(this,1),this.start=t,this.end=i,this.delta=0,this.maxEnd=i,this.id=e,this.ownerId=0,this.options=null,a(this,!1),d(this,1),l(this,!1),c(this,!1),this.cachedVersionId=0,this.cachedAbsoluteStart=t,this.cachedAbsoluteEnd=i,this.range=null,s(this,!1)}reset(e,t,i,n){this.start=t,this.end=i,this.maxEnd=i,this.cachedVersionId=e,this.cachedAbsoluteStart=t,this.cachedAbsoluteEnd=i,this.range=n}setOptions(e){this.options=e;let t=this.options.className;a(this,"squiggly-error"===t||"squiggly-warning"===t||"squiggly-info"===t),d(this,this.options.stickiness),l(this,!(!this.options.overviewRuler||!this.options.overviewRuler.color)),c(this,this.options.collapseOnReplaceEdit)}setCachedOffsets(e,t,i){this.cachedVersionId!==i&&(this.range=null),this.cachedVersionId=i,this.cachedAbsoluteStart=e,this.cachedAbsoluteEnd=t}detach(){this.parent=null,this.left=null,this.right=null}}t.IntervalNode=h,t.SENTINEL=new h(null,0,0),t.SENTINEL.parent=t.SENTINEL,t.SENTINEL.left=t.SENTINEL,t.SENTINEL.right=t.SENTINEL,n(t.SENTINEL,0) +;function u(e,t,i,n){return ei)&&(1!==n&&(2===n||t))}function g(e,t,i,n,o){const s=function(e){return(48&e.metadata)>>>4}(e),r=0===s||2===s,a=1===s||2===s,l=i-t,d=n,c=Math.min(l,d),h=e.start;let g=!1;const p=e.end;let m=!1;t<=h&&p<=i&&function(e){return(64&e.metadata)>>>6==1}(e)&&(e.start=t,g=!0,e.end=t,m=!0);{const e=o?1:l>0?2:0;!g&&u(h,r,t,e)&&(g=!0),!m&&u(p,a,t,e)&&(m=!0)}if(c>0&&!o){const e=l>d?2:0;!g&&u(h,r,t+c,e)&&(g=!0),!m&&u(p,a,t+c,e)&&(m=!0)}{const n=o?1:0;!g&&u(h,r,i,n)&&(e.start=t+d,g=!0),!m&&u(p,a,i,n)&&(e.end=t+d,m=!0)}const f=d-l;g||(e.start=Math.max(0,h+f)),m||(e.end=Math.max(0,p+f)),e.start>e.end&&(e.end=e.start)}function p(e,o){if(e.root===t.SENTINEL)return o.parent=t.SENTINEL,o.left=t.SENTINEL,o.right=t.SENTINEL,n(o,0),e.root=o,e.root;!function(e,i){let o=0,s=e.root;const r=i.start,a=i.end;for(;;){if(w(r,a,s.start+o,s.end+o)<0){if(s.left===t.SENTINEL){i.start-=o,i.end-=o,i.maxEnd-=o,s.left=i;break}s=s.left}else{if(s.right===t.SENTINEL){i.start-=o+s.delta,i.end-=o+s.delta, +i.maxEnd-=o+s.delta,s.right=i;break}o+=s.delta,s=s.right}}i.parent=s,i.left=t.SENTINEL,i.right=t.SENTINEL,n(i,1)}(e,o),S(o.parent);let s=o;for(;s!==e.root&&1===i(s.parent);)if(s.parent===s.parent.parent.left){const t=s.parent.parent.right;1===i(t)?(n(s.parent,0),n(t,0),n(s.parent.parent,1),s=s.parent.parent):(s===s.parent.right&&_(e,s=s.parent),n(s.parent,0),n(s.parent.parent,1),v(e,s.parent.parent))}else{const t=s.parent.parent.left;1===i(t)?(n(s.parent,0),n(t,0),n(s.parent.parent,1),s=s.parent.parent):(s===s.parent.left&&v(e,s=s.parent),n(s.parent,0),n(s.parent.parent,1),_(e,s.parent.parent))}return n(e.root,0),o}function m(e,o){let s,r;if(o.left===t.SENTINEL?(r=o,(s=o.right).delta+=o.delta,(s.delta<-1073741824||s.delta>1073741824)&&(e.requestNormalizeDelta=!0),s.start+=o.delta,s.end+=o.delta):o.right===t.SENTINEL?(s=o.left,r=o):((s=(r=function(e){for(;e.left!==t.SENTINEL;)e=e.left;return e}(o.right)).right).start+=r.delta,s.end+=r.delta,s.delta+=r.delta, +(s.delta<-1073741824||s.delta>1073741824)&&(e.requestNormalizeDelta=!0),r.start+=o.delta,r.end+=o.delta,r.delta=o.delta,(r.delta<-1073741824||r.delta>1073741824)&&(e.requestNormalizeDelta=!0)),r===e.root)return e.root=s,n(s,0),o.detach(),f(),b(s),void(e.root.parent=t.SENTINEL);let a,l=1===i(r);if(r===r.parent.left?r.parent.left=s:r.parent.right=s,r===o?s.parent=r.parent:(r.parent===o?s.parent=r:s.parent=r.parent,r.left=o.left,r.right=o.right,r.parent=o.parent,n(r,i(o)),o===e.root?e.root=r:o===o.parent.left?o.parent.left=r:o.parent.right=r,r.left!==t.SENTINEL&&(r.left.parent=r),r.right!==t.SENTINEL&&(r.right.parent=r)),o.detach(),l)return S(s.parent),r!==o&&(S(r),S(r.parent)),void f();for(S(s),S(s.parent),r!==o&&(S(r),S(r.parent));s!==e.root&&0===i(s);)s===s.parent.left?(1===i(a=s.parent.right)&&(n(a,0),n(s.parent,1),_(e,s.parent),a=s.parent.right),0===i(a.left)&&0===i(a.right)?(n(a,1),s=s.parent):(0===i(a.right)&&(n(a.left,0),n(a,1),v(e,a),a=s.parent.right),n(a,i(s.parent)),n(s.parent,0),n(a.right,0), +_(e,s.parent),s=e.root)):(1===i(a=s.parent.left)&&(n(a,0),n(s.parent,1),v(e,s.parent),a=s.parent.left),0===i(a.left)&&0===i(a.right)?(n(a,1),s=s.parent):(0===i(a.left)&&(n(a.right,0),n(a,1),_(e,a),a=s.parent.left),n(a,i(s.parent)),n(s.parent,0),n(a.left,0),v(e,s.parent),s=e.root));n(s,0),f()}function f(){t.SENTINEL.parent=t.SENTINEL,t.SENTINEL.delta=0,t.SENTINEL.start=0,t.SENTINEL.end=0}function _(e,i){const n=i.right;n.delta+=i.delta,(n.delta<-1073741824||n.delta>1073741824)&&(e.requestNormalizeDelta=!0),n.start+=i.delta,n.end+=i.delta,i.right=n.left,n.left!==t.SENTINEL&&(n.left.parent=i),n.parent=i.parent,i.parent===t.SENTINEL?e.root=n:i===i.parent.left?i.parent.left=n:i.parent.right=n,n.left=i,i.parent=n,b(i),b(n)}function v(e,i){const n=i.left;i.delta-=n.delta,(i.delta<-1073741824||i.delta>1073741824)&&(e.requestNormalizeDelta=!0),i.start-=n.delta,i.end-=n.delta,i.left=n.right,n.right!==t.SENTINEL&&(n.right.parent=i),n.parent=i.parent, +i.parent===t.SENTINEL?e.root=n:i===i.parent.right?i.parent.right=n:i.parent.left=n,n.right=i,i.parent=n,b(i),b(n)}function C(e){let i=e.end;if(e.left!==t.SENTINEL){const t=e.left.maxEnd;t>i&&(i=t)}if(e.right!==t.SENTINEL){const t=e.right.maxEnd+e.delta;t>i&&(i=t)}return i}function b(e){e.maxEnd=C(e)}function S(e){for(;e!==t.SENTINEL;){const t=C(e);if(e.maxEnd===t)return;e.maxEnd=t,e=e.parent}}function w(e,t,i,n){return e===i?t-n:e-i}t.IntervalTree=class{constructor(){this.root=t.SENTINEL,this.requestNormalizeDelta=!1}intervalSearch(e,i,n,a,l){return this.root===t.SENTINEL?[]:function(e,i,n,a,l,d){let c=e.root,h=0,u=0,g=0,p=0,m=[],f=0;for(;c!==t.SENTINEL;)if(o(c))s(c.left,!1),s(c.right,!1),c===c.parent.right&&(h-=c.parent.delta),c=c.parent;else{if(!o(c.left)){if((u=h+c.maxEnd)n)s(c,!0);else{if((p=h+c.end)>=i){c.setCachedOffsets(g,p,d);let e=!0;a&&c.ownerId&&c.ownerId!==a&&(e=!1),l&&r(c)&&(e=!1),e&&(m[f++]=c)}s(c,!0), +c.right===t.SENTINEL||o(c.right)||(h+=c.delta,c=c.right)}}return s(e.root,!1),m}(this,e,i,n,a,l)}search(e,i,n){return this.root===t.SENTINEL?[]:function(e,i,n,a){let l=e.root,d=0,c=0,h=0,u=[],g=0;for(;l!==t.SENTINEL;){if(o(l)){s(l.left,!1),s(l.right,!1),l===l.parent.right&&(d-=l.parent.delta),l=l.parent;continue}if(l.left!==t.SENTINEL&&!o(l.left)){l=l.left;continue}c=d+l.start,h=d+l.end,l.setCachedOffsets(c,h,a);let e=!0;i&&l.ownerId&&l.ownerId!==i&&(e=!1),n&&r(l)&&(e=!1),e&&(u[g++]=l),s(l,!0),l.right===t.SENTINEL||o(l.right)||(d+=l.delta,l=l.right)}return s(e.root,!1),u}(this,e,i,n)}collectNodesFromOwner(e){return function(e,i){let n=e.root,r=[],a=0;for(;n!==t.SENTINEL;)o(n)?(s(n.left,!1),s(n.right,!1),n=n.parent):n.left===t.SENTINEL||o(n.left)?(n.ownerId===i&&(r[a++]=n),s(n,!0),n.right===t.SENTINEL||o(n.right)||(n=n.right)):n=n.left;return s(e.root,!1),r}(this,e)}collectNodesPostOrder(){return function(e){let i=e.root,n=[],r=0;for(;i!==t.SENTINEL;)o(i)?(s(i.left,!1),s(i.right,!1), +i=i.parent):i.left===t.SENTINEL||o(i.left)?i.right===t.SENTINEL||o(i.right)?(n[r++]=i,s(i,!0)):i=i.right:i=i.left;return s(e.root,!1),n}(this)}insert(e){p(this,e),this._normalizeDeltaIfNecessary()}delete(e){m(this,e),this._normalizeDeltaIfNecessary()}resolveNode(e,t){const i=e;let n=0;for(;e!==this.root;)e===e.parent.right&&(n+=e.parent.delta),e=e.parent;const o=i.start+n,s=i.end+n;i.setCachedOffsets(o,s,t)}acceptReplace(e,i,n,r){const a=function(e,i,n){let r=e.root,a=0,l=0,d=0,c=0,h=[],u=0;for(;r!==t.SENTINEL;)if(o(r))s(r.left,!1),s(r.right,!1),r===r.parent.right&&(a-=r.parent.delta),r=r.parent;else{if(!o(r.left)){if((l=a+r.maxEnd)n?s(r,!0):((c=a+r.end)>=i&&(r.setCachedOffsets(d,c,0),h[u++]=r),s(r,!0),r.right===t.SENTINEL||o(r.right)||(a+=r.delta,r=r.right))}return s(e.root,!1),h}(this,e,e+i);for(let e=0,t=a.length;en?(a.start+=h,a.end+=h,a.delta+=h,(a.delta<-1073741824||a.delta>1073741824)&&(e.requestNormalizeDelta=!0),s(a,!0)):(s(a,!0),a.right===t.SENTINEL||o(a.right)||(l+=a.delta,a=a.right))}s(e.root,!1)}(this,e,e+i,n),this._normalizeDeltaIfNecessary();for(let t=0,o=a.length;t=i)break;const n=e.charCodeAt(t);if(110===n||114===n||87===n||119===n)return!0}}return!1}t.SearchParams=class{ +constructor(e,t,i,n){this.searchString=e,this.isRegex=t,this.matchCase=i,this.wordSeparators=n}parseSearchRequest(){if(""===this.searchString)return null;let e;e=this.isRegex?l(this.searchString):this.searchString.indexOf("\n")>=0;let t=null;try{t=i.createRegExp(this.searchString,this.isRegex,{matchCase:this.matchCase,wholeWord:!1,multiline:e,global:!0,unicode:!0})}catch(e){return null}if(!t)return null;let o=!this.isRegex&&!e;return o&&this.searchString.toLowerCase()!==this.searchString.toUpperCase()&&(o=this.matchCase),new d(t,this.wordSeparators?n.getMapForWordSeparators(this.wordSeparators):null,o?this.searchString:null)}},t.isMultilineRegexSource=l;class d{constructor(e,t,i){this.regex=e,this.wordSeparators=t,this.simpleSearch=i}}function c(e,t,i){if(!i)return new r.FindMatch(e,null);let n=[];for(let e=0,i=t.length;e>0);t[o]>=e?n=o-1:t[o+1]>=e?(i=o,n=o):i=o+1}return i+1}}function u(e,t,i,n,o){return function(e,t,i,n,o){if(0===n)return!0;const s=t.charCodeAt(n-1);if(0!==e.get(s))return!0;if(13===s||10===s)return!0;if(o>0){const i=t.charCodeAt(n);if(0!==e.get(i))return!0}return!1}(e,t,0,n,o)&&function(e,t,i,n,o){if(n+o===i)return!0;const s=t.charCodeAt(n+o);if(0!==e.get(s))return!0;if(13===s||10===s)return!0;if(o>0){const i=t.charCodeAt(n+o-1);if(0!==e.get(i))return!0}return!1}(e,t,i,n,o)}t.TextModelSearch=class{static findMatches(e,t,i,n,o){const s=t.parseSearchRequest();return s?s.regex.multiline?this._doFindMatchesMultiline(e,i,new g(s.wordSeparators,s.regex),n,o):this._doFindMatchesLineByLine(e,i,s,n,o):[]}static _getMultilineMatchRange(e,t,i,n,o,r){let a,l,d=0;if(a=n?t+o+(d=n.findLineFeedCountBeforeOffset(o)):t+o,n){ +let e=n.findLineFeedCountBeforeOffset(o+r.length)-d;l=a+r.length+e}else l=a+r.length;const c=e.getPositionAt(a),h=e.getPositionAt(l);return new s.Range(c.lineNumber,c.column,h.lineNumber,h.column)}static _doFindMatchesMultiline(e,t,i,n,o){const s=e.getOffsetAt(t.getStartPosition()),r=e.getValueInRange(t,1),a="\r\n"===e.getEOL()?new h(r):null,l=[];let d,u=0;for(i.reset(0);d=i.next(r);)if(l[u++]=c(this._getMultilineMatchRange(e,s,r,a,d.index,d[0]),d,n),u>=o)return l;return l}static _doFindMatchesLineByLine(e,t,i,n,o){const s=[];let r=0;if(t.startLineNumber===t.endLineNumber){const a=e.getLineContent(t.startLineNumber).substring(t.startColumn-1,t.endColumn-1);return r=this._findMatchesInLine(i,a,t.startLineNumber,t.startColumn-1,r,s,n,o),s}const a=e.getLineContent(t.startLineNumber).substring(t.startColumn-1);r=this._findMatchesInLine(i,a,t.startLineNumber,t.startColumn-1,r,s,n,o);for(let a=t.startLineNumber+1;a=d))return o;return o}const p=new g(e.wordSeparators,e.regex);let m;p.reset(0);do{if((m=p.next(t))&&(a[o++]=c(new s.Range(i,m.index+1+n,i,m.index+1+m[0].length+n),m,l),o>=d))return o}while(m);return o}static findNextMatch(e,t,i,n){const o=t.parseSearchRequest();if(!o)return null;const s=new g(o.wordSeparators,o.regex);return o.regex.multiline?this._doFindNextMatchMultiline(e,i,s,n):this._doFindNextMatchLineByLine(e,i,s,n)}static _doFindNextMatchMultiline(e,t,i,n){ +const r=new o.Position(t.lineNumber,1),a=e.getOffsetAt(r),l=e.getLineCount(),d=e.getValueInRange(new s.Range(r.lineNumber,r.column,l,e.getLineMaxColumn(l)),1),u="\r\n"===e.getEOL()?new h(d):null;i.reset(t.column-1);let g=i.next(d);return g?c(this._getMultilineMatchRange(e,a,d,u,g.index,g[0]),g,n):1!==t.lineNumber||1!==t.column?this._doFindNextMatchMultiline(e,new o.Position(1,1),i,n):null}static _doFindNextMatchLineByLine(e,t,i,n){const o=e.getLineCount(),s=t.lineNumber,r=e.getLineContent(s),a=this._findFirstMatchInLine(i,r,s,t.column,n);if(a)return a;for(let t=1;t<=o;t++){const r=(s+t-1)%o,a=e.getLineContent(r+1),l=this._findFirstMatchInLine(i,a,r+1,1,n);if(l)return l}return null}static _findFirstMatchInLine(e,t,i,n,o){e.reset(n-1);const r=e.next(t);return r?c(new s.Range(i,r.index+1,i,r.index+1+r[0].length),r,o):null}static findPreviousMatch(e,t,i,n){const o=t.parseSearchRequest();if(!o)return null;const s=new g(o.wordSeparators,o.regex) +;return o.regex.multiline?this._doFindPreviousMatchMultiline(e,i,s,n):this._doFindPreviousMatchLineByLine(e,i,s,n)}static _doFindPreviousMatchMultiline(e,t,i,n){const r=this._doFindMatchesMultiline(e,new s.Range(1,1,t.lineNumber,t.column),i,n,10*a);if(r.length>0)return r[r.length-1];const l=e.getLineCount();return t.lineNumber!==l||t.column!==e.getLineMaxColumn(l)?this._doFindPreviousMatchMultiline(e,new o.Position(l,e.getLineMaxColumn(l)),i,n):null}static _doFindPreviousMatchLineByLine(e,t,i,n){const o=e.getLineCount(),s=t.lineNumber,r=e.getLineContent(s).substring(0,t.column-1),a=this._findLastMatchInLine(i,r,s,n);if(a)return a;for(let t=1;t<=o;t++){const r=(o+s-t-1)%o,a=e.getLineContent(r+1),l=this._findLastMatchInLine(i,a,r+1,n);if(l)return l}return null}static _findLastMatchInLine(e,t,i,n){let o,r=null;for(e.reset(0);o=e.next(t);)r=c(new s.Range(i,o.index+1,i,o.index+1+o[0].length),o,n);return r}},t.isValidMatch=u;class g{constructor(e,t){this._wordSeparators=e,this._searchRegex=t, +this._prevMatchStartIndex=-1,this._prevMatchLength=0}reset(e){this._searchRegex.lastIndex=e,this._prevMatchStartIndex=-1,this._prevMatchLength=0}next(e){const t=e.length;let n;do{if(this._prevMatchStartIndex+this._prevMatchLength===t)return null;if(!(n=this._searchRegex.exec(e)))return null;const o=n.index,s=n[0].length;if(o===this._prevMatchStartIndex&&s===this._prevMatchLength){if(0===s){i.getNextCodePoint(e,t,this._searchRegex.lastIndex)>65535?this._searchRegex.lastIndex+=2:this._searchRegex.lastIndex+=1;continue}return null}if(this._prevMatchStartIndex=o,this._prevMatchLength=s,!this._wordSeparators||u(this._wordSeparators,e,t,o,s))return n}while(n);return null}}t.Searcher=g})),define(t[211],i([0,1,13,3,52,363,158]),(function(e,t,i,n,o,s,r){"use strict";function a(e){let t;return(t=e[e.length-1]<65536?new Uint16Array(e.length):new Uint32Array(e.length)).set(e,0),t}Object.defineProperty(t,"__esModule",{value:!0}), +t.PieceTreeBase=t.StringBuffer=t.Piece=t.createLineStarts=t.createLineStartsFast=t.LineStarts=t.createUintArray=t.AverageBufferSize=void 0,t.AverageBufferSize=65535,t.createUintArray=a;class l{constructor(e,t,i,n,o){this.lineStarts=e,this.cr=t,this.lf=i,this.crlf=n,this.isBasicASCII=o}}function d(e,t=!0){let i=[0],n=1;for(let t=0,o=e.length;t126)&&(r=!1)}const d=new l(a(e),n,o,s,r);return e.length=0,d};class c{constructor(e,t,i,n,o){this.bufferIndex=e,this.start=t,this.end=i,this.lineFeedCnt=n,this.length=o}}t.Piece=c;class h{constructor(e,t){this.buffer=e,this.lineStarts=t}}t.StringBuffer=h +;class u{constructor(e,t){this._pieces=[],this._tree=e,this._BOM=t,this._index=0,e.root!==s.SENTINEL&&e.iterate(e.root,e=>(e!==s.SENTINEL&&this._pieces.push(e.piece),!0))}read(){return 0===this._pieces.length?0===this._index?(this._index++,this._BOM):null:this._index>this._pieces.length-1?null:0===this._index?this._BOM+this._tree.getPieceContent(this._pieces[this._index++]):this._tree.getPieceContent(this._pieces[this._index++])}}class g{constructor(e){this._limit=e,this._cache=[]}get(e){for(let t=this._cache.length-1;t>=0;t--){let i=this._cache[t];if(i.nodeStartOffset<=e&&i.nodeStartOffset+i.node.piece.length>=e)return i}return null}get2(e){for(let t=this._cache.length-1;t>=0;t--){let i=this._cache[t];if(i.nodeStartLineNumber&&i.nodeStartLineNumber=e)return i}return null}set(e){this._cache.length>=this._limit&&this._cache.shift(),this._cache.push(e)}validate(e){let t=!1,i=this._cache;for(let n=0;n=e)&&(i[n]=null,t=!0)}if(t){let e=[];for(const t of i)null!==t&&e.push(t);this._cache=e}}}t.PieceTreeBase=class{constructor(e,t,i){this.create(e,t,i)}create(e,t,i){this._buffers=[new h("",[0])],this._lastChangeBufferPos={line:0,column:0},this.root=s.SENTINEL,this._lineCnt=1,this._length=0,this._EOL=t,this._EOLLength=t.length,this._EOLNormalized=i;let n=null;for(let t=0,i=e.length;t0){e[t].lineStarts||(e[t].lineStarts=d(e[t].buffer));let i=new c(t+1,{line:0,column:0},{line:e[t].lineStarts.length-1,column:e[t].buffer.length-e[t].lineStarts[e[t].lineStarts.length-1]},e[t].lineStarts.length-1,e[t].buffer.length);this._buffers.push(e[t]),n=this.rbInsertRight(n,i)}this._searchCache=new g(1),this._lastVisitedLine={lineNumber:0,value:""},this.computeBufferMetadata()}normalizeEOL(e){let i=t.AverageBufferSize,n=i-Math.floor(i/3),o=2*n,s="",r=0,a=[];if(this.iterate(this.root,t=>{let i=this.getNodeContent(t),l=i.length;if(r<=n||r+l0){let t=s.replace(/\r\n|\r|\n/g,e);a.push(new h(t,d(t)))}this.create(a,e,!0)}getEOL(){return this._EOL}setEOL(e){this._EOL=e,this._EOLLength=this._EOL.length,this.normalizeEOL(e)}createSnapshot(e){return new u(this,e)}getOffsetAt(e,t){let i=0,n=this.root;for(;n!==s.SENTINEL;)if(n.left!==s.SENTINEL&&n.lf_left+1>=e)n=n.left;else{if(n.lf_left+n.piece.lineFeedCnt+1>=e){return(i+=n.size_left)+(this.getAccumulatedValue(n,e-n.lf_left-2)+t-1)}e-=n.lf_left+n.piece.lineFeedCnt,i+=n.size_left+n.piece.length,n=n.right}return i}getPositionAt(e){e=Math.floor(e),e=Math.max(0,e);let t=this.root,n=0,o=e;for(;t!==s.SENTINEL;)if(0!==t.size_left&&t.size_left>=e)t=t.left;else{if(t.size_left+t.piece.length>=e){let s=this.getIndexOf(t,e-t.size_left);if(n+=t.lf_left+s.index,0===s.index){let e=o-this.getOffsetAt(n+1,1);return new i.Position(n+1,e+1)}return new i.Position(n+1,s.remainder+1)}if(e-=t.size_left+t.piece.length, +n+=t.lf_left+t.piece.lineFeedCnt,t.right===s.SENTINEL){let t=o-e-this.getOffsetAt(n+1,1);return new i.Position(n+1,t+1)}t=t.right}return new i.Position(1,1)}getValueInRange(e,t){if(e.startLineNumber===e.endLineNumber&&e.startColumn===e.endColumn)return"";let i=this.nodeAt2(e.startLineNumber,e.startColumn),n=this.nodeAt2(e.endLineNumber,e.endColumn),o=this.getValueInRange2(i,n);return t?t===this._EOL&&this._EOLNormalized&&t===this.getEOL()&&this._EOLNormalized?o:o.replace(/\r\n|\r|\n/g,t):o}getValueInRange2(e,t){if(e.node===t.node){let i=e.node,n=this._buffers[i.piece.bufferIndex].buffer,o=this.offsetInBuffer(i.piece.bufferIndex,i.piece.start);return n.substring(o+e.remainder,o+t.remainder)}let i=e.node,n=this._buffers[i.piece.bufferIndex].buffer,o=this.offsetInBuffer(i.piece.bufferIndex,i.piece.start),r=n.substring(o+e.remainder,o+i.piece.length);for(i=i.next();i!==s.SENTINEL;){let e=this._buffers[i.piece.bufferIndex].buffer,n=this.offsetInBuffer(i.piece.bufferIndex,i.piece.start);if(i===t.node){ +r+=e.substring(n,n+t.remainder);break}r+=e.substr(n,i.piece.length),i=i.next()}return r}getLinesContent(){let e=[],t=0,i="",n=!1;return this.iterate(this.root,o=>{if(o===s.SENTINEL)return!0;const r=o.piece;let a=r.length;if(0===a)return!0;const l=this._buffers[r.bufferIndex].buffer,d=this._buffers[r.bufferIndex].lineStarts,c=r.start.line,h=r.end.line;let u=d[c]+r.start.column;if(n&&(10===l.charCodeAt(u)&&(u++,a--),e[t++]=i,i="",n=!1,0===a))return!0;if(c===h)return this._EOLNormalized||13!==l.charCodeAt(u+a-1)?i+=l.substr(u,a):(n=!0,i+=l.substr(u,a-1)),!0;i+=this._EOLNormalized?l.substring(u,Math.max(u,d[c+1]-this._EOLLength)):l.substring(u,d[c+1]).replace(/(\r\n|\r|\n)$/,""),e[t++]=i;for(let n=c+1;ne+v,t.reset(0)):(p=f.buffer,m=e=>e,t.reset(v));do{if(g=t.next(p)){if(m(g.index)>=C)return h;this.positionInBuffer(e,m(g.index)-_,b);let t=this.getLineFeedCnt(e.piece.bufferIndex,s,b),a=b.line===s.line?b.column-s.column+o:b.column+1,l=a+g[0].length;if(u[h++]=r.createFindMatch(new n.Range(i+t,a,i+t,l),g,d),m(g.index)+g[0].length>=C)return h;if(h>=c)return h}}while(g);return h}findMatchesLineByLine(e,t,i,n){const o=[];let s=0;const a=new r.Searcher(t.wordSeparators,t.regex);let l=this.nodeAt2(e.startLineNumber,e.startColumn);if(null===l)return[];let d=this.nodeAt2(e.endLineNumber,e.endColumn);if(null===d)return[] +;let c=this.positionInBuffer(l.node,l.remainder),h=this.positionInBuffer(d.node,d.remainder);if(l.node===d.node)return this.findMatchesInNode(l.node,a,e.startLineNumber,e.startColumn,c,h,t,i,n,s,o),o;let u=e.startLineNumber,g=l.node;for(;g!==d.node;){let r=this.getLineFeedCnt(g.piece.bufferIndex,c,g.piece.end);if(r>=1){let l=this._buffers[g.piece.bufferIndex].lineStarts,d=this.offsetInBuffer(g.piece.bufferIndex,g.piece.start),h=l[c.line+r],p=u===e.startLineNumber?e.startColumn:1;if((s=this.findMatchesInNode(g,a,u,p,c,this.positionInBuffer(g,h-d),t,i,n,s,o))>=n)return o;u+=r}let d=u===e.startLineNumber?e.startColumn-1:0;if(u===e.endLineNumber){const r=this.getLineContent(u).substring(d,e.endColumn-1);return s=this._findMatchesInLine(t,a,r,e.endLineNumber,d,s,o,i,n),o}if((s=this._findMatchesInLine(t,a,this.getLineContent(u).substr(d),u,d,s,o,i,n))>=n)return o;u++,g=(l=this.nodeAt2(u,1)).node,c=this.positionInBuffer(l.node,l.remainder)}if(u===e.endLineNumber){let r=u===e.startLineNumber?e.startColumn-1:0 +;const l=this.getLineContent(u).substring(r,e.endColumn-1);return s=this._findMatchesInLine(t,a,l,e.endLineNumber,r,s,o,i,n),o}let p=u===e.startLineNumber?e.startColumn:1;return s=this.findMatchesInNode(d.node,a,u,p,c,h,t,i,n,s,o),o}_findMatchesInLine(e,t,i,s,a,l,d,c,h){const u=e.wordSeparators;if(!c&&e.simpleSearch){const t=e.simpleSearch,c=t.length,g=i.length;let p=-c;for(;-1!==(p=i.indexOf(t,p+c));)if((!u||r.isValidMatch(u,i,g,p,c))&&(d[l++]=new o.FindMatch(new n.Range(s,p+1+a,s,p+1+c+a),null),l>=h))return l;return l}let g;t.reset(0);do{if((g=t.next(i))&&(d[l++]=r.createFindMatch(new n.Range(s,g.index+1+a,s,g.index+1+g[0].length+a),g,c),l>=h))return l}while(g);return l}insert(e,i,n=!1){if(this._EOLNormalized=this._EOLNormalized&&n,this._lastVisitedLine.lineNumber=0,this._lastVisitedLine.value="",this.root!==s.SENTINEL){let{node:n,remainder:o,nodeStartOffset:s}=this.nodeAt(e),r=n.piece,a=r.bufferIndex,l=this.positionInBuffer(n,o) +;if(0===n.piece.bufferIndex&&r.end.line===this._lastChangeBufferPos.line&&r.end.column===this._lastChangeBufferPos.column&&s+r.length===e&&i.lengthe){let e=[],t=new c(r.bufferIndex,l,r.end,this.getLineFeedCnt(r.bufferIndex,l,r.end),this.offsetInBuffer(a,r.end)-this.offsetInBuffer(a,l));if(this.shouldCheckCRLF()&&this.endWithCR(i)){if(10===this.nodeCharCodeAt(n,o)){let e={line:t.start.line+1,column:0};t=new c(t.bufferIndex,e,t.end,this.getLineFeedCnt(t.bufferIndex,e,t.end),t.length-1),i+="\n"}}if(this.shouldCheckCRLF()&&this.startWithLF(i)){if(13===this.nodeCharCodeAt(n,o-1)){let t=this.positionInBuffer(n,o-1);this.deleteNodeTail(n,t),i="\r"+i,0===n.piece.length&&e.push(n)}else this.deleteNodeTail(n,l)}else this.deleteNodeTail(n,l);let s=this.createNewPieces(i);t.length>0&&this.rbInsertRight(n,t);let d=n +;for(let e=0;e=0;e--)o=this.rbInsertLeft(o,n[e]);this.validateCRLFWithPrevNode(o),this.deleteNodes(i)}insertContentToNodeRight(e,t){this.adjustCarriageReturnFromNext(e,t)&&(e+="\n") +;let i=this.createNewPieces(e),n=this.rbInsertRight(t,i[0]),o=n;for(let e=1;e=c))break;a=d+1}return i?(i.line=d,i.column=r-h,null):{line:d,column:r-h}}getLineFeedCnt(e,t,i){if(0===i.column)return i.line-t.line;let n=this._buffers[e].lineStarts;if(i.line===n.length-1)return i.line-t.line;let o=n[i.line+1],s=n[i.line]+i.column;if(o>s+1)return i.line-t.line;let r=s-1;return 13===this._buffers[e].buffer.charCodeAt(r)?i.line-t.line+1:i.line-t.line}offsetInBuffer(e,t){return this._buffers[e].lineStarts[t.line]+t.column}deleteNodes(e){for(let t=0;tt.AverageBufferSize){let i=[];for(;e.length>t.AverageBufferSize;){ +const n=e.charCodeAt(t.AverageBufferSize-1);let o;13===n||n>=55296&&n<=56319?(o=e.substring(0,t.AverageBufferSize-1),e=e.substring(t.AverageBufferSize-1)):(o=e.substring(0,t.AverageBufferSize),e=e.substring(t.AverageBufferSize));let s=d(o);i.push(new c(this._buffers.length,{line:0,column:0},{line:s.length-1,column:o.length-s[s.length-1]},s.length-1,o.length)),this._buffers.push(new h(o,s))}let n=d(e);return i.push(new c(this._buffers.length,{line:0,column:0},{line:n.length-1,column:e.length-n[n.length-1]},n.length-1,e.length)),this._buffers.push(new h(e,n)),i}let i=this._buffers[0].buffer.length;const n=d(e,!1);let o=this._lastChangeBufferPos;if(this._buffers[0].lineStarts[this._buffers[0].lineStarts.length-1]===i&&0!==i&&this.startWithLF(e)&&this.endWithCR(this._buffers[0].buffer)){this._lastChangeBufferPos={line:this._lastChangeBufferPos.line,column:this._lastChangeBufferPos.column+1},o=this._lastChangeBufferPos;for(let e=0;e=e-1)i=i.left;else{ +if(i.lf_left+i.piece.lineFeedCnt>e-1){let n=this.getAccumulatedValue(i,e-i.lf_left-2),s=this.getAccumulatedValue(i,e-i.lf_left-1),a=this._buffers[i.piece.bufferIndex].buffer,l=this.offsetInBuffer(i.piece.bufferIndex,i.piece.start);return o+=i.size_left,this._searchCache.set({node:i,nodeStartOffset:o,nodeStartLineNumber:r-(e-1-i.lf_left)}),a.substring(l+n,l+s-t)}if(i.lf_left+i.piece.lineFeedCnt===e-1){let t=this.getAccumulatedValue(i,e-i.lf_left-2),o=this._buffers[i.piece.bufferIndex].buffer,s=this.offsetInBuffer(i.piece.bufferIndex,i.piece.start);n=o.substring(s+t,s+i.piece.length);break}e-=i.lf_left+i.piece.lineFeedCnt,o+=i.size_left+i.piece.length,i=i.right}}for(i=i.next();i!==s.SENTINEL;){let e=this._buffers[i.piece.bufferIndex].buffer;if(i.piece.lineFeedCnt>0){let o=this.getAccumulatedValue(i,0),s=this.offsetInBuffer(i.piece.bufferIndex,i.piece.start);return n+=e.substring(s,s+o-t)}{let t=this.offsetInBuffer(i.piece.bufferIndex,i.piece.start);n+=e.substr(t,i.piece.length)}i=i.next()}return n} +computeBufferMetadata(){let e=this.root,t=1,i=0;for(;e!==s.SENTINEL;)t+=e.lf_left+e.piece.lineFeedCnt,i+=e.size_left+e.piece.length,e=e.right;this._lineCnt=t,this._length=i,this._searchCache.validate(this._length)}getIndexOf(e,t){let i=e.piece,n=this.positionInBuffer(e,t),o=n.line-i.start.line;if(this.offsetInBuffer(i.bufferIndex,i.end)-this.offsetInBuffer(i.bufferIndex,i.start)===t){let t=this.getLineFeedCnt(e.piece.bufferIndex,i.start,n);if(t!==o)return{index:t,remainder:0}}return{index:o,remainder:n.column}}getAccumulatedValue(e,t){if(t<0)return 0;let i=e.piece,n=this._buffers[i.bufferIndex].lineStarts,o=i.start.line+t+1;return o>i.end.line?n[i.end.line]+i.end.column-n[i.start.line]-i.start.column:n[o]-n[i.start.line]-i.start.column}deleteNodeTail(e,t){const i=e.piece,n=i.lineFeedCnt,o=this.offsetInBuffer(i.bufferIndex,i.end),r=t,a=this.offsetInBuffer(i.bufferIndex,r),l=this.getLineFeedCnt(i.bufferIndex,i.start,r),d=l-n,h=a-o,u=i.length+h;e.piece=new c(i.bufferIndex,i.start,r,l,u), +s.updateTreeMetadata(this,e,h,d)}deleteNodeHead(e,t){const i=e.piece,n=i.lineFeedCnt,o=this.offsetInBuffer(i.bufferIndex,i.start),r=t,a=this.getLineFeedCnt(i.bufferIndex,r,i.end),l=a-n,d=o-this.offsetInBuffer(i.bufferIndex,r),h=i.length+d;e.piece=new c(i.bufferIndex,r,i.end,a,h),s.updateTreeMetadata(this,e,d,l)}shrinkNode(e,t,i){const n=e.piece,o=n.start,r=n.end,a=n.length,l=n.lineFeedCnt,d=t,h=this.getLineFeedCnt(n.bufferIndex,n.start,d),u=this.offsetInBuffer(n.bufferIndex,t)-this.offsetInBuffer(n.bufferIndex,o);e.piece=new c(n.bufferIndex,n.start,d,h,u),s.updateTreeMetadata(this,e,u-a,h-l);let g=new c(n.bufferIndex,i,r,this.getLineFeedCnt(n.bufferIndex,i,r),this.offsetInBuffer(n.bufferIndex,r)-this.offsetInBuffer(n.bufferIndex,i)),p=this.rbInsertRight(e,g);this.validateCRLFWithPrevNode(p)}appendToNode(e,t){this.adjustCarriageReturnFromNext(t,e)&&(t+="\n");const i=this.shouldCheckCRLF()&&this.startWithLF(t)&&this.endWithCR(e),n=this._buffers[0].buffer.length;this._buffers[0].buffer+=t;const o=d(t,!1) +;for(let e=0;ee)t=t.left;else{if(t.size_left+t.piece.length>=e){n+=t.size_left;let i={node:t,remainder:e-t.size_left,nodeStartOffset:n};return this._searchCache.set(i),i}e-=t.size_left+t.piece.length, +n+=t.size_left+t.piece.length,t=t.right}return null}nodeAt2(e,t){let i=this.root,n=0;for(;i!==s.SENTINEL;)if(i.left!==s.SENTINEL&&i.lf_left>=e-1)i=i.left;else{if(i.lf_left+i.piece.lineFeedCnt>e-1){let o=this.getAccumulatedValue(i,e-i.lf_left-2),s=this.getAccumulatedValue(i,e-i.lf_left-1);return n+=i.size_left,{node:i,remainder:Math.min(o+t-1,s),nodeStartOffset:n}}if(i.lf_left+i.piece.lineFeedCnt===e-1){let o=this.getAccumulatedValue(i,e-i.lf_left-2);if(o+t-1<=i.piece.length)return{node:i,remainder:o+t-1,nodeStartOffset:n};t-=i.piece.length-o;break}e-=i.lf_left+i.piece.lineFeedCnt,n+=i.size_left+i.piece.length,i=i.right}for(i=i.next();i!==s.SENTINEL;){if(i.piece.lineFeedCnt>0){let e=this.getAccumulatedValue(i,0),n=this.offsetOfNode(i);return{node:i,remainder:Math.min(t-1,e),nodeStartOffset:n}}if(i.piece.length>=t-1){return{node:i,remainder:t-1,nodeStartOffset:this.offsetOfNode(i)}}t-=i.piece.length,i=i.next()}return null}nodeCharCodeAt(e,t){if(e.piece.lineFeedCnt<1)return-1 +;let i=this._buffers[e.piece.bufferIndex],n=this.offsetInBuffer(e.piece.bufferIndex,e.piece.start)+t;return i.buffer.charCodeAt(n)}offsetOfNode(e){if(!e)return 0;let t=e.size_left;for(;e!==this.root;)e.parent.right===e&&(t+=e.parent.size_left+e.parent.piece.length),e=e.parent;return t}shouldCheckCRLF(){return!(this._EOLNormalized&&"\n"===this._EOL)}startWithLF(e){if("string"==typeof e)return 10===e.charCodeAt(0);if(e===s.SENTINEL||0===e.piece.lineFeedCnt)return!1;let t=e.piece,i=this._buffers[t.bufferIndex].lineStarts,n=t.start.line,o=i[n]+t.start.column;return n!==i.length-1&&(!(i[n+1]>o+1)&&10===this._buffers[t.bufferIndex].buffer.charCodeAt(o))}endWithCR(e){return"string"==typeof e?13===e.charCodeAt(e.length-1):e!==s.SENTINEL&&0!==e.piece.lineFeedCnt&&13===this.nodeCharCodeAt(e,e.piece.length-1)}validateCRLFWithPrevNode(e){if(this.shouldCheckCRLF()&&this.startWithLF(e)){let t=e.prev();this.endWithCR(t)&&this.fixCRLF(t,e)}}validateCRLFWithNextNode(e){if(this.shouldCheckCRLF()&&this.endWithCR(e)){ +let t=e.next();this.startWithLF(t)&&this.fixCRLF(e,t)}}fixCRLF(e,t){let i,n=[],o=this._buffers[e.piece.bufferIndex].lineStarts;i=0===e.piece.end.column?{line:e.piece.end.line-1,column:o[e.piece.end.line]-o[e.piece.end.line-1]-1}:{line:e.piece.end.line,column:e.piece.end.column-1};const r=e.piece.length-1,a=e.piece.lineFeedCnt-1;e.piece=new c(e.piece.bufferIndex,e.piece.start,i,a,r),s.updateTreeMetadata(this,e,-1,-1),0===e.piece.length&&n.push(e);let l={line:t.piece.start.line+1,column:0};const d=t.piece.length-1,h=this.getLineFeedCnt(t.piece.bufferIndex,l,t.piece.end);t.piece=new c(t.piece.bufferIndex,l,t.piece.end,h,d),s.updateTreeMetadata(this,t,-1,-1),0===t.piece.length&&n.push(t);let u=this.createNewPieces("\r\n");this.rbInsertRight(e,u[0]);for(let e=0;e/?",t.DEFAULT_WORD_REGEXP=function(e=""){let i="(-?\\d*\\.\\d\\w*)|([^";for(const n of t.USUAL_WORD_SEPARATORS)e.indexOf(n)>=0||(i+="\\"+n);return i+="\\s]+)",new RegExp(i,"g")}(),t.ensureValidWordDefinition=function(e){let i=t.DEFAULT_WORD_REGEXP;if(e&&e instanceof RegExp)if(e.global)i=e;else{let t="g";e.ignoreCase&&(t+="i"),e.multiline&&(t+="m"),e.unicode&&(t+="u"),i=new RegExp(e.source,t)}return i.lastIndex=0,i};const i={maxLen:1e3,windowSize:15,timeBudget:150};function n(e,t,i,n){let o +;for(;o=e.exec(t);){const t=o.index||0;if(t<=i&&e.lastIndex>=i)return o;if(n>0&&t>n)return null}return null}t.getWordAtText=function e(t,o,s,r,a=i){if(s.length>a.maxLen){let i=t-a.maxLen/2;return i<0?(r+=t,i=0):r+=i,e(t,o,s=s.substring(i,t+a.maxLen/2),r,a)}Date.now();const l=t-1-r;let d=-1,c=null;for(let e=1;;e++){Date.now(),a.timeBudget;const t=l-a.windowSize*e;o.lastIndex=Math.max(0,t);const i=n(o,s,l,d);if(!i&&c)break;if(c=i,t<=0)break;d=t}if(c){let e={word:c[0],startColumn:r+1+c.index,endColumn:r+1+c.index+c[0].length};return o.lastIndex=0,e}return null}})),define(t[365],i([0,1]),(function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.FrankensteinMode=void 0;t.FrankensteinMode=class{constructor(e){this._languageIdentifier=e}getId(){return this._languageIdentifier.language}}})),define(t[102],i([0,1]),(function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StandardAutoClosingPairConditional=t.IndentAction=void 0,function(e){e[e.None=0]="None", +e[e.Indent=1]="Indent",e[e.IndentOutdent=2]="IndentOutdent",e[e.Outdent=3]="Outdent"}(t.IndentAction||(t.IndentAction={}));t.StandardAutoClosingPairConditional=class{constructor(e){if(this.open=e.open,this.close=e.close,this._standardTokenMask=0,Array.isArray(e.notIn))for(let t=0,i=e.notIn.length;ti&&(i=t)}return i}if("string"==typeof t)return r?"*"===t?5:t===s?10:0:0;if(t){const{language:e,pattern:a,scheme:l,hasAccessToAllModels:d}=t;if(!r&&!d)return 0;let c=0;if(l)if(l===o.scheme)c=10;else{if("*"!==l)return 0;c=5}if(e)if(e===s)c=10;else{if("*"!==e)return 0 +;c=Math.max(c,5)}if(a){let e;if((e="string"==typeof a?a:Object.assign(Object.assign({},a),{base:n.normalize(a.base)}))!==o.fsPath&&!i.match(e,o.fsPath))return 0;c=10}return c}return 0}})),define(t[367],i([0,1,87]),(function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.computeLinks=t.LinkComputer=t.StateMachine=t.Uint8Matrix=void 0;class n{constructor(e,t,i){const n=new Uint8Array(e*t);for(let o=0,s=e*t;ot&&(t=s),o>i&&(i=o),r>i&&(i=r)}let o=new n(++i,++t,0);for(let t=0,i=e.length;t=this._maxCharCode?0:this._states.get(e,t)}}t.StateMachine=o;let s=null;let r=null;class a{static _createLink(e,t,i,n,o){let s=o-1;do{const i=t.charCodeAt(s) +;if(2!==e.get(i))break;s--}while(s>n);if(n>0){const e=t.charCodeAt(n-1),i=t.charCodeAt(s);(40===e&&41===i||91===e&&93===i||123===e&&125===i)&&s--}return{range:{startLineNumber:i,startColumn:n+1,endLineNumber:i,endColumn:s+2},url:t.substring(n,s+1)}}static computeLinks(e,t=(null===s&&(s=new o([[1,104,2],[1,72,2],[1,102,6],[1,70,6],[2,116,3],[2,84,3],[3,116,4],[3,84,4],[4,112,5],[4,80,5],[5,115,9],[5,83,9],[5,58,10],[6,105,7],[6,73,7],[7,108,8],[7,76,8],[8,101,9],[8,69,9],[9,58,10],[10,47,11],[11,47,12]])),s)){const n=function(){if(null===r){r=new i.CharacterClassifier(0);const e=" \t<>'\"、。。、,.:;‘“〈《「『【〔([{「」}])〕】』」》〉”’`~…";for(let t=0;t0&&e.getLanguageId(a-1)===s;)a--;return new i(e,s,a,r+1,e.getStartOffset(a),e.getEndOffset(r))};class i{constructor(e,t,i,n,o,s){this._actual=e,this.languageId=t,this._firstTokenIndex=i,this._lastTokenIndex=n,this.firstCharOffset=o,this._lastCharOffset=s}getLineContent(){return this._actual.getLineContent().substring(this.firstCharOffset,this._lastCharOffset)}getActualLineContentBefore(e){return this._actual.getLineContent().substring(0,this.firstCharOffset+e)}getTokenCount(){return this._lastTokenIndex-this._firstTokenIndex}findTokenIndexAtOffset(e){return this._actual.findTokenIndexAtOffset(e+this.firstCharOffset)-this._firstTokenIndex}getStandardTokenType(e){return this._actual.getStandardTokenType(e+this._firstTokenIndex)}}t.ScopedLineTokens=i,t.ignoreBracketsInToken=function(e){return 0!=(7&e)}})),define(t[368],i([0,1,102]),(function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CharacterPairSupport=void 0;class n{constructor(e){ +if(e.autoClosingPairs?this._autoClosingPairs=e.autoClosingPairs.map(e=>new i.StandardAutoClosingPairConditional(e)):e.brackets?this._autoClosingPairs=e.brackets.map(e=>new i.StandardAutoClosingPairConditional({open:e[0],close:e[1]})):this._autoClosingPairs=[],e.__electricCharacterSupport&&e.__electricCharacterSupport.docComment){const t=e.__electricCharacterSupport.docComment;this._autoClosingPairs.push(new i.StandardAutoClosingPairConditional({open:t.open,close:t.close||""}))}this._autoCloseBefore="string"==typeof e.autoCloseBefore?e.autoCloseBefore:n.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED,this._surroundingPairs=e.surroundingPairs||this._autoClosingPairs}getAutoClosingPairs(){return this._autoClosingPairs}getAutoCloseBeforeSet(){return this._autoCloseBefore}static shouldAutoClosePair(e,t,i){if(0===t.getTokenCount())return!0;const n=t.findTokenIndexAtOffset(i-2),o=t.getStandardTokenType(n);return e.isOK(o)}getSurroundingPairs(){return this._surroundingPairs}}t.CharacterPairSupport=n, +n.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED=";:.,=}])> \n\t"})),define(t[369],i([0,1]),(function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.IndentRulesSupport=void 0;t.IndentRulesSupport=class{constructor(e){this._indentationRules=e}shouldIncrease(e){return!!(this._indentationRules&&this._indentationRules.increaseIndentPattern&&this._indentationRules.increaseIndentPattern.test(e))}shouldDecrease(e){return!!(this._indentationRules&&this._indentationRules.decreaseIndentPattern&&this._indentationRules.decreaseIndentPattern.test(e))}shouldIndentNextLine(e){return!!(this._indentationRules&&this._indentationRules.indentNextLinePattern&&this._indentationRules.indentNextLinePattern.test(e))}shouldIgnore(e){return!!(this._indentationRules&&this._indentationRules.unIndentedLinePattern&&this._indentationRules.unIndentedLinePattern.test(e))}getIndentMetadata(e){let t=0;return this.shouldIncrease(e)&&(t+=1),this.shouldDecrease(e)&&(t+=2),this.shouldIndentNextLine(e)&&(t+=4), +this.shouldIgnore(e)&&(t+=8),t}}})),define(t[370],i([0,1]),(function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BasicInplaceReplace=void 0;class i{constructor(){this._defaultValueSet=[["true","false"],["True","False"],["Private","Public","Friend","ReadOnly","Partial","Protected","WriteOnly"],["public","protected","private"]]}navigateValueSet(e,t,i,n,o){if(e&&t){let i=this.doNavigateValueSet(t,o);if(i)return{range:e,value:i}}if(i&&n){let e=this.doNavigateValueSet(n,o);if(e)return{range:i,value:e}}return null}doNavigateValueSet(e,t){let i=this.numberReplace(e,t);return null!==i?i:this.textReplace(e,t)}numberReplace(e,t){let i=Math.pow(10,e.length-(e.lastIndexOf(".")+1)),n=Number(e),o=parseFloat(e);return isNaN(n)||isNaN(o)||n!==o?null:0!==n||t?(n=Math.floor(n*i),n+=t?i:-i,String(n/i)):null}textReplace(e,t){return this.valueSetsReplace(this._defaultValueSet,e,t)}valueSetsReplace(e,t,i){let n=null;for(let o=0,s=e.length;null===n&&o=0?((n+=i?1:-1)<0?n=e.length-1:n%=e.length,e[n]):null}}t.BasicInplaceReplace=i,i.INSTANCE=new i})),define(t[371],i([0,1,12,8,102]),(function(e,t,i,n,o){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.OnEnterSupport=void 0;class s{constructor(e){(e=e||{}).brackets=e.brackets||[["(",")"],["{","}"],["[","]"]],this._brackets=[],e.brackets.forEach(e=>{const t=s._createOpenBracketRegExp(e[0]),i=s._createCloseBracketRegExp(e[1]);t&&i&&this._brackets.push({open:e[0],openRegExp:t,close:e[1],closeRegExp:i})}),this._regExpRules=e.onEnterRules||[]}onEnter(e,t,i,n){if(e>=3)for(let e=0,o=this._regExpRules.length;e!e.reg||e.reg.test(e.text)))return o.action}if(e>=2&&i.length>0&&n.length>0)for(let e=0,t=this._brackets.length;e=2&&i.length>0)for(let e=0,t=this._brackets.length;e=0&&n.push(t);for(const t of s.close)t.indexOf(e)>=0&&n.push(t)}}function a(e,t){return e.length-t.length}function l(e){if(e.length<=1)return e;const t=[],i=new Set;for(const n of e)i.has(n)||(t.push(n),i.add(n));return t}function d(e){const t=/^[\w ]+$/.test(e);return e=i.escapeRegExpCharacters(e),t?`\\b${e}\\b`:e}function c(e){let t=`(${e.map(d).join(")|(")})`;return i.createRegExp(t,!0)}t.RichEditBrackets=class{constructor(e,t){const i=function(e){const t=e.length;e=e.map(e=>[e[0].toLowerCase(),e[1].toLowerCase()]);const i=[];for(let e=0;e{const[i,n]=e,[o,s]=t;return i===o||i===s||n===o||n===s},o=(e,n)=>{const o=Math.min(e,n),s=Math.max(e,n);for(let e=0;e0&&s.push({open:o,close:r})}return s}(t);this.brackets=i.map((t,n)=>new s(e,n,t.open,t.close,function(e,t,i,n){let o=[];o=(o=o.concat(e)).concat(t);for(let e=0,t=o.length;e=0;n--)t[i++]=e.charCodeAt(n);return n.getPlatformTextDecoder().decode(t)}{let t=[],i=0;for(let n=e.length-1;n>=0;n--)t[i++]=e.charAt(n);return t.join("")}}(e=i)),t}}();t.BracketsUtils=class{static _findPrevBracketInText(e,t,i,n){let s=i.match(e);if(!s)return null;let r=i.length-(s.index||0),a=s[0].length,l=n+r;return new o.Range(t,l-a+1,t,l+1)}static findPrevBracketInRange(e,t,i,n,o){const s=h(i).substring(i.length-o,i.length-n);return this._findPrevBracketInText(e,t,s,n)}static findNextBracketInText(e,t,i,n){let s=i.match(e);if(!s)return null +;let r=s.index||0,a=s[0].length;if(0===a)return null;let l=n+r;return new o.Range(t,l+1,t,l+1+a)}static findNextBracketInRange(e,t,i,n,o){const s=i.substring(n,o);return this.findNextBracketInText(e,t,s,n)}}})),define(t[372],i([0,1,159,160]),(function(e,t,i,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BracketElectricCharacterSupport=void 0;t.BracketElectricCharacterSupport=class{constructor(e){this._richEditBrackets=e}getElectricCharacters(){let e=[];if(this._richEditBrackets)for(const t of this._richEditBrackets.brackets)for(const i of t.close){const t=i.charAt(i.length-1);e.push(t)}return e=e.filter((e,t,i)=>i.indexOf(e)===t)}onElectricCharacter(e,t,o){if(!this._richEditBrackets||0===this._richEditBrackets.brackets.length)return null;const s=t.findTokenIndexAtOffset(o-1);if(i.ignoreBracketsInToken(t.getStandardTokenType(s)))return null;const r=this._richEditBrackets.reversedRegex,a=t.getLineContent().substring(0,o-1)+e,l=n.BracketsUtils.findPrevBracketInRange(r,1,a,0,a.length) +;if(!l)return null;const d=a.substring(l.startColumn-1,l.endColumn-1).toLowerCase();if(this._richEditBrackets.textIsOpenBracket[d])return null;const c=t.getActualLineContentBefore(l.startColumn-1);return/^\s*$/.test(c)?{matchOpenBracket:d}:null}}})),define(t[42],i([0,1,4,2,8,122,102,159,368,372,369,371,160]),(function(e,t,i,n,o,s,r,a,l,d,c,h,u){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LanguageConfigurationRegistry=t.LanguageConfigurationRegistryImpl=t.LanguageConfigurationChangeEvent=t.RichEditSupport=void 0;class g{constructor(e,t,i){this._languageIdentifier=e,this._brackets=null,this._electricCharacter=null;let n=null;t&&(n=t._conf),this._conf=g._mergeConf(n,i),this._onEnterSupport=this._conf.brackets||this._conf.indentationRules||this._conf.onEnterRules?new h.OnEnterSupport(this._conf):null,this.comments=g._handleComments(this._conf),this.characterPair=new l.CharacterPairSupport(this._conf),this.wordDefinition=this._conf.wordPattern||s.DEFAULT_WORD_REGEXP, +this.indentationRules=this._conf.indentationRules,this._conf.indentationRules?this.indentRulesSupport=new c.IndentRulesSupport(this._conf.indentationRules):this.indentRulesSupport=null,this.foldingRules=this._conf.folding||{}}get brackets(){return!this._brackets&&this._conf.brackets&&(this._brackets=new u.RichEditBrackets(this._languageIdentifier,this._conf.brackets)),this._brackets}get electricCharacter(){return this._electricCharacter||(this._electricCharacter=new d.BracketElectricCharacterSupport(this.brackets)),this._electricCharacter}onEnter(e,t,i,n){return this._onEnterSupport?this._onEnterSupport.onEnter(e,t,i,n):null}static _mergeConf(e,t){return{comments:e?t.comments||e.comments:t.comments,brackets:e?t.brackets||e.brackets:t.brackets,wordPattern:e?t.wordPattern||e.wordPattern:t.wordPattern,indentationRules:e?t.indentationRules||e.indentationRules:t.indentationRules,onEnterRules:e?t.onEnterRules||e.onEnterRules:t.onEnterRules, +autoClosingPairs:e?t.autoClosingPairs||e.autoClosingPairs:t.autoClosingPairs,surroundingPairs:e?t.surroundingPairs||e.surroundingPairs:t.surroundingPairs,autoCloseBefore:e?t.autoCloseBefore||e.autoCloseBefore:t.autoCloseBefore,folding:e?t.folding||e.folding:t.folding,__electricCharacterSupport:e?t.__electricCharacterSupport||e.__electricCharacterSupport:t.__electricCharacterSupport}}static _handleComments(e){let t=e.comments;if(!t)return null;let i={};if(t.lineComment&&(i.lineCommentToken=t.lineComment),t.blockComment){let[e,n]=t.blockComment;i.blockCommentStartToken=e,i.blockCommentEndToken=n}return i}}t.RichEditSupport=g;class p{constructor(e){this.languageIdentifier=e}}t.LanguageConfigurationChangeEvent=p;class m{constructor(){this._entries=new Map,this._onDidChange=new i.Emitter,this.onDidChange=this._onDidChange.event}register(e,t){let i=this._getRichEditSupport(e.id),o=new g(e,i,t);return this._entries.set(e.id,o),this._onDidChange.fire(new p(e)),n.toDisposable(()=>{ +this._entries.get(e.id)===o&&(this._entries.set(e.id,i),this._onDidChange.fire(new p(e)))})}_getRichEditSupport(e){return this._entries.get(e)}getIndentationRules(e){const t=this._entries.get(e);return t&&t.indentationRules||null}_getElectricCharacterSupport(e){let t=this._getRichEditSupport(e);return t&&t.electricCharacter||null}getElectricCharacters(e){let t=this._getElectricCharacterSupport(e);return t?t.getElectricCharacters():[]}onElectricCharacter(e,t,i){let n=a.createScopedLineTokens(t,i-1),o=this._getElectricCharacterSupport(n.languageId);return o?o.onElectricCharacter(e,n,i-n.firstCharOffset):null}getComments(e){let t=this._getRichEditSupport(e);return t&&t.comments||null}_getCharacterPairSupport(e){let t=this._getRichEditSupport(e);return t&&t.characterPair||null}getAutoClosingPairs(e){let t=this._getCharacterPairSupport(e);return t?t.getAutoClosingPairs():[]}getAutoCloseBeforeSet(e){let t=this._getCharacterPairSupport(e) +;return t?t.getAutoCloseBeforeSet():l.CharacterPairSupport.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED}getSurroundingPairs(e){let t=this._getCharacterPairSupport(e);return t?t.getSurroundingPairs():[]}shouldAutoClosePair(e,t,i){const n=a.createScopedLineTokens(t,i-1);return l.CharacterPairSupport.shouldAutoClosePair(e,n,i-n.firstCharOffset)}getWordDefinition(e){let t=this._getRichEditSupport(e);return t?s.ensureValidWordDefinition(t.wordDefinition||null):s.ensureValidWordDefinition(null)}getFoldingRules(e){let t=this._getRichEditSupport(e);return t?t.foldingRules:{}}getIndentRulesSupport(e){let t=this._getRichEditSupport(e);return t&&t.indentRulesSupport||null}getPrecedingValidLine(e,t,i){let n=e.getLanguageIdAtPosition(t,0);if(t>1){let o,s=-1;for(o=t-1;o>=1;o--){if(e.getLanguageIdAtPosition(o,0)!==n)return s;let t=e.getLineContent(o);if(!i.shouldIgnore(t)&&!/^\s+$/.test(t)&&""!==t)return o;s=o}}return-1}getInheritIndentForLine(e,t,i,n=!0){if(e<4)return null +;const s=this.getIndentRulesSupport(t.getLanguageIdentifier().id);if(!s)return null;if(i<=1)return{indentation:"",action:null};const a=this.getPrecedingValidLine(t,i,s);if(a<0)return null;if(a<1)return{indentation:"",action:null};const l=t.getLineContent(a);if(s.shouldIncrease(l)||s.shouldIndentNextLine(l))return{indentation:o.getLeadingWhitespace(l),action:r.IndentAction.Indent,line:a};if(s.shouldDecrease(l))return{indentation:o.getLeadingWhitespace(l),action:null,line:a};{if(1===a)return{indentation:o.getLeadingWhitespace(t.getLineContent(a)),action:null,line:a};const e=a-1,i=s.getIndentMetadata(t.getLineContent(e));if(!(3&i)&&4&i){let i=0;for(let n=e-1;n>0;n--)if(!s.shouldIndentNextLine(t.getLineContent(n))){i=n;break}return{indentation:o.getLeadingWhitespace(t.getLineContent(i+1)),action:null,line:i+1}}if(n)return{indentation:o.getLeadingWhitespace(t.getLineContent(a)),action:null,line:a};for(let e=a;e>0;e--){const i=t.getLineContent(e);if(s.shouldIncrease(i))return{indentation:o.getLeadingWhitespace(i), +action:r.IndentAction.Indent,line:e};if(s.shouldIndentNextLine(i)){let i=0;for(let n=e-1;n>0;n--)if(!s.shouldIndentNextLine(t.getLineContent(e))){i=n;break}return{indentation:o.getLeadingWhitespace(t.getLineContent(i+1)),action:null,line:i+1}}if(s.shouldDecrease(i))return{indentation:o.getLeadingWhitespace(i),action:null,line:e}}return{indentation:o.getLeadingWhitespace(t.getLineContent(1)),action:null,line:1}}}getGoodIndentForLine(e,t,i,n,s){if(e<4)return null;const a=this._getRichEditSupport(i);if(!a)return null;const l=this.getIndentRulesSupport(i);if(!l)return null;const d=this.getInheritIndentForLine(e,t,n),c=t.getLineContent(n);if(d){const i=d.line;if(void 0!==i){const n=a.onEnter(e,"",t.getLineContent(i),"");if(n){let e=o.getLeadingWhitespace(t.getLineContent(i));return n.removeText&&(e=e.substring(0,e.length-n.removeText)),n.indentAction===r.IndentAction.Indent||n.indentAction===r.IndentAction.IndentOutdent?e=s.shiftIndent(e):n.indentAction===r.IndentAction.Outdent&&(e=s.unshiftIndent(e)), +l.shouldDecrease(c)&&(e=s.unshiftIndent(e)),n.appendText&&(e+=n.appendText),o.getLeadingWhitespace(e)}}return l.shouldDecrease(c)?d.action===r.IndentAction.Indent?d.indentation:s.unshiftIndent(d.indentation):d.action===r.IndentAction.Indent?s.shiftIndent(d.indentation):d.indentation}return null}getIndentForEnter(e,t,i,n){if(e<4)return null;t.forceTokenization(i.startLineNumber);const s=t.getLineTokens(i.startLineNumber),l=a.createScopedLineTokens(s,i.startColumn-1),d=l.getLineContent();let c,h,u=!1;if(l.firstCharOffset>0&&s.getLanguageId(0)!==l.languageId?(u=!0,c=d.substr(0,i.startColumn-1-l.firstCharOffset)):c=s.getLineContent().substring(0,i.startColumn-1),i.isEmpty())h=d.substr(i.startColumn-1-l.firstCharOffset);else{h=this.getScopedLineTokens(t,i.endLineNumber,i.endColumn).getLineContent().substr(i.endColumn-1-l.firstCharOffset)}const g=this.getIndentRulesSupport(l.languageId);if(!g)return null;const p=c,m=o.getLeadingWhitespace(c),f={getLineTokens:e=>t.getLineTokens(e), +getLanguageIdentifier:()=>t.getLanguageIdentifier(),getLanguageIdAtPosition:(e,i)=>t.getLanguageIdAtPosition(e,i),getLineContent:e=>e===i.startLineNumber?p:t.getLineContent(e)},_=o.getLeadingWhitespace(s.getLineContent()),v=this.getInheritIndentForLine(e,f,i.startLineNumber+1);if(!v){const e=u?_:m;return{beforeEnter:e,afterEnter:e}}let C=u?_:v.indentation;return v.action===r.IndentAction.Indent&&(C=n.shiftIndent(C)),g.shouldDecrease(h)&&(C=n.unshiftIndent(C)),{beforeEnter:u?_:m,afterEnter:C}}getIndentActionForType(e,t,i,n,o){if(e<4)return null;const s=this.getScopedLineTokens(t,i.startLineNumber,i.startColumn),a=this.getIndentRulesSupport(s.languageId);if(!a)return null;const l=s.getLineContent(),d=l.substr(0,i.startColumn-1-s.firstCharOffset);let c;if(i.isEmpty())c=l.substr(i.startColumn-1-s.firstCharOffset);else{c=this.getScopedLineTokens(t,i.endLineNumber,i.endColumn).getLineContent().substr(i.endColumn-1-s.firstCharOffset)}if(!a.shouldDecrease(d+c)&&a.shouldDecrease(d+n+c)){ +const n=this.getInheritIndentForLine(e,t,i.startLineNumber,!1);if(!n)return null;let s=n.indentation;return n.action!==r.IndentAction.Indent&&(s=o.unshiftIndent(s)),s}return null}getIndentMetadata(e,t){const i=this.getIndentRulesSupport(e.getLanguageIdentifier().id);return i?t<1||t>e.getLineCount()?null:i.getIndentMetadata(e.getLineContent(t)):null}getEnterAction(e,t,i){const n=this.getScopedLineTokens(t,i.startLineNumber,i.startColumn),o=this._getRichEditSupport(n.languageId);if(!o)return null;const s=n.getLineContent(),a=s.substr(0,i.startColumn-1-n.firstCharOffset);let l;if(i.isEmpty())l=s.substr(i.startColumn-1-n.firstCharOffset);else{l=this.getScopedLineTokens(t,i.endLineNumber,i.endColumn).getLineContent().substr(i.endColumn-1-n.firstCharOffset)}let d="";if(i.startLineNumber>1&&0===n.firstCharOffset){const e=this.getScopedLineTokens(t,i.startLineNumber-1);e.languageId===n.languageId&&(d=e.getLineContent())}const c=o.onEnter(e,d,a,l);if(!c)return null;const h=c.indentAction;let u=c.appendText +;const g=c.removeText||0;u||(u=h===r.IndentAction.Indent||h===r.IndentAction.IndentOutdent?"\t":"");let p=this.getIndentationAtPosition(t,i.startLineNumber,i.startColumn);return g&&(p=p.substring(0,p.length-g)),{indentAction:h,appendText:u,removeText:g,indentation:p}}getIndentationAtPosition(e,t,i){const n=e.getLineContent(t);let s=o.getLeadingWhitespace(n);return s.length>i-1&&(s=s.substring(0,i-1)),s}getScopedLineTokens(e,t,i){e.forceTokenization(t);const n=e.getLineTokens(t),o=void 0===i?e.getLineMaxColumn(t)-1:i-1;return a.createScopedLineTokens(n,o)}getBracketsSupport(e){const t=this._getRichEditSupport(e);return t&&t.brackets||null}}t.LanguageConfigurationRegistryImpl=m,t.LanguageConfigurationRegistry=new m})),define(t[373],i([0,1,29]),(function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.generateTokensCSSForColorMap=t.ThemeTrieElement=t.ThemeTrieElementRule=t.strcmp=t.toStandardTokenType=t.TokenTheme=t.ColorMap=t.parseTokenTheme=t.ParsedTokenThemeRule=void 0;class n{ +constructor(e,t,i,n,o){this.token=e,this.index=t,this.fontStyle=i,this.foreground=n,this.background=o}}function o(e){if(!e||!Array.isArray(e))return[];let t=[],i=0;for(let o=0,s=e.length;o{let i=c(e.token,t.token);return 0!==i?i:e.index-t.index});let i=0,n="000000",o="ffffff";for(;e.length>=1&&""===e[0].token;){let t=e.shift();-1!==t.fontStyle&&(i=t.fontStyle),null!==t.foreground&&(n=t.foreground),null!==t.background&&(o=t.background)}let s=new r;for(let e of t)s.getId(e);let l=s.getId(n),d=s.getId(o),g=new h(i,l,d),p=new u(g);for(let t=0,i=e.length;t>>0,this._cache.set(t,i)}return(i|e<<0)>>>0}}t.TokenTheme=a +;const l=/\b(comment|string|regex|regexp)\b/;function d(e){let t=e.match(l);if(!t)return 0;switch(t[1]){case"comment":return 1;case"string":return 2;case"regex":case"regexp":return 4}throw new Error("Unexpected match for standard token type!")}function c(e,t){return et?1:0}t.toStandardTokenType=d,t.strcmp=c;class h{constructor(e,t,i){this._fontStyle=e,this._foreground=t,this._background=i,this.metadata=(this._fontStyle<<11|this._foreground<<14|this._background<<23)>>>0}clone(){return new h(this._fontStyle,this._foreground,this._background)}acceptOverwrite(e,t,i){-1!==e&&(this._fontStyle=e),0!==t&&(this._foreground=t),0!==i&&(this._background=i),this.metadata=(this._fontStyle<<11|this._foreground<<14|this._background<<23)>>>0}}t.ThemeTrieElementRule=h;class u{constructor(e){this._mainRule=e,this._children=new Map}match(e){if(""===e)return this._mainRule;let t,i,n=e.indexOf(".");-1===n?(t=e,i=""):(t=e.substring(0,n),i=e.substring(n+1));let o=this._children.get(t) +;return void 0!==o?o.match(i):this._mainRule}insert(e,t,i,n){if(""===e)return void this._mainRule.acceptOverwrite(t,i,n);let o,s,r=e.indexOf(".");-1===r?(o=e,s=""):(o=e.substring(0,r),s=e.substring(r+1));let a=this._children.get(o);void 0===a&&(a=new u(this._mainRule.clone()),this._children.set(o,a)),a.insert(s,t,i,n)}}t.ThemeTrieElement=u,t.generateTokensCSSForColorMap=function(e){let t=[];for(let i=1,n=e.length;i{this._map.get(e)===t&&(this._map.delete(e),this.fire([e]))})}registerPromise(e,t){let i=null,o=!1;return this._promises.set(e,t.then(t=>{this._promises.delete(e),!o&&t&&(i=this.register(e,t))})),n.toDisposable(()=>{o=!0,i&&i.dispose()})}getPromise(e){const t=this.get(e);if(t)return Promise.resolve(t);const i=this._promises.get(e);return i?i.then(t=>this.get(e)):null}get(e){return this._map.get(e)||null}setColorMap(e){this._colorMap=e,this._onDidChange.fire({changedLanguages:Array.from(this._map.keys()),changedColorMap:!0})}getColorMap(){return this._colorMap}getDefaultBackground(){return this._colorMap&&this._colorMap.length>2?this._colorMap[2]:null}}})),define(t[161],i([0,1]),(function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}), +t.WrappingIndent=t.TrackedRangeStickiness=t.TextEditorCursorStyle=t.TextEditorCursorBlinkingStyle=t.SymbolTag=t.SymbolKind=t.SignatureHelpTriggerKind=t.SelectionDirection=t.ScrollbarVisibility=t.ScrollType=t.RenderMinimap=t.RenderLineNumbersType=t.OverviewRulerLane=t.OverlayWidgetPositionPreference=t.MouseTargetType=t.MinimapPosition=t.MarkerTag=t.MarkerSeverity=t.KeyCode=t.IndentAction=t.EndOfLineSequence=t.EndOfLinePreference=t.EditorOption=t.EditorAutoIndentStrategy=t.DocumentHighlightKind=t.DefaultEndOfLine=t.CursorChangeReason=t.ContentWidgetPositionPreference=t.CompletionTriggerKind=t.CompletionItemTag=t.CompletionItemKind=t.CompletionItemInsertTextRule=t.AccessibilitySupport=void 0,function(e){e[e.Unknown=0]="Unknown",e[e.Disabled=1]="Disabled",e[e.Enabled=2]="Enabled"}(t.AccessibilitySupport||(t.AccessibilitySupport={})),function(e){e[e.KeepWhitespace=1]="KeepWhitespace",e[e.InsertAsSnippet=4]="InsertAsSnippet"}(t.CompletionItemInsertTextRule||(t.CompletionItemInsertTextRule={})),function(e){ +e[e.Method=0]="Method",e[e.Function=1]="Function",e[e.Constructor=2]="Constructor",e[e.Field=3]="Field",e[e.Variable=4]="Variable",e[e.Class=5]="Class",e[e.Struct=6]="Struct",e[e.Interface=7]="Interface",e[e.Module=8]="Module",e[e.Property=9]="Property",e[e.Event=10]="Event",e[e.Operator=11]="Operator",e[e.Unit=12]="Unit",e[e.Value=13]="Value",e[e.Constant=14]="Constant",e[e.Enum=15]="Enum",e[e.EnumMember=16]="EnumMember",e[e.Keyword=17]="Keyword",e[e.Text=18]="Text",e[e.Color=19]="Color",e[e.File=20]="File",e[e.Reference=21]="Reference",e[e.Customcolor=22]="Customcolor",e[e.Folder=23]="Folder",e[e.TypeParameter=24]="TypeParameter",e[e.User=25]="User",e[e.Issue=26]="Issue",e[e.Snippet=27]="Snippet"}(t.CompletionItemKind||(t.CompletionItemKind={})),function(e){e[e.Deprecated=1]="Deprecated"}(t.CompletionItemTag||(t.CompletionItemTag={})),function(e){e[e.Invoke=0]="Invoke",e[e.TriggerCharacter=1]="TriggerCharacter",e[e.TriggerForIncompleteCompletions=2]="TriggerForIncompleteCompletions" +}(t.CompletionTriggerKind||(t.CompletionTriggerKind={})),function(e){e[e.EXACT=0]="EXACT",e[e.ABOVE=1]="ABOVE",e[e.BELOW=2]="BELOW"}(t.ContentWidgetPositionPreference||(t.ContentWidgetPositionPreference={})),function(e){e[e.NotSet=0]="NotSet",e[e.ContentFlush=1]="ContentFlush",e[e.RecoverFromMarkers=2]="RecoverFromMarkers",e[e.Explicit=3]="Explicit",e[e.Paste=4]="Paste",e[e.Undo=5]="Undo",e[e.Redo=6]="Redo"}(t.CursorChangeReason||(t.CursorChangeReason={})),function(e){e[e.LF=1]="LF",e[e.CRLF=2]="CRLF"}(t.DefaultEndOfLine||(t.DefaultEndOfLine={})),function(e){e[e.Text=0]="Text",e[e.Read=1]="Read",e[e.Write=2]="Write"}(t.DocumentHighlightKind||(t.DocumentHighlightKind={})),function(e){e[e.None=0]="None",e[e.Keep=1]="Keep",e[e.Brackets=2]="Brackets",e[e.Advanced=3]="Advanced",e[e.Full=4]="Full"}(t.EditorAutoIndentStrategy||(t.EditorAutoIndentStrategy={})),function(e){e[e.acceptSuggestionOnCommitCharacter=0]="acceptSuggestionOnCommitCharacter",e[e.acceptSuggestionOnEnter=1]="acceptSuggestionOnEnter", +e[e.accessibilitySupport=2]="accessibilitySupport",e[e.accessibilityPageSize=3]="accessibilityPageSize",e[e.ariaLabel=4]="ariaLabel",e[e.autoClosingBrackets=5]="autoClosingBrackets",e[e.autoClosingOvertype=6]="autoClosingOvertype",e[e.autoClosingQuotes=7]="autoClosingQuotes",e[e.autoIndent=8]="autoIndent",e[e.automaticLayout=9]="automaticLayout",e[e.autoSurround=10]="autoSurround",e[e.codeLens=11]="codeLens",e[e.colorDecorators=12]="colorDecorators",e[e.columnSelection=13]="columnSelection",e[e.comments=14]="comments",e[e.contextmenu=15]="contextmenu",e[e.copyWithSyntaxHighlighting=16]="copyWithSyntaxHighlighting",e[e.cursorBlinking=17]="cursorBlinking",e[e.cursorSmoothCaretAnimation=18]="cursorSmoothCaretAnimation",e[e.cursorStyle=19]="cursorStyle",e[e.cursorSurroundingLines=20]="cursorSurroundingLines",e[e.cursorSurroundingLinesStyle=21]="cursorSurroundingLinesStyle",e[e.cursorWidth=22]="cursorWidth",e[e.disableLayerHinting=23]="disableLayerHinting", +e[e.disableMonospaceOptimizations=24]="disableMonospaceOptimizations",e[e.dragAndDrop=25]="dragAndDrop",e[e.emptySelectionClipboard=26]="emptySelectionClipboard",e[e.extraEditorClassName=27]="extraEditorClassName",e[e.fastScrollSensitivity=28]="fastScrollSensitivity",e[e.find=29]="find",e[e.fixedOverflowWidgets=30]="fixedOverflowWidgets",e[e.folding=31]="folding",e[e.foldingStrategy=32]="foldingStrategy",e[e.foldingHighlight=33]="foldingHighlight",e[e.unfoldOnClickAfterEndOfLine=34]="unfoldOnClickAfterEndOfLine",e[e.fontFamily=35]="fontFamily",e[e.fontInfo=36]="fontInfo",e[e.fontLigatures=37]="fontLigatures",e[e.fontSize=38]="fontSize",e[e.fontWeight=39]="fontWeight",e[e.formatOnPaste=40]="formatOnPaste",e[e.formatOnType=41]="formatOnType",e[e.glyphMargin=42]="glyphMargin",e[e.gotoLocation=43]="gotoLocation",e[e.hideCursorInOverviewRuler=44]="hideCursorInOverviewRuler",e[e.highlightActiveIndentGuide=45]="highlightActiveIndentGuide",e[e.hover=46]="hover",e[e.inDiffEditor=47]="inDiffEditor", +e[e.letterSpacing=48]="letterSpacing",e[e.lightbulb=49]="lightbulb",e[e.lineDecorationsWidth=50]="lineDecorationsWidth",e[e.lineHeight=51]="lineHeight",e[e.lineNumbers=52]="lineNumbers",e[e.lineNumbersMinChars=53]="lineNumbersMinChars",e[e.links=54]="links",e[e.matchBrackets=55]="matchBrackets",e[e.minimap=56]="minimap",e[e.mouseStyle=57]="mouseStyle",e[e.mouseWheelScrollSensitivity=58]="mouseWheelScrollSensitivity",e[e.mouseWheelZoom=59]="mouseWheelZoom",e[e.multiCursorMergeOverlapping=60]="multiCursorMergeOverlapping",e[e.multiCursorModifier=61]="multiCursorModifier",e[e.multiCursorPaste=62]="multiCursorPaste",e[e.occurrencesHighlight=63]="occurrencesHighlight",e[e.overviewRulerBorder=64]="overviewRulerBorder",e[e.overviewRulerLanes=65]="overviewRulerLanes",e[e.padding=66]="padding",e[e.parameterHints=67]="parameterHints",e[e.peekWidgetDefaultFocus=68]="peekWidgetDefaultFocus",e[e.definitionLinkOpensInPeek=69]="definitionLinkOpensInPeek",e[e.quickSuggestions=70]="quickSuggestions", +e[e.quickSuggestionsDelay=71]="quickSuggestionsDelay",e[e.readOnly=72]="readOnly",e[e.renameOnType=73]="renameOnType",e[e.renderControlCharacters=74]="renderControlCharacters",e[e.renderIndentGuides=75]="renderIndentGuides",e[e.renderFinalNewline=76]="renderFinalNewline",e[e.renderLineHighlight=77]="renderLineHighlight",e[e.renderLineHighlightOnlyWhenFocus=78]="renderLineHighlightOnlyWhenFocus",e[e.renderValidationDecorations=79]="renderValidationDecorations",e[e.renderWhitespace=80]="renderWhitespace",e[e.revealHorizontalRightPadding=81]="revealHorizontalRightPadding",e[e.roundedSelection=82]="roundedSelection",e[e.rulers=83]="rulers",e[e.scrollbar=84]="scrollbar",e[e.scrollBeyondLastColumn=85]="scrollBeyondLastColumn",e[e.scrollBeyondLastLine=86]="scrollBeyondLastLine",e[e.scrollPredominantAxis=87]="scrollPredominantAxis",e[e.selectionClipboard=88]="selectionClipboard",e[e.selectionHighlight=89]="selectionHighlight",e[e.selectOnLineNumbers=90]="selectOnLineNumbers", +e[e.showFoldingControls=91]="showFoldingControls",e[e.showUnused=92]="showUnused",e[e.snippetSuggestions=93]="snippetSuggestions",e[e.smoothScrolling=94]="smoothScrolling",e[e.stopRenderingLineAfter=95]="stopRenderingLineAfter",e[e.suggest=96]="suggest",e[e.suggestFontSize=97]="suggestFontSize",e[e.suggestLineHeight=98]="suggestLineHeight",e[e.suggestOnTriggerCharacters=99]="suggestOnTriggerCharacters",e[e.suggestSelection=100]="suggestSelection",e[e.tabCompletion=101]="tabCompletion",e[e.tabIndex=102]="tabIndex",e[e.unusualLineTerminators=103]="unusualLineTerminators",e[e.useTabStops=104]="useTabStops",e[e.wordSeparators=105]="wordSeparators",e[e.wordWrap=106]="wordWrap",e[e.wordWrapBreakAfterCharacters=107]="wordWrapBreakAfterCharacters",e[e.wordWrapBreakBeforeCharacters=108]="wordWrapBreakBeforeCharacters",e[e.wordWrapColumn=109]="wordWrapColumn",e[e.wordWrapMinified=110]="wordWrapMinified",e[e.wrappingIndent=111]="wrappingIndent",e[e.wrappingStrategy=112]="wrappingStrategy", +e[e.showDeprecated=113]="showDeprecated",e[e.editorClassName=114]="editorClassName",e[e.pixelRatio=115]="pixelRatio",e[e.tabFocusMode=116]="tabFocusMode",e[e.layoutInfo=117]="layoutInfo",e[e.wrappingInfo=118]="wrappingInfo"}(t.EditorOption||(t.EditorOption={})),function(e){e[e.TextDefined=0]="TextDefined",e[e.LF=1]="LF",e[e.CRLF=2]="CRLF"}(t.EndOfLinePreference||(t.EndOfLinePreference={})),function(e){e[e.LF=0]="LF",e[e.CRLF=1]="CRLF"}(t.EndOfLineSequence||(t.EndOfLineSequence={})),function(e){e[e.None=0]="None",e[e.Indent=1]="Indent",e[e.IndentOutdent=2]="IndentOutdent",e[e.Outdent=3]="Outdent"}(t.IndentAction||(t.IndentAction={})),function(e){e[e.Unknown=0]="Unknown",e[e.Backspace=1]="Backspace",e[e.Tab=2]="Tab",e[e.Enter=3]="Enter",e[e.Shift=4]="Shift",e[e.Ctrl=5]="Ctrl",e[e.Alt=6]="Alt",e[e.PauseBreak=7]="PauseBreak",e[e.CapsLock=8]="CapsLock",e[e.Escape=9]="Escape",e[e.Space=10]="Space",e[e.PageUp=11]="PageUp",e[e.PageDown=12]="PageDown",e[e.End=13]="End",e[e.Home=14]="Home", +e[e.LeftArrow=15]="LeftArrow",e[e.UpArrow=16]="UpArrow",e[e.RightArrow=17]="RightArrow",e[e.DownArrow=18]="DownArrow",e[e.Insert=19]="Insert",e[e.Delete=20]="Delete",e[e.KEY_0=21]="KEY_0",e[e.KEY_1=22]="KEY_1",e[e.KEY_2=23]="KEY_2",e[e.KEY_3=24]="KEY_3",e[e.KEY_4=25]="KEY_4",e[e.KEY_5=26]="KEY_5",e[e.KEY_6=27]="KEY_6",e[e.KEY_7=28]="KEY_7",e[e.KEY_8=29]="KEY_8",e[e.KEY_9=30]="KEY_9",e[e.KEY_A=31]="KEY_A",e[e.KEY_B=32]="KEY_B",e[e.KEY_C=33]="KEY_C",e[e.KEY_D=34]="KEY_D",e[e.KEY_E=35]="KEY_E",e[e.KEY_F=36]="KEY_F",e[e.KEY_G=37]="KEY_G",e[e.KEY_H=38]="KEY_H",e[e.KEY_I=39]="KEY_I",e[e.KEY_J=40]="KEY_J",e[e.KEY_K=41]="KEY_K",e[e.KEY_L=42]="KEY_L",e[e.KEY_M=43]="KEY_M",e[e.KEY_N=44]="KEY_N",e[e.KEY_O=45]="KEY_O",e[e.KEY_P=46]="KEY_P",e[e.KEY_Q=47]="KEY_Q",e[e.KEY_R=48]="KEY_R",e[e.KEY_S=49]="KEY_S",e[e.KEY_T=50]="KEY_T",e[e.KEY_U=51]="KEY_U",e[e.KEY_V=52]="KEY_V",e[e.KEY_W=53]="KEY_W",e[e.KEY_X=54]="KEY_X",e[e.KEY_Y=55]="KEY_Y",e[e.KEY_Z=56]="KEY_Z",e[e.Meta=57]="Meta",e[e.ContextMenu=58]="ContextMenu", +e[e.F1=59]="F1",e[e.F2=60]="F2",e[e.F3=61]="F3",e[e.F4=62]="F4",e[e.F5=63]="F5",e[e.F6=64]="F6",e[e.F7=65]="F7",e[e.F8=66]="F8",e[e.F9=67]="F9",e[e.F10=68]="F10",e[e.F11=69]="F11",e[e.F12=70]="F12",e[e.F13=71]="F13",e[e.F14=72]="F14",e[e.F15=73]="F15",e[e.F16=74]="F16",e[e.F17=75]="F17",e[e.F18=76]="F18",e[e.F19=77]="F19",e[e.NumLock=78]="NumLock",e[e.ScrollLock=79]="ScrollLock",e[e.US_SEMICOLON=80]="US_SEMICOLON",e[e.US_EQUAL=81]="US_EQUAL",e[e.US_COMMA=82]="US_COMMA",e[e.US_MINUS=83]="US_MINUS",e[e.US_DOT=84]="US_DOT",e[e.US_SLASH=85]="US_SLASH",e[e.US_BACKTICK=86]="US_BACKTICK",e[e.US_OPEN_SQUARE_BRACKET=87]="US_OPEN_SQUARE_BRACKET",e[e.US_BACKSLASH=88]="US_BACKSLASH",e[e.US_CLOSE_SQUARE_BRACKET=89]="US_CLOSE_SQUARE_BRACKET",e[e.US_QUOTE=90]="US_QUOTE",e[e.OEM_8=91]="OEM_8",e[e.OEM_102=92]="OEM_102",e[e.NUMPAD_0=93]="NUMPAD_0",e[e.NUMPAD_1=94]="NUMPAD_1",e[e.NUMPAD_2=95]="NUMPAD_2",e[e.NUMPAD_3=96]="NUMPAD_3",e[e.NUMPAD_4=97]="NUMPAD_4",e[e.NUMPAD_5=98]="NUMPAD_5",e[e.NUMPAD_6=99]="NUMPAD_6", +e[e.NUMPAD_7=100]="NUMPAD_7",e[e.NUMPAD_8=101]="NUMPAD_8",e[e.NUMPAD_9=102]="NUMPAD_9",e[e.NUMPAD_MULTIPLY=103]="NUMPAD_MULTIPLY",e[e.NUMPAD_ADD=104]="NUMPAD_ADD",e[e.NUMPAD_SEPARATOR=105]="NUMPAD_SEPARATOR",e[e.NUMPAD_SUBTRACT=106]="NUMPAD_SUBTRACT",e[e.NUMPAD_DECIMAL=107]="NUMPAD_DECIMAL",e[e.NUMPAD_DIVIDE=108]="NUMPAD_DIVIDE",e[e.KEY_IN_COMPOSITION=109]="KEY_IN_COMPOSITION",e[e.ABNT_C1=110]="ABNT_C1",e[e.ABNT_C2=111]="ABNT_C2",e[e.MAX_VALUE=112]="MAX_VALUE"}(t.KeyCode||(t.KeyCode={})),function(e){e[e.Hint=1]="Hint",e[e.Info=2]="Info",e[e.Warning=4]="Warning",e[e.Error=8]="Error"}(t.MarkerSeverity||(t.MarkerSeverity={})),function(e){e[e.Unnecessary=1]="Unnecessary",e[e.Deprecated=2]="Deprecated"}(t.MarkerTag||(t.MarkerTag={})),function(e){e[e.Inline=1]="Inline",e[e.Gutter=2]="Gutter"}(t.MinimapPosition||(t.MinimapPosition={})),function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.TEXTAREA=1]="TEXTAREA",e[e.GUTTER_GLYPH_MARGIN=2]="GUTTER_GLYPH_MARGIN",e[e.GUTTER_LINE_NUMBERS=3]="GUTTER_LINE_NUMBERS", +e[e.GUTTER_LINE_DECORATIONS=4]="GUTTER_LINE_DECORATIONS",e[e.GUTTER_VIEW_ZONE=5]="GUTTER_VIEW_ZONE",e[e.CONTENT_TEXT=6]="CONTENT_TEXT",e[e.CONTENT_EMPTY=7]="CONTENT_EMPTY",e[e.CONTENT_VIEW_ZONE=8]="CONTENT_VIEW_ZONE",e[e.CONTENT_WIDGET=9]="CONTENT_WIDGET",e[e.OVERVIEW_RULER=10]="OVERVIEW_RULER",e[e.SCROLLBAR=11]="SCROLLBAR",e[e.OVERLAY_WIDGET=12]="OVERLAY_WIDGET",e[e.OUTSIDE_EDITOR=13]="OUTSIDE_EDITOR"}(t.MouseTargetType||(t.MouseTargetType={})),function(e){e[e.TOP_RIGHT_CORNER=0]="TOP_RIGHT_CORNER",e[e.BOTTOM_RIGHT_CORNER=1]="BOTTOM_RIGHT_CORNER",e[e.TOP_CENTER=2]="TOP_CENTER"}(t.OverlayWidgetPositionPreference||(t.OverlayWidgetPositionPreference={})),function(e){e[e.Left=1]="Left",e[e.Center=2]="Center",e[e.Right=4]="Right",e[e.Full=7]="Full"}(t.OverviewRulerLane||(t.OverviewRulerLane={})),function(e){e[e.Off=0]="Off",e[e.On=1]="On",e[e.Relative=2]="Relative",e[e.Interval=3]="Interval",e[e.Custom=4]="Custom"}(t.RenderLineNumbersType||(t.RenderLineNumbersType={})),function(e){e[e.None=0]="None", +e[e.Text=1]="Text",e[e.Blocks=2]="Blocks"}(t.RenderMinimap||(t.RenderMinimap={})),function(e){e[e.Smooth=0]="Smooth",e[e.Immediate=1]="Immediate"}(t.ScrollType||(t.ScrollType={})),function(e){e[e.Auto=1]="Auto",e[e.Hidden=2]="Hidden",e[e.Visible=3]="Visible"}(t.ScrollbarVisibility||(t.ScrollbarVisibility={})),function(e){e[e.LTR=0]="LTR",e[e.RTL=1]="RTL"}(t.SelectionDirection||(t.SelectionDirection={})),function(e){e[e.Invoke=1]="Invoke",e[e.TriggerCharacter=2]="TriggerCharacter",e[e.ContentChange=3]="ContentChange"}(t.SignatureHelpTriggerKind||(t.SignatureHelpTriggerKind={})),function(e){e[e.File=0]="File",e[e.Module=1]="Module",e[e.Namespace=2]="Namespace",e[e.Package=3]="Package",e[e.Class=4]="Class",e[e.Method=5]="Method",e[e.Property=6]="Property",e[e.Field=7]="Field",e[e.Constructor=8]="Constructor",e[e.Enum=9]="Enum",e[e.Interface=10]="Interface",e[e.Function=11]="Function",e[e.Variable=12]="Variable",e[e.Constant=13]="Constant",e[e.String=14]="String",e[e.Number=15]="Number",e[e.Boolean=16]="Boolean", +e[e.Array=17]="Array",e[e.Object=18]="Object",e[e.Key=19]="Key",e[e.Null=20]="Null",e[e.EnumMember=21]="EnumMember",e[e.Struct=22]="Struct",e[e.Event=23]="Event",e[e.Operator=24]="Operator",e[e.TypeParameter=25]="TypeParameter"}(t.SymbolKind||(t.SymbolKind={})),function(e){e[e.Deprecated=1]="Deprecated"}(t.SymbolTag||(t.SymbolTag={})),function(e){e[e.Hidden=0]="Hidden",e[e.Blink=1]="Blink",e[e.Smooth=2]="Smooth",e[e.Phase=3]="Phase",e[e.Expand=4]="Expand",e[e.Solid=5]="Solid"}(t.TextEditorCursorBlinkingStyle||(t.TextEditorCursorBlinkingStyle={})),function(e){e[e.Line=1]="Line",e[e.Block=2]="Block",e[e.Underline=3]="Underline",e[e.LineThin=4]="LineThin",e[e.BlockOutline=5]="BlockOutline",e[e.UnderlineThin=6]="UnderlineThin"}(t.TextEditorCursorStyle||(t.TextEditorCursorStyle={})),function(e){e[e.AlwaysGrowsWhenTypingAtEdges=0]="AlwaysGrowsWhenTypingAtEdges",e[e.NeverGrowsWhenTypingAtEdges=1]="NeverGrowsWhenTypingAtEdges",e[e.GrowsOnlyWhenTypingBefore=2]="GrowsOnlyWhenTypingBefore", +e[e.GrowsOnlyWhenTypingAfter=3]="GrowsOnlyWhenTypingAfter"}(t.TrackedRangeStickiness||(t.TrackedRangeStickiness={})),function(e){e[e.None=0]="None",e[e.Same=1]="Same",e[e.Indent=2]="Indent",e[e.DeepIndent=3]="DeepIndent"}(t.WrappingIndent||(t.WrappingIndent={}))})),define(t[212],i([0,1,25,4,39,24,13,3,20,121,161]),(function(e,t,i,n,o,s,r,a,l,d,c){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.createMonacoBaseAPI=t.KeyMod=void 0;class h{static chord(e,t){return o.KeyChord(e,t)}}t.KeyMod=h,h.CtrlCmd=2048,h.Shift=1024,h.Alt=512,h.WinCtrl=256,t.createMonacoBaseAPI=function(){return{editor:void 0,languages:void 0,CancellationTokenSource:i.CancellationTokenSource,Emitter:n.Emitter,KeyCode:c.KeyCode,KeyMod:h,Position:r.Position,Range:a.Range,Selection:l.Selection,SelectionDirection:c.SelectionDirection,MarkerSeverity:c.MarkerSeverity,MarkerTag:c.MarkerTag,Uri:s.URI,Token:d.Token}}})),define(t[213],i([0,1]),(function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}), +t.OverviewZoneManager=t.OverviewRulerZone=t.ColorZone=void 0;class i{constructor(e,t,i){this.from=0|e,this.to=0|t,this.colorId=0|i}static compare(e,t){return e.colorId===t.colorId?e.from===t.from?e.to-t.to:e.from-t.from:e.colorId-t.colorId}}t.ColorZone=i;class n{constructor(e,t,i){this.startLineNumber=e,this.endLineNumber=t,this.color=i,this._colorZone=null}static compare(e,t){return e.color===t.color?e.startLineNumber===t.startLineNumber?e.endLineNumber-t.endLineNumber:e.startLineNumber-t.startLineNumber:e.colorn&&(h=n-u);const g=l.color;let p=this._color2Id[g];p||(p=++this._lastAssignedId,this._color2Id[g]=p,this._id2Color[p]=g);const m=new i(h-u,h+u,p);l.setColorZone(m),r.push(m)}return this._colorZonesInvalid=!1,r.sort(i.compare),r}}})),define(t[103],i([0,1]),(function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.VisibleRanges=t.HorizontalPosition=t.HorizontalRange=t.LineVisibleRanges=t.RenderingContext=t.RestrictedRenderingContext=void 0;class i{constructor(e,t){this._viewLayout=e,this.viewportData=t,this.scrollWidth=this._viewLayout.getScrollWidth(),this.scrollHeight=this._viewLayout.getScrollHeight(),this.visibleRange=this.viewportData.visibleRange,this.bigNumbersDelta=this.viewportData.bigNumbersDelta;const i=this._viewLayout.getCurrentViewport();this.scrollTop=i.top, +this.scrollLeft=i.left,this.viewportWidth=i.width,this.viewportHeight=i.height}getScrolledTopFromAbsoluteTop(e){return e-this.scrollTop}getVerticalOffsetForLineNumber(e){return this._viewLayout.getVerticalOffsetForLineNumber(e)}getDecorationsInViewport(){return this.viewportData.getDecorationsInViewport()}}t.RestrictedRenderingContext=i;t.RenderingContext=class extends i{constructor(e,t,i){super(e,t),this._viewLines=i}linesVisibleRangesForRange(e,t){return this._viewLines.linesVisibleRangesForRange(e,t)}visibleRangeForPosition(e){return this._viewLines.visibleRangeForPosition(e)}};t.LineVisibleRanges=class{constructor(e,t,i){this.outsideRenderedLine=e,this.lineNumber=t,this.ranges=i}};t.HorizontalRange=class{constructor(e,t){this.left=Math.round(e),this.width=Math.round(t)}toString(){return`[${this.left},${this.width}]`}};t.HorizontalPosition=class{constructor(e,t){this.outsideRenderedLine=e,this.left=Math.round(t)}};t.VisibleRanges=class{constructor(e,t){this.outsideRenderedLine=e,this.ranges=t}}})), +define(t[375],i([0,1,103]),(function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RangeUtil=void 0;class n{constructor(e,t){this.left=e,this.width=t}toString(){return`[${this.left},${this.width}]`}static compare(e,t){return e.left-t.left}}t.RangeUtil=class{static _createRange(){return this._handyReadyRange||(this._handyReadyRange=document.createRange()),this._handyReadyRange}static _detachRange(e,t){e.selectNodeContents(t)}static _readClientRects(e,t,i,n,o){const s=this._createRange();try{return s.setStart(e,t),s.setEnd(i,n),s.getClientRects()}catch(e){return null}finally{this._detachRange(s,o)}}static _mergeAdjacentRanges(e){if(1===e.length)return[new i.HorizontalRange(e[0].left,e[0].width)];e.sort(n.compare);let t=[],o=0,s=e[0].left,r=e[0].width;for(let n=1,a=e.length;n=l?r=Math.max(r,l+d-s):(t[o++]=new i.HorizontalRange(s,r),s=l,r=d)}return t[o++]=new i.HorizontalRange(s,r),t}static _createHorizontalRangesFromClientRects(e,t){ +if(!e||0===e.length)return null;const i=[];for(let o=0,s=e.length;oa)return null;if((t=Math.min(a,Math.max(0,t)))===(n=Math.min(a,Math.max(0,n)))&&i===o&&0===i){const i=e.children[t].getClientRects();return this._createHorizontalRangesFromClientRects(i,s)}t!==n&&n>0&&0===o&&(n--,o=1073741824);let l=e.children[t].firstChild,d=e.children[n].firstChild;if(l&&d||(!l&&0===i&&t>0&&(l=e.children[t-1].firstChild,i=1073741824),!d&&0===o&&n>0&&(d=e.children[n-1].firstChild,o=1073741824)),!l||!d)return null;i=Math.min(l.textContent.length,Math.max(0,i)),o=Math.min(d.textContent.length,Math.max(0,o));const c=this._readClientRects(l,i,d,o,r);return this._createHorizontalRangesFromClientRects(c,s)}}})),define(t[376],i([0,1]),(function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ViewContext=t.EditorTheme=void 0;class i{ +constructor(e){this._theme=e}get type(){return this._theme.type}update(e){this._theme=e}getColor(e){return this._theme.getColor(e)}}t.EditorTheme=i;t.ViewContext=class{constructor(e,t,n){this.configuration=e,this.theme=new i(t),this.model=n,this.viewLayout=n.viewLayout}addEventHandler(e){this.model.addViewEventHandler(e)}removeEventHandler(e){this.model.removeViewEventHandler(e)}}})),define(t[162],i([0,1]),(function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ViewZonesChangedEvent=t.ViewTokensColorsChangedEvent=t.ViewTokensChangedEvent=t.ViewThemeChangedEvent=t.ViewScrollChangedEvent=t.ViewRevealRangeRequestEvent=t.ViewLinesInsertedEvent=t.ViewLinesDeletedEvent=t.ViewLinesChangedEvent=t.ViewLineMappingChangedEvent=t.ViewLanguageConfigurationEvent=t.ViewFocusChangedEvent=t.ViewFlushedEvent=t.ViewDecorationsChangedEvent=t.ViewCursorStateChangedEvent=t.ViewConfigurationChangedEvent=void 0;t.ViewConfigurationChangedEvent=class{constructor(e){this.type=0,this._source=e}hasChanged(e){ +return this._source.hasChanged(e)}};t.ViewCursorStateChangedEvent=class{constructor(e,t){this.type=1,this.selections=e,this.modelSelections=t}};t.ViewDecorationsChangedEvent=class{constructor(e){this.type=2,e?(this.affectsMinimap=e.affectsMinimap,this.affectsOverviewRuler=e.affectsOverviewRuler):(this.affectsMinimap=!0,this.affectsOverviewRuler=!0)}};t.ViewFlushedEvent=class{constructor(){this.type=3}};t.ViewFocusChangedEvent=class{constructor(e){this.type=4,this.isFocused=e}};t.ViewLanguageConfigurationEvent=class{constructor(){this.type=5}};t.ViewLineMappingChangedEvent=class{constructor(){this.type=6}};t.ViewLinesChangedEvent=class{constructor(e,t){this.type=7,this.fromLineNumber=e,this.toLineNumber=t}};t.ViewLinesDeletedEvent=class{constructor(e,t){this.type=8,this.fromLineNumber=e,this.toLineNumber=t}};t.ViewLinesInsertedEvent=class{constructor(e,t){this.type=9,this.fromLineNumber=e,this.toLineNumber=t}};t.ViewRevealRangeRequestEvent=class{constructor(e,t,i,n,o,s){this.type=10,this.source=e,this.range=t, +this.selections=i,this.verticalType=n,this.revealHorizontal=o,this.scrollType=s}};t.ViewScrollChangedEvent=class{constructor(e){this.type=11,this.scrollWidth=e.scrollWidth,this.scrollLeft=e.scrollLeft,this.scrollHeight=e.scrollHeight,this.scrollTop=e.scrollTop,this.scrollWidthChanged=e.scrollWidthChanged,this.scrollLeftChanged=e.scrollLeftChanged,this.scrollHeightChanged=e.scrollHeightChanged,this.scrollTopChanged=e.scrollTopChanged}};t.ViewThemeChangedEvent=class{constructor(){this.type=12}};t.ViewTokensChangedEvent=class{constructor(e){this.type=13,this.ranges=e}};t.ViewTokensColorsChangedEvent=class{constructor(){this.type=14}};t.ViewZonesChangedEvent=class{constructor(){this.type=15}}})),define(t[163],i([0,1,8]),(function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LineDecorationsNormalizer=t.DecorationSegment=t.LineDecoration=void 0;class n{constructor(e,t,i,n){this.startColumn=e,this.endColumn=t,this.className=i,this.type=n}static _equals(e,t){ +return e.startColumn===t.startColumn&&e.endColumn===t.endColumn&&e.className===t.className&&e.type===t.type}static equalsArr(e,t){const i=e.length;if(i!==t.length)return!1;for(let o=0;ot)continue;if(d.isEmpty()&&(0===l.type||3===l.type))continue;const c=d.startLineNumber===t?d.startColumn:i,h=d.endLineNumber===t?d.endColumn:o;s[r++]=new n(c,h,l.inlineClassName,l.type)}return s}static _typeCompare(e,t){const i=[2,0,1,3];return i[e]-i[t]}static compare(e,t){if(e.startColumn===t.startColumn){if(e.endColumn===t.endColumn){const i=n._typeCompare(e.type,t.type);return 0===i?e.classNamet.className?1:0:i}return e.endColumn-t.endColumn}return e.startColumn-t.startColumn}}t.LineDecoration=n;class o{constructor(e,t,i,n){this.startOffset=e,this.endOffset=t,this.className=i,this.metadata=n}} +t.DecorationSegment=o;class s{constructor(){this.stopOffsets=[],this.classNames=[],this.metadata=[],this.count=0}static _metadata(e){let t=0;for(let i=0,n=e.length;i0&&this.stopOffsets[0]0&&t=e){this.stopOffsets.splice(n,0,e),this.classNames.splice(n,0,t),this.metadata.splice(n,0,i);break}this.count++}}t.LineDecorationsNormalizer=class{ +static normalize(e,t){if(0===t.length)return[];let n=[];const o=new s;let r=0;for(let s=0,a=t.length;s1){const t=e.charCodeAt(l-2);i.isHighSurrogate(t)&&l--}if(d>1){const t=e.charCodeAt(d-2);i.isHighSurrogate(t)&&d--}const u=l-1,g=d-2;r=o.consumeLowerThan(u,r,n),0===o.count&&(r=u),o.insert(g,c,h)}return o.consumeLowerThan(1073741824,r,n),n}}})),define(t[377],i([0,1,8]),(function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LinesLayout=t.EditorWhitespace=void 0;class n{constructor(){this._hasPending=!1,this._inserts=[],this._changes=[],this._removes=[]}insert(e){this._hasPending=!0,this._inserts.push(e)}change(e){this._hasPending=!0,this._changes.push(e)}remove(e){this._hasPending=!0,this._removes.push(e)}mustCommit(){return this._hasPending}commit(e){if(!this._hasPending)return;const t=this._inserts,i=this._changes,n=this._removes;this._hasPending=!1,this._inserts=[], +this._changes=[],this._removes=[],e._commitPendingChanges(t,i,n)}}class o{constructor(e,t,i,n,o){this.id=e,this.afterLineNumber=t,this.ordinal=i,this.height=n,this.minWidth=o,this.prefixSum=0}}t.EditorWhitespace=o;class s{constructor(e,t,o,r){this._instanceId=i.singleLetterHash(++s.INSTANCE_COUNT),this._pendingChanges=new n,this._lastWhitespaceId=0,this._arr=[],this._prefixSumValidIndex=-1,this._minWidth=-1,this._lineCount=e,this._lineHeight=t,this._paddingTop=o,this._paddingBottom=r}static findInsertionIndex(e,t,i){let n=0,o=e.length;for(;n>>1;t===e[s].afterLineNumber?i{t=!0,e|=0,i|=0,n|=0,s|=0;const r=this._instanceId+ ++this._lastWhitespaceId +;return this._pendingChanges.insert(new o(r,e,i,n,s)),r},changeOneWhitespace:(e,i,n)=>{t=!0,i|=0,n|=0,this._pendingChanges.change({id:e,newAfterLineNumber:i,newHeight:n})},removeWhitespace:e=>{t=!0,this._pendingChanges.remove({id:e})}})}finally{this._pendingChanges.commit(this)}return t}_commitPendingChanges(e,t,i){if((e.length>0||i.length>0)&&(this._minWidth=-1),e.length+t.length+i.length<=1){for(const t of e)this._insertWhitespace(t);for(const e of t)this._changeOneWhitespace(e.id,e.newAfterLineNumber,e.newHeight);for(const e of i){const t=this._findWhitespaceIndex(e.id);-1!==t&&this._removeWhitespace(t)}return}const n=new Set;for(const e of i)n.add(e.id);const o=new Map;for(const e of t)o.set(e.id,e);const s=e=>{let t=[];for(const i of e)if(!n.has(i.id)){if(o.has(i.id)){const e=o.get(i.id);i.afterLineNumber=e.newAfterLineNumber,i.height=e.newHeight}t.push(i)}return t},r=s(this._arr).concat(s(e));r.sort((e,t)=>e.afterLineNumber===t.afterLineNumber?e.ordinal-t.ordinal:e.afterLineNumber-t.afterLineNumber), +this._arr=r,this._prefixSumValidIndex=-1}_checkPendingChanges(){this._pendingChanges.mustCommit()&&this._pendingChanges.commit(this)}_insertWhitespace(e){const t=s.findInsertionIndex(this._arr,e.afterLineNumber,e.ordinal);this._arr.splice(t,0,e),this._prefixSumValidIndex=Math.min(this._prefixSumValidIndex,t-1)}_findWhitespaceIndex(e){const t=this._arr;for(let i=0,n=t.length;it&&(this._arr[i].afterLineNumber-=t-e+1)}}onLinesInserted(e,t){this._checkPendingChanges(),e|=0,t|=0,this._lineCount+=t-e+1;for(let i=0,n=this._arr.length;i=t.length||t[o+1].afterLineNumber>=e)return o;i=o+1|0}else n=o-1|0}return-1}_findFirstWhitespaceAfterLineNumber(e){e|=0;const t=this._findLastWhitespaceBeforeLineNumber(e)+1;return t1?this._lineHeight*(e-1):0)+this.getWhitespaceAccumulatedHeightBeforeLineNumber(e)+this._paddingTop}getWhitespaceMinWidth(){if(this._checkPendingChanges(),-1===this._minWidth){let e=0;for(let t=0,i=this._arr.length;tthis.getLinesTotalHeight()}getLineNumberAtOrAfterVerticalOffset(e){if(this._checkPendingChanges(),(e|=0)<0)return 1;const t=0|this._lineCount,i=this._lineHeight;let n=1,o=t;for(;n=s+i)n=t+1;else{if(e>=s)return t;o=t}}return n>t?t:n}getLinesViewportData(e,t){this._checkPendingChanges(),e|=0,t|=0;const i=this._lineHeight,n=0|this.getLineNumberAtOrAfterVerticalOffset(e),o=0|this.getVerticalOffsetForLineNumber(n);let s=0|this._lineCount,r=0|this.getFirstWhitespaceIndexAfterLineNumber(n);const a=0|this.getWhitespacesCount();let l,d;-1===r?(r=a,d=s+1,l=0):(d=0|this.getAfterLineNumberForWhitespaceIndex(r),l=0|this.getHeightForWhitespaceIndex(r));let c=o,h=c;let u=0;o>=5e5&&(u=5e5*Math.floor(o/5e5),h-=u=Math.floor(u/i)*i);const g=[],p=e+(t-e)/2;let m=-1;for(let e=n;e<=s;e++){if(-1===m){const t=c,n=c+i;(t<=p&&pp)&&(m=e)}for(c+=i,g[e-n]=h,h+=i;d===e;)h+=l,c+=l, +++r>=a?d=s+1:(d=0|this.getAfterLineNumberForWhitespaceIndex(r),l=0|this.getHeightForWhitespaceIndex(r));if(c>=t){s=e;break}}-1===m&&(m=s);const f=0|this.getVerticalOffsetForLineNumber(s);let _=n,v=s;return _t&&v--,{bigNumbersDelta:u,startLineNumber:n,endLineNumber:s,relativeVerticalOffset:g,centeredLineNumber:m,completelyVisibleStartLineNumber:_,completelyVisibleEndLineNumber:v}}getVerticalOffsetForWhitespaceIndex(e){this._checkPendingChanges(),e|=0;const t=this.getAfterLineNumberForWhitespaceIndex(e);let i,n;return(i=t>=1?this._lineHeight*t:0)+(n=e>0?this.getWhitespacesAccumulatedHeight(e-1):0)+this._paddingTop}getWhitespaceIndexAtOrAfterVerticallOffset(e){this._checkPendingChanges(),e|=0;let t=0,i=this.getWhitespacesCount()-1;if(i<0)return-1;if(e>=this.getVerticalOffsetForWhitespaceIndex(i)+this.getHeightForWhitespaceIndex(i))return-1;for(;t=o+this.getHeightForWhitespaceIndex(n))t=n+1;else{ +if(e>=o)return n;i=n}}return t}getWhitespaceAtVerticalOffset(e){this._checkPendingChanges(),e|=0;const t=this.getWhitespaceIndexAtOrAfterVerticallOffset(e);if(t<0)return null;if(t>=this.getWhitespacesCount())return null;const i=this.getVerticalOffsetForWhitespaceIndex(t);if(i>e)return null;const n=this.getHeightForWhitespaceIndex(t);return{id:this.getIdForWhitespaceIndex(t),afterLineNumber:this.getAfterLineNumberForWhitespaceIndex(t),verticalOffset:i,height:n}}getWhitespaceViewportData(e,t){this._checkPendingChanges(),e|=0,t|=0;const i=this.getWhitespaceIndexAtOrAfterVerticallOffset(e),n=this.getWhitespacesCount()-1;if(i<0)return[];let o=[];for(let e=i;e<=n;e++){const i=this.getVerticalOffsetForWhitespaceIndex(e),n=this.getHeightForWhitespaceIndex(e);if(i>=t)break;o.push({id:this.getIdForWhitespaceIndex(e),afterLineNumber:this.getAfterLineNumberForWhitespaceIndex(e),verticalOffset:i,height:n})}return o}getWhitespaces(){return this._checkPendingChanges(),this._arr.slice(0)}getWhitespacesCount(){ +return this._checkPendingChanges(),this._arr.length}getIdForWhitespaceIndex(e){return this._checkPendingChanges(),e|=0,this._arr[e].id}getAfterLineNumberForWhitespaceIndex(e){return this._checkPendingChanges(),e|=0,this._arr[e].afterLineNumber}getHeightForWhitespaceIndex(e){return this._checkPendingChanges(),e|=0,this._arr[e].height}}t.LinesLayout=s,s.INSTANCE_COUNT=0})),define(t[123],i([0,1,8,89,163]),(function(e,t,i,n,o){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.renderViewLine2=t.RenderLineOutput2=t.renderViewLine=t.RenderLineOutput=t.CharacterMapping=t.RenderLineInput=t.LineRange=void 0;class s{constructor(e,t,i){this.endIndex=e,this.type=t,this.metadata=i}isWhitespace(){return!!(1&this.metadata)}}t.LineRange=class{constructor(e,t){this.startOffset=e,this.endOffset=t}equals(e){return this.startOffset===e.startOffset&&this.endOffset===e.endOffset}};t.RenderLineInput=class{constructor(e,t,i,n,o,s,r,a,l,d,c,h,u,g,p,m,f,_,v){this.useMonospaceOptimizations=e, +this.canUseHalfwidthRightwardsArrow=t,this.lineContent=i,this.continuesWithWrappedLine=n,this.isBasicASCII=o,this.containsRTL=s,this.fauxIndentLength=r,this.lineTokens=a,this.lineDecorations=l,this.tabSize=d,this.startVisibleColumn=c,this.spaceWidth=h,this.stopRenderingLineAfter=p,this.renderWhitespace="all"===m?4:"boundary"===m?1:"selection"===m?2:"trailing"===m?3:0,this.renderControlCharacters=f,this.fontLigatures=_,this.selectionsOnLine=v&&v.sort((e,t)=>e.startOffset>>16}static getCharIndex(e){return(65535&e)>>>0}setPartData(e,t,i,n){let o=(t<<16|i<<0)>>>0;this._data[e]=o,this._absoluteOffsets[e]=n+i}getAbsoluteOffsets(){return this._absoluteOffsets}charOffsetToPartData(e){return 0===this.length?0:e<0?this._data[0]:e>=this.length?this._data[this.length-1]:this._data[e]}partDataToCharOffset(e,t,i){if(0===this.length)return 0;let n=(e<<16|i<<0)>>>0,o=0,s=this.length-1;for(;o+1>>1,t=this._data[e];if(t===n)return e;t>n?s=e:o=e}if(o===s)return o;let a=this._data[o],l=this._data[s];if(a===n)return o;if(l===n)return s;let d,c=r.getPartIndex(a);return i-r.getCharIndex(a)<=(d=c!==r.getPartIndex(l)?t:r.getCharIndex(l))-i?o:s}}t.CharacterMapping=r;class a{constructor(e,t,i){this.characterMapping=e,this.containsRTL=t,this.containsForeignElements=i}}function l(e,t){if(0===e.lineContent.length){let i=0,n="";if(e.lineDecorations.length>0){const t=[],o=[];for(let n=0,s=e.lineDecorations.length;n${t.length>0?``:""}${o.length>0?``:""}`}}return t.appendASCIIString(n),new a(new r(0,0),!1,i)}return function(e,t){const n=e.fontIsMonospace,o=e.canUseHalfwidthRightwardsArrow,s=e.containsForeignElements,l=e.lineContent,d=e.len,c=e.isOverflowing,h=e.parts,u=e.fauxIndentLength,g=e.tabSize,p=e.startVisibleColumn,m=e.containsRTL,f=e.spaceWidth,_=e.renderSpaceCharCode,v=e.renderWhitespace,C=e.renderControlCharacters,b=new r(d+1,h.length);let S=0,w=p,y=0,E=0,L=0,x=0;m?t.appendASCIIString(''):t.appendASCIIString("");for(let e=0,r=h.length;e=u&&(t+=n)}}for(p&&(t.appendASCIIString(' style="width:'),t.appendASCIIString(String(f*i)),t.appendASCIIString('px"')),t.appendASCII(62);S1?t.write1(8594):t.write1(65515);for(let e=2;e<=i;e++)t.write1(160)}else i=1,t.write1(_);y+=i,S>=u&&(w+=i)}L=i}else{let n=0;for(t.appendASCII(62);S=u&&(w+=r)}L=n}m?E++:E=0,t.appendASCIIString("")} +b.setPartData(d,h.length-1,y,x),c&&t.appendASCIIString("");return t.appendASCIIString(""),new a(b,m,s)}(function(e){const t=e.lineContent;let n,r;-1!==e.stopRenderingLineAfter&&e.stopRenderingLineAfter0&&(n[o++]=new s(t,"",0));for(let r=0,a=e.getCount();r=i){n[o++]=new s(i,l,0);break}n[o++]=new s(a,l,0)}return n}(e.lineTokens,e.fauxIndentLength,r);(4===e.renderWhitespace||1===e.renderWhitespace||2===e.renderWhitespace&&e.selectionsOnLine||3===e.renderWhitespace)&&(a=function(e,t,n,o){const r=e.continuesWithWrappedLine,a=e.fauxIndentLength,l=e.tabSize,d=e.startVisibleColumn,c=e.useMonospaceOptimizations,h=e.selectionsOnLine,u=1===e.renderWhitespace,g=3===e.renderWhitespace,p=e.renderSpaceWidth!==e.spaceWidth;let m=[],f=0,_=0,v=o[_].type,C=o[_].endIndex;const b=o.length +;let S,w=!1,y=i.firstNonWhitespaceIndex(t);-1===y?(w=!0,y=n,S=n):S=i.lastNonWhitespaceIndex(t);let E=!1,L=0,x=h&&h[L],D=d%l;for(let e=a;e=x.endOffset&&(L++,x=h&&h[L]),eS)d=!0;else if(9===r)d=!0;else if(32===r)if(u)if(E)d=!0;else{const i=e+1e),d&&g&&(d=w||e>S),E){if(!d||!c&&D>=l){if(p){for(let t=(f>0?m[f-1].endIndex:a)+1;t<=e;t++)m[f++]=new s(t,"mtkw",1)}else m[f++]=new s(e,"mtkw",1);D%=l}}else(e===C||d&&e>a)&&(m[f++]=new s(e,v,0),D%=l);for(9===r?D=l:i.isFullWidthCharacter(r)?D+=2:D++,E=d;e===C;)++_0?t.charCodeAt(n-1):0,i=n>1?t.charCodeAt(n-2):0;32===e&&32!==i&&9!==i||(k=!0)}else k=!0;if(k)if(p){for(let e=(f>0?m[f-1].endIndex:a)+1;e<=n;e++)m[f++]=new s(e,"mtkw",1)}else m[f++]=new s(n,"mtkw",1);else m[f++]=new s(n,v,0);return m}(e,t,r,a));let l=0;if(e.lineDecorations.length>0){ +for(let t=0,i=e.lineDecorations.length;th&&(h=e.startOffset,d[c++]=new s(h,o,u)),!(e.endOffset+1<=n)){h=n,d[c++]=new s(h,o+" "+e.className,u|e.metadata);break}h=e.endOffset+1,d[c++]=new s(h,o+" "+e.className,u|e.metadata),l++}n>h&&(h=n,d[c++]=new s(h,o,u))}const u=i[i.length-1].endIndex;if(l=50&&(o[r++]=new s(d+1,t,i),c=d+1,d=-1);c!==l&&(o[r++]=new s(l,t,i))}else o[r++]=a;n=l}else for(let e=0,i=t.length;e50){const e=i.type,t=i.metadata,d=Math.ceil(l/50);for(let i=1;i=0&&this.prefixSum.set(o.subarray(0,this.prefixSumValidIndex[0]+1)),!0)} +changeValue(e,t){return e=i.toUint32(e),t=i.toUint32(t),this.values[e]!==t&&(this.values[e]=t,e-1=n.length)return!1;let s=n.length-e;return t>=s&&(t=s),0!==t&&(this.values=new Uint32Array(n.length-t),this.values.set(n.subarray(0,e),0),this.values.set(n.subarray(e+t),e),this.prefixSum=new Uint32Array(this.values.length),e-1=0&&this.prefixSum.set(o.subarray(0,this.prefixSumValidIndex[0]+1)),!0)}getTotalValue(){return 0===this.values.length?0:this._getAccumulatedValue(this.values.length-1)}getAccumulatedValue(e){return e<0?0:(e=i.toUint32(e),this._getAccumulatedValue(e))}_getAccumulatedValue(e){if(e<=this.prefixSumValidIndex[0])return this.prefixSum[e];let t=this.prefixSumValidIndex[0]+1;0===t&&(this.prefixSum[0]=this.values[0],t++), +e>=this.values.length&&(e=this.values.length-1);for(let i=t;i<=e;i++)this.prefixSum[i]=this.prefixSum[i-1]+this.values[i];return this.prefixSumValidIndex[0]=Math.max(this.prefixSumValidIndex[0],e),this.prefixSum[e]}getIndexOf(e){e=Math.floor(e),this.getTotalValue();let t=0,i=this.values.length-1,o=0,s=0,r=0;for(;t<=i;)if(o=t+(i-t)/2|0,e<(r=(s=this.prefixSum[o])-this.values[o]))i=o-1;else{if(!(e>=s))break;t=o+1}return new n(o,e-r)}}})),define(t[379],i([0,1,13,214]),(function(e,t,i,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MirrorTextModel=void 0;t.MirrorTextModel=class{constructor(e,t,i,n){this._uri=e,this._lines=t,this._eol=i,this._versionId=n,this._lineStarts=null,this._cachedTextValue=null}dispose(){this._lines.length=0}getText(){return null===this._cachedTextValue&&(this._cachedTextValue=this._lines.join(this._eol)),this._cachedTextValue}onEvents(e){e.eol&&e.eol!==this._eol&&(this._eol=e.eol,this._lineStarts=null);const t=e.changes;for(const e of t)this._acceptDeleteRange(e.range), +this._acceptInsertText(new i.Position(e.range.startLineNumber,e.range.startColumn),e.text);this._versionId=e.versionId,this._cachedTextValue=null}_ensureLineStarts(){if(!this._lineStarts){const e=this._eol.length,t=this._lines.length,i=new Uint32Array(t);for(let n=0;nthis._lines.length)t=this._lines.length,i=this._lines[t-1].length+1,n=!0;else{let e=this._lines[t-1].length+1;i<1?(i=1,n=!0):i>e&&(i=e,n=!0)}return n?{lineNumber:t,column:i}:e}}class _{constructor(e,t){this._host=e,this._models=Object.create(null),this._foreignModuleFactory=t,this._foreignModule=null}dispose(){this._models=Object.create(null)}_getModel(e){return this._models[e]}_getModels(){let e=[];return Object.keys(this._models).forEach(t=>e.push(this._models[t])),e}acceptNewModel(e){this._models[e.url]=new f(s.URI.parse(e.url),e.lines,e.EOL,e.versionId)}acceptModelChanged(e,t){if(!this._models[e])return;this._models[e].onEvents(t)}acceptRemovedModel(e){this._models[e]&&delete this._models[e]}computeDiff(e,t,i,n){return r(this,void 0,void 0,(function*(){ +const o=this._getModel(e),s=this._getModel(t);if(!o||!s)return null;const r=o.getLinesContent(),a=s.getLinesContent(),l=new d.DiffComputer(r,a,{shouldComputeCharChanges:!0,shouldPostProcessCharChanges:!0,shouldIgnoreTrimWhitespace:i,shouldMakePrettyDiff:!0,maxComputationTime:n}).computeDiff(),c=!(l.changes.length>0)&&this._modelsAreIdentical(o,s);return{quitEarly:l.quitEarly,identical:c,changes:l.changes}}))}_modelsAreIdentical(e,t){const i=e.getLineCount();if(i!==t.getLineCount())return!1;for(let n=1;n<=i;n++){if(e.getLineContent(n)!==t.getLineContent(n))return!1}return!0}computeMoreMinimalEdits(e,t){return r(this,void 0,void 0,(function*(){const o=this._getModel(e);if(!o)return t;const s=[];let r=void 0;t=i.mergeSort(t,(e,t)=>{if(e.range&&t.range)return l.Range.compareRangesUsingStarts(e.range,t.range);return(e.range?0:1)-(t.range?0:1)});for(let{range:e,text:i,eol:a}of t){if("number"==typeof a&&(r=a),l.Range.isEmpty(e)&&!i)continue;const t=o.getValueInRange(e) +;if(t===(i=i.replace(/\r\n|\n|\r/g,o.eol)))continue;if(Math.max(i.length,t.length)>_._diffLimit){s.push({range:e,text:i});continue}const d=n.stringDiff(t,i,!1),c=o.offsetAt(l.Range.lift(e).getStartPosition());for(const e of d){const t=o.positionAt(c+e.originalStart),n=o.positionAt(c+e.originalStart+e.originalLength),r={text:i.substr(e.modifiedStart,e.modifiedLength),range:{startLineNumber:t.lineNumber,startColumn:t.column,endLineNumber:n.lineNumber,endColumn:n.column}};o.getValueInRange(r.range)!==r.text&&s.push(r)}}return"number"==typeof r&&s.push({eol:r,text:"",range:{startLineNumber:0,startColumn:0,endLineNumber:0,endColumn:0}}),s}))}computeLinks(e){return r(this,void 0,void 0,(function*(){let t=this._getModel(e);return t?u.computeLinks(t):null}))}textualSuggest(e,t,i,n){return r(this,void 0,void 0,(function*(){const o=this._getModel(e);if(!o)return null;const s=[],r=new Set,a=new RegExp(i,n),l=o.getWordAtPosition(t,a);l&&r.add(o.getValueInRange(l));for(let e of o.words(a))if(!r.has(e)&&(r.add(e), +isNaN(Number(e))&&(s.push(e),r.size>_._suggestionsLimit)))break;return s}))}computeWordRanges(e,t,i,n){return r(this,void 0,void 0,(function*(){let o=this._getModel(e);if(!o)return Object.create(null);const s=new RegExp(i,n),r=Object.create(null);for(let e=t.startLineNumber;ethis._host.fhr(e,t)),getMirrorModels:()=>this._getModels()};return this._foreignModuleFactory?(this._foreignModule=this._foreignModuleFactory(o,i),Promise.resolve(m.getAllMethodNames(this._foreignModule))):new Promise((n,s)=>{e([t],e=>{this._foreignModule=e.create(o,i),n(m.getAllMethodNames(this._foreignModule))},s)})}fmr(e,t){if(!this._foreignModule||"function"!=typeof this._foreignModule[e])return Promise.reject(new Error("Missing requestHandler or method: "+e));try{return Promise.resolve(this._foreignModule[e].apply(this._foreignModule,t))}catch(e){return Promise.reject(e)}}}t.EditorSimpleWorker=_,_._diffLimit=1e5,_._suggestionsLimit=1e4,t.create=function(e){return new _(e,null)},"function"==typeof importScripts&&(o.globals.monaco=p.createMonacoBaseAPI())})),define(t[104],i([0,1,2]),(function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ViewEventHandler=void 0;class n extends i.Disposable{constructor(){super(), +this._shouldRender=!0}shouldRender(){return this._shouldRender}forceShouldRender(){this._shouldRender=!0}setShouldRender(){this._shouldRender=!0}onDidRender(){this._shouldRender=!1}onConfigurationChanged(e){return!1}onCursorStateChanged(e){return!1}onDecorationsChanged(e){return!1}onFlushed(e){return!1}onFocusChanged(e){return!1}onLanguageConfigurationChanged(e){return!1}onLineMappingChanged(e){return!1}onLinesChanged(e){return!1}onLinesDeleted(e){return!1}onLinesInserted(e){return!1}onRevealRangeRequest(e){return!1}onScrollChanged(e){return!1}onThemeChanged(e){return!1}onTokensChanged(e){return!1}onTokensColorsChanged(e){return!1}onZonesChanged(e){return!1}handleEvents(e){let t=!1;for(let i=0,n=e.length;i=n,c=a,h=o.viewportHeight-a>=n;let u=e.left,g=t.left;return u+i>o.scrollLeft+o.viewportWidth&&(u=o.scrollLeft+o.viewportWidth-i),g+i>o.scrollLeft+o.viewportWidth&&(g=o.scrollLeft+o.viewportWidth-i),ur){const e=a-(r-o);a-=e,n-=e}if(a=22,_=c+o<=h.height-22;return this._fixedOverflowWidgets?{fitsAbove:f,aboveTop:Math.max(d,22),aboveLeft:g,fitsBelow:_,belowTop:c,belowLeft:m}:{fitsAbove:f,aboveTop:r,aboveLeft:u,fitsBelow:_,belowTop:a,belowLeft:p}}_prepareRenderWidgetAtExactPositionOverflowing(e){return new s(e.top,e.left+this._contentLeft)}_getTopAndBottomLeft(e){if(!this._viewRange)return[null,null] +;const t=e.linesVisibleRangesForRange(this._viewRange,!1);if(!t||0===t.length)return[null,null];let i=t[0],n=t[0];for(const e of t)e.lineNumbern.lineNumber&&(n=e);let o=1073741824;for(const e of i.ranges)e.lefte.endLineNumber||this.domNode.setMaxWidth(this._maxWidth))}prepareRender(e){this._renderData=this._prepareRenderWidget(e)}render(e){this._renderData?(this.allowEditorOverflow?(this.domNode.setTop(this._renderData.top),this.domNode.setLeft(this._renderData.left)):(this.domNode.setTop(this._renderData.top+e.scrollTop-e.bigNumbersDelta),this.domNode.setLeft(this._renderData.left)),this._isVisible||(this.domNode.setVisibility("inherit"),this.domNode.setAttribute("monaco-visible-content-widget","true"), +this._isVisible=!0)):this._isVisible&&(this.domNode.removeAttribute("monaco-visible-content-widget"),this._isVisible=!1,this.domNode.setVisibility("hidden"))}}})),define(t[382],i([0,1,90,3,103,308]),(function(e,t,i,n,o){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DecorationsOverlay=void 0;class s extends i.DynamicViewOverlay{constructor(e){super(),this._context=e;const t=this._context.configuration.options;this._lineHeight=t.get(51),this._typicalHalfwidthCharacterWidth=t.get(36).typicalHalfwidthCharacterWidth,this._renderResult=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(e){const t=this._context.configuration.options;return this._lineHeight=t.get(51),this._typicalHalfwidthCharacterWidth=t.get(36).typicalHalfwidthCharacterWidth,!0}onDecorationsChanged(e){return!0}onFlushed(e){return!0}onLinesChanged(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0} +onScrollChanged(e){return e.scrollTopChanged||e.scrollWidthChanged}onZonesChanged(e){return!0}prepareRender(e){const t=e.getDecorationsInViewport();let i=[],o=0;for(let e=0,n=t.length;e{if(e.options.zIndext.options.zIndex)return 1;const i=e.options.className,o=t.options.className;return io?1:n.Range.compareRangesUsingStarts(e.range,t.range)});const s=e.visibleRange.startLineNumber,r=e.visibleRange.endLineNumber,a=[];for(let e=s;e<=r;e++){a[e-s]=""}this._renderWholeLineDecorations(e,i,a),this._renderNormalDecorations(e,i,a),this._renderResult=a}_renderWholeLineDecorations(e,t,i){const n=String(this._lineHeight),o=e.visibleRange.startLineNumber,s=e.visibleRange.endLineNumber;for(let e=0,r=t.length;e',l=Math.max(r.range.startLineNumber,o),d=Math.min(r.range.endLineNumber,s);for(let e=l;e<=d;e++){i[e-o]+=a}}}_renderNormalDecorations(e,t,i){const o=String(this._lineHeight),s=e.visibleRange.startLineNumber;let r=null,a=!1,l=null;for(let d=0,c=t.length;d';a[d]+=o}}}render(e,t){if(!this._renderResult)return"";const i=t-e;return i<0||i>=this._renderResult.length?"":this._renderResult[i]}}t.DecorationsOverlay=s})),define(t[164],i([0,1,90,309]),(function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.GlyphMarginOverlay=t.DedupOverlay=t.DecorationToRender=void 0;class n{constructor(e,t,i){this.startLineNumber=+e,this.endLineNumber=+t,this.className=String(i)}}t.DecorationToRender=n;class o extends i.DynamicViewOverlay{_render(e,t,i){const n=[];for(let i=e;i<=t;i++){n[i-e]=[]}if(0===i.length)return n +;i.sort((e,t)=>e.className===t.className?e.startLineNumber===t.startLineNumber?e.endLineNumber-t.endLineNumber:e.startLineNumber-t.startLineNumber:e.className',r=[];for(let e=t;e<=i;e++){const i=e-t,o=n[i];0===o.length?r[i]="":r[i]='
        =this._renderResult.length?"":this._renderResult[i]}}})),define(t[383],i([0,1,164,313]),(function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LinesDecorationsOverlay=void 0;class n extends i.DedupOverlay{constructor(e){super(),this._context=e;const t=this._context.configuration.options.get(117);this._decorationsLeft=t.decorationsLeft,this._decorationsWidth=t.decorationsWidth,this._renderResult=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(e){const t=this._context.configuration.options.get(117);return this._decorationsLeft=t.decorationsLeft,this._decorationsWidth=t.decorationsWidth,!0}onDecorationsChanged(e){return!0}onFlushed(e){return!0}onLinesChanged(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return e.scrollTopChanged}onZonesChanged(e){return!0}_getDecorations(e){ +const t=e.getDecorationsInViewport();let n=[],o=0;for(let e=0,s=t.length;e
        ',s=[];for(let e=t;e<=i;e++){const i=e-t,r=n[i];let a="";for(let e=0,t=r.length;e';o[i]=r}this._renderResult=o}render(e,t){return this._renderResult?this._renderResult[t-e]:""}}t.MarginViewLineDecorationsOverlay=n})),define(t[385],i([0,1,30,43,316]),(function(e,t,i,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ViewOverlayWidgets=void 0;class o extends n.ViewPart{constructor(e){super(e) +;const t=this._context.configuration.options.get(117);this._widgets={},this._verticalScrollbarWidth=t.verticalScrollbarWidth,this._minimapWidth=t.minimap.minimapWidth,this._horizontalScrollbarHeight=t.horizontalScrollbarHeight,this._editorHeight=t.height,this._editorWidth=t.width,this._domNode=i.createFastDomNode(document.createElement("div")),n.PartFingerprints.write(this._domNode,4),this._domNode.setClassName("overlayWidgets")}dispose(){super.dispose(),this._widgets={}}getDomNode(){return this._domNode}onConfigurationChanged(e){const t=this._context.configuration.options.get(117);return this._verticalScrollbarWidth=t.verticalScrollbarWidth,this._minimapWidth=t.minimap.minimapWidth,this._horizontalScrollbarHeight=t.horizontalScrollbarHeight,this._editorHeight=t.height,this._editorWidth=t.width,!0}addWidget(e){const t=i.createFastDomNode(e.getDomNode());this._widgets[e.getId()]={widget:e,preference:null,domNode:t},t.setPosition("absolute"),t.setAttribute("widgetId",e.getId()),this._domNode.appendChild(t), +this.setShouldRender()}setWidgetPosition(e,t){const i=this._widgets[e.getId()];return i.preference!==t&&(i.preference=t,this.setShouldRender(),!0)}removeWidget(e){const t=e.getId();if(this._widgets.hasOwnProperty(t)){const e=this._widgets[t].domNode.domNode;delete this._widgets[t],e.parentNode.removeChild(e),this.setShouldRender()}}_renderWidget(e){const t=e.domNode;if(null!==e.preference)if(0===e.preference)t.setTop(0),t.setRight(2*this._verticalScrollbarWidth+this._minimapWidth);else if(1===e.preference){const e=t.domNode.clientHeight;t.setTop(this._editorHeight-e-2*this._horizontalScrollbarHeight),t.setRight(2*this._verticalScrollbarWidth+this._minimapWidth)}else 2===e.preference&&(t.setTop(0),t.domNode.style.right="50%");else t.unsetTop()}prepareRender(e){}render(e){this._domNode.setWidth(this._editorWidth);const t=Object.keys(this._widgets);for(let e=0,i=t.length;ethis._context.viewLayout.getVerticalOffsetForLineNumber(e)),this._zoneManager.setDOMWidth(0),this._zoneManager.setDOMHeight(0),this._zoneManager.setOuterHeight(this._context.viewLayout.getScrollHeight()),this._zoneManager.setLineHeight(o.get(51)),this._zoneManager.setPixelRatio(o.get(115)),this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),super.dispose()}onConfigurationChanged(e){const t=this._context.configuration.options;return e.hasChanged(51)&&(this._zoneManager.setLineHeight(t.get(51)),this._render()), +e.hasChanged(115)&&(this._zoneManager.setPixelRatio(t.get(115)),this._domNode.setWidth(this._zoneManager.getDOMWidth()),this._domNode.setHeight(this._zoneManager.getDOMHeight()),this._domNode.domNode.width=this._zoneManager.getCanvasWidth(),this._domNode.domNode.height=this._zoneManager.getCanvasHeight(),this._render()),!0}onFlushed(e){return this._render(),!0}onScrollChanged(e){return e.scrollHeightChanged&&(this._zoneManager.setOuterHeight(e.scrollHeight),this._render()),!0}onZonesChanged(e){return this._render(),!0}getDomNode(){return this._domNode.domNode}setLayout(e){this._domNode.setTop(e.top),this._domNode.setRight(e.right);let t=!1;t=this._zoneManager.setDOMWidth(e.width)||t,(t=this._zoneManager.setDOMHeight(e.height)||t)&&(this._domNode.setWidth(this._zoneManager.getDOMWidth()),this._domNode.setHeight(this._zoneManager.getDOMHeight()),this._domNode.domNode.width=this._zoneManager.getCanvasWidth(),this._domNode.domNode.height=this._zoneManager.getCanvasHeight(),this._render())}setZones(e){ +this._zoneManager.setZones(e),this._render()}_render(){if(0===this._zoneManager.getOuterHeight())return!1;const e=this._zoneManager.getCanvasWidth(),t=this._zoneManager.getCanvasHeight(),i=this._zoneManager.resolveColorZones(),n=this._zoneManager.getId2Color(),o=this._domNode.domNode.getContext("2d");return o.clearRect(0,0,e,t),i.length>0&&this._renderOneLane(o,i,n,e),!0}_renderOneLane(e,t,i,n){let o=0,s=0,r=0;for(const a of t){const t=a.colorId,l=a.from,d=a.to;t!==o?(e.fillRect(0,s,n,r-s),o=t,e.fillStyle=i[o],s=l,r=d):r>=l?r=Math.max(r,d):(e.fillRect(0,s,n,r-s),s=l,r=d)}e.fillRect(0,s,n,r-s)}}t.OverviewRuler=s})),define(t[387],i([0,1,30,12,43,13]),(function(e,t,i,n,o,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ViewZones=void 0;const r=()=>{throw new Error("Invalid change accessor")};class a extends o.ViewPart{constructor(e){super(e);const t=this._context.configuration.options,n=t.get(117);this._lineHeight=t.get(51),this._contentWidth=n.contentWidth,this._contentLeft=n.contentLeft, +this.domNode=i.createFastDomNode(document.createElement("div")),this.domNode.setClassName("view-zones"),this.domNode.setPosition("absolute"),this.domNode.setAttribute("role","presentation"),this.domNode.setAttribute("aria-hidden","true"),this.marginDomNode=i.createFastDomNode(document.createElement("div")),this.marginDomNode.setClassName("margin-view-zones"),this.marginDomNode.setPosition("absolute"),this.marginDomNode.setAttribute("role","presentation"),this.marginDomNode.setAttribute("aria-hidden","true"),this._zones={}}dispose(){super.dispose(),this._zones={}}_recomputeWhitespacesProps(){const e=this._context.viewLayout.getWhitespaces(),t=new Map;for(const i of e)t.set(i.id,i);let i=!1;return this._context.model.changeWhitespace(e=>{const n=Object.keys(this._zones);for(let o=0,s=n.length;o{const o={addZone:e=>(t=!0,this._addZone(i,e)),removeZone:e=>{e&&(t=this._removeZone(i,e)||t)},layoutZone:e=>{e&&(t=this._layoutZone(i,e)||t)}};!function(e,t){try{e(t)}catch(e){n.onUnexpectedError(e)}}(e,o),o.addZone=r,o.removeZone=r,o.layoutZone=r}),t}_addZone(e,t){ +const n=this._computeWhitespaceProps(t),o={whitespaceId:e.insertWhitespace(n.afterViewLineNumber,this._getZoneOrdinal(t),n.heightInPx,n.minWidthInPx),delegate:t,isVisible:!1,domNode:i.createFastDomNode(t.domNode),marginDomNode:t.marginDomNode?i.createFastDomNode(t.marginDomNode):null};return this._safeCallOnComputedHeight(o.delegate,n.heightInPx),o.domNode.setPosition("absolute"),o.domNode.domNode.style.width="100%",o.domNode.setDisplay("none"),o.domNode.setAttribute("monaco-view-zone",o.whitespaceId),this.domNode.appendChild(o.domNode),o.marginDomNode&&(o.marginDomNode.setPosition("absolute"),o.marginDomNode.domNode.style.width="100%",o.marginDomNode.setDisplay("none"),o.marginDomNode.setAttribute("monaco-view-zone",o.whitespaceId),this.marginDomNode.appendChild(o.marginDomNode)),this._zones[o.whitespaceId]=o,this.setShouldRender(),o.whitespaceId}_removeZone(e,t){if(this._zones.hasOwnProperty(t)){const i=this._zones[t];return delete this._zones[t],e.removeWhitespace(i.whitespaceId), +i.domNode.removeAttribute("monaco-visible-view-zone"),i.domNode.removeAttribute("monaco-view-zone"),i.domNode.domNode.parentNode.removeChild(i.domNode.domNode),i.marginDomNode&&(i.marginDomNode.removeAttribute("monaco-visible-view-zone"),i.marginDomNode.removeAttribute("monaco-view-zone"),i.marginDomNode.domNode.parentNode.removeChild(i.marginDomNode.domNode)),this.setShouldRender(),!0}return!1}_layoutZone(e,t){if(this._zones.hasOwnProperty(t)){const i=this._zones[t],n=this._computeWhitespaceProps(i.delegate);return e.changeOneWhitespace(i.whitespaceId,n.afterViewLineNumber,n.heightInPx),this._safeCallOnComputedHeight(i.delegate,n.heightInPx),this.setShouldRender(),!0}return!1}shouldSuppressMouseDownOnViewZone(e){if(this._zones.hasOwnProperty(e)){const t=this._zones[e];return Boolean(t.delegate.suppressMouseDown)}return!1}_heightInPixels(e){return"number"==typeof e.heightInPx?e.heightInPx:"number"==typeof e.heightInLines?this._lineHeight*e.heightInLines:this._lineHeight}_minWidthInPixels(e){ +return"number"==typeof e.minWidthInPx?e.minWidthInPx:0}_safeCallOnComputedHeight(e,t){if("function"==typeof e.onComputedHeight)try{e.onComputedHeight(t)}catch(e){n.onUnexpectedError(e)}}_safeCallOnDomNodeTop(e,t){if("function"==typeof e.onDomNodeTop)try{e.onDomNodeTop(t)}catch(e){n.onUnexpectedError(e)}}prepareRender(e){}render(e){const t=e.viewportData.whitespaceViewportData,i={};let n=!1;for(let e=0,o=t.length;e0;){if(this._collector||this._isConsumingViewEventQueue)return;const e=this._outgoingEvents.shift();e.isNoOp()||this._onEvent.fire(e)}}addViewEventHandler(e){for(let t=0,i=this._eventHandlers.length;t0&&this._emitMany(t)}this._emitOugoingEvents()}emitSingleViewEvent(e){try{this.beginEmitViewEvents().emitViewEvent(e)}finally{this.endEmitViewEvents()}}_emitMany(e){this._viewEventQueue?this._viewEventQueue=this._viewEventQueue.concat(e):this._viewEventQueue=e,this._isConsumingViewEventQueue||this._consumeViewEventQueue()}_consumeViewEventQueue(){try{this._isConsumingViewEventQueue=!0,this._doConsumeQueue()}finally{this._isConsumingViewEventQueue=!1}}_doConsumeQueue(){for(;this._viewEventQueue;){const e=this._viewEventQueue;this._viewEventQueue=null;const t=this._eventHandlers.slice(0);for(const i of t)i.handleEvents(e)}}}t.ViewModelEventDispatcher=o;class s{constructor(){this.viewEvents=[],this.outgoingEvents=[]}emitViewEvent(e){this.viewEvents.push(e)}emitOutgoingEvent(e){this.outgoingEvents.push(e)}}t.ViewModelEventsCollector=s;class r{constructor(e,t,i,n){ +this.kind=0,this._oldContentWidth=e,this._oldContentHeight=t,this.contentWidth=i,this.contentHeight=n,this.contentWidthChanged=this._oldContentWidth!==this.contentWidth,this.contentHeightChanged=this._oldContentHeight!==this.contentHeight}isNoOp(){return!this.contentWidthChanged&&!this.contentHeightChanged}merge(e){return 0!==e.kind?this:new r(this._oldContentWidth,this._oldContentHeight,e.contentWidth,e.contentHeight)}}t.ContentSizeChangedEvent=r;class a{constructor(e,t){this.kind=1,this.oldHasFocus=e,this.hasFocus=t}isNoOp(){return this.oldHasFocus===this.hasFocus}merge(e){return 1!==e.kind?this:new a(this.oldHasFocus,e.hasFocus)}}t.FocusChangedEvent=a;class l{constructor(e,t,i,n,o,s,r,a){this.kind=2,this._oldScrollWidth=e,this._oldScrollLeft=t,this._oldScrollHeight=i,this._oldScrollTop=n,this.scrollWidth=o,this.scrollLeft=s,this.scrollHeight=r,this.scrollTop=a,this.scrollWidthChanged=this._oldScrollWidth!==this.scrollWidth,this.scrollLeftChanged=this._oldScrollLeft!==this.scrollLeft, +this.scrollHeightChanged=this._oldScrollHeight!==this.scrollHeight,this.scrollTopChanged=this._oldScrollTop!==this.scrollTop}isNoOp(){return!(this.scrollWidthChanged||this.scrollLeftChanged||this.scrollHeightChanged||this.scrollTopChanged)}merge(e){return 2!==e.kind?this:new l(this._oldScrollWidth,this._oldScrollLeft,this._oldScrollHeight,this._oldScrollTop,e.scrollWidth,e.scrollLeft,e.scrollHeight,e.scrollTop)}}t.ScrollChangedEvent=l;t.ViewZonesChangedEvent=class{constructor(){this.kind=3}isNoOp(){return!1}merge(e){return this}};class d{constructor(e,t,i,n,o,s,r){this.kind=5,this.oldSelections=e,this.selections=t,this.oldModelVersionId=i,this.modelVersionId=n,this.source=o,this.reason=s,this.reachedMaxCursorCount=r}static _selectionsAreEqual(e,t){if(!e&&!t)return!0;if(!e||!t)return!1;const i=e.length;if(i!==t.length)return!1;for(let n=0;n=t?0:i.horizontalScrollbarSize}_getContentHeight(e,t,i){const n=this._configuration.options;let o=this._linesLayout.getLinesTotalHeight();return n.get(86)?o+=t-n.get(51):o+=this._getHorizontalScrollbarHeight(e,i),o}_updateHeight(){ +const e=this._scrollable.getScrollDimensions(),t=e.width,i=e.height,n=e.contentWidth;this._scrollable.setScrollDimensions(new d(t,e.contentWidth,i,this._getContentHeight(t,i,n)))}getCurrentViewport(){const e=this._scrollable.getScrollDimensions(),t=this._scrollable.getCurrentScrollPosition();return new r.Viewport(t.scrollTop,t.scrollLeft,e.width,e.height)}getFutureViewport(){const e=this._scrollable.getScrollDimensions(),t=this._scrollable.getFutureScrollPosition();return new r.Viewport(t.scrollTop,t.scrollLeft,e.width,e.height)}_computeContentWidth(e){const t=this._configuration.options,i=t.get(118),n=t.get(36);if(i.isViewportWrapping){const i=t.get(117),o=t.get(56);return e>i.contentWidth+n.typicalHalfwidthCharacterWidth&&o.enabled&&"right"===o.side?e+i.verticalScrollbarWidth:e}{const i=t.get(85)*n.typicalHalfwidthCharacterWidth,o=this._linesLayout.getWhitespaceMinWidth();return Math.max(e+i,o)}}setMaxLineWidth(e){const t=this._scrollable.getScrollDimensions() +;this._scrollable.setScrollDimensions(new d(t.width,this._computeContentWidth(e),t.height,t.contentHeight)),this._updateHeight()}saveState(){const e=this._scrollable.getFutureScrollPosition();let t=e.scrollTop,i=this._linesLayout.getLineNumberAtOrAfterVerticalOffset(t);return{scrollTop:t,scrollTopWithoutViewZones:t-this._linesLayout.getWhitespaceAccumulatedHeightBeforeLineNumber(i),scrollLeft:e.scrollLeft}}changeWhitespace(e){const t=this._linesLayout.changeWhitespace(e);return t&&this.onHeightMaybeChanged(),t}getVerticalOffsetForLineNumber(e){return this._linesLayout.getVerticalOffsetForLineNumber(e)}isAfterLines(e){return this._linesLayout.isAfterLines(e)}getLineNumberAtVerticalOffset(e){return this._linesLayout.getLineNumberAtOrAfterVerticalOffset(e)}getWhitespaceAtVerticalOffset(e){return this._linesLayout.getWhitespaceAtVerticalOffset(e)}getLinesViewportData(){const e=this.getCurrentViewport();return this._linesLayout.getLinesViewportData(e.top,e.top+e.height)}getLinesViewportDataAtScrollTop(e){ +const t=this._scrollable.getScrollDimensions();return e+t.height>t.scrollHeight&&(e=t.scrollHeight-t.height),e<0&&(e=0),this._linesLayout.getLinesViewportData(e,e+t.height)}getWhitespaceViewportData(){const e=this.getCurrentViewport();return this._linesLayout.getWhitespaceViewportData(e.top,e.top+e.height)}getWhitespaces(){return this._linesLayout.getWhitespaces()}getContentWidth(){return this._scrollable.getScrollDimensions().contentWidth}getScrollWidth(){return this._scrollable.getScrollDimensions().scrollWidth}getContentHeight(){return this._scrollable.getScrollDimensions().contentHeight}getScrollHeight(){return this._scrollable.getScrollDimensions().scrollHeight}getCurrentScrollLeft(){return this._scrollable.getCurrentScrollPosition().scrollLeft}getCurrentScrollTop(){return this._scrollable.getCurrentScrollPosition().scrollTop}validateScrollPosition(e){return this._scrollable.validateScrollPosition(e)}setScrollPosition(e,t){ +1===t?this._scrollable.setScrollPositionNow(e):this._scrollable.setScrollPositionSmooth(e)}deltaScrollNow(e,t){const i=this._scrollable.getCurrentScrollPosition();this._scrollable.setScrollPositionNow({scrollLeft:i.scrollLeft+e,scrollTop:i.scrollTop+t})}}t.ViewLayout=h})),define(t[389],i([0,1,3,20]),(function(e,t,i,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MoveCaretCommand=void 0;t.MoveCaretCommand=class{constructor(e,t){this._selection=e,this._isMovingLeft=t}getEditOperations(e,t){if(this._selection.startLineNumber!==this._selection.endLineNumber||this._selection.isEmpty())return;const n=this._selection.startLineNumber,o=this._selection.startColumn,s=this._selection.endColumn;if((!this._isMovingLeft||1!==o)&&(this._isMovingLeft||s!==e.getLineMaxColumn(n)))if(this._isMovingLeft){const r=new i.Range(n,o-1,n,o),a=e.getValueInRange(r);t.addEditOperation(r,null),t.addEditOperation(new i.Range(n,s,n,s),a)}else{const r=new i.Range(n,s,n,s+1),a=e.getValueInRange(r) +;t.addEditOperation(r,null),t.addEditOperation(new i.Range(n,o,n,o),a)}}computeCursorState(e,t){return this._isMovingLeft?new n.Selection(this._selection.startLineNumber,this._selection.startColumn-1,this._selection.endLineNumber,this._selection.endColumn-1):new n.Selection(this._selection.startLineNumber,this._selection.startColumn+1,this._selection.endLineNumber,this._selection.endColumn+1)}}})),define(t[124],i([0,1,8]),(function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CodeActionCommandArgs=t.filtersAction=t.mayIncludeActionsOfKind=t.CodeActionKind=void 0;class n{constructor(e){this.value=e}equals(e){return this.value===e.value}contains(e){return this.equals(e)||""===this.value||i.startsWith(e.value,this.value+n.sep)}intersects(e){return this.contains(e)||e.contains(this)}append(e){return new n(this.value+n.sep+e)}}function o(e,t,i){return!!t.contains(e)&&(!i||!t.contains(i))}t.CodeActionKind=n,n.sep=".",n.None=new n("@@none@@"),n.Empty=new n(""),n.QuickFix=new n("quickfix"), +n.Refactor=new n("refactor"),n.Source=new n("source"),n.SourceOrganizeImports=n.Source.append("organizeImports"),n.SourceFixAll=n.Source.append("fixAll"),t.mayIncludeActionsOfKind=function(e,t){return!(e.include&&!e.include.intersects(t))&&((!e.excludes||!e.excludes.some(i=>o(t,i,e.include)))&&!(!e.includeSourceActions&&n.Source.contains(t)))},t.filtersAction=function(e,t){const i=t.kind?new n(t.kind):void 0;return!!(!e.include||i&&e.include.contains(i))&&(!(e.excludes&&i&&e.excludes.some(t=>o(i,t,e.include)))&&(!(!e.includeSourceActions&&i&&n.Source.contains(i))&&!(e.onlyIncludePreferredActions&&!t.isPreferred)))};class s{constructor(e,t,i){this.kind=e,this.apply=t,this.preferred=i}static fromUser(e,t){return e&&"object"==typeof e?new s(s.getKindFromUser(e,t.kind),s.getApplyFromUser(e,t.apply),s.getPreferredUser(e)):new s(t.kind,t.apply,!1)}static getApplyFromUser(e,t){switch("string"==typeof e.apply?e.apply.toLowerCase():""){case"first":return"first";case"never":return"never";case"ifsingle":return"ifSingle" +;default:return t}}static getKindFromUser(e,t){return"string"==typeof e.kind?new n(e.kind):t}static getPreferredUser(e){return"boolean"==typeof e.preferred&&e.preferred}}t.CodeActionCommandArgs=s})),define(t[390],i([0,1,4]),(function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ColorPickerModel=void 0;t.ColorPickerModel=class{constructor(e,t,n){this.presentationIndex=n,this._onColorFlushed=new i.Emitter,this.onColorFlushed=this._onColorFlushed.event,this._onDidChangeColor=new i.Emitter,this.onDidChangeColor=this._onDidChangeColor.event,this._onDidChangePresentation=new i.Emitter,this.onDidChangePresentation=this._onDidChangePresentation.event,this.originalColor=e,this._color=e,this._colorPresentations=t}get color(){return this._color}set color(e){this._color.equals(e)||(this._color=e,this._onDidChangeColor.fire(e))}get presentation(){return this.colorPresentations[this.presentationIndex]}get colorPresentations(){return this._colorPresentations}set colorPresentations(e){ +this._colorPresentations=e,this.presentationIndex>e.length-1&&(this.presentationIndex=0),this._onDidChangePresentation.fire(this.presentation)}selectNextColorPresentation(){this.presentationIndex=(this.presentationIndex+1)%this.colorPresentations.length,this.flushColor(),this._onDidChangePresentation.fire(this.presentation)}guessColorPresentation(e,t){for(let e=0;ee.length)return!1;for(let o=0;o=65&&n<=90&&n+32===s||s>=65&&s<=90&&s+32===n))return!1}return!0}_createOperationsForBlockComment(e,t,i,n,s,r){const l=e.startLineNumber,d=e.startColumn,c=e.endLineNumber,h=e.endColumn,u=s.getLineContent(l),g=s.getLineContent(c);let p,m=u.lastIndexOf(t,d-1+t.length),f=g.indexOf(i,h-1-i.length);if(-1!==m&&-1!==f)if(l===c){u.substring(m+t.length,f).indexOf(i)>=0&&(m=-1,f=-1)}else{const e=u.substring(m+t.length),n=g.substring(0,f);(e.indexOf(i)>=0||n.indexOf(i)>=0)&&(m=-1,f=-1)}-1!==m&&-1!==f?(n&&m+t.length0&&32===g.charCodeAt(f-1)&&(i=" "+i,f-=1),p=a._createRemoveBlockCommentOperations(new o.Range(l,m+t.length+1,c,f+1),t,i)):(p=a._createAddBlockCommentOperations(e,t,i,this._insertSpace),this._usedEndToken=1===p.length?i:null);for(const e of p)r.addTrackedEditOperation(e.range,e.text)}static _createRemoveBlockCommentOperations(e,t,n){let s=[] +;return o.Range.isEmpty(e)?s.push(i.EditOperation.delete(new o.Range(e.startLineNumber,e.startColumn-t.length,e.endLineNumber,e.endColumn+n.length))):(s.push(i.EditOperation.delete(new o.Range(e.startLineNumber,e.startColumn-t.length,e.startLineNumber,e.startColumn))),s.push(i.EditOperation.delete(new o.Range(e.endLineNumber,e.endColumn,e.endLineNumber,e.endColumn+n.length)))),s}static _createAddBlockCommentOperations(e,t,s,r){let a=[];return o.Range.isEmpty(e)?a.push(i.EditOperation.replace(new o.Range(e.startLineNumber,e.startColumn,e.endLineNumber,e.endColumn),t+" "+s)):(a.push(i.EditOperation.insert(new n.Position(e.startLineNumber,e.startColumn),t+(r?" ":""))),a.push(i.EditOperation.insert(new n.Position(e.endLineNumber,e.endColumn),(r?" ":"")+s))),a}getEditOperations(e,t){const i=this._selection.startLineNumber,n=this._selection.startColumn;e.tokenizeIfCheap(i);const o=e.getLanguageIdAtPosition(i,n),s=r.LanguageConfigurationRegistry.getComments(o) +;s&&s.blockCommentStartToken&&s.blockCommentEndToken&&this._createOperationsForBlockComment(this._selection,s.blockCommentStartToken,s.blockCommentEndToken,this._insertSpace,e,t)}computeCursorState(e,t){const i=t.getInverseEditOperations();if(2===i.length){const e=i[0],t=i[1];return new s.Selection(e.range.endLineNumber,e.range.endColumn,t.range.startLineNumber,t.range.startColumn)}{const e=i[0].range,t=this._usedEndToken?-this._usedEndToken.length-1:0;return new s.Selection(e.endLineNumber,e.endColumn+t,e.endLineNumber,e.endColumn+t)}}}t.BlockCommentCommand=a})),define(t[391],i([0,1,8,60,13,3,20,42,216]),(function(e,t,i,n,o,s,r,a,l){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LineCommentCommand=void 0;class d{constructor(e,t,i,n,o){this._selection=e,this._tabSize=t,this._type=i,this._insertSpace=n,this._selectionId=null,this._deltaColumn=0,this._moveEndPositionDown=!1,this._ignoreEmptyLines=o}static _gatherPreflightCommentStrings(e,t,i){e.tokenizeIfCheap(t) +;const n=e.getLanguageIdAtPosition(t,1),o=a.LanguageConfigurationRegistry.getComments(n),s=o?o.lineCommentToken:null;if(!s)return null;let r=[];for(let e=0,n=i-t+1;er?o-1:o}}}t.LineCommentCommand=d})),define(t[392],i([0,1,20,3]),(function(e,t,i,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DragAndDropCommand=void 0;t.DragAndDropCommand=class{constructor(e,t,i){this.selection=e,this.targetPosition=t,this.copy=i,this.targetSelection=null}getEditOperations(e,t){let o=e.getValueInRange(this.selection);this.copy||t.addEditOperation(this.selection,null),t.addEditOperation(new n.Range(this.targetPosition.lineNumber,this.targetPosition.column,this.targetPosition.lineNumber,this.targetPosition.column),o), +!this.selection.containsPosition(this.targetPosition)||this.copy&&(this.selection.getEndPosition().equals(this.targetPosition)||this.selection.getStartPosition().equals(this.targetPosition))?this.copy?this.targetSelection=new i.Selection(this.targetPosition.lineNumber,this.targetPosition.column,this.selection.endLineNumber-this.selection.startLineNumber+this.targetPosition.lineNumber,this.selection.startLineNumber===this.selection.endLineNumber?this.targetPosition.column+this.selection.endColumn-this.selection.startColumn:this.selection.endColumn):this.targetPosition.lineNumber>this.selection.endLineNumber?this.targetSelection=new i.Selection(this.targetPosition.lineNumber-this.selection.endLineNumber+this.selection.startLineNumber,this.targetPosition.column,this.targetPosition.lineNumber,this.selection.startLineNumber===this.selection.endLineNumber?this.targetPosition.column+this.selection.endColumn-this.selection.startColumn:this.selection.endColumn):this.targetPosition.lineNumber0){let e=[];for(let t=0;ti.Range.compareRangesUsingStarts(e.range,t.range));let n=[],o=e[0];for(let t=1;t0){let e=[],t=i.caseOps.length,n=0;for(let s=0,r=o.length;s=t){e.push(o.slice(s));break}switch(i.caseOps[n]){case"U":e.push(o[s].toUpperCase());break;case"u":e.push(o[s].toUpperCase()),n++;break;case"L":e.push(o[s].toLowerCase());break;case"l":e.push(o[s].toLowerCase()),n++;break;default:e.push(o[s])}}o=e.join("")}n+=o}return n}static _substitute(e,t){if(null===t)return"";if(0===e)return t[0];let i="";for(;e>0;){if(e=o)break;let s=e.charCodeAt(n);if(36===s){i.emitUnchanged(n-1),i.emitStatic("$",n+1);continue}if(48===s||38===s){i.emitUnchanged(n-1),i.emitMatchIndex(0,n+1,t),t.length=0;continue}if(49<=s&&s<=57){let r=s-48;if(n+1=o)break;let s=e.charCodeAt(n);switch(s){case 92:i.emitUnchanged(n-1),i.emitStatic("\\",n+1);break;case 110:i.emitUnchanged(n-1),i.emitStatic("\n",n+1);break;case 116:i.emitUnchanged(n-1),i.emitStatic("\t",n+1);break;case 117:case 85:case 108:case 76:i.emitUnchanged(n-1),i.emitStatic("",n+1),t.push(String.fromCharCode(s))}}}return i.finalize()}})),define(t[166],i([0,1]),(function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}), +t.FoldingRegion=t.FoldingRegions=t.MAX_LINE_NUMBER=t.MAX_FOLDING_REGIONS=void 0,t.MAX_FOLDING_REGIONS=65535,t.MAX_LINE_NUMBER=16777215;const i=4278190080;t.FoldingRegions=class{constructor(e,i,n){if(e.length!==i.length||e.length>t.MAX_FOLDING_REGIONS)throw new Error("invalid startIndexes or endIndexes size");this._startIndexes=e,this._endIndexes=i,this._collapseStates=new Uint32Array(Math.ceil(e.length/32)),this._types=n,this._parentsComputed=!1}ensureParentIndices(){if(!this._parentsComputed){this._parentsComputed=!0;let e=[],i=(t,i)=>{let n=e[e.length-1];return this.getStartLineNumber(n)<=t&&this.getEndLineNumber(n)>=i};for(let n=0,o=this._startIndexes.length;nt.MAX_LINE_NUMBER||s>t.MAX_LINE_NUMBER)throw new Error("startLineNumber or endLineNumber must not exceed "+t.MAX_LINE_NUMBER);for(;e.length>0&&!i(o,s);)e.pop();let r=e.length>0?e[e.length-1]:-1;e.push(n),this._startIndexes[n]=o+((255&r)<<24),this._endIndexes[n]=s+((65280&r)<<16)}}} +get length(){return this._startIndexes.length}getStartLineNumber(e){return this._startIndexes[e]&t.MAX_LINE_NUMBER}getEndLineNumber(e){return this._endIndexes[e]&t.MAX_LINE_NUMBER}getType(e){return this._types?this._types[e]:void 0}hasTypes(){return!!this._types}isCollapsed(e){let t=e/32|0,i=e%32;return 0!=(this._collapseStates[t]&1<>>24)+((this._endIndexes[e]&i)>>>16);return n===t.MAX_FOLDING_REGIONS?-1:n}contains(e,t){return this.getStartLineNumber(e)<=t&&this.getEndLineNumber(e)>=t}findIndex(e){let t=0,i=this._startIndexes.length;if(0===i)return-1;for(;t=0){if(this.getEndLineNumber(t)>=e)return t;for(t=this.getParentIndex(t);-1!==t;){if(this.contains(t,e))return t +;t=this.getParentIndex(t)}}return-1}toString(){let e=[];for(let t=0;t=this.endLineNumber}containsLine(e){return this.startLineNumber<=e&&e<=this.endLineNumber}}t.FoldingRegion=n})),define(t[395],i([0,1,4,166]),(function(e,t,i,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}), +t.setCollapseStateForType=t.setCollapseStateForMatchingLines=t.setCollapseStateAtLevel=t.setCollapseStateUp=t.setCollapseStateLevelsUp=t.setCollapseStateLevelsDown=t.toggleCollapseState=t.FoldingModel=void 0;t.FoldingModel=class{constructor(e,t){this._updateEventEmitter=new i.Emitter,this.onDidChange=this._updateEventEmitter.event,this._textModel=e,this._decorationProvider=t,this._regions=new n.FoldingRegions(new Uint32Array(0),new Uint32Array(0)),this._editorDecorationIds=[],this._isInitialized=!1}get regions(){return this._regions}get textModel(){return this._textModel}get isInitialized(){return this._isInitialized}toggleCollapseState(e){if(!e.length)return;e=e.sort((e,t)=>e.regionIndex-t.regionIndex);const t={};this._decorationProvider.changeDecorations(i=>{let n=0,o=-1,s=-1;const r=e=>{for(;ns&&(s=e),n++}} +;for(let i of e){let e=i.regionIndex,n=this._editorDecorationIds[e];if(n&&!t[n]){t[n]=!0,r(e);let i=!this._regions.isCollapsed(e);this._regions.setCollapsed(e,i),o=Math.max(o,this._regions.getEndLineNumber(e))}}r(this._regions.length)}),this._updateEventEmitter.fire({model:this,collapseStateChanged:e})}update(e,t=[]){let i=[],n=-1,o=(o,s)=>{const r=e.getStartLineNumber(o),a=e.getEndLineNumber(o);s&&((e,i)=>{for(let n of t)if(en&&(n=a)},s=0,r=()=>{for(;s=t))break;o(a,i===t),a++}}l=r()}for(;a0)return e}applyMemento(e){if(!Array.isArray(e))return;let t=[];for(let i of e){let e=this.getRegionAtLine(i.startLineNumber);e&&!e.isCollapsed&&t.push(e)}this.toggleCollapseState(t)}dispose(){this._decorationProvider.deltaDecorations(this._editorDecorationIds,[])}getAllRegionsAtLine(e,t){let i=[];if(this._regions){let n=this._regions.findRange(e),o=1;for(;n>=0;){let e=this._regions.toRegion(n) +;t&&!t(e,o)||i.push(e),o++,n=e.parentIndex}}return i}getRegionAtLine(e){if(this._regions){let t=this._regions.findRange(e);if(t>=0)return this._regions.toRegion(t)}return null}getRegionsInside(e,t){let i=[],n=e?e.regionIndex+1:0,o=e?e.endLineNumber:Number.MAX_VALUE;if(t&&2===t.length){const e=[];for(let s=n,r=this._regions.length;s0&&!n.containedBy(e[e.length-1]);)e.pop();e.push(n),t(n,e.length)&&i.push(n)}}else for(let e=n,s=this._regions.length;e1){let s=e.getRegionsInside(i,(e,i)=>e.isCollapsed!==o&&i0)for(let s of n){ +let n=e.getRegionAtLine(s);if(n&&(n.isCollapsed!==t&&o.push(n),i>1)){let s=e.getRegionsInside(n,(e,n)=>e.isCollapsed!==t&&ne.isCollapsed!==t&&ne.isCollapsed!==t&&n<=i);o.push(...n)}e.toggleCollapseState(o)},t.setCollapseStateUp=function(e,t,i){let n=[];for(let o of i){let i=e.getAllRegionsAtLine(o,e=>e.isCollapsed!==t);i.length>0&&n.push(i[0])}e.toggleCollapseState(n)},t.setCollapseStateAtLevel=function(e,t,i,n){let o=e.getRegionsInside(null,(e,o)=>o===t&&e.isCollapsed!==i&&!n.some(t=>e.containsLine(t)));e.toggleCollapseState(o)},t.setCollapseStateForMatchingLines=function(e,t,i){let n=e.textModel,o=e.regions,s=[];for(let e=o.length-1;e>=0;e--)if(i!==o.isCollapsed(e)){let i=o.getStartLineNumber(e);t.test(n.getLineContent(i))&&s.push(o.toRegion(e))}e.toggleCollapseState(s)}, +t.setCollapseStateForType=function(e,t,i){let n=e.regions,o=[];for(let e=n.length-1;e>=0;e--)i!==n.isCollapsed(e)&&t===n.getType(e)&&o.push(n.toRegion(e));e.toggleCollapseState(o)}})),define(t[396],i([0,1,4,3,19]),(function(e,t,i,n,o){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.HiddenRangeModel=void 0;function s(e,t){let i=o.findFirstInSorted(e,e=>t=0&&e[i].endLineNumber>=t?e[i]:null}t.HiddenRangeModel=class{constructor(e){this._updateEventEmitter=new i.Emitter,this._foldingModel=e,this._foldingModelListener=e.onDidChange(e=>this.updateHiddenRanges()),this._hiddenRanges=[],e.regions.length&&this.updateHiddenRanges()}get onDidChange(){return this._updateEventEmitter.event}get hiddenRanges(){return this._hiddenRanges}updateHiddenRanges(){let e=!1,t=[],i=0,o=0,s=Number.MAX_VALUE,r=-1,a=this._foldingModel.regions;for(;i({startLineNumber:e.startLineNumber-1,endLineNumber:e.endLineNumber}))}applyHiddenRanges(e){this._hiddenRanges=e,this._updateEventEmitter.fire(e)}hasRanges(){return this._hiddenRanges.length>0}isHidden(e){return null!==s(this._hiddenRanges,e)}adjustSelections(e){let t=!1,i=this._foldingModel.textModel,n=null,o=e=>(n&&function(e,t){return e>=t.startLineNumber&&e<=t.endLineNumber}(e,n)||(n=s(this._hiddenRanges,e)),n?n.startLineNumber-1:null);for(let n=0,s=e.length;n0&&(this._hiddenRanges=[],this._updateEventEmitter.fire(this._hiddenRanges)),this._foldingModelListener&&(this._foldingModelListener.dispose(),this._foldingModelListener=null)}}})),define(t[217],i([0,1,12,166]),(function(e,t,i,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.sanitizeRanges=t.RangesCollector=t.SyntaxRangeProvider=t.ID_SYNTAX_PROVIDER=void 0;const o=5e3,s={};t.ID_SYNTAX_PROVIDER="syntax";t.SyntaxRangeProvider=class{constructor(e,i,n=o){this.editorModel=e,this.providers=i,this.limit=n,this.id=t.ID_SYNTAX_PROVIDER}compute(e){return function(e,t,n){let o=null,r=e.map((e,r)=>Promise.resolve(e.provideFoldingRanges(t,s,n)).then(e=>{if(!n.isCancellationRequested&&Array.isArray(e)){Array.isArray(o)||(o=[]);let i=t.getLineCount() +;for(let t of e)t.start>0&&t.end>t.start&&t.end<=i&&o.push({start:t.start,end:t.end,rank:r,kind:t.kind})}},i.onUnexpectedExternalError));return Promise.all(r).then(e=>o)}(this.providers,this.editorModel,e).then(e=>{if(e){return a(e,this.limit)}return null})}dispose(){}};class r{constructor(e){this._startIndexes=[],this._endIndexes=[],this._nestingLevels=[],this._nestingLevelCounts=[],this._types=[],this._length=0,this._foldingRangesLimit=e}add(e,t,i,o){if(e>n.MAX_LINE_NUMBER||t>n.MAX_LINE_NUMBER)return;let s=this._length;this._startIndexes[s]=e,this._endIndexes[s]=t,this._nestingLevels[s]=o,this._types[s]=i,this._length++,o<30&&(this._nestingLevelCounts[o]=(this._nestingLevelCounts[o]||0)+1)}toIndentRanges(){if(this._length<=this._foldingRangesLimit){let e=new Uint32Array(this._length),t=new Uint32Array(this._length);for(let i=0;ithis._foldingRangesLimit){t=i;break}e+=n}}let i=new Uint32Array(this._foldingRangesLimit),o=new Uint32Array(this._foldingRangesLimit),s=[];for(let n=0,r=0;n{let i=e.start-t.start;return 0===i&&(i=e.rank-t.rank),i}),n=new r(t),o=void 0,s=[];for(let e of i)if(o){if(e.start>o.start)if(e.end<=o.end)s.push(o),o=e,n.add(e.start,e.end,e.kind&&e.kind.value,s.length);else{if(e.start>o.end){do{o=s.pop()}while(o&&e.start>o.end);o&&s.push(o),o=e}n.add(e.start,e.end,e.kind&&e.kind.value,s.length)}}else o=e,n.add(e.start,e.end,e.kind&&e.kind.value,s.length);return n.toIndentRanges()}t.RangesCollector=r,t.sanitizeRanges=a})),define(t[397],i([0,1,217]),(function(e,t,i){"use strict" +;Object.defineProperty(t,"__esModule",{value:!0}),t.InitializingRangeProvider=t.ID_INIT_PROVIDER=void 0,t.ID_INIT_PROVIDER="init";t.InitializingRangeProvider=class{constructor(e,i,n,o){if(this.editorModel=e,this.id=t.ID_INIT_PROVIDER,i.length){let t=t=>({range:{startLineNumber:t.startLineNumber,startColumn:0,endLineNumber:t.endLineNumber,endColumn:e.getLineLength(t.endLineNumber)},options:{stickiness:1}});this.decorationIds=e.deltaDecorations([],i.map(t)),this.timeout=setTimeout(n,o)}}dispose(){this.decorationIds&&(this.editorModel.deltaDecorations(this.decorationIds,[]),this.decorationIds=void 0),"number"==typeof this.timeout&&(clearTimeout(this.timeout),this.timeout=void 0)}compute(e){let t=[];if(this.decorationIds)for(let e of this.decorationIds){let i=this.editorModel.getDecorationRange(e);i&&t.push({start:i.startLineNumber,end:i.endLineNumber,rank:1})}return Promise.resolve(i.sanitizeRanges(t,Number.MAX_VALUE))}}})),define(t[218],i([0,1,60,3]),(function(e,t,i,n){"use strict" +;Object.defineProperty(t,"__esModule",{value:!0}),t.FormattingEdit=void 0;class o{static _handleEolEdits(e,t){let i=void 0,n=[];for(let e of t)"number"==typeof e.eol&&(i=e.eol),e.range&&"string"==typeof e.text&&n.push(e);return"number"==typeof i&&e.hasModel()&&e.getModel().pushEOL(i),n}static _isFullModelReplaceEdit(e,t){if(!e.hasModel())return!1;const i=e.getModel(),n=i.validateRange(t.range);return i.getFullModelRange().equalsRange(n)}static execute(e,t,s){s&&e.pushUndoStop();const r=o._handleEolEdits(e,t);1===r.length&&o._isFullModelReplaceEdit(e,r[0])?e.executeEdits("formatEditsCommand",r.map(e=>i.EditOperation.replace(n.Range.lift(e.range),e.text))):e.executeEdits("formatEditsCommand",r.map(e=>i.EditOperation.replaceMove(n.Range.lift(e.range),e.text))),s&&e.pushUndoStop()}}t.FormattingEdit=o})),define(t[219],i([0,1,2,4,16]),(function(e,t,i,n,o){"use strict";function s(e,t){return!!e[t]}Object.defineProperty(t,"__esModule",{value:!0}), +t.ClickLinkGesture=t.ClickLinkOptions=t.ClickLinkKeyboardEvent=t.ClickLinkMouseEvent=void 0;class r{constructor(e,t){this.target=e.target,this.hasTriggerModifier=s(e.event,t.triggerModifier),this.hasSideBySideModifier=s(e.event,t.triggerSideBySideModifier),this.isNoneOrSingleMouseDown=e.event.detail<=1}}t.ClickLinkMouseEvent=r;class a{constructor(e,t){this.keyCodeIsTriggerKey=e.keyCode===t.triggerKey,this.keyCodeIsSideBySideKey=e.keyCode===t.triggerSideBySideKey,this.hasTriggerModifier=s(e,t.triggerModifier)}}t.ClickLinkKeyboardEvent=a;class l{constructor(e,t,i,n){this.triggerKey=e,this.triggerModifier=t,this.triggerSideBySideKey=i,this.triggerSideBySideModifier=n}equals(e){return this.triggerKey===e.triggerKey&&this.triggerModifier===e.triggerModifier&&this.triggerSideBySideKey===e.triggerSideBySideKey&&this.triggerSideBySideModifier===e.triggerSideBySideModifier}}function d(e){ +return"altKey"===e?o.isMacintosh?new l(57,"metaKey",6,"altKey"):new l(5,"ctrlKey",6,"altKey"):o.isMacintosh?new l(6,"altKey",57,"metaKey"):new l(6,"altKey",5,"ctrlKey")}t.ClickLinkOptions=l;class c extends i.Disposable{constructor(e){super(),this._onMouseMoveOrRelevantKeyDown=this._register(new n.Emitter),this.onMouseMoveOrRelevantKeyDown=this._onMouseMoveOrRelevantKeyDown.event,this._onExecute=this._register(new n.Emitter),this.onExecute=this._onExecute.event,this._onCancel=this._register(new n.Emitter),this.onCancel=this._onCancel.event,this._editor=e,this._opts=d(this._editor.getOption(61)),this._lastMouseMoveEvent=null,this._hasTriggerKeyOnMouseDown=!1,this._lineNumberOnMouseDown=0,this._register(this._editor.onDidChangeConfiguration(e=>{if(e.hasChanged(61)){const e=d(this._editor.getOption(61));if(this._opts.equals(e))return;this._opts=e,this._lastMouseMoveEvent=null,this._hasTriggerKeyOnMouseDown=!1,this._lineNumberOnMouseDown=0,this._onCancel.fire()}})), +this._register(this._editor.onMouseMove(e=>this._onEditorMouseMove(new r(e,this._opts)))),this._register(this._editor.onMouseDown(e=>this._onEditorMouseDown(new r(e,this._opts)))),this._register(this._editor.onMouseUp(e=>this._onEditorMouseUp(new r(e,this._opts)))),this._register(this._editor.onKeyDown(e=>this._onEditorKeyDown(new a(e,this._opts)))),this._register(this._editor.onKeyUp(e=>this._onEditorKeyUp(new a(e,this._opts)))),this._register(this._editor.onMouseDrag(()=>this._resetHandler())),this._register(this._editor.onDidChangeCursorSelection(e=>this._onDidChangeCursorSelection(e))),this._register(this._editor.onDidChangeModel(e=>this._resetHandler())),this._register(this._editor.onDidChangeModelContent(()=>this._resetHandler())),this._register(this._editor.onDidScrollChange(e=>{(e.scrollTopChanged||e.scrollLeftChanged)&&this._resetHandler()}))}_onDidChangeCursorSelection(e){e.selection&&e.selection.startColumn!==e.selection.endColumn&&this._resetHandler()}_onEditorMouseMove(e){ +this._lastMouseMoveEvent=e,this._onMouseMoveOrRelevantKeyDown.fire([e,null])}_onEditorMouseDown(e){this._hasTriggerKeyOnMouseDown=e.hasTriggerModifier,this._lineNumberOnMouseDown=e.target.position?e.target.position.lineNumber:0}_onEditorMouseUp(e){const t=e.target.position?e.target.position.lineNumber:0;this._hasTriggerKeyOnMouseDown&&this._lineNumberOnMouseDown&&this._lineNumberOnMouseDown===t&&this._onExecute.fire(e)}_onEditorKeyDown(e){this._lastMouseMoveEvent&&(e.keyCodeIsTriggerKey||e.keyCodeIsSideBySideKey&&e.hasTriggerModifier)?this._onMouseMoveOrRelevantKeyDown.fire([this._lastMouseMoveEvent,e]):e.hasTriggerModifier&&this._onCancel.fire()}_onEditorKeyUp(e){e.keyCodeIsTriggerKey&&this._onCancel.fire()}_resetHandler(){this._lastMouseMoveEvent=null,this._hasTriggerKeyOnMouseDown=!1,this._onCancel.fire()}}t.ClickLinkGesture=c})),define(t[220],i([0,1,15,12]),(function(e,t,i,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.HoverOperation=void 0;t.HoverOperation=class{ +constructor(e,t,n,o,s){this._computer=e,this._state=0,this._hoverTime=s,this._firstWaitScheduler=new i.RunOnceScheduler(()=>this._triggerAsyncComputation(),0),this._secondWaitScheduler=new i.RunOnceScheduler(()=>this._triggerSyncComputation(),0),this._loadingMessageScheduler=new i.RunOnceScheduler(()=>this._showLoadingMessage(),0),this._asyncComputationPromise=null,this._asyncComputationPromiseDone=!1,this._completeCallback=t,this._errorCallback=n,this._progressCallback=o}setHoverTime(e){this._hoverTime=e}_firstWaitTime(){return this._hoverTime/2}_secondWaitTime(){return this._hoverTime/2}_loadingMessageTime(){return 3*this._hoverTime}_triggerAsyncComputation(){this._state=2,this._secondWaitScheduler.schedule(this._secondWaitTime()),this._computer.computeAsync?(this._asyncComputationPromiseDone=!1,this._asyncComputationPromise=i.createCancelablePromise(e=>this._computer.computeAsync(e)),this._asyncComputationPromise.then(e=>{this._asyncComputationPromiseDone=!0,this._withAsyncResult(e) +},e=>this._onError(e))):this._asyncComputationPromiseDone=!0}_triggerSyncComputation(){this._computer.computeSync&&this._computer.onResult(this._computer.computeSync(),!0),this._asyncComputationPromiseDone?(this._state=0,this._onComplete(this._computer.getResult())):(this._state=3,this._onProgress(this._computer.getResult()))}_showLoadingMessage(){3===this._state&&this._onProgress(this._computer.getResultWithLoadingMessage())}_withAsyncResult(e){e&&this._computer.onResult(e,!1),3===this._state&&(this._state=0,this._onComplete(this._computer.getResult()))}_onComplete(e){this._completeCallback(e)}_onError(e){this._errorCallback?this._errorCallback(e):n.onUnexpectedError(e)}_onProgress(e){this._progressCallback(e)}start(e){if(0===e)0===this._state&&(this._state=1,this._firstWaitScheduler.schedule(this._firstWaitTime()),this._loadingMessageScheduler.schedule(this._loadingMessageTime()));else switch(this._state){case 0:this._triggerAsyncComputation(),this._secondWaitScheduler.cancel(), +this._triggerSyncComputation();break;case 2:this._secondWaitScheduler.cancel(),this._triggerSyncComputation()}}cancel(){this._loadingMessageScheduler.cancel(),1===this._state&&this._firstWaitScheduler.cancel(),2===this._state&&(this._secondWaitScheduler.cancel(),this._asyncComputationPromise&&(this._asyncComputationPromise.cancel(),this._asyncComputationPromise=null)),3===this._state&&this._asyncComputationPromise&&(this._asyncComputationPromise.cancel(),this._asyncComputationPromise=null),this._state=0}}})),define(t[221],i([0,1,7,54,301]),(function(e,t,i,n,o){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.GlyphHoverWidget=t.ContentHoverWidget=void 0;class s extends n.Widget{constructor(e,t,i,n){super(),this._hoverVisibleKey=i,this._keybindingService=n,this.allowEditorOverflow=!0,this._hover=this._register(new o.HoverWidget),this._id=e,this._editor=t,this._isVisible=!1,this._stoleFocus=!1,this.onkeydown(this._hover.containerDomNode,e=>{e.equals(9)&&this.hide()}), +this._register(this._editor.onDidChangeConfiguration(e=>{e.hasChanged(36)&&this.updateFont()})),this._editor.onDidLayoutChange(e=>this.layout()),this.layout(),this._editor.addContentWidget(this),this._showAtPosition=null,this._showAtRange=null,this._stoleFocus=!1}get isVisible(){return this._isVisible}set isVisible(e){this._isVisible=e,i.toggleClass(this._hover.containerDomNode,"hidden",!this._isVisible)}getId(){return this._id}getDomNode(){return this._hover.containerDomNode}showAt(e,t,i){this._showAtPosition=e,this._showAtRange=t,this._hoverVisibleKey.set(!0),this.isVisible=!0,this._editor.layoutContentWidget(this),this._editor.render(),this._stoleFocus=i,i&&this._hover.containerDomNode.focus()}hide(){this.isVisible&&(setTimeout(()=>{this.isVisible||this._hoverVisibleKey.set(!1)},0),this.isVisible=!1,this._editor.layoutContentWidget(this),this._stoleFocus&&this._editor.focus())}getPosition(){return this.isVisible?{position:this._showAtPosition,range:this._showAtRange,preference:[1,2]}:null}dispose(){ +this._editor.removeContentWidget(this),super.dispose()}updateFont(){Array.prototype.slice.call(this._hover.contentsDomNode.getElementsByClassName("code")).forEach(e=>this._editor.applyFontInfo(e))}updateContents(e){this._hover.contentsDomNode.textContent="",this._hover.contentsDomNode.appendChild(e),this.updateFont(),this._editor.layoutContentWidget(this),this._hover.onContentsChanged()}_renderAction(e,t){const i=this._keybindingService.lookupKeybinding(t.commandId),n=i?i.getLabel():null;return o.renderHoverAction(e,t,n)}layout(){const e=Math.max(this._editor.getLayoutInfo().height/4,250),{fontSize:t,lineHeight:i}=this._editor.getOption(36);this._hover.contentsDomNode.style.fontSize=`${t}px`,this._hover.contentsDomNode.style.lineHeight=`${i}px`,this._hover.contentsDomNode.style.maxHeight=`${e}px`,this._hover.contentsDomNode.style.maxWidth=`${Math.max(.66*this._editor.getLayoutInfo().width,500)}px`}}t.ContentHoverWidget=s;class r extends n.Widget{constructor(e,t){super(),this._id=e,this._editor=t, +this._isVisible=!1,this._domNode=document.createElement("div"),this._domNode.className="monaco-hover hidden",this._domNode.setAttribute("aria-hidden","true"),this._domNode.setAttribute("role","tooltip"),this._showAtLineNumber=-1,this._register(this._editor.onDidChangeConfiguration(e=>{e.hasChanged(36)&&this.updateFont()})),this._editor.addOverlayWidget(this)}get isVisible(){return this._isVisible}set isVisible(e){this._isVisible=e,i.toggleClass(this._domNode,"hidden",!this._isVisible)}getId(){return this._id}getDomNode(){return this._domNode}showAt(e){this._showAtLineNumber=e,this.isVisible||(this.isVisible=!0);const t=this._editor.getLayoutInfo(),i=this._editor.getTopForLineNumber(this._showAtLineNumber),n=this._editor.getScrollTop(),o=this._editor.getOption(51),s=i-n-(this._domNode.clientHeight-o)/2;this._domNode.style.left=`${t.glyphMarginLeft+t.glyphMarginWidth}px`,this._domNode.style.top=`${Math.max(Math.round(s),0)}px`}hide(){this.isVisible&&(this.isVisible=!1)}getPosition(){return null}dispose(){ +this._editor.removeOverlayWidget(this),super.dispose()}updateFont(){[...Array.prototype.slice.call(this._domNode.getElementsByTagName("code")),...Array.prototype.slice.call(this._domNode.getElementsByClassName("code"))].forEach(e=>this._editor.applyFontInfo(e))}updateContents(e){this._domNode.textContent="",this._domNode.appendChild(e),this.updateFont()}}t.GlyphHoverWidget=r})),define(t[398],i([0,1,20]),(function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.InPlaceReplaceCommand=void 0;t.InPlaceReplaceCommand=class{constructor(e,t,i){this._editRange=e,this._originalSelection=t,this._text=i}getEditOperations(e,t){t.addTrackedEditOperation(this._editRange,this._text)}computeCursorState(e,t){const n=t.getInverseEditOperations()[0].range +;return this._originalSelection.isEmpty()?new i.Selection(n.endLineNumber,Math.min(this._originalSelection.positionColumn,n.endColumn),n.endLineNumber,Math.min(this._originalSelection.positionColumn,n.endColumn)):new i.Selection(n.endLineNumber,n.endColumn-this._text.length,n.endLineNumber,n.endColumn)}}})),define(t[222],i([0,1]),(function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.generateIndent=t.getSpaceCnt=void 0,t.getSpaceCnt=function(e,t){let i=0;for(let n=0;n=s)return null;let r=[];for(let t=n;t<=s;t++)r.push(e.getLineContent(t));let a=r.slice(0);return a.sort(o.getCollator().compare),!0===i&&(a=a.reverse()),{startLineNumber:n,endLineNumber:s,before:r,after:a}}t.SortLinesCommand=o,o._COLLATOR=null})),define(t[223],i([0,1,13,3,69]),(function(e,t,i,n,o){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BracketSelectionRangeProvider=void 0;class s{provideSelectionRanges(e,t){return r(this,void 0,void 0,(function*(){const i=[];for(const n of t){const t=[];i.push(t);const o=new Map;yield new Promise(t=>s._bracketsRightYield(t,0,e,n,o)),yield new Promise(i=>s._bracketsLeftYield(i,0,e,n,o,t))}return i}))}static _bracketsRightYield(e,t,i,n,r){const a=new Map,l=Date.now();for(;;){if(t>=s._maxRounds){e();break}if(!n){e();break}let d=i.findNextBracket(n);if(!d){e();break} +if(Date.now()-l>s._maxDuration){setTimeout(()=>s._bracketsRightYield(e,t+1,i,n,r));break}const c=d.close[0];if(d.isOpen){let e=a.has(c)?a.get(c):0;a.set(c,e+1)}else{let e=a.has(c)?a.get(c):0;if(e-=1,a.set(c,Math.max(0,e)),e<0){let e=r.get(c);e||(e=new o.LinkedList,r.set(c,e)),e.push(d.range)}}n=d.range.getEndPosition()}}static _bracketsLeftYield(e,t,i,o,r,a){const l=new Map,d=Date.now();for(;;){if(t>=s._maxRounds&&0===r.size){e();break}if(!o){e();break}let c=i.findPrevBracket(o);if(!c){e();break}if(Date.now()-d>s._maxDuration){setTimeout(()=>s._bracketsLeftYield(e,t+1,i,o,r,a));break}const h=c.close[0];if(c.isOpen){let e=l.has(h)?l.get(h):0;if(e-=1,l.set(h,Math.max(0,e)),e<0){let e=r.get(h);if(e){let t=e.shift();0===e.size&&r.delete(h);const o=n.Range.fromPositions(c.range.getEndPosition(),t.getStartPosition()),l=n.Range.fromPositions(c.range.getStartPosition(),t.getEndPosition());a.push({range:o}),a.push({range:l}),s._addBracketLeading(i,l,a)}}}else{let e=l.has(h)?l.get(h):0;l.set(h,e+1)} +o=c.range.getStartPosition()}}static _addBracketLeading(e,t,o){if(t.startLineNumber===t.endLineNumber)return;const s=t.startLineNumber,r=e.getLineFirstNonWhitespaceColumn(s);0!==r&&r!==t.startColumn&&(o.push({range:n.Range.fromPositions(new i.Position(s,r),t.getEndPosition())}),o.push({range:n.Range.fromPositions(new i.Position(s,1),t.getEndPosition())}));const a=s-1;if(a>0){const s=e.getLineFirstNonWhitespaceColumn(a);s===t.startColumn&&s!==e.getLineLastNonWhitespaceColumn(a)&&(o.push({range:n.Range.fromPositions(new i.Position(a,s),t.getEndPosition())}),o.push({range:n.Range.fromPositions(new i.Position(a,1),t.getEndPosition())}))}}}t.BracketSelectionRangeProvider=s,s._maxDuration=30,s._maxRounds=2})),define(t[401],i([0,1,3,8]),(function(e,t,i,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.WordSelectionRangeProvider=void 0;t.WordSelectionRangeProvider=class{provideSelectionRanges(e,t){const i=[];for(const n of t){const t=[];i.push(t),this._addInWordRanges(t,e,n), +this._addWordRanges(t,e,n),this._addWhitespaceLine(t,e,n),t.push({range:e.getFullModelRange()})}return i}_addInWordRanges(e,t,o){const s=t.getWordAtPosition(o);if(!s)return;let{word:r,startColumn:a}=s,l=o.column-a,d=l,c=l,h=0;for(;d>=0;d--){let e=r.charCodeAt(d);if(d!==l&&(95===e||45===e))break;if(n.isLowerAsciiLetter(e)&&n.isUpperAsciiLetter(h))break;h=e}for(d+=1;c0&&0===t.getLineFirstNonWhitespaceColumn(n.lineNumber)&&0===t.getLineLastNonWhitespaceColumn(n.lineNumber)&&e.push({range:new i.Range(n.lineNumber,1,n.lineNumber,t.getLineMaxColumn(n.lineNumber))})}}})),define(t[125],i([0,1]),(function(e,t){"use strict" +;Object.defineProperty(t,"__esModule",{value:!0}),t.SnippetParser=t.TextmateSnippet=t.Variable=t.FormatString=t.Transform=t.Choice=t.Placeholder=t.TransformableMarker=t.Text=t.Marker=t.Scanner=void 0;class i{constructor(){this.value="",this.pos=0}static isDigitCharacter(e){return e>=48&&e<=57}static isVariableCharacter(e){return 95===e||e>=97&&e<=122||e>=65&&e<=90}text(e){this.value=e,this.pos=0}tokenText(e){return this.value.substr(e.pos,e.len)}next(){if(this.pos>=this.value.length)return{type:14,pos:this.pos,len:0};let e,t=this.pos,n=0,o=this.value.charCodeAt(t);if("number"==typeof(e=i._table[o]))return this.pos+=1,{type:e,pos:t,len:1};if(i.isDigitCharacter(o)){e=8;do{n+=1,o=this.value.charCodeAt(t+n)}while(i.isDigitCharacter(o));return this.pos+=n,{type:e,pos:t,len:n}}if(i.isVariableCharacter(o)){e=9;do{o=this.value.charCodeAt(t+ ++n)}while(i.isVariableCharacter(o)||i.isDigitCharacter(o));return this.pos+=n,{type:e,pos:t,len:n}}e=10;do{n+=1,o=this.value.charCodeAt(t+n) +}while(!isNaN(o)&&void 0===i._table[o]&&!i.isDigitCharacter(o)&&!i.isVariableCharacter(o));return this.pos+=n,{type:e,pos:t,len:n}}}t.Scanner=i,i._table={36:0,58:1,44:2,123:3,125:4,92:5,47:6,124:7,43:11,45:12,63:13};class n{constructor(){this._children=[]}appendChild(e){return e instanceof o&&this._children[this._children.length-1]instanceof o?this._children[this._children.length-1].value+=e.value:(e.parent=this,this._children.push(e)),this}replace(e,t){const{parent:i}=e,n=i.children.indexOf(e),o=i.children.slice(0);o.splice(n,1,...t),i._children=o,function e(t,i){for(const n of t)n.parent=i,e(n.children,n)}(t,i)}get children(){return this._children}get snippet(){let e=this;for(;;){if(!e)return;if(e instanceof u)return e;e=e.parent}}toString(){return this.children.reduce((e,t)=>e+t.toString(),"")}len(){return 0}}t.Marker=n;class o extends n{constructor(e){super(),this.value=e}toString(){return this.value}len(){return this.value.length}clone(){return new o(this.value)}}t.Text=o;class s extends n{} +t.TransformableMarker=s;class r extends s{constructor(e){super(),this.index=e}static compareByIndex(e,t){return e.index===t.index?0:e.isFinalTabstop?1:t.isFinalTabstop?-1:e.indext.index?1:0}get isFinalTabstop(){return 0===this.index}get choice(){return 1===this._children.length&&this._children[0]instanceof a?this._children[0]:void 0}clone(){let e=new r(this.index);return this.transform&&(e.transform=this.transform.clone()),e._children=this.children.map(e=>e.clone()),e}}t.Placeholder=r;class a extends n{constructor(){super(...arguments),this.options=[]}appendChild(e){return e instanceof o&&(e.parent=this,this.options.push(e)),this}toString(){return this.options[0].value}len(){return this.options[0].len()}clone(){let e=new a;return this.options.forEach(e.appendChild,e),e}}t.Choice=a;class l extends n{constructor(){super(...arguments),this.regexp=new RegExp("")}resolve(e){const t=this;let i=!1,n=e.replace(this.regexp,(function(){return i=!0, +t._replace(Array.prototype.slice.call(arguments,0,-2))}));return!i&&this._children.some(e=>e instanceof d&&Boolean(e.elseValue))&&(n=this._replace([])),n}_replace(e){let t="";for(const i of this._children)if(i instanceof d){let n=e[i.index]||"";t+=n=i.resolve(n)}else t+=i.toString();return t}toString(){return""}clone(){let e=new l;return e.regexp=new RegExp(this.regexp.source,(this.regexp.ignoreCase?"i":"")+(this.regexp.global?"g":"")),e._children=this.children.map(e=>e.clone()),e}}t.Transform=l;class d extends n{constructor(e,t,i,n){super(),this.index=e,this.shorthandName=t,this.ifValue=i,this.elseValue=n}resolve(e){return"upcase"===this.shorthandName?e?e.toLocaleUpperCase():"":"downcase"===this.shorthandName?e?e.toLocaleLowerCase():"":"capitalize"===this.shorthandName?e?e[0].toLocaleUpperCase()+e.substr(1):"":"pascalcase"===this.shorthandName?e?this._toPascalCase(e):"":Boolean(e)&&"string"==typeof this.ifValue?this.ifValue:Boolean(e)||"string"!=typeof this.elseValue?e||"":this.elseValue}_toPascalCase(e){ +const t=e.match(/[a-z]+/gi);return t?t.map((function(e){return e.charAt(0).toUpperCase()+e.substr(1).toLowerCase()})).join(""):e}clone(){return new d(this.index,this.shorthandName,this.ifValue,this.elseValue)}}t.FormatString=d;class c extends s{constructor(e){super(),this.name=e}resolve(e){let t=e.resolve(this);return this.transform&&(t=this.transform.resolve(t||"")),void 0!==t&&(this._children=[new o(t)],!0)}clone(){const e=new c(this.name);return this.transform&&(e.transform=this.transform.clone()),e._children=this.children.map(e=>e.clone()),e}}function h(e,t){const i=[...e];for(;i.length>0;){const e=i.shift();if(!t(e))break;i.unshift(...e.children)}}t.Variable=c;class u extends n{get placeholderInfo(){if(!this._placeholders){let e,t=[];this.walk((function(i){return i instanceof r&&(t.push(i),e=!e||e.indexn===e?(i=!0, +!1):(t+=n.len(),!0)),i?t:-1}fullLen(e){let t=0;return h([e],e=>(t+=e.len(),!0)),t}enclosingPlaceholders(e){let t=[],{parent:i}=e;for(;i;)i instanceof r&&t.push(i),i=i.parent;return t}resolveVariables(e){return this.walk(t=>(t instanceof c&&t.resolve(e)&&(this._placeholders=void 0),!0)),this}appendChild(e){return this._placeholders=void 0,super.appendChild(e)}replace(e,t){return this._placeholders=void 0,super.replace(e,t)}clone(){let e=new u;return this._children=this.children.map(e=>e.clone()),e}walk(e){h(this.children,e)}}t.TextmateSnippet=u;t.SnippetParser=class{constructor(){this._scanner=new i,this._token={type:14,pos:0,len:0}}static escape(e){return e.replace(/\$|}|\\/g,"\\$&")}static guessNeedsClipboard(e){return/\${?CLIPBOARD/.test(e)}parse(e,t,i){this._scanner.text(e),this._token=this._scanner.next();const n=new u;for(;this._parse(n););const o=new Map,s=[];let a=0;n.walk(e=>(e instanceof r&&(a+=1, +e.isFinalTabstop?o.set(0,void 0):!o.has(e.index)&&e.children.length>0?o.set(e.index,e.children):s.push(e)),!0));for(const e of s){const t=o.get(e.index);if(t){const i=new r(e.index);i.transform=e.transform;for(const e of t)i.appendChild(e.clone());n.replace(e,[i])}}return i||(i=a>0&&t),!o.has(0)&&i&&n.appendChild(new r(0)),n}_accept(e,t){if(void 0===e||this._token.type===e){let e=!t||this._scanner.tokenText(this._token);return this._token=this._scanner.next(),e}return!1}_backTo(e){return this._scanner.pos=e.pos+e.len,this._token=e,!1}_until(e){const t=this._token;for(;this._token.type!==e;){if(14===this._token.type)return!1;if(5===this._token.type){const e=this._scanner.next();if(0!==e.type&&4!==e.type&&5!==e.type)return!1}this._token=this._scanner.next()}const i=this._scanner.value.substring(t.pos,this._token.pos).replace(/\\(\$|}|\\)/g,"$1");return this._token=this._scanner.next(),i}_parse(e){ +return this._parseEscaped(e)||this._parseTabstopOrVariableName(e)||this._parseComplexPlaceholder(e)||this._parseComplexVariable(e)||this._parseAnything(e)}_parseEscaped(e){let t;return!!(t=this._accept(5,!0))&&(t=this._accept(0,!0)||this._accept(4,!0)||this._accept(5,!0)||t,e.appendChild(new o(t)),!0)}_parseTabstopOrVariableName(e){let t;const i=this._token;return this._accept(0)&&(t=this._accept(9,!0)||this._accept(8,!0))?(e.appendChild(/^\d+$/.test(t)?new r(Number(t)):new c(t)),!0):this._backTo(i)}_parseComplexPlaceholder(e){let t;const i=this._token;if(!(this._accept(0)&&this._accept(3)&&(t=this._accept(8,!0))))return this._backTo(i);const n=new r(Number(t));if(this._accept(1))for(;;){if(this._accept(4))return e.appendChild(n),!0;if(!this._parse(n))return e.appendChild(new o("${"+t+":")),n.children.forEach(e.appendChild,e),!0}else{if(!(n.index>0&&this._accept(7)))return this._accept(6)?this._parseTransform(n)?(e.appendChild(n),!0):(this._backTo(i),!1):this._accept(4)?(e.appendChild(n),!0):this._backTo(i);{ +const t=new a;for(;;){if(this._parseChoiceElement(t)){if(this._accept(2))continue;if(this._accept(7)&&(n.appendChild(t),this._accept(4)))return e.appendChild(n),!0}return this._backTo(i),!1}}}}_parseChoiceElement(e){const t=this._token,i=[];for(;2!==this._token.type&&7!==this._token.type;){let e;if(!(e=(e=this._accept(5,!0))?this._accept(2,!0)||this._accept(7,!0)||this._accept(5,!0)||e:this._accept(void 0,!0)))return this._backTo(t),!1;i.push(e)}return 0===i.length?(this._backTo(t),!1):(e.appendChild(new o(i.join(""))),!0)}_parseComplexVariable(e){let t;const i=this._token;if(!(this._accept(0)&&this._accept(3)&&(t=this._accept(9,!0))))return this._backTo(i);const n=new c(t);if(!this._accept(1))return this._accept(6)?this._parseTransform(n)?(e.appendChild(n),!0):(this._backTo(i),!1):this._accept(4)?(e.appendChild(n),!0):this._backTo(i);for(;;){if(this._accept(4))return e.appendChild(n),!0;if(!this._parse(n))return e.appendChild(new o("${"+t+":")),n.children.forEach(e.appendChild,e),!0}}_parseTransform(e){ +let t=new l,i="",n="";for(;!this._accept(6);){let e;if(e=this._accept(5,!0))i+=e=this._accept(6,!0)||e;else{if(14===this._token.type)return!1;i+=this._accept(void 0,!0)}}for(;!this._accept(6);){let e;if(e=this._accept(5,!0))e=this._accept(5,!0)||this._accept(6,!0)||e,t.appendChild(new o(e));else if(!this._parseFormatString(t)&&!this._parseAnything(t))return!1}for(;!this._accept(4);){if(14===this._token.type)return!1;n+=this._accept(void 0,!0)}try{t.regexp=new RegExp(i,n)}catch(e){return!1}return e.transform=t,!0}_parseFormatString(e){const t=this._token;if(!this._accept(0))return!1;let i=!1;this._accept(3)&&(i=!0);let n=this._accept(8,!0);if(!n)return this._backTo(t),!1;if(!i)return e.appendChild(new d(Number(n))),!0;if(this._accept(4))return e.appendChild(new d(Number(n))),!0;if(!this._accept(1))return this._backTo(t),!1;if(this._accept(6)){let i=this._accept(9,!0);return i&&this._accept(4)?(e.appendChild(new d(Number(n),i)),!0):(this._backTo(t),!1)}if(this._accept(11)){let t=this._until(4) +;if(t)return e.appendChild(new d(Number(n),void 0,t,void 0)),!0}else if(this._accept(12)){let t=this._until(4);if(t)return e.appendChild(new d(Number(n),void 0,void 0,t)),!0}else if(this._accept(13)){let t=this._until(1);if(t){let i=this._until(4);if(i)return e.appendChild(new d(Number(n),void 0,t,i)),!0}}else{let t=this._until(4);if(t)return e.appendChild(new d(Number(n),void 0,void 0,t)),!0}return this._backTo(t),!1}_parseAnything(e){return 14!==this._token.type&&(e.appendChild(new o(this._scanner.tokenText(this._token))),this._accept(void 0),!0)}}})),define(t[402],i([0,1,64,8]),(function(e,t,i,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CompletionModel=t.LineContext=void 0;t.LineContext=class{constructor(e,t){this.leadingLineContent=e,this.characterCountDelta=t}};class o{constructor(e,t,i,n,s,r,a){this.clipboardText=a,this._snippetCompareFn=o._compareCompletionItems,this._items=e,this._column=t,this._wordDistance=n,this._options=s,this._refilterKind=1,this._lineContext=i, +"top"===r?this._snippetCompareFn=o._compareCompletionItemsSnippetsUp:"bottom"===r&&(this._snippetCompareFn=o._compareCompletionItemsSnippetsDown)}get lineContext(){return this._lineContext}set lineContext(e){this._lineContext.leadingLineContent===e.leadingLineContent&&this._lineContext.characterCountDelta===e.characterCountDelta||(this._refilterKind=this._lineContext.characterCountDelta2e3?i.fuzzyScore:i.fuzzyScoreGracefulAggressive;for(let d=0;d=u)c.score=i.FuzzyScore.Default;else if("string"==typeof c.completion.filterText){let r=l(o,s,e,c.completion.filterText,c.filterTextLow,0,!1);if(!r)continue +;0===n.compareIgnoreCase(c.completion.filterText,t)?c.score=r:(c.score=i.anyScore(o,s,e,t,c.labelLow,0),c.score[0]=r[0])}else{let i=l(o,s,e,t,c.labelLow,0,!1);if(!i)continue;c.score=i}}switch(c.idx=d,c.distance=this._wordDistance.distance(c.position,c.completion),a.push(c),this._stats.suggestionCount++,c.completion.kind){case 27:this._stats.snippetCount++;break;case 18:this._stats.textCount++}}this._filteredItems=a.sort(this._snippetCompareFn),this._refilterKind=0}static _compareCompletionItems(e,t){return e.score[0]>t.score[0]?-1:e.score[0]t.distance?1:e.idxt.idx?1:0}static _compareCompletionItemsSnippetsDown(e,t){if(e.completion.kind!==t.completion.kind){if(27===e.completion.kind)return 1;if(27===t.completion.kind)return-1}return o._compareCompletionItems(e,t)}static _compareCompletionItemsSnippetsUp(e,t){if(e.completion.kind!==t.completion.kind){if(27===e.completion.kind)return-1;if(27===t.completion.kind)return 1} +return o._compareCompletionItems(e,t)}}t.CompletionModel=o})),define(t[403],i([0,1,19,2,87]),(function(e,t,i,n,o){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CommitCharacterController=void 0;t.CommitCharacterController=class{constructor(e,t,i){this._disposables=new n.DisposableStore,this._disposables.add(t.onDidShow(()=>this._onItem(t.getFocusedItem()))),this._disposables.add(t.onDidFocus(this._onItem,this)),this._disposables.add(t.onDidHide(this.reset,this)),this._disposables.add(e.onWillType(n=>{if(this._active&&!t.isFrozen()){const t=n.charCodeAt(n.length-1);this._active.acceptCharacters.has(t)&&e.getOption(0)&&i(this._active.item)}}))}_onItem(e){if(!e||!i.isNonEmptyArray(e.item.completion.commitCharacters))return void this.reset();if(this._active&&this._active.item.item===e.item)return;const t=new o.CharacterSet;for(const i of e.item.completion.commitCharacters)i.length>0&&t.add(i.charCodeAt(0));this._active={acceptCharacters:t,item:e}}reset(){this._active=void 0}dispose(){ +this._disposables.dispose()}}})),define(t[404],i([0,1,2]),(function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.OvertypingCapturer=void 0;class n{constructor(e,t){this._disposables=new i.DisposableStore,this._lastOvertyped=[],this._empty=!0,this._disposables.add(e.onWillType(()=>{if(!this._empty)return;if(!e.hasModel())return;const t=e.getSelections(),i=t.length;let o=!1;for(let e=0;en._maxSelectionLength)return;this._lastOvertyped[e]={value:s.getValueInRange(i),multiline:i.startLineNumber!==i.endLineNumber}}this._empty=!1})),this._disposables.add(t.onDidCancel(e=>{this._empty||(this._empty=!0)}))}getLastOvertypedInfo(e){if(!this._empty&&e>=0&&e=0?r[c]:r[Math.max(0,~c-1)],u=l.length;for(const e of l){if(!n.Range.containsRange(e.range,h))break;u-=1}return u}}}))}} +t.WordDistance=s,s.None=new class extends s{distance(){return 0}}})),define(t[224],i([0,1]),(function(e,t){"use strict";function i(e){return Array.isArray(e)}function n(e){return"string"==typeof e}function o(e){return!e}function s(e,t){return e.ignoreCase&&t?t.toLowerCase():t}Object.defineProperty(t,"__esModule",{value:!0}),t.stateExists=t.findRules=t.substituteMatches=t.createError=t.log=t.sanitize=t.fixCase=t.empty=t.isIAction=t.isString=t.isFuzzyAction=t.isFuzzyActionArr=void 0,t.isFuzzyActionArr=i,t.isFuzzyAction=function(e){return!i(e)},t.isString=n,t.isIAction=function(e){return!n(e)},t.empty=o,t.fixCase=s,t.sanitize=function(e){return e.replace(/[&<>'"_]/g,"-")},t.log=function(e,t){console.log(`${e.languageId}: ${t}`)},t.createError=function(e,t){return new Error(`${e.languageId}: ${t}`)},t.substituteMatches=function(e,t,i,n,r){let a=null;return t.replace(/\$((\$)|(#)|(\d\d?)|[sS](\d\d?)|@(\w+))/g,(function(t,l,d,c,h,u,g,p,m){ +return o(d)?o(c)?!o(h)&&h0;){const t=e.tokenizer[i];if(t)return t;const n=i.lastIndexOf(".");i=n<0?null:i.substr(0,n)}return null},t.stateExists=function(e,t){let i=t;for(;i&&i.length>0;){if(e.stateNames[i])return!0;const t=i.lastIndexOf(".");i=t<0?null:i.substr(0,t)}return!1}})),define(t[406],i([0,1,224]),(function(e,t,i){"use strict";function n(e,t){return"boolean"==typeof e?e:t}function o(e,t){return"string"==typeof e?e:t}function s(e,t=!1){t&&(e=e.map((function(e){return e.toLowerCase()})));const i=function(e){const t={};for(const i of e)t[i]=!0;return t}(e);return t?function(e){return void 0!==i[e.toLowerCase()]&&i.hasOwnProperty(e.toLowerCase())}:function(e){return void 0!==i[e]&&i.hasOwnProperty(e)}}function r(e,t){let n=0;for(;t.indexOf("@")>=0&&n<5;)n++,t=t.replace(/@(\w+)/g,(function(n,o){let s="" +;if("string"==typeof e[o])s=e[o];else{if(!(e[o]&&e[o]instanceof RegExp))throw void 0===e[o]?i.createError(e,"language definition does not contain attribute '"+o+"', used at: "+t):i.createError(e,"attribute reference '"+o+"' must be a string, used at: "+t);s=e[o].source}return i.empty(s)?"":"(?:"+s+")"}));let o=(e.ignoreCase?"i":"")+(e.unicode?"u":"");return new RegExp(t,o)}function a(e,t,n,o){let a=-1,l=n,d=n.match(/^\$(([sS]?)(\d\d?)|#)(.*)$/);d&&(d[3]&&(a=parseInt(d[3]),d[2]&&(a+=100)),l=d[4]);let c,h="~",u=l;if(l&&0!==l.length?/^\w*$/.test(u)?h="==":(d=l.match(/^(@|!@|~|!~|==|!=)(.*)$/))&&(h=d[1],u=d[2]):(h="!=",u=""),"~"!==h&&"!~"!==h||!/^(\w|\|)*$/.test(u))if("@"===h||"!@"===h){let n=e[u];if(!n)throw i.createError(e,"the @ match target '"+u+"' is not defined, in rule: "+t);if(!function(e,t){if(!t)return!1;if(!Array.isArray(t))return!1;for(const i of t)if(!e(i))return!1;return!0}((function(e){return"string"==typeof e +}),n))throw i.createError(e,"the @ match target '"+u+"' must be an array of strings, in rule: "+t);let o=s(n,e.ignoreCase);c=function(e){return"@"===h?o(e):!o(e)}}else if("~"===h||"!~"===h)if(u.indexOf("$")<0){let t=r(e,"^"+u+"$");c=function(e){return"~"===h?t.test(e):!t.test(e)}}else c=function(t,n,o,s){return r(e,"^"+i.substituteMatches(e,u,n,o,s)+"$").test(t)};else if(u.indexOf("$")<0){let t=i.fixCase(e,u);c=function(e){return"=="===h?e===t:e!==t}}else{let t=i.fixCase(e,u);c=function(n,o,s,r,a){let l=i.substituteMatches(e,t,o,s,r);return"=="===h?n===l:n!==l}}else{let t=s(u.split("|"),e.ignoreCase);c=function(e){return"~"===h?t(e):!t(e)}}return-1===a?{name:n,value:o,test:function(e,t,i,n){return c(e,e,t,i,n)}}:{name:n,value:o,test:function(e,t,i,n){let o=function(e,t,i,n){if(n<0)return e;if(n=100){n-=100;let e=i.split(".");if(e.unshift(i),n0&&"^"===n[0],this.name=this.name+": "+n,this.regex=r(e,"^(?:"+(this.matchOnlyAtLineStart?n.substr(1):n)+")")}setAction(e,t){this.action=function e(t,n,o){if(o){if("string"==typeof o)return o;if(o.token||""===o.token){if("string"!=typeof o.token)throw i.createError(t,"a 'token' attribute must be of type string, in rule: "+n);{let e={token:o.token};if(o.token.indexOf("$")>=0&&(e.tokenSubst=!0),"string"==typeof o.bracket)if("@open"===o.bracket)e.bracket=1;else{if("@close"!==o.bracket)throw i.createError(t,"a 'bracket' attribute must be either '@open' or '@close', in rule: "+n);e.bracket=-1}if(o.next){ +if("string"!=typeof o.next)throw i.createError(t,"the next state must be a string value in rule: "+n);{let s=o.next;if(!/^(@pop|@push|@popall)$/.test(s)&&("@"===s[0]&&(s=s.substr(1)),s.indexOf("$")<0&&!i.stateExists(t,i.substituteMatches(t,s,"",[],""))))throw i.createError(t,"the next state '"+o.next+"' is not defined in rule: "+n);e.next=s}}return"number"==typeof o.goBack&&(e.goBack=o.goBack),"string"==typeof o.switchTo&&(e.switchTo=o.switchTo),"string"==typeof o.log&&(e.log=o.log),"string"==typeof o.nextEmbedded&&(e.nextEmbedded=o.nextEmbedded,t.usesEmbedded=!0),e}}if(Array.isArray(o)){let i=[];for(let s=0,r=o.length;s=1&&c.length<=3)if(t.setRegex(r,c[0]), +c.length>=3)if("string"==typeof c[1])t.setAction(r,{token:c[1],next:c[2]});else{if("object"!=typeof c[1])throw i.createError(s,"a next state as the last element of a rule can only be given if the action is either an object or a string, at: "+e);{const e=c[1];e.next=c[2],t.setAction(r,e)}}else t.setAction(r,c[1]);else{if(!c.regex)throw i.createError(s,"a rule must either be an array, or an object with a 'regex' or 'include' field at: "+e);c.name&&"string"==typeof c.name&&(t.name=c.name),c.matchOnlyAtStart&&(t.matchOnlyAtLineStart=n(c.matchOnlyAtLineStart,!1)),t.setRegex(r,c.regex),t.setAction(r,c.action)}o.push(t)}}}if(r.languageId=e,r.ignoreCase=s.ignoreCase,r.unicode=s.unicode,r.noThrow=s.noThrow,r.usesEmbedded=s.usesEmbedded,r.stateNames=t.tokenizer,r.defaultToken=s.defaultToken,!t.tokenizer||"object"!=typeof t.tokenizer)throw i.createError(s,"a language definition must define the 'tokenizer' attribute as an object");s.tokenizer=[];for(let e in t.tokenizer)if(t.tokenizer.hasOwnProperty(e)){ +s.start||(s.start=e);const i=t.tokenizer[e];s.tokenizer[e]=new Array,a("tokenizer."+e,s.tokenizer[e],i)}if(s.usesEmbedded=r.usesEmbedded,t.brackets){if(!Array.isArray(t.brackets))throw i.createError(s,"the 'brackets' attribute must be defined as an array")}else t.brackets=[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}];let d=[];for(let e of t.brackets){let t=e;if(t&&Array.isArray(t)&&3===t.length&&(t={token:t[2],open:t[0],close:t[1]}),t.open===t.close)throw i.createError(s,"open and close brackets in a 'brackets' attribute must be different: "+t.open+"\n hint: use the 'bracket' attribute if matching on equal brackets is required.");if("string"!=typeof t.open||"string"!=typeof t.token||"string"!=typeof t.close)throw i.createError(s,"every element in the 'brackets' array must be a '{open,close,token}' object or array");d.push({token:t.token+s.tokenPostfix, +open:i.fixCase(s,t.open),close:i.fixCase(s,t.close)})}return s.brackets=d,s.noThrow=!0,s}})),define(t[407],i([5,6]),(function(e,t){return e.create("vs/base/browser/ui/actionbar/actionViewItems",t)})),define(t[91],i([0,1,16,407,2,47,7,23,58,143,36,196]),(function(e,t,i,n,o,s,r,a,l,d,c){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActionViewItem=t.BaseActionViewItem=void 0;class h extends o.Disposable{constructor(e,t,i={}){super(),this.options=i,this._context=e||this,this._action=t,t instanceof s.Action&&this._register(t.onDidChange(e=>{this.element&&this.handleActionChangeEvent(e)}))}handleActionChangeEvent(e){void 0!==e.enabled&&this.updateEnabled(),void 0!==e.checked&&this.updateChecked(),void 0!==e.class&&this.updateClass(),void 0!==e.label&&(this.updateLabel(),this.updateTooltip()),void 0!==e.tooltip&&this.updateTooltip()}get actionRunner(){return this._actionRunner||(this._actionRunner=this._register(new s.ActionRunner)),this._actionRunner}set actionRunner(e){this._actionRunner=e} +getAction(){return this._action}isEnabled(){return this._action.enabled}setActionContext(e){this._context=e}render(e){const t=this.element=e;this._register(l.Gesture.addTarget(e));const n=this.options&&this.options.draggable;n&&(e.draggable=!0,c.isFirefox&&this._register(r.addDisposableListener(e,r.EventType.DRAG_START,e=>{var t;return null===(t=e.dataTransfer)||void 0===t?void 0:t.setData(d.DataTransfers.TEXT,this._action.label)}))),this._register(r.addDisposableListener(t,l.EventType.Tap,e=>this.onClick(e))),this._register(r.addDisposableListener(t,r.EventType.MOUSE_DOWN,e=>{n||r.EventHelper.stop(e,!0),this._action.enabled&&0===e.button&&r.addClass(t,"active")})),i.isMacintosh&&this._register(r.addDisposableListener(t,r.EventType.CONTEXT_MENU,e=>{0===e.button&&!0===e.ctrlKey&&this.onClick(e)})),this._register(r.addDisposableListener(t,r.EventType.CLICK,e=>{r.EventHelper.stop(e,!0),this.options&&this.options.isMenu||i.setImmediate(()=>this.onClick(e))})), +this._register(r.addDisposableListener(t,r.EventType.DBLCLICK,e=>{r.EventHelper.stop(e,!0)})),[r.EventType.MOUSE_UP,r.EventType.MOUSE_OUT].forEach(e=>{this._register(r.addDisposableListener(t,e,e=>{r.EventHelper.stop(e),r.removeClass(t,"active")}))})}onClick(e){var t;r.EventHelper.stop(e,!0);const i=a.isUndefinedOrNull(this._context)?(null===(t=this.options)||void 0===t?void 0:t.useEventAsContext)?e:void 0:this._context;this.actionRunner.run(this._action,i)}focus(){this.element&&(this.element.focus(),r.addClass(this.element,"focused"))}blur(){this.element&&(this.element.blur(),r.removeClass(this.element,"focused"))}updateEnabled(){}updateLabel(){}updateTooltip(){}updateClass(){}updateChecked(){}dispose(){this.element&&(r.removeNode(this.element),this.element=void 0),super.dispose()}}t.BaseActionViewItem=h;t.ActionViewItem=class extends h{constructor(e,t,i={}){super(e,t,i),this.options=i,this.options.icon=void 0!==i.icon&&i.icon,this.options.label=void 0===i.label||i.label,this.cssClass=""}render(e){ +super.render(e),this.element&&(this.label=r.append(this.element,r.$("a.action-label"))),this.label&&(this._action.id===s.Separator.ID?this.label.setAttribute("role","presentation"):this.options.isMenu?this.label.setAttribute("role","menuitem"):this.label.setAttribute("role","button")),this.options.label&&this.options.keybinding&&this.element&&(r.append(this.element,r.$("span.keybinding")).textContent=this.options.keybinding),this.updateClass(),this.updateLabel(),this.updateTooltip(),this.updateEnabled(),this.updateChecked()}focus(){super.focus(),this.label&&this.label.focus()}updateLabel(){this.options.label&&this.label&&(this.label.textContent=this.getAction().label)}updateTooltip(){let e=null;this.getAction().tooltip?e=this.getAction().tooltip:!this.options.label&&this.getAction().label&&this.options.icon&&(e=this.getAction().label,this.options.keybinding&&(e=n.localize(0,null,e,this.options.keybinding))),e&&this.label&&(this.label.title=e)}updateClass(){ +this.cssClass&&this.label&&r.removeClasses(this.label,this.cssClass),this.options.icon?(this.cssClass=this.getAction().class,this.label&&(r.addClass(this.label,"codicon"),this.cssClass&&r.addClasses(this.label,this.cssClass)),this.updateEnabled()):this.label&&r.removeClass(this.label,"codicon")}updateEnabled(){this.getAction().enabled?(this.label&&(this.label.removeAttribute("aria-disabled"),r.removeClass(this.label,"disabled"),this.label.tabIndex=0),this.element&&r.removeClass(this.element,"disabled")):(this.label&&(this.label.setAttribute("aria-disabled","true"),r.addClass(this.label,"disabled"),r.removeTabIndexAndUpdateFocus(this.label)),this.element&&r.addClass(this.element,"disabled"))}updateChecked(){this.label&&(this.getAction().checked?r.addClass(this.label,"checked"):r.removeClass(this.label,"checked"))}}})),define(t[79],i([0,1,2,47,7,23,53,4,91,196]),(function(e,t,i,n,o,s,r,a,l){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActionBar=void 0;class d extends i.Disposable{ +constructor(e,t={}){var i,s,l;let d,c;switch(super(),this._onDidBlur=this._register(new a.Emitter),this.onDidBlur=this._onDidBlur.event,this._onDidCancel=this._register(new a.Emitter),this.onDidCancel=this._onDidCancel.event,this._onDidRun=this._register(new a.Emitter),this.onDidRun=this._onDidRun.event,this._onDidBeforeRun=this._register(new a.Emitter),this.onDidBeforeRun=this._onDidBeforeRun.event,this.options=t,this._context=null!==(i=t.context)&&void 0!==i?i:null,this._orientation=null!==(s=this.options.orientation)&&void 0!==s?s:0,this._triggerKeys=null!==(l=this.options.triggerKeys)&&void 0!==l?l:{keys:[3,10],keyDown:!1},this.options.actionRunner?this._actionRunner=this.options.actionRunner:(this._actionRunner=new n.ActionRunner,this._register(this._actionRunner)),this._register(this._actionRunner.onDidRun(e=>this._onDidRun.fire(e))),this._register(this._actionRunner.onDidBeforeRun(e=>this._onDidBeforeRun.fire(e))),this.viewItems=[],this.focusedItem=void 0,this.domNode=document.createElement("div"), +this.domNode.className="monaco-action-bar",!1!==t.animated&&o.addClass(this.domNode,"animated"),this._orientation){case 0:d=15,c=17;break;case 1:d=17,c=15,this.domNode.className+=" reverse";break;case 2:d=16,c=18,this.domNode.className+=" vertical";break;case 3:d=18,c=16,this.domNode.className+=" vertical reverse"}this._register(o.addDisposableListener(this.domNode,o.EventType.KEY_DOWN,e=>{const t=new r.StandardKeyboardEvent(e);let i=!0;t.equals(d)?i=this.focusPrevious():t.equals(c)?i=this.focusNext():t.equals(9)?this._onDidCancel.fire():this.isTriggerKeyEvent(t)?this._triggerKeys.keyDown&&this.doTrigger(t):i=!1,i&&(t.preventDefault(),t.stopPropagation())})),this._register(o.addDisposableListener(this.domNode,o.EventType.KEY_UP,e=>{const t=new r.StandardKeyboardEvent(e);this.isTriggerKeyEvent(t)?(this._triggerKeys.keyDown||this.doTrigger(t),t.preventDefault(),t.stopPropagation()):(t.equals(2)||t.equals(1026))&&this.updateFocusedItem()})),this.focusTracker=this._register(o.trackFocus(this.domNode)), +this._register(this.focusTracker.onDidBlur(()=>{o.getActiveElement()!==this.domNode&&o.isAncestor(o.getActiveElement(),this.domNode)||(this._onDidBlur.fire(),this.focusedItem=void 0)})),this._register(this.focusTracker.onDidFocus(()=>this.updateFocusedItem())),this.actionsList=document.createElement("ul"),this.actionsList.className="actions-container",this.actionsList.setAttribute("role","toolbar"),this.options.ariaLabel&&this.actionsList.setAttribute("aria-label",this.options.ariaLabel),this.domNode.appendChild(this.actionsList),e.appendChild(this.domNode)}isTriggerKeyEvent(e){let t=!1;return this._triggerKeys.keys.forEach(i=>{t=t||e.equals(i)}),t}updateFocusedItem(){for(let e=0;et.setActionContext(e))}get actionRunner(){return this._actionRunner}set actionRunner(e){ +e&&(this._actionRunner=e,this.viewItems.forEach(t=>t.actionRunner=e))}getContainer(){return this.domNode}push(e,t={}){const i=Array.isArray(e)?e:[e];let n=s.isNumber(t.index)?t.index:null;i.forEach(e=>{const i=document.createElement("li");let s;i.className="action-item",i.setAttribute("role","presentation"),this.options.allowContextMenu||this._register(o.addDisposableListener(i,o.EventType.CONTEXT_MENU,e=>{o.EventHelper.stop(e,!0)})),this.options.actionViewItemProvider&&(s=this.options.actionViewItemProvider(e)),s||(s=new l.ActionViewItem(this.context,e,t)),s.actionRunner=this._actionRunner,s.setActionContext(this.context),s.render(i),null===n||n<0||n>=this.actionsList.children.length?(this.actionsList.appendChild(i),this.viewItems.push(s)):(this.actionsList.insertBefore(i,this.actionsList.children[n]),this.viewItems.splice(n,0,s),n++)}),this.focusedItem&&this.focus(this.focusedItem)}clear(){i.dispose(this.viewItems),this.viewItems=[],o.clearNode(this.actionsList)}focus(e){let t=!1,i=void 0 +;void 0===e?t=!0:"number"==typeof e?i=e:"boolean"==typeof e&&(t=e),t&&void 0===this.focusedItem?(this.focusedItem=-1,this.focusNext()):(void 0!==i&&(this.focusedItem=i),this.updateFocus())}focusNext(){void 0===this.focusedItem&&(this.focusedItem=this.viewItems.length-1);const e=this.focusedItem;let t;do{if(this.options.preventLoopNavigation&&this.focusedItem+1>=this.viewItems.length)return this.focusedItem=e,!1;this.focusedItem=(this.focusedItem+1)%this.viewItems.length,t=this.viewItems[this.focusedItem]}while(this.focusedItem!==e&&!t.isEnabled());return this.focusedItem!==e||t.isEnabled()||(this.focusedItem=void 0),this.updateFocus(),!0}focusPrevious(){void 0===this.focusedItem&&(this.focusedItem=0);const e=this.focusedItem;let t;do{if(this.focusedItem=this.focusedItem-1,this.focusedItem<0){if(this.options.preventLoopNavigation)return this.focusedItem=e,!1;this.focusedItem=this.viewItems.length-1}t=this.viewItems[this.focusedItem]}while(this.focusedItem!==e&&!t.isEnabled()) +;return this.focusedItem!==e||t.isEnabled()||(this.focusedItem=void 0),this.updateFocus(!0),!0}updateFocus(e,t){void 0===this.focusedItem&&this.actionsList.focus({preventScroll:t});for(let i=0;i{this.element=i.append(e,i.$("a.action-label"));const t=this.options.classNames?r.asArray(this.options.classNames):[];return t.find(e=>"icon"===e)||t.push("codicon"),i.addClasses(this.element,...t),this.element.tabIndex=0,this.element.setAttribute("role","button"),this.element.setAttribute("aria-haspopup","true"),this.element.setAttribute("aria-expanded","false"),this.element.title=this._action.label||"",null},menuAsChild:this.options.menuAsChild};if(Array.isArray(this.menuActionsOrProvider)?t.actions=this.menuActionsOrProvider:t.actionProvider=this.menuActionsOrProvider,this.dropdownMenu=this._register(new s.DropdownMenu(e,t)),this._register(this.dropdownMenu.onDidChangeVisibility(e=>{var t +;null===(t=this.element)||void 0===t||t.setAttribute("aria-expanded",`${e}`),this._onDidChangeVisibility.fire(e)})),this.dropdownMenu.menuOptions={actionViewItemProvider:this.options.actionViewItemProvider,actionRunner:this.actionRunner,getKeyBinding:this.options.keybindingProvider,context:this._context},this.options.anchorAlignmentProvider){const e=this;this.dropdownMenu.menuOptions=Object.assign(Object.assign({},this.dropdownMenu.menuOptions),{get anchorAlignment(){return e.options.anchorAlignmentProvider()}})}}setActionContext(e){super.setActionContext(e),this.dropdownMenu&&(this.dropdownMenu.menuOptions?this.dropdownMenu.menuOptions.context=e:this.dropdownMenu.menuOptions={context:e})}}t.DropdownMenuActionViewItem=a})),define(t[409],i([5,6]),(function(e,t){return e.create("vs/base/browser/ui/findinput/findInput",t)})),define(t[410],i([5,6]),(function(e,t){return e.create("vs/base/browser/ui/findinput/findInputCheckboxes",t)})),define(t[225],i([0,1,152,410,26]),(function(e,t,i,n,o){"use strict" +;Object.defineProperty(t,"__esModule",{value:!0}),t.RegexCheckbox=t.WholeWordsCheckbox=t.CaseSensitiveCheckbox=void 0;const s=n.localize(0,null),r=n.localize(1,null),a=n.localize(2,null);class l extends i.Checkbox{constructor(e){super({icon:o.Codicon.caseSensitive,title:s+e.appendTitle,isChecked:e.isChecked,inputActiveOptionBorder:e.inputActiveOptionBorder,inputActiveOptionForeground:e.inputActiveOptionForeground,inputActiveOptionBackground:e.inputActiveOptionBackground})}}t.CaseSensitiveCheckbox=l;class d extends i.Checkbox{constructor(e){super({icon:o.Codicon.wholeWord,title:r+e.appendTitle,isChecked:e.isChecked,inputActiveOptionBorder:e.inputActiveOptionBorder,inputActiveOptionForeground:e.inputActiveOptionForeground,inputActiveOptionBackground:e.inputActiveOptionBackground})}}t.WholeWordsCheckbox=d;class c extends i.Checkbox{constructor(e){super({icon:o.Codicon.regex,title:a+e.appendTitle,isChecked:e.isChecked,inputActiveOptionBorder:e.inputActiveOptionBorder, +inputActiveOptionForeground:e.inputActiveOptionForeground,inputActiveOptionBackground:e.inputActiveOptionBackground})}}t.RegexCheckbox=c})),define(t[411],i([5,6]),(function(e,t){return e.create("vs/base/browser/ui/findinput/replaceInput",t)})),define(t[412],i([5,6]),(function(e,t){return e.create("vs/base/browser/ui/inputbox/inputBox",t)})),define(t[167],i([0,1,412,7,148,48,79,4,54,29,37,270,65,57,294]),(function(e,t,i,n,o,s,r,a,l,d,c,h,u,g){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.HistoryInputBox=t.InputBox=void 0;const p=n.$,m={inputBackground:d.Color.fromHex("#3C3C3C"),inputForeground:d.Color.fromHex("#CCCCCC"),inputValidationInfoBorder:d.Color.fromHex("#55AAFF"),inputValidationInfoBackground:d.Color.fromHex("#063B49"),inputValidationWarningBorder:d.Color.fromHex("#B89500"),inputValidationWarningBackground:d.Color.fromHex("#352A05"),inputValidationErrorBorder:d.Color.fromHex("#BE1100"),inputValidationErrorBackground:d.Color.fromHex("#5A1D1D")};class f extends l.Widget{ +constructor(e,t,i){super(),this.state="idle",this.maxHeight=Number.POSITIVE_INFINITY,this._onDidChange=this._register(new a.Emitter),this.onDidChange=this._onDidChange.event,this._onDidHeightChange=this._register(new a.Emitter),this.onDidHeightChange=this._onDidHeightChange.event,this.contextViewProvider=t,this.options=i||Object.create(null),c.mixin(this.options,m,!1),this.message=null,this.placeholder=this.options.placeholder||"",this.ariaLabel=this.options.ariaLabel||"",this.inputBackground=this.options.inputBackground,this.inputForeground=this.options.inputForeground,this.inputBorder=this.options.inputBorder,this.inputValidationInfoBorder=this.options.inputValidationInfoBorder,this.inputValidationInfoBackground=this.options.inputValidationInfoBackground,this.inputValidationInfoForeground=this.options.inputValidationInfoForeground,this.inputValidationWarningBorder=this.options.inputValidationWarningBorder,this.inputValidationWarningBackground=this.options.inputValidationWarningBackground, +this.inputValidationWarningForeground=this.options.inputValidationWarningForeground,this.inputValidationErrorBorder=this.options.inputValidationErrorBorder,this.inputValidationErrorBackground=this.options.inputValidationErrorBackground,this.inputValidationErrorForeground=this.options.inputValidationErrorForeground,this.options.validationOptions&&(this.validation=this.options.validationOptions.validation),this.element=n.append(e,p(".monaco-inputbox.idle"));let o=this.options.flexibleHeight?"textarea":"input",s=n.append(this.element,p(".wrapper"));if(this.input=n.append(s,p(o+".input.empty")),this.input.setAttribute("autocorrect","off"),this.input.setAttribute("autocapitalize","off"),this.input.setAttribute("spellcheck","false"),this.onfocus(this.input,()=>this.element.classList.add("synthetic-focus")),this.onblur(this.input,()=>this.element.classList.remove("synthetic-focus")),this.options.flexibleHeight){ +this.maxHeight="number"==typeof this.options.flexibleMaxHeight?this.options.flexibleMaxHeight:Number.POSITIVE_INFINITY,this.mirror=n.append(s,p("div.mirror")),this.mirror.innerText=" ",this.scrollableElement=new u.ScrollableElement(this.element,{vertical:1}),this.options.flexibleWidth&&(this.input.setAttribute("wrap","off"),this.mirror.style.whiteSpace="pre",this.mirror.style.wordWrap="initial"),n.append(e,this.scrollableElement.getDomNode()),this._register(this.scrollableElement),this._register(this.scrollableElement.onScroll(e=>this.input.scrollTop=e.scrollTop));const t=a.Event.filter(g.domEvent(document,"selectionchange"),()=>{const e=document.getSelection();return(null==e?void 0:e.anchorNode)===s});this._register(t(this.updateScrollDimensions,this)),this._register(this.onDidHeightChange(this.updateScrollDimensions,this))}else this.input.type=this.options.type||"text",this.input.setAttribute("wrap","off");this.ariaLabel&&this.input.setAttribute("aria-label",this.ariaLabel), +this.placeholder&&this.setPlaceHolder(this.placeholder),this.oninput(this.input,()=>this.onValueChange()),this.onblur(this.input,()=>this.onBlur()),this.onfocus(this.input,()=>this.onFocus()),this.ignoreGesture(this.input),setTimeout(()=>this.updateMirror(),0),this.options.actions&&(this.actionbar=this._register(new r.ActionBar(this.element)),this.actionbar.push(this.options.actions,{icon:!0,label:!1})),this.applyStyles()}onBlur(){this._hideMessage()}onFocus(){this._showMessage()}setPlaceHolder(e){this.placeholder=e,this.input.setAttribute("placeholder",e),this.input.title=e}setAriaLabel(e){this.ariaLabel=e,e?this.input.setAttribute("aria-label",this.ariaLabel):this.input.removeAttribute("aria-label")}getAriaLabel(){return this.ariaLabel}get inputElement(){return this.input}get value(){return this.input.value}set value(e){this.input.value!==e&&(this.input.value=e,this.onValueChange())}get height(){return"number"==typeof this.cachedHeight?this.cachedHeight:n.getTotalHeight(this.element)}focus(){ +this.input.focus()}blur(){this.input.blur()}hasFocus(){return document.activeElement===this.input}select(e=null){this.input.select(),e&&this.input.setSelectionRange(e.start,e.end)}isSelectionAtEnd(){return this.input.selectionEnd===this.input.value.length&&this.input.selectionStart===this.input.selectionEnd}enable(){this.input.removeAttribute("disabled")}disable(){this.blur(),this.input.disabled=!0,this._hideMessage()}get width(){return n.getTotalWidth(this.input)}set width(e){if(this.options.flexibleHeight&&this.options.flexibleWidth){let t=0;if(this.mirror){t=(parseFloat(this.mirror.style.paddingLeft||"")||0)+(parseFloat(this.mirror.style.paddingRight||"")||0)}this.input.style.width=e-t+"px"}else this.input.style.width=e+"px";this.mirror&&(this.mirror.style.width=e+"px")}set paddingRight(e){this.options.flexibleHeight&&this.options.flexibleWidth?this.input.style.width=`calc(100% - ${e}px)`:this.input.style.paddingRight=e+"px",this.mirror&&(this.mirror.style.paddingRight=e+"px")}updateScrollDimensions(){ +if("number"!=typeof this.cachedContentHeight||"number"!=typeof this.cachedHeight||!this.scrollableElement)return;const e=this.cachedContentHeight,t=this.cachedHeight,i=this.input.scrollTop;this.scrollableElement.setScrollDimensions({scrollHeight:e,height:t}),this.scrollableElement.setScrollPosition({scrollTop:i})}showMessage(e,t){this.message=e,this.element.classList.remove("idle"),this.element.classList.remove("info"),this.element.classList.remove("warning"),this.element.classList.remove("error"),this.element.classList.add(this.classForType(e.type));const i=this.stylesForType(this.message.type);this.element.style.border=i.border?`1px solid ${i.border}`:"",(this.hasFocus()||t)&&this._showMessage()}hideMessage(){this.message=null,this.element.classList.remove("info"),this.element.classList.remove("warning"),this.element.classList.remove("error"),this.element.classList.add("idle"),this._hideMessage(),this.applyStyles()}validate(){let e=null +;return this.validation&&((e=this.validation(this.value))?(this.inputElement.setAttribute("aria-invalid","true"),this.showMessage(e)):this.inputElement.hasAttribute("aria-invalid")&&(this.inputElement.removeAttribute("aria-invalid"),this.hideMessage())),!e}stylesForType(e){switch(e){case 1:return{border:this.inputValidationInfoBorder,background:this.inputValidationInfoBackground,foreground:this.inputValidationInfoForeground};case 2:return{border:this.inputValidationWarningBorder,background:this.inputValidationWarningBackground,foreground:this.inputValidationWarningForeground};default:return{border:this.inputValidationErrorBorder,background:this.inputValidationErrorBackground,foreground:this.inputValidationErrorForeground}}}classForType(e){switch(e){case 1:return"info";case 2:return"warning";default:return"error"}}_showMessage(){if(!this.contextViewProvider||!this.message)return;let e,t,r=()=>e.style.width=n.getTotalWidth(this.element)+"px";this.contextViewProvider.showContextView({getAnchor:()=>this.element, +anchorAlignment:1,render:t=>{if(!this.message)return null;e=n.append(t,p(".monaco-inputbox-container")),r();const i={inline:!0,className:"monaco-inputbox-message"},s=this.message.formatContent?o.renderFormattedText(this.message.content,i):o.renderText(this.message.content,i);s.classList.add(this.classForType(this.message.type));const a=this.stylesForType(this.message.type);return s.style.backgroundColor=a.background?a.background.toString():"",s.style.color=a.foreground?a.foreground.toString():"",s.style.border=a.border?`1px solid ${a.border}`:"",n.append(e,s),null},onHide:()=>{this.state="closed"},layout:r}),t=3===this.message.type?i.localize(0,null,this.message.content):2===this.message.type?i.localize(1,null,this.message.content):i.localize(2,null,this.message.content),s.alert(t),this.state="open"}_hideMessage(){this.contextViewProvider&&("open"===this.state&&this.contextViewProvider.hideContextView(),this.state="idle")}onValueChange(){this._onDidChange.fire(this.value),this.validate(),this.updateMirror(), +this.input.classList.toggle("empty",!this.value),"open"===this.state&&this.contextViewProvider&&this.contextViewProvider.layout()}updateMirror(){if(!this.mirror)return;const e=this.value,t=10===e.charCodeAt(e.length-1)?" ":"";e+t?this.mirror.textContent=e+t:this.mirror.innerText=" ",this.layout()}style(e){this.inputBackground=e.inputBackground,this.inputForeground=e.inputForeground,this.inputBorder=e.inputBorder,this.inputValidationInfoBackground=e.inputValidationInfoBackground,this.inputValidationInfoForeground=e.inputValidationInfoForeground,this.inputValidationInfoBorder=e.inputValidationInfoBorder,this.inputValidationWarningBackground=e.inputValidationWarningBackground,this.inputValidationWarningForeground=e.inputValidationWarningForeground,this.inputValidationWarningBorder=e.inputValidationWarningBorder,this.inputValidationErrorBackground=e.inputValidationErrorBackground,this.inputValidationErrorForeground=e.inputValidationErrorForeground,this.inputValidationErrorBorder=e.inputValidationErrorBorder, +this.applyStyles()}applyStyles(){const e=this.inputBackground?this.inputBackground.toString():"",t=this.inputForeground?this.inputForeground.toString():"",i=this.inputBorder?this.inputBorder.toString():"";this.element.style.backgroundColor=e,this.element.style.color=t,this.input.style.backgroundColor="inherit",this.input.style.color=t,this.element.style.borderWidth=i?"1px":"",this.element.style.borderStyle=i?"solid":"",this.element.style.borderColor=i}layout(){if(!this.mirror)return;const e=this.cachedContentHeight;this.cachedContentHeight=n.getTotalHeight(this.mirror),e!==this.cachedContentHeight&&(this.cachedHeight=Math.min(this.cachedContentHeight,this.maxHeight),this.input.style.height=this.cachedHeight+"px",this._onDidHeightChange.fire(this.cachedContentHeight))}insertAtCursor(e){const t=this.inputElement,i=t.selectionStart,n=t.selectionEnd,o=t.value;null!==i&&null!==n&&(this.value=o.substr(0,i)+e+o.substr(n),t.setSelectionRange(i+1,i+1),this.layout())}dispose(){this._hideMessage(),this.message=null, +this.actionbar&&this.actionbar.dispose(),super.dispose()}}t.InputBox=f;t.HistoryInputBox=class extends f{constructor(e,t,i){super(e,t,i),this.history=new h.HistoryNavigator(i.history,100)}addToHistory(){this.value&&this.value!==this.getCurrentValue()&&this.history.add(this.value)}showNextValue(){this.history.has(this.value)||this.addToHistory();let e=this.getNextValue();e&&(e=e===this.value?this.getNextValue():e),e&&(this.value=e,s.status(this.value))}showPreviousValue(){this.history.has(this.value)||this.addToHistory();let e=this.getPreviousValue();e&&(e=e===this.value?this.getPreviousValue():e),e&&(this.value=e,s.status(this.value))}getCurrentValue(){let e=this.history.current();return e||(e=this.history.last(),this.history.next()),e}getPreviousValue(){return this.history.previous()||this.history.first()}getNextValue(){return this.history.next()||this.history.last()}}})),define(t[413],i([0,1,409,7,167,54,4,225,200]),(function(e,t,i,n,o,s,r,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0}), +t.FindInput=void 0;const l=i.localize(0,null);class d extends s.Widget{constructor(e,t,i,s){super(),this._showOptionButtons=i,this.fixFocusOnOptionClickEnabled=!0,this._onDidOptionChange=this._register(new r.Emitter),this.onDidOptionChange=this._onDidOptionChange.event,this._onKeyDown=this._register(new r.Emitter),this.onKeyDown=this._onKeyDown.event,this._onMouseDown=this._register(new r.Emitter),this.onMouseDown=this._onMouseDown.event,this._onInput=this._register(new r.Emitter),this._onKeyUp=this._register(new r.Emitter),this._onCaseSensitiveKeyDown=this._register(new r.Emitter),this.onCaseSensitiveKeyDown=this._onCaseSensitiveKeyDown.event,this._onRegexKeyDown=this._register(new r.Emitter),this.onRegexKeyDown=this._onRegexKeyDown.event,this._lastHighlightFindOptions=0,this.contextViewProvider=t,this.placeholder=s.placeholder||"",this.validation=s.validation,this.label=s.label||l,this.inputActiveOptionBorder=s.inputActiveOptionBorder,this.inputActiveOptionForeground=s.inputActiveOptionForeground, +this.inputActiveOptionBackground=s.inputActiveOptionBackground,this.inputBackground=s.inputBackground,this.inputForeground=s.inputForeground,this.inputBorder=s.inputBorder,this.inputValidationInfoBorder=s.inputValidationInfoBorder,this.inputValidationInfoBackground=s.inputValidationInfoBackground,this.inputValidationInfoForeground=s.inputValidationInfoForeground,this.inputValidationWarningBorder=s.inputValidationWarningBorder,this.inputValidationWarningBackground=s.inputValidationWarningBackground,this.inputValidationWarningForeground=s.inputValidationWarningForeground,this.inputValidationErrorBorder=s.inputValidationErrorBorder,this.inputValidationErrorBackground=s.inputValidationErrorBackground,this.inputValidationErrorForeground=s.inputValidationErrorForeground;const d=s.appendCaseSensitiveLabel||"",c=s.appendWholeWordsLabel||"",h=s.appendRegexLabel||"",u=s.history||[],g=!!s.flexibleHeight,p=!!s.flexibleWidth,m=s.flexibleMaxHeight;this.domNode=document.createElement("div"), +n.addClass(this.domNode,"monaco-findInput"),this.inputBox=this._register(new o.HistoryInputBox(this.domNode,this.contextViewProvider,{placeholder:this.placeholder||"",ariaLabel:this.label||"",validationOptions:{validation:this.validation},inputBackground:this.inputBackground,inputForeground:this.inputForeground,inputBorder:this.inputBorder,inputValidationInfoBackground:this.inputValidationInfoBackground,inputValidationInfoForeground:this.inputValidationInfoForeground,inputValidationInfoBorder:this.inputValidationInfoBorder,inputValidationWarningBackground:this.inputValidationWarningBackground,inputValidationWarningForeground:this.inputValidationWarningForeground,inputValidationWarningBorder:this.inputValidationWarningBorder,inputValidationErrorBackground:this.inputValidationErrorBackground,inputValidationErrorForeground:this.inputValidationErrorForeground,inputValidationErrorBorder:this.inputValidationErrorBorder,history:u,flexibleHeight:g,flexibleWidth:p,flexibleMaxHeight:m})), +this.regex=this._register(new a.RegexCheckbox({appendTitle:h,isChecked:!1,inputActiveOptionBorder:this.inputActiveOptionBorder,inputActiveOptionForeground:this.inputActiveOptionForeground,inputActiveOptionBackground:this.inputActiveOptionBackground})),this._register(this.regex.onChange(e=>{this._onDidOptionChange.fire(e),!e&&this.fixFocusOnOptionClickEnabled&&this.inputBox.focus(),this.validate()})),this._register(this.regex.onKeyDown(e=>{this._onRegexKeyDown.fire(e)})),this.wholeWords=this._register(new a.WholeWordsCheckbox({appendTitle:c,isChecked:!1,inputActiveOptionBorder:this.inputActiveOptionBorder,inputActiveOptionForeground:this.inputActiveOptionForeground,inputActiveOptionBackground:this.inputActiveOptionBackground})),this._register(this.wholeWords.onChange(e=>{this._onDidOptionChange.fire(e),!e&&this.fixFocusOnOptionClickEnabled&&this.inputBox.focus(),this.validate()})),this.caseSensitive=this._register(new a.CaseSensitiveCheckbox({appendTitle:d,isChecked:!1, +inputActiveOptionBorder:this.inputActiveOptionBorder,inputActiveOptionForeground:this.inputActiveOptionForeground,inputActiveOptionBackground:this.inputActiveOptionBackground})),this._register(this.caseSensitive.onChange(e=>{this._onDidOptionChange.fire(e),!e&&this.fixFocusOnOptionClickEnabled&&this.inputBox.focus(),this.validate()})),this._register(this.caseSensitive.onKeyDown(e=>{this._onCaseSensitiveKeyDown.fire(e)})),this._showOptionButtons&&(this.inputBox.paddingRight=this.caseSensitive.width()+this.wholeWords.width()+this.regex.width());let f=[this.caseSensitive.domNode,this.wholeWords.domNode,this.regex.domNode];this.onkeydown(this.domNode,e=>{if(e.equals(15)||e.equals(17)||e.equals(9)){let t=f.indexOf(document.activeElement);if(t>=0){let i=-1;e.equals(17)?i=(t+1)%f.length:e.equals(15)&&(i=0===t?f.length-1:t-1),e.equals(9)?f[t].blur():i>=0&&f[i].focus(),n.EventHelper.stop(e,!0)}}});let _=document.createElement("div");_.className="controls",_.style.display=this._showOptionButtons?"block":"none", +_.appendChild(this.caseSensitive.domNode),_.appendChild(this.wholeWords.domNode),_.appendChild(this.regex.domNode),this.domNode.appendChild(_),e&&e.appendChild(this.domNode),this.onkeydown(this.inputBox.inputElement,e=>this._onKeyDown.fire(e)),this.onkeyup(this.inputBox.inputElement,e=>this._onKeyUp.fire(e)),this.oninput(this.inputBox.inputElement,e=>this._onInput.fire()),this.onmousedown(this.inputBox.inputElement,e=>this._onMouseDown.fire(e))}enable(){n.removeClass(this.domNode,"disabled"),this.inputBox.enable(),this.regex.enable(),this.wholeWords.enable(),this.caseSensitive.enable()}disable(){n.addClass(this.domNode,"disabled"),this.inputBox.disable(),this.regex.disable(),this.wholeWords.disable(),this.caseSensitive.disable()}setFocusInputOnOptionClick(e){this.fixFocusOnOptionClickEnabled=e}setEnabled(e){e?this.enable():this.disable()}getValue(){return this.inputBox.value}setValue(e){this.inputBox.value!==e&&(this.inputBox.value=e)}style(e){this.inputActiveOptionBorder=e.inputActiveOptionBorder, +this.inputActiveOptionForeground=e.inputActiveOptionForeground,this.inputActiveOptionBackground=e.inputActiveOptionBackground,this.inputBackground=e.inputBackground,this.inputForeground=e.inputForeground,this.inputBorder=e.inputBorder,this.inputValidationInfoBackground=e.inputValidationInfoBackground,this.inputValidationInfoForeground=e.inputValidationInfoForeground,this.inputValidationInfoBorder=e.inputValidationInfoBorder,this.inputValidationWarningBackground=e.inputValidationWarningBackground,this.inputValidationWarningForeground=e.inputValidationWarningForeground,this.inputValidationWarningBorder=e.inputValidationWarningBorder,this.inputValidationErrorBackground=e.inputValidationErrorBackground,this.inputValidationErrorForeground=e.inputValidationErrorForeground,this.inputValidationErrorBorder=e.inputValidationErrorBorder,this.applyStyles()}applyStyles(){if(this.domNode){const e={inputActiveOptionBorder:this.inputActiveOptionBorder,inputActiveOptionForeground:this.inputActiveOptionForeground, +inputActiveOptionBackground:this.inputActiveOptionBackground};this.regex.style(e),this.wholeWords.style(e),this.caseSensitive.style(e);const t={inputBackground:this.inputBackground,inputForeground:this.inputForeground,inputBorder:this.inputBorder,inputValidationInfoBackground:this.inputValidationInfoBackground,inputValidationInfoForeground:this.inputValidationInfoForeground,inputValidationInfoBorder:this.inputValidationInfoBorder,inputValidationWarningBackground:this.inputValidationWarningBackground,inputValidationWarningForeground:this.inputValidationWarningForeground,inputValidationWarningBorder:this.inputValidationWarningBorder,inputValidationErrorBackground:this.inputValidationErrorBackground,inputValidationErrorForeground:this.inputValidationErrorForeground,inputValidationErrorBorder:this.inputValidationErrorBorder};this.inputBox.style(t)}}select(){this.inputBox.select()}focus(){this.inputBox.focus()}getCaseSensitive(){return this.caseSensitive.checked}setCaseSensitive(e){this.caseSensitive.checked=e} +getWholeWords(){return this.wholeWords.checked}setWholeWords(e){this.wholeWords.checked=e}getRegex(){return this.regex.checked}setRegex(e){this.regex.checked=e,this.validate()}focusOnCaseSensitive(){this.caseSensitive.focus()}highlightFindOptions(){n.removeClass(this.domNode,"highlight-"+this._lastHighlightFindOptions),this._lastHighlightFindOptions=1-this._lastHighlightFindOptions,n.addClass(this.domNode,"highlight-"+this._lastHighlightFindOptions)}validate(){this.inputBox.validate()}clearMessage(){this.inputBox.hideMessage()}}t.FindInput=d})),define(t[414],i([0,1,411,7,167,54,4,152,26,200]),(function(e,t,i,n,o,s,r,a,l){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ReplaceInput=t.PreserveCaseCheckbox=void 0;const d=i.localize(0,null),c=i.localize(1,null);class h extends a.Checkbox{constructor(e){super({icon:l.Codicon.preserveCase,title:c+e.appendTitle,isChecked:e.isChecked,inputActiveOptionBorder:e.inputActiveOptionBorder,inputActiveOptionForeground:e.inputActiveOptionForeground, +inputActiveOptionBackground:e.inputActiveOptionBackground})}}t.PreserveCaseCheckbox=h;class u extends s.Widget{constructor(e,t,i,s){super(),this._showOptionButtons=i,this.fixFocusOnOptionClickEnabled=!0,this.cachedOptionsWidth=0,this._onDidOptionChange=this._register(new r.Emitter),this.onDidOptionChange=this._onDidOptionChange.event,this._onKeyDown=this._register(new r.Emitter),this.onKeyDown=this._onKeyDown.event,this._onMouseDown=this._register(new r.Emitter),this._onInput=this._register(new r.Emitter),this._onKeyUp=this._register(new r.Emitter),this._onPreserveCaseKeyDown=this._register(new r.Emitter),this.onPreserveCaseKeyDown=this._onPreserveCaseKeyDown.event,this.contextViewProvider=t,this.placeholder=s.placeholder||"",this.validation=s.validation,this.label=s.label||d,this.inputActiveOptionBorder=s.inputActiveOptionBorder,this.inputActiveOptionForeground=s.inputActiveOptionForeground,this.inputActiveOptionBackground=s.inputActiveOptionBackground,this.inputBackground=s.inputBackground, +this.inputForeground=s.inputForeground,this.inputBorder=s.inputBorder,this.inputValidationInfoBorder=s.inputValidationInfoBorder,this.inputValidationInfoBackground=s.inputValidationInfoBackground,this.inputValidationInfoForeground=s.inputValidationInfoForeground,this.inputValidationWarningBorder=s.inputValidationWarningBorder,this.inputValidationWarningBackground=s.inputValidationWarningBackground,this.inputValidationWarningForeground=s.inputValidationWarningForeground,this.inputValidationErrorBorder=s.inputValidationErrorBorder,this.inputValidationErrorBackground=s.inputValidationErrorBackground,this.inputValidationErrorForeground=s.inputValidationErrorForeground;const a=s.history||[],l=!!s.flexibleHeight,c=!!s.flexibleWidth,u=s.flexibleMaxHeight;this.domNode=document.createElement("div"),n.addClass(this.domNode,"monaco-findInput"),this.inputBox=this._register(new o.HistoryInputBox(this.domNode,this.contextViewProvider,{ariaLabel:this.label||"",placeholder:this.placeholder||"",validationOptions:{ +validation:this.validation},inputBackground:this.inputBackground,inputForeground:this.inputForeground,inputBorder:this.inputBorder,inputValidationInfoBackground:this.inputValidationInfoBackground,inputValidationInfoForeground:this.inputValidationInfoForeground,inputValidationInfoBorder:this.inputValidationInfoBorder,inputValidationWarningBackground:this.inputValidationWarningBackground,inputValidationWarningForeground:this.inputValidationWarningForeground,inputValidationWarningBorder:this.inputValidationWarningBorder,inputValidationErrorBackground:this.inputValidationErrorBackground,inputValidationErrorForeground:this.inputValidationErrorForeground,inputValidationErrorBorder:this.inputValidationErrorBorder,history:a,flexibleHeight:l,flexibleWidth:c,flexibleMaxHeight:u})),this.preserveCase=this._register(new h({appendTitle:"",isChecked:!1,inputActiveOptionBorder:this.inputActiveOptionBorder,inputActiveOptionForeground:this.inputActiveOptionForeground,inputActiveOptionBackground:this.inputActiveOptionBackground +})),this._register(this.preserveCase.onChange(e=>{this._onDidOptionChange.fire(e),!e&&this.fixFocusOnOptionClickEnabled&&this.inputBox.focus(),this.validate()})),this._register(this.preserveCase.onKeyDown(e=>{this._onPreserveCaseKeyDown.fire(e)})),this._showOptionButtons?this.cachedOptionsWidth=this.preserveCase.width():this.cachedOptionsWidth=0;let g=[this.preserveCase.domNode];this.onkeydown(this.domNode,e=>{if(e.equals(15)||e.equals(17)||e.equals(9)){let t=g.indexOf(document.activeElement);if(t>=0){let i=-1;e.equals(17)?i=(t+1)%g.length:e.equals(15)&&(i=0===t?g.length-1:t-1),e.equals(9)?g[t].blur():i>=0&&g[i].focus(),n.EventHelper.stop(e,!0)}}});let p=document.createElement("div");p.className="controls",p.style.display=this._showOptionButtons?"block":"none",p.appendChild(this.preserveCase.domNode),this.domNode.appendChild(p),e&&e.appendChild(this.domNode),this.onkeydown(this.inputBox.inputElement,e=>this._onKeyDown.fire(e)),this.onkeyup(this.inputBox.inputElement,e=>this._onKeyUp.fire(e)), +this.oninput(this.inputBox.inputElement,e=>this._onInput.fire()),this.onmousedown(this.inputBox.inputElement,e=>this._onMouseDown.fire(e))}enable(){n.removeClass(this.domNode,"disabled"),this.inputBox.enable(),this.preserveCase.enable()}disable(){n.addClass(this.domNode,"disabled"),this.inputBox.disable(),this.preserveCase.disable()}setEnabled(e){e?this.enable():this.disable()}style(e){this.inputActiveOptionBorder=e.inputActiveOptionBorder,this.inputActiveOptionForeground=e.inputActiveOptionForeground,this.inputActiveOptionBackground=e.inputActiveOptionBackground,this.inputBackground=e.inputBackground,this.inputForeground=e.inputForeground,this.inputBorder=e.inputBorder,this.inputValidationInfoBackground=e.inputValidationInfoBackground,this.inputValidationInfoForeground=e.inputValidationInfoForeground,this.inputValidationInfoBorder=e.inputValidationInfoBorder,this.inputValidationWarningBackground=e.inputValidationWarningBackground,this.inputValidationWarningForeground=e.inputValidationWarningForeground, +this.inputValidationWarningBorder=e.inputValidationWarningBorder,this.inputValidationErrorBackground=e.inputValidationErrorBackground,this.inputValidationErrorForeground=e.inputValidationErrorForeground,this.inputValidationErrorBorder=e.inputValidationErrorBorder,this.applyStyles()}applyStyles(){if(this.domNode){const e={inputActiveOptionBorder:this.inputActiveOptionBorder,inputActiveOptionForeground:this.inputActiveOptionForeground,inputActiveOptionBackground:this.inputActiveOptionBackground};this.preserveCase.style(e);const t={inputBackground:this.inputBackground,inputForeground:this.inputForeground,inputBorder:this.inputBorder,inputValidationInfoBackground:this.inputValidationInfoBackground,inputValidationInfoForeground:this.inputValidationInfoForeground,inputValidationInfoBorder:this.inputValidationInfoBorder,inputValidationWarningBackground:this.inputValidationWarningBackground,inputValidationWarningForeground:this.inputValidationWarningForeground, +inputValidationWarningBorder:this.inputValidationWarningBorder,inputValidationErrorBackground:this.inputValidationErrorBackground,inputValidationErrorForeground:this.inputValidationErrorForeground,inputValidationErrorBorder:this.inputValidationErrorBorder};this.inputBox.style(t)}}select(){this.inputBox.select()}focus(){this.inputBox.focus()}getPreserveCase(){return this.preserveCase.checked}setPreserveCase(e){this.preserveCase.checked=e}focusOnPreserve(){this.preserveCase.focus()}validate(){this.inputBox&&this.inputBox.validate()}set width(e){this.inputBox.paddingRight=this.cachedOptionsWidth,this.inputBox.width=e,this.domNode.style.width=e+"px"}dispose(){super.dispose()}}t.ReplaceInput=u})),define(t[415],i([0,1,7,167,2,53,77,51,119]),(function(e,t,i,n,o,s,r,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.QuickInputBox=void 0;const l=i.$;class d extends o.Disposable{constructor(e){super(),this.parent=e, +this.onKeyDown=e=>i.addDisposableListener(this.inputBox.inputElement,i.EventType.KEY_DOWN,t=>{e(new s.StandardKeyboardEvent(t))}),this.onMouseDown=e=>i.addDisposableListener(this.inputBox.inputElement,i.EventType.MOUSE_DOWN,t=>{e(new a.StandardMouseEvent(t))}),this.onDidChange=e=>this.inputBox.onDidChange(e),this.container=i.append(this.parent,l(".quick-input-box")),this.inputBox=this._register(new n.InputBox(this.container,void 0))}get value(){return this.inputBox.value}set value(e){this.inputBox.value=e}select(e=null){this.inputBox.select(e)}isSelectionAtEnd(){return this.inputBox.isSelectionAtEnd()}get placeholder(){return this.inputBox.inputElement.getAttribute("placeholder")||""}set placeholder(e){this.inputBox.setPlaceHolder(e)}get ariaLabel(){return this.inputBox.getAriaLabel()}set ariaLabel(e){this.inputBox.setAriaLabel(e)}get password(){return"password"===this.inputBox.inputElement.type}set password(e){this.inputBox.inputElement.type=e?"password":"text"}setAttribute(e,t){ +this.inputBox.inputElement.setAttribute(e,t)}removeAttribute(e){this.inputBox.inputElement.removeAttribute(e)}showDecoration(e){e===r.default.Ignore?this.inputBox.hideMessage():this.inputBox.showMessage({type:e===r.default.Info?1:e===r.default.Warning?2:3,content:""})}stylesForType(e){return this.inputBox.stylesForType(e===r.default.Info?1:e===r.default.Warning?2:3)}setFocus(){this.inputBox.focus()}layout(){this.inputBox.layout()}style(e){this.inputBox.style(e)}}t.QuickInputBox=d})),define(t[416],i([5,6]),(function(e,t){return e.create("vs/base/browser/ui/keybindingLabel/keybindingLabel",t)})),define(t[417],i([5,6]),(function(e,t){return e.create("vs/base/browser/ui/menu/menu",t)})),define(t[418],i([0,1,417,8,47,79,7,53,15,2,65,197,16,26,91,115,36,51]),(function(e,t,i,n,o,s,r,a,l,d,c,h,u,g,p,m,f,_){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.cleanMnemonic=t.Menu=t.Direction=t.MENU_ESCAPED_MNEMONIC_REGEX=t.MENU_MNEMONIC_REGEX=void 0,t.MENU_MNEMONIC_REGEX=/\(&([^\s&])\)|(^|[^&])&([^\s&])/, +t.MENU_ESCAPED_MNEMONIC_REGEX=/(&)?(&)([^\s&])/g;const v=g.registerIcon("menu-selection",g.Codicon.check),C=g.registerIcon("menu-submenu",g.Codicon.chevronRight);var b;!function(e){e[e.Right=0]="Right",e[e.Left=1]="Left"}(b=t.Direction||(t.Direction={}));class S extends s.ActionBar{constructor(e,t,i={}){r.addClass(e,"monaco-menu-container"),e.setAttribute("role","presentation");const n=document.createElement("div");r.addClass(n,"monaco-menu"),n.setAttribute("role","presentation"),super(n,{orientation:2,actionViewItemProvider:e=>this.doGetActionViewItem(e,i,o),context:i.context,actionRunner:i.actionRunner,ariaLabel:i.ariaLabel,triggerKeys:{keys:[3,...u.isMacintosh||u.isLinux?[10]:[]],keyDown:!0}}),this.menuElement=n,this.actionsList.setAttribute("role","menu"),this.actionsList.tabIndex=0,this.menuDisposables=this._register(new d.DisposableStore),this.initializeStyleSheet(e),r.addDisposableListener(n,r.EventType.KEY_DOWN,e=>{new a.StandardKeyboardEvent(e).equals(2)&&e.preventDefault()}), +i.enableMnemonics&&this.menuDisposables.add(r.addDisposableListener(n,r.EventType.KEY_DOWN,e=>{const t=e.key.toLocaleLowerCase();if(this.mnemonics.has(t)){r.EventHelper.stop(e,!0);const i=this.mnemonics.get(t);if(1===i.length&&(i[0]instanceof y&&i[0].container&&this.focusItemByElement(i[0].container),i[0].onClick(e)),i.length>1){const e=i.shift();e&&e.container&&(this.focusItemByElement(e.container),i.push(e)),this.mnemonics.set(t,i)}}})),u.isLinux&&this._register(r.addDisposableListener(n,r.EventType.KEY_DOWN,e=>{const t=new a.StandardKeyboardEvent(e);t.equals(14)||t.equals(11)?(this.focusedItem=this.viewItems.length-1,this.focusNext(),r.EventHelper.stop(e,!0)):(t.equals(13)||t.equals(12))&&(this.focusedItem=0,this.focusPrevious(),r.EventHelper.stop(e,!0))})),this._register(r.addDisposableListener(this.domNode,r.EventType.MOUSE_OUT,e=>{let t=e.relatedTarget;r.isAncestor(t,this.domNode)||(this.focusedItem=void 0,this.updateFocus(),e.stopPropagation())})), +this._register(r.addDisposableListener(this.actionsList,r.EventType.MOUSE_OVER,e=>{let t=e.target;if(t&&r.isAncestor(t,this.actionsList)&&t!==this.actionsList){for(;t.parentElement!==this.actionsList&&null!==t.parentElement;)t=t.parentElement;if(r.hasClass(t,"action-item")){const e=this.focusedItem;this.setFocusedItem(t),e!==this.focusedItem&&this.updateFocus()}}}));let o={parent:this};this.mnemonics=new Map,this.scrollableElement=this._register(new c.DomScrollableElement(n,{alwaysConsumeMouseWheel:!0,horizontal:2,vertical:3,verticalScrollbarSize:7,handleMouseWheel:!0,useShadows:!0}));const s=this.scrollableElement.getDomNode();s.style.position="",this._register(r.addDisposableListener(s,r.EventType.MOUSE_UP,e=>{e.preventDefault()})),n.style.maxHeight=`${Math.max(10,window.innerHeight-e.getBoundingClientRect().top-35)}px`,t=t.filter(e=>{var t;return null===(t=i.submenuIds)||void 0===t||!t.has(e.id)||(console.warn(`Found submenu cycle: ${e.id}`),!1)}),this.push(t,{icon:!0,label:!0,isMenu:!0}), +e.appendChild(this.scrollableElement.getDomNode()),this.scrollableElement.scanDomNode(),this.viewItems.filter(e=>!(e instanceof E)).forEach((e,t,i)=>{e.updatePositionInSet(t+1,i.length)})}initializeStyleSheet(e){r.isInShadowDOM(e)?(this.styleSheet=r.createStyleSheet(e),this.styleSheet.innerHTML=x):(S.globalStyleSheet||(S.globalStyleSheet=r.createStyleSheet(),S.globalStyleSheet.innerHTML=x),this.styleSheet=S.globalStyleSheet)}style(e){const t=this.getContainer(),i=e.foregroundColor?`${e.foregroundColor}`:"",n=e.backgroundColor?`${e.backgroundColor}`:"",o=e.borderColor?`1px solid ${e.borderColor}`:"",s=e.shadowColor?`0 2px 4px ${e.shadowColor}`:"";t.style.border=o,this.domNode.style.color=i,this.domNode.style.backgroundColor=n,t.style.boxShadow=s,this.viewItems&&this.viewItems.forEach(t=>{(t instanceof w||t instanceof E)&&t.style(e)})}getContainer(){return this.scrollableElement.getDomNode()}get onScroll(){return this.scrollableElement.onScroll}focusItemByElement(e){const t=this.focusedItem +;this.setFocusedItem(e),t!==this.focusedItem&&this.updateFocus()}setFocusedItem(e){for(let t=0;t{this.element&&(this._register(r.addDisposableListener(this.element,r.EventType.MOUSE_UP,e=>{if(r.EventHelper.stop(e,!0),f.isFirefox){if(new _.StandardMouseEvent(e).rightButton)return;this.onClick(e)}setTimeout(()=>{this.onClick(e)},0)})),this._register(r.addDisposableListener(this.element,r.EventType.CONTEXT_MENU,e=>{r.EventHelper.stop(e,!0)})))},100),this._register(this.runOnceToEnableMouseUp)}render(e){super.render(e),this.element&&(this.container=e, +this.item=r.append(this.element,r.$("a.action-menu-item")),this._action.id===o.Separator.ID?this.item.setAttribute("role","presentation"):(this.item.setAttribute("role","menuitem"),this.mnemonic&&this.item.setAttribute("aria-keyshortcuts",`${this.mnemonic}`)),this.check=r.append(this.item,r.$("span.menu-item-check"+v.cssSelector)),this.check.setAttribute("role","none"),this.label=r.append(this.item,r.$("span.action-label")),this.options.label&&this.options.keybinding&&(r.append(this.item,r.$("span.keybinding")).textContent=this.options.keybinding),this.runOnceToEnableMouseUp.schedule(),this.updateClass(),this.updateLabel(),this.updateTooltip(),this.updateEnabled(),this.updateChecked())}blur(){super.blur(),this.applyStyle()}focus(){super.focus(),this.item&&this.item.focus(),this.applyStyle()}updatePositionInSet(e,t){this.item&&(this.item.setAttribute("aria-posinset",`${e}`),this.item.setAttribute("aria-setsize",`${t}`))}updateLabel(){if(this.label&&this.options.label){r.clearNode(this.label) +;let e=g.stripCodicons(this.getAction().label);if(e){const i=L(e);this.options.enableMnemonics||(e=i),this.label.setAttribute("aria-label",i.replace(/&&/g,"&"));const o=t.MENU_MNEMONIC_REGEX.exec(e);if(o){e=n.escape(e),t.MENU_ESCAPED_MNEMONIC_REGEX.lastIndex=0;let i=t.MENU_ESCAPED_MNEMONIC_REGEX.exec(e);for(;i&&i[1];)i=t.MENU_ESCAPED_MNEMONIC_REGEX.exec(e);const s=e=>e.replace(/&&/g,"&");i?this.label.append(n.ltrim(s(e.substr(0,i.index))," "),r.$("u",{"aria-hidden":"true"},i[3]),n.rtrim(s(e.substr(i.index+i[0].length))," ")):this.label.innerText=s(e).trim(),this.item&&this.item.setAttribute("aria-keyshortcuts",(o[1]?o[1]:o[3]).toLocaleLowerCase())}else this.label.innerText=e.replace(/&&/g,"&").trim()}}}updateTooltip(){let e=null;this.getAction().tooltip?e=this.getAction().tooltip:!this.options.label&&this.getAction().label&&this.options.icon&&(e=this.getAction().label,this.options.keybinding&&(e=i.localize(0,null,e,this.options.keybinding))),e&&this.item&&(this.item.title=e)}updateClass(){ +this.cssClass&&this.item&&r.removeClasses(this.item,this.cssClass),this.options.icon&&this.label?(this.cssClass=this.getAction().class||"",r.addClass(this.label,"icon"),this.cssClass&&r.addClasses(this.label,this.cssClass),this.updateEnabled()):this.label&&r.removeClass(this.label,"icon")}updateEnabled(){this.getAction().enabled?(this.element&&r.removeClass(this.element,"disabled"),this.item&&(r.removeClass(this.item,"disabled"),this.item.tabIndex=0)):(this.element&&r.addClass(this.element,"disabled"),this.item&&(r.addClass(this.item,"disabled"),r.removeTabIndexAndUpdateFocus(this.item)))}updateChecked(){this.item&&(this.getAction().checked?(r.addClass(this.item,"checked"),this.item.setAttribute("role","menuitemcheckbox"),this.item.setAttribute("aria-checked","true")):(r.removeClass(this.item,"checked"),this.item.setAttribute("role","menuitem"),this.item.setAttribute("aria-checked","false")))}getMnemonic(){return this.mnemonic}applyStyle(){if(!this.menuStyle)return +;const e=this.element&&r.hasClass(this.element,"focused"),t=e&&this.menuStyle.selectionForegroundColor?this.menuStyle.selectionForegroundColor:this.menuStyle.foregroundColor,i=e&&this.menuStyle.selectionBackgroundColor?this.menuStyle.selectionBackgroundColor:void 0,n=e&&this.menuStyle.selectionBorderColor?`thin solid ${this.menuStyle.selectionBorderColor}`:"";this.item&&(this.item.style.color=t?t.toString():"",this.item.style.backgroundColor=i?i.toString():""),this.check&&(this.check.style.color=t?t.toString():""),this.container&&(this.container.style.border=n)}style(e){this.menuStyle=e,this.applyStyle()}}class y extends w{constructor(e,t,i,n){super(e,e,n),this.submenuActions=t,this.parentData=i,this.submenuOptions=n,this.mysubmenu=null,this.submenuDisposables=this._register(new d.DisposableStore),this.mouseOver=!1,this.expandDirection=n&&void 0!==n.expandDirection?n.expandDirection:b.Right,this.showScheduler=new l.RunOnceScheduler(()=>{this.mouseOver&&(this.cleanupExistingSubmenu(!1),this.createSubmenu(!1)) +},250),this.hideScheduler=new l.RunOnceScheduler(()=>{this.element&&!r.isAncestor(r.getActiveElement(),this.element)&&this.parentData.submenu===this.mysubmenu&&(this.parentData.parent.focus(!1),this.cleanupExistingSubmenu(!0))},750)}render(e){super.render(e),this.element&&(this.item&&(r.addClass(this.item,"monaco-submenu-item"),this.item.setAttribute("aria-haspopup","true"),this.updateAriaExpanded("false"),this.submenuIndicator=r.append(this.item,r.$("span.submenu-indicator"+C.cssSelector)),this.submenuIndicator.setAttribute("aria-hidden","true")),this._register(r.addDisposableListener(this.element,r.EventType.KEY_UP,e=>{let t=new a.StandardKeyboardEvent(e);(t.equals(17)||t.equals(3))&&(r.EventHelper.stop(e,!0),this.createSubmenu(!0))})),this._register(r.addDisposableListener(this.element,r.EventType.KEY_DOWN,e=>{let t=new a.StandardKeyboardEvent(e);r.getActiveElement()===this.item&&(t.equals(17)||t.equals(3))&&r.EventHelper.stop(e,!0)})), +this._register(r.addDisposableListener(this.element,r.EventType.MOUSE_OVER,e=>{this.mouseOver||(this.mouseOver=!0,this.showScheduler.schedule())})),this._register(r.addDisposableListener(this.element,r.EventType.MOUSE_LEAVE,e=>{this.mouseOver=!1})),this._register(r.addDisposableListener(this.element,r.EventType.FOCUS_OUT,e=>{this.element&&!r.isAncestor(r.getActiveElement(),this.element)&&this.hideScheduler.schedule()})),this._register(this.parentData.parent.onScroll(()=>{this.parentData.parent.focus(!1),this.cleanupExistingSubmenu(!1)})))}onClick(e){r.EventHelper.stop(e,!0),this.cleanupExistingSubmenu(!1),this.createSubmenu(!0)}cleanupExistingSubmenu(e){if(this.parentData.submenu&&(e||this.parentData.submenu!==this.mysubmenu)){try{this.parentData.submenu.dispose()}catch(e){}this.parentData.submenu=void 0,this.updateAriaExpanded("false"),this.submenuContainer&&(this.submenuDisposables.clear(),this.submenuContainer=void 0)}}calculateSubmenuMenuLayout(e,t,i,n){const o={top:0,left:0} +;return o.left=h.layout(e.width,t.width,{position:n===b.Right?0:1,offset:i.left,size:i.width}),o.left>=i.left&&o.left{new a.StandardKeyboardEvent(e).equals(15)&&(r.EventHelper.stop(e,!0),this.parentData.parent.focus(),this.cleanupExistingSubmenu(!0))})),this.submenuDisposables.add(r.addDisposableListener(this.submenuContainer,r.EventType.KEY_DOWN,e=>{new a.StandardKeyboardEvent(e).equals(15)&&r.EventHelper.stop(e,!0)})),this.submenuDisposables.add(this.parentData.submenu.onDidCancel(()=>{this.parentData.parent.focus(),this.cleanupExistingSubmenu(!0)})),this.parentData.submenu.focus(e), +this.mysubmenu=this.parentData.submenu}}updateAriaExpanded(e){var t;this.item&&(null===(t=this.item)||void 0===t||t.setAttribute("aria-expanded",e))}applyStyle(){if(super.applyStyle(),!this.menuStyle)return;const e=this.element&&r.hasClass(this.element,"focused")&&this.menuStyle.selectionForegroundColor?this.menuStyle.selectionForegroundColor:this.menuStyle.foregroundColor;this.submenuIndicator&&(this.submenuIndicator.style.color=e?`${e}`:""),this.parentData.submenu&&this.parentData.submenu.style(this.menuStyle)}dispose(){super.dispose(),this.hideScheduler.dispose(),this.mysubmenu&&(this.mysubmenu.dispose(),this.mysubmenu=null),this.submenuContainer&&(this.submenuContainer=void 0)}}class E extends p.ActionViewItem{style(e){this.label&&(this.label.style.borderBottomColor=e.separatorColor?`${e.separatorColor}`:"")}}function L(e){const i=t.MENU_MNEMONIC_REGEX,n=i.exec(e);if(!n)return e;const o=!n[1];return e.replace(i,o?"$2$3":"").trim()}t.cleanMnemonic=L +;let x=`\n.monaco-menu {\n\tfont-size: 13px;\n\n}\n\n${m.formatRule(v)}\n${m.formatRule(C)}\n\n.monaco-menu .monaco-action-bar {\n\ttext-align: right;\n\toverflow: hidden;\n\twhite-space: nowrap;\n}\n\n.monaco-menu .monaco-action-bar .actions-container {\n\tdisplay: flex;\n\tmargin: 0 auto;\n\tpadding: 0;\n\twidth: 100%;\n\tjustify-content: flex-end;\n}\n\n.monaco-menu .monaco-action-bar.vertical .actions-container {\n\tdisplay: inline-block;\n}\n\n.monaco-menu .monaco-action-bar.reverse .actions-container {\n\tflex-direction: row-reverse;\n}\n\n.monaco-menu .monaco-action-bar .action-item {\n\tcursor: pointer;\n\tdisplay: inline-block;\n\ttransition: transform 50ms ease;\n\tposition: relative; /* DO NOT REMOVE - this is the key to preventing the ghosting icon bug in Chrome 42 */\n}\n\n.monaco-menu .monaco-action-bar .action-item.disabled {\n\tcursor: default;\n}\n\n.monaco-menu .monaco-action-bar.animated .action-item.active {\n\ttransform: scale(1.272019649, 1.272019649); /* 1.272019649 = √φ */\n}\n\n.monaco-menu .monaco-action-bar .action-item .icon,\n.monaco-menu .monaco-action-bar .action-item .codicon {\n\tdisplay: inline-block;\n}\n\n.monaco-menu .monaco-action-bar .action-item .codicon {\n\tdisplay: flex;\n\talign-items: center;\n}\n\n.monaco-menu .monaco-action-bar .action-label {\n\tfont-size: 11px;\n\tmargin-right: 4px;\n}\n\n.monaco-menu .monaco-action-bar .action-item.disabled .action-label,\n.monaco-menu .monaco-action-bar .action-item.disabled .action-label:hover {\n\topacity: 0.4;\n}\n\n/* Vertical actions */\n\n.monaco-menu .monaco-action-bar.vertical {\n\ttext-align: left;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-item {\n\tdisplay: block;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label.separator {\n\tdisplay: block;\n\tborder-bottom: 1px solid #bbb;\n\tpadding-top: 1px;\n\tmargin-left: .8em;\n\tmargin-right: .8em;\n}\n\n.monaco-menu .secondary-actions .monaco-action-bar .action-label {\n\tmargin-left: 6px;\n}\n\n/* Action Items */\n.monaco-menu .monaco-action-bar .action-item.select-container {\n\toverflow: hidden; /* somehow the dropdown overflows its container, we prevent it here to not push */\n\tflex: 1;\n\tmax-width: 170px;\n\tmin-width: 60px;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tmargin-right: 10px;\n}\n\n.monaco-menu .monaco-action-bar.vertical {\n\tmargin-left: 0;\n\toverflow: visible;\n}\n\n.monaco-menu .monaco-action-bar.vertical .actions-container {\n\tdisplay: block;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-item {\n\tpadding: 0;\n\ttransform: none;\n\tdisplay: flex;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-item.active {\n\ttransform: none;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-menu-item {\n\tflex: 1 1 auto;\n\tdisplay: flex;\n\theight: 2em;\n\talign-items: center;\n\tposition: relative;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label {\n\tflex: 1 1 auto;\n\ttext-decoration: none;\n\tpadding: 0 1em;\n\tbackground: none;\n\tfont-size: 12px;\n\tline-height: 1;\n}\n\n.monaco-menu .monaco-action-bar.vertical .keybinding,\n.monaco-menu .monaco-action-bar.vertical .submenu-indicator {\n\tdisplay: inline-block;\n\tflex: 2 1 auto;\n\tpadding: 0 1em;\n\ttext-align: right;\n\tfont-size: 12px;\n\tline-height: 1;\n}\n\n.monaco-menu .monaco-action-bar.vertical .submenu-indicator {\n\theight: 100%;\n}\n\n.monaco-menu .monaco-action-bar.vertical .submenu-indicator.codicon {\n\tfont-size: 16px !important;\n\tdisplay: flex;\n\talign-items: center;\n}\n\n.monaco-menu .monaco-action-bar.vertical .submenu-indicator.codicon::before {\n\tmargin-left: auto;\n\tmargin-right: -20px;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-item.disabled .keybinding,\n.monaco-menu .monaco-action-bar.vertical .action-item.disabled .submenu-indicator {\n\topacity: 0.4;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label:not(.separator) {\n\tdisplay: inline-block;\n\tbox-sizing: border-box;\n\tmargin: 0;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-item {\n\tposition: static;\n\toverflow: visible;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-item .monaco-submenu {\n\tposition: absolute;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label.separator {\n\tpadding: 0.5em 0 0 0;\n\tmargin-bottom: 0.5em;\n\twidth: 100%;\n\theight: 0px !important;\n\tmargin-left: .8em !important;\n\tmargin-right: .8em !important;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label.separator.text {\n\tpadding: 0.7em 1em 0.1em 1em;\n\tfont-weight: bold;\n\topacity: 1;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label:hover {\n\tcolor: inherit;\n}\n\n.monaco-menu .monaco-action-bar.vertical .menu-item-check {\n\tposition: absolute;\n\tvisibility: hidden;\n\twidth: 1em;\n\theight: 100%;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-menu-item.checked .menu-item-check {\n\tvisibility: visible;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n}\n\n/* Context Menu */\n\n.context-view.monaco-menu-container {\n\toutline: 0;\n\tborder: none;\n\tanimation: fadeIn 0.083s linear;\n}\n\n.context-view.monaco-menu-container :focus,\n.context-view.monaco-menu-container .monaco-action-bar.vertical:focus,\n.context-view.monaco-menu-container .monaco-action-bar.vertical :focus {\n\toutline: 0;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-item {\n\tborder: thin solid transparent; /* prevents jumping behaviour on hover or focus */\n}\n\n\n/* High Contrast Theming */\n:host-context(.hc-black) .context-view.monaco-menu-container {\n\tbox-shadow: none;\n}\n\n:host-context(.hc-black) .monaco-menu .monaco-action-bar.vertical .action-item.focused {\n\tbackground: none;\n}\n\n/* Vertical Action Bar Styles */\n\n.monaco-menu .monaco-action-bar.vertical {\n\tpadding: .5em 0;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-menu-item {\n\theight: 1.8em;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label:not(.separator),\n.monaco-menu .monaco-action-bar.vertical .keybinding {\n\tfont-size: inherit;\n\tpadding: 0 2em;\n}\n\n.monaco-menu .monaco-action-bar.vertical .menu-item-check {\n\tfont-size: inherit;\n\twidth: 2em;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label.separator {\n\tfont-size: inherit;\n\tpadding: 0.2em 0 0 0;\n\tmargin-bottom: 0.2em;\n}\n\n:host-context(.linux) .monaco-menu .monaco-action-bar.vertical .action-label.separator {\n\tmargin-left: 0;\n\tmargin-right: 0;\n}\n\n.monaco-menu .monaco-action-bar.vertical .submenu-indicator {\n\tfont-size: 60%;\n\tpadding: 0 1.8em;\n}\n\n:host-context(.linux) .monaco-menu .monaco-action-bar.vertical .submenu-indicator {\n\theight: 100%;\n\tmask-size: 10px 10px;\n\t-webkit-mask-size: 10px 10px;\n}\n\n.monaco-menu .action-item {\n\tcursor: default;\n}\n\n/* Arrows */\n.monaco-scrollable-element > .scrollbar > .scra {\n\tcursor: pointer;\n\tfont-size: 11px !important;\n}\n\n.monaco-scrollable-element > .visible {\n\topacity: 1;\n\n\t/* Background rule added for IE9 - to allow clicks on dom node */\n\tbackground:rgba(0,0,0,0);\n\n\ttransition: opacity 100ms linear;\n}\n.monaco-scrollable-element > .invisible {\n\topacity: 0;\n\tpointer-events: none;\n}\n.monaco-scrollable-element > .invisible.fade {\n\ttransition: opacity 800ms linear;\n}\n\n/* Scrollable Content Inset Shadow */\n.monaco-scrollable-element > .shadow {\n\tposition: absolute;\n\tdisplay: none;\n}\n.monaco-scrollable-element > .shadow.top {\n\tdisplay: block;\n\ttop: 0;\n\tleft: 3px;\n\theight: 3px;\n\twidth: 100%;\n\tbox-shadow: #DDD 0 6px 6px -6px inset;\n}\n.monaco-scrollable-element > .shadow.left {\n\tdisplay: block;\n\ttop: 3px;\n\tleft: 0;\n\theight: 100%;\n\twidth: 3px;\n\tbox-shadow: #DDD 6px 0 6px -6px inset;\n}\n.monaco-scrollable-element > .shadow.top-left-corner {\n\tdisplay: block;\n\ttop: 0;\n\tleft: 0;\n\theight: 3px;\n\twidth: 3px;\n}\n.monaco-scrollable-element > .shadow.top.left {\n\tbox-shadow: #DDD 6px 6px 6px -6px inset;\n}\n\n/* ---------- Default Style ---------- */\n\n:host-context(.vs) .monaco-scrollable-element > .scrollbar > .slider {\n\tbackground: rgba(100, 100, 100, .4);\n}\n:host-context(.vs-dark) .monaco-scrollable-element > .scrollbar > .slider {\n\tbackground: rgba(121, 121, 121, .4);\n}\n:host-context(.hc-black) .monaco-scrollable-element > .scrollbar > .slider {\n\tbackground: rgba(111, 195, 223, .6);\n}\n\n.monaco-scrollable-element > .scrollbar > .slider:hover {\n\tbackground: rgba(100, 100, 100, .7);\n}\n:host-context(.hc-black) .monaco-scrollable-element > .scrollbar > .slider:hover {\n\tbackground: rgba(111, 195, 223, .8);\n}\n\n.monaco-scrollable-element > .scrollbar > .slider.active {\n\tbackground: rgba(0, 0, 0, .6);\n}\n:host-context(.vs-dark) .monaco-scrollable-element > .scrollbar > .slider.active {\n\tbackground: rgba(191, 191, 191, .4);\n}\n:host-context(.hc-black) .monaco-scrollable-element > .scrollbar > .slider.active {\n\tbackground: rgba(111, 195, 223, 1);\n}\n\n:host-context(.vs-dark) .monaco-scrollable-element .shadow.top {\n\tbox-shadow: none;\n}\n\n:host-context(.vs-dark) .monaco-scrollable-element .shadow.left {\n\tbox-shadow: #000 6px 0 6px -6px inset;\n}\n\n:host-context(.vs-dark) .monaco-scrollable-element .shadow.top.left {\n\tbox-shadow: #000 6px 6px 6px -6px inset;\n}\n\n:host-context(.hc-black) .monaco-scrollable-element .shadow.top {\n\tbox-shadow: none;\n}\n\n:host-context(.hc-black) .monaco-scrollable-element .shadow.left {\n\tbox-shadow: none;\n}\n\n:host-context(.hc-black) .monaco-scrollable-element .shadow.top.left {\n\tbox-shadow: none;\n}\n` +})),define(t[419],i([5,6]),(function(e,t){return e.create("vs/base/browser/ui/tree/abstractTree",t)})),define(t[168],i([0,1,2,118,7,4,53,95,143,19,154,57,64,145,419,15,16,109,186,192,305]),(function(e,t,i,n,o,s,r,a,l,d,c,h,u,g,p,m,f,_,v,C){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractTree=t.RenderIndentGuides=t.ComposedTreeDelegate=void 0;class b extends c.ElementsDragAndDropData{constructor(e){super(e.elements.map(e=>e.element)),this.data=e}}function S(e){return e instanceof c.ElementsDragAndDropData?new b(e):e}class w{constructor(e,t){this.modelProvider=e,this.dnd=t,this.autoExpandDisposable=i.Disposable.None}getDragURI(e){return this.dnd.getDragURI(e.element)}getDragLabel(e,t){if(this.dnd.getDragLabel)return this.dnd.getDragLabel(e.map(e=>e.element),t)}onDragStart(e,t){this.dnd.onDragStart&&this.dnd.onDragStart(S(e),t)}onDragOver(e,t,i,n,o=!0){const s=this.dnd.onDragOver(S(e),t&&t.element,i,n),r=this.autoExpandNode!==t;if(r&&(this.autoExpandDisposable.dispose(), +this.autoExpandNode=t),void 0===t)return s;if(r&&"boolean"!=typeof s&&s.autoExpand&&(this.autoExpandDisposable=m.disposableTimeout(()=>{const e=this.modelProvider(),i=e.getNodeLocation(t);e.isCollapsed(i)&&e.setCollapsed(i,!1),this.autoExpandNode=void 0},500)),"boolean"==typeof s||!s.accept||void 0===s.bubble||s.feedback){if(!o){return{accept:"boolean"==typeof s?s:s.accept,effect:"boolean"==typeof s?void 0:s.effect,feedback:[i]}}return s}if(1===s.bubble){const i=this.modelProvider(),o=i.getNodeLocation(t),s=i.getParentNodeLocation(o),r=i.getNode(s),a=s&&i.getListIndex(s);return this.onDragOver(e,r,a,n,!1)}const a=this.modelProvider(),l=a.getNodeLocation(t),c=a.getListIndex(l),h=a.getListRenderCount(l);return Object.assign(Object.assign({},s),{feedback:d.range(c,c+h)})}drop(e,t,i,n){this.autoExpandDisposable.dispose(),this.autoExpandNode=void 0,this.dnd.drop(S(e),t&&t.element,i,n)}onDragEnd(e){this.dnd.onDragEnd&&this.dnd.onDragEnd(e)}}class y{constructor(e){this.delegate=e}getHeight(e){ +return this.delegate.getHeight(e.element)}getTemplateId(e){return this.delegate.getTemplateId(e.element)}hasDynamicHeight(e){return!!this.delegate.hasDynamicHeight&&this.delegate.hasDynamicHeight(e.element)}setDynamicHeight(e,t){this.delegate.setDynamicHeight&&this.delegate.setDynamicHeight(e.element,t)}}var E;t.ComposedTreeDelegate=y,function(e){e.None="none",e.OnHover="onHover",e.Always="always"}(E=t.RenderIndentGuides||(t.RenderIndentGuides={}));class L{constructor(e,t=[]){this._elements=t,this.onDidChange=s.Event.forEach(e,e=>this._elements=e)}get elements(){return this._elements}}class x{constructor(e,t,n,o,r={}){this.renderer=e,this.modelProvider=t,this.activeNodes=o,this.renderedElements=new Map,this.renderedNodes=new Map,this.indent=x.DefaultIndent,this.hideTwistiesOfChildlessElements=!1,this.shouldRenderIndentGuides=!1,this.renderedIndentGuides=new v.SetMap,this.activeIndentNodes=new Set,this.indentGuidesDisposable=i.Disposable.None,this.disposables=new i.DisposableStore,this.templateId=e.templateId, +this.updateOptions(r),s.Event.map(n,e=>e.node)(this.onDidChangeNodeTwistieState,this,this.disposables),e.onDidChangeTwistieState&&e.onDidChangeTwistieState(this.onDidChangeTwistieState,this,this.disposables)}updateOptions(e={}){if(void 0!==e.indent&&(this.indent=_.clamp(e.indent,0,40)),void 0!==e.renderIndentGuides){const t=e.renderIndentGuides!==E.None;if(t!==this.shouldRenderIndentGuides&&(this.shouldRenderIndentGuides=t,this.indentGuidesDisposable.dispose(),t)){const e=new i.DisposableStore;this.activeNodes.onDidChange(this._onDidChangeActiveNodes,this,e),this.indentGuidesDisposable=e,this._onDidChangeActiveNodes(this.activeNodes.elements)}}void 0!==e.hideTwistiesOfChildlessElements&&(this.hideTwistiesOfChildlessElements=e.hideTwistiesOfChildlessElements)}renderTemplate(e){const t=o.append(e,o.$(".monaco-tl-row")),n=o.append(t,o.$(".monaco-tl-indent")),s=o.append(t,o.$(".monaco-tl-twistie")),r=o.append(t,o.$(".monaco-tl-contents")),a=this.renderer.renderTemplate(r);return{container:e,indent:n,twistie:s, +indentGuidesDisposable:i.Disposable.None,templateData:a}}renderElement(e,t,i,n){"number"==typeof n&&(this.renderedNodes.set(e,{templateData:i,height:n}),this.renderedElements.set(e.element,e));const o=x.DefaultIndent+(e.depth-1)*this.indent;i.twistie.style.paddingLeft=`${o}px`,i.indent.style.width=`${o+this.indent-16}px`,this.renderTwistie(e,i),"number"==typeof n&&this.renderIndentGuides(e,i),this.renderer.renderElement(e,t,i.templateData,n)}disposeElement(e,t,i,n){i.indentGuidesDisposable.dispose(),this.renderer.disposeElement&&this.renderer.disposeElement(e,t,i.templateData,n),"number"==typeof n&&(this.renderedNodes.delete(e),this.renderedElements.delete(e.element))}disposeTemplate(e){this.renderer.disposeTemplate(e.templateData)}onDidChangeTwistieState(e){const t=this.renderedElements.get(e);t&&this.onDidChangeNodeTwistieState(t)}onDidChangeNodeTwistieState(e){const t=this.renderedNodes.get(e);t&&(this.renderTwistie(e,t.templateData),this._onDidChangeActiveNodes(this.activeNodes.elements), +this.renderIndentGuides(e,t.templateData))}renderTwistie(e,t){this.renderer.renderTwistie&&this.renderer.renderTwistie(e.element,t.twistie),e.collapsible&&(!this.hideTwistiesOfChildlessElements||e.visibleChildrenCount>0)?(o.addClasses(t.twistie,C.treeItemExpandedIcon.classNames,"collapsible"),o.toggleClass(t.twistie,"collapsed",e.collapsed)):o.removeClasses(t.twistie,C.treeItemExpandedIcon.classNames,"collapsible","collapsed"),e.collapsible?t.container.setAttribute("aria-expanded",String(!e.collapsed)):t.container.removeAttribute("aria-expanded")}renderIndentGuides(e,t){if(o.clearNode(t.indent),t.indentGuidesDisposable.dispose(),!this.shouldRenderIndentGuides)return;const n=new i.DisposableStore,s=this.modelProvider();let r=e;for(;;){const e=s.getNodeLocation(r),a=s.getParentNodeLocation(e);if(!a)break;const l=s.getNode(a),d=o.$(".indent-guide",{style:`width: ${this.indent}px`});this.activeIndentNodes.has(l)&&o.addClass(d,"active"), +0===t.indent.childElementCount?t.indent.appendChild(d):t.indent.insertBefore(d,t.indent.firstElementChild),this.renderedIndentGuides.add(l,d),n.add(i.toDisposable(()=>this.renderedIndentGuides.delete(l,d))),r=l}t.indentGuidesDisposable=n}_onDidChangeActiveNodes(e){if(!this.shouldRenderIndentGuides)return;const t=new Set,i=this.modelProvider();e.forEach(e=>{const n=i.getNodeLocation(e);try{const o=i.getParentNodeLocation(n);e.collapsible&&e.children.length>0&&!e.collapsed?t.add(e):o&&t.add(i.getNode(o))}catch(e){}}),this.activeIndentNodes.forEach(e=>{t.has(e)||this.renderedIndentGuides.forEach(e,e=>o.removeClass(e,"active"))}),t.forEach(e=>{this.activeIndentNodes.has(e)||this.renderedIndentGuides.forEach(e,e=>o.addClass(e,"active"))}),this.activeIndentNodes=t}dispose(){this.renderedNodes.clear(),this.renderedElements.clear(),this.indentGuidesDisposable.dispose(),i.dispose(this.disposables)}}x.DefaultIndent=8;class D{constructor(e,t,n){this.tree=e,this.keyboardNavigationLabelProvider=t,this._filter=n, +this._totalCount=0,this._matchCount=0,this._pattern="",this._lowercasePattern="",this.disposables=new i.DisposableStore,e.onWillRefilter(this.reset,this,this.disposables)}get totalCount(){return this._totalCount}get matchCount(){return this._matchCount}set pattern(e){this._pattern=e,this._lowercasePattern=e.toLowerCase()}filter(e,t){if(this._filter){const i=this._filter.filter(e,t);if(this.tree.options.simpleKeyboardNavigation)return i;let n;if(0===(n="boolean"==typeof i?i?1:0:g.isFilterResult(i)?g.getVisibleState(i.visibility):i))return!1}if(this._totalCount++,this.tree.options.simpleKeyboardNavigation||!this._pattern)return this._matchCount++,{data:u.FuzzyScore.Default,visibility:!0};const i=this.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(e),n=i&&i.toString();if(void 0===n)return{data:u.FuzzyScore.Default,visibility:!0};const o=u.fuzzyScore(this._pattern,this._lowercasePattern,0,n,n.toLowerCase(),0,!0);return o?(this._matchCount++,{data:o,visibility:!0}):this.tree.options.filterOnType?2:{ +data:u.FuzzyScore.Default,visibility:!0}}reset(){this._totalCount=0,this._matchCount=0}dispose(){i.dispose(this.disposables)}}class k{constructor(e,t,n,r,a){this.tree=e,this.view=n,this.filter=r,this.keyboardNavigationDelegate=a,this._enabled=!1,this._pattern="",this._empty=!1,this._onDidChangeEmptyState=new s.Emitter,this.positionClassName="ne",this.automaticKeyboardNavigation=!0,this.triggered=!1,this._onDidChangePattern=new s.Emitter,this.enabledDisposables=new i.DisposableStore,this.disposables=new i.DisposableStore,this.domNode=o.$(`.monaco-list-type-filter.${this.positionClassName}`),this.domNode.draggable=!0,h.domEvent(this.domNode,"dragstart")(this.onDragStart,this,this.disposables),this.messageDomNode=o.append(n.getHTMLElement(),o.$(".monaco-list-type-filter-message")),this.labelDomNode=o.append(this.domNode,o.$("span.label"));const l=o.append(this.domNode,o.$(".controls"));this._filterOnType=!!e.options.filterOnType,this.filterOnTypeDomNode=o.append(l,o.$("input.filter")), +this.filterOnTypeDomNode.type="checkbox",this.filterOnTypeDomNode.checked=this._filterOnType,this.filterOnTypeDomNode.tabIndex=-1,this.updateFilterOnTypeTitleAndIcon(),h.domEvent(this.filterOnTypeDomNode,"input")(this.onDidChangeFilterOnType,this,this.disposables),this.clearDomNode=o.append(l,o.$("button.clear"+C.treeFilterClearIcon.cssSelector)),this.clearDomNode.tabIndex=-1,this.clearDomNode.title=p.localize(0,null),this.keyboardNavigationEventFilter=e.options.keyboardNavigationEventFilter,t.onDidSplice(this.onDidSpliceModel,this,this.disposables),this.updateOptions(e.options)}get enabled(){return this._enabled}get pattern(){return this._pattern}get filterOnType(){return this._filterOnType}updateOptions(e){e.simpleKeyboardNavigation?this.disable():this.enable(),void 0!==e.filterOnType&&(this._filterOnType=!!e.filterOnType,this.filterOnTypeDomNode.checked=this._filterOnType),void 0!==e.automaticKeyboardNavigation&&(this.automaticKeyboardNavigation=e.automaticKeyboardNavigation),this.tree.refilter(), +this.render(),this.automaticKeyboardNavigation||this.onEventOrInput("")}enable(){if(this._enabled)return;const e=s.Event.chain(h.domEvent(this.view.getHTMLElement(),"keydown")).filter(e=>!n.isInputElement(e.target)||e.target===this.filterOnTypeDomNode).filter(e=>"Dead"!==e.key&&!/^Media/.test(e.key)).map(e=>new r.StandardKeyboardEvent(e)).filter(this.keyboardNavigationEventFilter||(()=>!0)).filter(()=>this.automaticKeyboardNavigation||this.triggered).filter(e=>this.keyboardNavigationDelegate.mightProducePrintableCharacter(e)&&!(18===e.keyCode||16===e.keyCode||15===e.keyCode||17===e.keyCode)||(this.pattern.length>0||this.triggered)&&(9===e.keyCode||1===e.keyCode)&&!e.altKey&&!e.ctrlKey&&!e.metaKey||1===e.keyCode&&(f.isMacintosh?e.altKey&&!e.metaKey:e.ctrlKey)&&!e.shiftKey).forEach(e=>{e.stopPropagation(),e.preventDefault()}).event,t=h.domEvent(this.clearDomNode,"click");s.Event.chain(s.Event.any(e,t)).event(this.onEventOrInput,this,this.enabledDisposables),this.filter.pattern="",this.tree.refilter(), +this.render(),this._enabled=!0,this.triggered=!1}disable(){this._enabled&&(this.domNode.remove(),this.enabledDisposables.clear(),this.tree.refilter(),this.render(),this._enabled=!1,this.triggered=!1)}onEventOrInput(e){"string"==typeof e?this.onInput(e):e instanceof MouseEvent||9===e.keyCode||1===e.keyCode&&(f.isMacintosh?e.altKey:e.ctrlKey)?this.onInput(""):1===e.keyCode?this.onInput(0===this.pattern.length?"":this.pattern.substr(0,this.pattern.length-1)):this.onInput(this.pattern+e.browserEvent.key)}onInput(e){const t=this.view.getHTMLElement();e&&!this.domNode.parentElement?t.append(this.domNode):!e&&this.domNode.parentElement&&(this.domNode.remove(),this.tree.domFocus()),this._pattern=e,this._onDidChangePattern.fire(e),this.filter.pattern=e,this.tree.refilter(),e&&this.tree.focusNext(0,!0,void 0,e=>!u.FuzzyScore.isDefault(e.filterData));const i=this.tree.getFocus();if(i.length>0){const e=i[0];null===this.tree.getRelativeTop(e)&&this.tree.reveal(e,.5)}this.render(),e||(this.triggered=!1)}onDragStart(){ +const e=this.view.getHTMLElement(),{left:t}=o.getDomNodePagePosition(e),n=e.clientWidth,s=n/2,r=this.domNode.clientWidth,a=new i.DisposableStore;let d=this.positionClassName;const c=()=>{switch(d){case"nw":this.domNode.style.top="4px",this.domNode.style.left="4px";break;case"ne":this.domNode.style.top="4px",this.domNode.style.left=`${n-r-6}px`}};c(),o.removeClass(this.domNode,d),o.addClass(this.domNode,"dragging"),a.add(i.toDisposable(()=>o.removeClass(this.domNode,"dragging"))),h.domEvent(document,"dragover")(e=>{e.preventDefault();const i=e.screenX-t;e.dataTransfer&&(e.dataTransfer.dropEffect="none"),d=i{this.positionClassName=d,this.domNode.className=`monaco-list-type-filter ${this.positionClassName}`,this.domNode.style.top="",this.domNode.style.left="",i.dispose(a)},null,a),l.StaticDND.CurrentDragAndDropData=new l.DragAndDropData("vscode-ui"),a.add(i.toDisposable(()=>l.StaticDND.CurrentDragAndDropData=void 0))}onDidSpliceModel(){ +this._enabled&&0!==this.pattern.length&&(this.tree.refilter(),this.render())}onDidChangeFilterOnType(){this.tree.updateOptions({filterOnType:this.filterOnTypeDomNode.checked}),this.tree.refilter(),this.tree.domFocus(),this.render(),this.updateFilterOnTypeTitleAndIcon()}updateFilterOnTypeTitleAndIcon(){this.filterOnType?(o.removeClasses(this.filterOnTypeDomNode,C.treeFilterOnTypeOffIcon.classNames),o.addClasses(this.filterOnTypeDomNode,C.treeFilterOnTypeOnIcon.classNames),this.filterOnTypeDomNode.title=p.localize(1,null)):(o.removeClasses(this.filterOnTypeDomNode,C.treeFilterOnTypeOnIcon.classNames),o.addClasses(this.filterOnTypeDomNode,C.treeFilterOnTypeOffIcon.classNames),this.filterOnTypeDomNode.title=p.localize(2,null))}render(){const e=this.filter.totalCount>0&&0===this.filter.matchCount;this.pattern&&this.tree.options.filterOnType&&e?(this.messageDomNode.textContent=p.localize(3,null),this._empty=!0):(this.messageDomNode.innerText="",this._empty=!1),o.toggleClass(this.domNode,"no-matches",e), +this.domNode.title=p.localize(4,null,this.filter.matchCount,this.filter.totalCount),this.labelDomNode.textContent=this.pattern.length>16?"…"+this.pattern.substr(this.pattern.length-16):this.pattern,this._onDidChangeEmptyState.fire(this._empty)}shouldAllowFocus(e){return!(this.enabled&&this.pattern&&!this.filterOnType)||(this.filter.totalCount>0&&this.filter.matchCount<=1||!u.FuzzyScore.isDefault(e.filterData))}dispose(){this._enabled&&(this.domNode.remove(),this.enabledDisposables.dispose(),this._enabled=!1,this.triggered=!1),this._onDidChangePattern.dispose(),i.dispose(this.disposables)}}function N(e){let t=a.TreeMouseEventTarget.Unknown;return o.hasParentWithClass(e.browserEvent.target,"monaco-tl-twistie","monaco-tl-row")?t=a.TreeMouseEventTarget.Twistie:o.hasParentWithClass(e.browserEvent.target,"monaco-tl-contents","monaco-tl-row")&&(t=a.TreeMouseEventTarget.Element),{browserEvent:e.browserEvent,element:e.element?e.element.element:null,target:t}}function I(e,t){t(e),e.children.forEach(e=>I(e,t))}class M{ +constructor(e){this.identityProvider=e,this.nodes=[],this._onDidChange=new s.Emitter,this.onDidChange=this._onDidChange.event}get nodeSet(){return this._nodeSet||(this._nodeSet=this.createNodeSet()),this._nodeSet}set(e,t){d.equals(this.nodes,e)||this._set(e,!1,t)}_set(e,t,i){if(this.nodes=[...e],this.elements=void 0,this._nodeSet=void 0,!t){const e=this;this._onDidChange.fire({get elements(){return e.get()},browserEvent:i})}}get(){return this.elements||(this.elements=this.nodes.map(e=>e.element)),[...this.elements]}getNodes(){return this.nodes}has(e){return this.nodeSet.has(e)}onDidModelSplice({insertedNodes:e,deletedNodes:t}){if(!this.identityProvider){const e=this.createNodeSet(),i=t=>e.delete(t);return t.forEach(e=>I(e,i)),void this.set([...e.values()])}const i=new Set,n=e=>i.add(this.identityProvider.getId(e.element).toString());t.forEach(e=>I(e,n));const o=new Map,s=e=>o.set(this.identityProvider.getId(e.element).toString(),e);e.forEach(e=>I(e,s));const r=[];for(const e of this.nodes){ +const t=this.identityProvider.getId(e.element).toString();if(i.has(t)){const e=o.get(t);e&&r.push(e)}else r.push(e)}this._set(r,!0)}createNodeSet(){const e=new Set;for(const t of this.nodes)e.add(t);return e}}class R extends n.MouseController{constructor(e,t){super(e),this.tree=t}onViewPointer(e){if(n.isInputElement(e.browserEvent.target)||n.isMonacoEditor(e.browserEvent.target))return;const t=e.element;if(!t)return super.onViewPointer(e);if(this.isSelectionRangeChangeEvent(e)||this.isSelectionSingleChangeEvent(e))return super.onViewPointer(e);const i=e.browserEvent.target,s=o.hasClass(i,"monaco-tl-twistie")||o.hasClass(i,"monaco-icon-label")&&o.hasClass(i,"folder-icon")&&e.browserEvent.offsetX<16;let r=!1;if((r="function"==typeof this.tree.expandOnlyOnTwistieClick?this.tree.expandOnlyOnTwistieClick(t.element):!!this.tree.expandOnlyOnTwistieClick)&&!s)return super.onViewPointer(e);if(this.tree.expandOnlyOnDoubleClick&&2!==e.browserEvent.detail&&!s)return super.onViewPointer(e);if(t.collapsible){ +const i=this.tree.model,n=i.getNodeLocation(t),o=e.browserEvent.altKey;if(i.setCollapsed(n,void 0,o),r&&s)return}super.onViewPointer(e)}onDoubleClick(e){o.hasClass(e.browserEvent.target,"monaco-tl-twistie")||super.onDoubleClick(e)}}class T extends n.List{constructor(e,t,i,n,o,s,r){super(e,t,i,n,r),this.focusTrait=o,this.selectionTrait=s}createMouseController(e){return new R(this,e.tree)}splice(e,t,i=[]){if(super.splice(e,t,i),0===i.length)return;const n=[],o=[];i.forEach((t,i)=>{this.focusTrait.has(t)&&n.push(e+i),this.selectionTrait.has(t)&&o.push(e+i)}),n.length>0&&super.setFocus(d.distinctES6([...super.getFocus(),...n])),o.length>0&&super.setSelection(d.distinctES6([...super.getSelection(),...o]))}setFocus(e,t,i=!1){super.setFocus(e,t),i||this.focusTrait.set(e.map(e=>this.element(e)),t)}setSelection(e,t,i=!1){super.setSelection(e,t),i||this.selectionTrait.set(e.map(e=>this.element(e)),t)}}t.AbstractTree=class{constructor(e,t,a,l,d={}){this._options=d,this.eventBufferer=new s.EventBufferer, +this.disposables=new i.DisposableStore,this._onWillRefilter=new s.Emitter,this.onWillRefilter=this._onWillRefilter.event,this._onDidUpdateOptions=new s.Emitter;const c=new y(a),h=new s.Relay,u=new s.Relay,g=new L(u.event);this.renderers=l.map(e=>new x(e,()=>this.model,h.event,g,d));for(let e of this.renderers)this.disposables.add(e);let p;var m,f;d.keyboardNavigationLabelProvider&&(p=new D(this,d.keyboardNavigationLabelProvider,d.filter),d=Object.assign(Object.assign({},d),{filter:p}),this.disposables.add(p)),this.focus=new M(d.identityProvider),this.selection=new M(d.identityProvider),this.view=new T(e,t,c,this.renderers,this.focus,this.selection,Object.assign(Object.assign({},(m=()=>this.model,(f=d)&&Object.assign(Object.assign({},f),{identityProvider:f.identityProvider&&{getId:e=>f.identityProvider.getId(e.element)},dnd:f.dnd&&new w(m,f.dnd),multipleSelectionController:f.multipleSelectionController&&{ +isSelectionSingleChangeEvent:e=>f.multipleSelectionController.isSelectionSingleChangeEvent(Object.assign(Object.assign({},e),{element:e.element})),isSelectionRangeChangeEvent:e=>f.multipleSelectionController.isSelectionRangeChangeEvent(Object.assign(Object.assign({},e),{element:e.element}))},accessibilityProvider:f.accessibilityProvider&&Object.assign(Object.assign({},f.accessibilityProvider),{getSetSize(e){const t=m(),i=t.getNodeLocation(e),n=t.getParentNodeLocation(i);return t.getNode(n).visibleChildrenCount},getPosInSet:e=>e.visibleChildIndex+1,isChecked:f.accessibilityProvider&&f.accessibilityProvider.isChecked?e=>f.accessibilityProvider.isChecked(e.element):void 0,getRole:f.accessibilityProvider&&f.accessibilityProvider.getRole?e=>f.accessibilityProvider.getRole(e.element):()=>"treeitem",getAriaLabel:e=>f.accessibilityProvider.getAriaLabel(e.element),getWidgetAriaLabel:()=>f.accessibilityProvider.getWidgetAriaLabel(), +getWidgetRole:f.accessibilityProvider&&f.accessibilityProvider.getWidgetRole?()=>f.accessibilityProvider.getWidgetRole():()=>"tree",getAriaLevel:e=>e.depth,getActiveDescendantId:f.accessibilityProvider.getActiveDescendantId&&(e=>f.accessibilityProvider.getActiveDescendantId(e.element))}),keyboardNavigationLabelProvider:f.keyboardNavigationLabelProvider&&Object.assign(Object.assign({},f.keyboardNavigationLabelProvider),{getKeyboardNavigationLabel:e=>f.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(e.element)}),enableKeyboardNavigation:f.simpleKeyboardNavigation}))),{tree:this})),this.model=this.createModel(e,this.view,d),h.input=this.model.onDidChangeCollapseState;const _=s.Event.forEach(this.model.onDidSplice,e=>{this.eventBufferer.bufferEvents(()=>{this.focus.onDidModelSplice(e),this.selection.onDidModelSplice(e)})});if(_(()=>null,null,this.disposables),u.input=s.Event.chain(s.Event.any(_,this.focus.onDidChange,this.selection.onDidChange)).debounce(()=>null,0).map(()=>{const e=new Set +;for(const t of this.focus.getNodes())e.add(t);for(const t of this.selection.getNodes())e.add(t);return[...e.values()]}).event,!1!==d.keyboardSupport){const e=s.Event.chain(this.view.onKeyDown).filter(e=>!n.isInputElement(e.target)).map(e=>new r.StandardKeyboardEvent(e));e.filter(e=>15===e.keyCode).on(this.onLeftArrow,this,this.disposables),e.filter(e=>17===e.keyCode).on(this.onRightArrow,this,this.disposables),e.filter(e=>10===e.keyCode).on(this.onSpace,this,this.disposables)}if(d.keyboardNavigationLabelProvider){const e=d.keyboardNavigationDelegate||n.DefaultKeyboardNavigationDelegate;this.typeFilterController=new k(this,this.model,this.view,p,e),this.focusNavigationFilter=e=>this.typeFilterController.shouldAllowFocus(e),this.disposables.add(this.typeFilterController)}this.styleElement=o.createStyleSheet(this.view.getHTMLElement()),o.toggleClass(this.getHTMLElement(),"always",this._options.renderIndentGuides===E.Always)}get onDidChangeFocus(){return this.eventBufferer.wrapEvent(this.focus.onDidChange)} +get onDidChangeSelection(){return this.eventBufferer.wrapEvent(this.selection.onDidChange)}get onMouseDblClick(){return s.Event.map(this.view.onMouseDblClick,N)}get onPointer(){return s.Event.map(this.view.onPointer,N)}get onDidFocus(){return this.view.onDidFocus}get onDidChangeCollapseState(){return this.model.onDidChangeCollapseState}get expandOnlyOnDoubleClick(){var e;return null!==(e=this._options.expandOnlyOnDoubleClick)&&void 0!==e&&e}get expandOnlyOnTwistieClick(){return void 0!==this._options.expandOnlyOnTwistieClick&&this._options.expandOnlyOnTwistieClick}get onDidDispose(){return this.view.onDidDispose}updateOptions(e={}){this._options=Object.assign(Object.assign({},this._options),e);for(const t of this.renderers)t.updateOptions(e);this.view.updateOptions({enableKeyboardNavigation:this._options.simpleKeyboardNavigation,automaticKeyboardNavigation:this._options.automaticKeyboardNavigation,smoothScrolling:this._options.smoothScrolling,horizontalScrolling:this._options.horizontalScrolling}), +this.typeFilterController&&this.typeFilterController.updateOptions(this._options),this._onDidUpdateOptions.fire(this._options),o.toggleClass(this.getHTMLElement(),"always",this._options.renderIndentGuides===E.Always)}get options(){return this._options}getHTMLElement(){return this.view.getHTMLElement()}get scrollTop(){return this.view.scrollTop}set scrollTop(e){this.view.scrollTop=e}domFocus(){this.view.domFocus()}layout(e,t){this.view.layout(e,t)}style(e){const t=`.${this.view.domId}`,i=[];e.treeIndentGuidesStroke&&(i.push(`.monaco-list${t}:hover .monaco-tl-indent > .indent-guide, .monaco-list${t}.always .monaco-tl-indent > .indent-guide { border-color: ${e.treeIndentGuidesStroke.transparent(.4)}; }`),i.push(`.monaco-list${t} .monaco-tl-indent > .indent-guide.active { border-color: ${e.treeIndentGuidesStroke}; }`));const n=i.join("\n");n!==this.styleElement.innerHTML&&(this.styleElement.innerHTML=n),this.view.style(e)}collapse(e,t=!1){return this.model.setCollapsed(e,!0,t)}expand(e,t=!1){ +return this.model.setCollapsed(e,!1,t)}isCollapsible(e){return this.model.isCollapsible(e)}setCollapsible(e,t){return this.model.setCollapsible(e,t)}isCollapsed(e){return this.model.isCollapsed(e)}refilter(){this._onWillRefilter.fire(void 0),this.model.refilter()}setSelection(e,t){const i=e.map(e=>this.model.getNode(e));this.selection.set(i,t);const n=e.map(e=>this.model.getListIndex(e)).filter(e=>e>-1);this.view.setSelection(n,t,!0)}getSelection(){return this.selection.get()}setFocus(e,t){const i=e.map(e=>this.model.getNode(e));this.focus.set(i,t);const n=e.map(e=>this.model.getListIndex(e)).filter(e=>e>-1);this.view.setFocus(n,t,!0)}focusNext(e=1,t=!1,i,n=this.focusNavigationFilter){this.view.focusNext(e,t,i,n)}getFocus(){return this.focus.get()}reveal(e,t){this.model.expandTo(e);const i=this.model.getListIndex(e);-1!==i&&this.view.reveal(i,t)}getRelativeTop(e){const t=this.model.getListIndex(e);return-1===t?null:this.view.getRelativeTop(t)}onLeftArrow(e){e.preventDefault(),e.stopPropagation() +;const t=this.view.getFocusedElements();if(0===t.length)return;const i=t[0],n=this.model.getNodeLocation(i);if(!this.model.setCollapsed(n,!0)){const e=this.model.getParentNodeLocation(n);if(!e)return;const t=this.model.getListIndex(e);this.view.reveal(t),this.view.setFocus([t])}}onRightArrow(e){e.preventDefault(),e.stopPropagation();const t=this.view.getFocusedElements();if(0===t.length)return;const i=t[0],n=this.model.getNodeLocation(i);if(!this.model.setCollapsed(n,!1)){if(!i.children.some(e=>e.visible))return;const[e]=this.view.getFocus(),t=e+1;this.view.reveal(t),this.view.setFocus([t])}}onSpace(e){e.preventDefault(),e.stopPropagation();const t=this.view.getFocusedElements();if(0===t.length)return;const i=t[0],n=this.model.getNodeLocation(i),o=e.browserEvent.altKey;this.model.setCollapsed(n,void 0,o)}dispose(){i.dispose(this.disposables),this.view.dispose()}}})),define(t[420],i([0,1,168,146]),(function(e,t,i,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DataTree=void 0 +;class o extends i.AbstractTree{constructor(e,t,i,n,o,s={}){super(e,t,i,n,s),this.user=e,this.dataSource=o,this.identityProvider=s.identityProvider}createModel(e,t,i){return new n.ObjectTreeModel(e,t,i)}}t.DataTree=o})),define(t[226],i([0,1,50,168,146,266,96]),(function(e,t,i,n,o,s,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CompressibleObjectTree=t.ObjectTree=void 0;class l extends n.AbstractTree{constructor(e,t,i,n,o={}){super(e,t,i,n,o)}get onDidChangeCollapseState(){return this.model.onDidChangeCollapseState}setChildren(e,t=i.Iterable.empty()){this.model.setChildren(e,t)}rerender(e){void 0!==e?this.model.rerender(e):this.view.rerender()}hasElement(e){return this.model.has(e)}createModel(e,t,i){return new o.ObjectTreeModel(e,t,i)}}t.ObjectTree=l;class d{constructor(e,t){this._compressedTreeNodeProvider=e,this.renderer=t,this.templateId=t.templateId,t.onDidChangeTwistieState&&(this.onDidChangeTwistieState=t.onDidChangeTwistieState)}get compressedTreeNodeProvider(){ +return this._compressedTreeNodeProvider()}renderTemplate(e){return{compressedTreeNode:void 0,data:this.renderer.renderTemplate(e)}}renderElement(e,t,i,n){const o=this.compressedTreeNodeProvider.getCompressedTreeNode(e.element);1===o.element.elements.length?(i.compressedTreeNode=void 0,this.renderer.renderElement(e,t,i.data,n)):(i.compressedTreeNode=o,this.renderer.renderCompressedElements(o,t,i.data,n))}disposeElement(e,t,i,n){i.compressedTreeNode?this.renderer.disposeCompressedElements&&this.renderer.disposeCompressedElements(i.compressedTreeNode,t,i.data,n):this.renderer.disposeElement&&this.renderer.disposeElement(e,t,i.data,n)}disposeTemplate(e){this.renderer.disposeTemplate(e.data)}renderTwistie(e,t){this.renderer.renderTwistie&&this.renderer.renderTwistie(e,t)}}a([r.memoize],d.prototype,"compressedTreeNodeProvider",null);t.CompressibleObjectTree=class extends l{constructor(e,t,i,n,o={}){const s=()=>this;super(e,t,i,n.map(e=>new d(s,e)),function(e,t){return t&&Object.assign(Object.assign({},t),{ +keyboardNavigationLabelProvider:t.keyboardNavigationLabelProvider&&{getKeyboardNavigationLabel(i){let n;try{n=e().getCompressedTreeNode(i)}catch(e){return t.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(i)}return 1===n.element.elements.length?t.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(i):t.keyboardNavigationLabelProvider.getCompressedNodeKeyboardNavigationLabel(n.element.elements)}}})}(s,o))}setChildren(e,t=i.Iterable.empty()){this.model.setChildren(e,t)}createModel(e,t,i){return new s.CompressibleObjectTreeModel(e,t,i)}updateOptions(e={}){super.updateOptions(e),void 0!==e.compressionEnabled&&this.model.setCompressionEnabled(e.compressionEnabled)}getCompressedTreeNode(e=null){return this.model.getCompressedTreeNode(e)}}})),define(t[421],i([0,1,168,226,95,2,4,15,50,154,12,7,145,192]),(function(e,t,i,n,o,s,a,l,d,c,h,u,g,p){"use strict";function m(e){return Object.assign(Object.assign({},e),{children:[],refreshPromise:void 0,stale:!0,slow:!1,collapsedByDefault:void 0})} +function f(e,t){return!!t.parent&&(t.parent===e||f(e,t.parent))}Object.defineProperty(t,"__esModule",{value:!0}),t.CompressibleAsyncDataTree=t.AsyncDataTree=void 0;class _{constructor(e){this.node=e}get element(){return this.node.element.element}get children(){return this.node.children.map(e=>new _(e))}get depth(){return this.node.depth}get visibleChildrenCount(){return this.node.visibleChildrenCount}get visibleChildIndex(){return this.node.visibleChildIndex}get collapsible(){return this.node.collapsible}get collapsed(){return this.node.collapsed}get visible(){return this.node.visible}get filterData(){return this.node.filterData}}class v{constructor(e,t,i){this.renderer=e,this.nodeMapper=t,this.onDidChangeTwistieState=i,this.renderedNodes=new Map,this.templateId=e.templateId}renderTemplate(e){return{templateData:this.renderer.renderTemplate(e)}}renderElement(e,t,i,n){this.renderer.renderElement(this.nodeMapper.map(e),t,i.templateData,n)}renderTwistie(e,t){ +return e.slow?u.addClasses(t,p.treeItemLoadingIcon.classNames):u.removeClasses(t,p.treeItemLoadingIcon.classNames),!1}disposeElement(e,t,i,n){this.renderer.disposeElement&&this.renderer.disposeElement(this.nodeMapper.map(e),t,i.templateData,n)}disposeTemplate(e){this.renderer.disposeTemplate(e.templateData)}dispose(){this.renderedNodes.clear()}}function C(e){return{browserEvent:e.browserEvent,elements:e.elements.map(e=>e.element)}}function b(e){return{browserEvent:e.browserEvent,element:e.element&&e.element.element,target:e.target}}class S extends c.ElementsDragAndDropData{constructor(e){super(e.elements.map(e=>e.element)),this.data=e}}function w(e){return e instanceof c.ElementsDragAndDropData?new S(e):e}class y{constructor(e){this.dnd=e}getDragURI(e){return this.dnd.getDragURI(e.element)}getDragLabel(e,t){if(this.dnd.getDragLabel)return this.dnd.getDragLabel(e.map(e=>e.element),t)}onDragStart(e,t){this.dnd.onDragStart&&this.dnd.onDragStart(w(e),t)}onDragOver(e,t,i,n,o=!0){ +return this.dnd.onDragOver(w(e),t&&t.element,i,n)}drop(e,t,i,n){this.dnd.drop(w(e),t&&t.element,i,n)}onDragEnd(e){this.dnd.onDragEnd&&this.dnd.onDragEnd(e)}}function E(e){return e&&Object.assign(Object.assign({},e),{collapseByDefault:!0,identityProvider:e.identityProvider&&{getId:t=>e.identityProvider.getId(t.element)},dnd:e.dnd&&new y(e.dnd),multipleSelectionController:e.multipleSelectionController&&{isSelectionSingleChangeEvent:t=>e.multipleSelectionController.isSelectionSingleChangeEvent(Object.assign(Object.assign({},t),{element:t.element})),isSelectionRangeChangeEvent:t=>e.multipleSelectionController.isSelectionRangeChangeEvent(Object.assign(Object.assign({},t),{element:t.element}))},accessibilityProvider:e.accessibilityProvider&&Object.assign(Object.assign({},e.accessibilityProvider),{getPosInSet:void 0,getSetSize:void 0,getRole:e.accessibilityProvider.getRole?t=>e.accessibilityProvider.getRole(t.element):()=>"treeitem",isChecked:e.accessibilityProvider.isChecked?t=>{var i +;return!!(null===(i=e.accessibilityProvider)||void 0===i?void 0:i.isChecked(t.element))}:void 0,getAriaLabel:t=>e.accessibilityProvider.getAriaLabel(t.element),getWidgetAriaLabel:()=>e.accessibilityProvider.getWidgetAriaLabel(),getWidgetRole:e.accessibilityProvider.getWidgetRole?()=>e.accessibilityProvider.getWidgetRole():()=>"tree",getAriaLevel:e.accessibilityProvider.getAriaLevel&&(t=>e.accessibilityProvider.getAriaLevel(t.element)),getActiveDescendantId:e.accessibilityProvider.getActiveDescendantId&&(t=>e.accessibilityProvider.getActiveDescendantId(t.element))}),filter:e.filter&&{filter:(t,i)=>e.filter.filter(t.element,i)},keyboardNavigationLabelProvider:e.keyboardNavigationLabelProvider&&Object.assign(Object.assign({},e.keyboardNavigationLabelProvider),{getKeyboardNavigationLabel:t=>e.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(t.element)}),sorter:void 0, +expandOnlyOnTwistieClick:void 0===e.expandOnlyOnTwistieClick?void 0:"function"!=typeof e.expandOnlyOnTwistieClick?e.expandOnlyOnTwistieClick:t=>e.expandOnlyOnTwistieClick(t.element),additionalScrollHeight:e.additionalScrollHeight})}function L(e,t){t(e),e.children.forEach(e=>L(e,t))}class x{constructor(e,t,i,n,r,l={}){this.user=e,this.dataSource=r,this.nodes=new Map,this.subTreeRefreshPromises=new Map,this.refreshPromises=new Map,this._onDidRender=new a.Emitter,this._onDidChangeNodeSlowState=new a.Emitter,this.nodeMapper=new o.WeakMapper(e=>new _(e)),this.disposables=new s.DisposableStore,this.identityProvider=l.identityProvider,this.autoExpandSingleChildren=void 0!==l.autoExpandSingleChildren&&l.autoExpandSingleChildren,this.sorter=l.sorter,this.collapseByDefault=l.collapseByDefault,this.tree=this.createTree(e,t,i,n,l),this.root=m({element:void 0,parent:null,hasChildren:!0}),this.identityProvider&&(this.root=Object.assign(Object.assign({},this.root),{id:null})),this.nodes.set(null,this.root), +this.tree.onDidChangeCollapseState(this._onDidChangeCollapseState,this,this.disposables)}get onDidChangeFocus(){return a.Event.map(this.tree.onDidChangeFocus,C)}get onDidChangeSelection(){return a.Event.map(this.tree.onDidChangeSelection,C)}get onMouseDblClick(){return a.Event.map(this.tree.onMouseDblClick,b)}get onPointer(){return a.Event.map(this.tree.onPointer,b)}get onDidFocus(){return this.tree.onDidFocus}get onDidDispose(){return this.tree.onDidDispose}createTree(e,t,o,s,r){const a=new i.ComposedTreeDelegate(o),l=s.map(e=>new v(e,this.nodeMapper,this._onDidChangeNodeSlowState.event)),d=E(r)||{};return new n.ObjectTree(e,t,a,l,d)}updateOptions(e={}){this.tree.updateOptions(e)}getHTMLElement(){return this.tree.getHTMLElement()}get scrollTop(){return this.tree.scrollTop}set scrollTop(e){this.tree.scrollTop=e}domFocus(){this.tree.domFocus()}layout(e,t){this.tree.layout(e,t)}style(e){this.tree.style(e)}getInput(){return this.root.element}setInput(e,t){return r(this,void 0,void 0,(function*(){ +this.refreshPromises.forEach(e=>e.cancel()),this.refreshPromises.clear(),this.root.element=e;const i=t&&{viewState:t,focus:[],selection:[]};yield this._updateChildren(e,!0,!1,i),i&&(this.tree.setFocus(i.focus),this.tree.setSelection(i.selection)),t&&"number"==typeof t.scrollTop&&(this.scrollTop=t.scrollTop)}))}_updateChildren(e=this.root.element,t=!0,i=!1,n){return r(this,void 0,void 0,(function*(){if(void 0===this.root.element)throw new o.TreeError(this.user,"Tree input not set");this.root.refreshPromise&&(yield this.root.refreshPromise,yield a.Event.toPromise(this._onDidRender.event));const s=this.getDataNode(e);if(yield this.refreshAndRenderNode(s,t,n),i)try{this.tree.rerender(s)}catch(e){}}))}rerender(e){if(void 0===e||e===this.root.element)return void this.tree.rerender();const t=this.getDataNode(e);this.tree.rerender(t)}collapse(e,t=!1){const i=this.getDataNode(e);return this.tree.collapse(i===this.root?null:i,t)}expand(e,t=!1){return r(this,void 0,void 0,(function*(){ +if(void 0===this.root.element)throw new o.TreeError(this.user,"Tree input not set");this.root.refreshPromise&&(yield this.root.refreshPromise,yield a.Event.toPromise(this._onDidRender.event));const i=this.getDataNode(e);if(this.tree.hasElement(i)&&!this.tree.isCollapsible(i))return!1;if(i.refreshPromise&&(yield this.root.refreshPromise,yield a.Event.toPromise(this._onDidRender.event)),i!==this.root&&!i.refreshPromise&&!this.tree.isCollapsed(i))return!1;const n=this.tree.expand(i===this.root?null:i,t);return i.refreshPromise&&(yield this.root.refreshPromise,yield a.Event.toPromise(this._onDidRender.event)),n}))}setSelection(e,t){const i=e.map(e=>this.getDataNode(e));this.tree.setSelection(i,t)}getSelection(){return this.tree.getSelection().map(e=>e.element)}setFocus(e,t){const i=e.map(e=>this.getDataNode(e));this.tree.setFocus(i,t)}getFocus(){return this.tree.getFocus().map(e=>e.element)}reveal(e,t){this.tree.reveal(this.getDataNode(e),t)}getDataNode(e){const t=this.nodes.get(e===this.root.element?null:e) +;if(!t)throw new o.TreeError(this.user,`Data tree node not found: ${e}`);return t}refreshAndRenderNode(e,t,i){return r(this,void 0,void 0,(function*(){yield this.refreshNode(e,t,i),this.render(e,i)}))}refreshNode(e,t,i){return r(this,void 0,void 0,(function*(){let n;return this.subTreeRefreshPromises.forEach((o,s)=>{!n&&function(e,t){return e===t||f(e,t)||f(t,e)}(s,e)&&(n=o.then(()=>this.refreshNode(e,t,i)))}),n||this.doRefreshSubTree(e,t,i)}))}doRefreshSubTree(e,t,i){return r(this,void 0,void 0,(function*(){let n;e.refreshPromise=new Promise(e=>n=e),this.subTreeRefreshPromises.set(e,e.refreshPromise),e.refreshPromise.finally(()=>{e.refreshPromise=void 0,this.subTreeRefreshPromises.delete(e)});try{const o=yield this.doRefreshNode(e,t,i);e.stale=!1,yield Promise.all(o.map(e=>this.doRefreshSubTree(e,t,i)))}finally{n()}}))}doRefreshNode(e,t,i){return r(this,void 0,void 0,(function*(){let n;if(e.hasChildren=!!this.dataSource.hasChildren(e.element),e.hasChildren){const t=l.timeout(800);t.then(()=>{e.slow=!0, +this._onDidChangeNodeSlowState.fire(e)},e=>null),n=this.doGetChildren(e).finally(()=>t.cancel())}else n=Promise.resolve(d.Iterable.empty());try{const o=yield n;return this.setChildren(e,o,t,i)}catch(t){if(e!==this.root&&this.tree.collapse(e===this.root?null:e),h.isPromiseCanceledError(t))return[];throw t}finally{e.slow&&(e.slow=!1,this._onDidChangeNodeSlowState.fire(e))}}))}doGetChildren(e){let t=this.refreshPromises.get(e);return t||(t=l.createCancelablePromise(()=>r(this,void 0,void 0,(function*(){const t=yield this.dataSource.getChildren(e.element);return this.processChildren(t)}))),this.refreshPromises.set(e,t),t.finally(()=>{this.refreshPromises.delete(e)}))}_onDidChangeCollapseState({node:e,deep:t}){null!==e.element&&!e.collapsed&&e.element.stale&&(t?this.collapse(e.element.element):this.refreshAndRenderNode(e.element,!1).catch(h.onUnexpectedError))}setChildren(e,t,i,n){const o=[...t];if(0===e.children.length&&0===o.length)return[];const s=new Map,r=new Map +;for(const t of e.children)if(s.set(t.element,t),this.identityProvider){const e=this.tree.isCollapsed(t);r.set(t.id,{node:t,collapsed:e})}const a=[],l=o.map(t=>{const o=!!this.dataSource.hasChildren(t);if(!this.identityProvider){const i=m({element:t,parent:e,hasChildren:o});return o&&this.collapseByDefault&&!this.collapseByDefault(t)&&(i.collapsedByDefault=!1,a.push(i)),i}const l=this.identityProvider.getId(t).toString(),d=r.get(l);if(d){const e=d.node;return s.delete(e.element),this.nodes.delete(e.element),this.nodes.set(t,e),e.element=t,e.hasChildren=o,i?d.collapsed?(e.children.forEach(e=>L(e,e=>this.nodes.delete(e.element))),e.children.splice(0,e.children.length),e.stale=!0):a.push(e):o&&this.collapseByDefault&&!this.collapseByDefault(t)&&(e.collapsedByDefault=!1,a.push(e)),e}const c=m({element:t,parent:e,id:l,hasChildren:o});return n&&n.viewState.focus&&n.viewState.focus.indexOf(l)>-1&&n.focus.push(c),n&&n.viewState.selection&&n.viewState.selection.indexOf(l)>-1&&n.selection.push(c), +n&&n.viewState.expanded&&n.viewState.expanded.indexOf(l)>-1?a.push(c):o&&this.collapseByDefault&&!this.collapseByDefault(t)&&(c.collapsedByDefault=!1,a.push(c)),c});for(const e of s.values())L(e,e=>this.nodes.delete(e.element));for(const e of l)this.nodes.set(e.element,e);return e.children.splice(0,e.children.length,...l),e!==this.root&&this.autoExpandSingleChildren&&1===l.length&&0===a.length&&(l[0].collapsedByDefault=!1,a.push(l[0])),a}render(e,t){const i=e.children.map(e=>this.asTreeElement(e,t));this.tree.setChildren(e===this.root?null:e,i),e!==this.root&&this.tree.setCollapsible(e,e.hasChildren),this._onDidRender.fire()}asTreeElement(e,t){if(e.stale)return{element:e,collapsible:e.hasChildren,collapsed:!0};let i;return i=!(t&&t.viewState.expanded&&e.id&&t.viewState.expanded.indexOf(e.id)>-1)&&e.collapsedByDefault,e.collapsedByDefault=void 0,{element:e,children:e.hasChildren?d.Iterable.map(e.children,e=>this.asTreeElement(e,t)):[],collapsible:e.hasChildren,collapsed:i}}processChildren(e){ +return this.sorter&&(e=[...e].sort(this.sorter.compare.bind(this.sorter))),e}dispose(){this.disposables.dispose()}}t.AsyncDataTree=x;class D{constructor(e){this.node=e}get element(){return{elements:this.node.element.elements.map(e=>e.element),incompressible:this.node.element.incompressible}}get children(){return this.node.children.map(e=>new D(e))}get depth(){return this.node.depth}get visibleChildrenCount(){return this.node.visibleChildrenCount}get visibleChildIndex(){return this.node.visibleChildIndex}get collapsible(){return this.node.collapsible}get collapsed(){return this.node.collapsed}get visible(){return this.node.visible}get filterData(){return this.node.filterData}}class k{constructor(e,t,i,n){this.renderer=e,this.nodeMapper=t,this.compressibleNodeMapperProvider=i,this.onDidChangeTwistieState=n,this.renderedNodes=new Map,this.disposables=[],this.templateId=e.templateId}renderTemplate(e){return{templateData:this.renderer.renderTemplate(e)}}renderElement(e,t,i,n){ +this.renderer.renderElement(this.nodeMapper.map(e),t,i.templateData,n)}renderCompressedElements(e,t,i,n){this.renderer.renderCompressedElements(this.compressibleNodeMapperProvider().map(e),t,i.templateData,n)}renderTwistie(e,t){return e.slow?u.addClasses(t,p.treeItemLoadingIcon.classNames):u.removeClasses(t,p.treeItemLoadingIcon.classNames),!1}disposeElement(e,t,i,n){this.renderer.disposeElement&&this.renderer.disposeElement(this.nodeMapper.map(e),t,i.templateData,n)}disposeCompressedElements(e,t,i,n){this.renderer.disposeCompressedElements&&this.renderer.disposeCompressedElements(this.compressibleNodeMapperProvider().map(e),t,i.templateData,n)}disposeTemplate(e){this.renderer.disposeTemplate(e.templateData)}dispose(){this.renderedNodes.clear(),this.disposables=s.dispose(this.disposables)}}t.CompressibleAsyncDataTree=class extends x{constructor(e,t,i,n,s,r,a={}){super(e,t,i,s,r,a),this.compressionDelegate=n,this.compressibleNodeMapper=new o.WeakMapper(e=>new D(e)),this.filter=a.filter}createTree(e,t,o,s,r){ +const a=new i.ComposedTreeDelegate(o),l=s.map(e=>new k(e,this.nodeMapper,()=>this.compressibleNodeMapper,this._onDidChangeNodeSlowState.event)),d=function(e){const t=e&&E(e);return t&&Object.assign(Object.assign({},t),{keyboardNavigationLabelProvider:t.keyboardNavigationLabelProvider&&Object.assign(Object.assign({},t.keyboardNavigationLabelProvider),{getCompressedNodeKeyboardNavigationLabel:t=>e.keyboardNavigationLabelProvider.getCompressedNodeKeyboardNavigationLabel(t.map(e=>e.element))})})}(r)||{};return new n.CompressibleObjectTree(e,t,a,l,d)}asTreeElement(e,t){return Object.assign({incompressible:this.compressionDelegate.isIncompressible(e.element)},super.asTreeElement(e,t))}updateOptions(e={}){this.tree.updateOptions(e)}render(e,t){if(!this.identityProvider)return super.render(e,t);const i=e=>this.identityProvider.getId(e).toString(),n=e=>{const t=new Set;for(const n of e){const e=this.tree.getCompressedTreeNode(n===this.root?null:n);if(e.element)for(const n of e.element.elements)t.add(i(n.element))} +return t},o=n(this.tree.getSelection()),s=n(this.tree.getFocus());super.render(e,t);const r=this.getSelection();let a=!1;const l=this.getFocus();let d=!1;const c=e=>{const t=e.element;if(t)for(let e=0;e{const t=function(e){return"boolean"==typeof e?e?1:0:g.isFilterResult(e)?g.getVisibleState(e.visibility):g.getVisibleState(e)}(this.filter.filter(e,1));if(2===t)throw new Error("Recursive tree visibility not supported in async data compressed trees");return 1===t})),super.processChildren(e)}}})),define(t[422],i([5,6]),(function(e,t){return e.create("vs/base/common/errorMessage",t)})),define(t[423],i([0,1,422,23,19]),(function(e,t,i,n,o){ +"use strict";function s(e,t){return t&&(e.stack||e.stacktrace)?i.localize(0,null,a(e),r(e.stack)||r(e.stacktrace)):a(e)}function r(e){return Array.isArray(e)?e.join("\n"):e}function a(e){return"string"==typeof e.code&&"number"==typeof e.errno&&"string"==typeof e.syscall?i.localize(1,null,e.message):e.message||i.localize(2,null)}Object.defineProperty(t,"__esModule",{value:!0}),t.toErrorMessage=void 0,t.toErrorMessage=function e(t=null,r=!1){if(!t)return i.localize(3,null);if(Array.isArray(t)){const n=o.coalesce(t),s=e(n[0],r);return n.length>1?i.localize(4,null,s,n.length):s}if(n.isString(t))return t;if(t.detail){const e=t.detail;if(e.error)return s(e.error,r);if(e.exception)return s(e.exception,r)}return t.stack?s(t,r):t.message?t.message:i.localize(5,null)}})),define(t[424],i([5,6]),(function(e,t){return e.create("vs/base/common/keybindingLabels",t)})),define(t[227],i([0,1,424]),(function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}), +t.AriaLabelProvider=t.UILabelProvider=t.ModifierLabelProvider=void 0;class n{constructor(e,t,i=t){this.modifierLabels=[null],this.modifierLabels[2]=e,this.modifierLabels[1]=t,this.modifierLabels[3]=i}toLabel(e,t,i){if(0===t.length)return null;const n=[];for(let s=0,r=t.length;s{t.checkbox.offsetParent||e.preventDefault()})),t.checkbox=i.append(n,S("input.quick-input-list-checkbox")),t.checkbox.type="checkbox",t.toDisposeTemplate.push(i.addStandardDisposableListener(t.checkbox,i.EventType.CHANGE,e=>{t.element.checked=t.checkbox.checked}));const o=i.append(n,S(".quick-input-list-rows")),s=i.append(o,S(".quick-input-list-row")),r=i.append(o,S(".quick-input-list-row"));t.label=new c.IconLabel(s,{supportHighlights:!0,supportDescriptionHighlights:!0,supportCodicons:!0});const a=i.append(s,S(".quick-input-list-entry-keybinding"));t.keybinding=new C.KeybindingLabel(a,p.OS);const l=i.append(r,S(".quick-input-list-label-meta"));return t.detail=new h.HighlightedLabel(l,!0),t.separator=i.append(t.entry,S(".quick-input-list-separator")), +t.actionBar=new m.ActionBar(t.entry),t.actionBar.domNode.classList.add("quick-input-list-entry-action-bar"),t.toDisposeTemplate.push(t.actionBar),t}renderElement(e,t,o){o.toDisposeElement=n.dispose(o.toDisposeElement),o.element=e,o.checkbox.checked=e.checked,o.toDisposeElement.push(e.onChecked(e=>o.checkbox.checked=e));const{labelHighlights:s,descriptionHighlights:r,detailHighlights:a}=e,l=Object.create(null);l.matches=s||[],l.descriptionTitle=e.saneDescription,l.descriptionMatches=r||[],l.extraClasses=e.item.iconClasses,l.italic=e.item.italic,l.strikethrough=e.item.strikethrough,o.label.setLabel(e.saneLabel,e.saneDescription,l),o.keybinding.set(e.item.keybinding),o.detail.set(e.saneDetail,a),e.separator&&e.separator.label?(o.separator.textContent=e.separator.label,o.separator.style.display=""):o.separator.style.display="none",e.separator?i.addClass(o.entry,"quick-input-list-separator-border"):i.removeClass(o.entry,"quick-input-list-separator-border"),o.actionBar.clear();const d=e.item.buttons +;d&&d.length?(o.actionBar.push(d.map((t,i)=>{let n=t.iconClass||(t.iconPath?_.getIconClass(t.iconPath):void 0);t.alwaysVisible&&(n=n?`${n} always-visible`:"always-visible");const o=new f.Action(`id-${i}`,"",n,!0,()=>(e.fireButtonTriggered({button:t,item:e.item}),Promise.resolve()));return o.tooltip=t.tooltip||"",o}),{icon:!0,label:!1}),i.addClass(o.entry,"has-actions")):i.removeClass(o.entry,"has-actions")}disposeElement(e,t,i){i.toDisposeElement=n.dispose(i.toDisposeElement)}disposeTemplate(e){e.toDisposeElement=n.dispose(e.toDisposeElement),e.toDisposeTemplate=n.dispose(e.toDisposeTemplate)}}y.ID="listelement";class E{getHeight(e){return e.saneDetail?44:22}getTemplateId(e){return y.ID}}var L;!function(e){e[e.First=1]="First",e[e.Second=2]="Second",e[e.Last=3]="Last",e[e.Next=4]="Next",e[e.Previous=5]="Previous",e[e.NextPage=6]="NextPage",e[e.PreviousPage=7]="PreviousPage"}(L=t.QuickInputListFocus||(t.QuickInputListFocus={}));class x{constructor(e,t,n){this.parent=e,this.inputElements=[],this.elements=[], +this.elementsToIndexes=new Map,this.matchOnDescription=!1,this.matchOnDetail=!1,this.matchOnLabel=!0,this.sortByLabel=!0,this._onChangedAllVisibleChecked=new r.Emitter,this.onChangedAllVisibleChecked=this._onChangedAllVisibleChecked.event,this._onChangedCheckedCount=new r.Emitter,this.onChangedCheckedCount=this._onChangedCheckedCount.event,this._onChangedVisibleCount=new r.Emitter,this.onChangedVisibleCount=this._onChangedVisibleCount.event,this._onChangedCheckedElements=new r.Emitter,this.onChangedCheckedElements=this._onChangedCheckedElements.event,this._onButtonTriggered=new r.Emitter,this.onButtonTriggered=this._onButtonTriggered.event,this._onKeyDown=new r.Emitter,this.onKeyDown=this._onKeyDown.event,this._onLeave=new r.Emitter,this.onLeave=this._onLeave.event,this._fireCheckedEvents=!0,this.elementDisposables=[],this.disposables=[],this.id=t,this.container=i.append(this.parent,S(".quick-input-list"));const o=new E,s=new D;this.list=n.createList("QuickInput",this.container,o,[new y],{identityProvider:{ +getId:e=>e.saneLabel},setRowLineHeight:!1,multipleSelectionSupport:!1,horizontalScrolling:!1,accessibilityProvider:s}),this.list.getHTMLElement().id=t,this.disposables.push(this.list),this.disposables.push(this.list.onKeyDown(e=>{const t=new d.StandardKeyboardEvent(e);switch(t.keyCode){case 10:this.toggleCheckbox();break;case 31:(p.isMacintosh?e.metaKey:e.ctrlKey)&&this.list.setFocus(g.range(this.list.length));break;case 16:const t=this.list.getFocus();1===t.length&&0===t[0]&&this._onLeave.fire();break;case 18:const i=this.list.getFocus();1===i.length&&i[0]===this.list.length-1&&this._onLeave.fire()}this._onKeyDown.fire(t)})),this.disposables.push(this.list.onMouseDown(e=>{2!==e.browserEvent.button&&e.browserEvent.preventDefault()})),this.disposables.push(i.addDisposableListener(this.container,i.EventType.CLICK,e=>{(e.x||e.y)&&this._onLeave.fire()})),this.disposables.push(this.list.onMouseMiddleClick(e=>{this._onLeave.fire()})),this.disposables.push(this.list.onContextMenu(e=>{ +"number"==typeof e.index&&(e.browserEvent.preventDefault(),this.list.setSelection([e.index]))})),this.disposables.push(this._onChangedAllVisibleChecked,this._onChangedCheckedCount,this._onChangedVisibleCount,this._onChangedCheckedElements,this._onButtonTriggered,this._onLeave,this._onKeyDown)}get onDidChangeFocus(){return r.Event.map(this.list.onDidChangeFocus,e=>e.elements.map(e=>e.item))}get onDidChangeSelection(){return r.Event.map(this.list.onDidChangeSelection,e=>({items:e.elements.map(e=>e.item),event:e.browserEvent}))}getAllVisibleChecked(){return this.allVisibleChecked(this.elements,!1)}allVisibleChecked(e,t=!0){for(let i=0,n=e.length;i{ +t.hidden||(t.checked=e)})}finally{this._fireCheckedEvents=!0,this.fireCheckedEvents()}}setElements(e){this.elementDisposables=n.dispose(this.elementDisposables);const t=e=>this.fireButtonTriggered(e);this.inputElements=e,this.elements=e.reduce((i,n,s)=>{var r,a,l;if("separator"!==n.type){const d=s&&e[s-1],c=n.label&&n.label.replace(/\r?\n/g," "),h=n.description&&n.description.replace(/\r?\n/g," "),u=n.detail&&n.detail.replace(/\r?\n/g," "),g=n.ariaLabel||[c,h,u].map(e=>e&&o.parseCodicons(e).text).filter(e=>!!e).join(", ");i.push(new w({index:s,item:n,saneLabel:c,saneAriaLabel:g,saneDescription:h,saneDetail:u,labelHighlights:null===(r=n.highlights)||void 0===r?void 0:r.label,descriptionHighlights:null===(a=n.highlights)||void 0===a?void 0:a.description,detailHighlights:null===(l=n.highlights)||void 0===l?void 0:l.detail,checked:!1,separator:d&&"separator"===d.type?d:void 0,fireButtonTriggered:t}))}return i},[]),this.elementDisposables.push(...this.elements), +this.elementDisposables.push(...this.elements.map(e=>e.onChecked(()=>this.fireCheckedEvents()))),this.elementsToIndexes=this.elements.reduce((e,t,i)=>(e.set(t.item,i),e),new Map),this.list.splice(0,this.list.length),this.list.splice(0,this.list.length,this.elements),this._onChangedVisibleCount.fire(this.elements.length)}getFocusedElements(){return this.list.getFocusedElements().map(e=>e.item)}setFocusedElements(e){if(this.list.setFocus(e.filter(e=>this.elementsToIndexes.has(e)).map(e=>this.elementsToIndexes.get(e))),e.length>0){const e=this.list.getFocus()[0];"number"==typeof e&&this.list.reveal(e)}}getActiveDescendant(){return this.list.getHTMLElement().getAttribute("aria-activedescendant")}setSelectedElements(e){this.list.setSelection(e.filter(e=>this.elementsToIndexes.has(e)).map(e=>this.elementsToIndexes.get(e)))}getCheckedElements(){return this.elements.filter(e=>e.checked).map(e=>e.item)}setCheckedElements(e){try{this._fireCheckedEvents=!1;const t=new Set;for(const i of e)t.add(i) +;for(const e of this.elements)e.checked=t.has(e.item)}finally{this._fireCheckedEvents=!0,this.fireCheckedEvents()}}set enabled(e){this.list.getHTMLElement().style.pointerEvents=e?"":"none"}focus(e){if(!this.list.length)return;switch(e===L.Next&&this.list.getFocus()[0]===this.list.length-1&&(e=L.First),e===L.Previous&&0===this.list.getFocus()[0]&&(e=L.Last),e===L.Second&&this.list.length<2&&(e=L.First),e){case L.First:this.list.focusFirst();break;case L.Second:this.list.focusNth(1);break;case L.Last:this.list.focusLast();break;case L.Next:this.list.focusNext();break;case L.Previous:this.list.focusPrevious();break;case L.NextPage:this.list.focusNextPage();break;case L.PreviousPage:this.list.focusPreviousPage()}const t=this.list.getFocus()[0];"number"==typeof t&&this.list.reveal(t)}clearFocus(){this.list.setFocus([])}domFocus(){this.list.domFocus()}layout(e){this.list.getHTMLElement().style.maxHeight=e?`calc(${44*Math.floor(e/44)}px)`:"",this.list.layout()}filter(e){ +if(!(this.sortByLabel||this.matchOnLabel||this.matchOnDescription||this.matchOnDetail))return this.list.layout(),!1;(e=e.trim())&&(this.matchOnLabel||this.matchOnDescription||this.matchOnDetail)?this.elements.forEach(t=>{const i=this.matchOnLabel?v.withNullAsUndefined(o.matchesFuzzyCodiconAware(e,o.parseCodicons(t.saneLabel))):void 0,n=this.matchOnDescription?v.withNullAsUndefined(o.matchesFuzzyCodiconAware(e,o.parseCodicons(t.saneDescription||""))):void 0,s=this.matchOnDetail?v.withNullAsUndefined(o.matchesFuzzyCodiconAware(e,o.parseCodicons(t.saneDetail||""))):void 0;i||n||s?(t.labelHighlights=i,t.descriptionHighlights=n,t.detailHighlights=s,t.hidden=!1):(t.labelHighlights=void 0,t.descriptionHighlights=void 0,t.detailHighlights=void 0,t.hidden=!t.item.alwaysShow),t.separator=void 0}):this.elements.forEach(e=>{e.labelHighlights=void 0,e.descriptionHighlights=void 0,e.detailHighlights=void 0,e.hidden=!1;const t=e.index&&this.inputElements[e.index-1];e.separator=t&&"separator"===t.type?t:void 0}) +;const t=this.elements.filter(e=>!e.hidden);if(this.sortByLabel&&e){const i=e.toLowerCase();t.sort((e,t)=>(function(e,t,i){const n=e.labelHighlights||[],o=t.labelHighlights||[];if(n.length&&!o.length)return-1;if(!n.length&&o.length)return 1;if(0===n.length&&0===o.length)return 0;return s.compareAnything(e.saneLabel,t.saneLabel,i)})(e,t,i))}return this.elementsToIndexes=t.reduce((e,t,i)=>(e.set(t.item,i),e),new Map),this.list.splice(0,this.list.length,t),this.list.setFocus([]),this.list.layout(),this._onChangedAllVisibleChecked.fire(this.getAllVisibleChecked()),this._onChangedVisibleCount.fire(t.length),!0}toggleCheckbox(){try{this._fireCheckedEvents=!1;const e=this.list.getFocusedElements(),t=this.allVisibleChecked(e);for(const i of e)i.checked=!t}finally{this._fireCheckedEvents=!0,this.fireCheckedEvents()}}display(e){this.container.style.display=e?"":"none"}isDisplayed(){return"none"!==this.container.style.display}dispose(){this.elementDisposables=n.dispose(this.elementDisposables), +this.disposables=n.dispose(this.disposables)}fireCheckedEvents(){this._fireCheckedEvents&&(this._onChangedAllVisibleChecked.fire(this.getAllVisibleChecked()),this._onChangedCheckedCount.fire(this.getCheckedCount()),this._onChangedCheckedElements.fire(this.getCheckedElements()))}fireButtonTriggered(e){this._onButtonTriggered.fire(e)}style(e){this.list.style(e)}}a([u.memoize],x.prototype,"onDidChangeFocus",null),a([u.memoize],x.prototype,"onDidChangeSelection",null),t.QuickInputList=x;class D{getWidgetAriaLabel(){return b.localize(0,null)}getAriaLabel(e){return e.saneAriaLabel}getWidgetRole(){return"listbox"}getRole(){return"option"}}})),define(t[429],i([0,1,195,7,25,428,415,53,426,198,298,4,284,2,77,79,47,19,15,202,26,119]),(function(e,t,i,n,o,s,a,l,d,c,h,u,g,p,m,f,_,v,C,b,S){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.QuickInputController=void 0;const w=n.$,y={iconClass:S.registerIcon("quick-input-back",S.Codicon.arrowLeft).classNames,tooltip:d.localize(0,null),handle:-1} +;class E extends p.Disposable{constructor(e){super(),this.ui=e,this.visible=!1,this._enabled=!0,this._busy=!1,this._ignoreFocusOut=!1,this._buttons=[],this.buttonsUpdated=!1,this.onDidTriggerButtonEmitter=this._register(new u.Emitter),this.onDidHideEmitter=this._register(new u.Emitter),this.onDisposeEmitter=this._register(new u.Emitter),this.visibleDisposables=this._register(new p.DisposableStore),this.onDidHide=this.onDidHideEmitter.event}get title(){return this._title}set title(e){this._title=e,this.update()}get description(){return this._description}set description(e){this._description=e,this.update()}get step(){return this._steps}set step(e){this._steps=e,this.update()}get totalSteps(){return this._totalSteps}set totalSteps(e){this._totalSteps=e,this.update()}get enabled(){return this._enabled}set enabled(e){this._enabled=e,this.update()}get contextKey(){return this._contextKey}set contextKey(e){this._contextKey=e,this.update()}get busy(){return this._busy}set busy(e){this._busy=e,this.update()} +get ignoreFocusOut(){return this._ignoreFocusOut}set ignoreFocusOut(e){this._ignoreFocusOut=e,this.update()}get buttons(){return this._buttons}set buttons(e){this._buttons=e,this.buttonsUpdated=!0,this.update()}show(){this.visible||(this.visibleDisposables.add(this.ui.onDidTriggerButton(e=>{-1!==this.buttons.indexOf(e)&&this.onDidTriggerButtonEmitter.fire(e)})),this.ui.show(this),this.visible=!0,this.update())}hide(){this.visible&&this.ui.hide()}didHide(){this.visible=!1,this.visibleDisposables.clear(),this.onDidHideEmitter.fire()}update(){if(!this.visible)return;const e=this.getTitle();e&&this.ui.title.textContent!==e?this.ui.title.textContent=e:e||" "===this.ui.title.innerHTML||(this.ui.title.innerText=" ;");const t=this.getDescription();if(this.ui.description.textContent!==t&&(this.ui.description.textContent=t),this.busy&&!this.busyDelay&&(this.busyDelay=new C.TimeoutTimer,this.busyDelay.setIfNotSet(()=>{this.visible&&this.ui.progressBar.infinite()},800)), +!this.busy&&this.busyDelay&&(this.ui.progressBar.stop(),this.busyDelay.cancel(),this.busyDelay=void 0),this.buttonsUpdated){this.buttonsUpdated=!1,this.ui.leftActionBar.clear();const e=this.buttons.filter(e=>e===y);this.ui.leftActionBar.push(e.map((e,t)=>{const i=new _.Action(`id-${t}`,"",e.iconClass||b.getIconClass(e.iconPath),!0,()=>r(this,void 0,void 0,(function*(){this.onDidTriggerButtonEmitter.fire(e)})));return i.tooltip=e.tooltip||"",i}),{icon:!0,label:!1}),this.ui.rightActionBar.clear();const t=this.buttons.filter(e=>e!==y);this.ui.rightActionBar.push(t.map((e,t)=>{const i=new _.Action(`id-${t}`,"",e.iconClass||b.getIconClass(e.iconPath),!0,()=>r(this,void 0,void 0,(function*(){this.onDidTriggerButtonEmitter.fire(e)})));return i.tooltip=e.tooltip||"",i}),{icon:!0,label:!1})}this.ui.ignoreFocusOut=this.ignoreFocusOut,this.ui.setEnabled(this.enabled),this.ui.setContextKey(this.contextKey)}getTitle(){ +return this.title&&this.step?`${this.title} (${this.getSteps()})`:this.title?this.title:this.step?this.getSteps():""}getDescription(){return this.description||""}getSteps(){return this.step&&this.totalSteps?d.localize(1,null,this.step,this.totalSteps):this.step?String(this.step):""}showMessageDecoration(e){if(this.ui.inputBox.showDecoration(e),e===m.default.Error){const t=this.ui.inputBox.stylesForType(e);this.ui.message.style.color=t.foreground?`${t.foreground}`:"",this.ui.message.style.backgroundColor=t.background?`${t.background}`:"",this.ui.message.style.border=t.border?`1px solid ${t.border}`:"",this.ui.message.style.paddingBottom="4px"}else this.ui.message.style.color="",this.ui.message.style.backgroundColor="",this.ui.message.style.border="",this.ui.message.style.paddingBottom=""}dispose(){this.hide(),this.onDisposeEmitter.fire(),super.dispose()}}class L extends E{constructor(){super(...arguments),this._value="",this.onDidChangeValueEmitter=this._register(new u.Emitter), +this.onDidAcceptEmitter=this._register(new u.Emitter),this.onDidCustomEmitter=this._register(new u.Emitter),this._items=[],this.itemsUpdated=!1,this._canSelectMany=!1,this._canAcceptInBackground=!1,this._matchOnDescription=!1,this._matchOnDetail=!1,this._matchOnLabel=!0,this._sortByLabel=!0,this._autoFocusOnList=!0,this._itemActivation=this.ui.isScreenReaderOptimized()?i.ItemActivation.NONE:i.ItemActivation.FIRST,this._activeItems=[],this.activeItemsUpdated=!1,this.activeItemsToConfirm=[],this.onDidChangeActiveEmitter=this._register(new u.Emitter),this._selectedItems=[],this.selectedItemsUpdated=!1,this.selectedItemsToConfirm=[],this.onDidChangeSelectionEmitter=this._register(new u.Emitter),this.onDidTriggerItemButtonEmitter=this._register(new u.Emitter),this.valueSelectionUpdated=!0,this._ok="default",this._customButton=!1,this.filterValue=e=>e,this.onDidChangeValue=this.onDidChangeValueEmitter.event,this.onDidAccept=this.onDidAcceptEmitter.event,this.onDidChangeActive=this.onDidChangeActiveEmitter.event, +this.onDidChangeSelection=this.onDidChangeSelectionEmitter.event,this.onDidTriggerItemButton=this.onDidTriggerItemButtonEmitter.event}get quickNavigate(){return this._quickNavigate}set quickNavigate(e){this._quickNavigate=e,this.update()}get value(){return this._value}set value(e){this._value=e||"",this.update()}set ariaLabel(e){this._ariaLabel=e,this.update()}get ariaLabel(){return this._ariaLabel}get placeholder(){return this._placeholder}set placeholder(e){this._placeholder=e,this.update()}get items(){return this._items}set items(e){this._items=e,this.itemsUpdated=!0,this.update()}get canSelectMany(){return this._canSelectMany}set canSelectMany(e){this._canSelectMany=e,this.update()}get canAcceptInBackground(){return this._canAcceptInBackground}set canAcceptInBackground(e){this._canAcceptInBackground=e}get matchOnDescription(){return this._matchOnDescription}set matchOnDescription(e){this._matchOnDescription=e,this.update()}get matchOnDetail(){return this._matchOnDetail}set matchOnDetail(e){ +this._matchOnDetail=e,this.update()}get matchOnLabel(){return this._matchOnLabel}set matchOnLabel(e){this._matchOnLabel=e,this.update()}get sortByLabel(){return this._sortByLabel}set sortByLabel(e){this._sortByLabel=e,this.update()}get autoFocusOnList(){return this._autoFocusOnList}set autoFocusOnList(e){this._autoFocusOnList=e,this.update()}get itemActivation(){return this._itemActivation}set itemActivation(e){this._itemActivation=e}get activeItems(){return this._activeItems}set activeItems(e){this._activeItems=e,this.activeItemsUpdated=!0,this.update()}get selectedItems(){return this._selectedItems}set selectedItems(e){this._selectedItems=e,this.selectedItemsUpdated=!0,this.update()}get keyMods(){return this._quickNavigate?i.NO_KEY_MODS:this.ui.keyMods}set valueSelection(e){this._valueSelection=e,this.valueSelectionUpdated=!0,this.update()}get validationMessage(){return this._validationMessage}set validationMessage(e){this._validationMessage=e,this.update()}get customButton(){return this._customButton} +set customButton(e){this._customButton=e,this.update()}get customLabel(){return this._customButtonLabel}set customLabel(e){this._customButtonLabel=e,this.update()}get customHover(){return this._customButtonHover}set customHover(e){this._customButtonHover=e,this.update()}get ok(){return this._ok}set ok(e){this._ok=e,this.update()}get hideInput(){return!!this._hideInput}set hideInput(e){this._hideInput=e,this.update()}trySelectFirst(){this.autoFocusOnList&&(this.canSelectMany||this.ui.list.focus(s.QuickInputListFocus.First))}show(){this.visible||(this.visibleDisposables.add(this.ui.inputBox.onDidChange(e=>{if(e===this.value)return;this._value=e,this.ui.list.filter(this.filterValue(this.ui.inputBox.value))&&this.trySelectFirst(),this.onDidChangeValueEmitter.fire(e)})),this.visibleDisposables.add(this.ui.inputBox.onMouseDown(e=>{this.autoFocusOnList||this.ui.list.clearFocus()})),this.visibleDisposables.add((this._hideInput?this.ui.list:this.ui.inputBox).onKeyDown(e=>{switch(e.keyCode){case 18: +this.ui.list.focus(s.QuickInputListFocus.Next),this.canSelectMany&&this.ui.list.domFocus(),n.EventHelper.stop(e,!0);break;case 16:this.ui.list.getFocusedElements().length?this.ui.list.focus(s.QuickInputListFocus.Previous):this.ui.list.focus(s.QuickInputListFocus.Last),this.canSelectMany&&this.ui.list.domFocus(),n.EventHelper.stop(e,!0);break;case 12:this.ui.list.focus(s.QuickInputListFocus.NextPage),this.canSelectMany&&this.ui.list.domFocus(),n.EventHelper.stop(e,!0);break;case 11:this.ui.list.focus(s.QuickInputListFocus.PreviousPage),this.canSelectMany&&this.ui.list.domFocus(),n.EventHelper.stop(e,!0);break;case 17:if(!this._canAcceptInBackground)return;if(!this.ui.inputBox.isSelectionAtEnd())return;this.activeItems[0]&&(this._selectedItems=[this.activeItems[0]],this.onDidChangeSelectionEmitter.fire(this.selectedItems),this.onDidAcceptEmitter.fire({inBackground:!0}));break;case 14:!e.ctrlKey&&!e.metaKey||e.shiftKey||e.altKey||(this.ui.list.focus(s.QuickInputListFocus.First),n.EventHelper.stop(e,!0));break +;case 13:!e.ctrlKey&&!e.metaKey||e.shiftKey||e.altKey||(this.ui.list.focus(s.QuickInputListFocus.Last),n.EventHelper.stop(e,!0))}})),this.visibleDisposables.add(this.ui.onDidAccept(()=>{!this.canSelectMany&&this.activeItems[0]&&(this._selectedItems=[this.activeItems[0]],this.onDidChangeSelectionEmitter.fire(this.selectedItems)),this.onDidAcceptEmitter.fire({inBackground:!1})})),this.visibleDisposables.add(this.ui.onDidCustom(()=>{this.onDidCustomEmitter.fire()})),this.visibleDisposables.add(this.ui.list.onDidChangeFocus(e=>{this.activeItemsUpdated||this.activeItemsToConfirm!==this._activeItems&&v.equals(e,this._activeItems,(e,t)=>e===t)||(this._activeItems=e,this.onDidChangeActiveEmitter.fire(e))})),this.visibleDisposables.add(this.ui.list.onDidChangeSelection(({items:e,event:t})=>{this.canSelectMany?e.length&&this.ui.list.setSelectedElements([]):this.selectedItemsToConfirm!==this._selectedItems&&v.equals(e,this._selectedItems,(e,t)=>e===t)||(this._selectedItems=e,this.onDidChangeSelectionEmitter.fire(e), +e.length&&this.onDidAcceptEmitter.fire({inBackground:t instanceof MouseEvent&&1===t.button}))})),this.visibleDisposables.add(this.ui.list.onChangedCheckedElements(e=>{this.canSelectMany&&(this.selectedItemsToConfirm!==this._selectedItems&&v.equals(e,this._selectedItems,(e,t)=>e===t)||(this._selectedItems=e,this.onDidChangeSelectionEmitter.fire(e)))})),this.visibleDisposables.add(this.ui.list.onButtonTriggered(e=>this.onDidTriggerItemButtonEmitter.fire(e))),this.visibleDisposables.add(this.registerQuickNavigation()),this.valueSelectionUpdated=!0),super.show()}registerQuickNavigation(){return n.addDisposableListener(this.ui.container,n.EventType.KEY_UP,e=>{if(this.canSelectMany||!this._quickNavigate)return;const t=new l.StandardKeyboardEvent(e),i=t.keyCode;this._quickNavigate.keybindings.some(e=>{const[n,o]=e.getParts();return!o&&(n.shiftKey&&4===i?!(t.ctrlKey||t.altKey||t.metaKey):!(!n.altKey||6!==i)||(!(!n.ctrlKey||5!==i)||!(!n.metaKey||57!==i))) +})&&(this.activeItems[0]&&(this._selectedItems=[this.activeItems[0]],this.onDidChangeSelectionEmitter.fire(this.selectedItems),this.onDidAcceptEmitter.fire({inBackground:!1})),this._quickNavigate=void 0)})}update(){if(!this.visible)return;let e=!1,t=!1;this._hideInput&&this._items.length>0&&(this.ui.isScreenReaderOptimized()?t=!0:e=!0),n.toggleClass(this.ui.container,"hidden-input",e);const o={title:!!this.title||!!this.step||!!this.buttons.length,description:!!this.description,checkAll:this.canSelectMany,inputBox:!e,progressBar:!e,visibleCount:!0,count:this.canSelectMany,ok:"default"===this.ok?this.canSelectMany:this.ok,list:!0,message:!!this.validationMessage,customButton:this.customButton};if(this.ui.setVisibilities(o),super.update(),this.ui.inputBox.value!==this.value&&(this.ui.inputBox.value=this.value),this.valueSelectionUpdated&&(this.valueSelectionUpdated=!1,this.ui.inputBox.select(this._valueSelection&&{start:this._valueSelection[0],end:this._valueSelection[1]})), +this.ui.inputBox.placeholder!==(this.placeholder||"")&&(this.ui.inputBox.placeholder=this.placeholder||""),t)this.ui.inputBox.ariaLabel="";else{const e=this.ariaLabel||this.placeholder||L.DEFAULT_ARIA_LABEL;this.ui.inputBox.ariaLabel!==e&&(this.ui.inputBox.ariaLabel=e)}if(this.ui.list.matchOnDescription=this.matchOnDescription,this.ui.list.matchOnDetail=this.matchOnDetail,this.ui.list.matchOnLabel=this.matchOnLabel,this.ui.list.sortByLabel=this.sortByLabel,this.itemsUpdated)switch(this.itemsUpdated=!1,this.ui.list.setElements(this.items),this.ui.list.filter(this.filterValue(this.ui.inputBox.value)),this.ui.checkAll.checked=this.ui.list.getAllVisibleChecked(),this.ui.visibleCount.setCount(this.ui.list.getVisibleCount()),this.ui.count.setCount(this.ui.list.getCheckedCount()),this._itemActivation){case i.ItemActivation.NONE:this._itemActivation=i.ItemActivation.FIRST;break;case i.ItemActivation.SECOND:this.ui.list.focus(s.QuickInputListFocus.Second),this._itemActivation=i.ItemActivation.FIRST;break +;case i.ItemActivation.LAST:this.ui.list.focus(s.QuickInputListFocus.Last),this._itemActivation=i.ItemActivation.FIRST;break;default:this.trySelectFirst()}this.ui.container.classList.contains("show-checkboxes")!==!!this.canSelectMany&&(this.canSelectMany?this.ui.list.clearFocus():this.trySelectFirst()),this.activeItemsUpdated&&(this.activeItemsUpdated=!1,this.activeItemsToConfirm=this._activeItems,this.ui.list.setFocusedElements(this.activeItems),this.activeItemsToConfirm===this._activeItems&&(this.activeItemsToConfirm=null)),this.selectedItemsUpdated&&(this.selectedItemsUpdated=!1,this.selectedItemsToConfirm=this._selectedItems,this.canSelectMany?this.ui.list.setCheckedElements(this.selectedItems):this.ui.list.setSelectedElements(this.selectedItems),this.selectedItemsToConfirm===this._selectedItems&&(this.selectedItemsToConfirm=null)),this.validationMessage?(this.ui.message.textContent=this.validationMessage,this.showMessageDecoration(m.default.Error)):(this.ui.message.textContent=null, +this.showMessageDecoration(m.default.Ignore)),this.ui.customButton.label=this.customLabel||"",this.ui.customButton.element.title=this.customHover||"",this.ui.setComboboxAccessibility(!0),o.inputBox||this.ui.list.domFocus()}}L.DEFAULT_ARIA_LABEL=d.localize(2,null);class x extends p.Disposable{constructor(e){super(),this.options=e,this.comboboxAccessibility=!1,this.enabled=!0,this.onDidAcceptEmitter=this._register(new u.Emitter),this.onDidCustomEmitter=this._register(new u.Emitter),this.onDidTriggerButtonEmitter=this._register(new u.Emitter),this.keyMods={ctrlCmd:!1,alt:!1},this.controller=null,this.onShowEmitter=this._register(new u.Emitter),this.onShow=this.onShowEmitter.event,this.onHideEmitter=this._register(new u.Emitter),this.onHide=this.onHideEmitter.event,this.idPrefix=e.idPrefix,this.parentElement=e.container,this.styles=e.styles,this.registerKeyModsListeners()}registerKeyModsListeners(){const e=e=>{this.keyMods.ctrlCmd=e.ctrlKey||e.metaKey,this.keyMods.alt=e.altKey} +;this._register(n.addDisposableListener(window,n.EventType.KEY_DOWN,e,!0)),this._register(n.addDisposableListener(window,n.EventType.KEY_UP,e,!0)),this._register(n.addDisposableListener(window,n.EventType.MOUSE_DOWN,e,!0))}getUI(){if(this.ui)return this.ui;const e=n.append(this.parentElement,w(".quick-input-widget.show-file-icons"));e.tabIndex=-1,e.style.display="none";const t=n.createStyleSheet(e),i=n.append(e,w(".quick-input-titlebar")),o=this._register(new f.ActionBar(i));o.domNode.classList.add("quick-input-left-action-bar");const r=n.append(i,w(".quick-input-title")),u=this._register(new f.ActionBar(i));u.domNode.classList.add("quick-input-right-action-bar");const p=n.append(e,w(".quick-input-description")),m=n.append(e,w(".quick-input-header")),_=n.append(m,w("input.quick-input-check-all"));_.type="checkbox",this._register(n.addStandardDisposableListener(_,n.EventType.CHANGE,e=>{const t=_.checked;T.setAllVisibleChecked(t)})),this._register(n.addDisposableListener(_,n.EventType.CLICK,e=>{ +(e.x||e.y)&&b.setFocus()}));const v=n.append(m,w(".quick-input-and-message")),C=n.append(v,w(".quick-input-filter")),b=this._register(new a.QuickInputBox(C));b.setAttribute("aria-describedby",`${this.idPrefix}message`);const S=n.append(C,w(".quick-input-visible-count"));S.setAttribute("aria-live","polite"),S.setAttribute("aria-atomic","true");const y=new c.CountBadge(S,{countFormat:d.localize(3,null)}),E=n.append(C,w(".quick-input-count"));E.setAttribute("aria-live","polite");const x=new c.CountBadge(E,{countFormat:d.localize(4,null)}),D=n.append(m,w(".quick-input-action")),k=new g.Button(D);k.label=d.localize(5,null),this._register(k.onDidClick(e=>{this.onDidAcceptEmitter.fire()}));const N=n.append(m,w(".quick-input-action")),I=new g.Button(N);I.label=d.localize(6,null),this._register(I.onDidClick(e=>{this.onDidCustomEmitter.fire()}));const M=n.append(v,w(`#${this.idPrefix}message.quick-input-message`)),R=new h.ProgressBar(e);n.addClass(R.getContainer(),"quick-input-progress") +;const T=this._register(new s.QuickInputList(e,this.idPrefix+"list",this.options));this._register(T.onChangedAllVisibleChecked(e=>{_.checked=e})),this._register(T.onChangedVisibleCount(e=>{y.setCount(e)})),this._register(T.onChangedCheckedCount(e=>{x.setCount(e)})),this._register(T.onLeave(()=>{setTimeout(()=>{b.setFocus(),this.controller instanceof L&&this.controller.canSelectMany&&T.clearFocus()},0)})),this._register(T.onDidChangeFocus(()=>{this.comboboxAccessibility&&this.getUI().inputBox.setAttribute("aria-activedescendant",this.getUI().list.getActiveDescendant()||"")}));const O=n.trackFocus(e);return this._register(O),this._register(n.addDisposableListener(e,n.EventType.FOCUS,e=>{this.previousFocusElement=e.relatedTarget instanceof HTMLElement?e.relatedTarget:void 0},!0)),this._register(O.onDidBlur(()=>{this.getUI().ignoreFocusOut||this.options.ignoreFocusOut()||this.hide(),this.previousFocusElement=void 0})),this._register(n.addDisposableListener(e,n.EventType.FOCUS,e=>{b.setFocus()})), +this._register(n.addDisposableListener(e,n.EventType.KEY_DOWN,t=>{const i=new l.StandardKeyboardEvent(t);switch(i.keyCode){case 3:n.EventHelper.stop(t,!0),this.onDidAcceptEmitter.fire();break;case 9:n.EventHelper.stop(t,!0),this.hide();break;case 2:if(!i.altKey&&!i.ctrlKey&&!i.metaKey){const o=[".action-label.codicon"];e.classList.contains("show-checkboxes")?o.push("input"):o.push("input[type=text]"),this.getUI().list.isDisplayed()&&o.push(".monaco-list");const s=e.querySelectorAll(o.join(", "));i.shiftKey&&i.target===s[0]?(n.EventHelper.stop(t,!0),s[s.length-1].focus()):i.shiftKey||i.target!==s[s.length-1]||(n.EventHelper.stop(t,!0),s[0].focus())}}})),this.ui={container:e,styleSheet:t,leftActionBar:o,titleBar:i,title:r,description:p,rightActionBar:u,checkAll:_,filterContainer:C,inputBox:b,visibleCountContainer:S,visibleCount:y,countContainer:E,count:x,okContainer:D,ok:k,message:M,customButtonContainer:N,customButton:I,progressBar:R,list:T,onDidAccept:this.onDidAcceptEmitter.event, +onDidCustom:this.onDidCustomEmitter.event,onDidTriggerButton:this.onDidTriggerButtonEmitter.event,ignoreFocusOut:!1,keyMods:this.keyMods,isScreenReaderOptimized:()=>this.options.isScreenReaderOptimized(),show:e=>this.show(e),hide:()=>this.hide(),setVisibilities:e=>this.setVisibilities(e),setComboboxAccessibility:e=>this.setComboboxAccessibility(e),setEnabled:e=>this.setEnabled(e),setContextKey:e=>this.options.setContextKey(e)},this.updateStyles(),this.ui}pick(e,t={},i=o.CancellationToken.None){return new Promise((n,o)=>{let s=e=>{s=n,t.onKeyMods&&t.onKeyMods(r.keyMods),n(e)};if(i.isCancellationRequested)return void s(void 0);const r=this.createQuickPick();let a;const l=[r,r.onDidAccept(()=>{if(r.canSelectMany)s(r.selectedItems.slice()),r.hide();else{const e=r.activeItems[0];e&&(s(e),r.hide())}}),r.onDidChangeActive(e=>{const i=e[0];i&&t.onDidFocus&&t.onDidFocus(i)}),r.onDidChangeSelection(e=>{if(!r.canSelectMany){const t=e[0];t&&(s(t),r.hide())} +}),r.onDidTriggerItemButton(e=>t.onDidTriggerItemButton&&t.onDidTriggerItemButton(Object.assign(Object.assign({},e),{removeItem:()=>{const t=r.items.indexOf(e.item);if(-1!==t){const e=r.items.slice();e.splice(t,1),r.items=e}}}))),r.onDidChangeValue(e=>{!a||e||1===r.activeItems.length&&r.activeItems[0]===a||(r.activeItems=[a])}),i.onCancellationRequested(()=>{r.hide()}),r.onDidHide(()=>{p.dispose(l),s(void 0)})];r.canSelectMany=!!t.canPickMany,r.placeholder=t.placeHolder,r.ignoreFocusOut=!!t.ignoreFocusLost,r.matchOnDescription=!!t.matchOnDescription,r.matchOnDetail=!!t.matchOnDetail,r.matchOnLabel=void 0===t.matchOnLabel||t.matchOnLabel,r.autoFocusOnList=void 0===t.autoFocusOnList||t.autoFocusOnList,r.quickNavigate=t.quickNavigate,r.contextKey=t.contextKey,r.busy=!0,Promise.all([e,t.activeItem]).then(([e,t])=>{a=t,r.busy=!1,r.items=e,r.canSelectMany&&(r.selectedItems=e.filter(e=>"separator"!==e.type&&e.picked)),a&&(r.activeItems=[a])}),r.show(),Promise.resolve(e).then(void 0,e=>{o(e),r.hide()})})} +createQuickPick(){const e=this.getUI();return new L(e)}show(e){const t=this.getUI();this.onShowEmitter.fire();const i=this.controller;this.controller=e,i&&i.didHide(),this.setEnabled(!0),t.leftActionBar.clear(),t.title.textContent="",t.description.textContent="",t.rightActionBar.clear(),t.checkAll.checked=!1,t.inputBox.placeholder="",t.inputBox.password=!1,t.inputBox.showDecoration(m.default.Ignore),t.visibleCount.setCount(0),t.count.setCount(0),t.message.textContent="",t.progressBar.stop(),t.list.setElements([]),t.list.matchOnDescription=!1,t.list.matchOnDetail=!1,t.list.matchOnLabel=!0,t.list.sortByLabel=!0,t.ignoreFocusOut=!1,this.setComboboxAccessibility(!1),t.inputBox.ariaLabel="";const n=this.options.backKeybindingLabel();y.tooltip=n?d.localize(7,null,n):d.localize(8,null),t.container.style.display="",this.updateLayout(),t.inputBox.setFocus()}setVisibilities(e){const t=this.getUI();t.title.style.display=e.title?"":"none",t.description.style.display=e.description?"":"none", +t.checkAll.style.display=e.checkAll?"":"none",t.filterContainer.style.display=e.inputBox?"":"none",t.visibleCountContainer.style.display=e.visibleCount?"":"none",t.countContainer.style.display=e.count?"":"none",t.okContainer.style.display=e.ok?"":"none",t.customButtonContainer.style.display=e.customButton?"":"none",t.message.style.display=e.message?"":"none",t.progressBar.getContainer().style.display=e.progressBar?"":"none",t.list.display(!!e.list),t.container.classList[e.checkAll?"add":"remove"]("show-checkboxes"),this.updateLayout()}setComboboxAccessibility(e){if(e!==this.comboboxAccessibility){const t=this.getUI();this.comboboxAccessibility=e,this.comboboxAccessibility?(t.inputBox.setAttribute("role","combobox"),t.inputBox.setAttribute("aria-haspopup","true"),t.inputBox.setAttribute("aria-autocomplete","list"),t.inputBox.setAttribute("aria-activedescendant",t.list.getActiveDescendant()||"")):(t.inputBox.removeAttribute("role"),t.inputBox.removeAttribute("aria-haspopup"), +t.inputBox.removeAttribute("aria-autocomplete"),t.inputBox.removeAttribute("aria-activedescendant"))}}setEnabled(e){if(e!==this.enabled){this.enabled=e;for(const t of this.getUI().leftActionBar.viewItems)t.getAction().enabled=e;for(const t of this.getUI().rightActionBar.viewItems)t.getAction().enabled=e;this.getUI().checkAll.disabled=!e,this.getUI().ok.enabled=e,this.getUI().list.enabled=e}}hide(){var e;const t=this.controller;if(t){const i=!(null===(e=this.ui)||void 0===e?void 0:e.container.contains(document.activeElement));this.controller=null,this.onHideEmitter.fire(),this.getUI().container.style.display="none",i||(this.previousFocusElement&&this.previousFocusElement.offsetParent?(this.previousFocusElement.focus(),this.previousFocusElement=void 0):this.options.returnFocus()),t.didHide()}}layout(e,t){this.dimension=e,this.titleBarOffset=t,this.updateLayout()}updateLayout(){if(this.ui){this.ui.container.style.top=`${this.titleBarOffset}px` +;const e=this.ui.container.style,t=Math.min(.62*this.dimension.width,x.MAX_WIDTH);e.width=t+"px",e.marginLeft="-"+t/2+"px",this.ui.inputBox.layout(),this.ui.list.layout(this.dimension&&.4*this.dimension.height)}}applyStyles(e){this.styles=e,this.updateStyles()}updateStyles(){if(this.ui){const{quickInputTitleBackground:e,quickInputBackground:t,quickInputForeground:i,contrastBorder:n,widgetShadow:o}=this.styles.widget;this.ui.titleBar.style.backgroundColor=e?e.toString():"",this.ui.container.style.backgroundColor=t?t.toString():"",this.ui.container.style.color=i?i.toString():"",this.ui.container.style.border=n?`1px solid ${n}`:"",this.ui.container.style.boxShadow=o?`0 5px 8px ${o}`:"",this.ui.inputBox.style(this.styles.inputBox),this.ui.count.style(this.styles.countBadge),this.ui.ok.style(this.styles.button),this.ui.customButton.style(this.styles.button),this.ui.progressBar.style(this.styles.progressBar),this.ui.list.style(this.styles.list);const s=[] +;this.styles.list.listInactiveFocusForeground&&(s.push(`.monaco-list .monaco-list-row.focused { color: ${this.styles.list.listInactiveFocusForeground}; }`),s.push(`.monaco-list .monaco-list-row.focused:hover { color: ${this.styles.list.listInactiveFocusForeground}; }`)),this.styles.list.pickerGroupBorder&&s.push(`.quick-input-list .quick-input-list-entry { border-top-color: ${this.styles.list.pickerGroupBorder}; }`),this.styles.list.pickerGroupForeground&&s.push(`.quick-input-list .quick-input-list-separator { color: ${this.styles.list.pickerGroupForeground}; }`);const r=s.join("\n");r!==this.ui.styleSheet.innerHTML&&(this.ui.styleSheet.innerHTML=r)}}}t.QuickInputController=x,x.MAX_WIDTH=600})),define(t[430],i([5,6]),(function(e,t){return e.create("vs/editor/browser/controller/coreCommands",t)})),define(t[431],i([5,6]),(function(e,t){return e.create("vs/editor/browser/controller/textAreaHandler",t)})),define(t[432],i([5,6]),(function(e,t){return e.create("vs/editor/browser/editorExtensions",t)})), +define(t[433],i([5,6]),(function(e,t){return e.create("vs/editor/browser/widget/codeEditorWidget",t)})),define(t[434],i([5,6]),(function(e,t){return e.create("vs/editor/browser/widget/diffEditorWidget",t)})),define(t[435],i([5,6]),(function(e,t){return e.create("vs/editor/browser/widget/diffReview",t)})),define(t[436],i([5,6]),(function(e,t){return e.create("vs/editor/browser/widget/inlineDiffMargin",t)})),define(t[437],i([0,1,436,7,47,2,3,26]),(function(e,t,i,n,o,s,a,l){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.InlineDiffMargin=void 0;class d extends s.Disposable{constructor(e,t,s,d,c,h){super(),this._viewZoneId=e,this._marginDomNode=t,this.editor=s,this.diff=d,this._contextMenuService=c,this._clipboardService=h,this._visibility=!1,this._marginDomNode.style.zIndex="10",this._diffActions=document.createElement("div"),this._diffActions.className=l.Codicon.lightBulb.classNames+" lightbulb-glyph",this._diffActions.style.position="absolute";const u=s.getOption(51),g=s.getModel().getEOL() +;this._diffActions.style.right="0px",this._diffActions.style.visibility="hidden",this._diffActions.style.height=`${u}px`,this._diffActions.style.lineHeight=`${u}px`,this._marginDomNode.appendChild(this._diffActions);const p=[];p.push(new o.Action("diff.clipboard.copyDeletedContent",d.originalEndLineNumber>d.modifiedStartLineNumber?i.localize(0,null):i.localize(1,null),void 0,!0,()=>r(this,void 0,void 0,(function*(){yield this._clipboardService.writeText(d.originalContent.join(g)+g)}))));let m=0,f=void 0;d.originalEndLineNumber>d.modifiedStartLineNumber&&(f=new o.Action("diff.clipboard.copyDeletedLineContent",i.localize(2,null,d.originalStartLineNumber),void 0,!0,()=>r(this,void 0,void 0,(function*(){yield this._clipboardService.writeText(d.originalContent[m])}))),p.push(f)),s.getOption(72)||p.push(new o.Action("diff.inline.revertChange",i.localize(3,null),void 0,!0,()=>r(this,void 0,void 0,(function*(){if(0===d.modifiedEndLineNumber){const e=s.getModel().getLineMaxColumn(d.modifiedStartLineNumber) +;s.executeEdits("diffEditor",[{range:new a.Range(d.modifiedStartLineNumber,e,d.modifiedStartLineNumber,e),text:g+d.originalContent.join(g)}])}else{const e=s.getModel().getLineMaxColumn(d.modifiedEndLineNumber);s.executeEdits("diffEditor",[{range:new a.Range(d.modifiedStartLineNumber,1,d.modifiedEndLineNumber,e),text:d.originalContent.join(g)}])}}))));const _=(e,t)=>{this._contextMenuService.showContextMenu({getAnchor:()=>({x:e,y:t}),getActions:()=>(f&&(f.label=i.localize(4,null,d.originalStartLineNumber+m)),p),autoSelectFirstItem:!0})};this._register(n.addStandardDisposableListener(this._diffActions,"mousedown",e=>{const{top:t,height:i}=n.getDomNodePagePosition(this._diffActions);let o=Math.floor(u/3);e.preventDefault(),_(e.posx,t+i+o)})),this._register(s.onMouseMove(e=>{if(8===e.target.type||5===e.target.type){e.target.detail.viewZoneId===this._viewZoneId?(this.visibility=!0,m=this._updateLightBulbPosition(this._marginDomNode,e.event.browserEvent.y,u)):this.visibility=!1}else this.visibility=!1})), +this._register(s.onMouseDown(e=>{if(e.event.rightButton&&(8===e.target.type||5===e.target.type)){e.target.detail.viewZoneId===this._viewZoneId&&(e.event.preventDefault(),m=this._updateLightBulbPosition(this._marginDomNode,e.event.browserEvent.y,u),_(e.event.posx,e.event.posy+u))}}))}get visibility(){return this._visibility}set visibility(e){this._visibility!==e&&(this._visibility=e,this._diffActions.style.visibility=e?"visible":"hidden")}_updateLightBulbPosition(e,t,i){const{top:o}=n.getDomNodePagePosition(e),s=t-o,r=Math.floor(s/i),a=r*i;return this._diffActions.style.top=`${a}px`,r}}t.InlineDiffMargin=d})),define(t[438],i([5,6]),(function(e,t){return e.create("vs/editor/common/config/commonEditorConfig",t)})),define(t[439],i([5,6]),(function(e,t){return e.create("vs/editor/common/config/editorOptions",t)})),define(t[38],i([0,1,439,16,122]),(function(e,t,i,n,o){"use strict";Object.defineProperty(t,"__esModule",{value:!0}), +t.EditorOptions=t.editorOptionsRegistry=t.EDITOR_MODEL_DEFAULTS=t.EDITOR_FONT_DEFAULTS=t.filterValidationDecorations=t.EditorLayoutInfoComputer=t.EditorFontLigatures=t.TextEditorCursorStyle=t.ComputeOptionsMemory=t.ValidatedEditorOptions=t.ConfigurationChangedEvent=t.MINIMAP_GUTTER_WIDTH=void 0,t.MINIMAP_GUTTER_WIDTH=8;t.ConfigurationChangedEvent=class{constructor(e){this._values=e}hasChanged(e){return this._values[e]}};t.ValidatedEditorOptions=class{constructor(){this._values=[]}_read(e){return this._values[e]}get(e){return this._values[e]}_write(e,t){this._values[e]=t}};class s{constructor(){this.stableMinimapLayoutInput=null,this.stableFitMaxMinimapScale=0,this.stableFitRemainingWidth=0}}t.ComputeOptionsMemory=s;class r{constructor(e,t,i,n){this.id=e,this.name=t,this.defaultValue=i,this.schema=n}compute(e,t,i){return i}}class a{constructor(e,t=null){this.schema=void 0,this.id=e,this.name="_never_",this.defaultValue=void 0,this.deps=t}validate(e){return this.defaultValue}}class l{constructor(e,t,i,n){ +this.id=e,this.name=t,this.defaultValue=i,this.schema=n}validate(e){return void 0===e?this.defaultValue:e}compute(e,t,i){return i}}class d extends l{static boolean(e,t){return void 0===e?t:"false"!==e&&Boolean(e)}constructor(e,t,i,n){void 0!==n&&(n.type="boolean",n.default=i),super(e,t,i,n)}validate(e){return d.boolean(e,this.defaultValue)}}class c extends l{constructor(e,t,i,n,o,s){void 0!==s&&(s.type="integer",s.default=i,s.minimum=n,s.maximum=o),super(e,t,i,s),this.minimum=n,this.maximum=o}static clampedInt(e,t,i,n){if(void 0===e)return t;let o=parseInt(e,10);return isNaN(o)?t:(o=Math.max(i,o),0|(o=Math.min(n,o)))}validate(e){return c.clampedInt(e,this.defaultValue,this.minimum,this.maximum)}}class h extends l{constructor(e,t,i,n,o){void 0!==o&&(o.type="number",o.default=i),super(e,t,i,o),this.validationFn=n}static clamp(e,t,i){return ei?i:e}static float(e,t){if("number"==typeof e)return e;if(void 0===e)return t;const i=parseFloat(e);return isNaN(i)?t:i}validate(e){ +return this.validationFn(h.float(e,this.defaultValue))}}class u extends l{static string(e,t){return"string"!=typeof e?t:e}constructor(e,t,i,n){void 0!==n&&(n.type="string",n.default=i),super(e,t,i,n)}validate(e){return u.string(e,this.defaultValue)}}class g extends l{constructor(e,t,i,n,o){void 0!==o&&(o.type="string",o.enum=n,o.default=i),super(e,t,i,o),this._allowedValues=n}static stringSet(e,t,i){return"string"!=typeof e?t:-1===i.indexOf(e)?t:e}validate(e){return g.stringSet(e,this.defaultValue,this._allowedValues)}}class p extends r{constructor(e,t,i,n,o,s,r){void 0!==r&&(r.type="string",r.enum=o,r.default=n),super(e,t,i,r),this._allowedValues=o,this._convert=s}validate(e){return"string"!=typeof e?this.defaultValue:-1===this._allowedValues.indexOf(e)?this.defaultValue:this._convert(e)}}var m;!function(e){e[e.Line=1]="Line",e[e.Block=2]="Block",e[e.Underline=3]="Underline",e[e.LineThin=4]="LineThin",e[e.BlockOutline=5]="BlockOutline",e[e.UnderlineThin=6]="UnderlineThin" +}(m=t.TextEditorCursorStyle||(t.TextEditorCursorStyle={}));class f extends r{constructor(){super(37,"fontLigatures",f.OFF,{anyOf:[{type:"boolean",description:i.localize(16,null)},{type:"string",description:i.localize(17,null)}],description:i.localize(18,null),default:!1})}validate(e){return void 0===e?this.defaultValue:"string"==typeof e?"false"===e?f.OFF:"true"===e?f.ON:e:Boolean(e)?f.ON:f.OFF}}t.EditorFontLigatures=f,f.OFF='"liga" off, "calt" off',f.ON='"liga" on, "calt" on';class _ extends r{constructor(){super(39,"fontWeight",t.EDITOR_FONT_DEFAULTS.fontWeight,{anyOf:[{type:"number",minimum:_.MINIMUM_VALUE,maximum:_.MAXIMUM_VALUE,errorMessage:i.localize(20,null)},{type:"string",pattern:"^(normal|bold|1000|[1-9][0-9]{0,2})$"},{enum:_.SUGGESTION_VALUES}],default:t.EDITOR_FONT_DEFAULTS.fontWeight,description:i.localize(21,null)})}validate(e){return"normal"===e||"bold"===e?e:String(c.clampedInt(e,t.EDITOR_FONT_DEFAULTS.fontWeight,_.MINIMUM_VALUE,_.MAXIMUM_VALUE))}} +_.SUGGESTION_VALUES=["normal","bold","100","200","300","400","500","600","700","800","900"],_.MINIMUM_VALUE=1,_.MAXIMUM_VALUE=1e3;class v extends a{constructor(){super(117,[42,50,31,56,84,52,53,86,106,109,110,2])}compute(e,t,i){return v.computeLayout(t,{memory:e.memory,outerWidth:e.outerWidth,outerHeight:e.outerHeight,isDominatedByLongLines:e.isDominatedByLongLines,lineHeight:e.fontInfo.lineHeight,viewLineCount:e.viewLineCount,lineNumbersDigitCount:e.lineNumbersDigitCount,typicalHalfwidthCharacterWidth:e.fontInfo.typicalHalfwidthCharacterWidth,maxDigitWidth:e.fontInfo.maxDigitWidth,pixelRatio:e.pixelRatio})}static computeContainedMinimapLineCount(e){const t=e.height/e.lineHeight,i=e.scrollBeyondLastLine?t-1:0,n=(e.viewLineCount+i)/(e.pixelRatio*e.height);return{typicalViewportLineCount:t,extraLinesBeyondLastLine:i,desiredRatio:n,minimapLineCount:Math.floor(e.viewLineCount/n)}}static _computeMinimapLayout(e,i){const n=e.outerWidth,o=e.outerHeight,s=e.pixelRatio;if(!e.minimap.enabled)return{renderMinimap:0, +minimapLeft:0,minimapWidth:0,minimapHeightIsEditorHeight:!1,minimapIsSampling:!1,minimapScale:1,minimapLineHeight:1,minimapCanvasInnerWidth:0,minimapCanvasInnerHeight:Math.floor(s*o),minimapCanvasOuterWidth:0,minimapCanvasOuterHeight:o};const r=i.stableMinimapLayoutInput,a=r&&e.outerHeight===r.outerHeight&&e.lineHeight===r.lineHeight&&e.typicalHalfwidthCharacterWidth===r.typicalHalfwidthCharacterWidth&&e.pixelRatio===r.pixelRatio&&e.scrollBeyondLastLine===r.scrollBeyondLastLine&&e.minimap.enabled===r.minimap.enabled&&e.minimap.side===r.minimap.side&&e.minimap.size===r.minimap.size&&e.minimap.showSlider===r.minimap.showSlider&&e.minimap.renderCharacters===r.minimap.renderCharacters&&e.minimap.maxColumn===r.minimap.maxColumn&&e.minimap.scale===r.minimap.scale&&e.verticalScrollbarWidth===r.verticalScrollbarWidth&&e.isViewportWrapping===r.isViewportWrapping,l=e.lineHeight,d=e.typicalHalfwidthCharacterWidth,c=e.scrollBeyondLastLine,h=e.minimap.renderCharacters +;let u=s>=2?Math.round(2*e.minimap.scale):e.minimap.scale;const g=e.minimap.maxColumn,p=e.minimap.size,m=e.minimap.side,f=e.verticalScrollbarWidth,_=e.viewLineCount,C=e.remainingWidth,b=e.isViewportWrapping,S=h?2:3;let w=Math.floor(s*o);const y=w/s;let E=!1,L=!1,x=S*u,D=u/s,k=1;if("fill"===p||"fit"===p){const{typicalViewportLineCount:t,extraLinesBeyondLastLine:n,desiredRatio:r,minimapLineCount:d}=v.computeContainedMinimapLineCount({viewLineCount:_,scrollBeyondLastLine:c,height:o,lineHeight:l,pixelRatio:s});if(_/d>1)E=!0,L=!0,x=1,D=(u=1)/s;else{let o=!1,d=u+1;if("fit"===p){const t=Math.ceil((_+n)*x);b&&a&&C<=i.stableFitRemainingWidth?(o=!0,d=i.stableFitMaxMinimapScale):(o=t>w,b&&o?(i.stableMinimapLayoutInput=e,i.stableFitRemainingWidth=C):(i.stableMinimapLayoutInput=null,i.stableFitRemainingWidth=0))}if("fill"===p||o){E=!0;const e=u;x=Math.min(l*s,Math.max(1,Math.floor(1/r))),(u=Math.min(d,Math.max(1,Math.floor(x/S))))>e&&(k=Math.min(2,u/e)),D=u/s/k,w=Math.ceil(Math.max(t,_+n)*x), +b&&o&&(i.stableFitMaxMinimapScale=u)}}}const N=Math.floor(g*D),I=Math.min(N,Math.max(0,Math.floor((C-f-2)*D/(d+D)))+t.MINIMAP_GUTTER_WIDTH);let M=Math.floor(s*I);const R=M/s;return{renderMinimap:h?1:2,minimapLeft:"left"===m?0:n-I-f,minimapWidth:I,minimapHeightIsEditorHeight:E,minimapIsSampling:L,minimapScale:u,minimapLineHeight:x,minimapCanvasInnerWidth:M=Math.floor(M*k),minimapCanvasInnerHeight:w,minimapCanvasOuterWidth:R,minimapCanvasOuterHeight:y}}static computeLayout(e,t){const i=0|t.outerWidth,n=0|t.outerHeight,o=0|t.lineHeight,r=0|t.lineNumbersDigitCount,a=t.typicalHalfwidthCharacterWidth,l=t.maxDigitWidth,d=t.pixelRatio,h=t.viewLineCount,u=e.get(106),g=e.get(109),p=e.get(110),m=e.get(2),f=t.isDominatedByLongLines,_=e.get(42),C=0!==e.get(52).renderType,b=e.get(53),S=e.get(86),w=e.get(56),y=e.get(84),E=y.verticalScrollbarSize,L=y.verticalHasArrows,x=y.arrowSize,D=y.horizontalScrollbarSize,k=e.get(50),N=e.get(31);let I;if("string"==typeof k&&/^\d+(\.\d+)?ch$/.test(k)){ +const e=parseFloat(k.substr(0,k.length-2));I=c.clampedInt(e*a,0,0,1e3)}else I=c.clampedInt(k,0,0,1e3);N&&(I+=16);let M=0;if(C){const e=Math.max(r,b);M=Math.round(e*l)}let R=0;_&&(R=o);let T=0,O=T+R,A=O+M,P=A+I;const F=i-R-M-I;let W=!1,B=!1,V=-1;2!==m&&(p&&f?(W=!0,B=!0):"on"===u||"bounded"===u?B=!0:"wordWrapColumn"===u&&(V=g));const z=v._computeMinimapLayout({outerWidth:i,outerHeight:n,lineHeight:o,typicalHalfwidthCharacterWidth:a,pixelRatio:d,scrollBeyondLastLine:S,minimap:w,verticalScrollbarWidth:E,viewLineCount:h,remainingWidth:F,isViewportWrapping:B},t.memory||new s);0!==z.renderMinimap&&0===z.minimapLeft&&(T+=z.minimapWidth,O+=z.minimapWidth,A+=z.minimapWidth,P+=z.minimapWidth);const H=F-z.minimapWidth,K=Math.max(1,Math.floor((H-E-2)/a)),U=L?x:0;return B&&(V=Math.max(1,K),"bounded"===u&&(V=Math.min(V,g))),{width:i,height:n,glyphMarginLeft:T,glyphMarginWidth:R,lineNumbersLeft:O,lineNumbersWidth:M,decorationsLeft:A,decorationsWidth:I,contentLeft:P,contentWidth:H,minimap:z,viewportColumn:K, +isWordWrapMinified:W,isViewportWrapping:B,wrappingColumn:V,verticalScrollbarWidth:E,horizontalScrollbarHeight:D,overviewRuler:{top:U,width:E,height:n-2*U,right:0}}}}t.EditorLayoutInfoComputer=v;t.filterValidationDecorations=function(e){const t=e.get(79);return"editable"===t?e.get(72):"on"!==t};function C(e,t){if("string"!=typeof e)return t;switch(e){case"hidden":return 2;case"visible":return 3;default:return 1}}function b(e){return t.editorOptionsRegistry[e.id]=e,e}t.EDITOR_FONT_DEFAULTS={fontFamily:n.isMacintosh?"Menlo, Monaco, 'Courier New', monospace":n.isLinux?"'Droid Sans Mono', 'monospace', monospace, 'Droid Sans Fallback'":"Consolas, 'Courier New', monospace",fontWeight:"normal",fontSize:n.isMacintosh?12:14,lineHeight:0,letterSpacing:0},t.EDITOR_MODEL_DEFAULTS={tabSize:4,indentSize:4,insertSpaces:!0,detectIndentation:!0,trimAutoWhitespace:!0,largeFileOptimizations:!0},t.editorOptionsRegistry=[],t.EditorOptions={acceptSuggestionOnCommitCharacter:b(new d(0,"acceptSuggestionOnCommitCharacter",!0,{ +markdownDescription:i.localize(106,null)})),acceptSuggestionOnEnter:b(new g(1,"acceptSuggestionOnEnter","on",["on","smart","off"],{markdownEnumDescriptions:["",i.localize(107,null),""],markdownDescription:i.localize(108,null)})),accessibilitySupport:b(new class extends r{constructor(){super(2,"accessibilitySupport",0,{type:"string",enum:["auto","on","off"],enumDescriptions:[i.localize(0,null),i.localize(1,null),i.localize(2,null)],default:"auto",description:i.localize(3,null)})}validate(e){switch(e){case"auto":return 0;case"off":return 1;case"on":return 2}return this.defaultValue}compute(e,t,i){return 0===i?e.accessibilitySupport:i}}),accessibilityPageSize:b(new c(3,"accessibilityPageSize",10,1,1073741824,{description:i.localize(109,null)})),ariaLabel:b(new u(4,"ariaLabel",i.localize(110,null))),autoClosingBrackets:b(new g(5,"autoClosingBrackets","languageDefined",["always","languageDefined","beforeWhitespace","never"],{enumDescriptions:["",i.localize(111,null),i.localize(112,null),""], +description:i.localize(113,null)})),autoClosingOvertype:b(new g(6,"autoClosingOvertype","auto",["always","auto","never"],{enumDescriptions:["",i.localize(114,null),""],description:i.localize(115,null)})),autoClosingQuotes:b(new g(7,"autoClosingQuotes","languageDefined",["always","languageDefined","beforeWhitespace","never"],{enumDescriptions:["",i.localize(116,null),i.localize(117,null),""],description:i.localize(118,null)})),autoIndent:b(new p(8,"autoIndent",4,"full",["none","keep","brackets","advanced","full"],(function(e){switch(e){case"none":return 0;case"keep":return 1;case"brackets":return 2;case"advanced":return 3;case"full":return 4}}),{enumDescriptions:[i.localize(119,null),i.localize(120,null),i.localize(121,null),i.localize(122,null),i.localize(123,null)],description:i.localize(124,null)})),automaticLayout:b(new d(9,"automaticLayout",!1)),autoSurround:b(new g(10,"autoSurround","languageDefined",["languageDefined","quotes","brackets","never"],{ +enumDescriptions:[i.localize(125,null),i.localize(126,null),i.localize(127,null),""],description:i.localize(128,null)})),codeLens:b(new d(11,"codeLens",!0,{description:i.localize(129,null)})),colorDecorators:b(new d(12,"colorDecorators",!0,{description:i.localize(130,null)})),columnSelection:b(new d(13,"columnSelection",!1,{description:i.localize(131,null)})),comments:b(new class extends r{constructor(){const e={insertSpace:!0,ignoreEmptyLines:!0};super(14,"comments",e,{"editor.comments.insertSpace":{type:"boolean",default:e.insertSpace,description:i.localize(4,null)},"editor.comments.ignoreEmptyLines":{type:"boolean",default:e.ignoreEmptyLines,description:i.localize(5,null)}})}validate(e){if(!e||"object"!=typeof e)return this.defaultValue;const t=e;return{insertSpace:d.boolean(t.insertSpace,this.defaultValue.insertSpace),ignoreEmptyLines:d.boolean(t.ignoreEmptyLines,this.defaultValue.ignoreEmptyLines)}}}),contextmenu:b(new d(15,"contextmenu",!0)), +copyWithSyntaxHighlighting:b(new d(16,"copyWithSyntaxHighlighting",!0,{description:i.localize(132,null)})),cursorBlinking:b(new p(17,"cursorBlinking",1,"blink",["blink","smooth","phase","expand","solid"],(function(e){switch(e){case"blink":return 1;case"smooth":return 2;case"phase":return 3;case"expand":return 4;case"solid":return 5}}),{description:i.localize(133,null)})),cursorSmoothCaretAnimation:b(new d(18,"cursorSmoothCaretAnimation",!1,{description:i.localize(134,null)})),cursorStyle:b(new p(19,"cursorStyle",m.Line,"line",["line","block","underline","line-thin","block-outline","underline-thin"],(function(e){switch(e){case"line":return m.Line;case"block":return m.Block;case"underline":return m.Underline;case"line-thin":return m.LineThin;case"block-outline":return m.BlockOutline;case"underline-thin":return m.UnderlineThin}}),{description:i.localize(135,null)})),cursorSurroundingLines:b(new c(20,"cursorSurroundingLines",0,0,1073741824,{description:i.localize(136,null)})), +cursorSurroundingLinesStyle:b(new g(21,"cursorSurroundingLinesStyle","default",["default","all"],{enumDescriptions:[i.localize(137,null),i.localize(138,null)],description:i.localize(139,null)})),cursorWidth:b(new c(22,"cursorWidth",0,0,1073741824,{markdownDescription:i.localize(140,null)})),disableLayerHinting:b(new d(23,"disableLayerHinting",!1)),disableMonospaceOptimizations:b(new d(24,"disableMonospaceOptimizations",!1)),dragAndDrop:b(new d(25,"dragAndDrop",!0,{description:i.localize(141,null)})),emptySelectionClipboard:b(new class extends d{constructor(){super(26,"emptySelectionClipboard",!0,{description:i.localize(6,null)})}compute(e,t,i){return i&&e.emptySelectionClipboard}}),extraEditorClassName:b(new u(27,"extraEditorClassName","")),fastScrollSensitivity:b(new h(28,"fastScrollSensitivity",5,e=>e<=0?5:e,{markdownDescription:i.localize(142,null)})),find:b(new class extends r{constructor(){const e={cursorMoveOnType:!0,seedSearchStringFromSelection:!0,autoFindInSelection:"never",globalFindClipboard:!1, +addExtraSpaceOnTop:!0,loop:!0};super(29,"find",e,{"editor.find.cursorMoveOnType":{type:"boolean",default:e.cursorMoveOnType,description:i.localize(7,null)},"editor.find.seedSearchStringFromSelection":{type:"boolean",default:e.seedSearchStringFromSelection,description:i.localize(8,null)},"editor.find.autoFindInSelection":{type:"string",enum:["never","always","multiline"],default:e.autoFindInSelection,enumDescriptions:[i.localize(9,null),i.localize(10,null),i.localize(11,null)],description:i.localize(12,null)},"editor.find.globalFindClipboard":{type:"boolean",default:e.globalFindClipboard,description:i.localize(13,null),included:n.isMacintosh},"editor.find.addExtraSpaceOnTop":{type:"boolean",default:e.addExtraSpaceOnTop,description:i.localize(14,null)},"editor.find.loop":{type:"boolean",default:e.loop,description:i.localize(15,null)}})}validate(e){if(!e||"object"!=typeof e)return this.defaultValue;const t=e;return{cursorMoveOnType:d.boolean(t.cursorMoveOnType,this.defaultValue.cursorMoveOnType), +seedSearchStringFromSelection:d.boolean(t.seedSearchStringFromSelection,this.defaultValue.seedSearchStringFromSelection),autoFindInSelection:"boolean"==typeof e.autoFindInSelection?e.autoFindInSelection?"always":"never":g.stringSet(t.autoFindInSelection,this.defaultValue.autoFindInSelection,["never","always","multiline"]),globalFindClipboard:d.boolean(t.globalFindClipboard,this.defaultValue.globalFindClipboard),addExtraSpaceOnTop:d.boolean(t.addExtraSpaceOnTop,this.defaultValue.addExtraSpaceOnTop),loop:d.boolean(t.loop,this.defaultValue.loop)}}}),fixedOverflowWidgets:b(new d(30,"fixedOverflowWidgets",!1)),folding:b(new d(31,"folding",!0,{description:i.localize(143,null)})),foldingStrategy:b(new g(32,"foldingStrategy","auto",["auto","indentation"],{enumDescriptions:[i.localize(144,null),i.localize(145,null)],description:i.localize(146,null)})),foldingHighlight:b(new d(33,"foldingHighlight",!0,{description:i.localize(147,null)})),unfoldOnClickAfterEndOfLine:b(new d(34,"unfoldOnClickAfterEndOfLine",!1,{ +description:i.localize(148,null)})),fontFamily:b(new u(35,"fontFamily",t.EDITOR_FONT_DEFAULTS.fontFamily,{description:i.localize(149,null)})),fontInfo:b(new class extends a{constructor(){super(36)}compute(e,t,i){return e.fontInfo}}),fontLigatures2:b(new f),fontSize:b(new class extends l{constructor(){super(38,"fontSize",t.EDITOR_FONT_DEFAULTS.fontSize,{type:"number",minimum:6,maximum:100,default:t.EDITOR_FONT_DEFAULTS.fontSize,description:i.localize(19,null)})}validate(e){let i=h.float(e,this.defaultValue);return 0===i?t.EDITOR_FONT_DEFAULTS.fontSize:h.clamp(i,6,100)}compute(e,t,i){return e.fontInfo.fontSize}}),fontWeight:b(new _),formatOnPaste:b(new d(40,"formatOnPaste",!1,{description:i.localize(150,null)})),formatOnType:b(new d(41,"formatOnType",!1,{description:i.localize(151,null)})),glyphMargin:b(new d(42,"glyphMargin",!0,{description:i.localize(152,null)})),gotoLocation:b(new class extends r{constructor(){const e={multiple:"peek",multipleDefinitions:"peek",multipleTypeDefinitions:"peek", +multipleDeclarations:"peek",multipleImplementations:"peek",multipleReferences:"peek",alternativeDefinitionCommand:"editor.action.goToReferences",alternativeTypeDefinitionCommand:"editor.action.goToReferences",alternativeDeclarationCommand:"editor.action.goToReferences",alternativeImplementationCommand:"",alternativeReferenceCommand:""},t={type:"string",enum:["peek","gotoAndPeek","goto"],default:e.multiple,enumDescriptions:[i.localize(22,null),i.localize(23,null),i.localize(24,null)]};super(43,"gotoLocation",e,{"editor.gotoLocation.multiple":{deprecationMessage:i.localize(25,null)},"editor.gotoLocation.multipleDefinitions":Object.assign({description:i.localize(26,null)},t),"editor.gotoLocation.multipleTypeDefinitions":Object.assign({description:i.localize(27,null)},t),"editor.gotoLocation.multipleDeclarations":Object.assign({description:i.localize(28,null)},t),"editor.gotoLocation.multipleImplementations":Object.assign({description:i.localize(29,null)},t), +"editor.gotoLocation.multipleReferences":Object.assign({description:i.localize(30,null)},t),"editor.gotoLocation.alternativeDefinitionCommand":{type:"string",default:e.alternativeDefinitionCommand,description:i.localize(31,null)},"editor.gotoLocation.alternativeTypeDefinitionCommand":{type:"string",default:e.alternativeTypeDefinitionCommand,description:i.localize(32,null)},"editor.gotoLocation.alternativeDeclarationCommand":{type:"string",default:e.alternativeDeclarationCommand,description:i.localize(33,null)},"editor.gotoLocation.alternativeImplementationCommand":{type:"string",default:e.alternativeImplementationCommand,description:i.localize(34,null)},"editor.gotoLocation.alternativeReferenceCommand":{type:"string",default:e.alternativeReferenceCommand,description:i.localize(35,null)}})}validate(e){var t,i,n,o,s;if(!e||"object"!=typeof e)return this.defaultValue;const r=e;return{multiple:g.stringSet(r.multiple,this.defaultValue.multiple,["peek","gotoAndPeek","goto"]), +multipleDefinitions:null!==(t=r.multipleDefinitions)&&void 0!==t?t:g.stringSet(r.multipleDefinitions,"peek",["peek","gotoAndPeek","goto"]),multipleTypeDefinitions:null!==(i=r.multipleTypeDefinitions)&&void 0!==i?i:g.stringSet(r.multipleTypeDefinitions,"peek",["peek","gotoAndPeek","goto"]),multipleDeclarations:null!==(n=r.multipleDeclarations)&&void 0!==n?n:g.stringSet(r.multipleDeclarations,"peek",["peek","gotoAndPeek","goto"]),multipleImplementations:null!==(o=r.multipleImplementations)&&void 0!==o?o:g.stringSet(r.multipleImplementations,"peek",["peek","gotoAndPeek","goto"]),multipleReferences:null!==(s=r.multipleReferences)&&void 0!==s?s:g.stringSet(r.multipleReferences,"peek",["peek","gotoAndPeek","goto"]),alternativeDefinitionCommand:u.string(r.alternativeDefinitionCommand,this.defaultValue.alternativeDefinitionCommand),alternativeTypeDefinitionCommand:u.string(r.alternativeTypeDefinitionCommand,this.defaultValue.alternativeTypeDefinitionCommand), +alternativeDeclarationCommand:u.string(r.alternativeDeclarationCommand,this.defaultValue.alternativeDeclarationCommand),alternativeImplementationCommand:u.string(r.alternativeImplementationCommand,this.defaultValue.alternativeImplementationCommand),alternativeReferenceCommand:u.string(r.alternativeReferenceCommand,this.defaultValue.alternativeReferenceCommand)}}}),hideCursorInOverviewRuler:b(new d(44,"hideCursorInOverviewRuler",!1,{description:i.localize(153,null)})),highlightActiveIndentGuide:b(new d(45,"highlightActiveIndentGuide",!0,{description:i.localize(154,null)})),hover:b(new class extends r{constructor(){const e={enabled:!0,delay:300,sticky:!0};super(46,"hover",e,{"editor.hover.enabled":{type:"boolean",default:e.enabled,description:i.localize(36,null)},"editor.hover.delay":{type:"number",default:e.delay,description:i.localize(37,null)},"editor.hover.sticky":{type:"boolean",default:e.sticky,description:i.localize(38,null)}})}validate(e){if(!e||"object"!=typeof e)return this.defaultValue;const t=e +;return{enabled:d.boolean(t.enabled,this.defaultValue.enabled),delay:c.clampedInt(t.delay,this.defaultValue.delay,0,1e4),sticky:d.boolean(t.sticky,this.defaultValue.sticky)}}}),inDiffEditor:b(new d(47,"inDiffEditor",!1)),letterSpacing:b(new h(48,"letterSpacing",t.EDITOR_FONT_DEFAULTS.letterSpacing,e=>h.clamp(e,-5,20),{description:i.localize(155,null)})),lightbulb:b(new class extends r{constructor(){const e={enabled:!0};super(49,"lightbulb",e,{"editor.lightbulb.enabled":{type:"boolean",default:e.enabled,description:i.localize(39,null)}})}validate(e){if(!e||"object"!=typeof e)return this.defaultValue;const t=e;return{enabled:d.boolean(t.enabled,this.defaultValue.enabled)}}}),lineDecorationsWidth:b(new l(50,"lineDecorationsWidth",10)),lineHeight:b(new class extends c{constructor(){super(51,"lineHeight",t.EDITOR_FONT_DEFAULTS.lineHeight,0,150,{description:i.localize(40,null)})}compute(e,t,i){return e.fontInfo.lineHeight}}),lineNumbers:b(new class extends r{constructor(){super(52,"lineNumbers",{renderType:1, +renderFn:null},{type:"string",enum:["off","on","relative","interval"],enumDescriptions:[i.localize(59,null),i.localize(60,null),i.localize(61,null),i.localize(62,null)],default:"on",description:i.localize(63,null)})}validate(e){let t=this.defaultValue.renderType,i=this.defaultValue.renderFn;return void 0!==e&&("function"==typeof e?(t=4,i=e):t="interval"===e?3:"relative"===e?2:"on"===e?1:0),{renderType:t,renderFn:i}}}),lineNumbersMinChars:b(new c(53,"lineNumbersMinChars",5,1,300)),links:b(new d(54,"links",!0,{description:i.localize(156,null)})),matchBrackets:b(new g(55,"matchBrackets","always",["always","near","never"],{description:i.localize(157,null)})),minimap:b(new class extends r{constructor(){const e={enabled:!0,size:"proportional",side:"right",showSlider:"mouseover",renderCharacters:!0,maxColumn:120,scale:1};super(56,"minimap",e,{"editor.minimap.enabled":{type:"boolean",default:e.enabled,description:i.localize(41,null)},"editor.minimap.size":{type:"string",enum:["proportional","fill","fit"], +enumDescriptions:[i.localize(42,null),i.localize(43,null),i.localize(44,null)],default:e.size,description:i.localize(45,null)},"editor.minimap.side":{type:"string",enum:["left","right"],default:e.side,description:i.localize(46,null)},"editor.minimap.showSlider":{type:"string",enum:["always","mouseover"],default:e.showSlider,description:i.localize(47,null)},"editor.minimap.scale":{type:"number",default:e.scale,minimum:1,maximum:3,enum:[1,2,3],description:i.localize(48,null)},"editor.minimap.renderCharacters":{type:"boolean",default:e.renderCharacters,description:i.localize(49,null)},"editor.minimap.maxColumn":{type:"number",default:e.maxColumn,description:i.localize(50,null)}})}validate(e){if(!e||"object"!=typeof e)return this.defaultValue;const t=e;return{enabled:d.boolean(t.enabled,this.defaultValue.enabled),size:g.stringSet(t.size,this.defaultValue.size,["proportional","fill","fit"]),side:g.stringSet(t.side,this.defaultValue.side,["right","left"]), +showSlider:g.stringSet(t.showSlider,this.defaultValue.showSlider,["always","mouseover"]),renderCharacters:d.boolean(t.renderCharacters,this.defaultValue.renderCharacters),scale:c.clampedInt(t.scale,1,1,3),maxColumn:c.clampedInt(t.maxColumn,this.defaultValue.maxColumn,1,1e4)}}}),mouseStyle:b(new g(57,"mouseStyle","text",["text","default","copy"])),mouseWheelScrollSensitivity:b(new h(58,"mouseWheelScrollSensitivity",1,e=>0===e?1:e,{markdownDescription:i.localize(158,null)})),mouseWheelZoom:b(new d(59,"mouseWheelZoom",!1,{markdownDescription:i.localize(159,null)})),multiCursorMergeOverlapping:b(new d(60,"multiCursorMergeOverlapping",!0,{description:i.localize(160,null)})),multiCursorModifier:b(new p(61,"multiCursorModifier","altKey","alt",["ctrlCmd","alt"],(function(e){return"ctrlCmd"===e?n.isMacintosh?"metaKey":"ctrlKey":"altKey"}),{markdownEnumDescriptions:[i.localize(161,null),i.localize(162,null)],markdownDescription:i.localize(163,null)})), +multiCursorPaste:b(new g(62,"multiCursorPaste","spread",["spread","full"],{markdownEnumDescriptions:[i.localize(164,null),i.localize(165,null)],markdownDescription:i.localize(166,null)})),occurrencesHighlight:b(new d(63,"occurrencesHighlight",!0,{description:i.localize(167,null)})),overviewRulerBorder:b(new d(64,"overviewRulerBorder",!0,{description:i.localize(168,null)})),overviewRulerLanes:b(new c(65,"overviewRulerLanes",3,0,3)),padding:b(new class extends r{constructor(){super(66,"padding",{top:0,bottom:0},{"editor.padding.top":{type:"number",default:0,minimum:0,maximum:1e3,description:i.localize(51,null)},"editor.padding.bottom":{type:"number",default:0,minimum:0,maximum:1e3,description:i.localize(52,null)}})}validate(e){if(!e||"object"!=typeof e)return this.defaultValue;const t=e;return{top:c.clampedInt(t.top,0,0,1e3),bottom:c.clampedInt(t.bottom,0,0,1e3)}}}),parameterHints:b(new class extends r{constructor(){const e={enabled:!0,cycle:!1};super(67,"parameterHints",e,{"editor.parameterHints.enabled":{ +type:"boolean",default:e.enabled,description:i.localize(53,null)},"editor.parameterHints.cycle":{type:"boolean",default:e.cycle,description:i.localize(54,null)}})}validate(e){if(!e||"object"!=typeof e)return this.defaultValue;const t=e;return{enabled:d.boolean(t.enabled,this.defaultValue.enabled),cycle:d.boolean(t.cycle,this.defaultValue.cycle)}}}),peekWidgetDefaultFocus:b(new g(68,"peekWidgetDefaultFocus","tree",["tree","editor"],{enumDescriptions:[i.localize(169,null),i.localize(170,null)],description:i.localize(171,null)})),definitionLinkOpensInPeek:b(new d(69,"definitionLinkOpensInPeek",!1,{description:i.localize(172,null)})),quickSuggestions:b(new class extends r{constructor(){const e={other:!0,comments:!1,strings:!1};super(70,"quickSuggestions",e,{anyOf:[{type:"boolean"},{type:"object",properties:{strings:{type:"boolean",default:e.strings,description:i.localize(55,null)},comments:{type:"boolean",default:e.comments,description:i.localize(56,null)},other:{type:"boolean",default:e.other, +description:i.localize(57,null)}}}],default:e,description:i.localize(58,null)}),this.defaultValue=e}validate(e){if("boolean"==typeof e)return e;if(e&&"object"==typeof e){const t=e,i={other:d.boolean(t.other,this.defaultValue.other),comments:d.boolean(t.comments,this.defaultValue.comments),strings:d.boolean(t.strings,this.defaultValue.strings)};return!!(i.other&&i.comments&&i.strings)||!!(i.other||i.comments||i.strings)&&i}return this.defaultValue}}),quickSuggestionsDelay:b(new c(71,"quickSuggestionsDelay",10,0,1073741824,{description:i.localize(173,null)})),readOnly:b(new d(72,"readOnly",!1)),renameOnType:b(new d(73,"renameOnType",!1,{description:i.localize(174,null)})),renderControlCharacters:b(new d(74,"renderControlCharacters",!1,{description:i.localize(175,null)})),renderIndentGuides:b(new d(75,"renderIndentGuides",!0,{description:i.localize(176,null)})),renderFinalNewline:b(new d(76,"renderFinalNewline",!0,{description:i.localize(177,null)})), +renderLineHighlight:b(new g(77,"renderLineHighlight","line",["none","gutter","line","all"],{enumDescriptions:["","","",i.localize(178,null)],description:i.localize(179,null)})),renderLineHighlightOnlyWhenFocus:b(new d(78,"renderLineHighlightOnlyWhenFocus",!1,{description:i.localize(180,null)})),renderValidationDecorations:b(new g(79,"renderValidationDecorations","editable",["editable","on","off"])),renderWhitespace:b(new g(80,"renderWhitespace","selection",["none","boundary","selection","trailing","all"],{enumDescriptions:["",i.localize(181,null),i.localize(182,null),i.localize(183,null),""],description:i.localize(184,null)})),revealHorizontalRightPadding:b(new c(81,"revealHorizontalRightPadding",30,0,1e3)),roundedSelection:b(new d(82,"roundedSelection",!0,{description:i.localize(185,null)})),rulers:b(new class extends r{constructor(){const e=[],t={type:"number",description:i.localize(64,null)};super(83,"rulers",e,{type:"array",items:{anyOf:[t,{type:["object"],properties:{column:t,color:{type:"string", +description:i.localize(65,null),format:"color-hex"}}}]},default:e,description:i.localize(66,null)})}validate(e){if(Array.isArray(e)){let t=[];for(let i of e)if("number"==typeof i)t.push({column:c.clampedInt(i,0,0,1e4),color:null});else if(i&&"object"==typeof i){const e=i;t.push({column:c.clampedInt(e.column,0,0,1e4),color:e.color})}return t.sort((e,t)=>e.column-t.column),t}return this.defaultValue}}),scrollbar:b(new class extends r{constructor(){super(84,"scrollbar",{vertical:1,horizontal:1,arrowSize:11,useShadows:!0,verticalHasArrows:!1,horizontalHasArrows:!1,horizontalScrollbarSize:12,horizontalSliderSize:12,verticalScrollbarSize:14,verticalSliderSize:14,handleMouseWheel:!0,alwaysConsumeMouseWheel:!0})}validate(e){if(!e||"object"!=typeof e)return this.defaultValue;const t=e,i=c.clampedInt(t.horizontalScrollbarSize,this.defaultValue.horizontalScrollbarSize,0,1e3),n=c.clampedInt(t.verticalScrollbarSize,this.defaultValue.verticalScrollbarSize,0,1e3);return{ +arrowSize:c.clampedInt(t.arrowSize,this.defaultValue.arrowSize,0,1e3),vertical:C(t.vertical,this.defaultValue.vertical),horizontal:C(t.horizontal,this.defaultValue.horizontal),useShadows:d.boolean(t.useShadows,this.defaultValue.useShadows),verticalHasArrows:d.boolean(t.verticalHasArrows,this.defaultValue.verticalHasArrows),horizontalHasArrows:d.boolean(t.horizontalHasArrows,this.defaultValue.horizontalHasArrows),handleMouseWheel:d.boolean(t.handleMouseWheel,this.defaultValue.handleMouseWheel),alwaysConsumeMouseWheel:d.boolean(t.alwaysConsumeMouseWheel,this.defaultValue.alwaysConsumeMouseWheel),horizontalScrollbarSize:i,horizontalSliderSize:c.clampedInt(t.horizontalSliderSize,i,0,1e3),verticalScrollbarSize:n,verticalSliderSize:c.clampedInt(t.verticalSliderSize,n,0,1e3)}}}),scrollBeyondLastColumn:b(new c(85,"scrollBeyondLastColumn",5,0,1073741824,{description:i.localize(186,null)})),scrollBeyondLastLine:b(new d(86,"scrollBeyondLastLine",!0,{description:i.localize(187,null)})), +scrollPredominantAxis:b(new d(87,"scrollPredominantAxis",!0,{description:i.localize(188,null)})),selectionClipboard:b(new d(88,"selectionClipboard",!0,{description:i.localize(189,null),included:n.isLinux})),selectionHighlight:b(new d(89,"selectionHighlight",!0,{description:i.localize(190,null)})),selectOnLineNumbers:b(new d(90,"selectOnLineNumbers",!0)),showFoldingControls:b(new g(91,"showFoldingControls","mouseover",["always","mouseover"],{enumDescriptions:[i.localize(191,null),i.localize(192,null)],description:i.localize(193,null)})),showUnused:b(new d(92,"showUnused",!0,{description:i.localize(194,null)})),showDeprecated:b(new d(113,"showDeprecated",!0,{description:i.localize(195,null)})),snippetSuggestions:b(new g(93,"snippetSuggestions","inline",["top","bottom","inline","none"],{enumDescriptions:[i.localize(196,null),i.localize(197,null),i.localize(198,null),i.localize(199,null)],description:i.localize(200,null)})),smoothScrolling:b(new d(94,"smoothScrolling",!1,{description:i.localize(201,null)})), +stopRenderingLineAfter:b(new c(95,"stopRenderingLineAfter",1e4,-1,1073741824)),suggest:b(new class extends r{constructor(){const e={insertMode:"insert",filterGraceful:!0,snippetsPreventQuickSuggestions:!0,localityBonus:!1,shareSuggestSelections:!1,showIcons:!0,maxVisibleSuggestions:12,showMethods:!0,showFunctions:!0,showConstructors:!0,showFields:!0,showVariables:!0,showClasses:!0,showStructs:!0,showInterfaces:!0,showModules:!0,showProperties:!0,showEvents:!0,showOperators:!0,showUnits:!0,showValues:!0,showConstants:!0,showEnums:!0,showEnumMembers:!0,showKeywords:!0,showWords:!0,showColors:!0,showFiles:!0,showReferences:!0,showFolders:!0,showTypeParameters:!0,showSnippets:!0,showUsers:!0,showIssues:!0,statusBar:{visible:!1}};super(96,"suggest",e,{"editor.suggest.insertMode":{type:"string",enum:["insert","replace"],enumDescriptions:[i.localize(67,null),i.localize(68,null)],default:e.insertMode,description:i.localize(69,null)},"editor.suggest.filterGraceful":{type:"boolean",default:e.filterGraceful, +description:i.localize(70,null)},"editor.suggest.localityBonus":{type:"boolean",default:e.localityBonus,description:i.localize(71,null)},"editor.suggest.shareSuggestSelections":{type:"boolean",default:e.shareSuggestSelections,markdownDescription:i.localize(72,null)},"editor.suggest.snippetsPreventQuickSuggestions":{type:"boolean",default:e.snippetsPreventQuickSuggestions,description:i.localize(73,null)},"editor.suggest.showIcons":{type:"boolean",default:e.showIcons,description:i.localize(74,null)},"editor.suggest.maxVisibleSuggestions":{type:"number",default:e.maxVisibleSuggestions,minimum:1,maximum:15,description:i.localize(75,null)},"editor.suggest.filteredTypes":{type:"object",deprecationMessage:i.localize(76,null)},"editor.suggest.showMethods":{type:"boolean",default:!0,markdownDescription:i.localize(77,null)},"editor.suggest.showFunctions":{type:"boolean",default:!0,markdownDescription:i.localize(78,null)},"editor.suggest.showConstructors":{type:"boolean",default:!0, +markdownDescription:i.localize(79,null)},"editor.suggest.showFields":{type:"boolean",default:!0,markdownDescription:i.localize(80,null)},"editor.suggest.showVariables":{type:"boolean",default:!0,markdownDescription:i.localize(81,null)},"editor.suggest.showClasses":{type:"boolean",default:!0,markdownDescription:i.localize(82,null)},"editor.suggest.showStructs":{type:"boolean",default:!0,markdownDescription:i.localize(83,null)},"editor.suggest.showInterfaces":{type:"boolean",default:!0,markdownDescription:i.localize(84,null)},"editor.suggest.showModules":{type:"boolean",default:!0,markdownDescription:i.localize(85,null)},"editor.suggest.showProperties":{type:"boolean",default:!0,markdownDescription:i.localize(86,null)},"editor.suggest.showEvents":{type:"boolean",default:!0,markdownDescription:i.localize(87,null)},"editor.suggest.showOperators":{type:"boolean",default:!0,markdownDescription:i.localize(88,null)},"editor.suggest.showUnits":{type:"boolean",default:!0,markdownDescription:i.localize(89,null)}, +"editor.suggest.showValues":{type:"boolean",default:!0,markdownDescription:i.localize(90,null)},"editor.suggest.showConstants":{type:"boolean",default:!0,markdownDescription:i.localize(91,null)},"editor.suggest.showEnums":{type:"boolean",default:!0,markdownDescription:i.localize(92,null)},"editor.suggest.showEnumMembers":{type:"boolean",default:!0,markdownDescription:i.localize(93,null)},"editor.suggest.showKeywords":{type:"boolean",default:!0,markdownDescription:i.localize(94,null)},"editor.suggest.showWords":{type:"boolean",default:!0,markdownDescription:i.localize(95,null)},"editor.suggest.showColors":{type:"boolean",default:!0,markdownDescription:i.localize(96,null)},"editor.suggest.showFiles":{type:"boolean",default:!0,markdownDescription:i.localize(97,null)},"editor.suggest.showReferences":{type:"boolean",default:!0,markdownDescription:i.localize(98,null)},"editor.suggest.showCustomcolors":{type:"boolean",default:!0,markdownDescription:i.localize(99,null)},"editor.suggest.showFolders":{type:"boolean", +default:!0,markdownDescription:i.localize(100,null)},"editor.suggest.showTypeParameters":{type:"boolean",default:!0,markdownDescription:i.localize(101,null)},"editor.suggest.showSnippets":{type:"boolean",default:!0,markdownDescription:i.localize(102,null)},"editor.suggest.showUsers":{type:"boolean",default:!0,markdownDescription:i.localize(103,null)},"editor.suggest.showIssues":{type:"boolean",default:!0,markdownDescription:i.localize(104,null)},"editor.suggest.statusBar.visible":{type:"boolean",default:!1,markdownDescription:i.localize(105,null)}})}validate(e){var t;if(!e||"object"!=typeof e)return this.defaultValue;const i=e;return{insertMode:g.stringSet(i.insertMode,this.defaultValue.insertMode,["insert","replace"]),filterGraceful:d.boolean(i.filterGraceful,this.defaultValue.filterGraceful),snippetsPreventQuickSuggestions:d.boolean(i.snippetsPreventQuickSuggestions,this.defaultValue.filterGraceful),localityBonus:d.boolean(i.localityBonus,this.defaultValue.localityBonus), +shareSuggestSelections:d.boolean(i.shareSuggestSelections,this.defaultValue.shareSuggestSelections),showIcons:d.boolean(i.showIcons,this.defaultValue.showIcons),maxVisibleSuggestions:c.clampedInt(i.maxVisibleSuggestions,this.defaultValue.maxVisibleSuggestions,1,15),showMethods:d.boolean(i.showMethods,this.defaultValue.showMethods),showFunctions:d.boolean(i.showFunctions,this.defaultValue.showFunctions),showConstructors:d.boolean(i.showConstructors,this.defaultValue.showConstructors),showFields:d.boolean(i.showFields,this.defaultValue.showFields),showVariables:d.boolean(i.showVariables,this.defaultValue.showVariables),showClasses:d.boolean(i.showClasses,this.defaultValue.showClasses),showStructs:d.boolean(i.showStructs,this.defaultValue.showStructs),showInterfaces:d.boolean(i.showInterfaces,this.defaultValue.showInterfaces),showModules:d.boolean(i.showModules,this.defaultValue.showModules),showProperties:d.boolean(i.showProperties,this.defaultValue.showProperties), +showEvents:d.boolean(i.showEvents,this.defaultValue.showEvents),showOperators:d.boolean(i.showOperators,this.defaultValue.showOperators),showUnits:d.boolean(i.showUnits,this.defaultValue.showUnits),showValues:d.boolean(i.showValues,this.defaultValue.showValues),showConstants:d.boolean(i.showConstants,this.defaultValue.showConstants),showEnums:d.boolean(i.showEnums,this.defaultValue.showEnums),showEnumMembers:d.boolean(i.showEnumMembers,this.defaultValue.showEnumMembers),showKeywords:d.boolean(i.showKeywords,this.defaultValue.showKeywords),showWords:d.boolean(i.showWords,this.defaultValue.showWords),showColors:d.boolean(i.showColors,this.defaultValue.showColors),showFiles:d.boolean(i.showFiles,this.defaultValue.showFiles),showReferences:d.boolean(i.showReferences,this.defaultValue.showReferences),showFolders:d.boolean(i.showFolders,this.defaultValue.showFolders),showTypeParameters:d.boolean(i.showTypeParameters,this.defaultValue.showTypeParameters), +showSnippets:d.boolean(i.showSnippets,this.defaultValue.showSnippets),showUsers:d.boolean(i.showUsers,this.defaultValue.showUsers),showIssues:d.boolean(i.showIssues,this.defaultValue.showIssues),statusBar:{visible:d.boolean(null===(t=i.statusBar)||void 0===t?void 0:t.visible,!!this.defaultValue.statusBar.visible)}}}}),suggestFontSize:b(new c(97,"suggestFontSize",0,0,1e3,{markdownDescription:i.localize(202,null)})),suggestLineHeight:b(new c(98,"suggestLineHeight",0,0,1e3,{markdownDescription:i.localize(203,null)})),suggestOnTriggerCharacters:b(new d(99,"suggestOnTriggerCharacters",!0,{description:i.localize(204,null)})),suggestSelection:b(new g(100,"suggestSelection","recentlyUsed",["first","recentlyUsed","recentlyUsedByPrefix"],{markdownEnumDescriptions:[i.localize(205,null),i.localize(206,null),i.localize(207,null)],description:i.localize(208,null)})),tabCompletion:b(new g(101,"tabCompletion","off",["on","off","onlySnippets"],{enumDescriptions:[i.localize(209,null),i.localize(210,null),i.localize(211,null)], +description:i.localize(212,null)})),tabIndex:b(new c(102,"tabIndex",0,-1,1073741824)),unusualLineTerminators:b(new g(103,"unusualLineTerminators","prompt",["off","prompt","auto"],{enumDescriptions:[i.localize(213,null),i.localize(214,null),i.localize(215,null)],description:i.localize(216,null)})),useTabStops:b(new d(104,"useTabStops",!0,{description:i.localize(217,null)})),wordSeparators:b(new u(105,"wordSeparators",o.USUAL_WORD_SEPARATORS,{description:i.localize(218,null)})),wordWrap:b(new g(106,"wordWrap","off",["off","on","wordWrapColumn","bounded"],{markdownEnumDescriptions:[i.localize(219,null),i.localize(220,null),i.localize(221,null),i.localize(222,null)],description:i.localize(223,null)})),wordWrapBreakAfterCharacters:b(new u(107,"wordWrapBreakAfterCharacters"," \t})]?|/&.,;¢°′″‰℃、。。、¢,.:;?!%・・ゝゞヽヾーァィゥェォッャュョヮヵヶぁぃぅぇぉっゃゅょゎゕゖㇰㇱㇲㇳㇴㇵㇶㇷㇸㇹㇺㇻㇼㇽㇾㇿ々〻ァィゥェォャュョッー”〉》」』】〕)]}」")),wordWrapBreakBeforeCharacters:b(new u(108,"wordWrapBreakBeforeCharacters","([{‘“〈《「『【〔([{「£¥$£¥++")), +wordWrapColumn:b(new c(109,"wordWrapColumn",80,1,1073741824,{markdownDescription:i.localize(224,null)})),wordWrapMinified:b(new d(110,"wordWrapMinified",!0)),wrappingIndent:b(new p(111,"wrappingIndent",1,"same",["none","same","indent","deepIndent"],(function(e){switch(e){case"none":return 0;case"same":return 1;case"indent":return 2;case"deepIndent":return 3}}),{enumDescriptions:[i.localize(225,null),i.localize(226,null),i.localize(227,null),i.localize(228,null)],description:i.localize(229,null)})),wrappingStrategy:b(new g(112,"wrappingStrategy","simple",["simple","advanced"],{enumDescriptions:[i.localize(230,null),i.localize(231,null)],description:i.localize(232,null)})),editorClassName:b(new class extends a{constructor(){super(114,[57,27])}compute(e,t,i){const n=["monaco-editor"];return t.get(27)&&n.push(t.get(27)),e.extraEditorClassName&&n.push(e.extraEditorClassName),"default"===t.get(57)?n.push("mouse-default"):"copy"===t.get(57)&&n.push("mouse-copy"),t.get(92)&&n.push("showUnused"), +t.get(113)&&n.push("showDeprecated"),n.join(" ")}}),pixelRatio:b(new class extends a{constructor(){super(115)}compute(e,t,i){return e.pixelRatio}}),tabFocusMode:b(new class extends a{constructor(){super(116,[72])}compute(e,t,i){return!!t.get(72)||e.tabFocusMode}}),layoutInfo:b(new v),wrappingInfo:b(new class extends a{constructor(){super(118,[117])}compute(e,t,i){const n=t.get(117);return{isDominatedByLongLines:e.isDominatedByLongLines,isWordWrapMinified:n.isWordWrapMinified,isViewportWrapping:n.isViewportWrapping,wrappingColumn:n.wrappingColumn}}})}})),define(t[440],i([0,1,13,3,70,38]),(function(e,t,i,n,o,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ViewModelDecorations=void 0;t.ViewModelDecorations=class{constructor(e,t,i,n,o){this.editorId=e,this.model=t,this.configuration=i,this._linesCollection=n,this._coordinatesConverter=o,this._decorationsCache=Object.create(null),this._cachedModelDecorationsResolver=null,this._cachedModelDecorationsResolverViewRange=null} +_clearCachedModelDecorationsResolver(){this._cachedModelDecorationsResolver=null,this._cachedModelDecorationsResolverViewRange=null}dispose(){this._decorationsCache=Object.create(null),this._clearCachedModelDecorationsResolver()}reset(){this._decorationsCache=Object.create(null),this._clearCachedModelDecorationsResolver()}onModelDecorationsChanged(){this._decorationsCache=Object.create(null),this._clearCachedModelDecorationsResolver()}onLineMappingChanged(){this._decorationsCache=Object.create(null),this._clearCachedModelDecorationsResolver()}_getOrCreateViewModelDecoration(e){const t=e.id;let s=this._decorationsCache[t];if(!s){const r=e.range,a=e.options;let l;if(a.isWholeLine){const e=this._coordinatesConverter.convertModelPositionToViewPosition(new i.Position(r.startLineNumber,1)),t=this._coordinatesConverter.convertModelPositionToViewPosition(new i.Position(r.endLineNumber,this.model.getLineMaxColumn(r.endLineNumber)));l=new n.Range(e.lineNumber,e.column,t.lineNumber,t.column) +}else l=this._coordinatesConverter.convertModelRangeToViewRange(r);s=new o.ViewModelDecoration(l,a),this._decorationsCache[t]=s}return s}getDecorationsViewportData(e){let t=null!==this._cachedModelDecorationsResolver;return(t=t&&e.equalsRange(this._cachedModelDecorationsResolverViewRange))||(this._cachedModelDecorationsResolver=this._getDecorationsViewportData(e),this._cachedModelDecorationsResolverViewRange=e),this._cachedModelDecorationsResolver}_getDecorationsViewportData(e){const t=this._linesCollection.getDecorationsInRange(e,this.editorId,s.filterValidationDecorations(this.configuration.options)),i=e.startLineNumber,r=e.endLineNumber;let a=[],l=0,d=[];for(let e=i;e<=r;e++)d[e-i]=[];for(let e=0,s=t.length;e0&&(this.changes=r.compressConsecutiveTextChanges(this.changes,t)),this.afterEOL=i,this.afterVersionId=n,this.afterCursorState=o}static _writeSelectionsSize(e){return 4+16*(e?e.length:0)}static _writeSelections(e,t,i){if(a.writeUInt32BE(e,t?t.length:0,i),i+=4,t)for(const n of t)a.writeUInt32BE(e,n.selectionStartLineNumber,i),i+=4,a.writeUInt32BE(e,n.selectionStartColumn,i),i+=4,a.writeUInt32BE(e,n.positionLineNumber,i),i+=4,a.writeUInt32BE(e,n.positionColumn,i),i+=4;return i}static _readSelections(e,t,i){const n=a.readUInt32BE(e,t);t+=4;for(let s=0;se.toString()).join(", ")}matchesResource(e){return(s.URI.isUri(this.model)?this.model:this.model.uri).toString()===e.toString()}setModel(e){this.model=e}canAppend(e){return this.model===e&&this._data instanceof d}append(e,t,i,n,o){this._data instanceof d&&this._data.append(e,t,i,n,o)}close(){this._data instanceof d&&(this._data=this._data.serialize())}undo(){if(s.URI.isUri(this.model))throw new Error("Invalid SingleModelEditStackElement");this._data instanceof d&&(this._data=this._data.serialize());const e=d.deserialize(this._data);this.model._applyUndo(e.changes,e.beforeEOL,e.beforeVersionId,e.beforeCursorState)}redo(){if(s.URI.isUri(this.model))throw new Error("Invalid SingleModelEditStackElement");this._data instanceof d&&(this._data=this._data.serialize());const e=d.deserialize(this._data);this.model._applyRedo(e.changes,e.afterEOL,e.afterVersionId,e.afterCursorState)}}t.SingleModelEditStackElement=c;class h{ +constructor(e,t){this.type=1,this.label=e,this._isOpen=!0,this._editStackElementsArr=t.slice(0),this._editStackElementsMap=new Map;for(const e of this._editStackElementsArr){const t=l(e.resource);this._editStackElementsMap.set(t,e)}this._delegate=null}get resources(){return this._editStackElementsArr.map(e=>e.resource)}prepareUndoRedo(){if(this._delegate)return this._delegate.prepareUndoRedo(this)}matchesResource(e){const t=l(e);return this._editStackElementsMap.has(t)}setModel(e){const t=l(s.URI.isUri(e)?e:e.uri);this._editStackElementsMap.has(t)&&this._editStackElementsMap.get(t).setModel(e)}canAppend(e){if(!this._isOpen)return!1;const t=l(e.uri);if(this._editStackElementsMap.has(t)){return this._editStackElementsMap.get(t).canAppend(e)}return!1}append(e,t,i,n,o){const s=l(e.uri);this._editStackElementsMap.get(s).append(e,t,i,n,o)}close(){this._isOpen=!1}undo(){this._isOpen=!1;for(const e of this._editStackElementsArr)e.undo()}redo(){for(const e of this._editStackElementsArr)e.redo()}split(){ +return this._editStackElementsArr}}function u(e){return"\n"===e.getEOL()?0:1}function g(e){return!!e&&(e instanceof c||e instanceof h)}t.MultiModelEditStackElement=h,t.isEditStackElement=g;class p{constructor(e,t){this._model=e,this._undoRedoService=t}pushStackElement(){const e=this._undoRedoService.getLastElement(this._model.uri);g(e)&&e.close()}clear(){this._undoRedoService.removeElements(this._model.uri)}_getOrCreateEditStackElement(e){const t=this._undoRedoService.getLastElement(this._model.uri);if(g(t)&&t.canAppend(this._model))return t;const i=new c(this._model,e);return this._undoRedoService.pushElement(i),i}pushEOL(e){const t=this._getOrCreateEditStackElement(null);this._model.setEOL(e),t.append(this._model,[],u(this._model),this._model.getAlternativeVersionId(),null)}pushEditOperation(e,t,i){const n=this._getOrCreateEditStackElement(e),o=this._model.applyEdits(t,!0),s=p._computeCursorState(i,o),r=o.map((e,t)=>({index:t,textChange:e.textChange})) +;return r.sort((e,t)=>e.textChange.oldPosition===t.textChange.oldPosition?e.index-t.index:e.textChange.oldPosition-t.textChange.oldPosition),n.append(this._model,r.map(e=>e.textChange),u(this._model),this._model.getAlternativeVersionId(),s),s}static _computeCursorState(e,t){try{return e?e(t):null}catch(e){return n.onUnexpectedError(e),null}}}t.EditStack=p})),define(t[442],i([5,6]),(function(e,t){return e.create("vs/editor/common/modes/modesRegistry",t)})),define(t[443],i([5,6]),(function(e,t){return e.create("vs/editor/common/standaloneStrings",t)})),define(t[61],i([0,1,443]),(function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SimpleServicesNLS=t.ToggleHighContrastNLS=t.StandaloneCodeEditorNLS=t.QuickOutlineNLS=t.QuickCommandNLS=t.QuickHelpNLS=t.GoToLineNLS=t.InspectTokensNLS=t.AccessibilityHelpNLS=void 0,function(e){e.noSelection=i.localize(0,null),e.singleSelectionRange=i.localize(1,null),e.singleSelection=i.localize(2,null),e.multiSelectionRange=i.localize(3,null), +e.multiSelection=i.localize(4,null),e.emergencyConfOn=i.localize(5,null),e.openingDocs=i.localize(6,null),e.readonlyDiffEditor=i.localize(7,null),e.editableDiffEditor=i.localize(8,null),e.readonlyEditor=i.localize(9,null),e.editableEditor=i.localize(10,null),e.changeConfigToOnMac=i.localize(11,null),e.changeConfigToOnWinLinux=i.localize(12,null),e.auto_on=i.localize(13,null),e.auto_off=i.localize(14,null),e.tabFocusModeOnMsg=i.localize(15,null),e.tabFocusModeOnMsgNoKb=i.localize(16,null),e.tabFocusModeOffMsg=i.localize(17,null),e.tabFocusModeOffMsgNoKb=i.localize(18,null),e.openDocMac=i.localize(19,null),e.openDocWinLinux=i.localize(20,null),e.outroMsg=i.localize(21,null),e.showAccessibilityHelpAction=i.localize(22,null)}(t.AccessibilityHelpNLS||(t.AccessibilityHelpNLS={})),function(e){e.inspectTokensAction=i.localize(23,null)}(t.InspectTokensNLS||(t.InspectTokensNLS={})),function(e){e.gotoLineActionLabel=i.localize(24,null)}(t.GoToLineNLS||(t.GoToLineNLS={})),function(e){ +e.helpQuickAccessActionLabel=i.localize(25,null)}(t.QuickHelpNLS||(t.QuickHelpNLS={})),function(e){e.quickCommandActionLabel=i.localize(26,null),e.quickCommandHelp=i.localize(27,null)}(t.QuickCommandNLS||(t.QuickCommandNLS={})),function(e){e.quickOutlineActionLabel=i.localize(28,null),e.quickOutlineByCategoryActionLabel=i.localize(29,null)}(t.QuickOutlineNLS||(t.QuickOutlineNLS={})),function(e){e.editorViewAccessibleLabel=i.localize(30,null),e.accessibilityHelpMessage=i.localize(31,null)}(t.StandaloneCodeEditorNLS||(t.StandaloneCodeEditorNLS={})),function(e){e.toggleHighContrast=i.localize(32,null)}(t.ToggleHighContrastNLS||(t.ToggleHighContrastNLS={})),function(e){e.bulkEditServiceSummary=i.localize(33,null)}(t.SimpleServicesNLS||(t.SimpleServicesNLS={}))})),define(t[444],i([5,6]),(function(e,t){return e.create("vs/editor/common/view/editorColorRegistry",t)})),define(t[445],i([5,6]),(function(e,t){return e.create("vs/editor/contrib/anchorSelect/anchorSelect",t)})),define(t[446],i([5,6]),(function(e,t){ +return e.create("vs/editor/contrib/bracketMatching/bracketMatching",t)})),define(t[447],i([5,6]),(function(e,t){return e.create("vs/editor/contrib/caretOperations/caretOperations",t)})),define(t[448],i([5,6]),(function(e,t){return e.create("vs/editor/contrib/caretOperations/transpose",t)})),define(t[449],i([5,6]),(function(e,t){return e.create("vs/editor/contrib/clipboard/clipboard",t)})),define(t[450],i([5,6]),(function(e,t){return e.create("vs/editor/contrib/codeAction/codeActionCommands",t)})),define(t[451],i([5,6]),(function(e,t){return e.create("vs/editor/contrib/codeAction/lightBulbWidget",t)})),define(t[452],i([5,6]),(function(e,t){return e.create("vs/editor/contrib/codelens/codelensController",t)})),define(t[453],i([5,6]),(function(e,t){return e.create("vs/editor/contrib/comment/comment",t)})),define(t[454],i([5,6]),(function(e,t){return e.create("vs/editor/contrib/contextmenu/contextmenu",t)})),define(t[455],i([5,6]),(function(e,t){return e.create("vs/editor/contrib/cursorUndo/cursorUndo",t)})), +define(t[456],i([5,6]),(function(e,t){return e.create("vs/editor/contrib/documentSymbols/outlineTree",t)})),define(t[457],i([5,6]),(function(e,t){return e.create("vs/editor/contrib/find/findController",t)})),define(t[458],i([5,6]),(function(e,t){return e.create("vs/editor/contrib/find/findWidget",t)})),define(t[459],i([5,6]),(function(e,t){return e.create("vs/editor/contrib/folding/folding",t)})),define(t[460],i([5,6]),(function(e,t){return e.create("vs/editor/contrib/fontZoom/fontZoom",t)})),define(t[461],i([5,6]),(function(e,t){return e.create("vs/editor/contrib/format/format",t)})),define(t[462],i([5,6]),(function(e,t){return e.create("vs/editor/contrib/format/formatActions",t)})),define(t[463],i([5,6]),(function(e,t){return e.create("vs/editor/contrib/gotoError/gotoError",t)})),define(t[464],i([5,6]),(function(e,t){return e.create("vs/editor/contrib/gotoError/gotoErrorWidget",t)})),define(t[465],i([5,6]),(function(e,t){return e.create("vs/editor/contrib/gotoSymbol/goToCommands",t)})), +define(t[466],i([5,6]),(function(e,t){return e.create("vs/editor/contrib/gotoSymbol/link/goToDefinitionAtPosition",t)})),define(t[467],i([5,6]),(function(e,t){return e.create("vs/editor/contrib/gotoSymbol/peek/referencesController",t)})),define(t[468],i([5,6]),(function(e,t){return e.create("vs/editor/contrib/gotoSymbol/peek/referencesTree",t)})),define(t[469],i([5,6]),(function(e,t){return e.create("vs/editor/contrib/gotoSymbol/peek/referencesWidget",t)})),define(t[470],i([5,6]),(function(e,t){return e.create("vs/editor/contrib/gotoSymbol/referencesModel",t)})),define(t[126],i([0,1,470,4,41,2,8,97,3,59,12]),(function(e,t,i,n,o,s,a,l,d,c,h){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ReferencesModel=t.FileReferences=t.FilePreview=t.OneReference=void 0;class u{constructor(e,t,i,n,o){this.isProviderFirst=e,this.parent=t,this.uri=i,this._range=n,this._rangeCallback=o,this.id=l.defaultGenerator.nextId()}get range(){return this._range}set range(e){this._range=e,this._rangeCallback(this)} +get ariaMessage(){return i.localize(0,null,o.basename(this.uri),this.range.startLineNumber,this.range.startColumn)}}t.OneReference=u;class g{constructor(e){this._modelReference=e}dispose(){this._modelReference.dispose()}preview(e,t=8){const i=this._modelReference.object.textEditorModel;if(!i)return;const{startLineNumber:n,startColumn:o,endLineNumber:s,endColumn:r}=e,a=i.getWordUntilPosition({lineNumber:n,column:o-t}),l=new d.Range(n,a.startColumn,n,o),c=new d.Range(s,r,s,1073741824),h=i.getValueInRange(l).replace(/^\s+/,""),u=i.getValueInRange(e);return{value:h+u+i.getValueInRange(c).replace(/\s+$/,""),highlight:{start:h.length,end:h.length+u.length}}}}t.FilePreview=g;class p{constructor(e,t){this.parent=e,this.uri=t,this.children=[],this._previews=new c.ResourceMap}dispose(){s.dispose(this._previews.values()),this._previews.clear()}getPreview(e){return this._previews.get(e.uri)}get ariaMessage(){const e=this.children.length +;return 1===e?i.localize(1,null,o.basename(this.uri),this.uri.fsPath):i.localize(2,null,e,o.basename(this.uri),this.uri.fsPath)}resolve(e){return r(this,void 0,void 0,(function*(){if(0!==this._previews.size)return this;for(let t of this.children)if(!this._previews.has(t.uri))try{const i=yield e.createModelReference(t.uri);this._previews.set(t.uri,new g(i))}catch(e){h.onUnexpectedError(e)}return this}))}}t.FileReferences=p;class m{constructor(e,t){this._disposables=new s.DisposableStore,this.groups=[],this.references=[],this._onDidChangeReferenceRange=new n.Emitter,this.onDidChangeReferenceRange=this._onDidChangeReferenceRange.event,this._links=e,this._title=t;const[i]=e;let r;e.sort(m._compareReferences);for(let t of e)if(r&&o.extUri.isEqual(r.uri,t.uri,!0)||(r=new p(this,t.uri),this.groups.push(r)),0===r.children.length||0!==m._compareReferences(t,r.children[r.children.length-1])){const e=new u(i===t,r,t.uri,t.targetSelectionRange||t.range,e=>this._onDidChangeReferenceRange.fire(e));this.references.push(e), +r.children.push(e)}}dispose(){s.dispose(this.groups),this._disposables.dispose(),this._onDidChangeReferenceRange.dispose(),this.groups.length=0}clone(){return new m(this._links,this._title)}get title(){return this._title}get isEmpty(){return 0===this.groups.length}get ariaMessage(){return this.isEmpty?i.localize(3,null):1===this.references.length?i.localize(4,null,this.references[0].uri.fsPath):1===this.groups.length?i.localize(5,null,this.references.length,this.groups[0].uri.fsPath):i.localize(6,null,this.references.length,this.groups.length)}nextOrPreviousReference(e,t){let{parent:i}=e,n=i.children.indexOf(e),o=i.children.length,s=i.parent.groups.length;return 1===s||t&&n+10?(n=t?(n+1)%o:(n+o-1)%o,i.children[n]):(n=i.parent.groups.indexOf(i),t?(n=(n+1)%s,i.parent.groups[n].children[0]):(n=(n+s-1)%s,i.parent.groups[n].children[i.parent.groups[n].children.length-1]))}nearestReference(e,t){const i=this.references.map((i,n)=>({idx:n,prefixLen:a.commonPrefixLength(i.uri.toString(),e.toString()), +offsetDist:100*Math.abs(i.range.startLineNumber-t.lineNumber)+Math.abs(i.range.startColumn-t.column)})).sort((e,t)=>e.prefixLen>t.prefixLen?-1:e.prefixLent.offsetDist?1:0)[0];if(i)return this.references[i.idx]}referenceAt(e,t){for(const i of this.references)if(i.uri.toString()===e.toString()&&d.Range.containsPosition(i.range,t))return i}firstReference(){for(const e of this.references)if(e.isProviderFirst)return e;return this.references[0]}static _compareReferences(e,t){return o.extUri.compare(e.uri,t.uri)||d.Range.compareRangesUsingStarts(e.range,t.range)}}t.ReferencesModel=m})),define(t[471],i([5,6]),(function(e,t){return e.create("vs/editor/contrib/gotoSymbol/symbolNavigation",t)})),define(t[472],i([5,6]),(function(e,t){return e.create("vs/editor/contrib/hover/hover",t)})),define(t[473],i([5,6]),(function(e,t){return e.create("vs/editor/contrib/hover/modesContentHover",t)})),define(t[474],i([5,6]),(function(e,t){ +return e.create("vs/editor/contrib/inPlaceReplace/inPlaceReplace",t)})),define(t[475],i([5,6]),(function(e,t){return e.create("vs/editor/contrib/indentation/indentation",t)})),define(t[476],i([5,6]),(function(e,t){return e.create("vs/editor/contrib/linesOperations/linesOperations",t)})),define(t[477],i([5,6]),(function(e,t){return e.create("vs/editor/contrib/links/links",t)})),define(t[478],i([5,6]),(function(e,t){return e.create("vs/editor/contrib/message/messageController",t)})),define(t[479],i([5,6]),(function(e,t){return e.create("vs/editor/contrib/multicursor/multicursor",t)})),define(t[480],i([5,6]),(function(e,t){return e.create("vs/editor/contrib/parameterHints/parameterHints",t)})),define(t[481],i([5,6]),(function(e,t){return e.create("vs/editor/contrib/parameterHints/parameterHintsWidget",t)})),define(t[482],i([5,6]),(function(e,t){return e.create("vs/editor/contrib/peekView/peekView",t)})),define(t[483],i([5,6]),(function(e,t){return e.create("vs/editor/contrib/quickAccess/gotoLineQuickAccess",t) +})),define(t[484],i([5,6]),(function(e,t){return e.create("vs/editor/contrib/quickAccess/gotoSymbolQuickAccess",t)})),define(t[485],i([5,6]),(function(e,t){return e.create("vs/editor/contrib/rename/onTypeRename",t)})),define(t[486],i([5,6]),(function(e,t){return e.create("vs/editor/contrib/rename/rename",t)})),define(t[487],i([5,6]),(function(e,t){return e.create("vs/editor/contrib/rename/renameInputField",t)})),define(t[488],i([5,6]),(function(e,t){return e.create("vs/editor/contrib/smartSelect/smartSelect",t)})),define(t[489],i([5,6]),(function(e,t){return e.create("vs/editor/contrib/snippet/snippetVariables",t)})),define(t[490],i([5,6]),(function(e,t){return e.create("vs/editor/contrib/suggest/suggestController",t)})),define(t[491],i([5,6]),(function(e,t){return e.create("vs/editor/contrib/suggest/suggestWidget",t)})),define(t[492],i([5,6]),(function(e,t){return e.create("vs/editor/contrib/toggleTabFocusMode/toggleTabFocusMode",t)})),define(t[493],i([5,6]),(function(e,t){ +return e.create("vs/editor/contrib/tokenization/tokenization",t)})),define(t[494],i([5,6]),(function(e,t){return e.create("vs/editor/contrib/unusualLineTerminators/unusualLineTerminators",t)})),define(t[495],i([5,6]),(function(e,t){return e.create("vs/editor/contrib/wordHighlighter/wordHighlighter",t)})),define(t[496],i([5,6]),(function(e,t){return e.create("vs/platform/actions/browser/menuEntryActionViewItem",t)})),define(t[497],i([5,6]),(function(e,t){return e.create("vs/platform/configuration/common/configurationRegistry",t)})),define(t[498],i([5,6]),(function(e,t){return e.create("vs/platform/keybinding/common/abstractKeybindingService",t)})),define(t[499],i([5,6]),(function(e,t){return e.create("vs/platform/list/browser/listService",t)})),define(t[500],i([5,6]),(function(e,t){return e.create("vs/platform/markers/common/markers",t)})),define(t[501],i([5,6]),(function(e,t){return e.create("vs/platform/quickinput/browser/commandsQuickAccess",t)})),define(t[502],i([5,6]),(function(e,t){ +return e.create("vs/platform/quickinput/browser/helpQuickAccess",t)})),define(t[503],i([5,6]),(function(e,t){return e.create("vs/platform/theme/common/colorRegistry",t)})),define(t[504],i([5,6]),(function(e,t){return e.create("vs/platform/undoRedo/common/undoRedoService",t)})),define(t[505],i([0,1,7]),(function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BrowserClipboardService=void 0;t.BrowserClipboardService=class{constructor(){this.mapTextToType=new Map,this.findText=""}writeText(e,t){return r(this,void 0,void 0,(function*(){if(t)return void this.mapTextToType.set(t,e);try{return yield navigator.clipboard.writeText(e)}catch(e){console.error(e)}const n=document.activeElement,o=document.body.appendChild(i.$("textarea",{"aria-hidden":!0}));o.style.height="1px",o.style.width="1px",o.style.position="absolute",o.value=e,o.focus(),o.select(),document.execCommand("copy"),n instanceof HTMLElement&&n.focus(),document.body.removeChild(o)}))}readText(e){ +return r(this,void 0,void 0,(function*(){if(e)return this.mapTextToType.get(e)||"";try{return yield navigator.clipboard.readText()}catch(e){return console.error(e),""}}))}readFindText(){return r(this,void 0,void 0,(function*(){return this.findText}))}writeFindText(e){return r(this,void 0,void 0,(function*(){this.findText=e}))}}})),define(t[506],i([0,1]),(function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.InputFocusedContextKey=void 0,t.InputFocusedContextKey="inputFocus"})),define(t[507],i([0,1]),(function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EditorOpenContext=void 0,function(e){e[e.API=0]="API",e[e.USER=1]="USER"}(t.EditorOpenContext||(t.EditorOpenContext={}))})),define(t[508],i([0,1]),(function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ExtensionIdentifier=void 0;t.ExtensionIdentifier=class{constructor(e){this.value=e,this._lower=e.toLowerCase()}static toKey(e){return"string"==typeof e?e.toLowerCase():e._lower}}})), +define(t[229],i([0,1]),(function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.FileKind=void 0,function(e){e[e.FILE=0]="FILE",e[e.FOLDER=1]="FOLDER",e[e.ROOT_FOLDER=2]="ROOT_FOLDER"}(t.FileKind||(t.FileKind={}))})),define(t[230],i([0,1]),(function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SyncDescriptor=void 0;t.SyncDescriptor=class{constructor(e,t=[],i=!1){this.ctor=e,this.staticArguments=t,this.supportsDelayedInstantiation=i}}})),define(t[71],i([0,1,230]),(function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getSingletonServiceDescriptors=t.registerSingleton=void 0;const n=[];t.registerSingleton=function(e,t,o){n.push([e,new i.SyncDescriptor(t,[],o)])},t.getSingletonServiceDescriptors=function(){return n}})),define(t[509],i([0,1]),(function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Graph=t.Node=void 0;class i{constructor(e){this.incoming=new Map,this.outgoing=new Map,this.data=e}}t.Node=i;t.Graph=class{ +constructor(e){this._hashFn=e,this._nodes=new Map}roots(){const e=[];for(let t of this._nodes.values())0===t.outgoing.size&&e.push(t);return e}insertEdge(e,t){const i=this.lookupOrInsertNode(e),n=this.lookupOrInsertNode(t);i.outgoing.set(this._hashFn(t),n),n.incoming.set(this._hashFn(e),i)}removeNode(e){const t=this._hashFn(e);this._nodes.delete(t);for(let e of this._nodes.values())e.outgoing.delete(t),e.incoming.delete(t)}lookupOrInsertNode(e){const t=this._hashFn(e);let n=this._nodes.get(t);return n||(n=new i(e),this._nodes.set(t,n)),n}isEmpty(){return 0===this._nodes.size}toString(){let e=[];for(let[t,i]of this._nodes)e.push(`${t}, (incoming)[${[...i.incoming.keys()].join(", ")}], (outgoing)[${[...i.outgoing.keys()].join(",")}]`);return e.join("\n")}}})),define(t[10],i([0,1]),(function(e,t){"use strict";var i;function n(e,t,n,o){t[i.DI_TARGET]===t?t[i.DI_DEPENDENCIES].push({id:e,index:n,optional:o}):(t[i.DI_DEPENDENCIES]=[{id:e,index:n,optional:o}],t[i.DI_TARGET]=t)}function o(e){ +if(i.serviceIds.has(e))return i.serviceIds.get(e);const t=function(e,i,o){if(3!==arguments.length)throw new Error("@IServiceName-decorator can only be used to decorate a parameter");n(t,e,o,!1)};return t.toString=()=>e,i.serviceIds.set(e,t),t}Object.defineProperty(t,"__esModule",{value:!0}),t.optional=t.createDecorator=t.IInstantiationService=t._util=void 0,function(e){e.serviceIds=new Map,e.DI_TARGET="$di$target",e.DI_DEPENDENCIES="$di$dependencies",e.getServiceDependencies=function(t){return t[e.DI_DEPENDENCIES]||[]}}(i=t._util||(t._util={})),t.IInstantiationService=o("instantiationService"),t.createDecorator=o,t.optional=function(e){return function(t,i,o){if(3!==arguments.length)throw new Error("@optional-decorator can only be used to decorate a parameter");n(e,t,o,!0)}}})),define(t[127],i([0,1,10,24,23]),(function(e,t,i,n,o){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ResourceFileEdit=t.ResourceTextEdit=t.ResourceEdit=t.IBulkEditService=void 0, +t.IBulkEditService=i.createDecorator("IWorkspaceEditService");class s{constructor(e){this.metadata=e}static convert(e){return e.edits.map(e=>{if(function(e){return o.isObject(e)&&n.URI.isUri(e.resource)&&o.isObject(e.edit)}(e))return new r(e.resource,e.edit,e.modelVersionId,e.metadata);if(function(e){return o.isObject(e)&&(Boolean(e.newUri)||Boolean(e.oldUri))}(e))return new a(e.oldUri,e.newUri,e.options,e.metadata);throw new Error("Unsupported edit")})}}t.ResourceEdit=s;class r extends s{constructor(e,t,i,n){super(n),this.resource=e,this.textEdit=t,this.versionId=i,this.metadata=n}}t.ResourceTextEdit=r;class a extends s{constructor(e,t,i,n){super(n),this.oldResource=e,this.newResource=t,this.options=i,this.metadata=n}}t.ResourceFileEdit=a})),define(t[27],i([0,1,10]),(function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ICodeEditorService=void 0,t.ICodeEditorService=i.createDecorator("codeEditorService")})),define(t[72],i([0,1,10]),(function(e,t,i){"use strict" +;Object.defineProperty(t,"__esModule",{value:!0}),t.IEditorWorkerService=t.ID_EDITOR_WORKER_SERVICE=void 0,t.ID_EDITOR_WORKER_SERVICE="editorWorkerService",t.IEditorWorkerService=i.createDecorator(t.ID_EDITOR_WORKER_SERVICE)})),define(t[231],i([0,1,10]),(function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.IMarkerDecorationsService=void 0,t.IMarkerDecorationsService=i.createDecorator("markerDecorationsService")})),define(t[73],i([0,1,10]),(function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.IModeService=void 0,t.IModeService=i.createDecorator("modeService")})),define(t[44],i([0,1,10]),(function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.shouldSynchronizeModel=t.IModelService=void 0,t.IModelService=i.createDecorator("modelService"),t.shouldSynchronizeModel=function(e){return!e.isTooLargeForSyncing()&&!e.isForSimpleWidget}})),define(t[510],i([0,1,4,2,366,44]),(function(e,t,i,n,o,s){"use strict";function r(e){ +return"string"!=typeof e&&(Array.isArray(e)?e.every(r):!!e.exclusive)}Object.defineProperty(t,"__esModule",{value:!0}),t.LanguageFeatureRegistry=void 0;class a{constructor(){this._clock=0,this._entries=[],this._onDidChange=new i.Emitter}get onDidChange(){return this._onDidChange.event}register(e,t){let i={selector:e,provider:t,_score:-1,_time:this._clock++};return this._entries.push(i),this._lastCandidate=void 0,this._onDidChange.fire(this._entries.length),n.toDisposable(()=>{if(i){let e=this._entries.indexOf(i);e>=0&&(this._entries.splice(e,1),this._lastCandidate=void 0,this._onDidChange.fire(this._entries.length),i=void 0)}})}has(e){return this.all(e).length>0}all(e){if(!e)return[];this._updateScores(e);const t=[];for(let e of this._entries)e._score>0&&t.push(e.provider);return t}ordered(e){const t=[];return this._orderedForEach(e,e=>t.push(e.provider)),t}orderedGroups(e){const t=[];let i,n;return this._orderedForEach(e,e=>{i&&n===e._score?i.push(e.provider):(n=e._score,i=[e.provider],t.push(i))}),t} +_orderedForEach(e,t){if(e){this._updateScores(e);for(const e of this._entries)e._score>0&&t(e)}}_updateScores(e){let t={uri:e.uri.toString(),language:e.getLanguageIdentifier().language};if(!this._lastCandidate||this._lastCandidate.language!==t.language||this._lastCandidate.uri!==t.uri){this._lastCandidate=t;for(let t of this._entries)if(t._score=o.score(t.selector,e.uri,e.getLanguageIdentifier().language,s.shouldSynchronizeModel(e)),r(t.selector)&&t._score>0){for(let e of this._entries)e._score=0;t._score=1e3;break}this._entries.sort(a._compareByScoreAndTime)}}static _compareByScoreAndTime(e,t){return e._scoret._score?-1:e._timet._time?-1:0}}t.LanguageFeatureRegistry=a})),define(t[18],i([0,1,24,3,510,374,26]),(function(e,t,i,n,o,s,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}), +t.TokenizationRegistry=t.DocumentRangeSemanticTokensProviderRegistry=t.DocumentSemanticTokensProviderRegistry=t.FoldingRangeProviderRegistry=t.SelectionRangeRegistry=t.ColorProviderRegistry=t.LinkProviderRegistry=t.OnTypeFormattingEditProviderRegistry=t.DocumentRangeFormattingEditProviderRegistry=t.DocumentFormattingEditProviderRegistry=t.CodeActionProviderRegistry=t.CodeLensProviderRegistry=t.TypeDefinitionProviderRegistry=t.ImplementationProviderRegistry=t.DeclarationProviderRegistry=t.DefinitionProviderRegistry=t.OnTypeRenameProviderRegistry=t.DocumentHighlightProviderRegistry=t.DocumentSymbolProviderRegistry=t.HoverProviderRegistry=t.SignatureHelpProviderRegistry=t.CompletionProviderRegistry=t.RenameProviderRegistry=t.ReferenceProviderRegistry=t.FoldingRangeKind=t.SymbolKinds=t.isLocationLink=t.DocumentHighlightKind=t.SignatureHelpTriggerKind=t.completionKindFromString=t.completionKindToCssClass=t.TokenMetadata=t.LanguageIdentifier=void 0;t.LanguageIdentifier=class{constructor(e,t){this.language=e, +this.id=t}};t.TokenMetadata=class{static getLanguageId(e){return(255&e)>>>0}static getTokenType(e){return(1792&e)>>>8}static getFontStyle(e){return(14336&e)>>>11}static getForeground(e){return(8372224&e)>>>14}static getBackground(e){return(4286578688&e)>>>23}static getClassNameFromMetadata(e){let t="mtk"+this.getForeground(e),i=this.getFontStyle(e);return 1&i&&(t+=" mtki"),2&i&&(t+=" mtkb"),4&i&&(t+=" mtku"),t}static getInlineStyleFromMetadata(e,t){const i=this.getForeground(e),n=this.getFontStyle(e);let o=`color: ${t[i]};`;return 1&n&&(o+="font-style: italic;"),2&n&&(o+="font-weight: bold;"),4&n&&(o+="text-decoration: underline;"),o}},t.completionKindToCssClass=function(){let e=Object.create(null);return e[0]="symbol-method",e[1]="symbol-function",e[2]="symbol-constructor",e[3]="symbol-field",e[4]="symbol-variable",e[5]="symbol-class",e[6]="symbol-struct",e[7]="symbol-interface",e[8]="symbol-module",e[9]="symbol-property",e[10]="symbol-event",e[11]="symbol-operator",e[12]="symbol-unit",e[13]="symbol-value", +e[14]="symbol-constant",e[15]="symbol-enum",e[16]="symbol-enum-member",e[17]="symbol-keyword",e[27]="symbol-snippet",e[18]="symbol-text",e[19]="symbol-color",e[20]="symbol-file",e[21]="symbol-reference",e[22]="symbol-customcolor",e[23]="symbol-folder",e[24]="symbol-type-parameter",e[25]="account",e[26]="issues",function(t){const i=e[t];let n=i&&r.iconRegistry.get(i);return n||(console.info("No codicon found for CompletionItemKind "+t),n=r.Codicon.symbolProperty),n.classNames}}(),t.completionKindFromString=function(){let e=Object.create(null);return e.method=0,e.function=1,e.constructor=2,e.field=3,e.variable=4,e.class=5,e.struct=6,e.interface=7,e.module=8,e.property=9,e.event=10,e.operator=11,e.unit=12,e.value=13,e.constant=14,e.enum=15,e["enum-member"]=16,e.enumMember=16,e.keyword=17,e.snippet=27,e.text=18,e.color=19,e.file=20,e.reference=21,e.customcolor=22,e.folder=23,e["type-parameter"]=24,e.typeParameter=24,e.account=25,e.issue=26,function(t,i){let n=e[t];return void 0!==n||i||(n=9),n}}(),function(e){ +e[e.Invoke=1]="Invoke",e[e.TriggerCharacter=2]="TriggerCharacter",e[e.ContentChange=3]="ContentChange"}(t.SignatureHelpTriggerKind||(t.SignatureHelpTriggerKind={})),function(e){e[e.Text=0]="Text",e[e.Read=1]="Read",e[e.Write=2]="Write"}(t.DocumentHighlightKind||(t.DocumentHighlightKind={})),t.isLocationLink=function(e){return e&&i.URI.isUri(e.uri)&&n.Range.isIRange(e.range)&&(n.Range.isIRange(e.originSelectionRange)||n.Range.isIRange(e.targetSelectionRange))},function(e){const t=new Map;t.set("file",0),t.set("module",1),t.set("namespace",2),t.set("package",3),t.set("class",4),t.set("method",5),t.set("property",6),t.set("field",7),t.set("constructor",8),t.set("enum",9),t.set("interface",10),t.set("function",11),t.set("variable",12),t.set("constant",13),t.set("string",14),t.set("number",15),t.set("boolean",16),t.set("array",17),t.set("object",18),t.set("key",19),t.set("null",20),t.set("enum-member",21),t.set("struct",22),t.set("event",23),t.set("operator",24),t.set("type-parameter",25);const i=new Map +;i.set(0,"file"),i.set(1,"module"),i.set(2,"namespace"),i.set(3,"package"),i.set(4,"class"),i.set(5,"method"),i.set(6,"property"),i.set(7,"field"),i.set(8,"constructor"),i.set(9,"enum"),i.set(10,"interface"),i.set(11,"function"),i.set(12,"variable"),i.set(13,"constant"),i.set(14,"string"),i.set(15,"number"),i.set(16,"boolean"),i.set(17,"array"),i.set(18,"object"),i.set(19,"key"),i.set(20,"null"),i.set(21,"enum-member"),i.set(22,"struct"),i.set(23,"event"),i.set(24,"operator"),i.set(25,"type-parameter"),e.fromString=function(e){return t.get(e)},e.toString=function(e){return i.get(e)},e.toCssClassName=function(e,t){const n=i.get(e);let o=n&&r.iconRegistry.get("symbol-"+n);return o||(console.info("No codicon found for SymbolKind "+e),o=r.Codicon.symbolProperty),`${t?"inline":"block"} ${o.classNames}`}}(t.SymbolKinds||(t.SymbolKinds={}));class a{constructor(e){this.value=e}}t.FoldingRangeKind=a,a.Comment=new a("comment"),a.Imports=new a("imports"),a.Region=new a("region"), +t.ReferenceProviderRegistry=new o.LanguageFeatureRegistry,t.RenameProviderRegistry=new o.LanguageFeatureRegistry,t.CompletionProviderRegistry=new o.LanguageFeatureRegistry,t.SignatureHelpProviderRegistry=new o.LanguageFeatureRegistry,t.HoverProviderRegistry=new o.LanguageFeatureRegistry,t.DocumentSymbolProviderRegistry=new o.LanguageFeatureRegistry,t.DocumentHighlightProviderRegistry=new o.LanguageFeatureRegistry,t.OnTypeRenameProviderRegistry=new o.LanguageFeatureRegistry,t.DefinitionProviderRegistry=new o.LanguageFeatureRegistry,t.DeclarationProviderRegistry=new o.LanguageFeatureRegistry,t.ImplementationProviderRegistry=new o.LanguageFeatureRegistry,t.TypeDefinitionProviderRegistry=new o.LanguageFeatureRegistry,t.CodeLensProviderRegistry=new o.LanguageFeatureRegistry,t.CodeActionProviderRegistry=new o.LanguageFeatureRegistry,t.DocumentFormattingEditProviderRegistry=new o.LanguageFeatureRegistry,t.DocumentRangeFormattingEditProviderRegistry=new o.LanguageFeatureRegistry, +t.OnTypeFormattingEditProviderRegistry=new o.LanguageFeatureRegistry,t.LinkProviderRegistry=new o.LanguageFeatureRegistry,t.ColorProviderRegistry=new o.LanguageFeatureRegistry,t.SelectionRangeRegistry=new o.LanguageFeatureRegistry,t.FoldingRangeProviderRegistry=new o.LanguageFeatureRegistry,t.DocumentSemanticTokensProviderRegistry=new o.LanguageFeatureRegistry,t.DocumentRangeSemanticTokensProviderRegistry=new o.LanguageFeatureRegistry,t.TokenizationRegistry=new s.TokenizationRegistryImpl})),define(t[105],i([0,1,18]),(function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SlicedLineTokens=t.LineTokens=void 0;class n{constructor(e,t){this._tokens=e,this._tokensCount=this._tokens.length>>>1,this._text=t}equals(e){return e instanceof n&&this.slicedEquals(e,0,this._tokensCount)}slicedEquals(e,t,i){if(this._text!==e._text)return!1;if(this._tokensCount!==e._tokensCount)return!1;const n=t<<1,o=n+(i<<1);for(let t=n;t0?this._tokens[e-1<<1]:0}getMetadata(e){return this._tokens[1+(e<<1)]}getLanguageId(e){const t=this._tokens[1+(e<<1)];return i.TokenMetadata.getLanguageId(t)}getStandardTokenType(e){const t=this._tokens[1+(e<<1)];return i.TokenMetadata.getTokenType(t)}getForeground(e){const t=this._tokens[1+(e<<1)];return i.TokenMetadata.getForeground(t)}getClassName(e){const t=this._tokens[1+(e<<1)];return i.TokenMetadata.getClassNameFromMetadata(t)}getInlineStyle(e,t){const n=this._tokens[1+(e<<1)];return i.TokenMetadata.getInlineStyleFromMetadata(n,t)}getEndOffset(e){return this._tokens[e<<1]}findTokenIndexAtOffset(e){return n.findIndexInTokensArray(this._tokens,e)}inflate(){return this}sliceAndInflate(e,t,i){return new o(this,e,t,i)}static convertToEndOffset(e,t){const i=(e.length>>>1)-1;for(let t=0;t>>1)-1;for(;it&&(n=o)}return i}}t.LineTokens=n;class o{constructor(e,t,i,n){this._source=e,this._startOffset=t,this._endOffset=i,this._deltaOffset=n,this._firstTokenIndex=e.findTokenIndexAtOffset(t),this._tokensCount=0;for(let t=this._firstTokenIndex,n=e.getCount();t=i)break;this._tokensCount++}}equals(e){return e instanceof o&&(this._startOffset===e._startOffset&&this._endOffset===e._endOffset&&this._deltaOffset===e._deltaOffset&&this._source.slicedEquals(e._source,this._firstTokenIndex,this._tokensCount))}getCount(){return this._tokensCount}getForeground(e){return this._source.getForeground(this._firstTokenIndex+e)}getEndOffset(e){const t=this._source.getEndOffset(this._firstTokenIndex+e);return Math.min(this._endOffset,t)-this._startOffset+this._deltaOffset}getClassName(e){return this._source.getClassName(this._firstTokenIndex+e)}getInlineStyle(e,t){return this._source.getInlineStyle(this._firstTokenIndex+e,t)} +findTokenIndexAtOffset(e){return this._source.findTokenIndexAtOffset(e+this._startOffset-this._deltaOffset)-this._firstTokenIndex}}t.SlicedLineTokens=o})),define(t[128],i([0,1,19,105,13,3,18]),(function(e,t,i,n,o,s,r){"use strict";function a(e){let t=0,i=0,n=0,o=0;for(let s=0,r=e.length;s>>0}Object.defineProperty(t,"__esModule",{value:!0}),t.TokensStore=t.TokensStore2=t.MultilineTokens=t.MultilineTokens2=t.LineTokens2=t.SparseEncodedTokens=t.MultilineTokensBuilder=t.countEOL=void 0,t.countEOL=a;const d=new Uint32Array(0).buffer;t.MultilineTokensBuilder=class{constructor(){this.tokens=[]}add(e,t){if(this.tokens.length>0){const i=this.tokens[this.tokens.length-1];if(i.startLineNumber+i.tokens.length-1+1===e)return void i.tokens.push(t)}this.tokens.push(new g(e,[t]))}};class c{ +constructor(e){this._tokens=e,this._tokenCount=e.length/4}toString(e){let t=[];for(let i=0;ie)){let o=n;for(;o>t&&this._getDeltaLine(o-1)===e;)o--;let s=n;for(;se||c===e&&u>=t)&&(ce||c===e&&g>=t){if(co?p-=o-i:p=i;else if(u===t&&g===i){if(!(u===n&&p>o)){d=!0;continue}p-=o-i +}else if(uo)){d=!0;continue}p=u===t?(g=i)+(p-o):(g=0)+(p-o)}else if(u>n){if(0===a&&!d){l=r;break}u-=a}else{if(!(u===n&&g>=o))throw new Error("Not possible!");e&&0===u&&(g+=e,p+=e),u-=a,g-=o-i,p-=o-i}const f=4*l;s[f]=u,s[f+1]=g,s[f+2]=p,s[f+3]=m,l++}this._tokenCount=l}acceptInsertText(e,t,i,n,o,s){const r=0===i&&1===n&&(s>=48&&s<=57||s>=65&&s<=90||s>=97&&s<=122),a=this._tokens,l=this._tokenCount;for(let s=0;s0?t.charCodeAt(0):0)}acceptEdit(e,t,i,n,s){this._acceptDeleteRange(e),this._acceptInsertText(new o.Position(e.startLineNumber,e.startColumn),t,i,n,s),this._updateEndLineNumber()}_acceptDeleteRange(e){if(e.startLineNumber===e.endLineNumber&&e.startColumn===e.endColumn)return;const t=e.startLineNumber-this.startLineNumber,i=e.endLineNumber-this.startLineNumber;if(i<0){const e=i-t;return void(this.startLineNumber-=e)}const n=this.tokens.getMaxDeltaLine();if(!(t>=n+1)){if(t<0&&i>=n+1)return this.startLineNumber=0,void this.tokens.clear();if(t<0){const n=-t;this.startLineNumber-=n,this.tokens.acceptDeleteRange(e.startColumn-1,0,0,i,e.endColumn-1)}else this.tokens.acceptDeleteRange(0,t,e.startColumn-1,i,e.endColumn-1)}}_acceptInsertText(e,t,i,n,o){if(0===t&&0===i)return;const s=e.lineNumber-this.startLineNumber +;s<0?this.startLineNumber+=t:s>=this.tokens.getMaxDeltaLine()+1||this.tokens.acceptInsertText(s,e.column-1,t,i,n,o)}}t.MultilineTokens2=u;class g{constructor(e,t){this.startLineNumber=e,this.tokens=t}}function p(e){return e instanceof Uint32Array?e:new Uint32Array(e)}t.MultilineTokens=g;class m{constructor(){this._pieces=[],this._isComplete=!1}flush(){this._pieces=[],this._isComplete=!1}set(e,t){this._pieces=e||[],this._isComplete=t}setPartial(e,t){let n=e;if(t.length>0){const i=t[0].getRange(),o=t[t.length-1].getRange();if(!i||!o)return e;n=e.plusRange(i).plusRange(o)}let o=null;for(let e=0,t=this._pieces.length;en.endLineNumber){o=o||{index:e};break}if(i.removeTokens(n),i.isEmpty()){this._pieces.splice(e,1),e--,t--;continue}if(i.endLineNumbern.endLineNumber){o=o||{index:e};continue}const[s,r]=i.split(n);s.isEmpty()?o=o||{index:e +}:r.isEmpty()||(this._pieces.splice(e,1,s,r),e++,t++,o=o||{index:e})}return o=o||{index:this._pieces.length},t.length>0&&(this._pieces=i.arrayInsert(this._pieces,o.index,t)),n}isComplete(){return this._isComplete}addSemanticTokens(e,t){const i=this._pieces;if(0===i.length)return t;const o=i[m._findFirstPieceWithLine(i,e)].getLineTokens(e);if(!o)return t;const s=t.getCount(),r=o.getCount();let a=0,l=[],d=0,c=0;const h=(e,t)=>{e!==c&&(c=e,l[d++]=e,l[d++]=t)};for(let e=0;e>>0,d=~l>>>0;for(;at)){for(;o>i&&e[o-1].startLineNumber<=t&&t<=e[o-1].endLineNumber;)o--;return o}n=o-1}}return i}acceptEdit(e,t,i,n,o){for(const s of this._pieces)s.acceptEdit(e,t,i,n,o)}}t.TokensStore2=m;class f{constructor(){this._lineTokens=[],this._len=0}flush(){this._lineTokens=[],this._len=0}getTokens(e,t,i){let o=null;if(t1&&(t=r.TokenMetadata.getLanguageId(n[1])!==e),!t)return d}if(!n||0===n.length){const i=new Uint32Array(2);return i[0]=t,i[1]=l(e),i.buffer}return n[n.length-2]=t, +0===n.byteOffset&&n.byteLength===n.buffer.byteLength?n.buffer:n}_ensureLine(e){for(;e>=this._len;)this._lineTokens[this._len]=null,this._len++}_deleteLines(e,t){0!==t&&(e+t>this._len&&(t=this._len-e),this._lineTokens.splice(e,t),this._len-=t)}_insertLines(e,t){if(0===t)return;let n=[];for(let e=0;e=this._len)return;if(e.startLineNumber===e.endLineNumber){if(e.startColumn===e.endColumn)return +;return void(this._lineTokens[t]=f._delete(this._lineTokens[t],e.startColumn-1,e.endColumn-1))}this._lineTokens[t]=f._deleteEnding(this._lineTokens[t],e.startColumn-1);const i=e.endLineNumber-1;let n=null;i=this._len||(0!==t?(this._lineTokens[n]=f._deleteEnding(this._lineTokens[n],e.column-1),this._lineTokens[n]=f._insert(this._lineTokens[n],e.column-1,i),this._insertLines(e.lineNumber,t)):this._lineTokens[n]=f._insert(this._lineTokens[n],e.column-1,i))}static _deleteBeginning(e,t){return null===e||e===d?e:f._delete(e,0,t)}static _deleteEnding(e,t){if(null===e||e===d)return e;const i=p(e),n=i[i.length-2];return f._delete(e,t,n)}static _delete(e,t,i){if(null===e||e===d||t===i)return e;const o=p(e),s=o.length>>>1;if(0===t&&o[o.length-2]===i)return d +;const r=n.LineTokens.findIndexInTokensArray(o,t),a=r>0?o[r-1<<1]:0;if(ic&&(o[l++]=t,o[l++]=o[1+(e<<1)],c=t)}if(l===o.length)return e;let u=new Uint32Array(l);return u.set(o.subarray(0,l),0),u.buffer}static _append(e,t){if(t===d)return e;if(e===d)return t;if(null===e)return e;if(null===t)return null;const i=p(e),n=p(t),o=n.length>>>1;let s=new Uint32Array(i.length+n.length);s.set(i,0);let r=i.length;const a=i[i.length-2];for(let e=0;e>>1;let r=n.LineTokens.findIndexInTokensArray(o,t);if(r>0){o[r-1<<1]===t&&r--}for(let e=r;ee.sortIndex-t.sortIndex)}this._mightContainRTL=o,this._mightContainUnusualLineTerminators=r,this._mightContainNonBasicASCII=c;const _=this._doApplyEdits(u);let v=null;if(t&&m.length>0){m.sort((e,t)=>t.lineNumber-e.lineNumber),v=[];for(let e=0,t=m.length;e0&&m[e-1].lineNumber===t)continue;let i=m[e].oldContent,o=this.getLineContent(t);0!==o.length&&o!==i&&-1===n.firstNonWhitespaceIndex(o)&&v.push(t)}}return this._onDidChangeContent.fire(),new s.ApplyEditsResult(f,_,v)}_reduceOperations(e){return e.length<1e3?e:[this._toSingleEditOperation(e)]}_toSingleEditOperation(e){let t=!1;const i=e[0].range,n=e[e.length-1].range,s=new o.Range(i.startLineNumber,i.startColumn,n.endLineNumber,n.endColumn);let r=i.startLineNumber,l=i.startColumn;const d=[];for(let i=0,n=e.length;i0&&d.push(n.text),r=s.endLineNumber,l=s.endColumn}const c=d.join(""),[h,u,g]=a.countEOL(c);return{sortIndex:0,identifier:e[0].identifier,range:s,rangeOffset:this.getOffsetAt(s.startLineNumber,s.startColumn),rangeLength:this.getValueLengthInRange(s,0),text:c,eolCount:h,firstLineLength:u,lastLineLength:g,forceMoveMarkers:t,isAutoWhitespaceEdit:!1}}_doApplyEdits(e){e.sort(d._sortOpsDescending);let t=[];for(let i=0;i0){const e=c.eolCount+1;d=1===e?new o.Range(a,l,a,l+c.firstLineLength):new o.Range(a,l,a+e-1,c.lastLineLength+1)}else d=new o.Range(a,l,a,l);i=d.endLineNumber,n=d.endColumn,t.push(d),s=c}return t}static _sortOpsAscending(e,t){let i=o.Range.compareRangesUsingEnds(e.range,t.range);return 0===i?e.sortIndex-t.sortIndex:i}static _sortOpsDescending(e,t){let i=o.Range.compareRangesUsingEnds(e.range,t.range);return 0===i?t.sortIndex-e.sortIndex:-i}}t.PieceTreeTextBuffer=d})),define(t[512],i([0,1,8,211,511]),(function(e,t,i,n,o){"use strict";Object.defineProperty(t,"__esModule",{value:!0}), +t.PieceTreeTextBufferBuilder=t.PieceTreeTextBufferFactory=void 0;class s{constructor(e,t,i,n,o,s,r,a,l){this._chunks=e,this._bom=t,this._cr=i,this._lf=n,this._crlf=o,this._containsRTL=s,this._containsUnusualLineTerminators=r,this._isBasicASCII=a,this._normalizeEOL=l}_getEOL(e){const t=this._cr+this._lf+this._crlf,i=this._cr+this._crlf;return 0===t?1===e?"\n":"\r\n":i>t/2?"\r\n":"\n"}create(e){const t=this._getEOL(e);let i=this._chunks;if(this._normalizeEOL&&("\r\n"===t&&(this._cr>0||this._lf>0)||"\n"===t&&(this._cr>0||this._crlf>0)))for(let e=0,o=i.length;e=55296&&t<=56319?(this._acceptChunk1(e.substr(0,e.length-1),!1),this._hasPreviousChar=!0,this._previousChar=t):(this._acceptChunk1(e,!1),this._hasPreviousChar=!1,this._previousChar=t)}_acceptChunk1(e,t){(t||0!==e.length)&&(this._hasPreviousChar?this._acceptChunk2(String.fromCharCode(this._previousChar)+e):this._acceptChunk2(e))}_acceptChunk2(e){const t=n.createLineStarts(this._tmpLineStarts,e);this.chunks.push(new n.StringBuffer(e,t.lineStarts)),this.cr+=t.cr,this.lf+=t.lf,this.crlf+=t.crlf,this.isBasicASCII&&(this.isBasicASCII=t.isBasicASCII),this.isBasicASCII||this.containsRTL||(this.containsRTL=i.containsRTL(e)),this.isBasicASCII||this.containsUnusualLineTerminators||(this.containsUnusualLineTerminators=i.containsUnusualLineTerminators(e))}finish(e=!0){ +return this._finish(),new s(this.chunks,this.BOM,this.cr,this.lf,this.crlf,this.containsRTL,this.containsUnusualLineTerminators,this.isBasicASCII,e)}_finish(){if(0===this.chunks.length&&this._acceptChunk1("",!0),this._hasPreviousChar){this._hasPreviousChar=!1;let e=this.chunks[this.chunks.length-1];e.buffer+=String.fromCharCode(this._previousChar);let t=n.createLineStartsFast(e.buffer);e.lineStarts=t,13===this._previousChar&&this.cr++}}}})),define(t[74],i([0,1,121,18]),(function(e,t,i,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.nullTokenize2=t.nullTokenize=t.NULL_LANGUAGE_IDENTIFIER=t.NULL_MODE_ID=t.NULL_STATE=void 0;t.NULL_STATE=new class{clone(){return this}equals(e){return this===e}},t.NULL_MODE_ID="vs.editor.nullMode",t.NULL_LANGUAGE_IDENTIFIER=new n.LanguageIdentifier(t.NULL_MODE_ID,0),t.nullTokenize=function(e,t,n,o){return new i.TokenizationResult([new i.Token(o,"",e)],n)},t.nullTokenize2=function(e,n,o,s){let r=new Uint32Array(2);return r[0]=s,r[1]=(16384|e<<0|2<<23)>>>0, +new i.TokenizationResult2(r,null===o?t.NULL_STATE:o)}})),define(t[513],i([0,1,19,12,105,13,18,74,2,111,128,16]),(function(e,t,i,n,o,s,r,a,l,d,c,h){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TextModelTokenization=t.TokenizationStateStore=void 0;class u{constructor(){this._beginState=[],this._valid=[],this._len=0,this._invalidLineStartIndex=0}_reset(e){this._beginState=[],this._valid=[],this._len=0,this._invalidLineStartIndex=0,e&&this._setBeginState(0,e)}flush(e){this._reset(e)}get invalidLineStartIndex(){return this._invalidLineStartIndex}_invalidateLine(e){e=this._len;)this._beginState[this._len]=null,this._valid[this._len]=!1,this._len++}_deleteLines(e,t){0!==t&&(e+t>this._len&&(t=this._len-e),this._beginState.splice(e,t),this._valid.splice(e,t),this._len-=t)} +_insertLines(e,t){if(0===t)return;let n=[],o=[];for(let e=0;e=0;t--)this._invalidateLine(e.startLineNumber+t-1);this._acceptDeleteRange(e),this._acceptInsertText(new s.Position(e.startLineNumber,e.startColumn),t)}_acceptDeleteRange(e){e.startLineNumber-1>=this._len||this._deleteLines(e.startLineNumber,e.endLineNumber-e.startLineNumber)}_acceptInsertText(e,t){ +e.lineNumber-1>=this._len||this._insertLines(e.lineNumber,t)}}t.TokenizationStateStore=u;class g extends l.Disposable{constructor(e){super(),this._isDisposed=!1,this._textModel=e,this._tokenizationStateStore=new u,this._tokenizationSupport=null,this._register(r.TokenizationRegistry.onDidChange(e=>{const t=this._textModel.getLanguageIdentifier();-1!==e.changedLanguages.indexOf(t.language)&&(this._resetTokenizationState(),this._textModel.clearTokens())})),this._register(this._textModel.onDidChangeRawContentFast(e=>{e.containsEvent(1)&&this._resetTokenizationState()})),this._register(this._textModel.onDidChangeContentFast(e=>{for(let t=0,i=e.changes.length;t{this._beginBackgroundTokenization()})),this._register(this._textModel.onDidChangeLanguage(()=>{this._resetTokenizationState(),this._textModel.clearTokens()})), +this._resetTokenizationState()}dispose(){this._isDisposed=!0,super.dispose()}_resetTokenizationState(){const[e,t]=function(e){const t=e.getLanguageIdentifier();let i=e.isTooLargeForTokenization()?null:r.TokenizationRegistry.get(t.language),o=null;if(i)try{o=i.getInitialState()}catch(e){n.onUnexpectedError(e),i=null}return[i,o]}(this._textModel);this._tokenizationSupport=e,this._tokenizationStateStore.flush(t),this._beginBackgroundTokenization()}_beginBackgroundTokenization(){this._textModel.isAttachedToEditor()&&this._hasLinesToTokenize()&&h.setImmediate(()=>{this._isDisposed||this._revalidateTokensNow()})}_revalidateTokensNow(e=this._textModel.getLineCount()){const t=new c.MultilineTokensBuilder,i=d.StopWatch.create(!1);for(;this._hasLinesToTokenize()&&!(i.elapsed()>1);){if(this._tokenizeOneInvalidLine(t)>=e)break}this._beginBackgroundTokenization(),this._textModel.setTokens(t.tokens)}tokenizeViewport(e,t){const i=new c.MultilineTokensBuilder;this._tokenizeViewport(i,e,t),this._textModel.setTokens(i.tokens)} +reset(){this._resetTokenizationState(),this._textModel.clearTokens()}forceTokenization(e){const t=new c.MultilineTokensBuilder;this._updateTokensUntilLine(t,e),this._textModel.setTokens(t.tokens)}isCheapToTokenize(e){if(!this._tokenizationSupport)return!0;const t=this._tokenizationStateStore.invalidLineStartIndex+1;return!(e>t)&&(e0&&e>=1;e--){let t=this._textModel.getLineFirstNonWhitespaceColumn(e);if(0!==t&&t=0;e--){a=p(r,this._tokenizationSupport,o[e],a).endState}for(let n=t;n<=i;n++){ +let t=this._textModel.getLineContent(n),i=p(r,this._tokenizationSupport,t,a);e.add(n,i.tokens),this._tokenizationStateStore.setFakeTokens(n-1),a=i.endState}}}function p(e,t,i,s){let r=null;if(t)try{r=t.tokenize2(i,s.clone(),0)}catch(e){n.onUnexpectedError(e)}return r||(r=a.nullTokenize2(e.id,i,s,0)),o.LineTokens.convertToEndOffset(r.tokens,i.length),r}t.TextModelTokenization=g})),define(t[31],i([0,1,12,4,2,8,24,38,13,3,20,52,228,361,362,512,364,158,513,122,42,74,159,160,128,29]),(function(e,t,i,n,o,s,r,a,l,d,c,h,u,g,p,m,f,_,v,C,b,S,w,y,E,L){"use strict";function x(e){const t=new m.PieceTreeTextBufferBuilder;return t.acceptChunk(e),t.finish()}function D(e,t){return("string"==typeof e?x(e):e).create(t)}Object.defineProperty(t,"__esModule",{value:!0}),t.DidChangeContentEmitter=t.DidChangeDecorationsEmitter=t.ModelDecorationOptions=t.ModelDecorationMinimapOptions=t.ModelDecorationOverviewRulerOptions=t.TextModel=t.LONG_LINE_BOUNDARY=t.createTextBuffer=t.createTextBufferFactory=void 0,t.createTextBufferFactory=x, +t.createTextBuffer=D;let k=0;const N=999;t.LONG_LINE_BOUNDARY=1e4;class I{constructor(e){this._source=e,this._eos=!1}read(){if(this._eos)return null;let e=[],t=0,i=0;for(;;){let n=this._source.read();if(null===n)return this._eos=!0,0===t?null:e.join("");if(n.length>0&&(e[t++]=n,i+=n.length),i>=65536)return e.join("")}}}const M=()=>{throw new Error("Invalid change accessor")};class R{constructor(){this._searchCanceledBrand=void 0}}function T(e){return e instanceof R?null:e}R.INSTANCE=new R;class O extends o.Disposable{constructor(e,t,i,o=null,a){super(),this._onWillDispose=this._register(new n.Emitter),this.onWillDispose=this._onWillDispose.event,this._onDidChangeDecorations=this._register(new K),this.onDidChangeDecorations=this._onDidChangeDecorations.event,this._onDidChangeLanguage=this._register(new n.Emitter),this.onDidChangeLanguage=this._onDidChangeLanguage.event,this._onDidChangeLanguageConfiguration=this._register(new n.Emitter), +this.onDidChangeLanguageConfiguration=this._onDidChangeLanguageConfiguration.event,this._onDidChangeTokens=this._register(new n.Emitter),this.onDidChangeTokens=this._onDidChangeTokens.event,this._onDidChangeOptions=this._register(new n.Emitter),this.onDidChangeOptions=this._onDidChangeOptions.event,this._onDidChangeAttached=this._register(new n.Emitter),this.onDidChangeAttached=this._onDidChangeAttached.event,this._eventEmitter=this._register(new U),k++,this.id="$model"+k,this.isForSimpleWidget=t.isForSimpleWidget,this._associatedResource=null==o?r.URI.parse("inmemory://model/"+k):o,this._undoRedoService=a,this._attachedEditorCount=0,this._buffer=D(e,t.defaultEOL),this._options=O.resolveOptions(this._buffer,t);const l=this._buffer.getLineCount(),c=this._buffer.getValueLengthInRange(new d.Range(1,1,l,this._buffer.getLineLength(l)+1),0);t.largeFileOptimizations?this._isTooLargeForTokenization=c>O.LARGE_FILE_SIZE_THRESHOLD||l>O.LARGE_FILE_LINE_COUNT_THRESHOLD:this._isTooLargeForTokenization=!1, +this._isTooLargeForSyncing=c>O.MODEL_SYNC_LIMIT,this._versionId=1,this._alternativeVersionId=1,this._initialUndoRedoSnapshot=null,this._isDisposed=!1,this._isDisposing=!1,this._languageIdentifier=i||S.NULL_LANGUAGE_IDENTIFIER,this._languageRegistryListener=b.LanguageConfigurationRegistry.onDidChange(e=>{e.languageIdentifier.id===this._languageIdentifier.id&&this._onDidChangeLanguageConfiguration.fire({})}),this._instanceId=s.singleLetterHash(k),this._lastDecorationId=0,this._decorations=Object.create(null),this._decorationsTree=new A,this._commandManager=new u.EditStack(this,a),this._isUndoing=!1,this._isRedoing=!1,this._trimAutoWhitespaceLines=null,this._tokens=new E.TokensStore,this._tokens2=new E.TokensStore2,this._tokenization=new v.TextModelTokenization(this)}static resolveOptions(e,t){if(t.detectIndentation){const i=g.guessIndentation(e,t.tabSize,t.insertSpaces);return new h.TextModelResolvedOptions({tabSize:i.tabSize,indentSize:i.tabSize,insertSpaces:i.insertSpaces, +trimAutoWhitespace:t.trimAutoWhitespace,defaultEOL:t.defaultEOL})}return new h.TextModelResolvedOptions({tabSize:t.tabSize,indentSize:t.indentSize,insertSpaces:t.insertSpaces,trimAutoWhitespace:t.trimAutoWhitespace,defaultEOL:t.defaultEOL})}onDidChangeRawContentFast(e){return this._eventEmitter.fastEvent(t=>e(t.rawContentChangedEvent))}onDidChangeContentFast(e){return this._eventEmitter.fastEvent(t=>e(t.contentChangedEvent))}onDidChangeContent(e){return this._eventEmitter.slowEvent(t=>e(t.contentChangedEvent))}dispose(){this._isDisposing=!0,this._onWillDispose.fire(),this._languageRegistryListener.dispose(),this._tokenization.dispose(),this._isDisposed=!0,super.dispose(),this._isDisposing=!1}_assertNotDisposed(){if(this._isDisposed)throw new Error("Model is disposed!")}_emitContentChangedEvent(e,t){this._isDisposing||this._eventEmitter.fire(new f.InternalModelContentChangeEvent(e,t))}setValue(e){if(this._assertNotDisposed(),null===e)return;const t=D(e,this._options.defaultEOL);this.setValueFromTextBuffer(t)} +_createContentChanged2(e,t,i,n,o,s,r){return{changes:[{range:e,rangeOffset:t,rangeLength:i,text:n}],eol:this._buffer.getEOL(),versionId:this.getVersionId(),isUndoing:o,isRedoing:s,isFlush:r}}setValueFromTextBuffer(e){if(this._assertNotDisposed(),null===e)return;const t=this.getFullModelRange(),i=this.getValueLengthInRange(t),n=this.getLineCount(),o=this.getLineMaxColumn(n);this._buffer=e,this._increaseVersionId(),this._tokens.flush(),this._tokens2.flush(),this._decorations=Object.create(null),this._decorationsTree=new A,this._commandManager.clear(),this._trimAutoWhitespaceLines=null,this._emitContentChangedEvent(new f.ModelRawContentChangedEvent([new f.ModelRawFlush],this._versionId,!1,!1),this._createContentChanged2(new d.Range(1,1,n,o),0,i,this.getValue(),!1,!1,!0))}setEOL(e){this._assertNotDisposed();const t=1===e?"\r\n":"\n";if(this._buffer.getEOL()===t)return;const i=this.getFullModelRange(),n=this.getValueLengthInRange(i),o=this.getLineCount(),s=this.getLineMaxColumn(o);this._onBeforeEOLChange(), +this._buffer.setEOL(t),this._increaseVersionId(),this._onAfterEOLChange(),this._emitContentChangedEvent(new f.ModelRawContentChangedEvent([new f.ModelRawEOLChanged],this._versionId,!1,!1),this._createContentChanged2(new d.Range(1,1,o,s),0,n,this.getValue(),!1,!1,!1))}_onBeforeEOLChange(){const e=this.getVersionId(),t=this._decorationsTree.search(0,!1,!1,e);this._ensureNodesHaveRanges(t)}_onAfterEOLChange(){const e=this.getVersionId(),t=this._decorationsTree.collectNodesPostOrder();for(let i=0,n=t.length;i0}getAttachedEditorCount(){return this._attachedEditorCount}isTooLargeForSyncing(){return this._isTooLargeForSyncing}isTooLargeForTokenization(){return this._isTooLargeForTokenization}isDisposed(){return this._isDisposed}isDominatedByLongLines(){if(this._assertNotDisposed(),this.isTooLargeForTokenization())return!1;let e=0,i=0;const n=this._buffer.getLineCount();for(let o=1;o<=n;o++){const n=this._buffer.getLineLength(o);n>=t.LONG_LINE_BOUNDARY?i+=n:e+=n}return i>e}get uri(){return this._associatedResource}getOptions(){return this._assertNotDisposed(),this._options}getFormattingOptions(){return{tabSize:this._options.indentSize,insertSpaces:this._options.insertSpaces}}updateOptions(e){this._assertNotDisposed() +;let t=void 0!==e.tabSize?e.tabSize:this._options.tabSize,i=void 0!==e.indentSize?e.indentSize:this._options.indentSize,n=void 0!==e.insertSpaces?e.insertSpaces:this._options.insertSpaces,o=void 0!==e.trimAutoWhitespace?e.trimAutoWhitespace:this._options.trimAutoWhitespace,s=new h.TextModelResolvedOptions({tabSize:t,indentSize:i,insertSpaces:n,defaultEOL:this._options.defaultEOL,trimAutoWhitespace:o});if(this._options.equals(s))return;let r=this._options.createChangeEvent(s);this._options=s,this._onDidChangeOptions.fire(r)}detectIndentation(e,t){this._assertNotDisposed();let i=g.guessIndentation(this._buffer,t,e);this.updateOptions({insertSpaces:i.insertSpaces,tabSize:i.tabSize,indentSize:i.tabSize})}static _normalizeIndentationFromWhitespace(e,t,i){let n=0;for(let i=0;i({range:e.range,text:null})),()=>null)}mightContainNonBasicASCII(){return this._buffer.mightContainNonBasicASCII()}getAlternativeVersionId(){return this._assertNotDisposed(),this._alternativeVersionId}getOffsetAt(e){this._assertNotDisposed();let t=this._validatePosition(e.lineNumber,e.column,0);return this._buffer.getOffsetAt(t.lineNumber,t.column)} +getPositionAt(e){this._assertNotDisposed();let t=Math.min(this._buffer.getLength(),Math.max(0,e));return this._buffer.getPositionAt(t)}_increaseVersionId(){this._versionId=this._versionId+1,this._alternativeVersionId=this._versionId}_overwriteVersionId(e){this._versionId=e}_overwriteAlternativeVersionId(e){this._alternativeVersionId=e}_overwriteInitialUndoRedoSnapshot(e){this._initialUndoRedoSnapshot=e}getValue(e,t=!1){this._assertNotDisposed();const i=this.getFullModelRange(),n=this.getValueInRange(i,e);return t?this._buffer.getBOM()+n:n}createSnapshot(e=!1){return new I(this._buffer.createSnapshot(e))}getValueLength(e,t=!1){this._assertNotDisposed();const i=this.getFullModelRange(),n=this.getValueLengthInRange(i,e);return t?this._buffer.getBOM().length+n:n}getValueInRange(e,t=0){return this._assertNotDisposed(),this._buffer.getValueInRange(this.validateRange(e),t)}getValueLengthInRange(e,t=0){return this._assertNotDisposed(),this._buffer.getValueLengthInRange(this.validateRange(e),t)} +getCharacterCountInRange(e,t=0){return this._assertNotDisposed(),this._buffer.getCharacterCountInRange(this.validateRange(e),t)}getLineCount(){return this._assertNotDisposed(),this._buffer.getLineCount()}getLineContent(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new Error("Illegal value for lineNumber");return this._buffer.getLineContent(e)}getLineLength(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new Error("Illegal value for lineNumber");return this._buffer.getLineLength(e)}getLinesContent(){return this._assertNotDisposed(),this._buffer.getLinesContent()}getEOL(){return this._assertNotDisposed(),this._buffer.getEOL()}getLineMinColumn(e){return this._assertNotDisposed(),1}getLineMaxColumn(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new Error("Illegal value for lineNumber");return this._buffer.getLineLength(e)+1}getLineFirstNonWhitespaceColumn(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new Error("Illegal value for lineNumber") +;return this._buffer.getLineFirstNonWhitespaceColumn(e)}getLineLastNonWhitespaceColumn(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new Error("Illegal value for lineNumber");return this._buffer.getLineLastNonWhitespaceColumn(e)}_validateRangeRelaxedNoAllocations(e){const t=this._buffer.getLineCount(),i=e.startLineNumber,n=e.startColumn;let o,s;if(i<1)o=1,s=1;else if(i>t)o=t,s=this.getLineMaxColumn(o);else if(o=0|i,n<=1)s=1;else{const e=this.getLineMaxColumn(o);s=n>=e?e:0|n}const r=e.endLineNumber,a=e.endColumn;let l,h;if(r<1)l=1,h=1;else if(r>t)l=t,h=this.getLineMaxColumn(l);else if(l=0|r,a<=1)h=1;else{const e=this.getLineMaxColumn(l);h=a>=e?e:0|a}return i===o&&n===s&&r===l&&a===h&&e instanceof d.Range&&!(e instanceof c.Selection)?e:new d.Range(o,s,l,h)}_isValidPosition(e,t,i){if("number"!=typeof e||"number"!=typeof t)return!1;if(isNaN(e)||isNaN(t))return!1;if(e<1||t<1)return!1;if((0|e)!==e||(0|t)!==t)return!1;if(e>this._buffer.getLineCount())return!1;if(1===t)return!0 +;if(t>this.getLineMaxColumn(e))return!1;if(1===i){const i=this._buffer.getLineCharCode(e,t-2);if(s.isHighSurrogate(i))return!1}return!0}_validatePosition(e,t,i){const n=Math.floor("number"!=typeof e||isNaN(e)?1:e),o=Math.floor("number"!=typeof t||isNaN(t)?1:t),r=this._buffer.getLineCount();if(n<1)return new l.Position(1,1);if(n>r)return new l.Position(r,this.getLineMaxColumn(r));if(o<=1)return new l.Position(n,1);const a=this.getLineMaxColumn(n);if(o>=a)return new l.Position(n,a);if(1===i){const e=this._buffer.getLineCharCode(n,o-2);if(s.isHighSurrogate(e))return new l.Position(n,o-1)}return new l.Position(n,o)}validatePosition(e){return this._assertNotDisposed(),e instanceof l.Position&&this._isValidPosition(e.lineNumber,e.column,1)?e:this._validatePosition(e.lineNumber,e.column,1)}_isValidRange(e,t){const i=e.startLineNumber,n=e.startColumn,o=e.endLineNumber,r=e.endColumn;if(!this._isValidPosition(i,n,0))return!1;if(!this._isValidPosition(o,r,0))return!1;if(1===t){ +const e=n>1?this._buffer.getLineCharCode(i,n-2):0,t=r>1&&r<=this._buffer.getLineLength(o)?this._buffer.getLineCharCode(o,r-2):0,a=s.isHighSurrogate(e),l=s.isHighSurrogate(t);return!a&&!l}return!0}validateRange(e){if(this._assertNotDisposed(),e instanceof d.Range&&!(e instanceof c.Selection)&&this._isValidRange(e,1))return e;const t=this._validatePosition(e.startLineNumber,e.startColumn,0),i=this._validatePosition(e.endLineNumber,e.endColumn,0),n=t.lineNumber,o=t.column,r=i.lineNumber,a=i.column;{const e=o>1?this._buffer.getLineCharCode(n,o-2):0,t=a>1&&a<=this._buffer.getLineLength(r)?this._buffer.getLineCharCode(r,a-2):0,i=s.isHighSurrogate(e),l=s.isHighSurrogate(t);return i||l?n===r&&o===a?new d.Range(n,o-1,r,a-1):i&&l?new d.Range(n,o-1,r,a+1):i?new d.Range(n,o-1,r,a):new d.Range(n,o,r,a+1):new d.Range(n,o,r,a)}}modifyPosition(e,t){this._assertNotDisposed();let i=this.getOffsetAt(e)+t;return this.getPositionAt(Math.min(this._buffer.getLength(),Math.max(0,i)))}getFullModelRange(){this._assertNotDisposed() +;const e=this.getLineCount();return new d.Range(1,1,e,this.getLineMaxColumn(e))}findMatchesLineByLine(e,t,i,n){return this._buffer.findMatchesLineByLine(e,t,i,n)}findMatches(e,t,i,n,o,s,r=N){this._assertNotDisposed();let a=null;null!==t&&(Array.isArray(t)||(t=[t]),t.every(e=>d.Range.isIRange(e))&&(a=t.map(e=>this.validateRange(e)))),null===a&&(a=[this.getFullModelRange()]),a=a.sort((e,t)=>e.startLineNumber-t.startLineNumber||e.startColumn-t.startColumn);const l=[];let c;if(l.push(a.reduce((e,t)=>d.Range.areIntersecting(e,t)?e.plusRange(t):(l.push(e),t))),!i&&e.indexOf("\n")<0){const t=new _.SearchParams(e,i,n,o).parseSearchRequest();if(!t)return[];c=e=>this.findMatchesLineByLine(e,t,s,r)}else c=t=>_.TextModelSearch.findMatches(this,new _.SearchParams(e,i,n,o),t,s,r);return l.map(c).reduce((e,t)=>e.concat(t),[])}findNextMatch(e,t,i,n,o,s){this._assertNotDisposed();const r=this.validatePosition(t);if(!i&&e.indexOf("\n")<0){const t=new _.SearchParams(e,i,n,o).parseSearchRequest();if(!t)return null +;const a=this.getLineCount();let l=new d.Range(r.lineNumber,r.column,a,this.getLineMaxColumn(a)),c=this.findMatchesLineByLine(l,t,s,1);return _.TextModelSearch.findNextMatch(this,new _.SearchParams(e,i,n,o),r,s),c.length>0?c[0]:(l=new d.Range(1,1,r.lineNumber,this.getLineMaxColumn(r.lineNumber)),(c=this.findMatchesLineByLine(l,t,s,1)).length>0?c[0]:null)}return _.TextModelSearch.findNextMatch(this,new _.SearchParams(e,i,n,o),r,s)}findPreviousMatch(e,t,i,n,o,s){this._assertNotDisposed();const r=this.validatePosition(t);return _.TextModelSearch.findPreviousMatch(this,new _.SearchParams(e,i,n,o),r,s)}pushStackElement(){this._commandManager.pushStackElement()}pushEOL(e){if(("\n"===this.getEOL()?0:1)!==e)try{this._onDidChangeDecorations.beginDeferredEmit(),this._eventEmitter.beginDeferredEmit(),null===this._initialUndoRedoSnapshot&&(this._initialUndoRedoSnapshot=this._undoRedoService.createSnapshot(this.uri)),this._commandManager.pushEOL(e)}finally{this._eventEmitter.endDeferredEmit(), +this._onDidChangeDecorations.endDeferredEmit()}}_validateEditOperation(e){return e instanceof h.ValidAnnotatedEditOperation?e:new h.ValidAnnotatedEditOperation(e.identifier||null,this.validateRange(e.range),e.text,e.forceMoveMarkers||!1,e.isAutoWhitespaceEdit||!1,e._isTracked||!1)}_validateEditOperations(e){const t=[];for(let i=0,n=e.length;i({range:this.validateRange(e.range),text:e.text})),n=!0;if(e)for(let t=0,o=e.length;to.endLineNumber,r=o.startLineNumber>t.endLineNumber +;if(!n&&!r){s=!0;break}}if(!s){n=!1;break}}if(n)for(let e=0,n=this._trimAutoWhitespaceLines.length;et.endLineNumber)&&!(n===t.startLineNumber&&t.startColumn===o&&t.isEmpty()&&r&&r.length>0&&"\n"===r.charAt(0)||n===t.startLineNumber&&1===t.startColumn&&t.isEmpty()&&r&&r.length>0&&"\n"===r.charAt(r.length-1))){s=!1;break}}if(s){const e=new d.Range(n,1,n,o);t.push(new h.ValidAnnotatedEditOperation(null,e,null,!1,!1,!1))}}this._trimAutoWhitespaceLines=null}return null===this._initialUndoRedoSnapshot&&(this._initialUndoRedoSnapshot=this._undoRedoService.createSnapshot(this.uri)),this._commandManager.pushEditOperation(e,t,i)}_applyUndo(e,t,i,n){const o=e.map(e=>{const t=this.getPositionAt(e.newPosition),i=this.getPositionAt(e.newEnd);return{range:new d.Range(t.lineNumber,t.column,i.lineNumber,i.column),text:e.oldText}}) +;this._applyUndoRedoEdits(o,t,!0,!1,i,n)}_applyRedo(e,t,i,n){const o=e.map(e=>{const t=this.getPositionAt(e.oldPosition),i=this.getPositionAt(e.oldEnd);return{range:new d.Range(t.lineNumber,t.column,i.lineNumber,i.column),text:e.newText}});this._applyUndoRedoEdits(o,t,!1,!0,i,n)}_applyUndoRedoEdits(e,t,i,n,o,s){try{this._onDidChangeDecorations.beginDeferredEmit(),this._eventEmitter.beginDeferredEmit(),this._isUndoing=i,this._isRedoing=n,this.applyEdits(e,!1),this.setEOL(t),this._overwriteAlternativeVersionId(o)}finally{this._isUndoing=!1,this._isRedoing=!1,this._eventEmitter.endDeferredEmit(s),this._onDidChangeDecorations.endDeferredEmit()}}applyEdits(e,t=!1){try{this._onDidChangeDecorations.beginDeferredEmit(),this._eventEmitter.beginDeferredEmit();const i=this._validateEditOperations(e);return this._doApplyEdits(i,t)}finally{this._eventEmitter.endDeferredEmit(),this._onDidChangeDecorations.endDeferredEmit()}}_doApplyEdits(e,t){ +const i=this._buffer.getLineCount(),n=this._buffer.applyEdits(e,this._options.trimAutoWhitespace,t),o=this._buffer.getLineCount(),s=n.changes;if(this._trimAutoWhitespaceLines=n.trimAutoWhitespaceLineNumbers,0!==s.length){let e=[],t=i;for(let i=0,n=s.length;i0?n.text.charCodeAt(0):0),this._onDidChangeDecorations.fire(),this._decorationsTree.acceptReplace(n.rangeOffset,n.rangeLength,n.text.length,n.forceMoveMarkers);const d=n.range.startLineNumber,c=n.range.endLineNumber,h=c-d,u=r,g=Math.min(h,u),p=u-h;for(let i=g;i>=0;i--){const n=d+i,s=o-t-p+n;e.push(new f.ModelRawLineChanged(n,this.getLineContent(s)))}if(gthis._deltaDecorationsImpl(e,[],[{range:t,options:i}])[0],changeDecoration:(e,t)=>{this._changeDecorationImpl(e,t)},changeDecorationOptions:(e,t)=>{this._changeDecorationOptionsImpl(e,H(t))},removeDecoration:t=>{this._deltaDecorationsImpl(e,[t],[])}, +deltaDecorations:(t,i)=>0===t.length&&0===i.length?[]:this._deltaDecorationsImpl(e,t,i)},o=null;try{o=t(n)}catch(e){i.onUnexpectedError(e)}return n.addDecoration=M,n.changeDecoration=M,n.changeDecorationOptions=M,n.removeDecoration=M,n.deltaDecorations=M,o}deltaDecorations(e,t,i=0){if(this._assertNotDisposed(),e||(e=[]),0===e.length&&0===t.length)return[];try{return this._onDidChangeDecorations.beginDeferredEmit(),this._deltaDecorationsImpl(i,e,t)}finally{this._onDidChangeDecorations.endDeferredEmit()}}_getTrackedRange(e){return this.getDecorationRange(e)}_setTrackedRange(e,t,i){const n=e?this._decorations[e]:null;if(!n)return t?this._deltaDecorationsImpl(0,[],[{range:t,options:z[i]}])[0]:null;if(!t)return this._decorationsTree.delete(n),delete this._decorations[n.id],null;const o=this._validateRangeRelaxedNoAllocations(t),s=this._buffer.getOffsetAt(o.startLineNumber,o.startColumn),r=this._buffer.getOffsetAt(o.endLineNumber,o.endColumn);return this._decorationsTree.delete(n), +n.reset(this.getVersionId(),s,r,o),n.setOptions(z[i]),this._decorationsTree.insert(n),n.id}removeAllDecorationsWithOwnerId(e){if(this._isDisposed)return;const t=this._decorationsTree.collectNodesFromOwner(e);for(let e=0,i=t.length;ethis.getLineCount()?[]:this.getLinesDecorations(e,e,t,i)}getLinesDecorations(e,t,i=0,n=!1){let o=this.getLineCount(),s=Math.min(o,Math.max(1,e)),r=Math.min(o,Math.max(1,t)),a=this.getLineMaxColumn(r);return this._getDecorationsInRange(new d.Range(s,1,r,a),i,n)}getDecorationsInRange(e,t=0,i=!1){let n=this.validateRange(e) +;return this._getDecorationsInRange(n,t,i)}getOverviewRulerDecorations(e=0,t=!1){const i=this.getVersionId(),n=this._decorationsTree.search(e,t,!0,i);return this._ensureNodesHaveRanges(n)}getAllDecorations(e=0,t=!1){const i=this.getVersionId(),n=this._decorationsTree.search(e,t,!1,i);return this._ensureNodesHaveRanges(n)}_getDecorationsInRange(e,t,i){const n=this._buffer.getOffsetAt(e.startLineNumber,e.startColumn),o=this._buffer.getOffsetAt(e.endLineNumber,e.endColumn),s=this.getVersionId(),r=this._decorationsTree.intervalSearch(n,o,t,i,s);return this._ensureNodesHaveRanges(r)}_ensureNodesHaveRanges(e){for(let t=0,i=e.length;t0&&this._emitModelTokensChangedEvent({tokenizationSupportChanged:!1,semanticTokensApplied:!1,ranges:t})}setSemanticTokens(e,t){this._tokens2.set(e,t),this._emitModelTokensChangedEvent({tokenizationSupportChanged:!1,semanticTokensApplied:null!==e,ranges:[{fromLineNumber:1,toLineNumber:this.getLineCount()}]})}hasSemanticTokens(){return this._tokens2.isComplete()}setPartialSemanticTokens(e,t){if(this.hasSemanticTokens())return;const i=this._tokens2.setPartial(e,t);this._emitModelTokensChangedEvent({tokenizationSupportChanged:!1,semanticTokensApplied:!0,ranges:[{fromLineNumber:i.startLineNumber,toLineNumber:i.endLineNumber}]})}tokenizeViewport(e,t){e=Math.max(1,e),t=Math.min(this._buffer.getLineCount(),t),this._tokenization.tokenizeViewport(e,t)}clearTokens(){this._tokens.flush(),this._emitModelTokensChangedEvent({tokenizationSupportChanged:!0,semanticTokensApplied:!1,ranges:[{fromLineNumber:1,toLineNumber:this._buffer.getLineCount()}]})}_emitModelTokensChangedEvent(e){ +this._isDisposing||this._onDidChangeTokens.fire(e)}resetTokenization(){this._tokenization.reset()}forceTokenization(e){if(e<1||e>this.getLineCount())throw new Error("Illegal value for lineNumber");this._tokenization.forceTokenization(e)}isCheapToTokenize(e){return this._tokenization.isCheapToTokenize(e)}tokenizeIfCheap(e){this.isCheapToTokenize(e)&&this.forceTokenization(e)}getLineTokens(e){if(e<1||e>this.getLineCount())throw new Error("Illegal value for lineNumber");return this._getLineTokens(e)}_getLineTokens(e){const t=this.getLineContent(e),i=this._tokens.getTokens(this._languageIdentifier.id,e-1,t);return this._tokens2.addSemanticTokens(e,i)}getLanguageIdentifier(){return this._languageIdentifier}getModeId(){return this._languageIdentifier.language}setMode(e){if(this._languageIdentifier.id===e.id)return;let t={oldLanguage:this._languageIdentifier.language,newLanguage:e.language};this._languageIdentifier=e,this._onDidChangeLanguage.fire(t),this._onDidChangeLanguageConfiguration.fire({})} +getLanguageIdAtPosition(e,t){const i=this.validatePosition(new l.Position(e,t)),n=this.getLineTokens(i.lineNumber);return n.getLanguageId(n.findTokenIndexAtOffset(i.column-1))}getWordAtPosition(e){this._assertNotDisposed();const t=this.validatePosition(e),i=this.getLineContent(t.lineNumber),n=this._getLineTokens(t.lineNumber),o=n.findTokenIndexAtOffset(t.column-1),[s,r]=O._findLanguageBoundaries(n,o),a=C.getWordAtText(t.column,b.LanguageConfigurationRegistry.getWordDefinition(n.getLanguageId(o)),i.substring(s,r),s);if(a&&a.startColumn<=e.column&&e.column<=a.endColumn)return a;if(o>0&&s===t.column-1){const[s,r]=O._findLanguageBoundaries(n,o-1),a=C.getWordAtText(t.column,b.LanguageConfigurationRegistry.getWordDefinition(n.getLanguageId(o-1)),i.substring(s,r),s);if(a&&a.startColumn<=e.column&&e.column<=a.endColumn)return a}return null}static _findLanguageBoundaries(e,t){const i=e.getLanguageId(t);let n=0;for(let o=t;o>=0&&e.getLanguageId(o)===i;o--)n=e.getStartOffset(o);let o=e.getLineContent().length +;for(let n=t,s=e.getCount();n=0;e--){const t=i.getEndOffset(e);if(t<=n)break;w.ignoreBracketsInToken(i.getStandardTokenType(e))&&(n=t)}const a=Math.min(o.length,e.column-1+r.maxBracketLength);let l=null;for(;;){const i=y.BracketsUtils.findNextBracketInRange(r.forwardRegex,t,o,n,a);if(!i)break;if(i.startColumn<=e.column&&e.column<=i.endColumn){const e=o.substring(i.startColumn-1,i.endColumn-1).toLowerCase(),t=this._matchFoundBracket(i,r.textIsBracket[e],r.textIsOpenBracket[e],null);if(t){if(t instanceof R)return null;l=t}}n=i.endColumn-1}if(l)return l}if(s>0&&i.getStartOffset(s)===e.column-1){const r=s-1,a=b.LanguageConfigurationRegistry.getBracketsSupport(i.getLanguageId(r));if(a&&!w.ignoreBracketsInToken(i.getStandardTokenType(r))){const s=Math.max(0,e.column-1-a.maxBracketLength);let l=Math.min(o.length,e.column-1+a.maxBracketLength);for(let e=r+1;e=l)break;w.ignoreBracketsInToken(i.getStandardTokenType(e))&&(l=t)} +const d=y.BracketsUtils.findPrevBracketInRange(a.reversedRegex,t,o,s,l);if(d&&d.startColumn<=e.column&&e.column<=d.endColumn){const e=o.substring(d.startColumn-1,d.endColumn-1).toLowerCase(),t=this._matchFoundBracket(d,a.textIsBracket[e],a.textIsOpenBracket[e],null);if(t)return t instanceof R?null:t}}}return null}_matchFoundBracket(e,t,i,n){if(!t)return null;const o=i?this._findMatchingBracketDown(t,e.getEndPosition(),n):this._findMatchingBracketUp(t,e.getStartPosition(),n);return o?o instanceof R?o:[e,o]:null}_findMatchingBracketUp(e,t,i){const n=e.languageIdentifier.id,o=e.reversedRegex;let s=-1,r=0;const a=(t,n,a,l)=>{for(;;){if(i&&++r%100==0&&!i())return R.INSTANCE;const d=y.BracketsUtils.findPrevBracketInRange(o,t,n,a,l);if(!d)break;const c=n.substring(d.startColumn-1,d.endColumn-1).toLowerCase();if(e.isOpen(c)?s++:e.isClose(c)&&s--,0===s)return d;l=d.startColumn-1}return null};for(let e=t.lineNumber;e>=1;e--){const i=this._getLineTokens(e),o=i.getCount(),s=this._buffer.getLineContent(e) +;let r=o-1,l=s.length,d=s.length;e===t.lineNumber&&(r=i.findTokenIndexAtOffset(t.column-1),l=t.column-1,d=t.column-1);let c=!0;for(;r>=0;r--){const t=i.getLanguageId(r)===n&&!w.ignoreBracketsInToken(i.getStandardTokenType(r));if(t)c?l=i.getStartOffset(r):(l=i.getStartOffset(r),d=i.getEndOffset(r));else if(c&&l!==d){const t=a(e,s,l,d);if(t)return t}c=t}if(c&&l!==d){const t=a(e,s,l,d);if(t)return t}}return null}_findMatchingBracketDown(e,t,i){const n=e.languageIdentifier.id,o=e.forwardRegex;let s=1,r=0;const a=(t,n,a,l)=>{for(;;){if(i&&++r%100==0&&!i())return R.INSTANCE;const d=y.BracketsUtils.findNextBracketInRange(o,t,n,a,l);if(!d)break;const c=n.substring(d.startColumn-1,d.endColumn-1).toLowerCase();if(e.isOpen(c)?s++:e.isClose(c)&&s--,0===s)return d;a=d.endColumn-1}return null},l=this.getLineCount();for(let e=t.lineNumber;e<=l;e++){const i=this._getLineTokens(e),o=i.getCount(),s=this._buffer.getLineContent(e);let r=0,l=0,d=0;e===t.lineNumber&&(r=i.findTokenIndexAtOffset(t.column-1),l=t.column-1, +d=t.column-1);let c=!0;for(;r=1;e--){const o=this._getLineTokens(e),s=o.getCount(),r=this._buffer.getLineContent(e);let a=s-1,l=r.length,d=r.length;if(e===t.lineNumber){a=o.findTokenIndexAtOffset(t.column-1),l=t.column-1,d=t.column-1;const e=o.getLanguageId(a);i!==e&&(i=e,n=b.LanguageConfigurationRegistry.getBracketsSupport(i))}let c=!0;for(;a>=0;a--){const t=o.getLanguageId(a);if(i!==t){if(n&&c&&l!==d){const t=y.BracketsUtils.findPrevBracketInRange(n.reversedRegex,e,r,l,d);if(t)return this._toFoundBracket(n,t);c=!1}i=t,n=b.LanguageConfigurationRegistry.getBracketsSupport(i)}const s=!!n&&!w.ignoreBracketsInToken(o.getStandardTokenType(a)) +;if(s)c?l=o.getStartOffset(a):(l=o.getStartOffset(a),d=o.getEndOffset(a));else if(n&&c&&l!==d){const t=y.BracketsUtils.findPrevBracketInRange(n.reversedRegex,e,r,l,d);if(t)return this._toFoundBracket(n,t)}c=s}if(n&&c&&l!==d){const t=y.BracketsUtils.findPrevBracketInRange(n.reversedRegex,e,r,l,d);if(t)return this._toFoundBracket(n,t)}}return null}findNextBracket(e){const t=this.validatePosition(e),i=this.getLineCount();let n=-1,o=null;for(let e=t.lineNumber;e<=i;e++){const i=this._getLineTokens(e),s=i.getCount(),r=this._buffer.getLineContent(e);let a=0,l=0,d=0;if(e===t.lineNumber){a=i.findTokenIndexAtOffset(t.column-1),l=t.column-1,d=t.column-1;const e=i.getLanguageId(a);n!==e&&(n=e,o=b.LanguageConfigurationRegistry.getBracketsSupport(n))}let c=!0;for(;aDate.now()-e<=t}const n=this.validatePosition(e),o=this.getLineCount(),s=new Map;let r=[];const a=(e,t)=>{if(!s.has(e)){let i=[];for(let e=0,n=t?t.brackets.length:0;e{for(;;){if(i&&++l%100==0&&!i())return R.INSTANCE;const a=y.BracketsUtils.findNextBracketInRange(e.forwardRegex,t,n,o,s);if(!a)break;const d=n.substring(a.startColumn-1,a.endColumn-1).toLowerCase(),c=e.textIsBracket[d];if(c&&(c.isOpen(d)?r[c.index]++:c.isClose(d)&&r[c.index]--, +-1===r[c.index]))return this._matchFoundBracket(a,c,!1,i);o=a.endColumn-1}return null};let c=-1,h=null;for(let e=n.lineNumber;e<=o;e++){const t=this._getLineTokens(e),i=t.getCount(),o=this._buffer.getLineContent(e);let s=0,r=0,l=0;if(e===n.lineNumber){s=t.findTokenIndexAtOffset(n.column-1),r=n.column-1,l=n.column-1;const e=t.getLanguageId(s);c!==e&&a(c=e,h=b.LanguageConfigurationRegistry.getBracketsSupport(c))}let u=!0;for(;sn)throw new Error("Illegal value for lineNumber");const o=b.LanguageConfigurationRegistry.getFoldingRules(this._languageIdentifier.id),s=Boolean(o&&o.offSide);let r=-2,a=-1,l=-2,d=-1;const c=e=>{if(-1!==r&&(-2===r||r>e-1)){r=-1,a=-1;for(let t=e-2;t>=0;t--){let e=this._computeIndentLevel(t);if(e>=0){r=t,a=e;break}}}if(-2===l){l=-1,d=-1;for(let t=e;t=0){l=t,d=e;break}}}};let h=-2,u=-1,g=-2,p=-1;const m=e=>{if(-2===h){h=-1,u=-1;for(let t=e-2;t>=0;t--){let e=this._computeIndentLevel(t);if(e>=0){h=t,u=e;break}}}if(-1!==g&&(-2===g||g=0){g=t,p=e;break}}}};let f=0,_=!0,v=0,C=!0,S=0,w=0;for(let o=0;_||C;o++){const r=e-o,g=e+o;o>1&&(r<1||r1&&(g>n||g>i)&&(C=!1),o>5e4&&(_=!1,C=!1);let b=-1;if(_){const e=this._computeIndentLevel(r-1);e>=0?(l=r-1,d=e,b=Math.ceil(e/this._options.indentSize)):(c(r),b=this._getIndentLevelForWhitespaceLine(s,a,d))}let y=-1;if(C){const e=this._computeIndentLevel(g-1);e>=0?(h=g-1,u=e,y=Math.ceil(e/this._options.indentSize)):(m(g),y=this._getIndentLevelForWhitespaceLine(s,u,p))}if(0!==o){if(1===o){if(g<=n&&y>=0&&w+1===y){_=!1,f=g,v=g,S=y;continue}if(r>=1&&b>=0&&b-1===w){C=!1,f=r,v=r,S=b;continue}if(f=e,v=e,0===(S=w))return{startLineNumber:f,endLineNumber:v,indent:S}}_&&(b>=S?f=r:_=!1),C&&(y>=S?v=g:C=!1)}else w=b}return{startLineNumber:f,endLineNumber:v,indent:S}}getLinesIndentGuides(e,t){this._assertNotDisposed();const i=this.getLineCount();if(e<1||e>i)throw new Error("Illegal value for startLineNumber");if(t<1||t>i)throw new Error("Illegal value for endLineNumber") +;const n=b.LanguageConfigurationRegistry.getFoldingRules(this._languageIdentifier.id),o=Boolean(n&&n.offSide);let s=new Array(t-e+1),r=-2,a=-1,l=-2,d=-1;for(let n=e;n<=t;n++){let t=n-e;const c=this._computeIndentLevel(n-1);if(c>=0)r=n-1,a=c,s[t]=Math.ceil(c/this._options.indentSize);else{if(-2===r){r=-1,a=-1;for(let e=n-2;e>=0;e--){let t=this._computeIndentLevel(e);if(t>=0){r=e,a=t;break}}}if(-1!==l&&(-2===l||l=0){l=e,d=t;break}}}s[t]=this._getIndentLevelForWhitespaceLine(o,a,d)}}return s}_getIndentLevelForWhitespaceLine(e,t,i){return-1===t||-1===i?0:t0?this._deferredEvent?this._deferredEvent=this._deferredEvent.merge(e):this._deferredEvent=e:(this._fastEmitter.fire(e),this._slowEmitter.fire(e))}}t.DidChangeContentEmitter=U})),define(t[45],i([0,1,12,8,13,3,20,31,42]),(function(e,t,i,n,o,s,r,a,l){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isQuote=t.CursorColumns=t.EditOperationResult=t.CursorState=t.PartialViewCursorState=t.PartialModelCursorState=t.CursorContext=t.SingleCursorState=t.CursorConfiguration=void 0;const d=()=>!0,c=()=>!1,h=e=>" "===e||"\t"===e;function u(e,t,i){ +e.has(t)?e.get(t).push(i):e.set(t,[i])}class g{constructor(e,t,i){this._languageIdentifier=e;const n=i.options,o=n.get(117);this.readOnly=n.get(72),this.tabSize=t.tabSize,this.indentSize=t.indentSize,this.insertSpaces=t.insertSpaces,this.lineHeight=n.get(51),this.pageSize=Math.max(1,Math.floor(o.height/this.lineHeight)-2),this.useTabStops=n.get(104),this.wordSeparators=n.get(105),this.emptySelectionClipboard=n.get(26),this.copyWithSyntaxHighlighting=n.get(16),this.multiCursorMergeOverlapping=n.get(60),this.multiCursorPaste=n.get(62),this.autoClosingBrackets=n.get(5),this.autoClosingQuotes=n.get(7),this.autoClosingOvertype=n.get(6),this.autoSurround=n.get(10),this.autoIndent=n.get(8),this.autoClosingPairsOpen2=new Map,this.autoClosingPairsClose2=new Map,this.surroundingPairs={},this._electricChars=null,this.shouldAutoCloseBefore={quote:g._getShouldAutoClose(e,this.autoClosingQuotes),bracket:g._getShouldAutoClose(e,this.autoClosingBrackets)};let s=g._getAutoClosingPairs(e) +;if(s)for(const e of s)u(this.autoClosingPairsOpen2,e.open.charAt(e.open.length-1),e),1===e.close.length&&u(this.autoClosingPairsClose2,e.close,e);let r=g._getSurroundingPairs(e);if(r)for(const e of r)this.surroundingPairs[e.open]=e.close}static shouldRecreate(e){return e.hasChanged(117)||e.hasChanged(105)||e.hasChanged(26)||e.hasChanged(60)||e.hasChanged(62)||e.hasChanged(5)||e.hasChanged(7)||e.hasChanged(6)||e.hasChanged(10)||e.hasChanged(104)||e.hasChanged(51)||e.hasChanged(72)}get electricChars(){if(!this._electricChars){this._electricChars={};let e=g._getElectricCharacters(this._languageIdentifier);if(e)for(const t of e)this._electricChars[t]=!0}return this._electricChars}normalizeIndentation(e){return a.TextModel.normalizeIndentation(e,this.indentSize,this.insertSpaces)}static _getElectricCharacters(e){try{return l.LanguageConfigurationRegistry.getElectricCharacters(e.id)}catch(e){return i.onUnexpectedError(e),null}}static _getAutoClosingPairs(e){try{ +return l.LanguageConfigurationRegistry.getAutoClosingPairs(e.id)}catch(e){return i.onUnexpectedError(e),null}}static _getShouldAutoClose(e,t){switch(t){case"beforeWhitespace":return h;case"languageDefined":return g._getLanguageDefinedShouldAutoClose(e);case"always":return d;case"never":return c}}static _getLanguageDefinedShouldAutoClose(e){try{const t=l.LanguageConfigurationRegistry.getAutoCloseBeforeSet(e.id);return e=>-1!==t.indexOf(e)}catch(e){return i.onUnexpectedError(e),c}}static _getSurroundingPairs(e){try{return l.LanguageConfigurationRegistry.getSurroundingPairs(e.id)}catch(e){return i.onUnexpectedError(e),null}}}t.CursorConfiguration=g;class p{constructor(e,t,i,n){this.selectionStart=e,this.selectionStartLeftoverVisibleColumns=t,this.position=i,this.leftoverVisibleColumns=n,this.selection=p._computeSelection(this.selectionStart,this.position)}equals(e){ +return this.selectionStartLeftoverVisibleColumns===e.selectionStartLeftoverVisibleColumns&&this.leftoverVisibleColumns===e.leftoverVisibleColumns&&this.position.equals(e.position)&&this.selectionStart.equalsRange(e.selectionStart)}hasSelection(){return!this.selection.isEmpty()||!this.selectionStart.isEmpty()}move(e,t,i,n){return e?new p(this.selectionStart,this.selectionStartLeftoverVisibleColumns,new o.Position(t,i),n):new p(new s.Range(t,i,t,i),n,new o.Position(t,i),n)}static _computeSelection(e,t){let i,n,o,s;return e.isEmpty()?(i=e.startLineNumber,n=e.startColumn,o=t.lineNumber,s=t.column):t.isBeforeOrEqual(e.getStartPosition())?(i=e.endLineNumber,n=e.endColumn,o=t.lineNumber,s=t.column):(i=e.startLineNumber,n=e.startColumn,o=t.lineNumber,s=t.column),new r.Selection(i,n,o,s)}}t.SingleCursorState=p;t.CursorContext=class{constructor(e,t,i){this.model=e,this.coordinatesConverter=t,this.cursorConfig=i}};class m{constructor(e){this.modelState=e,this.viewState=null}}t.PartialModelCursorState=m;class f{ +constructor(e){this.modelState=null,this.viewState=e}}t.PartialViewCursorState=f;class _{constructor(e,t){this.modelState=e,this.viewState=t}static fromModelState(e){return new m(e)}static fromViewState(e){return new f(e)}static fromModelSelection(e){const t=e.selectionStartLineNumber,i=e.selectionStartColumn,n=e.positionLineNumber,r=e.positionColumn,a=new p(new s.Range(t,i,t,i),0,new o.Position(n,r),0);return _.fromModelState(a)}static fromModelSelections(e){let t=[];for(let i=0,n=e.length;i=65536?2:1, +9===t)r=v.nextRenderTabStop(r,i);else{let i=n.getGraphemeBreakType(t);for(;a=65536?2:1,i=o}n.isFullWidthCharacter(t)||n.isEmojiImprecise(t)?r+=2:r+=1}}return r}static visibleColumnFromColumn2(e,t,i){return this.visibleColumnFromColumn(t.getLineContent(i.lineNumber),i.column,e.tabSize)}static columnFromVisibleColumn(e,t,i){if(t<=0)return 1;const o=e.length;let s=0,r=1,a=0;for(;a=65536?2:1,9===l)d=v.nextRenderTabStop(s,i);else{let t=n.getGraphemeBreakType(l);for(;a=65536?2:1,t=s}d=n.isFullWidthCharacter(l)||n.isEmojiImprecise(l)?s+2:s+1}const c=a+1;if(d>=t){return d-tr?r:o}static nextRenderTabStop(e,t){return e+t-e%t}static nextIndentTabStop(e,t){return e+t-e%t}static prevRenderTabStop(e,t){return e-1-(e-1)%t}static prevIndentTabStop(e,t){return e-1-(e-1)%t}}t.CursorColumns=v,t.isQuote=function(e){return"'"===e||'"'===e||"`"===e}})),define(t[169],i([0,1,8,45,3,20,42]),(function(e,t,i,n,o,s,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ShiftCommand=t.cachedStringRepeat=void 0;const a=Object.create(null);function l(e,t){a[e]||(a[e]=["",e]);const i=a[e];for(let n=i.length;n<=t;n++)i[n]=i[n-1]+e;return i[t]}t.cachedStringRepeat=l;class d{constructor(e,t){this._opts=t,this._selection=e,this._selectionId=null,this._useLastEditRangeForCursorEndPosition=!1,this._selectionStartColumnStaysPut=!1}static unshiftIndent(e,t,i,o,s){const r=n.CursorColumns.visibleColumnFromColumn(e,t,i);if(s){const e=l(" ",o);return l(e,n.CursorColumns.prevIndentTabStop(r,o)/o)} +return l("\t",n.CursorColumns.prevRenderTabStop(r,i)/i)}static shiftIndent(e,t,i,o,s){const r=n.CursorColumns.visibleColumnFromColumn(e,t,i);if(s){const e=l(" ",o);return l(e,n.CursorColumns.nextIndentTabStop(r,o)/o)}return l("\t",n.CursorColumns.nextRenderTabStop(r,i)/i)}_addEditOperation(e,t,i){this._useLastEditRangeForCursorEndPosition?e.addTrackedEditOperation(t,i):e.addEditOperation(t,i)}getEditOperations(e,t){const s=this._selection.startLineNumber;let a=this._selection.endLineNumber;1===this._selection.endColumn&&s!==a&&(a-=1);const{tabSize:c,indentSize:h,insertSpaces:u}=this._opts,g=s===a;if(this._opts.useTabStops){this._selection.isEmpty()&&/^\s*$/.test(e.getLineContent(s))&&(this._useLastEditRangeForCursorEndPosition=!0);let l=0,p=0;for(let m=s;m<=a;m++,l=p){p=0;let a,f=e.getLineContent(m),_=i.firstNonWhitespaceIndex(f);if((!this._opts.isUnshift||0!==f.length&&0!==_)&&(g||this._opts.isUnshift||0!==f.length)){if(-1===_&&(_=f.length),m>1){ +if(n.CursorColumns.visibleColumnFromColumn(f,_+1,c)%h!=0&&e.isCheapToTokenize(m-1)){let t=r.LanguageConfigurationRegistry.getEnterAction(this._opts.autoIndent,e,new o.Range(m-1,e.getLineMaxColumn(m-1),m-1,e.getLineMaxColumn(m-1)));if(t){if(p=l,t.appendText)for(let e=0,i=t.appendText.length;ea,h=r>l,u=rl)continue;if(_r)continue;if(f1&&n--, +s.columnSelect(e,t,i.fromViewLineNumber,i.fromViewVisualColumn,i.toViewLineNumber,n)}static columnSelectRight(e,t,o){let s=0;const r=Math.min(o.fromViewLineNumber,o.toViewLineNumber),a=Math.max(o.fromViewLineNumber,o.toViewLineNumber);for(let o=r;o<=a;o++){const r=t.getLineMaxColumn(o),a=i.CursorColumns.visibleColumnFromColumn2(e,t,new n.Position(o,r));s=Math.max(s,a)}let l=o.toViewVisualColumn;return le.getLineMinColumn(t)?i-=s.prevCharLength(e.getLineContent(t),i-1):t>1&&(t-=1,i=e.getLineMaxColumn(t)),new n.Position(t,i)}static left(e,t,i,n){const o=a.leftPosition(t,i,n);return new r(o.lineNumber,o.column,0)}static moveLeft(e,t,i,n,o){let s,r;if(i.hasSelection()&&!n)s=i.selection.startLineNumber,r=i.selection.startColumn;else{let n=a.left(e,t,i.position.lineNumber,i.position.column-(o-1));s=n.lineNumber,r=n.column}return i.move(n,s,r,0)}static rightPosition(e,t,i){return ic?(n=c,o=l?t.getLineMaxColumn(n):Math.min(t.getLineMaxColumn(n),o)):o=i.CursorColumns.columnFromVisibleColumn2(e,t,n,d),s=h?0:d-i.CursorColumns.visibleColumnFromColumn(t.getLineContent(n),o,e.tabSize),new r(n,o,s)}static moveDown(e,t,i,n,o){let s,r;i.hasSelection()&&!n?(s=i.selection.endLineNumber,r=i.selection.endColumn):(s=i.position.lineNumber,r=i.position.column);let l=a.down(e,t,s,r,i.leftoverVisibleColumns,o,!0);return i.move(n,l.lineNumber,l.column,l.leftoverVisibleColumns)}static translateDown(e,t,s){ +let r=s.selection,l=a.down(e,t,r.selectionStartLineNumber,r.selectionStartColumn,s.selectionStartLeftoverVisibleColumns,1,!1),d=a.down(e,t,r.positionLineNumber,r.positionColumn,s.leftoverVisibleColumns,1,!1);return new i.SingleCursorState(new o.Range(l.lineNumber,l.column,l.lineNumber,l.column),l.leftoverVisibleColumns,new n.Position(d.lineNumber,d.column),d.leftoverVisibleColumns)}static up(e,t,n,o,s,a,l){const d=i.CursorColumns.visibleColumnFromColumn(t.getLineContent(n),o,e.tabSize)+s,c=1===n&&1===o;return(n-=a)<1?(n=1,o=l?t.getLineMinColumn(n):Math.min(t.getLineMaxColumn(n),o)):o=i.CursorColumns.columnFromVisibleColumn2(e,t,n,d),s=c?0:d-i.CursorColumns.visibleColumnFromColumn(t.getLineContent(n),o,e.tabSize),new r(n,o,s)}static moveUp(e,t,i,n,o){let s,r;i.hasSelection()&&!n?(s=i.selection.startLineNumber,r=i.selection.startColumn):(s=i.position.lineNumber,r=i.position.column);let l=a.up(e,t,s,r,i.leftoverVisibleColumns,o,!0);return i.move(n,l.lineNumber,l.column,l.leftoverVisibleColumns)} +static translateUp(e,t,s){let r=s.selection,l=a.up(e,t,r.selectionStartLineNumber,r.selectionStartColumn,s.selectionStartLeftoverVisibleColumns,1,!1),d=a.up(e,t,r.positionLineNumber,r.positionColumn,s.leftoverVisibleColumns,1,!1);return new i.SingleCursorState(new o.Range(l.lineNumber,l.column,l.lineNumber,l.column),l.leftoverVisibleColumns,new n.Position(d.lineNumber,d.column),d.leftoverVisibleColumns)}static moveToBeginningOfLine(e,t,i,n){let o,s=i.position.lineNumber,r=t.getLineMinColumn(s),a=t.getLineFirstNonWhitespaceColumn(s)||r;return o=i.position.column===a?r:a,i.move(n,s,o,0)}static moveToEndOfLine(e,t,i,n,o){let s=i.position.lineNumber,r=t.getLineMaxColumn(s);return i.move(n,s,r,o?1073741824-r:0)}static moveToBeginningOfBuffer(e,t,i,n){return i.move(n,1,1,0)}static moveToEndOfBuffer(e,t,i,n){let o=t.getLineCount(),s=t.getLineMaxColumn(o);return i.move(n,o,s,0)}}t.MoveOperations=a})),define(t[232],i([0,1,8,88,45,170,3]),(function(e,t,i,n,o,s,r){"use strict";Object.defineProperty(t,"__esModule",{ +value:!0}),t.DeleteOperations=void 0;t.DeleteOperations=class{static deleteRight(e,t,i,o){let a=[],l=3!==e;for(let e=0,d=o.length;e1){let n=a.getLineContent(e.lineNumber),s=i.firstNonWhitespaceIndex(n),l=-1===s?n.length+1:s+1;if(e.column<=l){let i=o.CursorColumns.visibleColumnFromColumn2(t,a,e),n=o.CursorColumns.prevIndentTabStop(i,t.indentSize),s=o.CursorColumns.columnFromVisibleColumn2(t,a,e.lineNumber,n);u=new r.Range(e.lineNumber,s,e.lineNumber,e.column)}else u=new r.Range(e.lineNumber,e.column-1,e.lineNumber,e.column)}else{let i=s.MoveOperations.left(t,a,e.lineNumber,e.column);u=new r.Range(i.lineNumber,i.column,e.lineNumber,e.column)}}u.isEmpty()?d[e]=null:(u.startLineNumber!==u.endLineNumber&&(c=!0),d[e]=new n.ReplaceCommand(u,""))}return[c,d]} +static cut(e,t,i){let s=[];for(let o=0,a=i.length;o1?(e=c.lineNumber-1,i=t.getLineMaxColumn(c.lineNumber-1),l=c.lineNumber,d=t.getLineMaxColumn(c.lineNumber)):(e=c.lineNumber,i=1,l=c.lineNumber,d=t.getLineMaxColumn(c.lineNumber));let h=new r.Range(e,i,l,d);h.isEmpty()?s[o]=null:s[o]=new n.ReplaceCommand(h,"")}else s[o]=null;else s[o]=new n.ReplaceCommand(a,"")}return new o.EditOperationResult(0,s,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!0})}}})),define(t[171],i([0,1,12,8,88,169,359,45,99,3,20,102,42]),(function(e,t,i,n,o,s,r,a,l,d,c,h,u){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TypeWithAutoClosingCommand=t.TypeOperations=void 0;class g{static indent(e,t,i){if(null===t||null===i)return[];let n=[];for(let t=0,o=i.length;t1){let o;for(o=i-1;o>=1;o--){const e=t.getLineContent(o) +;if(n.lastNonWhitespaceIndex(e)>=0)break}if(o<1)return null;const r=t.getLineMaxColumn(o),a=u.LanguageConfigurationRegistry.getEnterAction(e.autoIndent,t,new d.Range(o,r,o,r));a&&(s=a.indentation+a.appendText)}return o&&(o===h.IndentAction.Indent&&(s=g.shiftIndent(e,s)),o===h.IndentAction.Outdent&&(s=g.unshiftIndent(e,s)),s=e.normalizeIndentation(s)),s||null}static _replaceJumpToNextIndent(e,t,i,n){let s="",r=i.getStartPosition();if(e.insertSpaces){let i=a.CursorColumns.visibleColumnFromColumn2(e,t,r),n=e.indentSize,o=n-i%n;for(let e=0;e=4){const r=u.LanguageConfigurationRegistry.getIndentForEnter(e.autoIndent,t,s,{unshiftIndent:t=>g.unshiftIndent(e,t),shiftIndent:t=>g.shiftIndent(e,t),normalizeIndentation:t=>e.normalizeIndentation(t)});if(r){let h=a.CursorColumns.visibleColumnFromColumn2(e,t,s.getEndPosition());const u=s.endColumn;let g="\n";c!==e.normalizeIndentation(r.beforeEnter)&&(g=e.normalizeIndentation(r.beforeEnter)+l.substring(c.length,s.startColumn-1)+"\n",s=new d.Range(s.startLineNumber,1,s.endLineNumber,s.endColumn));const p=t.getLineContent(s.endLineNumber),m=n.firstNonWhitespaceIndex(p);if(s=m>=0?s.setEndPosition(s.endLineNumber,Math.max(s.endColumn,m+1)):s.setEndPosition(s.endLineNumber,t.getLineMaxColumn(s.endLineNumber)),i)return new o.ReplaceCommandWithoutChangingPosition(s,g+e.normalizeIndentation(r.afterEnter),!0);{let t=0;return u<=m+1&&(e.insertSpaces||(h=Math.ceil(h/e.indentSize)), +t=Math.min(h+1-e.normalizeIndentation(r.afterEnter).length-1,0)),new o.ReplaceCommandWithOffsetCursorState(s,g+e.normalizeIndentation(r.afterEnter),0,t,!0)}}}return g._typeCommand(s,"\n"+e.normalizeIndentation(c),i)}static _isAutoIndentType(e,t,i){if(e.autoIndent<4)return!1;for(let e=0,n=i.length;eg.shiftIndent(e,t),unshiftIndent:t=>g.unshiftIndent(e,t)});if(null===s)return null;if(s!==e.normalizeIndentation(o)){const o=t.getLineFirstNonWhitespaceColumn(i.startLineNumber) +;return 0===o?g._typeCommand(new d.Range(i.startLineNumber,0,i.endLineNumber,i.endColumn),e.normalizeIndentation(s)+n,!1):g._typeCommand(new d.Range(i.startLineNumber,0,i.endLineNumber,i.endColumn),e.normalizeIndentation(s)+t.getLineContent(i.startLineNumber).substring(o-1,i.startColumn-1)+n,!1)}return null}static _isAutoClosingOvertype(e,t,i,n,o){if("never"===e.autoClosingOvertype)return!1;if(!e.autoClosingPairsClose2.has(o))return!1;for(let s=0,r=i.length;s2?d.charCodeAt(l.column-2):0)&&c)return!1;if("auto"===e.autoClosingOvertype){let e=!1;for(let t=0,i=n.length;t=0||i.indexOf(t)>=0}static _isBeforeClosingBrace(e,t,i){const n=e.autoClosingPairsClose2.get(i);if(!n)return!1;const o=g._autoClosingPairIsSymmetric(t);for(const e of n){const t=g._autoClosingPairIsSymmetric(e);if(o||!t)return!0}return!1}static _findAutoClosingPairOpen(e,t,i,n){const o=e.autoClosingPairsOpen2.get(n);if(!o)return null;let s=null;for(const e of o)if(null===s||e.open.length>s.open.length){let o=!0;for(const s of i){if(t.getValueInRange(new d.Range(s.lineNumber,s.column-e.open.length+1,s.lineNumber,s.column))+n!==e.open){o=!1;break}}o&&(s=e)}return s}static _isAutoClosingOpenCharType(e,t,n,o,s){const r=a.isQuote(o),d=r?e.autoClosingQuotes:e.autoClosingBrackets;if("never"===d)return null +;const c=this._findAutoClosingPairOpen(e,t,n.map(e=>e.getPosition()),o);if(!c)return null;const h=r?e.shouldAutoCloseBefore.quote:e.shouldAutoCloseBefore.bracket;for(let o=0,a=n.length;op.column-1){const t=m.charAt(p.column-1);if(!g._isBeforeClosingBrace(e,c,t)&&!h(t))return null}if(!t.isCheapToTokenize(p.lineNumber))return null;if(1===c.open.length&&r&&"always"!==d){const t=l.getMapForWordSeparators(e.wordSeparators);if(s&&p.column>1&&0===t.get(m.charCodeAt(p.column-2)))return null;if(!s&&p.column>2&&0===t.get(m.charCodeAt(p.column-3)))return null}t.forceTokenization(p.lineNumber);const f=t.getLineTokens(p.lineNumber);let _=!1;try{_=u.LanguageConfigurationRegistry.shouldAutoClosePair(c,f,s?p.column:p.column-1)}catch(e){i.onUnexpectedError(e)}if(!_)return null}return c}static _runAutoClosingOpenCharType(e,t,i,n,o,s,r){let l=[];for(let e=0,t=n.length;enew o.ReplaceCommand(new d.Range(e.positionLineNumber,e.positionColumn,e.positionLineNumber,e.positionColumn+1),"",!1));return new a.EditOperationResult(1,e,{shouldPushStackElementBefore:!0, +shouldPushStackElementAfter:!1})}const h=this._isAutoClosingOpenCharType(t,i,s,l,!1);return h?this._runAutoClosingOpenCharType(e,t,i,s,l,!1,h):null}static typeWithInterceptors(e,t,i,n,s,r,l){if(!e&&"\n"===l){let e=[];for(let t=0,o=s.length;t=0;o--){let i=e.charCodeAt(o),s=t.get(i);if(0===s){if(2===n)return this._createWord(e,n,s,o+1,this._findEndOfWord(e,t,n,o+1));n=1}else if(2===s){if(1===n)return this._createWord(e,n,s,o+1,this._findEndOfWord(e,t,n,o+1));n=2}else if(1===s&&0!==n)return this._createWord(e,n,s,o+1,this._findEndOfWord(e,t,n,o+1))}return 0!==n?this._createWord(e,n,1,0,this._findEndOfWord(e,t,n,0)):null}static _findEndOfWord(e,t,i,n){let o=e.length;for(let s=n;s=0;o--){let n=e.charCodeAt(o),s=t.get(n);if(1===s)return o+1;if(1===i&&2===s)return o+1;if(2===i&&0===s)return o+1}return 0}static moveWordLeft(e,t,i,n){let o=i.lineNumber,r=i.column;1===r&&o>1&&(o-=1,r=t.getLineMaxColumn(o));let l=a._findPreviousWordOnLine(e,t,new s.Position(o,r));if(0===n)return new s.Position(o,l?l.start+1:1);if(1===n)return l&&2===l.wordType&&l.end-l.start==1&&0===l.nextCharClass&&(l=a._findPreviousWordOnLine(e,t,new s.Position(o,l.start+1))),new s.Position(o,l?l.start+1:1);if(3===n){for(;l&&2===l.wordType;)l=a._findPreviousWordOnLine(e,t,new s.Position(o,l.start+1));return new s.Position(o,l?l.start+1:1)} +return l&&r<=l.end+1&&(l=a._findPreviousWordOnLine(e,t,new s.Position(o,l.start+1))),new s.Position(o,l?l.end+1:1)}static _moveWordPartLeft(e,t){const n=t.lineNumber,o=e.getLineMaxColumn(n);if(1===t.column)return n>1?new s.Position(n-1,e.getLineMaxColumn(n-1)):t;const r=e.getLineContent(n);for(let e=t.column-1;e>1;e--){const t=r.charCodeAt(e-2),a=r.charCodeAt(e-1);if(95===t&&95!==a)return new s.Position(n,e);if(i.isLowerAsciiLetter(t)&&i.isUpperAsciiLetter(a))return new s.Position(n,e);if(i.isUpperAsciiLetter(t)&&i.isUpperAsciiLetter(a)&&e+1=d.start+1&&(d=a._findNextWordOnLine(e,t,new s.Position(o,d.end+1))),r=d?d.start+1:t.getLineMaxColumn(o);return new s.Position(o,r)}static _moveWordPartRight(e,t){const n=t.lineNumber,o=e.getLineMaxColumn(n);if(t.column===o)return n1?c=1:(d--,c=t.getLineMaxColumn(d)):(h&&c<=h.end+1&&(h=a._findPreviousWordOnLine(e,t,new s.Position(d,h.start+1))),h?c=h.end+1:c>1?c=1:(d--,c=t.getLineMaxColumn(d))),new r.Range(d,c,l.lineNumber,l.column)}static _deleteWordPartLeft(e,t){if(!t.isEmpty())return t;const i=t.getPosition(),n=a._moveWordPartLeft(e,i);return new r.Range(i.lineNumber,i.column,n.lineNumber,n.column)}static _findFirstNonWhitespaceChar(e,t){let i=e.length;for(let n=t;n=g.start+1&&(g=a._findNextWordOnLine(e,t,new s.Position(d,g.end+1))),g?c=g.start+1:cBoolean(e))}t.WordPartOperations=class extends a{static deleteWordPartLeft(e,t,i,n){const o=l([a.deleteWordLeft(e,t,i,n,0),a.deleteWordLeft(e,t,i,n,2),a._deleteWordPartLeft(t,i)]);return o.sort(r.Range.compareRangesUsingEnds),o[2]}static deleteWordPartRight(e,t,i,n){const o=l([a.deleteWordRight(e,t,i,n,0),a.deleteWordRight(e,t,i,n,2),a._deleteWordPartRight(t,i)]);return o.sort(r.Range.compareRangesUsingStarts),o[0]}static moveWordPartLeft(e,t,i){ +const n=l([a.moveWordLeft(e,t,i,0),a.moveWordLeft(e,t,i,2),a._moveWordPartLeft(t,i)]);return n.sort(s.Position.compare),n[2]}static moveWordPartRight(e,t,i){const n=l([a.moveWordRight(e,t,i,0),a.moveWordRight(e,t,i,2),a._moveWordPartRight(t,i)]);return n.sort(s.Position.compare),n[0]}}})),define(t[233],i([0,1,23,45,170,129,13,3]),(function(e,t,i,n,o,s,r,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CursorMove=t.CursorMoveCommands=void 0;t.CursorMoveCommands=class{static addCursorDown(e,t,i){let s=[],r=0;for(let a=0,l=t.length;at&&(i=t,o=e.model.getLineMaxColumn(i)),n.CursorState.fromModelState(new n.SingleCursorState(new a.Range(l.lineNumber,1,i,o),0,new r.Position(i,o),0))} +const c=t.modelState.selectionStart.getStartPosition().lineNumber;if(l.lineNumberc){const i=e.getLineCount();let o=d.lineNumber+1,s=1;return o>i&&(o=i,s=e.getLineMaxColumn(o)),n.CursorState.fromViewState(t.viewState.move(t.modelState.hasSelection(),o,s,0))}{const e=t.modelState.selectionStart.getEndPosition();return n.CursorState.fromModelState(t.modelState.move(t.modelState.hasSelection(),e.lineNumber,e.column,0))}}static word(e,t,i,o){const r=e.model.validatePosition(o);return n.CursorState.fromModelState(s.WordOperations.word(e.cursorConfig,e.model,t.modelState,i,r))}static cancelSelection(e,t){if(!t.modelState.hasSelection())return new n.CursorState(t.modelState,t.viewState);const i=t.viewState.position.lineNumber,o=t.viewState.position.column;return n.CursorState.fromViewState(new n.SingleCursorState(new a.Range(i,o,i,o),0,new r.Position(i,o),0))}static moveTo(e,t,i,o,s){ +const a=e.model.validatePosition(o),l=s?e.coordinatesConverter.validateViewPosition(new r.Position(s.lineNumber,s.column),a):e.coordinatesConverter.convertModelPositionToViewPosition(a);return n.CursorState.fromViewState(t.viewState.move(i,l.lineNumber,l.column,0))}static simpleMove(e,t,i,n,o,s){switch(i){case 0:return 4===s?this._moveHalfLineLeft(e,t,n):this._moveLeft(e,t,n,o);case 1:return 4===s?this._moveHalfLineRight(e,t,n):this._moveRight(e,t,n,o);case 2:return 2===s?this._moveUpByViewLines(e,t,n,o):this._moveUpByModelLines(e,t,n,o);case 3:return 2===s?this._moveDownByViewLines(e,t,n,o):this._moveDownByModelLines(e,t,n,o);case 4:return this._moveToViewMinColumn(e,t,n);case 5:return this._moveToViewFirstNonWhitespaceColumn(e,t,n);case 6:return this._moveToViewCenterColumn(e,t,n);case 7:return this._moveToViewMaxColumn(e,t,n);case 8:return this._moveToViewLastNonWhitespaceColumn(e,t,n);default:return null}}static viewportMove(e,t,i,n,o){ +const s=e.getCompletelyVisibleViewRange(),r=e.coordinatesConverter.convertViewRangeToModelRange(s);switch(i){case 9:{const i=this._firstLineNumberInRange(e.model,r,o),s=e.model.getLineFirstNonWhitespaceColumn(i);return[this._moveToModelPosition(e,t[0],n,i,s)]}case 11:{const i=this._lastLineNumberInRange(e.model,r,o),s=e.model.getLineFirstNonWhitespaceColumn(i);return[this._moveToModelPosition(e,t[0],n,i,s)]}case 10:{const i=Math.round((r.startLineNumber+r.endLineNumber)/2),o=e.model.getLineFirstNonWhitespaceColumn(i);return[this._moveToModelPosition(e,t[0],n,i,o)]}case 12:{let i=[];for(let o=0,r=t.length;oi.endLineNumber-1&&(s=i.endLineNumber-1),s1;let a=[];for(let l=0,d=t.length;l1;let a=[];for(let l=0,d=t.length;li){let e=t-i;for(let t=0;t=e+1&&this.lastAddedCursorIndex--,this.secondaryCursors[e].dispose(this.context),this.secondaryCursors.splice(e,1)}_getAll(){let e=[];e[0]=this.primaryCursor;for(let t=0,i=this.secondaryCursors.length;te.selection.startLineNumber===t.selection.startLineNumber?e.selection.startColumn-t.selection.startColumn:e.selection.startLineNumber-t.selection.startLineNumber);for(let n=0;nd&&e.index--;e.splice(d,1),t.splice(l,1),this._removeSecondaryCursor(d-1),n--}}}}})), +define(t[234],i([0,1,12,8,516,45,232,171,3,20,162,2,165]),(function(e,t,i,n,o,s,r,a,l,d,c,h,u){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Cursor=t.CursorModelState=void 0;class g{constructor(e,t){this.modelVersionId=e.getVersionId(),this.cursorState=t.getCursorStates()}equals(e){if(!e)return!1;if(this.modelVersionId!==e.modelVersionId)return!1;if(this.cursorState.length!==e.cursorState.length)return!1;for(let t=0,i=this.cursorState.length;t=t.length)return!1;if(!t[i].strictContainsRange(e[i]))return!1}return!0}}class m extends h.Disposable{constructor(e,t,i,n){super(),this._model=e,this._knownModelVersionId=this._model.getVersionId(),this._viewModel=t,this._coordinatesConverter=i,this.context=new s.CursorContext(this._model,this._coordinatesConverter,n),this._cursors=new o.CursorCollection(this.context),this._hasFocus=!1,this._isHandling=!1,this._isDoingComposition=!1, +this._selectionsWhenCompositionStarted=null,this._columnSelectData=null,this._autoClosedActions=[],this._prevEditOperationType=0}dispose(){this._cursors.dispose(),this._autoClosedActions=h.dispose(this._autoClosedActions),super.dispose()}updateConfiguration(e){this.context=new s.CursorContext(this._model,this._coordinatesConverter,e),this._cursors.updateContext(this.context)}onLineMappingChanged(e){this._knownModelVersionId===this._model.getVersionId()&&this.setStates(e,"viewModel",0,this.getCursorStates())}setHasFocus(e){this._hasFocus=e}_validateAutoClosedActions(){if(this._autoClosedActions.length>0){let e=this._cursors.getSelections();for(let t=0;tm.MAX_CURSOR_COUNT&&(n=n.slice(0,m.MAX_CURSOR_COUNT),o=!0);const s=new g(this._model,this);return this._cursors.setStates(n),this._cursors.normalize(),this._columnSelectData=null,this._validateAutoClosedActions(),this._emitStateChangedIfNecessary(e,t,i,s,o)}setCursorColumnSelectData(e){this._columnSelectData=e}revealPrimary(e,t,i,n){const o=this._cursors.getViewPositions();if(o.length>1)this._emitCursorRevealRange(e,t,null,this._cursors.getViewSelections(),0,i,n);else{const s=o[0],r=new l.Range(s.lineNumber,s.column,s.lineNumber,s.column);this._emitCursorRevealRange(e,t,r,null,0,i,n)}}_revealPrimaryCursor(e,t,i,n,o){const s=this._cursors.getViewPositions();if(s.length>1)this._emitCursorRevealRange(e,t,null,this._cursors.getViewSelections(),i,n,o);else{const r=s[0],a=new l.Range(r.lineNumber,r.column,r.lineNumber,r.column);this._emitCursorRevealRange(e,t,a,null,i,n,o)}}_emitCursorRevealRange(e,t,i,n,o,s,r){e.emitViewEvent(new c.ViewRevealRangeRequestEvent(t,i,n,o,s,r))}saveState(){let e=[] +;const t=this._cursors.getSelections();for(let i=0,n=t.length;i0){const i=s.CursorState.fromModelSelections(t.resultingSelection);this.setStates(e,"modelChange",t.isUndoing?5:t.isRedoing?6:2,i)&&this._revealPrimaryCursor(e,"modelChange",0,!0,0)}else{const t=this._cursors.readSelectionFromMarkers();this.setStates(e,"modelChange",2,s.CursorState.fromModelSelections(t))}}getSelection(){return this._cursors.getPrimaryCursor().modelState.selection}getTopMostViewPosition(){return this._cursors.getTopMostViewPosition()}getBottomMostViewPosition(){return this._cursors.getBottomMostViewPosition()}getCursorColumnSelectData(){if(this._columnSelectData)return this._columnSelectData;const e=this._cursors.getPrimaryCursor(),t=e.viewState.selectionStart.getStartPosition(),i=e.viewState.position;return{isReal:!1,fromViewLineNumber:t.lineNumber, +fromViewVisualColumn:s.CursorColumns.visibleColumnFromColumn2(this.context.cursorConfig,this._viewModel,t),toViewLineNumber:i.lineNumber,toViewVisualColumn:s.CursorColumns.visibleColumnFromColumn2(this.context.cursorConfig,this._viewModel,i)}}getSelections(){return this._cursors.getSelections()}setSelections(e,t,i){this.setStates(e,t,0,s.CursorState.fromModelSelections(i))}getPrevEditOperationType(){return this._prevEditOperationType}setPrevEditOperationType(e){this._prevEditOperationType=e}_pushAutoClosedAction(e,t){let i=[],n=[];for(let o=0,s=e.length;o0&&this._pushAutoClosedAction(i,n),this._prevEditOperationType=e.type}e.shouldPushStackElementAfter&&this._model.pushStackElement()}_interpretCommandResult(e){e&&0!==e.length||(e=this._cursors.readSelectionFromMarkers()),this._columnSelectData=null,this._cursors.setSelections(e),this._cursors.normalize()}_emitStateChangedIfNecessary(e,t,i,n,o){const s=new g(this._model,this);if(s.equals(n))return!1;const r=this._cursors.getSelections(),a=this._cursors.getViewSelections();if(e.emitViewEvent(new c.ViewCursorStateChangedEvent(a,r)),!n||n.cursorState.length!==s.cursorState.length||s.cursorState.some((e,t)=>!e.modelState.equals(n.cursorState[t].modelState))){const a=n?n.cursorState.map(e=>e.modelState.selection):null,l=n?n.modelVersionId:0 +;e.emitOutgoingEvent(new u.CursorStateChangedEvent(a,r,l,s.modelVersionId,t||"keyboard",i,o))}return!0}_findAutoClosingPairs(e){if(!e.length)return null;let t=[];for(let i=0,n=e.length;i=0)return null;const o=n.text.match(/([)\]}>'"`])([^)\]}>'"`]*)$/);if(!o)return null;const s=o[1],r=this.context.cursorConfig.autoClosingPairsClose2.get(s);if(!r||1!==r.length)return null;const a=r[0].open,l=n.text.length-o[2].length-1,d=n.text.lastIndexOf(a,l-1);if(-1===d)return null;t.push([d,l])}return t}executeEdits(e,t,i,n){let o=null;"snippet"===t&&(o=this._findAutoClosingPairs(i)),o&&(i[0]._isTracked=!0);let s=[],r=[];const a=this._model.pushEditOperations(this.getSelections(),i,e=>{if(o)for(let t=0,i=o.length;t0&&this._pushAutoClosedAction(s,r)}_executeEdit(e,t,n,o=0){if(this.context.cursorConfig.readOnly)return;const s=new g(this._model,this);this._cursors.stopTrackingSelections(),this._isHandling=!0;try{this._cursors.ensureValidState(),e()}catch(e){i.onUnexpectedError(e)}this._isHandling=!1,this._cursors.startTrackingSelections(),this._validateAutoClosedActions(),this._emitStateChangedIfNecessary(t,n,o,s,!1)&&this._revealPrimaryCursor(t,n,0,!0,0)}setIsDoingComposition(e){this._isDoingComposition=e}startComposition(e){this._selectionsWhenCompositionStarted=this.getSelections().slice(0)}endComposition(e,t){this._executeEdit(()=>{if("keyboard"===t){const e=p.getAllAutoClosedCharacters(this._autoClosedActions);this._executeEditOperation(a.TypeOperations.compositionEndWithInterceptors(this._prevEditOperationType,this.context.cursorConfig,this._model,this._selectionsWhenCompositionStarted,this.getSelections(),e)),this._selectionsWhenCompositionStarted=null}},e,t)}type(e,t,i){ +this._executeEdit(()=>{if("keyboard"===i){const e=t.length;let i=0;for(;i{this._executeEditOperation(a.TypeOperations.replacePreviousChar(this._prevEditOperationType,this.context.cursorConfig,this._model,this.getSelections(),t,i))},e,n)}paste(e,t,i,n,o){this._executeEdit(()=>{this._executeEditOperation(a.TypeOperations.paste(this.context.cursorConfig,this._model,this.getSelections(),t,i,n||[]))},e,o,4)}cut(e,t){this._executeEdit(()=>{ +this._executeEditOperation(r.DeleteOperations.cut(this.context.cursorConfig,this._model,this.getSelections()))},e,t)}executeCommand(e,t,i){this._executeEdit(()=>{this._cursors.killSecondaryCursors(),this._executeEditOperation(new s.EditOperationResult(0,[t],{shouldPushStackElementBefore:!1,shouldPushStackElementAfter:!1}))},e,i)}executeCommands(e,t,i){this._executeEdit(()=>{this._executeEditOperation(new s.EditOperationResult(0,t,{shouldPushStackElementBefore:!1,shouldPushStackElementAfter:!1}))},e,i)}}t.Cursor=m,m.MAX_CURSOR_COUNT=1e4;class f{static executeCommands(e,t,i){const n={model:e,selectionsBefore:t,trackedRanges:[],trackedRangesDirection:[]},o=this._innerExecuteCommands(n,i);for(let e=0,t=n.trackedRanges.length;e0&&(s[0]._isTracked=!0);let r=e.model.pushEditOperations(e.selectionsBefore,s,i=>{let n=[];for(let t=0;te.identifier.minor-t.identifier.minor;let s=[];for(let i=0;i0?(n[i].sort(o),s[i]=t[i].computeCursorState(e.model,{getInverseEditOperations:()=>n[i],getTrackedSelection:t=>{const i=parseInt(t,10),n=e.model._getTrackedRange(e.trackedRanges[i]);return 0===e.trackedRangesDirection[i]?new d.Selection(n.startLineNumber,n.startColumn,n.endLineNumber,n.endColumn):new d.Selection(n.endLineNumber,n.endColumn,n.startLineNumber,n.startColumn)}})):s[i]=e.selectionsBefore[i];return s});r||(r=e.selectionsBefore);let a=[] +;for(let e in o)o.hasOwnProperty(e)&&a.push(parseInt(e,10));a.sort((e,t)=>t-e);for(const e of a)r.splice(e,1);return r}static _arrayIsEmpty(e){for(let t=0,i=e.length;t{l.Range.isEmpty(e)&&""===i||o.push({identifier:{major:t,minor:s++},range:e,text:i,forceMoveMarkers:r,isAutoWhitespaceEdit:n.insertsAutoWhitespace})};let a=!1;const c={addEditOperation:r,addTrackedEditOperation:(e,t,i)=>{a=!0,r(e,t,i)},trackSelection:(t,i)=>{const n=d.Selection.liftSelection(t);let o;if(n.isEmpty())if("boolean"==typeof i)o=i?2:3;else{const t=e.model.getLineMaxColumn(n.startLineNumber);o=n.startColumn===t?2:3}else o=1 +;const s=e.trackedRanges.length,r=e.model._setTrackedRange(null,n,o);return e.trackedRanges[s]=r,e.trackedRangesDirection[s]=n.getDirection(),s.toString()}};try{n.getEditOperations(e.model,c)}catch(e){return i.onUnexpectedError(e),{operations:[],hadTrackedEditOperation:!1}}return{operations:o,hadTrackedEditOperation:a}}static _getLoserCursorMap(e){(e=e.slice(0)).sort((e,t)=>-l.Range.compareRangesUsingEnds(e.range,t.range));let t={};for(let i=1;io.identifier.major?n.identifier.major:o.identifier.major).toString()]=!0;for(let t=0;t0&&i--}}return t}}})),define(t[235],i([0,1,8,105,74]),(function(e,t,i,n,o){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.tokenizeLineToHTML=t.tokenizeToString=void 0;const s={getInitialState:()=>o.NULL_STATE,tokenize2:(e,t,i)=>o.nullTokenize2(0,e,t,i)} +;t.tokenizeToString=function(e,t=s){return function(e,t){let o='
        ',s=e.split(/\r\n|\r|\n/),r=t.getInitialState();for(let e=0,a=s.length;e0&&(o+="
        ");let l=t.tokenize2(a,r,0);n.LineTokens.convertToEndOffset(l.tokens,a.length);let d=new n.LineTokens(l.tokens,a).inflate(),c=0;for(let e=0,t=d.getCount();e${i.escape(a.substring(c,n))}`,c=n}r=l.endState}return o+="
        "}(e,t||s)},t.tokenizeLineToHTML=function(e,t,i,n,o,s,r){let a="
        ",l=n,d=0;for(let c=0,h=t.getCount();c0;)u+=r?" ":" ",e--;break;case 60:u+="<";break;case 62:u+=">";break;case 38:u+="&";break;case 0:u+="�";break;case 65279:case 8232:case 8233:case 133:u+="�";break;case 13:u+="​";break;case 32:u+=r?" ":" ";break;default: +u+=String.fromCharCode(t)}}if(a+=`${u}`,h>o||l>=o)break}return a+="
        "}})),define(t[92],i([0,1,10]),(function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ITextModelService=void 0,t.ITextModelService=i.createDecorator("textModelService")})),define(t[130],i([0,1,10]),(function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ITextResourcePropertiesService=t.ITextResourceConfigurationService=void 0,t.ITextResourceConfigurationService=i.createDecorator("textResourceConfigurationService"),t.ITextResourcePropertiesService=i.createDecorator("textResourcePropertiesService")})),define(t[236],i([0,1,4,207,18]),(function(e,t,i,n,o){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MinimapTokensColorTracker=void 0;class s{constructor(){this._onDidChange=new i.Emitter,this.onDidChange=this._onDidChange.event,this._updateColorMap(),o.TokenizationRegistry.onDidChange(e=>{e.changedColorMap&&this._updateColorMap() +})}static getInstance(){return this._INSTANCE||(this._INSTANCE=new s),this._INSTANCE}_updateColorMap(){const e=o.TokenizationRegistry.getColorMap();if(!e)return this._colors=[n.RGBA8.Empty],void(this._backgroundIsLight=!0);this._colors=[n.RGBA8.Empty];for(let t=1;t=.5,this._onDidChange.fire(void 0)}getColor(e){return(e<1||e>=this._colors.length)&&(e=2),this._colors[e]}backgroundIsLight(){return this._backgroundIsLight}}t.MinimapTokensColorTracker=s,s._INSTANCE=null})),define(t[172],i([0,1,19,13,3,31,162,214,70]),(function(e,t,i,n,o,s,r,a,l){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.IdentityLinesCollection=t.IdentityCoordinatesConverter=t.SplitLine=t.SplitLinesCollection=t.CoordinatesConverter=t.LineBreakData=t.OutputPosition=void 0;class d{constructor(e,t){this.outputLineIndex=e,this.outputOffset=t}}t.OutputPosition=d;class c{ +constructor(e,t,i){this.breakOffsets=e,this.breakOffsetsVisibleColumn=t,this.wrappedTextIndentLength=i}static getInputOffsetOfOutputPosition(e,t,i){return 0===t?i:e[t-1]+i}static getOutputPositionOfInputOffset(e,t){let i=0,n=e.length-1,o=0,s=0;for(;i<=n;){const r=e[o=i+(n-i)/2|0];if(t<(s=o>0?e[o-1]:0))n=o-1;else{if(!(t>=r))break;i=o+1}}return new d(o,t-s)}}t.LineBreakData=c;class h{constructor(e){this._lines=e}convertViewPositionToModelPosition(e){return this._lines.convertViewPositionToModelPosition(e.lineNumber,e.column)}convertViewRangeToModelRange(e){return this._lines.convertViewRangeToModelRange(e)}validateViewPosition(e,t){return this._lines.validateViewPosition(e.lineNumber,e.column,t)}validateViewRange(e,t){return this._lines.validateViewRange(e,t)}convertModelPositionToViewPosition(e){return this._lines.convertModelPositionToViewPosition(e.lineNumber,e.column)}convertModelRangeToViewRange(e){return this._lines.convertModelRangeToViewRange(e)}modelPositionIsVisible(e){ +return this._lines.modelPositionIsVisible(e.lineNumber,e.column)}}t.CoordinatesConverter=h;class u{constructor(e){this._counts=e,this._isValid=!1,this._validEndIndex=-1,this._modelToView=[],this._viewToModel=[]}_invalidate(e){this._isValid=!1,this._validEndIndex=Math.min(this._validEndIndex,e-1)}_ensureValid(){if(!this._isValid){for(let e=this._validEndIndex+1,t=this._counts.length;e0?this._modelToView[e-1]:0;this._modelToView[e]=i+t;for(let n=0;n0?this._modelToView[t-1]:0;return new a.PrefixSumIndexOfResult(t,e-i)}}t.SplitLinesCollection=class{constructor(e,t,i,n,o,s,r,a){this.model=e,this._validModelVersionId=-1,this._domLineBreaksComputerFactory=t,this._monospaceLineBreaksComputerFactory=i,this.fontInfo=n,this.tabSize=o,this.wrappingStrategy=s,this.wrappingColumn=r,this.wrappingIndent=a,this._constructLines(!0,null)}dispose(){this.hiddenAreasIds=this.model.deltaDecorations(this.hiddenAreasIds,[])}createCoordinatesConverter(){return new h(this)}_constructLines(e,t){this.lines=[],e&&(this.hiddenAreasIds=[]);let i=this.model.getLinesContent();const n=i.length,s=this.createLineBreaksComputer();for(let e=0;ethis.model.getDecorationRange(e)).sort(o.Range.compareRangesUsingStarts),d=1,c=0,h=-1,g=h+1=d&&t<=c,o=C(r[e],!i);a[e]=o.getViewLineCount(),this.lines[e]=o}this._validModelVersionId=this.model.getVersionId(),this.prefixSumComputer=new u(a)}getHiddenAreas(){return this.hiddenAreasIds.map(e=>this.model.getDecorationRange(e))}_reduceRanges(e){if(0===e.length)return[];let t=e.map(e=>this.model.validateRange(e)).sort(o.Range.compareRangesUsingStarts),i=[],n=t[0].startLineNumber,s=t[0].endLineNumber;for(let e=1,r=t.length;es+1?(i.push(new o.Range(n,1,s,1)),n=r.startLineNumber,s=r.endLineNumber):r.endLineNumber>s&&(s=r.endLineNumber)}return i.push(new o.Range(n,1,s,1)),i}setHiddenAreas(e){let t=this._reduceRanges(e),i=this.hiddenAreasIds.map(e=>this.model.getDecorationRange(e)).sort(o.Range.compareRangesUsingStarts);if(t.length===i.length){let e=!1;for(let n=0;n=a&&t<=l?this.lines[e].isVisible()&&(this.lines[e]=this.lines[e].setVisible(!1),i=!0):(h=!0,this.lines[e].isVisible()||(this.lines[e]=this.lines[e].setVisible(!0),i=!0)),i){let t=this.lines[e].getViewLineCount();this.prefixSumComputer.changeValue(e,t)}}return h||this.setHiddenAreas([]),!0}modelPositionIsVisible(e,t){return!(e<1||e>this.lines.length)&&this.lines[e-1].isVisible()}setTabSize(e){return this.tabSize!==e&&(this.tabSize=e,this._constructLines(!1,null),!0)}setWrappingSettings(e,t,i,n){const o=this.fontInfo.equals(e),s=this.wrappingStrategy===t,r=this.wrappingColumn===i,a=this.wrappingIndent===n;if(o&&s&&r&&a)return!1;const l=o&&s&&!r&&a;this.fontInfo=e, +this.wrappingStrategy=t,this.wrappingColumn=i,this.wrappingIndent=n;let d=null;if(l){d=[];for(let e=0,t=this.lines.length;ea?(p=(g=(c=(d=1===t?1:this.prefixSumComputer.getAccumulatedValue(t-2)+1)+a-1)+1)+(o-a)-1,l=!0):ot?t:0|e}getActiveIndentGuide(e,t,i){e=this._toValidViewLineNumber(e),t=this._toValidViewLineNumber(t),i=this._toValidViewLineNumber(i);const n=this.convertViewPositionToModelPosition(e,this.getViewLineMinColumn(e)),o=this.convertViewPositionToModelPosition(t,this.getViewLineMinColumn(t)),s=this.convertViewPositionToModelPosition(i,this.getViewLineMinColumn(i)),r=this.model.getActiveIndentGuide(n.lineNumber,o.lineNumber,s.lineNumber),a=this.convertModelPositionToViewPosition(r.startLineNumber,1),l=this.convertModelPositionToViewPosition(r.endLineNumber,this.model.getLineMaxColumn(r.endLineNumber));return{ +startLineNumber:a.lineNumber,endLineNumber:l.lineNumber,indent:r.indent}}getViewLinesIndentGuides(e,t){e=this._toValidViewLineNumber(e),t=this._toValidViewLineNumber(t);const i=this.convertViewPositionToModelPosition(e,this.getViewLineMinColumn(e)),o=this.convertViewPositionToModelPosition(t,this.getViewLineMaxColumn(t));let s=[],r=[],a=[];const l=i.lineNumber-1,d=o.lineNumber-1;let c=null;for(let e=l;e<=d;e++){const t=this.lines[e];if(t.isVisible()){let o=t.getViewLineNumberOfModelPosition(0,e===l?i.column:1),s=t.getViewLineNumberOfModelPosition(0,this.model.getLineMaxColumn(e+1)),d=s-o+1,h=0;d>1&&1===t.getViewLineMinColumn(this.model,e+1,s)&&(h=0===o?1:2),r.push(d),a.push(h),null===c&&(c=new n.Position(e+1,0))}else null!==c&&(s=s.concat(this.model.getLinesIndentGuides(c.lineNumber,e)),c=null)}null!==c&&(s=s.concat(this.model.getLinesIndentGuides(c.lineNumber,o.lineNumber)),c=null);const h=t-e+1;let u=new Array(h),g=0;for(let e=0,t=s.length;et&&(h=!0,c=t-o+1);let u=d+c;if(l.getViewLinesData(this.model,n+1,d,u,o-e,i,a),o+=c,h)break}return a}validateViewPosition(e,t,i){e=this._toValidViewLineNumber(e);let o=this.prefixSumComputer.getIndexOf(e-1),s=o.index,r=o.remainder,a=this.lines[s],l=a.getViewLineMinColumn(this.model,s+1,r),d=a.getViewLineMaxColumn(this.model,s+1,r);td&&(t=d);let c=a.getModelColumnOfViewPosition(r,t);return this.model.validatePosition(new n.Position(s+1,c)).equals(i)?new n.Position(e,t):this.convertModelPositionToViewPosition(i.lineNumber,i.column)}validateViewRange(e,t){const i=this.validateViewPosition(e.startLineNumber,e.startColumn,t.getStartPosition()),n=this.validateViewPosition(e.endLineNumber,e.endColumn,t.getEndPosition()) +;return new o.Range(i.lineNumber,i.column,n.lineNumber,n.column)}convertViewPositionToModelPosition(e,t){e=this._toValidViewLineNumber(e);let i=this.prefixSumComputer.getIndexOf(e-1),o=i.index,s=i.remainder,r=this.lines[o].getModelColumnOfViewPosition(s,t);return this.model.validatePosition(new n.Position(o+1,r))}convertViewRangeToModelRange(e){const t=this.convertViewPositionToModelPosition(e.startLineNumber,e.startColumn),i=this.convertViewPositionToModelPosition(e.endLineNumber,e.endColumn);return new o.Range(t.lineNumber,t.column,i.lineNumber,i.column)}convertModelPositionToViewPosition(e,t){const i=this.model.validatePosition(new n.Position(e,t)),o=i.lineNumber,s=i.column;let r=o-1,a=!1;for(;r>0&&!this.lines[r].isVisible();)r--,a=!0;if(0===r&&!this.lines[r].isVisible())return new n.Position(1,1);const l=1+(0===r?0:this.prefixSumComputer.getAccumulatedValue(r-1));let d +;return d=a?this.lines[r].getViewPositionOfModelPosition(l,this.model.getLineMaxColumn(r+1)):this.lines[o-1].getViewPositionOfModelPosition(l,s)}convertModelRangeToViewRange(e){let t=this.convertModelPositionToViewPosition(e.startLineNumber,e.startColumn),i=this.convertModelPositionToViewPosition(e.endLineNumber,e.endColumn);return e.startLineNumber===e.endLineNumber&&t.lineNumber!==i.lineNumber&&i.column===this.getViewLineMinColumn(i.lineNumber)?new o.Range(t.lineNumber,t.column,i.lineNumber-1,this.getViewLineMaxColumn(i.lineNumber-1)):new o.Range(t.lineNumber,t.column,i.lineNumber,i.column)}_getViewLineNumberForModelPosition(e,t){let i=e-1;if(this.lines[i].isVisible()){const e=1+(0===i?0:this.prefixSumComputer.getAccumulatedValue(i-1));return this.lines[i].getViewLineNumberOfModelPosition(e,t)}for(;i>0&&!this.lines[i].isVisible();)i--;if(0===i&&!this.lines[i].isVisible())return 1;const n=1+(0===i?0:this.prefixSumComputer.getAccumulatedValue(i-1)) +;return this.lines[i].getViewLineNumberOfModelPosition(n,this.model.getLineMaxColumn(i+1))}getAllOverviewRulerDecorations(e,t,i){const n=this.model.getOverviewRulerDecorations(e,t),o=new S;for(const e of n){const t=e.options.overviewRuler,n=t?t.position:0;if(0===n)continue;const s=t.getColor(i),r=this._getViewLineNumberForModelPosition(e.range.startLineNumber,e.range.startColumn),a=this._getViewLineNumberForModelPosition(e.range.endLineNumber,e.range.endColumn);o.accept(s,r,a,n)}return o.result}getDecorationsInRange(e,t,i){const s=this.convertViewPositionToModelPosition(e.startLineNumber,e.startColumn),r=this.convertViewPositionToModelPosition(e.endLineNumber,e.endColumn);if(r.lineNumber-s.lineNumber<=e.endLineNumber-e.startLineNumber)return this.model.getDecorationsInRange(new o.Range(s.lineNumber,1,r.lineNumber,r.column),t,i);let a=[];const l=s.lineNumber-1,d=r.lineNumber-1;let c=null;for(let e=l;e<=d;e++){if(this.lines[e].isVisible())null===c&&(c=new n.Position(e+1,e===l?s.column:1));else if(null!==c){ +const n=this.model.getLineMaxColumn(e);a=a.concat(this.model.getDecorationsInRange(new o.Range(c.lineNumber,c.column,e,n),t,i)),c=null}}null!==c&&(a=a.concat(this.model.getDecorationsInRange(new o.Range(c.lineNumber,c.column,r.lineNumber,r.column),t,i)),c=null),a.sort((e,t)=>{const i=o.Range.compareRangesUsingStarts(e.range,t.range);return 0===i?e.idt.id?1:0:i});let h=[],u=0,g=null;for(const e of a){const t=e.id;g!==t&&(g=t,h[u++]=e)}return h}};class g{constructor(){}isVisible(){return!0}setVisible(e){return e?this:p.INSTANCE}getLineBreakData(){return null}getViewLineCount(){return 1}getViewLineContent(e,t,i){return e.getLineContent(t)}getViewLineLength(e,t,i){return e.getLineLength(t)}getViewLineMinColumn(e,t,i){return e.getLineMinColumn(t)}getViewLineMaxColumn(e,t,i){return e.getLineMaxColumn(t)}getViewLineData(e,t,i){let n=e.getLineTokens(t),o=n.getLineContent();return new l.ViewLineData(o,!1,1,o.length+1,0,n.inflate())}getViewLinesData(e,t,i,n,o,s,r){ +s[o]?r[o]=this.getViewLineData(e,t,0):r[o]=null}getModelColumnOfViewPosition(e,t){return t}getViewPositionOfModelPosition(e,t){return new n.Position(e,t)}getViewLineNumberOfModelPosition(e,t){return e}}g.INSTANCE=new g;class p{constructor(){}isVisible(){return!1}setVisible(e){return e?g.INSTANCE:this}getLineBreakData(){return null}getViewLineCount(){return 0}getViewLineContent(e,t,i){throw new Error("Not supported")}getViewLineLength(e,t,i){throw new Error("Not supported")}getViewLineMinColumn(e,t,i){throw new Error("Not supported")}getViewLineMaxColumn(e,t,i){throw new Error("Not supported")}getViewLineData(e,t,i){throw new Error("Not supported")}getViewLinesData(e,t,i,n,o,s,r){throw new Error("Not supported")}getModelColumnOfViewPosition(e,t){throw new Error("Not supported")}getViewPositionOfModelPosition(e,t){throw new Error("Not supported")}getViewLineNumberOfModelPosition(e,t){throw new Error("Not supported")}}p.INSTANCE=new p;class m{constructor(e,t){this._lineBreakData=e,this._isVisible=t}isVisible(){ +return this._isVisible}setVisible(e){return this._isVisible=e,this}getLineBreakData(){return this._lineBreakData}getViewLineCount(){return this._isVisible?this._lineBreakData.breakOffsets.length:0}getInputStartOffsetOfOutputLineIndex(e){return c.getInputOffsetOfOutputPosition(this._lineBreakData.breakOffsets,e,0)}getInputEndOffsetOfOutputLineIndex(e,t,i){return i+1===this._lineBreakData.breakOffsets.length?e.getLineMaxColumn(t)-1:c.getInputOffsetOfOutputPosition(this._lineBreakData.breakOffsets,i+1,0)}getViewLineContent(e,t,i){if(!this._isVisible)throw new Error("Not supported");let n=this.getInputStartOffsetOfOutputLineIndex(i),o=this.getInputEndOffsetOfOutputLineIndex(e,t,i),s=e.getValueInRange({startLineNumber:t,startColumn:n+1,endLineNumber:t,endColumn:o+1});return i>0&&(s=_(this._lineBreakData.wrappedTextIndentLength)+s),s}getViewLineLength(e,t,i){if(!this._isVisible)throw new Error("Not supported");let n=this.getInputStartOffsetOfOutputLineIndex(i),o=this.getInputEndOffsetOfOutputLineIndex(e,t,i)-n +;return i>0&&(o=this._lineBreakData.wrappedTextIndentLength+o),o}getViewLineMinColumn(e,t,i){if(!this._isVisible)throw new Error("Not supported");return i>0?this._lineBreakData.wrappedTextIndentLength+1:1}getViewLineMaxColumn(e,t,i){if(!this._isVisible)throw new Error("Not supported");return this.getViewLineContent(e,t,i).length+1}getViewLineData(e,t,i){if(!this._isVisible)throw new Error("Not supported");let n=this.getInputStartOffsetOfOutputLineIndex(i),o=this.getInputEndOffsetOfOutputLineIndex(e,t,i),s=e.getValueInRange({startLineNumber:t,startColumn:n+1,endLineNumber:t,endColumn:o+1});i>0&&(s=_(this._lineBreakData.wrappedTextIndentLength)+s);let r=i>0?this._lineBreakData.wrappedTextIndentLength+1:1,a=s.length+1,d=i+10&&(c=this._lineBreakData.wrappedTextIndentLength);let h=e.getLineTokens(t);const u=0===i?0:this._lineBreakData.breakOffsetsVisibleColumn[i-1];return new l.ViewLineData(s,d,r,a,u,h.sliceAndInflate(n,o,c))}getViewLinesData(e,t,i,n,o,s,r){ +if(!this._isVisible)throw new Error("Not supported");for(let a=i;a0&&(i0&&(s+=this._lineBreakData.wrappedTextIndentLength),new n.Position(e+o,s)}getViewLineNumberOfModelPosition(e,t){if(!this._isVisible)throw new Error("Not supported");return e+c.getOutputPositionOfInputOffset(this._lineBreakData.breakOffsets,t-1).outputLineIndex}}t.SplitLine=m;let f=[""];function _(e){if(e>=f.length)for(let t=1;t<=e;t++)f[t]=v(t);return f[e]}function v(e){ +return new Array(e+1).join(" ")}function C(e,t){return null===e?t?g.INSTANCE:p.INSTANCE:new m(e,t)}class b{constructor(e){this._lines=e}_validPosition(e){return this._lines.model.validatePosition(e)}_validRange(e){return this._lines.model.validateRange(e)}convertViewPositionToModelPosition(e){return this._validPosition(e)}convertViewRangeToModelRange(e){return this._validRange(e)}validateViewPosition(e,t){return this._validPosition(t)}validateViewRange(e,t){return this._validRange(t)}convertModelPositionToViewPosition(e){return this._validPosition(e)}convertModelRangeToViewRange(e){return this._validRange(e)}modelPositionIsVisible(e){const t=this._lines.model.getLineCount();return!(e.lineNumber<1||e.lineNumber>t)}}t.IdentityCoordinatesConverter=b;t.IdentityLinesCollection=class{constructor(e){this.model=e}dispose(){}createCoordinatesConverter(){return new b(this)}getHiddenAreas(){return[]}setHiddenAreas(e){return!1}setTabSize(e){return!1}setWrappingSettings(e,t,i,n){return!1}createLineBreaksComputer(){ +let e=[];return{addRequest:(t,i)=>{e.push(null)},finalize:()=>e}}onModelFlushed(){}onModelLinesDeleted(e,t,i){return new r.ViewLinesDeletedEvent(t,i)}onModelLinesInserted(e,t,i,n){return new r.ViewLinesInsertedEvent(t,i)}onModelLineChanged(e,t,i){return[!1,new r.ViewLinesChangedEvent(t,t),null,null]}acceptVersionId(e){}getViewLineCount(){return this.model.getLineCount()}getActiveIndentGuide(e,t,i){return{startLineNumber:e,endLineNumber:e,indent:0}}getViewLinesIndentGuides(e,t){const i=t-e+1;let n=new Array(i);for(let e=0;e=t)return void(i>s&&(o[o.length-1]=i));o.push(n,t,i)}else this.result[e]=[n,t,i]}}})),define(t[517],i([0,1,8,87,172]),(function(e,t,i,n,o){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MonospaceLineBreaksComputerFactory=void 0;class s extends n.CharacterClassifier{constructor(e,t){super(0);for(let t=0;t=0&&e<256?this._asciiMap[e]:e>=12352&&e<=12543||e>=13312&&e<=19903||e>=19968&&e<=40959?3:this._map.get(e)||this._defaultValue}}let r=[],a=[];class l{constructor(e,t){this.classifier=new s(e,t)}static create(e){return new l(e.get(108),e.get(107))}createLineBreaksComputer(e,t,i,n){t|=0,i=+i;let o=[],s=[];return{addRequest:(e,t)=>{o.push(e),s.push(t)},finalize:()=>{const l=e.typicalFullwidthCharacterWidth/e.typicalHalfwidthCharacterWidth;let h=[];for(let e=0,r=o.length;e=0){let e=Math.abs(m[L]-y);for(;L+1=e)break;e=t,L++}}for(;Lt&&(t=S,s=w);let r=0,a=0,d=0,p=0;if(s<=y){let f=s,w=0===t?0:n.charCodeAt(t-1),E=0===t?0:e.get(w),L=!0;for(let s=t;sS&&g(w,E,c,u)&&(r=t,a=f),(f+=m)>y){t>S?(d=t,p=f-m):(d=s+1,p=f),f-a>_&&(r=0),L=!1;break}w=c,E=u}if(L){b>0&&(v[b]=u[u.length-1],C[b]=m[u.length-1],b++);break}}if(0===r){let c=s,u=n.charCodeAt(t),m=e.get(u),f=!1;for(let o=t-1;o>=S;o--){const t=o+1,s=n.charCodeAt(o);if(9===s){f=!0;break}let h,v;if(i.isLowSurrogate(s)?(o--,h=0,v=2):(h=e.get(s),v=i.isFullWidthCharacter(s)?l:1),c<=y){if(0===d&&(d=t,p=c),c<=y-_)break;if(g(s,h,u,m)){r=t,a=c;break}}c-=v,u=s,m=h}if(0!==r){const e=_-(p-a);if(e<=o){const t=n.charCodeAt(d);let s;e-(s=i.isHighSurrogate(t)?2:h(t,p,o,l))<0&&(r=0)}}if(f){L--;continue}}for(0===r&&(r=d,a=p),S=r,v[b]=r,w=a,C[b]=a,b++,y=a+_;L<0||L=f)break;f=e,L++}}return 0===b?null:(v.length=b,C.length=b, +r=t.breakOffsets,a=t.breakOffsetsVisibleColumn,t.breakOffsets=v,t.breakOffsetsVisibleColumn=C,t.wrappedTextIndentLength=f,t)}function c(e,t,n,s,r,a){if(-1===s)return null;const l=t.length;if(l<=1)return null;const d=p(t,n,s,r,a),c=s-d;let u=[],m=[],f=0,_=0,v=0,C=s,b=t.charCodeAt(0),S=e.get(b),w=h(b,0,n,r),y=1;i.isHighSurrogate(b)&&(w+=1,b=t.charCodeAt(1),S=e.get(b),y++);for(let o=y;oC&&((0===_||w-v>c)&&(_=s,v=w-d),u[f]=_,m[f]=v,f++,C=v+c,_=0),b=a,S=l}return 0===f?null:(u[f]=l,m[f]=w,new o.LineBreakData(u,m,d))}function h(e,t,n,o){return 9===e?n-t%n:i.isFullWidthCharacter(e)?o:1}function u(e,t){return t-e%t}function g(e,t,i,n){return 32!==i&&(2===t||3===t&&2!==n||1===n||3===n&&1!==t)}function p(e,t,n,o,s){let r=0;if(0!==s){const a=i.firstNonWhitespaceIndex(e);if(-1!==a){for(let i=0;in&&(r=0)}}return r}t.MonospaceLineBreaksComputerFactory=l})),define(t[518],i([0,1,29,2,8,38,13,3,18,235,236,162,388,172,70,440,15,16,234,45,165]),(function(e,t,i,n,o,s,r,a,l,d,c,h,u,g,p,m,f,_,v,C,b){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ViewModel=void 0;const S=!0;class w extends n.Disposable{constructor(e,t,i,n,o,s){if(super(),this._editorId=e,this._configuration=t,this.model=i,this._eventDispatcher=new b.ViewModelEventDispatcher,this.onEvent=this._eventDispatcher.onEvent,this.cursorConfig=new C.CursorConfiguration(this.model.getLanguageIdentifier(),this.model.getOptions(),this._configuration),this._tokenizeViewportSoon=this._register(new f.RunOnceScheduler(()=>this.tokenizeViewport(),50)),this._updateConfigurationViewLineCount=this._register(new f.RunOnceScheduler(()=>this._updateConfigurationViewLineCountNow(),0)),this._hasFocus=!1,this._viewportStartLine=-1,this._viewportStartLineTrackedRange=null,this._viewportStartLineDelta=0, +S&&this.model.isTooLargeForTokenization())this._lines=new g.IdentityLinesCollection(this.model);else{const e=this._configuration.options,t=e.get(36),i=e.get(112),s=e.get(118),r=e.get(111);this._lines=new g.SplitLinesCollection(this.model,n,o,t,this.model.getOptions().tabSize,i,s.wrappingColumn,r)}this.coordinatesConverter=this._lines.createCoordinatesConverter(),this._cursor=this._register(new v.Cursor(i,this,this.coordinatesConverter,this.cursorConfig)),this.viewLayout=this._register(new u.ViewLayout(this._configuration,this.getLineCount(),s)),this._register(this.viewLayout.onDidScroll(e=>{e.scrollTopChanged&&this._tokenizeViewportSoon.schedule(),this._eventDispatcher.emitSingleViewEvent(new h.ViewScrollChangedEvent(e)),this._eventDispatcher.emitOutgoingEvent(new b.ScrollChangedEvent(e.oldScrollWidth,e.oldScrollLeft,e.oldScrollHeight,e.oldScrollTop,e.scrollWidth,e.scrollLeft,e.scrollHeight,e.scrollTop))})),this._register(this.viewLayout.onDidContentSizeChange(e=>{this._eventDispatcher.emitOutgoingEvent(e) +})),this._decorations=new m.ViewModelDecorations(this._editorId,this.model,this._configuration,this._lines,this.coordinatesConverter),this._registerModelEvents(),this._register(this._configuration.onDidChangeFast(e=>{try{const t=this._eventDispatcher.beginEmitViewEvents();this._onConfigurationChanged(t,e)}finally{this._eventDispatcher.endEmitViewEvents()}})),this._register(c.MinimapTokensColorTracker.getInstance().onDidChange(()=>{this._eventDispatcher.emitSingleViewEvent(new h.ViewTokensColorsChangedEvent)})),this._updateConfigurationViewLineCountNow()}dispose(){super.dispose(),this._decorations.dispose(),this._lines.dispose(),this.invalidateMinimapColorCache(),this._viewportStartLineTrackedRange=this.model._setTrackedRange(this._viewportStartLineTrackedRange,null,1),this._eventDispatcher.dispose()}addViewEventHandler(e){this._eventDispatcher.addViewEventHandler(e)}removeViewEventHandler(e){this._eventDispatcher.removeViewEventHandler(e)}_updateConfigurationViewLineCountNow(){ +this._configuration.setViewLineCount(this._lines.getViewLineCount())}tokenizeViewport(){const e=this.viewLayout.getLinesViewportData(),t=this.coordinatesConverter.convertViewPositionToModelPosition(new r.Position(e.startLineNumber,1)),i=this.coordinatesConverter.convertViewPositionToModelPosition(new r.Position(e.endLineNumber,1));this.model.tokenizeViewport(t.lineNumber,i.lineNumber)}setHasFocus(e){this._hasFocus=e,this._cursor.setHasFocus(e),this._eventDispatcher.emitSingleViewEvent(new h.ViewFocusChangedEvent(e)),this._eventDispatcher.emitOutgoingEvent(new b.FocusChangedEvent(!e,e))}onDidColorThemeChange(){this._eventDispatcher.emitSingleViewEvent(new h.ViewThemeChangedEvent)}_onConfigurationChanged(e,t){let i=null;if(-1!==this._viewportStartLine){let e=new r.Position(this._viewportStartLine,this.getLineMinColumn(this._viewportStartLine));i=this.coordinatesConverter.convertViewPositionToModelPosition(e)}let n=!1;const o=this._configuration.options,s=o.get(36),a=o.get(112),l=o.get(118),d=o.get(111) +;if(this._lines.setWrappingSettings(s,a,l.wrappingColumn,d)&&(e.emitViewEvent(new h.ViewFlushedEvent),e.emitViewEvent(new h.ViewLineMappingChangedEvent),e.emitViewEvent(new h.ViewDecorationsChangedEvent(null)),this._cursor.onLineMappingChanged(e),this._decorations.onLineMappingChanged(),this.viewLayout.onFlushed(this.getLineCount()),0!==this.viewLayout.getCurrentScrollTop()&&(n=!0),this._updateConfigurationViewLineCount.schedule()),t.hasChanged(72)&&(this._decorations.reset(),e.emitViewEvent(new h.ViewDecorationsChangedEvent(null))),e.emitViewEvent(new h.ViewConfigurationChangedEvent(t)),this.viewLayout.onConfigurationChanged(t),n&&i){const e=this.coordinatesConverter.convertModelPositionToViewPosition(i),t=this.viewLayout.getVerticalOffsetForLineNumber(e.lineNumber);this.viewLayout.setScrollPosition({scrollTop:t+this._viewportStartLineDelta},1)}C.CursorConfiguration.shouldRecreate(t)&&(this.cursorConfig=new C.CursorConfiguration(this.model.getLanguageIdentifier(),this.model.getOptions(),this._configuration), +this._cursor.updateConfiguration(this.cursorConfig))}_registerModelEvents(){this._register(this.model.onDidChangeRawContentFast(e=>{try{const t=this._eventDispatcher.beginEmitViewEvents();let i=!1,n=!1;const o=e.changes,s=e.versionId,r=this._lines.createLineBreaksComputer();for(const e of o)switch(e.changeType){case 4:for(const t of e.detail)r.addRequest(t,null);break;case 2:r.addRequest(e.detail,null)}const a=r.finalize();let l=0;for(const e of o)switch(e.changeType){case 1:this._lines.onModelFlushed(),t.emitViewEvent(new h.ViewFlushedEvent),this._decorations.reset(),this.viewLayout.onFlushed(this.getLineCount()),i=!0;break;case 3:{const n=this._lines.onModelLinesDeleted(s,e.fromLineNumber,e.toLineNumber);null!==n&&(t.emitViewEvent(n),this.viewLayout.onLinesDeleted(n.fromLineNumber,n.toLineNumber)),i=!0;break}case 4:{const n=a.slice(l,l+e.detail.length);l+=e.detail.length;const o=this._lines.onModelLinesInserted(s,e.fromLineNumber,e.toLineNumber,n);null!==o&&(t.emitViewEvent(o), +this.viewLayout.onLinesInserted(o.fromLineNumber,o.toLineNumber)),i=!0;break}case 2:{const i=a[l];l++;const[o,r,d,c]=this._lines.onModelLineChanged(s,e.lineNumber,i);n=o,r&&t.emitViewEvent(r),d&&(t.emitViewEvent(d),this.viewLayout.onLinesInserted(d.fromLineNumber,d.toLineNumber)),c&&(t.emitViewEvent(c),this.viewLayout.onLinesDeleted(c.fromLineNumber,c.toLineNumber));break}}this._lines.acceptVersionId(s),this.viewLayout.onHeightMaybeChanged(),!i&&n&&(t.emitViewEvent(new h.ViewLineMappingChangedEvent),t.emitViewEvent(new h.ViewDecorationsChangedEvent(null)),this._cursor.onLineMappingChanged(t),this._decorations.onLineMappingChanged())}finally{this._eventDispatcher.endEmitViewEvents()}if(this._viewportStartLine=-1,this._configuration.setMaxLineNumber(this.model.getLineCount()),this._updateConfigurationViewLineCountNow(),!this._hasFocus&&this.model.getAttachedEditorCount()>=2&&this._viewportStartLineTrackedRange){const e=this.model._getTrackedRange(this._viewportStartLineTrackedRange);if(e){ +const t=this.coordinatesConverter.convertModelPositionToViewPosition(e.getStartPosition()),i=this.viewLayout.getVerticalOffsetForLineNumber(t.lineNumber);this.viewLayout.setScrollPosition({scrollTop:i+this._viewportStartLineDelta},1)}}try{const t=this._eventDispatcher.beginEmitViewEvents();this._cursor.onModelContentChanged(t,e)}finally{this._eventDispatcher.endEmitViewEvents()}})),this._register(this.model.onDidChangeTokens(e=>{let t=[];for(let i=0,n=e.ranges.length;i{ +this._eventDispatcher.emitSingleViewEvent(new h.ViewLanguageConfigurationEvent),this.cursorConfig=new C.CursorConfiguration(this.model.getLanguageIdentifier(),this.model.getOptions(),this._configuration),this._cursor.updateConfiguration(this.cursorConfig)})),this._register(this.model.onDidChangeLanguage(e=>{this.cursorConfig=new C.CursorConfiguration(this.model.getLanguageIdentifier(),this.model.getOptions(),this._configuration),this._cursor.updateConfiguration(this.cursorConfig)})),this._register(this.model.onDidChangeOptions(e=>{if(this._lines.setTabSize(this.model.getOptions().tabSize)){try{const e=this._eventDispatcher.beginEmitViewEvents();e.emitViewEvent(new h.ViewFlushedEvent),e.emitViewEvent(new h.ViewLineMappingChangedEvent),e.emitViewEvent(new h.ViewDecorationsChangedEvent(null)),this._cursor.onLineMappingChanged(e),this._decorations.onLineMappingChanged(),this.viewLayout.onFlushed(this.getLineCount())}finally{this._eventDispatcher.endEmitViewEvents()} +this._updateConfigurationViewLineCount.schedule()}this.cursorConfig=new C.CursorConfiguration(this.model.getLanguageIdentifier(),this.model.getOptions(),this._configuration),this._cursor.updateConfiguration(this.cursorConfig)})),this._register(this.model.onDidChangeDecorations(e=>{this._decorations.onModelDecorationsChanged(),this._eventDispatcher.emitSingleViewEvent(new h.ViewDecorationsChangedEvent(e))}))}setHiddenAreas(e){try{const t=this._eventDispatcher.beginEmitViewEvents();this._lines.setHiddenAreas(e)&&(t.emitViewEvent(new h.ViewFlushedEvent),t.emitViewEvent(new h.ViewLineMappingChangedEvent),t.emitViewEvent(new h.ViewDecorationsChangedEvent(null)),this._cursor.onLineMappingChanged(t),this._decorations.onLineMappingChanged(),this.viewLayout.onFlushed(this.getLineCount()),this.viewLayout.onHeightMaybeChanged())}finally{this._eventDispatcher.endEmitViewEvents()}this._updateConfigurationViewLineCount.schedule()}getVisibleRangesPlusViewportAboveBelow(){ +const e=this._configuration.options.get(117),t=this._configuration.options.get(51),i=Math.max(20,Math.round(e.height/t)),n=this.viewLayout.getLinesViewportData(),o=Math.max(1,n.completelyVisibleStartLineNumber-i),s=Math.min(this.getLineCount(),n.completelyVisibleEndLineNumber+i);return this._toModelVisibleRanges(new a.Range(o,this.getLineMinColumn(o),s,this.getLineMaxColumn(s)))}getVisibleRanges(){const e=this.getCompletelyVisibleViewRange();return this._toModelVisibleRanges(e)}_toModelVisibleRanges(e){const t=this.coordinatesConverter.convertViewRangeToModelRange(e),i=this._lines.getHiddenAreas();if(0===i.length)return[t];let n=[],o=0,s=t.startLineNumber,r=t.startColumn,l=t.endLineNumber,d=t.endColumn;for(let e=0,t=i.length;el||(se.startLineNumber);let o="";for(let e=0;e0&&i[e-1]===i[e]||(o+=this.model.getLineContent(i[e])+n);return o}if(o&&t){let t=[],n=0;for(const o of e){const e=o.startLineNumber;o.isEmpty()?e!==n&&t.push(this.model.getLineContent(e)):t.push(this.model.getValueInRange(o,i?2:0)),n=e}return 1===t.length?t[0]:t}let r=[];for(const t of e)t.isEmpty()||r.push(this.model.getValueInRange(t,i?2:0));return 1===r.length?r[0]:r} +getRichTextToCopy(e,t){const i=this.model.getLanguageIdentifier();if(1===i.id)return null;if(1!==e.length)return null;let n=e[0];if(n.isEmpty()){if(!t)return null;const e=n.startLineNumber;n=new a.Range(e,this.model.getLineMinColumn(e),e,this.model.getLineMaxColumn(e))}const o=this._configuration.options.get(36),r=this._getColorMap(),l=o.fontFamily===s.EDITOR_FONT_DEFAULTS.fontFamily?o.fontFamily:`'${o.fontFamily}', ${s.EDITOR_FONT_DEFAULTS.fontFamily}`;return{mode:i.language,html:'
        '+this._getHTMLToCopy(n,r)+"
        "}}_getHTMLToCopy(e,t){const i=e.startLineNumber,n=e.startColumn,o=e.endLineNumber,s=e.endColumn,r=this.getTabSize();let a="";for(let e=i;e<=o;e++){const l=this.model.getLineTokens(e),c=l.getLineContent(),h=e===i?n-1:0,u=e===o?s-1:c.length +;a+=""===c?"
        ":d.tokenizeLineToHTML(c,l.inflate(),t,h,u,r,_.isWindows)}return a}_getColorMap(){let e=l.TokenizationRegistry.getColorMap(),t=["#000000"];if(e)for(let n=1,o=e.length;nthis._cursor.setStates(n,e,t,i))}getCursorColumnSelectData(){return this._cursor.getCursorColumnSelectData()}setCursorColumnSelectData(e){this._cursor.setCursorColumnSelectData(e)}getPrevEditOperationType(){return this._cursor.getPrevEditOperationType()}setPrevEditOperationType(e){this._cursor.setPrevEditOperationType(e)}getSelection(){return this._cursor.getSelection()}getSelections(){return this._cursor.getSelections()}getPosition(){ +return this._cursor.getPrimaryCursorState().modelState.position}setSelections(e,t){this._withViewEventsCollector(i=>this._cursor.setSelections(i,e,t))}saveCursorState(){return this._cursor.saveState()}restoreCursorState(e){this._withViewEventsCollector(t=>this._cursor.restoreState(t,e))}_executeCursorEdit(e){this._cursor.context.cursorConfig.readOnly?this._eventDispatcher.emitOutgoingEvent(new b.ReadOnlyEditAttemptEvent):this._withViewEventsCollector(e)}executeEdits(e,t,i){this._executeCursorEdit(n=>this._cursor.executeEdits(n,e,t,i))}startComposition(){this._cursor.setIsDoingComposition(!0),this._executeCursorEdit(e=>this._cursor.startComposition(e))}endComposition(e){this._cursor.setIsDoingComposition(!1),this._executeCursorEdit(t=>this._cursor.endComposition(t,e))}type(e,t){this._executeCursorEdit(i=>this._cursor.type(i,e,t))}replacePreviousChar(e,t,i){this._executeCursorEdit(n=>this._cursor.replacePreviousChar(n,e,t,i))}paste(e,t,i,n){this._executeCursorEdit(o=>this._cursor.paste(o,e,t,i,n))}cut(e){ +this._executeCursorEdit(t=>this._cursor.cut(t,e))}executeCommand(e,t){this._executeCursorEdit(i=>this._cursor.executeCommand(i,e,t))}executeCommands(e,t){this._executeCursorEdit(i=>this._cursor.executeCommands(i,e,t))}revealPrimaryCursor(e,t){this._withViewEventsCollector(i=>this._cursor.revealPrimary(i,e,t,0))}revealTopMostCursor(e){const t=this._cursor.getTopMostViewPosition(),i=new a.Range(t.lineNumber,t.column,t.lineNumber,t.column);this._withViewEventsCollector(t=>t.emitViewEvent(new h.ViewRevealRangeRequestEvent(e,i,null,0,!0,0)))}revealBottomMostCursor(e){const t=this._cursor.getBottomMostViewPosition(),i=new a.Range(t.lineNumber,t.column,t.lineNumber,t.column);this._withViewEventsCollector(t=>t.emitViewEvent(new h.ViewRevealRangeRequestEvent(e,i,null,0,!0,0)))}revealRange(e,t,i,n,o){this._withViewEventsCollector(s=>s.emitViewEvent(new h.ViewRevealRangeRequestEvent(e,i,null,n,t,o)))}getVerticalOffsetForLineNumber(e){return this.viewLayout.getVerticalOffsetForLineNumber(e)}getScrollTop(){ +return this.viewLayout.getCurrentScrollTop()}setScrollTop(e,t){this.viewLayout.setScrollPosition({scrollTop:e},t)}setScrollPosition(e,t){this.viewLayout.setScrollPosition(e,t)}deltaScrollNow(e,t){this.viewLayout.deltaScrollNow(e,t)}changeWhitespace(e){this.viewLayout.changeWhitespace(e)&&(this._eventDispatcher.emitSingleViewEvent(new h.ViewZonesChangedEvent),this._eventDispatcher.emitOutgoingEvent(new b.ViewZonesChangedEvent))}setMaxLineWidth(e){this.viewLayout.setMaxLineWidth(e)}_withViewEventsCollector(e){try{e(this._eventDispatcher.beginEmitViewEvents())}finally{this._eventDispatcher.endEmitViewEvents()}}}t.ViewModel=w})),define(t[237],i([0,1,19,25,12,59,18,50,109]),(function(e,t,i,n,o,s,r,a,l){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.OutlineModel=t.OutlineGroup=t.OutlineElement=t.TreeElement=void 0;class d{remove(){this.parent&&this.parent.children.delete(this.id)}static findId(e,t){let i;"string"==typeof e?i=`${t.id}/${e}`:(i=`${t.id}/${e.name}`, +void 0!==t.children.get(i)&&(i=`${t.id}/${e.name}_${e.range.startLineNumber}_${e.range.startColumn}`));let n=i;for(let e=0;void 0!==t.children.get(n);e++)n=`${i}_${e}`;return n}static empty(e){return 0===e.children.size}}t.TreeElement=d;class c extends d{constructor(e,t,i){super(),this.id=e,this.parent=t,this.symbol=i,this.children=new Map}}t.OutlineElement=c;class h extends d{constructor(e,t,i,n){super(),this.id=e,this.parent=t,this.label=i,this.order=n,this.children=new Map}}t.OutlineGroup=h;class u extends d{constructor(e){super(),this.uri=e,this.id="root",this.parent=void 0,this._groups=new Map,this.children=new Map,this.id="root",this.parent=void 0}static create(e,t){let i=this._keys.for(e,!0),o=u._requests.get(i);if(!o){let t=new n.CancellationTokenSource;o={promiseCnt:0,source:t,promise:u._create(e,t.token),model:void 0},u._requests.set(i,o);const s=Date.now();o.promise.then(()=>{let t=this._keys.for(e,!1),i=this._requestDurations.get(t);i||(i=new l.MovingAverage,this._requestDurations.set(t,i)), +i.update(Date.now()-s)})}return o.model?Promise.resolve(o.model):(o.promiseCnt+=1,t.onCancellationRequested(()=>{0==--o.promiseCnt&&(o.source.cancel(),u._requests.delete(i))}),new Promise((e,t)=>{o.promise.then(t=>{o.model=t,e(t)},e=>{u._requests.delete(i),t(e)})}))}static _create(e,t){const s=new n.CancellationTokenSource(t),a=new u(e.uri),l=r.DocumentSymbolProviderRegistry.ordered(e),c=l.map((t,i)=>{var n;let r=d.findId(`provider_${i}`,a),l=new h(r,a,null!==(n=t.displayName)&&void 0!==n?n:"Unknown Outline Provider",i);return Promise.resolve(t.provideDocumentSymbols(e,s.token)).then(e=>{for(const t of e||[])u._makeOutlineElement(t,l);return l},e=>(o.onUnexpectedExternalError(e),l)).then(e=>{d.empty(e)?e.remove():a._groups.set(r,e)})}),g=r.DocumentSymbolProviderRegistry.onDidChange(()=>{const t=r.DocumentSymbolProviderRegistry.ordered(e);i.equals(t,l)||s.cancel()});return Promise.all(c).then(()=>s.token.isCancellationRequested&&!t.isCancellationRequested?u._create(e,t):a._compact()).finally(()=>{g.dispose()}) +}static _makeOutlineElement(e,t){let i=d.findId(e,t),n=new c(i,t,e);if(e.children)for(const t of e.children)u._makeOutlineElement(t,n);t.children.set(n.id,n)}_compact(){let e=0;for(const[t,i]of this._groups)0===i.children.size?this._groups.delete(t):e+=1;if(1!==e)this.children=this._groups;else{let e=a.Iterable.first(this._groups.values());for(let[,t]of e.children)t.parent=this,this.children.set(t.id,t)}return this}}t.OutlineModel=u,u._requestDurations=new s.LRUCache(50,.7),u._requests=new s.LRUCache(9,.75),u._keys=new class{constructor(){this._counter=1,this._data=new WeakMap}for(e,t){return`${e.id}/${t?e.getVersionId():""}/${this._hash(r.DocumentSymbolProviderRegistry.all(e))}`}_hash(e){let t="";for(const i of e){let e=this._data.get(i);void 0===e&&(e=this._counter++,this._data.set(i,e)),t+=e}return t}}})),define(t[519],i([0,1,31,26]),(function(e,t,i,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.FoldingDecorationProvider=t.foldingCollapsedIcon=t.foldingExpandedIcon=void 0, +t.foldingExpandedIcon=n.registerIcon("folding-expanded",n.Codicon.chevronDown),t.foldingCollapsedIcon=n.registerIcon("folding-collapsed",n.Codicon.chevronRight);class o{constructor(e){this.editor=e,this.autoHideFoldingControls=!0,this.showFoldingHighlights=!0}getDecorationOption(e,t){return t?o.HIDDEN_RANGE_DECORATION:e?this.showFoldingHighlights?o.COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION:o.COLLAPSED_VISUAL_DECORATION:this.autoHideFoldingControls?o.EXPANDED_AUTO_HIDE_VISUAL_DECORATION:o.EXPANDED_VISUAL_DECORATION}deltaDecorations(e,t){return this.editor.deltaDecorations(e,t)}changeDecorations(e){return this.editor.changeDecorations(e)}}t.FoldingDecorationProvider=o,o.COLLAPSED_VISUAL_DECORATION=i.ModelDecorationOptions.register({stickiness:1,afterContentClassName:"inline-folded",isWholeLine:!0,firstLineDecorationClassName:t.foldingCollapsedIcon.classNames}),o.COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION=i.ModelDecorationOptions.register({stickiness:1,afterContentClassName:"inline-folded", +className:"folded-background",isWholeLine:!0,firstLineDecorationClassName:t.foldingCollapsedIcon.classNames}),o.EXPANDED_AUTO_HIDE_VISUAL_DECORATION=i.ModelDecorationOptions.register({stickiness:1,isWholeLine:!0,firstLineDecorationClassName:t.foldingExpandedIcon.classNames}),o.EXPANDED_VISUAL_DECORATION=i.ModelDecorationOptions.register({stickiness:1,isWholeLine:!0,firstLineDecorationClassName:"alwaysShowFoldIcons "+t.foldingExpandedIcon.classNames}),o.HIDDEN_RANGE_DECORATION=i.ModelDecorationOptions.register({stickiness:1})})),define(t[520],i([0,1,166,31,42]),(function(e,t,i,n,o){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.computeRanges=t.RangesCollector=t.IndentRangeProvider=t.ID_INDENT_PROVIDER=void 0;const s=5e3;t.ID_INDENT_PROVIDER="indent";t.IndentRangeProvider=class{constructor(e){this.editorModel=e,this.id=t.ID_INDENT_PROVIDER}dispose(){}compute(e){let t=o.LanguageConfigurationRegistry.getFoldingRules(this.editorModel.getLanguageIdentifier().id),i=t&&!!t.offSide,n=t&&t.markers +;return Promise.resolve(a(this.editorModel,i,n))}};class r{constructor(e){this._startIndexes=[],this._endIndexes=[],this._indentOccurrences=[],this._length=0,this._foldingRangesLimit=e}insertFirst(e,t,n){if(e>i.MAX_LINE_NUMBER||t>i.MAX_LINE_NUMBER)return;let o=this._length;this._startIndexes[o]=e,this._endIndexes[o]=t,this._length++,n<1e3&&(this._indentOccurrences[n]=(this._indentOccurrences[n]||0)+1)}toIndentRanges(e){if(this._length<=this._foldingRangesLimit){let e=new Uint32Array(this._length),t=new Uint32Array(this._length);for(let i=this._length-1,n=0;i>=0;i--,n++)e[n]=this._startIndexes[i],t[n]=this._endIndexes[i];return new i.FoldingRegions(e,t)}{let t=0,o=this._indentOccurrences.length;for(let e=0;ethis._foldingRangesLimit){o=e;break}t+=i}}const s=e.getOptions().tabSize;let r=new Uint32Array(this._foldingRangesLimit),a=new Uint32Array(this._foldingRangesLimit);for(let i=this._length-1,l=0;i>=0;i--){ +let d=this._startIndexes[i],c=e.getLineContent(d),h=n.TextModel.computeIndentLevel(c,s);(h0;i--){let o,s=e.getLineContent(i),r=n.TextModel.computeIndentLevel(s,a),h=c[c.length-1];if(-1!==r){if(d&&(o=s.match(d))){if(!o[1]){c.push({indent:-2,endAbove:i,line:i});continue}{let e=c.length-1;for(;e>0&&-2!==c[e].indent;)e--;if(e>0){c.length=e+1,h=c[e],l.insertFirst(i,h.line,r),h.line=i,h.indent=r,h.endAbove=i;continue}}}if(h.indent>r){do{c.pop(),h=c[c.length-1]}while(h.indent>r);let e=h.endAbove-1;e-i>=1&&l.insertFirst(i,e,r)}h.indent===r?h.endAbove=i:c.push({indent:r,endAbove:i,line:i})}else t&&(h.endAbove=i)}return l.toIndentRanges(e)}t.RangesCollector=r, +t.computeRanges=a})),define(t[521],i([0,1,8,169,3,20,102,42,222]),(function(e,t,i,n,o,s,r,a,l){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MoveLinesCommand=void 0;t.MoveLinesCommand=class{constructor(e,t,i){this._selection=e,this._isMovingDown=t,this._autoIndent=i,this._selectionId=null,this._moveEndLineSelectionShrink=!1}getEditOperations(e,t){let n=e.getLineCount();if(this._isMovingDown&&this._selection.endLineNumber===n)return void(this._selectionId=t.trackSelection(this._selection));if(!this._isMovingDown&&1===this._selection.startLineNumber)return void(this._selectionId=t.trackSelection(this._selection));this._moveEndPositionDown=!1;let r=this._selection;r.startLineNumbere.getLineTokens(t), +getLanguageIdentifier:()=>e.getLanguageIdentifier(),getLanguageIdAtPosition:(t,i)=>e.getLanguageIdAtPosition(t,i),getLineContent:null};if(r.startLineNumber===r.endLineNumber&&1===e.getLineMaxColumn(r.startLineNumber)){let i=r.startLineNumber,n=this._isMovingDown?i+1:i-1;1===e.getLineMaxColumn(n)?t.addEditOperation(new o.Range(1,1,1,1),null):(t.addEditOperation(new o.Range(i,1,i,1),e.getLineContent(n)),t.addEditOperation(new o.Range(n,1,n,e.getLineMaxColumn(n)),null)),r=new s.Selection(n,1,n,1)}else{let n,s;if(this._isMovingDown){n=r.endLineNumber+1,s=e.getLineContent(n),t.addEditOperation(new o.Range(n-1,e.getLineMaxColumn(n-1),n,e.getLineMaxColumn(n)),null);let c=s;if(this.shouldAutoIndent(e,r)){let p=this.matchEnterRule(e,u,d,n,r.startLineNumber-1);if(null!==p){let t=i.getLeadingWhitespace(e.getLineContent(n)),o=p+l.getSpaceCnt(t,d),r=l.generateIndent(o,d,h);c=r+this.trimLeft(s)}else{g.getLineContent=t=>t===r.startLineNumber?e.getLineContent(n):e.getLineContent(t) +;let t=a.LanguageConfigurationRegistry.getGoodIndentForLine(this._autoIndent,g,e.getLanguageIdAtPosition(n,1),r.startLineNumber,u);if(null!==t){let o=i.getLeadingWhitespace(e.getLineContent(n)),r=l.getSpaceCnt(t,d);if(r!==l.getSpaceCnt(o,d)){let e=l.generateIndent(r,d,h);c=e+this.trimLeft(s)}}}t.addEditOperation(new o.Range(r.startLineNumber,1,r.startLineNumber,1),c+"\n");let m=this.matchEnterRule(e,u,d,r.startLineNumber,r.startLineNumber,c);if(null!==m)0!==m&&this.getIndentEditsOfMovingBlock(e,t,r,d,h,m);else{g.getLineContent=t=>t===r.startLineNumber?c:t>=r.startLineNumber+1&&t<=r.endLineNumber+1?e.getLineContent(t-1):e.getLineContent(t);let o=a.LanguageConfigurationRegistry.getGoodIndentForLine(this._autoIndent,g,e.getLanguageIdAtPosition(n,1),r.startLineNumber+1,u);if(null!==o){const n=i.getLeadingWhitespace(e.getLineContent(r.startLineNumber)),s=l.getSpaceCnt(o,d),a=l.getSpaceCnt(n,d);if(s!==a){const i=s-a;this.getIndentEditsOfMovingBlock(e,t,r,d,h,i)}}} +}else t.addEditOperation(new o.Range(r.startLineNumber,1,r.startLineNumber,1),c+"\n")}else if(n=r.startLineNumber-1,s=e.getLineContent(n),t.addEditOperation(new o.Range(n,1,n+1,1),null),t.addEditOperation(new o.Range(r.endLineNumber,e.getLineMaxColumn(r.endLineNumber),r.endLineNumber,e.getLineMaxColumn(r.endLineNumber)),"\n"+s),this.shouldAutoIndent(e,r)){g.getLineContent=t=>t===n?e.getLineContent(r.startLineNumber):e.getLineContent(t);let o=this.matchEnterRule(e,u,d,r.startLineNumber,r.startLineNumber-2);if(null!==o)0!==o&&this.getIndentEditsOfMovingBlock(e,t,r,d,h,o);else{let o=a.LanguageConfigurationRegistry.getGoodIndentForLine(this._autoIndent,g,e.getLanguageIdAtPosition(r.startLineNumber,1),n,u);if(null!==o){let n=i.getLeadingWhitespace(e.getLineContent(r.startLineNumber)),s=l.getSpaceCnt(o,d),a=l.getSpaceCnt(n,d);if(s!==a){let i=s-a;this.getIndentEditsOfMovingBlock(e,t,r,d,h,i)}}}}}this._selectionId=t.trackSelection(r)}buildIndentConverter(e,t,i){return{ +shiftIndent:o=>n.ShiftCommand.shiftIndent(o,o.length+1,e,t,i),unshiftIndent:o=>n.ShiftCommand.unshiftIndent(o,o.length+1,e,t,i)}}matchEnterRule(e,t,n,s,d,c){let h=d;for(;h>=1;){let t;if(t=h===d&&void 0!==c?c:e.getLineContent(h),i.lastNonWhitespaceIndex(t)>=0)break;h--}if(h<1||s>e.getLineCount())return null;let u=e.getLineMaxColumn(h),g=a.LanguageConfigurationRegistry.getEnterAction(this._autoIndent,e,new o.Range(h,u,h,u));if(g){let o=g.indentation;g.indentAction===r.IndentAction.None?o=g.indentation+g.appendText:g.indentAction===r.IndentAction.Indent?o=g.indentation+g.appendText:g.indentAction===r.IndentAction.IndentOutdent?o=g.indentation:g.indentAction===r.IndentAction.Outdent&&(o=t.unshiftIndent(g.indentation)+g.appendText);let d=e.getLineContent(s);if(this.trimLeft(d).indexOf(this.trimLeft(o))>=0){let r=i.getLeadingWhitespace(e.getLineContent(s)),d=i.getLeadingWhitespace(o),c=a.LanguageConfigurationRegistry.getIndentMetadata(e,s);return null!==c&&2&c&&(d=t.unshiftIndent(d)), +l.getSpaceCnt(d,n)-l.getSpaceCnt(r,n)}}return null}trimLeft(e){return e.replace(/^\s+/,"")}shouldAutoIndent(e,t){if(this._autoIndent<4)return!1;if(!e.isCheapToTokenize(t.startLineNumber))return!1;let i=e.getLanguageIdAtPosition(t.startLineNumber,1);return i===e.getLanguageIdAtPosition(t.endLineNumber,1)&&null!==a.LanguageConfigurationRegistry.getIndentRulesSupport(i)}getIndentEditsOfMovingBlock(e,t,n,s,r,a){for(let d=n.startLineNumber;d<=n.endLineNumber;d++){let c=e.getLineContent(d),h=i.getLeadingWhitespace(c),u=l.getSpaceCnt(h,s)+a,g=l.generateIndent(u,s,r);g!==h&&(t.addEditOperation(new o.Range(d,1,d,h.length+1),g),d===n.endLineNumber&&n.endColumn<=h.length+1&&""===g&&(this._moveEndLineSelectionShrink=!0))}}computeCursorState(e,t){let i=t.getTrackedSelection(this._selectionId);return this._moveEndPositionDown&&(i=i.setEndPosition(i.endLineNumber+1,1)),this._moveEndLineSelectionShrink&&i.startLineNumber{const t=this._getWidth(e);this.domNode.style.width=t+"px",this.domNode.style.left=this._getLeft(e)+"px",this._onWidth(t)}))}dispose(){this._overlayWidget&&(this.editor.removeOverlayWidget(this._overlayWidget),this._overlayWidget=null),this._viewZone&&this.editor.changeViewZones(e=>{this._viewZone&&e.removeZone(this._viewZone.id),this._viewZone=null}),this.editor.deltaDecorations(this._positionMarkerId,[]),this._positionMarkerId=[],this._disposables.dispose()}create(){this.domNode.classList.add("zone-widget"),this.options.className&&this.domNode.classList.add(this.options.className),this.container=document.createElement("div"),this.container.classList.add("zone-widget-container"),this.domNode.appendChild(this.container),this.options.showArrow&&(this._arrow=new m(this.editor), +this._disposables.add(this._arrow)),this._fillContainer(this.container),this._initSash(),this._applyStyles()}style(e){e.frameColor&&(this.options.frameColor=e.frameColor),e.arrowColor&&(this.options.arrowColor=e.arrowColor),this._applyStyles()}_applyStyles(){if(this.container&&this.options.frameColor){let e=this.options.frameColor.toString();this.container.style.borderTopColor=e,this.container.style.borderBottomColor=e}if(this._arrow&&this.options.arrowColor){let e=this.options.arrowColor.toString();this._arrow.color=e}}_getWidth(e){return e.width-e.minimap.minimapWidth-e.verticalScrollbarWidth}_getLeft(e){return e.minimap.minimapWidth>0&&0===e.minimap.minimapLeft?e.minimap.minimapWidth:0}_onViewZoneTop(e){this.domNode.style.top=e+"px"}_onViewZoneHeight(e){if(this.domNode.style.height=`${e}px`,this.container){let t=e-this._decoratingElementsHeight();this.container.style.height=`${t}px`;const i=this.editor.getLayoutInfo();this._doLayout(t,this._getWidth(i))}this._resizeSash&&this._resizeSash.layout()} +get position(){const[e]=this._positionMarkerId;if(!e)return;const t=this.editor.getModel();if(!t)return;const i=t.getDecorationRange(e);return i?i.getStartPosition():void 0}show(e,t){const i=l.Range.isIRange(e)?l.Range.lift(e):l.Range.fromPositions(e);this._isShowing=!0,this._showImpl(i,t),this._isShowing=!1,this._positionMarkerId=this.editor.deltaDecorations(this._positionMarkerId,[{range:i,options:d.ModelDecorationOptions.EMPTY}])}hide(){this._viewZone&&(this.editor.changeViewZones(e=>{this._viewZone&&e.removeZone(this._viewZone.id)}),this._viewZone=null),this._overlayWidget&&(this.editor.removeOverlayWidget(this._overlayWidget),this._overlayWidget=null),this._arrow&&this._arrow.hide()}_decoratingElementsHeight(){let e=this.editor.getOption(51),t=0;if(this.options.showArrow){t+=2*Math.round(e/3)}if(this.options.showFrame){t+=2*Math.round(e/9)}return t}_showImpl(e,t){const i=e.getStartPosition(),n=this.editor.getLayoutInfo(),o=this._getWidth(n);this.domNode.style.width=`${o}px`, +this.domNode.style.left=this._getLeft(n)+"px";const s=document.createElement("div");s.style.overflow="hidden";const r=this.editor.getOption(51),a=Math.max(12,this.editor.getLayoutInfo().height/r*.8);t=Math.min(t,a);let l=0,d=0;if(this._arrow&&this.options.showArrow&&(l=Math.round(r/3),this._arrow.height=l,this._arrow.show(i)),this.options.showFrame&&(d=Math.round(r/9)),this.editor.changeViewZones(e=>{this._viewZone&&e.removeZone(this._viewZone.id),this._overlayWidget&&(this.editor.removeOverlayWidget(this._overlayWidget),this._overlayWidget=null),this.domNode.style.top="-1000px",this._viewZone=new g(s,i.lineNumber,i.column,t,e=>this._onViewZoneTop(e),e=>this._onViewZoneHeight(e)),this._viewZone.id=e.addZone(this._viewZone),this._overlayWidget=new p(u+this._viewZone.id,this.domNode),this.editor.addOverlayWidget(this._overlayWidget)}),this.container&&this.options.showFrame){const e=this.options.frameWidth?this.options.frameWidth:d;this.container.style.borderTopWidth=e+"px", +this.container.style.borderBottomWidth=e+"px"}let c=t*r-this._decoratingElementsHeight();this.container&&(this.container.style.top=l+"px",this.container.style.height=c+"px",this.container.style.overflow="hidden"),this._doLayout(c,o),this.options.keepEditorSelection||this.editor.setSelection(e);const h=this.editor.getModel();if(h){const t=e.endLineNumber+1;t<=h.getLineCount()?this.revealLine(t,!1):this.revealLine(h.getLineCount(),!0)}}revealLine(e,t){t?this.editor.revealLineInCenter(e,0):this.editor.revealLine(e,0)}setCssClass(e,t){this.container&&(t&&this.container.classList.remove(t),i.addClass(this.container,e))}_onWidth(e){}_doLayout(e,t){}_relayout(e){this._viewZone&&this._viewZone.heightInLines!==e&&this.editor.changeViewZones(t=>{this._viewZone&&(this._viewZone.heightInLines=e,t.layoutZone(this._viewZone.id))})}_initSash(){if(this._resizeSash)return;let e;this._resizeSash=this._disposables.add(new n.Sash(this.domNode,this,{orientation:1})),this.options.isResizeable||(this._resizeSash.hide(), +this._resizeSash.state=0),this._disposables.add(this._resizeSash.onDidStart(t=>{this._viewZone&&(e={startY:t.startY,heightInLines:this._viewZone.heightInLines})})),this._disposables.add(this._resizeSash.onDidEnd(()=>{e=void 0})),this._disposables.add(this._resizeSash.onDidChange(t=>{if(e){let i=(t.currentY-e.startY)/this.editor.getOption(51),n=i<0?Math.ceil(i):Math.floor(i),o=e.heightInLines+n;o>5&&o<35&&this._relayout(o)}}))}getHorizontalSashLeft(){return 0}getHorizontalSashTop(){return(null===this.domNode.style.height?0:parseInt(this.domNode.style.height))-this._decoratingElementsHeight()/2}getHorizontalSashWidth(){const e=this.editor.getLayoutInfo();return e.width-e.minimap.minimapWidth}}})),define(t[238],i([0,1,121,18,74,224]),(function(e,t,i,n,o,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.createTokenizationSupport=t.MonarchTokenizer=void 0;class r{constructor(e){this._maxCacheDepth=e,this._entries=Object.create(null)}static create(e,t){return this._INSTANCE.create(e,t)}create(e,t){ +if(null!==e&&e.depth>=this._maxCacheDepth)return new a(e,t);let i=a.getStackElementId(e);i.length>0&&(i+="|"),i+=t;let n=this._entries[i];return n||(n=new a(e,t),this._entries[i]=n,n)}}r._INSTANCE=new r(5);class a{constructor(e,t){this.parent=e,this.state=t,this.depth=(this.parent?this.parent.depth:0)+1}static getStackElementId(e){let t="";for(;null!==e;)t.length>0&&(t+="|"),t+=e.state,e=e.parent;return t}static _equals(e,t){for(;null!==e&&null!==t;){if(e===t)return!0;if(e.state!==t.state)return!1;e=e.parent,t=t.parent}return null===e&&null===t}equals(e){return a._equals(this,e)}push(e){return r.create(this,e)}pop(){return this.parent}popall(){let e=this;for(;e.parent;)e=e.parent;return e}switchTo(e){return r.create(this.parent,e)}}class l{constructor(e,t){this.modeId=e,this.state=t}equals(e){return this.modeId===e.modeId&&this.state.equals(e.state)}clone(){return this.state.clone()===this.state?this:new l(this.modeId,this.state)}}class d{constructor(e){this._maxCacheDepth=e,this._entries=Object.create(null)} +static create(e,t){return this._INSTANCE.create(e,t)}create(e,t){if(null!==t)return new c(e,t);if(null!==e&&e.depth>=this._maxCacheDepth)return new c(e,t);let i=a.getStackElementId(e),n=this._entries[i];return n||(n=new c(e,null),this._entries[i]=n,n)}}d._INSTANCE=new d(5);class c{constructor(e,t){this.stack=e,this.embeddedModeData=t}clone(){return(this.embeddedModeData?this.embeddedModeData.clone():null)===this.embeddedModeData?this:d.create(this.stack,this.embeddedModeData)}equals(e){return e instanceof c&&(!!this.stack.equals(e.stack)&&(null===this.embeddedModeData&&null===e.embeddedModeData||null!==this.embeddedModeData&&null!==e.embeddedModeData&&this.embeddedModeData.equals(e.embeddedModeData)))}}class h{constructor(){this._tokens=[],this._language=null,this._lastTokenType=null,this._lastTokenLanguage=null}enterMode(e,t){this._language=t}emit(e,t){this._lastTokenType===t&&this._lastTokenLanguage===this._language||(this._lastTokenType=t,this._lastTokenLanguage=this._language, +this._tokens.push(new i.Token(e,t,this._language)))}nestedModeTokenize(e,t,i){const o=t.modeId,s=t.state,r=n.TokenizationRegistry.get(o);if(!r)return this.enterMode(i,o),this.emit(i,""),s;let a=r.tokenize(e,s,i);return this._tokens=this._tokens.concat(a.tokens),this._lastTokenType=null,this._lastTokenLanguage=null,this._language=null,a.endState}finalize(e){return new i.TokenizationResult(this._tokens,e)}}class u{constructor(e,t){this._modeService=e,this._theme=t,this._prependTokens=null,this._tokens=[],this._currentLanguageId=0,this._lastTokenMetadata=0}enterMode(e,t){this._currentLanguageId=this._modeService.getLanguageIdentifier(t).id}emit(e,t){let i=this._theme.match(this._currentLanguageId,t);this._lastTokenMetadata!==i&&(this._lastTokenMetadata=i,this._tokens.push(e),this._tokens.push(i))}static _merge(e,t,i){let n=null!==e?e.length:0,o=t.length,s=null!==i?i.length:0;if(0===n&&0===o&&0===s)return new Uint32Array(0);if(0===n&&0===o)return i;if(0===o&&0===s)return e;let r=new Uint32Array(n+o+s) +;null!==e&&r.set(e);for(let e=0;e{if(s)return;let t=!1;for(let i=0,n=e.changedLanguages.length;ivoid 0)}}getInitialState(){let e=r.create(null,this._lexer.start);return d.create(e,null)}tokenize(e,t,i){let n=new h,o=this._tokenize(e,t,i,n);return n.finalize(o)}tokenize2(e,t,i){let n=new u(this._modeService,this._standaloneThemeService.getColorTheme().tokenTheme),o=this._tokenize(e,t,i,n);return n.finalize(o)}_tokenize(e,t,i,n){return t.embeddedModeData?this._nestedTokenize(e,t,i,n):this._myTokenize(e,t,i,n)}_findLeavingNestedModeOffset(e,t){let i=this._lexer.tokenizer[t.stack.state];if(!i&&!(i=s.findRules(this._lexer,t.stack.state)))throw s.createError(this._lexer,"tokenizer state is not defined: "+t.stack.state);let n=-1,o=!1 +;for(const t of i){if(!s.isIAction(t.action)||"@pop"!==t.action.nextEmbedded)continue;o=!0;let i=t.regex,r=t.regex.source;if("^(?:"===r.substr(0,4)&&")"===r.substr(r.length-1,1)){let e=(i.ignoreCase?"i":"")+(i.unicode?"u":"");i=new RegExp(r.substr(4,r.length-5),e)}let a=e.search(i);-1===a||0!==a&&t.matchOnlyAtLineStart||(-1===n||a0&&n.nestedModeTokenize(s,t.embeddedModeData,i);let r=e.substring(o);return this._myTokenize(r,t,i+o,n)}_safeRuleName(e){return e?e.name:"(unknown)"}_myTokenize(e,t,i,n){n.enterMode(i,this._modeId);const o=e.length;let r=t.embeddedModeData,a=t.stack,l=0,c=null,h=!0;for(;h||l=o)break;h=!1;let t=this._lexer.tokenizer[m];if(!t&&!(t=s.findRules(this._lexer,m)))throw s.createError(this._lexer,"tokenizer state is not defined: "+m);let i=e.substr(l);for(const e of t)if((0===l||!e.matchOnlyAtLineStart)&&(f=i.match(e.regex))){_=f[0],v=e.action;break}}if(f||(f=[""],_=""),v||(l=this._lexer.maxStack)throw s.createError(this._lexer,"maximum tokenizer stack size reached: ["+a.state+","+a.parent.state+",...]");a=a.push(m)}else if("@pop"===v.next){if(a.depth<=1)throw s.createError(this._lexer,"trying to pop an empty stack in rule: "+this._safeRuleName(C));a=a.pop()}else if("@popall"===v.next)a=a.popall();else{ +let e=s.substituteMatches(this._lexer,v.next,_,f,m);if("@"===e[0]&&(e=e.substr(1)),!s.findRules(this._lexer,e))throw s.createError(this._lexer,"trying to set a next state '"+e+"' that is undefined in rule: "+this._safeRuleName(C));a=a.push(e)}}v.log&&"string"==typeof v.log&&s.log(this._lexer,this._lexer.languageId+": "+s.substituteMatches(this._lexer,v.log,_,f,m))}if(null===S)throw s.createError(this._lexer,"lexer rule has no well-defined action in rule: "+this._safeRuleName(C));const w=t=>{let s=this._modeService.getModeIdForLanguageName(t);s&&(t=s);const r=this._getNestedEmbeddedModeData(t);if(l0)throw s.createError(this._lexer,"groups cannot be nested: "+this._safeRuleName(C));if(f.length!==S.length+1)throw s.createError(this._lexer,"matched number of groups does not match the number of actions in rule: "+this._safeRuleName(C));let e=0 +;for(let t=1;t{const d=()=>{const c=function(e,t,i){let n=[],s=i.getInitialState();for(let l=0,d=e.length;l"),s=c.endState}return n.join("")}(e,t,i);if(i instanceof l.MonarchTokenizer){const e=i.getLoadStatus();if(!1===e.loaded)return void e.promise.then(d,s)}n(c)};d()})}function c(e,t){let i=[];const n=new Uint32Array(2);n[0]=0,n[1]=16793600;for(let s=0,l=e.length;s")}return i.join("")}t.Colorizer=class{static colorizeElement(e,t,i,n){let o=(n=n||{}).theme||"vs",s=n.mimeType||i.getAttribute("lang")||i.getAttribute("data-lang");if(!s)return console.error("Mode not detected"),Promise.resolve() +;e.setTheme(o);let r=i.firstChild?i.firstChild.nodeValue:"";i.className+=" "+o;return this.colorize(t,r||"",s,n).then(e=>{i.innerHTML=e},e=>console.error(e))}static colorize(e,t,o,r){let a=4;r&&"number"==typeof r.tabSize&&(a=r.tabSize),n.startsWithUTF8BOM(t)&&(t=t.substr(1));let l=t.split(/\r\n|\r|\n/),h=e.getModeId(o);if(!h)return Promise.resolve(c(l,a));e.triggerMode(h);const u=s.TokenizationRegistry.get(h);if(u)return d(l,a,u);const g=s.TokenizationRegistry.getPromise(h);return g?new Promise((e,t)=>{g.then(i=>{d(l,a,i).then(e,t)},t)}):new Promise((e,t)=>{let n=null,o=null;const r=()=>{n&&(n.dispose(),n=null),o&&(o.dispose(),o=null);const i=s.TokenizationRegistry.get(h);i?d(l,a,i).then(e,t):e(c(l,a))};(o=new i.TimeoutTimer).cancelAndSet(r,500),n=s.TokenizationRegistry.onDidChange(e=>{e.changedLanguages.indexOf(h)>=0&&r()})})}static colorizeLine(e,t,i,n,o=4){const s=a.ViewLineRenderingData.isBasicASCII(e,t),l=a.ViewLineRenderingData.containsRTL(e,s,i) +;return r.renderViewLine2(new r.RenderLineInput(!1,!0,e,!1,s,l,0,n,[],o,0,0,0,0,-1,"none",!1,!1,null)).html}static colorizeModelLine(e,t,i=4){let n=e.getLineContent(t);e.forceTokenization(t);let o=e.getLineTokens(t).inflate();return this.colorizeLine(n,e.mightContainNonBasicASCII(),e.mightContainRTL(),o,i)}}})),define(t[106],i([0,1,10]),(function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.IStandaloneThemeService=void 0,t.IStandaloneThemeService=i.createDecorator("themeService")})),define(t[80],i([0,1,10]),(function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.IClipboardService=void 0,t.IClipboardService=i.createDecorator("clipboardService")})),define(t[28],i([0,1,2,23,10,4,69,50]),(function(e,t,i,n,o,s,r,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CommandsRegistry=t.ICommandService=void 0,t.ICommandService=o.createDecorator("commandService"),t.CommandsRegistry=new class{constructor(){this._commands=new Map, +this._onDidRegisterCommand=new s.Emitter,this.onDidRegisterCommand=this._onDidRegisterCommand.event}registerCommand(e,t){if(!e)throw new Error("invalid command");if("string"==typeof e){if(!t)throw new Error("invalid command");return this.registerCommand({id:e,handler:t})}if(e.description){const t=[];for(let i of e.description.args)t.push(i.constraint);const i=e.handler;e.handler=function(e,...o){return n.validateConstraints(o,t),i(e,...o)}}const{id:o}=e;let s=this._commands.get(o);s||(s=new r.LinkedList,this._commands.set(o,s));let a=s.unshift(e),l=i.toDisposable(()=>{a();const e=this._commands.get(o);(null==e?void 0:e.isEmpty())&&this._commands.delete(o)});return this._onDidRegisterCommand.fire(o),l}registerCommandAlias(e,i){return t.CommandsRegistry.registerCommand(e,(e,...n)=>e.get(t.ICommandService).executeCommand(i,...n))}getCommand(e){const t=this._commands.get(e);if(t&&!t.isEmpty())return a.Iterable.first(t)}getCommands(){const e=new Map;for(const t of this._commands.keys()){const i=this.getCommand(t) +;i&&e.set(t,i)}return e}}})),define(t[524],i([0,1,24,3,44,25,92,237,28,23,50]),(function(e,t,i,n,o,s,a,l,d,c,h){"use strict";function u(e,t,i){return r(this,void 0,void 0,(function*(){const n=yield l.OutlineModel.create(e,i),o=[];for(const e of n.children.values())e instanceof l.OutlineElement?o.push(e.symbol):o.push(...h.Iterable.map(e.children.values(),e=>e.symbol));let s=[];return i.isCancellationRequested?s:(t?function e(t,i,n){for(let o of i)t.push({kind:o.kind,tags:o.tags,name:o.name,detail:o.detail,containerName:o.containerName||n,range:o.range,selectionRange:o.selectionRange,children:void 0}),o.children&&e(t,o.children,o.name)}(s,o,""):s=o,s.sort(g))}))}function g(e,t){return n.Range.compareRangesUsingStarts(e.range,t.range)}Object.defineProperty(t,"__esModule",{value:!0}),t.getDocumentSymbols=void 0,t.getDocumentSymbols=u,d.CommandsRegistry.registerCommand("_executeDocumentSymbolProvider",(function(e,...t){return r(this,void 0,void 0,(function*(){const[n]=t;c.assertType(i.URI.isUri(n)) +;const r=e.get(o.IModelService).getModel(n);if(r)return u(r,!1,s.CancellationToken.None);const l=yield e.get(a.ITextModelService).createModelReference(n);try{return yield u(l.object.textEditorModel,!1,s.CancellationToken.None)}finally{l.dispose()}}))}))})),define(t[525],i([0,1,25,12,24,3,18,44,28,2,19]),(function(e,t,i,n,o,s,a,l,d,c,h){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getLinks=t.LinksList=t.Link=void 0;class u{constructor(e,t){this._link=e,this._provider=t}toJSON(){return{range:this.range,url:this.url,tooltip:this.tooltip}}get range(){return this._link.range}get url(){return this._link.url}get tooltip(){return this._link.tooltip}resolve(e){return r(this,void 0,void 0,(function*(){return this._link.url?this._link.url:"function"==typeof this._provider.resolveLink?Promise.resolve(this._provider.resolveLink(this._link,e)).then(t=>(this._link=t||this._link,this._link.url?this.resolve(e):Promise.reject(new Error("missing")))):Promise.reject(new Error("missing"))}))}}t.Link=u +;class g extends c.Disposable{constructor(e){super();let t=[];for(const[i,n]of e){const e=i.links.map(e=>new u(e,n));t=g._union(t,e),c.isDisposable(i)&&this._register(i)}this.links=t}static _union(e,t){let i,n,o,r,a=[];for(i=0,o=0,n=e.length,r=t.length;iPromise.resolve(o.provideLinks(e,t)).then(e=>{e&&(i[s]=[e,o])},n.onUnexpectedExternalError));return Promise.all(o).then(()=>{const e=new g(h.coalesce(i));return t.isCancellationRequested?(e.dispose(),new g([])):e})}t.LinksList=g,t.getLinks=p,d.CommandsRegistry.registerCommand("_executeLinkProvider",(e,...t)=>r(void 0,void 0,void 0,(function*(){const[n]=t;if(!(n instanceof o.URI))return[];const s=e.get(l.IModelService).getModel(n);if(!s)return[] +;const r=yield p(s,i.CancellationToken.None);if(!r)return[];const a=r.links.slice(0);return r.dispose(),a})))})),define(t[17],i([0,1,8,10,16]),(function(e,t,i,n,o){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SET_CONTEXT_COMMAND_ID=t.IContextKeyService=t.RawContextKey=t.ContextKeyOrExpr=t.ContextKeyAndExpr=t.ContextKeyNotRegexExpr=t.ContextKeyRegexExpr=t.ContextKeyNotExpr=t.ContextKeyNotEqualsExpr=t.ContextKeyNotInExpr=t.ContextKeyInExpr=t.ContextKeyEqualsExpr=t.ContextKeyDefinedExpr=t.ContextKeyTrueExpr=t.ContextKeyFalseExpr=t.ContextKeyExpr=void 0;const s=new Map;s.set("false",!1),s.set("true",!0),s.set("isMac",o.isMacintosh),s.set("isLinux",o.isLinux),s.set("isWindows",o.isWindows),s.set("isWeb",o.isWeb),s.set("isMacNative",o.isMacintosh&&!o.isWeb);const r=Object.prototype.hasOwnProperty;class a{static has(e){return h.create(e)}static equals(e,t){return u.create(e,t)}static regex(e,t){return _.create(e,t)}static not(e){return f.create(e)}static and(...e){return C.create(e)} +static or(...e){return b.create(e)}static deserialize(e,t=!1){if(e)return this._deserializeOrExpression(e,t)}static _deserializeOrExpression(e,t){let i=e.split("||");return b.create(i.map(e=>this._deserializeAndExpression(e,t)))}static _deserializeAndExpression(e,t){let i=e.split("&&");return C.create(i.map(e=>this._deserializeOne(e,t)))}static _deserializeOne(e,t){if((e=e.trim()).indexOf("!=")>=0){let i=e.split("!=");return m.create(i[0].trim(),this._deserializeValue(i[1],t))}if(e.indexOf("==")>=0){let i=e.split("==");return u.create(i[0].trim(),this._deserializeValue(i[1],t))}if(e.indexOf("=~")>=0){let i=e.split("=~");return _.create(i[0].trim(),this._deserializeRegexValue(i[1],t))}if(e.indexOf(" in ")>=0){let t=e.split(" in ");return g.create(t[0].trim(),t[1].trim())}return/^\!\s*/.test(e)?f.create(e.substr(1).trim()):h.create(e)}static _deserializeValue(e,t){if("true"===(e=e.trim()))return!0;if("false"===e)return!1;let i=/^'([^']*)'$/.exec(e);return i?i[1].trim():e}static _deserializeRegexValue(e,t){ +if(i.isFalsyOrWhitespace(e)){if(t)throw new Error("missing regexp-value for =~-expression");return console.warn("missing regexp-value for =~-expression"),null}let n=e.indexOf("/"),o=e.lastIndexOf("/");if(n===o||n<0){if(t)throw new Error(`bad regexp-value '${e}', missing /-enclosure`);return console.warn(`bad regexp-value '${e}', missing /-enclosure`),null}let s=e.slice(n+1,o),r="i"===e[o+1]?"i":"";try{return new RegExp(s,r)}catch(i){if(t)throw new Error(`bad regexp-value '${e}', parse error: ${i}`);return console.warn(`bad regexp-value '${e}', parse error: ${i}`),null}}}function l(e,t){return e.cmp(t)}t.ContextKeyExpr=a;class d{constructor(){this.type=0}cmp(e){return this.type-e.type}equals(e){return e.type===this.type}evaluate(e){return!1}serialize(){return"false"}keys(){return[]}negate(){return c.INSTANCE}}t.ContextKeyFalseExpr=d,d.INSTANCE=new d;class c{constructor(){this.type=1}cmp(e){return this.type-e.type}equals(e){return e.type===this.type}evaluate(e){return!0}serialize(){return"true"}keys(){return[]} +negate(){return d.INSTANCE}}t.ContextKeyTrueExpr=c,c.INSTANCE=new c;class h{constructor(e){this.key=e,this.type=2}static create(e){const t=s.get(e);return"boolean"==typeof t?t?c.INSTANCE:d.INSTANCE:new h(e)}cmp(e){return e.type!==this.type?this.type-e.type:this.keye.key?1:0}equals(e){return e.type===this.type&&this.key===e.key}evaluate(e){return!!e.getValue(this.key)}serialize(){return this.key}keys(){return[this.key]}negate(){return f.create(this.key)}}t.ContextKeyDefinedExpr=h;class u{constructor(e,t){this.key=e,this.value=t,this.type=4}static create(e,t){if("boolean"==typeof t)return t?h.create(e):f.create(e);const i=s.get(e);if("boolean"==typeof i){return t===(i?"true":"false")?c.INSTANCE:d.INSTANCE}return new u(e,t)}cmp(e){return e.type!==this.type?this.type-e.type:this.keye.key?1:this.valuee.value?1:0}equals(e){return e.type===this.type&&(this.key===e.key&&this.value===e.value)}evaluate(e){return e.getValue(this.key)==this.value}serialize(){ +return this.key+" == '"+this.value+"'"}keys(){return[this.key]}negate(){return m.create(this.key,this.value)}}t.ContextKeyEqualsExpr=u;class g{constructor(e,t){this.key=e,this.valueKey=t,this.type=10}static create(e,t){return new g(e,t)}cmp(e){return e.type!==this.type?this.type-e.type:this.keye.key?1:this.valueKeye.valueKey?1:0}equals(e){return e.type===this.type&&(this.key===e.key&&this.valueKey===e.valueKey)}evaluate(e){const t=e.getValue(this.valueKey),i=e.getValue(this.key);return Array.isArray(t)?t.indexOf(i)>=0:"string"==typeof i&&"object"==typeof t&&null!==t&&r.call(t,i)}serialize(){return this.key+" in '"+this.valueKey+"'"}keys(){return[this.key,this.valueKey]}negate(){return p.create(this)}}t.ContextKeyInExpr=g;class p{constructor(e){this._actual=e,this.type=11}static create(e){return new p(e)}cmp(e){return e.type!==this.type?this.type-e.type:this._actual.cmp(e._actual)}equals(e){return e.type===this.type&&this._actual.equals(e._actual)}evaluate(e){ +return!this._actual.evaluate(e)}serialize(){throw new Error("Method not implemented.")}keys(){return this._actual.keys()}negate(){return this._actual}}t.ContextKeyNotInExpr=p;class m{constructor(e,t){this.key=e,this.value=t,this.type=5}static create(e,t){if("boolean"==typeof t)return t?f.create(e):h.create(e);const i=s.get(e);if("boolean"==typeof i){return t===(i?"true":"false")?d.INSTANCE:c.INSTANCE}return new m(e,t)}cmp(e){return e.type!==this.type?this.type-e.type:this.keye.key?1:this.valuee.value?1:0}equals(e){return e.type===this.type&&(this.key===e.key&&this.value===e.value)}evaluate(e){return e.getValue(this.key)!=this.value}serialize(){return this.key+" != '"+this.value+"'"}keys(){return[this.key]}negate(){return u.create(this.key,this.value)}}t.ContextKeyNotEqualsExpr=m;class f{constructor(e){this.key=e,this.type=3}static create(e){const t=s.get(e);return"boolean"==typeof t?t?d.INSTANCE:c.INSTANCE:new f(e)}cmp(e){ +return e.type!==this.type?this.type-e.type:this.keye.key?1:0}equals(e){return e.type===this.type&&this.key===e.key}evaluate(e){return!e.getValue(this.key)}serialize(){return"!"+this.key}keys(){return[this.key]}negate(){return h.create(this.key)}}t.ContextKeyNotExpr=f;class _{constructor(e,t){this.key=e,this.regexp=t,this.type=7}static create(e,t){return new _(e,t)}cmp(e){if(e.type!==this.type)return this.type-e.type;if(this.keye.key)return 1;const t=this.regexp?this.regexp.source:"",i=e.regexp?e.regexp.source:"";return ti?1:0}equals(e){if(e.type===this.type){const t=this.regexp?this.regexp.source:"",i=e.regexp?e.regexp.source:"";return this.key===e.key&&t===i}return!1}evaluate(e){let t=e.getValue(this.key);return!!this.regexp&&this.regexp.test(t)}serialize(){const e=this.regexp?`/${this.regexp.source}/${this.regexp.ignoreCase?"i":""}`:"/invalid/";return`${this.key} =~ ${e}`}keys(){return[this.key]}negate(){return v.create(this)}}t.ContextKeyRegexExpr=_ +;class v{constructor(e){this._actual=e,this.type=8}static create(e){return new v(e)}cmp(e){return e.type!==this.type?this.type-e.type:this._actual.cmp(e._actual)}equals(e){return e.type===this.type&&this._actual.equals(e._actual)}evaluate(e){return!this._actual.evaluate(e)}serialize(){throw new Error("Method not implemented.")}keys(){return this._actual.keys()}negate(){return this._actual}}t.ContextKeyNotRegexExpr=v;class C{constructor(e){this.expr=e,this.type=6}static create(e){return C._normalizeArr(e)}cmp(e){if(e.type!==this.type)return this.type-e.type;if(this.expr.lengthe.expr.length)return 1;for(let t=0,i=this.expr.length;t1;){const e=t[t.length-1];if(9!==e.type)break;t.pop();const i=t.pop(),n=b.create(e.expr.map(e=>C.create([e,i])));n&&(t.push(n),t.sort(l))}return new C(t)}}serialize(){return this.expr.map(e=>e.serialize()).join(" && ")}keys(){const e=[];for(let t of this.expr)e.push(...t.keys());return e}negate(){let e=[];for(let t of this.expr)e.push(t.negate());return b.create(e)}}t.ContextKeyAndExpr=C;class b{constructor(e){this.expr=e,this.type=9}static create(e){const t=b._normalizeArr(e);if(0!==t.length)return 1===t.length?t[0]:new b(t)}cmp(e){if(e.type!==this.type)return this.type-e.type;if(this.expr.lengthe.expr.length)return 1;for(let t=0,i=this.expr.length;te.serialize()).join(" || ")}keys(){const e=[];for(let t of this.expr)e.push(...t.keys());return e}negate(){let e=[];for(let t of this.expr)e.push(t.negate());const t=e=>9===e.type?e.expr:[e];for(;e.length>1;){const i=e.shift(),n=e.shift(),o=[];for(const e of t(i))for(const i of t(n))o.push(a.and(e,i));e.unshift(a.or(...o))}return e[0]}}t.ContextKeyOrExpr=b;t.RawContextKey=class extends h{constructor(e,t){super(e), +this._defaultValue=t}bindTo(e){return e.createKey(this.key,this._defaultValue)}getValue(e){return e.getContextKeyValue(this.key)}toNegated(){return a.not(this.key)}},t.IContextKeyService=n.createDecorator("contextKeyService"),t.SET_CONTEXT_COMMAND_ID="setContext"})),define(t[22],i([0,1,17]),(function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EditorContextKeys=void 0,function(e){e.editorSimpleInput=new i.RawContextKey("editorSimpleInput",!1),e.editorTextFocus=new i.RawContextKey("editorTextFocus",!1),e.focus=new i.RawContextKey("editorFocus",!1),e.textInputFocus=new i.RawContextKey("textInputFocus",!1),e.readOnly=new i.RawContextKey("editorReadonly",!1),e.columnSelection=new i.RawContextKey("editorColumnSelection",!1),e.writable=e.readOnly.toNegated(),e.hasNonEmptySelection=new i.RawContextKey("editorHasSelection",!1),e.hasOnlyEmptySelection=e.hasNonEmptySelection.toNegated(),e.hasMultipleSelections=new i.RawContextKey("editorHasMultipleSelections",!1), +e.hasSingleSelection=e.hasMultipleSelections.toNegated(),e.tabMovesFocus=new i.RawContextKey("editorTabMovesFocus",!1),e.tabDoesNotMoveFocus=e.tabMovesFocus.toNegated(),e.isInWalkThroughSnippet=new i.RawContextKey("isInEmbeddedEditor",!1),e.canUndo=new i.RawContextKey("canUndo",!1),e.canRedo=new i.RawContextKey("canRedo",!1),e.hoverVisible=new i.RawContextKey("editorHoverVisible",!1),e.inCompositeEditor=new i.RawContextKey("inCompositeEditor",void 0),e.notInCompositeEditor=e.inCompositeEditor.toNegated(),e.languageId=new i.RawContextKey("editorLangId",""),e.hasCompletionItemProvider=new i.RawContextKey("editorHasCompletionItemProvider",!1),e.hasCodeActionsProvider=new i.RawContextKey("editorHasCodeActionsProvider",!1),e.hasCodeLensProvider=new i.RawContextKey("editorHasCodeLensProvider",!1),e.hasDefinitionProvider=new i.RawContextKey("editorHasDefinitionProvider",!1),e.hasDeclarationProvider=new i.RawContextKey("editorHasDeclarationProvider",!1), +e.hasImplementationProvider=new i.RawContextKey("editorHasImplementationProvider",!1),e.hasTypeDefinitionProvider=new i.RawContextKey("editorHasTypeDefinitionProvider",!1),e.hasHoverProvider=new i.RawContextKey("editorHasHoverProvider",!1),e.hasDocumentHighlightProvider=new i.RawContextKey("editorHasDocumentHighlightProvider",!1),e.hasDocumentSymbolProvider=new i.RawContextKey("editorHasDocumentSymbolProvider",!1),e.hasReferenceProvider=new i.RawContextKey("editorHasReferenceProvider",!1),e.hasRenameProvider=new i.RawContextKey("editorHasRenameProvider",!1),e.hasSignatureHelpProvider=new i.RawContextKey("editorHasSignatureHelpProvider",!1),e.hasDocumentFormattingProvider=new i.RawContextKey("editorHasDocumentFormattingProvider",!1),e.hasDocumentSelectionFormattingProvider=new i.RawContextKey("editorHasDocumentSelectionFormattingProvider",!1),e.hasMultipleDocumentFormattingProvider=new i.RawContextKey("editorHasMultipleDocumentFormattingProvider",!1), +e.hasMultipleDocumentSelectionFormattingProvider=new i.RawContextKey("editorHasMultipleDocumentSelectionFormattingProvider",!1)}(t.EditorContextKeys||(t.EditorContextKeys={}))}));var l=this&&this.__param||function(e,t){return function(i,n){t(i,n,e)}};define(t[526],i([0,1,2,17]),(function(e,t,i,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SuggestAlternatives=void 0;let o=class e{constructor(t,i){this._editor=t,this._index=0,this._ckOtherSuggestions=e.OtherSuggestions.bindTo(i)}dispose(){this.reset()}reset(){this._ckOtherSuggestions.reset(),i.dispose(this._listener),this._model=void 0,this._acceptNext=void 0,this._ignore=!1}set({model:t,index:i},n){if(0===t.items.length)return void this.reset();e._moveIndex(!0,t,i)!==i?(this._acceptNext=n,this._model=t,this._index=i,this._listener=this._editor.onDidChangeCursorPosition(()=>{this._ignore||this.reset()}),this._ckOtherSuggestions.set(!0)):this.reset()}static _moveIndex(e,t,i){let n=i +;for(;(n=(n+t.items.length+(e?1:-1))%t.items.length)!==i&&t.items[n].completion.additionalTextEdits;);return n}next(){this._move(!0)}prev(){this._move(!1)}_move(t){if(this._model)try{this._ignore=!0,this._index=e._moveIndex(t,this._model,this._index),this._acceptNext({index:this._index,item:this._model.items[this._index],model:this._model})}finally{this._ignore=!1}}};o.OtherSuggestions=new n.RawContextKey("hasOtherSuggestions",!1),o=a([l(1,n.IContextKeyService)],o),t.SuggestAlternatives=o})),define(t[527],i([0,1,17,2]),(function(e,t,i,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.WordContextKey=void 0;let o=class e extends n.Disposable{constructor(t,i){super(),this._editor=t,this._enabled=!1,this._ckAtEnd=e.AtEnd.bindTo(i),this._register(this._editor.onDidChangeConfiguration(e=>e.hasChanged(101)&&this._update())),this._update()}dispose(){super.dispose(),n.dispose(this._selectionListener),this._ckAtEnd.reset()}_update(){const e="on"===this._editor.getOption(101) +;if(this._enabled!==e)if(this._enabled=e,this._enabled){const e=()=>{if(!this._editor.hasModel())return void this._ckAtEnd.set(!1);const e=this._editor.getModel(),t=this._editor.getSelection(),i=e.getWordAtPosition(t.getStartPosition());i?this._ckAtEnd.set(i.endColumn===t.getStartPosition().column):this._ckAtEnd.set(!1)};this._selectionListener=this._editor.onDidChangeCursorSelection(e),e()}else this._selectionListener&&(this._ckAtEnd.reset(),this._selectionListener.dispose(),this._selectionListener=void 0)}};o.AtEnd=new i.RawContextKey("atEndOfWord",!1),o=a([l(1,i.IContextKeyService)],o),t.WordContextKey=o})),define(t[62],i([0,1,10,17]),(function(e,t,i,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CONTEXT_ACCESSIBILITY_MODE_ENABLED=t.IAccessibilityService=void 0,t.IAccessibilityService=i.createDecorator("accessibilityService"),t.CONTEXT_ACCESSIBILITY_MODE_ENABLED=new n.RawContextKey("accessibilityModeEnabled",!1)})), +define(t[33],i([0,1,47,10,17,28,2,4,50,69]),(function(e,t,i,n,o,s,r,d,c,h){"use strict";function u(e){return void 0!==e.command}Object.defineProperty(t,"__esModule",{value:!0}),t.MenuItemAction=t.SubmenuItemAction=t.ExecuteCommandAction=t.MenuRegistry=t.IMenuService=t.MenuId=t.isIMenuItem=void 0,t.isIMenuItem=u;class g{constructor(e){this.id=g._idPool++,this._debugName=e}}t.MenuId=g,g._idPool=0,g.CommandPalette=new g("CommandPalette"),g.EditorContext=new g("EditorContext"),g.EditorContextPeek=new g("EditorContextPeek"),g.MenubarEditMenu=new g("MenubarEditMenu"),g.MenubarGoMenu=new g("MenubarGoMenu"),g.MenubarSelectionMenu=new g("MenubarSelectionMenu"),t.IMenuService=n.createDecorator("menuService"),t.MenuRegistry=new class{constructor(){this._commands=new Map,this._menuItems=new Map,this._onDidChangeMenu=new d.Emitter,this.onDidChangeMenu=this._onDidChangeMenu.event,this._commandPaletteChangeEvent={has:e=>e===g.CommandPalette}}addCommand(e){return this.addCommands(c.Iterable.single(e))}addCommands(e){ +for(const t of e)this._commands.set(t.id,t);return this._onDidChangeMenu.fire(this._commandPaletteChangeEvent),r.toDisposable(()=>{let t=!1;for(const i of e)t=this._commands.delete(i.id)||t;t&&this._onDidChangeMenu.fire(this._commandPaletteChangeEvent)})}getCommand(e){return this._commands.get(e)}getCommands(){const e=new Map;return this._commands.forEach((t,i)=>e.set(i,t)),e}appendMenuItem(e,t){return this.appendMenuItems(c.Iterable.single({id:e,item:t}))}appendMenuItems(e){const t=new Set,i=new h.LinkedList;for(const{id:n,item:o}of e){let e=this._menuItems.get(n);e||(e=new h.LinkedList,this._menuItems.set(n,e)),i.push(e.push(o)),t.add(n)}return this._onDidChangeMenu.fire(t),r.toDisposable(()=>{if(i.size>0){for(let e of i)e();this._onDidChangeMenu.fire(t),i.clear()}})}getMenuItems(e){let t;return t=this._menuItems.has(e)?[...this._menuItems.get(e)]:[],e===g.CommandPalette&&this._appendImplicitItems(t),t}_appendImplicitItems(e){const t=new Set;for(const i of e)u(i)&&(t.add(i.command.id), +i.alt&&t.add(i.alt.id));this._commands.forEach((i,n)=>{t.has(n)||e.push({command:i})})}};let p=class extends i.Action{constructor(e,t,i){super(e,t),this._commandService=i}run(...e){return this._commandService.executeCommand(this.id,...e)}};p=a([l(2,s.ICommandService)],p),t.ExecuteCommandAction=p;class m extends i.SubmenuAction{constructor(e,t,n,o){super(`submenuitem.${e.submenu.id}`,"string"==typeof e.title?e.title:e.title.value,()=>{const s=[],r=t.createMenu(e.submenu,n),a=r.getActions(o);r.dispose();for(let e of a){const[,t]=e;t.length>0&&(s.push(...t),s.push(new i.Separator))}return s.length&&s.pop(),s},"submenu"),this.item=e}}t.SubmenuItemAction=m;let f=class e extends p{constructor(t,i,n,o,s){if("string"==typeof t.title?super(t.id,t.title,s):super(t.id,t.title.value,s),this._cssClass=void 0,this._enabled=!t.precondition||o.contextMatchesRules(t.precondition),this._tooltip=t.tooltip?"string"==typeof t.tooltip?t.tooltip:t.tooltip.value:void 0,t.toggled){const e=t.toggled.condition?t.toggled:{ +condition:t.toggled};this._checked=o.contextMatchesRules(e.condition),this._checked&&e.tooltip&&(this._tooltip="string"==typeof e.tooltip?e.tooltip:e.tooltip.value)}this._options=n||{},this.item=t,this.alt=i?new e(i,void 0,this._options,o,s):void 0}dispose(){this.alt&&this.alt.dispose(),super.dispose()}run(...e){let t=[];return this._options.arg&&(t=[...t,this._options.arg]),this._options.shouldForwardArgs&&(t=[...t,...e]),super.run(...t)}};f=a([l(3,o.IContextKeyService),l(4,s.ICommandService)],f),t.MenuItemAction=f})),define(t[528],i([0,1,4,2,33,28,17]),(function(e,t,i,n,o,s,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MenuService=void 0;let d=class{constructor(e){this._commandService=e}createMenu(e,t){return new c(e,this._commandService,t,this)}};d=a([l(0,s.ICommandService)],d),t.MenuService=d;let c=class e{constructor(e,t,s,r){this._id=e,this._commandService=t,this._contextKeyService=s,this._menuService=r,this._onDidChange=new i.Emitter,this._dispoables=new n.DisposableStore, +this._menuGroups=[],this._contextKeys=new Set,this._build(),this._dispoables.add(i.Event.debounce(i.Event.filter(o.MenuRegistry.onDidChangeMenu,e=>e.has(this._id)),()=>{},50)(this._build,this)),this._dispoables.add(i.Event.debounce(this._contextKeyService.onDidChangeContext,(e,t)=>e||t.affectsSome(this._contextKeys),50)(e=>e&&this._onDidChange.fire(void 0),this))}dispose(){this._dispoables.dispose(),this._onDidChange.dispose()}_build(){this._menuGroups.length=0,this._contextKeys.clear();const t=o.MenuRegistry.getMenuItems(this._id);let i;t.sort(e._compareMenuItems);for(let n of t){const t=n.group||"";if(i&&i[0]===t||(i=[t,[]],this._menuGroups.push(i)),i[1].push(n),e._fillInKbExprKeys(n.when,this._contextKeys),o.isIMenuItem(n)&&n.command.precondition&&e._fillInKbExprKeys(n.command.precondition,this._contextKeys),o.isIMenuItem(n)&&n.command.toggled){const t=n.command.toggled.condition||n.command.toggled;e._fillInKbExprKeys(t,this._contextKeys)}}this._onDidChange.fire(this)}get onDidChange(){ +return this._onDidChange.event}getActions(e){const t=[];for(let i of this._menuGroups){const[n,s]=i,r=[];for(const t of s)if(this._contextKeyService.contextMatchesRules(t.when)){const i=o.isIMenuItem(t)?new o.MenuItemAction(t.command,t.alt,e,this._contextKeyService,this._commandService):new o.SubmenuItemAction(t,this._menuService,this._contextKeyService,e);r.push(i)}r.length>0&&t.push([n,r])}return t}static _fillInKbExprKeys(e,t){if(e)for(let i of e.keys())t.add(i)}static _compareMenuItems(t,i){let n=t.group,s=i.group;if(n!==s){if(!n)return 1;if(!s)return-1;if("navigation"===n)return-1;if("navigation"===s)return 1;let e=n.localeCompare(s);if(0!==e)return e}let r=t.order||0,a=i.order||0;return ra?1:e._compareTitles(o.isIMenuItem(t)?t.command.title:t.title,o.isIMenuItem(i)?i.command.title:i.title)}static _compareTitles(e,t){const i="string"==typeof e?e:e.value,n="string"==typeof t?t:t.value;return i.localeCompare(n)}};c=a([l(1,s.ICommandService),l(2,r.IContextKeyService),l(3,o.IMenuService)],c)})), +define(t[66],i([0,1,10]),(function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.IContextMenuService=t.IContextViewService=void 0,t.IContextViewService=i.createDecorator("contextViewService"),t.IContextMenuService=i.createDecorator("contextMenuService")})),define(t[173],i([0,1,10]),(function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.IDialogService=void 0,t.IDialogService=i.createDecorator("dialogService")})),define(t[131],i([0,1]),(function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ServiceCollection=void 0;t.ServiceCollection=class{constructor(...e){this._entries=new Map;for(let[t,i]of e)this.set(t,i)}set(e,t){const i=this._entries.get(e);return this._entries.set(e,t),i}has(e){return this._entries.has(e)}get(e){return this._entries.get(e)}}})),define(t[529],i([0,1,12,509,230,10,131,15]),(function(e,t,i,n,o,s,r,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.InstantiationService=void 0;const l=!1 +;class d extends Error{constructor(e){super("cyclic dependency between services"),this.message=e.toString()}}class c{constructor(e=new r.ServiceCollection,t=!1,i){this._services=e,this._strict=t,this._parent=i,this._services.set(s.IInstantiationService,this)}createChild(e){return new c(e,this._strict,this)}invokeFunction(e,...t){let n=h.traceInvocation(e),o=!1;try{return e({get:(e,t)=>{if(o)throw i.illegalState("service accessor is only valid during the invocation of its target method");const r=this._getOrCreateServiceInstance(e,n);if(!r&&t!==s.optional)throw new Error(`[invokeFunction] unknown service '${e}'`);return r}},...t)}finally{o=!0,n.stop()}}createInstance(e,...t){let i,n;return e instanceof o.SyncDescriptor?(i=h.traceCreation(e.ctor),n=this._createInstance(e.ctor,e.staticArguments.concat(t),i)):(i=h.traceCreation(e),n=this._createInstance(e,t,i)),i.stop(),n}_createInstance(e,t=[],i){let n=s._util.getServiceDependencies(e).sort((e,t)=>e.index-t.index),o=[];for(const t of n){ +let n=this._getOrCreateServiceInstance(t.id,i);if(!n&&this._strict&&!t.optional)throw new Error(`[createInstance] ${e.name} depends on UNKNOWN service ${t.id}.`);o.push(n)}let r=n.length>0?n[0].index:t.length;if(t.length!==r){console.warn(`[createInstance] First service dependency of ${e.name} at position ${r+1} conflicts with ${t.length} static arguments`);let i=r-t.length;t=i>0?t.concat(new Array(i)):t.slice(0,r)}return new e(...[...t,...o])}_setServiceInstance(e,t){if(this._services.get(e)instanceof o.SyncDescriptor)this._services.set(e,t);else{if(!this._parent)throw new Error("illegalState - setting UNKNOWN service instance");this._parent._setServiceInstance(e,t)}}_getServiceInstanceOrDescriptor(e){let t=this._services.get(e);return!t&&this._parent?this._parent._getServiceInstanceOrDescriptor(e):t}_getOrCreateServiceInstance(e,t){let i=this._getServiceInstanceOrDescriptor(e);return i instanceof o.SyncDescriptor?this._createAndCacheServiceInstance(e,i,t.branch(e,!0)):(t.branch(e,!1),i)} +_createAndCacheServiceInstance(e,t,i){const r=new n.Graph(e=>e.id.toString());let a=0;const l=[{id:e,desc:t,_trace:i}];for(;l.length;){const t=l.pop();if(r.lookupOrInsertNode(t),a++>1e3)throw new d(r);for(let i of s._util.getServiceDependencies(t.desc.ctor)){let n=this._getServiceInstanceOrDescriptor(i.id);if(n||i.optional||console.warn(`[createInstance] ${e} depends on ${i.id} which is NOT registered.`),n instanceof o.SyncDescriptor){const e={id:i.id,desc:n,_trace:t._trace.branch(i.id,!0)};r.insertEdge(t,e),l.push(e)}}}for(;;){const e=r.roots();if(0===e.length){if(!r.isEmpty())throw new d(r);break}for(const{data:t}of e){const e=this._createServiceInstanceWithOwner(t.id,t.desc.ctor,t.desc.staticArguments,t.desc.supportsDelayedInstantiation,t._trace);this._setServiceInstance(t.id,e),r.removeNode(t)}}return this._getServiceInstanceOrDescriptor(e)}_createServiceInstanceWithOwner(e,t,i=[],n,s){if(this._services.get(e)instanceof o.SyncDescriptor)return this._createServiceInstance(t,i,n,s) +;if(this._parent)return this._parent._createServiceInstanceWithOwner(e,t,i,n,s);throw new Error(`illegalState - creating UNKNOWN service instance ${t.name}`)}_createServiceInstance(e,t=[],i,n){if(i){const i=new a.IdleValue(()=>this._createInstance(e,t,n));return new Proxy(Object.create(null),{get(e,t){if(t in e)return e[t];let n=i.value,o=n[t];return"function"!=typeof o?o:(o=o.bind(n),e[t]=o,o)},set:(e,t,n)=>(i.value[t]=n,!0)})}return this._createInstance(e,t,n)}}t.InstantiationService=c;class h{constructor(e,t){this.type=e,this.name=t,this._start=Date.now(),this._dep=[]}static traceInvocation(e){return l?new h(1,e.name||e.toString().substring(0,42).replace(/\n/g,"")):h._None}static traceCreation(e){return l?new h(0,e.name):h._None}branch(e,t){let i=new h(2,e.toString());return this._dep.push([e,t,i]),i}stop(){let e=Date.now()-this._start;h._totals+=e;let t=!1;let i=[`${0===this.type?"CREATE":"CALL"} ${this.name}`,`${function e(i,n){let o=[],s=new Array(i+1).join("\t");for(const[r,a,l]of n._dep)if(a&&l){t=!0, +o.push(`${s}CREATES -> ${r}`);let n=e(i+1,l);n&&o.push(n)}else o.push(`${s}uses -> ${r}`);return o.join("\n")}(1,this)}`,`DONE, took ${e.toFixed(2)}ms (grand total ${h._totals.toFixed(2)}ms)`];(e>2||t)&&console.log(i.join("\n"))}}h._None=new class extends h{constructor(){super(-1,null)}stop(){}branch(){return this}},h._totals=0})),define(t[530],i([0,1,498,19,15,4,2]),(function(e,t,i,n,o,s,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractKeybindingService=void 0;class a extends r.Disposable{constructor(e,t,i,n,r){super(),this._contextKeyService=e,this._commandService=t,this._telemetryService=i,this._notificationService=n,this._logService=r,this._onDidUpdateKeybindings=this._register(new s.Emitter),this._currentChord=null,this._currentChordChecker=new o.IntervalTimer,this._currentChordStatusMessage=null,this._logging=!1}get onDidUpdateKeybindings(){return this._onDidUpdateKeybindings?this._onDidUpdateKeybindings.event:s.Event.None}dispose(){super.dispose()}_log(e){ +this._logging&&this._logService.info(`[KeybindingService]: ${e}`)}getKeybindings(){return this._getResolver().getKeybindings()}lookupKeybindings(e){return n.coalesce(this._getResolver().lookupKeybindings(e).map(e=>e.resolvedKeybinding))}lookupKeybinding(e){const t=this._getResolver().lookupPrimaryKeybinding(e);if(t)return t.resolvedKeybinding}dispatchEvent(e,t){return this._dispatch(e,t)}softDispatch(e,t){const i=this.resolveKeyboardEvent(e);if(i.isChord())return console.warn("Unexpected keyboard event mapped to a chord"),null;const[n]=i.getDispatchParts();if(null===n)return null;const o=this._contextKeyService.getContext(t),s=this._currentChord?this._currentChord.keypress:null;return this._getResolver().resolve(o,s,n)}_enterChordMode(e,t){this._currentChord={keypress:e,label:t},this._currentChordStatusMessage=this._notificationService.status(i.localize(0,null,t));const n=Date.now();this._currentChordChecker.cancelAndSet(()=>{ +this._documentHasFocus()?Date.now()-n>5e3&&this._leaveChordMode():this._leaveChordMode()},500)}_leaveChordMode(){this._currentChordStatusMessage&&(this._currentChordStatusMessage.dispose(),this._currentChordStatusMessage=null),this._currentChordChecker.cancel(),this._currentChord=null}_dispatch(e,t){return this._doDispatch(this.resolveKeyboardEvent(e),t)}_doDispatch(e,t){let n=!1;if(e.isChord())return console.warn("Unexpected keyboard event mapped to a chord"),!1;const[o]=e.getDispatchParts();if(null===o)return this._log("\\ Keyboard event cannot be dispatched."),n;const s=this._contextKeyService.getContext(t),r=this._currentChord?this._currentChord.keypress:null,a=e.getLabel(),l=this._getResolver().resolve(s,r,o);return this._logService.trace("KeybindingService#dispatch",a,null==l?void 0:l.commandId),l&&l.enterChord?(n=!0,this._enterChordMode(o,a),n):(this._currentChord&&(l&&l.commandId||(this._notificationService.status(i.localize(1,null,this._currentChord.label,a),{hideAfter:1e4}),n=!0)), +this._leaveChordMode(),l&&l.commandId&&(l.bubble||(n=!0),void 0===l.commandArgs?this._commandService.executeCommand(l.commandId).then(void 0,e=>this._notificationService.warn(e)):this._commandService.executeCommand(l.commandId,l.commandArgs).then(void 0,e=>this._notificationService.warn(e)),this._telemetryService.publicLog2("workbenchActionExecuted",{id:l.commandId,from:"keybinding"})),n)}mightProducePrintableCharacter(e){return!e.ctrlKey&&!e.metaKey&&(e.keyCode>=31&&e.keyCode<=56||e.keyCode>=21&&e.keyCode<=30)}}t.AbstractKeybindingService=a})),define(t[531],i([0,1,12,227,39]),(function(e,t,i,n,o){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BaseResolvedKeybinding=void 0;class s extends o.ResolvedKeybinding{constructor(e,t){if(super(),0===t.length)throw i.illegalArgument("parts");this._os=e,this._parts=t}getLabel(){return n.UILabelProvider.toLabel(this._os,this._parts,e=>this._getLabel(e))}getAriaLabel(){return n.AriaLabelProvider.toLabel(this._os,this._parts,e=>this._getAriaLabel(e))} +isChord(){return this._parts.length>1}getParts(){return this._parts.map(e=>this._getPart(e))}_getPart(e){return new o.ResolvedKeybindingPart(e.ctrlKey,e.shiftKey,e.altKey,e.metaKey,this._getLabel(e),this._getAriaLabel(e))}getDispatchParts(){return this._parts.map(e=>this._getDispatchPart(e))}}t.BaseResolvedKeybinding=s})),define(t[35],i([0,1,10]),(function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.IKeybindingService=void 0,t.IKeybindingService=i.createDecorator("keybindingService")})),define(t[239],i([0,1]),(function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.KeybindingResolver=void 0;class i{constructor(e,t,n){this._log=n,this._defaultKeybindings=e,this._defaultBoundCommands=new Map;for(let t=0,i=e.length;t=0;i--)this._isTargetedForRemoval(e[i],o,s,t,r)&&e.splice(i,1)}return e.concat(i)}_addKeyPress(e,t){const n=this._map.get(e);if(void 0===n)return this._map.set(e,[t]),void this._addToLookupMap(t);for(let e=n.length-1;e>=0;e--){let o=n[e];if(o.command===t.command)continue;const s=o.keypressParts.length>1,r=t.keypressParts.length>1;s&&r&&o.keypressParts[1]!==t.keypressParts[1]||i.whenIsEntirelyIncluded(o.when,t.when)&&this._removeFromLookupMap(o)}n.push(t), +this._addToLookupMap(t)}_addToLookupMap(e){if(!e.command)return;let t=this._lookupMap.get(e.command);void 0===t?(t=[e],this._lookupMap.set(e.command,t)):t.push(e)}_removeFromLookupMap(e){if(!e.command)return;let t=this._lookupMap.get(e.command);if(void 0!==t)for(let i=0,n=t.length;i9===e.type?e.expr:[e];let n=i(e.negate()).concat(i(t));for(let e=0;e=0;e--)i[n++]=t[e];return i}lookupPrimaryKeybinding(e){let t=this._lookupMap.get(e);return void 0===t||0===t.length?null:t[t.length-1]}resolve(e,t,i){this._log(`| Resolving ${i}${t?` chorded from ${t}`:""}`);let s=null;if(null!==t){ +const e=this._map.get(t);if(void 0===e)return this._log("\\ No keybinding entries."),null;s=[];for(let t=0,n=e.length;t1&&null!==r.keypressParts[1]?(this._log(`\\ From ${s.length} keybinding entries, matched chord, when: ${n(r.when)}, source: ${o(r)}.`),{enterChord:!0,leaveChord:!1,commandId:null,commandArgs:null,bubble:!1}):(this._log(`\\ From ${s.length} keybinding entries, matched ${r.command}, when: ${n(r.when)}, source: ${o(r)}.`),{enterChord:!1,leaveChord:r.keypressParts.length>1,commandId:r.command,commandArgs:r.commandArgs,bubble:r.bubble}):(this._log(`\\ From ${s.length} keybinding entries, no when clauses matched the context.`),null)}_findCommand(e,t){for(let n=t.length-1;n>=0;n--){let o=t[n];if(i.contextMatchesRules(e,o.when))return o}return null}static contextMatchesRules(e,t){ +return!t||t.evaluate(e)}}function n(e){return e?`${e.serialize()}`:"no when condition"}function o(e){return e.isDefault?e.extensionId?`built-in extension ${e.extensionId}`:"built-in":e.extensionId?`user extension ${e.extensionId}`:"user"}t.KeybindingResolver=i})),define(t[532],i([0,1]),(function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.removeElementsAfterNulls=t.ResolvedKeybindingItem=void 0;function i(e){let t=[];for(let i=0,n=e.length;ithis.layout()))}setContainer(e,t){this.contextView.setContainer(e,t||1)}showContextView(e,t,i){t?t!==this.container&&(this.container=t,this.setContainer(t,i?3:2)):this.container!==this.layoutService.container&&(this.container=this.layoutService.container,this.setContainer(this.container,1)),this.contextView.show(e);const o=n.toDisposable(()=>{this.currentViewDisposable===o&&this.hideContextView()});return this.currentViewDisposable=o,o}getContextViewElement(){return this.contextView.getViewElement()}layout(){this.contextView.layout()}hideContextView(e){this.contextView.hide(e)}};s=a([l(0,o.ILayoutService)],s), +t.ContextViewService=s})),define(t[81],i([0,1,10,2,4]),(function(e,t,i,n,o){"use strict";var s;Object.defineProperty(t,"__esModule",{value:!0}),t.ConsoleLogService=t.AbstractLogService=t.DEFAULT_LOG_LEVEL=t.LogLevel=t.ILogService=void 0,t.ILogService=i.createDecorator("logService"),function(e){e[e.Trace=0]="Trace",e[e.Debug=1]="Debug",e[e.Info=2]="Info",e[e.Warning=3]="Warning",e[e.Error=4]="Error",e[e.Critical=5]="Critical",e[e.Off=6]="Off"}(s=t.LogLevel||(t.LogLevel={})),t.DEFAULT_LOG_LEVEL=s.Info;class r extends n.Disposable{constructor(){super(...arguments),this.level=t.DEFAULT_LOG_LEVEL,this._onDidChangeLogLevel=this._register(new o.Emitter)}setLevel(e){this.level!==e&&(this.level=e,this._onDidChangeLogLevel.fire(this.level))}getLevel(){return this.level}}t.AbstractLogService=r;t.ConsoleLogService=class extends r{constructor(e=t.DEFAULT_LOG_LEVEL){super(),this.setLevel(e)}trace(e,...t){this.getLevel()<=s.Trace&&console.log("%cTRACE","color: #888",e,...t)}info(e,...t){ +this.getLevel()<=s.Info&&console.log("%c INFO","color: #33f",e,...t)}error(e,...t){this.getLevel()<=s.Error&&console.log("%c ERR","color: #f33",e,...t)}dispose(){}}})),define(t[240],i([0,1,15,2,194,281,3,18,42,380,44,130,8,19,81,111,12]),(function(e,t,i,n,o,s,d,c,h,u,g,p,m,f,_,v,C){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EditorWorkerClient=t.EditorWorkerHost=t.EditorWorkerServiceImpl=void 0;const b=6e4,S=3e5;function w(e,t){let i=e.getModel(t);return!!i&&!i.isTooLargeForSyncing()}let y=class extends n.Disposable{constructor(e,t,i){super(),this._modelService=e,this._workerManager=this._register(new L(this._modelService)),this._logService=i,this._register(c.LinkProviderRegistry.register("*",{provideLinks:(e,t)=>w(this._modelService,e.uri)?this._workerManager.withWorker().then(t=>t.computeLinks(e.uri)).then(e=>e&&{links:e}):Promise.resolve({links:[]})})),this._register(c.CompletionProviderRegistry.register("*",new E(this._workerManager,t,this._modelService)))}dispose(){super.dispose()} +canComputeDiff(e,t){return w(this._modelService,e)&&w(this._modelService,t)}computeDiff(e,t,i,n){return this._workerManager.withWorker().then(o=>o.computeDiff(e,t,i,n))}computeMoreMinimalEdits(e,t){if(f.isNonEmptyArray(t)){if(!w(this._modelService,e))return Promise.resolve(t);const i=v.StopWatch.create(!0),n=this._workerManager.withWorker().then(i=>i.computeMoreMinimalEdits(e,t));return n.finally(()=>this._logService.trace("FORMAT#computeMoreMinimalEdits",e.toString(!0),i.elapsed())),n}return Promise.resolve(void 0)}canNavigateValueSet(e){return w(this._modelService,e)}navigateValueSet(e,t,i){return this._workerManager.withWorker().then(n=>n.navigateValueSet(e,t,i))}canComputeWordRanges(e){return w(this._modelService,e)}computeWordRanges(e,t){return this._workerManager.withWorker().then(i=>i.computeWordRanges(e,t))}};y=a([l(0,g.IModelService),l(1,p.ITextResourceConfigurationService),l(2,_.ILogService)],y),t.EditorWorkerServiceImpl=y;class E{constructor(e,t,i){this._debugDisplayName="wordbasedCompletions", +this._workerManager=e,this._configurationService=t,this._modelService=i}provideCompletionItems(e,t){return r(this,void 0,void 0,(function*(){const{wordBasedSuggestions:i}=this._configurationService.getValue(e.uri,t,"editor");if(!i)return;if(!w(this._modelService,e.uri))return;const n=e.getWordAtPosition(t),o=n?new d.Range(t.lineNumber,n.startColumn,t.lineNumber,n.endColumn):d.Range.fromPositions(t),s=o.setEndPosition(t.lineNumber,t.column),r=yield this._workerManager.withWorker(),a=yield r.textualSuggest(e.uri,t);return a?{suggestions:a.map(e=>({kind:18,label:e,insertText:e,range:{insert:s,replace:o}}))}:void 0}))}}class L extends n.Disposable{constructor(e){super(),this._modelService=e,this._editorWorkerClient=null,this._lastWorkerUsedTime=(new Date).getTime(),this._register(new i.IntervalTimer).cancelAndSet(()=>this._checkStopIdleWorker(),Math.round(S/2)),this._register(this._modelService.onModelRemoved(e=>this._checkStopEmptyWorker()))}dispose(){ +this._editorWorkerClient&&(this._editorWorkerClient.dispose(),this._editorWorkerClient=null),super.dispose()}_checkStopEmptyWorker(){if(!this._editorWorkerClient)return;0===this._modelService.getModels().length&&(this._editorWorkerClient.dispose(),this._editorWorkerClient=null)}_checkStopIdleWorker(){if(!this._editorWorkerClient)return;(new Date).getTime()-this._lastWorkerUsedTime>S&&(this._editorWorkerClient.dispose(),this._editorWorkerClient=null)}withWorker(){return this._lastWorkerUsedTime=(new Date).getTime(),this._editorWorkerClient||(this._editorWorkerClient=new N(this._modelService,!1,"editorWorkerService")),Promise.resolve(this._editorWorkerClient)}}class x extends n.Disposable{constructor(e,t,n){if(super(),this._syncedModels=Object.create(null),this._syncedModelsLastUsedTime=Object.create(null),this._proxy=e,this._modelService=t,!n){let e=new i.IntervalTimer;e.cancelAndSet(()=>this._checkStopModelSync(),Math.round(b/2)),this._register(e)}}dispose(){ +for(let e in this._syncedModels)n.dispose(this._syncedModels[e]);this._syncedModels=Object.create(null),this._syncedModelsLastUsedTime=Object.create(null),super.dispose()}ensureSyncedResources(e){for(const t of e){let e=t.toString();this._syncedModels[e]||this._beginModelSync(t),this._syncedModels[e]&&(this._syncedModelsLastUsedTime[e]=(new Date).getTime())}}_checkStopModelSync(){let e=(new Date).getTime(),t=[];for(let i in this._syncedModelsLastUsedTime){e-this._syncedModelsLastUsedTime[i]>b&&t.push(i)}for(const e of t)this._stopModelSync(e)}_beginModelSync(e){let t=this._modelService.getModel(e);if(!t)return;if(t.isTooLargeForSyncing())return;let i=e.toString();this._proxy.acceptNewModel({url:t.uri.toString(),lines:t.getLinesContent(),EOL:t.getEOL(),versionId:t.getVersionId()});const o=new n.DisposableStore;o.add(t.onDidChangeContent(e=>{this._proxy.acceptModelChanged(i.toString(),e)})),o.add(t.onWillDispose(()=>{this._stopModelSync(i)})),o.add(n.toDisposable(()=>{this._proxy.acceptRemovedModel(i)})), +this._syncedModels[i]=o}_stopModelSync(e){let t=this._syncedModels[e];delete this._syncedModels[e],delete this._syncedModelsLastUsedTime[e],n.dispose(t)}}class D{constructor(e){this._instance=e,this._proxyObj=Promise.resolve(this._instance)}dispose(){this._instance.dispose()}getProxyObject(){return this._proxyObj}}class k{constructor(e){this._workerClient=e}fhr(e,t){return this._workerClient.fhr(e,t)}}t.EditorWorkerHost=k;class N extends n.Disposable{constructor(e,t,i){super(),this._disposed=!1,this._modelService=e,this._keepIdleModels=t,this._workerFactory=new s.DefaultWorkerFactory(i),this._worker=null,this._modelManager=null}fhr(e,t){throw new Error("Not implemented!")}_getOrCreateWorker(){if(!this._worker)try{this._worker=this._register(new o.SimpleWorkerClient(this._workerFactory,"vs/editor/common/services/editorSimpleWorker",new k(this)))}catch(e){o.logOnceWebWorkerWarning(e),this._worker=new D(new u.EditorSimpleWorker(new k(this),null))}return this._worker}_getProxy(){ +return this._getOrCreateWorker().getProxyObject().then(void 0,e=>(o.logOnceWebWorkerWarning(e),this._worker=new D(new u.EditorSimpleWorker(new k(this),null)),this._getOrCreateWorker().getProxyObject()))}_getOrCreateModelManager(e){return this._modelManager||(this._modelManager=this._register(new x(e,this._modelService,this._keepIdleModels))),this._modelManager}_withSyncedResources(e){return this._disposed?Promise.reject(C.canceled()):this._getProxy().then(t=>(this._getOrCreateModelManager(t).ensureSyncedResources(e),t))}computeDiff(e,t,i,n){return this._withSyncedResources([e,t]).then(o=>o.computeDiff(e.toString(),t.toString(),i,n))}computeMoreMinimalEdits(e,t){return this._withSyncedResources([e]).then(i=>i.computeMoreMinimalEdits(e.toString(),t))}computeLinks(e){return this._withSyncedResources([e]).then(t=>t.computeLinks(e.toString()))}textualSuggest(e,t){return this._withSyncedResources([e]).then(i=>{let n=this._modelService.getModel(e);if(!n)return null +;let o=h.LanguageConfigurationRegistry.getWordDefinition(n.getLanguageIdentifier().id),s=o.source,r=m.regExpFlags(o);return i.textualSuggest(e.toString(),t,s,r)})}computeWordRanges(e,t){return this._withSyncedResources([e]).then(i=>{let n=this._modelService.getModel(e);if(!n)return Promise.resolve(null);let o=h.LanguageConfigurationRegistry.getWordDefinition(n.getLanguageIdentifier().id),s=o.source,r=m.regExpFlags(o);return i.computeWordRanges(e.toString(),t,s,r)})}navigateValueSet(e,t,i){return this._withSyncedResources([e]).then(n=>{let o=this._modelService.getModel(e);if(!o)return null;let s=h.LanguageConfigurationRegistry.getWordDefinition(o.getLanguageIdentifier().id),r=s.source,a=m.regExpFlags(s);return n.navigateValueSet(e.toString(),t,i,r,a)})}dispose(){super.dispose(),this._disposed=!0}}t.EditorWorkerClient=N})),define(t[241],i([0,1,18,81,128]),(function(e,t,i,n,o){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.toMultilineTokens2=t.SemanticTokensProviderStyling=void 0 +;t.SemanticTokensProviderStyling=class{constructor(e,t,i){this._legend=e,this._themeService=t,this._logService=i,this._hashTable=new r}getMetadata(e,t,o){const s=this._hashTable.get(e,t,o.id);let r;if(s)r=s.metadata,this._logService.getLevel()===n.LogLevel.Trace&&this._logService.trace(`SemanticTokensProviderStyling [CACHED] ${e} / ${t}: foreground ${i.TokenMetadata.getForeground(r)}, fontStyle ${i.TokenMetadata.getFontStyle(r).toString(2)}`);else{let s=this._legend.tokenTypes[e];const a=[];if(s){let e=t;for(let t=0;e>0&&t>=1;e>0&&this._logService.getLevel()===n.LogLevel.Trace&&(this._logService.trace(`SemanticTokensProviderStyling: unknown token modifier index: ${t.toString(2)} for legend: ${JSON.stringify(this._legend.tokenModifiers)}`),a.push("not-in-legend"));const i=this._themeService.getColorTheme().getTokenStyleMetadata(s,a,o.language);if(void 0===i)r=2147483647;else{if(r=0,void 0!==i.italic){r|=1|(i.italic?1:0)<<11} +if(void 0!==i.bold){r|=2|(i.bold?2:0)<<11}if(void 0!==i.underline){r|=4|(i.underline?4:0)<<11}if(i.foreground){r|=8|i.foreground<<14}0===r&&(r=2147483647)}}else this._logService.getLevel()===n.LogLevel.Trace&&this._logService.trace(`SemanticTokensProviderStyling: unknown token type index: ${e} for legend: ${JSON.stringify(this._legend.tokenTypes)}`),r=2147483647,s="not-in-legend";this._hashTable.add(e,t,o.id,r),this._logService.getLevel()===n.LogLevel.Trace&&this._logService.trace(`SemanticTokensProviderStyling ${e} (${s}) / ${t} (${a.join(" ")}): foreground ${i.TokenMetadata.getForeground(r)}, fontStyle ${i.TokenMetadata.getFontStyle(r).toString(2)}`)}return r}},t.toMultilineTokens2=function(e,t,i){const n=e.data,s=e.data.length/5|0,r=Math.max(Math.ceil(s/1024),400),a=[];let l=0,d=1,c=0;for(;le&&0===n[5*t];)t--;if(t-1===e){let e=h;for(;e+1=this._growCount){const e=this._elements;this._currentLengthIndex++,this._currentLength=r._SIZES[this._currentLengthIndex],this._growCount=Math.round(this._currentLengthIndex+1{const t=this._foreignModuleHost?n.getAllMethodNames(this._foreignModuleHost):[];return e.loadForeignModule(this._foreignModuleId,this._foreignModuleCreateData,t).then(t=>{this._foreignModuleCreateData=null;const i=(t,i)=>e.fmr(t,i),n=(e,t)=>(function(){const i=Array.prototype.slice.call(arguments,0);return t(e,i)});let o={};for(const e of t)o[e]=n(e,i);return o})})),this._foreignProxy} +getProxy(){return this._getForeignProxy()}withSyncedResources(e){return this._withSyncedResources(e).then(e=>this.getProxy())}}})),define(t[82],i([0,1,10,500,77]),(function(e,t,i,n,o){"use strict";var s;Object.defineProperty(t,"__esModule",{value:!0}),t.IMarkerService=t.IMarkerData=t.MarkerSeverity=void 0,function(e){e[e.Hint=1]="Hint",e[e.Info=2]="Info",e[e.Warning=4]="Warning",e[e.Error=8]="Error"}(s=t.MarkerSeverity||(t.MarkerSeverity={})),function(e){e.compare=function(e,t){return t-e};const t=Object.create(null);t[e.Error]=n.localize(0,null),t[e.Warning]=n.localize(1,null),t[e.Info]=n.localize(2,null),e.toString=function(e){return t[e]||""},e.fromSeverity=function(t){switch(t){case o.default.Error:return e.Error;case o.default.Warning:return e.Warning;case o.default.Info:return e.Info;case o.default.Ignore:return e.Hint}},e.toSeverity=function(t){switch(t){case e.Error:return o.default.Error;case e.Warning:return o.default.Warning;case e.Info:return o.default.Info;case e.Hint:return o.default.Ignore}} +}(s=t.MarkerSeverity||(t.MarkerSeverity={})),function(e){const t="";function i(e,i){let n=[t];return e.source?n.push(e.source.replace("¦","\\¦")):n.push(t),e.code?"string"==typeof e.code?n.push(e.code.replace("¦","\\¦")):n.push(e.code.value.replace("¦","\\¦")):n.push(t),void 0!==e.severity&&null!==e.severity?n.push(s.toString(e.severity)):n.push(t),e.message&&i?n.push(e.message.replace("¦","\\¦")):n.push(t),void 0!==e.startLineNumber&&null!==e.startLineNumber?n.push(e.startLineNumber.toString()):n.push(t),void 0!==e.startColumn&&null!==e.startColumn?n.push(e.startColumn.toString()):n.push(t),void 0!==e.endLineNumber&&null!==e.endLineNumber?n.push(e.endLineNumber.toString()):n.push(t),void 0!==e.endColumn&&null!==e.endColumn?n.push(e.endColumn.toString()):n.push(t),n.push(t),n.join("¦")}e.makeKey=function(e){return i(e,!0)},e.makeKeyOptionalMessage=i}(t.IMarkerData||(t.IMarkerData={})),t.IMarkerService=i.createDecorator("markerService")})), +define(t[536],i([0,1,82,24,4,2,3,8,19,10,71,69]),(function(e,t,i,n,o,s,r,d,c,h,u,g){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.IMarkerNavigationService=t.MarkerList=t.MarkerCoordinate=void 0;class p{constructor(e,t,i){this.marker=e,this.index=t,this.total=i}}t.MarkerCoordinate=p;let m=class e{constructor(t,r){this._markerService=r,this._onDidChange=new o.Emitter,this.onDidChange=this._onDidChange.event,this._dispoables=new s.DisposableStore,this._markers=[],this._nextIdx=-1,n.URI.isUri(t)?this._resourceFilter=e=>e.toString()===t.toString():t&&(this._resourceFilter=t);const a=()=>{this._markers=this._markerService.read({resource:n.URI.isUri(t)?t:void 0,severities:i.MarkerSeverity.Error|i.MarkerSeverity.Warning|i.MarkerSeverity.Info}),"function"==typeof t&&(this._markers=this._markers.filter(e=>this._resourceFilter(e.resource))),this._markers.sort(e._compareMarker)};a(),this._dispoables.add(r.onMarkerChanged(e=>{this._resourceFilter&&!e.some(e=>this._resourceFilter(e))||(a(), +this._nextIdx=-1,this._onDidChange.fire())}))}dispose(){this._dispoables.dispose(),this._onDidChange.dispose()}matches(e){return!this._resourceFilter&&!e||!(!this._resourceFilter||!e)&&this._resourceFilter(e)}get selected(){const e=this._markers[this._nextIdx];return e&&new p(e,this._nextIdx+1,this._markers.length)}_initIdx(e,t,i){let n=!1,o=this._markers.findIndex(t=>t.resource.toString()===e.uri.toString());o<0&&(o=c.binarySearch(this._markers,{resource:e.uri},(e,t)=>d.compare(e.resource.toString(),t.resource.toString())))<0&&(o=~o);for(let i=o;it.resource.toString()===e.toString());if(!(i<0))for(;ie[1])}}class c{constructor(e){this.errors=0,this.infos=0,this.warnings=0,this.unknowns=0,this._data=new a.ResourceMap,this._service=e,this._subscription=e.onMarkerChanged(this._update,this)}dispose(){this._subscription.dispose()}_update(e){for(const t of e){const e=this._data.get(t);e&&this._substract(e);const i=this._resourceStats(t);this._add(i),this._data.set(t,i)}}_resourceStats(e){const t={errors:0,warnings:0,infos:0,unknowns:0};if(e.scheme===n.Schemas.inMemory||e.scheme===n.Schemas.walkThrough||e.scheme===n.Schemas.walkThroughSnippet)return t;for(const{severity:i}of this._service.read({resource:e +}))i===r.MarkerSeverity.Error?t.errors+=1:i===r.MarkerSeverity.Warning?t.warnings+=1:i===r.MarkerSeverity.Info?t.infos+=1:t.unknowns+=1;return t}_substract(e){this.errors-=e.errors,this.warnings-=e.warnings,this.infos-=e.infos,this.unknowns-=e.unknowns}_add(e){this.errors+=e.errors,this.warnings+=e.warnings,this.infos+=e.infos,this.unknowns+=e.unknowns}}class h{constructor(){this._onMarkerChanged=new s.Emitter,this.onMarkerChanged=s.Event.debounce(this._onMarkerChanged.event,h._debouncer,0),this._data=new d,this._stats=new c(this)}dispose(){this._stats.dispose()}remove(e,t){for(const i of t||[])this.changeOne(e,i,[])}changeOne(e,t,n){if(i.isFalsyOrEmpty(n)){this._data.delete(t,e)&&this._onMarkerChanged.fire([t])}else{const i=[];for(const o of n){const n=h._toMarker(e,t,o);n&&i.push(n)}this._data.set(t,e,i),this._onMarkerChanged.fire([t])}}static _toMarker(e,t,i){let{code:n,severity:o,message:s,source:r,startLineNumber:a,startColumn:l,endLineNumber:d,endColumn:c,relatedInformation:h,tags:u}=i;if(s)return{ +resource:t,owner:e,code:n,severity:o,message:s,source:r,startLineNumber:a=a>0?a:1,startColumn:l=l>0?l:1,endLineNumber:d=d>=a?d:a,endColumn:c=c>0?c:l,relatedInformation:h,tags:u}}read(e=Object.create(null)){let{owner:t,resource:i,severities:n,take:o}=e;if((!o||o<0)&&(o=-1),t&&i){const e=this._data.get(i,t);if(e){const t=[];for(const i of e)if(h._accept(i,n)){const e=t.push(i);if(o>0&&e===o)break}return t}return[]}if(t||i){const e=this._data.values(null!=i?i:t),s=[];for(const t of e)for(const e of t)if(h._accept(e,n)){const t=s.push(e);if(o>0&&t===o)return s}return s}{const e=[];for(let t of this._data.values())for(let i of t)if(h._accept(i,n)){const t=e.push(i);if(o>0&&t===o)return e}return e}}static _accept(e,t){return void 0===t||(t&e.severity)===e.severity}static _debouncer(e,t){e||(h._dedupeMap=new a.ResourceMap,e=[]);for(const i of t)h._dedupeMap.has(i)||(h._dedupeMap.set(i,!0),e.push(i));return e}}t.MarkerService=h})),define(t[32],i([0,1,77,10]),(function(e,t,i,n){"use strict" +;Object.defineProperty(t,"__esModule",{value:!0}),t.NoOpNotification=t.INotificationService=t.Severity=void 0,t.Severity=i.default,t.INotificationService=n.createDecorator("notificationService");t.NoOpNotification=class{}})),define(t[55],i([0,1,24,10,2,8]),(function(e,t,i,n,o,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.matchesScheme=t.NullOpenerService=t.IOpenerService=void 0,t.IOpenerService=n.createDecorator("openerService"),t.NullOpenerService=Object.freeze({_serviceBrand:void 0,registerOpener:()=>o.Disposable.None,registerValidator:()=>o.Disposable.None,registerExternalUriResolver:()=>o.Disposable.None,setExternalOpener(){},open(){return r(this,void 0,void 0,(function*(){return!1}))},resolveExternalUri(e){return r(this,void 0,void 0,(function*(){return{resolved:e,dispose(){}}}))}}),t.matchesScheme=function(e,t){return i.URI.isUri(e)?s.equalsIgnoreCase(e.scheme,t):s.startsWithIgnoreCase(e,t+":")}})), +define(t[538],i([0,1,7,69,189,40,41,24,27,28,55,507]),(function(e,t,i,n,o,s,d,c,h,u,g,p){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.OpenerService=void 0;let m=class{constructor(e){this._commandService=e}open(e){return r(this,void 0,void 0,(function*(){if(!g.matchesScheme(e,s.Schemas.command))return!1;"string"==typeof e&&(e=c.URI.parse(e));let t=[];try{t=o.parse(decodeURIComponent(e.query))}catch(i){try{t=o.parse(e.query)}catch(e){}}return Array.isArray(t)||(t=[t]),yield this._commandService.executeCommand(e.path,...t),!0}))}};m=a([l(0,u.ICommandService)],m);let f=class{constructor(e){this._editorService=e}open(e,t){return r(this,void 0,void 0,(function*(){"string"==typeof e&&(e=c.URI.parse(e));let i=void 0;const n=/^L?(\d+)(?:,(\d+))?/.exec(e.fragment);return n&&(i={startLineNumber:parseInt(n[1]),startColumn:n[2]?parseInt(n[2]):1},e=e.with({fragment:""})),e.scheme===s.Schemas.file&&(e=d.normalizePath(e)),yield this._editorService.openCodeEditor({resource:e,options:{selection:i, +context:(null==t?void 0:t.fromUserGesture)?p.EditorOpenContext.USER:p.EditorOpenContext.API}},this._editorService.getFocusedCodeEditor(),null==t?void 0:t.openToSide),!0}))}};f=a([l(0,h.ICodeEditorService)],f);let _=class{constructor(e,t){this._openers=new n.LinkedList,this._validators=new n.LinkedList,this._resolvers=new n.LinkedList,this._externalOpener={openExternal:e=>(g.matchesScheme(e,s.Schemas.http)||g.matchesScheme(e,s.Schemas.https)?i.windowOpenNoOpener(e):window.location.href=e,Promise.resolve(!0))},this._openers.push({open:(e,t)=>r(this,void 0,void 0,(function*(){return!!((null==t?void 0:t.openExternal)||g.matchesScheme(e,s.Schemas.mailto)||g.matchesScheme(e,s.Schemas.http)||g.matchesScheme(e,s.Schemas.https))&&(yield this._doOpenExternal(e,t),!0)}))}),this._openers.push(new m(t)),this._openers.push(new f(e))}open(e,t){return r(this,void 0,void 0,(function*(){for(const t of this._validators.toArray())if(!(yield t.shouldOpen(e)))return!1;for(const i of this._openers.toArray()){ +if(yield i.open(e,t))return!0}return!1}))}resolveExternalUri(e,t){return r(this,void 0,void 0,(function*(){for(const i of this._resolvers.toArray()){const n=yield i.resolveExternalUri(e,t);if(n)return n}return{resolved:e,dispose:()=>{}}}))}_doOpenExternal(e,t){return r(this,void 0,void 0,(function*(){const i="string"==typeof e?c.URI.parse(e):e,{resolved:n}=yield this.resolveExternalUri(i,t);return"string"==typeof e&&i.toString()===n.toString()?this._externalOpener.openExternal(e):this._externalOpener.openExternal(encodeURI(n.toString(!0)))}))}dispose(){this._validators.clear()}};_=a([l(0,h.ICodeEditorService),l(1,u.ICommandService)],_),t.OpenerService=_})),define(t[134],i([0,1,279,55,73,12,235,10,4,2,18]),(function(e,t,i,n,o,s,r,d,c,h,u){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MarkdownRenderer=void 0;let g=class extends h.Disposable{constructor(e,t,i=n.NullOpenerService){super(),this._editor=e,this._modeService=t,this._openerService=i, +this._onDidRenderCodeBlock=this._register(new c.Emitter),this.onDidRenderCodeBlock=this._onDidRenderCodeBlock.event}getOptions(e){return{codeBlockRenderer:(e,t)=>{let i=null;if(e)i=this._modeService.getModeIdForLanguageName(e);else{const e=this._editor.getModel();e&&(i=e.getLanguageIdentifier().language)}return this._modeService.triggerMode(i||""),Promise.resolve(!0).then(e=>{const n=u.TokenizationRegistry.getPromise(i||"");return n?n.then(e=>r.tokenizeToString(t,e)):r.tokenizeToString(t,void 0)}).then(e=>`${e}`)},codeBlockRenderCallback:()=>this._onDidRenderCodeBlock.fire(),actionHandler:{callback:e=>{this._openerService.open(e,{fromUserGesture:!0}).catch(s.onUnexpectedError)},disposeables:e}}}render(e){const t=new h.DisposableStore;let n;return{element:n=e?i.renderMarkdown(e,this.getOptions(t)):document.createElement("span"),dispose:()=>t.dispose()}}};g=a([l(1,o.IModeService),l(2,d.optional(n.IOpenerService))],g),t.MarkdownRenderer=g +})),define(t[539],i([0,1,7,78,2,220,221,134,55,19]),(function(e,t,i,n,o,s,r,a,l,d){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ModesGlyphHoverWidget=void 0;class c{constructor(e){this._editor=e,this._lineNumber=-1,this._result=[]}setLineNumber(e){this._lineNumber=e,this._result=[]}clearResult(){this._result=[]}computeSync(){const e=e=>({value:e}),t=this._editor.getLineDecorations(this._lineNumber),i=[];if(!t)return i;for(const o of t){if(!o.options.glyphMarginClassName)continue;const t=o.options.glyphMarginHoverMessage;t&&!n.isEmptyMarkdownString(t)&&i.push(...d.asArray(t).map(e))}return i}onResult(e,t){this._result=this._result.concat(e)}getResult(){return this._result}getResultWithLoadingMessage(){return this.getResult()}}class h extends r.GlyphHoverWidget{constructor(e,t,i=l.NullOpenerService){super(h.ID,e),this._renderDisposeables=this._register(new o.DisposableStore),this._messages=[],this._lastLineNumber=-1, +this._markdownRenderer=this._register(new a.MarkdownRenderer(this._editor,t,i)),this._computer=new c(this._editor),this._hoverOperation=new s.HoverOperation(this._computer,e=>this._withResult(e),void 0,e=>this._withResult(e),300)}dispose(){this._hoverOperation.cancel(),super.dispose()}onModelDecorationsChanged(){this.isVisible&&(this._hoverOperation.cancel(),this._computer.clearResult(),this._hoverOperation.start(0))}startShowingAt(e){this._lastLineNumber!==e&&(this._hoverOperation.cancel(),this.hide(),this._lastLineNumber=e,this._computer.setLineNumber(e),this._hoverOperation.start(0))}hide(){this._lastLineNumber=-1,this._hoverOperation.cancel(),super.hide()}_withResult(e){this._messages=e,this._messages.length>0?this._renderMessages(this._lastLineNumber,this._messages):this.hide()}_renderMessages(e,t){this._renderDisposeables.clear();const n=document.createDocumentFragment();for(const e of t){const t=this._markdownRenderer.render(e.value);this._renderDisposeables.add(t), +n.appendChild(i.$("div.hover-row",void 0,t.element))}this.updateContents(n),this.showAt(e)}}t.ModesGlyphHoverWidget=h,h.ID="editor.contrib.modesGlyphHoverWidget"})),define(t[56],i([0,1,10]),(function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.IEditorProgressService=t.Progress=void 0;class n{constructor(e){this.callback=e}report(e){this._value=e,this.callback(this._value)}}t.Progress=n,n.None=Object.freeze({report(){}}),t.IEditorProgressService=i.createDecorator("editorProgressService")})),define(t[540],i([0,1,25,2,15]),(function(e,t,i,n,o){"use strict";var s;function a(e){const t=e;return Array.isArray(t.items)}Object.defineProperty(t,"__esModule",{value:!0}),t.PickerQuickAccessProvider=t.TriggerAction=void 0,function(e){e[e.NO_ACTION=0]="NO_ACTION",e[e.CLOSE_PICKER=1]="CLOSE_PICKER",e[e.REFRESH_PICKER=2]="REFRESH_PICKER",e[e.REMOVE_ITEM=3]="REMOVE_ITEM"}(s=t.TriggerAction||(t.TriggerAction={}));class l extends n.Disposable{constructor(e,t){super(),this.prefix=e,this.options=t} +provide(e,t){var d;const c=new n.DisposableStore;e.canAcceptInBackground=!!(null===(d=this.options)||void 0===d?void 0:d.canAcceptInBackground),e.matchOnLabel=e.matchOnDescription=e.matchOnDetail=e.sortByLabel=!1;let h=void 0;const u=c.add(new n.MutableDisposable),g=()=>r(this,void 0,void 0,(function*(){const s=u.value=new n.DisposableStore;null==h||h.dispose(!0),e.busy=!1;const d=(h=new i.CancellationTokenSource(t)).token,c=e.value.substr(this.prefix.length).trim(),g=this.getPicks(c,s,d),p=(t,i)=>{var n;let o,s=void 0;if(a(t)?(o=t.items,s=t.active):o=t,0===o.length){if(i)return!1;c.length>0&&(null===(n=this.options)||void 0===n?void 0:n.noResultsPick)&&(o=[this.options.noResultsPick])}return e.items=o,s&&(e.activeItems=[s]),!0};if(null===g);else if(function(e){const t=e;return!!t.picks&&t.additionalPicks instanceof Promise}(g)){let t=!1,i=!1;yield Promise.all([(()=>r(this,void 0,void 0,(function*(){yield o.timeout(l.FAST_PICKS_RACE_DELAY),d.isCancellationRequested||i||(t=p(g.picks,!0)) +})))(),(()=>r(this,void 0,void 0,(function*(){e.busy=!0;try{const n=yield g.additionalPicks;if(d.isCancellationRequested)return;let o,s,r=void 0;a(g.picks)?(o=g.picks.items,r=g.picks.active):o=g.picks;let l=void 0;if(a(n)?(s=n.items,l=n.active):s=n,s.length>0||!t){let t=void 0;if(!r&&!l){const i=e.activeItems[0];i&&-1!==o.indexOf(i)&&(t=i)}p({items:[...o,...s],active:r||l||t})}}finally{d.isCancellationRequested||(e.busy=!1),i=!0}})))()])}else if(g instanceof Promise){e.busy=!0;try{const t=yield g;if(d.isCancellationRequested)return;p(t)}finally{d.isCancellationRequested||(e.busy=!1)}}else p(g)}));return c.add(e.onDidChangeValue(()=>g())),g(),c.add(e.onDidAccept(t=>{const[i]=e.selectedItems;"function"==typeof(null==i?void 0:i.accept)&&(t.inBackground||e.hide(),i.accept(e.keyMods,t))})),c.add(e.onDidTriggerItemButton(({button:i,item:n})=>r(this,void 0,void 0,(function*(){var o,r;if("function"==typeof n.trigger){const a=null!==(r=null===(o=n.buttons)||void 0===o?void 0:o.indexOf(i))&&void 0!==r?r:-1;if(a>=0){ +const i=n.trigger(a,e.keyMods),o="number"==typeof i?i:yield i;if(t.isCancellationRequested)return;switch(o){case s.NO_ACTION:break;case s.CLOSE_PICKER:e.hide();break;case s.REFRESH_PICKER:g();break;case s.REMOVE_ITEM:const t=e.items.indexOf(n);if(-1!==t){const i=e.items.slice();i.splice(t,1),e.items=i}}}}})))),c}}t.PickerQuickAccessProvider=l,l.FAST_PICKS_RACE_DELAY=200}));var d=this&&this.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[i]}})}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),c=this&&this.__exportStar||function(e,t){for(var i in e)"default"===i||Object.prototype.hasOwnProperty.call(t,i)||d(t,e,i)};define(t[75],i([0,1,10,195]),(function(e,t,i,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.IQuickInputService=void 0,c(n,t),t.IQuickInputService=i.createDecorator("quickInputService")})),define(t[34],i([0,1,23,185]),(function(e,t,i,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}), +t.Registry=void 0;t.Registry=new class{constructor(){this.data=new Map}add(e,t){n.ok(i.isString(e)),n.ok(i.isObject(t)),n.ok(!this.data.has(e),"There is already an extension with this id"),this.data.set(e,t)}as(e){return this.data.get(e)||null}}})),define(t[135],i([0,1,442,4,18,42,34]),(function(e,t,i,n,o,s,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.PLAINTEXT_LANGUAGE_IDENTIFIER=t.PLAINTEXT_MODE_ID=t.ModesRegistry=t.EditorModesRegistry=t.Extensions=void 0,t.Extensions={ModesRegistry:"editor.modesRegistry"};class a{constructor(){this._onDidChangeLanguages=new n.Emitter,this.onDidChangeLanguages=this._onDidChangeLanguages.event,this._languages=[],this._dynamicLanguages=[]}registerLanguage(e){return this._languages.push(e),this._onDidChangeLanguages.fire(void 0),{dispose:()=>{for(let t=0,i=this._languages.length;t"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"`",close:"`"}],folding:{offSide:!0}})})),define(t[541],i([0,1,40,41,135,229]),(function(e,t,i,n,o,s){"use strict";function r(e,t,s){if(!s)return null;let r=null;if(s.scheme===i.Schemas.data){const e=n.DataUri.parseMetaData(s).get(n.DataUri.META_DATA_MIME);e&&(r=t.getModeId(e))}else{const t=e.getModel(s);t&&(r=t.getModeId())}return r&&r!==o.PLAINTEXT_MODE_ID?r:t.getModeIdByFilepathOrFirstLine(s)} +function a(e){return e.replace(/\s/g,"\\$&")}Object.defineProperty(t,"__esModule",{value:!0}),t.cssEscape=t.detectModeId=t.getIconClasses=void 0,t.getIconClasses=function(e,t,o,l){const d=l===s.FileKind.ROOT_FOLDER?["rootfolder-icon"]:l===s.FileKind.FOLDER?["folder-icon"]:["file-icon"];if(o){let c;if(o.scheme===i.Schemas.data){c=n.DataUri.parseMetaData(o).get(n.DataUri.META_DATA_LABEL)}else c=a(n.basenameOrAuthority(o).toLowerCase());if(l===s.FileKind.FOLDER)d.push(`${c}-name-folder-icon`);else{if(c){d.push(`${c}-name-file-icon`);const e=c.split(".");for(let t=1;t0&&"#"===i.charAt(i.length-1)?i.substring(0,i.length-1):i)]=t,this._onDidChangeSchema.fire(e)}notifySchemaChanged(e){this._onDidChangeSchema.fire(e)}};i.Registry.add(t.Extensions.JSONContribution,o)})),define(t[93],i([0,1,497,4,34,23,242]),(function(e,t,i,n,o,s,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.validateProperty=t.getDefaultValue=t.overrideIdentifierFromKey=t.OVERRIDE_PROPERTY_PATTERN=t.resourceLanguageSettingsSchemaId=t.resourceSettings=t.windowSettings=t.machineOverridableSettings=t.machineSettings=t.applicationSettings=t.allSettings=t.Extensions=void 0,t.Extensions={Configuration:"base.contributions.configuration"},t.allSettings={properties:{},patternProperties:{}},t.applicationSettings={properties:{},patternProperties:{}},t.machineSettings={properties:{},patternProperties:{}},t.machineOverridableSettings={properties:{},patternProperties:{}},t.windowSettings={properties:{},patternProperties:{}}, +t.resourceSettings={properties:{},patternProperties:{}},t.resourceLanguageSettingsSchemaId="vscode://schemas/settings/resourceLanguage";const a=o.Registry.as(r.Extensions.JSONContribution);function l(e){switch(Array.isArray(e)?e[0]:e){case"boolean":return!1;case"integer":case"number":return 0;case"string":return"";case"array":return[];case"object":return{};default:return null}}t.OVERRIDE_PROPERTY_PATTERN=new RegExp("\\[.*\\]$"),t.overrideIdentifierFromKey=function(e){return e.substring(1,e.length-1)},t.getDefaultValue=l;const d=new class{constructor(){this.overrideIdentifiers=new Set,this._onDidSchemaChange=new n.Emitter,this._onDidUpdateConfiguration=new n.Emitter,this.defaultValues={},this.defaultLanguageConfigurationOverridesNode={id:"defaultOverrides",title:i.localize(0,null),properties:{}},this.configurationContributors=[this.defaultLanguageConfigurationOverridesNode],this.resourceLanguageSettingsSchema={properties:{},patternProperties:{},additionalProperties:!1, +errorMessage:"Unknown editor configuration setting",allowTrailingCommas:!0,allowComments:!0},this.configurationProperties={},this.excludedConfigurationProperties={},a.registerSchema(t.resourceLanguageSettingsSchemaId,this.resourceLanguageSettingsSchema)}registerConfiguration(e,t=!0){this.registerConfigurations([e],t)}registerConfigurations(e,i=!0){const n=[];e.forEach(e=>{n.push(...this.validateAndRegisterProperties(e,i)),this.configurationContributors.push(e),this.registerJSONConfiguration(e)}),a.registerSchema(t.resourceLanguageSettingsSchemaId,this.resourceLanguageSettingsSchema),this._onDidSchemaChange.fire(),this._onDidUpdateConfiguration.fire(n)}registerOverrideIdentifiers(e){for(const t of e)this.overrideIdentifiers.add(t);this.updateOverridePropertyPatternKey()}validateAndRegisterProperties(e,i=!0,n=3){n=s.isUndefinedOrNull(e.scope)?n:e.scope;let o=[],r=e.properties;if(r)for(let e in r){if(i&&c(e)){delete r[e];continue}const a=r[e];this.updatePropertyDefaultValue(e,a), +t.OVERRIDE_PROPERTY_PATTERN.test(e)?a.scope=void 0:a.scope=s.isUndefinedOrNull(a.scope)?n:a.scope,!r[e].hasOwnProperty("included")||r[e].included?(this.configurationProperties[e]=r[e],!r[e].deprecationMessage&&r[e].markdownDeprecationMessage&&(r[e].deprecationMessage=r[e].markdownDeprecationMessage),o.push(e)):(this.excludedConfigurationProperties[e]=r[e],delete r[e])}let a=e.allOf;if(a)for(let e of a)o.push(...this.validateAndRegisterProperties(e,i,n));return o}getConfigurationProperties(){return this.configurationProperties}registerJSONConfiguration(e){const t=e=>{let i=e.properties;if(i)for(const e in i)this.updateSchema(e,i[e]);let n=e.allOf;n&&n.forEach(t)};t(e)}updateSchema(e,i){switch(t.allSettings.properties[e]=i,i.scope){case 1:t.applicationSettings.properties[e]=i;break;case 2:t.machineSettings.properties[e]=i;break;case 6:t.machineOverridableSettings.properties[e]=i;break;case 3:t.windowSettings.properties[e]=i;break;case 4:t.resourceSettings.properties[e]=i;break;case 5: +t.resourceSettings.properties[e]=i,this.resourceLanguageSettingsSchema.properties[e]=i}}updateOverridePropertyPatternKey(){for(const e of this.overrideIdentifiers.values()){const n=`[${e}]`,o={type:"object",description:i.localize(1,null),errorMessage:i.localize(2,null),$ref:t.resourceLanguageSettingsSchemaId};this.updatePropertyDefaultValue(n,o),t.allSettings.properties[n]=o,t.applicationSettings.properties[n]=o,t.machineSettings.properties[n]=o,t.machineOverridableSettings.properties[n]=o,t.windowSettings.properties[n]=o,t.resourceSettings.properties[n]=o}this._onDidSchemaChange.fire()}updatePropertyDefaultValue(e,t){let i=this.defaultValues[e];s.isUndefined(i)&&(i=t.default),s.isUndefined(i)&&(i=l(t.type)),t.default=i}};function c(e){return t.OVERRIDE_PROPERTY_PATTERN.test(e)?i.localize(3,null,e):void 0!==d.getConfigurationProperties()[e]?i.localize(4,null,e):null}o.Registry.add(t.Extensions.Configuration,d),t.validateProperty=c})), +define(t[174],i([0,1,438,4,2,37,19,38,120,156,93,34,186]),(function(e,t,i,n,o,s,r,a,l,d,c,h,u){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isDiffEditorConfigurationKey=t.isEditorConfigurationKey=t.editorConfigurationBaseNode=t.CommonEditorConfiguration=t.ComputedEditorOptions=t.TabFocus=void 0,t.TabFocus=new class{constructor(){this._tabFocus=!1,this._onDidChangeTabFocus=new n.Emitter,this.onDidChangeTabFocus=this._onDidChangeTabFocus.event}getTabFocusMode(){return this._tabFocus}setTabFocusMode(e){this._tabFocus!==e&&(this._tabFocus=e,this._onDidChangeTabFocus.fire(this._tabFocus))}};const g=Object.hasOwnProperty;class p{constructor(){this._values=[]}_read(e){return this._values[e]}get(e){return this._values[e]}_write(e,t){this._values[e]=t}}t.ComputedEditorOptions=p;class m{constructor(){this._values=[]}_read(e){return this._values[e]}_write(e,t){this._values[e]=t}}class f{static readOptions(e){const t=e,i=new m;for(const e of a.editorOptionsRegistry){ +const n="_never_"===e.name?void 0:t[e.name];i._write(e.id,n)}return i}static validateOptions(e){const t=new a.ValidatedEditorOptions;for(const i of a.editorOptionsRegistry)t._write(i.id,i.validate(e._read(i.id)));return t}static computeOptions(e,t){const i=new p;for(const n of a.editorOptionsRegistry)i._write(n.id,n.compute(t,i,e._read(n.id)));return i}static _deepEquals(e,t){if("object"!=typeof e||"object"!=typeof t)return e===t;if(Array.isArray(e)||Array.isArray(t))return!(!Array.isArray(e)||!Array.isArray(t))&&r.equals(e,t);for(let i in e)if(!f._deepEquals(e[i],t[i]))return!1;return!0}static checkEquals(e,t){const i=[];let n=!1;for(const o of a.editorOptionsRegistry){const s=!f._deepEquals(e._read(o.id),t._read(o.id));i[o.id]=s,s&&(n=!0)}return n?new a.ConfigurationChangedEvent(i):null}}function _(e){const t=s.deepClone(e);return function(e){const t=e.wordWrap;!0===t?e.wordWrap="on":!1===t&&(e.wordWrap="off");const i=e.lineNumbers;!0===i?e.lineNumbers="on":!1===i&&(e.lineNumbers="off"), +!1===e.autoClosingBrackets&&(e.autoClosingBrackets="never",e.autoClosingQuotes="never",e.autoSurround="never"),"visible"===e.cursorBlinking&&(e.cursorBlinking="solid");const n=e.renderWhitespace;!0===n?e.renderWhitespace="boundary":!1===n&&(e.renderWhitespace="none");const o=e.renderLineHighlight;!0===o?e.renderLineHighlight="line":!1===o&&(e.renderLineHighlight="none");const s=e.acceptSuggestionOnEnter;!0===s?e.acceptSuggestionOnEnter="on":!1===s&&(e.acceptSuggestionOnEnter="off");const r=e.tabCompletion;!1===r?e.tabCompletion="off":!0===r&&(e.tabCompletion="onlySnippets");const a=e.suggest;if(a&&"object"==typeof a.filteredTypes&&a.filteredTypes){const e={method:"showMethods",function:"showFunctions",constructor:"showConstructors",field:"showFields",variable:"showVariables",class:"showClasses",struct:"showStructs",interface:"showInterfaces",module:"showModules",property:"showProperties",event:"showEvents",operator:"showOperators",unit:"showUnits",value:"showValues",constant:"showConstants",enum:"showEnums", +enumMember:"showEnumMembers",keyword:"showKeywords",text:"showWords",color:"showColors",file:"showFiles",reference:"showReferences",folder:"showFolders",typeParameter:"showTypeParameters",snippet:"showSnippets"};u.forEach(e,e=>{const t=a.filteredTypes[e.key];!1===t&&(a[e.value]=t)})}const l=e.hover;!0===l?e.hover={enabled:!0}:!1===l&&(e.hover={enabled:!1});const d=e.parameterHints;!0===d?e.parameterHints={enabled:!0}:!1===d&&(e.parameterHints={enabled:!1});const c=e.autoIndent;!0===c?e.autoIndent="full":!1===c&&(e.autoIndent="advanced");const h=e.matchBrackets;!0===h?e.matchBrackets="always":!1===h&&(e.matchBrackets="never")}(t),t}class v extends o.Disposable{constructor(e,i){super(),this._onDidChange=this._register(new n.Emitter),this.onDidChange=this._onDidChange.event,this._onDidChangeFast=this._register(new n.Emitter),this.onDidChangeFast=this._onDidChangeFast.event,this.isSimpleWidget=e,this._isDominatedByLongLines=!1,this._computeOptionsMemory=new a.ComputeOptionsMemory,this._viewLineCount=1, +this._lineNumbersDigitCount=1,this._rawOptions=_(i),this._readOptions=f.readOptions(this._rawOptions),this._validatedOptions=f.validateOptions(this._readOptions),this._register(l.EditorZoom.onDidChangeZoomLevel(e=>this._recomputeOptions())),this._register(t.TabFocus.onDidChangeTabFocus(e=>this._recomputeOptions()))}observeReferenceElement(e){}dispose(){super.dispose()}_recomputeOptions(){const e=this.options,t=this._computeInternalOptions();if(e){const i=f.checkEquals(e,t);if(null===i)return;this.options=t,this._onDidChangeFast.fire(i),this._onDidChange.fire(i)}else this.options=t}getRawOptions(){return this._rawOptions}_computeInternalOptions(){const e=this._getEnvConfiguration(),i=d.BareFontInfo.createFromValidatedSettings(this._validatedOptions,e.zoomLevel,this.isSimpleWidget),n={memory:this._computeOptionsMemory,outerWidth:e.outerWidth,outerHeight:e.outerHeight,fontInfo:this.readConfiguration(i),extraEditorClassName:e.extraEditorClassName,isDominatedByLongLines:this._isDominatedByLongLines, +viewLineCount:this._viewLineCount,lineNumbersDigitCount:this._lineNumbersDigitCount,emptySelectionClipboard:e.emptySelectionClipboard,pixelRatio:e.pixelRatio,tabFocusMode:t.TabFocus.getTabFocusMode(),accessibilitySupport:e.accessibilitySupport};return f.computeOptions(this._validatedOptions,n)}static _subsetEquals(e,t){for(const i in t)if(g.call(t,i)){const n=t[i],o=e[i];if(o===n)continue;if(Array.isArray(o)&&Array.isArray(n)){if(!r.equals(o,n))return!1;continue}if(o&&"object"==typeof o&&n&&"object"==typeof n){if(!this._subsetEquals(o,n))return!1;continue}return!1}return!0}updateOptions(e){if(void 0===e)return;const t=_(e);v._subsetEquals(this._rawOptions,t)||(this._rawOptions=s.mixin(this._rawOptions,t||{}),this._readOptions=f.readOptions(this._rawOptions),this._validatedOptions=f.validateOptions(this._readOptions),this._recomputeOptions())}setIsDominatedByLongLines(e){this._isDominatedByLongLines=e,this._recomputeOptions()}setMaxLineNumber(e){const t=v._digitCount(e) +;this._lineNumbersDigitCount!==t&&(this._lineNumbersDigitCount=t,this._recomputeOptions())}setViewLineCount(e){this._viewLineCount!==e&&(this._viewLineCount=e,this._recomputeOptions())}static _digitCount(e){let t=0;for(;e;)e=Math.floor(e/10),t++;return t||1}}t.CommonEditorConfiguration=v,t.editorConfigurationBaseNode=Object.freeze({id:"editor",order:5,type:"object",title:i.localize(0,null),scope:5});const C=h.Registry.as(c.Extensions.Configuration),b=Object.assign(Object.assign({},t.editorConfigurationBaseNode),{properties:{"editor.tabSize":{type:"number",default:a.EDITOR_MODEL_DEFAULTS.tabSize,minimum:1,markdownDescription:i.localize(1,null)},"editor.insertSpaces":{type:"boolean",default:a.EDITOR_MODEL_DEFAULTS.insertSpaces,markdownDescription:i.localize(2,null)},"editor.detectIndentation":{type:"boolean",default:a.EDITOR_MODEL_DEFAULTS.detectIndentation,markdownDescription:i.localize(3,null)},"editor.trimAutoWhitespace":{type:"boolean",default:a.EDITOR_MODEL_DEFAULTS.trimAutoWhitespace, +description:i.localize(4,null)},"editor.largeFileOptimizations":{type:"boolean",default:a.EDITOR_MODEL_DEFAULTS.largeFileOptimizations,description:i.localize(5,null)},"editor.wordBasedSuggestions":{type:"boolean",default:!0,description:i.localize(6,null)},"editor.semanticHighlighting.enabled":{enum:[!0,!1,"configuredByTheme"],enumDescriptions:[i.localize(7,null),i.localize(8,null),i.localize(9,null)],default:"configuredByTheme",description:i.localize(10,null)},"editor.stablePeek":{type:"boolean",default:!1,markdownDescription:i.localize(11,null)},"editor.maxTokenizationLineLength":{type:"integer",default:2e4,description:i.localize(12,null)},"diffEditor.maxComputationTime":{type:"number",default:5e3,description:i.localize(13,null)},"diffEditor.renderSideBySide":{type:"boolean",default:!0,description:i.localize(14,null)},"diffEditor.ignoreTrimWhitespace":{type:"boolean",default:!0,description:i.localize(15,null)},"diffEditor.renderIndicators":{type:"boolean",default:!0,description:i.localize(16,null)}, +"diffEditor.codeLens":{type:"boolean",default:!1,description:i.localize(17,null)}}});for(const e of a.editorOptionsRegistry){const t=e.schema;if(void 0!==t)if(void 0!==(S=t).type||void 0!==S.anyOf)b.properties[`editor.${e.name}`]=t;else for(let e in t)g.call(t,e)&&(b.properties[e]=t[e])}var S;let w=null;function y(){return null===w&&(w=Object.create(null),Object.keys(b.properties).forEach(e=>{w[e]=!0})),w}t.isEditorConfigurationKey=function(e){return y()[`editor.${e}`]||!1},t.isDiffEditorConfigurationKey=function(e){return y()[`diffEditor.${e}`]||!1},C.registerConfiguration(b)})),define(t[67],i([0,1,36,4,2,16,353,203,174,38,156]),(function(e,t,i,n,o,s,r,a,l,d,c){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Configuration=t.clearAllFontInfos=void 0;class h{constructor(){this._keys=Object.create(null),this._values=Object.create(null)}has(e){const t=e.getId();return!!this._values[t]}get(e){const t=e.getId();return this._values[t]}put(e,t){const i=e.getId();this._keys[i]=e,this._values[i]=t} +remove(e){const t=e.getId();delete this._keys[t],delete this._values[t]}getValues(){return Object.keys(this._keys).map(e=>this._values[e])}}t.clearAllFontInfos=function(){u.INSTANCE.clearCache()};class u extends o.Disposable{constructor(){super(),this._onDidChange=this._register(new n.Emitter),this.onDidChange=this._onDidChange.event,this._cache=new h,this._evictUntrustedReadingsTimeout=-1}dispose(){-1!==this._evictUntrustedReadingsTimeout&&(clearTimeout(this._evictUntrustedReadingsTimeout),this._evictUntrustedReadingsTimeout=-1),super.dispose()}clearCache(){this._cache=new h,this._onDidChange.fire()}_writeToCache(e,t){this._cache.put(e,t),t.isTrusted||-1!==this._evictUntrustedReadingsTimeout||(this._evictUntrustedReadingsTimeout=setTimeout(()=>{this._evictUntrustedReadingsTimeout=-1,this._evictUntrustedReadings()},5e3))}_evictUntrustedReadings(){const e=this._cache.getValues();let t=!1;for(let i=0,n=e.length;i.001){L=!1;break}}let D=!0;L&&S.width!==x&&(D=!1),S.width>b.width&&(D=!1);const k=i.getTimeSinceLastZoomLevelChanged()>2e3;return new c.FontInfo({zoomLevel:i.getZoomLevel(),fontFamily:e.fontFamily,fontWeight:e.fontWeight,fontSize:e.fontSize,fontFeatureSettings:e.fontFeatureSettings,lineHeight:e.lineHeight,letterSpacing:e.letterSpacing,isMonospace:L,typicalHalfwidthCharacterWidth:o.width,typicalFullwidthCharacterWidth:s.width,canUseHalfwidthRightwardsArrow:D,spaceWidth:a.width,middotWidth:w.width,wsmiddotWidth:y.width,maxDigitWidth:E},k)}}u.INSTANCE=new u;class g extends l.CommonEditorConfiguration{ +constructor(e,t,n=null,o){super(e,t),this.accessibilityService=o,this._elementSizeObserver=this._register(new a.ElementSizeObserver(n,t.dimension,()=>this._onReferenceDomElementSizeChanged())),this._register(u.INSTANCE.onDidChange(()=>this._onCSSBasedConfigurationChanged())),this._validatedOptions.get(9)&&this._elementSizeObserver.startObserving(),this._register(i.onDidChangeZoomLevel(e=>this._recomputeOptions())),this._register(this.accessibilityService.onDidChangeScreenReaderOptimized(()=>this._recomputeOptions())),this._recomputeOptions()}static applyFontInfoSlow(e,t){e.style.fontFamily=t.getMassagedFontFamily(),e.style.fontWeight=t.fontWeight,e.style.fontSize=t.fontSize+"px",e.style.fontFeatureSettings=t.fontFeatureSettings,e.style.lineHeight=t.lineHeight+"px",e.style.letterSpacing=t.letterSpacing+"px"}static applyFontInfo(e,t){e.setFontFamily(t.getMassagedFontFamily()),e.setFontWeight(t.fontWeight),e.setFontSize(t.fontSize),e.setFontFeatureSettings(t.fontFeatureSettings),e.setLineHeight(t.lineHeight), +e.setLetterSpacing(t.letterSpacing)}_onReferenceDomElementSizeChanged(){this._recomputeOptions()}_onCSSBasedConfigurationChanged(){this._recomputeOptions()}observeReferenceElement(e){this._elementSizeObserver.observe(e)}dispose(){super.dispose()}_getExtraEditorClassName(){let e="";return i.isSafari||i.isWebkitWebView||(e+="no-user-select "),s.isMacintosh&&(e+="mac "),e}_getEnvConfiguration(){return{extraEditorClassName:this._getExtraEditorClassName(),outerWidth:this._elementSizeObserver.getWidth(),outerHeight:this._elementSizeObserver.getHeight(),emptySelectionClipboard:i.isWebKit||i.isFirefox,pixelRatio:i.getPixelRatio(),zoomLevel:i.getZoomLevel(),accessibilitySupport:this.accessibilityService.isScreenReaderOptimized()?2:this.accessibilityService.getAccessibilitySupport()}}readConfiguration(e){return u.INSTANCE.readConfiguration(e)}}t.Configuration=g})),define(t[542],i([0,1,172,89,8,67]),(function(e,t,i,n,o,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DOMLineBreaksComputerFactory=void 0 +;class r{static create(){return new r}constructor(){}createLineBreaksComputer(e,t,r,d){t|=0,r=+r;let c=[];return{addRequest:(e,t)=>{c.push(e)},finalize:()=>(function(e,t,r,d,c){if(-1===d){const t=[];for(let i=0,n=e.length;ih?(s=0,l=0):d=h-e}const u=n.substr(s),C=a(u,l,r,d,g);p[i]=s,m[i]=l,f[i]=u,_[i]=C[0],v[i]=C[1]}u.innerHTML=g.build(),u.style.position="absolute",u.style.top="10000",u.style.wordWrap="break-word",document.body.appendChild(u);let C=document.createRange();const b=Array.prototype.slice.call(u.children,0);let S=[] +;for(let t=0;t');const r=e.length;let a=t,l=0,d=[],c=[],h=0");for(let t=0;t"),d[t]=l,c[t]=a;const n=h;h=t+1"),d[e.length]=l,c[e.length]=a,s.appendASCIIString(""),[d,c]}function l(e,t,i,n){if(i.length<=1)return null;const o=Array.prototype.slice.call(t.children,0),s=[];try{!function e(t,i,n,o,s,r,a,l){if(o===r)return;s=s||d(t,i,n[o],n[o+1]);a=a||d(t,i,n[r],n[r+1]);if(Math.abs(s[0].top-a[0].top)<=.1)return;if(o+1===r)return void l.push(r);const c=o+(r-o)/2|0;const h=d(t,i,n[c],n[c+1]);e(t,i,n,o,s,c,h,l);e(t,i,n,c,h,r,a,l)}(e,o,n,0,null,i.length-1,null,s)}catch(e){return console.log(e),null}return 0===s.length?null:(s.push(i.length),s)}function d(e,t,i,n){return e.setStart(t[i/16384|0].firstChild,i%16384),e.setEnd(t[n/16384|0].firstChild,n%16384),e.getClientRects()}t.DOMLineBreaksComputerFactory=r})),define(t[543],i([0,1,30,67,157,43]),(function(e,t,i,n,o,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}), +t.MarginViewOverlays=t.ContentViewOverlays=t.ViewOverlayLine=t.ViewOverlays=void 0;class r extends s.ViewPart{constructor(e){super(e),this._visibleLines=new o.VisibleLinesCollection(this),this.domNode=this._visibleLines.domNode,this._dynamicOverlays=[],this._isFocused=!1,this.domNode.setClassName("view-overlays")}shouldRender(){if(super.shouldRender())return!0;for(let e=0,t=this._dynamicOverlays.length;ee.shouldRender());for(let i=0,n=t.length;i'),n.appendASCIIString(o),n.appendASCIIString(""),!0)}layoutLine(e,t){this._domNode&&(this._domNode.setTop(t),this._domNode.setHeight(this._lineHeight))}}t.ViewOverlayLine=a;t.ContentViewOverlays=class extends r{constructor(e){super(e);const t=this._context.configuration.options.get(117);this._contentWidth=t.contentWidth, +this.domNode.setHeight(0)}onConfigurationChanged(e){const t=this._context.configuration.options.get(117);return this._contentWidth=t.contentWidth,super.onConfigurationChanged(e)||!0}onScrollChanged(e){return super.onScrollChanged(e)||e.scrollWidthChanged}_viewOverlaysRender(e){super._viewOverlaysRender(e),this.domNode.setWidth(Math.max(e.scrollWidth,this._contentWidth))}};t.MarginViewOverlays=class extends r{constructor(e){super(e);const t=this._context.configuration.options,i=t.get(117);this._contentLeft=i.contentLeft,this.domNode.setClassName("margin-view-overlays"),this.domNode.setWidth(1),n.Configuration.applyFontInfo(this.domNode,t.get(36))}onConfigurationChanged(e){const t=this._context.configuration.options;n.Configuration.applyFontInfo(this.domNode,t.get(36));const i=t.get(117);return this._contentLeft=i.contentLeft,super.onConfigurationChanged(e)||!0}onScrollChanged(e){return super.onScrollChanged(e)||e.scrollHeightChanged}_viewOverlaysRender(e){super._viewOverlaysRender(e) +;const t=Math.min(e.scrollHeight,1e6);this.domNode.setHeight(t),this.domNode.setWidth(this._contentLeft)}}})),define(t[544],i([0,1,7,30,8,67,38,13,3,116]),(function(e,t,i,n,o,s,r,a,l,d){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ViewCursor=void 0;class c{constructor(e,t,i,n,o,s){this.top=e,this.left=t,this.width=i,this.height=n,this.textContent=o,this.textContentClassName=s}}t.ViewCursor=class{constructor(e){this._context=e;const t=this._context.configuration.options,i=t.get(36);this._cursorStyle=t.get(19),this._lineHeight=t.get(51),this._typicalHalfwidthCharacterWidth=i.typicalHalfwidthCharacterWidth,this._lineCursorWidth=Math.min(t.get(22),this._typicalHalfwidthCharacterWidth),this._isVisible=!0,this._domNode=n.createFastDomNode(document.createElement("div")),this._domNode.setClassName(`cursor ${d.MOUSE_CURSOR_TEXT_CSS_CLASS_NAME}`),this._domNode.setHeight(this._lineHeight),this._domNode.setTop(0),this._domNode.setLeft(0),s.Configuration.applyFontInfo(this._domNode,i), +this._domNode.setDisplay("none"),this._position=new a.Position(1,1),this._lastRenderedContent="",this._renderData=null}getDomNode(){return this._domNode}getPosition(){return this._position}show(){this._isVisible||(this._domNode.setVisibility("inherit"),this._isVisible=!0)}hide(){this._isVisible&&(this._domNode.setVisibility("hidden"),this._isVisible=!1)}onConfigurationChanged(e){const t=this._context.configuration.options,i=t.get(36);return this._cursorStyle=t.get(19),this._lineHeight=t.get(51),this._typicalHalfwidthCharacterWidth=i.typicalHalfwidthCharacterWidth,this._lineCursorWidth=Math.min(t.get(22),this._typicalHalfwidthCharacterWidth),s.Configuration.applyFontInfo(this._domNode,i),!0}onCursorPositionChanged(e){return this._position=e,!0}_prepareRender(e){let t="";if(this._cursorStyle===r.TextEditorCursorStyle.Line||this._cursorStyle===r.TextEditorCursorStyle.LineThin){const n=e.visibleRangeForPosition(this._position);if(!n||n.outsideRenderedLine)return null;let s +;if(this._cursorStyle===r.TextEditorCursorStyle.Line){if((s=i.computeScreenAwareSize(this._lineCursorWidth>0?this._lineCursorWidth:2))>2){const e=this._context.model.getLineContent(this._position.lineNumber),i=o.nextCharLength(e,this._position.column-1);t=e.substr(this._position.column-1,i)}}else s=i.computeScreenAwareSize(1);let a=n.left;s>=2&&a>=1&&(a-=1);const l=e.getVerticalOffsetForLineNumber(this._position.lineNumber)-e.bigNumbersDelta;return new c(l,a,s,this._lineHeight,t,"")}const n=this._context.model.getLineContent(this._position.lineNumber),s=o.nextCharLength(n,this._position.column-1),a=e.linesVisibleRangesForRange(new l.Range(this._position.lineNumber,this._position.column,this._position.lineNumber,this._position.column+s),!1);if(!a||0===a.length)return null;const d=a[0];if(d.outsideRenderedLine||0===d.ranges.length)return null;const h=d.ranges[0],u=h.width<1?this._typicalHalfwidthCharacterWidth:h.width;let g="";if(this._cursorStyle===r.TextEditorCursorStyle.Block){ +const e=this._context.model.getViewLineData(this._position.lineNumber);t=n.substr(this._position.column-1,s);const i=e.tokens.findTokenIndexAtOffset(this._position.column-1);g=e.tokens.getClassName(i)}let p=e.getVerticalOffsetForLineNumber(this._position.lineNumber)-e.bigNumbersDelta,m=this._lineHeight;return this._cursorStyle!==r.TextEditorCursorStyle.Underline&&this._cursorStyle!==r.TextEditorCursorStyle.UnderlineThin||(p+=this._lineHeight-2,m=2),new c(p,h.left,u,m,t,g)}prepareRender(e){this._renderData=this._prepareRender(e)}render(e){return this._renderData?(this._lastRenderedContent!==this._renderData.textContent&&(this._lastRenderedContent=this._renderData.textContent,this._domNode.domNode.textContent=this._lastRenderedContent),this._domNode.setClassName(`cursor ${d.MOUSE_CURSOR_TEXT_CSS_CLASS_NAME} ${this._renderData.textContentClassName}`),this._domNode.setDisplay("block"),this._domNode.setTop(this._renderData.top),this._domNode.setLeft(this._renderData.left), +this._domNode.setWidth(this._renderData.width),this._domNode.setLineHeight(this._renderData.height),this._domNode.setHeight(this._renderData.height),{domNode:this._domNode.domNode,position:this._position,contentLeft:this._renderData.left,height:this._renderData.height,width:2}):(this._domNode.setDisplay("none"),null)}}})),define(t[545],i([0,1,12,4,2,280,8,18,135,74,93,34]),(function(e,t,i,n,o,s,r,a,l,d,c,h){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LanguagesRegistry=void 0;const u=Object.prototype.hasOwnProperty;class g extends o.Disposable{constructor(e=!0,t=!1){super(),this._onDidChange=this._register(new n.Emitter),this.onDidChange=this._onDidChange.event,this._warnOnOverwrite=t,this._nextLanguageId2=1,this._languageIdToLanguage=[],this._languageToLanguageId=Object.create(null),this._languages={},this._mimeTypesMap={},this._nameMap={},this._lowercaseNameMap={},e&&(this._initializeFromRegistry(),this._register(l.ModesRegistry.onDidChangeLanguages(e=>this._initializeFromRegistry())))} +_initializeFromRegistry(){this._languages={},this._mimeTypesMap={},this._nameMap={},this._lowercaseNameMap={};const e=l.ModesRegistry.getLanguages();this._registerLanguages(e)}_registerLanguages(e){for(const t of e)this._registerLanguage(t);this._mimeTypesMap={},this._nameMap={},this._lowercaseNameMap={},Object.keys(this._languages).forEach(e=>{let t=this._languages[e];t.name&&(this._nameMap[t.name]=t.identifier),t.aliases.forEach(e=>{this._lowercaseNameMap[e.toLowerCase()]=t.identifier}),t.mimetypes.forEach(e=>{this._mimeTypesMap[e]=t.identifier})}),h.Registry.as(c.Extensions.Configuration).registerOverrideIdentifiers(l.ModesRegistry.getLanguages().map(e=>e.id)),this._onDidChange.fire()}_getLanguageId(e){if(this._languageToLanguageId[e])return this._languageToLanguageId[e];const t=this._nextLanguageId2++;return this._languageIdToLanguage[t]=e,this._languageToLanguageId[e]=t,t}_registerLanguage(e){const t=e.id;let i;if(u.call(this._languages,t))i=this._languages[t];else{const e=this._getLanguageId(t);i={ +identifier:new a.LanguageIdentifier(t,e),name:null,mimetypes:[],aliases:[],extensions:[],filenames:[],configurationFiles:[]},this._languages[t]=i}this._mergeLanguage(i,e)}_mergeLanguage(e,t){const n=t.id;let o=null;if(Array.isArray(t.mimetypes)&&t.mimetypes.length>0&&(e.mimetypes.push(...t.mimetypes),o=t.mimetypes[0]),o||(o=`text/x-${n}`,e.mimetypes.push(o)),Array.isArray(t.extensions)){t.configuration?e.extensions=t.extensions.concat(e.extensions):e.extensions=e.extensions.concat(t.extensions);for(let e of t.extensions)s.registerTextMime({id:n,mime:o,extension:e},this._warnOnOverwrite)}if(Array.isArray(t.filenames))for(let i of t.filenames)s.registerTextMime({id:n,mime:o,filename:i},this._warnOnOverwrite),e.filenames.push(i);if(Array.isArray(t.filenamePatterns))for(let e of t.filenamePatterns)s.registerTextMime({id:n,mime:o,filepattern:e},this._warnOnOverwrite);if("string"==typeof t.firstLine&&t.firstLine.length>0){let e=t.firstLine;"^"!==e.charAt(0)&&(e="^"+e);try{let t=new RegExp(e) +;r.regExpLeadsToEndlessLoop(t)||s.registerTextMime({id:n,mime:o,firstline:t},this._warnOnOverwrite)}catch(e){i.onUnexpectedError(e)}}e.aliases.push(n);let a=null;if(void 0!==t.aliases&&Array.isArray(t.aliases)&&(a=0===t.aliases.length?[null]:t.aliases),null!==a)for(const t of a)t&&0!==t.length&&e.aliases.push(t);let l=null!==a&&a.length>0;if(l&&null===a[0]);else{let t=(l?a[0]:null)||n;!l&&e.name||(e.name=t)}t.configuration&&e.configurationFiles.push(t.configuration)}isRegisteredMode(e){return!!u.call(this._mimeTypesMap,e)||u.call(this._languages,e)}getModeIdForLanguageNameLowercase(e){return u.call(this._lowercaseNameMap,e)?this._lowercaseNameMap[e].language:null}extractModeIds(e){return e?e.split(",").map(e=>e.trim()).map(e=>u.call(this._mimeTypesMap,e)?this._mimeTypesMap[e].language:e).filter(e=>u.call(this._languages,e)):[]}getLanguageIdentifier(e){if(e===d.NULL_MODE_ID||0===e)return d.NULL_LANGUAGE_IDENTIFIER;let t;if("string"==typeof e)t=e;else if(!(t=this._languageIdToLanguage[e]))return null +;return u.call(this._languages,t)?this._languages[t].identifier:null}getModeIdsFromFilepathOrFirstLine(e,t){if(!e&&!t)return[];let i=s.guessMimeTypes(e,t);return this.extractModeIds(i.join(","))}}t.LanguagesRegistry=g})),define(t[546],i([0,1,4,2,365,74,545,19]),(function(e,t,i,n,o,s,r,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ModeServiceImpl=void 0;class l extends n.Disposable{constructor(e,t){super(),this._onDidChange=this._register(new i.Emitter),this.onDidChange=this._onDidChange.event,this._selector=t,this.languageIdentifier=this._selector(),this._register(e(()=>this._evaluate()))}_evaluate(){let e=this._selector();e.id!==this.languageIdentifier.id&&(this.languageIdentifier=e,this._onDidChange.fire(this.languageIdentifier))}}t.ModeServiceImpl=class{constructor(e=!1){this._onDidCreateMode=new i.Emitter,this.onDidCreateMode=this._onDidCreateMode.event,this._onLanguagesMaybeChanged=new i.Emitter,this.onLanguagesMaybeChanged=this._onLanguagesMaybeChanged.event, +this._instantiatedModes={},this._registry=new r.LanguagesRegistry(!0,e),this._registry.onDidChange(()=>this._onLanguagesMaybeChanged.fire())}isRegisteredMode(e){return this._registry.isRegisteredMode(e)}getModeIdForLanguageName(e){return this._registry.getModeIdForLanguageNameLowercase(e)}getModeIdByFilepathOrFirstLine(e,t){const i=this._registry.getModeIdsFromFilepathOrFirstLine(e,t);return a.firstOrDefault(i,null)}getModeId(e){const t=this._registry.extractModeIds(e);return a.firstOrDefault(t,null)}getLanguageIdentifier(e){return this._registry.getLanguageIdentifier(e)}create(e){return new l(this.onLanguagesMaybeChanged,()=>{const t=this.getModeId(e);return this._createModeAndGetLanguageIdentifier(t)})}createByFilepathOrFirstLine(e,t){return new l(this.onLanguagesMaybeChanged,()=>{const i=this.getModeIdByFilepathOrFirstLine(e,t);return this._createModeAndGetLanguageIdentifier(i)})}_createModeAndGetLanguageIdentifier(e){const t=this.getLanguageIdentifier(e||"plaintext")||s.NULL_LANGUAGE_IDENTIFIER +;return this._getOrCreateMode(t.language),t}triggerMode(e){const t=this.getModeId(e);this._getOrCreateMode(t||"plaintext")}_getOrCreateMode(e){if(!this._instantiatedModes.hasOwnProperty(e)){let t=this.getLanguageIdentifier(e)||s.NULL_LANGUAGE_IDENTIFIER;this._instantiatedModes[e]=new o.FrankensteinMode(t),this._onDidCreateMode.fire(this._instantiatedModes[e])}return this._instantiatedModes[e]}}})),define(t[46],i([0,1,34,10,93]),(function(e,t,i,n,o){"use strict";function s(e,t,i,n){const o=t.split("."),s=o.pop();let r=e;for(let e=0;econsole.error(`Conflict in default settings: ${e}`))}return e}})),define(t[547],i([0,1,2,62,4,17,46]),(function(e,t,i,n,o,s,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AccessibilityService=void 0;let d=class extends i.Disposable{constructor(e,t){super(),this._contextKeyService=e,this._configurationService=t,this._accessibilitySupport=0,this._onDidChangeScreenReaderOptimized=new o.Emitter,this._accessibilityModeEnabledContext=n.CONTEXT_ACCESSIBILITY_MODE_ENABLED.bindTo(this._contextKeyService);const i=()=>this._accessibilityModeEnabledContext.set(this.isScreenReaderOptimized());this._register(this._configurationService.onDidChangeConfiguration(e=>{e.affectsConfiguration("editor.accessibilitySupport")&&(i(),this._onDidChangeScreenReaderOptimized.fire())})),i(),this.onDidChangeScreenReaderOptimized(()=>i())}get onDidChangeScreenReaderOptimized(){ +return this._onDidChangeScreenReaderOptimized.event}isScreenReaderOptimized(){const e=this._configurationService.getValue("editor.accessibilitySupport");return"on"===e||"auto"===e&&2===this._accessibilitySupport}getAccessibilitySupport(){return this._accessibilitySupport}};d=a([l(0,s.IContextKeyService),l(1,r.IConfigurationService)],d),t.AccessibilityService=d})),define(t[548],i([0,1,59,19,23,37,24,93,46]),(function(e,t,i,n,o,s,r,a,l){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ConfigurationChangeEvent=t.Configuration=t.DefaultConfigurationModel=t.ConfigurationModel=void 0;class d{constructor(e={},t=[],i=[]){this._contents=e,this._keys=t,this._overrides=i,this.isFrozen=!1}get contents(){return this.checkAndFreeze(this._contents)}get overrides(){return this.checkAndFreeze(this._overrides)}get keys(){return this.checkAndFreeze(this._keys)}isEmpty(){return 0===this._keys.length&&0===Object.keys(this._contents).length&&0===this._overrides.length}getValue(e){ +return e?l.getConfigurationValue(this.contents,e):this.contents}override(e){const t=this.getContentsForOverrideIdentifer(e);if(!t||"object"!=typeof t||!Object.keys(t).length)return this;let i={};for(const e of n.distinct([...Object.keys(this.contents),...Object.keys(t)])){let n=this.contents[e],o=t[e];o&&("object"==typeof n&&"object"==typeof o?(n=s.deepClone(n),this.mergeContents(n,o)):n=o),i[e]=n}return new d(i,this.keys,this.overrides)}merge(...e){const t=s.deepClone(this.contents),i=s.deepClone(this.overrides),o=[...this.keys];for(const r of e){this.mergeContents(t,r.contents);for(const e of r.overrides){const[t]=i.filter(t=>n.equals(t.identifiers,e.identifiers));t?this.mergeContents(t.contents,e.contents):i.push(s.deepClone(e))}for(const e of r.keys)-1===o.indexOf(e)&&o.push(e)}return new d(t,o,i)}freeze(){return this.isFrozen=!0,this}mergeContents(e,t){for(const i of Object.keys(t))i in e&&o.isObject(e[i])&&o.isObject(t[i])?this.mergeContents(e[i],t[i]):e[i]=s.deepClone(t[i])}checkAndFreeze(e){ +return this.isFrozen&&!Object.isFrozen(e)?s.deepFreeze(e):e}getContentsForOverrideIdentifer(e){for(const t of this.overrides)if(-1!==t.identifiers.indexOf(e))return t.contents;return null}toJSON(){return{contents:this.contents,overrides:this.overrides,keys:this.keys}}setValue(e,t){this.addKey(e),l.addToValueTree(this.contents,e,t,e=>{throw new Error(e)})}removeValue(e){this.removeKey(e)&&l.removeFromValueTree(this.contents,e)}addKey(e){let t=this.keys.length;for(let i=0;iconsole.error(`Conflict in default settings file: ${e}`))});super(e,t,i)}} +;class c{constructor(e,t,n=new d,o=new d,s=new i.ResourceMap,r=new d,a=new i.ResourceMap,l=!0){this._defaultConfiguration=e,this._localUserConfiguration=t,this._remoteUserConfiguration=n,this._workspaceConfiguration=o,this._folderConfigurations=s,this._memoryConfiguration=r,this._memoryConfigurationByResource=a,this._freeze=l,this._workspaceConsolidatedConfiguration=null,this._foldersConsolidatedConfigurations=new i.ResourceMap,this._userConfiguration=null}getValue(e,t,i){return this.getConsolidateConfigurationModel(t,i).getValue(e)}updateValue(e,t,i={}){let n;i.resource?(n=this._memoryConfigurationByResource.get(i.resource))||(n=new d,this._memoryConfigurationByResource.set(i.resource,n)):n=this._memoryConfiguration,void 0===t?n.removeValue(e):n.setValue(e,t),i.resource||(this._workspaceConsolidatedConfiguration=null)}get userConfiguration(){ +return this._userConfiguration||(this._userConfiguration=this._remoteUserConfiguration.isEmpty()?this._localUserConfiguration:this._localUserConfiguration.merge(this._remoteUserConfiguration),this._freeze&&this._userConfiguration.freeze()),this._userConfiguration}getConsolidateConfigurationModel(e,t){let i=this.getConsolidatedConfigurationModelForResource(e,t);return e.overrideIdentifier?i.override(e.overrideIdentifier):i}getConsolidatedConfigurationModelForResource({resource:e},t){let i=this.getWorkspaceConsolidatedConfiguration();if(t&&e){const n=t.getFolder(e);n&&(i=this.getFolderConsolidatedConfiguration(n.uri)||i);const o=this._memoryConfigurationByResource.get(e);o&&(i=i.merge(o))}return i}getWorkspaceConsolidatedConfiguration(){return this._workspaceConsolidatedConfiguration||(this._workspaceConsolidatedConfiguration=this._defaultConfiguration.merge(this.userConfiguration,this._workspaceConfiguration,this._memoryConfiguration), +this._freeze&&(this._workspaceConfiguration=this._workspaceConfiguration.freeze())),this._workspaceConsolidatedConfiguration}getFolderConsolidatedConfiguration(e){let t=this._foldersConsolidatedConfigurations.get(e);if(!t){const i=this.getWorkspaceConsolidatedConfiguration(),n=this._folderConfigurations.get(e);n?(t=i.merge(n),this._freeze&&(t=t.freeze()),this._foldersConsolidatedConfigurations.set(e,t)):t=i}return t}toData(){return{defaults:{contents:this._defaultConfiguration.contents,overrides:this._defaultConfiguration.overrides,keys:this._defaultConfiguration.keys},user:{contents:this.userConfiguration.contents,overrides:this.userConfiguration.overrides,keys:this.userConfiguration.keys},workspace:{contents:this._workspaceConfiguration.contents,overrides:this._workspaceConfiguration.overrides,keys:this._workspaceConfiguration.keys},folders:[...this._folderConfigurations.keys()].reduce((e,t)=>{const{contents:i,overrides:n,keys:o}=this._folderConfigurations.get(t);return e.push([t,{contents:i,overrides:n, +keys:o}]),e},[])}}static parse(e){const t=this.parseConfigurationModel(e.defaults),n=this.parseConfigurationModel(e.user),o=this.parseConfigurationModel(e.workspace),s=e.folders.reduce((e,t)=>(e.set(r.URI.revive(t[0]),this.parseConfigurationModel(t[1])),e),new i.ResourceMap);return new c(t,n,new d,o,s,new d,new i.ResourceMap,!1)}static parseConfigurationModel(e){return new d(e.contents,e.keys,e.overrides).freeze()}}t.Configuration=c;t.ConfigurationChangeEvent=class{constructor(e,t,i,n){this.change=e,this.previous=t,this.currentConfiguraiton=i,this.currentWorkspace=n,this._previousConfiguration=void 0;const o=new Set;e.keys.forEach(e=>o.add(e)),e.overrides.forEach(([,e])=>e.forEach(e=>o.add(e))),this.affectedKeys=[...o.values()];const s=new d;this.affectedKeys.forEach(e=>s.setValue(e,{})),this.affectedKeysTree=s.contents}get previousConfiguration(){return!this._previousConfiguration&&this.previous&&(this._previousConfiguration=c.parse(this.previous.data)),this._previousConfiguration}affectsConfiguration(e,t){ +var i;if(this.doesAffectedKeysTreeContains(this.affectedKeysTree,e)){if(t){const n=this.previousConfiguration?this.previousConfiguration.getValue(e,t,null===(i=this.previous)||void 0===i?void 0:i.workspace):void 0,o=this.currentConfiguraiton.getValue(e,t,this.currentWorkspace);return!s.equals(n,o)}return!0}return!1}doesAffectedKeysTreeContains(e,t){let i,n=l.toValuesTree({[t]:!0},()=>{});for(;"object"==typeof n&&(i=Object.keys(n)[0]);){if(!(e=e[i]))return!1;n=n[i]}return!0}}})),define(t[549],i([0,1,4,2,28,46,17,239]),(function(e,t,i,n,o,s,r,d){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ContextKeyService=t.AbstractContextKeyService=t.Context=void 0;const c="data-keybinding-context";class h{constructor(e,t){this._id=e,this._parent=t,this._value=Object.create(null),this._value._contextId=e}setValue(e,t){return this._value[e]!==t&&(this._value[e]=t,!0)}removeValue(e){return e in this._value&&(delete this._value[e],!0)}getValue(e){const t=this._value[e] +;return void 0===t&&this._parent?this._parent.getValue(e):t}}t.Context=h;class u extends h{constructor(){super(-1,null)}setValue(e,t){return!1}removeValue(e){return!1}getValue(e){}}u.INSTANCE=new u;class g extends h{constructor(e,t,i){super(e,null),this._configurationService=t,this._values=new Map,this._listener=this._configurationService.onDidChangeConfiguration(e=>{if(6===e.source){const e=Array.from(this._values.keys());this._values.clear(),i.fire(new f(e))}else{const t=[];for(const i of e.affectedKeys){const e=`config.${i}`;this._values.has(e)&&(this._values.delete(e),t.push(e))}i.fire(new f(t))}})}dispose(){this._listener.dispose()}getValue(e){if(0!==e.indexOf(g._keyPrefix))return super.getValue(e);if(this._values.has(e))return this._values.get(e);const t=e.substr(g._keyPrefix.length),i=this._configurationService.getValue(t);let n=void 0;switch(typeof i){case"number":case"boolean":case"string":n=i;break;default:Array.isArray(i)&&(n=JSON.stringify(i))}return this._values.set(e,n),n}setValue(e,t){ +return super.setValue(e,t)}removeValue(e){return super.removeValue(e)}}g._keyPrefix="config.";class p{constructor(e,t,i){this._service=e,this._key=t,this._defaultValue=i,this.reset()}set(e){this._service.setContext(this._key,e)}reset(){void 0===this._defaultValue?this._service.removeContext(this._key):this._service.setContext(this._key,this._defaultValue)}get(){return this._service.getContextKeyValue(this._key)}}class m{constructor(e){this.key=e}affectsSome(e){return e.has(this.key)}}class f{constructor(e){this.keys=e}affectsSome(e){for(const t of this.keys)if(e.has(t))return!0;return!1}}class _{constructor(e){this.events=e}affectsSome(e){for(const t of this.events)if(t.affectsSome(e))return!0;return!1}}class v{constructor(e){this._onDidChangeContext=new i.PauseableEmitter({merge:e=>new _(e)}),this._isDisposed=!1,this._myContextId=e}createKey(e,t){if(this._isDisposed)throw new Error("AbstractContextKeyService has been disposed");return new p(this,e,t)}get onDidChangeContext(){ +return this._onDidChangeContext.event}bufferChangeEvents(e){this._onDidChangeContext.pause();try{e()}finally{this._onDidChangeContext.resume()}}createScoped(e){if(this._isDisposed)throw new Error("AbstractContextKeyService has been disposed");return new b(this,e)}contextMatchesRules(e){if(this._isDisposed)throw new Error("AbstractContextKeyService has been disposed");const t=this.getContextValuesContainer(this._myContextId);return d.KeybindingResolver.contextMatchesRules(t,e)}getContextKeyValue(e){if(!this._isDisposed)return this.getContextValuesContainer(this._myContextId).getValue(e)}setContext(e,t){if(this._isDisposed)return;const i=this.getContextValuesContainer(this._myContextId);i&&i.setValue(e,t)&&this._onDidChangeContext.fire(new m(e))}removeContext(e){this._isDisposed||this.getContextValuesContainer(this._myContextId).removeValue(e)&&this._onDidChangeContext.fire(new m(e))}getContext(e){return this._isDisposed?u.INSTANCE:this.getContextValuesContainer(function(e){for(;e;){if(e.hasAttribute(c)){ +const t=e.getAttribute(c);return t?parseInt(t,10):NaN}e=e.parentElement}return 0}(e))}}t.AbstractContextKeyService=v;let C=class extends v{constructor(e){super(0),this._contexts=new Map,this._toDispose=new n.DisposableStore,this._lastContextId=0;const t=new g(this._myContextId,e,this._onDidChangeContext);this._contexts.set(this._myContextId,t),this._toDispose.add(t)}dispose(){this._isDisposed=!0,this._toDispose.dispose()}getContextValuesContainer(e){return this._isDisposed?u.INSTANCE:this._contexts.get(e)||u.INSTANCE}createChildContext(e=this._myContextId){if(this._isDisposed)throw new Error("ContextKeyService has been disposed");let t=++this._lastContextId;return this._contexts.set(t,new h(t,this.getContextValuesContainer(e))),t}disposeContext(e){this._isDisposed||this._contexts.delete(e)}};C=a([l(0,s.IConfigurationService)],C),t.ContextKeyService=C;class b extends v{constructor(e,t){super(e.createChildContext()),this._parent=e,t&&(this._domNode=t,this._domNode.setAttribute(c,String(this._myContextId)))} +dispose(){this._isDisposed=!0,this._parent.disposeContext(this._myContextId),this._domNode&&(this._domNode.removeAttribute(c),this._domNode=void 0)}get onDidChangeContext(){return i.Event.any(this._parent.onDidChangeContext,this._onDidChangeContext.event)}getContextValuesContainer(e){return this._isDisposed?u.INSTANCE:this._parent.getContextValuesContainer(e)}createChildContext(e=this._myContextId){if(this._isDisposed)throw new Error("ScopedContextKeyService has been disposed");return this._parent.createChildContext(e)}disposeContext(e){this._isDisposed||this._parent.disposeContext(e)}}o.CommandsRegistry.registerCommand(r.SET_CONTEXT_COMMAND_ID,(function(e,t,i){e.get(r.IContextKeyService).createKey(String(t),i)}))})),define(t[83],i([0,1,39,16,28,34]),(function(e,t,i,n,o,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Extensions=t.KeybindingsRegistry=void 0;class r{constructor(){this._coreKeybindings=[],this._extensionKeybindings=[],this._cachedMergedKeybindings=null} +static bindToCurrentPlatform(e){if(1===n.OS){if(e&&e.win)return e.win}else if(2===n.OS){if(e&&e.mac)return e.mac}else if(e&&e.linux)return e.linux;return e}registerKeybindingRule(e){const t=r.bindToCurrentPlatform(e);if(t&&t.primary){const o=i.createKeybinding(t.primary,n.OS);o&&this._registerDefaultKeybinding(o,e.id,e.args,e.weight,0,e.when)}if(t&&Array.isArray(t.secondary))for(let o=0,s=t.secondary.length;o=21&&e<=30||(e>=31&&e<=56||(80===e||81===e||82===e||83===e||84===e||85===e||86===e||110===e||111===e||87===e||88===e||89===e||90===e||91===e||92===e))}_assertNoCtrlAlt(e,t){ +e.ctrlKey&&e.altKey&&!e.metaKey&&r._mightProduceChar(e.keyCode)&&console.warn("Ctrl+Alt+ keybindings should not be used by default under Windows. Offender: ",e," for ",t)}_registerDefaultKeybinding(e,t,i,o,s,r){1===n.OS&&this._assertNoCtrlAlt(e.parts[0],t),this._coreKeybindings.push({keybinding:e,command:t,commandArgs:i,when:r,weight1:o,weight2:s,extensionId:null}),this._cachedMergedKeybindings=null}getDefaultKeybindings(){return this._cachedMergedKeybindings||(this._cachedMergedKeybindings=[].concat(this._coreKeybindings).concat(this._extensionKeybindings),this._cachedMergedKeybindings.sort(a)),this._cachedMergedKeybindings.slice(0)}}function a(e,t){return e.weight1!==t.weight1?e.weight1-t.weight1:e.commandt.command?1:e.weight2-t.weight2}t.KeybindingsRegistry=new r,t.Extensions={EditorModes:"platform.keybindingsRegistry"},s.Registry.add(t.Extensions.EditorModes,t.KeybindingsRegistry)})),define(t[550],i([0,1,17,413,83,414]),(function(e,t,i,n,o,s){"use strict";function r(e,t){ +return e.getContext(document.activeElement).getValue(t)}function d(e,n){const o=function(e,t){return e.createScoped(t.target)}(e,n);return function(e,t,n){new i.RawContextKey(n,t).bindTo(e)}(o,n,t.HistoryNavigationWidgetContext),{scopedContextKeyService:o,historyNavigationEnablement:new i.RawContextKey(t.HistoryNavigationEnablementContext,!0).bindTo(o)}}Object.defineProperty(t,"__esModule",{value:!0}),t.ContextScopedReplaceInput=t.ContextScopedFindInput=t.createAndBindHistoryNavigationWidgetScopedContextKeyService=t.HistoryNavigationEnablementContext=t.HistoryNavigationWidgetContext=void 0,t.HistoryNavigationWidgetContext="historyNavigationWidget",t.HistoryNavigationEnablementContext="historyNavigationEnabled",t.createAndBindHistoryNavigationWidgetScopedContextKeyService=d;let c=class extends n.FindInput{constructor(e,t,i,n,o=!1){super(e,t,o,i),this._register(d(n,{target:this.inputBox.element,historyNavigator:this.inputBox}).scopedContextKeyService)}};c=a([l(3,i.IContextKeyService)],c), +t.ContextScopedFindInput=c;let h=class extends s.ReplaceInput{constructor(e,t,i,n,o=!1){super(e,t,o,i),this._register(d(n,{target:this.inputBox.element,historyNavigator:this.inputBox}).scopedContextKeyService)}};h=a([l(3,i.IContextKeyService)],h),t.ContextScopedReplaceInput=h,o.KeybindingsRegistry.registerCommandAndKeybindingRule({id:"history.showPrevious",weight:200,when:i.ContextKeyExpr.and(i.ContextKeyExpr.has(t.HistoryNavigationWidgetContext),i.ContextKeyExpr.equals(t.HistoryNavigationEnablementContext,!0)),primary:16,secondary:[528],handler:(e,n)=>{const o=r(e.get(i.IContextKeyService),t.HistoryNavigationWidgetContext);if(o){o.historyNavigator.showPreviousValue()}}}),o.KeybindingsRegistry.registerCommandAndKeybindingRule({id:"history.showNext",weight:200,when:i.ContextKeyExpr.and(i.ContextKeyExpr.has(t.HistoryNavigationWidgetContext),i.ContextKeyExpr.equals(t.HistoryNavigationEnablementContext,!0)),primary:18,secondary:[530],handler:(e,n)=>{ +const o=r(e.get(i.IContextKeyService),t.HistoryNavigationWidgetContext);if(o){o.historyNavigator.showNextValue()}}})})),define(t[94],i([0,1,34,19,2]),(function(e,t,i,n,o){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.QuickAccessRegistry=t.Extensions=t.DefaultQuickAccessFilterValue=void 0,function(e){e[e.PRESERVE=0]="PRESERVE",e[e.LAST=1]="LAST"}(t.DefaultQuickAccessFilterValue||(t.DefaultQuickAccessFilterValue={})),t.Extensions={Quickaccess:"workbench.contributions.quickaccess"};class s{constructor(){this.providers=[],this.defaultProvider=void 0}registerQuickAccessProvider(e){return 0===e.prefix.length?this.defaultProvider=e:this.providers.push(e),this.providers.sort((e,t)=>t.prefix.length-e.prefix.length),o.toDisposable(()=>{this.providers.splice(this.providers.indexOf(e),1),this.defaultProvider===e&&(this.defaultProvider=void 0)})}getQuickAccessProviders(){return n.coalesce([this.defaultProvider,...this.providers])}getQuickAccessProvider(e){ +return e&&this.providers.find(t=>e.startsWith(t.prefix))||void 0||this.defaultProvider}}t.QuickAccessRegistry=s,i.Registry.add(t.Extensions.Quickaccess,new s)})),define(t[551],i([0,1,75,94,34,502,2]),(function(e,t,i,n,o,s,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.HelpQuickAccessProvider=void 0;let d=class e{constructor(e){this.quickInputService=e,this.registry=o.Registry.as(n.Extensions.Quickaccess)}provide(t){const i=new r.DisposableStore;i.add(t.onDidAccept(()=>{const[e]=t.selectedItems;e&&this.quickInputService.quickAccess.show(e.prefix,{preserveValue:!0})})),i.add(t.onDidChangeValue(t=>{const i=this.registry.getQuickAccessProvider(t.substr(e.PREFIX.length));i&&i.prefix&&i.prefix!==e.PREFIX&&this.quickInputService.quickAccess.show(i.prefix,{preserveValue:!0})}));const{editorProviders:n,globalProviders:o}=this.getQuickAccessProviders();return t.items=0===n.length||0===o.length?[...0===n.length?o:n]:[{label:s.localize(0,null),type:"separator"},...o,{label:s.localize(1,null), +type:"separator"},...n],i}getQuickAccessProviders(){const t=[],i=[];for(const n of this.registry.getQuickAccessProviders().sort((e,t)=>e.prefix.localeCompare(t.prefix)))if(n.prefix!==e.PREFIX)for(const e of n.helpEntries){const o=e.prefix||n.prefix,r=o||"…";(e.needsEditor?i:t).push({prefix:o,label:r,ariaLabel:s.localize(2,null,r,e.description),description:e.description})}return{editorProviders:i,globalProviders:t}}};d.PREFIX="?",d=a([l(0,i.IQuickInputService)],d),t.HelpQuickAccessProvider=d})),define(t[552],i([0,1,34,94,61,551]),(function(e,t,i,n,o,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),i.Registry.as(n.Extensions.Quickaccess).registerQuickAccessProvider({ctor:s.HelpQuickAccessProvider,prefix:"",helpEntries:[{description:o.QuickHelpNLS.helpQuickAccessActionLabel,needsEditor:!0}]})})),define(t[553],i([0,1,75,2,94,34,25,10,85]),(function(e,t,i,n,o,s,r,d,c){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.QuickAccessController=void 0;let h=class extends n.Disposable{ +constructor(e,t){super(),this.quickInputService=e,this.instantiationService=t,this.registry=s.Registry.as(o.Extensions.Quickaccess),this.mapProviderToDescriptor=new Map,this.lastAcceptedPickerValues=new Map,this.visibleQuickAccess=void 0}show(e="",t){var s;const[r,a]=this.getOrInstantiateProvider(e),l=this.visibleQuickAccess,d=null==l?void 0:l.descriptor;if(l&&a&&d===a)return e===a.prefix||(null==t?void 0:t.preserveValue)||(l.picker.value=e),void this.adjustValueSelection(l.picker,a,t);if(a&&!(null==t?void 0:t.preserveValue)){let t=void 0;if(l&&d&&d!==a){const e=l.value.substr(d.prefix.length);e&&(t=`${a.prefix}${e}`)}if(!t){const e=null==r?void 0:r.defaultFilterValue;e===o.DefaultQuickAccessFilterValue.LAST?t=this.lastAcceptedPickerValues.get(a):"string"==typeof e&&(t=`${a.prefix}${e}`)}"string"==typeof t&&(e=t)}const c=new n.DisposableStore,h=c.add(this.quickInputService.createQuickPick());h.value=e,this.adjustValueSelection(h,a,t),h.placeholder=null==a?void 0:a.placeholder, +h.quickNavigate=null==t?void 0:t.quickNavigateConfiguration,h.hideInput=!!h.quickNavigate&&!l,("number"==typeof(null==t?void 0:t.itemActivation)||(null==t?void 0:t.quickNavigateConfiguration))&&(h.itemActivation=null!==(s=null==t?void 0:t.itemActivation)&&void 0!==s?s:i.ItemActivation.SECOND),h.contextKey=null==a?void 0:a.contextKey,h.filterValue=e=>e.substring(a?a.prefix.length:0),(null==a?void 0:a.placeholder)&&(h.ariaLabel=null==a?void 0:a.placeholder);const u=this.registerPickerListeners(h,r,a,e,c);r&&c.add(r.provide(h,u)),h.show()}adjustValueSelection(e,t,i){var n;let o;o=(null==i?void 0:i.preserveValue)?[e.value.length,e.value.length]:[null!==(n=null==t?void 0:t.prefix.length)&&void 0!==n?n:0,e.value.length],e.valueSelection=o}registerPickerListeners(e,t,i,o,s){const a=this.visibleQuickAccess={picker:e,descriptor:i,value:o};s.add(n.toDisposable(()=>{a===this.visibleQuickAccess&&(this.visibleQuickAccess=void 0)})),s.add(e.onDidChangeValue(e=>{const[i]=this.getOrInstantiateProvider(e);i!==t?this.show(e,{ +preserveValue:!0}):a.value=e})),i&&s.add(e.onDidAccept(()=>{this.lastAcceptedPickerValues.set(i,e.value)}));const l=s.add(new r.CancellationTokenSource);return c.once(e.onDidHide)(()=>{0===e.selectedItems.length&&l.cancel(),s.dispose()}),l.token}getOrInstantiateProvider(e){const t=this.registry.getQuickAccessProvider(e);if(!t)return[void 0,void 0];let i=this.mapProviderToDescriptor.get(t);return i||(i=this.instantiationService.createInstance(t.ctor),this.mapProviderToDescriptor.set(t,i)),[i,t]}};h=a([l(0,i.IQuickInputService),l(1,d.IInstantiationService)],h),t.QuickAccessController=h})),define(t[76],i([0,1,10,4,2,23]),(function(e,t,i,n,o,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.InMemoryStorageService=t.WillSaveStateReason=t.IStorageService=void 0,t.IStorageService=i.createDecorator("storageService"),function(e){e[e.NONE=0]="NONE",e[e.SHUTDOWN=1]="SHUTDOWN"}(t.WillSaveStateReason||(t.WillSaveStateReason={}));class r extends o.Disposable{constructor(){super(...arguments), +this._onDidChangeStorage=this._register(new n.Emitter),this._onWillSaveState=this._register(new n.Emitter),this.onWillSaveState=this._onWillSaveState.event,this.globalCache=new Map,this.workspaceCache=new Map}getCache(e){return 0===e?this.globalCache:this.workspaceCache}get(e,t,i){const n=this.getCache(t).get(e);return s.isUndefinedOrNull(n)?i:n}getBoolean(e,t,i){const n=this.getCache(t).get(e);return s.isUndefinedOrNull(n)?i:"true"===n}getNumber(e,t,i){const n=this.getCache(t).get(e);return s.isUndefinedOrNull(n)?i:parseInt(n,10)}store(e,t,i){if(s.isUndefinedOrNull(t))return this.remove(e,i);const n=String(t);return this.getCache(i).get(e)===n?Promise.resolve():(this.getCache(i).set(e,n),this._onDidChangeStorage.fire({scope:i,key:e}),Promise.resolve())}remove(e,t){return this.getCache(t).delete(e)?(this._onDidChangeStorage.fire({scope:t,key:e}),Promise.resolve()):Promise.resolve()}}t.InMemoryStorageService=r})),define(t[554],i([0,1,59,76,18,2,15,10,46,71,73]),(function(e,t,i,n,o,s,r,d,c,h,u){"use strict" +;Object.defineProperty(t,"__esModule",{value:!0}),t.ISuggestMemoryService=t.SuggestMemoryService=t.PrefixMemory=t.LRUMemory=t.NoMemory=t.Memory=void 0;class g{constructor(e){this.name=e}select(e,t,i){if(0===i.length)return 0;let n=i[0].score[0];for(let e=0;ea&&o.type===i[t].completion.kind&&o.insertText===i[t].completion.insertText&&(a=o.touch,r=t),i[t].completion.preselect&&-1===s)return t}return-1!==r?r:-1!==s?s:0}toJSON(){return this._cache.toJSON()}fromJSON(e){this._cache.clear();for(const[t,i]of e)i.touch=0,i.type="number"==typeof i.type?i.type:o.completionKindFromString(i.type),this._cache.set(t,i);this._seq=this._cache.size}}t.LRUMemory=m;class f extends g{constructor(){super("recentlyUsedByPrefix"),this._trie=i.TernarySearchTree.forStrings(),this._seq=0}memorize(e,t,i){const{word:n}=e.getWordUntilPosition(t),o=`${e.getLanguageIdentifier().language}/${n}`;this._trie.set(o,{type:i.completion.kind,insertText:i.completion.insertText,touch:this._seq++})}select(e,t,i){let{word:n}=e.getWordUntilPosition(t);if(!n)return super.select(e,t,i);let o=`${e.getLanguageIdentifier().language}/${n}`,s=this._trie.get(o);if(s||(s=this._trie.findSubstr(o)), +s)for(let e=0;ee.push([i,t])),e.sort((e,t)=>-(e[1].touch-t[1].touch)).forEach((e,t)=>e[1].touch=t),e.slice(0,200)}fromJSON(e){if(this._trie.clear(),e.length>0){this._seq=e[0][1].touch+1;for(const[t,i]of e)i.type="number"==typeof i.type?i.type:o.completionKindFromString(i.type),this._trie.set(t,i)}}}t.PrefixMemory=f;let _=class e{constructor(e,t,i){this._storageService=e,this._modeService=t,this._configService=i,this._disposables=new s.DisposableStore,this._persistSoon=new r.RunOnceScheduler(()=>this._saveState(),500),this._disposables.add(e.onWillSaveState(e=>{e.reason===n.WillSaveStateReason.SHUTDOWN&&this._saveState()}))}dispose(){this._disposables.dispose(),this._persistSoon.dispose()}memorize(e,t,i){this._withStrategy(e,t).memorize(e,t,i),this._persistSoon.schedule()}select(e,t,i){return this._withStrategy(e,t).select(e,t,i)} +_withStrategy(t,i){var n,o;const s=this._configService.getValue("editor.suggestSelection",{overrideIdentifier:null===(n=this._modeService.getLanguageIdentifier(t.getLanguageIdAtPosition(i.lineNumber,i.column)))||void 0===n?void 0:n.language,resource:t.uri});if((null===(o=this._strategy)||void 0===o?void 0:o.name)!==s){this._saveState();const t=e._strategyCtors.get(s)||p;this._strategy=new t;try{const t=this._configService.getValue("editor.suggest.shareSuggestSelections")?0:1,i=this._storageService.get(`${e._storagePrefix}/${s}`,t);i&&this._strategy.fromJSON(JSON.parse(i))}catch(e){}}return this._strategy}_saveState(){if(this._strategy){const t=this._configService.getValue("editor.suggest.shareSuggestSelections")?0:1,i=JSON.stringify(this._strategy);this._storageService.store(`${e._storagePrefix}/${this._strategy.name}`,i,t)}}};_._strategyCtors=new Map([["recentlyUsedByPrefix",f],["recentlyUsed",m],["first",p]]),_._storagePrefix="suggest/memories", +_=a([l(0,n.IStorageService),l(1,u.IModeService),l(2,c.IConfigurationService)],_),t.SuggestMemoryService=_,t.ISuggestMemoryService=d.createDecorator("ISuggestMemories"),h.registerSingleton(t.ISuggestMemoryService,_,!0)})),define(t[84],i([0,1,10]),(function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ITelemetryService=void 0,t.ITelemetryService=i.createDecorator("telemetryService")})),define(t[11],i([0,1,432,12,24,27,13,44,92,33,28,17,83,34,84,23]),(function(e,t,i,n,o,s,r,a,l,d,c,h,u,g,p,m){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SelectAllCommand=t.RedoCommand=t.UndoCommand=t.EditorExtensionsRegistry=t.registerEditorContribution=t.registerInstantiatedEditorAction=t.registerMultiEditorAction=t.registerEditorAction=t.registerEditorCommand=t.registerModelCommand=t.registerModelAndPositionCommand=t.registerDefaultLanguageCommand=t.registerLanguageCommand=t.MultiEditorAction=t.EditorAction=t.EditorCommand=t.ProxyCommand=t.MultiCommand=t.Command=void 0;class f{ +constructor(e){this.id=e.id,this.precondition=e.precondition,this._kbOpts=e.kbOpts,this._menuOpts=e.menuOpts,this._description=e.description}register(){if(Array.isArray(this._menuOpts)?this._menuOpts.forEach(this._registerMenuItem,this):this._menuOpts&&this._registerMenuItem(this._menuOpts),this._kbOpts){let e=this._kbOpts.kbExpr;this.precondition&&(e=e?h.ContextKeyExpr.and(e,this.precondition):this.precondition),u.KeybindingsRegistry.registerCommandAndKeybindingRule({id:this.id,handler:(e,t)=>this.runCommand(e,t),weight:this._kbOpts.weight,args:this._kbOpts.args,when:e,primary:this._kbOpts.primary,secondary:this._kbOpts.secondary,win:this._kbOpts.win,linux:this._kbOpts.linux,mac:this._kbOpts.mac,description:this._description})}else c.CommandsRegistry.registerCommand({id:this.id,handler:(e,t)=>this.runCommand(e,t),description:this._description})}_registerMenuItem(e){d.MenuRegistry.appendMenuItem(e.menuId,{group:e.group,command:{id:this.id,title:e.title,icon:e.icon},when:e.when,order:e.order})}}t.Command=f +;class _ extends f{constructor(){super(...arguments),this._implementations=[]}addImplementation(e,t){return this._implementations.push([e,t]),this._implementations.sort((e,t)=>t[0]-e[0]),{dispose:()=>{for(let e=0;e{if(e.get(h.IContextKeyService).contextMatchesRules(m.withNullAsUndefined(this.precondition)))return this.runEditorCommand(e,n,t)})}}t.EditorCommand=C +;class b extends C{constructor(e){super(b.convertOptions(e)),this.label=e.label,this.alias=e.alias}static convertOptions(e){let t;function i(t){return t.menuId||(t.menuId=d.MenuId.EditorContext),t.title||(t.title=e.label),t.when=h.ContextKeyExpr.and(e.precondition,t.when),t}return t=Array.isArray(e.menuOpts)?e.menuOpts:e.menuOpts?[e.menuOpts]:[],Array.isArray(e.contextMenuOpts)?t.push(...e.contextMenuOpts.map(i)):e.contextMenuOpts&&t.push(i(e.contextMenuOpts)),e.menuOpts=t,e}runEditorCommand(e,t,i){return this.reportTelemetry(e,t),this.run(e,t,i||{})}reportTelemetry(e,t){e.get(p.ITelemetryService).publicLog2("editorActionInvoked",{name:this.label,id:this.id})}}t.EditorAction=b;function S(e,t){c.CommandsRegistry.registerCommand(e,(e,i)=>t(e,i||{}))}t.MultiEditorAction=class extends b{constructor(e){super(e),this._implementations=[]}runEditorCommand(e,t,i){this.reportTelemetry(e,t);for(const t of this._implementations)if(t[1](e,i))return;return this.run(e,t,i||{})}},t.registerLanguageCommand=S, +t.registerDefaultLanguageCommand=function(e,t){S(e,(function(e,i){const{resource:s,position:d}=i;if(!(s instanceof o.URI))throw n.illegalArgument("resource");if(!r.Position.isIPosition(d))throw n.illegalArgument("position");const c=e.get(a.IModelService).getModel(s);if(c){const e=r.Position.lift(d);return t(c,e,i)}return e.get(l.ITextModelService).createModelReference(s).then(e=>new Promise((n,o)=>{try{n(t(e.object.textEditorModel,r.Position.lift(d),i))}catch(e){o(e)}}).finally(()=>{e.dispose()}))}))},t.registerModelAndPositionCommand=function(e,t){c.CommandsRegistry.registerCommand(e,(function(e,...i){const[n,s]=i;m.assertType(o.URI.isUri(n)),m.assertType(r.Position.isIPosition(s));const d=e.get(a.IModelService).getModel(n);if(d){const e=r.Position.lift(s);return t(d,e,...i.slice(2))}return e.get(l.ITextModelService).createModelReference(n).then(e=>new Promise((n,o)=>{try{n(t(e.object.textEditorModel,r.Position.lift(s),i.slice(2)))}catch(e){o(e)}}).finally(()=>{e.dispose()}))}))}, +t.registerModelCommand=function(e,t){c.CommandsRegistry.registerCommand(e,(function(e,...i){const[n]=i;m.assertType(o.URI.isUri(n));const s=e.get(a.IModelService).getModel(n);return s?t(s,...i.slice(1)):e.get(l.ITextModelService).createModelReference(n).then(e=>new Promise((n,o)=>{try{n(t(e.object.textEditorModel,i.slice(1)))}catch(e){o(e)}}).finally(()=>{e.dispose()}))}))},t.registerEditorCommand=function(e){return w.INSTANCE.registerEditorCommand(e),e},t.registerEditorAction=function(e){const t=new e;return w.INSTANCE.registerEditorAction(t),t},t.registerMultiEditorAction=function(e){return w.INSTANCE.registerEditorAction(e),e},t.registerInstantiatedEditorAction=function(e){w.INSTANCE.registerEditorAction(e)},t.registerEditorContribution=function(e,t){w.INSTANCE.registerEditorContribution(e,t)},function(e){e.getEditorCommand=function(e){return w.INSTANCE.getEditorCommand(e)},e.getEditorActions=function(){return w.INSTANCE.getEditorActions()},e.getEditorContributions=function(){ +return w.INSTANCE.getEditorContributions()},e.getSomeEditorContributions=function(e){return w.INSTANCE.getEditorContributions().filter(t=>e.indexOf(t.id)>=0)},e.getDiffEditorContributions=function(){return w.INSTANCE.getDiffEditorContributions()}}(t.EditorExtensionsRegistry||(t.EditorExtensionsRegistry={}));class w{constructor(){this.editorContributions=[],this.diffEditorContributions=[],this.editorActions=[],this.editorCommands=Object.create(null)}registerEditorContribution(e,t){this.editorContributions.push({id:e,ctor:t})}getEditorContributions(){return this.editorContributions.slice(0)}getDiffEditorContributions(){return this.diffEditorContributions.slice(0)}registerEditorAction(e){e.register(),this.editorActions.push(e)}getEditorActions(){return this.editorActions.slice(0)}registerEditorCommand(e){e.register(),this.editorCommands[e.id]=e}getEditorCommand(e){return this.editorCommands[e]||null}}function y(e){return e.register(),e}w.INSTANCE=new w,g.Registry.add("editor.contributions",w.INSTANCE), +t.UndoCommand=y(new _({id:"undo",precondition:void 0,kbOpts:{weight:0,primary:2104},menuOpts:[{menuId:d.MenuId.MenubarEditMenu,group:"1_do",title:i.localize(0,null),order:1},{menuId:d.MenuId.CommandPalette,group:"",title:i.localize(1,null),order:1}]})),y(new v(t.UndoCommand,{id:"default:undo",precondition:void 0})),t.RedoCommand=y(new _({id:"redo",precondition:void 0,kbOpts:{weight:0,primary:2103,secondary:[3128],mac:{primary:3128}},menuOpts:[{menuId:d.MenuId.MenubarEditMenu,group:"1_do",title:i.localize(2,null),order:2},{menuId:d.MenuId.CommandPalette,group:"",title:i.localize(3,null),order:1}]})),y(new v(t.RedoCommand,{id:"default:redo",precondition:void 0})),t.SelectAllCommand=y(new _({id:"editor.action.selectAll",precondition:void 0,kbOpts:{weight:0,kbExpr:null,primary:2079},menuOpts:[{menuId:d.MenuId.MenubarSelectionMenu,group:"1_basic",title:i.localize(4,null),order:1},{menuId:d.MenuId.CommandPalette,group:"",title:i.localize(5,null),order:1}]}))})), +define(t[175],i([0,1,430,23,11,27,514,45,232,233,171,13,3,22,17,83]),(function(e,t,i,n,o,s,r,a,l,d,c,h,u,g,p,m){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CoreEditingCommands=t.CoreNavigationCommands=t.RevealLine_=t.EditorScroll_=t.CoreEditorCommand=void 0;const f=0;class _ extends o.EditorCommand{runEditorCommand(e,t,i){const n=t._getViewModel();n&&this.runCoreEditorCommand(n,i||{})}}var v,C,b;t.CoreEditorCommand=_,function(e){e.description={description:"Scroll editor in the given direction",args:[{name:"Editor scroll argument object", +description:"Property-value pairs that can be passed through this argument:\n\t\t\t\t\t* 'to': A mandatory direction value.\n\t\t\t\t\t\t```\n\t\t\t\t\t\t'up', 'down'\n\t\t\t\t\t\t```\n\t\t\t\t\t* 'by': Unit to move. Default is computed based on 'to' value.\n\t\t\t\t\t\t```\n\t\t\t\t\t\t'line', 'wrappedLine', 'page', 'halfPage'\n\t\t\t\t\t\t```\n\t\t\t\t\t* 'value': Number of units to move. Default is '1'.\n\t\t\t\t\t* 'revealCursor': If 'true' reveals the cursor if it is outside view port.\n\t\t\t\t",constraint:function(e){if(!n.isObject(e))return!1;const t=e;return!!n.isString(t.to)&&(!(!n.isUndefined(t.by)&&!n.isString(t.by))&&(!(!n.isUndefined(t.value)&&!n.isNumber(t.value))&&!(!n.isUndefined(t.revealCursor)&&!n.isBoolean(t.revealCursor))))},schema:{type:"object",required:["to"],properties:{to:{type:"string",enum:["up","down"]},by:{type:"string",enum:["line","wrappedLine","page","halfPage"]},value:{type:"number",default:1},revealCursor:{type:"boolean"}}}}]},e.RawDirection={Up:"up",Down:"down"},e.RawUnit={ +Line:"line",WrappedLine:"wrappedLine",Page:"page",HalfPage:"halfPage"},e.parse=function(t){let i,n;switch(t.to){case e.RawDirection.Up:i=1;break;case e.RawDirection.Down:i=2;break;default:return null}switch(t.by){case e.RawUnit.Line:n=1;break;case e.RawUnit.WrappedLine:n=2;break;case e.RawUnit.Page:n=3;break;case e.RawUnit.HalfPage:n=4;break;default:n=2}return{direction:i,unit:n,value:Math.floor(t.value||1),revealCursor:!!t.revealCursor,select:!!t.select}}}(v=t.EditorScroll_||(t.EditorScroll_={})),function(e){e.description={description:"Reveal the given line at the given logical position",args:[{name:"Reveal line argument object",description:"Property-value pairs that can be passed through this argument:\n\t\t\t\t\t* 'lineNumber': A mandatory line number value.\n\t\t\t\t\t* 'at': Logical position at which line has to be revealed .\n\t\t\t\t\t\t```\n\t\t\t\t\t\t'top', 'center', 'bottom'\n\t\t\t\t\t\t```\n\t\t\t\t",constraint:function(e){if(!n.isObject(e))return!1;const t=e +;return!!n.isNumber(t.lineNumber)&&!(!n.isUndefined(t.at)&&!n.isString(t.at))},schema:{type:"object",required:["lineNumber"],properties:{lineNumber:{type:"number"},at:{type:"string",enum:["top","center","bottom"]}}}}]},e.RawAtArgument={Top:"top",Center:"center",Bottom:"bottom"}}(C=t.RevealLine_||(t.RevealLine_={}));class S{constructor(e){e.addImplementation(1e4,(e,t)=>{const i=e.get(s.ICodeEditorService).getFocusedCodeEditor();return!(!i||!i.hasTextFocus())&&(this.runEditorCommand(e,i,t),!0)}),e.addImplementation(1e3,(e,t)=>{const i=document.activeElement;return!!(i&&["input","textarea"].indexOf(i.tagName.toLowerCase())>=0)&&(this.runDOMCommand(),!0)}),e.addImplementation(0,(e,t)=>{const i=e.get(s.ICodeEditorService).getActiveCodeEditor();return!!i&&(i.focus(),this.runEditorCommand(e,i,t),!0)})}}!function(e){class t extends _{constructor(e){super(e),this._inSelectionMode=e.inSelectionMode}runCoreEditorCommand(e,t){e.model.pushStackElement(), +e.setCursorStates(t.source,3,[d.CursorMoveCommands.moveTo(e,e.getPrimaryCursorState(),this._inSelectionMode,t.position,t.viewPosition)]),e.revealPrimaryCursor(t.source,!0)}}e.MoveTo=o.registerEditorCommand(new t({id:"_moveTo",inSelectionMode:!1,precondition:void 0})),e.MoveToSelect=o.registerEditorCommand(new t({id:"_moveToSelect",inSelectionMode:!0,precondition:void 0}));class n extends _{runCoreEditorCommand(e,t){e.model.pushStackElement();const i=this._getColumnSelectResult(e,e.getPrimaryCursorState(),e.getCursorColumnSelectData(),t);e.setCursorStates(t.source,3,i.viewStates.map(e=>a.CursorState.fromViewState(e))),e.setCursorColumnSelectData({isReal:!0,fromViewLineNumber:i.fromLineNumber,fromViewVisualColumn:i.fromVisualColumn,toViewLineNumber:i.toLineNumber,toViewVisualColumn:i.toVisualColumn}),i.reversed?e.revealTopMostCursor(t.source):e.revealBottomMostCursor(t.source)}}e.ColumnSelect=o.registerEditorCommand(new class extends n{constructor(){super({id:"columnSelect",precondition:void 0})} +_getColumnSelectResult(e,t,i,n){const o=e.model.validatePosition(n.position),s=e.coordinatesConverter.validateViewPosition(new h.Position(n.viewPosition.lineNumber,n.viewPosition.column),o);let a=n.doColumnSelect?i.fromViewLineNumber:s.lineNumber,l=n.doColumnSelect?i.fromViewVisualColumn:n.mouseColumn-1;return r.ColumnSelection.columnSelect(e.cursorConfig,e,a,l,s.lineNumber,n.mouseColumn-1)}}),e.CursorColumnSelectLeft=o.registerEditorCommand(new class extends n{constructor(){super({id:"cursorColumnSelectLeft",precondition:void 0,kbOpts:{weight:f,kbExpr:g.EditorContextKeys.textInputFocus,primary:3599,linux:{primary:0}}})}_getColumnSelectResult(e,t,i,n){return r.ColumnSelection.columnSelectLeft(e.cursorConfig,e,i)}}),e.CursorColumnSelectRight=o.registerEditorCommand(new class extends n{constructor(){super({id:"cursorColumnSelectRight",precondition:void 0,kbOpts:{weight:f,kbExpr:g.EditorContextKeys.textInputFocus,primary:3601,linux:{primary:0}}})}_getColumnSelectResult(e,t,i,n){ +return r.ColumnSelection.columnSelectRight(e.cursorConfig,e,i)}});class s extends n{constructor(e){super(e),this._isPaged=e.isPaged}_getColumnSelectResult(e,t,i,n){return r.ColumnSelection.columnSelectUp(e.cursorConfig,e,i,this._isPaged)}}e.CursorColumnSelectUp=o.registerEditorCommand(new s({isPaged:!1,id:"cursorColumnSelectUp",precondition:void 0,kbOpts:{weight:f,kbExpr:g.EditorContextKeys.textInputFocus,primary:3600,linux:{primary:0}}})),e.CursorColumnSelectPageUp=o.registerEditorCommand(new s({isPaged:!0,id:"cursorColumnSelectPageUp",precondition:void 0,kbOpts:{weight:f,kbExpr:g.EditorContextKeys.textInputFocus,primary:3595,linux:{primary:0}}}));class l extends n{constructor(e){super(e),this._isPaged=e.isPaged}_getColumnSelectResult(e,t,i,n){return r.ColumnSelection.columnSelectDown(e.cursorConfig,e,i,this._isPaged)}}e.CursorColumnSelectDown=o.registerEditorCommand(new l({isPaged:!1,id:"cursorColumnSelectDown",precondition:void 0,kbOpts:{weight:f,kbExpr:g.EditorContextKeys.textInputFocus,primary:3602, +linux:{primary:0}}})),e.CursorColumnSelectPageDown=o.registerEditorCommand(new l({isPaged:!0,id:"cursorColumnSelectPageDown",precondition:void 0,kbOpts:{weight:f,kbExpr:g.EditorContextKeys.textInputFocus,primary:3596,linux:{primary:0}}}));class c extends _{constructor(){super({id:"cursorMove",precondition:void 0,description:d.CursorMove.description})}runCoreEditorCommand(e,t){const i=d.CursorMove.parse(t);i&&this._runCursorMove(e,t.source,i)}_runCursorMove(e,t,i){e.model.pushStackElement(),e.setCursorStates(t,3,c._move(e,e.getCursorStates(),i)),e.revealPrimaryCursor(t,!0)}static _move(e,t,i){const n=i.select,o=i.value;switch(i.direction){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:return d.CursorMoveCommands.simpleMove(e,t,i.direction,n,o,i.unit);case 9:case 11:case 10:case 12:return d.CursorMoveCommands.viewportMove(e,t,i.direction,n,o);default:return null}}}e.CursorMoveImpl=c,e.CursorMove=o.registerEditorCommand(new c);class p extends _{constructor(e){super(e),this._staticArgs=e.args} +runCoreEditorCommand(e,t){let i=this._staticArgs;-1===this._staticArgs.value&&(i={direction:this._staticArgs.direction,unit:this._staticArgs.unit,select:this._staticArgs.select,value:e.cursorConfig.pageSize}),e.model.pushStackElement(),e.setCursorStates(t.source,3,d.CursorMoveCommands.simpleMove(e,e.getCursorStates(),i.direction,i.select,i.value,i.unit)),e.revealPrimaryCursor(t.source,!0)}}e.CursorLeft=o.registerEditorCommand(new p({args:{direction:0,unit:0,select:!1,value:1},id:"cursorLeft",precondition:void 0,kbOpts:{weight:f,kbExpr:g.EditorContextKeys.textInputFocus,primary:15,mac:{primary:15,secondary:[288]}}})),e.CursorLeftSelect=o.registerEditorCommand(new p({args:{direction:0,unit:0,select:!0,value:1},id:"cursorLeftSelect",precondition:void 0,kbOpts:{weight:f,kbExpr:g.EditorContextKeys.textInputFocus,primary:1039}})),e.CursorRight=o.registerEditorCommand(new p({args:{direction:1,unit:0,select:!1,value:1},id:"cursorRight",precondition:void 0,kbOpts:{weight:f,kbExpr:g.EditorContextKeys.textInputFocus, +primary:17,mac:{primary:17,secondary:[292]}}})),e.CursorRightSelect=o.registerEditorCommand(new p({args:{direction:1,unit:0,select:!0,value:1},id:"cursorRightSelect",precondition:void 0,kbOpts:{weight:f,kbExpr:g.EditorContextKeys.textInputFocus,primary:1041}})),e.CursorUp=o.registerEditorCommand(new p({args:{direction:2,unit:2,select:!1,value:1},id:"cursorUp",precondition:void 0,kbOpts:{weight:f,kbExpr:g.EditorContextKeys.textInputFocus,primary:16,mac:{primary:16,secondary:[302]}}})),e.CursorUpSelect=o.registerEditorCommand(new p({args:{direction:2,unit:2,select:!0,value:1},id:"cursorUpSelect",precondition:void 0,kbOpts:{weight:f,kbExpr:g.EditorContextKeys.textInputFocus,primary:1040,secondary:[3088],mac:{primary:1040},linux:{primary:1040}}})),e.CursorPageUp=o.registerEditorCommand(new p({args:{direction:2,unit:2,select:!1,value:-1},id:"cursorPageUp",precondition:void 0,kbOpts:{weight:f,kbExpr:g.EditorContextKeys.textInputFocus,primary:11}})),e.CursorPageUpSelect=o.registerEditorCommand(new p({args:{ +direction:2,unit:2,select:!0,value:-1},id:"cursorPageUpSelect",precondition:void 0,kbOpts:{weight:f,kbExpr:g.EditorContextKeys.textInputFocus,primary:1035}})),e.CursorDown=o.registerEditorCommand(new p({args:{direction:3,unit:2,select:!1,value:1},id:"cursorDown",precondition:void 0,kbOpts:{weight:f,kbExpr:g.EditorContextKeys.textInputFocus,primary:18,mac:{primary:18,secondary:[300]}}})),e.CursorDownSelect=o.registerEditorCommand(new p({args:{direction:3,unit:2,select:!0,value:1},id:"cursorDownSelect",precondition:void 0,kbOpts:{weight:f,kbExpr:g.EditorContextKeys.textInputFocus,primary:1042,secondary:[3090],mac:{primary:1042},linux:{primary:1042}}})),e.CursorPageDown=o.registerEditorCommand(new p({args:{direction:3,unit:2,select:!1,value:-1},id:"cursorPageDown",precondition:void 0,kbOpts:{weight:f,kbExpr:g.EditorContextKeys.textInputFocus,primary:12}})),e.CursorPageDownSelect=o.registerEditorCommand(new p({args:{direction:3,unit:2,select:!0,value:-1},id:"cursorPageDownSelect",precondition:void 0,kbOpts:{ +weight:f,kbExpr:g.EditorContextKeys.textInputFocus,primary:1036}})),e.CreateCursor=o.registerEditorCommand(new class extends _{constructor(){super({id:"createCursor",precondition:void 0})}runCoreEditorCommand(e,t){let i;i=t.wholeLine?d.CursorMoveCommands.line(e,e.getPrimaryCursorState(),!1,t.position,t.viewPosition):d.CursorMoveCommands.moveTo(e,e.getPrimaryCursorState(),!1,t.position,t.viewPosition);const n=e.getCursorStates();if(n.length>1){const o=i.modelState?i.modelState.position:null,s=i.viewState?i.viewState.position:null;for(let i=0,r=n.length;io&&(n=o) +;const s=new u.Range(n,1,n,e.model.getLineMaxColumn(n));let r=0;if(i.at)switch(i.at){case C.RawAtArgument.Top:r=3;break;case C.RawAtArgument.Center:r=1;break;case C.RawAtArgument.Bottom:r=4}const a=e.coordinatesConverter.convertModelRangeToViewRange(s);e.revealRange(t.source,!1,a,r,0)}}),e.SelectAll=new class extends S{constructor(){super(o.SelectAllCommand)}runDOMCommand(){document.execCommand("selectAll")}runEditorCommand(e,t,i){const n=t._getViewModel();n&&this.runCoreEditorCommand(n,i)}runCoreEditorCommand(e,t){e.model.pushStackElement(),e.setCursorStates("keyboard",3,[d.CursorMoveCommands.selectAll(e,e.getPrimaryCursorState())])}},e.SetSelection=o.registerEditorCommand(new class extends _{constructor(){super({id:"setSelection",precondition:void 0})}runCoreEditorCommand(e,t){e.model.pushStackElement(),e.setCursorStates(t.source,3,[a.CursorState.fromModelSelection(t.selection)])}})}(b=t.CoreNavigationCommands||(t.CoreNavigationCommands={})) +;const w=p.ContextKeyExpr.and(g.EditorContextKeys.textInputFocus,g.EditorContextKeys.columnSelection);function y(e,t){m.KeybindingsRegistry.registerKeybindingRule({id:e,primary:t,when:w,weight:f+1})}function E(e){return e.register(),e}y(b.CursorColumnSelectLeft.id,1039),y(b.CursorColumnSelectRight.id,1041),y(b.CursorColumnSelectUp.id,1040),y(b.CursorColumnSelectPageUp.id,1035),y(b.CursorColumnSelectDown.id,1042),y(b.CursorColumnSelectPageDown.id,1036),function(e){class t extends o.EditorCommand{runEditorCommand(e,t,i){const n=t._getViewModel();n&&this.runCoreEditingCommand(t,n,i||{})}}e.CoreEditingCommand=t,e.LineBreakInsert=o.registerEditorCommand(new class extends t{constructor(){super({id:"lineBreakInsert",precondition:g.EditorContextKeys.writable,kbOpts:{weight:f,kbExpr:g.EditorContextKeys.textInputFocus,primary:0,mac:{primary:301}}})}runCoreEditingCommand(e,t,i){e.pushUndoStop(), +e.executeCommands(this.id,c.TypeOperations.lineBreakInsert(t.cursorConfig,t.model,t.getCursorStates().map(e=>e.modelState.selection)))}}),e.Outdent=o.registerEditorCommand(new class extends t{constructor(){super({id:"outdent",precondition:g.EditorContextKeys.writable,kbOpts:{weight:f,kbExpr:p.ContextKeyExpr.and(g.EditorContextKeys.editorTextFocus,g.EditorContextKeys.tabDoesNotMoveFocus),primary:1026}})}runCoreEditingCommand(e,t,i){e.pushUndoStop(),e.executeCommands(this.id,c.TypeOperations.outdent(t.cursorConfig,t.model,t.getCursorStates().map(e=>e.modelState.selection))),e.pushUndoStop()}}),e.Tab=o.registerEditorCommand(new class extends t{constructor(){super({id:"tab",precondition:g.EditorContextKeys.writable,kbOpts:{weight:f,kbExpr:p.ContextKeyExpr.and(g.EditorContextKeys.editorTextFocus,g.EditorContextKeys.tabDoesNotMoveFocus),primary:2}})}runCoreEditingCommand(e,t,i){e.pushUndoStop(), +e.executeCommands(this.id,c.TypeOperations.tab(t.cursorConfig,t.model,t.getCursorStates().map(e=>e.modelState.selection))),e.pushUndoStop()}}),e.DeleteLeft=o.registerEditorCommand(new class extends t{constructor(){super({id:"deleteLeft",precondition:void 0,kbOpts:{weight:f,kbExpr:g.EditorContextKeys.textInputFocus,primary:1,secondary:[1025],mac:{primary:1,secondary:[1025,294,257]}}})}runCoreEditingCommand(e,t,i){const[n,o]=l.DeleteOperations.deleteLeft(t.getPrevEditOperationType(),t.cursorConfig,t.model,t.getCursorStates().map(e=>e.modelState.selection));n&&e.pushUndoStop(),e.executeCommands(this.id,o),t.setPrevEditOperationType(2)}}),e.DeleteRight=o.registerEditorCommand(new class extends t{constructor(){super({id:"deleteRight",precondition:void 0,kbOpts:{weight:f,kbExpr:g.EditorContextKeys.textInputFocus,primary:20,mac:{primary:20,secondary:[290,276]}}})}runCoreEditingCommand(e,t,i){ +const[n,o]=l.DeleteOperations.deleteRight(t.getPrevEditOperationType(),t.cursorConfig,t.model,t.getCursorStates().map(e=>e.modelState.selection));n&&e.pushUndoStop(),e.executeCommands(this.id,o),t.setPrevEditOperationType(3)}}),e.Undo=new class extends S{constructor(){super(o.UndoCommand)}runDOMCommand(){document.execCommand("undo")}runEditorCommand(e,t,i){t.hasModel()&&!0!==t.getOption(72)&&t.getModel().undo()}},e.Redo=new class extends S{constructor(){super(o.RedoCommand)}runDOMCommand(){document.execCommand("redo")}runEditorCommand(e,t,i){t.hasModel()&&!0!==t.getOption(72)&&t.getModel().redo()}}}(t.CoreEditingCommands||(t.CoreEditingCommands={}));class L extends o.Command{constructor(e,t,i){super({id:e,precondition:void 0,description:i}),this._handlerId=t}runCommand(e,t){const i=e.get(s.ICodeEditorService).getFocusedCodeEditor();i&&i.trigger("keyboard",this._handlerId,t)}}function x(e,t){E(new L("default:"+e,e)),E(new L(e,e,t))}x("type",{description:"Type",args:[{name:"args",schema:{type:"object", +required:["text"],properties:{text:{type:"string"}}}}]}),x("replacePreviousChar"),x("compositionStart"),x("compositionEnd"),x("paste"),x("cut")})),define(t[555],i([0,1,11,17,25,69,10,71]),(function(e,t,i,n,o,s,r,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EditorKeybindingCancellationTokenSource=void 0;const l=r.createDecorator("IEditorCancelService"),d=new n.RawContextKey("cancellableOperation",!1);a.registerSingleton(l,class{constructor(){this._tokens=new WeakMap}add(e,t){let i,o=this._tokens.get(e);return o||(o=e.invokeWithinContext(e=>{return{key:d.bindTo(e.get(n.IContextKeyService)),tokens:new s.LinkedList}}),this._tokens.set(e,o)),o.key.set(!0),i=o.tokens.push(t),()=>{i&&(i(),o.key.set(!o.tokens.isEmpty()),i=void 0)}}cancel(e){const t=this._tokens.get(e);if(!t)return;const i=t.tokens.pop();i&&(i.cancel(),t.key.set(!t.tokens.isEmpty()))}},!0);class c extends o.CancellationTokenSource{constructor(e,t){super(t),this.editor=e, +this._unregister=e.invokeWithinContext(t=>t.get(l).add(e,this))}dispose(){this._unregister(),super.dispose()}}t.EditorKeybindingCancellationTokenSource=c,i.registerEditorCommand(new class extends i.EditorCommand{constructor(){super({id:"editor.cancelOperation",kbOpts:{weight:100,primary:9},precondition:d})}runEditorCommand(e,t){e.get(l).cancel(t)}})})),define(t[68],i([0,1,8,3,25,2,555]),(function(e,t,i,n,o,s,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StableEditorScrollState=t.TextModelCancellationTokenSource=t.EditorStateCancellationTokenSource=t.EditorState=void 0;class a{constructor(e,t){if(this.flags=t,0!=(1&this.flags)){const t=e.getModel();this.modelVersionId=t?i.format("{0}#{1}",t.uri.toString(),t.getVersionId()):null}else this.modelVersionId=null;0!=(4&this.flags)?this.position=e.getPosition():this.position=null,0!=(2&this.flags)?this.selection=e.getSelection():this.selection=null,0!=(8&this.flags)?(this.scrollLeft=e.getScrollLeft(), +this.scrollTop=e.getScrollTop()):(this.scrollLeft=-1,this.scrollTop=-1)}_equals(e){if(!(e instanceof a))return!1;const t=e;return this.modelVersionId===t.modelVersionId&&(this.scrollLeft===t.scrollLeft&&this.scrollTop===t.scrollTop&&(!(!this.position&&t.position||this.position&&!t.position||this.position&&t.position&&!this.position.equals(t.position))&&!(!this.selection&&t.selection||this.selection&&!t.selection||this.selection&&t.selection&&!this.selection.equalsRange(t.selection))))}validate(e){return this._equals(new a(e,this.flags))}}t.EditorState=a;class l extends r.EditorKeybindingCancellationTokenSource{constructor(e,t,i,o){super(e,o),this.editor=e,this._listener=new s.DisposableStore,4&t&&this._listener.add(e.onDidChangeCursorPosition(e=>{i&&n.Range.containsPosition(i,e.position)||this.cancel()})),2&t&&this._listener.add(e.onDidChangeCursorSelection(e=>{i&&n.Range.containsRange(i,e.selection)||this.cancel()})),8&t&&this._listener.add(e.onDidScrollChange(e=>this.cancel())), +1&t&&(this._listener.add(e.onDidChangeModel(e=>this.cancel())),this._listener.add(e.onDidChangeModelContent(e=>this.cancel())))}dispose(){this._listener.dispose(),super.dispose()}}t.EditorStateCancellationTokenSource=l;class d extends o.CancellationTokenSource{constructor(e,t){super(t),this._listener=e.onDidChangeContent(()=>this.cancel())}dispose(){this._listener.dispose(),super.dispose()}}t.TextModelCancellationTokenSource=d;class c{constructor(e,t,i){this._visiblePosition=e,this._visiblePositionScrollDelta=t,this._cursorPosition=i}static capture(e){let t=null,i=0;if(0!==e.getScrollTop()){const n=e.getVisibleRanges();if(n.length>0){t=n[0].getStartPosition();const o=e.getTopForPosition(t.lineNumber,t.column);i=e.getScrollTop()-o}}return new c(t,i,e.getPosition())}restore(e){if(this._visiblePosition){const t=e.getTopForPosition(this._visiblePosition.lineNumber,this._visiblePosition.column);e.setScrollTop(t+this._visiblePositionScrollDelta)}}restoreRelativeVerticalPositionOfCursor(e){const t=e.getPosition() +;if(!this._cursorPosition||!t)return;const i=e.getTopForLineNumber(t.lineNumber)-e.getTopForLineNumber(this._cursorPosition.lineNumber);e.setScrollTop(e.getScrollTop()+i)}}t.StableEditorScrollState=c})),define(t[556],i([0,1,175,13,16]),(function(e,t,i,n,o){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ViewController=void 0;t.ViewController=class{constructor(e,t,i,n){this.configuration=e,this.viewModel=t,this.userInputEvents=i,this.commandDelegate=n}paste(e,t,i,n){this.commandDelegate.paste(e,t,i,n)}type(e){this.commandDelegate.type(e)}replacePreviousChar(e,t){this.commandDelegate.replacePreviousChar(e,t)}compositionStart(){this.commandDelegate.startComposition()}compositionEnd(){this.commandDelegate.endComposition()}cut(){this.commandDelegate.cut()}setSelection(e){i.CoreNavigationCommands.SetSelection.runCoreEditorCommand(this.viewModel,{source:"keyboard",selection:e})}_validateViewColumn(e){const t=this.viewModel.getLineMinColumn(e.lineNumber) +;return e.column=4?this._selectAll():3===e.mouseDownCount?this._hasMulticursorModifier(e)?e.inSelectionMode?this._lastCursorLineSelectDrag(e.position):this._lastCursorLineSelect(e.position):e.inSelectionMode?this._lineSelectDrag(e.position):this._lineSelect(e.position):2===e.mouseDownCount?this._hasMulticursorModifier(e)?this._lastCursorWordSelect(e.position):e.inSelectionMode?this._wordSelectDrag(e.position):this._wordSelect(e.position):this._hasMulticursorModifier(e)?this._hasNonMulticursorModifier(e)||(e.shiftKey?this._columnSelect(e.position,e.mouseColumn,!0):e.inSelectionMode?this._lastCursorMoveToSelect(e.position):this._createCursor(e.position,!1)):e.inSelectionMode?e.altKey?this._columnSelect(e.position,e.mouseColumn,!0):n?this._columnSelect(e.position,e.mouseColumn,!0):this._moveToSelect(e.position):this.moveTo(e.position) +}_usualArgs(e){return e=this._validateViewColumn(e),{source:"mouse",position:this._convertViewToModelPosition(e),viewPosition:e}}moveTo(e){i.CoreNavigationCommands.MoveTo.runCoreEditorCommand(this.viewModel,this._usualArgs(e))}_moveToSelect(e){i.CoreNavigationCommands.MoveToSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e))}_columnSelect(e,t,n){e=this._validateViewColumn(e),i.CoreNavigationCommands.ColumnSelect.runCoreEditorCommand(this.viewModel,{source:"mouse",position:this._convertViewToModelPosition(e),viewPosition:e,mouseColumn:t,doColumnSelect:n})}_createCursor(e,t){e=this._validateViewColumn(e),i.CoreNavigationCommands.CreateCursor.runCoreEditorCommand(this.viewModel,{source:"mouse",position:this._convertViewToModelPosition(e),viewPosition:e,wholeLine:t})}_lastCursorMoveToSelect(e){i.CoreNavigationCommands.LastCursorMoveToSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e))}_wordSelect(e){i.CoreNavigationCommands.WordSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e))} +_wordSelectDrag(e){i.CoreNavigationCommands.WordSelectDrag.runCoreEditorCommand(this.viewModel,this._usualArgs(e))}_lastCursorWordSelect(e){i.CoreNavigationCommands.LastCursorWordSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e))}_lineSelect(e){i.CoreNavigationCommands.LineSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e))}_lineSelectDrag(e){i.CoreNavigationCommands.LineSelectDrag.runCoreEditorCommand(this.viewModel,this._usualArgs(e))}_lastCursorLineSelect(e){i.CoreNavigationCommands.LastCursorLineSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e))}_lastCursorLineSelectDrag(e){i.CoreNavigationCommands.LastCursorLineSelectDrag.runCoreEditorCommand(this.viewModel,this._usualArgs(e))}_selectAll(){i.CoreNavigationCommands.SelectAll.runCoreEditorCommand(this.viewModel,{source:"mouse"})}_convertViewToModelPosition(e){return this.viewModel.coordinatesConverter.convertViewPositionToModelPosition(e)}emitKeyDown(e){this.userInputEvents.emitKeyDown(e)}emitKeyUp(e){ +this.userInputEvents.emitKeyUp(e)}emitContextMenu(e){this.userInputEvents.emitContextMenu(e)}emitMouseMove(e){this.userInputEvents.emitMouseMove(e)}emitMouseLeave(e){this.userInputEvents.emitMouseLeave(e)}emitMouseUp(e){this.userInputEvents.emitMouseUp(e)}emitMouseDown(e){this.userInputEvents.emitMouseDown(e)}emitMouseDrag(e){this.userInputEvents.emitMouseDrag(e)}emitMouseDrop(e){this.userInputEvents.emitMouseDrop(e)}emitMouseWheel(e){this.userInputEvents.emitMouseWheel(e)}}})),define(t[557],i([0,1,11,445,22,20,39,17,78,48,324]),(function(e,t,i,n,o,s,d,c,h,u){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SelectionAnchorSet=void 0,t.SelectionAnchorSet=new c.RawContextKey("selectionAnchorSet",!1);let g=class e{constructor(e,i){this.editor=e,this.selectionAnchorSetContextKey=t.SelectionAnchorSet.bindTo(i),this.modelChangeListener=e.onDidChangeModel(()=>this.selectionAnchorSetContextKey.reset())}static get(t){return t.getContribution(e.ID)}setSelectionAnchor(){if(this.editor.hasModel()){ +const e=this.editor.getPosition(),t=this.decorationId?[this.decorationId]:[],i=this.editor.deltaDecorations(t,[{range:s.Selection.fromPositions(e,e),options:{stickiness:1,hoverMessage:(new h.MarkdownString).appendText(n.localize(0,null)),className:"selection-anchor"}}]);this.decorationId=i[0],this.selectionAnchorSetContextKey.set(!!this.decorationId),u.alert(n.localize(1,null,e.lineNumber,e.column))}}goToSelectionAnchor(){if(this.editor.hasModel()&&this.decorationId){const e=this.editor.getModel().getDecorationRange(this.decorationId);e&&this.editor.setPosition(e.getStartPosition())}}selectFromAnchorToCursor(){if(this.editor.hasModel()&&this.decorationId){const e=this.editor.getModel().getDecorationRange(this.decorationId);if(e){const t=this.editor.getPosition();this.editor.setSelection(s.Selection.fromPositions(e.getStartPosition(),t)),this.cancelSelectionAnchor()}}}cancelSelectionAnchor(){this.decorationId&&(this.editor.deltaDecorations([this.decorationId],[]),this.decorationId=void 0, +this.selectionAnchorSetContextKey.set(!1))}dispose(){this.cancelSelectionAnchor(),this.modelChangeListener.dispose()}};g.ID="editor.contrib.selectionAnchorController",g=a([l(1,c.IContextKeyService)],g);class p extends i.EditorAction{constructor(){super({id:"editor.action.setSelectionAnchor",label:n.localize(2,null),alias:"Set Selection Anchor",precondition:void 0,kbOpts:{kbExpr:o.EditorContextKeys.editorTextFocus,primary:d.KeyChord(2089,2080),weight:100}})}run(e,t){return r(this,void 0,void 0,(function*(){g.get(t).setSelectionAnchor()}))}}class m extends i.EditorAction{constructor(){super({id:"editor.action.goToSelectionAnchor",label:n.localize(3,null),alias:"Go to Selection Anchor",precondition:t.SelectionAnchorSet})}run(e,t){return r(this,void 0,void 0,(function*(){g.get(t).goToSelectionAnchor()}))}}class f extends i.EditorAction{constructor(){super({id:"editor.action.selectFromAnchorToCursor",label:n.localize(4,null),alias:"Select from Anchor to Cursor",precondition:t.SelectionAnchorSet,kbOpts:{ +kbExpr:o.EditorContextKeys.editorTextFocus,primary:d.KeyChord(2089,2089),weight:100}})}run(e,t){return r(this,void 0,void 0,(function*(){g.get(t).selectFromAnchorToCursor()}))}}class _ extends i.EditorAction{constructor(){super({id:"editor.action.cancelSelectionAnchor",label:n.localize(5,null),alias:"Cancel Selection Anchor",precondition:t.SelectionAnchorSet,kbOpts:{kbExpr:o.EditorContextKeys.editorTextFocus,primary:9,weight:100}})}run(e,t){return r(this,void 0,void 0,(function*(){g.get(t).cancelSelectionAnchor()}))}}i.registerEditorContribution(g.ID,g),i.registerEditorAction(p),i.registerEditorAction(m),i.registerEditorAction(f),i.registerEditorAction(_)})),define(t[558],i([0,1,447,11,22,389]),(function(e,t,i,n,o,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0});class r extends n.EditorAction{constructor(e,t){super(t),this.left=e}run(e,t){if(!t.hasModel())return;let i=[],n=t.getSelections();for(const e of n)i.push(new s.MoveCaretCommand(e,this.left));t.pushUndoStop(), +t.executeCommands(this.id,i),t.pushUndoStop()}}n.registerEditorAction(class extends r{constructor(){super(!0,{id:"editor.action.moveCarretLeftAction",label:i.localize(0,null),alias:"Move Selected Text Left",precondition:o.EditorContextKeys.writable})}}),n.registerEditorAction(class extends r{constructor(){super(!1,{id:"editor.action.moveCarretRightAction",label:i.localize(1,null),alias:"Move Selected Text Right",precondition:o.EditorContextKeys.writable})}})})),define(t[559],i([0,1,448,11,88,3,22,170]),(function(e,t,i,n,o,s,r,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});class l extends n.EditorAction{constructor(){super({id:"editor.action.transposeLetters",label:i.localize(0,null),alias:"Transpose Letters",precondition:r.EditorContextKeys.writable,kbOpts:{kbExpr:r.EditorContextKeys.textInputFocus,primary:0,mac:{primary:306},weight:100}})}run(e,t){if(!t.hasModel())return;let i=t.getModel(),n=[],r=t.getSelections();for(let e of r){if(!e.isEmpty())continue +;let t=e.startLineNumber,r=e.startColumn,l=i.getLineMaxColumn(t);if(1===t&&(1===r||2===r&&2===l))continue;let d=r===l?e.getPosition():a.MoveOperations.rightPosition(i,e.getPosition().lineNumber,e.getPosition().column),c=a.MoveOperations.leftPosition(i,d.lineNumber,d.column),h=a.MoveOperations.leftPosition(i,c.lineNumber,c.column),u=i.getValueInRange(s.Range.fromPositions(h,c)),g=i.getValueInRange(s.Range.fromPositions(c,d)),p=s.Range.fromPositions(h,d);n.push(new o.ReplaceCommand(p,g+u))}n.length>0&&(t.pushUndoStop(),t.executeCommands(this.id,n),t.pushUndoStop())}}n.registerEditorAction(l)})),define(t[560],i([0,1,449,36,16,208,11,27,22,33,80]),(function(e,t,i,n,o,s,a,l,d,c,h){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.PasteAction=t.CopyAction=t.CutAction=void 0;const u=o.isNative||document.queryCommandSupported("cut"),g=o.isNative||document.queryCommandSupported("copy"),p=g&&!n.isEdge,m=!n.isFirefox||document.queryCommandSupported("paste");function f(e){return e.register(),e} +t.CutAction=u?f(new a.MultiCommand({id:"editor.action.clipboardCutAction",precondition:void 0,kbOpts:o.isNative?{primary:2102,win:{primary:2102,secondary:[1044]},weight:100}:void 0,menuOpts:[{menuId:c.MenuId.MenubarEditMenu,group:"2_ccp",title:i.localize(0,null),order:1},{menuId:c.MenuId.EditorContext,group:"9_cutcopypaste",title:i.localize(1,null),when:d.EditorContextKeys.writable,order:1},{menuId:c.MenuId.CommandPalette,group:"",title:i.localize(2,null),order:1}]})):void 0,t.CopyAction=g?f(new a.MultiCommand({id:"editor.action.clipboardCopyAction",precondition:void 0,kbOpts:o.isNative?{primary:2081,win:{primary:2081,secondary:[2067]},weight:100}:void 0,menuOpts:[{menuId:c.MenuId.MenubarEditMenu,group:"2_ccp",title:i.localize(3,null),order:2},{menuId:c.MenuId.EditorContext,group:"9_cutcopypaste",title:i.localize(4,null),order:2},{menuId:c.MenuId.CommandPalette,group:"",title:i.localize(5,null),order:1}]})):void 0,t.PasteAction=m?f(new a.MultiCommand({id:"editor.action.clipboardPasteAction", +precondition:void 0,kbOpts:o.isNative?{primary:2100,win:{primary:2100,secondary:[1043]},linux:{primary:2100,secondary:[1043]},weight:100}:void 0,menuOpts:[{menuId:c.MenuId.MenubarEditMenu,group:"2_ccp",title:i.localize(6,null),order:3},{menuId:c.MenuId.EditorContext,group:"9_cutcopypaste",title:i.localize(7,null),when:d.EditorContextKeys.writable,order:3},{menuId:c.MenuId.CommandPalette,group:"",title:i.localize(8,null),order:1}]})):void 0;class _ extends a.EditorAction{constructor(){super({id:"editor.action.clipboardCopyWithSyntaxHighlightingAction",label:i.localize(9,null),alias:"Copy With Syntax Highlighting",precondition:void 0,kbOpts:{kbExpr:d.EditorContextKeys.textInputFocus,primary:0,weight:100}})}run(e,t){if(!t.hasModel())return;!t.getOption(26)&&t.getSelection().isEmpty()||(s.CopyOptions.forceCopyWithSyntaxHighlighting=!0,t.focus(),document.execCommand("copy"),s.CopyOptions.forceCopyWithSyntaxHighlighting=!1)}}function v(e,t){e&&(e.addImplementation(1e4,(e,i)=>{ +const n=e.get(l.ICodeEditorService).getFocusedCodeEditor();if(n&&n.hasTextFocus()){const e=n.getOption(26),i=n.getSelection();return!(!i||!i.isEmpty()||e)||(document.execCommand(t),!0)}return!1}),e.addImplementation(0,(e,i)=>(document.execCommand(t),!0)))}v(t.CutAction,"cut"),v(t.CopyAction,"copy"),t.PasteAction&&(t.PasteAction.addImplementation(1e4,(e,t)=>{const i=e.get(l.ICodeEditorService),n=e.get(h.IClipboardService),a=i.getFocusedCodeEditor();if(a&&a.hasTextFocus()){return!(!document.execCommand("paste")&&o.isWeb)||((()=>r(void 0,void 0,void 0,(function*(){const e=yield n.readText();if(""!==e){const t=s.InMemoryClipboardMetadataManager.INSTANCE.get(e);let i=!1,n=null,o=null;t&&(i=a.getOption(26)&&!!t.isFromEmptySelection,n=void 0!==t.multicursorText?t.multicursorText:null,o=t.mode),a.trigger("keyboard","paste",{text:e,pasteOnNewLine:i,multicursorText:n,mode:o})}})))(),!0)}return!1}),t.PasteAction.addImplementation(0,(e,t)=>(document.execCommand("paste"),!0))),p&&a.registerEditorAction(_)})), +define(t[136],i([0,1,19,25,12,2,24,68,11,3,20,18,44,124,56]),(function(e,t,i,n,o,s,a,l,d,c,h,u,g,p,m){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getCodeActions=t.fixAllCommandId=t.organizeImportsCommandId=t.sourceActionCommandId=t.refactorCommandId=t.codeActionCommandId=void 0,t.codeActionCommandId="editor.action.codeAction",t.refactorCommandId="editor.action.refactor",t.sourceActionCommandId="editor.action.sourceAction",t.organizeImportsCommandId="editor.action.organizeImports",t.fixAllCommandId="editor.action.fixAll";class f extends s.Disposable{constructor(e,t,n){super(),this.documentation=t,this._register(n),this.allActions=i.mergeSort([...e],f.codeActionsComparator),this.validActions=this.allActions.filter(e=>!e.disabled)}static codeActionsComparator(e,t){ +return e.isPreferred&&!t.isPreferred?-1:!e.isPreferred&&t.isPreferred?1:i.isNonEmptyArray(e.diagnostics)?i.isNonEmptyArray(t.diagnostics)?e.diagnostics[0].message.localeCompare(t.diagnostics[0].message):-1:i.isNonEmptyArray(t.diagnostics)?1:0}get hasAutoFix(){return this.validActions.some(e=>!!e.kind&&p.CodeActionKind.QuickFix.contains(new p.CodeActionKind(e.kind))&&!!e.isPreferred)}}const _={actions:[],documentation:void 0};function v(e,t,n,a,d){var c;const h=n.filter||{},g={only:null===(c=h.include)||void 0===c?void 0:c.value,trigger:n.type},m=new l.TextModelCancellationTokenSource(e,d),v=function(e,t){return u.CodeActionProviderRegistry.all(e).filter(e=>!e.providedCodeActionKinds||e.providedCodeActionKinds.some(e=>p.mayIncludeActionsOfKind(t,new p.CodeActionKind(e))))}(e,h),C=new s.DisposableStore,b=v.map(i=>r(this,void 0,void 0,(function*(){try{a.report(i);const n=yield i.provideCodeActions(e,t,g,m.token);if(n&&C.add(n),m.token.isCancellationRequested)return _ +;const o=((null==n?void 0:n.actions)||[]).filter(e=>e&&p.filtersAction(h,e));return{actions:o,documentation:function(e,t,i){if(!e.documentation)return;const n=e.documentation.map(e=>({kind:new p.CodeActionKind(e.kind),command:e.command}));if(i){let e;for(const t of n)t.kind.contains(i)&&(e?e.kind.contains(t.kind)&&(e=t):e=t);if(e)return null==e?void 0:e.command}for(const e of t)if(e.kind)for(const t of n)if(t.kind.contains(new p.CodeActionKind(e.kind)))return t.command;return}(i,o,h.include)}}catch(e){if(o.isPromiseCanceledError(e))throw e;return o.onUnexpectedExternalError(e),_}}))),S=u.CodeActionProviderRegistry.onDidChange(()=>{const t=u.CodeActionProviderRegistry.all(e);i.equals(t,v)||m.cancel()});return Promise.all(b).then(e=>{const t=i.flatten(e.map(e=>e.actions)),n=i.coalesce(e.map(e=>e.documentation));return new f(t,n,C)}).finally(()=>{S.dispose(),m.dispose()})}t.getCodeActions=v,d.registerLanguageCommand("_executeCodeActionProvider",(function(e,t){return r(this,void 0,void 0,(function*(){ +const{resource:i,rangeOrSelection:s,kind:r}=t;if(!(i instanceof a.URI))throw o.illegalArgument();const l=e.get(g.IModelService).getModel(i);if(!l)throw o.illegalArgument();const d=h.Selection.isISelection(s)?h.Selection.liftSelection(s):c.Range.isIRange(s)?l.validateRange(s):void 0;if(!d)throw o.illegalArgument();const u=yield v(l,d,{type:2,filter:{includeSourceActions:!0,include:r&&r.value?new p.CodeActionKind(r.value):void 0}},m.Progress.None,n.CancellationToken.None);return setTimeout(()=>u.dispose(),100),u.validActions}))}))})),define(t[561],i([0,1,7,47,12,144,2,13,18,136,124,66,35]),(function(e,t,i,n,o,s,d,c,h,u,g,p,m){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CodeActionKeybindingResolver=t.CodeActionMenu=void 0;class f extends n.Action{constructor(e,t){super(e.command?e.command.id:e.title,e.title,void 0,!e.disabled,t),this.action=e}}let _=class extends d.Disposable{constructor(e,t,i,n){super(),this._editor=e,this._delegate=t,this._contextMenuService=i,this._visible=!1, +this._showingActions=this._register(new d.MutableDisposable),this._keybindingResolver=new v({getKeybindings:()=>n.getKeybindings()})}get isVisible(){return this._visible}show(e,t,i,n){return r(this,void 0,void 0,(function*(){const s=n.includeDisabledActions?t.allActions:t.validActions;if(!s.length)return void(this._visible=!1);if(!this._editor.getDomNode())throw this._visible=!1,o.canceled();this._visible=!0,this._showingActions.value=t;const r=this.getMenuActions(e,s,t.documentation),a=c.Position.isIPosition(i)?this._toCoords(i):i||{x:0,y:0},l=this._keybindingResolver.getResolver();this._contextMenuService.showContextMenu({domForShadowRoot:this._editor.getDomNode(),getAnchor:()=>a,getActions:()=>r,onHide:()=>{this._visible=!1,this._editor.focus()},autoSelectFirstItem:!0,getKeyBinding:e=>e instanceof f?l(e.action):void 0})}))}getMenuActions(e,t,i){var o,s;const r=e=>new f(e,()=>this._delegate.onSelectCodeAction(e)),a=t.map(r),l=[...i],d=this._editor.getModel() +;if(d&&a.length)for(const i of h.CodeActionProviderRegistry.all(d))i._getAdditionalMenuItems&&l.push(...i._getAdditionalMenuItems({trigger:e.type,only:null===(s=null===(o=e.filter)||void 0===o?void 0:o.include)||void 0===s?void 0:s.value},t));return l.length&&a.push(new n.Separator,...l.map(e=>r({title:e.title,command:e}))),a}_toCoords(e){if(!this._editor.hasModel())return{x:0,y:0};this._editor.revealPosition(e,1),this._editor.render();const t=this._editor.getScrolledVisiblePosition(e),n=i.getDomNodePagePosition(this._editor.getDomNode());return{x:n.left+t.left,y:n.top+t.top+t.height}}};_=a([l(2,p.IContextMenuService),l(3,m.IKeybindingService)],_),t.CodeActionMenu=_;class v{constructor(e){this._keybindingProvider=e}getResolver(){const e=new s.Lazy(()=>this._keybindingProvider.getKeybindings().filter(e=>v.codeActionCommands.indexOf(e.command)>=0).filter(e=>e.resolvedKeybinding).map(e=>{let t=e.commandArgs;return e.command===u.organizeImportsCommandId?t={kind:g.CodeActionKind.SourceOrganizeImports.value +}:e.command===u.fixAllCommandId&&(t={kind:g.CodeActionKind.SourceFixAll.value}),Object.assign({resolvedKeybinding:e.resolvedKeybinding},g.CodeActionCommandArgs.fromUser(t,{kind:g.CodeActionKind.None,apply:"never"}))}));return t=>{if(t.kind){const i=this.bestKeybindingForCodeAction(t,e.getValue());return null==i?void 0:i.resolvedKeybinding}}}bestKeybindingForCodeAction(e,t){if(!e.kind)return;const i=new g.CodeActionKind(e.kind);return t.filter(e=>e.kind.contains(i)).filter(t=>!t.preferred||e.isPreferred).reduceRight((e,t)=>e?e.kind.contains(t.kind)?t:e:t,void 0)}}t.CodeActionKeybindingResolver=v,v.codeActionCommands=[u.refactorCommandId,u.codeActionCommandId,u.sourceActionCommandId,u.organizeImportsCommandId,u.fixAllCommandId]})),define(t[562],i([0,1,15,4,2,3,18,17,56,136,41]),(function(e,t,i,n,o,s,r,a,l,d,c){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CodeActionModel=t.CodeActionsState=t.SUPPORTED_CODE_ACTIONS=void 0,t.SUPPORTED_CODE_ACTIONS=new a.RawContextKey("supportedCodeAction","") +;class h extends o.Disposable{constructor(e,t,n,o=250){super(),this._editor=e,this._markerService=t,this._signalChange=n,this._delay=o,this._autoTriggerTimer=this._register(new i.TimeoutTimer),this._register(this._markerService.onMarkerChanged(e=>this._onMarkerChanges(e))),this._register(this._editor.onDidChangeCursorPosition(()=>this._onCursorChange()))}trigger(e){const t=this._getRangeOfSelectionUnlessWhitespaceEnclosed(e);return this._createEventAndSignalChange(e,t)}_onMarkerChanges(e){const t=this._editor.getModel();t&&e.some(e=>c.isEqual(e,t.uri))&&this._autoTriggerTimer.cancelAndSet(()=>{this.trigger({type:1})},this._delay)}_onCursorChange(){this._autoTriggerTimer.cancelAndSet(()=>{this.trigger({type:1})},this._delay)}_getRangeOfMarker(e){const t=this._editor.getModel();if(t)for(const i of this._markerService.read({resource:t.uri})){const n=t.validateRange(i);if(s.Range.intersectRanges(n,e))return s.Range.lift(n)}}_getRangeOfSelectionUnlessWhitespaceEnclosed(e){if(!this._editor.hasModel())return +;const t=this._editor.getModel(),i=this._editor.getSelection();if(i.isEmpty()&&1===e.type){const{lineNumber:e,column:n}=i.getPosition(),o=t.getLineContent(e);if(0===o.length)return;if(1===n){if(/\s/.test(o[0]))return}else if(n===t.getLineMaxColumn(e)){if(/\s/.test(o[o.length-1]))return}else if(/\s/.test(o[n-2])&&/\s/.test(o[n-1]))return}return i}_createEventAndSignalChange(e,t){const i=this._editor.getModel();if(!t||!i)return void this._signalChange(void 0);const n=this._getRangeOfMarker(t),o=n?n.getStartPosition():t.getStartPosition(),s={trigger:e,selection:t,position:o};return this._signalChange(s),s}}var u;!function(e){e.Empty={type:0};e.Triggered=class{constructor(e,t,i,n){this.trigger=e,this.rangeOrSelection=t,this.position=i,this.actions=n,this.type=1}}}(u=t.CodeActionsState||(t.CodeActionsState={}));class g extends o.Disposable{constructor(e,i,s,a){super(),this._editor=e,this._markerService=i,this._progressService=a,this._codeActionOracle=this._register(new o.MutableDisposable),this._state=u.Empty, +this._onDidChangeState=this._register(new n.Emitter),this.onDidChangeState=this._onDidChangeState.event,this._supportedCodeActions=t.SUPPORTED_CODE_ACTIONS.bindTo(s),this._register(this._editor.onDidChangeModel(()=>this._update())),this._register(this._editor.onDidChangeModelLanguage(()=>this._update())),this._register(r.CodeActionProviderRegistry.onDidChange(()=>this._update())),this._update()}dispose(){super.dispose(),this.setState(u.Empty,!0)}_update(){this._codeActionOracle.value=void 0,this.setState(u.Empty);const e=this._editor.getModel();if(e&&r.CodeActionProviderRegistry.has(e)&&!this._editor.getOption(72)){const t=[];for(const i of r.CodeActionProviderRegistry.all(e))Array.isArray(i.providedCodeActionKinds)&&t.push(...i.providedCodeActionKinds);this._supportedCodeActions.set(t.join(" ")),this._codeActionOracle.value=new h(this._editor,this._markerService,t=>{var n;if(!t)return void this.setState(u.Empty);const o=i.createCancelablePromise(i=>d.getCodeActions(e,t.selection,t.trigger,l.Progress.None,i)) +;2===t.trigger.type&&(null===(n=this._progressService)||void 0===n||n.showWhile(o,250)),this.setState(new u.Triggered(t.trigger,t.selection,t.position,o))},void 0),this._codeActionOracle.value.trigger({type:1})}else this._supportedCodeActions.reset()}trigger(e){this._codeActionOracle.value&&this._codeActionOracle.value.trigger(e)}setState(e,t){e!==this._state&&(1===this._state.type&&this._state.actions.cancel(),this._state=e,t||this._onDidChangeState.fire(e))}}t.CodeActionModel=g})),define(t[243],i([0,1,19,25,12,24,11,18,44,2]),(function(e,t,i,n,o,s,r,a,l,d){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getCodeLensData=t.CodeLensModel=void 0;class c{constructor(){this.lenses=[],this._disposables=new d.DisposableStore}dispose(){this._disposables.dispose()}add(e,t){this._disposables.add(e);for(const i of e.lenses)this.lenses.push({symbol:i,provider:t})}}function h(e,t){const n=a.CodeLensProviderRegistry.ordered(e),s=new Map,r=new c,l=n.map((i,n)=>(s.set(i,n), +Promise.resolve(i.provideCodeLenses(e,t)).then(e=>e&&r.add(e,i)).catch(o.onUnexpectedExternalError)));return Promise.all(l).then(()=>(r.lenses=i.mergeSort(r.lenses,(e,t)=>e.symbol.range.startLineNumbert.symbol.range.startLineNumber?1:s.get(e.provider)s.get(t.provider)?1:e.symbol.range.startColumnt.symbol.range.startColumn?1:0),r))}t.CodeLensModel=c,t.getCodeLensData=h,r.registerLanguageCommand("_executeCodeLensProvider",(function(e,t){let{resource:i,itemResolveCount:r}=t;if(!(i instanceof s.URI))throw o.illegalArgument();const a=e.get(l.IModelService).getModel(i);if(!a)throw o.illegalArgument();const c=[],u=new d.DisposableStore;return h(a,n.CancellationToken.None).then(e=>{u.add(e);let t=[] +;for(const i of e.lenses)void 0===r||Boolean(i.symbol.command)?c.push(i.symbol):r-- >0&&i.provider.resolveCodeLens&&t.push(Promise.resolve(i.provider.resolveCodeLens(a,i.symbol,n.CancellationToken.None)).then(e=>c.push(e||i.symbol)));return Promise.all(t)}).then(()=>c).finally(()=>{setTimeout(()=>u.dispose(),100)})}))})),define(t[563],i([0,1,10,71,243,59,76,3,15,85]),(function(e,t,i,n,o,s,r,d,c,h){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CodeLensCache=t.ICodeLensCache=void 0,t.ICodeLensCache=i.createDecorator("ICodeLensCache");class u{constructor(e,t){this.lineCount=e,this.data=t}}let g=class{constructor(e){this._fakeProvider=new class{provideCodeLenses(){throw new Error("not supported")}},this._cache=new s.LRUCache(20,.75);c.runWhenIdle(()=>e.remove("codelens/cache",1));const t="codelens/cache2",i=e.get(t,1,"{}");this._deserialize(i),h.once(e.onWillSaveState)(i=>{i.reason===r.WillSaveStateReason.SHUTDOWN&&e.store(t,this._serialize(),1)})}put(e,t){const i=t.lenses.map(e=>{var t;return{ +range:e.symbol.range,command:e.symbol.command&&{id:"",title:null===(t=e.symbol.command)||void 0===t?void 0:t.title}}}),n=new o.CodeLensModel;n.add({lenses:i,dispose:()=>{}},this._fakeProvider);const s=new u(e.getLineCount(),n);this._cache.set(e.uri.toString(),s)}get(e){const t=this._cache.get(e.uri.toString());return t&&t.lineCount===e.getLineCount()?t.data:void 0}delete(e){this._cache.delete(e.uri.toString())}_serialize(){const e=Object.create(null);for(const[t,i]of this._cache){const n=new Set;for(const e of i.data.lenses)n.add(e.symbol.range.startLineNumber);e[t]={lineCount:i.lineCount,lines:[...n.values()]}}return JSON.stringify(e)}_deserialize(e){try{const t=JSON.parse(e);for(const e in t){const i=t[e],n=[];for(const e of i.lines)n.push({range:new d.Range(e,1,e,11)});const s=new o.CodeLensModel;s.add({lenses:n,dispose(){}},this._fakeProvider),this._cache.set(e,new u(i.lineCount,s))}}catch(e){}}};g=a([l(0,r.IStorageService)],g),t.CodeLensCache=g,n.registerSingleton(t.ICodeLensCache,g)})), +define(t[244],i([0,1,25,12,24,11,3,18,44]),(function(e,t,i,n,o,s,r,a,l){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getColorPresentations=t.getColors=void 0,t.getColors=function(e,t){const i=[],n=a.ColorProviderRegistry.ordered(e).reverse().map(n=>Promise.resolve(n.provideDocumentColors(e,t)).then(e=>{if(Array.isArray(e))for(let t of e)i.push({colorInfo:t,provider:n})}));return Promise.all(n).then(()=>i)},t.getColorPresentations=function(e,t,i,n){return Promise.resolve(i.provideColorPresentations(e,t,n))},s.registerLanguageCommand("_executeDocumentColorProvider",(function(e,t){const{resource:s}=t;if(!(s instanceof o.URI))throw n.illegalArgument();const r=e.get(l.IModelService).getModel(s);if(!r)throw n.illegalArgument();const d=[],c=a.ColorProviderRegistry.ordered(r).reverse().map(e=>Promise.resolve(e.provideDocumentColors(r,i.CancellationToken.None)).then(e=>{if(Array.isArray(e))for(let t of e)d.push({range:t.range,color:[t.color.red,t.color.green,t.color.blue,t.color.alpha]})})) +;return Promise.all(c).then(()=>d)})),s.registerLanguageCommand("_executeColorPresentationProvider",(function(e,t){const{resource:s,color:d,range:c}=t;if(!(s instanceof o.URI&&Array.isArray(d)&&4===d.length&&r.Range.isIRange(c)))throw n.illegalArgument();const[h,u,g,p]=d,m=e.get(l.IModelService).getModel(s);if(!m)throw n.illegalArgument();const f={range:c,color:{red:h,green:u,blue:g,alpha:p}},_=[],v=a.ColorProviderRegistry.ordered(m).reverse().map(e=>Promise.resolve(e.provideColorPresentations(m,f,i.CancellationToken.None)).then(e=>{Array.isArray(e)&&_.push(...e)}));return Promise.all(v).then(()=>_)}))})),define(t[245],i([0,1,15,29,12,113,2,11,27,3,31,18,244,46]),(function(e,t,i,n,o,s,r,d,c,h,u,g,p,m){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ColorDetector=void 0;let f=class e extends r.Disposable{constructor(e,t,i){super(),this._editor=e,this._codeEditorService=t,this._configurationService=i,this._localToDispose=this._register(new r.DisposableStore),this._decorationsIds=[], +this._colorDatas=new Map,this._colorDecoratorIds=[],this._decorationsTypes=new Set,this._register(e.onDidChangeModel(e=>{this._isEnabled=this.isEnabled(),this.onModelChanged()})),this._register(e.onDidChangeModelLanguage(e=>this.onModelChanged())),this._register(g.ColorProviderRegistry.onDidChange(e=>this.onModelChanged())),this._register(e.onDidChangeConfiguration(e=>{let t=this._isEnabled;this._isEnabled=this.isEnabled(),t!==this._isEnabled&&(this._isEnabled?this.onModelChanged():this.removeAllDecorations())})),this._timeoutTimer=null,this._computePromise=null,this._isEnabled=this.isEnabled(),this.onModelChanged()}isEnabled(){const e=this._editor.getModel();if(!e)return!1;const t=e.getLanguageIdentifier(),i=this._configurationService.getValue(t.language);if(i){const e=i.colorDecorators;if(e&&void 0!==e.enable&&!e.enable)return e.enable}return this._editor.getOption(12)}static get(e){return e.getContribution(this.ID)}dispose(){this.stop(),this.removeAllDecorations(),super.dispose()}onModelChanged(){ +if(this.stop(),!this._isEnabled)return;const t=this._editor.getModel();t&&g.ColorProviderRegistry.has(t)&&(this._localToDispose.add(this._editor.onDidChangeModelContent(t=>{this._timeoutTimer||(this._timeoutTimer=new i.TimeoutTimer,this._timeoutTimer.cancelAndSet(()=>{this._timeoutTimer=null,this.beginCompute()},e.RECOMPUTE_TIME))})),this.beginCompute())}beginCompute(){this._computePromise=i.createCancelablePromise(e=>{const t=this._editor.getModel();return t?p.getColors(t,e):Promise.resolve([])}),this._computePromise.then(e=>{this.updateDecorations(e),this.updateColorDecorators(e),this._computePromise=null},o.onUnexpectedError)}stop(){this._timeoutTimer&&(this._timeoutTimer.cancel(),this._timeoutTimer=null),this._computePromise&&(this._computePromise.cancel(),this._computePromise=null),this._localToDispose.clear()}updateDecorations(e){const t=e.map(e=>({range:{startLineNumber:e.colorInfo.range.startLineNumber,startColumn:e.colorInfo.range.startColumn,endLineNumber:e.colorInfo.range.endLineNumber, +endColumn:e.colorInfo.range.endColumn},options:u.ModelDecorationOptions.EMPTY}));this._decorationsIds=this._editor.deltaDecorations(this._decorationsIds,t),this._colorDatas=new Map,this._decorationsIds.forEach((t,i)=>this._colorDatas.set(t,e[i]))}updateColorDecorators(e){let t=[],i={};for(let o=0;o{i[e]||this._codeEditorService.removeDecorationType(e)}),this._colorDecoratorIds=this._editor.deltaDecorations(this._colorDecoratorIds,t)}removeAllDecorations(){this._decorationsIds=this._editor.deltaDecorations(this._decorationsIds,[]),this._colorDecoratorIds=this._editor.deltaDecorations(this._colorDecoratorIds,[]),this._decorationsTypes.forEach(e=>{this._codeEditorService.removeDecorationType(e)})}getColorData(e){const t=this._editor.getModel();if(!t)return null;const i=t.getDecorationsInRange(h.Range.fromPositions(e,e)).filter(e=>this._colorDatas.has(e.id));return 0===i.length?null:this._colorDatas.get(i[0].id)}};f.ID="editor.contrib.colorDetector",f.RECOMPUTE_TIME=1e3,f=a([l(1,c.ICodeEditorService),l(2,m.IConfigurationService)],f),t.ColorDetector=f,d.registerEditorContribution(f.ID,f)})),define(t[564],i([0,1,453,39,11,22,216,391,33]),(function(e,t,i,n,o,s,r,a,l){ +"use strict";Object.defineProperty(t,"__esModule",{value:!0});class d extends o.EditorAction{constructor(e,t){super(t),this._type=e}run(e,t){if(!t.hasModel())return;const i=t.getModel(),n=[],o=t.getSelections(),s=i.getOptions(),r=t.getOption(14);for(const e of o)n.push(new a.LineCommentCommand(e,s.tabSize,this._type,r.insertSpace,r.ignoreEmptyLines));t.pushUndoStop(),t.executeCommands(this.id,n),t.pushUndoStop()}}class c extends o.EditorAction{constructor(){super({id:"editor.action.blockComment",label:i.localize(4,null),alias:"Toggle Block Comment",precondition:s.EditorContextKeys.writable,kbOpts:{kbExpr:s.EditorContextKeys.editorTextFocus,primary:1567,linux:{primary:3103},weight:100},menuOpts:{menuId:l.MenuId.MenubarEditMenu,group:"5_insert",title:i.localize(5,null),order:2}})}run(e,t){if(!t.hasModel())return;const i=t.getOption(14),n=[],o=t.getSelections();for(const e of o)n.push(new r.BlockCommentCommand(e,i.insertSpace));t.pushUndoStop(),t.executeCommands(this.id,n),t.pushUndoStop()}} +o.registerEditorAction(class extends d{constructor(){super(0,{id:"editor.action.commentLine",label:i.localize(0,null),alias:"Toggle Line Comment",precondition:s.EditorContextKeys.writable,kbOpts:{kbExpr:s.EditorContextKeys.editorTextFocus,primary:2133,weight:100},menuOpts:{menuId:l.MenuId.MenubarEditMenu,group:"5_insert",title:i.localize(1,null),order:1}})}}),o.registerEditorAction(class extends d{constructor(){super(1,{id:"editor.action.addCommentLine",label:i.localize(2,null),alias:"Add Line Comment",precondition:s.EditorContextKeys.writable,kbOpts:{kbExpr:s.EditorContextKeys.editorTextFocus,primary:n.KeyChord(2089,2081),weight:100}})}}),o.registerEditorAction(class extends d{constructor(){super(2,{id:"editor.action.removeCommentLine",label:i.localize(3,null),alias:"Remove Line Comment",precondition:s.EditorContextKeys.writable,kbOpts:{kbExpr:s.EditorContextKeys.editorTextFocus,primary:n.KeyChord(2089,2099),weight:100}})}}),o.registerEditorAction(c)})), +define(t[565],i([0,1,454,7,47,2,11,22,33,17,66,35,91]),(function(e,t,i,n,o,s,r,d,c,h,u,g,p){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ContextMenuController=void 0;let m=class e{constructor(e,t,i,o,r,a){this._contextMenuService=t,this._contextViewService=i,this._contextKeyService=o,this._keybindingService=r,this._menuService=a,this._toDispose=new s.DisposableStore,this._contextMenuIsBeingShownCount=0,this._editor=e,this._toDispose.add(this._editor.onContextMenu(e=>this._onContextMenu(e))),this._toDispose.add(this._editor.onMouseWheel(e=>{if(this._contextMenuIsBeingShownCount>0){const t=this._contextViewService.getContextViewElement(),i=e.srcElement;i.shadowRoot&&n.getShadowRoot(t)===i.shadowRoot||this._contextViewService.hideContextView()}})),this._toDispose.add(this._editor.onKeyDown(e=>{58===e.keyCode&&(e.preventDefault(),e.stopPropagation(),this.showContextMenu())}))}static get(t){return t.getContribution(e.ID)}_onContextMenu(e){if(!this._editor.hasModel())return +;if(!this._editor.getOption(15))return this._editor.focus(),void(e.target.position&&!this._editor.getSelection().containsPosition(e.target.position)&&this._editor.setPosition(e.target.position));if(12===e.target.type)return;if(e.event.preventDefault(),6!==e.target.type&&7!==e.target.type&&1!==e.target.type)return;if(this._editor.focus(),e.target.position){let t=!1;for(const i of this._editor.getSelections())if(i.containsPosition(e.target.position)){t=!0;break}t||this._editor.setPosition(e.target.position)}let t=null;1!==e.target.type&&(t={x:e.event.posx-1,width:2,y:e.event.posy-1,height:2}),this.showContextMenu(t)}showContextMenu(e){if(!this._editor.getOption(15))return;if(!this._editor.hasModel())return;if(!this._contextMenuService)return void this._editor.focus();const t=this._getMenuActions(this._editor.getModel(),c.MenuId.EditorContext);t.length>0&&this._doShowContextMenu(t,e)}_getMenuActions(e,t){const i=[],n=this._menuService.createMenu(t,this._contextKeyService),s=n.getActions({arg:e.uri});n.dispose() +;for(let t of s){const[,n]=t;let s=0;for(const t of n)if(t instanceof c.SubmenuItemAction){const n=this._getMenuActions(e,t.item.submenu);n.length>0&&(i.push(new o.SubmenuAction(t.id,t.label,n)),s++)}else i.push(t),s++;s&&i.push(new o.Separator)}return i.length&&i.pop(),i}_doShowContextMenu(e,t=null){if(!this._editor.hasModel())return;const i=this._editor.getOption(46);if(this._editor.updateOptions({hover:{enabled:!1}}),!t){this._editor.revealPosition(this._editor.getPosition(),1),this._editor.render();const e=this._editor.getScrolledVisiblePosition(this._editor.getPosition()),i=n.getDomNodePagePosition(this._editor.getDomNode()),o=i.left+e.left,s=i.top+e.top+e.height;t={x:o,y:s}}this._contextMenuIsBeingShownCount++,this._contextMenuService.showContextMenu({domForShadowRoot:this._editor.getDomNode(),getAnchor:()=>t,getActions:()=>e,getActionViewItem:e=>{const t=this._keybindingFor(e);if(t)return new p.ActionViewItem(e,e,{label:!0,keybinding:t.getLabel(),isMenu:!0});const i=e +;return"function"==typeof i.getActionViewItem?i.getActionViewItem():new p.ActionViewItem(e,e,{icon:!0,label:!0,isMenu:!0})},getKeyBinding:e=>this._keybindingFor(e),onHide:e=>{this._contextMenuIsBeingShownCount--,this._editor.focus(),this._editor.updateOptions({hover:i})}})}_keybindingFor(e){return this._keybindingService.lookupKeybinding(e.id)}dispose(){this._contextMenuIsBeingShownCount>0&&this._contextViewService.hideContextView(),this._toDispose.dispose()}};m.ID="editor.contrib.contextmenu",m=a([l(1,u.IContextMenuService),l(2,u.IContextViewService),l(3,h.IContextKeyService),l(4,g.IKeybindingService),l(5,c.IMenuService)],m),t.ContextMenuController=m;class f extends r.EditorAction{constructor(){super({id:"editor.action.showContextMenu",label:i.localize(0,null),alias:"Show Editor Context Menu",precondition:void 0,kbOpts:{kbExpr:d.EditorContextKeys.textInputFocus,primary:1092,weight:100}})}run(e,t){m.get(t).showContextMenu()}}r.registerEditorContribution(m.ID,m),r.registerEditorAction(f)})), +define(t[566],i([0,1,455,2,11,22]),(function(e,t,i,n,o,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CursorRedo=t.CursorUndo=t.CursorUndoRedoController=void 0;class r{constructor(e){this.selections=e}equals(e){const t=this.selections.length;if(t!==e.selections.length)return!1;for(let i=0;i{this._undoStack=[],this._redoStack=[]})),this._register(e.onDidChangeModelContent(e=>{this._undoStack=[],this._redoStack=[]})),this._register(e.onDidChangeCursorSelection(t=>{if(this._isCursorUndoRedo)return;if(!t.oldSelections)return;if(t.oldModelVersionId!==t.modelVersionId)return;const i=new r(t.oldSelections) +;this._undoStack.length>0&&this._undoStack[this._undoStack.length-1].cursorState.equals(i)||(this._undoStack.push(new a(i,e.getScrollTop(),e.getScrollLeft())),this._redoStack=[],this._undoStack.length>50&&this._undoStack.shift())}))}static get(e){return e.getContribution(l.ID)}cursorUndo(){this._editor.hasModel()&&0!==this._undoStack.length&&(this._redoStack.push(new a(new r(this._editor.getSelections()),this._editor.getScrollTop(),this._editor.getScrollLeft())),this._applyState(this._undoStack.pop()))}cursorRedo(){this._editor.hasModel()&&0!==this._redoStack.length&&(this._undoStack.push(new a(new r(this._editor.getSelections()),this._editor.getScrollTop(),this._editor.getScrollLeft())),this._applyState(this._redoStack.pop()))}_applyState(e){this._isCursorUndoRedo=!0,this._editor.setSelections(e.cursorState.selections),this._editor.setScrollPosition({scrollTop:e.scrollTop,scrollLeft:e.scrollLeft}),this._isCursorUndoRedo=!1}}t.CursorUndoRedoController=l,l.ID="editor.contrib.cursorUndoRedoController" +;class d extends o.EditorAction{constructor(){super({id:"cursorUndo",label:i.localize(0,null),alias:"Cursor Undo",precondition:void 0,kbOpts:{kbExpr:s.EditorContextKeys.textInputFocus,primary:2099,weight:100}})}run(e,t,i){l.get(t).cursorUndo()}}t.CursorUndo=d;class c extends o.EditorAction{constructor(){super({id:"cursorRedo",label:i.localize(1,null),alias:"Cursor Redo",precondition:void 0})}run(e,t,i){l.get(t).cursorRedo()}}t.CursorRedo=c,o.registerEditorContribution(l.ID,l),o.registerEditorAction(d),o.registerEditorAction(c)})),define(t[567],i([0,1,2,16,11,13,3,20,392,31,329]),(function(e,t,i,n,o,s,r,a,l,d){"use strict";function c(e){return n.isMacintosh?e.altKey:e.ctrlKey}Object.defineProperty(t,"__esModule",{value:!0}),t.DragAndDropController=void 0;class h extends i.Disposable{constructor(e){super(),this._editor=e,this._register(this._editor.onMouseDown(e=>this._onEditorMouseDown(e))),this._register(this._editor.onMouseUp(e=>this._onEditorMouseUp(e))), +this._register(this._editor.onMouseDrag(e=>this._onEditorMouseDrag(e))),this._register(this._editor.onMouseDrop(e=>this._onEditorMouseDrop(e))),this._register(this._editor.onKeyDown(e=>this.onEditorKeyDown(e))),this._register(this._editor.onKeyUp(e=>this.onEditorKeyUp(e))),this._register(this._editor.onDidBlurEditorWidget(()=>this.onEditorBlur())),this._register(this._editor.onDidBlurEditorText(()=>this.onEditorBlur())),this._dndDecorationIds=[],this._mouseDown=!1,this._modifierPressed=!1,this._dragSelection=null}onEditorBlur(){this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1,this._modifierPressed=!1}onEditorKeyDown(e){this._editor.getOption(25)&&!this._editor.getOption(13)&&(c(e)&&(this._modifierPressed=!0),this._mouseDown&&c(e)&&this._editor.updateOptions({mouseStyle:"copy"}))}onEditorKeyUp(e){this._editor.getOption(25)&&!this._editor.getOption(13)&&(c(e)&&(this._modifierPressed=!1),this._mouseDown&&e.keyCode===h.TRIGGER_KEY_VALUE&&this._editor.updateOptions({mouseStyle:"default"}))} +_onEditorMouseDown(e){this._mouseDown=!0}_onEditorMouseUp(e){this._mouseDown=!1,this._editor.updateOptions({mouseStyle:"text"})}_onEditorMouseDrag(e){let t=e.target;if(null===this._dragSelection){let e=(this._editor.getSelections()||[]).filter(e=>t.position&&e.containsPosition(t.position));if(1!==e.length)return;this._dragSelection=e[0]}c(e.event)?this._editor.updateOptions({mouseStyle:"copy"}):this._editor.updateOptions({mouseStyle:"default"}),t.position&&(this._dragSelection.containsPosition(t.position)?this._removeDecoration():this.showAt(t.position))}_onEditorMouseDrop(e){if(e.target&&(this._hitContent(e.target)||this._hitMargin(e.target))&&e.target.position){let t=new s.Position(e.target.position.lineNumber,e.target.position.column);if(null===this._dragSelection){let i=null;if(e.event.shiftKey){let e=this._editor.getSelection();if(e){const{selectionStartLineNumber:n,selectionStartColumn:o}=e;i=[new a.Selection(n,o,t.lineNumber,t.column)]} +}else i=(this._editor.getSelections()||[]).map(e=>e.containsPosition(t)?new a.Selection(t.lineNumber,t.column,t.lineNumber,t.column):e);this._editor.setSelections(i||[],"mouse")}else(!this._dragSelection.containsPosition(t)||(c(e.event)||this._modifierPressed)&&(this._dragSelection.getEndPosition().equals(t)||this._dragSelection.getStartPosition().equals(t)))&&(this._editor.pushUndoStop(),this._editor.executeCommand(h.ID,new l.DragAndDropCommand(this._dragSelection,t,c(e.event)||this._modifierPressed)),this._editor.pushUndoStop())}this._editor.updateOptions({mouseStyle:"text"}),this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1}showAt(e){let t=[{range:new r.Range(e.lineNumber,e.column,e.lineNumber,e.column),options:h._DECORATION_OPTIONS}];this._dndDecorationIds=this._editor.deltaDecorations(this._dndDecorationIds,t),this._editor.revealPosition(e,1)}_removeDecoration(){this._dndDecorationIds=this._editor.deltaDecorations(this._dndDecorationIds,[])}_hitContent(e){return 6===e.type||7===e.type} +_hitMargin(e){return 2===e.type||3===e.type||4===e.type}dispose(){this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1,this._modifierPressed=!1,super.dispose()}}t.DragAndDropController=h,h.ID="editor.contrib.dragAndDrop",h.TRIGGER_KEY_VALUE=n.isMacintosh?6:5,h._DECORATION_OPTIONS=d.ModelDecorationOptions.register({className:"dnd-target"}),o.registerEditorContribution(h.ID,h)})),define(t[568],i([0,1,460,11,120]),(function(e,t,i,n,o){"use strict";Object.defineProperty(t,"__esModule",{value:!0});class s extends n.EditorAction{constructor(){super({id:"editor.action.fontZoomIn",label:i.localize(0,null),alias:"Editor Font Zoom In",precondition:void 0})}run(e,t){o.EditorZoom.setZoomLevel(o.EditorZoom.getZoomLevel()+1)}}class r extends n.EditorAction{constructor(){super({id:"editor.action.fontZoomOut",label:i.localize(1,null),alias:"Editor Font Zoom Out",precondition:void 0})}run(e,t){o.EditorZoom.setZoomLevel(o.EditorZoom.getZoomLevel()-1)}}class a extends n.EditorAction{constructor(){super({ +id:"editor.action.fontZoomReset",label:i.localize(2,null),alias:"Editor Font Zoom Reset",precondition:void 0})}run(e,t){o.EditorZoom.setZoomLevel(0)}}n.registerEditorAction(s),n.registerEditorAction(r),n.registerEditorAction(a)})),define(t[569],i([0,1,48,19,25,12,24,68,101,13,3,20,18,72,44,218,461,508,10,69,28,23,50]),(function(e,t,i,n,o,s,a,l,d,c,h,u,g,p,m,f,_,v,C,b,S,w,y){"use strict";function E(e){if(!(e=e.filter(e=>e.range)).length)return;let{range:t}=e[0];for(let i=1;ie.provideDocumentRangeFormattingEdits(t,t.getFullModelRange(),i,n)})}return t}Object.defineProperty(t,"__esModule",{value:!0}),t.getOnTypeFormattingEdits=t.getDocumentFormattingEditsUntilResult=t.getDocumentRangeFormattingEditsUntilResult=t.formatDocumentWithProvider=t.formatDocumentWithSelectedProvider=t.formatDocumentRangesWithProvider=t.formatDocumentRangesWithSelectedProvider=t.FormattingConflicts=t.getRealAndSyntheticDocumentFormattersOrdered=t.alertFormattingEdits=void 0,t.alertFormattingEdits=E,t.getRealAndSyntheticDocumentFormattersOrdered=L;class x{static select(e,t,i){return r(this,void 0,void 0,(function*(){if(0===e.length)return;const n=y.Iterable.first(x._selectors);return n?yield n(e,t,i):e[0]}))}}function D(e,t,i,o,s){return r(this,void 0,void 0,(function*(){ +const r=e.get(p.IEditorWorkerService);let a,c;d.isCodeEditor(i)?(a=i.getModel(),c=new l.EditorStateCancellationTokenSource(i,5,void 0,s)):(a=i,c=new l.TextModelCancellationTokenSource(i,s));let g=[],m=0;for(let e of n.asArray(o).sort(h.Range.compareRangesUsingStarts))m>0&&h.Range.areIntersectingOrTouching(g[m-1],e)?g[m-1]=h.Range.fromPositions(g[m-1].getStartPosition(),e.getEndPosition()):m=g.push(e);const _=[];for(let e of g)try{const i=yield t.provideDocumentRangeFormattingEdits(a,e,a.getFormattingOptions(),c.token),n=yield r.computeMoreMinimalEdits(a.uri,i);if(n&&_.push(...n),c.token.isCancellationRequested)return!0}finally{c.dispose()}if(0===_.length)return!1;if(d.isCodeEditor(i))f.FormattingEdit.execute(i,_,!0),E(_),i.revealPositionInCenterIfOutsideViewport(i.getPosition(),1);else{const[{range:e}]=_,t=new u.Selection(e.startLineNumber,e.startColumn,e.endLineNumber,e.endColumn);a.pushEditOperations([t],_.map(e=>({text:e.text,range:h.Range.lift(e.range),forceMoveMarkers:!0})),e=>{ +for(const{range:i}of e)if(h.Range.areIntersectingOrTouching(i,t))return[new u.Selection(i.startLineNumber,i.startColumn,i.endLineNumber,i.endColumn)];return null})}return!0}))}function k(e,t,i,n,o){return r(this,void 0,void 0,(function*(){const s=e.get(p.IEditorWorkerService);let r,a,c;d.isCodeEditor(i)?(r=i.getModel(),a=new l.EditorStateCancellationTokenSource(i,5,void 0,o)):(r=i,a=new l.TextModelCancellationTokenSource(i,o));try{const e=yield t.provideDocumentFormattingEdits(r,r.getFormattingOptions(),a.token);if(c=yield s.computeMoreMinimalEdits(r.uri,e),a.token.isCancellationRequested)return!0}finally{a.dispose()}if(!c||0===c.length)return!1;if(d.isCodeEditor(i))f.FormattingEdit.execute(i,c,2!==n),2!==n&&(E(c),i.revealPositionInCenterIfOutsideViewport(i.getPosition(),1));else{const[{range:e}]=c,t=new u.Selection(e.startLineNumber,e.startColumn,e.endLineNumber,e.endColumn);r.pushEditOperations([t],c.map(e=>({text:e.text,range:h.Range.lift(e.range),forceMoveMarkers:!0})),e=>{ +for(const{range:i}of e)if(h.Range.areIntersectingOrTouching(i,t))return[new u.Selection(i.startLineNumber,i.startColumn,i.endLineNumber,i.endColumn)];return null})}return!0}))}function N(e,t,i,o,a){return r(this,void 0,void 0,(function*(){const r=g.DocumentRangeFormattingEditProviderRegistry.ordered(t);for(const l of r){let r=yield Promise.resolve(l.provideDocumentRangeFormattingEdits(t,i,o,a)).catch(s.onUnexpectedExternalError);if(n.isNonEmptyArray(r))return yield e.computeMoreMinimalEdits(t.uri,r)}}))}function I(e,t,i,o){return r(this,void 0,void 0,(function*(){const r=L(t);for(const a of r){let r=yield Promise.resolve(a.provideDocumentFormattingEdits(t,i,o)).catch(s.onUnexpectedExternalError);if(n.isNonEmptyArray(r))return yield e.computeMoreMinimalEdits(t.uri,r)}}))}function M(e,t,i,n,r){const a=g.OnTypeFormattingEditProviderRegistry.ordered(t) +;return 0===a.length?Promise.resolve(void 0):a[0].autoFormatTriggerCharacters.indexOf(n)<0?Promise.resolve(void 0):Promise.resolve(a[0].provideOnTypeFormattingEdits(t,i,n,r,o.CancellationToken.None)).catch(s.onUnexpectedExternalError).then(i=>e.computeMoreMinimalEdits(t.uri,i))}t.FormattingConflicts=x,x._selectors=new b.LinkedList,t.formatDocumentRangesWithSelectedProvider=function(e,t,i,n,o,s){return r(this,void 0,void 0,(function*(){const r=e.get(C.IInstantiationService),a=d.isCodeEditor(t)?t.getModel():t,l=g.DocumentRangeFormattingEditProviderRegistry.ordered(a),c=yield x.select(l,a,n);c&&(o.report(c),yield r.invokeFunction(D,c,t,i,s))}))},t.formatDocumentRangesWithProvider=D,t.formatDocumentWithSelectedProvider=function(e,t,i,n,o){return r(this,void 0,void 0,(function*(){const s=e.get(C.IInstantiationService),r=d.isCodeEditor(t)?t.getModel():t,a=L(r),l=yield x.select(a,r,i);l&&(n.report(l),yield s.invokeFunction(k,l,t,i,o))}))},t.formatDocumentWithProvider=k,t.getDocumentRangeFormattingEditsUntilResult=N, +t.getDocumentFormattingEditsUntilResult=I,t.getOnTypeFormattingEdits=M,S.CommandsRegistry.registerCommand("_executeFormatRangeProvider",(function(e,...t){const[i,n,r]=t;w.assertType(a.URI.isUri(i)),w.assertType(h.Range.isIRange(n));const l=e.get(m.IModelService).getModel(i);if(!l)throw s.illegalArgument("resource");return N(e.get(p.IEditorWorkerService),l,h.Range.lift(n),r,o.CancellationToken.None)})),S.CommandsRegistry.registerCommand("_executeFormatDocumentProvider",(function(e,...t){const[i,n]=t;w.assertType(a.URI.isUri(i));const r=e.get(m.IModelService).getModel(i);if(!r)throw s.illegalArgument("resource");return I(e.get(p.IEditorWorkerService),r,n,o.CancellationToken.None)})),S.CommandsRegistry.registerCommand("_executeFormatOnTypeProvider",(function(e,...t){const[i,n,o,r]=t;w.assertType(a.URI.isUri(i)),w.assertType(c.Position.isIPosition(n)),w.assertType("string"==typeof o);const l=e.get(m.IModelService).getModel(i);if(!l)throw s.illegalArgument("resource") +;return M(e.get(p.IEditorWorkerService),l,c.Position.lift(n),o,r)}))})),define(t[570],i([0,1,19,25,39,2,11,27,87,3,22,18,72,569,218,462,28,17,10,12,56]),(function(e,t,i,n,o,s,d,c,h,u,g,p,m,f,_,v,C,b,S,w,y){"use strict";Object.defineProperty(t,"__esModule",{value:!0});let E=class{constructor(e,t){this._workerService=t,this._callOnDispose=new s.DisposableStore,this._callOnModel=new s.DisposableStore,this._editor=e,this._callOnDispose.add(e.onDidChangeConfiguration(()=>this._update())),this._callOnDispose.add(e.onDidChangeModel(()=>this._update())),this._callOnDispose.add(e.onDidChangeModelLanguage(()=>this._update())),this._callOnDispose.add(p.OnTypeFormattingEditProviderRegistry.onDidChange(this._update,this))}dispose(){this._callOnDispose.dispose(),this._callOnModel.dispose()}_update(){if(this._callOnModel.clear(),!this._editor.getOption(41))return;if(!this._editor.hasModel())return;const e=this._editor.getModel(),[t]=p.OnTypeFormattingEditProviderRegistry.ordered(e) +;if(!t||!t.autoFormatTriggerCharacters)return;let i=new h.CharacterSet;for(let e of t.autoFormatTriggerCharacters)i.add(e.charCodeAt(0));this._callOnModel.add(this._editor.onDidType(e=>{let t=e.charCodeAt(e.length-1);i.has(t)&&this._trigger(String.fromCharCode(t))}))}_trigger(e){if(!this._editor.hasModel())return;if(this._editor.getSelections().length>1)return;const t=this._editor.getModel(),n=this._editor.getPosition();let o=!1;const s=this._editor.onDidChangeModelContent(e=>{if(e.isFlush)return o=!0,void s.dispose();for(let t=0,i=e.changes.length;t{s.dispose(),o||i.isNonEmptyArray(e)&&(_.FormattingEdit.execute(this._editor,e,!0),f.alertFormattingEdits(e))},e=>{throw s.dispose(),e})}};E.ID="editor.contrib.autoFormat",E=a([l(1,m.IEditorWorkerService)],E);let L=class{constructor(e,t){this.editor=e,this._instantiationService=t, +this._callOnDispose=new s.DisposableStore,this._callOnModel=new s.DisposableStore,this._callOnDispose.add(e.onDidChangeConfiguration(()=>this._update())),this._callOnDispose.add(e.onDidChangeModel(()=>this._update())),this._callOnDispose.add(e.onDidChangeModelLanguage(()=>this._update())),this._callOnDispose.add(p.DocumentRangeFormattingEditProviderRegistry.onDidChange(this._update,this))}dispose(){this._callOnDispose.dispose(),this._callOnModel.dispose()}_update(){this._callOnModel.clear(),this.editor.getOption(40)&&this.editor.hasModel()&&p.DocumentRangeFormattingEditProviderRegistry.has(this.editor.getModel())&&this._callOnModel.add(this.editor.onDidPaste(({range:e})=>this._trigger(e)))}_trigger(e){this.editor.hasModel()&&(this.editor.getSelections().length>1||this._instantiationService.invokeFunction(f.formatDocumentRangesWithSelectedProvider,this.editor,e,2,y.Progress.None,n.CancellationToken.None).catch(w.onUnexpectedError))}};L.ID="editor.contrib.formatOnPaste",L=a([l(1,S.IInstantiationService)],L) +;class x extends d.EditorAction{constructor(){super({id:"editor.action.formatDocument",label:v.localize(0,null),alias:"Format Document",precondition:b.ContextKeyExpr.and(g.EditorContextKeys.notInCompositeEditor,g.EditorContextKeys.writable,g.EditorContextKeys.hasDocumentFormattingProvider),kbOpts:{kbExpr:b.ContextKeyExpr.and(g.EditorContextKeys.editorTextFocus,g.EditorContextKeys.hasDocumentFormattingProvider),primary:1572,linux:{primary:3111},weight:100},contextMenuOpts:{when:g.EditorContextKeys.hasDocumentFormattingProvider,group:"1_modification",order:1.3}})}run(e,t){return r(this,void 0,void 0,(function*(){if(t.hasModel()){const i=e.get(S.IInstantiationService),o=e.get(y.IEditorProgressService);yield o.showWhile(i.invokeFunction(f.formatDocumentWithSelectedProvider,t,1,y.Progress.None,n.CancellationToken.None),250)}}))}}class D extends d.EditorAction{constructor(){super({id:"editor.action.formatSelection",label:v.localize(1,null),alias:"Format Selection", +precondition:b.ContextKeyExpr.and(g.EditorContextKeys.writable,g.EditorContextKeys.hasDocumentSelectionFormattingProvider),kbOpts:{kbExpr:b.ContextKeyExpr.and(g.EditorContextKeys.editorTextFocus,g.EditorContextKeys.hasDocumentSelectionFormattingProvider),primary:o.KeyChord(2089,2084),weight:100},contextMenuOpts:{when:b.ContextKeyExpr.and(g.EditorContextKeys.hasDocumentSelectionFormattingProvider,g.EditorContextKeys.hasNonEmptySelection),group:"1_modification",order:1.31}})}run(e,t){return r(this,void 0,void 0,(function*(){if(!t.hasModel())return;const i=e.get(S.IInstantiationService),o=t.getModel(),s=t.getSelections().map(e=>e.isEmpty()?new u.Range(e.startLineNumber,1,e.startLineNumber,o.getLineMaxColumn(e.startLineNumber)):e),r=e.get(y.IEditorProgressService);yield r.showWhile(i.invokeFunction(f.formatDocumentRangesWithSelectedProvider,t,s,1,y.Progress.None,n.CancellationToken.None),250)}))}}d.registerEditorContribution(E.ID,E),d.registerEditorContribution(L.ID,L),d.registerEditorAction(x), +d.registerEditorAction(D),C.CommandsRegistry.registerCommand("editor.action.format",e=>r(void 0,void 0,void 0,(function*(){const t=e.get(c.ICodeEditorService).getFocusedCodeEditor();if(!t||!t.hasModel())return;const i=e.get(C.ICommandService);t.getSelection().isEmpty()?yield i.executeCommand("editor.action.formatDocument"):yield i.executeCommand("editor.action.formatSelection")})))})),define(t[246],i([0,1,25,12,11,18]),(function(e,t,i,n,o,s){"use strict";function a(e,t,i,o){const s=i.ordered(e).map(i=>Promise.resolve(o(i,e,t)).then(void 0,e=>{n.onUnexpectedExternalError(e)}));return Promise.all(s).then(e=>{const t=[];for(let i of e)Array.isArray(i)?t.push(...i):i&&t.push(i);return t})}function l(e,t,i){return a(e,t,s.DefinitionProviderRegistry,(e,t,n)=>e.provideDefinition(t,n,i))}function d(e,t,i){return a(e,t,s.DeclarationProviderRegistry,(e,t,n)=>e.provideDeclaration(t,n,i))}function c(e,t,i){return a(e,t,s.ImplementationProviderRegistry,(e,t,n)=>e.provideImplementation(t,n,i))}function h(e,t,i){ +return a(e,t,s.TypeDefinitionProviderRegistry,(e,t,n)=>e.provideTypeDefinition(t,n,i))}function u(e,t,i,n){return a(e,t,s.ReferenceProviderRegistry,(e,t,o)=>r(this,void 0,void 0,(function*(){const s=yield e.provideReferences(t,o,{includeDeclaration:!0},n);if(!i||!s||2!==s.length)return s;const r=yield e.provideReferences(t,o,{includeDeclaration:!1},n);return r&&1===r.length?r:s})))}Object.defineProperty(t,"__esModule",{value:!0}),t.getReferencesAtPosition=t.getTypeDefinitionsAtPosition=t.getImplementationsAtPosition=t.getDeclarationsAtPosition=t.getDefinitionsAtPosition=void 0,t.getDefinitionsAtPosition=l,t.getDeclarationsAtPosition=d,t.getImplementationsAtPosition=c,t.getTypeDefinitionsAtPosition=h,t.getReferencesAtPosition=u,o.registerModelAndPositionCommand("_executeDefinitionProvider",(e,t)=>l(e,t,i.CancellationToken.None)),o.registerModelAndPositionCommand("_executeDeclarationProvider",(e,t)=>d(e,t,i.CancellationToken.None)), +o.registerModelAndPositionCommand("_executeImplementationProvider",(e,t)=>c(e,t,i.CancellationToken.None)),o.registerModelAndPositionCommand("_executeTypeDefinitionProvider",(e,t)=>h(e,t,i.CancellationToken.None)),o.registerModelAndPositionCommand("_executeReferenceProvider",(e,t)=>u(e,t,!1,i.CancellationToken.None))})),define(t[571],i([0,1,17,10,71,83,11,27,3,2,4,471,35,32,41]),(function(e,t,i,n,o,s,r,d,c,h,u,g,p,m,f){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ISymbolNavigationService=t.ctxHasSymbols=void 0,t.ctxHasSymbols=new i.RawContextKey("hasSymbols",!1),t.ISymbolNavigationService=n.createDecorator("ISymbolNavigationService");let _=class{constructor(e,i,n,o){this._editorService=i,this._notificationService=n,this._keybindingService=o,this._currentModel=void 0,this._currentIdx=-1,this._ignoreEditorChange=!1,this._ctxHasSymbols=t.ctxHasSymbols.bindTo(e)}reset(){this._ctxHasSymbols.reset(),h.dispose(this._currentState),h.dispose(this._currentMessage),this._currentModel=void 0, +this._currentIdx=-1}put(e){const t=e.parent.parent;if(t.references.length<=1)return void this.reset();this._currentModel=t,this._currentIdx=t.references.indexOf(e),this._ctxHasSymbols.set(!0),this._showMessage();const i=new v(this._editorService),n=i.onDidChange(e=>{if(this._ignoreEditorChange)return;const i=this._editorService.getActiveCodeEditor();if(!i)return;const n=i.getModel(),o=i.getPosition();if(!n||!o)return;let s=!1,r=!1;for(const e of t.references)if(f.isEqual(e.uri,n.uri))s=!0,r=r||c.Range.containsPosition(e.range,o);else if(s)break;s&&r||this.reset()});this._currentState=h.combinedDisposable(i,n)}revealNext(e){if(!this._currentModel)return Promise.resolve();this._currentIdx+=1,this._currentIdx%=this._currentModel.references.length;const t=this._currentModel.references[this._currentIdx];return this._showMessage(),this._ignoreEditorChange=!0,this._editorService.openCodeEditor({resource:t.uri,options:{selection:c.Range.collapseToStart(t.range),selectionRevealType:3}},e).finally(()=>{ +this._ignoreEditorChange=!1})}_showMessage(){h.dispose(this._currentMessage);const e=this._keybindingService.lookupKeybinding("editor.gotoNextSymbolFromResult"),t=e?g.localize(0,null,this._currentIdx+1,this._currentModel.references.length,e.getLabel()):g.localize(1,null,this._currentIdx+1,this._currentModel.references.length);this._currentMessage=this._notificationService.status(t)}};_=a([l(0,i.IContextKeyService),l(1,d.ICodeEditorService),l(2,m.INotificationService),l(3,p.IKeybindingService)],_),o.registerSingleton(t.ISymbolNavigationService,_,!0),r.registerEditorCommand(new class extends r.EditorCommand{constructor(){super({id:"editor.gotoNextSymbolFromResult",precondition:t.ctxHasSymbols,kbOpts:{weight:100,primary:70}})}runEditorCommand(e,i){return e.get(t.ISymbolNavigationService).revealNext(i)}}),s.KeybindingsRegistry.registerCommandAndKeybindingRule({id:"editor.gotoNextSymbolFromResult.cancel",weight:100,when:t.ctxHasSymbols,primary:9,handler(e){e.get(t.ISymbolNavigationService).reset()}});let v=class{ +constructor(e){this._listener=new Map,this._disposables=new h.DisposableStore,this._onDidChange=new u.Emitter,this.onDidChange=this._onDidChange.event,this._disposables.add(e.onCodeEditorRemove(this._onDidRemoveEditor,this)),this._disposables.add(e.onCodeEditorAdd(this._onDidAddEditor,this)),e.listCodeEditors().forEach(this._onDidAddEditor,this)}dispose(){this._disposables.dispose(),this._onDidChange.dispose(),h.dispose(this._listener.values())}_onDidAddEditor(e){this._listener.set(e,h.combinedDisposable(e.onDidChangeCursorPosition(t=>this._onDidChange.fire({editor:e})),e.onDidChangeModelContent(t=>this._onDidChange.fire({editor:e}))))}_onDidRemoveEditor(e){h.dispose(this._listener.get(e)),this._listener.delete(e)}};v=a([l(0,d.ICodeEditorService)],v)})),define(t[572],i([0,1,19,25,12,11,18]),(function(e,t,i,n,o,s,r){"use strict";function a(e,t,n){const s=r.HoverProviderRegistry.ordered(e).map(i=>Promise.resolve(i.provideHover(e,t,n)).then(e=>e&&function(e){ +const t=void 0!==e.range,i=void 0!==e.contents&&e.contents&&e.contents.length>0;return t&&i}(e)?e:void 0,e=>{o.onUnexpectedExternalError(e)}));return Promise.all(s).then(i.coalesce)}Object.defineProperty(t,"__esModule",{value:!0}),t.getHover=void 0,t.getHover=a,s.registerModelAndPositionCommand("_executeHoverProvider",(e,t)=>a(e,t,n.CancellationToken.None))})),define(t[573],i([0,1,475,2,8,11,169,60,3,20,22,31,42,44,222,75]),(function(e,t,i,n,o,s,r,a,l,d,c,h,u,g,p,m){"use strict";function f(e,t,i,n){if(1===e.getLineCount()&&1===e.getLineMaxColumn(1))return[];let s=u.LanguageConfigurationRegistry.getIndentationRules(e.getLanguageIdentifier().id);if(!s)return[];for(i=Math.min(i,e.getLineCount());t<=i&&s.unIndentedLinePattern;){let i=e.getLineContent(t);if(!s.unIndentedLinePattern.test(i))break;t++}if(t>i-1)return[];const{tabSize:l,indentSize:c,insertSpaces:g}=e.getOptions(),p=(e,t)=>(t=t||1,r.ShiftCommand.shiftIndent(e,e.length+t,l,c,g)),m=(e,t)=>(t=t||1,r.ShiftCommand.unshiftIndent(e,e.length+t,l,c,g)) +;let f,_=[],v=e.getLineContent(t),C=v;if(null!=n){f=n;let e=o.getLeadingWhitespace(v);C=f+v.substring(e.length),s.decreaseIndentPattern&&s.decreaseIndentPattern.test(C)&&(C=(f=m(f))+v.substring(e.length)),v!==C&&_.push(a.EditOperation.replace(new d.Selection(t,1,t,e.length+1),h.TextModel.normalizeIndentation(f,c,g)))}else f=o.getLeadingWhitespace(v);let b=f;s.increaseIndentPattern&&s.increaseIndentPattern.test(C)?(b=p(b),f=p(f)):s.indentNextLinePattern&&s.indentNextLinePattern.test(C)&&(b=p(b));for(let n=++t;n<=i;n++){let t=e.getLineContent(n),i=o.getLeadingWhitespace(t),r=b+t.substring(i.length);s.decreaseIndentPattern&&s.decreaseIndentPattern.test(r)&&(b=m(b),f=m(f)),i!==b&&_.push(a.EditOperation.replace(new d.Selection(n,1,n,i.length+1),h.TextModel.normalizeIndentation(b,c,g))),s.unIndentedLinePattern&&s.unIndentedLinePattern.test(t)||(b=s.increaseIndentPattern&&s.increaseIndentPattern.test(r)?f=p(f):s.indentNextLinePattern&&s.indentNextLinePattern.test(r)?p(b):f)}return _} +Object.defineProperty(t,"__esModule",{value:!0}),t.IndentationToTabsCommand=t.IndentationToSpacesCommand=t.AutoIndentOnPaste=t.AutoIndentOnPasteCommand=t.ReindentSelectedLinesAction=t.ReindentLinesAction=t.DetectIndentation=t.IndentUsingSpaces=t.IndentUsingTabs=t.ChangeIndentationSizeAction=t.IndentationToTabsAction=t.IndentationToSpacesAction=t.getReindentEditOperations=void 0,t.getReindentEditOperations=f;class _ extends s.EditorAction{constructor(){super({id:_.ID,label:i.localize(0,null),alias:"Convert Indentation to Spaces",precondition:c.EditorContextKeys.writable})}run(e,t){let i=t.getModel();if(!i)return;let n=i.getOptions(),o=t.getSelection();if(!o)return;const s=new k(o,n.tabSize);t.pushUndoStop(),t.executeCommands(this.id,[s]),t.pushUndoStop(),i.updateOptions({insertSpaces:!0})}}t.IndentationToSpacesAction=_,_.ID="editor.action.indentationToSpaces";class v extends s.EditorAction{constructor(){super({id:v.ID,label:i.localize(1,null),alias:"Convert Indentation to Tabs", +precondition:c.EditorContextKeys.writable})}run(e,t){let i=t.getModel();if(!i)return;let n=i.getOptions(),o=t.getSelection();if(!o)return;const s=new N(o,n.tabSize);t.pushUndoStop(),t.executeCommands(this.id,[s]),t.pushUndoStop(),i.updateOptions({insertSpaces:!1})}}t.IndentationToTabsAction=v,v.ID="editor.action.indentationToTabs";class C extends s.EditorAction{constructor(e,t){super(t),this.insertSpaces=e}run(e,t){const n=e.get(m.IQuickInputService),o=e.get(g.IModelService);let s=t.getModel();if(!s)return;let r=o.getCreationOptions(s.getLanguageIdentifier().language,s.uri,s.isForSimpleWidget);const a=[1,2,3,4,5,6,7,8].map(e=>({id:e.toString(),label:e.toString(),description:e===r.tabSize?i.localize(2,null):void 0})),l=Math.min(s.getOptions().tabSize-1,7);setTimeout(()=>{n.pick(a,{placeHolder:i.localize(3,null),activeItem:a[l]}).then(e=>{e&&s&&!s.isDisposed()&&s.updateOptions({tabSize:parseInt(e.label,10),insertSpaces:this.insertSpaces})})},50)}}t.ChangeIndentationSizeAction=C;class b extends C{constructor(){ +super(!1,{id:b.ID,label:i.localize(4,null),alias:"Indent Using Tabs",precondition:void 0})}}t.IndentUsingTabs=b,b.ID="editor.action.indentUsingTabs";class S extends C{constructor(){super(!0,{id:S.ID,label:i.localize(5,null),alias:"Indent Using Spaces",precondition:void 0})}}t.IndentUsingSpaces=S,S.ID="editor.action.indentUsingSpaces";class w extends s.EditorAction{constructor(){super({id:w.ID,label:i.localize(6,null),alias:"Detect Indentation from Content",precondition:void 0})}run(e,t){const i=e.get(g.IModelService);let n=t.getModel();if(!n)return;let o=i.getCreationOptions(n.getLanguageIdentifier().language,n.uri,n.isForSimpleWidget);n.detectIndentation(o.insertSpaces,o.tabSize)}}t.DetectIndentation=w,w.ID="editor.action.detectIndentation";class y extends s.EditorAction{constructor(){super({id:"editor.action.reindentlines",label:i.localize(7,null),alias:"Reindent Lines",precondition:c.EditorContextKeys.writable})}run(e,t){let i=t.getModel();if(!i)return;let n=f(i,1,i.getLineCount()) +;n.length>0&&(t.pushUndoStop(),t.executeEdits(this.id,n),t.pushUndoStop())}}t.ReindentLinesAction=y;class E extends s.EditorAction{constructor(){super({id:"editor.action.reindentselectedlines",label:i.localize(8,null),alias:"Reindent Selected Lines",precondition:c.EditorContextKeys.writable})}run(e,t){let i=t.getModel();if(!i)return;let n=t.getSelections();if(null===n)return;let o=[];for(let e of n){let t=e.startLineNumber,n=e.endLineNumber;if(t!==n&&1===e.endColumn&&n--,1===t){if(t===n)continue}else t--;let s=f(i,t,n);o.push(...s)}o.length>0&&(t.pushUndoStop(),t.executeEdits(this.id,o),t.pushUndoStop())}}t.ReindentSelectedLinesAction=E;class L{constructor(e,t){this._initialSelection=t,this._edits=[],this._selectionId=null;for(let t of e)t.range&&"string"==typeof t.text&&this._edits.push(t)}getEditOperations(e,t){for(let e of this._edits)t.addEditOperation(l.Range.lift(e.range),e.text);let i=!1 +;Array.isArray(this._edits)&&1===this._edits.length&&this._initialSelection.isEmpty()&&(this._edits[0].range.startColumn===this._initialSelection.endColumn&&this._edits[0].range.startLineNumber===this._initialSelection.endLineNumber?(i=!0,this._selectionId=t.trackSelection(this._initialSelection,!0)):this._edits[0].range.endColumn===this._initialSelection.startColumn&&this._edits[0].range.endLineNumber===this._initialSelection.startLineNumber&&(i=!0,this._selectionId=t.trackSelection(this._initialSelection,!1))),i||(this._selectionId=t.trackSelection(this._initialSelection))}computeCursorState(e,t){return t.getTrackedSelection(this._selectionId)}}t.AutoIndentOnPasteCommand=L;class x{constructor(e){this.callOnDispose=new n.DisposableStore,this.callOnModel=new n.DisposableStore,this.editor=e,this.callOnDispose.add(e.onDidChangeConfiguration(()=>this.update())),this.callOnDispose.add(e.onDidChangeModel(()=>this.update())),this.callOnDispose.add(e.onDidChangeModelLanguage(()=>this.update()))}update(){ +this.callOnModel.clear(),this.editor.getOption(8)<4||this.editor.getOption(40)||this.editor.hasModel()&&this.callOnModel.add(this.editor.onDidPaste(({range:e})=>{this.trigger(e)}))}trigger(e){let t=this.editor.getSelections();if(null===t||t.length>1)return;const i=this.editor.getModel();if(!i)return;if(!i.isCheapToTokenize(e.getStartPosition().lineNumber))return;const n=this.editor.getOption(8),{tabSize:s,indentSize:a,insertSpaces:d}=i.getOptions();this.editor.pushUndoStop();let c=[],h={shiftIndent:e=>r.ShiftCommand.shiftIndent(e,e.length+1,s,a,d),unshiftIndent:e=>r.ShiftCommand.unshiftIndent(e,e.length+1,s,a,d)},g=e.startLineNumber;for(;g<=e.endLineNumber&&this.shouldIgnoreLine(i,g);)g++;if(g>e.endLineNumber)return;let m=i.getLineContent(g);if(!/\S/.test(m.substring(0,e.startColumn-1))){let e=u.LanguageConfigurationRegistry.getGoodIndentForLine(n,i,i.getLanguageIdentifier().id,g,h);if(null!==e){let t=o.getLeadingWhitespace(m),n=p.getSpaceCnt(e,s);if(n!==p.getSpaceCnt(t,s)){let e=p.generateIndent(n,s,d) +;c.push({range:new l.Range(g,1,g,t.length+1),text:e}),m=e+m.substr(t.length)}else{let e=u.LanguageConfigurationRegistry.getIndentMetadata(i,g);if(0===e||8===e)return}}}const f=g;for(;gi.getLineTokens(e),getLanguageIdentifier:()=>i.getLanguageIdentifier(),getLanguageIdAtPosition:(e,t)=>i.getLanguageIdAtPosition(e,t),getLineContent:e=>e===f?m:i.getLineContent(e)},r=u.LanguageConfigurationRegistry.getGoodIndentForLine(n,t,i.getLanguageIdentifier().id,g+1,h);if(null!==r){let t=p.getSpaceCnt(r,s),n=p.getSpaceCnt(o.getLeadingWhitespace(i.getLineContent(g+1)),s);if(t!==n){let r=t-n;for(let t=g+1;t<=e.endLineNumber;t++){let e=i.getLineContent(t),n=o.getLeadingWhitespace(e),a=p.getSpaceCnt(n,s)+r,h=p.generateIndent(a,s,d);h!==n&&c.push({range:new l.Range(t,1,t,n.length+1),text:h})}}}}let _=new L(c,this.editor.getSelection());this.editor.executeCommand("autoIndentOnPaste",_),this.editor.pushUndoStop()} +shouldIgnoreLine(e,t){e.forceTokenization(t);let i=e.getLineFirstNonWhitespaceColumn(t);if(0===i)return!0;let n=e.getLineTokens(t);if(n.getCount()>0){let e=n.findTokenIndexAtOffset(i);if(e>=0&&1===n.getStandardTokenType(e))return!0}return!1}dispose(){this.callOnDispose.dispose(),this.callOnModel.dispose()}}function D(e,t,i,n){if(1===e.getLineCount()&&1===e.getLineMaxColumn(1))return;let o="";for(let e=0;e({selection:e,index:t,ignore:!1}));i.sort((e,t)=>h.Range.compareRangesUsingStarts(e.selection,t.selection));let n=i[0];for(let e=1;enew c.Position(e.positionLineNumber,e.positionColumn)));let o=t.getSelection();if(null===o)return;let s=new a.TrimTrailingWhitespaceCommand(o,n);t.pushUndoStop(),t.executeCommands(this.id,[s]),t.pushUndoStop()}}t.TrimTrailingWhitespaceAction=E,E.ID="editor.action.trimTrailingWhitespace";class L extends s.EditorAction{constructor(){super({id:"editor.action.deleteLines",label:i.localize(13,null),alias:"Delete Line",precondition:g.EditorContextKeys.writable,kbOpts:{kbExpr:g.EditorContextKeys.textInputFocus,primary:3113,weight:100}})}run(e,t){if(!t.hasModel())return;let i=this._getLinesToRemove(t),n=t.getModel();if(1===n.getLineCount()&&1===n.getLineMaxColumn(1))return;let o=0,s=[],r=[];for(let e=0,t=i.length;e1&&(a-=1,c=n.getLineMaxColumn(a)),s.push(d.EditOperation.replace(new u.Selection(a,c,l,h),"")), +r.push(new u.Selection(a-o,t.positionColumn,a-o,t.positionColumn)),o+=t.endLineNumber-t.startLineNumber+1}t.pushUndoStop(),t.executeEdits(this.id,s,r),t.pushUndoStop()}_getLinesToRemove(e){let t=e.getSelections().map(e=>{let t=e.endLineNumber;return e.startLineNumbere.startLineNumber===t.startLineNumber?e.endLineNumber-t.endLineNumber:e.startLineNumber-t.startLineNumber);let i=[],n=t[0];for(let e=1;e=t[e].startLineNumber?n.endLineNumber=t[e].endLineNumber:(i.push(n),n=t[e]);return i.push(n),i}}t.DeleteLinesAction=L;class x extends s.EditorAction{constructor(){super({id:"editor.action.indentLines",label:i.localize(14,null),alias:"Indent Line",precondition:g.EditorContextKeys.writable,kbOpts:{kbExpr:g.EditorContextKeys.editorTextFocus,primary:2137,weight:100}})}run(e,t){const i=t._getViewModel() +;i&&(t.pushUndoStop(),t.executeCommands(this.id,l.TypeOperations.indent(i.cursorConfig,t.getModel(),t.getSelections())),t.pushUndoStop())}}t.IndentLinesAction=x;class D extends s.EditorAction{constructor(){super({id:"editor.action.outdentLines",label:i.localize(15,null),alias:"Outdent Line",precondition:g.EditorContextKeys.writable,kbOpts:{kbExpr:g.EditorContextKeys.editorTextFocus,primary:2135,weight:100}})}run(e,t){o.CoreEditingCommands.Outdent.runEditorCommand(e,t,null)}}class k extends s.EditorAction{constructor(){super({id:"editor.action.insertLineBefore",label:i.localize(16,null),alias:"Insert Line Above",precondition:g.EditorContextKeys.writable,kbOpts:{kbExpr:g.EditorContextKeys.editorTextFocus,primary:3075,weight:100}})}run(e,t){const i=t._getViewModel();i&&(t.pushUndoStop(),t.executeCommands(this.id,l.TypeOperations.lineInsertBefore(i.cursorConfig,t.getModel(),t.getSelections())))}}t.InsertLineBeforeAction=k;class N extends s.EditorAction{constructor(){super({id:"editor.action.insertLineAfter", +label:i.localize(17,null),alias:"Insert Line Below",precondition:g.EditorContextKeys.writable,kbOpts:{kbExpr:g.EditorContextKeys.editorTextFocus,primary:2051,weight:100}})}run(e,t){const i=t._getViewModel();i&&(t.pushUndoStop(),t.executeCommands(this.id,l.TypeOperations.lineInsertAfter(i.cursorConfig,t.getModel(),t.getSelections())))}}t.InsertLineAfterAction=N;class I extends s.EditorAction{run(e,t){if(!t.hasModel())return;const i=t.getSelection();let n=this._getRangesToDelete(t),o=[];for(let e=0,t=n.length-1;ed.EditOperation.replace(e,""));t.pushUndoStop(),t.executeEdits(this.id,r,s),t.pushUndoStop()}}t.AbstractDeleteAllToBoundaryAction=I;class M extends I{constructor(){super({id:"deleteAllLeft",label:i.localize(18,null),alias:"Delete All Left",precondition:g.EditorContextKeys.writable,kbOpts:{kbExpr:g.EditorContextKeys.textInputFocus, +primary:0,mac:{primary:2049},weight:100}})}_getEndCursorState(e,t){let i=null,n=[],o=0;return t.forEach(t=>{let s;if(1===t.endColumn&&o>0){let e=t.startLineNumber-o;s=new u.Selection(e,t.startColumn,e,t.startColumn)}else s=new u.Selection(t.startLineNumber,t.startColumn,t.startLineNumber,t.startColumn);o+=t.endLineNumber-t.startLineNumber,t.intersectRanges(e)?i=s:n.push(s)}),i&&n.unshift(i),n}_getRangesToDelete(e){let t=e.getSelections();if(null===t)return[];let i=t,n=e.getModel();return null===n?[]:(i.sort(h.Range.compareRangesUsingStarts),i=i.map(e=>{if(e.isEmpty()){if(1===e.startColumn){let t=Math.max(1,e.startLineNumber-1),i=1===e.startLineNumber?1:n.getLineContent(t).length+1;return new h.Range(t,i,e.startLineNumber,1)}return new h.Range(e.startLineNumber,1,e.startLineNumber,e.startColumn)}return new h.Range(e.startLineNumber,1,e.endLineNumber,e.endColumn)}))}}t.DeleteAllLeftAction=M;class R extends I{constructor(){super({id:"deleteAllRight",label:i.localize(19,null),alias:"Delete All Right", +precondition:g.EditorContextKeys.writable,kbOpts:{kbExpr:g.EditorContextKeys.textInputFocus,primary:0,mac:{primary:297,secondary:[2068]},weight:100}})}_getEndCursorState(e,t){let i=null,n=[];for(let o=0,s=t.length,r=0;o{if(e.isEmpty()){const i=t.getLineMaxColumn(e.startLineNumber);return e.startColumn===i?new h.Range(e.startLineNumber,e.startColumn,e.startLineNumber+1,1):new h.Range(e.startLineNumber,e.startColumn,e.startLineNumber,i)}return e});return n.sort(h.Range.compareRangesUsingStarts),n}}t.DeleteAllRightAction=R;class T extends s.EditorAction{constructor(){super({id:"editor.action.joinLines",label:i.localize(20,null),alias:"Join Lines",precondition:g.EditorContextKeys.writable,kbOpts:{ +kbExpr:g.EditorContextKeys.editorTextFocus,primary:0,mac:{primary:296},weight:100}})}run(e,t){let i=t.getSelections();if(null===i)return;let n=t.getSelection();if(null===n)return;i.sort(h.Range.compareRangesUsingStarts);let o=[],s=i.reduce((e,t)=>e.isEmpty()?e.endLineNumber===t.startLineNumber?(n.equalsSelection(e)&&(n=t),t):t.startLineNumber>e.endLineNumber+1?(o.push(e),t):new u.Selection(e.startLineNumber,e.startColumn,t.endLineNumber,t.endColumn):t.startLineNumber>e.endLineNumber?(o.push(e),t):new u.Selection(e.startLineNumber,e.startColumn,t.endLineNumber,t.endColumn));o.push(s);let r=t.getModel();if(null===r)return;let a=[],l=[],c=n,g=0;for(let e=0,t=o.length;e=1){let e=!0;""===v&&(e=!1),!e||" "!==v.charAt(v.length-1)&&"\t"!==v.charAt(v.length-1)||(e=!1,v=v.replace(/[\s\uFEFF\xA0]+$/g," "));let n=t.substr(i-1);v+=(e?" ":"")+n,f=e?n.length+1:n.length}else f=0}let C=new h.Range(p,m,t,i);if(!C.isEmpty()){let e;s.isEmpty()?(a.push(d.EditOperation.replace(C,v)),e=new u.Selection(C.startLineNumber-g,v.length-f+1,p-g,v.length-f+1)):s.startLineNumber===s.endLineNumber?(a.push(d.EditOperation.replace(C,v)),e=new u.Selection(s.startLineNumber-g,s.startColumn,s.endLineNumber-g,s.endColumn)):(a.push(d.EditOperation.replace(C,v)),e=new u.Selection(s.startLineNumber-g,s.startColumn,s.startLineNumber-g,v.length-_)),null!==h.Range.intersectRanges(C,n)?c=e:l.push(e)}g+=C.endLineNumber-C.startLineNumber}l.unshift(c),t.pushUndoStop(),t.executeEdits(this.id,a,l),t.pushUndoStop()}}t.JoinLinesAction=T;class O extends s.EditorAction{constructor(){super({ +id:"editor.action.transpose",label:i.localize(21,null),alias:"Transpose characters around the cursor",precondition:g.EditorContextKeys.writable})}run(e,t){let i=t.getSelections();if(null===i)return;let n=t.getModel();if(null===n)return;let o=[];for(let e=0,t=i.length;e=a){if(s.lineNumber===n.getLineCount())continue;let e=new h.Range(s.lineNumber,Math.max(1,s.column-1),s.lineNumber+1,1),t=n.getValueInRange(e).split("").reverse().join("");o.push(new r.ReplaceCommand(new u.Selection(s.lineNumber,Math.max(1,s.column-1),s.lineNumber+1,1),t))}else{let e=new h.Range(s.lineNumber,Math.max(1,s.column-1),s.lineNumber,s.column+1),t=n.getValueInRange(e).split("").reverse().join("");o.push(new r.ReplaceCommandThatPreservesSelection(e,t,new u.Selection(s.lineNumber,s.column+1,s.lineNumber,s.column+1)))}}t.pushUndoStop(),t.executeCommands(this.id,o),t.pushUndoStop()}}t.TransposeAction=O +;class A extends s.EditorAction{run(e,t){let i=t.getSelections();if(null===i)return;let n=t.getModel();if(null===n)return;let o=t.getOption(105),s=[];for(let e=0,a=i.length;e=0?(o=!0,n+=s):o?(o=!1,n+=s.toLocaleUpperCase()):n+=s.toLocaleLowerCase()}return n}}t.TitleCaseAction=W,s.registerEditorAction(class extends v{constructor(){super(!1,{id:"editor.action.copyLinesUpAction",label:i.localize(0,null),alias:"Copy Line Up",precondition:g.EditorContextKeys.writable,kbOpts:{kbExpr:g.EditorContextKeys.editorTextFocus,primary:1552,linux:{primary:3600},weight:100},menuOpts:{menuId:_.MenuId.MenubarSelectionMenu,group:"2_line",title:i.localize(1,null),order:1}})}}), +s.registerEditorAction(class extends v{constructor(){super(!0,{id:"editor.action.copyLinesDownAction",label:i.localize(2,null),alias:"Copy Line Down",precondition:g.EditorContextKeys.writable,kbOpts:{kbExpr:g.EditorContextKeys.editorTextFocus,primary:1554,linux:{primary:3602},weight:100},menuOpts:{menuId:_.MenuId.MenubarSelectionMenu,group:"2_line",title:i.localize(3,null),order:2}})}}),s.registerEditorAction(C),s.registerEditorAction(class extends b{constructor(){super(!1,{id:"editor.action.moveLinesUpAction",label:i.localize(6,null),alias:"Move Line Up",precondition:g.EditorContextKeys.writable,kbOpts:{kbExpr:g.EditorContextKeys.editorTextFocus,primary:528,linux:{primary:528},weight:100},menuOpts:{menuId:_.MenuId.MenubarSelectionMenu,group:"2_line",title:i.localize(7,null),order:3}})}}),s.registerEditorAction(class extends b{constructor(){super(!0,{id:"editor.action.moveLinesDownAction",label:i.localize(8,null),alias:"Move Line Down",precondition:g.EditorContextKeys.writable,kbOpts:{ +kbExpr:g.EditorContextKeys.editorTextFocus,primary:530,linux:{primary:530},weight:100},menuOpts:{menuId:_.MenuId.MenubarSelectionMenu,group:"2_line",title:i.localize(9,null),order:4}})}}),s.registerEditorAction(w),s.registerEditorAction(y),s.registerEditorAction(E),s.registerEditorAction(L),s.registerEditorAction(x),s.registerEditorAction(D),s.registerEditorAction(k),s.registerEditorAction(N),s.registerEditorAction(M),s.registerEditorAction(R),s.registerEditorAction(T),s.registerEditorAction(O),s.registerEditorAction(P),s.registerEditorAction(F),s.registerEditorAction(W)})),define(t[176],i([0,1,15,12,11,18,17,25]),(function(e,t,i,n,o,s,a,l){"use strict";function d(e,t,o,r){const a=s.SignatureHelpProviderRegistry.ordered(e);return i.first(a.map(i=>()=>Promise.resolve(i.provideSignatureHelp(e,t,r,o)).catch(e=>n.onUnexpectedExternalError(e))))}Object.defineProperty(t,"__esModule",{value:!0}),t.provideSignatureHelp=t.Context=void 0,t.Context={Visible:new a.RawContextKey("parameterHintsVisible",!1), +MultipleSignatures:new a.RawContextKey("parameterHintsMultipleSignatures",!1)},t.provideSignatureHelp=d,o.registerDefaultLanguageCommand("_executeSignatureHelpProvider",(e,t,i)=>r(void 0,void 0,void 0,(function*(){const n=yield d(e,t,{triggerKind:s.SignatureHelpTriggerKind.Invoke,isRetrigger:!1,triggerCharacter:i.triggerCharacter},l.CancellationToken.None);if(n)return setTimeout(()=>n.dispose(),0),n.value})))})),define(t[575],i([0,1,15,12,4,2,87,18,176]),(function(e,t,i,n,o,s,a,l,d){"use strict";var c;Object.defineProperty(t,"__esModule",{value:!0}),t.ParameterHintsModel=void 0,function(e){e.Default={type:0};e.Pending=class{constructor(e){this.request=e,this.type=2}};e.Active=class{constructor(e){this.hints=e,this.type=1}}}(c||(c={}));class h extends s.Disposable{constructor(e,t=h.DEFAULT_DELAY){super(),this._onChangedHints=this._register(new o.Emitter),this.onChangedHints=this._onChangedHints.event,this.triggerOnType=!1,this._state=c.Default,this._pendingTriggers=[], +this._lastSignatureHelpResult=this._register(new s.MutableDisposable),this.triggerChars=new a.CharacterSet,this.retriggerChars=new a.CharacterSet,this.triggerId=0,this.editor=e,this.throttledDelayer=new i.Delayer(t),this._register(this.editor.onDidChangeConfiguration(()=>this.onEditorConfigurationChange())),this._register(this.editor.onDidChangeModel(e=>this.onModelChanged())),this._register(this.editor.onDidChangeModelLanguage(e=>this.onModelChanged())),this._register(this.editor.onDidChangeCursorSelection(e=>this.onCursorChange(e))),this._register(this.editor.onDidChangeModelContent(e=>this.onModelContentChange())),this._register(l.SignatureHelpProviderRegistry.onDidChange(this.onModelChanged,this)),this._register(this.editor.onDidType(e=>this.onDidType(e))),this.onEditorConfigurationChange(),this.onModelChanged()}get state(){return this._state}set state(e){2===this._state.type&&this._state.request.cancel(),this._state=e}cancel(e=!1){this.state=c.Default,this.throttledDelayer.cancel(), +e||this._onChangedHints.fire(void 0)}trigger(e,t){const i=this.editor.getModel();if(!i||!l.SignatureHelpProviderRegistry.has(i))return;const o=++this.triggerId;this._pendingTriggers.push(e),this.throttledDelayer.trigger(()=>this.doTrigger(o),t).catch(n.onUnexpectedError)}next(){if(1!==this.state.type)return;const e=this.state.hints.signatures.length,t=this.state.hints.activeSignature,i=t%e==e-1,n=this.editor.getOption(67).cycle;!(e<2||i)||n?this.updateActiveSignature(i&&n?0:t+1):this.cancel()}previous(){if(1!==this.state.type)return;const e=this.state.hints.signatures.length,t=this.state.hints.activeSignature,i=0===t,n=this.editor.getOption(67).cycle;!(e<2||i)||n?this.updateActiveSignature(i&&n?e-1:t-1):this.cancel()}updateActiveSignature(e){1===this.state.type&&(this.state=new c.Active(Object.assign(Object.assign({},this.state.hints),{activeSignature:e})),this._onChangedHints.fire(this.state.hints))}doTrigger(e){return r(this,void 0,void 0,(function*(){ +const t=1===this.state.type||2===this.state.type,o=1===this.state.type?this.state.hints:void 0;if(this.cancel(!0),0===this._pendingTriggers.length)return!1;const s=this._pendingTriggers.reduce(u);this._pendingTriggers=[];const r={triggerKind:s.triggerKind,triggerCharacter:s.triggerCharacter,isRetrigger:t,activeSignatureHelp:o};if(!this.editor.hasModel())return!1;const a=this.editor.getModel(),l=this.editor.getPosition();this.state=new c.Pending(i.createCancelablePromise(e=>d.provideSignatureHelp(a,l,r,e)));try{const t=yield this.state.request;return e!==this.triggerId?(null==t||t.dispose(),!1):t&&t.value.signatures&&0!==t.value.signatures.length?(this.state=new c.Active(t.value),this._lastSignatureHelpResult.value=t,this._onChangedHints.fire(this.state.hints),!0):(null==t||t.dispose(),this._lastSignatureHelpResult.clear(),this.cancel(),!1)}catch(t){return e===this.triggerId&&(this.state=c.Default),n.onUnexpectedError(t),!1}}))}get isTriggered(){ +return 1===this.state.type||2===this.state.type||this.throttledDelayer.isTriggered()}onModelChanged(){this.cancel(),this.triggerChars=new a.CharacterSet,this.retriggerChars=new a.CharacterSet;const e=this.editor.getModel();if(e)for(const t of l.SignatureHelpProviderRegistry.ordered(e)){for(const e of t.signatureHelpTriggerCharacters||[])this.triggerChars.add(e.charCodeAt(0)),this.retriggerChars.add(e.charCodeAt(0));for(const e of t.signatureHelpRetriggerCharacters||[])this.retriggerChars.add(e.charCodeAt(0))}}onDidType(e){if(!this.triggerOnType)return;const t=e.length-1,i=e.charCodeAt(t);(this.triggerChars.has(i)||this.isTriggered&&this.retriggerChars.has(i))&&this.trigger({triggerKind:l.SignatureHelpTriggerKind.TriggerCharacter,triggerCharacter:e.charAt(t)})}onCursorChange(e){"mouse"===e.source?this.cancel():this.isTriggered&&this.trigger({triggerKind:l.SignatureHelpTriggerKind.ContentChange})}onModelContentChange(){this.isTriggered&&this.trigger({triggerKind:l.SignatureHelpTriggerKind.ContentChange})} +onEditorConfigurationChange(){this.triggerOnType=this.editor.getOption(67).enabled,this.triggerOnType||this.cancel()}dispose(){this.cancel(!0),super.dispose()}}function u(e,t){switch(t.triggerKind){case l.SignatureHelpTriggerKind.Invoke:return t;case l.SignatureHelpTriggerKind.ContentChange:return e;case l.SignatureHelpTriggerKind.TriggerCharacter:default:return t}}t.ParameterHintsModel=h,h.DEFAULT_DELAY=120})),define(t[576],i([0,1,19,25,11,13,3,20,22,18,488,33,2,401,223,28,12]),(function(e,t,i,n,o,s,a,l,d,c,h,u,g,p,m,f,_){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.provideSelectionRanges=void 0;class v{constructor(e,t){this.index=e,this.ranges=t}mov(e){let t=this.index+(e?1:-1);if(t<0||t>=this.ranges.length)return this;const i=new v(t,this.ranges);return i.ranges[t].equalsRange(this.ranges[this.index])?i.mov(e):i}}class C{constructor(e){this._ignoreSelection=!1,this._editor=e}static get(e){return e.getContribution(C.ID)}dispose(){g.dispose(this._selectionListener)}run(e){ +if(!this._editor.hasModel())return;const t=this._editor.getSelections(),o=this._editor.getModel();if(!c.SelectionRangeRegistry.has(o))return;let s=Promise.resolve(void 0);return this._state||(s=S(o,t.map(e=>e.getPosition()),n.CancellationToken.None).then(e=>{if(i.isNonEmptyArray(e)&&e.length===t.length&&this._editor.hasModel()&&i.equals(this._editor.getSelections(),t,(e,t)=>e.equalsSelection(t))){for(let i=0;ie.containsPosition(t[i].getStartPosition())&&e.containsPosition(t[i].getEndPosition())),e[i].unshift(t[i]);this._state=e.map(e=>new v(0,e)),g.dispose(this._selectionListener),this._selectionListener=this._editor.onDidChangeCursorPosition(()=>{this._ignoreSelection||(g.dispose(this._selectionListener),this._state=void 0)})}})),s.then(()=>{if(!this._state)return;this._state=this._state.map(t=>t.mov(e));const t=this._state.map(e=>l.Selection.fromPositions(e.ranges[e.index].getStartPosition(),e.ranges[e.index].getEndPosition()));this._ignoreSelection=!0;try{ +this._editor.setSelections(t)}finally{this._ignoreSelection=!1}})}}C.ID="editor.contrib.smartSelectController";class b extends o.EditorAction{constructor(e,t){super(t),this._forward=e}run(e,t){return r(this,void 0,void 0,(function*(){let e=C.get(t);e&&(yield e.run(this._forward))}))}}f.CommandsRegistry.registerCommandAlias("editor.action.smartSelect.grow","editor.action.smartSelect.expand");function S(e,t,n){const o=c.SelectionRangeRegistry.all(e);1===o.length&&o.unshift(new m.BracketSelectionRangeProvider);let r=[],l=[];for(const s of o)r.push(Promise.resolve(s.provideSelectionRanges(e,t,n)).then(e=>{if(i.isNonEmptyArray(e)&&e.length===t.length)for(let i=0;il.map(t=>{if(0===t.length)return[] +;t.sort((e,t)=>s.Position.isBefore(e.getStartPosition(),t.getStartPosition())?1:s.Position.isBefore(t.getStartPosition(),e.getStartPosition())?-1:s.Position.isBefore(e.getEndPosition(),t.getEndPosition())?-1:s.Position.isBefore(t.getEndPosition(),e.getEndPosition())?1:0);let i,n=[];for(const e of t)(!i||a.Range.containsRange(e,i)&&!a.Range.equalsRange(e,i))&&(n.push(e),i=e);let o=[n[0]];for(let t=1;t{this._resolveCache=void 0,this._isResolved=!1});this._resolveCache=Promise.resolve(this.provider.resolveCompletionItem(this.completion,e)).then(e=>{Object.assign(this.completion,e),this._isResolved=!0,t.dispose()},e=>{i.isPromiseCanceledError(e)&&(this._resolveCache=void 0,this._isResolved=!1)})}return this._resolveCache}))}}t.CompletionItem=p;class m{constructor(e=2,t=new Set,i=new Set){this.snippetSortOrder=e,this.kindFilter=t,this.providerFilter=i}}let f;t.CompletionOptions=m, +m.default=new m,t.getSnippetSuggestSupport=function(){return f};class _{constructor(e,t,i){this.items=e,this.needsClipboard=t,this.dispoables=i}}function v(e,t,n=m.default,s={triggerKind:0},a=l.CancellationToken.None){return r(this,void 0,void 0,(function*(){t=t.clone();const l=e.getWordAtPosition(t),c=l?new d.Range(t.lineNumber,l.startColumn,t.lineNumber,l.endColumn):d.Range.fromPositions(t),u={replace:c,insert:c.setEndPosition(t.lineNumber,t.column)},m=[],v=new h.DisposableStore;let C=!1;const b=(e,i)=>{if(i){for(let o of i.suggestions)n.kindFilter.has(o.kind)||(o.range||(o.range=u),o.sortText||(o.sortText="string"==typeof o.label?o.label:o.label.name),!C&&o.insertTextRules&&4&o.insertTextRules&&(C=g.SnippetParser.guessNeedsClipboard(o.insertText)),m.push(new p(t,o,i,e)));h.isDisposable(i)&&v.add(i)}},w=(()=>r(this,void 0,void 0,(function*(){if(!f||n.kindFilter.has(27))return;if(n.providerFilter.size>0&&!n.providerFilter.has(f))return;const i=yield f.provideCompletionItems(e,t,s,a);b(f,i)})))() +;for(let l of o.CompletionProviderRegistry.orderedGroups(e)){let o=m.length;if(yield Promise.all(l.map(o=>r(this,void 0,void 0,(function*(){if(!(n.providerFilter.size>0)||n.providerFilter.has(o))try{const i=yield o.provideCompletionItems(e,t,s,a);b(o,i)}catch(e){i.onUnexpectedExternalError(e)}})))),o!==m.length||a.isCancellationRequested)break}return yield w,a.isCancellationRequested?(v.dispose(),Promise.reject(i.canceled())):new _(m.sort(S(n.snippetSortOrder)),C,v)}))}function C(e,t){if(e.sortTextLow&&t.sortTextLow){if(e.sortTextLowt.sortTextLow)return 1}return e.completion.labelt.completion.label?1:e.completion.kind-t.completion.kind}t.provideSuggestionItems=v;const b=new Map;function S(e){return b.get(e)}b.set(0,(function(e,t){if(e.completion.kind!==t.completion.kind){if(27===e.completion.kind)return-1;if(27===t.completion.kind)return 1}return C(e,t)})),b.set(2,(function(e,t){if(e.completion.kind!==t.completion.kind){ +if(27===e.completion.kind)return 1;if(27===t.completion.kind)return-1}return C(e,t)})),b.set(1,C),t.getSuggestionComparator=S,n.registerDefaultLanguageCommand("_executeCompletionItemProvider",(e,t,i)=>r(void 0,void 0,void 0,(function*(){const n={incomplete:!1,suggestions:[]},o=[],s=i.maxItemsToResolve||0,r=yield v(e,t);for(const e of r.items)o.lengthr.dispoables.dispose(),100)}})));const w=new class{constructor(){this.onlyOnceSuggestions=[]}provideCompletionItems(){let e={suggestions:this.onlyOnceSuggestions.slice(0)};return this.onlyOnceSuggestions.length=0,e}};o.CompletionProviderRegistry.register("*",w),t.showSimpleSuggestions=function(e,t){setTimeout(()=>{w.onlyOnceSuggestions.push(...t),e.getContribution("editor.contrib.suggestController").triggerSuggest((new Set).add(w))},0)}})), +define(t[247],i([0,1,492,48,11,174]),(function(e,t,i,n,o,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ToggleTabFocusModeAction=void 0;class r extends o.EditorAction{constructor(){super({id:r.ID,label:i.localize(0,null),alias:"Toggle Tab Key Moves Focus",precondition:void 0,kbOpts:{kbExpr:null,primary:2091,mac:{primary:1323},weight:100}})}run(e,t){const o=!s.TabFocus.getTabFocusMode();s.TabFocus.setTabFocusMode(o),o?n.alert(i.localize(1,null)):n.alert(i.localize(2,null))}}t.ToggleTabFocusModeAction=r,r.ID="editor.action.toggleTabFocusMode",o.registerEditorAction(r)})),define(t[577],i([0,1,493,11,111]),(function(e,t,i,n,o){"use strict";Object.defineProperty(t,"__esModule",{value:!0});class s extends n.EditorAction{constructor(){super({id:"editor.action.forceRetokenize",label:i.localize(0,null),alias:"Developer: Force Retokenize",precondition:void 0})}run(e,t){if(!t.hasModel())return;const i=t.getModel();i.resetTokenization();const n=new o.StopWatch(!0) +;i.forceTokenization(i.getLineCount()),n.stop(),console.log(`tokenization took ${n.elapsed()}`)}}n.registerEditorAction(s)})),define(t[578],i([0,1,494,2,11,27,173]),(function(e,t,i,n,o,s,d){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const c="ignoreUnusualLineTerminators";let h=class extends n.Disposable{constructor(e,t,i){super(),this._editor=e,this._dialogService=t,this._codeEditorService=i,this._config=this._editor.getOption(103),this._register(this._editor.onDidChangeConfiguration(e=>{e.hasChanged(103)&&(this._config=this._editor.getOption(103),this._checkForUnusualLineTerminators())})),this._register(this._editor.onDidChangeModel(()=>{this._checkForUnusualLineTerminators()})),this._register(this._editor.onDidChangeModelContent(e=>{e.isUndoing||this._checkForUnusualLineTerminators()}))}_checkForUnusualLineTerminators(){return r(this,void 0,void 0,(function*(){if("off"===this._config)return;if(!this._editor.hasModel())return;const e=this._editor.getModel() +;e.mightContainUnusualLineTerminators()&&!0!==function(e,t){return e.getModelProperty(t.uri,c)}(this._codeEditorService,e)&&(this._editor.getOption(72)||("auto"!==this._config?(yield this._dialogService.confirm({title:i.localize(0,null),message:i.localize(1,null),detail:i.localize(2,null),primaryButton:i.localize(3,null),secondaryButton:i.localize(4,null)})).confirmed?e.removeUnusualLineTerminators(this._editor.getSelections()):function(e,t,i){e.setModelProperty(t.uri,c,i)}(this._codeEditorService,e,!0):e.removeUnusualLineTerminators(this._editor.getSelections())))}))}};h.ID="editor.contrib.unusualLineTerminatorsDetector",h=a([l(1,d.IDialogService),l(2,s.ICodeEditorService)],h),o.registerEditorContribution(h.ID,h)})),define(t[248],i([0,1,11,88,45,129,99,13,3,20,22,62,17,38]),(function(e,t,i,n,o,s,r,a,l,d,c,h,u,g){"use strict";Object.defineProperty(t,"__esModule",{value:!0}), +t.DeleteWordRight=t.DeleteWordEndRight=t.DeleteWordStartRight=t.DeleteWordLeft=t.DeleteWordEndLeft=t.DeleteWordStartLeft=t.DeleteWordRightCommand=t.DeleteWordLeftCommand=t.DeleteWordCommand=t.CursorWordAccessibilityRightSelect=t.CursorWordAccessibilityRight=t.CursorWordRightSelect=t.CursorWordEndRightSelect=t.CursorWordStartRightSelect=t.CursorWordRight=t.CursorWordEndRight=t.CursorWordStartRight=t.CursorWordAccessibilityLeftSelect=t.CursorWordAccessibilityLeft=t.CursorWordLeftSelect=t.CursorWordEndLeftSelect=t.CursorWordStartLeftSelect=t.CursorWordLeft=t.CursorWordEndLeft=t.CursorWordStartLeft=t.WordRightCommand=t.WordLeftCommand=t.MoveWordCommand=void 0;class p extends i.EditorCommand{constructor(e){super(e),this._inSelectionMode=e.inSelectionMode,this._wordNavigationType=e.wordNavigationType}runEditorCommand(e,t,i){if(!t.hasModel())return;const n=r.getMapForWordSeparators(t.getOption(105)),s=t.getModel(),l=t.getSelections().map(e=>{ +const t=new a.Position(e.positionLineNumber,e.positionColumn),i=this._move(n,s,t,this._wordNavigationType);return this._moveTo(e,i,this._inSelectionMode)});if(s.pushStackElement(),t._getViewModel().setCursorStates("moveWordCommand",0,l.map(e=>o.CursorState.fromModelSelection(e))),1===l.length){const e=new a.Position(l[0].positionLineNumber,l[0].positionColumn);t.revealPosition(e,0)}}_moveTo(e,t,i){return i?new d.Selection(e.selectionStartLineNumber,e.selectionStartColumn,t.lineNumber,t.column):new d.Selection(t.lineNumber,t.column,t.lineNumber,t.column)}}t.MoveWordCommand=p;class m extends p{_move(e,t,i,n){return s.WordOperations.moveWordLeft(e,t,i,n)}}t.WordLeftCommand=m;class f extends p{_move(e,t,i,n){return s.WordOperations.moveWordRight(e,t,i,n)}}t.WordRightCommand=f;class _ extends m{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:"cursorWordStartLeft",precondition:void 0})}}t.CursorWordStartLeft=_;class v extends m{constructor(){super({inSelectionMode:!1,wordNavigationType:2, +id:"cursorWordEndLeft",precondition:void 0})}}t.CursorWordEndLeft=v;class C extends m{constructor(){super({inSelectionMode:!1,wordNavigationType:1,id:"cursorWordLeft",precondition:void 0,kbOpts:{kbExpr:c.EditorContextKeys.textInputFocus,primary:2063,mac:{primary:527},weight:100}})}}t.CursorWordLeft=C;class b extends m{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:"cursorWordStartLeftSelect",precondition:void 0})}}t.CursorWordStartLeftSelect=b;class S extends m{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordEndLeftSelect",precondition:void 0})}}t.CursorWordEndLeftSelect=S;class w extends m{constructor(){super({inSelectionMode:!0,wordNavigationType:1,id:"cursorWordLeftSelect",precondition:void 0,kbOpts:{kbExpr:c.EditorContextKeys.textInputFocus,primary:3087,mac:{primary:1551},weight:100}})}}t.CursorWordLeftSelect=w;class y extends m{constructor(){super({inSelectionMode:!1,wordNavigationType:3,id:"cursorWordAccessibilityLeft",precondition:void 0,kbOpts:{ +kbExpr:u.ContextKeyExpr.and(c.EditorContextKeys.textInputFocus,h.CONTEXT_ACCESSIBILITY_MODE_ENABLED),win:{primary:2063},weight:101}})}_move(e,t,i,n){return super._move(r.getMapForWordSeparators(g.EditorOptions.wordSeparators.defaultValue),t,i,n)}}t.CursorWordAccessibilityLeft=y;class E extends m{constructor(){super({inSelectionMode:!0,wordNavigationType:3,id:"cursorWordAccessibilityLeftSelect",precondition:void 0,kbOpts:{kbExpr:u.ContextKeyExpr.and(c.EditorContextKeys.textInputFocus,h.CONTEXT_ACCESSIBILITY_MODE_ENABLED),win:{primary:3087},weight:101}})}_move(e,t,i,n){return super._move(r.getMapForWordSeparators(g.EditorOptions.wordSeparators.defaultValue),t,i,n)}}t.CursorWordAccessibilityLeftSelect=E;class L extends f{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:"cursorWordStartRight",precondition:void 0})}}t.CursorWordStartRight=L;class x extends f{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordEndRight",precondition:void 0,kbOpts:{ +kbExpr:c.EditorContextKeys.textInputFocus,primary:2065,mac:{primary:529},weight:100}})}}t.CursorWordEndRight=x;class D extends f{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordRight",precondition:void 0})}}t.CursorWordRight=D;class k extends f{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:"cursorWordStartRightSelect",precondition:void 0})}}t.CursorWordStartRightSelect=k;class N extends f{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordEndRightSelect",precondition:void 0,kbOpts:{kbExpr:c.EditorContextKeys.textInputFocus,primary:3089,mac:{primary:1553},weight:100}})}}t.CursorWordEndRightSelect=N;class I extends f{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordRightSelect",precondition:void 0})}}t.CursorWordRightSelect=I;class M extends f{constructor(){super({inSelectionMode:!1,wordNavigationType:3,id:"cursorWordAccessibilityRight",precondition:void 0,kbOpts:{ +kbExpr:u.ContextKeyExpr.and(c.EditorContextKeys.textInputFocus,h.CONTEXT_ACCESSIBILITY_MODE_ENABLED),win:{primary:2065},weight:101}})}_move(e,t,i,n){return super._move(r.getMapForWordSeparators(g.EditorOptions.wordSeparators.defaultValue),t,i,n)}}t.CursorWordAccessibilityRight=M;class R extends f{constructor(){super({inSelectionMode:!0,wordNavigationType:3,id:"cursorWordAccessibilityRightSelect",precondition:void 0,kbOpts:{kbExpr:u.ContextKeyExpr.and(c.EditorContextKeys.textInputFocus,h.CONTEXT_ACCESSIBILITY_MODE_ENABLED),win:{primary:3089},weight:101}})}_move(e,t,i,n){return super._move(r.getMapForWordSeparators(g.EditorOptions.wordSeparators.defaultValue),t,i,n)}}t.CursorWordAccessibilityRightSelect=R;class T extends i.EditorCommand{constructor(e){super(e),this._whitespaceHeuristics=e.whitespaceHeuristics,this._wordNavigationType=e.wordNavigationType}runEditorCommand(e,t,i){if(!t.hasModel())return;const o=r.getMapForWordSeparators(t.getOption(105)),s=t.getModel(),a=t.getSelections().map(e=>{ +const t=this._delete(o,s,e,this._whitespaceHeuristics,this._wordNavigationType);return new n.ReplaceCommand(t,"")});t.pushUndoStop(),t.executeCommands(this.id,a),t.pushUndoStop()}}t.DeleteWordCommand=T;class O extends T{_delete(e,t,i,n,o){let r=s.WordOperations.deleteWordLeft(e,t,i,n,o);return r||new l.Range(1,1,1,1)}}t.DeleteWordLeftCommand=O;class A extends T{_delete(e,t,i,n,o){let r=s.WordOperations.deleteWordRight(e,t,i,n,o);if(r)return r;const a=t.getLineCount(),d=t.getLineMaxColumn(a);return new l.Range(a,d,a,d)}}t.DeleteWordRightCommand=A;class P extends O{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:0,id:"deleteWordStartLeft",precondition:c.EditorContextKeys.writable})}}t.DeleteWordStartLeft=P;class F extends O{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:2,id:"deleteWordEndLeft",precondition:c.EditorContextKeys.writable})}}t.DeleteWordEndLeft=F;class W extends O{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:0,id:"deleteWordLeft", +precondition:c.EditorContextKeys.writable,kbOpts:{kbExpr:c.EditorContextKeys.textInputFocus,primary:2049,mac:{primary:513},weight:100}})}}t.DeleteWordLeft=W;class B extends A{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:0,id:"deleteWordStartRight",precondition:c.EditorContextKeys.writable})}}t.DeleteWordStartRight=B;class V extends A{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:2,id:"deleteWordEndRight",precondition:c.EditorContextKeys.writable})}}t.DeleteWordEndRight=V;class z extends A{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:2,id:"deleteWordRight",precondition:c.EditorContextKeys.writable,kbOpts:{kbExpr:c.EditorContextKeys.textInputFocus,primary:2068,mac:{primary:532},weight:100}})}}t.DeleteWordRight=z,i.registerEditorCommand(new _),i.registerEditorCommand(new v),i.registerEditorCommand(new C),i.registerEditorCommand(new b),i.registerEditorCommand(new S),i.registerEditorCommand(new w),i.registerEditorCommand(new L),i.registerEditorCommand(new x), +i.registerEditorCommand(new D),i.registerEditorCommand(new k),i.registerEditorCommand(new N),i.registerEditorCommand(new I),i.registerEditorCommand(new y),i.registerEditorCommand(new E),i.registerEditorCommand(new M),i.registerEditorCommand(new R),i.registerEditorCommand(new P),i.registerEditorCommand(new F),i.registerEditorCommand(new W),i.registerEditorCommand(new B),i.registerEditorCommand(new V),i.registerEditorCommand(new z)})),define(t[579],i([0,1,11,129,3,22,248,28]),(function(e,t,i,n,o,s,r,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CursorWordPartRightSelect=t.CursorWordPartRight=t.WordPartRightCommand=t.CursorWordPartLeftSelect=t.CursorWordPartLeft=t.WordPartLeftCommand=t.DeleteWordPartRight=t.DeleteWordPartLeft=void 0;class l extends r.DeleteWordCommand{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:0,id:"deleteWordPartLeft",precondition:s.EditorContextKeys.writable,kbOpts:{kbExpr:s.EditorContextKeys.textInputFocus,primary:0,mac:{primary:769},weight:100}})} +_delete(e,t,i,s,r){let a=n.WordPartOperations.deleteWordPartLeft(e,t,i,s);return a||new o.Range(1,1,1,1)}}t.DeleteWordPartLeft=l;class d extends r.DeleteWordCommand{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:2,id:"deleteWordPartRight",precondition:s.EditorContextKeys.writable,kbOpts:{kbExpr:s.EditorContextKeys.textInputFocus,primary:0,mac:{primary:788},weight:100}})}_delete(e,t,i,s,r){let a=n.WordPartOperations.deleteWordPartRight(e,t,i,s);if(a)return a;const l=t.getLineCount(),d=t.getLineMaxColumn(l);return new o.Range(l,d,l,d)}}t.DeleteWordPartRight=d;class c extends r.MoveWordCommand{_move(e,t,i,o){return n.WordPartOperations.moveWordPartLeft(e,t,i)}}t.WordPartLeftCommand=c;class h extends c{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:"cursorWordPartLeft",precondition:void 0,kbOpts:{kbExpr:s.EditorContextKeys.textInputFocus,primary:0,mac:{primary:783},weight:100}})}}t.CursorWordPartLeft=h, +a.CommandsRegistry.registerCommandAlias("cursorWordPartStartLeft","cursorWordPartLeft");class u extends c{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:"cursorWordPartLeftSelect",precondition:void 0,kbOpts:{kbExpr:s.EditorContextKeys.textInputFocus,primary:0,mac:{primary:1807},weight:100}})}}t.CursorWordPartLeftSelect=u,a.CommandsRegistry.registerCommandAlias("cursorWordPartStartLeftSelect","cursorWordPartLeftSelect");class g extends r.MoveWordCommand{_move(e,t,i,o){return n.WordPartOperations.moveWordPartRight(e,t,i)}}t.WordPartRightCommand=g;class p extends g{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordPartRight",precondition:void 0,kbOpts:{kbExpr:s.EditorContextKeys.textInputFocus,primary:0,mac:{primary:785},weight:100}})}}t.CursorWordPartRight=p;class m extends g{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordPartRightSelect",precondition:void 0,kbOpts:{kbExpr:s.EditorContextKeys.textInputFocus,primary:0,mac:{primary:1809}, +weight:100}})}}t.CursorWordPartRightSelect=m,i.registerEditorCommand(new l),i.registerEditorCommand(new d),i.registerEditorCommand(new h),i.registerEditorCommand(new u),i.registerEditorCommand(new p),i.registerEditorCommand(new m)})),define(t[580],i([0,1,36,7,2,11,348]),(function(e,t,i,n,o,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.IPadShowKeyboard=void 0;class r extends o.Disposable{constructor(e){super(),this.editor=e,this.widget=null,i.isIPad&&(this._register(e.onDidChangeConfiguration(()=>this.update())),this.update())}update(){const e=!this.editor.getOption(72);!this.widget&&e?this.widget=new a(this.editor):this.widget&&!e&&(this.widget.dispose(),this.widget=null)}dispose(){super.dispose(),this.widget&&(this.widget.dispose(),this.widget=null)}}t.IPadShowKeyboard=r,r.ID="editor.contrib.iPadShowKeyboard";class a extends o.Disposable{constructor(e){super(),this.editor=e,this._domNode=document.createElement("textarea"),this._domNode.className="iPadShowKeyboard", +this._register(n.addDisposableListener(this._domNode,"touchstart",e=>{this.editor.focus()})),this._register(n.addDisposableListener(this._domNode,"focus",e=>{this.editor.focus()})),this.editor.addOverlayWidget(this)}dispose(){this.editor.removeOverlayWidget(this),super.dispose()}getId(){return a.ID}getDomNode(){return this._domNode}getPosition(){return{preference:1}}}a.ID="editor.contrib.ShowKeyboardWidget",s.registerEditorContribution(r.ID,r)})),define(t[581],i([0,1,11,106,61]),(function(e,t,i,n,o){"use strict";Object.defineProperty(t,"__esModule",{value:!0});class s extends i.EditorAction{constructor(){super({id:"editor.action.toggleHighContrast",label:o.ToggleHighContrastNLS.toggleHighContrast,alias:"Toggle High Contrast Theme",precondition:void 0}),this._originalThemeName=null}run(e,t){const i=e.get(n.IStandaloneThemeService);this._originalThemeName?(i.setTheme(this._originalThemeName),this._originalThemeName=null):(this._originalThemeName=i.getColorTheme().themeName,i.setTheme("hc-black"))}} +i.registerEditorAction(s)})),define(t[21],i([0,1,34,29,4,503,242,15]),(function(e,t,i,n,o,s,r,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0}), +t.workbenchColorsSchemaId=t.resolveColorValue=t.oneOf=t.transparent=t.lighten=t.darken=t.problemsInfoIconForeground=t.problemsWarningIconForeground=t.problemsErrorIconForeground=t.minimapSliderActiveBackground=t.minimapSliderHoverBackground=t.minimapSliderBackground=t.minimapBackground=t.minimapWarning=t.minimapError=t.minimapSelection=t.minimapFindMatch=t.overviewRulerSelectionHighlightForeground=t.overviewRulerFindMatchForeground=t.snippetFinalTabstopHighlightBorder=t.snippetFinalTabstopHighlightBackground=t.snippetTabstopHighlightBorder=t.snippetTabstopHighlightBackground=t.menuSeparatorBackground=t.menuSelectionBorder=t.menuSelectionBackground=t.menuSelectionForeground=t.menuBackground=t.menuForeground=t.menuBorder=t.treeIndentGuidesStroke=t.listFilterWidgetNoMatchesOutline=t.listFilterWidgetOutline=t.listFilterWidgetBackground=t.listHighlightForeground=t.listDropBackground=t.listHoverForeground=t.listHoverBackground=t.listInactiveFocusBackground=t.listInactiveSelectionForeground=t.listInactiveSelectionBackground=t.listActiveSelectionForeground=t.listActiveSelectionBackground=t.listFocusForeground=t.listFocusBackground=t.diffDiagonalFill=t.diffBorder=t.diffRemovedOutline=t.diffInsertedOutline=t.diffRemoved=t.diffInserted=t.defaultRemoveColor=t.defaultInsertColor=t.editorLightBulbAutoFixForeground=t.editorLightBulbForeground=t.editorActiveLinkForeground=t.editorHoverStatusBarBackground=t.editorHoverBorder=t.editorHoverForeground=t.editorHoverBackground=t.editorHoverHighlight=t.editorFindRangeHighlightBorder=t.editorFindMatchHighlightBorder=t.editorFindMatchBorder=t.editorFindRangeHighlight=t.editorFindMatchHighlight=t.editorFindMatch=t.editorSelectionHighlightBorder=t.editorSelectionHighlight=t.editorInactiveSelection=t.editorSelectionForeground=t.editorSelectionBackground=t.pickerGroupBorder=t.pickerGroupForeground=t.quickInputTitleBackground=t.quickInputForeground=t.quickInputBackground=t.editorWidgetResizeBorder=t.editorWidgetBorder=t.editorWidgetForeground=t.editorWidgetBackground=t.editorForeground=t.editorBackground=t.editorHintBorder=t.editorHintForeground=t.editorInfoBorder=t.editorInfoForeground=t.editorWarningBorder=t.editorWarningForeground=t.editorErrorBorder=t.editorErrorForeground=t.progressBarBackground=t.scrollbarSliderActiveBackground=t.scrollbarSliderHoverBackground=t.scrollbarSliderBackground=t.scrollbarShadow=t.badgeForeground=t.badgeBackground=t.buttonHoverBackground=t.buttonBackground=t.buttonForeground=t.selectForeground=t.selectBackground=t.inputValidationErrorBorder=t.inputValidationErrorForeground=t.inputValidationErrorBackground=t.inputValidationWarningBorder=t.inputValidationWarningForeground=t.inputValidationWarningBackground=t.inputValidationInfoBorder=t.inputValidationInfoForeground=t.inputValidationInfoBackground=t.inputActiveOptionForeground=t.inputActiveOptionBackground=t.inputActiveOptionBorder=t.inputBorder=t.inputForeground=t.inputBackground=t.widgetShadow=t.textCodeBlockBackground=t.textLinkForeground=t.activeContrastBorder=t.contrastBorder=t.focusBorder=t.iconForeground=t.errorForeground=t.foreground=t.registerColor=t.Extensions=void 0, +t.Extensions={ColorContribution:"base.contributions.colors"};const l=new class{constructor(){this._onDidChangeSchema=new o.Emitter,this.onDidChangeSchema=this._onDidChangeSchema.event,this.colorSchema={type:"object",properties:{}},this.colorReferenceSchema={type:"string",enum:[],enumDescriptions:[]},this.colorsById={}}registerColor(e,t,i,n=!1,o){let s={id:e,description:i,defaults:t,needsTransparency:n,deprecationMessage:o};this.colorsById[e]=s;let r={type:"string",description:i,format:"color-hex",defaultSnippets:[{body:"${1:#ff0000}"}]};return o&&(r.deprecationMessage=o),this.colorSchema.properties[e]=r,this.colorReferenceSchema.enum.push(e),this.colorReferenceSchema.enumDescriptions.push(i),this._onDidChangeSchema.fire(),e}resolveDefaultColor(e,t){const i=this.colorsById[e];if(i&&i.defaults){return p(i.defaults[t.type],t)}}getColorSchema(){return this.colorSchema}toString(){return Object.keys(this.colorsById).sort((e,t)=>{let i=-1===e.indexOf(".")?0:1,n=-1===t.indexOf(".")?0:1 +;return i!==n?i-n:e.localeCompare(t)}).map(e=>`- \`${e}\`: ${this.colorsById[e].description}`).join("\n")}};function d(e,t,i,n,o){return l.registerColor(e,t,i,n,o)}function c(e,t){return i=>{let n=p(e,i);if(n)return n.darken(t)}}function h(e,t){return i=>{let n=p(e,i);if(n)return n.lighten(t)}}function u(e,t){return i=>{let n=p(e,i);if(n)return n.transparent(t)}}function g(e,t,i,o){return s=>{let r=p(e,s);if(r){let e=p(t,s);return e?r.isDarkerThan(e)?n.Color.getLighterColor(r,e,i).transparent(o):n.Color.getDarkerColor(r,e,i).transparent(o):r.transparent(i*o)}}}function p(e,t){if(null!==e)return"string"==typeof e?"#"===e[0]?n.Color.fromHex(e):t.getColor(e):e instanceof n.Color?e:"function"==typeof e?e(t):void 0}i.Registry.add(t.Extensions.ColorContribution,l),t.registerColor=d,t.foreground=d("foreground",{dark:"#CCCCCC",light:"#616161",hc:"#FFFFFF"},s.localize(0,null)),t.errorForeground=d("errorForeground",{dark:"#F48771",light:"#A1260D",hc:"#F48771"},s.localize(1,null)),t.iconForeground=d("icon.foreground",{ +dark:"#C5C5C5",light:"#424242",hc:"#FFFFFF"},s.localize(2,null)),t.focusBorder=d("focusBorder",{dark:"#007FD4",light:"#0090F1",hc:"#F38518"},s.localize(3,null)),t.contrastBorder=d("contrastBorder",{light:null,dark:null,hc:"#6FC3DF"},s.localize(4,null)),t.activeContrastBorder=d("contrastActiveBorder",{light:null,dark:null,hc:t.focusBorder},s.localize(5,null)),t.textLinkForeground=d("textLink.foreground",{light:"#006AB1",dark:"#3794FF",hc:"#3794FF"},s.localize(6,null)),t.textCodeBlockBackground=d("textCodeBlock.background",{light:"#dcdcdc66",dark:"#0a0a0a66",hc:n.Color.black},s.localize(7,null)),t.widgetShadow=d("widget.shadow",{dark:"#000000",light:"#A8A8A8",hc:null},s.localize(8,null)),t.inputBackground=d("input.background",{dark:"#3C3C3C",light:n.Color.white,hc:n.Color.black},s.localize(9,null)),t.inputForeground=d("input.foreground",{dark:t.foreground,light:t.foreground,hc:t.foreground},s.localize(10,null)),t.inputBorder=d("input.border",{dark:null,light:null,hc:t.contrastBorder},s.localize(11,null)), +t.inputActiveOptionBorder=d("inputOption.activeBorder",{dark:"#007ACC00",light:"#007ACC00",hc:t.contrastBorder},s.localize(12,null)),t.inputActiveOptionBackground=d("inputOption.activeBackground",{dark:u(t.focusBorder,.4),light:u(t.focusBorder,.2),hc:n.Color.transparent},s.localize(13,null)),t.inputActiveOptionForeground=d("inputOption.activeForeground",{dark:n.Color.white,light:n.Color.black,hc:null},s.localize(14,null)),t.inputValidationInfoBackground=d("inputValidation.infoBackground",{dark:"#063B49",light:"#D6ECF2",hc:n.Color.black},s.localize(15,null)),t.inputValidationInfoForeground=d("inputValidation.infoForeground",{dark:null,light:null,hc:null},s.localize(16,null)),t.inputValidationInfoBorder=d("inputValidation.infoBorder",{dark:"#007acc",light:"#007acc",hc:t.contrastBorder},s.localize(17,null)),t.inputValidationWarningBackground=d("inputValidation.warningBackground",{dark:"#352A05",light:"#F6F5D2",hc:n.Color.black},s.localize(18,null)), +t.inputValidationWarningForeground=d("inputValidation.warningForeground",{dark:null,light:null,hc:null},s.localize(19,null)),t.inputValidationWarningBorder=d("inputValidation.warningBorder",{dark:"#B89500",light:"#B89500",hc:t.contrastBorder},s.localize(20,null)),t.inputValidationErrorBackground=d("inputValidation.errorBackground",{dark:"#5A1D1D",light:"#F2DEDE",hc:n.Color.black},s.localize(21,null)),t.inputValidationErrorForeground=d("inputValidation.errorForeground",{dark:null,light:null,hc:null},s.localize(22,null)),t.inputValidationErrorBorder=d("inputValidation.errorBorder",{dark:"#BE1100",light:"#BE1100",hc:t.contrastBorder},s.localize(23,null)),t.selectBackground=d("dropdown.background",{dark:"#3C3C3C",light:n.Color.white,hc:n.Color.black},s.localize(24,null)),t.selectForeground=d("dropdown.foreground",{dark:"#F0F0F0",light:null,hc:n.Color.white},s.localize(25,null)),t.buttonForeground=d("button.foreground",{dark:n.Color.white,light:n.Color.white,hc:n.Color.white},s.localize(26,null)), +t.buttonBackground=d("button.background",{dark:"#0E639C",light:"#007ACC",hc:null},s.localize(27,null)),t.buttonHoverBackground=d("button.hoverBackground",{dark:h(t.buttonBackground,.2),light:c(t.buttonBackground,.2),hc:null},s.localize(28,null)),t.badgeBackground=d("badge.background",{dark:"#4D4D4D",light:"#C4C4C4",hc:n.Color.black},s.localize(29,null)),t.badgeForeground=d("badge.foreground",{dark:n.Color.white,light:"#333",hc:n.Color.white},s.localize(30,null)),t.scrollbarShadow=d("scrollbar.shadow",{dark:"#000000",light:"#DDDDDD",hc:null},s.localize(31,null)),t.scrollbarSliderBackground=d("scrollbarSlider.background",{dark:n.Color.fromHex("#797979").transparent(.4),light:n.Color.fromHex("#646464").transparent(.4),hc:u(t.contrastBorder,.6)},s.localize(32,null)),t.scrollbarSliderHoverBackground=d("scrollbarSlider.hoverBackground",{dark:n.Color.fromHex("#646464").transparent(.7),light:n.Color.fromHex("#646464").transparent(.7),hc:u(t.contrastBorder,.8)},s.localize(33,null)), +t.scrollbarSliderActiveBackground=d("scrollbarSlider.activeBackground",{dark:n.Color.fromHex("#BFBFBF").transparent(.4),light:n.Color.fromHex("#000000").transparent(.6),hc:t.contrastBorder},s.localize(34,null)),t.progressBarBackground=d("progressBar.background",{dark:n.Color.fromHex("#0E70C0"),light:n.Color.fromHex("#0E70C0"),hc:t.contrastBorder},s.localize(35,null)),t.editorErrorForeground=d("editorError.foreground",{dark:"#F48771",light:"#E51400",hc:null},s.localize(36,null)),t.editorErrorBorder=d("editorError.border",{dark:null,light:null,hc:n.Color.fromHex("#E47777").transparent(.8)},s.localize(37,null)),t.editorWarningForeground=d("editorWarning.foreground",{dark:"#CCA700",light:"#E9A700",hc:null},s.localize(38,null)),t.editorWarningBorder=d("editorWarning.border",{dark:null,light:null,hc:n.Color.fromHex("#FFCC00").transparent(.8)},s.localize(39,null)),t.editorInfoForeground=d("editorInfo.foreground",{dark:"#75BEFF",light:"#75BEFF",hc:null},s.localize(40,null)),t.editorInfoBorder=d("editorInfo.border",{ +dark:null,light:null,hc:n.Color.fromHex("#75BEFF").transparent(.8)},s.localize(41,null)),t.editorHintForeground=d("editorHint.foreground",{dark:n.Color.fromHex("#eeeeee").transparent(.7),light:"#6c6c6c",hc:null},s.localize(42,null)),t.editorHintBorder=d("editorHint.border",{dark:null,light:null,hc:n.Color.fromHex("#eeeeee").transparent(.8)},s.localize(43,null)),t.editorBackground=d("editor.background",{light:"#fffffe",dark:"#1E1E1E",hc:n.Color.black},s.localize(44,null)),t.editorForeground=d("editor.foreground",{light:"#333333",dark:"#BBBBBB",hc:n.Color.white},s.localize(45,null)),t.editorWidgetBackground=d("editorWidget.background",{dark:"#252526",light:"#F3F3F3",hc:"#0C141F"},s.localize(46,null)),t.editorWidgetForeground=d("editorWidget.foreground",{dark:t.foreground,light:t.foreground,hc:t.foreground},s.localize(47,null)),t.editorWidgetBorder=d("editorWidget.border",{dark:"#454545",light:"#C8C8C8",hc:t.contrastBorder},s.localize(48,null)),t.editorWidgetResizeBorder=d("editorWidget.resizeBorder",{ +light:null,dark:null,hc:null},s.localize(49,null)),t.quickInputBackground=d("quickInput.background",{dark:t.editorWidgetBackground,light:t.editorWidgetBackground,hc:t.editorWidgetBackground},s.localize(50,null)),t.quickInputForeground=d("quickInput.foreground",{dark:t.editorWidgetForeground,light:t.editorWidgetForeground,hc:t.editorWidgetForeground},s.localize(51,null)),t.quickInputTitleBackground=d("quickInputTitle.background",{dark:new n.Color(new n.RGBA(255,255,255,.105)),light:new n.Color(new n.RGBA(0,0,0,.06)),hc:"#000000"},s.localize(52,null)),t.pickerGroupForeground=d("pickerGroup.foreground",{dark:"#3794FF",light:"#0066BF",hc:n.Color.white},s.localize(53,null)),t.pickerGroupBorder=d("pickerGroup.border",{dark:"#3F3F46",light:"#CCCEDB",hc:n.Color.white},s.localize(54,null)),t.editorSelectionBackground=d("editor.selectionBackground",{light:"#ADD6FF",dark:"#264F78",hc:"#f3f518"},s.localize(55,null)),t.editorSelectionForeground=d("editor.selectionForeground",{light:null,dark:null,hc:"#000000" +},s.localize(56,null)),t.editorInactiveSelection=d("editor.inactiveSelectionBackground",{light:u(t.editorSelectionBackground,.5),dark:u(t.editorSelectionBackground,.5),hc:u(t.editorSelectionBackground,.5)},s.localize(57,null),!0),t.editorSelectionHighlight=d("editor.selectionHighlightBackground",{light:g(t.editorSelectionBackground,t.editorBackground,.3,.6),dark:g(t.editorSelectionBackground,t.editorBackground,.3,.6),hc:null},s.localize(58,null),!0),t.editorSelectionHighlightBorder=d("editor.selectionHighlightBorder",{light:null,dark:null,hc:t.activeContrastBorder},s.localize(59,null)),t.editorFindMatch=d("editor.findMatchBackground",{light:"#A8AC94",dark:"#515C6A",hc:null},s.localize(60,null)),t.editorFindMatchHighlight=d("editor.findMatchHighlightBackground",{light:"#EA5C0055",dark:"#EA5C0055",hc:null},s.localize(61,null),!0),t.editorFindRangeHighlight=d("editor.findRangeHighlightBackground",{dark:"#3a3d4166",light:"#b4b4b44d",hc:null},s.localize(62,null),!0), +t.editorFindMatchBorder=d("editor.findMatchBorder",{light:null,dark:null,hc:t.activeContrastBorder},s.localize(63,null)),t.editorFindMatchHighlightBorder=d("editor.findMatchHighlightBorder",{light:null,dark:null,hc:t.activeContrastBorder},s.localize(64,null)),t.editorFindRangeHighlightBorder=d("editor.findRangeHighlightBorder",{dark:null,light:null,hc:u(t.activeContrastBorder,.4)},s.localize(65,null),!0),t.editorHoverHighlight=d("editor.hoverHighlightBackground",{light:"#ADD6FF26",dark:"#264f7840",hc:"#ADD6FF26"},s.localize(66,null),!0),t.editorHoverBackground=d("editorHoverWidget.background",{light:t.editorWidgetBackground,dark:t.editorWidgetBackground,hc:t.editorWidgetBackground},s.localize(67,null)),t.editorHoverForeground=d("editorHoverWidget.foreground",{light:t.editorWidgetForeground,dark:t.editorWidgetForeground,hc:t.editorWidgetForeground},s.localize(68,null)),t.editorHoverBorder=d("editorHoverWidget.border",{light:t.editorWidgetBorder,dark:t.editorWidgetBorder,hc:t.editorWidgetBorder +},s.localize(69,null)),t.editorHoverStatusBarBackground=d("editorHoverWidget.statusBarBackground",{dark:h(t.editorHoverBackground,.2),light:c(t.editorHoverBackground,.05),hc:t.editorWidgetBackground},s.localize(70,null)),t.editorActiveLinkForeground=d("editorLink.activeForeground",{dark:"#4E94CE",light:n.Color.blue,hc:n.Color.cyan},s.localize(71,null)),t.editorLightBulbForeground=d("editorLightBulb.foreground",{dark:"#FFCC00",light:"#DDB100",hc:"#FFCC00"},s.localize(72,null)),t.editorLightBulbAutoFixForeground=d("editorLightBulbAutoFix.foreground",{dark:"#75BEFF",light:"#007ACC",hc:"#75BEFF"},s.localize(73,null)),t.defaultInsertColor=new n.Color(new n.RGBA(155,185,85,.2)),t.defaultRemoveColor=new n.Color(new n.RGBA(255,0,0,.2)),t.diffInserted=d("diffEditor.insertedTextBackground",{dark:t.defaultInsertColor,light:t.defaultInsertColor,hc:null},s.localize(74,null),!0),t.diffRemoved=d("diffEditor.removedTextBackground",{dark:t.defaultRemoveColor,light:t.defaultRemoveColor,hc:null},s.localize(75,null),!0), +t.diffInsertedOutline=d("diffEditor.insertedTextBorder",{dark:null,light:null,hc:"#33ff2eff"},s.localize(76,null)),t.diffRemovedOutline=d("diffEditor.removedTextBorder",{dark:null,light:null,hc:"#FF008F"},s.localize(77,null)),t.diffBorder=d("diffEditor.border",{dark:null,light:null,hc:t.contrastBorder},s.localize(78,null)),t.diffDiagonalFill=d("diffEditor.diagonalFill",{dark:"#cccccc33",light:"#22222233",hc:null},s.localize(79,null)),t.listFocusBackground=d("list.focusBackground",{dark:"#062F4A",light:"#D6EBFF",hc:null},s.localize(80,null)),t.listFocusForeground=d("list.focusForeground",{dark:null,light:null,hc:null},s.localize(81,null)),t.listActiveSelectionBackground=d("list.activeSelectionBackground",{dark:"#094771",light:"#0074E8",hc:null},s.localize(82,null)),t.listActiveSelectionForeground=d("list.activeSelectionForeground",{dark:n.Color.white,light:n.Color.white,hc:null},s.localize(83,null)),t.listInactiveSelectionBackground=d("list.inactiveSelectionBackground",{dark:"#37373D",light:"#E4E6F1",hc:null +},s.localize(84,null)),t.listInactiveSelectionForeground=d("list.inactiveSelectionForeground",{dark:null,light:null,hc:null},s.localize(85,null)),t.listInactiveFocusBackground=d("list.inactiveFocusBackground",{dark:null,light:null,hc:null},s.localize(86,null)),t.listHoverBackground=d("list.hoverBackground",{dark:"#2A2D2E",light:"#F0F0F0",hc:null},s.localize(87,null)),t.listHoverForeground=d("list.hoverForeground",{dark:null,light:null,hc:null},s.localize(88,null)),t.listDropBackground=d("list.dropBackground",{dark:t.listFocusBackground,light:t.listFocusBackground,hc:null},s.localize(89,null)),t.listHighlightForeground=d("list.highlightForeground",{dark:"#0097fb",light:"#0066BF",hc:t.focusBorder},s.localize(90,null)),t.listFilterWidgetBackground=d("listFilterWidget.background",{light:"#efc1ad",dark:"#653723",hc:n.Color.black},s.localize(91,null)),t.listFilterWidgetOutline=d("listFilterWidget.outline",{dark:n.Color.transparent,light:n.Color.transparent,hc:"#f38518"},s.localize(92,null)), +t.listFilterWidgetNoMatchesOutline=d("listFilterWidget.noMatchesOutline",{dark:"#BE1100",light:"#BE1100",hc:t.contrastBorder},s.localize(93,null)),t.treeIndentGuidesStroke=d("tree.indentGuidesStroke",{dark:"#585858",light:"#a9a9a9",hc:"#a9a9a9"},s.localize(94,null)),t.menuBorder=d("menu.border",{dark:null,light:null,hc:t.contrastBorder},s.localize(95,null)),t.menuForeground=d("menu.foreground",{dark:t.selectForeground,light:t.foreground,hc:t.selectForeground},s.localize(96,null)),t.menuBackground=d("menu.background",{dark:t.selectBackground,light:t.selectBackground,hc:t.selectBackground},s.localize(97,null)),t.menuSelectionForeground=d("menu.selectionForeground",{dark:t.listActiveSelectionForeground,light:t.listActiveSelectionForeground,hc:t.listActiveSelectionForeground},s.localize(98,null)),t.menuSelectionBackground=d("menu.selectionBackground",{dark:t.listActiveSelectionBackground,light:t.listActiveSelectionBackground,hc:t.listActiveSelectionBackground},s.localize(99,null)), +t.menuSelectionBorder=d("menu.selectionBorder",{dark:null,light:null,hc:t.activeContrastBorder},s.localize(100,null)),t.menuSeparatorBackground=d("menu.separatorBackground",{dark:"#BBBBBB",light:"#888888",hc:t.contrastBorder},s.localize(101,null)),t.snippetTabstopHighlightBackground=d("editor.snippetTabstopHighlightBackground",{dark:new n.Color(new n.RGBA(124,124,124,.3)),light:new n.Color(new n.RGBA(10,50,100,.2)),hc:new n.Color(new n.RGBA(124,124,124,.3))},s.localize(102,null)),t.snippetTabstopHighlightBorder=d("editor.snippetTabstopHighlightBorder",{dark:null,light:null,hc:null},s.localize(103,null)),t.snippetFinalTabstopHighlightBackground=d("editor.snippetFinalTabstopHighlightBackground",{dark:null,light:null,hc:null},s.localize(104,null)),t.snippetFinalTabstopHighlightBorder=d("editor.snippetFinalTabstopHighlightBorder",{dark:"#525252",light:new n.Color(new n.RGBA(10,50,100,.5)),hc:"#525252"},s.localize(105,null)),t.overviewRulerFindMatchForeground=d("editorOverviewRuler.findMatchForeground",{ +dark:"#d186167e",light:"#d186167e",hc:"#AB5A00"},s.localize(106,null),!0),t.overviewRulerSelectionHighlightForeground=d("editorOverviewRuler.selectionHighlightForeground",{dark:"#A0A0A0CC",light:"#A0A0A0CC",hc:"#A0A0A0CC"},s.localize(107,null),!0),t.minimapFindMatch=d("minimap.findMatchHighlight",{light:"#d18616",dark:"#d18616",hc:"#AB5A00"},s.localize(108,null),!0),t.minimapSelection=d("minimap.selectionHighlight",{light:"#ADD6FF",dark:"#264F78",hc:"#ffffff"},s.localize(109,null),!0),t.minimapError=d("minimap.errorHighlight",{dark:new n.Color(new n.RGBA(255,18,18,.7)),light:new n.Color(new n.RGBA(255,18,18,.7)),hc:new n.Color(new n.RGBA(255,50,50,1))},s.localize(110,null)),t.minimapWarning=d("minimap.warningHighlight",{dark:t.editorWarningForeground,light:t.editorWarningForeground,hc:t.editorWarningBorder},s.localize(111,null)),t.minimapBackground=d("minimap.background",{dark:null,light:null,hc:null},s.localize(112,null)),t.minimapSliderBackground=d("minimapSlider.background",{ +light:u(t.scrollbarSliderBackground,.5),dark:u(t.scrollbarSliderBackground,.5),hc:u(t.scrollbarSliderBackground,.5)},s.localize(113,null)),t.minimapSliderHoverBackground=d("minimapSlider.hoverBackground",{light:u(t.scrollbarSliderHoverBackground,.5),dark:u(t.scrollbarSliderHoverBackground,.5),hc:u(t.scrollbarSliderHoverBackground,.5)},s.localize(114,null)),t.minimapSliderActiveBackground=d("minimapSlider.activeBackground",{light:u(t.scrollbarSliderActiveBackground,.5),dark:u(t.scrollbarSliderActiveBackground,.5),hc:u(t.scrollbarSliderActiveBackground,.5)},s.localize(115,null)),t.problemsErrorIconForeground=d("problemsErrorIcon.foreground",{dark:t.editorErrorForeground,light:t.editorErrorForeground,hc:t.editorErrorForeground},s.localize(116,null)),t.problemsWarningIconForeground=d("problemsWarningIcon.foreground",{dark:t.editorWarningForeground,light:t.editorWarningForeground,hc:t.editorWarningForeground},s.localize(117,null)),t.problemsInfoIconForeground=d("problemsInfoIcon.foreground",{ +dark:t.editorInfoForeground,light:t.editorInfoForeground,hc:t.editorInfoForeground},s.localize(118,null)),t.darken=c,t.lighten=h,t.transparent=u,t.oneOf=function(...e){return t=>{for(let i of e){let e=p(i,t);if(e)return e}}},t.resolveColorValue=p,t.workbenchColorsSchemaId="vscode://schemas/workbench-colors";let m=i.Registry.as(r.Extensions.JSONContribution);m.registerSchema(t.workbenchColorsSchemaId,l.getColorSchema());const f=new a.RunOnceScheduler(()=>m.notifySchemaChanged(t.workbenchColorsSchemaId),200);l.onDidChangeSchema(()=>{f.isScheduled()||f.schedule()})})),define(t[107],i([0,1,21]),(function(e,t,i){"use strict";function n(e,t){const n=Object.create(null);for(let o in t){const s=t[o];s&&(n[o]=i.resolveColorValue(s,e))}return n}function o(e,t,i){function o(o){const s=n(e.getColorTheme(),t);"function"==typeof i?i(s):i.style(s)}return o(e.getColorTheme()),e.onDidColorThemeChange(o)}Object.defineProperty(t,"__esModule",{value:!0}), +t.attachMenuStyler=t.defaultMenuStyles=t.defaultListStyles=t.attachListStyler=t.attachBadgeStyler=t.attachStyler=t.computeStyles=void 0,t.computeStyles=n,t.attachStyler=o,t.attachBadgeStyler=function(e,t,n){return o(t,{badgeBackground:n&&n.badgeBackground||i.badgeBackground,badgeForeground:n&&n.badgeForeground||i.badgeForeground,badgeBorder:i.contrastBorder},e)},t.attachListStyler=function(e,i,n){return o(i,Object.assign(Object.assign({},t.defaultListStyles),n||{}),e)},t.defaultListStyles={listFocusBackground:i.listFocusBackground,listFocusForeground:i.listFocusForeground,listActiveSelectionBackground:i.darken(i.listActiveSelectionBackground,.1),listActiveSelectionForeground:i.listActiveSelectionForeground,listFocusAndSelectionBackground:i.listActiveSelectionBackground,listFocusAndSelectionForeground:i.listActiveSelectionForeground,listInactiveSelectionBackground:i.listInactiveSelectionBackground,listInactiveSelectionForeground:i.listInactiveSelectionForeground, +listInactiveFocusBackground:i.listInactiveFocusBackground,listHoverBackground:i.listHoverBackground,listHoverForeground:i.listHoverForeground,listDropBackground:i.listDropBackground,listFocusOutline:i.activeContrastBorder,listSelectionOutline:i.activeContrastBorder,listHoverOutline:i.activeContrastBorder,listFilterWidgetBackground:i.listFilterWidgetBackground,listFilterWidgetOutline:i.listFilterWidgetOutline,listFilterWidgetNoMatchesOutline:i.listFilterWidgetNoMatchesOutline,listMatchesShadow:i.widgetShadow,treeIndentGuidesStroke:i.treeIndentGuidesStroke},t.defaultMenuStyles={shadowColor:i.widgetShadow,borderColor:i.menuBorder,foregroundColor:i.menuForeground,backgroundColor:i.menuBackground,selectionForegroundColor:i.menuSelectionForeground,selectionBackgroundColor:i.menuSelectionBackground,selectionBorderColor:i.menuSelectionBorder,separatorColor:i.menuSeparatorBackground},t.attachMenuStyler=function(e,i,n){return o(i,Object.assign(Object.assign({},t.defaultMenuStyles),n),e)}})), +define(t[582],i([0,1,47,2,418,7,107,57,51,352]),(function(e,t,i,n,o,s,r,a,l){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ContextMenuHandler=void 0;t.ContextMenuHandler=class{constructor(e,t,i,n,o){this.contextViewService=e,this.telemetryService=t,this.notificationService=i,this.keybindingService=n,this.themeService=o,this.focusToReturn=null,this.block=null,this.options={blockMouse:!0}}configure(e){this.options=e}showContextMenu(e){const t=e.getActions();if(!t.length)return;let d;this.focusToReturn=document.activeElement;let c=s.isHTMLElement(e.domForShadowRoot)?e.domForShadowRoot:void 0;this.contextViewService.showContextView({getAnchor:()=>e.getAnchor(),canRelayout:!1,anchorAlignment:e.anchorAlignment,render:c=>{let h=e.getMenuClassName?e.getMenuClassName():"";h&&(c.className+=" "+h),this.options.blockMouse&&(this.block=c.appendChild(s.$(".context-view-block")),this.block.style.position="fixed",this.block.style.cursor="initial",this.block.style.left="0",this.block.style.top="0", +this.block.style.width="100%",this.block.style.height="100%",this.block.style.zIndex="-1",a.domEvent(this.block,s.EventType.MOUSE_DOWN)(e=>e.stopPropagation()));const u=new n.DisposableStore,g=e.actionRunner||new i.ActionRunner;return g.onDidBeforeRun(this.onActionRun,this,u),g.onDidRun(this.onDidActionRun,this,u),d=new o.Menu(c,t,{actionViewItemProvider:e.getActionViewItem,context:e.getActionsContext?e.getActionsContext():null,actionRunner:g,getKeyBinding:e.getKeyBinding?e.getKeyBinding:e=>this.keybindingService.lookupKeybinding(e.id)}),u.add(r.attachMenuStyler(d,this.themeService)),d.onDidCancel(()=>this.contextViewService.hideContextView(!0),null,u),d.onDidBlur(()=>this.contextViewService.hideContextView(!0),null,u),a.domEvent(window,s.EventType.BLUR)(()=>{this.contextViewService.hideContextView(!0)},null,u),a.domEvent(window,s.EventType.MOUSE_DOWN)(e=>{if(e.defaultPrevented)return;let t=new l.StandardMouseEvent(e),i=t.target;if(!t.rightButton){for(;i;){if(i===c)return;i=i.parentElement} +this.contextViewService.hideContextView(!0)}},null,u),n.combinedDisposable(u,d)},focus:()=>{d&&d.focus(!!e.autoSelectFirstItem)},onHide:t=>{e.onHide&&e.onHide(!!t),this.block&&(s.removeNode(this.block),this.block=null),this.focusToReturn&&this.focusToReturn.focus()}},c,!!c)}onActionRun(e){this.telemetryService&&this.telemetryService.publicLog2("workbenchActionExecuted",{id:e.action.id,from:"contextMenu"}),this.contextViewService.hideContextView(!1),this.focusToReturn&&this.focusToReturn.focus()}onDidActionRun(e){e.error&&this.notificationService&&this.notificationService.error(e.error)}}})),define(t[14],i([0,1,10,2,34,4]),(function(e,t,i,n,o,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Themable=t.registerThemingParticipant=t.Extensions=t.getThemeTypeSelector=t.HIGH_CONTRAST=t.DARK=t.ThemeIcon=t.themeColorFromId=t.IThemeService=void 0,t.IThemeService=i.createDecorator("themeService"),t.themeColorFromId=function(e){return{id:e}},function(e){e.isThemeIcon=function(e){ +return e&&"object"==typeof e&&"string"==typeof e.id};const t=/^\$\(([a-z.]+\/)?([a-z-~]+)\)$/i;e.fromString=function(e){const i=t.exec(e);if(!i)return;let[,n,o]=i;return n||(n="codicon/"),{id:n+o}};const i=/^(codicon\/)?([a-z-]+)(~[a-z]+)?$/i;e.asClassName=function(e){const t=i.exec(e.id);if(!t)return;let[,,n,o]=t,s=`codicon codicon-${n}`;return o&&(s+=` ${o.substr(1)}`),s}}(t.ThemeIcon||(t.ThemeIcon={})),t.DARK="dark",t.HIGH_CONTRAST="hc",t.getThemeTypeSelector=function(e){switch(e){case t.DARK:return"vs-dark";case t.HIGH_CONTRAST:return"hc-black";default:return"vs"}},t.Extensions={ThemingContribution:"base.contributions.theming"};let r=new class{constructor(){this.themingParticipants=[],this.themingParticipants=[],this.onThemingParticipantAddedEmitter=new s.Emitter}onColorThemeChange(e){return this.themingParticipants.push(e),this.onThemingParticipantAddedEmitter.fire(e),n.toDisposable(()=>{const t=this.themingParticipants.indexOf(e);this.themingParticipants.splice(t,1)})}getThemingParticipants(){ +return this.themingParticipants}};o.Registry.add(t.Extensions.ThemingContribution,r),t.registerThemingParticipant=function(e){return r.onColorThemeChange(e)};class a extends n.Disposable{constructor(e){super(),this.themeService=e,this.theme=e.getColorTheme(),this._register(this.themeService.onDidColorThemeChange(e=>this.onThemeChange(e)))}onThemeChange(e){this.theme=e,this.updateStyles()}updateStyles(){}}t.Themable=a})),define(t[583],i([0,1,7,2,8,24,354,100,52,14]),(function(e,t,i,n,o,s,r,d,c,h){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CodeEditorServiceImpl=t.GlobalStyleSheet=t.RefCountedStyleSheet=void 0;class u{constructor(e,t,i){this._parent=e,this._editorId=t,this._styleSheet=i,this._refCount=0}ref(){this._refCount++}unref(){var e;this._refCount--,0===this._refCount&&(null===(e=this._styleSheet.parentNode)||void 0===e||e.removeChild(this._styleSheet),this._parent._removeEditorStyleSheets(this._editorId))}insertRule(e,t){this._styleSheet.sheet.insertRule(e,t)} +removeRulesContainingSelector(e){i.removeCSSRulesContainingSelector(e,this._styleSheet)}}t.RefCountedStyleSheet=u;class g{constructor(e){this._styleSheet=e}ref(){}unref(){}insertRule(e,t){this._styleSheet.sheet.insertRule(e,t)}removeRulesContainingSelector(e){i.removeCSSRulesContainingSelector(e,this._styleSheet)}}t.GlobalStyleSheet=g;let p=class extends r.AbstractCodeEditorService{constructor(e,t=null){super(),this._decorationOptionProviders=new Map,this._editorStyleSheets=new Map,this._globalStyleSheet=t||null,this._themeService=e}_getOrCreateGlobalStyleSheet(){return this._globalStyleSheet||(this._globalStyleSheet=new g(i.createStyleSheet())),this._globalStyleSheet}_getOrCreateStyleSheet(e){if(!e)return this._getOrCreateGlobalStyleSheet();const t=e.getContainerDomNode();if(!i.isInShadowDOM(t))return this._getOrCreateGlobalStyleSheet();const n=e.getId();if(!this._editorStyleSheets.has(n)){const e=new u(this,n,i.createStyleSheet(t));this._editorStyleSheets.set(n,e)}return this._editorStyleSheets.get(n)} +_removeEditorStyleSheets(e){this._editorStyleSheets.delete(e)}registerDecorationType(e,t,i,n){let o=this._decorationOptionProviders.get(e);if(!o){const s=this._getOrCreateStyleSheet(n),r={styleSheet:s,key:e,parentTypeKey:i,options:t||Object.create(null)};o=i?new m(this._themeService,s,r):new f(this._themeService,s,r),this._decorationOptionProviders.set(e,o)}o.refCount++}removeDecorationType(e){const t=this._decorationOptionProviders.get(e);t&&(t.refCount--,t.refCount<=0&&(this._decorationOptionProviders.delete(e),t.dispose(),this.listCodeEditors().forEach(t=>t.removeDecorations(e))))}resolveDecorationOptions(e,t){const i=this._decorationOptionProviders.get(e);if(!i)throw new Error("Unknown decoration type key: "+e);return i.getOptions(this,t)}};p=a([l(0,h.IThemeService)],p),t.CodeEditorServiceImpl=p;class m{constructor(e,t,i){this._styleSheet=t,this._styleSheet.ref(),this._parentTypeKey=i.parentTypeKey,this.refCount=0,this._beforeContentRules=new v(3,i,e),this._afterContentRules=new v(4,i,e)}getOptions(e,t){ +const i=e.resolveDecorationOptions(this._parentTypeKey,!0);return this._beforeContentRules&&(i.beforeContentClassName=this._beforeContentRules.className),this._afterContentRules&&(i.afterContentClassName=this._afterContentRules.className),i}dispose(){this._beforeContentRules&&(this._beforeContentRules.dispose(),this._beforeContentRules=null),this._afterContentRules&&(this._afterContentRules.dispose(),this._afterContentRules=null),this._styleSheet.unref()}}class f{constructor(e,t,i){this._disposables=new n.DisposableStore,this._styleSheet=t,this._styleSheet.ref(),this.refCount=0;const o=t=>{const n=new v(t,i,e);if(this._disposables.add(n),n.hasContent)return n.className};this.className=o(0);const s=(t=>{const n=new v(t,i,e);return this._disposables.add(n),n.hasContent?{className:n.className,hasLetterSpacing:n.hasLetterSpacing}:null})(1);s&&(this.inlineClassName=s.className,this.inlineClassNameAffectsLetterSpacing=s.hasLetterSpacing),this.beforeContentClassName=o(3),this.afterContentClassName=o(4), +this.glyphMarginClassName=o(2);const r=i.options;this.isWholeLine=Boolean(r.isWholeLine),this.stickiness=r.rangeBehavior;const a=r.light&&r.light.overviewRulerColor||r.overviewRulerColor,l=r.dark&&r.dark.overviewRulerColor||r.overviewRulerColor;void 0===a&&void 0===l||(this.overviewRuler={color:a||l,darkColor:l||a,position:r.overviewRulerLane||c.OverviewRulerLane.Center})}getOptions(e,t){return t?{inlineClassName:this.inlineClassName,beforeContentClassName:this.beforeContentClassName,afterContentClassName:this.afterContentClassName,className:this.className,glyphMarginClassName:this.glyphMarginClassName,isWholeLine:this.isWholeLine,overviewRuler:this.overviewRuler,stickiness:this.stickiness}:this}dispose(){this._disposables.dispose(),this._styleSheet.unref()}}const _={color:"color:{0} !important;",opacity:"opacity:{0};",backgroundColor:"background-color:{0};",outline:"outline:{0};",outlineColor:"outline-color:{0};",outlineStyle:"outline-style:{0};",outlineWidth:"outline-width:{0};",border:"border:{0};", +borderColor:"border-color:{0};",borderRadius:"border-radius:{0};",borderSpacing:"border-spacing:{0};",borderStyle:"border-style:{0};",borderWidth:"border-width:{0};",fontStyle:"font-style:{0};",fontWeight:"font-weight:{0};",textDecoration:"text-decoration:{0};",cursor:"cursor:{0};",letterSpacing:"letter-spacing:{0};",gutterIconPath:"background:{0} center center no-repeat;",gutterIconSize:"background-size:{0};",contentText:"content:'{0}';",contentIconPath:"content:{0};",margin:"margin:{0};",width:"width:{0};",height:"height:{0};"};class v{constructor(e,t,i){this._theme=i.getColorTheme(),this._ruleType=e,this._providerArgs=t,this._usesThemeColors=!1,this._hasContent=!1,this._hasLetterSpacing=!1;let n=C.getClassName(this._providerArgs.key,e);this._providerArgs.parentTypeKey&&(n=n+" "+C.getClassName(this._providerArgs.parentTypeKey,e)),this._className=n,this._unThemedSelector=C.getSelector(this._providerArgs.key,this._providerArgs.parentTypeKey,e),this._buildCSS(), +this._usesThemeColors?this._themeListener=i.onDidColorThemeChange(e=>{this._theme=i.getColorTheme(),this._removeCSS(),this._buildCSS()}):this._themeListener=null}dispose(){this._hasContent&&(this._removeCSS(),this._hasContent=!1),this._themeListener&&(this._themeListener.dispose(),this._themeListener=null)}get hasContent(){return this._hasContent}get hasLetterSpacing(){return this._hasLetterSpacing}get className(){return this._className}_buildCSS(){const e=this._providerArgs.options;let t,i,n;switch(this._ruleType){case 0:t=this.getCSSTextForModelDecorationClassName(e),i=this.getCSSTextForModelDecorationClassName(e.light),n=this.getCSSTextForModelDecorationClassName(e.dark);break;case 1:t=this.getCSSTextForModelDecorationInlineClassName(e),i=this.getCSSTextForModelDecorationInlineClassName(e.light),n=this.getCSSTextForModelDecorationInlineClassName(e.dark);break;case 2:t=this.getCSSTextForModelDecorationGlyphMarginClassName(e),i=this.getCSSTextForModelDecorationGlyphMarginClassName(e.light), +n=this.getCSSTextForModelDecorationGlyphMarginClassName(e.dark);break;case 3:t=this.getCSSTextForModelDecorationContentClassName(e.before),i=this.getCSSTextForModelDecorationContentClassName(e.light&&e.light.before),n=this.getCSSTextForModelDecorationContentClassName(e.dark&&e.dark.before);break;case 4:t=this.getCSSTextForModelDecorationContentClassName(e.after),i=this.getCSSTextForModelDecorationContentClassName(e.light&&e.light.after),n=this.getCSSTextForModelDecorationContentClassName(e.dark&&e.dark.after);break;default:throw new Error("Unknown rule type: "+this._ruleType)}const o=this._providerArgs.styleSheet;let s=!1;t.length>0&&(o.insertRule(`${this._unThemedSelector} {${t}}`,0),s=!0),i.length>0&&(o.insertRule(`.vs${this._unThemedSelector} {${i}}`,0),s=!0),n.length>0&&(o.insertRule(`.vs-dark${this._unThemedSelector}, .hc-black${this._unThemedSelector} {${n}}`,0),s=!0),this._hasContent=s}_removeCSS(){this._providerArgs.styleSheet.removeRulesContainingSelector(this._unThemedSelector)} +getCSSTextForModelDecorationClassName(e){if(!e)return"";const t=[];return this.collectCSSText(e,["backgroundColor"],t),this.collectCSSText(e,["outline","outlineColor","outlineStyle","outlineWidth"],t),this.collectBorderSettingsCSSText(e,t),t.join("")}getCSSTextForModelDecorationInlineClassName(e){if(!e)return"";const t=[];return this.collectCSSText(e,["fontStyle","fontWeight","textDecoration","cursor","color","opacity","letterSpacing"],t),e.letterSpacing&&(this._hasLetterSpacing=!0),t.join("")}getCSSTextForModelDecorationContentClassName(e){if(!e)return"";const t=[];if(void 0!==e){if(this.collectBorderSettingsCSSText(e,t),void 0!==e.contentIconPath&&t.push(o.format(_.contentIconPath,i.asCSSUrl(s.URI.revive(e.contentIconPath)))),"string"==typeof e.contentText){const i=e.contentText.match(/^.*$/m)[0].replace(/['\\]/g,"\\$&");t.push(o.format(_.contentText,i))}this.collectCSSText(e,["fontStyle","fontWeight","textDecoration","color","opacity","backgroundColor","margin"],t), +this.collectCSSText(e,["width","height"],t)&&t.push("display:inline-block;")}return t.join("")}getCSSTextForModelDecorationGlyphMarginClassName(e){if(!e)return"";const t=[];return void 0!==e.gutterIconPath&&(t.push(o.format(_.gutterIconPath,i.asCSSUrl(s.URI.revive(e.gutterIconPath)))),void 0!==e.gutterIconSize&&t.push(o.format(_.gutterIconSize,e.gutterIconSize))),t.join("")}collectBorderSettingsCSSText(e,t){return!!this.collectCSSText(e,["border","borderColor","borderRadius","borderSpacing","borderStyle","borderWidth"],t)&&(t.push(o.format("box-sizing: border-box;")),!0)}collectCSSText(e,t,i){const n=i.length;for(let n of t){const t=this.resolveValue(e[n]);"string"==typeof t&&i.push(o.format(_[n],t))}return i.length!==n}resolveValue(e){if(d.isThemeColor(e)){this._usesThemeColors=!0;const t=this._theme.getColor(e.id);return t?t.toString():"transparent"}return e}}class C{static getClassName(e,t){return"ced-"+e+"-"+t}static getSelector(e,t,i){let n=".monaco-editor ."+this.getClassName(e,i) +;return t&&(n=n+"."+this.getClassName(t,i)),3===i?n+="::before":4===i&&(n+="::after"),n}}})),define(t[584],i([0,1,7,30,65,43,14]),(function(e,t,i,n,o,s,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EditorScrollbar=void 0;class a extends s.ViewPart{constructor(e,t,a,l){super(e);const d=this._context.configuration.options,c=d.get(84),h=d.get(58),u=d.get(28),g=d.get(87),p={listenOnDomNode:a.domNode,className:"editor-scrollable "+r.getThemeTypeSelector(e.theme.type),useShadows:!1,lazyRender:!0,vertical:c.vertical,horizontal:c.horizontal,verticalHasArrows:c.verticalHasArrows,horizontalHasArrows:c.horizontalHasArrows,verticalScrollbarSize:c.verticalScrollbarSize,verticalSliderSize:c.verticalSliderSize,horizontalScrollbarSize:c.horizontalScrollbarSize,horizontalSliderSize:c.horizontalSliderSize,handleMouseWheel:c.handleMouseWheel,alwaysConsumeMouseWheel:c.alwaysConsumeMouseWheel,arrowSize:c.arrowSize,mouseWheelScrollSensitivity:h,fastScrollSensitivity:u,scrollPredominantAxis:g} +;this.scrollbar=this._register(new o.SmoothScrollableElement(t.domNode,p,this._context.viewLayout.getScrollable())),s.PartFingerprints.write(this.scrollbar.getDomNode(),5),this.scrollbarDomNode=n.createFastDomNode(this.scrollbar.getDomNode()),this.scrollbarDomNode.setPosition("absolute"),this._setLayout();const m=(e,t,i)=>{const n={};if(t){const t=e.scrollTop;t&&(n.scrollTop=this._context.viewLayout.getCurrentScrollTop()+t,e.scrollTop=0)}if(i){const t=e.scrollLeft;t&&(n.scrollLeft=this._context.viewLayout.getCurrentScrollLeft()+t,e.scrollLeft=0)}this._context.model.setScrollPosition(n,1)};this._register(i.addDisposableListener(a.domNode,"scroll",e=>m(a.domNode,!0,!0))),this._register(i.addDisposableListener(t.domNode,"scroll",e=>m(t.domNode,!0,!1))),this._register(i.addDisposableListener(l.domNode,"scroll",e=>m(l.domNode,!0,!1))),this._register(i.addDisposableListener(this.scrollbarDomNode.domNode,"scroll",e=>m(this.scrollbarDomNode.domNode,!0,!1)))}dispose(){super.dispose()}_setLayout(){ +const e=this._context.configuration.options,t=e.get(117);this.scrollbarDomNode.setLeft(t.contentLeft),"right"===e.get(56).side?this.scrollbarDomNode.setWidth(t.contentWidth+t.minimap.minimapWidth):this.scrollbarDomNode.setWidth(t.contentWidth),this.scrollbarDomNode.setHeight(t.height)}getOverviewRulerLayoutInfo(){return this.scrollbar.getOverviewRulerLayoutInfo()}getDomNode(){return this.scrollbarDomNode}delegateVerticalScrollbarMouseDown(e){this.scrollbar.delegateVerticalScrollbarMouseDown(e)}onConfigurationChanged(e){if(e.hasChanged(84)||e.hasChanged(58)||e.hasChanged(28)){const e=this._context.configuration.options,t=e.get(84),i=e.get(58),n=e.get(28),o=e.get(87),s={handleMouseWheel:t.handleMouseWheel,mouseWheelScrollSensitivity:i,fastScrollSensitivity:n,scrollPredominantAxis:o};this.scrollbar.updateOptions(s)}return e.hasChanged(117)&&this._setLayout(),!0}onScrollChanged(e){return!0}onThemeChanged(e){ +return this.scrollbar.updateClassName("editor-scrollable "+r.getThemeTypeSelector(this._context.theme.type)),!0}prepareRender(e){}render(e){this.scrollbar.renderNow()}}t.EditorScrollbar=a})),define(t[249],i([0,1,36,30,16,375,103,163,123,14,38]),(function(e,t,i,n,o,s,r,a,l,d,c){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ViewLine=t.ViewLineOptions=t.DomReadingContext=void 0;const h=!!o.isNative||!(o.isLinux||i.isFirefox||i.isSafari);let u=!0;const g=i.isEdge;t.DomReadingContext=class{constructor(e,t){this._domNode=e,this._clientRectDeltaLeft=0,this._clientRectDeltaLeftRead=!1,this.endNode=t}get clientRectDeltaLeft(){return this._clientRectDeltaLeftRead||(this._clientRectDeltaLeftRead=!0,this._clientRectDeltaLeft=this._domNode.getBoundingClientRect().left),this._clientRectDeltaLeft}};t.ViewLineOptions=class{constructor(e,t){this.themeType=t;const i=e.options,n=i.get(36);this.renderWhitespace=i.get(80),this.renderControlCharacters=i.get(74),this.spaceWidth=n.spaceWidth, +this.middotWidth=n.middotWidth,this.wsmiddotWidth=n.wsmiddotWidth,this.useMonospaceOptimizations=n.isMonospace&&!i.get(24),this.canUseHalfwidthRightwardsArrow=n.canUseHalfwidthRightwardsArrow,this.lineHeight=i.get(51),this.stopRenderingLineAfter=i.get(95),this.fontLigatures=i.get(37)}equals(e){return this.themeType===e.themeType&&this.renderWhitespace===e.renderWhitespace&&this.renderControlCharacters===e.renderControlCharacters&&this.spaceWidth===e.spaceWidth&&this.middotWidth===e.middotWidth&&this.wsmiddotWidth===e.wsmiddotWidth&&this.useMonospaceOptimizations===e.useMonospaceOptimizations&&this.canUseHalfwidthRightwardsArrow===e.canUseHalfwidthRightwardsArrow&&this.lineHeight===e.lineHeight&&this.stopRenderingLineAfter===e.stopRenderingLineAfter&&this.fontLigatures===e.fontLigatures}};class p{constructor(e){this._options=e,this._isMaybeInvalid=!0,this._renderedViewLine=null}getDomNode(){return this._renderedViewLine&&this._renderedViewLine.domNode?this._renderedViewLine.domNode.domNode:null}setDomNode(e){ +if(!this._renderedViewLine)throw new Error("I have no rendered view line to set the dom node to...");this._renderedViewLine.domNode=n.createFastDomNode(e)}onContentChanged(){this._isMaybeInvalid=!0}onTokensChanged(){this._isMaybeInvalid=!0}onDecorationsChanged(){this._isMaybeInvalid=!0}onOptionsChanged(e){this._isMaybeInvalid=!0,this._options=e}onSelectionChanged(){return!(!g&&this._options.themeType!==d.HIGH_CONTRAST&&"selection"!==this._options.renderWhitespace)&&(this._isMaybeInvalid=!0,!0)}renderLine(e,t,i,n){if(!1===this._isMaybeInvalid)return!1;this._isMaybeInvalid=!1;const o=i.getViewLineRenderingData(e),s=this._options,r=a.LineDecoration.filter(o.inlineDecorations,e,o.minColumn,o.maxColumn);let f=null;if(g||s.themeType===d.HIGH_CONTRAST||"selection"===this._options.renderWhitespace){const t=i.selections;for(const i of t){if(i.endLineNumbere)continue;const t=i.startLineNumber===e?i.startColumn:o.minColumn,n=i.endLineNumber===e?i.endColumn:o.maxColumn +;t');const C=l.renderViewLine(_,n);n.appendASCIIString("");let b=null +;return u&&h&&o.isBasicASCII&&s.useMonospaceOptimizations&&0===C.containsForeignElements&&o.content.length<300&&_.lineTokens.getCount()<100&&(b=new m(this._renderedViewLine?this._renderedViewLine.domNode:null,_,C.characterMapping)),b||(b=v(this._renderedViewLine?this._renderedViewLine.domNode:null,_,C.characterMapping,C.containsRTL,C.containsForeignElements)),this._renderedViewLine=b,!0}layoutLine(e,t){this._renderedViewLine&&this._renderedViewLine.domNode&&(this._renderedViewLine.domNode.setTop(t),this._renderedViewLine.domNode.setHeight(this._options.lineHeight))}getWidth(){return this._renderedViewLine?this._renderedViewLine.getWidth():0}getWidthIsFast(){return!this._renderedViewLine||this._renderedViewLine.getWidthIsFast()}needsMonospaceFontCheck(){return!!this._renderedViewLine&&this._renderedViewLine instanceof m}monospaceAssumptionsAreValid(){return this._renderedViewLine&&this._renderedViewLine instanceof m?this._renderedViewLine.monospaceAssumptionsAreValid():u}onMonospaceAssumptionsInvalidated(){ +this._renderedViewLine&&this._renderedViewLine instanceof m&&(this._renderedViewLine=this._renderedViewLine.toSlowRenderedLine())}getVisibleRangesForRange(e,t,i){if(!this._renderedViewLine)return null;e|=0,t|=0,e=Math.min(this._renderedViewLine.input.lineContent.length+1,Math.max(1,e)),t=Math.min(this._renderedViewLine.input.lineContent.length+1,Math.max(1,t));const n=0|this._renderedViewLine.input.stopRenderingLineAfter;let o=!1;-1!==n&&e>n+1&&t>n+1&&(o=!0),-1!==n&&e>n+1&&(e=n+1),-1!==n&&t>n+1&&(t=n+1);const s=this._renderedViewLine.getVisibleRangesForRange(e,t,i);return s&&s.length>0?new r.VisibleRanges(o,s):null}getColumnOfNodeOffset(e,t,i){return this._renderedViewLine?this._renderedViewLine.getColumnOfNodeOffset(e,t,i):1}}t.ViewLine=p,p.CLASS_NAME="view-line";class m{constructor(e,t,i){this.domNode=e,this.input=t,this._characterMapping=i,this._charWidth=t.spaceWidth}getWidth(){return this._getCharPosition(this._characterMapping.length)}getWidthIsFast(){return!0}monospaceAssumptionsAreValid(){ +if(!this.domNode)return u;const e=this.getWidth(),t=this.domNode.domNode.firstChild.offsetWidth;return Math.abs(e-t)>=2&&(console.warn("monospace assumptions have been violated, therefore disabling monospace optimizations!"),u=!1),u}toSlowRenderedLine(){return v(this.domNode,this.input,this._characterMapping,!1,0)}getVisibleRangesForRange(e,t,i){const n=this._getCharPosition(e),o=this._getCharPosition(t);return[new r.HorizontalRange(n,o-n)]}_getCharPosition(e){const t=this._characterMapping.getAbsoluteOffsets();return 0===t.length?0:Math.round(this._charWidth*t[e-1])}getColumnOfNodeOffset(e,t,i){const n=t.textContent.length;let o=-1;for(;t;)t=t.previousSibling,o++;return this._characterMapping.partDataToCharOffset(o,n,i)+1}}class f{constructor(e,t,i,n,o){if(this.domNode=e,this.input=t,this._characterMapping=i,this._isWhitespaceOnly=/^\s*$/.test(t.lineContent),this._containsForeignElements=o,this._cachedWidth=-1,this._pixelOffsetCache=null,!n||0===this._characterMapping.length){ +this._pixelOffsetCache=new Int32Array(Math.max(2,this._characterMapping.length+1));for(let e=0,t=this._characterMapping.length;e<=t;e++)this._pixelOffsetCache[e]=-1}}_getReadingTarget(e){return e.domNode.firstChild}getWidth(){return this.domNode?(-1===this._cachedWidth&&(this._cachedWidth=this._getReadingTarget(this.domNode).offsetWidth),this._cachedWidth):0}getWidthIsFast(){return-1!==this._cachedWidth}getVisibleRangesForRange(e,t,i){if(!this.domNode)return null;if(null!==this._pixelOffsetCache){const n=this._readPixelOffset(this.domNode,e,i);if(-1===n)return null;const o=this._readPixelOffset(this.domNode,t,i);return-1===o?null:[new r.HorizontalRange(n,o-n)]}return this._readVisibleRangesForRange(this.domNode,e,t,i)}_readVisibleRangesForRange(e,t,i,n){if(t===i){const i=this._readPixelOffset(e,t,n);return-1===i?null:[new r.HorizontalRange(i,0)]}return this._readRawVisibleRangesForRange(e,t,i,n)}_readPixelOffset(e,t,i){if(0===this._characterMapping.length){if(0===this._containsForeignElements)return 0 +;if(2===this._containsForeignElements)return 0;if(1===this._containsForeignElements)return this.getWidth();const t=this._getReadingTarget(e);return t.firstChild?t.firstChild.offsetWidth:0}if(null!==this._pixelOffsetCache){const n=this._pixelOffsetCache[t];if(-1!==n)return n;const o=this._actualReadPixelOffset(e,t,i);return this._pixelOffsetCache[t]=o,o}return this._actualReadPixelOffset(e,t,i)}_actualReadPixelOffset(e,t,i){if(0===this._characterMapping.length){const t=s.RangeUtil.readHorizontalRanges(this._getReadingTarget(e),0,0,0,0,i.clientRectDeltaLeft,i.endNode);return t&&0!==t.length?t[0].left:-1}if(t===this._characterMapping.length&&this._isWhitespaceOnly&&0===this._containsForeignElements)return this.getWidth();const n=this._characterMapping.charOffsetToPartData(t-1),o=l.CharacterMapping.getPartIndex(n),r=l.CharacterMapping.getCharIndex(n),a=s.RangeUtil.readHorizontalRanges(this._getReadingTarget(e),o,r,o,r,i.clientRectDeltaLeft,i.endNode);if(!a||0===a.length)return-1;const d=a[0].left +;if(this.input.isBasicASCII){const e=this._characterMapping.getAbsoluteOffsets(),i=Math.round(this.input.spaceWidth*e[t-1]);if(Math.abs(i-d)<=1)return i}return d}_readRawVisibleRangesForRange(e,t,i,n){if(1===t&&i===this._characterMapping.length)return[new r.HorizontalRange(0,this.getWidth())];const o=this._characterMapping.charOffsetToPartData(t-1),a=l.CharacterMapping.getPartIndex(o),d=l.CharacterMapping.getCharIndex(o),c=this._characterMapping.charOffsetToPartData(i-1),h=l.CharacterMapping.getPartIndex(c),u=l.CharacterMapping.getCharIndex(c);return s.RangeUtil.readHorizontalRanges(this._getReadingTarget(e),a,d,h,u,n.clientRectDeltaLeft,n.endNode)}getColumnOfNodeOffset(e,t,i){const n=t.textContent.length;let o=-1;for(;t;)t=t.previousSibling,o++;return this._characterMapping.partDataToCharOffset(o,n,i)+1}}class _ extends f{_readVisibleRangesForRange(e,t,i,n){const o=super._readVisibleRangesForRange(e,t,i,n);if(!o||0===o.length||t===i||1===t&&i===this._characterMapping.length)return o +;if(!this.input.containsRTL){const t=this._readPixelOffset(e,i,n);if(-1!==t){const e=o[o.length-1];e.left=4&&3===e[0]&&7===e[3]}static isStrictChildOfViewLines(e){return e.length>4&&3===e[0]&&7===e[3]}static isChildOfScrollableElement(e){return e.length>=2&&3===e[0]&&5===e[1]}static isChildOfMinimap(e){return e.length>=2&&3===e[0]&&8===e[1]}static isChildOfContentWidgets(e){return e.length>=4&&3===e[0]&&1===e[3]}static isChildOfOverflowingContentWidgets(e){return e.length>=1&&2===e[0]}static isChildOfOverlayWidgets(e){ +return e.length>=2&&3===e[0]&&4===e[1]}}class u{constructor(e,t,i){this.model=e.model;const n=e.configuration.options;this.layoutInfo=n.get(117),this.viewDomNode=t.viewDomNode,this.lineHeight=n.get(51),this.typicalHalfwidthCharacterWidth=n.get(36).typicalHalfwidthCharacterWidth,this.lastRenderData=i,this._context=e,this._viewHelper=t}getZoneAtCoord(e){return u.getZoneAtCoord(this._context,e)}static getZoneAtCoord(e,t){const i=e.viewLayout.getWhitespaceAtVerticalOffset(t);if(i){let n,o=i.verticalOffset+i.height/2,s=e.model.getLineCount(),a=null,l=null;return i.afterLineNumber!==s&&(l=new r.Position(i.afterLineNumber+1,1)),i.afterLineNumber>0&&(a=new r.Position(i.afterLineNumber,e.model.getLineMaxColumn(i.afterLineNumber))),n=null===l?a:null===a?l:t=e.layoutInfo.glyphMarginLeft,this.isInContentArea=!this.isInMarginArea,this.mouseColumn=Math.max(0,_._getMouseColumn(this.mouseContentHorizontalOffset,e.typicalHalfwidthCharacterWidth))}}class p extends g{constructor(e,t,i,n){super(e,t,i),this._ctx=e,n?(this.target=n,this.targetPath=o.PartFingerprints.collect(n,e.viewDomNode)):(this.target=null,this.targetPath=new Uint8Array(0))}toString(){ +return`pos(${this.pos.x},${this.pos.y}), editorPos(${this.editorPos.x},${this.editorPos.y}), mouseVerticalOffset: ${this.mouseVerticalOffset}, mouseContentHorizontalOffset: ${this.mouseContentHorizontalOffset}\n\ttarget: ${this.target?this.target.outerHTML:null}`}fulfill(e,t=null,i=null,n=null){let o=this.mouseColumn;return t&&t.columns.contentLeft+s.width)continue;const i=e.getVerticalOffsetForLineNumber(s.position.lineNumber);if(i<=o&&o<=i+s.height)return t.fulfill(6,s.position)}}return null}static _hitTestViewZone(e,t){const i=e.getZoneAtCoord(t.mouseVerticalOffset);if(i){const e=t.isInContentArea?8:5;return t.fulfill(e,i.position,null,i)}return null}static _hitTestTextArea(e,t){ +return h.isTextArea(t.targetPath)?e.lastRenderData.lastTextareaPosition?t.fulfill(6,e.lastRenderData.lastTextareaPosition):t.fulfill(1,e.lastRenderData.lastTextareaPosition):null}static _hitTestMargin(e,t){if(t.isInMarginArea){const i=e.getFullLineRangeAtCoord(t.mouseVerticalOffset),n=i.range.getStartPosition();let o=Math.abs(t.pos.x-t.editorPos.x);const s={isAfterLines:i.isAfterLines,glyphMarginLeft:e.layoutInfo.glyphMarginLeft,glyphMarginWidth:e.layoutInfo.glyphMarginWidth,lineNumbersWidth:e.layoutInfo.lineNumbersWidth,offsetX:o};return(o-=e.layoutInfo.glyphMarginLeft)<=e.layoutInfo.glyphMarginWidth?t.fulfill(2,n,i.range,s):(o-=e.layoutInfo.glyphMarginWidth)<=e.layoutInfo.lineNumbersWidth?t.fulfill(3,n,i.range,s):(o-=e.layoutInfo.lineNumbersWidth,t.fulfill(4,n,i.range,s))}return null}static _hitTestViewLines(e,t,i){if(!h.isChildOfViewLines(t.targetPath))return null;if(e.isAfterLines(t.mouseVerticalOffset)){const i=e.model.getLineCount(),n=e.model.getLineMaxColumn(i) +;return t.fulfill(7,new r.Position(i,n),void 0,m)}if(i){if(h.isStrictChildOfViewLines(t.targetPath)){const i=e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset);if(0===e.model.getLineLength(i)){const n=e.getLineWidth(i),o=f(t.mouseContentHorizontalOffset-n);return t.fulfill(7,new r.Position(i,1),void 0,o)}const n=e.getLineWidth(i);if(t.mouseContentHorizontalOffset>=n){const o=f(t.mouseContentHorizontalOffset-n),s=new r.Position(i,e.model.getLineMaxColumn(i));return t.fulfill(7,s,void 0,o)}}return t.fulfill(0)}const n=_._doHitTest(e,t);return n.position?_.createMouseTargetFromHitTestPosition(e,t,n.position.lineNumber,n.position.column):this._createMouseTarget(e,t.withTarget(n.hitTarget),!0)}static _hitTestMinimap(e,t){if(h.isChildOfMinimap(t.targetPath)){const i=e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset),n=e.model.getLineMaxColumn(i);return t.fulfill(11,new r.Position(i,n))}return null}static _hitTestScrollbarSlider(e,t){ +if(h.isChildOfScrollableElement(t.targetPath)&&t.target&&1===t.target.nodeType){const i=t.target.className;if(i&&/\b(slider|scrollbar)\b/.test(i)){const i=e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset),n=e.model.getLineMaxColumn(i);return t.fulfill(11,new r.Position(i,n))}}return null}static _hitTestScrollbar(e,t){if(h.isChildOfScrollableElement(t.targetPath)){const i=e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset),n=e.model.getLineMaxColumn(i);return t.fulfill(11,new r.Position(i,n))}return null}getMouseColumn(e,t){const i=this._context.configuration.options,n=i.get(117),o=this._context.viewLayout.getCurrentScrollLeft()+t.x-e.x-n.contentLeft;return _._getMouseColumn(o,i.get(36).typicalHalfwidthCharacterWidth)}static _getMouseColumn(e,t){if(e<0)return 1;return Math.round(e/t)+1}static createMouseTargetFromHitTestPosition(e,t,n,o){const s=new r.Position(n,o),l=e.getLineWidth(n);if(t.mouseContentHorizontalOffset>l){if(i.isEdge&&1===s.column){const i=f(t.mouseContentHorizontalOffset-l) +;return t.fulfill(7,new r.Position(n,e.model.getLineMaxColumn(n)),void 0,i)}const o=f(t.mouseContentHorizontalOffset-l);return t.fulfill(7,s,void 0,o)}const d=e.visibleRangeForPosition(n,o);if(!d)return t.fulfill(0,s);const c=d.left;if(t.mouseContentHorizontalOffset===c)return t.fulfill(6,s);const h=[];if(h.push({offset:d.left,column:o}),o>1){const t=e.visibleRangeForPosition(n,o-1);t&&h.push({offset:t.left,column:o-1})}if(oe.offset-t.offset);for(let e=1;e=t.editorPos.y+e.layoutInfo.height&&(s=t.editorPos.y+e.layoutInfo.height-1);const r=new n.PageCoordinates(t.pos.x,s),a=this._actualDoHitTestWithCaretRangeFromPoint(e,r.toClientCoordinates());return a.position?a:this._actualDoHitTestWithCaretRangeFromPoint(e,t.pos.toClientCoordinates())}static _actualDoHitTestWithCaretRangeFromPoint(e,t){const i=d.getShadowRoot(e.viewDomNode);let n;if(!(n=i?void 0===i.caretRangeFromPoint?v(i,t.clientX,t.clientY):i.caretRangeFromPoint(t.clientX,t.clientY):document.caretRangeFromPoint(t.clientX,t.clientY))||!n.startContainer)return{position:null,hitTarget:null};const o=n.startContainer;let r=null;if(o.nodeType===o.TEXT_NODE){const t=o.parentNode,i=t?t.parentNode:null,a=i?i.parentNode:null;if((a&&a.nodeType===a.ELEMENT_NODE?a.className:null)===s.ViewLine.CLASS_NAME){return{position:e.getPositionFromDOMInfo(t,n.startOffset),hitTarget:null}}r=o.parentNode}else if(o.nodeType===o.ELEMENT_NODE){const t=o.parentNode,i=t?t.parentNode:null +;if((i&&i.nodeType===i.ELEMENT_NODE?i.className:null)===s.ViewLine.CLASS_NAME){return{position:e.getPositionFromDOMInfo(o,o.textContent.length),hitTarget:null}}r=o}return{position:null,hitTarget:r}}static _doHitTestWithCaretPositionFromPoint(e,t){const i=document.caretPositionFromPoint(t.clientX,t.clientY);if(i.offsetNode.nodeType===i.offsetNode.TEXT_NODE){const t=i.offsetNode.parentNode,n=t?t.parentNode:null,o=n?n.parentNode:null;if((o&&o.nodeType===o.ELEMENT_NODE?o.className:null)===s.ViewLine.CLASS_NAME){return{position:e.getPositionFromDOMInfo(i.offsetNode.parentNode,i.offset),hitTarget:null}}return{position:null,hitTarget:i.offsetNode.parentNode}}if(i.offsetNode.nodeType===i.offsetNode.ELEMENT_NODE){const t=i.offsetNode.parentNode;if((t&&t.nodeType===t.ELEMENT_NODE?t.className:null)===s.ViewLine.CLASS_NAME){const t=i.offsetNode.childNodes[Math.min(i.offset,i.offsetNode.childNodes.length-1)];if(t){return{position:e.getPositionFromDOMInfo(t,0),hitTarget:null}}}}return{position:null,hitTarget:i.offsetNode}} +static _doHitTestWithMoveToPoint(e,t){let i=null,n=null;const o=document.body.createTextRange();try{o.moveToPoint(t.clientX,t.clientY)}catch(e){return{position:null,hitTarget:null}}o.collapse(!0);const r=o?o.parentElement():null,a=r?r.parentNode:null,l=a?a.parentNode:null;if((l&&l.nodeType===l.ELEMENT_NODE?l.className:"")===s.ViewLine.CLASS_NAME){const t=o.duplicate();t.moveToElementText(r),t.setEndPoint("EndToStart",o),i=e.getPositionFromDOMInfo(r,t.text.length),t.moveToElementText(e.viewDomNode)}else n=r;return o.moveToElementText(e.viewDomNode),{position:i,hitTarget:n}}static _doHitTest(e,t){return"function"==typeof document.caretRangeFromPoint?this._doHitTestWithCaretRangeFromPoint(e,t):document.caretPositionFromPoint?this._doHitTestWithCaretPositionFromPoint(e,t.pos.toClientCoordinates()):document.body.createTextRange?this._doHitTestWithMoveToPoint(e,t.pos.toClientCoordinates()):{position:null,hitTarget:null}}}function v(e,t,i){const n=document.createRange();let o=e.elementFromPoint(t,i);if(null!==o){ +for(;o&&o.firstChild&&o.firstChild.nodeType!==o.firstChild.TEXT_NODE;)o=o.lastChild;const e=o.getBoundingClientRect(),i=window.getComputedStyle(o,null).getPropertyValue("font"),s=o.innerText;let r,a=e.left,l=0;if(t>e.left+e.width)l=s.length;else{const e=C.getInstance();for(let n=0;nthis._createMouseTarget(e,t),e=>this._getMouseColumn(e))),this.lastMouseLeaveTime=-1;const s=new l.EditorMouseEventFactory(this.viewHelper.viewDomNode);this._register(s.onContextMenu(this.viewHelper.viewDomNode,e=>this._onContextMenu(e,!0))),this._register(s.onMouseMoveThrottled(this.viewHelper.viewDomNode,e=>this._onMouseMove(e),g(this.mouseTargetFactory),p.MOUSE_MOVE_MINIMUM_TIME)),this._register(s.onMouseUp(this.viewHelper.viewDomNode,e=>this._onMouseUp(e))),this._register(s.onMouseLeave(this.viewHelper.viewDomNode,e=>this._onMouseLeave(e))), +this._register(s.onMouseDown(this.viewHelper.viewDomNode,e=>this._onMouseDown(e)));this._register(i.addDisposableListener(this.viewHelper.viewDomNode,i.EventType.MOUSE_WHEEL,e=>{if(this.viewController.emitMouseWheel(e),!this._context.configuration.options.get(59))return;const t=new n.StandardWheelEvent(e);if(t.browserEvent.ctrlKey||t.browserEvent.metaKey){const e=d.EditorZoom.getZoomLevel(),i=t.deltaY>0?1:-1;d.EditorZoom.setZoomLevel(e+i),t.preventDefault(),t.stopPropagation()}},{capture:!0,passive:!1})),this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),super.dispose()}onCursorStateChanged(e){return this._mouseDownOperation.onCursorStateChanged(e),!1}onFocusChanged(e){return!1}onScrollChanged(e){return this._mouseDownOperation.onScrollChanged(),!1}getTargetAtClientPoint(e,t){const i=new l.ClientCoordinates(e,t).toPageCoordinates(),n=l.createEditorPagePosition(this.viewHelper.viewDomNode) +;return i.yn.y+n.height||i.xn.x+n.width?null:this.mouseTargetFactory.createMouseTarget(this.viewHelper.getLastRenderData(),n,i,null)}_createMouseTarget(e,t){return this.mouseTargetFactory.createMouseTarget(this.viewHelper.getLastRenderData(),e.editorPos,e.pos,t?e.target:null)}_getMouseColumn(e){return this.mouseTargetFactory.getMouseColumn(e.editorPos,e.pos)}_onContextMenu(e,t){this.viewController.emitContextMenu({event:e,target:this._createMouseTarget(e,t)})}_onMouseMove(e){if(this._mouseDownOperation.isActive())return;e.timestamp{e.preventDefault(),this.viewHelper.focusTextArea()};if(d&&(i||o&&s))c(),this._mouseDownOperation.start(t.type,e);else if(n)e.preventDefault();else if(a){const i=t.detail;this.viewHelper.shouldSuppressMouseDownOnViewZone(i.viewZoneId)&&(c(),this._mouseDownOperation.start(t.type,e),e.preventDefault())}else l&&this.viewHelper.shouldSuppressMouseDownOnWidget(t.detail)&&(c(),e.preventDefault());this.viewController.emitMouseDown({event:e,target:t})}}t.MouseHandler=p,p.MOUSE_MOVE_MINIMUM_TIME=100;class m extends s.Disposable{constructor(e,t,i,n,s){super(),this._context=e,this._viewController=t,this._viewHelper=i,this._createMouseTarget=n,this._getMouseColumn=s, +this._mouseMoveMonitor=this._register(new l.GlobalEditorMouseMoveMonitor(this._viewHelper.viewDomNode)),this._onScrollTimeout=this._register(new o.TimeoutTimer),this._mouseState=new f,this._currentSelection=new h.Selection(1,1,1,1),this._isActive=!1,this._lastMouseEvent=null}dispose(){super.dispose()}isActive(){return this._isActive}_onMouseDownThenMove(e){this._lastMouseEvent=e,this._mouseState.setModifiers(e);const t=this._findMousePosition(e,!0);t&&(this._mouseState.isDragAndDrop?this._viewController.emitMouseDrag({event:e,target:t}):this._dispatchMouse(t,!0))}start(e,t){this._lastMouseEvent=t,this._mouseState.setStartedOnLineNumbers(3===e),this._mouseState.setStartButtons(t),this._mouseState.setModifiers(t);const i=this._findMousePosition(t,!0);if(!i||!i.position)return;this._mouseState.trySetCount(t.detail,i.position),t.detail=this._mouseState.count;const n=this._context.configuration.options +;if(!n.get(72)&&n.get(25)&&!n.get(13)&&!this._mouseState.altKey&&t.detail<2&&!this._isActive&&!this._currentSelection.isEmpty()&&6===i.type&&i.position&&this._currentSelection.containsPosition(i.position))return this._mouseState.isDragAndDrop=!0,this._isActive=!0,void this._mouseMoveMonitor.startMonitoring(t.target,t.buttons,g(null),e=>this._onMouseDownThenMove(e),()=>{const e=this._findMousePosition(this._lastMouseEvent,!0);this._viewController.emitMouseDrop({event:this._lastMouseEvent,target:e?this._createMouseTarget(this._lastMouseEvent,!0):null}),this._stop()});this._mouseState.isDragAndDrop=!1,this._dispatchMouse(i,t.shiftKey),this._isActive||(this._isActive=!0,this._mouseMoveMonitor.startMonitoring(t.target,t.buttons,g(null),e=>this._onMouseDownThenMove(e),()=>this._stop()))}_stop(){this._isActive=!1,this._onScrollTimeout.cancel()}onScrollChanged(){this._isActive&&this._onScrollTimeout.setIfNotSet(()=>{if(!this._lastMouseEvent)return;const e=this._findMousePosition(this._lastMouseEvent,!1) +;e&&(this._mouseState.isDragAndDrop||this._dispatchMouse(e,!0))},10)}onCursorStateChanged(e){this._currentSelection=e.selections[0]}_getPositionOutsideEditor(e){const t=e.editorPos,i=this._context.model,n=this._context.viewLayout,o=this._getMouseColumn(e);if(e.posyt.y+t.height){const s=n.getCurrentScrollTop()+(e.posy-t.y),r=a.HitTestContext.getZoneAtCoord(this._context,s);if(r){const e=this._helpPositionJumpOverViewZone(r);if(e)return new a.MouseTarget(null,13,o,e)}const l=n.getLineNumberAtVerticalOffset(s);return new a.MouseTarget(null,13,o,new c.Position(l,i.getLineMaxColumn(l)))}const s=n.getLineNumberAtVerticalOffset(n.getCurrentScrollTop()+(e.posy-t.y)) +;return e.posxt.x+t.width?new a.MouseTarget(null,13,o,new c.Position(s,i.getLineMaxColumn(s))):null}_findMousePosition(e,t){const i=this._getPositionOutsideEditor(e);if(i)return i;const n=this._createMouseTarget(e,t);if(!n.position)return null;if(8===n.type||5===n.type){const e=this._helpPositionJumpOverViewZone(n.detail);if(e)return new a.MouseTarget(n.element,n.type,n.mouseColumn,e,null,n.detail)}return n}_helpPositionJumpOverViewZone(e){const t=new c.Position(this._currentSelection.selectionStartLineNumber,this._currentSelection.selectionStartColumn),i=e.positionBefore,n=e.positionAfter;return i&&n?i.isBefore(t)?i:n:null}_dispatchMouse(e,t){e.position&&this._viewController.dispatchMouse({position:e.position,mouseColumn:e.mouseColumn,startedOnLineNumbers:this._mouseState.startedOnLineNumbers,inSelectionMode:t,mouseDownCount:this._mouseState.count,altKey:this._mouseState.altKey,ctrlKey:this._mouseState.ctrlKey,metaKey:this._mouseState.metaKey, +shiftKey:this._mouseState.shiftKey,leftButton:this._mouseState.leftButton,middleButton:this._mouseState.middleButton})}}class f{constructor(){this._altKey=!1,this._ctrlKey=!1,this._metaKey=!1,this._shiftKey=!1,this._leftButton=!1,this._middleButton=!1,this._startedOnLineNumbers=!1,this._lastMouseDownPosition=null,this._lastMouseDownPositionEqualCount=0,this._lastMouseDownCount=0,this._lastSetMouseDownCountTime=0,this.isDragAndDrop=!1}get altKey(){return this._altKey}get ctrlKey(){return this._ctrlKey}get metaKey(){return this._metaKey}get shiftKey(){return this._shiftKey}get leftButton(){return this._leftButton}get middleButton(){return this._middleButton}get startedOnLineNumbers(){return this._startedOnLineNumbers}get count(){return this._lastMouseDownCount}setModifiers(e){this._altKey=e.altKey,this._ctrlKey=e.ctrlKey,this._metaKey=e.metaKey,this._shiftKey=e.shiftKey}setStartButtons(e){this._leftButton=e.leftButton,this._middleButton=e.middleButton}setStartedOnLineNumbers(e){this._startedOnLineNumbers=e} +trySetCount(e,t){const i=(new Date).getTime();i-this._lastSetMouseDownCountTime>f.CLEAR_MOUSE_DOWN_COUNT_TIME&&(e=1),this._lastSetMouseDownCountTime=i,e>this._lastMouseDownCount+1&&(e=this._lastMouseDownCount+1),this._lastMouseDownPosition&&this._lastMouseDownPosition.equals(t)?this._lastMouseDownPositionEqualCount++:this._lastMouseDownPositionEqualCount=1,this._lastMouseDownPosition=t,this._lastMouseDownCount=Math.min(e,this._lastMouseDownPositionEqualCount)}}f.CLEAR_MOUSE_DOWN_COUNT_TIME=400})),define(t[586],i([0,1,7,16,58,2,585,155,98]),(function(e,t,i,n,o,s,r,a,l){"use strict";function d(e,t){const i={translationY:t.translationY,translationX:t.translationX};return e&&(i.translationY+=e.translationY,i.translationX+=e.translationX),i}Object.defineProperty(t,"__esModule",{value:!0}),t.PointerHandler=t.PointerEventHandler=void 0;class c extends r.MouseHandler{constructor(e,t,n){super(e,t,n),this.viewHelper.linesContentDomNode.style.touchAction="none",this._installGestureHandlerTimeout=window.setTimeout(()=>{ +if(this._installGestureHandlerTimeout=-1,window.MSGesture){const e=new MSGesture,t=new MSGesture;e.target=this.viewHelper.linesContentDomNode,t.target=this.viewHelper.linesContentDomNode,this.viewHelper.linesContentDomNode.addEventListener("pointerdown",i=>{const n=i.pointerType;"mouse"!==n?"touch"===n?(this._lastPointerType="touch",e.addPointer(i.pointerId)):(this._lastPointerType="pen",t.addPointer(i.pointerId)):this._lastPointerType="mouse"}),this._register(i.addDisposableThrottledListener(this.viewHelper.linesContentDomNode,"MSGestureChange",e=>this._onGestureChange(e),d)),this._register(i.addDisposableListener(this.viewHelper.linesContentDomNode,"MSGestureTap",e=>this._onCaptureGestureTap(e),!0))}},100),this._lastPointerType="mouse"}_onMouseDown(e){"mouse"===this._lastPointerType&&super._onMouseDown(e)}_onCaptureGestureTap(e){const t=new a.EditorMouseEvent(e,this.viewHelper.viewDomNode),i=this._createMouseTarget(t,!1);i.position&&this.viewController.moveTo(i.position), +t.browserEvent.fromElement?(t.preventDefault(),this.viewHelper.focusTextArea()):setTimeout(()=>{this.viewHelper.focusTextArea()})}_onGestureChange(e){this._context.model.deltaScrollNow(-e.translationX,-e.translationY)}dispose(){window.clearTimeout(this._installGestureHandlerTimeout),super.dispose()}}class h extends r.MouseHandler{constructor(e,t,n){super(e,t,n),this._register(o.Gesture.addTarget(this.viewHelper.linesContentDomNode)),this._register(i.addDisposableListener(this.viewHelper.linesContentDomNode,o.EventType.Tap,e=>this.onTap(e))),this._register(i.addDisposableListener(this.viewHelper.linesContentDomNode,o.EventType.Change,e=>this.onChange(e))),this._register(i.addDisposableListener(this.viewHelper.linesContentDomNode,o.EventType.Contextmenu,e=>this._onContextMenu(new a.EditorMouseEvent(e,this.viewHelper.viewDomNode),!1))),this._lastPointerType="mouse",this._register(i.addDisposableListener(this.viewHelper.linesContentDomNode,"pointerdown",e=>{const t=e.pointerType +;this._lastPointerType="mouse"!==t?"touch"===t?"touch":"pen":"mouse"}));const s=new a.EditorPointerEventFactory(this.viewHelper.viewDomNode);this._register(s.onPointerMoveThrottled(this.viewHelper.viewDomNode,e=>this._onMouseMove(e),r.createMouseMoveEventMerger(this.mouseTargetFactory),r.MouseHandler.MOUSE_MOVE_MINIMUM_TIME)),this._register(s.onPointerUp(this.viewHelper.viewDomNode,e=>this._onMouseUp(e))),this._register(s.onPointerLeave(this.viewHelper.viewDomNode,e=>this._onMouseLeave(e))),this._register(s.onPointerDown(this.viewHelper.viewDomNode,e=>this._onMouseDown(e)))}onTap(e){if(!e.initialTarget||!this.viewHelper.linesContentDomNode.contains(e.initialTarget))return;e.preventDefault(),this.viewHelper.focusTextArea();const t=this._createMouseTarget(new a.EditorMouseEvent(e,this.viewHelper.viewDomNode),!1);t.position&&this.viewController.dispatchMouse({position:t.position,mouseColumn:t.position.column,startedOnLineNumbers:!1,mouseDownCount:e.tapCount,inSelectionMode:!1,altKey:!1,ctrlKey:!1,metaKey:!1, +shiftKey:!1,leftButton:!1,middleButton:!1})}onChange(e){"touch"===this._lastPointerType&&this._context.model.deltaScrollNow(-e.translationX,-e.translationY)}_onMouseDown(e){e.target&&this.viewHelper.linesContentDomNode.contains(e.target)&&"touch"===this._lastPointerType||super._onMouseDown(e)}}t.PointerEventHandler=h;class u extends r.MouseHandler{constructor(e,t,n){super(e,t,n),this._register(o.Gesture.addTarget(this.viewHelper.linesContentDomNode)),this._register(i.addDisposableListener(this.viewHelper.linesContentDomNode,o.EventType.Tap,e=>this.onTap(e))),this._register(i.addDisposableListener(this.viewHelper.linesContentDomNode,o.EventType.Change,e=>this.onChange(e))),this._register(i.addDisposableListener(this.viewHelper.linesContentDomNode,o.EventType.Contextmenu,e=>this._onContextMenu(new a.EditorMouseEvent(e,this.viewHelper.viewDomNode),!1)))}onTap(e){e.preventDefault(),this.viewHelper.focusTextArea();const t=this._createMouseTarget(new a.EditorMouseEvent(e,this.viewHelper.viewDomNode),!1) +;t.position&&this.viewController.moveTo(t.position)}onChange(e){this._context.model.deltaScrollNow(-e.translationX,-e.translationY)}}class g extends s.Disposable{constructor(e,t,i){super(),n.isIOS&&l.BrowserFeatures.pointerEvents?this.handler=this._register(new h(e,t,i)):window.TouchEvent?this.handler=this._register(new u(e,t,i)):window.navigator.pointerEnabled||window.PointerEvent?this.handler=this._register(new c(e,t,i)):this.handler=this._register(new r.MouseHandler(e,t,i))}getTargetAtClientPoint(e,t){return this.handler.getTargetAtClientPoint(e,t)}}t.PointerHandler=g})),define(t[250],i([0,1,177]),(function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ViewUserInputEvents=void 0;class n{constructor(e){this.onKeyDown=null,this.onKeyUp=null,this.onContextMenu=null,this.onMouseMove=null,this.onMouseLeave=null,this.onMouseDown=null,this.onMouseUp=null,this.onMouseDrag=null,this.onMouseDrop=null,this.onMouseWheel=null,this._coordinatesConverter=e}emitKeyDown(e){ +this.onKeyDown&&this.onKeyDown(e)}emitKeyUp(e){this.onKeyUp&&this.onKeyUp(e)}emitContextMenu(e){this.onContextMenu&&this.onContextMenu(this._convertViewToModelMouseEvent(e))}emitMouseMove(e){this.onMouseMove&&this.onMouseMove(this._convertViewToModelMouseEvent(e))}emitMouseLeave(e){this.onMouseLeave&&this.onMouseLeave(this._convertViewToModelMouseEvent(e))}emitMouseDown(e){this.onMouseDown&&this.onMouseDown(this._convertViewToModelMouseEvent(e))}emitMouseUp(e){this.onMouseUp&&this.onMouseUp(this._convertViewToModelMouseEvent(e))}emitMouseDrag(e){this.onMouseDrag&&this.onMouseDrag(this._convertViewToModelMouseEvent(e))}emitMouseDrop(e){this.onMouseDrop&&this.onMouseDrop(this._convertViewToModelMouseEvent(e))}emitMouseWheel(e){this.onMouseWheel&&this.onMouseWheel(e)}_convertViewToModelMouseEvent(e){return e.target?{event:e.event,target:this._convertViewToModelMouseTarget(e.target)}:e}_convertViewToModelMouseTarget(e){return n.convertViewToModelMouseTarget(e,this._coordinatesConverter)} +static convertViewToModelMouseTarget(e,t){return new o(e.element,e.type,e.mouseColumn,e.position?t.convertViewPositionToModelPosition(e.position):null,e.range?t.convertViewRangeToModelRange(e.range):null,e.detail)}}t.ViewUserInputEvents=n;class o{constructor(e,t,i,n,o,s){this.element=e,this.type=t,this.mouseColumn=i,this.position=n,this.range=o,this.detail=s}toString(){return i.MouseTarget.toString(this)}}})),define(t[587],i([0,1,16,15,67,157,43,249,13,3,103,116,312]),(function(e,t,i,n,o,s,r,a,l,d,c,h){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ViewLines=void 0;class u{constructor(){this._currentVisibleRange=new d.Range(1,1,1,1)}getCurrentVisibleRange(){return this._currentVisibleRange}setCurrentVisibleRange(e){this._currentVisibleRange=e}}class g{constructor(e,t,i,n,o,s){this.lineNumber=e,this.startColumn=t,this.endColumn=i,this.startScrollTop=n,this.stopScrollTop=o,this.scrollType=s,this.type="range",this.minLineNumber=e,this.maxLineNumber=e}}class p{constructor(e,t,i,n){ +this.selections=e,this.startScrollTop=t,this.stopScrollTop=i,this.scrollType=n,this.type="selections";let o=e[0].startLineNumber,s=e[0].endLineNumber;for(let t=1,i=e.length;t{this._updateLineWidthsSlow()},200),this._asyncCheckMonospaceFontAssumptions=new n.RunOnceScheduler(()=>{this._checkMonospaceFontAssumptions()},2e3),this._lastRenderedData=new u,this._horizontalRevealRequest=null}dispose(){this._asyncUpdateLineWidths.dispose(),this._asyncCheckMonospaceFontAssumptions.dispose(),super.dispose()}getDomNode(){return this.domNode}createVisibleLine(){return new a.ViewLine(this._viewLineOptions)}onConfigurationChanged(e){this._visibleLines.onConfigurationChanged(e),e.hasChanged(118)&&(this._maxLineWidth=0);const t=this._context.configuration.options,i=t.get(36),n=t.get(118);return this._lineHeight=t.get(51),this._typicalHalfwidthCharacterWidth=i.typicalHalfwidthCharacterWidth,this._isViewportWrapping=n.isViewportWrapping, +this._revealHorizontalRightPadding=t.get(81),this._cursorSurroundingLines=t.get(20),this._cursorSurroundingLinesStyle=t.get(21),this._canUseLayerHinting=!t.get(23),o.Configuration.applyFontInfo(this.domNode,i),this._onOptionsMaybeChanged(),e.hasChanged(117)&&(this._maxLineWidth=0),!0}_onOptionsMaybeChanged(){const e=this._context.configuration,t=new a.ViewLineOptions(e,this._context.theme.type);if(!this._viewLineOptions.equals(t)){this._viewLineOptions=t;const e=this._visibleLines.getStartLineNumber(),i=this._visibleLines.getEndLineNumber();for(let t=e;t<=i;t++){this._visibleLines.getVisibleLine(t).onOptionsChanged(this._viewLineOptions)}return!0}return!1}onCursorStateChanged(e){const t=this._visibleLines.getStartLineNumber(),i=this._visibleLines.getEndLineNumber();let n=!1;for(let e=t;e<=i;e++)n=this._visibleLines.getVisibleLine(e).onSelectionChanged()||n;return n}onDecorationsChanged(e){{const e=this._visibleLines.getStartLineNumber(),t=this._visibleLines.getEndLineNumber() +;for(let i=e;i<=t;i++)this._visibleLines.getVisibleLine(i).onDecorationsChanged()}return!0}onFlushed(e){const t=this._visibleLines.onFlushed(e);return this._maxLineWidth=0,t}onLinesChanged(e){return this._visibleLines.onLinesChanged(e)}onLinesDeleted(e){return this._visibleLines.onLinesDeleted(e)}onLinesInserted(e){return this._visibleLines.onLinesInserted(e)}onRevealRangeRequest(e){const t=this._computeScrollTopToRevealRange(this._context.viewLayout.getFutureViewport(),e.source,e.range,e.selections,e.verticalType);if(-1===t)return!1;let i=this._context.viewLayout.validateScrollPosition({scrollTop:t});e.revealHorizontal?e.range&&e.range.startLineNumber!==e.range.endLineNumber?i={scrollTop:i.scrollTop,scrollLeft:0 +}:e.range?this._horizontalRevealRequest=new g(e.range.startLineNumber,e.range.startColumn,e.range.endColumn,this._context.viewLayout.getCurrentScrollTop(),i.scrollTop,e.scrollType):e.selections&&e.selections.length>0&&(this._horizontalRevealRequest=new p(e.selections,this._context.viewLayout.getCurrentScrollTop(),i.scrollTop,e.scrollType)):this._horizontalRevealRequest=null;const n=Math.abs(this._context.viewLayout.getCurrentScrollTop()-i.scrollTop)<=this._lineHeight?1:e.scrollType;return this._context.model.setScrollPosition(i,n),!0}onScrollChanged(e){if(this._horizontalRevealRequest&&e.scrollLeftChanged&&(this._horizontalRevealRequest=null),this._horizontalRevealRequest&&e.scrollTopChanged){const t=Math.min(this._horizontalRevealRequest.startScrollTop,this._horizontalRevealRequest.stopScrollTop),i=Math.max(this._horizontalRevealRequest.startScrollTop,this._horizontalRevealRequest.stopScrollTop);(e.scrollTopi)&&(this._horizontalRevealRequest=null)}return this.domNode.setWidth(e.scrollWidth), +this._visibleLines.onScrollChanged(e)||!0}onTokensChanged(e){return this._visibleLines.onTokensChanged(e)}onZonesChanged(e){return this._context.model.setMaxLineWidth(this._maxLineWidth),this._visibleLines.onZonesChanged(e)}onThemeChanged(e){return this._onOptionsMaybeChanged()}getPositionFromDOMInfo(e,t){const i=this._getViewLineDomNode(e);if(null===i)return null;const n=this._getLineNumberFor(i);if(-1===n)return null;if(n<1||n>this._context.model.getLineCount())return null;if(1===this._context.model.getLineMaxColumn(n))return new l.Position(n,1);const o=this._visibleLines.getStartLineNumber(),s=this._visibleLines.getEndLineNumber();if(ns)return null;let r=this._visibleLines.getVisibleLine(n).getColumnOfNodeOffset(n,e,t);const a=this._context.model.getLineMinColumn(n);return ri?-1:this._visibleLines.getVisibleLine(e).getWidth()}linesVisibleRangesForRange(e,t){if(this.shouldRender())return null;const i=e.endLineNumber,n=d.Range.intersectRanges(e,this._lastRenderedData.getCurrentVisibleRange());if(!n)return null;let o=[],s=0;const r=new a.DomReadingContext(this.domNode.domNode,this._textRangeRestingSpot);let h=0;t&&(h=this._context.model.coordinatesConverter.convertViewPositionToModelPosition(new l.Position(n.startLineNumber,1)).lineNumber);const u=this._visibleLines.getStartLineNumber(),g=this._visibleLines.getEndLineNumber();for(let e=n.startLineNumber;e<=n.endLineNumber;e++){if(eg)continue +;const a=e===n.startLineNumber?n.startColumn:1,d=e===n.endLineNumber?n.endColumn:this._context.model.getLineMaxColumn(e),p=this._visibleLines.getVisibleLine(e).getVisibleRangesForRange(a,d,r);if(p){if(t&&ethis._visibleLines.getEndLineNumber()?null:this._visibleLines.getVisibleLine(e).getVisibleRangesForRange(t,i,new a.DomReadingContext(this.domNode.domNode,this._textRangeRestingSpot))}visibleRangeForPosition(e){const t=this._visibleRangesForLineRange(e.lineNumber,e.column,e.column);return t?new c.HorizontalPosition(t.outsideRenderedLine,t.ranges[0].left):null}updateLineWidths(){this._updateLineWidths(!1)} +_updateLineWidthsFast(){return this._updateLineWidths(!0)}_updateLineWidthsSlow(){this._updateLineWidths(!1)}_updateLineWidths(e){const t=this._visibleLines.getStartLineNumber(),i=this._visibleLines.getEndLineNumber();let n=1,o=!0;for(let s=t;s<=i;s++){const t=this._visibleLines.getVisibleLine(s);!e||t.getWidthIsFast()?n=Math.max(n,t.getWidth()):o=!1}return o&&1===t&&i===this._context.model.getLineCount()&&(this._maxLineWidth=0),this._ensureMaxLineWidth(n),o}_checkMonospaceFontAssumptions(){let e=-1,t=-1;const i=this._visibleLines.getStartLineNumber(),n=this._visibleLines.getEndLineNumber();for(let o=i;o<=n;o++){const i=this._visibleLines.getVisibleLine(o);if(i.needsMonospaceFontCheck()){const n=i.getWidth();n>t&&(t=n,e=o)}}if(-1!==e&&!this._visibleLines.getVisibleLine(e).monospaceAssumptionsAreValid())for(let e=i;e<=n;e++){this._visibleLines.getVisibleLine(e).onMonospaceAssumptionsInvalidated()}}prepareRender(){throw new Error("Not supported")}render(){throw new Error("Not supported")}renderText(e){ +if(this._visibleLines.renderLines(e),this._lastRenderedData.setCurrentVisibleRange(e.visibleRange),this.domNode.setWidth(this._context.viewLayout.getScrollWidth()),this.domNode.setHeight(Math.min(this._context.viewLayout.getScrollHeight(),1e6)),this._horizontalRevealRequest){const t=this._horizontalRevealRequest;if(e.startLineNumber<=t.minLineNumber&&t.maxLineNumber<=e.endLineNumber){this._horizontalRevealRequest=null,this.onDidRender();const e=this._computeScrollLeftToReveal(t);e&&(this._isViewportWrapping||this._ensureMaxLineWidth(e.maxHorizontalOffset),this._context.model.setScrollPosition({scrollLeft:e.scrollLeft},t.scrollType))}}if(this._updateLineWidthsFast()||this._asyncUpdateLineWidths.schedule(),i.isLinux&&!this._asyncCheckMonospaceFontAssumptions.isScheduled()){const e=this._visibleLines.getStartLineNumber(),t=this._visibleLines.getEndLineNumber();for(let i=e;i<=t;i++){if(this._visibleLines.getVisibleLine(i).needsMonospaceFontCheck()){this._asyncCheckMonospaceFontAssumptions.schedule();break}}} +this._linesContent.setLayerHinting(this._canUseLayerHinting),this._linesContent.setContain("strict");const t=this._context.viewLayout.getCurrentScrollTop()-e.bigNumbersDelta;this._linesContent.setTop(-t),this._linesContent.setLeft(-this._context.viewLayout.getCurrentScrollLeft())}_ensureMaxLineWidth(e){const t=Math.ceil(e);this._maxLineWidth0){let e=n[0].startLineNumber,t=n[0].endLineNumber;for(let i=1,o=n.length;ir){if(!l)return-1;h=d}else if(5===o||6===o)if(6===o&&s<=d&&c<=a)h=s;else{const e=d-Math.max(5*this._lineHeight,.2*r),t=c-r;h=Math.max(t,e)}else if(1===o||2===o)if(2===o&&s<=d&&c<=a)h=s;else{const e=(d+c)/2;h=Math.max(0,e-r/2)}else h=this._computeMinimumScrolling(s,a,d,c,3===o,4===o);return h}_computeScrollLeftToReveal(e){const t=this._context.viewLayout.getCurrentViewport(),i=t.left,n=i+t.width;let o=1073741824,s=0;if("range"===e.type){const t=this._visibleRangesForLineRange(e.lineNumber,e.startColumn,e.endColumn);if(!t)return null;for(const e of t.ranges)o=Math.min(o,e.left),s=Math.max(s,e.left+e.width)}else for(const t of e.selections){if(t.startLineNumber!==t.endLineNumber)return null;const e=this._visibleRangesForLineRange(t.startLineNumber,t.startColumn,t.endColumn) +;if(!e)return null;for(const t of e.ranges)o=Math.min(o,t.left),s=Math.max(s,t.left+t.width)}if(o=Math.max(0,o-m.HORIZONTAL_EXTRA_PX),s+=this._revealHorizontalRightPadding,"selections"===e.type&&s-o>t.width)return null;return{scrollLeft:this._computeMinimumScrolling(i,n,o,s),maxHorizontalOffset:s}}_computeMinimumScrolling(e,t,i,n,o,s){o=!!o,s=!!s;const r=(t|=0)-(e|=0);return(n|=0)-(i|=0)t?Math.max(0,n-r):e:i}}t.ViewLines=m,m.HORIZONTAL_EXTRA_PX=30})),define(t[588],i([0,1,7,30,86,2,16,8,157,43,38,3,207,236,70,21,14,20,58,357,52,85,315]),(function(e,t,i,n,o,s,r,a,l,d,c,h,u,g,p,m,f,_,v,C,b,S){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Minimap=void 0;const w=140,y=2;class E{constructor(e,t,i){const n=e.options,o=n.get(115),s=n.get(117),r=s.minimap,a=n.get(36),l=n.get(56);this.renderMinimap=r.renderMinimap,this.size=l.size,this.minimapHeightIsEditorHeight=r.minimapHeightIsEditorHeight,this.scrollBeyondLastLine=n.get(86),this.showSlider=l.showSlider, +this.pixelRatio=o,this.typicalHalfwidthCharacterWidth=a.typicalHalfwidthCharacterWidth,this.lineHeight=n.get(51),this.minimapLeft=r.minimapLeft,this.minimapWidth=r.minimapWidth,this.minimapHeight=s.height,this.canvasInnerWidth=r.minimapCanvasInnerWidth,this.canvasInnerHeight=r.minimapCanvasInnerHeight,this.canvasOuterWidth=r.minimapCanvasOuterWidth,this.canvasOuterHeight=r.minimapCanvasOuterHeight,this.isSampling=r.minimapIsSampling,this.editorHeight=s.height,this.fontScale=r.minimapScale,this.minimapLineHeight=r.minimapLineHeight,this.minimapCharWidth=1*this.fontScale,this.charRenderer=S.once(()=>C.MinimapCharRendererFactory.create(this.fontScale,a.fontFamily)),this.backgroundColor=E._getMinimapBackground(t,i)}static _getMinimapBackground(e,t){const i=e.getColor(m.minimapBackground);return i?new u.RGBA8(i.rgba.r,i.rgba.g,i.rgba.b,i.rgba.a):t.getColor(2)}equals(e){ +return this.renderMinimap===e.renderMinimap&&this.size===e.size&&this.minimapHeightIsEditorHeight===e.minimapHeightIsEditorHeight&&this.scrollBeyondLastLine===e.scrollBeyondLastLine&&this.showSlider===e.showSlider&&this.pixelRatio===e.pixelRatio&&this.typicalHalfwidthCharacterWidth===e.typicalHalfwidthCharacterWidth&&this.lineHeight===e.lineHeight&&this.minimapLeft===e.minimapLeft&&this.minimapWidth===e.minimapWidth&&this.minimapHeight===e.minimapHeight&&this.canvasInnerWidth===e.canvasInnerWidth&&this.canvasInnerHeight===e.canvasInnerHeight&&this.canvasOuterWidth===e.canvasOuterWidth&&this.canvasOuterHeight===e.canvasOuterHeight&&this.isSampling===e.isSampling&&this.editorHeight===e.editorHeight&&this.fontScale===e.fontScale&&this.minimapLineHeight===e.minimapLineHeight&&this.minimapCharWidth===e.minimapCharWidth&&this.backgroundColor&&this.backgroundColor.equals(e.backgroundColor)}}class L{constructor(e,t,i,n,o,s,r,a){this.scrollTop=e,this.scrollHeight=t,this.sliderNeeded=i,this._computedSliderRatio=n, +this.sliderTop=o,this.sliderHeight=s,this.startLineNumber=r,this.endLineNumber=a}getDesiredScrollTopFromDelta(e){const t=this.sliderTop+e;return Math.round(t/this._computedSliderRatio)}getDesiredScrollTopFromTouchLocation(e){return Math.round((e-this.sliderHeight/2)/this._computedSliderRatio)}static create(e,t,i,n,o,s,r,a,l,d){const c=e.pixelRatio,h=e.minimapLineHeight,u=Math.floor(e.canvasInnerHeight/h),g=e.lineHeight;if(e.minimapHeightIsEditorHeight){const t=r*e.lineHeight+(e.scrollBeyondLastLine?n-e.lineHeight:0),i=Math.max(1,Math.floor(n*n/t)),o=Math.max(0,e.minimapHeight-i),d=o/(l-n),c=a*d,h=o>0,u=Math.floor(e.canvasInnerHeight/e.minimapLineHeight);return new L(a,l,h,d,c,i,1,Math.min(s,u))}let p,m;if(o&&i!==s){const e=i-t+1;p=Math.floor(e*h/c)}else{const e=n/g;p=Math.floor(e*h/c)}m=e.scrollBeyondLastLine?(s-1)*h/c:Math.max(0,s*h/c-p);const f=(m=Math.min(e.minimapHeight-p,m))/(l-n),_=a*f;let v=0;if(e.scrollBeyondLastLine){v=n/g-1}if(u>=s+v){return new L(a,l,m>0,f,_,p,1,s)}{ +let e=Math.max(1,Math.floor(t-_*c/h));d&&d.scrollHeight===l&&(d.scrollTop>a&&(e=Math.min(e,d.startLineNumber)),d.scrollTopx.INVALID),this._renderedLines._set(e.startLineNumber,i)}linesEquals(e){if(!this.scrollEquals(e))return!1;const t=this._renderedLines._get().lines;for(let e=0,i=t.length;e1){for(let t=0,i=r-1;t0&&this.minimapLines[i-1]>=e;)i--;let n=this.modelLineToMinimapLine(t)-1;for(;n+1t)return null}return[i+1,n+1]}decorationLineRangeToMinimapLineRange(e,t){let i=this.modelLineToMinimapLine(e),n=this.modelLineToMinimapLine(t);return e!==t&&n===i&&(n===this.minimapLines.length?i>1&&i--:n++),[i,n]}onLinesDeleted(e){const t=e.toLineNumber-e.fromLineNumber+1;let i=this.minimapLines.length,n=0;for(let o=this.minimapLines.length-1;o>=0&&!(this.minimapLines[o]=0&&!(this.minimapLines[i]0,scrollWidth:e.scrollWidth,scrollHeight:e.scrollHeight, +viewportStartLineNumber:t,viewportEndLineNumber:i,scrollTop:e.scrollTop,scrollLeft:e.scrollLeft,viewportWidth:e.viewportWidth,viewportHeight:e.viewportHeight};this._actual.render(n)}_recreateLineSampling(){this._minimapSelections=null;const e=Boolean(this._samplingState),[t,i]=N.compute(this.options,this._context.model.getLineCount(),this._samplingState);if(this._samplingState=t,e&&this._samplingState)for(const e of i)switch(e.type){case"deleted":this._actual.onLinesDeleted(e.deleteFromLineNumber,e.deleteToLineNumber);break;case"inserted":this._actual.onLinesInserted(e.insertFromLineNumber,e.insertToLineNumber);break;case"flush":this._actual.onFlushed()}}getLineCount(){return this._samplingState?this._samplingState.minimapLines.length:this._context.model.getLineCount()}getRealLineCount(){return this._context.model.getLineCount()}getLineContent(e){return this._samplingState?this._context.model.getLineContent(this._samplingState.minimapLines[e-1]):this._context.model.getLineContent(e)} +getMinimapLinesRenderingData(e,t,i){if(this._samplingState){let n=[];for(let o=0,s=t-e+1;o{if(e.preventDefault(),0===this._model.options.renderMinimap)return;if(!this._lastRenderData)return;if("proportional"!==this._model.options.size){if(e.leftButton&&this._lastRenderData){const t=i.getDomNodePagePosition(this._slider.domNode),n=t.top+t.height/2;this._startSliderDragging(e.buttons,e.posx,n,e.posy,this._lastRenderData.renderedLayout)}return}const t=this._model.options.minimapLineHeight,n=this._model.options.canvasInnerHeight/this._model.options.canvasOuterHeight*e.browserEvent.offsetY;let o=Math.floor(n/t)+this._lastRenderData.renderedLayout.startLineNumber;o=Math.min(o,this._model.getLineCount()),this._model.revealLineNumber(o)}), +this._sliderMouseMoveMonitor=new o.GlobalMouseMoveMonitor,this._sliderMouseDownListener=i.addStandardDisposableListener(this._slider.domNode,"mousedown",e=>{e.preventDefault(),e.stopPropagation(),e.leftButton&&this._lastRenderData&&this._startSliderDragging(e.buttons,e.posx,e.posy,e.posy,this._lastRenderData.renderedLayout)}),this._gestureDisposable=v.Gesture.addTarget(this._domNode.domNode),this._sliderTouchStartListener=i.addDisposableListener(this._domNode.domNode,v.EventType.Start,e=>{e.preventDefault(),e.stopPropagation(),this._lastRenderData&&(this._slider.toggleClassName("active",!0),this._gestureInProgress=!0,this.scrollDueToTouchEvent(e))},{passive:!1}),this._sliderTouchMoveListener=i.addDisposableListener(this._domNode.domNode,v.EventType.Change,e=>{e.preventDefault(),e.stopPropagation(),this._lastRenderData&&this._gestureInProgress&&this.scrollDueToTouchEvent(e)},{passive:!1}),this._sliderTouchEndListener=i.addStandardDisposableListener(this._domNode.domNode,v.EventType.End,e=>{e.preventDefault(), +e.stopPropagation(),this._gestureInProgress=!1,this._slider.toggleClassName("active",!1)})}_startSliderDragging(e,t,i,n,s){this._slider.toggleClassName("active",!0);const a=(e,n)=>{const o=Math.abs(n-t);if(r.isWindows&&o>w)return void this._model.setScrollTop(s.scrollTop);const a=e-i;this._model.setScrollTop(s.getDesiredScrollTopFromDelta(a))};n!==i&&a(n,t),this._sliderMouseMoveMonitor.startMonitoring(this._slider.domNode,e,o.standardMouseMoveMerger,e=>a(e.posy,e.posx),()=>{this._slider.toggleClassName("active",!1)})}scrollDueToTouchEvent(e){const t=this._domNode.domNode.getBoundingClientRect().top,i=this._lastRenderData.renderedLayout.getDesiredScrollTopFromTouchLocation(e.pageY-t);this._model.setScrollTop(i)}dispose(){this._mouseDownListener.dispose(),this._sliderMouseMoveMonitor.dispose(),this._sliderMouseDownListener.dispose(),this._gestureDisposable.dispose(),this._sliderTouchStartListener.dispose(),this._sliderTouchMoveListener.dispose(),this._sliderTouchEndListener.dispose(),super.dispose()} +_getMinimapDomNodeClassName(){return"always"===this._model.options.showSlider?"minimap slider-always":"minimap slider-mouseover"}getDomNode(){return this._domNode}_applyLayout(){this._domNode.setLeft(this._model.options.minimapLeft),this._domNode.setWidth(this._model.options.minimapWidth),this._domNode.setHeight(this._model.options.minimapHeight),this._shadow.setHeight(this._model.options.minimapHeight),this._canvas.setWidth(this._model.options.canvasOuterWidth),this._canvas.setHeight(this._model.options.canvasOuterHeight),this._canvas.domNode.width=this._model.options.canvasInnerWidth,this._canvas.domNode.height=this._model.options.canvasInnerHeight,this._decorationsCanvas.setWidth(this._model.options.canvasOuterWidth),this._decorationsCanvas.setHeight(this._model.options.canvasOuterHeight),this._decorationsCanvas.domNode.width=this._model.options.canvasInnerWidth,this._decorationsCanvas.domNode.height=this._model.options.canvasInnerHeight,this._slider.setWidth(this._model.options.minimapWidth)}_getBuffer(){ +return this._buffers||this._model.options.canvasInnerWidth>0&&this._model.options.canvasInnerHeight>0&&(this._buffers=new k(this._canvas.domNode.getContext("2d"),this._model.options.canvasInnerWidth,this._model.options.canvasInnerHeight,this._model.options.backgroundColor)),this._buffers?this._buffers.getBuffer():null}onDidChangeOptions(){this._lastRenderData=null,this._buffers=null,this._applyLayout(),this._domNode.setClassName(this._getMinimapDomNodeClassName())}onSelectionChanged(){return this._renderDecorations=!0,!0}onDecorationsChanged(){return this._renderDecorations=!0,!0}onFlushed(){return this._lastRenderData=null,!0}onLinesChanged(e,t){return!!this._lastRenderData&&this._lastRenderData.onLinesChanged(e,t)}onLinesDeleted(e,t){return this._lastRenderData&&this._lastRenderData.onLinesDeleted(e,t),!0}onLinesInserted(e,t){return this._lastRenderData&&this._lastRenderData.onLinesInserted(e,t),!0}onScrollChanged(){return this._renderDecorations=!0,!0}onThemeChanged(){ +return this._selectionColor=this._theme.getColor(m.minimapSelection),this._renderDecorations=!0,!0}onTokensChanged(e){return!!this._lastRenderData&&this._lastRenderData.onTokensChanged(e)}onTokensColorsChanged(){return this._lastRenderData=null,this._buffers=null,!0}onZonesChanged(){return this._lastRenderData=null,!0}render(e){if(0===this._model.options.renderMinimap)return this._shadow.setClassName("minimap-shadow-hidden"),this._sliderHorizontal.setWidth(0),void this._sliderHorizontal.setHeight(0);e.scrollLeft+e.viewportWidth>=e.scrollWidth?this._shadow.setClassName("minimap-shadow-hidden"):this._shadow.setClassName("minimap-shadow-visible");const t=L.create(this._model.options,e.viewportStartLineNumber,e.viewportEndLineNumber,e.viewportHeight,e.viewportContainsWhitespaceGaps,this._model.getLineCount(),this._model.getRealLineCount(),e.scrollTop,e.scrollHeight,this._lastRenderData?this._lastRenderData.renderedLayout:null);this._slider.setDisplay(t.sliderNeeded?"block":"none"), +this._slider.setTop(t.sliderTop),this._slider.setHeight(t.sliderHeight);const i=e.scrollLeft/this._model.options.typicalHalfwidthCharacterWidth,n=Math.min(this._model.options.minimapWidth,Math.round(i*this._model.options.minimapCharWidth/this._model.options.pixelRatio));this._sliderHorizontal.setLeft(n),this._sliderHorizontal.setWidth(this._model.options.minimapWidth-n),this._sliderHorizontal.setTop(0),this._sliderHorizontal.setHeight(t.sliderHeight),this.renderDecorations(t),this._lastRenderData=this.renderLines(t)}renderDecorations(e){if(this._renderDecorations){this._renderDecorations=!1;const t=this._model.getSelections(),i=this._model.getMinimapDecorationsInViewport(e.startLineNumber,e.endLineNumber),{canvasInnerWidth:n,canvasInnerHeight:o}=this._model.options,s=this._model.options.minimapLineHeight,r=this._model.options.minimapCharWidth,a=this._model.getOptions().tabSize,l=this._decorationsCanvas.domNode.getContext("2d");l.clearRect(0,0,n,o);const d=new Map;for(let i=0;ithis._model.options.canvasInnerHeight)return;let g=t.get(s);const p=!g;if(!g){const e=this._model.getLineContent(s);g=[c.MINIMAP_GUTTER_WIDTH];for(let t=1;ts?g.length-1:f-1;if(b>0){const t=g[b]-C||2;this.renderDecoration(e,n,C,u,t,r)}p&&this.renderLineHighlight(e,n,u,r)}renderLineHighlight(e,t,i,n){e.fillStyle=t&&t.transparent(.5).toString()||"",e.fillRect(c.MINIMAP_GUTTER_WIDTH,i,e.canvas.width,n)}renderDecoration(e,t,i,n,o,s){e.fillStyle=t&&t.toString()||"",e.fillRect(i,n,o,s)}renderLines(e){const t=e.startLineNumber,i=e.endLineNumber,n=this._model.options.minimapLineHeight;if(this._lastRenderData&&this._lastRenderData.linesEquals(e)){const t=this._lastRenderData._get();return new D(e,t.imageData,t.lines)}const o=this._getBuffer();if(!o)return null;let[s,r,a]=M._renderUntouchedLines(o,t,i,n,this._lastRenderData) +;const l=this._model.getMinimapLinesRenderingData(t,i,a),d=this._model.getOptions().tabSize,c=this._model.options.backgroundColor,h=this._model.tokensColorTracker,u=h.backgroundIsLight(),g=this._model.options.renderMinimap,p=this._model.options.charRenderer(),m=this._model.options.fontScale,f=this._model.options.minimapCharWidth,_=(1===g?2:3)*m,v=n>_?Math.floor((n-_)/2):0;let C=0;const b=[];for(let e=0,s=i-t+1;e=0&&o_)return;const s=m.charCodeAt(b);if(9===s){const e=h-(b+S)%h;S+=e-1,C+=e*o}else if(32===s)C+=o;else{const c=a.isFullWidthCharacter(s)?2:1;for(let a=0;a_)return}}}}}f.registerThemingParticipant((e,t)=>{const i=e.getColor(m.minimapBackground);i&&t.addRule(`.monaco-editor .minimap > canvas { opacity: ${i.rgba.a}; will-change: opacity; }`) +;const n=e.getColor(m.minimapSliderBackground);n&&t.addRule(`.monaco-editor .minimap-slider .minimap-slider-horizontal { background: ${n}; }`);const o=e.getColor(m.minimapSliderHoverBackground);o&&t.addRule(`.monaco-editor .minimap-slider:hover .minimap-slider-horizontal { background: ${o}; }`);const s=e.getColor(m.minimapSliderActiveBackground);s&&t.addRule(`.monaco-editor .minimap-slider.active .minimap-slider-horizontal { background: ${s}; }`);const r=e.getColor(m.scrollbarShadow);r&&t.addRule(`.monaco-editor .minimap-shadow-visible { box-shadow: ${r} -6px 0 6px -6px inset; }`)})})),define(t[589],i([0,1,30,43,21,14,318]),(function(e,t,i,n,o,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ScrollDecorationViewPart=void 0;class r extends n.ViewPart{constructor(e){super(e),this._scrollTop=0,this._width=0,this._updateWidth(),this._shouldShow=!1;const t=this._context.configuration.options.get(84);this._useShadows=t.useShadows,this._domNode=i.createFastDomNode(document.createElement("div")), +this._domNode.setAttribute("role","presentation"),this._domNode.setAttribute("aria-hidden","true")}dispose(){super.dispose()}_updateShouldShow(){const e=this._useShadows&&this._scrollTop>0;return this._shouldShow!==e&&(this._shouldShow=e,!0)}getDomNode(){return this._domNode}_updateWidth(){const e=this._context.configuration.options.get(117);0===e.minimap.renderMinimap||e.minimap.minimapWidth>0&&0===e.minimap.minimapLeft?this._width=e.width:this._width=e.width-e.minimap.minimapWidth-e.verticalScrollbarWidth}onConfigurationChanged(e){const t=this._context.configuration.options.get(84);return this._useShadows=t.useShadows,this._updateWidth(),this._updateShouldShow(),!0}onScrollChanged(e){return this._scrollTop=e.scrollTop,this._updateShouldShow()}prepareRender(e){}render(e){this._domNode.setWidth(this._width),this._domNode.setClassName(this._shouldShow?"scroll-decoration":"")}}t.ScrollDecorationViewPart=r,s.registerThemingParticipant((e,t)=>{const i=e.getColor(o.scrollbarShadow) +;i&&t.addRule(`.monaco-editor .scroll-decoration { box-shadow: ${i} 0 6px 6px -6px inset; }`)})})),define(t[590],i([0,1,36,90,21,14,319]),(function(e,t,i,n,o,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SelectionsOverlay=void 0;class r{constructor(e){this.left=e.left,this.width=e.width,this.startStyle=null,this.endStyle=null}}class a{constructor(e,t){this.lineNumber=e,this.ranges=t}}function l(e){return new r(e)}function d(e){return new a(e.lineNumber,e.ranges.map(l))}const c=i.isEdge;class h extends n.DynamicViewOverlay{constructor(e){super(),this._previousFrameVisibleRangesWithStyle=[],this._context=e;const t=this._context.configuration.options;this._lineHeight=t.get(51),this._roundedSelection=t.get(82),this._typicalHalfwidthCharacterWidth=t.get(36).typicalHalfwidthCharacterWidth,this._selections=[],this._renderResult=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(e){ +const t=this._context.configuration.options;return this._lineHeight=t.get(51),this._roundedSelection=t.get(82),this._typicalHalfwidthCharacterWidth=t.get(36).typicalHalfwidthCharacterWidth,!0}onCursorStateChanged(e){return this._selections=e.selections.slice(0),!0}onDecorationsChanged(e){return!0}onFlushed(e){return!0}onLinesChanged(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return e.scrollTopChanged}onZonesChanged(e){return!0}_visibleRangesHaveGaps(e){for(let t=0,i=e.length;t1)return!0}return!1}_enrichVisibleRangesWithStyle(e,t,i){const n=this._typicalHalfwidthCharacterWidth/4;let o=null,s=null;if(i&&i.length>0&&t.length>0){const n=t[0].lineNumber;if(n===e.startLineNumber)for(let e=0;!o&&e=0;e--)i[e].lineNumber===r&&(s=i[e].ranges[0]);o&&!o.startStyle&&(o=null),s&&!s.startStyle&&(s=null)} +for(let e=0,i=t.length;e0){const i=t[e-1].ranges[0].left,o=t[e-1].ranges[0].left+t[e-1].ranges[0].width;u(a-i)i&&(d.top=1),u(l-o)'}_actualRenderOneSelection(e,t,i,n){ +if(0===n.length)return;const o=!!n[0].ranges[0].startStyle,s=this._lineHeight.toString(),r=(this._lineHeight-1).toString(),a=n[0].lineNumber,l=n[n.length-1].lineNumber;for(let d=0,c=n.length;d1,r)}this._previousFrameVisibleRangesWithStyle=o,this._renderResult=t.map(([e,t])=>e+t)}render(e,t){if(!this._renderResult)return"";const i=t-e;return i<0||i>=this._renderResult.length?"":this._renderResult[i]}} +function u(e){return e<0?-e:e}t.SelectionsOverlay=h,h.SELECTION_CLASS_NAME="selected-text",h.SELECTION_TOP_LEFT="top-left-radius",h.SELECTION_BOTTOM_LEFT="bottom-left-radius",h.SELECTION_TOP_RIGHT="top-right-radius",h.SELECTION_BOTTOM_RIGHT="bottom-right-radius",h.EDITOR_BACKGROUND_CLASS_NAME="monaco-editor-background",h.ROUNDED_PIECE_WIDTH=10,s.registerThemingParticipant((e,t)=>{const i=e.getColor(o.editorSelectionBackground);i&&t.addRule(`.monaco-editor .focused .selected-text { background-color: ${i}; }`);const n=e.getColor(o.editorInactiveSelection);n&&t.addRule(`.monaco-editor .selected-text { background-color: ${n}; }`);const s=e.getColor(o.editorSelectionForeground);s&&!s.isTransparent()&&t.addRule(`.monaco-editor .view-line span.inline-selected-text { color: ${s}; }`)})})),define(t[49],i([0,1,444,29,21,14]),(function(e,t,i,n,o,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}), +t.overviewRulerInfo=t.overviewRulerWarning=t.overviewRulerError=t.overviewRulerRangeHighlight=t.editorUnnecessaryCodeOpacity=t.editorUnnecessaryCodeBorder=t.editorGutter=t.editorOverviewRulerBackground=t.editorOverviewRulerBorder=t.editorBracketMatchBorder=t.editorBracketMatchBackground=t.editorCodeLensForeground=t.editorRuler=t.editorActiveLineNumber=t.editorLineNumbers=t.editorActiveIndentGuides=t.editorIndentGuides=t.editorWhitespaces=t.editorCursorBackground=t.editorCursorForeground=t.editorSymbolHighlightBorder=t.editorSymbolHighlight=t.editorRangeHighlightBorder=t.editorRangeHighlight=t.editorLineHighlightBorder=t.editorLineHighlight=void 0,t.editorLineHighlight=o.registerColor("editor.lineHighlightBackground",{dark:null,light:null,hc:null},i.localize(0,null)),t.editorLineHighlightBorder=o.registerColor("editor.lineHighlightBorder",{dark:"#282828",light:"#eeeeee",hc:"#f38518"},i.localize(1,null)),t.editorRangeHighlight=o.registerColor("editor.rangeHighlightBackground",{dark:"#ffffff0b", +light:"#fdff0033",hc:null},i.localize(2,null),!0),t.editorRangeHighlightBorder=o.registerColor("editor.rangeHighlightBorder",{dark:null,light:null,hc:o.activeContrastBorder},i.localize(3,null),!0),t.editorSymbolHighlight=o.registerColor("editor.symbolHighlightBackground",{dark:o.editorFindMatchHighlight,light:o.editorFindMatchHighlight,hc:null},i.localize(4,null),!0),t.editorSymbolHighlightBorder=o.registerColor("editor.symbolHighlightBorder",{dark:null,light:null,hc:o.activeContrastBorder},i.localize(5,null),!0),t.editorCursorForeground=o.registerColor("editorCursor.foreground",{dark:"#AEAFAD",light:n.Color.black,hc:n.Color.white},i.localize(6,null)),t.editorCursorBackground=o.registerColor("editorCursor.background",null,i.localize(7,null)),t.editorWhitespaces=o.registerColor("editorWhitespace.foreground",{dark:"#e3e4e229",light:"#33333333",hc:"#e3e4e229"},i.localize(8,null)),t.editorIndentGuides=o.registerColor("editorIndentGuide.background",{dark:t.editorWhitespaces,light:t.editorWhitespaces, +hc:t.editorWhitespaces},i.localize(9,null)),t.editorActiveIndentGuides=o.registerColor("editorIndentGuide.activeBackground",{dark:t.editorWhitespaces,light:t.editorWhitespaces,hc:t.editorWhitespaces},i.localize(10,null)),t.editorLineNumbers=o.registerColor("editorLineNumber.foreground",{dark:"#858585",light:"#237893",hc:n.Color.white},i.localize(11,null));const r=o.registerColor("editorActiveLineNumber.foreground",{dark:"#c6c6c6",light:"#0B216F",hc:o.activeContrastBorder},i.localize(12,null),!1,i.localize(13,null));t.editorActiveLineNumber=o.registerColor("editorLineNumber.activeForeground",{dark:r,light:r,hc:r},i.localize(14,null)),t.editorRuler=o.registerColor("editorRuler.foreground",{dark:"#5A5A5A",light:n.Color.lightgrey,hc:n.Color.white},i.localize(15,null)),t.editorCodeLensForeground=o.registerColor("editorCodeLens.foreground",{dark:"#999999",light:"#999999",hc:"#999999"},i.localize(16,null)),t.editorBracketMatchBackground=o.registerColor("editorBracketMatch.background",{dark:"#0064001a", +light:"#0064001a",hc:"#0064001a"},i.localize(17,null)),t.editorBracketMatchBorder=o.registerColor("editorBracketMatch.border",{dark:"#888",light:"#B9B9B9",hc:o.contrastBorder},i.localize(18,null)),t.editorOverviewRulerBorder=o.registerColor("editorOverviewRuler.border",{dark:"#7f7f7f4d",light:"#7f7f7f4d",hc:"#7f7f7f4d"},i.localize(19,null)),t.editorOverviewRulerBackground=o.registerColor("editorOverviewRuler.background",null,i.localize(20,null)),t.editorGutter=o.registerColor("editorGutter.background",{dark:o.editorBackground,light:o.editorBackground,hc:o.editorBackground},i.localize(21,null)),t.editorUnnecessaryCodeBorder=o.registerColor("editorUnnecessaryCode.border",{dark:null,light:null,hc:n.Color.fromHex("#fff").transparent(.8)},i.localize(22,null)),t.editorUnnecessaryCodeOpacity=o.registerColor("editorUnnecessaryCode.opacity",{dark:n.Color.fromHex("#000a"),light:n.Color.fromHex("#0007"),hc:null},i.localize(23,null));const a=new n.Color(new n.RGBA(0,122,204,.6)) +;t.overviewRulerRangeHighlight=o.registerColor("editorOverviewRuler.rangeHighlightForeground",{dark:a,light:a,hc:a},i.localize(24,null),!0),t.overviewRulerError=o.registerColor("editorOverviewRuler.errorForeground",{dark:new n.Color(new n.RGBA(255,18,18,.7)),light:new n.Color(new n.RGBA(255,18,18,.7)),hc:new n.Color(new n.RGBA(255,50,50,1))},i.localize(25,null)),t.overviewRulerWarning=o.registerColor("editorOverviewRuler.warningForeground",{dark:o.editorWarningForeground,light:o.editorWarningForeground,hc:o.editorWarningBorder},i.localize(26,null)),t.overviewRulerInfo=o.registerColor("editorOverviewRuler.infoForeground",{dark:o.editorInfoForeground,light:o.editorInfoForeground,hc:o.editorInfoBorder},i.localize(27,null)),s.registerThemingParticipant((e,i)=>{const n=e.getColor(o.editorBackground);n&&i.addRule(`.monaco-editor, .monaco-editor-background, .monaco-editor .inputarea.ime-input { background-color: ${n}; }`);const s=e.getColor(o.editorForeground) +;s&&i.addRule(`.monaco-editor, .monaco-editor .inputarea.ime-input { color: ${s}; }`);const r=e.getColor(t.editorGutter);r&&i.addRule(`.monaco-editor .margin { background-color: ${r}; }`);const a=e.getColor(t.editorRangeHighlight);a&&i.addRule(`.monaco-editor .rangeHighlight { background-color: ${a}; }`);const l=e.getColor(t.editorRangeHighlightBorder);l&&i.addRule(`.monaco-editor .rangeHighlight { border: 1px ${"hc"===e.type?"dotted":"solid"} ${l}; }`);const d=e.getColor(t.editorSymbolHighlight);d&&i.addRule(`.monaco-editor .symbolHighlight { background-color: ${d}; }`);const c=e.getColor(t.editorSymbolHighlightBorder);c&&i.addRule(`.monaco-editor .symbolHighlight { border: 1px ${"hc"===e.type?"dotted":"solid"} ${c}; }`);const h=e.getColor(t.editorWhitespaces);h&&(i.addRule(`.monaco-editor .mtkw { color: ${h} !important; }`),i.addRule(`.monaco-editor .mtkz { color: ${h} !important; }`))})})),define(t[591],i([0,1,90,49,19,14,307]),(function(e,t,i,n,o,s){"use strict";Object.defineProperty(t,"__esModule",{ +value:!0}),t.CurrentLineMarginHighlightOverlay=t.CurrentLineHighlightOverlay=t.AbstractLineHighlightOverlay=void 0;let r=!0;class a extends i.DynamicViewOverlay{constructor(e){super(),this._context=e;const t=this._context.configuration.options,i=t.get(117);this._lineHeight=t.get(51),this._renderLineHighlight=t.get(77),this._renderLineHightlightOnlyWhenFocus=t.get(78),this._contentLeft=i.contentLeft,this._contentWidth=i.contentWidth,this._selectionIsEmpty=!0,this._focused=!1,this._cursorLineNumbers=[],this._selections=[],this._renderData=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),super.dispose()}_readFromSelections(){let e=!1;const t=r?this._selections.slice(0,1):this._selections,i=t.map(e=>e.positionLineNumber);i.sort((e,t)=>e-t),o.equals(this._cursorLineNumbers,i)||(this._cursorLineNumbers=i,e=!0);const n=t.every(e=>e.isEmpty());return this._selectionIsEmpty!==n&&(this._selectionIsEmpty=n,e=!0),e}onThemeChanged(e){return this._readFromSelections()} +onConfigurationChanged(e){const t=this._context.configuration.options,i=t.get(117);return this._lineHeight=t.get(51),this._renderLineHighlight=t.get(77),this._renderLineHightlightOnlyWhenFocus=t.get(78),this._contentLeft=i.contentLeft,this._contentWidth=i.contentWidth,!0}onCursorStateChanged(e){return this._selections=e.selections,this._readFromSelections()}onFlushed(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return e.scrollWidthChanged||e.scrollTopChanged}onZonesChanged(e){return!0}onFocusChanged(e){return!!this._renderLineHightlightOnlyWhenFocus&&(this._focused=e.isFocused,!0)}prepareRender(e){if(!this._shouldRenderThis())return void(this._renderData=null);const t=this._renderOne(e),i=e.visibleRange.startLineNumber,n=e.visibleRange.endLineNumber,o=this._cursorLineNumbers.length;let s=0;const r=[];for(let e=i;e<=n;e++){const n=e-i;for(;s=this._renderData.length?"":this._renderData[i]}}t.AbstractLineHighlightOverlay=a;t.CurrentLineHighlightOverlay=class extends a{_renderOne(e){return`
        `}_shouldRenderThis(){return("line"===this._renderLineHighlight||"all"===this._renderLineHighlight)&&this._selectionIsEmpty&&(!this._renderLineHightlightOnlyWhenFocus||this._focused)}_shouldRenderOther(){return("gutter"===this._renderLineHighlight||"all"===this._renderLineHighlight)&&(!this._renderLineHightlightOnlyWhenFocus||this._focused)}};t.CurrentLineMarginHighlightOverlay=class extends a{_renderOne(e){return`
        `}_shouldRenderThis(){ +return("gutter"===this._renderLineHighlight||"all"===this._renderLineHighlight)&&(!this._renderLineHightlightOnlyWhenFocus||this._focused)}_shouldRenderOther(){return("line"===this._renderLineHighlight||"all"===this._renderLineHighlight)&&this._selectionIsEmpty&&(!this._renderLineHightlightOnlyWhenFocus||this._focused)}},s.registerThemingParticipant((e,t)=>{r=!1;const i=e.getColor(n.editorLineHighlight);if(i&&(t.addRule(`.monaco-editor .view-overlays .current-line { background-color: ${i}; }`),t.addRule(`.monaco-editor .margin-view-overlays .current-line-margin { background-color: ${i}; border: none; }`)),!i||i.isTransparent()||e.defines(n.editorLineHighlightBorder)){const i=e.getColor(n.editorLineHighlightBorder);i&&(r=!0,t.addRule(`.monaco-editor .view-overlays .current-line { border: 2px solid ${i}; }`),t.addRule(`.monaco-editor .margin-view-overlays .current-line-margin { border: 2px solid ${i}; }`),"hc"===e.type&&(t.addRule(".monaco-editor .view-overlays .current-line { border-width: 1px; }"), +t.addRule(".monaco-editor .margin-view-overlays .current-line-margin { border-width: 1px; }")))}})})),define(t[592],i([0,1,90,13,49,14,310]),(function(e,t,i,n,o,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.IndentGuidesOverlay=void 0;class r extends i.DynamicViewOverlay{constructor(e){super(),this._context=e,this._primaryLineNumber=0;const t=this._context.configuration.options,i=t.get(118),n=t.get(36);this._lineHeight=t.get(51),this._spaceWidth=n.spaceWidth,this._enabled=t.get(75),this._activeIndentEnabled=t.get(45),this._maxIndentLeft=-1===i.wrappingColumn?-1:i.wrappingColumn*n.typicalHalfwidthCharacterWidth,this._renderResult=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(e){const t=this._context.configuration.options,i=t.get(118),n=t.get(36);return this._lineHeight=t.get(51),this._spaceWidth=n.spaceWidth,this._enabled=t.get(75),this._activeIndentEnabled=t.get(45), +this._maxIndentLeft=-1===i.wrappingColumn?-1:i.wrappingColumn*n.typicalHalfwidthCharacterWidth,!0}onCursorStateChanged(e){const t=e.selections[0],i=t.isEmpty()?t.positionLineNumber:0;return this._primaryLineNumber!==i&&(this._primaryLineNumber=i,!0)}onDecorationsChanged(e){return!0}onFlushed(e){return!0}onLinesChanged(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return e.scrollTopChanged}onZonesChanged(e){return!0}onLanguageConfigurationChanged(e){return!0}prepareRender(e){if(!this._enabled)return void(this._renderResult=null);const t=e.visibleRange.startLineNumber,i=e.visibleRange.endLineNumber,{indentSize:o}=this._context.model.getTextModelOptions(),s=o*this._spaceWidth,r=e.scrollWidth,a=this._lineHeight,l=this._context.model.getLinesIndentGuides(t,i);let d=0,c=0,h=0;if(this._activeIndentEnabled&&this._primaryLineNumber){const e=this._context.model.getActiveIndentGuide(this._primaryLineNumber,t,i);d=e.startLineNumber,c=e.endLineNumber,h=e.indent}const u=[] +;for(let o=t;o<=i;o++){const i=d<=o&&o<=c,g=o-t,p=l[g];let m="";if(p>=1){const t=e.visibleRangeForPosition(new n.Position(o,1));let l=t?t.left:0;for(let e=1;e<=p;e++){if(m+=`
        `,(l+=s)>r||this._maxIndentLeft>0&&l>this._maxIndentLeft)break}}u[g]=m}this._renderResult=u}render(e,t){if(!this._renderResult)return"";const i=t-e;return i<0||i>=this._renderResult.length?"":this._renderResult[i]}}t.IndentGuidesOverlay=r,s.registerThemingParticipant((e,t)=>{const i=e.getColor(o.editorIndentGuides);i&&t.addRule(`.monaco-editor .lines-content .cigr { box-shadow: 1px 0 0 0 ${i} inset; }`);const n=e.getColor(o.editorActiveIndentGuides)||i;n&&t.addRule(`.monaco-editor .lines-content .cigra { box-shadow: 1px 0 0 0 ${n} inset; }`)})})),define(t[251],i([0,1,16,90,13,49,14,311]),(function(e,t,i,n,o,s,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LineNumbersOverlay=void 0;class a extends n.DynamicViewOverlay{ +constructor(e){super(),this._context=e,this._readConfig(),this._lastCursorModelPosition=new o.Position(1,1),this._renderResult=null,this._context.addEventHandler(this)}_readConfig(){const e=this._context.configuration.options;this._lineHeight=e.get(51);const t=e.get(52);this._renderLineNumbers=t.renderType,this._renderCustomLineNumbers=t.renderFn,this._renderFinalNewline=e.get(76);const i=e.get(117);this._lineNumbersLeft=i.lineNumbersLeft,this._lineNumbersWidth=i.lineNumbersWidth}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(e){return this._readConfig(),!0}onCursorStateChanged(e){const t=e.selections[0].getPosition();return this._lastCursorModelPosition=this._context.model.coordinatesConverter.convertViewPositionToModelPosition(t),2===this._renderLineNumbers||3===this._renderLineNumbers}onFlushed(e){return!0}onLinesChanged(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return e.scrollTopChanged} +onZonesChanged(e){return!0}_getLineRenderLineNumber(e){const t=this._context.model.coordinatesConverter.convertViewPositionToModelPosition(new o.Position(e,1));if(1!==t.column)return"";const i=t.lineNumber;if(this._renderCustomLineNumbers)return this._renderCustomLineNumbers(i);if(2===this._renderLineNumbers){const e=Math.abs(this._lastCursorModelPosition.lineNumber-i);return 0===e?''+i+"":String(e)}return 3===this._renderLineNumbers?this._lastCursorModelPosition.lineNumber===i?String(i):i%10==0?String(i):"":String(i)}prepareRender(e){if(0===this._renderLineNumbers)return void(this._renderResult=null);const t=i.isLinux?this._lineHeight%2==0?" lh-even":" lh-odd":"",n=e.visibleRange.startLineNumber,o=e.visibleRange.endLineNumber,s='
        ',r=this._context.model.getLineCount(),l=[];for(let e=n;e<=o;e++){const t=e-n +;if(!this._renderFinalNewline&&e===r&&0===this._context.model.getLineLength(e)){l[t]="";continue}const i=this._getLineRenderLineNumber(e);l[t]=i?s+i+"
        ":""}this._renderResult=l}render(e,t){if(!this._renderResult)return"";const i=t-e;return i<0||i>=this._renderResult.length?"":this._renderResult[i]}}t.LineNumbersOverlay=a,a.CLASS_NAME="line-numbers",r.registerThemingParticipant((e,t)=>{const i=e.getColor(s.editorLineNumbers);i&&t.addRule(`.monaco-editor .line-numbers { color: ${i}; }`);const n=e.getColor(s.editorActiveLineNumber);n&&t.addRule(`.monaco-editor .current-line ~ .line-numbers { color: ${n}; }`)})})),define(t[593],i([0,1,431,36,30,16,8,67,208,205,43,251,215,38,99,13,3,20,116,306]),(function(e,t,i,n,o,s,r,a,l,d,c,h,u,g,p,m,f,_,v){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TextAreaHandler=void 0;class C{constructor(e,t,i){this.top=e,this.left=t,this.width=i}setWidth(e){return new C(this.top,this.left,e)}}const b=n.isEdge||n.isFirefox;class S extends c.ViewPart{ +constructor(e,t,r){super(e),this._primaryCursorPosition=new m.Position(1,1),this._primaryCursorVisibleRange=null,this._viewController=t,this._viewHelper=r,this._scrollLeft=0,this._scrollTop=0;const a=this._context.configuration.options,h=a.get(117);this._setAccessibilityOptions(a),this._contentLeft=h.contentLeft,this._contentWidth=h.contentWidth,this._contentHeight=h.height,this._fontInfo=a.get(36),this._lineHeight=a.get(51),this._emptySelectionClipboard=a.get(26),this._copyWithSyntaxHighlighting=a.get(16),this._visibleTextArea=null,this._selections=[new _.Selection(1,1,1,1)],this._modelSelections=[new _.Selection(1,1,1,1)],this._lastRenderPosition=null,this.textArea=o.createFastDomNode(document.createElement("textarea")),c.PartFingerprints.write(this.textArea,6),this.textArea.setClassName(`inputarea ${v.MOUSE_CURSOR_TEXT_CSS_CLASS_NAME}`),this.textArea.setAttribute("wrap","off"),this.textArea.setAttribute("autocorrect","off"),this.textArea.setAttribute("autocapitalize","off"), +this.textArea.setAttribute("autocomplete","off"),this.textArea.setAttribute("spellcheck","false"),this.textArea.setAttribute("aria-label",this._getAriaLabel(a)),this.textArea.setAttribute("tabindex",String(a.get(102))),this.textArea.setAttribute("role","textbox"),this.textArea.setAttribute("aria-roledescription",i.localize(0,null)),this.textArea.setAttribute("aria-multiline","true"),this.textArea.setAttribute("aria-haspopup","false"),this.textArea.setAttribute("aria-autocomplete","both"),s.isWeb&&a.get(72)&&this.textArea.setAttribute("readonly","true"),this.textAreaCover=o.createFastDomNode(document.createElement("div")),this.textAreaCover.setPosition("absolute");const u={getLineCount:()=>this._context.model.getLineCount(),getLineMaxColumn:e=>this._context.model.getLineMaxColumn(e),getValueInRange:(e,t)=>this._context.model.getValueInRange(e,t)},g={getDataToCopy:e=>{ +const t=this._context.model.getPlainTextToCopy(this._modelSelections,this._emptySelectionClipboard,s.isWindows),i=this._context.model.getEOL(),n=this._emptySelectionClipboard&&1===this._modelSelections.length&&this._modelSelections[0].isEmpty(),o=Array.isArray(t)?t:null,r=Array.isArray(t)?t.join(i):t;let a=void 0,d=null;if(e&&(l.CopyOptions.forceCopyWithSyntaxHighlighting||this._copyWithSyntaxHighlighting&&r.length<65536)){const e=this._context.model.getRichTextToCopy(this._modelSelections,this._emptySelectionClipboard);e&&(a=e.html,d=e.mode)}return{isFromEmptySelection:n,multicursorText:o,text:r,html:a,mode:d}},getScreenReaderContent:e=>{if(1===this._accessibilitySupport){if(s.isMacintosh){const e=this._selections[0];if(e.isEmpty()){const t=e.getStartPosition();let i=this._getWordBeforePosition(t);if(0===i.length&&(i=this._getCharacterBeforePosition(t)),i.length>0)return new d.TextAreaState(i,i.length,i.length,t,t)}}return d.TextAreaState.EMPTY} +return d.PagedScreenReaderStrategy.fromEditorSelection(e,u,this._selections[0],this._accessibilityPageSize,0===this._accessibilitySupport)},deduceModelPosition:(e,t,i)=>this._context.model.deduceModelPositionRelativeToViewPosition(e,t,i)};this._textAreaInput=this._register(new l.TextAreaInput(g,this.textArea)),this._register(this._textAreaInput.onKeyDown(e=>{this._viewController.emitKeyDown(e)})),this._register(this._textAreaInput.onKeyUp(e=>{this._viewController.emitKeyUp(e)})),this._register(this._textAreaInput.onPaste(e=>{let t=!1,i=null,n=null;e.metadata&&(t=this._emptySelectionClipboard&&!!e.metadata.isFromEmptySelection,i=void 0!==e.metadata.multicursorText?e.metadata.multicursorText:null,n=e.metadata.mode),this._viewController.paste(e.text,t,i,n)})),this._register(this._textAreaInput.onCut(()=>{this._viewController.cut()})),this._register(this._textAreaInput.onType(e=>{e.replaceCharCnt?this._viewController.replacePreviousChar(e.text,e.replaceCharCnt):this._viewController.type(e.text)})), +this._register(this._textAreaInput.onSelectionChangeRequest(e=>{this._viewController.setSelection(e)})),this._register(this._textAreaInput.onCompositionStart(e=>{const t=this._selections[0].startLineNumber,i=this._selections[0].startColumn-(e.moveOneCharacterLeft?1:0);this._context.model.revealRange("keyboard",!0,new f.Range(t,i,t,i),0,1);const n=this._viewHelper.visibleRangeForPositionRelativeToEditor(t,i);n&&(this._visibleTextArea=new C(this._context.viewLayout.getVerticalOffsetForLineNumber(t),n.left,b?0:1),this._render()),this.textArea.setClassName(`inputarea ${v.MOUSE_CURSOR_TEXT_CSS_CLASS_NAME} ime-input`),this._viewController.compositionStart()})),this._register(this._textAreaInput.onCompositionUpdate(e=>{n.isEdge?this._visibleTextArea=this._visibleTextArea.setWidth(0):this._visibleTextArea=this._visibleTextArea.setWidth(function(e,t){const i=document.createElement("canvas").getContext("2d");i.font=(o=t,s="normal",r=o.fontWeight,a=o.fontSize,l=o.lineHeight,d=o.fontFamily, +`${s} normal ${r} ${a}px / ${l}px ${d}`);var o,s,r,a,l,d;const c=i.measureText(e);return n.isFirefox?c.width+2:c.width}(e.data,this._fontInfo)),this._render()})),this._register(this._textAreaInput.onCompositionEnd(()=>{this._visibleTextArea=null,this._render(),this.textArea.setClassName(`inputarea ${v.MOUSE_CURSOR_TEXT_CSS_CLASS_NAME}`),this._viewController.compositionEnd()})),this._register(this._textAreaInput.onFocus(()=>{this._context.model.setHasFocus(!0)})),this._register(this._textAreaInput.onBlur(()=>{this._context.model.setHasFocus(!1)}))}dispose(){super.dispose()}_getWordBeforePosition(e){const t=this._context.model.getLineContent(e.lineNumber),i=p.getMapForWordSeparators(this._context.configuration.options.get(105));let n=e.column,o=0;for(;n>1;){const s=t.charCodeAt(n-2);if(0!==i.get(s)||o>50)return t.substring(n-1,e.column-1);o++,n--}return t.substring(0,e.column-1)}_getCharacterBeforePosition(e){if(e.column>1){const t=this._context.model.getLineContent(e.lineNumber).charAt(e.column-2) +;if(!r.isHighSurrogate(t.charCodeAt(0)))return t}return""}_getAriaLabel(e){return 1===e.get(2)?i.localize(1,null,s.isLinux?"Shift+Alt+F1":"Alt+F1"):e.get(4)}_setAccessibilityOptions(e){this._accessibilitySupport=e.get(2);const t=e.get(3);2===this._accessibilitySupport&&t===g.EditorOptions.accessibilityPageSize.defaultValue?this._accessibilityPageSize=100:this._accessibilityPageSize=t}onConfigurationChanged(e){const t=this._context.configuration.options,i=t.get(117);return this._setAccessibilityOptions(t),this._contentLeft=i.contentLeft,this._contentWidth=i.contentWidth,this._contentHeight=i.height,this._fontInfo=t.get(36),this._lineHeight=t.get(51),this._emptySelectionClipboard=t.get(26),this._copyWithSyntaxHighlighting=t.get(16),this.textArea.setAttribute("aria-label",this._getAriaLabel(t)),this.textArea.setAttribute("tabindex",String(t.get(102))),s.isWeb&&e.hasChanged(72)&&(t.get(72)?this.textArea.setAttribute("readonly","true"):this.textArea.removeAttribute("readonly")), +e.hasChanged(2)&&this._textAreaInput.writeScreenReaderContent("strategy changed"),!0}onCursorStateChanged(e){return this._selections=e.selections.slice(0),this._modelSelections=e.modelSelections.slice(0),this._textAreaInput.writeScreenReaderContent("selection changed"),!0}onDecorationsChanged(e){return!0}onFlushed(e){return!0}onLinesChanged(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return this._scrollLeft=e.scrollLeft,this._scrollTop=e.scrollTop,!0}onZonesChanged(e){return!0}isFocused(){return this._textAreaInput.isFocused()}focusTextArea(){this._textAreaInput.focusTextArea()}getLastRenderData(){return this._lastRenderPosition}setAriaOptions(e){e.activeDescendant?(this.textArea.setAttribute("aria-haspopup","true"),this.textArea.setAttribute("aria-autocomplete","list"),this.textArea.setAttribute("aria-activedescendant",e.activeDescendant)):(this.textArea.setAttribute("aria-haspopup","false"),this.textArea.setAttribute("aria-autocomplete","both"), +this.textArea.removeAttribute("aria-activedescendant")),e.role&&this.textArea.setAttribute("role",e.role)}prepareRender(e){this._primaryCursorPosition=new m.Position(this._selections[0].positionLineNumber,this._selections[0].positionColumn),this._primaryCursorVisibleRange=e.visibleRangeForPosition(this._primaryCursorPosition)}render(e){this._textAreaInput.writeScreenReaderContent("render"),this._render()}_render(){if(this._visibleTextArea)return void this._renderInsideEditor(null,this._visibleTextArea.top-this._scrollTop,this._contentLeft+this._visibleTextArea.left-this._scrollLeft,this._visibleTextArea.width,this._lineHeight);if(!this._primaryCursorVisibleRange)return void this._renderAtTopLeft();const e=this._contentLeft+this._primaryCursorVisibleRange.left-this._scrollLeft;if(ethis._contentLeft+this._contentWidth)return void this._renderAtTopLeft();const t=this._context.viewLayout.getVerticalOffsetForLineNumber(this._selections[0].positionLineNumber)-this._scrollTop +;t<0||t>this._contentHeight?this._renderAtTopLeft():s.isMacintosh?this._renderInsideEditor(this._primaryCursorPosition,t,e,b?0:1,this._lineHeight):this._renderInsideEditor(this._primaryCursorPosition,t,e,b?0:1,b?0:1)}_renderInsideEditor(e,t,i,n,o){this._lastRenderPosition=e;const s=this.textArea,r=this.textAreaCover;a.Configuration.applyFontInfo(s,this._fontInfo),s.setTop(t),s.setLeft(i),s.setWidth(n),s.setHeight(o),r.setTop(0),r.setLeft(0),r.setWidth(0),r.setHeight(0)}_renderAtTopLeft(){this._lastRenderPosition=null;const e=this.textArea,t=this.textAreaCover;if(a.Configuration.applyFontInfo(e,this._fontInfo),e.setTop(0),e.setLeft(0),t.setTop(0),t.setLeft(0),b)return e.setWidth(0),e.setHeight(0),t.setWidth(0),void t.setHeight(0);e.setWidth(1),e.setHeight(1),t.setWidth(1),t.setHeight(1);const i=this._context.configuration.options +;i.get(42)?t.setClassName("monaco-editor-background textAreaCover "+u.Margin.OUTER_CLASS_NAME):0!==i.get(52).renderType?t.setClassName("monaco-editor-background textAreaCover "+h.LineNumbersOverlay.CLASS_NAME):t.setClassName("monaco-editor-background textAreaCover")}}t.TextAreaHandler=S})),define(t[594],i([0,1,30,29,43,13,18,49]),(function(e,t,i,n,o,s,r,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DecorationsOverviewRuler=void 0;class l{constructor(e,t){const i=e.options;this.lineHeight=i.get(51),this.pixelRatio=i.get(115),this.overviewRulerLanes=i.get(65),this.renderBorder=i.get(64);const o=t.getColor(a.editorOverviewRulerBorder);this.borderColor=o?o.toString():null,this.hideCursor=i.get(44);const s=t.getColor(a.editorCursorForeground);this.cursorColor=s?s.transparent(.7).toString():null,this.themeType=t.type;const l=i.get(56),d=l.enabled,c=l.side,h=d?t.getColor(a.editorOverviewRulerBackground)||r.TokenizationRegistry.getDefaultBackground():null +;this.backgroundColor=null===h||"left"===c?null:n.Color.Format.CSS.formatHex(h);const u=i.get(117).overviewRuler;this.top=u.top,this.right=u.right,this.domWidth=u.width,this.domHeight=u.height,0===this.overviewRulerLanes?(this.canvasWidth=0,this.canvasHeight=0):(this.canvasWidth=this.domWidth*this.pixelRatio|0,this.canvasHeight=this.domHeight*this.pixelRatio|0);const[g,p]=this._initLanes(1,this.canvasWidth,this.overviewRulerLanes);this.x=g,this.w=p}_initLanes(e,t,i){const n=t-e;if(i>=3){const t=Math.floor(n/3),i=Math.floor(n/3),o=n-t-i,s=e+t;return[[0,e,s,e,e+t+o,e,s,e],[0,t,o,t+o,i,t+o+i,o+i,t+o+i]]}if(2===i){const t=Math.floor(n/2),i=n-t;return[[0,e,e,e,e+t,e,e,e],[0,t,t,t,i,t+i,t+i,t+i]]}return[[0,e,e,e,e,e,e,e],[0,n,n,n,n,n,n,n]]}equals(e){ +return this.lineHeight===e.lineHeight&&this.pixelRatio===e.pixelRatio&&this.overviewRulerLanes===e.overviewRulerLanes&&this.renderBorder===e.renderBorder&&this.borderColor===e.borderColor&&this.hideCursor===e.hideCursor&&this.cursorColor===e.cursorColor&&this.themeType===e.themeType&&this.backgroundColor===e.backgroundColor&&this.top===e.top&&this.right===e.right&&this.domWidth===e.domWidth&&this.domHeight===e.domHeight&&this.canvasWidth===e.canvasWidth&&this.canvasHeight===e.canvasHeight}}class d extends o.ViewPart{constructor(e){super(e),this._domNode=i.createFastDomNode(document.createElement("canvas")),this._domNode.setClassName("decorationsOverviewRuler"),this._domNode.setPosition("absolute"),this._domNode.setLayerHinting(!0),this._domNode.setContain("strict"),this._domNode.setAttribute("aria-hidden","true"),this._updateSettings(!1),this._tokensColorTrackerListener=r.TokenizationRegistry.onDidChange(e=>{e.changedColorMap&&this._updateSettings(!0)}),this._cursorPositions=[]}dispose(){super.dispose(), +this._tokensColorTrackerListener.dispose()}_updateSettings(e){const t=new l(this._context.configuration,this._context.theme);return(!this._settings||!this._settings.equals(t))&&(this._settings=t,this._domNode.setTop(this._settings.top),this._domNode.setRight(this._settings.right),this._domNode.setWidth(this._settings.domWidth),this._domNode.setHeight(this._settings.domHeight),this._domNode.domNode.width=this._settings.canvasWidth,this._domNode.domNode.height=this._settings.canvasHeight,e&&this._render(),!0)}onConfigurationChanged(e){return this._updateSettings(!1)}onCursorStateChanged(e){this._cursorPositions=[];for(let t=0,i=e.selections.length;tt&&(e=t-a),_=e-a,v=e+a}_>f+1||s!==p?(0!==e&&l.fillRect(d[p],m,c[p],f-m),p=s,m=_,f=v):v>f&&(f=v)}l.fillRect(d[p],m,c[p],f-m)}if(!this._settings.hideCursor&&this._settings.cursorColor){const e=2*this._settings.pixelRatio|0,i=e/2|0,s=this._settings.x[7],r=this._settings.w[7];l.fillStyle=this._settings.cursorColor;let a=-100,d=-100;for(let c=0,h=this._cursorPositions.length;ct&&(u=t-i);const g=u-i,p=g+e;g>d+1?(0!==c&&l.fillRect(s,a,r,d-a),a=g,d=p):p>d&&(d=p)}l.fillRect(s,a,r,d-a)}this._settings.renderBorder&&this._settings.borderColor&&this._settings.overviewRulerLanes>0&&(l.beginPath(),l.lineWidth=1,l.strokeStyle=this._settings.borderColor,l.moveTo(0,0),l.lineTo(0,t),l.stroke(),l.moveTo(0,0),l.lineTo(e,0),l.stroke())}}t.DecorationsOverviewRuler=d})), +define(t[595],i([0,1,30,43,49,14,317]),(function(e,t,i,n,o,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Rulers=void 0;class r extends n.ViewPart{constructor(e){super(e),this.domNode=i.createFastDomNode(document.createElement("div")),this.domNode.setAttribute("role","presentation"),this.domNode.setAttribute("aria-hidden","true"),this.domNode.setClassName("view-rulers"),this._renderedRulers=[];const t=this._context.configuration.options;this._rulers=t.get(83),this._typicalHalfwidthCharacterWidth=t.get(36).typicalHalfwidthCharacterWidth}dispose(){super.dispose()}onConfigurationChanged(e){const t=this._context.configuration.options;return this._rulers=t.get(83),this._typicalHalfwidthCharacterWidth=t.get(36).typicalHalfwidthCharacterWidth,!0}onScrollChanged(e){return e.scrollHeightChanged}prepareRender(e){}_ensureRulersCount(){const e=this._renderedRulers.length,t=this._rulers.length;if(e===t)return;if(e0;){ +const e=i.createFastDomNode(document.createElement("div"));e.setClassName("view-ruler"),e.setWidth(o),this.domNode.appendChild(e),this._renderedRulers.push(e),s--}return}let n=e-t;for(;n>0;){const e=this._renderedRulers.pop();this.domNode.removeChild(e),n--}}render(e){this._ensureRulersCount();for(let t=0,i=this._rulers.length;t{const i=e.getColor(o.editorRuler);i&&t.addRule(`.monaco-editor .view-ruler { box-shadow: 1px 0 0 0 ${i} inset; }`)})})),define(t[596],i([0,1,30,15,43,544,38,49,14,320]),(function(e,t,i,n,o,s,r,a,l){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ViewCursors=void 0;class d extends o.ViewPart{constructor(e){super(e);const t=this._context.configuration.options;this._readOnly=t.get(72), +this._cursorBlinking=t.get(17),this._cursorStyle=t.get(19),this._cursorSmoothCaretAnimation=t.get(18),this._selectionIsEmpty=!0,this._isVisible=!1,this._primaryCursor=new s.ViewCursor(this._context),this._secondaryCursors=[],this._renderData=[],this._domNode=i.createFastDomNode(document.createElement("div")),this._domNode.setAttribute("role","presentation"),this._domNode.setAttribute("aria-hidden","true"),this._updateDomClassName(),this._domNode.appendChild(this._primaryCursor.getDomNode()),this._startCursorBlinkAnimation=new n.TimeoutTimer,this._cursorFlatBlinkInterval=new n.IntervalTimer,this._blinkingEnabled=!1,this._editorHasFocus=!1,this._updateBlinking()}dispose(){super.dispose(),this._startCursorBlinkAnimation.dispose(),this._cursorFlatBlinkInterval.dispose()}getDomNode(){return this._domNode}onConfigurationChanged(e){const t=this._context.configuration.options;this._readOnly=t.get(72),this._cursorBlinking=t.get(17),this._cursorStyle=t.get(19),this._cursorSmoothCaretAnimation=t.get(18), +this._updateBlinking(),this._updateDomClassName(),this._primaryCursor.onConfigurationChanged(e);for(let t=0,i=this._secondaryCursors.length;tt.length){const e=this._secondaryCursors.length-t.length;for(let t=0;t{for(let i=0,n=e.ranges.length;i{this._isVisible?this._hide():this._show()},d.BLINK_INTERVAL):this._startCursorBlinkAnimation.setIfNotSet(()=>{this._blinkingEnabled=!0,this._updateDomClassName()},d.BLINK_INTERVAL))}_updateDomClassName(){this._domNode.setClassName(this._getClassName())}_getClassName(){let e="cursors-layer";switch(this._selectionIsEmpty||(e+=" has-selection"),this._cursorStyle){case r.TextEditorCursorStyle.Line:e+=" cursor-line-style";break;case r.TextEditorCursorStyle.Block:e+=" cursor-block-style";break;case r.TextEditorCursorStyle.Underline:e+=" cursor-underline-style";break;case r.TextEditorCursorStyle.LineThin:e+=" cursor-line-thin-style";break;case r.TextEditorCursorStyle.BlockOutline:e+=" cursor-block-outline-style";break;case r.TextEditorCursorStyle.UnderlineThin:e+=" cursor-underline-thin-style";break;default:e+=" cursor-line-style"}if(this._blinkingEnabled)switch(this._getCursorBlinking()){case 1: +e+=" cursor-blink";break;case 2:e+=" cursor-smooth";break;case 3:e+=" cursor-phase";break;case 4:e+=" cursor-expand";break;case 5:e+=" cursor-solid";break;default:e+=" cursor-solid"}else e+=" cursor-solid";return this._cursorSmoothCaretAnimation&&(e+=" cursor-smooth-caret-animation"),e}_show(){this._primaryCursor.show();for(let e=0,t=this._secondaryCursors.length;e{const i=e.getColor(a.editorCursorForeground);if(i){let n=e.getColor(a.editorCursorBackground);n||(n=i.opposite()),t.addRule(`.monaco-editor .cursors-layer .cursor { background-color: ${i}; border-color: ${i}; color: ${n}; }`),"hc"===e.type&&t.addRule(`.monaco-editor .cursors-layer.has-selection .cursor { border-left: 1px solid ${n}; border-right: 1px solid ${n}; }`)}})})),define(t[597],i([0,1,7,20,30,12,586,593,556,250,543,43,381,591,382,584,164,592,251,587,383,215,384,588,385,594,386,595,589,590,596,387,13,3,103,376,378,104,14,177]),(function(e,t,i,n,o,s,r,a,l,d,c,h,u,g,p,m,f,_,v,C,b,S,w,y,E,L,x,D,k,N,I,M,R,T,O,A,P,F,W,B){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.View=void 0;class V extends F.ViewEventHandler{constructor(e,t,i,s,d,x){super(),this._selections=[new n.Selection(1,1,1,1)],this._renderAnimationFrame=null;const R=new l.ViewController(t,s,d,e);this._context=new A.ViewContext(t,i.getColorTheme(),s),this._context.addEventHandler(this), +this._register(i.onDidColorThemeChange(e=>{this._context.theme.update(e),this._context.model.onDidColorThemeChange(),this.render(!0,!1)})),this._viewParts=[],this._textAreaHandler=new a.TextAreaHandler(this._context,R,this._createTextAreaHandlerHelper()),this._viewParts.push(this._textAreaHandler),this._linesContent=o.createFastDomNode(document.createElement("div")),this._linesContent.setClassName("lines-content monaco-editor-background"),this._linesContent.setPosition("absolute"),this.domNode=o.createFastDomNode(document.createElement("div")),this.domNode.setClassName(this._getEditorClassName()),this.domNode.setAttribute("role","code"),this._overflowGuardContainer=o.createFastDomNode(document.createElement("div")),h.PartFingerprints.write(this._overflowGuardContainer,3),this._overflowGuardContainer.setClassName("overflow-guard"),this._scrollbar=new m.EditorScrollbar(this._context,this._linesContent,this.domNode,this._overflowGuardContainer),this._viewParts.push(this._scrollbar), +this._viewLines=new C.ViewLines(this._context,this._linesContent),this._viewZones=new M.ViewZones(this._context),this._viewParts.push(this._viewZones);const T=new L.DecorationsOverviewRuler(this._context);this._viewParts.push(T);const O=new k.ScrollDecorationViewPart(this._context);this._viewParts.push(O);const P=new c.ContentViewOverlays(this._context);this._viewParts.push(P),P.addDynamicOverlay(new g.CurrentLineHighlightOverlay(this._context)),P.addDynamicOverlay(new N.SelectionsOverlay(this._context)),P.addDynamicOverlay(new _.IndentGuidesOverlay(this._context)),P.addDynamicOverlay(new p.DecorationsOverlay(this._context));const F=new c.MarginViewOverlays(this._context);this._viewParts.push(F),F.addDynamicOverlay(new g.CurrentLineMarginHighlightOverlay(this._context)),F.addDynamicOverlay(new f.GlyphMarginOverlay(this._context)),F.addDynamicOverlay(new w.MarginViewLineDecorationsOverlay(this._context)),F.addDynamicOverlay(new b.LinesDecorationsOverlay(this._context)), +F.addDynamicOverlay(new v.LineNumbersOverlay(this._context));const W=new S.Margin(this._context);W.getDomNode().appendChild(this._viewZones.marginDomNode),W.getDomNode().appendChild(F.getDomNode()),this._viewParts.push(W),this._contentWidgets=new u.ViewContentWidgets(this._context,this.domNode),this._viewParts.push(this._contentWidgets),this._viewCursors=new I.ViewCursors(this._context),this._viewParts.push(this._viewCursors),this._overlayWidgets=new E.ViewOverlayWidgets(this._context),this._viewParts.push(this._overlayWidgets);const B=new D.Rulers(this._context);this._viewParts.push(B);const V=new y.Minimap(this._context);if(this._viewParts.push(V),T){const e=this._scrollbar.getOverviewRulerLayoutInfo();e.parent.insertBefore(T.getDomNode(),e.insertBefore)}this._linesContent.appendChild(P.getDomNode()),this._linesContent.appendChild(B.domNode),this._linesContent.appendChild(this._viewZones.domNode),this._linesContent.appendChild(this._viewLines.getDomNode()), +this._linesContent.appendChild(this._contentWidgets.domNode),this._linesContent.appendChild(this._viewCursors.getDomNode()),this._overflowGuardContainer.appendChild(W.getDomNode()),this._overflowGuardContainer.appendChild(this._scrollbar.getDomNode()),this._overflowGuardContainer.appendChild(O.getDomNode()),this._overflowGuardContainer.appendChild(this._textAreaHandler.textArea),this._overflowGuardContainer.appendChild(this._textAreaHandler.textAreaCover),this._overflowGuardContainer.appendChild(this._overlayWidgets.getDomNode()),this._overflowGuardContainer.appendChild(V.getDomNode()),this.domNode.appendChild(this._overflowGuardContainer),x?x.appendChild(this._contentWidgets.overflowingContentWidgetsDomNode.domNode):this.domNode.appendChild(this._contentWidgets.overflowingContentWidgetsDomNode),this._applyLayout(),this._pointerHandler=this._register(new r.PointerHandler(this._context,R,this._createPointerHandlerHelper()))}_flushAccumulatedAndRenderNow(){this._renderNow()}_createPointerHandlerHelper(){return{ +viewDomNode:this.domNode.domNode,linesContentDomNode:this._linesContent.domNode,focusTextArea:()=>{this.focus()},getLastRenderData:()=>{const e=this._viewCursors.getLastRenderData()||[],t=this._textAreaHandler.getLastRenderData();return new B.PointerHandlerLastRenderData(e,t)},shouldSuppressMouseDownOnViewZone:e=>this._viewZones.shouldSuppressMouseDownOnViewZone(e),shouldSuppressMouseDownOnWidget:e=>this._contentWidgets.shouldSuppressMouseDownOnWidget(e),getPositionFromDOMInfo:(e,t)=>(this._flushAccumulatedAndRenderNow(),this._viewLines.getPositionFromDOMInfo(e,t)),visibleRangeForPosition:(e,t)=>(this._flushAccumulatedAndRenderNow(),this._viewLines.visibleRangeForPosition(new R.Position(e,t))),getLineWidth:e=>(this._flushAccumulatedAndRenderNow(),this._viewLines.getLineWidth(e))}}_createTextAreaHandlerHelper(){return{visibleRangeForPositionRelativeToEditor:(e,t)=>(this._flushAccumulatedAndRenderNow(),this._viewLines.visibleRangeForPosition(new R.Position(e,t)))}}_applyLayout(){ +const e=this._context.configuration.options.get(117);this.domNode.setWidth(e.width),this.domNode.setHeight(e.height),this._overflowGuardContainer.setWidth(e.width),this._overflowGuardContainer.setHeight(e.height),this._linesContent.setWidth(1e6),this._linesContent.setHeight(1e6)}_getEditorClassName(){const e=this._textAreaHandler.isFocused()?" focused":"";return this._context.configuration.options.get(114)+" "+W.getThemeTypeSelector(this._context.theme.type)+e}handleEvents(e){super.handleEvents(e),this._scheduleRender()}onConfigurationChanged(e){return this.domNode.setClassName(this._getEditorClassName()),this._applyLayout(),!1}onCursorStateChanged(e){return this._selections=e.selections,!1}onFocusChanged(e){return this.domNode.setClassName(this._getEditorClassName()),!1}onThemeChanged(e){return this.domNode.setClassName(this._getEditorClassName()),!1}dispose(){null!==this._renderAnimationFrame&&(this._renderAnimationFrame.dispose(),this._renderAnimationFrame=null), +this._contentWidgets.overflowingContentWidgetsDomNode.domNode.remove(),this._context.removeEventHandler(this),this._viewLines.dispose();for(let e=0,t=this._viewParts.length;ethis._actualRender())}_getViewPartsToRender(){let e=[],t=0;for(let i=0,n=this._viewParts.length;i{this._onDidChangeConfiguration.fire(e);const t=this._configuration.options;if(e.hasChanged(117)){const e=t.get(117);this._onDidLayoutChange.fire(e)}})),this._contextKeyService=this._register(l.createScoped(this._domElement)),this._notificationService=c,this._codeEditorService=r,this._commandService=a,this._themeService=d,this._register(new K(this,this._contextKeyService)),this._register(new U(this,this._contextKeyService)),this._instantiationService=n.createChild(new M.ServiceCollection([N.IContextKeyService,this._contextKeyService])),this._modelData=null,this._contributions={},this._actions={}, +this._focusTracker=new $(e),this._focusTracker.onChange(()=>{this._editorWidgetFocus.setValue(this._focusTracker.hasFocus())}),this._contentWidgets={},this._overlayWidgets={},g=Array.isArray(i.contributions)?i.contributions:h.EditorExtensionsRegistry.getEditorContributions();for(const e of g)try{const t=this._instantiationService.createInstance(e.ctor,this);this._contributions[e.id]=t}catch(e){o.onUnexpectedError(e)}h.EditorExtensionsRegistry.getEditorActions().forEach(e=>{const t=new S.InternalEditorAction(e.id,e.label,e.alias,A.withNullAsUndefined(e.precondition),()=>this._instantiationService.invokeFunction(t=>Promise.resolve(e.runEditorCommand(t,this,null))),this._contextKeyService);this._actions[t.id]=t}),this._codeEditorService.addCodeEditor(this)}_createConfiguration(e,t){return new c.Configuration(this.isSimpleWidget,e,this._domElement,t)}getId(){return this.getEditorType()+":"+this._id}getEditorType(){return w.EditorType.ICodeEditor}dispose(){this._codeEditorService.removeCodeEditor(this), +this._focusTracker.dispose();const e=Object.keys(this._contributions);for(let t=0,i=e.length;tC.Range.lift(e)))}getVisibleColumnFromPosition(e){if(!this._modelData)return e.column;const t=this._modelData.model.validatePosition(e),i=this._modelData.model.getOptions().tabSize;return _.CursorColumns.visibleColumnFromColumn(this._modelData.model.getLineContent(t.lineNumber),t.column,i)+1}getPosition(){return this._modelData?this._modelData.viewModel.getPosition():null}setPosition(e){ +if(this._modelData){if(!v.Position.isIPosition(e))throw new Error("Invalid arguments");this._modelData.viewModel.setSelections("api",[{selectionStartLineNumber:e.lineNumber,selectionStartColumn:e.column,positionLineNumber:e.lineNumber,positionColumn:e.column}])}}_sendRevealRange(e,t,i,n){if(!this._modelData)return;if(!C.Range.isIRange(e))throw new Error("Invalid arguments");const o=this._modelData.model.validateRange(e),s=this._modelData.viewModel.coordinatesConverter.convertModelRangeToViewRange(o);this._modelData.viewModel.revealRange("api",i,s,t,n)}revealLine(e,t=0){this._revealLine(e,0,t)}revealLineInCenter(e,t=0){this._revealLine(e,1,t)}revealLineInCenterIfOutsideViewport(e,t=0){this._revealLine(e,2,t)}revealLineNearTop(e,t=0){this._revealLine(e,5,t)}_revealLine(e,t,i){if("number"!=typeof e)throw new Error("Invalid arguments");this._sendRevealRange(new C.Range(e,1,e,1),t,!1,i)}revealPosition(e,t=0){this._revealPosition(e,0,!0,t)}revealPositionInCenter(e,t=0){this._revealPosition(e,1,!0,t)} +revealPositionInCenterIfOutsideViewport(e,t=0){this._revealPosition(e,2,!0,t)}revealPositionNearTop(e,t=0){this._revealPosition(e,5,!0,t)}_revealPosition(e,t,i,n){if(!v.Position.isIPosition(e))throw new Error("Invalid arguments");this._sendRevealRange(new C.Range(e.lineNumber,e.column,e.lineNumber,e.column),t,i,n)}getSelection(){return this._modelData?this._modelData.viewModel.getSelection():null}getSelections(){return this._modelData?this._modelData.viewModel.getSelections():null}setSelection(e){const t=b.Selection.isISelection(e),i=C.Range.isIRange(e);if(!t&&!i)throw new Error("Invalid arguments");if(t)this._setSelectionImpl(e);else if(i){const t={selectionStartLineNumber:e.startLineNumber,selectionStartColumn:e.startColumn,positionLineNumber:e.endLineNumber,positionColumn:e.endColumn};this._setSelectionImpl(t)}}_setSelectionImpl(e){if(!this._modelData)return;const t=new b.Selection(e.selectionStartLineNumber,e.selectionStartColumn,e.positionLineNumber,e.positionColumn) +;this._modelData.viewModel.setSelections("api",[t])}revealLines(e,t,i=0){this._revealLines(e,t,0,i)}revealLinesInCenter(e,t,i=0){this._revealLines(e,t,1,i)}revealLinesInCenterIfOutsideViewport(e,t,i=0){this._revealLines(e,t,2,i)}revealLinesNearTop(e,t,i=0){this._revealLines(e,t,5,i)}_revealLines(e,t,i,n){if("number"!=typeof e||"number"!=typeof t)throw new Error("Invalid arguments");this._sendRevealRange(new C.Range(e,1,t,1),i,!1,n)}revealRange(e,t=0,i=!1,n=!0){this._revealRange(e,i?1:0,n,t)}revealRangeInCenter(e,t=0){this._revealRange(e,1,!0,t)}revealRangeInCenterIfOutsideViewport(e,t=0){this._revealRange(e,2,!0,t)}revealRangeNearTop(e,t=0){this._revealRange(e,5,!0,t)}revealRangeNearTopIfOutsideViewport(e,t=0){this._revealRange(e,6,!0,t)}revealRangeAtTop(e,t=0){this._revealRange(e,3,!0,t)}_revealRange(e,t,i,n){if(!C.Range.isIRange(e))throw new Error("Invalid arguments");this._sendRevealRange(C.Range.lift(e),t,i,n)}setSelections(e,t="api"){if(this._modelData){ +if(!e||0===e.length)throw new Error("Invalid arguments");for(let t=0,i=e.length;te.isSupported())}getAction(e){return this._actions[e]||null}trigger(e,t,i){switch(i=i||{},t){case"compositionStart":return void this._startComposition();case"compositionEnd":return void this._endComposition(e);case"type":{const t=i;return void this._type(e,t.text||"")}case"replacePreviousChar":{const t=i;return void this._replacePreviousChar(e,t.text||"",t.replaceCharCnt||0)}case"paste":{const t=i;return void this._paste(e,t.text||"",t.pasteOnNewLine||!1,t.multicursorText||null,t.mode||null)}case"cut":return void this._cut(e)}const n=this.getAction(t) +;n?Promise.resolve(n.run()).then(void 0,o.onUnexpectedError):this._modelData&&this._triggerEditorCommand(e,t,i)}_startComposition(){this._modelData&&(this._modelData.viewModel.startComposition(),this._onDidCompositionStart.fire())}_endComposition(e){this._modelData&&(this._modelData.viewModel.endComposition(e),this._onDidCompositionEnd.fire())}_type(e,t){this._modelData&&0!==t.length&&("keyboard"===e&&this._onWillType.fire(t),this._modelData.viewModel.type(t,e),"keyboard"===e&&this._onDidType.fire(t))}_replacePreviousChar(e,t,i){this._modelData&&this._modelData.viewModel.replacePreviousChar(t,i,e)}_paste(e,t,i,n,o){if(!this._modelData||0===t.length)return;const s=this._modelData.viewModel.getSelection().getStartPosition();this._modelData.viewModel.paste(t,i,n,e);const r=this._modelData.viewModel.getSelection().getStartPosition();"keyboard"===e&&this._onDidPaste.fire({range:new C.Range(s.lineNumber,s.column,r.lineNumber,r.column),mode:o})}_cut(e){this._modelData&&this._modelData.viewModel.cut(e)} +_triggerEditorCommand(e,t,i){const n=h.EditorExtensionsRegistry.getEditorCommand(t);return!!n&&((i=i||{}).source=e,this._instantiationService.invokeFunction(e=>{Promise.resolve(n.runEditorCommand(e,this,i)).then(void 0,o.onUnexpectedError)}),!0)}_getViewModel(){return this._modelData?this._modelData.viewModel:null}pushUndoStop(){return!!this._modelData&&(!this._configuration.options.get(72)&&(this._modelData.model.pushStackElement(),!0))}executeEdits(e,t,i){if(!this._modelData)return!1;if(this._configuration.options.get(72))return!1;let n;return n=i?Array.isArray(i)?()=>i:i:()=>null,this._modelData.viewModel.executeEdits(e,t,n),!0}executeCommand(e,t){this._modelData&&this._modelData.viewModel.executeCommand(t,e)}executeCommands(e,t){this._modelData&&this._modelData.viewModel.executeCommands(t,e)}changeDecorations(e){return this._modelData?this._modelData.model.changeDecorations(e,this._id):null}getLineDecorations(e){ +return this._modelData?this._modelData.model.getLineDecorations(e,this._id,m.filterValidationDecorations(this._configuration.options)):null}deltaDecorations(e,t){return this._modelData?0===e.length&&0===t.length?e:this._modelData.model.deltaDecorations(e,t,this._id):[]}removeDecorations(e){const t=this._decorationTypeKeysToIds[e];t&&this.deltaDecorations(t,[]),this._decorationTypeKeysToIds.hasOwnProperty(e)&&delete this._decorationTypeKeysToIds[e],this._decorationTypeSubtypes.hasOwnProperty(e)&&delete this._decorationTypeSubtypes[e]}getLayoutInfo(){return this._configuration.options.get(117)}createOverviewRuler(e){return this._modelData&&this._modelData.hasRealView?this._modelData.view.createOverviewRuler(e):null}getContainerDomNode(){return this._domElement}getDomNode(){return this._modelData&&this._modelData.hasRealView?this._modelData.view.domNode.domNode:null}delegateVerticalScrollbarMouseDown(e){this._modelData&&this._modelData.hasRealView&&this._modelData.view.delegateVerticalScrollbarMouseDown(e)} +layout(e){this._configuration.observeReferenceElement(e),this.render()}focus(){this._modelData&&this._modelData.hasRealView&&this._modelData.view.focus()}hasTextFocus(){return!(!this._modelData||!this._modelData.hasRealView)&&this._modelData.view.isFocused()}hasWidgetFocus(){return this._focusTracker&&this._focusTracker.hasFocus()}addContentWidget(e){const t={widget:e,position:e.getPosition()};this._contentWidgets.hasOwnProperty(e.getId())&&console.warn("Overwriting a content widget with the same id."),this._contentWidgets[e.getId()]=t,this._modelData&&this._modelData.hasRealView&&this._modelData.view.addContentWidget(t)}layoutContentWidget(e){const t=e.getId();if(this._contentWidgets.hasOwnProperty(t)){const i=this._contentWidgets[t];i.position=e.getPosition(),this._modelData&&this._modelData.hasRealView&&this._modelData.view.layoutContentWidget(i)}}removeContentWidget(e){const t=e.getId();if(this._contentWidgets.hasOwnProperty(t)){const e=this._contentWidgets[t];delete this._contentWidgets[t], +this._modelData&&this._modelData.hasRealView&&this._modelData.view.removeContentWidget(e)}}addOverlayWidget(e){const t={widget:e,position:e.getPosition()};this._overlayWidgets.hasOwnProperty(e.getId())&&console.warn("Overwriting an overlay widget with the same id."),this._overlayWidgets[e.getId()]=t,this._modelData&&this._modelData.hasRealView&&this._modelData.view.addOverlayWidget(t)}layoutOverlayWidget(e){const t=e.getId();if(this._overlayWidgets.hasOwnProperty(t)){const i=this._overlayWidgets[t];i.position=e.getPosition(),this._modelData&&this._modelData.hasRealView&&this._modelData.view.layoutOverlayWidget(i)}}removeOverlayWidget(e){const t=e.getId();if(this._overlayWidgets.hasOwnProperty(t)){const e=this._overlayWidgets[t];delete this._overlayWidgets[t],this._modelData&&this._modelData.hasRealView&&this._modelData.view.removeOverlayWidget(e)}}changeViewZones(e){this._modelData&&this._modelData.hasRealView&&this._modelData.view.change(e)}getTargetAtClientPoint(e,t){ +return this._modelData&&this._modelData.hasRealView?this._modelData.view.getTargetAtClientPoint(e,t):null}getScrolledVisiblePosition(t){if(!this._modelData||!this._modelData.hasRealView)return null;const i=this._modelData.model.validatePosition(t),n=this._configuration.options,o=n.get(117);return{top:e._getVerticalOffsetForPosition(this._modelData,i.lineNumber,i.column)-this.getScrollTop(),left:this._modelData.view.getOffsetForColumn(i.lineNumber,i.column)+o.glyphMarginWidth+o.lineNumbersWidth+o.decorationsWidth-this.getScrollLeft(),height:n.get(51)}}getOffsetForColumn(e,t){return this._modelData&&this._modelData.hasRealView?this._modelData.view.getOffsetForColumn(e,t):-1}render(e=!1){this._modelData&&this._modelData.hasRealView&&this._modelData.view.render(!0,e)}setAriaOptions(e){this._modelData&&this._modelData.hasRealView&&this._modelData.view.setAriaOptions(e)}applyFontInfo(e){c.Configuration.applyFontInfoSlow(e,this._configuration.options.get(36))}_attachModel(e){if(!e)return void(this._modelData=null) +;const t=[];this._domElement.setAttribute("data-mode-id",e.getLanguageIdentifier().language),this._configuration.setIsDominatedByLongLines(e.isDominatedByLongLines()),this._configuration.setMaxLineNumber(e.getLineCount()),e.onBeforeAttached();const o=new D.ViewModel(this._id,this._configuration,e,F.DOMLineBreaksComputerFactory.create(),P.MonospaceLineBreaksComputerFactory.create(this._configuration.options),e=>n.scheduleAtNextAnimationFrame(e));t.push(e.onDidChangeDecorations(e=>this._onDidChangeModelDecorations.fire(e))),t.push(e.onDidChangeLanguage(t=>{this._domElement.setAttribute("data-mode-id",e.getLanguageIdentifier().language),this._onDidChangeModelLanguage.fire(t)})),t.push(e.onDidChangeLanguageConfiguration(e=>this._onDidChangeModelLanguageConfiguration.fire(e))),t.push(e.onDidChangeContent(e=>this._onDidChangeModelContent.fire(e))),t.push(e.onDidChangeOptions(e=>this._onDidChangeModelOptions.fire(e))),t.push(e.onWillDispose(()=>this.setModel(null))),t.push(o.onEvent(e=>{switch(e.kind){case 0: +this._onDidContentSizeChange.fire(e);break;case 1:this._editorTextFocus.setValue(e.hasFocus);break;case 2:this._onDidScrollChange.fire(e);break;case 3:this._onDidChangeViewZones.fire();break;case 4:this._onDidAttemptReadOnlyEdit.fire();break;case 5:{e.reachedMaxCursorCount&&this._notificationService.warn(i.localize(0,null,f.Cursor.MAX_CURSOR_COUNT));const t=[];for(let i=0,n=e.selections.length;i{this._paste("keyboard",e,t,i,n)},type:e=>{this._type("keyboard",e)},replacePreviousChar:(e,t)=>{this._replacePreviousChar("keyboard",e,t)},startComposition:()=>{this._startComposition()},endComposition:()=>{this._endComposition("keyboard")},cut:()=>{this._cut("keyboard")}}:{paste:(e,t,i,n)=>{const o={text:e,pasteOnNewLine:t,multicursorText:i,mode:n};this._commandService.executeCommand("paste",o)},type:e=>{const t={text:e};this._commandService.executeCommand("type",t)},replacePreviousChar:(e,t)=>{const i={text:e,replaceCharCnt:t};this._commandService.executeCommand("replacePreviousChar",i)},startComposition:()=>{this._commandService.executeCommand("compositionStart",{})}, +endComposition:()=>{this._commandService.executeCommand("compositionEnd",{})},cut:()=>{this._commandService.executeCommand("cut",{})}};const i=new p.ViewUserInputEvents(e.coordinatesConverter);return i.onKeyDown=e=>this._onKeyDown.fire(e),i.onKeyUp=e=>this._onKeyUp.fire(e),i.onContextMenu=e=>this._onContextMenu.fire(e),i.onMouseMove=e=>this._onMouseMove.fire(e),i.onMouseLeave=e=>this._onMouseLeave.fire(e),i.onMouseDown=e=>this._onMouseDown.fire(e),i.onMouseUp=e=>this._onMouseUp.fire(e),i.onMouseDrag=e=>this._onMouseDrag.fire(e),i.onMouseDrop=e=>this._onMouseDrop.fire(e),i.onMouseWheel=e=>this._onMouseWheel.fire(e),[new g.View(t,this._configuration,this._themeService,e,i,this._overflowWidgetsDomNode),!0]}_postDetachModelCleanup(e){e&&e.removeAllDecorationsWithOwnerId(this._id)}_detachModel(){if(!this._modelData)return null;const e=this._modelData.model,t=this._modelData.hasRealView?this._modelData.view.domNode.domNode:null;return this._modelData.dispose(),this._modelData=null, +this._domElement.removeAttribute("data-mode-id"),t&&this._domElement.contains(t)&&this._domElement.removeChild(t),e}_removeDecorationType(e){this._codeEditorService.removeDecorationType(e)}hasModel(){return null!==this._modelData}};z=a([l(3,I.IInstantiationService),l(4,u.ICodeEditorService),l(5,k.ICommandService),l(6,N.IContextKeyService),l(7,T.IThemeService),l(8,R.INotificationService),l(9,O.IAccessibilityService)],z),t.CodeEditorWidget=z;class H extends r.Disposable{constructor(){super(),this._onDidChangeToTrue=this._register(new s.Emitter),this.onDidChangeToTrue=this._onDidChangeToTrue.event,this._onDidChangeToFalse=this._register(new s.Emitter),this.onDidChangeToFalse=this._onDidChangeToFalse.event,this._value=0}setValue(e){const t=e?2:1;this._value!==t&&(this._value=t,2===this._value?this._onDidChangeToTrue.fire():1===this._value&&this._onDidChangeToFalse.fire())}}t.BooleanEventEmitter=H;class K extends r.Disposable{constructor(e,t){super(),this._editor=e,t.createKey("editorId",e.getId()), +this._editorSimpleInput=y.EditorContextKeys.editorSimpleInput.bindTo(t),this._editorFocus=y.EditorContextKeys.focus.bindTo(t),this._textInputFocus=y.EditorContextKeys.textInputFocus.bindTo(t),this._editorTextFocus=y.EditorContextKeys.editorTextFocus.bindTo(t),this._editorTabMovesFocus=y.EditorContextKeys.tabMovesFocus.bindTo(t),this._editorReadonly=y.EditorContextKeys.readOnly.bindTo(t),this._editorColumnSelection=y.EditorContextKeys.columnSelection.bindTo(t),this._hasMultipleSelections=y.EditorContextKeys.hasMultipleSelections.bindTo(t),this._hasNonEmptySelection=y.EditorContextKeys.hasNonEmptySelection.bindTo(t),this._canUndo=y.EditorContextKeys.canUndo.bindTo(t),this._canRedo=y.EditorContextKeys.canRedo.bindTo(t),this._register(this._editor.onDidChangeConfiguration(()=>this._updateFromConfig())),this._register(this._editor.onDidChangeCursorSelection(()=>this._updateFromSelection())),this._register(this._editor.onDidFocusEditorWidget(()=>this._updateFromFocus())), +this._register(this._editor.onDidBlurEditorWidget(()=>this._updateFromFocus())),this._register(this._editor.onDidFocusEditorText(()=>this._updateFromFocus())),this._register(this._editor.onDidBlurEditorText(()=>this._updateFromFocus())),this._register(this._editor.onDidChangeModel(()=>this._updateFromModel())),this._register(this._editor.onDidChangeConfiguration(()=>this._updateFromModel())),this._updateFromConfig(),this._updateFromSelection(),this._updateFromFocus(),this._updateFromModel(),this._editorSimpleInput.set(this._editor.isSimpleWidget)}_updateFromConfig(){const e=this._editor.getOptions();this._editorTabMovesFocus.set(e.get(116)),this._editorReadonly.set(e.get(72)),this._editorColumnSelection.set(e.get(13))}_updateFromSelection(){const e=this._editor.getSelections();e?(this._hasMultipleSelections.set(e.length>1),this._hasNonEmptySelection.set(e.some(e=>!e.isEmpty()))):(this._hasMultipleSelections.reset(),this._hasNonEmptySelection.reset())}_updateFromFocus(){ +this._editorFocus.set(this._editor.hasWidgetFocus()&&!this._editor.isSimpleWidget),this._editorTextFocus.set(this._editor.hasTextFocus()&&!this._editor.isSimpleWidget),this._textInputFocus.set(this._editor.hasTextFocus())}_updateFromModel(){const e=this._editor.getModel();this._canUndo.set(Boolean(e&&e.canUndo())),this._canRedo.set(Boolean(e&&e.canRedo()))}}class U extends r.Disposable{constructor(e,t){super(),this._editor=e,this._contextKeyService=t,this._langId=y.EditorContextKeys.languageId.bindTo(t),this._hasCompletionItemProvider=y.EditorContextKeys.hasCompletionItemProvider.bindTo(t),this._hasCodeActionsProvider=y.EditorContextKeys.hasCodeActionsProvider.bindTo(t),this._hasCodeLensProvider=y.EditorContextKeys.hasCodeLensProvider.bindTo(t),this._hasDefinitionProvider=y.EditorContextKeys.hasDefinitionProvider.bindTo(t),this._hasDeclarationProvider=y.EditorContextKeys.hasDeclarationProvider.bindTo(t),this._hasImplementationProvider=y.EditorContextKeys.hasImplementationProvider.bindTo(t), +this._hasTypeDefinitionProvider=y.EditorContextKeys.hasTypeDefinitionProvider.bindTo(t),this._hasHoverProvider=y.EditorContextKeys.hasHoverProvider.bindTo(t),this._hasDocumentHighlightProvider=y.EditorContextKeys.hasDocumentHighlightProvider.bindTo(t),this._hasDocumentSymbolProvider=y.EditorContextKeys.hasDocumentSymbolProvider.bindTo(t),this._hasReferenceProvider=y.EditorContextKeys.hasReferenceProvider.bindTo(t),this._hasRenameProvider=y.EditorContextKeys.hasRenameProvider.bindTo(t),this._hasSignatureHelpProvider=y.EditorContextKeys.hasSignatureHelpProvider.bindTo(t),this._hasDocumentFormattingProvider=y.EditorContextKeys.hasDocumentFormattingProvider.bindTo(t),this._hasDocumentSelectionFormattingProvider=y.EditorContextKeys.hasDocumentSelectionFormattingProvider.bindTo(t),this._hasMultipleDocumentFormattingProvider=y.EditorContextKeys.hasMultipleDocumentFormattingProvider.bindTo(t), +this._hasMultipleDocumentSelectionFormattingProvider=y.EditorContextKeys.hasMultipleDocumentSelectionFormattingProvider.bindTo(t),this._isInWalkThrough=y.EditorContextKeys.isInWalkThroughSnippet.bindTo(t);const i=()=>this._update();this._register(e.onDidChangeModel(i)),this._register(e.onDidChangeModelLanguage(i)),this._register(E.CompletionProviderRegistry.onDidChange(i)),this._register(E.CodeActionProviderRegistry.onDidChange(i)),this._register(E.CodeLensProviderRegistry.onDidChange(i)),this._register(E.DefinitionProviderRegistry.onDidChange(i)),this._register(E.DeclarationProviderRegistry.onDidChange(i)),this._register(E.ImplementationProviderRegistry.onDidChange(i)),this._register(E.TypeDefinitionProviderRegistry.onDidChange(i)),this._register(E.HoverProviderRegistry.onDidChange(i)),this._register(E.DocumentHighlightProviderRegistry.onDidChange(i)),this._register(E.DocumentSymbolProviderRegistry.onDidChange(i)),this._register(E.ReferenceProviderRegistry.onDidChange(i)), +this._register(E.RenameProviderRegistry.onDidChange(i)),this._register(E.DocumentFormattingEditProviderRegistry.onDidChange(i)),this._register(E.DocumentRangeFormattingEditProviderRegistry.onDidChange(i)),this._register(E.SignatureHelpProviderRegistry.onDidChange(i)),i()}dispose(){super.dispose()}reset(){this._contextKeyService.bufferChangeEvents(()=>{this._langId.reset(),this._hasCompletionItemProvider.reset(),this._hasCodeActionsProvider.reset(),this._hasCodeLensProvider.reset(),this._hasDefinitionProvider.reset(),this._hasDeclarationProvider.reset(),this._hasImplementationProvider.reset(),this._hasTypeDefinitionProvider.reset(),this._hasHoverProvider.reset(),this._hasDocumentHighlightProvider.reset(),this._hasDocumentSymbolProvider.reset(),this._hasReferenceProvider.reset(),this._hasRenameProvider.reset(),this._hasDocumentFormattingProvider.reset(),this._hasDocumentSelectionFormattingProvider.reset(),this._hasSignatureHelpProvider.reset(),this._isInWalkThrough.reset()})}_update(){ +const e=this._editor.getModel();e?this._contextKeyService.bufferChangeEvents(()=>{this._langId.set(e.getLanguageIdentifier().language),this._hasCompletionItemProvider.set(E.CompletionProviderRegistry.has(e)),this._hasCodeActionsProvider.set(E.CodeActionProviderRegistry.has(e)),this._hasCodeLensProvider.set(E.CodeLensProviderRegistry.has(e)),this._hasDefinitionProvider.set(E.DefinitionProviderRegistry.has(e)),this._hasDeclarationProvider.set(E.DeclarationProviderRegistry.has(e)),this._hasImplementationProvider.set(E.ImplementationProviderRegistry.has(e)),this._hasTypeDefinitionProvider.set(E.TypeDefinitionProviderRegistry.has(e)),this._hasHoverProvider.set(E.HoverProviderRegistry.has(e)),this._hasDocumentHighlightProvider.set(E.DocumentHighlightProviderRegistry.has(e)),this._hasDocumentSymbolProvider.set(E.DocumentSymbolProviderRegistry.has(e)),this._hasReferenceProvider.set(E.ReferenceProviderRegistry.has(e)),this._hasRenameProvider.set(E.RenameProviderRegistry.has(e)), +this._hasSignatureHelpProvider.set(E.SignatureHelpProviderRegistry.has(e)),this._hasDocumentFormattingProvider.set(E.DocumentFormattingEditProviderRegistry.has(e)||E.DocumentRangeFormattingEditProviderRegistry.has(e)),this._hasDocumentSelectionFormattingProvider.set(E.DocumentRangeFormattingEditProviderRegistry.has(e)),this._hasMultipleDocumentFormattingProvider.set(E.DocumentFormattingEditProviderRegistry.all(e).length+E.DocumentRangeFormattingEditProviderRegistry.all(e).length>1),this._hasMultipleDocumentSelectionFormattingProvider.set(E.DocumentRangeFormattingEditProviderRegistry.all(e).length>1),this._isInWalkThrough.set(e.uri.scheme===d.Schemas.walkThroughSnippet)}):this.reset()}}t.EditorModeContext=U;class $ extends r.Disposable{constructor(e){super(),this._onChange=this._register(new s.Emitter),this.onChange=this._onChange.event,this._hasFocus=!1,this._domFocusTracker=this._register(n.trackFocus(e)),this._register(this._domFocusTracker.onDidFocus(()=>{this._hasFocus=!0,this._onChange.fire(void 0)})), +this._register(this._domFocusTracker.onDidBlur(()=>{this._hasFocus=!1,this._onChange.fire(void 0)}))}hasFocus(){return this._hasFocus}}const j=encodeURIComponent("");function G(e){return j+encodeURIComponent(e.toString())+q}const Y=encodeURIComponent('');T.registerThemingParticipant((e,t)=>{const i=e.getColor(x.editorErrorBorder);i&&t.addRule(`.monaco-editor .squiggly-error { border-bottom: 4px double ${i}; }`);const n=e.getColor(x.editorErrorForeground) +;n&&t.addRule(`.monaco-editor .squiggly-error { background: url("data:image/svg+xml,${G(n)}") repeat-x bottom left; }`);const o=e.getColor(x.editorWarningBorder);o&&t.addRule(`.monaco-editor .squiggly-warning { border-bottom: 4px double ${o}; }`);const s=e.getColor(x.editorWarningForeground);s&&t.addRule(`.monaco-editor .squiggly-warning { background: url("data:image/svg+xml,${G(s)}") repeat-x bottom left; }`);const r=e.getColor(x.editorInfoBorder);r&&t.addRule(`.monaco-editor .squiggly-info { border-bottom: 4px double ${r}; }`);const a=e.getColor(x.editorInfoForeground);a&&t.addRule(`.monaco-editor .squiggly-info { background: url("data:image/svg+xml,${G(a)}") repeat-x bottom left; }`);const l=e.getColor(x.editorHintBorder);l&&t.addRule(`.monaco-editor .squiggly-hint { border-bottom: 2px dotted ${l}; }`);const d=e.getColor(x.editorHintForeground);d&&t.addRule(`.monaco-editor .squiggly-hint { background: url("data:image/svg+xml,${function(e){return Y+encodeURIComponent(e.toString())+Z +}(d)}") no-repeat bottom left; }`);const c=e.getColor(L.editorUnnecessaryCodeOpacity);c&&t.addRule(`.monaco-editor.showUnused .squiggly-inline-unnecessary { opacity: ${c.rgba.a}; }`);const h=e.getColor(L.editorUnnecessaryCodeBorder);h&&t.addRule(`.monaco-editor.showUnused .squiggly-unnecessary { border-bottom: 2px dashed ${h}; }`);const u=e.getColor(x.editorForeground)||"inherit";t.addRule(`.monaco-editor.showDeprecated .squiggly-inline-deprecated { text-decoration: line-through; text-decoration-color: ${u}}`)})})),define(t[598],i([0,1,435,7,30,79,65,47,2,67,11,27,38,105,13,49,123,70,17,21,14,26,322]),(function(e,t,i,n,o,s,r,a,l,d,c,h,u,g,p,m,f,_,v,C,b,S){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DiffReview=void 0;const w=3;class y{constructor(e,t,i,n){this.originalLineStart=e,this.originalLineEnd=t,this.modifiedLineStart=i,this.modifiedLineEnd=n}getType(){return 0===this.originalLineStart?1:0===this.modifiedLineStart?2:0}}class E{constructor(e){this.entries=e}} +const L=S.registerIcon("diff-review-insert",S.Codicon.add),x=S.registerIcon("diff-review-remove",S.Codicon.remove),D=S.registerIcon("diff-review-close",S.Codicon.close);class k extends l.Disposable{constructor(e){super(),this._width=0,this._diffEditor=e,this._isVisible=!1,this.shadow=o.createFastDomNode(document.createElement("div")),this.shadow.setClassName("diff-review-shadow"),this.actionBarContainer=o.createFastDomNode(document.createElement("div")),this.actionBarContainer.setClassName("diff-review-actions"),this._actionBar=this._register(new s.ActionBar(this.actionBarContainer.domNode)),this._actionBar.push(new a.Action("diffreview.close",i.localize(0,null),"close-diff-review "+D.classNames,!0,()=>(this.hide(),Promise.resolve(null))),{label:!1,icon:!0}),this.domNode=o.createFastDomNode(document.createElement("div")),this.domNode.setClassName("diff-review monaco-editor-background"),this._content=o.createFastDomNode(document.createElement("div")),this._content.setClassName("diff-review-content"), +this._content.setAttribute("role","code"),this.scrollbar=this._register(new r.DomScrollableElement(this._content.domNode,{})),this.domNode.domNode.appendChild(this.scrollbar.getDomNode()),this._register(e.onDidUpdateDiff(()=>{this._isVisible&&(this._diffs=this._compute(),this._render())})),this._register(e.getModifiedEditor().onDidChangeCursorPosition(()=>{this._isVisible&&this._render()})),this._register(n.addStandardDisposableListener(this.domNode.domNode,"click",e=>{e.preventDefault();let t=n.findParentWithClass(e.target,"diff-review-row");t&&this._goToRow(t)})),this._register(n.addStandardDisposableListener(this.domNode.domNode,"keydown",e=>{(e.equals(18)||e.equals(2066)||e.equals(530))&&(e.preventDefault(),this._goToRow(this._getNextRow())),(e.equals(16)||e.equals(2064)||e.equals(528))&&(e.preventDefault(),this._goToRow(this._getPrevRow())),(e.equals(9)||e.equals(2057)||e.equals(521)||e.equals(1033))&&(e.preventDefault(),this.hide()),(e.equals(10)||e.equals(3))&&(e.preventDefault(),this.accept())})), +this._diffs=[],this._currentDiff=null}prev(){let e=0;if(this._isVisible||(this._diffs=this._compute()),this._isVisible){let t=-1;for(let e=0,i=this._diffs.length;e0){const t=e[s-1];n=0===t.originalEndLineNumber?t.originalStartLineNumber+1:t.originalEndLineNumber+1,o=0===t.modifiedEndLineNumber?t.modifiedStartLineNumber+1:t.modifiedEndLineNumber+1}let r=t-w+1,a=i-w+1;if(ra){const e=a-m;m+=e,f+=e}if(f>p){const e=p-f +;m+=e,f+=e}u[g++]=new y(n,m,o,f)}n[o++]=new E(u)}let s=n[0].entries,r=[],a=0;for(let e=1,t=n.length;eg)&&(g=n),0!==o&&(0===p||om)&&(m=s)}let f=document.createElement("div");f.className="diff-review-row";let _=document.createElement("div");_.className="diff-review-cell diff-review-summary";const v=g-u+1,C=m-p+1;_.appendChild(document.createTextNode(`${l+1}/${this._diffs.length}: @@ -${u},${v} +${p},${C} @@`)),f.setAttribute("data-line",String(p)) +;const b=e=>0===e?i.localize(1,null):1===e?i.localize(2,null):i.localize(3,null,e),S=b(v),w=b(C);f.setAttribute("aria-label",i.localize(4,null,l+1,this._diffs.length,u,S,p,w)),f.appendChild(_),f.setAttribute("role","listitem"),h.appendChild(f);const y=t.get(51);let E=p;for(let i=0,n=c.length;i{ +const i=e.getColor(m.editorLineNumbers);i&&t.addRule(`.monaco-diff-editor .diff-review-line-number { color: ${i}; }`);const n=e.getColor(C.scrollbarShadow);n&&t.addRule(`.monaco-diff-editor .diff-review-shadow { box-shadow: ${n} 0 -6px 6px -6px inset; }`)});class N extends c.EditorAction{constructor(){super({id:"editor.action.diffReview.next",label:i.localize(10,null),alias:"Go to Next Difference",precondition:v.ContextKeyExpr.has("isInDiffEditor"),kbOpts:{kbExpr:null,primary:65,weight:100}})}run(e,t){const i=M(e);i&&i.diffReviewNext()}}class I extends c.EditorAction{constructor(){super({id:"editor.action.diffReview.prev",label:i.localize(11,null),alias:"Go to Previous Difference",precondition:v.ContextKeyExpr.has("isInDiffEditor"),kbOpts:{kbExpr:null,primary:1089,weight:100}})}run(e,t){const i=M(e);i&&i.diffReviewPrev()}}function M(e){const t=e.get(h.ICodeEditorService),i=t.listDiffEditors(),n=t.getActiveCodeEditor();if(!n)return null;for(let e=0,t=i.length;e!this._zonesMap[String(e.id)])}clean(e){this._zones.length>0&&e.changeViewZones(e=>{for(let t=0,i=this._zones.length;t{for(let e=0,i=this._zones.length;ethis._updateDecorations(),0)),this._containerDomElement=document.createElement("div"),this._containerDomElement.className=e._getClassName(this._themeService.getColorTheme(),this._renderSideBySide),this._containerDomElement.style.position="relative",this._containerDomElement.style.height="100%",this._domElement.appendChild(this._containerDomElement),this._overviewViewportDomElement=o.createFastDomNode(document.createElement("div")),this._overviewViewportDomElement.setClassName("diffViewport"), +this._overviewViewportDomElement.setPosition("absolute"),this._overviewDomElement=document.createElement("div"),this._overviewDomElement.className="diffOverview",this._overviewDomElement.style.position="absolute",this._overviewDomElement.appendChild(this._overviewViewportDomElement.domNode),this._register(n.addStandardDisposableListener(this._overviewDomElement,"mousedown",e=>{this.modifiedEditor.delegateVerticalScrollbarMouseDown(e)})),this._containerDomElement.appendChild(this._overviewDomElement),this._originalDomNode=document.createElement("div"),this._originalDomNode.className="editor original",this._originalDomNode.style.position="absolute",this._originalDomNode.style.height="100%",this._containerDomElement.appendChild(this._originalDomNode),this._modifiedDomNode=document.createElement("div"),this._modifiedDomNode.className="editor modified",this._modifiedDomNode.style.position="absolute",this._modifiedDomNode.style.height="100%",this._containerDomElement.appendChild(this._modifiedDomNode), +this._beginUpdateDecorationsTimeout=-1,this._currentlyChangingViewZones=!1,this._diffComputationToken=0,this._originalEditorState=new H(p,s),this._modifiedEditorState=new H(p,s),this._isVisible=!0,this._isHandlingScrollEvent=!1,this._elementSizeObserver=this._register(new B.ElementSizeObserver(this._containerDomElement,void 0,()=>this._onDidContainerSizeChanged())),i.automaticLayout&&this._elementSizeObserver.startObserving(),this._diffComputationResult=null;const _=this._contextKeyService.createScoped(),v=new N.ServiceCollection;v.set(D.IContextKeyService,_);const C=c.createChild(v),b=this._contextKeyService.createScoped(),S=new N.ServiceCollection;S.set(D.IContextKeyService,b);const w=c.createChild(S);this.originalEditor=this._createLeftHandSideEditor(i,C,_),this.modifiedEditor=this._createRightHandSideEditor(i,w,b),this._originalOverviewRuler=null,this._modifiedOverviewRuler=null,this._reviewPane=new f.DiffReview(this),this._containerDomElement.appendChild(this._reviewPane.domNode.domNode), +this._containerDomElement.appendChild(this._reviewPane.shadow.domNode),this._containerDomElement.appendChild(this._reviewPane.actionBarContainer.domNode),this._enableSplitViewResizing=!0,void 0!==i.enableSplitViewResizing&&(this._enableSplitViewResizing=i.enableSplitViewResizing),this._renderSideBySide?this._setStrategy(new X(this._createDataSource(),this._enableSplitViewResizing)):this._setStrategy(new J(this._createDataSource(),this._enableSplitViewResizing)),this._register(u.onDidColorThemeChange(t=>{this._strategy&&this._strategy.applyColors(t)&&this._updateDecorationsRunner.schedule(),this._containerDomElement.className=e._getClassName(this._themeService.getColorTheme(),this._renderSideBySide)}));const y=P.EditorExtensionsRegistry.getDiffEditorContributions();for(const e of y)try{this._register(c.createInstance(e.ctor,this))}catch(e){F.onUnexpectedError(e)}this._codeEditorService.addDiffEditor(this)}_setState(e){this._state!==e&&(this._state=e, +this._updatingDiffProgress&&(this._updatingDiffProgress.done(),this._updatingDiffProgress=null),1===this._state&&(this._updatingDiffProgress=this._editorProgressService.show(!0,1e3)))}diffReviewNext(){this._reviewPane.next()}diffReviewPrev(){this._reviewPane.prev()}static _getClassName(e,t){let i="monaco-diff-editor monaco-editor-background ";return t&&(i+="side-by-side "),i+=R.getThemeTypeSelector(e.type)}_recreateOverviewRulers(){this._originalOverviewRuler&&(this._overviewDomElement.removeChild(this._originalOverviewRuler.getDomNode()),this._originalOverviewRuler.dispose()),this.originalEditor.hasModel()&&(this._originalOverviewRuler=this.originalEditor.createOverviewRuler("original diffOverviewRuler"),this._overviewDomElement.appendChild(this._originalOverviewRuler.getDomNode())),this._modifiedOverviewRuler&&(this._overviewDomElement.removeChild(this._modifiedOverviewRuler.getDomNode()),this._modifiedOverviewRuler.dispose()), +this.modifiedEditor.hasModel()&&(this._modifiedOverviewRuler=this.modifiedEditor.createOverviewRuler("modified diffOverviewRuler"),this._overviewDomElement.appendChild(this._modifiedOverviewRuler.getDomNode())),this._layoutOverviewRulers()}_createLeftHandSideEditor(t,i,n){const o=this._createInnerEditor(i,this._originalDomNode,this._adjustOptionsForLeftHandSide(t,this._originalIsEditable,this._originalCodeLens));this._register(o.onDidScrollChange(e=>{this._isHandlingScrollEvent||(e.scrollTopChanged||e.scrollLeftChanged||e.scrollHeightChanged)&&(this._isHandlingScrollEvent=!0,this.modifiedEditor.setScrollPosition({scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}),this._isHandlingScrollEvent=!1,this._layoutOverviewViewport())})),this._register(o.onDidChangeViewZones(()=>{this._onViewZonesChanged()})),this._register(o.onDidChangeModelContent(()=>{this._isVisible&&this._beginUpdateDecorationsSoon()}));const s=n.createKey("isInDiffLeftEditor",void 0);return this._register(o.onDidFocusEditorWidget(()=>s.set(!0))), +this._register(o.onDidBlurEditorWidget(()=>s.set(!1))),this._register(o.onDidContentSizeChange(t=>{const i=this.originalEditor.getContentWidth()+this.modifiedEditor.getContentWidth()+e.ONE_OVERVIEW_WIDTH,n=Math.max(this.modifiedEditor.getContentHeight(),this.originalEditor.getContentHeight());this._onDidContentSizeChange.fire({contentHeight:n,contentWidth:i,contentHeightChanged:t.contentHeightChanged,contentWidthChanged:t.contentWidthChanged})})),o}_createRightHandSideEditor(t,i,n){const o=this._createInnerEditor(i,this._modifiedDomNode,this._adjustOptionsForRightHandSide(t,this._modifiedCodeLens));this._register(o.onDidScrollChange(e=>{this._isHandlingScrollEvent||(e.scrollTopChanged||e.scrollLeftChanged||e.scrollHeightChanged)&&(this._isHandlingScrollEvent=!0,this.originalEditor.setScrollPosition({scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}),this._isHandlingScrollEvent=!1,this._layoutOverviewViewport())})),this._register(o.onDidChangeViewZones(()=>{this._onViewZonesChanged()})), +this._register(o.onDidChangeConfiguration(e=>{e.hasChanged(36)&&o.getModel()&&this._onViewZonesChanged()})),this._register(o.onDidChangeModelContent(()=>{this._isVisible&&this._beginUpdateDecorationsSoon()})),this._register(o.onDidChangeModelOptions(e=>{e.tabSize&&this._updateDecorationsRunner.schedule()}));const s=n.createKey("isInDiffRightEditor",void 0);return this._register(o.onDidFocusEditorWidget(()=>s.set(!0))),this._register(o.onDidBlurEditorWidget(()=>s.set(!1))),this._register(o.onDidContentSizeChange(t=>{const i=this.originalEditor.getContentWidth()+this.modifiedEditor.getContentWidth()+e.ONE_OVERVIEW_WIDTH,n=Math.max(this.modifiedEditor.getContentHeight(),this.originalEditor.getContentHeight());this._onDidContentSizeChange.fire({contentHeight:n,contentWidth:i,contentHeightChanged:t.contentHeightChanged,contentWidthChanged:t.contentWidthChanged})})),o}_createInnerEditor(e,t,i){return e.createInstance(m.CodeEditorWidget,t,i,{})}dispose(){this._codeEditorService.removeDiffEditor(this), +-1!==this._beginUpdateDecorationsTimeout&&(window.clearTimeout(this._beginUpdateDecorationsTimeout),this._beginUpdateDecorationsTimeout=-1),this._cleanViewZonesAndDecorations(),this._originalOverviewRuler&&(this._overviewDomElement.removeChild(this._originalOverviewRuler.getDomNode()),this._originalOverviewRuler.dispose()),this._modifiedOverviewRuler&&(this._overviewDomElement.removeChild(this._modifiedOverviewRuler.getDomNode()),this._modifiedOverviewRuler.dispose()),this._overviewDomElement.removeChild(this._overviewViewportDomElement.domNode),this._containerDomElement.removeChild(this._overviewDomElement),this._containerDomElement.removeChild(this._originalDomNode),this.originalEditor.dispose(),this._containerDomElement.removeChild(this._modifiedDomNode),this.modifiedEditor.dispose(),this._strategy.dispose(),this._containerDomElement.removeChild(this._reviewPane.domNode.domNode),this._containerDomElement.removeChild(this._reviewPane.shadow.domNode), +this._containerDomElement.removeChild(this._reviewPane.actionBarContainer.domNode),this._reviewPane.dispose(),this._domElement.removeChild(this._containerDomElement),this._onDidDispose.fire(),super.dispose()}getId(){return this.getEditorType()+":"+this.id}getEditorType(){return b.EditorType.IDiffEditor}getLineChanges(){return this._diffComputationResult?this._diffComputationResult.changes:null}getOriginalEditor(){return this.originalEditor}getModifiedEditor(){return this.modifiedEditor}updateOptions(t){let i=!1;void 0!==t.renderSideBySide&&this._renderSideBySide!==t.renderSideBySide&&(this._renderSideBySide=t.renderSideBySide,i=!0),void 0!==t.maxComputationTime&&(this._maxComputationTime=t.maxComputationTime,this._isVisible&&this._beginUpdateDecorationsSoon());let n=!1;void 0!==t.ignoreTrimWhitespace&&this._ignoreTrimWhitespace!==t.ignoreTrimWhitespace&&(this._ignoreTrimWhitespace=t.ignoreTrimWhitespace,n=!0), +void 0!==t.renderIndicators&&this._renderIndicators!==t.renderIndicators&&(this._renderIndicators=t.renderIndicators,n=!0),n&&this._beginUpdateDecorations(),void 0!==t.originalEditable&&(this._originalIsEditable=Boolean(t.originalEditable)),void 0!==t.originalCodeLens&&(this._originalCodeLens=Boolean(t.originalCodeLens)),void 0!==t.modifiedCodeLens&&(this._modifiedCodeLens=Boolean(t.modifiedCodeLens)),this.modifiedEditor.updateOptions(this._adjustOptionsForRightHandSide(t,this._modifiedCodeLens)),this.originalEditor.updateOptions(this._adjustOptionsForLeftHandSide(t,this._originalIsEditable,this._originalCodeLens)),void 0!==t.enableSplitViewResizing&&(this._enableSplitViewResizing=t.enableSplitViewResizing),this._strategy.setEnableSplitViewResizing(this._enableSplitViewResizing),i&&(this._renderSideBySide?this._setStrategy(new X(this._createDataSource(),this._enableSplitViewResizing)):this._setStrategy(new J(this._createDataSource(),this._enableSplitViewResizing)), +this._containerDomElement.className=e._getClassName(this._themeService.getColorTheme(),this._renderSideBySide))}getModel(){return{original:this.originalEditor.getModel(),modified:this.modifiedEditor.getModel()}}setModel(e){if(e&&(!e.original||!e.modified))throw new Error(e.original?"DiffEditorWidget.setModel: Modified model is null":"DiffEditorWidget.setModel: Original model is null");this._cleanViewZonesAndDecorations(),this.originalEditor.setModel(e?e.original:null),this.modifiedEditor.setModel(e?e.modified:null),this._updateDecorationsRunner.cancel(),e&&(this.originalEditor.setScrollTop(0),this.modifiedEditor.setScrollTop(0)),this._diffComputationResult=null,this._diffComputationToken++,this._setState(0),e&&(this._recreateOverviewRulers(),this._beginUpdateDecorations()),this._layoutOverviewViewport()}getDomNode(){return this._domElement}getVisibleColumnFromPosition(e){return this.modifiedEditor.getVisibleColumnFromPosition(e)}getPosition(){return this.modifiedEditor.getPosition()}setPosition(e){ +this.modifiedEditor.setPosition(e)}revealLine(e,t=0){this.modifiedEditor.revealLine(e,t)}revealLineInCenter(e,t=0){this.modifiedEditor.revealLineInCenter(e,t)}revealLineInCenterIfOutsideViewport(e,t=0){this.modifiedEditor.revealLineInCenterIfOutsideViewport(e,t)}revealLineNearTop(e,t=0){this.modifiedEditor.revealLineNearTop(e,t)}revealPosition(e,t=0){this.modifiedEditor.revealPosition(e,t)}revealPositionInCenter(e,t=0){this.modifiedEditor.revealPositionInCenter(e,t)}revealPositionInCenterIfOutsideViewport(e,t=0){this.modifiedEditor.revealPositionInCenterIfOutsideViewport(e,t)}revealPositionNearTop(e,t=0){this.modifiedEditor.revealPositionNearTop(e,t)}getSelection(){return this.modifiedEditor.getSelection()}getSelections(){return this.modifiedEditor.getSelections()}setSelection(e){this.modifiedEditor.setSelection(e)}setSelections(e){this.modifiedEditor.setSelections(e)}revealLines(e,t,i=0){this.modifiedEditor.revealLines(e,t,i)}revealLinesInCenter(e,t,i=0){this.modifiedEditor.revealLinesInCenter(e,t,i)} +revealLinesInCenterIfOutsideViewport(e,t,i=0){this.modifiedEditor.revealLinesInCenterIfOutsideViewport(e,t,i)}revealLinesNearTop(e,t,i=0){this.modifiedEditor.revealLinesNearTop(e,t,i)}revealRange(e,t=0,i=!1,n=!0){this.modifiedEditor.revealRange(e,t,i,n)}revealRangeInCenter(e,t=0){this.modifiedEditor.revealRangeInCenter(e,t)}revealRangeInCenterIfOutsideViewport(e,t=0){this.modifiedEditor.revealRangeInCenterIfOutsideViewport(e,t)}revealRangeNearTop(e,t=0){this.modifiedEditor.revealRangeNearTop(e,t)}revealRangeNearTopIfOutsideViewport(e,t=0){this.modifiedEditor.revealRangeNearTopIfOutsideViewport(e,t)}revealRangeAtTop(e,t=0){this.modifiedEditor.revealRangeAtTop(e,t)}getSupportedActions(){return this.modifiedEditor.getSupportedActions()}saveViewState(){return{original:this.originalEditor.saveViewState(),modified:this.modifiedEditor.saveViewState()}}restoreViewState(e){if(e.original&&e.modified){let t=e;this.originalEditor.restoreViewState(t.original),this.modifiedEditor.restoreViewState(t.modified)}}layout(e){ +this._elementSizeObserver.observe(e)}focus(){this.modifiedEditor.focus()}hasTextFocus(){return this.originalEditor.hasTextFocus()||this.modifiedEditor.hasTextFocus()}trigger(e,t,i){this.modifiedEditor.trigger(e,t,i)}changeDecorations(e){return this.modifiedEditor.changeDecorations(e)}_onDidContainerSizeChanged(){this._doLayout()}_getReviewHeight(){return this._reviewPane.isVisible()?this._elementSizeObserver.getHeight():0}_layoutOverviewRulers(){if(!this._originalOverviewRuler||!this._modifiedOverviewRuler)return;const t=this._elementSizeObserver.getHeight(),i=this._getReviewHeight();let n=e.ENTIRE_DIFF_OVERVIEW_WIDTH-2*e.ONE_OVERVIEW_WIDTH;this.modifiedEditor.getLayoutInfo()&&(this._originalOverviewRuler.setLayout({top:0,width:e.ONE_OVERVIEW_WIDTH,right:n+e.ONE_OVERVIEW_WIDTH,height:t-i}),this._modifiedOverviewRuler.setLayout({top:0,right:0,width:e.ONE_OVERVIEW_WIDTH,height:t-i}))}_onViewZonesChanged(){this._currentlyChangingViewZones||this._updateDecorationsRunner.schedule()}_beginUpdateDecorationsSoon(){ +-1!==this._beginUpdateDecorationsTimeout&&(window.clearTimeout(this._beginUpdateDecorationsTimeout),this._beginUpdateDecorationsTimeout=-1),this._beginUpdateDecorationsTimeout=window.setTimeout(()=>this._beginUpdateDecorations(),e.UPDATE_DIFF_DECORATIONS_DELAY)}static _equals(e,t){return!e&&!t||!(!e||!t)&&e.toString()===t.toString()}_beginUpdateDecorations(){this._beginUpdateDecorationsTimeout=-1;const t=this.originalEditor.getModel(),n=this.modifiedEditor.getModel();if(!t||!n)return;this._diffComputationToken++;let o=this._diffComputationToken;this._setState(1),this._editorWorkerService.canComputeDiff(t.uri,n.uri)?this._editorWorkerService.computeDiff(t.uri,n.uri,this._ignoreTrimWhitespace,this._maxComputationTime).then(e=>{o===this._diffComputationToken&&t===this.originalEditor.getModel()&&n===this.modifiedEditor.getModel()&&(this._setState(2),this._diffComputationResult=e,this._updateDecorationsRunner.schedule(),this._onDidUpdateDiff.fire())},e=>{ +o===this._diffComputationToken&&t===this.originalEditor.getModel()&&n===this.modifiedEditor.getModel()&&(this._setState(2),this._diffComputationResult=null,this._updateDecorationsRunner.schedule())}):e._equals(t.uri,this._lastOriginalWarning)&&e._equals(n.uri,this._lastModifiedWarning)||(this._lastOriginalWarning=t.uri,this._lastModifiedWarning=n.uri,this._notificationService.warn(i.localize(0,null)))}_cleanViewZonesAndDecorations(){this._originalEditorState.clean(this.originalEditor),this._modifiedEditorState.clean(this.modifiedEditor)}_updateDecorations(){if(!(this.originalEditor.getModel()&&this.modifiedEditor.getModel()&&this._originalOverviewRuler&&this._modifiedOverviewRuler))return;const e=this._diffComputationResult?this._diffComputationResult.changes:[] +;let t=this._originalEditorState.getForeignViewZones(this.originalEditor.getWhitespaces()),i=this._modifiedEditorState.getForeignViewZones(this.modifiedEditor.getWhitespaces()),n=this._strategy.getEditorsDiffDecorations(e,this._ignoreTrimWhitespace,this._renderIndicators,t,i,this.originalEditor,this.modifiedEditor);try{this._currentlyChangingViewZones=!0,this._originalEditorState.apply(this.originalEditor,this._originalOverviewRuler,n.original,!1),this._modifiedEditorState.apply(this.modifiedEditor,this._modifiedOverviewRuler,n.modified,!0)}finally{this._currentlyChangingViewZones=!1}}_adjustOptionsForSubEditor(e){let t=h.deepClone(e||{});return t.inDiffEditor=!0,t.wordWrap="off",t.wordWrapMinified=!1,t.automaticLayout=!1,t.scrollbar=t.scrollbar||{},t.scrollbar.vertical="visible",t.folding=!1,t.codeLens=!1,t.fixedOverflowWidgets=!0,t.overflowWidgetsDomNode=e.overflowWidgetsDomNode,t.minimap||(t.minimap={}),t.minimap.enabled=!1,t}_adjustOptionsForLeftHandSide(e,t,i){let n=this._adjustOptionsForSubEditor(e) +;return i&&(n.codeLens=!0),n.readOnly=!t,n.extraEditorClassName="original-in-monaco-diff-editor",n}_adjustOptionsForRightHandSide(t,i){let n=this._adjustOptionsForSubEditor(t);return i&&(n.codeLens=!0),n.revealHorizontalRightPadding=_.EditorOptions.revealHorizontalRightPadding.defaultValue+e.ENTIRE_DIFF_OVERVIEW_WIDTH,n.scrollbar.verticalHasArrows=!1,n.extraEditorClassName="modified-in-monaco-diff-editor",n}doLayout(){this._elementSizeObserver.observe(),this._doLayout()}_doLayout(){const t=this._elementSizeObserver.getWidth(),i=this._elementSizeObserver.getHeight(),n=this._getReviewHeight();let o=this._strategy.layout();this._originalDomNode.style.width=o+"px",this._originalDomNode.style.left="0px",this._modifiedDomNode.style.width=t-o+"px",this._modifiedDomNode.style.left=o+"px",this._overviewDomElement.style.top="0px",this._overviewDomElement.style.height=i-n+"px",this._overviewDomElement.style.width=e.ENTIRE_DIFF_OVERVIEW_WIDTH+"px",this._overviewDomElement.style.left=t-e.ENTIRE_DIFF_OVERVIEW_WIDTH+"px", +this._overviewViewportDomElement.setWidth(e.ENTIRE_DIFF_OVERVIEW_WIDTH),this._overviewViewportDomElement.setHeight(30),this.originalEditor.layout({width:o,height:i-n}),this.modifiedEditor.layout({width:t-o-e.ENTIRE_DIFF_OVERVIEW_WIDTH,height:i-n}),(this._originalOverviewRuler||this._modifiedOverviewRuler)&&this._layoutOverviewRulers(),this._reviewPane.layout(i-n,t,n),this._layoutOverviewViewport()}_layoutOverviewViewport(){let e=this._computeOverviewViewport();e?(this._overviewViewportDomElement.setTop(e.top),this._overviewViewportDomElement.setHeight(e.height)):(this._overviewViewportDomElement.setTop(0),this._overviewViewportDomElement.setHeight(0))}_computeOverviewViewport(){let e=this.modifiedEditor.getLayoutInfo();if(!e)return null;let t=this.modifiedEditor.getScrollTop(),i=this.modifiedEditor.getScrollHeight(),n=Math.max(0,e.height),o=Math.max(0,n-0),s=i>0?o/i:0;return{height:Math.max(0,Math.floor(e.height*s)),top:Math.floor(t*s)}}_createDataSource(){return{ +getWidth:()=>this._elementSizeObserver.getWidth(),getHeight:()=>this._elementSizeObserver.getHeight()-this._getReviewHeight(),getContainerDomNode:()=>this._containerDomElement,relayoutEditors:()=>{this._doLayout()},getOriginalEditor:()=>this.originalEditor,getModifiedEditor:()=>this.modifiedEditor}}_setStrategy(e){this._strategy&&this._strategy.dispose(),this._strategy=e,e.applyColors(this._themeService.getColorTheme()),this._diffComputationResult&&this._updateDecorations(),this._doLayout()}_getLineChangeAtOrBeforeLineNumber(e,t){const i=this._diffComputationResult?this._diffComputationResult.changes:[];if(0===i.length||e=a?n=s+1:(n=s,o=s)}return i[n]}_getEquivalentLineForOriginalLineNumber(e){let t=this._getLineChangeAtOrBeforeLineNumber(e,e=>e.originalStartLineNumber);if(!t)return e +;let i=t.originalStartLineNumber+(t.originalEndLineNumber>0?-1:0),n=t.modifiedStartLineNumber+(t.modifiedEndLineNumber>0?-1:0),o=t.originalEndLineNumber>0?t.originalEndLineNumber-t.originalStartLineNumber+1:0,s=t.modifiedEndLineNumber>0?t.modifiedEndLineNumber-t.modifiedStartLineNumber+1:0,r=e-i;return r<=o?n+Math.min(r,s):n+s-o+r}_getEquivalentLineForModifiedLineNumber(e){let t=this._getLineChangeAtOrBeforeLineNumber(e,e=>e.modifiedStartLineNumber);if(!t)return e;let i=t.originalStartLineNumber+(t.originalEndLineNumber>0?-1:0),n=t.modifiedStartLineNumber+(t.modifiedEndLineNumber>0?-1:0),o=t.originalEndLineNumber>0?t.originalEndLineNumber-t.originalStartLineNumber+1:0,s=t.modifiedEndLineNumber>0?t.modifiedEndLineNumber-t.modifiedStartLineNumber+1:0,r=e-n;return r<=s?i+Math.min(r,o):i+o-s+r}getDiffLineInformationForOriginal(e){return this._diffComputationResult?{equivalentLineNumber:this._getEquivalentLineForOriginalLineNumber(e)}:null}getDiffLineInformationForModified(e){return this._diffComputationResult?{ +equivalentLineNumber:this._getEquivalentLineForModifiedLineNumber(e)}:null}};j.ONE_OVERVIEW_WIDTH=15,j.ENTIRE_DIFF_OVERVIEW_WIDTH=30,j.UPDATE_DIFF_DECORATIONS_DELAY=200,j=a([l(2,A.IClipboardService),l(3,w.IEditorWorkerService),l(4,D.IContextKeyService),l(5,k.IInstantiationService),l(6,p.ICodeEditorService),l(7,R.IThemeService),l(8,I.INotificationService),l(9,T.IContextMenuService),l(10,W.IEditorProgressService)],j),t.DiffEditorWidget=j;class q extends c.Disposable{constructor(e){super(),this._dataSource=e,this._insertColor=null,this._removeColor=null}applyColors(e){let t=(e.getColor(M.diffInserted)||M.defaultInsertColor).transparent(2),i=(e.getColor(M.diffRemoved)||M.defaultRemoveColor).transparent(2),n=!t.equals(this._insertColor)||!i.equals(this._removeColor);return this._insertColor=t,this._removeColor=i,n}getEditorsDiffDecorations(e,t,i,n,o,s,r){o=o.sort((e,t)=>e.afterLineNumber-t.afterLineNumber),n=n.sort((e,t)=>e.afterLineNumber-t.afterLineNumber) +;let a=this._getViewZones(e,n,o,s,r,i),l=this._getOriginalEditorDecorations(e,t,i,s,r),d=this._getModifiedEditorDecorations(e,t,i,s,r);return{original:{decorations:l.decorations,overviewZones:l.overviewZones,zones:a.original},modified:{decorations:d.decorations,overviewZones:d.overviewZones,zones:a.modified}}}}class G{constructor(e){this._source=e,this._index=-1,this.current=null,this.advance()}advance(){this._index++,this._indexe.afterLineNumber-t.afterLineNumber,d=(e,t)=>{if(null===t.domNode&&e.length>0){let i=e[e.length-1];if(i.afterLineNumber===t.afterLineNumber&&null===i.domNode)return void(i.heightInLines+=t.heightInLines)}e.push(t)},c=new G(this.modifiedForeignVZ),h=new G(this.originalForeignVZ) +;for(let u=0,g=this.lineChanges.length;u<=g;u++){let p=u0?-1:0),s=p.modifiedStartLineNumber+(p.modifiedEndLineNumber>0?-1:0),n=p.originalEndLineNumber>0?p.originalEndLineNumber-p.originalStartLineNumber+1:0,i=p.modifiedEndLineNumber>0?p.modifiedEndLineNumber-p.modifiedStartLineNumber+1:0,r=Math.max(p.originalStartLineNumber,p.originalEndLineNumber),a=Math.max(p.modifiedStartLineNumber,p.modifiedEndLineNumber)):(r=o+=1e7+n,a=s+=1e7+i);let m=[],f=[];for(;c.current&&c.current.afterLineNumber<=a;){let e;e=c.current.afterLineNumber<=s?o-s+c.current.afterLineNumber:r;let t=null;p&&p.modifiedStartLineNumber<=c.current.afterLineNumber&&c.current.afterLineNumber<=p.modifiedEndLineNumber&&(t=this._createOriginalMarginDomNodeForModifiedForeignViewZoneInAddedRegion()),m.push({afterLineNumber:e,heightInLines:c.current.height/this.modifiedLineHeight,domNode:null,marginDomNode:t}),c.advance()} +for(;h.current&&h.current.afterLineNumber<=r;){let e;e=h.current.afterLineNumber<=o?s-o+h.current.afterLineNumber:a,f.push({afterLineNumber:e,heightInLines:h.current.height/this.originalLineHeight,domNode:null}),h.advance()}if(null!==p&&te(p)){let e=this._produceOriginalFromDiff(p,n,i);e&&m.push(e)}if(null!==p&&ie(p)){let e=this._produceModifiedFromDiff(p,n,i);e&&f.push(e)}let _=0,v=0;for(m=m.sort(l),f=f.sort(l);_=n.heightInLines?(i.heightInLines-=n.heightInLines,v++):(n.heightInLines-=i.heightInLines,_++)}for(;_(e.domNode||(e.domNode=function(){let e=document.createElement("div");return e.className="diagonal-fill",e}()),e))}}function Z(e,t,i,n,o){ +return{range:new v.Range(e,t,i,n),options:o}}t.createDecoration=Z,t.DECORATIONS={charDelete:S.ModelDecorationOptions.register({className:"char-delete"}),charDeleteWholeLine:S.ModelDecorationOptions.register({className:"char-delete",isWholeLine:!0}),charInsert:S.ModelDecorationOptions.register({className:"char-insert"}),charInsertWholeLine:S.ModelDecorationOptions.register({className:"char-insert",isWholeLine:!0}),lineInsert:S.ModelDecorationOptions.register({className:"line-insert",marginClassName:"line-insert",isWholeLine:!0}),lineInsertWithSign:S.ModelDecorationOptions.register({className:"line-insert",linesDecorationsClassName:"insert-sign "+U.classNames,marginClassName:"line-insert",isWholeLine:!0}),lineDelete:S.ModelDecorationOptions.register({className:"line-delete",marginClassName:"line-delete",isWholeLine:!0}),lineDeleteWithSign:S.ModelDecorationOptions.register({className:"line-delete",linesDecorationsClassName:"delete-sign "+$.classNames,marginClassName:"line-delete",isWholeLine:!0}), +lineDeleteMargin:S.ModelDecorationOptions.register({marginClassName:"line-delete"})};class X extends q{constructor(e,t){super(e),this._disableSash=!1===t,this._sashRatio=null,this._sashPosition=null,this._startSashPosition=null,this._sash=this._register(new s.Sash(this._dataSource.getContainerDomNode(),this,{orientation:0})),this._disableSash&&(this._sash.state=0),this._sash.onDidStart(()=>this.onSashDragStart()),this._sash.onDidChange(e=>this.onSashDrag(e)),this._sash.onDidEnd(()=>this.onSashDragEnd()),this._sash.onDidReset(()=>this.onSashReset())}setEnableSplitViewResizing(e){let t=!1===e;this._disableSash!==t&&(this._disableSash=t,this._sash.state=this._disableSash?0:3)}layout(e=this._sashRatio){let t=this._dataSource.getWidth()-j.ENTIRE_DIFF_OVERVIEW_WIDTH,i=Math.floor((e||.5)*t),n=Math.floor(.5*t);return i=this._disableSash?n:i||n,t>2*X.MINIMUM_EDITOR_WIDTH?(it-X.MINIMUM_EDITOR_WIDTH&&(i=t-X.MINIMUM_EDITOR_WIDTH)):i=n, +this._sashPosition!==i&&(this._sashPosition=i,this._sash.layout()),this._sashPosition}onSashDragStart(){this._startSashPosition=this._sashPosition}onSashDrag(e){let t=this._dataSource.getWidth()-j.ENTIRE_DIFF_OVERVIEW_WIDTH,i=this.layout((this._startSashPosition+(e.currentX-e.startX))/t);this._sashRatio=i/t,this._dataSource.relayoutEditors()}onSashDragEnd(){this._sash.layout()}onSashReset(){this._sashRatio=.5,this._dataSource.relayoutEditors(),this._sash.layout()}getVerticalSashTop(e){return 0}getVerticalSashLeft(e){return this._sashPosition}getVerticalSashHeight(e){return this._dataSource.getHeight()}_getViewZones(e,t,i,n,o){return new Q(e,t,n.getOption(51),i,o.getOption(51)).getViewZones()}_getOriginalEditorDecorations(e,i,n,o,s){const r=String(this._removeColor);let a={decorations:[],overviewZones:[]},l=o.getModel();for(let o=0,s=e.length;ot?{afterLineNumber:Math.max(e.originalStartLineNumber,e.originalEndLineNumber),heightInLines:i-t,domNode:null}:null}_produceModifiedFromDiff(e,t,i){return t>i?{afterLineNumber:Math.max(e.modifiedStartLineNumber,e.modifiedEndLineNumber),heightInLines:t-i,domNode:null}:null}}class J extends q{constructor(e,t){super(e),this.decorationsLeft=e.getOriginalEditor().getLayoutInfo().decorationsLeft,this._register(e.getOriginalEditor().onDidLayoutChange(t=>{this.decorationsLeft!==t.decorationsLeft&&(this.decorationsLeft=t.decorationsLeft,e.relayoutEditors())}))}setEnableSplitViewResizing(e){}_getViewZones(e,t,i,n,o,s){return new ee(e,t,i,n,o,s).getViewZones()}_getOriginalEditorDecorations(e,i,n,o,s){const r=String(this._removeColor);let a={decorations:[],overviewZones:[]} +;for(let i=0,n=e.length;i`])}h+=this.modifiedEditorOptions.get(85);let p=document.createElement("div");p.className=`view-lines line-delete ${z.MOUSE_CURSOR_TEXT_CSS_CLASS_NAME}`,p.innerHTML=o.build(),u.Configuration.applyFontInfoSlow(p,a);let m=document.createElement("div");return m.className="inline-deleted-margin-view-zone",m.innerHTML=s.join(""),u.Configuration.applyFontInfoSlow(m,a),{shouldNotShrink:!0,afterLineNumber:0===e.modifiedEndLineNumber?e.modifiedStartLineNumber:e.modifiedStartLineNumber-1,heightInLines:t,minWidthInPx:h*c,domNode:p,marginDomNode:m,diff:{originalStartLineNumber:e.originalStartLineNumber,originalEndLineNumber:e.originalEndLineNumber,modifiedStartLineNumber:e.modifiedStartLineNumber,modifiedEndLineNumber:e.modifiedEndLineNumber,originalContent:g}}}_renderOriginalLine(e,t,i,n,o,s,r){ +const a=t.getLineTokens(o),l=a.getLineContent(),d=i.get(36),c=E.LineDecoration.filter(s,o,1,l.length+1);r.appendASCIIString('
        ');const h=x.ViewLineRenderingData.isBasicASCII(l,t.mightContainNonBasicASCII()),u=x.ViewLineRenderingData.containsRTL(l,h,t.mightContainRTL()),g=L.renderViewLine(new L.RenderLineInput(d.isMonospace&&!i.get(24),d.canUseHalfwidthRightwardsArrow,l,!1,h,u,0,a,c,n,0,d.spaceWidth,d.middotWidth,d.wsmiddotWidth,i.get(95),i.get(80),i.get(74),i.get(37)!==_.EditorFontLigatures.OFF,null),r);r.appendASCIIString("
        ");const p=g.characterMapping.getAbsoluteOffsets();return p.length>0?p[p.length-1]:0}}function te(e){return e.modifiedEndLineNumber>0}function ie(e){return e.originalEndLineNumber>0}t.isChangeOrInsert=te,t.isChangeOrDelete=ie,R.registerThemingParticipant((e,t)=>{ +const i=e.getColor(M.diffInserted);i&&(t.addRule(`.monaco-editor .line-insert, .monaco-editor .char-insert { background-color: ${i}; }`),t.addRule(`.monaco-diff-editor .line-insert, .monaco-diff-editor .char-insert { background-color: ${i}; }`),t.addRule(`.monaco-editor .inline-added-margin-view-zone { background-color: ${i}; }`));const n=e.getColor(M.diffRemoved);n&&(t.addRule(`.monaco-editor .line-delete, .monaco-editor .char-delete { background-color: ${n}; }`),t.addRule(`.monaco-diff-editor .line-delete, .monaco-diff-editor .char-delete { background-color: ${n}; }`),t.addRule(`.monaco-editor .inline-deleted-margin-view-zone { background-color: ${n}; }`));const o=e.getColor(M.diffInsertedOutline);o&&t.addRule(`.monaco-editor .line-insert, .monaco-editor .char-insert { border: 1px ${"hc"===e.type?"dashed":"solid"} ${o}; }`);const s=e.getColor(M.diffRemovedOutline);s&&t.addRule(`.monaco-editor .line-delete, .monaco-editor .char-delete { border: 1px ${"hc"===e.type?"dashed":"solid"} ${s}; }`) +;const r=e.getColor(M.scrollbarShadow);r&&t.addRule(`.monaco-diff-editor.side-by-side .editor.modified { box-shadow: -6px 0 5px -5px ${r}; }`);const a=e.getColor(M.diffBorder);a&&t.addRule(`.monaco-diff-editor.side-by-side .editor.modified { border-left: 1px solid ${a}; }`);const l=e.getColor(M.scrollbarSliderBackground);l&&t.addRule(`\n\t\t\t.monaco-diff-editor .diffViewport {\n\t\t\t\tbackground: ${l};\n\t\t\t}\n\t\t`);const d=e.getColor(M.scrollbarSliderHoverBackground);d&&t.addRule(`\n\t\t\t.monaco-diff-editor .diffViewport:hover {\n\t\t\t\tbackground: ${d};\n\t\t\t}\n\t\t`);const c=e.getColor(M.scrollbarSliderActiveBackground);c&&t.addRule(`\n\t\t\t.monaco-diff-editor .diffViewport:active {\n\t\t\t\tbackground: ${c};\n\t\t\t}\n\t\t`);const h=e.getColor(M.diffDiagonalFill) +;t.addRule(`\n\t.monaco-editor .diagonal-fill {\n\t\tbackground-image: linear-gradient(\n\t\t\t-45deg,\n\t\t\t${h} 12.5%,\n\t\t\t#0000 12.5%, #0000 50%,\n\t\t\t${h} 50%, ${h} 62.5%,\n\t\t\t#0000 62.5%, #0000 100%\n\t\t);\n\t\tbackground-size: 8px 8px;\n\t}\n\t`)})})),define(t[178],i([0,1,37,27,138,28,17,10,32,14,62]),(function(e,t,i,n,o,s,r,d,c,h,u){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EmbeddedCodeEditorWidget=void 0;let g=class extends o.CodeEditorWidget{constructor(e,t,i,n,o,s,r,a,l,d){super(e,Object.assign(Object.assign({},i.getRawOptions()),{overflowWidgetsDomNode:i.getOverflowWidgetsDomNode()}),{},n,o,s,r,a,l,d),this._parentEditor=i,this._overwriteOptions=t,super.updateOptions(this._overwriteOptions),this._register(i.onDidChangeConfiguration(e=>this._onParentConfigurationChanged(e)))}getParentEditor(){return this._parentEditor}_onParentConfigurationChanged(e){super.updateOptions(this._parentEditor.getRawOptions()),super.updateOptions(this._overwriteOptions)}updateOptions(e){ +i.mixin(this._overwriteOptions,e,!0),super.updateOptions(this._overwriteOptions)}};g=a([l(3,d.IInstantiationService),l(4,n.ICodeEditorService),l(5,s.ICommandService),l(6,r.IContextKeyService),l(7,h.IThemeService),l(8,c.INotificationService),l(9,u.IAccessibilityService)],g),t.EmbeddedCodeEditorWidget=g})),define(t[599],i([0,1,82,2,52,14,49,44,3,40,4,21]),(function(e,t,i,n,o,s,r,d,c,h,u,g){"use strict";function p(e){return e.toString()}Object.defineProperty(t,"__esModule",{value:!0}),t.MarkerDecorationsService=void 0;class m extends n.Disposable{constructor(e){super(),this.model=e,this._markersData=new Map,this._register(n.toDisposable(()=>{this.model.deltaDecorations([...this._markersData.keys()],[]),this._markersData.clear()}))}update(e,t){const i=[...this._markersData.keys()];this._markersData.clear();const n=this.model.deltaDecorations(i,t);for(let t=0;tthis._onModelAdded(e)),this._register(e.onModelAdded(this._onModelAdded,this)),this._register(e.onModelRemoved(this._onModelRemoved,this)),this._register(this._markerService.onMarkerChanged(this._handleMarkerChange,this))}dispose(){super.dispose(),this._markerDecorations.forEach(e=>e.dispose()),this._markerDecorations.clear()}getMarker(e,t){const i=this._markerDecorations.get(p(e.uri));return i&&i.getMarker(t)||null}_handleMarkerChange(e){e.forEach(e=>{const t=this._markerDecorations.get(p(e));t&&this._updateDecorations(t)})}_onModelAdded(e){const t=new m(e);this._markerDecorations.set(p(e.uri),t),this._updateDecorations(t)}_onModelRemoved(e){const t=this._markerDecorations.get(p(e.uri));t&&(t.dispose(),this._markerDecorations.delete(p(e.uri))), +e.uri.scheme!==h.Schemas.inMemory&&e.uri.scheme!==h.Schemas.internal&&e.uri.scheme!==h.Schemas.vscode||this._markerService&&this._markerService.read({resource:e.uri}).map(e=>e.owner).forEach(t=>this._markerService.remove(t,[e.uri]))}_updateDecorations(e){const t=this._markerService.read({resource:e.model.uri,take:500});let i=t.map(t=>({range:this._createDecorationRange(e.model,t),options:this._createDecorationOption(t)}));e.update(t,i)&&this._onDidChangeMarker.fire(e.model)}_createDecorationRange(e,t){let n=c.Range.lift(t);if(t.severity!==i.MarkerSeverity.Hint||this._hasMarkerTag(t,1)||this._hasMarkerTag(t,2)||(n=n.setEndPosition(n.startLineNumber,n.startColumn+2)),(n=e.validateRange(n)).isEmpty()){let t=e.getWordAtPosition(n.getStartPosition());if(t)n=new c.Range(n.startLineNumber,t.startColumn,n.endLineNumber,t.endColumn);else{let t=e.getLineLastNonWhitespaceColumn(n.startLineNumber)||e.getLineMaxColumn(n.startLineNumber) +;1===t||(n=n.endColumn>=t?new c.Range(n.startLineNumber,t-1,n.endLineNumber,t):new c.Range(n.startLineNumber,n.startColumn,n.endLineNumber,n.endColumn+1))}}else if(t.endColumn===Number.MAX_VALUE&&1===t.startColumn&&n.startLineNumber===n.endLineNumber){let i=e.getLineFirstNonWhitespaceColumn(t.startLineNumber);i=0}};f=a([l(0,d.IModelService),l(1,i.IMarkerService)],f),t.MarkerDecorationsService=f})),define(t[600],i([0,1,446,15,2,11,13,3,20,22,52,31,49,21,14,33,325]),(function(e,t,i,n,o,s,r,a,l,d,c,h,u,g,p,m){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BracketMatchingController=void 0;const f=g.registerColor("editorOverviewRuler.bracketMatchForeground",{dark:"#A0A0A0",light:"#A0A0A0",hc:"#A0A0A0"},i.localize(0,null));class _ extends s.EditorAction{constructor(){super({id:"editor.action.jumpToBracket",label:i.localize(1,null),alias:"Go to Bracket",precondition:void 0,kbOpts:{ +kbExpr:d.EditorContextKeys.editorTextFocus,primary:3160,weight:100}})}run(e,t){let i=b.get(t);i&&i.jumpToBracket()}}class v extends s.EditorAction{constructor(){super({id:"editor.action.selectToBracket",label:i.localize(2,null),alias:"Select to Bracket",precondition:void 0,description:{description:"Select to Bracket",args:[{name:"args",schema:{type:"object",properties:{selectBrackets:{type:"boolean",default:!0}}}}]}})}run(e,t,i){const n=b.get(t);if(!n)return;let o=!0;i&&!1===i.selectBrackets&&(o=!1),n.selectToBracket(o)}}class C{constructor(e,t,i){this.position=e,this.brackets=t,this.options=i}}class b extends o.Disposable{constructor(e){super(),this._editor=e,this._lastBracketsData=[],this._lastVersionId=0,this._decorations=[],this._updateBracketsSoon=this._register(new n.RunOnceScheduler(()=>this._updateBrackets(),50)),this._matchBrackets=this._editor.getOption(55),this._updateBracketsSoon.schedule(),this._register(e.onDidChangeCursorPosition(e=>{ +"never"!==this._matchBrackets&&this._updateBracketsSoon.schedule()})),this._register(e.onDidChangeModelContent(e=>{this._updateBracketsSoon.schedule()})),this._register(e.onDidChangeModel(e=>{this._lastBracketsData=[],this._decorations=[],this._updateBracketsSoon.schedule()})),this._register(e.onDidChangeModelLanguageConfiguration(e=>{this._lastBracketsData=[],this._updateBracketsSoon.schedule()})),this._register(e.onDidChangeConfiguration(e=>{e.hasChanged(55)&&(this._matchBrackets=this._editor.getOption(55),this._decorations=this._editor.deltaDecorations(this._decorations,[]),this._lastBracketsData=[],this._lastVersionId=0,this._updateBracketsSoon.schedule())}))}static get(e){return e.getContribution(b.ID)}jumpToBracket(){if(!this._editor.hasModel())return;const e=this._editor.getModel(),t=this._editor.getSelections().map(t=>{const i=t.getStartPosition(),n=e.matchBracket(i);let o=null;if(n)n[0].containsPosition(i)?o=n[1].getStartPosition():n[1].containsPosition(i)&&(o=n[0].getStartPosition());else{ +const t=e.findEnclosingBrackets(i);if(t)o=t[0].getStartPosition();else{const t=e.findNextBracket(i);t&&t.range&&(o=t.range.getStartPosition())}}return o?new l.Selection(o.lineNumber,o.column,o.lineNumber,o.column):new l.Selection(i.lineNumber,i.column,i.lineNumber,i.column)});this._editor.setSelections(t),this._editor.revealRange(t[0])}selectToBracket(e){if(!this._editor.hasModel())return;const t=this._editor.getModel(),i=[];this._editor.getSelections().forEach(n=>{const o=n.getStartPosition();let s=t.matchBracket(o);if(!s&&!(s=t.findEnclosingBrackets(o))){const e=t.findNextBracket(o);e&&e.range&&(s=t.matchBracket(e.range.getStartPosition()))}let r=null,d=null;if(s){s.sort(a.Range.compareRangesUsingStarts);const[t,i]=s;r=e?t.getStartPosition():t.getEndPosition(),d=e?i.getEndPosition():i.getStartPosition()}r&&d&&i.push(new l.Selection(r.lineNumber,r.column,d.lineNumber,d.column))}),i.length>0&&(this._editor.setSelections(i),this._editor.revealRange(i[0]))}_updateBrackets(){ +if("never"===this._matchBrackets)return;this._recomputeBrackets();let e=[],t=0;for(const i of this._lastBracketsData){let n=i.brackets;n&&(e[t++]={range:n[0],options:i.options},e[t++]={range:n[1],options:i.options})}this._decorations=this._editor.deltaDecorations(this._decorations,e)}_recomputeBrackets(){if(!this._editor.hasModel())return this._lastBracketsData=[],void(this._lastVersionId=0);const e=this._editor.getSelections();if(e.length>100)return this._lastBracketsData=[],void(this._lastVersionId=0);const t=this._editor.getModel(),i=t.getVersionId();let n=[];this._lastVersionId===i&&(n=this._lastBracketsData);let o=[],s=0;for(let t=0,i=e.length;t1&&o.sort(r.Position.compare);let a=[],l=0,d=0,c=n.length;for(let e=0,i=o.length;e{const i=e.getColor(u.editorBracketMatchBackground);i&&t.addRule(`.monaco-editor .bracket-match { background-color: ${i}; }`);const n=e.getColor(u.editorBracketMatchBorder);n&&t.addRule(`.monaco-editor .bracket-match { border: 1px solid ${n}; }`)}),m.MenuRegistry.appendMenuItem(m.MenuId.MenubarGoMenu,{ +group:"5_infile_nav",command:{id:"editor.action.jumpToBracket",title:i.localize(3,null)},order:2})})),define(t[601],i([0,1,7,86,4,2,31,451,35,14,21,58,26,326]),(function(e,t,i,n,o,s,r,d,c,h,u,g,p){"use strict";var m;Object.defineProperty(t,"__esModule",{value:!0}),t.LightBulbWidget=void 0,function(e){e.Hidden={type:0};e.Showing=class{constructor(e,t,i,n){this.actions=e,this.trigger=t,this.editorPosition=i,this.widgetPosition=n,this.type=1}}}(m||(m={}));let f=class e extends s.Disposable{constructor(e,t,s,r){super(),this._editor=e,this._quickFixActionId=t,this._preferredFixActionId=s,this._keybindingService=r,this._onClick=this._register(new o.Emitter),this.onClick=this._onClick.event,this._state=m.Hidden,this._domNode=document.createElement("div"),this._domNode.className=p.Codicon.lightBulb.classNames,this._editor.addContentWidget(this),this._register(this._editor.onDidChangeModelContent(e=>{const t=this._editor.getModel() +;(1!==this.state.type||!t||this.state.editorPosition.lineNumber>=t.getLineCount())&&this.hide()})),g.Gesture.ignoreTarget(this._domNode),this._register(i.addStandardDisposableGenericMouseDownListner(this._domNode,e=>{if(1!==this.state.type)return;this._editor.focus(),e.preventDefault();const{top:t,height:n}=i.getDomNodePagePosition(this._domNode),o=this._editor.getOption(51);let s=Math.floor(o/3);null!==this.state.widgetPosition.position&&this.state.widgetPosition.position.lineNumber{if(1!=(1&e.buttons))return;this.hide();const t=new n.GlobalMouseMoveMonitor;t.startMonitoring(e.target,e.buttons,n.standardMouseMoveMerger,()=>{},()=>{t.dispose()})})),this._register(this._editor.onDidChangeConfiguration(e=>{e.hasChanged(49)&&!this._editor.getOption(49).enabled&&this.hide()})), +this._updateLightBulbTitleAndIcon(),this._register(this._keybindingService.onDidUpdateKeybindings(this._updateLightBulbTitleAndIcon,this))}dispose(){super.dispose(),this._editor.removeContentWidget(this)}getId(){return"LightBulbWidget"}getDomNode(){return this._domNode}getPosition(){return 1===this._state.type?this._state.widgetPosition:null}update(t,i,n){if(t.validActions.length<=0)return this.hide();const o=this._editor.getOptions();if(!o.get(49).enabled)return this.hide();const s=this._editor.getModel();if(!s)return this.hide();const{lineNumber:a,column:l}=s.validatePosition(n),d=s.getOptions().tabSize,c=o.get(36),h=s.getLineContent(a),u=r.TextModel.computeIndentLevel(h,d),g=e=>e>2&&this._editor.getTopForLineNumber(e)===this._editor.getTopForLineNumber(e-1);let p=a;if(!(c.spaceWidth*u>22))if(a>1&&!g(a-1))p-=1;else if(g(a+1)){if(l*c.spaceWidth<22)return this.hide()}else p+=1;this.state=new m.Showing(t,i,n,{position:{lineNumber:p,column:1},preference:e._posPref}),this._editor.layoutContentWidget(this)} +hide(){this.state=m.Hidden,this._editor.layoutContentWidget(this)}get state(){return this._state}set state(e){this._state=e,this._updateLightBulbTitleAndIcon()}_updateLightBulbTitleAndIcon(){if(1===this.state.type&&this.state.actions.hasAutoFix){i.removeClasses(this._domNode,p.Codicon.lightBulb.classNames),i.addClasses(this._domNode,p.Codicon.lightbulbAutofix.classNames);const e=this._keybindingService.lookupKeybinding(this._preferredFixActionId);if(e)return void(this.title=d.localize(0,null,e.getLabel()))}i.removeClasses(this._domNode,p.Codicon.lightbulbAutofix.classNames),i.addClasses(this._domNode,p.Codicon.lightBulb.classNames);const e=this._keybindingService.lookupKeybinding(this._quickFixActionId);this.title=e?d.localize(1,null,e.getLabel()):d.localize(2,null)}set title(e){this._domNode.title=e}};f._posPref=[0],f=a([l(3,c.IKeybindingService)],f),t.LightBulbWidget=f,h.registerThemingParticipant((e,t)=>{const i=e.getColor(u.editorLightBulbForeground) +;i&&t.addRule(`\n\t\t.monaco-editor .contentWidgets ${p.Codicon.lightBulb.cssSelector} {\n\t\t\tcolor: ${i};\n\t\t}`);const n=e.getColor(u.editorLightBulbAutoFixForeground);n&&t.addRule(`\n\t\t.monaco-editor .contentWidgets ${p.Codicon.lightbulbAutofix.cssSelector} {\n\t\t\tcolor: ${n};\n\t\t}`)})})),define(t[602],i([0,1,26,8,3,31,49,21,14,327]),(function(e,t,i,n,o,s,r,a,l){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CodeLensWidget=t.CodeLensHelper=void 0;class d{constructor(e,t){this.afterLineNumber=e,this._onHeight=t,this.heightInLines=1,this.suppressMouseDown=!0,this.domNode=document.createElement("div")}onComputedHeight(e){void 0===this._lastHeight?this._lastHeight=e:this._lastHeight!==e&&(this._lastHeight=e,this._onHeight())}}class c{constructor(e,t,i){this.allowEditorOverflow=!1,this.suppressMouseDown=!0,this._commands=new Map,this._isEmpty=!0,this._editor=e,this._id=`codelens.widget-${c._idPool++}`,this.updatePosition(i),this._domNode=document.createElement("span"), +this._domNode.className=`codelens-decoration ${t}`}withCommands(e,t){this._commands.clear();let o="",s=!1;for(let t=0;t${s}`,this._commands.set(String(t),r.command)):o+=`${s}`,t+1 | 
        ")}}s?(o||(o=" "),this._domNode.innerHTML=o,this._isEmpty&&t&&this._domNode.classList.add("fadein"),this._isEmpty=!1):this._domNode.innerHTML="no commands"}getCommand(e){return e.parentElement===this._domNode?this._commands.get(e.id):void 0}getId(){return this._id}getDomNode(){return this._domNode}updatePosition(e){const t=this._editor.getModel().getLineFirstNonWhitespaceColumn(e);this._widgetPosition={position:{lineNumber:e,column:t},preference:[1]}}getPosition(){return this._widgetPosition||null}}c._idPool=0;t.CodeLensHelper=class{constructor(){this._removeDecorations=[],this._addDecorations=[],this._addDecorationsCallbacks=[]} +addDecoration(e,t){this._addDecorations.push(e),this._addDecorationsCallbacks.push(t)}removeDecoration(e){this._removeDecorations.push(e)}commit(e){let t=e.deltaDecorations(this._removeDecorations,this._addDecorations);for(let e=0,i=t.length;e{e.symbol.command&&c.push(e.symbol),n.addDecoration({range:e.symbol.range,options:s.ModelDecorationOptions.EMPTY},e=>this._decorationIds[t]=e),l=l?o.Range.plusRange(l,e.symbol.range):o.Range.lift(e.symbol.range)}),this._viewZone=new d(l.startLineNumber-1,a),this._viewZoneId=r.addZone(this._viewZone),c.length>0&&(this._createContentWidgetIfNecessary(),this._contentWidget.withCommands(c,!1))}_createContentWidgetIfNecessary(){this._contentWidget||(this._contentWidget=new c(this._editor,this._className,this._viewZone.afterLineNumber+1), +this._editor.addContentWidget(this._contentWidget))}dispose(e,t){this._decorationIds.forEach(e.removeDecoration,e),this._decorationIds=[],t&&t.removeZone(this._viewZoneId),this._contentWidget&&(this._editor.removeContentWidget(this._contentWidget),this._contentWidget=void 0),this._isDisposed=!0}isDisposed(){return this._isDisposed}isValid(){return this._decorationIds.some((e,t)=>{const i=this._editor.getModel().getDecorationRange(e),n=this._data[t].symbol;return!(!i||o.Range.isEmpty(n.range)!==i.isEmpty())})}updateCodeLensSymbols(e,t){this._decorationIds.forEach(t.removeDecoration,t),this._decorationIds=[],this._data=e,this._data.forEach((e,i)=>{t.addDecoration({range:e.symbol.range,options:s.ModelDecorationOptions.EMPTY},e=>this._decorationIds[i]=e)})}computeIfNecessary(e){if(!this._viewZone.domNode.hasAttribute("monaco-visible-view-zone"))return null;for(let t=0;t{const i=e.getColor(r.editorCodeLensForeground);i&&(t.addRule(`.monaco-editor .codelens-decoration { color: ${i}; }`),t.addRule(`.monaco-editor .codelens-decoration .codicon { color: ${i}; }`)) +;const n=e.getColor(a.editorActiveLinkForeground);n&&(t.addRule(`.monaco-editor .codelens-decoration > a:hover { color: ${n} !important; }`),t.addRule(`.monaco-editor .codelens-decoration > a:hover .codicon { color: ${n} !important; }`))})})),define(t[603],i([0,1,15,12,2,68,11,18,243,602,28,32,563,7,113,75,452,22]),(function(e,t,i,n,o,s,d,c,h,u,g,p,m,f,_,v,C,b){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CodeLensContribution=void 0;let S=class{constructor(e,t,i,n){this._editor=e,this._commandService=t,this._notificationService=i,this._codeLensCache=n,this._globalToDispose=new o.DisposableStore,this._localToDispose=new o.DisposableStore,this._lenses=[],this._oldCodeLensModels=new o.DisposableStore,this._modelChangeCounter=0,this._isEnabled=this._editor.getOption(11),this._globalToDispose.add(this._editor.onDidChangeModel(()=>this._onModelChange())),this._globalToDispose.add(this._editor.onDidChangeModelLanguage(()=>this._onModelChange())), +this._globalToDispose.add(this._editor.onDidChangeConfiguration(()=>{const e=this._isEnabled;this._isEnabled=this._editor.getOption(11),e!==this._isEnabled&&this._onModelChange()})),this._globalToDispose.add(c.CodeLensProviderRegistry.onDidChange(this._onModelChange,this)),this._globalToDispose.add(this._editor.onDidChangeConfiguration(e=>{e.hasChanged(36)&&this._updateLensStyle()})),this._onModelChange(),this._styleClassName="_"+_.hash(this._editor.getId()).toString(16),this._styleElement=f.createStyleSheet(f.isInShadowDOM(this._editor.getContainerDomNode())?this._editor.getContainerDomNode():void 0),this._updateLensStyle()}dispose(){this._localDispose(),this._globalToDispose.dispose(),this._oldCodeLensModels.dispose(),o.dispose(this._currentCodeLensModel)}_updateLensStyle(){ +const e=this._editor.getOptions(),t=e.get(36),i=e.get(51),n=Math.round(1.1*i),o=Math.round(.9*t.fontSize),s=`\n\t\t.monaco-editor .codelens-decoration.${this._styleClassName} { height: ${n}px; line-height: ${i}px; font-size: ${o}px; padding-right: ${Math.round(.45*t.fontSize)}px;}\n\t\t.monaco-editor .codelens-decoration.${this._styleClassName} > a > .codicon { line-height: ${i}px; font-size: ${o}px; }\n\t\t`;this._styleElement.textContent=s}_localDispose(){this._currentFindCodeLensSymbolsPromise&&(this._currentFindCodeLensSymbolsPromise.cancel(),this._currentFindCodeLensSymbolsPromise=void 0,this._modelChangeCounter++),this._currentResolveCodeLensSymbolsPromise&&(this._currentResolveCodeLensSymbolsPromise.cancel(),this._currentResolveCodeLensSymbolsPromise=void 0),this._localToDispose.clear(),this._oldCodeLensModels.clear(),o.dispose(this._currentCodeLensModel)}_onModelChange(){this._localDispose();const e=this._editor.getModel();if(!e)return;if(!this._isEnabled)return;const t=this._codeLensCache.get(e) +;if(t&&this._renderCodeLensSymbols(t),!c.CodeLensProviderRegistry.has(e))return void(t&&this._localToDispose.add(i.disposableTimeout(()=>{const i=this._codeLensCache.get(e);t===i&&(this._codeLensCache.delete(e),this._onModelChange())},3e4)));for(const t of c.CodeLensProviderRegistry.all(e))if("function"==typeof t.onDidChange){let e=t.onDidChange(()=>a.schedule());this._localToDispose.add(e)}const r=this._detectVisibleLenses=new i.RunOnceScheduler(()=>this._onViewportChanged(),250),a=new i.RunOnceScheduler(()=>{const t=++this._modelChangeCounter;this._currentFindCodeLensSymbolsPromise&&this._currentFindCodeLensSymbolsPromise.cancel(),this._currentFindCodeLensSymbolsPromise=i.createCancelablePromise(t=>h.getCodeLensData(e,t)),this._currentFindCodeLensSymbolsPromise.then(i=>{t===this._modelChangeCounter&&(this._currentCodeLensModel&&this._oldCodeLensModels.add(this._currentCodeLensModel),this._currentCodeLensModel=i,this._codeLensCache.put(e,i),this._renderCodeLensSymbols(i),r.schedule())},n.onUnexpectedError) +},250);this._localToDispose.add(a),this._localToDispose.add(r),this._localToDispose.add(this._editor.onDidChangeModelContent(()=>{this._editor.changeDecorations(e=>{this._editor.changeViewZones(t=>{let i=[],n=-1;this._lenses.forEach(e=>{e.isValid()&&n!==e.getLineNumber()?(e.update(t),n=e.getLineNumber()):i.push(e)});let o=new u.CodeLensHelper;i.forEach(e=>{e.dispose(o,t),this._lenses.splice(this._lenses.indexOf(e),1)}),o.commit(e)})}),r.schedule(),a.schedule()})),this._localToDispose.add(this._editor.onDidScrollChange(e=>{e.scrollTopChanged&&this._lenses.length>0&&r.schedule()})),this._localToDispose.add(this._editor.onDidLayoutChange(()=>{r.schedule()})),this._localToDispose.add(o.toDisposable(()=>{if(this._editor.getModel()){const e=s.StableEditorScrollState.capture(this._editor);this._editor.changeDecorations(e=>{this._editor.changeViewZones(t=>{this._disposeAllLenses(e,t)})}),e.restore(this._editor)}else this._disposeAllLenses(void 0,void 0)})),this._localToDispose.add(this._editor.onMouseUp(e=>{ +if(9!==e.target.type)return;let t=e.target.element;if("SPAN"===(null==t?void 0:t.tagName)&&(t=t.parentElement),"A"===(null==t?void 0:t.tagName))for(const e of this._lenses){let i=e.getCommand(t);if(i){this._commandService.executeCommand(i.id,...i.arguments||[]).catch(e=>this._notificationService.error(e));break}}})),a.schedule()}_disposeAllLenses(e,t){const i=new u.CodeLensHelper;for(const e of this._lenses)e.dispose(i,t);e&&i.commit(e),this._lenses=[]}_renderCodeLensSymbols(e){if(!this._editor.hasModel())return;let t,i=this._editor.getModel().getLineCount(),n=[];for(let o of e.lenses){let e=o.symbol.range.startLineNumber;e<1||e>i||(t&&t[t.length-1].symbol.range.startLineNumber===e?t.push(o):(t=[o],n.push(t)))}const o=s.StableEditorScrollState.capture(this._editor);this._editor.changeDecorations(e=>{this._editor.changeViewZones(t=>{const i=new u.CodeLensHelper;let o=0,s=0;for(;sthis._detectVisibleLenses&&this._detectVisibleLenses.schedule())),o++,s++)}for(;othis._detectVisibleLenses&&this._detectVisibleLenses.schedule())),s++;i.commit(e)})}),o.restore(this._editor)}_onViewportChanged(){this._currentResolveCodeLensSymbolsPromise&&(this._currentResolveCodeLensSymbolsPromise.cancel(),this._currentResolveCodeLensSymbolsPromise=void 0);const e=this._editor.getModel();if(!e)return;const t=[],o=[];if(this._lenses.forEach(i=>{const n=i.computeIfNecessary(e);n&&(t.push(n),o.push(i))}),0===t.length)return;const s=i.createCancelablePromise(i=>{const s=t.map((t,s)=>{ +const r=new Array(t.length),a=t.map((t,o)=>t.symbol.command||"function"!=typeof t.provider.resolveCodeLens?(r[o]=t.symbol,Promise.resolve(void 0)):Promise.resolve(t.provider.resolveCodeLens(e,t.symbol,i)).then(e=>{r[o]=e},n.onUnexpectedExternalError));return Promise.all(a).then(()=>{i.isCancellationRequested||o[s].isDisposed()||o[s].updateCommands(r)})});return Promise.all(s)});this._currentResolveCodeLensSymbolsPromise=s,this._currentResolveCodeLensSymbolsPromise.then(()=>{this._currentCodeLensModel&&this._codeLensCache.put(e,this._currentCodeLensModel),this._oldCodeLensModels.clear(),s===this._currentResolveCodeLensSymbolsPromise&&(this._currentResolveCodeLensSymbolsPromise=void 0)},e=>{n.onUnexpectedError(e),s===this._currentResolveCodeLensSymbolsPromise&&(this._currentResolveCodeLensSymbolsPromise=void 0)})}getLenses(){return this._lenses}};S.ID="css.editor.codeLens",S=a([l(1,g.ICommandService),l(2,p.INotificationService),l(3,m.ICodeLensCache)],S),t.CodeLensContribution=S, +d.registerEditorContribution(S.ID,S),d.registerEditorAction(class extends d.EditorAction{constructor(){super({id:"codelens.showLensesInCurrentLine",precondition:b.EditorContextKeys.hasCodeLensProvider,label:C.localize(0,null),alias:"Show CodeLens Commands For Current Line"})}run(e,t){return r(this,void 0,void 0,(function*(){if(!t.hasModel())return;const i=e.get(v.IQuickInputService),n=e.get(g.ICommandService),o=e.get(p.INotificationService),s=t.getSelection().positionLineNumber,r=t.getContribution(S.ID),a=[];for(let e of r.getLenses())if(e.getLineNumber()===s)for(let t of e.getItems()){const{command:e}=t.symbol;e&&a.push({label:e.title,command:e})}if(0===a.length)return;const l=yield i.pick(a,{canPickMany:!1});if(l)try{yield n.executeCommand(l.command.id,...l.command.arguments||[])}catch(e){o.error(e)}}))}})})),define(t[604],i([0,1,36,7,86,54,29,4,2,21,14,328]),(function(e,t,i,n,o,s,r,a,l,d,c){"use strict";Object.defineProperty(t,"__esModule",{value:!0}), +t.ColorPickerWidget=t.ColorPickerBody=t.ColorPickerHeader=void 0;const h=n.$;class u extends l.Disposable{constructor(e,t,i){super(),this.model=t,this.domNode=h(".colorpicker-header"),n.append(e,this.domNode),this.pickedColorNode=n.append(this.domNode,h(".picked-color"));const o=n.append(this.domNode,h(".original-color"));o.style.backgroundColor=r.Color.Format.CSS.format(this.model.originalColor)||"",this.backgroundColor=i.getColorTheme().getColor(d.editorHoverBackground)||r.Color.white,this._register(c.registerThemingParticipant((e,t)=>{this.backgroundColor=e.getColor(d.editorHoverBackground)||r.Color.white})),this._register(n.addDisposableListener(this.pickedColorNode,n.EventType.CLICK,()=>this.model.selectNextColorPresentation())),this._register(n.addDisposableListener(o,n.EventType.CLICK,()=>{this.model.color=this.model.originalColor,this.model.flushColor()})),this._register(t.onDidChangeColor(this.onDidChangeColor,this)),this._register(t.onDidChangePresentation(this.onDidChangePresentation,this)), +this.pickedColorNode.style.backgroundColor=r.Color.Format.CSS.format(t.color)||"",n.toggleClass(this.pickedColorNode,"light",t.color.rgba.a<.5?this.backgroundColor.isLighter():t.color.isLighter())}onDidChangeColor(e){this.pickedColorNode.style.backgroundColor=r.Color.Format.CSS.format(e)||"",n.toggleClass(this.pickedColorNode,"light",e.rgba.a<.5?this.backgroundColor.isLighter():e.isLighter()),this.onDidChangePresentation()}onDidChangePresentation(){this.pickedColorNode.textContent=this.model.presentation?this.model.presentation.label:""}}t.ColorPickerHeader=u;class g extends l.Disposable{constructor(e,t,i){super(),this.model=t,this.pixelRatio=i,this.domNode=h(".colorpicker-body"),n.append(e,this.domNode),this.saturationBox=new p(this.domNode,this.model,this.pixelRatio),this._register(this.saturationBox),this._register(this.saturationBox.onDidChange(this.onDidSaturationValueChange,this)),this._register(this.saturationBox.onColorFlushed(this.flushColor,this)),this.opacityStrip=new f(this.domNode,this.model), +this._register(this.opacityStrip),this._register(this.opacityStrip.onDidChange(this.onDidOpacityChange,this)),this._register(this.opacityStrip.onColorFlushed(this.flushColor,this)),this.hueStrip=new _(this.domNode,this.model),this._register(this.hueStrip),this._register(this.hueStrip.onDidChange(this.onDidHueChange,this)),this._register(this.hueStrip.onColorFlushed(this.flushColor,this))}flushColor(){this.model.flushColor()}onDidSaturationValueChange({s:e,v:t}){const i=this.model.color.hsva;this.model.color=new r.Color(new r.HSVA(i.h,e,t,i.a))}onDidOpacityChange(e){const t=this.model.color.hsva;this.model.color=new r.Color(new r.HSVA(t.h,t.s,t.v,e))}onDidHueChange(e){const t=this.model.color.hsva,i=360*(1-e);this.model.color=new r.Color(new r.HSVA(360===i?0:i,t.s,t.v,t.a))}layout(){this.saturationBox.layout(),this.opacityStrip.layout(),this.hueStrip.layout()}}t.ColorPickerBody=g;class p extends l.Disposable{constructor(e,t,i){super(),this.model=t,this.pixelRatio=i,this._onDidChange=new a.Emitter, +this.onDidChange=this._onDidChange.event,this._onColorFlushed=new a.Emitter,this.onColorFlushed=this._onColorFlushed.event,this.domNode=h(".saturation-wrap"),n.append(e,this.domNode),this.canvas=document.createElement("canvas"),this.canvas.className="saturation-box",n.append(this.domNode,this.canvas),this.selection=h(".saturation-selection"),n.append(this.domNode,this.selection),this.layout(),this._register(n.addDisposableGenericMouseDownListner(this.domNode,e=>this.onMouseDown(e))),this._register(this.model.onDidChangeColor(this.onDidChangeColor,this)),this.monitor=null}onMouseDown(e){this.monitor=this._register(new o.GlobalMouseMoveMonitor);const t=n.getDomNodePagePosition(this.domNode);e.target!==this.selection&&this.onDidChangePosition(e.offsetX,e.offsetY),this.monitor.startMonitoring(e.target,e.buttons,o.standardMouseMoveMerger,e=>this.onDidChangePosition(e.posx-t.left,e.posy-t.top),()=>null);const i=n.addDisposableGenericMouseUpListner(document,()=>{this._onColorFlushed.fire(),i.dispose(), +this.monitor&&(this.monitor.stopMonitoring(!0),this.monitor=null)},!0)}onDidChangePosition(e,t){const i=Math.max(0,Math.min(1,e/this.width)),n=Math.max(0,Math.min(1,1-t/this.height));this.paintSelection(i,n),this._onDidChange.fire({s:i,v:n})}layout(){this.width=this.domNode.offsetWidth,this.height=this.domNode.offsetHeight,this.canvas.width=this.width*this.pixelRatio,this.canvas.height=this.height*this.pixelRatio,this.paint();const e=this.model.color.hsva;this.paintSelection(e.s,e.v)}paint(){const e=this.model.color.hsva,t=new r.Color(new r.HSVA(e.h,1,1,1)),i=this.canvas.getContext("2d"),n=i.createLinearGradient(0,0,this.canvas.width,0);n.addColorStop(0,"rgba(255, 255, 255, 1)"),n.addColorStop(.5,"rgba(255, 255, 255, 0.5)"),n.addColorStop(1,"rgba(255, 255, 255, 0)");const o=i.createLinearGradient(0,0,0,this.canvas.height);o.addColorStop(0,"rgba(0, 0, 0, 0)"),o.addColorStop(1,"rgba(0, 0, 0, 1)"),i.rect(0,0,this.canvas.width,this.canvas.height),i.fillStyle=r.Color.Format.CSS.format(t),i.fill(),i.fillStyle=n, +i.fill(),i.fillStyle=o,i.fill()}paintSelection(e,t){this.selection.style.left=`${e*this.width}px`,this.selection.style.top=`${this.height-t*this.height}px`}onDidChangeColor(){this.monitor&&this.monitor.isMonitoring()||this.paint()}}class m extends l.Disposable{constructor(e,t){super(),this.model=t,this._onDidChange=new a.Emitter,this.onDidChange=this._onDidChange.event,this._onColorFlushed=new a.Emitter,this.onColorFlushed=this._onColorFlushed.event,this.domNode=n.append(e,h(".strip")),this.overlay=n.append(this.domNode,h(".overlay")),this.slider=n.append(this.domNode,h(".slider")),this.slider.style.top="0px",this._register(n.addDisposableGenericMouseDownListner(this.domNode,e=>this.onMouseDown(e))),this.layout()}layout(){this.height=this.domNode.offsetHeight-this.slider.offsetHeight;const e=this.getValue(this.model.color);this.updateSliderPosition(e)}onMouseDown(e){const t=this._register(new o.GlobalMouseMoveMonitor),i=n.getDomNodePagePosition(this.domNode);n.addClass(this.domNode,"grabbing"), +e.target!==this.slider&&this.onDidChangeTop(e.offsetY),t.startMonitoring(e.target,e.buttons,o.standardMouseMoveMerger,e=>this.onDidChangeTop(e.posy-i.top),()=>null);const s=n.addDisposableGenericMouseUpListner(document,()=>{this._onColorFlushed.fire(),s.dispose(),t.stopMonitoring(!0),n.removeClass(this.domNode,"grabbing")},!0)}onDidChangeTop(e){const t=Math.max(0,Math.min(1,1-e/this.height));this.updateSliderPosition(t),this._onDidChange.fire(t)}updateSliderPosition(e){this.slider.style.top=`${(1-e)*this.height}px`}}class f extends m{constructor(e,t){super(e,t),n.addClass(this.domNode,"opacity-strip"),this._register(t.onDidChangeColor(this.onDidChangeColor,this)),this.onDidChangeColor(this.model.color)}onDidChangeColor(e){const{r:t,g:i,b:n}=e.rgba,o=new r.Color(new r.RGBA(t,i,n,1)),s=new r.Color(new r.RGBA(t,i,n,0));this.overlay.style.background=`linear-gradient(to bottom, ${o} 0%, ${s} 100%)`}getValue(e){return e.hsva.a}}class _ extends m{constructor(e,t){super(e,t),n.addClass(this.domNode,"hue-strip")} +getValue(e){return 1-e.hsva.h/360}}class v extends s.Widget{constructor(e,t,n,o){super(),this.model=t,this.pixelRatio=n,this._register(i.onDidChangeZoomLevel(()=>this.layout()));const s=h(".colorpicker-widget");e.appendChild(s);const r=new u(s,this.model,o);this.body=new g(s,this.model,this.pixelRatio),this._register(r),this._register(this.body)}layout(){this.body.layout()}}t.ColorPickerWidget=v})),define(t[605],i([0,1,456,14,21,26,330,331]),(function(e,t,i,n,o,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}), +t.SYMBOL_ICON_VARIABLE_FOREGROUND=t.SYMBOL_ICON_UNIT_FOREGROUND=t.SYMBOL_ICON_TYPEPARAMETER_FOREGROUND=t.SYMBOL_ICON_TEXT_FOREGROUND=t.SYMBOL_ICON_STRUCT_FOREGROUND=t.SYMBOL_ICON_STRING_FOREGROUND=t.SYMBOL_ICON_SNIPPET_FOREGROUND=t.SYMBOL_ICON_REFERENCE_FOREGROUND=t.SYMBOL_ICON_PROPERTY_FOREGROUND=t.SYMBOL_ICON_PACKAGE_FOREGROUND=t.SYMBOL_ICON_OPERATOR_FOREGROUND=t.SYMBOL_ICON_OBJECT_FOREGROUND=t.SYMBOL_ICON_NUMBER_FOREGROUND=t.SYMBOL_ICON_NULL_FOREGROUND=t.SYMBOL_ICON_NAMESPACE_FOREGROUND=t.SYMBOL_ICON_MODULE_FOREGROUND=t.SYMBOL_ICON_METHOD_FOREGROUND=t.SYMBOL_ICON_KEYWORD_FOREGROUND=t.SYMBOL_ICON_KEY_FOREGROUND=t.SYMBOL_ICON_INTERFACE_FOREGROUND=t.SYMBOL_ICON_FUNCTION_FOREGROUND=t.SYMBOL_ICON_FOLDER_FOREGROUND=t.SYMBOL_ICON_FILE_FOREGROUND=t.SYMBOL_ICON_FIELD_FOREGROUND=t.SYMBOL_ICON_EVENT_FOREGROUND=t.SYMBOL_ICON_ENUMERATOR_MEMBER_FOREGROUND=t.SYMBOL_ICON_ENUMERATOR_FOREGROUND=t.SYMBOL_ICON_CONSTRUCTOR_FOREGROUND=t.SYMBOL_ICON_CONSTANT_FOREGROUND=t.SYMBOL_ICON_COLOR_FOREGROUND=t.SYMBOL_ICON_CLASS_FOREGROUND=t.SYMBOL_ICON_BOOLEAN_FOREGROUND=t.SYMBOL_ICON_ARRAY_FOREGROUND=void 0, +t.SYMBOL_ICON_ARRAY_FOREGROUND=o.registerColor("symbolIcon.arrayForeground",{dark:o.foreground,light:o.foreground,hc:o.foreground},i.localize(0,null)),t.SYMBOL_ICON_BOOLEAN_FOREGROUND=o.registerColor("symbolIcon.booleanForeground",{dark:o.foreground,light:o.foreground,hc:o.foreground},i.localize(1,null)),t.SYMBOL_ICON_CLASS_FOREGROUND=o.registerColor("symbolIcon.classForeground",{dark:"#EE9D28",light:"#D67E00",hc:"#EE9D28"},i.localize(2,null)),t.SYMBOL_ICON_COLOR_FOREGROUND=o.registerColor("symbolIcon.colorForeground",{dark:o.foreground,light:o.foreground,hc:o.foreground},i.localize(3,null)),t.SYMBOL_ICON_CONSTANT_FOREGROUND=o.registerColor("symbolIcon.constantForeground",{dark:o.foreground,light:o.foreground,hc:o.foreground},i.localize(4,null)),t.SYMBOL_ICON_CONSTRUCTOR_FOREGROUND=o.registerColor("symbolIcon.constructorForeground",{dark:"#B180D7",light:"#652D90",hc:"#B180D7"},i.localize(5,null)),t.SYMBOL_ICON_ENUMERATOR_FOREGROUND=o.registerColor("symbolIcon.enumeratorForeground",{dark:"#EE9D28", +light:"#D67E00",hc:"#EE9D28"},i.localize(6,null)),t.SYMBOL_ICON_ENUMERATOR_MEMBER_FOREGROUND=o.registerColor("symbolIcon.enumeratorMemberForeground",{dark:"#75BEFF",light:"#007ACC",hc:"#75BEFF"},i.localize(7,null)),t.SYMBOL_ICON_EVENT_FOREGROUND=o.registerColor("symbolIcon.eventForeground",{dark:"#EE9D28",light:"#D67E00",hc:"#EE9D28"},i.localize(8,null)),t.SYMBOL_ICON_FIELD_FOREGROUND=o.registerColor("symbolIcon.fieldForeground",{dark:"#75BEFF",light:"#007ACC",hc:"#75BEFF"},i.localize(9,null)),t.SYMBOL_ICON_FILE_FOREGROUND=o.registerColor("symbolIcon.fileForeground",{dark:o.foreground,light:o.foreground,hc:o.foreground},i.localize(10,null)),t.SYMBOL_ICON_FOLDER_FOREGROUND=o.registerColor("symbolIcon.folderForeground",{dark:o.foreground,light:o.foreground,hc:o.foreground},i.localize(11,null)),t.SYMBOL_ICON_FUNCTION_FOREGROUND=o.registerColor("symbolIcon.functionForeground",{dark:"#B180D7",light:"#652D90",hc:"#B180D7"},i.localize(12,null)), +t.SYMBOL_ICON_INTERFACE_FOREGROUND=o.registerColor("symbolIcon.interfaceForeground",{dark:"#75BEFF",light:"#007ACC",hc:"#75BEFF"},i.localize(13,null)),t.SYMBOL_ICON_KEY_FOREGROUND=o.registerColor("symbolIcon.keyForeground",{dark:o.foreground,light:o.foreground,hc:o.foreground},i.localize(14,null)),t.SYMBOL_ICON_KEYWORD_FOREGROUND=o.registerColor("symbolIcon.keywordForeground",{dark:o.foreground,light:o.foreground,hc:o.foreground},i.localize(15,null)),t.SYMBOL_ICON_METHOD_FOREGROUND=o.registerColor("symbolIcon.methodForeground",{dark:"#B180D7",light:"#652D90",hc:"#B180D7"},i.localize(16,null)),t.SYMBOL_ICON_MODULE_FOREGROUND=o.registerColor("symbolIcon.moduleForeground",{dark:o.foreground,light:o.foreground,hc:o.foreground},i.localize(17,null)),t.SYMBOL_ICON_NAMESPACE_FOREGROUND=o.registerColor("symbolIcon.namespaceForeground",{dark:o.foreground,light:o.foreground,hc:o.foreground},i.localize(18,null)),t.SYMBOL_ICON_NULL_FOREGROUND=o.registerColor("symbolIcon.nullForeground",{dark:o.foreground, +light:o.foreground,hc:o.foreground},i.localize(19,null)),t.SYMBOL_ICON_NUMBER_FOREGROUND=o.registerColor("symbolIcon.numberForeground",{dark:o.foreground,light:o.foreground,hc:o.foreground},i.localize(20,null)),t.SYMBOL_ICON_OBJECT_FOREGROUND=o.registerColor("symbolIcon.objectForeground",{dark:o.foreground,light:o.foreground,hc:o.foreground},i.localize(21,null)),t.SYMBOL_ICON_OPERATOR_FOREGROUND=o.registerColor("symbolIcon.operatorForeground",{dark:o.foreground,light:o.foreground,hc:o.foreground},i.localize(22,null)),t.SYMBOL_ICON_PACKAGE_FOREGROUND=o.registerColor("symbolIcon.packageForeground",{dark:o.foreground,light:o.foreground,hc:o.foreground},i.localize(23,null)),t.SYMBOL_ICON_PROPERTY_FOREGROUND=o.registerColor("symbolIcon.propertyForeground",{dark:o.foreground,light:o.foreground,hc:o.foreground},i.localize(24,null)),t.SYMBOL_ICON_REFERENCE_FOREGROUND=o.registerColor("symbolIcon.referenceForeground",{dark:o.foreground,light:o.foreground,hc:o.foreground},i.localize(25,null)), +t.SYMBOL_ICON_SNIPPET_FOREGROUND=o.registerColor("symbolIcon.snippetForeground",{dark:o.foreground,light:o.foreground,hc:o.foreground},i.localize(26,null)),t.SYMBOL_ICON_STRING_FOREGROUND=o.registerColor("symbolIcon.stringForeground",{dark:o.foreground,light:o.foreground,hc:o.foreground},i.localize(27,null)),t.SYMBOL_ICON_STRUCT_FOREGROUND=o.registerColor("symbolIcon.structForeground",{dark:o.foreground,light:o.foreground,hc:o.foreground},i.localize(28,null)),t.SYMBOL_ICON_TEXT_FOREGROUND=o.registerColor("symbolIcon.textForeground",{dark:o.foreground,light:o.foreground,hc:o.foreground},i.localize(29,null)),t.SYMBOL_ICON_TYPEPARAMETER_FOREGROUND=o.registerColor("symbolIcon.typeParameterForeground",{dark:o.foreground,light:o.foreground,hc:o.foreground},i.localize(30,null)),t.SYMBOL_ICON_UNIT_FOREGROUND=o.registerColor("symbolIcon.unitForeground",{dark:o.foreground,light:o.foreground,hc:o.foreground},i.localize(31,null)),t.SYMBOL_ICON_VARIABLE_FOREGROUND=o.registerColor("symbolIcon.variableForeground",{ +dark:"#75BEFF",light:"#007ACC",hc:"#75BEFF"},i.localize(32,null)),n.registerThemingParticipant((e,i)=>{const n=e.getColor(t.SYMBOL_ICON_ARRAY_FOREGROUND);n&&i.addRule(`${s.Codicon.symbolArray.cssSelector} { color: ${n}; }`);const o=e.getColor(t.SYMBOL_ICON_BOOLEAN_FOREGROUND);o&&i.addRule(`${s.Codicon.symbolBoolean.cssSelector} { color: ${o}; }`);const r=e.getColor(t.SYMBOL_ICON_CLASS_FOREGROUND);r&&i.addRule(`${s.Codicon.symbolClass.cssSelector} { color: ${r}; }`);const a=e.getColor(t.SYMBOL_ICON_METHOD_FOREGROUND);a&&i.addRule(`${s.Codicon.symbolMethod.cssSelector} { color: ${a}; }`);const l=e.getColor(t.SYMBOL_ICON_COLOR_FOREGROUND);l&&i.addRule(`${s.Codicon.symbolColor.cssSelector} { color: ${l}; }`);const d=e.getColor(t.SYMBOL_ICON_CONSTANT_FOREGROUND);d&&i.addRule(`${s.Codicon.symbolConstant.cssSelector} { color: ${d}; }`);const c=e.getColor(t.SYMBOL_ICON_CONSTRUCTOR_FOREGROUND);c&&i.addRule(`${s.Codicon.symbolConstructor.cssSelector} { color: ${c}; }`) +;const h=e.getColor(t.SYMBOL_ICON_ENUMERATOR_FOREGROUND);h&&i.addRule(`\n\t\t\t${s.Codicon.symbolValue.cssSelector},${s.Codicon.symbolEnum.cssSelector} { color: ${h}; }`);const u=e.getColor(t.SYMBOL_ICON_ENUMERATOR_MEMBER_FOREGROUND);u&&i.addRule(`${s.Codicon.symbolEnumMember.cssSelector} { color: ${u}; }`);const g=e.getColor(t.SYMBOL_ICON_EVENT_FOREGROUND);g&&i.addRule(`${s.Codicon.symbolEvent.cssSelector} { color: ${g}; }`);const p=e.getColor(t.SYMBOL_ICON_FIELD_FOREGROUND);p&&i.addRule(`${s.Codicon.symbolField.cssSelector} { color: ${p}; }`);const m=e.getColor(t.SYMBOL_ICON_FILE_FOREGROUND);m&&i.addRule(`${s.Codicon.symbolFile.cssSelector} { color: ${m}; }`);const f=e.getColor(t.SYMBOL_ICON_FOLDER_FOREGROUND);f&&i.addRule(`${s.Codicon.symbolFolder.cssSelector} { color: ${f}; }`);const _=e.getColor(t.SYMBOL_ICON_FUNCTION_FOREGROUND);_&&i.addRule(`${s.Codicon.symbolFunction.cssSelector} { color: ${_}; }`);const v=e.getColor(t.SYMBOL_ICON_INTERFACE_FOREGROUND) +;v&&i.addRule(`${s.Codicon.symbolInterface.cssSelector} { color: ${v}; }`);const C=e.getColor(t.SYMBOL_ICON_KEY_FOREGROUND);C&&i.addRule(`${s.Codicon.symbolKey.cssSelector} { color: ${C}; }`);const b=e.getColor(t.SYMBOL_ICON_KEYWORD_FOREGROUND);b&&i.addRule(`${s.Codicon.symbolKeyword.cssSelector} { color: ${b}; }`);const S=e.getColor(t.SYMBOL_ICON_MODULE_FOREGROUND);S&&i.addRule(`${s.Codicon.symbolModule.cssSelector} { color: ${S}; }`);const w=e.getColor(t.SYMBOL_ICON_NAMESPACE_FOREGROUND);w&&i.addRule(`${s.Codicon.symbolNamespace.cssSelector} { color: ${w}; }`);const y=e.getColor(t.SYMBOL_ICON_NULL_FOREGROUND);y&&i.addRule(`${s.Codicon.symbolNull.cssSelector} { color: ${y}; }`);const E=e.getColor(t.SYMBOL_ICON_NUMBER_FOREGROUND);E&&i.addRule(`${s.Codicon.symbolNumber.cssSelector} { color: ${E}; }`);const L=e.getColor(t.SYMBOL_ICON_OBJECT_FOREGROUND);L&&i.addRule(`${s.Codicon.symbolObject.cssSelector} { color: ${L}; }`);const x=e.getColor(t.SYMBOL_ICON_OPERATOR_FOREGROUND) +;x&&i.addRule(`${s.Codicon.symbolOperator.cssSelector} { color: ${x}; }`);const D=e.getColor(t.SYMBOL_ICON_PACKAGE_FOREGROUND);D&&i.addRule(`${s.Codicon.symbolPackage.cssSelector} { color: ${D}; }`);const k=e.getColor(t.SYMBOL_ICON_PROPERTY_FOREGROUND);k&&i.addRule(`${s.Codicon.symbolProperty.cssSelector} { color: ${k}; }`);const N=e.getColor(t.SYMBOL_ICON_REFERENCE_FOREGROUND);N&&i.addRule(`${s.Codicon.symbolReference.cssSelector} { color: ${N}; }`);const I=e.getColor(t.SYMBOL_ICON_SNIPPET_FOREGROUND);I&&i.addRule(`${s.Codicon.symbolSnippet.cssSelector} { color: ${I}; }`);const M=e.getColor(t.SYMBOL_ICON_STRING_FOREGROUND);M&&i.addRule(`${s.Codicon.symbolString.cssSelector} { color: ${M}; }`);const R=e.getColor(t.SYMBOL_ICON_STRUCT_FOREGROUND);R&&i.addRule(`${s.Codicon.symbolStruct.cssSelector} { color: ${R}; }`);const T=e.getColor(t.SYMBOL_ICON_TEXT_FOREGROUND);T&&i.addRule(`${s.Codicon.symbolText.cssSelector} { color: ${T}; }`);const O=e.getColor(t.SYMBOL_ICON_TYPEPARAMETER_FOREGROUND) +;O&&i.addRule(`${s.Codicon.symbolTypeParameter.cssSelector} { color: ${O}; }`);const A=e.getColor(t.SYMBOL_ICON_UNIT_FOREGROUND);A&&i.addRule(`${s.Codicon.symbolUnit.cssSelector} { color: ${A}; }`);const P=e.getColor(t.SYMBOL_ICON_VARIABLE_FOREGROUND);P&&i.addRule(`${s.Codicon.symbolVariable.cssSelector} { color: ${P}; }`)})})),define(t[606],i([0,1,3,52,31,21,14]),(function(e,t,i,n,o,s,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.FindDecorations=void 0;class a{constructor(e){this._editor=e,this._decorations=[],this._overviewRulerApproximateDecorations=[],this._findScopeDecorationIds=[],this._rangeHighlightDecorationId=null,this._highlightedDecorationId=null,this._startPosition=this._editor.getPosition()}dispose(){this._editor.deltaDecorations(this._allDecorations(),[]),this._decorations=[],this._overviewRulerApproximateDecorations=[],this._findScopeDecorationIds=[],this._rangeHighlightDecorationId=null,this._highlightedDecorationId=null}reset(){this._decorations=[], +this._overviewRulerApproximateDecorations=[],this._findScopeDecorationIds=[],this._rangeHighlightDecorationId=null,this._highlightedDecorationId=null}getCount(){return this._decorations.length}getFindScope(){return this._findScopeDecorationIds[0]?this._editor.getModel().getDecorationRange(this._findScopeDecorationIds[0]):null}getFindScopes(){if(this._findScopeDecorationIds.length){const e=this._findScopeDecorationIds.map(e=>this._editor.getModel().getDecorationRange(e)).filter(e=>!!e);if(e.length)return e}return null}getStartPosition(){return this._startPosition}setStartPosition(e){this._startPosition=e,this.setCurrentFindMatch(null)}_getDecorationIndex(e){const t=this._decorations.indexOf(e);return t>=0?t+1:1}getCurrentMatchesPosition(e){let t=this._editor.getModel().getDecorationsInRange(e);for(const e of t){const t=e.options;if(t===a._FIND_MATCH_DECORATION||t===a._CURRENT_FIND_MATCH_DECORATION)return this._getDecorationIndex(e.id)}return 0}setCurrentFindMatch(e){let t=null,n=0 +;if(e)for(let i=0,o=this._decorations.length;i{if(null!==this._highlightedDecorationId&&(e.changeDecorationOptions(this._highlightedDecorationId,a._FIND_MATCH_DECORATION),this._highlightedDecorationId=null),null!==t&&(this._highlightedDecorationId=t,e.changeDecorationOptions(this._highlightedDecorationId,a._CURRENT_FIND_MATCH_DECORATION)),null!==this._rangeHighlightDecorationId&&(e.removeDecoration(this._rangeHighlightDecorationId),this._rangeHighlightDecorationId=null),null!==t){let n=this._editor.getModel().getDecorationRange(t);if(n.startLineNumber!==n.endLineNumber&&1===n.endColumn){let e=n.endLineNumber-1,t=this._editor.getModel().getLineMaxColumn(e);n=new i.Range(n.startLineNumber,n.startColumn,e,t)}this._rangeHighlightDecorationId=e.addDecoration(n,a._RANGE_HIGHLIGHT_DECORATION)} +}),n}set(e,t){this._editor.changeDecorations(n=>{let o=a._FIND_MATCH_DECORATION,s=[];if(e.length>1e3){o=a._FIND_MATCH_NO_OVERVIEW_DECORATION;const t=this._editor.getModel().getLineCount(),n=this._editor.getLayoutInfo().height/t,r=Math.max(2,Math.ceil(3/n));let l=e[0].range.startLineNumber,d=e[0].range.endLineNumber;for(let t=1,n=e.length;t=n.startLineNumber?n.endLineNumber>d&&(d=n.endLineNumber):(s.push({range:new i.Range(l,1,d,1),options:a._FIND_MATCH_ONLY_OVERVIEW_DECORATION}),l=n.startLineNumber,d=n.endLineNumber)}s.push({range:new i.Range(l,1,d,1),options:a._FIND_MATCH_ONLY_OVERVIEW_DECORATION})}let r=new Array(e.length);for(let t=0,i=e.length;tn.removeDecoration(e)),this._findScopeDecorationIds=[]),(null==t?void 0:t.length)&&(this._findScopeDecorationIds=t.map(e=>n.addDecoration(e,a._FIND_SCOPE_DECORATION)))})}matchBeforePosition(e){if(0===this._decorations.length)return null;for(let t=this._decorations.length-1;t>=0;t--){let i=this._decorations[t],n=this._editor.getModel().getDecorationRange(i);if(n&&!(n.endLineNumber>e.lineNumber)){if(n.endLineNumbere.column))return n}}return this._editor.getModel().getDecorationRange(this._decorations[this._decorations.length-1])}matchAfterPosition(e){if(0===this._decorations.length)return null;for(let t=0,i=this._decorations.length;te.lineNumber)return n;if(!(n.startColumnthis.research(!1),100),this._toDispose.add(this._updateDecorationsScheduler),this._toDispose.add(this._editor.onDidChangeCursorPosition(e=>{3!==e.reason&&5!==e.reason&&6!==e.reason||this._decorations.setStartPosition(this._editor.getPosition())})),this._ignoreModelContentChanged=!1,this._toDispose.add(this._editor.onDidChangeModelContent(e=>{ +this._ignoreModelContentChanged||(e.isFlush&&this._decorations.reset(),this._decorations.setStartPosition(this._editor.getPosition()),this._updateDecorationsScheduler.schedule())})),this._toDispose.add(this._state.onFindReplaceStateChange(e=>this._onStateChanged(e))),this.research(!1,this._state.searchScope)}dispose(){this._isDisposed=!0,n.dispose(this._startSearchingTimer),this._toDispose.dispose()}_onStateChanged(e){if(!this._isDisposed&&this._editor.hasModel()&&(e.searchString||e.isReplaceRevealed||e.isRegex||e.wholeWord||e.matchCase||e.searchScope)){this._editor.getModel().isTooLargeForSyncing()?(this._startSearchingTimer.cancel(),this._startSearchingTimer.setIfNotSet(()=>{e.searchScope?this.research(e.moveCursor,this._state.searchScope):this.research(e.moveCursor)},p)):e.searchScope?this.research(e.moveCursor,this._state.searchScope):this.research(e.moveCursor)}}static _getSearchRange(e,t){return t||e.getFullModelRange()}research(e,i){let n=null +;void 0!==i?null!==i&&(n=Array.isArray(i)?i:[i]):n=this._decorations.getFindScopes(),null!==n&&(n=n.map(e=>{if(e.startLineNumber!==e.endLineNumber){let t=e.endLineNumber;return 1===e.endColumn&&(t-=1),new r.Range(e.startLineNumber,1,t,this._editor.getModel().getLineMaxColumn(t))}return e}));let o=this._findMatches(n,!1,t.MATCHES_LIMIT);this._decorations.set(o,n);const s=this._editor.getSelection();let a=this._decorations.getCurrentMatchesPosition(s);if(0===a&&o.length>0){const e=g.findFirstInSorted(o.map(e=>e.range),e=>r.Range.compareRangesUsingStarts(e,s)>=0);a=e>0?e-1+1:a}this._state.changeMatchInfo(a,this._decorations.getCount(),void 0),e&&this._editor.getOption(29).cursorMoveOnType&&this._moveToNextMatch(this._decorations.getStartPosition())}_hasMatches(){return this._state.matchesCount>0}_cannotFind(){if(!this._hasMatches()){let e=this._decorations.getFindScope();return e&&this._editor.revealRangeInCenterIfOutsideViewport(e,0),!0}return!1}_setCurrentFindMatch(e){ +let t=this._decorations.setCurrentFindMatch(e);this._state.changeMatchInfo(t,this._decorations.getCount(),e),this._editor.setSelection(e),this._editor.revealRangeInCenterIfOutsideViewport(e,0)}_prevSearchPosition(e){let t=this._state.isRegex&&(this._state.searchString.indexOf("^")>=0||this._state.searchString.indexOf("$")>=0),{lineNumber:i,column:n}=e,o=this._editor.getModel();return t||1===n?(1===i?i=o.getLineCount():i--,n=o.getLineMaxColumn(i)):n--,new s.Position(i,n)}_moveToPrevMatch(e,i=!1){if(!this._state.canNavigateBack()){const t=this._decorations.matchAfterPosition(e);return void(t&&this._setCurrentFindMatch(t))}if(this._decorations.getCount()=0||this._state.searchString.indexOf("$")>=0),{lineNumber:i,column:n}=e,o=this._editor.getModel() +;return t||n===o.getLineMaxColumn(i)?(i===o.getLineCount()?i=1:i++,n=1):n++,new s.Position(i,n)}_moveToNextMatch(e){if(!this._state.canNavigateForward()){const t=this._decorations.matchBeforePosition(e);return void(t&&this._setCurrentFindMatch(t))}if(this._decorations.getCount()m._getSearchRange(this._editor.getModel(),e));return this._editor.getModel().findMatches(this._state.searchString,n,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(105):null,t,i)}replaceAll(){if(!this._hasMatches())return;const e=this._decorations.getFindScopes();null===e&&this._state.matchesCount>=t.MATCHES_LIMIT?this._largeReplaceAll():this._regularReplaceAll(e),this.research(!1)}_largeReplaceAll(){const e=new l.SearchParams(this._state.searchString,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(105):null).parseSearchRequest();if(!e)return +;let t=e.regex;if(!t.multiline){let e="mu";t.ignoreCase&&(e+="i"),t.global&&(e+="g"),t=new RegExp(t.source,e)}const i=this._editor.getModel(),n=i.getValue(1),s=i.getFullModelRange(),r=this._getReplacePattern();let a;const d=this._state.preserveCase;a=r.hasReplacementPatterns||d?n.replace(t,(function(){return r.buildReplaceString(arguments,d)})):n.replace(t,r.buildReplaceString(null,d));let c=new o.ReplaceCommandThatPreservesSelection(s,a,this._editor.getSelection());this._executeEditorCommand("replaceAll",c)}_regularReplaceAll(e){const t=this._getReplacePattern();let i=this._findMatches(e,t.hasReplacementPatterns||this._state.preserveCase,1073741824),n=[];for(let e=0,o=i.length;ee.range),n);this._executeEditorCommand("replaceAll",o)}selectAllMatches(){if(!this._hasMatches())return +;let e=this._decorations.getFindScopes(),t=this._findMatches(e,!1,1073741824).map(e=>new a.Selection(e.range.startLineNumber,e.range.startColumn,e.range.endLineNumber,e.range.endColumn)),i=this._editor.getSelection();for(let e=0,n=t.length;ethis._hide(),2e3)),this._isVisible=!1,this._editor=e,this._state=t,this._keybindingService=o,this._domNode=document.createElement("div"), +this._domNode.className="findOptionsWidget",this._domNode.style.display="none",this._domNode.style.top="10px",this._domNode.setAttribute("role","presentation"),this._domNode.setAttribute("aria-hidden","true");const d=l.getColorTheme().getColor(a.inputActiveOptionBorder),c=l.getColorTheme().getColor(a.inputActiveOptionForeground),h=l.getColorTheme().getColor(a.inputActiveOptionBackground);this.caseSensitive=this._register(new n.CaseSensitiveCheckbox({appendTitle:this._keybindingLabelFor(r.FIND_IDS.ToggleCaseSensitiveCommand),isChecked:this._state.matchCase,inputActiveOptionBorder:d,inputActiveOptionForeground:c,inputActiveOptionBackground:h})),this._domNode.appendChild(this.caseSensitive.domNode),this._register(this.caseSensitive.onChange(()=>{this._state.change({matchCase:this.caseSensitive.checked},!1)})),this.wholeWords=this._register(new n.WholeWordsCheckbox({appendTitle:this._keybindingLabelFor(r.FIND_IDS.ToggleWholeWordCommand),isChecked:this._state.wholeWord,inputActiveOptionBorder:d, +inputActiveOptionForeground:c,inputActiveOptionBackground:h})),this._domNode.appendChild(this.wholeWords.domNode),this._register(this.wholeWords.onChange(()=>{this._state.change({wholeWord:this.wholeWords.checked},!1)})),this.regex=this._register(new n.RegexCheckbox({appendTitle:this._keybindingLabelFor(r.FIND_IDS.ToggleRegexCommand),isChecked:this._state.isRegex,inputActiveOptionBorder:d,inputActiveOptionForeground:c,inputActiveOptionBackground:h})),this._domNode.appendChild(this.regex.domNode),this._register(this.regex.onChange(()=>{this._state.change({isRegex:this.regex.checked},!1)})),this._editor.addOverlayWidget(this),this._register(this._state.onFindReplaceStateChange(e=>{let t=!1;e.isRegex&&(this.regex.checked=this._state.isRegex,t=!0),e.wholeWord&&(this.wholeWords.checked=this._state.wholeWord,t=!0),e.matchCase&&(this.caseSensitive.checked=this._state.matchCase,t=!0),!this._state.isRevealed&&t&&this._revealTemporarily()})), +this._register(i.addDisposableNonBubblingMouseOutListener(this._domNode,e=>this._onMouseOut())),this._register(i.addDisposableListener(this._domNode,"mouseover",e=>this._onMouseOver())),this._applyTheme(l.getColorTheme()),this._register(l.onDidColorThemeChange(this._applyTheme.bind(this)))}_keybindingLabelFor(e){let t=this._keybindingService.lookupKeybinding(e);return t?` (${t.getLabel()})`:""}dispose(){this._editor.removeOverlayWidget(this),super.dispose()}getId(){return d.ID}getDomNode(){return this._domNode}getPosition(){return{preference:0}}highlightFindOptions(){this._revealTemporarily()}_revealTemporarily(){this._show(),this._hideSoon.schedule()}_onMouseOut(){this._hideSoon.schedule()}_onMouseOver(){this._hideSoon.cancel()}_show(){this._isVisible||(this._isVisible=!0,this._domNode.style.display="block")}_hide(){this._isVisible&&(this._isVisible=!1,this._domNode.style.display="none")}_applyTheme(e){let t={inputActiveOptionBorder:e.getColor(a.inputActiveOptionBorder), +inputActiveOptionForeground:e.getColor(a.inputActiveOptionForeground),inputActiveOptionBackground:e.getColor(a.inputActiveOptionBackground)};this.caseSensitive.style(t),this.wholeWords.style(t),this.regex.style(t)}}t.FindOptionsWidget=d,d.ID="editor.contrib.findOptionsWidget",l.registerThemingParticipant((e,t)=>{const i=e.getColor(a.editorWidgetBackground);i&&t.addRule(`.monaco-editor .findOptionsWidget { background-color: ${i}; }`);const n=e.getColor(a.editorWidgetForeground);n&&t.addRule(`.monaco-editor .findOptionsWidget { color: ${n}; }`);const o=e.getColor(a.widgetShadow);o&&t.addRule(`.monaco-editor .findOptionsWidget { box-shadow: 0 2px 8px ${o}; }`);const s=e.getColor(a.contrastBorder);s&&t.addRule(`.monaco-editor .findOptionsWidget { border: 2px solid ${s}; }`)})})),define(t[608],i([0,1,4,2,3,139]),(function(e,t,i,n,o,s){"use strict";function r(e,t){return 1===e||2!==e&&t}Object.defineProperty(t,"__esModule",{value:!0}),t.FindReplaceState=void 0;class a extends n.Disposable{constructor(){super(), +this._onFindReplaceStateChange=this._register(new i.Emitter),this.onFindReplaceStateChange=this._onFindReplaceStateChange.event,this._searchString="",this._replaceString="",this._isRevealed=!1,this._isReplaceRevealed=!1,this._isRegex=!1,this._isRegexOverride=0,this._wholeWord=!1,this._wholeWordOverride=0,this._matchCase=!1,this._matchCaseOverride=0,this._preserveCase=!1,this._preserveCaseOverride=0,this._searchScope=null,this._matchesPosition=0,this._matchesCount=0,this._currentMatch=null,this._loop=!0}get searchString(){return this._searchString}get replaceString(){return this._replaceString}get isRevealed(){return this._isRevealed}get isReplaceRevealed(){return this._isReplaceRevealed}get isRegex(){return r(this._isRegexOverride,this._isRegex)}get wholeWord(){return r(this._wholeWordOverride,this._wholeWord)}get matchCase(){return r(this._matchCaseOverride,this._matchCase)}get preserveCase(){return r(this._preserveCaseOverride,this._preserveCase)}get actualIsRegex(){return this._isRegex} +get actualWholeWord(){return this._wholeWord}get actualMatchCase(){return this._matchCase}get actualPreserveCase(){return this._preserveCase}get searchScope(){return this._searchScope}get matchesPosition(){return this._matchesPosition}get matchesCount(){return this._matchesCount}get currentMatch(){return this._currentMatch}changeMatchInfo(e,t,i){let n={moveCursor:!1,updateHistory:!1,searchString:!1,replaceString:!1,isRevealed:!1,isReplaceRevealed:!1,isRegex:!1,wholeWord:!1,matchCase:!1,preserveCase:!1,searchScope:!1,matchesPosition:!1,matchesCount:!1,currentMatch:!1,loop:!1},s=!1;0===t&&(e=0),e>t&&(e=t),this._matchesPosition!==e&&(this._matchesPosition=e,n.matchesPosition=!0,s=!0),this._matchesCount!==t&&(this._matchesCount=t,n.matchesCount=!0,s=!0),void 0!==i&&(o.Range.equalsRange(this._currentMatch,i)||(this._currentMatch=i,n.currentMatch=!0,s=!0)),s&&this._onFindReplaceStateChange.fire(n)}change(e,t,i=!0){var n;let s={moveCursor:t,updateHistory:i,searchString:!1,replaceString:!1,isRevealed:!1, +isReplaceRevealed:!1,isRegex:!1,wholeWord:!1,matchCase:!1,preserveCase:!1,searchScope:!1,matchesPosition:!1,matchesCount:!1,currentMatch:!1,loop:!1},r=!1;const a=this.isRegex,l=this.wholeWord,d=this.matchCase,c=this.preserveCase;void 0!==e.searchString&&this._searchString!==e.searchString&&(this._searchString=e.searchString,s.searchString=!0,r=!0),void 0!==e.replaceString&&this._replaceString!==e.replaceString&&(this._replaceString=e.replaceString,s.replaceString=!0,r=!0),void 0!==e.isRevealed&&this._isRevealed!==e.isRevealed&&(this._isRevealed=e.isRevealed,s.isRevealed=!0,r=!0),void 0!==e.isReplaceRevealed&&this._isReplaceRevealed!==e.isReplaceRevealed&&(this._isReplaceRevealed=e.isReplaceRevealed,s.isReplaceRevealed=!0,r=!0),void 0!==e.isRegex&&(this._isRegex=e.isRegex),void 0!==e.wholeWord&&(this._wholeWord=e.wholeWord),void 0!==e.matchCase&&(this._matchCase=e.matchCase),void 0!==e.preserveCase&&(this._preserveCase=e.preserveCase), +void 0!==e.searchScope&&((null===(n=e.searchScope)||void 0===n?void 0:n.every(e=>{var t;return null===(t=this._searchScope)||void 0===t?void 0:t.some(t=>!o.Range.equalsRange(t,e))}))||(this._searchScope=e.searchScope,s.searchScope=!0,r=!0)),void 0!==e.loop&&this._loop!==e.loop&&(this._loop=e.loop,s.loop=!0,r=!0),this._isRegexOverride=void 0!==e.isRegexOverride?e.isRegexOverride:0,this._wholeWordOverride=void 0!==e.wholeWordOverride?e.wholeWordOverride:0,this._matchCaseOverride=void 0!==e.matchCaseOverride?e.matchCaseOverride:0,this._preserveCaseOverride=void 0!==e.preserveCaseOverride?e.preserveCaseOverride:0,a!==this.isRegex&&(r=!0,s.isRegex=!0),l!==this.wholeWord&&(r=!0,s.wholeWord=!0),d!==this.matchCase&&(r=!0,s.matchCase=!0),c!==this.preserveCase&&(r=!0,s.preserveCase=!0),r&&this._onFindReplaceStateChange.fire(s)}canNavigateBack(){return this.canNavigateInLoop()||1!==this.matchesPosition}canNavigateForward(){return this.canNavigateInLoop()||this.matchesPosition=s.MATCHES_LIMIT}}t.FindReplaceState=a})),define(t[609],i([0,1,458,7,48,152,117,54,15,12,2,16,8,3,139,21,14,550,26,332]),(function(e,t,i,n,o,s,a,l,d,c,h,u,g,p,m,f,_,v,C){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SimpleButton=t.FindWidget=t.FindWidgetViewZone=t.findNextMatchIcon=t.findPreviousMatchIcon=t.findReplaceAllIcon=t.findReplaceIcon=t.findCloseIcon=void 0;const b=C.registerIcon("find-selection",C.Codicon.selection),S=C.registerIcon("find-collapsed",C.Codicon.chevronRight),w=C.registerIcon("find-expanded",C.Codicon.chevronDown);t.findCloseIcon=C.registerIcon("find-close",C.Codicon.close),t.findReplaceIcon=C.registerIcon("find-replace",C.Codicon.replace),t.findReplaceAllIcon=C.registerIcon("find-replace-all",C.Codicon.replaceAll),t.findPreviousMatchIcon=C.registerIcon("find-previous-match",C.Codicon.arrowUp),t.findNextMatchIcon=C.registerIcon("find-next-match",C.Codicon.arrowDown) +;const y=i.localize(0,null),E=i.localize(1,null),L=i.localize(2,null),x=i.localize(3,null),D=i.localize(4,null),k=i.localize(5,null),N=i.localize(6,null),I=i.localize(7,null),M=i.localize(8,null),R=i.localize(9,null),T=i.localize(10,null),O=i.localize(11,null,m.MATCHES_LIMIT),A=i.localize(12,null),P=i.localize(13,null),F=419,W=221;let B=69;const V=33,z="ctrlEnterReplaceAll.windows.donotask",H=u.isMacintosh?256:2048;class K{constructor(e){this.afterLineNumber=e,this.heightInPx=V,this.suppressMouseDown=!1,this.domNode=document.createElement("div"),this.domNode.className="dock-find-viewzone"}}function U(e,t,i){const n=!!t.match(/\n/);i&&n&&i.selectionStart>0&&e.stopPropagation()}function $(e,t,i){const n=!!t.match(/\n/);i&&n&&i.selectionEndthis._updateHistoryDelayer.cancel())),this._register(this._state.onFindReplaceStateChange(e=>this._onStateChanged(e))),this._buildDomNode(),this._updateButtons(),this._tryUpdateWidgetWidth(),this._findInput.inputBox.layout(),this._register(this._codeEditor.onDidChangeConfiguration(e=>{if(e.hasChanged(72)&&(this._codeEditor.getOption(72)&&this._state.change({isReplaceRevealed:!1},!1),this._updateButtons()),e.hasChanged(117)&&this._tryUpdateWidgetWidth(),e.hasChanged(2)&&this.updateAccessibilitySupport(),e.hasChanged(29)){const e=this._codeEditor.getOption(29).addExtraSpaceOnTop;e&&!this._viewZone&&(this._viewZone=new K(0),this._showViewZone()),!e&&this._viewZone&&this._removeViewZone()} +})),this.updateAccessibilitySupport(),this._register(this._codeEditor.onDidChangeCursorSelection(()=>{this._isVisible&&this._updateToggleSelectionFindButton()})),this._register(this._codeEditor.onDidFocusEditorWidget(()=>r(this,void 0,void 0,(function*(){if(this._isVisible){let e=yield this._controller.getGlobalBufferTerm();e&&e!==this._state.searchString&&(this._state.change({searchString:e},!0),this._findInput.select())}})))),this._findInputFocused=m.CONTEXT_FIND_INPUT_FOCUSED.bindTo(a),this._findFocusTracker=this._register(n.trackFocus(this._findInput.inputBox.inputElement)),this._register(this._findFocusTracker.onDidFocus(()=>{this._findInputFocused.set(!0),this._updateSearchScope()})),this._register(this._findFocusTracker.onDidBlur(()=>{this._findInputFocused.set(!1)})),this._replaceInputFocused=m.CONTEXT_REPLACE_INPUT_FOCUSED.bindTo(a),this._replaceFocusTracker=this._register(n.trackFocus(this._replaceInput.inputBox.inputElement)),this._register(this._replaceFocusTracker.onDidFocus(()=>{ +this._replaceInputFocused.set(!0),this._updateSearchScope()})),this._register(this._replaceFocusTracker.onDidBlur(()=>{this._replaceInputFocused.set(!1)})),this._codeEditor.addOverlayWidget(this),this._codeEditor.getOption(29).addExtraSpaceOnTop&&(this._viewZone=new K(0)),this._applyTheme(l.getColorTheme()),this._register(l.onDidColorThemeChange(this._applyTheme.bind(this))),this._register(this._codeEditor.onDidChangeModel(()=>{this._isVisible&&(this._viewZoneId=void 0)})),this._register(this._codeEditor.onDidScrollChange(e=>{e.scrollTopChanged?this._layoutViewZone():setTimeout(()=>{this._layoutViewZone()},0)}))}getId(){return j.ID}getDomNode(){return this._domNode}getPosition(){return this._isVisible?{preference:0}:null}_onStateChanged(e){if(e.searchString){try{this._ignoreChangeEvent=!0,this._findInput.setValue(this._state.searchString)}finally{this._ignoreChangeEvent=!1}this._updateButtons()}if(e.replaceString&&(this._replaceInput.inputBox.value=this._state.replaceString), +e.isRevealed&&(this._state.isRevealed?this._reveal():this._hide(!0)),e.isReplaceRevealed&&(this._state.isReplaceRevealed?this._codeEditor.getOption(72)||this._isReplaceVisible||(this._isReplaceVisible=!0,this._replaceInput.width=n.getTotalWidth(this._findInput.domNode),this._updateButtons(),this._replaceInput.inputBox.layout()):this._isReplaceVisible&&(this._isReplaceVisible=!1,this._updateButtons())),(e.isRevealed||e.isReplaceRevealed)&&(this._state.isRevealed||this._state.isReplaceRevealed)&&this._tryUpdateHeight()&&this._showViewZone(),e.isRegex&&this._findInput.setRegex(this._state.isRegex),e.wholeWord&&this._findInput.setWholeWords(this._state.wholeWord),e.matchCase&&this._findInput.setCaseSensitive(this._state.matchCase),e.searchScope&&(this._state.searchScope?this._toggleSelectionFind.checked=!0:this._toggleSelectionFind.checked=!1,this._updateToggleSelectionFindButton()),e.searchString||e.matchesCount||e.matchesPosition){let e=this._state.searchString.length>0&&0===this._state.matchesCount +;n.toggleClass(this._domNode,"no-results",e),this._updateMatchesCount(),this._updateButtons()}(e.searchString||e.currentMatch)&&this._layoutViewZone(),e.updateHistory&&this._delayedUpdateHistory(),e.loop&&this._updateButtons()}_delayedUpdateHistory(){this._updateHistoryDelayer.trigger(this._updateHistory.bind(this))}_updateHistory(){this._state.searchString&&this._findInput.inputBox.addToHistory(),this._state.replaceString&&this._replaceInput.inputBox.addToHistory()}_updateMatchesCount(){let e;if(this._matchesCount.style.minWidth=B+"px",this._state.matchesCount>=m.MATCHES_LIMIT?this._matchesCount.title=O:this._matchesCount.title="",this._matchesCount.firstChild&&this._matchesCount.removeChild(this._matchesCount.firstChild),this._state.matchesCount>0){let t=String(this._state.matchesCount);this._state.matchesCount>=m.MATCHES_LIMIT&&(t+="+");let i=String(this._state.matchesPosition);"0"===i&&(i="?"),e=g.format(A,i,t)}else e=P;this._matchesCount.appendChild(document.createTextNode(e)), +o.alert(this._getAriaLabel(e,this._state.currentMatch,this._state.searchString)),B=Math.max(B,this._matchesCount.clientWidth)}_getAriaLabel(e,t,n){if(e===P)return""===n?i.localize(14,null,e):i.localize(15,null,e,n);if(t){const o=i.localize(16,null,e,n,t.startLineNumber+":"+t.startColumn),s=this._codeEditor.getModel();if(s&&t.startLineNumber<=s.getLineCount()&&t.startLineNumber>=1){return`${s.getLineContent(t.startLineNumber)}, ${o}`}return o}return i.localize(17,null,e,n)}_updateToggleSelectionFindButton(){let e=this._codeEditor.getSelection(),t=!!e&&(e.startLineNumber!==e.endLineNumber||e.startColumn!==e.endColumn),i=this._toggleSelectionFind.checked;this._isVisible&&(i||t)?this._toggleSelectionFind.enable():this._toggleSelectionFind.disable()}_updateButtons(){this._findInput.setEnabled(this._isVisible),this._replaceInput.setEnabled(this._isVisible&&this._isReplaceVisible),this._updateToggleSelectionFindButton(),this._closeBtn.setEnabled(this._isVisible) +;let e=this._state.searchString.length>0,t=!!this._state.matchesCount;this._prevBtn.setEnabled(this._isVisible&&e&&t&&this._state.canNavigateBack()),this._nextBtn.setEnabled(this._isVisible&&e&&t&&this._state.canNavigateForward()),this._replaceBtn.setEnabled(this._isVisible&&this._isReplaceVisible&&e),this._replaceAllBtn.setEnabled(this._isVisible&&this._isReplaceVisible&&e),n.toggleClass(this._domNode,"replaceToggled",this._isReplaceVisible),this._toggleReplaceBtn.setExpanded(this._isReplaceVisible);let i=!this._codeEditor.getOption(72);this._toggleReplaceBtn.setEnabled(this._isVisible&&i)}_reveal(){if(!this._isVisible){this._isVisible=!0;const e=this._codeEditor.getSelection();switch(this._codeEditor.getOption(29).autoFindInSelection){case"always":this._toggleSelectionFind.checked=!0;break;case"never":this._toggleSelectionFind.checked=!1;break;case"multiline":const t=!!e&&e.startLineNumber!==e.endLineNumber;this._toggleSelectionFind.checked=t}this._tryUpdateWidgetWidth(),this._updateButtons(), +setTimeout(()=>{n.addClass(this._domNode,"visible"),this._domNode.setAttribute("aria-hidden","false")},0),setTimeout(()=>{this._findInput.validate()},200),this._codeEditor.layoutOverlayWidget(this);let t=!0;if(this._codeEditor.getOption(29).seedSearchStringFromSelection&&e){const i=this._codeEditor.getDomNode();if(i){const o=n.getDomNodePagePosition(i),s=this._codeEditor.getScrolledVisiblePosition(e.getStartPosition()),r=o.left+(s?s.left:0),a=s?s.top:0;if(this._viewZone&&ae.startLineNumber&&(t=!1);const i=n.getTopLeftOffset(this._domNode).left;r>i&&(t=!1);const s=this._codeEditor.getScrolledVisiblePosition(e.getEndPosition());o.left+(s?s.left:0)>i&&(t=!1)}}}this._showViewZone(t)}}_hide(e){this._isVisible&&(this._isVisible=!1,this._updateButtons(),n.removeClass(this._domNode,"visible"),this._domNode.setAttribute("aria-hidden","true"),this._findInput.clearMessage(),e&&this._codeEditor.focus(),this._codeEditor.layoutOverlayWidget(this),this._removeViewZone())} +_layoutViewZone(){if(!this._codeEditor.getOption(29).addExtraSpaceOnTop)return void this._removeViewZone();if(!this._isVisible)return;const e=this._viewZone;void 0===this._viewZoneId&&e&&this._codeEditor.changeViewZones(t=>{e.heightInPx=this._getHeight(),this._viewZoneId=t.addZone(e),this._codeEditor.setScrollTop(this._codeEditor.getScrollTop()+e.heightInPx)})}_showViewZone(e=!0){if(!this._isVisible)return;if(!this._codeEditor.getOption(29).addExtraSpaceOnTop)return;void 0===this._viewZone&&(this._viewZone=new K(0));const t=this._viewZone;this._codeEditor.changeViewZones(i=>{if(void 0!==this._viewZoneId){const n=this._getHeight();if(n===t.heightInPx)return;let o=n-t.heightInPx;return t.heightInPx=n,i.layoutZone(this._viewZoneId),void(e&&this._codeEditor.setScrollTop(this._codeEditor.getScrollTop()+o))}{let n=this._getHeight();if((n-=this._codeEditor.getOption(66).top)<=0)return;t.heightInPx=n,this._viewZoneId=i.addZone(t),e&&this._codeEditor.setScrollTop(this._codeEditor.getScrollTop()+n)}})} +_removeViewZone(){this._codeEditor.changeViewZones(e=>{void 0!==this._viewZoneId&&(e.removeZone(this._viewZoneId),this._viewZoneId=void 0,this._viewZone&&(this._codeEditor.setScrollTop(this._codeEditor.getScrollTop()-this._viewZone.heightInPx),this._viewZone=void 0))})}_applyTheme(e){let t={inputActiveOptionBorder:e.getColor(f.inputActiveOptionBorder),inputActiveOptionBackground:e.getColor(f.inputActiveOptionBackground),inputActiveOptionForeground:e.getColor(f.inputActiveOptionForeground),inputBackground:e.getColor(f.inputBackground),inputForeground:e.getColor(f.inputForeground),inputBorder:e.getColor(f.inputBorder),inputValidationInfoBackground:e.getColor(f.inputValidationInfoBackground),inputValidationInfoForeground:e.getColor(f.inputValidationInfoForeground),inputValidationInfoBorder:e.getColor(f.inputValidationInfoBorder),inputValidationWarningBackground:e.getColor(f.inputValidationWarningBackground),inputValidationWarningForeground:e.getColor(f.inputValidationWarningForeground), +inputValidationWarningBorder:e.getColor(f.inputValidationWarningBorder),inputValidationErrorBackground:e.getColor(f.inputValidationErrorBackground),inputValidationErrorForeground:e.getColor(f.inputValidationErrorForeground),inputValidationErrorBorder:e.getColor(f.inputValidationErrorBorder)};this._findInput.style(t),this._replaceInput.style(t),this._toggleSelectionFind.style(t)}_tryUpdateWidgetWidth(){if(!this._isVisible)return;if(!n.isInDOM(this._domNode))return;const e=this._codeEditor.getLayoutInfo();if(e.contentWidth<=0)return void n.addClass(this._domNode,"hiddenEditor");n.hasClass(this._domNode,"hiddenEditor")&&n.removeClass(this._domNode,"hiddenEditor");const t=e.width,i=e.minimap.minimapWidth;let o=!1,s=!1,r=!1;if(this._resized){if(n.getTotalWidth(this._domNode)>F)return this._domNode.style.maxWidth=`${t-28-i-15}px`,void(this._replaceInput.width=n.getTotalWidth(this._findInput.domNode))}if(F+28+i>=t&&(s=!0),F+28+i-B>=t&&(r=!0),F+28+i-B>=t+50&&(o=!0), +n.toggleClass(this._domNode,"collapsed-find-widget",o),n.toggleClass(this._domNode,"narrow-find-widget",r),n.toggleClass(this._domNode,"reduced-find-widget",s),r||o||(this._domNode.style.maxWidth=`${t-28-i-15}px`),this._resized){this._findInput.inputBox.layout();let e=this._findInput.inputBox.element.clientWidth;e>0&&(this._replaceInput.width=e)}else this._isReplaceVisible&&(this._replaceInput.width=n.getTotalWidth(this._findInput.domNode))}_getHeight(){let e=0;return e+=4,e+=this._findInput.inputBox.height+2,this._isReplaceVisible&&(e+=4,e+=this._replaceInput.inputBox.height+2),e+=4}_tryUpdateHeight(){const e=this._getHeight();return(null===this._cachedHeight||this._cachedHeight!==e)&&(this._cachedHeight=e,this._domNode.style.height=`${e}px`,!0)}focusFindInput(){this._findInput.select(),this._findInput.focus()}focusReplaceInput(){this._replaceInput.select(),this._replaceInput.focus()}highlightFindOptions(){this._findInput.highlightFindOptions()}_updateSearchScope(){ +if(this._codeEditor.hasModel()&&this._toggleSelectionFind.checked){let e=this._codeEditor.getSelections();e.map(e=>{1===e.endColumn&&e.endLineNumber>e.startLineNumber&&(e=e.setEndPosition(e.endLineNumber-1,this._codeEditor.getModel().getLineMaxColumn(e.endLineNumber-1)));const t=this._state.currentMatch;return e.startLineNumber===e.endLineNumber||p.Range.equalsRange(e,t)?null:e}).filter(e=>!!e),e.length&&this._state.change({searchScope:e},!0)}}_onFindInputMouseDown(e){e.middleButton&&e.stopPropagation()}_onFindInputKeyDown(e){return e.equals(3|H)?(this._findInput.inputBox.insertAtCursor("\n"),void e.preventDefault()):e.equals(2)?(this._isReplaceVisible?this._replaceInput.focus():this._findInput.focusOnCaseSensitive(),void e.preventDefault()):e.equals(2066)?(this._codeEditor.focus(),void e.preventDefault()):e.equals(16)?U(e,this._findInput.getValue(),this._findInput.domNode.querySelector("textarea")):e.equals(18)?$(e,this._findInput.getValue(),this._findInput.domNode.querySelector("textarea")):void 0} +_onReplaceInputKeyDown(e){return e.equals(3|H)?(u.isWindows&&u.isNative&&!this._ctrlEnterReplaceAllWarningPrompted&&(this._notificationService.info(i.localize(18,null)),this._ctrlEnterReplaceAllWarningPrompted=!0,this._storageService.store(z,!0,0)),this._replaceInput.inputBox.insertAtCursor("\n"),void e.preventDefault()):e.equals(2)?(this._findInput.focusOnCaseSensitive(),void e.preventDefault()):e.equals(1026)?(this._findInput.focus(),void e.preventDefault()):e.equals(2066)?(this._codeEditor.focus(),void e.preventDefault()):e.equals(16)?U(e,this._replaceInput.inputBox.value,this._replaceInput.inputBox.element.querySelector("textarea")):e.equals(18)?$(e,this._replaceInput.inputBox.value,this._replaceInput.inputBox.element.querySelector("textarea")):void 0}getVerticalSashLeft(e){return 0}_keybindingLabelFor(e){let t=this._keybindingService.lookupKeybinding(e);return t?` (${t.getLabel()})`:""}_buildDomNode(){this._findInput=this._register(new v.ContextScopedFindInput(null,this._contextViewProvider,{width:W, +label:y,placeholder:E,appendCaseSensitiveLabel:this._keybindingLabelFor(m.FIND_IDS.ToggleCaseSensitiveCommand),appendWholeWordsLabel:this._keybindingLabelFor(m.FIND_IDS.ToggleWholeWordCommand),appendRegexLabel:this._keybindingLabelFor(m.FIND_IDS.ToggleRegexCommand),validation:e=>{if(0===e.length||!this._findInput.getRegex())return null;try{return new RegExp(e,"gu"),null}catch(e){return{content:e.message}}},flexibleHeight:!0,flexibleWidth:!0,flexibleMaxHeight:118},this._contextKeyService,!0)),this._findInput.setRegex(!!this._state.isRegex),this._findInput.setCaseSensitive(!!this._state.matchCase),this._findInput.setWholeWords(!!this._state.wholeWord),this._register(this._findInput.onKeyDown(e=>this._onFindInputKeyDown(e))),this._register(this._findInput.inputBox.onDidChange(()=>{this._ignoreChangeEvent||this._state.change({searchString:this._findInput.getValue()},!0)})),this._register(this._findInput.onDidOptionChange(()=>{this._state.change({isRegex:this._findInput.getRegex(), +wholeWord:this._findInput.getWholeWords(),matchCase:this._findInput.getCaseSensitive()},!0)})),this._register(this._findInput.onCaseSensitiveKeyDown(e=>{e.equals(1026)&&this._isReplaceVisible&&(this._replaceInput.focus(),e.preventDefault())})),this._register(this._findInput.onRegexKeyDown(e=>{e.equals(2)&&this._isReplaceVisible&&(this._replaceInput.focusOnPreserve(),e.preventDefault())})),this._register(this._findInput.inputBox.onDidHeightChange(e=>{this._tryUpdateHeight()&&this._showViewZone()})),u.isLinux&&this._register(this._findInput.onMouseDown(e=>this._onFindInputMouseDown(e))),this._matchesCount=document.createElement("div"),this._matchesCount.className="matchesCount",this._updateMatchesCount(),this._prevBtn=this._register(new q({label:L+this._keybindingLabelFor(m.FIND_IDS.PreviousMatchFindAction),className:t.findPreviousMatchIcon.classNames,onTrigger:()=>{this._codeEditor.getAction(m.FIND_IDS.PreviousMatchFindAction).run().then(void 0,c.onUnexpectedError)}})),this._nextBtn=this._register(new q({ +label:x+this._keybindingLabelFor(m.FIND_IDS.NextMatchFindAction),className:t.findNextMatchIcon.classNames,onTrigger:()=>{this._codeEditor.getAction(m.FIND_IDS.NextMatchFindAction).run().then(void 0,c.onUnexpectedError)}}));let e=document.createElement("div");e.className="find-part",e.appendChild(this._findInput.domNode);const i=document.createElement("div");i.className="find-actions",e.appendChild(i),i.appendChild(this._matchesCount),i.appendChild(this._prevBtn.domNode),i.appendChild(this._nextBtn.domNode),this._toggleSelectionFind=this._register(new s.Checkbox({icon:b,title:D+this._keybindingLabelFor(m.FIND_IDS.ToggleSearchScopeCommand),isChecked:!1})),this._register(this._toggleSelectionFind.onChange(()=>{if(this._toggleSelectionFind.checked){if(this._codeEditor.hasModel()){let e=this._codeEditor.getSelections();e.map(e=>(1===e.endColumn&&e.endLineNumber>e.startLineNumber&&(e=e.setEndPosition(e.endLineNumber-1,this._codeEditor.getModel().getLineMaxColumn(e.endLineNumber-1))), +e.isEmpty()?null:e)).filter(e=>!!e),e.length&&this._state.change({searchScope:e},!0)}}else this._state.change({searchScope:null},!0)})),i.appendChild(this._toggleSelectionFind.domNode),this._closeBtn=this._register(new q({label:k+this._keybindingLabelFor(m.FIND_IDS.CloseFindWidgetCommand),className:t.findCloseIcon.classNames,onTrigger:()=>{this._state.change({isRevealed:!1,searchScope:null},!1)},onKeyDown:e=>{e.equals(2)&&this._isReplaceVisible&&(this._replaceBtn.isEnabled()?this._replaceBtn.focus():this._codeEditor.focus(),e.preventDefault())}})),i.appendChild(this._closeBtn.domNode),this._replaceInput=this._register(new v.ContextScopedReplaceInput(null,void 0,{label:N,placeholder:I,history:[],flexibleHeight:!0,flexibleWidth:!0,flexibleMaxHeight:118},this._contextKeyService,!0)),this._replaceInput.setPreserveCase(!!this._state.preserveCase),this._register(this._replaceInput.onKeyDown(e=>this._onReplaceInputKeyDown(e))),this._register(this._replaceInput.inputBox.onDidChange(()=>{this._state.change({ +replaceString:this._replaceInput.inputBox.value},!1)})),this._register(this._replaceInput.inputBox.onDidHeightChange(e=>{this._isReplaceVisible&&this._tryUpdateHeight()&&this._showViewZone()})),this._register(this._replaceInput.onDidOptionChange(()=>{this._state.change({preserveCase:this._replaceInput.getPreserveCase()},!0)})),this._register(this._replaceInput.onPreserveCaseKeyDown(e=>{e.equals(2)&&(this._prevBtn.isEnabled()?this._prevBtn.focus():this._nextBtn.isEnabled()?this._nextBtn.focus():this._toggleSelectionFind.enabled?this._toggleSelectionFind.focus():this._closeBtn.isEnabled()&&this._closeBtn.focus(),e.preventDefault())})),this._replaceBtn=this._register(new q({label:M+this._keybindingLabelFor(m.FIND_IDS.ReplaceOneAction),className:t.findReplaceIcon.classNames,onTrigger:()=>{this._controller.replace()},onKeyDown:e=>{e.equals(1026)&&(this._closeBtn.focus(),e.preventDefault())}})),this._replaceAllBtn=this._register(new q({label:R+this._keybindingLabelFor(m.FIND_IDS.ReplaceAllAction), +className:t.findReplaceAllIcon.classNames,onTrigger:()=>{this._controller.replaceAll()}}));let o=document.createElement("div");o.className="replace-part",o.appendChild(this._replaceInput.domNode);const r=document.createElement("div");r.className="replace-actions",o.appendChild(r),r.appendChild(this._replaceBtn.domNode),r.appendChild(this._replaceAllBtn.domNode),this._toggleReplaceBtn=this._register(new q({label:T,className:"codicon toggle left",onTrigger:()=>{this._state.change({isReplaceRevealed:!this._isReplaceVisible},!1),this._isReplaceVisible&&(this._replaceInput.width=n.getTotalWidth(this._findInput.domNode),this._replaceInput.inputBox.layout()),this._showViewZone()}})),this._toggleReplaceBtn.setExpanded(this._isReplaceVisible),this._domNode=document.createElement("div"),this._domNode.className="editor-widget find-widget",this._domNode.setAttribute("aria-hidden","true"),this._domNode.style.width=`${F}px`,this._domNode.appendChild(this._toggleReplaceBtn.domNode),this._domNode.appendChild(e), +this._domNode.appendChild(o),this._resizeSash=new a.Sash(this._domNode,this,{orientation:0,size:2}),this._resized=!1;let l=F;this._register(this._resizeSash.onDidStart(()=>{l=n.getTotalWidth(this._domNode)})),this._register(this._resizeSash.onDidChange(e=>{this._resized=!0;let t=l+e.startX-e.currentX;if(t(parseFloat(n.getComputedStyle(this._domNode).maxWidth)||0)||(this._domNode.style.width=`${t}px`,this._isReplaceVisible&&(this._replaceInput.width=n.getTotalWidth(this._findInput.domNode)),this._findInput.inputBox.layout(),this._tryUpdateHeight())})),this._register(this._resizeSash.onDidReset(()=>{const e=n.getTotalWidth(this._domNode);if(e{this._opts.onTrigger(),e.preventDefault()}),this.onkeydown(this._domNode,e=>{if(e.equals(10)||e.equals(3))return this._opts.onTrigger(),void e.preventDefault();this._opts.onKeyDown&&this._opts.onKeyDown(e)})}get domNode(){return this._domNode}isEnabled(){return this._domNode.tabIndex>=0}focus(){this._domNode.focus()}setEnabled(e){n.toggleClass(this._domNode,"disabled",!e),this._domNode.setAttribute("aria-disabled",String(!e)),this._domNode.tabIndex=e?0:-1}setExpanded(e){this._domNode.setAttribute("aria-expanded",String(!!e)), +e?(n.removeClasses(this._domNode,S.classNames),n.addClasses(this._domNode,w.classNames)):(n.removeClasses(this._domNode,w.classNames),n.addClasses(this._domNode,S.classNames))}}t.SimpleButton=q,_.registerThemingParticipant((e,t)=>{const i=(e,i)=>{i&&t.addRule(`.monaco-editor ${e} { background-color: ${i}; }`)};i(".findMatch",e.getColor(f.editorFindMatchHighlight)),i(".currentFindMatch",e.getColor(f.editorFindMatch)),i(".findScope",e.getColor(f.editorFindRangeHighlight)),i(".find-widget",e.getColor(f.editorWidgetBackground));const n=e.getColor(f.widgetShadow);n&&t.addRule(`.monaco-editor .find-widget { box-shadow: 0 2px 8px ${n}; }`);const o=e.getColor(f.editorFindMatchHighlightBorder);o&&t.addRule(`.monaco-editor .findMatch { border: 1px ${"hc"===e.type?"dotted":"solid"} ${o}; box-sizing: border-box; }`);const s=e.getColor(f.editorFindMatchBorder);s&&t.addRule(`.monaco-editor .currentFindMatch { border: 2px solid ${s}; padding: 1px; box-sizing: border-box; }`) +;const r=e.getColor(f.editorFindRangeHighlightBorder);r&&t.addRule(`.monaco-editor .findScope { border: 1px ${"hc"===e.type?"dashed":"solid"} ${r}; }`);const a=e.getColor(f.contrastBorder);a&&t.addRule(`.monaco-editor .find-widget { border: 1px solid ${a}; }`);const l=e.getColor(f.editorWidgetForeground);l&&t.addRule(`.monaco-editor .find-widget { color: ${l}; }`);const d=e.getColor(f.errorForeground);d&&t.addRule(`.monaco-editor .find-widget.no-results .matchesCount { color: ${d}; }`);const c=e.getColor(f.editorWidgetResizeBorder);if(c)t.addRule(`.monaco-editor .find-widget .monaco-sash { background-color: ${c}; }`);else{const i=e.getColor(f.editorWidgetBorder);i&&t.addRule(`.monaco-editor .find-widget .monaco-sash { background-color: ${i}; }`)}const h=e.getColor(f.focusBorder);h&&t.addRule(`.monaco-editor .find-widget .monaco-inputbox.synthetic-focus { outline-color: ${h}; }`)})})), +define(t[610],i([0,1,459,23,8,15,39,2,11,395,519,22,396,42,520,18,217,397,12,17,14,21,333]),(function(e,t,i,n,o,s,r,d,c,h,u,g,p,m,f,_,v,C,b,S,w,y){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.editorFoldForeground=t.foldBackgroundBackground=t.FoldingController=void 0;const E=new S.RawContextKey("foldingEnabled",!1);let L=class e extends d.Disposable{constructor(e,t){super(),this.contextKeyService=t,this.localToDispose=this._register(new d.DisposableStore),this.editor=e;const i=this.editor.getOptions();this._isEnabled=i.get(31),this._useFoldingProviders="indentation"!==i.get(32),this._unfoldOnClickAfterEndOfLine=i.get(34),this.foldingModel=null,this.hiddenRangeModel=null,this.rangeProvider=null,this.foldingRegionPromise=null,this.foldingStateMemento=null,this.foldingModelPromise=null,this.updateScheduler=null,this.cursorChangedScheduler=null,this.mouseDownInfo=null,this.foldingDecorationProvider=new u.FoldingDecorationProvider(e), +this.foldingDecorationProvider.autoHideFoldingControls="mouseover"===i.get(91),this.foldingDecorationProvider.showFoldingHighlights=i.get(33),this.foldingEnabled=E.bindTo(this.contextKeyService),this.foldingEnabled.set(this._isEnabled),this._register(this.editor.onDidChangeModel(()=>this.onModelChanged())),this._register(this.editor.onDidChangeConfiguration(e=>{if(e.hasChanged(31)&&(this._isEnabled=this.editor.getOptions().get(31),this.foldingEnabled.set(this._isEnabled),this.onModelChanged()),e.hasChanged(91)||e.hasChanged(33)){const e=this.editor.getOptions();this.foldingDecorationProvider.autoHideFoldingControls="mouseover"===e.get(91),this.foldingDecorationProvider.showFoldingHighlights=e.get(33),this.onModelContentChanged()}e.hasChanged(32)&&(this._useFoldingProviders="indentation"!==this.editor.getOptions().get(32),this.onFoldingStrategyChanged()),e.hasChanged(34)&&(this._unfoldOnClickAfterEndOfLine=this.editor.getOptions().get(34))})),this.onModelChanged()}static get(t){return t.getContribution(e.ID)} +saveViewState(){let e=this.editor.getModel();if(!e||!this._isEnabled||e.isTooLargeForTokenization())return{};if(this.foldingModel){let t=this.foldingModel.isInitialized?this.foldingModel.getMemento():this.hiddenRangeModel.getMemento(),i=this.rangeProvider?this.rangeProvider.id:void 0;return{collapsedRegions:t,lineCount:e.getLineCount(),provider:i}}}restoreViewState(e){let t=this.editor.getModel();if(!t||!this._isEnabled||t.isTooLargeForTokenization()||!this.hiddenRangeModel)return;if(!e||!e.collapsedRegions||e.lineCount!==t.getLineCount())return;e.provider!==v.ID_SYNTAX_PROVIDER&&e.provider!==C.ID_INIT_PROVIDER||(this.foldingStateMemento=e);const i=e.collapsedRegions;if(this.hiddenRangeModel.applyMemento(i)){const e=this.getFoldingModel();e&&e.then(e=>{e&&e.applyMemento(i)}).then(void 0,b.onUnexpectedError)}}onModelChanged(){this.localToDispose.clear();let e=this.editor.getModel();this._isEnabled&&e&&!e.isTooLargeForTokenization()&&(this.foldingModel=new h.FoldingModel(e,this.foldingDecorationProvider), +this.localToDispose.add(this.foldingModel),this.hiddenRangeModel=new p.HiddenRangeModel(this.foldingModel),this.localToDispose.add(this.hiddenRangeModel),this.localToDispose.add(this.hiddenRangeModel.onDidChange(e=>this.onHiddenRangesChanges(e))),this.updateScheduler=new s.Delayer(200),this.cursorChangedScheduler=new s.RunOnceScheduler(()=>this.revealCursor(),200),this.localToDispose.add(this.cursorChangedScheduler),this.localToDispose.add(_.FoldingRangeProviderRegistry.onDidChange(()=>this.onFoldingStrategyChanged())),this.localToDispose.add(this.editor.onDidChangeModelLanguageConfiguration(()=>this.onFoldingStrategyChanged())),this.localToDispose.add(this.editor.onDidChangeModelContent(()=>this.onModelContentChanged())),this.localToDispose.add(this.editor.onDidChangeCursorPosition(()=>this.onCursorPositionChanged())),this.localToDispose.add(this.editor.onMouseDown(e=>this.onEditorMouseDown(e))),this.localToDispose.add(this.editor.onMouseUp(e=>this.onEditorMouseUp(e))),this.localToDispose.add({dispose:()=>{ +this.foldingRegionPromise&&(this.foldingRegionPromise.cancel(),this.foldingRegionPromise=null),this.updateScheduler&&this.updateScheduler.cancel(),this.updateScheduler=null,this.foldingModel=null,this.foldingModelPromise=null,this.hiddenRangeModel=null,this.cursorChangedScheduler=null,this.foldingStateMemento=null,this.rangeProvider&&this.rangeProvider.dispose(),this.rangeProvider=null}}),this.onModelContentChanged())}onFoldingStrategyChanged(){this.rangeProvider&&this.rangeProvider.dispose(),this.rangeProvider=null,this.onModelContentChanged()}getRangeProvider(e){if(this.rangeProvider)return this.rangeProvider;if(this.rangeProvider=new f.IndentRangeProvider(e),this._useFoldingProviders&&this.foldingModel){let t=_.FoldingRangeProviderRegistry.ordered(this.foldingModel.textModel);if(0===t.length&&this.foldingStateMemento&&this.foldingStateMemento.collapsedRegions){return this.rangeProvider=new C.InitializingRangeProvider(e,this.foldingStateMemento.collapsedRegions,()=>{this.foldingStateMemento=null, +this.onFoldingStrategyChanged()},3e4)}t.length>0&&(this.rangeProvider=new v.SyntaxRangeProvider(e,t))}return this.foldingStateMemento=null,this.rangeProvider}getFoldingModel(){return this.foldingModelPromise}onModelContentChanged(){this.updateScheduler&&(this.foldingRegionPromise&&(this.foldingRegionPromise.cancel(),this.foldingRegionPromise=null),this.foldingModelPromise=this.updateScheduler.trigger(()=>{const e=this.foldingModel;if(!e)return null;let t=this.foldingRegionPromise=s.createCancelablePromise(t=>this.getRangeProvider(e.textModel).compute(t));return t.then(i=>{if(i&&t===this.foldingRegionPromise){let t=this.editor.getSelections(),n=t?t.map(e=>e.startLineNumber):[];e.update(i,n)}return e})}).then(void 0,e=>(b.onUnexpectedError(e),null)))}onHiddenRangesChanges(e){if(this.hiddenRangeModel&&e.length){let e=this.editor.getSelections();e&&this.hiddenRangeModel.adjustSelections(e)&&this.editor.setSelections(e)}this.editor.setHiddenAreas(e)}onCursorPositionChanged(){ +this.hiddenRangeModel&&this.hiddenRangeModel.hasRanges()&&this.cursorChangedScheduler.schedule()}revealCursor(){const e=this.getFoldingModel();e&&e.then(e=>{if(e){let t=this.editor.getSelections();if(t&&t.length>0){let i=[];for(let n of t){let t=n.selectionStartLineNumber;this.hiddenRangeModel&&this.hiddenRangeModel.isHidden(t)&&i.push(...e.getAllRegionsAtLine(t,e=>e.isCollapsed&&t>e.startLineNumber))}i.length&&(e.toggleCollapseState(i),this.reveal(t[0].getPosition()))}}}).then(void 0,b.onUnexpectedError)}onEditorMouseDown(e){if(this.mouseDownInfo=null,!this.hiddenRangeModel||!e.target||!e.target.range)return;if(!e.event.leftButton&&!e.event.middleButton)return;const t=e.target.range;let i=!1;switch(e.target.type){case 4:const n=e.target.detail,o=e.target.element.offsetLeft;if(n.offsetX-o<5)return;i=!0;break;case 7:if(this._unfoldOnClickAfterEndOfLine&&this.hiddenRangeModel.hasRanges()){if(!e.target.detail.isAfterLines)break}return;case 6:if(this.hiddenRangeModel.hasRanges()){let e=this.editor.getModel() +;if(e&&t.startColumn===e.getLineMaxColumn(t.startLineNumber))break}return;default:return}this.mouseDownInfo={lineNumber:t.startLineNumber,iconClicked:i}}onEditorMouseUp(e){const t=this.getFoldingModel();if(!t||!this.mouseDownInfo||!e.target)return;let i=this.mouseDownInfo.lineNumber,n=this.mouseDownInfo.iconClicked,o=e.target.range;if(o&&o.startLineNumber===i){if(n){if(4!==e.target.type)return}else{let e=this.editor.getModel();if(!e||o.startColumn!==e.getLineMaxColumn(i))return}t.then(t=>{if(t){let o=t.getRegionAtLine(i);if(o&&o.startLineNumber===i){let s=o.isCollapsed;if(n||s){let n=[],r=e.event.middleButton||e.event.shiftKey;if(r)for(const e of t.getRegionsInside(o))e.isCollapsed===s&&n.push(e);!s&&r&&0!==n.length||n.push(o),t.toggleCollapseState(n),this.reveal({lineNumber:i,column:1})}}}}).then(void 0,b.onUnexpectedError)}}reveal(e){this.editor.revealPositionInCenterIfOutsideViewport(e,0)}};L.ID="editor.contrib.folding",L=a([l(1,S.IContextKeyService)],L),t.FoldingController=L +;class x extends c.EditorAction{runEditorCommand(e,t,i){let n=L.get(t);if(!n)return;let o=n.getFoldingModel();return o?(this.reportTelemetry(e,t),o.then(e=>{if(e){this.invoke(n,e,t,i);const o=t.getSelection();o&&n.reveal(o.getStartPosition())}})):void 0}getSelectedLines(e){let t=e.getSelections();return t?t.map(e=>e.startLineNumber):[]}getLineNumbers(e,t){return e&&e.selectionLines?e.selectionLines.map(e=>e+1):this.getSelectedLines(t)}run(e,t){}}function D(e){if(!n.isUndefined(e)){if(!n.isObject(e))return!1;const t=e;if(!n.isUndefined(t.levels)&&!n.isNumber(t.levels))return!1;if(!n.isUndefined(t.direction)&&!n.isString(t.direction))return!1;if(!(n.isUndefined(t.selectionLines)||n.isArray(t.selectionLines)&&t.selectionLines.every(n.isNumber)))return!1}return!0}class k extends x{getFoldingLevel(){return parseInt(this.id.substr(k.ID_PREFIX.length))}invoke(e,t,i){h.setCollapseStateAtLevel(t,this.getFoldingLevel(),!0,this.getSelectedLines(i))}}k.ID_PREFIX="editor.foldLevel",k.ID=e=>k.ID_PREFIX+e, +c.registerEditorContribution(L.ID,L),c.registerEditorAction(class extends x{constructor(){super({id:"editor.unfold",label:i.localize(0,null),alias:"Unfold",precondition:E,kbOpts:{kbExpr:g.EditorContextKeys.editorTextFocus,primary:3161,mac:{primary:2649},weight:100},description:{description:"Unfold the content in the editor",args:[{name:"Unfold editor argument",description:"Property-value pairs that can be passed through this argument:\n\t\t\t\t\t\t* 'levels': Number of levels to unfold. If not set, defaults to 1.\n\t\t\t\t\t\t* 'direction': If 'up', unfold given number of levels up otherwise unfolds down.\n\t\t\t\t\t\t* 'selectionLines': The start lines (0-based) of the editor selections to apply the unfold action to. If not set, the active selection(s) will be used.\n\t\t\t\t\t\t",constraint:D,schema:{type:"object",properties:{levels:{type:"number",default:1},direction:{type:"string",enum:["up","down"],default:"down"},selectionLines:{type:"array",items:{type:"number"}}}}}]}})}invoke(e,t,i,n){ +let o=n&&n.levels||1,s=this.getLineNumbers(n,i);n&&"up"===n.direction?h.setCollapseStateLevelsUp(t,!1,o,s):h.setCollapseStateLevelsDown(t,!1,o,s)}}),c.registerEditorAction(class extends x{constructor(){super({id:"editor.unfoldRecursively",label:i.localize(1,null),alias:"Unfold Recursively",precondition:E,kbOpts:{kbExpr:g.EditorContextKeys.editorTextFocus,primary:r.KeyChord(2089,2137),weight:100}})}invoke(e,t,i,n){h.setCollapseStateLevelsDown(t,!1,Number.MAX_VALUE,this.getSelectedLines(i))}}),c.registerEditorAction(class extends x{constructor(){super({id:"editor.fold",label:i.localize(2,null),alias:"Fold",precondition:E,kbOpts:{kbExpr:g.EditorContextKeys.editorTextFocus,primary:3159,mac:{primary:2647},weight:100},description:{description:"Fold the content in the editor",args:[{name:"Fold editor argument", +description:"Property-value pairs that can be passed through this argument:\n\t\t\t\t\t\t\t* 'levels': Number of levels to fold.\n\t\t\t\t\t\t\t* 'direction': If 'up', folds given number of levels up otherwise folds down.\n\t\t\t\t\t\t\t* 'selectionLines': The start lines (0-based) of the editor selections to apply the fold action to. If not set, the active selection(s) will be used.\n\t\t\t\t\t\t\tIf no levels or direction is set, folds the region at the locations or if already collapsed, the first uncollapsed parent instead.\n\t\t\t\t\t\t",constraint:D,schema:{type:"object",properties:{levels:{type:"number"},direction:{type:"string",enum:["up","down"]},selectionLines:{type:"array",items:{type:"number"}}}}}]}})}invoke(e,t,i,n){let o=this.getLineNumbers(n,i);const s=n&&n.levels,r=n&&n.direction;"number"!=typeof s&&"string"!=typeof r?h.setCollapseStateUp(t,!0,o):"up"===r?h.setCollapseStateLevelsUp(t,!0,s||1,o):h.setCollapseStateLevelsDown(t,!0,s||1,o)}}),c.registerEditorAction(class extends x{constructor(){ +super({id:"editor.foldRecursively",label:i.localize(4,null),alias:"Fold Recursively",precondition:E,kbOpts:{kbExpr:g.EditorContextKeys.editorTextFocus,primary:r.KeyChord(2089,2135),weight:100}})}invoke(e,t,i){let n=this.getSelectedLines(i);h.setCollapseStateLevelsDown(t,!0,Number.MAX_VALUE,n)}}),c.registerEditorAction(class extends x{constructor(){super({id:"editor.foldAll",label:i.localize(8,null),alias:"Fold All",precondition:E,kbOpts:{kbExpr:g.EditorContextKeys.editorTextFocus,primary:r.KeyChord(2089,2069),weight:100}})}invoke(e,t,i){h.setCollapseStateLevelsDown(t,!0)}}),c.registerEditorAction(class extends x{constructor(){super({id:"editor.unfoldAll",label:i.localize(9,null),alias:"Unfold All",precondition:E,kbOpts:{kbExpr:g.EditorContextKeys.editorTextFocus,primary:r.KeyChord(2089,2088),weight:100}})}invoke(e,t,i){h.setCollapseStateLevelsDown(t,!1)}}),c.registerEditorAction(class extends x{constructor(){super({id:"editor.foldAllBlockComments",label:i.localize(5,null),alias:"Fold All Block Comments", +precondition:E,kbOpts:{kbExpr:g.EditorContextKeys.editorTextFocus,primary:r.KeyChord(2089,2133),weight:100}})}invoke(e,t,i){if(t.regions.hasTypes())h.setCollapseStateForType(t,_.FoldingRangeKind.Comment.value,!0);else{const e=i.getModel();if(!e)return;let n=m.LanguageConfigurationRegistry.getComments(e.getLanguageIdentifier().id);if(n&&n.blockCommentStartToken){let e=new RegExp("^\\s*"+o.escapeRegExpCharacters(n.blockCommentStartToken));h.setCollapseStateForMatchingLines(t,e,!0)}}}}),c.registerEditorAction(class extends x{constructor(){super({id:"editor.foldAllMarkerRegions",label:i.localize(6,null),alias:"Fold All Regions",precondition:E,kbOpts:{kbExpr:g.EditorContextKeys.editorTextFocus,primary:r.KeyChord(2089,2077),weight:100}})}invoke(e,t,i){if(t.regions.hasTypes())h.setCollapseStateForType(t,_.FoldingRangeKind.Region.value,!0);else{const e=i.getModel();if(!e)return;let n=m.LanguageConfigurationRegistry.getFoldingRules(e.getLanguageIdentifier().id);if(n&&n.markers&&n.markers.start){ +let e=new RegExp(n.markers.start);h.setCollapseStateForMatchingLines(t,e,!0)}}}}),c.registerEditorAction(class extends x{constructor(){super({id:"editor.unfoldAllMarkerRegions",label:i.localize(7,null),alias:"Unfold All Regions",precondition:E,kbOpts:{kbExpr:g.EditorContextKeys.editorTextFocus,primary:r.KeyChord(2089,2078),weight:100}})}invoke(e,t,i){if(t.regions.hasTypes())h.setCollapseStateForType(t,_.FoldingRangeKind.Region.value,!1);else{const e=i.getModel();if(!e)return;let n=m.LanguageConfigurationRegistry.getFoldingRules(e.getLanguageIdentifier().id);if(n&&n.markers&&n.markers.start){let e=new RegExp(n.markers.start);h.setCollapseStateForMatchingLines(t,e,!1)}}}}),c.registerEditorAction(class extends x{constructor(){super({id:"editor.toggleFold",label:i.localize(3,null),alias:"Toggle Fold",precondition:E,kbOpts:{kbExpr:g.EditorContextKeys.editorTextFocus,primary:r.KeyChord(2089,2090),weight:100}})}invoke(e,t,i){let n=this.getSelectedLines(i);h.toggleCollapseState(t,1,n)}}) +;for(let e=1;e<=7;e++)c.registerInstantiatedEditorAction(new k({id:k.ID(e),label:i.localize(10,null,e),alias:`Fold Level ${e}`,precondition:E,kbOpts:{kbExpr:g.EditorContextKeys.editorTextFocus,primary:r.KeyChord(2089,2048|21+e),weight:100}}));t.foldBackgroundBackground=y.registerColor("editor.foldBackground",{light:y.transparent(y.editorSelectionBackground,.3),dark:y.transparent(y.editorSelectionBackground,.3),hc:null},i.localize(11,null),!0),t.editorFoldForeground=y.registerColor("editorGutter.foldingControlForeground",{dark:y.iconForeground,light:y.iconForeground,hc:y.iconForeground},i.localize(12,null)),w.registerThemingParticipant((e,i)=>{const n=e.getColor(t.foldBackgroundBackground);n&&i.addRule(`.monaco-editor .folded-background { background-color: ${n}; }`);const o=e.getColor(t.editorFoldForeground);o&&i.addRule(`\n\t\t.monaco-editor .cldr${u.foldingExpandedIcon.cssSelector},\n\t\t.monaco-editor .cldr${u.foldingCollapsedIcon.cssSelector} {\n\t\t\tcolor: ${o} !important;\n\t\t}\n\t\t`)})})), +define(t[611],i([0,1,126,92,153,198,132,14,107,7,468,151,41,2,10,35,64,150]),(function(e,t,i,n,o,s,r,d,c,h,u,g,p,m,f,_,v,C){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AccessibilityProvider=t.OneReferenceRenderer=t.FileReferencesRenderer=t.IdentityProvider=t.StringRepresentationProvider=t.Delegate=t.DataSource=void 0;let b=class{constructor(e){this._resolverService=e}hasChildren(e){return e instanceof i.ReferencesModel||e instanceof i.FileReferences}getChildren(e){if(e instanceof i.ReferencesModel)return e.groups;if(e instanceof i.FileReferences)return e.resolve(this._resolverService).then(e=>e.children);throw new Error("bad tree")}};b=a([l(0,n.ITextModelService)],b),t.DataSource=b;t.Delegate=class{getHeight(){return 23}getTemplateId(e){return e instanceof i.FileReferences?y.id:L.id}};let S=class{constructor(e){this._keybindingService=e}getKeyboardNavigationLabel(e){var t;if(e instanceof i.OneReference){const i=null===(t=e.parent.getPreview(e))||void 0===t?void 0:t.preview(e.range) +;if(i)return i.value}return p.basename(e.uri)}};S=a([l(0,_.IKeybindingService)],S),t.StringRepresentationProvider=S;t.IdentityProvider=class{getId(e){return e instanceof i.OneReference?e.id:e.uri}};let w=class extends m.Disposable{constructor(e,t,i){super(),this._uriLabel=t;const n=document.createElement("div");n.classList.add("reference-file"),this.file=this._register(new o.IconLabel(n,{supportHighlights:!0})),this.badge=new s.CountBadge(h.append(n,h.$(".count"))),this._register(c.attachBadgeStyler(this.badge,i)),e.appendChild(n)}set(e,t){let i=p.dirname(e.uri);this.file.setLabel(g.getBaseLabel(e.uri),this._uriLabel.getUriLabel(i,{relative:!0}),{title:this._uriLabel.getUriLabel(e.uri),matches:t});const n=e.children.length;this.badge.setCount(n),n>1?this.badge.setTitleFormat(u.localize(0,null,n)):this.badge.setTitleFormat(u.localize(1,null,n))}};w=a([l(1,r.ILabelService),l(2,d.IThemeService)],w);let y=class e{constructor(t){this._instantiationService=t,this.templateId=e.id}renderTemplate(e){ +return this._instantiationService.createInstance(w,e)}renderElement(e,t,i){i.set(e.element,v.createMatches(e.filterData))}disposeTemplate(e){e.dispose()}};y.id="FileReferencesRenderer",y=a([l(0,f.IInstantiationService)],y),t.FileReferencesRenderer=y;class E{constructor(e){this.label=new C.HighlightedLabel(e,!1)}set(e,t){var i;const n=null===(i=e.parent.getPreview(e))||void 0===i?void 0:i.preview(e.range);if(n&&n.value){const{value:e,highlight:i}=n;t&&!v.FuzzyScore.isDefault(t)?(this.label.element.classList.toggle("referenceMatch",!1),this.label.set(e,v.createMatches(t))):(this.label.element.classList.toggle("referenceMatch",!0),this.label.set(e,[i]))}else this.label.set(`${p.basename(e.uri)}:${e.range.startLineNumber+1}:${e.range.startColumn+1}`)}}class L{constructor(){this.templateId=L.id}renderTemplate(e){return new E(e)}renderElement(e,t,i){i.set(e.element,e.filterData)}disposeTemplate(){}}t.OneReferenceRenderer=L,L.id="OneReferenceRenderer";t.AccessibilityProvider=class{getWidgetAriaLabel(){ +return u.localize(2,null)}getAriaLabel(e){return e.ariaMessage}}})),define(t[612],i([0,1,474,3,20,22,11,72,398,68,14,49,31,15,12]),(function(e,t,i,n,o,s,r,d,c,h,u,g,p,m,f){"use strict";Object.defineProperty(t,"__esModule",{value:!0});let _=class e{constructor(e,t){this.decorationIds=[],this.editor=e,this.editorWorkerService=t}static get(t){return t.getContribution(e.ID)}dispose(){}run(t,i){this.currentRequest&&this.currentRequest.cancel();const s=this.editor.getSelection(),r=this.editor.getModel();if(!r||!s)return;let a=s;if(a.startLineNumber!==a.endLineNumber)return;const l=new h.EditorState(this.editor,5),d=r.uri;return this.editorWorkerService.canNavigateValueSet(d)?(this.currentRequest=m.createCancelablePromise(e=>this.editorWorkerService.navigateValueSet(d,a,i)),this.currentRequest.then(i=>{if(!i||!i.range||!i.value)return;if(!l.validate(this.editor))return;let s=n.Range.lift(i.range),r=i.range,d=i.value.length-(a.endColumn-a.startColumn);r={startLineNumber:r.startLineNumber,startColumn:r.startColumn, +endLineNumber:r.endLineNumber,endColumn:r.startColumn+i.value.length},d>1&&(a=new o.Selection(a.startLineNumber,a.startColumn,a.endLineNumber,a.endColumn+d-1));const h=new c.InPlaceReplaceCommand(s,a,i.value);this.editor.pushUndoStop(),this.editor.executeCommand(t,h),this.editor.pushUndoStop(),this.decorationIds=this.editor.deltaDecorations(this.decorationIds,[{range:r,options:e.DECORATION}]),this.decorationRemover&&this.decorationRemover.cancel(),this.decorationRemover=m.timeout(350),this.decorationRemover.then(()=>this.decorationIds=this.editor.deltaDecorations(this.decorationIds,[])).catch(f.onUnexpectedError)}).catch(f.onUnexpectedError)):Promise.resolve(void 0)}};_.ID="editor.contrib.inPlaceReplaceController",_.DECORATION=p.ModelDecorationOptions.register({className:"valueSetReplacement"}),_=a([l(1,d.IEditorWorkerService)],_);class v extends r.EditorAction{constructor(){super({id:"editor.action.inPlaceReplace.up",label:i.localize(0,null),alias:"Replace with Previous Value", +precondition:s.EditorContextKeys.writable,kbOpts:{kbExpr:s.EditorContextKeys.editorTextFocus,primary:3154,weight:100}})}run(e,t){const i=_.get(t);return i?i.run(this.id,!0):Promise.resolve(void 0)}}class C extends r.EditorAction{constructor(){super({id:"editor.action.inPlaceReplace.down",label:i.localize(1,null),alias:"Replace with Next Value",precondition:s.EditorContextKeys.writable,kbOpts:{kbExpr:s.EditorContextKeys.editorTextFocus,primary:3156,weight:100}})}run(e,t){const i=_.get(t);return i?i.run(this.id,!1):Promise.resolve(void 0)}}r.registerEditorContribution(_.ID,_),r.registerEditorAction(v),r.registerEditorAction(C),u.registerThemingParticipant((e,t)=>{const i=e.getColor(g.editorBracketMatchBorder);i&&t.addRule(`.monaco-editor.vs .valueSetReplacement { outline: solid 2px ${i}; }`)})})),define(t[613],i([0,1,477,15,25,12,78,2,16,11,31,18,219,525,32,55,21,14,24,40,41,8,337]),(function(e,t,i,n,o,s,d,c,h,u,g,p,m,f,_,v,C,b,S,w,y,E){"use strict";Object.defineProperty(t,"__esModule",{value:!0}), +t.LinkDetector=void 0;const L={general:g.ModelDecorationOptions.register({stickiness:1,collapseOnReplaceEdit:!0,inlineClassName:"detected-link"}),active:g.ModelDecorationOptions.register({stickiness:1,collapseOnReplaceEdit:!0,inlineClassName:"detected-link-active"})};class x{constructor(e,t){this.link=e,this.decorationId=t}static decoration(e,t){return{range:e.range,options:x._getOptions(e,t,!1)}}static _getOptions(e,t,n){const o=Object.assign({},n?L.active:L.general);return o.hoverMessage=function(e,t){const n=e.url&&/^command:/i.test(e.url.toString()),o=e.tooltip?e.tooltip:n?i.localize(0,null):i.localize(1,null),s=t?h.isMacintosh?i.localize(2,null):i.localize(3,null):h.isMacintosh?i.localize(4,null):i.localize(5,null);if(e.url){return new d.MarkdownString("",!0).appendMarkdown(`[${o}](${e.url.toString()}) (${s})`)}return(new d.MarkdownString).appendText(`${o} (${s})`)}(e,t),o}activate(e,t){e.changeDecorationOptions(this.decorationId,x._getOptions(this.link,t,!0))}deactivate(e,t){ +e.changeDecorationOptions(this.decorationId,x._getOptions(this.link,t,!1))}}let D=class e{constructor(e,t,i){this.listenersToRemove=new c.DisposableStore,this.editor=e,this.openerService=t,this.notificationService=i;let o=new m.ClickLinkGesture(e);this.listenersToRemove.add(o),this.listenersToRemove.add(o.onMouseMoveOrRelevantKeyDown(([e,t])=>{this._onEditorMouseMove(e,t)})),this.listenersToRemove.add(o.onExecute(e=>{this.onEditorMouseUp(e)})),this.listenersToRemove.add(o.onCancel(e=>{this.cleanUpActiveLinkDecoration()})),this.enabled=e.getOption(54),this.listenersToRemove.add(e.onDidChangeConfiguration(t=>{const i=e.getOption(54);this.enabled!==i&&(this.enabled=i,this.updateDecorations([]),this.stop(),this.beginCompute())})),this.listenersToRemove.add(e.onDidChangeModelContent(e=>this.onChange())),this.listenersToRemove.add(e.onDidChangeModel(e=>this.onModelChanged())),this.listenersToRemove.add(e.onDidChangeModelLanguage(e=>this.onModelModeChanged())), +this.listenersToRemove.add(p.LinkProviderRegistry.onDidChange(e=>this.onModelModeChanged())),this.timeout=new n.TimeoutTimer,this.computePromise=null,this.activeLinksList=null,this.currentOccurrences={},this.activeLinkDecorationId=null,this.beginCompute()}static get(t){return t.getContribution(e.ID)}onModelChanged(){this.currentOccurrences={},this.activeLinkDecorationId=null,this.stop(),this.beginCompute()}onModelModeChanged(){this.stop(),this.beginCompute()}onChange(){this.timeout.setIfNotSet(()=>this.beginCompute(),e.RECOMPUTE_TIME)}beginCompute(){return r(this,void 0,void 0,(function*(){if(!this.editor.hasModel()||!this.enabled)return;const e=this.editor.getModel();if(p.LinkProviderRegistry.has(e)){this.activeLinksList&&(this.activeLinksList.dispose(),this.activeLinksList=null),this.computePromise=n.createCancelablePromise(t=>f.getLinks(e,t));try{this.activeLinksList=yield this.computePromise,this.updateDecorations(this.activeLinksList.links)}catch(e){s.onUnexpectedError(e)}finally{this.computePromise=null +}}}))}updateDecorations(e){const t="altKey"===this.editor.getOption(61);let i=[],n=Object.keys(this.currentOccurrences);for(let e=0,t=n.length;e{t.activate(e,i),this.activeLinkDecorationId=t.decorationId})}else this.cleanUpActiveLinkDecoration()}cleanUpActiveLinkDecoration(){const e="altKey"===this.editor.getOption(61);if(this.activeLinkDecorationId){const t=this.currentOccurrences[this.activeLinkDecorationId];t&&this.editor.changeDecorations(i=>{t.deactivate(i,e)}), +this.activeLinkDecorationId=null}}onEditorMouseUp(e){if(!this.isEnabled(e))return;const t=this.getLinkOccurrence(e.target.position);t&&this.openLinkOccurrence(t,e.hasSideBySideModifier,!0)}openLinkOccurrence(e,t,n=!1){if(!this.openerService)return;const{link:r}=e;r.resolve(o.CancellationToken.None).then(e=>{if("string"==typeof e&&this.editor.hasModel()){const t=this.editor.getModel().uri;if(t.scheme===w.Schemas.file&&E.startsWith(e,"file:")){const i=S.URI.parse(e);if(i.scheme===w.Schemas.file){const n=y.originalFSPath(i);let o=null;E.startsWith(n,"/./")?o=`.${n.substr(1)}`:E.startsWith(n,"//./")&&(o=`.${n.substr(2)}`),o&&(e=y.joinPath(t,o))}}}return this.openerService.open(e,{openToSide:t,fromUserGesture:n})},e=>{const t=e instanceof Error?e.message:e;"invalid"===t?this.notificationService.warn(i.localize(6,null,r.url.toString())):"missing"===t?this.notificationService.warn(i.localize(7,null)):s.onUnexpectedError(e)})}getLinkOccurrence(e){if(!this.editor.hasModel()||!e)return null +;const t=this.editor.getModel().getDecorationsInRange({startLineNumber:e.lineNumber,startColumn:e.column,endLineNumber:e.lineNumber,endColumn:e.column},0,!0);for(const e of t){const t=this.currentOccurrences[e.id];if(t)return t}return null}isEnabled(e,t){return Boolean(6===e.target.type&&(e.hasTriggerModifier||t&&t.keyCodeIsTriggerKey))}stop(){this.timeout.cancel(),this.activeLinksList&&this.activeLinksList.dispose(),this.computePromise&&(this.computePromise.cancel(),this.computePromise=null)}dispose(){this.listenersToRemove.dispose(),this.stop(),this.timeout.dispose()}};D.ID="editor.linkDetector",D.RECOMPUTE_TIME=1e3,D=a([l(1,v.IOpenerService),l(2,_.INotificationService)],D),t.LinkDetector=D;class k extends u.EditorAction{constructor(){super({id:"editor.action.openLink",label:i.localize(8,null),alias:"Open Link",precondition:void 0})}run(e,t){let i=D.get(t);if(!i)return;if(!t.hasModel())return;let n=t.getSelections();for(let e of n){let t=i.getLinkOccurrence(e.getEndPosition());t&&i.openLinkOccurrence(t,!1)} +}}u.registerEditorContribution(D.ID,D),u.registerEditorAction(k),b.registerThemingParticipant((e,t)=>{const i=e.getColor(C.editorActiveLinkForeground);i&&t.addRule(`.monaco-editor .detected-link-active { color: ${i} !important; }`)})})),define(t[140],i([0,1,478,15,2,48,3,11,17,14,21,338]),(function(e,t,i,n,o,s,r,d,c,h,u){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MessageController=void 0;let g=class e extends o.Disposable{constructor(t,i){super(),this._messageWidget=this._register(new o.MutableDisposable),this._messageListeners=this._register(new o.DisposableStore),this._editor=t,this._visible=e.MESSAGE_VISIBLE.bindTo(i),this._register(this._editor.onDidAttemptReadOnlyEdit(()=>this._onDidAttemptReadOnlyEdit()))}static get(t){return t.getContribution(e.ID)}dispose(){super.dispose(),this._visible.reset()}showMessage(e,t){let i;s.alert(e),this._visible.set(!0),this._messageWidget.clear(),this._messageListeners.clear(),this._messageWidget.value=new m(this._editor,t,e), +this._messageListeners.add(this._editor.onDidBlurEditorText(()=>this.closeMessage())),this._messageListeners.add(this._editor.onDidChangeCursorPosition(()=>this.closeMessage())),this._messageListeners.add(this._editor.onDidDispose(()=>this.closeMessage())),this._messageListeners.add(this._editor.onDidChangeModel(()=>this.closeMessage())),this._messageListeners.add(new n.TimeoutTimer(()=>this.closeMessage(),3e3)),this._messageListeners.add(this._editor.onMouseMove(e=>{e.target.position&&(i?i.containsPosition(e.target.position)||this.closeMessage():i=new r.Range(t.lineNumber-3,1,e.target.position.lineNumber+3,1))}))}closeMessage(){this._visible.reset(),this._messageListeners.clear(),this._messageWidget.value&&this._messageListeners.add(m.fadeOut(this._messageWidget.value))}_onDidAttemptReadOnlyEdit(){this._editor.hasModel()&&this.showMessage(i.localize(0,null),this._editor.getPosition())}};g.ID="editor.contrib.messageController",g.MESSAGE_VISIBLE=new c.RawContextKey("messageVisible",!1), +g=a([l(1,c.IContextKeyService)],g),t.MessageController=g;const p=d.EditorCommand.bindToContribution(g.get);d.registerEditorCommand(new p({id:"leaveEditorMessage",precondition:g.MESSAGE_VISIBLE,handler:e=>e.closeMessage(),kbOpts:{weight:130,primary:9}}));class m{constructor(e,{lineNumber:t,column:i},n){this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._editor=e,this._editor.revealLinesInCenterIfOutsideViewport(t,t,0),this._position={lineNumber:t,column:i-1},this._domNode=document.createElement("div"),this._domNode.classList.add("monaco-editor-overlaymessage");const o=document.createElement("div");o.classList.add("message"),o.textContent=n,this._domNode.appendChild(o);const s=document.createElement("div");s.classList.add("anchor"),this._domNode.appendChild(s),this._editor.addContentWidget(this),this._domNode.classList.add("fadeIn")}static fadeOut(e){let t;const i=()=>{e.dispose(),clearTimeout(t),e.getDomNode().removeEventListener("animationend",i)};return t=setTimeout(i,110), +e.getDomNode().addEventListener("animationend",i),e.getDomNode().classList.add("fadeOut"),{dispose:i}}dispose(){this._editor.removeContentWidget(this)}getId(){return"messageoverlay"}getDomNode(){return this._domNode}getPosition(){return{position:this._position,preference:[1,2]}}}d.registerEditorContribution(g.ID,g),h.registerThemingParticipant((e,t)=>{const i=e.getColor(u.inputValidationInfoBorder);if(i){let n=e.type===h.HIGH_CONTRAST?2:1;t.addRule(`.monaco-editor .monaco-editor-overlaymessage .anchor { border-top-color: ${i}; }`),t.addRule(`.monaco-editor .monaco-editor-overlaymessage .message { border: ${n}px solid ${i}; }`)}const n=e.getColor(u.inputValidationInfoBackground);n&&t.addRule(`.monaco-editor .monaco-editor-overlaymessage .message { background-color: ${n}; }`);const o=e.getColor(u.inputValidationInfoForeground);o&&t.addRule(`.monaco-editor .monaco-editor-overlaymessage .message { color: ${o}; }`)})})),define(t[614],i([0,1,12,144,2,140,10,561,601]),(function(e,t,i,n,o,s,d,c,h){"use strict" +;Object.defineProperty(t,"__esModule",{value:!0}),t.CodeActionUi=void 0;let u=class extends o.Disposable{constructor(e,t,i,s,a){super(),this._editor=e,this.delegate=s,this._activeCodeActions=this._register(new o.MutableDisposable),this._codeActionWidget=new n.Lazy(()=>this._register(a.createInstance(c.CodeActionMenu,this._editor,{onSelectCodeAction:e=>r(this,void 0,void 0,(function*(){this.delegate.applyCodeAction(e,!0)}))}))),this._lightBulbWidget=new n.Lazy(()=>{const e=this._register(a.createInstance(h.LightBulbWidget,this._editor,t,i));return this._register(e.onClick(e=>this.showCodeActionList(e.trigger,e.actions,e,{includeDisabledActions:!1}))),e})}update(e){var t,n,o;return r(this,void 0,void 0,(function*(){if(1!==e.type)return void(null===(t=this._lightBulbWidget.rawValue)||void 0===t||t.hide());let r;try{r=yield e.actions}catch(e){return void i.onUnexpectedError(e)}if(this._lightBulbWidget.getValue().update(r,e.trigger,e.position),2===e.trigger.type){ +if(null===(n=e.trigger.filter)||void 0===n?void 0:n.include){const t=this.tryGetValidActionToApply(e.trigger,r);if(t){try{yield this.delegate.applyCodeAction(t,!1)}finally{r.dispose()}return}if(e.trigger.context){const t=this.getInvalidActionThatWouldHaveBeenApplied(e.trigger,r);if(t&&t.disabled)return s.MessageController.get(this._editor).showMessage(t.disabled,e.trigger.context.position),void r.dispose()}}const t=!!(null===(o=e.trigger.filter)||void 0===o?void 0:o.include);if(e.trigger.context&&(!r.allActions.length||!t&&!r.validActions.length))return s.MessageController.get(this._editor).showMessage(e.trigger.context.notAvailableMessage,e.trigger.context.position),this._activeCodeActions.value=r,void r.dispose();this._activeCodeActions.value=r,this._codeActionWidget.getValue().show(e.trigger,r,e.position,{includeDisabledActions:t})}else this._codeActionWidget.getValue().isVisible?r.dispose():this._activeCodeActions.value=r}))}getInvalidActionThatWouldHaveBeenApplied(e,t){ +if(t.allActions.length)return"first"===e.autoApply&&0===t.validActions.length||"ifSingle"===e.autoApply&&1===t.allActions.length?t.allActions.find(e=>e.disabled):void 0}tryGetValidActionToApply(e,t){if(t.validActions.length)return"first"===e.autoApply&&t.validActions.length>0||"ifSingle"===e.autoApply&&1===t.validActions.length?t.validActions[0]:void 0}showCodeActionList(e,t,i,n){return r(this,void 0,void 0,(function*(){this._codeActionWidget.getValue().show(e,t,i,n)}))}};u=a([l(4,d.IInstantiationService)],u),t.CodeActionUi=u})),define(t[253],i([0,1,144,2,8,11,127,22,136,614,140,450,28,17,10,82,32,56,84,562,124]),(function(e,t,i,n,o,s,d,c,h,u,g,p,m,f,_,v,C,b,S,w,y){"use strict";function E(e){return f.ContextKeyExpr.regex(w.SUPPORTED_CODE_ACTIONS.keys()[0],new RegExp("(\\s|^)"+o.escapeRegExpCharacters(e.value)+"\\b"))}Object.defineProperty(t,"__esModule",{value:!0}), +t.AutoFixAction=t.FixAllAction=t.OrganizeImportsAction=t.SourceAction=t.RefactorAction=t.CodeActionCommand=t.QuickFixAction=t.applyCodeAction=t.QuickFixController=void 0;const L={type:"object",defaultSnippets:[{body:{kind:""}}],properties:{kind:{type:"string",description:p.localize(0,null)},apply:{type:"string",description:p.localize(1,null),default:"ifSingle",enum:["first","ifSingle","never"],enumDescriptions:[p.localize(2,null),p.localize(3,null),p.localize(4,null)]},preferred:{type:"boolean",default:!1,description:p.localize(5,null)}}};let x=class e extends n.Disposable{constructor(e,t,n,o,s){super(),this._instantiationService=s,this._editor=e,this._model=this._register(new w.CodeActionModel(this._editor,t,n,o)),this._register(this._model.onDidChangeState(e=>this.update(e))),this._ui=new i.Lazy(()=>this._register(new u.CodeActionUi(e,N.Id,A.Id,{applyCodeAction:(e,t)=>r(this,void 0,void 0,(function*(){try{yield this._applyCodeAction(e)}finally{t&&this._trigger({type:1,filter:{}})}})) +},this._instantiationService)))}static get(t){return t.getContribution(e.ID)}update(e){this._ui.getValue().update(e)}showCodeActions(e,t,i){return this._ui.getValue().showCodeActionList(e,t,i,{includeDisabledActions:!1})}manualTriggerAtCurrentPosition(e,t,i){if(!this._editor.hasModel())return;g.MessageController.get(this._editor).closeMessage();const n=this._editor.getPosition();this._trigger({type:2,filter:t,autoApply:i,context:{notAvailableMessage:e,position:n}})}_trigger(e){return this._model.trigger(e)}_applyCodeAction(e){return this._instantiationService.invokeFunction(D,e,this._editor)}};function D(e,t,i){return r(this,void 0,void 0,(function*(){const n=e.get(d.IBulkEditService),o=e.get(m.ICommandService),s=e.get(S.ITelemetryService),r=e.get(C.INotificationService);if(s.publicLog2("codeAction.applyCodeAction",{codeActionTitle:t.title,codeActionKind:t.kind,codeActionIsPreferred:!!t.isPreferred}),t.edit&&(yield n.apply(d.ResourceEdit.convert(t.edit),{editor:i,label:t.title})),t.command)try{ +yield o.executeCommand(t.command.id,...t.command.arguments||[])}catch(e){const t=function(e){return"string"==typeof e?e:e instanceof Error&&"string"==typeof e.message?e.message:void 0}(e);r.error("string"==typeof t?t:p.localize(6,null))}}))}function k(e,t,i,n){if(e.hasModel()){const o=x.get(e);o&&o.manualTriggerAtCurrentPosition(t,i,n)}}x.ID="editor.contrib.quickFixController",x=a([l(1,v.IMarkerService),l(2,f.IContextKeyService),l(3,b.IEditorProgressService),l(4,_.IInstantiationService)],x),t.QuickFixController=x,t.applyCodeAction=D;class N extends s.EditorAction{constructor(){super({id:N.Id,label:p.localize(7,null),alias:"Quick Fix...",precondition:f.ContextKeyExpr.and(c.EditorContextKeys.writable,c.EditorContextKeys.hasCodeActionsProvider),kbOpts:{kbExpr:c.EditorContextKeys.editorTextFocus,primary:2132,weight:100}})}run(e,t){return k(t,p.localize(8,null),void 0,void 0)}}t.QuickFixAction=N,N.Id="editor.action.quickFix";class I extends s.EditorCommand{constructor(){super({id:h.codeActionCommandId, +precondition:f.ContextKeyExpr.and(c.EditorContextKeys.writable,c.EditorContextKeys.hasCodeActionsProvider),description:{description:"Trigger a code action",args:[{name:"args",schema:L}]}})}runEditorCommand(e,t,i){const n=y.CodeActionCommandArgs.fromUser(i,{kind:y.CodeActionKind.Empty,apply:"ifSingle"});return k(t,"string"==typeof(null==i?void 0:i.kind)?n.preferred?p.localize(9,null,i.kind):p.localize(10,null,i.kind):n.preferred?p.localize(11,null):p.localize(12,null),{include:n.kind,includeSourceActions:!0,onlyIncludePreferredActions:n.preferred},n.apply)}}t.CodeActionCommand=I;class M extends s.EditorAction{constructor(){super({id:h.refactorCommandId,label:p.localize(13,null),alias:"Refactor...",precondition:f.ContextKeyExpr.and(c.EditorContextKeys.writable,c.EditorContextKeys.hasCodeActionsProvider),kbOpts:{kbExpr:c.EditorContextKeys.editorTextFocus,primary:3120,mac:{primary:1328},weight:100},contextMenuOpts:{group:"1_modification",order:2, +when:f.ContextKeyExpr.and(c.EditorContextKeys.writable,E(y.CodeActionKind.Refactor))},description:{description:"Refactor...",args:[{name:"args",schema:L}]}})}run(e,t,i){const n=y.CodeActionCommandArgs.fromUser(i,{kind:y.CodeActionKind.Refactor,apply:"never"});return k(t,"string"==typeof(null==i?void 0:i.kind)?n.preferred?p.localize(14,null,i.kind):p.localize(15,null,i.kind):n.preferred?p.localize(16,null):p.localize(17,null),{include:y.CodeActionKind.Refactor.contains(n.kind)?n.kind:y.CodeActionKind.None,onlyIncludePreferredActions:n.preferred},n.apply)}}t.RefactorAction=M;class R extends s.EditorAction{constructor(){super({id:h.sourceActionCommandId,label:p.localize(18,null),alias:"Source Action...",precondition:f.ContextKeyExpr.and(c.EditorContextKeys.writable,c.EditorContextKeys.hasCodeActionsProvider),contextMenuOpts:{group:"1_modification",order:2.1,when:f.ContextKeyExpr.and(c.EditorContextKeys.writable,E(y.CodeActionKind.Source))},description:{description:"Source Action...",args:[{name:"args",schema:L}] +}})}run(e,t,i){const n=y.CodeActionCommandArgs.fromUser(i,{kind:y.CodeActionKind.Source,apply:"never"});return k(t,"string"==typeof(null==i?void 0:i.kind)?n.preferred?p.localize(19,null,i.kind):p.localize(20,null,i.kind):n.preferred?p.localize(21,null):p.localize(22,null),{include:y.CodeActionKind.Source.contains(n.kind)?n.kind:y.CodeActionKind.None,includeSourceActions:!0,onlyIncludePreferredActions:n.preferred},n.apply)}}t.SourceAction=R;class T extends s.EditorAction{constructor(){super({id:h.organizeImportsCommandId,label:p.localize(23,null),alias:"Organize Imports",precondition:f.ContextKeyExpr.and(c.EditorContextKeys.writable,E(y.CodeActionKind.SourceOrganizeImports)),kbOpts:{kbExpr:c.EditorContextKeys.editorTextFocus,primary:1581,weight:100}})}run(e,t){return k(t,p.localize(24,null),{include:y.CodeActionKind.SourceOrganizeImports,includeSourceActions:!0},"ifSingle")}}t.OrganizeImportsAction=T;class O extends s.EditorAction{constructor(){super({id:h.fixAllCommandId,label:p.localize(25,null), +alias:"Fix All",precondition:f.ContextKeyExpr.and(c.EditorContextKeys.writable,E(y.CodeActionKind.SourceFixAll))})}run(e,t){return k(t,p.localize(26,null),{include:y.CodeActionKind.SourceFixAll,includeSourceActions:!0},"ifSingle")}}t.FixAllAction=O;class A extends s.EditorAction{constructor(){super({id:A.Id,label:p.localize(27,null),alias:"Auto Fix...",precondition:f.ContextKeyExpr.and(c.EditorContextKeys.writable,E(y.CodeActionKind.QuickFix)),kbOpts:{kbExpr:c.EditorContextKeys.editorTextFocus,primary:1620,mac:{primary:2644},weight:100}})}run(e,t){return k(t,p.localize(28,null),{include:y.CodeActionKind.QuickFix,onlyIncludePreferredActions:!0},"ifSingle")}}t.AutoFixAction=A,A.Id="editor.action.autoFix"})),define(t[615],i([0,1,11,253]),(function(e,t,i,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),i.registerEditorContribution(n.QuickFixController.ID,n.QuickFixController),i.registerEditorAction(n.QuickFixAction),i.registerEditorAction(n.RefactorAction),i.registerEditorAction(n.SourceAction), +i.registerEditorAction(n.OrganizeImportsAction),i.registerEditorAction(n.AutoFixAction),i.registerEditorAction(n.FixAllAction),i.registerEditorCommand(new n.CodeActionCommand)})),define(t[616],i([0,1,7,57,48,65,4,2,73,134,176,481,17,55,21,14,575,8,26,23,339]),(function(e,t,i,n,o,s,r,d,c,h,u,g,p,m,f,_,v,C,b,S){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ParameterHintsWidget=void 0;const w=i.$,y=b.registerIcon("parameter-hints-next",b.Codicon.chevronDown),E=b.registerIcon("parameter-hints-previous",b.Codicon.chevronUp);let L=class e extends d.Disposable{constructor(e,t,i,n){super(),this.editor=e,this.renderDisposeables=this._register(new d.DisposableStore),this.visible=!1,this.announcedLabel=null,this.allowEditorOverflow=!0,this.markdownRenderer=this._register(new h.MarkdownRenderer(e,n,i)),this.model=this._register(new v.ParameterHintsModel(e)),this.keyVisible=u.Context.Visible.bindTo(t),this.keyMultipleSignatures=u.Context.MultipleSignatures.bindTo(t), +this._register(this.model.onChangedHints(e=>{e?(this.show(),this.render(e)):this.hide()}))}createParamaterHintDOMNodes(){const e=w(".editor-widget.parameter-hints-widget"),t=i.append(e,w(".wrapper"));t.tabIndex=-1;const o=i.append(t,w(".controls")),a=i.append(o,w(".button"+E.cssSelector)),l=i.append(o,w(".overloads")),d=i.append(o,w(".button"+y.cssSelector)),c=n.stop(n.domEvent(a,"click"));this._register(c(this.previous,this));const h=n.stop(n.domEvent(d,"click"));this._register(h(this.next,this));const u=w(".body"),g=new s.DomScrollableElement(u,{});this._register(g),t.appendChild(g.getDomNode());const p=i.append(u,w(".signature")),m=i.append(u,w(".docs"));e.style.userSelect="text",this.domNodes={element:e,signature:p,overloads:l,docs:m,scrollbar:g},this.editor.addContentWidget(this),this.hide(),this._register(this.editor.onDidChangeCursorSelection(e=>{this.visible&&this.editor.layoutContentWidget(this)}));const f=()=>{if(!this.domNodes)return;const e=this.editor.getOption(36) +;this.domNodes.element.style.fontSize=`${e.fontSize}px`};f(),this._register(r.Event.chain(this.editor.onDidChangeConfiguration.bind(this.editor)).filter(e=>e.hasChanged(36)).on(f,null)),this._register(this.editor.onDidLayoutChange(e=>this.updateMaxHeight())),this.updateMaxHeight()}show(){this.visible||(this.domNodes||this.createParamaterHintDOMNodes(),this.keyVisible.set(!0),this.visible=!0,setTimeout(()=>{this.domNodes&&i.addClass(this.domNodes.element,"visible")},100),this.editor.layoutContentWidget(this))}hide(){this.renderDisposeables.clear(),this.visible&&(this.keyVisible.reset(),this.visible=!1,this.announcedLabel=null,this.domNodes&&i.removeClass(this.domNodes.element,"visible"),this.editor.layoutContentWidget(this))}getPosition(){return this.visible?{position:this.editor.getPosition(),preference:[1,2]}:null}render(e){var t;if(this.renderDisposeables.clear(),!this.domNodes)return;const n=e.signatures.length>1;i.toggleClass(this.domNodes.element,"multiple",n),this.keyMultipleSignatures.set(n), +this.domNodes.signature.innerText="",this.domNodes.docs.innerText="";const s=e.signatures[e.activeSignature];if(!s)return;const r=i.append(this.domNodes.signature,w(".code")),a=this.editor.getOption(36);r.style.fontSize=`${a.fontSize}px`,r.style.fontFamily=a.fontFamily;const l=s.parameters.length>0,d=null!==(t=s.activeParameter)&&void 0!==t?t:e.activeParameter;if(l)this.renderParameters(r,s,d);else{i.append(r,w("span")).textContent=s.label}const c=s.parameters[d];if(null==c?void 0:c.documentation){const e=w("span.documentation");if("string"==typeof c.documentation)e.textContent=c.documentation;else{const t=this.renderDisposeables.add(this.markdownRenderer.render(c.documentation));i.addClass(t.element,"markdown-docs"),e.appendChild(t.element)}i.append(this.domNodes.docs,w("p",{},e))}if(void 0===s.documentation);else if("string"==typeof s.documentation)i.append(this.domNodes.docs,w("p",{},s.documentation));else{const e=this.renderDisposeables.add(this.markdownRenderer.render(s.documentation)) +;i.addClass(e.element,"markdown-docs"),i.append(this.domNodes.docs,e.element)}const h=this.hasDocs(s,c);if(i.toggleClass(this.domNodes.signature,"has-docs",h),i.toggleClass(this.domNodes.docs,"empty",!h),this.domNodes.overloads.textContent=C.pad(e.activeSignature+1,e.signatures.length.toString().length)+"/"+e.signatures.length,c){const e=this.getParameterLabel(s,d);this.announcedLabel!==e&&(o.alert(g.localize(0,null,e)),this.announcedLabel=e)}this.editor.layoutContentWidget(this),this.domNodes.scrollbar.scanDomNode()}hasDocs(e,t){return!!(t&&"string"==typeof t.documentation&&S.assertIsDefined(t.documentation).length>0)||(!!(t&&"object"==typeof t.documentation&&S.assertIsDefined(t.documentation).value.length>0)||(!!(e.documentation&&"string"==typeof e.documentation&&S.assertIsDefined(e.documentation).length>0)||!!(e.documentation&&"object"==typeof e.documentation&&S.assertIsDefined(e.documentation.value).length>0)))}renderParameters(e,t,n){ +const[o,s]=this.getParameterLabelOffsets(t,n),r=document.createElement("span");r.textContent=t.label.substring(0,o);const a=document.createElement("span");a.textContent=t.label.substring(o,s),a.className="parameter active";const l=document.createElement("span");l.textContent=t.label.substring(s),i.append(e,r,a,l)}getParameterLabel(e,t){const i=e.parameters[t];return Array.isArray(i.label)?e.label.substring(i.label[0],i.label[1]):i.label}getParameterLabelOffsets(e,t){const i=e.parameters[t];if(i){if(Array.isArray(i.label))return i.label;{const t=e.label.lastIndexOf(i.label);return t>=0?[t,t+i.label.length]:[0,0]}}return[0,0]}next(){this.editor.focus(),this.model.next()}previous(){this.editor.focus(),this.model.previous()}cancel(){this.model.cancel()}getDomNode(){return this.domNodes||this.createParamaterHintDOMNodes(),this.domNodes.element}getId(){return e.ID}trigger(e){this.model.trigger(e,0)}updateMaxHeight(){if(!this.domNodes)return;const e=`${Math.max(this.editor.getLayoutInfo().height/4,250)}px` +;this.domNodes.element.style.maxHeight=e;const t=this.domNodes.element.getElementsByClassName("wrapper");t.length&&(t[0].style.maxHeight=e)}};L.ID="editor.widget.parameterHintsWidget",L=a([l(1,p.IContextKeyService),l(2,m.IOpenerService),l(3,c.IModeService)],L),t.ParameterHintsWidget=L,_.registerThemingParticipant((e,t)=>{const i=e.getColor(f.editorHoverBorder);if(i){const n=e.type===_.HIGH_CONTRAST?2:1;t.addRule(`.monaco-editor .parameter-hints-widget { border: ${n}px solid ${i}; }`),t.addRule(`.monaco-editor .parameter-hints-widget.multiple .body { border-left: 1px solid ${i.transparent(.5)}; }`),t.addRule(`.monaco-editor .parameter-hints-widget .signature.has-docs { border-bottom: 1px solid ${i.transparent(.5)}; }`)}const n=e.getColor(f.editorHoverBackground);n&&t.addRule(`.monaco-editor .parameter-hints-widget { background-color: ${n}; }`);const o=e.getColor(f.textLinkForeground);o&&t.addRule(`.monaco-editor .parameter-hints-widget a { color: ${o}; }`);const s=e.getColor(f.editorHoverForeground) +;s&&t.addRule(`.monaco-editor .parameter-hints-widget { color: ${s}; }`);const r=e.getColor(f.textCodeBlockBackground);r&&t.addRule(`.monaco-editor .parameter-hints-widget code { background-color: ${r}; }`)})})),define(t[617],i([0,1,480,2,10,22,17,11,616,176,18]),(function(e,t,i,n,o,s,r,d,c,h,u){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TriggerParameterHintsAction=void 0;let g=class e extends n.Disposable{constructor(e,t){super(),this.editor=e,this.widget=this._register(t.createInstance(c.ParameterHintsWidget,this.editor))}static get(t){return t.getContribution(e.ID)}cancel(){this.widget.cancel()}previous(){this.widget.previous()}next(){this.widget.next()}trigger(e){this.widget.trigger(e)}};g.ID="editor.controller.parameterHints",g=a([l(1,o.IInstantiationService)],g);class p extends d.EditorAction{constructor(){super({id:"editor.action.triggerParameterHints",label:i.localize(0,null),alias:"Trigger Parameter Hints",precondition:s.EditorContextKeys.hasSignatureHelpProvider,kbOpts:{ +kbExpr:s.EditorContextKeys.editorTextFocus,primary:3082,weight:100}})}run(e,t){const i=g.get(t);i&&i.trigger({triggerKind:u.SignatureHelpTriggerKind.Invoke})}}t.TriggerParameterHintsAction=p,d.registerEditorContribution(g.ID,g),d.registerEditorAction(p);const m=d.EditorCommand.bindToContribution(g.get);d.registerEditorCommand(new m({id:"closeParameterHints",precondition:h.Context.Visible,handler:e=>e.cancel(),kbOpts:{weight:175,kbExpr:s.EditorContextKeys.focus,primary:9,secondary:[1033]}})),d.registerEditorCommand(new m({id:"showPrevParameterHint",precondition:r.ContextKeyExpr.and(h.Context.Visible,h.Context.MultipleSignatures),handler:e=>e.previous(),kbOpts:{weight:175,kbExpr:s.EditorContextKeys.focus,primary:16,secondary:[528],mac:{primary:16,secondary:[528,302]}}})),d.registerEditorCommand(new m({id:"showNextParameterHint",precondition:r.ContextKeyExpr.and(h.Context.Visible,h.Context.MultipleSignatures),handler:e=>e.next(),kbOpts:{weight:175,kbExpr:s.EditorContextKeys.focus,primary:18,secondary:[530],mac:{ +primary:18,secondary:[530,300]}}}))})),define(t[254],i([0,1,52,14,49,2,101,23,85]),(function(e,t,i,n,o,s,r,a,l){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractEditorNavigationQuickAccessProvider=void 0;t.AbstractEditorNavigationQuickAccessProvider=class{constructor(e){this.options=e,this.rangeHighlightDecorationId=void 0}provide(e,t){var i;const n=new s.DisposableStore;e.canAcceptInBackground=!!(null===(i=this.options)||void 0===i?void 0:i.canAcceptInBackground),e.matchOnLabel=e.matchOnDescription=e.matchOnDetail=e.sortByLabel=!1;const o=n.add(new s.MutableDisposable);return o.value=this.doProvide(e,t),n.add(this.onDidActiveTextEditorControlChange(()=>{o.value=void 0,o.value=this.doProvide(e,t)})),n}doProvide(e,t){const i=new s.DisposableStore,n=this.activeTextEditorControl;if(n&&this.canProvideWithTextEditor(n)){const o=r.getCodeEditor(n);if(o){let e=a.withNullAsUndefined(n.saveViewState());i.add(o.onDidChangeCursorPosition(()=>{e=a.withNullAsUndefined(n.saveViewState())})), +i.add(l.once(t.onCancellationRequested)(()=>{e&&n===this.activeTextEditorControl&&n.restoreViewState(e)}))}i.add(s.toDisposable(()=>this.clearDecorations(n))),i.add(this.provideWithTextEditor(n,e,t))}else i.add(this.provideWithoutTextEditor(e,t));return i}canProvideWithTextEditor(e){return!0}gotoLocation(e,t){e.setSelection(t.range),e.revealRangeInCenter(t.range,0),t.preserveFocus||e.focus()}getModel(e){var t;return r.isDiffEditor(e)?null===(t=e.getModel())||void 0===t?void 0:t.modified:e.getModel()}addDecorations(e,t){e.changeDecorations(e=>{const s=[];this.rangeHighlightDecorationId&&(s.push(this.rangeHighlightDecorationId.overviewRulerDecorationId),s.push(this.rangeHighlightDecorationId.rangeHighlightId),this.rangeHighlightDecorationId=void 0);const r=[{range:t,options:{className:"rangeHighlight",isWholeLine:!0}},{range:t,options:{overviewRuler:{color:n.themeColorFromId(o.overviewRulerRangeHighlight),position:i.OverviewRulerLane.Full}}}],[a,l]=e.deltaDecorations(s,r);this.rangeHighlightDecorationId={ +rangeHighlightId:a,overviewRulerDecorationId:l}})}clearDecorations(e){const t=this.rangeHighlightDecorationId;t&&(e.changeDecorations(e=>{e.deltaDecorations([t.overviewRulerDecorationId,t.rangeHighlightId],[])}),this.rangeHighlightDecorationId=void 0)}}})),define(t[618],i([0,1,483,2,254,101]),(function(e,t,i,n,o,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractGotoLineQuickAccessProvider=void 0;class r extends o.AbstractEditorNavigationQuickAccessProvider{constructor(){super({canAcceptInBackground:!0})}provideWithoutTextEditor(e){const t=i.localize(0,null);return e.items=[{label:t}],e.ariaLabel=t,n.Disposable.None}provideWithTextEditor(e,t,i){const o=new n.DisposableStore;o.add(t.onDidAccept(i=>{const[n]=t.selectedItems;if(n){if(!this.isValidLineNumber(e,n.lineNumber))return;this.gotoLocation(e,{range:this.toRange(n.lineNumber,n.column),keyMods:t.keyMods,preserveFocus:i.inBackground}),i.inBackground||t.hide()}}));const a=()=>{ +const i=this.parsePosition(e,t.value.trim().substr(r.PREFIX.length)),n=this.getPickLabel(e,i.lineNumber,i.column);if(t.items=[{lineNumber:i.lineNumber,column:i.column,label:n}],t.ariaLabel=n,!this.isValidLineNumber(e,i.lineNumber))return void this.clearDecorations(e);const o=this.toRange(i.lineNumber,i.column);e.revealRangeInCenter(o,0),this.addDecorations(e,o)};a(),o.add(t.onDidChangeValue(()=>a()));const l=s.getCodeEditor(e);if(l){2===l.getOptions().get(52).renderType&&(l.updateOptions({lineNumbers:"on"}),o.add(n.toDisposable(()=>l.updateOptions({lineNumbers:"relative"}))))}return o}toRange(e=1,t=1){return{startLineNumber:e,startColumn:t,endLineNumber:e,endColumn:t}}parsePosition(e,t){const i=t.split(/,|:|#/).map(e=>parseInt(e,10)).filter(e=>!isNaN(e)),n=this.lineCount(e)+1;return{lineNumber:i[0]>0?i[0]:n+i[0],column:i[1]}}getPickLabel(e,t,n){if(this.isValidLineNumber(e,t))return this.isValidColumn(e,t,n)?i.localize(1,null,t,n):i.localize(2,null,t);const o=e.getPosition()||{lineNumber:1,column:1 +},s=this.lineCount(e);return s>1?i.localize(3,null,o.lineNumber,o.column,s):i.localize(4,null,o.lineNumber,o.column)}isValidLineNumber(e,t){return!(!t||"number"!=typeof t)&&(t>0&&t<=this.lineCount(e))}isValidColumn(e,t,i){if(!i||"number"!=typeof i)return!1;const n=this.getModel(e);if(!n)return!1;const o={lineNumber:t,column:i};return n.validatePosition(o).equals(o)}lineCount(e){var t,i;return null!==(i=null===(t=this.getModel(e))||void 0===t?void 0:t.getLineCount())&&void 0!==i?i:0}}t.AbstractGotoLineQuickAccessProvider=r,r.PREFIX=":"})),define(t[619],i([0,1,484,25,2,3,254,18,237,8,278,50,26]),(function(e,t,i,n,o,s,a,l,d,c,h,u,g){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractGotoSymbolQuickAccessProvider=void 0;class p extends a.AbstractEditorNavigationQuickAccessProvider{constructor(e=Object.create(null)){super(e),this.options=e,e.canAcceptInBackground=!0}provideWithoutTextEditor(e){return this.provideLabelPick(e,i.localize(0,null)),o.Disposable.None}provideWithTextEditor(e,t,i){ +const n=this.getModel(e);return n?l.DocumentSymbolProviderRegistry.has(n)?this.doProvideWithEditorSymbols(e,n,t,i):this.doProvideWithoutEditorSymbols(e,n,t,i):o.Disposable.None}doProvideWithoutEditorSymbols(e,t,n,s){const a=new o.DisposableStore;return this.provideLabelPick(n,i.localize(1,null)),(()=>r(this,void 0,void 0,(function*(){(yield this.waitForLanguageSymbolRegistry(t,a))&&!s.isCancellationRequested&&a.add(this.doProvideWithEditorSymbols(e,t,n,s))})))(),a}provideLabelPick(e,t){e.items=[{label:t,index:0,kind:14}],e.ariaLabel=t}waitForLanguageSymbolRegistry(e,t){return r(this,void 0,void 0,(function*(){if(l.DocumentSymbolProviderRegistry.has(e))return!0;let i;const n=new Promise(e=>i=e),s=t.add(l.DocumentSymbolProviderRegistry.onDidChange(()=>{l.DocumentSymbolProviderRegistry.has(e)&&(s.dispose(),i(!0))}));return t.add(o.toDisposable(()=>i(!1))),n}))}doProvideWithEditorSymbols(e,t,s,a){const l=new o.DisposableStore;l.add(s.onDidAccept(t=>{const[i]=s.selectedItems;i&&i.range&&(this.gotoLocation(e,{ +range:i.range.selection,keyMods:s.keyMods,preserveFocus:t.inBackground}),t.inBackground||s.hide())})),l.add(s.onDidTriggerItemButton(({item:t})=>{t&&t.range&&(this.gotoLocation(e,{range:t.range.selection,keyMods:s.keyMods,forceSideBySide:!0}),s.hide())}));const d=this.getDocumentSymbols(t,!0,a);let c=void 0;const u=()=>r(this,void 0,void 0,(function*(){null==c||c.dispose(!0),s.busy=!1,c=new n.CancellationTokenSource(a),s.busy=!0;try{const e=h.prepareQuery(s.value.substr(p.PREFIX.length).trim()),t=yield this.doGetSymbolPicks(d,e,void 0,c.token);if(a.isCancellationRequested)return;t.length>0?s.items=t:e.original.length>0?this.provideLabelPick(s,i.localize(2,null)):this.provideLabelPick(s,i.localize(3,null))}finally{a.isCancellationRequested||(s.busy=!1)}}));l.add(s.onDidChangeValue(()=>u())),u();let g=!0;return l.add(s.onDidChangeActive(()=>{const[t]=s.activeItems;if(t&&t.range){if(g)return void(g=!1);e.revealRangeInCenter(t.range.selection,0),this.addDecorations(e,t.range.decoration)}})),l} +doGetSymbolPicks(e,t,n,o){return r(this,void 0,void 0,(function*(){const r=yield e;if(o.isCancellationRequested)return[];const a=0===t.original.indexOf(p.SCOPE_PREFIX),d=a?1:0;let u,_;t.values&&t.values.length>1?(u=h.pieceToQuery(t.values[0]),_=h.pieceToQuery(t.values.slice(1))):u=t;const v=[];for(let e=0;ed){let e=!1;if(u!==t&&([C,b]=h.scoreFuzzy2(p,Object.assign(Object.assign({},t),{values:void 0}),d,m),"number"==typeof C&&(e=!0)),"number"!=typeof C&&([C,b]=h.scoreFuzzy2(p,u,d,m),"number"!=typeof C))continue;if(!e&&_){if(f&&_.original.length>0&&([S,w]=h.scoreFuzzy2(f,_)),"number"!=typeof S)continue;"number"==typeof C&&(C+=S)}}const y=o.tags&&o.tags.indexOf(1)>=0;v.push({index:e,kind:o.kind,score:C, +label:p,ariaLabel:a,description:f,highlights:y?void 0:{label:b,description:w},range:{selection:s.Range.collapseToStart(o.selectionRange),decoration:o.range},strikethrough:y,buttons:(()=>{var e,t;const n=(null===(e=this.options)||void 0===e?void 0:e.openSideBySideDirection)?null===(t=this.options)||void 0===t?void 0:t.openSideBySideDirection():void 0;if(n)return[{iconClass:"right"===n?g.Codicon.splitHorizontal.classNames:g.Codicon.splitVertical.classNames,tooltip:"right"===n?i.localize(4,null):i.localize(5,null)}]})()})}const C=v.sort((e,t)=>a?this.compareByKindAndScore(e,t):this.compareByScore(e,t));let b=[];if(a){let e=void 0,t=void 0,i=0;function S(){t&&"number"==typeof e&&i>0&&(t.label=c.format(f[e]||m,i))}for(const n of C)e!==n.kind?(S(),e=n.kind,i=1,t={type:"separator"},b.push(t)):i++,b.push(n);S()}else C.length>0&&(b=[{label:i.localize(6,null,v.length),type:"separator"},...C]);return b}))}compareByScore(e,t){if("number"!=typeof e.score&&"number"==typeof t.score)return 1 +;if("number"==typeof e.score&&"number"!=typeof t.score)return-1;if("number"==typeof e.score&&"number"==typeof t.score){if(e.score>t.score)return-1;if(e.scoret.index?1:0}compareByKindAndScore(e,t){const i=f[e.kind]||m,n=f[t.kind]||m,o=i.localeCompare(n);return 0===o?this.compareByScore(e,t):o}getDocumentSymbols(e,t,i){return r(this,void 0,void 0,(function*(){const n=yield d.OutlineModel.create(e,i);if(i.isCancellationRequested)return[];const o=[];for(const e of n.children.values())e instanceof d.OutlineElement?o.push(e.symbol):o.push(...u.Iterable.map(e.children.values(),e=>e.symbol));let r=[];return t?this.flattenDocumentSymbols(r,o,""):r=o,r.sort((e,t)=>s.Range.compareRangesUsingStarts(e.range,t.range))}))}flattenDocumentSymbols(e,t,i){for(const n of t)e.push({kind:n.kind,tags:n.tags,name:n.name,detail:n.detail,containerName:n.containerName||i,range:n.range,selectionRange:n.selectionRange,children:void 0}), +n.children&&this.flattenDocumentSymbols(e,n.children,n.name)}}t.AbstractGotoSymbolQuickAccessProvider=p,p.PREFIX="@",p.SCOPE_PREFIX=":",p.PREFIX_BY_CATEGORY=`${p.PREFIX}${p.SCOPE_PREFIX}`;const m=i.localize(7,null),f={5:i.localize(8,null),11:i.localize(9,null),8:i.localize(10,null),12:i.localize(11,null),4:i.localize(12,null),22:i.localize(13,null),23:i.localize(14,null),24:i.localize(15,null),10:i.localize(16,null),2:i.localize(17,null),3:i.localize(18,null),25:i.localize(19,null),1:i.localize(20,null),6:i.localize(21,null),9:i.localize(22,null),21:i.localize(23,null),14:i.localize(24,null),0:i.localize(25,null),17:i.localize(26,null),15:i.localize(27,null),16:i.localize(28,null),18:i.localize(29,null),19:i.localize(30,null),7:i.localize(31,null),13:i.localize(32,null)}})),define(t[620],i([0,1,485,11,19,2,13,25,3,18,15,31,17,22,24,27,12,8,21,14,29,42,341]),(function(e,t,i,n,o,s,d,c,h,u,g,p,m,f,_,v,C,b,S,w,y,E){"use strict";Object.defineProperty(t,"__esModule",{value:!0}), +t.editorOnTypeRenameBackground=t.getOnTypeRenameRanges=t.OnTypeRenameAction=t.OnTypeRenameContribution=t.CONTEXT_ONTYPE_RENAME_INPUT_VISIBLE=void 0,t.CONTEXT_ONTYPE_RENAME_INPUT_VISIBLE=new m.RawContextKey("onTypeRenameInputVisible",!1);let L=class e extends s.Disposable{constructor(e,i){super(),this._debounceDuration=200,this._localToDispose=this._register(new s.DisposableStore),this._editor=e,this._enabled=!1,this._visibleContextKey=t.CONTEXT_ONTYPE_RENAME_INPUT_VISIBLE.bindTo(i),this._currentDecorations=[],this._languageWordPattern=null,this._currentWordPattern=null,this._ignoreChangeEvent=!1,this._localToDispose=this._register(new s.DisposableStore),this._rangeUpdateTriggerPromise=null,this._rangeSyncTriggerPromise=null,this._currentRequest=null,this._currentRequestPosition=null,this._currentRequestModelVersion=null,this._register(this._editor.onDidChangeModel(()=>this.reinitialize())),this._register(this._editor.onDidChangeConfiguration(e=>{e.hasChanged(73)&&this.reinitialize()})), +this._register(u.OnTypeRenameProviderRegistry.onDidChange(()=>this.reinitialize())),this._register(this._editor.onDidChangeModelLanguage(()=>this.reinitialize())),this.reinitialize()}static get(t){return t.getContribution(e.ID)}reinitialize(){const e=this._editor.getModel(),t=null!==e&&this._editor.getOption(73)&&u.OnTypeRenameProviderRegistry.has(e);if(t===this._enabled)return;if(this._enabled=t,this.clearRanges(),this._localToDispose.clear(),!t||null===e)return;this._languageWordPattern=E.LanguageConfigurationRegistry.getWordDefinition(e.getLanguageIdentifier().id),this._localToDispose.add(e.onDidChangeLanguageConfiguration(()=>{this._languageWordPattern=E.LanguageConfigurationRegistry.getWordDefinition(e.getLanguageIdentifier().id)}));const i=new g.Delayer(this._debounceDuration),n=()=>{this._rangeUpdateTriggerPromise=i.trigger(()=>this.updateRanges(),this._debounceDuration)},o=new g.Delayer(0),s=e=>{this._rangeSyncTriggerPromise=o.trigger(()=>this._syncRanges(e))} +;this._localToDispose.add(this._editor.onDidChangeCursorPosition(()=>{n()})),this._localToDispose.add(this._editor.onDidChangeModelContent(t=>{if(!this._ignoreChangeEvent&&this._currentDecorations.length>0){const i=e.getDecorationRange(this._currentDecorations[0]);if(i&&t.changes.every(e=>i.intersectRanges(e.range)))return void s(this._currentDecorations)}n()})),this._localToDispose.add({dispose:()=>{i.cancel(),o.cancel()}}),this.updateRanges()}_syncRanges(e){if(!this._editor.hasModel()||e!==this._currentDecorations||0===e.length)return;const t=this._editor.getModel(),i=t.getDecorationRange(e[0]);if(!i||i.startLineNumber!==i.endLineNumber)return this.clearRanges();const n=t.getValueInRange(i);if(this._currentWordPattern){const e=n.match(this._currentWordPattern);if((e?e[0].length:0)!==n.length)return this.clearRanges()}let o=[];for(let i=1,s=e.length;i1)return void this.clearRanges();const n=this._editor.getModel(),o=n.getVersionId();if(this._currentRequestPosition&&this._currentRequestModelVersion===o){if(i.equals(this._currentRequestPosition))return;if(this._currentDecorations&&this._currentDecorations.length>0){const e=n.getDecorationRange(this._currentDecorations[0]);if(e&&e.containsPosition(i))return}}this._currentRequestPosition=i,this._currentRequestModelVersion=o;const s=g.createCancelablePromise(t=>r(this,void 0,void 0,(function*(){try{const r=yield k(n,i,t);if(s!==this._currentRequest)return;if(this._currentRequest=null,o!==n.getVersionId())return;let a=[];(null==r?void 0:r.ranges)&&(a=r.ranges),this._currentWordPattern=(null==r?void 0:r.wordPattern)||this._languageWordPattern;let l=!1;for(let e=0,t=a.length;e({range:t, +options:e.DECORATION}));this._visibleContextKey.set(!0),this._currentDecorations=this._editor.deltaDecorations(this._currentDecorations,d)}catch(e){C.isPromiseCanceledError(e)||C.onUnexpectedError(e),this._currentRequest!==s&&this._currentRequest||this.clearRanges()}})));return this._currentRequest=s,s}))}};L.ID="editor.contrib.onTypeRename",L.DECORATION=p.ModelDecorationOptions.register({stickiness:0,className:"on-type-rename-decoration"}),L=a([l(1,m.IContextKeyService)],L),t.OnTypeRenameContribution=L;class x extends n.EditorAction{constructor(){super({id:"editor.action.onTypeRename",label:i.localize(0,null),alias:"On Type Rename Symbol",precondition:m.ContextKeyExpr.and(f.EditorContextKeys.writable,f.EditorContextKeys.hasRenameProvider),kbOpts:{kbExpr:f.EditorContextKeys.editorTextFocus,primary:3132,weight:100}})}runCommand(e,t){const i=e.get(v.ICodeEditorService),[n,o]=Array.isArray(t)&&t||[void 0,void 0];return _.URI.isUri(n)&&d.Position.isIPosition(o)?i.openCodeEditor({resource:n +},i.getActiveCodeEditor()).then(e=>{e&&(e.setPosition(o),e.invokeWithinContext(t=>(this.reportTelemetry(t,e),this.run(t,e))))},C.onUnexpectedError):super.runCommand(e,t)}run(e,t){const i=L.get(t);return i?Promise.resolve(i.updateRanges(!0)):Promise.resolve()}}t.OnTypeRenameAction=x;const D=n.EditorCommand.bindToContribution(L.get);function k(e,t,i){const n=u.OnTypeRenameProviderRegistry.ordered(e);return g.first(n.map(n=>()=>Promise.resolve(n.provideOnTypeRenameRanges(e,t,i)).then(e=>{if(e)return{ranges:e.ranges,wordPattern:e.wordPattern||n.wordPattern}},e=>{C.onUnexpectedExternalError(e)})),e=>!!e&&o.isNonEmptyArray(null==e?void 0:e.ranges))}n.registerEditorCommand(new D({id:"cancelOnTypeRenameInput",precondition:t.CONTEXT_ONTYPE_RENAME_INPUT_VISIBLE,handler:e=>e.clearRanges(),kbOpts:{kbExpr:f.EditorContextKeys.editorTextFocus,weight:199,primary:9,secondary:[1033]}})),t.getOnTypeRenameRanges=k,t.editorOnTypeRenameBackground=S.registerColor("editor.onTypeRenameBackground",{ +dark:y.Color.fromHex("#f00").transparent(.3),light:y.Color.fromHex("#f00").transparent(.3),hc:y.Color.fromHex("#f00").transparent(.3)},i.localize(1,null)),w.registerThemingParticipant((e,i)=>{const n=e.getColor(t.editorOnTypeRenameBackground);n&&i.addRule(`.monaco-editor .on-type-rename-decoration { background: ${n}; border-left-color: ${n}; }`)}),n.registerModelAndPositionCommand("_executeRenameOnTypeProvider",(e,t)=>k(e,t,c.CancellationToken.None)),n.registerEditorContribution(L.ID,L),n.registerEditorAction(x)})),define(t[621],i([0,1,2,13,487,17,21,14,35,342]),(function(e,t,i,n,o,s,r,d,c){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RenameInputField=t.CONTEXT_RENAME_INPUT_VISIBLE=void 0,t.CONTEXT_RENAME_INPUT_VISIBLE=new s.RawContextKey("renameInputVisible",!1);let h=class{constructor(e,n,o,s,r){this._editor=e,this._acceptKeybindings=n,this._themeService=o,this._keybindingService=s,this._disposables=new i.DisposableStore,this.allowEditorOverflow=!0, +this._visibleContextKey=t.CONTEXT_RENAME_INPUT_VISIBLE.bindTo(r),this._editor.addContentWidget(this),this._disposables.add(this._editor.onDidChangeConfiguration(e=>{e.hasChanged(36)&&this._updateFont()})),this._disposables.add(o.onDidColorThemeChange(this._updateStyles,this))}dispose(){this._disposables.dispose(),this._editor.removeContentWidget(this)}getId(){return"__renameInputWidget"}getDomNode(){if(!this._domNode){this._domNode=document.createElement("div"),this._domNode.className="monaco-editor rename-box",this._input=document.createElement("input"),this._input.className="rename-input",this._input.type="text",this._input.setAttribute("aria-label",o.localize(0,null)),this._domNode.appendChild(this._input),this._label=document.createElement("div"),this._label.className="rename-label",this._domNode.appendChild(this._label);const e=()=>{var e,t;const[i,n]=this._acceptKeybindings;this._keybindingService.lookupKeybinding(i), +this._label.innerText=o.localize(1,null,null===(e=this._keybindingService.lookupKeybinding(i))||void 0===e?void 0:e.getLabel(),null===(t=this._keybindingService.lookupKeybinding(n))||void 0===t?void 0:t.getLabel())};e(),this._disposables.add(this._keybindingService.onDidUpdateKeybindings(e)),this._updateFont(),this._updateStyles(this._themeService.getColorTheme())}return this._domNode}_updateStyles(e){var t,i,n,o;if(!this._input||!this._domNode)return;const s=e.getColor(r.widgetShadow);this._domNode.style.backgroundColor=String(null!==(t=e.getColor(r.editorWidgetBackground))&&void 0!==t?t:""),this._domNode.style.boxShadow=s?` 0 2px 8px ${s}`:"",this._domNode.style.color=String(null!==(i=e.getColor(r.inputForeground))&&void 0!==i?i:""),this._input.style.backgroundColor=String(null!==(n=e.getColor(r.inputBackground))&&void 0!==n?n:"");const a=e.getColor(r.inputBorder);this._input.style.borderWidth=a?"1px":"0px",this._input.style.borderStyle=a?"solid":"none", +this._input.style.borderColor=null!==(o=null==a?void 0:a.toString())&&void 0!==o?o:"none"}_updateFont(){if(!this._input||!this._label)return;const e=this._editor.getOption(36);this._input.style.fontFamily=e.fontFamily,this._input.style.fontWeight=e.fontWeight,this._input.style.fontSize=`${e.fontSize}px`,this._label.style.fontSize=`${.8*e.fontSize}px`}getPosition(){return this._visible?{position:this._position,preference:[2,1]}:null}acceptInput(e){this._currentAcceptInput&&this._currentAcceptInput(e)}cancelInput(e){this._currentCancelInput&&this._currentCancelInput(e)}getInput(e,t,o,s,r,a){this._domNode.classList.toggle("preview",r),this._position=new n.Position(e.startLineNumber,e.startColumn),this._input.value=t,this._input.setAttribute("selectionStart",o.toString()),this._input.setAttribute("selectionEnd",s.toString()),this._input.size=Math.max(1.1*(e.endColumn-e.startColumn),20);const l=new i.DisposableStore;return new Promise(e=>{this._currentCancelInput=t=>(this._currentAcceptInput=void 0, +this._currentCancelInput=void 0,e(t),!0),this._currentAcceptInput=i=>{0!==this._input.value.trim().length&&this._input.value!==t?(this._currentAcceptInput=void 0,this._currentCancelInput=void 0,e({newName:this._input.value,wantsPreview:r&&i})):this.cancelInput(!0)},a.onCancellationRequested(()=>this.cancelInput(!0)),l.add(this._editor.onDidBlurEditorWidget(()=>this.cancelInput(!1))),this._show()}).finally(()=>{l.dispose(),this._hide()})}_show(){this._editor.revealLineInCenterIfOutsideViewport(this._position.lineNumber,0),this._visible=!0,this._visibleContextKey.set(!0),this._editor.layoutContentWidget(this),setTimeout(()=>{this._input.focus(),this._input.setSelectionRange(parseInt(this._input.getAttribute("selectionStart")),parseInt(this._input.getAttribute("selectionEnd")))},100)}_hide(){this._visible=!1,this._visibleContextKey.reset(),this._editor.layoutContentWidget(this)}};h=a([l(2,d.IThemeService),l(3,c.IKeybindingService),l(4,s.IContextKeyService)],h),t.RenameInputField=h})), +define(t[622],i([0,1,486,12,17,56,11,22,621,18,13,48,3,140,68,32,127,24,27,25,2,15,81,10,34,93,130,23]),(function(e,t,i,n,o,s,d,c,h,u,g,p,m,f,_,v,C,b,S,w,y,E,L,x,D,k,N,I){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RenameAction=t.rename=void 0;class M{constructor(e,t){this.model=e,this.position=t,this._providerRenameIdx=0,this._providers=u.RenameProviderRegistry.ordered(e)}hasProvider(){return this._providers.length>0}resolveRenameLocation(e){return r(this,void 0,void 0,(function*(){const t=[];for(this._providerRenameIdx=0;this._providerRenameIdx0?t.join("\n"):void 0}:{range:m.Range.fromPositions(this.position),text:"",rejectReason:t.length>0?t.join("\n"):void 0}}))}provideRenameEdits(e,t){return r(this,void 0,void 0,(function*(){return this._provideRenameEdits(e,this._providerRenameIdx,[],t)}))}_provideRenameEdits(e,t,n,o){return r(this,void 0,void 0,(function*(){const s=this._providers[t];if(!s)return{edits:[],rejectReason:n.join("\n")};const r=yield s.provideRenameEdits(this.model,this.position,e,o);return r?r.rejectReason?this._provideRenameEdits(e,t+1,n.concat(r.rejectReason),o):r:this._provideRenameEdits(e,t+1,n.concat(i.localize(0,null)),o)}))}}function R(e,t,i){return r(this,void 0,void 0,(function*(){const n=new M(e,t),o=yield n.resolveRenameLocation(w.CancellationToken.None);return(null==o?void 0:o.rejectReason)?{edits:[],rejectReason:o.rejectReason}:n.provideRenameEdits(i,w.CancellationToken.None)}))}t.rename=R;let T=class e{constructor(e,t,i,n,o,s,r){this.editor=e,this._instaService=t,this._notificationService=i, +this._bulkEditService=n,this._progressService=o,this._logService=s,this._configService=r,this._dispoableStore=new y.DisposableStore,this._cts=new w.CancellationTokenSource,this._renameInputField=this._dispoableStore.add(new E.IdleValue(()=>this._dispoableStore.add(this._instaService.createInstance(h.RenameInputField,this.editor,["acceptRenameInput","acceptRenameInputWithPreview"]))))}static get(t){return t.getContribution(e.ID)}dispose(){this._dispoableStore.dispose(),this._cts.dispose(!0)}run(){return r(this,void 0,void 0,(function*(){if(this._cts.dispose(!0),!this.editor.hasModel())return;const e=this.editor.getPosition(),t=new M(this.editor.getModel(),e);if(!t.hasProvider())return;let n;this._cts=new _.EditorStateCancellationTokenSource(this.editor,5);try{const e=t.resolveRenameLocation(this._cts.token);this._progressService.showWhile(e,250),n=yield e}catch(t){return void f.MessageController.get(this.editor).showMessage(t||i.localize(1,null),e)}if(!n)return +;if(n.rejectReason)return void f.MessageController.get(this.editor).showMessage(n.rejectReason,e);if(this._cts.token.isCancellationRequested)return;this._cts.dispose(),this._cts=new _.EditorStateCancellationTokenSource(this.editor,5,n.range);let o=this.editor.getSelection(),s=0,a=n.text.length;m.Range.isEmpty(o)||m.Range.spansMultipleLines(o)||!m.Range.containsRange(n.range,o)||(s=Math.max(0,o.startColumn-n.range.startColumn),a=Math.min(n.range.endColumn,o.endColumn)-n.range.startColumn);const l=this._bulkEditService.hasPreviewHandler()&&this._configService.getValue(this.editor.getModel().uri,"editor.rename.enablePreview"),d=yield this._renameInputField.value.getInput(n.range,n.text,s,a,l,this._cts.token);if("boolean"==typeof d)return void(d&&this.editor.focus());this.editor.focus();const c=E.raceCancellation(t.provideRenameEdits(d.newName,this._cts.token),this._cts.token).then(e=>r(this,void 0,void 0,(function*(){ +e&&this.editor.hasModel()&&(e.rejectReason?this._notificationService.info(e.rejectReason):this._bulkEditService.apply(C.ResourceEdit.convert(e),{editor:this.editor,showPreview:d.wantsPreview,label:i.localize(2,null,null==n?void 0:n.text),quotableLabel:i.localize(3,null,null==n?void 0:n.text)}).then(e=>{e.ariaSummary&&p.alert(i.localize(4,null,n.text,d.newName,e.ariaSummary))}).catch(e=>{this._notificationService.error(i.localize(5,null)),this._logService.error(e)}))})),e=>{this._notificationService.error(i.localize(6,null)),this._logService.error(e)});return this._progressService.showWhile(c,250),c}))}acceptRenameInput(e){this._renameInputField.value.acceptInput(e)}cancelRenameInput(){this._renameInputField.value.cancelInput(!0)}};T.ID="editor.contrib.renameController",T=a([l(1,x.IInstantiationService),l(2,v.INotificationService),l(3,C.IBulkEditService),l(4,s.IEditorProgressService),l(5,L.ILogService),l(6,N.ITextResourceConfigurationService)],T);class O extends d.EditorAction{constructor(){super({ +id:"editor.action.rename",label:i.localize(7,null),alias:"Rename Symbol",precondition:o.ContextKeyExpr.and(c.EditorContextKeys.writable,c.EditorContextKeys.hasRenameProvider),kbOpts:{kbExpr:c.EditorContextKeys.editorTextFocus,primary:60,weight:100},contextMenuOpts:{group:"1_modification",order:1.1}})}runCommand(e,t){const i=e.get(S.ICodeEditorService),[o,s]=Array.isArray(t)&&t||[void 0,void 0];return b.URI.isUri(o)&&g.Position.isIPosition(s)?i.openCodeEditor({resource:o},i.getActiveCodeEditor()).then(e=>{e&&(e.setPosition(s),e.invokeWithinContext(t=>(this.reportTelemetry(t,e),this.run(t,e))))},n.onUnexpectedError):super.runCommand(e,t)}run(e,t){const i=T.get(t);return i?i.run():Promise.resolve()}}t.RenameAction=O,d.registerEditorContribution(T.ID,T),d.registerEditorAction(O);const A=d.EditorCommand.bindToContribution(T.get);d.registerEditorCommand(new A({id:"acceptRenameInput",precondition:h.CONTEXT_RENAME_INPUT_VISIBLE,handler:e=>e.acceptRenameInput(!1),kbOpts:{weight:199,kbExpr:c.EditorContextKeys.focus, +primary:3}})),d.registerEditorCommand(new A({id:"acceptRenameInputWithPreview",precondition:o.ContextKeyExpr.and(h.CONTEXT_RENAME_INPUT_VISIBLE,o.ContextKeyExpr.has("config.editor.rename.enablePreview")),handler:e=>e.acceptRenameInput(!0),kbOpts:{weight:199,kbExpr:c.EditorContextKeys.focus,primary:1027}})),d.registerEditorCommand(new A({id:"cancelRenameInput",precondition:h.CONTEXT_RENAME_INPUT_VISIBLE,handler:e=>e.cancelRenameInput(),kbOpts:{weight:199,kbExpr:c.EditorContextKeys.focus,primary:9,secondary:[1033]}})),d.registerModelAndPositionCommand("_executeDocumentRenameProvider",(function(e,t,...i){const[n]=i;return I.assertType("string"==typeof n),R(e,t,n)})),D.Registry.as(k.Extensions.Configuration).registerConfiguration({id:"editor",properties:{"editor.rename.enablePreview":{scope:5,description:i.localize(8,null),default:!0,type:"boolean"}}})})), +define(t[623],i([0,1,491,64,8,4,12,2,7,118,65,35,17,137,84,107,14,21,76,134,73,55,15,18,153,541,44,24,10,229,78,19,33,79,26,91,344,345,115,605]),(function(e,t,i,n,o,s,d,c,h,u,g,p,m,f,_,v,C,b,S,w,y,E,L,x,D,k,N,I,M,R,T,O,A,P,F,W){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SuggestWidget=t.editorSuggestWidgetHighlightForeground=t.editorSuggestWidgetSelectedBackground=t.editorSuggestWidgetForeground=t.editorSuggestWidgetBorder=t.editorSuggestWidgetBackground=void 0;const B=F.registerIcon("suggest-more-info",F.Codicon.chevronRight);t.editorSuggestWidgetBackground=b.registerColor("editorSuggestWidget.background",{dark:b.editorWidgetBackground,light:b.editorWidgetBackground,hc:b.editorWidgetBackground},i.localize(0,null)),t.editorSuggestWidgetBorder=b.registerColor("editorSuggestWidget.border",{dark:b.editorWidgetBorder,light:b.editorWidgetBorder,hc:b.editorWidgetBorder},i.localize(1,null)),t.editorSuggestWidgetForeground=b.registerColor("editorSuggestWidget.foreground",{dark:b.editorForeground, +light:b.editorForeground,hc:b.editorForeground},i.localize(2,null)),t.editorSuggestWidgetSelectedBackground=b.registerColor("editorSuggestWidget.selectedBackground",{dark:b.listFocusBackground,light:b.listFocusBackground,hc:b.listFocusBackground},i.localize(3,null)),t.editorSuggestWidgetHighlightForeground=b.registerColor("editorSuggestWidget.highlightForeground",{dark:b.listHighlightForeground,light:b.listHighlightForeground,hc:b.listHighlightForeground},i.localize(4,null));const V=/^(#([\da-f]{3}){1,2}|(rgb|hsl)a\(\s*(\d{1,3}%?\s*,\s*){3}(1|0?\.\d+)\)|(rgb|hsl)\(\s*\d{1,3}%?(\s*,\s*\d{1,3}%?){2}\s*\))$/i;function z(e){if(!e)return!1;const t=e.completion;return!!t.documentation||t.detail&&t.detail!==t.label}function H(e){return`suggest-aria-id:${e}`}let K=class{constructor(e,t,i,n,o,s){this.widget=e,this.editor=t,this.triggerKeybindingLabel=i,this._modelService=n,this._modeService=o,this._themeService=s}get templateId(){return"suggestion"}renderTemplate(e){const t=Object.create(null) +;t.disposables=new c.DisposableStore,t.root=e,t.root.classList.add("show-file-icons"),t.icon=h.append(e,h.$(".icon")),t.colorspan=h.append(t.icon,h.$("span.colorspan"));const n=h.append(e,h.$(".contents")),o=h.append(n,h.$(".main"));t.iconContainer=h.append(o,h.$(".icon-label.codicon")),t.left=h.append(o,h.$("span.left")),t.right=h.append(o,h.$("span.right")),t.iconLabel=new D.IconLabel(t.left,{supportHighlights:!0,supportCodicons:!0}),t.disposables.add(t.iconLabel),t.parametersLabel=h.append(t.left,h.$("span.signature-label")),t.qualifierLabel=h.append(t.left,h.$("span.qualifier-label")),t.detailsLabel=h.append(t.right,h.$("span.details-label")),t.readMore=h.append(t.right,h.$("span.readMore"+B.cssSelector)),t.readMore.title=i.localize(5,null,this.triggerKeybindingLabel);const r=()=>{const e=this.editor.getOptions(),i=e.get(36),n=i.fontFamily,s=i.fontFeatureSettings,r=e.get(97)||i.fontSize,a=e.get(98)||i.lineHeight,l=i.fontWeight,d=`${r}px`,c=`${a}px`;t.root.style.fontSize=d,t.root.style.fontWeight=l, +o.style.fontFamily=n,o.style.fontFeatureSettings=s,o.style.lineHeight=c,t.icon.style.height=c,t.icon.style.width=c,t.readMore.style.height=c,t.readMore.style.width=c};return r(),t.disposables.add(s.Event.chain(this.editor.onDidChangeConfiguration.bind(this.editor)).filter(e=>e.hasChanged(36)||e.hasChanged(97)||e.hasChanged(98)).on(r,null)),t}renderElement(e,t,i){const o=i,s=e.completion,r="string"==typeof s.label?s.label:s.label.name;o.root.id=H(t),o.colorspan.style.backgroundColor="";const a={labelEscapeNewLines:!0,matches:n.createMatches(e.score)};let l=[];if(19===s.kind&&function(e,t){const i="string"==typeof e.completion.label?e.completion.label:e.completion.label.name;return i.match(V)?(t[0]=i,!0):!("string"!=typeof e.completion.documentation||!e.completion.documentation.match(V))&&(t[0]=e.completion.documentation,!0)}(e,l))o.icon.className="icon customcolor",o.iconContainer.className="icon hide", +o.colorspan.style.backgroundColor=l[0];else if(20===s.kind&&this._themeService.getFileIconTheme().hasFileIcons){o.icon.className="icon hide",o.iconContainer.className="icon hide";const e=k.getIconClasses(this._modelService,this._modeService,I.URI.from({scheme:"fake",path:r}),R.FileKind.FILE),t=k.getIconClasses(this._modelService,this._modeService,I.URI.from({scheme:"fake",path:s.detail}),R.FileKind.FILE);a.extraClasses=e.length>t.length?e:t}else 23===s.kind&&this._themeService.getFileIconTheme().hasFolderIcons?(o.icon.className="icon hide",o.iconContainer.className="icon hide",a.extraClasses=O.flatten([k.getIconClasses(this._modelService,this._modeService,I.URI.from({scheme:"fake",path:r}),R.FileKind.FOLDER),k.getIconClasses(this._modelService,this._modeService,I.URI.from({scheme:"fake",path:s.detail}),R.FileKind.FOLDER)])):(o.icon.className="icon hide",o.iconContainer.className="",h.addClasses(o.iconContainer,`suggest-icon ${x.completionKindToCssClass(s.kind)}`)) +;s.tags&&s.tags.indexOf(1)>=0&&(a.extraClasses=(a.extraClasses||[]).concat(["deprecated"]),a.matches=[]),o.iconLabel.setLabel(r,void 0,a),"string"==typeof s.label?(o.parametersLabel.textContent="",o.qualifierLabel.textContent="",o.detailsLabel.textContent=(s.detail||"").replace(/\n.*$/m,""),o.root.classList.add("string-label")):(o.parametersLabel.textContent=(s.label.parameters||"").replace(/\n.*$/m,""),o.qualifierLabel.textContent=(s.label.qualifier||"").replace(/\n.*$/m,""),o.detailsLabel.textContent=(s.label.type||"").replace(/\n.*$/m,""),o.root.classList.remove("string-label")),z(e)?(o.right.classList.add("can-expand-details"),h.show(o.readMore),o.readMore.onmousedown=e=>{e.stopPropagation(),e.preventDefault()},o.readMore.onclick=e=>{e.stopPropagation(),e.preventDefault(),this.widget.toggleDetails()}):(o.right.classList.remove("can-expand-details"),h.hide(o.readMore),o.readMore.onmousedown=null,o.readMore.onclick=null)}disposeTemplate(e){e.disposables.dispose()}} +;K=a([l(3,N.IModelService),l(4,y.IModeService),l(5,C.IThemeService)],K);class U{constructor(e,t,n,o,r){this.widget=t,this.editor=n,this.markdownRenderer=o,this.kbToggleDetails=r,this.borderWidth=1,this.disposables=new c.DisposableStore,this.el=h.append(e,h.$(".details")),this.disposables.add(c.toDisposable(()=>e.removeChild(this.el))),this.body=h.$(".body"),this.scrollbar=new g.DomScrollableElement(this.body,{}),h.append(this.el,this.scrollbar.getDomNode()),this.disposables.add(this.scrollbar),this.header=h.append(this.body,h.$(".header")),this.close=h.append(this.header,h.$("span"+F.Codicon.close.cssSelector)),this.close.title=i.localize(6,null,this.kbToggleDetails),this.type=h.append(this.header,h.$("p.type")),this.docs=h.append(this.body,h.$("p.docs")),this.configureFont(),s.Event.chain(this.editor.onDidChangeConfiguration.bind(this.editor)).filter(e=>e.hasChanged(36)).on(this.configureFont,this,this.disposables),o.onDidRenderCodeBlock(()=>this.scrollbar.scanDomNode(),this,this.disposables)}get element(){ +return this.el}renderLoading(){this.type.textContent=i.localize(7,null),this.docs.textContent=""}renderItem(e,t){c.dispose(this.renderDisposeable),this.renderDisposeable=void 0;let{documentation:i,detail:n}=e.completion;if(t){let t="";t+=`score: ${e.score[0]}${e.word?`, compared '${e.completion.filterText&&e.completion.filterText+" (filterText)"||e.completion.label}' with '${e.word}'`:" (no prefix)"}\n`,t+=`distance: ${e.distance}, see localityBonus-setting\n`,t+=`index: ${e.idx}, based on ${e.completion.sortText&&`sortText: "${e.completion.sortText}"`||"label"}\n`,i=(new T.MarkdownString).appendCodeblock("empty",t),n=`Provider: ${e.provider._debugDisplayName}`}if(!t&&!z(e))return this.type.textContent="",this.docs.textContent="",void this.el.classList.add("no-docs");if(this.el.classList.remove("no-docs"),"string"==typeof i)this.docs.classList.remove("markdown-docs"),this.docs.textContent=i;else{this.docs.classList.add("markdown-docs"),this.docs.innerText="";const e=this.markdownRenderer.render(i) +;this.renderDisposeable=e,this.docs.appendChild(e.element)}n?(this.type.innerText=n.length>1e5?`${n.substr(0,1e5)}…`:n,h.show(this.type)):(this.type.innerText="",h.hide(this.type)),this.el.style.height=this.header.offsetHeight+this.docs.offsetHeight+2*this.borderWidth+"px",this.el.style.userSelect="text",this.el.tabIndex=-1,this.close.onmousedown=e=>{e.preventDefault(),e.stopPropagation()},this.close.onclick=e=>{e.preventDefault(),e.stopPropagation(),this.widget.toggleDetails()},this.body.scrollTop=0,this.scrollbar.scanDomNode()}scrollDown(e=8){this.body.scrollTop+=e}scrollUp(e=8){this.body.scrollTop-=e}scrollTop(){this.body.scrollTop=0}scrollBottom(){this.body.scrollTop=this.body.scrollHeight}pageDown(){this.scrollDown(80)}pageUp(){this.scrollUp(80)}setBorderWidth(e){this.borderWidth=e}configureFont(){const e=this.editor.getOptions(),t=e.get(36),i=t.fontFamily,n=e.get(97)||t.fontSize,o=e.get(98)||t.lineHeight,s=t.fontWeight,r=`${n}px`,a=`${o}px`;this.el.style.fontSize=r,this.el.style.fontWeight=s, +this.el.style.fontFeatureSettings=t.fontFeatureSettings,this.type.style.fontFamily=i,this.close.style.height=a,this.close.style.width=a}dispose(){this.disposables.dispose(),c.dispose(this.renderDisposeable),this.renderDisposeable=void 0}}let $=class e{constructor(e,n,r,a,l,d,g,p,m,_){var C,S;this.editor=e,this.telemetryService=n,this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this.state=0,this.isAddedAsContentWidget=!1,this.isAuto=!1,this.loadingTimeout=c.Disposable.None,this.currentSuggestionDetails=null,this.ignoreFocusEvents=!1,this.completionModel=null,this.showTimeout=new L.TimeoutTimer,this.toDispose=new c.DisposableStore,this.onDidSelectEmitter=new s.Emitter,this.onDidFocusEmitter=new s.Emitter,this.onDidHideEmitter=new s.Emitter,this.onDidShowEmitter=new s.Emitter,this.onDidSelect=this.onDidSelectEmitter.event,this.onDidFocus=this.onDidFocusEmitter.event,this.onDidHide=this.onDidHideEmitter.event,this.onDidShow=this.onDidShowEmitter.event,this.maxWidgetWidth=660,this.listWidth=330, +this.firstFocusInCurrentList=!1,this.preferDocPositionTop=!1,this.docsPositionPreviousWidgetY=null,this.explainMode=!1,this._onDetailsKeydown=new s.Emitter,this.onDetailsKeyDown=this._onDetailsKeydown.event;const y=this.toDispose.add(new w.MarkdownRenderer(e,g,p)),E=null!==(S=null===(C=r.lookupKeybinding("toggleSuggestionDetails"))||void 0===C?void 0:C.getLabel())&&void 0!==S?S:"";this.isAuto=!1,this.focusedItem=null,this.storageService=d,this.element=h.$(".editor-widget.suggest-widget"),this.toDispose.add(h.addDisposableListener(this.element,"click",e=>{e.target===this.element&&this.hideWidget()})),this.messageElement=h.append(this.element,h.$(".message")),this.listElement=h.append(this.element,h.$(".tree"));const x=()=>this.element.classList.toggle("with-status-bar",this.editor.getOption(96).statusBar.visible);x(),this.statusBarElement=h.append(this.element,h.$(".suggest-status-bar"));const D=e=>{const t=r.lookupKeybindings(e.id);return new class extends W.ActionViewItem{constructor(){super(void 0,e,{ +label:!0,icon:!1})}updateLabel(){if(O.isFalsyOrEmpty(t)||!this.label)return super.updateLabel();const{label:e}=this.getAction();this.label.textContent=/{\d}/.test(e)?o.format(this.getAction().label,t[0].getLabel()):`${this.getAction().label} (${t[0].getLabel()})`}}},k=new P.ActionBar(this.statusBarElement,{actionViewItemProvider:D}),N=new P.ActionBar(this.statusBarElement,{actionViewItemProvider:D}),I=m.createMenu(f.suggestWidgetStatusbarMenu,a);this.toDispose.add(I.onDidChange(()=>(()=>{const e=[],t=[];for(let[i,n]of I.getActions())"left"===i?e.push(...n):t.push(...n);k.clear(),k.push(e),N.clear(),N.push(t)})())),this.toDispose.add(I),this.details=_.createInstance(U,this.element,this,this.editor,y,E);const M=()=>this.element.classList.toggle("no-icons",!this.editor.getOption(96).showIcons);M();let R=_.createInstance(K,this,this.editor,E);this.list=new u.List("SuggestWidget",this.listElement,this,[R],{useShadows:!1,mouseSupport:!1,accessibilityProvider:{getRole:()=>"option",getAriaLabel:e=>{ +const t="string"==typeof e.completion.label?e.completion.label:e.completion.label.name;if(e.isResolved&&this.expandDocsSettingFromStorage()){const{documentation:n,detail:s}=e.completion,r=o.format("{0}{1}",s||"",n?"string"==typeof n?n:n.value:"");return i.localize(10,null,t,r)}return t},getWidgetAriaLabel:()=>i.localize(11,null),getWidgetRole:()=>"listbox"}}),this.toDispose.add(v.attachListStyler(this.list,l,{listInactiveFocusBackground:t.editorSuggestWidgetSelectedBackground,listInactiveFocusOutline:b.activeContrastBorder})),this.toDispose.add(l.onDidColorThemeChange(e=>this.onThemeChange(e))),this.toDispose.add(e.onDidLayoutChange(()=>this.onEditorLayoutChange())),this.toDispose.add(this.list.onMouseDown(e=>this.onListMouseDownOrTap(e))),this.toDispose.add(this.list.onTap(e=>this.onListMouseDownOrTap(e))),this.toDispose.add(this.list.onDidChangeSelection(e=>this.onListSelection(e))),this.toDispose.add(this.list.onDidChangeFocus(e=>this.onListFocus(e))), +this.toDispose.add(this.editor.onDidChangeCursorSelection(()=>this.onCursorSelectionChanged())),this.toDispose.add(this.editor.onDidChangeConfiguration(e=>{e.hasChanged(96)&&(x(),M())})),this.ctxSuggestWidgetVisible=f.Context.Visible.bindTo(a),this.ctxSuggestWidgetDetailsVisible=f.Context.DetailsVisible.bindTo(a),this.ctxSuggestWidgetMultipleSuggestions=f.Context.MultipleSuggestions.bindTo(a),this.onThemeChange(l.getColorTheme()),this.toDispose.add(h.addStandardDisposableListener(this.details.element,"keydown",e=>{this._onDetailsKeydown.fire(e)})),this.toDispose.add(this.editor.onMouseDown(e=>this.onEditorMouseDown(e)))}onEditorMouseDown(e){this.details.element.contains(e.target.element)?this.details.element.focus():this.element.contains(e.target.element)&&this.editor.focus()}onCursorSelectionChanged(){0!==this.state&&this.editor.layoutContentWidget(this)}onEditorLayoutChange(){3!==this.state&&5!==this.state||!this.expandDocsSettingFromStorage()||this.expandSideOrBelow()}onListMouseDownOrTap(e){ +void 0!==e.element&&void 0!==e.index&&(e.browserEvent.preventDefault(),e.browserEvent.stopPropagation(),this.select(e.element,e.index))}onListSelection(e){e.elements.length&&this.select(e.elements[0],e.indexes[0])}select(e,t){const i=this.completionModel;i&&(this.onDidSelectEmitter.fire({item:e,index:t,model:i}),this.editor.focus())}onThemeChange(e){const i=e.getColor(t.editorSuggestWidgetBackground);i&&(this.listElement.style.backgroundColor=i.toString(),this.statusBarElement.style.backgroundColor=i.toString(),this.details.element.style.backgroundColor=i.toString(),this.messageElement.style.backgroundColor=i.toString());const n=e.getColor(t.editorSuggestWidgetBorder);n&&(this.listElement.style.borderColor=n.toString(),this.statusBarElement.style.borderColor=n.toString(),this.details.element.style.borderColor=n.toString(),this.messageElement.style.borderColor=n.toString(),this.detailsBorderColor=n.toString());const o=e.getColor(b.focusBorder);o&&(this.detailsFocusBorderColor=o.toString()), +this.details.setBorderWidth("hc"===e.type?2:1)}onListFocus(e){if(this.ignoreFocusEvents)return;if(!e.elements.length)return this.currentSuggestionDetails&&(this.currentSuggestionDetails.cancel(),this.currentSuggestionDetails=null,this.focusedItem=null),void this.editor.setAriaOptions({activeDescendant:void 0});if(!this.completionModel)return;const t=e.elements[0],i=e.indexes[0];this.firstFocusInCurrentList=!this.focusedItem,t!==this.focusedItem&&(this.currentSuggestionDetails&&(this.currentSuggestionDetails.cancel(),this.currentSuggestionDetails=null),this.focusedItem=t,this.list.reveal(i),this.currentSuggestionDetails=L.createCancelablePromise(e=>r(this,void 0,void 0,(function*(){const i=L.disposableTimeout(()=>this.showDetails(!0),250);e.onCancellationRequested(()=>i.dispose());const n=yield t.resolve(e);return i.dispose(),n}))),this.currentSuggestionDetails.then(()=>{i>=this.list.length||t!==this.list.element(i)||(this.ignoreFocusEvents=!0,this.list.splice(i,1,[t]),this.list.setFocus([i]), +this.ignoreFocusEvents=!1,this.expandDocsSettingFromStorage()?this.showDetails(!1):this.element.classList.remove("docs-side"),this.editor.setAriaOptions({activeDescendant:H(i)}))}).catch(d.onUnexpectedError)),this.onDidFocusEmitter.fire({item:t,index:i,model:this.completionModel})}setState(t){if(!this.element)return;this.isAddedAsContentWidget||0===t||(this.isAddedAsContentWidget=!0,this.editor.addContentWidget(this));const i=this.state!==t;switch(this.state=t,this.element.classList.toggle("frozen",4===t),t){case 0:h.hide(this.messageElement,this.details.element,this.listElement,this.statusBarElement),this.hide(),this.listHeight=0,i&&this.list.splice(0,this.list.length),this.focusedItem=null;break;case 1:this.messageElement.textContent=e.LOADING_MESSAGE,h.hide(this.listElement,this.details.element,this.statusBarElement),h.show(this.messageElement),this.element.classList.remove("docs-side"),this.show(),this.focusedItem=null;break;case 2:this.messageElement.textContent=e.NO_SUGGESTIONS_MESSAGE, +h.hide(this.listElement,this.details.element,this.statusBarElement),h.show(this.messageElement),this.element.classList.remove("docs-side"),this.show(),this.focusedItem=null;break;case 3:h.hide(this.messageElement),h.show(this.listElement,this.statusBarElement),this.show();break;case 4:h.hide(this.messageElement),h.show(this.listElement),this.show();break;case 5:h.hide(this.messageElement),h.show(this.details.element,this.listElement,this.statusBarElement),this.show()}}showTriggered(e,t){0===this.state&&(this.isAuto=!!e,this.isAuto||(this.loadingTimeout=L.disposableTimeout(()=>this.setState(1),t)))}showSuggestions(e,t,i,n){if(this.preferDocPositionTop=!1,this.docsPositionPreviousWidgetY=null,this.loadingTimeout.dispose(),this.currentSuggestionDetails&&(this.currentSuggestionDetails.cancel(),this.currentSuggestionDetails=null),this.completionModel!==e&&(this.completionModel=e),i&&2!==this.state&&0!==this.state)return void this.setState(4);let o=this.completionModel.items.length;const s=0===o +;if(this.ctxSuggestWidgetMultipleSuggestions.set(o>1),s)n?this.setState(0):this.setState(2),this.completionModel=null;else{if(3!==this.state){const{stats:e}=this.completionModel;e.wasAutomaticallyTriggered=!!n,this.telemetryService.publicLog("suggestWidget",Object.assign({},e))}this.focusedItem=null,this.list.splice(0,this.list.length,this.completionModel.items),i?this.setState(4):this.setState(3),this.list.reveal(t,0),this.list.setFocus([t]),this.detailsBorderColor&&(this.details.element.style.borderColor=this.detailsBorderColor)}}selectNextPage(){switch(this.state){case 0:return!1;case 5:return this.details.pageDown(),!0;case 1:return!this.isAuto;default:return this.list.focusNextPage(),!0}}selectNext(){switch(this.state){case 0:return!1;case 1:return!this.isAuto;default:return this.list.focusNext(1,!0),!0}}selectLast(){switch(this.state){case 0:return!1;case 5:return this.details.scrollBottom(),!0;case 1:return!this.isAuto;default:return this.list.focusLast(),!0}}selectPreviousPage(){switch(this.state){ +case 0:return!1;case 5:return this.details.pageUp(),!0;case 1:return!this.isAuto;default:return this.list.focusPreviousPage(),!0}}selectPrevious(){switch(this.state){case 0:return!1;case 1:return!this.isAuto;default:return this.list.focusPrevious(1,!0),!1}}selectFirst(){switch(this.state){case 0:return!1;case 5:return this.details.scrollTop(),!0;case 1:return!this.isAuto;default:return this.list.focusFirst(),!0}}getFocusedItem(){if(0!==this.state&&2!==this.state&&1!==this.state&&this.completionModel)return{item:this.list.getFocusedElements()[0],index:this.list.getFocus()[0],model:this.completionModel}}toggleDetailsFocus(){5===this.state?(this.setState(3),this.detailsBorderColor&&(this.details.element.style.borderColor=this.detailsBorderColor)):3===this.state&&this.expandDocsSettingFromStorage()&&(this.setState(5),this.detailsFocusBorderColor&&(this.details.element.style.borderColor=this.detailsFocusBorderColor)),this.telemetryService.publicLog2("suggestWidget:toggleDetailsFocus")}toggleDetails(){ +if(z(this.list.getFocusedElements()[0]))if(this.expandDocsSettingFromStorage())this.ctxSuggestWidgetDetailsVisible.set(!1),this.updateExpandDocsSetting(!1),h.hide(this.details.element),this.element.classList.remove("docs-side","doc-below"),this.editor.layoutContentWidget(this),this.telemetryService.publicLog2("suggestWidget:collapseDetails");else{if(3!==this.state&&5!==this.state&&4!==this.state)return;this.ctxSuggestWidgetDetailsVisible.set(!0),this.updateExpandDocsSetting(!0),this.showDetails(!1),this.telemetryService.publicLog2("suggestWidget:expandDetails")}}showDetails(e){e||this.expandSideOrBelow(),h.show(this.details.element),this.details.element.style.maxHeight=this.maxWidgetHeight+"px",e?this.details.renderLoading():this.details.renderItem(this.list.getFocusedElements()[0],this.explainMode),this.listElement.style.marginTop="0px",this.editor.layoutContentWidget(this),this.adjustDocsPosition(),this.editor.focus()}toggleExplainMode(){ +this.list.getFocusedElements()[0]&&this.expandDocsSettingFromStorage()&&(this.explainMode=!this.explainMode,this.showDetails(!1))}show(){const e=this.updateListHeight();e!==this.listHeight&&(this.editor.layoutContentWidget(this),this.listHeight=e),this.ctxSuggestWidgetVisible.set(!0),this.showTimeout.cancelAndSet(()=>{this.element.classList.add("visible"),this.onDidShowEmitter.fire(this)},100)}hide(){this.editor.layoutContentWidget(this),this.ctxSuggestWidgetVisible.reset(),this.ctxSuggestWidgetMultipleSuggestions.reset(),this.element.classList.remove("visible")}hideWidget(){this.loadingTimeout.dispose(),this.setState(0),this.onDidHideEmitter.fire(this)}getPosition(){if(0===this.state)return null;let e=[2,1];return this.preferDocPositionTop&&(e=[1]),{position:this.editor.getPosition(),preference:e}}getDomNode(){return this.element}getId(){return e.ID}isFrozen(){return 4===this.state}updateListHeight(){let e=0;if(2===this.state||1===this.state)e=this.unfocusedHeight;else{ +const t=this.list.contentHeight/this.unfocusedHeight,{maxVisibleSuggestions:i}=this.editor.getOption(96);e=Math.min(t,i)*this.unfocusedHeight}return this.element.style.lineHeight=`${this.unfocusedHeight}px`,this.listElement.style.height=`${e}px`,this.statusBarElement.style.top=`${e}px`,this.list.layout(e),e}adjustDocsPosition(){if(!this.editor.hasModel())return;const e=this.editor.getOption(51),t=this.editor.getScrolledVisiblePosition(this.editor.getPosition()),i=h.getDomNodePagePosition(this.editor.getDomNode()),n=i.left+t.left,o=i.top+t.top+t.height,s=h.getDomNodePagePosition(this.element),r=s.left,a=s.top;if(this.docsPositionPreviousWidgetY&&this.docsPositionPreviousWidgetYa&&this.details.element.offsetHeight>this.listElement.offsetHeight&&(this.listElement.style.marginTop=`${this.details.element.offsetHeight-this.listElement.offsetHeight}px`)}expandSideOrBelow(){if(!z(this.focusedItem)&&this.firstFocusInCurrentList)return void this.element.classList.remove("docs-side","docs-below");let e=this.element.style.maxWidth.match(/(\d+)px/);!e||Number(e[1]){const n=e.getColor(t.editorSuggestWidgetHighlightForeground);n&&i.addRule(`.monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-highlighted-label .highlight { color: ${n}; }`);const o=e.getColor(t.editorSuggestWidgetForeground);o&&i.addRule(`.monaco-editor .suggest-widget { color: ${o}; }`);const s=e.getColor(b.textLinkForeground) +;s&&i.addRule(`.monaco-editor .suggest-widget a { color: ${s}; }`);const r=e.getColor(b.textCodeBlockBackground);r&&i.addRule(`.monaco-editor .suggest-widget code { background-color: ${r}; }`)})})),define(t[624],i([0,1,495,19,15,25,12,2,11,3,22,52,31,18,17,21,14,48]),(function(e,t,i,n,o,s,r,d,c,h,u,g,p,m,f,_,v,C){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getOccurrencesAtPosition=void 0;const b=_.registerColor("editor.wordHighlightBackground",{dark:"#575757B8",light:"#57575740",hc:null},i.localize(0,null),!0),S=_.registerColor("editor.wordHighlightStrongBackground",{dark:"#004972B8",light:"#0e639c40",hc:null},i.localize(1,null),!0),w=_.registerColor("editor.wordHighlightBorder",{light:null,dark:null,hc:_.activeContrastBorder},i.localize(2,null)),y=_.registerColor("editor.wordHighlightStrongBorder",{light:null,dark:null,hc:_.activeContrastBorder},i.localize(3,null)),E=_.registerColor("editorOverviewRuler.wordHighlightForeground",{dark:"#A0A0A0CC",light:"#A0A0A0CC",hc:"#A0A0A0CC" +},i.localize(4,null),!0),L=_.registerColor("editorOverviewRuler.wordHighlightStrongForeground",{dark:"#C0A0C0CC",light:"#C0A0C0CC",hc:"#C0A0C0CC"},i.localize(5,null),!0),x=new f.RawContextKey("hasWordHighlights",!1);function D(e,t,i){const s=m.DocumentHighlightProviderRegistry.ordered(e);return o.first(s.map(n=>()=>Promise.resolve(n.provideDocumentHighlights(e,t,i)).then(void 0,r.onUnexpectedExternalError)),n.isNonEmptyArray)}t.getOccurrencesAtPosition=D;class k{constructor(e,t,i){this._wordRange=this._getCurrentWordRange(e,t),this.result=o.createCancelablePromise(n=>this._compute(e,t,i,n))}_getCurrentWordRange(e,t){const i=e.getWordAtPosition(t.getPosition());return i?new h.Range(t.startLineNumber,i.startColumn,t.startLineNumber,i.endColumn):null}isValid(e,t,i){const n=t.startLineNumber,o=t.startColumn,s=t.endColumn,r=this._getCurrentWordRange(e,t);let a=Boolean(this._wordRange&&this._wordRange.equalsRange(r));for(let t=0,r=i.length;!a&&t=s&&(a=!0)}return a}cancel(){this.result.cancel()}}class N extends k{_compute(e,t,i,n){return D(e,t.getPosition(),n).then(e=>e||[])}}class I extends k{constructor(e,t,i){super(e,t,i),this._selectionIsEmpty=t.isEmpty()}_compute(e,t,i,n){return o.timeout(250,n).then(()=>{if(!t.isEmpty())return[];const n=e.getWordAtPosition(t.getPosition());return!n||n.word.length>1e3?[]:e.findMatches(n.word,!0,!1,!0,i,!1).map(e=>({range:e.range,kind:m.DocumentHighlightKind.Text}))})}isValid(e,t,i){const n=t.isEmpty();return this._selectionIsEmpty===n&&super.isValid(e,t,i)}}c.registerModelAndPositionCommand("_executeDocumentHighlights",(e,t)=>D(e,t,s.CancellationToken.None));class M{constructor(e,t){this.toUnhook=new d.DisposableStore,this.workerRequestTokenId=0,this.workerRequestCompleted=!1,this.workerRequestValue=[],this.lastCursorPositionChangeTime=0,this.renderDecorationsTimer=-1,this.editor=e,this._hasWordHighlights=x.bindTo(t),this._ignorePositionChangeEvent=!1, +this.occurrencesHighlight=this.editor.getOption(63),this.model=this.editor.getModel(),this.toUnhook.add(e.onDidChangeCursorPosition(e=>{this._ignorePositionChangeEvent||this.occurrencesHighlight&&this._onPositionChanged(e)})),this.toUnhook.add(e.onDidChangeModelContent(e=>{this._stopAll()})),this.toUnhook.add(e.onDidChangeConfiguration(e=>{let t=this.editor.getOption(63);this.occurrencesHighlight!==t&&(this.occurrencesHighlight=t,this._stopAll())})),this._decorationIds=[],this.workerRequestTokenId=0,this.workerRequest=null,this.workerRequestCompleted=!1,this.lastCursorPositionChangeTime=0,this.renderDecorationsTimer=-1}hasDecorations(){return this._decorationIds.length>0}restore(){this.occurrencesHighlight&&this._run()}_getSortedHighlights(){return n.coalesce(this._decorationIds.map(e=>this.model.getDecorationRange(e)).sort(h.Range.compareRangesUsingStarts))}moveNext(){let e=this._getSortedHighlights(),t=(n.firstIndex(e,e=>e.containsPosition(this.editor.getPosition()))+1)%e.length,i=e[t];try{ +this._ignorePositionChangeEvent=!0,this.editor.setPosition(i.getStartPosition()),this.editor.revealRangeInCenterIfOutsideViewport(i);const n=this._getWord();if(n){const o=this.editor.getModel().getLineContent(i.startLineNumber);C.alert(`${o}, ${t+1} of ${e.length} for '${n.word}'`)}}finally{this._ignorePositionChangeEvent=!1}}moveBack(){let e=this._getSortedHighlights(),t=(n.firstIndex(e,e=>e.containsPosition(this.editor.getPosition()))-1+e.length)%e.length,i=e[t];try{this._ignorePositionChangeEvent=!0,this.editor.setPosition(i.getStartPosition()),this.editor.revealRangeInCenterIfOutsideViewport(i);const n=this._getWord();if(n){const o=this.editor.getModel().getLineContent(i.startLineNumber);C.alert(`${o}, ${t+1} of ${e.length} for '${n.word}'`)}}finally{this._ignorePositionChangeEvent=!1}}_removeDecorations(){this._decorationIds.length>0&&(this._decorationIds=this.editor.deltaDecorations(this._decorationIds,[]),this._hasWordHighlights.set(!1))}_stopAll(){this._removeDecorations(), +-1!==this.renderDecorationsTimer&&(clearTimeout(this.renderDecorationsTimer),this.renderDecorationsTimer=-1),null!==this.workerRequest&&(this.workerRequest.cancel(),this.workerRequest=null),this.workerRequestCompleted||(this.workerRequestTokenId++,this.workerRequestCompleted=!0)}_onPositionChanged(e){this.occurrencesHighlight&&3===e.reason?this._run():this._stopAll()}_getWord(){let e=this.editor.getSelection(),t=e.startLineNumber,i=e.startColumn;return this.model.getWordAtPosition({lineNumber:t,column:i})}_run(){let e=this.editor.getSelection();if(e.startLineNumber!==e.endLineNumber)return void this._stopAll();let t=e.startColumn,i=e.endColumn;const n=this._getWord();if(!n||n.startColumn>t||n.endColumn{e===this.workerRequestTokenId&&(this.workerRequestCompleted=!0,this.workerRequestValue=t||[],this._beginRenderDecorations())},r.onUnexpectedError)}var s,a,l}_beginRenderDecorations(){let e=(new Date).getTime(),t=this.lastCursorPositionChangeTime+250;e>=t?(this.renderDecorationsTimer=-1,this.renderDecorations()):this.renderDecorationsTimer=setTimeout(()=>{this.renderDecorations()},t-e)}renderDecorations(){this.renderDecorationsTimer=-1;let e=[];for(const t of this.workerRequestValue)t.range&&e.push({range:t.range,options:M._getDecorationOptions(t.kind)});this._decorationIds=this.editor.deltaDecorations(this._decorationIds,e), +this._hasWordHighlights.set(this.hasDecorations())}static _getDecorationOptions(e){return e===m.DocumentHighlightKind.Write?this._WRITE_OPTIONS:e===m.DocumentHighlightKind.Text?this._TEXT_OPTIONS:this._REGULAR_OPTIONS}dispose(){this._stopAll(),this.toUnhook.dispose()}}M._WRITE_OPTIONS=p.ModelDecorationOptions.register({stickiness:1,className:"wordHighlightStrong",overviewRuler:{color:v.themeColorFromId(L),position:g.OverviewRulerLane.Center}}),M._TEXT_OPTIONS=p.ModelDecorationOptions.register({stickiness:1,className:"selectionHighlight",overviewRuler:{color:v.themeColorFromId(_.overviewRulerSelectionHighlightForeground),position:g.OverviewRulerLane.Center}}),M._REGULAR_OPTIONS=p.ModelDecorationOptions.register({stickiness:1,className:"wordHighlight",overviewRuler:{color:v.themeColorFromId(E),position:g.OverviewRulerLane.Center}});let R=class e extends d.Disposable{constructor(e,t){super(),this.wordHighlighter=null;const i=()=>{e.hasModel()&&(this.wordHighlighter=new M(e,t))} +;this._register(e.onDidChangeModel(e=>{this.wordHighlighter&&(this.wordHighlighter.dispose(),this.wordHighlighter=null),i()})),i()}static get(t){return t.getContribution(e.ID)}saveViewState(){return!(!this.wordHighlighter||!this.wordHighlighter.hasDecorations())}moveNext(){this.wordHighlighter&&this.wordHighlighter.moveNext()}moveBack(){this.wordHighlighter&&this.wordHighlighter.moveBack()}restoreViewState(e){this.wordHighlighter&&e&&this.wordHighlighter.restore()}dispose(){this.wordHighlighter&&(this.wordHighlighter.dispose(),this.wordHighlighter=null),super.dispose()}};R.ID="editor.contrib.wordHighlighter",R=a([l(1,f.IContextKeyService)],R);class T extends c.EditorAction{constructor(e,t){super(t),this._isNext=e}run(e,t){const i=R.get(t);i&&(this._isNext?i.moveNext():i.moveBack())}}class O extends c.EditorAction{constructor(){super({id:"editor.action.wordHighlight.trigger",label:i.localize(8,null),alias:"Trigger Symbol Highlight",precondition:x.toNegated(),kbOpts:{kbExpr:u.EditorContextKeys.editorTextFocus, +primary:0,weight:100}})}run(e,t,i){const n=R.get(t);n&&n.restoreViewState(!0)}}c.registerEditorContribution(R.ID,R),c.registerEditorAction(class extends T{constructor(){super(!0,{id:"editor.action.wordHighlight.next",label:i.localize(6,null),alias:"Go to Next Symbol Highlight",precondition:x,kbOpts:{kbExpr:u.EditorContextKeys.editorTextFocus,primary:65,weight:100}})}}),c.registerEditorAction(class extends T{constructor(){super(!1,{id:"editor.action.wordHighlight.prev",label:i.localize(7,null),alias:"Go to Previous Symbol Highlight",precondition:x,kbOpts:{kbExpr:u.EditorContextKeys.editorTextFocus,primary:1089,weight:100}})}}),c.registerEditorAction(O),v.registerThemingParticipant((e,t)=>{const i=e.getColor(_.editorSelectionHighlight);i&&(t.addRule(`.monaco-editor .focused .selectionHighlight { background-color: ${i}; }`),t.addRule(`.monaco-editor .selectionHighlight { background-color: ${i.transparent(.5)}; }`));const n=e.getColor(b);n&&t.addRule(`.monaco-editor .wordHighlight { background-color: ${n}; }`) +;const o=e.getColor(S);o&&t.addRule(`.monaco-editor .wordHighlightStrong { background-color: ${o}; }`);const s=e.getColor(_.editorSelectionHighlightBorder);s&&t.addRule(`.monaco-editor .selectionHighlight { border: 1px ${"hc"===e.type?"dotted":"solid"} ${s}; box-sizing: border-box; }`);const r=e.getColor(w);r&&t.addRule(`.monaco-editor .wordHighlight { border: 1px ${"hc"===e.type?"dashed":"solid"} ${r}; box-sizing: border-box; }`);const a=e.getColor(y);a&&t.addRule(`.monaco-editor .wordHighlightStrong { border: 1px ${"hc"===e.type?"dashed":"solid"} ${a}; box-sizing: border-box; }`)})})),define(t[625],i([0,1,7,30,148,48,54,2,16,8,24,11,22,247,17,10,35,55,21,14,61,347]),(function(e,t,i,n,o,s,r,d,c,h,u,g,p,m,f,_,v,C,b,S,w){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const y=new f.RawContextKey("accessibilityHelpWidgetVisible",!1);let E=class e extends d.Disposable{constructor(e,t){super(),this._editor=e,this._widget=this._register(t.createInstance(L,this._editor))}static get(t){ +return t.getContribution(e.ID)}show(){this._widget.show()}hide(){this._widget.hide()}};E.ID="editor.contrib.accessibilityHelpController",E=a([l(1,_.IInstantiationService)],E);let L=class e extends r.Widget{constructor(e,t,o,r){super(),this._contextKeyService=t,this._keybindingService=o,this._openerService=r,this._editor=e,this._isVisibleKey=y.bindTo(this._contextKeyService),this._domNode=n.createFastDomNode(document.createElement("div")),this._domNode.setClassName("accessibilityHelpWidget"),this._domNode.setDisplay("none"),this._domNode.setAttribute("role","dialog"),this._domNode.setAttribute("aria-hidden","true"),this._contentDomNode=n.createFastDomNode(document.createElement("div")),this._contentDomNode.setAttribute("role","document"),this._domNode.appendChild(this._contentDomNode),this._isVisible=!1,this._register(this._editor.onDidLayoutChange(()=>{this._isVisible&&this._layout()})),this._register(i.addStandardDisposableListener(this._contentDomNode.domNode,"keydown",e=>{ +if(this._isVisible&&(e.equals(2083)&&(s.alert(w.AccessibilityHelpNLS.emergencyConfOn),this._editor.updateOptions({accessibilitySupport:"on"}),i.clearNode(this._contentDomNode.domNode),this._buildContent(),this._contentDomNode.domNode.focus(),e.preventDefault(),e.stopPropagation()),e.equals(2086))){s.alert(w.AccessibilityHelpNLS.openingDocs);let t=this._editor.getRawOptions().accessibilityHelpUrl;void 0===t&&(t="https://go.microsoft.com/fwlink/?linkid=852450"),this._openerService.open(u.URI.parse(t)),e.preventDefault(),e.stopPropagation()}})),this.onblur(this._contentDomNode.domNode,()=>{this.hide()}),this._editor.addOverlayWidget(this)}dispose(){this._editor.removeOverlayWidget(this),super.dispose()}getId(){return e.ID}getDomNode(){return this._domNode.domNode}getPosition(){return{preference:null}}show(){this._isVisible||(this._isVisible=!0,this._isVisibleKey.set(!0),this._layout(),this._domNode.setDisplay("block"),this._domNode.setAttribute("aria-hidden","false"),this._contentDomNode.domNode.tabIndex=0, +this._buildContent(),this._contentDomNode.domNode.focus())}_descriptionForCommand(e,t,i){let n=this._keybindingService.lookupKeybinding(e);return n?h.format(t,n.getAriaLabel()):h.format(i,e)}_buildContent(){const e=this._editor.getOptions(),t=this._editor.getSelections();let i=0;if(t){const e=this._editor.getModel();e&&t.forEach(t=>{i+=e.getValueLengthInRange(t)})}let n=function(e,t){return e&&0!==e.length?1===e.length?t?h.format(w.AccessibilityHelpNLS.singleSelectionRange,e[0].positionLineNumber,e[0].positionColumn,t):h.format(w.AccessibilityHelpNLS.singleSelection,e[0].positionLineNumber,e[0].positionColumn):t?h.format(w.AccessibilityHelpNLS.multiSelectionRange,e.length,t):e.length>0?h.format(w.AccessibilityHelpNLS.multiSelection,e.length):"":w.AccessibilityHelpNLS.noSelection}(t,i);e.get(47)?e.get(72)?n+=w.AccessibilityHelpNLS.readonlyDiffEditor:n+=w.AccessibilityHelpNLS.editableDiffEditor:e.get(72)?n+=w.AccessibilityHelpNLS.readonlyEditor:n+=w.AccessibilityHelpNLS.editableEditor +;const s=c.isMacintosh?w.AccessibilityHelpNLS.changeConfigToOnMac:w.AccessibilityHelpNLS.changeConfigToOnWinLinux;switch(e.get(2)){case 0:n+="\n\n - "+s;break;case 2:n+="\n\n - "+w.AccessibilityHelpNLS.auto_on;break;case 1:n+="\n\n - "+w.AccessibilityHelpNLS.auto_off,n+=" "+s}e.get(116)?n+="\n\n - "+this._descriptionForCommand(m.ToggleTabFocusModeAction.ID,w.AccessibilityHelpNLS.tabFocusModeOnMsg,w.AccessibilityHelpNLS.tabFocusModeOnMsgNoKb):n+="\n\n - "+this._descriptionForCommand(m.ToggleTabFocusModeAction.ID,w.AccessibilityHelpNLS.tabFocusModeOffMsg,w.AccessibilityHelpNLS.tabFocusModeOffMsgNoKb),n+="\n\n - "+(c.isMacintosh?w.AccessibilityHelpNLS.openDocMac:w.AccessibilityHelpNLS.openDocWinLinux),n+="\n\n"+w.AccessibilityHelpNLS.outroMsg,this._contentDomNode.domNode.appendChild(o.renderFormattedText(n)),this._contentDomNode.domNode.setAttribute("aria-label",n)}hide(){this._isVisible&&(this._isVisible=!1,this._isVisibleKey.reset(),this._domNode.setDisplay("none"), +this._domNode.setAttribute("aria-hidden","true"),this._contentDomNode.domNode.tabIndex=-1,i.clearNode(this._contentDomNode.domNode),this._editor.focus())}_layout(){let t=this._editor.getLayoutInfo(),i=Math.max(5,Math.min(e.WIDTH,t.width-40)),n=Math.max(5,Math.min(e.HEIGHT,t.height-40));this._domNode.setWidth(i),this._domNode.setHeight(n);let o=Math.round((t.height-n)/2);this._domNode.setTop(o);let s=Math.round((t.width-i)/2);this._domNode.setLeft(s)}};L.ID="editor.contrib.accessibilityHelpWidget",L.WIDTH=500,L.HEIGHT=300,L=a([l(1,f.IContextKeyService),l(2,v.IKeybindingService),l(3,C.IOpenerService)],L);class x extends g.EditorAction{constructor(){super({id:"editor.action.showAccessibilityHelp",label:w.AccessibilityHelpNLS.showAccessibilityHelpAction,alias:"Show Accessibility Help",precondition:void 0,kbOpts:{kbExpr:p.EditorContextKeys.focus,primary:571,weight:100,linux:{primary:1595,secondary:[571]}}})}run(e,t){let i=E.get(t);i&&i.show()}}g.registerEditorContribution(E.ID,E),g.registerEditorAction(x) +;const D=g.EditorCommand.bindToContribution(E.get);g.registerEditorCommand(new D({id:"closeAccessibilityHelp",precondition:y,handler:e=>e.hide(),kbOpts:{weight:200,kbExpr:p.EditorContextKeys.focus,primary:9,secondary:[1033]}})),S.registerThemingParticipant((e,t)=>{const i=e.getColor(b.editorWidgetBackground);i&&t.addRule(`.monaco-editor .accessibilityHelpWidget { background-color: ${i}; }`);const n=e.getColor(b.editorWidgetForeground);n&&t.addRule(`.monaco-editor .accessibilityHelpWidget { color: ${n}; }`);const o=e.getColor(b.widgetShadow);o&&t.addRule(`.monaco-editor .accessibilityHelpWidget { box-shadow: 0 2px 8px ${o}; }`);const s=e.getColor(b.contrastBorder);s&&t.addRule(`.monaco-editor .accessibilityHelpWidget { border: 2px solid ${s}; }`)})})),define(t[626],i([0,1,7,29,2,11,18,74,73,106,21,14,61,349]),(function(e,t,i,n,o,s,r,d,c,h,u,g,p){"use strict";Object.defineProperty(t,"__esModule",{value:!0});let m=class e extends o.Disposable{constructor(e,t,i){super(),this._editor=e,this._modeService=i, +this._widget=null,this._register(this._editor.onDidChangeModel(e=>this.stop())),this._register(this._editor.onDidChangeModelLanguage(e=>this.stop())),this._register(r.TokenizationRegistry.onDidChange(e=>this.stop())),this._register(this._editor.onKeyUp(e=>9===e.keyCode&&this.stop()))}static get(t){return t.getContribution(e.ID)}dispose(){this.stop(),super.dispose()}launch(){this._widget||this._editor.hasModel()&&(this._widget=new _(this._editor,this._modeService))}stop(){this._widget&&(this._widget.dispose(),this._widget=null)}};m.ID="editor.contrib.inspectTokens",m=a([l(1,h.IStandaloneThemeService),l(2,c.IModeService)],m);class f extends s.EditorAction{constructor(){super({id:"editor.action.inspectTokens",label:p.InspectTokensNLS.inspectTokensAction,alias:"Developer: Inspect Tokens",precondition:void 0})}run(e,t){let i=m.get(t);i&&i.launch()}}class _ extends o.Disposable{constructor(e,t){super(),this.allowEditorOverflow=!0,this._editor=e,this._modeService=t,this._model=this._editor.getModel(), +this._domNode=document.createElement("div"),this._domNode.className="tokens-inspect-widget",this._tokenizationSupport=function(e){let t=r.TokenizationRegistry.get(e.language);return t||{getInitialState:()=>d.NULL_STATE,tokenize:(t,i,n)=>d.nullTokenize(e.language,t,i,n),tokenize2:(t,i,n)=>d.nullTokenize2(e.id,t,i,n)}}(this._model.getLanguageIdentifier()),this._compute(this._editor.getPosition()),this._register(this._editor.onDidChangeCursorPosition(e=>this._compute(this._editor.getPosition()))),this._editor.addContentWidget(this)}dispose(){this._editor.removeContentWidget(this),super.dispose()}getId(){return _._ID}_compute(e){let t=this._getTokensAtLine(e.lineNumber),o=0;for(let i=t.tokens1.length-1;i>=0;i--){let n=t.tokens1[i];if(e.column-1>=n.offset){o=i;break}}let s=0;for(let i=t.tokens2.length>>>1;i>=0;i--)if(e.column-1>=t.tokens2[i<<1]){s=i;break}let r=this._model.getLineContent(e.lineNumber),a="";if(o{const i=e.getColor(u.editorHoverBorder);if(i){let n=e.type===g.HIGH_CONTRAST?2:1;t.addRule(`.monaco-editor .tokens-inspect-widget { border: ${n}px solid ${i}; }`),t.addRule(`.monaco-editor .tokens-inspect-widget .tokens-inspect-separator { background-color: ${i}; }`)}const n=e.getColor(u.editorHoverBackground);n&&t.addRule(`.monaco-editor .tokens-inspect-widget { background-color: ${n}; }`);const o=e.getColor(u.editorHoverForeground);o&&t.addRule(`.monaco-editor .tokens-inspect-widget { color: ${o}; }`)})})),define(t[627],i([0,1,618,34,94,27,23,61,4,11,22,75]),(function(e,t,i,n,o,s,r,d,c,h,u,g){"use strict";Object.defineProperty(t,"__esModule",{value:!0}), +t.GotoLineAction=t.StandaloneGotoLineQuickAccessProvider=void 0;let p=class extends i.AbstractGotoLineQuickAccessProvider{constructor(e){super(),this.editorService=e,this.onDidActiveTextEditorControlChange=c.Event.None}get activeTextEditorControl(){return r.withNullAsUndefined(this.editorService.getFocusedCodeEditor())}};p=a([l(0,s.ICodeEditorService)],p),t.StandaloneGotoLineQuickAccessProvider=p,n.Registry.as(o.Extensions.Quickaccess).registerQuickAccessProvider({ctor:p,prefix:p.PREFIX,helpEntries:[{description:d.GoToLineNLS.gotoLineActionLabel,needsEditor:!0}]});class m extends h.EditorAction{constructor(){super({id:"editor.action.gotoLine",label:d.GoToLineNLS.gotoLineActionLabel,alias:"Go to Line/Column...",precondition:void 0,kbOpts:{kbExpr:u.EditorContextKeys.focus,primary:2085,mac:{primary:293},weight:100}})}run(e){e.get(g.IQuickInputService).quickAccess.show(p.PREFIX)}}t.GotoLineAction=m,h.registerEditorAction(m)})), +define(t[628],i([0,1,619,34,94,27,23,61,4,11,22,75]),(function(e,t,i,n,o,s,r,d,c,h,u,g){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.GotoLineAction=t.StandaloneGotoSymbolQuickAccessProvider=void 0;let p=class extends i.AbstractGotoSymbolQuickAccessProvider{constructor(e){super(),this.editorService=e,this.onDidActiveTextEditorControlChange=c.Event.None}get activeTextEditorControl(){return r.withNullAsUndefined(this.editorService.getFocusedCodeEditor())}};p=a([l(0,s.ICodeEditorService)],p),t.StandaloneGotoSymbolQuickAccessProvider=p,n.Registry.as(o.Extensions.Quickaccess).registerQuickAccessProvider({ctor:p,prefix:i.AbstractGotoSymbolQuickAccessProvider.PREFIX,helpEntries:[{description:d.QuickOutlineNLS.quickOutlineActionLabel,prefix:i.AbstractGotoSymbolQuickAccessProvider.PREFIX,needsEditor:!0},{description:d.QuickOutlineNLS.quickOutlineByCategoryActionLabel,prefix:i.AbstractGotoSymbolQuickAccessProvider.PREFIX_BY_CATEGORY,needsEditor:!0}]});class m extends h.EditorAction{constructor(){ +super({id:"editor.action.quickOutline",label:d.QuickOutlineNLS.quickOutlineActionLabel,alias:"Go to Symbol...",precondition:u.EditorContextKeys.hasDocumentSymbolProvider,kbOpts:{kbExpr:u.EditorContextKeys.focus,primary:3117,weight:100},contextMenuOpts:{group:"navigation",order:3}})}run(e){e.get(g.IQuickInputService).quickAccess.show(i.AbstractGotoSymbolQuickAccessProvider.PREFIX)}}t.GotoLineAction=m,h.registerEditorAction(m)})),define(t[629],i([0,1,7,40,583]),(function(e,t,i,n,o){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StandaloneCodeEditorServiceImpl=void 0;class s extends o.CodeEditorServiceImpl{getActiveCodeEditor(){return null}openCodeEditor(e,t,i){return t?Promise.resolve(this.doOpenEditor(t,e)):Promise.resolve(null)}doOpenEditor(e,t){if(!this.findModel(e,t.resource)){if(t.resource){const o=t.resource.scheme;if(o===n.Schemas.http||o===n.Schemas.https)return i.windowOpenNoOpener(t.resource.toString()),e}return null}const o=t.options?t.options.selection:null +;if(o)if("number"==typeof o.endLineNumber&&"number"==typeof o.endColumn)e.setSelection(o),e.revealRangeInCenter(o,1);else{const t={lineNumber:o.startLineNumber,column:o.startColumn};e.setPosition(t),e.revealPositionInCenter(t,1)}return e}findModel(e,t){const i=e.getModel();return i&&i.uri.toString()!==t.toString()?null:i}}t.StandaloneCodeEditorServiceImpl=s})),define(t[630],i([0,1,49,21]),(function(e,t,i,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.hc_black=t.vs_dark=t.vs=void 0,t.vs={base:"vs",inherit:!1,rules:[{token:"",foreground:"000000",background:"fffffe"},{token:"invalid",foreground:"cd3131"},{token:"emphasis",fontStyle:"italic"},{token:"strong",fontStyle:"bold"},{token:"variable",foreground:"001188"},{token:"variable.predefined",foreground:"4864AA"},{token:"constant",foreground:"dd0000"},{token:"comment",foreground:"008000"},{token:"number",foreground:"098658"},{token:"number.hex",foreground:"3030c0"},{token:"regexp",foreground:"800000"},{token:"annotation",foreground:"808080"},{ +token:"type",foreground:"008080"},{token:"delimiter",foreground:"000000"},{token:"delimiter.html",foreground:"383838"},{token:"delimiter.xml",foreground:"0000FF"},{token:"tag",foreground:"800000"},{token:"tag.id.pug",foreground:"4F76AC"},{token:"tag.class.pug",foreground:"4F76AC"},{token:"meta.scss",foreground:"800000"},{token:"metatag",foreground:"e00000"},{token:"metatag.content.html",foreground:"FF0000"},{token:"metatag.html",foreground:"808080"},{token:"metatag.xml",foreground:"808080"},{token:"metatag.php",fontStyle:"bold"},{token:"key",foreground:"863B00"},{token:"string.key.json",foreground:"A31515"},{token:"string.value.json",foreground:"0451A5"},{token:"attribute.name",foreground:"FF0000"},{token:"attribute.value",foreground:"0451A5"},{token:"attribute.value.number",foreground:"098658"},{token:"attribute.value.unit",foreground:"098658"},{token:"attribute.value.html",foreground:"0000FF"},{token:"attribute.value.xml",foreground:"0000FF"},{token:"string",foreground:"A31515"},{token:"string.html", +foreground:"0000FF"},{token:"string.sql",foreground:"FF0000"},{token:"string.yaml",foreground:"0451A5"},{token:"keyword",foreground:"0000FF"},{token:"keyword.json",foreground:"0451A5"},{token:"keyword.flow",foreground:"AF00DB"},{token:"keyword.flow.scss",foreground:"0000FF"},{token:"operator.scss",foreground:"666666"},{token:"operator.sql",foreground:"778899"},{token:"operator.swift",foreground:"666666"},{token:"predefined.sql",foreground:"FF00FF"}],colors:{[n.editorBackground]:"#FFFFFE",[n.editorForeground]:"#000000",[n.editorInactiveSelection]:"#E5EBF1",[i.editorIndentGuides]:"#D3D3D3",[i.editorActiveIndentGuides]:"#939393",[n.editorSelectionHighlight]:"#ADD6FF4D"}},t.vs_dark={base:"vs-dark",inherit:!1,rules:[{token:"",foreground:"D4D4D4",background:"1E1E1E"},{token:"invalid",foreground:"f44747"},{token:"emphasis",fontStyle:"italic"},{token:"strong",fontStyle:"bold"},{token:"variable",foreground:"74B0DF"},{token:"variable.predefined",foreground:"4864AA"},{token:"variable.parameter",foreground:"9CDCFE"},{ +token:"constant",foreground:"569CD6"},{token:"comment",foreground:"608B4E"},{token:"number",foreground:"B5CEA8"},{token:"number.hex",foreground:"5BB498"},{token:"regexp",foreground:"B46695"},{token:"annotation",foreground:"cc6666"},{token:"type",foreground:"3DC9B0"},{token:"delimiter",foreground:"DCDCDC"},{token:"delimiter.html",foreground:"808080"},{token:"delimiter.xml",foreground:"808080"},{token:"tag",foreground:"569CD6"},{token:"tag.id.pug",foreground:"4F76AC"},{token:"tag.class.pug",foreground:"4F76AC"},{token:"meta.scss",foreground:"A79873"},{token:"meta.tag",foreground:"CE9178"},{token:"metatag",foreground:"DD6A6F"},{token:"metatag.content.html",foreground:"9CDCFE"},{token:"metatag.html",foreground:"569CD6"},{token:"metatag.xml",foreground:"569CD6"},{token:"metatag.php",fontStyle:"bold"},{token:"key",foreground:"9CDCFE"},{token:"string.key.json",foreground:"9CDCFE"},{token:"string.value.json",foreground:"CE9178"},{token:"attribute.name",foreground:"9CDCFE"},{token:"attribute.value",foreground:"CE9178" +},{token:"attribute.value.number.css",foreground:"B5CEA8"},{token:"attribute.value.unit.css",foreground:"B5CEA8"},{token:"attribute.value.hex.css",foreground:"D4D4D4"},{token:"string",foreground:"CE9178"},{token:"string.sql",foreground:"FF0000"},{token:"keyword",foreground:"569CD6"},{token:"keyword.flow",foreground:"C586C0"},{token:"keyword.json",foreground:"CE9178"},{token:"keyword.flow.scss",foreground:"569CD6"},{token:"operator.scss",foreground:"909090"},{token:"operator.sql",foreground:"778899"},{token:"operator.swift",foreground:"909090"},{token:"predefined.sql",foreground:"FF00FF"}],colors:{[n.editorBackground]:"#1E1E1E",[n.editorForeground]:"#D4D4D4",[n.editorInactiveSelection]:"#3A3D41",[i.editorIndentGuides]:"#404040",[i.editorActiveIndentGuides]:"#707070",[n.editorSelectionHighlight]:"#ADD6FF26"}},t.hc_black={base:"hc-black",inherit:!1,rules:[{token:"",foreground:"FFFFFF",background:"000000"},{token:"invalid",foreground:"f44747"},{token:"emphasis",fontStyle:"italic"},{token:"strong",fontStyle:"bold" +},{token:"variable",foreground:"1AEBFF"},{token:"variable.parameter",foreground:"9CDCFE"},{token:"constant",foreground:"569CD6"},{token:"comment",foreground:"608B4E"},{token:"number",foreground:"FFFFFF"},{token:"regexp",foreground:"C0C0C0"},{token:"annotation",foreground:"569CD6"},{token:"type",foreground:"3DC9B0"},{token:"delimiter",foreground:"FFFF00"},{token:"delimiter.html",foreground:"FFFF00"},{token:"tag",foreground:"569CD6"},{token:"tag.id.pug",foreground:"4F76AC"},{token:"tag.class.pug",foreground:"4F76AC"},{token:"meta",foreground:"D4D4D4"},{token:"meta.tag",foreground:"CE9178"},{token:"metatag",foreground:"569CD6"},{token:"metatag.content.html",foreground:"1AEBFF"},{token:"metatag.html",foreground:"569CD6"},{token:"metatag.xml",foreground:"569CD6"},{token:"metatag.php",fontStyle:"bold"},{token:"key",foreground:"9CDCFE"},{token:"string.key",foreground:"9CDCFE"},{token:"string.value",foreground:"CE9178"},{token:"attribute.name",foreground:"569CD6"},{token:"attribute.value",foreground:"3FF23F"},{ +token:"string",foreground:"CE9178"},{token:"string.sql",foreground:"FF0000"},{token:"keyword",foreground:"569CD6"},{token:"keyword.flow",foreground:"C586C0"},{token:"operator.sql",foreground:"778899"},{token:"operator.swift",foreground:"909090"},{token:"predefined.sql",foreground:"FF00FF"}],colors:{[n.editorBackground]:"#000000",[n.editorForeground]:"#FFFFFF",[i.editorIndentGuides]:"#FFFFFF",[i.editorActiveIndentGuides]:"#FFFFFF"}}})),define(t[631],i([0,1,7,29,4,18,373,630,34,21,14,2,115]),(function(e,t,i,n,o,s,r,a,l,d,c,h,u){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StandaloneThemeServiceImpl=void 0;const g="vs",p="vs-dark",m="hc-black",f=l.Registry.as(d.Extensions.ColorContribution),_=l.Registry.as(c.Extensions.ThemingContribution);class v{constructor(e,t){this.semanticHighlighting=!1,this.themeData=t;let i=t.base;e.length>0?(this.id=i+" "+e,this.themeName=e):(this.id=i,this.themeName=i),this.colors=null,this.defaultColors=Object.create(null),this._tokenTheme=null}get base(){ +return this.themeData.base}notifyBaseUpdated(){this.themeData.inherit&&(this.colors=null,this._tokenTheme=null)}getColors(){if(!this.colors){const e=new Map;for(let t in this.themeData.colors)e.set(t,n.Color.fromHex(this.themeData.colors[t]));if(this.themeData.inherit){let t=b(this.themeData.base);for(let i in t.colors)e.has(i)||e.set(i,n.Color.fromHex(t.colors[i]))}this.colors=e}return this.colors}getColor(e,t){const i=this.getColors().get(e);return i||(!1!==t?this.getDefault(e):void 0)}getDefault(e){let t=this.defaultColors[e];return t||(t=f.resolveDefaultColor(e,this),this.defaultColors[e]=t,t)}defines(e){return Object.prototype.hasOwnProperty.call(this.getColors(),e)}get type(){switch(this.base){case g:return"light";case m:return"hc";default:return"dark"}}get tokenTheme(){if(!this._tokenTheme){let e=[],t=[];if(this.themeData.inherit){let i=b(this.themeData.base);e=i.rules,i.encodedTokensColors&&(t=i.encodedTokensColors)}e=e.concat(this.themeData.rules), +this.themeData.encodedTokensColors&&(t=this.themeData.encodedTokensColors),this._tokenTheme=r.TokenTheme.createFromRawTokenTheme(e,t)}return this._tokenTheme}getTokenStyleMetadata(e,t,i){const n=this.tokenTheme._match([e].concat(t).join(".")).metadata,o=s.TokenMetadata.getForeground(n),r=s.TokenMetadata.getFontStyle(n);return{foreground:o,italic:Boolean(1&r),bold:Boolean(2&r),underline:Boolean(4&r)}}}function C(e){return e===g||e===p||e===m}function b(e){switch(e){case g:return a.vs;case p:return a.vs_dark;case m:return a.hc_black}}function S(e){let t=b(e);return new v(e,t)}class w extends h.Disposable{constructor(){super(),this._onColorThemeChange=this._register(new o.Emitter),this.onDidColorThemeChange=this._onColorThemeChange.event,this._environment=Object.create(null),this._knownThemes=new Map,this._knownThemes.set(g,S(g)),this._knownThemes.set(p,S(p)),this._knownThemes.set(m,S(m)),this._codiconCSS=u.CodiconStyles.getCSS(),this._themeCSS="",this._allCSS=`${this._codiconCSS}\n${this._themeCSS}`, +this._globalStyleElement=null,this._styleElements=[],this.setTheme(g),u.CodiconStyles.onDidChange(()=>{this._codiconCSS=u.CodiconStyles.getCSS(),this._updateCSS()})}registerEditorContainer(e){return i.isInShadowDOM(e)?this._registerShadowDomContainer(e):this._registerRegularEditorContainer()}_registerRegularEditorContainer(){return this._globalStyleElement||(this._globalStyleElement=i.createStyleSheet(),this._globalStyleElement.className="monaco-colors",this._globalStyleElement.innerHTML=this._allCSS,this._styleElements.push(this._globalStyleElement)),h.Disposable.None}_registerShadowDomContainer(e){const t=i.createStyleSheet(e);return t.className="monaco-colors",t.innerHTML=this._allCSS,this._styleElements.push(t),{dispose:()=>{for(let e=0;e{t.base===e&&t.notifyBaseUpdated()}),this._theme&&this._theme.themeName===e&&this.setTheme(e)}getColorTheme(){return this._theme}setTheme(e){let t;if(t=this._knownThemes.has(e)?this._knownThemes.get(e):this._knownThemes.get(g),this._theme===t)return t.id;this._theme=t;let i=[],n={},o={addRule:e=>{n[e]||(i.push(e),n[e]=!0)}};_.getThemingParticipants().forEach(e=>e(t,o,this._environment));let a=t.tokenTheme.getColorMap();return o.addRule(r.generateTokensCSSForColorMap(a)),this._themeCSS=i.join("\n"),this._updateCSS(),s.TokenizationRegistry.setColorMap(a),this._onColorThemeChange.fire(t),t.id}_updateCSS(){this._allCSS=`${this._codiconCSS}\n${this._themeCSS}`,this._styleElements.forEach(e=>e.innerHTML=this._allCSS)}getFileIconTheme(){return{hasFileIcons:!1,hasFolderIcons:!1,hidesExplorerArrows:!1}}}t.StandaloneThemeServiceImpl=w})),define(t[255],i([0,1,7,57,47,4,97,2,16,496,33,66,35,32,14,91,408]),(function(e,t,i,n,o,s,r,d,c,h,u,g,p,m,f,_,v){ +"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SubmenuEntryActionViewItem=t.MenuEntryActionViewItem=t.createAndFillInActionBarActions=void 0;class C extends s.Emitter{constructor(e){super(),this._subscriptions=new d.DisposableStore,this._isPressed=!1,this._suppressAltKeyUp=!1,this._subscriptions.add(n.domEvent(document.body,"keydown")(e=>{this.isPressed=e.altKey||(c.isWindows||c.isLinux)&&e.shiftKey})),this._subscriptions.add(n.domEvent(document.body,"keyup")(e=>{this.isPressed&&this._suppressAltKeyUp&&e.preventDefault(),this._suppressAltKeyUp=!1,this.isPressed=!1})),this._subscriptions.add(n.domEvent(document.body,"mouseleave")(e=>this.isPressed=!1)),this._subscriptions.add(n.domEvent(document.body,"blur")(e=>this.isPressed=!1)),this._subscriptions.add(e.onDidContextMenu(()=>this.isPressed=!1))}get isPressed(){return this._isPressed}set isPressed(e){this._isPressed=e,this.fire(this._isPressed)}suppressAltKeyUp(){this._suppressAltKeyUp=!0}static getInstance(e){ +return C.instance||(C.instance=new C(e)),C.instance}dispose(){super.dispose(),this._subscriptions.dispose()}}t.createAndFillInActionBarActions=function(e,t,i,n){const s=e.getActions(t);return function(e,t,i,n=(e=>"navigation"===e)){for(let s of e){let[e,r]=s;if(i&&(r=r.map(e=>e instanceof u.MenuItemAction&&e.alt?e.alt:e)),n(e)){(Array.isArray(t)?t:t.primary).unshift(...r)}else{const e=Array.isArray(t)?t:t.secondary;e.length>0&&e.push(new o.Separator),e.push(...r)}}}(s,i,!1,n),function(e){const t=new d.DisposableStore;for(const[,i]of e)for(const e of i)t.add(e);return t}(s)};const b=new r.IdGenerator("menu-item-action-item-icon-"),S=new Map;let w=class extends _.ActionViewItem{constructor(e,t,i,n){super(void 0,e,{icon:!(!e.class&&!e.item.icon),label:!e.class&&!e.item.icon}),this._action=e,this._keybindingService=t,this._notificationService=i,this._wantsAltCommand=!1,this._itemClassDispose=this._register(new d.MutableDisposable),this._altKey=C.getInstance(n)}get _commandAction(){ +return this._wantsAltCommand&&this._action.alt||this._action}onClick(e){e.preventDefault(),e.stopPropagation(),this._altKey.isPressed&&this._altKey.suppressAltKeyUp(),this.actionRunner.run(this._commandAction,this._context).then(void 0,e=>this._notificationService.error(e))}render(e){super.render(e),this._updateItemClass(this._action.item);let t=!1,i=this._altKey.isPressed;const o=()=>{const e=t&&i;e!==this._wantsAltCommand&&(this._wantsAltCommand=e,this.updateLabel(),this.updateTooltip(),this.updateClass())};this._action.alt&&this._register(this._altKey.event(e=>{i=e,o()})),this._register(n.domEvent(e,"mouseleave")(e=>{t=!1,o()})),this._register(n.domEvent(e,"mouseenter")(e=>{t=!0,o()}))}updateLabel(){this.options.label&&this.label&&(this.label.textContent=this._commandAction.label)}updateTooltip(){if(this.label){const e=this._keybindingService.lookupKeybinding(this._commandAction.id),t=e&&e.getLabel(),i=this._commandAction.tooltip||this._commandAction.label;this.label.title=t?h.localize(0,null,i,t):i}} +updateClass(){this.options.icon&&(this._commandAction!==this._action?this._action.alt&&this._updateItemClass(this._action.alt.item):this._action.alt&&this._updateItemClass(this._action.item))}_updateItemClass(e){var t,n;this._itemClassDispose.value=void 0;const o=this._commandAction.checked&&(null===(t=e.toggled)||void 0===t?void 0:t.icon)?e.toggled.icon:e.icon;if(f.ThemeIcon.isThemeIcon(o)){const e=f.ThemeIcon.asClassName(o);this.label&&e&&(i.addClasses(this.label,e),this._itemClassDispose.value=d.toDisposable(()=>{this.label&&i.removeClasses(this.label,e)}))}else if(o){let e;if(null===(n=o.dark)||void 0===n?void 0:n.scheme){const t=o.dark.toString();S.has(t)?e=S.get(t):(e=b.nextId(),i.createCSSRule(`.icon.${e}`,`background-image: ${i.asCSSUrl(o.light||o.dark)}`),i.createCSSRule(`.vs-dark .icon.${e}, .hc-black .icon.${e}`,`background-image: ${i.asCSSUrl(o.dark)}`),S.set(t,e)),this.label&&(i.addClasses(this.label,"icon",e),this._itemClassDispose.value=d.toDisposable(()=>{ +this.label&&i.removeClasses(this.label,"icon",e)}))}}}};w=a([l(1,p.IKeybindingService),l(2,m.INotificationService),l(3,g.IContextMenuService)],w),t.MenuEntryActionViewItem=w;let y=class extends v.DropdownMenuActionViewItem{constructor(e,t,n){var o;const s=[];if(e.item.icon)if(f.ThemeIcon.isThemeIcon(e.item.icon))s.push(f.ThemeIcon.asClassName(e.item.icon));else if(null===(o=e.item.icon.dark)||void 0===o?void 0:o.scheme){const t=e.item.icon.dark.toString();if(S.has(t))s.push("icon",S.get(t));else{const n=b.nextId();s.push("icon",n),i.createCSSRule(`.icon.${n}`,`background-image: ${i.asCSSUrl(e.item.icon.light||e.item.icon.dark)}`),i.createCSSRule(`.vs-dark .icon.${n}, .hc-black .icon.${n}`,`background-image: ${i.asCSSUrl(e.item.icon.dark)}`),S.set(t,n)}}super(e,e.actions,n,{classNames:s})}};y=a([l(1,m.INotificationService),l(2,g.IContextMenuService)],y),t.SubmenuEntryActionViewItem=y})), +define(t[108],i([0,1,7,79,47,29,4,37,27,178,522,482,17,10,71,11,21,26,33,255,340]),(function(e,t,i,n,o,s,r,d,c,h,u,g,p,m,f,_,v,C,b,S){"use strict";var w;Object.defineProperty(t,"__esModule",{value:!0}),t.peekViewEditorMatchHighlightBorder=t.peekViewEditorMatchHighlight=t.peekViewResultsMatchHighlight=t.peekViewEditorGutterBackground=t.peekViewEditorBackground=t.peekViewResultsSelectionForeground=t.peekViewResultsSelectionBackground=t.peekViewResultsFileForeground=t.peekViewResultsMatchForeground=t.peekViewResultsBackground=t.peekViewBorder=t.peekViewTitleInfoForeground=t.peekViewTitleForeground=t.peekViewTitleBackground=t.PeekViewWidget=t.getOuterEditor=t.PeekContext=t.IPeekViewService=void 0,t.IPeekViewService=m.createDecorator("IPeekViewService"),f.registerSingleton(t.IPeekViewService,class{constructor(){this._widgets=new Map}addExclusiveWidget(e,t){const i=this._widgets.get(e);i&&(i.listener.dispose(),i.widget.dispose());this._widgets.set(e,{widget:t,listener:t.onDidClose(()=>{const i=this._widgets.get(e) +;i&&i.widget===t&&(i.listener.dispose(),this._widgets.delete(e))})})}}),function(e){e.inPeekEditor=new p.RawContextKey("inReferenceSearchEditor",!0),e.notInPeekEditor=e.inPeekEditor.toNegated()}(w=t.PeekContext||(t.PeekContext={}));let y=class{constructor(e,t){e instanceof h.EmbeddedCodeEditorWidget&&w.inPeekEditor.bindTo(t)}dispose(){}};y.ID="editor.contrib.referenceController",y=a([l(1,p.IContextKeyService)],y),_.registerEditorContribution(y.ID,y),t.getOuterEditor=function(e){let t=e.get(c.ICodeEditorService).getFocusedCodeEditor();return t instanceof h.EmbeddedCodeEditorWidget?t.getParentEditor():t};const E={headerBackgroundColor:s.Color.white,primaryHeadingColor:s.Color.fromHex("#333333"),secondaryHeadingColor:s.Color.fromHex("#6c6c6cb3")};let L=class extends u.ZoneWidget{constructor(e,t,i){super(e,t),this.instantiationService=i,this._onDidClose=new r.Emitter,this.onDidClose=this._onDidClose.event,d.mixin(this.options,E,!1)}dispose(){super.dispose(),this._onDidClose.fire(this)}style(e){let t=this.options +;e.headerBackgroundColor&&(t.headerBackgroundColor=e.headerBackgroundColor),e.primaryHeadingColor&&(t.primaryHeadingColor=e.primaryHeadingColor),e.secondaryHeadingColor&&(t.secondaryHeadingColor=e.secondaryHeadingColor),super.style(e)}_applyStyles(){super._applyStyles();let e=this.options;this._headElement&&e.headerBackgroundColor&&(this._headElement.style.backgroundColor=e.headerBackgroundColor.toString()),this._primaryHeading&&e.primaryHeadingColor&&(this._primaryHeading.style.color=e.primaryHeadingColor.toString()),this._secondaryHeading&&e.secondaryHeadingColor&&(this._secondaryHeading.style.color=e.secondaryHeadingColor.toString()),this._bodyElement&&e.frameColor&&(this._bodyElement.style.borderColor=e.frameColor.toString())}_fillContainer(e){this.setCssClass("peekview-widget"),this._headElement=i.$(".head"),this._bodyElement=i.$(".body"),this._fillHead(this._headElement),this._fillBody(this._bodyElement),e.appendChild(this._headElement),e.appendChild(this._bodyElement)}_fillHead(e,t){ +const s=i.$(".peekview-title");i.append(this._headElement,s),i.addStandardDisposableListener(s,"click",e=>this._onTitleClick(e)),this._fillTitleIcon(s),this._primaryHeading=i.$("span.filename"),this._secondaryHeading=i.$("span.dirname"),this._metaHeading=i.$("span.meta"),i.append(s,this._primaryHeading,this._secondaryHeading,this._metaHeading);const r=i.$(".peekview-actions");i.append(this._headElement,r);const a=this._getActionBarOptions();this._actionbarWidget=new n.ActionBar(r,a),this._disposables.add(this._actionbarWidget),t||this._actionbarWidget.push(new o.Action("peekview.close",g.localize(0,null),C.Codicon.close.classNames,!0,()=>(this.dispose(),Promise.resolve())),{label:!1,icon:!0})}_fillTitleIcon(e){}_getActionBarOptions(){return{actionViewItemProvider:e=>e instanceof b.MenuItemAction?this.instantiationService.createInstance(S.MenuEntryActionViewItem,e):e instanceof b.SubmenuItemAction?this.instantiationService.createInstance(S.SubmenuEntryActionViewItem,e):void 0}}_onTitleClick(e){}setTitle(e,t){ +this._primaryHeading&&this._secondaryHeading&&(this._primaryHeading.innerText=e,this._primaryHeading.setAttribute("aria-label",e),t?this._secondaryHeading.innerText=t:i.clearNode(this._secondaryHeading))}setMetaTitle(e){this._metaHeading&&(e?(this._metaHeading.innerText=e,i.show(this._metaHeading)):i.hide(this._metaHeading))}_doLayout(e,t){if(!this._isShowing&&e<0)return void this.dispose();const i=Math.ceil(1.2*this.editor.getOption(51)),n=Math.round(e-(i+2));this._doLayoutHead(i,t),this._doLayoutBody(n,t)}_doLayoutHead(e,t){this._headElement&&(this._headElement.style.height=`${e}px`,this._headElement.style.lineHeight=this._headElement.style.height)}_doLayoutBody(e,t){this._bodyElement&&(this._bodyElement.style.height=`${e}px`)}};L=a([l(2,m.IInstantiationService)],L),t.PeekViewWidget=L,t.peekViewTitleBackground=v.registerColor("peekViewTitle.background",{dark:"#1E1E1E",light:"#FFFFFF",hc:"#0C141F"},g.localize(1,null)),t.peekViewTitleForeground=v.registerColor("peekViewTitleLabel.foreground",{dark:"#FFFFFF", +light:"#333333",hc:"#FFFFFF"},g.localize(2,null)),t.peekViewTitleInfoForeground=v.registerColor("peekViewTitleDescription.foreground",{dark:"#ccccccb3",light:"#616161e6",hc:"#FFFFFF99"},g.localize(3,null)),t.peekViewBorder=v.registerColor("peekView.border",{dark:"#007acc",light:"#007acc",hc:v.contrastBorder},g.localize(4,null)),t.peekViewResultsBackground=v.registerColor("peekViewResult.background",{dark:"#252526",light:"#F3F3F3",hc:s.Color.black},g.localize(5,null)),t.peekViewResultsMatchForeground=v.registerColor("peekViewResult.lineForeground",{dark:"#bbbbbb",light:"#646465",hc:s.Color.white},g.localize(6,null)),t.peekViewResultsFileForeground=v.registerColor("peekViewResult.fileForeground",{dark:s.Color.white,light:"#1E1E1E",hc:s.Color.white},g.localize(7,null)),t.peekViewResultsSelectionBackground=v.registerColor("peekViewResult.selectionBackground",{dark:"#3399ff33",light:"#3399ff33",hc:null},g.localize(8,null)),t.peekViewResultsSelectionForeground=v.registerColor("peekViewResult.selectionForeground",{ +dark:s.Color.white,light:"#6C6C6C",hc:s.Color.white},g.localize(9,null)),t.peekViewEditorBackground=v.registerColor("peekViewEditor.background",{dark:"#001F33",light:"#F2F8FC",hc:s.Color.black},g.localize(10,null)),t.peekViewEditorGutterBackground=v.registerColor("peekViewEditorGutter.background",{dark:t.peekViewEditorBackground,light:t.peekViewEditorBackground,hc:t.peekViewEditorBackground},g.localize(11,null)),t.peekViewResultsMatchHighlight=v.registerColor("peekViewResult.matchHighlightBackground",{dark:"#ea5c004d",light:"#ea5c004d",hc:null},g.localize(12,null)),t.peekViewEditorMatchHighlight=v.registerColor("peekViewEditor.matchHighlightBackground",{dark:"#ff8f0099",light:"#f5d802de",hc:null},g.localize(13,null)),t.peekViewEditorMatchHighlightBorder=v.registerColor("peekViewEditor.matchHighlightBorder",{dark:null,light:null,hc:v.activeContrastBorder},g.localize(14,null))})),define(t[632],i([0,1,582,66,84,4,32,14,35,2]),(function(e,t,i,n,o,s,r,d,c,h){"use strict";Object.defineProperty(t,"__esModule",{ +value:!0}),t.ContextMenuService=void 0;let u=class extends h.Disposable{constructor(e,t,n,o,r){super(),this._onDidContextMenu=this._register(new s.Emitter),this.onDidContextMenu=this._onDidContextMenu.event,this.contextMenuHandler=new i.ContextMenuHandler(n,e,t,o,r)}configure(e){this.contextMenuHandler.configure(e)}showContextMenu(e){this.contextMenuHandler.showContextMenu(e),this._onDidContextMenu.fire()}};u=a([l(0,o.ITelemetryService),l(1,r.INotificationService),l(2,n.IContextViewService),l(3,c.IKeybindingService),l(4,d.IThemeService)],u),t.ContextMenuService=u})),define(t[141],i([0,1,7,302,118,4,2,499,46,93,17,10,35,34,107,14,506,226,421,420,62]),(function(e,t,i,n,o,s,r,d,c,h,u,g,p,m,f,_,v,C,b,S,w){"use strict";Object.defineProperty(t,"__esModule",{value:!0}), +t.WorkbenchCompressibleAsyncDataTree=t.WorkbenchAsyncDataTree=t.WorkbenchDataTree=t.WorkbenchCompressibleObjectTree=t.WorkbenchObjectTree=t.WorkbenchPagedList=t.WorkbenchList=t.automaticKeyboardNavigationSettingKey=t.keyboardNavigationSettingKey=t.horizontalScrollingKey=t.openModeSettingKey=t.multiSelectModifierSettingKey=t.didBindWorkbenchListAutomaticKeyboardNavigation=t.WorkbenchListAutomaticKeyboardNavigation=t.WorkbenchListAutomaticKeyboardNavigationKey=t.WorkbenchListSupportsKeyboardNavigation=t.WorkbenchListMultiSelection=t.WorkbenchListDoubleSelection=t.WorkbenchListHasSelectionOrFocus=t.WorkbenchListFocusContextKey=t.WorkbenchListSupportsMultiSelectContextKey=t.ListService=t.IListService=void 0,t.IListService=g.createDecorator("listService");let y=class{constructor(e){this._themeService=e,this.disposables=new r.DisposableStore,this.lists=[],this._lastFocusedWidget=void 0,this._hasCreatedStyleController=!1}get lastFocusedList(){return this._lastFocusedWidget}register(e,t){ +if(!this._hasCreatedStyleController){this._hasCreatedStyleController=!0;const e=new o.DefaultStyleController(i.createStyleSheet(),"");this.disposables.add(f.attachListStyler(e,this._themeService))}if(this.lists.some(t=>t.widget===e))throw new Error("Cannot register the same widget multiple times");const n={widget:e,extraContextKeys:t};return this.lists.push(n),e.getHTMLElement()===document.activeElement&&(this._lastFocusedWidget=e),r.combinedDisposable(e.onDidFocus(()=>this._lastFocusedWidget=e),r.toDisposable(()=>this.lists.splice(this.lists.indexOf(n),1)),e.onDidDispose(()=>{this.lists=this.lists.filter(e=>e!==n),this._lastFocusedWidget===e&&(this._lastFocusedWidget=void 0)}))}dispose(){this.disposables.dispose()}};y=a([l(0,_.IThemeService)],y),t.ListService=y;const E=new u.RawContextKey("listFocus",!0);function L(e,t){const i=e.createScoped(t.getHTMLElement());return E.bindTo(i),i}t.WorkbenchListSupportsMultiSelectContextKey=new u.RawContextKey("listSupportsMultiselect",!0), +t.WorkbenchListFocusContextKey=u.ContextKeyExpr.and(E,u.ContextKeyExpr.not(v.InputFocusedContextKey)),t.WorkbenchListHasSelectionOrFocus=new u.RawContextKey("listHasSelectionOrFocus",!1),t.WorkbenchListDoubleSelection=new u.RawContextKey("listDoubleSelection",!1),t.WorkbenchListMultiSelection=new u.RawContextKey("listMultiSelection",!1),t.WorkbenchListSupportsKeyboardNavigation=new u.RawContextKey("listSupportsKeyboardNavigation",!0),t.WorkbenchListAutomaticKeyboardNavigationKey="listAutomaticKeyboardNavigation",t.WorkbenchListAutomaticKeyboardNavigation=new u.RawContextKey(t.WorkbenchListAutomaticKeyboardNavigationKey,!0),t.didBindWorkbenchListAutomaticKeyboardNavigation=!1,t.multiSelectModifierSettingKey="workbench.list.multiSelectModifier",t.openModeSettingKey="workbench.list.openMode",t.horizontalScrollingKey="workbench.list.horizontalScrolling",t.keyboardNavigationSettingKey="workbench.list.keyboardNavigation",t.automaticKeyboardNavigationSettingKey="workbench.list.automaticKeyboardNavigation" +;const x="workbench.tree.indent",D="workbench.tree.renderIndentGuides",k="workbench.list.smoothScrolling";function N(e){return"alt"===e.getValue(t.multiSelectModifierSettingKey)}class I extends r.Disposable{constructor(e){super(),this.configurationService=e,this.useAltAsMultipleSelectionModifier=N(e),this.registerListeners()}registerListeners(){this._register(this.configurationService.onDidChangeConfiguration(e=>{e.affectsConfiguration(t.multiSelectModifierSettingKey)&&(this.useAltAsMultipleSelectionModifier=N(this.configurationService))}))}isSelectionSingleChangeEvent(e){return this.useAltAsMultipleSelectionModifier?e.browserEvent.altKey:o.isSelectionSingleChangeEvent(e)}isSelectionRangeChangeEvent(e){return o.isSelectionRangeChangeEvent(e)}}function M(e,t,i){const n=new r.DisposableStore,o=Object.assign({},e);if(!1!==e.multipleSelectionSupport&&!e.multipleSelectionController){const e=new I(t);o.multipleSelectionController=e,n.add(e)}return o.keyboardNavigationDelegate={ +mightProducePrintableCharacter:e=>i.mightProducePrintableCharacter(e)},o.smoothScrolling=t.getValue(k),[o,n]}let R=class extends o.List{constructor(e,i,n,o,s,r,a,l,d,c){const h=void 0!==s.horizontalScrolling?s.horizontalScrolling:d.getValue(t.horizontalScrollingKey),[u,g]=M(s,d,c);super(e,i,n,o,Object.assign(Object.assign(Object.assign({keyboardSupport:!1},f.computeStyles(l.getColorTheme(),f.defaultListStyles)),u),{horizontalScrolling:h})),this.disposables.add(g),this.contextKeyService=L(r,this),this.themeService=l,t.WorkbenchListSupportsMultiSelectContextKey.bindTo(this.contextKeyService).set(!(!1===s.multipleSelectionSupport)),this.listHasSelectionOrFocus=t.WorkbenchListHasSelectionOrFocus.bindTo(this.contextKeyService),this.listDoubleSelection=t.WorkbenchListDoubleSelection.bindTo(this.contextKeyService),this.listMultiSelection=t.WorkbenchListMultiSelection.bindTo(this.contextKeyService),this.horizontalScrolling=s.horizontalScrolling,this._useAltAsMultipleSelectionModifier=N(d), +this.disposables.add(this.contextKeyService),this.disposables.add(a.register(this)),s.overrideStyles&&this.updateStyles(s.overrideStyles),this.disposables.add(this.onDidChangeSelection(()=>{const e=this.getSelection(),t=this.getFocus();this.contextKeyService.bufferChangeEvents(()=>{this.listHasSelectionOrFocus.set(e.length>0||t.length>0),this.listMultiSelection.set(e.length>1),this.listDoubleSelection.set(2===e.length)})})),this.disposables.add(this.onDidChangeFocus(()=>{const e=this.getSelection(),t=this.getFocus();this.listHasSelectionOrFocus.set(e.length>0||t.length>0)})),this.disposables.add(d.onDidChangeConfiguration(e=>{e.affectsConfiguration(t.multiSelectModifierSettingKey)&&(this._useAltAsMultipleSelectionModifier=N(d));let i={};if(e.affectsConfiguration(t.horizontalScrollingKey)&&void 0===this.horizontalScrolling){const e=d.getValue(t.horizontalScrollingKey);i=Object.assign(Object.assign({},i),{horizontalScrolling:e})}if(e.affectsConfiguration(k)){const e=d.getValue(k) +;i=Object.assign(Object.assign({},i),{smoothScrolling:e})}Object.keys(i).length>0&&this.updateOptions(i)}))}updateOptions(e){super.updateOptions(e),e.overrideStyles&&this.updateStyles(e.overrideStyles)}dispose(){super.dispose(),this._styler&&this._styler.dispose()}updateStyles(e){this._styler&&this._styler.dispose(),this._styler=f.attachListStyler(this,this.themeService,e)}};R=a([l(5,u.IContextKeyService),l(6,t.IListService),l(7,_.IThemeService),l(8,c.IConfigurationService),l(9,p.IKeybindingService)],R),t.WorkbenchList=R;let T=class extends n.PagedList{constructor(e,i,n,o,s,a,l,d,c,h){const u=void 0!==s.horizontalScrolling?s.horizontalScrolling:c.getValue(t.horizontalScrollingKey),[g,p]=M(s,c,h);super(e,i,n,o,Object.assign(Object.assign(Object.assign({keyboardSupport:!1},f.computeStyles(d.getColorTheme(),f.defaultListStyles)),g),{horizontalScrolling:u})),this.disposables=new r.DisposableStore,this.disposables.add(p),this.contextKeyService=L(a,this),this.horizontalScrolling=s.horizontalScrolling, +t.WorkbenchListSupportsMultiSelectContextKey.bindTo(this.contextKeyService).set(!(!1===s.multipleSelectionSupport)),this._useAltAsMultipleSelectionModifier=N(c),this.disposables.add(this.contextKeyService),this.disposables.add(l.register(this)),s.overrideStyles&&this.disposables.add(f.attachListStyler(this,d,s.overrideStyles)),this.disposables.add(c.onDidChangeConfiguration(e=>{e.affectsConfiguration(t.multiSelectModifierSettingKey)&&(this._useAltAsMultipleSelectionModifier=N(c));let i={};if(e.affectsConfiguration(t.horizontalScrollingKey)&&void 0===this.horizontalScrolling){const e=c.getValue(t.horizontalScrollingKey);i=Object.assign(Object.assign({},i),{horizontalScrolling:e})}if(e.affectsConfiguration(k)){const e=c.getValue(k);i=Object.assign(Object.assign({},i),{smoothScrolling:e})}Object.keys(i).length>0&&this.updateOptions(i)}))}dispose(){super.dispose(),this.disposables.dispose()}} +;T=a([l(5,u.IContextKeyService),l(6,t.IListService),l(7,_.IThemeService),l(8,c.IConfigurationService),l(9,p.IKeybindingService)],T),t.WorkbenchPagedList=T;class O extends r.Disposable{constructor(e,i){var n,o;super(),this.widget=e,this._onDidOpen=new s.Emitter,this.onDidOpen=this._onDidOpen.event,this.openOnFocus=null!==(n=null==i?void 0:i.openOnFocus)&&void 0!==n&&n,this._register(s.Event.filter(this.widget.onDidChangeSelection,e=>e.browserEvent instanceof KeyboardEvent)(e=>this.onSelectionFromKeyboard(e))),this._register(this.widget.onPointer(e=>this.onPointer(e.browserEvent))),this._register(this.widget.onMouseDblClick(e=>this.onMouseDblClick(e.browserEvent))),this.openOnFocus&&this._register(s.Event.filter(this.widget.onDidChangeFocus,e=>e.browserEvent instanceof KeyboardEvent)(e=>this.onFocusFromKeyboard(e))), +"boolean"!=typeof(null==i?void 0:i.openOnSingleClick)&&(null==i?void 0:i.configurationService)?(this.openOnSingleClick="doubleClick"!==(null==i?void 0:i.configurationService.getValue(t.openModeSettingKey)),this._register(null==i?void 0:i.configurationService.onDidChangeConfiguration(()=>{this.openOnSingleClick="doubleClick"!==(null==i?void 0:i.configurationService.getValue(t.openModeSettingKey))}))):this.openOnSingleClick=null===(o=null==i?void 0:i.openOnSingleClick)||void 0===o||o}onFocusFromKeyboard(e){const t=this.widget.getFocus();this.widget.setSelection(t,e.browserEvent);const i="boolean"!=typeof e.browserEvent.preserveFocus||e.browserEvent.preserveFocus;this._open(i,!1,!1,e.browserEvent)}onSelectionFromKeyboard(e){if(1!==e.elements.length)return;const t="boolean"!=typeof e.browserEvent.preserveFocus||e.browserEvent.preserveFocus;this._open(t,!1,!1,e.browserEvent)}onPointer(e){if(!this.openOnSingleClick)return;if(2===e.detail)return;const t=1===e.button,i=e.ctrlKey||e.metaKey||e.altKey +;this._open(!0,t,i,e)}onMouseDblClick(e){if(!e)return;const t=e.ctrlKey||e.metaKey||e.altKey;this._open(!1,!0,t,e)}_open(e,t,i,n){this._onDidOpen.fire({editorOptions:{preserveFocus:e,pinned:t,revealIfVisible:!0},sideBySide:i,element:this.widget.getSelection()[0],browserEvent:n})}}class A extends O{constructor(e,t){super(e,t)}}function P(e,t){let i=!1;return n=>{if(i)return i=!1,!1;const o=t.softDispatch(n,e);return o&&o.enterChord?(i=!0,!1):(i=!1,!0)}}let F=class extends C.ObjectTree{constructor(e,t,i,n,o,s,r,a,l,d,c){const{options:h,getAutomaticKeyboardNavigation:u,disposable:g}=H(t,o,s,l,d,c);super(e,t,i,n,h),this.disposables.add(g),this.internals=new K(this,o,u,o.overrideStyles,s,r,a,l,c),this.disposables.add(this.internals)}};F=a([l(5,u.IContextKeyService),l(6,t.IListService),l(7,_.IThemeService),l(8,c.IConfigurationService),l(9,p.IKeybindingService),l(10,w.IAccessibilityService)],F),t.WorkbenchObjectTree=F;let W=class extends C.CompressibleObjectTree{constructor(e,t,i,n,o,s,r,a,l,d,c){ +const{options:h,getAutomaticKeyboardNavigation:u,disposable:g}=H(t,o,s,l,d,c);super(e,t,i,n,h),this.disposables.add(g),this.internals=new K(this,o,u,o.overrideStyles,s,r,a,l,c),this.disposables.add(this.internals)}updateOptions(e={}){super.updateOptions(e),e.overrideStyles&&this.internals.updateStyleOverrides(e.overrideStyles)}};W=a([l(5,u.IContextKeyService),l(6,t.IListService),l(7,_.IThemeService),l(8,c.IConfigurationService),l(9,p.IKeybindingService),l(10,w.IAccessibilityService)],W),t.WorkbenchCompressibleObjectTree=W;let B=class extends S.DataTree{constructor(e,t,i,n,o,s,r,a,l,d,c,h){const{options:u,getAutomaticKeyboardNavigation:g,disposable:p}=H(t,s,r,d,c,h);super(e,t,i,n,o,u),this.disposables.add(p),this.internals=new K(this,s,g,s.overrideStyles,r,a,l,d,h),this.disposables.add(this.internals)}updateOptions(e={}){super.updateOptions(e),e.overrideStyles&&this.internals.updateStyleOverrides(e.overrideStyles)}} +;B=a([l(6,u.IContextKeyService),l(7,t.IListService),l(8,_.IThemeService),l(9,c.IConfigurationService),l(10,p.IKeybindingService),l(11,w.IAccessibilityService)],B),t.WorkbenchDataTree=B;let V=class extends b.AsyncDataTree{constructor(e,t,i,n,o,s,r,a,l,d,c,h){const{options:u,getAutomaticKeyboardNavigation:g,disposable:p}=H(t,s,r,d,c,h);super(e,t,i,n,o,u),this.disposables.add(p),this.internals=new K(this,s,g,s.overrideStyles,r,a,l,d,h),this.disposables.add(this.internals)}get onDidOpen(){return this.internals.onDidOpen}updateOptions(e={}){super.updateOptions(e),e.overrideStyles&&this.internals.updateStyleOverrides(e.overrideStyles)}};V=a([l(6,u.IContextKeyService),l(7,t.IListService),l(8,_.IThemeService),l(9,c.IConfigurationService),l(10,p.IKeybindingService),l(11,w.IAccessibilityService)],V),t.WorkbenchAsyncDataTree=V;let z=class extends b.CompressibleAsyncDataTree{constructor(e,t,i,n,o,s,r,a,l,d,c,h,u){const{options:g,getAutomaticKeyboardNavigation:p,disposable:m}=H(t,r,a,c,h,u);super(e,t,i,n,o,s,g), +this.disposables.add(m),this.internals=new K(this,r,p,r.overrideStyles,a,l,d,c,u),this.disposables.add(this.internals)}};function H(e,i,n,o,s,r){t.WorkbenchListSupportsKeyboardNavigation.bindTo(n),t.didBindWorkbenchListAutomaticKeyboardNavigation||(t.WorkbenchListAutomaticKeyboardNavigation.bindTo(n),t.didBindWorkbenchListAutomaticKeyboardNavigation=!0);const a=()=>{let e=n.getContextKeyValue(t.WorkbenchListAutomaticKeyboardNavigationKey);return e&&(e=o.getValue(t.automaticKeyboardNavigationSettingKey)),e},l=r.isScreenReaderOptimized()?"simple":o.getValue(t.keyboardNavigationSettingKey),d=void 0!==i.horizontalScrolling?i.horizontalScrolling:o.getValue(t.horizontalScrollingKey),[c,h]=M(i,o,s),u=i.additionalScrollHeight;return{getAutomaticKeyboardNavigation:a,disposable:h,options:Object.assign(Object.assign({keyboardSupport:!1},c),{indent:o.getValue(x),renderIndentGuides:o.getValue(D),smoothScrolling:o.getValue(k),automaticKeyboardNavigation:a(),simpleKeyboardNavigation:"simple"===l,filterOnType:"filter"===l, +horizontalScrolling:d,keyboardNavigationEventFilter:P(e,s),additionalScrollHeight:u,hideTwistiesOfChildlessElements:i.hideTwistiesOfChildlessElements,expandOnlyOnDoubleClick:"doubleClick"===o.getValue(t.openModeSettingKey)})}}z=a([l(7,u.IContextKeyService),l(8,t.IListService),l(9,_.IThemeService),l(10,c.IConfigurationService),l(11,p.IKeybindingService),l(12,w.IAccessibilityService)],z),t.WorkbenchCompressibleAsyncDataTree=z;let K=class{constructor(e,i,n,o,s,r,a,l,d){this.tree=e,this.themeService=a,this.disposables=[],this.contextKeyService=L(s,e),t.WorkbenchListSupportsMultiSelectContextKey.bindTo(this.contextKeyService).set(!(!1===i.multipleSelectionSupport)),this.hasSelectionOrFocus=t.WorkbenchListHasSelectionOrFocus.bindTo(this.contextKeyService),this.hasDoubleSelection=t.WorkbenchListDoubleSelection.bindTo(this.contextKeyService),this.hasMultiSelection=t.WorkbenchListMultiSelection.bindTo(this.contextKeyService),this._useAltAsMultipleSelectionModifier=N(l);const c=new Set +;c.add(t.WorkbenchListAutomaticKeyboardNavigationKey);const h=()=>{const i=d.isScreenReaderOptimized()?"simple":l.getValue(t.keyboardNavigationSettingKey);e.updateOptions({simpleKeyboardNavigation:"simple"===i,filterOnType:"filter"===i})};this.updateStyleOverrides(o),this.disposables.push(this.contextKeyService,r.register(e),e.onDidChangeSelection(()=>{const t=e.getSelection(),i=e.getFocus();this.contextKeyService.bufferChangeEvents(()=>{this.hasSelectionOrFocus.set(t.length>0||i.length>0),this.hasMultiSelection.set(t.length>1),this.hasDoubleSelection.set(2===t.length)})}),e.onDidChangeFocus(()=>{const t=e.getSelection(),i=e.getFocus();this.hasSelectionOrFocus.set(t.length>0||i.length>0)}),l.onDidChangeConfiguration(o=>{let s={};if(o.affectsConfiguration(t.multiSelectModifierSettingKey)&&(this._useAltAsMultipleSelectionModifier=N(l)),o.affectsConfiguration(x)){const e=l.getValue(x);s=Object.assign(Object.assign({},s),{indent:e})}if(o.affectsConfiguration(D)){const e=l.getValue(D) +;s=Object.assign(Object.assign({},s),{renderIndentGuides:e})}if(o.affectsConfiguration(k)){const e=l.getValue(k);s=Object.assign(Object.assign({},s),{smoothScrolling:e})}if(o.affectsConfiguration(t.keyboardNavigationSettingKey)&&h(),o.affectsConfiguration(t.automaticKeyboardNavigationSettingKey)&&(s=Object.assign(Object.assign({},s),{automaticKeyboardNavigation:n()})),o.affectsConfiguration(t.horizontalScrollingKey)&&void 0===i.horizontalScrolling){const e=l.getValue(t.horizontalScrollingKey);s=Object.assign(Object.assign({},s),{horizontalScrolling:e})}o.affectsConfiguration(t.openModeSettingKey)&&(s=Object.assign(Object.assign({},s),{expandOnlyOnDoubleClick:"doubleClick"===l.getValue(t.openModeSettingKey)})),Object.keys(s).length>0&&e.updateOptions(s)}),this.contextKeyService.onDidChangeContext(t=>{t.affectsSome(c)&&e.updateOptions({automaticKeyboardNavigation:n()})}),d.onDidChangeScreenReaderOptimized(()=>h())),this.navigator=new A(e,Object.assign({configurationService:l},i)), +this.disposables.push(this.navigator)}get onDidOpen(){return this.navigator.onDidOpen}updateStyleOverrides(e){r.dispose(this.styler),this.styler=e?f.attachListStyler(this.tree,this.themeService,e):r.Disposable.None}dispose(){this.disposables=r.dispose(this.disposables),r.dispose(this.styler),this.styler=void 0}};K=a([l(4,u.IContextKeyService),l(5,t.IListService),l(6,_.IThemeService),l(7,c.IConfigurationService),l(8,w.IAccessibilityService)],K),m.Registry.as(h.Extensions.Configuration).registerConfiguration({id:"workbench",order:7,title:d.localize(0,null),type:"object",properties:{[t.multiSelectModifierSettingKey]:{type:"string",enum:["ctrlCmd","alt"],enumDescriptions:[d.localize(1,null),d.localize(2,null)],default:"ctrlCmd",description:d.localize(3,null)},[t.openModeSettingKey]:{type:"string",enum:["singleClick","doubleClick"],default:"singleClick",description:d.localize(4,null)},[t.horizontalScrollingKey]:{type:"boolean",default:!1,description:d.localize(5,null)},[x]:{type:"number",default:8,minimum:0, +maximum:40,description:d.localize(6,null)},[D]:{type:"string",enum:["none","onHover","always"],default:"onHover",description:d.localize(7,null)},[k]:{type:"boolean",default:!1,description:d.localize(8,null)},[t.keyboardNavigationSettingKey]:{type:"string",enum:["simple","highlight","filter"],enumDescriptions:[d.localize(9,null),d.localize(10,null),d.localize(11,null)],default:"highlight",description:d.localize(12,null)},[t.automaticKeyboardNavigationSettingKey]:{type:"boolean",default:!0,markdownDescription:d.localize(13,null)}}})})),define(t[633],i([0,1,133,10,14,21,25,107,17,62,429,141,553]),(function(e,t,i,n,o,s,r,d,c,h,u,g,p){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.QuickInputService=void 0;let m=class extends o.Themable{constructor(e,t,i,n,o){super(i),this.instantiationService=e,this.contextKeyService=t,this.accessibilityService=n,this.layoutService=o,this.contexts=new Map}get controller(){return this._controller||(this._controller=this._register(this.createController())), +this._controller}get quickAccess(){return this._quickAccess||(this._quickAccess=this._register(this.instantiationService.createInstance(p.QuickAccessController))),this._quickAccess}createController(e=this.layoutService,t){var i,n;const o={idPrefix:"quickInput_",container:e.container,ignoreFocusOut:()=>!1,isScreenReaderOptimized:()=>this.accessibilityService.isScreenReaderOptimized(),backKeybindingLabel:()=>void 0,setContextKey:e=>this.setContextKey(e),returnFocus:()=>e.focus(),createList:(e,t,i,n,o)=>this.instantiationService.createInstance(g.WorkbenchList,e,t,i,n,o),styles:this.computeStyles()},s=this._register(new u.QuickInputController(Object.assign(Object.assign({},o),t)));return s.layout(e.dimension,null!==(n=null===(i=e.offset)||void 0===i?void 0:i.top)&&void 0!==n?n:0),this._register(e.onLayout(t=>{var i,n;return s.layout(t,null!==(n=null===(i=e.offset)||void 0===i?void 0:i.top)&&void 0!==n?n:0)})),this._register(s.onShow(()=>this.resetContextKeys())), +this._register(s.onHide(()=>this.resetContextKeys())),s}setContextKey(e){let t;e&&((t=this.contexts.get(e))||(t=new c.RawContextKey(e,!1).bindTo(this.contextKeyService),this.contexts.set(e,t))),t&&t.get()||(this.resetContextKeys(),t&&t.set(!0))}resetContextKeys(){this.contexts.forEach(e=>{e.get()&&e.reset()})}pick(e,t={},i=r.CancellationToken.None){return this.controller.pick(e,t,i)}createQuickPick(){return this.controller.createQuickPick()}updateStyles(){this.controller.applyStyles(this.computeStyles())}computeStyles(){return{widget:Object.assign({},d.computeStyles(this.theme,{quickInputBackground:s.quickInputBackground,quickInputForeground:s.quickInputForeground,quickInputTitleBackground:s.quickInputTitleBackground,contrastBorder:s.contrastBorder,widgetShadow:s.widgetShadow})),inputBox:d.computeStyles(this.theme,{inputForeground:s.inputForeground,inputBackground:s.inputBackground,inputBorder:s.inputBorder,inputValidationInfoBackground:s.inputValidationInfoBackground, +inputValidationInfoForeground:s.inputValidationInfoForeground,inputValidationInfoBorder:s.inputValidationInfoBorder,inputValidationWarningBackground:s.inputValidationWarningBackground,inputValidationWarningForeground:s.inputValidationWarningForeground,inputValidationWarningBorder:s.inputValidationWarningBorder,inputValidationErrorBackground:s.inputValidationErrorBackground,inputValidationErrorForeground:s.inputValidationErrorForeground,inputValidationErrorBorder:s.inputValidationErrorBorder}),countBadge:d.computeStyles(this.theme,{badgeBackground:s.badgeBackground,badgeForeground:s.badgeForeground,badgeBorder:s.contrastBorder}),button:d.computeStyles(this.theme,{buttonForeground:s.buttonForeground,buttonBackground:s.buttonBackground,buttonHoverBackground:s.buttonHoverBackground,buttonBorder:s.contrastBorder}),progressBar:d.computeStyles(this.theme,{progressBarBackground:s.progressBarBackground}),list:d.computeStyles(this.theme,{listBackground:s.quickInputBackground, +listInactiveFocusForeground:s.listFocusForeground,listInactiveFocusBackground:s.listFocusBackground,listFocusOutline:s.activeContrastBorder,listInactiveFocusOutline:s.activeContrastBorder,pickerGroupBorder:s.pickerGroupBorder,pickerGroupForeground:s.pickerGroupForeground})}}};m=a([l(0,n.IInstantiationService),l(1,c.IContextKeyService),l(2,o.IThemeService),l(3,h.IAccessibilityService),l(4,i.ILayoutService)],m),t.QuickInputService=m})),define(t[634],i([0,1,11,14,25,10,17,62,133,27,633,85,350]),(function(e,t,i,n,o,s,r,d,c,h,u,g){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.QuickInputEditorWidget=t.QuickInputEditorContribution=t.StandaloneQuickInputServiceImpl=t.EditorScopedQuickInputServiceImpl=void 0;let p=class extends u.QuickInputService{constructor(e,t,i,n,o,s){super(t,i,n,o,s),this.host=void 0;const r=f.get(e);this.host={_serviceBrand:void 0,get container(){return r.widget.getDomNode()},get dimension(){return e.getLayoutInfo()},get onLayout(){return e.onDidLayoutChange}, +focus:()=>e.focus()}}createController(){return super.createController(this.host)}};p=a([l(1,s.IInstantiationService),l(2,r.IContextKeyService),l(3,n.IThemeService),l(4,d.IAccessibilityService),l(5,c.ILayoutService)],p),t.EditorScopedQuickInputServiceImpl=p;let m=class{constructor(e,t){this.instantiationService=e,this.codeEditorService=t,this.mapEditorToService=new Map}get activeService(){const e=this.codeEditorService.getFocusedCodeEditor();if(!e)throw new Error("Quick input service needs a focused editor to work.");let t=this.mapEditorToService.get(e);if(!t){const i=t=this.instantiationService.createInstance(p,e);this.mapEditorToService.set(e,t),g.once(e.onDidDispose)(()=>{i.dispose(),this.mapEditorToService.delete(e)})}return t}get quickAccess(){return this.activeService.quickAccess}pick(e,t={},i=o.CancellationToken.None){return this.activeService.pick(e,t,i)}createQuickPick(){return this.activeService.createQuickPick()}};m=a([l(0,s.IInstantiationService),l(1,h.ICodeEditorService)],m), +t.StandaloneQuickInputServiceImpl=m;class f{constructor(e){this.editor=e,this.widget=new _(this.editor)}static get(e){return e.getContribution(f.ID)}dispose(){this.widget.dispose()}}t.QuickInputEditorContribution=f,f.ID="editor.controller.quickInput";class _{constructor(e){this.codeEditor=e,this.domNode=document.createElement("div"),this.codeEditor.addOverlayWidget(this)}getId(){return _.ID}getDomNode(){return this.domNode}getPosition(){return{preference:2}}dispose(){this.codeEditor.removeOverlayWidget(this)}}t.QuickInputEditorWidget=_,_.ID="editor.contrib.quickInputWidget",i.registerEditorContribution(f.ID,f)})),define(t[635],i([0,1,77,14,21,26]),(function(e,t,i,n,o,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SeverityIcon=void 0,function(e){e.className=function(e){switch(e){case i.default.Ignore:return"severity-ignore "+s.Codicon.info.classNames;case i.default.Info:return s.Codicon.info.classNames;case i.default.Warning:return s.Codicon.warning.classNames;case i.default.Error: +return s.Codicon.error.classNames;default:return""}}}(t.SeverityIcon||(t.SeverityIcon={})),n.registerThemingParticipant((e,t)=>{const i=e.getColor(o.problemsErrorIconForeground);if(i){const e=s.Codicon.error.cssSelector;t.addRule(`\n\t\t\t.monaco-editor .zone-widget ${e},\n\t\t\t.markers-panel .marker-icon${e},\n\t\t\t.extensions-viewlet > .extensions ${e} {\n\t\t\t\tcolor: ${i};\n\t\t\t}\n\t\t`)}const n=e.getColor(o.problemsWarningIconForeground);if(n){const e=s.Codicon.warning.cssSelector;t.addRule(`\n\t\t\t.monaco-editor .zone-widget ${e},\n\t\t\t.markers-panel .marker-icon${e},\n\t\t\t.extensions-viewlet > .extensions ${e},\n\t\t\t.extension-editor ${e} {\n\t\t\t\tcolor: ${n};\n\t\t\t}\n\t\t`)}const r=e.getColor(o.problemsInfoIconForeground);if(r){const e=s.Codicon.info.cssSelector;t.addRule(`\n\t\t\t.monaco-editor .zone-widget ${e},\n\t\t\t.markers-panel .marker-icon${e},\n\t\t\t.extensions-viewlet > .extensions ${e},\n\t\t\t.extension-editor ${e} {\n\t\t\t\tcolor: ${r};\n\t\t\t}\n\t\t`)}})})), +define(t[636],i([0,1,464,7,2,82,3,21,14,29,65,151,19,4,108,41,635,55,33,17,255,10,334]),(function(e,t,i,n,o,s,r,d,c,h,u,g,p,m,f,_,v,C,b,S,w,y){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.editorMarkerNavigationBackground=t.editorMarkerNavigationInfo=t.editorMarkerNavigationWarning=t.editorMarkerNavigationError=t.MarkerNavigationWidget=void 0;class E{constructor(e,t,i,s){this._openerService=s,this._lines=0,this._longestLineLength=0,this._relatedDiagnostics=new WeakMap,this._disposables=new o.DisposableStore,this._editor=t;const r=document.createElement("div");r.className="descriptioncontainer",this._messageBlock=document.createElement("div"),n.addClass(this._messageBlock,"message"),this._messageBlock.setAttribute("aria-live","assertive"),this._messageBlock.setAttribute("role","alert"),r.appendChild(this._messageBlock),this._relatedBlock=document.createElement("div"),r.appendChild(this._relatedBlock),this._disposables.add(n.addStandardDisposableListener(this._relatedBlock,"click",e=>{ +e.preventDefault();const t=this._relatedDiagnostics.get(e.target);t&&i(t)})),this._scrollable=new u.ScrollableElement(r,{horizontal:1,vertical:1,useShadows:!1,horizontalScrollbarSize:3,verticalScrollbarSize:3}),e.appendChild(this._scrollable.getDomNode()),this._disposables.add(this._scrollable.onScroll(e=>{r.style.left=`-${e.scrollLeft}px`,r.style.top=`-${e.scrollTop}px`})),this._disposables.add(this._scrollable)}dispose(){o.dispose(this._disposables)}update(e){const{source:t,message:i,relatedInformation:o,code:s}=e;let r=((null==t?void 0:t.length)||0)+"()".length;s&&(r+="string"==typeof s?s.length:s.value.length);const a=i.split(/\r\n|\r|\n/g);this._lines=a.length,this._longestLineLength=0;for(const e of a)this._longestLineLength=Math.max(e.length+r,this._longestLineLength);n.clearNode(this._messageBlock),this._messageBlock.setAttribute("aria-label",this.getAriaLabel(e)),this._editor.applyFontInfo(this._messageBlock);let l=this._messageBlock;for(const e of a)(l=document.createElement("div")).innerText=e, +""===e&&(l.style.height=this._messageBlock.style.lineHeight),this._messageBlock.appendChild(l);if(t||s){const e=document.createElement("span");if(n.addClass(e,"details"),l.appendChild(e),t){const i=document.createElement("span");i.innerText=t,n.addClass(i,"source"),e.appendChild(i)}if(s)if("string"==typeof s){const t=document.createElement("span");t.innerText=`(${s})`,n.addClass(t,"code"),e.appendChild(t)}else{this._codeLink=n.$("a.code-link"),this._codeLink.setAttribute("href",`${s.target.toString()}`),this._codeLink.onclick=e=>{this._openerService.open(s.target),e.preventDefault(),e.stopPropagation()},n.append(this._codeLink,n.$("span")).innerText=s.value,e.appendChild(this._codeLink)}}if(n.clearNode(this._relatedBlock),this._editor.applyFontInfo(this._relatedBlock),p.isNonEmptyArray(o)){const e=this._relatedBlock.appendChild(document.createElement("div"));e.style.paddingTop=`${Math.floor(.66*this._editor.getOption(51))}px`,this._lines+=1;for(const t of o){ +let i=document.createElement("div"),o=document.createElement("a");n.addClass(o,"filename"),o.innerText=`${g.getBaseLabel(t.resource)}(${t.startLineNumber}, ${t.startColumn}): `,o.title=g.getPathLabel(t.resource,void 0),this._relatedDiagnostics.set(o,t);let s=document.createElement("span");s.innerText=t.message,i.appendChild(o),i.appendChild(s),this._lines+=1,e.appendChild(i)}}const d=this._editor.getOption(36),c=Math.ceil(d.typicalFullwidthCharacterWidth*this._longestLineLength*.75),h=d.lineHeight*this._lines;this._scrollable.setScrollDimensions({scrollWidth:c,scrollHeight:h})}layout(e,t){this._scrollable.getDomNode().style.height=`${e}px`,this._scrollable.getDomNode().style.width=`${t}px`,this._scrollable.setScrollDimensions({width:t,height:e})}getHeightInLines(){return Math.min(17,this._lines)}getAriaLabel(e){let t="";switch(e.severity){case s.MarkerSeverity.Error:t=i.localize(0,null);break;case s.MarkerSeverity.Warning:t=i.localize(1,null);break;case s.MarkerSeverity.Info:t=i.localize(2,null);break +;case s.MarkerSeverity.Hint:t=i.localize(3,null)}let n=i.localize(4,null,t,e.startLineNumber+":"+e.startColumn);const o=this._editor.getModel();if(o&&e.startLineNumber<=o.getLineCount()&&e.startLineNumber>=1){n=`${o.getLineContent(e.startLineNumber)}, ${n}`}return n}}let L=class e extends f.PeekViewWidget{constructor(e,t,i,n,r,a){super(e,{showArrow:!0,showFrame:!0,isAccessible:!0},r),this._themeService=t,this._openerService=i,this._menuService=n,this._contextKeyService=a,this._callOnDispose=new o.DisposableStore,this._onDidSelectRelatedInformation=new m.Emitter,this.onDidSelectRelatedInformation=this._onDidSelectRelatedInformation.event,this._severity=s.MarkerSeverity.Warning,this._backgroundColor=h.Color.white,this._applyTheme(t.getColorTheme()),this._callOnDispose.add(t.onDidColorThemeChange(this._applyTheme.bind(this))),this.create()}_applyTheme(e){this._backgroundColor=e.getColor(t.editorMarkerNavigationBackground);let i=t.editorMarkerNavigationError +;this._severity===s.MarkerSeverity.Warning?i=t.editorMarkerNavigationWarning:this._severity===s.MarkerSeverity.Info&&(i=t.editorMarkerNavigationInfo);const n=e.getColor(i);this.style({arrowColor:n,frameColor:n,headerBackgroundColor:this._backgroundColor,primaryHeadingColor:e.getColor(f.peekViewTitleForeground),secondaryHeadingColor:e.getColor(f.peekViewTitleInfoForeground)})}_applyStyles(){this._parentContainer&&(this._parentContainer.style.backgroundColor=this._backgroundColor?this._backgroundColor.toString():""),super._applyStyles()}dispose(){this._callOnDispose.dispose(),super.dispose()}_fillHead(t){super._fillHead(t),this._disposables.add(this._actionbarWidget.actionRunner.onDidBeforeRun(e=>this.editor.focus()));const i=[],n=this._menuService.createMenu(e.TitleMenu,this._contextKeyService);w.createAndFillInActionBarActions(n,void 0,i),this._actionbarWidget.push(i,{label:!1,icon:!0,index:0}),n.dispose()}_fillTitleIcon(e){this._icon=n.append(e,n.$(""))}_getActionBarOptions(){ +return Object.assign(Object.assign({},super._getActionBarOptions()),{orientation:0})}_fillBody(e){this._parentContainer=e,n.addClass(e,"marker-widget"),this._parentContainer.tabIndex=0,this._parentContainer.setAttribute("role","tooltip"),this._container=document.createElement("div"),e.appendChild(this._container),this._message=new E(this._container,this.editor,e=>this._onDidSelectRelatedInformation.fire(e),this._openerService),this._disposables.add(this._message)}show(){throw new Error("call showAtMarker")}showAtMarker(e,t,n){this._container.classList.remove("stale"),this._message.update(e),this._severity=e.severity,this._applyTheme(this._themeService.getColorTheme());let o=r.Range.lift(e);const a=this.editor.getPosition();let l=a&&o.containsPosition(a)?a:o.getStartPosition();super.show(l,this.computeRequiredHeight());const d=this.editor.getModel();if(d){const e=n>1?i.localize(5,null,t,n):i.localize(6,null,t,n);this.setTitle(_.basename(d.uri),e)} +this._icon.className=`codicon ${v.SeverityIcon.className(s.MarkerSeverity.toSeverity(this._severity))}`,this.editor.revealPositionNearTop(l,0),this.editor.focus()}updateMarker(e){this._container.classList.remove("stale"),this._message.update(e)}showStale(){this._container.classList.add("stale"),this._relayout()}_doLayoutBody(e,t){super._doLayoutBody(e,t),this._heightInPixel=e,this._message.layout(e,t),this._container.style.height=`${e}px`}_onWidth(e){this._message.layout(this._heightInPixel,e)}_relayout(){super._relayout(this.computeRequiredHeight())}computeRequiredHeight(){return 3+this._message.getHeightInLines()}};L.TitleMenu=new b.MenuId("gotoErrorTitleMenu"),L=a([l(1,c.IThemeService),l(2,C.IOpenerService),l(3,b.IMenuService),l(4,y.IInstantiationService),l(5,S.IContextKeyService)],L),t.MarkerNavigationWidget=L;let x=d.oneOf(d.editorErrorForeground,d.editorErrorBorder),D=d.oneOf(d.editorWarningForeground,d.editorWarningBorder),k=d.oneOf(d.editorInfoForeground,d.editorInfoBorder) +;t.editorMarkerNavigationError=d.registerColor("editorMarkerNavigationError.background",{dark:x,light:x,hc:x},i.localize(7,null)),t.editorMarkerNavigationWarning=d.registerColor("editorMarkerNavigationWarning.background",{dark:D,light:D,hc:D},i.localize(8,null)),t.editorMarkerNavigationInfo=d.registerColor("editorMarkerNavigationInfo.background",{dark:k,light:k,hc:k},i.localize(9,null)),t.editorMarkerNavigationBackground=d.registerColor("editorMarkerNavigation.background",{dark:"#2D2D30",light:h.Color.white,hc:"#0C141F"},i.localize(10,null)),c.registerThemingParticipant((e,t)=>{const i=e.getColor(d.textLinkForeground);i&&(t.addRule(`.monaco-editor .marker-widget a { color: ${i}; }`),t.addRule(`.monaco-editor .marker-widget a.code-link span:hover { color: ${i}; }`))})})),define(t[256],i([0,1,463,2,17,13,3,11,22,636,27,33,26,10,536]),(function(e,t,i,n,o,s,d,c,h,u,g,p,m,f,_){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NextMarkerAction=t.MarkerController=void 0;let v=class e{ +constructor(e,t,i,o,s){this._markerNavigationService=t,this._contextKeyService=i,this._editorService=o,this._instantiationService=s,this._sessionDispoables=new n.DisposableStore,this._editor=e,this._widgetVisible=w.bindTo(this._contextKeyService)}static get(t){return t.getContribution(e.ID)}dispose(){this._cleanUp(),this._sessionDispoables.dispose()}_cleanUp(){this._widgetVisible.reset(),this._sessionDispoables.clear(),this._widget=void 0,this._model=void 0}_getOrCreateModel(e){if(this._model&&this._model.matches(e))return this._model;let t=!1;return this._model&&(t=!0,this._cleanUp()),this._model=this._markerNavigationService.getMarkerList(e),t&&this._model.move(!0,this._editor.getModel(),this._editor.getPosition()),this._widget=this._instantiationService.createInstance(u.MarkerNavigationWidget,this._editor),this._widget.onDidClose(()=>this.close(),this,this._sessionDispoables),this._widgetVisible.set(!0),this._sessionDispoables.add(this._model),this._sessionDispoables.add(this._widget), +this._sessionDispoables.add(this._editor.onDidChangeCursorPosition(e=>{var t,i,n;(null===(t=this._model)||void 0===t?void 0:t.selected)&&d.Range.containsPosition(null===(i=this._model)||void 0===i?void 0:i.selected.marker,e.position)||null===(n=this._model)||void 0===n||n.resetIndex()})),this._sessionDispoables.add(this._model.onDidChange(()=>{if(!this._widget||!this._widget.position||!this._model)return;const e=this._model.find(this._editor.getModel().uri,this._widget.position);e?this._widget.updateMarker(e.marker):this._widget.showStale()})),this._sessionDispoables.add(this._widget.onDidSelectRelatedInformation(e=>{this._editorService.openCodeEditor({resource:e.resource,options:{pinned:!0,revealIfOpened:!0,selection:d.Range.lift(e).collapseToStart()}},this._editor),this.close(!1)})),this._sessionDispoables.add(this._editor.onDidChangeModel(()=>this._cleanUp())),this._model}close(e=!0){this._cleanUp(),e&&this._editor.focus()}showAtMarker(e){if(this._editor.hasModel()){ +const t=this._getOrCreateModel(this._editor.getModel().uri);t.resetIndex(),t.move(!0,this._editor.getModel(),new s.Position(e.startLineNumber,e.startColumn)),t.selected&&this._widget.showAtMarker(t.selected.marker,t.selected.index,t.selected.total)}}nagivate(t,i){return r(this,void 0,void 0,(function*(){if(this._editor.hasModel()){const n=this._getOrCreateModel(i?void 0:this._editor.getModel().uri);if(n.move(t,this._editor.getModel(),this._editor.getPosition()),!n.selected)return;if(n.selected.marker.resource.toString()!==this._editor.getModel().uri.toString()){this._cleanUp();const o=yield this._editorService.openCodeEditor({resource:n.selected.marker.resource,options:{pinned:!1,revealIfOpened:!0,selectionRevealType:2,selection:n.selected.marker}},this._editor);o&&(e.get(o).close(),e.get(o).nagivate(t,i))}else this._widget.showAtMarker(n.selected.marker,n.selected.index,n.selected.total)}}))}};v.ID="editor.contrib.markerController", +v=a([l(1,_.IMarkerNavigationService),l(2,o.IContextKeyService),l(3,g.ICodeEditorService),l(4,f.IInstantiationService)],v),t.MarkerController=v;class C extends c.EditorAction{constructor(e,t,i){super(i),this._next=e,this._multiFile=t}run(e,t){return r(this,void 0,void 0,(function*(){t.hasModel()&&v.get(t).nagivate(this._next,this._multiFile)}))}}class b extends C{constructor(){super(!0,!1,{id:b.ID,label:b.LABEL,alias:"Go to Next Problem (Error, Warning, Info)",precondition:void 0,kbOpts:{kbExpr:h.EditorContextKeys.focus,primary:578,weight:100},menuOpts:{menuId:u.MarkerNavigationWidget.TitleMenu,title:b.LABEL,icon:m.registerIcon("marker-navigation-next",m.Codicon.chevronDown),group:"navigation",order:1}})}}t.NextMarkerAction=b,b.ID="editor.action.marker.next",b.LABEL=i.localize(0,null);class S extends C{constructor(){super(!1,!1,{id:S.ID,label:S.LABEL,alias:"Go to Previous Problem (Error, Warning, Info)",precondition:void 0,kbOpts:{kbExpr:h.EditorContextKeys.focus,primary:1602,weight:100},menuOpts:{ +menuId:u.MarkerNavigationWidget.TitleMenu,title:b.LABEL,icon:m.registerIcon("marker-navigation-previous",m.Codicon.chevronUp),group:"navigation",order:2}})}}S.ID="editor.action.marker.prev",S.LABEL=i.localize(1,null);c.registerEditorContribution(v.ID,v),c.registerEditorAction(b),c.registerEditorAction(S),c.registerEditorAction(class extends C{constructor(){super(!0,!0,{id:"editor.action.marker.nextInFiles",label:i.localize(2,null),alias:"Go to Next Problem in Files (Error, Warning, Info)",precondition:void 0,kbOpts:{kbExpr:h.EditorContextKeys.focus,primary:66,weight:100},menuOpts:{menuId:p.MenuId.MenubarGoMenu,title:i.localize(3,null),group:"6_problem_nav",order:1}})}}),c.registerEditorAction(class extends C{constructor(){super(!1,!0,{id:"editor.action.marker.prevInFiles",label:i.localize(4,null),alias:"Go to Previous Problem in Files (Error, Warning, Info)",precondition:void 0,kbOpts:{kbExpr:h.EditorContextKeys.focus,primary:1090,weight:100},menuOpts:{menuId:p.MenuId.MenubarGoMenu,title:i.localize(5,null), +group:"6_problem_nav",order:2}})}});const w=new o.RawContextKey("markersNavigationVisible",!1),y=c.EditorCommand.bindToContribution(v.get);c.registerEditorCommand(new y({id:"closeMarkersNavigation",precondition:w,handler:e=>e.close(),kbOpts:{weight:150,kbExpr:h.EditorContextKeys.focus,primary:9,secondary:[1033]}}))})),define(t[637],i([0,1,473,7,25,29,78,2,13,3,31,18,244,245,390,604,572,220,221,134,14,19,82,41,12,55,256,15,136,253,124,21,56]),(function(e,t,i,n,o,s,r,a,l,d,c,h,u,g,p,m,f,_,v,C,b,S,w,y,E,L,x,D,k,N,I,M,R){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ModesContentHoverWidget=void 0;const T=n.$;class O{constructor(e,t,i){this.range=e,this.color=t,this.provider=i}}class A{constructor(e,t){this.range=e,this.marker=t}}class P{constructor(e,t){this._markerDecorationsService=t,this._editor=e,this._result=[]}setRange(e){this._range=e,this._result=[]}clearResult(){this._result=[]}computeAsync(e){if(!this._editor.hasModel()||!this._range)return Promise.resolve([]) +;const t=this._editor.getModel();return h.HoverProviderRegistry.has(t)?f.getHover(t,new l.Position(this._range.startLineNumber,this._range.startColumn),e):Promise.resolve([])}computeSync(){if(!this._editor.hasModel()||!this._range)return[];const e=this._editor.getModel(),t=this._range.startLineNumber;if(t>this._editor.getModel().getLineCount())return[];const i=g.ColorDetector.get(this._editor),n=e.getLineMaxColumn(t),o=this._editor.getLineDecorations(t);let s=!1;const a=this._range,l=o.map(o=>{const l=o.range.startLineNumber===t?o.range.startColumn:1,c=o.range.endLineNumber===t?o.range.endColumn:n;if(l>a.startColumn||a.endColumn>c)return null;const h=new d.Range(a.startLineNumber,l,a.startLineNumber,c),u=this._markerDecorationsService.getMarker(e,o);if(u)return new A(h,u);const g=i.getColorData(o.range.getStartPosition());if(!s&&g){s=!0;const{color:e,range:t}=g.colorInfo;return new O(t,e,g.provider)}if(r.isEmptyMarkdownString(o.options.hoverMessage))return null;return{ +contents:o.options.hoverMessage?S.asArray(o.options.hoverMessage):[],range:h}});return S.coalesce(l)}onResult(e,t){this._result=t?e.concat(this._result.sort((e,t)=>e instanceof O?-1:t instanceof O?1:0)):this._result.concat(e)}getResult(){return this._result.slice(0)}getResultWithLoadingMessage(){return this._result.slice(0).concat([this._getLoadingMessage()])}_getLoadingMessage(){return{range:this._range,contents:[(new r.MarkdownString).appendText(i.localize(0,null))]}}}const F={type:2,filter:{include:I.CodeActionKind.QuickFix}};class W extends v.ContentHoverWidget{constructor(e,t,i,o,s,r,l=L.NullOpenerService){super(W.ID,e,t,o),this._themeService=s,this._modeService=r,this._openerService=l,this.renderDisposable=this._register(new a.MutableDisposable),this._messages=[],this._lastRange=null,this._computer=new P(this._editor,i),this._highlightDecorations=[],this._isChangingDecorations=!1,this._shouldFocus=!1,this._colorPicker=null, +this._hoverOperation=new _.HoverOperation(this._computer,e=>this._withResult(e,!0),null,e=>this._withResult(e,!1),this._editor.getOption(46).delay),this._register(n.addStandardDisposableListener(this.getDomNode(),n.EventType.FOCUS,()=>{this._colorPicker&&n.addClass(this.getDomNode(),"colorpicker-hover")})),this._register(n.addStandardDisposableListener(this.getDomNode(),n.EventType.BLUR,()=>{n.removeClass(this.getDomNode(),"colorpicker-hover")})),this._register(e.onDidChangeConfiguration(e=>{this._hoverOperation.setHoverTime(this._editor.getOption(46).delay)})),this._register(h.TokenizationRegistry.onDidChange(e=>{this.isVisible&&this._lastRange&&this._messages.length>0&&(this._hover.contentsDomNode.textContent="",this._renderMessages(this._lastRange,this._messages))}))}dispose(){this._hoverOperation.cancel(),super.dispose()}onModelDecorationsChanged(){this._isChangingDecorations||this.isVisible&&(this._hoverOperation.cancel(),this._computer.clearResult(),this._colorPicker||this._hoverOperation.start(0))} +startShowingAt(e,t,i){if(!this._lastRange||!this._lastRange.equalsRange(e)){if(this._hoverOperation.cancel(),this.isVisible)if(this._showAtPosition&&this._showAtPosition.lineNumber===e.startLineNumber){let t=[];for(let i=0,n=this._messages.length;i=e.endColumn&&t.push(n)}if(t.length>0){if(function(e,t){if(!e&&t||e&&!t||e.length!==t.length)return!1;for(let i=0;i0?this._renderMessages(this._lastRange,this._messages):t&&this.hide()}_renderMessages(e,t){this.renderDisposable.dispose(),this._colorPicker=null;let i=1073741824,c=t[0].range?d.Range.lift(t[0].range):null,h=document.createDocumentFragment(),g=!0,f=!1;const _=new a.DisposableStore,v=[];if(t.forEach(e=>{if(e.range)if(i=Math.min(i,e.range.startColumn),c=c?d.Range.plusRange(c,e.range):d.Range.lift(e.range),e instanceof O){f=!0;const{red:t,green:i,blue:n,alpha:r}=e.color,l=new s.RGBA(Math.round(255*t),Math.round(255*i),Math.round(255*n),r),c=new s.Color(l);if(!this._editor.hasModel())return;const g=this._editor.getModel() +;let v=new d.Range(e.range.startLineNumber,e.range.startColumn,e.range.endLineNumber,e.range.endColumn),C={range:e.range,color:e.color};const b=new p.ColorPickerModel(c,[],0),S=new m.ColorPickerWidget(h,b,this._editor.getOption(115),this._themeService);u.getColorPresentations(g,C,e.provider,o.CancellationToken.None).then(t=>{if(b.colorPresentations=t||[],!this._editor.hasModel())return;const i=this._editor.getModel().getValueInRange(e.range);b.guessColorPresentation(c,i);const n=()=>{let e,t;b.presentation.textEdit?(e=[b.presentation.textEdit],t=(t=new d.Range(b.presentation.textEdit.range.startLineNumber,b.presentation.textEdit.range.startColumn,b.presentation.textEdit.range.endLineNumber,b.presentation.textEdit.range.endColumn)).setEndPosition(t.endLineNumber,t.startColumn+b.presentation.textEdit.text.length)):(e=[{identifier:null,range:v,text:b.presentation.label,forceMoveMarkers:!1}],t=v.setEndPosition(v.endLineNumber,v.startColumn+b.presentation.label.length)),this._editor.pushUndoStop(), +this._editor.executeEdits("colorpicker",e),b.presentation.additionalTextEdits&&(e=[...b.presentation.additionalTextEdits],this._editor.executeEdits("colorpicker",e),this.hide()),this._editor.pushUndoStop(),v=t},s=t=>u.getColorPresentations(g,{range:v,color:{red:t.rgba.r/255,green:t.rgba.g/255,blue:t.rgba.b/255,alpha:t.rgba.a}},e.provider,o.CancellationToken.None).then(e=>{b.colorPresentations=e||[]}),r=b.onColorFlushed(e=>{s(e).then(n)}),l=b.onDidChangeColor(s);this._colorPicker=S,this.showAt(v.getStartPosition(),v,this._shouldFocus),this.updateContents(h),this._colorPicker.layout(),this.renderDisposable.value=a.combinedDisposable(r,l,S,_)})}else e instanceof A?(v.push(e),g=!1):e.contents.filter(e=>!r.isEmptyMarkdownString(e)).forEach(e=>{const t=T("div.hover-row.markdown-hover"),i=n.append(t,T("div.hover-contents")),o=_.add(new C.MarkdownRenderer(this._editor,this._modeService,this._openerService));_.add(o.onDidRenderCodeBlock(()=>{i.className="hover-contents code-hover-contents", +this._hover.onContentsChanged()}));const s=_.add(o.render(e));i.appendChild(s.element),h.appendChild(t),g=!1})}),v.length){v.forEach(e=>h.appendChild(this.renderMarkerHover(e)));const e=1===v.length?v[0]:v.sort((e,t)=>w.MarkerSeverity.compare(e.marker.severity,t.marker.severity))[0];h.appendChild(this.renderMarkerStatusbar(e))}f||g||(this.showAt(new l.Position(e.startLineNumber,i),c,this._shouldFocus),this.updateContents(h)),this._isChangingDecorations=!0,this._highlightDecorations=this._editor.deltaDecorations(this._highlightDecorations,c?[{range:c,options:W._DECORATION_OPTIONS}]:[]),this._isChangingDecorations=!1}renderMarkerHover(e){const t=T("div.hover-row"),i=n.append(t,T("div.marker.hover-contents")),{source:o,message:s,code:r,relatedInformation:a}=e.marker;this._editor.applyFontInfo(i);const l=n.append(i,T("span"));if(l.style.whiteSpace="pre-wrap",l.innerText=s,o||r)if(r&&"string"!=typeof r){const e=T("span");if(o){n.append(e,T("span")).innerText=o}this._codeLink=n.append(e,T("a.code-link")), +this._codeLink.setAttribute("href",r.target.toString()),this._codeLink.onclick=e=>{this._openerService.open(r.target),e.preventDefault(),e.stopPropagation()},n.append(this._codeLink,T("span")).innerText=r.value;const t=n.append(i,e);t.style.opacity="0.6",t.style.paddingLeft="6px"}else{const e=n.append(i,T("span"));e.style.opacity="0.6",e.style.paddingLeft="6px",e.innerText=o&&r?`${o}(${r})`:o||`(${r})`}if(S.isNonEmptyArray(a))for(const{message:e,resource:t,startLineNumber:o,startColumn:s}of a){const r=n.append(i,T("div"));r.style.marginTop="8px";const a=n.append(r,T("a"));a.innerText=`${y.basename(t)}(${o}, ${s}): `,a.style.cursor="pointer",a.onclick=e=>{e.stopPropagation(),e.preventDefault(),this._openerService&&this._openerService.open(t.with({fragment:`${o},${s}`}),{fromUserGesture:!0}).catch(E.onUnexpectedError)};const l=n.append(r,T("span"));l.innerText=e,this._editor.applyFontInfo(l)}return t}renderMarkerStatusbar(e){ +const t=T("div.hover-row.status-bar"),o=new a.DisposableStore,s=n.append(t,T("div.actions"));if(e.marker.severity!==w.MarkerSeverity.Error&&e.marker.severity!==w.MarkerSeverity.Warning&&e.marker.severity!==w.MarkerSeverity.Info||o.add(this._renderAction(s,{label:i.localize(1,null),commandId:x.NextMarkerAction.ID,run:()=>{this.hide(),x.MarkerController.get(this._editor).showAtMarker(e.marker),this._editor.focus()}})),!this._editor.getOption(72)){const t=n.append(s,T("div"));t.style.opacity="0",t.style.transition="opacity 0.2s",setTimeout(()=>t.style.opacity="1",200),t.textContent=i.localize(2,null),o.add(a.toDisposable(()=>t.remove()));const r=this.getCodeActions(e.marker);o.add(a.toDisposable(()=>r.cancel())),r.then(e=>{if(t.style.transition="",t.style.opacity="1",!e.validActions.length)return e.dispose(),void(t.textContent=i.localize(3,null));t.remove();let r=!1;o.add(a.toDisposable(()=>{r||e.dispose()})),o.add(this._renderAction(s,{label:i.localize(4,null),commandId:N.QuickFixAction.Id,run:t=>{r=!0 +;const i=N.QuickFixController.get(this._editor),o=n.getDomNodePagePosition(t);this.hide(),i.showCodeActions(F,e,{x:o.left+6,y:o.top+o.height+6})}}))})}return this.renderDisposable.value=o,t}getCodeActions(e){return D.createCancelablePromise(t=>k.getCodeActions(this._editor.getModel(),new d.Range(e.startLineNumber,e.startColumn,e.endLineNumber,e.endColumn),F,R.Progress.None,t))}}t.ModesContentHoverWidget=W,W.ID="editor.contrib.modesContentHoverWidget",W._DECORATION_OPTIONS=c.ModelDecorationOptions.register({className:"hoverHighlight"}),b.registerThemingParticipant((e,t)=>{const i=e.getColor(M.textLinkForeground);i&&t.addRule(`.monaco-hover .hover-contents a.code-link span:hover { color: ${i}; }`)})})),define(t[142],i([0,1,10]),(function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ResourceEditStackSnapshot=t.IUndoRedoService=void 0,t.IUndoRedoService=i.createDecorator("undoRedoService");t.ResourceEditStackSnapshot=class{constructor(e,t){this.resource=e,this.elements=t}}})), +define(t[257],i([0,1,4,2,16,12,38,31,18,135,130,46,15,25,14,81,142,113,228,241]),(function(e,t,i,n,o,s,r,d,c,h,u,g,p,m,f,_,v,C,b,S){"use strict";function w(e){return e.toString()}Object.defineProperty(t,"__esModule",{value:!0}),t.isSemanticColoringEnabled=t.SEMANTIC_HIGHLIGHTING_SETTING_ID=t.ModelServiceImpl=void 0;class y{constructor(e,t,i){this._modelEventListeners=new n.DisposableStore,this.model=e,this._languageSelection=null,this._languageSelectionListener=null,this._modelEventListeners.add(e.onWillDispose(()=>t(e))),this._modelEventListeners.add(e.onDidChangeLanguage(t=>i(e,t)))}_disposeLanguageSelection(){this._languageSelectionListener&&(this._languageSelectionListener.dispose(),this._languageSelectionListener=null),this._languageSelection&&(this._languageSelection.dispose(),this._languageSelection=null)}dispose(){this._modelEventListeners.dispose(),this._disposeLanguageSelection()}setLanguage(e){this._disposeLanguageSelection(),this._languageSelection=e, +this._languageSelectionListener=this._languageSelection.onDidChange(()=>this.model.setMode(e.languageIdentifier)),this.model.setMode(e.languageIdentifier)}}const E=o.isLinux||o.isMacintosh?1:2;let L=class e extends n.Disposable{constructor(e,t,n,o,s){super(),this._configurationService=e,this._resourcePropertiesService=t,this._themeService=n,this._logService=o,this._undoRedoService=s,this._onModelAdded=this._register(new i.Emitter),this.onModelAdded=this._onModelAdded.event,this._onModelRemoved=this._register(new i.Emitter),this.onModelRemoved=this._onModelRemoved.event,this._onModelModeChanged=this._register(new i.Emitter),this.onModelModeChanged=this._onModelModeChanged.event,this._modelCreationOptionsByLanguageAndResource=Object.create(null),this._models={},this._disposedModels=new Map,this._disposedModelsHeapSize=0,this._semanticStyling=this._register(new k(this._themeService,this._logService)),this._register(this._configurationService.onDidChangeConfiguration(()=>this._updateModelOptions())), +this._updateModelOptions(),this._register(new D(this,this._themeService,this._configurationService,this._semanticStyling))}static _readModelOptions(e,t){let i=r.EDITOR_MODEL_DEFAULTS.tabSize;if(e.editor&&void 0!==e.editor.tabSize){const t=parseInt(e.editor.tabSize,10);isNaN(t)||(i=t),i<1&&(i=1)}let n=i;if(e.editor&&void 0!==e.editor.indentSize&&"tabSize"!==e.editor.indentSize){const t=parseInt(e.editor.indentSize,10);isNaN(t)||(n=t),n<1&&(n=1)}let o=r.EDITOR_MODEL_DEFAULTS.insertSpaces;e.editor&&void 0!==e.editor.insertSpaces&&(o="false"!==e.editor.insertSpaces&&Boolean(e.editor.insertSpaces));let s=E;const a=e.eol;"\r\n"===a?s=2:"\n"===a&&(s=1);let l=r.EDITOR_MODEL_DEFAULTS.trimAutoWhitespace;e.editor&&void 0!==e.editor.trimAutoWhitespace&&(l="false"!==e.editor.trimAutoWhitespace&&Boolean(e.editor.trimAutoWhitespace));let d=r.EDITOR_MODEL_DEFAULTS.detectIndentation;e.editor&&void 0!==e.editor.detectIndentation&&(d="false"!==e.editor.detectIndentation&&Boolean(e.editor.detectIndentation)) +;let c=r.EDITOR_MODEL_DEFAULTS.largeFileOptimizations;return e.editor&&void 0!==e.editor.largeFileOptimizations&&(c="false"!==e.editor.largeFileOptimizations&&Boolean(e.editor.largeFileOptimizations)),{isForSimpleWidget:t,tabSize:i,indentSize:n,insertSpaces:o,detectIndentation:d,defaultEOL:s,trimAutoWhitespace:l,largeFileOptimizations:c}}_getEOL(e,t){if(e)return this._resourcePropertiesService.getEOL(e,t);const i=this._configurationService.getValue("files.eol",{overrideIdentifier:t});return i&&"auto"!==i?i:3===o.OS||2===o.OS?"\n":"\r\n"}getCreationOptions(t,i,n){let o=this._modelCreationOptionsByLanguageAndResource[t+i];if(!o){const s=this._configurationService.getValue("editor",{overrideIdentifier:t,resource:i}),r=this._getEOL(i,t);o=e._readModelOptions({editor:s,eol:r},n),this._modelCreationOptionsByLanguageAndResource[t+i]=o}return o}_updateModelOptions(){const t=this._modelCreationOptionsByLanguageAndResource;this._modelCreationOptionsByLanguageAndResource=Object.create(null) +;const i=Object.keys(this._models);for(let n=0,o=i.length;nb.isEditStackElement(e)&&e.matchesResource(i)),n&&(s._overwriteVersionId(e.versionId),s._overwriteAlternativeVersionId(e.alternativeVersionId),s._overwriteInitialUndoRedoSnapshot(e.initialUndoRedoSnapshot))}else null!==e.initialUndoRedoSnapshot&&this._undoRedoService.restoreSnapshot(e.initialUndoRedoSnapshot)}const r=w(s.uri);if(this._models[r])throw new Error("ModelService: Cannot add model because it already exists!") +;const a=new y(s,e=>this._onWillDispose(e),(e,t)=>this._onDidChangeLanguage(e,t));return this._models[r]=a,a}createModel(e,t,i,n=!1){let o;return t?(o=this._createModelData(e,t.languageIdentifier,i,n),this.setMode(o.model,t)):o=this._createModelData(e,h.PLAINTEXT_LANGUAGE_IDENTIFIER,i,n),this._onModelAdded.fire(o.model),o.model}setMode(e,t){if(!t)return;const i=this._models[w(e.uri)];i&&i.setLanguage(t)}getModels(){const e=[],t=Object.keys(this._models);for(let i=0,n=t.length;i{this._watchers[e.uri.toString()]=new I(e,i,this._semanticStyling)},r=(e,t)=>{t.dispose(), +delete this._watchers[e.uri.toString()]},a=()=>{for(let t of e.getModels()){const e=this._watchers[t.uri.toString()];x(t,i,n)?e||s(t):e&&r(t,e)}};this._register(e.onModelAdded(e=>{x(e,i,n)&&s(e)})),this._register(e.onModelRemoved(e=>{const t=this._watchers[e.uri.toString()];t&&r(e,t)})),this._register(n.onDidChangeConfiguration(e=>{e.affectsConfiguration(t.SEMANTIC_HIGHLIGHTING_SETTING_ID)&&a()})),this._register(i.onDidColorThemeChange(a))}}class k extends n.Disposable{constructor(e,t){super(),this._themeService=e,this._logService=t,this._caches=new WeakMap,this._register(this._themeService.onDidColorThemeChange(()=>{this._caches=new WeakMap}))}get(e){return this._caches.has(e)||this._caches.set(e,new S.SemanticTokensProviderStyling(e.getLegend(),this._themeService,this._logService)),this._caches.get(e)}}class N{constructor(e,t,i){this._provider=e,this.resultId=t,this.data=i}dispose(){this._provider.releaseDocumentSemanticTokens(this.resultId)}}class I extends n.Disposable{constructor(e,t,i){super(), +this._isDisposed=!1,this._model=e,this._semanticStyling=i,this._fetchDocumentSemanticTokens=this._register(new p.RunOnceScheduler(()=>this._fetchDocumentSemanticTokensNow(),300)),this._currentDocumentResponse=null,this._currentDocumentRequestCancellationTokenSource=null,this._documentProvidersChangeListeners=[],this._register(this._model.onDidChangeContent(()=>{this._fetchDocumentSemanticTokens.isScheduled()||this._fetchDocumentSemanticTokens.schedule()}));const o=()=>{n.dispose(this._documentProvidersChangeListeners),this._documentProvidersChangeListeners=[];for(const t of c.DocumentSemanticTokensProviderRegistry.all(e))"function"==typeof t.onDidChange&&this._documentProvidersChangeListeners.push(t.onDidChange(()=>this._fetchDocumentSemanticTokens.schedule(0)))};o(),this._register(c.DocumentSemanticTokensProviderRegistry.onDidChange(()=>{o(),this._fetchDocumentSemanticTokens.schedule()})),this._register(t.onDidColorThemeChange(e=>{this._setDocumentSemanticTokens(null,null,null,[]), +this._fetchDocumentSemanticTokens.schedule()})),this._fetchDocumentSemanticTokens.schedule(0)}dispose(){this._currentDocumentResponse&&(this._currentDocumentResponse.dispose(),this._currentDocumentResponse=null),this._currentDocumentRequestCancellationTokenSource&&(this._currentDocumentRequestCancellationTokenSource.cancel(),this._currentDocumentRequestCancellationTokenSource=null),this._setDocumentSemanticTokens(null,null,null,[]),this._isDisposed=!0,super.dispose()}_fetchDocumentSemanticTokensNow(){if(this._currentDocumentRequestCancellationTokenSource)return;const e=this._getSemanticColoringProvider();if(!e)return;this._currentDocumentRequestCancellationTokenSource=new m.CancellationTokenSource;const t=[],i=this._model.onDidChangeContent(e=>{t.push(e)}),n=this._semanticStyling.get(e),o=this._currentDocumentResponse&&this._currentDocumentResponse.resultId||null;Promise.resolve(e.provideDocumentSemanticTokens(this._model,o,this._currentDocumentRequestCancellationTokenSource.token)).then(o=>{ +this._currentDocumentRequestCancellationTokenSource=null,i.dispose(),this._setDocumentSemanticTokens(e,o||null,n,t)},e=>{e&&"string"==typeof e.message&&-1!==e.message.indexOf("busy")||s.onUnexpectedError(e),this._currentDocumentRequestCancellationTokenSource=null,i.dispose(),t.length>0&&(this._fetchDocumentSemanticTokens.isScheduled()||this._fetchDocumentSemanticTokens.schedule())})}static _isSemanticTokens(e){return e&&!!e.data}static _isSemanticTokensEdits(e){return e&&Array.isArray(e.edits)}static _copy(e,t,i,n,o){for(let s=0;s=0;e--){const o=t.edits[e],a=s-(o.start+o.deleteCount);a>0&&(I._copy(i,s-a,n,r-a,a),r-=a),o.data&&(I._copy(o.data,0,n,r-o.data.length,o.data.length),r-=o.data.length),s=o.start}s>0&&I._copy(i,0,n,0,s),t={resultId:t.resultId,data:n}}}if(I._isSemanticTokens(t)){this._currentDocumentResponse=new N(e,t.resultId,t.data);const o=S.toMultilineTokens2(t,i,this._model.getLanguageIdentifier());if(n.length>0){for(const e of n)for(const t of o)for(const i of e.changes)t.applyEdit(i.range,i.text);this._fetchDocumentSemanticTokens.isScheduled()||this._fetchDocumentSemanticTokens.schedule()}this._model.setSemanticTokens(o,!0)}else this._model.setSemanticTokens(null,!0)}else this._model.setSemanticTokens(null,!0);else this._model.setSemanticTokens(null,!1)}_getSemanticColoringProvider(){const e=c.DocumentSemanticTokensProviderRegistry.ordered(this._model) +;return e.length>0?e[0]:null}}})),define(t[638],i([0,1,7,29,4,2,40,41,178,3,31,92,611,469,10,132,141,21,14,108,126,304,142,35,336]),(function(e,t,i,n,o,s,d,c,h,u,g,p,m,f,_,v,C,b,S,w,y,E,L,x){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ReferenceWidget=t.LayoutData=void 0;class D{constructor(e,t){this._editor=e,this._model=t,this._decorations=new Map,this._decorationIgnoreSet=new Set,this._callOnDispose=new s.DisposableStore,this._callOnModelChange=new s.DisposableStore,this._callOnDispose.add(this._editor.onDidChangeModel(()=>this._onModelChanged())),this._onModelChanged()}dispose(){this._callOnModelChange.dispose(),this._callOnDispose.dispose(),this.removeDecorations()}_onModelChanged(){this._callOnModelChange.clear();const e=this._editor.getModel();if(e)for(let t of this._model.references)if(t.uri.toString()===e.uri.toString())return void this._addDecorations(t.parent)}_addDecorations(e){if(!this._editor.hasModel())return +;this._callOnModelChange.add(this._editor.getModel().onDidChangeDecorations(()=>this._onDecorationChanged()));const t=[],i=[];for(let n=0,o=e.children.length;n{e.equals(9)&&(this._keybindingService.dispatchEvent(e,e.target),e.stopPropagation())},!0)),this._tree=this._instantiationService.createInstance(k,"ReferencesWidget",this._treeContainer,new m.Delegate,[this._instantiationService.createInstance(m.FileReferencesRenderer),this._instantiationService.createInstance(m.OneReferenceRenderer)],this._instantiationService.createInstance(m.DataSource),t),this._splitView.addView({onDidChange:o.Event.None,element:this._previewContainer,minimumSize:200,maximumSize:Number.MAX_VALUE,layout:e=>{this._preview.layout({ +height:this._dim.height,width:e})}},E.Sizing.Distribute),this._splitView.addView({onDidChange:o.Event.None,element:this._treeContainer,minimumSize:100,maximumSize:Number.MAX_VALUE,layout:e=>{this._treeContainer.style.height=`${this._dim.height}px`,this._treeContainer.style.width=`${e}px`,this._tree.layout(this._dim.height,e)}},E.Sizing.Distribute),this._disposables.add(this._splitView.onDidSashChange(()=>{this._dim.width&&(this.layoutData.ratio=this._splitView.getViewSize(0)/this._dim.width)},void 0));let n=(e,t)=>{e instanceof y.OneReference&&("show"===t&&this._revealReference(e,!1),this._onDidSelectReference.fire({element:e,kind:t,source:"tree"}))};this._tree.onDidOpen(e=>{e.sideBySide?n(e.element,"side"):e.editorOptions.pinned?n(e.element,"goto"):n(e.element,"show")}),i.hide(this._treeContainer)}_onWidth(e){this._dim&&this._doLayoutBody(this._dim.height,e)}_doLayoutBody(e,t){super._doLayoutBody(e,t),this._dim={height:e,width:t}, +this.layoutData.heightInLines=this._viewZone?this._viewZone.heightInLines:this.layoutData.heightInLines,this._splitView.layout(t),this._splitView.resizeView(0,t*this.layoutData.ratio)}setSelection(e){return this._revealReference(e,!0).then(()=>{this._model&&(this._tree.setSelection([e]),this._tree.setFocus([e]))})}setModel(e){return this._disposeOnNewModel.clear(),this._model=e,this._model?this._onNewModel():Promise.resolve()}_onNewModel(){return this._model?this._model.isEmpty?(this.setTitle(""),this._messageContainer.innerText=f.localize(1,null),i.show(this._messageContainer),Promise.resolve(void 0)):(i.hide(this._messageContainer),this._decorationsManager=new D(this._preview,this._model),this._disposeOnNewModel.add(this._decorationsManager),this._disposeOnNewModel.add(this._model.onDidChangeReferenceRange(e=>this._tree.rerender(e))),this._disposeOnNewModel.add(this._preview.onMouseDown(e=>{const{event:t,target:i}=e;if(2!==t.detail)return;const n=this._getFocusedReference() +;n&&this._onDidSelectReference.fire({element:{uri:n.uri,range:i.range},kind:t.ctrlKey||t.metaKey||t.altKey?"side":"open",source:"editor"})})),this.container.classList.add("results-loaded"),i.show(this._treeContainer),i.show(this._previewContainer),this._splitView.layout(this._dim.width),this.focusOnReferenceTree(),this._tree.setInput(1===this._model.groups.length?this._model.groups[0]:this._model)):Promise.resolve(void 0)}_getFocusedReference(){const[e]=this._tree.getFocus();return e instanceof y.OneReference?e:e instanceof y.FileReferences&&e.children.length>0?e.children[0]:void 0}revealReference(e){return r(this,void 0,void 0,(function*(){yield this._revealReference(e,!1),this._onDidSelectReference.fire({element:e,kind:"goto",source:"tree"})}))}_revealReference(e,t){return r(this,void 0,void 0,(function*(){if(this._revealedReference===e)return;this._revealedReference=e, +e.uri.scheme!==d.Schemas.inMemory?this.setTitle(c.basenameOrAuthority(e.uri),this._uriLabel.getUriLabel(c.dirname(e.uri))):this.setTitle(f.localize(2,null));const i=this._textModelResolverService.createModelReference(e.uri);this._tree.getInput()===e.parent?this._tree.reveal(e):(t&&this._tree.reveal(e.parent),yield this._tree.expand(e.parent),this._tree.reveal(e));const n=yield i;if(!this._model)return void n.dispose();s.dispose(this._previewModelReference);const o=n.object;if(o){const t=this._preview.getModel()===o.textEditorModel?0:1,i=u.Range.lift(e.range).collapseToStart();this._previewModelReference=n,this._preview.setModel(o.textEditorModel),this._preview.setSelection(i),this._preview.revealRangeInCenter(i,t)}else this._preview.setModel(this._previewNotAvailableMessage),n.dispose()}))}};N=a([l(3,S.IThemeService),l(4,p.ITextModelService),l(5,_.IInstantiationService),l(6,w.IPeekViewService),l(7,v.ILabelService),l(8,L.IUndoRedoService),l(9,x.IKeybindingService)],N),t.ReferenceWidget=N, +S.registerThemingParticipant((e,t)=>{const i=e.getColor(w.peekViewResultsMatchHighlight);i&&t.addRule(`.monaco-editor .reference-zone-widget .ref-tree .referenceMatch .highlight { background-color: ${i}; }`);const n=e.getColor(w.peekViewEditorMatchHighlight);n&&t.addRule(`.monaco-editor .reference-zone-widget .preview .reference-decoration { background-color: ${n}; }`);const o=e.getColor(w.peekViewEditorMatchHighlightBorder);o&&t.addRule(`.monaco-editor .reference-zone-widget .preview .reference-decoration { border: 2px solid ${o}; box-sizing: border-box; }`);const s=e.getColor(b.activeContrastBorder);s&&t.addRule(`.monaco-editor .reference-zone-widget .ref-tree .referenceMatch .highlight { border: 1px dotted ${s}; box-sizing: border-box; }`);const r=e.getColor(w.peekViewResultsBackground);r&&t.addRule(`.monaco-editor .reference-zone-widget .ref-tree { background-color: ${r}; }`);const a=e.getColor(w.peekViewResultsMatchForeground) +;a&&t.addRule(`.monaco-editor .reference-zone-widget .ref-tree { color: ${a}; }`);const l=e.getColor(w.peekViewResultsFileForeground);l&&t.addRule(`.monaco-editor .reference-zone-widget .ref-tree .reference-file { color: ${l}; }`);const d=e.getColor(w.peekViewResultsSelectionBackground);d&&t.addRule(`.monaco-editor .reference-zone-widget .ref-tree .monaco-list:focus .monaco-list-rows > .monaco-list-row.selected:not(.highlighted) { background-color: ${d}; }`);const c=e.getColor(w.peekViewResultsSelectionForeground);c&&t.addRule(`.monaco-editor .reference-zone-widget .ref-tree .monaco-list:focus .monaco-list-rows > .monaco-list-row.selected:not(.highlighted) { color: ${c} !important; }`);const h=e.getColor(w.peekViewEditorBackground);h&&t.addRule(".monaco-editor .reference-zone-widget .preview .monaco-editor .monaco-editor-background,.monaco-editor .reference-zone-widget .preview .monaco-editor .inputarea.ime-input {"+`\tbackground-color: ${h};`+"}");const u=e.getColor(w.peekViewEditorGutterBackground) +;u&&t.addRule(".monaco-editor .reference-zone-widget .preview .monaco-editor .margin {"+`\tbackground-color: ${u};`+"}")})})),define(t[258],i([0,1,467,12,2,27,10,17,46,76,126,638,3,13,32,15,108,141,83,39,28]),(function(e,t,i,n,o,s,d,c,h,u,g,p,m,f,_,v,C,b,S,w,y){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ReferencesController=t.ctxReferenceSearchVisible=void 0,t.ctxReferenceSearchVisible=new c.RawContextKey("referenceSearchVisible",!1);let E=class e{constructor(e,i,n,s,r,a,l,d){this._defaultTreeKeyboardSupport=e,this._editor=i,this._editorService=s,this._notificationService=r,this._instantiationService=a,this._storageService=l,this._configurationService=d,this._disposables=new o.DisposableStore,this._requestIdPool=0,this._ignoreModelChangeEvent=!1,this._referenceSearchVisible=t.ctxReferenceSearchVisible.bindTo(n)}static get(t){return t.getContribution(e.ID)}dispose(){this._referenceSearchVisible.reset(),this._disposables.dispose(),o.dispose(this._widget),o.dispose(this._model), +this._widget=void 0,this._model=void 0}toggleWidget(e,t,n){let o;if(this._widget&&(o=this._widget.position),this.closeWidget(),o&&e.containsPosition(o))return;this._peekMode=n,this._referenceSearchVisible.set(!0),this._disposables.add(this._editor.onDidChangeModelLanguage(()=>{this.closeWidget()})),this._disposables.add(this._editor.onDidChangeModel(()=>{this._ignoreModelChangeEvent||this.closeWidget()}));const s=p.LayoutData.fromJSON(this._storageService.get("peekViewLayout",0,"{}"));this._widget=this._instantiationService.createInstance(p.ReferenceWidget,this._editor,this._defaultTreeKeyboardSupport,s),this._widget.setTitle(i.localize(0,null)),this._widget.show(e),this._disposables.add(this._widget.onDidClose(()=>{t.cancel(),this._widget&&(this._storageService.store("peekViewLayout",JSON.stringify(this._widget.layoutData),0),this._widget=void 0),this.closeWidget()})),this._disposables.add(this._widget.onDidSelectReference(e=>{let{element:t,kind:i}=e;if(t)switch(i){case"open": +"editor"===e.source&&this._configurationService.getValue("editor.stablePeek")||this.openReference(t,!1);break;case"side":this.openReference(t,!0);break;case"goto":n?this._gotoReference(t):this.openReference(t,!1)}}));const r=++this._requestIdPool;t.then(t=>{if(r===this._requestIdPool&&this._widget)return this._model&&this._model.dispose(),this._model=t,this._widget.setModel(this._model).then(()=>{if(this._widget&&this._model&&this._editor.hasModel()){this._model.isEmpty?this._widget.setMetaTitle(""):this._widget.setMetaTitle(i.localize(1,null,this._model.title,this._model.references.length));let t=this._editor.getModel().uri,n=new f.Position(e.startLineNumber,e.startColumn),o=this._model.nearestReference(t,n);if(o)return this._widget.setSelection(o).then(()=>{this._widget&&"editor"===this._editor.getOption(68)&&this._widget.focusOnPreviewEditor()})}})},e=>{this._notificationService.error(e)})}changeFocusBetweenPreviewAndReferences(){ +this._widget&&(this._widget.isPreviewEditorFocused()?this._widget.focusOnReferenceTree():this._widget.focusOnPreviewEditor())}goToNextOrPreviousReference(e){return r(this,void 0,void 0,(function*(){if(!this._editor.hasModel()||!this._model||!this._widget)return;const t=this._widget.position;if(!t)return;const i=this._model.nearestReference(this._editor.getModel().uri,t);if(!i)return;const n=this._model.nextOrPreviousReference(i,e),o=this._editor.hasTextFocus(),s=this._widget.isPreviewEditorFocused();yield this._widget.setSelection(n),yield this._gotoReference(n),o?this._editor.focus():this._widget&&s&&this._widget.focusOnPreviewEditor()}))}revealReference(e){return r(this,void 0,void 0,(function*(){this._editor.hasModel()&&this._model&&this._widget&&(yield this._widget.revealReference(e))}))}closeWidget(e=!0){o.dispose(this._widget),o.dispose(this._model),this._referenceSearchVisible.reset(),this._disposables.clear(),this._widget=void 0,this._model=void 0,e&&this._editor.focus(),this._requestIdPool+=1} +_gotoReference(t){this._widget&&this._widget.hide(),this._ignoreModelChangeEvent=!0;const i=m.Range.lift(t.range).collapseToStart();return this._editorService.openCodeEditor({resource:t.uri,options:{selection:i}},this._editor).then(t=>{var n;if(this._ignoreModelChangeEvent=!1,t&&this._widget)if(this._editor===t)this._widget.show(i),this._widget.focusOnReferenceTree();else{const o=e.get(t),s=this._model.clone();this.closeWidget(),t.focus(),o.toggleWidget(i,v.createCancelablePromise(e=>Promise.resolve(s)),null!==(n=this._peekMode)&&void 0!==n&&n)}else this.closeWidget()},e=>{this._ignoreModelChangeEvent=!1,n.onUnexpectedError(e)})}openReference(e,t){t||this.closeWidget();const{uri:i,range:n}=e;this._editorService.openCodeEditor({resource:i,options:{selection:n}},this._editor,t)}};function L(e,t){const i=C.getOuterEditor(e);if(!i)return;let n=E.get(i);n&&t(n)}E.ID="editor.contrib.referencesController", +E=a([l(2,c.IContextKeyService),l(3,s.ICodeEditorService),l(4,_.INotificationService),l(5,d.IInstantiationService),l(6,u.IStorageService),l(7,h.IConfigurationService)],E),t.ReferencesController=E,S.KeybindingsRegistry.registerCommandAndKeybindingRule({id:"togglePeekWidgetFocus",weight:100,primary:w.KeyChord(2089,60),when:c.ContextKeyExpr.or(t.ctxReferenceSearchVisible,C.PeekContext.inPeekEditor),handler(e){L(e,e=>{e.changeFocusBetweenPreviewAndReferences()})}}),S.KeybindingsRegistry.registerCommandAndKeybindingRule({id:"goToNextReference",weight:90,primary:62,secondary:[70],when:c.ContextKeyExpr.or(t.ctxReferenceSearchVisible,C.PeekContext.inPeekEditor),handler(e){L(e,e=>{e.goToNextOrPreviousReference(!0)})}}),S.KeybindingsRegistry.registerCommandAndKeybindingRule({id:"goToPreviousReference",weight:90,primary:1086,secondary:[1094],when:c.ContextKeyExpr.or(t.ctxReferenceSearchVisible,C.PeekContext.inPeekEditor),handler(e){L(e,e=>{e.goToNextOrPreviousReference(!1)})}}), +y.CommandsRegistry.registerCommandAlias("goToNextReferenceFromEmbeddedEditor","goToNextReference"),y.CommandsRegistry.registerCommandAlias("goToPreviousReferenceFromEmbeddedEditor","goToPreviousReference"),y.CommandsRegistry.registerCommandAlias("closeReferenceSearchEditor","closeReferenceSearch"),y.CommandsRegistry.registerCommand("closeReferenceSearch",e=>L(e,e=>e.closeWidget())),S.KeybindingsRegistry.registerKeybindingRule({id:"closeReferenceSearch",weight:-1,primary:9,secondary:[1033],when:c.ContextKeyExpr.and(C.PeekContext.inPeekEditor,c.ContextKeyExpr.not("config.editor.stablePeek"))}),S.KeybindingsRegistry.registerKeybindingRule({id:"closeReferenceSearch",weight:250,primary:9,secondary:[1033],when:c.ContextKeyExpr.and(t.ctxReferenceSearchVisible,c.ContextKeyExpr.not("config.editor.stablePeek"))}),S.KeybindingsRegistry.registerCommandAndKeybindingRule({id:"revealReference",weight:200,primary:3,mac:{primary:3,secondary:[2066]}, +when:c.ContextKeyExpr.and(t.ctxReferenceSearchVisible,b.WorkbenchListFocusContextKey),handler(e){var t;const i=null===(t=e.get(b.IListService).lastFocusedList)||void 0===t?void 0:t.getFocus();Array.isArray(i)&&i[0]instanceof g.OneReference&&L(e,e=>e.revealReference(i[0]))}}),S.KeybindingsRegistry.registerCommandAndKeybindingRule({id:"openReferenceToSide",weight:100,primary:2051,mac:{primary:259},when:c.ContextKeyExpr.and(t.ctxReferenceSearchVisible,b.WorkbenchListFocusContextKey),handler(e){var t;const i=null===(t=e.get(b.IListService).lastFocusedList)||void 0===t?void 0:t.getFocus();Array.isArray(i)&&i[0]instanceof g.OneReference&&L(e,e=>e.openReference(i[0],!0))}}),y.CommandsRegistry.registerCommand("openReference",e=>{var t;const i=null===(t=e.get(b.IListService).lastFocusedList)||void 0===t?void 0:t.getFocus();Array.isArray(i)&&i[0]instanceof g.OneReference&&L(e,e=>e.openReference(i[0],!1))})})), +define(t[259],i([0,1,48,15,39,16,101,11,27,13,3,22,18,140,108,258,126,465,33,17,32,56,246,28,68,571,36,24,10,23,178]),(function(e,t,i,n,o,s,a,l,d,c,h,u,g,p,m,f,_,v,C,b,S,w,y,E,L,x,D,k,N,I,M){"use strict";var R,T,O,A,P,F,W,B;Object.defineProperty(t,"__esModule",{value:!0}),t.DefinitionAction=void 0,C.MenuRegistry.appendMenuItem(C.MenuId.EditorContext,{submenu:C.MenuId.EditorContextPeek,title:v.localize(0,null),group:"navigation",order:100});class V extends l.EditorAction{constructor(e,t){super(t),this._configuration=e}run(e,t){if(!t.hasModel())return Promise.resolve(void 0);const o=e.get(S.INotificationService),s=e.get(d.ICodeEditorService),a=e.get(w.IEditorProgressService),l=e.get(x.ISymbolNavigationService),c=t.getModel(),h=t.getPosition(),u=new L.EditorStateCancellationTokenSource(t,5),g=n.raceCancellation(this._getLocationModel(c,h,u.token),u.token).then(e=>r(this,void 0,void 0,(function*(){if(!e||u.token.isCancellationRequested)return;let n;if(i.alert(e.ariaMessage),e.referenceAt(c.uri,h)){ +const e=this._getAlternativeCommand(t);e!==this.id&&(n=t.getAction(e))}const o=e.references.length;if(0===o){if(!this._configuration.muteMessage){const e=c.getWordAtPosition(h);p.MessageController.get(t).showMessage(this._getNoResultFoundMessage(e),h)}}else{if(1!==o||!n)return this._onResult(s,l,t,e);n.run()}})),e=>{o.error(e)}).finally(()=>{u.dispose()});return a.showWhile(g,250),g}_onResult(e,t,i,n){return r(this,void 0,void 0,(function*(){const o=this._getGoToPreference(i);if(i instanceof M.EmbeddedCodeEditorWidget||!(this._configuration.openInPeek||"peek"===o&&n.references.length>1)){const s=n.firstReference(),r=n.references.length>1&&"gotoAndPeek"===o,a=yield this._openReference(i,e,s,this._configuration.openToSide,!r);r&&a?this._openInPeek(a,n):n.dispose(),"goto"===o&&t.put(s)}else this._openInPeek(i,n)}))}_openReference(e,t,i,n,o){return r(this,void 0,void 0,(function*(){let s=void 0;g.isLocationLink(i)&&(s=i.targetSelectionRange),s||(s=i.range);const r=yield t.openCodeEditor({resource:i.uri,options:{ +selection:h.Range.collapseToStart(s),selectionRevealType:3}},e,n);if(r){if(o){const e=r.getModel(),t=r.deltaDecorations([],[{range:s,options:{className:"symbolHighlight"}}]);setTimeout(()=>{r.getModel()===e&&r.deltaDecorations(t,[])},350)}return r}}))}_openInPeek(e,t){let i=f.ReferencesController.get(e);i&&e.hasModel()?i.toggleWidget(e.getSelection(),n.createCancelablePromise(e=>Promise.resolve(t)),this._configuration.openInPeek):t.dispose()}}class z extends V{_getLocationModel(e,t,i){return r(this,void 0,void 0,(function*(){return new _.ReferencesModel(yield y.getDefinitionsAtPosition(e,t,i),v.localize(1,null))}))}_getNoResultFoundMessage(e){return e&&e.word?v.localize(2,null,e.word):v.localize(3,null)}_getAlternativeCommand(e){return e.getOption(43).alternativeDefinitionCommand}_getGoToPreference(e){return e.getOption(43).multipleDefinitions}}t.DefinitionAction=z;const H=s.isWeb&&!D.isStandalone?2118:70;l.registerEditorAction(((R=class e extends z{constructor(){super({openToSide:!1,openInPeek:!1, +muteMessage:!1},{id:e.id,label:v.localize(4,null),alias:"Go to Definition",precondition:b.ContextKeyExpr.and(u.EditorContextKeys.hasDefinitionProvider,u.EditorContextKeys.isInWalkThroughSnippet.toNegated()),kbOpts:{kbExpr:u.EditorContextKeys.editorTextFocus,primary:H,weight:100},contextMenuOpts:{group:"navigation",order:1.1},menuOpts:{menuId:C.MenuId.MenubarGoMenu,group:"4_symbol_nav",order:2,title:v.localize(5,null)}}),E.CommandsRegistry.registerCommandAlias("editor.action.goToDeclaration",e.id)}}).id="editor.action.revealDefinition",R)),l.registerEditorAction(((T=class e extends z{constructor(){super({openToSide:!0,openInPeek:!1,muteMessage:!1},{id:e.id,label:v.localize(6,null),alias:"Open Definition to the Side",precondition:b.ContextKeyExpr.and(u.EditorContextKeys.hasDefinitionProvider,u.EditorContextKeys.isInWalkThroughSnippet.toNegated()),kbOpts:{kbExpr:u.EditorContextKeys.editorTextFocus,primary:o.KeyChord(2089,H),weight:100}}), +E.CommandsRegistry.registerCommandAlias("editor.action.openDeclarationToTheSide",e.id)}}).id="editor.action.revealDefinitionAside",T)),l.registerEditorAction(((O=class e extends z{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:e.id,label:v.localize(7,null),alias:"Peek Definition",precondition:b.ContextKeyExpr.and(u.EditorContextKeys.hasDefinitionProvider,m.PeekContext.notInPeekEditor,u.EditorContextKeys.isInWalkThroughSnippet.toNegated()),kbOpts:{kbExpr:u.EditorContextKeys.editorTextFocus,primary:582,linux:{primary:3140},weight:100},contextMenuOpts:{menuId:C.MenuId.EditorContextPeek,group:"peek",order:2}}),E.CommandsRegistry.registerCommandAlias("editor.action.previewDeclaration",e.id)}}).id="editor.action.peekDefinition",O));class K extends V{_getLocationModel(e,t,i){return r(this,void 0,void 0,(function*(){return new _.ReferencesModel(yield y.getDeclarationsAtPosition(e,t,i),v.localize(8,null))}))}_getNoResultFoundMessage(e){ +return e&&e.word?v.localize(9,null,e.word):v.localize(10,null)}_getAlternativeCommand(e){return e.getOption(43).alternativeDeclarationCommand}_getGoToPreference(e){return e.getOption(43).multipleDeclarations}}l.registerEditorAction(((A=class e extends K{constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:e.id,label:v.localize(11,null),alias:"Go to Declaration",precondition:b.ContextKeyExpr.and(u.EditorContextKeys.hasDeclarationProvider,u.EditorContextKeys.isInWalkThroughSnippet.toNegated()),contextMenuOpts:{group:"navigation",order:1.3},menuOpts:{menuId:C.MenuId.MenubarGoMenu,group:"4_symbol_nav",order:3,title:v.localize(12,null)}})}_getNoResultFoundMessage(e){return e&&e.word?v.localize(13,null,e.word):v.localize(14,null)}}).id="editor.action.revealDeclaration",A)),l.registerEditorAction(class extends K{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:"editor.action.peekDeclaration",label:v.localize(15,null),alias:"Peek Declaration", +precondition:b.ContextKeyExpr.and(u.EditorContextKeys.hasDeclarationProvider,m.PeekContext.notInPeekEditor,u.EditorContextKeys.isInWalkThroughSnippet.toNegated()),contextMenuOpts:{menuId:C.MenuId.EditorContextPeek,group:"peek",order:3}})}});class U extends V{_getLocationModel(e,t,i){return r(this,void 0,void 0,(function*(){return new _.ReferencesModel(yield y.getTypeDefinitionsAtPosition(e,t,i),v.localize(16,null))}))}_getNoResultFoundMessage(e){return e&&e.word?v.localize(17,null,e.word):v.localize(18,null)}_getAlternativeCommand(e){return e.getOption(43).alternativeTypeDefinitionCommand}_getGoToPreference(e){return e.getOption(43).multipleTypeDefinitions}}l.registerEditorAction(((P=class e extends U{constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:e.ID,label:v.localize(19,null),alias:"Go to Type Definition",precondition:b.ContextKeyExpr.and(u.EditorContextKeys.hasTypeDefinitionProvider,u.EditorContextKeys.isInWalkThroughSnippet.toNegated()),kbOpts:{ +kbExpr:u.EditorContextKeys.editorTextFocus,primary:0,weight:100},contextMenuOpts:{group:"navigation",order:1.4},menuOpts:{menuId:C.MenuId.MenubarGoMenu,group:"4_symbol_nav",order:3,title:v.localize(20,null)}})}}).ID="editor.action.goToTypeDefinition",P)),l.registerEditorAction(((F=class e extends U{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:e.ID,label:v.localize(21,null),alias:"Peek Type Definition",precondition:b.ContextKeyExpr.and(u.EditorContextKeys.hasTypeDefinitionProvider,m.PeekContext.notInPeekEditor,u.EditorContextKeys.isInWalkThroughSnippet.toNegated()),contextMenuOpts:{menuId:C.MenuId.EditorContextPeek,group:"peek",order:4}})}}).ID="editor.action.peekTypeDefinition",F));class $ extends V{_getLocationModel(e,t,i){return r(this,void 0,void 0,(function*(){return new _.ReferencesModel(yield y.getImplementationsAtPosition(e,t,i),v.localize(22,null))}))}_getNoResultFoundMessage(e){return e&&e.word?v.localize(23,null,e.word):v.localize(24,null)}_getAlternativeCommand(e){ +return e.getOption(43).alternativeImplementationCommand}_getGoToPreference(e){return e.getOption(43).multipleImplementations}}l.registerEditorAction(((W=class e extends ${constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:e.ID,label:v.localize(25,null),alias:"Go to Implementations",precondition:b.ContextKeyExpr.and(u.EditorContextKeys.hasImplementationProvider,u.EditorContextKeys.isInWalkThroughSnippet.toNegated()),kbOpts:{kbExpr:u.EditorContextKeys.editorTextFocus,primary:2118,weight:100},menuOpts:{menuId:C.MenuId.MenubarGoMenu,group:"4_symbol_nav",order:4,title:v.localize(26,null)},contextMenuOpts:{group:"navigation",order:1.45}})}}).ID="editor.action.goToImplementation",W)),l.registerEditorAction(((B=class e extends ${constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:e.ID,label:v.localize(27,null),alias:"Peek Implementations", +precondition:b.ContextKeyExpr.and(u.EditorContextKeys.hasImplementationProvider,m.PeekContext.notInPeekEditor,u.EditorContextKeys.isInWalkThroughSnippet.toNegated()),kbOpts:{kbExpr:u.EditorContextKeys.editorTextFocus,primary:3142,weight:100},contextMenuOpts:{menuId:C.MenuId.EditorContextPeek,group:"peek",order:5}})}}).ID="editor.action.peekImplementation",B));class j extends V{_getNoResultFoundMessage(e){return e?v.localize(28,null,e.word):v.localize(29,null)}_getAlternativeCommand(e){return e.getOption(43).alternativeReferenceCommand}_getGoToPreference(e){return e.getOption(43).multipleReferences}}l.registerEditorAction(class extends j{constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:"editor.action.goToReferences",label:v.localize(30,null),alias:"Go to References",precondition:b.ContextKeyExpr.and(u.EditorContextKeys.hasReferenceProvider,m.PeekContext.notInPeekEditor,u.EditorContextKeys.isInWalkThroughSnippet.toNegated()),kbOpts:{kbExpr:u.EditorContextKeys.editorTextFocus,primary:1094, +weight:100},contextMenuOpts:{group:"navigation",order:1.45},menuOpts:{menuId:C.MenuId.MenubarGoMenu,group:"4_symbol_nav",order:5,title:v.localize(31,null)}})}_getLocationModel(e,t,i){return r(this,void 0,void 0,(function*(){return new _.ReferencesModel(yield y.getReferencesAtPosition(e,t,!0,i),v.localize(32,null))}))}}),l.registerEditorAction(class extends j{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:"editor.action.referenceSearch.trigger",label:v.localize(33,null),alias:"Peek References",precondition:b.ContextKeyExpr.and(u.EditorContextKeys.hasReferenceProvider,m.PeekContext.notInPeekEditor,u.EditorContextKeys.isInWalkThroughSnippet.toNegated()),contextMenuOpts:{menuId:C.MenuId.EditorContextPeek,group:"peek",order:6}})}_getLocationModel(e,t,i){return r(this,void 0,void 0,(function*(){return new _.ReferencesModel(yield y.getReferencesAtPosition(e,t,!1,i),v.localize(34,null))}))}});class q extends V{constructor(e,t,i){super(e,{id:"editor.action.goToLocation",label:v.localize(35,null), +alias:"Go To Any Symbol",precondition:b.ContextKeyExpr.and(m.PeekContext.notInPeekEditor,u.EditorContextKeys.isInWalkThroughSnippet.toNegated())}),this._references=t,this._gotoMultipleBehaviour=i}_getLocationModel(e,t,i){return r(this,void 0,void 0,(function*(){return new _.ReferencesModel(this._references,v.localize(36,null))}))}_getNoResultFoundMessage(e){return e&&v.localize(37,null,e.word)||""}_getGoToPreference(e){var t;return null!==(t=this._gotoMultipleBehaviour)&&void 0!==t?t:e.getOption(43).multipleReferences}_getAlternativeCommand(){return""}}E.CommandsRegistry.registerCommand({id:"editor.action.goToLocations",description:{description:"Go to locations from a position in a file",args:[{name:"uri",description:"The text document in which to start",constraint:k.URI},{name:"position",description:"The position at which to start",constraint:c.Position.isIPosition},{name:"locations",description:"An array of locations.",constraint:Array},{name:"multiple", +description:"Define what to do when having multiple results, either `peek`, `gotoAndPeek`, or `goto"},{name:"noResultsMessage",description:"Human readable message that shows when locations is empty."}]},handler:(e,t,i,n,o,s,l)=>r(void 0,void 0,void 0,(function*(){I.assertType(k.URI.isUri(t)),I.assertType(c.Position.isIPosition(i)),I.assertType(Array.isArray(n)),I.assertType(void 0===o||"string"==typeof o),I.assertType(void 0===l||"boolean"==typeof l);const r=e.get(d.ICodeEditorService),h=yield r.openCodeEditor({resource:t},r.getFocusedCodeEditor());if(a.isCodeEditor(h))return h.setPosition(i),h.revealPositionInCenterIfOutsideViewport(i,0),h.invokeWithinContext(e=>{const t=new class extends q{_getNoResultFoundMessage(e){return s||super._getNoResultFoundMessage(e)}}({muteMessage:!Boolean(s),openInPeek:Boolean(l),openToSide:!1},n,o);e.get(N.IInstantiationService).invokeFunction(t.run.bind(t),h)})}))}),E.CommandsRegistry.registerCommand({id:"editor.action.peekLocations",description:{ +description:"Peek locations from a position in a file",args:[{name:"uri",description:"The text document in which to start",constraint:k.URI},{name:"position",description:"The position at which to start",constraint:c.Position.isIPosition},{name:"locations",description:"An array of locations.",constraint:Array},{name:"multiple",description:"Define what to do when having multiple results, either `peek`, `gotoAndPeek`, or `goto"}]},handler:(e,t,i,n,o)=>r(void 0,void 0,void 0,(function*(){e.get(E.ICommandService).executeCommand("editor.action.goToLocations",t,i,n,o,void 0,!0)}))}),E.CommandsRegistry.registerCommand({id:"editor.action.findReferences",handler:(e,t,i)=>{I.assertType(k.URI.isUri(t)),I.assertType(c.Position.isIPosition(i));const o=e.get(d.ICodeEditorService);return o.openCodeEditor({resource:t},o.getFocusedCodeEditor()).then(e=>{if(!a.isCodeEditor(e)||!e.hasModel())return;const t=f.ReferencesController.get(e);if(!t)return +;const o=n.createCancelablePromise(t=>y.getReferencesAtPosition(e.getModel(),c.Position.lift(i),!1,t).then(e=>new _.ReferencesModel(e,v.localize(38,null)))),s=new h.Range(i.lineNumber,i.column,i.lineNumber,i.column);return Promise.resolve(t.toggleWidget(s,o,!1))})}}),E.CommandsRegistry.registerCommandAlias("editor.action.showReferences","editor.action.peekLocations")})),define(t[260],i([0,1,466,15,12,78,73,3,18,11,246,2,92,14,21,68,259,219,13,23,108,17,335]),(function(e,t,i,n,o,s,r,d,c,h,u,g,p,m,f,_,v,C,b,S,w,y){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.GotoDefinitionAtPositionEditorContribution=void 0;let E=class e{constructor(e,t,i){this.textModelResolverService=t,this.modeService=i,this.toUnhook=new g.DisposableStore,this.toUnhookForKeyboard=new g.DisposableStore,this.linkDecorations=[],this.currentWordAtPosition=null,this.previousPromise=null,this.editor=e;let n=new C.ClickLinkGesture(e);this.toUnhook.add(n),this.toUnhook.add(n.onMouseMoveOrRelevantKeyDown(([e,t])=>{ +this.startFindDefinitionFromMouse(e,S.withNullAsUndefined(t))})),this.toUnhook.add(n.onExecute(e=>{this.isEnabled(e)&&this.gotoDefinition(e.target.position,e.hasSideBySideModifier).then(()=>{this.removeLinkDecorations()},e=>{this.removeLinkDecorations(),o.onUnexpectedError(e)})})),this.toUnhook.add(n.onCancel(()=>{this.removeLinkDecorations(),this.currentWordAtPosition=null}))}static get(t){return t.getContribution(e.ID)}startFindDefinitionFromCursor(e){return this.startFindDefinition(e).then(()=>{this.toUnhookForKeyboard.add(this.editor.onDidChangeCursorPosition(()=>{this.currentWordAtPosition=null,this.removeLinkDecorations(),this.toUnhookForKeyboard.clear()})),this.toUnhookForKeyboard.add(this.editor.onKeyDown(e=>{e&&(this.currentWordAtPosition=null,this.removeLinkDecorations(),this.toUnhookForKeyboard.clear())}))})}startFindDefinitionFromMouse(e,t){if(9===e.target.type&&this.linkDecorations.length>0)return;if(!this.editor.hasModel()||!this.isEnabled(e,t))return this.currentWordAtPosition=null, +void this.removeLinkDecorations();const i=e.target.position;this.startFindDefinition(i)}startFindDefinition(e){var t;this.toUnhookForKeyboard.clear();const r=e?null===(t=this.editor.getModel())||void 0===t?void 0:t.getWordAtPosition(e):null;if(!r)return this.currentWordAtPosition=null,this.removeLinkDecorations(),Promise.resolve(0);if(this.currentWordAtPosition&&this.currentWordAtPosition.startColumn===r.startColumn&&this.currentWordAtPosition.endColumn===r.endColumn&&this.currentWordAtPosition.word===r.word)return Promise.resolve(0);this.currentWordAtPosition=r;let a=new _.EditorState(this.editor,15);return this.previousPromise&&(this.previousPromise.cancel(),this.previousPromise=null),this.previousPromise=n.createCancelablePromise(t=>this.findDefinition(e,t)),this.previousPromise.then(t=>{if(t&&t.length&&a.validate(this.editor))if(t.length>1)this.addDecoration(new d.Range(e.lineNumber,r.startColumn,e.lineNumber,r.endColumn),(new s.MarkdownString).appendText(i.localize(0,null,t.length)));else{let i=t[0] +;if(!i.uri)return;this.textModelResolverService.createModelReference(i.uri).then(t=>{if(!t.object||!t.object.textEditorModel)return void t.dispose();const{object:{textEditorModel:n}}=t,{startLineNumber:o}=i.range;if(o<1||o>n.getLineCount())return void t.dispose();const a=this.getPreviewValue(n,o,i);let l;l=i.originSelectionRange?d.Range.lift(i.originSelectionRange):new d.Range(e.lineNumber,r.startColumn,e.lineNumber,r.endColumn);const c=this.modeService.getModeIdByFilepathOrFirstLine(n.uri);this.addDecoration(l,(new s.MarkdownString).appendCodeblock(c||"",a)),t.dispose()})}else this.removeLinkDecorations()}).then(void 0,o.onUnexpectedError)}getPreviewValue(t,i,n){let o=n.targetSelectionRange?n.range:this.getPreviewRangeBasedOnBrackets(t,i);return o.endLineNumber-o.startLineNumber>=e.MAX_SOURCE_PREVIEW_LINES&&(o=this.getPreviewRangeBasedOnIndentation(t,i)),this.stripIndentationFromPreviewRange(t,i,o)}stripIndentationFromPreviewRange(e,t,i){let n=e.getLineFirstNonWhitespaceColumn(t) +;for(let o=t+1;on)return new d.Range(i,1,n+1,1);r=t.findNextBracket(new b.Position(a,l))}return new d.Range(i,1,n+1,1)} +addDecoration(e,t){const i={range:e,options:{inlineClassName:"goto-definition-link",hoverMessage:t}};this.linkDecorations=this.editor.deltaDecorations(this.linkDecorations,[i])}removeLinkDecorations(){this.linkDecorations.length>0&&(this.linkDecorations=this.editor.deltaDecorations(this.linkDecorations,[]))}isEnabled(e,t){return this.editor.hasModel()&&e.isNoneOrSingleMouseDown&&6===e.target.type&&(e.hasTriggerModifier||!!t&&t.keyCodeIsTriggerKey)&&c.DefinitionProviderRegistry.has(this.editor.getModel())}findDefinition(e,t){const i=this.editor.getModel();return i?u.getDefinitionsAtPosition(i,e,t):Promise.resolve(null)}gotoDefinition(e,t){return this.editor.setPosition(e),this.editor.invokeWithinContext(e=>{const i=!t&&this.editor.getOption(69)&&!this.isInPeekEditor(e);return new v.DefinitionAction({openToSide:t,openInPeek:i,muteMessage:!0},{alias:"",label:"",id:"",precondition:void 0}).run(e,this.editor)})}isInPeekEditor(e){const t=e.get(y.IContextKeyService);return w.PeekContext.inPeekEditor.getValue(t)} +dispose(){this.toUnhook.dispose()}};E.ID="editor.contrib.gotodefinitionatposition",E.MAX_SOURCE_PREVIEW_LINES=8,E=a([l(1,p.ITextModelService),l(2,r.IModeService)],E),t.GotoDefinitionAtPositionEditorContribution=E,h.registerEditorContribution(E.ID,E),m.registerThemingParticipant((e,t)=>{const i=e.getColor(f.editorActiveLinkForeground);i&&t.addRule(`.monaco-editor .goto-definition-link { color: ${i} !important; }`)})})),define(t[639],i([0,1,472,39,2,11,3,22,73,637,539,55,21,14,231,35,260,17]),(function(e,t,i,n,o,s,r,d,c,h,u,g,p,m,f,_,v,C){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ModesHoverController=void 0;let b=class e{constructor(e,t,i,n,s,r,a){this._editor=e,this._openerService=t,this._modeService=i,this._markerDecorationsService=n,this._keybindingService=s,this._themeService=r,this._toUnhook=new o.DisposableStore,this._contentWidget=new o.MutableDisposable,this._glyphWidget=new o.MutableDisposable,this._isMouseDown=!1,this._hoverClicked=!1,this._hookEvents(), +this._didChangeConfigurationHandler=this._editor.onDidChangeConfiguration(e=>{e.hasChanged(46)&&(this._hideWidgets(),this._unhookEvents(),this._hookEvents())}),this._hoverVisibleKey=d.EditorContextKeys.hoverVisible.bindTo(a)}get contentWidget(){return this._contentWidget.value||this._createHoverWidgets(),this._contentWidget.value}get glyphWidget(){return this._glyphWidget.value||this._createHoverWidgets(),this._glyphWidget.value}static get(t){return t.getContribution(e.ID)}_hookEvents(){const e=()=>this._hideWidgets(),t=this._editor.getOption(46);this._isHoverEnabled=t.enabled,this._isHoverSticky=t.sticky,this._isHoverEnabled?(this._toUnhook.add(this._editor.onMouseDown(e=>this._onEditorMouseDown(e))),this._toUnhook.add(this._editor.onMouseUp(e=>this._onEditorMouseUp(e))),this._toUnhook.add(this._editor.onMouseMove(e=>this._onEditorMouseMove(e))),this._toUnhook.add(this._editor.onKeyDown(e=>this._onKeyDown(e))), +this._toUnhook.add(this._editor.onDidChangeModelDecorations(()=>this._onModelDecorationsChanged()))):(this._toUnhook.add(this._editor.onMouseMove(e)),this._toUnhook.add(this._editor.onKeyDown(e=>this._onKeyDown(e)))),this._toUnhook.add(this._editor.onMouseLeave(e)),this._toUnhook.add(this._editor.onDidChangeModel(e)),this._toUnhook.add(this._editor.onDidScrollChange(e=>this._onEditorScrollChanged(e)))}_unhookEvents(){this._toUnhook.clear()}_onModelDecorationsChanged(){this.contentWidget.onModelDecorationsChanged(),this.glyphWidget.onModelDecorationsChanged()}_onEditorScrollChanged(e){(e.scrollTopChanged||e.scrollLeftChanged)&&this._hideWidgets()}_onEditorMouseDown(e){this._isMouseDown=!0;const t=e.target.type;9!==t||e.target.detail!==h.ModesContentHoverWidget.ID?12===t&&e.target.detail===u.ModesGlyphHoverWidget.ID||(12!==t&&e.target.detail!==u.ModesGlyphHoverWidget.ID&&(this._hoverClicked=!1),this._hideWidgets()):this._hoverClicked=!0}_onEditorMouseUp(e){this._isMouseDown=!1}_onEditorMouseMove(e){ +let t=e.target.type;if(!(this._isMouseDown&&this._hoverClicked&&this.contentWidget.isColorPickerVisible()||this._isHoverSticky&&9===t&&e.target.detail===h.ModesContentHoverWidget.ID||this._isHoverSticky&&12===t&&e.target.detail===u.ModesGlyphHoverWidget.ID)){if(7===t){const i=this._editor.getOption(36).typicalHalfwidthCharacterWidth/2,n=e.target.detail;n&&!n.isAfterLines&&"number"==typeof n.horizontalDistanceToText&&n.horizontalDistanceToText{i.showContentHover(o,1,!0)}):i.showContentHover(o,1,!0)}}s.registerEditorContribution(b.ID,b),s.registerEditorAction(S),s.registerEditorAction(w),m.registerThemingParticipant((e,t)=>{const i=e.getColor(p.editorHoverHighlight);i&&t.addRule(`.monaco-editor .hoverHighlight { background-color: ${i}; }`);const n=e.getColor(p.editorHoverBackground) +;n&&t.addRule(`.monaco-editor .monaco-hover { background-color: ${n}; }`);const o=e.getColor(p.editorHoverBorder);o&&(t.addRule(`.monaco-editor .monaco-hover { border: 1px solid ${o}; }`),t.addRule(`.monaco-editor .monaco-hover .hover-row:not(:first-child):not(:empty) { border-top: 1px solid ${o.transparent(.5)}; }`),t.addRule(`.monaco-editor .monaco-hover hr { border-top: 1px solid ${o.transparent(.5)}; }`),t.addRule(`.monaco-editor .monaco-hover hr { border-bottom: 0px solid ${o.transparent(.5)}; }`));const s=e.getColor(p.textLinkForeground);s&&t.addRule(`.monaco-editor .monaco-hover a { color: ${s}; }`);const r=e.getColor(p.editorHoverForeground);r&&t.addRule(`.monaco-editor .monaco-hover { color: ${r}; }`);const a=e.getColor(p.editorHoverStatusBarBackground);a&&t.addRule(`.monaco-editor .monaco-hover .hover-row .actions { background-color: ${a}; }`);const l=e.getColor(p.textCodeBlockBackground);l&&t.addRule(`.monaco-editor .monaco-hover code { background-color: ${l}; }`)})})), +define(t[640],i([0,1,15,2,11,18,44,241,14,46,257]),(function(e,t,i,n,o,s,r,d,c,h,u){"use strict";Object.defineProperty(t,"__esModule",{value:!0});let g=class e extends n.Disposable{constructor(e,t,n,o){super(),this._modelService=t,this._themeService=n,this._configurationService=o,this._editor=e,this._tokenizeViewport=new i.RunOnceScheduler(()=>this._tokenizeViewportNow(),100),this._outstandingRequests=[],this._register(this._editor.onDidScrollChange(()=>{this._tokenizeViewport.schedule()})),this._register(this._editor.onDidChangeModel(()=>{this._cancelAll(),this._tokenizeViewport.schedule()})),this._register(this._editor.onDidChangeModelContent(e=>{this._cancelAll(),this._tokenizeViewport.schedule()})),this._register(s.DocumentRangeSemanticTokensProviderRegistry.onDidChange(()=>{this._cancelAll(),this._tokenizeViewport.schedule()})),this._register(this._configurationService.onDidChangeConfiguration(e=>{e.affectsConfiguration(u.SEMANTIC_HIGHLIGHTING_SETTING_ID)&&(this._cancelAll(), +this._tokenizeViewport.schedule())})),this._register(this._themeService.onDidColorThemeChange(()=>{this._cancelAll(),this._tokenizeViewport.schedule()}))}static _getSemanticColoringProvider(e){const t=s.DocumentRangeSemanticTokensProviderRegistry.ordered(e);return t.length>0?t[0]:null}_cancelAll(){for(const e of this._outstandingRequests)e.cancel();this._outstandingRequests=[]}_removeOutstandingRequest(e){for(let t=0,i=this._outstandingRequests.length;tthis._requestRange(t,e,i,n)))}_requestRange(e,t,n,o){const s=e.getVersionId(),r=i.createCancelablePromise(i=>Promise.resolve(n.provideDocumentRangeSemanticTokens(e,t,i)));return r.then(i=>{i&&!e.isDisposed()&&e.getVersionId()===s&&e.setPartialSemanticTokens(t,d.toMultilineTokens2(i,o,e.getLanguageIdentifier()))}).then(()=>this._removeOutstandingRequest(r),()=>this._removeOutstandingRequest(r)),r}};g.ID="editor.contrib.viewportSemanticTokens",g=a([l(1,r.IModelService),l(2,c.IThemeService),l(3,h.IConfigurationService)],g),o.registerEditorContribution(g.ID,g)})),define(t[641],i([0,1,11,27,258,46,17,10,32,76]),(function(e,t,i,n,o,s,r,d,c,h){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StandaloneReferencesController=void 0;let u=class extends o.ReferencesController{constructor(e,t,i,n,o,s,r){super(!0,e,t,i,n,o,s,r)}} +;u=a([l(1,r.IContextKeyService),l(2,n.ICodeEditorService),l(3,c.INotificationService),l(4,d.IInstantiationService),l(5,h.IStorageService),l(6,s.IConfigurationService)],u),t.StandaloneReferencesController=u,i.registerEditorContribution(o.ReferencesController.ID,u)})),define(t[642],i([0,1,504,142,12,71,173,77,40,32,2]),(function(e,t,i,n,o,s,d,c,h,u,g){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.UndoRedoService=void 0;function p(e){return e.scheme===h.Schemas.file?e.fsPath:e.path}let m=0;class f{constructor(e,t,i){this.id=++m,this.type=0,this.actual=e,this.label=e.label,this.resourceLabel=t,this.strResource=i,this.resourceLabels=[this.resourceLabel],this.strResources=[this.strResource],this.isValid=!0}setValid(e){this.isValid=e}toString(){return`[${this.id}] [${this.isValid?"VALID":"INVALID"}] ${this.actual}`}}class _{constructor(e,t){this.resourceLabel=e,this.reason=t}}class v{constructor(){this.elements=new Map}createMessage(){const e=[],t=[];for(const[,i]of this.elements){ +(0===i.reason?e:t).push(i.resourceLabel)}let n=[];return e.length>0&&n.push(i.localize(0,null,e.join(", "))),t.length>0&&n.push(i.localize(1,null,t.join(", "))),n.join("\n")}get size(){return this.elements.size}has(e){return this.elements.has(e)}set(e,t){this.elements.set(e,t)}delete(e){return this.elements.delete(e)}}class C{constructor(e,t,i){this.id=++m,this.type=1,this.actual=e,this.label=e.label,this.resourceLabels=t,this.strResources=i,this.removedResources=null,this.invalidatedResources=null}canSplit(){return"function"==typeof this.actual.split}removeResource(e,t,i){this.removedResources||(this.removedResources=new v),this.removedResources.has(t)||this.removedResources.set(t,new _(e,i))}setValid(e,t,i){i?this.invalidatedResources&&(this.invalidatedResources.delete(t),0===this.invalidatedResources.size&&(this.invalidatedResources=null)):(this.invalidatedResources||(this.invalidatedResources=new v),this.invalidatedResources.has(t)||this.invalidatedResources.set(t,new _(e,0)))}toString(){ +return`[${this.id}] [${this.invalidatedResources?"INVALID":"VALID"}] ${this.actual}`}}class b{constructor(e,t){this.resourceLabel=e,this.strResource=t,this._past=[],this._future=[],this.locked=!1,this.versionId=1}dispose(){for(const e of this._past)1===e.type&&e.removeResource(this.resourceLabel,this.strResource,0);for(const e of this._future)1===e.type&&e.removeResource(this.resourceLabel,this.strResource,0);this.versionId++}toString(){let e=[];e.push(`* ${this.strResource}:`);for(let t=0;t=0;t--)e.push(` * [REDO] ${this._future[t]}`);return e.join("\n")}flushAllElements(){this._past=[],this._future=[],this.versionId++}_setElementValidFlag(e,t){1===e.type?e.setValid(this.resourceLabel,this.strResource,t):e.setValid(t)}setElementsValidFlag(e,t){for(const i of this._past)t(i.actual)&&this._setElementValidFlag(i,e);for(const i of this._future)t(i.actual)&&this._setElementValidFlag(i,e)}pushElement(e){ +for(const e of this._future)1===e.type&&e.removeResource(this.resourceLabel,this.strResource,1);if(this._future=[],this._past.length>0){const e=this._past[this._past.length-1];0!==e.type||e.isValid||(this._past=[])}this._past.push(e),this.versionId++}createSnapshot(e){const t=[];for(let e=0,i=this._past.length;e=0;e--)t.push(this._future[e].id);return new n.ResourceEditStackSnapshot(e,t)}restoreSnapshot(e){const t=e.elements.length;let i=!0,n=0,o=-1;for(let s=0,r=this._past.length;s=t||r.id!==e.elements[n])&&(i=!1,o=0),i||1!==r.type||r.removeResource(this.resourceLabel,this.strResource,0)}let s=-1;for(let o=this._future.length-1;o>=0;o--,n++){const r=this._future[o];i&&(n>=t||r.id!==e.elements[n])&&(i=!1,s=o),i||1!==r.type||r.removeResource(this.resourceLabel,this.strResource,0)}-1!==o&&(this._past=this._past.slice(0,o)),-1!==s&&(this._future=this._future.slice(s+1)),this.versionId++}getElements(){ +const e=[],t=[];for(const t of this._past)e.push(t.actual);for(const e of this._future)t.push(e.actual);return{past:e,future:t}}getClosestPastElement(){return 0===this._past.length?null:this._past[this._past.length-1]}getClosestFutureElement(){return 0===this._future.length?null:this._future[this._future.length-1]}hasPastElements(){return this._past.length>0}hasFutureElements(){return this._future.length>0}splitPastWorkspaceElement(e,t){for(let i=this._past.length-1;i>=0;i--)if(this._past[i]===e){t.has(this.strResource)?this._past[i]=t.get(this.strResource):this._past.splice(i,1);break}this.versionId++}splitFutureWorkspaceElement(e,t){for(let i=this._future.length-1;i>=0;i--)if(this._future[i]===e){t.has(this.strResource)?this._future[i]=t.get(this.strResource):this._future.splice(i,1);break}this.versionId++}moveBackward(e){this._past.pop(),this._future.push(e),this.versionId++}moveForward(e){this._future.pop(),this._past.push(e),this.versionId++}}class S{constructor(e){this.editStacks=e,this._versionIds=[] +;for(let e=0,t=this.editStacks.length;e{for(const t of e.editStacks)t.locked=!1}}_safeInvokeWithLocks(e,t,i,n=g.Disposable.None){const o=this._acquireLocks(i);let s;try{s=t()}catch(t){return o(),n.dispose(),this._onError(t,e)}if(s)return s.then(()=>{o(),n.dispose()},t=>(o(),n.dispose(),this._onError(t,e)));o(),n.dispose()}_invokeWorkspacePrepare(e){return r(this,void 0,void 0,(function*(){if(void 0===e.actual.prepareUndoRedo)return g.Disposable.None;const t=e.actual.prepareUndoRedo();return void 0===t?g.Disposable.None:t}))}_invokeResourcePrepare(e,t){if(1!==e.actual.type||void 0===e.actual.prepareUndoRedo)return void t(g.Disposable.None);const i=e.actual.prepareUndoRedo();if(i){ +if(!g.isDisposable(i))return i.then(e=>{t(e)});t(i)}else t(g.Disposable.None)}_getAffectedEditStacks(e){const t=[];for(const i of e.strResources)t.push(this._editStacks.get(i)||w);return new S(t)}_tryToSplitAndUndo(e,t,i,n){if(t.canSplit())return this._splitPastWorkspaceElement(t,i),this._notificationService.info(n),new E(this.undo(e));for(const e of t.strResources)this.removeElements(e);return this._notificationService.info(n),new E}_checkWorkspaceUndo(e,t,n,o){if(t.removedResources)return this._tryToSplitAndUndo(e,t,t.removedResources,i.localize(2,null,t.label,t.removedResources.createMessage()));if(o&&t.invalidatedResources)return this._tryToSplitAndUndo(e,t,t.invalidatedResources,i.localize(3,null,t.label,t.invalidatedResources.createMessage()));const s=[];for(const e of n.editStacks)e.getClosestPastElement()!==t&&s.push(e.resourceLabel);if(s.length>0)return this._tryToSplitAndUndo(e,t,null,i.localize(4,null,t.label,s.join(", ")));const r=[];for(const e of n.editStacks)e.locked&&r.push(e.resourceLabel) +;return r.length>0?this._tryToSplitAndUndo(e,t,null,i.localize(5,null,t.label,r.join(", "))):n.isValid()?null:this._tryToSplitAndUndo(e,t,null,i.localize(6,null,t.label))}_workspaceUndo(e,t){const i=this._getAffectedEditStacks(t),n=this._checkWorkspaceUndo(e,t,i,!1);return n?n.returnValue:this._confirmAndExecuteWorkspaceUndo(e,t,i)}_confirmAndExecuteWorkspaceUndo(e,t,n){return r(this,void 0,void 0,(function*(){if(t.canSplit()){const o=yield this._dialogService.show(c.default.Info,i.localize(7,null,t.label),[i.localize(8,null,n.editStacks.length),i.localize(9,null),i.localize(10,null)],{cancelId:2});if(2===o.choice)return;if(1===o.choice)return this._splitPastWorkspaceElement(t,null),this.undo(e);const s=this._checkWorkspaceUndo(e,t,n,!1);if(s)return s.returnValue}let o;try{o=yield this._invokeWorkspacePrepare(t)}catch(e){return this._onError(e,t)}const s=this._checkWorkspaceUndo(e,t,n,!0);if(s)return o.dispose(),s.returnValue;for(const e of n.editStacks)e.moveBackward(t) +;return this._safeInvokeWithLocks(t,()=>t.actual.undo(),n,o)}))}_resourceUndo(e,t){if(t.isValid){if(!e.locked)return this._invokeResourcePrepare(t,i=>(e.moveBackward(t),this._safeInvokeWithLocks(t,()=>t.actual.undo(),new S([e]),i)));{const e=i.localize(11,null,t.label);this._notificationService.info(e)}}else e.flushAllElements()}undo(e){const t="string"==typeof e?e:this.getUriComparisonKey(e);if(!this._editStacks.has(t))return;const i=this._editStacks.get(t),n=i.getClosestPastElement();if(n)try{return 1===n.type?this._workspaceUndo(t,n):this._resourceUndo(i,n)}finally{0}}canRedo(e){const t=this.getUriComparisonKey(e);if(this._editStacks.has(t)){return this._editStacks.get(t).hasFutureElements()}return!1}_tryToSplitAndRedo(e,t,i,n){if(t.canSplit())return this._splitFutureWorkspaceElement(t,i),this._notificationService.info(n),new E(this.redo(e));for(const e of t.strResources)this.removeElements(e);return this._notificationService.info(n),new E}_checkWorkspaceRedo(e,t,n,o){ +if(t.removedResources)return this._tryToSplitAndRedo(e,t,t.removedResources,i.localize(12,null,t.label,t.removedResources.createMessage()));if(o&&t.invalidatedResources)return this._tryToSplitAndRedo(e,t,t.invalidatedResources,i.localize(13,null,t.label,t.invalidatedResources.createMessage()));const s=[];for(const e of n.editStacks)e.getClosestFutureElement()!==t&&s.push(e.resourceLabel);if(s.length>0)return this._tryToSplitAndRedo(e,t,null,i.localize(14,null,t.label,s.join(", ")));const r=[];for(const e of n.editStacks)e.locked&&r.push(e.resourceLabel);return r.length>0?this._tryToSplitAndRedo(e,t,null,i.localize(15,null,t.label,r.join(", "))):n.isValid()?null:this._tryToSplitAndRedo(e,t,null,i.localize(16,null,t.label))}_workspaceRedo(e,t){const i=this._getAffectedEditStacks(t),n=this._checkWorkspaceRedo(e,t,i,!1);return n?n.returnValue:this._executeWorkspaceRedo(e,t,i)}_executeWorkspaceRedo(e,t,i){return r(this,void 0,void 0,(function*(){let n;try{n=yield this._invokeWorkspacePrepare(t)}catch(e){ +return this._onError(e,t)}const o=this._checkWorkspaceRedo(e,t,i,!0);if(o)return n.dispose(),o.returnValue;for(const e of i.editStacks)e.moveForward(t);return this._safeInvokeWithLocks(t,()=>t.actual.redo(),i,n)}))}_resourceRedo(e,t){if(t.isValid){if(!e.locked)return this._invokeResourcePrepare(t,i=>(e.moveForward(t),this._safeInvokeWithLocks(t,()=>t.actual.redo(),new S([e]),i)));{const e=i.localize(17,null,t.label);this._notificationService.info(e)}}else e.flushAllElements()}redo(e){const t="string"==typeof e?e:this.getUriComparisonKey(e);if(!this._editStacks.has(t))return;const i=this._editStacks.get(t),n=i.getClosestFutureElement();if(n)try{return 1===n.type?this._workspaceRedo(t,n):this._resourceRedo(i,n)}finally{0}}};y=a([l(0,d.IDialogService),l(1,u.INotificationService)],y),t.UndoRedoService=y;class E{constructor(e){this.returnValue=e}}s.registerSingleton(n.IUndoRedoService,y)})),define(t[179],i([0,1,4,2,10]),(function(e,t,i,n,o){"use strict";Object.defineProperty(t,"__esModule",{value:!0}), +t.StorageKeysSyncRegistryService=t.IStorageKeysSyncRegistryService=void 0,t.IStorageKeysSyncRegistryService=o.createDecorator("IStorageKeysSyncRegistryService");class s extends n.Disposable{constructor(){super(),this._storageKeys=new Map,this._onDidChangeStorageKeys=this._register(new i.Emitter),this._register(n.toDisposable(()=>this._storageKeys.clear()))}get storageKeys(){return[...this._storageKeys.values()]}registerStorageKey(e){this._storageKeys.has(e.key)||(this._storageKeys.set(e.key,e),this._onDidChangeStorageKeys.fire(this.storageKeys))}}t.StorageKeysSyncRegistryService=s})),define(t[261],i([0,1,457,15,2,8,11,22,139,607,608,609,33,80,17,66,35,76,14,32,179]),(function(e,t,i,n,o,s,d,c,h,u,g,p,m,f,_,v,C,b,S,w,y){"use strict";Object.defineProperty(t,"__esModule",{value:!0}), +t.EditorStartFindReplaceAction=t.EditorStartFindAction=t.StartFindReplaceAction=t.PreviousSelectionMatchFindAction=t.NextSelectionMatchFindAction=t.SelectionMatchFindAction=t.PreviousMatchFindAction2=t.PreviousMatchFindAction=t.NextMatchFindAction2=t.NextMatchFindAction=t.MatchFindAction=t.StartFindWithSelectionAction=t.StartFindAction=t.FindController=t.CommonFindController=t.getSelectionSearchString=void 0;const E=524288;function L(e){if(!e.hasModel())return null;const t=e.getSelection();if(t.startLineNumber===t.endLineNumber)if(t.isEmpty()){const i=e.getConfiguredWordAtPosition(t.getStartPosition());if(i)return i.word}else if(e.getModel().getValueLengthInRange(t)this._onStateChanged(e))),this._model=null,this._register(this._editor.onDidChangeModel(()=>{let e=this._editor.getModel()&&this._state.isRevealed;this.disposeModel(),this._state.change({searchScope:null,matchCase:this._storageService.getBoolean("editor.matchCase",1,!1),wholeWord:this._storageService.getBoolean("editor.wholeWord",1,!1),isRegex:this._storageService.getBoolean("editor.isRegex",1,!1),preserveCase:this._storageService.getBoolean("editor.preserveCase",1,!1)},!1),e&&this._start({forceRevealReplace:!1,seedSearchStringFromSelection:!1,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!1,updateSearchScope:!1,loop:this._editor.getOption(29).loop})}))}static get(t){return t.getContribution(e.ID)}dispose(){this.disposeModel(),super.dispose()}disposeModel(){this._model&&(this._model.dispose(),this._model=null)}_onStateChanged(e){this.saveQueryState(e), +e.isRevealed&&(this._state.isRevealed?this._findWidgetVisible.set(!0):(this._findWidgetVisible.reset(),this.disposeModel())),e.searchString&&this.setGlobalBufferTerm(this._state.searchString)}saveQueryState(e){e.isRegex&&this._storageService.store("editor.isRegex",this._state.actualIsRegex,1),e.wholeWord&&this._storageService.store("editor.wholeWord",this._state.actualWholeWord,1),e.matchCase&&this._storageService.store("editor.matchCase",this._state.actualMatchCase,1),e.preserveCase&&this._storageService.store("editor.preserveCase",this._state.actualPreserveCase,1)}loadQueryState(){this._state.change({matchCase:this._storageService.getBoolean("editor.matchCase",1,this._state.matchCase),wholeWord:this._storageService.getBoolean("editor.wholeWord",1,this._state.wholeWord),isRegex:this._storageService.getBoolean("editor.isRegex",1,this._state.isRegex),preserveCase:this._storageService.getBoolean("editor.preserveCase",1,this._state.preserveCase)},!1)}isFindInputFocused(){ +return!!h.CONTEXT_FIND_INPUT_FOCUSED.getValue(this._contextKeyService)}getState(){return this._state}closeFindWidget(){this._state.change({isRevealed:!1,searchScope:null},!1),this._editor.focus()}toggleCaseSensitive(){this._state.change({matchCase:!this._state.matchCase},!1),this._state.isRevealed||this.highlightFindOptions()}toggleWholeWords(){this._state.change({wholeWord:!this._state.wholeWord},!1),this._state.isRevealed||this.highlightFindOptions()}toggleRegex(){this._state.change({isRegex:!this._state.isRegex},!1),this._state.isRevealed||this.highlightFindOptions()}toggleSearchScope(){if(this._state.searchScope)this._state.change({searchScope:null},!0);else if(this._editor.hasModel()){let e=this._editor.getSelections();e.map(e=>(1===e.endColumn&&e.endLineNumber>e.startLineNumber&&(e=e.setEndPosition(e.endLineNumber-1,this._editor.getModel().getLineMaxColumn(e.endLineNumber-1))),e.isEmpty()?null:e)).filter(e=>!!e),e.length&&this._state.change({searchScope:e},!0)}}setSearchString(e){ +this._state.isRegex&&(e=s.escapeRegExpCharacters(e)),this._state.change({searchString:e},!1)}highlightFindOptions(){}_start(e){return r(this,void 0,void 0,(function*(){if(this.disposeModel(),!this._editor.hasModel())return;let t={isRevealed:!0};if(e.seedSearchStringFromSelection){let e=L(this._editor);e&&(this._state.isRegex?t.searchString=s.escapeRegExpCharacters(e):t.searchString=e)}if(!t.searchString&&e.seedSearchStringFromGlobalClipboard){let e=yield this.getGlobalBufferTerm();if(!this._editor.hasModel())return;e&&(t.searchString=e)}if(e.forceRevealReplace?t.isReplaceRevealed=!0:this._findWidgetVisible.get()||(t.isReplaceRevealed=!1),e.updateSearchScope){let e=this._editor.getSelections();e.some(e=>!e.isEmpty())&&(t.searchScope=e)}t.loop=e.loop,this._state.change(t,!1),this._model||(this._model=new h.FindModelBoundToEditorModel(this._editor,this._state))}))}start(e){return this._start(e)}moveToNextMatch(){return!!this._model&&(this._model.moveToNextMatch(),!0)}moveToPrevMatch(){ +return!!this._model&&(this._model.moveToPrevMatch(),!0)}replace(){return!!this._model&&(this._model.replace(),!0)}replaceAll(){return!!this._model&&(this._model.replaceAll(),!0)}selectAllMatches(){return!!this._model&&(this._model.selectAllMatches(),this._editor.focus(),!0)}getGlobalBufferTerm(){return r(this,void 0,void 0,(function*(){return this._editor.getOption(29).globalFindClipboard&&this._editor.hasModel()&&!this._editor.getModel().isTooLargeForSyncing()?this._clipboardService.readFindText():""}))}setGlobalBufferTerm(e){this._editor.getOption(29).globalFindClipboard&&this._editor.hasModel()&&!this._editor.getModel().isTooLargeForSyncing()&&this._clipboardService.writeFindText(e)}};x.ID="editor.contrib.findController",x=a([l(1,_.IContextKeyService),l(2,b.IStorageService),l(3,f.IClipboardService)],x),t.CommonFindController=x;let D=class extends x{constructor(e,t,i,n,o,s,r,a,l){super(e,i,r,l),this._contextViewService=t,this._keybindingService=n,this._themeService=o,this._notificationService=s, +this._storageKeysSyncRegistryService=a,this._widget=null,this._findOptionsWidget=null}_start(e){const t=Object.create(null,{_start:{get:()=>super._start}});return r(this,void 0,void 0,(function*(){this._widget||this._createFindWidget();const i=this._editor.getSelection();let n=!1;switch(this._editor.getOption(29).autoFindInSelection){case"always":n=!0;break;case"never":n=!1;break;case"multiline":n=!!i&&i.startLineNumber!==i.endLineNumber}e.updateSearchScope=n,yield t._start.call(this,e),this._widget&&(2===e.shouldFocus?this._widget.focusReplaceInput():1===e.shouldFocus&&this._widget.focusFindInput())}))}highlightFindOptions(){this._widget||this._createFindWidget(),this._state.isRevealed?this._widget.highlightFindOptions():this._findOptionsWidget.highlightFindOptions()}_createFindWidget(){ +this._widget=this._register(new p.FindWidget(this._editor,this,this._state,this._contextViewService,this._keybindingService,this._contextKeyService,this._themeService,this._storageService,this._notificationService,this._storageKeysSyncRegistryService)),this._findOptionsWidget=this._register(new u.FindOptionsWidget(this._editor,this._state,this._keybindingService,this._themeService))}};D=a([l(1,v.IContextViewService),l(2,_.IContextKeyService),l(3,C.IKeybindingService),l(4,S.IThemeService),l(5,w.INotificationService),l(6,b.IStorageService),l(7,y.IStorageKeysSyncRegistryService),l(8,f.IClipboardService)],D),t.FindController=D;class k extends d.MultiEditorAction{constructor(){super({id:h.FIND_IDS.StartFindAction,label:i.localize(0,null),alias:"Find",precondition:void 0,kbOpts:{kbExpr:null,primary:2084,weight:100},menuOpts:{menuId:m.MenuId.MenubarEditMenu,group:"3_find",title:i.localize(1,null),order:1}})}run(e,t){return r(this,void 0,void 0,(function*(){let e=x.get(t);e&&(yield e.start({forceRevealReplace:!1, +seedSearchStringFromSelection:t.getOption(29).seedSearchStringFromSelection,seedSearchStringFromGlobalClipboard:t.getOption(29).globalFindClipboard,shouldFocus:1,shouldAnimate:!0,updateSearchScope:!1,loop:t.getOption(29).loop}))}))}}t.StartFindAction=k;class N extends d.EditorAction{constructor(){super({id:h.FIND_IDS.StartFindWithSelection,label:i.localize(2,null),alias:"Find With Selection",precondition:void 0,kbOpts:{kbExpr:null,primary:0,mac:{primary:2083},weight:100}})}run(e,t){return r(this,void 0,void 0,(function*(){let e=x.get(t);e&&(yield e.start({forceRevealReplace:!1,seedSearchStringFromSelection:!0,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:t.getOption(29).loop}),e.setGlobalBufferTerm(e.getState().searchString))}))}}t.StartFindWithSelectionAction=N;class I extends d.EditorAction{run(e,t){return r(this,void 0,void 0,(function*(){let e=x.get(t);e&&!this._run(e)&&(yield e.start({forceRevealReplace:!1, +seedSearchStringFromSelection:0===e.getState().searchString.length&&t.getOption(29).seedSearchStringFromSelection,seedSearchStringFromGlobalClipboard:!0,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:t.getOption(29).loop}),this._run(e))}))}}t.MatchFindAction=I;class M extends I{constructor(){super({id:h.FIND_IDS.NextMatchFindAction,label:i.localize(3,null),alias:"Find Next",precondition:void 0,kbOpts:{kbExpr:c.EditorContextKeys.focus,primary:61,mac:{primary:2085,secondary:[61]},weight:100}})}_run(e){return e.moveToNextMatch()}}t.NextMatchFindAction=M;class R extends I{constructor(){super({id:h.FIND_IDS.NextMatchFindAction,label:i.localize(4,null),alias:"Find Next",precondition:void 0,kbOpts:{kbExpr:_.ContextKeyExpr.and(c.EditorContextKeys.focus,h.CONTEXT_FIND_INPUT_FOCUSED),primary:3,weight:100}})}_run(e){return e.moveToNextMatch()}}t.NextMatchFindAction2=R;class T extends I{constructor(){super({id:h.FIND_IDS.PreviousMatchFindAction,label:i.localize(5,null),alias:"Find Previous",precondition:void 0, +kbOpts:{kbExpr:c.EditorContextKeys.focus,primary:1085,mac:{primary:3109,secondary:[1085]},weight:100}})}_run(e){return e.moveToPrevMatch()}}t.PreviousMatchFindAction=T;class O extends I{constructor(){super({id:h.FIND_IDS.PreviousMatchFindAction,label:i.localize(6,null),alias:"Find Previous",precondition:void 0,kbOpts:{kbExpr:_.ContextKeyExpr.and(c.EditorContextKeys.focus,h.CONTEXT_FIND_INPUT_FOCUSED),primary:1027,weight:100}})}_run(e){return e.moveToPrevMatch()}}t.PreviousMatchFindAction2=O;class A extends d.EditorAction{run(e,t){return r(this,void 0,void 0,(function*(){let e=x.get(t);if(!e)return;let i=L(t);i&&e.setSearchString(i),this._run(e)||(yield e.start({forceRevealReplace:!1,seedSearchStringFromSelection:t.getOption(29).seedSearchStringFromSelection,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:t.getOption(29).loop}),this._run(e))}))}}t.SelectionMatchFindAction=A;class P extends A{constructor(){super({id:h.FIND_IDS.NextSelectionMatchFindAction, +label:i.localize(7,null),alias:"Find Next Selection",precondition:void 0,kbOpts:{kbExpr:c.EditorContextKeys.focus,primary:2109,weight:100}})}_run(e){return e.moveToNextMatch()}}t.NextSelectionMatchFindAction=P;class F extends A{constructor(){super({id:h.FIND_IDS.PreviousSelectionMatchFindAction,label:i.localize(8,null),alias:"Find Previous Selection",precondition:void 0,kbOpts:{kbExpr:c.EditorContextKeys.focus,primary:3133,weight:100}})}_run(e){return e.moveToPrevMatch()}}t.PreviousSelectionMatchFindAction=F;class W extends d.MultiEditorAction{constructor(){super({id:h.FIND_IDS.StartFindReplaceAction,label:i.localize(9,null),alias:"Replace",precondition:void 0,kbOpts:{kbExpr:null,primary:2086,mac:{primary:2596},weight:100},menuOpts:{menuId:m.MenuId.MenubarEditMenu,group:"3_find",title:i.localize(10,null),order:2}})}run(e,t){return r(this,void 0,void 0,(function*(){if(!t.hasModel()||t.getOption(72))return +;let e=x.get(t),i=t.getSelection(),n=e.isFindInputFocused(),o=!i.isEmpty()&&i.startLineNumber===i.endLineNumber&&t.getOption(29).seedSearchStringFromSelection&&!n,s=n||o?2:1;e&&(yield e.start({forceRevealReplace:!0,seedSearchStringFromSelection:o,seedSearchStringFromGlobalClipboard:t.getOption(29).seedSearchStringFromSelection,shouldFocus:s,shouldAnimate:!0,updateSearchScope:!1,loop:t.getOption(29).loop}))}))}}t.StartFindReplaceAction=W,d.registerEditorContribution(x.ID,D),t.EditorStartFindAction=new k,d.registerMultiEditorAction(t.EditorStartFindAction),d.registerEditorAction(N),d.registerEditorAction(M),d.registerEditorAction(R),d.registerEditorAction(T),d.registerEditorAction(O),d.registerEditorAction(P),d.registerEditorAction(F),t.EditorStartFindReplaceAction=new W,d.registerMultiEditorAction(t.EditorStartFindReplaceAction);const B=d.EditorCommand.bindToContribution(x.get);d.registerEditorCommand(new B({id:h.FIND_IDS.CloseFindWidgetCommand,precondition:h.CONTEXT_FIND_WIDGET_VISIBLE, +handler:e=>e.closeFindWidget(),kbOpts:{weight:105,kbExpr:c.EditorContextKeys.focus,primary:9,secondary:[1033]}})),d.registerEditorCommand(new B({id:h.FIND_IDS.ToggleCaseSensitiveCommand,precondition:void 0,handler:e=>e.toggleCaseSensitive(),kbOpts:{weight:105,kbExpr:c.EditorContextKeys.focus,primary:h.ToggleCaseSensitiveKeybinding.primary,mac:h.ToggleCaseSensitiveKeybinding.mac,win:h.ToggleCaseSensitiveKeybinding.win,linux:h.ToggleCaseSensitiveKeybinding.linux}})),d.registerEditorCommand(new B({id:h.FIND_IDS.ToggleWholeWordCommand,precondition:void 0,handler:e=>e.toggleWholeWords(),kbOpts:{weight:105,kbExpr:c.EditorContextKeys.focus,primary:h.ToggleWholeWordKeybinding.primary,mac:h.ToggleWholeWordKeybinding.mac,win:h.ToggleWholeWordKeybinding.win,linux:h.ToggleWholeWordKeybinding.linux}})),d.registerEditorCommand(new B({id:h.FIND_IDS.ToggleRegexCommand,precondition:void 0,handler:e=>e.toggleRegex(),kbOpts:{weight:105,kbExpr:c.EditorContextKeys.focus,primary:h.ToggleRegexKeybinding.primary, +mac:h.ToggleRegexKeybinding.mac,win:h.ToggleRegexKeybinding.win,linux:h.ToggleRegexKeybinding.linux}})),d.registerEditorCommand(new B({id:h.FIND_IDS.ToggleSearchScopeCommand,precondition:void 0,handler:e=>e.toggleSearchScope(),kbOpts:{weight:105,kbExpr:c.EditorContextKeys.focus,primary:h.ToggleSearchScopeKeybinding.primary,mac:h.ToggleSearchScopeKeybinding.mac,win:h.ToggleSearchScopeKeybinding.win,linux:h.ToggleSearchScopeKeybinding.linux}})),d.registerEditorCommand(new B({id:h.FIND_IDS.ReplaceOneAction,precondition:h.CONTEXT_FIND_WIDGET_VISIBLE,handler:e=>e.replace(),kbOpts:{weight:105,kbExpr:c.EditorContextKeys.focus,primary:3094}})),d.registerEditorCommand(new B({id:h.FIND_IDS.ReplaceOneAction,precondition:h.CONTEXT_FIND_WIDGET_VISIBLE,handler:e=>e.replace(),kbOpts:{weight:105,kbExpr:_.ContextKeyExpr.and(c.EditorContextKeys.focus,h.CONTEXT_REPLACE_INPUT_FOCUSED),primary:3}})),d.registerEditorCommand(new B({id:h.FIND_IDS.ReplaceAllAction,precondition:h.CONTEXT_FIND_WIDGET_VISIBLE,handler:e=>e.replaceAll(), +kbOpts:{weight:105,kbExpr:c.EditorContextKeys.focus,primary:2563}})),d.registerEditorCommand(new B({id:h.FIND_IDS.ReplaceAllAction,precondition:h.CONTEXT_FIND_WIDGET_VISIBLE,handler:e=>e.replaceAll(),kbOpts:{weight:105,kbExpr:_.ContextKeyExpr.and(c.EditorContextKeys.focus,h.CONTEXT_REPLACE_INPUT_FOCUSED),primary:void 0,mac:{primary:2051}}})),d.registerEditorCommand(new B({id:h.FIND_IDS.SelectAllMatchesAction,precondition:h.CONTEXT_FIND_WIDGET_VISIBLE,handler:e=>e.selectAllMatches(),kbOpts:{weight:105,kbExpr:c.EditorContextKeys.focus,primary:515}}))})),define(t[643],i([0,1,479,15,39,2,11,233,3,20,22,52,31,18,261,33,21,14,17]),(function(e,t,i,n,o,s,r,a,l,d,c,h,u,g,p,m,f,_,v){"use strict";Object.defineProperty(t,"__esModule",{value:!0}), +t.SelectionHighlighter=t.CompatChangeAll=t.SelectHighlightsAction=t.MoveSelectionToPreviousFindMatchAction=t.MoveSelectionToNextFindMatchAction=t.AddSelectionToPreviousFindMatchAction=t.AddSelectionToNextFindMatchAction=t.MultiCursorSelectionControllerAction=t.MultiCursorSelectionController=t.MultiCursorSession=t.MultiCursorSessionResult=t.InsertCursorBelow=t.InsertCursorAbove=void 0;class C extends r.EditorAction{constructor(){super({id:"editor.action.insertCursorAbove",label:i.localize(0,null),alias:"Add Cursor Above",precondition:void 0,kbOpts:{kbExpr:c.EditorContextKeys.editorTextFocus,primary:2576,linux:{primary:1552,secondary:[3088]},weight:100},menuOpts:{menuId:m.MenuId.MenubarSelectionMenu,group:"3_multi",title:i.localize(1,null),order:2}})}run(e,t,i){if(!t.hasModel())return;const n=i&&!0===i.logicalLine,o=t._getViewModel();o.cursorConfig.readOnly||(o.pushStackElement(),o.setCursorStates(i.source,3,a.CursorMoveCommands.addCursorUp(o,o.getCursorStates(),n)),o.revealTopMostCursor(i.source))}} +t.InsertCursorAbove=C;class b extends r.EditorAction{constructor(){super({id:"editor.action.insertCursorBelow",label:i.localize(2,null),alias:"Add Cursor Below",precondition:void 0,kbOpts:{kbExpr:c.EditorContextKeys.editorTextFocus,primary:2578,linux:{primary:1554,secondary:[3090]},weight:100},menuOpts:{menuId:m.MenuId.MenubarSelectionMenu,group:"3_multi",title:i.localize(3,null),order:3}})}run(e,t,i){if(!t.hasModel())return;const n=i&&!0===i.logicalLine,o=t._getViewModel();o.cursorConfig.readOnly||(o.pushStackElement(),o.setCursorStates(i.source,3,a.CursorMoveCommands.addCursorDown(o,o.getCursorStates(),n)),o.revealBottomMostCursor(i.source))}}t.InsertCursorBelow=b;class S extends r.EditorAction{constructor(){super({id:"editor.action.insertCursorAtEndOfEachLineSelected",label:i.localize(4,null),alias:"Add Cursors to Line Ends",precondition:void 0,kbOpts:{kbExpr:c.EditorContextKeys.editorTextFocus,primary:1575,weight:100},menuOpts:{menuId:m.MenuId.MenubarSelectionMenu,group:"3_multi",title:i.localize(5,null), +order:4}})}getCursorsForSelection(e,t,i){if(!e.isEmpty()){for(let n=e.startLineNumber;n1&&i.push(new d.Selection(e.endLineNumber,e.endColumn,e.endLineNumber,e.endColumn))}}run(e,t){if(!t.hasModel())return;const i=t.getModel(),n=t.getSelections();let o=[];n.forEach(e=>this.getCursorsForSelection(e,i,o)),o.length>0&&t.setSelections(o)}}class w extends r.EditorAction{constructor(){super({id:"editor.action.addCursorsToBottom",label:i.localize(6,null),alias:"Add Cursors To Bottom",precondition:void 0})}run(e,t){if(!t.hasModel())return;const i=t.getSelections(),n=t.getModel().getLineCount();let o=[];for(let e=i[0].startLineNumber;e<=n;e++)o.push(new d.Selection(e,i[0].startColumn,e,i[0].endColumn));o.length>0&&t.setSelections(o)}}class y extends r.EditorAction{constructor(){super({id:"editor.action.addCursorsToTop",label:i.localize(7,null),alias:"Add Cursors To Top",precondition:void 0})}run(e,t){if(!t.hasModel())return +;const i=t.getSelections();let n=[];for(let e=i[0].startLineNumber;e>=1;e--)n.push(new d.Selection(e,i[0].startColumn,e,i[0].endColumn));n.length>0&&t.setSelections(n)}}class E{constructor(e,t,i){this.selections=e,this.revealRange=t,this.revealScrollType=i}}t.MultiCursorSessionResult=E;class L{constructor(e,t,i,n,o,s,r){this._editor=e,this.findController=t,this.isDisconnectedFromFindController=i,this.searchText=n,this.wholeWord=o,this.matchCase=s,this.currentMatch=r}static create(e,t){if(!e.hasModel())return null;const i=t.getState();if(!e.hasTextFocus()&&i.isRevealed&&i.searchString.length>0)return new L(e,t,!1,i.searchString,i.wholeWord,i.matchCase,null);let n,o,s=!1;const r=e.getSelections();1===r.length&&r[0].isEmpty()?(s=!0,n=!0,o=!0):(n=i.wholeWord,o=i.matchCase);const a=e.getSelection();let l,c=null;if(a.isEmpty()){const t=e.getConfiguredWordAtPosition(a.getStartPosition());if(!t)return null;l=t.word,c=new d.Selection(a.startLineNumber,t.startColumn,a.startLineNumber,t.endColumn) +}else l=e.getModel().getValueInRange(a).replace(/\r\n/g,"\n");return new L(e,t,s,l,n,o,c)}addSelectionToNextFindMatch(){if(!this._editor.hasModel())return null;const e=this._getNextMatch();if(!e)return null;const t=this._editor.getSelections();return new E(t.concat(e),e,0)}moveSelectionToNextFindMatch(){if(!this._editor.hasModel())return null;const e=this._getNextMatch();if(!e)return null;const t=this._editor.getSelections();return new E(t.slice(0,t.length-1).concat(e),e,0)}_getNextMatch(){if(!this._editor.hasModel())return null;if(this.currentMatch){const e=this.currentMatch;return this.currentMatch=null,e}this.findController.highlightFindOptions();const e=this._editor.getSelections(),t=e[e.length-1],i=this._editor.getModel().findNextMatch(this.searchText,t.getEndPosition(),!1,this.matchCase,this.wholeWord?this._editor.getOption(105):null,!1);return i?new d.Selection(i.range.startLineNumber,i.range.startColumn,i.range.endLineNumber,i.range.endColumn):null}addSelectionToPreviousFindMatch(){ +if(!this._editor.hasModel())return null;const e=this._getPreviousMatch();if(!e)return null;const t=this._editor.getSelections();return new E(t.concat(e),e,0)}moveSelectionToPreviousFindMatch(){if(!this._editor.hasModel())return null;const e=this._getPreviousMatch();if(!e)return null;const t=this._editor.getSelections();return new E(t.slice(0,t.length-1).concat(e),e,0)}_getPreviousMatch(){if(!this._editor.hasModel())return null;if(this.currentMatch){const e=this.currentMatch;return this.currentMatch=null,e}this.findController.highlightFindOptions();const e=this._editor.getSelections(),t=e[e.length-1],i=this._editor.getModel().findPreviousMatch(this.searchText,t.getStartPosition(),!1,this.matchCase,this.wholeWord?this._editor.getOption(105):null,!1);return i?new d.Selection(i.range.startLineNumber,i.range.startColumn,i.range.endLineNumber,i.range.endColumn):null}selectAll(){return this._editor.hasModel()?(this.findController.highlightFindOptions(), +this._editor.getModel().findMatches(this.searchText,!0,!1,this.matchCase,this.wholeWord?this._editor.getOption(105):null,!1,1073741824)):[]}}t.MultiCursorSession=L;class x extends s.Disposable{constructor(e){super(),this._sessionDispose=this._register(new s.DisposableStore),this._editor=e,this._ignoreSelectionChange=!1,this._session=null}static get(e){return e.getContribution(x.ID)}dispose(){this._endSession(),super.dispose()}_beginSessionIfNeeded(e){if(!this._session){const t=L.create(this._editor,e);if(!t)return;this._session=t;const i={searchString:this._session.searchText};this._session.isDisconnectedFromFindController&&(i.wholeWordOverride=1,i.matchCaseOverride=1,i.isRegexOverride=2),e.getState().change(i,!1),this._sessionDispose.add(this._editor.onDidChangeCursorSelection(e=>{this._ignoreSelectionChange||this._endSession()})),this._sessionDispose.add(this._editor.onDidBlurEditorText(()=>{this._endSession()})),this._sessionDispose.add(e.getState().onFindReplaceStateChange(e=>{ +(e.matchCase||e.wholeWord)&&this._endSession()}))}}_endSession(){if(this._sessionDispose.clear(),this._session&&this._session.isDisconnectedFromFindController){const e={wholeWordOverride:0,matchCaseOverride:0,isRegexOverride:0};this._session.findController.getState().change(e,!1)}this._session=null}_setSelections(e){this._ignoreSelectionChange=!0,this._editor.setSelections(e),this._ignoreSelectionChange=!1}_expandEmptyToWord(e,t){if(!t.isEmpty())return t;const i=this._editor.getConfiguredWordAtPosition(t.getStartPosition());return i?new d.Selection(t.startLineNumber,i.startColumn,t.startLineNumber,i.endColumn):t}_applySessionResult(e){e&&(this._setSelections(e.selections),e.revealRange&&this._editor.revealRangeInCenterIfOutsideViewport(e.revealRange,e.revealScrollType))}getSession(e){return this._session}addSelectionToNextFindMatch(e){if(this._editor.hasModel()){if(!this._session){const t=this._editor.getSelections();if(t.length>1){const i=e.getState().matchCase;if(!P(this._editor.getModel(),t,i)){ +const e=this._editor.getModel();let i=[];for(let n=0,o=t.length;n0&&i.isRegex)t=this._editor.getModel().findMatches(i.searchString,!0,i.isRegex,i.matchCase,i.wholeWord?this._editor.getOption(105):null,!1,1073741824);else{ +if(this._beginSessionIfNeeded(e),!this._session)return;t=this._session.selectAll()}if(i.searchScope){const e=i.searchScope;let n=[];t.forEach(t=>{e.forEach(e=>{t.range.endLineNumber<=e.endLineNumber&&t.range.startLineNumber>=e.startLineNumber&&n.push(t)})}),t=n}if(t.length>0){const e=this._editor.getSelection();for(let i=0,n=t.length;inew d.Selection(e.range.startLineNumber,e.range.startColumn,e.range.endLineNumber,e.range.endColumn)))}}}t.MultiCursorSelectionController=x,x.ID="editor.contrib.multiCursorController";class D extends r.EditorAction{run(e,t){const i=x.get(t);if(!i)return;const n=p.CommonFindController.get(t);n&&this._run(i,n)}}t.MultiCursorSelectionControllerAction=D;class k extends D{constructor(){super({id:"editor.action.addSelectionToNextFindMatch",label:i.localize(8,null),alias:"Add Selection To Next Find Match",precondition:void 0,kbOpts:{kbExpr:c.EditorContextKeys.focus,primary:2082, +weight:100},menuOpts:{menuId:m.MenuId.MenubarSelectionMenu,group:"3_multi",title:i.localize(9,null),order:5}})}_run(e,t){e.addSelectionToNextFindMatch(t)}}t.AddSelectionToNextFindMatchAction=k;class N extends D{constructor(){super({id:"editor.action.addSelectionToPreviousFindMatch",label:i.localize(10,null),alias:"Add Selection To Previous Find Match",precondition:void 0,menuOpts:{menuId:m.MenuId.MenubarSelectionMenu,group:"3_multi",title:i.localize(11,null),order:6}})}_run(e,t){e.addSelectionToPreviousFindMatch(t)}}t.AddSelectionToPreviousFindMatchAction=N;class I extends D{constructor(){super({id:"editor.action.moveSelectionToNextFindMatch",label:i.localize(12,null),alias:"Move Last Selection To Next Find Match",precondition:void 0,kbOpts:{kbExpr:c.EditorContextKeys.focus,primary:o.KeyChord(2089,2082),weight:100}})}_run(e,t){e.moveSelectionToNextFindMatch(t)}}t.MoveSelectionToNextFindMatchAction=I;class M extends D{constructor(){super({id:"editor.action.moveSelectionToPreviousFindMatch", +label:i.localize(13,null),alias:"Move Last Selection To Previous Find Match",precondition:void 0})}_run(e,t){e.moveSelectionToPreviousFindMatch(t)}}t.MoveSelectionToPreviousFindMatchAction=M;class R extends D{constructor(){super({id:"editor.action.selectHighlights",label:i.localize(14,null),alias:"Select All Occurrences of Find Match",precondition:void 0,kbOpts:{kbExpr:c.EditorContextKeys.focus,primary:3114,weight:100},menuOpts:{menuId:m.MenuId.MenubarSelectionMenu,group:"3_multi",title:i.localize(15,null),order:7}})}_run(e,t){e.selectAll(t)}}t.SelectHighlightsAction=R;class T extends D{constructor(){super({id:"editor.action.changeAll",label:i.localize(16,null),alias:"Change All Occurrences",precondition:v.ContextKeyExpr.and(c.EditorContextKeys.writable,c.EditorContextKeys.editorTextFocus),kbOpts:{kbExpr:c.EditorContextKeys.editorTextFocus,primary:2108,weight:100},contextMenuOpts:{group:"1_modification",order:1.2}})}_run(e,t){e.selectAll(t)}}t.CompatChangeAll=T;class O{constructor(e,t,i,n){this.searchText=e, +this.matchCase=t,this.wordSeparators=i,this.modelVersionId=n}static softEquals(e,t){return!e&&!t||!(!e||!t)&&(e.searchText===t.searchText&&e.matchCase===t.matchCase&&e.wordSeparators===t.wordSeparators&&e.modelVersionId===t.modelVersionId)}}class A extends s.Disposable{constructor(e){super(),this.editor=e,this._isEnabled=e.getOption(89),this.decorations=[],this.updateSoon=this._register(new n.RunOnceScheduler(()=>this._update(),300)),this.state=null,this._register(e.onDidChangeConfiguration(t=>{this._isEnabled=e.getOption(89)})),this._register(e.onDidChangeCursorSelection(e=>{this._isEnabled&&(e.selection.isEmpty()?3===e.reason?(this.state&&this._setState(null),this.updateSoon.schedule()):this._setState(null):this._update())})),this._register(e.onDidChangeModel(e=>{this._setState(null)})),this._register(e.onDidChangeModelContent(e=>{this._isEnabled&&this.updateSoon.schedule()})),this._register(p.CommonFindController.get(e).getState().onFindReplaceStateChange(e=>{this._update()}))}_update(){ +this._setState(A._createState(this._isEnabled,this.editor))}static _createState(e,t){if(!e)return null;if(!t.hasModel())return null;const i=t.getSelection();if(i.startLineNumber!==i.endLineNumber)return null;const n=x.get(t);if(!n)return null;const o=p.CommonFindController.get(t);if(!o)return null;let s=n.getSession(o);if(!s){const e=t.getSelections();if(e.length>1){const i=o.getState().matchCase;if(!P(t.getModel(),e,i))return null}s=L.create(t,o)}if(!s)return null;if(s.currentMatch)return null;if(/^[ \t]+$/.test(s.searchText))return null;if(s.searchText.length>200)return null;const r=o.getState(),a=r.matchCase;if(r.isRevealed){let e=r.searchString;a||(e=e.toLowerCase());let t=s.searchText;if(a||(t=t.toLowerCase()),e===t&&s.matchCase===r.matchCase&&s.wholeWord===r.wholeWord&&!r.isRegex)return null}return new O(s.searchText,s.matchCase,s.wholeWord?t.getOption(105):null,t.getModel().getVersionId())}_setState(e){if(O.softEquals(this.state,e))return void(this.state=e);if(this.state=e, +!this.state)return void(this.decorations=this.editor.deltaDecorations(this.decorations,[]));if(!this.editor.hasModel())return;const t=this.editor.getModel();if(t.isTooLargeForTokenization())return;const i=g.DocumentHighlightProviderRegistry.has(t)&&this.editor.getOption(63);let n=t.findMatches(this.state.searchText,!0,!1,this.state.matchCase,this.state.wordSeparators,!1).map(e=>e.range);n.sort(l.Range.compareRangesUsingStarts);let o=this.editor.getSelections();o.sort(l.Range.compareRangesUsingStarts);let s=[];for(let e=0,t=0,i=n.length,r=o.length;e=r)s.push(i),e++;else{const n=l.Range.compareRangesUsingStarts(i,o[t]);n<0?(!o[t].isEmpty()&&l.Range.areIntersecting(i,o[t])||s.push(i),e++):n>0?t++:(e++,t++)}}const r=s.map(e=>({range:e,options:i?A._SELECTION_HIGHLIGHT:A._SELECTION_HIGHLIGHT_OVERVIEW}));this.decorations=this.editor.deltaDecorations(this.decorations,r)}dispose(){this._setState(null),super.dispose()}}function P(e,t,i){const n=F(e,t[0],!i);for(let o=1,s=t.length;o{const i=this.commandsHistory.peek(e.commandId),n=this.commandsHistory.peek(t.commandId);return i&&n?i>n?-1:1:i?-1:n?1:e.label.localeCompare(t.label)});const c=[];let h=!1;for(let e=0;er(this,void 0,void 0,(function*(){this.commandsHistory.push(t.commandId),this.telemetryService.publicLog2("workbenchActionExecuted",{id:t.commandId,from:"quick open"});try{yield this.commandService.executeCommand(t.commandId)}catch(e){ +_.isPromiseCanceledError(e)||this.notificationService.error(i.localize(3,null,t.label,C.toErrorMessage(e)))}}))}))}return c}))}};S.PREFIX=">",S.WORD_FILTER=s.or(s.matchesPrefix,s.matchesWords,s.matchesContiguousSubString),S=a([l(1,g.IInstantiationService),l(2,p.IKeybindingService),l(3,m.ICommandService),l(4,f.ITelemetryService),l(5,v.INotificationService)],S),t.AbstractCommandsQuickAccessProvider=S;let w=class e extends o.Disposable{constructor(t,i,n){super(),this.storageService=t,this.configurationService=i,this.configuredCommandsHistoryLength=0,n.registerStorageKey({key:e.PREF_KEY_CACHE,version:1}),n.registerStorageKey({key:e.PREF_KEY_COUNTER,version:1}),this.updateConfiguration(),this.load(),this.registerListeners()}registerListeners(){this._register(this.configurationService.onDidChangeConfiguration(()=>this.updateConfiguration()))}updateConfiguration(){this.configuredCommandsHistoryLength=e.getConfiguredCommandHistoryLength(this.configurationService), +e.cache&&e.cache.limit!==this.configuredCommandsHistoryLength&&(e.cache.limit=this.configuredCommandsHistoryLength,e.saveState(this.storageService))}load(){const t=this.storageService.get(e.PREF_KEY_CACHE,0);let i;if(t)try{i=JSON.parse(t)}catch(e){}const n=e.cache=new c.LRUCache(this.configuredCommandsHistoryLength,1);if(i){let e;(e=i.usesLRU?i.entries:i.entries.sort((e,t)=>e.value-t.value)).forEach(e=>n.set(e.key,e.value))}e.counter=this.storageService.getNumber(e.PREF_KEY_COUNTER,0,e.counter)}push(t){e.cache&&(e.cache.set(t,e.counter++),e.saveState(this.storageService))}peek(t){var i;return null===(i=e.cache)||void 0===i?void 0:i.peek(t)}static saveState(t){if(!e.cache)return;const i={usesLRU:!0,entries:[]};e.cache.forEach((e,t)=>i.entries.push({key:t,value:e})),t.store(e.PREF_KEY_CACHE,JSON.stringify(i),0),t.store(e.PREF_KEY_COUNTER,e.counter,0)}static getConfiguredCommandHistoryLength(t){var i,n +;const o=null===(n=null===(i=t.getValue().workbench)||void 0===i?void 0:i.commandPalette)||void 0===n?void 0:n.history;return"number"==typeof o?o:e.DEFAULT_COMMANDS_HISTORY_LENGTH}};w.DEFAULT_COMMANDS_HISTORY_LENGTH=50,w.PREF_KEY_CACHE="commandPalette.mru.cache",w.PREF_KEY_COUNTER="commandPalette.mru.counter",w.counter=1,w=a([l(0,h.IStorageService),l(1,u.IConfigurationService),l(2,b.IStorageKeysSyncRegistryService)],w),t.CommandsHistory=w})),define(t[645],i([0,1,644,26]),(function(e,t,i,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractEditorCommandsQuickAccessProvider=void 0;class o extends i.AbstractCommandsQuickAccessProvider{constructor(e,t,i,n,o,s){super(e,t,i,n,o,s)}getCodeEditorCommandPicks(){const e=this.activeTextEditorControl;if(!e)return[];const t=[];for(const i of e.getSupportedActions())t.push({commandId:i.id,commandAlias:i.alias,label:n.stripCodicons(i.label)||i.id});return t}}t.AbstractEditorCommandsQuickAccessProvider=o})), +define(t[646],i([0,1,34,94,61,27,645,23,10,35,28,84,32,11,22,75]),(function(e,t,i,n,o,s,d,c,h,u,g,p,m,f,_,v){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.GotoLineAction=t.StandaloneCommandsQuickAccessProvider=void 0;let C=class extends d.AbstractEditorCommandsQuickAccessProvider{constructor(e,t,i,n,o,s){super({showAlias:!1},e,i,n,o,s),this.codeEditorService=t}get activeTextEditorControl(){return c.withNullAsUndefined(this.codeEditorService.getFocusedCodeEditor())}getCommandPicks(){return r(this,void 0,void 0,(function*(){return this.getCodeEditorCommandPicks()}))}};C=a([l(0,h.IInstantiationService),l(1,s.ICodeEditorService),l(2,u.IKeybindingService),l(3,g.ICommandService),l(4,p.ITelemetryService),l(5,m.INotificationService)],C),t.StandaloneCommandsQuickAccessProvider=C,i.Registry.as(n.Extensions.Quickaccess).registerQuickAccessProvider({ctor:C,prefix:C.PREFIX,helpEntries:[{description:o.QuickCommandNLS.quickCommandHelp,needsEditor:!0}]});class b extends f.EditorAction{constructor(){super({ +id:"editor.action.quickCommand",label:o.QuickCommandNLS.quickCommandActionLabel,alias:"Command Palette",precondition:void 0,kbOpts:{kbExpr:_.EditorContextKeys.focus,primary:59,weight:100},contextMenuOpts:{group:"z_commands",order:1}})}run(e){e.get(v.IQuickInputService).quickAccess.show(C.PREFIX)}}t.GotoLineAction=b,f.registerEditorAction(b)})),define(t[180],i([0,1,24,41,10,59]),(function(e,t,i,n,o,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.WorkspaceFolder=t.Workspace=t.IWorkspaceFolder=t.IWorkspace=t.IWorkspaceContextService=void 0,t.IWorkspaceContextService=o.createDecorator("contextService"),function(e){e.isIWorkspace=function(e){return!(!e||"object"!=typeof e||"string"!=typeof e.id||!Array.isArray(e.folders))}}(t.IWorkspace||(t.IWorkspace={})),function(e){e.isIWorkspaceFolder=function(e){return!(!e||"object"!=typeof e||!i.URI.isUri(e.uri)||"string"!=typeof e.name||"function"!=typeof e.toResource)}}(t.IWorkspaceFolder||(t.IWorkspaceFolder={}));t.Workspace=class{ +constructor(e,t=[],i=null){this._id=e,this._configuration=i,this._foldersMap=s.TernarySearchTree.forUris(),this.folders=t}get folders(){return this._folders}set folders(e){this._folders=e,this.updateFoldersMap()}get id(){return this._id}get configuration(){return this._configuration}set configuration(e){this._configuration=e}getFolder(e){return e&&this._foldersMap.findSubstr(e.with({scheme:e.scheme,authority:e.authority,path:e.path}))||null}updateFoldersMap(){this._foldersMap=s.TernarySearchTree.forUris();for(const e of this.folders)this._foldersMap.set(e.uri,e)}toJSON(){return{id:this.id,folders:this.folders,configuration:this.configuration}}};t.WorkspaceFolder=class{constructor(e,t){this.raw=t,this.uri=e.uri,this.index=e.index,this.name=e.name}toResource(e){return n.joinPath(this.uri,e)}toJSON(){return{uri:this.uri,name:this.name,index:this.index}}}})), +define(t[181],i([0,1,8,7,53,4,39,2,16,77,24,101,127,174,60,13,3,44,28,46,548,530,239,83,532,533,32,180,61]),(function(e,t,i,n,o,s,d,c,h,u,g,p,m,f,_,v,C,b,S,w,y,E,L,x,D,k,N,I,M){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SimpleLayoutService=t.SimpleUriLabelService=t.SimpleBulkEditService=t.applyConfigurationValues=t.SimpleWorkspaceContextService=t.StandaloneTelemetryService=t.SimpleResourcePropertiesService=t.SimpleResourceConfigurationService=t.SimpleConfigurationService=t.StandaloneKeybindingService=t.StandaloneCommandService=t.SimpleNotificationService=t.SimpleDialogService=t.SimpleEditorProgressService=t.SimpleEditorModelResolverService=t.SimpleModel=void 0;class R{constructor(e){this.disposed=!1,this.model=e,this._onDispose=new s.Emitter}get textEditorModel(){return this.model}dispose(){this.disposed=!0,this._onDispose.fire()}}t.SimpleModel=R;let T=class{constructor(e){this.modelService=e}setEditor(e){this.editor=e}createModelReference(e){let t=null;var i,n,o +;return this.editor&&(i=this.editor,n=t=>this.findModel(t,e),o=t=>this.findModel(t.getOriginalEditor(),e)||this.findModel(t.getModifiedEditor(),e),t=p.isCodeEditor(i)?n(i):o(i)),t?Promise.resolve(new c.ImmortalReference(new R(t))):Promise.reject(new Error("Model not found"))}findModel(e,t){let i=this.modelService.getModel(t);return i&&i.uri.toString()!==t.toString()?null:i}};T=a([l(0,b.IModelService)],T),t.SimpleEditorModelResolverService=T;class O{show(){return O.NULL_PROGRESS_RUNNER}showWhile(e,t){return Promise.resolve(void 0)}}t.SimpleEditorProgressService=O,O.NULL_PROGRESS_RUNNER={done:()=>{},total:()=>{},worked:()=>{}};t.SimpleDialogService=class{confirm(e){return this.doConfirm(e).then(e=>({confirmed:e,checkboxChecked:!1}))}doConfirm(e){let t=e.message;return e.detail&&(t=t+"\n\n"+e.detail),Promise.resolve(window.confirm(t))}show(e,t,i,n){return Promise.resolve({choice:0})}};class A{info(e){return this.notify({severity:u.default.Info,message:e})}warn(e){return this.notify({severity:u.default.Warning, +message:e})}error(e){return this.notify({severity:u.default.Error,message:e})}notify(e){switch(e.severity){case u.default.Error:console.error(e.message);break;case u.default.Warning:console.warn(e.message);break;default:console.log(e.message)}return A.NO_OP}status(e,t){return c.Disposable.None}}t.SimpleNotificationService=A,A.NO_OP=new N.NoOpNotification;t.StandaloneCommandService=class{constructor(e){this._onWillExecuteCommand=new s.Emitter,this._onDidExecuteCommand=new s.Emitter,this._instantiationService=e}executeCommand(e,...t){const i=S.CommandsRegistry.getCommand(e);if(!i)return Promise.reject(new Error(`command '${e}' not found`));try{this._onWillExecuteCommand.fire({commandId:e,args:t});const n=this._instantiationService.invokeFunction.apply(this._instantiationService,[i.handler,...t]);return this._onDidExecuteCommand.fire({commandId:e,args:t}),Promise.resolve(n)}catch(e){return Promise.reject(e)}}};class P extends E.AbstractKeybindingService{constructor(e,t,i,s,r,a){super(e,t,i,s,r), +this._cachedResolver=null,this._dynamicKeybindings=[],this._register(n.addDisposableListener(a,n.EventType.KEY_DOWN,e=>{let t=new o.StandardKeyboardEvent(e);this._dispatch(t,t.target)&&(t.preventDefault(),t.stopPropagation())}))}addDynamicKeybinding(e,t,i,n){const o=d.createKeybinding(t,h.OS),s=new c.DisposableStore;return o&&(this._dynamicKeybindings.push({keybinding:o,command:e,when:n,weight1:1e3,weight2:0,extensionId:null}),s.add(c.toDisposable(()=>{for(let t=0;tthis._log(e))}return this._cachedResolver}_documentHasFocus(){return document.hasFocus()}_toNormalizedKeybindingItems(e,t){let i=[],n=0;for(const o of e){const e=o.when||void 0,s=o.keybinding;if(s){const r=this.resolveKeybinding(s);for(const s of r)i[n++]=new D.ResolvedKeybindingItem(s,o.command,o.commandArgs,e,t,null)}else i[n++]=new D.ResolvedKeybindingItem(void 0,o.command,o.commandArgs,e,t,null)}return i}resolveKeybinding(e){return[new k.USLayoutResolvedKeybinding(e,h.OS)]}resolveKeyboardEvent(e){let t=new d.SimpleKeybinding(e.ctrlKey,e.shiftKey,e.altKey,e.metaKey,e.keyCode).toChord();return new k.USLayoutResolvedKeybinding(t,h.OS)}}function F(e){return e&&"object"==typeof e&&(!e.overrideIdentifier||"string"==typeof e.overrideIdentifier)&&(!e.resource||e.resource instanceof g.URI)}t.StandaloneKeybindingService=P;class W{constructor(){this._onDidChangeConfiguration=new s.Emitter,this.onDidChangeConfiguration=this._onDidChangeConfiguration.event, +this._configuration=new y.Configuration(new y.DefaultConfigurationModel,new y.ConfigurationModel)}getValue(e,t){const i="string"==typeof e?e:void 0,n=F(e)?e:F(t)?t:{};return this._configuration.getValue(i,n,void 0)}updateValues(e){const t={data:this._configuration.toData()};let i=[];for(const t of e){const[e,n]=t;this.getValue(e)!==n&&(this._configuration.updateValue(e,n),i.push(e))}if(i.length>0){const e=new y.ConfigurationChangeEvent({keys:i,overrides:[]},t,this._configuration);e.source=7,e.sourceConfig=null,this._onDidChangeConfiguration.fire(e)}return Promise.resolve()}}t.SimpleConfigurationService=W;t.SimpleResourceConfigurationService=class{constructor(e){this.configurationService=e,this._onDidChangeConfiguration=new s.Emitter,this.configurationService.onDidChangeConfiguration(e=>{this._onDidChangeConfiguration.fire({affectedKeys:e.affectedKeys,affectsConfiguration:(t,i)=>e.affectsConfiguration(i)})})}getValue(e,t,i){ +const n=(v.Position.isIPosition(t)?t:null)?"string"==typeof i?i:void 0:"string"==typeof t?t:void 0;return void 0===n?this.configurationService.getValue():this.configurationService.getValue(n)}};let B=class{constructor(e){this.configurationService=e}getEOL(e,t){const i=this.configurationService.getValue("files.eol",{overrideIdentifier:t,resource:e});return i&&"auto"!==i?i:h.isLinux||h.isMacintosh?"\n":"\r\n"}};B=a([l(0,w.IConfigurationService)],B),t.SimpleResourcePropertiesService=B;t.StandaloneTelemetryService=class{publicLog(e,t){return Promise.resolve(void 0)}publicLog2(e,t){return this.publicLog(e,t)}};class V{constructor(){const e=g.URI.from({scheme:V.SCHEME,authority:"model",path:"/"});this.workspace={id:"4064f6ec-cb38-4ad0-af64-ee6467e63c82",folders:[new I.WorkspaceFolder({uri:e,name:"",index:0})]}}getWorkspace(){return this.workspace}getWorkspaceFolder(e){return e&&e.scheme===V.SCHEME?this.workspace.folders[0]:null}}t.SimpleWorkspaceContextService=V,V.SCHEME="inmemory", +t.applyConfigurationValues=function(e,t,i){if(!t)return;if(!(e instanceof W))return;let n=[];Object.keys(t).forEach(e=>{f.isEditorConfigurationKey(e)&&n.push([`editor.${e}`,t[e]]),i&&f.isDiffEditorConfigurationKey(e)&&n.push([`diffEditor.${e}`,t[e]])}),n.length>0&&e.updateValues(n)};t.SimpleBulkEditService=class{constructor(e){this._modelService=e}hasPreviewHandler(){return!1}apply(e,t){return r(this,void 0,void 0,(function*(){const t=new Map;for(let i of e){if(!(i instanceof m.ResourceTextEdit))throw new Error("bad edit - only text edits are supported");const e=this._modelService.getModel(i.resource);if(!e)throw new Error("bad edit - model not found");if("number"==typeof i.versionId&&e.getVersionId()!==i.versionId)throw new Error("bad state - model changed in the meantime");let n=t.get(e);n||(n=[],t.set(e,n)),n.push(_.EditOperation.replaceMove(C.Range.lift(i.textEdit.range),i.textEdit.text))}let n=0,o=0;for(const[e,i]of t)e.pushStackElement(),e.pushEditOperations([],i,()=>[]),e.pushStackElement(),o+=1, +n+=i.length;return{ariaSummary:i.format(M.SimpleServicesNLS.bulkEditServiceSummary,n,o)}}))}};t.SimpleUriLabelService=class{getUriLabel(e,t){return"file"===e.scheme?e.fsPath:e.path}};t.SimpleLayoutService=class{constructor(e,t){this._codeEditorService=e,this._container=t,this.onLayout=s.Event.None}get dimension(){return this._dimension||(this._dimension=n.getClientArea(window.document.body)),this._dimension}get container(){return this._container}focus(){var e;null===(e=this._codeEditorService.getFocusedCodeEditor())||void 0===e||e.focus()}}})),define(t[647],i([0,1,48,2,27,138,252,209,72,181,106,33,28,46,17,66,10,35,32,14,62,61,80,56]),(function(e,t,i,n,o,s,r,d,c,h,u,g,p,m,f,_,v,C,b,S,w,y,E,L){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StandaloneDiffEditor=t.StandaloneEditor=t.StandaloneCodeEditor=void 0;let x=0,D=!1;let k=class extends s.CodeEditorWidget{constructor(e,t,n,o,s,r,a,l,d,c){(t=t||{}).ariaLabel=t.ariaLabel||y.StandaloneCodeEditorNLS.editorViewAccessibleLabel, +t.ariaLabel=t.ariaLabel+";"+y.StandaloneCodeEditorNLS.accessibilityHelpMessage,super(e,t,{},n,o,s,r,l,d,c),a instanceof h.StandaloneKeybindingService?this._standaloneKeybindingService=a:this._standaloneKeybindingService=null,D||(D=!0,i.setARIAContainer(document.body))}addCommand(e,t,i){if(!this._standaloneKeybindingService)return console.warn("Cannot add command because the editor is configured with an unrecognized KeybindingService"),null;let n="DYNAMIC_"+ ++x,o=f.ContextKeyExpr.deserialize(i);return this._standaloneKeybindingService.addDynamicKeybinding(n,e,t,o),n}createContextKey(e,t){return this._contextKeyService.createKey(e,t)}addAction(e){if("string"!=typeof e.id||"string"!=typeof e.label||"function"!=typeof e.run)throw new Error("Invalid action descriptor, `id`, `label` and `run` are required properties!");if(!this._standaloneKeybindingService)return console.warn("Cannot add keybinding because the editor is configured with an unrecognized KeybindingService"),n.Disposable.None +;const t=e.id,i=e.label,o=f.ContextKeyExpr.and(f.ContextKeyExpr.equals("editorId",this.getId()),f.ContextKeyExpr.deserialize(e.precondition)),s=e.keybindings,r=f.ContextKeyExpr.and(o,f.ContextKeyExpr.deserialize(e.keybindingContext)),a=e.contextMenuGroupId||null,l=e.contextMenuOrder||0,c=(t,...i)=>Promise.resolve(e.run(this,...i)),h=new n.DisposableStore,u=this.getId()+":"+t;if(h.add(p.CommandsRegistry.registerCommand(u,c)),a){let e={command:{id:u,title:i},when:o,group:a,order:l};h.add(g.MenuRegistry.appendMenuItem(g.MenuId.EditorContext,e))}if(Array.isArray(s))for(const e of s)h.add(this._standaloneKeybindingService.addDynamicKeybinding(u,e,c,r));let m=new d.InternalEditorAction(u,i,i,o,c,this._contextKeyService);return this._actions[t]=m,h.add(n.toDisposable(()=>{delete this._actions[t]})),h}};k=a([l(2,v.IInstantiationService),l(3,o.ICodeEditorService),l(4,p.ICommandService),l(5,f.IContextKeyService),l(6,C.IKeybindingService),l(7,S.IThemeService),l(8,b.INotificationService),l(9,w.IAccessibilityService)],k), +t.StandaloneCodeEditor=k;let N=class extends k{constructor(e,t,i,n,o,s,r,a,l,d,c,u,g){h.applyConfigurationValues(u,t,!1);const p=d.registerEditorContainer(e);"string"==typeof(t=t||{}).theme&&d.setTheme(t.theme);let m,f=t.model;if(delete t.model,super(e,t,n,o,s,r,a,d,c,g),this._contextViewService=l,this._configurationService=u,this._standaloneThemeService=d,this._register(i),this._register(p),void 0===f?(m=self.monaco.editor.createModel(t.value||"",t.language||"text/plain"),this._ownsModel=!0):(m=f,this._ownsModel=!1),this._attachModel(m),m){let e={oldModelUrl:null,newModelUrl:m.uri};this._onDidChangeModel.fire(e)}}dispose(){super.dispose()}updateOptions(e){h.applyConfigurationValues(this._configurationService,e,!1),"string"==typeof e.theme&&this._standaloneThemeService.setTheme(e.theme),super.updateOptions(e)}_attachModel(e){super._attachModel(e),this._modelData&&this._contextViewService.setContainer(this._modelData.view.domNode.domNode)}_postDetachModelCleanup(e){super._postDetachModelCleanup(e), +e&&this._ownsModel&&(e.dispose(),this._ownsModel=!1)}};N=a([l(3,v.IInstantiationService),l(4,o.ICodeEditorService),l(5,p.ICommandService),l(6,f.IContextKeyService),l(7,C.IKeybindingService),l(8,_.IContextViewService),l(9,u.IStandaloneThemeService),l(10,b.INotificationService),l(11,m.IConfigurationService),l(12,w.IAccessibilityService)],N),t.StandaloneEditor=N;let I=class extends r.DiffEditorWidget{constructor(e,t,i,n,o,s,r,a,l,d,c,u,g,p,m){h.applyConfigurationValues(u,t,!0);const f=d.registerEditorContainer(e);"string"==typeof(t=t||{}).theme&&(t.theme=d.setTheme(t.theme)),super(e,t,m,a,o,n,l,d,c,g,p),this._contextViewService=r,this._configurationService=u,this._standaloneThemeService=d,this._register(i),this._register(f),this._contextViewService.setContainer(this._containerDomElement)}dispose(){super.dispose()}updateOptions(e){h.applyConfigurationValues(this._configurationService,e,!0),"string"==typeof e.theme&&this._standaloneThemeService.setTheme(e.theme),super.updateOptions(e)}_createInnerEditor(e,t,i){ +return e.createInstance(k,t,i)}getOriginalEditor(){return super.getOriginalEditor()}getModifiedEditor(){return super.getModifiedEditor()}addCommand(e,t,i){return this.getModifiedEditor().addCommand(e,t,i)}createContextKey(e,t){return this.getModifiedEditor().createContextKey(e,t)}addAction(e){return this.getModifiedEditor().addAction(e)}};I=a([l(3,v.IInstantiationService),l(4,f.IContextKeyService),l(5,C.IKeybindingService),l(6,_.IContextViewService),l(7,c.IEditorWorkerService),l(8,o.ICodeEditorService),l(9,u.IStandaloneThemeService),l(10,b.INotificationService),l(11,m.IConfigurationService),l(12,_.IContextMenuService),l(13,L.IEditorProgressService),l(14,E.IClipboardService)],I),t.StandaloneDiffEditor=I})), +define(t[262],i([0,1,2,127,27,72,240,73,546,44,257,130,181,629,631,106,33,28,46,549,17,632,66,534,173,10,529,131,35,132,141,81,537,82,32,56,76,84,14,180,528,231,599,62,133,71,547,80,505,142,642,634,75,179]),(function(e,t,i,n,o,s,r,a,l,d,c,h,u,g,p,m,f,_,v,C,b,S,w,y,E,L,x,D,k,N,I,M,R,T,O,A,P,F,W,B,V,z,H,K,U,$,j,q,G,Y,Z,X,Q,J){"use strict";var ee;Object.defineProperty(t,"__esModule",{value:!0}),t.DynamicStandaloneServices=t.StaticServices=void 0,function(e){const t=new D.ServiceCollection;class i{constructor(e,t){this._serviceId=e,this._factory=t,this._value=null}get id(){return this._serviceId}get(e){if(!this._value){if(e&&(this._value=e[this._serviceId.toString()]),this._value||(this._value=this._factory(e)),!this._value)throw new Error("Service "+this._serviceId+" is missing!");t.set(this._serviceId,this._value)}return this._value}}e.LazyStaticService=i;let n=[];function f(e,t){let o=new i(e,t);return n.push(o),o}e.init=function(e){let t=new D.ServiceCollection +;for(const[e,i]of $.getSingletonServiceDescriptors())t.set(e,i);for(let i in e)e.hasOwnProperty(i)&&t.set(L.createDecorator(i),e[i]);n.forEach(i=>t.set(i.id,i.get(e)));let i=new x.InstantiationService(t,!0);return t.set(L.IInstantiationService,i),[t,i]},e.instantiationService=f(L.IInstantiationService,()=>new x.InstantiationService(t,!0));const _=new u.SimpleConfigurationService;e.configurationService=f(v.IConfigurationService,()=>_),e.resourceConfigurationService=f(h.ITextResourceConfigurationService,()=>new u.SimpleResourceConfigurationService(_)),e.resourcePropertiesService=f(h.ITextResourcePropertiesService,()=>new u.SimpleResourcePropertiesService(_)),e.contextService=f(B.IWorkspaceContextService,()=>new u.SimpleWorkspaceContextService),e.labelService=f(N.ILabelService,()=>new u.SimpleUriLabelService),e.telemetryService=f(F.ITelemetryService,()=>new u.StandaloneTelemetryService),e.dialogService=f(E.IDialogService,()=>new u.SimpleDialogService), +e.notificationService=f(O.INotificationService,()=>new u.SimpleNotificationService),e.markerService=f(T.IMarkerService,()=>new R.MarkerService),e.modeService=f(a.IModeService,e=>new l.ModeServiceImpl),e.standaloneThemeService=f(m.IStandaloneThemeService,()=>new p.StandaloneThemeServiceImpl),e.logService=f(M.ILogService,()=>new M.ConsoleLogService),e.undoRedoService=f(Y.IUndoRedoService,t=>new Z.UndoRedoService(e.dialogService.get(t),e.notificationService.get(t))),e.modelService=f(d.IModelService,t=>new c.ModelServiceImpl(e.configurationService.get(t),e.resourcePropertiesService.get(t),e.standaloneThemeService.get(t),e.logService.get(t),e.undoRedoService.get(t))),e.markerDecorationsService=f(z.IMarkerDecorationsService,t=>new H.MarkerDecorationsService(e.modelService.get(t),e.markerService.get(t))),e.codeEditorService=f(o.ICodeEditorService,t=>new g.StandaloneCodeEditorServiceImpl(e.standaloneThemeService.get(t))),e.editorProgressService=f(A.IEditorProgressService,()=>new u.SimpleEditorProgressService), +e.storageService=f(P.IStorageService,()=>new P.InMemoryStorageService),e.storageSyncService=f(J.IStorageKeysSyncRegistryService,()=>new J.StorageKeysSyncRegistryService),e.editorWorkerService=f(s.IEditorWorkerService,t=>new r.EditorWorkerServiceImpl(e.modelService.get(t),e.resourceConfigurationService.get(t),e.logService.get(t)))}(ee=t.StaticServices||(t.StaticServices={}));class te extends i.Disposable{constructor(e,t){super();const[i,s]=ee.init(t);this._serviceCollection=i,this._instantiationService=s;const r=this.get(v.IConfigurationService),a=this.get(O.INotificationService),l=this.get(F.ITelemetryService),c=this.get(W.IThemeService),h=this.get(M.ILogService);let g=(e,i)=>{let n=null;return t&&(n=t[e.toString()]),n||(n=i()),this._serviceCollection.set(e,n),n},p=g(b.IContextKeyService,()=>this._register(new C.ContextKeyService(r)));g(K.IAccessibilityService,()=>new j.AccessibilityService(p,r)),g(I.IListService,()=>new I.ListService(c)) +;let m=g(_.ICommandService,()=>new u.StandaloneCommandService(this._instantiationService)),E=g(k.IKeybindingService,()=>this._register(new u.StandaloneKeybindingService(p,m,l,a,h,e))),L=g(U.ILayoutService,()=>new u.SimpleLayoutService(ee.codeEditorService.get(o.ICodeEditorService),e));g(Q.IQuickInputService,()=>new X.StandaloneQuickInputServiceImpl(s,ee.codeEditorService.get(o.ICodeEditorService)));let x=g(w.IContextViewService,()=>this._register(new y.ContextViewService(L)));g(q.IClipboardService,()=>new G.BrowserClipboardService),g(w.IContextMenuService,()=>{const e=new S.ContextMenuService(l,a,x,E,c);return e.configure({blockMouse:!1}),this._register(e)}),g(f.IMenuService,()=>new V.MenuService(m)),g(n.IBulkEditService,()=>new u.SimpleBulkEditService(ee.modelService.get(d.IModelService)))}get(e){let t=this._serviceCollection.get(e);if(!t)throw new Error("Missing service "+e);return t}set(e,t){this._serviceCollection.set(e,t)}has(e){return this._serviceCollection.has(e)}}t.DynamicStandaloneServices=te})), +define(t[648],i([0,1,27,538,206,38,156,100,52,18,74,72,92,535,161,523,181,647,262,106,28,46,17,66,10,35,32,55,62,67,56,80,351]),(function(e,t,i,n,o,s,r,a,l,d,c,h,u,g,p,m,f,_,v,C,b,S,w,y,E,L,x,D,k,N,I,M){"use strict";function R(e,t,o){let s=new v.DynamicStandaloneServices(e,t),r=null;s.has(u.ITextModelService)||(r=new f.SimpleEditorModelResolverService(v.StaticServices.modelService.get()),s.set(u.ITextModelService,r)),s.has(D.IOpenerService)||s.set(D.IOpenerService,new n.OpenerService(s.get(i.ICodeEditorService),s.get(b.ICommandService)));let a=o(s);return r&&r.setEditor(a),a}function T(e,t,n){return R(e,n||{},n=>new _.StandaloneEditor(e,t,n,n.get(E.IInstantiationService),n.get(i.ICodeEditorService),n.get(b.ICommandService),n.get(w.IContextKeyService),n.get(L.IKeybindingService),n.get(y.IContextViewService),n.get(C.IStandaloneThemeService),n.get(x.INotificationService),n.get(S.IConfigurationService),n.get(k.IAccessibilityService)))}function O(e){ +return v.StaticServices.codeEditorService.get().onCodeEditorAdd(t=>{e(t)})}function A(e,t,n){return R(e,n||{},n=>new _.StandaloneDiffEditor(e,t,n,n.get(E.IInstantiationService),n.get(w.IContextKeyService),n.get(L.IKeybindingService),n.get(y.IContextViewService),n.get(h.IEditorWorkerService),n.get(i.ICodeEditorService),n.get(C.IStandaloneThemeService),n.get(x.INotificationService),n.get(S.IConfigurationService),n.get(y.IContextMenuService),n.get(I.IEditorProgressService),n.get(M.IClipboardService)))}function P(e,t){return new o.DiffNavigator(e,t)}function F(e,t,i){return v.StaticServices.modelService.get().createModel(e,t,i)}function W(e,t,i){if(e=e||"",!t){let t=e.indexOf("\n"),n=e;return-1!==t&&(n=e.substring(0,t)),F(e,v.StaticServices.modeService.get().createByFilepathOrFirstLine(i||null,n),i)}return F(e,v.StaticServices.modeService.get().create(t),i)}function B(e,t){v.StaticServices.modelService.get().setMode(e,v.StaticServices.modeService.get().create(t))}function V(e,t,i){ +e&&v.StaticServices.markerService.get().changeOne(t,e.uri,i)}function z(e){return v.StaticServices.markerService.get().read(e)}function H(e){return v.StaticServices.modelService.get().getModel(e)}function K(){return v.StaticServices.modelService.get().getModels()}function U(e){return v.StaticServices.modelService.get().onModelAdded(e)}function $(e){return v.StaticServices.modelService.get().onModelRemoved(e)}function j(e){return v.StaticServices.modelService.get().onModelModeChanged(t=>{e({model:t.model,oldLanguage:t.oldModeId})})}function q(e){return g.createWebWorker(v.StaticServices.modelService.get(),e)}function G(e,t){const i=v.StaticServices.standaloneThemeService.get();return i.registerEditorContainer(e),m.Colorizer.colorizeElement(i,v.StaticServices.modeService.get(),e,t)}function Y(e,t,i){return v.StaticServices.standaloneThemeService.get().registerEditorContainer(document.body),m.Colorizer.colorize(v.StaticServices.modeService.get(),e,t,i)}function Z(e,t,i=4){ +return v.StaticServices.standaloneThemeService.get().registerEditorContainer(document.body),m.Colorizer.colorizeModelLine(e,t,i)}function X(e,t){v.StaticServices.modeService.get().triggerMode(t);let i=function(e){let t=d.TokenizationRegistry.get(e);return t||{getInitialState:()=>c.NULL_STATE,tokenize:(t,i,n)=>c.nullTokenize(e,t,i,n)}}(t),n=e.split(/\r\n|\r|\n/),o=[],s=i.getInitialState();for(let e=0,t=n.length;e{n.getId()===e&&(i.dispose(),t())});return i}function m(e,t){let i=l.StaticServices.modeService.get().getLanguageIdentifier(e);if(!i)throw new Error(`Cannot set configuration for unknown language ${e}`);return s.LanguageConfigurationRegistry.register(i,t)}Object.defineProperty(t,"__esModule",{value:!0}), +t.createMonacoLanguagesAPI=t.registerDocumentRangeSemanticTokensProvider=t.registerDocumentSemanticTokensProvider=t.registerSelectionRangeProvider=t.registerDeclarationProvider=t.registerFoldingRangeProvider=t.registerColorProvider=t.registerCompletionItemProvider=t.registerLinkProvider=t.registerOnTypeFormattingEditProvider=t.registerDocumentRangeFormattingEditProvider=t.registerDocumentFormattingEditProvider=t.registerCodeActionProvider=t.registerCodeLensProvider=t.registerTypeDefinitionProvider=t.registerImplementationProvider=t.registerDefinitionProvider=t.registerOnTypeRenameProvider=t.registerDocumentHighlightProvider=t.registerDocumentSymbolProvider=t.registerHoverProvider=t.registerSignatureHelpProvider=t.registerRenameProvider=t.registerReferenceProvider=t.setMonarchTokensProvider=t.setTokensProvider=t.TokenizationSupport2Adapter=t.EncodedTokenizationSupport2Adapter=t.setLanguageConfiguration=t.onLanguage=t.getEncodedLanguageId=t.getLanguages=t.register=void 0,t.register=h,t.getLanguages=u, +t.getEncodedLanguageId=g,t.onLanguage=p,t.setLanguageConfiguration=m;class f{constructor(e){this._actual=e}getInitialState(){return this._actual.getInitialState()}tokenize(e,t,i){throw new Error("Not supported!")}tokenize2(e,t){let i=this._actual.tokenizeEncoded(e,t);return new n.TokenizationResult2(i.tokens,i.endState)}}t.EncodedTokenizationSupport2Adapter=f;class _{constructor(e,t,i){this._standaloneThemeService=e,this._languageIdentifier=t,this._actual=i}getInitialState(){return this._actual.getInitialState()}_toClassicTokens(e,t,i){let o=[],s=0;for(let r=0,a=e.length;r0&&o[s-1]===d)continue;let c=l.startIndex;0===a?c=0:c(function(e){return"tokenizeEncoded"in e})(e)?new f(e):new _(l.StaticServices.standaloneThemeService.get(),i,e);return v(t)?o.TokenizationRegistry.registerPromise(e,t.then(e=>n(e))):o.TokenizationRegistry.register(e,n(t))}function b(e,t){const i=t=>c.createTokenizationSupport(l.StaticServices.modeService.get(),l.StaticServices.standaloneThemeService.get(),e,d.compile(e,t)) +;return v(t)?o.TokenizationRegistry.registerPromise(e,t.then(e=>i(e))):o.TokenizationRegistry.register(e,i(t))}function S(e,t){return o.ReferenceProviderRegistry.register(e,t)}function w(e,t){return o.RenameProviderRegistry.register(e,t)}function y(e,t){return o.SignatureHelpProviderRegistry.register(e,t)}function E(e,t){return o.HoverProviderRegistry.register(e,{provideHover:(e,n,o)=>{let s=e.getWordAtPosition(n);return Promise.resolve(t.provideHover(e,n,o)).then(e=>{if(e)return!e.range&&s&&(e.range=new i.Range(n.lineNumber,s.startColumn,n.lineNumber,s.endColumn)),e.range||(e.range=new i.Range(n.lineNumber,n.column,n.lineNumber,n.column)),e})}})}function L(e,t){return o.DocumentSymbolProviderRegistry.register(e,t)}function x(e,t){return o.DocumentHighlightProviderRegistry.register(e,t)}function D(e,t){return o.OnTypeRenameProviderRegistry.register(e,t)}function k(e,t){return o.DefinitionProviderRegistry.register(e,t)}function N(e,t){return o.ImplementationProviderRegistry.register(e,t)}function I(e,t){ +return o.TypeDefinitionProviderRegistry.register(e,t)}function M(e,t){return o.CodeLensProviderRegistry.register(e,t)}function R(e,t){return o.CodeActionProviderRegistry.register(e,{provideCodeActions:(e,n,o,s)=>{let r=l.StaticServices.markerService.get().read({resource:e.uri}).filter(e=>i.Range.areIntersectingOrTouching(e,n));return t.provideCodeActions(e,n,{markers:r,only:o.only},s)}})}function T(e,t){return o.DocumentFormattingEditProviderRegistry.register(e,t)}function O(e,t){return o.DocumentRangeFormattingEditProviderRegistry.register(e,t)}function A(e,t){return o.OnTypeFormattingEditProviderRegistry.register(e,t)}function P(e,t){return o.LinkProviderRegistry.register(e,t)}function F(e,t){return o.CompletionProviderRegistry.register(e,t)}function W(e,t){return o.ColorProviderRegistry.register(e,t)}function B(e,t){return o.FoldingRangeProviderRegistry.register(e,t)}function V(e,t){return o.DeclarationProviderRegistry.register(e,t)}function z(e,t){return o.SelectionRangeRegistry.register(e,t)} +function H(e,t){return o.DocumentSemanticTokensProviderRegistry.register(e,t)}function K(e,t){return o.DocumentRangeSemanticTokensProviderRegistry.register(e,t)}t.TokenizationSupport2Adapter=_,t.setTokensProvider=C,t.setMonarchTokensProvider=b,t.registerReferenceProvider=S,t.registerRenameProvider=w,t.registerSignatureHelpProvider=y,t.registerHoverProvider=E,t.registerDocumentSymbolProvider=L,t.registerDocumentHighlightProvider=x,t.registerOnTypeRenameProvider=D,t.registerDefinitionProvider=k,t.registerImplementationProvider=N,t.registerTypeDefinitionProvider=I,t.registerCodeLensProvider=M,t.registerCodeActionProvider=R,t.registerDocumentFormattingEditProvider=T,t.registerDocumentRangeFormattingEditProvider=O,t.registerOnTypeFormattingEditProvider=A,t.registerLinkProvider=P,t.registerCompletionItemProvider=F,t.registerColorProvider=W,t.registerFoldingRangeProvider=B,t.registerDeclarationProvider=V,t.registerSelectionRangeProvider=z,t.registerDocumentSemanticTokensProvider=H, +t.registerDocumentRangeSemanticTokensProvider=K,t.createMonacoLanguagesAPI=function(){return{register:h,getLanguages:u,onLanguage:p,getEncodedLanguageId:g,setLanguageConfiguration:m,setTokensProvider:C,setMonarchTokensProvider:b,registerReferenceProvider:S,registerRenameProvider:w,registerCompletionItemProvider:F,registerSignatureHelpProvider:y,registerHoverProvider:E,registerDocumentSymbolProvider:L,registerDocumentHighlightProvider:x,registerOnTypeRenameProvider:D,registerDefinitionProvider:k,registerImplementationProvider:N,registerTypeDefinitionProvider:I,registerCodeLensProvider:M,registerCodeActionProvider:R,registerDocumentFormattingEditProvider:T,registerDocumentRangeFormattingEditProvider:O,registerOnTypeFormattingEditProvider:A,registerLinkProvider:P,registerColorProvider:W,registerFoldingRangeProvider:B,registerDeclarationProvider:V,registerSelectionRangeProvider:z,registerDocumentSemanticTokensProvider:H,registerDocumentRangeSemanticTokensProvider:K,DocumentHighlightKind:a.DocumentHighlightKind, +CompletionItemKind:a.CompletionItemKind,CompletionItemTag:a.CompletionItemTag,CompletionItemInsertTextRule:a.CompletionItemInsertTextRule,SymbolKind:a.SymbolKind,SymbolTag:a.SymbolTag,IndentAction:a.IndentAction,CompletionTriggerKind:a.CompletionTriggerKind,SignatureHelpTriggerKind:a.SignatureHelpTriggerKind,FoldingRangeKind:o.FoldingRangeKind}}})),define(t[650],i([0,1,38,212,648,649]),(function(e,t,i,n,o,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.languages=t.editor=t.Token=t.Uri=t.MarkerTag=t.MarkerSeverity=t.SelectionDirection=t.Selection=t.Range=t.Position=t.KeyMod=t.KeyCode=t.Emitter=t.CancellationTokenSource=void 0;const r=self;i.EditorOptions.wrappingIndent.defaultValue=0,i.EditorOptions.glyphMargin.defaultValue=!1,i.EditorOptions.autoIndent.defaultValue=3,i.EditorOptions.overviewRulerLanes.defaultValue=2;const a=n.createMonacoBaseAPI();a.editor=o.createMonacoEditorAPI(),a.languages=s.createMonacoLanguagesAPI(),t.CancellationTokenSource=a.CancellationTokenSource, +t.Emitter=a.Emitter,t.KeyCode=a.KeyCode,t.KeyMod=a.KeyMod,t.Position=a.Position,t.Range=a.Range,t.Selection=a.Selection,t.SelectionDirection=a.SelectionDirection,t.MarkerSeverity=a.MarkerSeverity,t.MarkerTag=a.MarkerTag,t.Uri=a.Uri,t.Token=a.Token,t.editor=a.editor,t.languages=a.languages,r.monaco=a,void 0!==r.require&&"function"==typeof r.require.config&&r.require.config({ignoreDuplicateModules:["vscode-languageserver-types","vscode-languageserver-types/main","vscode-languageserver-textdocument","vscode-languageserver-textdocument/main","vscode-nls","vscode-nls/vscode-nls","jsonc-parser","jsonc-parser/main","vscode-uri","vscode-uri/index","vs/basic-languages/typescript/typescript"]})})),define(t[651],i([0,1,24]),(function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.toWorkspaceIdentifier=t.isSingleFolderWorkspaceIdentifier=t.WORKSPACE_EXTENSION=void 0,t.WORKSPACE_EXTENSION="code-workspace",t.isSingleFolderWorkspaceIdentifier=function(e){return e instanceof i.URI}, +t.toWorkspaceIdentifier=function(e){return e.configuration?{configPath:e.configuration,id:e.id}:1===e.folders.length?e.folders[0].uri:void 0}})),define(t[652],i([0,1,489,63,41,125,42,8,651,151]),(function(e,t,i,n,o,s,r,a,l,d){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RandomBasedVariableResolver=t.WorkspaceBasedVariableResolver=t.TimeBasedVariableResolver=t.CommentBasedVariableResolver=t.ClipboardBasedVariableResolver=t.ModelBasedVariableResolver=t.SelectionBasedVariableResolver=t.CompositeSnippetVariableResolver=void 0;t.CompositeSnippetVariableResolver=class{constructor(e){this._delegates=e}resolve(e){for(const t of this._delegates){let i=t.resolve(e);if(void 0!==i)return i}}};t.SelectionBasedVariableResolver=class{constructor(e,t,i,n){this._model=e,this._selection=t,this._selectionIdx=i,this._overtypingCapturer=n}resolve(e){const{name:t}=e;if("SELECTION"===t||"TM_SELECTED_TEXT"===t){ +let t=this._model.getValueInRange(this._selection)||void 0,i=this._selection.startLineNumber!==this._selection.endLineNumber;if(!t&&this._overtypingCapturer){const e=this._overtypingCapturer.getLastOvertypedInfo(this._selectionIdx);e&&(t=e.value,i=e.multiline)}if(t&&i&&e.snippet){const i=this._model.getLineContent(this._selection.startLineNumber),n=a.getLeadingWhitespace(i,0,this._selection.startColumn-1);let o=n;e.snippet.walk(t=>t!==e&&(t instanceof s.Text&&(o=a.getLeadingWhitespace(t.value.split(/\r\n|\r|\n/).pop())),!0));const r=a.commonPrefixLength(o,n);t=t.replace(/(\r\n|\r|\n)(.*)/g,(e,t,i)=>`${t}${o.substr(r)}${i}`)}return t}if("TM_CURRENT_LINE"===t)return this._model.getLineContent(this._selection.positionLineNumber);if("TM_CURRENT_WORD"===t){const e=this._model.getWordAtPosition({lineNumber:this._selection.positionLineNumber,column:this._selection.positionColumn});return e&&e.word||void 0} +return"TM_LINE_INDEX"===t?String(this._selection.positionLineNumber-1):"TM_LINE_NUMBER"===t?String(this._selection.positionLineNumber):void 0}};t.ModelBasedVariableResolver=class{constructor(e,t){this._labelService=e,this._model=t}resolve(e){const{name:t}=e;if("TM_FILENAME"===t)return n.basename(this._model.uri.fsPath);if("TM_FILENAME_BASE"===t){const e=n.basename(this._model.uri.fsPath),t=e.lastIndexOf(".");return t<=0?e:e.slice(0,t)}return"TM_DIRECTORY"===t&&this._labelService?"."===n.dirname(this._model.uri.fsPath)?"":this._labelService.getUriLabel(o.dirname(this._model.uri)):"TM_FILEPATH"===t&&this._labelService?this._labelService.getUriLabel(this._model.uri):void 0}};t.ClipboardBasedVariableResolver=class{constructor(e,t,i,n){this._readClipboardText=e,this._selectionIdx=t,this._selectionCount=i,this._spread=n}resolve(e){if("CLIPBOARD"!==e.name)return;const t=this._readClipboardText();if(t){if(this._spread){const e=t.split(/\r\n|\n|\r/).filter(e=>!a.isFalsyOrWhitespace(e)) +;if(e.length===this._selectionCount)return e[this._selectionIdx]}return t}}};t.CommentBasedVariableResolver=class{constructor(e,t){this._model=e,this._selection=t}resolve(e){const{name:t}=e,i=this._model.getLanguageIdAtPosition(this._selection.selectionStartLineNumber,this._selection.selectionStartColumn),n=r.LanguageConfigurationRegistry.getComments(i);if(n)return"LINE_COMMENT"===t?n.lineCommentToken||void 0:"BLOCK_COMMENT_START"===t?n.blockCommentStartToken||void 0:"BLOCK_COMMENT_END"===t&&n.blockCommentEndToken||void 0}};class c{resolve(e){const{name:t}=e +;return"CURRENT_YEAR"===t?String((new Date).getFullYear()):"CURRENT_YEAR_SHORT"===t?String((new Date).getFullYear()).slice(-2):"CURRENT_MONTH"===t?String((new Date).getMonth().valueOf()+1).padStart(2,"0"):"CURRENT_DATE"===t?String((new Date).getDate().valueOf()).padStart(2,"0"):"CURRENT_HOUR"===t?String((new Date).getHours().valueOf()).padStart(2,"0"):"CURRENT_MINUTE"===t?String((new Date).getMinutes().valueOf()).padStart(2,"0"):"CURRENT_SECOND"===t?String((new Date).getSeconds().valueOf()).padStart(2,"0"):"CURRENT_DAY_NAME"===t?c.dayNames[(new Date).getDay()]:"CURRENT_DAY_NAME_SHORT"===t?c.dayNamesShort[(new Date).getDay()]:"CURRENT_MONTH_NAME"===t?c.monthNames[(new Date).getMonth()]:"CURRENT_MONTH_NAME_SHORT"===t?c.monthNamesShort[(new Date).getMonth()]:"CURRENT_SECONDS_UNIX"===t?String(Math.floor(Date.now()/1e3)):void 0}}t.TimeBasedVariableResolver=c,c.dayNames=[i.localize(0,null),i.localize(1,null),i.localize(2,null),i.localize(3,null),i.localize(4,null),i.localize(5,null),i.localize(6,null)], +c.dayNamesShort=[i.localize(7,null),i.localize(8,null),i.localize(9,null),i.localize(10,null),i.localize(11,null),i.localize(12,null),i.localize(13,null)],c.monthNames=[i.localize(14,null),i.localize(15,null),i.localize(16,null),i.localize(17,null),i.localize(18,null),i.localize(19,null),i.localize(20,null),i.localize(21,null),i.localize(22,null),i.localize(23,null),i.localize(24,null),i.localize(25,null)],c.monthNamesShort=[i.localize(26,null),i.localize(27,null),i.localize(28,null),i.localize(29,null),i.localize(30,null),i.localize(31,null),i.localize(32,null),i.localize(33,null),i.localize(34,null),i.localize(35,null),i.localize(36,null),i.localize(37,null)];t.WorkspaceBasedVariableResolver=class{constructor(e){this._workspaceService=e}resolve(e){if(!this._workspaceService)return;const t=l.toWorkspaceIdentifier(this._workspaceService.getWorkspace());return t?"WORKSPACE_NAME"===e.name?this._resolveWorkspaceName(t):"WORKSPACE_FOLDER"===e.name?this._resoveWorkspacePath(t):void 0:void 0} +_resolveWorkspaceName(e){if(l.isSingleFolderWorkspaceIdentifier(e))return n.basename(e.path);let t=n.basename(e.configPath.path);return t.endsWith(l.WORKSPACE_EXTENSION)&&(t=t.substr(0,t.length-l.WORKSPACE_EXTENSION.length-1)),t}_resoveWorkspacePath(e){if(l.isSingleFolderWorkspaceIdentifier(e))return d.normalizeDriveLetter(e.fsPath);let t=n.basename(e.configPath.path),i=e.configPath.fsPath;return i.endsWith(t)&&(i=i.substr(0,i.length-t.length-1)),i?d.normalizeDriveLetter(i):"/"}};t.RandomBasedVariableResolver=class{resolve(e){const{name:t}=e;return"RANDOM"===t?Math.random().toString().slice(-6):"RANDOM_HEX"===t?Math.random().toString(16).slice(-6):void 0}}})),define(t[653],i([0,1,19,2,8,60,3,20,31,180,10,125,652,14,21,132,343]),(function(e,t,i,n,o,s,r,a,l,d,c,h,u,g,p,m){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SnippetSession=t.OneSnippet=void 0,g.registerThemingParticipant((e,t)=>{function i(t){const i=e.getColor(t);return i?i.toString():"transparent"} +t.addRule(`.monaco-editor .snippet-placeholder { background-color: ${i(p.snippetTabstopHighlightBackground)}; outline-color: ${i(p.snippetTabstopHighlightBorder)}; }`),t.addRule(`.monaco-editor .finish-snippet-placeholder { background-color: ${i(p.snippetFinalTabstopHighlightBackground)}; outline-color: ${i(p.snippetFinalTabstopHighlightBorder)}; }`)});class f{constructor(e,t,n){this._nestingLevel=1,this._editor=e,this._snippet=t,this._offset=n,this._placeholderGroups=i.groupBy(t.placeholders,h.Placeholder.compareByIndex),this._placeholderGroupsIdx=-1}dispose(){this._placeholderDecorations&&this._editor.deltaDecorations([...this._placeholderDecorations.values()],[]),this._placeholderGroups.length=0}_initDecorations(){if(this._placeholderDecorations)return;this._placeholderDecorations=new Map;const e=this._editor.getModel();this._editor.changeDecorations(t=>{for(const i of this._snippet.placeholders){ +const n=this._snippet.offset(i),o=this._snippet.fullLen(i),s=r.Range.fromPositions(e.getPositionAt(this._offset+n),e.getPositionAt(this._offset+n+o)),a=i.isFinalTabstop?f._decor.inactiveFinal:f._decor.inactive,l=t.addDecoration(s,a);this._placeholderDecorations.set(i,l)}})}move(e){if(!this._editor.hasModel())return[];if(this._initDecorations(),this._placeholderGroupsIdx>=0){let e=[];for(const t of this._placeholderGroups[this._placeholderGroupsIdx])if(t.transform){const i=this._placeholderDecorations.get(t),n=this._editor.getModel().getDecorationRange(i),o=this._editor.getModel().getValueInRange(n);e.push(s.EditOperation.replaceMove(n,t.transform.resolve(o)))}e.length>0&&this._editor.executeEdits("snippet.placeholderTransform",e)}let t=!1;!0===e&&this._placeholderGroupsIdx0&&(this._placeholderGroupsIdx-=1,t=!0);const i=this._editor.getModel().changeDecorations(e=>{const i=new Set,n=[] +;for(const o of this._placeholderGroups[this._placeholderGroupsIdx]){const s=this._placeholderDecorations.get(o),r=this._editor.getModel().getDecorationRange(s);n.push(new a.Selection(r.startLineNumber,r.startColumn,r.endLineNumber,r.endColumn)),t=t&&this._hasPlaceholderBeenCollapsed(o),e.changeDecorationOptions(s,o.isFinalTabstop?f._decor.activeFinal:f._decor.active),i.add(o);for(const t of this._snippet.enclosingPlaceholders(o)){const n=this._placeholderDecorations.get(t);e.changeDecorationOptions(n,t.isFinalTabstop?f._decor.activeFinal:f._decor.active),i.add(t)}}for(const[t,n]of this._placeholderDecorations)i.has(t)||e.changeDecorationOptions(n,t.isFinalTabstop?f._decor.inactiveFinal:f._decor.inactive);return n});return t?this.move(e):null!=i?i:[]}_hasPlaceholderBeenCollapsed(e){let t=e;for(;t;){if(t instanceof h.Placeholder){const e=this._placeholderDecorations.get(t);if(this._editor.getModel().getDecorationRange(e).isEmpty()&&t.toString().length>0)return!0}t=t.parent}return!1}get isAtFirstPlaceholder(){ +return this._placeholderGroupsIdx<=0||0===this._placeholderGroups.length}get isAtLastPlaceholder(){return this._placeholderGroupsIdx===this._placeholderGroups.length-1}get hasPlaceholder(){return this._snippet.placeholders.length>0}computePossibleSelections(){const e=new Map;for(const t of this._placeholderGroups){let i;for(const n of t){if(n.isFinalTabstop)break;i||(i=[],e.set(n.index,i));const t=this._placeholderDecorations.get(n),o=this._editor.getModel().getDecorationRange(t);if(!o){e.delete(n.index);break}i.push(o)}}return e}get choice(){return this._placeholderGroups[this._placeholderGroupsIdx][0].choice}merge(e){const t=this._editor.getModel();this._nestingLevel*=10,this._editor.changeDecorations(n=>{for(const i of this._placeholderGroups[this._placeholderGroupsIdx]){const o=e.shift();console.assert(!o._placeholderDecorations);const s=o._snippet.placeholderInfo.last.index +;for(const e of o._snippet.placeholderInfo.all)e.isFinalTabstop?e.index=i.index+(s+1)/this._nestingLevel:e.index=i.index+e.index/this._nestingLevel;this._snippet.replace(i,o._snippet.children);const a=this._placeholderDecorations.get(i);n.removeDecoration(a),this._placeholderDecorations.delete(i);for(const e of o._snippet.placeholders){const i=o._snippet.offset(e),s=o._snippet.fullLen(e),a=r.Range.fromPositions(t.getPositionAt(o._offset+i),t.getPositionAt(o._offset+i+s)),l=n.addDecoration(a,f._decor.inactive);this._placeholderDecorations.set(e,l)}}this._placeholderGroups=i.groupBy(this._snippet.placeholders,h.Placeholder.compareByIndex)})}}t.OneSnippet=f,f._decor={active:l.ModelDecorationOptions.register({stickiness:0,className:"snippet-placeholder"}),inactive:l.ModelDecorationOptions.register({stickiness:1,className:"snippet-placeholder"}),activeFinal:l.ModelDecorationOptions.register({stickiness:1,className:"finish-snippet-placeholder"}),inactiveFinal:l.ModelDecorationOptions.register({stickiness:1, +className:"finish-snippet-placeholder"})};const _={overwriteBefore:0,overwriteAfter:0,adjustWhitespace:!0,clipboardText:void 0,overtypingCapturer:void 0};class v{constructor(e,t,i=_){this._templateMerges=[],this._snippets=[],this._editor=e,this._template=t,this._options=i}static adjustWhitespace(e,t,i,n,s){const r=e.getLineContent(t.lineNumber),a=o.getLeadingWhitespace(r,0,t.column-1);i.walk(t=>{if(t instanceof h.Text&&!(t.parent instanceof h.Choice)){const i=t.value.split(/\r\n|\r|\n/);if(n)for(let t=1;te.get(d.IWorkspaceContextService,c.optional)),S=e.invokeWithinContext(e=>new u.ModelBasedVariableResolver(e.get(m.ILabelService,c.optional),C)),w=()=>l;let y=0,E=C.getValueInRange(v.adjustSelection(C,e.getSelection(),i,0)),L=C.getValueInRange(v.adjustSelection(C,e.getSelection(),0,n)),x=C.getLineFirstNonWhitespaceColumn(e.getSelection().positionLineNumber);const D=e.getSelections().map((e,t)=>({selection:e,idx:t})).sort((e,t)=>r.Range.compareRangesUsingStarts(e.selection,t.selection));for(const{selection:r,idx:l}of D){let d=v.adjustSelection(C,r,i,0),c=v.adjustSelection(C,r,0,n);E!==C.getValueInRange(d)&&(d=r),L!==C.getValueInRange(c)&&(c=r);const m=r.setStartPosition(d.startLineNumber,d.startColumn).setEndPosition(c.endLineNumber,c.endColumn),k=(new h.SnippetParser).parse(t,!0,o),N=m.getStartPosition() +;v.adjustWhitespace(C,N,k,a||l>0&&x!==C.getLineFirstNonWhitespaceColumn(r.positionLineNumber),!0),k.resolveVariables(new u.CompositeSnippetVariableResolver([S,new u.ClipboardBasedVariableResolver(w,l,D.length,"spread"===e.getOption(62)),new u.SelectionBasedVariableResolver(C,r,l,g),new u.CommentBasedVariableResolver(C,r),new u.TimeBasedVariableResolver,new u.WorkspaceBasedVariableResolver(b),new u.RandomBasedVariableResolver]));const I=C.getOffsetAt(N)+y;y+=k.toString().length-C.getValueLengthInRange(m),p[l]=s.EditOperation.replace(m,k.toString()),p[l].identifier={major:l,minor:0},_[l]=new f(e,k,I)}return{edits:p,snippets:_}}dispose(){n.dispose(this._snippets)}_logInfo(){return`template="${this._template}", merged_templates="${this._templateMerges.join(" -> ")}"`}insert(){if(!this._editor.hasModel())return +;const{edits:e,snippets:t}=v.createEditsAndSnippets(this._editor,this._template,this._options.overwriteBefore,this._options.overwriteAfter,!1,this._options.adjustWhitespace,this._options.clipboardText,this._options.overtypingCapturer);this._snippets=t,this._editor.executeEdits("snippet",e,e=>this._snippets[0].hasPlaceholder?this._move(!0):e.filter(e=>!!e.identifier).map(e=>a.Selection.fromPositions(e.range.getEndPosition()))),this._editor.revealRange(this._editor.getSelections()[0])}merge(e,t=_){if(!this._editor.hasModel())return;this._templateMerges.push([this._snippets[0]._nestingLevel,this._snippets[0]._placeholderGroupsIdx,e]);const{edits:i,snippets:n}=v.createEditsAndSnippets(this._editor,e,t.overwriteBefore,t.overwriteAfter,!0,t.adjustWhitespace,t.clipboardText,t.overtypingCapturer);this._editor.executeEdits("snippet",i,e=>{for(const e of this._snippets)e.merge(n);return console.assert(0===n.length), +this._snippets[0].hasPlaceholder?this._move(void 0):e.filter(e=>!!e.identifier).map(e=>a.Selection.fromPositions(e.range.getEndPosition()))})}next(){const e=this._move(!0);this._editor.setSelections(e),this._editor.revealPositionInCenterIfOutsideViewport(e[0].getPosition())}prev(){const e=this._move(!1);this._editor.setSelections(e),this._editor.revealPositionInCenterIfOutsideViewport(e[0].getPosition())}_move(e){const t=[];for(const i of this._snippets){const n=i.move(e);t.push(...n)}return t}get isAtFirstPlaceholder(){return this._snippets[0].isAtFirstPlaceholder}get isAtLastPlaceholder(){return this._snippets[0].isAtLastPlaceholder}get hasPlaceholder(){return this._snippets[0].hasPlaceholder}get choice(){return this._snippets[0].choice}isSelectionWithinPlaceholders(){if(!this.hasPlaceholder)return!1;const e=this._editor.getSelections();if(e.length{e.push(...n.get(t))})}e.sort(r.Range.compareRangesUsingStarts);for(let[i,n]of t)if(n.length===e.length){n.sort(r.Range.compareRangesUsingStarts);for(let o=0;o0}}t.SnippetSession=v})),define(t[182],i([0,1,2,11,3,20,22,137,17,81,653]),(function(e,t,i,n,o,s,r,d,c,h,u){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SnippetController2=void 0;const g={overwriteBefore:0,overwriteAfter:0,undoStopBefore:!0,undoStopAfter:!0,adjustWhitespace:!0,clipboardText:void 0,overtypingCapturer:void 0};let p=class e{constructor(t,n,o){this._editor=t,this._logService=n,this._snippetListener=new i.DisposableStore,this._modelVersionId=-1,this._inSnippet=e.InSnippetMode.bindTo(o),this._hasNextTabstop=e.HasNextTabstop.bindTo(o),this._hasPrevTabstop=e.HasPrevTabstop.bindTo(o)}static get(t){ +return t.getContribution(e.ID)}dispose(){this._inSnippet.reset(),this._hasPrevTabstop.reset(),this._hasNextTabstop.reset(),i.dispose(this._session),this._snippetListener.dispose()}insert(e,t){try{this._doInsert(e,void 0===t?g:Object.assign(Object.assign({},g),t))}catch(t){this.cancel(),this._logService.error(t),this._logService.error("snippet_error"),this._logService.error("insert_template=",e),this._logService.error("existing_template=",this._session?this._session._logInfo():"")}}_doInsert(e,t){this._editor.hasModel()&&(this._snippetListener.clear(),t.undoStopBefore&&this._editor.getModel().pushStackElement(),this._session?this._session.merge(e,t):(this._modelVersionId=this._editor.getModel().getAlternativeVersionId(),this._session=new u.SnippetSession(this._editor,e,t),this._session.insert()),t.undoStopAfter&&this._editor.getModel().pushStackElement(),this._updateState(),this._snippetListener.add(this._editor.onDidChangeModelContent(e=>e.isFlush&&this.cancel())), +this._snippetListener.add(this._editor.onDidChangeModel(()=>this.cancel())),this._snippetListener.add(this._editor.onDidChangeCursorSelection(()=>this._updateState())))}_updateState(){if(this._session&&this._editor.hasModel()){if(this._modelVersionId===this._editor.getModel().getAlternativeVersionId())return this.cancel();if(!this._session.hasPlaceholder)return this.cancel();if(this._session.isAtLastPlaceholder||!this._session.isSelectionWithinPlaceholders())return this.cancel();this._inSnippet.set(!0),this._hasPrevTabstop.set(!this._session.isAtFirstPlaceholder),this._hasNextTabstop.set(!this._session.isAtLastPlaceholder),this._handleChoice()}}_handleChoice(){if(!this._session||!this._editor.hasModel())return void(this._currentChoice=void 0);const{choice:e}=this._session;if(e){if(this._currentChoice!==e){this._currentChoice=e,this._editor.setSelections(this._editor.getSelections().map(e=>s.Selection.fromPositions(e.getStartPosition())));const[t]=e.options +;d.showSimpleSuggestions(this._editor,e.options.map((e,i)=>({kind:13,label:e.value,insertText:e.value,sortText:"a".repeat(i+1),range:o.Range.fromPositions(this._editor.getPosition(),this._editor.getPosition().delta(0,t.value.length))})))}}else this._currentChoice=void 0}finish(){for(;this._inSnippet.get();)this.next()}cancel(e=!1){this._inSnippet.reset(),this._hasPrevTabstop.reset(),this._hasNextTabstop.reset(),this._snippetListener.clear(),i.dispose(this._session),this._session=void 0,this._modelVersionId=-1,e&&this._editor.setSelections([this._editor.getSelection()])}prev(){this._session&&this._session.prev(),this._updateState()}next(){this._session&&this._session.next(),this._updateState()}isInSnippet(){return Boolean(this._inSnippet.get())}};p.ID="snippetController2",p.InSnippetMode=new c.RawContextKey("inSnippetMode",!1),p.HasNextTabstop=new c.RawContextKey("hasNextTabstop",!1),p.HasPrevTabstop=new c.RawContextKey("hasPrevTabstop",!1),p=a([l(1,h.ILogService),l(2,c.IContextKeyService)],p), +t.SnippetController2=p,n.registerEditorContribution(p.ID,p);const m=n.EditorCommand.bindToContribution(p.get);n.registerEditorCommand(new m({id:"jumpToNextSnippetPlaceholder",precondition:c.ContextKeyExpr.and(p.InSnippetMode,p.HasNextTabstop),handler:e=>e.next(),kbOpts:{weight:130,kbExpr:r.EditorContextKeys.editorTextFocus,primary:2}})),n.registerEditorCommand(new m({id:"jumpToPrevSnippetPlaceholder",precondition:c.ContextKeyExpr.and(p.InSnippetMode,p.HasPrevTabstop),handler:e=>e.prev(),kbOpts:{weight:130,kbExpr:r.EditorContextKeys.editorTextFocus,primary:1026}})),n.registerEditorCommand(new m({id:"leaveSnippet",precondition:p.InSnippetMode,handler:e=>e.cancel(!0),kbOpts:{weight:130,kbExpr:r.EditorContextKeys.editorTextFocus,primary:9,secondary:[1033]}})),n.registerEditorCommand(new m({id:"acceptSnippet",precondition:p.InSnippetMode,handler:e=>e.finish()}))})),define(t[654],i([0,1,19,15,12,4,2,20,18,402,137,182,25,405,8]),(function(e,t,i,n,o,s,a,l,d,c,h,u,g,p,m){"use strict" +;Object.defineProperty(t,"__esModule",{value:!0}),t.SuggestModel=t.LineContext=void 0;class f{constructor(e,t,i,n){this.leadingLineContent=e.getLineContent(t.lineNumber).substr(0,t.column-1),this.leadingWord=e.getWordUntilPosition(t),this.lineNumber=t.lineNumber,this.column=t.column,this.auto=i,this.shy=n}static shouldAutoTrigger(e){if(!e.hasModel())return!1;const t=e.getModel(),i=e.getPosition();t.tokenizeIfCheap(i.lineNumber);const n=t.getWordAtPosition(i);return!!n&&(n.endColumn===i.column&&!!isNaN(Number(n.word)))}}t.LineContext=f;class _{constructor(e,t,i){this._editor=e,this._editorWorkerService=t,this._clipboardService=i,this._toDispose=new a.DisposableStore,this._quickSuggestDelay=10,this._triggerCharacterListener=new a.DisposableStore,this._triggerQuickSuggest=new n.TimeoutTimer,this._state=0,this._completionDisposables=new a.DisposableStore,this._onDidCancel=new s.Emitter,this._onDidTrigger=new s.Emitter,this._onDidSuggest=new s.Emitter,this.onDidCancel=this._onDidCancel.event, +this.onDidTrigger=this._onDidTrigger.event,this.onDidSuggest=this._onDidSuggest.event,this._currentSelection=this._editor.getSelection()||new l.Selection(1,1,1,1),this._toDispose.add(this._editor.onDidChangeModel(()=>{this._updateTriggerCharacters(),this.cancel()})),this._toDispose.add(this._editor.onDidChangeModelLanguage(()=>{this._updateTriggerCharacters(),this.cancel()})),this._toDispose.add(this._editor.onDidChangeConfiguration(()=>{this._updateTriggerCharacters(),this._updateQuickSuggest()})),this._toDispose.add(d.CompletionProviderRegistry.onDidChange(()=>{this._updateTriggerCharacters(),this._updateActiveSuggestSession()})),this._toDispose.add(this._editor.onDidChangeCursorSelection(e=>{this._onCursorChange(e)}));let o=!1;this._toDispose.add(this._editor.onDidCompositionStart(()=>{o=!0})),this._toDispose.add(this._editor.onDidCompositionEnd(()=>{o=!1,this._refilterCompletionItems()})),this._toDispose.add(this._editor.onDidChangeModelContent(()=>{o||this._refilterCompletionItems()})), +this._updateTriggerCharacters(),this._updateQuickSuggest()}dispose(){a.dispose(this._triggerCharacterListener),a.dispose([this._onDidCancel,this._onDidSuggest,this._onDidTrigger,this._triggerQuickSuggest]),this._toDispose.dispose(),this._completionDisposables.dispose(),this.cancel()}_updateQuickSuggest(){this._quickSuggestDelay=this._editor.getOption(71),(isNaN(this._quickSuggestDelay)||!this._quickSuggestDelay&&0!==this._quickSuggestDelay||this._quickSuggestDelay<0)&&(this._quickSuggestDelay=10)}_updateTriggerCharacters(){if(this._triggerCharacterListener.clear(),this._editor.getOption(72)||!this._editor.hasModel()||!this._editor.getOption(99))return;const e=new Map;for(const t of d.CompletionProviderRegistry.all(this._editor.getModel()))for(const i of t.triggerCharacters||[]){let n=e.get(i);n||((n=new Set).add(h.getSnippetSuggestSupport()),e.set(i,n)),n.add(t)}const t=t=>{var i;if(!t){const e=this._editor.getPosition();t=this._editor.getModel().getLineContent(e.lineNumber).substr(0,e.column-1)}let n="" +;m.isLowSurrogate(t.charCodeAt(t.length-1))?m.isHighSurrogate(t.charCodeAt(t.length-2))&&(n=t.substr(t.length-2)):n=t.charAt(t.length-1);const o=e.get(n);if(o){const e=null===(i=this._completionModel)||void 0===i?void 0:i.adopt(o);this.trigger({auto:!0,shy:!1,triggerCharacter:n},Boolean(this._completionModel),o,e)}};this._triggerCharacterListener.add(this._editor.onDidType(t)),this._triggerCharacterListener.add(this._editor.onDidCompositionEnd(t))}get state(){return this._state}cancel(e=!1){0!==this._state&&(this._triggerQuickSuggest.cancel(),this._requestToken&&(this._requestToken.cancel(),this._requestToken=void 0),this._state=0,this._completionModel=void 0,this._context=void 0,this._onDidCancel.fire({retrigger:e}))}clear(){this._completionDisposables.clear()}_updateActiveSuggestSession(){0!==this._state&&(this._editor.hasModel()&&d.CompletionProviderRegistry.has(this._editor.getModel())?this.trigger({auto:2===this._state,shy:!1},!0):this.cancel())}_onCursorChange(e){if(!this._editor.hasModel())return +;const t=this._editor.getModel(),i=this._currentSelection;if(this._currentSelection=this._editor.getSelection(),!e.selection.isEmpty()||0!==e.reason||"keyboard"!==e.source&&"deleteLeft"!==e.source)this.cancel();else if(d.CompletionProviderRegistry.has(t)&&0===this._state){if(!1===this._editor.getOption(70))return;if(!i.containsRange(this._currentSelection)&&!i.getEndPosition().isBeforeOrEqual(this._currentSelection.getPosition()))return;if(this._editor.getOption(96).snippetsPreventQuickSuggestions&&u.SnippetController2.get(this._editor).isInSnippet())return;this.cancel(),this._triggerQuickSuggest.cancelAndSet(()=>{if(0!==this._state)return;if(!f.shouldAutoTrigger(this._editor))return;if(!this._editor.hasModel())return;const e=this._editor.getModel(),t=this._editor.getPosition(),i=this._editor.getOption(70);if(!1!==i){if(!0===i);else{e.tokenizeIfCheap(t.lineNumber);const n=e.getLineTokens(t.lineNumber),o=n.getStandardTokenType(n.findTokenIndexAtOffset(Math.max(t.column-1-1,0))) +;if(!(i.other&&0===o||i.comments&&1===o||i.strings&&2===o))return}this.trigger({auto:!0,shy:!1})}},this._quickSuggestDelay)}}_refilterCompletionItems(){Promise.resolve().then(()=>{if(0===this._state)return;if(!this._editor.hasModel())return;const e=this._editor.getModel(),t=this._editor.getPosition(),i=new f(e,t,2===this._state,!1);this._onNewContext(i)})}trigger(e,t=!1,n,s){var l;if(!this._editor.hasModel())return;const d=this._editor.getModel(),u=e.auto,m=new f(d,this._editor.getPosition(),u,e.shy);this.cancel(t),this._state=u?2:1,this._onDidTrigger.fire({auto:u,shy:e.shy,position:this._editor.getPosition()}),this._context=m;let v={triggerKind:null!==(l=e.triggerKind)&&void 0!==l?l:0};e.triggerCharacter&&(v={triggerKind:1,triggerCharacter:e.triggerCharacter}),this._requestToken=new g.CancellationTokenSource;const C=this._editor.getOption(93);let b=1;switch(C){case"top":b=0;break;case"bottom":b=2} +let S=_._createItemKindFilter(this._editor),w=p.WordDistance.create(this._editorWorkerService,this._editor),y=h.provideSuggestionItems(d,this._editor.getPosition(),new h.CompletionOptions(b,S,n),v,this._requestToken.token);Promise.all([y,w]).then(([t,n])=>r(this,void 0,void 0,(function*(){if(a.dispose(this._requestToken),0===this._state)return;if(!this._editor.hasModel())return;let o;(t.needsClipboard||i.isNonEmptyArray(s))&&(o=yield this._clipboardService.readText());const r=this._editor.getModel();let l=t.items;if(i.isNonEmptyArray(s)){const e=h.getSuggestionComparator(b);l=l.concat(s).sort(e)}const d=new f(r,this._editor.getPosition(),u,e.shy);this._completionModel=new c.CompletionModel(l,this._context.column,{leadingLineContent:d.leadingLineContent,characterCountDelta:d.column-this._context.column},n,this._editor.getOption(96),this._editor.getOption(93),o),this._completionDisposables.add(t.dispoables),this._onNewContext(d)}))).catch(o.onUnexpectedError)}static _createItemKindFilter(e){const t=new Set +;"none"===e.getOption(93)&&t.add(27);const i=e.getOption(96);return i.showMethods||t.add(0),i.showFunctions||t.add(1),i.showConstructors||t.add(2),i.showFields||t.add(3),i.showVariables||t.add(4),i.showClasses||t.add(5),i.showStructs||t.add(6),i.showInterfaces||t.add(7),i.showModules||t.add(8),i.showProperties||t.add(9),i.showEvents||t.add(10),i.showOperators||t.add(11),i.showUnits||t.add(12),i.showValues||t.add(13),i.showConstants||t.add(14),i.showEnums||t.add(15),i.showEnumMembers||t.add(16),i.showKeywords||t.add(17),i.showWords||t.add(18),i.showColors||t.add(19),i.showFiles||t.add(20),i.showReferences||t.add(21),i.showColors||t.add(22),i.showFolders||t.add(23),i.showTypeParameters||t.add(24),i.showSnippets||t.add(27),i.showUsers||t.add(25),i.showIssues||t.add(26),t}_onNewContext(e){if(this._context)if(e.lineNumber===this._context.lineNumber){if(e.leadingWord.startColumnthis._context.leadingWord.startColumn){const e=new Set(d.CompletionProviderRegistry.all(this._editor.getModel()));this._completionModel.allProvider.forEach(t=>e.delete(t));const t=this._completionModel.adopt(new Set);this.trigger({auto:this._context.auto,shy:!1},!0,e,t)}else if(e.column>this._context.column&&this._completionModel.incomplete.size>0&&0!==e.leadingWord.word.length){const{incomplete:e}=this._completionModel,t=this._completionModel.adopt(e);this.trigger({auto:2===this._state,shy:!1,triggerKind:2},!0,e,t)}else{let t=this._completionModel.lineContext,i=!1;if(this._completionModel.lineContext={leadingLineContent:e.leadingLineContent,characterCountDelta:e.column-this._context.column},0===this._completionModel.items.length){if(f.shouldAutoTrigger(this._editor)&&this._context.leadingWord.endColumn0)&&0===e.leadingWord.word.length)return void this.cancel()}this._onDidSuggest.fire({completionModel:this._completionModel,auto:this._context.auto,shy:this._context.shy,isFrozen:i})}}else this.cancel()}}t.SuggestModel=_})),define(t[655],i([0,1,48,19,12,39,2,68,11,60,3,22,182,125,554,490,28,17,10,83,137,526,654,623,527,4,72,15,23,403,404,13,16,33,25,81,111,80]),(function(e,t,i,n,o,s,r,d,c,h,u,g,p,m,f,_,v,C,b,S,w,y,E,L,x,D,k,N,I,M,R,T,O,A,P,F,W,B){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TriggerSuggestAction=t.SuggestController=void 0;class V{constructor(e,t){if(this._model=e,this._position=t,e.getLineMaxColumn(t.lineNumber)!==t.column){const i=e.getOffsetAt(t),n=e.getPositionAt(i+1);this._marker=e.deltaDecorations([],[{range:u.Range.fromPositions(t,n),options:{stickiness:1}}])}}dispose(){ +this._marker&&!this._model.isDisposed()&&this._model.deltaDecorations(this._marker,[])}delta(e){if(this._model.isDisposed()||this._position.lineNumber!==e.lineNumber)return 0;if(this._marker){const t=this._model.getDecorationRange(this._marker[0]);return this._model.getOffsetAt(t.getStartPosition())-this._model.getOffsetAt(e)}return this._model.getLineMaxColumn(e.lineNumber)-e.column}}let z=class e{constructor(e,t,i,n,o,a,l,d){this._memoryService=i,this._commandService=n,this._contextKeyService=o,this._instantiationService=a,this._logService=l,this._lineSuffix=new r.MutableDisposable,this._toDispose=new r.DisposableStore,this.editor=e,this.model=new E.SuggestModel(this.editor,t,d),this.widget=this._toDispose.add(new N.IdleValue(()=>{const e=this._instantiationService.createInstance(L.SuggestWidget,this.editor);this._toDispose.add(e),this._toDispose.add(e.onDidSelect(e=>this._insertSuggestion(e,0),this));const t=new M.CommitCharacterController(this.editor,e,e=>this._insertSuggestion(e,2)) +;this._toDispose.add(t),this._toDispose.add(this.model.onDidSuggest(e=>{0===e.completionModel.items.length&&t.reset()}));const i=w.Context.MakesTextEdit.bindTo(this._contextKeyService),n=w.Context.HasInsertAndReplaceRange.bindTo(this._contextKeyService),o=w.Context.CanResolve.bindTo(this._contextKeyService);return this._toDispose.add(r.toDisposable(()=>{i.reset(),n.reset(),o.reset()})),this._toDispose.add(e.onDidFocus(({item:e})=>{const t=this.editor.getPosition(),s=e.editStart.column,r=t.column;let a=!0;if(!("smart"!==this.editor.getOption(1)||2!==this.model.state||e.completion.command||e.completion.additionalTextEdits||4&e.completion.insertTextRules||r-s!==e.completion.insertText.length)){a=this.editor.getModel().getValueInRange({startLineNumber:t.lineNumber,startColumn:s,endLineNumber:t.lineNumber,endColumn:r})!==e.completion.insertText}i.set(a),n.set(!T.Position.equals(e.editInsertEnd,e.editReplaceEnd)), +o.set(Boolean(e.provider.resolveCompletionItem)||Boolean(e.completion.documentation)||e.completion.detail!==e.completion.label)})),this._toDispose.add(e.onDetailsKeyDown(e=>{e.toKeybinding().equals(new s.SimpleKeybinding(!0,!1,!1,!1,33))||O.isMacintosh&&e.toKeybinding().equals(new s.SimpleKeybinding(!1,!1,!1,!0,33))?e.stopPropagation():e.toKeybinding().isModifierKey()||this.editor.focus()})),e})),this._overtypingCapturer=this._toDispose.add(new N.IdleValue(()=>this._toDispose.add(new R.OvertypingCapturer(this.editor,this.model)))),this._alternatives=this._toDispose.add(new N.IdleValue(()=>this._toDispose.add(new y.SuggestAlternatives(this.editor,this._contextKeyService)))),this._toDispose.add(a.createInstance(x.WordContextKey,e)),this._toDispose.add(this.model.onDidTrigger(e=>{this.widget.value.showTriggered(e.auto,e.shy?250:50),this._lineSuffix.value=new V(this.editor.getModel(),e.position)})),this._toDispose.add(this.model.onDidSuggest(e=>{if(!e.shy){ +let t=this._memoryService.select(this.editor.getModel(),this.editor.getPosition(),e.completionModel.items);this.widget.value.showSuggestions(e.completionModel,t,e.isFrozen,e.auto)}})),this._toDispose.add(this.model.onDidCancel(e=>{e.retrigger||this.widget.value.hideWidget()})),this._toDispose.add(this.editor.onDidBlurEditorWidget(()=>{this.model.cancel(),this.model.clear()}));let c=w.Context.AcceptSuggestionsOnEnter.bindTo(o),h=()=>{const e=this.editor.getOption(1);c.set("on"===e||"smart"===e)};this._toDispose.add(this.editor.onDidChangeConfiguration(()=>h())),h()}static get(t){return t.getContribution(e.ID)}dispose(){this._alternatives.dispose(),this._toDispose.dispose(),this.widget.dispose(),this.model.dispose(),this._lineSuffix.dispose()}_insertSuggestion(e,t){if(!e||!e.item)return this._alternatives.value.reset(),this.model.cancel(),void this.model.clear();if(!this.editor.hasModel())return;const i=this.editor.getModel(),n=i.getAlternativeVersionId(),{item:s}=e,r=[],a=new P.CancellationTokenSource +;1&t||this.editor.pushUndoStop();const l=this.getOverwriteInfo(s,Boolean(8&t));if(this._memoryService.memorize(i,this.editor.getPosition(),s),Array.isArray(s.completion.additionalTextEdits)){const e=d.StableEditorScrollState.capture(this.editor);this.editor.executeEdits("suggestController.additionalTextEdits.sync",s.completion.additionalTextEdits.map(e=>h.EditOperation.replace(u.Range.lift(e.range),e.text))),e.restoreRelativeVerticalPositionOfCursor(this.editor)}else if(!s.isResolved){const e=new W.StopWatch(!0);let n;const o=i.onDidChangeContent(e=>{if(e.isFlush)return a.cancel(),void o.dispose();for(let t of e.changes){const e=u.Range.getEndPosition(t.range);n&&!T.Position.isBefore(e,n)||(n=e)}});let l=t;t|=2;let c=!1,g=this.editor.onWillType(()=>{g.dispose(),c=!0,2&l||this.editor.pushUndoStop()});r.push(s.resolve(a.token).then(()=>{if(!s.completion.additionalTextEdits||a.token.isCancellationRequested)return!1 +;if(n&&s.completion.additionalTextEdits.some(e=>T.Position.isBefore(n,u.Range.getStartPosition(e.range))))return!1;c&&this.editor.pushUndoStop();const e=d.StableEditorScrollState.capture(this.editor);return this.editor.executeEdits("suggestController.additionalTextEdits.async",s.completion.additionalTextEdits.map(e=>h.EditOperation.replace(u.Range.lift(e.range),e.text))),e.restoreRelativeVerticalPositionOfCursor(this.editor),!c&&2&l||this.editor.pushUndoStop(),!0}).then(t=>{this._logService.trace("[suggest] async resolving of edits DONE (ms, applied?)",e.elapsed(),t),o.dispose(),g.dispose()}))}let{insertText:c}=s.completion;4&s.completion.insertTextRules||(c=m.SnippetParser.escape(c)),p.SnippetController2.get(this.editor).insert(c,{overwriteBefore:l.overwriteBefore,overwriteAfter:l.overwriteAfter,undoStopBefore:!1,undoStopAfter:!1,adjustWhitespace:!(1&s.completion.insertTextRules),clipboardText:e.model.clipboardText,overtypingCapturer:this._overtypingCapturer.value}),2&t||this.editor.pushUndoStop(), +s.completion.command?s.completion.command.id===H.id?this.model.trigger({auto:!0,shy:!1},!0):(r.push(this._commandService.executeCommand(s.completion.command.id,...s.completion.command.arguments?[...s.completion.command.arguments]:[]).catch(o.onUnexpectedError)),this.model.cancel()):this.model.cancel(),4&t&&this._alternatives.value.set(e,e=>{for(a.cancel();i.canUndo();){n!==i.getAlternativeVersionId()&&i.undo(),this._insertSuggestion(e,3|(8&t?8:0));break}}),this._alertCompletionItem(s),Promise.all(r).finally(()=>{this.model.clear(),a.dispose()})}getOverwriteInfo(e,t){I.assertType(this.editor.hasModel());let i="replace"===this.editor.getOption(96).insertMode;t&&(i=!i);const n=e.position.column-e.editStart.column,o=(i?e.editReplaceEnd.column:e.editInsertEnd.column)-e.position.column;return{overwriteBefore:n+(this.editor.getPosition().column-e.position.column),overwriteAfter:o+(this._lineSuffix.value?this._lineSuffix.value.delta(this.editor.getPosition()):0)}}_alertCompletionItem({completion:e}){ +const t="string"==typeof e.label?e.label:e.label.name;if(n.isNonEmptyArray(e.additionalTextEdits)){let n=_.localize(0,null,t,e.additionalTextEdits.length);i.alert(n)}}triggerSuggest(e){this.editor.hasModel()&&(this.model.trigger({auto:!1,shy:!1},!1,e),this.editor.revealLine(this.editor.getPosition().lineNumber,0),this.editor.focus())}triggerSuggestAndAcceptBest(e){if(!this.editor.hasModel())return;const t=this.editor.getPosition(),i=()=>{t.equals(this.editor.getPosition())&&this._commandService.executeCommand(e.fallback)},n=e=>{if(4&e.completion.insertTextRules||e.completion.additionalTextEdits)return!0;const t=this.editor.getPosition(),i=e.editStart.column,n=t.column;return n-i!==e.completion.insertText.length||this.editor.getModel().getValueInRange({startLineNumber:t.lineNumber,startColumn:i,endLineNumber:t.lineNumber,endColumn:n})!==e.completion.insertText};D.Event.once(this.model.onDidTrigger)(e=>{let t=[];D.Event.any(this.model.onDidTrigger,this.model.onDidCancel)(()=>{r.dispose(t),i()},void 0,t), +this.model.onDidSuggest(({completionModel:e})=>{if(r.dispose(t),0===e.items.length)return void i();const o=this._memoryService.select(this.editor.getModel(),this.editor.getPosition(),e.items),s=e.items[o];n(s)?(this.editor.pushUndoStop(),this._insertSuggestion({index:o,item:s,model:e},7)):i()},void 0,t)}),this.model.trigger({auto:!1,shy:!0}),this.editor.revealLine(t.lineNumber,0),this.editor.focus()}acceptSelectedSuggestion(e,t){const i=this.widget.value.getFocusedItem();let n=0;e&&(n|=4),t&&(n|=8),this._insertSuggestion(i,n)}acceptNextSuggestion(){this._alternatives.value.next()}acceptPrevSuggestion(){this._alternatives.value.prev()}cancelSuggestWidget(){this.model.cancel(),this.model.clear(),this.widget.value.hideWidget()}selectNextSuggestion(){this.widget.value.selectNext()}selectNextPageSuggestion(){this.widget.value.selectNextPage()}selectLastSuggestion(){this.widget.value.selectLast()}selectPrevSuggestion(){this.widget.value.selectPrevious()}selectPrevPageSuggestion(){ +this.widget.value.selectPreviousPage()}selectFirstSuggestion(){this.widget.value.selectFirst()}toggleSuggestionDetails(){this.widget.value.toggleDetails()}toggleExplainMode(){this.widget.value.toggleExplainMode()}toggleSuggestionFocus(){this.widget.value.toggleDetailsFocus()}};z.ID="editor.contrib.suggestController",z=a([l(1,k.IEditorWorkerService),l(2,f.ISuggestMemoryService),l(3,v.ICommandService),l(4,C.IContextKeyService),l(5,b.IInstantiationService),l(6,F.ILogService),l(7,B.IClipboardService)],z),t.SuggestController=z;class H extends c.EditorAction{constructor(){super({id:H.id,label:_.localize(1,null),alias:"Trigger Suggest",precondition:C.ContextKeyExpr.and(g.EditorContextKeys.writable,g.EditorContextKeys.hasCompletionItemProvider),kbOpts:{kbExpr:g.EditorContextKeys.textInputFocus,primary:2058,mac:{primary:266,secondary:[521]},weight:100}})}run(e,t){const i=z.get(t);i&&i.triggerSuggest()}}t.TriggerSuggestAction=H,H.id="editor.action.triggerSuggest",c.registerEditorContribution(z.ID,z), +c.registerEditorAction(H);const K=c.EditorCommand.bindToContribution(z.get);c.registerEditorCommand(new K({id:"acceptSelectedSuggestion",precondition:w.Context.Visible,handler(e){e.acceptSelectedSuggestion(!0,!1)}})),S.KeybindingsRegistry.registerKeybindingRule({id:"acceptSelectedSuggestion",when:C.ContextKeyExpr.and(w.Context.Visible,g.EditorContextKeys.textInputFocus),primary:2,weight:190}),S.KeybindingsRegistry.registerKeybindingRule({id:"acceptSelectedSuggestion",when:C.ContextKeyExpr.and(w.Context.Visible,g.EditorContextKeys.textInputFocus,w.Context.AcceptSuggestionsOnEnter,w.Context.MakesTextEdit),primary:3,weight:190}),A.MenuRegistry.appendMenuItem(w.suggestWidgetStatusbarMenu,{command:{id:"acceptSelectedSuggestion",title:_.localize(2,null)},group:"left",order:1,when:w.Context.HasInsertAndReplaceRange.toNegated()}),A.MenuRegistry.appendMenuItem(w.suggestWidgetStatusbarMenu,{command:{id:"acceptSelectedSuggestion",title:_.localize(3,null)},group:"left",order:1, +when:C.ContextKeyExpr.and(w.Context.HasInsertAndReplaceRange,C.ContextKeyExpr.equals("config.editor.suggest.insertMode","insert"))}),A.MenuRegistry.appendMenuItem(w.suggestWidgetStatusbarMenu,{command:{id:"acceptSelectedSuggestion",title:_.localize(4,null)},group:"left",order:1,when:C.ContextKeyExpr.and(w.Context.HasInsertAndReplaceRange,C.ContextKeyExpr.equals("config.editor.suggest.insertMode","replace"))}),c.registerEditorCommand(new K({id:"acceptAlternativeSelectedSuggestion",precondition:C.ContextKeyExpr.and(w.Context.Visible,g.EditorContextKeys.textInputFocus),kbOpts:{weight:190,kbExpr:g.EditorContextKeys.textInputFocus,primary:1027,secondary:[1026]},handler(e){e.acceptSelectedSuggestion(!1,!0)},menuOpts:[{menuId:w.suggestWidgetStatusbarMenu,group:"left",order:2,when:C.ContextKeyExpr.and(w.Context.HasInsertAndReplaceRange,C.ContextKeyExpr.equals("config.editor.suggest.insertMode","insert")),title:_.localize(5,null)},{menuId:w.suggestWidgetStatusbarMenu,group:"left",order:2, +when:C.ContextKeyExpr.and(w.Context.HasInsertAndReplaceRange,C.ContextKeyExpr.equals("config.editor.suggest.insertMode","replace")),title:_.localize(6,null)}]})),v.CommandsRegistry.registerCommandAlias("acceptSelectedSuggestionOnEnter","acceptSelectedSuggestion"),c.registerEditorCommand(new K({id:"hideSuggestWidget",precondition:w.Context.Visible,handler:e=>e.cancelSuggestWidget(),kbOpts:{weight:190,kbExpr:g.EditorContextKeys.textInputFocus,primary:9,secondary:[1033]}})),c.registerEditorCommand(new K({id:"selectNextSuggestion",precondition:C.ContextKeyExpr.and(w.Context.Visible,w.Context.MultipleSuggestions),handler:e=>e.selectNextSuggestion(),kbOpts:{weight:190,kbExpr:g.EditorContextKeys.textInputFocus,primary:18,secondary:[2066],mac:{primary:18,secondary:[2066,300]}}})),c.registerEditorCommand(new K({id:"selectNextPageSuggestion",precondition:C.ContextKeyExpr.and(w.Context.Visible,w.Context.MultipleSuggestions),handler:e=>e.selectNextPageSuggestion(),kbOpts:{weight:190, +kbExpr:g.EditorContextKeys.textInputFocus,primary:12,secondary:[2060]}})),c.registerEditorCommand(new K({id:"selectLastSuggestion",precondition:C.ContextKeyExpr.and(w.Context.Visible,w.Context.MultipleSuggestions),handler:e=>e.selectLastSuggestion()})),c.registerEditorCommand(new K({id:"selectPrevSuggestion",precondition:C.ContextKeyExpr.and(w.Context.Visible,w.Context.MultipleSuggestions),handler:e=>e.selectPrevSuggestion(),kbOpts:{weight:190,kbExpr:g.EditorContextKeys.textInputFocus,primary:16,secondary:[2064],mac:{primary:16,secondary:[2064,302]}}})),c.registerEditorCommand(new K({id:"selectPrevPageSuggestion",precondition:C.ContextKeyExpr.and(w.Context.Visible,w.Context.MultipleSuggestions),handler:e=>e.selectPrevPageSuggestion(),kbOpts:{weight:190,kbExpr:g.EditorContextKeys.textInputFocus,primary:11,secondary:[2059]}})),c.registerEditorCommand(new K({id:"selectFirstSuggestion",precondition:C.ContextKeyExpr.and(w.Context.Visible,w.Context.MultipleSuggestions),handler:e=>e.selectFirstSuggestion()})), +c.registerEditorCommand(new K({id:"toggleSuggestionDetails",precondition:w.Context.Visible,handler:e=>e.toggleSuggestionDetails(),kbOpts:{weight:190,kbExpr:g.EditorContextKeys.textInputFocus,primary:2058,mac:{primary:266}},menuOpts:[{menuId:w.suggestWidgetStatusbarMenu,group:"right",order:1,when:C.ContextKeyExpr.and(w.Context.DetailsVisible,w.Context.CanResolve),title:_.localize(7,null)},{menuId:w.suggestWidgetStatusbarMenu,group:"right",order:1,when:C.ContextKeyExpr.and(w.Context.DetailsVisible.toNegated(),w.Context.CanResolve),title:_.localize(8,null)}]})),c.registerEditorCommand(new K({id:"toggleExplainMode",precondition:w.Context.Visible,handler:e=>e.toggleExplainMode(),kbOpts:{weight:100,primary:2133}})),c.registerEditorCommand(new K({id:"toggleSuggestionFocus",precondition:w.Context.Visible,handler:e=>e.toggleSuggestionFocus(),kbOpts:{weight:190,kbExpr:g.EditorContextKeys.textInputFocus,primary:2570,mac:{primary:778}}})),c.registerEditorCommand(new K({id:"insertBestCompletion", +precondition:C.ContextKeyExpr.and(g.EditorContextKeys.textInputFocus,C.ContextKeyExpr.equals("config.editor.tabCompletion","on"),x.WordContextKey.AtEnd,w.Context.Visible.toNegated(),y.SuggestAlternatives.OtherSuggestions.toNegated(),p.SnippetController2.InSnippetMode.toNegated()),handler:(e,t)=>{e.triggerSuggestAndAcceptBest(I.isObject(t)?Object.assign({fallback:"tab"},t):{fallback:"tab"})},kbOpts:{weight:190,primary:2}})),c.registerEditorCommand(new K({id:"insertNextSuggestion",precondition:C.ContextKeyExpr.and(g.EditorContextKeys.textInputFocus,C.ContextKeyExpr.equals("config.editor.tabCompletion","on"),y.SuggestAlternatives.OtherSuggestions,w.Context.Visible.toNegated(),p.SnippetController2.InSnippetMode.toNegated()),handler:e=>e.acceptNextSuggestion(),kbOpts:{weight:190,kbExpr:g.EditorContextKeys.textInputFocus,primary:2}})),c.registerEditorCommand(new K({id:"insertPrevSuggestion", +precondition:C.ContextKeyExpr.and(g.EditorContextKeys.textInputFocus,C.ContextKeyExpr.equals("config.editor.tabCompletion","on"),y.SuggestAlternatives.OtherSuggestions,w.Context.Visible.toNegated(),p.SnippetController2.InSnippetMode.toNegated()),handler:e=>e.acceptPrevSuggestion(),kbOpts:{weight:190,kbExpr:g.EditorContextKeys.textInputFocus,primary:1026}}))})),define(t[656],i([0,1,175,138,252,206,557,600,558,559,560,615,603,245,564,565,566,567,261,610,568,570,524,259,260,256,639,573,612,574,613,643,617,620,622,576,182,655,577,247,578,640,624,248,579,61,115]),(function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0})}));d=this&&this.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[i]}})}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),c=this&&this.__exportStar||function(e,t){for(var i in e)"default"===i||Object.prototype.hasOwnProperty.call(t,i)||d(t,e,i)} +;define(t[659],i([0,1,650,656,625,580,626,552,627,628,646,641,581]),(function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),c(i,t)}))}).call(this); /*!----------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. - * monaco-typescript version: 2.2.0(c9c77f499b932bffefca447e33c3c556d60e40d7) + * monaco-typescript version: 4.1.1(2dcf85a5e8a63cb3a39a09a317fa99642a892088) * Released under the MIT license * https://github.com/Microsoft/monaco-typescript/blob/master/LICENSE.md *-----------------------------------------------------------------------------*/ -define("vs/language/typescript/src/monaco.contribution",["require","exports","vs/editor/edcore.main"],function(e,t){"use strict";function n(){return new monaco.Promise(function(e,t){r(function(n){n.getTypeScriptWorker().then(e,t)})})}function i(){return new monaco.Promise(function(e,t){r(function(n){n.getJavaScriptWorker().then(e,t)})})}function o(){return{ModuleKind:c,JsxEmit:p,NewLineKind:u,ScriptTarget:g,ModuleResolutionKind:d,typescriptDefaults:S,javascriptDefaults:m,getTypeScriptWorker:n,getJavaScriptWorker:i}}function r(t){e(["vs/language/typescript/src/mode"],t)}Object.defineProperty(t,"__esModule",{value:!0});var a=monaco.Emitter,s=function(){function e(e,t){this._onDidChange=new a,this._extraLibs=Object.create(null),this._workerMaxIdleTime=12e4,this.setCompilerOptions(e),this.setDiagnosticsOptions(t)}return Object.defineProperty(e.prototype,"onDidChange",{get:function(){return this._onDidChange.event},enumerable:!0,configurable:!0}),e.prototype.getExtraLibs=function(){var e=Object.create(null);for(var t in this._extraLibs)e[t]=this._extraLibs[t];return Object.freeze(e)},e.prototype.addExtraLib=function(e,t){var n=this;if("undefined"==typeof t&&(t="ts:extralib-"+Date.now()),this._extraLibs[t])throw new Error(t+" already a extra lib");return this._extraLibs[t]=e,this._onDidChange.fire(this),{dispose:function(){delete n._extraLibs[t]&&n._onDidChange.fire(n)}}},e.prototype.getCompilerOptions=function(){return this._compilerOptions},e.prototype.setCompilerOptions=function(e){this._compilerOptions=e||Object.create(null),this._onDidChange.fire(this)},e.prototype.getDiagnosticsOptions=function(){return this._diagnosticsOptions},e.prototype.setDiagnosticsOptions=function(e){this._diagnosticsOptions=e||Object.create(null),this._onDidChange.fire(this)},e.prototype.setMaximunWorkerIdleTime=function(e){this._workerMaxIdleTime=e},e.prototype.getWorkerMaxIdleTime=function(){return this._workerMaxIdleTime},e.prototype.setEagerModelSync=function(e){this._eagerModelSync=e},e.prototype.getEagerModelSync=function(){return this._eagerModelSync},e}();t.LanguageServiceDefaultsImpl=s;var c;!function(e){e[e.None=0]="None",e[e.CommonJS=1]="CommonJS",e[e.AMD=2]="AMD",e[e.UMD=3]="UMD",e[e.System=4]="System",e[e.ES2015=5]="ES2015"}(c||(c={}));var p;!function(e){e[e.None=0]="None",e[e.Preserve=1]="Preserve",e[e.React=2]="React"}(p||(p={}));var u;!function(e){e[e.CarriageReturnLineFeed=0]="CarriageReturnLineFeed",e[e.LineFeed=1]="LineFeed"}(u||(u={}));var l;!function(e){e[e.Unknown=0]="Unknown",e[e.JS=1]="JS",e[e.JSX=2]="JSX",e[e.TS=3]="TS",e[e.TSX=4]="TSX"}(l||(l={}));var g;!function(e){e[e.ES3=0]="ES3",e[e.ES5=1]="ES5",e[e.ES2015=2]="ES2015",e[e.ES2016=3]="ES2016",e[e.ES2017=4]="ES2017",e[e.ESNext=5]="ESNext",e[e.Latest=5]="Latest"}(g||(g={}));var f;!function(e){e[e.Standard=0]="Standard",e[e.JSX=1]="JSX"}(f||(f={}));var d;!function(e){e[e.Classic=1]="Classic",e[e.NodeJs=2]="NodeJs"}(d||(d={}));var S=new s({allowNonTsExtensions:!0,target:g.Latest},{noSemanticValidation:!1,noSyntaxValidation:!1}),m=new s({allowNonTsExtensions:!0,allowJs:!0,target:g.Latest},{noSemanticValidation:!0,noSyntaxValidation:!1});monaco.languages.typescript=o(),monaco.languages.register({id:"typescript",extensions:[".ts",".tsx"],aliases:["TypeScript","ts","typescript"],mimetypes:["text/typescript"]}),monaco.languages.onLanguage("typescript",function(){r(function(e){return e.setupTypeScript(S)})}),monaco.languages.register({id:"javascript",extensions:[".js",".es6",".jsx"],firstLine:"^#!.*\\bnode",filenames:["jakefile"],aliases:["JavaScript","javascript","js"],mimetypes:["text/javascript"]}),monaco.languages.onLanguage("javascript",function(){r(function(e){return e.setupJavaScript(m)})})}); +define("vs/language/typescript/lib/typescriptServicesMetadata",["require","exports"],(function(t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.typescriptVersion=void 0,e.typescriptVersion="4.0.3"})),define("vs/language/typescript/fillers/monaco-editor-core",['vs/editor/editor.api'],(function(){return self.monaco})),define("vs/language/typescript/monaco.contribution",["require","exports","./lib/typescriptServicesMetadata","./fillers/monaco-editor-core"],(function(t,e,i,n){"use strict";var r,o,s,a,c;Object.defineProperty(e,"__esModule",{value:!0}),e.getJavaScriptWorker=e.getTypeScriptWorker=e.javascriptDefaults=e.typescriptDefaults=e.typescriptVersion=e.ModuleResolutionKind=e.ScriptTarget=e.NewLineKind=e.JsxEmit=e.ModuleKind=void 0,function(t){t[t.None=0]="None",t[t.CommonJS=1]="CommonJS",t[t.AMD=2]="AMD",t[t.UMD=3]="UMD",t[t.System=4]="System",t[t.ES2015=5]="ES2015",t[t.ESNext=99]="ESNext"}(r=e.ModuleKind||(e.ModuleKind={})),function(t){t[t.None=0]="None",t[t.Preserve=1]="Preserve",t[t.React=2]="React",t[t.ReactNative=3]="ReactNative"}(o=e.JsxEmit||(e.JsxEmit={})),function(t){t[t.CarriageReturnLineFeed=0]="CarriageReturnLineFeed",t[t.LineFeed=1]="LineFeed"}(s=e.NewLineKind||(e.NewLineKind={})),function(t){t[t.ES3=0]="ES3",t[t.ES5=1]="ES5",t[t.ES2015=2]="ES2015",t[t.ES2016=3]="ES2016",t[t.ES2017=4]="ES2017",t[t.ES2018=5]="ES2018",t[t.ES2019=6]="ES2019",t[t.ES2020=7]="ES2020",t[t.ESNext=99]="ESNext",t[t.JSON=100]="JSON",t[t.Latest=99]="Latest"}(a=e.ScriptTarget||(e.ScriptTarget={})),function(t){t[t.Classic=1]="Classic",t[t.NodeJs=2]="NodeJs"}(c=e.ModuleResolutionKind||(e.ModuleResolutionKind={}));var p=function(){function t(t,e,i){this._onDidChange=new n.Emitter,this._onDidExtraLibsChange=new n.Emitter,this._extraLibs=Object.create(null),this._removedExtraLibs=Object.create(null),this._eagerModelSync=!1,this.setCompilerOptions(t),this.setDiagnosticsOptions(e),this.setWorkerOptions(i),this._onDidExtraLibsChangeTimeout=-1}return Object.defineProperty(t.prototype,"onDidChange",{get:function(){return this._onDidChange.event},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"onDidExtraLibsChange",{get:function(){return this._onDidExtraLibsChange.event},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"workerOptions",{get:function(){return this._workerOptions},enumerable:!1,configurable:!0}),t.prototype.getExtraLibs=function(){return this._extraLibs},t.prototype.addExtraLib=function(t,e){var i,n=this;if(i=void 0===e?"ts:extralib-"+Math.random().toString(36).substring(2,15):e,this._extraLibs[i]&&this._extraLibs[i].content===t)return{dispose:function(){}};var r=1;return this._removedExtraLibs[i]&&(r=this._removedExtraLibs[i]+1),this._extraLibs[i]&&(r=this._extraLibs[i].version+1),this._extraLibs[i]={content:t,version:r},this._fireOnDidExtraLibsChangeSoon(),{dispose:function(){var t=n._extraLibs[i];t&&t.version===r&&(delete n._extraLibs[i],n._removedExtraLibs[i]=r,n._fireOnDidExtraLibsChangeSoon())}}},t.prototype.setExtraLibs=function(t){for(var e in this._extraLibs)this._removedExtraLibs[e]=this._extraLibs[e].version;if(this._extraLibs=Object.create(null),t&&t.length>0)for(var i=0,n=t;i console.log", weil "log" vor Kurzem abgeschlossen wurde.','Wählen Sie Vorschläge basierend auf früheren Präfixen aus, die diese Vorschläge abgeschlossen haben, z.B. "co -> console" und "con ->" const".',"Steuert, wie Vorschläge bei Anzeige der Vorschlagsliste vorab ausgewählt werden.","Die Tab-Vervollständigung fügt den passendsten Vorschlag ein, wenn auf Tab gedrückt wird.","Tab-Vervollständigungen deaktivieren.",'Codeausschnitte per Tab vervollständigen, wenn die Präfixe übereinstimmen. Funktioniert am besten, wenn "quickSuggestions" deaktiviert sind.',"Tab-Vervollständigungen aktivieren.","Ungewöhnliche Zeilenabschlusszeichen werden ignoriert.","Zum Entfernen ungewöhnlicher Zeilenabschlusszeichen wird eine Eingabeaufforderung angezeigt.","Ungewöhnliche Zeilenabschlusszeichen werden automatisch entfernt.","Entfernen Sie unübliche Zeilenabschlusszeichen, die Probleme verursachen können.","Das Einfügen und Löschen von Leerzeichen erfolgt nach Tabstopps.","Zeichen, die als Worttrennzeichen verwendet werden, wenn wortbezogene Navigationen oder Vorgänge ausgeführt werden.","Zeilenumbrüche erfolgen nie.","Der Zeilenumbruch erfolgt an der Breite des Anzeigebereichs.",'Der Zeilenumbruch erfolgt bei "#editor.wordWrapColumn#".','Der Zeilenumbruch erfolgt beim Mindestanzeigebereich und "#editor.wordWrapColumn".',"Steuert, wie der Zeilenumbruch durchgeführt werden soll.",'Steuert die umschließende Spalte des Editors, wenn "#editor.wordWrap#" den Wert "wordWrapColumn" oder "bounded" aufweist.',"Kein Einzug. Umbrochene Zeilen beginnen bei Spalte 1.","Umbrochene Zeilen erhalten den gleichen Einzug wie das übergeordnete Element.","Umbrochene Zeilen erhalten + 1 Einzug auf das übergeordnete Element.","Umgebrochene Zeilen werden im Vergleich zum übergeordneten Element +2 eingerückt.","Steuert die Einrückung der umbrochenen Zeilen.","Es wird angenommen, dass alle Zeichen gleich breit sind. Dies ist ein schneller Algorithmus, der für Festbreitenschriftarten und bestimmte Alphabete (wie dem lateinischen), bei denen die Glyphen gleich breit sind, korrekt funktioniert.","Delegiert die Berechnung von Umbruchpunkten an den Browser. Dies ist ein langsamer Algorithmus, der bei großen Dateien Code Freezes verursachen kann, aber in allen Fällen korrekt funktioniert.","Steuert den Algorithmus, der Umbruchpunkte berechnet."], +"vs/editor/common/model/editStack":["Eingabe..."],"vs/editor/common/modes/modesRegistry":["Nur-Text"], +"vs/editor/common/standaloneStrings":["Keine Auswahl","Zeile {0}, Spalte {1} ({2} ausgewählt)","Zeile {0}, Spalte {1}","{0} Auswahlen ({1} Zeichen ausgewählt)","{0} Auswahlen",'Die Einstellung "accessibilitySupport" wird jetzt in "on" geändert.',"Die Dokumentationsseite zur Barrierefreiheit des Editors wird geöffnet.","in einem schreibgeschützten Bereich eines Diff-Editors.","in einem Bereich eines Diff-Editors.","in einem schreibgeschützten Code-Editor","in einem Code-Editor","Drücken Sie BEFEHLSTASTE + E, um den Editor für eine optimierte Verwendung mit Sprachausgabe zu konfigurieren.","Drücken Sie STRG + E, um den Editor für eine optimierte Verwendung mit Sprachausgabe zu konfigurieren.","Der Editor ist auf eine optimale Verwendung mit Sprachausgabe konfiguriert.","Der Editor ist so konfiguriert, dass er nie auf die Verwendung mit Sprachausgabe hin optimiert wird. Dies ist zu diesem Zeitpunkt nicht der Fall.","Durch Drücken der TAB-TASTE im aktuellen Editor wird der Fokus in das nächste Element verschoben, das den Fokus erhalten kann. Schalten Sie dieses Verhalten um, indem Sie {0} drücken.","Durch Drücken der TAB-TASTE im aktuellen Editor wird der Fokus in das nächste Element verschoben, das den Fokus erhalten kann. Der {0}-Befehl kann zurzeit nicht durch eine Tastenzuordnung ausgelöst werden.","Durch Drücken der TAB-TASTE im aktuellen Editor wird das Tabstoppzeichen eingefügt. Schalten Sie dieses Verhalten um, indem Sie {0} drücken.","Durch Drücken der TAB-TASTE im aktuellen Editor wird das Tabstoppzeichen eingefügt. Der {0}-Befehl kann zurzeit nicht durch eine Tastenzuordnung ausgelöst werden.","Drücken Sie BEFEHLSTASTE + H, um ein Browserfenster mit weiteren Informationen zur Barrierefreiheit des Editors zu öffnen.","Drücken Sie STRG + H, um ein Browserfenster mit weiteren Informationen zur Barrierefreiheit des Editors zu öffnen.","Sie können diese QuickInfo schließen und durch Drücken von ESC oder UMSCHALT+ESC zum Editor zurückkehren.","Hilfe zur Barrierefreiheit anzeigen","Entwickler: Token überprüfen","Gehe zu Zeile/Spalte...","Alle Anbieter für den Schnellzugriff anzeigen","Befehlspalette","Befehle anzeigen und ausführen","Gehe zu Symbol...","Gehe zu Symbol nach Kategorie...","Editor-Inhalt","Drücken Sie ALT + F1, um die Barrierefreiheitsoptionen aufzurufen.","Zu Design mit hohem Kontrast umschalten","{0} Bearbeitungen in {1} Dateien durchgeführt"], +"vs/editor/common/view/editorColorRegistry":["Hintergrundfarbe zur Hervorhebung der Zeile an der Cursorposition.","Hintergrundfarbe für den Rahmen um die Zeile an der Cursorposition.","Hintergrundfarbe der markierten Bereiche, wie z.B. Quick Open oder die Suche. Die Farbe darf nicht deckend sein, weil sie sonst die zugrunde liegenden Dekorationen verdeckt.","Hintergrundfarbe für den Rahmen um hervorgehobene Bereiche.",'Hintergrundfarbe des hervorgehobenen Symbols, z. B. "Gehe zu Definition" oder "Gehe zu nächster/vorheriger". Die Farbe darf nicht undurchsichtig sein, um zugrunde liegende Dekorationen nicht zu verbergen.',"Hintergrundfarbe des Rahmens um hervorgehobene Symbole","Farbe des Cursors im Editor.","Hintergrundfarbe vom Editor-Cursor. Erlaubt die Anpassung der Farbe von einem Zeichen, welches von einem Block-Cursor überdeckt wird.","Farbe der Leerzeichen im Editor.","Farbe der Führungslinien für Einzüge im Editor.","Farbe der Führungslinien für Einzüge im aktiven Editor.","Zeilennummernfarbe im Editor.","Zeilennummernfarbe der aktiven Editorzeile.",'Die ID ist veraltet. Verwenden Sie stattdessen "editorLineNumber.activeForeground".',"Zeilennummernfarbe der aktiven Editorzeile.","Farbe des Editor-Lineals.","Vordergrundfarbe der CodeLens-Links im Editor","Hintergrundfarbe für zusammengehörige Klammern","Farbe für zusammengehörige Klammern","Farbe des Rahmens für das Übersicht-Lineal.","Hintergrundfarbe des Übersichtslineals im Editor. Wird nur verwendet, wenn die Minimap aktiviert ist und auf der rechten Seite des Editors platziert wird.","Hintergrundfarbe der Editorleiste. Die Leiste enthält die Glyphenränder und die Zeilennummern.","Rahmenfarbe unnötigen (nicht genutzten) Quellcodes im Editor.",'Deckkraft des unnötigen (nicht genutzten) Quellcodes im Editor. "#000000c0" rendert z.B. den Code mit einer Deckkraft von 75%. Verwenden Sie für Designs mit hohem Kontrast das Farbdesign "editorUnnecessaryCode.border", um unnötigen Code zu unterstreichen statt ihn abzublenden.',"Übersichtslinealmarkerfarbe für das Hervorheben von Bereichen. Die Farbe darf nicht deckend sein, weil sie sonst die zugrunde liegenden Dekorationen verdeckt.","Übersichtslineal-Markierungsfarbe für Fehler.","Übersichtslineal-Markierungsfarbe für Warnungen.","Übersichtslineal-Markierungsfarbe für Informationen."], +"vs/editor/contrib/anchorSelect/anchorSelect":["Auswahlanker",'Anker festgelegt bei "{0}:{1}"',"Auswahlanker festlegen","Zu Auswahlanker wechseln","Auswahl von Anker zu Cursor","Auswahlanker abbrechen"],"vs/editor/contrib/bracketMatching/bracketMatching":["Übersichtslineal-Markierungsfarbe für zusammengehörige Klammern.","Gehe zu Klammer","Auswählen bis Klammer","Gehe zu &&Klammer"],"vs/editor/contrib/caretOperations/caretOperations":["Ausgewählten Text nach links verschieben","Ausgewählten Text nach rechts verschieben"],"vs/editor/contrib/caretOperations/transpose":["Buchstaben austauschen"],"vs/editor/contrib/clipboard/clipboard":["&&Ausschneiden","Ausschneiden","Ausschneiden","&&Kopieren","Kopieren","Kopieren","&&Einfügen","Einfügen","Einfügen","Mit Syntaxhervorhebung kopieren"], +"vs/editor/contrib/codeAction/codeActionCommands":["Art der auszuführenden Codeaktion","Legt fest, wann die zurückgegebenen Aktionen angewendet werden","Die erste zurückgegebene Codeaktion immer anwenden","Die erste zurückgegebene Codeaktion anwenden, wenn nur eine vorhanden ist","Zurückgegebene Codeaktionen nicht anwenden","Legt fest, ob nur bevorzugte Codeaktionen zurückgegeben werden sollen","Beim Anwenden der Code-Aktion ist ein unbekannter Fehler aufgetreten","Schnelle Problembehebung …","Keine Codeaktionen verfügbar",'Keine bevorzugten Codeaktionen für "{0}" verfügbar','Keine Codeaktionen für "{0}" verfügbar',"Keine bevorzugten Codeaktionen verfügbar","Keine Codeaktionen verfügbar","Refactoring durchführen...",'Keine bevorzugten Refactorings für "{0}" verfügbar','Keine Refactorings für "{0}" verfügbar',"Keine bevorzugten Refactorings verfügbar","Keine Refactorings verfügbar","Quellaktion…",'Keine bevorzugten Quellaktionen für "{0}" verfügbar','Keine Quellaktionen für "{0}" verfügbar',"Keine bevorzugten Quellaktionen verfügbar","Keine Quellaktionen verfügbar","Importe organisieren","Keine Aktion zum Organisieren von Importen verfügbar","Alle korrigieren",'Aktion "Alle korrigieren" nicht verfügbar',"Automatisch korrigieren...","Keine automatischen Korrekturen verfügbar"], +"vs/editor/contrib/codeAction/lightBulbWidget":["Fixes anzeigen. Bevorzugter Fix verfügbar ({0})","Korrekturen anzeigen ({0})","Korrekturen anzeigen"],"vs/editor/contrib/codelens/codelensController":["CodeLens-Befehle für aktuelle Zeile anzeigen"],"vs/editor/contrib/comment/comment":["Zeilenkommentar umschalten","Zeilenkommen&&tar umschalten","Zeilenkommentar hinzufügen","Zeilenkommentar entfernen","Blockkommentar umschalten","&&Blockkommentar umschalten"],"vs/editor/contrib/contextmenu/contextmenu":["Editor-Kontextmenü anzeigen"],"vs/editor/contrib/cursorUndo/cursorUndo":["Mit Cursor rückgängig machen","Wiederholen mit Cursor"], +"vs/editor/contrib/documentSymbols/outlineTree":["Die Vordergrundfarbe für Arraysymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.","Die Vordergrundfarbe für boolesche Symbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.","Die Vordergrundfarbe für Klassensymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.","Die Vordergrundfarbe für Farbsymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.","Die Vordergrundfarbe für konstante Symbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.","Die Vordergrundfarbe für Konstruktorsymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.","Die Vordergrundfarbe für Enumeratorsymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.","Die Vordergrundfarbe für Enumeratormembersymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.","Die Vordergrundfarbe für Ereignissymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.","Die Vordergrundfarbe für Feldsymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.","Die Vordergrundfarbe für Dateisymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.","Die Vordergrundfarbe für Ordnersymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.","Die Vordergrundfarbe für Funktionssymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.","Die Vordergrundfarbe für Schnittstellensymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.","Die Vordergrundfarbe für Schlüsselsymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.","Die Vordergrundfarbe für Schlüsselwortsymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.","Die Vordergrundfarbe für Methodensymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.","Die Vordergrundfarbe für Modulsymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.","Die Vordergrundfarbe für Namespacesymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.","Die Vordergrundfarbe für NULL-Symbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.","Die Vordergrundfarbe für Zahlensymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.","Die Vordergrundfarbe für Objektsymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.","Die Vordergrundfarbe für Operatorsymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.","Die Vordergrundfarbe für Paketsymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.","Die Vordergrundfarbe für Eigenschaftensymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.","Die Vordergrundfarbe für Referenzsymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.","Die Vordergrundfarbe für Codeausschnittsymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.","Die Vordergrundfarbe für Zeichenfolgensymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.","Die Vordergrundfarbe für Struktursymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.","Die Vordergrundfarbe für Textsymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.","Die Vordergrundfarbe für Typparametersymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.","Die Vordergrundfarbe für Einheitensymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.","Die Vordergrundfarbe für variable Symbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt."], +"vs/editor/contrib/find/findController":["Suchen","&&Suchen","Mit Auswahl suchen","Weitersuchen","Weitersuchen","Vorheriges Element suchen","Vorheriges Element suchen","Nächste Auswahl suchen","Vorherige Auswahl suchen","Ersetzen","&&Ersetzen"],"vs/editor/contrib/find/findWidget":["Suchen","Suchen","Vorheriger Treffer","Nächste Übereinstimmung","In Auswahl suchen","Schließen","Ersetzen","Ersetzen","Ersetzen","Alle ersetzen","Ersetzen-Modus wechseln","Nur die ersten {0} Ergebnisse wurden hervorgehoben, aber alle Suchoperationen werden auf dem gesamten Text durchgeführt.","{0} von {1}","Keine Ergebnisse","{0} gefunden",'{0} für "{1}" gefunden','{0} für "{1}" gefunden, bei {2}','{0} für "{1}" gefunden','STRG+EINGABE fügt jetzt einen Zeilenumbruch ein, statt alles zu ersetzen. Sie können die Tastenzuordnung für "editor.action.replaceAll" ändern, um dieses Verhalten außer Kraft zu setzen.'], +"vs/editor/contrib/folding/folding":["Auffalten","Faltung rekursiv aufheben","Falten","Einklappung umschalten","Rekursiv falten","Alle Blockkommentare falten","Alle Regionen falten","Alle Regionen auffalten","Alle falten","Alle auffalten","Faltebene {0}","Hintergrundfarbe hinter gefalteten Bereichen. Die Farbe darf nicht deckend sein, sodass zugrunde liegende Dekorationen nicht ausgeblendet werden.","Farbe des Faltsteuerelements im Editor-Bundsteg."],"vs/editor/contrib/fontZoom/fontZoom":["Editorschriftart vergrößern","Editorschriftart verkleinern","Editor Schriftart Vergrößerung zurücksetzen"],"vs/editor/contrib/format/format":["1 Formatierung in Zeile {0} vorgenommen","{0} Formatierungen in Zeile {1} vorgenommen","1 Formatierung zwischen Zeilen {0} und {1} vorgenommen","{0} Formatierungen zwischen Zeilen {1} und {2} vorgenommen"],"vs/editor/contrib/format/formatActions":["Dokument formatieren","Auswahl formatieren"], +"vs/editor/contrib/gotoError/gotoError":["Gehe zu nächstem Problem (Fehler, Warnung, Information)","Gehe zu vorigem Problem (Fehler, Warnung, Information)","Gehe zu dem nächsten Problem in den Dateien (Fehler, Warnung, Info)","Nächstes &&Problem","Gehe zu dem vorherigen Problem in den Dateien (Fehler, Warnung, Info)","Vorheriges &&Problem"],"vs/editor/contrib/gotoError/gotoErrorWidget":["Fehler","Warnung","Info","Hinweis","{0} bei {1}. ","{0} von {1} Problemen","{0} von {1} Problemen","Editormarkierung: Farbe bei Fehler des Navigationswidgets.","Editormarkierung: Farbe bei Warnung des Navigationswidgets.","Editormarkierung: Farbe bei Information des Navigationswidgets.","Editormarkierung: Hintergrund des Navigationswidgets."], +"vs/editor/contrib/gotoSymbol/goToCommands":["Vorschau","Definitionen",'Keine Definition gefunden für "{0}".',"Keine Definition gefunden","Gehe zu Definition","Gehe &&zu Definition","Definition an der Seite öffnen","Definition einsehen","Deklarationen",'Keine Deklaration für "{0}" gefunden.',"Keine Deklaration gefunden.","Zur Deklaration wechseln","Gehe zu &&Deklaration",'Keine Deklaration für "{0}" gefunden.',"Keine Deklaration gefunden.","Vorschau für Deklaration anzeigen","Typdefinitionen",'Keine Typendefinition gefunden für "{0}"',"Keine Typendefinition gefunden","Zur Typdefinition wechseln","Zur &&Typdefinition wechseln","Vorschau der Typdefinition anzeigen","Implementierungen",'Keine Implementierung gefunden für "{0}"',"Keine Implementierung gefunden","Gehe zu Implementierungen","Gehe zu &&Implementierungen","Vorschau für Implementierungen anzeigen",'Für "{0}" wurden keine Verweise gefunden.',"Keine Referenzen gefunden","Gehe zu Verweisen","Gehe zu &&Verweisen","Verweise","Vorschau für Verweise anzeigen","Verweise","Gehe zu beliebigem Symbol","Speicherorte",'Keine Ergebnisse für "{0}"',"Verweise"], +"vs/editor/contrib/gotoSymbol/link/goToDefinitionAtPosition":["Klicken Sie, um {0} Definitionen anzuzeigen."],"vs/editor/contrib/gotoSymbol/peek/referencesController":["Wird geladen...","{0} ({1})"],"vs/editor/contrib/gotoSymbol/peek/referencesTree":["{0} Verweise","{0} Verweis","Verweise"],"vs/editor/contrib/gotoSymbol/peek/referencesWidget":["Keine Vorschau verfügbar.","Keine Ergebnisse","Verweise"],"vs/editor/contrib/gotoSymbol/referencesModel":["Symbol in {0} in Zeile {1}, Spalte {2}","1 Symbol in {0}, vollständiger Pfad {1}","{0} Symbole in {1}, vollständiger Pfad {2}","Es wurden keine Ergebnisse gefunden.","1 Symbol in {0} gefunden","{0} Symbole in {1} gefunden","{0} Symbole in {1} Dateien gefunden"],"vs/editor/contrib/gotoSymbol/symbolNavigation":["Symbol {0} von {1}, {2} für nächstes","Symbol {0} von {1}"],"vs/editor/contrib/hover/hover":["Hovern anzeigen","Definitionsvorschauhover anzeigen"], +"vs/editor/contrib/hover/modesContentHover":["Wird geladen...","Vorschauproblem","Es wird nach Schnellkorrekturen gesucht...","Keine Schnellkorrekturen verfügbar","Schnelle Problembehebung …"],"vs/editor/contrib/inPlaceReplace/inPlaceReplace":["Durch vorherigen Wert ersetzen","Durch nächsten Wert ersetzen"],"vs/editor/contrib/indentation/indentation":["Einzug in Leerzeichen konvertieren","Einzug in Tabstopps konvertieren","Konfigurierte Tabulatorgröße","Tabulatorgröße für aktuelle Datei auswählen","Einzug mithilfe von Tabstopps","Einzug mithilfe von Leerzeichen","Einzug aus Inhalt erkennen","Neuen Einzug für Zeilen festlegen","Gewählte Zeilen zurückziehen"], +"vs/editor/contrib/linesOperations/linesOperations":["Zeile nach oben kopieren","Zeile nach oben &&kopieren","Zeile nach unten kopieren","Zeile nach unten ko&&pieren","Auswahl duplizieren","&&Auswahl duplizieren","Zeile nach oben verschieben","Zeile nach oben &&verschieben","Zeile nach unten verschieben","Zeile nach &&unten verschieben","Zeilen aufsteigend sortieren","Zeilen absteigend sortieren","Nachgestelltes Leerzeichen kürzen","Zeile löschen","Zeileneinzug","Zeile ausrücken","Zeile oben einfügen","Zeile unten einfügen","Alle übrigen löschen","Alle rechts löschen","Zeilen verknüpfen","Zeichen um den Cursor herum transponieren","In Großbuchstaben umwandeln","In Kleinbuchstaben umwandeln","In große Anfangsbuchstaben umwandeln"],"vs/editor/contrib/links/links":["Befehl ausführen","Link folgen","BEFEHL + Klicken","STRG + Klicken","OPTION + Klicken","alt + klicken","Fehler beim Öffnen dieses Links, weil er nicht wohlgeformt ist: {0}","Fehler beim Öffnen dieses Links, weil das Ziel fehlt.","Link öffnen"], +"vs/editor/contrib/message/messageController":["Ein Bearbeiten ist im schreibgeschützten Editor nicht möglich"],"vs/editor/contrib/multicursor/multicursor":["Cursor oberhalb hinzufügen","Cursor oberh&&alb hinzufügen","Cursor unterhalb hinzufügen","Cursor unterhal&&b hinzufügen","Cursor an Zeilenenden hinzufügen","C&&ursor an Zeilenenden hinzufügen","Cursor am Ende hinzufügen","Cursor am Anfang hinzufügen","Auswahl zur nächsten Übereinstimmungssuche hinzufügen","&&Nächstes Vorkommen hinzufügen","Letzte Auswahl zu vorheriger Übereinstimmungssuche hinzufügen","Vo&&rheriges Vorkommen hinzufügen","Letzte Auswahl in nächste Übereinstimmungssuche verschieben","Letzte Auswahl in vorherige Übereinstimmungssuche verschieben","Alle Vorkommen auswählen und Übereinstimmung suchen","Alle V&&orkommen auswählen","Alle Vorkommen ändern"],"vs/editor/contrib/parameterHints/parameterHints":["Parameterhinweise auslösen"],"vs/editor/contrib/parameterHints/parameterHintsWidget":["{0}, Hinweis"], +"vs/editor/contrib/peekView/peekView":["Schließen","Hintergrundfarbe des Titelbereichs der Peek-Ansicht.","Farbe des Titels in der Peek-Ansicht.","Farbe der Titelinformationen in der Peek-Ansicht.","Farbe der Peek-Ansichtsränder und des Pfeils.","Hintergrundfarbe der Ergebnisliste in der Peek-Ansicht.","Vordergrundfarbe für Zeilenknoten in der Ergebnisliste der Peek-Ansicht.","Vordergrundfarbe für Dateiknoten in der Ergebnisliste der Peek-Ansicht.","Hintergrundfarbe des ausgewählten Eintrags in der Ergebnisliste der Peek-Ansicht.","Vordergrundfarbe des ausgewählten Eintrags in der Ergebnisliste der Peek-Ansicht.","Hintergrundfarbe des Peek-Editors.","Hintergrundfarbe der Leiste im Peek-Editor.","Farbe für Übereinstimmungsmarkierungen in der Ergebnisliste der Peek-Ansicht.","Farbe für Übereinstimmungsmarkierungen im Peek-Editor.","Rahmen für Übereinstimmungsmarkierungen im Peek-Editor."], +"vs/editor/contrib/quickAccess/gotoLineQuickAccess":["Öffnen Sie zuerst einen Text-Editor, um zu einer Zeile zu wechseln.","Wechseln Sie zu Zeile {0} und Spalte {1}.","Zu Zeile {0} wechseln.","Aktuelle Zeile: {0}, Zeichen: {1}. Geben Sie eine Zeilennummer zwischen 1 und {2} ein, zu der Sie navigieren möchten.","Aktuelle Zeile: {0}, Zeichen: {1}. Geben Sie eine Zeilennummer ein, zu der Sie navigieren möchten."], +"vs/editor/contrib/quickAccess/gotoSymbolQuickAccess":["Öffnen Sie zunächst einen Text-Editor mit Symbolinformationen, um zu einem Symbol zu navigieren.","Der aktive Text-Editor stellt keine Symbolinformationen bereit.","Keine übereinstimmenden Editorsymbole.","Keine Editorsymbole.","An der Seite öffnen","Unten öffnen","Symbole ({0})","Eigenschaften ({0})","Methoden ({0})","Funktionen ({0})","Konstruktoren ({0})","Variablen ({0})","Klassen ({0})","Strukturen ({0})","Ereignisse ({0})","Operatoren ({0})","Schnittstellen ({0})","Namespaces ({0})","Pakete ({0})","Typparameter ({0})","Module ({0})","Eigenschaften ({0})","Enumerationen ({0})","Enumerationsmember ({0})","Zeichenfolgen ({0})","Dateien ({0})","Arrays ({0})","Zahlen ({0})","Boolesche Werte ({0})","Objekte ({0})","Schlüssel ({0})","Felder ({0})","Konstanten ({0})"],"vs/editor/contrib/rename/onTypeRename":["Symbol bei Eingabe umbenennen","Hintergrundfarbe, wenn der Editor automatisch nach Typ umbenennt."], +"vs/editor/contrib/rename/rename":["Kein Ergebnis.","Ein unbekannter Fehler ist beim Auflösen der Umbenennung eines Ortes aufgetreten.",'"{0}" wird umbenannt.',"{0} wird umbenannt.",'"{0}" erfolgreich in "{1}" umbenannt. Zusammenfassung: {2}',"Die rename-Funktion konnte die Änderungen nicht anwenden.","Die rename-Funktion konnte die Änderungen nicht berechnen.","Symbol umbenennen","Möglichkeit aktivieren/deaktivieren, Änderungen vor dem Umbenennen als Vorschau anzeigen zu lassen"],"vs/editor/contrib/rename/renameInputField":["Benennen Sie die Eingabe um. Geben Sie einen neuen Namen ein, und drücken Sie die EINGABETASTE, um den Commit auszuführen.","{0} zur Umbenennung, {1} zur Vorschau"],"vs/editor/contrib/smartSelect/smartSelect":["Auswahl aufklappen","Auswahl &&erweitern","Markierung verkleinern","Au&&swahl verkleinern"], +"vs/editor/contrib/snippet/snippetVariables":["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag","So","Mo","Di","Mi","Do","Fr","Sa","Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember","Jan","Feb","Mär","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],"vs/editor/contrib/suggest/suggestController":['Das Akzeptieren von "{0}" ergab {1} zusätzliche Bearbeitungen.',"Vorschlag auslösen","{0} zum Einfügen","{0} zum Einfügen","{0} zum Ersetzen","{0} zum Ersetzen","{0} zum Einfügen","weniger anzeigen","mehr anzeigen"], +"vs/editor/contrib/suggest/suggestWidget":["Hintergrundfarbe des Vorschlagswidgets.","Rahmenfarbe des Vorschlagswidgets.","Vordergrundfarbe des Vorschlagswidgets.","Hintergrundfarbe des ausgewählten Eintrags im Vorschlagswidget.","Farbe der Trefferhervorhebung im Vorschlagswidget.","Weitere Informationen ({0})","Weniger lesen ({0})","Wird geladen...","Wird geladen...","Keine Vorschläge.","{0}, Dokumente: {1}","Vorschlagen"],"vs/editor/contrib/toggleTabFocusMode/toggleTabFocusMode":["TAB-Umschalttaste verschiebt Fokus","Beim Drücken auf Tab wird der Fokus jetzt auf das nächste fokussierbare Element verschoben","Beim Drücken von Tab wird jetzt das Tabulator-Zeichen eingefügt"],"vs/editor/contrib/tokenization/tokenization":["Entwickler: Force Retokenize"], +"vs/editor/contrib/unusualLineTerminators/unusualLineTerminators":["Ungewöhnliche Zeilentrennzeichen","Ungewöhnliche Zeilentrennzeichen erkannt",'Diese Datei enthält mindestens ein ungültiges Zeilenabschlusszeichen, z. B. Zeilentrennzeichen (LS) oder Absatztrennzeichen (PS).\r\n\r\nEs wird empfohlen, diese Zeichen aus der Datei zu entfernen. Die betreffende Einstellung kann über "editor.unusualLineTerminators" konfiguriert werden.',"Diese Datei korrigieren","Problem für diese Datei ignorieren"], +"vs/editor/contrib/wordHighlighter/wordHighlighter":["Hintergrundfarbe eines Symbols beim Lesezugriff, z.B. beim Lesen einer Variablen. Die Farbe darf nicht deckend sein, damit sie nicht die zugrunde liegenden Dekorationen verdeckt.","Hintergrundfarbe eines Symbols bei Schreibzugriff, z.B. beim Schreiben in eine Variable. Die Farbe darf nicht deckend sein, weil sie sonst die zugrunde liegenden Dekorationen verdeckt.","Randfarbe eines Symbols beim Lesezugriff, wie etwa beim Lesen einer Variablen.","Randfarbe eines Symbols beim Schreibzugriff, wie etwa beim Schreiben einer Variablen.","Übersichtslinealmarkerfarbd für das Hervorheben von Symbolen. Die Farbe darf nicht deckend sein, weil sie sonst die zugrunde liegenden Dekorationen verdeckt.","Übersichtslinealmarkerfarbe für Symbolhervorhebungen bei Schreibzugriff. Die Farbe darf nicht deckend sein, weil sie sonst die zugrunde liegenden Dekorationen verdeckt.","Gehe zur nächsten Symbolhervorhebungen","Gehe zur vorherigen Symbolhervorhebungen","Symbol-Hervorhebung ein-/ausschalten"], +"vs/platform/actions/browser/menuEntryActionViewItem":["{0} ({1})"],"vs/platform/configuration/common/configurationRegistry":["Außerkraftsetzungen für die Standardsprachkonfiguration","Zu überschreibende Editor-Einstellungen für eine Sprache konfigurieren.","Diese Einstellung unterstützt keine sprachspezifische Konfiguration.",'"{0}" kann nicht registriert werden. Stimmt mit dem Eigenschaftsmuster "\\\\[.*\\\\]$" zum Beschreiben sprachspezifischer Editor-Einstellungen überein. Verwenden Sie den Beitrag "configurationDefaults".','{0}" kann nicht registriert werden. Diese Eigenschaft ist bereits registriert.'],"vs/platform/keybinding/common/abstractKeybindingService":["({0}) wurde gedrückt. Es wird auf die zweite Taste in der Kombination gewartet...","Die Tastenkombination ({0}, {1}) ist kein Befehl."], +"vs/platform/list/browser/listService":["Workbench","Ist unter Windows und Linux der STRG-Taste und unter macOS der Befehlstaste zugeordnet.","Ist unter Windows und Linux der ALT-Taste und unter macOS der Wahltaste zugeordnet.",'Der Modifizierer zum Hinzufügen eines Elements in Bäumen und Listen zu einer Mehrfachauswahl mit der Maus (zum Beispiel im Explorer, in geöffneten Editoren und in der SCM-Ansicht). Die Mausbewegung "Seitlich öffnen" wird – sofern unterstützt – so angepasst, dass kein Konflikt mit dem Modifizierer für Mehrfachauswahl entsteht.',"Steuert, wie Elemente in Strukturen und Listen mithilfe der Maus geöffnet werden (sofern unterstützt). Bei übergeordneten Elementen, deren untergeordnete Elemente sich in Strukturen befinden, steuert diese Einstellung, ob ein Einfachklick oder ein Doppelklick das übergeordnete Elemente erweitert. Beachten Sie, dass einige Strukturen und Listen diese Einstellung ggf. ignorieren, wenn sie nicht zutrifft.","Steuert, ob Listen und Strukturen ein horizontales Scrollen in der Workbench unterstützen. Warnung: Das Aktivieren dieser Einstellung kann sich auf die Leistung auswirken.","Steuert den Struktureinzug in Pixeln.","Steuert, ob die Struktur Einzugsführungslinien rendern soll.","Steuert, ob Listen und Strukturen einen optimierten Bildlauf verwenden.","Bei der einfachen Tastaturnavigation werden Elemente in den Fokus genommen, die mit der Tastatureingabe übereinstimmen. Die Übereinstimmungen gelten nur für Präfixe.","Hervorheben von Tastaturnavigationshervorgebungselemente, die mit der Tastatureingabe übereinstimmen. Beim nach oben und nach unten Navigieren werden nur die hervorgehobenen Elemente durchlaufen.","Durch das Filtern der Tastaturnavigation werden alle Elemente herausgefiltert und ausgeblendet, die nicht mit der Tastatureingabe übereinstimmen.",'Steuert die Tastaturnavigation in Listen und Strukturen in der Workbench. Kann "simple" (einfach), "highlight" (hervorheben) und "filter" (filtern) sein.','Legt fest, ob die Tastaturnavigation in Listen und Strukturen automatisch durch Eingaben ausgelöst wird. Wenn der Wert auf "false" festgelegt ist, wird die Tastaturnavigation nur ausgelöst, wenn der Befehl "list.toggleKeyboardNavigation" ausgeführt wird. Diesem Befehl können Sie eine Tastenkombination zuweisen.'], +"vs/platform/markers/common/markers":["Fehler","Warnung","Info"],"vs/platform/quickinput/browser/commandsQuickAccess":["{0}, {1}","zuletzt verwendet","andere Befehle","Der Befehl {0} hat einen Fehler ausgelöst ({1})."],"vs/platform/quickinput/browser/helpQuickAccess":["Globale Befehle","Editor-Befehle","{0}, {1}"], +"vs/platform/theme/common/colorRegistry":["Allgemeine Vordergrundfarbe. Diese Farbe wird nur verwendet, wenn sie nicht durch eine Komponente überschrieben wird.","Allgemeine Vordergrundfarbe für Fehlermeldungen. Diese Farbe wird nur verwendet, wenn sie nicht durch eine Komponente überschrieben wird.","Die für Symbole in der Workbench verwendete Standardfarbe.","Allgemeine Rahmenfarbe für fokussierte Elemente. Diese Farbe wird nur verwendet, wenn sie nicht durch eine Komponente überschrieben wird.","Ein zusätzlicher Rahmen um Elemente, mit dem diese von anderen getrennt werden, um einen größeren Kontrast zu erreichen.","Ein zusätzlicher Rahmen um aktive Elemente, mit dem diese von anderen getrennt werden, um einen größeren Kontrast zu erreichen.","Vordergrundfarbe für Links im Text.","Hintergrundfarbe für Codeblöcke im Text.","Schattenfarbe von Widgets wie zum Beispiel Suchen/Ersetzen innerhalb des Editors.","Hintergrund für Eingabefeld.","Vordergrund für Eingabefeld.","Rahmen für Eingabefeld.","Rahmenfarbe für aktivierte Optionen in Eingabefeldern.","Hintergrundfarbe für aktivierte Optionen in Eingabefeldern.","Vordergrundfarbe für aktivierte Optionen in Eingabefeldern.","Hintergrundfarbe bei der Eingabevalidierung für den Schweregrad der Information.","Vordergrundfarbe bei der Eingabevalidierung für den Schweregrad der Information.","Rahmenfarbe bei der Eingabevalidierung für den Schweregrad der Information.","Hintergrundfarbe bei der Eingabevalidierung für den Schweregrad der Warnung.","Vordergrundfarbe bei der Eingabevalidierung für den Schweregrad der Warnung.","Rahmenfarbe bei der Eingabevalidierung für den Schweregrad der Warnung.","Hintergrundfarbe bei der Eingabevalidierung für den Schweregrad des Fehlers.","Vordergrundfarbe bei der Eingabevalidierung für den Schweregrad des Fehlers.","Rahmenfarbe bei der Eingabevalidierung für den Schweregrad des Fehlers.","Hintergrund für Dropdown.","Vordergrund für Dropdown.","Vordergrundfarbe der Schaltfläche.","Hintergrundfarbe der Schaltfläche.","Hintergrundfarbe der Schaltfläche, wenn darauf gezeigt wird.","Hintergrundfarbe für Badge. Badges sind kurze Info-Texte, z.B. für Anzahl Suchergebnisse.","Vordergrundfarbe für Badge. Badges sind kurze Info-Texte, z.B. für Anzahl Suchergebnisse.","Schatten der Scrollleiste, um anzuzeigen, dass die Ansicht gescrollt wird.","Hintergrundfarbe vom Scrollbar-Schieber","Hintergrundfarbe des Schiebereglers, wenn darauf gezeigt wird.","Hintergrundfarbe des Schiebereglers, wenn darauf geklickt wird.","Hintergrundfarbe des Fortschrittbalkens, der für zeitintensive Vorgänge angezeigt werden kann.","Vordergrundfarbe von Fehlerunterstreichungen im Editor.","Randfarbe von Fehlerfeldern im Editor.","Vordergrundfarbe von Warnungsunterstreichungen im Editor.","Randfarbe der Warnfelder im Editor.","Vordergrundfarbe von Informationsunterstreichungen im Editor.","Randfarbe der Infofelder im Editor.","Vordergrundfarbe der Hinweisunterstreichungen im Editor.","Randfarbe der Hinweisfelder im Editor.","Hintergrundfarbe des Editors.","Standardvordergrundfarbe des Editors.","Hintergrundfarbe von Editor-Widgets wie zum Beispiel Suchen/Ersetzen.","Vordergrundfarbe für Editorwidgets wie Suchen/Ersetzen.","Rahmenfarbe von Editorwigdets. Die Farbe wird nur verwendet, wenn für das Widget ein Rahmen verwendet wird und die Farbe nicht von einem Widget überschrieben wird.","Rahmenfarbe der Größenanpassungsleiste von Editorwigdets. Die Farbe wird nur verwendet, wenn für das Widget ein Größenanpassungsrahmen verwendet wird und die Farbe nicht von einem Widget außer Kraft gesetzt wird.","Schnellauswahl der Hintergrundfarbe. Im Widget für die Schnellauswahl sind Auswahlelemente wie die Befehlspalette enthalten.","Vordergrundfarbe der Schnellauswahl. Im Widget für die Schnellauswahl sind Auswahlelemente wie die Befehlspalette enthalten.","Hintergrundfarbe für den Titel der Schnellauswahl. Im Widget für die Schnellauswahl sind Auswahlelemente wie die Befehlspalette enthalten.","Schnellauswahlfarbe für das Gruppieren von Bezeichnungen.","Schnellauswahlfarbe für das Gruppieren von Rahmen.","Farbe der Editor-Auswahl.","Farbe des gewählten Text für einen hohen Kontrast","Die Farbe der Auswahl befindet sich in einem inaktiven Editor. Die Farbe darf nicht deckend sein, weil sie sonst die zugrunde liegende Dekorationen verdeckt.","Farbe für Bereiche mit dem gleichen Inhalt wie die Auswahl. Die Farbe darf nicht deckend sein, weil sie sonst die zugrunde liegenden Dekorationen verdeckt.","Randfarbe für Bereiche, deren Inhalt der Auswahl entspricht.","Farbe des aktuellen Suchergebnisses.","Farbe der anderen Suchergebnisse. Die Farbe darf nicht deckend sein, weil sie sonst die zugrunde liegenden Dekorationen verdeckt.","Farbe des Bereichs, der die Suche eingrenzt. Die Farbe darf nicht deckend sein, damit sie nicht die zugrunde liegenden Dekorationen verdeckt.","Randfarbe des aktuellen Suchergebnisses.","Randfarbe der anderen Suchtreffer.","Rahmenfarbe des Bereichs, der die Suche eingrenzt. Die Farbe darf nicht deckend sein, weil sie sonst die zugrunde liegenden Dekorationen verdeckt.","Hervorhebung unterhalb des Worts, für das ein Hoverelement angezeigt wird. Die Farbe darf nicht deckend sein, weil sie sonst die zugrunde liegenden Dekorationen verdeckt.","Hintergrundfarbe des Editor-Mauszeigers.","Vordergrundfarbe des Editor-Mauszeigers","Rahmenfarbe des Editor-Mauszeigers.","Hintergrundfarbe der Hoverstatusleiste des Editors.","Farbe der aktiven Links.",'Die für das Aktionssymbol "Glühbirne" verwendete Farbe.','Die für das Aktionssymbol "Automatische Glühbirnenkorrektur" verwendete Farbe.',"Hintergrundfarbe für eingefügten Text. Die Farbe darf nicht deckend sein, weil sie sonst die zugrunde liegenden Dekorationen verdeckt.","Hintergrundfarbe für Text, der entfernt wurde. Die Farbe darf nicht deckend sein, weil sie sonst die zugrunde liegenden Dekorationen verdeckt.","Konturfarbe für eingefügten Text.","Konturfarbe für entfernten Text.","Die Rahmenfarbe zwischen zwei Text-Editoren.","Farbe der diagonalen Füllung des Vergleichs-Editors. Die diagonale Füllung wird in Ansichten mit parallelem Vergleich verwendet.","Hintergrundfarbe der Liste/Struktur für das fokussierte Element, wenn die Liste/Struktur aktiv ist. Eine aktive Liste/Struktur hat Tastaturfokus, eine inaktive hingegen nicht.","Vordergrundfarbe der Liste/Struktur für das fokussierte Element, wenn die Liste/Struktur aktiv ist. Eine aktive Liste/Struktur hat Tastaturfokus, eine inaktive hingegen nicht.","Hintergrundfarbe der Liste/Struktur für das ausgewählte Element, wenn die Liste/Struktur aktiv ist. Eine aktive Liste/Struktur hat Tastaturfokus, eine inaktive hingegen nicht.","Vordergrundfarbe der Liste/Struktur für das ausgewählte Element, wenn die Liste/Struktur aktiv ist. Eine aktive Liste/Struktur hat Tastaturfokus, eine inaktive hingegen nicht.","Hintergrundfarbe der Liste/Struktur für das ausgewählte Element, wenn die Liste/Struktur inaktiv ist. Eine aktive Liste/Struktur hat Tastaturfokus, eine inaktive hingegen nicht.","Vordergrundfarbe der Liste/Struktur für das ausgewählte Element, wenn die Liste/Baumstruktur inaktiv ist. Eine aktive Liste/Baumstruktur hat Tastaturfokus, eine inaktive hingegen nicht.","Hintergrundfarbe der Liste/Struktur für das fokussierte Element, wenn die Liste/Struktur inaktiv ist. Eine aktive Liste/Struktur hat Tastaturfokus, eine inaktive hingegen nicht.","Hintergrund der Liste/Struktur, wenn mit der Maus auf Elemente gezeigt wird.","Vordergrund der Liste/Struktur, wenn mit der Maus auf Elemente gezeigt wird.","Drag & Drop-Hintergrund der Liste/Struktur, wenn Elemente mithilfe der Maus verschoben werden.","Vordergrundfarbe der Liste/Struktur zur Trefferhervorhebung beim Suchen innerhalb der Liste/Struktur.","Hintergrundfarbe des Typfilterwidgets in Listen und Strukturen.","Konturfarbe des Typfilterwidgets in Listen und Strukturen.","Konturfarbe des Typfilterwidgets in Listen und Strukturen, wenn es keine Übereinstimmungen gibt.","Strukturstrichfarbe für die Einzugsführungslinien.","Rahmenfarbe von Menüs.","Vordergrundfarbe von Menüelementen.","Hintergrundfarbe von Menüelementen.","Vordergrundfarbe des ausgewählten Menüelements im Menü.","Hintergrundfarbe des ausgewählten Menüelements im Menü.","Rahmenfarbe des ausgewählten Menüelements im Menü.","Farbe eines Trenner-Menüelements in Menüs.","Hervorhebungs-Hintergrundfarbe eines Codeausschnitt-Tabstopps.","Hervorhebungs-Rahmenfarbe eines Codeausschnitt-Tabstopps.","Hervorhebungs-Hintergrundfarbe des letzten Tabstopps eines Codeausschnitts.","Rahmenfarbe zur Hervorhebung des letzten Tabstopps eines Codeausschnitts.","Übersichtslinealmarkerfarbe für das Suchen von Übereinstimmungen. Die Farbe darf nicht deckend sein, weil sie sonst die zugrunde liegenden Dekorationen verdeckt.","Übersichtslinealmarkerfarbe für das Hervorheben der Auswahl. Die Farbe darf nicht deckend sein, weil sie sonst die zugrunde liegenden Dekorationen verdeckt.","Minimap-Markerfarbe für gefundene Übereinstimmungen.","Minimap-Markerfarbe für die Editorauswahl.","Minimapmarkerfarbe für Fehler","Minimapmarkerfarbe für Warnungen","Hintergrundfarbe der Minimap.","Hintergrundfarbe des Minimap-Schiebereglers.","Hintergrundfarbe des Minimap-Schiebereglers beim Daraufzeigen.","Hintergrundfarbe des Minimap-Schiebereglers, wenn darauf geklickt wird.","Die Farbe, die für das Problemfehlersymbol verwendet wird.","Die Farbe, die für das Problemwarnsymbol verwendet wird.","Die Farbe, die für das Probleminfosymbol verwendet wird."], +"vs/platform/undoRedo/common/undoRedoService":["Die folgenden Dateien wurden geschlossen und auf dem Datenträger geändert: {0}.","Die folgenden Dateien wurden auf inkompatible Weise geändert: {0}.",'"{0}" konnte nicht für alle Dateien rückgängig gemacht werden. {1}','"{0}" konnte nicht für alle Dateien rückgängig gemacht werden. {1}','"{0}" konnte nicht für alle Dateien rückgängig gemacht werden, da Änderungen an {1} vorgenommen wurden.','"{0}" konnte nicht für alle Dateien rückgängig gemacht werden, weil bereits ein Vorgang zum Rückgängigmachen oder Wiederholen für "{1}" durchgeführt wird.','"{0}" konnte nicht für alle Dateien rückgängig gemacht werden, weil in der Zwischenzeit bereits ein Vorgang zum Rückgängigmachen oder Wiederholen durchgeführt wurde.','Möchten Sie "{0}" für alle Dateien rückgängig machen?',"In {0} Dateien rückgängig machen","Datei rückgängig machen","Abbrechen",'"{0}" konnte nicht rückgängig gemacht werden, weil bereits ein Vorgang zum Rückgängigmachen oder Wiederholen durchgeführt wird.','"{0}" konnte nicht in allen Dateien wiederholt werden. {1}','"{0}" konnte nicht in allen Dateien wiederholt werden. {1}','"{0}" konnte nicht in allen Dateien wiederholt werden, da Änderungen an {1} vorgenommen wurden.','"{0}" konnte nicht für alle Dateien wiederholt werden, weil bereits ein Vorgang zum Rückgängigmachen oder Wiederholen für "{1}" durchgeführt wird.','"{0}" konnte nicht für alle Dateien wiederholt werden, weil in der Zwischenzeit bereits ein Vorgang zum Rückgängigmachen oder Wiederholen durchgeführt wurde.','"{0}" konnte nicht wiederholt werden, weil bereits ein Vorgang zum Rückgängigmachen oder Wiederholen durchgeführt wird.'] +}); //# sourceMappingURL=../../../min-maps/vs/editor/editor.main.nls.de.js.map \ No newline at end of file diff --git a/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/editor/editor.main.nls.es.js b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/editor/editor.main.nls.es.js index ae0ef3f..465b0be 100644 --- a/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/editor/editor.main.nls.es.js +++ b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/editor/editor.main.nls.es.js @@ -1,8 +1,42 @@ /*!----------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. - * Version: 0.9.0(630109944f54bcdfc2dbaaff5f090c0843af6c66) + * Version: 0.21.2(67b5a8116f3c0bace36b180e524e05bb750a16d8) * Released under the MIT license * https://github.com/Microsoft/vscode/blob/master/LICENSE.txt *-----------------------------------------------------------*/ -define("vs/editor/editor.main.nls.es",{"vs/base/browser/ui/actionbar/actionbar":["{0} ({1})"],"vs/base/browser/ui/aria/aria":["{0} (ocurrió de nuevo)"],"vs/base/browser/ui/findinput/findInput":["entrada"],"vs/base/browser/ui/findinput/findInputCheckboxes":["Coincidir mayúsculas y minúsculas","Solo palabras completas","Usar expresión regular"],"vs/base/browser/ui/inputbox/inputBox":["Error: {0}","Advertencia: {0}","Información: {0}"],"vs/base/common/keybindingLabels":["Ctrl","Mayús","Alt","Windows","Control","Mayús","Alt","Comando","Control","Mayús","Alt","Windows"],"vs/base/common/severity":["Error","Advertencia","Información"],"vs/base/parts/quickopen/browser/quickOpenModel":["{0}, selector","selector"],"vs/base/parts/quickopen/browser/quickOpenWidget":["Selector rápido. Escriba para restringir los resultados.","Selector rápido"],"vs/base/parts/tree/browser/treeDefaults":["Contraer"],"vs/editor/browser/widget/diffReview":["Cerrar","Diferencia {0} de {1}: original {2}, {3} líneas, modificado {4}, {5} líneas","vacío","original {0}, modified {1}: {2}","+ modified {0}: {1}","- original {0}: {1}","Go to Next Difference","Go to Previous Difference"],"vs/editor/common/config/commonEditorConfig":["Editor","Controla la familia de fuentes.","Controla el grosor de la fuente.","Controla el tamaño de fuente en píxeles.","Controla la altura de línea. Utilice 0 para calcular el valor de lineHeight a partir de fontSize.","Controla el espacio entre letras en pixels.",'Controla la presentación de los números de línea. Los valores posibles son "on", "off" y "relative". "relative" muestra el número de líneas desde la posición actual del cursor.',"Columnas en las que mostrar reglas verticales","Caracteres que se usarán como separadores de palabras al realizar operaciones o navegaciones relacionadas con palabras.","El número de espacios a los que equivale una tabulación. Este valor se invalida según el contenido del archivo cuando `editor.detectIndentation` está activado.",'Se esperaba "number". Tenga en cuenta que el ajuste "editor.detectIndentation" ha reemplazado al valor "auto".','Insertar espacios al presionar TAB. Este valor se invalida en función del contenido del archivo cuando "editor.detectIndentation" está activado.','Se esperaba "boolean". Tenga en cuenta que el ajuste "editor.detectIndentation" ha reemplazado al valor "auto".',"Al abrir un archivo, se detectarán `editor.tabSize` y `editor.insertSpaces` en función del contenido del archivo.","Controla si las selecciones tienen esquinas redondeadas","Controla si el editor se seguirá desplazando después de la última línea","Controla si se muestra el minimapa","Controla si el control deslizante del minimapa es ocultado automáticamente.","Presentar los caracteres reales en una línea (por oposición a bloques de color)","Limitar el ancho del minimapa para presentar como mucho un número de columnas determinado","Controla si se inicializa la cadena de búsqueda en Buscar widget en la selección del editor","Controla si el indicador Buscar en selección se activa cuando se seleccionan varios caracteres o líneas de texto en el editor","Las líneas no se ajustarán nunca.","Las líneas se ajustarán en el ancho de la ventanilla.",'Las líneas se ajustarán en "editor.wordWrapColumn".','Las líneas se ajustarán al valor que sea inferior: el tamaño de la ventanilla o el valor de "editor.wordWrapColumn".','Controla cómo se deben ajustar las líneas. Pueden ser:\n - "off" (deshabilitar ajuste),\n - "on" (ajuste de ventanilla),\n - "wordWrapColumn" (ajustar en "editor.wordWrapColumn") o\n - "bounded" (ajustar en la parte mínima de la ventanilla y "editor.wordWrapColumn").',"Controls the wrapping column of the editor when `editor.wordWrap` is 'wordWrapColumn' or 'bounded'.","Controla el sangrado de las líneas ajustadas. Puede ser uno los valores 'none', 'same' o 'indent'.","Se utilizará un multiplicador en los eventos de desplazamiento de la rueda del mouse `deltaX` y `deltaY`",'Se asigna a "Control" en Windows y Linux y a "Comando" en OSX.','Se asigna a "Alt" en Windows y Linux y a "Opción" en OSX.','El modificador que se usará para agregar varios cursores con el mouse. "ctrlCmd" se asigna a "Control" en Windows y Linux y a "Comando" en OSX. Los gestos del mouse Ir a la definición y Abrir vínculo se adaptarán de modo que no entren en conflicto con el modificador multicursor.',"Habilita sugerencias rápidas en las cadenas.","Habilita sugerencias rápidas en los comentarios.","Habilita sugerencias rápidas fuera de las cadenas y los comentarios.","Controla si las sugerencias deben mostrarse automáticamente mientras se escribe","Controla el retardo en ms tras el cual aparecerán sugerencias rápidas","Habilita el desplegable que muestra documentación de los parámetros e información de los tipos mientras escribe","Controla si el editor debe cerrar automáticamente los corchetes después de abrirlos","Controla si el editor debe dar formato automáticamente a la línea después de escribirla","Controla si el editor debe formatear automáticamente el contenido pegado. Debe haber disponible un formateador capaz de aplicar formato a un intervalo dentro de un documento.","Controls if the editor should automatically adjust the indentation when users type, paste or move lines. Indentation rules of the language must be available. ","Controla si las sugerencias deben aparecer de forma automática al escribir caracteres desencadenadores",'Controla si las sugerencias deben aceptarse en "Entrar" (además de "TAB"). Ayuda a evitar la ambigüedad entre insertar nuevas líneas o aceptar sugerencias. El valor "smart" significa que solo se acepta una sugerencia con Entrar cuando se realiza un cambio textual.','Controla si se deben aceptar sugerencias en los caracteres de confirmación. Por ejemplo, en Javascript, el punto y coma (";") puede ser un carácter de confirmación que acepta una sugerencia y escribe ese carácter.',"Controla si se muestran los fragmentos de código con otras sugerencias y cómo se ordenan.","Controla si al copiar sin selección se copia la línea actual.","Habilita sugerencias basadas en palabras.","Tamaño de fuente para el widget de sugerencias","Alto de línea para el widget de sugerencias","Controla si el editor debería destacar coincidencias similares a la selección","Controla si el editor debe resaltar los símbolos semánticos.","Controla el número de decoraciones que pueden aparecer en la misma posición en la regla de visión general","Controla si debe dibujarse un borde alrededor de la regla de información general.",'Controlar el estilo de animación del cursor. Los valores posibles son "blink", "smooth", "phase", "expand" y "solid".',"Ampliar la fuente del editor cuando se use la rueda del mouse mientras se presiona Ctrl",'Controla el estilo del cursor. Los valores aceptados son "block", "block-outline", "line", "line-thin", "underline" y "underline-thin"',"Habilita las ligaduras tipográficas.","Controla si el cursor debe ocultarse en la regla de visión general.",'Controla cómo debe representar el editor los espacios en blanco. Las posibilidades son "none", "boundary" y "all". La opción "boundary" no representa los espacios individuales entre palabras.',"Controla si el editor debe representar caracteres de control","Controla si el editor debe representar guías de sangría.",'Controla cómo el editor debe presentar el resaltado de línea. Las posibilidades son "ninguno", "margen", "línea" y "todo".',"Controla si el editor muestra lentes de código","Controla si el editor tiene habilitado el plegado de código.","Controla cuándo los controles de plegado del margen son ocultados automáticamente.","Resaltar corchetes coincidentes cuando se seleccione uno de ellos.","Controla si el editor debe representar el margen de glifo vertical. El margen de glifo se usa, principalmente, para depuración.","La inserción y eliminación del espacio en blanco sigue a las tabulaciones.","Quitar espacio en blanco final autoinsertado","Mantiene abierto el editor interactivo incluso al hacer doble clic en su contenido o presionar Escape.","Controla si el editor debe permitir mover selecciones mediante arrastrar y colocar.","El editor usará API de plataforma para detectar cuándo está conectado un lector de pantalla.","El editor se optimizará de forma permanente para su uso con un editor de pantalla.","El editor nunca se optimizará para su uso con un lector de pantalla.","Controla si el editor se debe ejecutar en un modo optimizado para lectores de pantalla.","Controla si el editor debe detectar enlaces y hacerlos cliqueables","Controla si el editor de diferencias muestra las diferencias en paralelo o alineadas.","Controla si el editor de diferencias muestra los cambios de espacio inicial o espacio final como diferencias.","Controla si el editor de diff muestra indicadores +/- para cambios agregados/quitados","Controla si el portapapeles principal de Linux debe admitirse."],"vs/editor/common/config/editorOptions":["No se puede acceder al editor en este momento. Presione Alt+F1 para ver opciones.","Contenido del editor"],"vs/editor/common/controller/cursor":["Excepción inesperada al ejecutar el comando."],"vs/editor/common/model/textModelWithTokens":["Error en el modo al convertir la entrada en tokens."],"vs/editor/common/modes/modesRegistry":["Texto sin formato"],"vs/editor/common/services/bulkEdit":["Estos archivos han cambiado durante el proceso: {0}","No se realizaron ediciones","{0} ediciones de texto en {1} archivos","{0} ediciones de texto en un archivo"],"vs/editor/common/services/modelServiceImpl":["[{0}]\n{1}","[{0}] {1}"],"vs/editor/common/view/editorColorRegistry":["Color de fondo del resaltado de línea en la posición del cursor.","Color de fondo del borde alrededor de la línea en la posición del cursor.","Color de fondo de los intervaloa resaltadoa; por ejemplo, para las características Quick Open y Buscar.","Color del cursor del editor.","Color de los caracteres de espacio en blanco del editor.","Color de las guías de sangría del editor.","Color de números de línea del editor.","Color de las reglas del editor","Color principal de lentes de código en el editor","Color de fondo tras corchetes coincidentes","Color de bloques con corchetes coincidentes","Color del borde de la regla de visión general.","Color de fondo del margen del editor. Este espacio contiene los márgenes de glifos y los números de línea.","Color de primer plano de squigglies de error en el editor.","Color de borde de squigglies de error en el editor.","Color de primer plano de squigglies de advertencia en el editor.","Color de borde de squigglies de advertencia en el editor."],"vs/editor/contrib/bracketMatching/common/bracketMatching":["Ir al corchete"],"vs/editor/contrib/caretOperations/common/caretOperations":["Mover símbolo de inserción a la izquierda","Mover símbolo de inserción a la derecha"],"vs/editor/contrib/caretOperations/common/transpose":["Transponer letras"],"vs/editor/contrib/clipboard/browser/clipboard":["Cortar","Copiar","Pegar","Copiar con resaltado de sintaxis"],"vs/editor/contrib/comment/common/comment":["Alternar comentario de línea","Agregar comentario de línea","Quitar comentario de línea","Alternar comentario de bloque"],"vs/editor/contrib/contextmenu/browser/contextmenu":["Mostrar menú contextual del editor"],"vs/editor/contrib/find/browser/findWidget":["Buscar","Buscar","Coincidencia anterior","Coincidencia siguiente","Buscar en selección","Cerrar","Reemplazar","Reemplazar","Reemplazar","Reemplazar todo","Alternar modo de reemplazar","Solo se resaltan los primeros 999 resultados, pero todas las operaciones de búsqueda trabajan en todo el texto.","{0} de {1}","Sin resultados"],"vs/editor/contrib/find/common/findController":["Buscar","Buscar siguiente","Buscar anterior","Buscar selección siguiente","Buscar selección anterior","Reemplazar","Agregar selección hasta la siguiente coincidencia de búsqueda","Agregar selección hasta la anterior coincidencia de búsqueda","Mover última selección hasta la siguiente coincidencia de búsqueda","Mover última selección hasta la anterior coincidencia de búsqueda","Seleccionar todas las repeticiones de coincidencia de búsqueda","Cambiar todas las ocurrencias"],"vs/editor/contrib/folding/browser/folding":["Desplegar","Desplegar de forma recursiva","Plegar","Plegar de forma recursiva","Plegar todo","Desplegar todo","Nivel de plegamiento {0}"],"vs/editor/contrib/format/browser/formatActions":["1 edición de formato en la línea {0}","{0} ediciones de formato en la línea {1}","1 edición de formato entre las líneas {0} y {1}","{0} ediciones de formato entre las líneas {1} y {2}","Dar formato al documento","Dar formato a la selección"],"vs/editor/contrib/goToDeclaration/browser/goToDeclarationCommands":['No se encontró ninguna definición para "{0}"',"No se encontró ninguna definición"," – {0} definiciones","Ir a definición","Abrir definición en el lateral","Ver la definición",'No se encontró ninguna implementación para "{0}"',"No se encontró ninguna implementación","{0} implementaciones","Ir a implementación","Inspeccionar implementación",'No se encontró ninguna definición de tipo para "{0}"',"No se encontró ninguna definición de tipo"," – {0} definiciones de tipo","Ir a la definición de tipo","Inspeccionar definición de tipo"],"vs/editor/contrib/goToDeclaration/browser/goToDeclarationMouse":["Haga clic para mostrar {0} definiciones."],"vs/editor/contrib/gotoError/browser/gotoError":["({0}/{1})","Ir al error o la advertencia siguiente","Ir al error o la advertencia anterior","Color de los errores del widget de navegación de marcadores del editor.","Color de las advertencias del widget de navegación de marcadores del editor.","Fondo del widget de navegación de marcadores del editor."],"vs/editor/contrib/hover/browser/hover":["Mostrar al mantener el puntero"],"vs/editor/contrib/hover/browser/modesContentHover":["Cargando..."],"vs/editor/contrib/inPlaceReplace/common/inPlaceReplace":["Reemplazar con el valor anterior","Reemplazar con el valor siguiente"],"vs/editor/contrib/linesOperations/common/linesOperations":["Copiar línea arriba","Copiar línea abajo","Mover línea hacia arriba","Mover línea hacia abajo","Ordenar líneas en orden ascendente","Ordenar líneas en orden descendente","Recortar espacio final","Eliminar línea","Sangría de línea","Anular sangría de línea","Insertar línea arriba","Insertar línea debajo","Eliminar todo a la izquierda","Eliminar todo lo que está a la derecha","Unir líneas","Transponer caracteres alrededor del cursor","Transformar a mayúsculas","Transformar a minúsculas"],"vs/editor/contrib/links/browser/links":["Cmd + clic para abrir el vínculo","Ctrl + clic para abrir el vínculo","Alt + clic para seguir el vínculo","No se pudo abrir este vínculo porque no tiene un formato correcto: {0}","No se pudo abrir este vínculo porque falta el destino.","Abrir vínculo"],"vs/editor/contrib/multicursor/common/multicursor":["Agregar cursor arriba","Agregar cursor debajo","Añadir cursores a finales de línea"],"vs/editor/contrib/parameterHints/browser/parameterHints":["Sugerencias para parámetros Trigger"],"vs/editor/contrib/parameterHints/browser/parameterHintsWidget":["{0}, sugerencia"],"vs/editor/contrib/quickFix/browser/quickFixCommands":["Mostrar correcciones ({0})","Mostrar correcciones","Corrección rápida"],"vs/editor/contrib/referenceSearch/browser/referenceSearch":[" – {0} referencias","Buscar todas las referencias"],"vs/editor/contrib/referenceSearch/browser/referencesController":["Cargando..."],"vs/editor/contrib/referenceSearch/browser/referencesModel":["símbolo en {0} linea {1} en la columna {2}","1 símbolo en {0}, ruta de acceso completa {1}","{0} símbolos en {1}, ruta de acceso completa {2}","No se encontraron resultados","Encontró 1 símbolo en {0}","Encontró {0} símbolos en {1}","Encontró {0} símbolos en {1} archivos"],"vs/editor/contrib/referenceSearch/browser/referencesWidget":["Error al resolver el archivo.","{0} referencias","{0} referencia","vista previa no disponible","Referencias","No hay resultados.","Referencias","Color de fondo del área de título de la vista de inspección.","Color del título de la vista de inpección.","Color de la información del título de la vista de inspección.","Color de los bordes y la flecha de la vista de inspección.","Color de fondo de la lista de resultados de vista de inspección.","Color de primer plano de los nodos de inspección en la lista de resultados.","Color de primer plano de los archivos de inspección en la lista de resultados.","Color de fondo de la entrada seleccionada en la lista de resultados de vista de inspección.","Color de primer plano de la entrada seleccionada en la lista de resultados de vista de inspección.","Color de fondo del editor de vista de inspección.","Color de fondo del margen en el editor de vista de inspección.","Buscar coincidencia con el color de resaltado de la lista de resultados de vista de inspección.","Buscar coincidencia del color de resultado del editor de vista de inspección."],"vs/editor/contrib/rename/browser/rename":["No hay ningún resultado.","Nombre cambiado correctamente de '{0}' a '{1}'. Resumen: {2}","No se pudo cambiar el nombre.","Cambiar el nombre del símbolo"],"vs/editor/contrib/rename/browser/renameInputField":["Cambie el nombre de la entrada. Escriba el nuevo nombre y presione Entrar para confirmar."],"vs/editor/contrib/smartSelect/common/smartSelect":["Expandir selección","Reducir selección"],"vs/editor/contrib/suggest/browser/suggestController":["Aceptando '{0}' Insertó el siguente texto : {1}","Sugerencias para Trigger"],"vs/editor/contrib/suggest/browser/suggestWidget":["Color de fondo del widget sugerido.","Color de borde del widget sugerido.","Color de primer plano del widget sugerido.","Color de fondo de la entrada seleccionada del widget sugerido.","Color del resaltado coincidido en el widget sugerido.","Leer más...{0}","{0}, sugerencia, con detalles","{0}, sugerencia","Leer menos...{0}","Cargando...","No hay sugerencias.","{0}, aceptada","{0}, sugerencia, con detalles","{0}, sugerencia"],"vs/editor/contrib/toggleTabFocusMode/common/toggleTabFocusMode":["Alternar tecla de tabulación para mover el punto de atención"],"vs/editor/contrib/wordHighlighter/common/wordHighlighter":["Color de fondo de un símbolo durante el acceso de lectura; por ejemplo, cuando se lee una variable.","Color de fondo de un símbolo durante el acceso de escritura; por ejemplo, cuando se escribe una variable."],"vs/editor/contrib/zoneWidget/browser/peekViewWidget":["Cerrar"],"vs/editor/standalone/browser/inspectTokens/inspectTokens":["Developer: Inspect Tokens"],"vs/editor/standalone/browser/quickOpen/gotoLine":["Go to line {0} and character {1}","Go to line {0}","Type a line number between 1 and {0} to navigate to","Type a character between 1 and {0} to navigate to","Go to line {0}","Type a line number, followed by an optional colon and a character number to navigate to","Go to Line..."],"vs/editor/standalone/browser/quickOpen/quickCommand":["{0}, commands","Type the name of an action you want to execute","Command Palette"],"vs/editor/standalone/browser/quickOpen/quickOutline":["{0}, symbols","Type the name of an identifier you wish to navigate to","Go to Symbol...","symbols ({0})","modules ({0})","classes ({0})","interfaces ({0})","methods ({0})","functions ({0})","properties ({0})","variables ({0})","variables ({0})","constructors ({0})","calls ({0})"],"vs/editor/standalone/browser/standaloneCodeEditor":["Editor content","Press Ctrl+F1 for Accessibility Options.","Press Alt+F1 for Accessibility Options."],"vs/editor/standalone/browser/toggleHighContrast/toggleHighContrast":["Toggle High Contrast Theme"],"vs/platform/configuration/common/configurationRegistry":["La configuración predeterminada se reemplaza","Establecer los valores de configuración que se reemplazarán para el lenguaje {0}.","Establecer los valores de configuración que se reemplazarán para un lenguaje.",'No se puede registrar "{0}". Coincide con el patrón de propiedad \'\\\\[.*\\\\]$\' para describir la configuración del editor específica del lenguaje. Utilice la contribución "configurationDefaults".','No se puede registrar "{0}". Esta propiedad ya está registrada.'],"vs/platform/keybinding/common/abstractKeybindingService":["Se presionó ({0}). Esperando la siguiente tecla...","La combinación de teclas ({0}, {1}) no es ningún comando."],"vs/platform/message/common/message":["Cerrar","Más tarde","Cancelar"],"vs/platform/theme/common/colorRegistry":["Formato de color no válido. Use #TGB, #RBGA, #RRGGBB o #RRGGBBAA","Colores usados en el área de trabajo.","Color de primer plano general. Este color solo se usa si un componente no lo invalida.","Color de primer plano general para los mensajes de erroe. Este color solo se usa si un componente no lo invalida.","Color de primer plano para el texto descriptivo que proporciona información adicional, por ejemplo para una etiqueta.","Color de borde de los elementos con foco. Este color solo se usa si un componente no lo invalida.","Un borde adicional alrededor de los elementos para separarlos unos de otros y así mejorar el contraste.","Un borde adicional alrededor de los elementos activos para separarlos unos de otros y así mejorar el contraste.","El color de fondo del texto seleccionado en el área de trabajo (por ejemplo, campos de entrada o áreas de texto). Esto no se aplica a las selecciones dentro del editor.","Color para los separadores de texto.","Color de primer plano para los vínculos en el texto.","Color de primer plano para los vínculos activos en el texto.","Color de primer plano para los segmentos de texto con formato previo.","Color de fondo para los bloques en texto.","Color de borde para los bloques en texto.","Color de fondo para los bloques de código en el texto.","Color de sombra de los widgets dentro del editor, como buscar/reemplazar","Fondo de cuadro de entrada.","Primer plano de cuadro de entrada.","Borde de cuadro de entrada.","Color de borde de opciones activadas en campos de entrada.","Color de primer plano para el marcador de posición de texto","Color de fondo de validación de entrada para gravedad de información.","Color de borde de validación de entrada para gravedad de información.","Color de fondo de validación de entrada para advertencia de información.","Color de borde de validación de entrada para gravedad de advertencia.","Color de fondo de validación de entrada para gravedad de error.","Color de borde de valdación de entrada para gravedad de error.","Fondo de lista desplegable.","Primer plano de lista desplegable.","Borde de lista desplegable.","Color de fondo de la lista o el árbol del elemento con el foco cuando la lista o el árbol están activos. Una lista o un árbol tienen el foco del teclado cuando están activos, cuando están inactivos no.","Color de fondo de la lista o el árbol del elemento con el foco cuando la lista o el árbol están activos. Una lista o un árbol tienen el foco del teclado cuando están activos, cuando están inactivos no.","Color de fondo de la lista o el árbol del elemento seleccionado cuando la lista o el árbol están activos. Una lista o un árbol tienen el foco del teclado cuando están activos, cuando están inactivos no.","Color de primer plano de la lista o el árbol del elemento con el foco cuando la lista o el árbol están activos. Una lista o un árbol tienen el foco del teclado cuando están activos, cuando están inactivos no.","Color de fondo de la lista o el árbol del elemento seleccionado cuando la lista o el árbol están inactivos. Una lista o un árbol tienen el foco del teclado cuando están activos, cuando están inactivos no.","Color de primer plano de la lista o el árbol del elemento con el foco cuando la lista o el árbol esta inactiva. Una lista o un árbol tiene el foco del teclado cuando está activo, cuando esta inactiva no.","Fondo de la lista o el árbol al mantener el mouse sobre los elementos.","Color de primer plano de la lista o el árbol al pasar por encima de los elementos con el ratón.","Fondo de arrastrar y colocar la lista o el árbol al mover los elementos con el mouse.","Color de primer plano de la lista o el árbol de las coincidencias resaltadas al buscar dentro de la lista o el ábol.","Selector de color rápido para la agrupación de etiquetas.","Selector de color rápido para la agrupación de bordes.","Color de primer plano del botón.","Color de fondo del botón.","Color de fondo del botón al mantener el puntero.","Color de fondo de la insignia. Las insignias son pequeñas etiquetas de información, por ejemplo los resultados de un número de resultados.","Color de fondo de la insignia. Las insignias son pequeñas etiquetas de información, por ejemplo los resultados de un número de resultados.","Sombra de la barra de desplazamiento indica que la vista se ha despazado.","Color de fondo del control deslizante.","Color de fondo del control deslizante al mantener el puntero.","Color de fondo del control deslizante cuando está activo.","Color de fondo para la barra de progreso que se puede mostrar para las operaciones de larga duración.","Color de fondo del editor.","Color de primer plano predeterminado del editor.","Color de fondo del editor de widgets como buscar/reemplazar","Color de borde de los widgets del editor. El color solo se usa si el widget elige tener un borde y no invalida el color.","Color de la selección del editor.","Color del texto seleccionado para alto contraste.","Color de la selección en un editor inactivo.","Color de las regiones con el mismo contenido que la selección.","Color de la coincidencia de búsqueda actual.","Color de las demás coincidencias de búsqueda.","Color del intervalo que limita la búsqueda.","Resaltado debajo de la palabra para la que se muestra un recuadro al mantener el puntero.","Color de fondo al mantener el puntero en el editor.","Color del borde al mantener el puntero en el editor.","Color de los vínculos activos.","Color de fondo para el texto insertado.","Color de fondo para el texto quitado.","Color de contorno para el texto insertado.","Color de contorno para el texto quitado.","Fondo del encabezado actual en conflictos de combinación alineados.","Fondo del contenido actual en conflictos de combinación alineados.","Fondo del encabezado de entrada en conflictos de combinación alineados.","Fondo del contenido de entrada en conflcitos de combinación alineados.","Fondo del encabezado de ancestros comunes en conflictos de combinación alineados.","Fondo del contenido de ancestros comunes en conflictos de combinación alineados.","Color del borde en los encabezados y el divisor en conflictos de combinación alineados.","Primer plano de la regla de visión general actual para conflictos de combinación alineados.","Primer plano de regla de visión general de entrada para conflictos de combinación alineados.","Primer plano de la regla de visión general de ancestros comunes para conflictos de combinación alineados."]}); +define("vs/editor/editor.main.nls.es",{"vs/base/browser/ui/actionbar/actionViewItems":["{0} ({1})"],"vs/base/browser/ui/findinput/findInput":["entrada"],"vs/base/browser/ui/findinput/findInputCheckboxes":["Coincidir mayúsculas y minúsculas","Solo palabras completas","Usar expresión regular"],"vs/base/browser/ui/findinput/replaceInput":["entrada","Conservar may/min"],"vs/base/browser/ui/inputbox/inputBox":["Error: {0}","Advertencia: {0}","Información: {0}"],"vs/base/browser/ui/keybindingLabel/keybindingLabel":["Sin enlazar"],"vs/base/browser/ui/menu/menu":["{0} ({1})"],"vs/base/browser/ui/tree/abstractTree":["Borrar","Desactivar filtro en tipo","Activar filtro en el tipo","No se encontraron elementos","{0} de {1} elementos coincidentes"], +"vs/base/common/errorMessage":["{0}: {1}","Error del sistema ({0})","Se ha producido un error desconocido. Consulte el registro para obtener más detalles.","Se ha producido un error desconocido. Consulte el registro para obtener más detalles.","{0} ({1} errores en total)","Se ha producido un error desconocido. Consulte el registro para obtener más detalles."],"vs/base/common/keybindingLabels":["Ctrl","Mayús","Alt","Windows","Ctrl","Mayús","Alt","Super","Control","Mayús","Alt","Comando","Control","Mayús","Alt","Windows","Control","Mayús","Alt","Super"],"vs/base/parts/quickinput/browser/quickInput":["Atrás","{0} / {1}","Escriba para restringir los resultados.","{0} resultados","{0} seleccionados","Aceptar","Personalizado","Atrás ({0})","Atrás"],"vs/base/parts/quickinput/browser/quickInputList":["Entrada rápida"],"vs/editor/browser/controller/coreCommands":["Anclar al final incluso cuando se vayan a líneas más largas","Anclar al final incluso cuando se vayan a líneas más largas"], +"vs/editor/browser/controller/textAreaHandler":["editor","El editor no es accesible en este momento. Pulse {0} para ver las opciones."],"vs/editor/browser/editorExtensions":["&&Deshacer","Deshacer","&&Rehacer","Rehacer","&&Seleccionar todo","Seleccionar todo"],"vs/editor/browser/widget/codeEditorWidget":["El número de cursores se ha limitado a {0}."],"vs/editor/browser/widget/diffEditorWidget":["Los archivos no se pueden comparar porque uno de ellos es demasiado grande."],"vs/editor/browser/widget/diffReview":["Cerrar","no se han cambiado líneas","1 línea cambiada","{0} líneas cambiadas","Diferencia {0} de {1}: línea original {2}, {3}, línea modificada {4}, {5}","vacío","{0} línea sin cambios {1}","{0} línea original {1} línea modificada {2}","+ {0} línea modificada {1}","- {0} línea original {1}","Ir a la siguiente diferencia","Ir a la diferencia anterior"], +"vs/editor/browser/widget/inlineDiffMargin":["Copiar líneas eliminadas","Copiar línea eliminada","Copiar la línea eliminada ({0})","Revertir este cambio","Copiar la línea eliminada ({0})"], +"vs/editor/common/config/commonEditorConfig":["Editor",'El número de espacios a los que equivale una tabulación. Este valor se invalida en función del contenido del archivo cuando "#editor.detectIndentation#" está activado.','Insertar espacios al presionar "TAB". Este valor se invalida en función del contenido del archivo cuando "#editor.detectIndentation#" está activado. ','Controla si "#editor.tabSize#" y "#editor.insertSpaces#" se detectarán automáticamente al abrir un archivo en función del contenido de este.',"Quitar el espacio en blanco final autoinsertado.","Manejo especial para archivos grandes para desactivar ciertas funciones de memoria intensiva.","Habilita sugerencias basadas en palabras.","El resaltado semántico está habilitado para todos los temas de color.","El resaltado semántico está deshabilitado para todos los temas de color.",'El resaltado semántico está configurado con el valor "semanticHighlighting" del tema de color actual.',"Controla si se muestra semanticHighlighting para los idiomas que lo admiten.",'Mantiene abiertos los editores interactivos, incluso al hacer doble clic en su contenido o presionar "Escape".',"Las lineas por encima de esta longitud no se tokenizarán por razones de rendimiento.","Tiempo de espera en milisegundos después del cual se cancela el cálculo de diferencias. Utilice 0 para no usar tiempo de espera.","Controla si el editor de diferencias muestra las diferencias en paralelo o alineadas.","Cuando está habilitado, el editor de diferencias omite los cambios en los espacios en blanco iniciales o finales.","Controla si el editor de diferencias muestra los indicadores +/- para los cambios agregados o quitados.","Controla si el editor muestra CodeLens."], +"vs/editor/common/config/editorOptions":["El editor usará API de plataforma para detectar cuándo está conectado un lector de pantalla.","El editor se optimizará de forma permanente para su uso con un editor de pantalla.","El editor nunca se optimizará para su uso con un lector de pantalla.","Controla si el editor se debe ejecutar en un modo optimizado para lectores de pantalla.","Controla si se inserta un carácter de espacio al comentar.","Controla si las líneas vacías deben ignorarse con la opción de alternar, agregar o quitar acciones para los comentarios de línea.","Controla si al copiar sin selección se copia la línea actual.","Controla si el cursor debe saltar para buscar coincidencias mientras se escribe.","Controla si la cadena de búsqueda del widget de búsqueda se inicializa desde la selección del editor.","No activar nunca Buscar en la selección automáticamente (predeterminado)","Activar siempre automáticamente Buscar en la selección","Active Buscar en la selección automáticamente cuando se seleccionen varias líneas de contenido.","Controla la condición para activar la búsqueda en la selección de forma automática.","Controla si el widget de búsqueda debe leer o modificar el Portapapeles de búsqueda compartido en macOS.","Controla si Encontrar widget debe agregar más líneas en la parte superior del editor. Si es true, puede desplazarse más allá de la primera línea cuando Encontrar widget está visible.","Controla si la búsqueda se reinicia automáticamente desde el principio (o el final) cuando no se encuentran más coincidencias.","Habilita o deshabilita las ligaduras tipográficas.","Configuración explícita de las características de fuente.","Configura ligaduras de fuentes o entidades de fuente.","Controla el tamaño de fuente en píxeles.",'Solo se permiten las palabras clave "normal" y "negrita" o los números entre 1 y 1000.','Controla el grosor de la fuente. Acepta las palabras clave "normal" y "negrita" o los números entre 1 y 1000.',"Mostrar vista de inspección de los resultados (predeterminado)","Ir al resultado principal y mostrar una vista de inspección","Vaya al resultado principal y habilite la navegación sin peek para otros",'Esta configuración está en desuso. Use configuraciones separadas como "editor.editor.gotoLocation.multipleDefinitions" o "editor.editor.gotoLocation.multipleImplementations" en su lugar.','Controla el comportamiento del comando "Ir a definición" cuando existen varias ubicaciones de destino.','Controla el comportamiento del comando "Ir a definición de tipo" cuando existen varias ubicaciones de destino.','Controla el comportamiento del comando "Ir a declaración" cuando existen varias ubicaciones de destino.','Controla el comportamiento del comando "Ir a implementaciones" cuando existen varias ubicaciones de destino.','Controla el comportamiento del comando "Ir a referencias" cuando existen varias ubicaciones de destino.','Identificador de comando alternativo que se ejecuta cuando el resultado de "Ir a definición" es la ubicación actual.','Id. de comando alternativo que se está ejecutando cuando el resultado de "Ir a definición de tipo" es la ubicación actual.','Id. de comando alternativo que se está ejecutando cuando el resultado de "Ir a declaración" es la ubicación actual.','Id. de comando alternativo que se está ejecutando cuando el resultado de "Ir a implementación" es la ubicación actual.','Identificador de comando alternativo que se ejecuta cuando el resultado de "Ir a referencia" es la ubicación actual.',"Controla si se muestra la información al mantener el puntero sobre un elemento.","Controla el retardo en milisegundos después del cual se muestra la información al mantener el puntero sobre un elemento.","Controla si la información que aparece al mantener el puntero sobre un elemento permanece visible al mover el mouse sobre este.","Habilita la bombilla de acción de código en el editor.","Controla la altura de línea. Usa 0 para utilizar la altura del tamaño de fuente.","Controla si se muestra el minimapa.","El minimapa tiene el mismo tamaño que el contenido del editor (y podría desplazarse).","El minimapa se estirará o reducirá según sea necesario para ocupar la altura del editor (sin desplazamiento).","El minimapa se reducirá según sea necesario para no ser nunca más grande que el editor (sin desplazamiento).","Controla el tamaño del minimapa.","Controla en qué lado se muestra el minimapa.","Controla cuándo se muestra el control deslizante del minimapa.","Escala del contenido dibujado en el minimapa: 1, 2 o 3.","Represente los caracteres reales en una línea, por oposición a los bloques de color.","Limite el ancho del minimapa para representar como mucho un número de columnas determinado.","Controla la cantidad de espacio entre el borde superior del editor y la primera línea.","Controla el espacio entre el borde inferior del editor y la última línea.","Habilita un elemento emergente que muestra documentación de los parámetros e información de los tipos mientras escribe.","Controla si el menú de sugerencias de parámetros se cicla o se cierra al llegar al final de la lista.","Habilita sugerencias rápidas en las cadenas.","Habilita sugerencias rápidas en los comentarios.","Habilita sugerencias rápidas fuera de las cadenas y los comentarios.","Controla si deben mostrarse sugerencias automáticamente mientras se escribe.","Los números de línea no se muestran.","Los números de línea se muestran como un número absoluto.","Los números de línea se muestran como distancia en líneas a la posición del cursor.","Los números de línea se muestran cada 10 líneas.","Controla la visualización de los números de línea.","Número de caracteres monoespaciales en los que se representará esta regla del editor.","Color de esta regla del editor.","Muestra reglas verticales después de un cierto número de caracteres monoespaciados. Usa múltiples valores para mostrar múltiples reglas. Si la matriz está vacía, no se muestran reglas.","Inserte la sugerencia sin sobrescribir el texto a la derecha del cursor.","Inserte la sugerencia y sobrescriba el texto a la derecha del cursor.","Controla si las palabras se sobrescriben al aceptar la finalización. Tenga en cuenta que esto depende de las extensiones que participan en esta característica.","Controla si el filtrado y la ordenación de sugerencias se tienen en cuenta para los errores ortográficos pequeños.","Controla si la ordenación de palabras mejora lo que aparece cerca del cursor.",'Controla si las selecciones de sugerencias recordadas se comparten entre múltiples áreas de trabajo y ventanas (necesita "#editor.suggestSelection#").',"Controla si un fragmento de código activo impide sugerencias rápidas.","Controla si mostrar u ocultar iconos en sugerencias.","Controla cuántas sugerencias mostrará IntelliSense antes de que aparezca una barra de desplazamiento (máximo 15).",'Esta configuración está en desuso. Use configuraciones separadas como "editor.suggest.showKeyword" o "editor.suggest.showSnippets" en su lugar.','Cuando está habilitado, IntelliSense muestra sugerencias de tipo "method".','Cuando está habilitado, IntelliSense muestra sugerencias de "función".','Cuando está habilitado, IntelliSense muestra sugerencias de tipo "constructor".','Cuando está habilitado, IntelliSense muestra sugerencias de tipo "field".','Cuando está habilitado, IntelliSense muestra sugerencias de tipo "variable".','Cuando está habilitado, IntelliSense muestra sugerencias de tipo "class".','Cuando está habilitado, IntelliSense muestra sugerencias de tipo "struct".','Cuando está habilitado, IntelliSense muestra sugerencias de tipo "interface".','Cuando está habilitado, IntelliSense muestra sugerencias de tipo "module".','Cuando está habilitado, IntelliSense muestra sugerencias de tipo "property".','Cuando está habilitado, IntelliSense muestra sugerencias de tipo "event".','Cuando está habilitado, IntelliSense muestra sugerencias de tipo "operator".','Cuando está habilitado, IntelliSense muestra sugerencias de tipo "unit".','Cuando está habilitado, IntelliSense muestra sugerencias de "value".','Cuando está habilitado, IntelliSense muestra sugerencias de tipo "constant".','Cuando está habilitado, IntelliSense muestra sugerencias de tipo "enum".','Cuando está habilitado, IntelliSense muestra sugerencias de tipo "enumMember".','Cuando está habilitado, IntelliSense muestra sugerencias de tipo "keyword".','Si está habilitado, IntelliSense muestra sugerencias de tipo "text".','Cuando está habilitado, IntelliSense muestra sugerencias de "color".','Cuando está habilitado, IntelliSense muestra sugerencias de tipo "file".','Cuando está habilitado, IntelliSense muestra sugerencias de tipo "reference".','Cuando está habilitado, IntelliSense muestra sugerencias de tipo "customcolor".','Si está habilitado, IntelliSense muestra sugerencias de tipo "folder".','Cuando está habilitado, IntelliSense muestra sugerencias de tipo "typeParameter".','Cuando está habilitado, IntelliSense muestra sugerencias de tipo "snippet".',"Cuando está habilitado, IntelliSense muestra sugerencias del usuario.","Cuando está habilitado IntelliSense muestra sugerencias para problemas.","Controla la visibilidad de la barra de estado en la parte inferior del widget de sugerencias.",'Controla si se deben aceptar sugerencias en los caracteres de confirmación. Por ejemplo, en Javascript, el punto y coma (";") puede ser un carácter de confirmación que acepta una sugerencia y escribe ese carácter.','Aceptar solo una sugerencia con "Entrar" cuando realiza un cambio textual.','Controla si las sugerencias deben aceptarse con "Entrar", además de "TAB". Ayuda a evitar la ambigüedad entre insertar nuevas líneas o aceptar sugerencias.',"Controla el número de líneas en el editor que puede leer un lector de pantalla. Advertencia: Esto puede afectar al rendimiento de números superiores al predeterminado.","Contenido del editor","Utilizar las configuraciones del lenguaje para determinar cuándo cerrar los corchetes automáticamente.","Cerrar automáticamente los corchetes cuando el cursor esté a la izquierda de un espacio en blanco.","Controla si el editor debe cerrar automáticamente los corchetes después de que el usuario agregue un corchete de apertura.","Escriba en las comillas o los corchetes solo si se insertaron automáticamente.","Controla si el editor debe escribir entre comillas o corchetes.","Utilizar las configuraciones del lenguaje para determinar cuándo cerrar las comillas automáticamente. ","Cerrar automáticamente las comillas cuando el cursor esté a la izquierda de un espacio en blanco. ","Controla si el editor debe cerrar automáticamente las comillas después de que el usuario agrega uma comilla de apertura.","El editor no insertará la sangría automáticamente.","El editor mantendrá la sangría de la línea actual.","El editor respetará la sangría de la línea actual y los corchetes definidos por el idioma.","El editor mantendrá la sangría de la línea actual, respetará los corchetes definidos por el idioma e invocará onEnterRules especiales definidos por idiomas.","El editor respetará la sangría de la línea actual, los corchetes definidos por idiomas y las reglas indentationRules definidas por idiomas, además de invocar reglas onEnterRules especiales.","Controla si el editor debe ajustar automáticamente la sangría mientras los usuarios escriben, pegan, mueven o sangran líneas.","Use las configuraciones de idioma para determinar cuándo delimitar las selecciones automáticamente.","Envolver con comillas, pero no con corchetes.","Envolver con corchetes, pero no con comillas.","Controla si el editor debe delimitar automáticamente las selecciones.","Controla si el editor muestra CodeLens.","Controla si el editor debe representar el Selector de colores y los elementos Decorator de color en línea.","Habilite que la selección con el mouse y las teclas esté realizando la selección de columnas.","Controla si el resaltado de sintaxis debe ser copiado al portapapeles.","Controla el estilo de animación del cursor.","Controla si la animación suave del cursor debe estar habilitada.","Controla el estilo del cursor.",'Controla el número mínimo de líneas iniciales y finales visibles que rodean al cursor. Se conoce como "scrollOff" o "scrollOffset" en algunos otros editores.','Solo se aplica "cursorSurroundingLines" cuando se desencadena mediante el teclado o la API.','"cursorSurroundingLines" se aplica siempre.','Controla cuando se debe aplicar "cursorSurroundingLines".','Controla el ancho del cursor cuando "#editor.cursorStyle#" se establece en "line".',"Controla si el editor debe permitir mover las selecciones mediante arrastrar y colocar.",'Multiplicador de la velocidad de desplazamiento al presionar "Alt".',"Controla si el editor tiene el plegado de código habilitado.","Utilice una estrategia de plegado específica del idioma, si está disponible, de lo contrario la basada en sangría.","Utilice la estrategia de plegado basada en sangría.","Controla la estrategia para calcular rangos de plegado.","Controla si el editor debe destacar los rangos plegados.","Controla si al hacer clic en el contenido vacío después de una línea plegada se desplegará la línea.","Controla la familia de fuentes.","Controla si el editor debe dar formato automáticamente al contenido pegado. Debe haber disponible un formateador capaz de aplicar formato a un rango dentro de un documento. ","Controla si el editor debe dar formato a la línea automáticamente después de escribirla.","Controla si el editor debe representar el margen de glifo vertical. El margen de glifo se usa, principalmente, para depuración.","Controla si el cursor debe ocultarse en la regla de información general.","Controla si el editor debe resaltar la guía de sangría activa.","Controla el espacio entre letras en píxeles.","Controla si el editor debe detectar vínculos y hacerlos interactivos.","Resaltar paréntesis coincidentes.",'Se usará un multiplicador en los eventos de desplazamiento de la rueda del mouse "deltaX" y "deltaY". ','Ampliar la fuente del editor cuando se use la rueda del mouse mientras se presiona "Ctrl".',"Combinar varios cursores cuando se solapan.",'Se asigna a "Control" en Windows y Linux y a "Comando" en macOS.','Se asigna a "Alt" en Windows y Linux y a "Opción" en macOS.',"El modificador que se usará para agregar varios cursores con el mouse. Los gestos del mouse Ir a definición y Abrir vínculo se adaptarán de modo que no entren en conflicto con el modificador multicursor. [Más información](https://code.visualstudio.com/docs/editor/codebasics#_multicursor-modifier).","Cada cursor pega una única línea del texto.","Cada cursor pega el texto completo.","Controla el pegado cuando el recuento de líneas del texto pegado coincide con el recuento de cursores.","Controla si el editor debe resaltar las apariciones de símbolos semánticos.","Controla si debe dibujarse un borde alrededor de la regla de información general.","Enfocar el árbol al abrir la inspección","Enfocar el editor al abrir la inspección","Controla si se debe enfocar el editor en línea o el árbol en el widget de vista.","Controla si el gesto del mouse Ir a definición siempre abre el widget interactivo.","Controla el retraso, en milisegundos, tras el cual aparecerán sugerencias rápidas.","Controla si el editor cambia el nombre automáticamente en el tipo.","Controla si el editor debe representar caracteres de control.","Controla si el editor debe representar guías de sangría.","Representar el número de la última línea cuando el archivo termina con un salto de línea.","Resalta el medianil y la línea actual.","Controla cómo debe representar el editor el resaltado de línea actual.","Controla si el editor debe representar el resaltado de la línea actual solo cuando el editor está enfocado","Representa caracteres de espacio en blanco, excepto los espacios individuales entre palabras.","Represente los caracteres de espacio en blanco solo en el texto seleccionado.","Representar solo los caracteres de espacio en blanco al final","Controla la forma en que el editor debe representar los caracteres de espacio en blanco.","Controla si las selecciones deberían tener las esquinas redondeadas.","Controla el número de caracteres adicionales a partir del cual el editor se desplazará horizontalmente.","Controla si el editor seguirá haciendo scroll después de la última línea.","Desplácese solo a lo largo del eje predominante cuando se desplace vertical y horizontalmente al mismo tiempo. Evita la deriva horizontal cuando se desplaza verticalmente en un trackpad.","Controla si el portapapeles principal de Linux debe admitirse.","Controla si el editor debe destacar las coincidencias similares a la selección.","Mostrar siempre los controles de plegado.","Mostrar solo los controles de plegado cuando el mouse está sobre el medianil.","Controla cuándo se muestran los controles de plegado en el medianil.","Controla el fundido de salida del código no usado.","Controla las variables en desuso tachadas.","Mostrar sugerencias de fragmentos de código por encima de otras sugerencias.","Mostrar sugerencias de fragmentos de código por debajo de otras sugerencias.","Mostrar sugerencias de fragmentos de código con otras sugerencias.","No mostrar sugerencias de fragmentos de código.","Controla si se muestran los fragmentos de código con otras sugerencias y cómo se ordenan.","Controla si el editor se desplazará con una animación.","Tamaño de la fuente para el widget de sugerencias. Cuando se establece a `0`, se utilizará el valor `#editor.fontSize#`.","Altura de la línea del widget de sugerencias. Cuando se establece a `0`, se utiliza el valor `#editor.lineHeight#`.","Controla si deben aparecer sugerencias de forma automática al escribir caracteres desencadenadores.","Seleccionar siempre la primera sugerencia.",'Seleccione sugerencias recientes a menos que al escribir más se seleccione una, por ejemplo, "console.| -> console.log" porque "log" se ha completado recientemente.','Seleccione sugerencias basadas en prefijos anteriores que han completado esas sugerencias, por ejemplo, "co -> console" y "con -> const".',"Controla cómo se preseleccionan las sugerencias cuando se muestra la lista,","La pestaña se completará insertando la mejor sugerencia de coincidencia encontrada al presionar la pestaña","Deshabilitar los complementos para pestañas.","La pestaña se completa con fragmentos de código cuando su prefijo coincide. Funciona mejor cuando las 'quickSuggestions' no están habilitadas.","Habilita completar pestañas.","Los terminadores de línea no habituales se omiten.","Advertencia de terminadores de línea inusuales que se quitarán.","Los terminadores de línea no habituales se quitan automáticamente.","Quite los terminadores de línea inusuales que podrían provocar problemas.","La inserción y eliminación del espacio en blanco sigue a las tabulaciones.","Caracteres que se usarán como separadores de palabras al realizar operaciones o navegaciones relacionadas con palabras.","Las líneas no se ajustarán nunca.","Las líneas se ajustarán en el ancho de la ventanilla.",'Las líneas se ajustarán al valor de "#editor.wordWrapColumn#". ','Las líneas se ajustarán al valor que sea inferior: el tamaño de la ventanilla o el valor de "#editor.wordWrapColumn#".',"Controla cómo deben ajustarse las líneas.",'Controla la columna de ajuste del editor cuando "#editor.wordWrap#" es "wordWrapColumn" o "bounded".',"No hay sangría. Las líneas ajustadas comienzan en la columna 1.","A las líneas ajustadas se les aplica la misma sangría que al elemento primario.","A las líneas ajustadas se les aplica una sangría de +1 respecto al elemento primario.","A las líneas ajustadas se les aplica una sangría de +2 respecto al elemento primario.","Controla la sangría de las líneas ajustadas.","Se supone que todos los caracteres son del mismo ancho. Este es un algoritmo rápido que funciona correctamente para fuentes monoespaciales y ciertos scripts (como caracteres latinos) donde los glifos tienen el mismo ancho.","Delega el cálculo de puntos de ajuste en el explorador. Es un algoritmo lento, que podría causar bloqueos para archivos grandes, pero funciona correctamente en todos los casos.","Controla el algoritmo que calcula los puntos de ajuste."], +"vs/editor/common/model/editStack":["Escribiendo"],"vs/editor/common/modes/modesRegistry":["Texto sin formato"], +"vs/editor/common/standaloneStrings":["Sin selección","Línea {0}, columna {1} ({2} seleccionadas)","Línea {0}, columna {1}","{0} selecciones ({1} caracteres seleccionados)","{0} selecciones",'Se cambiará ahora el valor "accessibilitySupport" a "activado".',"Se abrirá ahora la página de documentación de accesibilidad del editor.","en un panel de solo lectura de un editor de diferencias.","en un panel de un editor de diferencias.","en un editor de código de solo lectura"," en un editor de código","Para configurar el editor de forma que se optimice su uso con un lector de pantalla, presione ahora Comando+E.","Para configurar el editor de forma que se optimice su uso con un lector de pantalla, presione ahora Control+E.","El editor está configurado para optimizarse para su uso con un lector de pantalla.","El editor está configurado para que no se optimice nunca su uso con un lector de pantalla, que en este momento no es el caso.","Al presionar TAB en el editor actual, el foco se mueve al siguiente elemento activable. Presione {0} para activar o desactivar este comportamiento.","Al presionar TAB en el editor actual, el foco se mueve al siguiente elemento activable. El comando {0} no se puede desencadenar actualmente mediante un enlace de teclado.","Al presionar TAB en el editor actual, se insertará el carácter de tabulación. Presione {0} para activar o desactivar este comportamiento.","Al presionar TAB en el editor actual, se insertará el carácter de tabulación. El comando {0} no se puede desencadenar actualmente mediante un enlace de teclado.","Presione ahora Comando+H para abrir una ventana del explorador con más información relacionada con la accesibilidad del editor.","Presione ahora Control+H para abrir una ventana del explorador con más información relacionada con la accesibilidad del editor.","Para descartar esta información sobre herramientas y volver al editor, presione Esc o Mayús+Escape.","Mostrar ayuda de accesibilidad","Desarrollador: inspeccionar tokens","Vaya a Línea/Columna...","Mostrar todos los proveedores de acceso rápido","Paleta de comandos","Mostrar y ejecutar comandos","Ir a símbolo...","Ir a símbolo por categoría...","Contenido del editor","Presione Alt+F1 para ver las opciones de accesibilidad.","Alternar tema de contraste alto","{0} ediciones realizadas en {1} archivos"], +"vs/editor/common/view/editorColorRegistry":["Color de fondo para la línea resaltada en la posición del cursor.","Color de fondo del borde alrededor de la línea en la posición del cursor.","Color de fondo de rangos resaltados, como en abrir rápido y encontrar características. El color no debe ser opaco para no ocultar decoraciones subyacentes.","Color de fondo del borde alrededor de los intervalos resaltados.","Color de fondo del símbolo destacado, como Ir a definición o Ir al siguiente/anterior símbolo. El color no debe ser opaco para no ocultar la decoración subyacente.","Color de fondo del borde alrededor de los símbolos resaltados.","Color del cursor del editor.","Color de fondo del cursor de edición. Permite personalizar el color del caracter solapado por el bloque del cursor.","Color de los caracteres de espacio en blanco del editor.","Color de las guías de sangría del editor.","Color de las guías de sangría activas del editor.","Color de números de línea del editor.","Color del número de línea activa en el editor","ID es obsoleto. Usar en lugar 'editorLineNumber.activeForeground'. ","Color del número de línea activa en el editor","Color de las reglas del editor","Color principal de lentes de código en el editor","Color de fondo tras corchetes coincidentes","Color de bloques con corchetes coincidentes","Color del borde de la regla de visión general.","Color de fondo de la regla de información general del editor. Solo se usa cuando el minimapa está habilitado y está ubicado en el lado derecho del editor.","Color de fondo del margen del editor. Este espacio contiene los márgenes de glifos y los números de línea.","Color del borde de código fuente innecesario (sin usar) en el editor.","Opacidad de código fuente innecesario (sin usar) en el editor. Por ejemplo, \"#000000c0\" representará el código con un 75 % de opacidad. Para temas de alto contraste, utilice el color del tema 'editorUnnecessaryCode.border' para resaltar el código innecesario en vez de atenuarlo.","Color de marcador de regla general para los destacados de rango. El color no debe ser opaco para no ocultar las decoraciones subyacentes.","Color de marcador de regla de información general para errores. ","Color de marcador de regla de información general para advertencias.","Color de marcador de regla de información general para mensajes informativos. "], +"vs/editor/contrib/anchorSelect/anchorSelect":["Delimitador de la selección","Delimitador establecido en {0}:{1}","Establecer el delimitador de la selección","Ir al delimitador de la selección","Seleccionar desde el delimitador hasta el cursor","Cancelar el delimitador de la selección"],"vs/editor/contrib/bracketMatching/bracketMatching":["Resumen color de marcador de regla para corchetes.","Ir al corchete","Seleccionar para corchete","Ir al &&corchete"],"vs/editor/contrib/caretOperations/caretOperations":["Mover el texto seleccionado a la izquierda","Mover el texto seleccionado a la derecha"],"vs/editor/contrib/caretOperations/transpose":["Transponer letras"],"vs/editor/contrib/clipboard/clipboard":["Cor&&tar","Cortar","Cortar","C&&opiar","Copiar","Copiar","&&Pegar","Pegar","Pegar","Copiar con resaltado de sintaxis"], +"vs/editor/contrib/codeAction/codeActionCommands":["Tipo de la acción de código que se va a ejecutar.","Controla cuándo se aplican las acciones devueltas.","Aplicar siempre la primera acción de código devuelto.","Aplicar la primera acción de código devuelta si solo hay una.","No aplique las acciones de código devuelto.","Controla si solo se deben devolver las acciones de código preferidas.","Se ha producido un error desconocido al aplicar la acción de código","Corrección Rápida","No hay acciones de código disponibles",'No hay acciones de código preferidas para "{0}" disponibles','No hay ninguna acción de código para "{0}" disponible.',"No hay acciones de código preferidas disponibles","No hay acciones de código disponibles","Refactorizar...",'No hay refactorizaciones preferidas de "{0}" disponibles','No hay refactorizaciones de "{0}" disponibles',"No hay ninguna refactorización favorita disponible.","No hay refactorizaciones disponibles","Acción de Origen...",'No hay acciones de origen preferidas para "{0}" disponibles','No hay ninguna acción de origen para "{0}" disponible.',"No hay ninguna acción de origen favorita disponible.","No hay acciones de origen disponibles","Organizar Importaciones","No hay acciones de importación disponibles","Corregir todo","No está disponible la acción de corregir todo","Corregir automáticamente...","No hay autocorrecciones disponibles"], +"vs/editor/contrib/codeAction/lightBulbWidget":["Mostrar correcciones. Solución preferida disponible ({0})","Mostrar correcciones ({0})","Mostrar correcciones"],"vs/editor/contrib/codelens/codelensController":["Mostrar comandos de lente de código para la línea actual"],"vs/editor/contrib/comment/comment":["Alternar comentario de línea","&&Alternar comentario de línea","Agregar comentario de línea","Quitar comentario de línea","Alternar comentario de bloque","Alternar &&bloque de comentario"],"vs/editor/contrib/contextmenu/contextmenu":["Mostrar menú contextual del editor"],"vs/editor/contrib/cursorUndo/cursorUndo":["Cursor Deshacer","Cursor Rehacer"], +"vs/editor/contrib/documentSymbols/outlineTree":["Color de primer plano de los símbolos de matriz. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.","Color de primer plano de los símbolos booleanos. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.","Color de primer plano de los símbolos de clase. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.","Color de primer plano de los símbolos de color. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.","Color de primer plano de los símbolos constantes. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.","Color de primer plano de los símbolos de constructor. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.","Color de primer plano de los símbolos de enumerador. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.","Color de primer plano de los símbolos de miembro del enumerador. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.","Color de primer plano de los símbolos de evento. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.","Color de primer plano de los símbolos de campo. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.","Color de primer plano de los símbolos de archivo. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.","Color de primer plano de los símbolos de carpeta. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.","Color de primer plano de los símbolos de función. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.","Color de primer plano de los símbolos de interfaz. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.","Color de primer plano de los símbolos de claves. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.","Color de primer plano de los símbolos de palabra clave. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.","Color de primer plano de los símbolos de método. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.","Color de primer plano de los símbolos de módulo. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.","Color de primer plano de los símbolos de espacio de nombres. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.","Color de primer plano de los símbolos nulos. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.","Color de primer plano para los símbolos numéricos. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.","Color de primer plano de los símbolos de objeto. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.","Color de primer plano para los símbolos del operador. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.","Color de primer plano de los símbolos de paquete. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.","Color de primer plano de los símbolos de propiedad. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.","Color de primer plano de los símbolos de referencia. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.","Color de primer plano de los símbolos de fragmento de código. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.","Color de primer plano de los símbolos de cadena. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.","Color de primer plano de los símbolos de estructura. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.","Color de primer plano de los símbolos de texto. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.","Color de primer plano para los símbolos de parámetro de tipo. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.","Color de primer plano de los símbolos de unidad. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.","Color de primer plano de los símbolos variables. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias."], +"vs/editor/contrib/find/findController":["Buscar","&&Buscar","Buscar con selección","Buscar siguiente","Buscar siguiente","Buscar anterior","Buscar anterior","Buscar selección siguiente","Buscar selección anterior","Reemplazar","&&Reemplazar"],"vs/editor/contrib/find/findWidget":["Buscar","Buscar","Coincidencia anterior","Próxima coincidencia","Buscar en selección","Cerrar","Reemplazar","Reemplazar","Reemplazar","Reemplazar todo","Alternar modo de reemplazar","Sólo los primeros {0} resultados son resaltados, pero todas las operaciones de búsqueda trabajan en todo el texto.","{0} de {1}","No hay resultados","Encontrados: {0}",'{0} encontrado para "{1}"','{0} encontrado para "{1}", en {2}','{0} encontrado para "{1}"',"Ctrl+Entrar ahora inserta un salto de línea en lugar de reemplazar todo. Puede modificar el enlace de claves para editor.action.replaceAll para invalidar este comportamiento."], +"vs/editor/contrib/folding/folding":["Desplegar","Desplegar de forma recursiva","Plegar","Alternar plegado","Plegar de forma recursiva","Cerrar todos los comentarios de bloque","Plegar todas las regiones","Desplegar Todas las Regiones","Plegar todo","Desplegar todo","Nivel de plegamiento {0}","Color de fondo detrás de los rangos plegados. El color no debe ser opaco para no ocultar las decoraciones subyacentes.","Color del control plegable en el medianil del editor."],"vs/editor/contrib/fontZoom/fontZoom":["Acercarse a la tipografía del editor","Alejarse de la tipografía del editor","Restablecer alejamiento de la tipografía del editor"],"vs/editor/contrib/format/format":["1 edición de formato en la línea {0}","{0} ediciones de formato en la línea {1}","1 edición de formato entre las líneas {0} y {1}","{0} ediciones de formato entre las líneas {1} y {2}"],"vs/editor/contrib/format/formatActions":["Dar formato al documento","Dar formato a la selección"], +"vs/editor/contrib/gotoError/gotoError":["Ir al siguiente problema (Error, Advertencia, Información)","Ir al problema anterior (Error, Advertencia, Información)","Ir al siguiente problema en Archivos (Error, Advertencia, Información)","Siguiente &&problema","Ir al problema anterior en Archivos (Error, Advertencia, Información)","Anterior &&problema"],"vs/editor/contrib/gotoError/gotoErrorWidget":["Error","Advertencia","Información","Sugerencia","{0} en {1}. ","{0} de {1} problemas","{0} de {1} problema","Color de los errores del widget de navegación de marcadores del editor.","Color de las advertencias del widget de navegación de marcadores del editor.","Color del widget informativo marcador de navegación en el editor.","Fondo del widget de navegación de marcadores del editor."], +"vs/editor/contrib/gotoSymbol/goToCommands":["Ver","Definiciones",'No se encontró ninguna definición para "{0}"',"No se encontró ninguna definición","Ir a definición","Ir a &&definición","Abrir definición en el lateral","Ver la definición sin salir","Declaraciones","No se encontró ninguna definición para '{0}'","No se encontró ninguna declaración","Ir a Definición","Ir a &&Declaración","No se encontró ninguna definición para '{0}'","No se encontró ninguna declaración","Inspeccionar Definición","Definiciones de tipo",'No se encontró ninguna definición de tipo para "{0}"',"No se encontró ninguna definición de tipo","Ir a la definición de tipo","Ir a la definición de &&tipo","Inspeccionar definición de tipo","Implementaciones",'No se encontró ninguna implementación para "{0}"',"No se encontró ninguna implementación","Ir a Implementaciones","Ir a &&Implementaciones","Inspeccionar implementaciones",'No se ha encontrado ninguna referencia para "{0}".',"No se encontraron referencias","Ir a Referencias","Ir a &&Referencias","Referencias","Inspeccionar Referencias","Referencias","Ir a cualquier símbolo","Ubicaciones",'No hay resultados para "{0}"',"Referencias"], +"vs/editor/contrib/gotoSymbol/link/goToDefinitionAtPosition":["Haga clic para mostrar {0} definiciones."],"vs/editor/contrib/gotoSymbol/peek/referencesController":["Cargando...","{0} ({1})"],"vs/editor/contrib/gotoSymbol/peek/referencesTree":["{0} referencias","{0} referencia","Referencias"],"vs/editor/contrib/gotoSymbol/peek/referencesWidget":["vista previa no disponible","No hay resultados","Referencias"],"vs/editor/contrib/gotoSymbol/referencesModel":["símbolo en {0} linea {1} en la columna {2}","1 símbolo en {0}, ruta de acceso completa {1}","{0} símbolos en {1}, ruta de acceso completa {2}","No se encontraron resultados","Encontró 1 símbolo en {0}","Encontró {0} símbolos en {1}","Encontró {0} símbolos en {1} archivos"],"vs/editor/contrib/gotoSymbol/symbolNavigation":["Símbolo {0} de {1}, {2} para el siguiente","Símbolo {0} de {1}"],"vs/editor/contrib/hover/hover":["Mostrar al mantener el puntero","Mostrar vista previa de la definición que aparece al mover el puntero"], +"vs/editor/contrib/hover/modesContentHover":["Cargando...","Ver problema","Buscando correcciones rápidas...","No hay correcciones rápidas disponibles","Corrección Rápida"],"vs/editor/contrib/inPlaceReplace/inPlaceReplace":["Reemplazar con el valor anterior","Reemplazar con el valor siguiente"],"vs/editor/contrib/indentation/indentation":["Convertir sangría en espacios","Convertir sangría en tabulaciones","Tamaño de tabulación configurado","Seleccionar tamaño de tabulación para el archivo actual","Aplicar sangría con tabulaciones","Aplicar sangría con espacios","Detectar sangría del contenido","Volver a aplicar sangría a líneas","Volver a aplicar sangría a líneas seleccionadas"], +"vs/editor/contrib/linesOperations/linesOperations":["Copiar línea arriba","&&Copiar línea arriba","Copiar línea abajo","Co&&piar línea abajo","Selección duplicada","&&Duplicar selección","Mover línea hacia arriba","Mo&&ver línea arriba","Mover línea hacia abajo","Mover &&línea abajo","Ordenar líneas en orden ascendente","Ordenar líneas en orden descendente","Recortar espacio final","Eliminar línea","Sangría de línea","Anular sangría de línea","Insertar línea arriba","Insertar línea debajo","Eliminar todo a la izquierda","Eliminar todo lo que está a la derecha","Unir líneas","Transponer caracteres alrededor del cursor","Transformar a mayúsculas","Transformar a minúsculas","Transformar en Title Case"],"vs/editor/contrib/links/links":["Ejecutar comando","Seguir vínculo","cmd + clic","ctrl + clic","opción + clic","alt + clic","No se pudo abrir este vínculo porque no tiene un formato correcto: {0}","No se pudo abrir este vínculo porque falta el destino.","Abrir vínculo"], +"vs/editor/contrib/message/messageController":["No se puede editar en un editor de sólo lectura"],"vs/editor/contrib/multicursor/multicursor":["Agregar cursor arriba","&&Agregar cursor arriba","Agregar cursor debajo","A&&gregar cursor abajo","Añadir cursores a finales de línea","Agregar c&&ursores a extremos de línea","Añadir cursores a la parte inferior","Añadir cursores a la parte superior","Agregar selección hasta la siguiente coincidencia de búsqueda","Agregar &&siguiente repetición","Agregar selección hasta la anterior coincidencia de búsqueda","Agregar r&&epetición anterior","Mover última selección hasta la siguiente coincidencia de búsqueda","Mover última selección hasta la anterior coincidencia de búsqueda","Seleccionar todas las repeticiones de coincidencia de búsqueda","Seleccionar todas las &&repeticiones","Cambiar todas las ocurrencias"],"vs/editor/contrib/parameterHints/parameterHints":["Sugerencias para parámetros Trigger"], +"vs/editor/contrib/parameterHints/parameterHintsWidget":["{0}, sugerencia"], +"vs/editor/contrib/peekView/peekView":["Cerrar","Color de fondo del área de título de la vista de inspección.","Color del título de la vista de inpección.","Color de la información del título de la vista de inspección.","Color de los bordes y la flecha de la vista de inspección.","Color de fondo de la lista de resultados de vista de inspección.","Color de primer plano de los nodos de inspección en la lista de resultados.","Color de primer plano de los archivos de inspección en la lista de resultados.","Color de fondo de la entrada seleccionada en la lista de resultados de vista de inspección.","Color de primer plano de la entrada seleccionada en la lista de resultados de vista de inspección.","Color de fondo del editor de vista de inspección.","Color de fondo del margen en el editor de vista de inspección.","Buscar coincidencia con el color de resaltado de la lista de resultados de vista de inspección.","Buscar coincidencia del color de resultado del editor de vista de inspección.","Hacer coincidir el borde resaltado en el editor de vista previa."], +"vs/editor/contrib/quickAccess/gotoLineQuickAccess":["Abra primero un editor de texto para ir a una línea.","Vaya a la línea {0} y a la columna {1}.","Ir a la línea {0}.","Línea actual: {0}, Carácter: {1}. Escriba un número de línea entre 1 y {2} a los que navegar.","Línea actual: {0}, Carácter: {1}. Escriba un número de línea al que navegar."], +"vs/editor/contrib/quickAccess/gotoSymbolQuickAccess":["Para ir a un símbolo, primero abra un editor de texto con información de símbolo.","El editor de texto activo no proporciona información de símbolos.","No hay ningún símbolo del editor coincidente.","No hay símbolos del editor.","Abrir en el lateral","Abrir en la parte inferior","símbolos ({0})","propiedades ({0})","métodos ({0})","funciones ({0})","constructores ({0})","variables ({0})","clases ({0})","estructuras ({0})","eventos ({0})","operadores ({0})","interfaces ({0})","espacios de nombres ({0})","paquetes ({0})","parámetros de tipo ({0})","módulos ({0})","propiedades ({0})","enumeraciones ({0})","miembros de enumeración ({0})","cadenas ({0})","archivos ({0})","matrices ({0})","números ({0})","booleanos ({0})","objetos ({0})","claves ({0})","campos ({0})","constantes ({0})"],"vs/editor/contrib/rename/onTypeRename":["Al escribir Cambiar nombre de símbolo","Color de fondo cuando el editor cambia el nombre automáticamente al escribir."], +"vs/editor/contrib/rename/rename":["No hay ningún resultado.","Error desconocido al resolver el cambio de nombre de la ubicación",'Cambiando el nombre de "{0}"',"Cambiar el nombre de {0}","Nombre cambiado correctamente de '{0}' a '{1}'. Resumen: {2}","No se pudo cambiar el nombre a las ediciones de aplicación","No se pudo cambiar el nombre de las ediciones de cálculo","Cambiar el nombre del símbolo","Activar/desactivar la capacidad de previsualizar los cambios antes de cambiar el nombre"],"vs/editor/contrib/rename/renameInputField":["Cambie el nombre de la entrada. Escriba el nuevo nombre y presione Entrar para confirmar.","{0} para cambiar de nombre, {1} para obtener una vista previa"],"vs/editor/contrib/smartSelect/smartSelect":["Expandir selección","&&Expandir selección","Reducir la selección","&&Reducir selección"], +"vs/editor/contrib/snippet/snippetVariables":["Domingo","Lunes","Martes","Miércoles","Jueves","Viernes","Sábado","Dom","Lun","Mar","Mié","Jue","Vie","Sáb","Enero","Febrero","Marzo","Abril","May","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre","Ene","Feb","Mar","Abr","May","Jun","Jul","Ago","Sep","Oct","Nov","Dic"],"vs/editor/contrib/suggest/suggestController":['Aceptando "{0}" ediciones adicionales de {1} realizadas',"Sugerencias para Trigger","{0} para insertar","{0} para insertar","{0} para reemplazar","{0} para reemplazar","{0} para insertar","mostrar menos","mostrar más"],"vs/editor/contrib/suggest/suggestWidget":["Color de fondo del widget sugerido.","Color de borde del widget sugerido.","Color de primer plano del widget sugerido.","Color de fondo de la entrada seleccionada del widget sugerido.","Color del resaltado coincidido en el widget sugerido.","Leer más ({0})","Leer menos ({0})","Cargando...","Cargando...","No hay sugerencias.","{0}, documentos: {1}","Sugerir"], +"vs/editor/contrib/toggleTabFocusMode/toggleTabFocusMode":["Alternar tecla de tabulación para mover el punto de atención","Presionando la pestaña ahora moverá el foco al siguiente elemento enfocable.","Presionando la pestaña ahora insertará el carácter de tabulación"],"vs/editor/contrib/tokenization/tokenization":["Desarrollador: forzar nueva aplicación de token"],"vs/editor/contrib/unusualLineTerminators/unusualLineTerminators":["Terminadores de línea inusuales","Se han detectado terminadores de línea inusuales",'Este archivo contiene uno o varios caracteres de terminador de línea inusuales, como Separador de líneas (LS) o Separador de párrafos (PS).\r\n\r\nSe recomienda quitarlos del archivo. Se puede configurar a través de "editor.unusualLineTerminators".',"Corregir este archivo","Ignorar problema para este archivo"], +"vs/editor/contrib/wordHighlighter/wordHighlighter":["Color de fondo de un símbolo durante el acceso de lectura, como la lectura de una variable. El color no debe ser opaco para no ocultar decoraciones subyacentes.","Color de fondo de un símbolo durante el acceso de escritura, como escribir en una variable. El color no debe ser opaco para no ocultar las decoraciones subyacentes.","Color de fondo de un símbolo durante el acceso de lectura; por ejemplo, cuando se lee una variable.","Color de fondo de un símbolo durante el acceso de escritura; por ejemplo, cuando se escribe una variable.","Color del marcador de regla general para destacados de símbolos. El color no debe ser opaco para no ocultar decoraciones subyacentes.","Color de marcador de regla general para destacados de símbolos de acceso de escritura. El color no debe ser opaco para no ocultar las decoraciones subyacentes.","Ir al siguiente símbolo destacado","Ir al símbolo destacado anterior","Desencadenar los símbolos destacados"], +"vs/platform/actions/browser/menuEntryActionViewItem":["{0} ({1})"],"vs/platform/configuration/common/configurationRegistry":["La configuración del lenguaje predeterminada se reemplaza","Establecer los valores de configuración que se reemplazarán para un lenguaje.","Esta configuración no admite la configuración por idioma.",'No se puede registrar "{0}". Coincide con el patrón de propiedad \'\\\\[.*\\\\]$\' para describir la configuración del editor específica del lenguaje. Utilice la contribución "configurationDefaults".','No se puede registrar "{0}". Esta propiedad ya está registrada.'],"vs/platform/keybinding/common/abstractKeybindingService":["Se presionó ({0}). Esperando la siguiente tecla...","La combinación de claves ({0}, {1}) no es un comando."], +"vs/platform/list/browser/listService":["Área de trabajo",'Se asigna a "Control" en Windows y Linux y a "Comando" en macOS.','Se asigna a "Alt" en Windows y Linux y a "Opción" en macOS.',"El modificador que se utilizará para agregar un elemento en los árboles y listas para una selección múltiple con el ratón (por ejemplo en el explorador, abiertos editores y vista de scm). Los gestos de ratón 'Abrir hacia' - si están soportados - se adaptarán de forma tal que no tenga conflicto con el modificador múltiple.","Controla cómo abrir elementos en árboles y listas usando el ratón (si está soportado). Para elementos padres con hijos en los árboles, esta configuración controlará si de un solo click o un doble click expande al elemento padre. Tenga en cuenta que algunos árboles y listas pueden optar por ignorar esta configuración si no se aplica.","Controla si las listas y los árboles admiten el desplazamiento horizontal en el área de trabajo. Advertencia: La activación de esta configuración repercute en el rendimiento.","Controla la sangría de árbol en píxeles.","Controla si el árbol debe representar guías de sangría.","Controla si las listas y los árboles tienen un desplazamiento suave.","La navegación simple del teclado se centra en elementos que coinciden con la entrada del teclado. El emparejamiento se hace solo en prefijos.","Destacar la navegación del teclado resalta los elementos que coinciden con la entrada del teclado. Más arriba y abajo la navegación atravesará solo los elementos destacados.","La navegación mediante el teclado de filtro filtrará y ocultará todos los elementos que no coincidan con la entrada del teclado.","Controla el estilo de navegación del teclado para listas y árboles en el área de trabajo. Puede ser simple, resaltar y filtrar.",'Controla si la navegación del teclado en listas y árboles se activa automáticamente simplemente escribiendo. Si se establece en "false", la navegación con el teclado solo se activa al ejecutar el comando "list.toggleKeyboardNavigation", para el cual puede asignar un método abreviado de teclado.'], +"vs/platform/markers/common/markers":["Error","Advertencia","Información"],"vs/platform/quickinput/browser/commandsQuickAccess":["{0}, {1}","usado recientemente","otros comandos",'El comando "{0}" dio lugar a un error ({1})'],"vs/platform/quickinput/browser/helpQuickAccess":["comandos globales","comandos del editor","{0}, {1}"], +"vs/platform/theme/common/colorRegistry":["Color de primer plano general. Este color solo se usa si un componente no lo invalida.","Color de primer plano general para los mensajes de erroe. Este color solo se usa si un componente no lo invalida.","El color predeterminado para los iconos en el área de trabajo.","Color de borde de los elementos con foco. Este color solo se usa si un componente no lo invalida.","Un borde adicional alrededor de los elementos para separarlos unos de otros y así mejorar el contraste.","Un borde adicional alrededor de los elementos activos para separarlos unos de otros y así mejorar el contraste.","Color de primer plano para los vínculos en el texto.","Color de fondo para los bloques de código en el texto.","Color de sombra de los widgets dentro del editor, como buscar/reemplazar","Fondo de cuadro de entrada.","Primer plano de cuadro de entrada.","Borde de cuadro de entrada.","Color de borde de opciones activadas en campos de entrada.","Color de fondo de las opciones activadas en los campos de entrada.","Color de primer plano de las opciones activadas en los campos de entrada.","Color de fondo de validación de entrada para gravedad de información.","Color de primer plano de validación de entrada para información de gravedad.","Color de borde de validación de entrada para gravedad de información.","Color de fondo de validación de entrada para gravedad de advertencia.","Color de primer plano de validación de entrada para información de advertencia.","Color de borde de validación de entrada para gravedad de advertencia.","Color de fondo de validación de entrada para gravedad de error.","Color de primer plano de validación de entrada para información de error.","Color de borde de valdación de entrada para gravedad de error.","Fondo de lista desplegable.","Primer plano de lista desplegable.","Color de primer plano del botón.","Color de fondo del botón.","Color de fondo del botón al mantener el puntero.","Color de fondo de la insignia. Las insignias son pequeñas etiquetas de información, por ejemplo los resultados de un número de resultados.","Color de primer plano de la insignia. Las insignias son pequeñas etiquetas de información, por ejemplo los resultados de un número de resultados.","Sombra de la barra de desplazamiento indica que la vista se ha despazado.","Color de fondo de control deslizante de barra de desplazamiento.","Color de fondo de barra de desplazamiento cursor cuando se pasar sobre el control.","Color de fondo de la barra de desplazamiento al hacer clic.","Color de fondo para la barra de progreso que se puede mostrar para las operaciones de larga duración.","Color de primer plano de squigglies de error en el editor.","Color del borde de los cuadros de error en el editor.","Color de primer plano de squigglies de advertencia en el editor.","Color del borde de los cuadros de advertencia en el editor.","Color de primer plano de los subrayados ondulados informativos en el editor.","Color del borde de los cuadros de información en el editor.","Color de primer plano de pista squigglies en el editor.","Color del borde de los cuadros de sugerencia en el editor.","Color de fondo del editor.","Color de primer plano predeterminado del editor.","Color de fondo del editor de widgets como buscar/reemplazar","Color de primer plano de los widgets del editor, como buscar y reemplazar.","Color de borde de los widgets del editor. El color solo se usa si el widget elige tener un borde y no invalida el color.","Color del borde de la barra de cambio de tamaño de los widgets del editor. El color se utiliza solo si el widget elige tener un borde de cambio de tamaño y si un widget no invalida el color.","Color de fondo del selector rápido. El widget del selector rápido es el contenedor para selectores como la paleta de comandos.","Color de primer plano del selector rápido. El widget del selector rápido es el contenedor para selectores como la paleta de comandos.","Color de fondo del título del selector rápido. El widget del selector rápido es el contenedor para selectores como la paleta de comandos.","Selector de color rápido para la agrupación de etiquetas.","Selector de color rápido para la agrupación de bordes.","Color de la selección del editor.","Color del texto seleccionado para alto contraste.","Color de la selección en un editor inactivo. El color no debe ser opaco para no ocultar decoraciones subyacentes.","Color en las regiones con el mismo contenido que la selección. El color no debe ser opaco para no ocultar decoraciones subyacentes.","Color de borde de las regiones con el mismo contenido que la selección.","Color de la coincidencia de búsqueda actual.","Color de los otros resultados de la búsqueda. El color no debe ser opaco para no ocultar las decoraciones subyacentes.","Color de la gama que limita la búsqueda. El color no debe ser opaco para no ocultar decoraciones subyacentes.","Color de borde de la coincidencia de búsqueda actual.","Color de borde de otra búsqueda que coincide.","Color del borde de la gama que limita la búsqueda. El color no debe ser opaco para no ocultar las decoraciones subyacentes.","Destacar debajo de la palabra para la que se muestra un mensaje al mantener el mouse. El color no debe ser opaco para no ocultar decoraciones subyacentes.","Color de fondo al mantener el puntero en el editor.","Color de primer plano al mantener el puntero en el editor.","Color del borde al mantener el puntero en el editor.","Color de fondo de la barra de estado al mantener el puntero en el editor.","Color de los vínculos activos.","El color utilizado para el icono de bombilla de acciones.","El color utilizado para el icono de la bombilla de acciones de corrección automática.","Color de fondo para el texto que se insertó. El color no debe ser opaco para no ocultar las decoraciones subyacentes.","Color de fondo para el texto que se eliminó. El color no debe ser opaco para no ocultar decoraciones subyacentes.","Color de contorno para el texto insertado.","Color de contorno para el texto quitado.","Color del borde entre ambos editores de texto.","Color de relleno diagonal del editor de diferencias. El relleno diagonal se usa en las vistas de diferencias en paralelo.","Color de fondo de la lista o el árbol del elemento con el foco cuando la lista o el árbol están activos. Una lista o un árbol tienen el foco del teclado cuando están activos, cuando están inactivos no.","Color de primer plano de la lista o el árbol del elemento con el foco cuando la lista o el árbol están activos. Una lista o un árbol tienen el foco del teclado cuando están activos, cuando están inactivos no.","Color de fondo de la lista o el árbol del elemento seleccionado cuando la lista o el árbol están activos. Una lista o un árbol tienen el foco del teclado cuando están activos, cuando están inactivos no.","Color de primer plano de la lista o el árbol del elemento seleccionado cuando la lista o el árbol están activos. Una lista o un árbol tienen el foco del teclado cuando están activos, cuando están inactivos no.","Color de fondo de la lista o el árbol del elemento seleccionado cuando la lista o el árbol están inactivos. Una lista o un árbol tienen el foco del teclado cuando están activos, cuando están inactivos no.","Color de primer plano de la lista o el árbol del elemento con el foco cuando la lista o el árbol esta inactiva. Una lista o un árbol tiene el foco del teclado cuando está activo, cuando esta inactiva no.","Color de fondo de la lista o el árbol del elemento con el foco cuando la lista o el árbol están inactivos. Una lista o un árbol tienen el foco del teclado cuando están activos, pero no cuando están inactivos.","Fondo de la lista o el árbol al mantener el mouse sobre los elementos.","Color de primer plano de la lista o el árbol al pasar por encima de los elementos con el ratón.","Fondo de arrastrar y colocar la lista o el árbol al mover los elementos con el mouse.","Color de primer plano de la lista o el árbol de las coincidencias resaltadas al buscar dentro de la lista o el ábol.","Color de fondo del widget de filtro de tipo en listas y árboles.","Color de contorno del widget de filtro de tipo en listas y árboles.","Color de contorno del widget de filtro de tipo en listas y árboles, cuando no hay coincidencias.","Color de trazo de árbol para las guías de sangría.","Color del borde de los menús.","Color de primer plano de los elementos de menú.","Color de fondo de los elementos de menú.","Color de primer plano del menu para el elemento del menú seleccionado.","Color de fondo del menu para el elemento del menú seleccionado.","Color del borde del elemento seleccionado en los menús.","Color del separador del menu para un elemento del menú.","Resaltado del color de fondo para una ficha de un fragmento de código.","Resaltado del color del borde para una ficha de un fragmento de código.","Resaltado del color de fondo para la última ficha de un fragmento de código.","Resaltado del color del borde para la última tabulación de un fragmento de código.","Color del marcador de regla general para buscar actualizaciones. El color no debe ser opaco para no ocultar las decoraciones subyacentes.","Color del marcador de la regla general para los destacados de la selección. El color no debe ser opaco para no ocultar las decoraciones subyacentes.","Color de marcador de minimapa para coincidencias de búsqueda.","Color del marcador de minimapa para la selección del editor.","Color del marcador de minimapa para errores.","Color del marcador de minimapa para advertencias.","Color de fondo del minimapa.","Color de fondo del deslizador del minimapa.","Color de fondo del deslizador del minimapa al pasar el puntero.","Color de fondo del deslizador de minimapa al hacer clic en él.","Color utilizado para el icono de error de problemas.","Color utilizado para el icono de advertencia de problemas.","Color utilizado para el icono de información de problemas."], +"vs/platform/undoRedo/common/undoRedoService":["Se han cerrado los siguientes archivos y se han modificado en el disco: {0}.","Los siguientes archivos se han modificado de forma incompatible: {0}.",'No se pudo deshacer "{0}" en todos los archivos. {1}','No se pudo deshacer "{0}" en todos los archivos. {1}','No se pudo deshacer "{0}" en todos los archivos porque se realizaron cambios en {1}','No se pudo deshacer "{0}" en todos los archivos porque ya hay una operación de deshacer o rehacer en ejecución en {1}','No se pudo deshacer "{0}" en todos los archivos porque se produjo una operación de deshacer o rehacer mientras tanto','¿Desea deshacer "{0}" en todos los archivos?',"Deshacer en {0} archivos","Deshacer este archivo","Cancelar",'No se pudo deshacer "{0}" porque ya hay una operación de deshacer o rehacer en ejecución.','No se pudo rehacer "{0}" en todos los archivos. {1}','No se pudo rehacer "{0}" en todos los archivos. {1}','No se pudo volver a hacer "{0}" en todos los archivos porque se realizaron cambios en {1}','No se pudo rehacer "{0}" en todos los archivos porque ya hay una operación de deshacer o rehacer en ejecución en {1}','No se pudo rehacer "{0}" en todos los archivos porque se produjo una operación de deshacer o rehacer mientras tanto','No se pudo rehacer "{0}" porque ya hay una operación de deshacer o rehacer en ejecución.'] +}); //# sourceMappingURL=../../../min-maps/vs/editor/editor.main.nls.es.js.map \ No newline at end of file diff --git a/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/editor/editor.main.nls.fr.js b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/editor/editor.main.nls.fr.js index b0f8a84..37656f4 100644 --- a/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/editor/editor.main.nls.fr.js +++ b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/editor/editor.main.nls.fr.js @@ -1,8 +1,43 @@ /*!----------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. - * Version: 0.9.0(630109944f54bcdfc2dbaaff5f090c0843af6c66) + * Version: 0.21.2(67b5a8116f3c0bace36b180e524e05bb750a16d8) * Released under the MIT license * https://github.com/Microsoft/vscode/blob/master/LICENSE.txt *-----------------------------------------------------------*/ -define("vs/editor/editor.main.nls.fr",{"vs/base/browser/ui/actionbar/actionbar":["{0} ({1})"],"vs/base/browser/ui/aria/aria":["{0} (s'est reproduit)"],"vs/base/browser/ui/findinput/findInput":["entrée"],"vs/base/browser/ui/findinput/findInputCheckboxes":["Respecter la casse","Mot entier","Utiliser une expression régulière"],"vs/base/browser/ui/inputbox/inputBox":["Erreur : {0}","Avertissement : {0}","Information : {0}"],"vs/base/common/keybindingLabels":["Ctrl","Maj","Alt","Windows","Contrôle","Maj","Alt","Commande","Contrôle","Maj","Alt","Windows"],"vs/base/common/severity":["Erreur","Avertissement","Informations"],"vs/base/parts/quickopen/browser/quickOpenModel":["{0}, sélecteur","sélecteur"],"vs/base/parts/quickopen/browser/quickOpenWidget":["Sélecteur rapide. Tapez pour réduire les résultats.","Sélecteur rapide"],"vs/base/parts/tree/browser/treeDefaults":["Réduire"],"vs/editor/browser/widget/diffReview":["Fermer","Difference {0} of {1}: original {2}, {3} lines, modified {4}, {5} lines","blank","original {0}, modified {1}: {2}","+ modified {0}: {1}","- original {0}: {1}","Go to Next Difference","Go to Previous Difference"],"vs/editor/common/config/commonEditorConfig":["Éditeur","Contrôle la famille de polices.","Contrôle l'épaisseur de police.","Contrôle la taille de police en pixels.","Contrôle la hauteur de ligne. Utilisez 0 pour calculer lineHeight à partir de fontSize.","Définit l'espacement des caractères en pixels.","Contrôle l'affichage des numéros de ligne. Les valeurs possibles sont 'activé', 'désactivé' et 'relatif'. La valeur 'relatif' indique le numéro de ligne à partir de la position actuelle du curseur.","Colonnes où afficher les règles verticales","Caractères utilisés comme séparateurs de mots durant la navigation ou les opérations basées sur les mots","Nombre d'espaces correspondant à une tabulation. Ce paramètre est remplacé en fonction du contenu du fichier quand 'editor.detectIndentation' est activé.","'number' attendu. Notez que la valeur \"auto\" a été remplacée par le paramètre 'editor.detectIndentation'.","Des espaces sont insérés quand vous appuyez sur la touche Tab. Ce paramètre est remplacé en fonction du contenu du fichier quand 'editor.detectIndentation' est activé.","'boolean' attendu. Notez que la valeur \"auto\" a été remplacée par le paramètre 'editor.detectIndentation'.","Quand vous ouvrez un fichier, 'editor.tabSize' et 'editor.insertSpaces' sont détectés en fonction du contenu du fichier.","Contrôle si les sélections ont des angles arrondis","Contrôle si l'éditeur défile au-delà de la dernière ligne","Contrôle si la minicarte est affichée","Contrôle si le curseur de la minicarte est automatiquement masqué","Afficher les caractères réels sur une ligne (par opposition aux blocs de couleurs)","Limiter la largeur de la minicarte pour afficher au maximum un certain nombre de colonnes","Contrôle si nous remplissons la chaîne à rechercher dans le Widget Recherche à partir de la sélection de l'éditeur","Contrôle si l'indicateur Rechercher dans la sélection est activé quand plusieurs caractères ou lignes de texte sont sélectionnés dans l'éditeur","Le retour automatique à la ligne n'est jamais effectué.","Le retour automatique à la ligne s'effectue en fonction de la largeur de la fenêtre d'affichage.","Le retour automatique à la ligne s'effectue en fonction de 'editor.wordWrapColumn'.","Retour automatique à la ligne au minimum en fonction de la fenêtre d'affichage et de 'editor.wordWrapColumn'.","Contrôle le retour automatique à la ligne. Valeurs possibles :\n - 'off' (désactive le retour automatique à la ligne) ;\n - 'on' (retour automatique à la ligne dans la fenêtre d'affichage) ;\n - 'wordWrapColumn' (retour automatique à la ligne en fonction de 'editor.wordWrapColumn') ou ;\n - 'bounded' (retour automatique à la ligne au minimum en fonction de la fenêtre d'affichage et de 'editor.wordWrapColumn').","Contrôle la colonne de retour automatique à la ligne de l'éditeur quand 'editor.wordWrap' a la valeur 'wordWrapColumn' ou 'bounded'.","Contrôle le retrait des lignes renvoyées. La valeur peut être 'none', 'same' ou 'indent'.","Multiplicateur à utiliser pour le 'deltaX' et le 'deltaY' des événements de défilement de la roulette de la souris","Mappe vers 'Contrôle' dans Windows et Linux, et vers 'Commande' dans OSX.","Mappe vers 'Alt' dans Windows et Linux, et vers 'Option' dans OSX.","Modificateur à utiliser pour ajouter plusieurs curseurs avec la souris. 'ctrlCmd' mappe vers 'Contrôle' dans Windows et Linux, et vers 'Commande' dans OSX. Les mouvements de souris Accéder à la définition et Ouvrir le lien s'adaptent pour ne pas entrer en conflit avec le modificateur multicurseur.","Activez les suggestions rapides dans les chaînes.","Activez les suggestions rapides dans les commentaires.","Activez les suggestions rapides en dehors des chaînes et des commentaires.","Contrôle si les suggestions doivent s'afficher automatiquement en cours de frappe","Contrôle le délai en ms au bout duquel les suggestions rapides s'affichent","Active la pop up qui affiche la documentation des paramètres et écrit de l'information pendant que vous écrivez","Contrôle si l'éditeur doit automatiquement fermer les crochets après les avoir ouverts","Contrôle si l'éditeur doit automatiquement mettre en forme la ligne après la saisie","Contrôle si l'éditeur doit automatiquement mettre en forme le contenu collé. Un formateur doit être disponible et doit pouvoir mettre en forme une plage dans un document.","Controls if the editor should automatically adjust the indentation when users type, paste or move lines. Indentation rules of the language must be available. ","Contrôle si les suggestions doivent s'afficher automatiquement durant la saisie de caractères de déclenchement","Contrôle si les suggestions doivent être acceptées avec 'Entrée', en plus de 'Tab'. Cela permet d'éviter toute ambiguïté entre l'insertion de nouvelles lignes et l'acceptation de suggestions. La valeur 'smart' signifie que vous acceptez uniquement une suggestion avec Entrée quand elle applique une modification de texte","Contrôle si les suggestions doivent être acceptées avec des caractères de validation. Par exemple, en JavaScript, le point-virgule (';') peut être un caractère de validation qui permet d'accepter une suggestion et de taper ce caractère.","Contrôle si les extraits de code s'affichent en même temps que d'autres suggestions, ainsi que leur mode de tri.","Contrôle si la copie sans sélection permet de copier la ligne actuelle.","Contrôle si la saisie semi-automatique doit être calculée en fonction des mots présents dans le document.","Taille de police du widget de suggestion","Hauteur de ligne du widget de suggestion","Détermine si l'éditeur doit surligner les correspondances similaires à la sélection","Contrôle si l'éditeur doit mettre en surbrillance les occurrences de symboles sémantiques","Contrôle le nombre d'ornements pouvant s'afficher à la même position dans la règle d'aperçu","Contrôle si une bordure doit être dessinée autour de la règle d'aperçu.","Contrôle le style d'animation du curseur. Valeurs possibles : 'blink', 'smooth', 'phase', 'expand' et 'solid'","Agrandir ou réduire la police de l'éditeur quand l'utilisateur fait tourner la roulette de la souris tout en maintenant la touche Ctrl enfoncée","Contrôle le style du curseur. Les valeurs acceptées sont 'block', 'block-outline', 'line', 'line-thin', 'underline' et 'underline-thin'","Active les ligatures de police","Contrôle si le curseur doit être masqué dans la règle d'aperçu.","Contrôle la façon dont l'éditeur affiche les espaces blancs. Il existe trois options possibles : 'none', 'boundary' et 'all'. L'option 'boundary' n'affiche pas les espaces uniques qui séparent les mots.","Contrôle si l'éditeur doit afficher les caractères de contrôle","Contrôle si l'éditeur doit afficher les repères de mise en retrait","Contrôle la façon dont l'éditeur doit afficher la surbrillance de la ligne active. Les différentes possibilités sont 'none', 'gutter', 'line' et 'all'.","Contrôle si l'éditeur affiche les indicateurs CodeLens","Contrôle si le pliage de code est activé dans l'éditeur","Définit si les contrôles de réduction sur la bordure sont cachés automatiquement","Met en surbrillance les crochets correspondants quand l'un d'eux est sélectionné.","Contrôle si l'éditeur doit afficher la marge de glyphes verticale. La marge de glyphes sert principalement au débogage.","L'insertion et la suppression d'un espace blanc suit les taquets de tabulation","Supprimer l'espace blanc de fin inséré automatiquement","Garder les éditeurs d'aperçu ouverts même si l'utilisateur double-clique sur son contenu ou appuie sur la touche Échap.","Contrôle si l'éditeur autorise le déplacement des sélections par glisser-déplacer.","L'éditeur utilise les API de la plateforme pour détecter si un lecteur d'écran est attaché.","L'éditeur est optimisé en permanence pour une utilisation avec un lecteur d'écran.","L'éditeur n'est jamais optimisé pour une utilisation avec un lecteur d'écran.","Contrôle si l'éditeur doit s'exécuter dans un mode optimisé pour les lecteurs d'écran.","Contrôle si l'éditeur doit détecter les liens et les rendre cliquables","Contrôle si l'éditeur de différences affiche les différences en mode côte à côte ou inline","Contrôle si l'éditeur de différences affiche les changements liés aux espaces blancs de début ou de fin comme des différences","Contrôle si l'éditeur de différences affiche les indicateurs +/- pour les modifications ajoutées/supprimées","Contrôle si le presse-papiers primaire Linux doit être pris en charge."],"vs/editor/common/config/editorOptions":["L'éditeur n'est pas accessible pour le moment. Appuyez sur Alt+F1 pour connaître les options.","Contenu d'éditeur"],"vs/editor/common/controller/cursor":["Exception inattendue pendant l'exécution de la commande."],"vs/editor/common/model/textModelWithTokens":["Le mode a échoué lors de la création de jetons de l’entrée."],"vs/editor/common/modes/modesRegistry":["Texte brut"],"vs/editor/common/services/bulkEdit":["Ces fichiers ont changé pendant ce temps : {0}","Aucune modification effectuée","{0} modifications de texte effectuées dans {1} fichiers","{0} modifications de texte effectuées dans un fichier"],"vs/editor/common/services/modelServiceImpl":["[{0}]\n{1}","[{0}] {1}"],"vs/editor/common/view/editorColorRegistry":["Couleur d'arrière-plan de la mise en surbrillance de la ligne à la position du curseur.","Couleur d'arrière-plan de la bordure autour de la ligne à la position du curseur.","Couleur d'arrière-plan des plages mises en surbrillance, par exemple par les fonctionnalités de recherche et Quick Open.","Couleur du curseur de l'éditeur.","Couleur des espaces blancs dans l'éditeur.","Couleur des repères de retrait de l'éditeur.","Couleur des numéros de ligne de l'éditeur.","Couleur des règles de l'éditeur","Couleur pour les indicateurs CodeLens","Couleur d'arrière-plan pour les accolades associées","Couleur pour le contour des accolades associées","Couleur de la bordure de la règle d'apperçu.","Couleur de fond pour la bordure de l'éditeur. La bordure contient les marges pour les symboles et les numéros de ligne.","Couleur de premier plan de la ligne ondulée marquant les erreurs dans l'éditeur.","Couleur de bordure de la ligne ondulée marquant les erreurs dans l'éditeur.","Couleur de premier plan de la ligne ondulée marquant les avertissements dans l'éditeur.","Couleur de bordure de la ligne ondulée marquant les avertissements dans l'éditeur."],"vs/editor/contrib/bracketMatching/common/bracketMatching":["Atteindre le crochet"],"vs/editor/contrib/caretOperations/common/caretOperations":["Déplacer le point d'insertion vers la gauche","Déplacer le point d'insertion vers la droite"],"vs/editor/contrib/caretOperations/common/transpose":["Transposer les lettres"],"vs/editor/contrib/clipboard/browser/clipboard":["Couper","Copier","Coller","Copier avec la coloration syntaxique"],"vs/editor/contrib/comment/common/comment":["Activer/désactiver le commentaire de ligne","Ajouter le commentaire de ligne","Supprimer le commentaire de ligne","Activer/désactiver le commentaire de bloc"],"vs/editor/contrib/contextmenu/browser/contextmenu":["Afficher le menu contextuel de l'éditeur"],"vs/editor/contrib/find/browser/findWidget":["Rechercher","Rechercher","Correspondance précédente","Correspondance suivante","Rechercher dans la sélection","Fermer","Remplacer","Remplacer","Remplacer","Tout remplacer","Changer le mode de remplacement","Seuls les 999 premiers résultats sont mis en surbrillance. Cependant, toutes les opérations de recherche sont appliquées à l'ensemble du texte.","{0} sur {1}","Aucun résultat"],"vs/editor/contrib/find/common/findController":["Rechercher","Rechercher suivant","Rechercher précédent","Sélection suivante","Sélection précédente","Remplacer","Ajouter la sélection à la correspondance de recherche suivante","Ajouter la sélection à la correspondance de recherche précédente","Déplacer la dernière sélection vers la correspondance de recherche suivante","Déplacer la dernière sélection à la correspondance de recherche précédente","Sélectionner toutes les occurrences des correspondances de la recherche","Modifier toutes les occurrences"],"vs/editor/contrib/folding/browser/folding":["Déplier","Déplier de manière récursive","Plier","Plier de manière récursive","Plier tout","Déplier tout","Niveau de pliage {0}"],"vs/editor/contrib/format/browser/formatActions":["1 modification de format effectuée à la ligne {0}","{0} modifications de format effectuées à la ligne {1}","1 modification de format effectuée entre les lignes {0} et {1}","{0} modifications de format effectuées entre les lignes {1} et {2}","Mettre en forme le document","Mettre en forme la sélection"],"vs/editor/contrib/goToDeclaration/browser/goToDeclarationCommands":["Définition introuvable pour '{0}'","Définition introuvable"," – {0} définitions","Atteindre la définition","Ouvrir la définition sur le côté","Apercu de définition","Implémentation introuvable pour '{0}'","Implémentation introuvable","– Implémentations {0}","Accéder à l'implémentation","Aperçu de l'implémentation","Définition de type introuvable pour '{0}'","Définition de type introuvable"," – Définitions de type {0}","Atteindre la définition de type","Aperçu de la définition du type"],"vs/editor/contrib/goToDeclaration/browser/goToDeclarationMouse":["Cliquez pour afficher {0} définitions."],"vs/editor/contrib/gotoError/browser/gotoError":["({0}/{1})","Accéder à l'erreur ou l'avertissement suivant","Accéder à l'erreur ou l'avertissement précédent","Couleur d'erreur du widget de navigation dans les marqueurs de l'éditeur.","Couleur d'avertissement du widget de navigation dans les marqueurs de l'éditeur.","Arrière-plan du widget de navigation dans les marqueurs de l'éditeur."],"vs/editor/contrib/hover/browser/hover":["Afficher par pointage"],"vs/editor/contrib/hover/browser/modesContentHover":["Chargement..."],"vs/editor/contrib/inPlaceReplace/common/inPlaceReplace":["Remplacer par la valeur précédente","Remplacer par la valeur suivante"],"vs/editor/contrib/linesOperations/common/linesOperations":["Copier la ligne en haut","Copier la ligne en bas","Déplacer la ligne vers le haut","Déplacer la ligne vers le bas","Trier les lignes dans l'ordre croissant","Trier les lignes dans l'ordre décroissant","Découper l'espace blanc de fin","Supprimer la ligne","Mettre en retrait la ligne","Ajouter un retrait négatif à la ligne","Insérer une ligne au-dessus","Insérer une ligne sous","Supprimer tout ce qui est à gauche","Supprimer tout ce qui est à droite","Joindre les lignes","Transposer les caractères autour du curseur","Transformer en majuscule","Transformer en minuscule"],"vs/editor/contrib/links/browser/links":["Commande + clic pour suivre le lien","Ctrl + clic pour suivre le lien","Alt + clic pour suivre le lien","Échec de l'ouverture de ce lien, car il n'est pas bien formé : {0}","Échec de l'ouverture de ce lien, car sa cible est manquante.","Ouvrir le lien"],"vs/editor/contrib/multicursor/common/multicursor":["Ajouter un curseur au-dessus","Ajouter un curseur en dessous","Ajouter des curseurs à la fin des lignes"],"vs/editor/contrib/parameterHints/browser/parameterHints":["Indicateurs des paramètres Trigger"],"vs/editor/contrib/parameterHints/browser/parameterHintsWidget":["{0}, conseil"],"vs/editor/contrib/quickFix/browser/quickFixCommands":["Afficher les correctifs ({0})","Afficher les correctifs","Correctif rapide"],"vs/editor/contrib/referenceSearch/browser/referenceSearch":[" – {0} références","Rechercher toutes les références"],"vs/editor/contrib/referenceSearch/browser/referencesController":["Chargement..."],"vs/editor/contrib/referenceSearch/browser/referencesModel":["symbole dans {0} sur la ligne {1}, colonne {2}","1 symbole dans {0}, chemin complet {1}","{0} symboles dans {1}, chemin complet {2}","Résultats introuvables","1 symbole dans {0}","{0} symboles dans {1}","{0} symboles dans {1} fichiers"],"vs/editor/contrib/referenceSearch/browser/referencesWidget":["Échec de la résolution du fichier.","{0} références","{0} référence","aperçu non disponible","Références","Aucun résultat","Références","Couleur d'arrière-plan de la zone de titre de l'affichage d'aperçu.","Couleur du titre de l'affichage d'aperçu.","Couleur des informations sur le titre de l'affichage d'aperçu.","Couleur des bordures et de la flèche de l'affichage d'aperçu.","Couleur d'arrière-plan de la liste des résultats de l'affichage d'aperçu.","Couleur de premier plan des noeuds de lignes dans la liste des résultats de l'affichage d'aperçu.","Couleur de premier plan des noeuds de fichiers dans la liste des résultats de l'affichage d'aperçu.","Couleur d'arrière-plan de l'entrée sélectionnée dans la liste des résultats de l'affichage d'aperçu.","Couleur de premier plan de l'entrée sélectionnée dans la liste des résultats de l'affichage d'aperçu.","Couleur d'arrière-plan de l'éditeur d'affichage d'aperçu.","Couleur d'arrière-plan de la bordure de l'éditeur d'affichage d'aperçu.","Couleur de mise en surbrillance d'une correspondance dans la liste des résultats de l'affichage d'aperçu.","Couleur de mise en surbrillance d'une correspondance dans l'éditeur de l'affichage d'aperçu."],"vs/editor/contrib/rename/browser/rename":["Aucun résultat.","'{0}' renommé en '{1}'. Récapitulatif : {2}","Échec de l'exécution du renommage.","Renommer le symbole"],"vs/editor/contrib/rename/browser/renameInputField":["Renommez l'entrée. Tapez le nouveau nom et appuyez sur Entrée pour valider."],"vs/editor/contrib/smartSelect/common/smartSelect":["Développer la sélection","Réduire la sélection"],"vs/editor/contrib/suggest/browser/suggestController":["L'acceptation de '{0}' a inséré le texte suivant : {1}","Suggestions pour Trigger"],"vs/editor/contrib/suggest/browser/suggestWidget":["Couleur d'arrière-plan du widget de suggestion.","Couleur de bordure du widget de suggestion.","Couleur de premier plan du widget de suggestion.","Couleur d'arrière-plan de l'entrée sélectionnée dans le widget de suggestion.","Couleur de la surbrillance des correspondances dans le widget de suggestion.","En savoir plus...{0}","{0}, suggestion, avec détails","{0}, suggestion","En savoir moins...{0}","Chargement...","Pas de suggestions.","{0}, accepté","{0}, suggestion, avec détails","{0}, suggestion"],"vs/editor/contrib/toggleTabFocusMode/common/toggleTabFocusMode":["Activer/désactiver l'utilisation de la touche Tab pour déplacer le focus"],"vs/editor/contrib/wordHighlighter/common/wordHighlighter":["Couleur d'arrière-plan d'un symbole durant l'accès en lecture, par exemple la lecture d'une variable.","Couleur d'arrière-plan d'un symbole durant l'accès en écriture, par exemple l'écriture dans une variable."],"vs/editor/contrib/zoneWidget/browser/peekViewWidget":["Fermer"],"vs/editor/standalone/browser/inspectTokens/inspectTokens":["Developer: Inspect Tokens"],"vs/editor/standalone/browser/quickOpen/gotoLine":["Go to line {0} and character {1}","Go to line {0}","Type a line number between 1 and {0} to navigate to","Type a character between 1 and {0} to navigate to","Go to line {0}","Type a line number, followed by an optional colon and a character number to navigate to","Go to Line..."],"vs/editor/standalone/browser/quickOpen/quickCommand":["{0}, commands","Type the name of an action you want to execute","Command Palette"],"vs/editor/standalone/browser/quickOpen/quickOutline":["{0}, symbols","Type the name of an identifier you wish to navigate to","Go to Symbol...","symbols ({0})","modules ({0})","classes ({0})","interfaces ({0})","methods ({0})","functions ({0})","properties ({0})","variables ({0})","variables ({0})","constructors ({0})","calls ({0})"],"vs/editor/standalone/browser/standaloneCodeEditor":["Editor content","Press Ctrl+F1 for Accessibility Options.","Press Alt+F1 for Accessibility Options."],"vs/editor/standalone/browser/toggleHighContrast/toggleHighContrast":["Toggle High Contrast Theme"],"vs/platform/configuration/common/configurationRegistry":["Substitutions de configuration par défaut","Configurez les paramètres d'éditeur à remplacer pour le langage {0}.","Configurez les paramètres d'éditeur à remplacer pour un langage.","Impossible d'inscrire '{0}'. Ceci correspond au modèle de propriété '\\\\[.*\\\\]$' permettant de décrire les paramètres d'éditeur spécifiques à un langage. Utilisez la contribution 'configurationDefaults'.","Impossible d'inscrire '{0}'. Cette propriété est déjà inscrite."],"vs/platform/keybinding/common/abstractKeybindingService":["Touche ({0}) utilisée. En attente de la seconde touche pour la pression simultanée...","La combinaison de touches ({0}, {1}) n'est pas une commande."],"vs/platform/message/common/message":["Fermer","Plus tard","Annuler"],"vs/platform/theme/common/colorRegistry":["Format de couleur non valide. Utilisez #RGB, #RGBA, #RRGGBB ou #RRGGBBAA","Couleurs utilisées dans le banc d'essai.","Couleur de premier plan globale. Cette couleur est utilisée si elle n'est pas remplacée par un composant.","Couleur principale de premier plan pour les messages d'erreur. Cette couleur est utilisée uniquement si elle n'est pas redéfinie par un composant.","Couleur de premier plan du texte descriptif fournissant des informations supplémentaires, par exemple pour un label.","Couleur de bordure globale des éléments ayant le focus. Cette couleur est utilisée si elle n'est pas remplacée par un composant.","Bordure supplémentaire autour des éléments pour les séparer des autres et obtenir un meilleur contraste.","Bordure supplémentaire autour des éléments actifs pour les séparer des autres et obtenir un meilleur contraste.","La couleur d'arrière-plan des sélections de texte dans le banc d'essai (par ex., pour les champs d'entrée ou les zones de texte). Notez que cette couleur ne s'applique pas aux sélections dans l'éditeur et le terminal.","Couleur pour les séparateurs de texte.","Couleur des liens dans le texte.","Couleur des liens actifs dans le texte.","Couleur des segments de texte préformatés.","Couleur d'arrière-plan des citations dans le texte.","Couleur de bordure des citations dans le texte.","Couleur d'arrière-plan des blocs de code dans le texte.","Couleur de l'ombre des widgets, comme rechercher/remplacer, au sein de l'éditeur.","Arrière-plan de la zone d'entrée.","Premier plan de la zone d'entrée.","Bordure de la zone d'entrée.","Couleur de la bordure des options activées dans les champs d'entrée.","Couleur de premier plan de la zone d'entrée pour le texte d'espace réservé.","Couleur d'arrière-plan de la validation d'entrée pour la gravité des informations.","Couleur de bordure de la validation d'entrée pour la gravité des informations.","Couleur d'arrière-plan de la validation d'entrée pour l'avertissement sur les informations.","Couleur de bordure de la validation d'entrée pour la gravité de l'avertissement.","Couleur d'arrière-plan de la validation d'entrée pour la gravité de l'erreur.","Couleur de bordure de la validation d'entrée pour la gravité de l'erreur. ","Arrière-plan de la liste déroulante.","Premier plan de la liste déroulante.","Bordure de la liste déroulante.","Couleur d'arrière-plan de la liste/l'arborescence pour l'élément ayant le focus quand la liste/l'arborescence est active. Une liste/aborescence active peut être sélectionnée au clavier, elle ne l'est pas quand elle est inactive.","Couleur de premier plan de la liste/l'arborescence pour l'élément ayant le focus quand la liste/l'arborescence est active. Une liste/aborescence active peut être sélectionnée au clavier, elle ne l'est pas quand elle est inactive.","Couleur d'arrière-plan de la liste/l'arborescence de l'élément sélectionné quand la liste/l'arborescence est active. Une liste/arborescence active peut être sélectionnée au clavier, elle ne l'est pas quand elle est inactive.","Couleur de premier plan de la liste/l'arborescence pour l'élément sélectionné quand la liste/l'arborescence est active. Une liste/aborescence active peut être sélectionnée au clavier, elle ne l'est pas quand elle est inactive.","Couleur d'arrière-plan de la liste/l'arborescence pour l'élément sélectionné quand la liste/l'arborescence est inactive. Une liste/aborescence active peut être sélectionnée au clavier, elle ne l'est pas quand elle est inactive.","Couleur de premier plan de la liste/l'arborescence pour l'élément sélectionné quand la liste/l'arborescence est active. Une liste/aborescence active peut être sélectionnée au clavier, elle ne l'est pas quand elle est inactive.","Arrière-plan de la liste/l'arborescence pendant le pointage sur des éléments avec la souris.","Premier plan de la liste/l'arborescence pendant le pointage sur des éléments avec la souris.","Arrière-plan de l'opération de glisser-déplacer dans une liste/arborescence pendant le déplacement d'éléments avec la souris.","Couleur de premier plan dans la liste/l'arborescence pour la surbrillance des correspondances pendant la recherche dans une liste/arborescence.","Couleur du sélecteur rapide pour les étiquettes de regroupement.","Couleur du sélecteur rapide pour les bordures de regroupement.","Couleur de premier plan du bouton.","Couleur d'arrière-plan du bouton.","Couleur d'arrière-plan du bouton pendant le pointage.","Couleur de fond des badges. Les badges sont de courts libelés d'information, ex. le nombre de résultats de recherche.","Couleur des badges. Les badges sont de courts libelés d'information, ex. le nombre de résultats de recherche.","Ombre de la barre de défilement pour indiquer que la vue défile.","Couleur d'arrière-plan du curseur.","Couleur d'arrière-plan du curseur pendant le pointage.","Couleur d'arrière-plan du curseur actif.","Couleur de fond pour la barre de progression qui peut s'afficher lors d'opérations longues.","Couleur d'arrière-plan de l'éditeur.","Couleur de premier plan par défaut de l'éditeur.","Couleur d'arrière-plan des gadgets de l'éditeur tels que rechercher/remplacer.","Couleur de bordure des widgets de l'éditeur. La couleur est utilisée uniquement si le widget choisit d'avoir une bordure et si la couleur n'est pas remplacée par un widget.","Color of the editor selection.","Color of the selected text for high contrast.","Couleur de la sélection dans un éditeur inactif.","Couleur des régions dont le contenu est identique à la sélection.","Couleur du résultat de recherche actif.","Couleur des autres résultats de recherche.","Couleur de la plage limitant la recherche.","Mettez en surbrillance ci-dessous le mot pour lequel un pointage s'affiche.","Couleur d'arrière-plan du pointage de l'éditeur.","Couleur de bordure du pointage de l'éditeur.","Couleur des liens actifs.","Couleur d'arrière-plan du texte inséré.","Couleur d'arrière-plan du texte supprimé.","Couleur de contour du texte inséré.","Couleur de contour du texte supprimé.","Arrière-plan de l'en-tête actuel dans les conflits de fusion inline.","Arrière-plan du contenu actuel dans les conflits de fusion inline.","Arrière-plan de l'en-tête entrant dans les conflits de fusion inline.","Arrière-plan du contenu entrant dans les conflits de fusion inline.","Arrière-plan de l'en-tête de l'ancêtre commun dans les conflits de fusion inline.","Arrière-plan du contenu de l'ancêtre commun dans les conflits de fusion inline.","Couleur de bordure des en-têtes et du séparateur dans les conflits de fusion inline.","Premier plan de la règle d'aperçu actuelle pour les conflits de fusion inline.","Premier plan de la règle d'aperçu entrante pour les conflits de fusion inline.","Arrière-plan de la règle d'aperçu de l'ancêtre commun dans les conflits de fusion inline."]}); +define("vs/editor/editor.main.nls.fr",{"vs/base/browser/ui/actionbar/actionViewItems":["{0} ({1})"],"vs/base/browser/ui/findinput/findInput":["entrée"],"vs/base/browser/ui/findinput/findInputCheckboxes":["Respecter la casse","Mot entier","Utiliser une expression régulière"],"vs/base/browser/ui/findinput/replaceInput":["entrée","Préserver la casse"],"vs/base/browser/ui/inputbox/inputBox":["Erreur : {0}","Avertissement : {0}","Info : {0}"],"vs/base/browser/ui/keybindingLabel/keybindingLabel":["Indépendant"],"vs/base/browser/ui/menu/menu":["{0} ({1})"],"vs/base/browser/ui/tree/abstractTree":["Effacer","Désactiver le filtre sur le type","Activer le filtre sur le type","Aucun élément","{0} éléments sur {1} correspondants"], +"vs/base/common/errorMessage":["{0}: {1}","Une erreur système s'est produite ({0})","Une erreur inconnue s’est produite. Veuillez consulter le journal pour plus de détails.","Une erreur inconnue s’est produite. Veuillez consulter le journal pour plus de détails.","{0} ({1} erreurs au total)","Une erreur inconnue s’est produite. Veuillez consulter le journal pour plus de détails."],"vs/base/common/keybindingLabels":["Ctrl","Maj","Alt","Windows","Ctrl","Maj","Alt","Super","Contrôle","Maj","Alt","Commande","Contrôle","Maj","Alt","Windows","Contrôle","Maj","Alt","Super"],"vs/base/parts/quickinput/browser/quickInput":["Précédent","{0}/{1}","Taper pour affiner les résultats.","{0} résultats","{0} Sélectionnés","OK","Personnalisé","Précédent ({0})","Précédent"],"vs/base/parts/quickinput/browser/quickInputList":["Entrée rapide"], +"vs/editor/browser/controller/coreCommands":["Aligner par rapport à la fin même en cas de passage à des lignes plus longues","Aligner par rapport à la fin même en cas de passage à des lignes plus longues"],"vs/editor/browser/controller/textAreaHandler":["éditeur","L'éditeur n'est pas accessible pour le moment. Appuyez sur {0} pour voir les options."],"vs/editor/browser/editorExtensions":["Ann&&uler","Annuler","&&Rétablir","Rétablir","&&Sélectionner tout","Tout sélectionner"],"vs/editor/browser/widget/codeEditorWidget":["Le nombre de curseurs a été limité à {0}."],"vs/editor/browser/widget/diffEditorWidget":["Impossible de comparer les fichiers car l'un d'eux est trop volumineux."], +"vs/editor/browser/widget/diffReview":["Fermer","aucune ligne changée","1 ligne changée","{0} lignes changées","Différence {0} sur {1} : ligne d'origine {2}, {3}, ligne modifiée {4}, {5}","vide","{0} ligne inchangée {1}","{0} ligne d'origine {1} ligne modifiée {2}","+ {0} ligne modifiée {1}","- {0} ligne d'origine {1}","Accéder à la différence suivante","Accéder la différence précédente"],"vs/editor/browser/widget/inlineDiffMargin":["Copier les lignes supprimées","Copier la ligne supprimée","Copier la ligne supprimée ({0})","Annuler la modification","Copier la ligne supprimée ({0})"], +"vs/editor/common/config/commonEditorConfig":["Éditeur","Le nombre d'espaces auxquels une tabulation est égale. Ce paramètre est substitué basé sur le contenu du fichier lorsque `#editor.detectIndentation#` est à 'on'.","Espaces insérés quand vous appuyez sur la touche Tab. Ce paramètre est remplacé en fonction du contenu du fichier quand '#editor.detectIndentation#' est activé.","Contrôle si '#editor.tabSize#' et '#editor.insertSpaces#' sont automatiquement détectés lors de l’ouverture d’un fichier en fonction de son contenu.","Supprimer l'espace blanc de fin inséré automatiquement.","Traitement spécial des fichiers volumineux pour désactiver certaines fonctionnalités utilisant beaucoup de mémoire.","Contrôle si la saisie semi-automatique doit être calculée en fonction des mots présents dans le document.","Coloration sémantique activée pour tous les thèmes de couleur.","Coloration sémantique désactivée pour tous les thèmes de couleur.","La coloration sémantique est configurée par le paramètre 'semanticHighlighting' du thème de couleur actuel.","Contrôle si semanticHighlighting est affiché pour les langages qui le prennent en charge.","Garder les éditeurs d'aperçu ouverts même si l'utilisateur double-clique sur son contenu ou appuie sur la touche Échap. ","Les lignes plus longues que cette valeur ne sont pas tokenisées pour des raisons de performances","Délai d'expiration en millisecondes avant annulation du calcul de diff. Utilisez 0 pour supprimer le délai d'expiration.","Contrôle si l'éditeur de différences affiche les différences en mode côte à côte ou inline.","Quand il est activé, l'éditeur de différences ignore les changements d'espace blanc de début ou de fin.","Contrôle si l'éditeur de différences affiche les indicateurs +/- pour les changements ajoutés/supprimés .","Contrôle si l'éditeur affiche CodeLens."], +"vs/editor/common/config/editorOptions":["L'éditeur utilise les API de la plateforme pour détecter si un lecteur d'écran est attaché.","L'éditeur est optimisé en permanence pour une utilisation avec un lecteur d'écran.","L'éditeur n'est jamais optimisé pour une utilisation avec un lecteur d'écran.","Contrôle si l'éditeur doit s'exécuter dans un mode optimisé pour les lecteurs d'écran.","Contrôle si un espace est inséré pour les commentaires.","Contrôle si les lignes vides doivent être ignorées avec des actions d'activation/de désactivation, d'ajout ou de suppression des commentaires de ligne.","Contrôle si la copie sans sélection permet de copier la ligne actuelle.","Contrôle si le curseur doit sauter pour rechercher les correspondances lors de la saisie.","Détermine si la chaîne de recherche dans le Widget Recherche est initialisée avec la sélection de l’éditeur.","Ne jamais activer Rechercher automatiquement dans la sélection (par défaut)","Toujours activer Rechercher automatiquement dans la sélection","Activez Rechercher automatiquement dans la sélection quand plusieurs lignes de contenu sont sélectionnées.","Contrôle la condition d'activation automatique de la recherche dans la sélection.","Détermine si le Widget Recherche devrait lire ou modifier le presse-papiers de recherche partagé sur macOS.","Contrôle si le widget Recherche doit ajouter des lignes supplémentaires en haut de l'éditeur. Quand la valeur est true, vous pouvez faire défiler au-delà de la première ligne si le widget Recherche est visible.","Contrôle si la recherche redémarre automatiquement depuis le début (ou la fin) quand il n'existe aucune autre correspondance.","Active/désactive les ligatures de police.","Paramètres de fonctionnalité de police explicites.","Configure les ligatures de police ou les fonctionnalités de police.","Contrôle la taille de police en pixels.",'Seuls les mots clés "normal" et "bold", ou les nombres compris entre 1 et 1 000 sont autorisés.','Contrôle l\'épaisseur de police. Accepte les mots clés "normal" et "bold", ou les nombres compris entre 1 et 1 000.',"Montrer l'aperçu des résultats (par défaut)","Accéder au résultat principal et montrer un aperçu","Accéder au résultat principal et activer l'accès sans aperçu pour les autres","Ce paramètre est déprécié, utilisez des paramètres distincts comme 'editor.editor.gotoLocation.multipleDefinitions' ou 'editor.editor.gotoLocation.multipleImplementations' à la place.","Contrôle le comportement de la commande 'Atteindre la définition' quand plusieurs emplacements cibles existent.","Contrôle le comportement de la commande 'Atteindre la définition de type' quand plusieurs emplacements cibles existent.","Contrôle le comportement de la commande 'Atteindre la déclaration' quand plusieurs emplacements cibles existent.","Contrôle le comportement de la commande 'Atteindre les implémentations' quand plusieurs emplacements cibles existent.","Contrôle le comportement de la commande 'Atteindre les références' quand plusieurs emplacements cibles existent.","ID de commande alternatif exécuté quand le résultat de 'Atteindre la définition' est l'emplacement actuel.","ID de commande alternatif exécuté quand le résultat de 'Atteindre la définition de type' est l'emplacement actuel.","ID de commande alternatif exécuté quand le résultat de 'Atteindre la déclaration' est l'emplacement actuel.","ID de commande alternatif exécuté quand le résultat de 'Atteindre l'implémentation' est l'emplacement actuel.","ID de commande alternatif exécuté quand le résultat de 'Atteindre la référence' est l'emplacement actuel.","Contrôle si le pointage est affiché.","Contrôle le délai en millisecondes, après lequel le survol est affiché.","Contrôle si le pointage doit rester visible quand la souris est déplacée au-dessus.","Active l’ampoule d’action de code dans l’éditeur.","Contrôle la hauteur de ligne. Utilisez 0 pour calculer la hauteur de ligne de la taille de la police.","Contrôle si la minimap est affichée.","Le minimap a la même taille que le contenu de l'éditeur (défilement possible).","Le minimap s'agrandit ou se réduit selon les besoins pour remplir la hauteur de l'éditeur (pas de défilement).","Le minimap est réduit si nécessaire pour ne jamais dépasser la taille de l'éditeur (pas de défilement).","Contrôle la taille du minimap.","Contrôle le côté où afficher la minimap.","Contrôle quand afficher le curseur du minimap.","Échelle du contenu dessiné dans le minimap : 1, 2 ou 3.","Afficher les caractères réels sur une ligne par opposition aux blocs de couleur.","Limiter la largeur de la minimap pour afficher au plus un certain nombre de colonnes.","Contrôle la quantité d’espace entre le bord supérieur de l’éditeur et la première ligne.","Contrôle la quantité d'espace entre le bord inférieur de l'éditeur et la dernière ligne.","Active une fenêtre contextuelle qui affiche de la documentation sur les paramètres et des informations sur les types à mesure que vous tapez.","Détermine si le menu de suggestions de paramètres se ferme ou reviens au début lorsque la fin de la liste est atteinte.","Activez les suggestions rapides dans les chaînes.","Activez les suggestions rapides dans les commentaires.","Activez les suggestions rapides en dehors des chaînes et des commentaires.","Contrôle si les suggestions doivent apparaître automatiquement pendant la saisie.","Les numéros de ligne ne sont pas affichés.","Les numéros de ligne sont affichés en nombre absolu.","Les numéros de ligne sont affichés sous la forme de distance en lignes à la position du curseur.","Les numéros de ligne sont affichés toutes les 10 lignes.","Contrôle l'affichage des numéros de ligne.","Nombre de caractères monospace auxquels cette règle d'éditeur effectue le rendu.","Couleur de cette règle d'éditeur.","Rendre les règles verticales après un certain nombre de caractères à espacement fixe. Utiliser plusieurs valeurs pour plusieurs règles. Aucune règle n'est dessinée si le tableau est vide.","Insérez une suggestion sans remplacer le texte à droite du curseur.","Insérez une suggestion et remplacez le texte à droite du curseur.","Contrôle si les mots sont remplacés en cas d'acceptation de la saisie semi-automatique. Notez que cela dépend des extensions adhérant à cette fonctionnalité.","Détermine si le filtre et le tri des suggestions doivent prendre en compte les fautes de frappes mineures.","Contrôle si le tri favorise trier les mots qui apparaissent près du curseur.","Contrôle si les sélections de suggestion mémorisées sont partagées entre plusieurs espaces de travail et fenêtres (nécessite '#editor.suggestSelection#').","Contrôle si un extrait de code actif empêche les suggestions rapides.","Contrôle s'il faut montrer ou masquer les icônes dans les suggestions.","Contrôle le nombre de suggestions IntelliSense affichées avant de montrer une barre de défilement (15 maximum).","Ce paramètre est déprécié, veuillez utiliser des paramètres distincts comme 'editor.suggest.showKeywords' ou 'editor.suggest.showSnippets' à la place.","Si activé, IntelliSense montre des suggestions de type 'method'.","Si activé, IntelliSense montre des suggestions de type 'function'.","Si activé, IntelliSense montre des suggestions de type 'constructor'.","Si activé, IntelliSense montre des suggestions de type 'field'.","Si activé, IntelliSense montre des suggestions de type 'variable'.","Si activé, IntelliSense montre des suggestions de type 'class'.","Si activé, IntelliSense montre des suggestions de type 'struct'.","Si activé, IntelliSense montre des suggestions de type 'interface'.","Si activé, IntelliSense montre des suggestions de type 'module'.","Si activé, IntelliSense montre des suggestions de type 'property'.","Si activé, IntelliSense montre des suggestions de type 'event'.","Si activé, IntelliSense montre des suggestions de type 'operator'.","Si activé, IntelliSense montre des suggestions de type 'unit'.","Si activé, IntelliSense montre des suggestions de type 'value'.","Si activé, IntelliSense montre des suggestions de type 'constant'.","Si activé, IntelliSense montre des suggestions de type 'enum'.","Si activé, IntelliSense montre des suggestions de type 'enumMember'.","Si activé, IntelliSense montre des suggestions de type 'keyword'.","Si activé, IntelliSense montre des suggestions de type 'text'.","Si activé, IntelliSense montre des suggestions de type 'color'.","Si activé, IntelliSense montre des suggestions de type 'file'.","Si activé, IntelliSense montre des suggestions de type 'reference'.","Si activé, IntelliSense montre des suggestions de type 'customcolor'.","Si activé, IntelliSense montre des suggestions de type 'folder'.","Si activé, IntelliSense montre des suggestions de type 'typeParameter'.","Si activé, IntelliSense montre des suggestions de type 'snippet'.","Si activé, IntelliSense montre des suggestions de type 'utilisateur'.","Si activé, IntelliSense montre des suggestions de type 'problèmes'.","Contrôle la visibilité de la barre d'état en bas du widget de suggestion.","Contrôle si les suggestions doivent être acceptées sur les caractères de validation. Par exemple, en JavaScript, le point-virgule (`;`) peut être un caractère de validation qui accepte une suggestion et tape ce caractère.","Accepter uniquement une suggestion avec 'Entrée' quand elle effectue une modification textuelle.","Contrôle si les suggestions sont acceptées après appui sur 'Entrée', en plus de 'Tab'. Permet d’éviter toute ambiguïté entre l’insertion de nouvelles lignes et l'acceptation de suggestions.","Contrôle le nombre de lignes dans l'éditeur qui peuvent être lues par un lecteur d'écran. Avertissement : Ce paramètre a une incidence sur les performances quand le nombre est supérieur à la valeur par défaut.","Contenu de l'éditeur","Utilisez les configurations de langage pour déterminer quand fermer automatiquement les parenthèses.","Fermer automatiquement les parenthèses uniquement lorsque le curseur est à gauche de l’espace.","Contrôle si l’éditeur doit fermer automatiquement les parenthèses quand l’utilisateur ajoute une parenthèse ouvrante.","Tapez avant les guillemets ou les crochets fermants uniquement s'ils sont automatiquement insérés.","Contrôle si l'éditeur doit taper avant les guillemets ou crochets fermants.","Utilisez les configurations de langage pour déterminer quand fermer automatiquement les guillemets.","Fermer automatiquement les guillemets uniquement lorsque le curseur est à gauche de l’espace.","Contrôle si l’éditeur doit fermer automatiquement les guillemets après que l’utilisateur ajoute un guillemet ouvrant.","L'éditeur n'insère pas de retrait automatiquement.","L'éditeur conserve le retrait de la ligne actuelle.","L'éditeur conserve le retrait de la ligne actuelle et honore les crochets définis par le langage.","L'éditeur conserve le retrait de la ligne actuelle, honore les crochets définis par le langage et appelle des objets onEnterRules spéciaux définis par les langages.","L'éditeur conserve le retrait de la ligne actuelle, honore les crochets définis par le langage, appelle des objets onEnterRules spéciaux définis par les langages et honore les objets indentationRules définis par les langages.","Contrôle si l'éditeur doit ajuster automatiquement le retrait quand les utilisateurs tapent, collent, déplacent ou mettent en retrait des lignes.","Utilisez les configurations de langue pour déterminer quand entourer automatiquement les sélections.","Entourez avec des guillemets et non des crochets.","Entourez avec des crochets et non des guillemets.","Détermine si l'éditeur doit automatiquement entourer les sélections.","Contrôle si l'éditeur affiche CodeLens.","Contrôle si l'éditeur doit afficher les éléments décoratifs de couleurs inline et le sélecteur de couleurs.","Autoriser l'utilisation de la souris et des touches pour sélectionner des colonnes.","Contrôle si la coloration syntaxique doit être copiée dans le presse-papiers.","Contrôler le style d’animation du curseur.","Contrôle si l'animation du point d'insertion doit être activée.","Contrôle le style du curseur.","Contrôle le nombre minimum de lignes visibles avant et après le curseur. Appelé 'scrollOff' ou 'scrollOffset' dans d'autres éditeurs.","'cursorSurroundingLines' est appliqué seulement s'il est déclenché via le clavier ou une API.","'cursorSurroundingLines' est toujours appliqué.","Contrôle quand 'cursorSurroundingLines' doit être appliqué.","Détermine la largeur du curseur lorsque `#editor.cursorStyle#` est à `line`.","Contrôle si l’éditeur autorise le déplacement de sélections par glisser-déplacer.","Multiplicateur de vitesse de défilement quand vous appuyez sur 'Alt'.","Contrôle si l'éditeur a le pliage de code activé.","Utilisez une stratégie de pliage propre à la langue, si disponible, sinon utilisez la stratégie basée sur le retrait.","Utilisez la stratégie de pliage basée sur le retrait.","Contrôle la stratégie de calcul des plages de pliage.","Contrôle si l'éditeur doit mettre en évidence les plages pliées.","Contrôle si le fait de cliquer sur le contenu vide après une ligne pliée déplie la ligne.","Contrôle la famille de polices.","Détermine si l’éditeur doit automatiquement mettre en forme le contenu collé. Un formateur doit être disponible et être capable de mettre en forme une plage dans un document.","Contrôle si l’éditeur doit mettre automatiquement en forme la ligne après la saisie.","Contrôle si l'éditeur doit afficher la marge de glyphes verticale. La marge de glyphes sert principalement au débogage.","Contrôle si le curseur doit être masqué dans la règle de la vue d’ensemble.","Contrôle si l’éditeur doit mettre en surbrillance le guide de mise en retrait actif.","Contrôle l'espacement des lettres en pixels.","Contrôle si l’éditeur doit détecter les liens et les rendre cliquables.","Mettez en surbrillance les crochets correspondants.","Un multiplicateur à utiliser sur les `deltaX` et `deltaY` des événements de défilement de roulette de souris.","Faire un zoom sur la police de l'éditeur quand l'utilisateur fait tourner la roulette de la souris tout en maintenant la touche 'Ctrl' enfoncée.","Fusionnez plusieurs curseurs quand ils se chevauchent.","Mappe vers 'Contrôle' dans Windows et Linux, et vers 'Commande' dans macOS.","Mappe vers 'Alt' dans Windows et Linux, et vers 'Option' dans macOS.","Le modificateur à utiliser pour ajouter plusieurs curseurs avec la souris. Les gestes de souris Atteindre la définition et Ouvrir le lien s'adapteront tels qu’ils n’entrent pas en conflit avec le modificateur multicursor. [Lire la suite] (https://code.visualstudio.com/docs/editor/codebasics#_multicursor-modifier).","Chaque curseur colle une seule ligne de texte.","Chaque curseur colle le texte en entier.","Contrôle le collage quand le nombre de lignes du texte collé correspond au nombre de curseurs.","Contrôle si l'éditeur doit mettre en surbrillance les occurrences de symboles sémantiques.","Contrôle si une bordure doit être dessinée autour de la règle de la vue d'ensemble.","Focus sur l'arborescence à l'ouverture de l'aperçu","Placer le focus sur l'éditeur à l'ouverture de l'aperçu","Contrôle s'il faut mettre le focus sur l'éditeur inline ou sur l'arborescence dans le widget d'aperçu.","Contrôle si le geste de souris Accéder à la définition ouvre toujours le widget d'aperçu.","Contrôle le délai en millisecondes après lequel des suggestions rapides sont affichées.","Contrôle si l'éditeur renomme automatiquement selon le type.","Contrôle si l’éditeur doit afficher les caractères de contrôle.","Contrôle si l’éditeur doit afficher les guides de mise en retrait.","Affichez le dernier numéro de ligne quand le fichier se termine par un saut de ligne.","Met en surbrillance la gouttière et la ligne actuelle.","Contrôle la façon dont l’éditeur doit afficher la mise en surbrillance de la ligne actuelle.","Contrôle si l'éditeur doit afficher la mise en surbrillance de la ligne actuelle seulement quand l'éditeur a le focus","Affiche les espaces blancs à l'exception des espaces uniques entre les mots.","Afficher les espaces blancs uniquement sur le texte sélectionné.","Afficher uniquement les caractères correspondant aux espaces blancs de fin","Contrôle la façon dont l’éditeur doit restituer les caractères espaces.","Contrôle si les sélections doivent avoir des angles arrondis.","Contrôle le nombre de caractères supplémentaires, au-delà duquel l’éditeur défile horizontalement.","Contrôle si l’éditeur défile au-delà de la dernière ligne.","Faites défiler uniquement le long de l'axe prédominant quand le défilement est à la fois vertical et horizontal. Empêche la dérive horizontale en cas de défilement vertical sur un pavé tactile.","Contrôle si le presse-papiers principal Linux doit être pris en charge.","Contrôle si l'éditeur doit mettre en surbrillance les correspondances similaires à la sélection.","Affichez toujours les contrôles de pliage.","Affichez uniquement les contrôles de pliage quand la souris est au-dessus de la reliure.","Contrôle quand afficher les contrôles de pliage sur la reliure.","Contrôle la disparition du code inutile.","Contrôle les variables dépréciées barrées.","Afficher des suggestions d’extraits au-dessus d’autres suggestions.","Afficher des suggestions d’extraits en-dessous d’autres suggestions.","Afficher des suggestions d’extraits avec d’autres suggestions.","Ne pas afficher de suggestions d’extrait de code.","Contrôle si les extraits de code s'affichent en même temps que d'autres suggestions, ainsi que leur mode de tri.","Contrôle si l'éditeur défile en utilisant une animation.","Taille de la police pour le widget de suggestion. Lorsque la valeur est à `0`, la valeur de `#editor.fontSize` est utilisée.","Hauteur de ligne pour le widget de suggestion. Lorsque la valeur est à `0`, la valeur de `#editor.lineHeight#` est utilisée.","Contrôle si les suggestions devraient automatiquement s’afficher lorsque vous tapez les caractères de déclencheur.","Sélectionnez toujours la première suggestion.","Sélectionnez les suggestions récentes sauf si une entrée ultérieure en a sélectionné une, par ex., 'console.| -> console.log', car 'log' a été effectué récemment.","Sélectionnez des suggestions en fonction des préfixes précédents qui ont complété ces suggestions, par ex., 'co -> console' et 'con -> const'.","Contrôle comment les suggestions sont pré-sélectionnés lors de l’affichage de la liste de suggestion.","La complétion par tabulation insérera la meilleure suggestion lorsque vous appuyez sur tab.","Désactiver les complétions par tabulation.","Compléter les extraits de code par tabulation lorsque leur préfixe correspond. Fonctionne mieux quand les 'quickSuggestions' ne sont pas activées.","Active les complétions par tabulation","Les marques de fin de ligne inhabituelles sont ignorées.","Les marques de fin de ligne inhabituelles demandent à être supprimées.","Les marques de fin de ligne inhabituelles sont automatiquement supprimées.","Supprimez les marques de fin de ligne inhabituelles susceptibles de causer des problèmes.","L'insertion et la suppression des espaces blancs suit les taquets de tabulation.","Caractères utilisés comme séparateurs de mots durant la navigation ou les opérations basées sur les mots","Le retour automatique à la ligne n'est jamais effectué.","Le retour automatique à la ligne s'effectue en fonction de la largeur de la fenêtre d'affichage.","Les lignes seront terminées à `#editor.wordWrapColumn#`.","Les lignes seront terminées au minimum du viewport et `#editor.wordWrapColumn#`.","Contrôle comment les lignes doivent être limitées.","Contrôle la colonne de terminaison de l’éditeur lorsque `#editor.wordWrap#` est à `wordWrapColumn` ou `bounded`.","Aucune mise en retrait. Les lignes enveloppées commencent à la colonne 1.","Les lignes enveloppées obtiennent la même mise en retrait que le parent.","Les lignes justifiées obtiennent une mise en retrait +1 vers le parent.","Les lignes justifiées obtiennent une mise en retrait +2 vers le parent. ","Contrôle la mise en retrait des lignes justifiées.","Suppose que tous les caractères ont la même largeur. Il s'agit d'un algorithme rapide qui fonctionne correctement pour les polices à espacement fixe et certains scripts (comme les caractères latins) où les glyphes ont la même largeur.","Délègue le calcul des points de wrapping au navigateur. Il s'agit d'un algorithme lent qui peut provoquer le gel des grands fichiers, mais qui fonctionne correctement dans tous les cas.","Contrôle l'algorithme qui calcule les points de wrapping."], +"vs/editor/common/model/editStack":["Frappe en cours"],"vs/editor/common/modes/modesRegistry":["Texte brut"], +"vs/editor/common/standaloneStrings":["Aucune sélection","Ligne {0}, colonne {1} ({2} sélectionné)","Ligne {0}, colonne {1}","{0} sélections ({1} caractères sélectionnés)","{0} sélections","Remplacement du paramètre 'accessibilitySupport' par 'on'.","Ouverture de la page de documentation sur l'accessibilité de l'éditeur.","dans un volet en lecture seule d'un éditeur de différences.","dans un volet d'un éditeur de différences."," dans un éditeur de code en lecture seule"," dans un éditeur de code","Pour configurer l'éditeur de manière à être optimisé en cas d'utilisation d'un lecteur d'écran, appuyez sur Commande+E maintenant.","Pour configurer l'éditeur de manière à être optimisé en cas d'utilisation d'un lecteur d'écran, appuyez sur Contrôle+E maintenant.","L'éditeur est configuré pour être optimisé en cas d'utilisation avec un lecteur d'écran.","L'éditeur est configuré pour ne jamais être optimisé en cas d'utilisation avec un lecteur d'écran, ce qui n'est pas le cas pour le moment.","Appuyez sur Tab dans l'éditeur pour déplacer le focus vers le prochain élément pouvant être désigné comme élément actif. Activez ou désactivez ce comportement en appuyant sur {0}.","Appuyez sur Tab dans l'éditeur pour déplacer le focus vers le prochain élément pouvant être désigné comme élément actif. La commande {0} ne peut pas être déclenchée par une combinaison de touches.","Appuyez sur Tab dans l'éditeur pour insérer le caractère de tabulation. Activez ou désactivez ce comportement en appuyant sur {0}.","Appuyez sur Tab dans l'éditeur pour insérer le caractère de tabulation. La commande {0} ne peut pas être déclenchée par une combinaison de touches.","Appuyez sur Commande+H maintenant pour ouvrir une fenêtre de navigateur avec plus d'informations sur l'accessibilité de l'éditeur.","Appuyez sur Contrôle+H maintenant pour ouvrir une fenêtre de navigateur avec plus d'informations sur l'accessibilité de l'éditeur.","Vous pouvez masquer cette info-bulle et revenir à l'éditeur en appuyant sur Échap ou Maj+Échap.","Afficher l'aide sur l'accessibilité","Développeur : Inspecter les jetons","Accéder à la ligne/colonne...","Afficher tous les fournisseurs d'accès rapide","Palette de commandes","Commandes d'affichage et d'exécution","Accéder au symbole...","Accéder au symbole par catégorie...","Contenu de l'éditeur","Appuyez sur Alt+F1 pour voir les options d'accessibilité.","Activer/désactiver le thème à contraste élevé","{0} modifications dans {1} fichiers"], +"vs/editor/common/view/editorColorRegistry":["Couleur d'arrière-plan de la mise en surbrillance de la ligne à la position du curseur.","Couleur d'arrière-plan de la bordure autour de la ligne à la position du curseur.","Couleur d'arrière-plan des plages mises en surbrillance, comme par les fonctionnalités de recherche et Quick Open. La couleur ne doit pas être opaque pour ne pas masquer les ornements sous-jacents.","Couleur d'arrière-plan de la bordure autour des plages mises en surbrillance.","Couleur d'arrière-plan du symbole mis en surbrillance, comme le symbole Atteindre la définition ou Suivant/Précédent. La couleur ne doit pas être opaque pour ne pas masquer les décorations sous-jacentes.","Couleur d'arrière-plan de la bordure autour des symboles mis en surbrillance.","Couleur du curseur de l'éditeur.","La couleur de fond du curseur de l'éditeur. Permet de personnaliser la couleur d'un caractère survolé par un curseur de bloc.","Couleur des espaces blancs dans l'éditeur.","Couleur des repères de retrait de l'éditeur.","Couleur des guides d'indentation de l'éditeur actif","Couleur des numéros de ligne de l'éditeur.","Couleur des numéros de lignes actives de l'éditeur","L’ID est déprécié. Utilisez à la place 'editorLineNumber.activeForeground'.","Couleur des numéros de lignes actives de l'éditeur","Couleur des règles de l'éditeur","Couleur pour les indicateurs CodeLens","Couleur d'arrière-plan pour les accolades associées","Couleur pour le contour des accolades associées","Couleur de la bordure de la règle d'aperçu.","Couleur d'arrière-plan de la règle d'aperçu de l'éditeur. Utilisée uniquement quand la minimap est activée et placée sur le côté droit de l'éditeur.","Couleur de fond pour la bordure de l'éditeur. La bordure contient les marges pour les symboles et les numéros de ligne.","Couleur de bordure du code source inutile (non utilisé) dans l'éditeur.","Opacité du code source inutile (non utilisé) dans l'éditeur. Par exemple, '#000000c0' affiche le code avec une opacité de 75 %. Pour les thèmes à fort contraste, utilisez la couleur de thème 'editorUnnecessaryCode.border' pour souligner le code inutile au lieu d'utiliser la transparence.","Couleur de marqueur de la règle d'aperçu pour la mise en surbrillance des plages. La couleur ne doit pas être opaque pour ne pas masquer les ornements sous-jacents.","Couleur du marqueur de la règle d'aperçu pour les erreurs.","Couleur du marqueur de la règle d'aperçu pour les avertissements.","Couleur du marqueur de la règle d'aperçu pour les informations."], +"vs/editor/contrib/anchorSelect/anchorSelect":["Ancre de sélection","Ancre définie sur {0}:{1}","Définir l'ancre de sélection","Atteindre l'ancre de sélection","Sélectionner de l'ancre au curseur","Annuler l'ancre de sélection"],"vs/editor/contrib/bracketMatching/bracketMatching":["Couleur du marqueur de la règle d'aperçu pour rechercher des parenthèses.","Atteindre le crochet","Sélectionner jusqu'au crochet","Accéder au &&crochet"],"vs/editor/contrib/caretOperations/caretOperations":["Déplacer le texte sélectionné à gauche","Déplacer le texte sélectionné à droite"],"vs/editor/contrib/caretOperations/transpose":["Transposer les lettres"],"vs/editor/contrib/clipboard/clipboard":["Co&&uper","Couper","Couper","&&Copier","Copier","Copier","Co&&ller","Coller","Coller","Copier avec la coloration syntaxique"], +"vs/editor/contrib/codeAction/codeActionCommands":["Type d'action de code à exécuter.","Contrôle quand les actions retournées sont appliquées.","Appliquez toujours la première action de code retournée.","Appliquez la première action de code retournée si elle est la seule.","N'appliquez pas les actions de code retournées.","Contrôle si seules les actions de code par défaut doivent être retournées.","Une erreur inconnue s'est produite à l'application de l'action du code","Correction rapide...","Aucune action de code disponible","Aucune action de code préférée n'est disponible pour '{0}'","Aucune action de code disponible pour '{0}'","Aucune action de code par défaut disponible","Aucune action de code disponible","Remanier...","Aucune refactorisation par défaut disponible pour '{0}'","Aucune refactorisation disponible pour '{0}'","Aucune refactorisation par défaut disponible","Aucune refactorisation disponible","Action de la source","Aucune action source par défaut disponible pour '{0}'","Aucune action source disponible pour '{0}'","Aucune action source par défaut disponible","Aucune action n'est disponible","Organiser les importations","Aucune action organiser les imports disponible","Tout corriger","Aucune action Tout corriger disponible","Corriger automatiquement...","Aucun correctif automatique disponible"], +"vs/editor/contrib/codeAction/lightBulbWidget":["Affichez les corrections. Correction préférée disponible ({0})","Afficher les correctifs ({0})","Afficher les correctifs"],"vs/editor/contrib/codelens/codelensController":["Afficher les commandes Code Lens de la ligne actuelle"],"vs/editor/contrib/comment/comment":["Activer/désactiver le commentaire de ligne","Afficher/masquer le commen&&taire de ligne","Ajouter le commentaire de ligne","Supprimer le commentaire de ligne","Activer/désactiver le commentaire de bloc","Afficher/masquer le commentaire de &&bloc"],"vs/editor/contrib/contextmenu/contextmenu":["Afficher le menu contextuel de l'éditeur"],"vs/editor/contrib/cursorUndo/cursorUndo":["Annulation du curseur","Restauration du curseur"], +"vs/editor/contrib/documentSymbols/outlineTree":["Couleur de premier plan des symboles de tableau. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.","Couleur de premier plan des symboles booléens. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.","Couleur de premier plan des symboles de classe. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.","Couleur de premier plan des symboles de couleur. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.","Couleur de premier plan pour les symboles de constante. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.","Couleur de premier plan des symboles de constructeur. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.","Couleur de premier plan des symboles d'énumérateur. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.","Couleur de premier plan des symboles de membre d'énumérateur. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.","Couleur de premier plan des symboles d'événement. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.","Couleur de premier plan des symboles de champ. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.","Couleur de premier plan des symboles de fichier. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.","Couleur de premier plan des symboles de dossier. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.","Couleur de premier plan des symboles de fonction. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.","Couleur de premier plan des symboles d'interface. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.","Couleur de premier plan des symboles de clé. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.","Couleur de premier plan des symboles de mot clé. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.","Couleur de premier plan des symboles de méthode. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.","Couleur de premier plan des symboles de module. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.","Couleur de premier plan des symboles d'espace de noms. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.","Couleur de premier plan des symboles null. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.","Couleur de premier plan des symboles de nombre. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.","Couleur de premier plan des symboles d'objet. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.","Couleur de premier plan des symboles d'opérateur. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.","Couleur de premier plan des symboles de package. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.","Couleur de premier plan des symboles de propriété. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.","Couleur de premier plan des symboles de référence. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.","Couleur de premier plan des symboles d'extrait de code. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.","Couleur de premier plan des symboles de chaîne. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.","Couleur de premier plan des symboles de struct. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.","Couleur de premier plan des symboles de texte. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.","Couleur de premier plan des symboles de paramètre de type. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.","Couleur de premier plan des symboles d'unité. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.","Couleur de premier plan des symboles de variable. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion."], +"vs/editor/contrib/find/findController":["Rechercher","&&Rechercher","Rechercher dans la sélection","Rechercher suivant","Rechercher suivant","Rechercher précédent","Rechercher précédent","Sélection suivante","Sélection précédente","Remplacer","&&Remplacer"],"vs/editor/contrib/find/findWidget":["Rechercher","Rechercher","Correspondance précédente","Prochaine correspondance","Rechercher dans la sélection","Fermer","Remplacer","Remplacer","Remplacer","Tout remplacer","Changer le mode de remplacement","Seuls les {0} premiers résultats sont mis en évidence, mais toutes les opérations de recherche fonctionnent sur l’ensemble du texte.","{0} sur {1}","Aucun résultat","{0} trouvé(s)","{0} trouvé pour '{1}'","{0} trouvé pour '{1}', sur {2}","{0} trouvé pour '{1}'","La combinaison Ctrl+Entrée permet désormais d'ajouter un saut de ligne au lieu de tout remplacer. Vous pouvez modifier le raccourci clavier de editor.action.replaceAll pour redéfinir le comportement."], +"vs/editor/contrib/folding/folding":["Déplier","Déplier de manière récursive","Plier","Activer/désactiver le pliage","Plier de manière récursive","Replier tous les commentaires de bloc","Replier toutes les régions","Déplier toutes les régions","Plier tout","Déplier tout","Niveau de pliage {0}","Couleur d'arrière-plan des gammes pliées. La couleur ne doit pas être opaque pour ne pas cacher les décorations sous-jacentes.","Couleur du contrôle de pliage dans la marge de l'éditeur."],"vs/editor/contrib/fontZoom/fontZoom":["Agrandissement de l'éditeur de polices de caractères","Rétrécissement de l'éditeur de polices de caractères","Remise à niveau du zoom de l'éditeur de polices de caractères"],"vs/editor/contrib/format/format":["1 modification de format effectuée à la ligne {0}","{0} modifications de format effectuées à la ligne {1}","1 modification de format effectuée entre les lignes {0} et {1}","{0} modifications de format effectuées entre les lignes {1} et {2}"], +"vs/editor/contrib/format/formatActions":["Mettre le document en forme","Mettre la sélection en forme"],"vs/editor/contrib/gotoError/gotoError":["Aller au problème suivant (Erreur, Avertissement, Info)","Aller au problème précédent (Erreur, Avertissement, Info)","Aller au problème suivant dans Fichiers (Erreur, Avertissement, Info)","&&Problème suivant","Aller au problème précédent dans Fichiers (Erreur, Avertissement, Info)","&&Problème précédent"],"vs/editor/contrib/gotoError/gotoErrorWidget":["Erreur","Avertissement","Info","Conseil","{0} à {1}. ","{0} problèmes sur {1}","{0} problème(s) sur {1}","Couleur d'erreur du widget de navigation dans les marqueurs de l'éditeur.","Couleur d'avertissement du widget de navigation dans les marqueurs de l'éditeur.","Couleur d’information du widget de navigation du marqueur de l'éditeur.","Arrière-plan du widget de navigation dans les marqueurs de l'éditeur."], +"vs/editor/contrib/gotoSymbol/goToCommands":["Aperçu","Définitions","Définition introuvable pour '{0}'","Définition introuvable","Atteindre la définition","Atteindre la &&définition","Ouvrir la définition sur le côté","Faire un Peek de la Définition","Déclarations","Aucune déclaration pour '{0}'","Aucune déclaration","Accéder à la déclaration","Atteindre la &&déclaration","Aucune déclaration pour '{0}'","Aucune déclaration","Aperçu de la déclaration","Définitions de type","Définition de type introuvable pour '{0}'","Définition de type introuvable","Atteindre la définition de type","Accéder à la définition de &&type","Aperçu de la définition du type","Implémentations","Implémentation introuvable pour '{0}'","Implémentation introuvable","Atteindre les implémentations","Atteindre les &&implémentations","Implémentations d'aperçu","Aucune référence pour '{0}'","Aucune référence","Atteindre les références","Atteindre les &&références","Références","Aperçu des références","Références","Atteindre un symbole","Emplacements","Aucun résultat pour « {0} »","Références"], +"vs/editor/contrib/gotoSymbol/link/goToDefinitionAtPosition":["Cliquez pour afficher {0} définitions."],"vs/editor/contrib/gotoSymbol/peek/referencesController":["Chargement en cours...","{0} ({1})"],"vs/editor/contrib/gotoSymbol/peek/referencesTree":["{0} références","{0} référence","Références"],"vs/editor/contrib/gotoSymbol/peek/referencesWidget":["aperçu non disponible","Aucun résultat","Références"],"vs/editor/contrib/gotoSymbol/referencesModel":["symbole dans {0} sur la ligne {1}, colonne {2}","1 symbole dans {0}, chemin complet {1}","{0} symboles dans {1}, chemin complet {2}","Résultats introuvables","1 symbole dans {0}","{0} symboles dans {1}","{0} symboles dans {1} fichiers"],"vs/editor/contrib/gotoSymbol/symbolNavigation":["Symbole {0} sur {1}, {2} pour le suivant","Symbole {0} sur {1}"],"vs/editor/contrib/hover/hover":["Afficher par pointage","Afficher le pointeur de l'aperçu de définition"], +"vs/editor/contrib/hover/modesContentHover":["Chargement en cours...","Aperçu du problème","Recherche de correctifs rapides...","Aucune solution disponible dans l'immédiat","Correction rapide..."],"vs/editor/contrib/inPlaceReplace/inPlaceReplace":["Remplacer par la valeur précédente","Remplacer par la valeur suivante"],"vs/editor/contrib/indentation/indentation":["Convertir les retraits en espaces","Convertir les retraits en tabulations","Taille des tabulations configurée","Sélectionner la taille des tabulations pour le fichier actuel","Mettre en retrait avec des tabulations","Mettre en retrait avec des espaces","Détecter la mise en retrait à partir du contenu","Remettre en retrait les lignes","Réindenter les lignes sélectionnées"], +"vs/editor/contrib/linesOperations/linesOperations":["Copier la ligne en haut","&&Copier la ligne en haut","Copier la ligne en bas","Co&&pier la ligne en bas","Dupliquer la sélection","&&Dupliquer la sélection","Déplacer la ligne vers le haut","Déplacer la ligne &&vers le haut","Déplacer la ligne vers le bas","Déplacer la &&ligne vers le bas","Trier les lignes dans l'ordre croissant","Trier les lignes dans l'ordre décroissant","Découper l'espace blanc de fin","Supprimer la ligne","Mettre en retrait la ligne","Ajouter un retrait négatif à la ligne","Insérer une ligne au-dessus","Insérer une ligne sous","Supprimer tout ce qui est à gauche","Supprimer tout ce qui est à droite","Joindre les lignes","Transposer les caractères autour du curseur","Transformer en majuscule","Transformer en minuscule",'Appliquer la casse "1re lettre des mots en majuscule"'], +"vs/editor/contrib/links/links":["Exécuter la commande","suivre le lien","cmd + clic","ctrl + clic","option + clic","alt + clic","Échec de l'ouverture de ce lien, car il n'est pas bien formé : {0}","Échec de l'ouverture de ce lien, car sa cible est manquante.","Ouvrir le lien"],"vs/editor/contrib/message/messageController":["Impossible de modifier dans l’éditeur en lecture seule"], +"vs/editor/contrib/multicursor/multicursor":["Ajouter un curseur au-dessus","&&Ajouter un curseur au-dessus","Ajouter un curseur en dessous","Aj&&outer un curseur en dessous","Ajouter des curseurs à la fin des lignes","Ajouter des c&&urseurs à la fin des lignes","Ajouter des curseurs en bas","Ajouter des curseurs en haut","Ajouter la sélection à la correspondance de recherche suivante","Ajouter l'occurrence suiva&&nte","Ajouter la sélection à la correspondance de recherche précédente","Ajouter l'occurrence p&&récédente","Déplacer la dernière sélection vers la correspondance de recherche suivante","Déplacer la dernière sélection à la correspondance de recherche précédente","Sélectionner toutes les occurrences des correspondances de la recherche","Sélectionner toutes les &&occurrences","Modifier toutes les occurrences"],"vs/editor/contrib/parameterHints/parameterHints":["Indicateurs des paramètres Trigger"],"vs/editor/contrib/parameterHints/parameterHintsWidget":["{0}, conseil"], +"vs/editor/contrib/peekView/peekView":["Fermer","Couleur d'arrière-plan de la zone de titre de l'affichage d'aperçu.","Couleur du titre de l'affichage d'aperçu.","Couleur des informations sur le titre de l'affichage d'aperçu.","Couleur des bordures et de la flèche de l'affichage d'aperçu.","Couleur d'arrière-plan de la liste des résultats de l'affichage d'aperçu.","Couleur de premier plan des noeuds de lignes dans la liste des résultats de l'affichage d'aperçu.","Couleur de premier plan des noeuds de fichiers dans la liste des résultats de l'affichage d'aperçu.","Couleur d'arrière-plan de l'entrée sélectionnée dans la liste des résultats de l'affichage d'aperçu.","Couleur de premier plan de l'entrée sélectionnée dans la liste des résultats de l'affichage d'aperçu.","Couleur d'arrière-plan de l'éditeur d'affichage d'aperçu.","Couleur d'arrière-plan de la bordure de l'éditeur d'affichage d'aperçu.","Couleur de mise en surbrillance d'une correspondance dans la liste des résultats de l'affichage d'aperçu.","Couleur de mise en surbrillance d'une correspondance dans l'éditeur de l'affichage d'aperçu.","Bordure de mise en surbrillance d'une correspondance dans l'éditeur de l'affichage d'aperçu."], +"vs/editor/contrib/quickAccess/gotoLineQuickAccess":["Ouvrez d'abord un éditeur de texte pour accéder à une ligne.","Allez à la ligne {0}, colonne {1}.","Accédez à la ligne {0}.","Ligne actuelle : {0}, caractère : {1}. Tapez un numéro de ligne entre 1 et {2} auquel accéder.","Ligne actuelle : {0}, caractère : {1}. Tapez un numéro de ligne auquel accéder."], +"vs/editor/contrib/quickAccess/gotoSymbolQuickAccess":["Pour accéder à un symbole, ouvrez d'abord un éditeur de texte avec des informations de symbole.","L'éditeur de texte actif ne fournit pas les informations de symbole.","Aucun symbole d'éditeur correspondant","Aucun symbole d'éditeur","Ouvrir sur le côté","Ouvrir en bas","symboles ({0})","propriétés ({0})","méthodes ({0})","fonctions ({0})","constructeurs ({0})","variables ({0})","classes ({0})","structs ({0})","événements ({0})","opérateurs ({0})","interfaces ({0})","espaces de noms ({0})","packages ({0})","paramètres de type ({0})","modules ({0})","propriétés ({0})","énumérations ({0})","membres d'énumération ({0})","chaînes ({0})","fichiers ({0})","tableaux ({0})","nombres ({0})","booléens ({0})","objets ({0})","clés ({0})","champs ({0})","constantes ({0})"],"vs/editor/contrib/rename/onTypeRename":["Symbole de renommage selon le type","Couleur d'arrière-plan quand l'éditeur renomme automatiquement le type."], +"vs/editor/contrib/rename/rename":["Aucun résultat.","Une erreur inconnue s’est produite lors de la résolution de l'emplacement de renommage : {0}","Renommage de '{0}'","Changement du nom de {0}","'{0}' renommé en '{1}'. Récapitulatif : {2}","Le renommage n'a pas pu appliquer les modifications","Le renommage n'a pas pu calculer les modifications","Renommer le symbole","Activer/désactiver la possibilité d'afficher un aperçu des changements avant le renommage"],"vs/editor/contrib/rename/renameInputField":["Renommez l'entrée. Tapez le nouveau nom et appuyez sur Entrée pour valider.","{0} pour renommer, {1} pour afficher un aperçu"],"vs/editor/contrib/smartSelect/smartSelect":["Étendre la sélection","Dév&&elopper la sélection","Réduire la sélection","&&Réduire la sélection"], +"vs/editor/contrib/snippet/snippetVariables":["Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi","Dim","Lun","Mar","Mer","Jeu","Ven","Sam","Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre","Jan","Fév","Mar","Avr","Mai","Juin","Jul","Aoû","Sept","Oct","Nov","Déc"],"vs/editor/contrib/suggest/suggestController":["L'acceptation de '{0}' a entraîné {1} modifications supplémentaires","Suggestions pour Trigger","{0} pour insérer","{0} pour insérer","{0} pour remplacer","{0} pour remplacer","{0} pour insérer","afficher moins","afficher plus"], +"vs/editor/contrib/suggest/suggestWidget":["Couleur d'arrière-plan du widget de suggestion.","Couleur de bordure du widget de suggestion.","Couleur de premier plan du widget de suggestion.","Couleur d'arrière-plan de l'entrée sélectionnée dans le widget de suggestion.","Couleur de la surbrillance des correspondances dans le widget de suggestion.","En savoir plus ({0})","Lire moins ({0})","Chargement en cours...","Chargement en cours...","Pas de suggestions.","{0}, documents : {1}","Suggérer"],"vs/editor/contrib/toggleTabFocusMode/toggleTabFocusMode":["Activer/désactiver l'utilisation de la touche Tab pour déplacer le focus","Appuyer sur Tab déplacera le focus vers le prochain élément pouvant être désigné comme élément actif","Appuyer sur Tab insérera le caractère de tabulation"],"vs/editor/contrib/tokenization/tokenization":["Développeur : forcer la retokenisation"], +"vs/editor/contrib/unusualLineTerminators/unusualLineTerminators":["Marques de fin de ligne inhabituelles","Marques de fin de ligne inhabituelles détectées","Ce fichier contient un ou plusieurs caractères de fin de ligne inhabituels, par exemple le séparateur de ligne (LS) ou le séparateur de paragraphe (PS).\r\n\r\nIl est recommandé de les supprimer du fichier. Vous pouvez le configurer via 'editor.unusualLineTerminators'.","Corriger ce fichier","Ignorer le problème pour ce fichier"], +"vs/editor/contrib/wordHighlighter/wordHighlighter":["Couleur d'arrière-plan d'un symbole pendant l'accès en lecture, comme la lecture d'une variable. La couleur ne doit pas être opaque pour ne pas masquer les ornements sous-jacents.","Couleur d'arrière-plan d'un symbole pendant l'accès en écriture, comme l'écriture d'une variable. La couleur ne doit pas être opaque pour ne pas masquer les ornements sous-jacents.","Couleur de bordure d'un symbole durant l'accès en lecture, par exemple la lecture d'une variable.","Couleur de bordure d'un symbole durant l'accès en écriture, par exemple l'écriture dans une variable.","Couleur de marqueur de la règle d'aperçu pour la mise en surbrillance des symboles. La couleur ne doit pas être opaque pour ne pas masquer les ornements sous-jacents.","Couleur de marqueur de la règle d'aperçu pour la mise en surbrillance des symboles d'accès en écriture. La couleur ne doit pas être opaque pour ne pas masquer les ornements sous-jacents.","Aller à la prochaine mise en évidence de symbole","Aller à la mise en évidence de symbole précédente","Déclencher la mise en évidence de symbole"], +"vs/platform/actions/browser/menuEntryActionViewItem":["{0} ({1})"],"vs/platform/configuration/common/configurationRegistry":["Substitutions de configuration du langage par défaut","Configurez les paramètres d'éditeur à remplacer pour un langage.","Ce paramètre ne prend pas en charge la configuration par langage.","Impossible d'inscrire '{0}'. Ceci correspond au modèle de propriété '\\\\[.*\\\\]$' permettant de décrire les paramètres d'éditeur spécifiques à un langage. Utilisez la contribution 'configurationDefaults'.","Impossible d'inscrire '{0}'. Cette propriété est déjà inscrite."],"vs/platform/keybinding/common/abstractKeybindingService":["Touche ({0}) utilisée. En attente d'une seconde touche...","La combinaison de touches ({0}, {1}) n’est pas une commande."], +"vs/platform/list/browser/listService":["Banc d'essai","Mappe vers 'Contrôle' dans Windows et Linux, et vers 'Commande' dans macOS.","Mappe vers 'Alt' dans Windows et Linux, et vers 'Option' dans macOS.","Le modificateur à utiliser pour ajouter un élément dans les arbres et listes pour une sélection multiple avec la souris (par exemple dans l’Explorateur, les éditeurs ouverts et la vue scm). Les mouvements de la souris 'Ouvrir à côté' (si pris en charge) s'adapteront tels qu’ils n'entrent pas en conflit avec le modificateur multiselect.","Contrôle l’ouverture des éléments dans les arbres et listes à l’aide de la souris (si pris en charge). Pour les parents ayant des enfants dans les arbres, ce paramètre contrôlera si un simple clic déploie le parent ou un double-clic. Notez que certains arbres et listes peuvent choisir d’ignorer ce paramètre, si ce n’est pas applicable. ","Contrôle si les listes et les arborescences prennent en charge le défilement horizontal dans le banc d'essai. Avertissement : L'activation de ce paramètre a un impact sur les performances.","Contrôle la mise en retrait de l'arborescence, en pixels.","Contrôle si l'arborescence doit afficher les repères de mise en retrait.","Détermine si les listes et les arborescences ont un défilement fluide.","La navigation au clavier Simple place le focus sur les éléments qui correspondent à l'entrée de clavier. La mise en correspondance est effectuée sur les préfixes uniquement.","La navigation de mise en surbrillance au clavier met en surbrillance les éléments qui correspondent à l'entrée de clavier. La navigation ultérieure vers le haut ou vers le bas parcourt uniquement les éléments mis en surbrillance.","La navigation au clavier Filtrer filtre et masque tous les éléments qui ne correspondent pas à l'entrée de clavier.","Contrôle le style de navigation au clavier pour les listes et les arborescences dans le banc d'essai. Les options sont Simple, Mise en surbrillance et Filtrer.","Contrôle si la navigation au clavier dans les listes et les arborescences est automatiquement déclenchée simplement par la frappe. Si défini sur 'false', la navigation au clavier est seulement déclenchée avec l'exécution de la commande 'list.toggleKeyboardNavigation', à laquelle vous pouvez attribuer un raccourci clavier."], +"vs/platform/markers/common/markers":["Erreur","Avertissement","Info"],"vs/platform/quickinput/browser/commandsQuickAccess":["{0}, {1}","récemment utilisées","autres commandes","La commande '{0}' a entraîné une erreur ({1})"],"vs/platform/quickinput/browser/helpQuickAccess":["commandes globales","commandes de l'éditeur","{0}, {1}"], +"vs/platform/theme/common/colorRegistry":["Couleur de premier plan globale. Cette couleur est utilisée si elle n'est pas remplacée par un composant.","Couleur principale de premier plan pour les messages d'erreur. Cette couleur est utilisée uniquement si elle n'est pas redéfinie par un composant.","Couleur par défaut des icônes du banc d'essai.","Couleur de bordure globale des éléments ayant le focus. Cette couleur est utilisée si elle n'est pas remplacée par un composant.","Bordure supplémentaire autour des éléments pour les séparer des autres et obtenir un meilleur contraste.","Bordure supplémentaire autour des éléments actifs pour les séparer des autres et obtenir un meilleur contraste.","Couleur des liens dans le texte.","Couleur d'arrière-plan des blocs de code dans le texte.","Couleur de l'ombre des widgets, comme rechercher/remplacer, au sein de l'éditeur.","Arrière-plan de la zone d'entrée.","Premier plan de la zone d'entrée.","Bordure de la zone d'entrée.","Couleur de la bordure des options activées dans les champs d'entrée.","Couleur d'arrière-plan des options activées dans les champs d'entrée.","Couleur de premier plan des options activées dans les champs d'entrée.","Couleur d'arrière-plan de la validation d'entrée pour la gravité des informations.","Couleur de premier plan de validation de saisie pour la sévérité Information.","Couleur de bordure de la validation d'entrée pour la gravité des informations.","Couleur d'arrière-plan de la validation d'entrée pour la gravité de l'avertissement.","Couleur de premier plan de la validation de la saisie pour la sévérité Avertissement.","Couleur de bordure de la validation d'entrée pour la gravité de l'avertissement.","Couleur d'arrière-plan de la validation d'entrée pour la gravité de l'erreur.","Couleur de premier plan de la validation de saisie pour la sévérité Erreur.","Couleur de bordure de la validation d'entrée pour la gravité de l'erreur. ","Arrière-plan de la liste déroulante.","Premier plan de la liste déroulante.","Couleur de premier plan du bouton.","Couleur d'arrière-plan du bouton.","Couleur d'arrière-plan du bouton pendant le pointage.","Couleur de fond des badges. Les badges sont de courts libellés d'information, ex. le nombre de résultats de recherche.","Couleur des badges. Les badges sont de courts libellés d'information, ex. le nombre de résultats de recherche.","Ombre de la barre de défilement pour indiquer que la vue défile.","Couleur de fond du curseur de la barre de défilement.","Couleur de fond du curseur de la barre de défilement lors du survol.","Couleur d’arrière-plan de la barre de défilement lorsqu'on clique dessus.","Couleur de fond pour la barre de progression qui peut s'afficher lors d'opérations longues.","Couleur de premier plan de la ligne ondulée marquant les erreurs dans l'éditeur.","Couleur de bordure des zones d'erreur dans l'éditeur.","Couleur de premier plan de la ligne ondulée marquant les avertissements dans l'éditeur.","Couleur de bordure des zones d'avertissement dans l'éditeur.","Couleur de premier plan de la ligne ondulée marquant les informations dans l'éditeur.","Couleur de bordure des zones d'informations dans l'éditeur.","Couleur de premier plan de la ligne ondulée d'indication dans l'éditeur.","Couleur de bordure des zones d'indication dans l'éditeur.","Couleur d'arrière-plan de l'éditeur.","Couleur de premier plan par défaut de l'éditeur.","Couleur d'arrière-plan des gadgets de l'éditeur tels que rechercher/remplacer.","Couleur de premier plan des widgets de l'éditeur, notamment Rechercher/remplacer.","Couleur de bordure des widgets de l'éditeur. La couleur est utilisée uniquement si le widget choisit d'avoir une bordure et si la couleur n'est pas remplacée par un widget.","Couleur de bordure de la barre de redimensionnement des widgets de l'éditeur. La couleur est utilisée uniquement si le widget choisit une bordure de redimensionnement et si la couleur n'est pas remplacée par un widget.","Couleur d'arrière-plan du sélecteur rapide. Le widget de sélecteur rapide est le conteneur de sélecteurs comme la palette de commandes.","Couleur de premier plan du sélecteur rapide. Le widget de sélecteur rapide est le conteneur de sélecteurs comme la palette de commandes.","Couleur d'arrière-plan du titre du sélecteur rapide. Le widget de sélecteur rapide est le conteneur de sélecteurs comme la palette de commandes.","Couleur du sélecteur rapide pour les étiquettes de regroupement.","Couleur du sélecteur rapide pour les bordures de regroupement.","Couleur de la sélection de l'éditeur.","Couleur du texte sélectionné pour le contraste élevé.","Couleur de la sélection dans un éditeur inactif. La couleur ne doit pas être opaque pour ne pas masquer les ornements sous-jacents.","Couleur des régions dont le contenu est le même que celui de la sélection. La couleur ne doit pas être opaque pour ne pas masquer les ornements sous-jacents.","Couleur de bordure des régions dont le contenu est identique à la sélection.","Couleur du résultat de recherche actif.","Couleur des autres correspondances de recherche. La couleur ne doit pas être opaque pour ne pas masquer les ornements sous-jacents.","Couleur de la plage limitant la recherche. La couleur ne doit pas être opaque pour ne pas masquer les ornements sous-jacents.","Couleur de bordure du résultat de recherche actif.","Couleur de bordure des autres résultats de recherche.","Couleur de bordure de la plage limitant la recherche. La couleur ne doit pas être opaque pour ne pas masquer les ornements sous-jacents.","Surlignage sous le mot sélectionné par pointage. La couleur ne doit pas être opaque pour ne pas masquer les ornements sous-jacents.","Couleur d'arrière-plan du pointage de l'éditeur.","Couleur de premier plan du pointage de l'éditeur.","Couleur de bordure du pointage de l'éditeur.","Couleur d'arrière-plan de la barre d'état du pointage de l'éditeur.","Couleur des liens actifs.","Couleur utilisée pour l'icône d'ampoule suggérant des actions.","Couleur utilisée pour l'icône d'ampoule suggérant des actions de correction automatique.","Couleur d'arrière-plan du texte inséré. La couleur ne doit pas être opaque pour ne pas masquer les ornements sous-jacents.","Couleur d'arrière-plan du texte supprimé. La couleur ne doit pas être opaque pour ne pas masquer les ornements sous-jacents.","Couleur de contour du texte inséré.","Couleur de contour du texte supprimé.","Couleur de bordure entre les deux éditeurs de texte.","Couleur du remplissage diagonal de l'éditeur de différences. Le remplissage diagonal est utilisé dans les vues de différences côte à côte.","Couleur d'arrière-plan de la liste/l'arborescence pour l'élément ayant le focus quand la liste/l'arborescence est active. Une liste/arborescence active peut être sélectionnée au clavier, elle ne l'est pas quand elle est inactive.","Couleur de premier plan de la liste/l'arborescence pour l'élément ayant le focus quand la liste/l'arborescence est active. Une liste/arborescence active peut être sélectionnée au clavier, elle ne l'est pas quand elle est inactive.","Couleur d'arrière-plan de la liste/l'arborescence de l'élément sélectionné quand la liste/l'arborescence est active. Une liste/arborescence active peut être sélectionnée au clavier, elle ne l'est pas quand elle est inactive.","Couleur de premier plan de la liste/l'arborescence pour l'élément sélectionné quand la liste/l'arborescence est active. Une liste/arborescence active peut être sélectionnée au clavier, elle ne l'est pas quand elle est inactive.","Couleur d'arrière-plan de la liste/l'arborescence pour l'élément sélectionné quand la liste/l'arborescence est inactive. Une liste/arborescence active peut être sélectionnée au clavier, elle ne l'est pas quand elle est inactive.","Couleur de premier plan de la liste/l'arborescence pour l'élément sélectionné quand la liste/l'arborescence est inactive. Une liste/arborescence active peut être sélectionnée au clavier, elle ne l'est pas quand elle est inactive.","Couleur d'arrière-plan de la liste/l'arborescence pour l'élément ayant le focus quand la liste/l'arborescence est active. Une liste/arborescence active peut être sélectionnée au clavier (elle ne l'est pas quand elle est inactive).","Arrière-plan de la liste/l'arborescence pendant le pointage sur des éléments avec la souris.","Premier plan de la liste/l'arborescence pendant le pointage sur des éléments avec la souris.","Arrière-plan de l'opération de glisser-déplacer dans une liste/arborescence pendant le déplacement d'éléments avec la souris.","Couleur de premier plan dans la liste/l'arborescence pour la surbrillance des correspondances pendant la recherche dans une liste/arborescence.","Couleur d'arrière-plan du widget de filtre de type dans les listes et les arborescences.","Couleur de contour du widget de filtre de type dans les listes et les arborescences.","Couleur de contour du widget de filtre de type dans les listes et les arborescences, en l'absence de correspondance.","Couleur de trait de l'arborescence pour les repères de mise en retrait.","Couleur de bordure des menus.","Couleur de premier plan des éléments de menu.","Couleur d'arrière-plan des éléments de menu.","Couleur de premier plan de l'élément de menu sélectionné dans les menus.","Couleur d'arrière-plan de l'élément de menu sélectionné dans les menus.","Couleur de bordure de l'élément de menu sélectionné dans les menus.","Couleur d'un élément de menu séparateur dans les menus.","Couleur d’arrière-plan de mise en surbrillance d’un extrait tabstop.","Couleur de bordure de mise en surbrillance d’un extrait tabstop.","Couleur d’arrière-plan de mise en surbrillance du tabstop final d’un extrait.","Mettez en surbrillance la couleur de bordure du dernier taquet de tabulation d'un extrait de code.","Couleur de marqueur de la règle d'aperçu pour rechercher les correspondances. La couleur ne doit pas être opaque pour ne pas masquer les ornements sous-jacents.","Couleur de marqueur de la règle d'aperçu pour la mise en surbrillance des sélections. La couleur ne doit pas être opaque pour ne pas masquer les ornements sous-jacents.","Couleur de marqueur de la minimap pour les correspondances.","Couleur de marqueur du minimap pour la sélection de l'éditeur.","Couleur de marqueur de minimap pour les erreurs.","Couleur de marqueur de minimap pour les avertissements.","Couleur d'arrière-plan du minimap.","Couleur d'arrière-plan du curseur de minimap.","Couleur d'arrière-plan du curseur de minimap pendant le survol.","Couleur d'arrière-plan du curseur de minimap pendant un clic.","Couleur utilisée pour l'icône d'erreur des problèmes.","Couleur utilisée pour l'icône d'avertissement des problèmes.","Couleur utilisée pour l'icône d'informations des problèmes."], +"vs/platform/undoRedo/common/undoRedoService":["Les fichiers suivants ont été fermés et modifiés sur le disque : {0}.","Les fichiers suivants ont été modifiés de manière incompatible : {0}.","Impossible d'annuler '{0}' dans tous les fichiers. {1}","Impossible d'annuler '{0}' dans tous les fichiers. {1}","Impossible d'annuler '{0}' dans tous les fichiers, car des modifications ont été apportées à {1}","Impossible d'annuler '{0}' dans tous les fichiers, car une opération d'annulation ou de rétablissement est déjà en cours d'exécution sur {1}","Impossible d'annuler '{0}' dans tous les fichiers, car une opération d'annulation ou de rétablissement s'est produite dans l'intervalle","Souhaitez-vous annuler '{0}' dans tous les fichiers ?","Annuler dans {0} fichiers","Annuler ce fichier","Annuler","Impossible d'annuler '{0}', car une opération d'annulation ou de rétablissement est déjà en cours d'exécution.","Impossible de répéter '{0}' dans tous les fichiers. {1}","Impossible de répéter '{0}' dans tous les fichiers. {1}","Impossible de répéter '{0}' dans tous les fichiers, car des modifications ont été apportées à {1}","Impossible de rétablir '{0}' dans tous les fichiers, car une opération d'annulation ou de rétablissement est déjà en cours d'exécution sur {1}","Impossible de rétablir '{0}' dans tous les fichiers, car une opération d'annulation ou de rétablissement s'est produite dans l'intervalle","Impossible de rétablir '{0}', car une opération d'annulation ou de rétablissement est déjà en cours d'exécution."] +}); //# sourceMappingURL=../../../min-maps/vs/editor/editor.main.nls.fr.js.map \ No newline at end of file diff --git a/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/editor/editor.main.nls.it.js b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/editor/editor.main.nls.it.js index e15a145..6164f44 100644 --- a/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/editor/editor.main.nls.it.js +++ b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/editor/editor.main.nls.it.js @@ -1,8 +1,43 @@ /*!----------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. - * Version: 0.9.0(630109944f54bcdfc2dbaaff5f090c0843af6c66) + * Version: 0.21.2(67b5a8116f3c0bace36b180e524e05bb750a16d8) * Released under the MIT license * https://github.com/Microsoft/vscode/blob/master/LICENSE.txt *-----------------------------------------------------------*/ -define("vs/editor/editor.main.nls.it",{"vs/base/browser/ui/actionbar/actionbar":["{0} ({1})"],"vs/base/browser/ui/aria/aria":["{0} (nuova occorrenza)"],"vs/base/browser/ui/findinput/findInput":["input"],"vs/base/browser/ui/findinput/findInputCheckboxes":["Maiuscole/minuscole","Parola intera","Usa espressione regolare"],"vs/base/browser/ui/inputbox/inputBox":["Errore: {0}","Avviso: {0}","Info: {0}"],"vs/base/common/keybindingLabels":["CTRL","MAIUSC","ALT","Windows","CTRL","MAIUSC","ALT","Comando","CTRL","MAIUSC","ALT","Windows"],"vs/base/common/severity":["Errore","Avviso","Informazioni"],"vs/base/parts/quickopen/browser/quickOpenModel":["{0}, selezione","selezione"],"vs/base/parts/quickopen/browser/quickOpenWidget":["Selezione rapida. Digitare per ridurre il numero di risultati.","Selezione rapida"],"vs/base/parts/tree/browser/treeDefaults":["Comprimi"],"vs/editor/browser/widget/diffReview":["Chiudi","Difference {0} of {1}: original {2}, {3} lines, modified {4}, {5} lines","blank","original {0}, modified {1}: {2}","+ modified {0}: {1}","- original {0}: {1}","Go to Next Difference","Go to Previous Difference"],"vs/editor/common/config/commonEditorConfig":["Editor","Controlla la famiglia di caratteri.","Controlla lo spessore del carattere.","Controlla le dimensioni del carattere in pixel.","Controlla l'altezza della riga. Usare 0 per calcolare l'altezza della riga dalle dimensioni del carattere.","Controlla la spaziatura tra le lettere in pixel.","Consente di controllare la visualizzazione dei numeri di riga. I valori possibili sono 'on', 'off' e 'relative'. Con 'relative' viene visualizzato il conteggio delle righe a partire dalla posizione corrente del cursore.","Colonne in corrispondenza delle quali visualizzare i righelli verticali","Caratteri che verranno usati come separatori di parola quando si eseguono operazioni o spostamenti correlati a parole","Numero di spazi a cui equivale una tabulazione. Quando `editor.detectIndentation` è attivo, questa impostazione viene sostituita in base al contenuto del file.","È previsto 'number'. Nota: il valore \"auto\" è stato sostituito dall'impostazione `editor.detectIndentation`.","Inserisce spazi quando viene premuto TAB. Quando `editor.detectIndentation` è attivo, questa impostazione viene sostituita in base al contenuto del file.","È previsto 'boolean'. Nota: il valore \"auto\" è stato sostituito dall'impostazione `editor.detectIndentation`.","All'apertura di un file, `editor.tabSize` e `editor.insertSpaces` verranno rilevati in base al contenuto del file.","Controlla se gli angoli delle selezioni sono arrotondati","Controlla se l'editor scorrerà oltre l'ultima riga","Controlla se la mini mappa è visualizzata","Controlla se lo slider della mini mappa viene nascosto automaticamente.","Esegue il rendering dei caratteri effettivi di una riga (in contrapposizione ai blocchi colore)","Limita la larghezza della mini mappa in modo da eseguire il rendering al massimo di un certo numero di colonne","Controlla se inizializzare la stringa di ricerca nel Widget Trova con il testo selezionato nell'editor","Controlla se l'impostazione Trova nella selezione è attivata quando vengono selezionati più caratteri o righe di testo nell'editor","Il wrapping delle righe non viene eseguito.","Verrà eseguito il wrapping delle righe in base alla larghezza del viewport.","Verrà eseguito il wrapping delle righe alla posizione corrispondente a `editor.wordWrapColumn`.","Verrà eseguito il wrapping delle righe alla posizione minima del viewport e di `editor.wordWrapColumn`.","Controlla il wrapping delle righe. Valori possibili:\n - 'off' (disabilita il wrapping),\n - 'on' (wrapping del viewport),\n - 'wordWrapColumn' (esegue il wrapping alla posizione corrispondente a `editor.wordWrapColumn`) o\n - 'bounded' (esegue il wrapping alla posizione minima del viewport e di `editor.wordWrapColumn`).","Controlla la colonna di wrapping dell'editor quando il valore di `editor.wordWrap` è 'wordWrapColumn' o 'bounded'.","Controlla il rientro delle righe con ritorno a capo. Può essere uno dei valori seguenti: 'none', 'same' o 'indent'.","Moltiplicatore da usare sui valori `deltaX` e `deltaY` degli eventi di scorrimento della rotellina del mouse","Rappresenta il tasto 'Control' (ctrl) su Windows e Linux e il tasto 'Comando' (cmd) su OSX.","Rappresenta il tasto 'Alt' su Windows e Linux e il tasto 'Opzione' su OSX.","Il modificatore da utilizzare per aggiungere molteplici cursori con il mouse. 'ctrlCmd' rappresenta il tasto 'Control' su Windows e Linux e il tasto 'Comando' su OSX. I gesti del mouse Vai a definizione e Apri il Link si adatteranno in modo da non entrare in conflitto con il modificatore multi-cursore.","Abilita i suggerimenti rapidi all'interno di stringhe.","Abilita i suggerimenti rapidi all'interno di commenti.","Abilita i suggerimenti rapidi all'esterno di stringhe e commenti.","Controlla se visualizzare automaticamente i suggerimenti durante la digitazione","Controlla il ritardo in ms dopo il quale verranno visualizzati i suggerimenti rapidi","Abilita un popup che mostra documentazione sui parametri e informazioni sui tipi mentre si digita","Controlla se l'editor deve chiudere automaticamente le parentesi quadre dopo che sono state aperte","Controlla se l'editor deve formattare automaticamente la riga dopo la digitazione","Controlla se l'editor deve formattare automaticamente il contenuto incollato. Deve essere disponibile un formattatore che deve essere in grado di formattare un intervallo in un documento.","Controls if the editor should automatically adjust the indentation when users type, paste or move lines. Indentation rules of the language must be available. ","Controlla se i suggerimenti devono essere visualizzati automaticamente durante la digitazione dei caratteri trigger","Controlla se i suggerimenti devono essere accettati con 'INVIO' in aggiunta a 'TAB'. In questo modo è possibile evitare ambiguità tra l'inserimento di nuove righe e l'accettazione di suggerimenti. Il valore 'smart' indica di accettare un suggerimento con 'INVIO' quando comporta una modifica al testo","Controlla se accettare i suggerimenti con i caratteri di commit. Ad esempio, in JavaScript il punto e virgola (';') può essere un carattere di commit che accetta un suggerimento e digita tale carattere.","Controlla se i frammenti di codice sono visualizzati con altri suggerimenti e il modo in cui sono ordinati.","Consente di controllare se, quando si copia senza aver effettuato una selezione, viene copiata la riga corrente.","Controlla se calcolare i completamenti in base alle parole presenti nel documento.","Dimensioni del carattere per il widget dei suggerimenti","Altezza della riga per il widget dei suggerimenti","Controlla se l'editor deve evidenziare gli elementi corrispondenti simili alla selezione","Controlla se l'editor deve evidenziare le occorrenze di simboli semantici","Controlla il numero di effetti che possono essere visualizzati nella stessa posizione nel righello delle annotazioni","Controlla se deve essere disegnato un bordo intorno al righello delle annotazioni.","Controlla lo stile di animazione del cursore. I valori possibili sono: 'blink', 'smooth', 'phase', 'expand' e 'solid'","Ingrandisce il carattere dell'editor quando si usa la rotellina del mouse e si tiene premuto CTRL","Controlla lo stile del cursore. I valori accettati sono 'block', 'block-outline', 'line', 'line-thin', 'underline' e 'underline-thin'","Abilita i caratteri legatura","Controlla se il cursore deve essere nascosto nel righello delle annotazioni.","Consente di controllare in che modo l'editor deve eseguire il rendering dei caratteri di spazio vuoto. Le opzioni possibili sono: 'none', 'boundary' e 'all'. Con l'opzione 'boundary' non viene eseguito il rendering di singoli spazi tra le parole.","Controlla se l'editor deve eseguire il rendering dei caratteri di controllo","Controlla se l'editor deve eseguire il rendering delle guide con rientro","Consente di controllare in che modo l'editor deve eseguire il rendering dell'evidenziazione di riga corrente. Le opzioni possibili sono 'none', 'gutter', 'line' e 'all'.","Controlla se nell'editor sono visualizzate le finestre di CodeLens","Controlla se per l'editor è abilitata la riduzione del codice","Controlla se i controlli di riduzione sul margine della barra di scorrimento sono automaticamente nascosti.","Evidenzia le parentesi corrispondenti quando se ne seleziona una.","Controlla se l'editor deve eseguire il rendering del margine verticale del glifo. Il margine del glifo viene usato principalmente per il debug.","Inserimento ed eliminazione dello spazio vuoto dopo le tabulazioni","Rimuovi lo spazio vuoto finale inserito automaticamente","Mantiene aperti gli editor rapidi anche quando si fa doppio clic sul contenuto o si preme ESC.","Controlla se l'editor consentire lo spostamento di selezioni tramite trascinamento della selezione.","L'editor utilizzerà API della piattaforma per rilevare quando è collegata un'utilità per la lettura dello schermo.","L'editor sarà definitivamente ottimizzato per l'utilizzo con un'utilità per la lettura dello schermo.","L'editor non sarà mai ottimizzato per l'utilizzo con un'utilità per la lettura dello schermo.","Controlla se l'editor deve essere eseguito in una modalità ottimizzata per le utilità per la lettura dello schermo.","Controlla se l'editor deve individuare i collegamenti e renderli cliccabili","Controlla se l'editor diff mostra le differenze affiancate o incorporate","Controlla se l'editor diff mostra come differenze le modifiche relative a spazi vuoti iniziali e finali","Consente di controllare se l'editor diff mostra gli indicatori +/- per le modifiche aggiunte/rimosse","Controlla se gli appunti primari di Linux devono essere supportati."],"vs/editor/common/config/editorOptions":["L'editor non è accessibile in questo momento. Premere Alt+F1 per le opzioni.","Contenuto editor"],"vs/editor/common/controller/cursor":["Eccezione imprevista durante l'esecuzione del comando."],"vs/editor/common/model/textModelWithTokens":["Si è verificato un errore della modalità durante la suddivisione in token dell'input."],"vs/editor/common/modes/modesRegistry":["Testo normale"],"vs/editor/common/services/bulkEdit":["Nel frattempo questi file sono stati modificati: {0}","Non sono state effettuate modifiche","Effettuate {0} modifiche al testo in {1} file","Effettuate {0} modifiche al testo in un file"],"vs/editor/common/services/modelServiceImpl":["[{0}]\n{1}","[{0}] {1}"],"vs/editor/common/view/editorColorRegistry":["Colore di sfondo per l'evidenziazione della riga alla posizione del cursore.","Colore di sfondo per il bordo intorno alla riga alla posizione del cursore.","Colore di sfondo degli intervalli evidenziati, ad esempio dalle funzionalità Quick Open e Trova.","Colore del cursore dell'editor.","Colore dei caratteri di spazio vuoto nell'editor.","Colore delle guide per i rientri dell'editor.","Colore dei numeri di riga dell'editor.","Colore dei righelli dell'editor.","Colore primo piano delle finestre di CodeLens dell'editor","Colore di sfondo delle parentesi corrispondenti","Colore delle caselle di parentesi corrispondenti","Colore del bordo del righello delle annotazioni.","Colore di sfondo della barra di navigazione dell'editor. La barra contiene i margini di glifo e i numeri di riga.","Colore primo piano degli squiggle di errore nell'editor.","Colore del bordo degli squiggle di errore nell'editor.","Colore primo piano degli squiggle di avviso nell'editor","Colore del bordo degli squggle di avviso nell'editor."],"vs/editor/contrib/bracketMatching/common/bracketMatching":["Vai alla parentesi"],"vs/editor/contrib/caretOperations/common/caretOperations":["Sposta il punto di inserimento a sinistra","Sposta il punto di inserimento a destra"],"vs/editor/contrib/caretOperations/common/transpose":["Trasponi lettere"],"vs/editor/contrib/clipboard/browser/clipboard":["Taglia","Copia","Incolla","Copia con evidenziazione sintassi"],"vs/editor/contrib/comment/common/comment":["Attiva/Disattiva commento per la riga","Aggiungi commento per la riga","Rimuovi commento per la riga","Attiva/Disattiva commento per il blocco"],"vs/editor/contrib/contextmenu/browser/contextmenu":["Mostra il menu di scelta rapida editor"],"vs/editor/contrib/find/browser/findWidget":["Trova","Trova","Risultato precedente","Risultato successivo","Trova nella selezione","Chiudi","Sostituisci","Sostituisci","Sostituisci","Sostituisci tutto","Attiva/Disattiva modalità sostituzione","Vengono evidenziati solo i primi 999 risultati, ma tutte le operazioni di ricerca funzionano sull'intero testo.","{0} di {1}","Nessuna impostazione corrispondente"],"vs/editor/contrib/find/common/findController":["Trova","Trova successivo","Trova precedente","Trova selezione successiva","Trova selezione precedente","Sostituisci","Aggiungi selezione a risultato ricerca successivo","Aggiungi selezione a risultato ricerca precedente","Sposta ultima selezione a risultato ricerca successivo","Sposta ultima selezione a risultato ricerca precedente","Seleziona tutte le occorrenze del risultato ricerca","Cambia tutte le occorrenze"],"vs/editor/contrib/folding/browser/folding":["Espandi","Espandi in modo ricorsivo","Riduci","Riduci in modo ricorsivo","Riduci tutto","Espandi tutto","Livello riduzione {0}"],"vs/editor/contrib/format/browser/formatActions":["È stata apportata 1 modifica di formattazione a riga {0}","Sono state apportate {0} modifiche di formattazione a riga {1}","È stata apportata 1 modifica di formattazione tra le righe {0} e {1}","Sono state apportate {0} modifiche di formattazione tra le righe {1} e {2}","Formatta documento","Formatta selezione"],"vs/editor/contrib/goToDeclaration/browser/goToDeclarationCommands":["Non è stata trovata alcuna definizione per '{0}'","Non è stata trovata alcuna definizione"," - Definizioni di {0}","Vai alla definizione","Apri definizione lateralmente","Visualizza la definizione","Non sono state trovate implementazioni per '{0}'","Non sono state trovate implementazioni","- {0} implementazioni","Vai all'implementazione","Anteprima implementazione","Non sono state trovate definizioni di tipi per '{0}'","Non sono state trovate definizioni di tipi"," - {0} definizioni di tipo","Vai alla definizione di tipo","Anteprima definizione di tipo"],"vs/editor/contrib/goToDeclaration/browser/goToDeclarationMouse":["Fare clic per visualizzare {0} definizioni."],"vs/editor/contrib/gotoError/browser/gotoError":["({0}/{1})","Vai a errore o avviso successivo","Vai a errore o avviso precedente","Colore per gli errori del widget di spostamento tra marcatori dell'editor.","Colore per gli avvisi del widget di spostamento tra marcatori dell'editor.","Sfondo del widget di spostamento tra marcatori dell'editor."],"vs/editor/contrib/hover/browser/hover":["Visualizza passaggio del mouse"],"vs/editor/contrib/hover/browser/modesContentHover":["Caricamento..."],"vs/editor/contrib/inPlaceReplace/common/inPlaceReplace":["Sostituisci con il valore precedente","Sostituisci con il valore successivo"],"vs/editor/contrib/linesOperations/common/linesOperations":["Copia la riga in alto","Copia la riga in basso","Sposta la riga in alto","Sposta la riga in basso","Ordinamento righe crescente","Ordinamento righe decrescente","Taglia spazio vuoto finale","Elimina la riga","Imposta un rientro per la riga","Riduci il rientro per la riga","Inserisci la riga sopra","Inserisci la riga sotto","Elimina tutto a sinistra","Elimina tutto a destra","Unisci righe","Trasponi caratteri intorno al cursore","Converti in maiuscolo","Converti in minuscolo"],"vs/editor/contrib/links/browser/links":["Cmd + clic per seguire il collegamento","CTRL + clic per seguire il collegamento","Alt + clic per seguire il collegamento","Non è stato possibile aprire questo collegamento perché il formato non è valido: {0}","Non è stato possibile aprire questo collegamento perché manca la destinazione.","Apri il collegamento"],"vs/editor/contrib/multicursor/common/multicursor":["Aggiungi cursore sopra","Aggiungi cursore sotto","Aggiungi cursore alla fine delle righe"],"vs/editor/contrib/parameterHints/browser/parameterHints":["Attiva i suggerimenti per i parametri"],"vs/editor/contrib/parameterHints/browser/parameterHintsWidget":["{0}, suggerimento"],"vs/editor/contrib/quickFix/browser/quickFixCommands":["Mostra correzioni ({0})","Mostra correzioni","Correzione rapida"],"vs/editor/contrib/referenceSearch/browser/referenceSearch":[" - Riferimenti di {0}","Trova tutti i riferimenti"],"vs/editor/contrib/referenceSearch/browser/referencesController":["Caricamento..."],"vs/editor/contrib/referenceSearch/browser/referencesModel":["simbolo in {0} alla riga {1} colonna {2}","1 simbolo in {0}, percorso completo {1}","{0} simboli in {1}, percorso completo {2}","Non sono stati trovati risultati","Trovato 1 simbolo in {0}","Trovati {0} simboli in {1}","Trovati {0} simboli in {1} file"],"vs/editor/contrib/referenceSearch/browser/referencesWidget":["Non è stato possibile risolvere il file.","{0} riferimenti","{0} riferimento","anteprima non disponibile","Riferimenti","Nessun risultato","Riferimenti","Colore di sfondo dell'area del titolo della visualizzazione rapida.","Colore del titolo della visualizzazione rapida.","Colore delle informazioni del titolo della visualizzazione rapida.","Colore dei bordi e della freccia della visualizzazione rapida.","Colore di sfondo dell'elenco risultati della visualizzazione rapida.","Colore primo piano dei nodi riga nell'elenco risultati della visualizzazione rapida.","Colore primo piano dei nodi file nell'elenco risultati della visualizzazione rapida.","Colore di sfondo della voce selezionata nell'elenco risultati della visualizzazione rapida.","Colore primo piano della voce selezionata nell'elenco risultati della visualizzazione rapida.","Colore di sfondo dell'editor di visualizzazioni rapide.","Colore di sfondo della barra di navigazione nell'editor visualizzazione rapida.","Colore dell'evidenziazione delle corrispondenze nell'elenco risultati della visualizzazione rapida.","Colore dell'evidenziazione delle corrispondenze nell'editor di visualizzazioni rapide."],"vs/editor/contrib/rename/browser/rename":["Nessun risultato.","Correttamente rinominato '{0}' in '{1}'. Sommario: {2}","L'esecuzione dell'operazione di ridenominazione non è riuscita.","Rinomina simbolo"],"vs/editor/contrib/rename/browser/renameInputField":["Consente di rinominare l'input. Digitare il nuovo nome e premere INVIO per eseguire il commit."],"vs/editor/contrib/smartSelect/common/smartSelect":["Espandi SELECT","Comprimi SELECT"],"vs/editor/contrib/suggest/browser/suggestController":["L'accettazione di '{0}' ha inserito il seguente testo: {1}","Attiva suggerimento"],"vs/editor/contrib/suggest/browser/suggestWidget":["Colore di sfondo del widget dei suggerimenti.","Colore del bordo del widget dei suggerimenti.","Colore primo piano del widget dei suggerimenti.","Colore di sfondo della voce selezionata del widget dei suggerimenti.","Colore delle evidenziazioni corrispondenze nel widget dei suggerimenti.","Altre informazioni...{0}","{0}, suggerimento, con dettagli","{0}, suggerimento","Meno informazioni... {0}","Caricamento...","Non ci sono suggerimenti.","{0}, accettato","{0}, suggerimento, con dettagli","{0}, suggerimento"],"vs/editor/contrib/toggleTabFocusMode/common/toggleTabFocusMode":["Attiva/Disattiva l'uso di TAB per spostare lo stato attivo"],"vs/editor/contrib/wordHighlighter/common/wordHighlighter":["Colore di sfondo di un simbolo durante l'accesso in lettura, ad esempio durante la lettura di una variabile.","Colore di sfondo di un simbolo durante l'accesso in scrittura, ad esempio durante la scrittura in una variabile."],"vs/editor/contrib/zoneWidget/browser/peekViewWidget":["Chiudi"],"vs/editor/standalone/browser/inspectTokens/inspectTokens":["Developer: Inspect Tokens"],"vs/editor/standalone/browser/quickOpen/gotoLine":["Go to line {0} and character {1}","Go to line {0}","Type a line number between 1 and {0} to navigate to","Type a character between 1 and {0} to navigate to","Go to line {0}","Type a line number, followed by an optional colon and a character number to navigate to","Go to Line..."],"vs/editor/standalone/browser/quickOpen/quickCommand":["{0}, commands","Type the name of an action you want to execute","Command Palette"],"vs/editor/standalone/browser/quickOpen/quickOutline":["{0}, symbols","Type the name of an identifier you wish to navigate to","Go to Symbol...","symbols ({0})","modules ({0})","classes ({0})","interfaces ({0})","methods ({0})","functions ({0})","properties ({0})","variables ({0})","variables ({0})","constructors ({0})","calls ({0})"],"vs/editor/standalone/browser/standaloneCodeEditor":["Editor content","Press Ctrl+F1 for Accessibility Options.","Press Alt+F1 for Accessibility Options."],"vs/editor/standalone/browser/toggleHighContrast/toggleHighContrast":["Toggle High Contrast Theme"],"vs/platform/configuration/common/configurationRegistry":["Override configurazione predefinita","Consente di configurare le impostazioni dell'editor di cui eseguire l'override per il linguaggio {0}.","Consente di configurare le impostazioni dell'editor di cui eseguire l'override per un linguaggio.","Non è possibile registrare '{0}'. Corrisponde al criterio di proprietà '\\\\[.*\\\\]$' per la descrizione delle impostazioni dell'editor specifiche del linguaggio. Usare il contributo 'configurationDefaults'.","Non è possibile registrare '{0}'. Questa proprietà è già registrata."],"vs/platform/keybinding/common/abstractKeybindingService":["È stato premuto ({0}). In attesa del secondo tasto...","La combinazione di tasti ({0}, {1}) non è un comando."],"vs/platform/message/common/message":["Chiudi","In seguito","Annulla"],"vs/platform/theme/common/colorRegistry":["Formato colore non valido. Usare #RGB, #RGBA, #RRGGBB o #RRGGBBAA","Colori usati nell'area di lavoro.","Colore primo piano. Questo colore è utilizzato solo se non viene sovrascritto da un componente.","Colore primo piano globale per i messaggi di errore. Questo colore è utilizzato solamente se non viene sottoposto a override da un componente.","Colore primo piano del testo che fornisce informazioni aggiuntive, ad esempio per un'etichetta di testo.","Colore dei bordi degli elementi evidenziati. Questo colore è utilizzato solo se non viene sovrascritto da un componente.","Un bordo supplementare attorno agli elementi per contrastarli maggiormente rispetto agli altri.","Un bordo supplementare intorno agli elementi attivi per contrastarli maggiormente rispetto agli altri.","Il colore di sfondo delle selezioni di testo nel workbench (ad esempio per i campi di input o aree di testo). Si noti che questo non si applica alle selezioni all'interno dell'editor.","Colore dei separatori di testo.","Colore primo piano dei link nel testo.","Colore primo piano dei link attivi nel testo.","Colore primo piano dei segmenti di testo preformattato.","Colore di sfondo per le citazioni nel testo.","Colore bordo per citazioni nel testo.","Colore sfondo per blocchi di codice nel testo.","Colore ombreggiatura dei widget, ad es. Trova/Sostituisci all'interno dell'editor.","Sfondo della casella di input.","Primo piano della casella di input.","Bordo della casella di input.","Colore del bordo di opzioni attivate nei campi di input.","Colore primo piano di casella di input per il testo segnaposto.","Colore di sfondo di convalida dell'input di tipo Informazione.","Colore bordo di convalida dell'input di tipo Informazione.","Colore di sfondo di convalida dell'input di tipo Avviso.","Colore bordo di convalida dell'input di tipo Avviso.","Colore di sfondo di convalida dell'input di tipo Errore.","Colore bordo di convalida dell'input di tipo Errore.","Sfondo dell'elenco a discesa.","Primo piano dell'elenco a discesa.","Bordo dell'elenco a discesa.","Colore sfondo Elenco/Struttura ad albero per l'elemento evidenziato quando l'Elenco/Struttura ad albero è attivo. Un Elenco/Struttura ad albero attivo\nha il focus della tastiera, uno inattivo no.","Colore primo piano Elenco/Struttura ad albero per l'elemento con stato attivo quando l'Elenco/Struttura ad albero è attivo. Un Elenco/Struttura ad albero attivo\nha il focus della tastiera, uno inattivo no.","Colore sfondo Elenco/Struttura ad albero per l'elemento selezionato quando l'Elenco/Struttura ad albero è attivo. Un Elenco/Struttura ad albero attivo\nha il focus della tastiera, uno inattivo no.","Colore primo piano Elenco/Struttura ad albero per l'elemento selezionato quando l'Elenco/Struttura ad albero è attivo. Un Elenco/Struttura ad albero attivo\nha il focus della tastiera, uno inattivo no.","Colore sfondo Elenco/Struttura ad albero per l'elemento selezionato quando l'Elenco/Struttura ad albero è inattivo. Un Elenco/Struttura ad albero attivo\nha il focus della tastiera, uno inattivo no.","Colore primo piano Elenco/Struttura ad albero per l'elemento selezionato quando l'Elenco/Struttura ad albero è inattivo. Un Elenco/Struttura ad albero attivo\nha il focus della tastiera, uno inattivo no.","Sfondo Elenco/Struttura ad albero al passaggio del mouse sugli elementi.","Primo piano Elenco/Struttura ad albero al passaggio del mouse sugli elementi.","Sfondo Elenco/Struttura ad albero durante il trascinamento degli elementi selezionati.","Colore primo piano Elenco/Struttura ad albero delle occorrenze trovate durante la ricerca nell'Elenco/Struttura ad albero.","Colore di selezione rapida per il raggruppamento delle etichette.","Colore di selezione rapida per il raggruppamento dei bordi.","Colore primo piano del pulsante.","Colore di sfondo del pulsante.","Colore di sfondo del pulsante al passaggio del mouse.","Colore di sfondo del badge. I badge sono piccole etichette informative, ad esempio per mostrare il conteggio dei risultati di una ricerca.","Colore primo piano del badge. I badge sono piccole etichette informative, ad esempio per mostrare il conteggio dei risultati di una ricerca.","Ombra di ScrollBar per indicare lo scorrimento della visualizzazione.","Colore di sfondo dello Slider.","Colore di sfondo dello Slider al passaggio del mouse","Colore di sfondo dello Slider quando attivo.","Colore di sfondo dell'indicatore di stato che può essere mostrato durante l'esecuzione di operazioni lunghe.","Colore di sfondo dell'editor.","Colore primo piano predefinito dell'editor.","Colore di sfondo dei widget dell'editor, ad esempio Trova/Sostituisci.","Colore bordo dei widget dell'editor. Il colore viene utilizzato solo se il widget sceglie di avere un bordo e se il colore non è sottoposto a override da un widget.","Color of the editor selection.","Color of the selected text for high contrast.","Colore della selezione in un editor inattivo.","Colore delle aree con lo stesso contenuto della selezione.","Colore della corrispondenza di ricerca corrente.","Colore delle altre corrispondenze di ricerca.","Colore dell'intervallo di ricerca.","Evidenziazione sotto la parola per cui è visualizzata un'area sensibile al passaggio del mouse.","Colore di sfondo dell'area sensibile al passaggio del mouse dell'editor.","Colore del bordo dell'area sensibile al passaggio del mouse dell'editor.","Colore dei collegamenti attivi.","Colore di sfondo del testo che è stato inserito.","Colore di sfondo del testo che è stato rimosso.","Colore del contorno del testo che è stato inserito.","Colore del contorno del testo che è stato rimosso.","Sfondo intestazione corrente in conflitti di merge in linea.","Sfondo contenuto corrente in conflitti di merge in linea.","Sfondo intestazione modifica in ingresso in conflitti di merge in linea.","Sfondo contenuto modifica in ingresso in conflitti di merge in linea.","Sfondo dell'intestazione dell'antenato comune nei conflitti di merge in linea.","Sfondo del contenuto dell'antenato comune nei conflitti di merge in linea.","Colore bordo su intestazioni e sulla barra di divisione di conflitti di merge in linea.","Colore primo piano righello panoramica attuale per i conflitti di merge in linea.","Colore primo piano del righello panoramica modifiche in arrivo per i conflitti di merge in linea.","Colore primo piano righello panoramica dell'antenato comune per i conflitti di merge in linea."]}); +define("vs/editor/editor.main.nls.it",{"vs/base/browser/ui/actionbar/actionViewItems":["{0} ({1})"],"vs/base/browser/ui/findinput/findInput":["input"],"vs/base/browser/ui/findinput/findInputCheckboxes":["Maiuscole/minuscole","Parola intera","Usa espressione regolare"],"vs/base/browser/ui/findinput/replaceInput":["input","Mantieni maiuscole/minuscole"],"vs/base/browser/ui/inputbox/inputBox":["Errore: {0}","Avviso: {0}","Info: {0}"],"vs/base/browser/ui/keybindingLabel/keybindingLabel":["Non associato"],"vs/base/browser/ui/menu/menu":["{0} ({1})"],"vs/base/browser/ui/tree/abstractTree":["Cancella","Disabilita filtro sul tipo","Abilita filtro sul tipo","Non sono stati trovati elementi","Abbinamento di {0} su {1} elementi"], +"vs/base/common/errorMessage":["{0}: {1}","Si è verificato un errore di sistema ({0})","Si è verificato un errore sconosciuto. Per altri dettagli, vedere il log.","Si è verificato un errore sconosciuto. Per altri dettagli, vedere il log.","{0} ({1} errori in totale)","Si è verificato un errore sconosciuto. Per altri dettagli, vedere il log."],"vs/base/common/keybindingLabels":["CTRL","MAIUSC","ALT","Windows","CTRL","MAIUSC","ALT","Super","CTRL","MAIUSC","ALT","Comando","CTRL","MAIUSC","ALT","Windows","CTRL","MAIUSC","ALT","Super"],"vs/base/parts/quickinput/browser/quickInput":["Indietro","{0}/{1}","Digitare per ridurre il numero di risultati.","{0} risultati","{0} selezionati","OK","Personalizzato","Indietro ({0})","Indietro"],"vs/base/parts/quickinput/browser/quickInputList":["Input rapido"],"vs/editor/browser/controller/coreCommands":["Si attiene alla fine anche quando si passa a righe più lunghe","Si attiene alla fine anche quando si passa a righe più lunghe"], +"vs/editor/browser/controller/textAreaHandler":["editor","L'editor non è accessibile in questo momento. Premere {0} per le opzioni."],"vs/editor/browser/editorExtensions":["&&Annulla","Annulla","&&Ripeti","Ripeti","&&Seleziona tutto","Seleziona tutto"],"vs/editor/browser/widget/codeEditorWidget":["Il numero di cursori è stato limitato a {0}."],"vs/editor/browser/widget/diffEditorWidget":["Non è possibile confrontare i file perché uno è troppo grande."],"vs/editor/browser/widget/diffReview":["Chiudi","nessuna riga modificata","1 riga modificata","{0} righe modificate","Differenza {0} di {1}: riga originale {2}, {3}, riga modificata {4}, {5}","vuota","{0} riga non modificata {1}","{0} riga originale {1} riga modificata {2}","+ {0} riga modificata {1}","- {0} riga originale {1}","Vai alla differenza successiva","Vai alla differenza precedente"], +"vs/editor/browser/widget/inlineDiffMargin":["Copia le righe eliminate","Copia la riga eliminata","Copia la riga eliminata ({0})","Ripristina questa modifica","Copia la riga eliminata ({0})"], +"vs/editor/common/config/commonEditorConfig":["Editor","Numero di spazi a cui equivale una tabulazione. Quando `#editor.detectIndentation#` è attivo, questa impostazione viene sostituita in base al contenuto del file.","Inserisce spazi quando viene premuto TAB. Quando `#editor.detectIndentation#` è attivo, questa impostazione viene sostituita in base al contenuto del file.","Controlla se `#editor.tabSize#` e `#editor.insertSpaces#` verranno rilevati automaticamente quando un file viene aperto in base al contenuto del file.","Rimuovi gli spazi finali inseriti automaticamente.","Gestione speciale dei file di grandi dimensioni per disabilitare alcune funzionalità che fanno un uso intensivo della memoria.","Controlla se calcolare i completamenti in base alle parole presenti nel documento.","L'evidenziazione semantica è abilitata per tutti i temi colore.","L'evidenziazione semantica è disabilitata per tutti i temi colore.","La configurazione dell'evidenziazione semantica è gestita tramite l'impostazione `semanticHighlighting` del tema colori corrente.","Controlla se l'evidenziazione semanticHighlighting è visualizzata per i linguaggi che la supportano.","Mantiene aperti gli editor rapidi anche quando si fa doppio clic sul contenuto o si preme 'ESC'.","Per motivi di prestazioni le righe di lunghezza superiore non verranno tokenizzate","Timeout in millisecondi dopo il quale il calcolo delle differenze viene annullato. Usare 0 per indicare nessun timeout.","Controlla se l'editor diff mostra le differenze affiancate o incorporate.","Se abilitato, l'editor differenze ignora le modifiche relative a spazi vuoti iniziali e finali.","Controlla se l'editor diff mostra gli indicatori +/- per le modifiche aggiunte/rimosse.","Controlla se l'editor visualizza CodeLens."], +"vs/editor/common/config/editorOptions":["L'editor userà le API della piattaforma per rilevare quando viene collegata un'utilità per la lettura dello schermo.","L'editor verrà definitivamente ottimizzato per l'utilizzo con un'utilità per la lettura dello schermo.","L'editor non verrà mai ottimizzato per l'utilizzo con un'utilità per la lettura dello schermo.","Controlla se l'editor deve essere eseguito in una modalità ottimizzata per le utilità per la lettura dello schermo.","Consente di controllare se viene inserito uno spazio quando si aggiungono commenti.","Controlla se ignorare le righe vuote con le opzioni per attivare/disattivare, aggiungere o rimuovere relative ai commenti di riga.","Controlla se, quando si copia senza aver effettuato una selezione, viene copiata la riga corrente.","Controlla se il cursore deve passare direttamente alla ricerca delle corrispondenze durante la digitazione.","Controlla se inizializzare la stringa di ricerca nel Widget Trova con il testo selezionato nell'editor","Non attivare mai automaticamente la funzione Trova nella selezione (impostazione predefinita)","Attiva sempre automaticamente la funzione Trova nella selezione","Attiva automaticamente la funzione Trova nella selezione quando sono selezionate più righe di contenuto.","Controlla la condizione per attivare automaticamente la funzione Trova nella selezione.","Controlla se il widget Trova deve leggere o modificare gli appunti di ricerca condivisi in macOS.","Controlla se il widget Trova deve aggiungere altre righe nella parte superiore dell'editor. Quando è true, è possibile scorrere oltre la prima riga quando il widget Trova è visibile.","Controlla se la ricerca viene riavviata automaticamente dall'inizio o dalla fine quando non è possibile trovare ulteriori corrispondenze.","Abilita/Disabilita i caratteri legatura.","Impostazioni esplicite delle funzionalità dei tipi di carattere.","Configura i caratteri legatura o le funzionalità dei tipi di carattere.","Controlla le dimensioni del carattere in pixel.",'Sono consentiti solo le parole chiave "normal" e "bold" o i numeri compresi tra 1 e 1000.','Controlla lo spessore del carattere. Accetta le parole chiave "normal" e "bold" o i numeri compresi tra 1 e 1000.',"Mostra la visualizzazione rapida dei risultati (impostazione predefinita)","Passa al risultato principale e mostra una visualizzazione rapida","Passa al risultato principale e abilita l'esplorazione senza anteprima per gli altri","Questa impostazione è deprecata. In alternativa, usare impostazioni diverse, come 'editor.editor.gotoLocation.multipleDefinitions' o 'editor.editor.gotoLocation.multipleImplementations'.","Controlla il comportamento del comando 'Vai alla definizione' quando esistono più posizioni di destinazione.","Controlla il comportamento del comando 'Vai alla definizione di tipo' quando esistono più posizioni di destinazione.","Controlla il comportamento del comando 'Vai a dichiarazione' quando esistono più posizioni di destinazione.","Controlla il comportamento del comando 'Vai a implementazioni' quando esistono più posizioni di destinazione.","Controlla il comportamento del comando 'Vai a riferimenti' quando esistono più posizioni di destinazione.","ID comando alternativo eseguito quando il risultato di 'Vai alla definizione' è la posizione corrente.","ID comando alternativo eseguito quando il risultato di 'Vai alla definizione di tipo' è la posizione corrente.","ID comando alternativo eseguito quando il risultato di 'Vai a dichiarazione' è la posizione corrente.","ID comando alternativo eseguito quando il risultato di 'Vai a implementazione' è la posizione corrente.","ID comando alternativo eseguito quando il risultato di 'Vai a riferimento' è la posizione corrente.","Controlla se mostrare l'area sensibile al passaggio del mouse.","Controlla il ritardo in millisecondi dopo il quale viene mostrato il passaggio del mouse.","Controlla se l'area sensibile al passaggio del mouse deve rimanere visibile quando vi si passa sopra con il puntatore del mouse","Abilita la lampadina delle azioni codice nell'editor.","Controlla l'altezza della riga. Usare 0 per calcolare l'altezza della riga dalle dimensioni del carattere.","Controlla se la minimappa è visualizzata.","La minimappa ha le stesse dimensioni del contenuto dell'editor (e potrebbe supportare lo scorrimento).","Se necessario, la minimappa si ridurrà o si ingrandirà in modo da adattarsi all'altezza dell'editor (nessuno scorrimento).","Se necessario, la minimappa si ridurrà in modo che la larghezza non superi mai quella dell'editor (nessuno scorrimento).","Controlla le dimensioni della minimappa.","Definisce il lato in cui eseguire il rendering della minimappa.","Controlla se il dispositivo di scorrimento della minimappa è visualizzato.","Scala del contenuto disegnato nella minimappa: 1, 2 o 3.","Esegue il rendering dei caratteri effettivi di una riga in contrapposizione ai blocchi colore.","Limita la larghezza della minimappa in modo da eseguire il rendering al massimo di un certo numero di colonne.","Controlla la quantità di spazio tra il bordo superiore dell'editor e la prima riga.","Controlla la quantità di spazio tra il bordo inferiore dell'editor e l'ultima riga.","Abilita un popup che mostra documentazione sui parametri e informazioni sui tipi mentre si digita.","Controlla se il menu dei suggerimenti per i parametri esegue un ciclo o si chiude quando viene raggiunta la fine dell'elenco.","Abilita i suggerimenti rapidi all'interno di stringhe.","Abilita i suggerimenti rapidi all'interno di commenti.","Abilita i suggerimenti rapidi all'esterno di stringhe e commenti.","Controlla se visualizzare automaticamente i suggerimenti durante la digitazione.","I numeri di riga non vengono visualizzati.","I numeri di riga vengono visualizzati come numeri assoluti.","I numeri di riga vengono visualizzati come distanza in linee alla posizione del cursore.","I numeri di riga vengono visualizzati ogni 10 righe.","Controlla la visualizzazione dei numeri di riga.","Numero di caratteri a spaziatura fissa in corrispondenza del quale verrà eseguito il rendering di questo righello dell'editor.","Colore di questo righello dell'editor.","Esegue il rendering dei righelli verticali dopo un certo numero di caratteri a spaziatura fissa. Usare più valori per più righelli. Se la matrice è vuota, non viene disegnato alcun righello.","Inserisce il suggerimento senza sovrascrivere il testo a destra del cursore.","Inserisce il suggerimento e sovrascrive il testo a destra del cursore.","Controlla se le parole vengono sovrascritte quando si accettano i completamenti. Tenere presente che questa opzione dipende dalle estensioni che accettano esplicitamente questa funzionalità.","Controlla se i suggerimenti di filtro e ordinamento valgono per piccoli errori di battitura","Controlla se l'ordinamento privilegia le parole che appaiono più vicine al cursore.","Controlla se condividere le selezioni dei suggerimenti memorizzati tra aree di lavoro e finestre (richiede `#editor.suggestSelection#`).","Controlla se un frammento attivo impedisce i suggerimenti rapidi.","Controlla se mostrare o nascondere le icone nei suggerimenti.","Controlla il numero di suggerimenti mostrati da IntelliSense prima di visualizzare una barra di scorrimento (massimo 15).","Questa impostazione è deprecata. In alternativa, usare impostazioni diverse, come 'editor.suggest.showKeywords' o 'editor.suggest.showSnippets'.","Se è abilitata, IntelliSense mostra i suggerimenti relativi a `method`.","Se è abilitata, IntelliSense mostra i suggerimenti relativi a `function`.","Se è abilitata, IntelliSense mostra i suggerimenti relativi a `constructor`.","Se è abilitata, IntelliSense mostra i suggerimenti relativi a `field`.","Se è abilitata, IntelliSense mostra i suggerimenti relativi a `variable`.","Se è abilitata, IntelliSense mostra i suggerimenti relativi a `class`.","Se è abilitata, IntelliSense mostra i suggerimenti relativi a `struct`.","Se è abilitata, IntelliSense mostra i suggerimenti relativi a `interface`.","Se è abilitata, IntelliSense mostra i suggerimenti relativi a `module`.","Se è abilitata, IntelliSense mostra i suggerimenti relativi a `property`.","Se è abilitata, IntelliSense mostra i suggerimenti relativi a `event`.","Se è abilitata, IntelliSense mostra i suggerimenti relativi a `operator`.","Se è abilitata, IntelliSense mostra i suggerimenti relativi a `unit`.","Se è abilitata, IntelliSense mostra i suggerimenti relativi a `value`.","Se è abilitata, IntelliSense mostra i suggerimenti relativi a `constant`.","Se è abilitata, IntelliSense mostra i suggerimenti relativi a `enum`.","Se è abilitata, IntelliSense mostra i suggerimenti relativi a `enumMember`.","Se è abilitata, IntelliSense mostra i suggerimenti relativi a `keyword`.","Se è abilitata, IntelliSense mostra i suggerimenti relativi a `text`.","Se è abilitata, IntelliSense mostra i suggerimenti relativi a `color`.","Se è abilitata, IntelliSense mostra i suggerimenti relativi a `file`.","Se è abilitata, IntelliSense mostra i suggerimenti relativi a `reference`.","Se è abilitata, IntelliSense mostra i suggerimenti relativi a `customcolor`.","Se è abilitata, IntelliSense mostra i suggerimenti relativi a `folder`.","Se è abilitata, IntelliSense mostra i suggerimenti relativi a `typeParameter`.","Se è abilitata, IntelliSense mostra i suggerimenti relativi a `snippet`.","Se è abilitata, IntelliSense mostra i suggerimenti relativi a `user`.","Se è abilitata, IntelliSense mostra i suggerimenti relativi a `issues`.","Controlla la visibilità della barra di stato nella parte inferiore del widget dei suggerimenti.","Controlla se accettare i suggerimenti con i caratteri di commit. Ad esempio, in JavaScript il punto e virgola (';') può essere un carattere di commit che accetta un suggerimento e digita tale carattere.","Accetta un suggerimento con 'Invio' solo quando si apporta una modifica al testo.","Controlla se i suggerimenti devono essere accettati con 'INVIO' in aggiunta a 'TAB'. In questo modo è possibile evitare ambiguità tra l'inserimento di nuove righe e l'accettazione di suggerimenti.","Controlla il numero di righe nell'editor che possono essere lette da un utilità per la lettura dello schermo. Avviso: questa opzione può influire sulle prestazioni se il numero di righe è superiore a quello predefinito.","Contenuto editor","Usa le configurazioni del linguaggio per determinare la chiusura automatica delle parentesi.","Chiudi automaticamente le parentesi solo quando il cursore si trova alla sinistra di uno spazio vuoto.","Controlla se l'editor deve chiudere automaticamente le parentesi quadre dopo che sono state aperte.","Digita sopra le virgolette o le parentesi quadre di chiusura solo se sono state inserite automaticamente.","Controlla se l'editor deve digitare su virgolette o parentesi quadre.","Usa le configurazioni del linguaggio per determinare la chiusura automatica delle virgolette.","Chiudi automaticamente le virgolette solo quando il cursore si trova alla sinistra di uno spazio vuoto.","Controlla se l'editor deve chiudere automaticamente le citazioni dopo che sono state aperte.","L'editor non inserirà automaticamente il rientro.","L'editor manterrà il rientro della riga corrente.","L'editor manterrà il rientro della riga corrente e rispetterà le parentesi definite dalla lingua.","L'editor manterrà il rientro della riga corrente, rispetterà le parentesi definite dalla lingua e richiamerà le regole onEnterRules speciali definite dalle lingue.","L'editor manterrà il rientro della riga corrente, rispetterà le parentesi definite dalla lingua, richiamerà le regole onEnterRules speciali definite dalle lingue e rispetterà le regole indentationRules definite dalle lingue.","Controlla se l'editor deve regolare automaticamente il rientro quando gli utenti digitano, incollano, spostano le righe o applicano il rientro.","Usa le configurazioni del linguaggio per determinare quando racchiudere automaticamente le selezioni tra parentesi quadre o virgolette.","Racchiude la selezione tra virgolette ma non tra parentesi quadre.","Racchiude la selezione tra parentesi quadre ma non tra virgolette.","Controlla se l'editor deve racchiudere automaticamente le selezioni tra parentesi quadre o virgolette.","Controlla se l'editor visualizza CodeLens.","Controlla se l'editor deve eseguire il rendering della selezione colori e degli elementi Decorator di tipo colore inline.","Abilita l'uso di mouse e tasti per la selezione delle colonne.","Controlla se l'evidenziazione della sintassi deve essere copiata negli Appunti.","Controllo dello stile di animazione del cursore.","Controlla se l'animazione del cursore con anti-aliasing deve essere abilitata.","Controlla lo stile del cursore.","Controlla il numero minimo di righe iniziali e finali visibili che circondano il cursore. Noto come `scrollOff` o `scrollOffset` in altri editor.","`cursorSurroundingLines` viene applicato solo quando è attivato tramite la tastiera o l'API.","`cursorSurroundingLines` viene sempre applicato.","Controlla quando deve essere applicato `cursorSurroundingLines`.","Controlla la larghezza del cursore quando `#editor.cursorStyle#` è impostato su `line`.","Controlla se l'editor deve consentire lo spostamento di selezioni tramite trascinamento della selezione.","Moltiplicatore della velocità di scorrimento quando si preme `Alt`.","Controlla se per l'editor è abilitata la riduzione del codice.","Usa una strategia di riduzione specifica della lingua, se disponibile; altrimenti ne usa una basata sui rientri.","Usa la strategia di riduzione basata sui rientri.","Controlla la strategia per il calcolo degli intervalli di riduzione.","Controlla se l'editor deve evidenziare gli intervalli con riduzione del codice.","Controlla se, facendo clic sul contenuto vuoto dopo una riga ridotta, la riga viene espansa.","Controlla la famiglia di caratteri.","Controlla se l'editor deve formattare automaticamente il contenuto incollato. Deve essere disponibile un formattatore che deve essere in grado di formattare un intervallo in un documento.","Controlla se l'editor deve formattare automaticamente la riga dopo la digitazione.","Controlla se l'editor deve eseguire il rendering del margine verticale del glifo. Il margine del glifo viene usato principalmente per il debug.","Controlla se il cursore deve essere nascosto nel righello delle annotazioni.","Controlla se l'editor deve evidenziare la guida con rientro attiva","Controlla la spaziatura tra le lettere in pixel.","Controlla se l'editor deve individuare i collegamenti e renderli selezionabili.","Evidenzia le parentesi graffe corrispondenti.","Moltiplicatore da usare sui valori `deltaX` e `deltaY` degli eventi di scorrimento della rotellina del mouse.","Ingrandisce il carattere dell'editor quando si usa la rotellina del mouse e si tiene premuto 'CTRL'.","Unire i cursori multipli se sovrapposti.","Rappresenta il tasto 'Control' in Windows e Linux e il tasto 'Comando' in macOS.","Rappresenta il tasto 'Alt' in Windows e Linux e il tasto 'Opzione' in macOS.","Modificatore da usare per aggiungere più cursori con il mouse. I gesti del mouse Vai alla definizione e Apri il collegamento si adatteranno in modo da non entrare in conflitto con il modificatore di selezione multipla. [Altre informazioni](https://code.visualstudio.com/docs/editor/codebasics#_multicursor-modifier).","Ogni cursore incolla una singola riga del testo.","Ogni cursore incolla il testo completo.","Controlla l'operazione Incolla quando il conteggio delle righe del testo incollato corrisponde al conteggio dei cursori.","Controlla se l'editor deve evidenziare le occorrenze di simboli semantici.","Controlla se deve essere disegnato un bordo intorno al righello delle annotazioni.","Sposta lo stato attivo sull'albero quando si apre l'anteprima","Sposta lo stato attivo sull'editor quando si apre l'anteprima","Controlla se spostare lo stato attivo sull'editor inline o sull'albero nel widget di anteprima.","Controlla se il movimento del mouse Vai alla definizione consente sempre di aprire il widget di anteprima.","Controlla il ritardo in millisecondi dopo il quale verranno visualizzati i suggerimenti rapidi.","Controlla se l'editor viene rinominato automaticamente in base al tipo.","Controlla se l'editor deve eseguire il rendering dei caratteri di controllo.","Controlla se l'editor deve eseguire il rendering delle guide con rientro.","Esegue il rendering dell'ultimo numero di riga quando il file termina con un carattere di nuova riga.","Mette in evidenza sia la barra di navigazione sia la riga corrente.","Controlla in che modo l'editor deve eseguire il rendering dell'evidenziazione di riga corrente.","Controlla se l'editor deve eseguire il rendering dell'evidenziazione della riga corrente solo quando l'editor ha lo stato attivo","Esegue il rendering dei caratteri di spazio vuoto ad eccezione dei singoli spazi tra le parole.","Esegui il rendering dei caratteri di spazio vuoto solo nel testo selezionato.","Esegui il rendering solo dei caratteri di spazio vuoto finali","Controlla in che modo l'editor deve eseguire il rendering dei caratteri di spazio vuoto.","Controlla se le selezioni devono avere gli angoli arrotondati.","Controlla il numero di caratteri aggiuntivi oltre i quali l'editor scorrerà orizzontalmente.","Controlla se l'editor scorrerà oltre l'ultima riga.","Scorre solo lungo l'asse predominante durante lo scorrimento verticale e orizzontale simultaneo. Impedisce la deviazione orizzontale quando si scorre in verticale su un trackpad.","Controlla se gli appunti primari di Linux devono essere supportati.","Controlla se l'editor deve evidenziare gli elementi corrispondenti simili alla selezione.","Mostra sempre i comandi di riduzione.","Mostra i comandi di riduzione solo quando il mouse è posizionato sul margine della barra di scorrimento.","Controlla se i controlli di riduzione sul margine della barra di scorrimento vengono visualizzati.","Controllo dissolvenza del codice inutilizzato.","Controlla le variabili deprecate barrate.","Visualizza i suggerimenti del frammento prima degli altri suggerimenti.","Visualizza i suggerimenti del frammento dopo gli altri suggerimenti.","Visualizza i suggerimenti del frammento insieme agli altri suggerimenti.","Non mostrare i suggerimenti del frammento.","Controlla se i frammenti di codice sono visualizzati con altri suggerimenti e il modo in cui sono ordinati.","Controlla se per lo scorrimento dell'editor verrà usata un'animazione.","Dimensioni del carattere per il widget dei suggerimenti. Se impostato su `0`, viene usato il valore di `#editor.fontSize#`.","Altezza della riga per il widget dei suggerimenti. Se impostato su `0`, viene usato il valore `editor.lineHeight#`.","Controlla se i suggerimenti devono essere visualizzati automaticamente durante la digitazione dei caratteri trigger.","Consente di selezionare sempre il primo suggerimento.","Consente di selezionare suggerimenti recenti a meno che continuando a digitare non ne venga selezionato uno, ad esempio `console.| ->; console.log` perché `log` è stato completato di recente.","Consente di selezionare i suggerimenti in base a prefissi precedenti che hanno completato tali suggerimenti, ad esempio `co ->; console` e `con -> const`.","Controlla la modalità di preselezione dei suggerimenti durante la visualizzazione dell'elenco dei suggerimenti.","La funzionalità di completamento con tasto TAB inserirà il migliore suggerimento alla pressione del tasto TAB.","Disabilita le funzionalità di completamento con tasto TAB.","Completa i frammenti con il tasto TAB quando i rispettivi prefissi corrispondono. Funziona in modo ottimale quando 'quickSuggestions' non è abilitato.","Abilità la funzionalità di completamento con tasto TAB.","I caratteri di terminazione di riga insoliti vengono ignorati.","Prompt per i caratteri di terminazione di riga insoliti da rimuovere.","I caratteri di terminazione di riga insoliti vengono rimossi automaticamente.","Rimuovi caratteri di terminazione di riga insoliti che potrebbero causare problemi.","Inserimento ed eliminazione dello spazio vuoto dopo le tabulazioni.","Caratteri che verranno usati come separatori di parola quando si eseguono operazioni o spostamenti correlati a parole.","Il ritorno a capo automatico delle righe non viene mai applicato.","Il ritorno a capo automatico delle righe viene applicato in corrispondenza della larghezza del viewport.","Il ritorno a capo automatico delle righe viene applicato in corrispondenza di `#editor.wordWrapColumn#`.","Il ritorno a capo automatico delle righe viene applicato in corrispondenza della larghezza minima del viewport e di `#editor.wordWrapColumn#`.","Controlla il ritorno a capo automatico delle righe.","Controlla la colonna per il ritorno a capo automatico dell'editor quando il valore di `#editor.wordWrap#` è `wordWrapColumn` o `bounded`.","Nessun rientro. Le righe con ritorno a capo iniziano dalla colonna 1. ","Le righe con ritorno a capo hanno lo stesso rientro della riga padre.","Le righe con ritorno a capo hanno un rientro di +1 rispetto alla riga padre.","Le righe con ritorno a capo hanno un rientro di +2 rispetto alla riga padre.","Controlla il rientro delle righe con ritorno a capo.","Presuppone che la larghezza sia identica per tutti caratteri. Si tratta di un algoritmo veloce che funziona correttamente per i tipi di carattere a spaziatura fissa e determinati script (come i caratteri latini) in cui i glifi hanno larghezza identica.","Delega il calcolo dei punti di ritorno a capo al browser. Si tratta di un algoritmo lento che potrebbe causare blocchi con file di grandi dimensioni, ma funziona correttamente in tutti gli altri casi.","Controlla l'algoritmo che calcola i punti di ritorno a capo."], +"vs/editor/common/model/editStack":["Digitazione"],"vs/editor/common/modes/modesRegistry":["Testo normale"], +"vs/editor/common/standaloneStrings":["Nessuna selezione","Riga {0}, colonna {1} ({2} selezionate)","Riga {0}, colonna {1}","{0} selezioni ({1} caratteri selezionati)","{0} selezioni","Modifica dell'impostazione `accessibilitySupport` in `on`.","Apertura della pagina di documentazione sull'accessibilità dell'editor.","in un riquadro di sola lettura di un editor diff.","in un riquadro di un editor diff."," in un editor di codice di sola lettura"," in un editor di codice","Per configurare l'editor da ottimizzare per l'utilizzo con un'utilità per la lettura dello schermo, premere Comando+E.","Per configurare l'editor da ottimizzare per l'utilizzo con un'utilità per la lettura dello schermo, premere CTRL+E.","L'editor è configurato per essere ottimizzato per l'utilizzo con un'utilità per la lettura dello schermo.","L'editor è configurato per non essere ottimizzato per l'utilizzo con un'utilità per la lettura dello schermo, che non viene usata in questo momento.","Premere TAB nell'editor corrente per spostare lo stato attivo sull'elemento con stato attivabile successivo. Per attivare/disattivare questo comportamento, premere {0}.","Premere TAB nell'editor corrente per spostare lo stato attivo sull'elemento con stato attivabile successivo. Il comando {0} non può essere attualmente attivato con un tasto di scelta rapida.","Premere TAB nell'editor corrente per inserire il carattere di tabulazione. Per attivare/disattivare questo comportamento, premere {0}.","Premere TAB nell'editor corrente per inserire il carattere di tabulazione. Il comando {0} non può essere attualmente attivato con un tasto di scelta rapida.","Premere Comando+H per aprire una finestra del browser contenente maggiori informazioni correlate all'accessibilità dell'editor.","Premere CTRL+H per aprire una finestra del browser contenente maggiori informazioni correlate all'accessibilità dell'editor.","Per chiudere questa descrizione comando e tornare all'editor, premere ESC o MAIUSC+ESC.","Visualizza la Guida sull'accessibilità","Sviluppatore: Controlla token","Vai a Riga/Colonna...","Mostra tutti i provider di accesso rapido","Riquadro comandi","Mostra ed esegui comandi","Vai al simbolo...","Vai al simbolo per categoria...","Contenuto editor","Premere ALT+F1 per le opzioni di accessibilità.","Attiva/disattiva tema a contrasto elevato","Effettuate {0} modifiche in {1} file"], +"vs/editor/common/view/editorColorRegistry":["Colore di sfondo per l'evidenziazione della riga alla posizione del cursore.","Colore di sfondo per il bordo intorno alla riga alla posizione del cursore.","Colore di sfondo degli intervalli evidenziati, ad esempio dalle funzionalità Quick Open e Trova. Il colore non deve essere opaco per evitare di nascondere le decorazioni sottostanti.","Colore di sfondo del bordo intorno agli intervalli selezionati.","Colore di sfondo del simbolo evidenziato, ad esempio per passare alla definizione o al simbolo successivo/precedente. Il colore non deve essere opaco per evitare di nascondere le decorazioni sottostanti.","Colore di sfondo del bordo intorno ai simboli selezionati.","Colore del cursore dell'editor.","Colore di sfondo del cursore editor. Permette di personalizzare il colore di un carattere quando sovrapposto da un blocco cursore.","Colore dei caratteri di spazio vuoto nell'editor.","Colore delle guide per i rientri dell'editor.","Colore delle guide di indentazione dell'editor attivo","Colore dei numeri di riga dell'editor.","Colore del numero di riga attivo dell'editor","Id è deprecato. In alternativa usare 'editorLineNumber.activeForeground'.","Colore del numero di riga attivo dell'editor","Colore dei righelli dell'editor.","Colore primo piano delle finestre di CodeLens dell'editor","Colore di sfondo delle parentesi corrispondenti","Colore delle caselle di parentesi corrispondenti","Colore del bordo del righello delle annotazioni.","Colore di sfondo del righello delle annotazioni dell'editor. Viene usato solo quando la minimappa è abilitata e posizionata sul lato destro dell'editor.","Colore di sfondo della barra di navigazione dell'editor. La barra contiene i margini di glifo e i numeri di riga.","Colore del bordo del codice sorgente non necessario (non usato) nell'editor.","Opacità del codice sorgente non necessario (non usato) nell'editor. Ad esempio, con \"#000000c0\" il rendering del codice verrà eseguito con il 75% di opacità. Per i temi a contrasto elevato, usare il colore del tema 'editorUnnecessaryCode.border' per sottolineare il codice non necessario invece di opacizzarlo.","Colore del marcatore del righello delle annotazioni per le evidenziazioni degli intervalli. Il colore non deve essere opaco per evitare di nascondere le decorazioni sottostanti.","Colore del marcatore del righello delle annotazioni per gli errori.","Colore del marcatore del righello delle annotazioni per gli avvisi.","Colore del marcatore del righello delle annotazioni per i messaggi di tipo informativo."], +"vs/editor/contrib/anchorSelect/anchorSelect":["Ancoraggio della selezione","Ancoraggio impostato alla posizione {0}:{1}","Imposta ancoraggio della selezione","Vai ad ancoraggio della selezione","Seleziona da ancoraggio a cursore","Annulla ancoraggio della selezione"],"vs/editor/contrib/bracketMatching/bracketMatching":["Colore del marcatore del righello delle annotazioni per la corrispondenza delle parentesi.","Vai alla parentesi quadra","Seleziona fino alla parentesi","Vai alla parentesi &&quadra"],"vs/editor/contrib/caretOperations/caretOperations":["Sposta testo selezionato a sinistra","Sposta testo selezionato a destra"],"vs/editor/contrib/caretOperations/transpose":["Trasponi lettere"],"vs/editor/contrib/clipboard/clipboard":["&&Taglia","Taglia","Taglia","&&Copia","Copia","Copia","&&Incolla","Incolla","Incolla","Copia con evidenziazione sintassi"], +"vs/editor/contrib/codeAction/codeActionCommands":["Tipo dell'azione codice da eseguire.","Controlla quando vengono applicate le azioni restituite.","Applica sempre la prima azione codice restituita.","Applica la prima azione codice restituita se è l'unica.","Non applicare le azioni codice restituite.","Controlla se devono essere restituite solo le azioni codice preferite.","Si è verificato un errore sconosciuto durante l'applicazione dell'azione del codice","Correzione rapida...","Azioni codice non disponibili","Non sono disponibili azioni codice preferite per '{0}'","Non sono disponibili azioni codice per '{0}'","Non sono disponibili azioni codice preferite","Azioni codice non disponibili","Effettua refactoring...","Non sono disponibili refactoring preferiti per '{0}'","Non sono disponibili refactoring per '{0}'","Non sono disponibili refactoring preferiti","Refactoring non disponibili","Azione origine...","Non sono disponibili azioni origine preferite per '{0}'","Non sono disponibili azioni origine per '{0}'","Non sono disponibili azioni origine preferite","Azioni origine non disponibili","Organizza import","Azioni di organizzazione Imports non disponibili","Correggi tutto","Non è disponibile alcuna azione Correggi tutto","Correzione automatica...","Non sono disponibili correzioni automatiche"], +"vs/editor/contrib/codeAction/lightBulbWidget":["Mostra correzioni. Correzione preferita disponibile ({0})","Mostra correzioni ({0})","Mostra correzioni"],"vs/editor/contrib/codelens/codelensController":["Mostra comandi di CodeLens per la riga corrente"],"vs/editor/contrib/comment/comment":["Attiva/disattiva commento per la riga","Attiva/Disattiva commento per la &&riga","Aggiungi commento per la riga","Rimuovi commento per la riga","Attiva/Disattiva commento per il blocco","Attiva/Disattiva commento per il &&blocco"],"vs/editor/contrib/contextmenu/contextmenu":["Mostra il menu di scelta rapida editor"],"vs/editor/contrib/cursorUndo/cursorUndo":["Cursore - Annulla","Cursore - Ripeti"], +"vs/editor/contrib/documentSymbols/outlineTree":["Colore primo piano per i simboli di matrice. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.","Colore primo piano per i simboli booleani. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.","Colore primo piano per i simboli di classe. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.","Colore primo piano per i simboli di colore. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.","Colore primo piano per i simboli di costante. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.","Colore primo piano per i simboli di costruttore. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.","Colore primo piano per i simboli di enumeratore. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.","Colore primo piano per i simboli di membro di enumeratore. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.","Colore primo piano per i simboli di evento. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.","Colore primo piano per i simboli di campo. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.","Colore primo piano per i simboli di file. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.","Colore primo piano per i simboli di cartella. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.","Colore primo piano per i simboli di funzione. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.","Colore primo piano per i simboli di interfaccia. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.","Colore primo piano per i simboli di chiave. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.","Colore primo piano per i simboli di parola chiave. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.","Colore primo piano per i simboli di metodo. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.","Colore primo piano per i simboli di modulo. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.","Colore primo piano per i simboli di spazio dei nomi. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.","Colore primo piano per i simboli Null. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.","Colore primo piano per i simboli numerici. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.","Colore primo piano per i simboli di oggetto. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.","Colore primo piano per i simboli di operatore. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.","Colore primo piano per i simboli di pacchetto. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.","Colore primo piano per i simboli di proprietà. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.","Colore primo piano per i simboli di riferimento. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.","Colore primo piano per i simboli di frammento. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.","Colore primo piano per i simboli di stringa. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.","Colore primo piano per i simboli di struct. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.","Colore primo piano per i simboli di testo. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.","Colore primo piano per i simboli di parametro di tipo. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.","Colore primo piano per i simboli di unità. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.","Colore primo piano per i simboli di variabile. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti."], +"vs/editor/contrib/find/findController":["Trova","&&Trova","Trova con selezione","Trova successivo","Trova successivo","Trova precedente","Trova precedente","Trova selezione successiva","Trova selezione precedente","Sostituisci","&&Sostituisci"],"vs/editor/contrib/find/findWidget":["Trova","Trova","Corrispondenza precedente","Corrispondenza successiva","Trova nella selezione","Chiudi","Sostituisci","Sostituisci","Sostituisci","Sostituisci tutto","Attiva/Disattiva modalità sostituzione","Solo i primi {0} risultati vengono evidenziati, ma tutte le operazioni di ricerca funzionano su tutto il testo.","{0} di {1}","Nessun risultato","{0} trovato","{0} trovati per '{1}'","{0} trovati per '{1}' alla posizione {2}","{0} trovati per '{1}'","Il tasto di scelta rapida CTRL+INVIO ora consente di inserire l'interruzione di linea invece di sostituire tutto. Per eseguire l'override di questo comportamento, è possibile modificare il tasto di scelta rapida per editor.action.replaceAll."], +"vs/editor/contrib/folding/folding":["Espandi","Espandi in modo ricorsivo","Riduci","Attiva/Disattiva riduzione","Riduci in modo ricorsivo","Riduci tutti i blocchi commento","Riduci tutte le regioni","Espandi tutte le regioni","Riduci tutto","Espandi tutto","Livello riduzione {0}","Colore di sfondo degli intervalli con riduzione. Il colore non deve essere opaco per evitare di nascondere le decorazioni sottostanti.","Colore del controllo di riduzione nella barra di navigazione dell'editor."],"vs/editor/contrib/fontZoom/fontZoom":["Zoom avanti tipo di carattere editor","Zoom indietro tipo di carattere editor","Reimpostazione zoom tipo di carattere editor"],"vs/editor/contrib/format/format":["È stata apportata 1 modifica di formattazione a riga {0}","Sono state apportate {0} modifiche di formattazione a riga {1}","È stata apportata 1 modifica di formattazione tra le righe {0} e {1}","Sono state apportate {0} modifiche di formattazione tra le righe {1} e {2}"], +"vs/editor/contrib/format/formatActions":["Formatta documento","Formatta selezione"],"vs/editor/contrib/gotoError/gotoError":["Vai al problema successivo (Errore, Avviso, Informazioni)","Vai al problema precedente (Errore, Avviso, Informazioni)","Vai al problema successivo nei file (Errore, Avviso, Informazioni)","&&Problema successivo","Vai al problema precedente nei file (Errore, Avviso, Informazioni)","&&Problema precedente"],"vs/editor/contrib/gotoError/gotoErrorWidget":["Errore","Avviso","Info","Suggerimento","{0} a {1}. ","{0} di {1} problemi","{0} di {1} problema","Colore per gli errori del widget di spostamento tra marcatori dell'editor.","Colore per gli avvisi del widget di spostamento tra marcatori dell'editor.","Colore delle informazioni del widget di navigazione marcatori dell'editor.","Sfondo del widget di spostamento tra marcatori dell'editor."], +"vs/editor/contrib/gotoSymbol/goToCommands":["Anteprima","Definizioni","Non è stata trovata alcuna definizione per '{0}'","Non è stata trovata alcuna definizione","Vai alla definizione","Vai alla &&definizione","Apri definizione lateralmente","Visualizza in anteprima la definizione","Dichiarazioni","Non è stata trovata alcuna dichiarazione per '{0}'","Dichiarazione non trovata","Vai a dichiarazione","Vai a &&dichiarazione","Non è stata trovata alcuna dichiarazione per '{0}'","Dichiarazione non trovata","Anteprima dichiarazione","Definizioni di tipo","Non sono state trovate definizioni di tipi per '{0}'","Non sono state trovate definizioni di tipi","Vai alla definizione di tipo","Vai alla &&definizione di tipo","Anteprima definizione di tipo","Implementazioni","Non sono state trovate implementazioni per '{0}'","Non sono state trovate implementazioni","Vai a implementazioni","Vai a &&Implementazioni","Visualizza implementazioni","Non sono stati trovati riferimenti per '{0}'","Non sono stati trovati riferimenti","Vai a Riferimenti","Vai a &&riferimenti","Riferimenti","Anteprima riferimenti","Riferimenti","Vai a qualsiasi simbolo","Posizioni","Nessun risultato per '{0}'","Riferimenti"], +"vs/editor/contrib/gotoSymbol/link/goToDefinitionAtPosition":["Fare clic per visualizzare {0} definizioni."],"vs/editor/contrib/gotoSymbol/peek/referencesController":["Caricamento...","{0} ({1})"],"vs/editor/contrib/gotoSymbol/peek/referencesTree":["{0} riferimenti","{0} riferimento","Riferimenti"],"vs/editor/contrib/gotoSymbol/peek/referencesWidget":["anteprima non disponibile","Nessun risultato","Riferimenti"],"vs/editor/contrib/gotoSymbol/referencesModel":["simbolo in {0} alla riga {1} colonna {2}","1 simbolo in {0}, percorso completo {1}","{0} simboli in {1}, percorso completo {2}","Non sono stati trovati risultati","Trovato 1 simbolo in {0}","Trovati {0} simboli in {1}","Trovati {0} simboli in {1} file"],"vs/editor/contrib/gotoSymbol/symbolNavigation":["Simbolo {0} di {1}, {2} per il successivo","Simbolo {0} di {1}"],"vs/editor/contrib/hover/hover":["Visualizza passaggio del mouse","Mostra anteprima definizione al passaggio del mouse"], +"vs/editor/contrib/hover/modesContentHover":["Caricamento...","Posiziona puntatore sul problema","Verifica disponibilità correzioni rapide...","Non sono disponibili correzioni rapide","Correzione rapida..."],"vs/editor/contrib/inPlaceReplace/inPlaceReplace":["Sostituisci con il valore precedente","Sostituisci con il valore successivo"],"vs/editor/contrib/indentation/indentation":["Converti rientro in spazi","Converti rientro in tabulazioni","Dimensione tabulazione configurata","Seleziona dimensione tabulazione per il file corrente","Imposta rientro con tabulazioni","Imposta rientro con spazi","Rileva rientro dal contenuto","Imposta nuovo rientro per righe","Re-Indenta le Linee Selezionate"], +"vs/editor/contrib/linesOperations/linesOperations":["Copia la riga in alto","&&Copia la riga in alto","Copia la riga in basso","Co&&pia la riga in basso","Duplica selezione","&&Duplica selezione","Sposta la riga in alto","Sposta la riga in &&alto","Sposta la riga in basso","Sposta la riga in &&basso","Ordinamento righe crescente","Ordinamento righe decrescente","Taglia spazio vuoto finale","Elimina riga","Imposta un rientro per la riga","Riduci il rientro per la riga","Inserisci la riga sopra","Inserisci la riga sotto","Elimina tutto a sinistra","Elimina tutto a destra","Unisci righe","Trasponi caratteri intorno al cursore","Converti in maiuscolo","Converti in minuscolo","Trasforma in Tutte Iniziali Maiuscole"], +"vs/editor/contrib/links/links":["Esegui il comando","Visita il collegamento","CMD+clic","CTRL+clic","Opzione+clic","ALT+clic","Non è stato possibile aprire questo collegamento perché il formato non è valido: {0}","Non è stato possibile aprire questo collegamento perché manca la destinazione.","Apri collegamento"],"vs/editor/contrib/message/messageController":["Non è possibile modificare nell'editor di sola lettura"], +"vs/editor/contrib/multicursor/multicursor":["Aggiungi cursore sopra","&&Aggiungi cursore sopra","Aggiungi cursore sotto","A&&ggiungi cursore sotto","Aggiungi cursori a fine riga","Aggiungi c&&ursori a fine riga","Aggiungi cursori alla fine","Aggiungi cursori all'inizio","Aggiungi selezione a risultato ricerca successivo","Aggiungi &&occorrenza successiva","Aggiungi selezione a risultato ricerca precedente","Aggiungi occorrenza &&precedente","Sposta ultima selezione a risultato ricerca successivo","Sposta ultima selezione a risultato ricerca precedente","Seleziona tutte le occorrenze del risultato ricerca","Seleziona &&tutte le occorrenze","Cambia tutte le occorrenze"],"vs/editor/contrib/parameterHints/parameterHints":["Attiva i suggerimenti per i parametri"],"vs/editor/contrib/parameterHints/parameterHintsWidget":["{0}, suggerimento"], +"vs/editor/contrib/peekView/peekView":["Chiudi","Colore di sfondo dell'area del titolo della visualizzazione rapida.","Colore del titolo della visualizzazione rapida.","Colore delle informazioni del titolo della visualizzazione rapida.","Colore dei bordi e della freccia della visualizzazione rapida.","Colore di sfondo dell'elenco risultati della visualizzazione rapida.","Colore primo piano dei nodi riga nell'elenco risultati della visualizzazione rapida.","Colore primo piano dei nodi file nell'elenco risultati della visualizzazione rapida.","Colore di sfondo della voce selezionata nell'elenco risultati della visualizzazione rapida.","Colore primo piano della voce selezionata nell'elenco risultati della visualizzazione rapida.","Colore di sfondo dell'editor di visualizzazioni rapide.","Colore di sfondo della barra di navigazione nell'editor visualizzazione rapida.","Colore dell'evidenziazione delle corrispondenze nell'elenco risultati della visualizzazione rapida.","Colore dell'evidenziazione delle corrispondenze nell'editor di visualizzazioni rapide.","Bordo dell'evidenziazione delle corrispondenze nell'editor di visualizzazioni rapide."], +"vs/editor/contrib/quickAccess/gotoLineQuickAccess":["Aprire prima un editor di testo per passare a una riga.","Passa a riga {0} e colonna {1}.","Vai alla riga {0}.","Riga corrente: {0}, carattere: {1}. Digitare un numero di riga a cui passare compreso tra 1 e {2}.","Riga corrente: {0}, Carattere: {1}. Digitare un numero di riga a cui passare."], +"vs/editor/contrib/quickAccess/gotoSymbolQuickAccess":["Per passare a un simbolo, aprire prima un editor di testo con informazioni sui simboli.","L'editor di testo attivo non fornisce informazioni sui simboli.","Non ci sono simboli dell'editor corrispondenti","Non ci sono simboli dell'editor","Apri lateralmente","Apri in basso","simboli ({0})","proprietà ({0})","metodi ({0})","funzioni ({0})","costruttori ({0})","variabili ({0})","classi ({0})","struct ({0})","eventi ({0})","operatori ({0})","interfacce ({0})","spazi dei nomi ({0})","pacchetti ({0})","parametri di tipo ({0})","moduli ({0})","proprietà ({0})","enumerazioni ({0})","membri di enumerazione ({0})","stringhe ({0})","file ({0})","matrici ({0})","numeri ({0})","valori booleani ({0})","oggetti ({0})","chiavi ({0})","campi ({0})","costanti ({0})"],"vs/editor/contrib/rename/onTypeRename":["Rinomina simbolo in base al tipo","Colore di sfondo quando l'editor viene rinominato automaticamente in base al tipo."], +"vs/editor/contrib/rename/rename":["Nessun risultato.","Si è verificato un errore sconosciuto durante la risoluzione del percorso di ridenominazione","Ridenominazione di '{0}'","Ridenominazione di {0}","Correttamente rinominato '{0}' in '{1}'. Sommario: {2}","La ridenominazione non è riuscita ad applicare le modifiche","La ridenominazione non è riuscita a calcolare le modifiche","Rinomina simbolo","Abilita/Disabilita l'opzione per visualizzare le modifiche in anteprima prima della ridenominazione"],"vs/editor/contrib/rename/renameInputField":["Consente di rinominare l'input. Digitare il nuovo nome e premere INVIO per eseguire il commit.","{0} per rinominare, {1} per visualizzare in anteprima"],"vs/editor/contrib/smartSelect/smartSelect":["Espandi selezione","Espan&&di selezione","Riduci selezione","&&Riduci selezione"], +"vs/editor/contrib/snippet/snippetVariables":["Domenica","Lunedì","Martedì","Mercoledì","Giovedì","Venerdì","Sabato","Dom","Lun","Mar","Mer","Gio","Ven","Sab","Gennaio","Febbraio","Marzo","Aprile","Mag","Giugno","Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre","Gen","Feb","Mar","Apr","Mag","Giu","Lug","Ago","Set","Ott","Nov","Dic"],"vs/editor/contrib/suggest/suggestController":["In seguito all'accettazione di '{0}' sono state apportate altre {1} modifiche","Attiva suggerimento","{0} per inserire","{0} per inserire","{0} per sostituire","{0} per sostituire","{0} per inserire","nascondi dettagli","mostra dettagli"], +"vs/editor/contrib/suggest/suggestWidget":["Colore di sfondo del widget dei suggerimenti.","Colore del bordo del widget dei suggerimenti.","Colore primo piano del widget dei suggerimenti.","Colore di sfondo della voce selezionata del widget dei suggerimenti.","Colore delle evidenziazioni corrispondenze nel widget dei suggerimenti.","Più informazioni ({0})","Meno informazioni ({0})","Caricamento...","Caricamento...","Non ci sono suggerimenti.","{0}, documenti: {1}","Suggerisci"],"vs/editor/contrib/toggleTabFocusMode/toggleTabFocusMode":["Attiva/Disattiva l'uso di TAB per spostare lo stato attivo","Se si preme TAB, lo stato attivo verrà spostato sull'elemento con stato attivabile successivo.","Se si preme TAB, verrà inserito il carattere di tabulazione"],"vs/editor/contrib/tokenization/tokenization":["Sviluppatore: Forza retokenizzazione"], +"vs/editor/contrib/unusualLineTerminators/unusualLineTerminators":["Caratteri di terminazione di riga insoliti","Sono stati rilevati caratteri di terminazione di riga insoliti","Questo file contiene uno o più caratteri di terminazione di riga insoliti, come separatore di riga (LS) o separatore di paragrafo (PS).\r\n\r\nÈ consigliabile rimuoverli dal file. È possibile configurare questa opzione tramite `editor.unusualLineTerminators`.","Correggi questo file","Ignora il problema per questo file"], +"vs/editor/contrib/wordHighlighter/wordHighlighter":["Colore di sfondo di un simbolo durante l'accesso in lettura, ad esempio durante la lettura di una variabile. Il colore non deve essere opaco per evitare di nascondere le decorazioni sottostanti.","Colore di sfondo di un simbolo durante l'accesso in scrittura, ad esempio durante la scrittura in una variabile. Il colore non deve essere opaco per evitare di nascondere le decorazioni sottostanti.","Colore del bordo di un simbolo durante l'accesso in lettura, ad esempio durante la lettura di una variabile.","Colore del bordo di un simbolo durante l'accesso in scrittura, ad esempio durante la scrittura in una variabile.","Colore del marcatore del righello delle annotazioni per le evidenziazioni dei simboli. Il colore non deve essere opaco per evitare di nascondere le decorazioni sottostanti.","Colore del marcatore del righello delle annotazioni per le evidenziazioni dei simboli di accesso in scrittura. Il colore non deve essere opaco per evitare di nascondere le decorazioni sottostanti.","Vai al prossimo simbolo evidenziato","Vai al precedente simbolo evidenziato","Attiva/disattiva evidenziazione simbolo"], +"vs/platform/actions/browser/menuEntryActionViewItem":["{0} ({1})"],"vs/platform/configuration/common/configurationRegistry":["Override configurazione predefinita del linguaggio","Consente di configurare le impostazioni dell'editor di cui eseguire l'override per un linguaggio.","Questa impostazione non supporta la configurazione per lingua.","Non è possibile registrare '{0}'. Corrisponde al criterio di proprietà '\\\\[.*\\\\]$' per la descrizione delle impostazioni dell'editor specifiche del linguaggio. Usare il contributo 'configurationDefaults'.","Non è possibile registrare '{0}'. Questa proprietà è già registrata."],"vs/platform/keybinding/common/abstractKeybindingService":["È stato premuto ({0}). In attesa del secondo tasto...","La combinazione di tasti ({0}, {1}) non è un comando."], +"vs/platform/list/browser/listService":["Workbench","Rappresenta il tasto 'Control' in Windows e Linux e il tasto 'Comando' in macOS.","Rappresenta il tasto 'Alt' in Windows e Linux e il tasto 'Opzione' in macOS.","Il modificatore da utilizzare per aggiungere un elemento di alberi e liste ad una selezione multipla con il mouse (ad esempio in Esplora Risorse, apre gli editor e le viste scm). Le gesture del mouse 'Apri a lato' - se supportate - si adatteranno in modo da non creare conflitti con il modificatore di selezione multipla.","Controlla l'apertura degli elementi di alberi ed elenchi tramite il mouse (se supportato). Per i nodi con figli, questa impostazione ne controlla l'apertura tramite singolo o doppio clic. Si noti che alcuni alberi ed elenchi potrebbero scegliere di ignorare questa impostazione se non applicabile.","Controlla se elenchi e alberi supportano lo scorrimento orizzontale nell'area di lavoro. Avviso: l'attivazione di questa impostazione può influire sulle prestazioni.","Controlla il rientro dell'albero in pixel.","Controlla se l'albero deve eseguire il rendering delle guide per i rientri.","Controlla se elenchi e alberi prevedono lo scorrimento uniforme.","Con lo stile di spostamento da tastiera simple lo stato attivo si trova sugli elementi che corrispondono all'input da tastiera. L'abbinamento viene effettuato solo in base ai prefissi.","Con lo stile di spostamento da tastiera highlight vengono evidenziati gli elementi corrispondenti all'input da tastiera. Spostandosi ulteriormente verso l'alto o verso il basso ci si sposterà solo negli elementi evidenziati.","Con lo stile di spostamento da tastiera filter verranno filtrati e nascosti tutti gli elementi che non corrispondono all'input da tastiera.","Controlla lo stile di spostamento da tastiera per elenchi e alberi nel workbench. Le opzioni sono: simple, highlight e filter.","Controlla se gli spostamenti da tastiera per elenchi e alberi vengono attivati semplicemente premendo un tasto. Se è impostato su `false`, gli spostamenti da tastiera vengono attivati solo durante l'esecuzione del comando `list.toggleKeyboardNavigation`, al quale è possibile assegnare un tasto di scelta rapida."], +"vs/platform/markers/common/markers":["Errore","Avviso","Info"],"vs/platform/quickinput/browser/commandsQuickAccess":["{0}, {1}","usate di recente","altri comandi","Il comando '{0}' ha restituito un errore ({1})"],"vs/platform/quickinput/browser/helpQuickAccess":["comandi globali","comandi dell'editor","{0}, {1}"], +"vs/platform/theme/common/colorRegistry":["Colore primo piano generale. Questo colore viene usato solo se non è sostituito da quello di un componente.","Colore primo piano globale per i messaggi di errore. Questo colore viene usato solo se non è sostituito da quello di un componente.","Colore predefinito per le icone nel workbench.","Colore del bordo globale per gli elementi evidenziati. Questo colore viene usato solo se non è sostituito da quello di un componente.","Un bordo supplementare attorno agli elementi per contrastarli maggiormente rispetto agli altri.","Un bordo supplementare intorno agli elementi attivi per contrastarli maggiormente rispetto agli altri.","Colore primo piano dei link nel testo.","Colore di sfondo per i blocchi di codice nel testo.","Colore ombreggiatura dei widget, ad es. Trova/Sostituisci all'interno dell'editor.","Sfondo della casella di input.","Primo piano della casella di input.","Bordo della casella di input.","Colore del bordo di opzioni attivate nei campi di input.","Colore di sfondo di opzioni attivate nei campi di input.","Colore primo piano di opzioni attivate nei campi di input.","Colore di sfondo di convalida dell'input di tipo Informazione.","Colore primo piano di convalida dell'input di tipo Informazione.","Colore del bordo della convalida dell'input di tipo Informazione.","Colore di sfondo di convalida dell'input di tipo Avviso.","Colore primo piano di convalida dell'input di tipo Avviso.","Colore del bordo della convalida dell'input di tipo Avviso.","Colore di sfondo di convalida dell'input di tipo Errore.","Colore primo piano di convalida dell'input di tipo Errore.","Colore del bordo della convalida dell'input di tipo Errore.","Sfondo dell'elenco a discesa.","Primo piano dell'elenco a discesa.","Colore primo piano del pulsante.","Colore di sfondo del pulsante.","Colore di sfondo del pulsante al passaggio del mouse.","Colore di sfondo del badge. I badge sono piccole etichette informative, ad esempio per mostrare il conteggio dei risultati della ricerca.","Colore primo piano del badge. I badge sono piccole etichette informative, ad esempio per mostrare il conteggio dei risultati di una ricerca.","Ombra della barra di scorrimento per indicare lo scorrimento della visualizzazione.","Colore di sfondo del cursore della barra di scorrimento.","Colore di sfondo del cursore della barra di scorrimento al passaggio del mouse.","Colore di sfondo del cursore della barra di scorrimento quando si fa clic con il mouse.","Colore di sfondo dell'indicatore di stato che può essere mostrato per operazioni a esecuzione prolungata.","Colore primo piano degli indicatori di errore nell'editor.","Colore del bordo delle caselle di errore nell'editor.","Colore primo piano degli indicatori di avviso nell'editor.","Colore del bordo delle caselle di avviso nell'editor.","Colore primo piano degli indicatori di informazioni nell'editor.","Colore del bordo delle caselle informative nell'editor.","Colore primo piano degli indicatori di suggerimento nell'editor.","Colore del bordo delle caselle dei suggerimenti nell'editor.","Colore di sfondo dell'editor.","Colore primo piano predefinito dell'editor.","Colore di sfondo dei widget dell'editor, ad esempio Trova/Sostituisci.","Colore primo piano dei widget dell'editor, ad esempio Trova/Sostituisci.","Colore del bordo dei widget dell'editor. Il colore viene usato solo se il widget sceglie di avere un bordo e se il colore non è sottoposto a override da un widget.","Colore del bordo della barra di ridimensionamento dei widget dell'editor. Il colore viene usato solo se il widget sceglie di avere un bordo di ridimensionamento e se il colore non è sostituito da quello di un widget.","Colore di sfondo di Selezione rapida. Il widget Selezione rapida è il contenitore di selezioni quali il riquadro comandi.","Colore primo piano di Selezione rapida. Il widget Selezione rapida è il contenitore di selezioni quali il riquadro comandi.","Colore di sfondo del titolo di Selezione rapida. Il widget Selezione rapida è il contenitore di selezioni quali il riquadro comandi.","Colore di selezione rapida per il raggruppamento delle etichette.","Colore di selezione rapida per il raggruppamento dei bordi.","Colore della selezione dell'editor.","Colore del testo selezionato per il contrasto elevato.","Colore della selezione in un editor inattivo. Il colore non deve essere opaco per evitare di nascondere le decorazioni sottostanti.","Colore delle aree con lo stesso contenuto della selezione. Il colore non deve essere opaco per evitare di nascondere le decorazioni sottostanti.","Colore del bordo delle regioni con lo stesso contenuto della selezione.","Colore della corrispondenza di ricerca corrente.","Colore degli altri risultati della ricerca. Il colore non deve essere opaco per evitare di nascondere le decorazioni sottostanti.","Colore dell'intervallo di limite della ricerca. Il colore non deve essere opaco per evitare di nascondere le decorazioni sottostanti.","Colore del bordo della corrispondenza della ricerca corrente.","Colore del bordo delle altre corrispondenze della ricerca.","Colore del bordo dell'intervallo che limita la ricerca. Il colore non deve essere opaco per evitare di nascondere le decorazioni sottostanti.","Evidenziazione sotto la parola per cui è visualizzata un'area sensibile al passaggio del mouse. Il colore non deve essere opaco per evitare di nascondere le decorazioni sottostanti.","Colore di sfondo dell'area sensibile al passaggio del mouse dell'editor.","Colore primo piano dell'area sensibile al passaggio del mouse dell'editor.","Colore del bordo dell'area sensibile al passaggio del mouse dell'editor.","Colore di sfondo della barra di stato sensibile al passaggio del mouse dell'editor.","Colore dei collegamenti attivi.","Colore usato per l'icona delle azioni con lampadina.","Colore usato per l'icona delle azioni di correzione automatica con lampadina.","Colore di sfondo per il testo che è stato inserito. Il colore non deve essere opaco per evitare di nascondere le decorazioni sottostanti.","Colore di sfondo per il testo che è stato rimosso. Il colore non deve essere opaco per evitare di nascondere le decorazioni sottostanti.","Colore del contorno del testo che è stato inserito.","Colore del contorno del testo che è stato rimosso.","Colore del bordo tra due editor di testo.","Colore del riempimento diagonale dell'editor diff. Il riempimento diagonale viene usato nelle visualizzazioni diff affiancate.","Colore di sfondo dell'elenco/albero per l'elemento con lo stato attivo quando l'elenco/albero è attivo. Un elenco/albero attivo ha lo stato attivo della tastiera, a differenza di uno inattivo.","Colore primo piano dell'elenco/albero per l'elemento con lo stato attivo quando l'elenco/albero è attivo. Un elenco/albero attivo ha lo stato attivo della tastiera, a differenza di uno inattivo.","Colore di sfondo dell'elenco/albero per l'elemento selezionato quando l'elenco/albero è attivo. Un elenco/albero attivo ha lo stato attivo della tastiera, a differenza di uno inattivo.","Colore primo piano dell'elenco/albero per l'elemento selezionato quando l'elenco/albero è attivo. Un elenco/albero attivo ha lo stato attivo della tastiera, a differenza di uno inattivo.","Colore di sfondo dell'elenco/albero per l'elemento selezionato quando l'elenco/albero è inattivo. Un elenco/albero attivo ha lo stato attivo della tastiera, a differenza di uno inattivo.","Colore primo piano dell'elenco/albero per l'elemento selezionato quando l'elenco/albero è inattivo. Un elenco/albero attivo ha lo stato attivo della tastiera, a differenza di uno inattivo.","Colore di sfondo dell'elenco/albero per l'elemento con lo stato attivo quando l'elenco/albero è inattivo. Un elenco/albero attivo ha lo stato attivo della tastiera, uno inattivo no.","Sfondo dell'elenco/albero al passaggio del mouse sugli elementi.","Primo piano dell'elenco/albero al passaggio del mouse sugli elementi.","Sfondo dell'elenco/albero durante il trascinamento degli elementi selezionati.","Colore primo piano Elenco/Struttura ad albero delle occorrenze trovate durante la ricerca nell'Elenco/Struttura ad albero.","Colore di sfondo del widget del filtro per tipo in elenchi e alberi.","Colore del contorno del widget del filtro per tipo in elenchi e alberi.","Colore del contorno del widget del filtro per tipo in elenchi e alberi quando non sono presenti corrispondenze.","Colore del tratto dell'albero per le guide per i rientri.","Colore del bordo del menu.","Colore primo piano delle voci di menu.","Colore di sfondo delle voci di menu.","Colore primo piano della voce di menu selezionata nei menu.","Colore di sfondo della voce di menu selezionata nei menu.","Colore del bordo della voce di menu selezionata nei menu.","Colore di un elemento separatore delle voci di menu.","Colore di sfondo dell'evidenziazione della tabulazione di un frammento.","Colore del bordo dell'evidenziazione della tabulazione di un frammento.","Colore di sfondo dell'evidenziazione della tabulazione finale di un frammento.","Colore del bordo dell'evidenziazione della tabulazione finale di un frammento.","Colore del marcatore del righello delle annotazioni per la ricerca di corrispondenze. Il colore non deve essere opaco per evitare di nascondere le decorazioni sottostanti.","Colore del marcatore del righello delle annotazioni per le evidenziazioni delle selezioni. Il colore non deve essere opaco per evitare di nascondere le decorazioni sottostanti.","Colore del marcatore della minimappa per la ricerca delle corrispondenze.","Colore del marcatore della minimappa per la selezione dell'editor.","Colore del marcatore della minimappa per gli errori.","Colore del marcatore della minimappa per gli avvisi.","Colore di sfondo della minimappa.","Colore di sfondo del dispositivo di scorrimento della minimappa.","Colore di sfondo del dispositivo di scorrimento della minimappa al passaggio del mouse.","Colore di sfondo del dispositivo di scorrimento della minimappa quando si fa clic con il mouse.","Colore usato per l'icona di errore dei problemi.","Colore usato per l'icona di avviso dei problemi.","Colore usato per l'icona informazioni dei problemi."], +"vs/platform/undoRedo/common/undoRedoService":["I file seguenti sono stati chiusi e modificati nel disco: {0}.","I file seguenti sono stati modificati in modo incompatibile: {0}.","Non è stato possibile annullare '{0}' in tutti i file. {1}","Non è stato possibile annullare '{0}' in tutti i file. {1}","Non è stato possibile annullare '{0}' in tutti i file perché sono state apportate modifiche a {1}","Non è stato possibile annullare '{0}' su tutti i file perché è già in esecuzione un'operazione di annullamento o ripetizione su {1}","Non è stato possibile annullare '{0}' su tutti i file perché nel frattempo è stata eseguita un'operazione di annullamento o ripetizione","Annullare '{0}' in tutti i file?","Annulla in {0} file","Annulla questo file","Annulla","Non è stato possibile annullare '{0}' perché è già in esecuzione un'operazione di annullamento o ripetizione.","Non è stato possibile ripetere '{0}' in tutti i file. {1}","Non è stato possibile ripetere '{0}' in tutti i file. {1}","Non è stato possibile ripetere '{0}' in tutti i file perché sono state apportate modifiche a {1}","Non è stato possibile ripetere '{0}' su tutti i file perché è già in esecuzione un'operazione di annullamento o ripetizione su {1}","Non è stato possibile ripetere '{0}' su tutti i file perché nel frattempo è stata eseguita un'operazione di annullamento o ripetizione","Non è stato possibile ripetere '{0}' perché è già in esecuzione un'operazione di annullamento o ripetizione."] +}); //# sourceMappingURL=../../../min-maps/vs/editor/editor.main.nls.it.js.map \ No newline at end of file diff --git a/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/editor/editor.main.nls.ja.js b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/editor/editor.main.nls.ja.js index b95fbac..b42a429 100644 --- a/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/editor/editor.main.nls.ja.js +++ b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/editor/editor.main.nls.ja.js @@ -1,8 +1,31 @@ /*!----------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. - * Version: 0.9.0(630109944f54bcdfc2dbaaff5f090c0843af6c66) + * Version: 0.21.2(67b5a8116f3c0bace36b180e524e05bb750a16d8) * Released under the MIT license * https://github.com/Microsoft/vscode/blob/master/LICENSE.txt *-----------------------------------------------------------*/ -define("vs/editor/editor.main.nls.ja",{"vs/base/browser/ui/actionbar/actionbar":["{0} ({1})"],"vs/base/browser/ui/aria/aria":["{0} (再発)"],"vs/base/browser/ui/findinput/findInput":["入力"],"vs/base/browser/ui/findinput/findInputCheckboxes":["大文字と小文字を区別する","単語単位で検索する","正規表現を使用する"],"vs/base/browser/ui/inputbox/inputBox":["エラー: {0}","警告: {0}","情報: {0}"],"vs/base/common/keybindingLabels":["Ctrl","Shift","Alt","Windows","Control","Shift","Alt","コマンド","Control","Shift","Alt","Windows"],"vs/base/common/severity":["エラー","警告","情報"],"vs/base/parts/quickopen/browser/quickOpenModel":["{0}、選択","選択"],"vs/base/parts/quickopen/browser/quickOpenWidget":["クイック選択。入力すると結果が絞り込まれます。","クイック選択"],"vs/base/parts/tree/browser/treeDefaults":["折りたたむ"],"vs/editor/browser/widget/diffReview":["閉じる","Difference {0} of {1}: original {2}, {3} lines, modified {4}, {5} lines","blank","original {0}, modified {1}: {2}","+ modified {0}: {1}","- original {0}: {1}","Go to Next Difference","Go to Previous Difference"],"vs/editor/common/config/commonEditorConfig":["エディター","フォント ファミリを制御します。","フォントの太さを制御します。","フォント サイズをピクセル単位で制御します。","行の高さを制御します。fontSize に基づいて lineHeight を計算する場合には、0 を使用します。","文字の間隔をピクセル単位で制御します。","行番号の表示を制御します。使用可能な値は、'on'、'off'、および 'relative' です。'relative' は現在のカーソル位置からの行数を示します。","垂直ルーラーを表示する列","単語に関連したナビゲーションまたは操作を実行するときに、単語の区切り文字として使用される文字","1 つのタブに相当するスペースの数。`editor.detectIndentation` がオンの場合、この設定はファイル コンテンツに基づいて上書きされます。","'number' が必要です。`editor.detectIndentation` 設定によって値 \"auto\" が置き換えられていることに注意してください。","Tab キーを押すとスペースが挿入されます。`editor.detectIndentation` がオンの場合、この設定はファイル コンテンツに基づいて上書きされます。","'boolean' が必要です。`editor.detectIndentation` 設定によって値 \"auto\" が置き換えられていることに注意してください。","ファイルを開くと、そのファイルの内容に基づいて `editor.tabSize` と `editor.insertSpaces` が検出されます。","選択範囲の角を丸くするかどうかを制御します","エディターで最後の行を越えてスクロールするかどうかを制御します","ミニマップを表示するかどうかを制御します","ミニマップを自動的に非表示にするかどうかを制御します 。","行に (カラー ブロックではなく) 実際の文字を表示します","表示するミニマップの最大幅を特定の桁数に制限します","エディターの選択から検索ウィジェット内の検索文字列を与えるかどうかを制御します","エディター内で複数の文字もしくは行が選択されているときに選択範囲を検索するフラグを有効にするかどうかを制御します","行を折り返しません。","行をビューポートの幅で折り返します。","行を 'editor.wordWrapColumn' で折り返します。","ビューポートと 'editor.wordWrapColumn' の最小値で行を折り返します。","行の折り返し方法を制御します。次の値を指定できます。\n - 'off' (折り返さない),\n - 'on' (ビューポート折り返し),\n - 'wordWrapColumn' ('editor.wordWrapColumn' で折り返し) or\n - 'bounded' (ビューポートと 'editor.wordWrapColumn' の最小値で折り返し).","'editor.wordWrap' が 'wordWrapColumn' または 'bounded' の場合に、エディターの折り返し桁を制御します。","折り返し行のインデントを制御します。'none'、'same'、または 'indent' のいずれかを指定できます。","マウス ホイール スクロール イベントの `deltaX` と `deltaY` で使用される乗数","Windows および Linux 上の `Control` と OSX 上の `Command` にマップします。","Windows および Linux 上の `Alt` と OSX 上の `Option` にマップします。","マウスで複数のカーソルを追加するときに使用する修飾キーです。`ctrlCmd` は Windows および Linux 上の `Control` キーと OSX 上の `Command` キーにマップします。「定義に移動」や「リンクを開く」のマウス操作は、マルチカーソルの修飾キーと競合しないように適用されます。","文字列内でクイック候補を有効にします。","コメント内でクイック候補を有効にします。","文字列およびコメント外でクイック候補を有効にします。","入力中に候補を自動的に表示するかどうかを制御します","クイック候補が表示されるまでの待ち時間 (ミリ秒) を制御します","入力時にパラメーター ドキュメントと型情報を表示するポップアップを有効にする","エディターで左角かっこの後に自動的に右角かっこを挿入するかどうかを制御します","エディターで入力後に自動的に行の書式設定を行うかどうかを制御します","貼り付けた内容がエディターにより自動的にフォーマットされるかどうかを制御します。フォーマッタを使用可能にする必要があります。また、フォーマッタがドキュメント内の範囲をフォーマットできなければなりません。","Controls if the editor should automatically adjust the indentation when users type, paste or move lines. Indentation rules of the language must be available. ","トリガー文字の入力時に候補が自動的に表示されるようにするかどうかを制御します","'Tab' キーに加えて 'Enter' キーで候補を受け入れるかどうかを制御します。改行の挿入や候補の反映の間であいまいさを解消するのに役立ちます。'smart' 値は文字を変更するときに、Enter キーを押すだけで提案を反映することを意味します。","コミット文字で候補を受け入れるかどうかを制御します。たとえば、JavaScript ではセミコロン (';') をコミット文字にして、候補を受け入れてその文字を入力することができます。","他の修正候補と一緒にスニペットを表示するかどうか、およびその並び替えの方法を制御します。","選択範囲を指定しないでコピーする場合に現在の行をコピーするかどうかを制御します。","ドキュメント内の単語に基づいて入力候補を計算するかどうかを制御します。","候補のウィジェットのフォント サイズ","候補のウィジェットの行の高さ","エディターで選択範囲に類似する一致箇所を強調表示するかどうかを制御します","エディターでセマンティック シンボルの出現箇所を強調表示するかどうかを制御します","概要ルーラーの同じ位置に表示できる装飾の数を制御します","概要ルーラーの周囲に境界線が描画されるかどうかを制御します。","カーソルのアニメーション スタイルを制御します。指定できる値は 'blink'、'smooth'、'phase'、'expand'、'solid' です","Ctrl キーを押しながらマウス ホイールを使用してエディターのフォントをズームします","カーソルのスタイルを制御します。指定できる値は 'block'、'block-outline'、'line'、'line-thin'、'underline'、'underline-thin' です","フォントの合字を使用します","概要ルーラーでカーソルを非表示にするかどうかを制御します。","エディターで空白文字を表示する方法を制御します。'none'、'boundary' および 'all' が使用可能です。'boundary' オプションでは、単語間の単一スペースは表示されません。","エディターで制御文字を表示する必要があるかどうかを制御します","エディターでインデントのガイドを表示する必要があるかどうかを制御します","エディターが現在の行をどのように強調表示するかを制御します。考えられる値は 'none'、'gutter'、'line'、'all' です。","エディターで CodeLens を表示するかどうかを制御する","エディターでコードの折りたたみを有効にするかどうかを制御します","余白上の折りたたみコントロールを自動的に非表示にするかどうかを制御します 。","かっこを選択すると、対応するかっこを強調表示します。","エディターで縦のグリフ余白が表示されるかどうかを制御します。ほとんどの場合、グリフ余白はデバッグに使用されます。","空白の挿入や削除はタブ位置に従って行われます","自動挿入された末尾の空白を削除する","エディターのコンテンツをダブルクリックするか、Esc キーを押しても、ピーク エディターを開いたままにします。","ドラッグ アンド ドロップによる選択範囲の移動をエディターが許可する必要があるかどうかを制御します。","エディターはスクリーン リーダーがいつ接続されたかを検出するためにプラットフォーム API を使用します。","エディターは永続的にスクリーン リーダー向けに最適化されます。","エディターはスクリーン リーダー向けに最適化されません。","エディターをスクリーン リーダーに最適化されたモードで実行するかどうかを制御します。","エディターがリンクを検出してクリック可能な状態にするかどうかを制御します","差分エディターが差分を横に並べて表示するか、行内に表示するかを制御します","差分エディターが、先頭または末尾の空白の変更を差分として表示するかどうかを制御します。","差分エディターが追加/削除された変更に +/- インジケーターを示すかどうかを制御します","Linux の PRIMARY クリップボードをサポートするかどうかを制御します。"],"vs/editor/common/config/editorOptions":["現在エディターにアクセスすることはできません。 Alt + F1 キーを押してオプションを選択します。","エディターのコンテンツ"],"vs/editor/common/controller/cursor":["コマンドの実行中に予期しない例外が発生しました。"],"vs/editor/common/model/textModelWithTokens":["入力のトークン化中にモードが失敗しました。"],"vs/editor/common/modes/modesRegistry":["プレーンテキスト"],"vs/editor/common/services/bulkEdit":["この間に次のファイルが変更されました: {0}","編集は行われませんでした","{1} 個のファイルで {0} 件のテキスト編集を実行","1 つのファイルで {0} 個のテキストを編集"],"vs/editor/common/services/modelServiceImpl":["[{0}]\n{1}","[{0}] {1}"],"vs/editor/common/view/editorColorRegistry":["カーソル位置の行を強調表示する背景色。","カーソル位置の行の境界線を強調表示する背景色。","Quick Open 機能や検索機能などによって強調表示された範囲の背景色。","エディターのカーソルの色。","エディターのスペース文字の色。","エディター インデント ガイドの色。","エディターの行番号の色。","エディター ルーラーの色。","CodeLens エディターの前景色。","一致するかっこの背景色","一致するかっこ内のボックスの色","概要ルーラーの境界色。","エディターの余白の背景色。余白にはグリフ マージンと行番号が含まれます。","エディターでエラーを示す波線の前景色。","エディターでエラーを示す波線の境界線の色。","エディターで警告を示す波線の前景色。","エディターで警告を示す波線の境界線の色。"],"vs/editor/contrib/bracketMatching/common/bracketMatching":["ブラケットへ移動"],"vs/editor/contrib/caretOperations/common/caretOperations":["キャレットを左に移動","キャレットを右に移動"],"vs/editor/contrib/caretOperations/common/transpose":["文字の入れ替え"],"vs/editor/contrib/clipboard/browser/clipboard":["切り取り","コピー","貼り付け","構文を強調表示してコピー"],"vs/editor/contrib/comment/common/comment":["行コメントの切り替え","行コメントの追加","行コメントの削除","ブロック コメントの切り替え"],"vs/editor/contrib/contextmenu/browser/contextmenu":["エディターのコンテキスト メニューの表示"],"vs/editor/contrib/find/browser/findWidget":["検索","検索","前の一致項目","次の一致項目","選択範囲を検索","閉じる","置換","置換","置換","すべて置換","置換モードの切り替え","最初の 999 の結果だけを強調表示しますが、テキスト全体を検索します。","{1} の {0}","結果なし"],"vs/editor/contrib/find/common/findController":["検索","次を検索","前を検索","次の選択項目を検索","前の選択項目を検索","置換","選択した項目を次の一致項目に追加","選んだ項目を前の一致項目に追加する","最後に選択した項目を次の一致項目に移動","最後に選んだ項目を前の一致項目に移動する","一致するすべての出現箇所を選択します","すべての出現箇所を変更"],"vs/editor/contrib/folding/browser/folding":["展開","再帰的に展開する","折りたたみ","再帰的に折りたたむ","すべて折りたたみ","すべて展開","折りたたみレベル {0}"],"vs/editor/contrib/format/browser/formatActions":["行 {0} で 1 つの書式設定を編集","行 {1} で {0} 個の書式設定を編集","行 {0} と {1} の間で 1 つの書式設定を編集","行 {1} と {2} の間で {0} 個の書式設定を編集","ドキュメントのフォーマット","選択範囲のフォーマット"],"vs/editor/contrib/goToDeclaration/browser/goToDeclarationCommands":["'{0}' の定義は見つかりません","定義が見つかりません"," – {0} 個の定義","定義へ移動","定義を横に開く","定義をここに表示","'{0}' の実装が見つかりません","実装が見つかりません","– {0} 個の実装","実装に移動","実装のプレビュー","'{0}' の型定義が見つかりません","型定義が見つかりません"," – {0} 個の型定義","型定義へ移動","型定義を表示"],"vs/editor/contrib/goToDeclaration/browser/goToDeclarationMouse":["クリックして、{0} の定義を表示します。"],"vs/editor/contrib/gotoError/browser/gotoError":["({0}/{1})","次のエラーまたは警告へ移動","前のエラーまたは警告へ移動","エディターのマーカー ナビゲーション ウィジェットのエラーの色。","エディターのマーカー ナビゲーション ウィジェットの警告の色。","エディターのマーカー ナビゲーション ウィジェットの背景。"],"vs/editor/contrib/hover/browser/hover":["ホバーの表示"],"vs/editor/contrib/hover/browser/modesContentHover":["読み込んでいます..."],"vs/editor/contrib/inPlaceReplace/common/inPlaceReplace":["前の値に置換","次の値に置換"],"vs/editor/contrib/linesOperations/common/linesOperations":["行を上へコピー","行を下へコピー","行を上へ移動","行を下へ移動","行を昇順に並べ替え","行を降順に並べ替え","末尾の空白のトリミング","行の削除","行のインデント","行のインデント解除","行を上に挿入","行を下に挿入","残りをすべて削除する","右側をすべて削除","行をつなげる","カーソルの周囲の文字を入れ替える","大文字に変換","小文字に変換"],"vs/editor/contrib/links/browser/links":["command キーを押しながらクリックしてリンク先を表示","Ctrl キーを押しながらクリックしてリンク先を表示","Altl キーを押しながらクリックしてリンク先を表示","申し訳ありません。このリンクは形式が正しくないため開くことができませんでした: {0}","申し訳ありません。このリンクはターゲットが存在しないため開くことができませんでした。","リンクを開く"],"vs/editor/contrib/multicursor/common/multicursor":["カーソルを上に挿入","カーソルを下に挿入","カーソルを行末に挿入"],"vs/editor/contrib/parameterHints/browser/parameterHints":["パラメーター ヒントをトリガー"],"vs/editor/contrib/parameterHints/browser/parameterHintsWidget":["{0}、ヒント"],"vs/editor/contrib/quickFix/browser/quickFixCommands":["修正プログラム ({0}) を表示する","修正プログラムを表示する","クイック修正"],"vs/editor/contrib/referenceSearch/browser/referenceSearch":["– {0} 個の参照","すべての参照の検索"],"vs/editor/contrib/referenceSearch/browser/referencesController":["読み込んでいます..."],"vs/editor/contrib/referenceSearch/browser/referencesModel":["列 {2} の {1} 行目に {0} つのシンボル","{0} に 1 個のシンボル、完全なパス {1}","{1} に {0} 個のシンボル、完全なパス {2}","一致する項目はありません","{0} に 1 個のシンボルが見つかりました","{1} に {0} 個のシンボルが見つかりました","{1} 個のファイルに {0} 個のシンボルが見つかりました"],"vs/editor/contrib/referenceSearch/browser/referencesWidget":["ファイルを解決できませんでした。","{0} 個の参照","{0} 個の参照","プレビューを表示できません","参照","結果がありません","参照","ピーク ビューのタイトル領域の背景色。","ピーク ビュー タイトルの色。","ピーク ビューのタイトル情報の色。","ピーク ビューの境界と矢印の色。","ピーク ビュー結果リストの背景色。","ピーク ビュー結果リストのライン ノードの前景色。","ピーク ビュー結果リストのファイル ノードの前景色。","ピーク ビュー結果リストの選択済みエントリの背景色。","ピーク ビュー結果リストの選択済みエントリの前景色。","ピーク ビュー エディターの背景色。","ピーク ビュー エディターの余白の背景色。","ピーク ビュー結果リストの一致した強調表示色。","ピーク ビュー エディターの一致した強調表示色。"],"vs/editor/contrib/rename/browser/rename":["結果がありません。","'{0}' から '{1}' への名前変更が正常に完了しました。概要: {2}","申し訳ありません。名前の変更を実行できませんでした。","シンボルの名前を変更"],"vs/editor/contrib/rename/browser/renameInputField":["名前変更入力。新しい名前を入力し、Enter キーを押してコミットしてください。"],"vs/editor/contrib/smartSelect/common/smartSelect":["選択範囲を拡大","選択範囲を縮小"],"vs/editor/contrib/suggest/browser/suggestController":["'{0}' が次のテキストを挿入したことを承認しています: {1}","候補をトリガー"],"vs/editor/contrib/suggest/browser/suggestWidget":["候補のウィジェットの背景色。","候補ウィジェットの境界線色。","候補ウィジェットの前景色。","候補ウィジェット内で選択済みエントリの背景色。","候補のウィジェット内で一致したハイライトの色。","詳細を表示...{0}","{0}、候補、詳細あり","{0}、候補","詳細を隠す...{0}","読み込んでいます...","候補はありません。","{0}、受け入れ済み","{0}、候補、詳細あり","{0}、候補"],"vs/editor/contrib/toggleTabFocusMode/common/toggleTabFocusMode":["Tab キーを切り替えるとフォーカスが移動します"],"vs/editor/contrib/wordHighlighter/common/wordHighlighter":["変数の読み取りなど読み取りアクセス中のシンボルの背景色。","変数への書き込みなど書き込みアクセス中のシンボルの背景色。"],"vs/editor/contrib/zoneWidget/browser/peekViewWidget":["閉じる"],"vs/editor/standalone/browser/inspectTokens/inspectTokens":["Developer: Inspect Tokens"],"vs/editor/standalone/browser/quickOpen/gotoLine":["Go to line {0} and character {1}","Go to line {0}","Type a line number between 1 and {0} to navigate to","Type a character between 1 and {0} to navigate to","Go to line {0}","Type a line number, followed by an optional colon and a character number to navigate to","Go to Line..."],"vs/editor/standalone/browser/quickOpen/quickCommand":["{0}, commands","Type the name of an action you want to execute","Command Palette"],"vs/editor/standalone/browser/quickOpen/quickOutline":["{0}, symbols","Type the name of an identifier you wish to navigate to","Go to Symbol...","symbols ({0})","modules ({0})","classes ({0})","interfaces ({0})","methods ({0})","functions ({0})","properties ({0})","variables ({0})","variables ({0})","constructors ({0})","calls ({0})"],"vs/editor/standalone/browser/standaloneCodeEditor":["Editor content","Press Ctrl+F1 for Accessibility Options.","Press Alt+F1 for Accessibility Options."],"vs/editor/standalone/browser/toggleHighContrast/toggleHighContrast":["Toggle High Contrast Theme"],"vs/platform/configuration/common/configurationRegistry":["既定の構成オーバーライド","{0} 言語に対して上書きされるエディター設定を構成します。","言語に対して上書きされるエディター設定を構成します。","'{0}' を登録できません。これは、言語固有のエディター設定を記述するプロパティ パターン '\\\\[.*\\\\]$' に一致しています。'configurationDefaults' コントリビューションを使用してください。","'{0}' を登録できません。このプロパティは既に登録されています。"],"vs/platform/keybinding/common/abstractKeybindingService":["({0}) が押されました。2 番目のキーを待っています...","キーの組み合わせ ({0}、{1}) はコマンドではありません。"],"vs/platform/message/common/message":["閉じる","後続","キャンセル"],"vs/platform/theme/common/colorRegistry":["無効な色形式です。 #RGB、#RGBA、#RRGGBB、#RRGGBBAA のいずれかを使用してください","ワークベンチで使用する色。","全体の前景色。この色は、コンポーネントによってオーバーライドされていない場合にのみ使用されます。","エラー メッセージ全体の前景色。この色は、コンポーネントによって上書きされていない場合にのみ使用されます。","追加情報を提供する説明文の前景色、例:ラベル。","フォーカスされた要素の境界線全体の色。この色はコンポーネントによって上書きされていない場合にのみ使用されます。","コントラストを強めるために、他の要素と隔てる追加の境界線。","コントラストを強めるために、アクティブな他要素と隔てる追加の境界線。","ワークベンチ内のテキスト選択の背景色 (例: 入力フィールドやテキストエリア)。エディター内の選択には適用されないことに注意してください。","テキストの区切り文字の色。","テキスト内のリンクの前景色。","テキスト内のアクティブなリンクの前景色。","フォーマット済みテキスト セグメントの前景色。","テキスト内のブロック引用の背景色。","テキスト内のブロック引用の境界線色。","テキスト内のコード ブロックの背景色。","エディター内の検索/置換窓など、エディター ウィジェットの影の色。","入力ボックスの背景。","入力ボックスの前景。","入力ボックスの境界線。","入力フィールドのアクティブ オプションの境界線の色。","入力ボックスのプレースホルダー テキストの前景色。","情報の重大度を示す入力検証の背景色。","情報の重大度を示す入力検証の境界線色。","警告の重大度を示す入力検証の背景色。","警告の重大度を示す入力検証の境界線色。","エラーの重大度を示す入力検証の背景色。","エラーの重大度を示す入力検証の境界線色。","ドロップダウンの背景。","ドロップダウンの前景。","ドロップダウンの境界線。","ツリーリストがアクティブのとき、フォーカスされた項目のツリーリスト背景色。アクティブなツリーリストはキーボード フォーカスがあり、非アクティブではこれがありません。","ツリーリストがアクティブのとき、フォーカスされた項目のツリーリスト前景色。アクティブなツリーリストはキーボード フォーカスがあり、非アクティブではこれがありません。","ツリーリストがアクティブのとき、選択された項目のツリーリスト背景色。アクティブなツリーリストはキーボード フォーカスがあり、非アクティブではこれがありません。","ツリーリストがアクティブのとき、選択された項目のツリーリスト前景色。アクティブなツリーリストはキーボード フォーカスがあり、非アクティブではこれがありません。","ツリーリストが非アクティブのとき、フォーカスされた項目のツリーリスト背景色。アクティブなツリーリストはキーボード フォーカスがあり、非アクティブではこれがありません。","ツリーリストが非アクティブのとき、選択された項目のツリーリスト前景色。アクティブなツリーリストはキーボード フォーカスがあり、非アクティブではこれがありません。","マウス操作で項目をホバーするときのツリーリスト背景。","マウス操作で項目をホバーするときのツリーリスト前景。","マウス操作で項目を移動するときのツリーリスト ドラッグ アンド ドロップの背景。","ツリーリスト内を検索しているとき、一致した強調のツリーリスト前景色。","ラベルをグループ化するためのクリック選択の色。","境界線をグループ化するためのクイック選択の色。","ボタンの前景色。","ボタンの背景色。","ホバー時のボタン背景色。","バッジの背景色。バッジとは小さな情報ラベルのことです。例:検索結果の数","バッジの前景色。バッジとは小さな情報ラベルのことです。例:検索結果の数","ビューがスクロールされたことを示すスクロール バーの影。","スライダーの背景色。","ホバー時のスライダー背景色。","アクティブ時のスライダー背景色。","時間のかかる操作で表示するプログレス バーの背景色。","エディターの背景色。","エディターの既定の前景色。","検索/置換窓など、エディター ウィジェットの背景色。","エディター ウィジェットの境界線色。ウィジェットに境界線があり、ウィジェットによって配色を上書きされていない場合でのみこの配色は使用されます。","Color of the editor selection.","Color of the selected text for high contrast.","非アクティブなエディターの選択範囲の色。","選択範囲と同じコンテンツの領域の色。","現在の検索一致項目の色。","他の検索一致項目の色。","検索を制限する範囲の色。","ホバーが表示されているワードの下を強調表示します。","エディター ホバーの背景色。","エディター ホバーの境界線の色。","アクティブなリンクの色。","挿入されたテキストの背景色。","削除されたテキストの背景色。","挿入されたテキストの輪郭の色。","削除されたテキストの輪郭の色。","行内マージ競合の現在のヘッダー背景色。","行内マージ競合の現在のコンテンツ背景色。","行内マージ競合の入力側ヘッダー背景色。","行内マージ競合の入力側コンテンツ背景色。","行内マージ競合の共通の祖先ヘッダー背景色。","行内マージ競合の共通の祖先コンテンツ背景色。","行内マージ競合のヘッダーとスプリッターの境界線の色。","行内マージ競合の現在の概要ルーラー前景色。","行内マージ競合の入力側の概要ルーラー前景色。","行内マージ競合の共通の祖先概要ルーラー前景色。"]}); +define("vs/editor/editor.main.nls.ja",{"vs/base/browser/ui/actionbar/actionViewItems":["{0} ({1})"],"vs/base/browser/ui/findinput/findInput":["入力"],"vs/base/browser/ui/findinput/findInputCheckboxes":["大文字と小文字を区別する","単語単位で検索する","正規表現を使用する"],"vs/base/browser/ui/findinput/replaceInput":["入力","保持する"],"vs/base/browser/ui/inputbox/inputBox":["エラー: {0}","警告: {0}","情報: {0}"],"vs/base/browser/ui/keybindingLabel/keybindingLabel":["バインドなし"],"vs/base/browser/ui/menu/menu":["{0} ({1})"],"vs/base/browser/ui/tree/abstractTree":["クリア","型のフィルターを無効にする","型のフィルターを有効にする","要素が見つかりません","{1} 個の要素のうち {0} 個の要素が一致しました"],"vs/base/common/errorMessage":["{0}: {1}","システム エラーが発生しました ({0})","不明なエラーが発生しました。ログで詳細を確認してください。","不明なエラーが発生しました。ログで詳細を確認してください。","{0} (合計 {1} エラー)","不明なエラーが発生しました。ログで詳細を確認してください。"],"vs/base/common/keybindingLabels":["Ctrl","Shift","Alt","Windows","Ctrl","Shift","Alt","Super","Control","Shift","Alt","コマンド","Control","Shift","Alt","Windows","Control","Shift","Alt","Super"], +"vs/base/parts/quickinput/browser/quickInput":["戻る","{0}/{1}","入力すると結果が絞り込まれます。","{0} 件の結果","{0} 個選択済み","OK","カスタム","戻る ({0})","戻る"],"vs/base/parts/quickinput/browser/quickInputList":["クイック入力"],"vs/editor/browser/controller/coreCommands":["長い行に移動しても行末に位置します","長い行に移動しても行末に位置します"],"vs/editor/browser/controller/textAreaHandler":["エディター","この時点では、エディターにアクセスできません。オプションを表示するには、{0} を押します。"],"vs/editor/browser/editorExtensions":["元に戻す(&&U)","元に戻す","やり直し(&&R)","やり直し","すべて選択(&&S)","すべてを選択"],"vs/editor/browser/widget/codeEditorWidget":["カーソルの数は {0} 個に制限されています。"],"vs/editor/browser/widget/diffEditorWidget":["一方のファイルが大きすぎるため、ファイルを比較できません。"],"vs/editor/browser/widget/diffReview":["閉じる","変更された行はありません","1 行が変更されました","{0} 行が変更されました","相違 {0}/{1}: 元の行 {2}、{3}。変更された行 {4}、{5}","空白","{0} 変更されていない行 {1}","{0} 元の行 {1} 変更された行 {2}","+ {0} 変更された行 {1}","- {0} 元の行 {1}","次の差分に移動","前の差分に移動"],"vs/editor/browser/widget/inlineDiffMargin":["削除された行のコピー","削除された行のコピー","削除された行のコピー ({0})","この変更を元に戻す","削除された行のコピー ({0})"], +"vs/editor/common/config/commonEditorConfig":["エディター","1 つのタブに相当するスペースの数。`#editor.detectIndentation#` がオンの場合、この設定はファイル コンテンツに基づいて上書きされます。","`Tab` キーを押すとスペースが挿入されます。`#editor.detectIndentation#` がオンの場合、この設定はファイル コンテンツに基づいて上書きされます。","ファイルがファイルの内容に基づいて開かれる場合、`#editor.tabSize#` と `#editor.insertSpaces#` を自動的に検出するかどうかを制御します。","自動挿入された末尾の空白を削除します。","大きなファイルでメモリが集中する特定の機能を無効にするための特別な処理。","ドキュメント内の単語に基づいて入力候補を計算するかどうかを制御します。","セマンティックの強調表示がすべての配色テーマについて有効になりました。","セマンティックの強調表示がすべての配色テーマについて無効になりました。","セマンティックの強調表示は、現在の配色テーマの 'semanticHighlighting' 設定によって構成されています。","semanticHighlighting をサポートされる言語で表示するかどうかを制御します。","エディターのコンテンツをダブルクリックするか、`Escape` キーを押しても、ピーク エディターを開いたままにします。","この長さを越える行は、パフォーマンス上の理由によりトークン化されません。","差分計算が取り消された後のタイムアウト (ミリ秒単位)。タイムアウトなしには 0 を使用します。","差分エディターが差分を横に並べて表示するか、行内に表示するかを制御します。","有効にすると、差分エディターは先頭または末尾の空白文字の変更を無視します。","差分エディターが追加/削除された変更に +/- インジケーターを示すかどうかを制御します。","エディターで CodeLens を表示するかどうかを制御します。"], +"vs/editor/common/config/editorOptions":["エディターはスクリーン リーダーがいつ接続されたかを検出するためにプラットフォーム API を使用します。","エディターは永続的にスクリーン リーダー向けに最適化されます。","エディターはスクリーン リーダー向けに最適化されません。","エディターをスクリーン リーダーに最適化されたモードで実行するかどうかを制御します。","コメント時に空白文字を挿入するかどうかを制御します。","行コメントの追加または削除アクションの切り替えで、空の行を無視するかどうかを制御します。","選択範囲を指定しないでコピーする場合に現在の行をコピーするかどうかを制御します。","入力中に一致を検索するためにカーソルをジャンプさせるかどうかを制御します。","エディターの選択範囲から検索ウィジェット内の検索文字列を与えるかどうかを制御します。","[選択範囲を検索] を自動的にオンにしない (既定)","[選択範囲を検索] を常に自動的にオンにする","複数行のコンテンツが選択されている場合は、自動的に [選択範囲を検索] をオンにします。","[選択範囲を検索] を自動的にオンにする条件を制御します。","macOS で検索ウィジェットが共有の検索クリップボードを読み取りまたは変更するかどうかを制御します。","検索ウィジェットがエディターの上に行をさらに追加するかどうかを制御します。true の場合、検索ウィジェットが表示されているときに最初の行を超えてスクロールできます。","以降で一致が見つからない場合に、検索を先頭から (または末尾から) 自動的に再実行するかどうか制御します。","フォントの合字を有効/無効にします。","明示的なフォント機能設定。","フォントの合字またはフォントの機能を構成します。","フォント サイズ (ピクセル単位) を制御します。",'使用できるのは "標準" および "太字" のキーワードまたは 1 ~ 1000 の数字のみです。','フォントの太さを制御します。"標準" および "太字" のキーワードまたは 1 ~ 1000 の数字を受け入れます。',"結果のピーク ビューを表示 (既定)","主な結果に移動し、ピーク ビューを表示します","プライマリ結果に移動し、他のユーザーへのピークレス ナビゲーションを有効にします","この設定は非推奨です。代わりに、'editor.editor.gotoLocation.multipleDefinitions' や 'editor.editor.gotoLocation.multipleImplementations' などの個別の設定を使用してください。","複数のターゲットの場所があるときの '定義へ移動' コマンドの動作を制御します。","複数のターゲットの場所があるときの '型定義へ移動' コマンドの動作を制御します。","複数のターゲットの場所があるときの '宣言へ移動' コマンドの動作を制御します。","複数のターゲットの場所があるときの '実装に移動' コマンドの動作を制御します。","ターゲットの場所が複数存在する場合の '参照へ移動' コマンドの動作を制御します。","'定義へ移動' の結果が現在の場所である場合に実行される代替コマンド ID。","'型定義へ移動' の結果が現在の場所である場合に実行される代替コマンド ID。","'宣言へ移動' の結果が現在の場所である場合に実行される代替コマンド ID。","'実装へ移動' の結果が現在の場所である場合に実行される代替コマンド ID。","'参照へ移動' の結果が現在の場所である場合に実行される代替コマンド ID。","ホバーを表示するかどうかを制御します。","ホバーを表示後の待ち時間 (ミリ秒) を制御します。","ホバーにマウスを移動したときに、ホバーを表示し続けるかどうかを制御します。","エディターでコード アクションの電球を有効にします。","行の高さを制御します。フォント サイズに基づいて行の高さを計算する場合には、0 を使用します。","ミニマップを表示するかどうかを制御します。","ミニマップのサイズは、エディターのコンテンツと同じです (スクロールする場合があります)。","ミニマップは、必要に応じて、エディターの高さを埋めるため、拡大または縮小します (スクロールしません)。","ミニマップは必要に応じて縮小し、エディターより大きくなることはありません (スクロールしません)。","ミニマップのサイズを制御します。","ミニマップを表示する場所を制御します。","ミニマップ スライダーを表示するタイミングを制御します。","ミニマップに描画されるコンテンツのスケール: 1、2、または 3。","行にカラー ブロックではなく実際の文字を表示します。","表示するミニマップの最大幅を特定の列数に制限します。","エディターの上端と最初の行の間の余白の大きさを制御します。","エディターの下端と最後の行の間の余白の大きさを制御します。","入力時にパラメーター ドキュメントと型情報を表示するポップアップを有効にします。","パラメーター ヒント メニューを周回するか、リストの最後で閉じるかどうかを制御します。","文字列内でクイック候補を有効にします。","コメント内でクイック候補を有効にします。","文字列およびコメント外でクイック候補を有効にします。","入力中に候補を自動的に表示するかどうかを制御します。","行番号は表示されません。","行番号は、絶対値として表示されます。","行番号は、カーソル位置までの行数として表示されます。","行番号は 10 行ごとに表示されます。","行番号の表示を制御します。","このエディターのルーラーがレンダリングする単一領域の文字数。","このエディターのルーラーの色です。","特定の等幅文字数の後に垂直ルーラーを表示します。複数のルーラーには複数の値を使用します。配列が空の場合はルーラーを表示しません。","カーソルの右のテキストを上書きせずに候補を挿入します。","候補を挿入し、カーソルの右のテキストを上書きします。","入力候補を受け入れるときに単語を上書きするかどうかを制御します。これは、この機能の利用を選択する拡張機能に依存することにご注意ください。","候補のフィルター処理と並び替えでささいな入力ミスを考慮するかどうかを制御します。","並べ替えがカーソル付近に表示される単語を優先するかどうかを制御します。","保存された候補セクションを複数のワークプレースとウィンドウで共有するかどうかを制御します (`#editor.suggestSelection#` が必要)。","アクティブ スニペットがクイック候補を防止するかどうかを制御します。","提案のアイコンを表示するか、非表示にするかを制御します。","スクロール バーを表示する前に IntelliSense が表示する候補の数を制御します (最大 15 個)。","この設定は非推奨です。代わりに、'editor.suggest.showKeywords' や 'editor.suggest.showSnippets' などの個別の設定を使用してください。","有効にすると、IntelliSense に `メソッド` 候補が表示されます。","有効にすると、IntelliSense に `関数` 候補が表示されます。","有効にすると、IntelliSense に `コンストラクター` 候補が表示されます。","有効にすると、IntelliSense に `フィールド` 候補が表示されます。","有効にすると、IntelliSense に `変数` 候補が表示されます。","有効にすると、IntelliSense に 'クラス' 候補が表示されます。","有効にすると、IntelliSense に `構造体` 候補が表示されます。","有効にすると、IntelliSense に `インターフェイス` 候補が表示されます。","有効にすると、IntelliSense に `モジュール` 候補が表示されます。","有効にすると、IntelliSense に `プロパティ` 候補が表示されます。","有効にすると、IntelliSense に `イベント` 候補が表示されます。","有効にすると、IntelliSense に `演算子` 候補が表示されます。","有効にすると、IntelliSense に `ユニット` 候補が表示されます。","有効にすると、IntelliSense に `値` 候補が表示されます。","有効にすると、IntelliSense に `定数` 候補が表示されます。","有効にすると、IntelliSense に `列挙型` 候補が表示されます。","有効にすると、IntelliSense に `enumMember` 候補が表示されます。","有効にすると、IntelliSense に `キーワード` 候補が表示されます。","有効にすると、IntelliSense に 'テキスト' -候補が表示されます。","有効にすると、IntelliSense に `色` 候補が表示されます。","有効にすると、IntelliSense に 'ファイル' 候補が表示されます。","有効にすると、IntelliSense に `参照` 候補が表示されます。","有効にすると、IntelliSense に `customcolor` 候補が表示されます。","有効にすると、IntelliSense に `フォルダー` 候補が表示されます。","有効にすると、IntelliSense に `typeParameter` 候補が表示されます。","有効にすると、IntelliSense に `スニペット` 候補が表示されます。","有効な場合、IntelliSense によって 'ユーザー' 候補が示されます。","有効にすると、IntelliSense によって '問題' 候補が示されます。","候補ウィジェットの下部にあるステータス バーの表示を制御します。","コミット文字で候補を受け入れるかどうかを制御します。たとえば、JavaScript ではセミコロン (`;`) をコミット文字にして、候補を受け入れてその文字を入力することができます。","テキストの変更を行うとき、`Enter` を使用する場合にのみ候補を受け付けます。","`Tab` キーに加えて `Enter` キーで候補を受け入れるかどうかを制御します。改行の挿入や候補の反映の間であいまいさを解消するのに役立ちます。","スクリーン リーダーで読み上げることができるエディターの行数を制御します。警告: 既定値を上回る数を指定すると、パフォーマンスに影響を与えます。","エディターのコンテンツ","言語設定を使用して、いつかっこを自動クローズするか決定します。","カーソルが空白文字の左にあるときだけ、かっこを自動クローズします。","エディターで左角かっこを追加した後に自動的に右角かっこを挿入するかどうかを制御します。","終わり引用符または括弧が自動的に挿入された場合にのみ、それらを上書きします。","エディターで終わり引用符または括弧を上書きするかどうかを制御します。","言語設定を使用して、いつ引用符を自動クローズするか決定します。","カーソルが空白文字の左にあるときだけ、引用符を自動クローズします。","ユーザーが開始引用符を追加した後、エディター自動的に引用符を閉じるかどうかを制御します。","エディターはインデントを自動的に挿入しません。","エディターは、現在の行のインデントを保持します。","エディターは、現在の行のインデントを保持し、言語が定義されたかっこを優先します。","エディターは、現在の行のインデントを保持し、言語が定義されたかっこを優先し、言語で定義された特別な onEnterRules を呼び出します。","エディターは、現在の行のインデントを保持し、言語が定義されたかっこを優先し、言語で定義された特別な onEnterRules を呼び出し、言語で定義された indentationRules を優先します。","ユーザーが行を入力、貼り付け、移動、またはインデントするときに、エディターでインデントを自動的に調整するかどうかを制御します。","言語構成を使用して、選択範囲をいつ自動的に囲むかを判断します。","角かっこではなく、引用符で囲みます。","引用符ではなく、角かっこで囲みます。","エディターが自動的に選択範囲を囲む必要があるかどうかを制御します。","エディターで CodeLens を表示するかどうかを制御します。","エディターでインライン カラー デコレーターと色の選択を表示する必要があるかどうかを制御します。","マウスとキーでの選択により列の選択を実行できるようにします。","構文ハイライトをクリップボードにコピーするかどうかを制御します。","カーソルのアニメーション方式を制御します。","滑らかなキャレットアニメーションを有効にするかどうかを制御します。","カーソルのスタイルを制御します。","カーソル前後の表示可能な先頭と末尾の行の最小数を制御します。他の一部のエディターでは 'scrollOff' または `scrollOffset` と呼ばれます。","`cursorSurroundingLines` は、キーボードまたは API でトリガーされた場合にのみ強制されます。","`cursorSurroundingLines` は常に適用されます。","'カーソルの周囲の行' を適用するタイミングを制御します。","`#editor.cursorStyle#` が `line` に設定されている場合、カーソルの幅を制御します。","ドラッグ アンド ドロップによる選択範囲の移動をエディターが許可するかどうかを制御します。","`Alt` を押すと、スクロール速度が倍増します。","エディターでコードの折りたたみを有効にするかどうかを制御します。","利用可能な場合は言語固有の折りたたみ方法を使用し、利用可能ではない場合はインデントベースの方法を使用します。","インデントベースの折りたたみ方法を使用します。","折りたたみ範囲の計算方法を制御します。","エディターで折りたたまれた範囲を強調表示するかどうかをコントロールします。","折りたたまれた線の後の空のコンテンツをクリックすると線が展開されるかどうかを制御します。","フォント ファミリを制御します。","貼り付けた内容がエディターにより自動的にフォーマットされるかどうかを制御します。フォーマッタを使用可能にする必要があります。また、フォーマッタがドキュメント内の範囲をフォーマットできなければなりません。","エディターで入力後に自動的に行のフォーマットを行うかどうかを制御します。","エディターで縦のグリフ余白が表示されるかどうかを制御します。ほとんどの場合、グリフ余白はデバッグに使用されます。","概要ルーラーでカーソルを非表示にするかどうかを制御します。","エディターでアクティブなインデントのガイドを強調表示するかどうかを制御します。","文字間隔 (ピクセル単位) を制御します。","エディターがリンクを検出してクリック可能な状態にするかどうかを制御します。","対応するかっこを強調表示します。","マウス ホイール スクロール イベントの `deltaX` と `deltaY` で使用される乗数。","`Ctrl` キーを押しながらマウス ホイールを使用してエディターのフォントをズームします。","複数のカーソルが重なっているときは、マージします。","Windows および Linux 上の `Control` キーと macOS 上の `Command` キーに割り当てます。","Windows および Linux 上の `Alt` キーと macOS 上の `Option` キーに割り当てます。","マウスを使用して複数のカーソルを追加するときに使用する修飾キーです。「定義に移動」や「リンクを開く」のマウス操作は、マルチカーソルの修飾キーと競合しないように適用されます。[詳細](https://code.visualstudio.com/docs/editor/codebasics#_multicursor-modifier)","カーソルごとにテキストを 1 行ずつ貼り付けます。","各カーソルは全文を貼り付けます。","貼り付けたテキストの行数がカーソル数と一致する場合の貼り付けを制御します。","エディターでセマンティック シンボルの出現箇所を強調表示するかどうかを制御します。","概要ルーラーの周囲に境界線が描画されるかどうかを制御します。","ピークを開くときにツリーにフォーカスする","ピークを開くときにエディターにフォーカスする","ピーク ウィジェットのインライン エディターまたはツリーをフォーカスするかどうかを制御します。","[定義へ移動] マウス ジェスチャーで、常にピーク ウィジェットを開くかどうかを制御します。","クイック候補が表示されるまでのミリ秒を制御します。","エディターでの型の自動名前変更を制御します。","エディターで制御文字を表示するかどうかを制御します。","エディターでインデント ガイドを表示するかどうかを制御します。","ファイルの末尾が改行の場合は、最後の行番号を表示します。","余白と現在の行を強調表示します。","エディターが現在の行をどのように強調表示するかを制御します。","エディターにフォーカスがある場合にのみ現在の行をエディターで強調表示する必要があるかどうかを制御します","単語間の単一スペース以外の空白文字を表示します。","選択したテキストにのみ空白文字を表示します。","末尾の空白文字のみを表示する","エディターで空白文字を表示するかどうかを制御します。","選択範囲の角を丸くするかどうかを制御します。","エディターが水平方向に余分にスクロールする文字数を制御します。","エディターが最後の行を越えてスクロールするかどうかを制御します。","垂直および水平方向の両方に同時にスクロールする場合は、主要な軸に沿ってスクロールします。トラックパッド上で垂直方向にスクロールする場合は、水平ドリフトを防止します。","Linux の PRIMARY クリップボードをサポートするかどうかを制御します。","エディターが選択項目と類似の一致項目を強調表示するかどうかを制御します。","常に折りたたみコントロールを表示します。","マウスがとじしろの上にあるときにのみ、折りたたみコントロールを表示します。","とじしろのの折りたたみコントロールを表示するタイミングを制御します。","使用されていないコードのフェードアウトを制御します。","非推奨の変数の取り消し線を制御します。","他の候補の上にスニペットの候補を表示します。","他の候補の下にスニペットの候補を表示します。","他の候補と一緒にスニペットの候補を表示します。","スニペットの候補を表示しません。","他の修正候補と一緒にスニペットを表示するかどうか、およびその並び替えの方法を制御します。","アニメーションでエディターをスクロールするかどうかを制御します。","候補ウィジェットのフォント サイズ。`0` に設定すると、`#editor.fontSize#` の値が使用されます。","候補ウィジェットの行の高さ。`0` に設定すると、`#editor.lineHeight#` の値が使用されます。","トリガー文字の入力時に候補が自動的に表示されるようにするかどうかを制御します。","常に最初の候補を選択します。","`console.| -> console.log` などと選択対象に関して入力しない限りは、最近の候補を選択します。`log` は最近完了したためです。","これらの候補を完了した以前のプレフィックスに基づいて候補を選択します。例: `co -> console` および `con -> const`。","候補リストを表示するときに候補を事前に選択する方法を制御します。","タブ補完は、tab キーを押したときに最適な候補を挿入します。","タブ補完を無効にします。","プレフィックスが一致する場合に、タブでスニペットを補完します。'quickSuggestions' が無効な場合に最適です。","タブ補完を有効にします。","通常とは異なる行の終端文字は無視される。","通常とは異なる行の終端文字の削除プロンプトが表示される。","通常とは異なる行の終端文字は自動的に削除される。","問題を起こす可能性がある、普通ではない行終端記号は削除してください。","空白の挿入や削除はタブ位置に従って行われます。","単語に関連したナビゲーションまたは操作を実行するときに、単語の区切り文字として使用される文字。","行を折り返しません。","行をビューポートの幅で折り返します。","`#editor.wordWrapColumn#` で行を折り返します。","ビューポートと `#editor.wordWrapColumn#` の最小値で行を折り返します。","行の折り返し方法を制御します。","`#editor.wordWrap#` が `wordWrapColumn` または `bounded` の場合に、エディターの折り返し桁を制御します。","インデントしません。 折り返し行は列 1 から始まります。","折り返し行は、親と同じインデントになります。","折り返し行は、親 +1 のインデントになります。","折り返し行は、親 +2 のインデントになります。","折り返し行のインデントを制御します。","すべての文字の幅が同じであると仮定します。これは、モノスペース フォントや、グリフの幅が等しい特定のスクリプト (ラテン文字など) で正しく動作する高速アルゴリズムです。","折り返しポイントの計算をブラウザーにデリゲートします。これは、大きなファイルのフリーズを引き起こす可能性があるものの、すべてのケースで正しく動作する低速なアルゴリズムです。","折り返しポイントを計算するアルゴリズムを制御します。"], +"vs/editor/common/model/editStack":["入力しています"],"vs/editor/common/modes/modesRegistry":["プレーンテキスト"], +"vs/editor/common/standaloneStrings":["選択されていません","行 {0}、列 {1} ({2} 個選択済み)","行 {0}、列 {1}","{0} 個の選択項目 ({1} 文字を選択)","{0} 個の選択項目","`accessibilitySupport` 設定を 'on' に変更しています。","エディターのアクセシビリティに関連するドキュメント ページを開いています。","差分エディターの読み取り専用ウィンドウ内。","差分エディターのウィンドウ内。","読み取り専用コード エディター内","コード エディター内","エディターを構成してスクリーン エディターで使用するように最適化するには、Command+E を押してください。","エディターを構成してスクリーン リーダーで使用するように最適化するには、Control+E を押します。","エディターは、スクリーン リーダーで使用するよう最適化されるように構成されています。","エディターは、スクリーン リーダーで使用するよう最適化されないように構成されていますが、現時点でこの設定は当てはまりません。","現在のエディターで Tab キーを押すと、次のフォーカス可能な要素にフォーカスを移動します。{0} を押すと、この動作が切り替わります。","現在のエディターで Tab キーを押すと、次のフォーカス可能な要素にフォーカスを移動します。コマンド {0} は、キー バインドでは現在トリガーできません。","現在のエディターで Tab キーを押すと、タブ文字が挿入されます。{0} を押すと、この動作が切り替わります。","現在のエディターで Tab キーを押すと、タブ文字が挿入されます。コマンド {0} は、キー バインドでは現在トリガーできません。","エディターのアクセシビリティに関する詳細情報が記されたブラウザー ウィンドウを開くには、Command+H を押してください。","エディターのアクセシビリティに関する詳細情報が記されたブラウザー ウィンドウを開くには、Control+H を押してください。","Esc キー か Shift+Esc を押すと、ヒントを消してエディターに戻ることができます。","アクセシビリティのヘルプを表示します","開発者: トークンの検査","行/列に移動する...","すべてのクイック アクセス プロバイダーを表示","コマンド パレット","コマンドの表示と実行","シンボルに移動...","カテゴリ別のシンボルへ移動","エディターのコンテンツ","アクティビティ オプションを表示するには、Alt+F1 キーを押します。","ハイ コントラスト テーマの切り替え","{1} 個のファイルに {0} 個の編集が行われました"], +"vs/editor/common/view/editorColorRegistry":["カーソル位置の行を強調表示する背景色。","カーソル位置の行の境界線を強調表示する背景色。","(Quick Open や検出機能などにより) 強調表示されている範囲の色。この色は、基本装飾が非表示にならないよう不透明にすることはできません。","強調表示された範囲の境界線の背景色。","強調表示された記号の背景色 (定義へ移動、次または前の記号へ移動など)。基になる装飾が覆われないようにするため、色を不透明にすることはできません。","強調表示された記号の周りの境界線の背景色。","エディターのカーソルの色。","選択された文字列の背景色です。選択された文字列の背景色をカスタマイズ出来ます。","エディターのスペース文字の色。","エディター インデント ガイドの色。","アクティブなエディターのインデント ガイドの色。","エディターの行番号の色。","エディターのアクティブ行番号の色","id は使用しないでください。代わりに 'EditorLineNumber.activeForeground' を使用してください。","エディターのアクティブ行番号の色","エディター ルーラーの色。","CodeLens エディターの前景色。","一致するかっこの背景色","一致するかっこ内のボックスの色","概要ルーラーの境界色。","エディターの概要ルーラーの背景色です。ミニマップが有効で、エディターの右側に配置されている場合にのみ使用します。","エディターの余白の背景色。余白にはグリフ マージンと行番号が含まれます。","エディターでの不要な (未使用の) ソース コードの罫線の色。","エディター内の不要な (未使用の) ソース コードの不透明度。たとえば、\"#000000c0\" は不透明度 75% でコードを表示します。ハイ コントラストのテーマの場合、'editorUnnecessaryCode.border' テーマ色を使用して、不要なコードをフェードアウトするのではなく下線を付けます。","範囲強調表示のための概要ルーラー マーカーの色。この色は、基本装飾が非表示にならないよう不透明にすることはできません。","エラーを示す概要ルーラーのマーカー色。","警告を示す概要ルーラーのマーカー色。","情報を示す概要ルーラーのマーカー色。"], +"vs/editor/contrib/anchorSelect/anchorSelect":["選択アンカー","アンカーが {0}:{1} に設定されました","選択アンカーの設定","選択アンカーへ移動","アンカーからカーソルへ選択","選択アンカーの取り消し"],"vs/editor/contrib/bracketMatching/bracketMatching":["一致するブラケットを示す概要ルーラーのマーカー色。","ブラケットへ移動","ブラケットに選択","ブラケットに移動(&&B)"],"vs/editor/contrib/caretOperations/caretOperations":["選択したテキストを左に移動","選択したテキストを右に移動"],"vs/editor/contrib/caretOperations/transpose":["文字の入れ替え"],"vs/editor/contrib/clipboard/clipboard":["切り取り(&&T)","切り取り","切り取り","コピー(&&C)","コピー","コピー","貼り付け(&&P)","貼り付け","貼り付け","構文を強調表示してコピー"], +"vs/editor/contrib/codeAction/codeActionCommands":["実行するコード アクションの種類。","返されたアクションが適用されるタイミングを制御します。","最初に返されたコード アクションを常に適用します。","最初に返されたコード アクション以外に返されたコード アクションがない場合は、そのアクションを適用します。","返されたコード アクションは適用しないでください。","優先コード アクションのみを返すかどうかを制御します。","コード アクションの適用中に不明なエラーが発生しました","クイック フィックス...","利用可能なコード アクションはありません","'{0}' に対して使用できる優先コード アクションがありません","{0}' に対して使用できるコード アクションがありません","使用できる優先コード アクションがありません","利用可能なコード アクションはありません","リファクター...","'{0}' に対して使用できる優先リファクタリングがありません","'{0}' に対して使用できるリファクタリングがありません","使用できる優先リファクタリングがありません","利用可能なリファクタリングはありません","ソース アクション...","'{0}' に対して使用できる優先ソース アクションがありません","'{0}' に対して使用できるソース アクションがありません","使用できる優先ソース アクションがありません","利用可能なソース アクションはありません","インポートを整理","利用可能なインポートの整理アクションはありません","すべて修正","すべてを修正するアクションは利用できません","自動修正...","利用可能な自動修正はありません"],"vs/editor/contrib/codeAction/lightBulbWidget":["修正プログラムを表示します。推奨される利用可能な修正プログラム ({0})","修正プログラム ({0}) を表示する","修正プログラムを表示する"],"vs/editor/contrib/codelens/codelensController":["現在の行のコード レンズ コマンドを表示"], +"vs/editor/contrib/comment/comment":["行コメントの切り替え","行コメントの切り替え(&&T)","行コメントの追加","行コメントの削除","ブロック コメントの切り替え","ブロック コメントの切り替え(&&B)"],"vs/editor/contrib/contextmenu/contextmenu":["エディターのコンテキスト メニューの表示"],"vs/editor/contrib/cursorUndo/cursorUndo":["カーソルを元に戻す","カーソルのやり直し"], +"vs/editor/contrib/documentSymbols/outlineTree":["配列記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。","ブール値記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。","クラス記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。","色記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。","定数記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。","コンストラクター記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。","列挙子記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。","列挙子メンバー記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。","イベント記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。","フィールド記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。","ファイル記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。","フォルダー記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。","関数記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。","インターフェイス記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。","キー記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。","キーワード記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。","メソッド記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。","モジュール記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。","名前空間記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。","Null 記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。","数値記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。","オブジェクト記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。","演算子記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。","パッケージ記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。","プロパティ記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。","参照記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。","スニペット記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。","文字列記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。","構造体記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。","テキスト記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。","パラメーター記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。","単位記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。","変数記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。"], +"vs/editor/contrib/find/findController":["検索","検索(&&F)","選択範囲で検索","次を検索","次を検索","前を検索","前を検索","次の選択項目を検索","前の選択項目を検索","置換","置換(&&R)"],"vs/editor/contrib/find/findWidget":["検索","検索","前の検索結果","次の一致項目","選択範囲を検索","閉じる","置換","置換","置換","すべて置換","置換モードの切り替え","最初の {0} 件の結果だけが強調表示されますが、すべての検索操作はテキスト全体で機能します。","{0} / {1} 件","結果はありません。","{0} が見つかりました","{0} が '{1}' で見つかりました","{0} は '{1}' で {2} に見つかりました","{0} が '{1}' で見つかりました","Ctrl + Enter キーを押すと、すべて置換するのではなく、改行が挿入されるようになりました。editor.action.replaceAll のキーバインドを変更して、この動作をオーバーライドできます。"],"vs/editor/contrib/folding/folding":["展開","再帰的に展開する","折りたたみ","折りたたみの切り替え","再帰的に折りたたむ","すべてのブロック コメントの折りたたみ","すべての領域を折りたたむ","すべての領域を展開","すべて折りたたみ","すべて展開","レベル {0} で折りたたむ","折り曲げる範囲の背景色。基の装飾を隠さないように、色は不透明であってはなりません。","エディターの余白にある折りたたみコントロールの色。"],"vs/editor/contrib/fontZoom/fontZoom":["エディターのフォントを拡大","エディターのフォントを縮小","エディターのフォントのズームをリセット"],"vs/editor/contrib/format/format":["行 {0} で 1 つの書式設定を編集","行 {1} で {0} 個の書式設定を編集","行 {0} と {1} の間で 1 つの書式設定を編集","行 {1} と {2} の間で {0} 個の書式設定を編集"], +"vs/editor/contrib/format/formatActions":["ドキュメントのフォーマット","選択範囲のフォーマット"],"vs/editor/contrib/gotoError/gotoError":["次の問題 (エラー、警告、情報) へ移動","前の問題 (エラー、警告、情報) へ移動","ファイル内の次の問題 (エラー、警告、情報) へ移動","次の問題箇所(&&P)","ファイル内の前の問題 (エラー、警告、情報) へ移動","前の問題箇所(&&P)"],"vs/editor/contrib/gotoError/gotoErrorWidget":["エラー","警告","情報","ヒント","{0} ({1})。","{1} 件中 {0} 件の問題","問題 {0} / {1}","エディターのマーカー ナビゲーション ウィジェットのエラーの色。","エディターのマーカー ナビゲーション ウィジェットの警告の色。","エディターのマーカー ナビゲーション ウィジェットの情報の色。","エディターのマーカー ナビゲーション ウィジェットの背景。"],"vs/editor/contrib/gotoSymbol/goToCommands":["ピーク","定義","'{0}' の定義は見つかりません","定義が見つかりません","定義へ移動","定義に移動(&&D)","定義を横に開く","定義をここに表示","宣言","'{0}' の宣言が見つかりません","宣言が見つかりません","宣言へ移動","宣言へ移動(&&D)","'{0}' の宣言が見つかりません","宣言が見つかりません","宣言をここに表示","型定義","'{0}' の型定義が見つかりません","型定義が見つかりません","型定義へ移動","型定義に移動(&&T)","型定義を表示","実装","'{0}' の実装が見つかりません","実装が見つかりません","実装へ移動","実装箇所に移動(&&I)","実装のピーク","'{0}' の参照が見つかりません","参照が見つかりません","参照へ移動","参照へ移動(&&R)","参照設定","参照をここに表示","参照設定","任意の記号へ移動","場所","'{0}' に一致する結果は見つかりませんでした","参照設定"], +"vs/editor/contrib/gotoSymbol/link/goToDefinitionAtPosition":["クリックして、{0} の定義を表示します。"],"vs/editor/contrib/gotoSymbol/peek/referencesController":["読み込んでいます...","{0} ({1})"],"vs/editor/contrib/gotoSymbol/peek/referencesTree":["{0} 個の参照","{0} 個の参照","参照"],"vs/editor/contrib/gotoSymbol/peek/referencesWidget":["プレビューを表示できません","結果はありません。","参照設定"],"vs/editor/contrib/gotoSymbol/referencesModel":["列 {2} の {1} 行目に {0} つのシンボル","{0} に 1 個のシンボル、完全なパス {1}","{1} に {0} 個のシンボル、完全なパス {2}","一致する項目はありません","{0} に 1 個のシンボルが見つかりました","{1} に {0} 個のシンボルが見つかりました","{1} 個のファイルに {0} 個のシンボルが見つかりました"],"vs/editor/contrib/gotoSymbol/symbolNavigation":["{1} のシンボル {0}、次に {2}","シンボル {0}/{1}"],"vs/editor/contrib/hover/hover":["ホバーの表示","定義プレビューのホバーを表示する"],"vs/editor/contrib/hover/modesContentHover":["読み込んでいます...","問題を表示","クイックフィックスを確認しています...","利用できるクイックフィックスはありません","クイック フィックス..."],"vs/editor/contrib/inPlaceReplace/inPlaceReplace":["前の値に置換","次の値に置換"], +"vs/editor/contrib/indentation/indentation":["インデントをスペースに変換","インデントをタブに変換","構成されたタブのサイズ","現在のファイルのタブのサイズを選択","タブによるインデント","スペースによるインデント","内容からインデントを検出","行の再インデント","選択行を再インデント"],"vs/editor/contrib/linesOperations/linesOperations":["行を上へコピー","行を上へコピー(&&C)","行を下へコピー","行を下へコピー(&&P)","選択範囲の複製","選択範囲の複製(&&D)","行を上へ移動","行を上へ移動(&&V)","行を下へ移動","行を下へ移動(&&L)","行を昇順に並べ替え","行を降順に並べ替え","末尾の空白のトリミング","行の削除","行のインデント","行のインデント解除","行を上に挿入","行を下に挿入","左側をすべて削除","右側をすべて削除","行をつなげる","カーソルの周囲の文字を入れ替える","大文字に変換","小文字に変換","先頭文字を大文字に変換する"],"vs/editor/contrib/links/links":["コマンドの実行","リンク先を表示","cmd + クリック","ctrl + クリック","option + クリック","alt + クリック","このリンクは形式が正しくないため開くことができませんでした: {0}","このリンクはターゲットが存在しないため開くことができませんでした。","リンクを開く"],"vs/editor/contrib/message/messageController":["読み取り専用のエディターは編集できません"], +"vs/editor/contrib/multicursor/multicursor":["カーソルを上に挿入","カーソルを上に挿入(&&A)","カーソルを下に挿入","カーソルを下に挿入(&&D)","カーソルを行末に挿入","カーソルを行末に挿入(&&U)","カーソルを下に挿入","カーソルを上に挿入","選択した項目を次の一致項目に追加","次の出現個所を追加(&&N)","選択項目を次の一致項目に追加","前の出現箇所を追加(&&R)","最後に選択した項目を次の一致項目に移動","最後に選んだ項目を前の一致項目に移動する","一致するすべての出現箇所を選択します","すべての出現箇所を選択(&&O)","すべての出現箇所を変更"],"vs/editor/contrib/parameterHints/parameterHints":["パラメーター ヒントをトリガー"],"vs/editor/contrib/parameterHints/parameterHintsWidget":["{0}、ヒント"],"vs/editor/contrib/peekView/peekView":["閉じる","ピーク ビューのタイトル領域の背景色。","ピーク ビュー タイトルの色。","ピーク ビューのタイトル情報の色。","ピーク ビューの境界と矢印の色。","ピーク ビュー結果リストの背景色。","ピーク ビュー結果リストのライン ノードの前景色。","ピーク ビュー結果リストのファイル ノードの前景色。","ピーク ビュー結果リストの選択済みエントリの背景色。","ピーク ビュー結果リストの選択済みエントリの前景色。","ピーク ビュー エディターの背景色。","ピーク ビュー エディターの余白の背景色。","ピーク ビュー結果リストの一致した強調表示色。","ピーク ビュー エディターの一致した強調表示色。","ピーク ビュー エディターの一致した強調境界色。"], +"vs/editor/contrib/quickAccess/gotoLineQuickAccess":["最初にテキスト エディターを開いて、行に移動します。","行 {0}、列 {1} に移動します。","{0} 行に移動します。","現在の行: {0}、文字: {1}。移動先となる、1 から {2} までの行番号を入力します。","現在の行: {0}、文字: {1}。移動先の行番号を入力します。"],"vs/editor/contrib/quickAccess/gotoSymbolQuickAccess":["シンボルに移動するには、まずシンボル情報を含むテキスト エディターを開きます。","アクティブなテキスト エディターでは、シンボル情報は表示されません。","一致するエディター シンボルがありません","エディター シンボルがありません","横に並べて開く","一番下で開く","シンボル ({0})","プロパティ ({0})","メソッド ({0})","関数 ({0})","コンストラクター ({0})","変数 ({0})","クラス ({0})","構造体 ({0})","イベント ({0})","演算子 ({0})","インターフェイス ({0})","名前空間 ({0})","パッケージ ({0})","型パラメーター ({0})","モジュール ({0})","プロパティ ({0})","列挙型 ({0})","列挙型メンバー ({0})","文字列 ({0})","ファイル ({0})","配列 ({0})","数値 ({0})","ブール値 ({0})","オブジェクト ({0})","キー ({0})","フィールド ({0})","定数 ({0})"],"vs/editor/contrib/rename/onTypeRename":["シンボルの名前変更に入力時","エディターが型の名前の自動変更を行うときの背景色です。"], +"vs/editor/contrib/rename/rename":["結果がありません。","名前変更の場所を解決しようとして不明なエラーが発生しました","'{0}' の名前の変更中","{0} の名前を変更しています","'{0}' から '{1}' への名前変更が正常に完了しました。概要: {2}","名前の変更で編集を適用できませんでした","名前の変更によって編集の計算に失敗しました","シンボルの名前変更","名前を変更する前に変更をプレビューする機能を有効または無効にする"],"vs/editor/contrib/rename/renameInputField":["名前変更入力。新しい名前を入力し、Enter キーを押してコミットしてください。","名前を変更するには {0}、プレビューするには {1}"],"vs/editor/contrib/smartSelect/smartSelect":["選択範囲を拡張","選択範囲の展開(&&E)","選択範囲を縮小","選択範囲の縮小(&&S)"],"vs/editor/contrib/snippet/snippetVariables":["日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日","日","月","火","水","木","金","土","1 月","2 月","3 月","4 月","5 月","6 月","7 月","8 月","9 月","10 月","11 月","12 月","1 月","2 月","3 月","4 月","5 月","6 月","7 月","8 月","9 月","10 月","11 月","12 月"],"vs/editor/contrib/suggest/suggestController":["{1} が追加編集した '{0}' を受け入れる","候補をトリガー","挿入する {0}","{0}して挿入","{0}して置き換え","{0}して置き換え","{0}して挿入","表示を減らす","さらに表示"], +"vs/editor/contrib/suggest/suggestWidget":["候補のウィジェットの背景色。","候補ウィジェットの境界線色。","候補ウィジェットの前景色。","候補ウィジェット内で選択済みエントリの背景色。","候補のウィジェット内で一致したハイライトの色。","読み取り数を増やす ({0})","読み取り数を減らす ({0})","読み込んでいます...","読み込んでいます...","候補はありません。","{0}、ドキュメント: {1}","提案"],"vs/editor/contrib/toggleTabFocusMode/toggleTabFocusMode":["Tab キーを切り替えるとフォーカスが移動します","Tab キーを押すと、次のフォーカス可能な要素にフォーカスを移動します","Tab キーを押すと、タブ文字が挿入されます"],"vs/editor/contrib/tokenization/tokenization":["開発者: トークン再作成の強制"],"vs/editor/contrib/unusualLineTerminators/unusualLineTerminators":["普通ではない行終端記号","普通ではない行終端記号が検出されました","このファイルには、行区切り文字 (LS) や段落区切り記号 (PS) などの特殊な行の終端文字が 1 つ以上含まれています。\r\n\r\nそれらの終端文字はファイルから削除することをお勧めします。これは 'editor.unusualLineTerminators' を使用して構成できます。","このファイルを修正","このファイルでは問題を無視する"], +"vs/editor/contrib/wordHighlighter/wordHighlighter":["変数の読み取りなど、読み取りアクセス中のシンボルの背景色。下にある装飾を隠さないために、色は不透過であってはなりません。","変数への書き込みなど、書き込みアクセス中のシンボル背景色。下にある装飾を隠さないために、色は不透過であってはなりません。","変数の読み取りなど読み取りアクセス中のシンボルの境界線の色。","変数への書き込みなど書き込みアクセス中のシンボルの境界線の色。","シンボルによって強調表示される概要ルーラーのマーカーの色。マーカーの色は、基になる装飾を隠さないように不透明以外にします。","書き込みアクセス シンボルを強調表示する概要ルーラーのマーカー色。下にある装飾を隠さないために、色は不透過であってはなりません。","次のシンボル ハイライトに移動","前のシンボル ハイライトに移動","シンボル ハイライトをトリガー"],"vs/platform/actions/browser/menuEntryActionViewItem":["{0} ({1})"],"vs/platform/configuration/common/configurationRegistry":["既定の言語構成のオーバーライド","言語に対して上書きされるエディター設定を構成します。","この設定では、言語ごとの構成はサポートされていません。","'{0}' を登録できません。これは、言語固有のエディター設定を記述するプロパティ パターン '\\\\[.*\\\\]$' に一致しています。'configurationDefaults' コントリビューションを使用してください。","'{0}' を登録できません。このプロパティは既に登録されています。"],"vs/platform/keybinding/common/abstractKeybindingService":["({0}) が渡されました。2 番目のキーを待っています...","キーの組み合わせ ({0}、{1}) はコマンドではありません。"], +"vs/platform/list/browser/listService":["ワークベンチ","Windows および Linux 上の `Control` キーと macOS 上の `Command` キーに割り当てます。","Windows および Linux 上の `Alt` キーと macOS 上の `Option` キーに割り当てます。","マウスを使用して項目を複数選択するときに使用する修飾キーです (たとえば、エクスプローラーでエディターと scm ビューを開くなど)。'横に並べて開く' マウス ジェスチャー (がサポートされている場合) は、複数選択の修飾キーと競合しないように調整されます。","マウスを使用して、ツリー リスト内の項目を開く方法を制御します (サポートされている場合)。ツリー内の子を持つ親項目で、この設定は親項目をシングル クリックで展開するか、ダブル クリックで展開するかどうかを制御します。この設定の選択 (適応するかどうか) を無視するツリー リストがあることに注意してください。","リストとツリーがワークベンチで水平スクロールをサポートするかどうかを制御します。警告: この設定をオンにすると、パフォーマンスに影響があります。","ツリーのインデントをピクセル単位で制御します。","ツリーでインシデントのガイドを表示する必要があるかどうかを制御します。","リストとツリーでスムーズ スクロールを使用するかどうかを制御します。","簡単なキーボード ナビゲーションは、キーボード入力に一致する要素に焦点を当てます。一致処理はプレフィックスでのみ実行されます。","キーボード ナビゲーションの強調表示を使用すると、キーボード入力に一致する要素が強調表示されます。上および下への移動は、強調表示されている要素のみを移動します。","キーボード ナビゲーションのフィルターでは、キーボード入力に一致しないすべての要素がフィルター処理され、非表示になります。","ワークベンチのリストおよびツリーのキーボード ナビゲーション スタイルを制御します。単純、強調表示、フィルターを指定できます。","リストやツリーでのキーボード ナビゲーションを、単に入力するだけで自動的にトリガーするかどうかを制御します。`false` に設定した場合、キーボード ナビゲーションは `list.toggleKeyboardNavigation` コマンドを実行したときにのみトリガーされます。これに対してキーボード ショートカットを割り当てることができます。"], +"vs/platform/markers/common/markers":["エラー","警告","情報"],"vs/platform/quickinput/browser/commandsQuickAccess":["{0}, {1}","最近使用したもの","その他のコマンド","コマンド '{0}' でエラー ({1}) が発生しました"],"vs/platform/quickinput/browser/helpQuickAccess":["グローバル コマンド","エディター コマンド","{0}, {1}"], +"vs/platform/theme/common/colorRegistry":["全体の前景色。この色は、コンポーネントによってオーバーライドされていない場合にのみ使用されます。","エラー メッセージ全体の前景色。この色は、コンポーネントによって上書きされていない場合にのみ使用されます。","ワークベンチのアイコンの既定の色。","フォーカスされた要素の境界線全体の色。この色はコンポーネントによって上書きされていない場合にのみ使用されます。","コントラストを強めるために、他の要素と隔てる追加の境界線。","コントラストを強めるために、アクティブな他要素と隔てる追加の境界線。","テキスト内のリンクの前景色。","テキスト内のコード ブロックの背景色。","エディター内の検索/置換窓など、エディター ウィジェットの影の色。","入力ボックスの背景。","入力ボックスの前景。","入力ボックスの境界線。","入力フィールドのアクティブ オプションの境界線の色。","入力フィールドでアクティブ化されたオプションの背景色。","入力フィールドでアクティブ化されたオプションの前景色。","情報の重大度を示す入力検証の背景色。","情報の重大度を示す入力検証の前景色。","情報の重大度を示す入力検証の境界線色。","警告の重大度を示す入力検証の背景色。","警告の重大度を示す入力検証の前景色。","警告の重大度を示す入力検証の境界線色。","エラーの重大度を示す入力検証の背景色。","エラーの重大度を示す入力検証の前景色。","エラーの重大度を示す入力検証の境界線色。","ドロップダウンの背景。","ドロップダウンの前景。","ボタンの前景色。","ボタンの背景色。","ホバー時のボタン背景色。","バッジの背景色。バッジとは小さな情報ラベルのことです。例:検索結果の数","バッジの前景色。バッジとは小さな情報ラベルのことです。例:検索結果の数","ビューがスクロールされたことを示すスクロール バーの影。","スクロール バーのスライダーの背景色。","ホバー時のスクロール バー スライダー背景色。","クリック時のスクロール バー スライダー背景色。","時間のかかる操作で表示するプログレス バーの背景色。","エディターでエラーを示す波線の前景色。","エディター内のエラー ボックスの境界線の色です。","エディターで警告を示す波線の前景色。","エディターでの警告ボックスの境界線の色です。","エディターで情報を示す波線の前景色。","エディター内の情報ボックスの境界線の色です。","エディターでヒントを示す波線の前景色。","エディター内のヒント ボックスの境界線の色。","エディターの背景色。","エディターの既定の前景色。","検索/置換窓など、エディター ウィジェットの背景色。","検索/置換などを行うエディター ウィジェットの前景色。","エディター ウィジェットの境界線色。ウィジェットに境界線があり、ウィジェットによって配色を上書きされていない場合でのみこの配色は使用されます。","エディター ウィジェットのサイズ変更バーの境界線色。ウィジェットにサイズ変更の境界線があり、ウィジェットによって配色を上書きされていない場合でのみこの配色は使用されます。","クイック ピッカーの背景色。クイック ピッカー ウィジェットは、コマンド パレットのようなピッカーのコンテナーです。","クイック ピッカーの前景色。クイック ピッカー ウィジェットは、コマンド パレットのようなピッカーのコンテナーです。","クイック ピッカー のタイトルの背景色。クイック ピッカー ウィジェットは、コマンド パレットのようなピッカーのコンテナーです。","ラベルをグループ化するためのクリック選択の色。","境界線をグループ化するためのクイック選択の色。","エディターの選択範囲の色。","ハイ コントラストの選択済みテキストの色。","非アクティブなエディターの選択範囲の色。この色は、基本装飾が非表示にならないよう不透明にすることはできません。","選択範囲の同じコンテンツの領域の色。この色は、基本装飾が非表示にならないよう不透明にすることはできません。","選択範囲と同じコンテンツの境界線の色。","現在の検索一致項目の色。","その他の検索条件に一致する項目の色。この色は、基本装飾が非表示にならないよう不透明にすることはできません。","検索を制限する範囲の色。この色は、基本装飾が非表示にならないよう不透明にすることはできません。","現在の検索一致項目の境界線の色。","他の検索一致項目の境界線の色。","検索を制限する範囲の境界線色。この色は、基本装飾が非表示にならないよう不透明にすることはできません。","ホバーが表示されている語の下を強調表示します。この色は、基本装飾が非表示にならないよう不透明にすることはできません。","エディター ホバーの背景色。","エディター ホバーの前景色。","エディター ホバーの境界線の色。","エディターのホバーのステータス バーの背景色。","アクティブなリンクの色。","電球アクション アイコンに使用する色。","自動修正の電球アクション アイコンとして使用される色。","挿入されたテキストの背景色。この色は、基本装飾が非表示にならないよう不透明にすることはできません。","削除したテキストの背景色。この色は、基本装飾が非表示にならないよう不透明にすることはできません。","挿入されたテキストの輪郭の色。","削除されたテキストの輪郭の色。","2 つのテキスト エディターの間の境界線の色。","差分エディターの対角線の塗りつぶし色。対角線の塗りつぶしは、横に並べて比較するビューで使用されます。","ツリーリストがアクティブのとき、フォーカスされた項目のツリーリスト背景色。アクティブなツリーリストはキーボード フォーカスがあり、非アクティブではこれがありません。","ツリーリストがアクティブのとき、フォーカスされた項目のツリーリスト前景色。アクティブなツリーリストはキーボード フォーカスがあり、非アクティブではこれがありません。","ツリーリストが非アクティブのとき、選択された項目のツリーリスト背景色。アクティブなツリーリストはキーボード フォーカスがあり、非アクティブではこれがありません。","ツリーリストがアクティブのとき、選択された項目のツリーリスト前景色。アクティブなツリーリストはキーボード フォーカスがあり、非アクティブではこれがありません。","ツリーリストが非アクティブのとき、選択された項目のツリーリスト背景色。アクティブなツリーリストはキーボード フォーカスがあり、非アクティブではこれがありません。","ツリーリストが非アクティブのとき、選択された項目のツリーリスト前景色。アクティブなツリーリストはキーボード フォーカスがあり、非アクティブではこれがありません。","ツリーリストが非アクティブのとき、フォーカスされた項目のツリーリスト背景色。アクティブなツリーリストはキーボード フォーカスがあり、非アクティブではこれがありません。","マウス操作で項目をホバーするときのツリーリスト背景。","マウス操作で項目をホバーするときのツリーリスト前景。","マウス操作で項目を移動するときのツリーリスト ドラッグ アンド ドロップの背景。","ツリーリスト内を検索しているとき、一致した強調のツリーリスト前景色。","リストおよびツリーの型フィルター ウェジェットの背景色。","リストおよびツリーの型フィルター ウィジェットのアウトライン色。","一致項目がない場合の、リストおよびツリーの型フィルター ウィジェットのアウトライン色。","インデント ガイドのツリー ストロークの色。","メニューの境界線色。","メニュー項目の前景色。","メニュー項目の背景色。","メニューで選択されたメニュー項目の前景色。","メニューで選択されたメニュー項目の背景色。","メニューで選択されたメニュー項目の境界線色。","メニュー内のメニュー項目の境界線色。","スニペット tabstop の背景色を強調表示します。","スニペット tabstop の境界線の色を強調表示します。","スニペットの最後の tabstop の背景色を強調表示します。","スニペットの最後のタブストップで境界線の色を強調表示します。","検出された一致項目の概要ルーラー マーカーの色。この色は、基本装飾が非表示にならないよう不透明にすることはできません。","選択範囲を強調表示するための概要ルーラー マーカーの色。この色は、基本装飾が非表示にならないよう不透明にすることはできません。","一致を検索するためのミニマップ マーカーの色。","エディターの選択範囲のミニマップ マーカーの色。","エラーのミニマップ マーカーの色。","警告のミニマップ マーカーの色。","ミニマップの背景色。","ミニマップ スライダーの背景色。","ホバーリング時のミニマップ スライダーの背景色。","クリックしたときのミニマップ スライダーの背景色。","問題のエラー アイコンに使用される色。","問題の警告アイコンに使用される色。","問題情報アイコンに使用される色。"], +"vs/platform/undoRedo/common/undoRedoService":["次のファイルが閉じられ、ディスク上で変更されました: {0}。","以下のファイルは互換性のない方法で変更されました: {0}。","すべてのファイルで '{0}' を元に戻せませんでした。{1}","すべてのファイルで '{0}' を元に戻せませんでした。{1}","{1} に変更が加えられたため、すべてのファイルで '{0}' を元に戻せませんでした","{1} で元に戻すまたはやり直し操作が既に実行されているため、すべてのファイルに対して '{0}' を元に戻すことはできませんでした","元に戻すまたはやり直し操作がその期間に実行中であったため、すべてのファイルに対して '{0}' を元に戻すことはできませんでした","すべてのファイルで '{0}' を元に戻しますか?","{0} 個のファイルで元に戻す","このファイルを元に戻す","キャンセル","元に戻すまたはやり直し操作が既に実行されているため、'{0}' を元に戻すことはできませんでした。","すべてのファイルで '{0}' をやり直しできませんでした。{1}","すべてのファイルで '{0}' をやり直しできませんでした。{1}","{1} に変更が加えられたため、すべてのファイルで '{0}' を再実行できませんでした","{1} で元に戻すまたはやり直し操作が既に実行されているため、すべてのファイルに対して '{0}' をやり直すことはできませんでした","元に戻すまたはやり直し操作がその期間に実行中であったため、すべてのファイルに対して '{0}' をやり直すことはできませんでした","元に戻すまたはやり直し操作が既に実行されているため、'{0}' をやり直すことはできませんでした。"]}); //# sourceMappingURL=../../../min-maps/vs/editor/editor.main.nls.ja.js.map \ No newline at end of file diff --git a/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/editor/editor.main.nls.js b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/editor/editor.main.nls.js index ea2c4b4..54e795f 100644 --- a/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/editor/editor.main.nls.js +++ b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/editor/editor.main.nls.js @@ -1,8 +1,39 @@ /*!----------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. - * Version: 0.9.0(630109944f54bcdfc2dbaaff5f090c0843af6c66) + * Version: 0.21.2(67b5a8116f3c0bace36b180e524e05bb750a16d8) * Released under the MIT license * https://github.com/Microsoft/vscode/blob/master/LICENSE.txt *-----------------------------------------------------------*/ -define("vs/editor/editor.main.nls",{"vs/base/browser/ui/actionbar/actionbar":["{0} ({1})"],"vs/base/browser/ui/aria/aria":["{0} (occurred again)"],"vs/base/browser/ui/findinput/findInput":["input"],"vs/base/browser/ui/findinput/findInputCheckboxes":["Match Case","Match Whole Word","Use Regular Expression"],"vs/base/browser/ui/inputbox/inputBox":["Error: {0}","Warning: {0}","Info: {0}"],"vs/base/common/keybindingLabels":["Ctrl","Shift","Alt","Windows","Control","Shift","Alt","Command","Control","Shift","Alt","Windows"],"vs/base/common/severity":["Error","Warning","Info"],"vs/base/parts/quickopen/browser/quickOpenModel":["{0}, picker","picker"],"vs/base/parts/quickopen/browser/quickOpenWidget":["Quick picker. Type to narrow down results.","Quick Picker"],"vs/base/parts/tree/browser/treeDefaults":["Collapse"],"vs/editor/browser/widget/diffReview":["Close","Difference {0} of {1}: original {2}, {3} lines, modified {4}, {5} lines","blank","original {0}, modified {1}: {2}","+ modified {0}: {1}","- original {0}: {1}","Go to Next Difference","Go to Previous Difference"],"vs/editor/common/config/commonEditorConfig":["Editor","Controls the font family.","Controls the font weight.","Controls the font size in pixels.","Controls the line height. Use 0 to compute the lineHeight from the fontSize.","Controls the letter spacing in pixels.","Controls the display of line numbers. Possible values are 'on', 'off', and 'relative'. 'relative' shows the line count from the current cursor position.","Columns at which to show vertical rulers","Characters that will be used as word separators when doing word related navigations or operations","The number of spaces a tab is equal to. This setting is overriden based on the file contents when `editor.detectIndentation` is on.","Expected 'number'. Note that the value \"auto\" has been replaced by the `editor.detectIndentation` setting.","Insert spaces when pressing Tab. This setting is overriden based on the file contents when `editor.detectIndentation` is on.","Expected 'boolean'. Note that the value \"auto\" has been replaced by the `editor.detectIndentation` setting.","When opening a file, `editor.tabSize` and `editor.insertSpaces` will be detected based on the file contents.","Controls if selections have rounded corners","Controls if the editor will scroll beyond the last line","Controls if the minimap is shown","Controls whether the minimap slider is automatically hidden.","Render the actual characters on a line (as opposed to color blocks)","Limit the width of the minimap to render at most a certain number of columns","Controls if we seed the search string in Find Widget from editor selection","Controls if Find in Selection flag is turned on when multiple characters or lines of text are selected in the editor","Lines will never wrap.","Lines will wrap at the viewport width.","Lines will wrap at `editor.wordWrapColumn`.","Lines will wrap at the minimum of viewport and `editor.wordWrapColumn`.","Controls how lines should wrap. Can be:\n - 'off' (disable wrapping),\n - 'on' (viewport wrapping),\n - 'wordWrapColumn' (wrap at `editor.wordWrapColumn`) or\n - 'bounded' (wrap at minimum of viewport and `editor.wordWrapColumn`).","Controls the wrapping column of the editor when `editor.wordWrap` is 'wordWrapColumn' or 'bounded'.","Controls the indentation of wrapped lines. Can be one of 'none', 'same' or 'indent'.","A multiplier to be used on the `deltaX` and `deltaY` of mouse wheel scroll events","Maps to `Control` on Windows and Linux and to `Command` on OSX.","Maps to `Alt` on Windows and Linux and to `Option` on OSX.","The modifier to be used to add multiple cursors with the mouse. `ctrlCmd` maps to `Control` on Windows and Linux and to `Command` on OSX. The Go To Definition and Open Link mouse gestures will adapt such that they do not conflict with the multicursor modifier.","Enable quick suggestions inside strings.","Enable quick suggestions inside comments.","Enable quick suggestions outside of strings and comments.","Controls if suggestions should automatically show up while typing","Controls the delay in ms after which quick suggestions will show up","Enables pop-up that shows parameter documentation and type information as you type","Controls if the editor should automatically close brackets after opening them","Controls if the editor should automatically format the line after typing","Controls if the editor should automatically format the pasted content. A formatter must be available and the formatter should be able to format a range in a document.","Controls if the editor should automatically adjust the indentation when users type, paste or move lines. Indentation rules of the language must be available. ","Controls if suggestions should automatically show up when typing trigger characters","Controls if suggestions should be accepted on 'Enter' - in addition to 'Tab'. Helps to avoid ambiguity between inserting new lines or accepting suggestions. The value 'smart' means only accept a suggestion with Enter when it makes a textual change","Controls if suggestions should be accepted on commit characters. For instance in JavaScript the semi-colon (';') can be a commit character that accepts a suggestion and types that character.","Controls whether snippets are shown with other suggestions and how they are sorted.","Controls whether copying without a selection copies the current line.","Controls whether completions should be computed based on words in the document.","Font size for the suggest widget","Line height for the suggest widget","Controls whether the editor should highlight similar matches to the selection","Controls whether the editor should highlight semantic symbol occurrences","Controls the number of decorations that can show up at the same position in the overview ruler","Controls if a border should be drawn around the overview ruler.","Control the cursor animation style, possible values are 'blink', 'smooth', 'phase', 'expand' and 'solid'","Zoom the font of the editor when using mouse wheel and holding Ctrl","Controls the cursor style, accepted values are 'block', 'block-outline', 'line', 'line-thin', 'underline' and 'underline-thin'","Enables font ligatures","Controls if the cursor should be hidden in the overview ruler.","Controls how the editor should render whitespace characters, possibilities are 'none', 'boundary', and 'all'. The 'boundary' option does not render single spaces between words.","Controls whether the editor should render control characters","Controls whether the editor should render indent guides","Controls how the editor should render the current line highlight, possibilities are 'none', 'gutter', 'line', and 'all'.","Controls if the editor shows code lenses","Controls whether the editor has code folding enabled","Controls whether the fold controls on the gutter are automatically hidden.","Highlight matching brackets when one of them is selected.","Controls whether the editor should render the vertical glyph margin. Glyph margin is mostly used for debugging.","Inserting and deleting whitespace follows tab stops","Remove trailing auto inserted whitespace","Keep peek editors open even when double clicking their content or when hitting Escape.","Controls if the editor should allow to move selections via drag and drop.","The editor will use platform APIs to detect when a Screen Reader is attached.","The editor will be permanently optimized for usage with a Screen Reader.","The editor will never be optimized for usage with a Screen Reader.","Controls whether the editor should run in a mode where it is optimized for screen readers.","Controls whether the editor should detect links and make them clickable","Controls if the diff editor shows the diff side by side or inline","Controls if the diff editor shows changes in leading or trailing whitespace as diffs","Controls if the diff editor shows +/- indicators for added/removed changes","Controls if the Linux primary clipboard should be supported."],"vs/editor/common/config/editorOptions":["The editor is not accessible at this time. Press Alt+F1 for options.","Editor content"],"vs/editor/common/controller/cursor":["Unexpected exception while executing command."],"vs/editor/common/model/textModelWithTokens":["The mode has failed while tokenizing the input."],"vs/editor/common/modes/modesRegistry":["Plain Text"],"vs/editor/common/services/bulkEdit":["These files have changed in the meantime: {0}","Made no edits","Made {0} text edits in {1} files","Made {0} text edits in one file"],"vs/editor/common/services/modelServiceImpl":["[{0}]\n{1}","[{0}] {1}"],"vs/editor/common/view/editorColorRegistry":["Background color for the highlight of line at the cursor position.","Background color for the border around the line at the cursor position.","Background color of highlighted ranges, like by quick open and find features.","Color of the editor cursor.","Color of whitespace characters in the editor.","Color of the editor indentation guides.","Color of editor line numbers.","Color of the editor rulers.","Foreground color of editor code lenses","Background color behind matching brackets","Color for matching brackets boxes","Color of the overview ruler border.","Background color of the editor gutter. The gutter contains the glyph margins and the line numbers.","Foreground color of error squigglies in the editor.","Border color of error squigglies in the editor.","Foreground color of warning squigglies in the editor.","Border color of warning squigglies in the editor."],"vs/editor/contrib/bracketMatching/common/bracketMatching":["Go to Bracket"],"vs/editor/contrib/caretOperations/common/caretOperations":["Move Caret Left","Move Caret Right"],"vs/editor/contrib/caretOperations/common/transpose":["Transpose Letters"],"vs/editor/contrib/clipboard/browser/clipboard":["Cut","Copy","Paste","Copy With Syntax Highlighting"],"vs/editor/contrib/comment/common/comment":["Toggle Line Comment","Add Line Comment","Remove Line Comment","Toggle Block Comment"],"vs/editor/contrib/contextmenu/browser/contextmenu":["Show Editor Context Menu"],"vs/editor/contrib/find/browser/findWidget":["Find","Find","Previous match","Next match","Find in selection","Close","Replace","Replace","Replace","Replace All","Toggle Replace mode","Only the first 999 results are highlighted, but all find operations work on the entire text.","{0} of {1}","No Results"],"vs/editor/contrib/find/common/findController":["Find","Find Next","Find Previous","Find Next Selection","Find Previous Selection","Replace","Add Selection To Next Find Match","Add Selection To Previous Find Match","Move Last Selection To Next Find Match","Move Last Selection To Previous Find Match","Select All Occurrences of Find Match","Change All Occurrences"],"vs/editor/contrib/folding/browser/folding":["Unfold","Unfold Recursively","Fold","Fold Recursively","Fold All","Unfold All","Fold Level {0}"],"vs/editor/contrib/format/browser/formatActions":["Made 1 formatting edit on line {0}","Made {0} formatting edits on line {1}","Made 1 formatting edit between lines {0} and {1}","Made {0} formatting edits between lines {1} and {2}","Format Document","Format Selection"],"vs/editor/contrib/goToDeclaration/browser/goToDeclarationCommands":["No definition found for '{0}'","No definition found"," – {0} definitions","Go to Definition","Open Definition to the Side","Peek Definition","No implementation found for '{0}'","No implementation found"," – {0} implementations","Go to Implementation","Peek Implementation","No type definition found for '{0}'","No type definition found"," – {0} type definitions","Go to Type Definition","Peek Type Definition"],"vs/editor/contrib/goToDeclaration/browser/goToDeclarationMouse":["Click to show {0} definitions."],"vs/editor/contrib/gotoError/browser/gotoError":["({0}/{1})","Go to Next Error or Warning","Go to Previous Error or Warning","Editor marker navigation widget error color.","Editor marker navigation widget warning color.","Editor marker navigation widget background."],"vs/editor/contrib/hover/browser/hover":["Show Hover"],"vs/editor/contrib/hover/browser/modesContentHover":["Loading..."],"vs/editor/contrib/inPlaceReplace/common/inPlaceReplace":["Replace with Previous Value","Replace with Next Value"],"vs/editor/contrib/linesOperations/common/linesOperations":["Copy Line Up","Copy Line Down","Move Line Up","Move Line Down","Sort Lines Ascending","Sort Lines Descending","Trim Trailing Whitespace","Delete Line","Indent Line","Outdent Line","Insert Line Above","Insert Line Below","Delete All Left","Delete All Right","Join Lines","Transpose characters around the cursor","Transform to Uppercase","Transform to Lowercase"],"vs/editor/contrib/links/browser/links":["Cmd + click to follow link","Ctrl + click to follow link","Alt + click to follow link","Sorry, failed to open this link because it is not well-formed: {0}","Sorry, failed to open this link because its target is missing.","Open Link"],"vs/editor/contrib/multicursor/common/multicursor":["Add Cursor Above","Add Cursor Below","Add Cursors to Line Ends"],"vs/editor/contrib/parameterHints/browser/parameterHints":["Trigger Parameter Hints"],"vs/editor/contrib/parameterHints/browser/parameterHintsWidget":["{0}, hint"],"vs/editor/contrib/quickFix/browser/quickFixCommands":["Show Fixes ({0})","Show Fixes","Quick Fix"],"vs/editor/contrib/referenceSearch/browser/referenceSearch":[" – {0} references","Find All References"],"vs/editor/contrib/referenceSearch/browser/referencesController":["Loading..."],"vs/editor/contrib/referenceSearch/browser/referencesModel":["symbol in {0} on line {1} at column {2}","1 symbol in {0}, full path {1}","{0} symbols in {1}, full path {2}","No results found","Found 1 symbol in {0}","Found {0} symbols in {1}","Found {0} symbols in {1} files"],"vs/editor/contrib/referenceSearch/browser/referencesWidget":["Failed to resolve file.","{0} references","{0} reference","no preview available","References","No results","References","Background color of the peek view title area.","Color of the peek view title.","Color of the peek view title info.","Color of the peek view borders and arrow.","Background color of the peek view result list.","Foreground color for line nodes in the peek view result list.","Foreground color for file nodes in the peek view result list.","Background color of the selected entry in the peek view result list.","Foreground color of the selected entry in the peek view result list.","Background color of the peek view editor.","Background color of the gutter in the peek view editor.","Match highlight color in the peek view result list.","Match highlight color in the peek view editor."],"vs/editor/contrib/rename/browser/rename":["No result.","Successfully renamed '{0}' to '{1}'. Summary: {2}","Sorry, rename failed to execute.","Rename Symbol"],"vs/editor/contrib/rename/browser/renameInputField":["Rename input. Type new name and press Enter to commit."],"vs/editor/contrib/smartSelect/common/smartSelect":["Expand Select","Shrink Select"],"vs/editor/contrib/suggest/browser/suggestController":["Accepting '{0}' did insert the following text: {1}","Trigger Suggest"],"vs/editor/contrib/suggest/browser/suggestWidget":["Background color of the suggest widget.","Border color of the suggest widget.","Foreground color of the suggest widget.","Background color of the selected entry in the suggest widget.","Color of the match highlights in the suggest widget.","Read More...{0}","{0}, suggestion, has details","{0}, suggestion","Read less...{0}","Loading...","No suggestions.","{0}, accepted","{0}, suggestion, has details","{0}, suggestion"],"vs/editor/contrib/toggleTabFocusMode/common/toggleTabFocusMode":["Toggle Tab Key Moves Focus"],"vs/editor/contrib/wordHighlighter/common/wordHighlighter":["Background color of a symbol during read-access, like reading a variable.","Background color of a symbol during write-access, like writing to a variable."],"vs/editor/contrib/zoneWidget/browser/peekViewWidget":["Close"],"vs/editor/standalone/browser/inspectTokens/inspectTokens":["Developer: Inspect Tokens"],"vs/editor/standalone/browser/quickOpen/gotoLine":["Go to line {0} and character {1}","Go to line {0}","Type a line number between 1 and {0} to navigate to","Type a character between 1 and {0} to navigate to","Go to line {0}","Type a line number, followed by an optional colon and a character number to navigate to","Go to Line..."],"vs/editor/standalone/browser/quickOpen/quickCommand":["{0}, commands","Type the name of an action you want to execute","Command Palette"],"vs/editor/standalone/browser/quickOpen/quickOutline":["{0}, symbols","Type the name of an identifier you wish to navigate to","Go to Symbol...","symbols ({0})","modules ({0})","classes ({0})","interfaces ({0})","methods ({0})","functions ({0})","properties ({0})","variables ({0})","variables ({0})","constructors ({0})","calls ({0})"],"vs/editor/standalone/browser/standaloneCodeEditor":["Editor content","Press Ctrl+F1 for Accessibility Options.","Press Alt+F1 for Accessibility Options."],"vs/editor/standalone/browser/toggleHighContrast/toggleHighContrast":["Toggle High Contrast Theme"],"vs/platform/configuration/common/configurationRegistry":["Default Configuration Overrides","Configure editor settings to be overridden for {0} language.","Configure editor settings to be overridden for a language.","Cannot register '{0}'. This matches property pattern '\\\\[.*\\\\]$' for describing language specific editor settings. Use 'configurationDefaults' contribution.","Cannot register '{0}'. This property is already registered."],"vs/platform/keybinding/common/abstractKeybindingService":["({0}) was pressed. Waiting for second key of chord...","The key combination ({0}, {1}) is not a command."],"vs/platform/message/common/message":["Close","Later","Cancel"],"vs/platform/theme/common/colorRegistry":["Invalid color format. Use #RGB, #RGBA, #RRGGBB or #RRGGBBAA","Colors used in the workbench.","Overall foreground color. This color is only used if not overridden by a component.","Overall foreground color for error messages. This color is only used if not overridden by a component.","Foreground color for description text providing additional information, for example for a label.","Overall border color for focused elements. This color is only used if not overridden by a component.","An extra border around elements to separate them from others for greater contrast.","An extra border around active elements to separate them from others for greater contrast.","The background color of text selections in the workbench (e.g. for input fields or text areas). Note that this does not apply to selections within the editor.","Color for text separators.","Foreground color for links in text.","Foreground color for active links in text.","Foreground color for preformatted text segments.","Background color for block quotes in text.","Border color for block quotes in text.","Background color for code blocks in text.","Shadow color of widgets such as find/replace inside the editor.","Input box background.","Input box foreground.","Input box border.","Border color of activated options in input fields.","Input box foreground color for placeholder text.","Input validation background color for information severity.","Input validation border color for information severity.","Input validation background color for information warning.","Input validation border color for warning severity.","Input validation background color for error severity.","Input validation border color for error severity.","Dropdown background.","Dropdown foreground.","Dropdown border.","List/Tree background color for the focused item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.","List/Tree foreground color for the focused item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.","List/Tree background color for the selected item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.","List/Tree foreground color for the selected item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.","List/Tree background color for the selected item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.","List/Tree foreground color for the selected item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.","List/Tree background when hovering over items using the mouse.","List/Tree foreground when hovering over items using the mouse.","List/Tree drag and drop background when moving items around using the mouse.","List/Tree foreground color of the match highlights when searching inside the list/tree.","Quick picker color for grouping labels.","Quick picker color for grouping borders.","Button foreground color.","Button background color.","Button background color when hovering.","Badge background color. Badges are small information labels, e.g. for search results count.","Badge foreground color. Badges are small information labels, e.g. for search results count.","Scrollbar shadow to indicate that the view is scrolled.","Slider background color.","Slider background color when hovering.","Slider background color when active.","Background color of the progress bar that can show for long running operations.","Editor background color.","Editor default foreground color.","Background color of editor widgets, such as find/replace.","Border color of editor widgets. The color is only used if the widget chooses to have a border and if the color is not overridden by a widget.","Color of the editor selection.","Color of the selected text for high contrast.","Color of the selection in an inactive editor.","Color for regions with the same content as the selection.","Color of the current search match.","Color of the other search matches.","Color the range limiting the search.","Highlight below the word for which a hover is shown.","Background color of the editor hover.","Border color of the editor hover.","Color of active links.","Background color for text that got inserted.","Background color for text that got removed.","Outline color for the text that got inserted.","Outline color for text that got removed.","Current header background in inline merge-conflicts.","Current content background in inline merge-conflicts.","Incoming header background in inline merge-conflicts.","Incoming content background in inline merge-conflicts.","Common ancestor header background in inline merge-conflicts.","Common ancester content background in inline merge-conflicts.","Border color on headers and the splitter in inline merge-conflicts.","Current overview ruler foreground for inline merge-conflicts.","Incoming overview ruler foreground for inline merge-conflicts.","Common ancestor overview ruler foreground for inline merge-conflicts."]}); +define("vs/editor/editor.main.nls",{"vs/base/browser/ui/actionbar/actionViewItems":["{0} ({1})"],"vs/base/browser/ui/findinput/findInput":["input"],"vs/base/browser/ui/findinput/findInputCheckboxes":["Match Case","Match Whole Word","Use Regular Expression"],"vs/base/browser/ui/findinput/replaceInput":["input","Preserve Case"],"vs/base/browser/ui/inputbox/inputBox":["Error: {0}","Warning: {0}","Info: {0}"],"vs/base/browser/ui/keybindingLabel/keybindingLabel":["Unbound"],"vs/base/browser/ui/menu/menu":["{0} ({1})"],"vs/base/browser/ui/tree/abstractTree":["Clear","Disable Filter on Type","Enable Filter on Type","No elements found","Matched {0} out of {1} elements"],"vs/base/common/errorMessage":["{0}: {1}","A system error occurred ({0})","An unknown error occurred. Please consult the log for more details.","An unknown error occurred. Please consult the log for more details.","{0} ({1} errors in total)","An unknown error occurred. Please consult the log for more details."], +"vs/base/common/keybindingLabels":["Ctrl","Shift","Alt","Windows","Ctrl","Shift","Alt","Super","Control","Shift","Alt","Command","Control","Shift","Alt","Windows","Control","Shift","Alt","Super"],"vs/base/parts/quickinput/browser/quickInput":["Back","{0}/{1}","Type to narrow down results.","{0} Results","{0} Selected","OK","Custom","Back ({0})","Back"],"vs/base/parts/quickinput/browser/quickInputList":["Quick Input"],"vs/editor/browser/controller/coreCommands":["Stick to the end even when going to longer lines","Stick to the end even when going to longer lines"],"vs/editor/browser/controller/textAreaHandler":["editor","The editor is not accessible at this time. Press {0} for options."],"vs/editor/browser/editorExtensions":["&&Undo","Undo","&&Redo","Redo","&&Select All","Select All"],"vs/editor/browser/widget/codeEditorWidget":["The number of cursors has been limited to {0}."],"vs/editor/browser/widget/diffEditorWidget":["Cannot compare files because one file is too large."], +"vs/editor/browser/widget/diffReview":["Close","no lines changed","1 line changed","{0} lines changed","Difference {0} of {1}: original line {2}, {3}, modified line {4}, {5}","blank","{0} unchanged line {1}","{0} original line {1} modified line {2}","+ {0} modified line {1}","- {0} original line {1}","Go to Next Difference","Go to Previous Difference"],"vs/editor/browser/widget/inlineDiffMargin":["Copy deleted lines","Copy deleted line","Copy deleted line ({0})","Revert this change","Copy deleted line ({0})"], +"vs/editor/common/config/commonEditorConfig":["Editor","The number of spaces a tab is equal to. This setting is overridden based on the file contents when `#editor.detectIndentation#` is on.","Insert spaces when pressing `Tab`. This setting is overridden based on the file contents when `#editor.detectIndentation#` is on.","Controls whether `#editor.tabSize#` and `#editor.insertSpaces#` will be automatically detected when a file is opened based on the file contents.","Remove trailing auto inserted whitespace.","Special handling for large files to disable certain memory intensive features.","Controls whether completions should be computed based on words in the document.","Semantic highlighting enabled for all color themes.","Semantic highlighting disabled for all color themes.","Semantic highlighting is configured by the current color theme's `semanticHighlighting` setting.","Controls whether the semanticHighlighting is shown for the languages that support it.","Keep peek editors open even when double clicking their content or when hitting `Escape`.","Lines above this length will not be tokenized for performance reasons","Timeout in milliseconds after which diff computation is cancelled. Use 0 for no timeout.","Controls whether the diff editor shows the diff side by side or inline.","When enabled, the diff editor ignores changes in leading or trailing whitespace.","Controls whether the diff editor shows +/- indicators for added/removed changes.","Controls whether the editor shows CodeLens."], +"vs/editor/common/config/editorOptions":["The editor will use platform APIs to detect when a Screen Reader is attached.","The editor will be permanently optimized for usage with a Screen Reader.","The editor will never be optimized for usage with a Screen Reader.","Controls whether the editor should run in a mode where it is optimized for screen readers.","Controls whether a space character is inserted when commenting.","Controls if empty lines should be ignored with toggle, add or remove actions for line comments.","Controls whether copying without a selection copies the current line.","Controls whether the cursor should jump to find matches while typing.","Controls whether the search string in the Find Widget is seeded from the editor selection.","Never turn on Find in selection automatically (default)","Always turn on Find in selection automatically","Turn on Find in selection automatically when multiple lines of content are selected.","Controls the condition for turning on find in selection automatically.","Controls whether the Find Widget should read or modify the shared find clipboard on macOS.","Controls whether the Find Widget should add extra lines on top of the editor. When true, you can scroll beyond the first line when the Find Widget is visible.","Controls whether the search automatically restarts from the beginning (or the end) when no further matches can be found.","Enables/Disables font ligatures.","Explicit font-feature-settings.","Configures font ligatures or font features.","Controls the font size in pixels.",'Only "normal" and "bold" keywords or numbers between 1 and 1000 are allowed.','Controls the font weight. Accepts "normal" and "bold" keywords or numbers between 1 and 1000.',"Show peek view of the results (default)","Go to the primary result and show a peek view","Go to the primary result and enable peek-less navigation to others","This setting is deprecated, please use separate settings like 'editor.editor.gotoLocation.multipleDefinitions' or 'editor.editor.gotoLocation.multipleImplementations' instead.","Controls the behavior the 'Go to Definition'-command when multiple target locations exist.","Controls the behavior the 'Go to Type Definition'-command when multiple target locations exist.","Controls the behavior the 'Go to Declaration'-command when multiple target locations exist.","Controls the behavior the 'Go to Implementations'-command when multiple target locations exist.","Controls the behavior the 'Go to References'-command when multiple target locations exist.","Alternative command id that is being executed when the result of 'Go to Definition' is the current location.","Alternative command id that is being executed when the result of 'Go to Type Definition' is the current location.","Alternative command id that is being executed when the result of 'Go to Declaration' is the current location.","Alternative command id that is being executed when the result of 'Go to Implementation' is the current location.","Alternative command id that is being executed when the result of 'Go to Reference' is the current location.","Controls whether the hover is shown.","Controls the delay in milliseconds after which the hover is shown.","Controls whether the hover should remain visible when mouse is moved over it.","Enables the code action lightbulb in the editor.","Controls the line height. Use 0 to compute the line height from the font size.","Controls whether the minimap is shown.","The minimap has the same size as the editor contents (and might scroll).","The minimap will stretch or shrink as necessary to fill the height of the editor (no scrolling).","The minimap will shrink as necessary to never be larger than the editor (no scrolling).","Controls the size of the minimap.","Controls the side where to render the minimap.","Controls when the minimap slider is shown.","Scale of content drawn in the minimap: 1, 2 or 3.","Render the actual characters on a line as opposed to color blocks.","Limit the width of the minimap to render at most a certain number of columns.","Controls the amount of space between the top edge of the editor and the first line.","Controls the amount of space between the bottom edge of the editor and the last line.","Enables a pop-up that shows parameter documentation and type information as you type.","Controls whether the parameter hints menu cycles or closes when reaching the end of the list.","Enable quick suggestions inside strings.","Enable quick suggestions inside comments.","Enable quick suggestions outside of strings and comments.","Controls whether suggestions should automatically show up while typing.","Line numbers are not rendered.","Line numbers are rendered as absolute number.","Line numbers are rendered as distance in lines to cursor position.","Line numbers are rendered every 10 lines.","Controls the display of line numbers.","Number of monospace characters at which this editor ruler will render.","Color of this editor ruler.","Render vertical rulers after a certain number of monospace characters. Use multiple values for multiple rulers. No rulers are drawn if array is empty.","Insert suggestion without overwriting text right of the cursor.","Insert suggestion and overwrite text right of the cursor.","Controls whether words are overwritten when accepting completions. Note that this depends on extensions opting into this feature.","Controls whether filtering and sorting suggestions accounts for small typos.","Controls whether sorting favours words that appear close to the cursor.","Controls whether remembered suggestion selections are shared between multiple workspaces and windows (needs `#editor.suggestSelection#`).","Controls whether an active snippet prevents quick suggestions.","Controls whether to show or hide icons in suggestions.","Controls how many suggestions IntelliSense will show before showing a scrollbar (maximum 15).","This setting is deprecated, please use separate settings like 'editor.suggest.showKeywords' or 'editor.suggest.showSnippets' instead.","When enabled IntelliSense shows `method`-suggestions.","When enabled IntelliSense shows `function`-suggestions.","When enabled IntelliSense shows `constructor`-suggestions.","When enabled IntelliSense shows `field`-suggestions.","When enabled IntelliSense shows `variable`-suggestions.","When enabled IntelliSense shows `class`-suggestions.","When enabled IntelliSense shows `struct`-suggestions.","When enabled IntelliSense shows `interface`-suggestions.","When enabled IntelliSense shows `module`-suggestions.","When enabled IntelliSense shows `property`-suggestions.","When enabled IntelliSense shows `event`-suggestions.","When enabled IntelliSense shows `operator`-suggestions.","When enabled IntelliSense shows `unit`-suggestions.","When enabled IntelliSense shows `value`-suggestions.","When enabled IntelliSense shows `constant`-suggestions.","When enabled IntelliSense shows `enum`-suggestions.","When enabled IntelliSense shows `enumMember`-suggestions.","When enabled IntelliSense shows `keyword`-suggestions.","When enabled IntelliSense shows `text`-suggestions.","When enabled IntelliSense shows `color`-suggestions.","When enabled IntelliSense shows `file`-suggestions.","When enabled IntelliSense shows `reference`-suggestions.","When enabled IntelliSense shows `customcolor`-suggestions.","When enabled IntelliSense shows `folder`-suggestions.","When enabled IntelliSense shows `typeParameter`-suggestions.","When enabled IntelliSense shows `snippet`-suggestions.","When enabled IntelliSense shows `user`-suggestions.","When enabled IntelliSense shows `issues`-suggestions.","Controls the visibility of the status bar at the bottom of the suggest widget.","Controls whether suggestions should be accepted on commit characters. For example, in JavaScript, the semi-colon (`;`) can be a commit character that accepts a suggestion and types that character.","Only accept a suggestion with `Enter` when it makes a textual change.","Controls whether suggestions should be accepted on `Enter`, in addition to `Tab`. Helps to avoid ambiguity between inserting new lines or accepting suggestions.","Controls the number of lines in the editor that can be read out by a screen reader. Warning: this has a performance implication for numbers larger than the default.","Editor content","Use language configurations to determine when to autoclose brackets.","Autoclose brackets only when the cursor is to the left of whitespace.","Controls whether the editor should automatically close brackets after the user adds an opening bracket.","Type over closing quotes or brackets only if they were automatically inserted.","Controls whether the editor should type over closing quotes or brackets.","Use language configurations to determine when to autoclose quotes.","Autoclose quotes only when the cursor is to the left of whitespace.","Controls whether the editor should automatically close quotes after the user adds an opening quote.","The editor will not insert indentation automatically.","The editor will keep the current line's indentation.","The editor will keep the current line's indentation and honor language defined brackets.","The editor will keep the current line's indentation, honor language defined brackets and invoke special onEnterRules defined by languages.","The editor will keep the current line's indentation, honor language defined brackets, invoke special onEnterRules defined by languages, and honor indentationRules defined by languages.","Controls whether the editor should automatically adjust the indentation when users type, paste, move or indent lines.","Use language configurations to determine when to automatically surround selections.","Surround with quotes but not brackets.","Surround with brackets but not quotes.","Controls whether the editor should automatically surround selections.","Controls whether the editor shows CodeLens.","Controls whether the editor should render the inline color decorators and color picker.","Enable that the selection with the mouse and keys is doing column selection.","Controls whether syntax highlighting should be copied into the clipboard.","Control the cursor animation style.","Controls whether the smooth caret animation should be enabled.","Controls the cursor style.","Controls the minimal number of visible leading and trailing lines surrounding the cursor. Known as 'scrollOff' or `scrollOffset` in some other editors.","`cursorSurroundingLines` is enforced only when triggered via the keyboard or API.","`cursorSurroundingLines` is enforced always.","Controls when `cursorSurroundingLines` should be enforced.","Controls the width of the cursor when `#editor.cursorStyle#` is set to `line`.","Controls whether the editor should allow moving selections via drag and drop.","Scrolling speed multiplier when pressing `Alt`.","Controls whether the editor has code folding enabled.","Use a language-specific folding strategy if available, else the indentation-based one.","Use the indentation-based folding strategy.","Controls the strategy for computing folding ranges.","Controls whether the editor should highlight folded ranges.","Controls whether clicking on the empty content after a folded line will unfold the line.","Controls the font family.","Controls whether the editor should automatically format the pasted content. A formatter must be available and the formatter should be able to format a range in a document.","Controls whether the editor should automatically format the line after typing.","Controls whether the editor should render the vertical glyph margin. Glyph margin is mostly used for debugging.","Controls whether the cursor should be hidden in the overview ruler.","Controls whether the editor should highlight the active indent guide.","Controls the letter spacing in pixels.","Controls whether the editor should detect links and make them clickable.","Highlight matching brackets.","A multiplier to be used on the `deltaX` and `deltaY` of mouse wheel scroll events.","Zoom the font of the editor when using mouse wheel and holding `Ctrl`.","Merge multiple cursors when they are overlapping.","Maps to `Control` on Windows and Linux and to `Command` on macOS.","Maps to `Alt` on Windows and Linux and to `Option` on macOS.","The modifier to be used to add multiple cursors with the mouse. The Go To Definition and Open Link mouse gestures will adapt such that they do not conflict with the multicursor modifier. [Read more](https://code.visualstudio.com/docs/editor/codebasics#_multicursor-modifier).","Each cursor pastes a single line of the text.","Each cursor pastes the full text.","Controls pasting when the line count of the pasted text matches the cursor count.","Controls whether the editor should highlight semantic symbol occurrences.","Controls whether a border should be drawn around the overview ruler.","Focus the tree when opening peek","Focus the editor when opening peek","Controls whether to focus the inline editor or the tree in the peek widget.","Controls whether the Go to Definition mouse gesture always opens the peek widget.","Controls the delay in milliseconds after which quick suggestions will show up.","Controls whether the editor auto renames on type.","Controls whether the editor should render control characters.","Controls whether the editor should render indent guides.","Render last line number when the file ends with a newline.","Highlights both the gutter and the current line.","Controls how the editor should render the current line highlight.","Controls if the editor should render the current line highlight only when the editor is focused","Render whitespace characters except for single spaces between words.","Render whitespace characters only on selected text.","Render only trailing whitespace characters","Controls how the editor should render whitespace characters.","Controls whether selections should have rounded corners.","Controls the number of extra characters beyond which the editor will scroll horizontally.","Controls whether the editor will scroll beyond the last line.","Scroll only along the predominant axis when scrolling both vertically and horizontally at the same time. Prevents horizontal drift when scrolling vertically on a trackpad.","Controls whether the Linux primary clipboard should be supported.","Controls whether the editor should highlight matches similar to the selection.","Always show the folding controls.","Only show the folding controls when the mouse is over the gutter.","Controls when the folding controls on the gutter are shown.","Controls fading out of unused code.","Controls strikethrough deprecated variables.","Show snippet suggestions on top of other suggestions.","Show snippet suggestions below other suggestions.","Show snippets suggestions with other suggestions.","Do not show snippet suggestions.","Controls whether snippets are shown with other suggestions and how they are sorted.","Controls whether the editor will scroll using an animation.","Font size for the suggest widget. When set to `0`, the value of `#editor.fontSize#` is used.","Line height for the suggest widget. When set to `0`, the value of `#editor.lineHeight#` is used.","Controls whether suggestions should automatically show up when typing trigger characters.","Always select the first suggestion.","Select recent suggestions unless further typing selects one, e.g. `console.| -> console.log` because `log` has been completed recently.","Select suggestions based on previous prefixes that have completed those suggestions, e.g. `co -> console` and `con -> const`.","Controls how suggestions are pre-selected when showing the suggest list.","Tab complete will insert the best matching suggestion when pressing tab.","Disable tab completions.","Tab complete snippets when their prefix match. Works best when 'quickSuggestions' aren't enabled.","Enables tab completions.","Unusual line terminators are ignored.","Unusual line terminators prompt to be removed.","Unusual line terminators are automatically removed.","Remove unusual line terminators that might cause problems.","Inserting and deleting whitespace follows tab stops.","Characters that will be used as word separators when doing word related navigations or operations.","Lines will never wrap.","Lines will wrap at the viewport width.","Lines will wrap at `#editor.wordWrapColumn#`.","Lines will wrap at the minimum of viewport and `#editor.wordWrapColumn#`.","Controls how lines should wrap.","Controls the wrapping column of the editor when `#editor.wordWrap#` is `wordWrapColumn` or `bounded`.","No indentation. Wrapped lines begin at column 1.","Wrapped lines get the same indentation as the parent.","Wrapped lines get +1 indentation toward the parent.","Wrapped lines get +2 indentation toward the parent.","Controls the indentation of wrapped lines.","Assumes that all characters are of the same width. This is a fast algorithm that works correctly for monospace fonts and certain scripts (like Latin characters) where glyphs are of equal width.","Delegates wrapping points computation to the browser. This is a slow algorithm, that might cause freezes for large files, but it works correctly in all cases.","Controls the algorithm that computes wrapping points."], +"vs/editor/common/model/editStack":["Typing"],"vs/editor/common/modes/modesRegistry":["Plain Text"], +"vs/editor/common/standaloneStrings":["No selection","Line {0}, Column {1} ({2} selected)","Line {0}, Column {1}","{0} selections ({1} characters selected)","{0} selections","Now changing the setting `accessibilitySupport` to 'on'.","Now opening the Editor Accessibility documentation page."," in a read-only pane of a diff editor."," in a pane of a diff editor."," in a read-only code editor"," in a code editor","To configure the editor to be optimized for usage with a Screen Reader press Command+E now.","To configure the editor to be optimized for usage with a Screen Reader press Control+E now.","The editor is configured to be optimized for usage with a Screen Reader.","The editor is configured to never be optimized for usage with a Screen Reader, which is not the case at this time.","Pressing Tab in the current editor will move focus to the next focusable element. Toggle this behavior by pressing {0}.","Pressing Tab in the current editor will move focus to the next focusable element. The command {0} is currently not triggerable by a keybinding.","Pressing Tab in the current editor will insert the tab character. Toggle this behavior by pressing {0}.","Pressing Tab in the current editor will insert the tab character. The command {0} is currently not triggerable by a keybinding.","Press Command+H now to open a browser window with more information related to editor accessibility.","Press Control+H now to open a browser window with more information related to editor accessibility.","You can dismiss this tooltip and return to the editor by pressing Escape or Shift+Escape.","Show Accessibility Help","Developer: Inspect Tokens","Go to Line/Column...","Show all Quick Access Providers","Command Palette","Show And Run Commands","Go to Symbol...","Go to Symbol by Category...","Editor content","Press Alt+F1 for Accessibility Options.","Toggle High Contrast Theme","Made {0} edits in {1} files"], +"vs/editor/common/view/editorColorRegistry":["Background color for the highlight of line at the cursor position.","Background color for the border around the line at the cursor position.","Background color of highlighted ranges, like by quick open and find features. The color must not be opaque so as not to hide underlying decorations.","Background color of the border around highlighted ranges.","Background color of highlighted symbol, like for go to definition or go next/previous symbol. The color must not be opaque so as not to hide underlying decorations.","Background color of the border around highlighted symbols.","Color of the editor cursor.","The background color of the editor cursor. Allows customizing the color of a character overlapped by a block cursor.","Color of whitespace characters in the editor.","Color of the editor indentation guides.","Color of the active editor indentation guides.","Color of editor line numbers.","Color of editor active line number","Id is deprecated. Use 'editorLineNumber.activeForeground' instead.","Color of editor active line number","Color of the editor rulers.","Foreground color of editor CodeLens","Background color behind matching brackets","Color for matching brackets boxes","Color of the overview ruler border.","Background color of the editor overview ruler. Only used when the minimap is enabled and placed on the right side of the editor.","Background color of the editor gutter. The gutter contains the glyph margins and the line numbers.","Border color of unnecessary (unused) source code in the editor.","Opacity of unnecessary (unused) source code in the editor. For example, \"#000000c0\" will render the code with 75% opacity. For high contrast themes, use the 'editorUnnecessaryCode.border' theme color to underline unnecessary code instead of fading it out.","Overview ruler marker color for range highlights. The color must not be opaque so as not to hide underlying decorations.","Overview ruler marker color for errors.","Overview ruler marker color for warnings.","Overview ruler marker color for infos."], +"vs/editor/contrib/anchorSelect/anchorSelect":["Selection Anchor","Anchor set at {0}:{1}","Set Selection Anchor","Go to Selection Anchor","Select from Anchor to Cursor","Cancel Selection Anchor"],"vs/editor/contrib/bracketMatching/bracketMatching":["Overview ruler marker color for matching brackets.","Go to Bracket","Select to Bracket","Go to &&Bracket"],"vs/editor/contrib/caretOperations/caretOperations":["Move Selected Text Left","Move Selected Text Right"],"vs/editor/contrib/caretOperations/transpose":["Transpose Letters"],"vs/editor/contrib/clipboard/clipboard":["Cu&&t","Cut","Cut","&&Copy","Copy","Copy","&&Paste","Paste","Paste","Copy With Syntax Highlighting"], +"vs/editor/contrib/codeAction/codeActionCommands":["Kind of the code action to run.","Controls when the returned actions are applied.","Always apply the first returned code action.","Apply the first returned code action if it is the only one.","Do not apply the returned code actions.","Controls if only preferred code actions should be returned.","An unknown error occurred while applying the code action","Quick Fix...","No code actions available","No preferred code actions for '{0}' available","No code actions for '{0}' available","No preferred code actions available","No code actions available","Refactor...","No preferred refactorings for '{0}' available","No refactorings for '{0}' available","No preferred refactorings available","No refactorings available","Source Action...","No preferred source actions for '{0}' available","No source actions for '{0}' available","No preferred source actions available","No source actions available","Organize Imports","No organize imports action available","Fix All","No fix all action available","Auto Fix...","No auto fixes available"], +"vs/editor/contrib/codeAction/lightBulbWidget":["Show Fixes. Preferred Fix Available ({0})","Show Fixes ({0})","Show Fixes"],"vs/editor/contrib/codelens/codelensController":["Show CodeLens Commands For Current Line"],"vs/editor/contrib/comment/comment":["Toggle Line Comment","&&Toggle Line Comment","Add Line Comment","Remove Line Comment","Toggle Block Comment","Toggle &&Block Comment"],"vs/editor/contrib/contextmenu/contextmenu":["Show Editor Context Menu"],"vs/editor/contrib/cursorUndo/cursorUndo":["Cursor Undo","Cursor Redo"], +"vs/editor/contrib/documentSymbols/outlineTree":["The foreground color for array symbols. These symbols appear in the outline, breadcrumb, and suggest widget.","The foreground color for boolean symbols. These symbols appear in the outline, breadcrumb, and suggest widget.","The foreground color for class symbols. These symbols appear in the outline, breadcrumb, and suggest widget.","The foreground color for color symbols. These symbols appear in the outline, breadcrumb, and suggest widget.","The foreground color for constant symbols. These symbols appear in the outline, breadcrumb, and suggest widget.","The foreground color for constructor symbols. These symbols appear in the outline, breadcrumb, and suggest widget.","The foreground color for enumerator symbols. These symbols appear in the outline, breadcrumb, and suggest widget.","The foreground color for enumerator member symbols. These symbols appear in the outline, breadcrumb, and suggest widget.","The foreground color for event symbols. These symbols appear in the outline, breadcrumb, and suggest widget.","The foreground color for field symbols. These symbols appear in the outline, breadcrumb, and suggest widget.","The foreground color for file symbols. These symbols appear in the outline, breadcrumb, and suggest widget.","The foreground color for folder symbols. These symbols appear in the outline, breadcrumb, and suggest widget.","The foreground color for function symbols. These symbols appear in the outline, breadcrumb, and suggest widget.","The foreground color for interface symbols. These symbols appear in the outline, breadcrumb, and suggest widget.","The foreground color for key symbols. These symbols appear in the outline, breadcrumb, and suggest widget.","The foreground color for keyword symbols. These symbols appear in the outline, breadcrumb, and suggest widget.","The foreground color for method symbols. These symbols appear in the outline, breadcrumb, and suggest widget.","The foreground color for module symbols. These symbols appear in the outline, breadcrumb, and suggest widget.","The foreground color for namespace symbols. These symbols appear in the outline, breadcrumb, and suggest widget.","The foreground color for null symbols. These symbols appear in the outline, breadcrumb, and suggest widget.","The foreground color for number symbols. These symbols appear in the outline, breadcrumb, and suggest widget.","The foreground color for object symbols. These symbols appear in the outline, breadcrumb, and suggest widget.","The foreground color for operator symbols. These symbols appear in the outline, breadcrumb, and suggest widget.","The foreground color for package symbols. These symbols appear in the outline, breadcrumb, and suggest widget.","The foreground color for property symbols. These symbols appear in the outline, breadcrumb, and suggest widget.","The foreground color for reference symbols. These symbols appear in the outline, breadcrumb, and suggest widget.","The foreground color for snippet symbols. These symbols appear in the outline, breadcrumb, and suggest widget.","The foreground color for string symbols. These symbols appear in the outline, breadcrumb, and suggest widget.","The foreground color for struct symbols. These symbols appear in the outline, breadcrumb, and suggest widget.","The foreground color for text symbols. These symbols appear in the outline, breadcrumb, and suggest widget.","The foreground color for type parameter symbols. These symbols appear in the outline, breadcrumb, and suggest widget.","The foreground color for unit symbols. These symbols appear in the outline, breadcrumb, and suggest widget.","The foreground color for variable symbols. These symbols appear in the outline, breadcrumb, and suggest widget."], +"vs/editor/contrib/find/findController":["Find","&&Find","Find With Selection","Find Next","Find Next","Find Previous","Find Previous","Find Next Selection","Find Previous Selection","Replace","&&Replace"],"vs/editor/contrib/find/findWidget":["Find","Find","Previous match","Next match","Find in selection","Close","Replace","Replace","Replace","Replace All","Toggle Replace mode","Only the first {0} results are highlighted, but all find operations work on the entire text.","{0} of {1}","No results","{0} found","{0} found for '{1}'","{0} found for '{1}', at {2}","{0} found for '{1}'","Ctrl+Enter now inserts line break instead of replacing all. You can modify the keybinding for editor.action.replaceAll to override this behavior."], +"vs/editor/contrib/folding/folding":["Unfold","Unfold Recursively","Fold","Toggle Fold","Fold Recursively","Fold All Block Comments","Fold All Regions","Unfold All Regions","Fold All","Unfold All","Fold Level {0}","Background color behind folded ranges. The color must not be opaque so as not to hide underlying decorations.","Color of the folding control in the editor gutter."],"vs/editor/contrib/fontZoom/fontZoom":["Editor Font Zoom In","Editor Font Zoom Out","Editor Font Zoom Reset"],"vs/editor/contrib/format/format":["Made 1 formatting edit on line {0}","Made {0} formatting edits on line {1}","Made 1 formatting edit between lines {0} and {1}","Made {0} formatting edits between lines {1} and {2}"],"vs/editor/contrib/format/formatActions":["Format Document","Format Selection"], +"vs/editor/contrib/gotoError/gotoError":["Go to Next Problem (Error, Warning, Info)","Go to Previous Problem (Error, Warning, Info)","Go to Next Problem in Files (Error, Warning, Info)","Next &&Problem","Go to Previous Problem in Files (Error, Warning, Info)","Previous &&Problem"],"vs/editor/contrib/gotoError/gotoErrorWidget":["Error","Warning","Info","Hint","{0} at {1}. ","{0} of {1} problems","{0} of {1} problem","Editor marker navigation widget error color.","Editor marker navigation widget warning color.","Editor marker navigation widget info color.","Editor marker navigation widget background."], +"vs/editor/contrib/gotoSymbol/goToCommands":["Peek","Definitions","No definition found for '{0}'","No definition found","Go to Definition","Go to &&Definition","Open Definition to the Side","Peek Definition","Declarations","No declaration found for '{0}'","No declaration found","Go to Declaration","Go to &&Declaration","No declaration found for '{0}'","No declaration found","Peek Declaration","Type Definitions","No type definition found for '{0}'","No type definition found","Go to Type Definition","Go to &&Type Definition","Peek Type Definition","Implementations","No implementation found for '{0}'","No implementation found","Go to Implementations","Go to &&Implementations","Peek Implementations","No references found for '{0}'","No references found","Go to References","Go to &&References","References","Peek References","References","Go To Any Symbol","Locations","No results for '{0}'","References"],"vs/editor/contrib/gotoSymbol/link/goToDefinitionAtPosition":["Click to show {0} definitions."], +"vs/editor/contrib/gotoSymbol/peek/referencesController":["Loading...","{0} ({1})"],"vs/editor/contrib/gotoSymbol/peek/referencesTree":["{0} references","{0} reference","References"],"vs/editor/contrib/gotoSymbol/peek/referencesWidget":["no preview available","No results","References"],"vs/editor/contrib/gotoSymbol/referencesModel":["symbol in {0} on line {1} at column {2}","1 symbol in {0}, full path {1}","{0} symbols in {1}, full path {2}","No results found","Found 1 symbol in {0}","Found {0} symbols in {1}","Found {0} symbols in {1} files"],"vs/editor/contrib/gotoSymbol/symbolNavigation":["Symbol {0} of {1}, {2} for next","Symbol {0} of {1}"],"vs/editor/contrib/hover/hover":["Show Hover","Show Definition Preview Hover"],"vs/editor/contrib/hover/modesContentHover":["Loading...","Peek Problem","Checking for quick fixes...","No quick fixes available","Quick Fix..."],"vs/editor/contrib/inPlaceReplace/inPlaceReplace":["Replace with Previous Value","Replace with Next Value"], +"vs/editor/contrib/indentation/indentation":["Convert Indentation to Spaces","Convert Indentation to Tabs","Configured Tab Size","Select Tab Size for Current File","Indent Using Tabs","Indent Using Spaces","Detect Indentation from Content","Reindent Lines","Reindent Selected Lines"],"vs/editor/contrib/linesOperations/linesOperations":["Copy Line Up","&&Copy Line Up","Copy Line Down","Co&&py Line Down","Duplicate Selection","&&Duplicate Selection","Move Line Up","Mo&&ve Line Up","Move Line Down","Move &&Line Down","Sort Lines Ascending","Sort Lines Descending","Trim Trailing Whitespace","Delete Line","Indent Line","Outdent Line","Insert Line Above","Insert Line Below","Delete All Left","Delete All Right","Join Lines","Transpose characters around the cursor","Transform to Uppercase","Transform to Lowercase","Transform to Title Case"], +"vs/editor/contrib/links/links":["Execute command","Follow link","cmd + click","ctrl + click","option + click","alt + click","Failed to open this link because it is not well-formed: {0}","Failed to open this link because its target is missing.","Open Link"],"vs/editor/contrib/message/messageController":["Cannot edit in read-only editor"],"vs/editor/contrib/multicursor/multicursor":["Add Cursor Above","&&Add Cursor Above","Add Cursor Below","A&&dd Cursor Below","Add Cursors to Line Ends","Add C&&ursors to Line Ends","Add Cursors To Bottom","Add Cursors To Top","Add Selection To Next Find Match","Add &&Next Occurrence","Add Selection To Previous Find Match","Add P&&revious Occurrence","Move Last Selection To Next Find Match","Move Last Selection To Previous Find Match","Select All Occurrences of Find Match","Select All &&Occurrences","Change All Occurrences"],"vs/editor/contrib/parameterHints/parameterHints":["Trigger Parameter Hints"],"vs/editor/contrib/parameterHints/parameterHintsWidget":["{0}, hint"], +"vs/editor/contrib/peekView/peekView":["Close","Background color of the peek view title area.","Color of the peek view title.","Color of the peek view title info.","Color of the peek view borders and arrow.","Background color of the peek view result list.","Foreground color for line nodes in the peek view result list.","Foreground color for file nodes in the peek view result list.","Background color of the selected entry in the peek view result list.","Foreground color of the selected entry in the peek view result list.","Background color of the peek view editor.","Background color of the gutter in the peek view editor.","Match highlight color in the peek view result list.","Match highlight color in the peek view editor.","Match highlight border in the peek view editor."], +"vs/editor/contrib/quickAccess/gotoLineQuickAccess":["Open a text editor first to go to a line.","Go to line {0} and column {1}.","Go to line {0}.","Current Line: {0}, Character: {1}. Type a line number between 1 and {2} to navigate to.","Current Line: {0}, Character: {1}. Type a line number to navigate to."], +"vs/editor/contrib/quickAccess/gotoSymbolQuickAccess":["To go to a symbol, first open a text editor with symbol information.","The active text editor does not provide symbol information.","No matching editor symbols","No editor symbols","Open to the Side","Open to the Bottom","symbols ({0})","properties ({0})","methods ({0})","functions ({0})","constructors ({0})","variables ({0})","classes ({0})","structs ({0})","events ({0})","operators ({0})","interfaces ({0})","namespaces ({0})","packages ({0})","type parameters ({0})","modules ({0})","properties ({0})","enumerations ({0})","enumeration members ({0})","strings ({0})","files ({0})","arrays ({0})","numbers ({0})","booleans ({0})","objects ({0})","keys ({0})","fields ({0})","constants ({0})"],"vs/editor/contrib/rename/onTypeRename":["On Type Rename Symbol","Background color when the editor auto renames on type."], +"vs/editor/contrib/rename/rename":["No result.","An unknown error occurred while resolving rename location","Renaming '{0}'","Renaming {0}","Successfully renamed '{0}' to '{1}'. Summary: {2}","Rename failed to apply edits","Rename failed to compute edits","Rename Symbol","Enable/disable the ability to preview changes before renaming"],"vs/editor/contrib/rename/renameInputField":["Rename input. Type new name and press Enter to commit.","{0} to Rename, {1} to Preview"],"vs/editor/contrib/smartSelect/smartSelect":["Expand Selection","&&Expand Selection","Shrink Selection","&&Shrink Selection"],"vs/editor/contrib/snippet/snippetVariables":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sun","Mon","Tue","Wed","Thu","Fri","Sat","January","February","March","April","May","June","July","August","September","October","November","December","Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"], +"vs/editor/contrib/suggest/suggestController":["Accepting '{0}' made {1} additional edits","Trigger Suggest","{0} to insert","{0} to insert","{0} to replace","{0} to replace","{0} to insert","show less","show more"],"vs/editor/contrib/suggest/suggestWidget":["Background color of the suggest widget.","Border color of the suggest widget.","Foreground color of the suggest widget.","Background color of the selected entry in the suggest widget.","Color of the match highlights in the suggest widget.","Read More ({0})","Read Less ({0})","Loading...","Loading...","No suggestions.","{0}, docs: {1}","Suggest"],"vs/editor/contrib/toggleTabFocusMode/toggleTabFocusMode":["Toggle Tab Key Moves Focus","Pressing Tab will now move focus to the next focusable element","Pressing Tab will now insert the tab character"],"vs/editor/contrib/tokenization/tokenization":["Developer: Force Retokenize"], +"vs/editor/contrib/unusualLineTerminators/unusualLineTerminators":["Unusual Line Terminators","Detected unusual line terminators","This file contains one or more unusual line terminator characters, like Line Separator (LS) or Paragraph Separator (PS).\n\nIt is recommended to remove them from the file. This can be configured via `editor.unusualLineTerminators`.","Fix this file","Ignore problem for this file"], +"vs/editor/contrib/wordHighlighter/wordHighlighter":["Background color of a symbol during read-access, like reading a variable. The color must not be opaque so as not to hide underlying decorations.","Background color of a symbol during write-access, like writing to a variable. The color must not be opaque so as not to hide underlying decorations.","Border color of a symbol during read-access, like reading a variable.","Border color of a symbol during write-access, like writing to a variable.","Overview ruler marker color for symbol highlights. The color must not be opaque so as not to hide underlying decorations.","Overview ruler marker color for write-access symbol highlights. The color must not be opaque so as not to hide underlying decorations.","Go to Next Symbol Highlight","Go to Previous Symbol Highlight","Trigger Symbol Highlight"],"vs/platform/actions/browser/menuEntryActionViewItem":["{0} ({1})"], +"vs/platform/configuration/common/configurationRegistry":["Default Language Configuration Overrides","Configure editor settings to be overridden for a language.","This setting does not support per-language configuration.","Cannot register '{0}'. This matches property pattern '\\\\[.*\\\\]$' for describing language specific editor settings. Use 'configurationDefaults' contribution.","Cannot register '{0}'. This property is already registered."],"vs/platform/keybinding/common/abstractKeybindingService":["({0}) was pressed. Waiting for second key of chord...","The key combination ({0}, {1}) is not a command."], +"vs/platform/list/browser/listService":["Workbench","Maps to `Control` on Windows and Linux and to `Command` on macOS.","Maps to `Alt` on Windows and Linux and to `Option` on macOS.","The modifier to be used to add an item in trees and lists to a multi-selection with the mouse (for example in the explorer, open editors and scm view). The 'Open to Side' mouse gestures - if supported - will adapt such that they do not conflict with the multiselect modifier.","Controls how to open items in trees and lists using the mouse (if supported). For parents with children in trees, this setting will control if a single click expands the parent or a double click. Note that some trees and lists might choose to ignore this setting if it is not applicable. ","Controls whether lists and trees support horizontal scrolling in the workbench. Warning: turning on this setting has a performance implication.","Controls tree indentation in pixels.","Controls whether the tree should render indent guides.","Controls whether lists and trees have smooth scrolling.","Simple keyboard navigation focuses elements which match the keyboard input. Matching is done only on prefixes.","Highlight keyboard navigation highlights elements which match the keyboard input. Further up and down navigation will traverse only the highlighted elements.","Filter keyboard navigation will filter out and hide all the elements which do not match the keyboard input.","Controls the keyboard navigation style for lists and trees in the workbench. Can be simple, highlight and filter.","Controls whether keyboard navigation in lists and trees is automatically triggered simply by typing. If set to `false`, keyboard navigation is only triggered when executing the `list.toggleKeyboardNavigation` command, for which you can assign a keyboard shortcut."], +"vs/platform/markers/common/markers":["Error","Warning","Info"],"vs/platform/quickinput/browser/commandsQuickAccess":["{0}, {1}","recently used","other commands","Command '{0}' resulted in an error ({1})"],"vs/platform/quickinput/browser/helpQuickAccess":["global commands","editor commands","{0}, {1}"], +"vs/platform/theme/common/colorRegistry":["Overall foreground color. This color is only used if not overridden by a component.","Overall foreground color for error messages. This color is only used if not overridden by a component.","The default color for icons in the workbench.","Overall border color for focused elements. This color is only used if not overridden by a component.","An extra border around elements to separate them from others for greater contrast.","An extra border around active elements to separate them from others for greater contrast.","Foreground color for links in text.","Background color for code blocks in text.","Shadow color of widgets such as find/replace inside the editor.","Input box background.","Input box foreground.","Input box border.","Border color of activated options in input fields.","Background color of activated options in input fields.","Foreground color of activated options in input fields.","Input validation background color for information severity.","Input validation foreground color for information severity.","Input validation border color for information severity.","Input validation background color for warning severity.","Input validation foreground color for warning severity.","Input validation border color for warning severity.","Input validation background color for error severity.","Input validation foreground color for error severity.","Input validation border color for error severity.","Dropdown background.","Dropdown foreground.","Button foreground color.","Button background color.","Button background color when hovering.","Badge background color. Badges are small information labels, e.g. for search results count.","Badge foreground color. Badges are small information labels, e.g. for search results count.","Scrollbar shadow to indicate that the view is scrolled.","Scrollbar slider background color.","Scrollbar slider background color when hovering.","Scrollbar slider background color when clicked on.","Background color of the progress bar that can show for long running operations.","Foreground color of error squigglies in the editor.","Border color of error boxes in the editor.","Foreground color of warning squigglies in the editor.","Border color of warning boxes in the editor.","Foreground color of info squigglies in the editor.","Border color of info boxes in the editor.","Foreground color of hint squigglies in the editor.","Border color of hint boxes in the editor.","Editor background color.","Editor default foreground color.","Background color of editor widgets, such as find/replace.","Foreground color of editor widgets, such as find/replace.","Border color of editor widgets. The color is only used if the widget chooses to have a border and if the color is not overridden by a widget.","Border color of the resize bar of editor widgets. The color is only used if the widget chooses to have a resize border and if the color is not overridden by a widget.","Quick picker background color. The quick picker widget is the container for pickers like the command palette.","Quick picker foreground color. The quick picker widget is the container for pickers like the command palette.","Quick picker title background color. The quick picker widget is the container for pickers like the command palette.","Quick picker color for grouping labels.","Quick picker color for grouping borders.","Color of the editor selection.","Color of the selected text for high contrast.","Color of the selection in an inactive editor. The color must not be opaque so as not to hide underlying decorations.","Color for regions with the same content as the selection. The color must not be opaque so as not to hide underlying decorations.","Border color for regions with the same content as the selection.","Color of the current search match.","Color of the other search matches. The color must not be opaque so as not to hide underlying decorations.","Color of the range limiting the search. The color must not be opaque so as not to hide underlying decorations.","Border color of the current search match.","Border color of the other search matches.","Border color of the range limiting the search. The color must not be opaque so as not to hide underlying decorations.","Highlight below the word for which a hover is shown. The color must not be opaque so as not to hide underlying decorations.","Background color of the editor hover.","Foreground color of the editor hover.","Border color of the editor hover.","Background color of the editor hover status bar.","Color of active links.","The color used for the lightbulb actions icon.","The color used for the lightbulb auto fix actions icon.","Background color for text that got inserted. The color must not be opaque so as not to hide underlying decorations.","Background color for text that got removed. The color must not be opaque so as not to hide underlying decorations.","Outline color for the text that got inserted.","Outline color for text that got removed.","Border color between the two text editors.","Color of the diff editor's diagonal fill. The diagonal fill is used in side-by-side diff views.","List/Tree background color for the focused item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.","List/Tree foreground color for the focused item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.","List/Tree background color for the selected item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.","List/Tree foreground color for the selected item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.","List/Tree background color for the selected item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.","List/Tree foreground color for the selected item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.","List/Tree background color for the focused item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.","List/Tree background when hovering over items using the mouse.","List/Tree foreground when hovering over items using the mouse.","List/Tree drag and drop background when moving items around using the mouse.","List/Tree foreground color of the match highlights when searching inside the list/tree.","Background color of the type filter widget in lists and trees.","Outline color of the type filter widget in lists and trees.","Outline color of the type filter widget in lists and trees, when there are no matches.","Tree stroke color for the indentation guides.","Border color of menus.","Foreground color of menu items.","Background color of menu items.","Foreground color of the selected menu item in menus.","Background color of the selected menu item in menus.","Border color of the selected menu item in menus.","Color of a separator menu item in menus.","Highlight background color of a snippet tabstop.","Highlight border color of a snippet tabstop.","Highlight background color of the final tabstop of a snippet.","Highlight border color of the final tabstop of a snippet.","Overview ruler marker color for find matches. The color must not be opaque so as not to hide underlying decorations.","Overview ruler marker color for selection highlights. The color must not be opaque so as not to hide underlying decorations.","Minimap marker color for find matches.","Minimap marker color for the editor selection.","Minimap marker color for errors.","Minimap marker color for warnings.","Minimap background color.","Minimap slider background color.","Minimap slider background color when hovering.","Minimap slider background color when clicked on.","The color used for the problems error icon.","The color used for the problems warning icon.","The color used for the problems info icon."], +"vs/platform/undoRedo/common/undoRedoService":["The following files have been closed and modified on disk: {0}.","The following files have been modified in an incompatible way: {0}.","Could not undo '{0}' across all files. {1}","Could not undo '{0}' across all files. {1}","Could not undo '{0}' across all files because changes were made to {1}","Could not undo '{0}' across all files because there is already an undo or redo operation running on {1}","Could not undo '{0}' across all files because an undo or redo operation occurred in the meantime","Would you like to undo '{0}' across all files?","Undo in {0} Files","Undo this File","Cancel","Could not undo '{0}' because there is already an undo or redo operation running.","Could not redo '{0}' across all files. {1}","Could not redo '{0}' across all files. {1}","Could not redo '{0}' across all files because changes were made to {1}","Could not redo '{0}' across all files because there is already an undo or redo operation running on {1}","Could not redo '{0}' across all files because an undo or redo operation occurred in the meantime","Could not redo '{0}' because there is already an undo or redo operation running."] +}); //# sourceMappingURL=../../../min-maps/vs/editor/editor.main.nls.js.map \ No newline at end of file diff --git a/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/editor/editor.main.nls.ko.js b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/editor/editor.main.nls.ko.js index 1b9f825..84c8e7f 100644 --- a/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/editor/editor.main.nls.ko.js +++ b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/editor/editor.main.nls.ko.js @@ -1,8 +1,31 @@ /*!----------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. - * Version: 0.9.0(630109944f54bcdfc2dbaaff5f090c0843af6c66) + * Version: 0.21.2(67b5a8116f3c0bace36b180e524e05bb750a16d8) * Released under the MIT license * https://github.com/Microsoft/vscode/blob/master/LICENSE.txt *-----------------------------------------------------------*/ -define("vs/editor/editor.main.nls.ko",{"vs/base/browser/ui/actionbar/actionbar":["{0}({1})"],"vs/base/browser/ui/aria/aria":["{0}(다시 발생함)"],"vs/base/browser/ui/findinput/findInput":["입력"],"vs/base/browser/ui/findinput/findInputCheckboxes":["대/소문자 구분","단어 단위로","정규식 사용"],"vs/base/browser/ui/inputbox/inputBox":["오류: {0}","경고: {0}","정보: {0}"],"vs/base/common/keybindingLabels":["Ctrl","","Alt","Windows","컨트롤","","Alt","명령","컨트롤","","Alt","Windows"],"vs/base/common/severity":["오류","경고","정보"],"vs/base/parts/quickopen/browser/quickOpenModel":["{0}, 선택기","선택기"],"vs/base/parts/quickopen/browser/quickOpenWidget":["빠른 선택기입니다. 결과의 범위를 축소하려면 입력합니다.","빠른 선택기"],"vs/base/parts/tree/browser/treeDefaults":["축소"],"vs/editor/browser/widget/diffReview":["닫기","Difference {0} of {1}: original {2}, {3} lines, modified {4}, {5} lines","blank","original {0}, modified {1}: {2}","+ modified {0}: {1}","- original {0}: {1}","Go to Next Difference","Go to Previous Difference"],"vs/editor/common/config/commonEditorConfig":["편집기","글꼴 패밀리를 제어합니다.","글꼴 두께를 제어합니다.","글꼴 크기(픽셀)를 제어합니다.","줄 높이를 제어합니다. fontSize의 lineHeight를 계산하려면 0을 사용합니다.","글자 간격을 픽셀 단위로 조정합니다.","줄 번호의 표시 여부를 제어합니다. 가능한 값은 'on', 'off', 'relative'입니다. 'relative'는 현재 커서 위치에서 줄 수를 표시합니다.","세로 눈금자를 표시할 열","단어 관련 탐색 또는 작업을 수행할 때 단어 구분 기호로 사용되는 문자입니다.","탭 한 개에 해당하는 공백 수입니다. `editor.detectIndentation`이 켜져 있는 경우 이 설정은 파일 콘텐츠에 따라 재정의됩니다.","'number'가 필요합니다. 값 \"auto\"는 `editor.detectIndentation` 설정에 의해 바뀌었습니다."," 키를 누를 때 공백을 삽입합니다. `editor.detectIndentation`이 켜져 있는 경우 이 설정은 파일 콘텐츠에 따라 재정의됩니다.","'boolean'이 필요합니다. 값 \"auto\"는 `editor.detectIndentation` 설정에 의해 바뀌었습니다.","파일을 열면 파일 콘텐츠를 기반으로 하여 'editor.tabSize'와 'editor.insertSpaces'가 검색됩니다.","선택 항목의 모서리를 둥글게 할지 여부를 제어합니다.","편집기에서 마지막 줄 이후로 스크롤할지 여부를 제어합니다.","미니맵 표시 여부를 제어합니다.","Controls whether the minimap slider is automatically hidden.","줄의 실제 문자(색 블록 아님) 렌더링","최대 특정 수의 열을 렌더링하도록 미니맵의 너비를 제한합니다.","편집기 선택에서 Find Widget의 검색 문자열을 시딩할지 설정합니다.","편집기에서 여러 글자 또는 행을 선택했을 때 Find in Selection 플래그를 켤지 설정합니다.","줄이 바뀌지 않습니다.","뷰포트 너비에서 줄이 바뀝니다.","`editor.wordWrapColumn`에서 줄이 바뀝니다.","뷰포트의 최소값 및 `editor.wordWrapColumn`에서 줄이 바뀝니다.","줄 바꿈 여부를 제어합니다. 다음 중 하나일 수 있습니다.\n - 'off' (줄 바꿈 사용 안 함),\n - 'on' (뷰포트 줄 바꿈),\n - 'wordWrapColumn' (`editor.wordWrapColumn`에서 줄 바꿈) 또는\n - 'bounded' (뷰포트의 최소값 및 `editor.wordWrapColumn`에서 줄 바꿈).","`editor.wordWrap`이 'wordWrapColumn' 또는 'bounded'인 경우 편집기의 열 줄 바꿈을 제어합니다.","줄 바꿈 행의 들여쓰기를 제어합니다. 'none', 'same' 또는 'indent' 중 하나일 수 있습니다.","마우스 휠 스크롤 이벤트의 `deltaX` 및 `deltaY`에서 사용할 승수","Windows와 Linux의 'Control'을 OSX의 'Command'로 매핑합니다.","Windows와 Linux의 'Alt'를 OSX의 'Option'으로 매핑합니다.","마우스로 여러 커서를 추가할 때 사용할 수정자입니다. `ctrlCmd`는 Windows와 Linux에서 `Control`로 매핑되고 OSX에서 `Command`로 매핑됩니다. Go To Definition 및 Open Link 마우스 제스처가 멀티커서 수정자와 충돌하지 않도록 조정됩니다.","문자열 내에서 빠른 제안을 사용합니다.","주석 내에서 빠른 제안을 사용합니다.","문자열 및 주석 외부에서 빠른 제안을 사용합니다.","입력하는 동안 제안을 자동으로 표시할지 여부를 제어합니다.","빠른 제안을 표시할 지연 시간(ms)을 제어합니다.","Enables pop-up that shows parameter documentation and type information as you type","괄호를 연 다음에 편집기에서 괄호를 자동으로 닫을지 여부를 제어합니다.","입력 후 편집기에서 자동으로 줄의 서식을 지정할지 여부를 제어합니다.","붙여넣은 콘텐츠의 서식을 편집기에서 자동으로 지정할지 여부를 제어합니다. 포맷터는 반드시 사용할 수 있어야 하며 문서에서 범위의 서식을 지정할 수 있어야 합니다.","Controls if the editor should automatically adjust the indentation when users type, paste or move lines. Indentation rules of the language must be available. ","트리거 문자를 입력할 때 제안을 자동으로 표시할지 여부를 제어합니다.","'Tab' 키 외에 'Enter' 키에 대한 제안도 허용할지를 제어합니다. 새 줄을 삽입하는 동작과 제안을 허용하는 동작 간의 모호함을 없앨 수 있습니다.","커밋 문자에 대한 제안을 허용할지를 제어합니다. 예를 들어 JavaScript에서는 세미콜론(';')이 제안을 허용하고 해당 문자를 입력하는 커밋 문자일 수 있습니다.","코드 조각이 다른 추천과 함께 표시되는지 여부 및 정렬 방법을 제어합니다.","선택 영역 없이 현재 줄 복사 여부를 제어합니다.","문서 내 단어를 기반으로 완성을 계산할지 여부를 제어합니다.","제안 위젯의 글꼴 크기","제안 위젯의 줄 높이","편집기에서 선택 항목과 유사한 일치 항목을 강조 표시할지 여부를 제어합니다.","편집기에서 의미 체계 기호 항목을 강조 표시할지 여부를 제어합니다.","개요 눈금자에서 동일한 위치에 표시될 수 있는 장식 수를 제어합니다.","개요 눈금자 주위에 테두리를 그릴지 여부를 제어합니다.","커서 애니메이션 스타일을 제어합니다. 가능한 값은 'blink', 'smooth', 'phase', 'expand' 및 'solid'입니다.","마우스 휠을 사용할 때 Ctrl 키를 누르고 있으면 편집기의 글꼴 확대/축소","커서 스타일을 제어합니다. 허용되는 값은 '블록', '블록-윤곽', '줄', '줄-가늘게', '밑줄' 및 '밑줄-가늘게'입니다.","글꼴 합자 사용","커서가 개요 눈금자에서 가려져야 하는지 여부를 제어합니다.","편집기에서 공백 문자를 렌더링하는 방법을 제어합니다. 가능한 값은 'none', 'boundary' 및 'all'입니다. 'boundary' 옵션은 단어 사이의 한 칸 공백을 렌더링하지 않습니다.","편집기에서 제어 문자를 렌더링할지를 제어합니다.","편집기에서 들여쓰기 가이드를 렌더링할지를 제어합니다.","편집기가 현재 줄 강조 표시를 렌더링하는 방식을 제어합니다. 가능한 값은 'none', 'gutter', 'line' 및 'all'입니다.","편집기에서 코드 필터를 표시하는지 여부를 제어합니다.","편집기에서 코드 접기를 사용할지 여부를 제어합니다.","거터의 폴드 컨트롤을 자동으로 숨길지 결정합니다.","대괄호 중 하나를 선택할 때 일치하는 대괄호를 강조 표시합니다.","편집기에서 세로 문자 모양 여백을 렌더링할지 여부를 제어합니다. 문자 모양 여백은 주로 디버깅에 사용됩니다.","탭 정지 뒤에 공백 삽입 및 삭제","끝에 자동 삽입된 공백 제거","해당 콘텐츠를 두 번 클릭하거나 키를 누르더라도 Peek 편집기를 열린 상태로 유지합니다.","편집기에서 끌어서 놓기로 선택 영역을 이동할 수 있는지 여부를 제어합니다.","편집기가 스크린 리더가 연결되면 플랫폼 API를 사용하여 감지합니다.","편집기가 스크린 리더 사용을 위해 영구적으로 최적화됩니다.","편집기가 스크린 리더 사용을 위해 최적화되지 않습니다.","편집기를 스크린 리더를 위해 최적화된 모드로 실행할지 결정합니다.","Controls whether the editor should detect links and make them clickable","diff 편집기에서 diff를 나란히 표시할지 인라인으로 표시할지 여부를 제어합니다.","diff 편집기에서 선행 공백 또는 후행 공백 변경을 diffs로 표시할지 여부를 제어합니다.","diff 편집기에서 추가/제거된 변경 내용에 대해 +/- 표시기를 표시하는지 여부를 제어합니다.","Linux 주 클립보드의 지원 여부를 제어합니다."],"vs/editor/common/config/editorOptions":["지금은 편집기를 사용할 수 없습니다. Alt+F1을 눌러 옵션을 보세요.","편집기 콘텐츠"],"vs/editor/common/controller/cursor":["명령을 실행하는 동안 예기치 않은 예외가 발생했습니다."],"vs/editor/common/model/textModelWithTokens":["입력을 토큰화하는 동안 모드에서 오류가 발생했습니다."],"vs/editor/common/modes/modesRegistry":["일반 텍스트"],"vs/editor/common/services/bulkEdit":["이러한 파일이 동시에 변경되었습니다. {0}","편집하지 않음","{1}개 파일에서 {0}개 텍스트 편집을 수행함","1개 파일에서 {0}개 텍스트 편집을 수행함"],"vs/editor/common/services/modelServiceImpl":["[{0}]\n{1}","[{0}] {1}"],"vs/editor/common/view/editorColorRegistry":["커서 위치의 줄 강조 표시에 대한 배경색입니다.","커서 위치의 줄 테두리에 대한 배경색입니다.","빠른 열기 및 찾기 기능 등을 통해 강조 표시된 영역의 배경색입니다.","편집기 커서 색입니다.","편집기의 공백 문자 색입니다.","편집기 들여쓰기 안내선 색입니다.","편집기 줄 번호 색입니다.","편집기 눈금의 색상입니다.","편집기 코드 렌즈의 전경색입니다.","일치하는 브래킷 뒤의 배경색입니다.","일치하는 브래킷 박스의 색상","개요 눈금 경계의 색상입니다.","편집기 거터의 배경색입니다. 거터에는 글리프 여백과 행 수가 있습니다.","편집기 내 오류 표시선의 전경색입니다.","편집기 내 오류 표시선의 테두리 색입니다.","편집기 내 경고 표시선의 전경색입니다.","편집기 내 경고 표시선의 테두리 색입니다."],"vs/editor/contrib/bracketMatching/common/bracketMatching":["대괄호로 이동"],"vs/editor/contrib/caretOperations/common/caretOperations":["캐럿을 왼쪽으로 이동","캐럿을 오른쪽으로 이동"],"vs/editor/contrib/caretOperations/common/transpose":["문자 바꾸기"],"vs/editor/contrib/clipboard/browser/clipboard":["잘라내기","복사","붙여넣기","구문을 강조 표시하여 복사"],"vs/editor/contrib/comment/common/comment":["줄 주석 설정/해제","줄 주석 추가","줄 주석 제거","블록 주석 설정/해제"],"vs/editor/contrib/contextmenu/browser/contextmenu":["편집기 상황에 맞는 메뉴 표시"],"vs/editor/contrib/find/browser/findWidget":["찾기","찾기","이전 검색 결과","다음 검색 결과","선택 항목에서 찾기","닫기","바꾸기","바꾸기","바꾸기","모두 바꾸기","바꾸기 모드 설정/해제","처음 999개의 결과가 강조 표시되지만 모든 찾기 작업은 전체 텍스트에 대해 수행됩니다.","{0}/{1}","결과 없음"],"vs/editor/contrib/find/common/findController":["찾기","다음 찾기","이전 찾기","다음 선택 찾기","이전 선택 찾기","바꾸기","다음 일치 항목 찾기에 선택 항목 추가","이전 일치 항목 찾기에 선택 항목 추가","다음 일치 항목 찾기로 마지막 선택 항목 이동","마지막 선택 항목을 이전 일치 항목 찾기로 이동","일치 항목 찾기의 모든 항목 선택","모든 항목 변경"],"vs/editor/contrib/folding/browser/folding":["펼치기","재귀적으로 펼치기","접기","재귀적으로 접기","모두 접기","모두 펼치기","수준 {0} 접기"],"vs/editor/contrib/format/browser/formatActions":["줄 {0}에서 1개 서식 편집을 수행했습니다.","줄 {1}에서 {0}개 서식 편집을 수행했습니다.","줄 {0}과(와) {1} 사이에서 1개 서식 편집을 수행했습니다.","줄 {1}과(와) {2} 사이에서 {0}개 서식 편집을 수행했습니다.","문서 서식","선택 영역 서식"],"vs/editor/contrib/goToDeclaration/browser/goToDeclarationCommands":["'{0}'에 대한 정의를 찾을 수 없습니다.","정의를 찾을 수 없음","– {0} 정의","정의로 이동","측면에서 정의 열기","정의 피킹(Peeking)","'{0}'에 대한 구현을 찾을 수 없습니다.","구현을 찾을 수 없습니다."," – {0} 개 구현","구현으로 이동","구현 미리 보기","'{0}'에 대한 형식 정의를 찾을 수 없습니다.","형식 정의를 찾을 수 없습니다.","– {0} 형식 정의","형식 정의로 이동","형식 정의 미리 보기"],"vs/editor/contrib/goToDeclaration/browser/goToDeclarationMouse":["{0}개 정의를 표시하려면 클릭하세요."],"vs/editor/contrib/gotoError/browser/gotoError":["({0}/{1})","다음 오류 또는 경고로 이동","이전 오류 또는 경고로 이동","편집기 표식 탐색 위젯 오류 색입니다.","편집기 표식 탐색 위젯 경고 색입니다.","편집기 표식 탐색 위젯 배경입니다."],"vs/editor/contrib/hover/browser/hover":["가리키기 표시"],"vs/editor/contrib/hover/browser/modesContentHover":["로드 중..."],"vs/editor/contrib/inPlaceReplace/common/inPlaceReplace":["이전 값으로 바꾸기","다음 값으로 바꾸기"],"vs/editor/contrib/linesOperations/common/linesOperations":["위에 줄 복사","아래에 줄 복사","줄 위로 이동","줄 아래로 이동","줄을 오름차순 정렬","줄을 내림차순으로 정렬","후행 공백 자르기","줄 삭제","줄 들여쓰기","줄 내어쓰기","위에 줄 삽입","아래에 줄 삽입","왼쪽 모두 삭제","우측에 있는 항목 삭제","줄 연결","커서 주위 문자 바꾸기","대문자로 변환","소문자로 변환"],"vs/editor/contrib/links/browser/links":["Cmd 키를 누르고 클릭하여 링크로 이동","Ctrl 키를 누르고 클릭하여 링크로 이동","Alt 키를 누르고 클릭하여 링크로 이동","죄송합니다. 이 링크는 형식이 올바르지 않으므로 열지 못했습니다. {0}","죄송합니다. 대상이 없으므로 이 링크를 열지 못했습니다.","링크 열기"],"vs/editor/contrib/multicursor/common/multicursor":["위에 커서 추가","아래에 커서 추가","줄 끝에 커서 추가"],"vs/editor/contrib/parameterHints/browser/parameterHints":["매개 변수 힌트 트리거"],"vs/editor/contrib/parameterHints/browser/parameterHintsWidget":["{0}, 힌트"],"vs/editor/contrib/quickFix/browser/quickFixCommands":["수정 사항 표시({0})","수정 사항 표시","빠른 수정"],"vs/editor/contrib/referenceSearch/browser/referenceSearch":["–참조 {0}개","모든 참조 찾기"],"vs/editor/contrib/referenceSearch/browser/referencesController":["로드 중..."],"vs/editor/contrib/referenceSearch/browser/referencesModel":["{2}열, {1}줄, {0}의 기호","1 symbol in {0}, full path {1}","{0} symbols in {1}, full path {2}","결과 없음","{0}에서 기호 1개를 찾았습니다.","{1}에서 기호 {0}개를 찾았습니다.","{1}개 파일에서 기호 {0}개를 찾았습니다."],"vs/editor/contrib/referenceSearch/browser/referencesWidget":["파일을 확인하지 못했습니다.","참조 {0}개","참조 {0}개","미리 보기를 사용할 수 없음","참조","결과 없음","참조","Peek 뷰 제목 영역의 배경색입니다.","Peek 뷰 제목 색입니다.","Peek 뷰 제목 정보 색입니다.","Peek 뷰 테두리 및 화살표 색입니다.","Peek 뷰 결과 목록의 배경색입니다.","Peek 뷰 결과 목록에서 라인 노드의 전경색입니다.","Peek 뷰 결과 목록에서 파일 노드의 전경색입니다.","Peek 뷰 결과 목록에서 선택된 항목의 배경색입니다.","Peek 뷰 결과 목록에서 선택된 항목의 전경색입니다.","Peek 뷰 편집기의 배경색입니다.","Peek 뷰 편집기의 거터 배경색입니다.","Peek 뷰 결과 목록의 일치 항목 강조 표시 색입니다.","Peek 뷰 편집기의 일치 항목 강조 표시 색입니다."],"vs/editor/contrib/rename/browser/rename":["결과가 없습니다.","'{0}'을(를) '{1}'(으)로 이름을 변경했습니다. 요약: {2}","죄송합니다. 이름 바꾸기를 실행하지 못했습니다.","기호 이름 바꾸기"],"vs/editor/contrib/rename/browser/renameInputField":["입력 이름을 바꾸세요. 새 이름을 입력한 다음 [Enter] 키를 눌러 커밋하세요."],"vs/editor/contrib/smartSelect/common/smartSelect":["선택 확장","선택 축소"],"vs/editor/contrib/suggest/browser/suggestController":["'{0}'을(를) 적용하여 다음 텍스트가 삽입되었습니다.\n {1}","제안 항목 트리거"],"vs/editor/contrib/suggest/browser/suggestWidget":["제안 위젯의 배경색입니다.","제안 위젯의 테두리 색입니다.","제안 위젯의 전경색입니다.","제한 위젯에서 선택된 항목의 배경색입니다.","제안 위젯의 일치 항목 강조 표시 색입니다.","자세히 알아보기...{0}","{0}, 제안, 세부 정보 있음","{0}, 제안","간단히 보기...{0}","로드 중...","제안 항목이 없습니다.","{0}, 수락됨","{0}, 제안, 세부 정보 있음","{0}, 제안"],"vs/editor/contrib/toggleTabFocusMode/common/toggleTabFocusMode":[" 키로 포커스 이동 설정/해제"],"vs/editor/contrib/wordHighlighter/common/wordHighlighter":["변수 읽기와 같은 읽기 액세스 중 기호의 배경색입니다.","변수에 쓰기와 같은 쓰기 액세스 중 기호의 배경색입니다."],"vs/editor/contrib/zoneWidget/browser/peekViewWidget":["닫기"],"vs/editor/standalone/browser/inspectTokens/inspectTokens":["Developer: Inspect Tokens"],"vs/editor/standalone/browser/quickOpen/gotoLine":["Go to line {0} and character {1}","Go to line {0}","Type a line number between 1 and {0} to navigate to","Type a character between 1 and {0} to navigate to","Go to line {0}","Type a line number, followed by an optional colon and a character number to navigate to","Go to Line..."],"vs/editor/standalone/browser/quickOpen/quickCommand":["{0}, commands","Type the name of an action you want to execute","Command Palette"],"vs/editor/standalone/browser/quickOpen/quickOutline":["{0}, symbols","Type the name of an identifier you wish to navigate to","Go to Symbol...","symbols ({0})","modules ({0})","classes ({0})","interfaces ({0})","methods ({0})","functions ({0})","properties ({0})","variables ({0})","variables ({0})","constructors ({0})","calls ({0})"],"vs/editor/standalone/browser/standaloneCodeEditor":["Editor content","Press Ctrl+F1 for Accessibility Options.","Press Alt+F1 for Accessibility Options."],"vs/editor/standalone/browser/toggleHighContrast/toggleHighContrast":["Toggle High Contrast Theme"],"vs/platform/configuration/common/configurationRegistry":["기본 구성 재정의","{0} 언어에 대해 재정의할 편집기 설정을 구성합니다.","언어에 대해 재정의할 편집기 설정을 구성합니다.","'{0}'을(를) 등록할 수 없습니다. 이는 언어별 편집기 설정을 설명하는 속성 패턴인 '\\\\[.*\\\\]$'과(와) 일치합니다. 'configurationDefaults' 기여를 사용하세요.","'{0}'을(를) 등록할 수 없습니다. 이 속성은 이미 등록되어 있습니다."],"vs/platform/keybinding/common/abstractKeybindingService":["({0})을(를) 눌렀습니다. 둘째 키는 잠시 기다렸다가 누르세요.","키 조합({0}, {1})은 명령이 아닙니다."],"vs/platform/message/common/message":["닫기","나중에","취소"],"vs/platform/theme/common/colorRegistry":["잘못된 색 형식입니다. #RGB, #RGBA, #RRGGBB 또는 #RRGGBBAA를 사용하세요.","워크벤치에서 사용되는 색입니다.","전체 전경색입니다. 이 색은 구성 요소에서 재정의하지 않은 경우에만 사용됩니다.","오류 메시지에 대한 전체 전경색입니다. 이 색은 구성 요소에서 재정의하지 않은 경우에만 사용됩니다.","레이블과 같이 추가 정보를 제공하는 설명 텍스트의 전경색입니다.","포커스가 있는 요소의 전체 테두리 색입니다. 이 색은 구성 요소에서 재정의하지 않은 경우에만 사용됩니다.","더 뚜렷이 대비되도록 요소를 다른 요소와 구분하는 요소 주위의 추가 테두리입니다.","더 뚜렷이 대비되도록 요소를 다른 요소와 구분하는 활성 요소 주위의 추가 테두리입니다.","The background color of text selections in the workbench (e.g. for input fields or text areas). Note that this does not apply to selections within the editor.","텍스트 구분자 색상입니다.","텍스트 내 링크의 전경색입니다.","텍스트 내 활성 링크의 전경색입니다.","미리 서식이 지정된 텍스트 세그먼트의 전경색입니다.","텍스트 내 블록 인용의 전경색입니다.","텍스트 내 블록 인용의 테두리 색입니다.","텍스트 내 코드 블록의 전경색입니다.","편집기 내에서 찾기/바꾸기 같은 위젯의 그림자 색입니다.","입력 상자 배경입니다.","입력 상자 전경입니다.","입력 상자 테두리입니다.","입력 필드에서 활성화된 옵션의 테두리 색입니다.","위치 표시자 텍스트에 대한 입력 상자 전경색입니다.","정보 심각도의 입력 유효성 검사 배경색입니다.","정보 심각도의 입력 유효성 검사 테두리 색입니다.","정보 경고의 입력 유효성 검사 배경색입니다.","경고 심각도의 입력 유효성 검사 테두리 색입니다.","오류 심각도의 입력 유효성 검사 배경색입니다.","오류 심각도의 입력 유효성 검사 테두리 색입니다.","드롭다운 배경입니다.","드롭다운 전경입니다.","드롭다운 테두리입니다.","목록/트리가 활성 상태인 경우 포커스가 있는 항목의 목록/트리 배경색입니다. 목록/트리가 활성 상태이면 키보드 포커스를 가지며, 비활성 상태이면 포커스가 없습니다.","목록/트리가 활성 상태인 경우 포커스가 있는 항목의 목록/트리 전경색입니다. 목록/트리가 활성 상태이면 키보드 포커스를 가지며, 비활성 상태이면 포커스가 없습니다.","목록/트리가 활성 상태인 경우 선택한 항목의 목록/트리 배경색입니다. 목록/트리가 활성 상태이면 키보드 포커스를 가지며, 비활성 상태이면 포커스가 없습니다.","목록/트리가 활성 상태인 경우 선택한 항목의 목록/트리 전경색입니다. 목록/트리가 활성 상태이면 키보드 포커스를 가지며, 비활성 상태이면 포커스가 없습니다.","목록/트리가 비활성 상태인 경우 선택한 항목의 목록/트리 배경색입니다. 목록/트리가 활성 상태이면 키보드 포커스를 가지며, 비활성 상태이면 포커스가 없습니다.","목록/트리가 비활성 상태인 경우 선택한 항목의 목록/트리 전경색입니다. 목록/트리가 활성 상태이면 키보드 포커스를 가지며, 비활성 상태이면 포커스가 없습니다.","마우스로 항목을 가리킬 때 목록/트리 배경입니다.","마우스로 항목을 가리킬 때 목록/트리 전경입니다.","마우스로 항목을 이동할 때 목록/트리 끌어서 놓기 배경입니다.","목록/트리 내에서 검색할 때 일치 항목 강조 표시의 목록/트리 전경색입니다.","그룹화 레이블에 대한 빠른 선택기 색입니다.","그룹화 테두리에 대한 빠른 선택기 색입니다.","단추 기본 전경색입니다.","단추 배경색입니다.","마우스로 가리킬 때 단추 배경색입니다.","배지 배경색입니다. 배지는 검색 결과 수와 같은 소량의 정보 레이블입니다.","배지 전경색입니다. 배지는 검색 결과 수와 같은 소량의 정보 레이블입니다.","스크롤되는 보기를 나타내는 스크롤 막대 그림자입니다.","슬라이더 배경색입니다.","마우스로 가리킬 때 슬라이더 배경색입니다.","활성 상태인 경우 슬라이더 배경색입니다.","오래 실행 중인 작업에 대해 표시되는 진행률 표시 막대의 배경색입니다.","편집기 배경색입니다.","편집기 기본 전경색입니다.","찾기/바꾸기 같은 편집기 위젯의 배경색입니다.","편집기 위젯의 테두리 색입니다. 위젯에 테두리가 있고 위젯이 색상을 무시하지 않을 때만 사용됩니다.","Color of the editor selection.","Color of the selected text for high contrast.","비활성 편집기 선택 영역의 색입니다.","선택 영역과 동일한 콘텐츠가 있는 영역의 색입니다.","현재 검색 일치 항목의 색입니다.","기타 검색 일치 항목의 색입니다.","검색을 제한하는 영역의 색을 지정합니다.","호버가 표시된 단어 아래를 강조 표시합니다.","편집기 호버의 배경색.","편집기 호버의 테두리 색입니다.","활성 링크의 색입니다.","삽입된 텍스트의 배경색입니다.","제거된 텍스트의 배경색입니다.","삽입된 텍스트의 윤곽선 색입니다.","제거된 텍스트의 윤곽선 색입니다.","인라인 병합 충돌의 현재 헤더 배경입니다.","인라인 병합 충돌의 현재 콘텐츠 배경입니다.","인라인 병합 충돌에서 수신 헤더 배경입니다.","인라인 병합 충돌에서 수신 콘텐츠 배경입니다.","Common ancestor header background in inline merge-conflicts.","Common ancester content background in inline merge-conflicts.","인라인 병합 충돌에서 헤더 및 스플리터의 테두리 색입니다.","인라인 병합 충돌에서 현재 개요 눈금 전경색입니다.","인라인 병합 충돌에서 수신 개요 눈금 전경색입니다.","Common ancestor overview ruler foreground for inline merge-conflicts."]}); +define("vs/editor/editor.main.nls.ko",{"vs/base/browser/ui/actionbar/actionViewItems":["{0}({1})"],"vs/base/browser/ui/findinput/findInput":["입력"],"vs/base/browser/ui/findinput/findInputCheckboxes":["대/소문자 구분","단어 단위로","정규식 사용"],"vs/base/browser/ui/findinput/replaceInput":["입력","대/소문자 보존"],"vs/base/browser/ui/inputbox/inputBox":["오류: {0}","경고: {0}","정보: {0}"],"vs/base/browser/ui/keybindingLabel/keybindingLabel":["바인딩 안 됨"],"vs/base/browser/ui/menu/menu":["{0}({1})"],"vs/base/browser/ui/tree/abstractTree":["지우기","형식을 기준으로 필터링 사용 안 함","형식을 기준으로 필터링 사용","찾은 요소 없음","{1}개 요소 중 {0}개 일치"],"vs/base/common/errorMessage":["{0}: {1}","시스템 오류가 발생했습니다({0}).","알 수 없는 오류가 발생했습니다. 자세한 내용은 로그를 참조하세요.","알 수 없는 오류가 발생했습니다. 자세한 내용은 로그를 참조하세요.","{0}(총 {1}개의 오류)","알 수 없는 오류가 발생했습니다. 자세한 내용은 로그를 참조하세요."],"vs/base/common/keybindingLabels":["Ctrl","","","Windows","Ctrl","","","슈퍼","제어","","","명령","제어","","","Windows","제어","","","슈퍼"], +"vs/base/parts/quickinput/browser/quickInput":["뒤로","{0} / {1}","결과의 범위를 축소하려면 입력하세요.","{0}개 결과","{0} 선택됨","확인","사용자 지정","뒤로({0})","뒤로"],"vs/base/parts/quickinput/browser/quickInputList":["빠른 입력"],"vs/editor/browser/controller/coreCommands":["더 긴 줄로 이동하는 경우에도 끝에 고정","더 긴 줄로 이동하는 경우에도 끝에 고정"],"vs/editor/browser/controller/textAreaHandler":["편집기","현재 편집기에 액세스할 수 없습니다. 옵션을 보려면 {0}을(를) 누릅니다."],"vs/editor/browser/editorExtensions":["실행 취소(&&U)","실행 취소","다시 실행(&&R)","다시 실행","모두 선택(&&S)","모두 선택"],"vs/editor/browser/widget/codeEditorWidget":["커서 수는 {0}(으)로 제한되었습니다."],"vs/editor/browser/widget/diffEditorWidget":["파일 1개가 너무 커서 파일을 비교할 수 없습니다."],"vs/editor/browser/widget/diffReview":["닫기","변경된 줄 없음","선 1개 변경됨","줄 {0}개 변경됨","차이 {0}/{1}: 원래 줄 {2}, {3}, 수정된 줄 {4}, {5}","비어 있음","{0} 변경되지 않은 줄 {1}","{0} 원래 줄 {1} 수정된 줄 {2}","+ {0} 수정된 줄 {1}","- {0} 원래 줄 {1}","다음 다른 항목으로 이동","다음 다른 항목으로 이동"],"vs/editor/browser/widget/inlineDiffMargin":["삭제된 줄 복사","삭제된 줄 복사","삭제된 줄 복사({0})","이 변경 내용 되돌리기","삭제된 줄 복사({0})"], +"vs/editor/common/config/commonEditorConfig":["편집기","탭 한 개에 해당하는 공백 수입니다. `#editor.detectIndentation#`이 켜져 있는 경우 이 설정은 파일 콘텐츠에 따라 재정의됩니다.","'탭' 키를 누를 때 공백을 삽입합니다. `#editor.detectIndentation#`이 켜져 있는 경우 이 설정은 파일 콘텐츠에 따라 재정의됩니다.","파일을 열 때 파일 콘텐츠를 기반으로 `#editor.tabSize#`와 `#editor.insertSpaces#`가 자동으로 검색되는지 여부를 제어합니다.","끝에 자동 삽입된 공백을 제거합니다.","큰 파일에 대한 특수 처리로, 메모리를 많이 사용하는 특정 기능을 사용하지 않도록 설정합니다.","문서 내 단어를 기반으로 완성을 계산할지 여부를 제어합니다.","모든 색 테마에 대해 의미 체계 강조 표시를 사용합니다.","모든 색 테마에 대해 의미 체계 강조 표시를 사용하지 않습니다.","의미 체계 강조 표시는 현재 색 테마의 `semanticHighlighting` 설정에 따라 구성됩니다.","semanticHighlighting이 지원하는 언어에 대해 표시되는지 여부를 제어합니다.","해당 콘텐츠를 두 번 클릭하거나 'Esc' 키를 누르더라도 Peek 편집기를 열린 상태로 유지합니다.","이 길이를 초과하는 줄은 성능상의 이유로 토큰화되지 않습니다.","diff 계산이 취소된 후 밀리초 단위로 시간을 제한합니다. 제한 시간이 없는 경우 0을 사용합니다.","diff 편집기에서 diff를 나란히 표시할지 인라인으로 표시할지를 제어합니다.","사용하도록 설정하면 Diff 편집기가 선행 또는 후행 공백의 변경 내용을 무시합니다.","diff 편집기에서 추가/제거된 변경 내용에 대해 +/- 표시기를 표시하는지 여부를 제어합니다.","편집기에서 CodeLens를 표시할 것인지 여부를 제어합니다."], +"vs/editor/common/config/editorOptions":["편집기가 스크린 리더가 연결되면 플랫폼 API를 사용하여 감지합니다.","편집기가 스크린 리더 사용을 위해 영구적으로 최적화됩니다.","편집기가 스크린 리더 사용을 위해 최적화되지 않습니다.","편집기를 스크린 리더를 위해 최적화된 모드로 실행할지 결정합니다.","주석을 달 때 공백 문자를 삽입할지 여부를 제어합니다.","빈 줄을 줄 주석에 대한 토글, 추가 또는 제거 작업으로 무시해야 하는지를 제어합니다.","선택 영역 없이 현재 줄 복사 여부를 제어합니다.","입력하는 동안 일치 항목을 찾기 위한 커서 이동 여부를 제어합니다.","편집기 선택에서 Find Widget의 검색 문자열을 시딩할지 여부를 제어합니다.","선택 항목에서 찾기를 자동으로 켜지 않음(기본값)","선택 항목에서 자동으로 항상 찾기 켜기","여러 줄의 콘텐츠를 선택하면 선택 항목에서 찾기가 자동으로 켜집니다.","선택 영역에서 찾기를 자동으로 설정하는 조건을 제어합니다.","macOS에서 Find Widget이 공유 클립보드 찾기를 읽을지 수정할지 제어합니다.","위젯 찾기에서 편집기 맨 위에 줄을 추가해야 하는지 여부를 제어합니다. true인 경우 위젯 찾기가 표시되면 첫 번째 줄 위로 스크롤할 수 있습니다.","더 이상 일치하는 항목이 없을 때 검색을 처음이나 끝에서 자동으로 다시 시작할지 여부를 제어합니다.","글꼴 합자 사용하거나 사용하지 않도록 설정합니다.","명시적 글꼴 기능 설정입니다.","글꼴 합자 또는 글꼴 기능을 구성합니다.","글꼴 크기(픽셀)를 제어합니다.",'"표준" 및 "굵게" 키워드 또는 1~1000 사이의 숫자만 허용됩니다.','글꼴 두께를 제어합니다. "표준" 및 "굵게" 키워드 또는 1~1000 사이의 숫자를 허용합니다.',"결과 Peek 뷰 표시(기본)","기본 결과로 이동하여 Peek 보기를 표시합니다.","기본 결과로 이동하고 다른 항목에 대해 peek 없는 탐색을 사용하도록 설정","이 설정은 더 이상 사용되지 않습니다. 대신 'editor.editor.gotoLocation.multipleDefinitions' 또는 'editor.editor.gotoLocation.multipleImplementations'와 같은 별도의 설정을 사용하세요.","여러 대상 위치가 있는 경우 '정의로 이동' 명령 동작을 제어합니다.","여러 대상 위치가 있는 경우 '유형 정의로 이동' 명령 동작을 제어합니다.","여러 대상 위치가 있는 경우 'Go to Declaration' 명령 동작을 제어합니다.","여러 대상 위치가 있는 경우 '구현으로 이동' 명령 동작을 제어합니다.","여러 대상 위치가 있는 경우 '참조로 이동' 명령 동작을 제어합니다.","'정의로 이동'의 결과가 현재 위치일 때 실행되는 대체 명령 ID입니다.","'형식 정의로 이동'의 결과가 현재 위치일 때 실행되는 대체 명령 ID입니다.","'선언으로 이동'의 결과가 현재 위치일 때 실행되는 대체 명령 ID입니다.","'구현으로 이동'의 결과가 현재 위치일 때 실행되는 대체 명령 ID입니다.","'참조로 이동'의 결과가 현재 위치일 때 실행되는 대체 명령 ID입니다.","호버 표시 여부를 제어합니다.","호버가 표시되기 전까지의 지연 시간(밀리초)을 제어합니다.","마우스를 해당 항목 위로 이동할 때 호버를 계속 표시할지 여부를 제어합니다.","편집기에서 코드 동작 전구를 사용하도록 설정합니다.","줄 높이를 제어합니다. 글꼴 크기에서 줄 높이를 계산하려면 0을 사용합니다.","미니맵 표시 여부를 제어합니다.","미니맵의 크기는 편집기 내용과 동일하며 스크롤할 수 있습니다.","편집기의 높이를 맞추기 위해 필요에 따라 미니맵이 확장되거나 축소됩니다(스크롤 없음).","미니맵을 편집기보다 작게 유지할 수 있도록 필요에 따라 미니맵이 축소됩니다(스크롤 없음).","미니맵의 크기를 제어합니다.","미니맵을 렌더링할 측면을 제어합니다.","미니맵 슬라이더가 표시되는 시기를 제어합니다.","미니맵에 그려진 콘텐츠의 배율: 1, 2 또는 3.","줄의 실제 문자(색 블록 아님)를 렌더링합니다.","최대 특정 수의 열을 렌더링하도록 미니맵의 너비를 제한합니다.","편집기의 위쪽 가장자리와 첫 번째 줄 사이의 공백을 제어합니다.","편집기의 아래쪽 가장자리와 마지막 줄 사이의 공백을 제어합니다.","입력과 동시에 매개변수 문서와 유형 정보를 표시하는 팝업을 사용하도록 설정합니다."," 매개변수 힌트 메뉴의 주기 혹은 목록의 끝에 도달하였을때 종료할 것인지 여부를 결정합니다. ","문자열 내에서 빠른 제안을 사용합니다.","주석 내에서 빠른 제안을 사용합니다.","문자열 및 주석 외부에서 빠른 제안을 사용합니다.","입력하는 동안 제안을 자동으로 표시할지 여부를 제어합니다.","줄 번호는 렌더링되지 않습니다.","줄 번호는 절대값으로 렌더링 됩니다.","줄 번호는 커서 위치에서 줄 간격 거리로 렌더링 됩니다.","줄 번호는 매 10 줄마다 렌더링이 이루어집니다.","줄 번호의 표시 여부를 제어합니다.","이 편집기 눈금자에서 렌더링할 고정 폭 문자 수입니다.","이 편집기 눈금자의 색입니다.","특정 수의 고정 폭 문자 뒤에 세로 눈금자를 렌더링합니다. 여러 눈금자의 경우 여러 값을 사용합니다. 배열이 비어 있는 경우 눈금자가 그려지지 않습니다.","커서의 텍스트 오른쪽을 덮어 쓰지않고 제안을 삽입합니다.","제안을 삽입하고 커서의 오른쪽 텍스트를 덮어씁니다.","완료를 수락할 때 단어를 덮어쓸지 여부를 제어합니다. 이것은 이 기능을 선택하는 확장에 따라 다릅니다.","제안 필터링 및 정렬에서 작은 오타를 설명하는지 여부를 제어합니다.","정렬할 때 커서 근처에 표시되는 단어를 우선할지 여부를 제어합니다.","저장된 제안 사항 선택 항목을 여러 작업 영역 및 창에서 공유할 것인지 여부를 제어합니다(`#editor.suggestSelection#` 필요).","활성 코드 조각이 빠른 제안을 방지하는지 여부를 제어합니다.","제안의 아이콘을 표시할지 여부를 제어합니다.","스크롤바를 표시하기 전에 IntelliSense가 표시할 제안 수를 제어합니다(최대 15개).","이 설정은 더 이상 사용되지 않습니다. 대신 'editor.suggest.showKeywords'또는 'editor.suggest.showSnippets'와 같은 별도의 설정을 사용하세요.","사용하도록 설정되면 IntelliSense에 `메서드` 제안이 표시됩니다.","사용하도록 설정되면 IntelliSense에 '함수' 제안이 표시됩니다.","사용하도록 설정되면 IntelliSense에 '생성자' 제안이 표시됩니다.","사용하도록 설정되면 IntelliSense에 '필드' 제안이 표시됩니다.","사용하도록 설정되면 IntelliSense에 '변수' 제안이 표시됩니다.","사용하도록 설정되면 IntelliSense에 '클래스' 제안이 표시됩니다.","사용하도록 설정되면 IntelliSense에 '구조' 제안이 표시됩니다.","사용하도록 설정되면 IntelliSense에 '인터페이스' 제안이 표시됩니다.","사용하도록 설정되면 IntelliSense에 '모듈' 제안이 표시됩니다.","사용하도록 설정되면 IntelliSense에 '속성' 제안이 표시됩니다.","사용하도록 설정되면 IntelliSense에 '이벤트' 제안이 표시됩니다.","사용하도록 설정되면 IntelliSense에 `연산자` 제안이 표시됩니다.","사용하도록 설정되면 IntelliSense에 '단위' 제안이 표시됩니다.","사용하도록 설정되면 IntelliSense에 '값' 제안이 표시됩니다.","사용하도록 설정되면 IntelliSense에 '상수' 제안이 표시됩니다.","사용하도록 설정되면 IntelliSense에 '열거형' 제안이 표시됩니다.","사용하도록 설정되면 IntelliSense에 `enumMember` 제안이 표시됩니다.","사용하도록 설정되면 IntelliSense에 '키워드' 제안이 표시됩니다.","사용하도록 설정되면 IntelliSense에 '텍스트' 제안이 표시됩니다.","사용하도록 설정되면 IntelliSense에 '색' 제안이 표시됩니다.","사용하도록 설정되면 IntelliSense에 `파일` 제안이 표시됩니다.","사용하도록 설정되면 IntelliSense에 '참조' 제안이 표시됩니다.","사용하도록 설정되면 IntelliSense에 '사용자 지정 색' 제안이 표시됩니다.","사용하도록 설정되면 IntelliSense에 '폴더' 제안이 표시됩니다.","사용하도록 설정된 경우 IntelliSense에 'typeParameter' 제안이 표시됩니다.","사용하도록 설정되면 IntelliSense에 '코드 조각' 제안이 표시됩니다.","IntelliSense를 사용하도록 설정하면 `user`-제안이 표시됩니다.","IntelliSense를 사용하도록 설정한 경우 `issues`-제안을 표시합니다.","제안 위젯 하단의 상태 표시줄 가시성을 제어합니다.","커밋 문자에 대한 제안을 허용할지를 제어합니다. 예를 들어 JavaScript에서는 세미콜론(';')이 제안을 허용하고 해당 문자를 입력하는 커밋 문자일 수 있습니다.","텍스트를 변경할 때 `Enter` 키를 사용한 제안만 허용합니다.","'Tab' 키 외에 'Enter' 키에 대한 제안도 허용할지를 제어합니다. 새 줄을 삽입하는 동작과 제안을 허용하는 동작 간의 모호함을 없앨 수 있습니다.","화면 판독기가 읽을 수 있는 편집기의 줄 수를 제어합니다. 경고: 기본값보다 큰 숫자인 경우 성능에 영향을 미칩니다.","편집기 콘텐츠","언어 구성을 사용하여 대괄호를 자동으로 닫을 경우를 결정합니다.","커서가 공백의 왼쪽에 있는 경우에만 대괄호를 자동으로 닫습니다.","사용자가 여는 괄호를 추가한 후 편집기에서 괄호를 자동으로 닫을지 여부를 제어합니다.","닫기 따옴표 또는 대괄호가 자동으로 삽입된 경우에만 해당 항목 위에 입력합니다.","편집자가 닫는 따옴표 또는 대괄호 위에 입력할지 여부를 제어합니다.","언어 구성을 사용하여 따옴표를 자동으로 닫을 경우를 결정합니다.","커서가 공백의 왼쪽에 있는 경우에만 따옴표를 자동으로 닫습니다.","사용자가 여는 따옴표를 추가한 후 편집기에서 따옴표를 자동으로 닫을지 여부를 제어합니다.","편집기는 들여쓰기를 자동으로 삽입하지 않습니다.","편집기는 현재 줄의 들여쓰기를 유지합니다.","편집기는 현재 줄의 들여쓰기를 유지하고 언어 정의 대괄호를 사용합니다.","편집기는 현재 줄의 들여쓰기를 유지하고 언어 정의 대괄호를 존중하며 언어별로 정의된 특별 EnterRules를 호출합니다.","편집기는 현재 줄의 들여쓰기를 유지하고, 언어 정의 대괄호를 존중하고, 언어에 의해 정의된 특별 EnterRules를 호출하고, 언어에 의해 정의된 들여쓰기 규칙을 존중합니다.","사용자가 줄을 입력, 붙여넣기, 이동 또는 들여쓰기 할 때 편집기에서 들여쓰기를 자동으로 조정하도록 할지 여부를 제어합니다.","언어 구성을 사용하여 선택 항목을 자동으로 둘러쌀 경우를 결정합니다.","대괄호가 아닌 따옴표로 둘러쌉니다.","따옴표가 아닌 대괄호로 둘러쌉니다.","편집기에서 선택 항목을 자동으로 둘러쌀지 여부를 제어합니다.","편집기에서 CodeLens를 표시할 것인지 여부를 제어합니다.","편집기에서 인라인 색 데코레이터 및 색 선택을 렌더링할지를 제어합니다.","마우스와 키로 선택한 영역에서 열을 선택하도록 설정합니다.","터미널에서 선택한(블록 지정한) 텍스트가 클립보드로 자동 복사 여부를 제어합니다.\n'true'로 설정 할 시 선택할 때마다 클립보드로 복사 됩니다.","커서 애니메이션 스타일을 제어합니다.","매끄러운 캐럿 애니메이션의 사용 여부를 제어합니다.","커서 스타일을 제어합니다.","커서 주위에 표시되는 선행 및 후행 줄의 최소 수를 제어합니다. 다른 편집기에서는 'scrollOff' 또는 'scrollOffset'이라고 합니다.","'cursorSurroundingLines'는 키보드 나 API를 통해 트리거될 때만 적용됩니다.","`cursorSurroundingLines`는 항상 적용됩니다.","'cursorSurroundingLines'를 적용해야 하는 경우를 제어합니다.","`#editor.cursorStyle#` 설정이 'line'으로 설정되어 있을 때 커서의 넓이를 제어합니다.","편집기에서 끌어서 놓기로 선택 영역을 이동할 수 있는지 여부를 제어합니다.","'Alt' 키를 누를 때 스크롤 속도 승수입니다.","편집기에 코드 접기가 사용하도록 설정되는지 여부를 제어합니다.","사용 가능한 경우 언어별 접기 전략을 사용합니다. 그렇지 않은 경우 들여쓰기 기반 전략을 사용합니다.","들여쓰기 기반 접기 전략을 사용합니다.","접기 범위를 계산하기 위한 전략을 제어합니다.","편집기에서 접힌 범위를 강조 표시할지 여부를 제어합니다.","접힌 줄이 줄을 펼친 후 빈 콘텐츠를 클릭할지 여부를 제어합니다.","글꼴 패밀리를 제어합니다.","붙여넣은 콘텐츠의 서식을 편집기에서 자동으로 지정할지 여부를 제어합니다. 포맷터를 사용할 수 있어야 하며 포맷터가 문서에서 범위의 서식을 지정할 수 있어야 합니다.","입력 후 편집기에서 자동으로 줄의 서식을 지정할지 여부를 제어합니다.","편집기에서 세로 문자 모양 여백을 렌더링할지 여부를 제어합니다. 문자 모양 여백은 주로 디버깅에 사용됩니다.","커서가 개요 눈금자에서 가려져야 하는지 여부를 제어합니다.","편집기에서 활성 들여쓰기 가이드를 강조 표시할지 여부를 제어합니다.","문자 간격(픽셀)을 제어합니다.","편집기에서 링크를 감지하고 클릭할 수 있게 만들지 여부를 제어합니다.","일치하는 대괄호를 강조 표시합니다.","마우스 휠 스크롤 이벤트의 `deltaX` 및 `deltaY`에서 사용할 승수입니다.","마우스 휠을 사용할 때 'Ctrl' 키를 누르고 있으면 편집기의 글꼴을 확대/축소합니다.","여러 커서가 겹치는 경우 커서를 병합합니다.","Windows와 Linux의 'Control'을 macOS의 'Command'로 매핑합니다.","Windows와 Linux의 'Alt'를 macOS의 'Option'으로 매핑합니다.","마우스로 여러 커서를 추가할 때 사용할 수정자입니다. [정의로 이동] 및 [링크 열기] 마우스 제스처가 멀티커서 수정자와 충돌하지 않도록 조정됩니다. [자세한 정보](https://code.visualstudio.com/docs/editor/codebasics#_multicursor-modifier).","각 커서는 텍스트 한 줄을 붙여넣습니다.","각 커서는 전체 텍스트를 붙여넣습니다.","붙여넣은 텍스트의 줄 수가 커서 수와 일치하는 경우 붙여넣기를 제어합니다.","편집기에서 의미 체계 기호 항목을 강조 표시할지 여부를 제어합니다.","개요 눈금자 주위에 테두리를 그릴지 여부를 제어합니다.","Peek를 여는 동안 트리에 포커스","미리 보기를 열 때 편집기에 포커스","미리 보기 위젯에서 인라인 편집기에 포커스를 둘지 또는 트리에 포커스를 둘지를 제어합니다.","이동 정의 마우스 제스처가 항상 미리 보기 위젯을 열지 여부를 제어합니다.","빠른 제안을 표시하기 전까지의 지연 시간(밀리초)을 제어합니다.","편집기가 유형에 따라 자동으로 이름을 바꿀지 여부를 제어합니다.","편집기에서 제어 문자를 렌더링할지를 제어합니다.","편집기에서 들여쓰기 가이드를 렌더링할지를 제어합니다.","파일이 줄 바꿈으로 끝나면 마지막 줄 번호를 렌더링합니다.","제본용 여백과 현재 줄을 모두 강조 표시합니다.","편집기가 현재 줄 강조 표시를 렌더링하는 방식을 제어합니다. ","편집기에 포커스가 있는 경우에만 편집기에서 현재 줄 강조 표시를 렌더링해야 하는지 제어합니다.","단어 사이의 공백 하나를 제외한 공백 문자를 렌더링합니다.","선택한 텍스트에서만 공백 문자를 렌더링합니다.","후행 공백 문자만 렌더링","편집기에서 공백 문자를 렌더링할 방법을 제어합니다.","선택 항목의 모서리를 둥글게 할지 여부를 제어합니다.","편집기에서 가로로 스크롤되는 범위를 벗어나는 추가 문자의 수를 제어합니다.","편집기에서 마지막 줄 이후로 스크롤할지 여부를 제어합니다.","세로와 가로로 동시에 스크롤할 때에만 주축을 따라서 스크롤합니다. 트랙패드에서 세로로 스크롤할 때 가로 드리프트를 방지합니다.","Linux 주 클립보드의 지원 여부를 제어합니다.","편집기가 선택 항목과 유사한 일치 항목을 강조 표시해야하는지 여부를 제어합니다.","접기 컨트롤을 항상 표시합니다.","마우스가 여백 위에 있을 때에만 접기 컨트롤을 표시합니다.","여백의 접기 컨트롤이 표시되는 시기를 제어합니다.","사용하지 않는 코드의 페이드 아웃을 제어합니다.","취소선 사용되지 않는 변수를 제어합니다.","다른 제안 위에 조각 제안을 표시합니다.","다른 제안 아래에 조각 제안을 표시합니다.","다른 제안과 함께 조각 제안을 표시합니다.","코드 조각 제안을 표시하지 않습니다.","코드 조각이 다른 추천과 함께 표시되는지 여부 및 정렬 방법을 제어합니다.","편집기에서 애니메이션을 사용하여 스크롤할지 여부를 제어합니다.","제안 위젯의 글꼴 크기입니다. '0'으로 설정하면 '#editor.fontSize#'의 값이 사용됩니다.","제안 위젯의 줄 높이입니다. '0'으로 설정하면 `#editor.lineHeight#`의 값이 사용됩니다.","트리거 문자를 입력할 때 제안을 자동으로 표시할지 여부를 제어합니다.","항상 첫 번째 제안을 선택합니다.","`log`가 최근에 완료되었으므로 추가 입력에서 제안을 선택하지 않은 경우 최근 제안을 선택하세요(예: `console.| -> console.log`).","해당 제안을 완료한 이전 접두사에 따라 제안을 선택합니다(예: `co -> console` 및 `con -> const`).","제안 목록을 표시할 때 제한이 미리 선택되는 방식을 제어합니다.","탭 완료는 탭을 누를 때 가장 일치하는 제안을 삽입합니다.","탭 완성을 사용하지 않도록 설정합니다.","접두사가 일치하는 경우 코드 조각을 탭 완료합니다. 'quickSuggestions'를 사용하지 않을 때 가장 잘 작동합니다.","탭 완성을 사용하도록 설정합니다.","비정상적인 줄 종결자가 무시됩니다.","제거할 비정상적인 줄 종결자 프롬프트입니다.","비정상적인 줄 종결자가 자동으로 제거됩니다.","문제를 일으킬 수 있는 비정상적인 줄 종결자를 제거합니다.","탭 정지 뒤에 공백을 삽입 및 삭제합니다.","단어 관련 탐색 또는 작업을 수행할 때 단어 구분 기호로 사용할 문자입니다.","줄이 바뀌지 않습니다.","뷰포트 너비에서 줄이 바뀝니다.","`#editor.wordWrapColumn#`에서 줄이 바뀝니다.","뷰포트의 최소값 및 `#editor.wordWrapColumn#`에서 줄이 바뀝니다.","줄 바꿈 여부를 제어합니다.","`#editor.wordWrap#`이 `wordWrapColumn` 또는 'bounded'인 경우 편집기의 열 줄 바꿈을 제어합니다.","들여쓰기가 없습니다. 줄 바꿈 행이 열 1에서 시작됩니다.","줄 바꿈 행의 들여쓰기가 부모와 동일합니다.","줄 바꿈 행이 부모 쪽으로 +1만큼 들여쓰기됩니다.","줄 바꿈 행이 부모 쪽으로 +2만큼 들여쓰기됩니다.","줄 바꿈 행의 들여쓰기를 제어합니다.","모든 문자가 동일한 너비라고 가정합니다. 이 알고리즘은 고정 폭 글꼴과 문자 모양의 너비가 같은 특정 스크립트(예: 라틴 문자)에 적절히 작동하는 빠른 알고리즘입니다.","래핑 점 계산을 브라우저에 위임합니다. 이 알고리즘은 매우 느려서 대용량 파일의 경우 중단될 수 있지만 모든 경우에 적절히 작동합니다.","래핑 점을 계산하는 알고리즘을 제어합니다."], +"vs/editor/common/model/editStack":["입력하는 중"],"vs/editor/common/modes/modesRegistry":["일반 텍스트"], +"vs/editor/common/standaloneStrings":["없음 선택","줄 {0}, 열 {1}({2} 선택됨)입니다.","행 {0}, 열 {1}","{0} 선택 항목({1}자 선택됨)","{0} 선택 항목","이제 'accessibilitySupport' 설정을 'on'으로 변경합니다.","지금 편집기 접근성 문서 페이지를 여세요.","차이 편집기의 읽기 전용 창에서.","diff 편집기 창에서."," 읽기 전용 코드 편집기에서"," 코드 편집기에서","화면 판독기 사용에 최적화되도록 편집기를 구성하려면 지금 Command+E를 누르세요.","화면 판독기에 사용할 수 있도록 편집기를 최적화하려면 지금 Ctrl+E를 누르세요.","에디터를 화면 판독기와 함께 사용하기에 적합하도록 구성했습니다.","편집기는 화면 판독기 사용을 위해 절대로 최적화되지 않도록 구성됩니다. 현재로서는 그렇지 않습니다.","현재 편집기에서 키를 누르면 포커스가 다음 포커스 가능한 요소로 이동합니다. {0}을(를) 눌러서 이 동작을 설정/해제합니다.","현재 편집기에서 키를 누르면 포커스가 다음 포커스 가능한 요소로 이동합니다. {0} 명령은 현재 키 바인딩으로 트리거할 수 없습니다.","현재 편집기에서 키를 누르면 탭 문자가 삽입됩니다. {0}을(를) 눌러서 이 동작을 설정/해제합니다.","현재 편집기에서 키를 누르면 탭 문자가 삽입됩니다. {0} 명령은 현재 키 바인딩으로 트리거할 수 없습니다.","Command+H를 눌러 편집기 접근성과 관련된 자세한 정보가 있는 브라우저 창을 여세요.","Ctrl+H를 눌러 편집기 접근성과 관련된 자세한 정보가 있는 브라우저 창을 엽니다.","이 도구 설명을 해제하고 Esc 키 또는 Shift+Esc를 눌러서 편집기로 돌아갈 수 있습니다.","접근성 도움말 표시","개발자: 검사 토큰","줄/열로 이동...","빠른 액세스 공급자 모두 표시","명령 팔레트","명령 표시 및 실행","기호로 가서...","범주별 기호로 이동...","편집기 콘텐츠","접근성 옵션은 Alt+F1을 눌러여 합니다.","고대비 테마로 전환","{1} 파일에서 편집을 {0}개 했습니다."], +"vs/editor/common/view/editorColorRegistry":["커서 위치의 줄 강조 표시에 대한 배경색입니다.","커서 위치의 줄 테두리에 대한 배경색입니다.","빠른 열기 및 찾기 기능 등을 통해 강조 표시된 영역의 배경색입니다. 기본 장식을 숨기지 않도록 색은 불투명하지 않아야 합니다.","강조 영역 주변의 테두리에 대한 배경색입니다","강조 표시된 기호(예: 정의로 이동 또는 다음/이전 기호로 이동)의 배경색입니다. 이 색상은 기본 장식을 숨기지 않도록 불투명하지 않아야 합니다.","강조 표시된 기호 주위의 테두리 배경색입니다.","편집기 커서 색입니다.","편집기 커서의 배경색입니다. 블록 커서와 겹치는 글자의 색상을 사용자 정의할 수 있습니다.","편집기의 공백 문자 색입니다.","편집기 들여쓰기 안내선 색입니다.","활성 편집기 들여쓰기 안내선 색입니다.","편집기 줄 번호 색입니다.","편집기 활성 영역 줄번호 색상","ID는 사용되지 않습니다. 대신 'editorLineNumber.activeForeground'를 사용하세요.","편집기 활성 영역 줄번호 색상","편집기 눈금의 색상입니다.","편집기 코드 렌즈의 전경색입니다.","일치하는 괄호 뒤의 배경색","일치하는 브래킷 박스의 색상","개요 눈금 경계의 색상입니다.","편집기 개요 눈금자의 배경색입니다. 미니맵이 사용하도록 설정되어 편집기의 오른쪽에 배치된 경우에만 사용됩니다.","편집기 거터의 배경색입니다. 거터에는 글리프 여백과 행 수가 있습니다.","편집기의 불필요한(사용하지 않는) 소스 코드 테두리 색입니다.","편집기의 불필요한(사용하지 않는) 소스 코드 불투명도입니다. 예를 들어 \"#000000c0\"은 75% 불투명도로 코드를 렌더링합니다. 고대비 테마의 경우 페이드 아웃하지 않고 'editorUnnecessaryCode.border' 테마 색을 사용하여 불필요한 코드에 밑줄을 그으세요.","범위의 개요 눈금자 표식 색이 강조 표시됩니다. 기본 장식을 숨기지 않도록 색은 불투명하지 않아야 합니다.","오류의 개요 눈금자 마커 색입니다.","경고의 개요 눈금자 마커 색입니다.","정보의 개요 눈금자 마커 색입니다."], +"vs/editor/contrib/anchorSelect/anchorSelect":["선택 앵커 지점","{0}에 설정된 앵커: {1}","선택 앵커 지점 설정","선택 앵커 지점으로 이동","앵커에서 커서로 선택","선택 앵커 지점 취소"],"vs/editor/contrib/bracketMatching/bracketMatching":["괄호에 해당하는 영역을 표시자에 채색하여 표시합니다.","대괄호로 이동","괄호까지 선택","대괄호로 이동(&&B)"],"vs/editor/contrib/caretOperations/caretOperations":["선택한 텍스트를 왼쪽으로 이동","선택한 텍스트를 오른쪽으로 이동"],"vs/editor/contrib/caretOperations/transpose":["문자 바꾸기"],"vs/editor/contrib/clipboard/clipboard":["잘라내기(&&T)","잘라내기","잘라내기","복사(&&C)","복사","복사","붙여넣기(&&P)","붙여넣기","붙여넣기","구문을 강조 표시하여 복사"], +"vs/editor/contrib/codeAction/codeActionCommands":["실행할 코드 작업의 종류입니다.","반환된 작업이 적용되는 경우를 제어합니다.","항상 반환된 첫 번째 코드 작업을 적용합니다.","첫 번째 반환된 코드 작업을 적용합니다(이 작업만 있는 경우).","반환된 코드 작업을 적용하지 마세요.","기본 코드 작업만 반환되도록 할지 여부를 제어합니다.","코드 작업을 적용하는 중 알 수 없는 오류가 발생했습니다.","빠른 수정...","사용 가능한 코드 동작이 없습니다.","'{0}'에 대한 기본 코드 작업을 사용할 수 없음","'{0}'에 대한 코드 작업을 사용할 수 없음","사용할 수 있는 기본 코드 작업 없음","사용 가능한 코드 동작이 없습니다.","리팩터링...","'{0}'에 대한 기본 리팩터링 없음","'{0}'에 대한 리팩터링 없음","기본 설정 리팩터링을 사용할 수 없음","사용 가능한 리펙터링이 없습니다.","소스 작업...","'{0}'에 대한 기본 소스 작업을 사용할 수 없음","'{0}'에 대한 소스 작업을 사용할 수 없음","사용할 수 있는 기본 원본 작업 없음","사용 가능한 소스 작업이 없습니다.","가져오기 구성","사용 가능한 가져오기 구성 작업이 없습니다.","모두 수정","모든 작업 수정 사용 불가","자동 수정...","사용할 수 있는 자동 수정 없음"],"vs/editor/contrib/codeAction/lightBulbWidget":["수정 사항을 표시합니다. 사용 가능한 기본 수정({0})","수정 사항 표시({0})","수정 사항 표시"],"vs/editor/contrib/codelens/codelensController":["현재 줄에 대한 코드 렌즈 명령 표시"],"vs/editor/contrib/comment/comment":["줄 주석 설정/해제","줄 주석 설정/해제(&&T)","줄 주석 추가","줄 주석 제거","블록 주석 설정/해제","블록 주석 설정/해제(&&B)"], +"vs/editor/contrib/contextmenu/contextmenu":["편집기 상황에 맞는 메뉴 표시"],"vs/editor/contrib/cursorUndo/cursorUndo":["커서 실행 취소","커서 다시 실행"], +"vs/editor/contrib/documentSymbols/outlineTree":["배열 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 나타납니다.","부울 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 나타납니다.","클래스 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 나타납니다.","색 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안에 표시됩니다.","상수 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 나타납니다.","생성자 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 표시됩니다.","열거자 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 표시됩니다.","열거자 멤버 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 나타납니다.","이벤트 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 나타납니다.","필드 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 표시됩니다.","파일 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 나타납니다.","폴더 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 나타납니다.","함수 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 나타납니다.","인터페이스 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 표시됩니다.","키 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 표시됩니다.","키워드 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 나타납니다.","메서드 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 표시됩니다.","모듈 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 나타납니다.","네임스페이스 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 나타납니다.","null 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 나타납니다.","숫자 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 표시됩니다.","개체 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 나타납니다.","연산자 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 나타납니다.","패키지 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 나타납니다.","속성 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 나타납니다.","참조 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 나타납니다.","코드 조각 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 표시됩니다.","문자열 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 표시됩니다.","구조 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 표시됩니다.","텍스트 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 나타납니다.","형식 매개변수 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 표시됩니다.","단위 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 표시됩니다.","변수 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 표시됩니다."], +"vs/editor/contrib/find/findController":["찾기","찾기(&&F)","선택 영역에서 찾기","다음 찾기","다음 찾기","이전 찾기","이전 찾기","다음 선택 찾기","이전 선택 찾기","바꾸기","바꾸기(&&R)"],"vs/editor/contrib/find/findWidget":["찾기","찾기","이전 일치","다음 일치 항목","선택 항목에서 찾기","닫기","바꾸기","바꾸기","바꾸기","모두 바꾸기","바꾸기 모드 설정/해제","처음 {0}개의 결과가 강조 표시되지만 모든 찾기 작업은 전체 텍스트에 대해 수행됩니다.","{1}의 {0}","결과 없음","{0}개 찾음","'{1}'에 대한 {0}을(를) 찾음","{2}에서 '{1}'에 대한 {0}을(를) 찾음","'{1}'에 대한 {0}을(를) 찾음","Ctrl+Enter를 누르면 이제 모든 항목을 바꾸지 않고 줄 바꿈을 삽입합니다. editor.action.replaceAll의 키 바인딩을 수정하여 이 동작을 재정의할 수 있습니다."],"vs/editor/contrib/folding/folding":["펼치기","재귀적으로 펼치기","접기","접기 전환","재귀적으로 접기","모든 블록 코멘트를 접기","모든 영역 접기","모든 영역 펼치기","모두 접기","모두 펼치기","수준 {0} 접기","접힌 범위의 배경색입니다. 색은 기본 장식을 숨기지 않기 위해 불투명해서는 안 됩니다.","편집기 여백의 접기 컨트롤 색입니다."],"vs/editor/contrib/fontZoom/fontZoom":["편집기 글꼴 확대","편집기 글꼴 축소","편집기 글꼴 확대/축소 다시 설정"],"vs/editor/contrib/format/format":["줄 {0}에서 1개 서식 편집을 수행했습니다.","줄 {1}에서 {0}개 서식 편집을 수행했습니다.","줄 {0}과(와) {1} 사이에서 1개 서식 편집을 수행했습니다.","줄 {1}과(와) {2} 사이에서 {0}개 서식 편집을 수행했습니다."], +"vs/editor/contrib/format/formatActions":["문서 서식","선택 영역 서식"],"vs/editor/contrib/gotoError/gotoError":["다음 문제로 이동 (오류, 경고, 정보)","이전 문제로 이동 (오류, 경고, 정보)","파일의 다음 문제로 이동 (오류, 경고, 정보)","다음 문제(&&P)","파일의 이전 문제로 이동 (오류, 경고, 정보)","이전 문제(&&P)"],"vs/editor/contrib/gotoError/gotoErrorWidget":["오류","경고","정보","힌트","{1}의 {0}입니다.","문제 {1}개 중 {0}개","문제 {1}개 중 {0}개","편집기 표식 탐색 위젯 오류 색입니다.","편집기 표식 탐색 위젯 경고 색입니다.","편집기 표식 탐색 위젯 정보 색입니다.","편집기 표식 탐색 위젯 배경입니다."],"vs/editor/contrib/gotoSymbol/goToCommands":["피킹","정의","'{0}'에 대한 정의를 찾을 수 없습니다.","정의를 찾을 수 없음","정의로 이동","정의로 이동(&&D)","측면에서 정의 열기","정의 피킹","선언","'{0}'에 대한 선언을 찾을 수 없음","선언을 찾을 수 없음","선언으로 이동","선언으로 이동(&&D)","'{0}'에 대한 선언을 찾을 수 없음","선언을 찾을 수 없음","선언 미리 보기","형식 정의","'{0}'에 대한 형식 정의를 찾을 수 없습니다.","형식 정의를 찾을 수 없습니다.","형식 정의로 이동","형식 정의로 이동(&&T)","형식 정의 미리 보기","구현","'{0}'에 대한 구현을 찾을 수 없습니다.","구현을 찾을 수 없습니다.","구현으로 이동","구현으로 이동(&&I)","피킹 구현","'{0}'에 대한 참조가 없습니다.","참조가 없습니다.","참조로 이동","참조로 이동(&&R)","참조","참조 미리 보기","참조","기호로 이동","위치","'{0}'에 대한 검색 결과가 없음","참조"], +"vs/editor/contrib/gotoSymbol/link/goToDefinitionAtPosition":["{0}개 정의를 표시하려면 클릭하세요."],"vs/editor/contrib/gotoSymbol/peek/referencesController":["로드 중...","{0}({1})"],"vs/editor/contrib/gotoSymbol/peek/referencesTree":["참조 {0}개","참조 {0}개","참조"],"vs/editor/contrib/gotoSymbol/peek/referencesWidget":["미리 보기를 사용할 수 없음","결과 없음","참조"],"vs/editor/contrib/gotoSymbol/referencesModel":["{2}열, {1}줄, {0}의 기호","{0}의 기호 1개, 전체 경로 {1}","{1}의 기호 {0}개, 전체 경로 {2}","결과 없음","{0}에서 기호 1개를 찾았습니다.","{1}에서 기호 {0}개를 찾았습니다.","{1}개 파일에서 기호 {0}개를 찾았습니다."],"vs/editor/contrib/gotoSymbol/symbolNavigation":["{1}의 {0} 기호, 다음의 경우 {2}","{1}의 기호 {0}"],"vs/editor/contrib/hover/hover":["가리키기 표시","정의 미리 보기 가리킨 항목 표시"],"vs/editor/contrib/hover/modesContentHover":["로드 중...","문제 보기","빠른 수정을 확인하는 중...","빠른 수정을 사용할 수 없음","빠른 수정..."],"vs/editor/contrib/inPlaceReplace/inPlaceReplace":["이전 값으로 바꾸기","다음 값으로 바꾸기"], +"vs/editor/contrib/indentation/indentation":["들여쓰기를 공백으로 변환","들여쓰기를 탭으로 변환","구성된 탭 크기","현재 파일의 탭 크기 선택","탭을 사용한 들여쓰기","공백을 사용한 들여쓰기","콘텐츠에서 들여쓰기 감지","줄 다시 들여쓰기","선택한 줄 다시 들여쓰기"],"vs/editor/contrib/linesOperations/linesOperations":["위에 줄 복사","위에 줄 복사(&&C)","아래에 줄 복사","아래에 줄 복사(&&P)","중복된 선택 영역","중복된 선택 영역(&&D)","줄 위로 이동","줄 위로 이동(&&V)","줄 아래로 이동","줄 아래로 이동(&&L)","줄을 오름차순 정렬","줄을 내림차순으로 정렬","후행 공백 자르기","줄 삭제","줄 들여쓰기","줄 내어쓰기","위에 줄 삽입","아래에 줄 삽입","왼쪽 모두 삭제","우측에 있는 항목 삭제","줄 연결","커서 주위 문자 바꾸기","대문자로 변환","소문자로 변환","단어의 첫 글자를 대문자로 변환"],"vs/editor/contrib/links/links":["명령 실행","링크로 이동","Cmd+클릭","Ctrl+클릭","Option+클릭","Alt+클릭","{0} 형식이 올바르지 않으므로 이 링크를 열지 못했습니다","대상이 없으므로 이 링크를 열지 못했습니다.","링크 열기"],"vs/editor/contrib/message/messageController":["읽기 전용 편집기에서는 편집할 수 없습니다."], +"vs/editor/contrib/multicursor/multicursor":["위에 커서 추가","위에 커서 추가(&&A)","아래에 커서 추가","아래에 커서 추가(&&D)","줄 끝에 커서 추가","줄 끝에 커서 추가(&&U)","맨 아래에 커서 추가","맨 위에 커서 추가","다음 일치 항목 찾기에 선택 항목 추가","다음 항목 추가(&&N)","이전 일치 항목 찾기에 선택 항목 추가","이전 항목 추가(&&R)","다음 일치 항목 찾기로 마지막 선택 항목 이동","마지막 선택 항목을 이전 일치 항목 찾기로 이동","일치 항목 찾기의 모든 항목 선택","모든 항목 선택(&&O)","모든 항목 변경"],"vs/editor/contrib/parameterHints/parameterHints":["매개 변수 힌트 트리거"],"vs/editor/contrib/parameterHints/parameterHintsWidget":["{0}, 힌트"],"vs/editor/contrib/peekView/peekView":["닫기","Peek 뷰 제목 영역의 배경색입니다.","Peek 뷰 제목 색입니다.","Peek 뷰 제목 정보 색입니다.","Peek 뷰 테두리 및 화살표 색입니다.","Peek 뷰 결과 목록의 배경색입니다.","Peek 뷰 결과 목록에서 라인 노드의 전경색입니다.","Peek 뷰 결과 목록에서 파일 노드의 전경색입니다.","Peek 뷰 결과 목록에서 선택된 항목의 배경색입니다.","Peek 뷰 결과 목록에서 선택된 항목의 전경색입니다.","Peek 뷰 편집기의 배경색입니다.","Peek 뷰 편집기의 거터 배경색입니다.","Peek 뷰 결과 목록의 일치 항목 강조 표시 색입니다.","Peek 뷰 편집기의 일치 항목 강조 표시 색입니다.","Peek 뷰 편집기의 일치 항목 강조 표시 테두리입니다."], +"vs/editor/contrib/quickAccess/gotoLineQuickAccess":["우선 텍스트 편집기를 열고 줄로 이동합니다.","{0} 줄 및 {1} 열로 이동합니다.","{0} 줄로 이동합니다.","현재 줄: {0}, 문자: {1} 이동할 줄 1~{2} 사이의 번호를 입력합니다.","현재 줄: {0}, 문자: {1}. 이동할 줄 번호를 입력합니다."],"vs/editor/contrib/quickAccess/gotoSymbolQuickAccess":["기호로 이동하려면 먼저 기호 정보가 있는 텍스트 편집기를 엽니다.","활성 상태의 텍스트 편집기는 기호 정보를 제공하지 않습니다.","일치하는 편집기 기호 없음","편집기 기호 없음","측면에서 열기","하단에 열기","기호({0})","속성({0})","메서드({0})","함수({0})","생성자({0})","변수({0})","클래스({0})","구조체({0})","이벤트({0})","연산자({0})","인터페이스({0})","네임스페이스({0})","패키지({0})","형식 매개 변수({0})","모듈({0})","속성({0})","열거형({0})","열거형 멤버({0})","문자열({0})","파일({0})","배열({0})","숫자({0})","부울({0})","개체({0})","키({0})","필드({0})","상수({0})"],"vs/editor/contrib/rename/onTypeRename":["유형별 이름 바꾸기 기호","형식의 편집기에서 자동으로 이름을 바꿀 때의 배경색입니다."], +"vs/editor/contrib/rename/rename":["결과가 없습니다.","위치 이름을 바꾸는 중 알 수 없는 오류가 발생했습니다.","'{0}'의 이름을 바꾸는 중","{0} 이름 바꾸기","'{0}'을(를) '{1}'(으)로 이름을 변경했습니다. 요약: {2}","이름 바꾸기를 통해 편집 내용을 적용하지 못했습니다.","이름 바꾸기를 통해 편집 내용을 계산하지 못했습니다.","기호 이름 바꾸기","이름을 바꾸기 전에 변경 내용을 미리 볼 수 있는 기능 사용/사용 안 함"],"vs/editor/contrib/rename/renameInputField":["입력 이름을 바꾸세요. 새 이름을 입력한 다음 [Enter] 키를 눌러 커밋하세요.","이름 바꾸기 {0}, 미리 보기 {1}"],"vs/editor/contrib/smartSelect/smartSelect":["선택 영역 확장","선택 영역 확장(&&E)","선택 영역 축소","선택 영역 축소(&&S)"],"vs/editor/contrib/snippet/snippetVariables":["일요일","월요일","화요일","수요일","목요일","금요일","토요일","일","월","화","수","목","금","토","1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월","1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],"vs/editor/contrib/suggest/suggestController":["{0}의 {1}개의 수정사항을 수락하는 중","제안 항목 트리거","삽입하려면 {0}","삽입하려면 {0}","교체하려면 {0}","교체하려면 {0}","삽입하려면 {0}","간단히 표시","더 보기"], +"vs/editor/contrib/suggest/suggestWidget":["제안 위젯의 배경색입니다.","제안 위젯의 테두리 색입니다.","제안 위젯의 전경색입니다.","제한 위젯에서 선택된 항목의 배경색입니다.","제안 위젯의 일치 항목 강조 표시 색입니다.","자세한 정보({0})","간단히 표시({0})","로드 중...","로드 중...","제안 항목이 없습니다.","{0}, 문서: {1}","제안"],"vs/editor/contrib/toggleTabFocusMode/toggleTabFocusMode":[" 키로 포커스 이동 설정/해제","이제 키를 누르면 포커스가 다음 포커스 가능한 요소로 이동합니다.","이제 키를 누르면 탭 문자가 삽입됩니다."],"vs/editor/contrib/tokenization/tokenization":["개발자: 강제로 다시 토큰화"],"vs/editor/contrib/unusualLineTerminators/unusualLineTerminators":["비정상적인 줄 종결자","비정상적인 줄 종결자가 검색됨","이 파일에 LS(줄 구분 기호) 또는 PS(단락 구분 기호) 같은 하나 이상의 비정상적인 줄 종결자 문자가 포함되어 있습니다.\r\n\r\n파일에서 제거하는 것이 좋습니다. `editor.unusualLineTerminators`를 통해 구성할 수 있습니다.","이 파일 수정","이 파일의 문제 무시"], +"vs/editor/contrib/wordHighlighter/wordHighlighter":["변수 읽기와 같은 읽기 액세스 중 기호의 배경색입니다. 기본 장식을 숨기지 않도록 색은 불투명하지 않아야 합니다.","변수에 쓰기와 같은 쓰기 액세스 중 기호의 배경색입니다. 기본 장식을 숨기지 않도록 색은 불투명하지 않아야 합니다.","변수 읽기와 같은 읽기 액세스 중 기호의 테두리 색입니다.","변수에 쓰기와 같은 쓰기 액세스 중 기호의 테두리 색입니다.","기호 강조 표시의 개요 눈금자 표식 색입니다. 기본 장식을 숨기지 않도록 색은 불투명하지 않아야 합니다.","쓰기 액세스 기호에 대한 개요 눈금자 표식 색이 강조 표시됩니다. 기본 장식을 숨기지 않도록 색은 불투명하지 않아야 합니다.","다음 강조 기호로 이동","이전 강조 기호로 이동","기호 강조 표시 트리거"],"vs/platform/actions/browser/menuEntryActionViewItem":["{0}({1})"],"vs/platform/configuration/common/configurationRegistry":["기본 언어 구성 재정의","언어에 대해 재정의할 편집기 설정을 구성합니다.","이 설정은 언어별 구성을 지원하지 않습니다.","'{0}'을(를) 등록할 수 없습니다. 이는 언어별 편집기 설정을 설명하는 속성 패턴인 '\\\\[.*\\\\]$'과(와) 일치합니다. 'configurationDefaults' 기여를 사용하세요.","'{0}'을(를) 등록할 수 없습니다. 이 속성은 이미 등록되어 있습니다."],"vs/platform/keybinding/common/abstractKeybindingService":["({0})을(를) 눌렀습니다. 둘째 키는 잠시 기다렸다가 누르십시오...","키 조합({0}, {1})은 명령이 아닙니다."], +"vs/platform/list/browser/listService":["워크벤치","Windows와 Linux의 'Control'을 macOS의 'Command'로 매핑합니다.","Windows와 Linux의 'Alt'를 macOS의 'Option'으로 매핑합니다.","마우스로 트리와 목록의 항목을 다중 선택에 추가할 때 사용할 한정자입니다(예를 들어 탐색기에서 편집기와 SCM 보기를 여는 경우). '옆에서 열기' 마우스 제스처(지원되는 경우)는 다중 선택 한정자와 충돌하지 않도록 조정됩니다.","트리와 목록에서 마우스를 사용하여 항목을 여는 방법을 제어합니다(지원되는 경우). 트리에서 자식 항목이 있는 부모 항목의 경우 이 설정은 부모 항목을 한 번 클릭으로 확장할지 또는 두 번 클릭으로 확장할지 여부를 제어합니다. 일부 트리와 목록에서는 이 설정을 적용할 수 없는 경우 무시하도록 선택할 수 있습니다. ","워크벤치에서 목록 및 트리의 가로 스크롤 여부를 제어합니다. 경고: 이 설정을 켜면 성능에 영향을 미칩니다.","트리 들여쓰기를 픽셀 단위로 제어합니다.","트리에서 들여쓰기 가이드를 렌더링할지 여부를 제어합니다.","목록과 트리에 부드러운 화면 이동 기능이 있는지를 제어합니다.","간단한 키보드 탐색에서는 키보드 입력과 일치하는 요소에 집중합니다. 일치는 접두사에서만 수행됩니다.","키보드 탐색 강조 표시에서는 키보드 입력과 일치하는 요소를 강조 표시합니다. 이후로 탐색에서 위 및 아래로 이동하는 경우 강조 표시된 요소만 트래버스합니다.","키보드 탐색 필터링에서는 키보드 입력과 일치하지 않는 요소를 모두 필터링하여 숨깁니다.","워크벤치의 목록 및 트리 키보드 탐색 스타일을 제어합니다. 간소화하고, 강조 표시하고, 필터링할 수 있습니다.","목록 및 트리에서 키보드 탐색이 입력만으로 자동 트리거되는지 여부를 제어합니다. 'false'로 설정하면 'list.toggleKeyboardNavigation' 명령을 실행할 때만 키보드 탐색이 트리거되어 바로 가기 키를 할당할 수 있습니다."], +"vs/platform/markers/common/markers":["오류","경고","정보"],"vs/platform/quickinput/browser/commandsQuickAccess":["{0}, {1}","최근에 사용한 항목","기타 명령","명령 '{0}'에서 오류({1})가 발생했습니다."],"vs/platform/quickinput/browser/helpQuickAccess":["전역 명령","편집기 명령","{0}, {1}"], +"vs/platform/theme/common/colorRegistry":["전체 전경색입니다. 이 색은 구성 요소에서 재정의하지 않은 경우에만 사용됩니다.","오류 메시지에 대한 전체 전경색입니다. 이 색은 구성 요소에서 재정의하지 않은 경우에만 사용됩니다.","워크벤치 아이콘의 기본 색상입니다.","포커스가 있는 요소의 전체 테두리 색입니다. 이 색은 구성 요소에서 재정의하지 않은 경우에만 사용됩니다.","더 뚜렷이 대비되도록 요소를 다른 요소와 구분하는 요소 주위의 추가 테두리입니다.","더 뚜렷이 대비되도록 요소를 다른 요소와 구분하는 활성 요소 주위의 추가 테두리입니다.","텍스트 내 링크의 전경색입니다.","텍스트 내 코드 블록의 전경색입니다.","편집기 내에서 찾기/바꾸기 같은 위젯의 그림자 색입니다.","입력 상자 배경입니다.","입력 상자 전경입니다.","입력 상자 테두리입니다.","입력 필드에서 활성화된 옵션의 테두리 색입니다.","입력 필드에서 활성화된 옵션의 배경색입니다.","입력 필드에서 활성화된 옵션의 전경색입니다.","정보 심각도의 입력 유효성 검사 배경색입니다.","정보 심각도의 입력 유효성 검사 전경색입니다.","정보 심각도의 입력 유효성 검사 테두리 색입니다.","경고 심각도의 입력 유효성 검사 배경색입니다.","경고 심각도의 입력 유효성 검사 전경색입니다.","경고 심각도의 입력 유효성 검사 테두리 색입니다.","오류 심각도의 입력 유효성 검사 배경색입니다.","오류 심각도의 입력 유효성 검사 전경색입니다.","오류 심각도의 입력 유효성 검사 테두리 색입니다.","드롭다운 배경입니다.","드롭다운 전경입니다.","단추 기본 전경색입니다.","단추 배경색입니다.","마우스로 가리킬 때 단추 배경색입니다.","배지 배경색입니다. 배지는 검색 결과 수와 같은 소량의 정보 레이블입니다.","배지 전경색입니다. 배지는 검색 결과 수와 같은 소량의 정보 레이블입니다.","스크롤되는 보기를 나타내는 스크롤 막대 그림자입니다.","스크롤 막대 슬라이버 배경색입니다.","마우스로 가리킬 때 스크롤 막대 슬라이더 배경색입니다.","클릭된 상태일 때 스크롤 막대 슬라이더 배경색입니다.","장기 작업을 대상으로 표시될 수 있는 진행률 표시줄의 배경색입니다.","편집기 내 오류 표시선의 전경색입니다.","편집기에서 오류 상자의 테두리 색입니다.","편집기 내 경고 표시선의 전경색입니다.","편집기에서 경고 상자의 테두리 색입니다.","편집기 내 정보 표시선의 전경색입니다.","편집기에서 정보 상자의 테두리 색입니다.","편집기에서 힌트 표시선의 전경색입니다.","편집기에서 힌트 상자의 테두리 색입니다.","편집기 배경색입니다.","편집기 기본 전경색입니다.","찾기/바꾸기 같은 편집기 위젯의 배경색입니다.","찾기/바꾸기와 같은 편집기 위젯의 전경색입니다.","편집기 위젯의 테두리 색입니다. 위젯에 테두리가 있고 위젯이 색상을 무시하지 않을 때만 사용됩니다.","편집기 위젯 크기 조정 막대의 테두리 색입니다. 이 색은 위젯에서 크기 조정 막대를 표시하도록 선택하고 위젯에서 색을 재지정하지 않는 경우에만 사용됩니다.","빠른 선택기 배경색. 빠른 선택기 위젯은 명령 팔레트와 같은 선택기를 위한 컨테이너입니다.","빠른 선택기 전경색. 이 빠른 선택기 위젯은 명령 팔레트와 같은 선택기를 위한 컨테이너입니다.","빠른 선택기 제목 배경색. 이 빠른 선택기 위젯은 명령 팔레트와 같은 선택기를 위한 컨테이너입니다.","그룹화 레이블에 대한 빠른 선택기 색입니다.","그룹화 테두리에 대한 빠른 선택기 색입니다.","편집기 선택 영역의 색입니다.","고대비를 위한 선택 텍스트의 색입니다.","비활성 편집기의 선택 항목 색입니다. 기본 장식을 숨기지 않도록 색은 불투명하지 않아야 합니다.","선택 영역과 동일한 콘텐츠가 있는 영역의 색입니다. 기본 장식을 숨기지 않도록 색은 불투명하지 않아야 합니다.","선택 영역과 동일한 콘텐츠가 있는 영역의 테두리 색입니다.","현재 검색 일치 항목의 색입니다.","기타 검색 일치 항목의 색입니다. 기본 장식을 숨기지 않도록 색은 불투명하지 않아야 합니다.","검색을 제한하는 범위의 색입니다. 기본 장식을 숨기지 않도록 색은 불투명하지 않아야 합니다.","현재 검색과 일치하는 테두리 색입니다.","다른 검색과 일치하는 테두리 색입니다.","검색을 제한하는 범위의 테두리 색입니다. 기본 장식을 숨기지 않도록 색은 불투명하지 않아야 합니다.","호버가 표시된 단어 아래를 강조 표시합니다. 기본 장식을 숨기지 않도록 색은 불투명하지 않아야 합니다.","편집기 호버의 배경색.","편집기 호버의 전경색입니다.","편집기 호버의 테두리 색입니다.","편집기 호버 상태 표시줄의 배경색입니다.","활성 링크의 색입니다.","전구 작업 아이콘에 사용되는 색상입니다.","전구 자동 수정 작업 아이콘에 사용되는 색상입니다.","삽입된 텍스트의 배경색입니다. 기본 장식을 숨기지 않도록 색은 불투명하지 않아야 합니다.","제거된 텍스트 배경색입니다. 기본 장식을 숨기지 않도록 색은 불투명하지 않아야 합니다.","삽입된 텍스트의 윤곽선 색입니다.","제거된 텍스트의 윤곽선 색입니다.","두 텍스트 편집기 사이의 테두리 색입니다.","diff 편집기의 대각선 채우기 색입니다. 대각선 채우기는 diff 나란히 보기에서 사용됩니다.","목록/트리가 활성 상태인 경우 포커스가 있는 항목의 목록/트리 배경색입니다. 목록/트리가 활성 상태이면 키보드 포커스를 가지며, 비활성 상태이면 포커스가 없습니다.","목록/트리가 활성 상태인 경우 포커스가 있는 항목의 목록/트리 전경색입니다. 목록/트리가 활성 상태이면 키보드 포커스를 가지며, 비활성 상태이면 포커스가 없습니다.","목록/트리가 활성 상태인 경우 선택한 항목의 목록/트리 배경색입니다. 목록/트리가 활성 상태이면 키보드 포커스를 가지며, 비활성 상태이면 포커스가 없습니다.","목록/트리가 활성 상태인 경우 선택한 항목의 목록/트리 전경색입니다. 목록/트리가 활성 상태이면 키보드 포커스를 가지며, 비활성 상태이면 포커스가 없습니다.","목록/트리가 비활성 상태인 경우 선택한 항목의 목록/트리 배경색입니다. 목록/트리가 활성 상태이면 키보드 포커스를 가지며, 비활성 상태이면 포커스가 없습니다.","목록/트리가 비활성 상태인 경우 선택한 항목의 목록/트리 전경색입니다. 목록/트리가 활성 상태이면 키보드 포커스를 가지며, 비활성 상태이면 포커스가 없습니다.","목록/트리가 비활성 상태인 경우 포커스가 있는 항목의 목록/트리 배경색입니다. 목록/트리가 활성 상태이면 키보드 포커스를 가지며, 비활성 상태이면 포커스가 없습니다.","마우스로 항목을 가리킬 때 목록/트리 배경입니다.","마우스로 항목을 가리킬 때 목록/트리 전경입니다.","마우스로 항목을 이동할 때 목록/트리 끌어서 놓기 배경입니다.","목록/트리 내에서 검색할 때 일치 항목 강조 표시의 목록/트리 전경색입니다.","목록 및 트리에서 형식 필터 위젯의 배경색입니다.","목록 및 트리에서 형식 필터 위젯의 윤곽선 색입니다.","일치하는 항목이 없을 때 목록 및 트리에서 표시되는 형식 필터 위젯의 윤곽선 색입니다.","들여쓰기 가이드의 트리 스트로크 색입니다.","메뉴 테두리 색입니다.","메뉴 항목 전경색입니다.","메뉴 항목 배경색입니다.","메뉴의 선택된 메뉴 항목 전경색입니다.","메뉴의 선택된 메뉴 항목 배경색입니다.","메뉴의 선택된 메뉴 항목 테두리 색입니다.","메뉴에서 구분 기호 메뉴 항목의 색입니다.","코드 조각 탭 정지의 강조 표시 배경색입니다.","코드 조각 탭 정지의 강조 표시 테두리 색입니다.","코드 조각 마지막 탭 정지의 강조 표시 배경색입니다.","코드 조각 마지막 탭 정지의 강조 표시 배경색입니다.","일치 항목 찾기의 개요 눈금자 표식 색입니다. 기본 장식을 숨기지 않도록 색은 불투명하지 않아야 합니다.","선택 항목의 개요 눈금자 표식 색이 강조 표시됩니다. 기본 장식을 숨기지 않도록 색은 불투명하지 않아야 합니다.","일치하는 항목을 찾기 위한 미니맵 표식 색입니다.","편집기 선택 작업을 위한 미니맵 마커 색입니다.","오류에 대한 미니맵 마커 색상입니다.","경고의 미니맵 마커 색상입니다.","미니맵 배경색입니다.","미니맵 슬라이더 배경색입니다.","마우스로 가리킬 때 미니맵 슬라이더 배경색입니다.","클릭했을 때 미니맵 슬라이더 배경색입니다.","문제 오류 아이콘에 사용되는 색입니다.","문제 경고 아이콘에 사용되는 색입니다.","문제 정보 아이콘에 사용되는 색입니다."], +"vs/platform/undoRedo/common/undoRedoService":["{0} 파일이 닫히고 디스크에서 수정되었습니다.","{0} 파일은 호환되지 않는 방식으로 수정되었습니다.","모든 파일에서 '{0}'을(를) 실행 취소할 수 없습니다. {1}","모든 파일에서 '{0}'을(를) 실행 취소할 수 없습니다. {1}","{1}에 변경 내용이 적용되었으므로 모든 파일에서 '{0}'을(를) 실행 취소할 수 없습니다.","{1}에서 실행 취소 또는 다시 실행 작업이 이미 실행 중이므로 모든 파일에서 '{0}'을(를) 실행 취소할 수 없습니다.","그동안 실행 취소 또는 다시 실행 작업이 발생했기 때문에 모든 파일에서 '{0}'을(를) 실행 취소할 수 없습니다.","모든 파일에서 '{0}'을(를) 실행 취소하시겠습니까?","{0}개 파일에서 실행 취소","이 파일 실행 취소","취소","실행 취소 또는 다시 실행 작업이 이미 실행 중이므로 '{0}'을(를) 실행 취소할 수 없습니다.","모든 파일에서 '{0}'을(를) 다시 실행할 수 없습니다. {1}","모든 파일에서 '{0}'을(를) 다시 실행할 수 없습니다. {1}","{1}에 변경 내용이 적용되었으므로 모든 파일에서 '{0}'을(를) 다시 실행할 수 없습니다.","{1}에서 실행 취소 또는 다시 실행 작업이 이미 실행 중이므로 모든 파일에서 '{0}'을(를) 다시 실행할 수 없습니다.","그동안 실행 취소 또는 다시 실행 작업이 발생했기 때문에 모든 파일에서 '{0}'을(를) 다시 실행할 수 없습니다.","실행 취소 또는 다시 실행 작업이 이미 실행 중이므로 '{0}'을(를) 다시 실행할 수 없습니다."]}); //# sourceMappingURL=../../../min-maps/vs/editor/editor.main.nls.ko.js.map \ No newline at end of file diff --git a/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/editor/editor.main.nls.ru.js b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/editor/editor.main.nls.ru.js index da6c7e9..c9d89f4 100644 --- a/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/editor/editor.main.nls.ru.js +++ b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/editor/editor.main.nls.ru.js @@ -1,8 +1,42 @@ /*!----------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. - * Version: 0.9.0(630109944f54bcdfc2dbaaff5f090c0843af6c66) + * Version: 0.21.2(67b5a8116f3c0bace36b180e524e05bb750a16d8) * Released under the MIT license * https://github.com/Microsoft/vscode/blob/master/LICENSE.txt *-----------------------------------------------------------*/ -define("vs/editor/editor.main.nls.ru",{"vs/base/browser/ui/actionbar/actionbar":["{0} ({1})"],"vs/base/browser/ui/aria/aria":["{0} (произошло снова)"],"vs/base/browser/ui/findinput/findInput":["ввод"],"vs/base/browser/ui/findinput/findInputCheckboxes":["С учетом регистра","Слово целиком","Использовать регулярное выражение"],"vs/base/browser/ui/inputbox/inputBox":["Ошибка: {0}","Предупреждение: {0}","Сведения: {0}"],"vs/base/common/keybindingLabels":["CTRL","SHIFT","ALT","Клавиша Windows","CTRL","SHIFT","ALT","Команда","CTRL","SHIFT","ALT","Клавиша Windows"],"vs/base/common/severity":["Ошибка","Предупреждение","Сведения"],"vs/base/parts/quickopen/browser/quickOpenModel":["{0}, средство выбора","средство выбора"],"vs/base/parts/quickopen/browser/quickOpenWidget":["Средство быстрого выбора. Введите, чтобы сузить результаты.","Средство быстрого выбора"],"vs/base/parts/tree/browser/treeDefaults":["Свернуть"],"vs/editor/browser/widget/diffReview":["Закрыть","Difference {0} of {1}: original {2}, {3} lines, modified {4}, {5} lines","blank","original {0}, modified {1}: {2}","+ modified {0}: {1}","- original {0}: {1}","Go to Next Difference","Go to Previous Difference"],"vs/editor/common/config/commonEditorConfig":["Редактор","Определяет семейство шрифтов.","Управляет насыщенностью шрифта.","Управляет размером шрифта в пикселях.","Управляет высотой строк. Укажите 0 для вычисления высоты строки по размеру шрифта.","Управляет интервалом между буквами в пикселях.",'Управляет видимостью номеров строк. Возможные значения: "on", "off" и "relative". Значение "relative" показывает количество строк, начиная с текущего положения курсора.',"Столбцы, в которых должны отображаться вертикальные линейки","Символы, которые будут использоваться как разделители слов при выполнении навигации или других операций, связанных со словами.",'Число пробелов в табуляции. Эта настройка переопределяется на основании содержимого файла, когда включен параметр "editor.detectIndentation".',"Ожидается число. Обратите внимание, что значение auto заменено параметром editor.detectIndentation.",'Вставлять пробелы при нажатии клавиши TAB. Эта настройка переопределяется на основании содержимого файла, когда включен параметр "editor.detectIndentation".',"Ожидается логическое значение. Обратите внимание, что значение auto заменено параметром editor.detectIndentation.","При открытии файла editor.tabSize и editor.insertSpaces будут определяться на основе содержимого файла.","Определяет, будут ли выделения иметь скругленные углы.","Определяет, будет ли содержимое редактора прокручиваться за последнюю строку.","Определяет, отображается ли мини-карта","Controls whether the minimap slider is automatically hidden.","Отображает фактические символы в строке вместо цветных блоков.","Ограничивает ширину мини-карты для отображения числа столбцов не больше определенного.","Определяет, можно ли передать строку поиска в мини-приложение поиска из текста, выделенного в редакторе",'Определяет, будет ли снят флажок "Поиск в выделенном", когда в редакторе выбрано несколько символов или строк текста',"Строки не будут переноситься никогда.","Строки будут переноситься по ширине окна просмотра.",'Строки будут переноситься по "editor.wordWrapColumn".','Строки будут перенесены по минимальному значению из двух: ширина окна просмотра и "editor.wordWrapColumn".','Определяет, как должны переноситься строки. Допустимые значения:\n - "off" (отключить перенос);\n - "on" (перенос окна просмотра);\n - "wordWrapColumn" (перенос в "editor.wordWrapColumn");\n - "bounded" (перенос при минимальной ширине окна просмотра и "editor.wordWrapColumn").','Определяет столбец переноса редактора, если значение "editor.wordWrap" — "wordWrapColumn" или "bounded".','Управляет отступом строк с переносом по словам. Допустимые значения: "none", "same" или "indent".',"Множитель, используемый для параметров deltaX и deltaY событий прокрутки колесика мыши.","Соответствует клавише CTRL в Windows и Linux и клавише COMMAND в OS X.","Соответствует клавише ALT в Windows и Linux и клавише OPTION в OS X.",'Модификатор, который будет использоваться для добавления нескольких курсоров с помощью мыши. "ctrlCmd" соответствует клавише CTRL в Windows и Linux и клавише COMMAND в OS X. Жесты мыши "Перейти к определению" и "Открыть ссылку" будут изменены так, чтобы они не конфликтовали с несколькими курсорами.',"Разрешение кратких предложений в строках.","Разрешение кратких предложений в комментариях.","Разрешение кратких предложений вне строк и комментариев.","Определяет, должны ли при вводе текста автоматически отображаться предложения","Управляет длительностью задержки (в мс), перед отображением кратких предложений.","Enables pop-up that shows parameter documentation and type information as you type","Определяет, должен ли редактор автоматически закрывать скобки после открытия.","Управляет параметром, определяющим, должен ли редактор автоматически форматировать строку после ввода.","Определяет, будет ли редактор автоматически форматировать вставленное содержимое. Модуль форматирования должен быть доступен и иметь возможность форматировать диапазон в документе.","Controls if the editor should automatically adjust the indentation when users type, paste or move lines. Indentation rules of the language must be available. ","Определяет, должны ли при вводе триггерных символов автоматически отображаться предложения.",'Определяет, будут ли предложения приниматься клавишей ВВОД в дополнение к клавише TAB. Это помогает избежать неоднозначности между вставкой новых строк и принятием предложений. Значение "smart" означает, что при изменении текста предложения будут приниматься только при нажатии клавиши ВВОД.','Определяет, будут ли предложения приниматься символами фиксации. Например, в JavaScript точка с запятой (";") может быть символом фиксации, принимающим предложение и вводящим данный символ.',"Управляет отображением фрагментов вместе с другими предложениями и их сортировкой.","Управляет тем, копируется ли текущая строка при копировании без выделения.","Определяет, следует ли оценивать завершения на основе слов в документе.","Размер шрифта мини-приложения предложений","Высота строки мини-приложения с предложениями","Определяет, будет ли редактор выделять фрагменты, совпадающие с выделенным текстом.","Определяет, должен ли редактор выделять экземпляры семантических символов.","Определяет, сколько украшений могут отображаться на одном месте в обзорной линейке.","Определяет, следует ли рисовать границу на обзорной линейке.",'Управляет стилем анимации курсора. Допустимые значения: "blink", "smooth", "phase", "expand" и "solid"',"Изменение размера шрифта в редакторе при нажатой клавише CTRL и движении колесика мыши",'Определяет стиль курсора. Допустимые значения: "block", "block-outline", "line", "line-thin", "underline" и "underline-thin"',"Включает лигатуры шрифта.","Управляет скрытием курсора в обзорной линейке.",'Определяет, должен ли редактор обрабатывать символы пробела; возможные значения: "none", "boundary" и "all". Параметр "boundary" не обрабатывает единичные пробелы между словами.',"Определяет, должны ли в редакторе отображаться управляющие символы.","Определяет, должны ли в редакторе отображаться направляющие отступа.","Определяет, должен ли редактор выделять текущую строку. Возможные значения: none, gutter, line и all.","Управляет показом групп связанных элементов кода в редакторе","Определяет, включено ли сворачивание кода в редакторе.","Определяет, будут ли автоматически скрываться элементы управления свертыванием на полях.","Выделяет соответствующие скобки при выборе одной из них.","Управляет отображением вертикальных полей глифа в редакторе. Поля глифа в основном используются для отладки.","Вставка и удаление пробелов после позиции табуляции","Удалить автоматически вставляемый конечный пробел","Оставлять быстрые редакторы открытыми, даже если дважды щелкнуто их содержимое или нажата клавиша ESC.","Определяет, следует ли редактору разрешить перемещение выделенных элементов с помощью перетаскивания.","Редактор будет определять, подключено ли средство чтения с экрана, с помощью API-интерфейсов платформы.","Редактор будет оптимизирован для использования со средством чтения с экрана в постоянном режиме.","Редактор никогда не будет оптимизироваться для использования со средством чтения с экрана.","Определяет, следует ли запустить редактор в режиме оптимизации для средства чтения с экрана.","Controls whether the editor should detect links and make them clickable","Определяет, как редактор несовпадений отображает отличия: рядом или в тексте.","Определяет, должен ли редактор несовпадений трактовать несовпадения символов-разделителей как различия.","Определяет отображение редактором несовпадений индикаторов +/- для добавленных или удаленных изменений","Контролирует, следует ли поддерживать первичный буфер обмена Linux."],"vs/editor/common/config/editorOptions":["Редактор сейчас недоступен. Чтобы открыть список действий, нажмите ALT+F1.","Содержимое редактора"],"vs/editor/common/controller/cursor":["Неожиданное исключение при выполнении команды."],"vs/editor/common/model/textModelWithTokens":["Не удалось разметить входные данные."],"vs/editor/common/modes/modesRegistry":["Обычный текст"],"vs/editor/common/services/bulkEdit":["Следующие файлы были изменены: {0}","Нет изменений","Сделано изменений {0} в {1} файлах","Сделано изменений {0} в одном файле"],"vs/editor/common/services/modelServiceImpl":["[{0}]\n{1}","[{0}] {1}"],"vs/editor/common/view/editorColorRegistry":["Цвет фона для выделения строки в позиции курсора.","Цвет фона границ вокруг строки в позиции курсора.","Цвет фона выделенных диапазонов, например в функциях быстрого открытия и поиска.","Цвет курсора редактора.","Цвет пробелов в редакторе.","Цвет направляющих для отступов редактора.","Цвет номеров строк редактора.","Цвет линейки редактора.","Цвет переднего плана элемента CodeLens в редакторе","Цвет фона парных скобок","Цвет прямоугольников парных скобок","Цвет границы для линейки в окне просмотра.","Цвет фона поля в редакторе. В поле размещаются отступы глифов и номера строк.","Цвет волнистой линии для выделения ошибок в редакторе.","Цвет границ волнистой линии для выделения ошибок в редакторе.","Цвет волнистой линии для выделения предупреждений в редакторе.","Цвет границ волнистой линии для выделения предупреждений в редакторе."],"vs/editor/contrib/bracketMatching/common/bracketMatching":["Перейти к скобке"],"vs/editor/contrib/caretOperations/common/caretOperations":["Переместить курсор влево","Переместить курсор вправо"],"vs/editor/contrib/caretOperations/common/transpose":["Транспортировать буквы"],"vs/editor/contrib/clipboard/browser/clipboard":["Вырезать","Копировать","Вставить","Копировать с выделением синтаксиса"],"vs/editor/contrib/comment/common/comment":["Закомментировать или раскомментировать строку","Закомментировать строку","Раскомментировать строку","Закомментировать или раскомментировать блок"],"vs/editor/contrib/contextmenu/browser/contextmenu":["Показать контекстное меню редактора"],"vs/editor/contrib/find/browser/findWidget":["Найти","Найти","Предыдущее соответствие","Следующее соответствие","Найти в выделении","Закрыть","Заменить","Заменить","Заменить","Заменить все",'Режим "Переключение замены"',"Отображаются только первые 999 результатов, но все операции поиска выполняются со всем текстом.","{0} из {1}","Нет результатов"],"vs/editor/contrib/find/common/findController":["Найти","Найти далее","Найти ранее","Найти следующее выделение","Найти предыдущее выделение","Заменить","Добавить выделение в следующее найденное совпадение","Добавить выделенный фрагмент в предыдущее найденное совпадение","Переместить последнее выделение в следующее найденное совпадение","Переместить последний выделенный фрагмент в предыдущее найденное совпадение","Выбрать все вхождения найденных совпадений","Изменить все вхождения"],"vs/editor/contrib/folding/browser/folding":["Развернуть","Развернуть рекурсивно","Свернуть","Свернуть рекурсивно","Свернуть все","Развернуть все","Уровень папки {0}"],"vs/editor/contrib/format/browser/formatActions":["Внесена одна правка форматирования в строке {0}.","Внесены правки форматирования ({0}) в строке {1}.","Внесена одна правка форматирования между строками {0} и {1}.","Внесены правки форматирования ({0}) между строками {1} и {2}.","Форматировать документ","Форматировать выбранный фрагмент"],"vs/editor/contrib/goToDeclaration/browser/goToDeclarationCommands":['Определение для "{0}" не найдено.',"Определения не найдены."," — определения {0}","Перейти к определению","Открыть определение сбоку","Показать определение",'Не найдена реализация для "{0}".',"Не найдена реализация.","— {0} реализаций","Перейти к реализации","Показать реализацию",'Не найдено определение типа для "{0}".',"Не найдено определение типа.","— {0} определений типов","Перейти к определению типа","Показать определение типа"],"vs/editor/contrib/goToDeclaration/browser/goToDeclarationMouse":["Щелкните, чтобы отобразить определения ({0})."],"vs/editor/contrib/gotoError/browser/gotoError":["({0}/{1})","Перейти к следующей ошибке или предупреждению","Перейти к предыдущей ошибке или предупреждению","Цвет ошибки в мини-приложении навигации по меткам редактора.","Цвет предупреждения в мини-приложении навигации по меткам редактора.","Фон мини-приложения навигации по меткам редактора."],"vs/editor/contrib/hover/browser/hover":["Показать при наведении"],"vs/editor/contrib/hover/browser/modesContentHover":["Идет загрузка..."],"vs/editor/contrib/inPlaceReplace/common/inPlaceReplace":["Заменить предыдущим значением","Заменить следующим значением"],"vs/editor/contrib/linesOperations/common/linesOperations":["Копировать строку сверху","Копировать строку снизу","Переместить строку вверх","Переместить строку вниз","Сортировка строк по возрастанию","Сортировка строк по убыванию","Удалить конечные символы-разделители","Удалить строку","Увеличить отступ","Уменьшить отступ","Вставить строку выше","Вставить строку ниже","Удалить все слева","Удалить все справа","_Объединить строки","Транспонировать символы вокруг курсора","Преобразовать в верхний регистр","Преобразовать в нижний регистр"],"vs/editor/contrib/links/browser/links":["Щелкните с нажатой клавишей Cmd, чтобы перейти по ссылке","Щелкните с нажатой клавишей Ctrl, чтобы перейти по ссылке","Щелкните с нажатой клавишей ALT, чтобы перейти по ссылке.","Не удалось открыть ссылку, так как она имеет неправильный формат: {0}","Не удалось открыть ссылку, у нее отсутствует целевой объект.","Открыть ссылку"],"vs/editor/contrib/multicursor/common/multicursor":["Добавить курсор выше","Добавить курсор ниже","Добавить курсоры к окончаниям строк"],"vs/editor/contrib/parameterHints/browser/parameterHints":["Переключить подсказки к параметрам"],"vs/editor/contrib/parameterHints/browser/parameterHintsWidget":["{0}, подсказка"],"vs/editor/contrib/quickFix/browser/quickFixCommands":["Показать исправления ({0})","Показать исправления","Быстрое исправление"],"vs/editor/contrib/referenceSearch/browser/referenceSearch":[" — ссылки {0}","Найти все ссылки"],"vs/editor/contrib/referenceSearch/browser/referencesController":["Идет загрузка..."],"vs/editor/contrib/referenceSearch/browser/referencesModel":["ссылка в {0} в строке {1} и символе {2}","1 symbol in {0}, full path {1}","{0} symbols in {1}, full path {2}","Результаты не найдены","Обнаружен 1 символ в {0}","Обнаружено {0} символов в {1}","Обнаружено {0} символов в {1} файлах"],"vs/editor/contrib/referenceSearch/browser/referencesWidget":["Не удалось разрешить файл.","Ссылок: {0}","{0} ссылка","предварительный просмотр недоступен","Ссылки","Результаты отсутствуют","Ссылки","Цвет фона области заголовка быстрого редактора.","Цвет заголовка быстрого редактора.","Цвет сведений о заголовке быстрого редактора.","Цвет границ быстрого редактора и массива.","Цвет фона в списке результатов представления быстрого редактора.","Цвет переднего плана узлов строки в списке результатов быстрого редактора.","Цвет переднего плана узлов файла в списке результатов быстрого редактора.","Цвет фона выбранной записи в списке результатов быстрого редактора.","Цвет переднего плана выбранной записи в списке результатов быстрого редактора.","Цвет фона быстрого редактора.","Цвет фона поля в окне быстрого редактора.","Цвет выделения совпадений в списке результатов быстрого редактора.","Цвет выделения совпадений в быстром редакторе."],"vs/editor/contrib/rename/browser/rename":["Результаты отсутствуют.","«{0}» успешно переименован в «{1}». Сводка: {2}","Не удалось переименовать.","Переименовать символ"],"vs/editor/contrib/rename/browser/renameInputField":["Введите новое имя для входных данных и нажмите клавишу ВВОД для подтверждения."],"vs/editor/contrib/smartSelect/common/smartSelect":["Развернуть выделение","Сжать выделение"],"vs/editor/contrib/suggest/browser/suggestController":['При принятии "{0}" был добавлен следующий текст: "{1}"',"Переключить предложение"],"vs/editor/contrib/suggest/browser/suggestWidget":["Цвет фона виджета подсказок.","Цвет границ виджета подсказок.","Цвет переднего плана мини-приложения предложений.","Фоновый цвет выбранной записи в мини-приложении предложений.","Цвет выделения соответствия в мини-приложении предложений.","Подробнее...{0}","{0}, предложение, содержит данные","{0}, предложение","Кратко...{0}","Идет загрузка...","Предложения отсутствуют.","{0}, принято","{0}, предложение, содержит данные","{0}, предложение"],"vs/editor/contrib/toggleTabFocusMode/common/toggleTabFocusMode":["Переключение клавиши TAB перемещает фокус."],"vs/editor/contrib/wordHighlighter/common/wordHighlighter":["Цвет фона символа при доступе на чтение, например считывании переменной.","Цвет фона символа при доступе на запись, например записи переменной."],"vs/editor/contrib/zoneWidget/browser/peekViewWidget":["Закрыть"],"vs/editor/standalone/browser/inspectTokens/inspectTokens":["Developer: Inspect Tokens"],"vs/editor/standalone/browser/quickOpen/gotoLine":["Go to line {0} and character {1}","Go to line {0}","Type a line number between 1 and {0} to navigate to","Type a character between 1 and {0} to navigate to","Go to line {0}","Type a line number, followed by an optional colon and a character number to navigate to","Go to Line..."],"vs/editor/standalone/browser/quickOpen/quickCommand":["{0}, commands","Type the name of an action you want to execute","Command Palette"],"vs/editor/standalone/browser/quickOpen/quickOutline":["{0}, symbols","Type the name of an identifier you wish to navigate to","Go to Symbol...","symbols ({0})","modules ({0})","classes ({0})","interfaces ({0})","methods ({0})","functions ({0})","properties ({0})","variables ({0})","variables ({0})","constructors ({0})","calls ({0})"],"vs/editor/standalone/browser/standaloneCodeEditor":["Editor content","Press Ctrl+F1 for Accessibility Options.","Press Alt+F1 for Accessibility Options."],"vs/editor/standalone/browser/toggleHighContrast/toggleHighContrast":["Toggle High Contrast Theme"],"vs/platform/configuration/common/configurationRegistry":["Переопределения конфигурации по умолчанию","Настройка переопределяемых параметров редактора для языка {0}.","Настройка параметров редактора, переопределяемых для языка.","Невозможно зарегистрировать \"{0}\". Оно соответствует шаблону свойства '\\\\[.*\\\\]$' для описания параметров редактора, определяемых языком. Используйте участие configurationDefaults.",'Невозможно зарегистрировать "{0}". Это свойство уже зарегистрировано.'],"vs/platform/keybinding/common/abstractKeybindingService":["Была нажата клавиша ({0}). Ожидание нажатия второй клавиши сочетания...","Сочетание клавиш ({0} и {1}) не является командой."],"vs/platform/message/common/message":["Закрыть","Позже","Отмена"],"vs/platform/theme/common/colorRegistry":["Недопустимый формат цвета. Используйте #RGB, #RGBA, #RRGGBB или #RRGGBBAA","Цвета, используемые на рабочем месте.","Общий цвет переднего плана. Этот цвет используется, только если его не переопределит компонент.","Общий цвет переднего плана для сообщений об ошибках. Этот цвет используется только если его не переопределяет компонент.","Цвет текста элемента, содержащего пояснения, например, для метки.","Общий цвет границ для элементов с фокусом. Этот цвет используется только в том случае, если не переопределен в компоненте.","Дополнительная граница вокруг элементов, которая отделяет их от других элементов для улучшения контраста.","Дополнительная граница вокруг активных элементов, которая отделяет их от других элементов для улучшения контраста.","The background color of text selections in the workbench (e.g. for input fields or text areas). Note that this does not apply to selections within the editor.","Цвет для разделителей текста.","Цвет переднего плана для ссылок в тексте.","Цвет переднего фона для активных ссылок в тексте.","Цвет текста фиксированного формата.","Цвет фона для блоков с цитатами в тексте.","Цвет границ для блоков с цитатами в тексте.","Цвет фона для программного кода в тексте.",'Цвет тени мини-приложений редактора, таких как "Найти/заменить".',"Фон поля ввода.","Передний план поля ввода.","Граница поля ввода.","Цвет границ активированных параметров в полях ввода.","Цвет фона поясняющего текста в элементе ввода.",'Фоновый цвет проверки ввода для уровня серьезности "Сведения".','Цвет границы проверки ввода для уровня серьезности "Сведения".','Фоновый цвет проверки ввода для уровня серьезности "Предупреждение".','Цвет границы проверки ввода для уровня серьезности "Предупреждение".','Фоновый цвет проверки ввода для уровня серьезности "Ошибка".','Цвет границы проверки ввода для уровня серьезности "Ошибка".',"Фон раскрывающегося списка.","Передний план раскрывающегося списка.","Граница раскрывающегося списка.","Фоновый цвет находящегося в фокусе элемента List/Tree, когда элемент List/Tree активен. На активном элементе List/Tree есть фокус клавиатуры, на неактивном — нет.","Цвет переднего плана находящегося в фокусе элемента List/Tree, когда элемент List/Tree активен. На активном элементе List/Tree есть фокус клавиатуры, на неактивном — нет.","Фоновый цвет выбранного элемента List/Tree, когда элемент List/Tree активен. На активном элементе List/Tree есть фокус клавиатуры, на неактивном — нет.","Цвет переднего плана выбранного элемента List/Tree, когда элемент List/Tree активен. На активном элементе List/Tree есть фокус клавиатуры, на неактивном — нет.","Фоновый цвет выбранного элемента List/Tree, когда элемент List/Tree неактивен. На активном элементе List/Tree есть фокус клавиатуры, на неактивном — нет.","Цвет текста выбранного элемента List/Tree, когда элемент List/Tree неактивен. На активном элементе List/Tree есть фокус клавиатуры, на неактивном — нет.","Фоновый цвет элементов List/Tree при наведении курсора мыши.","Цвет переднего плана элементов List/Tree при наведении курсора мыши.","Фоновый цвет элементов List/Tree при перемещении с помощью мыши.","Цвет переднего плана для выделения соответствия при поиске по элементу List/Tree.","Цвет средства быстрого выбора для группировки меток.","Цвет средства быстрого выбора для группировки границ.","Цвет переднего плана кнопки.","Цвет фона кнопки.","Цвет фона кнопки при наведении.","Цвет фона бэджа. Бэджи - небольшие информационные элементы, отображающие количество, например, результатов поиска.","Цвет текста бэджа. Бэджи - небольшие информационные элементы, отображающие количество, например, результатов поиска.","Цвет тени полосы прокрутки, которая свидетельствует о том, что содержимое прокручивается.","Цвет фона ползунка.","Цвет фона ползунка при наведении.","Цвет фона активного ползунка.","Цвет фона индикатора выполнения, который может отображаться для длительных операций.","Цвет фона редактора.","Цвет переднего плана редактора по умолчанию.","Цвет фона виджетов редактора, таких как найти/заменить.","Цвет границы мини-приложений редактора. Этот цвет используется только в том случае, если у мини-приложения есть граница и если этот цвет не переопределен мини-приложением.","Color of the editor selection.","Color of the selected text for high contrast.","Цвет выделения в неактивном редакторе.","Цвет регионов с тем же содержимым, что и в выделении.","Цвет текущего поиска совпадений.","Цвет других совпадений поиска.","Цвет диапазона, ограничивающего поиск.","Выделение под словом, для которого показано наведение.","Цвет фона при наведении указателя на редактор.","Цвет границ при наведении указателя на редактор.","Цвет активных ссылок.","Цвет фона для добавленных строк.","Цвет фона для удаленных строк.","Цвет контура для добавленных строк.","Цвет контура для удаленных строк.","Цвет фона текущего заголовка во внутренних конфликтах слияния.","Цвет фона текущего содержимого во внутренних конфликтах слияния.","Цвет фона входящего заголовка во внутренних конфликтах слияния.","Цвет фона входящего содержимого во внутренних конфликтах слияния.","Common ancestor header background in inline merge-conflicts.","Common ancester content background in inline merge-conflicts.","Цвет границы заголовков и разделителя во внутренних конфликтах слияния.","Цвет переднего плана линейки текущего окна во внутренних конфликтах слияния.","Цвет переднего плана линейки входящего окна во внутренних конфликтах слияния.","Common ancestor overview ruler foreground for inline merge-conflicts."]}); +define("vs/editor/editor.main.nls.ru",{"vs/base/browser/ui/actionbar/actionViewItems":["{0} ({1})"],"vs/base/browser/ui/findinput/findInput":["входные данные"],"vs/base/browser/ui/findinput/findInputCheckboxes":["С учетом регистра","Слово целиком","Использовать регулярное выражение"],"vs/base/browser/ui/findinput/replaceInput":["входные данные","Сохранить регистр"],"vs/base/browser/ui/inputbox/inputBox":["Ошибка: {0}","Предупреждение: {0}","Информация: {0}"],"vs/base/browser/ui/keybindingLabel/keybindingLabel":["свободный"],"vs/base/browser/ui/menu/menu":["{0} ({1})"],"vs/base/browser/ui/tree/abstractTree":["Сброс","Отключить фильтр по типу","Включить фильтр по типу","Элементы не найдены","Сопоставлено элементов: {0} из {1}"], +"vs/base/common/errorMessage":["{0}: {1}","Произошла системная ошибка ({0})","Произошла неизвестная ошибка. Подробные сведения см. в журнале.","Произошла неизвестная ошибка. Подробные сведения см. в журнале.","{0} (всего ошибок: {1})","Произошла неизвестная ошибка. Подробные сведения см. в журнале."],"vs/base/common/keybindingLabels":["CTRL","SHIFT","ALT","Windows","CTRL","SHIFT","ALT","Превосходно","CTRL","SHIFT","ALT","Команда","CTRL","SHIFT","ALT","Windows","CTRL","SHIFT","ALT","Превосходно"],"vs/base/parts/quickinput/browser/quickInput":["Назад","{0} / {1}","Введите текст, чтобы уменьшить число результатов.","Результаты: {0}","{0} выбрано","OK","Другой","Назад ({0})","Назад"],"vs/base/parts/quickinput/browser/quickInputList":["Быстрый ввод"],"vs/editor/browser/controller/coreCommands":["Размещать на конце даже для более длинных строк","Размещать на конце даже для более длинных строк"], +"vs/editor/browser/controller/textAreaHandler":["редактор","Сейчас редактор недоступен. Нажмите {0} для отображения вариантов."],"vs/editor/browser/editorExtensions":["&&Отменить","Отменить","&&Повторить","Вернуть","&&Выделить все","Выбрать все"],"vs/editor/browser/widget/codeEditorWidget":["Количество курсоров ограничено {0}."],"vs/editor/browser/widget/diffEditorWidget":["Нельзя сравнить файлы, потому что один из файлов слишком большой."],"vs/editor/browser/widget/diffReview":["Закрыть","нет измененных строк","1 строка изменена","Строк изменено: {0}","Различие {0} из {1}: исходная строка {2}, {3}, измененная строка {4}, {5}","пустой","{0} неизмененная строка {1}","{0} исходная строка {1} измененная строка {2}","+ {0} измененная строка {1}","- {0} исходная строка {1}","Перейти к следующему различию","Перейти к предыдущему различию"], +"vs/editor/browser/widget/inlineDiffMargin":["Копировать удаленные строки","Копировать удаленную строку","Копировать удаленную строку ({0})","Отменить это изменение","Копировать удаленную строку ({0})"], +"vs/editor/common/config/commonEditorConfig":["Редактор",'Число пробелов в табуляции. Этот параметр переопределяется на основе содержимого файла, если установлен параметр "#editor.detectIndentation#".','Вставлять пробелы при нажатии клавиши TAB. Этот параметр переопределяется на основе содержимого файла, если установлен параметр "#editor.detectIndentation#". ','Управляет тем, будут ли параметры "#editor.tabSize#" и "#editor.insertSpaces#" определяться автоматически при открытии файла на основе содержимого файла.',"Удалить автоматически вставляемый конечный пробел.","Специальная обработка для больших файлов с отключением некоторых функций, которые интенсивно используют память.","Определяет, следует ли оценивать завершения на основе слов в документе.","Семантическое выделение включено для всех цветовых тем.","Семантическое выделение отключено для всех цветовых тем.",'Семантическое выделение настраивается с помощью параметра "semanticHighlighting" текущей цветовой темы.',"Определяет показ семантической подсветки для языков, поддерживающих ее.","Оставлять быстрый редактор открытым даже при двойном щелчке по его содержимому и при нажатии ESC.","Строки, длина которых превышает указанное значение, не будут размечены из соображений производительности","Время ожидания в миллисекундах, по истечении которого вычисление несовпадений отменяется. Укажите значение 0, чтобы не использовать время ожидания.","Определяет, как редактор несовпадений отображает отличия: рядом или в тексте.","Когда параметр включен, редактор несовпадений игнорирует изменения начального или конечного пробела.","Определяет, должны ли в редакторе отображаться индикаторы +/- для добавленных или удаленных изменений.","Определяет, отображается ли CodeLens в редакторе."], +"vs/editor/common/config/editorOptions":["Редактор будет определять, подключено ли средство чтения с экрана, с помощью API-интерфейсов платформы.","Редактор будет оптимизирован для использования со средством чтения с экрана в постоянном режиме.","Редактор никогда не будет оптимизироваться для использования со средством чтения с экрана.","Определяет, следует ли запустить редактор в режиме оптимизации для средства чтения с экрана.","Определяет, вставляется ли пробел при комментировании.","Определяет, должны ли пустые строки игнорироваться с помощью действий переключения, добавления или удаления для комментариев к строкам.","Управляет тем, копируется ли текущая строка при копировании без выделения.","Определяет, должен ли курсор перемещаться для поиска совпадений при вводе.","Определяет, можно ли передать строку поиска в мини-приложение поиска из текста, выделенного в редакторе.",'Никогда не включать функцию "Найти в выделении" автоматически (по умолчанию)','Всегда включать функцию "Найти в выделении" автоматически','Автоматическое включение функции "Найти в выделении" при выборе нескольких строк содержимого.',"Управляет условием автоматического включения поиска в выделенном фрагменте.","Определяет, должно ли мини-приложение поиска считывать или изменять общий буфер обмена поиска в macOS.","Определяет, должно ли мини-приложение поиска добавлять дополнительные строки в начале окна редактора. Если задано значение true, вы можете прокрутить первую строку при отображаемом мини-приложении поиска.","Определяет, будет ли поиск автоматически перезапускаться с начала (или с конца), если не найдено никаких других соответствий.","Включает/отключает лигатуры шрифта.","Явные параметры для функций шрифтов.","Настраивает лигатуры или функции шрифтов.","Определяет размер шрифта в пикселях.",'Допускаются только ключевые слова "normal" или "bold" и числа в диапазоне от 1 до 1000.','Управляет насыщенностью шрифта. Допустимые значения: ключевые слова "normal" или "bold", а также числа в диапазоне от 1 до 1000.',"Показать предварительные результаты (по умолчанию)","Перейти к основному результату и показать быстрый редактор","Перейдите к основному результату и включите быструю навигацию для остальных","Этот параметр устарел. Используйте вместо него отдельные параметры, например, 'editor.editor.gotoLocation.multipleDefinitions' или 'editor.editor.gotoLocation.multipleImplementations'.",'Управляет поведением команды "Перейти к определению" при наличии нескольких целевых расположений.','Управляет поведением команды "Перейти к определению типа" при наличии нескольких целевых расположений.','Управляет поведением команды "Перейти к объявлению" при наличии нескольких целевых расположений.','Управляет поведением команды "Перейти к реализациям" при наличии нескольких целевых расположений.','Управляет поведением команды "Перейти к ссылкам" при наличии нескольких целевых расположений.','Идентификатор альтернативной команды, выполняемой в том случае, когда результатом операции "Перейти к определению" является текущее расположение.','Идентификатор альтернативной команды, которая выполняется в том случае, если результатом операции "Перейти к определению типа" является текущее расположение.','Идентификатор альтернативный команды, выполняемой в том случае, когда результатом операции "Перейти к объявлению" является текущее расположение.','Идентификатор альтернативный команды, выполняемой, когда результатом команды "Перейти к реализации" является текущее расположение.','Идентификатор альтернативной команды, выполняемой в том случае, когда результатом выполнения операции "Перейти к ссылке" является текущее расположение.',"Управляет тем, отображается ли наведение.","Определяет время задержки в миллисекундах перед отображением наведения.","Управляет тем, должно ли наведение оставаться видимым при наведении на него курсора мыши.","Включает индикатор действия кода в редакторе.","Управляет высотой строк. Укажите 0 для вычисления высоты строки по размеру шрифта.","Определяет, отображается ли мини-карта.","Мини-карта имеет такой же размер, что и содержимое редактора (возможна прокрутка).","Мини-карта будет растягиваться или сжиматься по мере необходимости, чтобы заполнить редактор по высоте (без прокрутки).","Миникарта будет уменьшаться по мере необходимости, чтобы никогда не быть больше, чем редактор (без прокрутки).","Управляет размером миникарты.","Определяет, с какой стороны будет отображаться мини-карта.","Определяет, когда отображается ползунок мини-карты.","Масштаб содержимого, нарисованного на мини-карте: 1, 2 или 3.","Отображает фактические символы в строке вместо цветных блоков.","Ограничивает ширину мини-карты, чтобы количество отображаемых столбцов не превышало определенное количество.","Задает пространство между верхним краем редактора и первой строкой.","Задает пространство между нижним краем редактора и последней строкой.","Включает всплывающее окно с документацией по параметру и сведениями о типе, которое отображается во время набора.","Определяет, меню подсказок остается открытым или закроется при достижении конца списка.","Разрешение кратких предложений в строках.","Разрешение кратких предложений в комментариях.","Разрешение кратких предложений вне строк и комментариев.","Определяет, должны ли при вводе текста автоматически отображаться предложения.","Номера строк не отображаются.","Отображаются абсолютные номера строк.","Отображаемые номера строк вычисляются как расстояние в строках до положения курсора.","Номера строк отображаются каждые 10 строк.","Управляет отображением номеров строк.","Число моноширинных символов, при котором будет отрисовываться линейка этого редактора.","Цвет линейки этого редактора.","Отображать вертикальные линейки после определенного числа моноширинных символов. Для отображения нескольких линеек укажите несколько значений. Если не указано ни одного значения, вертикальные линейки отображаться не будут.","Вставить предложение без перезаписи текста справа от курсора.","Вставить предложение и перезаписать текст справа от курсора.","Определяет, будут ли перезаписываться слова при принятии вариантов завершения. Обратите внимание, что это зависит от расширений, использующих эту функцию.","Управляет тем, допускаются ли небольшие опечатки в предложениях фильтрации и сортировки.","Определяет, следует ли учитывать при сортировке слова, расположенные рядом с курсором.",'Определяет, используются ли сохраненные варианты выбора предложений совместно несколькими рабочими областями и окнами (требуется "#editor.suggestSelection#").',"Определяет, запрещает ли активный фрагмент кода экспресс-предложения.","Указывает, нужно ли отображать значки в предложениях.","Определяет, сколько предложений IntelliSense будет показано до отображения полосы прокрутки (максимум 15).","Этот параметр устарел. Используйте вместо него отдельные параметры, например, 'editor.suggest.showKeywords' или 'editor.suggest.showSnippets'.",'Когда параметр включен, в IntelliSense отображаются предложения "method".','Когда параметр включен, в IntelliSense отображаются предложения "function".','Когда параметр включен, в IntelliSense отображаются предложения "constructor".','Когда параметр включен, в IntelliSense отображаются предложения "field".','Когда параметр включен, в IntelliSense отображаются предложения "variable".','Когда параметр включен, в IntelliSense отображаются предложения "class".','Когда параметр включен, в IntelliSense отображаются предложения "struct".','Когда параметр включен, в IntelliSense отображаются предложения "interface".','Когда параметр включен, в IntelliSense отображаются предложения "module".','Когда параметр включен, в IntelliSense отображаются предложения "property".','Когда параметр включен, в IntelliSense отображаются предложения "event".','Когда параметр включен, в IntelliSense отображаются предложения "operator".','Когда параметр включен, в IntelliSense отображаются предложения "unit".','Когда параметр включен, в IntelliSense отображаются предложения "value".','Когда параметр включен, в IntelliSense отображаются предложения "constant".','Когда параметр включен, в IntelliSense отображаются предложения "enum".','Когда параметр включен, в IntelliSense отображаются предложения "enumMember".','Когда параметр включен, в IntelliSense отображаются предложения "keyword".','Когда параметр включен, в IntelliSense отображаются предложения "text".','Когда параметр включен, в IntelliSense отображаются предложения "color".','Когда параметр включен, в IntelliSense отображаются предложения "file".','Когда параметр включен, в IntelliSense отображаются предложения "reference".','Когда параметр включен, в IntelliSense отображаются предложения "customcolor".','Когда параметр включен, в IntelliSense отображаются предложения "folder".','Когда параметр включен, в IntelliSense отображаются предложения "typeParameter".','Когда параметр включен, в IntelliSense отображаются предложения "snippet".','Во включенном состоянии IntelliSense показывает предложения типа "пользователи".','Во включенном состоянии IntelliSense отображает предложения типа "проблемы".',"Определяет видимость строки состояния в нижней части виджета предложений.",'Определяет, будут ли предложения приниматься при вводе символов фиксации. Например, в JavaScript точка с запятой (";") может быть символом фиксации, при вводе которого предложение принимается.',"Принимать предложение при нажатии клавиши ВВОД только в том случае, если оно изменяет текст.","Определяет, будут ли предложения приниматься клавишей ВВОД в дополнение к клавише TAB. Это помогает избежать неоднозначности между вставкой новых строк и принятием предложений.","Задает количество строк в редакторе, которые могут быть прочитаны средством чтения с экрана. Предупреждение: из-за технических ограничений этот число не может превышать значение по умолчанию.","Содержимое редактора","Использовать конфигурации языка для автоматического закрытия скобок.","Автоматически закрывать скобки только в том случае, если курсор находится слева от пробела.","Определяет, должен ли редактор автоматически добавлять закрывающую скобку при вводе пользователем открывающей скобки.","Заменять закрывающие кавычки и скобки при вводе только в том случае, если кавычки или скобки были вставлены автоматически.","Определяет, должны ли в редакторе заменяться закрывающие кавычки или скобки при вводе.","Использовать конфигурации языка для автоматического закрытия кавычек.","Автоматически закрывать кавычки только в том случае, если курсор находится слева от пробела.","Определяет, должен ли редактор автоматически закрывать кавычки, если пользователь добавил открывающую кавычку.","Редактор не будет вставлять отступы автоматически.","Редактор будет сохранять отступ текущей строки.","Редактор будет сохранять отступы текущей строки и учитывать скобки в соответствии с синтаксисом языка.","Редактор будет сохранять отступ текущей строки, учитывать определенные языком скобки и вызывать специальные правила onEnterRules, определяемые языками.","Редактор будет сохранять отступ текущей строки, учитывать определенные языком скобки, вызывать специальные правила onEnterRules, определяемые языками и учитывать правила отступа indentationRules, определяемые языками.","Определяет, должен ли редактор автоматически изменять отступы, когда пользователи вводят, вставляют или перемещают текст или изменяют отступы строк.","Использовать конфигурации языка для автоматического обрамления выделений.","Обрамлять с помощью кавычек, а не скобок.","Обрамлять с помощью скобок, а не кавычек.","Определяет, должен ли редактор автоматически обрамлять выделения.","Определяет, отображается ли CodeLens в редакторе.","Определяет, должны ли в редакторе отображаться внутренние декораторы цвета и средство выбора цвета.","Включение того, что выбор с помощью клавиатуры и мыши приводит к выбору столбца.","Определяет, будет ли текст скопирован в буфер обмена с подсветкой синтаксиса.","Управляет стилем анимации курсора.","Управляет тем, следует ли включить плавную анимацию курсора.","Управляет стилем курсора.",'Определяет минимальное число видимых начальных и конечных линий, окружающих курсор. Этот параметр имеет название "scrollOff" или "scrollOffset" в некоторых других редакторах.','"cursorSurroundingLines" применяется только при запуске с помощью клавиатуры или API.','"cursorSurroundingLines" принудительно применяется во всех случаях.','Определяет, когда необходимо применять "cursorSurroundingLines".',"Управляет шириной курсора, когда для параметра \"#editor.cursorStyle#\" установлено значение 'line'","Определяет, следует ли редактору разрешить перемещение выделенных элементов с помощью перетаскивания.","Коэффициент увеличения скорости прокрутки при нажатии клавиши ALT.","Определяет, включено ли свертывание кода в редакторе.","Используйте стратегию свертывания для конкретного языка, если она доступна, в противном случае используйте стратегию на основе отступов.","Используйте стратегию свертывания на основе отступов.","Управляет стратегией для вычисления свертываемых диапазонов.","Определяет, должен ли редактор выделять сложенные диапазоны.","Определяет, будет ли щелчок пустого содержимого после свернутой строки развертывать ее.","Определяет семейство шрифтов.","Определяет, будет ли редактор автоматически форматировать вставленное содержимое. Модуль форматирования должен быть доступен и иметь возможность форматировать диапазон в документе.","Управляет параметром, определяющим, должен ли редактор автоматически форматировать строку после ввода.","Управляет отображением вертикальных полей глифа в редакторе. Поля глифа в основном используются для отладки.","Управляет скрытием курсора в обзорной линейке.","Управляет тем, должна ли выделяться активная направляющая отступа в редакторе.","Управляет интервалом между буквами в пикселях.","Определяет, должен ли редактор определять ссылки и делать их доступными для щелчка.","Выделять соответствующие скобки.","Множитель, используемый для параметров deltaX и deltaY событий прокрутки колесика мыши.","Изменение размера шрифта в редакторе при нажатой клавише CTRL и движении колесика мыши.","Объединить несколько курсоров, когда они перекрываются.","Соответствует клавише CTRL в Windows и Linux и клавише COMMAND в macOS.","Соответствует клавише ALT в Windows и Linux и клавише OPTION в macOS.",'Модификатор, который будет использоваться для добавления нескольких курсоров с помощью мыши. Жесты мыши "Перейти к определению" и "Открыть ссылку" будут изменены так, чтобы они не конфликтовали с несколькими курсорами. [Дополнительные сведения](https://code.visualstudio.com/docs/editor/codebasics#_multicursor-modifier). ',"Каждый курсор вставляет одну строку текста.","Каждый курсор вставляет полный текст.","Управляет вставкой, когда число вставляемых строк соответствует числу курсоров.","Определяет, должен ли редактор выделять экземпляры семантических символов.","Определяет, должна ли отображаться граница на обзорной линейке.","Фокусировка на дереве при открытии обзора","Фокусировка на редакторе при открытии обзора","Определяет, следует ли переключить фокус на встроенный редактор или дерево в виджете обзора.","Определяет, всегда ли жест мышью для перехода к определению открывает мини-приложение быстрого редактирования.","Управляет длительностью задержки (в мс) перед отображением кратких предложений.","Определяет, выполняет ли редактор автоматическое переименование по типу.","Определяет, должны ли в редакторе отображаться управляющие символы.","Определяет, должны ли в редакторе отображаться направляющие отступа.","Отображение номера последней строки, когда файл заканчивается новой строкой.","Выделяет поле и текущую строку.","Определяет, должен ли редактор выделять текущую строку.","Определяет, должен ли редактор отрисовывать выделение текущей строки, только когда он находится в фокусе","Отрисовка пробелов, кроме одиночных пробелов между словами.","Отображать пробелы только в выделенном тексте.","Отображать только конечные пробелы","Определяет, должны ли в редакторе отображаться пробелы.","Управляет тем, необходимо ли отображать скругленные углы для выделения.","Управляет количеством дополнительных символов, на которое содержимое редактора будет прокручиваться по горизонтали.","Определяет, будет ли содержимое редактора прокручиваться за последнюю строку.","Прокрутка только вдоль основной оси при прокрутке по вертикали и горизонтали одновременно. Предотвращает смещение по горизонтали при прокрутке по вертикали на трекпаде.","Контролирует, следует ли поддерживать первичный буфер обмена Linux.","Определяет, должен ли редактор выделять совпадения, аналогичные выбранному фрагменту.","Всегда показывать свертываемые элементы управления.","Показывать только элементы управления свертывания, когда указатель мыши находится над переплетом.","Определяет, когда элементы управления свертывания отображаются на переплете.","Управляет скрытием неиспользуемого кода.","Управляет перечеркиванием устаревших переменных.","Отображать предложения фрагментов поверх других предложений.","Отображать предложения фрагментов под другими предложениями.","Отображать предложения фрагментов рядом с другими предложениями.","Не отображать предложения фрагментов.","Управляет отображением фрагментов вместе с другими предложениями и их сортировкой.","Определяет, будет ли использоваться анимация при прокрутке содержимого редактора",'Размер шрифта мини-приложения с предложениями. Если установить значение "0", будет использовано значение "#editor.fontSize#".','Высота строки мини-приложения с предложениями. Если установить значение "0", будет использовано значение "#editor.lineHeight#".',"Определяет, должны ли при вводе триггерных символов автоматически отображаться предложения.","Всегда выбирать первое предложение.",'Выбор недавних предложений, если только дальнейший ввод не приводит к использованию одного из них, например "console.| -> console.log", так как "log" недавно использовался для завершения.','Выбор предложений с учетом предыдущих префиксов, использованных для завершения этих предложений, например "co -> console" и "con -> const".',"Управляет предварительным выбором предложений при отображении списка предложений.","При использовании дополнения по TAB будет добавляться наилучшее предложение при нажатии клавиши TAB.","Отключить дополнение по TAB.",'Вставка дополнений по TAB при совпадении их префиксов. Функция работает оптимально, если параметр "quickSuggestions" отключен.',"Включает дополнения по TAB.","Необычные символы завершения строки игнорируются.","Для необычных символов завершения строки запрашивается удаление.","Необычные символы завершения строки автоматически удаляются.","Удалите необычные символы завершения строки, которые могут вызвать проблемы.","Вставка и удаление пробелов после позиции табуляции","Символы, которые будут использоваться как разделители слов при выполнении навигации или других операций, связанных со словами.","Строки не будут переноситься никогда.","Строки будут переноситься по ширине окна просмотра.",'Строки будут переноситься по "#editor.wordWrapColumn#".','Строки будут перенесены по минимальному значению из двух: ширина окна просмотра и "#editor.wordWrapColumn#".',"Управляет тем, как следует переносить строки.",'Определяет столбец переноса редактора, если значение "#editor.wordWrap#" — "wordWrapColumn" или "bounded".',"Без отступа. Перенос строк начинается со столбца 1.","Перенесенные строки получат тот же отступ, что и родительская строка.","Перенесенные строки получат отступ, увеличенный на единицу по сравнению с родительской строкой. ","Перенесенные строки получат отступ, увеличенный на два по сравнению с родительской строкой.","Управляет отступом строк с переносом по словам.","Предполагает, что все символы имеют одинаковую ширину. Это быстрый алгоритм, который работает правильно для моноширинных шрифтов и некоторых скриптов (например, латинских символов), где глифы имеют одинаковую ширину.","Делегирует вычисление точек переноса браузеру. Это медленный алгоритм, который может привести к зависаниям при обработке больших файлов, но работает правильно во всех случаях.","Управляет алгоритмом, вычисляющим точки переноса."], +"vs/editor/common/model/editStack":["Ввод"],"vs/editor/common/modes/modesRegistry":["Простой текст"], +"vs/editor/common/standaloneStrings":["Ничего не выбрано","Строка {0}, столбец {1} (выбрано: {2})","Строка {0}, столбец {1}","Выделений: {0} (выделено символов: {1})","Выделений: {0}",'Теперь для параметра "accessibilitySupport" устанавливается значение "вкл".',"Открывается страница документации о специальных возможностях редактора.","в панели только для чтения редактора несовпадений.","на панели редактора несовпадений."," в редакторе кода только для чтения"," в редакторе кода","Чтобы оптимизировать редактор для использования со средством чтения с экрана, нажмите COMMAND+E.","Чтобы оптимизировать редактор для использования со средством чтения с экрана, нажмите CTRL+E.","Редактор настроен для оптимальной работы со средством чтения с экрана.","Редактор настроен без оптимизации для использования средства чтения с экрана, что не подходит в данной ситуации.","При нажатии клавиши TAB в текущем редакторе фокус ввода переместится на следующий элемент, способный его принять. Чтобы изменить это поведение, нажмите клавишу {0}.","При нажатии клавиши TAB в текущем редакторе фокус ввода переместится на следующий элемент, способный его принять. Команду {0} сейчас невозможно выполнить с помощью настраиваемого сочетания клавиш.","При нажатии клавиши TAB в текущем редакторе будет вставлен символ табуляции. Чтобы изменить это поведение, нажмите клавишу {0}.","При нажатии клавиши TAB в текущем редакторе будет вставлен символ табуляции. Команду {0} сейчас невозможно выполнить с помощью настраиваемого сочетания клавиш.","Нажмите COMMAND+H, чтобы открыть окно браузера с дополнительной информацией о специальных возможностях редактора.","Нажмите CTRL+H, чтобы открыть окно браузера с дополнительной информацией о специальных возможностях редактора.","Вы можете закрыть эту подсказку и вернуться в редактор, нажав клавиши ESCAPE или SHIFT+ESCAPE.","Показать справку по специальным возможностям","Разработчик: проверить токены","Перейти к строке/столбцу...","Показать всех поставщиков быстрого доступа","Палитра команд","Показать и выполнить команды","Перейти к символу...","Перейти к символу по категориям...","Содержимое редактора","Нажмите ALT+F1 для доступа к параметрам специальных возможностей.","Переключить высококонтрастную тему","Внесено изменений в файлах ({1}): {0}."], +"vs/editor/common/view/editorColorRegistry":["Цвет фона для выделения строки в позиции курсора.","Цвет фона границ вокруг строки в позиции курсора.","Цвет фона для выделенных диапазонов, например при использовании функций Quick Open или поиска. Цвет не должен быть непрозрачным, чтобы не скрыть расположенные ниже элементы оформления.","Цвет фона обводки выделения.",'Цвет фона выделенного символа, например, в функциях "Перейти к определению" или "Перейти к следующему/предыдущему символу". Цвет должен быть прозрачным, чтобы не скрывать оформление текста под ним.',"Цвет фона для границы вокруг выделенных символов.","Цвет курсора редактора.","Цвет фона курсора редактора. Позволяет настраивать цвет символа, перекрываемого прямоугольным курсором.","Цвет пробелов в редакторе.","Цвет направляющих для отступов редактора.","Цвет активных направляющих для отступов редактора.","Цвет номеров строк редактора.","Цвет номера активной строки редактора","Параметр 'Id' является устаревшим. Используйте вместо него параметр 'editorLineNumber.activeForeground'.","Цвет номера активной строки редактора","Цвет линейки редактора.","Цвет переднего плана элемента CodeLens в редакторе","Цвет фона парных скобок","Цвет прямоугольников парных скобок","Цвет границы для линейки в окне просмотра.","Цвет фона обзорной линейки редактора. Используется, только если мини-карта включена и размещена в правой части редактора.","Цвет фона поля в редакторе. В поле размещаются отступы глифов и номера строк.","Цвет границы для ненужного (неиспользуемого) исходного кода в редакторе.",'Непрозрачность ненужного (неиспользуемого) исходного кода в редакторе. Например, "#000000c0" отображает код с непрозрачностью 75 %. В высококонтрастных темах для выделения ненужного кода вместо затенения используйте цвет темы "editorUnnecessaryCode.border".',"Цвет маркера обзорной линейки для выделения диапазонов. Цвет не должен быть непрозрачным, чтобы не скрыть расположенные ниже элементы оформления.","Цвет метки линейки в окне просмотра для ошибок.","Цвет метки линейки в окне просмотра для предупреждений.","Цвет метки линейки в окне просмотра для информационных сообщений."], +"vs/editor/contrib/anchorSelect/anchorSelect":["Начальная точка выделения","Начальная точка установлена в {0}:{1}","Установить начальную точку выделения","Перейти к начальной точке выделения","Выделить текст от начальной точки выделения до курсора","Отменить начальную точку выделения"],"vs/editor/contrib/bracketMatching/bracketMatching":["Цвет метки линейки в окне просмотра для пар скобок.","Перейти к скобке","Выбрать скобку","Перейти к &&скобке"],"vs/editor/contrib/caretOperations/caretOperations":["Переместить выделенный текст влево","Переместить выделенный текст вправо"],"vs/editor/contrib/caretOperations/transpose":["Транспортировать буквы"],"vs/editor/contrib/clipboard/clipboard":["&&Вырезать","Вырезать","Вырезать","&&Копировать","Копирование","Копирование","&&Вставить","Вставить","Вставить","Копировать с выделением синтаксиса"], +"vs/editor/contrib/codeAction/codeActionCommands":["Тип запускаемого действия кода.","Определяет, когда применяются возвращенные действия.","Всегда применять первое возвращенное действие кода.","Применить первое действие возвращенного кода, если оно является единственным.","Не применять действия возвращенного кода.","Определяет, следует ли возвращать только предпочтительные действия кода.","При применении действия кода произошла неизвестная ошибка","Быстрое исправление...","Доступные действия кода отсутствуют",'Нет доступных предпочтительных действий кода для "{0}".','Действия кода для "{0}" недоступны',"Нет доступных предпочтительных действий кода","Доступные действия кода отсутствуют","Рефакторинг...",'Нет доступных предпочтительных рефакторингов для "{0}"','Нет доступного рефакторинга для "{0}"',"Нет доступных предпочтительных рефакторингов","Доступные операции рефакторинга отсутствуют","Действие с исходным кодом...","Нет доступных предпочтительных действий источника для '{0}'",'Нет доступных исходных действий для "{0}"',"Предпочтительные действия источника недоступны","Доступные исходные действия отсутствуют","Организация импортов","Действие для упорядочения импортов отсутствует","Исправить все","Нет доступного действия по общему исправлению","Автоисправление...","Нет доступных автоисправлений"], +"vs/editor/contrib/codeAction/lightBulbWidget":["Отображение исправлений. Доступно предпочитаемое исправление ({0})","Показать исправления ({0})","Показать исправления"],"vs/editor/contrib/codelens/codelensController":["Показать команды CodeLens для текущей строки"],"vs/editor/contrib/comment/comment":["Закомментировать или раскомментировать строку","Переключить комментарий &&строки","Закомментировать строку","Раскомментировать строку","Закомментировать или раскомментировать блок","Переключить комментарий &&блока"],"vs/editor/contrib/contextmenu/contextmenu":["Показать контекстное меню редактора"],"vs/editor/contrib/cursorUndo/cursorUndo":["Отмена действия курсора","Повтор действия курсора"], +"vs/editor/contrib/documentSymbols/outlineTree":["Цвет переднего плана для символов массива. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.","Цвет переднего плана для логических символов. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.","Цвет переднего плана для символов класса. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.","Цвет переднего плана для символов цвета. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.","Цвет переднего плана для символов константы. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.","Цвет переднего плана для символов конструктора. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.","Цвет переднего плана для символов перечислителя. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.","Цвет переднего плана для символов члена перечислителя. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.","Цвет переднего плана для символов события. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.","Цвет переднего плана для символов поля. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.","Цвет переднего плана для символов файла. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.","Цвет переднего плана для символов папки. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.","Цвет переднего плана для символов функции. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.","Цвет переднего плана для символов интерфейса. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.","Цвет переднего плана для символов ключа. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.","Цвет переднего плана для символов ключевого слова. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.","Цвет переднего плана для символов метода. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.","Цвет переднего плана для символов модуля. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.","Цвет переднего плана для символов пространства имен. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.","Цвет переднего плана для символов NULL. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.","Цвет переднего плана для символов числа. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.","Цвет переднего плана для символов объекта. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.","Цвет переднего плана для символов оператора. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.","Цвет переднего плана для символов пакета. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.","Цвет переднего плана для символов свойства. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.","Цвет переднего плана для символов ссылки. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.","Цвет переднего плана для символов фрагмента кода. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.","Цвет переднего плана для символов строки. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.","Цвет переднего плана для символов структуры. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.","Цвет переднего плана для символов текста. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.","Цвет переднего плана для символов типа параметров. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.","Цвет переднего плана для символов единиц. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.","Цвет переднего плана для символов переменной. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений."], +"vs/editor/contrib/find/findController":["Найти","&&Найти","Найти в выбранном","Найти далее","Найти далее","Найти ранее","Найти ранее","Найти следующее выделение","Найти предыдущее выделение","Заменить","&&Заменить"],"vs/editor/contrib/find/findWidget":["Найти","Найти","Предыдущее соответствие","Следующее соответствие","Найти в выделении","Закрыть","Заменить","Заменить","Заменить","Заменить все",'Режим "Переключение замены"',"Отображаются только первые {0} результатов, но все операции поиска выполняются со всем текстом.","{0} из {1}","Результаты отсутствуют","{0} обнаружено",'{0} найден для "{1}"','{0} найден для "{1}", в {2}','{0} найден для "{1}"',"Теперь при нажатии клавиш CTRL+ВВОД вставляется символ перехода на новую строку вместо замены всего текста. Вы можете изменить сочетание клавиш editor.action.replaceAll, чтобы переопределить это поведение."], +"vs/editor/contrib/folding/folding":["Развернуть","Развернуть рекурсивно","Свернуть","Переключить свертывание","Свернуть рекурсивно","Свернуть все блоки комментариев","Свернуть все регионы","Развернуть все регионы","Свернуть все","Развернуть все","Уровень папки {0}","Цвет фона за свернутыми диапазонами. Этот цвет не должен быть непрозрачным, чтобы не скрывать расположенные ниже декоративные элементы.","Цвет элемента управления свертыванием во внутреннем поле редактора."],"vs/editor/contrib/fontZoom/fontZoom":["Увеличить шрифт редактора","Уменьшить шрифт редактора","Сбросить масштаб шрифта редактора"],"vs/editor/contrib/format/format":["Внесена одна правка форматирования в строке {0}.","Внесены правки форматирования ({0}) в строке {1}.","Внесена одна правка форматирования между строками {0} и {1}.","Внесены правки форматирования ({0}) между строками {1} и {2}."],"vs/editor/contrib/format/formatActions":["Форматировать документ","Форматировать выделенный фрагмент"], +"vs/editor/contrib/gotoError/gotoError":["Перейти к Следующей Проблеме (Ошибке, Предупреждению, Информации)","Перейти к Предыдущей Проблеме (Ошибке, Предупреждению, Информации)","Перейти к следующей проблеме в файлах (ошибки, предупреждения, информационные сообщения)","Следующая &&проблема","Перейти к предыдущей проблеме в файлах (ошибки, предупреждения, информационные сообщения)","Предыдущая &&проблема"],"vs/editor/contrib/gotoError/gotoErrorWidget":["Ошибка","Предупреждение","Информация","Указание","{0} в {1}. ","Проблемы: {0} из {1}","Проблемы: {0} из {1}","Цвет ошибки в мини-приложении навигации по меткам редактора.","Цвет предупреждения в мини-приложении навигации по меткам редактора.","Цвет информационного сообщения в мини-приложении навигации по меткам редактора.","Фон мини-приложения навигации по меткам редактора."], +"vs/editor/contrib/gotoSymbol/goToCommands":["Обзор","Определения",'Определение для "{0}" не найдено.',"Определения не найдены.","Перейти к определению","Перейти к &&определению","Открыть определение сбоку","Показать определение","Объявления",'Объявление для "{0}" не найдено.',"Объявление не найдено","Перейти к объявлению","Перейти к &&объявлению",'Объявление для "{0}" не найдено.',"Объявление не найдено","Просмотреть объявление","Определения типов",'Не найдено определение типа для "{0}".',"Не найдено определение типа.","Перейти к определению типа","Перейти к &&определению типа","Показать определение типа","Реализации",'Не найдена реализация для "{0}".',"Не найдена реализация.","Перейти к реализациям","Перейти к &&реализациям","Просмотреть реализации",'Ссылки для "{0}" не найдены',"Ссылки не найдены","Перейти к ссылкам","Перейти к &&ссылкам","Ссылки","Показать ссылки","Ссылки","Перейти к любому символу","Расположения",'Нет результатов для "{0}"',"Ссылки"], +"vs/editor/contrib/gotoSymbol/link/goToDefinitionAtPosition":["Щелкните, чтобы отобразить определения ({0})."],"vs/editor/contrib/gotoSymbol/peek/referencesController":["Загрузка...","{0} ({1})"],"vs/editor/contrib/gotoSymbol/peek/referencesTree":["Ссылок: {0}","{0} ссылка","Ссылки"],"vs/editor/contrib/gotoSymbol/peek/referencesWidget":["предварительный просмотр недоступен","Результаты отсутствуют","Ссылки"],"vs/editor/contrib/gotoSymbol/referencesModel":["ссылка в {0} в строке {1} и символе {2}","1 символ в {0}, полный путь: {1}","{0} символов в {1}, полный путь: {2} ","Результаты не найдены","Обнаружен 1 символ в {0}","Обнаружено {0} символов в {1}","Обнаружено {0} символов в {1} файлах"],"vs/editor/contrib/gotoSymbol/symbolNavigation":["Символ {0} из {1}, {2} для следующего","Символ {0} из {1}"],"vs/editor/contrib/hover/hover":["Показать при наведении","Отображать предварительный просмотр определения при наведении курсора мыши"], +"vs/editor/contrib/hover/modesContentHover":["Загрузка...","Проблема при обзоре","Проверка наличия исправлений...","Исправления недоступны","Быстрое исправление..."],"vs/editor/contrib/inPlaceReplace/inPlaceReplace":["Заменить предыдущим значением","Заменить следующим значением"],"vs/editor/contrib/indentation/indentation":["Преобразовать отступ в пробелы","Преобразовать отступ в шаги табуляции","Настроенный размер шага табуляции","Выбрать размер шага табуляции для текущего файла","Отступ с использованием табуляции","Отступ с использованием пробелов","Определение отступа от содержимого","Повторно расставить отступы строк","Повторно расставить отступы для выбранных строк"], +"vs/editor/contrib/linesOperations/linesOperations":["Копировать строку сверху","&&Копировать на строку выше","Копировать строку снизу","Копировать на строку &&ниже","Дублировать выбранное","&&Дублировать выбранное","Переместить строку вверх","Переместить на с&&троку выше","Переместить строку вниз","&&Переместить на строку ниже","Сортировка строк по возрастанию","Сортировка строк по убыванию","Удалить конечные символы-разделители","Удалить строку","Увеличить отступ","Уменьшить отступ","Вставить строку выше","Вставить строку ниже","Удалить все слева","Удалить все справа","_Объединить строки","Транспонировать символы вокруг курсора","Преобразовать в верхний регистр","Преобразовать в нижний регистр","Преобразовать в заглавные буквы"], +"vs/editor/contrib/links/links":["Выполнить команду","перейти по ссылке","Кнопка OPTION и щелчок левой кнопкой мыши","Кнопка CTRL и щелчок левой кнопкой мыши","Кнопка OPTION и щелчок левой кнопкой мыши","Кнопка ALT и щелчок левой кнопкой мыши","Не удалось открыть ссылку, так как она имеет неправильный формат: {0}","Не удалось открыть ссылку, у нее отсутствует целевой объект.","Открыть ссылку"],"vs/editor/contrib/message/messageController":["Не удается выполнить изменение в редакторе только для чтения"], +"vs/editor/contrib/multicursor/multicursor":["Добавить курсор выше","Добавить курсор &&выше","Добавить курсор ниже","Добавить курсор &&ниже","Добавить курсоры к окончаниям строк","Добавить курсоры в &&окончания строк","Добавить курсоры ниже","Добавить курсоры выше","Добавить выделение в следующее найденное совпадение","Добавить &&следующее вхождение","Добавить выделенный фрагмент в предыдущее найденное совпадение","Добавить &&предыдущее вхождение","Переместить последнее выделение в следующее найденное совпадение","Переместить последний выделенный фрагмент в предыдущее найденное совпадение","Выбрать все вхождения найденных совпадений","Выбрать все &&вхождения","Изменить все вхождения"],"vs/editor/contrib/parameterHints/parameterHints":["Переключить подсказки к параметрам"],"vs/editor/contrib/parameterHints/parameterHintsWidget":["{0}, указание"], +"vs/editor/contrib/peekView/peekView":["Закрыть","Цвет фона области заголовка быстрого редактора.","Цвет заголовка быстрого редактора.","Цвет сведений о заголовке быстрого редактора.","Цвет границ быстрого редактора и массива.","Цвет фона в списке результатов представления быстрого редактора.","Цвет переднего плана узлов строки в списке результатов быстрого редактора.","Цвет переднего плана узлов файла в списке результатов быстрого редактора.","Цвет фона выбранной записи в списке результатов быстрого редактора.","Цвет переднего плана выбранной записи в списке результатов быстрого редактора.","Цвет фона быстрого редактора.","Цвет фона поля в окне быстрого редактора.","Цвет выделения совпадений в списке результатов быстрого редактора.","Цвет выделения совпадений в быстром редакторе.","Граница выделения совпадений в быстром редакторе."], +"vs/editor/contrib/quickAccess/gotoLineQuickAccess":["Чтобы перейти к строке, сначала откройте текстовый редактор.","Перейдите к строке {0} и столбцу {1}.","Перейти к строке {0}.","Текущая строка: {0}, символ: {1}. Введите номер строки между 1 и {2} для перехода.","Текущая строка: {0}, символ: {1}. Введите номер строки для перехода."], +"vs/editor/contrib/quickAccess/gotoSymbolQuickAccess":["Чтобы перейти к символу, сначала откройте текстовый редактор с символьной информацией.","Активный текстовый редактор не предоставляет символьную информацию.","Нет совпадающих символов редактора","Нет символов редактора","Открыть сбоку","Открыть внизу","символы ({0})","свойства ({0})","методы ({0})","функции ({0})","конструкторы ({0})","переменные ({0})","классы ({0})","структуры ({0})","события ({0})","операторы ({0})","интерфейсы ({0})","пространства имен ({0})","пакеты ({0})","параметры типа ({0})","модули ({0})","свойства ({0})","перечисления ({0})","элемента перечисления ({0})","строки ({0})","файлы ({0})","массивы ({0})","числа ({0})","логические значения ({0})","объекты ({0})","ключи ({0})","поля ({0})","константы ({0})"],"vs/editor/contrib/rename/onTypeRename":["На символе переименования типа","Цвет фона при автоматическом переименовании типа редактором."], +"vs/editor/contrib/rename/rename":["Результаты отсутствуют.","Произошла неизвестная ошибка при определении расположения после переименования",'Переименование "{0}"',"Переименование {0}","«{0}» успешно переименован в «{1}». Сводка: {2}","Операции переименования не удалось применить правки","Операции переименования не удалось вычислить правки","Переименовать символ","Включить/отключить возможность предварительного просмотра изменений перед переименованием"],"vs/editor/contrib/rename/renameInputField":["Введите новое имя для входных данных и нажмите клавишу ВВОД для подтверждения.","Нажмите {0} для переименования, {1} для просмотра."],"vs/editor/contrib/smartSelect/smartSelect":["Развернуть выбранный фрагмент","&&Развернуть выделение","Уменьшить выделенный фрагмент","&&Сжать выделение"], +"vs/editor/contrib/snippet/snippetVariables":["воскресенье","понедельник","вторник","среда","четверг","пятница","суббота","Вс","Пн","Вт","Ср","Чт","Пт","Сб","Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь","Янв","Фев","Мар","Апр","Май","Июн","Июл","Авг","Сен","Окт","Ноя","Дек"],"vs/editor/contrib/suggest/suggestController":['Принятие "{0}" привело к внесению дополнительных правок ({1})',"Переключить предложение","{0} для вставки","{0} для вставки","{0} для замены","{0} для замены","{0} для вставки","показать меньше","показать больше"],"vs/editor/contrib/suggest/suggestWidget":["Цвет фона виджета подсказок.","Цвет границ виджета подсказок.","Цвет переднего плана мини-приложения предложений.","Фоновый цвет выбранной записи в мини-приложении предложений.","Цвет выделения соответствия в мини-приложении предложений.","Показать больше ({0})","Показать меньше ({0})","Загрузка...","Загрузка...","Предложения отсутствуют.","{0}, документы: {1}","Предложить"], +"vs/editor/contrib/toggleTabFocusMode/toggleTabFocusMode":["Переключение клавиши TAB перемещает фокус.","При нажатии клавиши TAB фокус перейдет на следующий элемент, который может получить фокус","Теперь при нажатии клавиши TAB будет вставлен символ табуляции"],"vs/editor/contrib/tokenization/tokenization":["Разработчик: принудительная повторная установка токенов"],"vs/editor/contrib/unusualLineTerminators/unusualLineTerminators":["Необычные символы завершения строки","Обнаружены необычные символы завершения строки",'Этот файл содержит один или несколько необычных символов завершения строки, таких как разделитель строк (LS) или разделитель абзацев (PS).\r\n\r\nРекомендуется удалить их из файла. Удаление этих символов можно настроить с помощью параметра "editor.unusualLineTerminators".',"Исправить этот файл","Игнорировать проблему для этого файла"], +"vs/editor/contrib/wordHighlighter/wordHighlighter":["Цвет фона символа при доступе на чтение, например, при чтении переменной. Цвет не должен быть непрозрачным, чтобы не скрыть расположенные ниже элементы оформления.","Цвет фона для символа во время доступа на запись, например при записи в переменную. Цвет не должен быть непрозрачным, чтобы не скрыть расположенные ниже элементы оформления.","Цвет границы символа при доступе на чтение, например, при считывании переменной.","Цвет границы символа при доступе на запись, например, при записи переменной. ","Цвет маркера обзорной линейки для выделения символов. Этот цвет не должен быть непрозрачным, чтобы не скрывать расположенные ниже элементы оформления.","Цвет маркера обзорной линейки для выделения символов доступа на запись. Цвет не должен быть непрозрачным, чтобы не скрыть расположенные ниже элементы оформления.","Перейти к следующему выделению символов","Перейти к предыдущему выделению символов","Включить или отключить выделение символов"], +"vs/platform/actions/browser/menuEntryActionViewItem":["{0} ({1})"],"vs/platform/configuration/common/configurationRegistry":["Переопределения конфигурации языка по умолчанию","Настройка параметров редактора, переопределяемых для языка.","Этот параметр не поддерживает настройку для отдельных языков.","Невозможно зарегистрировать \"{0}\". Оно соответствует шаблону свойства '\\\\[.*\\\\]$' для описания параметров редактора, определяемых языком. Используйте участие configurationDefaults.",'Невозможно зарегистрировать "{0}". Это свойство уже зарегистрировано.'],"vs/platform/keybinding/common/abstractKeybindingService":["Была нажата клавиша {0}. Ожидание нажатия второй клавиши сочетания...","Сочетание клавиш ({0} и {1}) не является командой."], +"vs/platform/list/browser/listService":["Рабочее место","Соответствует клавише CTRL в Windows и Linux и клавише COMMAND в macOS.","Соответствует клавише ALT в Windows и Linux и клавише OPTION в macOS.",'Модификатор, который будет использоваться для добавления элементов в деревьях и списках в элемент множественного выбора с помощью мыши (например, в проводнике, в открытых редакторах и в представлении scm). Жесты мыши "Открыть сбоку" (если они поддерживаются) будут изменены таким образом, чтобы они не конфликтовали с модификатором элемента множественного выбора.',"Управляет тем, как открывать элементы в деревьях и списках с помощью мыши (если поддерживается). Для родительских элементов с дочерними элементами в деревьях этот параметр управляет тем, будет ли родительский элемент разворачиваться по одинарному или по двойному щелчку мыши. Обратите внимание, что этот параметр может игнорироваться в некоторых деревьях и списках, если он не применяется к ним. ","Определяет, поддерживают ли горизонтальную прокрутку списки и деревья на рабочем месте. Предупреждение! Включение этого параметра может повлиять на производительность.","Определяет отступ для дерева в пикселях.","Определяет, нужно ли в дереве отображать направляющие отступа.","Управляет тем, используется ли плавная прокрутка для списков и деревьев.","Про простой навигации с клавиатуры выбираются элементы, соответствующие вводимым с клавиатуры данным. Сопоставление осуществляется только по префиксам.","Функция подсветки навигации с клавиатуры выделяет элементы, соответствующие вводимым с клавиатуры данным. При дальнейшей навигации вверх и вниз выполняется обход только выделенных элементов.","Фильтр навигации с клавиатуры позволяет отфильтровать и скрыть все элементы, не соответствующие вводимым с клавиатуры данным.","Управляет стилем навигации с клавиатуры для списков и деревьев в Workbench. Доступен простой режим, режим выделения и режим фильтрации.",'Указывает, активируется ли навигация с помощью клавиатуры в списках и деревьях автоматически простым вводом. Если задано значение "false", навигация с клавиатуры активируется только при выполнении команды "list.toggleKeyboardNavigation", для которой можно назначить сочетание клавиш.'], +"vs/platform/markers/common/markers":["Ошибка","Предупреждение","Информация"],"vs/platform/quickinput/browser/commandsQuickAccess":["{0}, {1}","недавно использованные","другие команды",'Команда "{0}" привела к ошибке ({1})'],"vs/platform/quickinput/browser/helpQuickAccess":["глобальные команды","команды редактора","{0}, {1}"], +"vs/platform/theme/common/colorRegistry":["Общий цвет переднего плана. Этот цвет используется, только если его не переопределит компонент.","Общий цвет переднего плана для сообщений об ошибках. Этот цвет используется только если его не переопределяет компонент.","Цвет по умолчанию для значков на рабочем месте.","Общий цвет границ для элементов с фокусом. Этот цвет используется только в том случае, если не переопределен в компоненте.","Дополнительная граница вокруг элементов, которая отделяет их от других элементов для улучшения контраста.","Дополнительная граница вокруг активных элементов, которая отделяет их от других элементов для улучшения контраста.","Цвет переднего плана для ссылок в тексте.","Цвет фона для программного кода в тексте.",'Цвет тени мини-приложений редактора, таких как "Найти/заменить".',"Фон поля ввода.","Передний план поля ввода.","Граница поля ввода.","Цвет границ активированных параметров в полях ввода.","Цвет фона активированных параметров в полях ввода.","Цвет переднего плана активированных параметров в полях ввода.",'Фоновый цвет проверки ввода для уровня серьезности "Сведения".','Цвет переднего плана области проверки ввода для уровня серьезности "Сведения".','Цвет границы проверки ввода для уровня серьезности "Сведения".','Фоновый цвет проверки ввода для уровня серьезности "Предупреждение".','Цвет переднего плана области проверки ввода для уровня серьезности "Предупреждение".','Цвет границы проверки ввода для уровня серьезности "Предупреждение".','Фоновый цвет проверки ввода для уровня серьезности "Ошибка".','Цвет переднего плана области проверки ввода для уровня серьезности "Ошибка".','Цвет границы проверки ввода для уровня серьезности "Ошибка".',"Фон раскрывающегося списка.","Передний план раскрывающегося списка.","Цвет переднего плана кнопки.","Цвет фона кнопки.","Цвет фона кнопки при наведении.","Цвет фона бэджа. Бэджи - небольшие информационные элементы, отображающие количество, например, результатов поиска.","Цвет текста бэджа. Бэджи - небольшие информационные элементы, отображающие количество, например, результатов поиска.","Цвет тени полосы прокрутки, которая свидетельствует о том, что содержимое прокручивается.","Цвет фона для ползунка полосы прокрутки.","Цвет фона ползунка полосы прокрутки при наведении курсора.","Цвет фона ползунка полосы прокрутки при щелчке по нему.","Цвет фона индикатора выполнения, который может отображаться для длительных операций.","Цвет волнистой линии для выделения ошибок в редакторе.","Цвет границы для окон ошибок в редакторе.","Цвет волнистой линии для выделения предупреждений в редакторе.","Цвет границы для окон предупреждений в редакторе.","Цвет волнистой линии для выделения информационных сообщений в редакторе.","Цвет границы для окон сведений в редакторе.","Цвет волнистой линии для выделения подсказок в редакторе.","Цвет границы для окон указаний в редакторе.","Цвет фона редактора.","Цвет переднего плана редактора по умолчанию.","Цвет фона виджетов редактора, таких как найти/заменить.",'Цвет переднего плана мини-приложений редактора, таких как "Поиск/замена".',"Цвет границы мини-приложений редактора. Этот цвет используется только в том случае, если у мини-приложения есть граница и если этот цвет не переопределен мини-приложением.","Цвет границы панели изменения размера мини-приложений редактора. Этот цвет используется только в том случае, если у мини-приложения есть граница для изменения размера и если этот цвет не переопределен мини-приложением.","Цвет фона для средства быстрого выбора. Мини-приложение быстрого выбора является контейнером для таких средств выбора, как палитра команд.","Цвет переднего плана для средства быстрого выбора. Мини-приложение быстрого выбора является контейнером для таких средств выбора, как палитра команд.","Цвет фона для заголовка средства быстрого выбора. Мини-приложение быстрого выбора является контейнером для таких средств выбора, как палитра команд.","Цвет средства быстрого выбора для группировки меток.","Цвет средства быстрого выбора для группировки границ.","Цвет выделения редактора.","Цвет выделенного текста в режиме высокого контраста.","Цвет выделения в неактивном редакторе. Цвет не должен быть непрозрачным, чтобы не скрыть расположенные ниже элементы оформления.","Цвет для областей, содержимое которых совпадает с выбранным фрагментом. Цвет не должен быть непрозрачным, чтобы не скрыть расположенные ниже элементы оформления.","Цвет границы регионов с тем же содержимым, что и в выделении.","Цвет текущего поиска совпадений.","Цвет других совпадений при поиске. Цвет не должен быть непрозрачным, чтобы не скрыть расположенные ниже элементы оформления.","Цвет диапазона, ограничивающего поиск. Цвет не должен быть непрозрачным, чтобы не скрыть расположенные ниже элементы оформления.","Цвет границы текущего результата поиска.","Цвет границы других результатов поиска.","Цвет границы для диапазона, ограничивающего поиск. Цвет не должен быть непрозрачным, чтобы не скрыть расположенные ниже элементы оформления.","Выделение под словом, для которого отображается меню при наведении курсора. Цвет не должен быть непрозрачным, чтобы не скрыть расположенные ниже элементы оформления.","Цвет фона при наведении указателя на редактор.","Цвет переднего плана для наведения указателя на редактор.","Цвет границ при наведении указателя на редактор.","Цвет фона строки состояния при наведении в редакторе.","Цвет активных ссылок.","Цвет, используемый для значка действий в меню лампочки.","Цвет, используемый для значка действий автоматического исправления в меню лампочки.","Цвет фона для вставленного текста. Цвет не должен быть непрозрачным, чтобы не скрыть расположенные ниже элементы оформления.","Цвет фона для удаленного текста. Цвет не должен быть непрозрачным, чтобы не скрыть расположенные ниже элементы оформления.","Цвет контура для добавленных строк.","Цвет контура для удаленных строк.","Цвет границы между двумя текстовыми редакторами.","Цвет диагональной заливки для редактора несовпадений. Диагональная заливка используется в размещаемых рядом представлениях несовпадений.","Фоновый цвет находящегося в фокусе элемента List/Tree, когда элемент List/Tree активен. На активном элементе List/Tree есть фокус клавиатуры, на неактивном — нет.","Цвет переднего плана находящегося в фокусе элемента List/Tree, когда элемент List/Tree активен. На активном элементе List/Tree есть фокус клавиатуры, на неактивном — нет.","Фоновый цвет выбранного элемента List/Tree, когда элемент List/Tree активен. На активном элементе List/Tree есть фокус клавиатуры, на неактивном — нет.","Цвет переднего плана выбранного элемента List/Tree, когда элемент List/Tree активен. На активном элементе List/Tree есть фокус клавиатуры, на неактивном — нет.","Фоновый цвет выбранного элемента List/Tree, когда элемент List/Tree неактивен. На активном элементе List/Tree есть фокус клавиатуры, на неактивном — нет.","Цвет текста выбранного элемента List/Tree, когда элемент List/Tree неактивен. На активном элементе List/Tree есть фокус клавиатуры, на неактивном — нет.","Фоновый цвет находящегося в фокусе элемента List/Tree, когда элемент List/Tree не активен. На активном элементе List/Tree есть фокус клавиатуры, на неактивном — нет.","Фоновый цвет элементов List/Tree при наведении курсора мыши.","Цвет переднего плана элементов List/Tree при наведении курсора мыши.","Фоновый цвет элементов List/Tree при перемещении с помощью мыши.","Цвет переднего плана для выделения соответствия при поиске по элементу List/Tree.","Цвет фона для мини-приложения фильтра типов в списках и деревьях.","Цвет контура для мини-приложения фильтра типов в списках и деревьях.","Цвет контура для мини-приложения фильтра типов в списках и деревьях при отсутствии совпадений.","Цвет штриха дерева для направляющих отступа.","Цвет границ меню.","Цвет переднего плана пунктов меню.","Цвет фона пунктов меню.","Цвет переднего плана выбранного пункта меню в меню.","Цвет фона для выбранного пункта в меню.","Цвет границы для выбранного пункта в меню.","Цвет разделителя меню в меню.","Цвет фона выделения в позиции табуляции фрагмента.","Цвет границы выделения в позиции табуляции фрагмента.","Цвет фона выделения в последней позиции табуляции фрагмента.","Выделение цветом границы в последней позиции табуляции фрагмента.","Цвет маркера обзорной линейки для совпадений при поиске. Цвет не должен быть непрозрачным, чтобы не скрыть расположенные ниже элементы оформления.","Маркер обзорной линейки для выделения выбранного фрагмента. Цвет не должен быть непрозрачным, чтобы не скрыть расположенные ниже элементы оформления.","Цвет маркера мини-карты для поиска совпадений.","Цвет маркера мини-карты для выбора редактора.","Цвет маркера миникарты для ошибок.","Цвет маркера миникарты для предупреждений.","Цвет фона мини-карты.","Цвет фона ползунка мини-карты.","Цвет фона ползунка мини-карты при наведении на него указателя.","Цвет фона ползунка мини-карты при его щелчке.","Цвет, используемый для значка ошибки, указывающего на наличие проблем.","Цвет, используемый для предупреждающего значка, указывающего на наличие проблем.","Цвет, используемый для информационного значка, указывающего на наличие проблем."], +"vs/platform/undoRedo/common/undoRedoService":["Следующие файлы были закрыты и изменены на диске: {0}.","Следующие файлы были изменены несовместимым образом: {0}.",'Не удалось отменить "{0}" для всех файлов. {1}','Не удалось отменить "{0}" для всех файлов. {1}','Не удалось отменить операцию "{0}" для всех файлов, так как были внесены изменения в {1}','Не удалось отменить действие "{0}" для всех файлов, так как в {1} уже выполняется операция отмены или повтора действия','Не удалось отменить действие "{0}" для всех файлов, так как уже выполнялась операция отмены или повтора действия','Вы хотите отменить "{0}" для всех файлов?',"Отменить действие в нескольких файлах ({0})","Отменить этот файл","Отмена",'Не удалось отменить действие "{0}", так как уже выполняется операция отмены или повтора действия','Не удалось повторить операцию "{0}" для всех файлов. {1}','Не удалось повторить операцию "{0}" для всех файлов. {1}','Не удалось повторить операцию "{0}" для всех файлов, так как были внесены изменения в {1}','Не удалось повторить действие "{0}" для всех файлов, так как в {1} уже выполняется операция отмены или повтора действия','Не удалось повторить действие "{0}" для всех файлов, так как уже выполнялась операция отмены или повтора действия','Не удалось повторить действие "{0}", так как уже выполняется операция отмены или повтора действия'] +}); //# sourceMappingURL=../../../min-maps/vs/editor/editor.main.nls.ru.js.map \ No newline at end of file diff --git a/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/editor/editor.main.nls.zh-cn.js b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/editor/editor.main.nls.zh-cn.js index 7aceacf..1466a2d 100644 --- a/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/editor/editor.main.nls.zh-cn.js +++ b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/editor/editor.main.nls.zh-cn.js @@ -1,8 +1,26 @@ /*!----------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. - * Version: 0.9.0(630109944f54bcdfc2dbaaff5f090c0843af6c66) + * Version: 0.21.2(67b5a8116f3c0bace36b180e524e05bb750a16d8) * Released under the MIT license * https://github.com/Microsoft/vscode/blob/master/LICENSE.txt *-----------------------------------------------------------*/ -define("vs/editor/editor.main.nls.zh-cn",{"vs/base/browser/ui/actionbar/actionbar":["{0} ({1})"],"vs/base/browser/ui/aria/aria":["{0} (已再次发生)"],"vs/base/browser/ui/findinput/findInput":["输入"],"vs/base/browser/ui/findinput/findInputCheckboxes":["区分大小写","全字匹配","使用正则表达式"],"vs/base/browser/ui/inputbox/inputBox":["错误: {0}","警告: {0}","信息: {0}"],"vs/base/common/keybindingLabels":["Ctrl","Shift","Alt","Windows","Control","Shift","Alt","Command","Control","Shift","Alt","Windows"],"vs/base/common/severity":["错误","警告","信息"],"vs/base/parts/quickopen/browser/quickOpenModel":["{0},选取器","选取器"],"vs/base/parts/quickopen/browser/quickOpenWidget":["快速选取器。键入以缩小结果范围。","快速选取器"],"vs/base/parts/tree/browser/treeDefaults":["折叠"],"vs/editor/browser/widget/diffReview":["关闭","Difference {0} of {1}: original {2}, {3} lines, modified {4}, {5} lines","blank","original {0}, modified {1}: {2}","+ modified {0}: {1}","- original {0}: {1}","Go to Next Difference","Go to Previous Difference"],"vs/editor/common/config/commonEditorConfig":["编辑器","控制字体系列。","控制字体粗细。","以像素为单位控制字号。","控制行高。使用 0 通过字号计算行高。","以像素为单位控制字符间距。","控制行号的显示。可能的值为“开”、“关”和“相对”。“相对”将显示从当前光标位置开始计数的行数。","显示垂直标尺的列","执行文字相关的导航或操作时将用作文字分隔符的字符","一个制表符等于的空格数。该设置在 `editor.detectIndentation` 启用时根据文件内容进行重写。","应为“number”。注意,值“auto”已由“editor.detectIndentation”设置替换。",'按 "Tab" 时插入空格。该设置在 `editor.detectIndentation` 启用时根据文件内容进行重写。','应为 "boolean"。注意,值 "auto" 已由 "editor.detectIndentation" 设置替换。','当打开文件时,将基于文件内容检测 "editor.tabSize" 和 "editor.insertSpaces"。',"控制选取范围是否有圆角","控制编辑器是否可以滚动到最后一行之后","控制是否显示 minimap","控制是否自动隐藏迷你地图滑块。 ","呈现某行上的实际字符(与颜色块相反)","限制最小映射的宽度,尽量多地呈现特定数量的列","控制是否将编辑器的选中内容作为搜索词填入到查找组件","控制当编辑器中选中多个字符或多行文字时是否开启“在选定内容中查找”选项 ","永不换行。","将在视区宽度处换行。",'将在 "editor.wordWrapColumn" 处换行。','将在最小视区和 "editor.wordWrapColumn" 处换行。',"控制折行方式。可以选择: - “off” (禁用折行), - “on” (视区折行), - “wordWrapColumn”(在“editor.wordWrapColumn”处折行)或 - “bounded”(在视区与“editor.wordWrapColumn”两者的较小者处折行)。",'在 "editor.wordWrap" 为 "wordWrapColumn" 或 "bounded" 时控制编辑器列的换行。',"控制折行的缩进。可以是“none”、“same”或“indent”。",'要对鼠标滚轮滚动事件的 "deltaX" 和 "deltaY" 使用的乘数 ',"映射到“Control”(Windows 和 Linux)或“Command”(OSX)。","映射到“Alt”(Windows 和 Linux)或“Option”(OSX)。","用鼠标添加多个光标时使用的修改键。“ctrlCmd”映射为“Control”(Windows 和 Linux)或“Command”(OSX)。“转到定义”和“打开链接”功能的鼠标手势将会相应调整,不与多光标修改键冲突。","在字符串内启用快速建议。","在注释内启用快速建议。","在字符串和注释外启用快速建议。","控制键入时是否应自动显示建议","控制延迟多少毫秒后将显示快速建议","启用在输入时显示含有参数文档和类型信息的小面板","控制编辑器是否应该在左括号后自动插入右括号","控制编辑器是否应在键入后自动设置行的格式","控制编辑器是否应自动设置粘贴内容的格式。格式化程序必须可用并且能设置文档中某一范围的格式。","Controls if the editor should automatically adjust the indentation when users type, paste or move lines. Indentation rules of the language must be available. ","控制键入触发器字符时是否应自动显示建议","控制按“Enter”键是否像按“Tab”键一样接受建议。这能帮助避免“插入新行”和“接受建议”之间的歧义。值为“smart”时表示,仅当文字改变时,按“Enter”键才能接受建议",'控制是否应在遇到提交字符时接受建议。例如,在 JavaScript 中,分号(";")可以为提交字符,可接受建议并键入该字符。',"控制是否将代码段与其他建议一起显示以及它们的排序方式。","控制没有选择内容的复制是否复制当前行。","控制是否应根据文档中的字数计算完成。","建议小组件的字号","建议小组件的行高","控制编辑器是否应突出显示选项的近似匹配","控制编辑器是否应该突出显示语义符号次数","控制可在概述标尺同一位置显示的效果数量","控制概述标尺周围是否要绘制边框。",'控制光标动画样式,可能的值为 "blink"、"smooth"、"phase"、"expand" 和 "solid"',"通过使用鼠标滚轮同时按住 Ctrl 可缩放编辑器的字体",'控制光标样式,接受的值为 "block"、"block-outline"、"line"、"line-thin" 、"underline" 和 "underline-thin"',"启用字体连字","控制光标是否应隐藏在概述标尺中。","控制编辑器中呈现空白字符的方式,可能为“无”、“边界”和“全部”。“边界”选项不会在单词之间呈现单空格。","控制编辑器是否应呈现控制字符","控制编辑器是否应呈现缩进参考线","控制编辑器应如何呈现当前行突出显示,可能为“无”、“装订线”、“线”和“全部”。","控制编辑器是否显示代码滤镜","控制编辑器是否启用代码折叠功能","控制是否自动隐藏导航线上的折叠控件。","当选择其中一项时,将突出显示匹配的括号。","控制编辑器是否应呈现垂直字形边距。字形边距最常用于调试。","在制表位后插入和删除空格","删除尾随自动插入的空格","即使在双击编辑器内容或按 Esc 键时,也要保持速览编辑器的打开状态。","控制编辑器是否应该允许通过拖放移动所选项。","编辑器将使用平台 API 以检测是否附加了屏幕阅读器。","编辑器将对屏幕阅读器的使用进行永久优化。","编辑器将不再对屏幕阅读器的使用进行优化。","控制编辑器是否应运行在对屏幕阅读器进行优化的模式。","控制编辑器是否应检测链接并使它们可被点击","控制 Diff 编辑器以并排或内联形式显示差异","控制差异编辑器是否将对前导空格或尾随空格的更改显示为差异","控制差异编辑器是否为已添加/删除的更改显示 +/- 指示符号","控制是否支持 Linux 主剪贴板。"],"vs/editor/common/config/editorOptions":["现在无法访问编辑器。按 Alt+F1 显示选项。","编辑器内容"],"vs/editor/common/controller/cursor":["执行命令时出现意外异常。"],"vs/editor/common/model/textModelWithTokens":["标记输入时模式失败。"],"vs/editor/common/modes/modesRegistry":["纯文本"],"vs/editor/common/services/bulkEdit":["这些文件也已同时更改: {0}","未做编辑","在 {1} 个文件中进行了 {0} 次编辑","在 1 个文件中进行了 {0} 次编辑"],"vs/editor/common/services/modelServiceImpl":["[{0}]\n{1}","[{0}] {1}"],"vs/editor/common/view/editorColorRegistry":["光标所在行高亮内容的背景颜色。","光标所在行四周边框的背景颜色。",'突出显示范围的背景颜色,例如 "Quick Open" 和“查找”功能。',"编辑器光标颜色。","编辑器中空白字符颜色。","编辑器缩进参考线颜色。","编辑器行号颜色。","编辑器标尺的颜色。","编辑器 CodeLens 的前景色","匹配括号的背景色","匹配括号外框颜色","概览标尺边框的颜色。","编辑器导航线的背景色。导航线包括边缘符号和行号。","编辑器中错误波浪线的前景色。","编辑器中错误波浪线的边框颜色。","编辑器中警告波浪线的前景色。","编辑器中警告波浪线的边框颜色。"],"vs/editor/contrib/bracketMatching/common/bracketMatching":["转到括号"],"vs/editor/contrib/caretOperations/common/caretOperations":["将插入点左移","将插入点右移"],"vs/editor/contrib/caretOperations/common/transpose":["转置字母"],"vs/editor/contrib/clipboard/browser/clipboard":["剪切","复制","粘贴","复制并突出显示语法"],"vs/editor/contrib/comment/common/comment":["切换行注释","添加行注释","删除行注释","切换块注释"],"vs/editor/contrib/contextmenu/browser/contextmenu":["显示编辑器上下文菜单"],"vs/editor/contrib/find/browser/findWidget":["查找","查找","上一个匹配","下一个匹配","在选定内容中查找","关闭","替换","替换","替换","全部替换","切换替换模式","仅前 999 个结果突出显示,但所有查找操作均针对整个文本。","第 {0} 个(共 {1} 个)","无结果"],"vs/editor/contrib/find/common/findController":["查找","查找下一个","查找上一个","查找下一个选择","查找上一个选择","替换","将选择添加到下一个查找匹配项","将选择内容添加到上一查找匹配项","将上次选择移动到下一个查找匹配项","将上个选择内容移动到上一查找匹配项","选择所有找到的查找匹配项","更改所有匹配项"],"vs/editor/contrib/folding/browser/folding":["展开","以递归方式展开","折叠","以递归方式折叠","全部折叠","全部展开","折叠级别 {0}"],"vs/editor/contrib/format/browser/formatActions":["在第 {0} 行进行了 1 次格式编辑","在第 {1} 行进行了 {0} 次格式编辑","第 {0} 行到第 {1} 行间进行了 1 次格式编辑","第 {1} 行到第 {2} 行间进行了 {0} 次格式编辑","格式化文件","格式化选定代码"],"vs/editor/contrib/goToDeclaration/browser/goToDeclarationCommands":["未找到“{0}”的任何定义","找不到定义"," – {0} 定义","转到定义","打开侧边的定义","查看定义","未找到“{0}”的实现","未找到实现","– {0} 个实现","转到实现","速览实现","未找到“{0}”的类型定义","未找到类型定义"," – {0} 个类型定义","转到类型定义","快速查看类型定义"],"vs/editor/contrib/goToDeclaration/browser/goToDeclarationMouse":["单击显示 {0} 个定义。"],"vs/editor/contrib/gotoError/browser/gotoError":["({0}/{1})","转到下一个错误或警告","转到上一个错误或警告","编辑器标记导航小组件错误颜色。","编辑器标记导航小组件警告颜色。","编辑器标记导航小组件背景色。"],"vs/editor/contrib/hover/browser/hover":["显示悬停"],"vs/editor/contrib/hover/browser/modesContentHover":["正在加载..."],"vs/editor/contrib/inPlaceReplace/common/inPlaceReplace":["替换为上一个值","替换为下一个值"],"vs/editor/contrib/linesOperations/common/linesOperations":["向上复制行","向下复制行","向上移动行","向下移动行","按升序排列行","按降序排列行","裁剪尾随空格","删除行","行缩进","行减少缩进","在上面插入行","在下面插入行","删除左侧所有内容","删除右侧所有内容","合并行","转置游标处的字符","转换为大写","转换为小写"],"vs/editor/contrib/links/browser/links":["Cmd + 单击以跟踪链接","Ctrl + 单击以跟踪链接","Alt + 单击以访问链接","抱歉,无法打开此链接,因为其格式不正确: {0}","抱歉,无法打开此链接,因为其目标丢失。","打开链接"],"vs/editor/contrib/multicursor/common/multicursor":["在上面添加光标","在下面添加光标","在行尾添加光标"],"vs/editor/contrib/parameterHints/browser/parameterHints":["触发参数提示"],"vs/editor/contrib/parameterHints/browser/parameterHintsWidget":["{0},提示"],"vs/editor/contrib/quickFix/browser/quickFixCommands":["显示修补程序({0})","显示修补程序","快速修复"],"vs/editor/contrib/referenceSearch/browser/referenceSearch":[" – {0} 个引用","查找所有引用"],"vs/editor/contrib/referenceSearch/browser/referencesController":["正在加载..."],"vs/editor/contrib/referenceSearch/browser/referencesModel":["在文件 {0} 的 {1} 行 {2} 列的符号","{0} 中有 1 个符号,完整路径:{1}","{1} 中有 {0} 个符号,完整路径:{2}","未找到结果","在 {0} 中找到 1 个符号","在 {1} 中找到 {0} 个符号","在 {1} 个文件中找到 {0} 个符号"],"vs/editor/contrib/referenceSearch/browser/referencesWidget":["解析文件失败。","{0} 个引用","{0} 个引用","无可用预览","引用","无结果","引用","速览视图标题区域背景颜色。","速览视图标题颜色。","速览视图标题信息颜色。","速览视图边框和箭头颜色。","速览视图结果列表背景颜色。","速览视图结果列表中行节点的前景色。","速览视图结果列表中文件节点的前景色。","速览视图结果列表中所选条目的背景颜色。","速览视图结果列表中所选条目的前景色。","速览视图编辑器背景颜色。","速览视图编辑器中导航线的背景颜色。","在速览视图结果列表中匹配突出显示颜色。","在速览视图编辑器中匹配突出显示颜色。"],"vs/editor/contrib/rename/browser/rename":["无结果。","成功将“{0}”重命名为“{1}”。摘要:{2}","抱歉,重命名无法执行。","重命名符号"],"vs/editor/contrib/rename/browser/renameInputField":['重命名输入。键入新名称并按 "Enter" 提交。'],"vs/editor/contrib/smartSelect/common/smartSelect":["扩大选择","缩小选择"],"vs/editor/contrib/suggest/browser/suggestController":["确认“{0}”插入以下文本:{1}","触发建议"],"vs/editor/contrib/suggest/browser/suggestWidget":["建议小组件的背景颜色","建议小组件的边框颜色","建议小组件的前景颜色。","建议小组件中被选择条目的背景颜色。","建议小组件中匹配内容的高亮颜色。","阅读详细信息...{0}","{0}(建议)具有详细信息","{0},建议","阅读简略信息...{0}","正在加载...","无建议。","{0},已接受","{0}(建议)具有详细信息","{0},建议"],"vs/editor/contrib/toggleTabFocusMode/common/toggleTabFocusMode":["切换 Tab 键是否移动焦点"],"vs/editor/contrib/wordHighlighter/common/wordHighlighter":["读取访问时符号的背景颜色,例如读取变量时。","写入访问时符号的背景颜色,例如写入变量时。"],"vs/editor/contrib/zoneWidget/browser/peekViewWidget":["关闭"],"vs/editor/standalone/browser/inspectTokens/inspectTokens":["Developer: Inspect Tokens"],"vs/editor/standalone/browser/quickOpen/gotoLine":["Go to line {0} and character {1}","Go to line {0}","Type a line number between 1 and {0} to navigate to","Type a character between 1 and {0} to navigate to","Go to line {0}","Type a line number, followed by an optional colon and a character number to navigate to","Go to Line..."],"vs/editor/standalone/browser/quickOpen/quickCommand":["{0}, commands","Type the name of an action you want to execute","Command Palette"],"vs/editor/standalone/browser/quickOpen/quickOutline":["{0}, symbols","Type the name of an identifier you wish to navigate to","Go to Symbol...","symbols ({0})","modules ({0})","classes ({0})","interfaces ({0})","methods ({0})","functions ({0})","properties ({0})","variables ({0})","variables ({0})","constructors ({0})","calls ({0})"],"vs/editor/standalone/browser/standaloneCodeEditor":["Editor content","Press Ctrl+F1 for Accessibility Options.","Press Alt+F1 for Accessibility Options."],"vs/editor/standalone/browser/toggleHighContrast/toggleHighContrast":["Toggle High Contrast Theme"],"vs/platform/configuration/common/configurationRegistry":["默认配置替代","针对 {0} 语言,配置替代编辑器设置。","针对某种语言,配置替代编辑器设置。",'无法注册“{0}”。其符合描述特定语言编辑器设置的表达式 "\\\\[.*\\\\]$"。请使用 "configurationDefaults"。',"无法注册“{0}”。此属性已注册。"],"vs/platform/keybinding/common/abstractKeybindingService":["已按下({0})。正在等待同时按下第二个键...","组合键({0}, {1})不是命令。"],"vs/platform/message/common/message":["关闭","稍后","取消"],"vs/platform/theme/common/colorRegistry":["颜色格式无效。请使用 #RGB、#RGBA、#RRGGBB 或 #RRGGBBAA","工作台中使用的颜色。","整体前景色。此颜色仅在不被组件覆盖时适用。","错误信息的整体前景色。此颜色仅在不被组件覆盖时适用。","提供其他信息的说明文本的前景色,例如标签文本。","焦点元素的整体边框颜色。此颜色仅在不被其他组件覆盖时适用。","在元素周围额外的一层边框,用来提高对比度从而区别其他元素。","在活动元素周围额外的一层边框,用来提高对比度从而区别其他元素。","工作台所选文本的背景颜色(例如输入字段或文本区域)。注意,本设置不适用于编辑器。","文字分隔符的颜色。","文本中链接的前景色。","文本中活动链接的前景色。","预格式化文本段的前景色。","文本中块引用的背景颜色。","文本中块引用的边框颜色。","文本中代码块的背景颜色。","编辑器内小组件(如查找/替换)的阴影颜色。","输入框背景色。","输入框前景色。","输入框边框。","输入字段中已激活选项的边框颜色。","输入框中占位符的前景色。","严重性为信息时输入验证的背景颜色。","严重性为信息时输入验证的边框颜色。","严重性为警告时输入验证的背景颜色。","严重性为警告时输入验证的边框颜色。","严重性为错误时输入验证的背景颜色。","严重性为错误时输入验证的边框颜色。","下拉列表背景色。","下拉列表前景色。","下拉列表边框。","焦点项在列表或树活动时的背景颜色。活动的列表或树具有键盘焦点,非活动的没有。","焦点项在列表或树活动时的背景颜色。活动的列表或树具有键盘焦点,非活动的没有。","已选项在列表或树活动时的背景颜色。活动的列表或树具有键盘焦点,非活动的没有。","已选项在列表或树活动时的前景颜色。活动的列表或树具有键盘焦点,非活动的没有。","已选项在列表或树非活动时的背景颜色。活动的列表或树具有键盘焦点,非活动的没有。","已选项在列表或树非活动时的前景颜色。活动的列表或树具有键盘焦点,非活动的没有。","使用鼠标移动项目时,列表或树的背景颜色。","鼠标在项目上悬停时,列表或树的前景颜色。","使用鼠标移动项目时,列表或树进行拖放的背景颜色。","在列表或树中搜索时,其中匹配内容的高亮颜色。","快速选取器分组标签的颜色。","快速选取器分组边框的颜色。","按钮前景色。","按钮背景色。","按钮在悬停时的背景颜色。","Badge 背景色。Badge 是小型的信息标签,如表示搜索结果数量的标签。","Badge 前景色。Badge 是小型的信息标签,如表示搜索结果数量的标签。","表示视图被滚动的滚动条阴影。","滑块的背景颜色。","滑块在悬停时的背景颜色。","滑块在活动的背景颜色。","表示长时间操作的进度条的背景色。","编辑器背景颜色。","编辑器默认前景色。","编辑器组件(如查找/替换)背景颜色。","编辑器小部件的边框颜色。此颜色仅在小部件有边框且不被小部件重写时适用。","Color of the editor selection.","Color of the selected text for high contrast.","非活动编辑器中所选内容的颜色。","与所选内容具有相同内容的区域颜色。","当前搜索匹配项的颜色。","其他搜索匹配项的颜色。","限制搜索的范围的颜色。","悬停提示显示时文本底下的高亮颜色。","编辑器悬停提示的背景颜色。","光标悬停时编辑器的边框颜色。","活动链接颜色。","已插入文本的背景颜色。","被删除文本的背景颜色。","插入的文本的轮廓颜色。","被删除文本的轮廓颜色。","内联合并冲突中当前版本区域的标头背景色。","内联合并冲突中当前版本区域的内容背景色。","内联合并冲突中传入的版本区域的标头背景色。","内联合并冲突中传入的版本区域的内容背景色。","内联合并冲突中共同祖先区域的标头背景色。","内联合并冲突中共同祖先区域的内容背景色。","内联合并冲突中标头和分割线的边框颜色。","内联合并冲突中当前版本区域的概览标尺前景色。","内联合并冲突中传入的版本区域的概览标尺前景色。","内联合并冲突中共同祖先区域的概览标尺前景色。"]}); +define("vs/editor/editor.main.nls.zh-cn",{"vs/base/browser/ui/actionbar/actionViewItems":["{0} ({1})"],"vs/base/browser/ui/findinput/findInput":["输入"],"vs/base/browser/ui/findinput/findInputCheckboxes":["区分大小写","全字匹配","使用正则表达式"],"vs/base/browser/ui/findinput/replaceInput":["输入","保留大小写"],"vs/base/browser/ui/inputbox/inputBox":["错误: {0}","警告: {0}","信息: {0}"],"vs/base/browser/ui/keybindingLabel/keybindingLabel":["未绑定"],"vs/base/browser/ui/menu/menu":["{0} ({1})"],"vs/base/browser/ui/tree/abstractTree":["清除","禁用输入时筛选","启用输入时筛选","未找到元素","已匹配 {0} 个元素(共 {1} 个)"],"vs/base/common/errorMessage":["{0}: {1}","发生了系统错误 ({0})","出现未知错误。有关详细信息,请参阅日志。","出现未知错误。有关详细信息,请参阅日志。","{0} 个(共 {1} 个错误)","出现未知错误。有关详细信息,请参阅日志。"],"vs/base/common/keybindingLabels":["Ctrl","Shift","Alt","Windows","Ctrl","Shift","Alt","超键","Control","Shift","Alt","Command","Control","Shift","Alt","Windows","Control","Shift","Alt","超键"], +"vs/base/parts/quickinput/browser/quickInput":["上一步","{0}/{1}","在此输入可缩小结果范围。","{0} 个结果","已选 {0} 项","确定","自定义","后退 ({0})","上一步"],"vs/base/parts/quickinput/browser/quickInputList":["快速输入"],"vs/editor/browser/controller/coreCommands":["即使转到较长的行,也一直到末尾","即使转到较长的行,也一直到末尾"],"vs/editor/browser/controller/textAreaHandler":["编辑器","现在无法访问编辑器。按 {0} 获取选项。"],"vs/editor/browser/editorExtensions":["撤消(&&U)","撤消","恢复(&&R)","恢复","全选(&&S)","选择全部"],"vs/editor/browser/widget/codeEditorWidget":["光标数量被限制为 {0}。"],"vs/editor/browser/widget/diffEditorWidget":["文件过大,无法比较。"],"vs/editor/browser/widget/diffReview":["关闭","未更改行","更改了 1 行","更改了 {0} 行","差异 {0}/ {1}: 原始行 {2},{3},修改后的行 {4},{5}","空白","{0} 未更改的行 {1}","{0}原始行{1}修改的行{2}","+ {0}修改的行{1}","- {0}原始行{1}","转至下一个差异","转至上一个差异"],"vs/editor/browser/widget/inlineDiffMargin":["复制已删除的行","复制已删除的行","复制已删除的行({0})","还原此更改","复制已删除的行({0})"], +"vs/editor/common/config/commonEditorConfig":["编辑器","一个制表符等于的空格数。在 `#editor.detectIndentation#` 启用时,根据文件内容,该设置可能会被覆盖。","按 `Tab` 键时插入空格。该设置在 `#editor.detectIndentation#` 启用时根据文件内容可能会被覆盖。","控制是否在打开文件时,基于文件内容自动检测 `#editor.tabSize#` 和 `#editor.insertSpaces#`。","删除自动插入的尾随空白符号。","对大型文件进行特殊处理,禁用某些内存密集型功能。","控制是否根据文档中的文字计算自动完成列表。","对所有颜色主题启用语义突出显示。","对所有颜色主题禁用语义突出显示。",'语义突出显示是由当前颜色主题的 "semanticHighlighting" 设置配置的。',"控制是否为支持它的语言显示语义突出显示。","在速览编辑器中,即使双击其中的内容或者按 `Esc` 键,也保持其打开状态。","由于性能原因,超过这个长度的行将不会被标记","超时(以毫秒为单位),之后将取消差异计算。使用0表示没有超时。","控制差异编辑器的显示方式是并排还是内联。","启用后,差异编辑器将忽略前导空格或尾随空格中的更改。","控制差异编辑器是否为添加/删除的更改显示 +/- 指示符号。","控制是否在编辑器中显示 CodeLens。"], +"vs/editor/common/config/editorOptions":["编辑器将使用平台 API 以检测是否附加了屏幕阅读器。","编辑器将对屏幕阅读器的使用进行永久优化。","编辑器将不再对屏幕阅读器的使用进行优化。","控制编辑器是否应运行在对屏幕阅读器进行优化的模式。","控制在注释时是否插入空格字符。","控制在对行注释执行切换、添加或删除操作时,是否应忽略空行。","控制在没有选择内容时进行复制是否复制当前行。","控制在键入时光标是否应跳转以查找匹配项。","控制是否将编辑器选中内容作为搜索词填入到查找小组件中。","切勿自动打开“选择中查找”(默认)","始终自动打开“在选择中查找”","选择多行内容时,自动打开“在选择中查找”。","控制在所选内容中自动开启查找的条件。","控制“查找”小组件是否读取或修改 macOS 的共享查找剪贴板。",'控制 "查找小部件" 是否应在编辑器顶部添加额外的行。如果为 true, 则可以在 "查找小工具" 可见时滚动到第一行之外。',"控制在找不到其他匹配项时,是否自动从开头(或结尾)重新开始搜索。","启用或禁用字体连字。","显式字体功能设置。","配置字体连字或字体功能。","控制字体大小(像素)。","仅允许使用关键字“正常”和“加粗”,或使用介于 1 至 1000 之间的数字。","控制字体粗细。接受关键字“正常”和“加粗”,或者接受介于 1 至 1000 之间的数字。","显示结果的预览视图 (默认值)","转到主结果并显示预览视图","转到主结果,并对其他人启用防偷窥导航",'此设置已弃用,请改用单独的设置,如"editor.editor.gotoLocation.multipleDefinitions"或"editor.editor.gotoLocation.multipleImplementations"。','控制存在多个目标位置时"转到定义"命令的行为。','控制存在多个目标位置时"转到类型定义"命令的行为。','控制存在多个目标位置时"转到声明"命令的行为。','控制存在多个目标位置时"转到实现"命令的行为。','控制存在多个目标位置时"转到引用"命令的行为。','当"转到定义"的结果为当前位置时将要执行的替代命令的 ID。','当"转到类型定义"的结果是当前位置时正在执行的备用命令 ID。','当"转到声明"的结果为当前位置时将要执行的替代命令的 ID。','当"转到实现"的结果为当前位置时将要执行的替代命令的 ID。','当"转到引用"的结果是当前位置时正在执行的替代命令 ID。',"控制是否显示悬停提示。","控制显示悬停提示前的等待时间 (毫秒)。","控制当鼠标移动到悬停提示上时,其是否保持可见。","在编辑器中启用代码操作小灯泡提示。","控制行高。为 0 时则通过字体大小自动计算。","控制是否显示缩略图。","迷你地图的大小与编辑器内容相同(并且可能滚动)。","迷你地图将根据需要拉伸或缩小以填充编辑器的高度(不滚动)。","迷你地图将根据需要缩小,永远不会大于编辑器(不滚动)。","控制迷你地图的大小。","控制在哪一侧显示缩略图。","控制何时显示迷你地图滑块。","在迷你地图中绘制的内容比例: 1、2 或 3。","渲染每行的实际字符,而不是色块。","限制缩略图的宽度,控制其最多显示的列数。","控制编辑器的顶边和第一行之间的间距量。","控制编辑器的底边和最后一行之间的间距量。","在输入时显示含有参数文档和类型信息的小面板。","控制参数提示菜单在到达列表末尾时进行循环还是关闭。","在字符串内启用快速建议。","在注释内启用快速建议。","在字符串和注释外启用快速建议。","控制是否在键入时自动显示建议。","不显示行号。","将行号显示为绝对行数。","将行号显示为与光标相隔的行数。","每 10 行显示一次行号。","控制行号的显示。","此编辑器标尺将渲染的等宽字符数。","此编辑器标尺的颜色。","在一定数量的等宽字符后显示垂直标尺。输入多个值,显示多个标尺。若数组为空,则不绘制标尺。","插入建议而不覆盖光标右侧的文本。","插入建议并覆盖光标右侧的文本。","控制接受补全时是否覆盖单词。请注意,这取决于扩展选择使用此功能。","控制对建议的筛选和排序是否考虑小的拼写错误。","控制排序时是否提高靠近光标的词语的优先级。","控制是否在多个工作区和窗口间共享记忆的建议选项(需要 `#editor.suggestSelection#`)。","控制活动代码段是否阻止快速建议。","控制是否在建议中显示或隐藏图标。","控制在显示滚动条之前 IntelliSense 将显示的建议数 (最多 15个)。",'此设置已弃用,请改用单独的设置,如"editor.suggest.showKeywords"或"editor.suggest.showSnippets"。',"启用后,IntelliSense 将显示“方法”建议。","启用后,IntelliSense 将显示“函数”建议。","启用后,IntelliSense 将显示“构造函数”建议。","启用后,IntelliSense 将显示“字段”建议。","启用后,IntelliSense 将显示“变量”建议。","启用后,IntelliSense 将显示“类”建议。","启用后,IntelliSense 将显示“结构”建议。","启用后,IntelliSense 将显示“接口”建议。","启用后,IntelliSense 将显示“模块”建议。","启用后,IntelliSense 将显示“属性”建议。","启用后,IntelliSense 将显示“事件”建议。","启用后,IntelliSense 将显示“操作符”建议。","启用后,IntelliSense 将显示“单位”建议。","启用后,IntelliSense 将显示“值”建议。","启用后,IntelliSense 将显示“常量”建议。","启用后,IntelliSense 将显示“枚举”建议。",'启用后,IntelliSense 将显示 "enumMember" 建议。',"启用后,IntelliSense 将显示“关键字”建议。","启用后,IntelliSense 将显示“文本”建议。","启用后,IntelliSense 将显示“颜色”建议。","启用后,IntelliSense 将显示“文件”建议。","启用后,IntelliSense 将显示“参考”建议。","启用后,IntelliSense 将显示“自定义颜色”建议。","启用后,IntelliSense 将显示“文件夹”建议。",'启用后,IntelliSense 将显示 "typeParameter" 建议。',"启用后,IntelliSense 将显示“片段”建议。",'启用后,IntelliSense 将显示"用户"建议。','启用后,IntelliSense 将显示"问题"建议。',"控制建议小部件底部的状态栏的可见性。","控制是否应在遇到提交字符时接受建议。例如,在 JavaScript 中,半角分号 (`;`) 可以为提交字符,能够在接受建议的同时键入该字符。","仅当建议包含文本改动时才可使用 `Enter` 键进行接受。","控制除了 `Tab` 键以外, `Enter` 键是否同样可以接受建议。这能减少“插入新行”和“接受建议”命令之间的歧义。","控制编辑器中可由屏幕阅读器读取的行数。警告: 对于大于默认值的数字,这会影响性能。","编辑器内容","使用语言配置确定何时自动闭合括号。","仅当光标位于空白字符左侧时,才自动闭合括号。","控制编辑器是否在左括号后自动插入右括号。","仅在自动插入时才改写右引号或右括号。","控制编辑器是否应改写右引号或右括号。","使用语言配置确定何时自动闭合引号。","仅当光标位于空白字符左侧时,才自动闭合引号。","控制编辑器是否在左引号后自动插入右引号。","编辑器不会自动插入缩进。","编辑器将保留当前行的缩进。","编辑器将保留当前行的缩进并遵循语言定义的括号。","编辑器将保留当前行的缩进、使用语言定义的括号并调用语言定义的特定 onEnterRules。","编辑器将保留当前行的缩进,使用语言定义的括号,调用由语言定义的特殊输入规则,并遵循由语言定义的缩进规则。","控制编辑器是否应在用户键入、粘贴、移动或缩进行时自动调整缩进。","使用语言配置确定何时自动包住所选内容。","使用引号而非括号来包住所选内容。","使用括号而非引号来包住所选内容。","控制编辑器是否应自动包住所选内容。","控制是否在编辑器中显示 CodeLens。","控制编辑器是否显示内联颜色修饰器和颜色选取器。","启用使用鼠标和键进行列选择。","控制在复制时是否同时复制语法高亮。","控制光标的动画样式。","控制是否启用平滑插入动画。","控制光标样式。","控制光标周围可见的前置行和尾随行的最小数目。在其他一些编辑器中称为“scrollOff”或“scrollOffset”。",'仅当通过键盘或 API 触发时,才会强制执行"光标环绕行"。','始终强制执行 "cursorSurroundingLines"','控制何时应强制执行"光标环绕行"。',"当 `#editor.cursorStyle#` 设置为 `line` 时,控制光标的宽度。","控制在编辑器中是否允许通过拖放来移动选中内容。",'按下"Alt"时滚动速度倍增。',"控制编辑器是否启用了代码折叠。","使用特定于语言的折叠策略(如果可用),否则使用基于缩进的策略。","使用基于缩进的折叠策略。","控制计算折叠范围的策略。","控制编辑器是否应突出显示折叠范围。","控制单击已折叠的行后面的空内容是否会展开该行。","控制字体系列。","控制编辑器是否自动格式化粘贴的内容。格式化程序必须可用,并且能针对文档中的某一范围进行格式化。","控制编辑器在键入一行后是否自动格式化该行。","控制编辑器是否应呈现垂直字形边距。字形边距最常用于调试。","控制是否在概览标尺中隐藏光标。","控制是否突出显示编辑器中活动的缩进参考线。","控制字母间距(像素)。","控制是否在编辑器中检测链接并使其可被点击。","突出显示匹配的括号。","对鼠标滚轮滚动事件的 `deltaX` 和 `deltaY` 乘上的系数。","按住 `Ctrl` 键并滚动鼠标滚轮时对编辑器字体大小进行缩放。","当多个光标重叠时进行合并。","映射为 `Ctrl` (Windows 和 Linux) 或 `Command` (macOS)。","映射为 `Alt` (Windows 和 Linux) 或 `Option` (macOS)。","在通过鼠标添加多个光标时使用的修改键。“转到定义”和“打开链接”功能所需的鼠标动作将会相应调整,不与多光标修改键冲突。[阅读详细信息](https://code.visualstudio.com/docs/editor/codebasics#_multicursor-modifier)。","每个光标粘贴一行文本。","每个光标粘贴全文。","控制粘贴时粘贴文本的行计数与光标计数相匹配。","控制编辑器是否突出显示语义符号的匹配项。","控制是否在概览标尺周围绘制边框。","打开速览时聚焦树","打开预览时将焦点放在编辑器上","控制是将焦点放在内联编辑器上还是放在预览小部件中的树上。",'控制"转到定义"鼠标手势是否始终打开预览小部件。',"控制显示快速建议前的等待时间 (毫秒)。","控制是否在编辑器中输入时自动重命名。","控制编辑器是否显示控制字符。","控制编辑器是否显示缩进参考线。","当文件以换行符结束时, 呈现最后一行的行号。","同时突出显示导航线和当前行。","控制编辑器的当前行进行高亮显示的方式。","控制编辑器是否仅在焦点在编辑器时突出显示当前行","呈现空格字符(字词之间的单个空格除外)。","仅在选定文本上呈现空白字符。","仅呈现尾随空格字符","控制编辑器在空白字符上显示符号的方式。","控制选区是否有圆角。","控制编辑器水平滚动时可以超过范围的字符数。","控制编辑器是否可以滚动到最后一行之后。","同时垂直和水平滚动时,仅沿主轴滚动。在触控板上垂直滚动时,可防止水平漂移。","控制是否支持 Linux 主剪贴板。","控制编辑器是否应突出显示与所选内容类似的匹配项。","始终显示折叠控件。","仅在鼠标位于装订线上方时显示折叠控件。","控制何时显示行号槽上的折叠控件。","控制是否淡化未使用的代码。","控制加删除线被弃用的变量。","在其他建议上方显示代码片段建议。","在其他建议下方显示代码片段建议。","在其他建议中穿插显示代码片段建议。","不显示代码片段建议。","控制代码片段是否与其他建议一起显示及其排列的位置。","控制编辑器是否在滚动时使用动画。","建议小部件的字号。如果设置为 `0`,则使用 `#editor.fontSize#` 的值。","建议小部件的行高。如果设置为 `0`,则使用 `#editor.lineHeight#` 的值。","控制在键入触发字符后是否自动显示建议。","始终选择第一个建议。","选择最近的建议,除非进一步键入选择其他项。例如 `console. -> console.log`,因为最近补全过 `log`。","根据之前补全过的建议的前缀来进行选择。例如,`co -> console`、`con -> const`。","控制在建议列表中如何预先选择建议。","在按下 Tab 键时进行 Tab 补全,将插入最佳匹配建议。","禁用 Tab 补全。",'在前缀匹配时进行 Tab 补全。在 "quickSuggestions" 未启用时体验最好。',"启用 Tab 补全。","忽略异常的行终止符。","提示删除异常的行终止符。","自动删除异常的行终止符。","删除可能导致问题的异常行终止符。","根据制表位插入和删除空格。","执行单词相关的导航或操作时作为单词分隔符的字符。","永不换行。","将在视区宽度处换行。","在 `#editor.wordWrapColumn#` 处折行。","在视区宽度和 `#editor.wordWrapColumn#` 中的较小值处折行。","控制折行的方式。","在 `#editor.wordWrap#` 为 `wordWrapColumn` 或 `bounded` 时,控制编辑器的折行列。","没有缩进。折行从第 1 列开始。","折行的缩进量与其父级相同。","折行的缩进量比其父级多 1。","折行的缩进量比其父级多 2。","控制折行的缩进。","假定所有字符的宽度相同。这是一种快速算法,适用于等宽字体和某些字形宽度相等的文字(如拉丁字符)。","将包装点计算委托给浏览器。这是一个缓慢算法,可能会导致大型文件被冻结,但它在所有情况下都正常工作。","控制计算包裹点的算法。"], +"vs/editor/common/model/editStack":["输入"],"vs/editor/common/modes/modesRegistry":["纯文本"],"vs/editor/common/standaloneStrings":["无选择","行 {0}, 列 {1} (选中 {2})","行 {0}, 列 {1}","{0} 选择(已选择 {1} 个字符)","{0} 选择",'现在将 "辅助功能支持" 设置更改为 "打开"。',"现在正在打开“编辑器辅助功能”文档页。","在差异编辑器的只读窗格中。","在一个差异编辑器的窗格中。","在只读代码编辑器中","在代码编辑器中","若要配置编辑器,将其进行优化以最好地配合屏幕阅读器的使用,请立即按 Command+E。","若要配置编辑器,将其进行优化以最高效地配合屏幕阅读器的使用,按下 Ctrl+E。","配置编辑器,将其进行优化以最好地配合屏幕读取器的使用。","编辑器被配置为永远不进行优化以配合屏幕读取器的使用, 而当前不是这种情况。","在当前编辑器中按 Tab 会将焦点移动到下一个可聚焦的元素。通过按 {0} 切换此行为。","在当前编辑器中按 Tab 会将焦点移动到下一个可聚焦的元素。当前无法通过按键绑定触发命令 {0}。","在当前编辑器中按 Tab 将插入制表符。通过按 {0} 切换此行为。","在当前编辑器中按 Tab 会插入制表符。当前无法通过键绑定触发命令 {0}。","现在按 Command+H 打开一个浏览器窗口, 其中包含有关编辑器辅助功能的详细信息。","现在按 Ctrl+H 打开一个浏览器窗口, 其中包含有关编辑器辅助功能的更多信息。","你可以按 Esc 或 Shift+Esc 消除此工具提示并返回到编辑器。","显示辅助功能帮助","开发人员: 检查令牌","转到行/列...","显示所有快速访问提供程序","命令面板","显示并运行命令","转到符号...","按类别转到符号...","编辑器内容","按 Alt+F1 可打开辅助功能选项。","切换高对比度主题","在 {1} 个文件中进行了 {0} 次编辑"], +"vs/editor/common/view/editorColorRegistry":["光标所在行高亮内容的背景颜色。","光标所在行四周边框的背景颜色。","背景颜色的高亮范围,喜欢通过快速打开和查找功能。颜色不能不透明,以免隐藏底层装饰。","高亮区域边框的背景颜色。","高亮显示符号的背景颜色,例如转到定义或转到下一个/上一个符号。颜色不能是不透明的,以免隐藏底层装饰。","高亮显示符号周围的边框的背景颜色。","编辑器光标颜色。","编辑器光标的背景色。可以自定义块型光标覆盖字符的颜色。","编辑器中空白字符的颜色。","编辑器缩进参考线的颜色。","编辑器活动缩进参考线的颜色。","编辑器行号的颜色。","编辑器活动行号的颜色",'"Id" 已被弃用,请改用 "editorLineNumber.activeForeground"。',"编辑器活动行号的颜色","编辑器标尺的颜色。","编辑器 CodeLens 的前景色","匹配括号的背景色","匹配括号外框的颜色","概览标尺边框的颜色。","编辑器概述标尺的背景色。仅当缩略图已启用且置于编辑器右侧时才使用。","编辑器导航线的背景色。导航线包括边缘符号和行号。","编辑器中不必要(未使用)的源代码的边框颜色。",'非必须(未使用)代码的在编辑器中显示的不透明度。例如,"#000000c0" 将以 75% 的不透明度显示代码。对于高对比度主题,请使用 ”editorUnnecessaryCode.border“ 主题来为非必须代码添加下划线,以避免颜色淡化。',"用于突出显示范围的概述标尺标记颜色。颜色必须透明,以免隐藏下面的修饰效果。","概览标尺中错误标记的颜色。","概览标尺中警告标记的颜色。","概览标尺中信息标记的颜色。"],"vs/editor/contrib/anchorSelect/anchorSelect":["选择定位点","定位点设置为 {0}:{1}","设置选择定位点","转到选择定位点","选择从定位点到光标","取消选择定位点"],"vs/editor/contrib/bracketMatching/bracketMatching":["概览标尺上表示匹配括号的标记颜色。","转到括号","选择括号所有内容","转到括号(&&B)"], +"vs/editor/contrib/caretOperations/caretOperations":["向左移动所选文本","向右移动所选文本"],"vs/editor/contrib/caretOperations/transpose":["转置字母"],"vs/editor/contrib/clipboard/clipboard":["剪切(&&T)","剪切","剪切","复制(&&C)","复制","复制","粘贴(&&P)","粘贴","粘贴","复制并突出显示语法"],"vs/editor/contrib/codeAction/codeActionCommands":["要运行的代码操作的种类。","控制何时应用返回的操作。","始终应用第一个返回的代码操作。","如果仅返回的第一个代码操作,则应用该操作。","不要应用返回的代码操作。","如果只应返回首选代码操作,则应返回控件。","应用代码操作时发生未知错误","快速修复...","没有可用的代码操作",'没有适用于"{0}"的首选代码操作','没有适用于"{0}"的代码操作',"没有可用的首选代码操作","没有可用的代码操作","重构...",'没有适用于"{0}"的首选重构','没有可用的"{0}"重构',"没有可用的首选重构","没有可用的重构操作","源代码操作...",'没有适用于"{0}"的首选源操作',"没有适用于“ {0}”的源操作","没有可用的首选源操作","没有可用的源代码操作","整理 import 语句","没有可用的整理 import 语句操作","全部修复","没有可用的“全部修复”操作","自动修复...","没有可用的自动修复程序"],"vs/editor/contrib/codeAction/lightBulbWidget":["显示修复程序。首选可用修复程序 ({0})","显示修补程序({0})","显示修补程序"],"vs/editor/contrib/codelens/codelensController":["显示当前行的 Code Lens 命令"],"vs/editor/contrib/comment/comment":["切换行注释","切换行注释(&&T)","添加行注释","删除行注释","切换块注释","切换块注释(&&B)"], +"vs/editor/contrib/contextmenu/contextmenu":["显示编辑器上下文菜单"],"vs/editor/contrib/cursorUndo/cursorUndo":["光标撤消","光标重做"], +"vs/editor/contrib/documentSymbols/outlineTree":["数组符号的前景色。这些符号将显示在大纲、痕迹导航栏和建议小组件中。","布尔符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。","类符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。","颜色符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。","常量符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。","构造函数符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。","枚举符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。","枚举器成员符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。","事件符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。","字段符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。","文件符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。","文件夹符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。","函数符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。","接口符号的前景色。这些符号将显示在大纲、痕迹导航栏和建议小组件中。","键符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。","关键字符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。","方法符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。","模块符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。","命名空间符号的前景颜色。这些符号出现在轮廓、痕迹导航栏和建议小部件中。","空符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。","数字符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。","对象符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。","运算符符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。","包符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。","属性符号的前景色。这些符号出现在大纲、痕迹导航栏和建议小组件中。","参考符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。","片段符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。","字符串符号的前景颜色。这些符号出现在轮廓、痕迹导航栏和建议小部件中。","结构符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。","文本符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。","类型参数符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。","单位符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。","变量符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。"], +"vs/editor/contrib/find/findController":["查找","查找(&&F)","查找选定内容","查找下一个","查找下一个","查找上一个","查找上一个","查找下一个选择","查找上一个选择","替换","替换(&&R)"],"vs/editor/contrib/find/findWidget":["查找","查找","上一个匹配项","下一个匹配项","在选定内容中查找","关闭","替换","替换","替换","全部替换","切换替换模式","仅高亮了前 {0} 个结果,但所有查找操作均针对全文。","{1} 中的 {0}","无结果","找到 {0}","为“{1}”找到 {0}","在 {2} 处找到“{1}”的 {0}","为“{1}”找到 {0}","Ctrl+Enter 现在由全部替换改为插入换行。你可以修改editor.action.replaceAll 的按键绑定以覆盖此行为。"],"vs/editor/contrib/folding/folding":["展开","以递归方式展开","折叠","切换折叠","以递归方式折叠","折叠所有块注释","折叠所有区域","展开所有区域","全部折叠","全部展开","折叠级别 {0}","折叠范围后面的背景颜色。颜色必须设为透明,以免隐藏底层装饰。","编辑器装订线中折叠控件的颜色。"],"vs/editor/contrib/fontZoom/fontZoom":["放大编辑器字体","缩小编辑器字体","重置编辑器字体大小"],"vs/editor/contrib/format/format":["在第 {0} 行进行了 1 次格式编辑","在第 {1} 行进行了 {0} 次格式编辑","第 {0} 行到第 {1} 行间进行了 1 次格式编辑","第 {1} 行到第 {2} 行间进行了 {0} 次格式编辑"],"vs/editor/contrib/format/formatActions":["格式化文档","格式化选定内容"], +"vs/editor/contrib/gotoError/gotoError":["转到下一个问题 (错误、警告、信息)","转到上一个问题 (错误、警告、信息)","转到文件中的下一个问题 (错误、警告、信息)","下一个问题(&&P)","转到文件中的上一个问题 (错误、警告、信息)","上一个问题(&&P)"],"vs/editor/contrib/gotoError/gotoErrorWidget":["错误","警告","信息","提示","{1} 中的 {0}","{0} 个问题(共 {1} 个)","{0} 个问题(共 {1} 个)","编辑器标记导航小组件错误颜色。","编辑器标记导航小组件警告颜色。","编辑器标记导航小组件信息颜色。","编辑器标记导航小组件背景色。"],"vs/editor/contrib/gotoSymbol/goToCommands":["快速查看","定义","未找到“{0}”的任何定义","找不到定义","转到定义","转到定义(&&D)","打开侧边的定义","速览定义","声明","未找到“{0}”的声明","未找到声明","转到声明",'转到"声明"(&&D)',"未找到“{0}”的声明","未找到声明","查看声明","类型定义","未找到“{0}”的类型定义","未找到类型定义","转到类型定义","转到类型定义(&&T)","快速查看类型定义","实现","未找到“{0}”的实现","未找到实现","转到实现","跳转到实现(&&I)","查看实现",'未找到"{0}"的引用',"未找到引用","转到引用","转到引用(&&R)","引用","查看引用","引用","转到任何符号","位置","无“{0}”的结果","引用"],"vs/editor/contrib/gotoSymbol/link/goToDefinitionAtPosition":["单击显示 {0} 个定义。"],"vs/editor/contrib/gotoSymbol/peek/referencesController":["正在加载...","{0} ({1})"],"vs/editor/contrib/gotoSymbol/peek/referencesTree":["{0} 个引用","{0} 个引用","引用"], +"vs/editor/contrib/gotoSymbol/peek/referencesWidget":["无可用预览","无结果","引用"],"vs/editor/contrib/gotoSymbol/referencesModel":["在文件 {0} 的 {1} 行 {2} 列的符号","{0} 中有 1 个符号,完整路径: {1}","{1} 中有 {0} 个符号,完整路径: {2}","未找到结果","在 {0} 中找到 1 个符号","在 {1} 中找到 {0} 个符号","在 {1} 个文件中找到 {0} 个符号"],"vs/editor/contrib/gotoSymbol/symbolNavigation":["{1} 的符号 {0},下一个使用 {2}","{1} 的符号 {0}"],"vs/editor/contrib/hover/hover":["显示悬停","显示定义预览悬停"],"vs/editor/contrib/hover/modesContentHover":["正在加载...","速览问题","正在检查快速修复...","没有可用的快速修复","快速修复..."],"vs/editor/contrib/inPlaceReplace/inPlaceReplace":["替换为上一个值","替换为下一个值"],"vs/editor/contrib/indentation/indentation":["将缩进转换为空格","将缩进转换为制表符","已配置制表符大小","选择当前文件的制表符大小",'使用 "Tab" 缩进',"使用空格缩进","从内容中检测缩进方式","重新缩进行","重新缩进所选行"],"vs/editor/contrib/linesOperations/linesOperations":["向上复制行","向上复制行(&&C)","向下复制行","向下复制一行(&&P)","重复选择","重复选择(&&D)","向上移动行","向上移动一行(&&V)","向下移动行","向下移动一行(&&L)","按升序排列行","按降序排列行","裁剪尾随空格","删除行","行缩进","行减少缩进","在上面插入行","在下面插入行","删除左侧所有内容","删除右侧所有内容","合并行","转置光标处的字符","转换为大写","转换为小写","转换为词首字母大写"], +"vs/editor/contrib/links/links":["执行命令","关注链接","cmd + 单击","ctrl + 单击","option + 单击","alt + 单击","此链接格式不正确,无法打开: {0}","此链接目标已丢失,无法打开。","打开链接"],"vs/editor/contrib/message/messageController":["无法在只读编辑器中编辑"],"vs/editor/contrib/multicursor/multicursor":["在上面添加光标","在上面添加光标(&&A)","在下面添加光标","在下面添加光标(&&D)","在行尾添加光标","在行尾添加光标(&&U)","在底部添加光标","在顶部添加光标","将下一个查找匹配项添加到选择","添加下一个匹配项(&&N)","将选择内容添加到上一查找匹配项","添加上一个匹配项(&&R)","将上次选择移动到下一个查找匹配项","将上个选择内容移动到上一查找匹配项","选择所有找到的查找匹配项","选择所有匹配项(&&O)","更改所有匹配项"],"vs/editor/contrib/parameterHints/parameterHints":["触发参数提示"],"vs/editor/contrib/parameterHints/parameterHintsWidget":["{0},提示"],"vs/editor/contrib/peekView/peekView":["关闭","速览视图标题区域背景颜色。","速览视图标题颜色。","速览视图标题信息颜色。","速览视图边框和箭头颜色。","速览视图结果列表背景色。","速览视图结果列表中行节点的前景色。","速览视图结果列表中文件节点的前景色。","速览视图结果列表中所选条目的背景色。","速览视图结果列表中所选条目的前景色。","速览视图编辑器背景色。","速览视图编辑器中装订线的背景色。","在速览视图结果列表中匹配突出显示颜色。","在速览视图编辑器中匹配突出显示颜色。","在速览视图编辑器中匹配项的突出显示边框。"], +"vs/editor/contrib/quickAccess/gotoLineQuickAccess":["先打开文本编辑器然后跳转到行。","转到第 {0} 行、第 {1} 列。","转到行 {0}。","当前行: {0},字符: {1}。键入要导航到的行号(介于 1 至 {2} 之间)。","当前行: {0},字符: {1}。 键入要导航到的行号。"],"vs/editor/contrib/quickAccess/gotoSymbolQuickAccess":["要转到符号,首先打开具有符号信息的文本编辑器。","活动文本编辑器不提供符号信息。","没有匹配的编辑器符号","没有编辑器符号","在侧边打开","在底部打开","符号({0})","属性({0})","方法({0})","函数({0})","构造函数 ({0})","变量({0})","类({0})","结构({0})","事件({0})","运算符({0})","接口({0})","命名空间({0})","包({0})","类型参数({0})","模块({0})","属性({0})","枚举({0})","枚举成员({0})","字符串({0})","文件({0})","数组({0})","数字({0})","布尔值({0})","对象({0})","键({0})","字段({0})","常量({0})"],"vs/editor/contrib/rename/onTypeRename":["在键入时重命名符号","编辑器根据类型自动重命名时的背景色。"],"vs/editor/contrib/rename/rename":["无结果。","解析重命名位置时发生未知错误","正在重命名“{0}”","重命名 {0}","成功将“{0}”重命名为“{1}”。摘要: {2}","重命名无法应用修改","重命名无法计算修改","重命名符号","启用/禁用重命名之前预览更改的功能"],"vs/editor/contrib/rename/renameInputField":['重命名输入。键入新名称并按 "Enter" 提交。',"按 {0} 进行重命名,按 {1} 进行预览"],"vs/editor/contrib/smartSelect/smartSelect":["展开选择","展开选定内容(&&E)","收起选择","缩小选定范围(&&S)"], +"vs/editor/contrib/snippet/snippetVariables":["星期天","星期一","星期二","星期三","星期四","星期五","星期六","周日","周一","周二","周三","周四","周五","周六","一月","二月","三月","四月","5月","六月","七月","八月","九月","十月","十一月","十二月","1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11 月","12月"],"vs/editor/contrib/suggest/suggestController":["选择“{0}”后进行了其他 {1} 次编辑","触发建议","{0} 插入","{0} 插入","{0} 替换","{0} 替换","{0} 插入","显示更少","显示更多"],"vs/editor/contrib/suggest/suggestWidget":["建议小组件的背景色。","建议小组件的边框颜色。","建议小组件的前景色。","建议小组件中所选条目的背景色。","建议小组件中匹配内容的高亮颜色。","读取更多({0})","读取更少({0})","正在加载...","正在加载...","无建议。","{0},文档: {1}","建议"],"vs/editor/contrib/toggleTabFocusMode/toggleTabFocusMode":["切换 Tab 键移动焦点","Tab 键将移动到下一可聚焦的元素","Tab 键将插入制表符"],"vs/editor/contrib/tokenization/tokenization":["开发人员: 强制重新进行标记"],"vs/editor/contrib/unusualLineTerminators/unusualLineTerminators":["异常行终止符","检测到异常行终止符",'此文件包含一个或多个异常的行终止符,例如行分隔符(LS)或段落分隔符(PS)。\r\n\r\n建议从文件中删除它们。可通过 "editor.unusualLineTerminators" 进行配置。',"修复此文件","忽略此文件的问题"], +"vs/editor/contrib/wordHighlighter/wordHighlighter":["读取访问期间符号的背景色,例如读取变量时。颜色必须透明,以免隐藏下面的修饰效果。","写入访问过程中符号的背景色,例如写入变量时。颜色必须透明,以免隐藏下面的修饰效果。","符号在进行读取访问操作时的边框颜色,例如读取变量。","符号在进行写入访问操作时的边框颜色,例如写入变量。","用于突出显示符号的概述标尺标记颜色。颜色必须透明,以免隐藏下面的修饰效果。","用于突出显示写权限符号的概述标尺标记颜色。颜色必须透明,以免隐藏下面的修饰效果。","转到下一个突出显示的符号","转到上一个突出显示的符号","触发符号高亮"],"vs/platform/actions/browser/menuEntryActionViewItem":["{0} ({1})"],"vs/platform/configuration/common/configurationRegistry":["默认语言配置替代","针对某种语言,配置替代编辑器设置。","此设置不支持按语言配置。",'无法注册“{0}”。其符合描述特定语言编辑器设置的表达式 "\\\\[.*\\\\]$"。请使用 "configurationDefaults"。',"无法注册“{0}”。此属性已注册。"],"vs/platform/keybinding/common/abstractKeybindingService":["({0})已按下。正在等待按下第二个键...","组合键({0},{1})不是命令。"], +"vs/platform/list/browser/listService":["工作台","映射为 `Ctrl` (Windows 和 Linux) 或 `Command` (macOS)。","映射为 `Alt` (Windows 和 Linux) 或 `Option` (macOS)。","在通过鼠标多选树和列表条目时使用的修改键 (例如“资源管理器”、“打开的编辑器”和“源代码管理”视图)。“在侧边打开”功能所需的鼠标动作 (若可用) 将会相应调整,不与多选修改键冲突。","控制在树和列表中怎样使用鼠标来展开子项(若支持)。对于树中的父节点,此设置将控制是使用单击还是双击来展开。注意,某些不适用于此设置的树或列表可能会忽略此项。 ","控制列表和树是否支持工作台中的水平滚动。警告: 打开此设置影响会影响性能。","控制树缩进(以像素为单位)。","控制树是否应呈现缩进参考线。","控制列表和树是否具有平滑滚动。","简单键盘导航聚焦与键盘输入相匹配的元素。仅对前缀进行匹配。","高亮键盘导航会突出显示与键盘输入相匹配的元素。进一步向上和向下导航将仅遍历突出显示的元素。","筛选器键盘导航将筛选出并隐藏与键盘输入不匹配的所有元素。","控制工作台中的列表和树的键盘导航样式。它可为“简单”、“突出显示”或“筛选”。","控制列表和树中的键盘导航是否仅通过键入自动触发。如果设置为 `false` ,键盘导航只在执行 `list.toggleKeyboardNavigation` 命令时触发,您可以为该命令指定键盘快捷方式。"],"vs/platform/markers/common/markers":["错误","警告","信息"],"vs/platform/quickinput/browser/commandsQuickAccess":["{0}, {1}","最近使用","其他命令",'命令"{0}"导致错误 ({1})'],"vs/platform/quickinput/browser/helpQuickAccess":["全局命令","编辑器命令","{0}, {1}"], +"vs/platform/theme/common/colorRegistry":["整体前景色。此颜色仅在不被组件覆盖时适用。","错误信息的整体前景色。此颜色仅在不被组件覆盖时适用。","工作台中图标的默认颜色。","焦点元素的整体边框颜色。此颜色仅在不被其他组件覆盖时适用。","在元素周围额外的一层边框,用来提高对比度从而区别其他元素。","在活动元素周围额外的一层边框,用来提高对比度从而区别其他元素。","文本中链接的前景色。","文本中代码块的背景颜色。","编辑器内小组件(如查找/替换)的阴影颜色。","输入框背景色。","输入框前景色。","输入框边框。","输入字段中已激活选项的边框颜色。","输入字段中激活选项的背景颜色。","输入字段中已激活的选项的前景色。","输入验证结果为信息级别时的背景色。","输入验证结果为信息级别时的前景色。","严重性为信息时输入验证的边框颜色。","严重性为警告时输入验证的背景色。","输入验证结果为警告级别时的前景色。","严重性为警告时输入验证的边框颜色。","输入验证结果为错误级别时的背景色。","输入验证结果为错误级别时的前景色。","严重性为错误时输入验证的边框颜色。","下拉列表背景色。","下拉列表前景色。","按钮前景色。","按钮背景色。","按钮在悬停时的背景颜色。","Badge 背景色。Badge 是小型的信息标签,如表示搜索结果数量的标签。","Badge 前景色。Badge 是小型的信息标签,如表示搜索结果数量的标签。","表示视图被滚动的滚动条阴影。","滚动条滑块背景色","滚动条滑块在悬停时的背景色","滚动条滑块在被点击时的背景色。","表示长时间操作的进度条的背景色。","编辑器中错误波浪线的前景色。","编辑器中错误框的边框颜色。","编辑器中警告波浪线的前景色。","编辑器中警告框的边框颜色。","编辑器中信息波浪线的前景色。","编辑器中信息框的边框颜色。","编辑器中提示波浪线的前景色。","编辑器中提示框的边框颜色。","编辑器背景色。","编辑器默认前景色。","编辑器组件(如查找/替换)背景颜色。","编辑器小部件的前景色,如查找/替换。","编辑器小部件的边框颜色。此颜色仅在小部件有边框且不被小部件重写时适用。","编辑器小部件大小调整条的边框颜色。此颜色仅在小部件有调整边框且不被小部件颜色覆盖时使用。","背景颜色快速选取器。快速选取器小部件是选取器(如命令调色板)的容器。","前景颜色快速选取器。快速选取器小部件是命令调色板等选取器的容器。","标题背景颜色快速选取器。快速选取器小部件是命令调色板等选取器的容器。","快速选取器分组标签的颜色。","快速选取器分组边框的颜色。","编辑器所选内容的颜色。","用以彰显高对比度的所选文本的颜色。","非活动编辑器中所选内容的颜色,颜色必须透明,以免隐藏下面的装饰效果。","具有与所选项相关内容的区域的颜色。颜色必须透明,以免隐藏下面的修饰效果。","与所选项内容相同的区域的边框颜色。","当前搜索匹配项的颜色。","其他搜索匹配项的颜色。颜色必须透明,以免隐藏下面的修饰效果。","限制搜索范围的颜色。颜色不能不透明,以免隐藏底层装饰。","当前搜索匹配项的边框颜色。","其他搜索匹配项的边框颜色。","限制搜索的范围的边框颜色。颜色必须透明,以免隐藏下面的修饰效果。","在下面突出显示悬停的字词。颜色必须透明,以免隐藏下面的修饰效果。","编辑器悬停提示的背景颜色。","编辑器悬停的前景颜色。","光标悬停时编辑器的边框颜色。","编辑器悬停状态栏的背景色。","活动链接颜色。","用于灯泡操作图标的颜色。","用于灯泡自动修复操作图标的颜色。","已插入的文本的背景色。颜色必须透明,以免隐藏下面的修饰效果。","已删除的文本的背景色。颜色必须透明,以免隐藏下面的修饰效果。","插入的文本的轮廓颜色。","被删除文本的轮廓颜色。","两个文本编辑器之间的边框颜色。","差异编辑器的对角线填充颜色。对角线填充用于并排差异视图。","焦点项在列表或树活动时的背景颜色。活动的列表或树具有键盘焦点,非活动的没有。","焦点项在列表或树活动时的前景颜色。活动的列表或树具有键盘焦点,非活动的没有。","已选项在列表或树活动时的背景颜色。活动的列表或树具有键盘焦点,非活动的没有。","已选项在列表或树活动时的前景颜色。活动的列表或树具有键盘焦点,非活动的没有。","已选项在列表或树非活动时的背景颜色。活动的列表或树具有键盘焦点,非活动的没有。","已选项在列表或树非活动时的前景颜色。活动的列表或树具有键盘焦点,非活动的没有。","非活动的列表或树控件中焦点项的背景颜色。活动的列表或树具有键盘焦点,非活动的没有。","使用鼠标移动项目时,列表或树的背景颜色。","鼠标在项目上悬停时,列表或树的前景颜色。","使用鼠标移动项目时,列表或树进行拖放的背景颜色。","在列表或树中搜索时,其中匹配内容的高亮颜色。","列表和树中类型筛选器小组件的背景色。","列表和树中类型筛选器小组件的轮廓颜色。","当没有匹配项时,列表和树中类型筛选器小组件的轮廓颜色。","缩进参考线的树描边颜色。","菜单的边框颜色。","菜单项的前景颜色。","菜单项的背景颜色。","菜单中选定菜单项的前景色。","菜单中所选菜单项的背景色。","菜单中所选菜单项的边框颜色。","菜单中分隔线的颜色。","代码片段 Tab 位的高亮背景色。","代码片段 Tab 位的高亮边框颜色。","代码片段中最后的 Tab 位的高亮背景色。","代码片段中最后的制表位的高亮边框颜色。","用于查找匹配项的概述标尺标记颜色。颜色必须透明,以免隐藏下面的修饰效果。","用于突出显示所选内容的概述标尺标记颜色。颜色必须透明,以免隐藏下面的修饰效果。","用于查找匹配项的迷你地图标记颜色。","编辑器选区在迷你地图中对应的标记颜色。","用于错误的迷你地图标记颜色。","用于警告的迷你地图标记颜色。","迷你地图背景颜色。","迷你地图滑块背景颜色。","悬停时,迷你地图滑块的背景颜色。","单击时,迷你地图滑块的背景颜色。","用于问题错误图标的颜色。","用于问题警告图标的颜色。","用于问题信息图标的颜色。"], +"vs/platform/undoRedo/common/undoRedoService":["以下文件已关闭并且已在磁盘上修改: {0}。","以下文件已以不兼容的方式修改: {0}。","无法在所有文件中撤消“{0}”。{1}","无法在所有文件中撤消“{0}”。{1}","无法撤消所有文件的“{0}”,因为已更改 {1}","无法跨所有文件撤销“{0}”,因为 {1} 上已有一项撤消或重做操作正在运行","无法跨所有文件撤销“{0}”,因为同时发生了一项撤消或重做操作","是否要在所有文件中撤消“{0}”?","在 {0} 个文件中撤消","撤消此文件","取消","无法撤销“{0}”,因为已有一项撤消或重做操作正在运行。","无法在所有文件中重做“{0}”。{1}","无法在所有文件中重做“{0}”。{1}","无法对所有文件重做“{0}”,因为已更改 {1}","无法跨所有文件重做“{0}”,因为 {1} 上已有一项撤消或重做操作正在运行","无法跨所有文件重做“{0}”,因为同时发生了一项撤消或重做操作","无法重做“{0}”,因为已有一项撤消或重做操作正在运行。"]}); //# sourceMappingURL=../../../min-maps/vs/editor/editor.main.nls.zh-cn.js.map \ No newline at end of file diff --git a/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/editor/editor.main.nls.zh-tw.js b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/editor/editor.main.nls.zh-tw.js index c724a57..0aedd5c 100644 --- a/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/editor/editor.main.nls.zh-tw.js +++ b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/editor/editor.main.nls.zh-tw.js @@ -1,8 +1,27 @@ /*!----------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. - * Version: 0.9.0(630109944f54bcdfc2dbaaff5f090c0843af6c66) + * Version: 0.21.2(67b5a8116f3c0bace36b180e524e05bb750a16d8) * Released under the MIT license * https://github.com/Microsoft/vscode/blob/master/LICENSE.txt *-----------------------------------------------------------*/ -define("vs/editor/editor.main.nls.zh-tw",{"vs/base/browser/ui/actionbar/actionbar":["{0} ({1})"],"vs/base/browser/ui/aria/aria":["{0} (再次出現)"],"vs/base/browser/ui/findinput/findInput":["輸入"],"vs/base/browser/ui/findinput/findInputCheckboxes":["大小寫須相符","全字拼寫須相符","使用規則運算式"],"vs/base/browser/ui/inputbox/inputBox":["錯誤: {0}","警告: {0}","資訊: {0}"],"vs/base/common/keybindingLabels":["Ctrl","Shift","Alt","Windows","Control","Shift","Alt","Command","Control","Shift","Alt","Windows"],"vs/base/common/severity":["錯誤","警告","資訊"],"vs/base/parts/quickopen/browser/quickOpenModel":["{0},選擇器","選擇器"],"vs/base/parts/quickopen/browser/quickOpenWidget":["快速選擇器。輸入以縮小結果範圍。","快速選擇器"],"vs/base/parts/tree/browser/treeDefaults":["摺疊"],"vs/editor/browser/widget/diffReview":["關閉","Difference {0} of {1}: original {2}, {3} lines, modified {4}, {5} lines","blank","original {0}, modified {1}: {2}","+ modified {0}: {1}","- original {0}: {1}","Go to Next Difference","Go to Previous Difference"],"vs/editor/common/config/commonEditorConfig":["編輯器","控制字型家族。","控制字型寬度。","控制字型大小 (以像素為單位)。","控制行高。使用 0 會從 fontSize 計算 lineHeight。","控制字元間距 (以像素為單位)","控制行號顯示。可能的值有 'on'、'off' 及 'relative'。'relative' 會從目前的資料指標位置顯示行數。","要在其中顯示垂直尺規的資料行","執行文字相關導覽或作業時將作為文字分隔符號的字元","與 Tab 相等的空格數量。當 `editor.detectIndentation` 已開啟時,會根據檔案內容覆寫此設定。","必須是 'number'。請注意,值 \"auto\" 已由 `editor.detectIndentation` 設定取代。","在按 Tab 時插入空格。當 `editor.detectIndentation` 已開啟時,會根據檔案內容覆寫此設定。","必須是 'boolean'。請注意,值 \"auto\" 已由 `editor.detect Indentation` 設定取代。","開啟檔案時,會依據檔案內容來偵測 `editor.tabSize` 及 `editor.insertSpaces`。","控制選取範圍是否有圓角","控制編輯器是否會捲動到最後一行之後","控制是否會顯示迷你地圖","自動隱藏迷你地圖滑桿","呈現行內的實際字元 (而不是彩色區塊)","限制迷你地圖的寬度,以呈現最多的資料行","控制編譯器選取範圍是否預設為尋找工具的搜尋字串","控制編譯器內選取多字元或多行內文是否開啟選取範圍尋找功能","一律不換行。","依檢視區寬度換行。","於 'editor.wordWrapColumn' 換行。","當檢視區縮至最小並設定 'editor.wordWrapColumn' 時換行。","控制是否自動換行。可以是:\n - 'off' (停用換行),\n - 'on' (檢視區換行),\n - 'wordWrapColumn' (於 'editor.wordWrapColumn' 換行`) 或\n - 'bounded' (當檢視區縮至最小並設定 'editor.wordWrapColumn' 時換行).","當 `editor.wordWrap` 為 [wordWrapColumn] 或 [bounded] 時,控制編輯器中的資料行換行。","控制換行的縮排。可以是 [無]、[相同] 或 [縮排]。","滑鼠滾輪捲動事件的 'deltaX' 與 'deltaY' 所使用的乘數","對應Windows和Linux的'Control'與對應OSX的'Command'","對應Windows和Linux的'Alt'與對應OSX的'Option'","用於新增多個滑鼠游標的修改程式。`ctrlCmd` 會對應到 Windows 及 Linux 上的 `Control` 以及 OSX 上的 `Command`。[移至定義] 及 [開啟連結] 滑鼠手勢將會適應以避免和 multicursor 修改程式衝突。","允許在字串內顯示即時建議。","允許在註解中顯示即時建議。","允許在字串與註解以外之處顯示即時建議。","控制是否應在輸入時自動顯示建議","控制延遲顯示快速建議的毫秒數","當您輸入時啟用彈出視窗,顯示參數文件與類型資訊","控制編輯器是否應在左括號後自動插入右括號","控制編輯器是否應在輸入一行後自動格式化","控制編輯器是否應自動設定貼上的內容格式。格式器必須可供使用,而且格式器應該能夠設定文件中一個範圍的格式。","Controls if the editor should automatically adjust the indentation when users type, paste or move lines. Indentation rules of the language must be available. ","控制輸入觸發字元時,是否應自動顯示建議","控制除了 'Tab' 外,是否也藉由按下 'Enter' 接受建議。如此可避免混淆要插入新行或接受建議。設定值'smart'表示在文字變更同時,只透過Enter接受建議。","控制認可字元是否應接受建議。例如在 JavaScript 中,分號 (';') 可以是接受建議並鍵入該字元的認可字元。","控制程式碼片段是否隨其他建議顯示,以及其排序方式。","控制複製時不選取任何項目是否會複製目前程式行。","控制是否應根據文件中的單字計算自動完成。","建議小工具的字型大小","建議小工具的行高","控制編輯器是否應反白顯示與選取範圍相似的符合項","控制編輯器是否應反白顯示出現的語意符號","控制可在概觀尺規中相同位置顯示的裝飾項目數","控制是否應在概觀尺規周圍繪製邊框。","控制游標動畫樣式,可能的值為 'blink'、'smooth'、'phase'、'expand' 和 'solid'","使用滑鼠滾輪並按住 Ctrl 時,縮放編輯器的字型","控制游標樣式。接受的值為 'block'、'block-outline'、'line'、'line-thin'、'underline' 及 'underline-thin'","啟用連字字型","控制游標是否應隱藏在概觀尺規中。","控制編輯器轉譯空白字元的方式,可能為 'none'、'boundary' 及 'all'。'boundary' 選項不會轉譯字組間的單一空格。","控制編輯器是否應顯示控制字元","控制編輯器是否應顯示縮排輔助線","控制編輯器應如何轉譯目前反白的行,可能的值有 'none'、'gutter'、'line' 和 'all'。","控制編輯器是否顯示程式碼濾鏡","控制編輯器是否已啟用程式碼摺疊功能","自動隱藏摺疊控制向","當選取某側的括號時,強調顯示另一側的配對括號。","控制編輯器是否應轉譯垂直字符邊界。字符邊界最常用來進行偵錯。","插入和刪除接在定位停駐點後的空白字元","移除尾端自動插入的空白字元","讓預覽編輯器在使用者按兩下其內容或點擊 Escape 時保持開啟。","控制編輯器是否允許透過拖放動作移動選取範圍。","編輯器將使用平台 API 以偵測螢幕助讀程式附加。","編輯器將會為螢幕助讀程式的使用方式永久地最佳化。","編輯器不會為螢幕助讀程式的使用方式進行最佳化。","控制編輯器是否應於已為螢幕助讀程式最佳化的模式中執行。","控制編輯器是否應偵測連結且讓它可點擊","控制 Diff 編輯器要並排或內嵌顯示差異","控制 Diff 編輯器是否將開頭或尾端空白字元的變更顯示為差異","控制 Diff 編輯器是否要為新增的/移除的變更顯示 +/- 標記","控制是否應支援 Linux 主要剪貼簿。"],"vs/editor/common/config/editorOptions":["編輯器現在無法存取。按Alt+F1尋求選項","編輯器內容"],"vs/editor/common/controller/cursor":["執行命令時發生未預期的例外狀況。"],"vs/editor/common/model/textModelWithTokens":["將輸入語彙基元化時,模式失敗。"],"vs/editor/common/modes/modesRegistry":["純文字"],"vs/editor/common/services/bulkEdit":["這些檔案已同時變更: {0}","未進行任何編輯","在 {1} 個檔案中進行了 {0} 項文字編輯","在一個檔案中進行了 {0} 項文字編輯"],"vs/editor/common/services/modelServiceImpl":["[{0}]\n{1}","[{0}] {1}"],"vs/editor/common/view/editorColorRegistry":["目前游標位置行的反白顯示背景色彩。","目前游標位置行之周圍框線的背景色彩。","反白顯示範圍的背景色彩,例如 Quick Open 與尋找功能。","編輯器游標的色彩。","編輯器中空白字元的色彩。","編輯器縮排輔助線的色彩。","編輯器行號的色彩。","編輯器尺規的色彩","編輯器程式碼濾鏡的前景色彩","成對括號背景色彩","成對括號邊框色彩","預覽檢視編輯器尺規的邊框色彩.","編輯器邊框的背景顏色,包含行號與字形圖示的邊框.","編輯器內錯誤提示線的前景色彩.","編輯器內錯誤提示線的邊框色彩.","編輯器內警告提示線的前景色彩.","編輯器內警告提示線的邊框色彩."],"vs/editor/contrib/bracketMatching/common/bracketMatching":["移至方括弧"],"vs/editor/contrib/caretOperations/common/caretOperations":["將插入點左移","將插入點右移"],"vs/editor/contrib/caretOperations/common/transpose":["調換字母"],"vs/editor/contrib/clipboard/browser/clipboard":["剪下","複製","貼上","隨語法醒目提示複製"],"vs/editor/contrib/comment/common/comment":["切換行註解","加入行註解","移除行註解","切換區塊註解"],"vs/editor/contrib/contextmenu/browser/contextmenu":["顯示編輯器內容功能表"],"vs/editor/contrib/find/browser/findWidget":["尋找","尋找","上一個符合項","下一個相符項","在選取範圍中尋找","關閉","取代","取代","取代","全部取代","切換取代模式","只會將前 999 筆結果醒目提示,但所有尋找作業會在完整文字上執行。","{0} / {1}","沒有結果"],"vs/editor/contrib/find/common/findController":["尋找","尋找下一個","尋找上一個","尋找下一個選取項目","尋找上一個選取項目","取代","將選取項目加入下一個找到的相符項","將選取項目加入前一個找到的相符項中","將最後一個選擇項目移至下一個找到的相符項","將最後一個選擇項目移至前一個找到的相符項","選取所有找到的相符項目","變更所有發生次數"],"vs/editor/contrib/folding/browser/folding":["展開","以遞迴方式展開","摺疊","以遞迴方式摺疊","全部摺疊","全部展開","摺疊層級 {0}"],"vs/editor/contrib/format/browser/formatActions":["在行 {0} 編輯了 1 項格式","在行 {1} 編輯了 {0} 項格式","在行 {0} 與行 {1} 之間編輯了 1 項格式","在行 {1} 與行 {2} 之間編輯了 {0} 項格式","將文件格式化","將選取項目格式化"],"vs/editor/contrib/goToDeclaration/browser/goToDeclarationCommands":["找不到 '{0}' 的定義","找不到任何定義"," - {0} 個定義","移至定義","在一側開啟定義","預覽定義","找不到 '{0}' 的任何實作","找不到任何實作"," – {0} 個實作","前往實作","預覽實作","找不到 '{0}' 的任何類型定義","找不到任何類型定義"," – {0} 個定義","移至類型定義","預覽類型定義"],"vs/editor/contrib/goToDeclaration/browser/goToDeclarationMouse":["按一下以顯示 {0} 項定義。"],"vs/editor/contrib/gotoError/browser/gotoError":["({0}/{1})","移至下一個錯誤或警告","移至上一個錯誤或警告","編輯器標記導覽小工具錯誤的色彩。","編輯器標記導覽小工具警告的色彩。","編輯器標記導覽小工具的背景。"],"vs/editor/contrib/hover/browser/hover":["動態顯示"],"vs/editor/contrib/hover/browser/modesContentHover":["正在載入..."],"vs/editor/contrib/inPlaceReplace/common/inPlaceReplace":["以上一個值取代","以下一個值取代"],"vs/editor/contrib/linesOperations/common/linesOperations":["將行向上複製","將行向下複製","上移一行","下移一行","遞增排序行","遞減排序行","修剪尾端空白","刪除行","縮排行","凸排行","在上方插入行","在下方插入行","左邊全部刪除","刪除所有右方項目","連接線","轉置游標周圍的字元數","轉換到大寫","轉換到小寫"],"vs/editor/contrib/links/browser/links":["按住 Cmd 並按一下按鍵以追蹤連結","按住 Ctrl 並按一下滑鼠按鈕可連入連結","按住Alt並點擊以追蹤連結","抱歉,因為此連結的語式不正確,所以無法加以開啟: {0}","抱歉,因為此連結遺失目標,所以無法加以開啟。","開啟連結"],"vs/editor/contrib/multicursor/common/multicursor":["在上方加入游標","在下方加入游標","在行尾新增游標"],"vs/editor/contrib/parameterHints/browser/parameterHints":["觸發參數提示"],"vs/editor/contrib/parameterHints/browser/parameterHintsWidget":["{0},提示"],"vs/editor/contrib/quickFix/browser/quickFixCommands":["顯示修正 ({0})","顯示修正","Quick Fix"],"vs/editor/contrib/referenceSearch/browser/referenceSearch":[" - {0} 個參考","尋找所有參考"],"vs/editor/contrib/referenceSearch/browser/referencesController":["正在載入..."],"vs/editor/contrib/referenceSearch/browser/referencesModel":["個符號位於 {0} 中的第 {1} 行第 {2} 欄","1 個符號位於 {0}, 完整路徑 {1}","{0} 個符號位於 {1}, 完整路徑 {2}","找不到結果","在 {0} 中找到 1 個符號","在 {1} 中找到 {0} 個符號","在 {1} 個檔案中找到 {0} 個符號"],"vs/editor/contrib/referenceSearch/browser/referencesWidget":["無法解析檔案。","{0} 個參考","{0} 個參考","無法預覽","參考","沒有結果","參考","預覽檢視標題區域的背景色彩。","預覽檢視標題的色彩。","預覽檢視標題資訊的色彩。","預覽檢視之框線與箭頭的色彩。","預覽檢視中結果清單的背景色彩。","預覽檢視結果列表中行節點的前景色彩","預覽檢視結果列表中檔案節點的前景色彩","在預覽檢視之結果清單中選取項目時的背景色彩。","在預覽檢視之結果清單中選取項目時的前景色彩。","預覽檢視編輯器的背景色彩。","預覽檢視編輯器邊框(含行號或字形圖示)的背景色彩。","在預覽檢視編輯器中比對時的反白顯示色彩。","預覽檢視編輯器中比對時的反白顯示色彩。"],"vs/editor/contrib/rename/browser/rename":["沒有結果。","已成功將 '{0}' 重新命名為 '{1}'。摘要: {2}","抱歉,無法執行重新命名。","重新命名符號"],"vs/editor/contrib/rename/browser/renameInputField":["為輸入重新命名。請鍵入新名稱,然後按 Enter 以認可。"],"vs/editor/contrib/smartSelect/common/smartSelect":["展開選取","縮小選取"],"vs/editor/contrib/suggest/browser/suggestController":["接受 '{0}' 時接受了插入下列文字: {1}","觸發建議"],"vs/editor/contrib/suggest/browser/suggestWidget":["建議小工具的背景色彩。","建議小工具的邊界色彩。","建議小工具的前景色彩。","建議小工具中所選項目的背景色彩。","建議小工具中相符醒目提示的色彩。","進一步了解...{0}","{0},建議,有詳細資料","{0},建議","簡易說明...{0}","正在載入...","無建議。","{0},接受","{0},建議,有詳細資料","{0},建議"],"vs/editor/contrib/toggleTabFocusMode/common/toggleTabFocusMode":["切換 TAB 鍵移動焦點"],"vs/editor/contrib/wordHighlighter/common/wordHighlighter":["讀取存取期間 (例如讀取變數時) 符號的背景色彩。","寫入存取期間 (例如寫入變數時) 符號的背景色彩。"],"vs/editor/contrib/zoneWidget/browser/peekViewWidget":["關閉"],"vs/editor/standalone/browser/inspectTokens/inspectTokens":["Developer: Inspect Tokens"],"vs/editor/standalone/browser/quickOpen/gotoLine":["Go to line {0} and character {1}","Go to line {0}","Type a line number between 1 and {0} to navigate to","Type a character between 1 and {0} to navigate to","Go to line {0}","Type a line number, followed by an optional colon and a character number to navigate to","Go to Line..."],"vs/editor/standalone/browser/quickOpen/quickCommand":["{0}, commands","Type the name of an action you want to execute","Command Palette"],"vs/editor/standalone/browser/quickOpen/quickOutline":["{0}, symbols","Type the name of an identifier you wish to navigate to","Go to Symbol...","symbols ({0})","modules ({0})","classes ({0})","interfaces ({0})","methods ({0})","functions ({0})","properties ({0})","variables ({0})","variables ({0})","constructors ({0})","calls ({0})"],"vs/editor/standalone/browser/standaloneCodeEditor":["Editor content","Press Ctrl+F1 for Accessibility Options.","Press Alt+F1 for Accessibility Options."],"vs/editor/standalone/browser/toggleHighContrast/toggleHighContrast":["Toggle High Contrast Theme"],"vs/platform/configuration/common/configurationRegistry":["預設組態覆寫","設定要針對 {0} 語言覆寫的編輯器設定。","設定要針對語言覆寫的編輯器設定。","無法註冊 '{0}'。這符合用於描述語言專用編輯器設定的屬性模式 '\\\\[.*\\\\]$'。請使用 'configurationDefaults' 貢獻。","無法註冊 '{0}'。此屬性已經註冊。"],"vs/platform/keybinding/common/abstractKeybindingService":["已按下 ({0})。請等待第二個套索鍵...","按鍵組合 ({0}, {1}) 不是命令。"],"vs/platform/message/common/message":["關閉","稍後","取消"],"vs/platform/theme/common/colorRegistry":["色彩格式無效。請使用 #RGB、#RGBA、#RRGGBB 或 #RRGGBBAA","工作台中使用的色彩。","整體的前景色彩。僅當未被任何元件覆疊時,才會使用此色彩。","整體錯誤訊息的前景色彩。僅當未被任何元件覆蓋時,才會使用此色彩。","提供附加訊息的前景顏色,例如標籤","焦點項目的整體框線色彩。只在沒有任何元件覆寫此色彩時,才會加以使用。","項目周圍的額外框線,可將項目從其他項目中區隔出來以提高對比。","使用中項目周圍的額外邊界,可將項目從其他項目中區隔出來以提高對比。","作業區域選取的背景顏色(例如輸入或文字區域)。請注意,這不適用於編輯器中的選取。","文字分隔符號的顏色。","內文連結的前景色彩","內文使用連結的前景色彩","提示及建議文字的前景色彩。","文內引用區塊背景色彩。","引用文字的框線顏色。","文字區塊的背景顏色。","小工具的陰影色彩,例如編輯器中的尋找/取代。","輸入方塊的背景。","輸入方塊的前景。","輸入方塊的框線。","輸入欄位中可使用之項目的框線色彩。","文字輸入替代字符的前景顏色。","資訊嚴重性的輸入驗證背景色彩。","資訊嚴重性的輸入驗證邊界色彩。","資訊警告的輸入驗證背景色彩。","警告嚴重性的輸入驗證邊界色彩。","錯誤嚴重性的輸入驗證背景色彩。","錯誤嚴重性的輸入驗證邊界色彩。","下拉式清單的背景。","下拉式清單的前景。","下拉式清單的框線。","當清單/樹狀為使用中狀態時,焦點項目的清單/樹狀背景色彩。使用中的清單/樹狀有鍵盤焦點,非使用中者則沒有。","當清單/樹狀為使用中狀態時,焦點項目的清單/樹狀前景色彩。使用中的清單/樹狀有鍵盤焦點,非使用中者則沒有。","當清單/樹狀為使用中狀態時,所選項目的清單/樹狀背景色彩。使用中的清單/樹狀有鍵盤焦點,非使用中者則沒有。","當清單/樹狀為使用中狀態時,所選項目的清單/樹狀前景色彩。使用中的清單/樹狀有鍵盤焦點,非使用中者則沒有。","當清單/樹狀為非使用中狀態時,所選項目的清單/樹狀背景色彩。使用中的清單/樹狀有鍵盤焦點,非使用中者則沒有。","當清單/樹狀為使用中狀態時,所選項目的清單/樹狀前景色彩。使用中的清單/樹狀有鍵盤焦點,非使用中則沒有。","使用滑鼠暫留在項目時的清單/樹狀背景。","滑鼠暫留在項目時的清單/樹狀前景。","使用滑鼠四處移動項目時的清單/樹狀拖放背景。","在清單/樹狀內搜尋時,相符醒目提示的清單/樹狀前景色彩。","分組標籤的快速選擇器色彩。","分組邊界的快速選擇器色彩。","按鈕前景色彩。","按鈕背景色彩。","暫留時的按鈕背景色彩。","標記的背景顏色。標記為小型的訊息標籤,例如搜尋結果的數量。","標記的前景顏色。標記為小型的訊息標籤,例如搜尋結果的數量。","指出在捲動該檢視的捲軸陰影。","滑桿背景色彩。","暫留時的滑桿背景色彩。","使用中狀態時的滑桿背景色彩。","長時間運行進度條的背景色彩.","編輯器的背景色彩。","編輯器的預設前景色彩。","編輯器小工具的背景色彩,例如尋找/取代。","編輯器小工具的邊界色彩。小工具選擇擁有邊界或色彩未被小工具覆寫時,才會使用色彩。","Color of the editor selection.","Color of the selected text for high contrast.","非使用中之編輯器選取範圍的色彩。","選取時,內容相同之區域的色彩。","符合目前搜尋的色彩。","符合其他搜尋的色彩。","限制搜尋之範圍的色彩。","在顯示了動態顯示的單字下方醒目提示。","編輯器動態顯示的背景色彩。","編輯器動態顯示的框線色彩。","使用中之連結的色彩。","插入文字的背景色彩。","移除文字的背景色彩。","插入的文字外框色彩。","移除的文字外框色彩。","目前內嵌合併衝突中的深色標題背景。","目前內嵌合併衝突中的內容背景。","傳入內嵌合併衝突中的深色標題背景。","傳入內嵌合併衝突中的內容背景。","Common ancestor header background in inline merge-conflicts.","Common ancester content background in inline merge-conflicts.","內嵌合併衝突中標頭及分隔器的邊界色彩。","目前內嵌合併衝突的概觀尺規前景。","傳入內嵌合併衝突的概觀尺規前景。","Common ancestor overview ruler foreground for inline merge-conflicts."]}); +define("vs/editor/editor.main.nls.zh-tw",{"vs/base/browser/ui/actionbar/actionViewItems":["{0} ({1})"],"vs/base/browser/ui/findinput/findInput":["輸入"],"vs/base/browser/ui/findinput/findInputCheckboxes":["大小寫須相符","全字拼寫須相符","使用規則運算式"],"vs/base/browser/ui/findinput/replaceInput":["輸入","保留案例"],"vs/base/browser/ui/inputbox/inputBox":["錯誤: {0}","警告: {0}","資訊: {0}"],"vs/base/browser/ui/keybindingLabel/keybindingLabel":["未繫結"],"vs/base/browser/ui/menu/menu":["{0} ({1})"],"vs/base/browser/ui/tree/abstractTree":["清除","在類型上停用篩選","在類型上啟用篩選","找不到任何元素","{1} 項元素中有 {0} 項相符"],"vs/base/common/errorMessage":["{0}: {1}","發生系統錯誤 ({0})","發生未知的錯誤。如需詳細資訊,請參閱記錄檔。","發生未知的錯誤。如需詳細資訊,請參閱記錄檔。","{0} (總計 {1} 個錯誤)","發生未知的錯誤。如需詳細資訊,請參閱記錄檔。"],"vs/base/common/keybindingLabels":["Ctrl","Shift","Alt","Windows","Ctrl","Shift","Alt","超級鍵","Control","Shift","Alt","命令","Control","Shift","Alt","Windows","Control","Shift","Alt","超級鍵"], +"vs/base/parts/quickinput/browser/quickInput":["上一頁","{0}/{1}","輸入以縮小結果範圍。","{0} 個結果","已選擇 {0}","確定","自訂","背面 ({0})","上一頁"],"vs/base/parts/quickinput/browser/quickInputList":["快速輸入"],"vs/editor/browser/controller/coreCommands":["即使行的長度過長,仍要堅持至結尾","即使行的長度過長,仍要堅持至結尾"],"vs/editor/browser/controller/textAreaHandler":["編輯器","目前無法存取此編輯器。請按 {0} 取得選項。"],"vs/editor/browser/editorExtensions":["復原(&&U)","復原","取消復原(&&R)","重做","全選(&&S)","全選"],"vs/editor/browser/widget/codeEditorWidget":["游標數已限制為 {0} 個。"],"vs/editor/browser/widget/diffEditorWidget":["因其中一個檔案過大而無法比較。"],"vs/editor/browser/widget/diffReview":["關閉","未變更任一行","已變更 1 行","已變更 {0} 行","{1} 項差異中的第 {0} 項: 原始行 {2}、{3},修改行 {4}、{5}","空白","{0} 未變更行 {1}","{0} 原始行 {1} 修改的行 {2}","+ {0} 修改行 {1}","- {0} 原始行 {1}","移至下一個差異","移至上一個差異"],"vs/editor/browser/widget/inlineDiffMargin":["複製已刪除的行","複製已刪除的行","複製已刪除的行 ({0})","還原此變更","複製已刪除的行 ({0})"], +"vs/editor/common/config/commonEditorConfig":["編輯器","與 Tab 相等的空格數量。當 `#editor.detectIndentation#` 已開啟時,會根據檔案內容覆寫此設定。","在按 `Tab` 時插入空格。當 `#editor.detectIndentation#` 開啟時,會根據檔案內容覆寫此設定。","根據檔案內容,控制當檔案開啟時,是否自動偵測 `#editor.tabSize#` 和 `#editor.insertSpaces#`。","移除尾端自動插入的空白字元。","針對大型檔案停用部分高記憶體需求功能的特殊處理方式。","控制是否應根據文件中的單字計算自動完成。","所有彩色主題皆已啟用語意醒目提示。","所有彩色主題皆已停用語意醒目提示。","語意醒目提示由目前之彩色佈景主題的 'semanticHighlighting' 設定所設定。","控制 semanticHighlighting 是否會為支援的語言顯示。","即使按兩下內容或按 `Escape`,仍保持瞄孔編輯器開啟。","因效能的緣故,不會將超過此高度的行 Token 化","取消 Diff 計算前的逾時限制 (毫秒)。若無逾時,請使用 0。","控制 Diff 編輯器要並排或內嵌顯示 Diff。","啟用時,Diff 編輯器會忽略前置或後置空格的變更。","控制 Diff 編輯器是否要為新增/移除的變更顯示 +/- 標記。","控制編輯器是否顯示 codelens。"], +"vs/editor/common/config/editorOptions":["編輯器將使用平台 API 以偵測螢幕助讀程式附加。","編輯器將會為螢幕助讀程式的使用方式永久地最佳化。","編輯器不會為螢幕助讀程式的使用方式進行最佳化。","控制編輯器是否應於已為螢幕助讀程式最佳化的模式中執行。","控制是否要在註解時插入空白字元。","控制是否應以行註解的切換、新增或移除動作,忽略空白的行。","控制複製時不選取任何項目是否會複製目前程式行。","控制在輸入期間是否要跳過游標來尋找相符的項目。","控制 [尋找小工具] 中的搜尋字串是否來自編輯器選取項目。","永不自動開啟 [在選取範圍中尋找] (預設)","一律自動開啟 [在選取範圍中尋找]","選取多行內容時,自動開啟 [在選取範圍中尋找]。","控制自動開啟在選取範圍中尋找的條件。","控制尋找小工具是否在 macOS 上讀取或修改共用尋找剪貼簿。","控制尋找小工具是否應在編輯器頂端額外新增行。若為 true,當您可看到尋找小工具時,您的捲動範圍會超過第一行。","當再也找不到其他相符項目時,控制是否自動從開頭 (或結尾) 重新開始搜尋。","啟用/停用連字字型。","明確 font-feature-settings。","設定連字字型或字型功能。","控制字型大小 (像素)。","只允許「一般」及「粗體」關鍵字,或介於 1 到 1000 之間的數值。","控制字型粗細。接受「一般」及「粗體」關鍵字,或介於 1 到 1000 之間的數值。","顯示結果的預覽檢視 (預設)","移至主要結果並顯示預覽檢視","前往主要結果,並對其他人啟用無預覽瀏覽","此設定已淘汰,請改用 'editor.editor.gotoLocation.multipleDefinitions' 或 'editor.editor.gotoLocation.multipleImplementations' 等單獨設定。","控制 'Go to Definition' 命令在有多個目標位置存在時的行為。","控制 'Go to Type Definition' 命令在有多個目標位置存在時的行為。","控制 'Go to Declaration' 命令在有多個目標位置存在時的行為。","控制 'Go to Implementations' 命令在有多個目標位置存在時的行為。","控制 'Go to References' 命令在有多個目標位置存在時的行為。","當 'Go to Definition' 的結果為目前位置時,正在執行的替代命令識別碼。","當 'Go to Type Definition' 的結果為目前位置時,正在執行的替代命令識別碼。","當 'Go to Declaration' 的結果為目前位置時,正在執行的替代命令識別碼。","當 'Go to Implementation' 的結果為目前位置時,正在執行的替代命令識別碼。","當 'Go to Reference' 的結果為目前位置時,正在執行的替代命令識別碼。","控制是否顯示暫留。","控制暫留顯示的延遲時間 (以毫秒為單位)。","控制當滑鼠移過時,是否應保持顯示暫留。","在編輯器中啟用程式碼動作燈泡。","控制行高。使用 0 會從字型大小計算行高。","控制是否會顯示縮圖","縮圖大小與編輯器內容相同 (且可能會捲動)。","縮圖會視需要伸縮,以填滿該編輯器的高度 (無捲動)。","縮圖將視需要縮小,一律不會大於該編輯器 (無捲動)。","控制縮圖的大小。","控制要在哪端呈現縮圖。","控制何時顯示迷你地圖滑桿。","縮圖內所繪製的內容大小: 1、2 或 3。","顯示行中的實際字元,而不是色彩區塊。","限制縮圖的寬度,最多顯示某個數目的列。","控制編輯器上邊緣與第一行之間的空格數。","控制編輯器下邊緣與最後一行之間的空格數。","啟用快顯,在您鍵入的同時顯示參數文件和類型資訊。","控制提示功能表是否在清單結尾時循環或關閉。","允許在字串內顯示即時建議。","允許在註解中顯示即時建議。","允許在字串與註解以外之處顯示即時建議。","控制是否應在鍵入時自動顯示建議。","不顯示行號。","行號以絕對值顯示。","行號以目前游標的相對值顯示。","每 10 行顯示行號。","控制行號的顯示。","這個編輯器尺規會轉譯的等寬字元數。","此編輯器尺規的色彩。","在某個數目的等寬字元之後顯示垂直尺規。如有多個尺規,就會使用多個值。若陣列空白,就不會繪製任何尺規。","插入建議而不覆寫游標旁的文字。","插入建議並覆寫游標旁的文字。","控制是否要在接受完成時覆寫字組。請注意,這取決於加入此功能的延伸模組。","控制對於拚錯字是否進行篩選和排序其建議","控制排序是否會偏好游標附近出現的字組。","控制記錄的建議選取項目是否在多個工作區和視窗間共用 (需要 `#editor.suggestSelection#`)。","控制正在使用的程式碼片段是否會避免快速建議。","控制要在建議中顯示或隱藏圖示。","控制 IntelliSense 顯示捲軸前要顯示多少建議 (最多 15 個)。","此設定已淘汰,請改用 'editor.suggest.showKeywords' 或 'editor.suggest.showSnippets' 等單獨設定。","啟用時,IntelliSense 顯示「方法」建議。","啟用時,IntelliSense 顯示「函式」建議。","啟用時,IntelliSense 顯示「建構函式」建議。","啟用時,IntelliSense 顯示「欄位」建議。","啟用時,IntelliSense 顯示「變數」建議。","啟用時,IntelliSense 顯示「類別」建議。","啟用時,IntelliSense 顯示「結構」建議。","啟用時,IntelliSense 顯示「介面」建議。","啟用時,IntelliSense 顯示「模組」建議。","啟用時,IntelliSense 顯示「屬性」建議。","啟用時,IntelliSense 顯示「事件」建議。","啟用時,IntelliSense 顯示「運算子」建議。","啟用時,IntelliSense 顯示「單位」建議。","啟用時,IntelliSense 顯示「值」建議。","啟用時,IntelliSense 顯示「常數」建議。","啟用時,IntelliSense 顯示「列舉」建議。","啟用時,IntelliSense 顯示「enumMember」建議。","啟用時,IntelliSense 顯示「關鍵字」建議。","啟用時,IntelliSense 顯示「文字」建議。","啟用時,IntelliSense 顯示「色彩」建議。","啟用時,IntelliSense 顯示「檔案」建議。","啟用時,IntelliSense 顯示「參考」建議。","啟用時,IntelliSense 顯示「customcolor」建議。","啟用時,IntelliSense 顯示「資料夾」建議。","啟用時,IntelliSense 顯示「typeParameter」建議。","啟用時,IntelliSense 顯示「程式碼片段」建議。","啟用之後,IntelliSense 會顯示 `user`-suggestions。","啟用時,IntelliSense 會顯示 `issues`-suggestions。","控制建議小工具底下的狀態列可見度。","控制是否透過認可字元接受建議。例如在 JavaScript 中,分號 (';') 可以是接受建議並鍵入該字元的認可字元。","在建議進行文字變更時,僅透過 `Enter` 接受建議。","控制除了 'Tab' 外,是否也透過 'Enter' 接受建議。這有助於避免混淆要插入新行或接受建議。","控制編輯器中螢幕助讀程式可讀出的行數。警告: 大於預設的數目會對效能產生影響。","編輯器內容","使用語言配置確定何時自動關閉括號。","僅當游標位於空白的左側時自動關閉括號。","控制編輯器是否應在使用者新增左括弧後,自動加上右括弧。","僅在自動插入右引號或括號時,才在其上方鍵入。","控制編輯器是否應在右引號或括號上鍵入。","使用語言配置確定何時自動關閉引號。","僅當游標位於空白的左側時自動關閉引號。","控制編輯器是否應在使用者新增開始引號後,自動加上關閉引號。","編輯器不會自動插入縮排。","編輯器會保留目前行的縮排。","編輯器會保留目前行的縮排並接受語言定義的括號。","編輯器會目前行的縮排、接受語言定義的括號並叫用語言定義的特殊 onEnterRules。","編輯器會保留目前行的縮排、接受語言定義的括號並叫用語言定義的特殊 onEnterRules 並接受語言定義的 indentationRules。","控制編輯器是否應在使用者鍵入、貼上、移動或縮排行時自動調整縮排。","使用語言組態來決定何時自動環繞選取項目。","用引號括住,而非使用括弧。","用括弧括住,而非使用引號。 ","控制編輯器是否應自動環繞選取項目。","控制編輯器是否顯示 codelens。","控制編輯器是否應轉譯內嵌色彩裝飾項目與色彩選擇器。","啟用即可以滑鼠與按鍵選取進行資料行選取。","控制語法醒目提示是否應複製到剪貼簿。","控制資料指標動畫樣式。","控制是否應啟用平滑插入點動畫。 ","控制資料指標樣式。","控制游標上下周圍的最少可見行數。在某些編輯器中稱為 'scrollOff' 或 `scrollOffset`。","只有通過鍵盤或 API 觸發時,才會施行 `cursorSurroundingLines`。","一律強制執行 `cursorSurroundingLines`","控制應施行 `cursorSurroundingLines` 的時機。","控制游標寬度,當 `#editor.cursorStyle#` 設定為 `line` 時。","控制編輯器是否允許透過拖放來移動選取項目。","按下 `Alt` 時的捲動速度乘數。","控制編輯器是否啟用程式碼摺疊功能。","使用語言特定摺疊策略 (如果可用),否則使用縮排式策略。","使用縮排式摺疊策略。","控制計算資料夾範圍的策略。","控制編輯器是否應將折疊的範圍醒目提示。","控制按一下已折疊行後方的空白內容是否會展開行。","控制字型家族。","控制編輯器是否應自動為貼上的內容設定格式。必須有可用的格式器,而且格式器應能夠為文件中的一個範圍設定格式。","控制編輯器是否應自動在鍵入後設定行的格式。","控制編輯器是否應轉譯垂直字符邊界。字符邊界最常用來進行偵錯。","控制游標是否應隱藏在概觀尺規中。","控制編輯器是否應醒目提示使用中的縮排輔助線。","控制字母間距 (像素)。","控制編輯器是否應偵測連結並使其可供點選。","將符合的括號醒目提示。","要用於滑鼠滾輪捲動事件 `deltaX` 和 `deltaY` 的乘數。","使用滑鼠滾輪並按住 `Ctrl` 時,縮放編輯器的字型","在多個游標重疊時將其合併。","對應Windows和Linux的'Control'與對應 macOS 的'Command'。","對應Windows和Linux的'Alt'與對應macOS的'Option'。","用於在滑鼠新增多個游標的乘數。「移至定義」和「開啟連結」滑鼠手勢會加以適應,以避免與多個游標的乘數相衝突。[深入了解](https://code.visualstudio.com/docs/editor/codebasics#_multicursor-modifier)。","每個游標都會貼上一行文字。","每個游標都會貼上全文。","當已貼上文字的行數與游標數相符時控制貼上功能。","控制編輯器是否應醒目顯示出現的語意符號。","控制是否應在概觀尺規周圍繪製框線。","開啟預覽時焦點樹狀","開啟時聚焦編輯器","控制要聚焦內嵌編輯器或預覽小工具中的樹系。","控制「前往定義」滑鼠手勢,是否一律開啟瞄核小工具。","控制在快速建議顯示後的延遲 (以毫秒為單位)。","控制編輯器是否會自動依類型重新命名。","控制編輯器是否應顯示控制字元。","控制編輯器是否應顯示縮排輔助線。","在檔案結尾為新行時,呈現最後一行的號碼。","醒目提示裝訂邊和目前的行。","控制編輯器如何顯示目前行的醒目提示。","當焦點為該編輯器時,控制該編輯器是否僅應轉譯目前行的醒目提示","轉譯空白字元,但文字之間的單一空格除外。","只轉譯所選文字的空白字元。","只轉譯結尾空白字元","控制編輯器應如何轉譯空白字元。","控制選取範圍是否有圓角","控制編輯器水平捲動的額外字元數。","控制編輯器是否捲動到最後一行之外。","同時進行垂直與水平捲動時,僅沿主軸捲動。避免在軌跡板上進行垂直捲動時發生水平漂移。","控制是否支援 Linux 主要剪貼簿。","控制編輯器是否應醒目提示與選取項目類似的相符項目。","一律顯示摺疊控制項。","僅當滑鼠懸停在活動列上時,才顯示折疊功能。","控制摺疊控制項在裝訂邊上的顯示時機。","控制未使用程式碼的淡出。","控制已刪除的淘汰變數。","將程式碼片段建議顯示於其他建議的頂端。","將程式碼片段建議顯示於其他建議的下方。","將程式碼片段建議與其他建議一同顯示。","不顯示程式碼片段建議。","控制程式碼片段是否隨其他建議顯示,以及其排序方式。","控制編輯器是否會使用動畫捲動","建議小工具的字型大小。當設定為 `0` 時,則使用 `#editor.fontSize#` 值.","建議小工具的行高。當設定為 `0` 時,則使用 `#editor.lineHeight#` 值.","控制建議是否應在鍵入觸發字元時自動顯示。","一律選取第一個建議。","除非進一步鍵入選取了建議,否則選取最近的建議,例如 `console.| -> console.log`,原因是最近完成了 `log`。","根據先前已完成該建議的前置詞選取建議,例如 `co -> console` 和 `con -> const`。","控制在顯示建議清單時如何預先選取建議。","按 Tab 時,Tab 完成會插入最符合的建議。","停用 tab 鍵自動完成。","在程式碼片段的首碼相符時使用 Tab 完成。未啟用 'quickSuggestions' 時效果最佳。","啟用 tab 鍵自動完成。","忽略異常的行結束字元。","要移除之異常的行結束字元提示。","自動移除異常的行結束字元。","移除可能導致問題的異常行結束字元。","插入和刪除接在定位停駐點後的空白字元。","在執行文字相關導覽或作業時要用作文字分隔符號的字元","一律不換行。","依檢視區寬度換行。","於 '#editor.wordWrapColumn#' 換行。","當檢視區縮至最小並設定 '#editor.wordWrapColumn#' 時換行。","控制如何換行。","當 `#editor.wordWrap#` 為 `wordWrapColumn` 或 `bounded` 時,控制編輯器中的資料行換行。","無縮排。換行從第 1 列開始。","換行的縮排會與父行相同。","換行的縮排為父行 +1。","換行縮排為父行 +2。","控制換行的縮排。","假設所有字元的寬度均相同。這是一種快速的演算法,適用於等寬字型,以及字符寬度相同的部分指令碼 (例如拉丁文字元)。","將外圍點計算委派給瀏覽器。這是緩慢的演算法,如果檔案較大可能會導致凍結,但在所有情況下都正常運作。","控制計算外圍點的演算法。"], +"vs/editor/common/model/editStack":["正在鍵入"],"vs/editor/common/modes/modesRegistry":["純文字"],"vs/editor/common/standaloneStrings":["無選取項目","第 {0} 行,第 {1} 欄 (已選取 {2})","第 {0} 行,第 {1} 欄","{0} 個選取項目 (已選取 {1} 個字元)","{0} 個選取項目","立即將設定 `accessibilitySupport` 變更為 'on’。","立即開啟編輯器協助工具文件頁面。","在 Diff 編輯器的唯讀窗格中。","在 Diff 編輯器的窗格中。","在唯讀程式碼編輯器中","在程式碼編輯器中","若要為編輯器進行最能搭配螢幕助讀程式使用的設定,請立即按 Command+E。","若要將編輯器設定為針對搭配螢幕助讀程式使用最佳化,請立即按 Control+E。","編輯器已設定為針對搭配螢幕助讀程式使用最佳化。","已將此編輯器設定為永遠不針對搭配螢幕助讀程式使用最佳化,但目前不是此情況。","在目前的編輯器中按 Tab 鍵會將焦點移至下一個可設定焦點的元素。按 {0} 可切換此行為。","在目前的編輯器中按 Tab 鍵會將焦點移至下一個可設定焦點的元素。命令 {0} 目前無法由按鍵繫結關係觸發。","在目前的編輯器中按 Tab 鍵會插入定位字元。按 {0} 可切換此行為。","在目前的編輯器中按 Tab 鍵會插入定位字元。命令 {0} 目前無法由按鍵繫結關係觸發。","立即按 Command+H,以開啟提供編輯器協助工具相關詳細資訊的瀏覽器視窗。","立即按 Control+H,以開啟提供編輯器協助工具相關詳細資訊的瀏覽器視窗。","您可以按 Esc 鍵或 Shift+Esc 鍵來解除此工具提示並返回編輯器。","顯示協助工具說明","開發人員: 檢查權杖","前往行/欄...","顯示所有快速存取提供者","命令選擇區","顯示並執行命令","移至符號...","前往符號 (依類別)...","編輯器內容","按 Alt+F1 可取得協助工具選項。","切換高對比佈景主題","已在 {1} 檔案中進行 {0} 項編輯"], +"vs/editor/common/view/editorColorRegistry":["目前游標位置行的反白顯示背景色彩。","目前游標位置行之周圍框線的背景色彩。","醒目提示範圍的背景色彩,例如快速開啟並尋找功能。其不得為不透明色彩,以免隱藏底層裝飾。","反白顯示範圍周圍邊框的背景顏色。","醒目提示符號的背景色彩,相似於前往下一個定義或前往下一個/上一個符號。色彩必須透明,以免隱藏底層裝飾。","醒目提示周圍的邊界背景色彩。","編輯器游標的色彩。","編輯器游標的背景色彩。允許自訂區塊游標重疊的字元色彩。","編輯器中空白字元的色彩。","編輯器縮排輔助線的色彩。","使用中編輯器縮排輔助線的色彩。","編輯器行號的色彩。","編輯器使用中行號的色彩","Id 已取代。請改用 'editorLineNumber.activeForeground' 。","編輯器使用中行號的色彩","編輯器尺規的色彩","編輯器程式碼濾鏡的前景色彩","成對括號背景色彩","成對括號邊框色彩","預覽檢視編輯器尺規的邊框色彩.","編輯器概觀尺規的背景色彩。僅在啟用縮圖並將其置於編輯器右側時使用。","編輯器邊框的背景顏色,包含行號與字形圖示的邊框.","編輯器中不必要 (未使用) 原始程式碼的框線色彩。","編輯器中不必要 (未使用) 原始程式碼的不透明度。例如 \"#000000c0” 會以 75% 的不透明度轉譯程式碼。針對高對比主題,使用 'editorUnnecessaryCode.border' 主題色彩可為不必要的程式碼加上底線,而不是將其變淡。","範圍醒目提示的概觀尺規標記色彩。其不得為不透明色彩,以免隱藏底層裝飾。","錯誤的概觀尺規標記色彩。","警示的概觀尺規標記色彩。","資訊的概觀尺規標記色彩。"],"vs/editor/contrib/anchorSelect/anchorSelect":["選取範圍錨點","設定錨點為 {0}:{1}","設定選取範圍錨點","前往選取範圍錨點","選取從錨點到游標之間的範圍","取消選取範圍錨點"],"vs/editor/contrib/bracketMatching/bracketMatching":["成對括弧的概觀尺規標記色彩。","移至方括弧","選取至括弧","前往括弧(&&B)"], +"vs/editor/contrib/caretOperations/caretOperations":["將所選文字向左移動","將所選文字向右移動"],"vs/editor/contrib/caretOperations/transpose":["調換字母"],"vs/editor/contrib/clipboard/clipboard":["剪下(&&T)","剪下","剪下","複製(&&C)","複製","複製","貼上(&&P)","貼上","貼上","隨語法醒目提示複製"],"vs/editor/contrib/codeAction/codeActionCommands":["要執行程式碼動作的種類。","控制要套用傳回動作的時機。","一律套用第一個傳回的程式碼動作。","如果傳回的程式碼動作是唯一動作,則加以套用。","不要套用傳回的程式碼動作。","控制是否僅應傳回偏好的程式碼動作。","套用程式碼動作時發生未知的錯誤","快速修復...","沒有可用的程式碼操作",'沒有 "{0}" 的偏好程式碼動作','沒有 "{0}" 可用的程式碼動作',"沒有可用的偏好程式碼動作","沒有可用的程式碼操作","重構...","沒有適用於 '{0}' 的偏好重構。",'沒有可用的 "{0}" 重構',"沒有可用的偏好重構","沒有可用的重構","來源動作...","沒有適用於 '{0}' 的偏好來源動作",'沒有 "{0}" 可用的來源動作',"沒有可用的偏好來源動作","沒有可用的來源動作","組織匯入","沒有任何可用的組織匯入動作","全部修正","沒有全部修正動作可用","自動修正...","沒有可用的自動修正"],"vs/editor/contrib/codeAction/lightBulbWidget":["顯示修正程式。偏好的修正程式可用 ({0})","顯示修正 ({0})","顯示修正"],"vs/editor/contrib/codelens/codelensController":["顯示目前行的 Code Lens 命令"],"vs/editor/contrib/comment/comment":["切換行註解","切換行註解(&&T)","加入行註解","移除行註解","切換區塊註解","切換區塊註解(&&B)"], +"vs/editor/contrib/contextmenu/contextmenu":["顯示編輯器內容功能表"],"vs/editor/contrib/cursorUndo/cursorUndo":["游標復原","游標重做"], +"vs/editor/contrib/documentSymbols/outlineTree":["陣列符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。","布林值符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。","類別符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。","色彩符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。","常數符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。","建構函式符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。","列舉值符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。","列舉值成員符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。","事件符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。","欄位符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。","檔案符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。","資料夾符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。","函式符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。","介面符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。","索引鍵符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。","關鍵字符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。","方法符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。","模組符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。","命名空間符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。","Null 符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。","數字符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。","物件符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。","運算子符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。","套件符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。","屬性符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。","參考符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。","程式碼片段符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。","字串符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。","結構符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。","文字符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。","型別參數符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。","單位符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。","變數符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。"], +"vs/editor/contrib/find/findController":["尋找","尋找(&&F)","尋找選取項目","尋找下一個","尋找下一個","尋找上一個","尋找上一個","尋找下一個選取項目","尋找上一個選取項目","取代","取代(&&R)"],"vs/editor/contrib/find/findWidget":["尋找","尋找","上一個符合項目","下一個符合項目","在選取範圍中尋找","關閉","取代","取代","取代","全部取代","切換取代模式","僅反白顯示前 {0} 筆結果,但所有尋找作業會在完整文字上執行。","{1} 的 {0}","查無結果","找到 {0}","以 '{1}' 找到 {0}","以 '{1}' 找到 {0},位於 {2}","已以 '{1}' 找到 {0}","Ctrl+Enter 現在會插入分行符號,而不會全部取代。您可以修改 editor.action.replaceAll 的按鍵繫結關係,以覆寫此行為。"],"vs/editor/contrib/folding/folding":["展開","以遞迴方式展開","摺疊","切換摺疊","以遞迴方式摺疊","摺疊全部區塊註解","摺疊所有區域","展開所有區域","全部摺疊","全部展開","摺疊層級 {0}","已摺疊範圍後的背景色彩。色彩不得處於不透明狀態,以免隱藏底層裝飾。","編輯器裝訂邊的摺疊控制項色彩。"],"vs/editor/contrib/fontZoom/fontZoom":["編輯器字體放大","編輯器字型縮小","編輯器字體重設縮放"],"vs/editor/contrib/format/format":["在行 {0} 編輯了 1 項格式","在行 {1} 編輯了 {0} 項格式","在行 {0} 與行 {1} 之間編輯了 1 項格式","在行 {1} 與行 {2} 之間編輯了 {0} 項格式"],"vs/editor/contrib/format/formatActions":["格式化文件","格式化選取範圍"], +"vs/editor/contrib/gotoError/gotoError":["移至下一個問題 (錯誤, 警告, 資訊)","移至上一個問題 (錯誤, 警告, 資訊)","移至檔案裡面的下一個問題 (錯誤, 警告, 資訊)","下一個問題(&&P)","移至檔案裡面的上一個問題 (錯誤, 警告, 資訊)","前一個問題(&&P)"],"vs/editor/contrib/gotoError/gotoErrorWidget":["錯誤","警告","資訊","提示","{0} 於 {1}。","{0} 個問題 (共 {1} 個)","{0} 個問題 (共 {1} 個)","編輯器標記導覽小工具錯誤的色彩。","編輯器標記導覽小工具警告的色彩。","編輯器標記導覽小工具資訊的色彩","編輯器標記導覽小工具的背景。"],"vs/editor/contrib/gotoSymbol/goToCommands":["查看","定義","找不到 '{0}' 的定義","找不到任何定義","移至定義","移至定義(&&D)","在一側開啟定義","瞄核定義","宣告","找不到 '{0}' 的宣告 ","找不到任何宣告","移至宣告","前往宣告(&&D)","找不到 '{0}' 的宣告 ","找不到任何宣告","預覽宣告","類型定義","找不到 '{0}' 的任何類型定義","找不到任何類型定義","移至類型定義","前往類型定義(&&T)","預覽類型定義","實作","找不到 '{0}' 的任何實作","找不到任何實作","前往實作","前往實作(&&I)","查看實作",'未找到 "{0}" 的參考',"未找到參考","前往參考","前往參考(&&R)","參考","預覽參考","參考","移至任何符號","位置","'{0}' 沒有結果","參考"],"vs/editor/contrib/gotoSymbol/link/goToDefinitionAtPosition":["按一下以顯示 {0} 項定義。"],"vs/editor/contrib/gotoSymbol/peek/referencesController":["正在載入...","{0} ({1})"], +"vs/editor/contrib/gotoSymbol/peek/referencesTree":["{0} 個參考","{0} 個參考","參考"],"vs/editor/contrib/gotoSymbol/peek/referencesWidget":["無法預覽","查無結果","參考"],"vs/editor/contrib/gotoSymbol/referencesModel":["個符號位於 {0} 中的第 {1} 行第 {2} 欄","1 個符號位於 {0}, 完整路徑 {1}","{0} 個符號位於 {1}, 完整路徑 {2}","找不到結果","在 {0} 中找到 1 個符號","在 {1} 中找到 {0} 個符號","在 {1} 個檔案中找到 {0} 個符號"],"vs/editor/contrib/gotoSymbol/symbolNavigation":["{1} 的符號 {0},{2} 為下一個","{1} 的符號 {0}"],"vs/editor/contrib/hover/hover":["動態顯示","顯示定義預覽懸停"],"vs/editor/contrib/hover/modesContentHover":["正在載入...","瞄孔問題","正在檢查快速修正...","沒有可用的快速修正","快速修復..."],"vs/editor/contrib/inPlaceReplace/inPlaceReplace":["以上一個值取代","以下一個值取代"],"vs/editor/contrib/indentation/indentation":["將縮排轉換成空格","將縮排轉換成定位點","已設定的定位點大小","選取目前檔案的定位點大小","使用 Tab 進行縮排","使用空格鍵進行縮排","偵測內容中的縮排","重新將行縮排","重新將選取的行縮排"], +"vs/editor/contrib/linesOperations/linesOperations":["將行向上複製","將行向上複製(&&C)","將行向下複製","將行向下複製(&&P)","重複選取項目","重複選取項目(&&D)","上移一行","上移一行(&&V)","下移一行","下移一行(&&L)","遞增排序行","遞減排序行","修剪尾端空白","刪除行","縮排行","凸排行","在上方插入行","在下方插入行","左邊全部刪除","刪除所有右方項目","連接線","轉置游標周圍的字元數","轉換到大寫","轉換到小寫","轉換為字首大寫"],"vs/editor/contrib/links/links":["執行命令","追蹤連結","cmd + 按一下","ctrl + 按一下","選項 + 按一下","alt + 按一下","因為此連結的格式不正確,所以無法開啟: {0}","因為此連結目標遺失,所以無法開啟。","開啟連結"],"vs/editor/contrib/message/messageController":["無法在唯讀編輯器中編輯"],"vs/editor/contrib/multicursor/multicursor":["在上方加入游標","在上方新增游標(&&A)","在下方加入游標","在下方新增游標(&&D)","在行尾新增游標","在行尾新增游標(&&U)","將游標新增到底部 ","將游標新增到頂部","將選取項目加入下一個找到的相符項","新增下一個項目(&&N)","將選取項目加入前一個找到的相符項中","新增上一個項目(&&R)","將最後一個選擇項目移至下一個找到的相符項","將最後一個選擇項目移至前一個找到的相符項","選取所有找到的相符項目","選取所有項目(&&O)","變更所有發生次數"],"vs/editor/contrib/parameterHints/parameterHints":["觸發參數提示"],"vs/editor/contrib/parameterHints/parameterHintsWidget":["{0},提示"], +"vs/editor/contrib/peekView/peekView":["關閉","預覽檢視標題區域的背景色彩。","預覽檢視標題的色彩。","預覽檢視標題資訊的色彩。","預覽檢視之框線與箭頭的色彩。","預覽檢視中結果清單的背景色彩。","預覽檢視結果列表中行節點的前景色彩","預覽檢視結果列表中檔案節點的前景色彩","在預覽檢視之結果清單中選取項目時的背景色彩。","在預覽檢視之結果清單中選取項目時的前景色彩。","預覽檢視編輯器的背景色彩。","預覽檢視編輯器邊框(含行號或字形圖示)的背景色彩。","在預覽檢視編輯器中比對時的反白顯示色彩。","預覽檢視編輯器中比對時的反白顯示色彩。","在預覽檢視編輯器中比對時的反白顯示邊界。"],"vs/editor/contrib/quickAccess/gotoLineQuickAccess":["先開啟文字編輯器,前往某一行。","前往第 {0} 行和第 {1} 欄。","前往第 {0} 行。","目前行: {0},字元: {1}。請鍵入介於 1 到 {2} 之間行號,導覽至該行。","目前行: {0},字元: {1}。請鍵入要導覽至的行號。"],"vs/editor/contrib/quickAccess/gotoSymbolQuickAccess":["若要前往符號,請先開啟包含符號資訊的文字編輯器。","使用中的文字編輯器不提供符號資訊。","沒有相符的編輯器符號","沒有編輯器符號","開至側邊","開啟到底部","符號 ({0})","屬性 ({0})","方法 ({0})","函式 ({0})","建構函式 ({0})","變數 ({0})","類別 ({0})","結構 ({0})","事件 ({0})","運算子 ({0})","介面 ({0})","命名空間 ({0})","套件 ({0})","型別參數 ({0})","模組 ({0})","屬性 ({0})","列舉 ({0})","列舉成員 ({0})","字串 ({0})","檔案 ({0})","陣列 ({0})","數字 ({0})","布林值 ({0})","物件 ({0})","索引鍵 ({0})","欄位 ({0})","常數 ({0})"], +"vs/editor/contrib/rename/onTypeRename":["依類型重新命名符號","當編輯器自動重新命名類型時的背景色彩。"],"vs/editor/contrib/rename/rename":["沒有結果。","解析重新命名位置時發生未知的錯誤","正在為 '{0}' 重新命名","正在重新命名 {0}","已成功將 '{0}' 重新命名為 '{1}'。摘要: {2}","重命名無法套用編輯","重新命名無法計算編輯","重新命名符號","啟用/停用重新命名前先預覽變更的功能"],"vs/editor/contrib/rename/renameInputField":["為輸入重新命名。請鍵入新名稱,然後按 Enter 以認可。","按 {0} 進行重新命名,按 {1} 進行預覽"],"vs/editor/contrib/smartSelect/smartSelect":["展開選取項目","展開選取範圍(&&E)","縮小選取項目","壓縮選取範圍(&&S)"],"vs/editor/contrib/snippet/snippetVariables":["星期天","星期一","星期二","星期三","星期四","星期五","星期六","週日","週一","週二","週三","週四","週五","週六","一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月","1月","2月","3 月","4月","五月","6月","7 月","8 月","9 月","10 月","11 月","12 月"],"vs/editor/contrib/suggest/suggestController":["接受 ‘{0}’ 進行了其他 {1} 項編輯","觸發建議","{0} 以插入","{0} 以插入","{0} 以取代","{0} 以取代","{0} 以插入","顯示更少","顯示更多"], +"vs/editor/contrib/suggest/suggestWidget":["建議小工具的背景色彩。","建議小工具的邊界色彩。","建議小工具的前景色彩。","建議小工具中所選項目的背景色彩。","建議小工具中相符醒目提示的色彩。","閱讀較多 ({0})","閱讀較少 ({0})","正在載入...","正在載入...","無建議。","{0},文件: {1}","建議"],"vs/editor/contrib/toggleTabFocusMode/toggleTabFocusMode":["切換 TAB 鍵移動焦點","按 Tab 現在會將焦點移至下一個可設定焦點的元素。","按 Tab 現在會插入定位字元。"],"vs/editor/contrib/tokenization/tokenization":["開發人員: 強制重新置放"],"vs/editor/contrib/unusualLineTerminators/unusualLineTerminators":["異常的行結束字元","偵測到異常的行結束字元","此檔案包含一或多個異常的行結束字元,例如行分隔符號 (LS) 或段落分隔符號 (PS)。\r\n\r\n建議您將其從檔案中移除。這可以透過 `editor.unusualLineTerminators` 進行設定。","修正此檔案","忽略此檔案的問題"],"vs/editor/contrib/wordHighlighter/wordHighlighter":["讀取權限期間 (如讀取變數) 符號的背景色彩。其不得為不透明色彩,以免隱藏底層裝飾。","寫入權限期間 (如寫入變數) 符號的背景色彩。其不得為不透明色彩,以免隱藏底層裝飾。","讀取存取期間 (例如讀取變數時) 符號的邊框顏色。","寫入存取期間 (例如寫入變數時) 符號的邊框顏色。 ","符號醒目提示的概觀尺規標記色彩。其不得為不透明色彩,以免隱藏底層裝飾。","寫入權限符號醒目提示的概觀尺規標記色彩。其不得為不透明色彩,以免隱藏底層裝飾。","移至下一個反白符號","移至上一個反白符號","觸發符號反白顯示"],"vs/platform/actions/browser/menuEntryActionViewItem":["{0} ({1})"], +"vs/platform/configuration/common/configurationRegistry":["預設語言組態覆寫","設定要針對語言覆寫的編輯器設定。","這個設定不支援以語言為根據的組態。","無法註冊 '{0}'。這符合用於描述語言專用編輯器設定的屬性模式 '\\\\[.*\\\\]$'。請使用 'configurationDefaults' 貢獻。","無法註冊 '{0}'。此屬性已經註冊。"],"vs/platform/keybinding/common/abstractKeybindingService":["已按下 ({0})。等待第二個套索鍵...","按鍵組合 ({0}, {1}) 不是命令。"],"vs/platform/list/browser/listService":["工作台","對應Windows和Linux的'Control'與對應 macOS 的'Command'。","對應Windows和Linux的'Alt'與對應macOS的'Option'。","透過滑鼠多選,用於在樹狀目錄與清單中新增項目的輔助按鍵 (例如在總管中開啟編輯器 及 SCM 檢視)。'在側邊開啟' 滑鼠手勢 (若支援) 將會適應以避免和多選輔助按鍵衝突。","控制如何使用滑鼠在樹狀目錄與清單中開啟項目 (若有支援)。對於樹狀目錄中具子系的父系而言,此設定會控制應以滑鼠按一下或按兩下展開父系。注意,某些樹狀目錄或清單若不適用此設定則會予以忽略。","控制在工作台中,清單與樹狀結構是否支援水平捲動。警告: 開啟此設定將會影響效能。","控制樹狀結構縮排 (像素)。","控制樹系是否應轉譯縮排輔助線。","控制清單和樹狀結構是否具有平滑捲動。","比對按鍵輸入的簡易按鍵瀏覽焦點元素。僅比對前置詞。","醒目提示鍵盤瀏覽會醒目提示符合鍵盤輸入的元素。進一步向上或向下瀏覽只會周遊醒目提示的元素。","篩選鍵盤瀏覽會篩掉並隱藏不符合鍵盤輸入的所有元素。","控制 Workbench 中清單和樹狀結構的鍵盤瀏覽樣式。可以是簡易的、醒目提示和篩選。","控制是否只要鍵入即可自動觸發清單和樹狀結構中的鍵盤瀏覽。若設為 `false`,只有在執行 `list.toggleKeyboardNavigation` 命令時,才會觸發鍵盤瀏覽,您可為其指定鍵盤快速鍵。"], +"vs/platform/markers/common/markers":["錯誤","警告","資訊"],"vs/platform/quickinput/browser/commandsQuickAccess":["{0}, {1}","最近使用的","其他命令","命令 '{0}' 造成錯誤 ({1})"],"vs/platform/quickinput/browser/helpQuickAccess":["全域命令","編輯器命令","{0}, {1}"], +"vs/platform/theme/common/colorRegistry":["整體的前景色彩。僅當未被任何元件覆疊時,才會使用此色彩。","整體錯誤訊息的前景色彩。僅當未被任何元件覆蓋時,才會使用此色彩。","工作台中圖示的預設色彩。","焦點項目的整體框線色彩。只在沒有任何元件覆寫此色彩時,才會加以使用。","項目周圍的額外框線,可將項目從其他項目中區隔出來以提高對比。","使用中項目周圍的額外邊界,可將項目從其他項目中區隔出來以提高對比。","內文連結的前景色彩","文字區塊的背景顏色。","小工具的陰影色彩,例如編輯器中的尋找/取代。","輸入方塊的背景。","輸入方塊的前景。","輸入方塊的框線。","輸入欄位中可使用之項目的框線色彩。","在輸入欄位中所啟動選項的背景色彩。","在輸入欄位中所啟動選項的前景色彩。","資訊嚴重性的輸入驗證背景色彩。","資訊嚴重性的輸入驗證前景色彩。","資訊嚴重性的輸入驗證邊界色彩。","警告嚴重性的輸入驗證背景色彩。","警告嚴重性的輸入驗證前景色彩。","警告嚴重性的輸入驗證邊界色彩。","錯誤嚴重性的輸入驗證背景色彩。","錯誤嚴重性的輸入驗證前景色彩。","錯誤嚴重性的輸入驗證邊界色彩。","下拉式清單的背景。","下拉式清單的前景。","按鈕前景色彩。","按鈕背景色彩。","暫留時的按鈕背景色彩。","標記的背景顏色。標記為小型的訊息標籤,例如搜尋結果的數量。","標記的前景顏色。標記為小型的訊息標籤,例如搜尋結果的數量。","指出在捲動該檢視的捲軸陰影。","捲軸滑桿的背景顏色。","動態顯示時捲軸滑桿的背景顏色。","當點擊時捲軸滑桿的背景顏色。","長時間運行進度條的背景色彩.","編輯器內錯誤提示線的前景色彩.","編輯器中錯誤方塊的框線色彩。","編輯器內警告提示線的前景色彩.","編輯器中的警告方塊框線色彩。","編輯器內資訊提示線的前景色彩","編輯器中的資訊方塊框線色彩。","編輯器內提示訊息的提示線前景色彩","編輯器中的提示方塊框線色彩。","編輯器的背景色彩。","編輯器的預設前景色彩。","編輯器小工具的背景色彩,例如尋找/取代。","編輯器小工具 (例如尋找/取代) 的前景色彩。","編輯器小工具的邊界色彩。小工具選擇擁有邊界或色彩未被小工具覆寫時,才會使用色彩。","編輯器小工具之調整大小列的邊界色彩。只在小工具選擇具有調整大小邊界且未覆寫該色彩時,才使用該色彩。\r\n","快速選擇器背景色彩。該快速選擇器小工具是類似命令選擇區的選擇器容器。","快速選擇器前景色彩。快速選擇器小工具是類似命令選擇區等選擇器的容器。","快速選擇器標題背景色彩。快速選擇器小工具是類似命令選擇區的選擇器容器。","分組標籤的快速選擇器色彩。","分組邊界的快速選擇器色彩。","編輯器選取範圍的色彩。","為選取的文字顏色高對比化","非使用中編輯器內的選取項目色彩。其不得為不透明色彩,以免隱藏底層裝飾。","與選取項目內容相同之區域的色彩。其不得為不透明色彩,以免隱藏底層裝飾。","選取時,內容相同之區域的框線色彩。","符合目前搜尋的色彩。","其他搜尋相符項目的色彩。其不得為不透明色彩,以免隱藏底層裝飾。","限制搜尋之範圍的色彩。其不得為不透明色彩,以免隱藏底層裝飾。","符合目前搜尋的框線色彩。","符合其他搜尋的框線色彩。","限制搜尋之範圍的框線色彩。其不得為不透明色彩,以免隱藏底層裝飾。","在顯示動態顯示的文字下醒目提示。其不得為不透明色彩,以免隱藏底層裝飾。","編輯器動態顯示的背景色彩。","編輯器動態顯示的前景色彩。","編輯器動態顯示的框線色彩。","編輯器暫留狀態列的背景色彩。","使用中之連結的色彩。","用於燈泡動作圖示的色彩。","用於燈泡自動修正動作圖示的色彩。","已插入文字的背景色彩。其不得為不透明色彩,以免隱藏底層裝飾。","已移除文字的背景色彩。其不得為不透明色彩,以免隱藏底層裝飾。","插入的文字外框色彩。","移除的文字外框色彩。","兩個文字編輯器之間的框線色彩。","Diff 編輯器的斜紋填滿色彩。斜紋填滿用於並排 Diff 檢視。","當清單/樹狀為使用中狀態時,焦點項目的清單/樹狀背景色彩。使用中的清單/樹狀有鍵盤焦點,非使用中者則沒有。","當清單/樹狀為使用中狀態時,焦點項目的清單/樹狀前景色彩。使用中的清單/樹狀有鍵盤焦點,非使用中者則沒有。","當清單/樹狀為使用中狀態時,所選項目的清單/樹狀背景色彩。使用中的清單/樹狀有鍵盤焦點,非使用中者則沒有。","當清單/樹狀為使用中狀態時,所選項目的清單/樹狀前景色彩。使用中的清單/樹狀有鍵盤焦點,非使用中者則沒有。","當清單/樹狀為非使用中狀態時,所選項目的清單/樹狀背景色彩。使用中的清單/樹狀有鍵盤焦點,非使用中者則沒有。","當清單/樹狀為使用中狀態時,所選項目的清單/樹狀前景色彩。使用中的清單/樹狀有鍵盤焦點,非使用中則沒有。","當清單/樹狀為非使用中狀態時,焦點項目的清單/樹狀背景色彩。使用中的清單/樹狀有鍵盤焦點,非使用中者則沒有。","使用滑鼠暫留在項目時的清單/樹狀背景。","滑鼠暫留在項目時的清單/樹狀前景。","使用滑鼠四處移動項目時的清單/樹狀拖放背景。","在清單/樹狀內搜尋時,相符醒目提示的清單/樹狀前景色彩。","清單和樹狀結構中類型篩選小工具的背景色彩。","清單和樹狀結構中類型篩選小工具的大綱色彩。","在沒有相符項目時,清單和樹狀結構中類型篩選小工具的大綱色彩。","縮排輔助線的樹狀筆觸色彩。","功能表的邊框色彩。","功能表項目的前景色彩。","功能表項目的背景色彩。","功能表中所選功能表項目的前景色彩。","功能表中所選功能表項目的背景色彩。","功能表中所選功能表項目的框線色彩。","功能表中分隔線功能表項目的色彩。","程式碼片段定位停駐點的反白顯示背景色彩。","程式碼片段定位停駐點的反白顯示邊界色彩。","程式碼片段最終定位停駐點的反白顯示背景色彩。","程式碼片段最終定位停駐點的醒目提示框線色彩。","尋找相符項目的概觀尺規標記色彩。其不得為不透明色彩,以免隱藏底層裝飾。","選取項目醒目提示的概觀尺規標記。其不得為不透明色彩,以免隱藏底層裝飾。","用於尋找相符項目的縮圖標記色彩。","編輯器選取範圍的迷你地圖標記色彩。","錯誤的縮圖標記色彩。","警告的縮圖標記色彩。","縮圖背景色彩。","縮圖滑桿背景色彩。","暫留時的縮圖滑桿背景色彩。","按一下時的縮圖滑桿背景色彩。","用於問題錯誤圖示的色彩。","用於問題警告圖示的色彩。","用於問題資訊圖示的色彩。"], +"vs/platform/undoRedo/common/undoRedoService":["已在磁碟上關閉並修改以下檔案: {0}。","下列檔案已使用不相容的方式修改: {0}。","無法復原所有檔案的 '{0}'。{1}","無法復原所有檔案的 '{0}'。{1}","因為已對 {1} 進行變更,所以無法復原所有檔案的 '{0}'","因為 {1} 中已經有正在執行的復原或重做作業,所以無法為所有檔案復原 '{0}'","因為同時發生其他復原或重做作業,所以無法為所有檔案復原 '{0}'","要復原所有檔案的 '{0}' 嗎?","在 {0} 個檔案中復原","復原此檔案","取消","因為已經有正在執行的復原或重做作業,所以無法復原 '{0}'。","無法復原所有檔案的 '{0}'。{1}","無法復原所有檔案的 '{0}'。{1}","因為已對 {1} 進行變更,所以無法復原所有檔案的 '{0}'","因為 {1} 中已經有正在執行的復原或重做作業,所以無法為所有檔案重做 '{0}'","因為同時發生其他復原或重做作業,所以無法為所有檔案重做 '{0}'","因為已經有正在執行的復原或重做作業,所以無法重做 '{0}'。"]}); //# sourceMappingURL=../../../min-maps/vs/editor/editor.main.nls.zh-tw.js.map \ No newline at end of file diff --git a/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/language/css/cssMode.js b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/language/css/cssMode.js index fbc0f55..3f201b4 100644 --- a/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/language/css/cssMode.js +++ b/SitefinityWebApp/AdminApp/assets/js/monaco-editor/vs/language/css/cssMode.js @@ -1,7 +1,7 @@ /*!----------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. - * monaco-css version: 1.3.2(301b0b29f65de14ab6e2d2398485ed92af690381) + * monaco-css version: 3.1.1(23bd524cc383945cb039c5b552c0b783c450f6d6) * Released under the MIT license * https://github.com/Microsoft/monaco-css/blob/master/LICENSE.md *-----------------------------------------------------------------------------*/ -!function(e){if("object"==typeof module&&"object"==typeof module.exports){var n=e(require,exports);void 0!==n&&(module.exports=n)}else"function"==typeof define&&define.amd&&define("vs/language/css/workerManager",["require","exports"],e)}(function(e,n){function t(e){var n,t,i=new r(function(e,r){n=e,t=r},function(){});return e.then(n,t),i}Object.defineProperty(n,"__esModule",{value:!0});var r=monaco.Promise,i=12e4,o=function(){function e(e){var n=this;this._defaults=e,this._worker=null,this._idleCheckInterval=setInterval(function(){return n._checkIfIdle()},3e4),this._lastUsedTime=0,this._configChangeListener=this._defaults.onDidChange(function(){return n._stopWorker()})}return e.prototype._stopWorker=function(){this._worker&&(this._worker.dispose(),this._worker=null),this._client=null},e.prototype.dispose=function(){clearInterval(this._idleCheckInterval),this._configChangeListener.dispose(),this._stopWorker()},e.prototype._checkIfIdle=function(){if(this._worker){var e=Date.now()-this._lastUsedTime;e>i&&this._stopWorker()}},e.prototype._getClient=function(){return this._lastUsedTime=Date.now(),this._client||(this._worker=monaco.editor.createWebWorker({moduleId:"vs/language/css/cssWorker",label:this._defaults.languageId,createData:{languageSettings:this._defaults.diagnosticsOptions,languageId:this._defaults.languageId}}),this._client=this._worker.getProxy()),this._client},e.prototype.getLanguageServiceWorker=function(){for(var e=this,n=[],r=0;r0&&(i.arguments=t),i}function t(e){var n=e;return A.defined(n)&&A.string(n.title)&&A.string(n.title)}e.create=n,e.is=t}(u=n.Command||(n.Command={}));var s;!function(e){function n(e,n){return{range:e,newText:n}}function t(e,n){return{range:{start:e,end:e},newText:n}}function r(e){return{range:e,newText:""}}e.replace=n,e.insert=t,e.del=r}(s=n.TextEdit||(n.TextEdit={}));var c;!function(e){function n(e,n){return{textDocument:e,edits:n}}function t(e){var n=e;return A.defined(n)&&g.is(n.textDocument)&&Array.isArray(n.edits)}e.create=n,e.is=t}(c=n.TextDocumentEdit||(n.TextDocumentEdit={}));var d=function(){function e(e){this.edits=e}return e.prototype.insert=function(e,n){this.edits.push(s.insert(e,n))},e.prototype.replace=function(e,n){this.edits.push(s.replace(e,n))},e.prototype["delete"]=function(e){this.edits.push(s.del(e))},e.prototype.add=function(e){this.edits.push(e)},e.prototype.all=function(){return this.edits},e.prototype.clear=function(){this.edits.splice(0,this.edits.length)},e}(),f=function(){function e(e){var n=this;this._textEditChanges=Object.create(null),e&&(this._workspaceEdit=e,e.documentChanges?e.documentChanges.forEach(function(e){var t=new d(e.edits);n._textEditChanges[e.textDocument.uri]=t}):e.changes&&Object.keys(e.changes).forEach(function(t){var r=new d(e.changes[t]);n._textEditChanges[t]=r}))}return Object.defineProperty(e.prototype,"edit",{get:function(){return this._workspaceEdit},enumerable:!0,configurable:!0}),e.prototype.getTextEditChange=function(e){if(g.is(e)){if(this._workspaceEdit||(this._workspaceEdit={documentChanges:[]}),!this._workspaceEdit.documentChanges)throw new Error("Workspace edit is not configured for versioned document changes.");var n=e,t=this._textEditChanges[n.uri];if(!t){var r=[],i={textDocument:n,edits:r};this._workspaceEdit.documentChanges.push(i),t=new d(r),this._textEditChanges[n.uri]=t}return t}if(this._workspaceEdit||(this._workspaceEdit={changes:Object.create(null)}),!this._workspaceEdit.changes)throw new Error("Workspace edit is not configured for normal text edit changes.");var t=this._textEditChanges[e];if(!t){var r=[];this._workspaceEdit.changes[e]=r,t=new d(r),this._textEditChanges[e]=t}return t},e}();n.WorkspaceChange=f;var l;!function(e){function n(e){return{uri:e}}function t(e){var n=e;return A.defined(n)&&A.string(n.uri)}e.create=n,e.is=t}(l=n.TextDocumentIdentifier||(n.TextDocumentIdentifier={}));var g;!function(e){function n(e,n){return{uri:e,version:n}}function t(e){var n=e;return A.defined(n)&&A.string(n.uri)&&A.number(n.version)}e.create=n,e.is=t}(g=n.VersionedTextDocumentIdentifier||(n.VersionedTextDocumentIdentifier={}));var m;!function(e){function n(e,n,t,r){return{uri:e,languageId:n,version:t,text:r}}function t(e){var n=e;return A.defined(n)&&A.string(n.uri)&&A.string(n.languageId)&&A.number(n.version)&&A.string(n.text)}e.create=n,e.is=t}(m=n.TextDocumentItem||(n.TextDocumentItem={}));var p;!function(e){e.Text=1,e.Method=2,e.Function=3,e.Constructor=4,e.Field=5,e.Variable=6,e.Class=7,e.Interface=8,e.Module=9,e.Property=10,e.Unit=11,e.Value=12,e.Enum=13,e.Keyword=14,e.Snippet=15,e.Color=16,e.File=17,e.Reference=18}(p=n.CompletionItemKind||(n.CompletionItemKind={}));var h;!function(e){e.PlainText=1,e.Snippet=2}(h=n.InsertTextFormat||(n.InsertTextFormat={}));var v;!function(e){function n(e){return{label:e}}e.create=n}(v=n.CompletionItem||(n.CompletionItem={}));var y;!function(e){function n(e,n){return{items:e?e:[],isIncomplete:!!n}}e.create=n}(y=n.CompletionList||(n.CompletionList={}));var b;!function(e){function n(e){return e.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}e.fromPlainText=n}(b=n.MarkedString||(n.MarkedString={}));var _;!function(e){function n(e,n){return n?{label:e,documentation:n}:{label:e}}e.create=n}(_=n.ParameterInformation||(n.ParameterInformation={}));var C;!function(e){function n(e,n){for(var t=[],r=2;r0&&e.push(n.length),this._lineOffsets=e}return this._lineOffsets},e.prototype.positionAt=function(e){e=Math.max(Math.min(e,this._content.length),0);var n=this.getLineOffsets(),r=0,i=n.length;if(0===i)return t.create(0,e);for(;i>r;){var o=Math.floor((r+i)/2);n[o]>e?i=o:r=o+1}var a=r-1;return t.create(a,e-n[a])},e.prototype.offsetAt=function(e){var n=this.getLineOffsets();if(e.line>=n.length)return this._content.length;if(e.line<0)return 0;var t=n[e.line],r=e.line+112e4&&this._stopWorker())},e.prototype._getClient=function(){return this._lastUsedTime=Date.now(),this._client||(this._worker=n.editor.createWebWorker({moduleId:"vs/language/css/cssWorker",label:this._defaults.languageId,createData:{languageSettings:this._defaults.diagnosticsOptions,languageId:this._defaults.languageId}}),this._client=this._worker.getProxy()),this._client},e.prototype.getLanguageServiceWorker=function(){for(var e,t=this,n=[],r=0;rthis.source.length)return!1;for(var t=0;t=d&&e<=p&&(this.stream.advance(t+1),this.stream.advanceWhileChar((function(e){return e>=d&&e<=p||0===t&&e===K})),!0)},e.prototype._newline=function(e){var t=this.stream.peekChar();switch(t){case z:case _:case R:return this.stream.advance(1),e.push(String.fromCharCode(t)),t===z&&this.stream.advanceIfChar(R)&&e.push("\n"),!0}return!1},e.prototype._escape=function(e,t){var n=this.stream.peekChar();if(n===E){this.stream.advance(1),n=this.stream.peekChar();for(var r=0;r<6&&(n>=d&&n<=p||n>=i&&n<=o||n>=a&&n<=l);)this.stream.advance(1),n=this.stream.peekChar(),r++;if(r>0){try{var s=parseInt(this.stream.substring(this.stream.pos()-r),16);s&&e.push(String.fromCharCode(s))}catch(e){}return n===N||n===M?this.stream.advance(1):this._newline([]),!0}if(n!==z&&n!==_&&n!==R)return this.stream.advance(1),e.push(String.fromCharCode(n)),!0;if(t)return this._newline(e)}return!1},e.prototype._stringChar=function(e,t){var n=this.stream.peekChar();return 0!==n&&n!==e&&n!==E&&n!==z&&n!==_&&n!==R&&(this.stream.advance(1),t.push(String.fromCharCode(n)),!0)},e.prototype._string=function(e){if(this.stream.peekChar()===I||this.stream.peekChar()===P){var t=this.stream.nextChar();for(e.push(String.fromCharCode(t));this._stringChar(t,e)||this._escape(e,!0););return this.stream.peekChar()===t?(this.stream.nextChar(),e.push(String.fromCharCode(t)),n.String):n.BadString}return null},e.prototype._unquotedChar=function(e){var t=this.stream.peekChar();return 0!==t&&t!==E&&t!==I&&t!==P&&t!==w&&t!==x&&t!==N&&t!==M&&t!==R&&t!==_&&t!==z&&(this.stream.advance(1),e.push(String.fromCharCode(t)),!0)},e.prototype._unquotedString=function(e){for(var t=!1;this._unquotedChar(e)||this._escape(e);)t=!0;return t},e.prototype._whitespace=function(){return this.stream.advanceWhileChar((function(e){return e===N||e===M||e===R||e===_||e===z}))>0},e.prototype._name=function(e){for(var t=!1;this._identChar(e)||this._escape(e);)t=!0;return t},e.prototype.ident=function(e){var t=this.stream.pos();if(this._minus(e)&&this._minus(e)){if(this._identFirstChar(e)||this._escape(e)){for(;this._identChar(e)||this._escape(e););return!0}}else if(this._identFirstChar(e)||this._escape(e)){for(;this._identChar(e)||this._escape(e););return!0}return this.stream.goBackTo(t),!1},e.prototype._identFirstChar=function(e){var t=this.stream.peekChar();return(t===b||t>=i&&t<=s||t>=a&&t<=c||t>=128&&t<=65535)&&(this.stream.advance(1),e.push(String.fromCharCode(t)),!0)},e.prototype._minus=function(e){var t=this.stream.peekChar();return t===g&&(this.stream.advance(1),e.push(String.fromCharCode(t)),!0)},e.prototype._identChar=function(e){var t=this.stream.peekChar();return(t===b||t===g||t>=i&&t<=s||t>=a&&t<=c||t>=d&&t<=p||t>=128&&t<=65535)&&(this.stream.advance(1),e.push(String.fromCharCode(t)),!0)},e}();t.Scanner=G})),function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define("vscode-css-languageservice/utils/strings",["require","exports"],e)}((function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.startsWith=function(e,t){if(e.length0?e.lastIndexOf(t)===n:0===n&&e===t},t.difference=function(e,t,n){void 0===n&&(n=4);var r=Math.abs(e.length-t.length);if(r>n)return 0;var i,o,s=[],a=[];for(i=0;ie.end?null:(e.accept((function(e){return-1===e.offset&&-1===e.length||e.offset<=t&&e.end>=t&&(n?e.length<=n.length&&(n=e):n=e,!0)})),n)}!function(e){e[e.Undefined=0]="Undefined",e[e.Identifier=1]="Identifier",e[e.Stylesheet=2]="Stylesheet",e[e.Ruleset=3]="Ruleset",e[e.Selector=4]="Selector",e[e.SimpleSelector=5]="SimpleSelector",e[e.SelectorInterpolation=6]="SelectorInterpolation",e[e.SelectorCombinator=7]="SelectorCombinator",e[e.SelectorCombinatorParent=8]="SelectorCombinatorParent",e[e.SelectorCombinatorSibling=9]="SelectorCombinatorSibling",e[e.SelectorCombinatorAllSiblings=10]="SelectorCombinatorAllSiblings",e[e.SelectorCombinatorShadowPiercingDescendant=11]="SelectorCombinatorShadowPiercingDescendant",e[e.Page=12]="Page",e[e.PageBoxMarginBox=13]="PageBoxMarginBox",e[e.ClassSelector=14]="ClassSelector",e[e.IdentifierSelector=15]="IdentifierSelector",e[e.ElementNameSelector=16]="ElementNameSelector",e[e.PseudoSelector=17]="PseudoSelector",e[e.AttributeSelector=18]="AttributeSelector",e[e.Declaration=19]="Declaration",e[e.Declarations=20]="Declarations",e[e.Property=21]="Property",e[e.Expression=22]="Expression",e[e.BinaryExpression=23]="BinaryExpression",e[e.Term=24]="Term",e[e.Operator=25]="Operator",e[e.Value=26]="Value",e[e.StringLiteral=27]="StringLiteral",e[e.URILiteral=28]="URILiteral",e[e.EscapedValue=29]="EscapedValue",e[e.Function=30]="Function",e[e.NumericValue=31]="NumericValue",e[e.HexColorValue=32]="HexColorValue",e[e.MixinDeclaration=33]="MixinDeclaration",e[e.MixinReference=34]="MixinReference",e[e.VariableName=35]="VariableName",e[e.VariableDeclaration=36]="VariableDeclaration",e[e.Prio=37]="Prio",e[e.Interpolation=38]="Interpolation",e[e.NestedProperties=39]="NestedProperties",e[e.ExtendsReference=40]="ExtendsReference",e[e.SelectorPlaceholder=41]="SelectorPlaceholder",e[e.Debug=42]="Debug",e[e.If=43]="If",e[e.Else=44]="Else",e[e.For=45]="For",e[e.Each=46]="Each",e[e.While=47]="While",e[e.MixinContentReference=48]="MixinContentReference",e[e.MixinContentDeclaration=49]="MixinContentDeclaration",e[e.Media=50]="Media",e[e.Keyframe=51]="Keyframe",e[e.FontFace=52]="FontFace",e[e.Import=53]="Import",e[e.Namespace=54]="Namespace",e[e.Invocation=55]="Invocation",e[e.FunctionDeclaration=56]="FunctionDeclaration",e[e.ReturnStatement=57]="ReturnStatement",e[e.MediaQuery=58]="MediaQuery",e[e.FunctionParameter=59]="FunctionParameter",e[e.FunctionArgument=60]="FunctionArgument",e[e.KeyframeSelector=61]="KeyframeSelector",e[e.ViewPort=62]="ViewPort",e[e.Document=63]="Document",e[e.AtApplyRule=64]="AtApplyRule",e[e.CustomPropertyDeclaration=65]="CustomPropertyDeclaration",e[e.CustomPropertySet=66]="CustomPropertySet",e[e.ListEntry=67]="ListEntry",e[e.Supports=68]="Supports",e[e.SupportsCondition=69]="SupportsCondition",e[e.NamespacePrefix=70]="NamespacePrefix",e[e.GridLine=71]="GridLine",e[e.Plugin=72]="Plugin",e[e.UnknownAtRule=73]="UnknownAtRule",e[e.Use=74]="Use",e[e.ModuleConfiguration=75]="ModuleConfiguration",e[e.Forward=76]="Forward",e[e.ForwardVisibility=77]="ForwardVisibility",e[e.Module=78]="Module"}(n=t.NodeType||(t.NodeType={})),function(e){e[e.Mixin=0]="Mixin",e[e.Rule=1]="Rule",e[e.Variable=2]="Variable",e[e.Function=3]="Function",e[e.Keyframe=4]="Keyframe",e[e.Unknown=5]="Unknown",e[e.Module=6]="Module",e[e.Forward=7]="Forward",e[e.ForwardVisibility=8]="ForwardVisibility"}(t.ReferenceType||(t.ReferenceType={})),t.getNodeAtOffset=i,t.getNodePath=function(e,t){for(var n=i(e,t),r=[];n;)r.unshift(n),n=n.parent;return r},t.getParentDeclaration=function(e){var t=e.findParent(n.Declaration),r=t&&t.getValue();return r&&r.encloses(e)?t:null};var o=function(){function e(e,t,n){void 0===e&&(e=-1),void 0===t&&(t=-1),this.parent=null,this.offset=e,this.length=t,n&&(this.nodeType=n)}return Object.defineProperty(e.prototype,"end",{get:function(){return this.offset+this.length},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"type",{get:function(){return this.nodeType||n.Undefined},set:function(e){this.nodeType=e},enumerable:!0,configurable:!0}),e.prototype.getTextProvider=function(){for(var e=this;e&&!e.textProvider;)e=e.parent;return e?e.textProvider:function(){return"unknown"}},e.prototype.getText=function(){return this.getTextProvider()(this.offset,this.length)},e.prototype.matches=function(e){return this.length===e.length&&this.getTextProvider()(this.offset,this.length)===e},e.prototype.startsWith=function(e){return this.length>=e.length&&this.getTextProvider()(this.offset,e.length)===e},e.prototype.endsWith=function(e){return this.length>=e.length&&this.getTextProvider()(this.end-e.length,e.length)===e},e.prototype.accept=function(e){if(e(this)&&this.children)for(var t=0,n=this.children;t=0&&e.parent.children.splice(n,1)}e.parent=this;var r=this.children;return r||(r=this.children=[]),-1!==t?r.splice(t,0,e):r.push(e),e},e.prototype.attachTo=function(e,t){return void 0===t&&(t=-1),e&&e.adoptChild(this,t),this},e.prototype.collectIssues=function(e){this.issues&&e.push.apply(e,this.issues)},e.prototype.addIssue=function(e){this.issues||(this.issues=[]),this.issues.push(e)},e.prototype.hasIssue=function(e){return Array.isArray(this.issues)&&this.issues.some((function(t){return t.getRule()===e}))},e.prototype.isErroneous=function(e){return void 0===e&&(e=!1),!!(this.issues&&this.issues.length>0)||e&&Array.isArray(this.children)&&this.children.some((function(e){return e.isErroneous(!0)}))},e.prototype.setNode=function(e,t,n){return void 0===n&&(n=-1),!!t&&(t.attachTo(this,n),this[e]=t,!0)},e.prototype.addChild=function(e){return!!e&&(this.children||(this.children=[]),e.attachTo(this),this.updateOffsetAndLength(e),!0)},e.prototype.updateOffsetAndLength=function(e){(e.offsetthis.end||-1===this.length)&&(this.length=t-this.offset)},e.prototype.hasChildren=function(){return!!this.children&&this.children.length>0},e.prototype.getChildren=function(){return this.children?this.children.slice(0):[]},e.prototype.getChild=function(e){return this.children&&e=0;n--)if((t=this.children[n]).offset<=e)return t;return null},e.prototype.findChildAtOffset=function(e,t){var n=this.findFirstChildBeforeOffset(e);return n&&n.end>=e?t&&n.findChildAtOffset(e,!0)||n:null},e.prototype.encloses=function(e){return this.offset<=e.offset&&this.offset+this.length>=e.offset+e.length},e.prototype.getParent=function(){for(var e=this.parent;e instanceof s;)e=e.parent;return e},e.prototype.findParent=function(e){for(var t=this;t&&t.type!==e;)t=t.parent;return t},e.prototype.findAParent=function(){for(var e=[],t=0;t/g,">")}function i(e){if(!e.description||""===e.description)return"";if("string"!=typeof e.description)return e.description.value;var t="";e.status&&(t+=n(e.status)),t+=e.description;var r=s(e.browsers);return r&&(t+="\n("+r+")"),"syntax"in e&&(t+="\n\nSyntax: "+e.syntax),e.references&&e.references.length>0&&(t+="\n\n",t+=e.references.map((function(e){return e.name+": "+e.url})).join(" | ")),t}function o(e){if(!e.description||""===e.description)return"";var t="";e.status&&(t+=n(e.status)),t+=r("string"==typeof e.description?e.description:e.description.value);var i=s(e.browsers);return i&&(t+="\n\n("+r(i)+")"),"syntax"in e&&e.syntax&&(t+="\n\nSyntax: "+r(e.syntax)),e.references&&e.references.length>0&&(t+="\n\n",t+=e.references.map((function(e){return"["+e.name+"]("+e.url+")"})).join(" | ")),t}function s(e){return void 0===e&&(e=[]),0===e.length?null:e.map((function(e){var n="",r=e.match(/([A-Z]+)(\d+)?/),i=r[1],o=r[2];return i in t.browserNames&&(n+=t.browserNames[i]),o&&(n+=" "+o),n})).join(", ")}Object.defineProperty(t,"__esModule",{value:!0}),t.browserNames={E:"Edge",FF:"Firefox",S:"Safari",C:"Chrome",IE:"IE",O:"Opera"},t.getEntryDescription=function(e,t){var n;if(""!==(n=t?{kind:"markdown",value:o(e)}:{kind:"plaintext",value:i(e)}).value)return n},t.textToMarkedString=r,t.getBrowserLabel=s})),function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define("vscode-css-languageservice/languageFacts/colors",["require","exports","../parser/cssNodes","vscode-nls"],e)}((function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=e("../parser/cssNodes"),r=e("vscode-nls").loadMessageBundle();function i(e,t){var n=e.getText().match(/^([-+]?[0-9]*\.?[0-9]+)(%?)$/);if(n){n[2]&&(t=100);var r=parseFloat(n[1])/t;if(r>=0&&r<=1)return r}throw new Error}function o(e){var t=e.getName();return!!t&&/^(rgb|rgba|hsl|hsla)$/gi.test(t)}t.colorFunctions=[{func:"rgb($red, $green, $blue)",desc:r("css.builtin.rgb","Creates a Color from red, green, and blue values.")},{func:"rgba($red, $green, $blue, $alpha)",desc:r("css.builtin.rgba","Creates a Color from red, green, blue, and alpha values.")},{func:"hsl($hue, $saturation, $lightness)",desc:r("css.builtin.hsl","Creates a Color from hue, saturation, and lightness values.")},{func:"hsla($hue, $saturation, $lightness, $alpha)",desc:r("css.builtin.hsla","Creates a Color from hue, saturation, lightness, and alpha values.")}],t.colors={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgrey:"#a9a9a9",darkgreen:"#006400",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",grey:"#808080",green:"#008000",greenyellow:"#adff2f",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgrey:"#d3d3d3",lightgreen:"#90ee90",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370d8",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#d87093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#ff0000",rebeccapurple:"#663399",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"},t.colorKeywords={currentColor:"The value of the 'color' property. The computed value of the 'currentColor' keyword is the computed value of the 'color' property. If the 'currentColor' keyword is set on the 'color' property itself, it is treated as 'color:inherit' at parse time.",transparent:"Fully transparent. This keyword can be considered a shorthand for rgba(0,0,0,0) which is its computed value."},t.isColorConstructor=o,t.isColorValue=function(e){if(e.type===n.NodeType.HexColorValue)return!0;if(e.type===n.NodeType.Function)return o(e);if(e.type===n.NodeType.Identifier){if(e.parent&&e.parent.type!==n.NodeType.Term)return!1;var r=e.getText().toLowerCase();if("none"===r)return!1;if(t.colors[r])return!0}return!1};function s(e){return e<48?0:e<=57?e-48:(e<97&&(e+=32),e>=97&&e<=102?e-97+10:0)}function a(e){if("#"!==e[0])return null;switch(e.length){case 4:return{red:17*s(e.charCodeAt(1))/255,green:17*s(e.charCodeAt(2))/255,blue:17*s(e.charCodeAt(3))/255,alpha:1};case 5:return{red:17*s(e.charCodeAt(1))/255,green:17*s(e.charCodeAt(2))/255,blue:17*s(e.charCodeAt(3))/255,alpha:17*s(e.charCodeAt(4))/255};case 7:return{red:(16*s(e.charCodeAt(1))+s(e.charCodeAt(2)))/255,green:(16*s(e.charCodeAt(3))+s(e.charCodeAt(4)))/255,blue:(16*s(e.charCodeAt(5))+s(e.charCodeAt(6)))/255,alpha:1};case 9:return{red:(16*s(e.charCodeAt(1))+s(e.charCodeAt(2)))/255,green:(16*s(e.charCodeAt(3))+s(e.charCodeAt(4)))/255,blue:(16*s(e.charCodeAt(5))+s(e.charCodeAt(6)))/255,alpha:(16*s(e.charCodeAt(7))+s(e.charCodeAt(8)))/255}}return null}function l(e,t,n,r){if(void 0===r&&(r=1),0===t)return{red:n,green:n,blue:n,alpha:r};var i=function(e,t,n){for(;n<0;)n+=6;for(;n>=6;)n-=6;return n<1?(t-e)*n+e:n<3?t:n<4?(t-e)*(4-n)+e:e},o=n<=.5?n*(t+1):n+t-n*t,s=2*n-o;return{red:i(s,o,(e/=60)+2),green:i(s,o,e),blue:i(s,o,e-2),alpha:r}}t.hexDigit=s,t.colorFromHex=a,t.colorFrom256RGB=function(e,t,n,r){return void 0===r&&(r=1),{red:e/255,green:t/255,blue:n/255,alpha:r}},t.colorFromHSL=l,t.hslFromColor=function(e){var t=e.red,n=e.green,r=e.blue,i=e.alpha,o=Math.max(t,n,r),s=Math.min(t,n,r),a=0,l=0,c=(s+o)/2,d=o-s;if(d>0){switch(l=Math.min(c<=.5?d/(2*c):d/(2-2*c),1),o){case t:a=(n-r)/d+(n4)return null;try{var c=4===s.length?i(s[3],1):1;if("rgb"===o||"rgba"===o)return{red:i(s[0],255),green:i(s[1],255),blue:i(s[2],255),alpha:c};if("hsl"===o||"hsla"===o)return l(function(e){var t=e.getText();if(t.match(/^([-+]?[0-9]*\.?[0-9]+)(deg)?$/))return parseFloat(t)%360;throw new Error}(s[0]),i(s[1],100),i(s[2],100),c)}catch(e){return null}}else if(e.type===n.NodeType.Identifier){if(e.parent&&e.parent.type!==n.NodeType.Term)return null;var d=e.parent;if(d&&d.parent&&d.parent.type===n.NodeType.BinaryExpression){var p=d.parent;if(p.parent&&p.parent.type===n.NodeType.ListEntry&&p.parent.key===p)return null}var h=e.getText().toLowerCase();if("none"===h)return null;var u=t.colors[h];if(u)return a(u)}return null}})),function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define("vscode-css-languageservice/languageFacts/builtinData",["require","exports"],e)}((function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.positionKeywords={bottom:"Computes to ‘100%’ for the vertical position if one or two values are given, otherwise specifies the bottom edge as the origin for the next offset.",center:"Computes to ‘50%’ (‘left 50%’) for the horizontal position if the horizontal position is not otherwise specified, or ‘50%’ (‘top 50%’) for the vertical position if it is.",left:"Computes to ‘0%’ for the horizontal position if one or two values are given, otherwise specifies the left edge as the origin for the next offset.",right:"Computes to ‘100%’ for the horizontal position if one or two values are given, otherwise specifies the right edge as the origin for the next offset.",top:"Computes to ‘0%’ for the vertical position if one or two values are given, otherwise specifies the top edge as the origin for the next offset."},t.repeatStyleKeywords={"no-repeat":"Placed once and not repeated in this direction.",repeat:"Repeated in this direction as often as needed to cover the background painting area.","repeat-x":"Computes to ‘repeat no-repeat’.","repeat-y":"Computes to ‘no-repeat repeat’.",round:"Repeated as often as will fit within the background positioning area. If it doesn’t fit a whole number of times, it is rescaled so that it does.",space:"Repeated as often as will fit within the background positioning area without being clipped and then the images are spaced out to fill the area."},t.lineStyleKeywords={dashed:"A series of square-ended dashes.",dotted:"A series of round dots.",double:"Two parallel solid lines with some space between them.",groove:"Looks as if it were carved in the canvas.",hidden:"Same as ‘none’, but has different behavior in the border conflict resolution rules for border-collapsed tables.",inset:"Looks as if the content on the inside of the border is sunken into the canvas.",none:"No border. Color and width are ignored.",outset:"Looks as if the content on the inside of the border is coming out of the canvas.",ridge:"Looks as if it were coming out of the canvas.",solid:"A single line segment."},t.lineWidthKeywords=["medium","thick","thin"],t.boxKeywords={"border-box":"The background is painted within (clipped to) the border box.","content-box":"The background is painted within (clipped to) the content box.","padding-box":"The background is painted within (clipped to) the padding box."},t.geometryBoxKeywords={"margin-box":"Uses the margin box as reference box.","fill-box":"Uses the object bounding box as reference box.","stroke-box":"Uses the stroke bounding box as reference box.","view-box":"Uses the nearest SVG viewport as reference box."},t.cssWideKeywords={initial:"Represents the value specified as the property’s initial value.",inherit:"Represents the computed value of the property on the element’s parent.",unset:"Acts as either `inherit` or `initial`, depending on whether the property is inherited or not."},t.imageFunctions={"url()":"Reference an image file by URL","image()":"Provide image fallbacks and annotations.","-webkit-image-set()":"Provide multiple resolutions. Remember to use unprefixed image-set() in addition.","image-set()":"Provide multiple resolutions of an image and const the UA decide which is most appropriate in a given situation.","-moz-element()":"Use an element in the document as an image. Remember to use unprefixed element() in addition.","element()":"Use an element in the document as an image.","cross-fade()":"Indicates the two images to be combined and how far along in the transition the combination is.","-webkit-gradient()":"Deprecated. Use modern linear-gradient() or radial-gradient() instead.","-webkit-linear-gradient()":"Linear gradient. Remember to use unprefixed version in addition.","-moz-linear-gradient()":"Linear gradient. Remember to use unprefixed version in addition.","-o-linear-gradient()":"Linear gradient. Remember to use unprefixed version in addition.","linear-gradient()":"A linear gradient is created by specifying a straight gradient line, and then several colors placed along that line.","-webkit-repeating-linear-gradient()":"Repeating Linear gradient. Remember to use unprefixed version in addition.","-moz-repeating-linear-gradient()":"Repeating Linear gradient. Remember to use unprefixed version in addition.","-o-repeating-linear-gradient()":"Repeating Linear gradient. Remember to use unprefixed version in addition.","repeating-linear-gradient()":"Same as linear-gradient, except the color-stops are repeated infinitely in both directions, with their positions shifted by multiples of the difference between the last specified color-stop’s position and the first specified color-stop’s position.","-webkit-radial-gradient()":"Radial gradient. Remember to use unprefixed version in addition.","-moz-radial-gradient()":"Radial gradient. Remember to use unprefixed version in addition.","radial-gradient()":"Colors emerge from a single point and smoothly spread outward in a circular or elliptical shape.","-webkit-repeating-radial-gradient()":"Repeating radial gradient. Remember to use unprefixed version in addition.","-moz-repeating-radial-gradient()":"Repeating radial gradient. Remember to use unprefixed version in addition.","repeating-radial-gradient()":"Same as radial-gradient, except the color-stops are repeated infinitely in both directions, with their positions shifted by multiples of the difference between the last specified color-stop’s position and the first specified color-stop’s position."},t.transitionTimingFunctions={ease:"Equivalent to cubic-bezier(0.25, 0.1, 0.25, 1.0).","ease-in":"Equivalent to cubic-bezier(0.42, 0, 1.0, 1.0).","ease-in-out":"Equivalent to cubic-bezier(0.42, 0, 0.58, 1.0).","ease-out":"Equivalent to cubic-bezier(0, 0, 0.58, 1.0).",linear:"Equivalent to cubic-bezier(0.0, 0.0, 1.0, 1.0).","step-end":"Equivalent to steps(1, end).","step-start":"Equivalent to steps(1, start).","steps()":"The first parameter specifies the number of intervals in the function. The second parameter, which is optional, is either the value “start” or “end”.","cubic-bezier()":"Specifies a cubic-bezier curve. The four values specify points P1 and P2 of the curve as (x1, y1, x2, y2).","cubic-bezier(0.6, -0.28, 0.735, 0.045)":"Ease-in Back. Overshoots.","cubic-bezier(0.68, -0.55, 0.265, 1.55)":"Ease-in-out Back. Overshoots.","cubic-bezier(0.175, 0.885, 0.32, 1.275)":"Ease-out Back. Overshoots.","cubic-bezier(0.6, 0.04, 0.98, 0.335)":"Ease-in Circular. Based on half circle.","cubic-bezier(0.785, 0.135, 0.15, 0.86)":"Ease-in-out Circular. Based on half circle.","cubic-bezier(0.075, 0.82, 0.165, 1)":"Ease-out Circular. Based on half circle.","cubic-bezier(0.55, 0.055, 0.675, 0.19)":"Ease-in Cubic. Based on power of three.","cubic-bezier(0.645, 0.045, 0.355, 1)":"Ease-in-out Cubic. Based on power of three.","cubic-bezier(0.215, 0.610, 0.355, 1)":"Ease-out Cubic. Based on power of three.","cubic-bezier(0.95, 0.05, 0.795, 0.035)":"Ease-in Exponential. Based on two to the power ten.","cubic-bezier(1, 0, 0, 1)":"Ease-in-out Exponential. Based on two to the power ten.","cubic-bezier(0.19, 1, 0.22, 1)":"Ease-out Exponential. Based on two to the power ten.","cubic-bezier(0.47, 0, 0.745, 0.715)":"Ease-in Sine.","cubic-bezier(0.445, 0.05, 0.55, 0.95)":"Ease-in-out Sine.","cubic-bezier(0.39, 0.575, 0.565, 1)":"Ease-out Sine.","cubic-bezier(0.55, 0.085, 0.68, 0.53)":"Ease-in Quadratic. Based on power of two.","cubic-bezier(0.455, 0.03, 0.515, 0.955)":"Ease-in-out Quadratic. Based on power of two.","cubic-bezier(0.25, 0.46, 0.45, 0.94)":"Ease-out Quadratic. Based on power of two.","cubic-bezier(0.895, 0.03, 0.685, 0.22)":"Ease-in Quartic. Based on power of four.","cubic-bezier(0.77, 0, 0.175, 1)":"Ease-in-out Quartic. Based on power of four.","cubic-bezier(0.165, 0.84, 0.44, 1)":"Ease-out Quartic. Based on power of four.","cubic-bezier(0.755, 0.05, 0.855, 0.06)":"Ease-in Quintic. Based on power of five.","cubic-bezier(0.86, 0, 0.07, 1)":"Ease-in-out Quintic. Based on power of five.","cubic-bezier(0.23, 1, 0.320, 1)":"Ease-out Quintic. Based on power of five."},t.basicShapeFunctions={"circle()":"Defines a circle.","ellipse()":"Defines an ellipse.","inset()":"Defines an inset rectangle.","polygon()":"Defines a polygon."},t.units={length:["em","rem","ex","px","cm","mm","in","pt","pc","ch","vw","vh","vmin","vmax"],angle:["deg","rad","grad","turn"],time:["ms","s"],frequency:["Hz","kHz"],resolution:["dpi","dpcm","dppx"],percentage:["%","fr"]},t.html5Tags=["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rb","rp","rt","rtc","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","title","tr","track","u","ul","const","video","wbr"],t.svgElements=["circle","clipPath","cursor","defs","desc","ellipse","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","filter","foreignObject","g","hatch","hatchpath","image","line","linearGradient","marker","mask","mesh","meshpatch","meshrow","metadata","mpath","path","pattern","polygon","polyline","radialGradient","rect","set","solidcolor","stop","svg","switch","symbol","text","textPath","tspan","use","view"],t.pageBoxDirectives=["@bottom-center","@bottom-left","@bottom-left-corner","@bottom-right","@bottom-right-corner","@left-bottom","@left-middle","@left-top","@right-bottom","@right-middle","@right-top","@top-center","@top-left","@top-left-corner","@top-right","@top-right-corner"]})),function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define("vscode-css-languageservice/languageFacts/facts",["require","exports","./entry","./colors","./builtinData"],e)}((function(e,t){"use strict";function n(e){for(var n in e)t.hasOwnProperty(n)||(t[n]=e[n])}Object.defineProperty(t,"__esModule",{value:!0}),n(e("./entry")),n(e("./colors")),n(e("./builtinData"))})),function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define("vscode-css-languageservice/utils/objects",["require","exports"],e)}((function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.values=function(e){return Object.keys(e).map((function(t){return e[t]}))},t.isDefined=function(e){return void 0!==e}}));var __spreadArrays=this&&this.__spreadArrays||function(){for(var e=0,t=0,n=arguments.length;te.offset?o-e.offset:0}return e},e.prototype.markError=function(e,t,n,i){this.token!==this.lastErrorToken&&(e.addIssue(new r.Marker(e,t,r.Level.Error,void 0,this.token.offset,this.token.len)),this.lastErrorToken=this.token),(n||i)&&this.resync(n,i)},e.prototype.parseStylesheet=function(e){var t=e.version,n=e.getText();return this.internalParse(n,this._parseStylesheet,(function(r,i){if(e.version!==t)throw new Error("Underlying model has changed, AST is no longer valid");return n.substr(r,i)}))},e.prototype.internalParse=function(e,t,n){this.scanner.setSource(e),this.token=this.scanner.scan();var r=t.bind(this)();return r&&(r.textProvider=n||function(t,n){return e.substr(t,n)}),r},e.prototype._parseStylesheet=function(){for(var e=this.create(r.Stylesheet);e.addChild(this._parseStylesheetStart()););var t=!1;do{var o=!1;do{o=!1;var s=this._parseStylesheetStatement();for(s&&(e.addChild(s),o=!0,t=!1,this.peek(n.TokenType.EOF)||!this._needsSemicolonAfter(s)||this.accept(n.TokenType.SemiColon)||this.markError(e,i.ParseError.SemiColonExpected));this.accept(n.TokenType.SemiColon)||this.accept(n.TokenType.CDO)||this.accept(n.TokenType.CDC);)o=!0,t=!1}while(o);if(this.peek(n.TokenType.EOF))break;t||(this.peek(n.TokenType.AtKeyword)?this.markError(e,i.ParseError.UnknownAtRule):this.markError(e,i.ParseError.RuleOrSelectorExpected),t=!0),this.consumeToken()}while(!this.peek(n.TokenType.EOF));return this.finish(e)},e.prototype._parseStylesheetStart=function(){return this._parseCharset()},e.prototype._parseStylesheetStatement=function(e){return void 0===e&&(e=!1),this.peek(n.TokenType.AtKeyword)?this._parseStylesheetAtStatement(e):this._parseRuleset(e)},e.prototype._parseStylesheetAtStatement=function(e){return void 0===e&&(e=!1),this._parseImport()||this._parseMedia(e)||this._parsePage()||this._parseFontFace()||this._parseKeyframe()||this._parseSupports(e)||this._parseViewPort()||this._parseNamespace()||this._parseDocument()||this._parseUnknownAtRule()},e.prototype._tryParseRuleset=function(e){var t=this.mark();if(this._parseSelector(e)){for(;this.accept(n.TokenType.Comma)&&this._parseSelector(e););if(this.accept(n.TokenType.CurlyL))return this.restoreAtMark(t),this._parseRuleset(e)}return this.restoreAtMark(t),null},e.prototype._parseRuleset=function(e){void 0===e&&(e=!1);var t=this.create(r.RuleSet),o=t.getSelectors();if(!o.addChild(this._parseSelector(e)))return null;for(;this.accept(n.TokenType.Comma);)if(!o.addChild(this._parseSelector(e)))return this.finish(t,i.ParseError.SelectorExpected);return this._parseBody(t,this._parseRuleSetDeclaration.bind(this))},e.prototype._parseRuleSetDeclarationAtStatement=function(){return this._parseAtApply()||this._parseUnknownAtRule()},e.prototype._parseRuleSetDeclaration=function(){return this.peek(n.TokenType.AtKeyword)?this._parseRuleSetDeclarationAtStatement():this._tryParseCustomPropertyDeclaration()||this._parseDeclaration()},e.prototype._parseAtApply=function(){if(!this.peekKeyword("@apply"))return null;var e=this.create(r.AtApplyRule);return this.consumeToken(),e.setIdentifier(this._parseIdent([r.ReferenceType.Variable]))?this.finish(e):this.finish(e,i.ParseError.IdentifierExpected)},e.prototype._needsSemicolonAfter=function(e){switch(e.type){case r.NodeType.Keyframe:case r.NodeType.ViewPort:case r.NodeType.Media:case r.NodeType.Ruleset:case r.NodeType.Namespace:case r.NodeType.If:case r.NodeType.For:case r.NodeType.Each:case r.NodeType.While:case r.NodeType.MixinDeclaration:case r.NodeType.FunctionDeclaration:case r.NodeType.MixinContentDeclaration:return!1;case r.NodeType.ExtendsReference:case r.NodeType.MixinContentReference:case r.NodeType.ReturnStatement:case r.NodeType.MediaQuery:case r.NodeType.Debug:case r.NodeType.Import:case r.NodeType.AtApplyRule:case r.NodeType.CustomPropertyDeclaration:return!0;case r.NodeType.VariableDeclaration:return e.needsSemicolon;case r.NodeType.MixinReference:return!e.getContent();case r.NodeType.Declaration:return!e.getNestedProperties()}return!1},e.prototype._parseDeclarations=function(e){var t=this.create(r.Declarations);if(!this.accept(n.TokenType.CurlyL))return null;for(var o=e();t.addChild(o)&&!this.peek(n.TokenType.CurlyR);){if(this._needsSemicolonAfter(o)&&!this.accept(n.TokenType.SemiColon))return this.finish(t,i.ParseError.SemiColonExpected,[n.TokenType.SemiColon,n.TokenType.CurlyR]);for(o&&this.prevToken&&this.prevToken.type===n.TokenType.SemiColon&&(o.semicolonPosition=this.prevToken.offset);this.accept(n.TokenType.SemiColon););o=e()}return this.accept(n.TokenType.CurlyR)?this.finish(t):this.finish(t,i.ParseError.RightCurlyExpected,[n.TokenType.CurlyR,n.TokenType.SemiColon])},e.prototype._parseBody=function(e,t){return e.setDeclarations(this._parseDeclarations(t))?this.finish(e):this.finish(e,i.ParseError.LeftCurlyExpected,[n.TokenType.CurlyR,n.TokenType.SemiColon])},e.prototype._parseSelector=function(e){var t=this.create(r.Selector),n=!1;for(e&&(n=t.addChild(this._parseCombinator()));t.addChild(this._parseSimpleSelector());)n=!0,t.addChild(this._parseCombinator());return n?this.finish(t):null},e.prototype._parseDeclaration=function(e){var t=this.create(r.Declaration);if(!t.setProperty(this._parseProperty()))return null;if(!this.accept(n.TokenType.Colon)){var o=e?__spreadArrays(e,[n.TokenType.SemiColon]):[n.TokenType.SemiColon];return this.finish(t,i.ParseError.ColonExpected,[n.TokenType.Colon],o)}return this.prevToken&&(t.colonPosition=this.prevToken.offset),t.setValue(this._parseExpr())?(t.addChild(this._parsePrio()),this.peek(n.TokenType.SemiColon)&&(t.semicolonPosition=this.token.offset),this.finish(t)):this.finish(t,i.ParseError.PropertyValueExpected)},e.prototype._tryParseCustomPropertyDeclaration=function(){if(!this.peekRegExp(n.TokenType.Ident,/^--/))return null;var e=this.create(r.CustomPropertyDeclaration);if(!e.setProperty(this._parseProperty()))return null;if(!this.accept(n.TokenType.Colon))return this.finish(e,i.ParseError.ColonExpected,[n.TokenType.Colon]);this.prevToken&&(e.colonPosition=this.prevToken.offset);var t=this.mark();if(this.peek(n.TokenType.CurlyL)){var o=this.create(r.CustomPropertySet),a=this._parseDeclarations(this._parseRuleSetDeclaration.bind(this));if(o.setDeclarations(a)&&!a.isErroneous(!0)&&(o.addChild(this._parsePrio()),this.peek(n.TokenType.SemiColon)))return this.finish(o),e.setPropertySet(o),e.semicolonPosition=this.token.offset,this.finish(e);this.restoreAtMark(t)}var l=this._parseExpr();return l&&!l.isErroneous(!0)&&(this._parsePrio(),this.peek(n.TokenType.SemiColon))?(e.setValue(l),e.semicolonPosition=this.token.offset,this.finish(e)):(this.restoreAtMark(t),e.addChild(this._parseCustomPropertyValue()),e.addChild(this._parsePrio()),s.isDefined(e.colonPosition)&&this.token.offset===e.colonPosition+1?this.finish(e,i.ParseError.PropertyValueExpected):this.finish(e))},e.prototype._parseCustomPropertyValue=function(){var e=this.create(r.Node),t=function(){return 0===o&&0===s&&0===a},o=0,s=0,a=0;e:for(;;){switch(this.token.type){case n.TokenType.SemiColon:case n.TokenType.Exclamation:if(t())break e;break;case n.TokenType.CurlyL:o++;break;case n.TokenType.CurlyR:if(--o<0){if(0===s&&0===a)break e;return this.finish(e,i.ParseError.LeftCurlyExpected)}break;case n.TokenType.ParenthesisL:s++;break;case n.TokenType.ParenthesisR:if(--s<0)return this.finish(e,i.ParseError.LeftParenthesisExpected);break;case n.TokenType.BracketL:a++;break;case n.TokenType.BracketR:if(--a<0)return this.finish(e,i.ParseError.LeftSquareBracketExpected);break;case n.TokenType.BadString:break e;case n.TokenType.EOF:var l=i.ParseError.RightCurlyExpected;return a>0?l=i.ParseError.RightSquareBracketExpected:s>0&&(l=i.ParseError.RightParenthesisExpected),this.finish(e,l)}this.consumeToken()}return this.finish(e)},e.prototype._tryToParseDeclaration=function(){var e=this.mark();return this._parseProperty()&&this.accept(n.TokenType.Colon)?(this.restoreAtMark(e),this._parseDeclaration()):(this.restoreAtMark(e),null)},e.prototype._parseProperty=function(){var e=this.create(r.Property),t=this.mark();return(this.acceptDelim("*")||this.acceptDelim("_"))&&this.hasWhitespace()?(this.restoreAtMark(t),null):e.setIdentifier(this._parsePropertyIdentifier())?this.finish(e):null},e.prototype._parsePropertyIdentifier=function(){return this._parseIdent()},e.prototype._parseCharset=function(){if(!this.peek(n.TokenType.Charset))return null;var e=this.create(r.Node);return this.consumeToken(),this.accept(n.TokenType.String)?this.accept(n.TokenType.SemiColon)?this.finish(e):this.finish(e,i.ParseError.SemiColonExpected):this.finish(e,i.ParseError.IdentifierExpected)},e.prototype._parseImport=function(){if(!this.peekKeyword("@import"))return null;var e=this.create(r.Import);return this.consumeToken(),e.addChild(this._parseURILiteral())||e.addChild(this._parseStringLiteral())?(this.peek(n.TokenType.SemiColon)||this.peek(n.TokenType.EOF)||e.setMedialist(this._parseMediaQueryList()),this.finish(e)):this.finish(e,i.ParseError.URIOrStringExpected)},e.prototype._parseNamespace=function(){if(!this.peekKeyword("@namespace"))return null;var e=this.create(r.Namespace);return this.consumeToken(),e.addChild(this._parseURILiteral())||(e.addChild(this._parseIdent()),e.addChild(this._parseURILiteral())||e.addChild(this._parseStringLiteral()))?this.accept(n.TokenType.SemiColon)?this.finish(e):this.finish(e,i.ParseError.SemiColonExpected):this.finish(e,i.ParseError.URIExpected,[n.TokenType.SemiColon])},e.prototype._parseFontFace=function(){if(!this.peekKeyword("@font-face"))return null;var e=this.create(r.FontFace);return this.consumeToken(),this._parseBody(e,this._parseRuleSetDeclaration.bind(this))},e.prototype._parseViewPort=function(){if(!this.peekKeyword("@-ms-viewport")&&!this.peekKeyword("@-o-viewport")&&!this.peekKeyword("@viewport"))return null;var e=this.create(r.ViewPort);return this.consumeToken(),this._parseBody(e,this._parseRuleSetDeclaration.bind(this))},e.prototype._parseKeyframe=function(){if(!this.peekRegExp(n.TokenType.AtKeyword,this.keyframeRegex))return null;var e=this.create(r.Keyframe),t=this.create(r.Node);return this.consumeToken(),e.setKeyword(this.finish(t)),t.matches("@-ms-keyframes")&&this.markError(t,i.ParseError.UnknownKeyword),e.setIdentifier(this._parseKeyframeIdent())?this._parseBody(e,this._parseKeyframeSelector.bind(this)):this.finish(e,i.ParseError.IdentifierExpected,[n.TokenType.CurlyR])},e.prototype._parseKeyframeIdent=function(){return this._parseIdent([r.ReferenceType.Keyframe])},e.prototype._parseKeyframeSelector=function(){var e=this.create(r.KeyframeSelector);if(!e.addChild(this._parseIdent())&&!this.accept(n.TokenType.Percentage))return null;for(;this.accept(n.TokenType.Comma);)if(!e.addChild(this._parseIdent())&&!this.accept(n.TokenType.Percentage))return this.finish(e,i.ParseError.PercentageExpected);return this._parseBody(e,this._parseRuleSetDeclaration.bind(this))},e.prototype._tryParseKeyframeSelector=function(){var e=this.create(r.KeyframeSelector),t=this.mark();if(!e.addChild(this._parseIdent())&&!this.accept(n.TokenType.Percentage))return null;for(;this.accept(n.TokenType.Comma);)if(!e.addChild(this._parseIdent())&&!this.accept(n.TokenType.Percentage))return this.restoreAtMark(t),null;return this.peek(n.TokenType.CurlyL)?this._parseBody(e,this._parseRuleSetDeclaration.bind(this)):(this.restoreAtMark(t),null)},e.prototype._parseSupports=function(e){if(void 0===e&&(e=!1),!this.peekKeyword("@supports"))return null;var t=this.create(r.Supports);return this.consumeToken(),t.addChild(this._parseSupportsCondition()),this._parseBody(t,this._parseSupportsDeclaration.bind(this,e))},e.prototype._parseSupportsDeclaration=function(e){return void 0===e&&(e=!1),e?this._tryParseRuleset(!0)||this._tryToParseDeclaration()||this._parseStylesheetStatement(!0):this._parseStylesheetStatement(!1)},e.prototype._parseSupportsCondition=function(){var e=this.create(r.SupportsCondition);if(this.acceptIdent("not"))e.addChild(this._parseSupportsConditionInParens());else if(e.addChild(this._parseSupportsConditionInParens()),this.peekRegExp(n.TokenType.Ident,/^(and|or)$/i))for(var t=this.token.text.toLowerCase();this.acceptIdent(t);)e.addChild(this._parseSupportsConditionInParens());return this.finish(e)},e.prototype._parseSupportsConditionInParens=function(){var e=this.create(r.SupportsCondition);if(this.accept(n.TokenType.ParenthesisL))return this.prevToken&&(e.lParent=this.prevToken.offset),e.addChild(this._tryToParseDeclaration())||this._parseSupportsCondition()?this.accept(n.TokenType.ParenthesisR)?(this.prevToken&&(e.rParent=this.prevToken.offset),this.finish(e)):this.finish(e,i.ParseError.RightParenthesisExpected,[n.TokenType.ParenthesisR],[]):this.finish(e,i.ParseError.ConditionExpected);if(this.peek(n.TokenType.Ident)){var t=this.mark();if(this.consumeToken(),!this.hasWhitespace()&&this.accept(n.TokenType.ParenthesisL)){for(var o=1;this.token.type!==n.TokenType.EOF&&0!==o;)this.token.type===n.TokenType.ParenthesisL?o++:this.token.type===n.TokenType.ParenthesisR&&o--,this.consumeToken();return this.finish(e)}this.restoreAtMark(t)}return this.finish(e,i.ParseError.LeftParenthesisExpected,[],[n.TokenType.ParenthesisL])},e.prototype._parseMediaDeclaration=function(e){return void 0===e&&(e=!1),e?this._tryParseRuleset(!0)||this._tryToParseDeclaration()||this._parseStylesheetStatement(!0):this._parseStylesheetStatement(!1)},e.prototype._parseMedia=function(e){if(void 0===e&&(e=!1),!this.peekKeyword("@media"))return null;var t=this.create(r.Media);return this.consumeToken(),t.addChild(this._parseMediaQueryList())?this._parseBody(t,this._parseMediaDeclaration.bind(this,e)):this.finish(t,i.ParseError.MediaQueryExpected)},e.prototype._parseMediaQueryList=function(){var e=this.create(r.Medialist);if(!e.addChild(this._parseMediaQuery([n.TokenType.CurlyL])))return this.finish(e,i.ParseError.MediaQueryExpected);for(;this.accept(n.TokenType.Comma);)if(!e.addChild(this._parseMediaQuery([n.TokenType.CurlyL])))return this.finish(e,i.ParseError.MediaQueryExpected);return this.finish(e)},e.prototype._parseMediaQuery=function(e){var t=this.create(r.MediaQuery),o=!0,s=!1;if(!this.peek(n.TokenType.ParenthesisL)){if(this.acceptIdent("only")||this.acceptIdent("not"),!t.addChild(this._parseIdent()))return null;s=!0,o=this.acceptIdent("and")}for(;o;)if(t.addChild(this._parseMediaContentStart()))o=this.acceptIdent("and");else{if(!this.accept(n.TokenType.ParenthesisL))return s?this.finish(t,i.ParseError.LeftParenthesisExpected,[],e):null;if(!t.addChild(this._parseMediaFeatureName()))return this.finish(t,i.ParseError.IdentifierExpected,[],e);if(this.accept(n.TokenType.Colon)&&!t.addChild(this._parseExpr()))return this.finish(t,i.ParseError.TermExpected,[],e);if(!this.accept(n.TokenType.ParenthesisR))return this.finish(t,i.ParseError.RightParenthesisExpected,[],e);o=this.acceptIdent("and")}return this.finish(t)},e.prototype._parseMediaContentStart=function(){return null},e.prototype._parseMediaFeatureName=function(){return this._parseIdent()},e.prototype._parseMedium=function(){var e=this.create(r.Node);return e.addChild(this._parseIdent())?this.finish(e):null},e.prototype._parsePageDeclaration=function(){return this._parsePageMarginBox()||this._parseRuleSetDeclaration()},e.prototype._parsePage=function(){if(!this.peekKeyword("@page"))return null;var e=this.create(r.Page);if(this.consumeToken(),e.addChild(this._parsePageSelector()))for(;this.accept(n.TokenType.Comma);)if(!e.addChild(this._parsePageSelector()))return this.finish(e,i.ParseError.IdentifierExpected);return this._parseBody(e,this._parsePageDeclaration.bind(this))},e.prototype._parsePageMarginBox=function(){if(!this.peek(n.TokenType.AtKeyword))return null;var e=this.create(r.PageBoxMarginBox);return this.acceptOneKeyword(o.pageBoxDirectives)||this.markError(e,i.ParseError.UnknownAtRule,[],[n.TokenType.CurlyL]),this._parseBody(e,this._parseRuleSetDeclaration.bind(this))},e.prototype._parsePageSelector=function(){if(!this.peek(n.TokenType.Ident)&&!this.peek(n.TokenType.Colon))return null;var e=this.create(r.Node);return e.addChild(this._parseIdent()),this.accept(n.TokenType.Colon)&&!e.addChild(this._parseIdent())?this.finish(e,i.ParseError.IdentifierExpected):this.finish(e)},e.prototype._parseDocument=function(){if(!this.peekKeyword("@-moz-document"))return null;var e=this.create(r.Document);return this.consumeToken(),this.resync([],[n.TokenType.CurlyL]),this._parseBody(e,this._parseStylesheetStatement.bind(this))},e.prototype._parseUnknownAtRule=function(){if(!this.peek(n.TokenType.AtKeyword))return null;var e=this.create(r.UnknownAtRule);e.addChild(this._parseUnknownAtRuleName());var t=0,o=0,s=0,a=0;e:for(;;){switch(this.token.type){case n.TokenType.SemiColon:if(0===o&&0===s&&0===a)break e;break;case n.TokenType.EOF:return o>0?this.finish(e,i.ParseError.RightCurlyExpected):a>0?this.finish(e,i.ParseError.RightSquareBracketExpected):s>0?this.finish(e,i.ParseError.RightParenthesisExpected):this.finish(e);case n.TokenType.CurlyL:t++,o++;break;case n.TokenType.CurlyR:if(o--,t>0&&0===o){if(this.consumeToken(),a>0)return this.finish(e,i.ParseError.RightSquareBracketExpected);if(s>0)return this.finish(e,i.ParseError.RightParenthesisExpected);break e}if(o<0){if(0===s&&0===a)break e;return this.finish(e,i.ParseError.LeftCurlyExpected)}break;case n.TokenType.ParenthesisL:s++;break;case n.TokenType.ParenthesisR:if(--s<0)return this.finish(e,i.ParseError.LeftParenthesisExpected);break;case n.TokenType.BracketL:a++;break;case n.TokenType.BracketR:if(--a<0)return this.finish(e,i.ParseError.LeftSquareBracketExpected)}this.consumeToken()}return e},e.prototype._parseUnknownAtRuleName=function(){var e=this.create(r.Node);return this.accept(n.TokenType.AtKeyword)?this.finish(e):e},e.prototype._parseOperator=function(){if(this.peekDelim("/")||this.peekDelim("*")||this.peekDelim("+")||this.peekDelim("-")||this.peek(n.TokenType.Dashmatch)||this.peek(n.TokenType.Includes)||this.peek(n.TokenType.SubstringOperator)||this.peek(n.TokenType.PrefixOperator)||this.peek(n.TokenType.SuffixOperator)||this.peekDelim("=")){var e=this.createNode(r.NodeType.Operator);return this.consumeToken(),this.finish(e)}return null},e.prototype._parseUnaryOperator=function(){if(!this.peekDelim("+")&&!this.peekDelim("-"))return null;var e=this.create(r.Node);return this.consumeToken(),this.finish(e)},e.prototype._parseCombinator=function(){if(this.peekDelim(">")){var e=this.create(r.Node);this.consumeToken();var t=this.mark();if(!this.hasWhitespace()&&this.acceptDelim(">")){if(!this.hasWhitespace()&&this.acceptDelim(">"))return e.type=r.NodeType.SelectorCombinatorShadowPiercingDescendant,this.finish(e);this.restoreAtMark(t)}return e.type=r.NodeType.SelectorCombinatorParent,this.finish(e)}if(this.peekDelim("+")){e=this.create(r.Node);return this.consumeToken(),e.type=r.NodeType.SelectorCombinatorSibling,this.finish(e)}if(this.peekDelim("~")){e=this.create(r.Node);return this.consumeToken(),e.type=r.NodeType.SelectorCombinatorAllSiblings,this.finish(e)}if(this.peekDelim("/")){e=this.create(r.Node);this.consumeToken();t=this.mark();if(!this.hasWhitespace()&&this.acceptIdent("deep")&&!this.hasWhitespace()&&this.acceptDelim("/"))return e.type=r.NodeType.SelectorCombinatorShadowPiercingDescendant,this.finish(e);this.restoreAtMark(t)}return null},e.prototype._parseSimpleSelector=function(){var e=this.create(r.SimpleSelector),t=0;for(e.addChild(this._parseElementName())&&t++;(0===t||!this.hasWhitespace())&&e.addChild(this._parseSimpleSelectorBody());)t++;return t>0?this.finish(e):null},e.prototype._parseSimpleSelectorBody=function(){return this._parsePseudo()||this._parseHash()||this._parseClass()||this._parseAttrib()},e.prototype._parseSelectorIdent=function(){return this._parseIdent()},e.prototype._parseHash=function(){if(!this.peek(n.TokenType.Hash)&&!this.peekDelim("#"))return null;var e=this.createNode(r.NodeType.IdentifierSelector);if(this.acceptDelim("#")){if(this.hasWhitespace()||!e.addChild(this._parseSelectorIdent()))return this.finish(e,i.ParseError.IdentifierExpected)}else this.consumeToken();return this.finish(e)},e.prototype._parseClass=function(){if(!this.peekDelim("."))return null;var e=this.createNode(r.NodeType.ClassSelector);return this.consumeToken(),this.hasWhitespace()||!e.addChild(this._parseSelectorIdent())?this.finish(e,i.ParseError.IdentifierExpected):this.finish(e)},e.prototype._parseElementName=function(){var e=this.mark(),t=this.createNode(r.NodeType.ElementNameSelector);return t.addChild(this._parseNamespacePrefix()),t.addChild(this._parseSelectorIdent())||this.acceptDelim("*")?this.finish(t):(this.restoreAtMark(e),null)},e.prototype._parseNamespacePrefix=function(){var e=this.mark(),t=this.createNode(r.NodeType.NamespacePrefix);return!t.addChild(this._parseIdent())&&this.acceptDelim("*"),this.acceptDelim("|")?this.finish(t):(this.restoreAtMark(e),null)},e.prototype._parseAttrib=function(){if(!this.peek(n.TokenType.BracketL))return null;var e=this.create(r.AttributeSelector);return this.consumeToken(),e.setNamespacePrefix(this._parseNamespacePrefix()),e.setIdentifier(this._parseIdent())?(e.setOperator(this._parseOperator())&&(e.setValue(this._parseBinaryExpr()),this.acceptIdent("i")),this.accept(n.TokenType.BracketR)?this.finish(e):this.finish(e,i.ParseError.RightSquareBracketExpected)):this.finish(e,i.ParseError.IdentifierExpected)},e.prototype._parsePseudo=function(){var e=this,t=this._tryParsePseudoIdentifier();if(t){if(!this.hasWhitespace()&&this.accept(n.TokenType.ParenthesisL)){if(t.addChild(this.try((function(){var t=e.create(r.Node);if(!t.addChild(e._parseSelector(!1)))return null;for(;e.accept(n.TokenType.Comma)&&t.addChild(e._parseSelector(!1)););return e.peek(n.TokenType.ParenthesisR)?e.finish(t):null}))||this._parseBinaryExpr()),!this.accept(n.TokenType.ParenthesisR))return this.finish(t,i.ParseError.RightParenthesisExpected)}return this.finish(t)}return null},e.prototype._tryParsePseudoIdentifier=function(){if(!this.peek(n.TokenType.Colon))return null;var e=this.mark(),t=this.createNode(r.NodeType.PseudoSelector);return this.consumeToken(),this.hasWhitespace()?(this.restoreAtMark(e),null):(this.accept(n.TokenType.Colon)&&this.hasWhitespace()&&this.markError(t,i.ParseError.IdentifierExpected),t.addChild(this._parseIdent())||this.markError(t,i.ParseError.IdentifierExpected),t)},e.prototype._tryParsePrio=function(){var e=this.mark(),t=this._parsePrio();return t||(this.restoreAtMark(e),null)},e.prototype._parsePrio=function(){if(!this.peek(n.TokenType.Exclamation))return null;var e=this.createNode(r.NodeType.Prio);return this.accept(n.TokenType.Exclamation)&&this.acceptIdent("important")?this.finish(e):null},e.prototype._parseExpr=function(e){void 0===e&&(e=!1);var t=this.create(r.Expression);if(!t.addChild(this._parseBinaryExpr()))return null;for(;;){if(this.peek(n.TokenType.Comma)){if(e)return this.finish(t);this.consumeToken()}if(!t.addChild(this._parseBinaryExpr()))break}return this.finish(t)},e.prototype._parseNamedLine=function(){if(!this.peek(n.TokenType.BracketL))return null;var e=this.createNode(r.NodeType.GridLine);for(this.consumeToken();e.addChild(this._parseIdent()););return this.accept(n.TokenType.BracketR)?this.finish(e):this.finish(e,i.ParseError.RightSquareBracketExpected)},e.prototype._parseBinaryExpr=function(e,t){var n=this.create(r.BinaryExpression);if(!n.setLeft(e||this._parseTerm()))return null;if(!n.setOperator(t||this._parseOperator()))return this.finish(n);if(!n.setRight(this._parseTerm()))return this.finish(n,i.ParseError.TermExpected);n=this.finish(n);var o=this._parseOperator();return o&&(n=this._parseBinaryExpr(n,o)),this.finish(n)},e.prototype._parseTerm=function(){var e=this.create(r.Term);return e.setOperator(this._parseUnaryOperator()),e.setExpression(this._parseTermExpression())?this.finish(e):null},e.prototype._parseTermExpression=function(){return this._parseURILiteral()||this._parseFunction()||this._parseIdent()||this._parseStringLiteral()||this._parseNumeric()||this._parseHexColor()||this._parseOperation()||this._parseNamedLine()},e.prototype._parseOperation=function(){if(!this.peek(n.TokenType.ParenthesisL))return null;var e=this.create(r.Node);return this.consumeToken(),e.addChild(this._parseExpr()),this.accept(n.TokenType.ParenthesisR)?this.finish(e):this.finish(e,i.ParseError.RightParenthesisExpected)},e.prototype._parseNumeric=function(){if(this.peek(n.TokenType.Num)||this.peek(n.TokenType.Percentage)||this.peek(n.TokenType.Resolution)||this.peek(n.TokenType.Length)||this.peek(n.TokenType.EMS)||this.peek(n.TokenType.EXS)||this.peek(n.TokenType.Angle)||this.peek(n.TokenType.Time)||this.peek(n.TokenType.Dimension)||this.peek(n.TokenType.Freq)){var e=this.create(r.NumericValue);return this.consumeToken(),this.finish(e)}return null},e.prototype._parseStringLiteral=function(){if(!this.peek(n.TokenType.String)&&!this.peek(n.TokenType.BadString))return null;var e=this.createNode(r.NodeType.StringLiteral);return this.consumeToken(),this.finish(e)},e.prototype._parseURILiteral=function(){if(!this.peekRegExp(n.TokenType.Ident,/^url(-prefix)?$/i))return null;var e=this.mark(),t=this.createNode(r.NodeType.URILiteral);return this.accept(n.TokenType.Ident),this.hasWhitespace()||!this.peek(n.TokenType.ParenthesisL)?(this.restoreAtMark(e),null):(this.scanner.inURL=!0,this.consumeToken(),t.addChild(this._parseURLArgument()),this.scanner.inURL=!1,this.accept(n.TokenType.ParenthesisR)?this.finish(t):this.finish(t,i.ParseError.RightParenthesisExpected))},e.prototype._parseURLArgument=function(){var e=this.create(r.Node);return this.accept(n.TokenType.String)||this.accept(n.TokenType.BadString)||this.acceptUnquotedString()?this.finish(e):null},e.prototype._parseIdent=function(e){if(!this.peek(n.TokenType.Ident))return null;var t=this.create(r.Identifier);return e&&(t.referenceTypes=e),t.isCustomProperty=this.peekRegExp(n.TokenType.Ident,/^--/),this.consumeToken(),this.finish(t)},e.prototype._parseFunction=function(){var e=this.mark(),t=this.create(r.Function);if(!t.setIdentifier(this._parseFunctionIdentifier()))return null;if(this.hasWhitespace()||!this.accept(n.TokenType.ParenthesisL))return this.restoreAtMark(e),null;if(t.getArguments().addChild(this._parseFunctionArgument()))for(;this.accept(n.TokenType.Comma)&&!this.peek(n.TokenType.ParenthesisR);)t.getArguments().addChild(this._parseFunctionArgument())||this.markError(t,i.ParseError.ExpressionExpected);return this.accept(n.TokenType.ParenthesisR)?this.finish(t):this.finish(t,i.ParseError.RightParenthesisExpected)},e.prototype._parseFunctionIdentifier=function(){if(!this.peek(n.TokenType.Ident))return null;var e=this.create(r.Identifier);if(e.referenceTypes=[r.ReferenceType.Function],this.acceptIdent("progid")){if(this.accept(n.TokenType.Colon))for(;this.accept(n.TokenType.Ident)&&this.acceptDelim("."););return this.finish(e)}return this.consumeToken(),this.finish(e)},e.prototype._parseFunctionArgument=function(){var e=this.create(r.FunctionArgument);return e.setValue(this._parseExpr(!0))?this.finish(e):null},e.prototype._parseHexColor=function(){if(this.peekRegExp(n.TokenType.Hash,/^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{4}|[A-Fa-f0-9]{6}|[A-Fa-f0-9]{8})$/g)){var e=this.create(r.HexColorValue);return this.consumeToken(),this.finish(e)}return null},e}();t.Parser=a})),function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define("vscode-css-languageservice/utils/arrays",["require","exports"],e)}((function(e,t){"use strict";function n(e,t){return-1!==e.indexOf(t)}Object.defineProperty(t,"__esModule",{value:!0}),t.findFirst=function(e,t){var n=0,r=e.length;if(0===r)return 0;for(;ne+t||this.offset===e&&this.length===t?this.findInScope(e,t):null},e.prototype.findInScope=function(e,t){void 0===t&&(t=0);var n=e+t,i=r.findFirst(this.children,(function(e){return e.offset>n}));if(0===i)return this;var o=this.children[i-1];return o.offset<=e&&o.offset+o.length>=e+t?o.findInScope(e,t):this},e.prototype.addSymbol=function(e){this.symbols.push(e)},e.prototype.getSymbol=function(e,t){for(var n=0;n0&&(i.arguments=n),i},e.is=function(e){var t=e;return x.defined(t)&&x.string(t.title)&&x.string(t.command)}}(l=t.Command||(t.Command={})),function(e){e.replace=function(e,t){return{range:e,newText:t}},e.insert=function(e,t){return{range:{start:e,end:e},newText:t}},e.del=function(e){return{range:e,newText:""}},e.is=function(e){var t=e;return x.objectLiteral(t)&&x.string(t.newText)&&r.is(t.range)}}(c=t.TextEdit||(t.TextEdit={})),function(e){e.create=function(e,t){return{textDocument:e,edits:t}},e.is=function(e){var t=e;return x.defined(t)&&f.is(t.textDocument)&&Array.isArray(t.edits)}}(d=t.TextDocumentEdit||(t.TextDocumentEdit={})),function(e){e.create=function(e,t){var n={kind:"create",uri:e};return void 0===t||void 0===t.overwrite&&void 0===t.ignoreIfExists||(n.options=t),n},e.is=function(e){var t=e;return t&&"create"===t.kind&&x.string(t.uri)&&(void 0===t.options||(void 0===t.options.overwrite||x.boolean(t.options.overwrite))&&(void 0===t.options.ignoreIfExists||x.boolean(t.options.ignoreIfExists)))}}(p=t.CreateFile||(t.CreateFile={})),function(e){e.create=function(e,t,n){var r={kind:"rename",oldUri:e,newUri:t};return void 0===n||void 0===n.overwrite&&void 0===n.ignoreIfExists||(r.options=n),r},e.is=function(e){var t=e;return t&&"rename"===t.kind&&x.string(t.oldUri)&&x.string(t.newUri)&&(void 0===t.options||(void 0===t.options.overwrite||x.boolean(t.options.overwrite))&&(void 0===t.options.ignoreIfExists||x.boolean(t.options.ignoreIfExists)))}}(h=t.RenameFile||(t.RenameFile={})),function(e){e.create=function(e,t){var n={kind:"delete",uri:e};return void 0===t||void 0===t.recursive&&void 0===t.ignoreIfNotExists||(n.options=t),n},e.is=function(e){var t=e;return t&&"delete"===t.kind&&x.string(t.uri)&&(void 0===t.options||(void 0===t.options.recursive||x.boolean(t.options.recursive))&&(void 0===t.options.ignoreIfNotExists||x.boolean(t.options.ignoreIfNotExists)))}}(u=t.DeleteFile||(t.DeleteFile={})),function(e){e.is=function(e){var t=e;return t&&(void 0!==t.changes||void 0!==t.documentChanges)&&(void 0===t.documentChanges||t.documentChanges.every((function(e){return x.string(e.kind)?p.is(e)||h.is(e)||u.is(e):d.is(e)})))}}(m=t.WorkspaceEdit||(t.WorkspaceEdit={}));var f,g,b,y,v=function(){function e(e){this.edits=e}return e.prototype.insert=function(e,t){this.edits.push(c.insert(e,t))},e.prototype.replace=function(e,t){this.edits.push(c.replace(e,t))},e.prototype.delete=function(e){this.edits.push(c.del(e))},e.prototype.add=function(e){this.edits.push(e)},e.prototype.all=function(){return this.edits},e.prototype.clear=function(){this.edits.splice(0,this.edits.length)},e}(),w=function(){function e(e){var t=this;this._textEditChanges=Object.create(null),e&&(this._workspaceEdit=e,e.documentChanges?e.documentChanges.forEach((function(e){if(d.is(e)){var n=new v(e.edits);t._textEditChanges[e.textDocument.uri]=n}})):e.changes&&Object.keys(e.changes).forEach((function(n){var r=new v(e.changes[n]);t._textEditChanges[n]=r})))}return Object.defineProperty(e.prototype,"edit",{get:function(){return this._workspaceEdit},enumerable:!0,configurable:!0}),e.prototype.getTextEditChange=function(e){if(f.is(e)){if(this._workspaceEdit||(this._workspaceEdit={documentChanges:[]}),!this._workspaceEdit.documentChanges)throw new Error("Workspace edit is not configured for document changes.");var t=e;if(!(r=this._textEditChanges[t.uri])){var n={textDocument:t,edits:i=[]};this._workspaceEdit.documentChanges.push(n),r=new v(i),this._textEditChanges[t.uri]=r}return r}if(this._workspaceEdit||(this._workspaceEdit={changes:Object.create(null)}),!this._workspaceEdit.changes)throw new Error("Workspace edit is not configured for normal text edit changes.");var r;if(!(r=this._textEditChanges[e])){var i=[];this._workspaceEdit.changes[e]=i,r=new v(i),this._textEditChanges[e]=r}return r},e.prototype.createFile=function(e,t){this.checkDocumentChanges(),this._workspaceEdit.documentChanges.push(p.create(e,t))},e.prototype.renameFile=function(e,t,n){this.checkDocumentChanges(),this._workspaceEdit.documentChanges.push(h.create(e,t,n))},e.prototype.deleteFile=function(e,t){this.checkDocumentChanges(),this._workspaceEdit.documentChanges.push(u.create(e,t))},e.prototype.checkDocumentChanges=function(){if(!this._workspaceEdit||!this._workspaceEdit.documentChanges)throw new Error("Workspace edit is not configured for document changes.")},e}();t.WorkspaceChange=w,function(e){e.create=function(e){return{uri:e}},e.is=function(e){var t=e;return x.defined(t)&&x.string(t.uri)}}(t.TextDocumentIdentifier||(t.TextDocumentIdentifier={})),function(e){e.create=function(e,t){return{uri:e,version:t}},e.is=function(e){var t=e;return x.defined(t)&&x.string(t.uri)&&(null===t.version||x.number(t.version))}}(f=t.VersionedTextDocumentIdentifier||(t.VersionedTextDocumentIdentifier={})),function(e){e.create=function(e,t,n,r){return{uri:e,languageId:t,version:n,text:r}},e.is=function(e){var t=e;return x.defined(t)&&x.string(t.uri)&&x.string(t.languageId)&&x.number(t.version)&&x.string(t.text)}}(t.TextDocumentItem||(t.TextDocumentItem={})),function(e){e.PlainText="plaintext",e.Markdown="markdown"}(g=t.MarkupKind||(t.MarkupKind={})),function(e){e.is=function(t){var n=t;return n===e.PlainText||n===e.Markdown}}(g=t.MarkupKind||(t.MarkupKind={})),function(e){e.is=function(e){var t=e;return x.objectLiteral(e)&&g.is(t.kind)&&x.string(t.value)}}(b=t.MarkupContent||(t.MarkupContent={})),function(e){e.Text=1,e.Method=2,e.Function=3,e.Constructor=4,e.Field=5,e.Variable=6,e.Class=7,e.Interface=8,e.Module=9,e.Property=10,e.Unit=11,e.Value=12,e.Enum=13,e.Keyword=14,e.Snippet=15,e.Color=16,e.File=17,e.Reference=18,e.Folder=19,e.EnumMember=20,e.Constant=21,e.Struct=22,e.Event=23,e.Operator=24,e.TypeParameter=25}(t.CompletionItemKind||(t.CompletionItemKind={})),function(e){e.PlainText=1,e.Snippet=2}(t.InsertTextFormat||(t.InsertTextFormat={})),function(e){e.Deprecated=1}(t.CompletionItemTag||(t.CompletionItemTag={})),function(e){e.create=function(e){return{label:e}}}(t.CompletionItem||(t.CompletionItem={})),function(e){e.create=function(e,t){return{items:e||[],isIncomplete:!!t}}}(t.CompletionList||(t.CompletionList={})),function(e){e.fromPlainText=function(e){return e.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")},e.is=function(e){var t=e;return x.string(t)||x.objectLiteral(t)&&x.string(t.language)&&x.string(t.value)}}(y=t.MarkedString||(t.MarkedString={})),function(e){e.is=function(e){var t=e;return!!t&&x.objectLiteral(t)&&(b.is(t.contents)||y.is(t.contents)||x.typedArray(t.contents,y.is))&&(void 0===e.range||r.is(e.range))}}(t.Hover||(t.Hover={})),function(e){e.create=function(e,t){return t?{label:e,documentation:t}:{label:e}}}(t.ParameterInformation||(t.ParameterInformation={})),function(e){e.create=function(e,t){for(var n=[],r=2;r=0;s--){var a=i[s],l=e.offsetAt(a.range.start),c=e.offsetAt(a.range.end);if(!(c<=o))throw new Error("Overlapping edit");r=r.substring(0,l)+a.newText+r.substring(c,r.length),o=l}return r}}(t.TextDocument||(t.TextDocument={}));var x,S=function(){function e(e,t,n,r){this._uri=e,this._languageId=t,this._version=n,this._content=r,this._lineOffsets=void 0}return Object.defineProperty(e.prototype,"uri",{get:function(){return this._uri},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"languageId",{get:function(){return this._languageId},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"version",{get:function(){return this._version},enumerable:!0,configurable:!0}),e.prototype.getText=function(e){if(e){var t=this.offsetAt(e.start),n=this.offsetAt(e.end);return this._content.substring(t,n)}return this._content},e.prototype.update=function(e,t){this._content=e.text,this._version=t,this._lineOffsets=void 0},e.prototype.getLineOffsets=function(){if(void 0===this._lineOffsets){for(var e=[],t=this._content,n=!0,r=0;r0&&e.push(t.length),this._lineOffsets=e}return this._lineOffsets},e.prototype.positionAt=function(e){e=Math.max(Math.min(e,this._content.length),0);var t=this.getLineOffsets(),r=0,i=t.length;if(0===i)return n.create(0,e);for(;re?i=o:r=o+1}var s=r-1;return n.create(s,e-t[s])},e.prototype.offsetAt=function(e){var t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;var n=t[e.line],r=e.line+1e?r=i:n=i+1}var o=n-1;return{line:o,character:e-t[o]}},e.prototype.offsetAt=function(e){var t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;var n=t[e.line],r=e.line+1n.line||t.line===n.line&&t.character>n.character?{start:n,end:t}:e}function s(e){var t=o(e.range);return t!==e.range?{newText:e.newText,range:t}:e}!function(e){e.create=function(e,t,r,i){return new n(e,t,r,i)},e.update=function(e,t,r){if(e instanceof n)return e.update(t,r),e;throw new Error("TextDocument.update: document must be created by TextDocument.create")},e.applyEdits=function(e,t){for(var n=e.getText(),i=0,o=[],a=0,l=r(t.map(s),(function(e,t){var n=e.range.start.line-t.range.start.line;return 0===n?e.range.start.character-t.range.start.character:n}));ai&&o.push(n.substring(i,d)),c.newText.length&&o.push(c.newText),i=e.offsetAt(c.range.end)}return o.push(n.substr(i)),o.join("")}}(t.TextDocument||(t.TextDocument={}))})),define("vscode-languageserver-textdocument",["vscode-languageserver-textdocument/main"],(function(e){return e})),function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define("vscode-css-languageservice/cssLanguageTypes",["require","exports","vscode-languageserver-types","vscode-languageserver-textdocument","vscode-languageserver-types"],e)}((function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=e("vscode-languageserver-types"),r=e("vscode-languageserver-textdocument");t.TextDocument=r.TextDocument,function(e){for(var n in e)t.hasOwnProperty(n)||(t[n]=e[n])}(e("vscode-languageserver-types")),function(e){e.LATEST={textDocument:{completion:{completionItem:{documentationFormat:[n.MarkupKind.Markdown,n.MarkupKind.PlainText]}},hover:{contentFormat:[n.MarkupKind.Markdown,n.MarkupKind.PlainText]}}}}(t.ClientCapabilities||(t.ClientCapabilities={})),function(e){e[e.Unknown=0]="Unknown",e[e.File=1]="File",e[e.Directory=2]="Directory",e[e.SymbolicLink=64]="SymbolicLink"}(t.FileType||(t.FileType={}))}));__extends=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define("vscode-uri/index",["require","exports"],e)}((function(e,t){"use strict";var n,r;if(Object.defineProperty(t,"__esModule",{value:!0}),"object"==typeof process)r="win32"===process.platform;else if("object"==typeof navigator){var i=navigator.userAgent;r=i.indexOf("Windows")>=0}var o=/^\w[\w\d+.-]*$/,s=/^\//,a=/^\/\//;var l="",c="/",d=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/,p=function(){function e(e,t,n,r,i,d){void 0===d&&(d=!1),"object"==typeof e?(this.scheme=e.scheme||l,this.authority=e.authority||l,this.path=e.path||l,this.query=e.query||l,this.fragment=e.fragment||l):(this.scheme=function(e,t){return e||t?e:"file"}(e,d),this.authority=t||l,this.path=function(e,t){switch(e){case"https":case"http":case"file":t?t[0]!==c&&(t=c+t):t=c}return t}(this.scheme,n||l),this.query=r||l,this.fragment=i||l,function(e,t){if(!e.scheme&&t)throw new Error('[UriError]: Scheme is missing: {scheme: "", authority: "'+e.authority+'", path: "'+e.path+'", query: "'+e.query+'", fragment: "'+e.fragment+'"}');if(e.scheme&&!o.test(e.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(e.path)if(e.authority){if(!s.test(e.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(a.test(e.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}(this,d))}return e.isUri=function(t){return t instanceof e||!!t&&("string"==typeof t.authority&&"string"==typeof t.fragment&&"string"==typeof t.path&&"string"==typeof t.query&&"string"==typeof t.scheme&&"function"==typeof t.fsPath&&"function"==typeof t.with&&"function"==typeof t.toString)},Object.defineProperty(e.prototype,"fsPath",{get:function(){return b(this,!1)},enumerable:!0,configurable:!0}),e.prototype.with=function(e){if(!e)return this;var t=e.scheme,n=e.authority,r=e.path,i=e.query,o=e.fragment;return void 0===t?t=this.scheme:null===t&&(t=l),void 0===n?n=this.authority:null===n&&(n=l),void 0===r?r=this.path:null===r&&(r=l),void 0===i?i=this.query:null===i&&(i=l),void 0===o?o=this.fragment:null===o&&(o=l),t===this.scheme&&n===this.authority&&r===this.path&&i===this.query&&o===this.fragment?this:new u(t,n,r,i,o)},e.parse=function(e,t){void 0===t&&(t=!1);var n=d.exec(e);return n?new u(n[2]||l,x(n[4]||l),x(n[5]||l),x(n[7]||l),x(n[9]||l),t):new u(l,l,l,l,l)},e.file=function(e){var t=l;if(r&&(e=e.replace(/\\/g,c)),e[0]===c&&e[1]===c){var n=e.indexOf(c,2);-1===n?(t=e.substring(2),e=c):(t=e.substring(2,n),e=e.substring(n)||c)}return new u("file",t,e,l,l)},e.from=function(e){return new u(e.scheme,e.authority,e.path,e.query,e.fragment)},e.prototype.toString=function(e){return void 0===e&&(e=!1),y(this,e)},e.prototype.toJSON=function(){return this},e.revive=function(t){if(t){if(t instanceof e)return t;var n=new u(t);return n._formatted=t.external,n._fsPath=t._sep===h?t.fsPath:null,n}return t},e}();t.URI=p;var h=r?1:void 0,u=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t._formatted=null,t._fsPath=null,t}return __extends(t,e),Object.defineProperty(t.prototype,"fsPath",{get:function(){return this._fsPath||(this._fsPath=b(this,!1)),this._fsPath},enumerable:!0,configurable:!0}),t.prototype.toString=function(e){return void 0===e&&(e=!1),e?y(this,!0):(this._formatted||(this._formatted=y(this,!1)),this._formatted)},t.prototype.toJSON=function(){var e={$mid:1};return this._fsPath&&(e.fsPath=this._fsPath,e._sep=h),this._formatted&&(e.external=this._formatted),this.path&&(e.path=this.path),this.scheme&&(e.scheme=this.scheme),this.authority&&(e.authority=this.authority),this.query&&(e.query=this.query),this.fragment&&(e.fragment=this.fragment),e},t}(p),m=((n={})[58]="%3A",n[47]="%2F",n[63]="%3F",n[35]="%23",n[91]="%5B",n[93]="%5D",n[64]="%40",n[33]="%21",n[36]="%24",n[38]="%26",n[39]="%27",n[40]="%28",n[41]="%29",n[42]="%2A",n[43]="%2B",n[44]="%2C",n[59]="%3B",n[61]="%3D",n[32]="%20",n);function f(e,t){for(var n=void 0,r=-1,i=0;i=97&&o<=122||o>=65&&o<=90||o>=48&&o<=57||45===o||46===o||95===o||126===o||t&&47===o)-1!==r&&(n+=encodeURIComponent(e.substring(r,i)),r=-1),void 0!==n&&(n+=e.charAt(i));else{void 0===n&&(n=e.substr(0,i));var s=m[o];void 0!==s?(-1!==r&&(n+=encodeURIComponent(e.substring(r,i)),r=-1),n+=s):-1===r&&(r=i)}}return-1!==r&&(n+=encodeURIComponent(e.substring(r))),void 0!==n?n:e}function g(e){for(var t=void 0,n=0;n1&&"file"===e.scheme?"//"+e.authority+e.path:47===e.path.charCodeAt(0)&&(e.path.charCodeAt(1)>=65&&e.path.charCodeAt(1)<=90||e.path.charCodeAt(1)>=97&&e.path.charCodeAt(1)<=122)&&58===e.path.charCodeAt(2)?t?e.path.substr(1):e.path[1].toLowerCase()+e.path.substr(2):e.path,r&&(n=n.replace(/\//g,"\\")),n}function y(e,t){var n=t?g:f,r="",i=e.scheme,o=e.authority,s=e.path,a=e.query,l=e.fragment;if(i&&(r+=i,r+=":"),(o||"file"===i)&&(r+=c,r+=c),o){var d=o.indexOf("@");if(-1!==d){var p=o.substr(0,d);o=o.substr(d+1),-1===(d=p.indexOf(":"))?r+=n(p,!1):(r+=n(p.substr(0,d),!1),r+=":",r+=n(p.substr(d+1),!1)),r+="@"}-1===(d=(o=o.toLowerCase()).indexOf(":"))?r+=n(o,!1):(r+=n(o.substr(0,d),!1),r+=o.substr(d))}if(s){if(s.length>=3&&47===s.charCodeAt(0)&&58===s.charCodeAt(2))(h=s.charCodeAt(1))>=65&&h<=90&&(s="/"+String.fromCharCode(h+32)+":"+s.substr(3));else if(s.length>=2&&58===s.charCodeAt(1)){var h;(h=s.charCodeAt(0))>=65&&h<=90&&(s=String.fromCharCode(h+32)+":"+s.substr(2))}r+=n(s,!0)}return a&&(r+="?",r+=n(a,!1)),l&&(r+="#",r+=t?l:f(l,!1)),r}function v(e){try{return decodeURIComponent(e)}catch(t){return e.length>3?e.substr(0,3)+v(e.substr(3)):e}}t.uriToFsPath=b;var w=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function x(e){return e.match(w)?e.replace(w,(function(e){return v(e)})):e}})),define("vscode-uri",["vscode-uri/index"],(function(e){return e})),function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define("vscode-css-languageservice/utils/resources",["require","exports","vscode-uri"],e)}((function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=e("vscode-uri"),r="/".charCodeAt(0),i=".".charCodeAt(0);function o(e){return e.charCodeAt(0)===r}function s(e){for(var t=[],n=0,r=e;n1&&0===e[e.length-1].length&&t.push("");var s=t.join("/");return 0===e[0].length&&(s="/"+s),s}function a(e){for(var t=[],r=1;r=0;t--){var n=e.charCodeAt(t);if(n===i){if(t>0&&e.charCodeAt(t-1)!==r)return e.substr(t);break}if(n===r)break}return""},t.resolvePath=function(e,t){if(o(t)){var r=n.URI.parse(e),i=t.split("/");return r.with({path:s(i)}).toString()}return a(e,t)},t.normalizePath=s,t.joinPath=a}));var __awaiter=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{l(r.next(e))}catch(e){o(e)}}function a(e){try{l(r.throw(e))}catch(e){o(e)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}l((r=r.apply(e,t||[])).next())}))},__generator=this&&this.__generator||function(e,t){var n,r,i,o,s={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function a(o){return function(a){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;s;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return s.label++,{value:o[1],done:!1};case 5:s.label++,r=o[1],o=[0];continue;case 7:o=s.ops.pop(),s.trys.pop();continue;default:if(!(i=s.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){s=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){s=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]=0&&-1===' \t\n\r":{[()]},*>+'.indexOf(r.charAt(n));)n--;return r.substring(n+1,t)}(e,this.offset),this.defaultReplaceRange=a.Range.create(a.Position.create(this.position.line,this.position.character-this.currentWord.length),this.position),this.textDocument=e,this.styleSheet=n;try{var i={isIncomplete:!1,items:[]};this.nodePath=r.getNodePath(this.styleSheet,this.offset);for(var o=this.nodePath.length-1;o>=0;o--){var s=this.nodePath[o];if(s instanceof r.Property)this.getCompletionsForDeclarationProperty(s.getParent(),i);else if(s instanceof r.Expression)s.parent instanceof r.Interpolation?this.getVariableProposals(null,i):this.getCompletionsForExpression(s,i);else if(s instanceof r.SimpleSelector){var l=s.findAParent(r.NodeType.ExtendsReference,r.NodeType.Ruleset);if(l)if(l.type===r.NodeType.ExtendsReference)this.getCompletionsForExtendsReference(l,s,i);else{var c=l;this.getCompletionsForSelector(c,c&&c.isNested(),i)}}else if(s instanceof r.FunctionArgument)this.getCompletionsForFunctionArgument(s,s.getParent(),i);else if(s instanceof r.Declarations)this.getCompletionsForDeclarations(s,i);else if(s instanceof r.VariableDeclaration)this.getCompletionsForVariableDeclaration(s,i);else if(s instanceof r.RuleSet)this.getCompletionsForRuleSet(s,i);else if(s instanceof r.Interpolation)this.getCompletionsForInterpolation(s,i);else if(s instanceof r.FunctionDeclaration)this.getCompletionsForFunctionDeclaration(s,i);else if(s instanceof r.MixinReference)this.getCompletionsForMixinReference(s,i);else if(s instanceof r.Function)this.getCompletionsForFunctionArgument(null,s,i);else if(s instanceof r.Supports)this.getCompletionsForSupports(s,i);else if(s instanceof r.SupportsCondition)this.getCompletionsForSupportsCondition(s,i);else if(s instanceof r.ExtendsReference)this.getCompletionsForExtendsReference(s,null,i);else if(s.type===r.NodeType.URILiteral)this.getCompletionForUriLiteralValue(s,i);else if(null===s.parent)this.getCompletionForTopLevel(i);else{if(s.type!==r.NodeType.StringLiteral||!this.isImportPathParent(s.parent.type))continue;this.getCompletionForImportPath(s,i)}if(i.items.length>0||this.offset>s.offset)return this.finalize(i)}return this.getCompletionsForStylesheet(i),0===i.items.length&&this.variablePrefix&&0===this.currentWord.indexOf(this.variablePrefix)&&this.getVariableProposals(null,i),this.finalize(i)}finally{this.position=null,this.currentWord=null,this.textDocument=null,this.styleSheet=null,this.symbolContext=null,this.defaultReplaceRange=null,this.nodePath=null}},e.prototype.isImportPathParent=function(e){return e===r.NodeType.Import},e.prototype.finalize=function(e){return e},e.prototype.findInNodePath=function(){for(var e=[],t=0;t=0;n--){var r=this.nodePath[n];if(-1!==e.indexOf(r.type))return r}return null},e.prototype.getCompletionsForDeclarationProperty=function(e,t){return this.getPropertyProposals(e,t)},e.prototype.getPropertyProposals=function(e,t){var r=this,i=this.isTriggerPropertyValueCompletionEnabled,l=this.isCompletePropertyWithSemicolonEnabled;return this.cssDataManager.getProperties().forEach((function(d){var p,h,u=!1;e?(p=r.getCompletionRange(e.getProperty()),h=d.name,c.isDefined(e.colonPosition)||(h+=": ",u=!0)):(p=r.getCompletionRange(null),h=d.name+": ",u=!0),!e&&l&&(h+="$0;"),e&&!e.semicolonPosition&&l&&r.offset>=r.textDocument.offsetAt(p.end)&&(h+="$0;");var f={label:d.name,documentation:o.getEntryDescription(d,r.doesSupportMarkdown()),tags:m(d)?[a.CompletionItemTag.Deprecated]:[],textEdit:a.TextEdit.replace(p,h),insertTextFormat:a.InsertTextFormat.Snippet,kind:a.CompletionItemKind.Property};d.restrictions||(u=!1),i&&u&&(f.command={title:"Suggest",command:"editor.action.triggerSuggest"});var g=(255-("number"==typeof d.relevance?Math.min(Math.max(d.relevance,0),99):50)).toString(16),b=s.startsWith(d.name,"-")?n.VendorPrefixed:n.Normal;f.sortText=b+"_"+g,t.items.push(f)})),this.completionParticipants.forEach((function(e){e.onCssProperty&&e.onCssProperty({propertyName:r.currentWord,range:r.defaultReplaceRange})})),t},Object.defineProperty(e.prototype,"isTriggerPropertyValueCompletionEnabled",{get:function(){return!this.settings||!this.settings.completion||void 0===this.settings.completion.triggerPropertyValueCompletion||this.settings.completion.triggerPropertyValueCompletion},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isCompletePropertyWithSemicolonEnabled",{get:function(){return!this.settings||!this.settings.completion||void 0===this.settings.completion.completePropertyWithSemicolon||this.settings.completion.completePropertyWithSemicolon},enumerable:!0,configurable:!0}),e.prototype.getCompletionsForDeclarationValue=function(e,t){for(var n=this,i=e.getFullPropertyName(),o=this.cssDataManager.getProperty(i),s=e.getValue()||null;s&&s.hasChildren();)s=s.findChildAtOffset(this.offset,!1);if(this.completionParticipants.forEach((function(e){e.onCssPropertyValue&&e.onCssPropertyValue({propertyName:i,propertyValue:n.currentWord,range:n.getCompletionRange(s)})})),o){if(o.restrictions)for(var l=0,c=o.restrictions;l=e.offset+2&&this.getVariableProposals(null,t),t},e.prototype.getVariableProposals=function(e,t){for(var i=0,o=this.getSymbolContext().findSymbolsAtOffset(this.offset,r.ReferenceType.Variable);i0){var s=this.currentWord.match(/^-?\d[\.\d+]*/);s&&(i=s[0],n.isIncomplete=i.length===this.currentWord.length)}else 0===this.currentWord.length&&(n.isIncomplete=!0);if(t&&t.parent&&t.parent.type===r.NodeType.Term&&(t=t.getParent()),e.restrictions)for(var l=0,c=e.restrictions;l=n.end?this.getCompletionForTopLevel(t):!n||this.offset<=n.offset?this.getCompletionsForSelector(e,e.isNested(),t):this.getCompletionsForDeclarations(e.getDeclarations(),t)},e.prototype.getCompletionsForSelector=function(e,t,i){var l=this,c=this.findInNodePath(r.NodeType.PseudoSelector,r.NodeType.IdentifierSelector,r.NodeType.ClassSelector,r.NodeType.ElementNameSelector);if(!c&&this.offset-this.currentWord.length>0&&":"===this.textDocument.getText()[this.offset-this.currentWord.length-1]&&(this.currentWord=":"+this.currentWord,this.defaultReplaceRange=a.Range.create(a.Position.create(this.position.line,this.position.character-this.currentWord.length),this.position)),this.cssDataManager.getPseudoClasses().forEach((function(e){var t=g(e.name),r={label:e.name,textEdit:a.TextEdit.replace(l.getCompletionRange(c),t),documentation:o.getEntryDescription(e,l.doesSupportMarkdown()),tags:m(e)?[a.CompletionItemTag.Deprecated]:[],kind:a.CompletionItemKind.Function,insertTextFormat:e.name!==t?h:void 0};s.startsWith(e.name,":-")&&(r.sortText=n.VendorPrefixed),i.items.push(r)})),this.cssDataManager.getPseudoElements().forEach((function(e){var t=g(e.name),r={label:e.name,textEdit:a.TextEdit.replace(l.getCompletionRange(c),t),documentation:o.getEntryDescription(e,l.doesSupportMarkdown()),tags:m(e)?[a.CompletionItemTag.Deprecated]:[],kind:a.CompletionItemKind.Function,insertTextFormat:e.name!==t?h:void 0};s.startsWith(e.name,"::-")&&(r.sortText=n.VendorPrefixed),i.items.push(r)})),!t){for(var d=0,p=o.html5Tags;d0){var t=v.substr(e.offset,e.length);return"."!==t.charAt(0)||y[t]||(y[t]=!0,i.items.push({label:t,textEdit:a.TextEdit.replace(l.getCompletionRange(c),t),kind:a.CompletionItemKind.Keyword})),!1}return!0})),e&&e.isNested()){var w=e.getSelectors().findFirstChildBeforeOffset(this.offset);w&&0===e.getSelectors().getChildren().indexOf(w)&&this.getPropertyProposals(null,i)}return i},e.prototype.getCompletionsForDeclarations=function(e,t){if(!e||this.offset===e.offset)return t;var n=e.findFirstChildBeforeOffset(this.offset);if(!n)return this.getCompletionsForDeclarationProperty(null,t);if(n instanceof r.AbstractDeclaration){var i=n;if(!c.isDefined(i.colonPosition)||this.offset<=i.colonPosition)return this.getCompletionsForDeclarationProperty(i,t);if(c.isDefined(i.semicolonPosition)&&i.semicolonPositione.colonPosition&&this.getVariableProposals(e.getValue(),t),t},e.prototype.getCompletionsForExpression=function(e,t){var n=e.getParent();if(n instanceof r.FunctionArgument)return this.getCompletionsForFunctionArgument(n,n.getParent(),t),t;var i=e.findParent(r.NodeType.Declaration);if(!i)return this.getTermProposals(void 0,null,t),t;var o=e.findChildAtOffset(this.offset,!0);return o?o instanceof r.NumericValue||o instanceof r.Identifier?this.getCompletionsForDeclarationValue(i,t):t:this.getCompletionsForDeclarationValue(i,t)},e.prototype.getCompletionsForFunctionArgument=function(e,t,n){var r=t.getIdentifier();return r&&r.matches("var")&&(t.getArguments().hasChildren()&&t.getArguments().getChild(0)!==e||this.getVariableProposalsForCSSVarFunction(n)),n},e.prototype.getCompletionsForFunctionDeclaration=function(e,t){var n=e.getDeclarations();return n&&this.offset>n.offset&&this.offsete.lParent&&(!c.isDefined(e.rParent)||this.offset<=e.rParent)?this.getCompletionsForDeclarationProperty(null,t):t},e.prototype.getCompletionsForSupports=function(e,t){var n=e.getDeclarations();if(!n||this.offset<=n.offset){var i=e.findFirstChildBeforeOffset(this.offset);return i instanceof r.SupportsCondition?this.getCompletionsForSupportsCondition(i,t):t}return this.getCompletionForTopLevel(t)},e.prototype.getCompletionsForExtendsReference=function(e,t,n){return n},e.prototype.getCompletionForUriLiteralValue=function(e,t){var n,r,i;if(e.hasChildren()){var o=e.getChild(0);n=o.getText(),r=this.position,i=this.getCompletionRange(o)}else{n="",r=this.position;var s=this.textDocument.positionAt(e.offset+"url(".length);i=a.Range.create(s,s)}return this.completionParticipants.forEach((function(e){e.onCssURILiteralValue&&e.onCssURILiteralValue({uriValue:n,position:r,range:i})})),t},e.prototype.getCompletionForImportPath=function(e,t){var n=this;return this.completionParticipants.forEach((function(t){t.onCssImportPath&&t.onCssImportPath({pathValue:e.getText(),position:n.position,range:n.getCompletionRange(e)})})),t},e.prototype.doesSupportMarkdown=function(){var e,t,n;if(!c.isDefined(this.supportsMarkdown)){if(!c.isDefined(this.lsOptions.clientCapabilities))return this.supportsMarkdown=!0,this.supportsMarkdown;var r=null===(n=null===(t=null===(e=this.lsOptions.clientCapabilities.textDocument)||void 0===e?void 0:e.completion)||void 0===t?void 0:t.completionItem)||void 0===n?void 0:n.documentationFormat;this.supportsMarkdown=Array.isArray(r)&&-1!==r.indexOf(a.MarkupKind.Markdown)}return this.supportsMarkdown},e}();function m(e){return!(!e.status||"nonstandard"!==e.status&&"obsolete"!==e.status)}t.CSSCompletion=u;var f=function(){function e(){this.entries={}}return e.prototype.add=function(e){this.entries[e]=!0},e.prototype.getEntries=function(){return Object.keys(this.entries)},e}();function g(e){return e.replace(/\(\)$/,"($1)")}var b=function(){function e(e,t){this.entries=e,this.currentOffset=t}return e.prototype.visitNode=function(e){return(e instanceof r.HexColorValue||e instanceof r.Function&&o.isColorConstructor(e))&&(this.currentOffset"),this.writeLine(t,r.join(""))}},e}();!function(e){function t(e){var t=e.match(/^['"](.*)["']$/);return t?t[1]:e}e.ensure=function(e,n){return n+t(e)+n},e.remove=t}(l||(l={}));var d=function(){this.id=0,this.attr=0,this.tag=0};function p(e,t){for(var r=new o,i=0,s=e.getChildren();i1){var p=t.cloneWithParent();r.addChild(p.findRoot()),r=p}r.append(c[d])}}break;case n.NodeType.SelectorPlaceholder:if(a.matches("@at-root"))return r;case n.NodeType.ElementNameSelector:var u=a.getText();r.addAttr("name","*"===u?"element":h(u));break;case n.NodeType.ClassSelector:r.addAttr("class",h(a.getText().substring(1)));break;case n.NodeType.IdentifierSelector:r.addAttr("id",h(a.getText().substring(1)));break;case n.NodeType.MixinDeclaration:r.addAttr("class",a.getName());break;case n.NodeType.PseudoSelector:r.addAttr(h(a.getText()),"");break;case n.NodeType.AttributeSelector:var m=a,f=m.getIdentifier();if(f){var g=m.getValue(),b=m.getOperator(),y=void 0;if(g&&b)switch(h(b.getText())){case"|=":y=l.remove(h(g.getText()))+"-…";break;case"^=":y=l.remove(h(g.getText()))+"…";break;case"$=":y="…"+l.remove(h(g.getText()));break;case"~=":y=" … "+l.remove(h(g.getText()))+" … ";break;case"*=":y="…"+l.remove(h(g.getText()))+"…";break;default:y=l.remove(h(g.getText()))}r.addAttr(h(f.getText()),y)}}}return r}function h(e){var t=new r.Scanner;t.setSource(e);var n=t.scanUnquotedString();return n?n.text:e}t.toElement=p;var u=function(){function e(e){this.cssDataManager=e}return e.prototype.selectorToMarkedString=function(e){var t=g(e);if(t){var n=new c('"').print(t);return n.push(this.selectorToSpecificityMarkedString(e)),n}return[]},e.prototype.simpleSelectorToMarkedString=function(e){var t=p(e),n=new c('"').print(t);return n.push(this.selectorToSpecificityMarkedString(e)),n},e.prototype.isPseudoElementIdentifier=function(e){var t=e.match(/^::?([\w-]+)/);return!!t&&!!this.cssDataManager.getPseudoElement("::"+t[1])},e.prototype.selectorToSpecificityMarkedString=function(e){var t=this,r=function(e){for(var i=0,s=e.getChildren();i0&&r(a)}},o=new d;return r(e),i("specificity","[Selector Specificity](https://developer.mozilla.org/en-US/docs/Web/CSS/Specificity): ({0}, {1}, {2})",o.id,o.attr,o.tag)},e}();t.SelectorPrinting=u;var m=function(){function e(e){this.prev=null,this.element=e}return e.prototype.processSelector=function(e){var t=null;if(!(this.element instanceof s)&&e.getChildren().some((function(e){return e.hasChildren()&&e.getChild(0).type===n.NodeType.SelectorCombinator}))){var r=this.element.findRoot();r.parent instanceof s&&(t=this.element,this.element=r.parent,this.element.removeChild(r),this.prev=null)}for(var i=0,o=e.getChildren();i=0;l--){var c=r[l].getSelectors().getChild(0);c&&a.processSelector(c)}return a.processSelector(e),t}t.selectorToElement=g})),function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define("vscode-css-languageservice/services/cssHover",["require","exports","../parser/cssNodes","../languageFacts/facts","./selectorPrinting","../utils/strings","../cssLanguageTypes","../utils/objects"],e)}((function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=e("../parser/cssNodes"),r=e("../languageFacts/facts"),i=e("./selectorPrinting"),o=e("../utils/strings"),s=e("../cssLanguageTypes"),a=e("../utils/objects"),l=function(){function e(e,t){this.clientCapabilities=e,this.cssDataManager=t,this.selectorPrinting=new i.SelectorPrinting(t)}return e.prototype.doHover=function(e,t,i){function a(t){return s.Range.create(e.positionAt(t.offset),e.positionAt(t.end))}for(var l=e.offsetAt(t),c=n.getNodePath(i,l),d=null,p=0;p0&&i[i.length-1])||6!==o[0]&&2!==o[0])){s=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]=a.length/2&&l.push({property:e.name,score:t})})),l.sort((function(e,t){return t.score-e.score||e.property.localeCompare(t.property)}));for(var c=3,d=0,p=l;d=0;c--){var d=l[c];if(d instanceof n.Declaration){var p=d.getProperty();if(p&&p.offset===s&&p.end===a)return void this.getFixesForUnknownProperty(e,p,r,o)}}},e}();t.CSSCodeActions=a})),function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define("vscode-css-languageservice/services/lintUtil",["require","exports","../utils/arrays"],e)}((function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=e("../utils/arrays"),r=function(e){this.fullPropertyName=e.getFullPropertyName().toLowerCase(),this.node=e};function i(e,t,r,i){var o=e[t];o.value=r,r&&(n.includes(o.properties,i)||o.properties.push(i))}function o(e,t,n,r){"top"===t||"right"===t||"bottom"===t||"left"===t?i(e,t,n,r):function(e,t,n){i(e,"top",t,n),i(e,"right",t,n),i(e,"bottom",t,n),i(e,"left",t,n)}(e,n,r)}function s(e,t,n){switch(t.length){case 1:o(e,void 0,t[0],n);break;case 2:o(e,"top",t[0],n),o(e,"bottom",t[0],n),o(e,"right",t[1],n),o(e,"left",t[1],n);break;case 3:o(e,"top",t[0],n),o(e,"right",t[1],n),o(e,"left",t[1],n),o(e,"bottom",t[2],n);break;case 4:o(e,"top",t[0],n),o(e,"right",t[1],n),o(e,"bottom",t[2],n),o(e,"left",t[3],n)}}function a(e,t){for(var n=0,r=t;n0)for(var w=0,x=["width","height","margin-top","margin-bottom","float"];w0)for(k=this.fetch(c,"float"),C=0;C0)for(k=this.fetch(c,"vertical-align"),C=0;C1)for(var P=0;P<_.length;P++){var I=_[P].node.getValue();I&&"-"!==this.documentText.charAt(I.offset)&&_[P]!==R&&this.addEntry(R.node,r.Rules.DuplicateDeclarations)}}}if(!t.getSelectors().matches(":export")){for(var N=new l,M=!1,A=0,O=c;A".charCodeAt(0),m=".".charCodeAt(0),f=("@".charCodeAt(0),n.TokenType.CustomToken);t.VariableName=f++,t.InterpolationFunction=f++,t.Default=f++,t.EqualsOperator=f++,t.NotEqualsOperator=f++,t.GreaterEqualsOperator=f++,t.SmallerEqualsOperator=f++,t.Ellipsis=f++,t.Module=f++;var g=function(e){function f(){return null!==e&&e.apply(this,arguments)||this}return __extends(f,e),f.prototype.scanNext=function(r){if(this.stream.advanceIfChar(a)){var i=["$"];if(this.ident(i))return this.finishToken(r,t.VariableName,i.join(""));this.stream.goBackTo(r)}return this.stream.advanceIfChars([l,c])?this.finishToken(r,t.InterpolationFunction):this.stream.advanceIfChars([d,d])?this.finishToken(r,t.EqualsOperator):this.stream.advanceIfChars([p,d])?this.finishToken(r,t.NotEqualsOperator):this.stream.advanceIfChar(h)?this.stream.advanceIfChar(d)?this.finishToken(r,t.SmallerEqualsOperator):this.finishToken(r,n.TokenType.Delim):this.stream.advanceIfChar(u)?this.stream.advanceIfChar(d)?this.finishToken(r,t.GreaterEqualsOperator):this.finishToken(r,n.TokenType.Delim):this.stream.advanceIfChars([m,m,m])?this.finishToken(r,t.Ellipsis):e.prototype.scanNext.call(this,r)},f.prototype.comment=function(){return!!e.prototype.comment.call(this)||!(this.inURL||!this.stream.advanceIfChars([r,r]))&&(this.stream.advanceWhileChar((function(e){switch(e){case i:case o:case s:return!1;default:return!0}})),!0)},f}(n.Scanner);t.SCSSScanner=g})),function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define("vscode-css-languageservice/parser/scssErrors",["require","exports","vscode-nls"],e)}((function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=e("vscode-nls").loadMessageBundle(),r=function(e,t){this.id=e,this.message=t};t.SCSSIssueType=r,t.SCSSParseError={FromExpected:new r("scss-fromexpected",n("expected.from","'from' expected")),ThroughOrToExpected:new r("scss-throughexpected",n("expected.through","'through' or 'to' expected")),InExpected:new r("scss-fromexpected",n("expected.in","'in' expected"))}}));__extends=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define("vscode-css-languageservice/parser/scssParser",["require","exports","./scssScanner","./cssScanner","./cssParser","./cssNodes","./scssErrors","./cssErrors"],e)}((function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=e("./scssScanner"),r=e("./cssScanner"),i=e("./cssParser"),o=e("./cssNodes"),s=e("./scssErrors"),a=e("./cssErrors"),l=function(e){function t(){return e.call(this,new n.SCSSScanner)||this}return __extends(t,e),t.prototype._parseStylesheetStatement=function(t){return void 0===t&&(t=!1),this.peek(r.TokenType.AtKeyword)?this._parseWarnAndDebug()||this._parseControlStatement()||this._parseMixinDeclaration()||this._parseMixinContent()||this._parseMixinReference()||this._parseFunctionDeclaration()||this._parseForward()||this._parseUse()||this._parseRuleset(t)||e.prototype._parseStylesheetAtStatement.call(this,t):this._parseRuleset(!0)||this._parseVariableDeclaration()},t.prototype._parseImport=function(){if(!this.peekKeyword("@import"))return null;var e=this.create(o.Import);if(this.consumeToken(),!e.addChild(this._parseURILiteral())&&!e.addChild(this._parseStringLiteral()))return this.finish(e,a.ParseError.URIOrStringExpected);for(;this.accept(r.TokenType.Comma);)if(!e.addChild(this._parseURILiteral())&&!e.addChild(this._parseStringLiteral()))return this.finish(e,a.ParseError.URIOrStringExpected);return this.peek(r.TokenType.SemiColon)||this.peek(r.TokenType.EOF)||e.setMedialist(this._parseMediaQueryList()),this.finish(e)},t.prototype._parseVariableDeclaration=function(e){if(void 0===e&&(e=[]),!this.peek(n.VariableName))return null;var t=this.create(o.VariableDeclaration);if(!t.setVariable(this._parseVariable()))return null;if(!this.accept(r.TokenType.Colon))return this.finish(t,a.ParseError.ColonExpected);if(this.prevToken&&(t.colonPosition=this.prevToken.offset),!t.setValue(this._parseExpr()))return this.finish(t,a.ParseError.VariableValueExpected,[],e);for(;this.peek(r.TokenType.Exclamation);)if(t.addChild(this._tryParsePrio()));else{if(this.consumeToken(),!this.peekRegExp(r.TokenType.Ident,/^(default|global)$/))return this.finish(t,a.ParseError.UnknownKeyword);this.consumeToken()}return this.peek(r.TokenType.SemiColon)&&(t.semicolonPosition=this.token.offset),this.finish(t)},t.prototype._parseMediaContentStart=function(){return this._parseInterpolation()},t.prototype._parseMediaFeatureName=function(){return this._parseModuleMember()||this._parseFunction()||this._parseIdent()||this._parseVariable()},t.prototype._parseKeyframeSelector=function(){return this._tryParseKeyframeSelector()||this._parseControlStatement(this._parseKeyframeSelector.bind(this))||this._parseVariableDeclaration()||this._parseMixinContent()},t.prototype._parseVariable=function(){if(!this.peek(n.VariableName))return null;var e=this.create(o.Variable);return this.consumeToken(),e},t.prototype._parseModuleMember=function(){var e=this.mark(),t=this.create(o.Module);return t.setIdentifier(this._parseIdent([o.ReferenceType.Module]))?this.hasWhitespace()||!this.acceptDelim(".")||this.hasWhitespace()?(this.restoreAtMark(e),null):t.addChild(this._parseVariable()||this._parseFunction())?t:this.finish(t,a.ParseError.IdentifierOrVariableExpected):null},t.prototype._parseIdent=function(e){var t=this;if(!this.peek(r.TokenType.Ident)&&!this.peek(n.InterpolationFunction)&&!this.peekDelim("-"))return null;var i=this.create(o.Identifier);i.referenceTypes=e,i.isCustomProperty=this.peekRegExp(r.TokenType.Ident,/^--/);for(var s,a=!1;(this.accept(r.TokenType.Ident)||i.addChild((s=void 0,s=t.mark(),t.acceptDelim("-")&&(t.hasWhitespace()||t.acceptDelim("-"),t.hasWhitespace())?(t.restoreAtMark(s),null):t._parseInterpolation()))||a&&this.acceptRegexp(/[\w-]/))&&(a=!0,!this.hasWhitespace()););return a?this.finish(i):null},t.prototype._parseTermExpression=function(){return this._parseModuleMember()||this._parseVariable()||this._parseSelectorCombinator()||e.prototype._parseTermExpression.call(this)},t.prototype._parseInterpolation=function(){if(this.peek(n.InterpolationFunction)){var e=this.create(o.Interpolation);return this.consumeToken(),e.addChild(this._parseExpr())||this._parseSelectorCombinator()?this.accept(r.TokenType.CurlyR)?this.finish(e):this.finish(e,a.ParseError.RightCurlyExpected):this.accept(r.TokenType.CurlyR)?this.finish(e):this.finish(e,a.ParseError.ExpressionExpected)}return null},t.prototype._parseOperator=function(){if(this.peek(n.EqualsOperator)||this.peek(n.NotEqualsOperator)||this.peek(n.GreaterEqualsOperator)||this.peek(n.SmallerEqualsOperator)||this.peekDelim(">")||this.peekDelim("<")||this.peekIdent("and")||this.peekIdent("or")||this.peekDelim("%")){var t=this.createNode(o.NodeType.Operator);return this.consumeToken(),this.finish(t)}return e.prototype._parseOperator.call(this)},t.prototype._parseUnaryOperator=function(){if(this.peekIdent("not")){var t=this.create(o.Node);return this.consumeToken(),this.finish(t)}return e.prototype._parseUnaryOperator.call(this)},t.prototype._parseRuleSetDeclaration=function(){return this.peek(r.TokenType.AtKeyword)?this._parseKeyframe()||this._parseImport()||this._parseMedia(!0)||this._parseFontFace()||this._parseWarnAndDebug()||this._parseControlStatement()||this._parseFunctionDeclaration()||this._parseExtends()||this._parseMixinReference()||this._parseMixinContent()||this._parseMixinDeclaration()||this._parseRuleset(!0)||this._parseSupports(!0)||e.prototype._parseRuleSetDeclarationAtStatement.call(this):this._parseVariableDeclaration()||this._tryParseRuleset(!0)||e.prototype._parseRuleSetDeclaration.call(this)},t.prototype._parseDeclaration=function(e){var t=this.create(o.Declaration);if(!t.setProperty(this._parseProperty()))return null;if(!this.accept(r.TokenType.Colon))return this.finish(t,a.ParseError.ColonExpected,[r.TokenType.Colon],e);this.prevToken&&(t.colonPosition=this.prevToken.offset);var n=!1;if(t.setValue(this._parseExpr())&&(n=!0,t.addChild(this._parsePrio())),this.peek(r.TokenType.CurlyL))t.setNestedProperties(this._parseNestedProperties());else if(!n)return this.finish(t,a.ParseError.PropertyValueExpected);return this.peek(r.TokenType.SemiColon)&&(t.semicolonPosition=this.token.offset),this.finish(t)},t.prototype._parseNestedProperties=function(){var e=this.create(o.NestedProperties);return this._parseBody(e,this._parseDeclaration.bind(this))},t.prototype._parseExtends=function(){if(this.peekKeyword("@extend")){var e=this.create(o.ExtendsReference);if(this.consumeToken(),!e.getSelectors().addChild(this._parseSimpleSelector()))return this.finish(e,a.ParseError.SelectorExpected);for(;this.accept(r.TokenType.Comma);)e.getSelectors().addChild(this._parseSimpleSelector());return this.accept(r.TokenType.Exclamation)&&!this.acceptIdent("optional")?this.finish(e,a.ParseError.UnknownKeyword):this.finish(e)}return null},t.prototype._parseSimpleSelectorBody=function(){return this._parseSelectorCombinator()||this._parseSelectorPlaceholder()||e.prototype._parseSimpleSelectorBody.call(this)},t.prototype._parseSelectorCombinator=function(){if(this.peekDelim("&")){var e=this.createNode(o.NodeType.SelectorCombinator);for(this.consumeToken();!this.hasWhitespace()&&(this.acceptDelim("-")||this.accept(r.TokenType.Num)||this.accept(r.TokenType.Dimension)||e.addChild(this._parseIdent())||this.acceptDelim("&")););return this.finish(e)}return null},t.prototype._parseSelectorPlaceholder=function(){if(this.peekDelim("%")){var e=this.createNode(o.NodeType.SelectorPlaceholder);return this.consumeToken(),this._parseIdent(),this.finish(e)}if(this.peekKeyword("@at-root")){e=this.createNode(o.NodeType.SelectorPlaceholder);return this.consumeToken(),this.finish(e)}return null},t.prototype._parseElementName=function(){var t=this.mark(),n=e.prototype._parseElementName.call(this);return n&&!this.hasWhitespace()&&this.peek(r.TokenType.ParenthesisL)?(this.restoreAtMark(t),null):n},t.prototype._tryParsePseudoIdentifier=function(){return this._parseInterpolation()||e.prototype._tryParsePseudoIdentifier.call(this)},t.prototype._parseWarnAndDebug=function(){if(!this.peekKeyword("@debug")&&!this.peekKeyword("@warn")&&!this.peekKeyword("@error"))return null;var e=this.createNode(o.NodeType.Debug);return this.consumeToken(),e.addChild(this._parseExpr()),this.finish(e)},t.prototype._parseControlStatement=function(e){return void 0===e&&(e=this._parseRuleSetDeclaration.bind(this)),this.peek(r.TokenType.AtKeyword)?this._parseIfStatement(e)||this._parseForStatement(e)||this._parseEachStatement(e)||this._parseWhileStatement(e):null},t.prototype._parseIfStatement=function(e){return this.peekKeyword("@if")?this._internalParseIfStatement(e):null},t.prototype._internalParseIfStatement=function(e){var t=this.create(o.IfStatement);if(this.consumeToken(),!t.setExpression(this._parseExpr(!0)))return this.finish(t,a.ParseError.ExpressionExpected);if(this._parseBody(t,e),this.acceptKeyword("@else"))if(this.peekIdent("if"))t.setElseClause(this._internalParseIfStatement(e));else if(this.peek(r.TokenType.CurlyL)){var n=this.create(o.ElseStatement);this._parseBody(n,e),t.setElseClause(n)}return this.finish(t)},t.prototype._parseForStatement=function(e){if(!this.peekKeyword("@for"))return null;var t=this.create(o.ForStatement);return this.consumeToken(),t.setVariable(this._parseVariable())?this.acceptIdent("from")?t.addChild(this._parseBinaryExpr())?this.acceptIdent("to")||this.acceptIdent("through")?t.addChild(this._parseBinaryExpr())?this._parseBody(t,e):this.finish(t,a.ParseError.ExpressionExpected,[r.TokenType.CurlyR]):this.finish(t,s.SCSSParseError.ThroughOrToExpected,[r.TokenType.CurlyR]):this.finish(t,a.ParseError.ExpressionExpected,[r.TokenType.CurlyR]):this.finish(t,s.SCSSParseError.FromExpected,[r.TokenType.CurlyR]):this.finish(t,a.ParseError.VariableNameExpected,[r.TokenType.CurlyR])},t.prototype._parseEachStatement=function(e){if(!this.peekKeyword("@each"))return null;var t=this.create(o.EachStatement);this.consumeToken();var n=t.getVariables();if(!n.addChild(this._parseVariable()))return this.finish(t,a.ParseError.VariableNameExpected,[r.TokenType.CurlyR]);for(;this.accept(r.TokenType.Comma);)if(!n.addChild(this._parseVariable()))return this.finish(t,a.ParseError.VariableNameExpected,[r.TokenType.CurlyR]);return this.finish(n),this.acceptIdent("in")?t.addChild(this._parseExpr())?this._parseBody(t,e):this.finish(t,a.ParseError.ExpressionExpected,[r.TokenType.CurlyR]):this.finish(t,s.SCSSParseError.InExpected,[r.TokenType.CurlyR])},t.prototype._parseWhileStatement=function(e){if(!this.peekKeyword("@while"))return null;var t=this.create(o.WhileStatement);return this.consumeToken(),t.addChild(this._parseBinaryExpr())?this._parseBody(t,e):this.finish(t,a.ParseError.ExpressionExpected,[r.TokenType.CurlyR])},t.prototype._parseFunctionBodyDeclaration=function(){return this._parseVariableDeclaration()||this._parseReturnStatement()||this._parseWarnAndDebug()||this._parseControlStatement(this._parseFunctionBodyDeclaration.bind(this))},t.prototype._parseFunctionDeclaration=function(){if(!this.peekKeyword("@function"))return null;var e=this.create(o.FunctionDeclaration);if(this.consumeToken(),!e.setIdentifier(this._parseIdent([o.ReferenceType.Function])))return this.finish(e,a.ParseError.IdentifierExpected,[r.TokenType.CurlyR]);if(!this.accept(r.TokenType.ParenthesisL))return this.finish(e,a.ParseError.LeftParenthesisExpected,[r.TokenType.CurlyR]);if(e.getParameters().addChild(this._parseParameterDeclaration()))for(;this.accept(r.TokenType.Comma)&&!this.peek(r.TokenType.ParenthesisR);)if(!e.getParameters().addChild(this._parseParameterDeclaration()))return this.finish(e,a.ParseError.VariableNameExpected);return this.accept(r.TokenType.ParenthesisR)?this._parseBody(e,this._parseFunctionBodyDeclaration.bind(this)):this.finish(e,a.ParseError.RightParenthesisExpected,[r.TokenType.CurlyR])},t.prototype._parseReturnStatement=function(){if(!this.peekKeyword("@return"))return null;var e=this.createNode(o.NodeType.ReturnStatement);return this.consumeToken(),e.addChild(this._parseExpr())?this.finish(e):this.finish(e,a.ParseError.ExpressionExpected)},t.prototype._parseMixinDeclaration=function(){if(!this.peekKeyword("@mixin"))return null;var e=this.create(o.MixinDeclaration);if(this.consumeToken(),!e.setIdentifier(this._parseIdent([o.ReferenceType.Mixin])))return this.finish(e,a.ParseError.IdentifierExpected,[r.TokenType.CurlyR]);if(this.accept(r.TokenType.ParenthesisL)){if(e.getParameters().addChild(this._parseParameterDeclaration()))for(;this.accept(r.TokenType.Comma)&&!this.peek(r.TokenType.ParenthesisR);)if(!e.getParameters().addChild(this._parseParameterDeclaration()))return this.finish(e,a.ParseError.VariableNameExpected);if(!this.accept(r.TokenType.ParenthesisR))return this.finish(e,a.ParseError.RightParenthesisExpected,[r.TokenType.CurlyR])}return this._parseBody(e,this._parseRuleSetDeclaration.bind(this))},t.prototype._parseParameterDeclaration=function(){var e=this.create(o.FunctionParameter);return e.setIdentifier(this._parseVariable())?(this.accept(n.Ellipsis),this.accept(r.TokenType.Colon)&&!e.setDefaultValue(this._parseExpr(!0))?this.finish(e,a.ParseError.VariableValueExpected,[],[r.TokenType.Comma,r.TokenType.ParenthesisR]):this.finish(e)):null},t.prototype._parseMixinContent=function(){if(!this.peekKeyword("@content"))return null;var e=this.create(o.MixinContentReference);if(this.consumeToken(),this.accept(r.TokenType.ParenthesisL)){if(e.getArguments().addChild(this._parseFunctionArgument()))for(;this.accept(r.TokenType.Comma)&&!this.peek(r.TokenType.ParenthesisR);)if(!e.getArguments().addChild(this._parseFunctionArgument()))return this.finish(e,a.ParseError.ExpressionExpected);if(!this.accept(r.TokenType.ParenthesisR))return this.finish(e,a.ParseError.RightParenthesisExpected)}return this.finish(e)},t.prototype._parseMixinReference=function(){if(!this.peekKeyword("@include"))return null;var e=this.create(o.MixinReference);this.consumeToken();var t=this._parseIdent([o.ReferenceType.Mixin]);if(!e.setIdentifier(t))return this.finish(e,a.ParseError.IdentifierExpected,[r.TokenType.CurlyR]);if(!this.hasWhitespace()&&this.acceptDelim(".")&&!this.hasWhitespace()){var n=this._parseIdent([o.ReferenceType.Mixin]);if(!n)return this.finish(e,a.ParseError.IdentifierExpected,[r.TokenType.CurlyR]);var i=this.create(o.Module);t.referenceTypes=[o.ReferenceType.Module],i.setIdentifier(t),e.setIdentifier(n),e.addChild(i)}if(this.accept(r.TokenType.ParenthesisL)){if(e.getArguments().addChild(this._parseFunctionArgument()))for(;this.accept(r.TokenType.Comma)&&!this.peek(r.TokenType.ParenthesisR);)if(!e.getArguments().addChild(this._parseFunctionArgument()))return this.finish(e,a.ParseError.ExpressionExpected);if(!this.accept(r.TokenType.ParenthesisR))return this.finish(e,a.ParseError.RightParenthesisExpected)}return(this.peekIdent("using")||this.peek(r.TokenType.CurlyL))&&e.setContent(this._parseMixinContentDeclaration()),this.finish(e)},t.prototype._parseMixinContentDeclaration=function(){var e=this.create(o.MixinContentDeclaration);if(this.acceptIdent("using")){if(!this.accept(r.TokenType.ParenthesisL))return this.finish(e,a.ParseError.LeftParenthesisExpected,[r.TokenType.CurlyL]);if(e.getParameters().addChild(this._parseParameterDeclaration()))for(;this.accept(r.TokenType.Comma)&&!this.peek(r.TokenType.ParenthesisR);)if(!e.getParameters().addChild(this._parseParameterDeclaration()))return this.finish(e,a.ParseError.VariableNameExpected);if(!this.accept(r.TokenType.ParenthesisR))return this.finish(e,a.ParseError.RightParenthesisExpected,[r.TokenType.CurlyL])}return this.peek(r.TokenType.CurlyL)&&this._parseBody(e,this._parseMixinReferenceBodyStatement.bind(this)),this.finish(e)},t.prototype._parseMixinReferenceBodyStatement=function(){return this._tryParseKeyframeSelector()||this._parseRuleSetDeclaration()},t.prototype._parseFunctionArgument=function(){var e=this.create(o.FunctionArgument),t=this.mark(),i=this._parseVariable();if(i)if(this.accept(r.TokenType.Colon))e.setIdentifier(i);else{if(this.accept(n.Ellipsis))return e.setValue(i),this.finish(e);this.restoreAtMark(t)}return e.setValue(this._parseExpr(!0))?(this.accept(n.Ellipsis),e.addChild(this._parsePrio()),this.finish(e)):e.setValue(this._tryParsePrio())?this.finish(e):null},t.prototype._parseURLArgument=function(){var t=this.mark(),n=e.prototype._parseURLArgument.call(this);if(!n||!this.peek(r.TokenType.ParenthesisR)){this.restoreAtMark(t);var i=this.create(o.Node);return i.addChild(this._parseBinaryExpr()),this.finish(i)}return n},t.prototype._parseOperation=function(){if(!this.peek(r.TokenType.ParenthesisL))return null;var e=this.create(o.Node);for(this.consumeToken();e.addChild(this._parseListElement());)this.accept(r.TokenType.Comma);return this.accept(r.TokenType.ParenthesisR)?this.finish(e):this.finish(e,a.ParseError.RightParenthesisExpected)},t.prototype._parseListElement=function(){var e=this.create(o.ListEntry),t=this._parseBinaryExpr();if(!t)return null;if(this.accept(r.TokenType.Colon)){if(e.setKey(t),!e.setValue(this._parseBinaryExpr()))return this.finish(e,a.ParseError.ExpressionExpected)}else e.setValue(t);return this.finish(e)},t.prototype._parseUse=function(){if(!this.peekKeyword("@use"))return null;var e=this.create(o.Use);if(this.consumeToken(),!e.addChild(this._parseStringLiteral()))return this.finish(e,a.ParseError.StringLiteralExpected);if(!this.peek(r.TokenType.SemiColon)&&!this.peek(r.TokenType.EOF)){if(!this.peekRegExp(r.TokenType.Ident,/as|with/))return this.finish(e,a.ParseError.UnknownKeyword);if(this.acceptIdent("as")&&!e.setIdentifier(this._parseIdent([o.ReferenceType.Module]))&&!this.acceptDelim("*"))return this.finish(e,a.ParseError.IdentifierOrWildcardExpected);if(this.acceptIdent("with")){if(!this.accept(r.TokenType.ParenthesisL))return this.finish(e,a.ParseError.LeftParenthesisExpected,[r.TokenType.ParenthesisR]);if(!e.getParameters().addChild(this._parseModuleConfigDeclaration()))return this.finish(e,a.ParseError.VariableNameExpected);for(;this.accept(r.TokenType.Comma)&&!this.peek(r.TokenType.ParenthesisR);)if(!e.getParameters().addChild(this._parseModuleConfigDeclaration()))return this.finish(e,a.ParseError.VariableNameExpected);if(!this.accept(r.TokenType.ParenthesisR))return this.finish(e,a.ParseError.RightParenthesisExpected)}}return this.accept(r.TokenType.SemiColon)||this.accept(r.TokenType.EOF)?this.finish(e):this.finish(e,a.ParseError.SemiColonExpected)},t.prototype._parseModuleConfigDeclaration=function(){var e=this.create(o.ModuleConfiguration);return e.setIdentifier(this._parseVariable())?this.accept(r.TokenType.Colon)&&e.setValue(this._parseExpr(!0))?this.finish(e):this.finish(e,a.ParseError.VariableValueExpected,[],[r.TokenType.Comma,r.TokenType.ParenthesisR]):null},t.prototype._parseForward=function(){if(!this.peekKeyword("@forward"))return null;var e=this.create(o.Forward);if(this.consumeToken(),!e.addChild(this._parseStringLiteral()))return this.finish(e,a.ParseError.StringLiteralExpected);if(!this.peek(r.TokenType.SemiColon)&&!this.peek(r.TokenType.EOF)){if(!this.peekRegExp(r.TokenType.Ident,/as|hide|show/))return this.finish(e,a.ParseError.UnknownKeyword);if(this.acceptIdent("as")){var t=this._parseIdent([o.ReferenceType.Forward]);if(!e.setIdentifier(t))return this.finish(e,a.ParseError.IdentifierExpected);if(this.hasWhitespace()||!this.acceptDelim("*"))return this.finish(e,a.ParseError.WildcardExpected)}if((this.peekIdent("hide")||this.peekIdent("show"))&&!e.addChild(this._parseForwardVisibility()))return this.finish(e,a.ParseError.IdentifierOrVariableExpected)}return this.accept(r.TokenType.SemiColon)||this.accept(r.TokenType.EOF)?this.finish(e):this.finish(e,a.ParseError.SemiColonExpected)},t.prototype._parseForwardVisibility=function(){var e=this.create(o.ForwardVisibility);for(e.setIdentifier(this._parseIdent());e.addChild(this._parseVariable()||this._parseIdent()););return e.getChildren().length>1?e:null},t.prototype._parseSupportsCondition=function(){return this._parseInterpolation()||e.prototype._parseSupportsCondition.call(this)},t}(i.Parser);t.SCSSParser=l}));__extends=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define("vscode-css-languageservice/services/scssCompletion",["require","exports","./cssCompletion","../parser/cssNodes","../cssLanguageTypes","vscode-nls"],e)}((function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=e("./cssCompletion"),r=e("../parser/cssNodes"),i=e("../cssLanguageTypes"),o=e("vscode-nls").loadMessageBundle(),s=function(e){function t(n,r){var i=e.call(this,"$",n,r)||this;return a(t.scssModuleLoaders),a(t.scssModuleBuiltIns),i}return __extends(t,e),t.prototype.isImportPathParent=function(t){return t===r.NodeType.Forward||t===r.NodeType.Use||e.prototype.isImportPathParent.call(this,t)},t.prototype.getCompletionForImportPath=function(n,o){var s=n.getParent().type;if(s===r.NodeType.Forward||s===r.NodeType.Use)for(var a=0,l=t.scssModuleBuiltIns;a0){var t="string"==typeof e.documentation?{kind:"markdown",value:e.documentation}:{kind:"markdown",value:e.documentation.value};t.value+="\n\n",t.value+=e.references.map((function(e){return"["+e.name+"]("+e.url+")"})).join(" | "),e.documentation=t}}))}t.SCSSCompletion=s}));__extends=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define("vscode-css-languageservice/parser/lessScanner",["require","exports","./cssScanner"],e)}((function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=e("./cssScanner"),r="/".charCodeAt(0),i="\n".charCodeAt(0),o="\r".charCodeAt(0),s="\f".charCodeAt(0),a="`".charCodeAt(0),l=".".charCodeAt(0),c=n.TokenType.CustomToken;t.Ellipsis=c++;var d=function(e){function c(){return null!==e&&e.apply(this,arguments)||this}return __extends(c,e),c.prototype.scanNext=function(n){var r=this.escapedJavaScript();return null!==r?this.finishToken(n,r):this.stream.advanceIfChars([l,l,l])?this.finishToken(n,t.Ellipsis):e.prototype.scanNext.call(this,n)},c.prototype.comment=function(){return!!e.prototype.comment.call(this)||!(this.inURL||!this.stream.advanceIfChars([r,r]))&&(this.stream.advanceWhileChar((function(e){switch(e){case i:case o:case s:return!1;default:return!0}})),!0)},c.prototype.escapedJavaScript=function(){return this.stream.peekChar()===a?(this.stream.advance(1),this.stream.advanceWhileChar((function(e){return e!==a})),this.stream.advanceIfChar(a)?n.TokenType.EscapedJavaScript:n.TokenType.BadEscapedJavaScript):null},c}(n.Scanner);t.LESSScanner=d}));__extends=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define("vscode-css-languageservice/parser/lessParser",["require","exports","./lessScanner","./cssScanner","./cssParser","./cssNodes","./cssErrors"],e)}((function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=e("./lessScanner"),r=e("./cssScanner"),i=e("./cssParser"),o=e("./cssNodes"),s=e("./cssErrors"),a=function(e){function t(){return e.call(this,new n.LESSScanner)||this}return __extends(t,e),t.prototype._parseStylesheetStatement=function(t){return void 0===t&&(t=!1),this.peek(r.TokenType.AtKeyword)?this._parseVariableDeclaration()||this._parsePlugin()||e.prototype._parseStylesheetAtStatement.call(this,t):this._tryParseMixinDeclaration()||this._tryParseMixinReference()||this._parseFunction()||this._parseRuleset(!0)},t.prototype._parseImport=function(){if(!this.peekKeyword("@import")&&!this.peekKeyword("@import-once"))return null;var e=this.create(o.Import);if(this.consumeToken(),this.accept(r.TokenType.ParenthesisL)){if(!this.accept(r.TokenType.Ident))return this.finish(e,s.ParseError.IdentifierExpected,[r.TokenType.SemiColon]);do{if(!this.accept(r.TokenType.Comma))break}while(this.accept(r.TokenType.Ident));if(!this.accept(r.TokenType.ParenthesisR))return this.finish(e,s.ParseError.RightParenthesisExpected,[r.TokenType.SemiColon])}return e.addChild(this._parseURILiteral())||e.addChild(this._parseStringLiteral())?(this.peek(r.TokenType.SemiColon)||this.peek(r.TokenType.EOF)||e.setMedialist(this._parseMediaQueryList()),this.finish(e)):this.finish(e,s.ParseError.URIOrStringExpected,[r.TokenType.SemiColon])},t.prototype._parsePlugin=function(){if(!this.peekKeyword("@plugin"))return null;var e=this.createNode(o.NodeType.Plugin);return this.consumeToken(),e.addChild(this._parseStringLiteral())?this.accept(r.TokenType.SemiColon)?this.finish(e):this.finish(e,s.ParseError.SemiColonExpected):this.finish(e,s.ParseError.StringLiteralExpected)},t.prototype._parseMediaQuery=function(t){var n=e.prototype._parseMediaQuery.call(this,t);if(!n){var r=this.create(o.MediaQuery);return r.addChild(this._parseVariable())?this.finish(r):null}return n},t.prototype._parseMediaDeclaration=function(e){return void 0===e&&(e=!1),this._tryParseRuleset(e)||this._tryToParseDeclaration()||this._tryParseMixinDeclaration()||this._tryParseMixinReference()||this._parseDetachedRuleSetMixin()||this._parseStylesheetStatement(e)},t.prototype._parseMediaFeatureName=function(){return this._parseIdent()||this._parseVariable()},t.prototype._parseVariableDeclaration=function(e){void 0===e&&(e=[]);var t=this.create(o.VariableDeclaration),n=this.mark();if(!t.setVariable(this._parseVariable(!0)))return null;if(!this.accept(r.TokenType.Colon))return this.restoreAtMark(n),null;if(this.prevToken&&(t.colonPosition=this.prevToken.offset),t.setValue(this._parseDetachedRuleSet()))t.needsSemicolon=!1;else if(!t.setValue(this._parseExpr()))return this.finish(t,s.ParseError.VariableValueExpected,[],e);return t.addChild(this._parsePrio()),this.peek(r.TokenType.SemiColon)&&(t.semicolonPosition=this.token.offset),this.finish(t)},t.prototype._parseDetachedRuleSet=function(){var e=this.mark();if(this.peekDelim("#")||this.peekDelim(".")){if(this.consumeToken(),this.hasWhitespace()||!this.accept(r.TokenType.ParenthesisL))return this.restoreAtMark(e),null;var t=this.create(o.MixinDeclaration);if(t.getParameters().addChild(this._parseMixinParameter()))for(;(this.accept(r.TokenType.Comma)||this.accept(r.TokenType.SemiColon))&&!this.peek(r.TokenType.ParenthesisR);)t.getParameters().addChild(this._parseMixinParameter())||this.markError(t,s.ParseError.IdentifierExpected,[],[r.TokenType.ParenthesisR]);if(!this.accept(r.TokenType.ParenthesisR))return this.restoreAtMark(e),null}if(!this.peek(r.TokenType.CurlyL))return null;var n=this.create(o.BodyDeclaration);return this._parseBody(n,this._parseDetachedRuleSetBody.bind(this)),this.finish(n)},t.prototype._parseDetachedRuleSetBody=function(){return this._tryParseKeyframeSelector()||this._parseRuleSetDeclaration()},t.prototype._addLookupChildren=function(e){if(!e.addChild(this._parseLookupValue()))return!1;for(var t=!1;this.peek(r.TokenType.BracketL)&&(t=!0),e.addChild(this._parseLookupValue());)t=!1;return!t},t.prototype._parseLookupValue=function(){var e=this.create(o.Node),t=this.mark();return this.accept(r.TokenType.BracketL)&&((e.addChild(this._parseVariable(!1,!0))||e.addChild(this._parsePropertyIdentifier()))&&this.accept(r.TokenType.BracketR)||this.accept(r.TokenType.BracketR))?e:(this.restoreAtMark(t),null)},t.prototype._parseVariable=function(e,t){void 0===e&&(e=!1),void 0===t&&(t=!1);var n=!e&&this.peekDelim("$");if(!this.peekDelim("@")&&!n&&!this.peek(r.TokenType.AtKeyword))return null;for(var i=this.create(o.Variable),s=this.mark();this.acceptDelim("@")||!e&&this.acceptDelim("$");)if(this.hasWhitespace())return this.restoreAtMark(s),null;return(this.accept(r.TokenType.AtKeyword)||this.accept(r.TokenType.Ident))&&(t||!this.peek(r.TokenType.BracketL)||this._addLookupChildren(i))?i:(this.restoreAtMark(s),null)},t.prototype._parseTermExpression=function(){return this._parseVariable()||this._parseEscaped()||e.prototype._parseTermExpression.call(this)||this._tryParseMixinReference(!1)},t.prototype._parseEscaped=function(){if(this.peek(r.TokenType.EscapedJavaScript)||this.peek(r.TokenType.BadEscapedJavaScript)){var e=this.createNode(o.NodeType.EscapedValue);return this.consumeToken(),this.finish(e)}if(this.peekDelim("~")){e=this.createNode(o.NodeType.EscapedValue);return this.consumeToken(),this.accept(r.TokenType.String)||this.accept(r.TokenType.EscapedJavaScript)?this.finish(e):this.finish(e,s.ParseError.TermExpected)}return null},t.prototype._parseOperator=function(){var t=this._parseGuardOperator();return t||e.prototype._parseOperator.call(this)},t.prototype._parseGuardOperator=function(){if(this.peekDelim(">")){var e=this.createNode(o.NodeType.Operator);return this.consumeToken(),this.acceptDelim("="),e}if(this.peekDelim("=")){e=this.createNode(o.NodeType.Operator);return this.consumeToken(),this.acceptDelim("<"),e}if(this.peekDelim("<")){e=this.createNode(o.NodeType.Operator);return this.consumeToken(),this.acceptDelim("="),e}return null},t.prototype._parseRuleSetDeclaration=function(){return this.peek(r.TokenType.AtKeyword)?this._parseKeyframe()||this._parseMedia(!0)||this._parseImport()||this._parseSupports(!0)||this._parseDetachedRuleSetMixin()||this._parseVariableDeclaration()||e.prototype._parseRuleSetDeclarationAtStatement.call(this):this._tryParseMixinDeclaration()||this._tryParseRuleset(!0)||this._tryParseMixinReference()||this._parseFunction()||this._parseExtend()||e.prototype._parseRuleSetDeclaration.call(this)},t.prototype._parseKeyframeIdent=function(){return this._parseIdent([o.ReferenceType.Keyframe])||this._parseVariable()},t.prototype._parseKeyframeSelector=function(){return this._parseDetachedRuleSetMixin()||e.prototype._parseKeyframeSelector.call(this)},t.prototype._parseSimpleSelectorBody=function(){return this._parseSelectorCombinator()||e.prototype._parseSimpleSelectorBody.call(this)},t.prototype._parseSelector=function(e){var t=this.create(o.Selector),n=!1;for(e&&(n=t.addChild(this._parseCombinator()));t.addChild(this._parseSimpleSelector());){n=!0;var i=this.mark();if(t.addChild(this._parseGuard())&&this.peek(r.TokenType.CurlyL))break;this.restoreAtMark(i),t.addChild(this._parseCombinator())}return n?this.finish(t):null},t.prototype._parseSelectorCombinator=function(){if(this.peekDelim("&")){var e=this.createNode(o.NodeType.SelectorCombinator);for(this.consumeToken();!this.hasWhitespace()&&(this.acceptDelim("-")||this.accept(r.TokenType.Num)||this.accept(r.TokenType.Dimension)||e.addChild(this._parseIdent())||this.acceptDelim("&")););return this.finish(e)}return null},t.prototype._parseSelectorIdent=function(){if(!this.peekInterpolatedIdent())return null;var e=this.createNode(o.NodeType.SelectorInterpolation);return this._acceptInterpolatedIdent(e)?this.finish(e):null},t.prototype._parsePropertyIdentifier=function(e){void 0===e&&(e=!1);var t=/^[\w-]+/;if(!this.peekInterpolatedIdent()&&!this.peekRegExp(this.token.type,t))return null;var n=this.mark(),r=this.create(o.Identifier);r.isCustomProperty=this.acceptDelim("-")&&this.acceptDelim("-");return(e?r.isCustomProperty?r.addChild(this._parseIdent()):r.addChild(this._parseRegexp(t)):r.isCustomProperty?this._acceptInterpolatedIdent(r):this._acceptInterpolatedIdent(r,t))?(e||this.hasWhitespace()||(this.acceptDelim("+"),this.hasWhitespace()||this.acceptIdent("_")),this.finish(r)):(this.restoreAtMark(n),null)},t.prototype.peekInterpolatedIdent=function(){return this.peek(r.TokenType.Ident)||this.peekDelim("@")||this.peekDelim("$")||this.peekDelim("-")},t.prototype._acceptInterpolatedIdent=function(e,t){for(var n=this,i=!1,o=function(){var e=n.mark();return n.acceptDelim("-")&&(n.hasWhitespace()||n.acceptDelim("-"),n.hasWhitespace())?(n.restoreAtMark(e),null):n._parseInterpolation()},s=t?function(){return n.acceptRegexp(t)}:function(){return n.accept(r.TokenType.Ident)};(s()||e.addChild(this._parseInterpolation()||this.try(o)))&&(i=!0,!this.hasWhitespace()););return i},t.prototype._parseInterpolation=function(){var e=this.mark();if(this.peekDelim("@")||this.peekDelim("$")){var t=this.createNode(o.NodeType.Interpolation);return this.consumeToken(),this.hasWhitespace()||!this.accept(r.TokenType.CurlyL)?(this.restoreAtMark(e),null):t.addChild(this._parseIdent())?this.accept(r.TokenType.CurlyR)?this.finish(t):this.finish(t,s.ParseError.RightCurlyExpected):this.finish(t,s.ParseError.IdentifierExpected)}return null},t.prototype._tryParseMixinDeclaration=function(){var e=this.mark(),t=this.create(o.MixinDeclaration);if(!t.setIdentifier(this._parseMixinDeclarationIdentifier())||!this.accept(r.TokenType.ParenthesisL))return this.restoreAtMark(e),null;if(t.getParameters().addChild(this._parseMixinParameter()))for(;(this.accept(r.TokenType.Comma)||this.accept(r.TokenType.SemiColon))&&!this.peek(r.TokenType.ParenthesisR);)t.getParameters().addChild(this._parseMixinParameter())||this.markError(t,s.ParseError.IdentifierExpected,[],[r.TokenType.ParenthesisR]);return this.accept(r.TokenType.ParenthesisR)?(t.setGuard(this._parseGuard()),this.peek(r.TokenType.CurlyL)?this._parseBody(t,this._parseMixInBodyDeclaration.bind(this)):(this.restoreAtMark(e),null)):(this.restoreAtMark(e),null)},t.prototype._parseMixInBodyDeclaration=function(){return this._parseFontFace()||this._parseRuleSetDeclaration()},t.prototype._parseMixinDeclarationIdentifier=function(){var e;if(this.peekDelim("#")||this.peekDelim(".")){if(e=this.create(o.Identifier),this.consumeToken(),this.hasWhitespace()||!e.addChild(this._parseIdent()))return null}else{if(!this.peek(r.TokenType.Hash))return null;e=this.create(o.Identifier),this.consumeToken()}return e.referenceTypes=[o.ReferenceType.Mixin],this.finish(e)},t.prototype._parsePseudo=function(){if(!this.peek(r.TokenType.Colon))return null;var t=this.mark(),n=this.create(o.ExtendsReference);return this.consumeToken(),this.acceptIdent("extend")?this._completeExtends(n):(this.restoreAtMark(t),e.prototype._parsePseudo.call(this))},t.prototype._parseExtend=function(){if(!this.peekDelim("&"))return null;var e=this.mark(),t=this.create(o.ExtendsReference);return this.consumeToken(),!this.hasWhitespace()&&this.accept(r.TokenType.Colon)&&this.acceptIdent("extend")?this._completeExtends(t):(this.restoreAtMark(e),null)},t.prototype._completeExtends=function(e){if(!this.accept(r.TokenType.ParenthesisL))return this.finish(e,s.ParseError.LeftParenthesisExpected);var t=e.getSelectors();if(!t.addChild(this._parseSelector(!0)))return this.finish(e,s.ParseError.SelectorExpected);for(;this.accept(r.TokenType.Comma);)if(!t.addChild(this._parseSelector(!0)))return this.finish(e,s.ParseError.SelectorExpected);return this.accept(r.TokenType.ParenthesisR)?this.finish(e):this.finish(e,s.ParseError.RightParenthesisExpected)},t.prototype._parseDetachedRuleSetMixin=function(){if(!this.peek(r.TokenType.AtKeyword))return null;var e=this.mark(),t=this.create(o.MixinReference);return!t.addChild(this._parseVariable(!0))||!this.hasWhitespace()&&this.accept(r.TokenType.ParenthesisL)?this.accept(r.TokenType.ParenthesisR)?this.finish(t):this.finish(t,s.ParseError.RightParenthesisExpected):(this.restoreAtMark(e),null)},t.prototype._tryParseMixinReference=function(e){void 0===e&&(e=!0);for(var t=this.mark(),n=this.create(o.MixinReference),i=this._parseMixinDeclarationIdentifier();i;){this.acceptDelim(">");var a=this._parseMixinDeclarationIdentifier();if(!a)break;n.getNamespaces().addChild(i),i=a}if(!n.setIdentifier(i))return this.restoreAtMark(t),null;var l=!1;if(this.accept(r.TokenType.ParenthesisL)){if(l=!0,n.getArguments().addChild(this._parseMixinArgument()))for(;(this.accept(r.TokenType.Comma)||this.accept(r.TokenType.SemiColon))&&!this.peek(r.TokenType.ParenthesisR);)if(!n.getArguments().addChild(this._parseMixinArgument()))return this.finish(n,s.ParseError.ExpressionExpected);if(!this.accept(r.TokenType.ParenthesisR))return this.finish(n,s.ParseError.RightParenthesisExpected);i.referenceTypes=[o.ReferenceType.Mixin]}else i.referenceTypes=[o.ReferenceType.Mixin,o.ReferenceType.Rule];return this.peek(r.TokenType.BracketL)?e||this._addLookupChildren(n):n.addChild(this._parsePrio()),l||this.peek(r.TokenType.SemiColon)||this.peek(r.TokenType.CurlyR)||this.peek(r.TokenType.EOF)?this.finish(n):(this.restoreAtMark(t),null)},t.prototype._parseMixinArgument=function(){var e=this.create(o.FunctionArgument),t=this.mark(),n=this._parseVariable();return n&&(this.accept(r.TokenType.Colon)?e.setIdentifier(n):this.restoreAtMark(t)),e.setValue(this._parseDetachedRuleSet()||this._parseExpr(!0))?this.finish(e):(this.restoreAtMark(t),null)},t.prototype._parseMixinParameter=function(){var e=this.create(o.FunctionParameter);if(this.peekKeyword("@rest")){var t=this.create(o.Node);return this.consumeToken(),this.accept(n.Ellipsis)?(e.setIdentifier(this.finish(t)),this.finish(e)):this.finish(e,s.ParseError.DotExpected,[],[r.TokenType.Comma,r.TokenType.ParenthesisR])}if(this.peek(n.Ellipsis)){var i=this.create(o.Node);return this.consumeToken(),e.setIdentifier(this.finish(i)),this.finish(e)}var a=!1;return e.setIdentifier(this._parseVariable())&&(this.accept(r.TokenType.Colon),a=!0),e.setDefaultValue(this._parseDetachedRuleSet()||this._parseExpr(!0))||a?this.finish(e):null},t.prototype._parseGuard=function(){if(!this.peekIdent("when"))return null;var e=this.create(o.LessGuard);if(this.consumeToken(),e.isNegated=this.acceptIdent("not"),!e.getConditions().addChild(this._parseGuardCondition()))return this.finish(e,s.ParseError.ConditionExpected);for(;this.acceptIdent("and")||this.accept(r.TokenType.Comma);)if(!e.getConditions().addChild(this._parseGuardCondition()))return this.finish(e,s.ParseError.ConditionExpected);return this.finish(e)},t.prototype._parseGuardCondition=function(){if(!this.peek(r.TokenType.ParenthesisL))return null;var e=this.create(o.GuardCondition);return this.consumeToken(),e.addChild(this._parseExpr()),this.accept(r.TokenType.ParenthesisR)?this.finish(e):this.finish(e,s.ParseError.RightParenthesisExpected)},t.prototype._parseFunction=function(){var e=this.mark(),t=this.create(o.Function);if(!t.setIdentifier(this._parseFunctionIdentifier()))return null;if(this.hasWhitespace()||!this.accept(r.TokenType.ParenthesisL))return this.restoreAtMark(e),null;if(t.getArguments().addChild(this._parseMixinArgument()))for(;(this.accept(r.TokenType.Comma)||this.accept(r.TokenType.SemiColon))&&!this.peek(r.TokenType.ParenthesisR);)if(!t.getArguments().addChild(this._parseMixinArgument()))return this.finish(t,s.ParseError.ExpressionExpected);return this.accept(r.TokenType.ParenthesisR)?this.finish(t):this.finish(t,s.ParseError.RightParenthesisExpected)},t.prototype._parseFunctionIdentifier=function(){if(this.peekDelim("%")){var t=this.create(o.Identifier);return t.referenceTypes=[o.ReferenceType.Function],this.consumeToken(),this.finish(t)}return e.prototype._parseFunctionIdentifier.call(this)},t.prototype._parseURLArgument=function(){var t=this.mark(),n=e.prototype._parseURLArgument.call(this);if(!n||!this.peek(r.TokenType.ParenthesisR)){this.restoreAtMark(t);var i=this.create(o.Node);return i.addChild(this._parseBinaryExpr()),this.finish(i)}return n},t}(i.Parser);t.LESSParser=a}));__extends=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define("vscode-css-languageservice/services/lessCompletion",["require","exports","./cssCompletion","../cssLanguageTypes","vscode-nls"],e)}((function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=e("./cssCompletion"),r=e("../cssLanguageTypes"),i=e("vscode-nls").loadMessageBundle(),o=function(e){function t(t,n){return e.call(this,"@",t,n)||this}return __extends(t,e),t.prototype.createFunctionProposals=function(e,t,n,i){for(var o=0,s=e;o 50%"),example:"percentage(@number);",type:"percentage"},{name:"round",description:i("less.builtin.round","rounds a number to a number of places"),example:"round(number, [places: 0]);"},{name:"sqrt",description:i("less.builtin.sqrt","calculates square root of a number"),example:"sqrt(number);"},{name:"sin",description:i("less.builtin.sin","sine function"),example:"sin(number);"},{name:"tan",description:i("less.builtin.tan","tangent function"),example:"tan(number);"},{name:"atan",description:i("less.builtin.atan","arctangent - inverse of tangent function"),example:"atan(number);"},{name:"pi",description:i("less.builtin.pi","returns pi"),example:"pi();"},{name:"pow",description:i("less.builtin.pow","first argument raised to the power of the second argument"),example:"pow(@base, @exponent);"},{name:"mod",description:i("less.builtin.mod","first argument modulus second argument"),example:"mod(number, number);"},{name:"min",description:i("less.builtin.min","returns the lowest of one or more values"),example:"min(@x, @y);"},{name:"max",description:i("less.builtin.max","returns the lowest of one or more values"),example:"max(@x, @y);"}],t.colorProposals=[{name:"argb",example:"argb(@color);",description:i("less.builtin.argb","creates a #AARRGGBB")},{name:"hsl",example:"hsl(@hue, @saturation, @lightness);",description:i("less.builtin.hsl","creates a color")},{name:"hsla",example:"hsla(@hue, @saturation, @lightness, @alpha);",description:i("less.builtin.hsla","creates a color")},{name:"hsv",example:"hsv(@hue, @saturation, @value);",description:i("less.builtin.hsv","creates a color")},{name:"hsva",example:"hsva(@hue, @saturation, @value, @alpha);",description:i("less.builtin.hsva","creates a color")},{name:"hue",example:"hue(@color);",description:i("less.builtin.hue","returns the `hue` channel of `@color` in the HSL space")},{name:"saturation",example:"saturation(@color);",description:i("less.builtin.saturation","returns the `saturation` channel of `@color` in the HSL space")},{name:"lightness",example:"lightness(@color);",description:i("less.builtin.lightness","returns the `lightness` channel of `@color` in the HSL space")},{name:"hsvhue",example:"hsvhue(@color);",description:i("less.builtin.hsvhue","returns the `hue` channel of `@color` in the HSV space")},{name:"hsvsaturation",example:"hsvsaturation(@color);",description:i("less.builtin.hsvsaturation","returns the `saturation` channel of `@color` in the HSV space")},{name:"hsvvalue",example:"hsvvalue(@color);",description:i("less.builtin.hsvvalue","returns the `value` channel of `@color` in the HSV space")},{name:"red",example:"red(@color);",description:i("less.builtin.red","returns the `red` channel of `@color`")},{name:"green",example:"green(@color);",description:i("less.builtin.green","returns the `green` channel of `@color`")},{name:"blue",example:"blue(@color);",description:i("less.builtin.blue","returns the `blue` channel of `@color`")},{name:"alpha",example:"alpha(@color);",description:i("less.builtin.alpha","returns the `alpha` channel of `@color`")},{name:"luma",example:"luma(@color);",description:i("less.builtin.luma","returns the `luma` value (perceptual brightness) of `@color`")},{name:"saturate",example:"saturate(@color, 10%);",description:i("less.builtin.saturate","return `@color` 10% points more saturated")},{name:"desaturate",example:"desaturate(@color, 10%);",description:i("less.builtin.desaturate","return `@color` 10% points less saturated")},{name:"lighten",example:"lighten(@color, 10%);",description:i("less.builtin.lighten","return `@color` 10% points lighter")},{name:"darken",example:"darken(@color, 10%);",description:i("less.builtin.darken","return `@color` 10% points darker")},{name:"fadein",example:"fadein(@color, 10%);",description:i("less.builtin.fadein","return `@color` 10% points less transparent")},{name:"fadeout",example:"fadeout(@color, 10%);",description:i("less.builtin.fadeout","return `@color` 10% points more transparent")},{name:"fade",example:"fade(@color, 50%);",description:i("less.builtin.fade","return `@color` with 50% transparency")},{name:"spin",example:"spin(@color, 10);",description:i("less.builtin.spin","return `@color` with a 10 degree larger in hue")},{name:"mix",example:"mix(@color1, @color2, [@weight: 50%]);",description:i("less.builtin.mix","return a mix of `@color1` and `@color2`")},{name:"greyscale",example:"greyscale(@color);",description:i("less.builtin.greyscale","returns a grey, 100% desaturated color")},{name:"contrast",example:"contrast(@color1, [@darkcolor: black], [@lightcolor: white], [@threshold: 43%]);",description:i("less.builtin.contrast","return `@darkcolor` if `@color1 is> 43% luma` otherwise return `@lightcolor`, see notes")},{name:"multiply",example:"multiply(@color1, @color2);"},{name:"screen",example:"screen(@color1, @color2);"},{name:"overlay",example:"overlay(@color1, @color2);"},{name:"softlight",example:"softlight(@color1, @color2);"},{name:"hardlight",example:"hardlight(@color1, @color2);"},{name:"difference",example:"difference(@color1, @color2);"},{name:"exclusion",example:"exclusion(@color1, @color2);"},{name:"average",example:"average(@color1, @color2);"},{name:"negation",example:"negation(@color1, @color2);"}],t}(n.CSSCompletion);t.LESSCompletion=o})),function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define("vscode-css-languageservice/services/cssFolding",["require","exports","../parser/cssScanner","../parser/scssScanner","../parser/lessScanner"],e)}((function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=e("../parser/cssScanner"),r=e("../parser/scssScanner"),i=e("../parser/lessScanner");function o(e,t){if(0===e.length)return null;for(var n=e.length-1;n>=0;n--)if(e[n].type===t&&e[n].isStart)return e.splice(n,1)[0];return null}t.getFoldingRanges=function(e,t){return function(e,t){var n=t&&t.rangeLimit||Number.MAX_VALUE,r=e.sort((function(e,t){var n=e.startLine-t.startLine;return 0===n&&(n=e.endLine-t.endLine),n})),i=[],o=-1;return r.forEach((function(e){e.startLine && ]#",relevance:50,description:"@counter-style descriptor. Specifies the symbols used by the marker-construction algorithm specified by the system descriptor. Needs to be specified if the counter system is 'additive'.",restrictions:["integer","string","image","identifier"]},{name:"align-content",values:[{name:"center",description:"Lines are packed toward the center of the flex container."},{name:"flex-end",description:"Lines are packed toward the end of the flex container."},{name:"flex-start",description:"Lines are packed toward the start of the flex container."},{name:"space-around",description:"Lines are evenly distributed in the flex container, with half-size spaces on either end."},{name:"space-between",description:"Lines are evenly distributed in the flex container."},{name:"stretch",description:"Lines stretch to take up the remaining space."}],syntax:"normal | | | ? ",relevance:59,description:"Aligns a flex container’s lines within the flex container when there is extra space in the cross-axis, similar to how 'justify-content' aligns individual items within the main-axis.",restrictions:["enum"]},{name:"align-items",values:[{name:"baseline",description:"If the flex item’s inline axis is the same as the cross axis, this value is identical to 'flex-start'. Otherwise, it participates in baseline alignment."},{name:"center",description:"The flex item’s margin box is centered in the cross axis within the line."},{name:"flex-end",description:"The cross-end margin edge of the flex item is placed flush with the cross-end edge of the line."},{name:"flex-start",description:"The cross-start margin edge of the flex item is placed flush with the cross-start edge of the line."},{name:"stretch",description:"If the cross size property of the flex item computes to auto, and neither of the cross-axis margins are auto, the flex item is stretched."}],syntax:"normal | stretch | | [ ? ]",relevance:81,description:"Aligns flex items along the cross axis of the current line of the flex container.",restrictions:["enum"]},{name:"justify-items",values:[{name:"auto"},{name:"normal"},{name:"end"},{name:"start"},{name:"flex-end",description:'"Flex items are packed toward the end of the line."'},{name:"flex-start",description:'"Flex items are packed toward the start of the line."'},{name:"self-end",description:"The item is packed flush to the edge of the alignment container of the end side of the item, in the appropriate axis."},{name:"self-start",description:"The item is packed flush to the edge of the alignment container of the start side of the item, in the appropriate axis.."},{name:"center",description:"The items are packed flush to each other toward the center of the of the alignment container."},{name:"left"},{name:"right"},{name:"baseline"},{name:"first baseline"},{name:"last baseline"},{name:"stretch",description:"If the cross size property of the flex item computes to auto, and neither of the cross-axis margins are auto, the flex item is stretched."},{name:"save"},{name:"unsave"},{name:"legacy"}],syntax:"normal | stretch | | ? [ | left | right ] | legacy | legacy && [ left | right | center ]",relevance:50,description:"Defines the default justify-self for all items of the box, giving them the default way of justifying each box along the appropriate axis",restrictions:["enum"]},{name:"justify-self",browsers:["E16","FF45","S10.1","C57","O44"],values:[{name:"auto"},{name:"normal"},{name:"end"},{name:"start"},{name:"flex-end",description:'"Flex items are packed toward the end of the line."'},{name:"flex-start",description:'"Flex items are packed toward the start of the line."'},{name:"self-end",description:"The item is packed flush to the edge of the alignment container of the end side of the item, in the appropriate axis."},{name:"self-start",description:"The item is packed flush to the edge of the alignment container of the start side of the item, in the appropriate axis.."},{name:"center",description:"The items are packed flush to each other toward the center of the of the alignment container."},{name:"left"},{name:"right"},{name:"baseline"},{name:"first baseline"},{name:"last baseline"},{name:"stretch",description:"If the cross size property of the flex item computes to auto, and neither of the cross-axis margins are auto, the flex item is stretched."},{name:"save"},{name:"unsave"}],syntax:"auto | normal | stretch | | ? [ | left | right ]",relevance:52,description:"Defines the way of justifying a box inside its container along the appropriate axis.",restrictions:["enum"]},{name:"align-self",values:[{name:"auto",description:"Computes to the value of 'align-items' on the element’s parent, or 'stretch' if the element has no parent. On absolutely positioned elements, it computes to itself."},{name:"baseline",description:"If the flex item’s inline axis is the same as the cross axis, this value is identical to 'flex-start'. Otherwise, it participates in baseline alignment."},{name:"center",description:"The flex item’s margin box is centered in the cross axis within the line."},{name:"flex-end",description:"The cross-end margin edge of the flex item is placed flush with the cross-end edge of the line."},{name:"flex-start",description:"The cross-start margin edge of the flex item is placed flush with the cross-start edge of the line."},{name:"stretch",description:"If the cross size property of the flex item computes to auto, and neither of the cross-axis margins are auto, the flex item is stretched."}],syntax:"auto | normal | stretch | | ? ",relevance:69,description:"Allows the default alignment along the cross axis to be overridden for individual flex items.",restrictions:["enum"]},{name:"all",browsers:["E79","FF27","S9.1","C37","O24"],values:[],syntax:"initial | inherit | unset | revert",relevance:51,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/all"}],description:"Shorthand that resets all properties except 'direction' and 'unicode-bidi'.",restrictions:["enum"]},{name:"alt",browsers:["S9"],values:[],relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/alt"}],description:"Provides alternative text for assistive technology to replace the generated content of a ::before or ::after element.",restrictions:["string","enum"]},{name:"animation",values:[{name:"alternate",description:"The animation cycle iterations that are odd counts are played in the normal direction, and the animation cycle iterations that are even counts are played in a reverse direction."},{name:"alternate-reverse",description:"The animation cycle iterations that are odd counts are played in the reverse direction, and the animation cycle iterations that are even counts are played in a normal direction."},{name:"backwards",description:"The beginning property value (as defined in the first @keyframes at-rule) is applied before the animation is displayed, during the period defined by 'animation-delay'."},{name:"both",description:"Both forwards and backwards fill modes are applied."},{name:"forwards",description:"The final property value (as defined in the last @keyframes at-rule) is maintained after the animation completes."},{name:"infinite",description:"Causes the animation to repeat forever."},{name:"none",description:"No animation is performed"},{name:"normal",description:"Normal playback."},{name:"reverse",description:"All iterations of the animation are played in the reverse direction from the way they were specified."}],syntax:"#",relevance:79,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/animation"}],description:"Shorthand property combines six of the animation properties into a single property.",restrictions:["time","timing-function","enum","identifier","number"]},{name:"animation-delay",syntax:"